Luminescence/0000755000176200001440000000000014762615137012700 5ustar liggesusersLuminescence/tests/0000755000176200001440000000000014762554470014044 5ustar liggesusersLuminescence/tests/testthat/0000755000176200001440000000000014762615137015702 5ustar liggesusersLuminescence/tests/testthat/test_plot_Functions.R0000644000176200001440000000775214762554470022107 0ustar liggesuserstest_that("test pure success of the plotting without warning or error", { testthat::skip_on_cran() ##distribution plots data(ExampleData.DeValues, envir = environment()) ExampleData.DeValues <- ExampleData.DeValues$CA1 expect_silent(plot_RadialPlot(ExampleData.DeValues)) expect_silent(plot_KDE(ExampleData.DeValues)) ##plot_Det data(ExampleData.BINfileData, envir = environment()) object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) expect_s4_class( plot_DetPlot( object, signal.integral.min = 1, signal.integral.max = 3, background.integral.min = 900, background.integral.max = 1000, n.channels = 5, verbose = FALSE, ), "RLum.Results" ) ##various RLum plots ##RLum.Data.Curve data(ExampleData.CW_OSL_Curve, envir = environment()) temp <- as(ExampleData.CW_OSL_Curve, "RLum.Data.Curve") expect_silent(plot(temp)) ##RLum.Data.Spectrum ------- data(ExampleData.XSYG, envir = environment()) expect_silent(plot(TL.Spectrum, plot.type="contour", xlim = c(310,750), ylim = c(0,300))) expect_silent(suppressWarnings(plot_RLum.Data.Spectrum(TL.Spectrum, plot.type="persp", xlim = c(310,750), ylim = c(0,100), bin.rows=10, bin.cols = 1))) expect_silent(suppressWarnings(plot_RLum.Data.Spectrum(TL.Spectrum, plot.type="multiple.lines", xlim = c(310,750), ylim = c(0,100), bin.rows=10, bin.cols = 1))) expect_silent(suppressWarnings(plot_RLum.Data.Spectrum(TL.Spectrum, plot.type="interactive", xlim = c(310,750), ylim = c(0,300), bin.rows=10, bin.cols = 1))) expect_silent(suppressWarnings(plot_RLum.Data.Spectrum(TL.Spectrum, plot.type="interactive", xlim = c(310,750), ylim = c(0,300), bin.rows=10, bin.cols = 1, type = "heatmap", showscale = TRUE))) expect_silent(suppressWarnings(plot_RLum.Data.Spectrum(TL.Spectrum, plot.type="interactive", xlim = c(310,750), ylim = c(0,300), bin.rows=10, bin.cols = 1, type = "contour", showscale = TRUE))) expect_error(plot(TL.Spectrum, plot.type="contour", xlim = c(310,750), ylim = c(0,300), bin.cols = 0)) ##RLum.Analysis data(ExampleData.BINfileData, envir = environment()) temp <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) expect_silent(plot( temp, subset = list(recordType = "TL"), combine = TRUE, norm = TRUE, abline = list(v = c(110)) )) ##special plot RLum.Reuslts data(ExampleData.DeValues, envir = environment()) mam <- calc_MinDose(data = ExampleData.DeValues$CA1, sigmab = 0.2, log = TRUE, plot = FALSE, verbose = FALSE) expect_silent(plot_RLum(mam)) cdm <- calc_CentralDose(ExampleData.DeValues$CA1, verbose = FALSE) expect_silent(plot_RLum(cdm)) FMM <- calc_FiniteMixture(ExampleData.DeValues$CA1, verbose = FALSE, sigmab = 0.2, n.components = c(2:4), pdf.weight = TRUE, dose.scale = c(0, 100)) plot_RLum(FMM) }) test_that("test for return values, if any", { testthat::skip_on_cran() data(ExampleData.DeValues, envir = environment()) output <- plot_AbanicoPlot(ExampleData.DeValues, output = TRUE) expect_type(output, "list") expect_length(output, 10) }) Luminescence/tests/testthat/test_calc_CosmicDoseRate.R0000644000176200001440000001246514762554470022724 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(calc_CosmicDoseRate(depth = "error"), "'depth' should be of class 'numeric'") expect_error(calc_CosmicDoseRate(depth = numeric(0), density = 1.7, latitude = 38.1, longitude = 1.4), "'depth' cannot be an empty numeric") expect_error(calc_CosmicDoseRate(depth = -2, density = 1.7, altitude = 364, latitude = 38.1, longitude = 1.4), "No negative values allowed for 'depth' and 'density'") expect_error(calc_CosmicDoseRate(depth = 10, density = "error"), "'density' should be of class 'numeric'") expect_error(calc_CosmicDoseRate(depth = 10, density = numeric(0), latitude = 38.1, longitude = 1.4), "'density' cannot be an empty numeric") expect_error(calc_CosmicDoseRate(depth = 2.78, density = 1.7, altitude = 364, latitude = 38.1, longitude = 1.4, corr.fieldChanges = TRUE), "requires an age estimate") expect_error(calc_CosmicDoseRate(depth = 2.78, density = 1.7, latitude = 38.06451), "'longitude' should be of class 'numeric'") expect_error(calc_CosmicDoseRate(depth = 2.78, density = 1.7, latitude = 38.1, longitude = numeric(0)), "'longitude' cannot be an empty numeric") expect_error(calc_CosmicDoseRate(depth = 2.78, density = 1.7, latitude = 38.06451, longitude = 1.49646), "'altitude' should be of class 'numeric'") expect_error(calc_CosmicDoseRate(depth = 2.78, density = 1.7, latitude = 38.06451, longitude = 1.49646, altitude = numeric(0)), "'altitude' cannot be an empty numeric") expect_error(calc_CosmicDoseRate(depth = 2.78, density = c(1.7, 2.9), corr.fieldChanges = TRUE, est.age = 20, latitude = 38.06451, longitude = 1.49646, altitude = 364), "The number of values for 'density' should either be 1 or") expect_error(calc_CosmicDoseRate(depth = rep(2.78, 3), density = c(1.7, 2.9), latitude = 38.06451, longitude = 1.49646, altitude = 364), "The number of values for 'density' should either be 1 or") expect_output(calc_CosmicDoseRate(depth = 2.78, density = 1.7, corr.fieldChanges = TRUE, est.age = 100, latitude = 38.0645, longitude = 1.4964, altitude = 364), "No geomagnetic field change correction for samples older than 80") expect_output(calc_CosmicDoseRate(depth = 2.78, density = 1.7, corr.fieldChanges = TRUE, est.age = 20, latitude = 38.0645, longitude = 1.4964, altitude = 364, half.depth = TRUE), "No geomagnetic field change correction necessary for geomagnetic latitude >35 degrees") }) test_that("check functionality", { testthat::skip_on_cran() snapshot.tolerance <- 1.5e-6 SW({ expect_snapshot_RLum( calc_CosmicDoseRate(depth = 2.78, density = 1.7, latitude = 38.06451, longitude = 1.49646, altitude = 364, error = 10), tolerance = snapshot.tolerance) ## length(depth) > length(density), half.depth expect_snapshot_RLum( calc_CosmicDoseRate(depth = c(2.78, 3.12), density = 1.7, corr.fieldChanges = TRUE, est.age = 20, latitude = 28.06451, longitude = 1.49646, altitude = 364, half.depth = TRUE), tolerance = snapshot.tolerance) expect_snapshot_RLum( calc_CosmicDoseRate(depth = c(1.78, 0.12), density = c(0.7, 0.2), latitude = 120, longitude = 30, altitude = 1200), tolerance = snapshot.tolerance) expect_snapshot_RLum( calc_CosmicDoseRate(depth = c(1.78, 0.12), density = c(0.2, 0.2), latitude = 30, longitude = 120, altitude = 120), tolerance = snapshot.tolerance) }) }) test_that("check values from output example 2b", { testthat::skip_on_cran() SW({ temp <- calc_CosmicDoseRate(depth = c(5.0, 2.78), density = c(2.65, 1.7), latitude = 12.04332, longitude = 4.43243, altitude = 364, corr.fieldChanges = TRUE, est.age = 67, error = 15) }) results <- get_RLum(temp) expect_equal(results$depth.1, 5) expect_equal(results$depth.2, 2.78) expect_equal(results$density.1, 2.65) expect_equal(results$density.2, 1.7) expect_equal(results$latitude, 12.04332) expect_equal(results$longitude, 4.43243) expect_equal(results$altitude, 364) expect_equal(round(results$total_absorber.gcm2, digits = 0), 1798) expect_equal(round(results$d0, digits = 4), 0.0705) expect_equal(round(results$geom_lat, digits = 1), 15.1) expect_equal(round(results$dc, digits = 3), 0.072) }) Luminescence/tests/testthat/test_calc_WodaFuchs2008.R0000644000176200001440000000332414762554470022247 0ustar liggesusersdata(ExampleData.DeValues, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_warning(expect_null(calc_WodaFuchs2008("error")), "'data' should be of class 'data.frame', 'RLum.Results' or") expect_error(calc_WodaFuchs2008(data.frame()), "'data' cannot be an empty data.frame") res <- calc_WodaFuchs2008(ExampleData.DeValues$CA1) expect_error(calc_WodaFuchs2008(res, breaks = 4), "Insufficient number of data points") }) test_that("Test general functionality", { testthat::skip_on_cran() ##test arguments expect_s4_class(calc_WodaFuchs2008(ExampleData.DeValues$CA1), "RLum.Results") expect_s4_class(calc_WodaFuchs2008(ExampleData.DeValues$CA1, plot = FALSE), "RLum.Results") expect_s4_class(calc_WodaFuchs2008(ExampleData.DeValues$CA1, breaks = 20), "RLum.Results") expect_warning(calc_WodaFuchs2008(ExampleData.DeValues$CA1[1:40, ]), "More than one maximum, fit may be invalid") ## issue #197 set.seed(1) df <- data.frame(rnorm(20, 10), rnorm(20, 0.5)) expect_silent(calc_WodaFuchs2008(df)) ## more coverage expect_warning(calc_WodaFuchs2008(df, breaks = 3), "Fewer than 4 bins produced, 'breaks' set to 4") expect_output(calc_WodaFuchs2008(df, trace = TRUE)) ## numeric vector expect_message(calc_WodaFuchs2008(df[, 1]), "No errors provided") ## single-column data.frame expect_message(calc_WodaFuchs2008(df[, 1, drop = FALSE]), "No errors provided") ## RLum.Results object obj <- calc_CommonDose(ExampleData.DeValues$BT998, verbose = FALSE) expect_silent(calc_WodaFuchs2008(obj)) }) Luminescence/tests/testthat/test_bin_RLumData.R0000644000176200001440000000127414762554470021373 0ustar liggesusers## load data data(ExampleData.CW_OSL_Curve, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_error(bin_RLum.Data(set_RLum("RLum.Data.Spectrum")), "'object' contains no data") }) test_that("check class and length of output", { testthat::skip_on_cran() curve <- set_RLum(class = "RLum.Data.Curve", recordType = "OSL", data = as.matrix(ExampleData.CW_OSL_Curve)) expect_s4_class(bin_RLum.Data(curve), class = "RLum.Data.Curve") expect_length(bin_RLum.Data(curve)[,1], 500) expect_equal(sum(bin_RLum.Data(curve)[,2]), 119200) expect_equal(sum(bin_RLum.Data(curve, bin = 5)[1,2]), 41146) }) Luminescence/tests/testthat/test_extract_ROI.R0000644000176200001440000000542614762554470021260 0ustar liggesusers## generate random data m <- matrix(runif(100,0,255), ncol = 10, nrow = 10) set.seed(12245) a <- array(runif(300, 0,255), c(10,10,3)) RLum <- set_RLum("RLum.Data.Image", data = a) RLum_list <- list(RLum, RLum) roi <- matrix(c(2.,4,2,5,6,7,3,1,1), ncol = 3) test_that("input validation", { testthat::skip_on_cran() expect_error(extract_ROI(object = "error", roi), "[extract_ROI()] 'object' should be of class 'RLum.Data.Image'", fixed = TRUE) expect_error(extract_ROI(object = m, "error"), "[extract_ROI()] 'roi' should be of class 'matrix'", fixed = TRUE) expect_error(extract_ROI(object = m, matrix()), "[extract_ROI()] 'roi' does not have the expected format", fixed = TRUE) expect_error(extract_ROI(object = m, matrix(ncol = 3, nrow = 0)), "[extract_ROI()] 'roi' does not have the expected format", fixed = TRUE) expect_error(extract_ROI(object = RLum, roi, roi_summary = "error"), "[extract_ROI()] 'roi_summary' should be one of 'mean', 'median'", fixed = TRUE) }) test_that("extract_ROI", { testthat::skip_on_cran() ## run function for all supported input objects ## matrix expect_s4_class(extract_ROI(object = m, roi), "RLum.Results") ## array expect_s4_class(extract_ROI(object = a, roi), "RLum.Results") ## RLum.Data.Image expect_s4_class(extract_ROI(object = RLum, roi), "RLum.Results") ## list results <- expect_s4_class(extract_ROI(object = RLum_list, roi), "RLum.Results") ## regression test if it fails, we have to amend the documentation expect_length(results@data$roi_signals, 6) expect_length(results@data, 3) ## with plot output expect_silent(extract_ROI(object = RLum, roi, plot = TRUE)) expect_silent(extract_ROI(object = RLum_list, roi, plot = TRUE)) ## test with package example dataset data(ExampleData.RLum.Data.Image, envir = environment()) roi <- matrix(c(200,400,200,40,60,80,10,10,10), ncol = 3) expect_s4_class(extract_ROI(object = ExampleData.RLum.Data.Image, roi), "RLum.Results") ## test ROI summary options roi <- matrix(c(2.,4,2,5,6,7,3,1,1), ncol = 3) t_mean <- expect_type(extract_ROI(object = RLum, roi, roi_summary = "mean")@data$roi_summary, "double") expect_equal(sum(t_mean),1124, tolerance = 0.001) t_median <- expect_type(extract_ROI(object = RLum, roi, roi_summary = "median")@data$roi_summary, "double") expect_equal(sum(t_median),1104, tolerance = 0.001) t_sd <- expect_type(extract_ROI(object = RLum, roi, roi_summary = "sd")@data$roi_summary, "double") expect_equal(sum(t_sd),730, tolerance = 0.001) t_sum <- expect_type(extract_ROI(object = RLum, roi, roi_summary = "sum")@data$roi_summary, "double") expect_equal(sum(t_sum), 8117, tolerance = 0.001) }) Luminescence/tests/testthat/test_methods_S3.R0000644000176200001440000001363314762554470021104 0ustar liggesuserstest_that("Test various S3 methods", { testthat::skip_on_cran() ## RLum.Analysis data(ExampleData.RLum.Analysis, envir = environment()) analysis <- IRSAR.RF.Data expect_silent(plot(analysis)) expect_silent(hist(analysis)) expect_type(summary(analysis), "list") expect_s4_class(subset(analysis), "RLum.Analysis") expect_equal(length(analysis), 2) expect_length(rep(analysis, 2), 2) expect_equal(names(analysis), c("RF", "RF")) expect_type(as.list(analysis), "list") expect_equal(is(analysis), c("RLum.Analysis", "RLum")) expect_s4_class(merge(analysis, analysis), "RLum.Analysis") expect_length(unlist(analysis, recursive = TRUE), 4) expect_length(unlist(analysis, recursive = FALSE), 2) expect_length(analysis[1], 1) expect_length(analysis["RF"], 2) expect_s4_class(analysis[[1]], "RLum.Data.Curve") expect_type(analysis[["RF"]], "list") expect_length(analysis$RF, 2) expect_true(is.RLum(analysis)) expect_true(is.RLum.Analysis(analysis)) expect_false(is.RLum.Data(analysis)) ## RLum.Results result <- calc_SourceDoseRate( measurement.date = "2012-01-27", calib.date = "2014-12-19", calib.dose.rate = 0.0438, calib.error = 0.0019) expect_silent(plot(result)) expect_silent(plot(list(result, result))) expect_silent(hist(result)) expect_s3_class(summary(result), "data.frame") expect_equal(length(result), 3) expect_length(rep(result, 2), 2) expect_equal(names(result), c("dose.rate", "parameters", "call")) expect_type(as.list(result), "list") expect_equal(is(result), c("RLum.Results", "RLum")) expect_s4_class(merge(result, result), "RLum.Results") expect_visible(result[1]) expect_visible(result[[1]]) expect_visible(result$dose.rate) expect_true(is.RLum(result)) expect_true(is.RLum.Results(result)) expect_false(is.RLum.Data(result)) ## RLum.Data.Curve data(ExampleData.CW_OSL_Curve, envir = environment()) curve <- set_RLum( class = "RLum.Data.Curve", data = as.matrix(ExampleData.CW_OSL_Curve), curveType = "measured", recordType = "OSL", info = list(a = "test") ) expect_silent(plot(curve)) expect_silent(plot(list(curve, curve))) expect_silent(hist(curve)) expect_s3_class(summary(curve), "table") expect_equal(length(curve), 40) expect_equal(dim(curve), c(1000, 2)) expect_s4_class(bin(curve), "RLum.Data.Curve") expect_length(rep(curve, 2), 2) expect_equal(names(curve), "a") expect_s3_class(as.data.frame(curve), "data.frame") expect_type(as.list(curve), "list") expect_vector(as.matrix(curve)) expect_equal(is(curve), c("RLum.Data.Curve", "RLum.Data", "RLum")) expect_s4_class(merge(curve, curve), "RLum.Data.Curve") expect_visible(curve + curve) expect_visible(curve - curve) expect_visible(curve * curve) expect_visible(curve / curve) expect_vector(curve[1]) expect_equal(curve$a, c(a = "test")) expect_true(is.RLum(curve)) expect_true(is.RLum.Data(curve)) expect_true(is.RLum.Data.Curve(curve)) ## RLum.Data.Image data(ExampleData.RLum.Data.Image, envir = environment()) image <- ExampleData.RLum.Data.Image image3 <- set_RLum("RLum.Data.Image", data = array(runif(300, 0, 255), c(10, 10, 3)), info = list(NumFrames = 3)) expect_silent(plot(image)) expect_silent(plot(list(image, image))) expect_silent(plot(image3)) expect_silent(hist(image)) expect_silent(hist(image3)) expect_s3_class(summary(image), "table") expect_s3_class(summary(image3), "table") expect_length(rep(image, 2), 2) expect_equal(names(image)[1:3], c("ControllerVersion", "LogicOutput", "AmpHiCapLowNoise")) expect_equal(names(image3), "NumFrames") expect_type(as.list(image), "list") expect_length(as.list(image), 1) expect_length(as.list(image3), 3) expect_vector(as.matrix(image)) expect_error(as.matrix(image3), "No viable coercion to matrix, object contains multiple frames") expect_equal(is(image), c("RLum.Data.Image", "RLum.Data", "RLum")) expect_error(merge(image, image), "Merging of 'RLum.Data.Image' objects is currently not supported") expect_vector(image[1]) expect_error(image3[1], "No viable coercion to matrix, object contains multiple frames") expect_true(is.RLum(image)) expect_true(is.RLum.Data(image)) expect_true(is.RLum.Data.Image(image)) ## RLum.Data.Spectrum data(ExampleData.XSYG, envir = environment()) spectrum <- TL.Spectrum expect_silent(plot(spectrum)) expect_silent(plot(list(spectrum, spectrum))) expect_s4_class(bin(spectrum), "RLum.Data.Spectrum") expect_equal(dim(spectrum), c(1024, 24)) expect_length(rep(spectrum, 2), 2) expect_equal(names(spectrum)[1:3], c("state", "parentID", "startDate")) expect_type(row.names(spectrum), "character") expect_s3_class(as.data.frame(spectrum), "data.frame") expect_type(as.list(spectrum), "list") expect_length(as.list(spectrum), 24) expect_vector(as.matrix(spectrum)) expect_equal(is(spectrum), c("RLum.Data.Spectrum", "RLum.Data", "RLum")) expect_s4_class(merge(spectrum, spectrum), "RLum.Data.Spectrum") expect_visible(spectrum + spectrum) expect_visible(spectrum - spectrum) expect_visible(spectrum * spectrum) expect_visible(spectrum / spectrum) expect_vector(spectrum[1]) expect_true(is.RLum(spectrum)) expect_true(is.RLum.Data(spectrum)) expect_true(is.RLum.Data.Spectrum(spectrum)) ## Risoe.BINfileData data(ExampleData.BINfileData, envir = environment()) risoe <- CWOSL.SAR.Data expect_silent(plot(risoe)) expect_error(plot(list(risoe, risoe))) expect_error(subset(risoe, ERROR == 1)) expect_warning(subset(risoe, ID == 1, error = TRUE), "Argument not supported and skipped") expect_length(subset(risoe, ID == 1), 1) expect_length(subset(risoe, ID == 1, records.rm = FALSE), 720) expect_equal(length(risoe), 720) expect_equal(names(risoe)[1:40], c(rep("TL", 24), rep("OSL", 16))) expect_s3_class(as.data.frame(risoe), "data.frame") }) Luminescence/tests/testthat/test_calc_CobbleDoseRate.R0000644000176200001440000000312014762554470022661 0ustar liggesusers## load data data(ExampleData.CobbleData, envir = environment()) df <- ExampleData.CobbleData test_that("input validation", { testthat::skip_on_cran() df$Distance[[14]] <- 50000 expect_error(calc_CobbleDoseRate("error"), "'input' should be of class 'data.frame'") expect_error(calc_CobbleDoseRate(data.frame()), "'input' cannot be an empty data.frame") expect_error(calc_CobbleDoseRate(df), "Slices outside of cobble: please ensure your distances are in mm") expect_error(calc_CobbleDoseRate(ExampleData.CobbleData, conversion = "error"), "'conversion' should be one of 'Guerinetal2011', 'Cresswelletal2018'") }) test_that("snapshot tests", { testthat::skip_on_cran() snapshot.tolerance <- 1.5e-6 expect_snapshot_RLum(calc_CobbleDoseRate(df), tolerance = snapshot.tolerance) expect_snapshot_RLum(calc_CobbleDoseRate(df, conv = "Cresswelletal2018"), tolerance = snapshot.tolerance) expect_snapshot_RLum(calc_CobbleDoseRate(df, conv = "Liritzisetal2013"), tolerance = snapshot.tolerance) expect_snapshot_RLum(calc_CobbleDoseRate(df, conv = "AdamiecAitken1998"), tolerance = snapshot.tolerance) }) test_that("more coverage", { testthat::skip_on_cran() df$CobbleDiameter[1] <- 25 expect_s4_class(calc_CobbleDoseRate(df), "RLum.Results") df$DistanceError[1] <- 0 df$CobbleDiameter[1] <- 2 df$Thickness <- 10 df <- df[1:9, ] expect_s4_class(calc_CobbleDoseRate(df), "RLum.Results") }) Luminescence/tests/testthat/test_plot_AbanicoPlot.R0000644000176200001440000003162214762554470022323 0ustar liggesusers## load data data(ExampleData.DeValues, envir = environment()) ExampleData.DeValues <- ExampleData.DeValues$CA1 test_that("input validation", { testthat::skip_on_cran() expect_error(plot_AbanicoPlot(data = "error"), "All elements of 'data' should be of class 'data.frame'") expect_error(plot_AbanicoPlot(ExampleData.DeValues[, 1, drop = FALSE]), "Data set (1) has fewer than 2 columns: data without errors", fixed = TRUE) expect_message(expect_null(plot_AbanicoPlot(list())), "Error: 'data' is empty, nothing plotted") expect_message(expect_null(plot_AbanicoPlot(ExampleData.DeValues[0, ])), "Error: 'data' is empty, nothing plotted") expect_warning(expect_message( expect_null(plot_AbanicoPlot(ExampleData.DeValues[1, ])), "Error: After removing invalid entries, nothing is plotted"), "Data sets 1 are found to be empty or consisting of only 1 row") expect_error(plot_AbanicoPlot(ExampleData.DeValues, plot = FALSE), "'plot.ratio' should be a positive scalar") expect_error(plot_AbanicoPlot(ExampleData.DeValues, xlab = "x"), "'xlab' must have length 2") expect_error(plot_AbanicoPlot(ExampleData.DeValues, z.0 = "error"), "'z.0' should be one of 'mean', 'mean.weighted', 'median' or") expect_error(plot_AbanicoPlot(ExampleData.DeValues, dispersion = "error"), "'dispersion' should be one of 'qr', 'sd', '2sd' or a percentile") expect_error(plot_AbanicoPlot(ExampleData.DeValues, dispersion = "p5"), "'dispersion' should be one of 'qr', 'sd', '2sd' or a percentile") expect_error(plot_AbanicoPlot(ExampleData.DeValues, dispersion = "p5a"), "'dispersion' should be one of 'qr', 'sd', '2sd' or a percentile") expect_error(plot_AbanicoPlot(ExampleData.DeValues, dispersion = "p500"), "'dispersion' should be one of 'qr', 'sd', '2sd' or a percentile") expect_error(plot_AbanicoPlot(ExampleData.DeValues, xlim = NA), "'xlim' should be of class 'numeric'") expect_error(plot_AbanicoPlot(ExampleData.DeValues, ylim = NA), "'ylim' should be of class 'numeric'") expect_error(plot_AbanicoPlot(ExampleData.DeValues, zlim = NA), "'zlim' should be of class 'numeric'") ## zero-error values data.zeros <- ExampleData.DeValues data.zeros[2, 2] <- 0 expect_warning(plot_AbanicoPlot(data.zeros, grid.col = c(1, 2)), "Values with zero errors cannot be displayed and were removed") data.zeros[, 2] <- 0 expect_error(plot_AbanicoPlot(data.zeros), "Data set contains only values with zero errors") expect_warning(plot_AbanicoPlot(ExampleData.DeValues, xlim = c(2, 12)), "Lower x-axis limit was 2, reset to zero") }) test_that("Test examples from the example page", { testthat::skip_on_cran() ## plot the example data straightforward expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues)) ## now with linear z-scale expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, xlim = NULL, ylim = NULL, zlim = NULL, log.z = FALSE)) ## now with output of the plot parameters expect_type(plot_AbanicoPlot(data = ExampleData.DeValues, output = TRUE), "list") ## now with adjusted z-scale limits expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, zlim = c(10, 200))) ## now with adjusted x-scale limits expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, xlim = c(0, 20))) ## now with rug to indicate individual values in KDE part expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, rug = TRUE)) ## now with a smaller bandwidth for the KDE plot expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, bw = 0.04)) ## now with a histogram instead of the KDE plot expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, hist = TRUE, kde = FALSE)) ## now with a KDE plot and histogram with manual number of bins expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, hist = TRUE, breaks = 20)) ## now with a KDE plot and a dot plot expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, dots = TRUE)) ## now with user-defined plot ratio expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, plot.ratio = 0.5)) ## now with user-defined central value expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, z.0 = 70)) ## now with median as central value expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, z.0 = "median")) ## now with the 17-83 percentile range as definition of scatter expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, z.0 = "median", dispersion = "p17")) ## now with user-defined green line for minimum age model CAM <- calc_CentralDose(ExampleData.DeValues, plot = FALSE, verbose = FALSE) expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, line = CAM, line.col = "darkgreen", line.label = "CAM")) ## now create plot with legend, colour, different points and smaller scale expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, legend = "Sample 1", col = "tomato4", bar.col = "peachpuff", pch = "R", cex = 0.8)) ## now without 2-sigma bar, polygon, grid lines and central value line expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, bar.col = FALSE, polygon.col = FALSE, grid.col = FALSE, y.axis = FALSE, lwd = 0)) ## now with direct display of De errors, without 2-sigma bar expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, bar.col = FALSE, ylab = "", y.axis = FALSE, error.bars = TRUE)) ## now with user-defined axes labels expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, xlab = c("Data error (%)", "Data precision"), ylab = "Scatter", zlab = "Equivalent dose [Gy]")) ## now with minimum, maximum and median value indicated expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, stats = c("min", "max", "median"))) ## now with a brief statistical summary as subheader expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, summary = c("n", "in.2s"))) ## now with another statistical summary expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, summary = c("mean.weighted", "median"), summary.pos = "topleft")) ## now a plot with two 2-sigma bars for one data set expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, bar = c(30, 100))) ## now the data set is split into sub-groups, one is manipulated data.1 <- ExampleData.DeValues[1:30,] data.2 <- ExampleData.DeValues[31:62,] * 1.3 data.3 <- list(data.1, data.2) ## now the two data sets are plotted in one plot expect_silent(plot_AbanicoPlot(data = data.3)) ## now with some graphical modification expect_silent(plot_AbanicoPlot(data = data.3, z.0 = "median", col = c("steelblue4", "orange4"), bar.col = c("steelblue3", "orange3"), polygon.col = c("steelblue1", "orange1"), pch = c(2, 6), angle = c(30, 50), summary = c("n", "in.2s", "median"))) ## create Abanico plot with predefined layout definition layout <- expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, layout = "journal")) ## trigger a few test cases related to layout layout$abanico$colour$centrality <- 1:2 expect_silent(plot_AbanicoPlot(data = ExampleData.DeValues, layout = "journal")) ## now with predefined layout definition and further modifications expect_silent(plot_AbanicoPlot(data = data.3, z.0 = "median", layout = "journal", col = c("steelblue4", "orange4"), bar.col = adjustcolor(c("steelblue3", "orange3"), alpha.f = 0.5), polygon.col = c("steelblue3", "orange3"))) ## for further information on layout definitions see documentation ## of function get_Layout() ## now with manually added plot content ## create empty plot with numeric output expect_type(plot_AbanicoPlot(data = ExampleData.DeValues, pch = NA, output = TRUE), "list") ## interactive mode expect_silent(plot_AbanicoPlot(ExampleData.DeValues, interactive = TRUE)) }) test_that("more coverage", { testthat::skip_on_cran() ## weights expect_silent(plot_AbanicoPlot(ExampleData.DeValues, weights = FALSE, boxplot = TRUE, frame = 2)) suppressWarnings( # additional warning on weights not summing to 1 expect_warning(plot_AbanicoPlot(ExampleData.DeValues, weights = TRUE, rotate = TRUE, line = 1, grid.col = c(1, 2)), "Selecting bandwidth *not* using 'weights'", fixed = TRUE) ) ## negative values data.neg <- ExampleData.DeValues data.neg[1, 1] <- -1 expect_silent(plot_AbanicoPlot(data.neg, z.0 = "mean", dispersion = "sd", boxplot = TRUE, frame = 3, main = "Title", sub = "Subtitle")) ## missing values data.na <- ExampleData.DeValues data.na[1, 2] <- NA expect_message(plot_AbanicoPlot(data.na, rotate = TRUE, boxplot = TRUE, hist = TRUE, error.bars = TRUE, dots = TRUE, rug = TRUE, y.axis = FALSE, stats = "min", legend = "legend", legend.pos = "bottomleft", summary.pos = "bottomright", log.z = FALSE, xlab = c("x1", "x2", "x3"), lty = 2, dispersion = "2sd", at = seq(20, 120, nrow(data.na) - 1)), "Data set (1): 1 NA value excluded", fixed = TRUE) expect_message(plot_AbanicoPlot(data.na, y.axis = TRUE, yaxt = "y", ylim = c(2, 3), dispersion = "2sd"), "Data set (1): 1 NA value excluded", fixed = TRUE) ## further edge tests ... check for wrong bw parameter expect_warning( object = plot_AbanicoPlot(data = ExampleData.DeValues, bw = "tests"), regexp = "Option for 'bw' not valid, reset to 'nrd0'") ## negative values df <- ExampleData.DeValues df[,1] <- -df[,1] expect_message( object = plot_AbanicoPlot(data = df), regexp = "Attention, small standardised estimate scatter. Toggle off y.axis?") ## test boundaries expect_warning( object = plot_AbanicoPlot( data = data.frame(x = c(0,1), y = c(0.1,01))), regexp = "Found zero values in x-column of dataset 1: set log.z = FALSE") ## handling of negative values; before it produced wrong plots expect_silent(plot_AbanicoPlot(data = data.frame( x = c(-1,10), y = c(0.1,3) ), log.z = TRUE, summary = c("mean", "sd.abs"))) ## handling of negative values; but with zlim expect_silent(plot_AbanicoPlot(data = data.frame( x = c(-1,10), y = c(0.1,3), zlim = c(2,10) ), log.z = TRUE, summary = c("mean", "sd.abs"))) ## test lines 2144 onwards par(mfrow = c(4,4)) expect_silent(plot_AbanicoPlot(data = data.frame( x = c(-1,10), y = c(0.1,3) ), log.z = TRUE, summary = c("mean", "sd.abs"))) par(mfrow = c(1,1)) ## test lines 2888 onwards (same was above, just with the rotated plot) par(mfrow = c(3,3)) expect_silent(plot_AbanicoPlot(data = data.frame( x = c(-1,10), y = c(0.1,3) ), log.z = TRUE, rotate = TRUE)) par(mfrow = c(1,1)) ## test centrality from layout layout <- get_Layout("default") ## trigger a few test cases related to layout layout$abanico$colour$centrality <- 1:2 expect_silent( plot_AbanicoPlot(data = list(ExampleData.DeValues, ExampleData.DeValues), layout = layout)) }) test_that("Test graphical snapshot", { testthat::skip_on_cran() testthat::skip_if_not_installed("vdiffr") testthat::skip_if_not(getRversion() >= "4.4.0") SW({ vdiffr::expect_doppelganger( title = "Abanico expected", fig = plot_AbanicoPlot(data = ExampleData.DeValues)) }) }) Luminescence/tests/testthat/test_analyse_pIRIRSequence.R0000644000176200001440000002164214762554470023225 0ustar liggesusers## load data set.seed(1) data(ExampleData.BINfileData, envir = environment()) object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1) object <- get_RLum(object, record.id = c(-29, -30)) sequence.structure <- c(1, 2, 2, 3, 4, 4) sequence.structure <- as.vector(sapply(seq(0, length(object) - 1, by = 4), function(x) { sequence.structure + x })) object <- sapply(1:length(sequence.structure), function(x) { object[[sequence.structure[x]]] }) object <- set_RLum(class = "RLum.Analysis", records = object, protocol = "pIRIR") SW({ results <- analyse_pIRIRSequence( object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "EXP", sequence.structure = c("TL", "pseudoIRSL1", "pseudoIRSL2"), main = "Pseudo pIRIR data set based on quartz OSL", plot = TRUE, plot_singlePanels = TRUE, verbose = FALSE ) ## check plot_RLum.Results expect_silent(plot_RLum.Results(results)) ## plot_singlePanels = FALSE && plot == TRUE suppressWarnings( # warnings thrown by analyse_SAR.CWOSL and fit_DoseResponseCurve analyse_pIRIRSequence( object, signal.integral.min = c(1, 2), signal.integral.max = c(2, 3), background.integral.min = 900, background.integral.max = 1000, fit.method = "EXP", sequence.structure = c("TL", "pseudoIRSL1", "pseudoIRSL2"), main = "Pseudo pIRIR data set based on quartz OSL", plot = TRUE, plot_singlePanels = FALSE, verbose = FALSE ) ) }) test_that("check plot stuff", { ## it should throw a warning about the plot size pdf.out <- tempfile(fileext = ".pdf") pdf(pdf.out, width = 12, height = 16) expect_warning(analyse_pIRIRSequence( object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "EXP", sequence.structure = c("TL", "pseudoIRSL1", "pseudoIRSL2"), main = "Pseudo pIRIR data set based on quartz OSL", plot = TRUE, plot_singlePanels = FALSE, verbose = FALSE), "[analyse_pIRIRSequence()] Argument 'plot' reset to 'FALSE'", fixed = TRUE) dev.off() ## this should not throw any warning because we print to a large enough pdf pdf(pdf.out, width = 16, height = 16) expect_silent(analyse_pIRIRSequence( object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "EXP", sequence.structure = c("TL", "pseudoIRSL1", "pseudoIRSL2"), main = "Pseudo pIRIR data set based on quartz OSL", plot = TRUE, plot_singlePanels = FALSE, verbose = FALSE)) dev.off() ## more coverage: get n.loops > 2 pdf(pdf.out, width = 25, height = 25) suppressWarnings(analyse_pIRIRSequence( object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "EXP", sequence.structure = c("TL", paste0("pseudoIRSL", 1:6)), main = "Pseudo pIRIR data set based on quartz OSL", plot = TRUE, verbose = FALSE)) dev.off() unlink(pdf.out) ## this should not throw any warning with plot_singlePanels = TRUE expect_silent(analyse_pIRIRSequence( object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "EXP", sequence.structure = c("TL", "pseudoIRSL1", "pseudoIRSL2"), main = "Pseudo pIRIR data set based on quartz OSL", plot = TRUE, plot_singlePanels = TRUE, verbose = FALSE)) suppressWarnings( # duplicated plot.single warnings from sanalyse_SAR.CWOSL() expect_warning(analyse_pIRIRSequence( object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "EXP", plot = TRUE, plot.single = TRUE, verbose = FALSE), "'plot.single' is deprecated, use 'plot_singlePanels' instead") ) }) test_that("input validation", { expect_error(analyse_pIRIRSequence("test"), "'object' should be of class 'RLum.Analysis' or 'list'") expect_error(analyse_pIRIRSequence(list(data.frame())), "All elements of 'object' should be of class 'RLum.Analysis'") expect_error(analyse_pIRIRSequence(list("test"), signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000), "'object' should be of class 'RLum.Analysis'") expect_error(analyse_pIRIRSequence(object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, sequence.structure = "TL"), "'sequence.structure' should contain at least one IR step") expect_error(analyse_pIRIRSequence(object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, sequence.structure = c("IR50", "error")), "'error' not allowed in 'sequence.structure'") SW({ expect_warning(analyse_pIRIRSequence(list(object), signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, plot = FALSE), "'signal.integral.min' missing, set to 1") expect_warning(analyse_pIRIRSequence(list(object), signal.integral.min = 1, background.integral.min = 900, background.integral.max = 1000, plot = FALSE), "'signal.integral.max' missing, set to 2") expect_warning(analyse_pIRIRSequence(list(object), signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, sequence.structure = c("TL", "IRSL", "EXCLUDE"), plot = FALSE), "14 records have been removed due to EXCLUDE") expect_message(expect_null( analyse_pIRIRSequence(list(object), signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, sequence.structure = c("TL", "pseudoIRSL1"), plot = FALSE)), "The number of records is not a multiple of the defined sequence structure") object.warn <- object for (i in 1:6) object.warn@records[[i]]@recordType <- "error" expect_warning(analyse_pIRIRSequence(object.warn, main = "Title", signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, plot = FALSE), "The following unrecognised record types have been removed:") object.noTL <- subset(object, recordType != "TL") expect_warning(analyse_pIRIRSequence(list(object.noTL), main = "Title", signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, plot = FALSE), "Your sequence does not contain 'TL' curves") }) }) test_that("check class and length of output", { testthat::skip_on_cran() expect_s4_class(results, "RLum.Results") expect_equal(length(results), 4) expect_s3_class(results$LnLxTnTx.table, "data.frame") expect_s3_class(results$rejection.criteria, "data.frame") expect_equal(round(sum(results$data[1:2, 1:4]), 0),7584) expect_equal(round(sum(results$rejection.criteria$Value), 2),3338.69) }) Luminescence/tests/testthat/test_plot_RLum.Analysis.R0000644000176200001440000001240114762554470022563 0ustar liggesusers## load data data(ExampleData.BINfileData, envir = environment()) data(ExampleData.XSYG, envir = environment()) ## convert values for position 1 temp <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1) ## only one curve c1 <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1, run = 1, set = 6) test_that("input validation", { testthat::skip_on_cran() expect_error(plot_RLum.Analysis("error"), "'object' should be of class 'RLum.Analysis'") expect_error(plot_RLum.Analysis(temp, nrows = -1), "'nrows' should be a positive scalar") expect_error(plot_RLum.Analysis(temp, ncols = -1), "'ncols' should be a positive scalar") expect_error(plot_RLum.Analysis(temp, combine = -1), "'combine' should be a single logical value") expect_error(plot_RLum.Analysis( set_RLum("RLum.Analysis", records = list(c1@records[[1]], set_RLum("RLum.Data.Image"))), combine = TRUE), "'combine' is valid only for 'RLum.Data.Curve' objects") ## this generates multiple warnings warnings <- capture_warnings(plot_RLum.Analysis(c1, col = 2, xlim = c(-1, 50), ylim = c(-1, 3000))) expect_match(warnings, all = FALSE, fixed = TRUE, "min('xlim') < x-value range for curve #1, reset to minimum") expect_match(warnings, all = FALSE, fixed = TRUE, "max('xlim') > x-value range for curve #1, reset to maximum") expect_match(warnings, all = FALSE, fixed = TRUE, "min('ylim') < y-value range for curve #1, reset to minimum") expect_match(warnings, all = FALSE, fixed = TRUE, "max('ylim') > y-value range for curve #1, reset to maximum") expect_error(plot_RLum.Analysis(c1, curve.transformation = "error"), "'curve.transformation' should be one of 'CW2pLM', 'CW2pLMi'") expect_warning(.warningCatcher( plot_RLum.Analysis(temp, subset = list(recordType = "TL"), norm = TRUE, log = "y")), "12 y values <= 0 omitted from logarithmic plot") expect_warning(plot_RLum.Analysis(c1, combine = TRUE, main = "Curve"), "'combine' can't be used with fewer than two curves") expect_warning(plot_RLum.Analysis(c1, plot.single = TRUE), "'plot.single' is deprecated, use 'plot_singlePanels'") }) test_that("check functionality", { testthat::skip_on_cran() ## trigger warning expect_silent(expect_warning(plot_RLum.Analysis( set_RLum("RLum.Analysis", records = list( c1@records[[1]], set_RLum("RLum.Data.Curve", recordType = "OSL") )), norm = TRUE, combine = TRUE), "[plot_RLum.Analysis()] Curve normalisation produced Inf/NaN values", fixed = TRUE)) ##Basic plot expect_silent(plot_RLum.Analysis( temp, subset = list(recordType = "TL"), combine = TRUE, norm = TRUE, abline = list(v = c(110)) )) ## Basic plot with spectrum expect_silent( plot_RLum.Analysis( set_RLum(class = "RLum.Analysis", records = list(TL.Spectrum, temp[[1]])), plot.type = "persp")) ## test norm = "max" expect_silent(plot_RLum.Analysis( temp, subset = list(recordType = "TL"), combine = TRUE, norm = "max", abline = list(v = c(110)) )) ## test norm = "min" expect_silent(plot_RLum.Analysis( temp, subset = list(recordType = "OSL"), combine = TRUE, norm = "last", abline = list(v = c(110)) )) ## test norm = "huot expect_silent(plot_RLum.Analysis( temp, subset = list(recordType = "OSL"), combine = TRUE, norm = "huot", abline = list(v = c(110)) )) ## test records_max expect_silent(plot_RLum.Analysis( temp, subset = list(recordType = "TL"), combine = TRUE, norm = TRUE, sub_title = "(5 K/s)", records_max = 5, smooth = TRUE, type = "p", abline = list(v = c(110)), ## more coverage main = "TL curves combined", log = "xy", col = get("col", pos = .LuminescenceEnv)[1:4], xlab = "Temperature recorded [log \u00B0C]", ylab = "log TL [a.u.]", xlim = c(0, 200), ylim = c(0, 1), lty = c(1, 2), legend.text = paste("Curve", 1:4), legend.col = get("col", pos = .LuminescenceEnv)[1:4], legend.pos = "outside", )) ##test arguments ##ylim expect_silent(plot_RLum.Analysis( temp, subset = list(recordType = "TL"), combine = FALSE, norm = TRUE, ylim = c(0, 1), xlim = c(1,100), abline = list(v = c(110)) )) ## curve transformation plot_RLum.Analysis(temp, subset = list(recordType = "IRSL"), curve.transformation = "CW2pLMi") plot_RLum.Analysis(temp, subset = list(recordType = "OSL"), curve.transformation = "CW2pHMi") plot_RLum.Analysis(temp, subset = list(recordType = "TL"), combine = TRUE, curve.transformation = "CW2pPMi") ## empty object expect_silent(plot_RLum.Analysis(set_RLum("RLum.Analysis"))) expect_warning(plot_RLum.Analysis(set_RLum("RLum.Analysis"), combine = TRUE), "'combine' can't be used with fewer than two curves") }) Luminescence/tests/testthat/test_analyse_SAR.TL.R0000644000176200001440000001173214762554470021551 0ustar liggesusers## load data data(ExampleData.BINfileData, envir = environment()) ## transform the values from the third position in an RLum.Analysis object object <- Risoe.BINfileData2RLum.Analysis(TL.SAR.Data, pos = 3) test_that("input validation", { skip_on_cran() expect_error(analyse_SAR.TL(), "is missing, with no default") expect_error(analyse_SAR.TL("test"), "[analyse_SAR.TL()] 'object' should be of class 'RLum.Analysis'", fixed = TRUE) expect_error(analyse_SAR.TL(object), "No value set for 'signal.integral.min'") expect_error(analyse_SAR.TL(object, signal.integral.min = 1), "No value set for 'signal.integral.max'") expect_error(analyse_SAR.TL(list(object, "test")), "All elements of 'object' should be of class 'RLum.Analysis'") expect_error(analyse_SAR.TL(object, signal.integral.min = 1, signal.integral.max = 2), "Input TL curves are not a multiple of the sequence structure") expect_error(analyse_SAR.TL(object, dose.points = c(2, 2), signal.integral.min = 210, signal.integral.max = 220, sequence.structure = c("SIGNAL", "BACKGROUND")), "Length of 'dose.points' not compatible with number of signals") expect_error(analyse_SAR.TL(object, signal.integral.min = 1, signal.integral.max = 2, sequence.structure = c("SIGNAL", "BACKGROUND"), integral_input = "error"), "[analyse_SAR.TL()] 'integral_input' should be one of ", fixed = TRUE) obj.rm <- object obj.rm@records[[1]]@data <- obj.rm@records[[1]]@data[1:225, ] expect_error(analyse_SAR.TL(obj.rm, signal.integral.min = 210, signal.integral.max = 220, sequence.structure = c("SIGNAL", "BACKGROUND")), "Signal range differs, check sequence structure") }) test_that("Test examples", { skip_on_cran() ##perform analysis ## FIXME(mcol): this example doesn't work with snapshotting, presumably ## due to setting the `fit.method = "EXP OR LIN"` option SW({ expect_s4_class( analyse_SAR.TL( object, signal.integral.min = 210, signal.integral.max = 220, fit.method = "EXP OR LIN", sequence.structure = c("SIGNAL", "BACKGROUND") ), "RLum.Results" ) expect_snapshot_RLum( analyse_SAR.TL( list(object, object), signal.integral.min = 210, signal.integral.max = 220, dose.points = 1:7, integral_input = "temperature", sequence.structure = c("SIGNAL", "BACKGROUND")) ) expect_warning( expect_snapshot_RLum( analyse_SAR.TL( list(object), signal.integral.min = 210, signal.integral.max = 220, dose.points = 1:7, log = "x", sequence.structure = c("SIGNAL", "BACKGROUND")) ), "Non-positive values detected, log-scale disabled" ) SW({ expect_message(analyse_SAR.TL(object, signal.integral.min = 2, signal.integral.max = 3, sequence.structure = "SIGNAL"), "Too many curves, only the first 21 curves are plotted") }) expect_warning( expect_snapshot_RLum( analyse_SAR.TL(object, signal.integral.min = 2, signal.integral.max = 3, sequence.structure = c("SIGNAL", "EXCLUDE")) ), "Error column invalid or 0, 'fit.weights' ignored") }) }) test_that("regression tests", { skip_on_cran() ## issue 147 -------------------------------------------------------------- SW({ set.seed(1) expect_snapshot_RLum( analyse_SAR.TL(object, sequence.structure = c("SIGNAL", "BACKGROUND"), signal.integral.min = 2, signal.integral.max = 3), tolerance = 1.5e-4 ) seq.structure <- c("SIGNAL", "EXCLUDE", "BACKGROUND", "EXCLUDE", "PREHEAT", "EXCLUDE", "BACKGROUND", "SIGNAL", "EXCLUDE", "EXCLUDE", "EXCLUDE", "EXCLUDE") expect_error(analyse_SAR.TL(object, signal.integral.min = 2, signal.integral.max = 2, sequence.structure = seq.structure), "[calc_TLLxTxRatio()] Data types of Lx and Tx data differ", fixed = TRUE) }) expect_message( expect_snapshot_RLum( analyse_SAR.TL(object, dose.points = 2, signal.integral.min = 210, signal.integral.max = 220, sequence.structure = c("SIGNAL", "BACKGROUND")) ), "[fit_DoseResponseCurve()] Error: All points have the same dose, NULL returned", fixed = TRUE) ## issue 519 bin.v8 <- system.file("extdata/BINfile_V8.binx", package = "Luminescence") SW({ expect_error( analyse_SAR.TL(read_BIN2R(bin.v8, fastForward = TRUE, verbose = FALSE)), "Input TL curves are not a multiple of the sequence structure") }) }) Luminescence/tests/testthat/test_plot_DRTResults.R0000644000176200001440000001055514762554470022145 0ustar liggesusers## load data set.seed(1) data(ExampleData.DeValues, envir = environment()) df <- ExampleData.DeValues$BT998[7:11,] df.list <- list(df, df * c(runif(5, 0.9, 1.1), 1)) test_that("input validation", { testthat::skip_on_cran() expect_error(plot_DRTResults("error"), "'values' should be of class 'data.frame' or 'RLum.Results'") expect_error(plot_DRTResults(list("error")), "'values' should be of class 'data.frame' or 'RLum.Results'") expect_error(plot_DRTResults(df, preheat = c(200, 240, 240)), "Number of preheat temperatures != De values") expect_error(plot_DRTResults(df, given.dose = c(2800, 3000)), "'given.dose' > number of input data sets") expect_warning(plot_DRTResults(df, boxplot = TRUE), "Option 'boxplot' requires a value in 'preheat'") empty <- set_RLum("RLum.Results") expect_error(plot_DRTResults(empty), "'values' cannot be an empty RLum.Results") expect_error(plot_DRTResults(list()), "'values' cannot be an empty list") expect_error(plot_DRTResults(data.frame()), "'values' cannot be an empty data.frame") expect_error(plot_DRTResults(list(empty, empty)), "No valid records in 'values'") }) test_that("check functionality", { testthat::skip_on_cran() expect_silent(plot_DRTResults(df)) expect_silent(plot_DRTResults(df, preheat = c(200, 200, 200, 240, 240))) expect_silent(plot_DRTResults(df, preheat = c(200, 200, 200, 240, 240), boxplot = FALSE, given.dose = 2800)) expect_silent(plot_DRTResults(df, preheat = c(200, 200, 200, 240, 240), boxplot = TRUE, given.dose = 2800)) expect_silent(plot_DRTResults(df, preheat = c(200, 200, 200, 240, 240), boxplot = TRUE, given.dose = 2800, summary = "mean", summary.pos = "sub")) expect_silent(plot_DRTResults(df.list, given.dose = c(2800, 2900))) expect_silent(plot_DRTResults(df.list, preheat = c(200, 200, 200, 240, 240), boxplot = TRUE)) ## more coverage expect_silent(plot_DRTResults(df[1, ], preheat = 200, boxplot = TRUE)) expect_silent(plot_DRTResults(df[1, ], preheat = 200, boxplot = TRUE, summary.pos = "sub", col = 3)) expect_silent(plot_DRTResults(df[1, ], boxplot = FALSE, summary.pos = "sub", pch = 12, col = 1)) expect_silent(plot_DRTResults(df, given.dose = 2800, main = "Title", mtext = "Example data", xlim = c(0, 6), ylim = c(0.8, 1.2), xlab = "x", ylab = "y", summary = "mean", summary.pos = c(0, 1.2), legend = "legend", legend.pos = c(5, 1.2), col = 2, cex = 1, pch = 2)) expect_silent(plot_DRTResults(df, summary = "n", summary.pos = "sub")) expect_silent(plot_DRTResults(df, summary.pos = "top", legend.pos = "bottom")) expect_silent(plot_DRTResults(df, summary.pos = "topright", legend.pos = "topleft")) expect_silent(plot_DRTResults(df, summary.pos = "left", legend.pos = "right")) expect_silent(plot_DRTResults(df, summary.pos = "center", legend.pos = "center")) expect_silent(plot_DRTResults(df, summary.pos = "right", legend.pos = "left")) expect_silent(plot_DRTResults(df, summary.pos = "bottomleft", legend.pos = "bottomright")) expect_silent(plot_DRTResults(df, summary.pos = "bottom", legend.pos = "top")) expect_silent(plot_DRTResults(df, summary.pos = "bottomright", legend.pos = "bottomleft")) expect_silent(plot_DRTResults(df, preheat = 1:5, na.rm = TRUE)) ## plot_DRTResults(df.list, preheat = c(200, 200, 200, 240, 240), ## given.dose = 2800, boxplot = TRUE) ## RLum.Results object expect_silent(plot_DRTResults(calc_CommonDose(df, plot = FALSE, verbose = FALSE))) ## missing values df.na <- df df.na[2, 1] <- NA expect_silent(plot_DRTResults(df, preheat = c(200, 200, 200, 240, 240))) }) Luminescence/tests/testthat/test_calc_gSGC_feldspar.R0000644000176200001440000000374114762554470022520 0ustar liggesuserstest_that("test errors", { testthat::skip_on_cran() ##crash function ##no data.frame expect_error(calc_gSGC_feldspar( data = "data", gSGC.type = "50LxTx", plot = FALSE), "[calc_gSGC_feldspar()] 'data' should be of class 'data.frame'", fixed = TRUE) ##no character expect_error(calc_gSGC_feldspar( data = data.frame(a = 1, b = 1, c = 1, d = 1, e = 1), gSGC.type = 1, plot = FALSE), "[calc_gSGC_feldspar()] 'gSGC.type' should be of class 'character'", fixed = TRUE) ## input is somewhat not what we expect for gSGC expect_error( calc_gSGC_feldspar( data = data.frame(a = 1, b = 1, c = 1, d = 1, e = 1), gSGC.type = "wrong", plot = FALSE ), "\\[calc_gSGC_feldspar\\(\\)\\] 'gSGC.type' needs to be one of the accepted values" ) ## incorrect number of columns expect_error( calc_gSGC_feldspar( data = data.frame(a = 1, b = 1, c = 1, d = 1), gSGC.type = "50LxTx", plot = FALSE ), "Structure of 'data' does not fit the expectations" ) ##finally run with plot output #test on a generated random sample set.seed(1234) n_samples <- 2 data <- data.frame( LnTn = rnorm(n=n_samples, mean=1.0, sd=0.02), LnTn.error = rnorm(n=n_samples, mean=0.05, sd=0.002), Lr1Tr1 = rnorm(n=n_samples, mean=1.0, sd=0.02), Lr1Tr1.error = rnorm(n=n_samples, mean=0.05, sd=0.002), Dr1 = rep(100,n_samples)) results <- expect_s4_class(calc_gSGC_feldspar( data = data, gSGC.type = "50LxTx", plot = TRUE), "RLum.Results") ## test own curve parameters SW({ expect_message(results <- calc_gSGC_feldspar( data = data, gSGC.parameters = data.frame( y1 = 0.6, y1_err = 0.2, D1 = 250, D1_err = 50, y2 = 0.90, y2_err = 0.10, y0 = 0.001, y0_err = 0.0001 )), "No solution found for dataset") }) ##regression tests expect_s4_class(results, "RLum.Results") expect_true(all(is.na(unlist(results$m.MC)))) }) Luminescence/tests/testthat/test_combine_De_Dr.R0000644000176200001440000000523114762554470021540 0ustar liggesuserstest_that("Test combine_De_Dr", { testthat::skip_on_cran() ## set seed set.seed(1276) ## simple test using the example ## set parameters Dr <- stats::rlnorm(1000, 0, 0.3) De <- 50*sample(Dr, 50, replace = TRUE) s <- stats::rnorm(50, 10, 2) ## break function SW({ expect_error(combine_De_Dr( Dr = Dr, int_OD = 0.1, De, s[-1]), "'De' and 's' should have the same length") ## simple run with standard settings results <- expect_s4_class(combine_De_Dr( Dr = Dr, int_OD = 0.1, De, s, outlier_analysis_plot = TRUE, Age_range = c(0, 100), cdf_ADr_quantiles = FALSE, legend.pos = "topright", legend = TRUE, method_control = list(n.iter = 100, n.chains = 1)), "RLum.Results") }) ## check whether mcmc is NULL expect_null(results$mcmc_IAM) expect_null(results$mcmc_BCAM) ## run the same with different par settings oldpar <- par(mfrow = c(2,2)) SW({ results <- expect_s4_class(combine_De_Dr( Dr = Dr, int_OD = 0.1, De, s, outlier_analysis_plot = TRUE, par_local = FALSE, Age_range = c(0, 100), method_control = list( n.iter = 100, n.chains = 1, return_mcmc = TRUE )), "RLum.Results") }) ## check the length of the output expect_length(results, 9) ## check whether we have the MCMC plots expect_s3_class(results$mcmc_IAM, "mcmc.list") expect_s3_class(results$mcmc_BCAM, "mcmc.list") ## try to plot the results again SW({ plot_OSLAgeSummary(results) }) ## diag = TRUE SW({ expect_error(combine_De_Dr( Dr = Dr, int_OD = 0.1, De, s, Age_range = c(0, 100), method_control = list(n.iter = 100, n.chains = 1, diag = TRUE)), "You need at least two chains") expect_s4_class(combine_De_Dr( Dr = Dr, int_OD = 0.1, De, s, Age_range = c(0, 100), method_control = list(n.iter = 100, n.chains = 2, diag = TRUE)), "RLum.Results") }) ## cdf_ADr_quantiles = TRUE and outlier_method = "RousseeuwCroux1993" SW({ expect_s4_class(combine_De_Dr( Dr = Dr, int_OD = 0.1, De, s, Age_range = c(0, 100), cdf_ADr_quantiles = TRUE, outlier_method = "RousseeuwCroux1993", method_control = list(n.iter = 100, n.chains = 1)), "RLum.Results") }) ## meaningless data for coverage set.seed(1) Dr.short <- stats::rlnorm(10, 0, 0.3) De.short <- 50 * sample(Dr, 2, replace = TRUE) s.short <- stats::rnorm(2, 10, 2) SW({ combine_De_Dr( Dr = Dr.short, int_OD = 0.1, De.short, s.short, outlier_analysis_plot = TRUE, Age_range = c(0, 100), cdf_ADr_quantiles = FALSE) }) ## reset the graphical parameters to the original values par(oldpar) }) Luminescence/tests/testthat/test_apply_EfficiencyCorrection.R0000644000176200001440000000350114762554470024366 0ustar liggesuserstest_that("check function", { testthat::skip_on_cran() ##load data data(ExampleData.XSYG, envir = environment()) ##create efficiency data eff_data <- data.frame(WAVELENGTH = 1:1000, runif(1000)) ##break function expect_error(apply_EfficiencyCorrection(object = "ERROR"), "'object' should be of class 'RLum.Data.Spectrum'") expect_error(apply_EfficiencyCorrection(object = TL.Spectrum, spectral.efficiency = "ERROR"), "'spectral.efficiency' should be of class 'data.frame'") eff_data_false <- eff_data eff_data_false[1,2] <- 2 expect_error(apply_EfficiencyCorrection( object = TL.Spectrum, spectral.efficiency = eff_data_false), "Relative quantum efficiency values > 1 are not allowed") ##run tests expect_s4_class(apply_EfficiencyCorrection(TL.Spectrum,spectral.efficiency = eff_data), "RLum.Data.Spectrum") ##run list test expect_warning( apply_EfficiencyCorrection(list(a = "test", TL.Spectrum), spectral.efficiency = eff_data), "Skipping 'character' object in input list") ##run test with RLum.Analysis objects expect_s4_class( apply_EfficiencyCorrection(set_RLum("RLum.Analysis", records = list(TL.Spectrum)), spectral.efficiency = eff_data), "RLum.Analysis") expect_warning( apply_EfficiencyCorrection(set_RLum("RLum.Analysis", records = list(TL.Spectrum, "test")), spectral.efficiency = eff_data), "Skipping 'character' object in input list") ##run test with everything combined input <- list(a = "test", TL.Spectrum,set_RLum("RLum.Analysis", records = list(TL.Spectrum))) expect_warning(apply_EfficiencyCorrection(input, eff_data), "Skipping 'character' object in input list") }) Luminescence/tests/testthat/test_names_RLum.R0000644000176200001440000000067514762554470021140 0ustar liggesuserstest_that("check functionality", { testthat::skip_on_cran() data(ExampleData.RLum.Analysis, envir = environment()) expect_silent(names_RLum(IRSAR.RF.Data)) expect_type(names_RLum(IRSAR.RF.Data), "character") ##test a list of such elements expect_type(names_RLum(list(IRSAR.RF.Data,IRSAR.RF.Data, "a")), "list") ## empty object res <- names_RLum(set_RLum("RLum.Analysis")) expect_type(res, "list") expect_length(res, 0) }) Luminescence/tests/testthat/test_fit_DoseResponseCurve.R0000644000176200001440000004131714762554470023354 0ustar liggesusers## load data data(ExampleData.LxTxData, envir = environment()) test_that("input validation", { testthat::skip_on_cran() ## object expect_error( fit_DoseResponseCurve("error"), "[fit_DoseResponseCurve()] 'object' should be of class 'data.frame'", fixed = TRUE) expect_error(fit_DoseResponseCurve(data.frame()), "'object' cannot be an empty data.frame") expect_error(fit_DoseResponseCurve(as.list(LxTxData)), "All elements of 'object' should be of class 'data.frame'") ## mode expect_error( fit_DoseResponseCurve(LxTxData, mode = "error"), "[fit_DoseResponseCurve()] 'mode' should be one of 'interpolation'", fixed = TRUE) ## fit.method expect_error( fit_DoseResponseCurve(LxTxData, fit.method = "error"), "[fit_DoseResponseCurve()] 'fit.method' should be one of 'LIN', 'QDR'", fixed = TRUE) ## other arguments expect_error(fit_DoseResponseCurve(LxTxData, fit.force_through_origin = "error"), "'fit.force_through_origin' should be a single logical value") expect_error(fit_DoseResponseCurve(LxTxData, fit.weights = "error"), "'fit.weights' should be a single logical value") expect_error(fit_DoseResponseCurve(LxTxData, fit.includingRepeatedRegPoints = "error"), "'fit.includingRepeatedRegPoints' should be a single logical") expect_error(fit_DoseResponseCurve(LxTxData, fit.NumberRegPoints = "error"), "'fit.NumberRegPoints' should be a positive integer scalar") expect_error(fit_DoseResponseCurve(LxTxData, fit.NumberRegPointsReal = "error"), "'fit.NumberRegPointsReal' should be a positive integer scalar") expect_error(fit_DoseResponseCurve(LxTxData, fit.bounds = "error"), "'fit.bounds' should be a single logical value") expect_error(fit_DoseResponseCurve(LxTxData, n.MC = "error"), "'n.MC' should be a positive integer scalar") ## shorten dataframe expect_warning(fit_DoseResponseCurve(LxTxData[1:2, ], verbose = FALSE), "Fitting a non-linear least-squares model requires at least 3") expect_warning(fit_DoseResponseCurve(LxTxData[1:3, ], fit.method = "GOK", verbose = FALSE), "Fitting a non-linear least-squares model requires at least 4") ## wrong combination of fit.method and mode expect_error( fit_DoseResponseCurve(LxTxData, fit.method = "EXP+EXP", mode = "extrapolation"), "Mode 'extrapolation' for fitting method 'EXP+EXP' not supported", fixed = TRUE) }) test_that("weird LxTx values", { testthat::skip_on_cran() LxTx <- structure(list( Dose = c(0, 250, 500, 750, 1000, 1500, 0, 500, 500), LxTx = c(1, Inf, 0, -Inf, Inf, 0, Inf, -0.25, 2), LxTx.Error = c(1.58133646008685, Inf, 0, Inf, Inf, 0, Inf, 1.41146256149428, 3.16267292017369)), class = "data.frame", row.names = c(NA, -9L)) ##fit SW({ expect_warning( fit_DoseResponseCurve(LxTx[, c("Dose", "LxTx", "LxTx.Error")]), "Inf values found, replaced by NA") }) ##all points have the same dose ... error but NULL data(ExampleData.LxTxData, envir = environment()) tmp_LxTx <- LxTxData tmp_LxTx$Dose <- 10 expect_message(expect_null( fit_DoseResponseCurve(tmp_LxTx)), "Error: All points have the same dose, NULL returned") ## check input objects ... matrix SW({ expect_s4_class( fit_DoseResponseCurve(as.matrix(LxTxData)), class = "RLum.Results") }) ## test case for only two columns expect_s4_class( suppressWarnings(fit_DoseResponseCurve(LxTxData[,1:2], verbose = FALSE)), class = "RLum.Results") ## test case with all NA tmp_LxTx <- LxTxData tmp_LxTx$LxTx <- NA expect_message(expect_null( suppressWarnings(fit_DoseResponseCurve(tmp_LxTx))), "Error: After NA removal, nothing is left from the data set") ## test case without TnTx column tmp_LxTx <- LxTxData tmp_LxTx$TnTx <- NULL SW({ expect_s4_class( fit_DoseResponseCurve(tmp_LxTx, verbose = FALSE), "RLum.Results") }) ## do not include reg point expect_s4_class( fit_DoseResponseCurve( LxTxData, verbose = FALSE, fit.includingRepeatedRegPoints = FALSE), class = "RLum.Results") ## use odd data set where the calculated De is negative for EXP df_odd <- structure(list(dose = c(0, 0, 2.71828182845905, 2.74202785430992, 2.76598131771852, 2.79014403079188, 2.814517821467, 2.83910453364916, 2.86390602735137, 2.88892417883514, 2.91416088075237, 2.93961804228855, 2.96529758930721, 2.99120146449558, 3.01733162751159, 3.04369005513209, 3.07027874140241, 3.09709969778723, 3.1241549533227, 3.15144655477 ), LxTx = c(0.439, 0.851865307456887, 0.881530377359027, 0.881788046363334, 0.882047940677405, 0.882310079298982, 0.882574481384203, 0.882841166248859, 0.883110153369655, 0.883381462385488, 0.883655113098727, 0.883931125476509, 0.884209519652028, 0.88449031592586, 0.884773534767266, 0.885059196815536, 0.885347322881313, 0.885637933947948, 0.885931051172847, 0.886226695888845 ), LxTx.error = c(0.029, 1e-04, 0.0393190034426231, 0.0393304962836274, 0.0393420883803856, 0.0393537805802564, 0.0393655737376631, 0.0393774687141504, 0.03938946637844, 0.0394015676064878, 0.0394137732815415, 0.0394260842941973, 0.0394385015424588, 0.0394510259317946, 0.0394636583751979, 0.0394763997932453, 0.0394892511141562, 0.0395022132738537, 0.0395152872160239, 0.0395284738921779 )), row.names = c(NA, 20L), class = "data.frame") ## do not include reg point t <- expect_s4_class( fit_DoseResponseCurve( df_odd, verbose = FALSE), class = "RLum.Results") expect_true(is.na(t$De[[1]])) }) test_that("snapshot tests", { testthat::skip_on_cran() ## see https://github.com/R-Lum/Luminescence/pull/308 skip_on_os("windows") skip_on_os("mac") snapshot.tolerance <- 1.5e-6 set.seed(1) SW({ expect_snapshot_RLum(fit_DoseResponseCurve( LxTxData, fit.method = "EXP", verbose = FALSE, n.MC = 10 ), tolerance = snapshot.tolerance) expect_snapshot_RLum(fit_DoseResponseCurve( LxTxData, fit.method = "LIN", verbose = FALSE, n.MC = 10 ), tolerance = snapshot.tolerance) expect_snapshot_RLum(fit_DoseResponseCurve( LxTxData, fit.method = "LIN", mode = "extrapolation", fit.force_through_origin = TRUE, verbose = FALSE, n.MC = 10 ), tolerance = snapshot.tolerance) expect_snapshot_RLum(fit_DoseResponseCurve( LxTxData, fit.method = "EXP+LIN", fit.bounds = FALSE, fit.force_through_origin = TRUE, verbose = FALSE, n.MC = 10 ), tolerance = snapshot.tolerance) expect_snapshot_RLum(fit_DoseResponseCurve( LxTxData, fit.method = "EXP+EXP", verbose = TRUE, n.MC = 10 ), tolerance = snapshot.tolerance) expect_snapshot_RLum(fit_DoseResponseCurve( LxTxData, fit.method = "QDR", verbose = TRUE, n.MC = 10 ), tolerance = snapshot.tolerance) expect_snapshot_RLum(fit_DoseResponseCurve( LxTxData, fit.method = "GOK", verbose = FALSE, n.MC = 10 ), tolerance = snapshot.tolerance) expect_snapshot_RLum(fit_DoseResponseCurve( LxTxData, fit.method = "LambertW", verbose = FALSE, n.MC = 10 ), tolerance = snapshot.tolerance) expect_snapshot_RLum(fit_DoseResponseCurve( LxTxData, fit.method = "QDR", mode = "extrapolation", verbose = TRUE, n.MC = 10 ), tolerance = 2.0e-5) expect_snapshot_RLum(fit_DoseResponseCurve( LxTxData, fit.method = "QDR", mode = "extrapolation", fit.force_through_origin = TRUE, verbose = TRUE, n.MC = 10 ), tolerance = 5.0e-5) }) expect_snapshot_RLum(fit_DoseResponseCurve( LxTxData, fit.method = "LIN", mode = "extrapolation", verbose = FALSE, n.MC = 10 ), tolerance = 5.0e-5) }) test_that("additional tests", { testthat::skip_on_cran() ## self-call res <- fit_DoseResponseCurve( list(LxTxData, LxTxData), fit.method = "LIN", verbose = FALSE, n.MC = 10) expect_type(res, "list") expect_length(res, 2) set.seed(1) SW({ expect_output(temp_EXP <- fit_DoseResponseCurve( LxTxData, fit.method = "EXP", verbose = TRUE, n.MC = 10 ), " | D01 = ", fixed = TRUE) temp_LIN <- fit_DoseResponseCurve( LxTxData, fit.method = "LIN", verbose = FALSE, n.MC = 10 ) temp_EXPLIN <- fit_DoseResponseCurve( LxTxData, fit.method = "EXP+LIN", verbose = FALSE, n.MC = 10 ) temp_EXPEXP <- fit_DoseResponseCurve( LxTxData, fit.method = "EXP+EXP", verbose = FALSE, n.MC = 10 ) temp_QDR <- fit_DoseResponseCurve( LxTxData, fit.method = "QDR", verbose = FALSE, n.MC = 10 ) temp_GOK <- fit_DoseResponseCurve( LxTxData, fit.method = "GOK", verbose = FALSE, n.MC = 10) ## force through the origin temp_LxTx <-LxTxData temp_LxTx$LxTx[[7]] <- 1 expect_s4_class(fit_DoseResponseCurve( temp_LxTx, fit.method = "GOK", verbose = FALSE, n.MC = 10, fit.force_through_origin = TRUE ), "RLum.Results") temp_LambertW <- fit_DoseResponseCurve( LxTxData, fit.method = "LambertW", verbose = FALSE, n.MC = 10 ) ## FIXME(mcol): duplicate of a test in the snapshot block, we need it ## here too as coverage currenlty runs on 4.3 temp_QDR2 <- fit_DoseResponseCurve( LxTxData, fit.method = "QDR", mode = "extrapolation", fit.force_through_origin = TRUE, verbose = TRUE, n.MC = 10 ) }) expect_s3_class(temp_EXP$Fit, class = "nls") expect_s3_class(temp_LIN$Fit, class = "lm") expect_s3_class(temp_EXPLIN$Fit, class = "nls") expect_s3_class(temp_EXPEXP$Fit, class = "nls") expect_s3_class(temp_QDR$Fit, class = "lm") expect_s3_class(temp_GOK$Fit, class = "nls") expect_s3_class(temp_LambertW$Fit, class = "nls") expect_equal(round(temp_EXP$De[[1]], digits = 2), 1737.88) expect_equal(round(sum(temp_EXP$De.MC, na.rm = TRUE), digits = 0), 17562) expect_equal(round(temp_LIN$De[[1]], digits = 2), 1811.33) expect_equal(round(sum(temp_LIN$De.MC, na.rm = TRUE), digits = 0),18398) expect_equal(round(temp_EXPLIN$De[[1]], digits = 2), 1791.53) expect_equal(round(sum(temp_EXPLIN$De.MC, na.rm = TRUE), digits = 0),18045) expect_equal(round(temp_EXPEXP$De[[1]], digits = 2), 1787.15) expect_equal(round(sum(temp_EXPEXP$De.MC, na.rm = TRUE), digits = 0), 7303, tolerance = 10) expect_equal(round(temp_QDR$De[[1]], digits = 2), 1666.2) expect_equal(round(sum(temp_QDR$De.MC, na.rm = TRUE), digits = 0), 16476) expect_equal(round(temp_GOK$De[[1]], digits = 0), 1786) ##fix for different R versions if (R.version$major > "3"){ if(any(grepl("aarch64", sessionInfo()$platform))) { expect_equal(round(sum(temp_GOK$De.MC, na.rm = TRUE), digits = 1), 17796, tolerance = 0.001) } else { expect_equal(round(sum(temp_GOK$De.MC, na.rm = TRUE), digits = 1), 17828.9, tolerance = 0.1) } } expect_equal(round(temp_LambertW$De[[1]], digits = 2), 1784.78) expect_equal(round(sum(temp_LambertW$De.MC, na.rm = TRUE), digits = 0), 17422) # Check extrapolation ----------------------------------------------------- ## load data data(ExampleData.LxTxData, envir = environment()) set.seed(1) LxTxData[1,2:3] <- c(0.5, 0.001) SW({ LIN <- expect_s4_class( fit_DoseResponseCurve(LxTxData,mode = "extrapolation", fit.method = "LIN"), "RLum.Results") EXP <- expect_s4_class( fit_DoseResponseCurve(LxTxData,mode = "extrapolation", fit.method = "EXP"), "RLum.Results") EXPLIN <- expect_s4_class( suppressWarnings( fit_DoseResponseCurve( LxTxData,mode = "extrapolation", fit.method = "EXP+LIN")), "RLum.Results") GOK <- expect_s4_class( fit_DoseResponseCurve(LxTxData,mode = "interpolation", fit.method = "GOK"), "RLum.Results") LambertW <- expect_s4_class( fit_DoseResponseCurve(LxTxData,mode = "extrapolation", fit.method = "LambertW"), "RLum.Results") }) expect_equal(round(LIN$De$De,0), 165) expect_equal(round(EXP$De$De,0), 110) expect_equal(round(LambertW$De$De,0), 114) #it fails on some unix platforms for unknown reason. #expect_equivalent(round(EXPLIN$De$De,0), 110) # Check alternate --------------------------------------------------------- ## load data data(ExampleData.LxTxData, envir = environment()) set.seed(1) LxTxData[1,2:3] <- c(0.5, 0.001) ##LIN expect_s4_class( fit_DoseResponseCurve(LxTxData, mode = "alternate", fit.method = "LIN"), "RLum.Results") ## EXP EXP <- expect_s4_class( fit_DoseResponseCurve(LxTxData, mode = "alternate", fit.method = "EXP"), "RLum.Results") ## EXP+LIN EXPLIN <- expect_s4_class( suppressWarnings( fit_DoseResponseCurve(LxTxData, mode = "alternate", fit.method = "EXP+LIN", verbose = FALSE)), "RLum.Results") ## GOK expect_s4_class( fit_DoseResponseCurve( LxTxData, mode = "alternate", fit.method = "GOK", verbose = FALSE ), "RLum.Results" ) ## LambertW expect_s4_class( fit_DoseResponseCurve( LxTxData, mode = "alternate", fit.method = "LambertW", verbose = FALSE ), "RLum.Results" ) ## trigger LambertW related warning for ## extrapolation mode tmp <- structure(list( dose = c( 0, 1388.88888888889, 2777.77777777778, 4166.66666666667, 8333.33333333333, 16666.6666666667, 33333.3333333333, 0, 1388.88888888889, 2777.77777777778, 4166.66666666667, 8333.33333333333, 16666.6666666667, 33333.3333333333, 0, 1388.88888888889, 2777.77777777778, 4166.66666666667, 8333.33333333333, 16666.6666666667, 33333.3333333333 ), LxTx = c( 1.54252220145258, 4.43951568403849, 6.23268064543138, 7.84372723139206, 12.1816246695694, 16.220421545207, 19.9805214420208, 1.5693958789807, 4.01446969642433, 6.50442121919275, 8.13912565845306, 11.2791435536017, 14.2739718127927, 17.7646886436743, 1.55083317135234, 4.10327222363961, 6.1705969614814, 8.30005789933367, 12.7612004529065, 14.807776070804, 17.1563663039162 ), LxTx_X = c( 0.130074482379272, 2.59694106608334, 4.46970034588506, 3.0630786645803, 0.744512263874143, 6.0383153231303, 0.785060450424326, 3.16210365279, 0.0425273193228004, 2.9667194222907, 0.187174353876429, 4.29989597009486, 4.19802308979151, 2.77791088935002, 0.248412040945932, 0.626745230335262, 3.80396486752602, 16.1846310553925, 4.14921514089229, 1.40190110413806, 7.74406545663656 ) ), class = "data.frame", row.names = c(NA, -21L)) expect_warning(fit_DoseResponseCurve( tmp, mode = "extrapolation", fit.method = "LambertW", verbose = FALSE), "[fit_DoseResponseCurve()] Standard root estimation using stats::uniroot()", fixed = TRUE) ## only two valid points provided: this generates two warnings, hence ## we cannot use expect_warning(), which can only capture one at a time SW({ warnings <- capture_warnings(expect_message(fit_DoseResponseCurve( data.frame( dose = c(0, 1388.88888888889, NA), LxTx = c(1.54252220145258, 4.43951568403849, NA), LxTx_X = c(0.130074482379272, 2.59694106608, NA)), verbose = TRUE), "'fit.method' changed to 'LIN'")) }) expect_match(warnings, "1 NA values removed", all = FALSE, fixed = TRUE) expect_match(warnings, "Fitting a non-linear least-squares model requires", all = FALSE, fixed = TRUE) }) test_that("regression tests", { testthat::skip_on_cran() ## issue 374 -------------------------------------------------------------- ## odd data that cause NaN but must not fail df <- data.frame(DOSE = c(0,5,10,20,30), LxTx = c(10,5,-20,-30,-40), LxTx_X = c(1, 1,1,1,1)) SW({ expect_s4_class( fit_DoseResponseCurve(df, fit.method = "EXP"), "RLum.Results") expect_s4_class( fit_DoseResponseCurve(df, fit.method = "EXP+LIN"), "RLum.Results") expect_s4_class( fit_DoseResponseCurve(df, fit.method = "EXP+EXP"), "RLum.Results") expect_s4_class( fit_DoseResponseCurve(df, fit.method = "LambertW"), "RLum.Results") }) }) Luminescence/tests/testthat/test_verify_SingleGrainData.R0000644000176200001440000001057714762554470023460 0ustar liggesusers## load data data(ExampleData.XSYG, envir = environment()) object <- get_RLum(OSL.SARMeasurement$Sequence.Object, recordType = "OSL (UVVIS)", drop = FALSE) test_that("input validation", { testthat::skip_on_cran() expect_error(verify_SingleGrainData("test"), "'object' should be of class 'Risoe.BINfileData' or 'RLum.Analysis'") expect_error(verify_SingleGrainData(object, cleanup_level = "error"), "'cleanup_level' should be one of 'aliquot' or 'curve'") object@originator <- "error" expect_error(verify_SingleGrainData(object), "Object originator 'error' not supported") }) test_that("check functionality", { testthat::skip_on_cran() ## RLum.Analysis object expect_warning(output <- verify_SingleGrainData(object), "'selection_id' is NA, everything tagged for removal") expect_s4_class(output, "RLum.Results") expect_s3_class(output$selection_full, "data.frame") expect_equal(sum(output@data$selection_full$VALID), 11) expect_equal(output@originator, "verify_SingleGrainData") expect_output(res <- verify_SingleGrainData(object, cleanup = TRUE, cleanup_level = "curve", threshold = 100), "RLum.Analysis object reduced to records") expect_s4_class(res, "RLum.Analysis") expect_equal(res@originator, "verify_SingleGrainData") expect_length(res@records, 5) ## threshold too high, empty object generated expect_output(res <- verify_SingleGrainData(object, cleanup = TRUE, cleanup_level = "curve", threshold = 2000), "RLum.Analysis object reduced to records") expect_s4_class(res, "RLum.Analysis") expect_equal(res@originator, "read_XSYG2R") expect_length(res@records, 0) ## check for cleanup data(ExampleData.BINfileData, envir = environment()) t <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data) expect_warning( object = verify_SingleGrainData(t, cleanup = TRUE, threshold = 20000), regexp = "Verification and cleanup removed all records. NULL returned!") expect_null(suppressWarnings(verify_SingleGrainData(t, cleanup = TRUE, threshold = 20000))) ## Risoe.BINfileData res <- expect_silent(verify_SingleGrainData(CWOSL.SAR.Data)) expect_s4_class(res, "RLum.Results") res <- expect_output(verify_SingleGrainData(CWOSL.SAR.Data, cleanup = TRUE, cleanup_level = "curve"), "Risoe.BINfileData object reduced to records") expect_s4_class(res, "Risoe.BINfileData") ## use_fft expect_s4_class(verify_SingleGrainData(CWOSL.SAR.Data, cleanup = TRUE, use_fft = TRUE, verbose = FALSE), "Risoe.BINfileData") obj.risoe <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1) res <- expect_silent(verify_SingleGrainData(obj.risoe)) expect_s4_class(verify_SingleGrainData(obj.risoe, use_fft = TRUE), "RLum.Results") ## remove all and cleanup expect_warning( object = verify_SingleGrainData(CWOSL.SAR.Data, cleanup = TRUE, threshold = 20000), regexp = "Verification and cleanup removed all records. NULL returned!") expect_null(suppressWarnings(verify_SingleGrainData(CWOSL.SAR.Data, cleanup = TRUE, threshold = 20000))) ## empty list expect_s4_class(res <- verify_SingleGrainData(list()), "RLum.Results") expect_length(res@data, 0) expect_equal(res@originator, "verify_SingleGrainData") expect_s4_class(res <- verify_SingleGrainData(list(), cleanup = TRUE), "RLum.Analysis") expect_length(res@records, 0) expect_equal(res@originator, "verify_SingleGrainData") ##check options expect_silent(suppressWarnings(verify_SingleGrainData(object, plot = TRUE))) expect_silent(suppressWarnings(verify_SingleGrainData(object, threshold = 100))) expect_silent(suppressWarnings(verify_SingleGrainData(object, verbose = FALSE))) expect_silent(suppressWarnings(verify_SingleGrainData(object, cleanup = TRUE))) expect_silent(verify_SingleGrainData(object, cleanup_level = "curve")) expect_silent(suppressWarnings(verify_SingleGrainData(list(object), cleanup = TRUE))) expect_silent(suppressWarnings(verify_SingleGrainData(list(object)))) ## use fft option expect_silent(suppressWarnings(verify_SingleGrainData(list(object), use_fft = TRUE))) }) Luminescence/tests/testthat/test_extract_IrradiationTimes.R0000644000176200001440000000660214762554470024073 0ustar liggesusersxsyg <- system.file("extdata/XSYG_file.xsyg", package="Luminescence") binx <- system.file("extdata/BINfile_V8.binx", package = "Luminescence") test_that("input validation", { testthat::skip_on_cran() expect_error(extract_IrradiationTimes("fail"), "Wrong XSYG file name or file does not exist!") expect_error(extract_IrradiationTimes(character(0)), "'object' cannot be an empty character") expect_error(extract_IrradiationTimes(letters), "'object' should have length 1") expect_error(extract_IrradiationTimes(tempdir()), "File is expected to have 'xsyg' or 'XSYG' extension") expect_error(extract_IrradiationTimes(FALSE), "'object' should be of class 'character', 'RLum.Analysis' or a") expect_error(extract_IrradiationTimes(xsyg, file.BINX = "fail"), "Wrong BINX file name or file does not exist!") expect_error(extract_IrradiationTimes(xsyg, file.BINX = tempdir()), "File is expected to have 'binx' or 'BINX' extension") expect_message(extract_IrradiationTimes(xsyg, file.BINX = binx, txtProgressBar = FALSE), "XSYG-file and BINX-file do not contain similar entries") expect_warning(extract_IrradiationTimes(list(xsyg), file.BINX = binx, txtProgressBar = FALSE), "'file.BINX' is not supported in self-call mode") }) test_that("Test the extraction of irradiation times", { testthat::skip_on_cran() ##general test SW({ res <- expect_s4_class(extract_IrradiationTimes(xsyg, txtProgressBar = FALSE), "RLum.Results") }) ##check whether it makes sense expect_equal(sum(res$irr.times$IRR_TIME), 80) ## recordType res <- extract_IrradiationTimes(list(xsyg), recordType = list("OSL (UVVIS)"), txtProgressBar = FALSE) expect_true(all(res[[1]]@data$irr.times$STEP == "OSL (UVVIS)")) ## apply the function to something previously imported via read_BIN2R SW({ temp <- read_BIN2R(binx, fastForward = TRUE) temp <- expect_s4_class(extract_IrradiationTimes(temp)[[1]], "RLum.Results") }) expect_type(temp$irr.times$START, "double") ## write results to BINX-file tmp_BINX <- tempfile(fileext = ".binx") file.copy( from = system.file("extdata/BINfile_V8.binx", package = "Luminescence"), to = tmp_BINX, overwrite = TRUE) expect_message( extract_IrradiationTimes(xsyg, file.BINX = tmp_BINX, txtProgressBar = FALSE), "XSYG-file and BINX-file do not contain similar entries, BINX-file update skipped") tmp_XSYG <- test_path("_data/xsyg-tests/XSYG_file_TL_CASE3.xsyg") tmp_BINX <- tempfile(fileext = ".binx") write_R2BIN(read_BIN2R(binx, position = 2, verbose = FALSE), tmp_BINX, verbose = FALSE) expect_message(extract_IrradiationTimes(tmp_XSYG, file.BINX = tmp_BINX, txtProgressBar = FALSE), "'Time Since Irradiation' was redefined in the exported BINX-file") ## empty list expect_null(extract_IrradiationTimes(list())) ## special case extraction with startDate missing tmp <- read_XSYG2R(xsyg, verbose = FALSE, fastForward = TRUE) ## remove startDate tmp[[1]]@records[[9]]@info$startDate <- NULL ## test expect_s4_class( object = extract_IrradiationTimes(tmp[[1]]), class = "RLum.Results") }) Luminescence/tests/testthat/test_calc_EED_Model.R0000644000176200001440000000360414762554470021570 0ustar liggesusers## load data data(ExampleData.MortarData, envir = environment()) test_that("input validation", { testthat::skip_on_cran() ## data expect_error(calc_EED_Model(), "'data' should be of class 'data.frame'") expect_error(calc_EED_Model(1L), "'data' should be of class 'data.frame'") ## expected dose expect_error(calc_EED_Model(MortarData), "'expected_dose' should be of class 'numeric'") expect_error(calc_EED_Model(MortarData, expected_dose = "error"), "'expected_dose' should be of class 'numeric'") ## IndivDose expect_error(calc_EED_Model(MortarData, expected_dose = 0.17, MinIndivDose = "error"), "'MinIndivDose' should be of class 'numeric") expect_error(calc_EED_Model(MortarData, expected_dose = 0.17, MaxIndivDose = "error"), "'MaxIndivDose' should be of class 'numeric") }) test_that("check functionality", { testthat::skip_on_cran() ## automated set.seed(1) SW({ expect_s4_class(calc_EED_Model(MortarData, expected_dose = 11.7), "RLum.Results") }) ## TODO this leads to a crash and should be checked ## calc_EED_Model(data = MortarData, expected_dose = 11.7, n.simul = 1950) ## fast run expect_s4_class(calc_EED_Model( data = MortarData, kappa = 14, sigma_distr = 0.37, verbose = FALSE, expected_dose = 11.7), "RLum.Results") ## fast run, no plot, no terminal expect_s4_class(calc_EED_Model( data = MortarData, kappa = 14, sigma_distr = 0.37, verbose = FALSE, plot = FALSE, expected_dose = 11.7), "RLum.Results") ## more coverage SW({ expect_s4_class(calc_EED_Model( data = MortarData, sigma_distr = 0.37, verbose = TRUE, method_control = list(trace = TRUE, trace_plot = TRUE), expected_dose = 11.7), "RLum.Results") }) }) Luminescence/tests/testthat/test_get_RLum.R0000644000176200001440000000430614762554470020607 0ustar liggesusersdata(ExampleData.DeValues, envir = environment()) temp <- calc_CentralDose(ExampleData.DeValues$CA1, plot = FALSE, verbose = FALSE) temp_RLumDataCurve <- set_RLum(class = "RLum.Data.Curve") temp_RLumDataImage <- set_RLum(class = "RLum.Data.Image") temp_RLumDataSpectrum <- set_RLum(class = "RLum.Data.Spectrum") temp_RLumAnalysis <- set_RLum(class = "RLum.Analysis") temp_RLumResults <- set_RLum(class = "RLum.Results") test_that("check class and length of output", { testthat::skip_on_cran() expect_s3_class(get_RLum(temp), class = "data.frame") expect_type(get_RLum(temp, data.object = "args"), "list") ##test objects expect_type(get_RLum(temp_RLumDataCurve), "double") expect_type(get_RLum(temp_RLumDataImage), "logical") expect_type(get_RLum(temp_RLumDataSpectrum), "logical") expect_null(suppressWarnings(get_RLum(temp_RLumAnalysis))) expect_null(get_RLum(temp_RLumResults)) }) test_that("check get_RLum on a list and NULL", { testthat::skip_on_cran() object <- set_RLum(class = "RLum.Analysis", records = rep(set_RLum(class = "RLum.Data.Curve"), 10)) expect_warning(get_RLum(object, recordType = "test"), "This request produced an empty list of records") expect_null(get_RLum(NULL), "NULL") expect_warning(res <- get_RLum(list(temp, "test")), "object #2 in the list was not of type 'RLum'") expect_length(res, 2) res <- get_RLum(list(temp, temp_RLumAnalysis), null.rm = TRUE) expect_length(res, 1) ##check list of such objects l <- list(object, object) l[[1]]@records[[1]]@recordType <- "IRSL" expect_length(suppressWarnings(get_RLum(l, recordType = "IRSL", null.rm = FALSE)), 2) expect_length(suppressWarnings(get_RLum(l, recordType = "IRSL", null.rm = TRUE)), 0) ##check class argument a <- list(set_RLum("RLum.Results"), set_RLum("RLum.Analysis", records = list(set_RLum("RLum.Data.Curve")))) expect_type(get_RLum(a, class = "test", drop = FALSE), "list") expect_type(get_RLum(a, class = "test", drop = TRUE), "list") expect_type(get_RLum(a, class = "RLum.Results", drop = FALSE), "list") expect_type(get_RLum(a, class = "RLum.Analysis", drop = TRUE), "list") expect_type(get_RLum(list(temp_RLumResults, temp_RLumAnalysis)), "list") }) Luminescence/tests/testthat/test_plot_RLum.R0000644000176200001440000000267614762554470021016 0ustar liggesuserstest_that("check functionality", { testthat::skip_on_cran() ## create dataset to test image <- as(array(rnorm(1000), dim = c(10,10,10)), "RLum.Data.Image") expect_silent(plot_RLum(image)) ## check list with different dispatched arguments image_short <- as(array(rnorm(100), dim = c(10, 10, 1)), "RLum.Data.Image") expect_silent(plot_RLum(list(image_short, image_short), main = list("test1", "test2"), mtext = "test")) ## trigger error expect_error(plot_RLum("error"), "[plot_RLum()] 'object' should be of class 'RLum'", fixed = TRUE) ## test list of RLum.Analysis l <- list(set_RLum( class = "RLum.Analysis", records = list( set_RLum("RLum.Data.Curve", data = matrix(1:10, ncol = 2)), set_RLum("RLum.Data.Curve", data = matrix(1:20, ncol = 2))))) expect_silent(plot_RLum(l, main = list("test", "test2"), mtext = "test")) ## empty object expect_silent(plot_RLum(set_RLum("RLum.Analysis"))) expect_silent(plot_RLum(set_RLum("RLum.Data.Image"))) ## plot results objects data(ExampleData.BINfileData, envir = environment()) object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1:3) results <- analyse_SAR.CWOSL( object = object, signal.integral.min = 1, signal.integral.max = 2, plot = FALSE, verbose = FALSE, background.integral.min = 900, background.integral.max = 1000, fit.method = "LIN") expect_null(plot_RLum.Results(results)) }) Luminescence/tests/testthat/test_as_latex_table.R0000644000176200001440000000275614762554470022047 0ustar liggesuserstest_that("Check .as.latex.table()", { testthat::skip_on_cran() ## data.frame df <- data.frame(x = "test", y = 1:10, z = as.factor(letters[1:10])) expect_error(.as.latex.table(df, select = 2), "Undefined columns selected") expect_output(.as.latex.table(df)) expect_output(.as.latex.table(df, select = "x")) ## RLum.Results expect_null(.as.latex.table(as(object = list(1:10), Class = "RLum.Results"))) ## DRAC highlights dh <- use_DRAC(template_DRAC(preset = "DRAC-example_quartz", notification = FALSE), verbose = FALSE) expect_output(.as.latex.table(dh)) }) test_that("Check .as.latex.table.data.frame()", { testthat::skip_on_cran() expect_error(.as.latex.table.data.frame("error"), "'x' should be of class 'data.frame'") df <- data.frame(x = "test", y = 1:10) expect_error(.as.latex.table.data.frame(df, col.names = "col1"), "Length of 'col.names' does not match the number of columns") expect_error(.as.latex.table.data.frame(df, row.names = "row1"), "Length of 'row.names' does not match the number of rows") expect_error(.as.latex.table.data.frame(df, pos = c("pos1", "pos2")), "Length of 'pos' does not match the number of columns") expect_output(.as.latex.table.data.frame(df, tabular_only = TRUE)) expect_output(.as.latex.table.data.frame(df[, 1, drop = FALSE], pos = "error")) }) Luminescence/tests/testthat/test_calc_MaxDose.R0000755000176200001440000000202014762554470021405 0ustar liggesusersdata(ExampleData.DeValues, envir = environment()) temp <- calc_MaxDose(ExampleData.DeValues$CA1, sigmab = 0.2, par = 3, plot = TRUE, verbose = FALSE) test_that("check class and length of output", { testthat::skip_on_cran() expect_s4_class(temp, "RLum.Results") expect_equal(length(temp), 9) }) test_that("check values from output example", { testthat::skip_on_cran() results <- get_RLum(temp) expect_equal(round(results$de, digits = 2), 76.58) expect_equal(round(results$de_err, digits = 2), 7.57) expect_equal(results$ci_level, 0.95) expect_equal(round(results$ci_lower, digits = 2), 69.65) expect_equal(round(results$ci_upper, digits = 2), 99.33) expect_equal(results$par, 3) expect_equal(round(results$sig, digits = 2), 1.71) expect_equal(round(results$p0, digits = 2), 0.65) expect_equal(results$mu, NA) expect_equal(round(results$Lmax, digits = 2), -19.79) expect_equal(round(results$BIC, digits = 2), 58.87) }) Luminescence/tests/testthat/test_methods_DRAC.R0000644000176200001440000000514714762554470021331 0ustar liggesusers##Full check test_that("methods_DRAC", { testthat::skip_on_cran() input <- template_DRAC(notification = FALSE) ## print expect_message( expect_output(print(input, blueprint = TRUE)), "You can copy all lines above to your script and fill in the data") expect_output(print(input, blueprint = FALSE)) ## as.data.frame expect_s3_class(as.data.frame(input), "data.frame") expect_s3_class(as.data.frame(input), "DRAC.data.frame") SW({ ## [[<- expect_warning({ input <- template_DRAC() input[[1]] <- 1i }, regexp = "'value' should be of class 'integer', 'character', 'numeric' or") expect_warning({ input <- template_DRAC() input[[1]] <- c(1, 2) }, regexp = "Project ID should have length 1") expect_warning({ input <- template_DRAC() input[[4]] <- "error" }, regexp = "Conversion factors: Invalid option, valid options are:") expect_warning({ input <- template_DRAC() input[[5]] <- "1" }, regexp = "found character, expected numeric") expect_warning({ input <- template_DRAC() input[[5]] <- "X" Luminescence:::.warningCatcher(input[[5]] <- "abc") }, regexp = "Cannot coerce 'abc' to a numeric value, input must be numeric or") expect_warning({ input <- template_DRAC(nrow = 2) input[[5]] <- c("X", 1) Luminescence:::.warningCatcher(input[[5]] <- c("X", "abc")) }, regexp = "Cannot coerce 'abc' to a numeric value, input must be numeric or") input <- template_DRAC(nrow = 2) input[[5]] <- c("X", 1) expect_silent({ input[[5]] <- c("X", 2) }) input <- template_DRAC(notification = FALSE) expect_warning({ input[[5]] <- 1L }, regexp = "found integer, expected numeric") expect_warning({ input[[5]] <- "abc" }) expect_warning({ input <- template_DRAC() input[[32]] <- 200L Luminescence:::.warningCatcher(input[[32]] <- "abc") }, regexp = "found character, expected integer -> cannot coerce, set NAs") expect_warning({ input <- template_DRAC() input[[32]] <- 200L Luminescence:::.warningCatcher(input[[32]] <- "100") }, regexp = "found character, expected integer -> coercing to integer") expect_warning({ input <- template_DRAC() input[[13]] <- 1 }, regexp = "Input must be of class 'character'") ## [<- expect_identical( object = template_DRAC(notification = FALSE), expected = { input <- template_DRAC(notification = FALSE) input[1] <- NA_character_ input }) ## $<- expect_identical( object = template_DRAC(), expected = { input <- template_DRAC() input$`Project ID` <- NA_character_ input }) }) }) Luminescence/tests/testthat/test_internals.R0000644000176200001440000005164014762554470021073 0ustar liggesuserstest_that("Test internals", { testthat::skip_on_cran() ## since below we are testing internal functions that use `.throw_error()` ## and `.throw_warning()`, we need to treat this block as a function ## definition and set the function name .set_function_name("test") on.exit(.unset_function_name(), add = TRUE) # .expand_parameters() ------------------------------------------------------ ##create empty function ... reminder ##this is an internal function, the first object is always discarded, it ##might be a list of RLum.Analysis objects is might be super large f <- function(object, a, b = 1, c = list(), d = NULL) { Luminescence:::.expand_parameters(len = 3) } ##test some functions ##missing arguments must be identified expect_error(f(), "Argument 'a' missing, with no default") ##check whether the objects are properly recycled expect_type(f(object, a = 1), "list") expect_length(f(object, a = 1, c = list(a = 1, b = 2, c = 3))$c, 3) expect_length(f(object, a = (1), c = list(a = 1, b = 2, c = 3))$c, 3) expect_equal(f(object, a = (1 + 10), c = list(a = 1, b = 2, c = 3))$a[[1]], 11) # .calc_HPDI() ------------------------------------------------------------ set.seed(1234) test <- expect_type(Luminescence:::.calc_HPDI(rnorm(100), plot = TRUE), "double") expect_equal(round(sum(test),2), 0.20, tolerance = 1) ##create a case where the value cannot be calculated expect_type(.calc_HPDI(rlnorm(n = 100, meanlog = 10, sdlog = 100)), type = "logical") # .warningCatcher() --------------------------------------------------------------------------- expect_warning(Luminescence:::.warningCatcher(for(i in 1:5) warning("test")), regexp = "\\(1\\) test\\: This warning occurred 5 times\\!") # .smoothing ---------------------------------------------------------------------------------- expect_silent(Luminescence:::.smoothing(runif(100), k = 5, method = "median")) expect_silent(.smoothing(runif(200), method = "median")) expect_silent(.smoothing(runif(100), k = 4, method = "mean")) expect_silent(.smoothing(runif(100), k = 4, method = "median")) expect_error(.smoothing(runif(100), method = "error"), "'method' should be one of 'mean' or 'median'") expect_error(.smoothing(runif(100), align = "error"), "'align' should be one of 'right', 'center' or 'left'") ## .normalise_curve() ----------------------------------------------------- data <- runif(100) expect_equal(data, .normalise_curve(data, FALSE)) expect_equal(.normalise_curve(data, TRUE), .normalise_curve(data, "max")) expect_silent(.normalise_curve(data, "last")) expect_silent(.normalise_curve(data, "huot")) data[100] <- 0 expect_warning(.normalise_curve(data, "last"), "Curve normalisation produced Inf/NaN values, values replaced") # fancy_scientific ()-------------------------------------------------------------------------- plot(seq(1e10, 1e20, length.out = 10),1:10, xaxt = "n") expect_silent(axis(1, at = axTicks(1),labels = Luminescence:::fancy_scientific(axTicks(1)))) # .add_fancy_log_axis() ----------------------------------------------------- y <- c(0.1, 0.001, 0.0001) plot(1:length(y), y, yaxt = "n", log = "y") expect_silent(Luminescence:::.add_fancy_log_axis(side = 2, las = 1)) expect_null(.add_fancy_log_axis(side = 1, las = 1)) # .get_keyword_coordinates() ---------------------------------------------- xlim <- c(0, 5) ylim <- c(2, 10) coords <- .get_keyword_coordinates(xlim = xlim, ylim = ylim) expect_type(coords, "list") expect_named(coords, c("pos", "adj")) expect_length(coords, 2) expect_equal(coords$pos, c(0, 10)) expect_equal(.get_keyword_coordinates(pos = c(1, 2), xlim, ylim)$pos, c(1, 2)) expect_equal(.get_keyword_coordinates(pos = "topleft", xlim, ylim)$pos, c(0, 10)) expect_equal(.get_keyword_coordinates(pos = "top", xlim, ylim)$pos, c(2.5, 10)) expect_equal(.get_keyword_coordinates(pos = "topright", xlim, ylim)$pos, c(5, 10)) expect_equal(.get_keyword_coordinates(pos = "left", xlim, ylim)$pos, c(0, 6)) expect_equal(.get_keyword_coordinates(pos = "center", xlim, ylim)$pos, c(2.5, 6)) expect_equal(.get_keyword_coordinates(pos = "right", xlim, ylim)$pos, c(5, 6)) expect_equal(.get_keyword_coordinates(pos = "bottomleft", xlim, ylim)$pos, c(0, 2)) expect_equal(.get_keyword_coordinates(pos = "bottom", xlim, ylim)$pos, c(2.5, 2)) expect_equal(.get_keyword_coordinates(pos = "bottomright", xlim, ylim)$pos, c(5, 2)) # .create_StatisticalSummaryText() ------------------------------------------------------------ stats <- calc_Statistics(data.frame(1:10,1:10)) expect_silent(Luminescence:::.create_StatisticalSummaryText()) expect_equal(.create_StatisticalSummaryText(stats, keywords = "mean"), "mean = 5.5") expect_equal(.create_StatisticalSummaryText(stats, keywords = "unweighted$mean"), "mean = 5.5") expect_equal(.create_StatisticalSummaryText(stats, keywords = "weighted$mean"), "weighted$mean = 1.89") # .unlist_RLum() ------------------------------------------------------------------------------ expect_length(Luminescence:::.unlist_RLum(list(a = list(b = list(c = list(d = 1, e = 2))))), 2) # .rm_nonRLum() ----------------------------------------------------------- expect_type( Luminescence:::.rm_nonRLum(c(list(set_RLum("RLum.Analysis"), set_RLum("RLum.Analysis")), 2)), "list") expect_type( Luminescence:::.rm_nonRLum( c(list(set_RLum("RLum.Analysis"), set_RLum("RLum.Analysis")), 2), class = "RLum.Analysis"), "list") # .rm_NULL_elements() ----------------------------------------------------------- expect_type(.rm_NULL_elements(list("a", NULL)), "list") t <- expect_type(.rm_NULL_elements(list(NULL, NULL)), "list") expect_length(t, 0) # .matrix_binning() --------------------------------------------------------------------------- m <- matrix(data = c(rep(1:20, each = 20)), ncol = 20, nrow = 20) rownames(m) <- 1:nrow(m) colnames(m) <- 1:ncol(m) ##crash the function expect_error(Luminescence:::.matrix_binning("none matrix"), "'m' should be of class 'matrix'") ##test operation modes and arguments expect_type(Luminescence:::.matrix_binning(m, bin_size = 4, bin_col = FALSE), "integer") expect_type(Luminescence:::.matrix_binning(m, bin_size = 4, bin_col = TRUE), "integer") ##test row / column renaming options expect_type(Luminescence:::.matrix_binning(m, bin_size = 2, bin_col = FALSE, names = "groups"), "integer") expect_type(Luminescence:::.matrix_binning(m, bin_size = 2, bin_col = FALSE, names = "mean"), "integer") expect_type(Luminescence:::.matrix_binning(m, bin_size = 2, bin_col = FALSE, names = "sum"), "integer") expect_type(Luminescence:::.matrix_binning(m, bin_size = 2, bin_col = FALSE, names = c("test1", "test2")), "integer") ##clean-up rm(m) # .download_file() -------------------------------------------------------- ## returns just NULL (no URL detected) expect_null(.download_file(url = "_url")) ## attempts download but fails url.404 <- "https://raw.githubusercontent.com/R-Lum/rxylib/master/inst/extg" expect_message( expect_message( expect_message(expect_null(.download_file(url = url.404)), "URL detected:"), "Attempting download ..."), "FAILED") ## attempts download and succeeds url.ok <- "https://raw.githubusercontent.com/R-Lum/rxylib/master/codecov.yml" suppressMessages( # silence other messages already tested above expect_message(expect_type(.download_file(url = url.ok), "character"), "OK") ) # .get_named_list_element ------------------------------------------------ ## create random named list element l <- list( a = list(x = 1:10), b = list(x = 1:10) ) t <- expect_type(.get_named_list_element(l, element = "x"), type = "list") expect_equal(sum(unlist(t)), expected = 110) ## .throw_error() --------------------------------------------------------- fun.int <- function() { .set_function_name("fun.int") on.exit(.unset_function_name(), add = TRUE) .throw_error("Error message") } fun.ext <- function() fun.int() fun.docall <- function() do.call(fun.ext, args = list()) fun.docall_do <- function() fun.docall() expect_error(fun.int(), "[fun.int()] Error message", fixed = TRUE) expect_error(fun.ext(), "[fun.int()] Error message", fixed = TRUE) expect_error(fun.docall(), "[fun.int()] Error message", fixed = TRUE) expect_error(fun.docall_do(), "[fun.int()] Error message", fixed = TRUE) ## .throw_warning() ------------------------------------------------------- fun.int <- function() { .set_function_name("fun.int") on.exit(.unset_function_name(), add = TRUE) .throw_warning("Warning message") } fun.ext <- function() fun.int() fun.docall <- function() do.call(fun.ext, args = list()) fun.docall_do <- function() fun.docall() expect_warning(fun.int(), "[fun.int()] Warning message", fixed = TRUE) expect_warning(fun.ext(), "[fun.int()] Warning message", fixed = TRUE) expect_warning(fun.docall(), "[fun.int()] Warning message", fixed = TRUE) expect_warning(fun.docall_do(), "[fun.int()] Warning message", fixed = TRUE) ## SW() ------------------------------------------------------------------ expect_silent(SW(cat("silenced message"))) expect_silent(SW(message("silenced message"))) expect_silent(SW(warning("silenced message"))) expect_silent(SW(.throw_warning("silenced message"))) expect_error(SW(stop("error message")), "error message") expect_error(SW(.throw_error("error message")), "error message") ## .validate_args() ------------------------------------------------------- fun1 <- function(arg) { .validate_args(arg, c("val1", "val2", "val3"), null.ok = TRUE) } expect_silent(fun1(NULL)) expect_equal(fun1(arg = "val1"), "val1") expect_equal(fun1(arg = c("val1", "val2")), "val1") expect_equal(fun1(arg = c("val3", "val2")), "val3") expect_error(fun1(arg = c("error", "val1")), "[test()] 'arg' contains multiple values but not all of them", fixed = TRUE) expect_error(fun1(arg = "error"), "[test()] 'arg' should be one of 'val1', 'val2', 'val3' or NULL", fixed = TRUE) fun2 <- function(arg = c("val1", "val2", "val3")) { .validate_args(arg, c("val1", "val2", "val3"), name = "other_name") } expect_equal(fun2(), "val1") expect_error(fun2(arg = NULL), "[test()] 'other_name' should be one of 'val1', 'val2' or 'val3'", fixed = TRUE) expect_error(fun2(arg = "error"), "[test()] 'other_name' should be one of 'val1', 'val2' or 'val3'", fixed = TRUE) fun3 <- function(arg) { .validate_args(arg, c("val1", "val2"), extra = "'other.val'", null.ok = FALSE) } expect_error(fun3(arg = "error"), "[test()] 'arg' should be one of 'val1', 'val2' or 'other.val'", fixed = TRUE) fun4 <- function(arg) { .validate_args(arg, c("val1", "val2"), extra = "'other.val'", null.ok = TRUE) } expect_error(fun4(arg = "error"), "[test()] 'arg' should be one of 'val1', 'val2', 'other.val' or NULL", fixed = TRUE) fun.err <- function(arg) { .validate_args(arg) } expect_error(fun.err("val1"), "is missing, with no default") ## .validate_class() ------------------------------------------------------ fun1 <- function(arg) { .validate_class(arg, "data.frame") } fun2 <- function(arg) { .validate_class(arg, "data.frame", throw.error = FALSE) } expect_true(fun1(iris)) expect_true(.validate_class(iris, c("data.frame", "integer"))) expect_true(.validate_class(iris, c("data.frame", "integer"), throw.error = FALSE)) expect_warning(expect_false(.validate_class(arg <- NULL, "data.frame", throw.error = FALSE)), "'arg' should be of class 'data.frame'") expect_error(fun1(), "'arg' should be of class 'data.frame'") expect_error(fun1(NULL), "'arg' should be of class 'data.frame'") expect_error(.validate_class(test <- 1:5), "is missing, with no default") expect_error(.validate_class(test <- 1:5, "data.frame"), "'test' should be of class 'data.frame'") expect_error(.validate_class(test <- 1:5, c("list", "data.frame", "numeric")), "'test' should be of class 'list', 'data.frame' or 'numeric'") expect_error(.validate_class(test <- 1:5, c("list", "data.frame")), "'test' should be of class 'list' or 'data.frame'") expect_error(.validate_class(test <- 1:5, c("list", "data.frame"), extra = "another type"), "'test' should be of class 'list', 'data.frame' or another") expect_error(.validate_class(test <- 1:5, c("list", "data.frame"), name = "'other_name'"), "'other_name' should be of class 'list' or 'data.frame'") expect_warning(fun2(), "'arg' should be of class 'data.frame'") ## .validate_not_empty() -------------------------------------------------- expect_true(.validate_not_empty(letters, "vector")) expect_error(.validate_not_empty(test <- c(), "vector"), "'test' cannot be an empty vector") expect_error(.validate_not_empty(test <- list()), "'test' cannot be an empty list") expect_error(.validate_not_empty(test <- numeric(0)), "'test' cannot be an empty numeric") expect_error(.validate_not_empty(test <- data.frame()), "'test' cannot be an empty data.frame") expect_error(.validate_not_empty(iris[0, ]), "'iris' cannot be an empty data.frame") expect_error(.validate_not_empty(iris[, 0]), "'iris' cannot be an empty data.frame") expect_error(.validate_not_empty(test <- matrix(NA, 0, 5)), "'test' cannot be an empty matrix") expect_error(.validate_not_empty(test <- matrix(NA, 5, 0)), "'test' cannot be an empty matrix") expect_error(.validate_not_empty(test <- set_RLum("RLum.Analysis")), "'test' cannot be an empty RLum.Analysis") expect_error(.validate_not_empty(list(), "list", name = "'other_name'"), "'other_name' cannot be an empty list") expect_warning(expect_false(.validate_not_empty(test <- list(), "list", throw.error = FALSE)), "'test' cannot be an empty list") ## .validate_length() ----------------------------------------------------- expect_true(.validate_length(letters, 26)) expect_error(.validate_length(letters), "is missing, with no default") expect_error(.validate_length(letters, 25), "'letters' should have length 25") expect_error(.validate_length(letters, 25, name = "'other_name'"), "'other_name' should have length 25") expect_warning(expect_false(.validate_length(letters, 25, throw.error = FALSE)), "'letters' should have length 25") ## .validate_positive_scalar() -------------------------------------------- expect_silent(.validate_positive_scalar(int = TRUE)) expect_silent(.validate_positive_scalar(1.3)) expect_silent(.validate_positive_scalar(2, int = TRUE)) expect_silent(.validate_positive_scalar(NULL, int = TRUE, null.ok = TRUE)) expect_error(.validate_positive_scalar(test <- "a"), "'test' should be a positive scalar") expect_error(.validate_positive_scalar(test <- NULL), "'test' should be a positive scalar") expect_error(.validate_positive_scalar(iris), "'iris' should be a positive scalar") expect_error(.validate_positive_scalar(1:2, name = "'var'"), "'var' should be a positive scalar") expect_error(.validate_positive_scalar(0, name = "'var'"), "'var' should be a positive scalar") expect_error(.validate_positive_scalar(-1, name = "'var'"), "'var' should be a positive scalar") expect_error(.validate_positive_scalar(1.5, int = TRUE, name = "'var'"), "'var' should be a positive integer") expect_error(.validate_positive_scalar(NA, int = TRUE, name = "The variable"), "The variable should be a positive integer") ## .validate_logical_scalar() --------------------------------------------- expect_silent(.validate_logical_scalar()) expect_silent(.validate_logical_scalar(TRUE)) expect_silent(.validate_logical_scalar(FALSE)) expect_silent(.validate_logical_scalar(NULL, null.ok = TRUE)) expect_error(.validate_logical_scalar(test <- "a"), "'test' should be a single logical value") expect_error(.validate_logical_scalar(test <- NULL), "'test' should be a single logical value") expect_error(.validate_logical_scalar(iris), "'iris' should be a single logical value") expect_error(.validate_logical_scalar(c(TRUE, FALSE), name = "'var'"), "'var' should be a single logical value") expect_error(.validate_logical_scalar(0, name = "'var'"), "'var' should be a single logical value") expect_error(.validate_logical_scalar(NA, name = "The variable"), "The variable should be a single logical value") ## .require_suggested_package() ------------------------------------------- expect_true(.require_suggested_package("utils")) expect_error(.require_suggested_package("error"), "This function requires the 'error' package: to install it") expect_error(.require_suggested_package("error", reason = "Reporting a good error"), "Reporting a good error requires the 'error' package") expect_warning( expect_false(.require_suggested_package("error", throw.error = FALSE), "This function requires the 'error' package: to install it")) ## .listify() ------------------------------------------------------------- expect_equal(.listify(1, length = 3), list(1, 1, 1)) expect_equal(.listify(letters, length = 5), .listify(list(letters), length = 5)) ## .collapse() ------------------------------------------------------------ expect_equal(.collapse(1:3), "'1', '2', '3'") expect_equal(.collapse(1:3, quote = FALSE), "1, 2, 3") expect_equal(.collapse(NULL), "") ## .shorten_filename() ---------------------------------------------------- expect_equal(.shorten_filename("/path/to/filename"), "/path/to/filename") expect_equal(.shorten_filename("/path/to/a_somewhat_longer_filename", max.width = 27), "/path/…what_longer_filename") ## C++ code ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ## # src_create_RLumDataCurve_matrix ------------------------------------------------------------- ##RLum.Data.Curve() ... test src_create_RLumDataCurve_matrix() expect_output( Luminescence:::src_create_RLumDataCurve_matrix( DATA = 1:100, VERSION = 4, NPOINTS = 100, LTYPE = "TL", LOW = 0, HIGH = 500, AN_TEMP = 0, TOLDELAY = 0, TOLON = 0, TOLOFF = 0 ) ) ## cover NA case expect_type( Luminescence:::src_create_RLumDataCurve_matrix( DATA = 1:100, VERSION = 4, NPOINTS = 0, LTYPE = "OSL", LOW = 0, HIGH = 500, AN_TEMP = 0, TOLDELAY = 0, TOLON = 0, TOLOFF = 0), type = "double") ## case for a delayed hit ramp start expect_type( Luminescence:::src_create_RLumDataCurve_matrix( DATA = 1:100, VERSION = 4, NPOINTS = 0, LTYPE = "OSL", LOW = 0, HIGH = 500, AN_TEMP = 0, TOLDELAY = 10, TOLON = 0, TOLOFF = 0), type = "double") ## case for a delayed hit ramp start expect_type( Luminescence:::src_create_RLumDataCurve_matrix( DATA = 1:100, VERSION = 4, NPOINTS = 0, LTYPE = "OSL", LOW = 0, HIGH = 500, AN_TEMP = 100, TOLDELAY = 0, TOLON = 0, TOLOFF = 0), type = "double") ## generate strange curve and more tests expect_type(Luminescence:::src_create_RLumDataCurve_matrix( DATA = 1:100, VERSION = 4, NPOINTS = 100, LTYPE = "TL", LOW = 0, HIGH = 500, AN_TEMP = 200, TOLDELAY = 10, TOLON = 10, TOLOFF = 400), type = "double") }) Luminescence/tests/testthat/test_write_R2BIN.R0000644000176200001440000001140714762554470021117 0ustar liggesusers## load data data(ExampleData.BINfileData, envir = environment()) ## replace the with numeric and factors with characters CWOSL.SAR.Data@METADATA$VERSION <- as.numeric(CWOSL.SAR.Data@METADATA$VERSION) CWOSL.SAR.Data@METADATA[] <- lapply(CWOSL.SAR.Data@METADATA, function(x) { if (is.factor(x)) as.character(x) else x }) ## combine with existing BIN-file object empty <- set_Risoe.BINfileData() new <- data.table::rbindlist(list(empty@METADATA, CWOSL.SAR.Data@METADATA), fill = TRUE) new <- set_Risoe.BINfileData(METADATA = as.data.frame(new, stringsAsFactors = FALSE), DATA = CWOSL.SAR.Data@DATA) new@METADATA[is.na(new@METADATA)] <- 0 new@METADATA$RECTYPE <- 1 new <- subset(new, ID == 1:2) test_that("check functionality", { testthat::skip_on_cran() ##create files path <- tempfile() SW({ write_R2BIN(object = new, file = paste0(path, "BINfile_V3.bin"), version = "03") write_R2BIN(object = new, file = paste0(path, "BINfile_V4.bin"), version = "04") write_R2BIN(object = new, file = paste0(path, "BINfile_V5.binx"), version = "05") write_R2BIN(object = new, file = paste0(path, "BINfile_V6.binx"), version = "06") write_R2BIN(object = new, file = paste0(path, "BINfile_V7.binx"), version = "07") write_R2BIN(object = new, file = paste0(path, "BINfile_V8.binx"), version = "08") }) temp <- new temp@METADATA[1, "TIME"] <- "1215" temp@METADATA[1, "SEQUENCE"] <- "123456" temp@METADATA[1, "SAMPLE"] <- "" temp@METADATA[1, "COMMENT"] <- "" temp@.RESERVED <- list(val1 = c("a", "b"), val2 = c("c", "d")) expect_silent( write_R2BIN(object = temp, file = paste0(path, "BINfile_V3.bin"), version = "03", verbose = FALSE)) SW({ temp@METADATA[, "VERSION"] <- 4 write_R2BIN(object = temp, file = paste0(path, "BINfile_V4.bin"), version = "04") temp@METADATA[, "VERSION"] <- 5 write_R2BIN(object = temp, file = paste0(path, "BINfile_V5.binx"), version = "05") temp@METADATA[, "VERSION"] <- 6 write_R2BIN(object = temp, file = paste0(path, "BINfile_V6.binx"), version = "06") temp@METADATA[, "VERSION"] <- 7 write_R2BIN(object = temp, file = paste0(path, "BINfile_V7.binx"), version = "07") temp@METADATA[1, "TIME"] <- NA temp@METADATA[, "VERSION"] <- 8 write_R2BIN(object = temp, file = paste0(path, "BINfile_V8.binx"), version = "08") ## trigger edge case temp@METADATA[, "FNAME"] <- numeric() expect_silent(write_R2BIN(object = temp, file = paste0(path, "BINfile_V8.binx"), version = "08", verbose = FALSE)) }) ## silent correction of the file extension SW({ skip_on_os("windows") # FIXME(mcol): see commit 26889a6 write_R2BIN(object = new, file = paste0(path, "BINfile_V8.bin"), version = "08") }) ## check UTF-8 characters new_utf8 <- new new_utf8@METADATA$FNAME <- c("I do not belong in here \xb5m") t <- expect_silent(write_R2BIN(new_utf8, file = paste0(path, "BINfile_V8.bin"), version = "08", verbose = FALSE)) expect_type(object = t, type = "character") }) test_that("input validation", { testthat::skip_on_cran() expect_error(write_R2BIN(object = new, file = FALSE), "'file' should be of class 'character'") expect_error(write_R2BIN(object = "a", file = ""), "'object' should be of class 'Risoe.BINfileData'") expect_error(suppressWarnings(write_R2BIN(object = set_Risoe.BINfileData(), file = ""))) temp <- new temp@METADATA <- temp@METADATA[, 1:79] expect_error(write_R2BIN(object = temp, file = "test"), "Your Risoe.BINfileData object is not compatible with the latest") temp <- new temp@METADATA[1, "SEQUENCE"] <- "1234567890" expect_error(write_R2BIN(object = temp, file = "test"), "Value in 'SEQUENCE' exceeds storage limit") temp <- new temp@METADATA[1, "USER"] <- "1234567890" expect_error(write_R2BIN(object = temp, file = "test"), "'USER' exceeds storage limit") temp <- new temp@METADATA[1, "SAMPLE"] <- paste0(rep("a", 25), collapse="") expect_error(write_R2BIN(object = temp, file = "test"), "'SAMPLE' exceeds storage limit") temp <- new temp@DATA[[2]] <- 1:25000 temp@METADATA[1, "POSITION"] <- paste0(rep("a", 50), collapse="") expect_error(write_R2BIN(object = temp, file = "test"), "records contain more than 9,999 data points") expect_warning( expect_error(write_R2BIN(object = temp, compatibility.mode = TRUE, file = paste0(tempfile(), "BINfile_V8.binx")), "'COMMENT' exceeds storage limit"), "some data sets have more than 9,999 points") }) Luminescence/tests/testthat/test_convert_Wavelength2Energy.R0000644000176200001440000000554614762554470024200 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(convert_Wavelength2Energy("test"), "'object' should be of class 'RLum.Data.Spectrum', 'data.frame'") expect_error(convert_Wavelength2Energy(data.frame()), "'object' cannot be an empty data.frame") expect_error(convert_Wavelength2Energy(matrix()), "'object' should have at least two columns") expect_error(convert_Wavelength2Energy(set_RLum("RLum.Data.Spectrum")), "'object' contains no data") }) test_that("check functionality", { testthat::skip_on_cran() ## Set up test scenario --------------------------------------------------- #create artifical dataset according to Mooney et al. (2013) lambda <- seq(400,800,50) data <- matrix(data = rep(1, 2 * length(lambda)), ncol = 2) rownames(data) <- lambda colnames(data) <- 1:ncol(data) ##set plot function p <- function(m) { plot(x = m[, 1], y = m[, 2]) polygon(x = c(m[, 1], rev(m[, 1])), y = c(m[, 2], rep(0, nrow(m)))) for (i in 1:nrow(m)) { lines(x = rep(m[i, 1], 2), y = c(0, m[i, 2])) } } ## Test -------------------------------------------------------------------- ##test all three allowed input objects expect_type(convert_Wavelength2Energy(data), "double") expect_s3_class(convert_Wavelength2Energy(as.data.frame(data)), class = "data.frame") object <- set_RLum(class = "RLum.Data.Spectrum", data = data[,1,drop = FALSE]) expect_s4_class(convert_Wavelength2Energy(object), class = "RLum.Data.Spectrum") ##test the list option expect_type(convert_Wavelength2Energy(list(data, as.data.frame(data), object)), "list") ##test order argument expect_type(convert_Wavelength2Energy(data, order = TRUE), "double") res <- convert_Wavelength2Energy(object, order = TRUE) expect_equal(order(rownames(res@data)), 1:nrow(res@data)) ##test special treatment of RLum.Data.Spectrum objects object@info[["curveDescripter"]] <- "energy" expect_message(convert_Wavelength2Energy(object), regexp = "Your object has already an energy scale, nothing done!") object@info[["curveDescripter"]] <- "wavelength" res <- convert_Wavelength2Energy(object) expect_equal(res@info[["curveDescripter"]], "energy [eV]") ##Code below just a cross check if wanted ##matrix # m <- cbind(as.numeric(rownames(data)), data) # par(mfrow = c(1,2)) # p(m) # p(convert_Wavelength2Energy(m)) # # ##df # df <- as.data.frame(cbind(as.numeric(rownames(data)), data)) # p(df) # p(convert_Wavelength2Energy(df)) # # ##RLum.Data.Spectrum # object <- set_RLum(class = "RLum.Data.Spectrum", data = data[,1,drop = FALSE]) # par(mfrow = c(1,2)) # plot_RLum.Data.Spectrum(object, plot.type = "single", par.local = FALSE) # plot_RLum.Data.Spectrum(convert_Wavelength2Energy(object), plot.type = "single", par.local = FALSE) }) Luminescence/tests/testthat/test_calc_SourceDoseRate.R0000755000176200001440000000505114762554470022743 0ustar liggesuserstemp <- calc_SourceDoseRate(measurement.date = "2012-01-27", calib.date = "2014-12-19", calib.dose.rate = 0.0438, calib.error = 0.0019) test_that("input validation", { testthat::skip_on_cran() expect_error(calc_SourceDoseRate(data.frame()), "'measurement.date' should be of class 'Date' or 'character'") expect_error(calc_SourceDoseRate("2024-10-01", data.frame()), "'calib.date' should be of class 'Date' or 'character'") }) test_that("General tests", { testthat::skip_on_cran() ##simple run expect_silent(calc_SourceDoseRate( calib.date = "2014-12-19", calib.dose.rate = 0.0438, calib.error = 0.0019 )) ##simple run expect_silent(calc_SourceDoseRate( measurement.date = "2018-01-02", calib.date = "2014-12-19", calib.dose.rate = 0.0438, calib.error = 0.0019 )) ##simple run predict expect_silent(calc_SourceDoseRate( measurement.date = "2018-01-02", calib.date = "2014-12-19", calib.dose.rate = 0.0438, calib.error = 0.0019, predict = 10 )) ## produce more than 100 rows t <- expect_silent(calc_SourceDoseRate( measurement.date = "2018-01-02", calib.date = "2014-12-19", calib.dose.rate = 0.0438, calib.error = 0.0019, predict = 150 )) expect_silent(plot_RLum.Results(t)) ##Gy/min as unit expect_silent(calc_SourceDoseRate( measurement.date = "2018-01-02", calib.date = "2014-12-19", calib.dose.rate = 0.0438, calib.error = 0.0019, dose.rate.unit = "Gy/min" )) ##cause stop expect_error(calc_SourceDoseRate( measurement.date = "2018-01-02", calib.date = "2014-12-19", calib.dose.rate = 0.0438, calib.error = 0.0019, source.type = "error"), "'source.type' should be one of 'Sr-90', 'Am-214', 'Co-60' or 'Cs-137'") expect_error(calc_SourceDoseRate( measurement.date = "2018-01-02", calib.date = "2014-12-19", calib.dose.rate = 0.0438, calib.error = 0.0019, dose.rate.unit = "error"), "'dose.rate.unit' should be one of 'Gy/s' or 'Gy.min'") }) test_that("check class and length of output", { testthat::skip_on_cran() expect_equal(is(temp), c("RLum.Results", "RLum")) expect_equal(length(temp), 3) }) test_that("check values from output example 1", { testthat::skip_on_cran() results <- get_RLum(temp) expect_equal(round(results$dose.rate, digits = 8), 0.04695031) expect_equal(round(results$dose.rate.error, digits = 9), 0.002036657) expect_equal(results$date, as.Date("2012-01-27")) }) Luminescence/tests/testthat/test_calc_Huntley2006.R0000644000176200001440000002350714762554470022017 0ustar liggesusers## load data set.seed(1) data("ExampleData.Fading", envir = environment()) fading_data <- ExampleData.Fading$fading.data$IR50 data <- ExampleData.Fading$equivalentDose.data$IR50 ddot <- c(7.00, 0.004) readerDdot <- c(0.134, 0.0067) rhop <- analyse_FadingMeasurement(fading_data, plot = FALSE, verbose = FALSE, n.MC = 10) huntley <- calc_Huntley2006( data = data, rhop = rhop, ddot = ddot, readerDdot = readerDdot, n.MC = 50, plot = FALSE, verbose = FALSE ) test_that("input validation", { testthat::skip_on_cran() rhop.test <- rhop rhop.test@originator <- "unexpected" expect_error(calc_Huntley2006(), "'data' should be of class 'data.frame'") expect_error(calc_Huntley2006("test"), "'data' should be of class 'data.frame'") expect_error(calc_Huntley2006(data.frame()), "'data' cannot be an empty data.frame") expect_error(calc_Huntley2006(data, fit.method = "test"), "'fit.method' should be one of 'EXP' or 'GOK'") expect_error(calc_Huntley2006(data, fit.method = "GOK", lower.bounds = 0), "'lower.bounds' should have length 4") expect_error(calc_Huntley2006(data, LnTn = list()), "'LnTn' should be of class 'data.frame'") expect_error(calc_Huntley2006(data, LnTn = data), "'LnTn' should be a data frame with 2 columns") expect_error(calc_Huntley2006(cbind(data, data), LnTn = data[, 1:2]), "When 'LnTn' is specified, 'data' should have only 2 or 3") expect_error(calc_Huntley2006(cbind(data, data[, 1])), "The number of columns in 'data' must be a multiple of 3") expect_error(calc_Huntley2006(data, rhop = 1), "'rhop' should have length 2") expect_error(calc_Huntley2006(data, rhop = "test"), "'rhop' should be of class 'numeric' or 'RLum.Results'") expect_error(calc_Huntley2006(data, rhop = rhop.test), "'rhop' accepts only RLum.Results objects produced by") expect_error(calc_Huntley2006(data, rhop = c(-1, 4.9e-7)), "'rhop' must be a positive number") expect_error(calc_Huntley2006(data, rhop = rhop), "'ddot' should be of class 'numeric'") expect_error(calc_Huntley2006(data, rhop = rhop, ddot = ddot), "'readerDdot' should be of class 'numeric'") expect_error(calc_Huntley2006(data, rhop = rhop, ddot = "test", readerDdot = readerDdot), "'ddot' should be of class 'numeric'") expect_error(calc_Huntley2006(data, rhop = rhop, ddot = 0.4, readerDdot = readerDdot), "'ddot' should have length 2") expect_error(calc_Huntley2006(data, rhop = rhop, ddot = ddot, readerDdot = "test"), "'readerDdot' should be of class 'numeric'") expect_error(calc_Huntley2006(data, rhop = rhop, ddot = ddot, readerDdot = 0.13), "'readerDdot' should have length 2") expect_error(calc_Huntley2006(data, rhop = rhop, ddot = ddot, readerDdot = readerDdot, rprime = list()), "'rprime' should be of class 'numeric'") SW({ expect_warning(calc_Huntley2006(data[, 1:2], rhop = rhop, n.MC = 2, ddot = ddot, readerDdot = readerDdot, fit.method = "GOK"), "'data' has only two columns: we assume that the errors") }) expect_warning(expect_error( calc_Huntley2006(data = data[1:20, ], rhop = rhop, ddot = ddot, readerDdot = c(0.002, 0.003), n.MC = 2, plot = FALSE, verbose = FALSE), "Simulated D0 is NA: either your input values are unsuitable"), "Ln/Tn is smaller than the minimum computed LxTx value") expect_error(calc_Huntley2006(data = data[1:20, ], LnTn = data[1, c(2, 3)], rhop = c(2, 2), ddot = c(7.00, 0.004), readerDdot = c(0.01, 0.02), verbose = FALSE), "Could not fit simulated curve, check suitability of model") }) test_that("check class and length of output", { testthat::skip_on_cran() ##rhop expect_s4_class(rhop, class = "RLum.Results") expect_s3_class(rhop$fading_results, "data.frame") expect_s3_class(rhop$fit, "lm") expect_s3_class(rhop$rho_prime, "data.frame") expect_equal(round(sum(rhop$fading_results[,1:9]),0),415) expect_equal(round(sum(rhop$rho_prime),5),2e-05) expect_equal(round(sum(rhop$irr.times)), 2673108) ##kars expect_s4_class(huntley, class = "RLum.Results") expect_s3_class(huntley$results, class = "data.frame") expect_s3_class(huntley$data, class = "data.frame") expect_type(huntley$Ln, "double") expect_type(huntley$fits, "list") expect_equal(round(huntley$results$Sim_Age, 1), 34.10) expect_equal(round(huntley$results$Sim_Age_2D0, 0), 175) expect_equal(round(sum(huntley$Ln),2), 0.16) expect_equal(round(sum(huntley$data),0), 191530) expect_equal(round(sum(residuals(huntley$fits$simulated)),1), 0.8) expect_equal(round(sum(residuals(huntley$fits$measured)),4), 0.1894) expect_equal(round(sum(residuals(huntley$fits$unfaded)),2), 0) }) test_that("Further tests calc_Huntley2006", { testthat::skip_on_cran() os <- tolower(Sys.info()[["sysname"]]) snapshot.tolerance <- switch(os, "linux" = 1.5e-5, "darwin" = 8.0e-2, "windows" = 8.0e-2) ## check extrapolation set.seed(1) expect_snapshot_RLum( calc_Huntley2006( data = data, rhop = rhop, ddot = ddot, readerDdot = readerDdot, n.MC = 100, fit.method = "GOK", mode = "extrapolation", plot = TRUE, verbose = FALSE), tolerance = snapshot.tolerance) ## check force through origin EXP with wrong mode settings set.seed(1) expect_snapshot_RLum( calc_Huntley2006( data = data, rhop = rhop, ddot = ddot, readerDdot = readerDdot, n.MC = 100, fit.method = "EXP", fit.force_through_origin = TRUE, mode = "extrapolation", plot = TRUE, verbose = FALSE), tolerance = max(snapshot.tolerance, 8.0e-3)) ## EXP ... normal set.seed(1) expect_snapshot_RLum( calc_Huntley2006( data = data, rhop = rhop, ddot = ddot, readerDdot = readerDdot, n.MC = 100, fit.method = "EXP", fit.force_through_origin = TRUE, mode = "interpolation", plot = FALSE, verbose = FALSE), tolerance = snapshot.tolerance) ## GOK normal set.seed(1) expect_snapshot_RLum( calc_Huntley2006( data = data, rhop = rhop, ddot = ddot, readerDdot = readerDdot, n.MC = 100, fit.method = "GOK", fit.force_through_origin = TRUE, mode = "interpolation", plot = FALSE, verbose = FALSE), tolerance = if (os == "darwin") 1.7e-1 else max(snapshot.tolerance, 1.5e-3)) ## check warning for failed fits ## dataset provided by Christine Neudorf df <- structure(list(V1 = c(0L, 0L, 200L, 800L, 1500L, 3000L, 8000L ), V2 = c(0.439, -0.046720922, 1.988131642, 7.577744961, 12.87699795, 18.50187874, 32.72443771), V3 = c(0.029, 0.01269548, 0.090232208, 0.322242141, 0.546595156, 0.739308178, 1.285979033)), class = "data.frame", row.names = c(NA, -7L)) set.seed(1) SW({ expect_warning(calc_Huntley2006( data = df, LnTn = NULL, rhop = c(0.0000121549740899913, 4.91596040125088E-07), ddot = c(6.96, 0.29), readerDdot = c(0.094, 0.01), normalise = FALSE, fit.method = "EXP", summary = TRUE, plot = TRUE, n.MC = 100), regexp = "\\[calc\\_Huntley2006\\(\\)\\] Ln\\/Tn is smaller than the minimum computed LxTx value.") }) ## failing to fit unfaded EXP model ## test derived from data provided by Salome Oehler input <- data.frame(dose = c(0, 1550, 9300, 37200, 71500, 0, 1550, 9300, 37200, 71500), LxTx = c(0.79, 4.67, 14.41, 26.59, 24.88, 0.95, 4.87, 14.17, 21.98, 25.12), LxTx_error = c(0.002, 0.006, 0.01, 0.04, 0.02, 0.002, 0.011, 0.02, 0.03, 0.03)) set.seed(1) expect_error(calc_Huntley2006(input, rhop = c(6.5e-06, 2.0e-08), ddot = c(8.5, 1.5), fit.method = "EXP", mode = "extrapolation", readerDdot = c(0.154, 0.1), n.MC = 2), "Could not fit unfaded curve, check suitability of model and") ## more coverage expect_s4_class( calc_Huntley2006( data = data[1:10, ], LnTn = data[1:10, c(2, 3)], rhop = rhop, ddot = ddot, readerDdot = readerDdot, n.MC = 2, plot = TRUE, verbose = FALSE), class = "RLum.Results") expect_s4_class( calc_Huntley2006( data = data[1:10, ], LnTn = data[1, c(2, 3)], rhop = rhop, ddot = ddot, readerDdot = readerDdot, rprime = c(0.01, 2.2, length.out = 500), n.MC = 2, plot = FALSE, verbose = FALSE), class = "RLum.Results") expect_error( calc_Huntley2006( data = iris[, 1:3], rhop = rhop, ddot = ddot, readerDdot = readerDdot, n.MC = 2, plot = FALSE, verbose = FALSE), "Unable to fit growth curve to measured data, try setting") expect_warning( calc_Huntley2006( data = data[8:12, ], rhop = rhop, ddot = ddot, readerDdot = readerDdot, n.MC = 2, plot = FALSE, verbose = FALSE), "Ln is >10 % larger than the maximum computed LxTx value") }) Luminescence/tests/testthat/test_convert_BIN2CSV.R0000644000176200001440000000147014762554470021676 0ustar liggesusers## load datax data(ExampleData.BINfileData, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_error(convert_BIN2CSV(), "'file' should be of class 'character' or 'Risoe.BINfileData'") expect_error(convert_BIN2CSV(character(0)), "'file' cannot be an empty character") expect_error(convert_BIN2CSV(file = "error", export = FALSE), "File '.*error' does not exist") # windows CI needs the regexp }) test_that("check functionality", { testthat::skip_on_cran() expect_type(convert_BIN2CSV(subset(CWOSL.SAR.Data, POSITION == 1), export = FALSE), "list") expect_null(convert_BIN2CSV(subset(CWOSL.SAR.Data, POSITION == 1), export = TRUE, path = tempdir())) }) Luminescence/tests/testthat/test_convert_PSL2RisoeBINfiledata.R0000644000176200001440000000232414762554470024374 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(convert_PSL2Risoe.BINfileData("error"), "'object' should be of class 'RLum.Analysis'") expect_error(convert_PSL2Risoe.BINfileData(set_RLum("RLum.Analysis")), "'object' cannot be an empty RLum.Analysis") ## defunct name expect_error(PSL2Risoe.BINfileData(set_RLum("RLum.Analysis")), "'PSL2Risoe.BINfileData' is defunct") }) test_that("check functionality", { testthat::skip_on_cran() data("ExampleData.portableOSL", envir = environment()) merged <- merge_RLum(ExampleData.portableOSL) bin <- convert_PSL2Risoe.BINfileData(merged) ##checks expect_s4_class(bin, "Risoe.BINfileData") expect_equal(length(bin), 70) ## manipulate the object to trigger other errors fake <- merged fake@records[20] <- "unexpected-subclass" expect_error(convert_PSL2Risoe.BINfileData(fake), "All elements of 'object' should be of class 'RLum.Data.Curve'") fake <- merged fake@records[10][[1]]@originator <- "unexpected-originator" expect_error(convert_PSL2Risoe.BINfileData(fake), "Only objects originating from 'read_PSL2R()' are allowed", fixed=TRUE) }) Luminescence/tests/testthat/test_read_PSL2R.R0000644000176200001440000000253414762554470020727 0ustar liggesuserspsl.file <- system.file("extdata/DorNie_0016.psl", package = "Luminescence") test_that("Test functionality", { testthat::skip_on_cran() ## default values SW({ expect_s4_class(read_PSL2R( file = psl.file ), "RLum.Analysis") }) ## custom values (all inverted), multiple files given to test merge=TRUE expect_s4_class(read_PSL2R( file = c(psl.file, psl.file), drop_bg = TRUE, as_decay_curve = FALSE, smooth = TRUE, merge = TRUE, verbose = FALSE ), "RLum.Analysis") }) test_that("input validation", { testthat::skip_on_cran() expect_error(read_PSL2R(data.frame()), "'file' should be of class 'character'") expect_error(read_PSL2R(character(0)), "'file' cannot be an empty character") ## directory given (assumes that we have a .psl file under inst/extdata) expect_message( read_PSL2R(file = system.file("extdata", package = "Luminescence"), verbose = FALSE), "The following files were found and imported" ) ## single file with no .psl extension expect_error( read_PSL2R(file = system.file("extdata/RF_file.rf", package = "Luminescence")), "No .psl files found" ) ## list of files with a non-existent file expect_error( read_PSL2R(file = c(psl.file, "non-existent")), "The following files do not exist" ) }) Luminescence/tests/testthat/test_calc_Statistics.R0000644000176200001440000000350014762554470022200 0ustar liggesusers## load example data data(ExampleData.DeValues, envir = environment()) test_that("Test certain input scenarios", { testthat::skip_on_cran() temp_RLum <- set_RLum(class = "RLum.Results", data = list(data = ExampleData.DeValues$BT998)) expect_type(calc_Statistics(temp_RLum), "list") df <- ExampleData.DeValues$BT998 df[, 2] <- NULL expect_warning(calc_Statistics(df), "All errors are NA or zero, automatically set to") df <- ExampleData.DeValues$BT998 df[,2] <- 0 expect_warning(calc_Statistics(df), "All errors are NA or zero, automatically set to") df <- ExampleData.DeValues$BT998 expect_silent(calc_Statistics(df, weight.calc = "reciprocal")) }) test_that("input validation", { testthat::skip_on_cran() df <- ExampleData.DeValues$BT998 expect_error(calc_Statistics(data = matrix(0,2)), "[calc_Statistics()] 'data' should be of class 'RLum.Results' or 'data.frame'", fixed = TRUE) expect_error(calc_Statistics(data.frame()), "'data' cannot be an empty data.frame") expect_error(calc_Statistics(data = df, weight.calc = "error"), "'weight.calc' should be one of 'square' or 'reciprocal'") expect_error(calc_Statistics(df, digits = 2.4), "'digits' should be a positive integer scalar") expect_error(calc_Statistics(df, n.MCM = "error"), "'n.MCM' should be a positive integer scalar") }) test_that("snapshot tests", { testthat::skip_on_cran() set.seed(1) snapshot.tolerance <- 1.5e-6 expect_snapshot_plain(calc_Statistics( ExampleData.DeValues$BT998, n.MCM = 1000), tolerance = snapshot.tolerance) expect_snapshot_plain(calc_Statistics( ExampleData.DeValues$BT998, n.MCM = 1000, digits = 2), tolerance = snapshot.tolerance) }) Luminescence/tests/testthat/test_plot_RLum.Data.Curve.R0000644000176200001440000000277314762554470022747 0ustar liggesusers## create dataset data(ExampleData.CW_OSL_Curve, envir = environment()) temp <- as(ExampleData.CW_OSL_Curve, "RLum.Data.Curve") test_that("input validation", { testthat::skip_on_cran() expect_error(plot_RLum.Data.Curve("error"), "'object' should be of class 'RLum.Data.Curve'") expect_error(plot_RLum.Data.Curve(temp, norm = "error"), "'norm' should be one of 'max', 'last', 'huot'") temp_NA <- temp temp_NA@data[] <- suppressWarnings(NA_real_) expect_warning(expect_null(plot_RLum.Data.Curve(temp_NA)), "Curve contains only NA-values, nothing plotted") expect_warning(plot_RLum.Data.Curve(set_RLum("RLum.Data.Curve"), norm = TRUE), "Curve normalisation produced Inf/NaN values, values replaced by 0") }) test_that("check functionality", { testthat::skip_on_cran() ## run function with various conditions expect_silent(plot_RLum.Data.Curve(temp)) expect_silent(plot_RLum.Data.Curve(temp, norm = TRUE)) expect_silent(plot_RLum.Data.Curve(temp, norm = "max")) expect_silent(plot_RLum.Data.Curve(temp, norm = "last")) expect_silent(plot_RLum.Data.Curve(temp, norm = "huot")) expect_silent(plot_RLum.Data.Curve(temp, smooth = TRUE)) expect_silent(plot_RLum.Data.Curve(temp, par.local = FALSE)) temp@recordType <- "OSL" temp@info <- list(interval = 1) expect_silent(plot_RLum.Data.Curve(temp)) temp@recordType <- "TL" temp@info <- list(curveDescripter = "xlab;ylab", RATE = 2) expect_silent(plot_RLum.Data.Curve(temp)) }) Luminescence/tests/testthat/test_plot_ROI.R0000644000176200001440000000306414762554470020560 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(plot_ROI(object = "stop"), "[plot_ROI()] 'object' should be of class 'RLum.Analysis'", fixed = TRUE) empty <- set_RLum("RLum.Results", originator = NA_character_) expect_error(plot_ROI(empty), "Object originator 'NA' not supported") expect_error(plot_ROI(list()), "'object' cannot be an empty list") }) test_that("Complete test", { testthat::skip_on_cran() ##create suitable dataset file <- system.file("extdata", "RF_file.rf", package = "Luminescence") temp <- read_RF2R(file, verbose = FALSE) ##test standard cases expect_silent(plot_ROI(temp)) expect_silent(plot_ROI(temp, grid = TRUE)) expect_silent(plot_ROI(temp, dim.CCD = c(8192,8192))) expect_silent(plot_ROI(temp, dist_thre = 20)) expect_silent(plot_ROI(temp, exclude_ROI = NULL)) ##test non-list case expect_silent(plot_ROI(temp[[1]])) expect_silent(plot_ROI(temp[[1]], exclude_ROI = NULL)) ##output only case expect_s4_class(plot_ROI(temp, plot = FALSE), class = "RLum.Results") ## test combination with extract_ROI() m <- matrix(runif(100,0,255), ncol = 10, nrow = 10) roi <- matrix(c(2.,4,2,5,6,7,3,1,1), ncol = 3) t <- extract_ROI(object = m, roi = roi) expect_s4_class(plot_ROI(t, bg_image = m, exclude_ROI = NULL), "RLum.Results") ## trigger warning expect_warning(plot_ROI(t, bg_image = "stop", exclude_ROI = NULL), "[plot_ROI()] 'bg_image' is not of class 'RLum.Data.Image'", fixed = TRUE) }) Luminescence/tests/testthat/test_scale_GammaDose.R0000644000176200001440000001034414762554470022074 0ustar liggesusers## load data data("ExampleData.ScaleGammaDose", envir = environment()) d <- ExampleData.ScaleGammaDose ## Conversion factors: Liritzisetal2013 results <- scale_GammaDose(data = d, conversion_factors = "Liritzisetal2013", fractional_gamma_dose = "Aitken1985", plot = FALSE, verbose = FALSE) test_that("check values from output example", { testthat::skip_on_cran() expect_equal(is(results), c("RLum.Results", "RLum")) expect_equal(length(results), 6) expect_equal(is(results$summary)[1], "data.frame") expect_equal(formatC(results$summary$dose_rate_total, 4), "0.9242") expect_equal(formatC(results$summary$dose_rate_total_err, 4), "0.2131") }) ## Conversion factors: Guerinetal2011 results <- scale_GammaDose(data = d, conversion_factors = "Guerinetal2011", fractional_gamma_dose = "Aitken1985", plot = FALSE, verbose = FALSE) test_that("check values from output example", { testthat::skip_on_cran() expect_equal(is(results), c("RLum.Results", "RLum")) expect_equal(length(results), 6) expect_equal(is(results$summary)[1], "data.frame") expect_equal(formatC(results$summary$dose_rate_total, 4), "0.9214") expect_equal(formatC(results$summary$dose_rate_total_err, 4), "0.2124") }) ## Conversion factors: Guerinetal2011 results <- scale_GammaDose(data = d, conversion_factors = "AdamiecAitken1998", fractional_gamma_dose = "Aitken1985", plot = FALSE, verbose = FALSE) test_that("check values from output example", { testthat::skip_on_cran() expect_equal(is(results), c("RLum.Results", "RLum")) expect_equal(length(results), 6) expect_equal(is(results$summary)[1], "data.frame") expect_equal(formatC(results$summary$dose_rate_total, 4), "0.9123") expect_equal(formatC(results$summary$dose_rate_total_err, 4), "0.2097") }) ## CONSOLE & PLOT OUTPUT test_that("console & plot", { expect_output({ scale_GammaDose(d, plot = TRUE, verbose = TRUE) scale_GammaDose(d, plot = TRUE, plot_singlePanels = TRUE, verbose = TRUE) }) }) test_that("input validation", { testthat::skip_on_cran() expect_error( scale_GammaDose(NA, plot = FALSE, verbose = TRUE), "'data' should be of class 'data.frame'" ) expect_error( scale_GammaDose(d[ ,1:10], plot = FALSE, verbose = TRUE), "'data' should have 12 columns" ) SW({ expect_warning({ tmp <- d colnames(tmp) <- letters[1:ncol(tmp)] scale_GammaDose(tmp, plot = FALSE, verbose = TRUE) }, "Unexpected column names" ) }) expect_error({ tmp <- d tmp$sample_offset <- NA scale_GammaDose(tmp, plot = FALSE, verbose = TRUE) }, "Only one layer must be contain a numeric value in column 'sample_offset'" ) expect_error({ tmp <- d tmp$sample_offset[5] <- "target" scale_GammaDose(tmp, plot = FALSE, verbose = TRUE) }, "Non-numeric value in the row of the target layer" ) expect_error({ tmp <- d tmp$sample_offset[5] <- -1 scale_GammaDose(tmp, plot = FALSE, verbose = TRUE) }, "The numeric value in 'sample_offset' must be positive" ) expect_error({ tmp <- d tmp$sample_offset[5] <- 20 scale_GammaDose(tmp, plot = FALSE, verbose = TRUE) }, "Sample offset larger than the target-layer's thickness" ) expect_error(scale_GammaDose(d, conversion_factors = c("a", "b")), "'conversion_factors' contains multiple values but not all of") expect_error(scale_GammaDose(d, conversion_factors = 1), "'conversion_factors' should be one of 'Cresswelletal2018'") expect_error(scale_GammaDose(d, conversion_factors = "HansGuenter2020"), "'conversion_factors' should be one of 'Cresswelletal2018'") expect_error(scale_GammaDose(d, fractional_gamma_dose = c("a", "b")), "'fractional_gamma_dose' contains multiple values but not all") expect_error(scale_GammaDose(d, fractional_gamma_dose = 1), "'fractional_gamma_dose' should be one of 'Aitken1985'") expect_error(scale_GammaDose(d, fractional_gamma_dose = "error"), "'fractional_gamma_dose' should be one of 'Aitken1985'") }) Luminescence/tests/testthat/test_plot_RadialPlot.R0000644000176200001440000001246414762554470022166 0ustar liggesusers## load data data(ExampleData.DeValues, envir = environment()) set.seed(12310) x <- rnorm(30, 5, 0.5) y <- x * runif(30, 0.05, 0.10) df <- data.frame(x, y) test_that("input validation", { testthat::skip_on_cran() expect_error(plot_RadialPlot("error"), "All elements of 'data' should be of class 'data.frame' or") expect_error(plot_RadialPlot(list()), "'data' cannot be an empty list") expect_error(plot_RadialPlot(df[, 1]), "All elements of 'data' should be of class 'data.frame' or") expect_error(plot_RadialPlot(df[0, ]), "'data' cannot be an empty data.frame") expect_error(plot_RadialPlot(list(df[0, ])), "Input 'data[[1]]' cannot be an empty data.frame", fixed = TRUE) expect_error(plot_RadialPlot(df, xlab = "x"), "'xlab' should have length 2") expect_error(plot_RadialPlot(df, centrality = list("error")), "'centrality' should be of class 'character' or 'numeric'") expect_error(plot_RadialPlot(df, centrality = "error"), "'centrality' should be one of 'mean', 'mean.weighted', 'median'") expect_warning(plot_RadialPlot(df, xlim = c(-1, 100), show = FALSE), "Lower x-axis limit not set to zero, corrected") expect_warning(plot_RadialPlot(ExampleData.DeValues, log.z = FALSE, xlim = c(0, 5), zlim = c(100, 200), show = FALSE), "Option 'log.z' is not set to 'TRUE' altough more than one") }) test_that("dedicated test for the radialplot", { testthat::skip_on_cran() ##distribution plots ## standard data ## simple test expect_silent( plot_RadialPlot( data = df, centrality = 5)) ## standard data with two datasets ## simple test expect_silent( plot_RadialPlot( data = list(df, df), centrality = c(5,5))) ## simple test - unlogged expect_silent( plot_RadialPlot( data = df, centrality = 5, log.z = FALSE)) ## simple test - unlogged with statistics expect_silent( plot_RadialPlot( data = df, summary = c( "n", "mean", "median", "mean.weighted", "median.weighted", "kdemax", "sdabs", "sdrel", "seabs", "serel", "skewness", "kurtosis", "in.2s", "sdabs.weighted", "sdrel.weighted", "seabs.weighted", "serel.weighted"), log.z = FALSE)) ## simple test - unlogged expect_silent( plot_RadialPlot( data = df, centrality = -1, log.z = FALSE)) ## single-column data frame expect_message(plot_RadialPlot(df[, 1, drop = FALSE]), "Attention, small standardised estimate scatter") ## data frame with more than 2 columns expect_silent(plot_RadialPlot(cbind(df, df))) ## data frame with negative values df.neg <- df df.neg[, 1] <- df.neg[, 1] - 5 plot_RadialPlot(df.neg) ## more coverage expect_type(plot_RadialPlot(df, main = "Title", sub = "Subtitle", rug = TRUE, centrality = "mean", log.z = TRUE, stats = c("min", "max", "median"), summary = "mean", summary.pos = c(0, 40), legend = TRUE, legend.pos = c(4, 40), xlab = c("x1", "x2"), xlim = c(0, 20), ylab = "y", ylim = c(-10, 10), zlab = "z", zlim = c(3, 7), line = c(3.5, 5.5), y.ticks = FALSE, cex = 0.8, lty = 2, lwd = 2, pch = 2, col = 2, tck = 1, tcl = 2, output = TRUE), "list") plot_RadialPlot(df, show = FALSE, centrality = c(1, 2, 3)) plot_RadialPlot(df, show = FALSE, centrality = "median", summary.pos = "topleft", legend.pos = "topright", log.z = FALSE, rug = TRUE) plot_RadialPlot(df, show = FALSE, centrality = "median.weighted", summary.pos = "top", legend.pos = "bottom") plot_RadialPlot(df, show = FALSE, summary.pos = "topright", legend.pos = "topleft") plot_RadialPlot(df, show = FALSE, summary.pos = "left", legend.pos = "right") plot_RadialPlot(df, show = FALSE, summary.pos = "center", legend.pos = "center") plot_RadialPlot(df, show = FALSE, summary.pos = "right", legend.pos = "left") plot_RadialPlot(df, show = FALSE, summary.pos = "bottomleft", legend.pos = "bottomright") plot_RadialPlot(df, show = FALSE, summary.pos = "bottom", legend.pos = "top") plot_RadialPlot(df, show = FALSE, summary.pos = "bottomright", legend.pos = "bottomleft") ## RLum.Results object expect_silent(plot_RadialPlot(calc_CommonDose(ExampleData.DeValues$BT998, verbose = FALSE))) # Messages, Warnings, and Errors ----------------------------------------- ## trigger message expect_message( plot_RadialPlot( data = data.frame(x = df$x, y = rep(0.0001, nrow(df))), centrality = -1, log.z = FALSE), regexp = "Attention.*") ## trigger warning expect_warning(plot_RadialPlot( data = df, #centrality = , central.value = -1, log.z = FALSE), "\\[plot\\_RadialPlot\\(\\)\\] z-scale touches.*" ) }) Luminescence/tests/testthat/test_calc_AliquotSize.R0000644000176200001440000000640614762554470022327 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(calc_AliquotSize(), "Please provide the mean grain size or a range of grain sizes") expect_error(calc_AliquotSize(grain.size = 1:3), "Please provide the mean grain size or a range of grain sizes") expect_error(calc_AliquotSize(grain.size = 100, packing.density = 2), "'packing.density' expects values between 0 and 1") expect_error(calc_AliquotSize(grain.size = 100, packing.density = 1, sample.diameter = -1), "'sample.diameter' should be a positive scalar") expect_error(calc_AliquotSize(grain.size = 100, sample.diameter = 9.8, MC = TRUE), "'grain.size' must be a vector containing the min and max") expect_output(calc_AliquotSize(grain.size = 100, packing.density = 1, sample.diameter = 9.8, grains.counted = 30, MC = TRUE), regexp = "Monte Carlo simulation is only available for estimating the amount of grains on the sample disc.") }) test_that("check functionality", { testthat::skip_on_cran() SW({ expect_s4_class( calc_AliquotSize( grain.size = 100, packing.density = "inf", sample.diameter = 9.8, MC = FALSE), "RLum.Results") expect_s4_class( calc_AliquotSize( grain.size = c(100, 150), grains.counted = 1000, sample.diameter = 9.8, MC = FALSE), "RLum.Results") expect_warning(calc_AliquotSize( grain.size = c(100, 150), grains.counted = c(1000, 1100, 900), sample.diameter = 10, MC = FALSE), "A sample diameter of 10 mm was specified, but common sample discs are") }) set.seed(1) temp <- calc_AliquotSize( grain.size = c(100, 150), sample.diameter = 1, MC.iter = 100, plot = FALSE, verbose = FALSE) expect_equal(is(temp), c("RLum.Results", "RLum")) expect_equal(length(temp), 2) expect_s3_class(temp$summary, "data.frame") expect_type(temp$MC, "list") ## summary output result <- get_RLum(temp) expect_equal(result$grain.size, 125) expect_equal(result$sample.diameter, 1) expect_equal(result$packing.density, 0.65) expect_equal(result$n.grains, 42) expect_equal(result$grains.counted, NA) ## MC run expect_equal(round(temp$MC$statistics$n), 100) expect_equal(round(temp$MC$statistics$mean), 43) expect_equal(round(temp$MC$statistics$median), 39) expect_equal(round(temp$MC$statistics$sd.abs), 19) expect_equal(round(temp$MC$statistics$sd.rel), 45) expect_equal(round(temp$MC$statistics$se.abs), 2) expect_equal(round(temp$MC$statistics$se.rel), 5) expect_length(temp$MC$kde$x, 10000) expect_length(temp$MC$kde$y, 10000) }) test_that("snapshot tests", { testthat::skip_on_cran() set.seed(1) snapshot.tolerance <- 1.5e-4 SW({ expect_snapshot_RLum(calc_AliquotSize( grain.size = c(80, 150), sample.diameter = 1, MC.iter = 20, plot = FALSE, verbose = TRUE), tolerance = snapshot.tolerance) }) expect_output( expect_snapshot_RLum(calc_AliquotSize( grain.size = c(100, 200), sample.diameter = 8, grains.counted = c(2525, 2312, 2880), MC.iter = 20, plot = FALSE, verbose = FALSE), tolerance = snapshot.tolerance), "Monte Carlo simulation is only available for estimating the amount of") }) Luminescence/tests/testthat/test_write_R2TIFF.R0000644000176200001440000000205514762554470021236 0ustar liggesusers## load data data(ExampleData.RLum.Data.Image, envir = environment()) data(ExampleData.XSYG, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_error(write_R2TIFF(object = "test"), "[write_R2TIFF()] 'object' should be of class 'RLum.Data.Image'", fixed = TRUE) expect_error(write_R2TIFF(ExampleData.RLum.Data.Image, file = "error/error"), "[write_R2TIFF()] Path does not exist", fixed = TRUE) expect_error(write_R2TIFF(set_RLum("RLum.Data.Image")), "Empty RLum.Data.Image object detected") }) test_that("check functionality", { testthat::skip_on_cran() ## export RLum.Data.Image expect_null(write_R2TIFF(ExampleData.RLum.Data.Image, file = tempfile(fileext = "tiff"))) ## export RLum.Data.Spectrum expect_null(write_R2TIFF(TL.Spectrum, file = tempfile(fileext = "tiff"))) ## a list expect_null(write_R2TIFF(list(ExampleData.RLum.Data.Image, TL.Spectrum), file = tempfile(fileext = "tiff"))) expect_null(write_R2TIFF(list())) }) Luminescence/tests/testthat/test_calc_AverageDose.R0000644000176200001440000000514214762554470022237 0ustar liggesusers## load data data(ExampleData.DeValues, envir = environment()) test_that("input validation", { testthat::skip_on_cran() data <- ExampleData.DeValues$CA1 expect_error(calc_AverageDose(), "'data' should be of class 'RLum.Results' or 'data.frame'") expect_error(calc_AverageDose("test"), "'data' should be of class 'RLum.Results' or 'data.frame'") expect_error(calc_AverageDose(data), "\"sigma_m\" is missing, with no default") expect_error(calc_AverageDose(data, sigma_m = NULL), "'sigma_m' should be a positive scalar") expect_error(calc_AverageDose(data, sigma_m = 0.1, Nb_BE = NULL), "'Nb_BE' should be a positive integer scalar") expect_message(expect_null( calc_AverageDose(data[, 1, drop = FALSE], sigma_m = 0.1)), "Error: 'data' contains < 2 columns") expect_message(expect_null( calc_AverageDose(data[0, ], sigma_m = 0.1)), "Error: 'data' contains no data, NULL returned") SW({ expect_warning(calc_AverageDose(cbind(data, data), sigma_m = 0.1), "'data' contains > 2 columns") expect_warning(calc_AverageDose(rbind(data, NA), sigma_m = 0.1), "NA values in 'data' detected") expect_message(expect_null( calc_AverageDose(data.frame(NA, NA), sigma_m = 0.1)), "Error: After NA removal, nothing is left from the data set") }) }) test_that("check class and length of output", { testthat::skip_on_cran() set.seed(1) expect_snapshot_RLum( temp <- calc_AverageDose(ExampleData.DeValues$CA1[1:56, ], sigma_m = 0.1, plot = FALSE, verbose = FALSE), tolerance = 1.5e-6) expect_output( calc_AverageDose(ExampleData.DeValues$CA1[1:56, ], sigma_m = 0.9, plot = FALSE, verbose = TRUE) ) expect_s4_class(temp, "RLum.Results") expect_equal(length(temp), 3) results <- get_RLum(temp) expect_equal(round(results$AVERAGE_DOSE, digits = 4), 65.3597) expect_equal(round(results$SIGMA_D, digits = 4), 0.3092) expect_equal(round(results$L_MAX, digits = 5), -19.25096) ## RLum.Results expect_warning(calc_AverageDose(temp, sigma_m = 0.1, verbose = FALSE, col = 1), "'data' contains > 2 columns, only the first 2 columns were used") ## non-positive values data.zero <- ExampleData.DeValues$CA1 data.zero[1, 1] <- 0 expect_warning(calc_AverageDose(data.zero, sigma_m = 0.1, verbose = FALSE), "Non-positive values in 'data' detected, rows removed") }) Luminescence/tests/testthat/test_convert_Concentration2DoseRate.R0000644000176200001440000000243014762554470025144 0ustar liggesuserstest_that("basic checks", { testthat::skip_on_cran() ## template SW({ template <- expect_s3_class(convert_Concentration2DoseRate(), "data.frame") }) ## break function expect_error(convert_Concentration2DoseRate(input = "fail"), "'input' should be of class 'data.frame' or 'matrix'") expect_error(convert_Concentration2DoseRate(input = data.frame(x = 1, y = 2)), "Number of rows/columns in input does not match the requirements") expect_error(convert_Concentration2DoseRate( suppressMessages(convert_Concentration2DoseRate()), conversion = "error"), "'conversion' should be one of 'Guerinetal2011', 'Cresswelletal2018'") template[[1]] <- "fail" expect_error(convert_Concentration2DoseRate(template), "As mineral only 'FS' or 'Q' is supported") ## run function ## for FS df <- data.frame( Mineral = "FS", K = 2.13, K_SE = 0.07, Th = 9.76, Th_SE = 0.32, U = 2.24, U_SE = 0.12, GrainSize = 200, WaterContent = 30, WaterContent_SE = 5 ) expect_s4_class(object = convert_Concentration2DoseRate(df), class = "RLum.Results") ## for Q df$Mineral <- "Q" expect_s4_class(object = convert_Concentration2DoseRate(df), class = "RLum.Results") }) Luminescence/tests/testthat/test_plot_NRt.R0000644000176200001440000000472314762554470020635 0ustar liggesusers## load data data("ExampleData.BINfileData", envir = environment()) obj <- Risoe.BINfileData2RLum.Analysis(object = CWOSL.SAR.Data, pos = 8, ltype = "OSL") curves <- get_RLum(obj)[seq(1, 9, 2)] test_that("input validation", { testthat::skip_on_cran() expect_error(plot_NRt("error"), "'data' should be of class 'list', 'data.frame', 'matrix' or") expect_error(plot_NRt(obj[[2]]), "'data' should be of class 'list', 'data.frame', 'matrix' or") expect_error(plot_NRt(curves[1]), "'data' contains only curve data for the natural signal") expect_error(plot_NRt(curves[[1]]@data), "'data' contains only curve data for the natural signal") expect_error(plot_NRt(curves, smooth = "error"), "'smooth' should be one of 'none', 'spline' or 'rmean'") data(ExampleData.XSYG, envir = environment()) obj.mixed <- merge_RLum.Analysis(list(obj, TL.Spectrum)) expect_error(plot_NRt(obj.mixed), "The provided 'RLum.Analysis' object must exclusively contain") expect_error(plot_NRt(set_RLum("RLum.Analysis", records = list(curves[[1]]))), "'data' contains only curve data for the natural signal") data("ExampleData.RLum.Analysis", envir = environment()) expect_error(plot_NRt(IRSAR.RF.Data), "The time values for the natural signal don't match those for") expect_error(plot_NRt(merge_RLum.Analysis(list(obj, IRSAR.RF.Data))), "The time values for the natural signal don't match those for") data(ExampleData.CW_OSL_Curve, envir = environment()) expect_error(plot_NRt(ExampleData.CW_OSL_Curve), "'data' contains only curve data for the natural signal") }) test_that("check functionality", { testthat::skip_on_cran() ## list expect_silent(plot_NRt(curves)) expect_silent(plot_NRt(curves, smooth = "spline", log = "x")) small <- curves[1:3] for (idx in 1:length(small)) small[[idx]]@data <- small[[idx]]@data[1:175, ] expect_snapshot_RLum(plot_NRt(small, smooth = "rmean", k = 10)) ## matrix plot_NRt(cbind(curves[[1]]@data, curves[[1]]@data)) ## RLum.Analysis expect_silent(plot_NRt(obj)) ## list of RLum.Analysis bin.v8 <- system.file("extdata/BINfile_V8.binx", package = "Luminescence") expect_output(plot_NRt(read_BIN2R(bin.v8, fastForward = TRUE, verbose = FALSE)), "BIN/BINX-file non-conform. TL curve may be wrong") }) Luminescence/tests/testthat/test_trim_RLum.Data.R0000644000176200001440000001161314762554470021652 0ustar liggesusers## load data data(ExampleData.BINfileData, envir = environment()) temp <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1) test_that("input validation", { testthat::skip_on_cran() expect_error(trim_RLum.Data("error"), "[trim_RLum.Data()] 'object' should be of class 'RLum.Data' or", fixed = TRUE) expect_error(trim_RLum.Data(temp, recordType = c(1, 20)), "'recordType' should be of class 'character'") expect_error(trim_RLum.Data(temp, trim_range = "error"), "'trim_range' should be of class 'integer' or 'numeric'") }) test_that("RLum.Data.Curve", { testthat::skip_on_cran() ## trim with range t <- testthat::expect_type( object = trim_RLum.Data(temp$TL, trim_range = c(20,50)), type = "list") ## check output length testthat::expect_length( object = t[[1]]@data[,1], n = 31) ## trim maximum only t <- testthat::expect_type( object = trim_RLum.Data(temp$TL, trim_range = c(50)), type = "list") ## check output length testthat::expect_length( object = t[[1]]@data[,1], n = 50) ## trim with nothing t <- testthat::expect_type( object = trim_RLum.Data(temp$TL, trim_range = NULL), type = "list") ## check output length testthat::expect_length( object = t[[1]]@data[,1], n = 250) ## trim with wrong curve type ... this should do nothing ## because the object is just parsed through ## on top we use a single object instead of list only t <- testthat::expect_s4_class( object = trim_RLum.Data(temp@records[[1]], recordType = "OSL", trim_range = NULL), class = "RLum.Data.Curve") ## check output length testthat::expect_length( object = t@data[,1], n = 250) ## test some edge cases from trim ## 1 testthat::expect_s4_class( object = trim_RLum.Data(temp@records[[1]], trim_range = c(1)), class = "RLum.Data.Curve") ## 0 testthat::expect_s4_class( object = trim_RLum.Data(temp@records[[1]], trim_range = c(0)), class = "RLum.Data.Curve") ## -1 testthat::expect_s4_class( object = trim_RLum.Data(temp@records[[1]], trim_range = c(-1)), class = "RLum.Data.Curve") ## c(0, 1) t <- trim_RLum.Data(temp@records[[1]], trim_range = c(0, 1)) expect_equal(nrow(t@data), 1) ## c(-10, -20) t <- trim_RLum.Data(temp@records[[1]], trim_range = c(-10, -20)) expect_equal(nrow(t@data), 11) ## c(1025, 2) t <- trim_RLum.Data(temp@records[[1]], trim_range = c(1025, 2)) expect_equal(nrow(t@data), 249) ## c(1,2,3) testthat::expect_s4_class( object = trim_RLum.Data(temp@records[[1]], trim_range = c(1:3)), class = "RLum.Data.Curve") }) test_that("RLum.Data.Spectrum", { testthat::skip_on_cran() ## simple test for RLum.Data.Spectrum ... this can be kept ## simple because everything else was tested already data(ExampleData.XSYG, envir = environment()) t <- testthat::expect_s4_class( object = trim_RLum.Data(TL.Spectrum, trim_range = c(2, 4)), class = "RLum.Data.Spectrum") testthat::expect_length(object = t@data[1,], n = 3) ## RLum.Analysis object with RLum.Data.Spectrum data obj <- set_RLum("RLum.Analysis", records = list(TL.Spectrum)) t <- expect_s4_class(trim_RLum.Data(obj, trim_range = 10), "RLum.Analysis") expect_equal(ncol(t@records[[1]]@data), 10) }) test_that("RLum.Data.Image", { testthat::skip_on_cran() ## simple test for RLum.Data.Spectrum ... this can be kept ## simple because everything else was tested already data(ExampleData.RLum.Data.Image, envir = environment()) testthat::expect_s4_class( trim_RLum.Data(ExampleData.RLum.Data.Image, trim_range = c(10, 100)), class = "RLum.Data.Image") empty <- set_RLum("RLum.Data.Image") expect_equal(empty, trim_RLum.Data(empty)) }) test_that("RLum.Analysis", { testthat::skip_on_cran() ## generate case where one OSL curve has one channel less temp@records[[2]]@data <- temp@records[[2]]@data[-nrow(temp[[2]]@data),] ## now all OSL curves should be shortened to 999 t <- testthat::expect_s4_class( object = trim_RLum.Data(temp), class = "RLum.Analysis") ## check for OSL, the TL must remain untouched testthat::expect_length( object = t@records[[4]]@data[,1], n = 999) testthat::expect_length( object = t@records[[1]]@data[,1], n = 250) ## apply a trimming to all curves t <- testthat::expect_s4_class( object = trim_RLum.Data(temp, trim_range = c(10,20)), class = "RLum.Analysis") ## check for two curves testthat::expect_length( object = t@records[[4]]@data[,1], n = 11) testthat::expect_length( object = t@records[[1]]@data[,1], n = 11) ## apply a trimming to TL curves only t <- testthat::expect_s4_class( object = trim_RLum.Data(temp, recordType = "OSL", trim_range = c(10,20)), class = "RLum.Analysis") ## check for two curves testthat::expect_length( object = t@records[[4]]@data[,1], n = 11) testthat::expect_length( object = t@records[[1]]@data[,1], n = 250) }) Luminescence/tests/testthat/test_calc_HomogeneityTest.R0000755000176200001440000000217214762554470023204 0ustar liggesusers##use the data example given by Galbraith (2003) df <- data.frame( x = c(30.1, 53.8, 54.3, 29.0, 47.6, 44.2, 43.1), y = c(4.8, 7.1, 6.8, 4.3, 5.2, 5.9, 3.0)) temp <- calc_HomogeneityTest(df, verbose = FALSE) test_that("input validation", { testthat::skip_on_cran() expect_error(calc_HomogeneityTest(TRUE), "'data' should be of class 'data.frame' or 'RLum.Results'") expect_error(calc_HomogeneityTest(data.frame()), "'data' cannot be an empty data.frame") }) test_that("check values from output example", { testthat::skip_on_cran() expect_s4_class(temp, "RLum.Results") expect_equal(length(temp), 3) ## using an RLum.Results object as input SW({ expect_s4_class(calc_HomogeneityTest(temp), "RLum.Results") }) results <- get_RLum(temp) ##test the normal expect_equal(results$n, 7) expect_equal(round(results$g.value, 4), 19.2505) expect_equal(results$df, 6) expect_equal(round(results$P.value,3), 0.004) ##test the unlogged version SW({ temp <- calc_HomogeneityTest(df, log = FALSE)$summary }) expect_equal(round(temp$P.value,3),0.001) }) Luminescence/tests/testthat/test_convert_Second2Gray.R0000644000176200001440000000465314762554470022756 0ustar liggesusers## load data data(ExampleData.DeValues, envir = environment()) results <- convert_Second2Gray(ExampleData.DeValues$BT998, c(0.2,0.01)) dose.rate <- calc_SourceDoseRate(measurement.date = "2024-10-09", calib.date = "2014-12-19", calib.dose.rate = 0.2, calib.error = 0.01) test_that("input validation", { testthat::skip_on_cran() expect_error(convert_Second2Gray("test"), "'data' should be of class 'data.frame'") expect_error(convert_Second2Gray(ExampleData.DeValues$BT998, dose.rate = FALSE), "'dose.rate' should be of class 'RLum.Results', 'data.frame' or") expect_error(convert_Second2Gray(ExampleData.DeValues$BT998, dose.rate = results[1:5, ]), "'data' and 'dose.rate' must have the same length") expect_error(convert_Second2Gray(ExampleData.DeValues$BT998, dose.rate = results, error.propagation = "test"), "'error.propagation' should be one of 'omit', 'gaussian'") dose.rate@originator <- "unexpected-originator" expect_error(convert_Second2Gray(ExampleData.DeValues$BT998, dose.rate = dose.rate), "Wrong originator for dose.rate 'RLum.Results' object") ## defunct name expect_error(Second2Gray(ExampleData.DeValues$BT998, dose.rate = dose.rate), "'Second2Gray' is defunct") }) test_that("snapshot tests", { testthat::skip_on_cran() expect_snapshot_plain(results) expect_snapshot_plain(convert_Second2Gray(ExampleData.DeValues$BT998, dose.rate = c(0.2, 0.01), error.propagation = "gaussian")) expect_snapshot_plain(convert_Second2Gray(ExampleData.DeValues$BT998, dose.rate = c(0.2, 0.01), error.propagation = "absolute")) expect_snapshot_plain(convert_Second2Gray(ExampleData.DeValues$BT998, dose.rate = results, error.propagation = "gaussian")) expect_snapshot_plain(convert_Second2Gray(ExampleData.DeValues$BT998, dose.rate = results, error.propagation = "absolute")) expect_snapshot_plain(convert_Second2Gray(ExampleData.DeValues$BT998, dose.rate = dose.rate)) }) Luminescence/tests/testthat/test_analyse_Al2O3C_CrossTalk.R0000644000176200001440000000517414762554470023521 0ustar liggesusers## load data data(ExampleData.Al2O3C, envir = environment()) test_that("input validation", { skip_on_cran() expect_error(analyse_Al2O3C_CrossTalk("error"), "'object' should be of class 'RLum.Analysis' or 'list") expect_error(analyse_Al2O3C_CrossTalk(list("error")), "All elements of 'object' should be of class 'RLum.Analysis'") expect_error(analyse_Al2O3C_CrossTalk(list()), "'object' cannot be an empty list") expect_error(analyse_Al2O3C_CrossTalk(set_RLum("RLum.Analysis")), "'object' cannot be an empty RLum.Analysis") expect_error(analyse_Al2O3C_CrossTalk(data_CrossTalk, recordType = list(NA)), "'recordType' should be of class 'character'") expect_error(analyse_Al2O3C_CrossTalk(data_CrossTalk, recordType = "error"), "'object' contains no records with recordType = 'error'") expect_error(analyse_Al2O3C_CrossTalk(data_CrossTalk, method_control = "EXP"), "'method_control' should be of class 'list'") expect_error(analyse_Al2O3C_CrossTalk(data_CrossTalk, irradiation_time_correction = FALSE), "'irradiation_time_correction' should be of class 'numeric' or") corr <- set_RLum("RLum.Results") expect_error(analyse_Al2O3C_CrossTalk(data_CrossTalk, irradiation_time_correction = corr), "was created by an unsupported function") expect_warning(analyse_Al2O3C_CrossTalk(data_CrossTalk, signal_integral = 0), "'signal_integral' corrected to 1:99") }) test_that("check functionality", { skip_on_cran() set.seed(1) snapshot.tolerance <- 1.5e-5 ## run analysis expect_snapshot_RLum( analyse_Al2O3C_CrossTalk(data_CrossTalk), tolerance = snapshot.tolerance) expect_snapshot_RLum( analyse_Al2O3C_CrossTalk(data_CrossTalk, method_control = list(fit.method = "LIN")), tolerance = snapshot.tolerance) ## irradiation_time_correction SW({ corr <- analyse_Al2O3C_ITC(data_ITC) }) expect_snapshot_RLum( analyse_Al2O3C_CrossTalk(data_CrossTalk, irradiation_time_correction = corr), tolerance = snapshot.tolerance) corr@data$data <- rbind(corr@data$data, corr@data$data) expect_snapshot_RLum( analyse_Al2O3C_CrossTalk(data_CrossTalk, irradiation_time_correction = corr), tolerance = snapshot.tolerance) }) Luminescence/tests/testthat/test_analyse_portableOSL.R0000644000176200001440000001346414762554470023000 0ustar liggesusers## load data data(ExampleData.portableOSL, envir = environment()) ## generate test data set for profile merged <- surface <- merge_RLum(ExampleData.portableOSL) ## generate dataset for surface surface@records <- lapply(surface@records, function(x){ x@info$settings$Sample <- paste0("Test_x:", runif(1), "|y:", runif(1)) x }) test_that("check class and length of output", { testthat::skip_on_cran() ## standard run profile results <- expect_s4_class( analyse_portableOSL( merged, signal.integral = 1:5, invert = FALSE, mode = "profile", normalise = TRUE, plot = TRUE ), "RLum.Results") ## check standard with coordinates coord <- as.matrix(results$summary[,c("COORD_X", "COORD_Y")]) ## standard run profile no plot even with plot activated results <- expect_s4_class( analyse_portableOSL( merged, signal.integral = 1:5, invert = FALSE, normalise = TRUE, mode = NULL, coord = coord, plot = TRUE ), "RLum.Results") ## verify output expect_equal(length(results), 3) expect_s3_class(results$summary, "data.frame") expect_s4_class(results$data, "RLum.Analysis") ## standard surface results <- expect_s4_class( analyse_portableOSL( surface, signal.integral = 1:5, invert = FALSE, mode = "surface", normalise = TRUE, plot = TRUE ), "RLum.Results") ## surface with options set.seed(1234) results <- expect_s4_class( analyse_portableOSL( surface, signal.integral = 1:5, invert = TRUE, mode = "surface", xlim = c(0.1, 0.6), ylim = c(0.1, 0.6), zlim = c(0.1, 2), zlim_image = c(1, 2), col_ramp = grDevices::topo.colors(20), surface_values = c("BSL", "IRSL"), normalise = TRUE, contour = TRUE, plot = TRUE ), "RLum.Results") ## check list input expect_s4_class( suppressWarnings(analyse_portableOSL(ExampleData.portableOSL)), "RLum.Results") expect_warning(expect_null(analyse_portableOSL(list())), "Nothing was merged as the object list was found to be empty") ## check additional argument sample expect_s4_class(analyse_portableOSL( merged, signal.integral = 1:5, invert = FALSE, normalise = TRUE, ylim = c(1,2), zlim = list(BSL = c(0,1.1), IRSL = c(0,1)), plot = TRUE, sample = "test" ), "RLum.Results") ## more coverage expect_s4_class(analyse_portableOSL( surface, signal.integral = 1:5, mode = "surface", bg_img = as.raster(matrix(0:1, ncol = 4, nrow = 3)) ), "RLum.Results") }) test_that("input validation", { testthat::skip_on_cran() expect_error(analyse_portableOSL("error"), "[analyse_portableOSL()] 'object' should be of class 'RLum.Analysis'", fixed = TRUE) expect_error(analyse_portableOSL(set_RLum("RLum.Analysis")), "'object' cannot be an empty RLum.Analysis") ## Only RLum.Data.Curves tmp <- merged tmp@records <- list(tmp@records, "error") expect_error(analyse_portableOSL(tmp), regexp = "\\[analyse\\_portableOSL\\(\\)\\] The 'RLum.Analysis' object must contain only.+") ## Check originator tmp <- merged tmp@records[[1]]@originator <- "error" expect_error(analyse_portableOSL(tmp), regexp = "\\[analyse\\_portableOSL\\(\\)\\] Only objects originating from .+") ## Sequence pattern tmp <- merged tmp@records <- tmp@records[-1] expect_error(analyse_portableOSL(tmp), "Sequence pattern not supported") ## coordinates not list or matrix expect_error(analyse_portableOSL(surface, signal.integral = 1:5, coord = "error"), "'coord' should be of class 'matrix' or 'list'") ## coordinates are not of the correct size expect_error(analyse_portableOSL(surface, signal.integral = 1:5, coord = list(COORD_X = c(0, 0), COORD_Y = c(1, 2))), "Number of coordinates differ from the number of samples") ## trigger warning expect_warning( analyse_portableOSL( merged, signal.integral = 1:5, invert = FALSE, normalise = TRUE, mode = "surface", surface_value = c("BSL"), plot = TRUE, sample = "test"), "Surface interpolation failed: this happens when all points are") expect_error( analyse_portableOSL( merged, signal.integral = 1:5, mode = "surface", surface_value = "error"), "Unknown value to plot, valid values are:") expect_warning( analyse_portableOSL( merged, signal.integral = 1:5, invert = FALSE, normalise = TRUE, mode = "profile", zlim = c(1,2), plot = TRUE, sample = "test"), regexp = "\\[analyse\\_portableOSL\\(\\)\\] In profile mode, zlim.+") suppressWarnings( # generated the same warning twice expect_warning(analyse_portableOSL(merged[1:5], signal.integral = c(1, 102)), "'signal.integral' (1, 102) exceeded the number", fixed = TRUE) ) }) test_that("check output", { testthat::skip_on_cran() data("ExampleData.portableOSL", envir = environment()) merged <- merge_RLum(ExampleData.portableOSL) results <- analyse_portableOSL( merged, signal.integral = 1:5, invert = FALSE, normalise = TRUE, plot = FALSE ) expect_equal(round(sum(results$summary[,c(-1, -2, -10,-11)]), digits = 2), 175.44) }) Luminescence/tests/testthat/test_fit_OSLLifeTimes.R0000644000176200001440000001324614762554470022175 0ustar liggesusers## load data data(ExampleData.TR_OSL, envir = environment()) temp_mat <- get_RLum(ExampleData.TR_OSL)[1:200, ] test_that("input validation", { testthat::skip_on_cran() expect_warning(expect_null(fit_OSLLifeTimes("error")), "'object' should be of class 'RLum.Data.Curve', 'data.frame'") expect_error(fit_OSLLifeTimes(data.frame()), "'object' cannot be an empty data.frame") expect_error(fit_OSLLifeTimes(set_RLum("RLum.Analysis")), "'object' cannot be an empty RLum.Analysis") expect_error(fit_OSLLifeTimes(matrix(NA, 0, 3)), "'object' cannot be an empty matrix") expect_error(fit_OSLLifeTimes(matrix()), "'object' should have at least two columns") expect_error(fit_OSLLifeTimes(ExampleData.TR_OSL, n.components = -1), "'n.components' should be a positive integer scalar") expect_error(fit_OSLLifeTimes(ExampleData.TR_OSL, signal_range = FALSE), "'signal_range' should be of class 'numeric'") empty <- set_RLum(class = "RLum.Data.Curve") expect_error(fit_OSLLifeTimes(empty), "recordType 'NA' not supported for input object") expect_warning(expect_output(fit_OSLLifeTimes(list(empty)), "recordType 'NA' not supported for input object"), "Nothing was merged as the object list was found to be empty") expect_message(expect_null(fit_OSLLifeTimes(temp_mat[1:3, ])), "For 1 components the dataset must have at least 5 signal points") expect_message(fit_OSLLifeTimes(temp_mat, n.components = 1, signal_range = c(1, 3), verbose = FALSE), "For 1 components the dataset must have at least 5 signal points") expect_message(fit_OSLLifeTimes(temp_mat, n.components = 2, signal_range = c(1, 6), verbose = FALSE), "For 2 components the dataset must have at least 7 signal points") expect_warning(fit_OSLLifeTimes(temp_mat, n.components = 1, signal_range = c(1, 150:200), verbose = FALSE), "'signal_range' has more than 2 elements") expect_warning(fit_OSLLifeTimes(temp_mat, n.components = 1, signal_range = c(1, 300), verbose = FALSE), "'signal_range' > number of channels, reset to maximum") expect_warning(fit_OSLLifeTimes(temp_mat, n.components = 1, signal_range = 300, verbose = FALSE), "'signal_range' first element > last element, reset to default" ) temp <- temp_mat temp[100, 2] <- NA expect_warning(fit_OSLLifeTimes(temp, n.components = 1, verbose = FALSE), "NA values detected and removed from dataset") temp[100:110, 2] <- 0 expect_warning(fit_OSLLifeTimes(temp, n.components = 1, verbose = FALSE), "The dataset contains 0, a value of 0.1 has been added") expect_warning(fit_OSLLifeTimes(ExampleData.TR_OSL, method_control = list(seed = 1, DEoptim.itermax = 15, nlsLM.lower = FALSE), plot = FALSE, verbose = FALSE, n.components = 1), "At least one parameter is negative") }) test_that("check functionality", { testthat::skip_on_cran() snapshot.tolerance <- 1.5e-6 ## Test different inputs ##simple run set.seed(1) SW({ expect_snapshot_RLum(fit_OSLLifeTimes( object = ExampleData.TR_OSL, plot = FALSE, method_control = list(DEoptim.itermax = 15), n.components = 1), tolerance = snapshot.tolerance) ##simple list temp_list <- list(ExampleData.TR_OSL, ExampleData.TR_OSL) expect_snapshot_RLum(fit_OSLLifeTimes( object = temp_list, log = "x", method_control = list(DEoptim.itermax = 25), n.components = 1), tolerance = snapshot.tolerance) }) ## RLum.Analysis temp_analysis <- set_RLum("RLum.Analysis", records = temp_list) expect_s4_class(object = fit_OSLLifeTimes( object = temp_analysis, verbose = FALSE, plot = FALSE, n.components = 1), class = "RLum.Results") expect_s4_class(fit_OSLLifeTimes( object = list(temp_analysis), verbose = FALSE, plot = FALSE, n.components = 1), class = "RLum.Results") ## simple data.frame SW({ expect_snapshot_RLum(fit_OSLLifeTimes( object = as.data.frame(temp_mat), method_control = list(seed = 1, weights = FALSE, DEoptim.itermax = 50), signal.range = 3, verbose = TRUE, plot = FALSE, n.components = NULL), tolerance = snapshot.tolerance) }) ##test arguments ##simple run expect_s4_class(object = fit_OSLLifeTimes( object = ExampleData.TR_OSL, method_control = list(seed = 1, weights = FALSE, DEoptim.itermax = 25, nlsLM.upper = FALSE, nlsLM.lower = FALSE), plot = FALSE, verbose = FALSE, n.components = 1), class = "RLum.Results") ##warning for log expect_warning(expect_warning( fit_OSLLifeTimes( object = temp_mat, verbose = FALSE, plot = TRUE, plot_simple = TRUE, log = list("xy"), lty = 1, col = 1, n.components = 1), "log-scale requires x-values > 0, set min xlim to 0.01"), "log-scale requires y-values > 0, set min ylim to 1.69e+10", fixed = TRUE) SW({ expect_message(fit_OSLLifeTimes(temp_mat[1:10, ]), "The fitting was not successful, consider trying again") }) }) Luminescence/tests/testthat/test_calc_OSLLxTxRatio.R0000755000176200001440000001653214762554470022336 0ustar liggesusers##preloads data(ExampleData.LxTxOSLData, envir = environment()) test_that("test arguments", { testthat::skip_on_cran() snapshot.tolerance <- 1.5e-6 ##digits expect_snapshot_RLum(expect_silent(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:2), background.integral = c(85:100), digits = 1) ), tolerance = snapshot.tolerance) ##sigmab expect_snapshot_RLum(expect_silent(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:2), background.integral = c(85:100), sigmab = c(1000,100)) ), tolerance = snapshot.tolerance) ##poisson expect_snapshot_RLum(expect_silent(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:2), background.integral = c(85:100), background.count.distribution = "poisson") ), tolerance = snapshot.tolerance) }) test_that("test input", { testthat::skip_on_cran() ##RLum.Curve expect_silent(calc_OSLLxTxRatio( set_RLum(class = "RLum.Data.Curve", data = as.matrix(Lx.data)), set_RLum(class = "RLum.Data.Curve", data = as.matrix(Tx.data)), signal.integral = c(1:2), background.integral = c(70:100))) ##matrix expect_silent(calc_OSLLxTxRatio( as.matrix(Lx.data), as.matrix(Tx.data), signal.integral = c(1:2), background.integral = c(70:100))) ##numeric expect_silent(calc_OSLLxTxRatio( as.numeric(Lx.data[,2]), as.numeric(Tx.data[,2]), signal.integral = c(1:2), background.integral = c(70:100))) ##RLum.Curve expect_silent(calc_OSLLxTxRatio( set_RLum(class = "RLum.Data.Curve", data = as.matrix(Lx.data)), Tx.data = NULL, signal.integral = c(1:2), background.integral = c(70:100))) ##matrix expect_silent(calc_OSLLxTxRatio( as.matrix(Lx.data), Tx.data = NULL, signal.integral = c(1:2), background.integral = c(70:100))) ##numeric expect_silent(calc_OSLLxTxRatio( as.numeric(Lx.data[,2]), Tx.data = NULL, signal.integral = c(1:2), background.integral = c(70:100))) }) test_that("input validation", { testthat::skip_on_cran() expect_error(calc_OSLLxTxRatio( Lx.data[1:10,], Tx.data, signal.integral = c(1:2), background.integral = c(85:100) ), "Channel numbers of Lx and Tx data differ") expect_error(calc_OSLLxTxRatio(Lx.data, "error"), "'Lx.data' and 'Tx.data' have different types") expect_error(calc_OSLLxTxRatio("error", "error"), "'Lx.data' should be of class 'RLum.Data.Curve', 'data.frame'") expect_error(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:2000), background.integral = c(85:100) ), "'signal.integral' is not valid") expect_error(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:90), background.integral = c(85:100) ), "'signal.integral' and 'background.integral' overlap") expect_error(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:10), signal.integral.Tx = c(1:90), background.integral = c(85:100), background.integral.Tx = c(85:100) ), "'signal.integral.Tx' and 'background.integral.Tx' overlap") expect_error(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:20), background.integral = c(85:1000) ), "'background.integral' is not valid, max: 100") expect_error(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:10), signal.integral.Tx = c(1:10), background.integral = c(85:100), background.integral.Tx = c(85:10000) ), "'background.integral.Tx' is not valid, max: 100") expect_error(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:10), signal.integral.Tx = c(1:1000), background.integral = c(85:100), background.integral.Tx = c(85:100) ), "'signal.integral.Tx' is not valid") expect_error(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:20), signal.integral.Tx = c(1:20), background.integral = 80:100, background.integral.Tx = NULL ), "You have to provide both 'signal.integral.Tx' and 'background.integral.Tx'") expect_error(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:20), background.integral = 80:100, sigmab = "test" ), "'sigmab' should be of class 'numeric'") expect_error(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:20), background.integral = 80:100, sigmab = c(1, 2, 3) ), "'sigmab' can have at most length 2") }) test_that("create warnings", { testthat::skip_on_cran() expect_warning(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:20), signal.integral.Tx = c(1:20), background.integral = 80:100, background.integral.Tx = 60:100 ), "Number of background channels for Lx < 25, error estimation might not be reliable") expect_warning(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:20), signal.integral.Tx = c(1:20), background.integral = 60:100, background.integral.Tx = 80:100 ), "Number of background channels for Tx < 25, error estimation might not be reliable") expect_warning(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:20), background.integral = 60:100, background.count.distribution = "hallo" ), "Unknown method for 'background.count.distribution', a non-poisson") expect_warning(calc_OSLLxTxRatio( Lx.data, Tx.data, signal.integral = c(1:20), signal.integral.Tx = c(2:20), background.integral = 60:100, background.integral.Tx = 40:100, use_previousBG = TRUE ), "With 'use_previousBG = TRUE' independent Lx and Tx integral limits are") }) test_that("snapshot tests", { testthat::skip_on_cran() snapshot.tolerance <- 1.5e-6 expect_snapshot_RLum(calc_OSLLxTxRatio( Lx.data = Lx.data, Tx.data = Tx.data, signal.integral = c(1:2), background.integral = c(85:100) ), tolerance = snapshot.tolerance) ## check weird circumstances ##(1) - Lx curve 0 expect_snapshot_RLum(calc_OSLLxTxRatio( data.frame(Lx.data[,1],0), Tx.data, signal.integral = c(1:2), background.integral = c(85:100) )) ##(2) - Tx curve 0 expect_snapshot_RLum(calc_OSLLxTxRatio( Lx.data, data.frame(Tx.data[,1],0), signal.integral = c(1:2), background.integral = c(85:100) )) ##(3) - Lx and Tx curve 0 expect_snapshot_RLum(calc_OSLLxTxRatio( data.frame(Lx.data[,1],0), data.frame(Tx.data[,1],0), signal.integral = c(1:2), background.integral = c(85:100) )) ##(4) - Lx < 0 expect_snapshot_RLum(calc_OSLLxTxRatio( data.frame(Lx.data[,1],-1000), data.frame(Tx.data[,1],0), signal.integral = c(1:2), background.integral = c(85:100) )) ##(5) - Tx < 0 expect_snapshot_RLum(calc_OSLLxTxRatio( Lx.data, data.frame(Lx.data[,1],-1000), signal.integral = c(1:2), background.integral = c(85:100) )) ##(6) - Lx & Tx < 0 expect_snapshot_RLum(calc_OSLLxTxRatio( data.frame(Lx.data[,1],-1000), data.frame(Tx.data[,1],-1000), signal.integral = c(1:2), background.integral = c(85:100) )) }) test_that("test NA mode with no signal integrals", { testthat::skip_on_cran() data(ExampleData.LxTxOSLData, envir = environment()) temp <- expect_s4_class(calc_OSLLxTxRatio( Lx.data = Lx.data, Tx.data = Tx.data, signal.integral = NA, background.integral = NA), "RLum.Results") expect_equal(round(sum(temp$LxTx.table[1,]),0), 391926) }) Luminescence/tests/testthat/test_calc_ThermalLifetime.R0000644000176200001440000000656114762554470023133 0ustar liggesusers##EXAMPLE 1 ##calculation for two trap-depths with similar frequency factor for different temperatures set.seed(1) temp <- calc_ThermalLifetime( E = c(1.66, 1.70), s = 1e+13, T = 10:20, output_unit = "Ma", verbose = FALSE ) ##EXAMPLE 2 ##profiling of thermal life time for E and s and their standard error temp2 <- calc_ThermalLifetime( E = c(1.600, 0.003), s = c(1e+13,1e+011), T = 20, profiling = TRUE, output_unit = "Ma", verbose = FALSE, plot = FALSE ) test_that("check class and length of output example 1", { testthat::skip_on_cran() expect_s4_class(temp, "RLum.Results") expect_equal(length(temp), 2) expect_type(temp$lifetimes, "double") expect_equal(dim(temp$lifetimes), c(1, 2, 11)) ##check results for 10 °C results <- lapply(1:length(10:20), function(x){ temp$lifetimes[,,x] }) expect_equal(round(results[[1]], digits = 3), c("1.66" = 1115.541, "1.7" = 5747.042)) expect_equal(round(results[[2]], digits = 4), c("1.66" = 878.0196, "1.7" = 4497.3585)) expect_equal(round(results[[3]], digits = 4), c("1.66" = 692.2329, "1.7" = 3525.4738)) expect_equal(round(results[[4]], digits = 4), c("1.66" = 546.6658, "1.7" = 2768.3216)) expect_equal(round(results[[5]], digits = 4), c("1.66" = 432.4199, "1.7" = 2177.4436)) expect_equal(round(results[[6]], digits = 4), c("1.66" = 342.6069, "1.7" = 1715.5406)) expect_equal(round(results[[7]], digits = 4), c("1.66" = 271.8854, "1.7" = 1353.8523)) expect_equal(round(results[[8]], digits = 4), c("1.66" = 216.1065, "1.7" = 1070.1642)) expect_equal(round(results[[9]], digits = 4), c("1.66" = 172.0421, "1.7" = 847.2879)) expect_equal(round(results[[10]], digits = 4), c("1.66" = 137.1765, "1.7" = 671.9020)) expect_equal(round(results[[11]], digits = 4), c("1.66" = 109.5458, "1.7" = 533.6641)) }) test_that("check class and length of output example 2", { testthat::skip_on_cran() expect_s4_class(temp2, c("RLum.Results")) testthat::expect_equal(length(temp2), 2) testthat::expect_type(temp2$lifetimes, "double") testthat::expect_equal(class(temp2$lifetimes), "numeric") testthat::expect_equal(length(temp2$lifetimes), 1000) testthat::expect_equal(dim(temp2$profiling_matrix), c(1000, 4)) }) test_that("input validation", { testthat::skip_on_cran() expect_error(calc_ThermalLifetime(), "'E' should be of class 'numeric'") expect_error(calc_ThermalLifetime(E = 1.4), "'s' should be of class 'numeric'") ##profiling settings SW({ expect_warning( calc_ThermalLifetime(E = 1.4, s = 1e05, profiling_config = list(n = 10)), "Minimum MC runs are 1000, parameter 'n' in profiling_config reset to 1000") }) expect_error(calc_ThermalLifetime( E = 1.4, s = 1e05, profiling = TRUE, profiling_config = list(E.distribution = "test") ), "Unknown distribution setting for E profiling") expect_error(suppressWarnings(calc_ThermalLifetime( E = 1.4, s = 1e05, profiling = TRUE, profiling_config = list(s.distribution = "test")) ), "Unknown distribution setting for s profiling") ##output SW({ expect_warning(calc_ThermalLifetime(E = 1.4, s = 1e05, output_unit = "test"), "'output_unit' unknown, reset to 's'") }) expect_output(calc_ThermalLifetime(E = 1.4, s = 1e05, verbose = TRUE)) expect_output(calc_ThermalLifetime(E = c(1.4, 0.001), s = c(1e05,1e03), plot = TRUE, profiling = TRUE)) }) Luminescence/tests/testthat/test_write_RLum2CSV.R0000644000176200001440000000471214762554470021621 0ustar liggesusers## load data data(ExampleData.portableOSL, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_error(write_RLum2CSV(object = "", export = FALSE), "[write_RLum2CSV()] 'object' should be of class 'RLum.Analysis'", fixed = TRUE) expect_error(write_RLum2CSV(ExampleData.portableOSL[[1]], export = TRUE, path = "non-existing"), "Directory provided via the argument 'path' does not exist") expect_error(write_RLum2CSV(set_RLum("RLum.Results"), verbose = FALSE), "'object' cannot be an empty RLum.Results") }) test_that("check functionality", { testthat::skip_on_cran() ## move temporarily to avoid polluting the working directory cwd <- setwd(tempdir()) expect_message( expect_null(write_RLum2CSV(ExampleData.portableOSL[[1]], export = TRUE)), "Path automatically set to") expect_type(write_RLum2CSV(ExampleData.portableOSL, export = FALSE), "list") setwd(cwd) data("ExampleData.RLum.Data.Image", envir = environment()) write_RLum2CSV(ExampleData.RLum.Data.Image, path = tempdir()) ##test RLum.Results objects ## load example data data(ExampleData.DeValues, envir = environment()) SW({ results <- calc_CommonDose(ExampleData.DeValues$CA1) }) ##using option compact expect_warning(write_RLum2CSV(object = results,export = FALSE), "elements could not be converted to CSV") ##using option compact = FALSE expect_warning(write_RLum2CSV(object = results, export = FALSE, compact = FALSE), "elements could not be converted to CSV") expect_warning(write_RLum2CSV(object = results,export = FALSE, compact = TRUE), "elements could not be converted to CSV") ## no valid records res.invalid <- results res.invalid@data$summary <- res.invalid@data$data <- NULL res.invalid@data$args$sigmab <- NULL expect_warning(expect_error(write_RLum2CSV(res.invalid, export = FALSE)), "elements could not be converted to CSV") ##real export expect_warning( write_RLum2CSV(object = results, path = tempdir(), compact = TRUE), "elements could not be converted to CSV") ## data.frame df <- results@data$data expect_null(write_RLum2CSV(object = df, path = tempdir())) attr(df, "filename") <- "test" expect_null(write_RLum2CSV(object = df, path = tempdir())) ## empty list expect_null(write_RLum2CSV(list())) }) Luminescence/tests/testthat/test_structure_RLum.R0000644000176200001440000000074114762554470022067 0ustar liggesuserstest_that("check functionality", { testthat::skip_on_cran() data(ExampleData.RLum.Analysis, envir = environment()) expect_silent(structure_RLum(IRSAR.RF.Data)) expect_s3_class(structure_RLum(IRSAR.RF.Data), "data.frame") ##test a list of such elements expect_type(structure_RLum(list(IRSAR.RF.Data,IRSAR.RF.Data, "a")), "list") ## empty object res <- structure_RLum(set_RLum("RLum.Analysis")) expect_s3_class(res, "data.frame") expect_equal(nrow(res), 0) }) Luminescence/tests/testthat/test_convert_XSYG2CSV.R0000644000176200001440000000214114762554470022054 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(convert_XSYG2CSV(), "'file' should be of class 'character' or 'RLum'") expect_error(convert_XSYG2CSV(character(0)), "'file' cannot be an empty character") expect_error(convert_XSYG2CSV(letters), "[read_XSYG2R()] 'file' should have length 1", fixed = TRUE) expect_error(convert_PSL2CSV(file = "error"), "No .psl files found") SW({ expect_error(expect_message(convert_XSYG2CSV(file = "", export = FALSE), "XML file not readable, nothing imported"), "'object' should be of class 'RLum.Analysis', 'RLum.Data.Curve'") }) }) test_that("test convert functions", { testthat::skip_on_cran() data(ExampleData.XSYG, envir = environment()) expect_type(convert_XSYG2CSV(OSL.SARMeasurement$Sequence.Object[1:10], export = FALSE), "list") expect_null(convert_XSYG2CSV(OSL.SARMeasurement$Sequence.Object[1:10], export = TRUE, path = tempdir())) }) Luminescence/tests/testthat/test_read_SPE2R.R0000644000176200001440000000500214762554470020711 0ustar liggesusers## path to the SPE file on github, as it's not included in the package github.url <- file.path("https://github.com/R-Lum/Luminescence", "raw/master/tests/testthat/_data") ## `read_SPE2R()` calls `download.file()` which, in turn, uses curl to ## perform the actual download. If `verbose = TRUE`, curl is invoked with ## `quiet = FALSE`, and the output it produces cannot be captured by `SW()`, ## nor by other simple R approaches because curl writes directly to the ## console bypassing R. The workaround is to divert all output to a file, see: ## https://stackoverflow.com/questions/66138345/how-to-suppress-download-file-trying-url-message-in-r sink.curl.messages <- function(expr) { nullcon <- file(nullfile(), open = "wb") sink(nullcon, type = "message") expr sink(type = "message") close(nullcon) } test_that("input validation", { testthat::skip_on_cran() expect_error(read_SPE2R(data.frame()), "'file' should be of class 'character'") expect_error(read_SPE2R(character(0)), "'file' should have length 1") expect_message(expect_null(read_SPE2R("error")), "Error: File does not exist, NULL returned") expect_error(read_SPE2R(file.path(github.url, "SPEfile.SPE"), output.object = "error"), "'output.object' should be one of 'RLum.Data.Image'") SW({ expect_message(expect_null(read_SPE2R("http://httpbun.org/status/404")), "Error: File does not exist, NULL returned") }) wrong <- system.file("extdata/BINfile_V8.binx", package = "Luminescence") expect_error(read_SPE2R(wrong), "Unsupported file format") }) test_that("check functionality", { testthat::skip_on_cran() ## default values sink.curl.messages( expect_output( expect_s4_class(read_SPE2R(file.path(github.url, "SPEfile.SPE")), "RLum.Data.Image"), "URL detected, checking connection") ) }) test_that("snapshot tests", { testthat::skip_on_cran() snapshot.tolerance <- 1.5e-6 expect_snapshot_RLum(read_SPE2R(file.path(github.url, "SPEfile.SPE"), output.object = "RLum.Data.Spectrum", verbose = FALSE), tolerance = snapshot.tolerance) expect_snapshot_plain(read_SPE2R(file.path(github.url, "SPEfile.SPE"), output.object = "matrix", verbose = FALSE), tolerance = snapshot.tolerance) }) Luminescence/tests/testthat/test_internals_Thermochronometry.R0000644000176200001440000000163414762554470024701 0ustar liggesusersinput.xls <- test_path("_data/CLBR.xlsx") input.csv <- file.path(test_path("_data"), paste0("CLBR_IR", c(50, 100, 150, 225), ".csv")) test_that("input validation", { testthat::skip_on_cran() expect_error(.import_ThermochronometryData(list()), "Input type not supported") expect_error(.import_ThermochronometryData("filename", output_type = "error"), "'output_type' should be one of 'RLum.Results' or 'list'") expect_error(.import_ThermochronometryData(input.xls), "XLS/XLSX format is not supported, use CSV instead") expect_error(.import_ThermochronometryData("error"), "File does not exist") }) test_that("check functionality", { testthat::skip_on_cran() expect_snapshot_RLum(.import_ThermochronometryData(input.csv)) expect_type(.import_ThermochronometryData(input.csv, output_type = "list"), "list") }) Luminescence/tests/testthat/test_plot_Histogram.R0000644000176200001440000000420614762554470022063 0ustar liggesusersdata(ExampleData.DeValues, envir = environment()) df <- ExampleData.DeValues$CA1 test_that("input validation", { testthat::skip_on_cran() expect_error(plot_Histogram("error"), "'data' should be of class 'data.frame' or 'RLum.Results'") expect_error(plot_Histogram(iris[0, ]), "'data' contains no data") expect_error(plot_Histogram(data.frame()), "'data' contains no data") expect_error(plot_Histogram(set_RLum("RLum.Results")), "'data' contains no data") expect_error(plot_Histogram(df, ylim = c(0, 1)), "'ylim' should have length 4") }) test_that("check functionality", { testthat::skip_on_cran() expect_silent(plot_Histogram(df)) expect_silent(plot_Histogram(df, normal_curve = TRUE)) ## more coverage expect_silent(plot_Histogram(df, main = "Title", xlab = "x", ylab = "y", xlim = c(0, 120), ylim = c(0, 0.1, 0, 0.1), pch = 1, breaks = "Sturges", normal_curve = TRUE, summary.pos = c(20, 0.017), summary = c("n", "mean", "mean.weighted", "median", "sdrel"))) expect_silent(plot_Histogram(df, summary.pos = "topleft")) expect_silent(plot_Histogram(df, summary.pos = "top")) expect_silent(plot_Histogram(df, summary.pos = "topright")) expect_silent(plot_Histogram(df, summary.pos = "left")) expect_silent(plot_Histogram(df, summary.pos = "center")) expect_silent(plot_Histogram(df, summary.pos = "right")) expect_silent(plot_Histogram(df, summary.pos = "bottomleft")) expect_silent(plot_Histogram(df, summary.pos = "bottom")) expect_silent(plot_Histogram(df, summary.pos = "bottomright")) ## interactive expect_silent(plot_Histogram(df, interactive = TRUE, normal_curve = TRUE, se = TRUE)) ## missing values df.na <- df df.na[10, 1] <- NA expect_output(plot_Histogram(df.na), "1 NA value excluded") df.na[20, 1] <- NA expect_output(plot_Histogram(df.na), "2 NA values excluded") }) Luminescence/tests/testthat/test_read_RF2R.R0000644000176200001440000000334214762554470020576 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(read_RF2R("error"), "File 'error' does not exist") expect_error(read_RF2R(2), "'file' should be of class 'character' or 'list'") expect_error(read_RF2R(character(0)), "'file' cannot be an empty character") expect_warning(expect_null(read_RF2R(list(data.frame()))), "All elements of 'file' should be of class 'character'") expect_message(expect_null(read_RF2R(list("error"))), "Import for file 'error' failed, NULL returned") }) test_that("check functionality", { testthat::skip_on_cran() ##load file path file <- system.file("extdata", "RF_file.rf", package = "Luminescence") ##simple import SW({ expect_type(read_RF2R(file), type = "list") }) ##import list expect_type(expect_message(read_RF2R(list(file, "test"), verbose = FALSE), "Error: Import for file 'test' failed"), type = "list") ##import false list expect_warning(read_RF2R(c(file, file), verbose = FALSE), "'file' has length > 1, only the first element was taken") ## create a file with unsupported version file.wrong <- "RF_wrong_version.Rf" writeLines(gsub("17-10-2018", "wrong-version", readLines(file)), file.wrong) expect_error(read_RF2R(file.wrong), "File format not supported") file.remove(file.wrong) ## create a file with malformed header file.wrong <- "RF_wrong_header.Rf" writeLines(gsub("grain_d=20", "grain_d=", readLines(file)), file.wrong) expect_message(read_RF2R(file.wrong, verbose = FALSE), "Error: Header extraction failed") file.remove(file.wrong) }) Luminescence/tests/testthat/test_RLum.Analysis-class.R0000644000176200001440000002135014762554470022633 0ustar liggesusers## load data data(ExampleData.RLum.Analysis, envir = environment()) obj <- IRSAR.RF.Data data(ExampleData.XSYG, envir = environment()) sar <- OSL.SARMeasurement$Sequence.Object[1:9] ## construct test object tmp <- set_RLum( "RLum.Analysis", protocol = "testthat", records = lapply(1:20, function(x) { set_RLum( "RLum.Data.Curve", recordType = "test", data = matrix(1:10, ncol = 2), info = list(el = as.character(x)) ) }), info = list(el = "test") ) ## missing info slot to test very old objects (before commit 5226b88, Jan 2016) old <- tmp attr(old, "info") <- NULL test_that("Check the example and the numerical values", { testthat::skip_on_cran() ## set_RLum() expect_s4_class(tmp, "RLum.Analysis") expect_s4_class(set_RLum("RLum.Analysis", records = tmp, .pid = "test"), "RLum.Analysis") ##overwrite object expect_s4_class(set_RLum("RLum.Analysis", records = tmp), "RLum.Analysis") ## as() expect_type(as(tmp, "list"), "list") expect_s4_class(as(list(), "RLum.Analysis"), "RLum.Analysis") ## output expect_output(print(as(list(), "RLum.Analysis")), regexp = "This is an empty object") expect_s4_class( set_RLum( "RLum.Analysis", protocol = "testthat", records = set_RLum( "RLum.Analysis", protocol = "nest", records = list(matrix(1:10, ncol = 2)) ), info = list(el = "test") ), "RLum.Analysis" ) ## show() expect_output(print(tmp)) expect_output(print(old)) ## names() expect_type(names(tmp), "character") }) test_that("get_RLum", { testthat::skip_on_cran() ## input validation expect_error(get_RLum(obj, subset = "error"), "[get_RLum()] 'subset' must contain a logical expression", fixed = TRUE) expect_error(get_RLum(obj, subset = (error == "OSL")), "[get_RLum()] Invalid subset expression, valid terms are:", fixed = TRUE) expect_error(get_RLum(tmp, record.id = "character"), "'record.id' should be of class 'integer', 'numeric' or 'logical'") expect_error(get_RLum(tmp, recordType = 1L), "'recordType' should be of class 'character'") expect_error(get_RLum(tmp, curveType = 1L), "'curveType' should be of class 'character'") expect_error(get_RLum(tmp, RLum.type = 1L), "'RLum.type' should be of class 'character'") expect_error(get_RLum(tmp, get.index = "a"), "'get.index' should be a single logical value") ## check functionality expect_length(get_RLum(obj, subset = (recordType == "RF")), 2) expect_length(get_RLum(tmp, subset = (el == "2")), 1) expect_s4_class(get_RLum(tmp, subset = (el == "2")), "RLum.Analysis") expect_type(get_RLum(tmp, info.object = "el"), "character") ## check subset for info elements t_subset <- IRSAR.RF.Data t_subset@records[[1]]@info <- list(TEST = "SUBSET") expect_length(get_RLum(t_subset, subset = c(TEST == "SUBSET")), 1) expect_type(get_RLum(obj, get.index = FALSE), "list") expect_type(get_RLum(obj, get.index = NULL), "list") expect_type(get_RLum(obj, get.index = TRUE), "integer") expect_s4_class(get_RLum(obj, get.index = FALSE, drop = FALSE), "RLum.Analysis") expect_type(get_RLum(obj, get.index = TRUE, drop = FALSE), "integer") expect_type(get_RLum(tmp, record.id = c(3, 5), get.index = FALSE), "list") expect_s4_class(get_RLum(obj, record.id = 1), "RLum.Data.Curve") expect_s4_class(get_RLum(obj, record.id = 1, drop = FALSE), "RLum.Analysis") expect_type(get_RLum(obj, record.id = 1, get.index = TRUE), "integer") expect_message(expect_null(get_RLum(obj, record.id = 99)), "[get_RLum()] Error: At least one 'record.id' is invalid", fixed = TRUE) expect_warning(get_RLum(tmp, info.object = "missing"), "[get_RLum()] Invalid 'info.object' name, valid names are:", fixed = TRUE) expect_warning(expect_null(get_RLum(set_RLum("RLum.Analysis"), info = "test")), "[get_RLum()] This 'RLum.Analysis' object has no info objects", fixed = TRUE) SW({ expect_message(expect_null(get_RLum(obj, subset = (recordType == "error"))), "'subset' expression produced an empty selection, NULL returned") expect_message(expect_null(get_RLum(obj, subset = (recordType == NA))), "'subset' expression produced an empty selection, NULL returned") }) }) test_that("sort_RLum", { testthat::skip_on_cran() ## input validation expect_error(sort_RLum(sar, slot = NA), "'slot' should be of class 'character' or NULL") expect_error(sort_RLum(sar, slot = c("curveType", "error")), "Invalid 'slot' name, valid names are:") expect_error(sort_RLum(sar, info_element = NA), "'info_element' should be of class 'character' or NULL") expect_error(sort_RLum(sar, info_element = c("position", "error")), "Invalid 'info_element' name, valid names are:") expect_error(sort_RLum(sar, slot = NULL, info_element = NULL), "At least one of 'slot' and 'info_element' should not be NULL") expect_error(sort_RLum(sar, slot = "recordType", decreasing = "error"), "'decreasing' should be a single logical value") expect_error(sort_RLum(sar, slot = "data"), "Records could not be sorted according to slot = 'data'") expect_error(sort_RLum(sar, info_element = "offset"), "Records could not be sorted according to info_element = 'offset'") ## sort only using the first field until #605 is done expect_message(sort_RLum(sar, slot = c("curveType", "recordType")), "Only the first field will be used in sorting") expect_message(sort_RLum(sar, info_element = c("state", "offset")), "Only the first field will be used in sorting") ## check functionality expect_snapshot_RLum(sort_RLum(sar, slot = "recordType")) expect_snapshot_RLum(sort_RLum(sar, info_element = "curveDescripter")) empty <- as(list(), "RLum.Analysis") expect_equal(sort_RLum(empty, slot = "curveType"), empty) }) test_that("structure_RLum", { testthat::skip_on_cran() ## input validation expect_error(structure_RLum( set_RLum("RLum.Analysis", records = list(set_RLum("RLum.Data.Image")))), "Only 'RLum.Data.Curve' objects are allowed") ## full functionality ## object with empty info expect_s3_class(res <- structure_RLum(obj), "data.frame") expect_equal(nrow(res), length(obj@records)) expect_equal(ncol(res), 13) expect_equal(res$n.channels, c(5, 524)) expect_equal(res$recordType, c("RF", "RF")) expect_equal(res$info, c(NA, NA)) expect_s3_class(res2 <- structure_RLum(obj, fullExtent = TRUE), "data.frame") expect_equal(names(res2), names(res)) expect_equal(res2$info, c(NA, NA)) ## object with some info data(ExampleData.BINfileData, envir = environment()) d1 <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1) res <- structure_RLum(d1) expect_equal(nrow(res), length(d1@records)) expect_equal(ncol(res), 13) res2 <- structure_RLum(d1, fullExtent = TRUE) expect_equal(nrow(res2), length(d1@records)) expect_equal(ncol(res2), 12 + length(d1@records[[1]]@info)) expect_null(res2$info) expect_equal(names(res2)[-c(1:12)], paste0("info.", names(d1@records[[1]]@info))) ## on an empty object with some info res <- structure_RLum(tmp) expect_equal(nrow(res), length(tmp@records)) expect_equal(ncol(res), 13) expect_equal(res$n.channels, rep(5, 20)) res2 <- structure_RLum(tmp, fullExtent = TRUE) expect_equal(nrow(res2), length(tmp@records)) expect_equal(ncol(res2), 12 + length(tmp@records[[1]]@info)) expect_null(res2$info) ## since @info contains only one expect_equal(names(res2)[-c(1:12)], ## element named `el`, the last names(tmp@records[[1]]@info)) ## column in res2 is also named expect_equal(res2$el, as.character(1:20)) ## `el` rather than `info.el` ## on an even emptier object empty info empty <- set_RLum("RLum.Analysis", records = list(set_RLum("RLum.Data.Curve"))) expect_s3_class(res <- structure_RLum(empty), "data.frame") expect_equal(nrow(res), length(empty@records)) expect_equal(ncol(res), 13) expect_equal(res$n.channels, 1) expect_equal(res$info, NA) res2 <- structure_RLum(empty, fullExtent = TRUE) expect_equal(nrow(res2), length(empty@records)) expect_equal(ncol(res2), 13) expect_equal(names(res2), names(res)) expect_equal(res2$info, NA) ## melt t <- melt_RLum(tmp) expect_type(t, "list") }) Luminescence/tests/testthat/test_zzz.R0000644000176200001440000000220014762554470017715 0ustar liggesuserstest_that("Test zzz functions ... they should still work", { testthat::skip_on_cran() ##get right answer expect_equal(get_rightAnswer(), 46) expect_equal(get_rightAnswer("test"), 46) ##get quote expect_silent(get_Quote()) expect_silent(get_Quote(ID = 1)) expect_silent(get_Quote(ID = 10, separated = TRUE)) expect_silent(get_Quote(ID = 1e06)) ##tune data expect_warning(tune_Data(1:10)) expect_warning(tune_Data(data.frame(runif(n = 10, 8,12),runif(n = 10, 0.1,0.3) ), decrease.error = TRUE)) expect_warning(tune_Data(data.frame(runif(n = 10, 8,12),runif(n = 10, 0.1,0.3) ), increase.data = TRUE)) ##sTeve ## read example data set data(ExampleData.DeValues, envir = environment()) ExampleData.DeValues <- convert_Second2Gray(ExampleData.DeValues$BT998, c(0.0438,0.0019)) ## create plot straightforward expect_silent(plot_KDE(data = ExampleData.DeValues)) expect_silent(sTeve(type = 1)) expect_silent(sTeve(type = 2, t_animation = 1)) expect_silent(sTeve(type = 3, t_animation = 1, n.tree = 2)) expect_error(sTeve("error"), "'n_frames' should be of class 'integer' or 'numeric'") }) Luminescence/tests/testthat/test_RLum.Data.Image.R0000644000176200001440000000424214762554470021640 0ustar liggesuserstest_that("check class ", { testthat::skip_on_cran() ##load example data data(ExampleData.RLum.Data.Image, envir = environment()) ##set-method ##set empty class expect_s4_class(set_RLum(class = "RLum.Data.Image"), "RLum.Data.Image") ##overwrite only data expect_s4_class(set_RLum(class = "RLum.Data.Image", data = set_RLum("RLum.Data.Image")), "RLum.Data.Image") ##show-method ##show example data expect_output(show(ExampleData.RLum.Data.Image)) ##get-method expect_error(get_RLum(ExampleData.RLum.Data.Image, info.object = 1), "'info.object' should be of class 'character'") expect_error(get_RLum(ExampleData.RLum.Data.Image, info.object = "unknown")) expect_type(get_RLum(ExampleData.RLum.Data.Image, info.object = "NumFrames"), "integer") ##names expect_type(names_RLum(ExampleData.RLum.Data.Image), "character") ##conversions ##from matrix and to matrix expect_s4_class(as(matrix(1:10, ncol = 2), "RLum.Data.Image"), "RLum.Data.Image") expect_type(as(ExampleData.RLum.Data.Image, "matrix"), "integer") ##from data.frame and to data.frame df <- as.data.frame(as(ExampleData.RLum.Data.Image, "matrix")) expect_s4_class(as(df, "RLum.Data.Image"), "RLum.Data.Image") expect_s3_class(as(ExampleData.RLum.Data.Image, "data.frame"), "data.frame") ## to and from array expect_type(as(ExampleData.RLum.Data.Image, "array"), "integer") from_array <- expect_s4_class(as(array(1,dim = c(10,10,2)), "RLum.Data.Image"), "RLum.Data.Image") ## to and from list expect_s4_class(as(list(matrix(1, nrow = 10, ncol = 5), matrix(1, nrow = 10, ncol = 5)), "RLum.Data.Image"), "RLum.Data.Image") expect_s4_class(as(list(), "RLum.Data.Image"), "RLum.Data.Image") expect_type(as(ExampleData.RLum.Data.Image, "list"), "list") res <- as(set_RLum("RLum.Data.Image"), "list") expect_type(res, "list") expect_length(res, 0) ## check edge cases expect_error(as(from_array, "matrix"), "No viable coercion to matrix, object contains multiple frames. Please convert to array instead.") expect_error(as(from_array, "data.frame"), "No viable coercion to data.frame, object contains multiple frames.") }) Luminescence/tests/testthat/test_calc_OSLLxTxDecomposed.R0000644000176200001440000000357114762554470023336 0ustar liggesusersdata(ExampleData.LxTxOSLData, envir = environment()) colnames(Lx.data) <- colnames(Tx.data) <- c("n", "n.error") test_that("input validation", { testthat::skip_on_cran() expect_error(calc_OSLLxTxDecomposed(), "'Lx.data' should be of class 'data.frame") expect_error(calc_OSLLxTxDecomposed("test"), "'Lx.data' should be of class 'data.frame") expect_error(calc_OSLLxTxDecomposed(data.frame(col = integer(0))), "No valid component data.frame for Lx value") expect_error(calc_OSLLxTxDecomposed(Lx.data, "test"), "'Tx.data' should be of class 'data.frame") expect_error(calc_OSLLxTxDecomposed(Lx.data, data.frame(col = integer(0))), "No valid component data.frame for Tx value") expect_error(calc_OSLLxTxDecomposed(Lx.data, Tx.data, OSL.component = NA), "'OSL.component' should be of class 'integer', 'numeric' or") expect_error(calc_OSLLxTxDecomposed(Lx.data, Tx.data, OSL.component = "error"), "Invalid OSL component name, valid names are:") expect_error(calc_OSLLxTxDecomposed(Lx.data, Tx.data, OSL.component = 1000), "Invalid OSL component index, component table has 100 rows") expect_error(calc_OSLLxTxDecomposed(Lx.data, digits = NA), "'digits' should be a positive integer scalar") }) test_that("check class and length of output", { testthat::skip_on_cran() expect_snapshot_RLum(calc_OSLLxTxDecomposed(Lx.data, Tx.data, digits = 2)) expect_snapshot_RLum(calc_OSLLxTxDecomposed(Lx.data, Tx.data, digits = 2, OSL.component = 2)) expect_snapshot_RLum(calc_OSLLxTxDecomposed(Lx.data, Tx.data, digits = 2, OSL.component = 3, sig0 = 1000)) }) Luminescence/tests/testthat/test_Risoe.BINfileData2RLum.Analysis.R0000644000176200001440000000636214762554470024663 0ustar liggesusersdata(ExampleData.BINfileData, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_error(Risoe.BINfileData2RLum.Analysis("test"), "'object' should be of class 'Risoe.BINfileData") expect_error(Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = "test"), "'pos' should be of class 'numeric' or 'integer'") expect_error(Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, run = 10:12), "run = 10, 11, 12 contains invalid runs") expect_error(Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, set = 10:12), "set = 10, 11, 12 contains invalid sets") expect_error(Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, ltype = 10:12), "ltype = '10', '11', '12' contains invalid ltypes") expect_error(Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, dtype = 10:12), "dtype = '10', '11', '12' contains invalid dtypes") expect_warning(Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1:30), "Invalid position number skipped") expect_warning(Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, grain = 1:10), "Invalid grain number skipped") }) test_that("check functionality", { testthat::skip_on_cran() SW({ res <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, txtProgressBar = TRUE) }) expect_type(res, "list") expect_length(res, 24) SW({ res <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1:3, txtProgressBar = TRUE) }) expect_type(res, "list") expect_length(res, 3) res <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1, txtProgressBar = TRUE) expect_s4_class(res, "RLum.Analysis") ## FI readers like to write a NA instead of 0 in the grain column obj <- CWOSL.SAR.Data obj@METADATA[["GRAIN"]] <- rep(NA, length(obj@METADATA[["GRAIN"]])) res <- Risoe.BINfileData2RLum.Analysis(obj, pos = 1) expect_s4_class(res, "RLum.Analysis") ## reading an empty object empty <- read_BIN2R(test_path("_data/BINfile_V3.bin"), n.records = 999, verbose = FALSE) expect_null(Risoe.BINfileData2RLum.Analysis(empty)) expect_null(Risoe.BINfileData2RLum.Analysis(empty, keep.empty = FALSE)) expect_warning(expect_null(Risoe.BINfileData2RLum.Analysis(empty, pos = 0)), "Invalid position number skipped: 0") ## reading an object with fields set to zero zero <- set_Risoe.BINfileData(METADATA = data.frame(ID = 1, VERSION = 0, POSITION = 0, GRAIN = 0), DATA = list(), .RESERVED = list()) expect_message(res <- Risoe.BINfileData2RLum.Analysis(zero), "Empty Risoe.BINfileData object detected") expect_s4_class(res, "RLum.Analysis") expect_length(res, 0) expect_message(res <- Risoe.BINfileData2RLum.Analysis(zero, pos = 0), "Empty Risoe.BINfileData object detected") expect_s4_class(res, "RLum.Analysis") expect_length(res, 0) expect_message(expect_null( Risoe.BINfileData2RLum.Analysis(zero, keep.empty = FALSE)), "Empty Risoe.BINfileData object detected") }) Luminescence/tests/testthat/test_utils_DRAC.R0000644000176200001440000000056214762554470021022 0ustar liggesuserstest_that("utils DRAC", { testthat::skip_on_cran() ## generate test dataset with DRAC DRAC <- template_DRAC(preset = "quartz_coarse", notification = FALSE) t <- expect_type(.get_DRAC_references(DRAC), "list") expect_length(t, 2) ## check table DRAC <- as.data.frame(DRAC) t <- expect_type(.get_DRAC_references(DRAC), "list") expect_length(t, 2) }) Luminescence/tests/testthat/test_Risoe.BINfileData-class.R0000644000176200001440000000433414762554470023317 0ustar liggesusers## load data data(ExampleData.BINfileData, envir = environment()) obj <- subset(CWOSL.SAR.Data, ID <= 50) test_that("Check the example and the numerical values", { testthat::skip_on_cran() expect_error(set_Risoe.BINfileData(METADATA = NA), "'METADATA' should be of class 'data.frame'") ##construct empty object temp <- set_Risoe.BINfileData(METADATA = data.frame(), DATA = list(), .RESERVED = list()) ##get function and check whether we get NULL expect_output(expect_null( get_Risoe.BINfileData(temp)), "No direct access is provided for this object type.") ##check object expect_s4_class(temp, class = "Risoe.BINfileData") expect_output(show(temp), "This object is empty!") ## also empty object temp <- set_Risoe.BINfileData(METADATA = NULL) expect_s4_class(temp, class = "Risoe.BINfileData") expect_output(show(temp), "This object is empty!") ##show method expect_output(show(CWOSL.SAR.Data)) ##as.data.frame expect_s3_class(as.data.frame(CWOSL.SAR.Data), "data.frame") ## metadata provided meta <- data.frame(ID = 1, VERSION = 7, RECTYPE = 128) temp <- set_Risoe.BINfileData(METADATA = meta, DATA = list(), .RESERVED = list()) expect_equal(temp@METADATA, meta) expect_output(show(temp)) meta$RECTYPE <- NULL temp <- set_Risoe.BINfileData(METADATA = meta, DATA = list(), .RESERVED = list()) expect_equal(temp@METADATA, meta) expect_output(show(temp)) }) test_that("sort_RLum", { testthat::skip_on_cran() ## input validation expect_error(sort_RLum(obj), "'info_element' should be of class 'character'") expect_error(sort_RLum(obj, info_element = c("ID", "error")), "Invalid 'info_element' name, valid names are:") expect_error(sort_RLum(obj, info_element = "ID", decreasing = "error"), "'decreasing' should be a single logical value") ## sort only using the first field until we get #605 done expect_message(sort_RLum(obj, info_element = c("ID", "POSITION")), "Only the first field will be used in sorting") ## check functionality expect_snapshot_Risoe(sort_RLum(obj, info_element = "POSITION")) }) Luminescence/tests/testthat/test_merge_RLum.Analysis.R0000644000176200001440000000207514762554470022712 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() data(ExampleData.RLum.Analysis, envir = environment()) o1 <- IRSAR.RF.Data c1 <- as(object = list(1:10), Class = "RLum.Data.Curve") r1 <- as(object = list(1:10), Class = "RLum.Results") expect_error(merge_RLum.Analysis(), "'objects' should be of class 'list'") expect_error(merge_RLum.Analysis(o1), "'objects' should be of class 'list'") expect_error(merge_RLum.Analysis(list()), "'objects' cannot be an empty list") expect_error(merge_RLum.Analysis(list(c1)), "At least one input object in the list has to be of class") expect_error(merge_RLum.Analysis(list(o1, "test")), "All elements of 'object' should be of class 'RLum'") expect_error(merge_RLum.Analysis(list(o1, r1)), "'objects' should be of class 'RLum.Analysis' or 'RLum.Data'") expect_s4_class(merge_RLum.Analysis(list(o1)), "RLum.Analysis") expect_s4_class(merge_RLum.Analysis(list(c1, o1)), "RLum.Analysis") }) Luminescence/tests/testthat/test_template_DRAC.R0000644000176200001440000000543114762554470021475 0ustar liggesusers##Full check test_that("Check template creation ", { testthat::skip_on_cran() ## test output class SW({ expect_message(res <- template_DRAC(), "IMPORTANT NOTE") }) expect_s3_class(res, "DRAC.list") expect_s3_class(template_DRAC(notification = FALSE), "DRAC.list") expect_s3_class(template_DRAC(nrow = 10, notification = FALSE), "DRAC.list") ## test presets expect_identical(as.numeric(template_DRAC(notification = FALSE, preset = "quartz_coarse")$`a-value`), 0.035) expect_identical(as.numeric(template_DRAC(notification = FALSE, preset = "quartz_fine")$`a-value`), 0.035) expect_identical(as.numeric(template_DRAC(notification = FALSE, preset = "feldspar_coarse")$`a-value`), 0.08) expect_identical(as.numeric(template_DRAC(notification = FALSE, preset = "polymineral_fine")$`a-value`), 0.08) expect_identical(as.numeric(template_DRAC(notification = FALSE, preset = "DRAC-example_quartz")$`De (Gy)`), 20) expect_identical(as.numeric(template_DRAC(notification = FALSE, preset = "DRAC-example_feldspar")$`De (Gy)`), 15) expect_identical(as.numeric(template_DRAC(notification = FALSE, preset = "DRAC-example_polymineral")$`De (Gy)`), 204.47) expect_true( do.call(all.equal, as.list(template_DRAC(nrow = 2, notification = FALSE, preset = "DRAC-example_quartz")$`De (Gy)`)) ) ## misc tests expect_true(all(is.na(template_DRAC(notification = FALSE)))) expect_true(!all(is.na(template_DRAC(preset = "DRAC-example_polymineral", notification = FALSE)))) expect_equal(length(template_DRAC(notification = FALSE)), 53) expect_equal(length(template_DRAC(nrow = 10, notification = FALSE)[[1]]), 10) ## use the file_input option SW({ tmp_file <- tempfile(fileext = ".csv") write.csv(x = as.data.frame(template_DRAC(nrow = 12, preset = 'quartz_coarse')), file = tmp_file, row.names = FALSE) t <- expect_s3_class(suppressWarnings(template_DRAC(file_input = tmp_file, notification = FALSE)), "DRAC.list") expect_length(t[[1]], 3) }) ## expect failure expect_error(template_DRAC(nrow = -1), "'nrow' should be a positive integer scalar") expect_error(template_DRAC("preset"), "'nrow' should be a positive integer scalar") expect_warning(template_DRAC(nrow = 5001, notification = FALSE), "[template_DRAC()] More than 5000 datasets might not be supported", fixed = TRUE) expect_error(template_DRAC(preset = "does_not_exist"), "'preset' should be one of 'quartz_coarse', 'quartz_fine'") expect_error(template_DRAC(preset = c("does_not_exist", "neither_this_one")), "'preset' contains multiple values but not all of them match 'choices'") expect_error(template_DRAC(preset = 999), "'preset' should be one of 'quartz_coarse', 'quartz_fine'") }) Luminescence/tests/testthat/test_plot_FilterCombinations.R0000644000176200001440000000250414762554470023720 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(plot_FilterCombinations("error"), "'filters' should be of class 'list'") expect_error(plot_FilterCombinations(list()), "'filters' cannot be an empty list") expect_error(plot_FilterCombinations(list("error")), "All elements of 'filters' should be of class 'data.frame'") expect_error(plot_FilterCombinations(list(data.frame(a = c(100, 200), b = c(0.2, 1.1)))), "Transmission values > 1 found, check your data") }) test_that("check functionality", { testthat::skip_on_cran() filter1 <- density(rnorm(100, mean = 450, sd = 20)) filter1 <- matrix(c(filter1$x, filter1$y / max(filter1$y)), ncol = 2) filter2 <- matrix(c(200:799, rep(c(0, 0.8, 0), each = 200)), ncol = 2) expect_silent(plot_FilterCombinations(filters = list(filter1, filter2))) expect_silent(plot_FilterCombinations(filters = list(filter1, filter2), interactive = TRUE)) expect_silent(plot_FilterCombinations(list(list(filter1)))) ## filter thickness and reflection factor provided expect_silent(plot_FilterCombinations(list(list(filter1, d = 2), list(filter2, d = 2, P = 0.9)))) }) Luminescence/tests/testthat/test_Analyse_SAROSLdata.R0000644000176200001440000000403614762554470022402 0ustar liggesuserstest_that("full example test", { testthat::skip_on_cran() SW({ # ignore deprecation warnings data(ExampleData.BINfileData, envir = environment()) output <- Analyse_SAR.OSLdata(input.data = CWOSL.SAR.Data, signal.integral = c(1:5), background.integral = c(900:1000), position = c(1:1), output.plot = FALSE) ##checks expect_type(output, "list") expect_length(output, 3) ## errors expect_error(Analyse_SAR.OSLdata(), "'input.data' should be of class 'Risoe.BINfileData'") expect_error(Analyse_SAR.OSLdata("error"), "'input.data' should be of class 'Risoe.BINfileData'") expect_error({ Analyse_SAR.OSLdata(input.data = CWOSL.SAR.Data) }, regexp = "No signal integral is given") expect_error({ Analyse_SAR.OSLdata(input.data = CWOSL.SAR.Data, signal.integral = 1:3) }, regexp = "No background integral is given") expect_error({ Analyse_SAR.OSLdata(input.data = subset(CWOSL.SAR.Data, LTYPE == "IRSL"), signal.integral = 1:3, background.integral = 200:250) }, regexp = "No 'OSL' curves found") ## should work expect_type(Analyse_SAR.OSLdata(input.data = CWOSL.SAR.Data, signal.integral = 1:3, background.integral = 200:250, position = 1, background.count.distribution = "non-poisson", sigmab = 0.1, output.plot = TRUE), "list") tmp <- subset(CWOSL.SAR.Data, LTYPE == "OSL" & POSITION == 1 & ID <= 457) expect_type( Analyse_SAR.OSLdata(tmp, 1:3, 200:250, output.plot = TRUE, plot_singlePanels = TRUE), "list") expect_warning( Analyse_SAR.OSLdata(tmp, 1:3, 200:250, output.plot = TRUE, output.plot.single = TRUE), "'output.plot.single' is deprecated, use 'plot_singlePanels' instead") }) }) Luminescence/tests/testthat/test_read_TIFF2R.R0000644000176200001440000000114514762554470021016 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(read_TIFF2R(data.frame()), "'file' should be of class 'character'") expect_error(read_TIFF2R(character(0)), "'file' should have length 1") expect_error(object = read_TIFF2R(file = "text"), "[read_TIFF2R()] File does not exist or is not readable", fixed = TRUE) }) test_that("check functionality", { testthat::skip_on_cran() file <- system.file("extdata", "TIFFfile.tif", package = "Luminescence") SW({ expect_s4_class(read_TIFF2R(file), "RLum.Data.Image") }) }) Luminescence/tests/testthat/test_fit_ThermalQuenching.R0000644000176200001440000000343114762554470023167 0ustar liggesusers##create example data data <- data.frame( T = c(25, 40, 50, 60, 70, 80, 90, 100, 110), V = c(0.06, 0.058, 0.052, 0.051, 0.041, 0.034, 0.035, 0.033, 0.032), V_X = c(0.012, 0.009, 0.008, 0.008, 0.007, 0.006, 0.005, 0.005, 0.004)) data_NA <- data data_NA[1,] <- NA test_that("input validation", { testthat::skip_on_cran() expect_error(fit_ThermalQuenching(data = "test"), "'data' should be of class 'data.frame' or a 'list' of such objects") expect_error(fit_ThermalQuenching( data = data[,1:2], n.MC = NULL), "'data' is empty or has fewer than three columns") }) test_that("check functionality", { testthat::skip_on_cran() ##simple run with warning SW({ expect_warning(fit_ThermalQuenching( data = cbind(data,data), n.MC = NULL), "data' has more than 3 columns, taking only the first three") ##simple run with warning NA expect_warning(fit_ThermalQuenching( data = data_NA, n.MC = NULL), "NA values in 'data' automatically removed") ##simple run expect_s4_class(fit_ThermalQuenching( data = data, n.MC = NULL), class = "RLum.Results") }) ##simple run with fitting error expect_message(expect_null(fit_ThermalQuenching( data = data.frame(T = 1:10, V = 1:10, V_X = 1:10), n.MC = NULL)), "Error: Fitting failed, NULL returned") SW({ ## switch off weights expect_s4_class(fit_ThermalQuenching( data = data, method_control = list(weights = NULL), n.MC = NULL), class = "RLum.Results") ##simple list run expect_s4_class(fit_ThermalQuenching( data = list(data, data), n.MC = NULL), class = "RLum.Results") ##simple run without plot etc expect_s4_class(fit_ThermalQuenching( data = data, verbose = FALSE, plot = TRUE, n.MC = 10), class = "RLum.Results") }) }) Luminescence/tests/testthat/test_get_Layout.R0000644000176200001440000000067014762554470021205 0ustar liggesuserstest_that("input validation", { skip_on_cran() expect_type(get_Layout("empty"), "list") expect_type(get_Layout("journal"), "list") expect_warning(res <- get_Layout("error"), "Layout definition not supported, default layout is used") expect_equal(res, get_Layout("default")) input <- list(element = "value") expect_equal(get_Layout(input), input) }) Luminescence/tests/testthat/test_github.R0000644000176200001440000000410114762554470020344 0ustar liggesusers## NOTE: # Unauthenticated requests to the GiHub APIv3 are limited to 60 requests per hour # (associated with the originating request). Exceeding the rate limit results in a # 403 Forbidden reply. Since CIs make multiple requests when testing the rate limit # is easily reached. We check whether we either get a valid response, or at least # a 403 response. test_that("Check github_commits()", { testthat::skip_on_cran() response <- tryCatch(github_commits(), error = function(e) return(e)) if (inherits(response, "error")){ expect_output(print(response), regexp = "returned status code") } else { expect_s3_class(response, "data.frame") } tryCatch(expect_error(github_commits(branch = "error"), "Branch 'error' does not exist"), error = function(e) { expect_output(print(e), "returned status code") }) }) test_that("Check github_branches()", { testthat::skip_on_cran() expect_error(github_branches(user = NA), "'user' should be of class 'character'") expect_error(github_branches(user = letters), "'user' should have length 1") expect_error(github_branches(repo = NA), "'repo' should be of class 'character'") expect_error(github_branches(repo = letters), "'repo' should have length 1") response <- tryCatch(github_branches(), error = function(e) return(e)) if (inherits(response, "error")) { expect_output(print(response), regexp = "returned status code") }else { expect_s3_class(response, "data.frame") } rm(response) }) test_that("Check github_issues()", { testthat::skip_on_cran() expect_error(github_issues(user = NA), "'user' should be of class 'character'") expect_error(github_issues(repo = NA), "'repo' should be of class 'character'") SW({ response <- tryCatch(github_issues(), error = function(e) return(e)) }) if (inherits(response, "error")){ expect_output(print(response), regexp = "returned status code") }else{ expect_type(response, "list") } rm(response) }) Luminescence/tests/testthat/test_plot_DetPlot.R0000644000176200001440000001320214762554470021475 0ustar liggesusers## load data data(ExampleData.BINfileData, envir = environment()) object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1) test_that("input validation", { testthat::skip_on_cran() expect_error(plot_DetPlot("error"), "'object' should be of class 'RLum.Analysis'") expect_error(plot_DetPlot(set_RLum("RLum.Analysis")), "'object' cannot be an empty RLum.Analysis") expect_error(plot_DetPlot(object, signal.integral.min = "error"), "'signal.integral.min' should be a positive integer scalar") expect_error(plot_DetPlot(object, signal.integral.min = 1, signal.integral.max = 1), "'signal.integral.max' must be greater than 'signal.integral.min'") expect_error(plot_DetPlot(object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, analyse_function = "error", verbose = FALSE), "'analyse_function' should be one of 'analyse_SAR.CWOSL'") }) test_that("plot_DetPlot", { testthat::skip_on_cran() ## simple run with default SW({ results <- expect_s4_class(plot_DetPlot( object, method = "shift", signal.integral.min = 1, signal.integral.max = 3, background.integral.min = 900, background.integral.max = 1000, analyse_function.control = list( fit.method = "LIN"), n.channels = 2), "RLum.Results") }) ## simple run with default but no plot results <- expect_s4_class(plot_DetPlot( object, method = "shift", signal.integral.min = 1, signal.integral.max = 3, background.integral.min = 900, background.integral.max = 1000, analyse_function.control = list( fit.method = "LIN"), n.channels = 2, verbose = FALSE, plot = FALSE), "RLum.Results") ## test with trim channels results <- expect_s4_class(plot_DetPlot( object, method = "shift", signal.integral.min = 1, signal.integral.max = 3, background.integral.min = 900, background.integral.max = 1000, analyse_function.control = list( fit.method = "LIN", trim_channels = TRUE ), n.channels = 2, verbose = FALSE, plot = FALSE), "RLum.Results") ## test self call with multi core SW({ results <- expect_s4_class(plot_DetPlot( object = list(x = object, y = object), method = "shift", signal.integral.min = 1, signal.integral.max = 3, background.integral.min = 900, background.integral.max = 1000, analyse_function.control = list( fit.method = "LIN", trim_channels = TRUE ), multicore = 1, n.channels = 2, verbose = TRUE, plot = FALSE), "RLum.Results") }) ## simple run with default results <- expect_s4_class(plot_DetPlot( object, method = "expansion", signal.integral.min = 1, signal.integral.max = 3, background.integral.min = 900, background.integral.max = 1000, analyse_function.control = list( fit.method = "LIN"), verbose = FALSE, n.channels = 2), "RLum.Results") ## try with NA values object@records[[2]][,2] <- 1 object@records[[4]][,2] <- 1 object@records[[6]][,2] <- 1 object@records[[8]][,2] <- 1 results <- expect_s4_class(suppressWarnings(plot_DetPlot( object, method = "expansion", signal.integral.min = 1, signal.integral.max = 3, background.integral.min = 900, background.integral.max = 1000, analyse_function.control = list( fit.method = "EXP"), verbose = FALSE, n.channels = 1)), "RLum.Results") SW({ ## n.channels not set expect_message(plot_DetPlot(object, method = "shift", signal.integral.min = 5, signal.integral.max = 6, background.integral.min = 10, background.integral.max = 50, analyse_function.control = list( fit.method = "LIN"), verbose = TRUE), "'n.channels' not specified, set to 3") ## analyse_pIRIRSequence tmp <- subset(object, recordType != "IRSL" & ID != 1) plot_DetPlot( tmp, method = "expansion", signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, analyse_function = "analyse_pIRIRSequence", analyse_function.control = list( sequence.structure = c("TL", "IR50"), fit.method = "LIN"), respect_RC.Status = TRUE, n.channels = 2) expect_warning(plot_DetPlot( tmp, method = "expansion", signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, plot.single = TRUE, n.channels = 2), "'plot.single' is deprecated, use 'plot_singlePanels' instead") ## analyse_pIRIRSequence on an inconsistent object suppressWarnings( # ignore additional warnings from fit_DoseResponseCurve() expect_error( expect_warning(plot_DetPlot( object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, analyse_function = "analyse_pIRIRSequence", analyse_function.control = list( fit.method = "LIN"), verbose = FALSE, n.channels = 1), "An error occurred, analysis skipped"), "No valid results produced") ) }) }) Luminescence/tests/testthat/test_calc_gSGC.R0000644000176200001440000000447514762554470020645 0ustar liggesusersdf <- data.frame(LnTn = 2.361, LnTn.error = 0.087, Lr1Tr1 = 2.744, Lr1Tr1.error = 0.091, Dr1 = 34.4) test_that("input validation", { testthat::skip_on_cran() expect_error(calc_gSGC(data = NA), "'data' should be of class 'data.frame'") expect_error(calc_gSGC(data.frame(a = 1, b = 1, c = 1, d = 1, e = 1, f = 1)), "'data' is expected to have 5 columns") expect_error(calc_gSGC(df, gSGC.type = 3), "'gSGC.type' should be one of '0-250' or '0-450'") expect_error(calc_gSGC(df, gSGC.type = "error"), "'gSGC.type' should be one of '0-250' or '0-450'") }) test_that("check functionality", { testthat::skip_on_cran() ## standard test SW({ expect_s4_class(calc_gSGC(data = df, gSGC.type = "0-450", plot = TRUE, verbose = TRUE ), "RLum.Results") pars <- list(A = 0, A.error = 0, D0 = 0, D0.error = 0, c = 0, c.error = 0, Y0 = 0, Y0.error = 0) expect_s4_class(calc_gSGC(data = df, gSGC.parameters = pars), "RLum.Results") }) ## break plot (no solution) df_break <- data.frame(LnTn = 0, LnTn.error = 0.087, Lr1Tr1 = 0, Lr1Tr1.error = 0.091, Dr1 = 34.4) SW({ expect_warning(calc_gSGC(data = df_break), regexp = "No solution was found") }) set.seed(seed = 1) temp <- calc_gSGC(df, plot = FALSE, verbose = FALSE) expect_s4_class(temp, "RLum.Results") expect_s3_class(temp$De, "data.frame") expect_type(temp$De.MC, "list") expect_equal(length(temp), 3) expect_equal(round(sum(temp$De), digits = 2), 30.39) expect_equal(round(sum(temp$De.MC[[1]]), 0), 10848) ## apply some random values for more coverage df1 <- data.frame(LnTn = 0.361, LnTn.error = 2.087, Lr1Tr1 = 0.744, Lr1Tr1.error = 10.091, Dr1 = 0.4) expect_silent(calc_gSGC(df1, plot = TRUE, verbose = FALSE)) df2 <- data.frame(LnTn = 10.361, LnTn.error = 0.087, Lr1Tr1 = 0.044, Lr1Tr1.error = 0.091, Dr1 = 0.04) expect_silent(calc_gSGC(df2, plot = TRUE, verbose = FALSE)) df3 <- data.frame(LnTn = 521440.0361, LnTn.error = 0.087, Lr1Tr1 = 10.044, Lr1Tr1.error = -2.091, Dr1 = 10.04) expect_silent(calc_gSGC(df3, plot = TRUE, verbose = FALSE)) }) Luminescence/tests/testthat/test_RLum.Data.Spectrum.R0000644000176200001440000000405114762554470022416 0ustar liggesuserstest_that("check class", { testthat::skip_on_cran() ##set empty spectrum object and show it expect_output(show(set_RLum(class = "RLum.Data.Spectrum"))) ##check replacements object <- set_RLum(class = "RLum.Data.Spectrum") expect_s4_class(set_RLum(class = "RLum.Data.Spectrum", data = object), class = "RLum.Data.Spectrum") ##check get_RLum object <- set_RLum(class = "RLum.Data.Spectrum", data = object, info = list(a = "test")) expect_error(get_RLum(object, info.object = "test"), "Invalid element name, valid names are: 'a'") expect_error(get_RLum(object, info.object = 1L), "'info.object' should be of class 'character'") expect_type(get_RLum(object, info.object = "a"), "character") ##test method names expect_type(names(object), "character") ##test bin_RLum() expect_error(bin_RLum.Data(object), "'object' contains no data") object@data <- matrix(data = rep(1:20, each = 10), ncol = 20) rownames(object@data) <- 1:10 colnames(object@data) <- 1:20 expect_error(bin_RLum.Data(object, bin_size.row = "test"), "'bin_size.row' should be of class 'numeric'") expect_error(bin_RLum.Data(object, bin_size.row = 12, bin_size.col = "test"), "'bin_size.col' should be of class 'numeric'") expect_s4_class(object = bin_RLum.Data(object, bin_size.row = 2), "RLum.Data.Spectrum") expect_s4_class(object = bin_RLum.Data(object, bin_size.row = 1, bin_size.col = 2), "RLum.Data.Spectrum") ##check conversions expect_s4_class(as(object = data.frame(x = 1:10), Class = "RLum.Data.Spectrum"), "RLum.Data.Spectrum") expect_s3_class(as(set_RLum("RLum.Data.Spectrum"), "data.frame"), "data.frame") expect_s4_class(as(object = matrix(1:10,ncol = 2), Class = "RLum.Data.Spectrum"), "RLum.Data.Spectrum") expect_s4_class(as(list(1:10), "RLum.Data.Spectrum"), "RLum.Data.Spectrum") expect_s4_class(as(list(), "RLum.Data.Spectrum"), "RLum.Data.Spectrum") expect_type(as(set_RLum("RLum.Data.Spectrum"), "list"), "list") }) Luminescence/tests/testthat/test_metadata.R0000644000176200001440000001626214762554470020655 0ustar liggesusers## load data bin.v8 <- system.file("extdata/BINfile_V8.binx", package = "Luminescence") risoe <- read_BIN2R(bin.v8, verbose = FALSE) SW({ analysis <- merge_RLum(Risoe.BINfileData2RLum.Analysis(risoe)) }) curve <- analysis@records[[1]] test_that("input validation", { testthat::skip_on_cran() ## add_metadata expect_error(add_metadata(risoe, list()) <- 1, "'info_element' should be of class 'character'") expect_error(add_metadata(curve, list()) <- 1, "'info_element' should be of class 'character'") expect_error(add_metadata(risoe, c("VAL1", "VAL2")) <- 1, "'info_element' should have length 1") expect_error(add_metadata(curve, c("VAL1", "VAL2")) <- 1, "'info_element' should have length 1") expect_error(add_metadata(risoe, "POSITION") <- 1, "'info_element' already present, to modify it you should use") expect_error(add_metadata(curve, "POSITION") <- 1, "'info_element' already present, to modify it you should use") ## rename_metadata expect_error(rename_metadata(risoe, list()) <- 1, "'info_element' should be of class 'character'") expect_error(rename_metadata(curve, list()) <- 1, "'info_element' should be of class 'character'") expect_error(rename_metadata(risoe, c("VAL1", "VAL2")) <- 1, "'info_element' should have length 1") expect_error(rename_metadata(curve, c("VAL1", "VAL2")) <- 1, "'info_element' should have length 1") expect_error(rename_metadata(risoe, "error") <- 1, "'info_element' not recognised ('error'), valid terms are", fixed = TRUE) expect_error(rename_metadata(curve, "error") <- 1, "'info_element' not recognised ('error'), valid terms are", fixed = TRUE) ## replace_metadata expect_error(replace_metadata(risoe, list()) <- 1, "'info_element' should be of class 'character'") expect_error(replace_metadata(curve, list()) <- 1, "'info_element' should be of class 'character'") expect_error(replace_metadata(risoe, "error") <- 1, "'info_element' not recognised ('error'), valid terms are", fixed = TRUE) expect_error(replace_metadata(curve, "error") <- 1, "'info_element' not recognised ('error'), valid terms are", fixed = TRUE) expect_error(replace_metadata(risoe, "SEL", subset = POSITION == 2) <- NULL, "'subset' is incompatible with assigning NULL") expect_error(replace_metadata(curve, "SEL", subset = POSITION == 2) <- NULL, "'subset' is incompatible with assigning NULL") expect_error(replace_metadata(risoe, "SEL", subset = error == 99) <- 0, "Invalid 'subset' expression, valid terms are") expect_error(replace_metadata(curve, "SEL", subset = error == 99) <- 0, "Invalid 'subset' expression, valid terms are") expect_error(replace_metadata(risoe, "SEL", subset = ID + 99) <- 0, "'subset' should contain a logical expression") expect_error(replace_metadata(curve, "SEL", subset = ID + 99) <- 0, "'subset' should contain a logical expression") expect_message(replace_metadata(risoe, "SEL", subset = ID == 99) <- 0, "'subset' expression produced an empty selection, nothing done") expect_message(replace_metadata(risoe, "SEL", subset = ID == NA) <- 0, "'subset' expression produced an empty selection, nothing done") expect_message(replace_metadata(curve, "SEL", subset = SET == 99) <- 0, "'subset' expression produced an empty selection, nothing done") expect_message(replace_metadata(curve, "SEL", subset = ID == NA) <- 0, "'subset' expression produced an empty selection, nothing done") }) test_that("check functionality for Risoe.BINfileData", { testthat::skip_on_cran() res <- risoe ## add_metadata add_metadata(res, "NEW") <- 123 expect_equal(res@METADATA$NEW, rep(123, nrow(res@METADATA))) ## rename_metadata rename_metadata(res, "NEW") <- "NEWER" expect_equal(res@METADATA$NEWER, rep(123, nrow(res@METADATA))) ## replace_metadata replace_metadata(res, "SEL") <- FALSE expect_equal(res@METADATA$SEL, rep(FALSE, nrow(res@METADATA))) replace_metadata(res, "LTYPE", subset = SET == 2 & POSITION == 1) <- "OSL" expect_equal(res@METADATA$LTYPE, c("OSL", "TL")) replace_metadata(res, c("PTENABLED", "DTENABLED")) <- NULL expect_null(res@METADATA$PTENABLED) expect_null(res@METADATA$DTENABLED) ## the original object is unchanged expect_null(risoe@METADATA$NEW) expect_null(risoe@METADATA$NEWER) expect_equal(risoe@METADATA$SEL, rep(TRUE, nrow(res@METADATA))) expect_equal(risoe@METADATA$LTYPE, rep("TL", nrow(res@METADATA))) expect_equal(risoe@METADATA$PTENABLED, c(0, 0)) expect_equal(risoe@METADATA$DTENABLED, c(0, 0)) }) test_that("check functionality for RLum.Analysis", { testthat::skip_on_cran() res <- analysis num.records <- length(analysis@records) ## add_metadata add_metadata(res, "NEW") <- 123 expect_equal(sapply(res@records, function(x) x@info[["NEW"]]), c(123, 123)) ## rename_metadata rename_metadata(res, "NEW") <- "NEWER" expect_equal(sapply(res@records, function(x) x@info[["NEWER"]]), c(123, 123)) ## replace_metadata replace_metadata(res, "SEL") <- FALSE expect_equal(sapply(res@records, function(x) x@info[["SEL"]]), c(FALSE, FALSE)) replace_metadata(res, "LTYPE", subset = SET == 2 & POSITION == 1) <- "OSL" expect_equal(sapply(res@records, function(x) x@info[["LTYPE"]]), c("OSL", "TL")) replace_metadata(res, "SEQUENCE") <- NULL expect_null(unlist(sapply(res@records, function(x) x@info[["SEQUENCE"]]))) ## the original object is unchanged expect_null(unlist(sapply(analysis@records, function(x) x@info[["NEW"]]))) expect_null(unlist(sapply(analysis@records, function(x) x@info[["NEWER"]]))) expect_equal(sapply(analysis@records, function(x) x@info[["SEL"]]), rep(TRUE, num.records)) expect_equal(sapply(analysis@records, function(x) x@info[["LTYPE"]]), rep("TL", num.records)) expect_equal(sapply(analysis@records, function(x) x@info[["SEQUENCE"]]), rep("", num.records)) }) test_that("check functionality for RLum.Data", { testthat::skip_on_cran() res <- curve ## add_metadata add_metadata(res, "NEW") <- 123 expect_equal(res@info$NEW, 123) ## rename_metadata rename_metadata(res, "NEW") <- "NEWER" expect_equal(res@info$NEWER, 123) ## replace_metadata replace_metadata(res, "SEL") <- FALSE expect_equal(res@info$SEL, FALSE) replace_metadata(res, "LTYPE", subset = SET == 2) <- "OSL" expect_equal(res@info$LTYPE, "OSL") replace_metadata(res, c("AN_TEMP", "AN_TIME")) <- NULL expect_null(res@info$AN_TEMP) expect_null(res@info$AN_TIME) ## the original object is unchanged expect_null(curve@info$NEW) expect_null(curve@info$NEWER) expect_equal(curve@info$SEL, TRUE) expect_equal(curve@info$LTYPE, "TL") expect_equal(curve@info$AN_TEMP, 220) expect_equal(curve@info$AN_TIME, 10) }) Luminescence/tests/testthat/test_calc_CentralDose.R0000644000176200001440000000400714762554470022254 0ustar liggesusersdata(ExampleData.DeValues, envir = environment()) temp <- calc_CentralDose( ExampleData.DeValues$CA1, plot = FALSE, verbose = FALSE) set.seed(1) temp_NA <- data.frame(rnorm(10)+5, rnorm(10)+5) temp_NA[1,1] <- NA test_that("errors and warnings function", { testthat::skip_on_cran() expect_error(calc_CentralDose(data = "error"), "'data' should be of class 'data.frame' or 'RLum.Results'") expect_error(calc_CentralDose(temp, sigmab = 10), "'sigmab' should be a fraction between 0 and 1") expect_error(calc_CentralDose(data.frame()), "should have at least two columns and two rows") SW({ expect_s4_class(calc_CentralDose(temp_NA), "RLum.Results") expect_warning(calc_CentralDose(temp, na.rm = FALSE), "'na.rm' is deprecated, missing values are always") expect_message(calc_CentralDose(temp_NA), "NA values removed from dataset") }) }) test_that("check functionality", { testthat::skip_on_cran() snapshot.tolerance <- 1.5e-6 expect_snapshot_RLum(temp, tolerance = snapshot.tolerance) SW({ expect_snapshot_RLum(calc_CentralDose(ExampleData.DeValues$CA1, log = FALSE, trace = TRUE), tolerance = snapshot.tolerance) expect_snapshot_RLum(calc_CentralDose(temp_NA, log = FALSE), tolerance = snapshot.tolerance) ## negative De values neg_vals <- data.frame(De = c(-0.56, -0.16, 0.0, 0.04), De.err = c(0.15, 0.1, 0.12, 0.1)) expect_warning(calc_CentralDose(neg_vals, log = TRUE), "'data' contains non-positive De values, 'log' set to FALSE") ## negative De errors neg_errs <- data.frame(De = c(0.56, 0.16, 0.1, 0.04), De.err = c(-0.15, -0.1, 0.12, -0.1)) res1 <- calc_CentralDose(neg_errs) res2 <- calc_CentralDose(abs(neg_errs)) res1@info$call <- res2@info$call <- NULL res1@.uid <- res2@.uid <- NA_character_ expect_equal(res1, res2) }) }) Luminescence/tests/testthat/test_plot_ViolinPlot.R0000644000176200001440000000321514762554470022224 0ustar liggesusers## load data data(ExampleData.DeValues, envir = environment()) df <- ExampleData.DeValues$CA1 test_that("input validation", { testthat::skip_on_cran() expect_error(plot_ViolinPlot(), "'data' should be of class 'RLum.Results', 'data.frame' or 'matrix'") expect_error(plot_ViolinPlot("error"), "'data' should be of class 'RLum.Results', 'data.frame' or 'matrix'") expect_error(plot_ViolinPlot(df, summary.pos = 5), "'summary.pos' should be of class 'character'") expect_error(plot_ViolinPlot(data.frame()), "'data' cannot be an empty data.frame") expect_error(plot_ViolinPlot(df[0, ]), "'data' cannot be an empty data.frame") expect_warning(plot_ViolinPlot(df[1, ]), "Single data point found, no density calculated") expect_warning(plot_ViolinPlot(df, summary = "error"), "Only keywords for weighted statistical measures are supported") expect_warning(plot_ViolinPlot(df, summary.pos = "error"), "Value provided for 'summary.pos' is not a valid keyword") ## missing values df.na <- df df.na[, 1] <- NA expect_warning(expect_warning( plot_ViolinPlot(df.na), "62 NA values removed"), "After NA removal, nothing is left from the data set") }) test_that("check functionality", { testthat::skip_on_cran() ## data.frame expect_silent(plot_ViolinPlot(df, summary.pos = "topleft")) ## matrix expect_silent(plot_ViolinPlot(as.matrix(df))) ## RLum.Results object expect_silent(plot_ViolinPlot(calc_CommonDose(df, plot = FALSE, verbose = FALSE))) }) Luminescence/tests/testthat/test_plot_DoseResponseCurve.R0000644000176200001440000000276514762554470023554 0ustar liggesusers## load data data(ExampleData.LxTxData, envir = environment()) fit <- fit_DoseResponseCurve(LxTxData, verbose = FALSE) test_that("input validation", { testthat::skip_on_cran() expect_error( plot_DoseResponseCurve("error"), "[plot_DoseResponseCurve()] 'object' should be of class 'RLum.Results'", fixed = TRUE) expect_error( plot_DoseResponseCurve(fit, plot_extended = "error"), "'plot_extended' should be a single logical value") expect_error( plot_DoseResponseCurve(fit, plot_singlePanels = "error"), "'plot_singlePanels' should be a single logical value") expect_error( plot_DoseResponseCurve(fit, verbose = "error"), "'verbose' should be a single logical value") expect_error( plot_DoseResponseCurve(fit, cex.global = 0), "'cex.global' should be a positive scalar") }) test_that("plot output", { testthat::skip_on_cran() ## standard return expect_s4_class(plot_DoseResponseCurve(fit), "RLum.Results") ## check plot settings expect_s4_class(plot_DoseResponseCurve(fit, legend = FALSE), "RLum.Results") expect_s4_class(plot_DoseResponseCurve(fit, reg_points_pch = 1), "RLum.Results") expect_s4_class(plot_DoseResponseCurve(fit, density_polygon = FALSE), "RLum.Results") expect_s4_class(plot_DoseResponseCurve(fit, density_rug = FALSE), "RLum.Results") expect_s4_class(plot_DoseResponseCurve(fit, density_polygon_col = "green"), "RLum.Results") expect_s4_class(plot_DoseResponseCurve(fit, box = FALSE), "RLum.Results") }) Luminescence/tests/testthat/test_analyse_Al2O3C_Measurement.R0000644000176200001440000001225214762554470024074 0ustar liggesusers## load data data(ExampleData.Al2O3C, envir = environment()) test_that("input validation", { skip_on_cran() SW({ expect_error(analyse_Al2O3C_Measurement(), "is missing, with no default") expect_error(analyse_Al2O3C_Measurement("error"), "'object' should be of class 'RLum.Analysis' or a 'list' of such objects") expect_error(analyse_Al2O3C_Measurement(list()), "'object' cannot be an empty list") expect_error(analyse_Al2O3C_Measurement(list(data_CrossTalk, "error")), "All elements of 'object' should be of class 'RLum.Analysis'") suppressWarnings( expect_error(analyse_Al2O3C_Measurement(data_CrossTalk, travel_dosimeter = "error"), "'travel_dosimeter' should be of class 'numeric' or 'integer'") ) expect_error(analyse_Al2O3C_Measurement(data_CrossTalk, irradiation_time_correction = 7), "'irradiation_time_correction' should have length 2") expect_error(analyse_Al2O3C_Measurement(data_CrossTalk, irradiation = set_RLum("RLum.Results")), "was created by an unsupported function") expect_error(analyse_Al2O3C_Measurement(data_CrossTalk, irradiation_time_correction = "a"), "should be of class 'RLum.Results' or 'numeric'") expect_error(analyse_Al2O3C_Measurement(data_CrossTalk, cross_talk_correction = "a"), "'cross_talk_correction' was created by an unsupported function") expect_warning(Luminescence:::.warningCatcher( analyse_Al2O3C_Measurement(object = data_CrossTalk, signal_integral = 1000))) }) }) test_that("check functionality", { skip_on_cran() ## run analysis SW({ # warning: TL peak shift detected for aliquot position 1 expect_s4_class(analyse_Al2O3C_Measurement(data_CrossTalk), "RLum.Results") expect_s4_class(analyse_Al2O3C_Measurement(data_CrossTalk, calculate_TL_dose = TRUE), "RLum.Results") expect_output(analyse_Al2O3C_Measurement(data_CrossTalk, test_parameter = list(stimulation_power = 0.03))) expect_output(analyse_Al2O3C_Measurement(data_CrossTalk, test_parameter = list(list(stimulation_power = 0.1), list(stimulation_power = 0.2)))) }) expect_output(analyse_Al2O3C_Measurement(data_CrossTalk[[2]], test_parameter = list(stimulation_power = 0.01))) expect_output(analyse_Al2O3C_Measurement(data_CrossTalk[[2]], dose_points = list(3))) ## tests without TL curves temp <- get_RLum(data_CrossTalk, recordType = "OSL", drop = FALSE) SW({ expect_s4_class(analyse_Al2O3C_Measurement(temp), "RLum.Results") expect_output(analyse_Al2O3C_Measurement(temp, travel_dosimeter = 2), "travel dosimeter correction applied") expect_message(analyse_Al2O3C_Measurement(temp, travel_dosimeter = 1:2), "'travel_dosimeter' specifies every position") expect_message(analyse_Al2O3C_Measurement(temp, travel_dosimeter = 2000), "Invalid position in 'travel_dosimeter', nothing corrected") }) ## irradiation_time_correction it.corr <- analyse_Al2O3C_ITC(data_ITC, verbose = FALSE) analyse_Al2O3C_Measurement(temp, irradiation_time_correction = list(it.corr), plot = 1, verbose = FALSE) ## cross_talk_correction ct.corr <- analyse_Al2O3C_CrossTalk(data_CrossTalk) analyse_Al2O3C_Measurement(temp, cross_talk_correction = list(ct.corr), plot = FALSE, verbose = FALSE) }) test_that("more coverage", { skip_on_cran() ## failed integration CT.mod <- data_CrossTalk CT.mod[[1]]@records[[2]]@data <- CT.mod[[1]]@records[[2]]@data[1:5, ] CT.mod[[1]]@records[[4]]@data <- CT.mod[[1]]@records[[4]]@data[1:5, ] warnings <- capture_warnings( analyse_Al2O3C_Measurement(CT.mod, verbose = FALSE, calculate_TL_dose = TRUE)) expect_match(warnings, all = FALSE, "Natural TL signal out of bounds, NA returned") expect_match(warnings, all = FALSE, "Regenerated TL signal out of bounds, NA returned") ## missing position CT.mod <- data_CrossTalk CT.mod[[1]]@records[[1]]@info["position"] <- list(NULL) expect_message(expect_warning( analyse_Al2O3C_Measurement(CT.mod, verbose = FALSE), "TL peak shift detected for aliquot position NA"), "Error: Aliquot position not found, no cross-talk correction applied") CT.mod <- data_CrossTalk for (i in seq_along(CT.mod[[1]]@records)) { CT.mod[[1]]@records[[i]]@info$stimulator <- "LED" } suppressWarnings( # TL peak shift detected for aliquot position 1 expect_warning( analyse_Al2O3C_Measurement(CT.mod, verbose = FALSE, test_parameter = list(stimulation_power = 0.03)), "Stimulation power was not stable for ALQ 1, results are likely to be wrong")) }) Luminescence/tests/testthat/test_convert_CW2pX.R0000644000176200001440000001013414762554470021530 0ustar liggesusers## load data data(ExampleData.CW_OSL_Curve, envir = environment()) values <- CW_Curve.BosWallinga2012 object <- set_RLum(class = "RLum.Data.Curve", data = as.matrix(ExampleData.CW_OSL_Curve), curveType = "measured", recordType = "OSL") test_that("check functionality", { testthat::skip_on_cran() tol <- 1.5e-6 expect_snapshot_plain(convert_CW2pLM(values), tolerance = tol) expect_snapshot_plain(convert_CW2pLMi(values, P = 1/20), tolerance = tol) expect_snapshot_plain(convert_CW2pLMi(values), tolerance = tol) expect_warning( expect_snapshot_plain(convert_CW2pHMi(values), tolerance = tol), "56 invalid values have been found") expect_warning( expect_snapshot_plain(convert_CW2pHMi(values, delta = 40), tolerance = tol), "56 invalid values have been found") SW({ # repeated warning about invalid values expect_warning( expect_snapshot_plain(convert_CW2pHMi(values, delta = 2), tolerance = tol), "t' is beyond the time resolution and more than two data points") }) expect_warning( expect_snapshot_plain(convert_CW2pPMi(values, P = 1/10), tolerance = tol), "t' is beyond the time resolution: only two data points have been extrapolated") }) test_that("Test RLum.Types", { testthat::skip_on_cran() expect_s4_class(convert_CW2pLM(object), class = "RLum.Data.Curve") expect_s4_class(convert_CW2pLMi(object), class = "RLum.Data.Curve") expect_s4_class(convert_CW2pHMi(object), class = "RLum.Data.Curve") expect_s4_class(suppressWarnings(convert_CW2pPMi(object)), class = "RLum.Data.Curve") ## deprecated names expect_warning(CW2pHMi(object), "'CW2pHMi' is deprecated") expect_warning(CW2pLM(object), "'CW2pLM' is deprecated") expect_warning(CW2pLMi(object), "'CW2pLMi' is deprecated") suppressWarnings( expect_warning(CW2pPMi(object), "'CW2pPMi' is deprecated")) }) test_that("input validation", { testthat::skip_on_cran() expect_error(convert_CW2pLMi(values, P = 0), "[convert_CW2pLMi()] P has to be > 0", fixed = TRUE) expect_warning(convert_CW2pLMi(values, P = 10), "t' is beyond the time resolution and more than two data points") expect_error(convert_CW2pHMi(values = matrix(0, 2)), "'values' should be of class 'data.frame' or 'RLum.Data.Curve'") expect_error(convert_CW2pHMi(values = data.frame()), "'values' cannot be an empty data.frame") expect_error(convert_CW2pLMi(values = matrix(0, 2)), "'values' should be of class 'data.frame' or 'RLum.Data.Curve'") expect_error(convert_CW2pLMi(values = data.frame()), "'values' cannot be an empty data.frame") expect_error(convert_CW2pLM(values = matrix(0, 2)), "'values' should be of class 'data.frame' or 'RLum.Data.Curve'") expect_error(convert_CW2pLM(values = data.frame()), "'values' cannot be an empty data.frame") expect_error(convert_CW2pPMi(values = matrix(0, 2)), "'values' should be of class 'data.frame' or 'RLum.Data.Curve'") expect_error(convert_CW2pPMi(values = data.frame()), "'values' cannot be an empty data.frame") object@recordType <- "RF" expect_error(convert_CW2pLM(values = object), "recordType RF is not allowed for the transformation") expect_error(convert_CW2pLMi(values = object), "[convert_CW2pLMi()] recordType RF is not allowed for the transformation", fixed = TRUE) expect_error(convert_CW2pHMi(values = object), "[convert_CW2pHMi()] recordType RF is not allowed for the transformation", fixed = TRUE) expect_error(convert_CW2pPMi(values = object), "[convert_CW2pPMi()] recordType RF is not allowed for the transformation", fixed = TRUE) }) Luminescence/tests/testthat/test_convert_SG2MG.R0000644000176200001440000000256114762554470021451 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(convert_SG2MG(data.frame()), "'object' should be of class 'character' or 'Risoe.BINfileData'") expect_error(convert_SG2MG(character(0)), "'object' cannot be an empty character") expect_error(convert_SG2MG("error"), "File '.*error' does not exist") # windows CI needs the regexp }) test_that("test conversion from single grain data to multiple grain data", { testthat::skip_on_cran() ## load example dataset data(ExampleData.BINfileData, envir = environment()) test_file_MG <- test_file_SG <- CWOSL.SAR.Data test_file_SG@METADATA$GRAIN <- 1 ## test pass through for pure multiple grain data expect_s4_class(convert_SG2MG(test_file_MG), "Risoe.BINfileData") ## test with pseudo single grain data expect_s4_class(convert_SG2MG(test_file_SG), "Risoe.BINfileData") ## test write option ## create environment dir <- tempdir() tmp <- paste0(dir, "/test.bin") SW({ write_file_test <- write_R2BIN( read_BIN2R(file = test_path("_data/BINfile_V4.bin")), file = tmp) expect_s4_class(convert_SG2MG(tmp, write_file = TRUE, txtProgressBar = FALSE), "Risoe.BINfileData") }) ##clear temp folder otherwise we have a problem with the CRAN check file.remove(list.files(dir,pattern = ".bin", full.names = TRUE)) }) Luminescence/tests/testthat/test_calc_MinDose.R0000644000176200001440000001366014762554470021414 0ustar liggesusers## load data data(ExampleData.DeValues, envir = environment()) temp <- calc_MinDose(data = ExampleData.DeValues$CA1, sigmab = 0.1, verbose = FALSE, plot = FALSE) test_that("input validation", { testthat::skip_on_cran() expect_error(calc_MinDose(), "'data' should be of class 'data.frame' or 'RLum.Results'") expect_error(calc_MinDose("test"), "'data' should be of class 'data.frame' or 'RLum.Results'") expect_error(calc_MinDose(data.frame()), "'data' cannot be an empty data.frame") expect_error(calc_MinDose(ExampleData.DeValues$CA1), "is missing, with no default") expect_error(calc_MinDose(ExampleData.DeValues$CA1, init.values = 1:4), "'init.values' is expected to be a named list") expect_error(calc_MinDose(ExampleData.DeValues$CA1, init.values = list(1, 2, 3)), "Please provide initial values for all model parameters") expect_error(calc_MinDose(ExampleData.DeValues$CA1, init.values = list(p0 = 0, p1 = 1, p2 = 2, mu = 3)), "Missing parameters: gamma, sigma") expect_error(calc_MinDose(ExampleData.DeValues$CA1, par = "error"), "'par' should be a positive integer scalar") expect_error(calc_MinDose(ExampleData.DeValues$CA1, par = 2), "'par' can only be set to 3 or 4") expect_error(calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.1, invert = "error"), "'invert' should be a single logical value") expect_error(calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.1, verbose = "error"), "'verbose' should be a single logical value") expect_error(calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.1, debug = "error"), "'debug' should be a single logical value") expect_error(calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.1, sigmab.sd = c(0.01, 0.02)), "'sigmab.sd' should be a positive scalar") expect_error(calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.1, bootstrap = TRUE, bs.M = -1), "'bs.M' should be a positive integer scalar") expect_error(calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.1, bootstrap = TRUE, bs.N = -1), "'bs.N' should be a positive integer scalar") expect_error(calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.1, bootstrap = TRUE, bs.h = -1), "'bs.h' should be a positive scalar") expect_error(calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.1, cores = -1), "'cores' should be a positive integer scalar") }) test_that("check class and length of output", { testthat::skip_on_cran() expect_s4_class(temp, "RLum.Results") expect_equal(length(temp), 9) ## invert expect_silent(calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.1, invert = TRUE, verbose = FALSE, plot = FALSE)) SW({ expect_output(calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.1, invert = TRUE, log = FALSE, log.output = TRUE, verbose = TRUE, plot = FALSE), "'log' was automatically changed to TRUE") ## bootstrap expect_message(calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.1, bootstrap = TRUE, bs.M = 10, bs.N = 5), "Recycled Bootstrap") expect_message(calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.1, bootstrap = TRUE, bs.M = 10, bs.N = 5, bs.h = 5, sigmab.sd = 0.04, debug = TRUE, multicore = TRUE, cores = 2), "Spawning 2 instances of R for parallel computation") }) ## RLum.Results object calc_MinDose(temp, sigmab = 0.1, verbose = FALSE, log = FALSE, par = 4, init.values = list(gamma = 54, sigma = 1, p0 = 0.01, mu = 70)) ## missing values data.na <- ExampleData.DeValues$CA1 data.na[1, 1] <- NA expect_message(calc_MinDose(data.na, sigmab = 0.1, verbose = FALSE), "Input data contained NA/NaN values, which were removed") ## no converging fit skip_on_os("windows") set.seed(1) data.nofit <- data.frame(rep(4, 5), rnorm(5, 5)) SW({ expect_error(calc_MinDose(data.nofit, sigmab = 0.9, par=4), "Couldn't find a converging fit for the profile log-likelihood") }) ## more coverage SW({ expect_warning(calc_MinDose(ExampleData.DeValues$CA1 / 100, sigmab = 0.1, par = 4, gamma.lower = 2, log.output = TRUE, bootstrap = TRUE, bs.M = 10, bs.N = 5, bs.h=100), "Gamma is larger than mu, consider running the model with new") expect_output(calc_MinDose(ExampleData.DeValues$CA1 / 100, sigmab = 0.1, verbose = TRUE, log.output = TRUE, par = 4)) expect_silent(calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.1, verbose = FALSE, invert = TRUE, bootstrap = TRUE, bs.M = 10, bs.N = 5, bs.h = 10)) }) }) test_that("check values from output example", { testthat::skip_on_cran() results <- get_RLum(temp) expect_equal(round(results$de, digits = 5), 34.31834) expect_equal(round(results$de_err, digits = 6), 2.550964) expect_equal(results$ci_level, 0.95) expect_equal(round(results$ci_lower, digits = 5), 29.37526) expect_equal(round(results$ci_upper, digits = 5), 39.37503) expect_equal(results$par, 3) expect_equal(round(results$sig, digits = 2), 2.07) expect_equal(round(results$p0, digits = 8), 0.01053938) expect_equal(results$mu, NA) expect_equal(round(results$Lmax, digits = 5), -43.57969) expect_equal(round(results$BIC, digits = 4), 106.4405) }) Luminescence/tests/testthat/test_fit_SurfaceExposure.R0000644000176200001440000001135514762554470023060 0ustar liggesusersdata("ExampleData.SurfaceExposure", envir = environment()) d1 <- ExampleData.SurfaceExposure$sample_1 d2 <- ExampleData.SurfaceExposure$sample_2 d3 <- ExampleData.SurfaceExposure$set_1 d4 <- ExampleData.SurfaceExposure$set_2 test_that("input validation", { testthat::skip_on_cran() expect_error(fit_SurfaceExposure("test"), "'data' should be of class 'data.frame'") expect_error(fit_SurfaceExposure(list()), "'data' cannot be an empty list") expect_error(fit_SurfaceExposure(data.frame()), "'data' cannot be an empty data.frame") expect_error(fit_SurfaceExposure(matrix()), "'data' should have at least two columns") expect_error(fit_SurfaceExposure(list(d1)), "'age' must be of the same length") expect_error(fit_SurfaceExposure(d4, age = 1e4), "'age' must be of the same length") SW({ expect_message(fit_SurfaceExposure(rbind(d1, NA), mu = 0.9), "\\[fit\\_SurfaceExposure\\(\\)\\] NA values in 'data' were removed") }) }) test_that("check values from output example", { testthat::skip_on_cran() fit <- fit_SurfaceExposure(data = d1, sigmaphi = 5e-10, mu = 0.9, plot = TRUE, verbose = FALSE) ## Example data 1 expect_s4_class( fit_SurfaceExposure(data = d1, sigmaphi = 5e-10, mu = 0.9, age = 12000, plot = FALSE, verbose = FALSE), "RLum.Results") expect_equal(is(fit), c("RLum.Results", "RLum")) expect_equal(length(fit), 5) expect_equal(is(fit$fit), "nls") expect_equal(round(fit$summary$age), 9893) expect_equal(round(fit$summary$age_error), 369) }) # Sub-test - weighted fitting fit <- fit_SurfaceExposure(data = d1, sigmaphi = 5e-10, mu = 0.9, weights = TRUE, plot = FALSE, verbose = FALSE) test_that("check values from output example", { testthat::skip_on_cran() expect_equal(round(fit$summary$age), 9624) expect_equal(round(fit$summary$age_error), 273) }) ## Example data 2 fit <- fit_SurfaceExposure(data = data.table(d2), age = 1e4, sigmaphi = 5e-10, Ddot = 2.5, D0 = 40, plot = FALSE, verbose = FALSE) test_that("check values from output example", { testthat::skip_on_cran() expect_equal(is(fit), c("RLum.Results", "RLum")) expect_equal(length(fit), 5) expect_equal(is(fit$fit), "nls") expect_equal(round(fit$summary$mu, 3), 0.904) expect_equal(round(fit$summary$mu_error, 3), 0.007) }) ## Example data 3 fit <- fit_SurfaceExposure(data = d3, age = c(1e3, 1e4, 1e5, 1e6), sigmaphi = 5e-10, plot = FALSE, verbose = FALSE) test_that("check values from output example", { testthat::skip_on_cran() expect_equal(is(fit), c("RLum.Results", "RLum")) expect_equal(nrow(fit$summary), 4) expect_equal(length(fit), 5) expect_equal(is(fit$fit), "nls") expect_equal(round(unique(fit$summary$mu), 3), 0.901) expect_equal(round(unique(fit$summary$mu_error), 3), 0.002) }) ## Example data 4 fit <- fit_SurfaceExposure(data = d4, age = c(1e2, 1e3, 1e4, 1e5, 1e6), sigmaphi = 5e-10, Ddot = 1.0, D0 = 40, plot = FALSE, verbose = FALSE) test_that("check values from output example", { testthat::skip_on_cran() expect_equal(is(fit), c("RLum.Results", "RLum")) expect_equal(nrow(fit$summary), 5) expect_equal(length(fit), 5) expect_equal(is(fit$fit), "nls") expect_equal(round(unique(fit$summary$mu), 3), 0.899) expect_equal(round(unique(fit$summary$mu_error), 3), 0.002) }) #### WARNINGS & FAILURES test_that("not enough parameters provided", { testthat::skip_on_cran() SW({ expect_message( fit_SurfaceExposure(data = d1, plot = FALSE, verbose = TRUE), "Unable to fit the data" ) expect_equal( is(fit_SurfaceExposure(data = d2, plot = FALSE, verbose = FALSE)$fit), "simpleError" ) expect_warning( fit_SurfaceExposure(data = d4, age = c(1e2, 1e3, 1e4, 1e5, 1e6), sigmaphi = 5e-10, Ddot = 1.0, D0 = 40, weights = TRUE, plot = TRUE, coord_flip = TRUE, verbose = TRUE), "is not supported when" ) expect_message(res <- fit_SurfaceExposure(list(d1, d1), age = c(NA, 1e4), sigmaphi = NA, mu = NA, log = "y", plot = TRUE), "Original error from minpack.lm::nlsLM(): evaluation of fn", fixed = TRUE) expect_message(fit_SurfaceExposure(res), "Original error from minpack.lm::nlsLM(): singular gradient", fixed = TRUE) expect_message(fit_SurfaceExposure(as.matrix(d1), log = "y"), "Original error from minpack.lm::nlsLM(): singular gradient", fixed = TRUE) }) }) Luminescence/tests/testthat/test_merge_RLum.Data.Curve.R0000644000176200001440000001130414762554470023056 0ustar liggesusers## load example data data(ExampleData.XSYG, envir = environment()) ## RLum.Data.Curve TL.curves <- get_RLum(OSL.SARMeasurement$Sequence.Object, recordType = "TL (UVVIS)") TL.curve.1 <- TL.curves[[1]] TL.curve.3 <- TL.curves[[3]] TL.curve.3_short <- TL.curves[[3]] TL.curve.3_short@data <- TL.curve.3_short@data[1:(nrow(TL.curve.3@data) - 1), ] TL.curve.3_resol <- TL.curve.3_short TL.curve.3_resol@data <- TL.curve.3_resol@data[-2, ] TL.curve.3_types <- TL.curves[[3]] TL.curve.3_types@recordType <- "IRSL" TL.curve.3_zeros <- TL.curves[[3]] TL.curve.3_zeros@data[10:12, 2] <- 0 test_that("input validation", { testthat::skip_on_cran() expect_error(merge_RLum.Data.Curve("", merge.method = "/"), "'object' should be of class 'list'") expect_error(merge_RLum.Data.Curve(list("")), "All elements of 'object' should be of class 'RLum.Data.Curve'") expect_error(merge_RLum.Data.Curve(list(), merge.method = "/"), "'object' contains no data") expect_error(merge_RLum.Data.Curve(list(set_RLum("RLum.Data.Curve"))), "'object' contains no data") expect_error(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3), merge.method = "error"), "'merge.method' should be one of 'mean', 'median', 'sum', 'sd'") expect_error(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3_types)), "Only similar record types are supported") ## different curve lengths expect_warning(res <- merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3_short)), "The number of channels differs between the curves") expect_equal(nrow(res@data), nrow(TL.curve.3_short@data)) ## different resolution expect_error(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3_resol)), "The objects do not seem to have the same channel resolution") }) test_that("check functionality", { testthat::skip_on_cran() expect_s4_class(TL.curve.1 + TL.curve.3, "RLum.Data.Curve") expect_s4_class(TL.curve.1 - TL.curve.3, "RLum.Data.Curve") suppressWarnings( # silence repeated warning expect_warning(expect_s4_class(TL.curve.3 / TL.curve.1, "RLum.Data.Curve"), "8 'inf' values have been replaced by 0 in the matrix")) expect_s4_class(TL.curve.1 * TL.curve.3, "RLum.Data.Curve") }) test_that("snapshot tests", { testthat::skip_on_cran() expect_snapshot_RLum(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3), method.info = 1)) expect_snapshot_RLum(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3), merge.method = "sum")) expect_snapshot_RLum(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3), merge.method = "median")) expect_snapshot_RLum(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3), merge.method = "sd")) expect_snapshot_RLum(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3), merge.method = "var")) expect_snapshot_RLum(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3), merge.method = "max")) expect_snapshot_RLum(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3), merge.method = "min")) expect_snapshot_RLum(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3), merge.method = "-")) expect_s4_class(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3, TL.curve.3), merge.method = "-"), "RLum.Data.Curve") expect_snapshot_RLum(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3), merge.method = "*")) expect_s4_class(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3, TL.curve.3), merge.method = "*"), "RLum.Data.Curve") expect_snapshot_RLum(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3), merge.method = "/")) expect_s4_class(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3, TL.curve.3), merge.method = "/"), "RLum.Data.Curve") expect_warning( expect_snapshot_RLum(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3_zeros), merge.method = "/")), "3 'inf' values have been replaced by 0 in the matrix") expect_snapshot_RLum(merge_RLum.Data.Curve(list(TL.curve.1, TL.curve.3), merge.method = "append")) }) Luminescence/tests/testthat/test_plot_Risoe.BINfileData.R0000644000176200001440000000342514762554470023252 0ustar liggesusers## load data data(ExampleData.BINfileData, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_error(plot_Risoe.BINfileData("error"), "'data' should be of class 'Risoe.BINfileData'") expect_error(plot_Risoe.BINfileData(CWOSL.SAR.Data, position = 1, curve.transformation = "error"), "'curve.transformation' should be one of 'CW2pLM', 'CW2pLMi'") }) test_that("general test", { testthat::skip_on_cran() expect_silent(plot_Risoe.BINfileData(CWOSL.SAR.Data, position = 1)) expect_silent(plot_Risoe.BINfileData(CWOSL.SAR.Data, position = 1, sorter = "RUN")) expect_silent(plot_Risoe.BINfileData(CWOSL.SAR.Data, position = 1, sorter = "SET")) expect_silent(plot_Risoe.BINfileData(CWOSL.SAR.Data, position = 1, curve.transformation = "CW2pLM")) expect_silent(plot_Risoe.BINfileData(CWOSL.SAR.Data, position = 1, curve.transformation = "CW2pLMi")) expect_warning(plot_Risoe.BINfileData(CWOSL.SAR.Data, position = 1, curve.transformation = "CW2pHMi"), "132 invalid values have been found and replaced by the mean") SW({ expect_warning(plot_Risoe.BINfileData(CWOSL.SAR.Data, position = 1, curve.transformation = "CW2pPMi"), "t' is beyond the time resolution") }) expect_silent(plot_Risoe.BINfileData(CWOSL.SAR.Data, position = 1, dose_rate = 3)) ## simulate v4 CWOSL.SAR.Data@METADATA$VERSION <- 04 expect_silent(plot_Risoe.BINfileData(CWOSL.SAR.Data, position = 1)) }) Luminescence/tests/testthat/test_plot_KDE.R0000644000176200001440000000560714762554470020537 0ustar liggesusers## load data data(ExampleData.DeValues, envir = environment()) df <- convert_Second2Gray(ExampleData.DeValues$BT998, c(0.0438,0.0019)) test_that("input validation", { testthat::skip_on_cran() expect_error(plot_KDE("error"), "'data' should be of class 'RLum.Results', 'data.frame' or 'numeric'") expect_error(plot_KDE(df[0, ]), "Input data 1 has 0 rows") expect_error(plot_KDE(list()), "'data' is an empty list") expect_error(expect_warning(plot_KDE(data.frame(a = Inf, b = 1)), "Inf values removed in rows: 1 in data.frame 1"), "Your input is empty due to Inf removal") expect_error(plot_KDE(df, ylim = c(0, 1)), "'ylim' should have length 4") expect_warning(plot_KDE(df[1, ]), "Single data point found, no density calculated") }) test_that("check functionality", { testthat::skip_on_cran() ## create plot straightforward expect_silent(plot_KDE(data = df)) ## more coverage expect_silent(plot_KDE(data = df, summary = "n", summary.pos = c(105, 0.07), main = "Title", mtext = "Subtitle", xlab = "x", ylab = "y", layout = "default", log = "x", xlim = c(100, 180), ylim = c(0, 0.07, 0, 0.01), col = 2, lty = 2, lwd = 2, cex = 1)) expect_silent(plot_KDE(data = df, summary.pos = "topleft")) expect_silent(plot_KDE(data = df, summary.pos = "top")) expect_silent(plot_KDE(data = df, summary.pos = "topright")) expect_silent(plot_KDE(data = df, summary.pos = "left")) expect_silent(plot_KDE(data = df, summary.pos = "center")) expect_silent(plot_KDE(data = df, summary.pos = "right")) expect_silent(plot_KDE(data = df, summary.pos = "bottomleft")) expect_silent(plot_KDE(data = df, summary.pos = "bottom")) expect_silent(plot_KDE(data = df, summary.pos = "bottomright")) expect_silent(plot_KDE(data = df, sub = "test")) ## specify layout layout <- get_Layout("default") layout$kde$dimension$figure.width <- 100 layout$kde$dimension$figure.height <- 100 plot_KDE(data = df, layout = layout) ## numeric vector expect_silent(plot_KDE(df[, 1])) ## single-column data.frame expect_silent(plot_KDE(df[, 1, drop = FALSE])) ## RLum.Results object expect_silent(plot_KDE(calc_CommonDose(df, plot = FALSE, verbose = FALSE))) ## infinite values df.inf <- df df.inf[9, 1] <- Inf expect_warning(plot_KDE(df.inf), "Inf values removed in rows: 9 in data.frame 1") df.inf[2, 2] <- Inf expect_warning(plot_KDE(df.inf), "Inf values removed in rows: 2, 9 in data.frame 1") ## missing values df.na <- df df.na[2, 1] <- NA expect_message(plot_KDE(df.na), "1 NA value excluded from data set 1") df.na[3, 1] <- NA expect_message(plot_KDE(df.na), "2 NA values excluded from data set 1") }) Luminescence/tests/testthat/test_calc_FuchsLang2001.R0000755000176200001440000000260114762554470022227 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(calc_FuchsLang2001("error"), "[calc_FuchsLang2001()] 'data' should be of class 'data.frame'", fixed = TRUE) expect_error(calc_FuchsLang2001(data.frame()), "'data' cannot be an empty data.frame") }) test_that("check class and length of output", { testthat::skip_on_cran() ##load example data data(ExampleData.DeValues, envir = environment()) ##the simple and silent run temp <- expect_s4_class( calc_FuchsLang2001( data = ExampleData.DeValues$BT998, cvThreshold = 5, plot = FALSE, verbose = FALSE), "RLum.Results") ##regression tests expect_equal(length(temp), 4) expect_equal(get_RLum(temp)$de, 2866.11) expect_equal(get_RLum(temp)$de_err, 157.35) expect_equal(get_RLum(temp)$de_weighted, 2846.66) expect_equal(get_RLum(temp)$de_weighted_err, 20.58) expect_equal(get_RLum(temp)$n.usedDeValues, 22) ## using an RLum.Results object as input SW({ expect_s4_class(calc_FuchsLang2001(data = temp, startDeValue = 24, plot = FALSE), "RLum.Results") }) ##the check output SW({ output <- expect_s4_class( calc_FuchsLang2001( data = ExampleData.DeValues$BT998, cvThreshold = 5, plot = TRUE, verbose = TRUE ), "RLum.Results") }) }) Luminescence/tests/testthat/test_read_HeliosOSL2R.R0000644000176200001440000000233014762554470022064 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(read_HeliosOSL2R(data.frame()), "'file' should be of class 'character' or 'list'") expect_error(read_HeliosOSL2R(character(0)), "'file' should have length 1") expect_error(read_HeliosOSL2R("error"), "[read_HeliosOSL2R()] File extension '' not supported", fixed = TRUE) expect_error(object = read_HeliosOSL2R("error.err"), "[read_HeliosOSL2R()] File extension 'err' not supported", fixed = TRUE) }) test_that("Test functionality", { testthat::skip_on_cran() ## standard input file <- system.file("extdata/HeliosOSL_Example.osl", package = "Luminescence") SW({ expect_s4_class( object = read_HeliosOSL2R(file), class = "RLum.Analysis") }) ## no verbose expect_silent( object = read_HeliosOSL2R(file, verbose = FALSE)) ## list input files <- list(file, file) SW({ expect_type( object = read_HeliosOSL2R(files), type = "list") }) ## list input files <- list(file, file, "wrong.xs") SW({ t <- expect_type( object = read_HeliosOSL2R(files, verbose = FALSE), type = "list") }) expect_length(t,2) }) Luminescence/tests/testthat/test_calc_IEU.R0000755000176200001440000000536214762554470020503 0ustar liggesusers## load data data(ExampleData.DeValues, envir = environment()) test_that("input validation", { testthat::skip_on_cran() df <- ExampleData.DeValues$CA1 expect_error(calc_IEU("error", a = 0.2, b = 1.9, interval = 1), "'data' should be of class 'data.frame' or 'RLum.Results'") expect_error(calc_IEU(df[, 1, drop = FALSE], a = 0.2, b = 1.9, interval = 1), "'data' should have at least two columns") expect_error(calc_IEU(df, a = "error", b = 1.9, interval = 1), "'a' should be of class 'numeric'") expect_error(calc_IEU(df, a = 0.2, b = "error", interval = 1), "'b' should be of class 'numeric'") expect_error(calc_IEU(df, a = 0.2, b = 1.9, interval = "error"), "'interval' should be of class 'numeric'") expect_error(calc_IEU(data.frame(), a = 0.2, b = 1.9, interval = 1), "'data' contains no data") expect_error(calc_IEU(iris[0, ], a = 0.2, b = 1.9, interval = 1), "'data' contains no data") }) test_that("check functionality", { testthat::skip_on_cran() ##standard expect_silent(calc_IEU( ExampleData.DeValues$CA1, a = 0.2, b = 1.9, interval = 1, verbose = FALSE, plot =FALSE )) ## enable plot and verbose (using default values for coverage) SW({ expect_message(calc_IEU( ExampleData.DeValues$CA1, a = 0.2, b = 1.9, interval = 1, trace = TRUE )) }) }) test_that("snapshot tests", { testthat::skip_on_cran() snapshot.tolerance <- 1.5e-6 expect_snapshot_RLum(calc_IEU( ExampleData.DeValues$CA1, a = 0.25, b = 1.29, interval = 1, verbose = FALSE, plot = FALSE), tolerance = snapshot.tolerance) ##provide RLum.Results expect_snapshot_RLum(calc_IEU( set_RLum(class = "RLum.Results", data = list(test = ExampleData.DeValues$CA1)), a = 0.12, b = 2.14, interval = 0.9, verbose = FALSE, plot = FALSE), tolerance = snapshot.tolerance) }) test_that("regression tests", { testthat::skip_on_cran() ## issue 424 expect_warning(calc_IEU( ExampleData.DeValues$CA1, a = 0.45, b = 1.29, interval = 1, verbose = FALSE, plot = FALSE), "Numerical error, try changing your 'a' and 'b' values") expect_warning(calc_IEU( ExampleData.DeValues$CA1, a = 0.12, b = 1.29, interval = 10, verbose = FALSE, plot = FALSE), "Numerical error, try changing your 'a' and 'b' values") }) test_that("test additional C++ functionality", { testthat::skip_on_cran() SW({ expect_type(Luminescence:::src_EED_Calc_Overall_StatUncertainty( M_Simul = matrix(1:100, ncol = 20), Ndata = 20, Nsimul = 2, MinNbSimExp = 20), "double") }) }) Luminescence/tests/testthat/test_calc_CommonDose.R0000644000176200001440000000355514762554470022123 0ustar liggesusers## load data data(ExampleData.DeValues, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_error(calc_CommonDose(), "'data' should be of class 'data.frame' or 'RLum.Results'") expect_error(calc_CommonDose("test"), "'data' should be of class 'data.frame' or 'RLum.Results'") expect_error(calc_CommonDose(data.frame(col = 1:10)), "'data' object must have two columns") expect_error(calc_CommonDose(data.frame(col = 1:10)), "'data' object must have two columns") expect_error(calc_CommonDose(ExampleData.DeValues$CA1, sigmab = 2), "'sigmab' must be a value between 0 and 1") }) test_that("check functionality", { testthat::skip_on_cran() SW({ temp <- calc_CommonDose(ExampleData.DeValues$CA1, plot = FALSE, verbose = TRUE) temp.nolog <- calc_CommonDose(ExampleData.DeValues$CA1, log = FALSE, plot = FALSE, verbose = TRUE) }) expect_s4_class(temp, "RLum.Results") expect_equal(length(temp), 4) all.equal(calc_CommonDose(temp, verbose = FALSE), temp) results <- get_RLum(temp) expect_equal(round(results$de, digits = 5), 62.15999) expect_equal(round(results$de_err, digits = 7), 0.7815117) expect_true(temp@data$args$log) expect_equal(temp@data$args$sigmab, 0) results <- get_RLum(temp.nolog) expect_false(temp.nolog@data$args$log) }) test_that("snapshot tests", { testthat::skip_on_cran() snapshot.tolerance <- 1.5e-6 expect_snapshot_RLum(calc_CommonDose( ExampleData.DeValues$CA1, sigmab = 0.75, plot = FALSE, verbose = FALSE), tolerance = snapshot.tolerance) expect_snapshot_RLum(calc_CommonDose( ExampleData.DeValues$CA1, sigmab = 0.25, log = FALSE, plot = FALSE, verbose = FALSE), tolerance = snapshot.tolerance) }) Luminescence/tests/testthat/test_fit_CWCurve.R0000644000176200001440000001033214762554470021245 0ustar liggesusers## load data data(ExampleData.CW_OSL_Curve, envir = environment()) data(ExampleData.FittingLM, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_error(fit_CWCurve("error"), "'values' should be of class 'RLum.Data.Curve' or 'data.frame'") expect_error(fit_CWCurve(data.frame()), "'values' cannot be an empty data.frame") expect_error(fit_CWCurve(set_RLum("RLum.Data.Curve")), "'values' contains no positive counts") expect_error(fit_CWCurve(ExampleData.CW_OSL_Curve, fit.method = "error"), "'fit.method' should be one of 'port' or 'LM'") expect_error(fit_CWCurve(ExampleData.CW_OSL_Curve, n.components.max = 0), "'n.components.max' should be a positive integer scalar") expect_error(fit_CWCurve(ExampleData.CW_OSL_Curve, fit.failure_threshold = -1), "'fit.failure_threshold' should be a positive integer scalar") expect_error(fit_CWCurve(ExampleData.CW_OSL_Curve, verbose = "error"), "'verbose' should be a single logical value") expect_error(fit_CWCurve(ExampleData.CW_OSL_Curve, output.terminalAdvanced = "error"), "'output.terminalAdvanced' should be a single logical value") expect_error(fit_CWCurve(ExampleData.CW_OSL_Curve, plot = "error"), "'plot' should be a single logical value") expect_error(fit_CWCurve(ExampleData.CW_OSL_Curve[5:1, ]), "Time values are not ordered") }) test_that("check functionality", { testthat::skip_on_cran() ## data.frame SW({ fit <- fit_CWCurve(values = ExampleData.CW_OSL_Curve, main = "CW Curve Fit", n.components.max = 4, log = "x", plot = FALSE) }) expect_s4_class(fit, "RLum.Results") expect_equal(length(fit), 3) expect_equal(fit$data$n.components, 3, tolerance = 1) expect_equal(round(fit$data$I01, digits = 0), 2388, tolerance = 1) expect_equal(round(fit$data$lambda1, digits = 1), 4.6, tolerance = 1) expect_equal(round(fit$data$`pseudo-R^2`, digits = 0), 1) expect_type(fit@data$component.contribution.matrix, "list") expect_equal(fit@data$component.contribution.matrix[[1]], NA) ## RLum.Data.Curve object curve <- set_RLum("RLum.Data.Curve", data = as.matrix(ExampleData.CW_OSL_Curve), curveType = "measured", recordType = "OSL") fit <- fit_CWCurve(values = curve, main = "CW Curve Fit", n.components.max = 4, log = "x", method_control = list(export.comp.contrib.matrix = TRUE), verbose = FALSE, plot = FALSE) expect_s4_class(fit, "RLum.Results") expect_equal(length(fit), 3) expect_equal(fit$data$n.components, 3, tolerance = 1) expect_equal(round(fit$data$I01, digits = 0), 2388, tolerance = 1) expect_equal(round(fit$data$lambda1, digits = 1), 4.6, tolerance = 1) expect_equal(round(fit$data$`pseudo-R^2`, digits = 0), 1) expect_gte(length(fit@data$component.contribution.matrix[[1]]), 9000) SW({ expect_warning(fit_CWCurve(ExampleData.CW_OSL_Curve, fit.method = "LM", fit.calcError = TRUE, xlab = "x", ylab = "y", log = "x", output.path = tempdir()), "Argument 'output.path' no longer supported") }) ## more coverage expect_message(fit_CWCurve(ExampleData.CW_OSL_Curve[1, ]), "Error: Fitting failed, plot without fit produced") pdf(tempfile(), width = 1, height = 1) expect_message(fit_CWCurve(values.curve, n.components.max = 3, verbose = FALSE), "Figure margins too large or plot area too small") pdf(tempfile(), width = 1, height = 1) expect_message(fit_CWCurve(ExampleData.CW_OSL_Curve, verbose = FALSE), "Figure margins too large or plot area too small") }) test_that("regression tests", { testthat::skip_on_cran() ## issue 509 SW({ expect_message(fit_CWCurve(ExampleData.CW_OSL_Curve[1:20, ], fit.method = "LM", fit.calcError = TRUE), "Error: Computation of confidence interval failed") }) }) Luminescence/tests/testthat/test_plot_RLum.Results.R0000644000176200001440000000720214762554470022444 0ustar liggesusers## load data data(ExampleData.DeValues, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_error(plot_RLum.Results("error"), "'object' should be of class 'RLum.Results'") expect_error(plot_RLum.Results(set_RLum("RLum.Results", originator = NA_character_)), "Object originator not supported") }) test_that("check functionality", { testthat::skip_on_cran() ## calc_MinDose d1 <- calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.1, bootstrap = TRUE, bs.M = 10, bs.N = 10, plot = FALSE, verbose = FALSE) expect_silent(plot_RLum.Results(d1, main = "Title")) expect_silent(plot_RLum.Results(d1, single = FALSE, log = "", lty = 1, type = "l", col = 2)) ## calc_CentralDose d2 <-calc_CentralDose(ExampleData.DeValues$CA1, plot = FALSE, verbose = FALSE) expect_silent(plot_RLum.Results(d2)) ## calc_FuchsLang2001 d3 <- calc_FuchsLang2001(ExampleData.DeValues$BT998, cvThreshold = 5, plot = FALSE, verbose = FALSE) expect_silent(plot_RLum.Results(d3)) expect_silent(plot_RLum.Results(d3, main = "Title", sub = "Subtitle", xlab = "x", xlim = c(2500, 4000), ylab = "y", ylim = c(0, 25), mtext = "", cex = 1, lwd = 1, pch = 1)) ## calc_FiniteMixture d4 <- calc_FiniteMixture(ExampleData.DeValues$CA1, sigmab = 0.2, n.components = c(2:4), dose.scale = c(0, 100), plot = FALSE, verbose = FALSE) expect_silent(plot_RLum.Results(d4, pdf.colors = "colors")) expect_silent(plot_RLum.Results(d4, main = "Title", plot.proportions = FALSE, pdf.weight = FALSE, pdf.sigma = "sigmab")) expect_silent(plot_RLum.Results(d4, main = "Title", plot.proportions = FALSE, pdf.weight = TRUE, pdf.sigma = "se", pdf.scale = 1)) ## calc_AliquotSize d5 <- calc_AliquotSize(grain.size = c(100, 150), sample.diameter = 1, MC.iter = 100, plot = FALSE, verbose = FALSE) expect_silent(plot_RLum.Results(d5)) expect_silent(plot_RLum.Results(d5, main = "MC simulation", xlab = "Grains")) ## calc_SourceDoseRate d6 <- calc_SourceDoseRate(measurement = "2012-01-27", calib = "2014-12-19", calib.dose.rate = 0.0438, calib.error = 0.0019) expect_silent(plot_RLum.Results(d6)) ## calc_FastRatio data(ExampleData.CW_OSL_Curve, envir = environment()) d7 <- calc_FastRatio(ExampleData.CW_OSL_Curve, plot = FALSE, verbose = FALSE) expect_silent(plot_RLum.Results(d7)) d7 <- calc_FastRatio(ExampleData.CW_OSL_Curve, dead.channels = c(1, 1), plot = FALSE, fitCW.curve = FALSE, verbose = FALSE) expect_silent(plot_RLum.Results(d7)) d7_fit <- calc_FastRatio(ExampleData.CW_OSL_Curve, dead.channels = c(1, 1), plot = FALSE, fitCW.curve = TRUE, verbose = FALSE) expect_s4_class(d7_fit@data$fit, "RLum.Results") expect_silent(plot_RLum.Results(d7_fit)) ## analyse_IRSAR.RF data(ExampleData.RLum.Analysis, envir = environment()) d8 <- analyse_IRSAR.RF(IRSAR.RF.Data, method = "VSLIDE", n.MC = 10, plot = FALSE, txtProgressBar = FALSE) SW({ expect_warning(plot_RLum.Results(d8)) }) ## no valid originator expect_silent(plot_RLum.Results(set_RLum("RLum.Results", originator = "error"))) }) Luminescence/tests/testthat/test_calc_TLLxTxRatio.R0000644000176200001440000000715314762554470022214 0ustar liggesuserstest_that("calc_TLLxTxRatio", { testthat::skip_on_cran() ##load package example data data(ExampleData.BINfileData, envir = environment()) ##convert Risoe.BINfileData into a curve object temp <- Risoe.BINfileData2RLum.Analysis(TL.SAR.Data, pos = 3) Lx.data.signal <- get_RLum(temp, record.id = 1) Lx.data.background <- get_RLum(temp, record.id = 2) Tx.data.signal <- get_RLum(temp, record.id = 3) Tx.data.background <- get_RLum(temp, record.id = 4) signal.integral.min <- 210 signal.integral.max <- 230 ## break the function ## different data types expect_error(calc_TLLxTxRatio( Lx.data.signal, Lx.data.background, Tx.data.signal = as.data.frame(Tx.data.signal), Tx.data.background, signal.integral.min, signal.integral.max), "[calc_TLLxTxRatio()] Data types of Lx and Tx data differ", fixed = TRUE) ## different data types expect_error(calc_TLLxTxRatio( Lx.data.signal, Lx.data.background, Tx.data.signal = as.data.frame(Tx.data.signal), Tx.data.background, signal.integral.min, signal.integral.max), "[calc_TLLxTxRatio()] Data types of Lx and Tx data differ", fixed = TRUE) ## check for allowed data types expect_error(calc_TLLxTxRatio( Lx.data.signal = as.matrix(Tx.data.signal), Lx.data.background, Tx.data.signal = as.matrix(Tx.data.signal), Tx.data.background, signal.integral.min, signal.integral.max), "'Lx.data.signal' should be of class 'data.frame' or 'RLum.Data.Curve'") ## check for different channel numbers expect_error(calc_TLLxTxRatio( Lx.data.signal = as.data.frame(Tx.data.signal)[1:10,], Lx.data.background, Tx.data.signal = as.data.frame(Tx.data.signal), Tx.data.background, signal.integral.min, signal.integral.max), "[calc_TLLxTxRatio()] Channel numbers differ for Lx and Tx data", fixed = TRUE) ## use invalid signal integral expect_error(calc_TLLxTxRatio( Lx.data.signal, Lx.data.background, Tx.data.signal, Tx.data.background, signal.integral.min = 10, signal.integral.max = 1000), "[calc_TLLxTxRatio()] 'signal.integral' is not valid", fixed = TRUE) ## trigger warning expect_warning(calc_TLLxTxRatio( Lx.data.signal, Lx.data.background, Tx.data.signal, Tx.data.background = Lx.data.background, signal.integral.min, signal.integral.max), regexp = "\\[calc\\_TLLxTxRatio\\(\\)\\] The background signals for Lx and Tx appear to be similar.+") ## run function without error temp <- expect_s4_class(calc_TLLxTxRatio( Lx.data.signal, Lx.data.background, Tx.data.signal, Tx.data.background, signal.integral.min, signal.integral.max), class = "RLum.Results") ## check lenght expect_equal(length(temp), 1) ## extract elements results <- get_RLum(temp) expect_equal(length(results), 10) expect_equal(results$LnLx, 257042) expect_equal(results$LnLx.BG, 4068) expect_equal(results$TnTx, 82298) expect_equal(results$TnTx.BG, 2943) expect_equal(results$net_LnLx, 252974) expect_equal(round(results$net_LnLx.Error, digits = 2), 49468.92) expect_equal(results$net_TnTx, 79355) expect_equal(round(results$net_TnTx.Error,2), 21449.72) expect_equal(round(results$LxTx, digits = 6), 3.187877) expect_equal(round(results$LxTx.Error, digits = 6), 1.485073) expect_s4_class(calc_TLLxTxRatio( Lx.data.signal, Lx.data.background=NULL, Tx.data.signal, Tx.data.background=NULL, signal.integral.min, signal.integral.max), class = "RLum.Results") }) Luminescence/tests/testthat/test_analyse_FadingMeasurement.R0000644000176200001440000002116014762554470024200 0ustar liggesusers## load example data (sample UNIL/NB123, see ?ExampleData.Fading) data("ExampleData.Fading", envir = environment()) fading_data <- ExampleData.Fading$fading.data$IR50 test_that("input validation", { testthat::skip_on_cran() expect_error(analyse_FadingMeasurement(object = "test"), "'object' should be of class 'RLum.Analysis', 'data.frame' or") expect_error(analyse_FadingMeasurement(object = iris[0, ]), "'object' cannot be an empty data.frame") expect_error(analyse_FadingMeasurement(object = iris[, 0]), "'object' cannot be an empty data.frame") expect_warning(expect_error( analyse_FadingMeasurement(list(fading_data, "test")), "No valid records in 'object' left"), "2 unsupported records removed") expect_error(analyse_FadingMeasurement(cbind(fading_data, fading_data[, 1])), "if you provide a data.frame as input, the number of columns") ## check various for t_star ## stop t_star expect_error(analyse_FadingMeasurement(fading_data, t_star = "error"), "'t_star' should be one of 'half', 'half_complex', 'end' or a function") ## wrong originator psl.file <- system.file("extdata/DorNie_0016.psl", package = "Luminescence") SW({ expect_message(expect_null(analyse_FadingMeasurement(read_PSL2R(psl.file))), "Error: Unknown or unsupported originator, NULL returned") }) ## no irradiation steps xsyg.file <- system.file("extdata/XSYG_file.xsyg", package = "Luminescence") SW({ expect_error(analyse_FadingMeasurement(read_XSYG2R(xsyg.file, fastForward = TRUE)), "No irradiation times could be retrieved, check that 'object'") }) }) test_that("general test", { testthat::skip_on_cran() ## run routine analysis SW({ expect_s4_class(analyse_FadingMeasurement( fading_data, plot = TRUE, verbose = TRUE, n.MC = 10), class = "RLum.Results") }) ##no plot not verbose expect_s4_class(analyse_FadingMeasurement( fading_data, plot = FALSE, verbose = FALSE, n.MC = 10), class = "RLum.Results") ## test merging of objects if combined in a list ## this crashed before and was fixed expect_s4_class(merge_RLum( list(analyse_FadingMeasurement( fading_data[1,], plot = FALSE, verbose = FALSE, n.MC = 10), analyse_FadingMeasurement( fading_data[1:10,], plot = FALSE, verbose = FALSE, n.MC = 10))), "RLum.Results") expect_warning(analyse_FadingMeasurement(fading_data, plot = TRUE, plot.single = TRUE, verbose = FALSE, n.MC = 10), "'plot.single' is deprecated, use 'plot_singlePanels'") ## more coverage data.inf <- fading_data data.inf$LxTx[24] <- Inf expect_s4_class(analyse_FadingMeasurement( data.inf, plot = FALSE, verbose = FALSE, n.MC = 10), class = "RLum.Results") }) test_that("test XSYG file fading data", { testthat::skip_on_cran() # Create artificial object ------------------------------------------------ l <- list() time <- 0 set.seed(0) for(x in runif(3, 120,130)) { ## set irr irr <- set_RLum( "RLum.Data.Curve", data = matrix(c(1:x, rep(1,x)), ncol = 2), originator = "read_XSYG2R", recordType = "irradiation (NA)", curveType = "simulated", info = list( startDate = format(Sys.time() + time, "%Y%m%d%H%M%S"), position = 1) ) ## set lum lum <- set_RLum( "RLum.Data.Curve", data = matrix(c(1:40, exp(-c(1:40)/ x * 10)), ncol = 2), originator = "read_XSYG2R", recordType = "IRSL", curveType = "measured", info = list( startDate = format(Sys.time() + time + x + 30, "%Y%m%d%H%M%S"), position = 1) ) time <- time + x + 60 l <- c(l, irr, lum) } ## generate object object <- set_RLum("RLum.Analysis", records = l, originator = "read_XSYG2R") # Test -------------------------------------------------------------------- SW({ expect_s4_class(analyse_FadingMeasurement( object, signal.integral = 1:2, background.integral = 10:40, structure = "Lx" ), "RLum.Results") }) SW({ expect_s4_class(analyse_FadingMeasurement( object, signal.integral = 1:2, t_star = "half_complex", background.integral = 10:40, structure = "Lx", plot = FALSE ), "RLum.Results") expect_s4_class(analyse_FadingMeasurement( object, signal.integral = 1:2, t_star = "end", background.integral = 10:40, structure = "Lx", plot = FALSE ), "RLum.Results") }) expect_error(analyse_FadingMeasurement(object, signal.integral = 1:2, background.integral = 2), "'signal.integral' and 'background.integral' overlap") obj.sub <- get_RLum(object, record.id = 1:2, drop = FALSE) expect_message(expect_null(analyse_FadingMeasurement(obj.sub)), "After irradiation step removal not enough curves are left") SW({ expect_warning(analyse_FadingMeasurement(object, signal.integral = 1:2, background.integral = 3, structure = "Lx"), "Number of background channels for Lx < 25") expect_warning(analyse_FadingMeasurement(object, signal.integral = 1:2, background.integral = 3), "Lx and Tx have different sizes: skipped sample 2") }) }) test_that("test BIN file while fading data", { testthat::skip_on_cran() data(ExampleData.BINfileData, envir = environment()) d1 <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1) expect_error(analyse_FadingMeasurement(d1), "BIN-file has version 03, but only versions from 05 on are supported") SW({ d2 <- read_BIN2R(test_path("_data/BINfile_V5.binx"), verbose = FALSE, fastForward = TRUE) }) expect_output(analyse_FadingMeasurement(d2, signal.integral = 1:2, background.integral = 10:30, plot = TRUE)) expect_message(expect_null( analyse_FadingMeasurement(d2, signal.integral = 1:2, background.integral = 10:30, structure = "error")), "Error: 'structure' can only be 'Lx' or c('Lx', 'Tx'), NULL returned", fixed = TRUE) expect_message(expect_null( analyse_FadingMeasurement(d2, signal.integral = 1:2, background.integral = 10:30, structure = c("Lx", "Tx", "Lx"))), "Error: 'structure' can only be 'Lx' or c('Lx', 'Tx'), NULL returned", fixed = TRUE) ## more coverage analyse_FadingMeasurement(d2, signal.integral = 1:2, background.integral = 10:30, signal.integral.Tx = 2, background.integral.Tx = 5:30, plot_singlePanels = 2:3, ylim = c(0.1, 1.1), background.count.distribution = "poisson", sig0 = 2, verbose = FALSE, plot = TRUE) analyse_FadingMeasurement(d2, signal.integral = 1:2, background.integral = 10:40, t_star = identity, verbose = FALSE, plot = FALSE) d2[[2]]@records[[1]]@info$TIMESINCEIRR <- -1 expect_message(expect_warning(expect_null( analyse_FadingMeasurement(d2, signal.integral = 1:2, background.integral = 10:30, verbose = TRUE)), "removed 2 records with negative 'time since irradiation'"), "After record removal nothing is left from the data set, NULL returned") suppressWarnings( # repeated warning about negative time since irradiation expect_warning(expect_s4_class( analyse_FadingMeasurement(d2, signal.integral = 1:2, background.integral = 10:40, structure = "Lx", verbose = FALSE), "RLum.Results"), "removed 1 records with negative 'time since irradiation'") ) }) test_that("regression tests", { testthat::skip_on_cran() ## issue 558 df <- data.frame(LxTx = c(1, 0.9879, 0.9865, 0.9872, 0.9759, 0.9978, 0.9879, 0.98372), LxTxError = rep(0, 8), timeSinceIrr = c(2516, 41353, 50357, 140342, 1040044, 2516, 41360, 50360)) res <- analyse_FadingMeasurement(df, n.MC = 10, plot = FALSE, verbose = FALSE) expect_false(is.nan(res$rho_prime$MEAN)) }) Luminescence/tests/testthat/test_fit_LMCurve.R0000644000176200001440000001312314762554470021245 0ustar liggesusers## load data data(ExampleData.FittingLM, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_error(fit_LMCurve("error"), "'values' should be of class 'data.frame' or 'RLum.Data.Curve'") expect_error(fit_LMCurve(data.frame()), "'values' cannot be an empty data.frame") expect_error(fit_LMCurve(set_RLum("RLum.Data.Curve")), "recordType should be 'RBR' or 'LM-OSL'") expect_error(fit_LMCurve(set_RLum("RLum.Data.Curve", recordType = "OSL")), "recordType should be 'RBR' or 'LM-OSL'") expect_error(fit_LMCurve(values.curve, values.bg = "error"), "'values.bg' should be of class 'data.frame' or 'RLum.Data.Curve'") expect_error(fit_LMCurve(set_RLum("RLum.Data.Curve", recordType = "LM-OSL"), values.bg = values.curveBG), "Lengths of 'values' and 'values.bg' differ") expect_error(fit_LMCurve(values.curve, values.bg = values.curveBG, bg.subtraction = "error"), "'bg.subtraction' should be one of 'polynomial', 'linear' or") expect_error(fit_LMCurve(values.curve, n.components = "error"), "'n.components' should be a positive integer scalar") expect_error(fit_LMCurve(values.curve, input.dataType = "error"), "'input.dataType' should be one of 'LM' or 'pLM'") expect_error(fit_LMCurve(values.curve, fit.method = "error"), "'fit.method' should be one of 'port' or 'LM'") expect_error(fit_LMCurve( values = values.curve, values.bg = set_RLum("RLum.Data.Curve", data = as.matrix(values.curve), recordType = "OSL"), verbose = FALSE), "'recordType' for values.bg should be 'RBR'!") ## warning for failed confint ...skip on windows because with R >= 4.2 is does not fail anymore SW({ if (!grepl(pattern = "mingw", sessionInfo()$platform) && !grepl(pattern = "linux", sessionInfo()$platform)) expect_warning(fit_LMCurve(values = values.curve, fit.calcError = TRUE)) }) }) test_that("snapshot tests", { testthat::skip_on_cran() snapshot.tolerance <- 1.5e-4 SW({ set.seed(1) fit <- fit_LMCurve(values.curve, values.bg = values.curveBG, n.components = 3, log = "x", method_control = list( export.comp.contrib.matrix = TRUE), start_values = data.frame(Im = c(170,25,400), xm = c(56,200,1500))) }) expect_snapshot_RLum(fit, tolerance = snapshot.tolerance) SW({ fit2 <- fit_LMCurve(values = values.curve, values.bg = values.curveBG, n.components = 3, log = "x", fit.method = "LM", method_control = list( export.comp.contrib.matrix = TRUE), plot = FALSE) }) expect_snapshot_RLum(fit2, tolerance = snapshot.tolerance) SW({ expect_message(fit <- fit_LMCurve(values.curve, values.bg = values.curveBG, start_values = data.frame(Im = c(70,25,400), xm = c(56,200,10))), "Error: Fitting failed, plot without fit produced") expect_equal(fit@data$component_matrix, NA) set.seed(1) expect_snapshot_RLum(fit_LMCurve(values.curve, values.bg = values.curveBG, method_control = list( export.comp.contrib.matrix = TRUE), plot.BG = TRUE, bg.subtraction = "linear"), tolerance = snapshot.tolerance) suppressWarnings( expect_warning(fit_LMCurve(values.curve, values.bg = values.curveBG, fit.advanced = TRUE, fit.calcError = TRUE), "The computation of the parameter confidence intervals failed") ) ## more coverage curveBG <- set_RLum("RLum.Data.Curve", data = as.matrix(values.curveBG), recordType = "RBR") expect_warning(fit_LMCurve(values.curve, curveBG, xlab = "s", ylab = "a.u.", xlim = c(0, 4000), log = "xy"), "'xlim' changed to avoid 0 values for log-scale") }) expect_message(fit_LMCurve(values.curve[1:15, ], main = ""), "Fitting failed, plot without fit produced") pdf(tempfile(), width = 1, height = 1) expect_message(fit_LMCurve(values.curve, verbose = FALSE), "Figure margins too large or plot area too small") SW({ skip_on_os("mac") expect_snapshot_RLum(fit_LMCurve(values.curve, values.bg = values.curveBG, xlim = c(0, 4000), ylim = c(0, 600), cex = 0.9, method_control = list( export.comp.contrib.matrix = TRUE), fit.calcError = TRUE), tolerance = snapshot.tolerance) expect_snapshot_RLum(fit_LMCurve(values.curve, values.bg = values.curveBG, plot.BG = TRUE, input.dataType = "pLM", method_control = list( export.comp.contrib.matrix = TRUE), bg.subtraction = "channel"), tolerance = snapshot.tolerance) skip_on_os("windows") set.seed(1) expect_snapshot_RLum(fit_LMCurve(values.curve, values.bg = values.curveBG, plot.BG = TRUE, fit.advanced = TRUE), tolerance = snapshot.tolerance) }) }) Luminescence/tests/testthat/test_convert_PSL2CSV.R0000644000176200001440000000461314762554470021726 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(convert_PSL2CSV(), "'file' should be of class 'character' or 'RLum'") expect_error(convert_PSL2CSV(character(0)), "'file' cannot be an empty character") }) test_that("check functionality", { testthat::skip_on_cran() ## get file file <- system.file("extdata/DorNie_0016.psl", package = "Luminescence") ##the case where we have an object of type RLum expect_type(convert_PSL2CSV(read_PSL2R(file, verbose = FALSE), export = FALSE), "list") ##export FALSE expect_type(convert_PSL2CSV(file, export = FALSE, verbose = FALSE), "list") ##write to temp expect_silent(convert_PSL2CSV(file, export = TRUE, path = tempdir(), verbose = FALSE)) ##test single_table argument expect_type(convert_PSL2CSV(file, export = FALSE, single_table = TRUE, verbose = FALSE), "list") ##test raw data extraction ## simple raw data extraction t <- expect_type(convert_PSL2CSV(file, export = FALSE, extract_raw_data = TRUE, verbose = FALSE), "list") expect_length(t, 5) ## raw data extraction with single_table t <- expect_type(convert_PSL2CSV(file, export = FALSE, single_table = TRUE, extract_raw_data = TRUE, verbose = FALSE), "list") expect_length(t, 1) expect_equal(nrow(t[[1]]), 100) ## test with files export tmp_path <- tempdir() expect_silent(convert_PSL2CSV(file, path = tmp_path, extract_raw_data = TRUE, single_table = TRUE, col.names = TRUE, verbose = FALSE)) ## test with col.names df <- read.table(file = rev(list.files(path = tmp_path, pattern = ".csv", full.names = TRUE))[1], sep = ";", header = TRUE) expect_type(colnames(df), "character") expect_true(grepl(pattern = "USER", colnames(df)[1])) ## test without column names expect_silent(convert_PSL2CSV(file, path = tmp_path, extract_raw_data = TRUE, single_table = TRUE, col.names = FALSE, verbose = FALSE)) df <- read.table(file = list.files(path = tmp_path, pattern = ".csv", full.names = TRUE)[1], sep = ";", header = TRUE) expect_false(grepl(pattern = "USER", colnames(df)[1])) }) Luminescence/tests/testthat/test_calc_FastRatio.R0000644000176200001440000001514014762554470021745 0ustar liggesusers## load data data(ExampleData.CW_OSL_Curve, envir = environment()) test_that("input validation", { testthat::skip_on_cran() obj <- ExampleData.CW_OSL_Curve expect_error(calc_FastRatio("error"), "'object' should be of class 'RLum.Analysis', 'RLum.Results'") expect_error(calc_FastRatio(iris[0, ]), "'object' cannot be an empty data.frame") expect_error(calc_FastRatio(matrix(nrow = 1, ncol = 0)), "'object' cannot be an empty matrix") expect_error(calc_FastRatio(matrix()), "'object' should have at least two columns") expect_error(calc_FastRatio(obj, Ch_L1 = NULL), "'Ch_L1' should be a positive integer scalar") expect_error(calc_FastRatio(obj, Ch_L1 = 0), "'Ch_L1' should be a positive integer scalar") expect_error(calc_FastRatio(obj, Ch_L1 = c(1, 2)), "'Ch_L1' should be a positive integer scalar") expect_error(calc_FastRatio(obj, Ch_L2 = 0), "'Ch_L2' should be a positive integer scalar") expect_error(calc_FastRatio(obj, Ch_L2 = c(1, 2)), "'Ch_L2' should be a positive integer scalar") expect_error(calc_FastRatio(ExampleData.CW_OSL_Curve, Ch_L3 = 50), "'Ch_L3' should have length 2") expect_error(calc_FastRatio(ExampleData.CW_OSL_Curve, Ch_L3 = c(40, 50, 60)), "'Ch_L3' should have length 2") expect_error(calc_FastRatio(obj, Ch_L3 = list(4, 5)), "'Ch_L3' should be of class 'integer' or 'numeric'") expect_error(calc_FastRatio(obj, Ch_L3 = c(0, 2)), "'Ch_L3[1]' should be a positive integer scalar", fixed = TRUE) expect_error(calc_FastRatio(obj, Ch_L3 = c(5, 2)), "'Ch_L3[2]' must be greater than or equal to 'Ch_L3[1]'", fixed = TRUE) expect_error(calc_FastRatio(obj, Ch_L3 = c(5, 1001)), "Value in 'Ch_L3' (5, 1001) exceeds number of available channels", fixed = TRUE) expect_error(calc_FastRatio(ExampleData.CW_OSL_Curve, wavelength=0), "'wavelength' should be a positive scalar") expect_error(calc_FastRatio(ExampleData.CW_OSL_Curve, sigmaF= 0), "'sigmaF' should be a positive scalar") expect_error(calc_FastRatio(ExampleData.CW_OSL_Curve, sigmaM= 0), "'sigmaM' should be a positive scalar") expect_error(calc_FastRatio(ExampleData.CW_OSL_Curve, x = -12), "'x' should be a positive scalar") expect_error(calc_FastRatio(ExampleData.CW_OSL_Curve, x2 = -12), "'x2' should be a positive scalar") expect_error(calc_FastRatio(ExampleData.CW_OSL_Curve, dead.channels = TRUE), "'dead.channels' should be of class 'integer' or 'numeric'") expect_error(calc_FastRatio(ExampleData.CW_OSL_Curve, dead.channels = 1), "'dead.channels' should have length 2") expect_error(calc_FastRatio(ExampleData.CW_OSL_Curve, dead.channels = c(-1, 1)), "All elements of 'dead.channels' should be non-negative") expect_warning(expect_null(calc_FastRatio(ExampleData.CW_OSL_Curve, Ch_L2 = 1)), "Calculated time/channel for L2 is too small (0, 1)", fixed = TRUE) expect_warning(expect_null(calc_FastRatio(ExampleData.CW_OSL_Curve, Ch_L2 = 2000)), "The calculated channel for L2 (2000) exceeds the number", fixed = TRUE) SW({ expect_warning(calc_FastRatio(ExampleData.CW_OSL_Curve, Ch_L3 = c(1000, 1000)), "The calculated channels for L3 (1000, 1000) exceed", fixed = TRUE) }) }) test_that("check functionality", { testthat::skip_on_cran() temp <- calc_FastRatio(ExampleData.CW_OSL_Curve, plot = FALSE, verbose = FALSE) expect_s4_class(temp, "RLum.Results") expect_equal(length(temp), 5) ## fitCW.sigma and fitCW.curve SW({ calc_FastRatio(ExampleData.CW_OSL_Curve, plot = FALSE, fitCW.sigma = TRUE, fitCW.curve = TRUE) ## RLum.Analysis object data(ExampleData.XSYG, envir = environment()) calc_FastRatio(OSL.SARMeasurement$Sequence.Object) expect_warning(calc_FastRatio(get_RLum(TL.Spectrum)), "L3 contains more counts (566) than L2 (562)", fixed = TRUE) ## RLum.Results object calc_FastRatio(temp) }) ## RLum.Data.Curve object curve <- set_RLum("RLum.Data.Curve", data = as.matrix(ExampleData.CW_OSL_Curve)) expect_s4_class(calc_FastRatio(curve, plot = FALSE, verbose = FALSE), "RLum.Results") results <- get_RLum(temp) expect_equal(round(results$fast.ratio, digits = 3), 405.122) expect_equal(round(results$fast.ratio.se, digits = 4), 119.7442) expect_equal(round(results$fast.ratio.rse, digits = 5), 29.55756) expect_equal(results$channels, 1000) expect_equal(round(results$channel.width, digits = 2), 0.04) expect_equal(results$dead.channels.start, 0) expect_equal(results$dead.channels.end, 0) expect_equal(results$sigmaF, 2.6e-17) expect_equal(results$sigmaM, 4.28e-18) expect_equal(results$stimulation.power, 30.6) expect_equal(results$wavelength, 470) expect_equal(results$t_L1, 0) expect_equal(round(results$t_L2, digits = 6), 2.446413) expect_equal(round(results$t_L3_start, digits = 5), 14.86139) expect_equal(round(results$t_L3_end, digits = 5), 22.29208) expect_equal(results$Ch_L1, 1) expect_equal(results$Ch_L2, 62) expect_equal(results$Ch_L3_start, 373) expect_equal(results$Ch_L3_end, 558) expect_equal(results$Cts_L1, 11111) expect_equal(results$Cts_L2, 65) expect_equal(round(results$Cts_L3, digits = 5), 37.66667) }) test_that("regression tests", { ## issue 471 -------------------------------------------------------------- expect_s4_class(suppressWarnings( calc_FastRatio(ExampleData.CW_OSL_Curve[1:3, ], verbose = FALSE)), "RLum.Results") expect_s4_class(suppressWarnings( calc_FastRatio(ExampleData.CW_OSL_Curve[1:5, ], verbose = FALSE)), "RLum.Results") SW({ expect_message(expect_s4_class( calc_FastRatio(ExampleData.CW_OSL_Curve, fitCW.sigma=TRUE, n.components.max = 0), "RLum.Results"), "Error: Fitting failed, please call 'fit_CWCurve()' manually", fixed = TRUE) set.seed(1) expect_message(expect_s4_class( calc_FastRatio(ExampleData.CW_OSL_Curve[sample(50), ], fitCW.sigma = TRUE), "RLum.Results"), "Error: Fitting failed, please call 'fit_CWCurve()' manually", fixed = TRUE) }) }) Luminescence/tests/testthat/test_calc_MoransI.R0000644000176200001440000000644114762554470021425 0ustar liggesusers## load data obj <- set_RLum(class = "RLum.Results", data = list(vn_values = rep(x = c(1,2), each = 50))) test_that("input validation", { testthat::skip_on_cran() expect_error(calc_MoransI("error"), "'object' should be of class 'RLum.Results', 'numeric' or 'integer'") expect_error(calc_MoransI(1:50), "'object' should have length 100") expect_error(calc_MoransI(obj, df_neighbours = "error"), "'df_neighbours' should be of class 'data.frame'") expect_error(calc_MoransI(obj, df_neighbours = iris), "'df_neighbours' should be a data frame with 3 columns") expect_error(calc_MoransI(obj, spatial_autocorrelation = "error"), "'spatial_autocorrelation' should be a single logical value") expect_error(calc_MoransI(obj, compute_pseudo_p = "error"), "'compute_pseudo_p' should be a single logical value") expect_error(calc_MoransI(obj, n_permutations = "error"), "'n_permutations' should be a positive integer scalar") expect_error(calc_MoransI(obj, ignore_borders = "error"), "'ignore_borders' should be a single logical value") expect_error(calc_MoransI(obj, return_intermediate_values = "error"), "'return_intermediate_values' should be a single logical value") expect_error(calc_MoransI(c(1, rep(NA, 99)), spatial_autocorrelation = FALSE), "There should be at least 2 non-missing values") expect_warning(calc_MoransI(c(1, rep(NA, 99)), spatial_autocorrelation = TRUE), "No bordering grain locations given in 'df_neighbours'") # FIXME(mcol) expect_warning(res <- calc_MoransI(obj, df_neighbours = iris[0, 1:3]), "No bordering grain locations given in 'df_neighbours'") expect_equal(res, NaN) }) test_that("check functionality", { testthat::skip_on_cran() set.seed(1) expect_snapshot_plain(calc_MoransI(obj)) expect_snapshot_plain(calc_MoransI(1:100, ignore_borders = TRUE)) expect_snapshot_plain(calc_MoransI(obj, return_intermediate_values = TRUE)) expect_snapshot_plain(calc_MoransI(obj, compute_pseudo_p = TRUE, tested_moransI = 0.125, return_intermediate_values = TRUE)) expect_equal(calc_MoransI(obj, spatial_autocorrelation = FALSE), -0.010101010) expect_equal(calc_MoransI(1:100, spatial_autocorrelation = FALSE), -0.010101010) expect_equal(calc_MoransI(c(1:20, rep(NA, 80)), spatial_autocorrelation = FALSE), -0.052631579) expect_warning(res <- calc_MoransI(obj, compute_pseudo_p = TRUE), "Pseudo-p might be overestimated: the real p-value is closer") expect_equal(res, 0.0010) expect_equal(calc_MoransI(1:100, compute_pseudo_p = TRUE, tested_moransI = 0.05), 0.188) }) test_that("check .get_Neighbours", { testthat::skip_on_cran() expect_error(.get_Neighbours(NULL), "'object' should be of class 'RLum.Results', 'numeric' or") expect_snapshot_plain(.get_Neighbours(obj)) expect_snapshot_plain(.get_Neighbours(obj, ignore_borders = TRUE)) expect_snapshot_plain(.get_Neighbours(c(1:99, NA))) }) Luminescence/tests/testthat/test_merge_RLum.R0000644000176200001440000000325114762554470021125 0ustar liggesuserstest_that("Merge tests", { testthat::skip_on_cran() ##load data data(ExampleData.RLum.Analysis, envir = environment()) ## set objects o1 <- IRSAR.RF.Data o2 <- IRSAR.RF.Data c1 <- as(object = list(1:10), Class = "RLum.Data.Curve") s1 <- as(object = matrix(1:20, 4, 5, dimnames = list(1:4, 1:5)), Class = "RLum.Data.Spectrum") r1 <- as(object = list(1:10), Class = "RLum.Results") ## simple test expect_s4_class(merge_RLum(list(o1,o2)), "RLum.Analysis") expect_s4_class(merge_RLum(list(c1,c1)), "RLum.Data.Curve") expect_s4_class(merge_RLum(list(s1,s1)), "RLum.Data.Spectrum") expect_s4_class(merge_RLum(list(r1,r1)), "RLum.Results") ## with null objects expect_s4_class(merge_RLum(list(o1,o2, NULL)), "RLum.Analysis") ## with unwanted objects expect_error(merge_RLum(list(o1,o2, "test")), "[merge_RLum()] All elements of 'objects' should be of class 'RLum'", fixed = TRUE) ## single object expect_s4_class( merge_RLum(list(o1)), "RLum.Analysis") ## zero objects produces warnings expect_warning( merge_RLum(list(NULL)), regexp = "\\[merge\\_RLum\\(\\)\\] Nothing was merged as the .+") ## crash with non-list expect_error(merge_RLum("errr"), "[merge_RLum()] 'objects' should be of class 'list'", fixed = TRUE) ## mixed objects expect_error(merge_RLum(list(r1, c1)), "Only similar input objects in the list are supported") ## unsupported data(ExampleData.RLum.Data.Image, envir = environment()) expect_error(merge_RLum(list(ExampleData.RLum.Data.Image)), "Merging of 'RLum.Data.Image' objects is currently not supported") }) Luminescence/tests/testthat/test_RLum.Data.Curve.R0000644000176200001440000000322314762554470021700 0ustar liggesuserstest_that("check class", { testthat::skip_on_cran() ##set empty curve object and show it expect_output(show(set_RLum(class = "RLum.Data.Curve"))) ##check replacements fo object <- set_RLum(class = "RLum.Data.Curve") expect_s4_class(set_RLum(class = "RLum.Data.Curve", data = object), class = "RLum.Data.Curve") ##check get_RLum object <- set_RLum(class = "RLum.Data.Curve", data = object, info = list(a = "test")) expect_warning(get_RLum(object, info.object = "error"), "Invalid 'info.object' name, valid names are:") ##test names expect_type(names(object), "character") ##test bin expect_warning(bin_RLum.Data(object, bin_size = -2), "Argument 'bin_size' invalid, nothing was done!") ##check conversions expect_s4_class(as(object = list(1:10), Class = "RLum.Data.Curve"), "RLum.Data.Curve") expect_s4_class(as(list(), "RLum.Data.Curve"), "RLum.Data.Curve") expect_type(as(object = object, Class = "list"), "list") expect_s4_class(as(object = matrix(1:10,ncol = 2), Class = "RLum.Data.Curve"), "RLum.Data.Curve") ## test melt simple expect_type(melt_RLum(object = object), "list") ## test melt more complicated data(ExampleData.XSYG, envir = environment()) t <- melt_RLum(OSL.SARMeasurement[[2]][[1]]) expect_length(t, n = 4) ## provide a list expect_length(melt_RLum(OSL.SARMeasurement[[2]]@records[1:5]), n = 4) ## test problematic records l <- c(OSL.SARMeasurement[[2]]@records[1:5], "non-RLum") expect_length(melt_RLum(l), n = 4) l <- list("non-RLum") expect_null(melt_RLum(l)) l <- c(list("non-RLum"), set_RLum("RLum.Results")) expect_type(melt_RLum(l), "list") }) Luminescence/tests/testthat/test_plot_MoranScatterplot.R0000644000176200001440000000425014762554470023426 0ustar liggesusers## load data obj <- set_RLum(class = "RLum.Results", data = list(vn_values = rep(x = c(1,2), each = 50))) test_that("input validation", { testthat::skip_on_cran() expect_error(plot_MoranScatterplot("error"), "'object' should be of class 'RLum.Results', 'numeric' or") expect_error(plot_MoranScatterplot(obj, df_neighbours = "error"), "'df_neighbours' should be of class 'data.frame'") expect_error(plot_MoranScatterplot(obj, df_neighbours = data.frame()), "'df_neighbours' should be a data frame with 3 columns") expect_error(plot_MoranScatterplot(obj, str_y_def = "error"), "'str_y_def' should be one of 'mean_neighbours' or") expect_error(plot_MoranScatterplot(1:10), "'object' should have length 100") }) test_that("check functionality", { testthat::skip_on_cran() expect_silent(plot_MoranScatterplot(obj)) expect_silent(plot_MoranScatterplot(1:100, pch = "show_location_ids")) expect_silent(plot_MoranScatterplot(1:100, pch = "show_n_neighbours")) expect_silent(plot_MoranScatterplot(obj, str_y_def = "weighted_sum", pch = 16)) ## problematic values for the log transform expect_warning(plot_MoranScatterplot(1:100 - 1, log = "xy", legend = FALSE), "x-axis values rescaled because of log transform") expect_warning(plot_MoranScatterplot(1:100 - 2, log = "xy", legend = FALSE), "x-axis values rescaled because of log transform") expect_warning(plot_MoranScatterplot((1:100) - 20, log = "y", legend = FALSE), "y-axis values rescaled because of log transform \\(also in return df\\)") expect_silent(plot_MoranScatterplot((1:100) - 2, log = "y", legend = FALSE)) obj.na <- obj obj.na@data$vn_values[c(24, 73)] <- NA expect_warning(plot_MoranScatterplot(obj.na, legend = TRUE), "Grain observations removed from plot because no neighbours") }) Luminescence/tests/testthat/test_plot_RLum.Data.Spectrum.R0000644000176200001440000002242614762554470023462 0ustar liggesusers## load data data(ExampleData.XSYG, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_error(plot_RLum.Data.Spectrum("error"), "'object' should be of class 'RLum.Data.Spectrum' or 'matrix'") expect_error(plot_RLum.Data.Spectrum(set_RLum("RLum.Data.Spectrum")), "'object' contains no data") expect_error(plot_RLum.Data.Spectrum(TL.Spectrum, plot.type = "error"), "'plot.type' should be one of 'contour', 'persp', 'single'") expect_error(plot_RLum.Data.Spectrum(TL.Spectrum, norm = "error"), "'norm' should be one of 'min', 'max' or NULL") expect_error(plot_RLum.Data.Spectrum(TL.Spectrum, bg.spectrum = "error"), "'bg.spectrum' should be of class 'RLum.Data.Spectrum' or 'matrix'") expect_error(plot_RLum.Data.Spectrum(TL.Spectrum, bin.rows = 1.7), "'bin.rows' should be a positive integer scalar") expect_error(plot_RLum.Data.Spectrum(TL.Spectrum, bin.cols = 0), "'bin.cols' should be a positive integer scalar") expect_error(plot_RLum.Data.Spectrum(TL.Spectrum, xlim = c(0, 100)), "No data left after applying 'xlim' and 'ylim'") expect_error(plot_RLum.Data.Spectrum(TL.Spectrum, ylim = c(5, 10)), "No data left after applying 'xlim' and 'ylim'") expect_warning(plot_RLum.Data.Spectrum(TL.Spectrum, bg.channels = -2), "'bg.channels' out of range") }) test_that("check functionality", { testthat::skip_on_cran() ##RLum.Data.Spectrum ------- m <- TL.Spectrum@data bg.spectrum <- set_RLum(class = "RLum.Data.Spectrum", data = TL.Spectrum@data[,15:16, drop = FALSE]) ##try a matrix as input expect_message(plot_RLum.Data.Spectrum(object = m, xaxis.energy = TRUE), "Input has been converted to a 'RLum.Data.Spectrum' object") ##remove rownames and column names rownames(m) <- NULL colnames(m) <- NULL expect_message(plot_RLum.Data.Spectrum(object = m), regexp = "Input has been converted to a 'RLum.Data.Spectrum' object") ## test duplicated column names t <- TL.Spectrum colnames(t@data) <- rep(50, ncol(t@data)) expect_warning(plot_RLum.Data.Spectrum(t), "Duplicated column names found") ##standard plot with some settings expect_silent(plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "contour", main = "Test", xlab = "test", ylab = "test", mtext = "test", cex = 1.2, pch = 2, lwd = 2, bty = "n", sub = "est" )) ##no plot expect_type(plot( TL.Spectrum, plot.type = "contour", main = "Test", xlab = "test", ylab = "test", mtext = "test", cex = 1.2, pch = 2, lwd = 2, bty = "n", plot = FALSE, ), "double") ##persp plot expect_silent(suppressWarnings( plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "persp", xlim = c(310, 750), ylim = c(0, 100), bin.rows = 10, bin.cols = 2, zlab = "test") )) ##test background subtraction expect_warning(plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "persp", xlim = c(310, 750), ylim = c(0, 300), bg.spectrum = bg.spectrum, bin.rows = 10, bin.cols = 1 ), "6 channels removed due to row \\(wavelength\\) binning") ## check output and limit counts expect_type(suppressWarnings(plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "persp", xlim = c(310, 750), limit_counts = 10000, bg.spectrum = bg.spectrum, bin.rows = 10, bin.cols = 1 )), "double") expect_warning(plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "persp", xlim = c(310, 750), limit_counts = 2, lphi = 20, ltheta = -15, ticktype = "simple", bin.rows = 1, bin.cols = 1 ), "Lowest count value is larger than the set count threshold") ## check our axes expect_type(suppressWarnings(plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "persp", xlim = c(310, 750), limit_counts = 10000, bg.spectrum = bg.spectrum, bin.rows = 10, box = "alternate", bin.cols = 1 )), "double") ##test energy axis expect_silent(plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "multiple.lines", xlim = c(1.4, 4), ylim = c(0, 300), bg.spectrum = bg.spectrum, bg.channels = 2, bin.cols = 1, xaxis.energy = TRUE )) ## plot: multiple.lines --------- expect_silent(suppressWarnings( plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "multiple.lines", xlim = c(310, 750), ylim = c(0, 100), bin.rows = 10, bin.cols = 1 ) )) expect_silent(suppressWarnings( plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "multiple.lines", xlim = c(310, 750), frames = c(1,3), ylim = c(0, 100), bin.rows = 10, bin.cols = 1 ) )) ## plot: image ------------ ### plot_image: standard ------- expect_silent(suppressWarnings( plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "image", xlim = c(310, 750), ylim = c(0, 300), bin.rows = 10, bin.cols = 1 ) )) ### plot_image: no contour ------- expect_silent(suppressWarnings( plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "image", xlim = c(310, 750), ylim = c(0, 300), bin.rows = 10, bin.cols = 1, contour = FALSE ))) ## plot: transect ------------ expect_silent(suppressWarnings( plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "transect", xlim = c(310, 750), ylim = c(0, 300), bin.rows = 10, bin.cols = 1, contour = FALSE))) expect_silent(suppressWarnings( plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "transect", xlim = c(310, 750), ylim = c(0, 350), # bin.rows = 50, ## bin.cols = 1, zlim = c(0, 1e6), ylab = "Counts [1 / summed channels]", contour = TRUE))) ## plot: single ------------ expect_silent(suppressWarnings( plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "single", xlim = c(310, 750), ylim = c(0, 300), bin.rows = 10, bin.cols = 6, contour = FALSE))) ## test frames expect_silent(suppressWarnings( plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "single", xlim = c(310, 750), frames = 1, ylim = c(0, 300), bin.rows = 10, bin.cols = 6, col = 1, contour = FALSE))) ### plot_image: colour changes ------- expect_silent(suppressWarnings( plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "image", xlim = c(310, 750), ylim = c(0, 300), bin.rows = 10, bin.cols = 1, col = grDevices::hcl.colors(20), contour.col = "yellow" ) )) ## plot: interactive ------------ expect_silent(suppressWarnings( plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "interactive", xlim = c(310, 750), ylim = c(0, 300), bin.rows = 10, bin.cols = 1 ) )) ## plot: interactive heatmap -------- expect_silent(suppressWarnings( plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "interactive", xlim = c(310, 750), ylim = c(0, 300), bin.rows = 10, bin.cols = 1, type = "heatmap", showscale = TRUE ) )) ##interactive contour expect_silent(suppressWarnings( plot_RLum.Data.Spectrum( TL.Spectrum, plot.type = "interactive", xlim = c(310, 750), ylim = c(0, 300), bin.rows = 10, bin.cols = 1, type = "contour", norm = "max", showscale = TRUE ) )) ## more coverage plot_RLum.Data.Spectrum(TL.Spectrum, plot.type = "multiple.lines", phi = 15, theta = -30, r = 10, log = "xyz", shade = 0.4, expand = 0.5, border = 1, axes = FALSE, norm = "min", col = 2, zlim = c(0, 2)) expect_message(expect_null( plot_RLum.Data.Spectrum(TL.Spectrum, plot.type = "multiple.lines", xlim = c(1.4, 4), ylim = c(0, 300), bg.spectrum = bg.spectrum@data * 2, xaxis.energy = TRUE)), "Error: After background subtraction all counts are negative") }) test_that("regression tests", { testthat::skip_on_cran() ## issue 415 expect_silent(plot_RLum.Data.Spectrum( TL.Spectrum, ylim = c(0, 100), bin.cols = 3)) expect_warning(plot_RLum.Data.Spectrum( TL.Spectrum, ylim = c(0, 100), bin.cols = 8), "Single column matrix: plot.type has been automatically reset to") expect_silent(plot_RLum.Data.Spectrum( TL.Spectrum, bin.rows = 600)) expect_message(expect_null(plot_RLum.Data.Spectrum( TL.Spectrum, bin.rows = 2000)), "Insufficient data for plotting, NULL returned") }) Luminescence/tests/testthat/test_plot_OSLAgeSummary.R0000644000176200001440000000272014762554470022555 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(plot_OSLAgeSummary("error"), "[plot_OSLAgeSummary()] 'object' should be of class 'RLum.Results'", fixed = TRUE) expect_error(plot_OSLAgeSummary(set_RLum("RLum.Results", data = list(), originator = "error")), "Object originator 'error' not supported") empty <- set_RLum("RLum.Results", originator = NA_character_) expect_error(plot_OSLAgeSummary(empty), "Object originator 'NA' not supported") }) test_that("check functionality", { testthat::skip_on_cran() ##simple run with example data set.seed(1234) object <- rnorm(1000, 100, 10) ##run as numeric SW({ results <- expect_s4_class(plot_OSLAgeSummary(object), "RLum.Results") }) ##run from S4-class object1 <- set_RLum("RLum.Results", data = list(A = object), originator = ".calc_BayesianCentralAgeModel") object2 <- set_RLum("RLum.Results", data = list(A = object), originator = ".calc_IndividualAgeModel") SW({ expect_s4_class(plot_OSLAgeSummary(object1), "RLum.Results") expect_s4_class(plot_OSLAgeSummary(object2), "RLum.Results") }) ##run with no output expect_silent(plot_OSLAgeSummary(object, verbose = FALSE)) ##run with rug option expect_silent(plot_OSLAgeSummary(object, verbose = FALSE, rug = TRUE)) ##check the results expect_length(results, 3) }) Luminescence/tests/testthat/test_convert_RLum2Risoe.BINfileData.R0000644000176200001440000000372614762554470024642 0ustar liggesuserstest_that("test for errors", { testthat::skip_on_cran() expect_error(convert_RLum2Risoe.BINfileData(object = NA), "'object' should be of class 'RLum.Analysis', 'RLum.Data.Curve' or") expect_error(convert_RLum2Risoe.BINfileData(set_RLum("RLum.Analysis")), "'object' cannot be an empty RLum.Analysis") }) test_that("functionality", { testthat::skip_on_cran() ##load example data data(ExampleData.RLum.Analysis, envir = environment()) ##provide RLum.Analysis expect_s4_class(convert_RLum2Risoe.BINfileData(IRSAR.RF.Data), "Risoe.BINfileData") ##provide RLum.Data.Curve expect_s4_class(convert_RLum2Risoe.BINfileData(IRSAR.RF.Data@records[[1]]), "Risoe.BINfileData") ##provide list expect_s4_class(convert_RLum2Risoe.BINfileData(list(IRSAR.RF.Data,IRSAR.RF.Data)), "Risoe.BINfileData") expect_s4_class(convert_RLum2Risoe.BINfileData(list(IRSAR.RF.Data)), "Risoe.BINfileData") ## additional metadata obj <- IRSAR.RF.Data@records[[1]] obj@info <- list(version="12", name="test", startDate="20210101150845") res <- convert_RLum2Risoe.BINfileData(obj) expect_equal(res@METADATA$VERSION, "12") expect_equal(res@METADATA$SAMPLE, "test") expect_equal(res@METADATA$DATE, "20210101") expect_equal(res@METADATA$TIME, "150845") ## regression check for "raw" conversion error from double conversion data(ExampleData.BINfileData, envir = environment()) expect_s4_class( convert_RLum2Risoe.BINfileData(Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data)), class = "Risoe.BINfileData") ## regression for combination of data where we mixed datasets that should not be mixed tmp_object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data) tmp_curves <- tmp_object[[3]]@records[[1]] tmp_curves@recordType <- "NONE" tmp_object[[3]]@records <- c(tmp_object[[3]]@records, rep(tmp_curves,2)) expect_s4_class( convert_RLum2Risoe.BINfileData(tmp_object), class = "Risoe.BINfileData") }) Luminescence/tests/testthat/test_calc_FiniteMixture.R0000644000176200001440000000561314762554470022651 0ustar liggesusers## load data data(ExampleData.DeValues, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_error(calc_FiniteMixture(), "'data' should be of class 'data.frame' or 'RLum.Results'") expect_error(calc_FiniteMixture("test"), "'data' should be of class 'data.frame' or 'RLum.Results'") expect_error(calc_FiniteMixture(data.frame(col = 1:10)), "'data' object must have two columns") expect_error(calc_FiniteMixture(ExampleData.DeValues$CA1), "argument .* is missing, with no default") expect_error(calc_FiniteMixture(ExampleData.DeValues$CA1, sigmab = 0.2), "argument .* is missing, with no default") expect_error(calc_FiniteMixture(ExampleData.DeValues$CA1, sigmab = -1), "'sigmab' must be a value between 0 and 1") expect_error(calc_FiniteMixture(ExampleData.DeValues$CA1, sigmab = 0.2, n.components = 1), "At least two components need to be fitted") expect_error(calc_FiniteMixture(ExampleData.DeValues$CA1, sigmab = 0.2, n.components = 2, pdf.sigma = "error"), "'pdf.sigma' should be one of 'sigmab' or 'se'") expect_error(calc_FiniteMixture(ExampleData.DeValues$CA1, sigmab = 0.2, n.components = 2, pdf.colors = "error"), "'pdf.colors' should be one of 'gray', 'colors' or 'none'") }) test_that("check class and length of output", { testthat::skip_on_cran() ## simple run SW({ temp <- expect_s4_class(calc_FiniteMixture( ExampleData.DeValues$CA1, sigmab = 0.2, n.components = 2, grain.probability = TRUE, verbose = TRUE), "RLum.Results") }) ## check length of output expect_equal(length(temp), 10) ## check for numerical regression results <- get_RLum(temp) expect_equal(results$de[1], 31.5299) expect_equal(results$de[2], 72.0333) expect_equal(results$de_err[1], 3.6387) expect_equal(results$de_err[2], 2.4082) expect_equal(results$proportion[1], 0.1096) expect_equal(results$proportion[2], 0.8904) ## test plot SW({ expect_s4_class(calc_FiniteMixture( ExampleData.DeValues$CA1, sigmab = 0.2, n.components = 2:3, grain.probability = TRUE, trace = TRUE, main = "Plot title", verbose = TRUE), "RLum.Results") ## more coverage expect_warning(calc_FiniteMixture( ExampleData.DeValues$CA1[2:9, ], sigmab = 0.1, n.components = 3, verbose = TRUE), "The model produced NA values: either the input data are inapplicable") }) ## plot with plot_RLum.Results t <- expect_s4_class(calc_FiniteMixture( ExampleData.DeValues$CA1, sigmab = 0.2, n.components = 2:3, grain.probability = FALSE, trace = FALSE, plot = FALSE, main = "Plot title", verbose = FALSE), "RLum.Results") plot_RLum.Results(t, pdf.colors = "none") }) Luminescence/tests/testthat/_snaps/0000755000176200001440000000000014762554470017167 5ustar liggesusersLuminescence/tests/testthat/_snaps/smooth_RLum.md0000644000176200001440000006336014762554470021771 0ustar liggesusers# check class and length of output { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["OSL"] }, "curveType": { "type": "character", "attributes": {}, "value": [null] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1000, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["x", "y"] } ] } }, "value": [0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1, 1.04, 1.08, 1.12, 1.16, 1.2, 1.24, 1.28, 1.32, 1.36, 1.4, 1.44, 1.48, 1.52, 1.56, 1.6, 1.64, 1.68, 1.72, 1.76, 1.8, 1.84, 1.88, 1.92, 1.96, 2, 2.04, 2.08, 2.12, 2.16, 2.2, 2.24, 2.28, 2.32, 2.36, 2.4, 2.44, 2.48, 2.52, 2.56, 2.6, 2.64, 2.68, 2.72, 2.76, 2.8, 2.84, 2.88, 2.92, 2.96, 3, 3.04, 3.08, 3.12, 3.16, 3.2, 3.24, 3.28, 3.32, 3.36, 3.4, 3.44, 3.48, 3.52, 3.56, 3.6, 3.64, 3.68, 3.72, 3.76, 3.8, 3.84, 3.88, 3.92, 3.96, 4, 4.04, 4.08, 4.12, 4.16, 4.2, 4.24, 4.28, 4.32, 4.36, 4.4, 4.44, 4.48, 4.52, 4.56, 4.6, 4.64, 4.68, 4.72, 4.76, 4.8, 4.84, 4.88, 4.92, 4.96, 5, 5.04, 5.08, 5.12, 5.16, 5.2, 5.24, 5.28, 5.32, 5.36, 5.4, 5.44, 5.48, 5.52, 5.56, 5.6, 5.64, 5.68, 5.72, 5.76, 5.8, 5.84, 5.88, 5.92, 5.96, 6, 6.04, 6.08, 6.12, 6.16, 6.2, 6.24, 6.28, 6.32, 6.36, 6.4, 6.44, 6.48, 6.52, 6.56, 6.6, 6.64, 6.68, 6.72, 6.76, 6.8, 6.84, 6.88, 6.92, 6.96, 7, 7.04, 7.08, 7.12, 7.16, 7.2, 7.24, 7.28, 7.32, 7.36, 7.4, 7.44, 7.48, 7.52, 7.56, 7.6, 7.64, 7.68, 7.72, 7.76, 7.8, 7.84, 7.88, 7.92, 7.96, 8, 8.04, 8.08, 8.12, 8.16, 8.2, 8.24, 8.28, 8.32, 8.36, 8.4, 8.44, 8.48, 8.52, 8.56, 8.6, 8.64, 8.68, 8.72, 8.76, 8.8, 8.84, 8.88, 8.92, 8.96, 9, 9.04, 9.08, 9.12, 9.16, 9.2, 9.24, 9.28, 9.32, 9.36, 9.4, 9.44, 9.48, 9.52, 9.56, 9.6, 9.64, 9.68, 9.72, 9.76, 9.8, 9.84, 9.88, 9.92, 9.96, 10, 10.04, 10.08, 10.12, 10.16, 10.2, 10.24, 10.28, 10.32, 10.36, 10.4, 10.44, 10.48, 10.52, 10.56, 10.6, 10.64, 10.68, 10.72, 10.76, 10.8, 10.84, 10.88, 10.92, 10.96, 11, 11.04, 11.08, 11.12, 11.16, 11.2, 11.24, 11.28, 11.32, 11.36, 11.4, 11.44, 11.48, 11.52, 11.56, 11.6, 11.64, 11.68, 11.72, 11.76, 11.8, 11.84, 11.88, 11.92, 11.96, 12, 12.04, 12.08, 12.12, 12.16, 12.2, 12.24, 12.28, 12.32, 12.36, 12.4, 12.44, 12.48, 12.52, 12.56, 12.6, 12.64, 12.68, 12.72, 12.76, 12.8, 12.84, 12.88, 12.92, 12.96, 13, 13.04, 13.08, 13.12, 13.16, 13.2, 13.24, 13.28, 13.32, 13.36, 13.4, 13.44, 13.48, 13.52, 13.56, 13.6, 13.64, 13.68, 13.72, 13.76, 13.8, 13.84, 13.88, 13.92, 13.96, 14, 14.04, 14.08, 14.12, 14.16, 14.2, 14.24, 14.28, 14.32, 14.36, 14.4, 14.44, 14.48, 14.52, 14.56, 14.6, 14.64, 14.68, 14.72, 14.76, 14.8, 14.84, 14.88, 14.92, 14.96, 15, 15.04, 15.08, 15.12, 15.16, 15.2, 15.24, 15.28, 15.32, 15.36, 15.4, 15.44, 15.48, 15.52, 15.56, 15.6, 15.64, 15.68, 15.72, 15.76, 15.8, 15.84, 15.88, 15.92, 15.96, 16, 16.04, 16.08, 16.12, 16.16, 16.2, 16.24, 16.28, 16.32, 16.36, 16.4, 16.44, 16.48, 16.52, 16.56, 16.6, 16.64, 16.68, 16.72, 16.76, 16.8, 16.84, 16.88, 16.92, 16.96, 17, 17.04, 17.08, 17.12, 17.16, 17.2, 17.24, 17.28, 17.32, 17.36, 17.4, 17.44, 17.48, 17.52, 17.56, 17.6, 17.64, 17.68, 17.72, 17.76, 17.8, 17.84, 17.88, 17.92, 17.96, 18, 18.04, 18.08, 18.12, 18.16, 18.2, 18.24, 18.28, 18.32, 18.36, 18.4, 18.44, 18.48, 18.52, 18.56, 18.6, 18.64, 18.68, 18.72, 18.76, 18.8, 18.84, 18.88, 18.92, 18.96, 19, 19.04, 19.08, 19.12, 19.16, 19.2, 19.24, 19.28, 19.32, 19.36, 19.4, 19.44, 19.48, 19.52, 19.56, 19.6, 19.64, 19.68, 19.72, 19.76, 19.8, 19.84, 19.88, 19.92, 19.96, 20, 20.04, 20.08, 20.12, 20.16, 20.2, 20.24, 20.28, 20.32, 20.36, 20.4, 20.44, 20.48, 20.52, 20.56, 20.6, 20.64, 20.68, 20.72, 20.76, 20.8, 20.84, 20.88, 20.92, 20.96, 21, 21.04, 21.08, 21.12, 21.16, 21.2, 21.24, 21.28, 21.32, 21.36, 21.4, 21.44, 21.48, 21.52, 21.56, 21.6, 21.64, 21.68, 21.72, 21.76, 21.8, 21.84, 21.88, 21.92, 21.96, 22, 22.04, 22.08, 22.12, 22.16, 22.2, 22.24, 22.28, 22.32, 22.36, 22.4, 22.44, 22.48, 22.52, 22.56, 22.6, 22.64, 22.68, 22.72, 22.76, 22.8, 22.84, 22.88, 22.92, 22.96, 23, 23.04, 23.08, 23.12, 23.16, 23.2, 23.24, 23.28, 23.32, 23.36, 23.4, 23.44, 23.48, 23.52, 23.56, 23.6, 23.64, 23.68, 23.72, 23.76, 23.8, 23.84, 23.88, 23.92, 23.96, 24, 24.04, 24.08, 24.12, 24.16, 24.2, 24.24, 24.28, 24.32, 24.36, 24.4, 24.44, 24.48, 24.52, 24.56, 24.6, 24.64, 24.68, 24.72, 24.76, 24.8, 24.84, 24.88, 24.92, 24.96, 25, 25.04, 25.08, 25.12, 25.16, 25.2, 25.24, 25.28, 25.32, 25.36, 25.4, 25.44, 25.48, 25.52, 25.56, 25.6, 25.64, 25.68, 25.72, 25.76, 25.8, 25.84, 25.88, 25.92, 25.96, 26, 26.04, 26.08, 26.12, 26.16, 26.2, 26.24, 26.28, 26.32, 26.36, 26.4, 26.44, 26.48, 26.52, 26.56, 26.6, 26.64, 26.68, 26.72, 26.76, 26.8, 26.84, 26.88, 26.92, 26.96, 27, 27.04, 27.08, 27.12, 27.16, 27.2, 27.24, 27.28, 27.32, 27.36, 27.4, 27.44, 27.48, 27.52, 27.56, 27.6, 27.64, 27.68, 27.72, 27.76, 27.8, 27.84, 27.88, 27.92, 27.96, 28, 28.04, 28.08, 28.12, 28.16, 28.2, 28.24, 28.28, 28.32, 28.36, 28.4, 28.44, 28.48, 28.52, 28.56, 28.6, 28.64, 28.68, 28.72, 28.76, 28.8, 28.84, 28.88, 28.92, 28.96, 29, 29.04, 29.08, 29.12, 29.16, 29.2, 29.24, 29.28, 29.32, 29.36, 29.4, 29.44, 29.48, 29.52, 29.56, 29.6, 29.64, 29.68, 29.72, 29.76, 29.8, 29.84, 29.88, 29.92, 29.96, 30, 30.04, 30.08, 30.12, 30.16, 30.2, 30.24, 30.28, 30.32, 30.36, 30.4, 30.44, 30.48, 30.52, 30.56, 30.6, 30.64, 30.68, 30.72, 30.76, 30.8, 30.84, 30.88, 30.92, 30.96, 31, 31.04, 31.08, 31.12, 31.16, 31.2, 31.24, 31.28, 31.32, 31.36, 31.4, 31.44, 31.48, 31.52, 31.56, 31.6, 31.64, 31.68, 31.72, 31.76, 31.8, 31.84, 31.88, 31.92, 31.96, 32, 32.04, 32.08, 32.12, 32.16, 32.2, 32.24, 32.28, 32.32, 32.36, 32.4, 32.44, 32.48, 32.52, 32.56, 32.6, 32.64, 32.68, 32.72, 32.76, 32.8, 32.84, 32.88, 32.92, 32.96, 33, 33.04, 33.08, 33.12, 33.16, 33.2, 33.24, 33.28, 33.32, 33.36, 33.4, 33.44, 33.48, 33.52, 33.56, 33.6, 33.64, 33.68, 33.72, 33.76, 33.8, 33.84, 33.88, 33.92, 33.96, 34, 34.04, 34.08, 34.12, 34.16, 34.2, 34.24, 34.28, 34.32, 34.36, 34.4, 34.44, 34.48, 34.52, 34.56, 34.6, 34.64, 34.68, 34.72, 34.76, 34.8, 34.84, 34.88, 34.92, 34.96, 35, 35.04, 35.08, 35.12, 35.16, 35.2, 35.24, 35.28, 35.32, 35.36, 35.4, 35.44, 35.48, 35.52, 35.56, 35.6, 35.64, 35.68, 35.72, 35.76, 35.8, 35.84, 35.88, 35.92, 35.96, 36, 36.04, 36.08, 36.12, 36.16, 36.2, 36.24, 36.28, 36.32, 36.36, 36.4, 36.44, 36.48, 36.52, 36.56, 36.6, 36.64, 36.68, 36.72, 36.76, 36.8, 36.84, 36.88, 36.92, 36.96, 37, 37.04, 37.08, 37.12, 37.16, 37.2, 37.24, 37.28, 37.32, 37.36, 37.4, 37.44, 37.48, 37.52, 37.56, 37.6, 37.64, 37.68, 37.72, 37.76, 37.8, 37.84, 37.88, 37.92, 37.96, 38, 38.04, 38.08, 38.12, 38.16, 38.2, 38.24, 38.28, 38.32, 38.36, 38.4, 38.44, 38.48, 38.52, 38.56, 38.6, 38.64, 38.68, 38.72, 38.76, 38.8, 38.84, 38.88, 38.92, 38.96, 39, 39.04, 39.08, 39.12, 39.16, 39.2, 39.24, 39.28, 39.32, 39.36, 39.4, 39.44, 39.48, 39.52, 39.56, 39.6, 39.64, 39.68, 39.72, 39.76, 39.8, 39.84, 39.88, 39.92, 39.96, 40, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", 5997.5, 5127.2, 4405.8, 3763, 3248.3, 2820.1, 2444, 2129.4, 1851.5, 1617.4, 1423.7, 1254.2, 1107.6, 984.1, 866.9, 764.1, 682.5, 617.7, 557.7, 506.1, 457.6, 413.2, 377.7, 346.9, 320.7, 295.9, 266.5, 248.9, 229.5, 209.5, 197, 181.8, 174, 160.9, 151.9, 145.4, 139.1, 129.2, 120.8, 120.4, 115.7, 112, 104.4, 102.2, 98.9, 97, 94, 96, 95.8, 92.2, 90.2, 89, 86.4, 84.2, 84.2, 81.3, 81.9, 78.9, 79.2, 80.5, 81.1, 85, 87.6, 85.6, 83.9, 84.1, 82.4, 82.2, 80, 81.6, 79.3, 75.1, 71.6, 75.4, 74.9, 74.5, 72.5, 70.1, 69.1, 64.2, 64.3, 65.2, 64.6, 62.2, 63.7, 61.8, 62.7, 61.4, 61.3, 61, 61.1, 59.1, 61.3, 62.1, 59.5, 60.8, 59, 60.7, 61.1, 64.1, 61.6, 59.3, 58.2, 57.5, 57.8, 56.3, 59.2, 59.5, 57.6, 55.1, 55.8, 58, 58.8, 57.6, 56.5, 57.2, 56, 54.8, 56.9, 58.3, 58.6, 59, 58.9, 60.8, 62.3, 61.2, 60.3, 60.2, 57.9, 59.5, 59, 57.9, 56, 55.3, 54.5, 53.7, 53.1, 54.2, 55.1, 50.8, 52.1, 53.8, 55.2, 54.2, 53.7, 55.2, 55.5, 55.1, 56.5, 56.2, 53.3, 51.6, 49.8, 48.9, 49.1, 48.4, 48.1, 46.9, 44.2, 45, 48.7, 47.8, 48.9, 48.8, 46.8, 47, 46.1, 47.1, 47.7, 47.4, 44.3, 44.2, 43.7, 43.4, 44.4, 43.6, 45.5, 46.5, 47.2, 48.9, 48.7, 51.7, 50.8, 52.3, 53.4, 56.1, 54.4, 52.6, 52.4, 49.1, 47.8, 46.4, 47.2, 46.7, 46.6, 45.3, 44.8, 44.1, 44.3, 44.6, 46.2, 45, 42.7, 42.5, 42, 41.6, 43.1, 44.7, 42.6, 43.9, 44.2, 45.8, 47.5, 47.8, 46, 44.6, 45.5, 45.1, 46.2, 44.9, 43.9, 41.7, 41.6, 40.5, 41.6, 43.4, 40.9, 44.4, 43.4, 44.7, 45.2, 45.8, 44.6, 44.8, 45.7, 44.6, 47.5, 44, 44.6, 45, 46, 46.7, 48.5, 47.4, 46.4, 45.7, 43.5, 42.6, 42.2, 41.2, 41.2, 41.3, 39.8, 41.8, 41.4, 43.1, 44.1, 44.4, 45.6, 45.5, 44.5, 43.6, 43.8, 41.9, 41, 39.9, 39.4, 39.1, 38, 38.2, 37.1, 36.4, 36.5, 37.2, 38.4, 39.1, 38.5, 39, 39.6, 40.7, 42.3, 43.9, 45.6, 45.5, 46, 45.1, 44, 42.9, 43, 43.2, 42, 40.9, 39.9, 39.6, 39.8, 40.3, 40.4, 41.6, 41.8, 39.9, 40.2, 42.6, 41.7, 40.5, 40.6, 41.2, 42, 40.1, 38.7, 40.1, 40.8, 38.7, 40.7, 43, 43.4, 43, 43.7, 46.2, 47.4, 47.1, 46.2, 46.7, 45, 44, 41.7, 42.2, 40.7, 39.8, 39.7, 39.2, 38.8, 39.2, 40, 39.7, 39.6, 38.5, 39.4, 37.8, 36.6, 35.9, 36.8, 34.9, 33.6, 35.8, 36.7, 37.2, 37, 38.5, 38.6, 38.4, 39.5, 40.7, 42.2, 40, 40.7, 39, 38.5, 38.6, 39, 38.8, 35.9, 34.5, 33.3, 33.8, 34.4, 37.1, 36.3, 35.2, 35.5, 35.8, 36.8, 38.3, 39.8, 40.6, 40.2, 38.6, 40.2, 41.4, 40.3, 39.9, 42.7, 41.4, 38.7, 38.1, 37.6, 37.2, 38.2, 39.2, 38.8, 40.3, 37.5, 41.5, 43.2, 43.2, 43.7, 43.9, 41.9, 40.1, 41, 41.5, 41.8, 38.5, 37.2, 37.5, 36.9, 37.2, 38, 39.4, 39.4, 37.2, 37.2, 37.7, 38, 37.6, 36.3, 36.3, 36.7, 35.5, 36, 36.7, 37.2, 36.1, 36.5, 35, 36.2, 35.6, 35.6, 36.8, 37.7, 38.9, 38.4, 39, 40.4, 40.7, 41, 41.7, 39.6, 38.5, 37.1, 37.5, 37.4, 37, 35.4, 36.6, 37.6, 35.7, 37.4, 38.2, 38.3, 37.1, 37.3, 37, 37.2, 36.5, 34.6, 36.3, 36.3, 34.6, 35.4, 34.6, 34.9, 35.1, 34.8, 36.3, 36, 36.2, 37.2, 37.4, 37, 37.4, 37, 37.6, 37.5, 36.4, 37, 37.3, 36, 37.4, 37, 37.3, 38.2, 38.9, 38.3, 39, 39, 37.1, 36.1, 34.5, 34.8, 35.2, 34.9, 35, 35.3, 34.6, 36.1, 36.2, 37.3, 38.8, 38.5, 37, 36.9, 36.3, 37.4, 37.5, 35.9, 38.1, 39, 39.1, 39.4, 41, 40.8, 41.5, 41.4, 41.6, 41.7, 42.5, 41.3, 40.5, 39.5, 39.1, 39.4, 39, 39.2, 39.1, 38.6, 36.2, 36, 35.3, 36.6, 35.6, 35.3, 34.9, 35.1, 33.7, 34.6, 35.6, 35.7, 37.5, 37.1, 37.3, 36.9, 35.9, 33.9, 34.2, 33.1, 31.9, 33, 32.7, 32.8, 34.6, 33.9, 34, 36, 35.2, 35.2, 35.6, 33.3, 34, 34.4, 33.5, 33, 34, 34.5, 36.7, 37.3, 38.1, 39.6, 40.4, 39.8, 39.2, 40.7, 39.4, 37.8, 36.8, 38.2, 37, 38, 33.8, 35.1, 34.8, 35.1, 36.2, 36.8, 36.6, 36, 36.2, 33.7, 34, 32.6, 32.8, 31.8, 31.1, 30.2, 29.2, 28.6, 27.4, 28.7, 29.6, 30.7, 32, 33.1, 33.1, 34.2, 35.6, 35.5, 37.2, 36.8, 38, 37.3, 36.2, 35, 35.6, 36.2, 35.7, 35.1, 34.8, 35.9, 34, 32.8, 33.9, 32.3, 31, 29.4, 29.2, 28.7, 28, 26.8, 29.9, 30.3, 29.2, 29.6, 31.1, 31.9, 33.1, 34.7, 35.5, 35.3, 33.9, 33.3, 32.6, 35.7, 34.3, 34.1, 33.9, 33.8, 33.5, 34.9, 33.8, 34.4, 34.7, 33.8, 34.1, 35.1, 33.4, 32.7, 33.8, 33.1, 33.9, 33.7, 33.1, 33.5, 34.8, 34.5, 34, 35, 33.8, 35.4, 34.2, 36.4, 37.3, 35.1, 35.3, 33.8, 35.2, 32.9, 32.9, 31.5, 32, 31.7, 32.2, 32.7, 31.2, 30.9, 31.3, 33.4, 34.4, 35.2, 36.1, 34.3, 33.7, 34.2, 33.8, 33.5, 33.1, 33.2, 32.2, 30.8, 30.5, 32.1, 32.7, 32.6, 34.2, 37, 37.5, 36, 35.9, 35.8, 35.1, 32.7, 31.9, 31.3, 31.4, 29.9, 28.8, 28.9, 28.4, 29.6, 30.2, 30.7, 31.4, 31.9, 32.2, 31.3, 32.8, 32.4, 35.1, 34.8, 34, 34.6, 33.8, 35.2, 34.1, 34.6, 33.2, 33.5, 31.3, 30.7, 30.9, 30.5, 31.2, 29.7, 29.5, 29, 28.6, 29, 29.2, 29, 28.9, 27.9, 27.8, 28.3, 28.1, 29.1, 30.7, 30.9, 31.8, 32.4, 32.5, 34, 33.3, 32.6, 32.1, 31.1, 30.5, 29.8, 28.7, 28.5, 28.8, 28.9, 28.5, 28.4, 28.9, 28.6, 28.2, 31.8, 34.7, 35.3, 34.4, 35.5, 36.1, 36.2, 35.9, 36.4, 37.8, 34.6, 30.8, 30.3, 30.6, 29.8, 28.7, 29.8, 30.9, 31, 30.4, 30.8, 32, 31.2, 31.1, 30.5, 31.8, 32.1, 31.6, 32.1, 32.7, 33.3, 33.1, 33.8, 34.5, 34.7, 35.1, 34.2, 33.3, 31.7, 31, 29.7, 29.7, 29.9, 29.5, 31.2, 30.4, 30.1, 31, 31.9, 31.2, 31.3, 30.9, 29.1, 29.6, 26.9, 28, 27.9, 27, 28.4, 30.3, 30.7, 31, 32.1, 32.4, 32.1, 30.9, 29.8, 29.9, 29.1, 27.8, 28.5, 27.2, 26.8, 26.1, 26, 25.8, 27, 26.7, 25.8, 26.1, 24.7, 26.7, 27.1, 27.5, 29.9, 30.8, 30.9, 32.2, 31.7, 31.6, 31.8, 31.1, 30.6, 31.5, 30.7, 30.5, 31, 31.1, 32.2, 32.3, 32.7, 32.3, 33.5, 32.8, 32.9, 33, 31.9, 30.2, 31.1, 30.9, 30.9, 31.2, 30.1, 28.8, 28.6, 29.5, 29.4, 31.2, 30.1, 29.2, 29.4, 30.4, 29.3, 29.8, 29.6, 27.9, 29.6, 29.3, 28.8, 28.8, 28.9, 27.5, 30.1, 30.9, 31.3, 30.5, 29.4, 28.5, 30.2, 30.7, 30.3, 31, 30.2, 30.4, 29.3, 31.1, 31.3, 31.5, 31.4, 30.1, 29.4, 28.6, 27.7, 27, 27.6, 27.5, 28.2, 28.7, 29.1, 29.2, 29.4, 29.2, 28.4, 28.7, 28.3, 28.1, 27.4, 28.4, 27.5, 27.9, 29.5, 29.5, 31.1, 30.4, 30.5, 30.3, 29.7, 28.5, 28, 28.9, 27.9, 27.9, 27.8, 28.7, 28.2, 29.1, 31.2, 30.6, 30, 28.8, 29.2, 30, 29.5, 29.2, 30.3, 29.5, 26.8, 27.2, 29.6, 30.4, 29.8, 30.6, 31.1, 31.6, 30.6, 30.2, 30.7, 32.4, 31, 31.8, 33.6, 32.2, 32.6, 31.9, 34.2, 36.1, 37.1] }, "originator": { "type": "character", "attributes": {}, "value": ["eval"] }, "info": { "type": "list", "attributes": {}, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } # snapshot tests { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["OSL"] }, "curveType": { "type": "character", "attributes": {}, "value": [null] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [150, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", "144", "145", "146", "147", "148", "149", "150"] }, { "type": "character", "attributes": {}, "value": ["x", "y"] } ] } }, "value": [0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1, 1.04, 1.08, 1.12, 1.16, 1.2, 1.24, 1.28, 1.32, 1.36, 1.4, 1.44, 1.48, 1.52, 1.56, 1.6, 1.64, 1.68, 1.72, 1.76, 1.8, 1.84, 1.88, 1.92, 1.96, 2, 2.04, 2.08, 2.12, 2.16, 2.2, 2.24, 2.28, 2.32, 2.36, 2.4, 2.44, 2.48, 2.52, 2.56, 2.6, 2.64, 2.68, 2.72, 2.76, 2.8, 2.84, 2.88, 2.92, 2.96, 3, 3.04, 3.08, 3.12, 3.16, 3.2, 3.24, 3.28, 3.32, 3.36, 3.4, 3.44, 3.48, 3.52, 3.56, 3.6, 3.64, 3.68, 3.72, 3.76, 3.8, 3.84, 3.88, 3.92, 3.96, 4, 4.04, 4.08, 4.12, 4.16, 4.2, 4.24, 4.28, 4.32, 4.36, 4.4, 4.44, 4.48, 4.52, 4.56, 4.6, 4.64, 4.68, 4.72, 4.76, 4.8, 4.84, 4.88, 4.92, 4.96, 5, 5.04, 5.08, 5.12, 5.16, 5.2, 5.24, 5.28, 5.32, 5.36, 5.4, 5.44, 5.48, 5.52, 5.56, 5.6, 5.64, 5.68, 5.72, 5.76, 5.8, 5.84, 5.88, 5.92, 5.96, 6, "NA", "NA", "NA", "NA", 8229.2, 7017, 5992.2, 5098.6, 4373.8, 3765.8, 3237.4, 2819.4, 2427.4, 2122.8, 1874.4, 1650.6, 1439.4, 1275.6, 1112, 973, 857.8, 775.8, 692.6, 621.8, 555.2, 507.2, 459.6, 422.8, 390.4, 360, 319.2, 295.8, 271, 251, 231.8, 213.8, 202, 188, 168, 162.2, 149.8, 146, 133.8, 135.8, 128.6, 128.4, 112.4, 107.8, 105, 102.8, 95.6, 96.4, 96.6, 92.8, 91.2, 92.4, 95.6, 95, 91.6, 89.2, 85.6, 77.2, 73.4, 76.8, 73.4, 78.2, 80.6, 85, 84.2, 88.8, 91.8, 94.6, 86.2, 83.6, 79.4, 73, 69.8, 73.8, 79.6, 79.2, 77.2, 73.4, 77, 70.2, 69.8, 67.8, 66.8, 61.2, 58.2, 58.8, 62.6, 62.4, 63.2, 69.2, 64.8, 62.8, 60.4, 59.4, 52.8, 57.4, 55.4, 62.2, 64.8, 66.2, 64.2, 62.6, 59.2, 57.4, 62, 59, 56, 57.2, 57.6, 53.6, 53.6, 62.4, 61.8, 57.6, 56.6, 58, 53.6, 55.8, 57.6, 56.4, 56.4, 58.4, 53.8, 56.2, 60.2, 60.8, 59.6, 64, 65.4, 64.4, 61.6, 61, 56.4, 50.4, 54.6, 56.4, 54.8, 55.6, 60.2, 54.4, 51, 51.4, 52.8, 50, 47.2, 53.2] }, "originator": { "type": "character", "attributes": {}, "value": ["eval"] }, "info": { "type": "list", "attributes": {}, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["OSL"] }, "curveType": { "type": "character", "attributes": {}, "value": [null] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [150, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", "144", "145", "146", "147", "148", "149", "150"] }, { "type": "character", "attributes": {}, "value": ["x", "y"] } ] } }, "value": [0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1, 1.04, 1.08, 1.12, 1.16, 1.2, 1.24, 1.28, 1.32, 1.36, 1.4, 1.44, 1.48, 1.52, 1.56, 1.6, 1.64, 1.68, 1.72, 1.76, 1.8, 1.84, 1.88, 1.92, 1.96, 2, 2.04, 2.08, 2.12, 2.16, 2.2, 2.24, 2.28, 2.32, 2.36, 2.4, 2.44, 2.48, 2.52, 2.56, 2.6, 2.64, 2.68, 2.72, 2.76, 2.8, 2.84, 2.88, 2.92, 2.96, 3, 3.04, 3.08, 3.12, 3.16, 3.2, 3.24, 3.28, 3.32, 3.36, 3.4, 3.44, 3.48, 3.52, 3.56, 3.6, 3.64, 3.68, 3.72, 3.76, 3.8, 3.84, 3.88, 3.92, 3.96, 4, 4.04, 4.08, 4.12, 4.16, 4.2, 4.24, 4.28, 4.32, 4.36, 4.4, 4.44, 4.48, 4.52, 4.56, 4.6, 4.64, 4.68, 4.72, 4.76, 4.8, 4.84, 4.88, 4.92, 4.96, 5, 5.04, 5.08, 5.12, 5.16, 5.2, 5.24, 5.28, 5.32, 5.36, 5.4, 5.44, 5.48, 5.52, 5.56, 5.6, 5.64, 5.68, 5.72, 5.76, 5.8, 5.84, 5.88, 5.92, 5.96, 6, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", 5997.5, 5127.2, 4405.8, 3763, 3248.3, 2820.1, 2444, 2129.4, 1851.5, 1617.4, 1423.7, 1254.2, 1107.6, 984.1, 866.9, 764.1, 682.5, 617.7, 557.7, 506.1, 457.6, 413.2, 377.7, 346.9, 320.7, 295.9, 266.5, 248.9, 229.5, 209.5, 197, 181.8, 174, 160.9, 151.9, 145.4, 139.1, 129.2, 120.8, 120.4, 115.7, 112, 104.4, 102.2, 98.9, 97, 94, 96, 95.8, 92.2, 90.2, 89, 86.4, 84.2, 84.2, 81.3, 81.9, 78.9, 79.2, 80.5, 81.1, 85, 87.6, 85.6, 83.9, 84.1, 82.4, 82.2, 80, 81.6, 79.3, 75.1, 71.6, 75.4, 74.9, 74.5, 72.5, 70.1, 69.1, 64.2, 64.3, 65.2, 64.6, 62.2, 63.7, 61.8, 62.7, 61.4, 61.3, 61, 61.1, 59.1, 61.3, 62.1, 59.5, 60.8, 59, 60.7, 61.1, 64.1, 61.6, 59.3, 58.2, 57.5, 57.8, 56.3, 59.2, 59.5, 57.6, 55.1, 55.8, 58, 58.8, 57.6, 56.5, 57.2, 56, 54.8, 56.9, 58.3, 58.6, 59, 58.9, 60.8, 62.3, 61.2, 60.3, 60.2, 57.9, 59.5, 59, 57.9, 56, 55.3, 54.5, 53.7, 53.1, 54.2, 55.1, 50.8, 52.1] }, "originator": { "type": "character", "attributes": {}, "value": ["eval"] }, "info": { "type": "list", "attributes": {}, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["OSL"] }, "curveType": { "type": "character", "attributes": {}, "value": [null] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [150, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", "144", "145", "146", "147", "148", "149", "150"] }, { "type": "character", "attributes": {}, "value": ["x", "y"] } ] } }, "value": [0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1, 1.04, 1.08, 1.12, 1.16, 1.2, 1.24, 1.28, 1.32, 1.36, 1.4, 1.44, 1.48, 1.52, 1.56, 1.6, 1.64, 1.68, 1.72, 1.76, 1.8, 1.84, 1.88, 1.92, 1.96, 2, 2.04, 2.08, 2.12, 2.16, 2.2, 2.24, 2.28, 2.32, 2.36, 2.4, 2.44, 2.48, 2.52, 2.56, 2.6, 2.64, 2.68, 2.72, 2.76, 2.8, 2.84, 2.88, 2.92, 2.96, 3, 3.04, 3.08, 3.12, 3.16, 3.2, 3.24, 3.28, 3.32, 3.36, 3.4, 3.44, 3.48, 3.52, 3.56, 3.6, 3.64, 3.68, 3.72, 3.76, 3.8, 3.84, 3.88, 3.92, 3.96, 4, 4.04, 4.08, 4.12, 4.16, 4.2, 4.24, 4.28, 4.32, 4.36, 4.4, 4.44, 4.48, 4.52, 4.56, 4.6, 4.64, 4.68, 4.72, 4.76, 4.8, 4.84, 4.88, 4.92, 4.96, 5, 5.04, 5.08, 5.12, 5.16, 5.2, 5.24, 5.28, 5.32, 5.36, 5.4, 5.44, 5.48, 5.52, 5.56, 5.6, 5.64, 5.68, 5.72, 5.76, 5.8, 5.84, 5.88, 5.92, 5.96, 6, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", 5050, 4156, 3750, 3170, 2703, 2408, 2066, 1790, 1647, 1461, 1289, 1010, 971, 829, 766, 713, 600, 555, 475, 473, 433, 371, 362, 313, 281, 269, 247, 245, 213, 186, 185, 179, 177, 167, 156, 123, 120, 117, 116, 116, 116, 109, 109, 94, 94, 93, 93, 93, 91, 91, 90, 90, 89, 89, 86, 86, 77, 77, 77, 86, 86, 90, 90, 90, 86, 86, 77, 75, 75, 75, 74, 73, 73, 73, 72, 72, 70, 68, 65, 65, 65, 62, 66, 66, 62, 62, 62, 62, 61, 64, 61, 61, 64, 61, 61, 61, 57, 61, 64, 64, 57, 61, 61, 60, 60, 60, 60, 60, 58, 56, 56, 58, 56, 55, 55, 56, 55, 55, 56, 56, 57, 59, 59, 63, 63, 63, 59, 59, 59, 57, 54, 54, 54, 54, 49, 49, 49, 53, 53, 53] }, "originator": { "type": "character", "attributes": {}, "value": ["eval"] }, "info": { "type": "list", "attributes": {}, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/RLum.Analysis-class.md0000644000176200001440000045765014762554470023276 0ustar liggesusers# sort_RLum { "type": "S4", "attributes": { "protocol": { "type": "character", "attributes": {}, "value": ["SAR"] }, "records": { "type": "list", "attributes": {}, "value": [ { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["OSL (NA)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["predefined"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [5, 2] } }, "value": [0, 20, 90, 96, 216, 25, 125, 125, 60, 60] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "stimulator", "curveDescripter", "offset"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220354315860"] }, { "type": "character", "attributes": {}, "value": ["20140222035431"] }, { "type": "character", "attributes": {}, "value": ["predefined"] }, { "type": "character", "attributes": {}, "value": ["heating element"] }, { "type": "character", "attributes": {}, "value": ["t [s]; T [deg. C]"] }, { "type": "character", "attributes": {}, "value": ["0"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["OSL (NA)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["measured"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1150, 2] } }, "value": [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 50, 49, 48, 48, 48, 48, 48, 48, 48, 48, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 45, 45, 45, 45, 45, 45, 45, 44, 43, 43, 43, 44, 44, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 43, 43, 44, 44, 44, 44, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 45, 45, 46, 47, 47, 48, 49, 49, 50, 50, 51, 51, 52, 53, 53, 54, 54, 55, 56, 58, 59, 59, 60, 61, 62, 64, 65, 65, 65, 66, 66, 67, 67, 68, 69, 69, 70, 70, 71, 71, 72, 73, 73, 74, 75, 75, 76, 77, 78, 78, 79, 79, 80, 81, 82, 82, 83, 84, 85, 86, 86, 87, 87, 89, 89, 90, 90, 91, 90, 90, 91, 91, 92, 92, 92, 93, 93, 94, 95, 97, 97, 98, 98, 99, 100, 100, 101, 102, 103, 103, 103, 104, 105, 105, 106, 106, 107, 107, 107, 108, 109, 110, 110, 111, 111, 111, 112, 113, 113, 114, 114, 116, 116, 117, 117, 118, 119, 119, 119, 120, 121, 120, 121, 121, 122, 122, 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 123, 123, 124, 124, 124, 123, 124, 124, 124, 125, 125, 125, 125, 125, 125, 126, 126, 126, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 127, 126, 126, 126, 126, 126, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 125, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 125, 126, 126, 126, 126, 126, 126, 125, 126, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 125, 125, 126, 125, 125, 126, 126, 126, 126, 126, 125, 125, 125, 126, 126, 125, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 125, 125, 126, 126, 126, 125, 125, 126, 126, 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 125, 124, 124, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 124, 125, 125, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 125, 125, 124, 124, 124, 125, 125, 125, 125, 125, 125, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 125, 126, 127, 127, 127, 127, 127, 127, 127, 126, 126, 125, 125, 124, 125, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 126, 127, 127, 127, 125, 125, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 123, 123, 123, 123, 123, 123, 123, 123, 122, 122, 122, 121, 121, 121, 121, 120, 119, 119, 119, 118, 118, 118, 118, 117, 117, 117, 117, 116, 116, 116, 115, 115, 114, 114, 114, 113, 113, 113, 113, 112, 112, 112, 111, 111, 111, 110, 110, 109, 109, 109, 108, 108, 108, 108, 107, 107, 107, 106, 105, 105, 105, 105, 104, 104, 104, 103, 103, 103, 103, 102, 102, 102, 101, 101, 100, 100, 99, 99, 99, 98, 98, 97, 97, 97, 96, 96, 96, 95, 95, 95, 95, 95, 94, 94, 94, 93, 93, 93, 93, 92, 92, 91, 91, 92, 92, 91, 91, 91, 91, 90, 90, 90, 89, 89, 89, 88, 88, 88, 87, 87, 87, 86, 86, 86, 86, 86, 86, 85, 85, 85, 85, 85, 84, 84, 84, 83, 82, 82, 82, 82, 81, 81, 80, 80, 80, 80, 80, 80, 79, 79, 79, 79, 79, 79, 79, 79, 78, 78, 78, 77, 77, 77, 77, 76, 76, 75, 75, 75, 75, 75, 74, 74, 74, 74, 74, 74, 73, 73, 73, 73, 73, 72, 72, 72, 72, 72, 72, 71, 71, 71, 71, 70, 71, 71, 70, 70, 70, 70, 70, 70, 70, 70, 69, 68, 68, 68, 68, 67, 67, 67, 67, 67, 67, 67, 67, 66, 66, 66, 65, 65, 65, 65, 65, 65, 65, 65, 64, 64, 64, 64, 63, 63, 62, 62, 61, 60, 59, 59] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "stimulator", "curveDescripter"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220354315860"] }, { "type": "character", "attributes": {}, "value": ["20140222035431"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["heating element"] }, { "type": "character", "attributes": {}, "value": ["t [s]; T [deg. C]"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["OSL (NA)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["predefined"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [2, 2] } }, "value": [0, 50, 40, 40] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "stimulator", "curveDescripter", "offset"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220354315860"] }, { "type": "character", "attributes": {}, "value": ["20140222035431"] }, { "type": "character", "attributes": {}, "value": ["predefined"] }, { "type": "character", "attributes": {}, "value": ["blue_LED_458"] }, { "type": "character", "attributes": {}, "value": ["t [s]; optical power [mW/cm^2]"] }, { "type": "character", "attributes": {}, "value": ["40"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["OSL (NA)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["measured"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [150, 2] } }, "value": [0.497, 0.997, 1.497, 1.997, 2.497, 2.997, 3.497, 3.997, 4.497, 4.997, 5.497, 5.997, 6.497, 6.997, 7.497, 7.997, 8.497, 8.997, 9.497, 9.997, 10.497, 10.997, 11.497, 11.997, 12.497, 12.997, 13.497, 13.997, 14.497, 14.997, 15.497, 15.997, 16.497, 16.997, 17.497, 17.997, 18.497, 18.997, 19.497, 19.997, 20.497, 20.997, 21.497, 21.997, 22.497, 22.997, 23.497, 23.997, 24.497, 24.997, 25.497, 25.997, 26.497, 26.997, 27.497, 27.997, 28.497, 28.997, 29.497, 29.997, 30.497, 30.997, 31.497, 31.997, 32.497, 32.997, 33.497, 33.997, 34.497, 34.997, 35.497, 35.997, 36.497, 36.997, 37.497, 37.997, 38.497, 38.997, 39.497, 39.997, 40.497, 40.997, 41.497, 41.997, 42.497, 42.997, 43.497, 43.997, 44.497, 44.997, 45.497, 45.997, 46.497, 46.997, 47.497, 47.997, 48.497, 48.997, 49.497, 49.997, 50.497, 50.997, 51.497, 51.997, 52.497, 52.997, 53.497, 53.997, 54.497, 54.997, 55.497, 55.997, 56.497, 56.997, 57.497, 57.997, 58.497, 58.997, 59.497, 59.997, 60.497, 60.997, 61.497, 61.997, 62.497, 62.997, 63.497, 63.997, 64.497, 64.997, 65.497, 65.997, 66.497, 66.997, 67.497, 67.997, 68.497, 68.997, 69.497, 69.997, 70.497, 70.997, 71.497, 71.997, 72.497, 72.997, 73.497, 73.997, 74.497, 74.997, 39.8, 39.8, 40, 40.1, 40, 40, 40, 40.1, 39.9, 40, 40.2, 40, 39.9, 40.1, 40.1, 39.9, 40.1, 40.1, 40, 40, 40, 40, 40, 39.9, 39.9, 40, 39.9, 40, 40, 40, 40, 40, 40, 40, 40, 40, 39.9, 40, 40, 40, 40, 40.1, 40, 39.9, 40, 40.1, 40, 40, 40, 39.9, 40, 40, 39.9, 39.9, 40, 40, 40, 39.9, 40, 40, 39.9, 40, 39.9, 40, 40, 40, 40.1, 40.1, 40, 40, 40.1, 40, 40.1, 40.1, 39.9, 39.9, 40.1, 40.1, 40, 40, 40, 40, 39.9, 39.9, 40, 40, 39.9, 39.9, 39.9, 39.9, 40, 40, 40, 40.1, 40.1, 40, 40, 40, 39.9, 39.9, 40, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "stimulator", "curveDescripter", "offset"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220354315860"] }, { "type": "character", "attributes": {}, "value": ["20140222035431"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["blue_LED_458"] }, { "type": "character", "attributes": {}, "value": ["t [s]; optical power [mW/cm^2]"] }, { "type": "character", "attributes": {}, "value": ["40"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["OSL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["measured"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [500, 2] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 891, 775, 655, 497, 424, 328, 293, 199, 204, 157, 125, 108, 94, 85, 77, 61, 73, 50, 42, 41, 32, 42, 34, 43, 26, 41, 28, 29, 34, 35, 19, 18, 17, 33, 18, 18, 15, 31, 15, 14, 12, 16, 18, 12, 16, 15, 9, 21, 16, 17, 18, 17, 18, 13, 19, 12, 11, 11, 16, 9, 11, 15, 9, 12, 13, 16, 8, 16, 12, 16, 8, 15, 9, 7, 11, 15, 19, 14, 13, 18, 10, 16, 7, 14, 15, 11, 11, 14, 20, 12, 10, 16, 5, 11, 9, 15, 16, 15, 11, 14, 11, 12, 12, 12, 16, 9, 13, 19, 10, 8, 2, 4, 9, 11, 12, 14, 13, 8, 15, 4, 16, 28, 5, 16, 15, 14, 10, 13, 13, 14, 12, 14, 19, 16, 13, 14, 10, 11, 9, 20, 14, 13, 15, 20, 9, 17, 10, 13, 8, 15, 14, 9, 19, 14, 9, 11, 7, 14, 11, 18, 8, 8, 15, 15, 8, 0, 17, 16, 14, 12, 5, 12, 11, 16, 6, 13, 12, 9, 3, 13, 20, 12, 21, 4, 8, 9, 11, 20, 11, 12, 6, 11, 21, 16, 13, 7, 16, 9, 10, 15, 12, 8, 9, 16, 11, 17, 18, 10, 15, 9, 13, 7, 17, 12, 29, 15, 10, 11, 10, 21, 12, 5, 7, 14, 10, 14, 4, 16, 12, 15, 9, 16, 6, 13, 13, 18, 7, 13, 13, 10, 4, 22, 9, 16, 4, 12, 9, 29, 10, 19, 9, 20, 18, 14, 14, 12, 24, 8, 16, 7, 17, 9, 15, 11, 11, 16, 9, 18, 21, 6, 10, 6, 11, 12, 16, 14, 15, 17, 13, 9, 16, 15, 6, 12, 11, 19, 7, 10, 11, 7, 14, 17, 25, 18, 13, 18, 10, 21, 11, 10, 18, 9, 9, 8, 7, 15, 7, 19, 22, 6, 19, 15, 10, 12, 20, 12, 17, 12, 16, 15, 13, 19, 12, 20, 10, 15, 17, 18, 21, 9, 17, 10, 15, 8, 9, 11, 8, 2, 18, 8, 19, 24, 8, 11, 11, 11, 12, 16, 9, 13, 8, 12, 14, 9, 19, 19, 12, 7, 13, 11, 12, 13, 16, 16, 21, 5, 7, 14, 12, 20, 11, 15, 17, 11, 8, 10, 14, 11, 11, 10, 19, 23, 17, 6, 15, 9, 7, 8, 16, 12, 8, 12, 15, 15, 6, 10, 22, 16, 9, 11, 10, 17, 9, 10, 10, 13, 14, 9, 17, 20, 8, 13, 13, 5, 16, 15, 18, 12, 17, 11, 23, 17, 10, 11, 12, 11, 22, 9, 18, 12, 16, 11, 15, 16, 7, 13, 20, 9, 20, 15, 10, 10, 14, 14, 4, 12, 5, 15, 6, 14, 15, 11, 12, 14, 12, 8, 16, 7, 9, 10, 15, 12, 5, 11, 23, 5, 10, 16, 18, 12, 16, 16, 8, 17, 8, 12, 10, 14, 8, 10, 11, 19, 12, 9, 13, 20, 9, 13, 7, 16, 10, 14, 12, 12, 10, 7, 8, 12, 19, 16] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220354315860"] }, { "type": "character", "attributes": {}, "value": ["20140222035431"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["40"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["50"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (NA)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["predefined"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [5, 2] } }, "value": [0, 118, 128, 148, 268, 25, 260, 260, 60, 60] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "stimulator", "curveDescripter", "offset"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["predefined"] }, { "type": "character", "attributes": {}, "value": ["heating element"] }, { "type": "character", "attributes": {}, "value": ["t [s]; T [deg. C]"] }, { "type": "character", "attributes": {}, "value": ["0"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (NA)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["measured"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1740, 2] } }, "value": [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, 118.1, 118.2, 118.3, 118.4, 118.5, 118.6, 118.7, 118.8, 118.9, 119, 119.1, 119.2, 119.3, 119.4, 119.5, 119.6, 119.7, 119.8, 119.9, 120, 120.1, 120.2, 120.3, 120.4, 120.5, 120.6, 120.7, 120.8, 120.9, 121, 121.1, 121.2, 121.3, 121.4, 121.5, 121.6, 121.7, 121.8, 121.9, 122, 122.1, 122.2, 122.3, 122.4, 122.5, 122.6, 122.7, 122.8, 122.9, 123, 123.1, 123.2, 123.3, 123.4, 123.5, 123.6, 123.7, 123.8, 123.9, 124, 124.1, 124.2, 124.3, 124.4, 124.5, 124.6, 124.7, 124.8, 124.9, 125, 125.1, 125.2, 125.3, 125.4, 125.5, 125.6, 125.7, 125.8, 125.9, 126, 126.1, 126.2, 126.3, 126.4, 126.5, 126.6, 126.7, 126.8, 126.9, 127, 127.1, 127.2, 127.3, 127.4, 127.5, 127.6, 127.7, 127.8, 127.9, 128, 128.1, 128.2, 128.3, 128.4, 128.5, 128.6, 128.7, 128.8, 128.9, 129, 129.1, 129.2, 129.3, 129.4, 129.5, 129.6, 129.7, 129.8, 129.9, 130, 130.1, 130.2, 130.3, 130.4, 130.5, 130.6, 130.7, 130.8, 130.9, 131, 131.1, 131.2, 131.3, 131.4, 131.5, 131.6, 131.7, 131.8, 131.9, 132, 132.1, 132.2, 132.3, 132.4, 132.5, 132.6, 132.7, 132.8, 132.9, 133, 133.1, 133.2, 133.3, 133.4, 133.5, 133.6, 133.7, 133.8, 133.9, 134, 134.1, 134.2, 134.3, 134.4, 134.5, 134.6, 134.7, 134.8, 134.9, 135, 135.1, 135.2, 135.3, 135.4, 135.5, 135.6, 135.7, 135.8, 135.9, 136, 136.1, 136.2, 136.3, 136.4, 136.5, 136.6, 136.7, 136.8, 136.9, 137, 137.1, 137.2, 137.3, 137.4, 137.5, 137.6, 137.7, 137.8, 137.9, 138, 138.1, 138.2, 138.3, 138.4, 138.5, 138.6, 138.7, 138.8, 138.9, 139, 139.1, 139.2, 139.3, 139.4, 139.5, 139.6, 139.7, 139.8, 139.9, 140, 140.1, 140.2, 140.3, 140.4, 140.5, 140.6, 140.7, 140.8, 140.9, 141, 141.1, 141.2, 141.3, 141.4, 141.5, 141.6, 141.7, 141.8, 141.9, 142, 142.1, 142.2, 142.3, 142.4, 142.5, 142.6, 142.7, 142.8, 142.9, 143, 143.1, 143.2, 143.3, 143.4, 143.5, 143.6, 143.7, 143.8, 143.9, 144, 144.1, 144.2, 144.3, 144.4, 144.5, 144.6, 144.7, 144.8, 144.9, 145, 145.1, 145.2, 145.3, 145.4, 145.5, 145.6, 145.7, 145.8, 145.9, 146, 146.1, 146.2, 146.3, 146.4, 146.5, 146.6, 146.7, 146.8, 146.9, 147, 147.1, 147.2, 147.3, 147.4, 147.5, 147.6, 147.7, 147.8, 147.9, 148, 148.1, 148.2, 148.3, 148.4, 148.5, 148.6, 148.7, 148.8, 148.9, 149, 149.1, 149.2, 149.3, 149.4, 149.5, 149.6, 149.7, 149.8, 149.9, 150, 150.1, 150.2, 150.3, 150.4, 150.5, 150.6, 150.7, 150.8, 150.9, 151, 151.1, 151.2, 151.3, 151.4, 151.5, 151.6, 151.7, 151.8, 151.9, 152, 152.1, 152.2, 152.3, 152.4, 152.5, 152.6, 152.7, 152.8, 152.9, 153, 153.1, 153.2, 153.3, 153.4, 153.5, 153.6, 153.7, 153.8, 153.9, 154, 154.1, 154.2, 154.3, 154.4, 154.5, 154.6, 154.7, 154.8, 154.9, 155, 155.1, 155.2, 155.3, 155.4, 155.5, 155.6, 155.7, 155.8, 155.9, 156, 156.1, 156.2, 156.3, 156.4, 156.5, 156.6, 156.7, 156.8, 156.9, 157, 157.1, 157.2, 157.3, 157.4, 157.5, 157.6, 157.7, 157.8, 157.9, 158, 158.1, 158.2, 158.3, 158.4, 158.5, 158.6, 158.7, 158.8, 158.9, 159, 159.1, 159.2, 159.3, 159.4, 159.5, 159.6, 159.7, 159.8, 159.9, 160, 160.1, 160.2, 160.3, 160.4, 160.5, 160.6, 160.7, 160.8, 160.9, 161, 161.1, 161.2, 161.3, 161.4, 161.5, 161.6, 161.7, 161.8, 161.9, 162, 162.1, 162.2, 162.3, 162.4, 162.5, 162.6, 162.7, 162.8, 162.9, 163, 163.1, 163.2, 163.3, 163.4, 163.5, 163.6, 163.7, 163.8, 163.9, 164, 164.1, 164.2, 164.3, 164.4, 164.5, 164.6, 164.7, 164.8, 164.9, 165, 165.1, 165.2, 165.3, 165.4, 165.5, 165.6, 165.7, 165.8, 165.9, 166, 166.1, 166.2, 166.3, 166.4, 166.5, 166.6, 166.7, 166.8, 166.9, 167, 167.1, 167.2, 167.3, 167.4, 167.5, 167.6, 167.7, 167.8, 167.9, 168, 168.1, 168.2, 168.3, 168.4, 168.5, 168.6, 168.7, 168.8, 168.9, 169, 169.1, 169.2, 169.3, 169.4, 169.5, 169.6, 169.7, 169.8, 169.9, 170, 170.1, 170.2, 170.3, 170.4, 170.5, 170.6, 170.7, 170.8, 170.9, 171, 171.1, 171.2, 171.3, 171.4, 171.5, 171.6, 171.7, 171.8, 171.9, 172, 172.1, 172.2, 172.3, 172.4, 172.5, 172.6, 172.7, 172.8, 172.9, 173, 173.1, 173.2, 173.3, 173.4, 173.5, 173.6, 173.7, 173.8, 173.9, 26, 27, 26, 29, 29, 28, 28, 28, 27, 27, 27, 27, 27, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 26, 26, 26, 27, 27, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 26, 26, 26, 26, 27, 27, 27, 27, 27, 26, 27, 27, 27, 27, 26, 26, 27, 27, 27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 31, 31, 31, 31, 32, 32, 32, 33, 33, 33, 33, 33, 34, 34, 34, 35, 35, 35, 35, 36, 36, 37, 37, 37, 37, 38, 38, 38, 39, 39, 39, 39, 40, 40, 41, 41, 41, 41, 42, 42, 42, 43, 43, 43, 43, 43, 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 47, 47, 47, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 50, 50, 51, 51, 51, 51, 51, 51, 51, 52, 52, 52, 52, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 56, 57, 57, 58, 59, 60, 61, 62, 62, 63, 63, 63, 63, 63, 62, 62, 61, 61, 62, 62, 63, 63, 63, 63, 64, 64, 64, 64, 65, 65, 64, 64, 64, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 67, 67, 67, 67, 68, 68, 68, 68, 68, 69, 69, 69, 69, 70, 69, 69, 70, 70, 70, 70, 71, 71, 71, 71, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 76, 77, 77, 77, 77, 77, 77, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 80, 80, 80, 81, 80, 80, 81, 81, 81, 81, 81, 82, 82, 82, 83, 83, 83, 83, 83, 84, 84, 85, 86, 86, 86, 86, 86, 87, 87, 87, 87, 86, 86, 86, 87, 87, 87, 87, 88, 88, 88, 88, 89, 89, 90, 90, 90, 90, 90, 90, 90, 91, 90, 90, 90, 91, 91, 91, 91, 91, 92, 92, 92, 92, 93, 93, 93, 93, 93, 94, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 96, 96, 96, 96, 97, 97, 97, 97, 98, 98, 97, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 102, 102, 102, 102, 102, 103, 103, 103, 103, 103, 104, 104, 104, 105, 105, 105, 105, 105, 105, 106, 106, 106, 107, 106, 107, 107, 107, 107, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 110, 110, 110, 111, 111, 111, 111, 112, 111, 111, 111, 111, 111, 111, 111, 112, 112, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, 117, 117, 117, 118, 118, 118, 118, 118, 119, 119, 119, 119, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 125, 125, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 132, 132, 132, 132, 132, 133, 133, 133, 133, 133, 134, 134, 134, 134, 135, 135, 135, 135, 135, 136, 136, 136, 137, 137, 137, 137, 137, 137, 138, 137, 138, 138, 138, 138, 139, 139, 139, 140, 140, 140, 140, 141, 141, 141, 141, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 144, 145, 145, 146, 146, 147, 147, 148, 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 151, 151, 151, 151, 151, 152, 152, 152, 153, 153, 153, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 155, 155, 155, 155, 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, 158, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 160, 160, 160, 160, 161, 161, 161, 162, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 167, 167, 167, 167, 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 171, 171, 171, 171, 171, 171, 172, 172, 172, 173, 173, 173, 173, 174, 174, 174, 174, 174, 174, 175, 175, 175, 175, 175, 176, 176, 176, 176, 177, 177, 177, 177, 178, 178, 178, 178, 178, 178, 178, 180, 180, 180, 180, 181, 181, 181, 181, 181, 182, 180, 180, 181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 183, 184, 184, 184, 184, 185, 185, 185, 185, 186, 186, 186, 187, 187, 187, 187, 187, 187, 188, 188, 188, 188, 188, 188, 188, 188, 189, 189, 189, 189, 189, 190, 190, 190, 190, 191, 191, 191, 191, 192, 192, 192, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194, 195, 195, 195, 195, 196, 196, 196, 196, 197, 197, 197, 197, 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, 199, 198, 198, 199, 199, 199, 199, 200, 200, 200, 201, 201, 201, 201, 202, 202, 203, 203, 203, 203, 203, 203, 203, 203, 204, 204, 204, 205, 205, 205, 206, 206, 206, 207, 207, 207, 207, 207, 207, 207, 208, 208, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 210, 210, 210, 210, 211, 211, 211, 211, 211, 212, 212, 212, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 213, 214, 214, 214, 214, 214, 214, 214, 215, 215, 216, 216, 217, 217, 217, 217, 218, 218, 218, 218, 218, 219, 219, 219, 219, 220, 220, 220, 221, 221, 221, 221, 221, 221, 223, 222, 223, 223, 223, 223, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 225, 224, 224, 225, 225, 225, 225, 226, 226, 226, 226, 227, 227, 228, 228, 228, 228, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230, 230, 230, 231, 231, 231, 231, 231, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 233, 233, 234, 234, 234, 234, 235, 235, 235, 235, 235, 235, 235, 236, 236, 236, 236, 237, 237, 237, 237, 237, 238, 238, 238, 238, 238, 238, 239, 239, 239, 239, 239, 240, 240, 240, 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 244, 244, 244, 244, 245, 245, 245, 245, 245, 246, 245, 245, 246, 246, 245, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 248, 248, 248, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, 255, 255, 255, 256, 256, 256, 256, 257, 257, 257, 257, 257, 256, 257, 257, 257, 257, 257, 257, 257, 258, 258, 259, 259, 260, 260, 261, 261, 261, 261, 262, 262, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 261, 261, 261, 261, 261, 261, 261, 261, 262, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 260, 261, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 261, 261, 260, 260, 260, 259, 258, 258, 257, 257, 255, 254, 254, 254, 253, 253, 253, 253, 252, 251, 251, 250, 249, 249, 248, 247, 246, 245, 245, 244, 243, 242, 241, 240, 239, 239, 238, 237, 236, 235, 234, 233, 233, 232, 231, 230, 229, 229, 228, 227, 227, 226, 225, 224, 223, 223, 222, 221, 220, 219, 218, 217, 216, 215, 215, 214, 213, 213, 212, 211, 211, 210, 209, 208, 207, 207, 206, 205, 204, 203, 202, 202, 201, 200, 199, 199, 198, 197, 197, 197, 196, 195, 194, 194, 193, 192, 192, 191, 190, 189, 189, 188, 187, 186, 186, 185, 185, 184, 183, 183, 182, 181, 181, 180, 179, 179, 178, 177, 177, 176, 175, 175, 174, 173, 173, 172, 172, 171, 171, 170, 169, 169, 168, 167, 167, 166, 165, 165, 164, 164, 163, 163, 162, 161, 161, 160, 160, 159, 158, 158, 157, 157, 156, 155, 155, 154, 153, 153, 152, 152, 151, 151, 150, 149, 149, 148, 147, 147, 146, 145, 145, 145, 144, 144, 144, 144, 143, 143, 143, 142, 142, 141, 141, 140, 140, 139, 139, 138, 138, 137, 137, 136, 136, 135, 135, 134, 134, 133, 133, 133, 132, 132, 131, 131, 131, 130, 130, 129, 129, 128, 128, 127, 127, 126, 126, 125, 125, 125, 124, 124, 123, 123, 123, 123, 122, 122, 121, 121, 120, 120, 120, 119, 119, 118, 118, 117, 117, 117, 116, 116, 115, 115, 114, 114, 114, 113, 113, 112, 112, 112, 111, 111, 111, 111, 111, 110, 110, 109, 109, 109, 108, 108, 107, 107, 107, 106, 106, 105, 105, 105, 104, 104, 104, 104, 103, 103, 102, 102, 102, 102, 101, 101, 101, 100, 100, 101, 101, 101, 100, 100, 99, 99, 99, 98, 98, 97, 96, 96, 96, 96, 95, 95, 95, 95, 94, 94, 94, 93, 93, 93, 93, 92, 92, 92, 91, 91, 91, 90, 89, 89, 89, 88, 88, 88, 87, 87, 87, 87, 88, 87, 87, 87, 87, 87, 86, 86, 86, 85, 85, 85, 85, 84, 84, 84, 83, 83, 83, 83, 83, 82, 82, 82, 82, 81, 81, 81, 80, 80, 80, 80, 80, 79, 79, 79, 79, 79, 78, 78, 77, 77, 77, 77, 77, 76, 76, 76, 76, 76, 76, 75, 75, 75, 75, 74, 74, 73, 73, 73, 73, 73, 72, 72, 72, 72, 72, 72, 72, 71, 71, 71, 71, 71, 71, 71, 71, 70, 70, 70, 70, 70, 69, 69, 69, 69, 69, 68, 68, 68, 68, 67, 67, 67, 67, 67, 66, 66, 66, 66, 67, 66, 66, 66, 66, 66, 66, 66, 66, 66, 65, 65, 65, 65, 65, 64, 64, 64, 64, 63, 63, 62, 61, 60] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "stimulator", "curveDescripter"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["heating element"] }, { "type": "character", "attributes": {}, "value": ["t [s]; T [deg. C]"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["measured"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1180, 2] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, 9, 7, 7, 9, 20, 12, 13, 17, 10, 11, 13, 13, 10, 3, 12, 18, 11, 11, 12, 9, 10, 0, 15, 14, 14, 14, 14, 7, 18, 16, 10, 14, 10, 10, 5, 11, 17, 18, 11, 4, 11, 12, 21, 7, 18, 8, 19, 9, 14, 22, 12, 20, 16, 19, 10, 18, 20, 18, 14, 9, 9, 17, 26, 12, 13, 10, 12, 8, 12, 16, 9, 11, 18, 5, 9, 6, 8, 17, 18, 18, 11, 10, 16, 11, 14, 10, 10, 8, 15, 7, 11, 11, 16, 10, 14, 13, 11, 10, 8, 10, 9, 10, 13, 12, 15, 12, 6, 13, 10, 15, 14, 9, 4, 14, 15, 0, 19, 12, 10, 4, 16, 11, 19, 18, 3, 13, 15, 4, 13, 0, 10, 13, 12, 9, 12, 8, 10, 14, 14, 15, 12, 7, 14, 8, 22, 12, 14, 19, 13, 9, 19, 13, 14, 23, 15, 10, 15, 20, 19, 11, 11, 7, 9, 0, 10, 10, 8, 14, 10, 7, 10, 8, 9, 9, 10, 22, 14, 11, 17, 14, 8, 8, 15, 9, 13, 10, 12, 9, 20, 10, 9, 7, 8, 23, 16, 17, 11, 13, 17, 24, 14, 19, 11, 9, 13, 23, 10, 12, 22, 5, 11, 16, 17, 11, 16, 11, 9, 13, 12, 7, 13, 14, 21, 8, 4, 17, 19, 8, 13, 14, 11, 14, 15, 13, 15, 9, 17, 10, 16, 8, 8, 17, 8, 7, 19, 14, 17, 7, 14, 12, 11, 11, 15, 11, 18, 21, 13, 11, 13, 14, 10, 19, 13, 9, 8, 7, 19, 19, 10, 25, 13, 12, 8, 14, 18, 19, 6, 11, 9, 22, 18, 11, 14, 20, 12, 17, 9, 0, 9, 7, 5, 8, 11, 21, 35, 9, 12, 20, 10, 16, 13, 9, 14, 10, 13, 15, 0, 8, 6, 14, 19, 27, 12, 15, 8, 11, 13, 11, 7, 13, 15, 7, 16, 5, 7, 11, 15, 10, 9, 15, 14, 13, 8, 22, 15, 16, 11, 15, 7, 2, 9, 14, 10, 12, 12, 9, 16, 12, 15, 16, 13, 16, 15, 16, 8, 12, 17, 18, 9, 8, 16, 17, 19, 9, 6, 15, 4, 16, 6, 9, 8, 9, 10, 12, 18, 10, 11, 11, 16, 15, 9, 11, 11, 14, 9, 13, 9, 10, 14, 7, 10, 14, 20, 11, 14, 8, 14, 9, 9, 7, 21, 16, 11, 19, 14, 6, 11, 11, 7, 17, 14, 16, 8, 8, 14, 15, 9, 7, 11, 11, 7, 0, 10, 10, 15, 11, 15, 9, 12, 14, 7, 6, 15, 11, 11, 9, 4, 5, 11, 13, 10, 11, 14, 10, 13, 10, 11, 5, 12, 15, 12, 7, 15, 15, 15, 21, 22, 9, 11, 15, 10, 16, 13, 9, 12, 5, 9, 12, 6, 12, 17, 15, 11, 6, 15, 8, 4, 13, 20, 11, 11, 9, 8, 11, 20, 10, 11, 10, 13, 19, 16, 17, 10, 16, 13, 9, 15, 14, 8, 11, 15, 13, 21, 9, 15, 15, 8, 13, 11, 13, 11, 15, 11, 14, 15, 10, 25, 13, 14, 14, 14, 14, 4, 13, 10, 19, 12, 8, 11, 9, 10, 10, 10, 8, 10, 12, 10, 12, 18, 13, 12, 8, 11, 8, 11, 8, 15, 18, 8, 16, 8, 15, 16, 17, 6, 14, 20, 13, 9, 13, 9, 10, 8, 16, 11, 4, 6, 16, 18, 14, 15, 5, 6, 15, 16, 16, 6, 6, 5, 17, 7, 12, 21, 22, 12, 12, 15, 15, 17, 15, 14, 8, 12, 8, 9, 16, 14, 9, 19, 11, 26, 25, 12, 6, 20, 16, 6, 15, 0, 16, 7, 13, 18, 14, 30, 11, 19, 11, 21, 11, 10, 15, 7, 13, 12, 13, 15, 6, 15, 15, 17, 12, 12, 10, 14, 12, 9, 17, 22, 12, 10, 18, 27, 14, 18, 21, 18, 21, 21, 17, 16, 27, 29, 19, 23, 12, 17, 13, 18, 20, 19, 19, 22, 16, 16, 21, 13, 24, 25, 18, 22, 21, 23, 23, 19, 25, 15, 17, 19, 16, 22, 24, 26, 12, 26, 21, 19, 26, 15, 16, 24, 28, 16, 27, 30, 23, 28, 24, 28, 25, 31, 18, 16, 23, 13, 24, 17, 17, 38, 18, 42, 13, 18, 24, 31, 29, 31, 22, 33, 29, 24, 33, 28, 33, 39, 24, 34, 29, 25, 22, 24, 23, 30, 24, 52, 27, 29, 32, 35, 35, 30, 35, 41, 28, 40, 37, 35, 30, 31, 49, 35, 38, 26, 31, 23, 39, 30, 24, 39, 29, 31, 35, 42, 51, 38, 33, 42, 37, 39, 30, 46, 39, 46, 45, 40, 36, 34, 48, 42, 47, 36, 57, 50, 32, 41, 44, 39, 37, 47, 45, 52, 45, 60, 46, 44, 36, 43, 54, 41, 58, 47, 53, 40, 52, 47, 35, 58, 38, 44, 46, 51, 54, 52, 59, 61, 43, 50, 48, 57, 48, 51, 63, 48, 45, 60, 59, 51, 56, 54, 60, 70, 61, 63, 49, 55, 59, 51, 58, 62, 50, 59, 55, 53, 58, 73, 70, 59, 61, 46, 75, 58, 60, 61, 60, 62, 62, 47, 54, 49, 60, 69, 64, 58, 61, 65, 72, 62, 65, 62, 57, 57, 69, 70, 71, 53, 57, 57, 57, 82, 58, 54, 62, 64, 65, 52, 55, 46, 66, 60, 61, 49, 68, 57, 67, 60, 70, 54, 57, 71, 60, 58, 45, 45, 53, 49, 66, 50, 58, 43, 63, 42, 70, 52, 48, 60, 53, 52, 50, 56, 42, 53, 54, 35, 57, 46, 53, 50, 44, 61, 65, 50, 50, 39, 41, 49, 43, 48, 51, 56, 51, 42, 46, 64, 49, 49, 39, 54, 41, 49, 39, 46, 38, 36, 36, 38, 59, 34, 42, 38, 40, 34, 46, 37, 35, 44, 34, 30, 44, 32, 23, 34, 45, 27, 31, 33, 39, 27, 32, 42, 44, 37, 24, 35, 39, 27, 26, 34, 25, 35, 27, 34, 34, 33, 32, 30, 35, 44, 20, 30, 27, 30, 30, 25, 25, 32, 38, 27, 36, 27, 37, 27, 27, 29, 46, 26, 13, 44, 34, 29, 41, 36, 24, 21, 26, 28, 29, 40, 27, 22, 25, 31, 23, 24, 28, 27, 29, 33, 32, 20, 31, 28, 30, 32, 30, 22, 30, 30, 19, 27, 13, 25, 31, 34, 50, 34, 24, 27, 31, 31, 31, 21, 34, 43, 27, 44, 23, 22, 27, 43, 22, 27, 24, 25, 27, 29, 24, 31, 25, 32, 27, 27, 26, 31, 27, 27, 33, 21, 16, 37, 28, 31, 28, 35, 28, 34, 27, 40, 23, 19, 32, 31, 28, 47, 38, 28, 20, 28, 31, 24, 36, 29, 22, 38, 31, 21, 14, 33, 32, 31, 43, 29, 26, 31, 26, 36, 33, 30, 35, 32, 24, 43, 41, 33, 26, 24, 34, 41, 33, 25, 33, 35, 34, 32, 39, 17, 32, 29, 22, 34, 30, 39, 35, 24, 21, 23, 29, 39, 24, 33, 23, 28, 20, 37, 23, 20, 20, 36, 24, 21, 32, 34, 32, 25, 24, 27, 35, 33, 26, 33, 27] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["irradiation (NA)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["predefined"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [2, 2] } }, "value": [0, 15, 1, 1] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "stimulator", "curveDescripter", "offset"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220356485866"] }, { "type": "character", "attributes": {}, "value": ["20140222035649"] }, { "type": "character", "attributes": {}, "value": ["predefined"] }, { "type": "character", "attributes": {}, "value": ["radioactive souce - Beta"] }, { "type": "character", "attributes": {}, "value": ["t [s]; state"] }, { "type": "character", "attributes": {}, "value": ["0"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } ] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R"] }, "info": { "type": "list", "attributes": {}, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Analysis", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "protocol": { "type": "character", "attributes": {}, "value": ["SAR"] }, "records": { "type": "list", "attributes": {}, "value": [ { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (NA)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["predefined"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [5, 2] } }, "value": [0, 118, 128, 148, 268, 25, 260, 260, 60, 60] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "stimulator", "curveDescripter", "offset"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["predefined"] }, { "type": "character", "attributes": {}, "value": ["heating element"] }, { "type": "character", "attributes": {}, "value": ["t [s]; T [deg. C]"] }, { "type": "character", "attributes": {}, "value": ["0"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (NA)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["measured"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1740, 2] } }, "value": [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, 118.1, 118.2, 118.3, 118.4, 118.5, 118.6, 118.7, 118.8, 118.9, 119, 119.1, 119.2, 119.3, 119.4, 119.5, 119.6, 119.7, 119.8, 119.9, 120, 120.1, 120.2, 120.3, 120.4, 120.5, 120.6, 120.7, 120.8, 120.9, 121, 121.1, 121.2, 121.3, 121.4, 121.5, 121.6, 121.7, 121.8, 121.9, 122, 122.1, 122.2, 122.3, 122.4, 122.5, 122.6, 122.7, 122.8, 122.9, 123, 123.1, 123.2, 123.3, 123.4, 123.5, 123.6, 123.7, 123.8, 123.9, 124, 124.1, 124.2, 124.3, 124.4, 124.5, 124.6, 124.7, 124.8, 124.9, 125, 125.1, 125.2, 125.3, 125.4, 125.5, 125.6, 125.7, 125.8, 125.9, 126, 126.1, 126.2, 126.3, 126.4, 126.5, 126.6, 126.7, 126.8, 126.9, 127, 127.1, 127.2, 127.3, 127.4, 127.5, 127.6, 127.7, 127.8, 127.9, 128, 128.1, 128.2, 128.3, 128.4, 128.5, 128.6, 128.7, 128.8, 128.9, 129, 129.1, 129.2, 129.3, 129.4, 129.5, 129.6, 129.7, 129.8, 129.9, 130, 130.1, 130.2, 130.3, 130.4, 130.5, 130.6, 130.7, 130.8, 130.9, 131, 131.1, 131.2, 131.3, 131.4, 131.5, 131.6, 131.7, 131.8, 131.9, 132, 132.1, 132.2, 132.3, 132.4, 132.5, 132.6, 132.7, 132.8, 132.9, 133, 133.1, 133.2, 133.3, 133.4, 133.5, 133.6, 133.7, 133.8, 133.9, 134, 134.1, 134.2, 134.3, 134.4, 134.5, 134.6, 134.7, 134.8, 134.9, 135, 135.1, 135.2, 135.3, 135.4, 135.5, 135.6, 135.7, 135.8, 135.9, 136, 136.1, 136.2, 136.3, 136.4, 136.5, 136.6, 136.7, 136.8, 136.9, 137, 137.1, 137.2, 137.3, 137.4, 137.5, 137.6, 137.7, 137.8, 137.9, 138, 138.1, 138.2, 138.3, 138.4, 138.5, 138.6, 138.7, 138.8, 138.9, 139, 139.1, 139.2, 139.3, 139.4, 139.5, 139.6, 139.7, 139.8, 139.9, 140, 140.1, 140.2, 140.3, 140.4, 140.5, 140.6, 140.7, 140.8, 140.9, 141, 141.1, 141.2, 141.3, 141.4, 141.5, 141.6, 141.7, 141.8, 141.9, 142, 142.1, 142.2, 142.3, 142.4, 142.5, 142.6, 142.7, 142.8, 142.9, 143, 143.1, 143.2, 143.3, 143.4, 143.5, 143.6, 143.7, 143.8, 143.9, 144, 144.1, 144.2, 144.3, 144.4, 144.5, 144.6, 144.7, 144.8, 144.9, 145, 145.1, 145.2, 145.3, 145.4, 145.5, 145.6, 145.7, 145.8, 145.9, 146, 146.1, 146.2, 146.3, 146.4, 146.5, 146.6, 146.7, 146.8, 146.9, 147, 147.1, 147.2, 147.3, 147.4, 147.5, 147.6, 147.7, 147.8, 147.9, 148, 148.1, 148.2, 148.3, 148.4, 148.5, 148.6, 148.7, 148.8, 148.9, 149, 149.1, 149.2, 149.3, 149.4, 149.5, 149.6, 149.7, 149.8, 149.9, 150, 150.1, 150.2, 150.3, 150.4, 150.5, 150.6, 150.7, 150.8, 150.9, 151, 151.1, 151.2, 151.3, 151.4, 151.5, 151.6, 151.7, 151.8, 151.9, 152, 152.1, 152.2, 152.3, 152.4, 152.5, 152.6, 152.7, 152.8, 152.9, 153, 153.1, 153.2, 153.3, 153.4, 153.5, 153.6, 153.7, 153.8, 153.9, 154, 154.1, 154.2, 154.3, 154.4, 154.5, 154.6, 154.7, 154.8, 154.9, 155, 155.1, 155.2, 155.3, 155.4, 155.5, 155.6, 155.7, 155.8, 155.9, 156, 156.1, 156.2, 156.3, 156.4, 156.5, 156.6, 156.7, 156.8, 156.9, 157, 157.1, 157.2, 157.3, 157.4, 157.5, 157.6, 157.7, 157.8, 157.9, 158, 158.1, 158.2, 158.3, 158.4, 158.5, 158.6, 158.7, 158.8, 158.9, 159, 159.1, 159.2, 159.3, 159.4, 159.5, 159.6, 159.7, 159.8, 159.9, 160, 160.1, 160.2, 160.3, 160.4, 160.5, 160.6, 160.7, 160.8, 160.9, 161, 161.1, 161.2, 161.3, 161.4, 161.5, 161.6, 161.7, 161.8, 161.9, 162, 162.1, 162.2, 162.3, 162.4, 162.5, 162.6, 162.7, 162.8, 162.9, 163, 163.1, 163.2, 163.3, 163.4, 163.5, 163.6, 163.7, 163.8, 163.9, 164, 164.1, 164.2, 164.3, 164.4, 164.5, 164.6, 164.7, 164.8, 164.9, 165, 165.1, 165.2, 165.3, 165.4, 165.5, 165.6, 165.7, 165.8, 165.9, 166, 166.1, 166.2, 166.3, 166.4, 166.5, 166.6, 166.7, 166.8, 166.9, 167, 167.1, 167.2, 167.3, 167.4, 167.5, 167.6, 167.7, 167.8, 167.9, 168, 168.1, 168.2, 168.3, 168.4, 168.5, 168.6, 168.7, 168.8, 168.9, 169, 169.1, 169.2, 169.3, 169.4, 169.5, 169.6, 169.7, 169.8, 169.9, 170, 170.1, 170.2, 170.3, 170.4, 170.5, 170.6, 170.7, 170.8, 170.9, 171, 171.1, 171.2, 171.3, 171.4, 171.5, 171.6, 171.7, 171.8, 171.9, 172, 172.1, 172.2, 172.3, 172.4, 172.5, 172.6, 172.7, 172.8, 172.9, 173, 173.1, 173.2, 173.3, 173.4, 173.5, 173.6, 173.7, 173.8, 173.9, 26, 27, 26, 29, 29, 28, 28, 28, 27, 27, 27, 27, 27, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 26, 26, 26, 27, 27, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 26, 26, 26, 26, 27, 27, 27, 27, 27, 26, 27, 27, 27, 27, 26, 26, 27, 27, 27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 31, 31, 31, 31, 32, 32, 32, 33, 33, 33, 33, 33, 34, 34, 34, 35, 35, 35, 35, 36, 36, 37, 37, 37, 37, 38, 38, 38, 39, 39, 39, 39, 40, 40, 41, 41, 41, 41, 42, 42, 42, 43, 43, 43, 43, 43, 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 47, 47, 47, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 50, 50, 51, 51, 51, 51, 51, 51, 51, 52, 52, 52, 52, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 56, 57, 57, 58, 59, 60, 61, 62, 62, 63, 63, 63, 63, 63, 62, 62, 61, 61, 62, 62, 63, 63, 63, 63, 64, 64, 64, 64, 65, 65, 64, 64, 64, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 67, 67, 67, 67, 68, 68, 68, 68, 68, 69, 69, 69, 69, 70, 69, 69, 70, 70, 70, 70, 71, 71, 71, 71, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 76, 77, 77, 77, 77, 77, 77, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 80, 80, 80, 81, 80, 80, 81, 81, 81, 81, 81, 82, 82, 82, 83, 83, 83, 83, 83, 84, 84, 85, 86, 86, 86, 86, 86, 87, 87, 87, 87, 86, 86, 86, 87, 87, 87, 87, 88, 88, 88, 88, 89, 89, 90, 90, 90, 90, 90, 90, 90, 91, 90, 90, 90, 91, 91, 91, 91, 91, 92, 92, 92, 92, 93, 93, 93, 93, 93, 94, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 96, 96, 96, 96, 97, 97, 97, 97, 98, 98, 97, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 102, 102, 102, 102, 102, 103, 103, 103, 103, 103, 104, 104, 104, 105, 105, 105, 105, 105, 105, 106, 106, 106, 107, 106, 107, 107, 107, 107, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 110, 110, 110, 111, 111, 111, 111, 112, 111, 111, 111, 111, 111, 111, 111, 112, 112, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, 117, 117, 117, 118, 118, 118, 118, 118, 119, 119, 119, 119, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 125, 125, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 132, 132, 132, 132, 132, 133, 133, 133, 133, 133, 134, 134, 134, 134, 135, 135, 135, 135, 135, 136, 136, 136, 137, 137, 137, 137, 137, 137, 138, 137, 138, 138, 138, 138, 139, 139, 139, 140, 140, 140, 140, 141, 141, 141, 141, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 144, 145, 145, 146, 146, 147, 147, 148, 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 151, 151, 151, 151, 151, 152, 152, 152, 153, 153, 153, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 155, 155, 155, 155, 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, 158, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 160, 160, 160, 160, 161, 161, 161, 162, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 167, 167, 167, 167, 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 171, 171, 171, 171, 171, 171, 172, 172, 172, 173, 173, 173, 173, 174, 174, 174, 174, 174, 174, 175, 175, 175, 175, 175, 176, 176, 176, 176, 177, 177, 177, 177, 178, 178, 178, 178, 178, 178, 178, 180, 180, 180, 180, 181, 181, 181, 181, 181, 182, 180, 180, 181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 183, 184, 184, 184, 184, 185, 185, 185, 185, 186, 186, 186, 187, 187, 187, 187, 187, 187, 188, 188, 188, 188, 188, 188, 188, 188, 189, 189, 189, 189, 189, 190, 190, 190, 190, 191, 191, 191, 191, 192, 192, 192, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194, 195, 195, 195, 195, 196, 196, 196, 196, 197, 197, 197, 197, 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, 199, 198, 198, 199, 199, 199, 199, 200, 200, 200, 201, 201, 201, 201, 202, 202, 203, 203, 203, 203, 203, 203, 203, 203, 204, 204, 204, 205, 205, 205, 206, 206, 206, 207, 207, 207, 207, 207, 207, 207, 208, 208, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 210, 210, 210, 210, 211, 211, 211, 211, 211, 212, 212, 212, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 213, 214, 214, 214, 214, 214, 214, 214, 215, 215, 216, 216, 217, 217, 217, 217, 218, 218, 218, 218, 218, 219, 219, 219, 219, 220, 220, 220, 221, 221, 221, 221, 221, 221, 223, 222, 223, 223, 223, 223, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 225, 224, 224, 225, 225, 225, 225, 226, 226, 226, 226, 227, 227, 228, 228, 228, 228, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230, 230, 230, 231, 231, 231, 231, 231, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 233, 233, 234, 234, 234, 234, 235, 235, 235, 235, 235, 235, 235, 236, 236, 236, 236, 237, 237, 237, 237, 237, 238, 238, 238, 238, 238, 238, 239, 239, 239, 239, 239, 240, 240, 240, 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 244, 244, 244, 244, 245, 245, 245, 245, 245, 246, 245, 245, 246, 246, 245, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 248, 248, 248, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, 255, 255, 255, 256, 256, 256, 256, 257, 257, 257, 257, 257, 256, 257, 257, 257, 257, 257, 257, 257, 258, 258, 259, 259, 260, 260, 261, 261, 261, 261, 262, 262, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 261, 261, 261, 261, 261, 261, 261, 261, 262, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 260, 261, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 261, 261, 260, 260, 260, 259, 258, 258, 257, 257, 255, 254, 254, 254, 253, 253, 253, 253, 252, 251, 251, 250, 249, 249, 248, 247, 246, 245, 245, 244, 243, 242, 241, 240, 239, 239, 238, 237, 236, 235, 234, 233, 233, 232, 231, 230, 229, 229, 228, 227, 227, 226, 225, 224, 223, 223, 222, 221, 220, 219, 218, 217, 216, 215, 215, 214, 213, 213, 212, 211, 211, 210, 209, 208, 207, 207, 206, 205, 204, 203, 202, 202, 201, 200, 199, 199, 198, 197, 197, 197, 196, 195, 194, 194, 193, 192, 192, 191, 190, 189, 189, 188, 187, 186, 186, 185, 185, 184, 183, 183, 182, 181, 181, 180, 179, 179, 178, 177, 177, 176, 175, 175, 174, 173, 173, 172, 172, 171, 171, 170, 169, 169, 168, 167, 167, 166, 165, 165, 164, 164, 163, 163, 162, 161, 161, 160, 160, 159, 158, 158, 157, 157, 156, 155, 155, 154, 153, 153, 152, 152, 151, 151, 150, 149, 149, 148, 147, 147, 146, 145, 145, 145, 144, 144, 144, 144, 143, 143, 143, 142, 142, 141, 141, 140, 140, 139, 139, 138, 138, 137, 137, 136, 136, 135, 135, 134, 134, 133, 133, 133, 132, 132, 131, 131, 131, 130, 130, 129, 129, 128, 128, 127, 127, 126, 126, 125, 125, 125, 124, 124, 123, 123, 123, 123, 122, 122, 121, 121, 120, 120, 120, 119, 119, 118, 118, 117, 117, 117, 116, 116, 115, 115, 114, 114, 114, 113, 113, 112, 112, 112, 111, 111, 111, 111, 111, 110, 110, 109, 109, 109, 108, 108, 107, 107, 107, 106, 106, 105, 105, 105, 104, 104, 104, 104, 103, 103, 102, 102, 102, 102, 101, 101, 101, 100, 100, 101, 101, 101, 100, 100, 99, 99, 99, 98, 98, 97, 96, 96, 96, 96, 95, 95, 95, 95, 94, 94, 94, 93, 93, 93, 93, 92, 92, 92, 91, 91, 91, 90, 89, 89, 89, 88, 88, 88, 87, 87, 87, 87, 88, 87, 87, 87, 87, 87, 86, 86, 86, 85, 85, 85, 85, 84, 84, 84, 83, 83, 83, 83, 83, 82, 82, 82, 82, 81, 81, 81, 80, 80, 80, 80, 80, 79, 79, 79, 79, 79, 78, 78, 77, 77, 77, 77, 77, 76, 76, 76, 76, 76, 76, 75, 75, 75, 75, 74, 74, 73, 73, 73, 73, 73, 72, 72, 72, 72, 72, 72, 72, 71, 71, 71, 71, 71, 71, 71, 71, 70, 70, 70, 70, 70, 69, 69, 69, 69, 69, 68, 68, 68, 68, 67, 67, 67, 67, 67, 66, 66, 66, 66, 67, 66, 66, 66, 66, 66, 66, 66, 66, 66, 65, 65, 65, 65, 65, 64, 64, 64, 64, 63, 63, 62, 61, 60] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "stimulator", "curveDescripter"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["heating element"] }, { "type": "character", "attributes": {}, "value": ["t [s]; T [deg. C]"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["OSL (NA)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["predefined"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [5, 2] } }, "value": [0, 20, 90, 96, 216, 25, 125, 125, 60, 60] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "stimulator", "curveDescripter", "offset"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220354315860"] }, { "type": "character", "attributes": {}, "value": ["20140222035431"] }, { "type": "character", "attributes": {}, "value": ["predefined"] }, { "type": "character", "attributes": {}, "value": ["heating element"] }, { "type": "character", "attributes": {}, "value": ["t [s]; T [deg. C]"] }, { "type": "character", "attributes": {}, "value": ["0"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["OSL (NA)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["measured"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1150, 2] } }, "value": [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 50, 49, 48, 48, 48, 48, 48, 48, 48, 48, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 45, 45, 45, 45, 45, 45, 45, 44, 43, 43, 43, 44, 44, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 43, 43, 44, 44, 44, 44, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 45, 45, 46, 47, 47, 48, 49, 49, 50, 50, 51, 51, 52, 53, 53, 54, 54, 55, 56, 58, 59, 59, 60, 61, 62, 64, 65, 65, 65, 66, 66, 67, 67, 68, 69, 69, 70, 70, 71, 71, 72, 73, 73, 74, 75, 75, 76, 77, 78, 78, 79, 79, 80, 81, 82, 82, 83, 84, 85, 86, 86, 87, 87, 89, 89, 90, 90, 91, 90, 90, 91, 91, 92, 92, 92, 93, 93, 94, 95, 97, 97, 98, 98, 99, 100, 100, 101, 102, 103, 103, 103, 104, 105, 105, 106, 106, 107, 107, 107, 108, 109, 110, 110, 111, 111, 111, 112, 113, 113, 114, 114, 116, 116, 117, 117, 118, 119, 119, 119, 120, 121, 120, 121, 121, 122, 122, 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 123, 123, 124, 124, 124, 123, 124, 124, 124, 125, 125, 125, 125, 125, 125, 126, 126, 126, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 127, 126, 126, 126, 126, 126, 127, 127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 125, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 125, 126, 126, 126, 126, 126, 126, 125, 126, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 125, 125, 126, 125, 125, 126, 126, 126, 126, 126, 125, 125, 125, 126, 126, 125, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 125, 125, 126, 126, 126, 125, 125, 126, 126, 125, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 125, 124, 124, 125, 125, 125, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 124, 125, 125, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 125, 125, 124, 124, 124, 125, 125, 125, 125, 125, 125, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 126, 125, 126, 127, 127, 127, 127, 127, 127, 127, 126, 126, 125, 125, 124, 125, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 126, 127, 127, 127, 125, 125, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 123, 123, 123, 123, 123, 123, 123, 123, 122, 122, 122, 121, 121, 121, 121, 120, 119, 119, 119, 118, 118, 118, 118, 117, 117, 117, 117, 116, 116, 116, 115, 115, 114, 114, 114, 113, 113, 113, 113, 112, 112, 112, 111, 111, 111, 110, 110, 109, 109, 109, 108, 108, 108, 108, 107, 107, 107, 106, 105, 105, 105, 105, 104, 104, 104, 103, 103, 103, 103, 102, 102, 102, 101, 101, 100, 100, 99, 99, 99, 98, 98, 97, 97, 97, 96, 96, 96, 95, 95, 95, 95, 95, 94, 94, 94, 93, 93, 93, 93, 92, 92, 91, 91, 92, 92, 91, 91, 91, 91, 90, 90, 90, 89, 89, 89, 88, 88, 88, 87, 87, 87, 86, 86, 86, 86, 86, 86, 85, 85, 85, 85, 85, 84, 84, 84, 83, 82, 82, 82, 82, 81, 81, 80, 80, 80, 80, 80, 80, 79, 79, 79, 79, 79, 79, 79, 79, 78, 78, 78, 77, 77, 77, 77, 76, 76, 75, 75, 75, 75, 75, 74, 74, 74, 74, 74, 74, 73, 73, 73, 73, 73, 72, 72, 72, 72, 72, 72, 71, 71, 71, 71, 70, 71, 71, 70, 70, 70, 70, 70, 70, 70, 70, 69, 68, 68, 68, 68, 67, 67, 67, 67, 67, 67, 67, 67, 66, 66, 66, 65, 65, 65, 65, 65, 65, 65, 65, 64, 64, 64, 64, 63, 63, 62, 62, 61, 60, 59, 59] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "stimulator", "curveDescripter"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220354315860"] }, { "type": "character", "attributes": {}, "value": ["20140222035431"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["heating element"] }, { "type": "character", "attributes": {}, "value": ["t [s]; T [deg. C]"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["measured"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1180, 2] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, 9, 7, 7, 9, 20, 12, 13, 17, 10, 11, 13, 13, 10, 3, 12, 18, 11, 11, 12, 9, 10, 0, 15, 14, 14, 14, 14, 7, 18, 16, 10, 14, 10, 10, 5, 11, 17, 18, 11, 4, 11, 12, 21, 7, 18, 8, 19, 9, 14, 22, 12, 20, 16, 19, 10, 18, 20, 18, 14, 9, 9, 17, 26, 12, 13, 10, 12, 8, 12, 16, 9, 11, 18, 5, 9, 6, 8, 17, 18, 18, 11, 10, 16, 11, 14, 10, 10, 8, 15, 7, 11, 11, 16, 10, 14, 13, 11, 10, 8, 10, 9, 10, 13, 12, 15, 12, 6, 13, 10, 15, 14, 9, 4, 14, 15, 0, 19, 12, 10, 4, 16, 11, 19, 18, 3, 13, 15, 4, 13, 0, 10, 13, 12, 9, 12, 8, 10, 14, 14, 15, 12, 7, 14, 8, 22, 12, 14, 19, 13, 9, 19, 13, 14, 23, 15, 10, 15, 20, 19, 11, 11, 7, 9, 0, 10, 10, 8, 14, 10, 7, 10, 8, 9, 9, 10, 22, 14, 11, 17, 14, 8, 8, 15, 9, 13, 10, 12, 9, 20, 10, 9, 7, 8, 23, 16, 17, 11, 13, 17, 24, 14, 19, 11, 9, 13, 23, 10, 12, 22, 5, 11, 16, 17, 11, 16, 11, 9, 13, 12, 7, 13, 14, 21, 8, 4, 17, 19, 8, 13, 14, 11, 14, 15, 13, 15, 9, 17, 10, 16, 8, 8, 17, 8, 7, 19, 14, 17, 7, 14, 12, 11, 11, 15, 11, 18, 21, 13, 11, 13, 14, 10, 19, 13, 9, 8, 7, 19, 19, 10, 25, 13, 12, 8, 14, 18, 19, 6, 11, 9, 22, 18, 11, 14, 20, 12, 17, 9, 0, 9, 7, 5, 8, 11, 21, 35, 9, 12, 20, 10, 16, 13, 9, 14, 10, 13, 15, 0, 8, 6, 14, 19, 27, 12, 15, 8, 11, 13, 11, 7, 13, 15, 7, 16, 5, 7, 11, 15, 10, 9, 15, 14, 13, 8, 22, 15, 16, 11, 15, 7, 2, 9, 14, 10, 12, 12, 9, 16, 12, 15, 16, 13, 16, 15, 16, 8, 12, 17, 18, 9, 8, 16, 17, 19, 9, 6, 15, 4, 16, 6, 9, 8, 9, 10, 12, 18, 10, 11, 11, 16, 15, 9, 11, 11, 14, 9, 13, 9, 10, 14, 7, 10, 14, 20, 11, 14, 8, 14, 9, 9, 7, 21, 16, 11, 19, 14, 6, 11, 11, 7, 17, 14, 16, 8, 8, 14, 15, 9, 7, 11, 11, 7, 0, 10, 10, 15, 11, 15, 9, 12, 14, 7, 6, 15, 11, 11, 9, 4, 5, 11, 13, 10, 11, 14, 10, 13, 10, 11, 5, 12, 15, 12, 7, 15, 15, 15, 21, 22, 9, 11, 15, 10, 16, 13, 9, 12, 5, 9, 12, 6, 12, 17, 15, 11, 6, 15, 8, 4, 13, 20, 11, 11, 9, 8, 11, 20, 10, 11, 10, 13, 19, 16, 17, 10, 16, 13, 9, 15, 14, 8, 11, 15, 13, 21, 9, 15, 15, 8, 13, 11, 13, 11, 15, 11, 14, 15, 10, 25, 13, 14, 14, 14, 14, 4, 13, 10, 19, 12, 8, 11, 9, 10, 10, 10, 8, 10, 12, 10, 12, 18, 13, 12, 8, 11, 8, 11, 8, 15, 18, 8, 16, 8, 15, 16, 17, 6, 14, 20, 13, 9, 13, 9, 10, 8, 16, 11, 4, 6, 16, 18, 14, 15, 5, 6, 15, 16, 16, 6, 6, 5, 17, 7, 12, 21, 22, 12, 12, 15, 15, 17, 15, 14, 8, 12, 8, 9, 16, 14, 9, 19, 11, 26, 25, 12, 6, 20, 16, 6, 15, 0, 16, 7, 13, 18, 14, 30, 11, 19, 11, 21, 11, 10, 15, 7, 13, 12, 13, 15, 6, 15, 15, 17, 12, 12, 10, 14, 12, 9, 17, 22, 12, 10, 18, 27, 14, 18, 21, 18, 21, 21, 17, 16, 27, 29, 19, 23, 12, 17, 13, 18, 20, 19, 19, 22, 16, 16, 21, 13, 24, 25, 18, 22, 21, 23, 23, 19, 25, 15, 17, 19, 16, 22, 24, 26, 12, 26, 21, 19, 26, 15, 16, 24, 28, 16, 27, 30, 23, 28, 24, 28, 25, 31, 18, 16, 23, 13, 24, 17, 17, 38, 18, 42, 13, 18, 24, 31, 29, 31, 22, 33, 29, 24, 33, 28, 33, 39, 24, 34, 29, 25, 22, 24, 23, 30, 24, 52, 27, 29, 32, 35, 35, 30, 35, 41, 28, 40, 37, 35, 30, 31, 49, 35, 38, 26, 31, 23, 39, 30, 24, 39, 29, 31, 35, 42, 51, 38, 33, 42, 37, 39, 30, 46, 39, 46, 45, 40, 36, 34, 48, 42, 47, 36, 57, 50, 32, 41, 44, 39, 37, 47, 45, 52, 45, 60, 46, 44, 36, 43, 54, 41, 58, 47, 53, 40, 52, 47, 35, 58, 38, 44, 46, 51, 54, 52, 59, 61, 43, 50, 48, 57, 48, 51, 63, 48, 45, 60, 59, 51, 56, 54, 60, 70, 61, 63, 49, 55, 59, 51, 58, 62, 50, 59, 55, 53, 58, 73, 70, 59, 61, 46, 75, 58, 60, 61, 60, 62, 62, 47, 54, 49, 60, 69, 64, 58, 61, 65, 72, 62, 65, 62, 57, 57, 69, 70, 71, 53, 57, 57, 57, 82, 58, 54, 62, 64, 65, 52, 55, 46, 66, 60, 61, 49, 68, 57, 67, 60, 70, 54, 57, 71, 60, 58, 45, 45, 53, 49, 66, 50, 58, 43, 63, 42, 70, 52, 48, 60, 53, 52, 50, 56, 42, 53, 54, 35, 57, 46, 53, 50, 44, 61, 65, 50, 50, 39, 41, 49, 43, 48, 51, 56, 51, 42, 46, 64, 49, 49, 39, 54, 41, 49, 39, 46, 38, 36, 36, 38, 59, 34, 42, 38, 40, 34, 46, 37, 35, 44, 34, 30, 44, 32, 23, 34, 45, 27, 31, 33, 39, 27, 32, 42, 44, 37, 24, 35, 39, 27, 26, 34, 25, 35, 27, 34, 34, 33, 32, 30, 35, 44, 20, 30, 27, 30, 30, 25, 25, 32, 38, 27, 36, 27, 37, 27, 27, 29, 46, 26, 13, 44, 34, 29, 41, 36, 24, 21, 26, 28, 29, 40, 27, 22, 25, 31, 23, 24, 28, 27, 29, 33, 32, 20, 31, 28, 30, 32, 30, 22, 30, 30, 19, 27, 13, 25, 31, 34, 50, 34, 24, 27, 31, 31, 31, 21, 34, 43, 27, 44, 23, 22, 27, 43, 22, 27, 24, 25, 27, 29, 24, 31, 25, 32, 27, 27, 26, 31, 27, 27, 33, 21, 16, 37, 28, 31, 28, 35, 28, 34, 27, 40, 23, 19, 32, 31, 28, 47, 38, 28, 20, 28, 31, 24, 36, 29, 22, 38, 31, 21, 14, 33, 32, 31, 43, 29, 26, 31, 26, 36, 33, 30, 35, 32, 24, 43, 41, 33, 26, 24, 34, 41, 33, 25, 33, 35, 34, 32, 39, 17, 32, 29, 22, 34, 30, 39, 35, 24, 21, 23, 29, 39, 24, 33, 23, 28, 20, 37, 23, 20, 20, 36, 24, 21, 32, 34, 32, 25, 24, 27, 35, 33, 26, 33, 27] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["OSL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["measured"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [500, 2] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 891, 775, 655, 497, 424, 328, 293, 199, 204, 157, 125, 108, 94, 85, 77, 61, 73, 50, 42, 41, 32, 42, 34, 43, 26, 41, 28, 29, 34, 35, 19, 18, 17, 33, 18, 18, 15, 31, 15, 14, 12, 16, 18, 12, 16, 15, 9, 21, 16, 17, 18, 17, 18, 13, 19, 12, 11, 11, 16, 9, 11, 15, 9, 12, 13, 16, 8, 16, 12, 16, 8, 15, 9, 7, 11, 15, 19, 14, 13, 18, 10, 16, 7, 14, 15, 11, 11, 14, 20, 12, 10, 16, 5, 11, 9, 15, 16, 15, 11, 14, 11, 12, 12, 12, 16, 9, 13, 19, 10, 8, 2, 4, 9, 11, 12, 14, 13, 8, 15, 4, 16, 28, 5, 16, 15, 14, 10, 13, 13, 14, 12, 14, 19, 16, 13, 14, 10, 11, 9, 20, 14, 13, 15, 20, 9, 17, 10, 13, 8, 15, 14, 9, 19, 14, 9, 11, 7, 14, 11, 18, 8, 8, 15, 15, 8, 0, 17, 16, 14, 12, 5, 12, 11, 16, 6, 13, 12, 9, 3, 13, 20, 12, 21, 4, 8, 9, 11, 20, 11, 12, 6, 11, 21, 16, 13, 7, 16, 9, 10, 15, 12, 8, 9, 16, 11, 17, 18, 10, 15, 9, 13, 7, 17, 12, 29, 15, 10, 11, 10, 21, 12, 5, 7, 14, 10, 14, 4, 16, 12, 15, 9, 16, 6, 13, 13, 18, 7, 13, 13, 10, 4, 22, 9, 16, 4, 12, 9, 29, 10, 19, 9, 20, 18, 14, 14, 12, 24, 8, 16, 7, 17, 9, 15, 11, 11, 16, 9, 18, 21, 6, 10, 6, 11, 12, 16, 14, 15, 17, 13, 9, 16, 15, 6, 12, 11, 19, 7, 10, 11, 7, 14, 17, 25, 18, 13, 18, 10, 21, 11, 10, 18, 9, 9, 8, 7, 15, 7, 19, 22, 6, 19, 15, 10, 12, 20, 12, 17, 12, 16, 15, 13, 19, 12, 20, 10, 15, 17, 18, 21, 9, 17, 10, 15, 8, 9, 11, 8, 2, 18, 8, 19, 24, 8, 11, 11, 11, 12, 16, 9, 13, 8, 12, 14, 9, 19, 19, 12, 7, 13, 11, 12, 13, 16, 16, 21, 5, 7, 14, 12, 20, 11, 15, 17, 11, 8, 10, 14, 11, 11, 10, 19, 23, 17, 6, 15, 9, 7, 8, 16, 12, 8, 12, 15, 15, 6, 10, 22, 16, 9, 11, 10, 17, 9, 10, 10, 13, 14, 9, 17, 20, 8, 13, 13, 5, 16, 15, 18, 12, 17, 11, 23, 17, 10, 11, 12, 11, 22, 9, 18, 12, 16, 11, 15, 16, 7, 13, 20, 9, 20, 15, 10, 10, 14, 14, 4, 12, 5, 15, 6, 14, 15, 11, 12, 14, 12, 8, 16, 7, 9, 10, 15, 12, 5, 11, 23, 5, 10, 16, 18, 12, 16, 16, 8, 17, 8, 12, 10, 14, 8, 10, 11, 19, 12, 9, 13, 20, 9, 13, 7, 16, 10, 14, 12, 12, 10, 7, 8, 12, 19, 16] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220354315860"] }, { "type": "character", "attributes": {}, "value": ["20140222035431"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["40"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["50"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["OSL (NA)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["predefined"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [2, 2] } }, "value": [0, 50, 40, 40] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "stimulator", "curveDescripter", "offset"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220354315860"] }, { "type": "character", "attributes": {}, "value": ["20140222035431"] }, { "type": "character", "attributes": {}, "value": ["predefined"] }, { "type": "character", "attributes": {}, "value": ["blue_LED_458"] }, { "type": "character", "attributes": {}, "value": ["t [s]; optical power [mW/cm^2]"] }, { "type": "character", "attributes": {}, "value": ["40"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["OSL (NA)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["measured"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [150, 2] } }, "value": [0.497, 0.997, 1.497, 1.997, 2.497, 2.997, 3.497, 3.997, 4.497, 4.997, 5.497, 5.997, 6.497, 6.997, 7.497, 7.997, 8.497, 8.997, 9.497, 9.997, 10.497, 10.997, 11.497, 11.997, 12.497, 12.997, 13.497, 13.997, 14.497, 14.997, 15.497, 15.997, 16.497, 16.997, 17.497, 17.997, 18.497, 18.997, 19.497, 19.997, 20.497, 20.997, 21.497, 21.997, 22.497, 22.997, 23.497, 23.997, 24.497, 24.997, 25.497, 25.997, 26.497, 26.997, 27.497, 27.997, 28.497, 28.997, 29.497, 29.997, 30.497, 30.997, 31.497, 31.997, 32.497, 32.997, 33.497, 33.997, 34.497, 34.997, 35.497, 35.997, 36.497, 36.997, 37.497, 37.997, 38.497, 38.997, 39.497, 39.997, 40.497, 40.997, 41.497, 41.997, 42.497, 42.997, 43.497, 43.997, 44.497, 44.997, 45.497, 45.997, 46.497, 46.997, 47.497, 47.997, 48.497, 48.997, 49.497, 49.997, 50.497, 50.997, 51.497, 51.997, 52.497, 52.997, 53.497, 53.997, 54.497, 54.997, 55.497, 55.997, 56.497, 56.997, 57.497, 57.997, 58.497, 58.997, 59.497, 59.997, 60.497, 60.997, 61.497, 61.997, 62.497, 62.997, 63.497, 63.997, 64.497, 64.997, 65.497, 65.997, 66.497, 66.997, 67.497, 67.997, 68.497, 68.997, 69.497, 69.997, 70.497, 70.997, 71.497, 71.997, 72.497, 72.997, 73.497, 73.997, 74.497, 74.997, 39.8, 39.8, 40, 40.1, 40, 40, 40, 40.1, 39.9, 40, 40.2, 40, 39.9, 40.1, 40.1, 39.9, 40.1, 40.1, 40, 40, 40, 40, 40, 39.9, 39.9, 40, 39.9, 40, 40, 40, 40, 40, 40, 40, 40, 40, 39.9, 40, 40, 40, 40, 40.1, 40, 39.9, 40, 40.1, 40, 40, 40, 39.9, 40, 40, 39.9, 39.9, 40, 40, 40, 39.9, 40, 40, 39.9, 40, 39.9, 40, 40, 40, 40.1, 40.1, 40, 40, 40.1, 40, 40.1, 40.1, 39.9, 39.9, 40.1, 40.1, 40, 40, 40, 40, 39.9, 39.9, 40, 40, 39.9, 39.9, 39.9, 39.9, 40, 40, 40, 40.1, 40.1, 40, 40, 40, 39.9, 39.9, 40, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "stimulator", "curveDescripter", "offset"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220354315860"] }, { "type": "character", "attributes": {}, "value": ["20140222035431"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["blue_LED_458"] }, { "type": "character", "attributes": {}, "value": ["t [s]; optical power [mW/cm^2]"] }, { "type": "character", "attributes": {}, "value": ["40"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["irradiation (NA)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["predefined"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [2, 2] } }, "value": [0, 15, 1, 1] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R()"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "stimulator", "curveDescripter", "offset"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220356485866"] }, { "type": "character", "attributes": {}, "value": ["20140222035649"] }, { "type": "character", "attributes": {}, "value": ["predefined"] }, { "type": "character", "attributes": {}, "value": ["radioactive souce - Beta"] }, { "type": "character", "attributes": {}, "value": ["t [s]; state"] }, { "type": "character", "attributes": {}, "value": ["0"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } ] }, "originator": { "type": "character", "attributes": {}, "value": ["read_XSYG2R"] }, "info": { "type": "list", "attributes": {}, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Analysis", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/convert_Second2Gray.md0000644000176200001440000001602114762554470023371 0ustar liggesusers# snapshot tests { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] } }, "value": [ { "type": "double", "attributes": {}, "value": [691.68, 694.44, 757.07, 621.68, 659.44, 563.66, 564.58, 580.24, 571.03, 568.26, 541.55, 584.84, 505.83, 552.58, 566.61, 569.41, 564.74, 576.89, 587.18, 600.27, 583.44, 598.4, 576.89, 527.34, 546.04] }, { "type": "double", "attributes": {}, "value": [24.354, 23.49, 31.072, 21.04, 21.196, 20.414, 19.302, 20.074, 21.14, 19.432, 18.488, 20.126, 16.898, 19.12, 18.856, 18.462, 19.46, 19.304, 19.426, 20.31, 19.77, 22.936, 19.714, 15.886, 17.422] } ] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] } }, "value": [ { "type": "double", "attributes": {}, "value": [691.68, 694.44, 757.07, 621.68, 659.44, 563.66, 564.58, 580.24, 571.03, 568.26, 541.55, 584.84, 505.83, 552.58, 566.61, 569.41, 564.74, 576.89, 587.18, 600.27, 583.44, 598.4, 576.89, 527.34, 546.04] }, { "type": "double", "attributes": {}, "value": [42.299, 41.921, 48.973, 37.535, 39.197, 34.8, 34.197, 35.28, 35.526, 34.423, 32.787, 35.499, 30.417, 33.6, 34.032, 33.933, 34.293, 34.708, 35.204, 36.239, 35.24, 37.7, 34.938, 30.783, 32.387] } ] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] } }, "value": [ { "type": "double", "attributes": {}, "value": [691.68, 694.44, 757.07, 621.68, 659.44, 563.66, 564.58, 580.24, 571.03, 568.26, 541.55, 584.84, 505.83, 552.58, 566.61, 569.41, 564.74, 576.89, 587.18, 600.27, 583.44, 598.4, 576.89, 527.34, 546.04] }, { "type": "double", "attributes": {}, "value": [58.938, 58.212, 68.926, 52.124, 54.168, 48.597, 47.531, 49.086, 49.691, 47.845, 45.566, 49.368, 42.19, 46.749, 47.186, 46.933, 47.697, 48.149, 48.785, 50.323, 48.942, 52.856, 48.559, 42.253, 44.724] } ] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] } }, "value": [ { "type": "double", "attributes": {}, "value": [2392106.11, 2411241.51, 2865782.5, 1932436.33, 2174318.76, 1588562.98, 1593752.88, 1683386.49, 1630370.59, 1614608.5, 1466392.84, 1710194.98, 1279330.06, 1526728.81, 1605223.13, 1621144.43, 1594645.04, 1664016.13, 1723890.02, 1801608.36, 1701999.5, 1790400.83, 1664016.13, 1390432.1, 1490792.95] }, { "type": "double", "attributes": {}, "value": [119113.373, 115346.222, 166337.749, 92490.757, 98836.081, 81363.632, 77057.125, 82361.802, 85358.77, 78082.034, 70797.04, 83230.074, 60440.3, 74708.297, 75547.009, 74334.359, 77709.632, 78745.56, 80656.275, 86206.521, 81561.721, 97049.391, 80418.046, 59236.508, 67267.715] } ] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] } }, "value": [ { "type": "double", "attributes": {}, "value": [2392106.11, 2411241.51, 2865782.5, 1932436.33, 2174318.76, 1588562.98, 1593752.88, 1683386.49, 1630370.59, 1614608.5, 1466392.84, 1710194.98, 1279330.06, 1526728.81, 1605223.13, 1621144.43, 1594645.04, 1664016.13, 1723890.02, 1801608.36, 1701999.5, 1790400.83, 1664016.13, 1390432.1, 1490792.95] }, { "type": "double", "attributes": {}, "value": [168451.747, 163124.191, 235237.101, 130801.682, 139775.326, 115065.552, 108975.232, 116477.177, 120715.531, 110424.672, 100122.134, 117705.1, 85475.491, 105653.487, 106839.604, 105124.659, 109898.015, 111363.039, 114065.198, 121914.431, 115345.693, 137248.565, 113728.292, 83773.074, 95130.915] } ] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] } }, "value": [ { "type": "double", "attributes": {}, "value": [546.62, 548.8, 598.29, 491.3, 521.14, 445.45, 446.17, 458.55, 451.27, 449.08, 427.98, 462.19, 399.75, 436.69, 447.77, 449.99, 446.3, 455.9, 464.03, 474.37, 461.07, 472.9, 455.9, 416.74, 431.52] }, { "type": "double", "attributes": {}, "value": [19.246, 18.564, 24.555, 16.627, 16.751, 16.133, 15.254, 15.864, 16.706, 15.357, 14.611, 15.905, 13.354, 15.11, 14.901, 14.59, 15.379, 15.255, 15.352, 16.05, 15.624, 18.126, 15.579, 12.554, 13.768] } ] } Luminescence/tests/testthat/_snaps/calc_MoransI.md0000644000176200001440000003374114762554470022053 0ustar liggesusers# check functionality { "type": "double", "attributes": {}, "value": [0.88888889] } --- { "type": "double", "attributes": {}, "value": [0.54545455] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["n", "n_mean", "n_population_variance", "n_sum_similarities", "n_sum_weights", "n_average_auto_correlation", "n_moransI"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [100] }, { "type": "double", "attributes": {}, "value": [1.5] }, { "type": "double", "attributes": {}, "value": [0.25] }, { "type": "double", "attributes": {}, "value": [40] }, { "type": "double", "attributes": {}, "value": [180] }, { "type": "double", "attributes": {}, "value": [0.22222222] }, { "type": "double", "attributes": {}, "value": [0.88888889] } ] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["n", "n_mean", "n_population_variance", "n_sum_similarities", "n_sum_weights", "n_average_auto_correlation", "n_moransI", "pseudo_p"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [100] }, { "type": "double", "attributes": {}, "value": [1.5] }, { "type": "double", "attributes": {}, "value": [0.25] }, { "type": "double", "attributes": {}, "value": [40] }, { "type": "double", "attributes": {}, "value": [180] }, { "type": "double", "attributes": {}, "value": [0.22222222] }, { "type": "double", "attributes": {}, "value": [0.88888889] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["pseudo_p", "tested_moransI", "n_permutations"] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.046] }, { "type": "double", "attributes": {}, "value": [0.125] }, { "type": "double", "attributes": {}, "value": [999] } ] } ] } # check .get_Neighbours { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["location", "neighbour", "weight"] }, "row.names": { "type": "integer", "attributes": {}, "value": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 144, 145, 146, 147, 148, 149, 150, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 182, 183, 184, 185, 186, 187, 188, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200] }, "na.action": { "type": "integer", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "101", "111", "121", "131", "141", "151", "161", "171", "181", "191"] }, "class": { "type": "character", "attributes": {}, "value": ["omit"] } }, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 101, 111, 121, 131, 141, 151, 161, 171, 181, 191] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 98, 99, 100] }, { "type": "double", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99] }, { "type": "double", "attributes": {}, "value": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] } ] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["location", "neighbour", "weight"] }, "na.action": { "type": "integer", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "101", "111", "121", "131", "141", "151", "161", "171", "181", "191"] }, "class": { "type": "character", "attributes": {}, "value": ["omit"] } }, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 101, 111, 121, 131, 141, 151, 161, 171, 181, 191] }, "row.names": { "type": "integer", "attributes": {}, "value": [22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 45, 46, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 67, 68, 69, 72, 73, 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 87, 88, 89, 113, 114, 115, 116, 117, 118, 119, 123, 124, 125, 126, 127, 128, 129, 133, 134, 135, 136, 137, 138, 139, 143, 144, 145, 146, 147, 148, 149, 153, 154, 155, 156, 157, 158, 159, 163, 164, 165, 166, 167, 168, 169, 173, 174, 175, 176, 177, 178, 179, 183, 184, 185, 186, 187, 188, 189] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 45, 46, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 67, 68, 69, 72, 73, 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 87, 88, 89, 13, 14, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 33, 34, 35, 36, 37, 38, 39, 43, 44, 45, 46, 47, 48, 49, 53, 54, 55, 56, 57, 58, 59, 63, 64, 65, 66, 67, 68, 69, 73, 74, 75, 76, 77, 78, 79, 83, 84, 85, 86, 87, 88, 89] }, { "type": "double", "attributes": {}, "value": [12, 13, 14, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 45, 46, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 67, 68, 69, 72, 73, 74, 75, 76, 77, 78, 79, 12, 13, 14, 15, 16, 17, 18, 22, 23, 24, 25, 26, 27, 28, 32, 33, 34, 35, 36, 37, 38, 42, 43, 44, 45, 46, 47, 48, 52, 53, 54, 55, 56, 57, 58, 62, 63, 64, 65, 66, 67, 68, 72, 73, 74, 75, 76, 77, 78, 82, 83, 84, 85, 86, 87, 88] }, { "type": "double", "attributes": {}, "value": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] } ] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["location", "neighbour", "weight"] }, "na.action": { "type": "integer", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "101", "111", "121", "131", "141", "151", "161", "171", "181", "191"] }, "class": { "type": "character", "attributes": {}, "value": ["omit"] } }, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 101, 111, 121, 131, 141, 151, 161, 171, 181, 191] }, "row.names": { "type": "integer", "attributes": {}, "value": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 144, 145, 146, 147, 148, 149, 150, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 182, 183, 184, 185, 186, 187, 188, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 98, 99] }, { "type": "double", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 95, 96, 97, 98] }, { "type": "double", "attributes": {}, "value": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] } ] } Luminescence/tests/testthat/_snaps/calc_Huntley2006.md0000644000176200001440000103526114762554470022443 0ustar liggesusers# Further tests calc_Huntley2006 { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["results", "data", "Ln", "LxTx_tables", "fits"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["nN", "nN.error", "nN_SS", "nN_SS.error", "Meas_De", "Meas_De.error", "Meas_D0", "Meas_D0.error", "Meas_Age", "Meas_Age.error", "Sim_De", "Sim_De.error", "Sim_D0", "Sim_D0.error", "Sim_Age", "Sim_Age.error", "Sim_Age_2D0", "Sim_Age_2D0.error", "Unfaded_D0", "Unfaded_D0.error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.1456931] }, { "type": "double", "attributes": {}, "value": [0.01799262] }, { "type": "double", "attributes": {}, "value": [0.36906516] }, { "type": "double", "attributes": {}, "value": [0.07836492] }, { "type": "double", "attributes": {}, "value": [0.30610634] }, { "type": "double", "attributes": {}, "value": [0.01603255] }, { "type": "double", "attributes": {}, "value": [524.92193251] }, { "type": "double", "attributes": {}, "value": [18.47145576] }, { "type": "double", "attributes": {}, "value": [0.04372948] }, { "type": "double", "attributes": {}, "value": [0.00316655] }, { "type": "double", "attributes": {}, "value": [4.68201145] }, { "type": "double", "attributes": {}, "value": [0.13620864] }, { "type": "double", "attributes": {}, "value": [548.35921816] }, { "type": "double", "attributes": {}, "value": [5.50431618] }, { "type": "double", "attributes": {}, "value": [0.66885878] }, { "type": "double", "attributes": {}, "value": [0.03869373] }, { "type": "double", "attributes": {}, "value": [156.67406233] }, { "type": "double", "attributes": {}, "value": [7.99050592] }, { "type": "double", "attributes": {}, "value": [599.06426281] }, { "type": "double", "attributes": {}, "value": [14.51566878] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 0, 200, 400, 1000, 2000, 4000, 8000, 16000, 32000, 0, 200, 0, 200, 400, 1000, 2000, 4000, 8000, 16000, 32000, 0, 200, 0, 200, 400, 1000, 2000, 4000, 8000, 16000, 32000, 0, 200] }, { "type": "double", "attributes": {}, "value": [2.04833, 0.004, 0.512, 0.986, 2.193, 3.702, 5.76, 8.035, 9.526, 9.779, 0.013, 0.517, 0.003, 0.516, 0.98, 2.152, 3.637, 5.629, 7.704, 9.158, 9.368, 0.013, 0.531, 0.003, 0.518, 0.985, 2.197, 3.74, 5.81, 8.025, 9.525, 9.841, 0.01, 0.52] }, { "type": "double", "attributes": {}, "value": [0.195, 0.0002, 0.0256, 0.0493, 0.10965, 0.1851, 0.288, 0.40175, 0.4763, 0.48895, 0.00065, 0.02585, 0.00015, 0.0258, 0.049, 0.1076, 0.18185, 0.28145, 0.3852, 0.4579, 0.4684, 0.00065, 0.02655, 0.00015, 0.0259, 0.04925, 0.10985, 0.187, 0.2905, 0.40125, 0.47625, 0.49205, 0.0005, 0.026] } ] }, { "type": "double", "attributes": {}, "value": [0.1456931, 0.01386991] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["simulated", "measured", "unfaded"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 2.71828183, 2.74583938, 2.7736763, 2.80179543, 2.83019962, 2.85889178, 2.88787481, 2.91715167, 2.94672533, 2.9765988, 3.00677513, 3.03725738, 3.06804866, 3.09915209, 3.13057085, 3.16230812, 3.19436715, 3.22675118, 3.25946351, 3.29250748, 3.32588645, 3.3596038, 3.39366298, 3.42806745, 3.4628207, 3.49792627, 3.53338774, 3.56920872, 3.60539284, 3.64194379, 3.67886529, 3.71616109, 3.753835, 3.79189083, 3.83033248, 3.86916383, 3.90838885, 3.94801154, 3.98803591, 4.02846604, 4.06930604, 4.11056008, 4.15223234, 4.19432707, 4.23684855, 4.27980111, 4.32318912, 4.36701698, 4.41128917, 4.45601018, 4.50118457, 4.54681693, 4.5929119, 4.63947417, 4.68650849, 4.73401964, 4.78201244, 4.83049179, 4.87946262, 4.92892991, 4.97889869, 5.02937404, 5.08036111, 5.13186507, 5.18389118, 5.23644472, 5.28953104, 5.34315554, 5.39732368, 5.45204096, 5.50731296, 5.56314531, 5.61954367, 5.67651379, 5.73406147, 5.79219255, 5.85091296, 5.91022867, 5.97014571, 6.03067019, 6.09180825, 6.15356612, 6.21595008, 6.27896649, 6.34262174, 6.40692232, 6.47187477, 6.53748571, 6.60376179, 6.67070977, 6.73833646, 6.80664874, 6.87565356, 6.94535794, 7.01576898, 7.08689383, 7.15873973, 7.231314, 7.30462402, 7.37867724, 7.4534812, 7.52904352, 7.60537187, 7.68247403, 7.76035784, 7.83903123, 7.91850219, 7.99877882, 8.07986928, 8.16178183, 8.24452479, 8.32810659, 8.41253573, 8.4978208, 8.58397048, 8.67099353, 8.75889881, 8.84769526, 8.93739191, 9.0279979, 9.11952244, 9.21197484, 9.3053645, 9.39970094, 9.49499375, 9.59125263, 9.68848736, 9.78670784, 9.88592407, 9.98614614, 10.08738424, 10.18964869, 10.29294987, 10.39729831, 10.50270461, 10.60917951, 10.71673384, 10.82537854, 10.93512466, 11.04598337, 11.15796595, 11.2710838, 11.38534842, 11.50077143, 11.61736459, 11.73513975, 11.8541089, 11.97428414, 12.0956777, 12.21830193, 12.34216931, 12.46729244, 12.59368404, 12.72135699, 12.85032427, 12.980599, 13.11219443, 13.24512396, 13.37940111, 13.51503955, 13.65205306, 13.7904556, 13.93026125, 14.07148422, 14.21413889, 14.35823977, 14.50380153, 14.65083897, 14.79936706, 14.9494009, 15.10095577, 15.25404707, 15.4086904, 15.56490147, 15.72269619, 15.88209061, 16.04310095, 16.20574358, 16.37003507, 16.53599212, 16.70363161, 16.87297061, 17.04402635, 17.21681622, 17.39135781, 17.56766888, 17.74576737, 17.92567139, 18.10739926, 18.29096945, 18.47640065, 18.66371173, 18.85292174, 19.04404993, 19.23711576, 19.43213885, 19.62913907, 19.82813644, 20.02915122, 20.23220386, 20.43731501, 20.64450556, 20.85379657, 21.06520934, 21.27876539, 21.49448643, 21.71239443, 21.93251154, 22.15486017, 22.37946294, 22.6063427, 22.83552253, 23.06702575, 23.30087592, 23.53709683, 23.77571251, 24.01674725, 24.26022556, 24.50617222, 24.75461225, 25.00557092, 25.25907378, 25.51514662, 25.77381549, 26.0351067, 26.29904685, 26.56566278, 26.83498163, 27.10703079, 27.38183794, 27.65943106, 27.93983837, 28.22308841, 28.50921, 28.79823224, 29.09018456, 29.38509664, 29.6829985, 29.98392044, 30.28789309, 30.59494737, 30.90511452, 31.2184261, 31.53491399, 31.85461039, 32.17754782, 32.50375914, 32.83327755, 33.16613657, 33.50237007, 33.84201225, 34.18509767, 34.53166125, 34.88173824, 35.23536425, 35.59257528, 35.95340766, 36.3178981, 36.6860837, 37.05800191, 37.43369058, 37.81318792, 38.19653254, 38.58376347, 38.97492008, 39.37004218, 39.76916997, 40.17234407, 40.57960548, 40.99099565, 41.40655644, 41.82633012, 42.2503594, 42.67868743, 43.11135779, 43.5484145, 43.98990203, 44.43586529, 44.88634967, 45.34140099, 45.80106555, 46.26539013, 46.73442196, 47.20820877, 47.68679876, 48.17024063, 48.65858356, 49.15187725, 49.65017187, 50.15351813, 50.66196724, 51.17557094, 51.69438147, 52.21845163, 52.74783474, 53.28258466, 53.8227558, 54.36840311, 54.91958212, 55.4763489, 56.0387601, 56.60687294, 57.18074523, 57.76043535, 58.34600229, 58.93750562, 59.53500553, 60.13856281, 60.74823886, 61.36409571, 61.98619604, 62.61460313, 63.24938092, 63.89059399, 64.53830759, 65.19258762, 65.85350065, 66.52111391, 67.19549534, 67.87671355, 68.56483786, 69.25993826, 69.9620855, 70.671351, 71.38780694, 72.1115262, 72.84258242, 73.58104998, 74.32700402, 75.08052044, 75.8416759, 76.61054784, 77.38721449, 78.17175487, 78.96424882, 79.76477695, 80.57342072, 81.39026241, 82.21538511, 83.0488728, 83.89081025, 84.74128315, 85.60037803, 86.46818228, 87.3447842, 88.23027299, 89.12473873, 90.02827244, 90.94096605, 91.86291241, 92.79420532, 93.73493955, 94.68521081, 95.64511578, 96.61475213, 97.59421852, 98.58361459, 99.58304101, 100.59259948, 101.6123927, 102.64252444, 103.6830995, 104.73422377, 105.79600418, 106.86854877, 107.95196666, 109.04636808, 110.15186438, 111.26856805, 112.3965927, 113.5360531, 114.68706518, 115.84974606, 117.02421403, 118.21058858, 119.40899043, 120.6195415, 121.84236497, 123.07758524, 124.325328, 125.58572019, 126.85889005, 128.14496713, 129.44408227, 130.75636765, 132.0819568, 133.42098457, 134.77358721, 136.13990234, 137.52006898, 138.91422755, 140.32251989, 141.7450893, 143.18208051, 144.63363974, 146.09991465, 147.58105446, 149.07720984, 150.58853303, 152.11517779, 153.65729946, 155.21505494, 156.78860271, 158.37810289, 159.98371719, 161.60560897, 163.24394326, 164.89888674, 166.5706078, 168.25927653, 169.96506474, 171.68814598, 173.42869557, 175.1868906, 176.96290995, 178.75693434, 180.56914628, 182.39973017, 184.24887225, 186.11676066, 188.00358546, 189.90953862, 191.83481405, 193.77960765, 195.74411728, 197.72854282, 199.73308619, 201.75795133, 203.80334425, 205.86947308, 207.95654802, 210.06478142, 212.19438779, 214.3455838, 216.51858832, 218.71362245, 220.93090952, 223.17067512, 225.43314715, 227.71855578, 230.02713356, 232.35911537, 234.71473847, 237.09424254, 239.49786967, 241.92586443, 244.37847385, 246.85594747, 249.35853736, 251.88649814, 254.44008703, 257.01956382, 259.62519098, 262.25723362, 264.91595952, 267.60163919, 270.3145459, 273.05495567, 275.82314731, 278.61940248, 281.44400568, 284.2972443, 287.17940864, 290.09079195, 293.03169044, 296.00240333, 299.00323287, 302.0344844, 305.09646631, 308.18949016, 311.31387063, 314.46992562, 317.65797624, 320.87834685, 324.13136512, 327.41736201, 330.73667187, 334.08963241, 337.47658477, 340.89787357, 344.35384691, 347.8448564, 351.37125724, 354.93340822, 358.53167177, 362.166414, 365.83800471, 369.54681749, 373.29322967, 377.07762244, 380.90038083, 384.76189379, 388.66255422, 392.60275897, 396.58290895, 400.60340912, 404.66466853, 408.76710041, 412.91112214, 417.09715537, 421.325626, 425.59696426, 429.91160472, 434.26998638, 438.67255269, 443.11975157, 447.61203552, 452.14986159, 456.73369148, 461.36399158, 466.04123299, 470.7658916, 475.53844811, 480.35938811, 485.2292021, 490.14838557, 495.117439, 500.13686798, 505.2071832, 510.32890055, 515.50254113, 520.72863132, 526.00770286, 531.34029287, 536.7269439, 542.16820402, 547.66462685, 553.21677162, 558.82520323, 564.4904923, 570.21321526, 575.99395436, 581.83329775, 587.73183956, 593.69017994, 599.7089251, 605.78868744, 611.93008553, 618.13374422, 624.40029471, 630.73037457, 637.12462788, 643.5837052, 650.10826371, 656.69896725, 663.35648639, 670.08149849, 676.8746878, 683.73674547, 690.6683697, 697.67026573, 704.74314596, 711.88773004, 719.10474487, 726.39492476, 733.75901143, 741.19775415, 748.71190977, 756.30224281, 763.96952555, 771.71453809, 779.53806845, 787.44091263, 795.4238747, 803.48776689, 811.63340965, 819.86163175, 828.17327038, 836.5691712, 845.05018845, 853.61718503, 862.27103258, 871.01261158, 879.84281144, 888.7625306, 897.77267658, 906.87416611, 916.06792523, 925.35488935, 934.73600336, 944.21222176, 953.78450868, 963.45383807, 973.22119372, 983.0875694, 993.05396898, 1003.12140647, 1013.29090619, 1023.56350283, 1033.94024156, 1044.42217817, 1055.01037914, 1065.70592176, 1076.50989424, 1087.42339584, 1098.44753693, 1109.58343917, 1120.83223558, 1132.19507065, 1143.67310051, 1155.26749297, 1166.97942771, 1178.81009634, 1190.76070259, 1202.83246235, 1215.02660387, 1227.34436782, 1239.78700749, 1252.35578884, 1265.05199068, 1277.87690477, 1290.83183599, 1303.91810242, 1317.13703554, 1330.48998028, 1343.97829525, 1357.6033528, 1371.36653922, 1385.26925482, 1399.31291415, 1413.49894607, 1427.82879392, 1442.3039157, 1456.92578417, 1471.69588703, 1486.61572706, 1501.68682226, 1516.91070605, 1532.28892737, 1547.82305087, 1563.51465707, 1579.3653425, 1595.37671989, 1611.55041831, 1627.88808334, 1644.39137726, 1661.06197918, 1677.90158526, 1694.91190882, 1712.09468059, 1729.45164881, 1746.98457946, 1764.69525643, 1782.58548168, 1800.65707544, 1818.91187641, 1837.35174191, 1855.9785481, 1874.79419016, 1893.80058247, 1912.99965884, 1932.39337267, 1951.98369717, 1971.77262554, 1991.7621712, 2011.95436799, 2032.35127034, 2052.95495355, 2073.76751391, 2094.791069, 2116.02775785, 2137.47974118, 2159.14920161, 2181.0383439, 2203.14939514, 2225.48460503, 2248.04624604, 2270.83661371, 2293.85802683, 2317.1128277, 2340.60338238, 2364.33208091, 2388.30133755, 2412.51359104, 2436.97130486, 2461.67696745, 2486.63309246, 2511.84221907, 2537.30691215, 2563.02976261, 2589.0133876, 2615.26043083, 2641.77356279, 2668.55548104, 2695.6089105, 2722.93660372, 2750.54134114, 2778.4259314, 2806.59321159, 2835.0460476, 2863.78733435, 2892.8199961, 2922.14698678, 2951.77129025, 2981.69592062, 3011.92392257, 3042.45837162, 3073.30237451, 3104.45906943, 3135.93162642, 3167.72324764, 3199.83716772, 3232.27665408, 3265.04500725, 3298.14556125, 3331.58168388, 3365.35677708, 3399.4742773, 3433.93765579, 3468.75041903, 3503.91610903, 3539.43830371, 3575.32061726, 3611.56670051, 3648.18024131, 3685.1649649, 3722.52463426, 3760.26305054, 3798.38405343, 3836.89152154, 3875.78937278, 3915.08156482, 3954.77209541, 3994.86500286, 4035.36436641, 4076.27430665, 4117.59898594, 4159.34260886, 4201.50942258, 4244.10371737, 4287.12982695, 4330.59212901, 4374.4950456, 4418.84304361, 4463.64063521, 4508.89237831, 4554.60287704, 4600.77678219, 4647.41879171, 4694.53365118, 4742.12615428, 4790.20114329, 4838.76350958, 4887.81819412, 4937.37018796, 4987.42453274, 5037.98632123, 5089.06069782, 5140.65285905, 5192.76805415, 5245.41158556, 5298.58880947, 5352.30513639, 5406.56603166, 5461.37701604, 5516.74366625, 5572.67161555, 5629.16655431, 5686.23423058, 5743.88045071, 5802.11107988, 5860.93204274, 5920.34932401, 5980.36896909, 6040.99708465, 6102.23983927, 6164.10346408, 6226.59425337, 6289.71856525, 6353.48282226, 6417.89351209, 6482.95718818, 6548.68047041, 6615.07004576, 6682.13266902, 6749.87516346, 6818.30442151, 6887.42740548, 6957.25114826, 7027.78275405, 7099.02939905, 7170.99833223, 7243.69687605, 7317.13242719, 7391.31245733, 7466.24451388, 7541.93622078, 7618.39527926, 7695.62946861, 7773.646647, 7852.45475226, 7932.0618027, 8012.47589789, 8093.70521955, 8175.75803233, 8258.64268465, 8342.36760959, 8426.9413257, 8512.37243792, 8598.66963839, 8685.8417074, 8773.89751424, 8862.84601811, 8952.69626904, 9043.45740883, 9135.13867191, 9227.74938639, 9321.29897489, 9415.79695558, 9511.25294314, 9607.67664969, 9705.07788583, 9803.46656161, 9902.85268756, 10003.24637567, 10104.65784047, 10207.09740004, 10310.57547704, 10415.10259982, 10520.68940345, 10627.34663082, 10735.08513373, 10843.915874, 10953.84992458, 11064.89847066, 11177.07281083, 11290.38435824, 11404.84464173, 11520.46530702, 11637.25811788, 11755.23495737, 11874.40782899, 11994.78885795, 12116.39029236, 12239.22450453, 12363.30399217, 12488.64137971, 12615.24941956, 12743.1409934, 12872.32911352, 13002.82692411, 13134.64770263, 13267.80486113, 13402.31194764, 13538.18264755, 13675.43078495, 13814.07032412, 13954.11537088, 14095.58017407, 14238.47912697, 14382.82676879, 14528.63778612, 14675.92701445, 14824.70943967, 14975.0001996, 15126.81458551, 15280.16804371, 15435.07617709, 15591.55474671, 15749.61967344, 15909.28703953, 16070.57309029, 16233.49423569, 16398.0670521, 16564.30828392, 16732.23484531, 16901.86382188, 17073.21247247, 17246.29823091, 17421.13870772, 17597.751692, 17776.15515317, 17956.36724282, 18138.40629657, 18322.29083591, 18508.03957011, 18695.67139812, 18885.20541045, 19076.66089119, 19270.05731989, 19465.41437362, 19662.7519289, 19862.09006377, 20063.44905982, 20266.84940424, 20472.31179193, 20679.85712759, 20889.50652784, 21101.28132339, 21315.20306118, 21531.2935066, 21749.5746457, 21970.06868742, 22192.79806584, 22417.78544248, 22645.05370859, 22874.62598752, 23106.525637, 23340.77625159, 23577.40166502, 23816.42595267, 24057.87343397, 24301.76867491, 24548.13649052, 24797.00194742, 25048.39036631, 25302.32732463, 25558.83865911, 25817.95046839, 26079.68911571, 26344.08123158, 26611.15371648, 26880.9337436, 27153.44876161, 27428.72649745, 27706.79495916, 27987.68243871, 28271.4175149, 28558.02905625, 28847.54622395, 29139.99847481, 29435.4155643, 29733.8275495, 30035.26479225, 30339.75796216, 30647.33803978, 30958.03631974, 31271.88441392, 31588.91425468, 31909.15809811, 32232.6485273, 32559.41845567, 32889.5011303, 33222.93013535, 33559.73939541, 33899.96317904, 34243.63610218, 34590.79313169, 34941.46958896, 35295.70115342, 35653.52386625, 36014.97413398, 36380.08873224, 36748.90480949, 37121.45989077, 37497.79188159, 37877.93907169, 38261.94013901, 38649.83415361, 39041.66058162, 39437.45928929, 39837.270547, 40241.1350334, 40649.09383956, 41061.18847307, 41477.46086238, 41897.95336095, 42322.70875165, 42751.77025107, 43185.1815139, 43622.98663742, 44065.23016595, 44511.95709541, 44963.21287786, 45419.04342616, 45879.49511862, 46344.61480373, 46814.44980494, 47289.04792543, 47768.45745301, 48252.72716504, 48741.90633336, 49236.04472932, 49735.19262887, 50239.40081763, 50748.72059607, 51263.20378475, 51782.90272958, 52307.87030714, 52838.15993006, 53373.82555248, 53914.92167549, 54461.50335273, 55013.62619595, 55571.34638069, 56134.72065199, 56703.80633016, 57278.66131662, 57859.34409978, 58445.913761, 59038.4299806, 59636.95304393, 60241.5438475, 60852.26390518, 61469.17535447, 62092.34096279, 62721.82413392, 63357.68891437, 64000] }, { "type": "double", "attributes": {}, "value": [0.0027262, 0.00481447, 0.00483476, 0.00485524, 0.00487593, 0.00489681, 0.0049179, 0.00493919, 0.00496069, 0.00498239, 0.00500431, 0.00502644, 0.00504878, 0.00507133, 0.00509411, 0.0051171, 0.00514032, 0.00516376, 0.00518743, 0.00521133, 0.00523545, 0.00525982, 0.00528441, 0.00530925, 0.00533432, 0.00535964, 0.0053852, 0.005411, 0.00543706, 0.00546337, 0.00548993, 0.00551675, 0.00554382, 0.00557116, 0.00559877, 0.00562663, 0.00565477, 0.00568318, 0.00571186, 0.00574082, 0.00577006, 0.00579959, 0.00582939, 0.00585949, 0.00588987, 0.00592055, 0.00595152, 0.00598279, 0.00601436, 0.00604624, 0.00607842, 0.00611091, 0.00614372, 0.00617684, 0.00621029, 0.00624405, 0.00627814, 0.00631256, 0.0063473, 0.00638239, 0.00641781, 0.00645357, 0.00648967, 0.00652613, 0.00656293, 0.00660009, 0.00663761, 0.00667548, 0.00671372, 0.00675233, 0.00679131, 0.00683066, 0.0068704, 0.00691051, 0.00695101, 0.0069919, 0.00703318, 0.00707486, 0.00711693, 0.00715942, 0.00720231, 0.00724561, 0.00728933, 0.00733346, 0.00737802, 0.00742301, 0.00746843, 0.00751429, 0.00756058, 0.00760732, 0.00765451, 0.00770215, 0.00775024, 0.0077988, 0.00784782, 0.00789732, 0.00794728, 0.00799773, 0.00804865, 0.00810007, 0.00815198, 0.00820438, 0.00825729, 0.0083107, 0.00836462, 0.00841906, 0.00847402, 0.0085295, 0.00858552, 0.00864207, 0.00869916, 0.0087568, 0.00881498, 0.00887373, 0.00893303, 0.0089929, 0.00905334, 0.00911436, 0.00917596, 0.00923815, 0.00930093, 0.00936431, 0.00942829, 0.00949288, 0.00955809, 0.00962392, 0.00969038, 0.00975747, 0.0098252, 0.00989358, 0.0099626, 0.01003229, 0.01010263, 0.01017365, 0.01024533, 0.01031771, 0.01039076, 0.01046452, 0.01053897, 0.01061413, 0.01069001, 0.0107666, 0.01084393, 0.01092198, 0.01100078, 0.01108032, 0.01116062, 0.01124168, 0.01132351, 0.01140611, 0.0114895, 0.01157367, 0.01165864, 0.01174442, 0.01183101, 0.01191842, 0.01200665, 0.01209572, 0.01218563, 0.01227639, 0.012368, 0.01246048, 0.01255384, 0.01264807, 0.0127432, 0.01283922, 0.01293615, 0.01303399, 0.01313275, 0.01323245, 0.01333308, 0.01343466, 0.01353719, 0.01364069, 0.01374517, 0.01385062, 0.01395707, 0.01406452, 0.01417297, 0.01428245, 0.01439295, 0.01450449, 0.01461707, 0.01473071, 0.01484542, 0.0149612, 0.01507806, 0.01519602, 0.01531508, 0.01543526, 0.01555656, 0.01567899, 0.01580257, 0.0159273, 0.01605319, 0.01618026, 0.01630852, 0.01643797, 0.01656863, 0.0167005, 0.01683361, 0.01696795, 0.01710354, 0.01724039, 0.01737851, 0.01751792, 0.01765862, 0.01780063, 0.01794396, 0.01808861, 0.01823461, 0.01838196, 0.01853067, 0.01868076, 0.01883224, 0.01898512, 0.01913941, 0.01929513, 0.01945228, 0.01961089, 0.01977095, 0.0199325, 0.02009553, 0.02026006, 0.0204261, 0.02059368, 0.02076279, 0.02093346, 0.02110569, 0.02127951, 0.02145492, 0.02163193, 0.02181057, 0.02199084, 0.02217277, 0.02235635, 0.02254162, 0.02272857, 0.02291723, 0.02310762, 0.02329973, 0.0234936, 0.02368923, 0.02388664, 0.02408585, 0.02428687, 0.02448971, 0.02469439, 0.02490092, 0.02510933, 0.02531962, 0.02553182, 0.02574593, 0.02596198, 0.02617997, 0.02639994, 0.02662188, 0.02684582, 0.02707178, 0.02729977, 0.02752981, 0.02776191, 0.0279961, 0.02823238, 0.02847078, 0.02871131, 0.02895399, 0.02919884, 0.02944587, 0.02969511, 0.02994656, 0.03020025, 0.0304562, 0.03071443, 0.03097494, 0.03123776, 0.03150292, 0.03177041, 0.03204028, 0.03231252, 0.03258717, 0.03286424, 0.03314375, 0.03342572, 0.03371017, 0.03399711, 0.03428657, 0.03457857, 0.03487312, 0.03517025, 0.03546997, 0.0357723, 0.03607727, 0.0363849, 0.03669519, 0.03700818, 0.03732389, 0.03764233, 0.03796352, 0.03828749, 0.03861426, 0.03894384, 0.03927626, 0.03961154, 0.0399497, 0.04029076, 0.04063474, 0.04098166, 0.04133154, 0.04168441, 0.04204029, 0.04239919, 0.04276114, 0.04312616, 0.04349428, 0.04386551, 0.04423987, 0.04461739, 0.0449981, 0.045382, 0.04576912, 0.0461595, 0.04655313, 0.04695006, 0.0473503, 0.04775388, 0.04816081, 0.04857112, 0.04898483, 0.04940196, 0.04982254, 0.05024659, 0.05067413, 0.05110519, 0.05153978, 0.05197792, 0.05241965, 0.05286499, 0.05331395, 0.05376656, 0.05422284, 0.05468281, 0.0551465, 0.05561394, 0.05608513, 0.05656011, 0.0570389, 0.05752151, 0.05800798, 0.05849833, 0.05899257, 0.05949073, 0.05999284, 0.06049891, 0.06100897, 0.06152304, 0.06204114, 0.06256329, 0.06308952, 0.06361985, 0.0641543, 0.06469289, 0.06523564, 0.06578258, 0.06633373, 0.06688911, 0.06744874, 0.06801264, 0.06858083, 0.06915333, 0.06973017, 0.07031137, 0.07089694, 0.07148691, 0.0720813, 0.07268012, 0.07328341, 0.07389117, 0.07450343, 0.0751202, 0.07574151, 0.07636738, 0.07699782, 0.07763285, 0.0782725, 0.07891677, 0.0795657, 0.08021929, 0.08087756, 0.08154054, 0.08220823, 0.08288066, 0.08355784, 0.08423979, 0.08492653, 0.08561806, 0.08631441, 0.08701558, 0.08772161, 0.08843249, 0.08914825, 0.08986889, 0.09059444, 0.0913249, 0.09206028, 0.0928006, 0.09354588, 0.09429612, 0.09505133, 0.09581152, 0.09657671, 0.0973469, 0.09812211, 0.09890233, 0.09968759, 0.10047789, 0.10127323, 0.10207363, 0.10287908, 0.1036896, 0.10450519, 0.10532586, 0.1061516, 0.10698243, 0.10781835, 0.10865936, 0.10950546, 0.11035665, 0.11121293, 0.11207431, 0.11294078, 0.11381235, 0.114689, 0.11557074, 0.11645757, 0.11734948, 0.11824647, 0.11914853, 0.12005565, 0.12096784, 0.12188507, 0.12280735, 0.12373467, 0.12466701, 0.12560436, 0.12654672, 0.12749407, 0.1284464, 0.1294037, 0.13036595, 0.13133313, 0.13230523, 0.13328223, 0.13426412, 0.13525087, 0.13624247, 0.13723889, 0.13824012, 0.13924613, 0.14025689, 0.14127239, 0.1422926, 0.14331749, 0.14434703, 0.1453812, 0.14641996, 0.14746329, 0.14851116, 0.14956353, 0.15062037, 0.15168165, 0.15274732, 0.15381736, 0.15489172, 0.15597037, 0.15705327, 0.15814038, 0.15923165, 0.16032705, 0.16142652, 0.16253002, 0.16363751, 0.16474895, 0.16586427, 0.16698343, 0.16810639, 0.16923308, 0.17036346, 0.17149747, 0.17263506, 0.17377617, 0.17492074, 0.17606872, 0.17722004, 0.17837464, 0.17953246, 0.18069344, 0.18185751, 0.18302461, 0.18419468, 0.18536763, 0.18654341, 0.18772194, 0.18890316, 0.19008698, 0.19127334, 0.19246217, 0.19365338, 0.19484689, 0.19604264, 0.19724055, 0.19844052, 0.19964248, 0.20084635, 0.20205205, 0.20325948, 0.20446858, 0.20567923, 0.20689137, 0.20810491, 0.20931974, 0.21053579, 0.21175295, 0.21297115, 0.21419028, 0.21541025, 0.21663096, 0.21785232, 0.21907424, 0.22029661, 0.22151933, 0.22274232, 0.22396545, 0.22518864, 0.22641179, 0.22763478, 0.22885753, 0.23007991, 0.23130184, 0.2325232, 0.23374389, 0.2349638, 0.23618282, 0.23740086, 0.23861779, 0.23983351, 0.24104792, 0.2422609, 0.24347235, 0.24468215, 0.24589019, 0.24709637, 0.24830057, 0.24950268, 0.2507026, 0.2519002, 0.25309538, 0.25428804, 0.25547804, 0.25666529, 0.25784968, 0.25903108, 0.2602094, 0.26138452, 0.26255632, 0.2637247, 0.26488956, 0.26605076, 0.26720822, 0.26836182, 0.26951144, 0.27065699, 0.27179835, 0.27293542, 0.27406808, 0.27519624, 0.27631979, 0.27743862, 0.27855263, 0.27966171, 0.28076577, 0.28186469, 0.28295839, 0.28404676, 0.28512971, 0.28620712, 0.28727892, 0.288345, 0.28940526, 0.29045962, 0.29150799, 0.29255026, 0.29358636, 0.29461619, 0.29563968, 0.29665672, 0.29766724, 0.29867116, 0.2996684, 0.30065887, 0.30164251, 0.30261922, 0.30358894, 0.3045516, 0.30550712, 0.30645544, 0.30739649, 0.3083302, 0.30925651, 0.31017535, 0.31108667, 0.3119904, 0.3128865, 0.31377491, 0.31465557, 0.31552843, 0.31639345, 0.31725058, 0.31809978, 0.31894099, 0.31977419, 0.32059934, 0.32141639, 0.32222532, 0.32302609, 0.32381868, 0.32460305, 0.32537918, 0.32614705, 0.32690663, 0.32765792, 0.32840088, 0.32913551, 0.32986179, 0.33057972, 0.33128929, 0.33199048, 0.3326833, 0.33336774, 0.33404381, 0.33471151, 0.33537084, 0.33602181, 0.33666443, 0.33729871, 0.33792465, 0.33854229, 0.33915163, 0.3397527, 0.34034551, 0.34093009, 0.34150646, 0.34207466, 0.3426347, 0.34318662, 0.34373045, 0.34426623, 0.34479399, 0.34531378, 0.34582562, 0.34632956, 0.34682565, 0.34731392, 0.34779443, 0.34826722, 0.34873235, 0.34918985, 0.34963979, 0.35008222, 0.35051719, 0.35094475, 0.35136498, 0.35177791, 0.35218363, 0.35258217, 0.35297362, 0.35335803, 0.35373546, 0.35410598, 0.35446967, 0.35482657, 0.35517677, 0.35552033, 0.35585732, 0.35618781, 0.35651188, 0.35682959, 0.35714102, 0.35744624, 0.35774532, 0.35803834, 0.35832537, 0.35860649, 0.35888178, 0.3591513, 0.35941514, 0.35967337, 0.35992607, 0.36017332, 0.36041518, 0.36065174, 0.36088308, 0.36110927, 0.36133039, 0.36154652, 0.36175773, 0.3619641, 0.3621657, 0.36236262, 0.36255493, 0.36274271, 0.36292602, 0.36310496, 0.36327958, 0.36344997, 0.3636162, 0.36377835, 0.36393649, 0.36409069, 0.36424102, 0.36438755, 0.36453037, 0.36466953, 0.36480512, 0.36493719, 0.36506582, 0.36519108, 0.36531303, 0.36543174, 0.36554728, 0.36565971, 0.36576911, 0.36587552, 0.36597903, 0.36607968, 0.36617754, 0.36627268, 0.36636515, 0.36645502, 0.36654233, 0.36662716, 0.36670956, 0.36678958, 0.36686727, 0.36694271, 0.36701593, 0.36708699, 0.36715595, 0.36722285, 0.36728775, 0.36735069, 0.36741173, 0.36747091, 0.36752828, 0.36758389, 0.36763778, 0.36768999, 0.36774057, 0.36778957, 0.36783702, 0.36788297, 0.36792746, 0.36797052, 0.3680122, 0.36805253, 0.36809155, 0.3681293, 0.36816581, 0.36820112, 0.36823527, 0.36826828, 0.36830018, 0.36833102, 0.36836082, 0.36838962, 0.36841743, 0.3684443, 0.36847024, 0.3684953, 0.36851948, 0.36854283, 0.36856537, 0.36858711, 0.36860809, 0.36862834, 0.36864786, 0.36866669, 0.36868485, 0.36870236, 0.36871923, 0.3687355, 0.36875118, 0.36876628, 0.36878084, 0.36879486, 0.36880836, 0.36882137, 0.36883389, 0.36884594, 0.36885755, 0.36886872, 0.36887947, 0.36888981, 0.36889976, 0.36890933, 0.36891854, 0.3689274, 0.36893591, 0.3689441, 0.36895197, 0.36895953, 0.3689668, 0.36897378, 0.36898049, 0.36898694, 0.36899313, 0.36899908, 0.36900479, 0.36901027, 0.36901554, 0.36902059, 0.36902544, 0.3690301, 0.36903456, 0.36903885, 0.36904296, 0.3690469, 0.36905068, 0.36905431, 0.36905779, 0.36906112, 0.36906432, 0.36906738, 0.36907032, 0.36907313, 0.36907582, 0.36907841, 0.36908088, 0.36908325, 0.36908552, 0.36908769, 0.36908977, 0.36909176, 0.36909367, 0.36909549, 0.36909724, 0.36909891, 0.36910051, 0.36910204, 0.3691035, 0.3691049, 0.36910624, 0.36910752, 0.36910875, 0.36910992, 0.36911104, 0.36911211, 0.36911313, 0.36911411, 0.36911504, 0.36911593, 0.36911679, 0.3691176, 0.36911838, 0.36911912, 0.36911983, 0.36912051, 0.36912116, 0.36912177, 0.36912236, 0.36912293, 0.36912347, 0.36912398, 0.36912447, 0.36912493, 0.36912538, 0.36912581, 0.36912621, 0.3691266, 0.36912697, 0.36912732, 0.36912766, 0.36912798, 0.36912828, 0.36912857, 0.36912885, 0.36912911, 0.36912937, 0.36912961, 0.36912983, 0.36913005, 0.36913026, 0.36913046, 0.36913065, 0.36913083, 0.369131, 0.36913116, 0.36913132, 0.36913146, 0.3691316, 0.36913174, 0.36913187, 0.36913199, 0.3691321, 0.36913221, 0.36913232, 0.36913242, 0.36913251, 0.3691326, 0.36913269, 0.36913277, 0.36913285, 0.36913292, 0.36913299, 0.36913306, 0.36913312, 0.36913318, 0.36913324, 0.3691333, 0.36913335, 0.3691334, 0.36913344, 0.36913349, 0.36913353, 0.36913357, 0.36913361, 0.36913365, 0.36913368, 0.36913371, 0.36913375, 0.36913378, 0.3691338, 0.36913383, 0.36913386, 0.36913388, 0.3691339, 0.36913393, 0.36913395, 0.36913397, 0.36913398, 0.369134, 0.36913402, 0.36913404, 0.36913405, 0.36913407, 0.36913408, 0.36913409, 0.3691341, 0.36913412, 0.36913413, 0.36913414, 0.36913415, 0.36913416, 0.36913417, 0.36913418, 0.36913418, 0.36913419, 0.3691342, 0.36913421, 0.36913421, 0.36913422, 0.36913422, 0.36913423, 0.36913424, 0.36913424, 0.36913425, 0.36913425, 0.36913425, 0.36913426, 0.36913426, 0.36913427, 0.36913427, 0.36913427, 0.36913428, 0.36913428, 0.36913428, 0.36913428, 0.36913429, 0.36913429, 0.36913429, 0.36913429, 0.3691343, 0.3691343, 0.3691343, 0.3691343, 0.3691343, 0.3691343, 0.36913431, 0.36913431, 0.36913431, 0.36913431, 0.36913431, 0.36913431, 0.36913431, 0.36913431, 0.36913432, 0.36913432, 0.36913432, 0.36913432, 0.36913432] }, { "type": "double", "attributes": {}, "value": [0.00021446, 0.00037874, 0.00038034, 0.00038195, 0.00038357, 0.00038522, 0.00038688, 0.00038855, 0.00039024, 0.00039195, 0.00039367, 0.00039541, 0.00039717, 0.00039895, 0.00040074, 0.00040255, 0.00040437, 0.00040622, 0.00040808, 0.00040996, 0.00041186, 0.00041377, 0.00041571, 0.00041766, 0.00041963, 0.00042163, 0.00042364, 0.00042567, 0.00042772, 0.00042979, 0.00043188, 0.00043399, 0.00043612, 0.00043827, 0.00044044, 0.00044263, 0.00044484, 0.00044708, 0.00044933, 0.00045161, 0.00045391, 0.00045624, 0.00045858, 0.00046095, 0.00046334, 0.00046575, 0.00046819, 0.00047065, 0.00047313, 0.00047564, 0.00047817, 0.00048073, 0.00048331, 0.00048591, 0.00048854, 0.0004912, 0.00049388, 0.00049659, 0.00049932, 0.00050208, 0.00050487, 0.00050768, 0.00051052, 0.00051339, 0.00051629, 0.00051921, 0.00052216, 0.00052514, 0.00052815, 0.00053119, 0.00053425, 0.00053735, 0.00054047, 0.00054363, 0.00054681, 0.00055003, 0.00055328, 0.00055656, 0.00055987, 0.00056321, 0.00056658, 0.00056999, 0.00057343, 0.0005769, 0.00058041, 0.00058395, 0.00058752, 0.00059113, 0.00059477, 0.00059844, 0.00060216, 0.0006059, 0.00060969, 0.00061351, 0.00061736, 0.00062126, 0.00062519, 0.00062916, 0.00063316, 0.00063721, 0.00064129, 0.00064541, 0.00064958, 0.00065378, 0.00065802, 0.0006623, 0.00066663, 0.00067099, 0.0006754, 0.00067985, 0.00068434, 0.00068887, 0.00069345, 0.00069807, 0.00070273, 0.00070744, 0.0007122, 0.000717, 0.00072184, 0.00072674, 0.00073168, 0.00073666, 0.00074169, 0.00074678, 0.00075191, 0.00075708, 0.00076231, 0.00076759, 0.00077292, 0.0007783, 0.00078373, 0.00078921, 0.00079474, 0.00080033, 0.00080597, 0.00081166, 0.00081741, 0.00082321, 0.00082907, 0.00083498, 0.00084095, 0.00084698, 0.00085306, 0.0008592, 0.0008654, 0.00087166, 0.00087797, 0.00088435, 0.00089079, 0.00089728, 0.00090384, 0.00091047, 0.00091715, 0.0009239, 0.00093071, 0.00093759, 0.00094453, 0.00095153, 0.00095861, 0.00096575, 0.00097295, 0.00098023, 0.00098757, 0.00099499, 0.00100247, 0.00101002, 0.00101765, 0.00102534, 0.00103311, 0.00104096, 0.00104887, 0.00105686, 0.00106493, 0.00107307, 0.00108129, 0.00108959, 0.00109796, 0.00110641, 0.00111494, 0.00112356, 0.00113225, 0.00114102, 0.00114988, 0.00115882, 0.00116784, 0.00117695, 0.00118615, 0.00119542, 0.00120479, 0.00121424, 0.00122379, 0.00123342, 0.00124314, 0.00125295, 0.00126286, 0.00127285, 0.00128294, 0.00129312, 0.0013034, 0.00131378, 0.00132425, 0.00133482, 0.00134548, 0.00135625, 0.00136711, 0.00137808, 0.00138915, 0.00140032, 0.0014116, 0.00142298, 0.00143446, 0.00144605, 0.00145775, 0.00146956, 0.00148147, 0.0014935, 0.00150564, 0.00151789, 0.00153025, 0.00154273, 0.00155532, 0.00156803, 0.00158085, 0.0015938, 0.00160686, 0.00162004, 0.00163335, 0.00164677, 0.00166032, 0.00167399, 0.00168779, 0.00170172, 0.00171577, 0.00172995, 0.00174426, 0.00175871, 0.00177328, 0.00178799, 0.00180283, 0.00181781, 0.00183292, 0.00184817, 0.00186356, 0.00187909, 0.00189476, 0.00191057, 0.00192653, 0.00194263, 0.00195888, 0.00197527, 0.00199182, 0.00200851, 0.00202535, 0.00204235, 0.0020595, 0.0020768, 0.00209426, 0.00211188, 0.00212965, 0.00214759, 0.00216569, 0.00218394, 0.00220237, 0.00222095, 0.00223971, 0.00225863, 0.00227772, 0.00229698, 0.00231642, 0.00233602, 0.0023558, 0.00237576, 0.0023959, 0.00241621, 0.0024367, 0.00245738, 0.00247824, 0.00249928, 0.00252051, 0.00254193, 0.00256353, 0.00258533, 0.00260732, 0.0026295, 0.00265188, 0.00267445, 0.00269722, 0.00272019, 0.00274336, 0.00276674, 0.00279031, 0.0028141, 0.00283809, 0.00286229, 0.0028867, 0.00291132, 0.00293616, 0.00296121, 0.00298647, 0.00301196, 0.00303767, 0.00306359, 0.00308974, 0.00311612, 0.00314272, 0.00316955, 0.00319661, 0.0032239, 0.00325143, 0.00327918, 0.00330718, 0.00333541, 0.00336389, 0.0033926, 0.00342156, 0.00345077, 0.00348022, 0.00350991, 0.00353986, 0.00357006, 0.00360052, 0.00363123, 0.00366219, 0.00369342, 0.0037249, 0.00375665, 0.00378866, 0.00382094, 0.00385349, 0.0038863, 0.00391939, 0.00395275, 0.00398638, 0.00402029, 0.00405448, 0.00408894, 0.00412369, 0.00415873, 0.00419404, 0.00422965, 0.00426554, 0.00430173, 0.00433821, 0.00437498, 0.00441205, 0.00444941, 0.00448708, 0.00452504, 0.00456331, 0.00460188, 0.00464076, 0.00467995, 0.00471945, 0.00475926, 0.00479939, 0.00483983, 0.00488059, 0.00492166, 0.00496306, 0.00500478, 0.00504682, 0.00508919, 0.00513189, 0.00517491, 0.00521827, 0.00526196, 0.00530599, 0.00535035, 0.00539504, 0.00544008, 0.00548546, 0.00553118, 0.00557725, 0.00562366, 0.00567041, 0.00571752, 0.00576498, 0.00581279, 0.00586096, 0.00590948, 0.00595835, 0.00600759, 0.00605718, 0.00610714, 0.00615746, 0.00620814, 0.00625919, 0.00631061, 0.00636239, 0.00641454, 0.00646707, 0.00651997, 0.00657324, 0.00662689, 0.00668091, 0.00673531, 0.00679009, 0.00684525, 0.00690079, 0.00695671, 0.00701302, 0.00706971, 0.00712679, 0.00718425, 0.0072421, 0.00730034, 0.00735897, 0.00741799, 0.0074774, 0.0075372, 0.00759739, 0.00765798, 0.00771897, 0.00778034, 0.00784212, 0.00790429, 0.00796685, 0.00802982, 0.00809318, 0.00815694, 0.0082211, 0.00828566, 0.00835062, 0.00841598, 0.00848174, 0.0085479, 0.00861446, 0.00868142, 0.00874878, 0.00881654, 0.00888471, 0.00895327, 0.00902223, 0.0090916, 0.00916136, 0.00923152, 0.00930209, 0.00937305, 0.00944441, 0.00951617, 0.00958833, 0.00966088, 0.00973383, 0.00980717, 0.00988091, 0.00995504, 0.01002957, 0.01010449, 0.01017979, 0.01025549, 0.01033157, 0.01040805, 0.0104849, 0.01056215, 0.01063977, 0.01071778, 0.01079616, 0.01087493, 0.01095407, 0.01103358, 0.01111347, 0.01119372, 0.01127435, 0.01135534, 0.01143669, 0.01151841, 0.01160049, 0.01168292, 0.0117657, 0.01184884, 0.01193233, 0.01201616, 0.01210034, 0.01218486, 0.01226971, 0.0123549, 0.01244042, 0.01252627, 0.01261244, 0.01269893, 0.01278574, 0.01287286, 0.01296029, 0.01304803, 0.01313608, 0.01322441, 0.01331305, 0.01340197, 0.01349118, 0.01358067, 0.01367044, 0.01376048, 0.01385079, 0.01394136, 0.01403219, 0.01412327, 0.0142146, 0.01430617, 0.01439799, 0.01449003, 0.0145823, 0.0146748, 0.01476751, 0.01486043, 0.01495356, 0.01504689, 0.01514041, 0.01523412, 0.01532801, 0.01542207, 0.01551631, 0.01561071, 0.01570526, 0.01579997, 0.01589482, 0.0159898, 0.01608492, 0.01618016, 0.01627551, 0.01637098, 0.01646654, 0.01656221, 0.01665796, 0.01675379, 0.01684969, 0.01694566, 0.01704169, 0.01713777, 0.0172339, 0.01733006, 0.01742625, 0.01752246, 0.01761868, 0.0177149, 0.01781112, 0.01790733, 0.01800352, 0.01809968, 0.01819581, 0.01829189, 0.01838792, 0.01848388, 0.01857978, 0.0186756, 0.01877133, 0.01886697, 0.0189625, 0.01905792, 0.01915322, 0.01924839, 0.01934343, 0.01943831, 0.01953304, 0.01962761, 0.01972201, 0.01981622, 0.01991024, 0.02000406, 0.02009767, 0.02019107, 0.02028424, 0.02037718, 0.02046988, 0.02056232, 0.0206545, 0.02074641, 0.02083805, 0.0209294, 0.02102045, 0.0211112, 0.02120164, 0.02129176, 0.02138154, 0.02147099, 0.0215601, 0.02164885, 0.02173723, 0.02182525, 0.02191288, 0.02200013, 0.02208698, 0.02217343, 0.02225947, 0.02234509, 0.02243028, 0.02251504, 0.02259935, 0.02268322, 0.02276663, 0.02284957, 0.02293204, 0.02301403, 0.02309554, 0.02317655, 0.02325707, 0.02333708, 0.02341657, 0.02349555, 0.02357399, 0.02365191, 0.02372929, 0.02380613, 0.02388241, 0.02395814, 0.02403331, 0.02410791, 0.02418194, 0.02425539, 0.02432826, 0.02440054, 0.02447223, 0.02454333, 0.02461382, 0.02468371, 0.02475299, 0.02482165, 0.0248897, 0.02495713, 0.02502393, 0.02509011, 0.02515566, 0.02522057, 0.02528484, 0.02534848, 0.02541147, 0.02547382, 0.02553553, 0.02559658, 0.02565699, 0.02571674, 0.02577584, 0.02583429, 0.02589208, 0.02594922, 0.02600569, 0.02606151, 0.02611667, 0.02617118, 0.02622502, 0.0262782, 0.02633073, 0.0263826, 0.02643381, 0.02648436, 0.02653426, 0.0265835, 0.02663208, 0.02668002, 0.0267273, 0.02677394, 0.02681993, 0.02686527, 0.02690997, 0.02695402, 0.02699744, 0.02704022, 0.02708237, 0.02712389, 0.02716478, 0.02720504, 0.02724469, 0.02728371, 0.02732212, 0.02735992, 0.02739712, 0.02743371, 0.0274697, 0.02750509, 0.0275399, 0.02757411, 0.02760775, 0.02764081, 0.02767329, 0.02770521, 0.02773656, 0.02776735, 0.02779759, 0.02782728, 0.02785643, 0.02788504, 0.02791312, 0.02794067, 0.02796769, 0.0279942, 0.0280202, 0.0280457, 0.02807069, 0.02809519, 0.0281192, 0.02814273, 0.02816578, 0.02818836, 0.02821047, 0.02823213, 0.02825333, 0.02827409, 0.0282944, 0.02831428, 0.02833373, 0.02835276, 0.02837137, 0.02838957, 0.02840736, 0.02842475, 0.02844176, 0.02845837, 0.02847461, 0.02849047, 0.02850596, 0.02852109, 0.02853586, 0.02855028, 0.02856435, 0.02857809, 0.0285915, 0.02860457, 0.02861733, 0.02862977, 0.0286419, 0.02865372, 0.02866525, 0.02867649, 0.02868743, 0.0286981, 0.02870849, 0.02871861, 0.02872846, 0.02873806, 0.0287474, 0.02875648, 0.02876533, 0.02877393, 0.02878231, 0.02879045, 0.02879837, 0.02880607, 0.02881355, 0.02882082, 0.02882789, 0.02883476, 0.02884144, 0.02884792, 0.02885421, 0.02886032, 0.02886626, 0.02887202, 0.02887761, 0.02888303, 0.0288883, 0.0288934, 0.02889835, 0.02890316, 0.02890781, 0.02891232, 0.0289167, 0.02892094, 0.02892504, 0.02892902, 0.02893288, 0.02893661, 0.02894023, 0.02894373, 0.02894711, 0.02895039, 0.02895356, 0.02895663, 0.0289596, 0.02896248, 0.02896525, 0.02896794, 0.02897054, 0.02897305, 0.02897547, 0.02897782, 0.02898008, 0.02898227, 0.02898438, 0.02898642, 0.0289884, 0.0289903, 0.02899214, 0.02899391, 0.02899562, 0.02899727, 0.02899886, 0.0290004, 0.02900188, 0.02900331, 0.02900468, 0.02900601, 0.02900729, 0.02900853, 0.02900971, 0.02901086, 0.02901196, 0.02901302, 0.02901405, 0.02901503, 0.02901598, 0.02901689, 0.02901777, 0.02901862, 0.02901943, 0.02902021, 0.02902097, 0.02902169, 0.02902239, 0.02902306, 0.0290237, 0.02902432, 0.02902492, 0.02902549, 0.02902604, 0.02902656, 0.02902707, 0.02902756, 0.02902803, 0.02902848, 0.02902891, 0.02902932, 0.02902972, 0.0290301, 0.02903047, 0.02903082, 0.02903116, 0.02903148, 0.02903179, 0.02903209, 0.02903237, 0.02903265, 0.02903291, 0.02903316, 0.0290334, 0.02903363, 0.02903385, 0.02903406, 0.02903427, 0.02903446, 0.02903465, 0.02903483, 0.029035, 0.02903516, 0.02903532, 0.02903547, 0.02903561, 0.02903575, 0.02903588, 0.02903601, 0.02903613, 0.02903624, 0.02903635, 0.02903646, 0.02903656, 0.02903665, 0.02903675, 0.02903683, 0.02903692, 0.029037, 0.02903708, 0.02903715, 0.02903722, 0.02903729, 0.02903735, 0.02903741, 0.02903747, 0.02903753, 0.02903758, 0.02903763, 0.02903768, 0.02903773, 0.02903777, 0.02903781, 0.02903785, 0.02903789, 0.02903793, 0.02903796, 0.029038, 0.02903803, 0.02903806, 0.02903809, 0.02903812, 0.02903814, 0.02903817, 0.02903819, 0.02903821, 0.02903824, 0.02903826, 0.02903828, 0.0290383, 0.02903831, 0.02903833, 0.02903835, 0.02903836, 0.02903838, 0.02903839, 0.0290384, 0.02903842, 0.02903843, 0.02903844, 0.02903845, 0.02903846, 0.02903847, 0.02903848, 0.02903849, 0.0290385, 0.02903851, 0.02903852, 0.02903852, 0.02903853, 0.02903854, 0.02903854, 0.02903855, 0.02903856, 0.02903856, 0.02903857, 0.02903857, 0.02903858, 0.02903858, 0.02903859, 0.02903859, 0.02903859, 0.0290386, 0.0290386, 0.0290386, 0.02903861, 0.02903861, 0.02903861, 0.02903862, 0.02903862, 0.02903862, 0.02903862, 0.02903863, 0.02903863, 0.02903863, 0.02903863, 0.02903863, 0.02903863, 0.02903864, 0.02903864, 0.02903864, 0.02903864, 0.02903864, 0.02903864, 0.02903864, 0.02903865, 0.02903865, 0.02903865, 0.02903865, 0.02903865, 0.02903865, 0.02903865, 0.02903865, 0.02903865, 0.02903865, 0.02903865, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903866, 0.02903867, 0.02903867, 0.02903867, 0.02903867, 0.02903867, 0.02903867, 0.02903867, 0.02903867, 0.02903867, 0.02903867] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8] }, { "type": "double", "attributes": {}, "value": [0.00028451, 0.03641741, 0.07013196, 0.15598315, 0.26331492, 0.40969583, 0.57151145, 0.67756292, 0.69555824, 0.00092466, 0.03677305, 0.00021338, 0.03670192, 0.06970519, 0.15306691, 0.25869162, 0.40037809, 0.54796817, 0.65138791, 0.66632474, 0.00092466, 0.03776883, 0.00021338, 0.03684417, 0.07006083, 0.15626766, 0.26601778, 0.41325221, 0.57080017, 0.67749179, 0.69996816, 0.00071128, 0.03698643] }, { "type": "double", "attributes": {}, "value": [0.00001423, 0.00182087, 0.0035066, 0.00779916, 0.01316575, 0.02048479, 0.02857557, 0.03387815, 0.03477791, 0.00004623, 0.00183865, 0.00001067, 0.0018351, 0.00348526, 0.00765335, 0.01293458, 0.0200189, 0.02739841, 0.0325694, 0.03331624, 0.00004623, 0.00188844, 0.00001067, 0.00184221, 0.00350304, 0.00781338, 0.01330089, 0.02066261, 0.02854001, 0.03387459, 0.03499841, 0.00003556, 0.00184932] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8] }, { "type": "double", "attributes": {}, "value": [0, 0.04712048, 0.09196295, 0.20832404, 0.35677579, 0.56343531, 0.7981376, 0.96135492, 1.00314374, 0, 0.04758064, 0, 0.0474886, 0.09140333, 0.20442924, 0.35051149, 0.55062107, 0.7652585, 0.92421671, 0.96098278, 0, 0.04886909, 0, 0.04767267, 0.09186968, 0.20870402, 0.36043799, 0.56832625, 0.79714427, 0.961254, 1.00950379, 0, 0.04785673] }, { "type": "double", "attributes": {}, "value": [0, 0.00370682, 0.00723444, 0.01638821, 0.02806646, 0.04432373, 0.06278704, 0.07562685, 0.07891424, 0, 0.00374302, 0, 0.00373578, 0.00719042, 0.01608182, 0.02757367, 0.04331567, 0.06020054, 0.0727053, 0.07559757, 0, 0.00384438, 0, 0.00375026, 0.00722711, 0.01641811, 0.02835455, 0.04470848, 0.0627089, 0.07561891, 0.07941457, 0, 0.00376474] } ] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["simulated", "measured", "unfaded"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["convInfo", "data", "control"] }, "class": { "type": "character", "attributes": {}, "value": ["nls"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["isConv", "finIter", "finTol", "stopCode", "stopMessage"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [8] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "character", "attributes": {}, "value": ["Relative error in the sum of squares is at most `ftol'."] } ] }, { "type": "symbol", "attributes": {}, "value": ["data"] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ftol", "ptol", "gtol", "diag", "epsfcn", "factor", "maxfev", "maxiter", "nprint"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "list", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [100] }, { "type": "integer", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [500] }, { "type": "double", "attributes": {}, "value": [0] } ] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["convInfo", "data", "weights", "control"] }, "class": { "type": "character", "attributes": {}, "value": ["nls"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["isConv", "finIter", "finTol", "stopCode", "stopMessage"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "character", "attributes": {}, "value": ["Relative error in the sum of squares is at most `ftol'."] } ] }, { "type": "symbol", "attributes": {}, "value": ["data"] }, { "type": "double", "attributes": {}, "value": [0.00021563, 0.21024277, 0.00164252, 0.00085291, 0.00038348, 0.00022717, 0.000146, 0.00010466, 0.00008828, 0.000086, 0.06469008, 0.00162664, 0.28032369, 0.00162979, 0.00085813, 0.00039079, 0.00023123, 0.0001494, 0.00010916, 0.00009183, 0.00008977, 0.06469008, 0.00158375, 0.28032369, 0.0016235, 0.00085378, 0.00038278, 0.00022486, 0.00014475, 0.00010479, 0.00008829, 0.00008546, 0.08409711, 0.00161725] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ftol", "ptol", "gtol", "diag", "epsfcn", "factor", "maxfev", "maxiter", "nprint"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "list", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [100] }, { "type": "integer", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [500] }, { "type": "double", "attributes": {}, "value": [0] } ] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["convInfo", "data", "control"] }, "class": { "type": "character", "attributes": {}, "value": ["nls"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["isConv", "finTol", "stopCode", "stopMessage"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "character", "attributes": {}, "value": ["Relative error in the sum of squares is at most `ftol'."] } ] }, { "type": "language", "attributes": {}, "value": ["parent.frame()"] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["maxiter"] } }, "value": [ { "type": "NULL" } ] } ] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_Huntley2006"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "rhop", "ddot", "readerDdot", "n.MC", "fit.method", "mode", "plot", "verbose"] } }, "value": [ { "type": "symbol", "attributes": {}, "value": ["data"] }, { "type": "symbol", "attributes": {}, "value": ["rhop"] }, { "type": "symbol", "attributes": {}, "value": ["ddot"] }, { "type": "symbol", "attributes": {}, "value": ["readerDdot"] }, { "type": "double", "attributes": {}, "value": [100] }, { "type": "character", "attributes": {}, "value": ["GOK"] }, { "type": "character", "attributes": {}, "value": ["extrapolation"] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "logical", "attributes": {}, "value": [false] } ] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["results", "data", "Ln", "LxTx_tables", "fits"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["nN", "nN.error", "nN_SS", "nN_SS.error", "Meas_De", "Meas_De.error", "Meas_D0", "Meas_D0.error", "Meas_Age", "Meas_Age.error", "Sim_De", "Sim_De.error", "Sim_D0", "Sim_D0.error", "Sim_Age", "Sim_Age.error", "Sim_Age_2D0", "Sim_Age_2D0.error", "Unfaded_D0", "Unfaded_D0.error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.14824084] }, { "type": "double", "attributes": {}, "value": [0.01810982] }, { "type": "double", "attributes": {}, "value": [0.3685808] }, { "type": "double", "attributes": {}, "value": [0.07831698] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [536.99031798] }, { "type": "double", "attributes": {}, "value": [18.59865984] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": ["NaN"] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [563.34447109] }, { "type": "double", "attributes": {}, "value": [4.89853094] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": ["NaN"] }, { "type": "double", "attributes": {}, "value": [160.95556317] }, { "type": "double", "attributes": {}, "value": [8.16908915] }, { "type": "double", "attributes": {}, "value": [622.93205443] }, { "type": "double", "attributes": {}, "value": [14.00235557] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 0, 200, 400, 1000, 2000, 4000, 8000, 16000, 32000, 0, 200, 0, 200, 400, 1000, 2000, 4000, 8000, 16000, 32000, 0, 200, 0, 200, 400, 1000, 2000, 4000, 8000, 16000, 32000, 0, 200] }, { "type": "double", "attributes": {}, "value": [2.04833, 0.004, 0.512, 0.986, 2.193, 3.702, 5.76, 8.035, 9.526, 9.779, 0.013, 0.517, 0.003, 0.516, 0.98, 2.152, 3.637, 5.629, 7.704, 9.158, 9.368, 0.013, 0.531, 0.003, 0.518, 0.985, 2.197, 3.74, 5.81, 8.025, 9.525, 9.841, 0.01, 0.52] }, { "type": "double", "attributes": {}, "value": [0.195, 0.0002, 0.0256, 0.0493, 0.10965, 0.1851, 0.288, 0.40175, 0.4763, 0.48895, 0.00065, 0.02585, 0.00015, 0.0258, 0.049, 0.1076, 0.18185, 0.28145, 0.3852, 0.4579, 0.4684, 0.00065, 0.02655, 0.00015, 0.0259, 0.04925, 0.10985, 0.187, 0.2905, 0.40125, 0.47625, 0.49205, 0.0005, 0.026] } ] }, { "type": "double", "attributes": {}, "value": [0.14824084, 0.01411245] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["simulated", "measured", "unfaded"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 2.71828183, 2.74583938, 2.7736763, 2.80179543, 2.83019962, 2.85889178, 2.88787481, 2.91715167, 2.94672533, 2.9765988, 3.00677513, 3.03725738, 3.06804866, 3.09915209, 3.13057085, 3.16230812, 3.19436715, 3.22675118, 3.25946351, 3.29250748, 3.32588645, 3.3596038, 3.39366298, 3.42806745, 3.4628207, 3.49792627, 3.53338774, 3.56920872, 3.60539284, 3.64194379, 3.67886529, 3.71616109, 3.753835, 3.79189083, 3.83033248, 3.86916383, 3.90838885, 3.94801154, 3.98803591, 4.02846604, 4.06930604, 4.11056008, 4.15223234, 4.19432707, 4.23684855, 4.27980111, 4.32318912, 4.36701698, 4.41128917, 4.45601018, 4.50118457, 4.54681693, 4.5929119, 4.63947417, 4.68650849, 4.73401964, 4.78201244, 4.83049179, 4.87946262, 4.92892991, 4.97889869, 5.02937404, 5.08036111, 5.13186507, 5.18389118, 5.23644472, 5.28953104, 5.34315554, 5.39732368, 5.45204096, 5.50731296, 5.56314531, 5.61954367, 5.67651379, 5.73406147, 5.79219255, 5.85091296, 5.91022867, 5.97014571, 6.03067019, 6.09180825, 6.15356612, 6.21595008, 6.27896649, 6.34262174, 6.40692232, 6.47187477, 6.53748571, 6.60376179, 6.67070977, 6.73833646, 6.80664874, 6.87565356, 6.94535794, 7.01576898, 7.08689383, 7.15873973, 7.231314, 7.30462402, 7.37867724, 7.4534812, 7.52904352, 7.60537187, 7.68247403, 7.76035784, 7.83903123, 7.91850219, 7.99877882, 8.07986928, 8.16178183, 8.24452479, 8.32810659, 8.41253573, 8.4978208, 8.58397048, 8.67099353, 8.75889881, 8.84769526, 8.93739191, 9.0279979, 9.11952244, 9.21197484, 9.3053645, 9.39970094, 9.49499375, 9.59125263, 9.68848736, 9.78670784, 9.88592407, 9.98614614, 10.08738424, 10.18964869, 10.29294987, 10.39729831, 10.50270461, 10.60917951, 10.71673384, 10.82537854, 10.93512466, 11.04598337, 11.15796595, 11.2710838, 11.38534842, 11.50077143, 11.61736459, 11.73513975, 11.8541089, 11.97428414, 12.0956777, 12.21830193, 12.34216931, 12.46729244, 12.59368404, 12.72135699, 12.85032427, 12.980599, 13.11219443, 13.24512396, 13.37940111, 13.51503955, 13.65205306, 13.7904556, 13.93026125, 14.07148422, 14.21413889, 14.35823977, 14.50380153, 14.65083897, 14.79936706, 14.9494009, 15.10095577, 15.25404707, 15.4086904, 15.56490147, 15.72269619, 15.88209061, 16.04310095, 16.20574358, 16.37003507, 16.53599212, 16.70363161, 16.87297061, 17.04402635, 17.21681622, 17.39135781, 17.56766888, 17.74576737, 17.92567139, 18.10739926, 18.29096945, 18.47640065, 18.66371173, 18.85292174, 19.04404993, 19.23711576, 19.43213885, 19.62913907, 19.82813644, 20.02915122, 20.23220386, 20.43731501, 20.64450556, 20.85379657, 21.06520934, 21.27876539, 21.49448643, 21.71239443, 21.93251154, 22.15486017, 22.37946294, 22.6063427, 22.83552253, 23.06702575, 23.30087592, 23.53709683, 23.77571251, 24.01674725, 24.26022556, 24.50617222, 24.75461225, 25.00557092, 25.25907378, 25.51514662, 25.77381549, 26.0351067, 26.29904685, 26.56566278, 26.83498163, 27.10703079, 27.38183794, 27.65943106, 27.93983837, 28.22308841, 28.50921, 28.79823224, 29.09018456, 29.38509664, 29.6829985, 29.98392044, 30.28789309, 30.59494737, 30.90511452, 31.2184261, 31.53491399, 31.85461039, 32.17754782, 32.50375914, 32.83327755, 33.16613657, 33.50237007, 33.84201225, 34.18509767, 34.53166125, 34.88173824, 35.23536425, 35.59257528, 35.95340766, 36.3178981, 36.6860837, 37.05800191, 37.43369058, 37.81318792, 38.19653254, 38.58376347, 38.97492008, 39.37004218, 39.76916997, 40.17234407, 40.57960548, 40.99099565, 41.40655644, 41.82633012, 42.2503594, 42.67868743, 43.11135779, 43.5484145, 43.98990203, 44.43586529, 44.88634967, 45.34140099, 45.80106555, 46.26539013, 46.73442196, 47.20820877, 47.68679876, 48.17024063, 48.65858356, 49.15187725, 49.65017187, 50.15351813, 50.66196724, 51.17557094, 51.69438147, 52.21845163, 52.74783474, 53.28258466, 53.8227558, 54.36840311, 54.91958212, 55.4763489, 56.0387601, 56.60687294, 57.18074523, 57.76043535, 58.34600229, 58.93750562, 59.53500553, 60.13856281, 60.74823886, 61.36409571, 61.98619604, 62.61460313, 63.24938092, 63.89059399, 64.53830759, 65.19258762, 65.85350065, 66.52111391, 67.19549534, 67.87671355, 68.56483786, 69.25993826, 69.9620855, 70.671351, 71.38780694, 72.1115262, 72.84258242, 73.58104998, 74.32700402, 75.08052044, 75.8416759, 76.61054784, 77.38721449, 78.17175487, 78.96424882, 79.76477695, 80.57342072, 81.39026241, 82.21538511, 83.0488728, 83.89081025, 84.74128315, 85.60037803, 86.46818228, 87.3447842, 88.23027299, 89.12473873, 90.02827244, 90.94096605, 91.86291241, 92.79420532, 93.73493955, 94.68521081, 95.64511578, 96.61475213, 97.59421852, 98.58361459, 99.58304101, 100.59259948, 101.6123927, 102.64252444, 103.6830995, 104.73422377, 105.79600418, 106.86854877, 107.95196666, 109.04636808, 110.15186438, 111.26856805, 112.3965927, 113.5360531, 114.68706518, 115.84974606, 117.02421403, 118.21058858, 119.40899043, 120.6195415, 121.84236497, 123.07758524, 124.325328, 125.58572019, 126.85889005, 128.14496713, 129.44408227, 130.75636765, 132.0819568, 133.42098457, 134.77358721, 136.13990234, 137.52006898, 138.91422755, 140.32251989, 141.7450893, 143.18208051, 144.63363974, 146.09991465, 147.58105446, 149.07720984, 150.58853303, 152.11517779, 153.65729946, 155.21505494, 156.78860271, 158.37810289, 159.98371719, 161.60560897, 163.24394326, 164.89888674, 166.5706078, 168.25927653, 169.96506474, 171.68814598, 173.42869557, 175.1868906, 176.96290995, 178.75693434, 180.56914628, 182.39973017, 184.24887225, 186.11676066, 188.00358546, 189.90953862, 191.83481405, 193.77960765, 195.74411728, 197.72854282, 199.73308619, 201.75795133, 203.80334425, 205.86947308, 207.95654802, 210.06478142, 212.19438779, 214.3455838, 216.51858832, 218.71362245, 220.93090952, 223.17067512, 225.43314715, 227.71855578, 230.02713356, 232.35911537, 234.71473847, 237.09424254, 239.49786967, 241.92586443, 244.37847385, 246.85594747, 249.35853736, 251.88649814, 254.44008703, 257.01956382, 259.62519098, 262.25723362, 264.91595952, 267.60163919, 270.3145459, 273.05495567, 275.82314731, 278.61940248, 281.44400568, 284.2972443, 287.17940864, 290.09079195, 293.03169044, 296.00240333, 299.00323287, 302.0344844, 305.09646631, 308.18949016, 311.31387063, 314.46992562, 317.65797624, 320.87834685, 324.13136512, 327.41736201, 330.73667187, 334.08963241, 337.47658477, 340.89787357, 344.35384691, 347.8448564, 351.37125724, 354.93340822, 358.53167177, 362.166414, 365.83800471, 369.54681749, 373.29322967, 377.07762244, 380.90038083, 384.76189379, 388.66255422, 392.60275897, 396.58290895, 400.60340912, 404.66466853, 408.76710041, 412.91112214, 417.09715537, 421.325626, 425.59696426, 429.91160472, 434.26998638, 438.67255269, 443.11975157, 447.61203552, 452.14986159, 456.73369148, 461.36399158, 466.04123299, 470.7658916, 475.53844811, 480.35938811, 485.2292021, 490.14838557, 495.117439, 500.13686798, 505.2071832, 510.32890055, 515.50254113, 520.72863132, 526.00770286, 531.34029287, 536.7269439, 542.16820402, 547.66462685, 553.21677162, 558.82520323, 564.4904923, 570.21321526, 575.99395436, 581.83329775, 587.73183956, 593.69017994, 599.7089251, 605.78868744, 611.93008553, 618.13374422, 624.40029471, 630.73037457, 637.12462788, 643.5837052, 650.10826371, 656.69896725, 663.35648639, 670.08149849, 676.8746878, 683.73674547, 690.6683697, 697.67026573, 704.74314596, 711.88773004, 719.10474487, 726.39492476, 733.75901143, 741.19775415, 748.71190977, 756.30224281, 763.96952555, 771.71453809, 779.53806845, 787.44091263, 795.4238747, 803.48776689, 811.63340965, 819.86163175, 828.17327038, 836.5691712, 845.05018845, 853.61718503, 862.27103258, 871.01261158, 879.84281144, 888.7625306, 897.77267658, 906.87416611, 916.06792523, 925.35488935, 934.73600336, 944.21222176, 953.78450868, 963.45383807, 973.22119372, 983.0875694, 993.05396898, 1003.12140647, 1013.29090619, 1023.56350283, 1033.94024156, 1044.42217817, 1055.01037914, 1065.70592176, 1076.50989424, 1087.42339584, 1098.44753693, 1109.58343917, 1120.83223558, 1132.19507065, 1143.67310051, 1155.26749297, 1166.97942771, 1178.81009634, 1190.76070259, 1202.83246235, 1215.02660387, 1227.34436782, 1239.78700749, 1252.35578884, 1265.05199068, 1277.87690477, 1290.83183599, 1303.91810242, 1317.13703554, 1330.48998028, 1343.97829525, 1357.6033528, 1371.36653922, 1385.26925482, 1399.31291415, 1413.49894607, 1427.82879392, 1442.3039157, 1456.92578417, 1471.69588703, 1486.61572706, 1501.68682226, 1516.91070605, 1532.28892737, 1547.82305087, 1563.51465707, 1579.3653425, 1595.37671989, 1611.55041831, 1627.88808334, 1644.39137726, 1661.06197918, 1677.90158526, 1694.91190882, 1712.09468059, 1729.45164881, 1746.98457946, 1764.69525643, 1782.58548168, 1800.65707544, 1818.91187641, 1837.35174191, 1855.9785481, 1874.79419016, 1893.80058247, 1912.99965884, 1932.39337267, 1951.98369717, 1971.77262554, 1991.7621712, 2011.95436799, 2032.35127034, 2052.95495355, 2073.76751391, 2094.791069, 2116.02775785, 2137.47974118, 2159.14920161, 2181.0383439, 2203.14939514, 2225.48460503, 2248.04624604, 2270.83661371, 2293.85802683, 2317.1128277, 2340.60338238, 2364.33208091, 2388.30133755, 2412.51359104, 2436.97130486, 2461.67696745, 2486.63309246, 2511.84221907, 2537.30691215, 2563.02976261, 2589.0133876, 2615.26043083, 2641.77356279, 2668.55548104, 2695.6089105, 2722.93660372, 2750.54134114, 2778.4259314, 2806.59321159, 2835.0460476, 2863.78733435, 2892.8199961, 2922.14698678, 2951.77129025, 2981.69592062, 3011.92392257, 3042.45837162, 3073.30237451, 3104.45906943, 3135.93162642, 3167.72324764, 3199.83716772, 3232.27665408, 3265.04500725, 3298.14556125, 3331.58168388, 3365.35677708, 3399.4742773, 3433.93765579, 3468.75041903, 3503.91610903, 3539.43830371, 3575.32061726, 3611.56670051, 3648.18024131, 3685.1649649, 3722.52463426, 3760.26305054, 3798.38405343, 3836.89152154, 3875.78937278, 3915.08156482, 3954.77209541, 3994.86500286, 4035.36436641, 4076.27430665, 4117.59898594, 4159.34260886, 4201.50942258, 4244.10371737, 4287.12982695, 4330.59212901, 4374.4950456, 4418.84304361, 4463.64063521, 4508.89237831, 4554.60287704, 4600.77678219, 4647.41879171, 4694.53365118, 4742.12615428, 4790.20114329, 4838.76350958, 4887.81819412, 4937.37018796, 4987.42453274, 5037.98632123, 5089.06069782, 5140.65285905, 5192.76805415, 5245.41158556, 5298.58880947, 5352.30513639, 5406.56603166, 5461.37701604, 5516.74366625, 5572.67161555, 5629.16655431, 5686.23423058, 5743.88045071, 5802.11107988, 5860.93204274, 5920.34932401, 5980.36896909, 6040.99708465, 6102.23983927, 6164.10346408, 6226.59425337, 6289.71856525, 6353.48282226, 6417.89351209, 6482.95718818, 6548.68047041, 6615.07004576, 6682.13266902, 6749.87516346, 6818.30442151, 6887.42740548, 6957.25114826, 7027.78275405, 7099.02939905, 7170.99833223, 7243.69687605, 7317.13242719, 7391.31245733, 7466.24451388, 7541.93622078, 7618.39527926, 7695.62946861, 7773.646647, 7852.45475226, 7932.0618027, 8012.47589789, 8093.70521955, 8175.75803233, 8258.64268465, 8342.36760959, 8426.9413257, 8512.37243792, 8598.66963839, 8685.8417074, 8773.89751424, 8862.84601811, 8952.69626904, 9043.45740883, 9135.13867191, 9227.74938639, 9321.29897489, 9415.79695558, 9511.25294314, 9607.67664969, 9705.07788583, 9803.46656161, 9902.85268756, 10003.24637567, 10104.65784047, 10207.09740004, 10310.57547704, 10415.10259982, 10520.68940345, 10627.34663082, 10735.08513373, 10843.915874, 10953.84992458, 11064.89847066, 11177.07281083, 11290.38435824, 11404.84464173, 11520.46530702, 11637.25811788, 11755.23495737, 11874.40782899, 11994.78885795, 12116.39029236, 12239.22450453, 12363.30399217, 12488.64137971, 12615.24941956, 12743.1409934, 12872.32911352, 13002.82692411, 13134.64770263, 13267.80486113, 13402.31194764, 13538.18264755, 13675.43078495, 13814.07032412, 13954.11537088, 14095.58017407, 14238.47912697, 14382.82676879, 14528.63778612, 14675.92701445, 14824.70943967, 14975.0001996, 15126.81458551, 15280.16804371, 15435.07617709, 15591.55474671, 15749.61967344, 15909.28703953, 16070.57309029, 16233.49423569, 16398.0670521, 16564.30828392, 16732.23484531, 16901.86382188, 17073.21247247, 17246.29823091, 17421.13870772, 17597.751692, 17776.15515317, 17956.36724282, 18138.40629657, 18322.29083591, 18508.03957011, 18695.67139812, 18885.20541045, 19076.66089119, 19270.05731989, 19465.41437362, 19662.7519289, 19862.09006377, 20063.44905982, 20266.84940424, 20472.31179193, 20679.85712759, 20889.50652784, 21101.28132339, 21315.20306118, 21531.2935066, 21749.5746457, 21970.06868742, 22192.79806584, 22417.78544248, 22645.05370859, 22874.62598752, 23106.525637, 23340.77625159, 23577.40166502, 23816.42595267, 24057.87343397, 24301.76867491, 24548.13649052, 24797.00194742, 25048.39036631, 25302.32732463, 25558.83865911, 25817.95046839, 26079.68911571, 26344.08123158, 26611.15371648, 26880.9337436, 27153.44876161, 27428.72649745, 27706.79495916, 27987.68243871, 28271.4175149, 28558.02905625, 28847.54622395, 29139.99847481, 29435.4155643, 29733.8275495, 30035.26479225, 30339.75796216, 30647.33803978, 30958.03631974, 31271.88441392, 31588.91425468, 31909.15809811, 32232.6485273, 32559.41845567, 32889.5011303, 33222.93013535, 33559.73939541, 33899.96317904, 34243.63610218, 34590.79313169, 34941.46958896, 35295.70115342, 35653.52386625, 36014.97413398, 36380.08873224, 36748.90480949, 37121.45989077, 37497.79188159, 37877.93907169, 38261.94013901, 38649.83415361, 39041.66058162, 39437.45928929, 39837.270547, 40241.1350334, 40649.09383956, 41061.18847307, 41477.46086238, 41897.95336095, 42322.70875165, 42751.77025107, 43185.1815139, 43622.98663742, 44065.23016595, 44511.95709541, 44963.21287786, 45419.04342616, 45879.49511862, 46344.61480373, 46814.44980494, 47289.04792543, 47768.45745301, 48252.72716504, 48741.90633336, 49236.04472932, 49735.19262887, 50239.40081763, 50748.72059607, 51263.20378475, 51782.90272958, 52307.87030714, 52838.15993006, 53373.82555248, 53914.92167549, 54461.50335273, 55013.62619595, 55571.34638069, 56134.72065199, 56703.80633016, 57278.66131662, 57859.34409978, 58445.913761, 59038.4299806, 59636.95304393, 60241.5438475, 60852.26390518, 61469.17535447, 62092.34096279, 62721.82413392, 63357.68891437, 64000] }, { "type": "double", "attributes": {}, "value": [0, 0.00205295, 0.00207291, 0.00209306, 0.00211341, 0.00213395, 0.0021547, 0.00217564, 0.00219678, 0.00221814, 0.00223969, 0.00226146, 0.00228344, 0.00230563, 0.00232803, 0.00235065, 0.00237349, 0.00239655, 0.00241984, 0.00244335, 0.00246709, 0.00249105, 0.00251525, 0.00253968, 0.00256435, 0.00258926, 0.00261441, 0.0026398, 0.00266544, 0.00269132, 0.00271746, 0.00274384, 0.00277049, 0.00279739, 0.00282455, 0.00285197, 0.00287966, 0.00290761, 0.00293584, 0.00296433, 0.00299311, 0.00302216, 0.00305149, 0.0030811, 0.003111, 0.00314119, 0.00317167, 0.00320245, 0.00323352, 0.00326489, 0.00329657, 0.00332855, 0.00336084, 0.00339344, 0.00342635, 0.00345958, 0.00349314, 0.00352701, 0.00356122, 0.00359575, 0.00363062, 0.00366582, 0.00370136, 0.00373724, 0.00377347, 0.00381005, 0.00384699, 0.00388427, 0.00392192, 0.00395993, 0.0039983, 0.00403705, 0.00407617, 0.00411566, 0.00415554, 0.0041958, 0.00423644, 0.00427748, 0.00431891, 0.00436074, 0.00440298, 0.00444562, 0.00448867, 0.00453213, 0.00457601, 0.00462032, 0.00466505, 0.00471021, 0.0047558, 0.00480183, 0.00484831, 0.00489523, 0.0049426, 0.00499043, 0.00503871, 0.00508746, 0.00513668, 0.00518637, 0.00523654, 0.00528719, 0.00533832, 0.00538995, 0.00544207, 0.00549469, 0.00554781, 0.00560145, 0.0056556, 0.00571027, 0.00576546, 0.00582118, 0.00587743, 0.00593423, 0.00599157, 0.00604945, 0.00610789, 0.0061669, 0.00622646, 0.0062866, 0.00634731, 0.0064086, 0.00647048, 0.00653295, 0.00659602, 0.00665969, 0.00672397, 0.00678886, 0.00685438, 0.00692052, 0.00698729, 0.0070547, 0.00712276, 0.00719146, 0.00726082, 0.00733084, 0.00740153, 0.00747289, 0.00754494, 0.00761767, 0.0076911, 0.00776522, 0.00784005, 0.0079156, 0.00799186, 0.00806885, 0.00814658, 0.00822504, 0.00830425, 0.00838422, 0.00846494, 0.00854644, 0.00862871, 0.00871176, 0.0087956, 0.00888024, 0.00896568, 0.00905193, 0.009139, 0.0092269, 0.00931564, 0.00940521, 0.00949564, 0.00958692, 0.00967907, 0.00977209, 0.009866, 0.00996079, 0.01005649, 0.01015308, 0.0102506, 0.01034903, 0.0104484, 0.01054871, 0.01064997, 0.01075218, 0.01085536, 0.01095952, 0.01106466, 0.01117079, 0.01127793, 0.01138607, 0.01149524, 0.01160543, 0.01171667, 0.01182895, 0.0119423, 0.01205671, 0.01217219, 0.01228877, 0.01240644, 0.01252522, 0.01264512, 0.01276614, 0.01288831, 0.01301162, 0.01313609, 0.01326172, 0.01338854, 0.01351655, 0.01364575, 0.01377617, 0.01390781, 0.01404069, 0.01417481, 0.01431018, 0.01444682, 0.01458475, 0.01472396, 0.01486447, 0.01500629, 0.01514944, 0.01529393, 0.01543976, 0.01558696, 0.01573553, 0.01588548, 0.01603683, 0.01618959, 0.01634377, 0.01649939, 0.01665645, 0.01681497, 0.01697497, 0.01713646, 0.01729944, 0.01746393, 0.01762995, 0.01779751, 0.01796663, 0.01813731, 0.01830957, 0.01848342, 0.01865888, 0.01883596, 0.01901468, 0.01919505, 0.01937709, 0.0195608, 0.01974621, 0.01993332, 0.02012216, 0.02031274, 0.02050507, 0.02069917, 0.02089505, 0.02109273, 0.02129222, 0.02149355, 0.02169672, 0.02190175, 0.02210866, 0.02231746, 0.02252818, 0.02274081, 0.02295539, 0.02317193, 0.02339045, 0.02361095, 0.02383347, 0.02405801, 0.02428459, 0.02451324, 0.02474396, 0.02497677, 0.0252117, 0.02544876, 0.02568797, 0.02592934, 0.02617289, 0.02641865, 0.02666662, 0.02691684, 0.02716931, 0.02742406, 0.0276811, 0.02794045, 0.02820214, 0.02846618, 0.02873258, 0.02900138, 0.02927258, 0.02954622, 0.0298223, 0.03010085, 0.03038189, 0.03066543, 0.03095151, 0.03124013, 0.03153132, 0.0318251, 0.03212149, 0.03242051, 0.03272218, 0.03302652, 0.03333356, 0.03364331, 0.03395579, 0.03427103, 0.03458906, 0.03490988, 0.03523352, 0.03556001, 0.03588936, 0.0362216, 0.03655676, 0.03689484, 0.03723588, 0.03757989, 0.03792691, 0.03827695, 0.03863003, 0.03898618, 0.03934543, 0.03970778, 0.04007328, 0.04044193, 0.04081377, 0.04118882, 0.0415671, 0.04194864, 0.04233345, 0.04272157, 0.04311301, 0.0435078, 0.04390597, 0.04430754, 0.04471253, 0.04512097, 0.04553288, 0.04594829, 0.04636722, 0.04678969, 0.04721574, 0.04764538, 0.04807864, 0.04851555, 0.04895613, 0.0494004, 0.04984839, 0.05030013, 0.05075564, 0.05121495, 0.05167808, 0.05214505, 0.0526159, 0.05309064, 0.05356931, 0.05405192, 0.05453851, 0.0550291, 0.05552371, 0.05602238, 0.05652512, 0.05703196, 0.05754293, 0.05805805, 0.05857735, 0.05910086, 0.05962859, 0.06016058, 0.06069685, 0.06123743, 0.06178234, 0.0623316, 0.06288525, 0.0634433, 0.06400579, 0.06457274, 0.06514417, 0.0657201, 0.06630058, 0.06688561, 0.06747522, 0.06806944, 0.0686683, 0.06927181, 0.06988001, 0.07049291, 0.07111055, 0.07173293, 0.0723601, 0.07299207, 0.07362887, 0.07427052, 0.07491705, 0.07556847, 0.07622481, 0.07688609, 0.07755234, 0.07822358, 0.07889984, 0.07958112, 0.08026746, 0.08095888, 0.0816554, 0.08235703, 0.08306381, 0.08377575, 0.08449287, 0.0852152, 0.08594274, 0.08667553, 0.08741358, 0.08815691, 0.08890554, 0.08965949, 0.09041877, 0.09118341, 0.09195342, 0.09272882, 0.09350962, 0.09429584, 0.09508749, 0.0958846, 0.09668718, 0.09749523, 0.09830879, 0.09912785, 0.09995243, 0.10078255, 0.10161821, 0.10245943, 0.10330622, 0.1041586, 0.10501656, 0.10588012, 0.10674929, 0.10762408, 0.1085045, 0.10939054, 0.11028223, 0.11117955, 0.11208253, 0.11299117, 0.11390546, 0.11482541, 0.11575103, 0.11668231, 0.11761927, 0.11856188, 0.11951017, 0.12046412, 0.12142374, 0.12238902, 0.12335995, 0.12433654, 0.12531878, 0.12630666, 0.12730018, 0.12829932, 0.12930409, 0.13031446, 0.13133043, 0.13235199, 0.13337912, 0.13441181, 0.13545005, 0.13649382, 0.13754311, 0.1385979, 0.13965816, 0.14072388, 0.14179504, 0.14287162, 0.14395359, 0.14504093, 0.14613361, 0.14723161, 0.14833491, 0.14944346, 0.15055725, 0.15167624, 0.15280039, 0.15392968, 0.15506407, 0.15620352, 0.157348, 0.15849747, 0.15965188, 0.1608112, 0.16197539, 0.16314439, 0.16431817, 0.16549667, 0.16667985, 0.16786766, 0.16906005, 0.17025696, 0.17145834, 0.17266414, 0.1738743, 0.17508876, 0.17630745, 0.17753033, 0.17875733, 0.17998837, 0.18122341, 0.18246236, 0.18370516, 0.18495174, 0.18620203, 0.18745595, 0.18871343, 0.1899744, 0.19123876, 0.19250645, 0.19377738, 0.19505148, 0.19632864, 0.1976088, 0.19889185, 0.20017772, 0.2014663, 0.20275751, 0.20405126, 0.20534744, 0.20664597, 0.20794673, 0.20924964, 0.21055459, 0.21186147, 0.21317018, 0.21448061, 0.21579266, 0.21710622, 0.21842116, 0.21973739, 0.22105479, 0.22237324, 0.22369262, 0.22501282, 0.22633372, 0.22765518, 0.2289771, 0.23029935, 0.23162179, 0.23294432, 0.23426678, 0.23558907, 0.23691104, 0.23823256, 0.2395535, 0.24087373, 0.24219311, 0.24351151, 0.24482878, 0.24614478, 0.24745939, 0.24877245, 0.25008383, 0.25139338, 0.25270096, 0.25400643, 0.25530963, 0.25661043, 0.25790867, 0.25920422, 0.26049692, 0.26178662, 0.26307318, 0.26435645, 0.26563627, 0.2669125, 0.26818499, 0.26945358, 0.27071813, 0.27197848, 0.27323448, 0.27448599, 0.27573285, 0.27697492, 0.27821203, 0.27944404, 0.28067081, 0.28189218, 0.28310799, 0.28431811, 0.28552239, 0.28672068, 0.28791282, 0.28909868, 0.29027812, 0.29145097, 0.29261711, 0.2937764, 0.29492868, 0.29607382, 0.29721169, 0.29834214, 0.29946503, 0.30058025, 0.30168765, 0.3027871, 0.30387847, 0.30496164, 0.30603648, 0.30710287, 0.30816068, 0.3092098, 0.31025011, 0.3112815, 0.31230385, 0.31331705, 0.314321, 0.31531559, 0.31630071, 0.31727628, 0.31824218, 0.31919834, 0.32014465, 0.32108103, 0.32200739, 0.32292366, 0.32382975, 0.32472558, 0.32561109, 0.3264862, 0.32735086, 0.32820499, 0.32904854, 0.32988145, 0.33070367, 0.33151516, 0.33231586, 0.33310575, 0.33388477, 0.3346529, 0.33541011, 0.33615637, 0.33689166, 0.33761597, 0.33832927, 0.33903156, 0.33972283, 0.34040308, 0.34107231, 0.34173052, 0.34237773, 0.34301395, 0.3436392, 0.34425349, 0.34485685, 0.34544931, 0.34603091, 0.34660168, 0.34716165, 0.34771088, 0.34824942, 0.34877731, 0.3492946, 0.34980137, 0.35029767, 0.35078356, 0.35125912, 0.35172442, 0.35217954, 0.35262455, 0.35305954, 0.3534846, 0.35389981, 0.35430527, 0.35470106, 0.3550873, 0.35546408, 0.3558315, 0.35618968, 0.35653871, 0.35687871, 0.35720979, 0.35753208, 0.35784568, 0.35815072, 0.35844731, 0.35873559, 0.35901567, 0.35928769, 0.35955177, 0.35980804, 0.36005663, 0.36029768, 0.36053132, 0.36075768, 0.3609769, 0.36118911, 0.36139445, 0.36159305, 0.36178506, 0.36197062, 0.36214985, 0.36232289, 0.36248989, 0.36265098, 0.3628063, 0.36295599, 0.36310018, 0.363239, 0.3633726, 0.36350111, 0.36362465, 0.36374337, 0.3638574, 0.36396685, 0.36407187, 0.36417259, 0.36426912, 0.36436159, 0.36445013, 0.36453486, 0.36461589, 0.36469335, 0.36476736, 0.36483802, 0.36490545, 0.36496977, 0.36503107, 0.36508947, 0.36514507, 0.36519798, 0.36524829, 0.3652961, 0.36534151, 0.36538462, 0.36542551, 0.36546427, 0.365501, 0.36553577, 0.36556866, 0.36559977, 0.36562916, 0.36565692, 0.36568311, 0.36570781, 0.36573109, 0.365753, 0.36577363, 0.36579302, 0.36581125, 0.36582836, 0.36584442, 0.36585947, 0.36587358, 0.36588678, 0.36589913, 0.36591068, 0.36592146, 0.36593153, 0.36594092, 0.36594966, 0.3659578, 0.36596538, 0.36597242, 0.36597896, 0.36598503, 0.36599065, 0.36599586, 0.36600069, 0.36600515, 0.36600927, 0.36601307, 0.36601658, 0.36601981, 0.36602278, 0.36602552, 0.36602803, 0.36603034, 0.36603246, 0.3660344, 0.36603617, 0.36603779, 0.36603927, 0.36604063, 0.36604186, 0.36604298, 0.366044, 0.36604493, 0.36604577, 0.36604653, 0.36604723, 0.36604785, 0.36604842, 0.36604893, 0.36604939, 0.3660498, 0.36605017, 0.36605051, 0.36605081, 0.36605108, 0.36605132, 0.36605154, 0.36605173, 0.3660519, 0.36605205, 0.36605219, 0.36605231, 0.36605242, 0.36605251, 0.3660526, 0.36605267, 0.36605274, 0.3660528, 0.36605285, 0.36605289, 0.36605293, 0.36605297, 0.366053, 0.36605302, 0.36605305, 0.36605307, 0.36605309, 0.3660531, 0.36605311, 0.36605313, 0.36605314, 0.36605314, 0.36605315, 0.36605316, 0.36605316, 0.36605317, 0.36605317, 0.36605318, 0.36605318, 0.36605318, 0.36605318, 0.36605318, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319] }, { "type": "double", "attributes": {}, "value": [0, 0.00015717, 0.0001587, 0.00016024, 0.0001618, 0.00016337, 0.00016496, 0.00016657, 0.00016818, 0.00016982, 0.00017147, 0.00017314, 0.00017482, 0.00017652, 0.00017823, 0.00017996, 0.00018171, 0.00018348, 0.00018526, 0.00018706, 0.00018888, 0.00019071, 0.00019257, 0.00019444, 0.00019632, 0.00019823, 0.00020016, 0.0002021, 0.00020406, 0.00020605, 0.00020805, 0.00021007, 0.00021211, 0.00021417, 0.00021624, 0.00021834, 0.00022046, 0.0002226, 0.00022477, 0.00022695, 0.00022915, 0.00023137, 0.00023362, 0.00023589, 0.00023818, 0.00024049, 0.00024282, 0.00024518, 0.00024756, 0.00024996, 0.00025238, 0.00025483, 0.0002573, 0.0002598, 0.00026232, 0.00026486, 0.00026743, 0.00027003, 0.00027264, 0.00027529, 0.00027796, 0.00028065, 0.00028337, 0.00028612, 0.00028889, 0.00029169, 0.00029452, 0.00029738, 0.00030026, 0.00030317, 0.00030611, 0.00030907, 0.00031207, 0.00031509, 0.00031814, 0.00032123, 0.00032434, 0.00032748, 0.00033065, 0.00033386, 0.00033709, 0.00034035, 0.00034365, 0.00034698, 0.00035034, 0.00035373, 0.00035715, 0.00036061, 0.0003641, 0.00036762, 0.00037118, 0.00037477, 0.0003784, 0.00038206, 0.00038576, 0.00038949, 0.00039326, 0.00039706, 0.00040091, 0.00040478, 0.0004087, 0.00041265, 0.00041664, 0.00042067, 0.00042474, 0.00042884, 0.00043299, 0.00043717, 0.0004414, 0.00044566, 0.00044997, 0.00045432, 0.00045871, 0.00046314, 0.00046762, 0.00047213, 0.00047669, 0.0004813, 0.00048594, 0.00049064, 0.00049537, 0.00050016, 0.00050499, 0.00050986, 0.00051478, 0.00051975, 0.00052477, 0.00052983, 0.00053494, 0.0005401, 0.00054531, 0.00055057, 0.00055588, 0.00056124, 0.00056666, 0.00057212, 0.00057763, 0.0005832, 0.00058882, 0.0005945, 0.00060023, 0.00060601, 0.00061185, 0.00061774, 0.0006237, 0.0006297, 0.00063577, 0.00064189, 0.00064807, 0.00065431, 0.00066061, 0.00066697, 0.00067338, 0.00067986, 0.00068641, 0.00069301, 0.00069967, 0.0007064, 0.0007132, 0.00072006, 0.00072698, 0.00073397, 0.00074102, 0.00074814, 0.00075533, 0.00076259, 0.00076992, 0.00077731, 0.00078478, 0.00079231, 0.00079992, 0.0008076, 0.00081535, 0.00082318, 0.00083108, 0.00083905, 0.0008471, 0.00085523, 0.00086343, 0.00087171, 0.00088007, 0.0008885, 0.00089702, 0.00090562, 0.00091429, 0.00092305, 0.00093189, 0.00094082, 0.00094983, 0.00095892, 0.0009681, 0.00097737, 0.00098672, 0.00099616, 0.00100569, 0.00101531, 0.00102502, 0.00103482, 0.00104471, 0.00105469, 0.00106477, 0.00107494, 0.00108521, 0.00109558, 0.00110604, 0.0011166, 0.00112725, 0.00113801, 0.00114887, 0.00115983, 0.00117089, 0.00118206, 0.00119333, 0.0012047, 0.00121618, 0.00122777, 0.00123946, 0.00125127, 0.00126318, 0.0012752, 0.00128734, 0.00129959, 0.00131195, 0.00132443, 0.00133702, 0.00134974, 0.00136256, 0.00137551, 0.00138858, 0.00140177, 0.00141508, 0.00142851, 0.00144207, 0.00145575, 0.00146956, 0.00148349, 0.00149756, 0.00151175, 0.00152608, 0.00154054, 0.00155513, 0.00156985, 0.00158471, 0.00159971, 0.00161484, 0.00163012, 0.00164553, 0.00166108, 0.00167678, 0.00169262, 0.00170861, 0.00172474, 0.00174102, 0.00175745, 0.00177402, 0.00179075, 0.00180764, 0.00182467, 0.00184186, 0.00185921, 0.00187671, 0.00189438, 0.0019122, 0.00193019, 0.00194834, 0.00196665, 0.00198513, 0.00200378, 0.00202259, 0.00204158, 0.00206073, 0.00208006, 0.00209956, 0.00211924, 0.0021391, 0.00215913, 0.00217935, 0.00219974, 0.00222032, 0.00224109, 0.00226203, 0.00228317, 0.0023045, 0.00232601, 0.00234772, 0.00236962, 0.00239172, 0.00241401, 0.0024365, 0.0024592, 0.00248209, 0.00250518, 0.00252848, 0.00255199, 0.0025757, 0.00259963, 0.00262376, 0.00264811, 0.00267267, 0.00269745, 0.00272245, 0.00274766, 0.0027731, 0.00279876, 0.00282464, 0.00285075, 0.00287709, 0.00290365, 0.00293045, 0.00295748, 0.00298475, 0.00301225, 0.00304, 0.00306798, 0.0030962, 0.00312467, 0.00315338, 0.00318234, 0.00321155, 0.00324102, 0.00327073, 0.0033007, 0.00333092, 0.00336141, 0.00339215, 0.00342316, 0.00345443, 0.00348596, 0.00351776, 0.00354984, 0.00358218, 0.0036148, 0.00364769, 0.00368086, 0.00371431, 0.00374804, 0.00378206, 0.00381635, 0.00385094, 0.00388581, 0.00392098, 0.00395643, 0.00399218, 0.00402823, 0.00406458, 0.00410122, 0.00413817, 0.00417543, 0.00421298, 0.00425085, 0.00428903, 0.00432752, 0.00436632, 0.00440544, 0.00444488, 0.00448464, 0.00452471, 0.00456512, 0.00460585, 0.0046469, 0.00468829, 0.00473001, 0.00477206, 0.00481444, 0.00485717, 0.00490023, 0.00494364, 0.00498739, 0.00503148, 0.00507592, 0.00512071, 0.00516585, 0.00521134, 0.00525719, 0.00530339, 0.00534996, 0.00539688, 0.00544417, 0.00549182, 0.00553983, 0.00558822, 0.00563697, 0.00568609, 0.00573559, 0.00578546, 0.00583571, 0.00588634, 0.00593735, 0.00598874, 0.00604051, 0.00609267, 0.00614521, 0.00619815, 0.00625147, 0.00630519, 0.0063593, 0.0064138, 0.00646871, 0.00652401, 0.00657971, 0.00663581, 0.00669231, 0.00674922, 0.00680654, 0.00686426, 0.00692239, 0.00698093, 0.00703988, 0.00709924, 0.00715902, 0.00721921, 0.00727982, 0.00734085, 0.00740229, 0.00746416, 0.00752644, 0.00758915, 0.00765228, 0.00771583, 0.00777981, 0.00784421, 0.00790904, 0.0079743, 0.00803998, 0.0081061, 0.00817264, 0.00823961, 0.00830702, 0.00837485, 0.00844312, 0.00851182, 0.00858095, 0.00865051, 0.00872051, 0.00879094, 0.00886181, 0.0089331, 0.00900484, 0.009077, 0.0091496, 0.00922264, 0.0092961, 0.00937001, 0.00944434, 0.00951911, 0.00959431, 0.00966994, 0.009746, 0.00982249, 0.00989942, 0.00997677, 0.01005455, 0.01013276, 0.0102114, 0.01029046, 0.01036995, 0.01044986, 0.01053019, 0.01061094, 0.01069212, 0.01077371, 0.01085572, 0.01093814, 0.01102097, 0.01110422, 0.01118787, 0.01127193, 0.0113564, 0.01144127, 0.01152654, 0.01161221, 0.01169828, 0.01178473, 0.01187158, 0.01195882, 0.01204644, 0.01213444, 0.01222282, 0.01231158, 0.01240071, 0.0124902, 0.01258007, 0.01267029, 0.01276088, 0.01285181, 0.0129431, 0.01303474, 0.01312671, 0.01321903, 0.01331168, 0.01340466, 0.01349796, 0.01359158, 0.01368552, 0.01377977, 0.01387432, 0.01396917, 0.01406432, 0.01415976, 0.01425548, 0.01435148, 0.01444775, 0.01454429, 0.01464109, 0.01473814, 0.01483544, 0.01493299, 0.01503076, 0.01512877, 0.015227, 0.01532545, 0.0154241, 0.01552295, 0.015622, 0.01572124, 0.01582065, 0.01592024, 0.01601999, 0.01611989, 0.01621994, 0.01632014, 0.01642046, 0.01652091, 0.01662148, 0.01672215, 0.01682292, 0.01692378, 0.01702472, 0.01712573, 0.0172268, 0.01732793, 0.0174291, 0.0175303, 0.01763153, 0.01773278, 0.01783403, 0.01793528, 0.01803651, 0.01813772, 0.01823889, 0.01834003, 0.0184411, 0.01854211, 0.01864305, 0.0187439, 0.01884465, 0.01894529, 0.01904582, 0.01914622, 0.01924648, 0.01934658, 0.01944653, 0.0195463, 0.01964589, 0.01974528, 0.01984447, 0.01994344, 0.02004218, 0.02014067, 0.02023892, 0.0203369, 0.02043461, 0.02053203, 0.02062915, 0.02072596, 0.02082246, 0.02091861, 0.02101443, 0.02110989, 0.02120498, 0.02129969, 0.02139401, 0.02148793, 0.02158144, 0.02167452, 0.02176717, 0.02185937, 0.02195111, 0.02204238, 0.02213316, 0.02222346, 0.02231325, 0.02240253, 0.02249129, 0.0225795, 0.02266718, 0.02275429, 0.02284084, 0.0229268, 0.02301218, 0.02309697, 0.02318114, 0.02326469, 0.02334762, 0.02342991, 0.02351155, 0.02359254, 0.02367286, 0.0237525, 0.02383146, 0.02390973, 0.0239873, 0.02406416, 0.02414031, 0.02421573, 0.02429042, 0.02436437, 0.02443757, 0.02451002, 0.02458171, 0.02465263, 0.02472278, 0.02479215, 0.02486073, 0.02492853, 0.02499552, 0.02506172, 0.02512711, 0.02519169, 0.02525546, 0.02531841, 0.02538054, 0.02544184, 0.02550231, 0.02556195, 0.02562076, 0.02567873, 0.02573586, 0.02579216, 0.02584761, 0.02590222, 0.02595599, 0.02600891, 0.02606099, 0.02611222, 0.02616262, 0.02621217, 0.02626087, 0.02630874, 0.02635577, 0.02640197, 0.02644732, 0.02649185, 0.02653555, 0.02657842, 0.02662047, 0.0266617, 0.02670211, 0.02674172, 0.02678051, 0.02681851, 0.02685571, 0.02689212, 0.02692774, 0.02696258, 0.02699665, 0.02702996, 0.0270625, 0.02709429, 0.02712533, 0.02715563, 0.0271852, 0.02721405, 0.02724218, 0.0272696, 0.02729632, 0.02732235, 0.0273477, 0.02737237, 0.02739638, 0.02741973, 0.02744244, 0.02746451, 0.02748595, 0.02750678, 0.027527, 0.02754662, 0.02756565, 0.0275841, 0.02760199, 0.02761932, 0.0276361, 0.02765235, 0.02766807, 0.02768328, 0.02769798, 0.02771218, 0.0277259, 0.02773915, 0.02775194, 0.02776427, 0.02777616, 0.02778762, 0.02779866, 0.02780929, 0.02781952, 0.02782935, 0.02783881, 0.0278479, 0.02785663, 0.02786501, 0.02787305, 0.02788076, 0.02788815, 0.02789523, 0.02790201, 0.0279085, 0.0279147, 0.02792063, 0.0279263, 0.02793171, 0.02793687, 0.02794179, 0.02794649, 0.02795096, 0.02795522, 0.02795927, 0.02796312, 0.02796678, 0.02797025, 0.02797355, 0.02797669, 0.02797965, 0.02798246, 0.02798513, 0.02798765, 0.02799003, 0.02799228, 0.0279944, 0.02799641, 0.0279983, 0.02800008, 0.02800176, 0.02800334, 0.02800482, 0.02800622, 0.02800753, 0.02800876, 0.02800991, 0.02801099, 0.028012, 0.02801295, 0.02801383, 0.02801466, 0.02801543, 0.02801614, 0.02801681, 0.02801744, 0.02801802, 0.02801856, 0.02801906, 0.02801952, 0.02801995, 0.02802035, 0.02802072, 0.02802106, 0.02802138, 0.02802167, 0.02802194, 0.02802218, 0.02802241, 0.02802262, 0.02802281, 0.02802299, 0.02802315, 0.0280233, 0.02802344, 0.02802356, 0.02802367, 0.02802378, 0.02802387, 0.02802396, 0.02802404, 0.02802411, 0.02802417, 0.02802423, 0.02802428, 0.02802433, 0.02802437, 0.02802441, 0.02802445, 0.02802448, 0.02802451, 0.02802454, 0.02802456, 0.02802458, 0.0280246, 0.02802461, 0.02802463, 0.02802464, 0.02802465, 0.02802466, 0.02802467, 0.02802468, 0.02802469, 0.0280247, 0.0280247, 0.02802471, 0.02802471, 0.02802471, 0.02802472, 0.02802472, 0.02802472, 0.02802473, 0.02802473, 0.02802473, 0.02802473, 0.02802473, 0.02802473, 0.02802473, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8] }, { "type": "double", "attributes": {}, "value": [0.00028949, 0.03705424, 0.07135836, 0.15871083, 0.26791951, 0.41686018, 0.58150548, 0.68941148, 0.70772148, 0.00094083, 0.0374161, 0.00021711, 0.03734372, 0.07092413, 0.1557436, 0.26321536, 0.40737951, 0.55755049, 0.66277874, 0.67797677, 0.00094083, 0.0384293, 0.00021711, 0.03748847, 0.07128599, 0.15900032, 0.27066963, 0.42047876, 0.58078176, 0.6893391, 0.71220852, 0.00072372, 0.03763321] }, { "type": "double", "attributes": {}, "value": [0.00001447, 0.00185271, 0.00356792, 0.00793554, 0.01339598, 0.02084301, 0.02907527, 0.03447057, 0.03538607, 0.00004704, 0.0018708, 0.00001086, 0.00186719, 0.00354621, 0.00778718, 0.01316077, 0.02036898, 0.02787752, 0.03313894, 0.03389884, 0.00004704, 0.00192146, 0.00001086, 0.00187442, 0.0035643, 0.00795002, 0.01353348, 0.02102394, 0.02903909, 0.03446696, 0.03561043, 0.00003619, 0.00188166] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8] }, { "type": "double", "attributes": {}, "value": [0, 0.04794447, 0.0935711, 0.211967, 0.36301473, 0.57328812, 0.81209464, 0.97816615, 1.02068573, 0, 0.04841268, 0, 0.04831904, 0.09300171, 0.2080041, 0.35664089, 0.56024979, 0.77864059, 0.9403785, 0.9777875, 0, 0.04972366, 0, 0.04850632, 0.0934762, 0.21235363, 0.36674098, 0.57826457, 0.81108395, 0.97806346, 1.027157, 0, 0.0486936] }, { "type": "double", "attributes": {}, "value": [0, 0.00367059, 0.00716373, 0.01622802, 0.02779212, 0.04389048, 0.06217332, 0.07488762, 0.07814289, 0, 0.00370644, 0, 0.00369927, 0.00712014, 0.01592463, 0.02730414, 0.04289228, 0.0596121, 0.07199463, 0.07485863, 0, 0.0038068, 0, 0.00371361, 0.00715646, 0.01625762, 0.0280774, 0.04427147, 0.06209594, 0.07487976, 0.07863832, 0, 0.00372794] } ] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["simulated", "measured", "unfaded"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["convInfo", "data", "control"] }, "class": { "type": "character", "attributes": {}, "value": ["nls"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["isConv", "finIter", "finTol", "stopCode", "stopMessage"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [3] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "character", "attributes": {}, "value": ["Relative error in the sum of squares is at most `ftol'."] } ] }, { "type": "symbol", "attributes": {}, "value": ["data"] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ftol", "ptol", "gtol", "diag", "epsfcn", "factor", "maxfev", "maxiter", "nprint"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "list", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [100] }, { "type": "integer", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [500] }, { "type": "double", "attributes": {}, "value": [0] } ] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["convInfo", "data", "weights", "control"] }, "class": { "type": "character", "attributes": {}, "value": ["nls"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["isConv", "finIter", "finTol", "stopCode", "stopMessage"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [4] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "character", "attributes": {}, "value": ["Relative error in the sum of squares is at most `ftol'."] } ] }, { "type": "symbol", "attributes": {}, "value": ["data"] }, { "type": "double", "attributes": {}, "value": [0.00021563, 0.21024277, 0.00164252, 0.00085291, 0.00038348, 0.00022717, 0.000146, 0.00010466, 0.00008828, 0.000086, 0.06469008, 0.00162664, 0.28032369, 0.00162979, 0.00085813, 0.00039079, 0.00023123, 0.0001494, 0.00010916, 0.00009183, 0.00008977, 0.06469008, 0.00158375, 0.28032369, 0.0016235, 0.00085378, 0.00038278, 0.00022486, 0.00014475, 0.00010479, 0.00008829, 0.00008546, 0.08409711, 0.00161725] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ftol", "ptol", "gtol", "diag", "epsfcn", "factor", "maxfev", "maxiter", "nprint"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "list", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [100] }, { "type": "integer", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [500] }, { "type": "double", "attributes": {}, "value": [0] } ] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["convInfo", "data", "control"] }, "class": { "type": "character", "attributes": {}, "value": ["nls"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["isConv", "finTol", "stopCode", "stopMessage"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "character", "attributes": {}, "value": ["Relative error in the sum of squares is at most `ftol'."] } ] }, { "type": "language", "attributes": {}, "value": ["parent.frame()"] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["maxiter"] } }, "value": [ { "type": "NULL" } ] } ] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_Huntley2006"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "rhop", "ddot", "readerDdot", "n.MC", "fit.method", "fit.force_through_origin", "mode", "plot", "verbose"] } }, "value": [ { "type": "symbol", "attributes": {}, "value": ["data"] }, { "type": "symbol", "attributes": {}, "value": ["rhop"] }, { "type": "symbol", "attributes": {}, "value": ["ddot"] }, { "type": "symbol", "attributes": {}, "value": ["readerDdot"] }, { "type": "double", "attributes": {}, "value": [100] }, { "type": "character", "attributes": {}, "value": ["EXP"] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "character", "attributes": {}, "value": ["extrapolation"] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "logical", "attributes": {}, "value": [false] } ] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["results", "data", "Ln", "LxTx_tables", "fits"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["nN", "nN.error", "nN_SS", "nN_SS.error", "Meas_De", "Meas_De.error", "Meas_D0", "Meas_D0.error", "Meas_Age", "Meas_Age.error", "Sim_De", "Sim_De.error", "Sim_D0", "Sim_D0.error", "Sim_Age", "Sim_Age.error", "Sim_Age_2D0", "Sim_Age_2D0.error", "Unfaded_D0", "Unfaded_D0.error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.14824084] }, { "type": "double", "attributes": {}, "value": [0.01810982] }, { "type": "double", "attributes": {}, "value": [0.36860656] }, { "type": "double", "attributes": {}, "value": [0.07830173] }, { "type": "double", "attributes": {}, "value": [130.89701899] }, { "type": "double", "attributes": {}, "value": [13.00497477] }, { "type": "double", "attributes": {}, "value": [536.99089942] }, { "type": "double", "attributes": {}, "value": [19.44761586] }, { "type": "double", "attributes": {}, "value": [18.69957414] }, { "type": "double", "attributes": {}, "value": [2.0798844] }, { "type": "double", "attributes": {}, "value": [294.38922249] }, { "type": "double", "attributes": {}, "value": [41.36815279] }, { "type": "double", "attributes": {}, "value": [563.32749802] }, { "type": "double", "attributes": {}, "value": [4.83549707] }, { "type": "double", "attributes": {}, "value": [42.05560321] }, { "type": "double", "attributes": {}, "value": [6.27273807] }, { "type": "double", "attributes": {}, "value": [160.95071372] }, { "type": "double", "attributes": {}, "value": [8.1657839] }, { "type": "double", "attributes": {}, "value": [622.93205551] }, { "type": "double", "attributes": {}, "value": [14.00235892] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 0, 200, 400, 1000, 2000, 4000, 8000, 16000, 32000, 0, 200, 0, 200, 400, 1000, 2000, 4000, 8000, 16000, 32000, 0, 200, 0, 200, 400, 1000, 2000, 4000, 8000, 16000, 32000, 0, 200] }, { "type": "double", "attributes": {}, "value": [2.04833, 0.004, 0.512, 0.986, 2.193, 3.702, 5.76, 8.035, 9.526, 9.779, 0.013, 0.517, 0.003, 0.516, 0.98, 2.152, 3.637, 5.629, 7.704, 9.158, 9.368, 0.013, 0.531, 0.003, 0.518, 0.985, 2.197, 3.74, 5.81, 8.025, 9.525, 9.841, 0.01, 0.52] }, { "type": "double", "attributes": {}, "value": [0.195, 0.0002, 0.0256, 0.0493, 0.10965, 0.1851, 0.288, 0.40175, 0.4763, 0.48895, 0.00065, 0.02585, 0.00015, 0.0258, 0.049, 0.1076, 0.18185, 0.28145, 0.3852, 0.4579, 0.4684, 0.00065, 0.02655, 0.00015, 0.0259, 0.04925, 0.10985, 0.187, 0.2905, 0.40125, 0.47625, 0.49205, 0.0005, 0.026] } ] }, { "type": "double", "attributes": {}, "value": [0.14824084, 0.01411245] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["simulated", "measured", "unfaded"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 2.71828183, 2.74583938, 2.7736763, 2.80179543, 2.83019962, 2.85889178, 2.88787481, 2.91715167, 2.94672533, 2.9765988, 3.00677513, 3.03725738, 3.06804866, 3.09915209, 3.13057085, 3.16230812, 3.19436715, 3.22675118, 3.25946351, 3.29250748, 3.32588645, 3.3596038, 3.39366298, 3.42806745, 3.4628207, 3.49792627, 3.53338774, 3.56920872, 3.60539284, 3.64194379, 3.67886529, 3.71616109, 3.753835, 3.79189083, 3.83033248, 3.86916383, 3.90838885, 3.94801154, 3.98803591, 4.02846604, 4.06930604, 4.11056008, 4.15223234, 4.19432707, 4.23684855, 4.27980111, 4.32318912, 4.36701698, 4.41128917, 4.45601018, 4.50118457, 4.54681693, 4.5929119, 4.63947417, 4.68650849, 4.73401964, 4.78201244, 4.83049179, 4.87946262, 4.92892991, 4.97889869, 5.02937404, 5.08036111, 5.13186507, 5.18389118, 5.23644472, 5.28953104, 5.34315554, 5.39732368, 5.45204096, 5.50731296, 5.56314531, 5.61954367, 5.67651379, 5.73406147, 5.79219255, 5.85091296, 5.91022867, 5.97014571, 6.03067019, 6.09180825, 6.15356612, 6.21595008, 6.27896649, 6.34262174, 6.40692232, 6.47187477, 6.53748571, 6.60376179, 6.67070977, 6.73833646, 6.80664874, 6.87565356, 6.94535794, 7.01576898, 7.08689383, 7.15873973, 7.231314, 7.30462402, 7.37867724, 7.4534812, 7.52904352, 7.60537187, 7.68247403, 7.76035784, 7.83903123, 7.91850219, 7.99877882, 8.07986928, 8.16178183, 8.24452479, 8.32810659, 8.41253573, 8.4978208, 8.58397048, 8.67099353, 8.75889881, 8.84769526, 8.93739191, 9.0279979, 9.11952244, 9.21197484, 9.3053645, 9.39970094, 9.49499375, 9.59125263, 9.68848736, 9.78670784, 9.88592407, 9.98614614, 10.08738424, 10.18964869, 10.29294987, 10.39729831, 10.50270461, 10.60917951, 10.71673384, 10.82537854, 10.93512466, 11.04598337, 11.15796595, 11.2710838, 11.38534842, 11.50077143, 11.61736459, 11.73513975, 11.8541089, 11.97428414, 12.0956777, 12.21830193, 12.34216931, 12.46729244, 12.59368404, 12.72135699, 12.85032427, 12.980599, 13.11219443, 13.24512396, 13.37940111, 13.51503955, 13.65205306, 13.7904556, 13.93026125, 14.07148422, 14.21413889, 14.35823977, 14.50380153, 14.65083897, 14.79936706, 14.9494009, 15.10095577, 15.25404707, 15.4086904, 15.56490147, 15.72269619, 15.88209061, 16.04310095, 16.20574358, 16.37003507, 16.53599212, 16.70363161, 16.87297061, 17.04402635, 17.21681622, 17.39135781, 17.56766888, 17.74576737, 17.92567139, 18.10739926, 18.29096945, 18.47640065, 18.66371173, 18.85292174, 19.04404993, 19.23711576, 19.43213885, 19.62913907, 19.82813644, 20.02915122, 20.23220386, 20.43731501, 20.64450556, 20.85379657, 21.06520934, 21.27876539, 21.49448643, 21.71239443, 21.93251154, 22.15486017, 22.37946294, 22.6063427, 22.83552253, 23.06702575, 23.30087592, 23.53709683, 23.77571251, 24.01674725, 24.26022556, 24.50617222, 24.75461225, 25.00557092, 25.25907378, 25.51514662, 25.77381549, 26.0351067, 26.29904685, 26.56566278, 26.83498163, 27.10703079, 27.38183794, 27.65943106, 27.93983837, 28.22308841, 28.50921, 28.79823224, 29.09018456, 29.38509664, 29.6829985, 29.98392044, 30.28789309, 30.59494737, 30.90511452, 31.2184261, 31.53491399, 31.85461039, 32.17754782, 32.50375914, 32.83327755, 33.16613657, 33.50237007, 33.84201225, 34.18509767, 34.53166125, 34.88173824, 35.23536425, 35.59257528, 35.95340766, 36.3178981, 36.6860837, 37.05800191, 37.43369058, 37.81318792, 38.19653254, 38.58376347, 38.97492008, 39.37004218, 39.76916997, 40.17234407, 40.57960548, 40.99099565, 41.40655644, 41.82633012, 42.2503594, 42.67868743, 43.11135779, 43.5484145, 43.98990203, 44.43586529, 44.88634967, 45.34140099, 45.80106555, 46.26539013, 46.73442196, 47.20820877, 47.68679876, 48.17024063, 48.65858356, 49.15187725, 49.65017187, 50.15351813, 50.66196724, 51.17557094, 51.69438147, 52.21845163, 52.74783474, 53.28258466, 53.8227558, 54.36840311, 54.91958212, 55.4763489, 56.0387601, 56.60687294, 57.18074523, 57.76043535, 58.34600229, 58.93750562, 59.53500553, 60.13856281, 60.74823886, 61.36409571, 61.98619604, 62.61460313, 63.24938092, 63.89059399, 64.53830759, 65.19258762, 65.85350065, 66.52111391, 67.19549534, 67.87671355, 68.56483786, 69.25993826, 69.9620855, 70.671351, 71.38780694, 72.1115262, 72.84258242, 73.58104998, 74.32700402, 75.08052044, 75.8416759, 76.61054784, 77.38721449, 78.17175487, 78.96424882, 79.76477695, 80.57342072, 81.39026241, 82.21538511, 83.0488728, 83.89081025, 84.74128315, 85.60037803, 86.46818228, 87.3447842, 88.23027299, 89.12473873, 90.02827244, 90.94096605, 91.86291241, 92.79420532, 93.73493955, 94.68521081, 95.64511578, 96.61475213, 97.59421852, 98.58361459, 99.58304101, 100.59259948, 101.6123927, 102.64252444, 103.6830995, 104.73422377, 105.79600418, 106.86854877, 107.95196666, 109.04636808, 110.15186438, 111.26856805, 112.3965927, 113.5360531, 114.68706518, 115.84974606, 117.02421403, 118.21058858, 119.40899043, 120.6195415, 121.84236497, 123.07758524, 124.325328, 125.58572019, 126.85889005, 128.14496713, 129.44408227, 130.75636765, 132.0819568, 133.42098457, 134.77358721, 136.13990234, 137.52006898, 138.91422755, 140.32251989, 141.7450893, 143.18208051, 144.63363974, 146.09991465, 147.58105446, 149.07720984, 150.58853303, 152.11517779, 153.65729946, 155.21505494, 156.78860271, 158.37810289, 159.98371719, 161.60560897, 163.24394326, 164.89888674, 166.5706078, 168.25927653, 169.96506474, 171.68814598, 173.42869557, 175.1868906, 176.96290995, 178.75693434, 180.56914628, 182.39973017, 184.24887225, 186.11676066, 188.00358546, 189.90953862, 191.83481405, 193.77960765, 195.74411728, 197.72854282, 199.73308619, 201.75795133, 203.80334425, 205.86947308, 207.95654802, 210.06478142, 212.19438779, 214.3455838, 216.51858832, 218.71362245, 220.93090952, 223.17067512, 225.43314715, 227.71855578, 230.02713356, 232.35911537, 234.71473847, 237.09424254, 239.49786967, 241.92586443, 244.37847385, 246.85594747, 249.35853736, 251.88649814, 254.44008703, 257.01956382, 259.62519098, 262.25723362, 264.91595952, 267.60163919, 270.3145459, 273.05495567, 275.82314731, 278.61940248, 281.44400568, 284.2972443, 287.17940864, 290.09079195, 293.03169044, 296.00240333, 299.00323287, 302.0344844, 305.09646631, 308.18949016, 311.31387063, 314.46992562, 317.65797624, 320.87834685, 324.13136512, 327.41736201, 330.73667187, 334.08963241, 337.47658477, 340.89787357, 344.35384691, 347.8448564, 351.37125724, 354.93340822, 358.53167177, 362.166414, 365.83800471, 369.54681749, 373.29322967, 377.07762244, 380.90038083, 384.76189379, 388.66255422, 392.60275897, 396.58290895, 400.60340912, 404.66466853, 408.76710041, 412.91112214, 417.09715537, 421.325626, 425.59696426, 429.91160472, 434.26998638, 438.67255269, 443.11975157, 447.61203552, 452.14986159, 456.73369148, 461.36399158, 466.04123299, 470.7658916, 475.53844811, 480.35938811, 485.2292021, 490.14838557, 495.117439, 500.13686798, 505.2071832, 510.32890055, 515.50254113, 520.72863132, 526.00770286, 531.34029287, 536.7269439, 542.16820402, 547.66462685, 553.21677162, 558.82520323, 564.4904923, 570.21321526, 575.99395436, 581.83329775, 587.73183956, 593.69017994, 599.7089251, 605.78868744, 611.93008553, 618.13374422, 624.40029471, 630.73037457, 637.12462788, 643.5837052, 650.10826371, 656.69896725, 663.35648639, 670.08149849, 676.8746878, 683.73674547, 690.6683697, 697.67026573, 704.74314596, 711.88773004, 719.10474487, 726.39492476, 733.75901143, 741.19775415, 748.71190977, 756.30224281, 763.96952555, 771.71453809, 779.53806845, 787.44091263, 795.4238747, 803.48776689, 811.63340965, 819.86163175, 828.17327038, 836.5691712, 845.05018845, 853.61718503, 862.27103258, 871.01261158, 879.84281144, 888.7625306, 897.77267658, 906.87416611, 916.06792523, 925.35488935, 934.73600336, 944.21222176, 953.78450868, 963.45383807, 973.22119372, 983.0875694, 993.05396898, 1003.12140647, 1013.29090619, 1023.56350283, 1033.94024156, 1044.42217817, 1055.01037914, 1065.70592176, 1076.50989424, 1087.42339584, 1098.44753693, 1109.58343917, 1120.83223558, 1132.19507065, 1143.67310051, 1155.26749297, 1166.97942771, 1178.81009634, 1190.76070259, 1202.83246235, 1215.02660387, 1227.34436782, 1239.78700749, 1252.35578884, 1265.05199068, 1277.87690477, 1290.83183599, 1303.91810242, 1317.13703554, 1330.48998028, 1343.97829525, 1357.6033528, 1371.36653922, 1385.26925482, 1399.31291415, 1413.49894607, 1427.82879392, 1442.3039157, 1456.92578417, 1471.69588703, 1486.61572706, 1501.68682226, 1516.91070605, 1532.28892737, 1547.82305087, 1563.51465707, 1579.3653425, 1595.37671989, 1611.55041831, 1627.88808334, 1644.39137726, 1661.06197918, 1677.90158526, 1694.91190882, 1712.09468059, 1729.45164881, 1746.98457946, 1764.69525643, 1782.58548168, 1800.65707544, 1818.91187641, 1837.35174191, 1855.9785481, 1874.79419016, 1893.80058247, 1912.99965884, 1932.39337267, 1951.98369717, 1971.77262554, 1991.7621712, 2011.95436799, 2032.35127034, 2052.95495355, 2073.76751391, 2094.791069, 2116.02775785, 2137.47974118, 2159.14920161, 2181.0383439, 2203.14939514, 2225.48460503, 2248.04624604, 2270.83661371, 2293.85802683, 2317.1128277, 2340.60338238, 2364.33208091, 2388.30133755, 2412.51359104, 2436.97130486, 2461.67696745, 2486.63309246, 2511.84221907, 2537.30691215, 2563.02976261, 2589.0133876, 2615.26043083, 2641.77356279, 2668.55548104, 2695.6089105, 2722.93660372, 2750.54134114, 2778.4259314, 2806.59321159, 2835.0460476, 2863.78733435, 2892.8199961, 2922.14698678, 2951.77129025, 2981.69592062, 3011.92392257, 3042.45837162, 3073.30237451, 3104.45906943, 3135.93162642, 3167.72324764, 3199.83716772, 3232.27665408, 3265.04500725, 3298.14556125, 3331.58168388, 3365.35677708, 3399.4742773, 3433.93765579, 3468.75041903, 3503.91610903, 3539.43830371, 3575.32061726, 3611.56670051, 3648.18024131, 3685.1649649, 3722.52463426, 3760.26305054, 3798.38405343, 3836.89152154, 3875.78937278, 3915.08156482, 3954.77209541, 3994.86500286, 4035.36436641, 4076.27430665, 4117.59898594, 4159.34260886, 4201.50942258, 4244.10371737, 4287.12982695, 4330.59212901, 4374.4950456, 4418.84304361, 4463.64063521, 4508.89237831, 4554.60287704, 4600.77678219, 4647.41879171, 4694.53365118, 4742.12615428, 4790.20114329, 4838.76350958, 4887.81819412, 4937.37018796, 4987.42453274, 5037.98632123, 5089.06069782, 5140.65285905, 5192.76805415, 5245.41158556, 5298.58880947, 5352.30513639, 5406.56603166, 5461.37701604, 5516.74366625, 5572.67161555, 5629.16655431, 5686.23423058, 5743.88045071, 5802.11107988, 5860.93204274, 5920.34932401, 5980.36896909, 6040.99708465, 6102.23983927, 6164.10346408, 6226.59425337, 6289.71856525, 6353.48282226, 6417.89351209, 6482.95718818, 6548.68047041, 6615.07004576, 6682.13266902, 6749.87516346, 6818.30442151, 6887.42740548, 6957.25114826, 7027.78275405, 7099.02939905, 7170.99833223, 7243.69687605, 7317.13242719, 7391.31245733, 7466.24451388, 7541.93622078, 7618.39527926, 7695.62946861, 7773.646647, 7852.45475226, 7932.0618027, 8012.47589789, 8093.70521955, 8175.75803233, 8258.64268465, 8342.36760959, 8426.9413257, 8512.37243792, 8598.66963839, 8685.8417074, 8773.89751424, 8862.84601811, 8952.69626904, 9043.45740883, 9135.13867191, 9227.74938639, 9321.29897489, 9415.79695558, 9511.25294314, 9607.67664969, 9705.07788583, 9803.46656161, 9902.85268756, 10003.24637567, 10104.65784047, 10207.09740004, 10310.57547704, 10415.10259982, 10520.68940345, 10627.34663082, 10735.08513373, 10843.915874, 10953.84992458, 11064.89847066, 11177.07281083, 11290.38435824, 11404.84464173, 11520.46530702, 11637.25811788, 11755.23495737, 11874.40782899, 11994.78885795, 12116.39029236, 12239.22450453, 12363.30399217, 12488.64137971, 12615.24941956, 12743.1409934, 12872.32911352, 13002.82692411, 13134.64770263, 13267.80486113, 13402.31194764, 13538.18264755, 13675.43078495, 13814.07032412, 13954.11537088, 14095.58017407, 14238.47912697, 14382.82676879, 14528.63778612, 14675.92701445, 14824.70943967, 14975.0001996, 15126.81458551, 15280.16804371, 15435.07617709, 15591.55474671, 15749.61967344, 15909.28703953, 16070.57309029, 16233.49423569, 16398.0670521, 16564.30828392, 16732.23484531, 16901.86382188, 17073.21247247, 17246.29823091, 17421.13870772, 17597.751692, 17776.15515317, 17956.36724282, 18138.40629657, 18322.29083591, 18508.03957011, 18695.67139812, 18885.20541045, 19076.66089119, 19270.05731989, 19465.41437362, 19662.7519289, 19862.09006377, 20063.44905982, 20266.84940424, 20472.31179193, 20679.85712759, 20889.50652784, 21101.28132339, 21315.20306118, 21531.2935066, 21749.5746457, 21970.06868742, 22192.79806584, 22417.78544248, 22645.05370859, 22874.62598752, 23106.525637, 23340.77625159, 23577.40166502, 23816.42595267, 24057.87343397, 24301.76867491, 24548.13649052, 24797.00194742, 25048.39036631, 25302.32732463, 25558.83865911, 25817.95046839, 26079.68911571, 26344.08123158, 26611.15371648, 26880.9337436, 27153.44876161, 27428.72649745, 27706.79495916, 27987.68243871, 28271.4175149, 28558.02905625, 28847.54622395, 29139.99847481, 29435.4155643, 29733.8275495, 30035.26479225, 30339.75796216, 30647.33803978, 30958.03631974, 31271.88441392, 31588.91425468, 31909.15809811, 32232.6485273, 32559.41845567, 32889.5011303, 33222.93013535, 33559.73939541, 33899.96317904, 34243.63610218, 34590.79313169, 34941.46958896, 35295.70115342, 35653.52386625, 36014.97413398, 36380.08873224, 36748.90480949, 37121.45989077, 37497.79188159, 37877.93907169, 38261.94013901, 38649.83415361, 39041.66058162, 39437.45928929, 39837.270547, 40241.1350334, 40649.09383956, 41061.18847307, 41477.46086238, 41897.95336095, 42322.70875165, 42751.77025107, 43185.1815139, 43622.98663742, 44065.23016595, 44511.95709541, 44963.21287786, 45419.04342616, 45879.49511862, 46344.61480373, 46814.44980494, 47289.04792543, 47768.45745301, 48252.72716504, 48741.90633336, 49236.04472932, 49735.19262887, 50239.40081763, 50748.72059607, 51263.20378475, 51782.90272958, 52307.87030714, 52838.15993006, 53373.82555248, 53914.92167549, 54461.50335273, 55013.62619595, 55571.34638069, 56134.72065199, 56703.80633016, 57278.66131662, 57859.34409978, 58445.913761, 59038.4299806, 59636.95304393, 60241.5438475, 60852.26390518, 61469.17535447, 62092.34096279, 62721.82413392, 63357.68891437, 64000] }, { "type": "double", "attributes": {}, "value": [0, 0.00205295, 0.00207291, 0.00209306, 0.00211341, 0.00213395, 0.0021547, 0.00217564, 0.00219678, 0.00221814, 0.00223969, 0.00226146, 0.00228344, 0.00230563, 0.00232803, 0.00235065, 0.00237349, 0.00239655, 0.00241984, 0.00244335, 0.00246709, 0.00249105, 0.00251525, 0.00253968, 0.00256435, 0.00258926, 0.00261441, 0.0026398, 0.00266544, 0.00269132, 0.00271746, 0.00274384, 0.00277049, 0.00279739, 0.00282455, 0.00285197, 0.00287966, 0.00290761, 0.00293584, 0.00296433, 0.00299311, 0.00302216, 0.00305149, 0.0030811, 0.003111, 0.00314119, 0.00317167, 0.00320245, 0.00323352, 0.00326489, 0.00329657, 0.00332855, 0.00336084, 0.00339344, 0.00342635, 0.00345958, 0.00349314, 0.00352701, 0.00356122, 0.00359575, 0.00363062, 0.00366582, 0.00370136, 0.00373724, 0.00377347, 0.00381005, 0.00384699, 0.00388427, 0.00392192, 0.00395993, 0.0039983, 0.00403705, 0.00407617, 0.00411566, 0.00415554, 0.0041958, 0.00423644, 0.00427748, 0.00431891, 0.00436074, 0.00440298, 0.00444562, 0.00448867, 0.00453213, 0.00457601, 0.00462032, 0.00466505, 0.00471021, 0.0047558, 0.00480183, 0.00484831, 0.00489523, 0.0049426, 0.00499043, 0.00503871, 0.00508746, 0.00513668, 0.00518637, 0.00523654, 0.00528719, 0.00533832, 0.00538995, 0.00544207, 0.00549469, 0.00554781, 0.00560145, 0.0056556, 0.00571027, 0.00576546, 0.00582118, 0.00587743, 0.00593423, 0.00599157, 0.00604945, 0.00610789, 0.0061669, 0.00622646, 0.0062866, 0.00634731, 0.0064086, 0.00647048, 0.00653295, 0.00659602, 0.00665969, 0.00672397, 0.00678886, 0.00685438, 0.00692052, 0.00698729, 0.0070547, 0.00712276, 0.00719146, 0.00726082, 0.00733084, 0.00740153, 0.00747289, 0.00754494, 0.00761767, 0.0076911, 0.00776522, 0.00784005, 0.0079156, 0.00799186, 0.00806885, 0.00814658, 0.00822504, 0.00830425, 0.00838422, 0.00846494, 0.00854644, 0.00862871, 0.00871176, 0.0087956, 0.00888024, 0.00896568, 0.00905193, 0.009139, 0.0092269, 0.00931564, 0.00940521, 0.00949564, 0.00958692, 0.00967907, 0.00977209, 0.009866, 0.00996079, 0.01005649, 0.01015308, 0.0102506, 0.01034903, 0.0104484, 0.01054871, 0.01064997, 0.01075218, 0.01085536, 0.01095952, 0.01106466, 0.01117079, 0.01127793, 0.01138607, 0.01149524, 0.01160543, 0.01171667, 0.01182895, 0.0119423, 0.01205671, 0.01217219, 0.01228877, 0.01240644, 0.01252522, 0.01264512, 0.01276614, 0.01288831, 0.01301162, 0.01313609, 0.01326172, 0.01338854, 0.01351655, 0.01364575, 0.01377617, 0.01390781, 0.01404069, 0.01417481, 0.01431018, 0.01444682, 0.01458475, 0.01472396, 0.01486447, 0.01500629, 0.01514944, 0.01529393, 0.01543976, 0.01558696, 0.01573553, 0.01588548, 0.01603683, 0.01618959, 0.01634377, 0.01649939, 0.01665645, 0.01681497, 0.01697497, 0.01713646, 0.01729944, 0.01746393, 0.01762995, 0.01779751, 0.01796663, 0.01813731, 0.01830957, 0.01848342, 0.01865888, 0.01883596, 0.01901468, 0.01919505, 0.01937709, 0.0195608, 0.01974621, 0.01993332, 0.02012216, 0.02031274, 0.02050507, 0.02069917, 0.02089505, 0.02109273, 0.02129222, 0.02149355, 0.02169672, 0.02190175, 0.02210866, 0.02231746, 0.02252818, 0.02274081, 0.02295539, 0.02317193, 0.02339045, 0.02361095, 0.02383347, 0.02405801, 0.02428459, 0.02451324, 0.02474396, 0.02497677, 0.0252117, 0.02544876, 0.02568797, 0.02592934, 0.02617289, 0.02641865, 0.02666662, 0.02691684, 0.02716931, 0.02742406, 0.0276811, 0.02794045, 0.02820214, 0.02846618, 0.02873258, 0.02900138, 0.02927258, 0.02954622, 0.0298223, 0.03010085, 0.03038189, 0.03066543, 0.03095151, 0.03124013, 0.03153132, 0.0318251, 0.03212149, 0.03242051, 0.03272218, 0.03302652, 0.03333356, 0.03364331, 0.03395579, 0.03427103, 0.03458906, 0.03490988, 0.03523352, 0.03556001, 0.03588936, 0.0362216, 0.03655676, 0.03689484, 0.03723588, 0.03757989, 0.03792691, 0.03827695, 0.03863003, 0.03898618, 0.03934543, 0.03970778, 0.04007328, 0.04044193, 0.04081377, 0.04118882, 0.0415671, 0.04194864, 0.04233345, 0.04272157, 0.04311301, 0.0435078, 0.04390597, 0.04430754, 0.04471253, 0.04512097, 0.04553288, 0.04594829, 0.04636722, 0.04678969, 0.04721574, 0.04764538, 0.04807864, 0.04851555, 0.04895613, 0.0494004, 0.04984839, 0.05030013, 0.05075564, 0.05121495, 0.05167808, 0.05214505, 0.0526159, 0.05309064, 0.05356931, 0.05405192, 0.05453851, 0.0550291, 0.05552371, 0.05602238, 0.05652512, 0.05703196, 0.05754293, 0.05805805, 0.05857735, 0.05910086, 0.05962859, 0.06016058, 0.06069685, 0.06123743, 0.06178234, 0.0623316, 0.06288525, 0.0634433, 0.06400579, 0.06457274, 0.06514417, 0.0657201, 0.06630058, 0.06688561, 0.06747522, 0.06806944, 0.0686683, 0.06927181, 0.06988001, 0.07049291, 0.07111055, 0.07173293, 0.0723601, 0.07299207, 0.07362887, 0.07427052, 0.07491705, 0.07556847, 0.07622481, 0.07688609, 0.07755234, 0.07822358, 0.07889984, 0.07958112, 0.08026746, 0.08095888, 0.0816554, 0.08235703, 0.08306381, 0.08377575, 0.08449287, 0.0852152, 0.08594274, 0.08667553, 0.08741358, 0.08815691, 0.08890554, 0.08965949, 0.09041877, 0.09118341, 0.09195342, 0.09272882, 0.09350962, 0.09429584, 0.09508749, 0.0958846, 0.09668718, 0.09749523, 0.09830879, 0.09912785, 0.09995243, 0.10078255, 0.10161821, 0.10245943, 0.10330622, 0.1041586, 0.10501656, 0.10588012, 0.10674929, 0.10762408, 0.1085045, 0.10939054, 0.11028223, 0.11117955, 0.11208253, 0.11299117, 0.11390546, 0.11482541, 0.11575103, 0.11668231, 0.11761927, 0.11856188, 0.11951017, 0.12046412, 0.12142374, 0.12238902, 0.12335995, 0.12433654, 0.12531878, 0.12630666, 0.12730018, 0.12829932, 0.12930409, 0.13031446, 0.13133043, 0.13235199, 0.13337912, 0.13441181, 0.13545005, 0.13649382, 0.13754311, 0.1385979, 0.13965816, 0.14072388, 0.14179504, 0.14287162, 0.14395359, 0.14504093, 0.14613361, 0.14723161, 0.14833491, 0.14944346, 0.15055725, 0.15167624, 0.15280039, 0.15392968, 0.15506407, 0.15620352, 0.157348, 0.15849747, 0.15965188, 0.1608112, 0.16197539, 0.16314439, 0.16431817, 0.16549667, 0.16667985, 0.16786766, 0.16906005, 0.17025696, 0.17145834, 0.17266414, 0.1738743, 0.17508876, 0.17630745, 0.17753033, 0.17875733, 0.17998837, 0.18122341, 0.18246236, 0.18370516, 0.18495174, 0.18620203, 0.18745595, 0.18871343, 0.1899744, 0.19123876, 0.19250645, 0.19377738, 0.19505148, 0.19632864, 0.1976088, 0.19889185, 0.20017772, 0.2014663, 0.20275751, 0.20405126, 0.20534744, 0.20664597, 0.20794673, 0.20924964, 0.21055459, 0.21186147, 0.21317018, 0.21448061, 0.21579266, 0.21710622, 0.21842116, 0.21973739, 0.22105479, 0.22237324, 0.22369262, 0.22501282, 0.22633372, 0.22765518, 0.2289771, 0.23029935, 0.23162179, 0.23294432, 0.23426678, 0.23558907, 0.23691104, 0.23823256, 0.2395535, 0.24087373, 0.24219311, 0.24351151, 0.24482878, 0.24614478, 0.24745939, 0.24877245, 0.25008383, 0.25139338, 0.25270096, 0.25400643, 0.25530963, 0.25661043, 0.25790867, 0.25920422, 0.26049692, 0.26178662, 0.26307318, 0.26435645, 0.26563627, 0.2669125, 0.26818499, 0.26945358, 0.27071813, 0.27197848, 0.27323448, 0.27448599, 0.27573285, 0.27697492, 0.27821203, 0.27944404, 0.28067081, 0.28189218, 0.28310799, 0.28431811, 0.28552239, 0.28672068, 0.28791282, 0.28909868, 0.29027812, 0.29145097, 0.29261711, 0.2937764, 0.29492868, 0.29607382, 0.29721169, 0.29834214, 0.29946503, 0.30058025, 0.30168765, 0.3027871, 0.30387847, 0.30496164, 0.30603648, 0.30710287, 0.30816068, 0.3092098, 0.31025011, 0.3112815, 0.31230385, 0.31331705, 0.314321, 0.31531559, 0.31630071, 0.31727628, 0.31824218, 0.31919834, 0.32014465, 0.32108103, 0.32200739, 0.32292366, 0.32382975, 0.32472558, 0.32561109, 0.3264862, 0.32735086, 0.32820499, 0.32904854, 0.32988145, 0.33070367, 0.33151516, 0.33231586, 0.33310575, 0.33388477, 0.3346529, 0.33541011, 0.33615637, 0.33689166, 0.33761597, 0.33832927, 0.33903156, 0.33972283, 0.34040308, 0.34107231, 0.34173052, 0.34237773, 0.34301395, 0.3436392, 0.34425349, 0.34485685, 0.34544931, 0.34603091, 0.34660168, 0.34716165, 0.34771088, 0.34824942, 0.34877731, 0.3492946, 0.34980137, 0.35029767, 0.35078356, 0.35125912, 0.35172442, 0.35217954, 0.35262455, 0.35305954, 0.3534846, 0.35389981, 0.35430527, 0.35470106, 0.3550873, 0.35546408, 0.3558315, 0.35618968, 0.35653871, 0.35687871, 0.35720979, 0.35753208, 0.35784568, 0.35815072, 0.35844731, 0.35873559, 0.35901567, 0.35928769, 0.35955177, 0.35980804, 0.36005663, 0.36029768, 0.36053132, 0.36075768, 0.3609769, 0.36118911, 0.36139445, 0.36159305, 0.36178506, 0.36197062, 0.36214985, 0.36232289, 0.36248989, 0.36265098, 0.3628063, 0.36295599, 0.36310018, 0.363239, 0.3633726, 0.36350111, 0.36362465, 0.36374337, 0.3638574, 0.36396685, 0.36407187, 0.36417259, 0.36426912, 0.36436159, 0.36445013, 0.36453486, 0.36461589, 0.36469335, 0.36476736, 0.36483802, 0.36490545, 0.36496977, 0.36503107, 0.36508947, 0.36514507, 0.36519798, 0.36524829, 0.3652961, 0.36534151, 0.36538462, 0.36542551, 0.36546427, 0.365501, 0.36553577, 0.36556866, 0.36559977, 0.36562916, 0.36565692, 0.36568311, 0.36570781, 0.36573109, 0.365753, 0.36577363, 0.36579302, 0.36581125, 0.36582836, 0.36584442, 0.36585947, 0.36587358, 0.36588678, 0.36589913, 0.36591068, 0.36592146, 0.36593153, 0.36594092, 0.36594966, 0.3659578, 0.36596538, 0.36597242, 0.36597896, 0.36598503, 0.36599065, 0.36599586, 0.36600069, 0.36600515, 0.36600927, 0.36601307, 0.36601658, 0.36601981, 0.36602278, 0.36602552, 0.36602803, 0.36603034, 0.36603246, 0.3660344, 0.36603617, 0.36603779, 0.36603927, 0.36604063, 0.36604186, 0.36604298, 0.366044, 0.36604493, 0.36604577, 0.36604653, 0.36604723, 0.36604785, 0.36604842, 0.36604893, 0.36604939, 0.3660498, 0.36605017, 0.36605051, 0.36605081, 0.36605108, 0.36605132, 0.36605154, 0.36605173, 0.3660519, 0.36605205, 0.36605219, 0.36605231, 0.36605242, 0.36605251, 0.3660526, 0.36605267, 0.36605274, 0.3660528, 0.36605285, 0.36605289, 0.36605293, 0.36605297, 0.366053, 0.36605302, 0.36605305, 0.36605307, 0.36605309, 0.3660531, 0.36605311, 0.36605313, 0.36605314, 0.36605314, 0.36605315, 0.36605316, 0.36605316, 0.36605317, 0.36605317, 0.36605318, 0.36605318, 0.36605318, 0.36605318, 0.36605318, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319, 0.36605319] }, { "type": "double", "attributes": {}, "value": [0, 0.00015717, 0.0001587, 0.00016024, 0.0001618, 0.00016337, 0.00016496, 0.00016657, 0.00016818, 0.00016982, 0.00017147, 0.00017314, 0.00017482, 0.00017652, 0.00017823, 0.00017996, 0.00018171, 0.00018348, 0.00018526, 0.00018706, 0.00018888, 0.00019071, 0.00019257, 0.00019444, 0.00019632, 0.00019823, 0.00020016, 0.0002021, 0.00020406, 0.00020605, 0.00020805, 0.00021007, 0.00021211, 0.00021417, 0.00021624, 0.00021834, 0.00022046, 0.0002226, 0.00022477, 0.00022695, 0.00022915, 0.00023137, 0.00023362, 0.00023589, 0.00023818, 0.00024049, 0.00024282, 0.00024518, 0.00024756, 0.00024996, 0.00025238, 0.00025483, 0.0002573, 0.0002598, 0.00026232, 0.00026486, 0.00026743, 0.00027003, 0.00027264, 0.00027529, 0.00027796, 0.00028065, 0.00028337, 0.00028612, 0.00028889, 0.00029169, 0.00029452, 0.00029738, 0.00030026, 0.00030317, 0.00030611, 0.00030907, 0.00031207, 0.00031509, 0.00031814, 0.00032123, 0.00032434, 0.00032748, 0.00033065, 0.00033386, 0.00033709, 0.00034035, 0.00034365, 0.00034698, 0.00035034, 0.00035373, 0.00035715, 0.00036061, 0.0003641, 0.00036762, 0.00037118, 0.00037477, 0.0003784, 0.00038206, 0.00038576, 0.00038949, 0.00039326, 0.00039706, 0.00040091, 0.00040478, 0.0004087, 0.00041265, 0.00041664, 0.00042067, 0.00042474, 0.00042884, 0.00043299, 0.00043717, 0.0004414, 0.00044566, 0.00044997, 0.00045432, 0.00045871, 0.00046314, 0.00046762, 0.00047213, 0.00047669, 0.0004813, 0.00048594, 0.00049064, 0.00049537, 0.00050016, 0.00050499, 0.00050986, 0.00051478, 0.00051975, 0.00052477, 0.00052983, 0.00053494, 0.0005401, 0.00054531, 0.00055057, 0.00055588, 0.00056124, 0.00056666, 0.00057212, 0.00057763, 0.0005832, 0.00058882, 0.0005945, 0.00060023, 0.00060601, 0.00061185, 0.00061774, 0.0006237, 0.0006297, 0.00063577, 0.00064189, 0.00064807, 0.00065431, 0.00066061, 0.00066697, 0.00067338, 0.00067986, 0.00068641, 0.00069301, 0.00069967, 0.0007064, 0.0007132, 0.00072006, 0.00072698, 0.00073397, 0.00074102, 0.00074814, 0.00075533, 0.00076259, 0.00076992, 0.00077731, 0.00078478, 0.00079231, 0.00079992, 0.0008076, 0.00081535, 0.00082318, 0.00083108, 0.00083905, 0.0008471, 0.00085523, 0.00086343, 0.00087171, 0.00088007, 0.0008885, 0.00089702, 0.00090562, 0.00091429, 0.00092305, 0.00093189, 0.00094082, 0.00094983, 0.00095892, 0.0009681, 0.00097737, 0.00098672, 0.00099616, 0.00100569, 0.00101531, 0.00102502, 0.00103482, 0.00104471, 0.00105469, 0.00106477, 0.00107494, 0.00108521, 0.00109558, 0.00110604, 0.0011166, 0.00112725, 0.00113801, 0.00114887, 0.00115983, 0.00117089, 0.00118206, 0.00119333, 0.0012047, 0.00121618, 0.00122777, 0.00123946, 0.00125127, 0.00126318, 0.0012752, 0.00128734, 0.00129959, 0.00131195, 0.00132443, 0.00133702, 0.00134974, 0.00136256, 0.00137551, 0.00138858, 0.00140177, 0.00141508, 0.00142851, 0.00144207, 0.00145575, 0.00146956, 0.00148349, 0.00149756, 0.00151175, 0.00152608, 0.00154054, 0.00155513, 0.00156985, 0.00158471, 0.00159971, 0.00161484, 0.00163012, 0.00164553, 0.00166108, 0.00167678, 0.00169262, 0.00170861, 0.00172474, 0.00174102, 0.00175745, 0.00177402, 0.00179075, 0.00180764, 0.00182467, 0.00184186, 0.00185921, 0.00187671, 0.00189438, 0.0019122, 0.00193019, 0.00194834, 0.00196665, 0.00198513, 0.00200378, 0.00202259, 0.00204158, 0.00206073, 0.00208006, 0.00209956, 0.00211924, 0.0021391, 0.00215913, 0.00217935, 0.00219974, 0.00222032, 0.00224109, 0.00226203, 0.00228317, 0.0023045, 0.00232601, 0.00234772, 0.00236962, 0.00239172, 0.00241401, 0.0024365, 0.0024592, 0.00248209, 0.00250518, 0.00252848, 0.00255199, 0.0025757, 0.00259963, 0.00262376, 0.00264811, 0.00267267, 0.00269745, 0.00272245, 0.00274766, 0.0027731, 0.00279876, 0.00282464, 0.00285075, 0.00287709, 0.00290365, 0.00293045, 0.00295748, 0.00298475, 0.00301225, 0.00304, 0.00306798, 0.0030962, 0.00312467, 0.00315338, 0.00318234, 0.00321155, 0.00324102, 0.00327073, 0.0033007, 0.00333092, 0.00336141, 0.00339215, 0.00342316, 0.00345443, 0.00348596, 0.00351776, 0.00354984, 0.00358218, 0.0036148, 0.00364769, 0.00368086, 0.00371431, 0.00374804, 0.00378206, 0.00381635, 0.00385094, 0.00388581, 0.00392098, 0.00395643, 0.00399218, 0.00402823, 0.00406458, 0.00410122, 0.00413817, 0.00417543, 0.00421298, 0.00425085, 0.00428903, 0.00432752, 0.00436632, 0.00440544, 0.00444488, 0.00448464, 0.00452471, 0.00456512, 0.00460585, 0.0046469, 0.00468829, 0.00473001, 0.00477206, 0.00481444, 0.00485717, 0.00490023, 0.00494364, 0.00498739, 0.00503148, 0.00507592, 0.00512071, 0.00516585, 0.00521134, 0.00525719, 0.00530339, 0.00534996, 0.00539688, 0.00544417, 0.00549182, 0.00553983, 0.00558822, 0.00563697, 0.00568609, 0.00573559, 0.00578546, 0.00583571, 0.00588634, 0.00593735, 0.00598874, 0.00604051, 0.00609267, 0.00614521, 0.00619815, 0.00625147, 0.00630519, 0.0063593, 0.0064138, 0.00646871, 0.00652401, 0.00657971, 0.00663581, 0.00669231, 0.00674922, 0.00680654, 0.00686426, 0.00692239, 0.00698093, 0.00703988, 0.00709924, 0.00715902, 0.00721921, 0.00727982, 0.00734085, 0.00740229, 0.00746416, 0.00752644, 0.00758915, 0.00765228, 0.00771583, 0.00777981, 0.00784421, 0.00790904, 0.0079743, 0.00803998, 0.0081061, 0.00817264, 0.00823961, 0.00830702, 0.00837485, 0.00844312, 0.00851182, 0.00858095, 0.00865051, 0.00872051, 0.00879094, 0.00886181, 0.0089331, 0.00900484, 0.009077, 0.0091496, 0.00922264, 0.0092961, 0.00937001, 0.00944434, 0.00951911, 0.00959431, 0.00966994, 0.009746, 0.00982249, 0.00989942, 0.00997677, 0.01005455, 0.01013276, 0.0102114, 0.01029046, 0.01036995, 0.01044986, 0.01053019, 0.01061094, 0.01069212, 0.01077371, 0.01085572, 0.01093814, 0.01102097, 0.01110422, 0.01118787, 0.01127193, 0.0113564, 0.01144127, 0.01152654, 0.01161221, 0.01169828, 0.01178473, 0.01187158, 0.01195882, 0.01204644, 0.01213444, 0.01222282, 0.01231158, 0.01240071, 0.0124902, 0.01258007, 0.01267029, 0.01276088, 0.01285181, 0.0129431, 0.01303474, 0.01312671, 0.01321903, 0.01331168, 0.01340466, 0.01349796, 0.01359158, 0.01368552, 0.01377977, 0.01387432, 0.01396917, 0.01406432, 0.01415976, 0.01425548, 0.01435148, 0.01444775, 0.01454429, 0.01464109, 0.01473814, 0.01483544, 0.01493299, 0.01503076, 0.01512877, 0.015227, 0.01532545, 0.0154241, 0.01552295, 0.015622, 0.01572124, 0.01582065, 0.01592024, 0.01601999, 0.01611989, 0.01621994, 0.01632014, 0.01642046, 0.01652091, 0.01662148, 0.01672215, 0.01682292, 0.01692378, 0.01702472, 0.01712573, 0.0172268, 0.01732793, 0.0174291, 0.0175303, 0.01763153, 0.01773278, 0.01783403, 0.01793528, 0.01803651, 0.01813772, 0.01823889, 0.01834003, 0.0184411, 0.01854211, 0.01864305, 0.0187439, 0.01884465, 0.01894529, 0.01904582, 0.01914622, 0.01924648, 0.01934658, 0.01944653, 0.0195463, 0.01964589, 0.01974528, 0.01984447, 0.01994344, 0.02004218, 0.02014067, 0.02023892, 0.0203369, 0.02043461, 0.02053203, 0.02062915, 0.02072596, 0.02082246, 0.02091861, 0.02101443, 0.02110989, 0.02120498, 0.02129969, 0.02139401, 0.02148793, 0.02158144, 0.02167452, 0.02176717, 0.02185937, 0.02195111, 0.02204238, 0.02213316, 0.02222346, 0.02231325, 0.02240253, 0.02249129, 0.0225795, 0.02266718, 0.02275429, 0.02284084, 0.0229268, 0.02301218, 0.02309697, 0.02318114, 0.02326469, 0.02334762, 0.02342991, 0.02351155, 0.02359254, 0.02367286, 0.0237525, 0.02383146, 0.02390973, 0.0239873, 0.02406416, 0.02414031, 0.02421573, 0.02429042, 0.02436437, 0.02443757, 0.02451002, 0.02458171, 0.02465263, 0.02472278, 0.02479215, 0.02486073, 0.02492853, 0.02499552, 0.02506172, 0.02512711, 0.02519169, 0.02525546, 0.02531841, 0.02538054, 0.02544184, 0.02550231, 0.02556195, 0.02562076, 0.02567873, 0.02573586, 0.02579216, 0.02584761, 0.02590222, 0.02595599, 0.02600891, 0.02606099, 0.02611222, 0.02616262, 0.02621217, 0.02626087, 0.02630874, 0.02635577, 0.02640197, 0.02644732, 0.02649185, 0.02653555, 0.02657842, 0.02662047, 0.0266617, 0.02670211, 0.02674172, 0.02678051, 0.02681851, 0.02685571, 0.02689212, 0.02692774, 0.02696258, 0.02699665, 0.02702996, 0.0270625, 0.02709429, 0.02712533, 0.02715563, 0.0271852, 0.02721405, 0.02724218, 0.0272696, 0.02729632, 0.02732235, 0.0273477, 0.02737237, 0.02739638, 0.02741973, 0.02744244, 0.02746451, 0.02748595, 0.02750678, 0.027527, 0.02754662, 0.02756565, 0.0275841, 0.02760199, 0.02761932, 0.0276361, 0.02765235, 0.02766807, 0.02768328, 0.02769798, 0.02771218, 0.0277259, 0.02773915, 0.02775194, 0.02776427, 0.02777616, 0.02778762, 0.02779866, 0.02780929, 0.02781952, 0.02782935, 0.02783881, 0.0278479, 0.02785663, 0.02786501, 0.02787305, 0.02788076, 0.02788815, 0.02789523, 0.02790201, 0.0279085, 0.0279147, 0.02792063, 0.0279263, 0.02793171, 0.02793687, 0.02794179, 0.02794649, 0.02795096, 0.02795522, 0.02795927, 0.02796312, 0.02796678, 0.02797025, 0.02797355, 0.02797669, 0.02797965, 0.02798246, 0.02798513, 0.02798765, 0.02799003, 0.02799228, 0.0279944, 0.02799641, 0.0279983, 0.02800008, 0.02800176, 0.02800334, 0.02800482, 0.02800622, 0.02800753, 0.02800876, 0.02800991, 0.02801099, 0.028012, 0.02801295, 0.02801383, 0.02801466, 0.02801543, 0.02801614, 0.02801681, 0.02801744, 0.02801802, 0.02801856, 0.02801906, 0.02801952, 0.02801995, 0.02802035, 0.02802072, 0.02802106, 0.02802138, 0.02802167, 0.02802194, 0.02802218, 0.02802241, 0.02802262, 0.02802281, 0.02802299, 0.02802315, 0.0280233, 0.02802344, 0.02802356, 0.02802367, 0.02802378, 0.02802387, 0.02802396, 0.02802404, 0.02802411, 0.02802417, 0.02802423, 0.02802428, 0.02802433, 0.02802437, 0.02802441, 0.02802445, 0.02802448, 0.02802451, 0.02802454, 0.02802456, 0.02802458, 0.0280246, 0.02802461, 0.02802463, 0.02802464, 0.02802465, 0.02802466, 0.02802467, 0.02802468, 0.02802469, 0.0280247, 0.0280247, 0.02802471, 0.02802471, 0.02802471, 0.02802472, 0.02802472, 0.02802472, 0.02802473, 0.02802473, 0.02802473, 0.02802473, 0.02802473, 0.02802473, 0.02802473, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474, 0.02802474] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8] }, { "type": "double", "attributes": {}, "value": [0.00028949, 0.03705424, 0.07135836, 0.15871083, 0.26791951, 0.41686018, 0.58150548, 0.68941148, 0.70772148, 0.00094083, 0.0374161, 0.00021711, 0.03734372, 0.07092413, 0.1557436, 0.26321536, 0.40737951, 0.55755049, 0.66277874, 0.67797677, 0.00094083, 0.0384293, 0.00021711, 0.03748847, 0.07128599, 0.15900032, 0.27066963, 0.42047876, 0.58078176, 0.6893391, 0.71220852, 0.00072372, 0.03763321] }, { "type": "double", "attributes": {}, "value": [0.00001447, 0.00185271, 0.00356792, 0.00793554, 0.01339598, 0.02084301, 0.02907527, 0.03447057, 0.03538607, 0.00004704, 0.0018708, 0.00001086, 0.00186719, 0.00354621, 0.00778718, 0.01316077, 0.02036898, 0.02787752, 0.03313894, 0.03389884, 0.00004704, 0.00192146, 0.00001086, 0.00187442, 0.0035643, 0.00795002, 0.01353348, 0.02102394, 0.02903909, 0.03446696, 0.03561043, 0.00003619, 0.00188166] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8] }, { "type": "double", "attributes": {}, "value": [0, 0.04794447, 0.0935711, 0.211967, 0.36301473, 0.57328812, 0.81209464, 0.97816615, 1.02068573, 0, 0.04841268, 0, 0.04831904, 0.09300171, 0.2080041, 0.35664089, 0.56024979, 0.77864059, 0.9403785, 0.9777875, 0, 0.04972366, 0, 0.04850632, 0.0934762, 0.21235363, 0.36674098, 0.57826457, 0.81108395, 0.97806346, 1.027157, 0, 0.0486936] }, { "type": "double", "attributes": {}, "value": [0, 0.00367059, 0.00716373, 0.01622802, 0.02779212, 0.04389048, 0.06217332, 0.07488762, 0.07814289, 0, 0.00370644, 0, 0.00369927, 0.00712014, 0.01592463, 0.02730414, 0.04289228, 0.0596121, 0.07199463, 0.07485863, 0, 0.0038068, 0, 0.00371361, 0.00715646, 0.01625762, 0.0280774, 0.04427147, 0.06209594, 0.07487976, 0.07863832, 0, 0.00372794] } ] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["simulated", "measured", "unfaded"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["convInfo", "data", "control"] }, "class": { "type": "character", "attributes": {}, "value": ["nls"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["isConv", "finIter", "finTol", "stopCode", "stopMessage"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [3] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "character", "attributes": {}, "value": ["Relative error in the sum of squares is at most `ftol'."] } ] }, { "type": "symbol", "attributes": {}, "value": ["data"] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ftol", "ptol", "gtol", "diag", "epsfcn", "factor", "maxfev", "maxiter", "nprint"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "list", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [100] }, { "type": "integer", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [500] }, { "type": "double", "attributes": {}, "value": [0] } ] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["convInfo", "data", "weights", "control"] }, "class": { "type": "character", "attributes": {}, "value": ["nls"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["isConv", "finIter", "finTol", "stopCode", "stopMessage"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [4] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "character", "attributes": {}, "value": ["Relative error in the sum of squares is at most `ftol'."] } ] }, { "type": "symbol", "attributes": {}, "value": ["data"] }, { "type": "double", "attributes": {}, "value": [0.21028811, 0.00164288, 0.0008531, 0.00038356, 0.00022722, 0.00014603, 0.00010469, 0.0000883, 0.00008602, 0.06470403, 0.00162699, 0.28038415, 0.00163014, 0.00085832, 0.00039087, 0.00023128, 0.00014943, 0.00010918, 0.00009185, 0.00008979, 0.06470403, 0.00158409, 0.28038415, 0.00162385, 0.00085396, 0.00038286, 0.00022491, 0.00014478, 0.00010482, 0.00008831, 0.00008547, 0.08411524, 0.0016176] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ftol", "ptol", "gtol", "diag", "epsfcn", "factor", "maxfev", "maxiter", "nprint"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "list", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [100] }, { "type": "integer", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [500] }, { "type": "double", "attributes": {}, "value": [0] } ] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["convInfo", "data", "control"] }, "class": { "type": "character", "attributes": {}, "value": ["nls"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["isConv", "finTol", "stopCode", "stopMessage"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "character", "attributes": {}, "value": ["Relative error in the sum of squares is at most `ftol'."] } ] }, { "type": "language", "attributes": {}, "value": ["parent.frame()"] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["maxiter"] } }, "value": [ { "type": "NULL" } ] } ] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_Huntley2006"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "rhop", "ddot", "readerDdot", "n.MC", "fit.method", "fit.force_through_origin", "mode", "plot", "verbose"] } }, "value": [ { "type": "symbol", "attributes": {}, "value": ["data"] }, { "type": "symbol", "attributes": {}, "value": ["rhop"] }, { "type": "symbol", "attributes": {}, "value": ["ddot"] }, { "type": "symbol", "attributes": {}, "value": ["readerDdot"] }, { "type": "double", "attributes": {}, "value": [100] }, { "type": "character", "attributes": {}, "value": ["EXP"] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "character", "attributes": {}, "value": ["interpolation"] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "logical", "attributes": {}, "value": [false] } ] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["results", "data", "Ln", "LxTx_tables", "fits"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["nN", "nN.error", "nN_SS", "nN_SS.error", "Meas_De", "Meas_De.error", "Meas_D0", "Meas_D0.error", "Meas_Age", "Meas_Age.error", "Sim_De", "Sim_De.error", "Sim_D0", "Sim_D0.error", "Sim_Age", "Sim_Age.error", "Sim_Age_2D0", "Sim_Age_2D0.error", "Unfaded_D0", "Unfaded_D0.error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.14387316] }, { "type": "double", "attributes": {}, "value": [0.01768815] }, { "type": "double", "attributes": {}, "value": [0.36984114] }, { "type": "double", "attributes": {}, "value": [0.07853919] }, { "type": "double", "attributes": {}, "value": [124.90877595] }, { "type": "double", "attributes": {}, "value": [12.72784464] }, { "type": "double", "attributes": {}, "value": [522.6758677] }, { "type": "double", "attributes": {}, "value": [20.12953088] }, { "type": "double", "attributes": {}, "value": [17.84411085] }, { "type": "double", "attributes": {}, "value": [2.02539303] }, { "type": "double", "attributes": {}, "value": [282.30268842] }, { "type": "double", "attributes": {}, "value": [31.72704819] }, { "type": "double", "attributes": {}, "value": [524.01671178] }, { "type": "double", "attributes": {}, "value": [4.28309112] }, { "type": "double", "attributes": {}, "value": [40.32895549] }, { "type": "double", "attributes": {}, "value": [4.96080274] }, { "type": "double", "attributes": {}, "value": [149.71906051] }, { "type": "double", "attributes": {}, "value": [7.5857994] }, { "type": "double", "attributes": {}, "value": [622.93187999] }, { "type": "double", "attributes": {}, "value": [5.97801977] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 0, 200, 400, 1000, 2000, 4000, 8000, 16000, 32000, 0, 200, 0, 200, 400, 1000, 2000, 4000, 8000, 16000, 32000, 0, 200, 0, 200, 400, 1000, 2000, 4000, 8000, 16000, 32000, 0, 200] }, { "type": "double", "attributes": {}, "value": [2.04833, 0.004, 0.512, 0.986, 2.193, 3.702, 5.76, 8.035, 9.526, 9.779, 0.013, 0.517, 0.003, 0.516, 0.98, 2.152, 3.637, 5.629, 7.704, 9.158, 9.368, 0.013, 0.531, 0.003, 0.518, 0.985, 2.197, 3.74, 5.81, 8.025, 9.525, 9.841, 0.01, 0.52] }, { "type": "double", "attributes": {}, "value": [0.195, 0.0002, 0.0256, 0.0493, 0.10965, 0.1851, 0.288, 0.40175, 0.4763, 0.48895, 0.00065, 0.02585, 0.00015, 0.0258, 0.049, 0.1076, 0.18185, 0.28145, 0.3852, 0.4579, 0.4684, 0.00065, 0.02655, 0.00015, 0.0259, 0.04925, 0.10985, 0.187, 0.2905, 0.40125, 0.47625, 0.49205, 0.0005, 0.026] } ] }, { "type": "double", "attributes": {}, "value": [0.14387316, 0.01369665] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["simulated", "measured", "unfaded"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 2.71828183, 2.74583938, 2.7736763, 2.80179543, 2.83019962, 2.85889178, 2.88787481, 2.91715167, 2.94672533, 2.9765988, 3.00677513, 3.03725738, 3.06804866, 3.09915209, 3.13057085, 3.16230812, 3.19436715, 3.22675118, 3.25946351, 3.29250748, 3.32588645, 3.3596038, 3.39366298, 3.42806745, 3.4628207, 3.49792627, 3.53338774, 3.56920872, 3.60539284, 3.64194379, 3.67886529, 3.71616109, 3.753835, 3.79189083, 3.83033248, 3.86916383, 3.90838885, 3.94801154, 3.98803591, 4.02846604, 4.06930604, 4.11056008, 4.15223234, 4.19432707, 4.23684855, 4.27980111, 4.32318912, 4.36701698, 4.41128917, 4.45601018, 4.50118457, 4.54681693, 4.5929119, 4.63947417, 4.68650849, 4.73401964, 4.78201244, 4.83049179, 4.87946262, 4.92892991, 4.97889869, 5.02937404, 5.08036111, 5.13186507, 5.18389118, 5.23644472, 5.28953104, 5.34315554, 5.39732368, 5.45204096, 5.50731296, 5.56314531, 5.61954367, 5.67651379, 5.73406147, 5.79219255, 5.85091296, 5.91022867, 5.97014571, 6.03067019, 6.09180825, 6.15356612, 6.21595008, 6.27896649, 6.34262174, 6.40692232, 6.47187477, 6.53748571, 6.60376179, 6.67070977, 6.73833646, 6.80664874, 6.87565356, 6.94535794, 7.01576898, 7.08689383, 7.15873973, 7.231314, 7.30462402, 7.37867724, 7.4534812, 7.52904352, 7.60537187, 7.68247403, 7.76035784, 7.83903123, 7.91850219, 7.99877882, 8.07986928, 8.16178183, 8.24452479, 8.32810659, 8.41253573, 8.4978208, 8.58397048, 8.67099353, 8.75889881, 8.84769526, 8.93739191, 9.0279979, 9.11952244, 9.21197484, 9.3053645, 9.39970094, 9.49499375, 9.59125263, 9.68848736, 9.78670784, 9.88592407, 9.98614614, 10.08738424, 10.18964869, 10.29294987, 10.39729831, 10.50270461, 10.60917951, 10.71673384, 10.82537854, 10.93512466, 11.04598337, 11.15796595, 11.2710838, 11.38534842, 11.50077143, 11.61736459, 11.73513975, 11.8541089, 11.97428414, 12.0956777, 12.21830193, 12.34216931, 12.46729244, 12.59368404, 12.72135699, 12.85032427, 12.980599, 13.11219443, 13.24512396, 13.37940111, 13.51503955, 13.65205306, 13.7904556, 13.93026125, 14.07148422, 14.21413889, 14.35823977, 14.50380153, 14.65083897, 14.79936706, 14.9494009, 15.10095577, 15.25404707, 15.4086904, 15.56490147, 15.72269619, 15.88209061, 16.04310095, 16.20574358, 16.37003507, 16.53599212, 16.70363161, 16.87297061, 17.04402635, 17.21681622, 17.39135781, 17.56766888, 17.74576737, 17.92567139, 18.10739926, 18.29096945, 18.47640065, 18.66371173, 18.85292174, 19.04404993, 19.23711576, 19.43213885, 19.62913907, 19.82813644, 20.02915122, 20.23220386, 20.43731501, 20.64450556, 20.85379657, 21.06520934, 21.27876539, 21.49448643, 21.71239443, 21.93251154, 22.15486017, 22.37946294, 22.6063427, 22.83552253, 23.06702575, 23.30087592, 23.53709683, 23.77571251, 24.01674725, 24.26022556, 24.50617222, 24.75461225, 25.00557092, 25.25907378, 25.51514662, 25.77381549, 26.0351067, 26.29904685, 26.56566278, 26.83498163, 27.10703079, 27.38183794, 27.65943106, 27.93983837, 28.22308841, 28.50921, 28.79823224, 29.09018456, 29.38509664, 29.6829985, 29.98392044, 30.28789309, 30.59494737, 30.90511452, 31.2184261, 31.53491399, 31.85461039, 32.17754782, 32.50375914, 32.83327755, 33.16613657, 33.50237007, 33.84201225, 34.18509767, 34.53166125, 34.88173824, 35.23536425, 35.59257528, 35.95340766, 36.3178981, 36.6860837, 37.05800191, 37.43369058, 37.81318792, 38.19653254, 38.58376347, 38.97492008, 39.37004218, 39.76916997, 40.17234407, 40.57960548, 40.99099565, 41.40655644, 41.82633012, 42.2503594, 42.67868743, 43.11135779, 43.5484145, 43.98990203, 44.43586529, 44.88634967, 45.34140099, 45.80106555, 46.26539013, 46.73442196, 47.20820877, 47.68679876, 48.17024063, 48.65858356, 49.15187725, 49.65017187, 50.15351813, 50.66196724, 51.17557094, 51.69438147, 52.21845163, 52.74783474, 53.28258466, 53.8227558, 54.36840311, 54.91958212, 55.4763489, 56.0387601, 56.60687294, 57.18074523, 57.76043535, 58.34600229, 58.93750562, 59.53500553, 60.13856281, 60.74823886, 61.36409571, 61.98619604, 62.61460313, 63.24938092, 63.89059399, 64.53830759, 65.19258762, 65.85350065, 66.52111391, 67.19549534, 67.87671355, 68.56483786, 69.25993826, 69.9620855, 70.671351, 71.38780694, 72.1115262, 72.84258242, 73.58104998, 74.32700402, 75.08052044, 75.8416759, 76.61054784, 77.38721449, 78.17175487, 78.96424882, 79.76477695, 80.57342072, 81.39026241, 82.21538511, 83.0488728, 83.89081025, 84.74128315, 85.60037803, 86.46818228, 87.3447842, 88.23027299, 89.12473873, 90.02827244, 90.94096605, 91.86291241, 92.79420532, 93.73493955, 94.68521081, 95.64511578, 96.61475213, 97.59421852, 98.58361459, 99.58304101, 100.59259948, 101.6123927, 102.64252444, 103.6830995, 104.73422377, 105.79600418, 106.86854877, 107.95196666, 109.04636808, 110.15186438, 111.26856805, 112.3965927, 113.5360531, 114.68706518, 115.84974606, 117.02421403, 118.21058858, 119.40899043, 120.6195415, 121.84236497, 123.07758524, 124.325328, 125.58572019, 126.85889005, 128.14496713, 129.44408227, 130.75636765, 132.0819568, 133.42098457, 134.77358721, 136.13990234, 137.52006898, 138.91422755, 140.32251989, 141.7450893, 143.18208051, 144.63363974, 146.09991465, 147.58105446, 149.07720984, 150.58853303, 152.11517779, 153.65729946, 155.21505494, 156.78860271, 158.37810289, 159.98371719, 161.60560897, 163.24394326, 164.89888674, 166.5706078, 168.25927653, 169.96506474, 171.68814598, 173.42869557, 175.1868906, 176.96290995, 178.75693434, 180.56914628, 182.39973017, 184.24887225, 186.11676066, 188.00358546, 189.90953862, 191.83481405, 193.77960765, 195.74411728, 197.72854282, 199.73308619, 201.75795133, 203.80334425, 205.86947308, 207.95654802, 210.06478142, 212.19438779, 214.3455838, 216.51858832, 218.71362245, 220.93090952, 223.17067512, 225.43314715, 227.71855578, 230.02713356, 232.35911537, 234.71473847, 237.09424254, 239.49786967, 241.92586443, 244.37847385, 246.85594747, 249.35853736, 251.88649814, 254.44008703, 257.01956382, 259.62519098, 262.25723362, 264.91595952, 267.60163919, 270.3145459, 273.05495567, 275.82314731, 278.61940248, 281.44400568, 284.2972443, 287.17940864, 290.09079195, 293.03169044, 296.00240333, 299.00323287, 302.0344844, 305.09646631, 308.18949016, 311.31387063, 314.46992562, 317.65797624, 320.87834685, 324.13136512, 327.41736201, 330.73667187, 334.08963241, 337.47658477, 340.89787357, 344.35384691, 347.8448564, 351.37125724, 354.93340822, 358.53167177, 362.166414, 365.83800471, 369.54681749, 373.29322967, 377.07762244, 380.90038083, 384.76189379, 388.66255422, 392.60275897, 396.58290895, 400.60340912, 404.66466853, 408.76710041, 412.91112214, 417.09715537, 421.325626, 425.59696426, 429.91160472, 434.26998638, 438.67255269, 443.11975157, 447.61203552, 452.14986159, 456.73369148, 461.36399158, 466.04123299, 470.7658916, 475.53844811, 480.35938811, 485.2292021, 490.14838557, 495.117439, 500.13686798, 505.2071832, 510.32890055, 515.50254113, 520.72863132, 526.00770286, 531.34029287, 536.7269439, 542.16820402, 547.66462685, 553.21677162, 558.82520323, 564.4904923, 570.21321526, 575.99395436, 581.83329775, 587.73183956, 593.69017994, 599.7089251, 605.78868744, 611.93008553, 618.13374422, 624.40029471, 630.73037457, 637.12462788, 643.5837052, 650.10826371, 656.69896725, 663.35648639, 670.08149849, 676.8746878, 683.73674547, 690.6683697, 697.67026573, 704.74314596, 711.88773004, 719.10474487, 726.39492476, 733.75901143, 741.19775415, 748.71190977, 756.30224281, 763.96952555, 771.71453809, 779.53806845, 787.44091263, 795.4238747, 803.48776689, 811.63340965, 819.86163175, 828.17327038, 836.5691712, 845.05018845, 853.61718503, 862.27103258, 871.01261158, 879.84281144, 888.7625306, 897.77267658, 906.87416611, 916.06792523, 925.35488935, 934.73600336, 944.21222176, 953.78450868, 963.45383807, 973.22119372, 983.0875694, 993.05396898, 1003.12140647, 1013.29090619, 1023.56350283, 1033.94024156, 1044.42217817, 1055.01037914, 1065.70592176, 1076.50989424, 1087.42339584, 1098.44753693, 1109.58343917, 1120.83223558, 1132.19507065, 1143.67310051, 1155.26749297, 1166.97942771, 1178.81009634, 1190.76070259, 1202.83246235, 1215.02660387, 1227.34436782, 1239.78700749, 1252.35578884, 1265.05199068, 1277.87690477, 1290.83183599, 1303.91810242, 1317.13703554, 1330.48998028, 1343.97829525, 1357.6033528, 1371.36653922, 1385.26925482, 1399.31291415, 1413.49894607, 1427.82879392, 1442.3039157, 1456.92578417, 1471.69588703, 1486.61572706, 1501.68682226, 1516.91070605, 1532.28892737, 1547.82305087, 1563.51465707, 1579.3653425, 1595.37671989, 1611.55041831, 1627.88808334, 1644.39137726, 1661.06197918, 1677.90158526, 1694.91190882, 1712.09468059, 1729.45164881, 1746.98457946, 1764.69525643, 1782.58548168, 1800.65707544, 1818.91187641, 1837.35174191, 1855.9785481, 1874.79419016, 1893.80058247, 1912.99965884, 1932.39337267, 1951.98369717, 1971.77262554, 1991.7621712, 2011.95436799, 2032.35127034, 2052.95495355, 2073.76751391, 2094.791069, 2116.02775785, 2137.47974118, 2159.14920161, 2181.0383439, 2203.14939514, 2225.48460503, 2248.04624604, 2270.83661371, 2293.85802683, 2317.1128277, 2340.60338238, 2364.33208091, 2388.30133755, 2412.51359104, 2436.97130486, 2461.67696745, 2486.63309246, 2511.84221907, 2537.30691215, 2563.02976261, 2589.0133876, 2615.26043083, 2641.77356279, 2668.55548104, 2695.6089105, 2722.93660372, 2750.54134114, 2778.4259314, 2806.59321159, 2835.0460476, 2863.78733435, 2892.8199961, 2922.14698678, 2951.77129025, 2981.69592062, 3011.92392257, 3042.45837162, 3073.30237451, 3104.45906943, 3135.93162642, 3167.72324764, 3199.83716772, 3232.27665408, 3265.04500725, 3298.14556125, 3331.58168388, 3365.35677708, 3399.4742773, 3433.93765579, 3468.75041903, 3503.91610903, 3539.43830371, 3575.32061726, 3611.56670051, 3648.18024131, 3685.1649649, 3722.52463426, 3760.26305054, 3798.38405343, 3836.89152154, 3875.78937278, 3915.08156482, 3954.77209541, 3994.86500286, 4035.36436641, 4076.27430665, 4117.59898594, 4159.34260886, 4201.50942258, 4244.10371737, 4287.12982695, 4330.59212901, 4374.4950456, 4418.84304361, 4463.64063521, 4508.89237831, 4554.60287704, 4600.77678219, 4647.41879171, 4694.53365118, 4742.12615428, 4790.20114329, 4838.76350958, 4887.81819412, 4937.37018796, 4987.42453274, 5037.98632123, 5089.06069782, 5140.65285905, 5192.76805415, 5245.41158556, 5298.58880947, 5352.30513639, 5406.56603166, 5461.37701604, 5516.74366625, 5572.67161555, 5629.16655431, 5686.23423058, 5743.88045071, 5802.11107988, 5860.93204274, 5920.34932401, 5980.36896909, 6040.99708465, 6102.23983927, 6164.10346408, 6226.59425337, 6289.71856525, 6353.48282226, 6417.89351209, 6482.95718818, 6548.68047041, 6615.07004576, 6682.13266902, 6749.87516346, 6818.30442151, 6887.42740548, 6957.25114826, 7027.78275405, 7099.02939905, 7170.99833223, 7243.69687605, 7317.13242719, 7391.31245733, 7466.24451388, 7541.93622078, 7618.39527926, 7695.62946861, 7773.646647, 7852.45475226, 7932.0618027, 8012.47589789, 8093.70521955, 8175.75803233, 8258.64268465, 8342.36760959, 8426.9413257, 8512.37243792, 8598.66963839, 8685.8417074, 8773.89751424, 8862.84601811, 8952.69626904, 9043.45740883, 9135.13867191, 9227.74938639, 9321.29897489, 9415.79695558, 9511.25294314, 9607.67664969, 9705.07788583, 9803.46656161, 9902.85268756, 10003.24637567, 10104.65784047, 10207.09740004, 10310.57547704, 10415.10259982, 10520.68940345, 10627.34663082, 10735.08513373, 10843.915874, 10953.84992458, 11064.89847066, 11177.07281083, 11290.38435824, 11404.84464173, 11520.46530702, 11637.25811788, 11755.23495737, 11874.40782899, 11994.78885795, 12116.39029236, 12239.22450453, 12363.30399217, 12488.64137971, 12615.24941956, 12743.1409934, 12872.32911352, 13002.82692411, 13134.64770263, 13267.80486113, 13402.31194764, 13538.18264755, 13675.43078495, 13814.07032412, 13954.11537088, 14095.58017407, 14238.47912697, 14382.82676879, 14528.63778612, 14675.92701445, 14824.70943967, 14975.0001996, 15126.81458551, 15280.16804371, 15435.07617709, 15591.55474671, 15749.61967344, 15909.28703953, 16070.57309029, 16233.49423569, 16398.0670521, 16564.30828392, 16732.23484531, 16901.86382188, 17073.21247247, 17246.29823091, 17421.13870772, 17597.751692, 17776.15515317, 17956.36724282, 18138.40629657, 18322.29083591, 18508.03957011, 18695.67139812, 18885.20541045, 19076.66089119, 19270.05731989, 19465.41437362, 19662.7519289, 19862.09006377, 20063.44905982, 20266.84940424, 20472.31179193, 20679.85712759, 20889.50652784, 21101.28132339, 21315.20306118, 21531.2935066, 21749.5746457, 21970.06868742, 22192.79806584, 22417.78544248, 22645.05370859, 22874.62598752, 23106.525637, 23340.77625159, 23577.40166502, 23816.42595267, 24057.87343397, 24301.76867491, 24548.13649052, 24797.00194742, 25048.39036631, 25302.32732463, 25558.83865911, 25817.95046839, 26079.68911571, 26344.08123158, 26611.15371648, 26880.9337436, 27153.44876161, 27428.72649745, 27706.79495916, 27987.68243871, 28271.4175149, 28558.02905625, 28847.54622395, 29139.99847481, 29435.4155643, 29733.8275495, 30035.26479225, 30339.75796216, 30647.33803978, 30958.03631974, 31271.88441392, 31588.91425468, 31909.15809811, 32232.6485273, 32559.41845567, 32889.5011303, 33222.93013535, 33559.73939541, 33899.96317904, 34243.63610218, 34590.79313169, 34941.46958896, 35295.70115342, 35653.52386625, 36014.97413398, 36380.08873224, 36748.90480949, 37121.45989077, 37497.79188159, 37877.93907169, 38261.94013901, 38649.83415361, 39041.66058162, 39437.45928929, 39837.270547, 40241.1350334, 40649.09383956, 41061.18847307, 41477.46086238, 41897.95336095, 42322.70875165, 42751.77025107, 43185.1815139, 43622.98663742, 44065.23016595, 44511.95709541, 44963.21287786, 45419.04342616, 45879.49511862, 46344.61480373, 46814.44980494, 47289.04792543, 47768.45745301, 48252.72716504, 48741.90633336, 49236.04472932, 49735.19262887, 50239.40081763, 50748.72059607, 51263.20378475, 51782.90272958, 52307.87030714, 52838.15993006, 53373.82555248, 53914.92167549, 54461.50335273, 55013.62619595, 55571.34638069, 56134.72065199, 56703.80633016, 57278.66131662, 57859.34409978, 58445.913761, 59038.4299806, 59636.95304393, 60241.5438475, 60852.26390518, 61469.17535447, 62092.34096279, 62721.82413392, 63357.68891437, 64000] }, { "type": "double", "attributes": {}, "value": [0, 0.00215271, 0.00217362, 0.00219473, 0.00221605, 0.00223758, 0.00225931, 0.00228125, 0.00230341, 0.00232578, 0.00234836, 0.00237116, 0.00239419, 0.00241743, 0.0024409, 0.0024646, 0.00248853, 0.00251268, 0.00253708, 0.0025617, 0.00258657, 0.00261167, 0.00263702, 0.00266261, 0.00268845, 0.00271454, 0.00274087, 0.00276747, 0.00279432, 0.00282143, 0.0028488, 0.00287644, 0.00290434, 0.00293251, 0.00296095, 0.00298967, 0.00301866, 0.00304794, 0.00307749, 0.00310733, 0.00313746, 0.00316788, 0.00319859, 0.0032296, 0.00326091, 0.00329251, 0.00332443, 0.00335665, 0.00338918, 0.00342202, 0.00345518, 0.00348866, 0.00352246, 0.00355659, 0.00359104, 0.00362583, 0.00366095, 0.00369641, 0.00373221, 0.00376836, 0.00380485, 0.00384169, 0.00387889, 0.00391645, 0.00395436, 0.00399264, 0.00403129, 0.00407031, 0.00410971, 0.00414948, 0.00418964, 0.00423018, 0.00427111, 0.00431243, 0.00435415, 0.00439627, 0.0044388, 0.00448173, 0.00452508, 0.00456884, 0.00461302, 0.00465762, 0.00470265, 0.00474812, 0.00479402, 0.00484036, 0.00488714, 0.00493437, 0.00498206, 0.0050302, 0.0050788, 0.00512787, 0.00517741, 0.00522742, 0.00527791, 0.00532888, 0.00538034, 0.0054323, 0.00548475, 0.0055377, 0.00559116, 0.00564513, 0.00569961, 0.00575462, 0.00581015, 0.00586621, 0.00592281, 0.00597995, 0.00603763, 0.00609586, 0.00615465, 0.006214, 0.00627392, 0.00633441, 0.00639547, 0.00645712, 0.00651935, 0.00658218, 0.00664561, 0.00670964, 0.00677428, 0.00683954, 0.00690541, 0.00697192, 0.00703906, 0.00710683, 0.00717525, 0.00724433, 0.00731405, 0.00738444, 0.0074555, 0.00752724, 0.00759966, 0.00767276, 0.00774656, 0.00782106, 0.00789626, 0.00797218, 0.00804882, 0.00812619, 0.00820429, 0.00828312, 0.00836271, 0.00844305, 0.00852415, 0.00860602, 0.00868866, 0.00877209, 0.00885631, 0.00894132, 0.00902713, 0.00911376, 0.0092012, 0.00928947, 0.00937858, 0.00946852, 0.00955932, 0.00965097, 0.00974348, 0.00983687, 0.00993114, 0.01002629, 0.01012234, 0.0102193, 0.01031717, 0.01041596, 0.01051568, 0.01061634, 0.01071794, 0.0108205, 0.01092403, 0.01102852, 0.011134, 0.01124046, 0.01134793, 0.0114564, 0.01156589, 0.0116764, 0.01178795, 0.01190055, 0.0120142, 0.01212891, 0.0122447, 0.01236156, 0.01247953, 0.01259859, 0.01271876, 0.01284006, 0.01296249, 0.01308606, 0.01321078, 0.01333666, 0.01346372, 0.01359196, 0.01372139, 0.01385203, 0.01398388, 0.01411696, 0.01425128, 0.01438684, 0.01452366, 0.01466175, 0.01480112, 0.01494178, 0.01508375, 0.01522703, 0.01537163, 0.01551758, 0.01566487, 0.01581352, 0.01596355, 0.01611496, 0.01626777, 0.01642199, 0.01657763, 0.0167347, 0.01689322, 0.0170532, 0.01721465, 0.01737758, 0.01754202, 0.01770796, 0.01787542, 0.01804442, 0.01821497, 0.01838707, 0.01856076, 0.01873603, 0.01891291, 0.0190914, 0.01927153, 0.01945329, 0.01963672, 0.01982181, 0.0200086, 0.02019708, 0.02038727, 0.0205792, 0.02077287, 0.02096829, 0.02116549, 0.02136448, 0.02156527, 0.02176788, 0.02197231, 0.0221786, 0.02238675, 0.02259678, 0.0228087, 0.02302253, 0.02323829, 0.02345599, 0.02367564, 0.02389727, 0.02412089, 0.02434651, 0.02457416, 0.02480384, 0.02503558, 0.02526939, 0.02550529, 0.02574329, 0.02598341, 0.02622568, 0.0264701, 0.02671669, 0.02696547, 0.02721646, 0.02746968, 0.02772513, 0.02798285, 0.02824285, 0.02850514, 0.02876975, 0.02903669, 0.02930599, 0.02957765, 0.0298517, 0.03012815, 0.03040703, 0.03068835, 0.03097213, 0.0312584, 0.03154716, 0.03183844, 0.03213226, 0.03242864, 0.03272759, 0.03302914, 0.03333331, 0.03364011, 0.03394956, 0.03426169, 0.03457651, 0.03489405, 0.03521432, 0.03553734, 0.03586314, 0.03619173, 0.03652314, 0.03685738, 0.03719448, 0.03753445, 0.03787732, 0.03822311, 0.03857184, 0.03892352, 0.03927819, 0.03963585, 0.03999654, 0.04036027, 0.04072706, 0.04109694, 0.04146992, 0.04184603, 0.04222529, 0.04260772, 0.04299335, 0.04338218, 0.04377425, 0.04416958, 0.04456818, 0.04497009, 0.04537531, 0.04578388, 0.04619581, 0.04661113, 0.04702986, 0.04745202, 0.04787763, 0.04830671, 0.04873929, 0.04917539, 0.04961502, 0.05005822, 0.050505, 0.05095539, 0.0514094, 0.05186706, 0.05232839, 0.05279342, 0.05326216, 0.05373463, 0.05421087, 0.05469088, 0.0551747, 0.05566233, 0.05615382, 0.05664917, 0.05714841, 0.05765155, 0.05815863, 0.05866967, 0.05918467, 0.05970367, 0.06022669, 0.06075374, 0.06128485, 0.06182005, 0.06235934, 0.06290275, 0.06345031, 0.06400202, 0.06455792, 0.06511802, 0.06568235, 0.06625091, 0.06682374, 0.06740086, 0.06798227, 0.06856801, 0.06915809, 0.06975252, 0.07035134, 0.07095455, 0.07156219, 0.07217425, 0.07279077, 0.07341176, 0.07403724, 0.07466722, 0.07530173, 0.07594078, 0.07658439, 0.07723257, 0.07788534, 0.07854272, 0.07920472, 0.07987136, 0.08054265, 0.08121861, 0.08189926, 0.0825846, 0.08327465, 0.08396943, 0.08466895, 0.08537322, 0.08608226, 0.08679607, 0.08751467, 0.08823808, 0.08896629, 0.08969933, 0.09043721, 0.09117992, 0.09192749, 0.09267992, 0.09343723, 0.09419941, 0.09496649, 0.09573845, 0.09651532, 0.0972971, 0.0980838, 0.09887541, 0.09967195, 0.10047342, 0.10127983, 0.10209117, 0.10290745, 0.10372868, 0.10455485, 0.10538597, 0.10622203, 0.10706304, 0.107909, 0.1087599, 0.10961575, 0.11047653, 0.11134226, 0.11221291, 0.1130885, 0.11396901, 0.11485445, 0.11574479, 0.11664004, 0.11754019, 0.11844522, 0.11935514, 0.12026993, 0.12118957, 0.12211406, 0.12304339, 0.12397754, 0.1249165, 0.12586025, 0.12680878, 0.12776207, 0.12872011, 0.12968287, 0.13065034, 0.1316225, 0.13259933, 0.1335808, 0.1345669, 0.1355576, 0.13655287, 0.1375527, 0.13855705, 0.1395659, 0.14057922, 0.14159699, 0.14261916, 0.14364572, 0.14467664, 0.14571187, 0.14675138, 0.14779514, 0.14884312, 0.14989528, 0.15095158, 0.15201198, 0.15307645, 0.15414494, 0.1552174, 0.15629381, 0.15737411, 0.15845827, 0.15954622, 0.16063794, 0.16173336, 0.16283245, 0.16393515, 0.16504141, 0.16615118, 0.16726441, 0.16838104, 0.16950101, 0.17062428, 0.17175078, 0.17288045, 0.17401324, 0.17514909, 0.17628793, 0.17742971, 0.17857435, 0.17972179, 0.18087198, 0.18202484, 0.1831803, 0.18433829, 0.18549875, 0.18666161, 0.18782679, 0.18899422, 0.19016382, 0.19133553, 0.19250927, 0.19368495, 0.19486251, 0.19604186, 0.19722292, 0.19840561, 0.19958986, 0.20077558, 0.20196268, 0.20315108, 0.20434071, 0.20553146, 0.20672326, 0.20791601, 0.20910963, 0.21030404, 0.21149913, 0.21269482, 0.21389102, 0.21508763, 0.21628457, 0.21748174, 0.21867904, 0.21987638, 0.22107366, 0.22227079, 0.22346768, 0.22466422, 0.22586031, 0.22705587, 0.22825078, 0.22944495, 0.23063829, 0.23183068, 0.23302204, 0.23421225, 0.23540123, 0.23658886, 0.23777504, 0.23895968, 0.24014267, 0.2413239, 0.24250329, 0.24368071, 0.24485608, 0.24602928, 0.24720022, 0.24836879, 0.24953489, 0.25069842, 0.25185927, 0.25301734, 0.25417253, 0.25532473, 0.25647385, 0.25761978, 0.25876243, 0.25990168, 0.26103744, 0.26216962, 0.2632981, 0.26442279, 0.26554359, 0.26666041, 0.26777314, 0.26888168, 0.26998595, 0.27108584, 0.27218127, 0.27327212, 0.27435832, 0.27543977, 0.27651638, 0.27758805, 0.2786547, 0.27971623, 0.28077257, 0.28182361, 0.28286928, 0.28390949, 0.28494415, 0.28597319, 0.28699652, 0.28801406, 0.28902573, 0.29003146, 0.29103116, 0.29202477, 0.2930122, 0.29399339, 0.29496826, 0.29593675, 0.29689879, 0.2978543, 0.29880323, 0.29974552, 0.30068109, 0.30160988, 0.30253185, 0.30344693, 0.30435507, 0.30525621, 0.3061503, 0.30703729, 0.30791713, 0.30878977, 0.30965518, 0.31051329, 0.31136408, 0.31220751, 0.31304353, 0.3138721, 0.3146932, 0.31550679, 0.31631284, 0.31711133, 0.31790221, 0.31868548, 0.3194611, 0.32022905, 0.32098931, 0.32174188, 0.32248672, 0.32322382, 0.32395318, 0.32467479, 0.32538862, 0.32609468, 0.32679297, 0.32748347, 0.3281662, 0.32884114, 0.3295083, 0.33016768, 0.3308193, 0.33146315, 0.33209926, 0.33272762, 0.33334825, 0.33396117, 0.3345664, 0.33516394, 0.33575382, 0.33633607, 0.3369107, 0.33747774, 0.33803721, 0.33858915, 0.33913358, 0.33967053, 0.34020003, 0.34072212, 0.34123684, 0.34174421, 0.34224428, 0.34273708, 0.34322266, 0.34370106, 0.34417232, 0.34463648, 0.34509359, 0.34554369, 0.34598684, 0.34642308, 0.34685246, 0.34727504, 0.34769085, 0.34809997, 0.34850243, 0.3488983, 0.34928762, 0.34967047, 0.35004688, 0.35041693, 0.35078066, 0.35113814, 0.35148943, 0.35183459, 0.35217368, 0.35250676, 0.35283389, 0.35315514, 0.35347056, 0.35378023, 0.3540842, 0.35438255, 0.35467533, 0.35496261, 0.35524446, 0.35552093, 0.35579211, 0.35605804, 0.35631881, 0.35657447, 0.35682509, 0.35707074, 0.35731148, 0.35754738, 0.35777851, 0.35800493, 0.35822671, 0.35844391, 0.35865661, 0.35886486, 0.35906874, 0.3592683, 0.35946362, 0.35965476, 0.35984178, 0.36002475, 0.36020373, 0.36037879, 0.36054999, 0.36071739, 0.36088106, 0.36104105, 0.36119744, 0.36135028, 0.36149963, 0.36164555, 0.36178811, 0.36192737, 0.36206337, 0.36219619, 0.36232588, 0.36245249, 0.36257609, 0.36269674, 0.36281447, 0.36292937, 0.36304146, 0.36315082, 0.3632575, 0.36336154, 0.363463, 0.36356194, 0.3636584, 0.36375243, 0.36384408, 0.36393341, 0.36402046, 0.36410528, 0.36418791, 0.3642684, 0.36434681, 0.36442316, 0.36449752, 0.36456991, 0.36464039, 0.364709, 0.36477578, 0.36484077, 0.36490401, 0.36496554, 0.3650254, 0.36508363, 0.36514027, 0.36519535, 0.36524891, 0.36530099, 0.36535162, 0.36540084, 0.36544867, 0.36549516, 0.36554034, 0.36558424, 0.36562689, 0.36566832, 0.36570856, 0.36574764, 0.3657856, 0.36582245, 0.36585824, 0.36589297, 0.36592669, 0.36595942, 0.36599118, 0.36602201, 0.36605191, 0.36608093, 0.36610908, 0.36613638, 0.36616286, 0.36618854, 0.36621344, 0.36623758, 0.36626099, 0.36628368, 0.36630568, 0.366327, 0.36634765, 0.36636767, 0.36638707, 0.36640586, 0.36642407, 0.3664417, 0.36645878, 0.36647532, 0.36649134, 0.36650684, 0.36652186, 0.3665364, 0.36655047, 0.36656409, 0.36657727, 0.36659002, 0.36660237, 0.36661431, 0.36662586, 0.36663704, 0.36664785, 0.36665831, 0.36666842, 0.3666782, 0.36668766, 0.36669681, 0.36670565, 0.36671419, 0.36672246, 0.36673044, 0.36673816, 0.36674562, 0.36675282, 0.36675979, 0.36676652, 0.36677302, 0.3667793, 0.36678536, 0.36679122, 0.36679688, 0.36680234, 0.36680762, 0.36681271, 0.36681763, 0.36682238, 0.36682696, 0.36683139, 0.36683566, 0.36683978, 0.36684376, 0.36684759, 0.3668513, 0.36685487, 0.36685832, 0.36686164, 0.36686485, 0.36686795, 0.36687093, 0.36687381, 0.36687659, 0.36687926, 0.36688184, 0.36688433, 0.36688673, 0.36688905, 0.36689128, 0.36689342, 0.3668955, 0.36689749, 0.36689942, 0.36690127, 0.36690306, 0.36690478, 0.36690644, 0.36690804, 0.36690958, 0.36691106, 0.36691249, 0.36691387, 0.36691519, 0.36691647, 0.3669177, 0.36691888, 0.36692002, 0.36692112, 0.36692218, 0.3669232, 0.36692418, 0.36692512, 0.36692603, 0.3669269, 0.36692774, 0.36692855, 0.36692933, 0.36693008, 0.3669308, 0.3669315, 0.36693216, 0.36693281, 0.36693343, 0.36693402, 0.36693459, 0.36693514, 0.36693567, 0.36693618, 0.36693667, 0.36693714, 0.3669376, 0.36693803, 0.36693845, 0.36693885, 0.36693924, 0.36693961, 0.36693997, 0.36694032, 0.36694065, 0.36694097, 0.36694127, 0.36694157, 0.36694185, 0.36694212, 0.36694238, 0.36694263, 0.36694288, 0.36694311, 0.36694333, 0.36694354, 0.36694375, 0.36694395, 0.36694414, 0.36694432, 0.3669445, 0.36694466, 0.36694483, 0.36694498, 0.36694513, 0.36694527, 0.36694541, 0.36694554, 0.36694567, 0.36694579, 0.36694591, 0.36694602, 0.36694613, 0.36694623, 0.36694633, 0.36694643, 0.36694652, 0.36694661, 0.3669467, 0.36694678, 0.36694685, 0.36694693, 0.366947, 0.36694707, 0.36694714, 0.3669472, 0.36694726, 0.36694732, 0.36694738, 0.36694743, 0.36694748, 0.36694753, 0.36694758, 0.36694763, 0.36694767, 0.36694771, 0.36694775, 0.36694779, 0.36694783, 0.36694787, 0.3669479, 0.36694793, 0.36694796, 0.36694799, 0.36694802, 0.36694805, 0.36694808, 0.3669481, 0.36694813, 0.36694815, 0.36694818, 0.3669482, 0.36694822, 0.36694824, 0.36694826, 0.36694828, 0.36694829, 0.36694831, 0.36694833, 0.36694834, 0.36694836, 0.36694837, 0.36694838, 0.3669484, 0.36694841, 0.36694842, 0.36694843, 0.36694845, 0.36694846, 0.36694847, 0.36694848, 0.36694849] }, { "type": "double", "attributes": {}, "value": [0, 0.00016747, 0.0001691, 0.00017074, 0.0001724, 0.00017407, 0.00017576, 0.00017747, 0.00017919, 0.00018093, 0.00018269, 0.00018446, 0.00018625, 0.00018806, 0.00018989, 0.00019173, 0.00019359, 0.00019547, 0.00019737, 0.00019929, 0.00020122, 0.00020317, 0.00020515, 0.00020714, 0.00020915, 0.00021118, 0.00021322, 0.00021529, 0.00021738, 0.00021949, 0.00022162, 0.00022377, 0.00022594, 0.00022813, 0.00023035, 0.00023258, 0.00023483, 0.00023711, 0.00023941, 0.00024173, 0.00024408, 0.00024644, 0.00024883, 0.00025124, 0.00025368, 0.00025614, 0.00025862, 0.00026113, 0.00026366, 0.00026621, 0.00026879, 0.0002714, 0.00027403, 0.00027668, 0.00027936, 0.00028207, 0.0002848, 0.00028756, 0.00029034, 0.00029316, 0.000296, 0.00029886, 0.00030176, 0.00030468, 0.00030763, 0.00031061, 0.00031361, 0.00031665, 0.00031971, 0.00032281, 0.00032593, 0.00032908, 0.00033227, 0.00033548, 0.00033873, 0.00034201, 0.00034531, 0.00034865, 0.00035203, 0.00035543, 0.00035887, 0.00036234, 0.00036584, 0.00036938, 0.00037295, 0.00037655, 0.00038019, 0.00038387, 0.00038758, 0.00039132, 0.0003951, 0.00039892, 0.00040277, 0.00040666, 0.00041059, 0.00041456, 0.00041856, 0.0004226, 0.00042668, 0.0004308, 0.00043496, 0.00043916, 0.0004434, 0.00044768, 0.000452, 0.00045636, 0.00046076, 0.00046521, 0.00046969, 0.00047422, 0.0004788, 0.00048341, 0.00048808, 0.00049278, 0.00049753, 0.00050233, 0.00050717, 0.00051206, 0.00051699, 0.00052197, 0.000527, 0.00053208, 0.0005372, 0.00054238, 0.0005476, 0.00055287, 0.00055819, 0.00056357, 0.00056899, 0.00057447, 0.00058, 0.00058558, 0.00059121, 0.0005969, 0.00060264, 0.00060843, 0.00061428, 0.00062019, 0.00062615, 0.00063217, 0.00063825, 0.00064438, 0.00065057, 0.00065682, 0.00066313, 0.0006695, 0.00067593, 0.00068242, 0.00068897, 0.00069558, 0.00070226, 0.000709, 0.0007158, 0.00072267, 0.0007296, 0.0007366, 0.00074366, 0.00075079, 0.00075799, 0.00076525, 0.00077259, 0.00077999, 0.00078746, 0.000795, 0.00080262, 0.0008103, 0.00081806, 0.00082589, 0.0008338, 0.00084177, 0.00084983, 0.00085796, 0.00086616, 0.00087444, 0.0008828, 0.00089124, 0.00089976, 0.00090836, 0.00091704, 0.0009258, 0.00093464, 0.00094356, 0.00095257, 0.00096166, 0.00097084, 0.0009801, 0.00098945, 0.00099888, 0.00100841, 0.00101802, 0.00102772, 0.00103752, 0.0010474, 0.00105738, 0.00106745, 0.00107761, 0.00108787, 0.00109822, 0.00110867, 0.00111921, 0.00112986, 0.0011406, 0.00115144, 0.00116239, 0.00117343, 0.00118458, 0.00119583, 0.00120718, 0.00121864, 0.0012302, 0.00124187, 0.00125365, 0.00126554, 0.00127754, 0.00128965, 0.00130187, 0.0013142, 0.00132664, 0.0013392, 0.00135188, 0.00136467, 0.00137758, 0.00139061, 0.00140375, 0.00141702, 0.00143041, 0.00144392, 0.00145756, 0.00147132, 0.0014852, 0.00149922, 0.00151336, 0.00152763, 0.00154202, 0.00155656, 0.00157122, 0.00158601, 0.00160095, 0.00161601, 0.00163121, 0.00164656, 0.00166204, 0.00167766, 0.00169342, 0.00170932, 0.00172537, 0.00174156, 0.0017579, 0.00177439, 0.00179102, 0.00180781, 0.00182474, 0.00184183, 0.00185907, 0.00187647, 0.00189402, 0.00191173, 0.0019296, 0.00194763, 0.00196582, 0.00198417, 0.00200268, 0.00202136, 0.00204021, 0.00205922, 0.00207841, 0.00209776, 0.00211729, 0.00213699, 0.00215686, 0.00217691, 0.00219713, 0.00221754, 0.00223812, 0.00225889, 0.00227984, 0.00230097, 0.00232229, 0.0023438, 0.00236549, 0.00238738, 0.00240946, 0.00243173, 0.00245419, 0.00247685, 0.00249971, 0.00252276, 0.00254602, 0.00256948, 0.00259314, 0.00261701, 0.00264108, 0.00266537, 0.00268986, 0.00271456, 0.00273947, 0.0027646, 0.00278995, 0.00281551, 0.00284129, 0.0028673, 0.00289352, 0.00291997, 0.00294664, 0.00297354, 0.00300067, 0.00302803, 0.00305562, 0.00308344, 0.0031115, 0.0031398, 0.00316833, 0.00319711, 0.00322612, 0.00325538, 0.00328489, 0.00331464, 0.00334464, 0.00337489, 0.00340539, 0.00343614, 0.00346715, 0.00349842, 0.00352994, 0.00356173, 0.00359377, 0.00362608, 0.00365866, 0.0036915, 0.00372461, 0.00375799, 0.00379164, 0.00382557, 0.00385977, 0.00389425, 0.003929, 0.00396404, 0.00399936, 0.00403496, 0.00407085, 0.00410703, 0.00414349, 0.00418025, 0.0042173, 0.00425464, 0.00429228, 0.00433021, 0.00436845, 0.00440698, 0.00444582, 0.00448496, 0.00452441, 0.00456417, 0.00460423, 0.00464461, 0.00468529, 0.0047263, 0.00476761, 0.00480925, 0.0048512, 0.00489348, 0.00493607, 0.00497899, 0.00502224, 0.00506581, 0.00510971, 0.00515395, 0.00519851, 0.0052434, 0.00528864, 0.0053342, 0.00538011, 0.00542635, 0.00547294, 0.00551986, 0.00556713, 0.00561475, 0.00566271, 0.00571102, 0.00575968, 0.00580869, 0.00585805, 0.00590776, 0.00595783, 0.00600826, 0.00605904, 0.00611018, 0.00616168, 0.00621354, 0.00626576, 0.00631835, 0.0063713, 0.00642461, 0.0064783, 0.00653235, 0.00658676, 0.00664155, 0.00669671, 0.00675224, 0.00680815, 0.00686442, 0.00692107, 0.0069781, 0.0070355, 0.00709328, 0.00715144, 0.00720997, 0.00726889, 0.00732818, 0.00738785, 0.00744791, 0.00750835, 0.00756916, 0.00763036, 0.00769195, 0.00775391, 0.00781626, 0.007879, 0.00794211, 0.00800562, 0.0080695, 0.00813377, 0.00819843, 0.00826347, 0.0083289, 0.00839471, 0.0084609, 0.00852748, 0.00859445, 0.0086618, 0.00872953, 0.00879764, 0.00886614, 0.00893502, 0.00900429, 0.00907393, 0.00914396, 0.00921437, 0.00928515, 0.00935632, 0.00942786, 0.00949978, 0.00957208, 0.00964475, 0.0097178, 0.00979121, 0.009865, 0.00993917, 0.01001369, 0.01008859, 0.01016386, 0.01023948, 0.01031548, 0.01039183, 0.01046854, 0.01054561, 0.01062304, 0.01070082, 0.01077895, 0.01085744, 0.01093627, 0.01101544, 0.01109496, 0.01117482, 0.01125502, 0.01133556, 0.01141643, 0.01149762, 0.01157915, 0.011661, 0.01174318, 0.01182567, 0.01190848, 0.0119916, 0.01207503, 0.01215877, 0.01224281, 0.01232715, 0.01241179, 0.01249672, 0.01258194, 0.01266744, 0.01275323, 0.01283929, 0.01292562, 0.01301222, 0.01309909, 0.01318622, 0.0132736, 0.01336124, 0.01344912, 0.01353724, 0.01362561, 0.0137142, 0.01380303, 0.01389207, 0.01398134, 0.01407081, 0.0141605, 0.01425039, 0.01434047, 0.01443075, 0.01452122, 0.01461186, 0.01470268, 0.01479367, 0.01488482, 0.01497613, 0.01506759, 0.0151592, 0.01525095, 0.01534283, 0.01543483, 0.01552696, 0.0156192, 0.01571155, 0.015804, 0.01589655, 0.01598918, 0.0160819, 0.01617469, 0.01626754, 0.01636046, 0.01645343, 0.01654645, 0.01663951, 0.0167326, 0.01682571, 0.01691885, 0.01701199, 0.01710514, 0.01719828, 0.01729141, 0.01738452, 0.0174776, 0.01757065, 0.01766366, 0.01775662, 0.01784952, 0.01794235, 0.01803511, 0.01812779, 0.01822039, 0.01831288, 0.01840527, 0.01849755, 0.01858971, 0.01868174, 0.01877363, 0.01886538, 0.01895698, 0.01904842, 0.01913968, 0.01923078, 0.01932168, 0.0194124, 0.01950292, 0.01959322, 0.01968331, 0.01977318, 0.01986282, 0.01995221, 0.02004136, 0.02013025, 0.02021888, 0.02030723, 0.02039531, 0.0204831, 0.02057059, 0.02065779, 0.02074467, 0.02083123, 0.02091747, 0.02100338, 0.02108894, 0.02117416, 0.02125902, 0.02134352, 0.02142765, 0.02151141, 0.02159478, 0.02167776, 0.02176034, 0.02184251, 0.02192428, 0.02200563, 0.02208655, 0.02216704, 0.02224709, 0.0223267, 0.02240586, 0.02248456, 0.0225628, 0.02264057, 0.02271787, 0.02279469, 0.02287102, 0.02294686, 0.0230222, 0.02309704, 0.02317138, 0.0232452, 0.0233185, 0.02339128, 0.02346354, 0.02353526, 0.02360645, 0.0236771, 0.0237472, 0.02381676, 0.02388576, 0.02395421, 0.02402209, 0.02408942, 0.02415617, 0.02422236, 0.02428797, 0.02435301, 0.02441747, 0.02448135, 0.02454464, 0.02460735, 0.02466946, 0.02473099, 0.02479192, 0.02485226, 0.024912, 0.02497115, 0.02502969, 0.02508764, 0.02514498, 0.02520172, 0.02525786, 0.02531339, 0.02536832, 0.02542264, 0.02547636, 0.02552947, 0.02558198, 0.02563388, 0.02568517, 0.02573587, 0.02578595, 0.02583544, 0.02588432, 0.0259326, 0.02598029, 0.02602737, 0.02607385, 0.02611974, 0.02616504, 0.02620974, 0.02625386, 0.02629738, 0.02634032, 0.02638267, 0.02642444, 0.02646563, 0.02650625, 0.02654629, 0.02658576, 0.02662466, 0.026663, 0.02670078, 0.02673799, 0.02677466, 0.02681076, 0.02684633, 0.02688134, 0.02691582, 0.02694975, 0.02698316, 0.02701603, 0.02704838, 0.0270802, 0.02711151, 0.02714231, 0.0271726, 0.02720238, 0.02723166, 0.02726045, 0.02728875, 0.02731656, 0.02734389, 0.02737074, 0.02739712, 0.02742303, 0.02744848, 0.02747347, 0.02749801, 0.0275221, 0.02754574, 0.02756895, 0.02759173, 0.02761408, 0.02763601, 0.02765751, 0.02767861, 0.0276993, 0.02771958, 0.02773947, 0.02775897, 0.02777808, 0.02779681, 0.02781516, 0.02783314, 0.02785075, 0.02786801, 0.0278849, 0.02790145, 0.02791765, 0.02793351, 0.02794904, 0.02796423, 0.0279791, 0.02799365, 0.02800789, 0.02802181, 0.02803543, 0.02804875, 0.02806177, 0.0280745, 0.02808695, 0.02809911, 0.028111, 0.02812262, 0.02813397, 0.02814506, 0.0281559, 0.02816648, 0.02817681, 0.0281869, 0.02819675, 0.02820637, 0.02821575, 0.02822491, 0.02823385, 0.02824257, 0.02825108, 0.02825937, 0.02826747, 0.02827536, 0.02828306, 0.02829056, 0.02829788, 0.02830501, 0.02831196, 0.02831873, 0.02832533, 0.02833176, 0.02833802, 0.02834412, 0.02835006, 0.02835584, 0.02836147, 0.02836696, 0.02837229, 0.02837749, 0.02838254, 0.02838746, 0.02839225, 0.02839691, 0.02840144, 0.02840584, 0.02841013, 0.0284143, 0.02841835, 0.02842229, 0.02842611, 0.02842984, 0.02843345, 0.02843697, 0.02844038, 0.0284437, 0.02844692, 0.02845005, 0.02845309, 0.02845605, 0.02845891, 0.0284617, 0.0284644, 0.02846702, 0.02846957, 0.02847204, 0.02847444, 0.02847676, 0.02847902, 0.02848121, 0.02848333, 0.02848539, 0.02848739, 0.02848933, 0.02849121, 0.02849303, 0.02849479, 0.02849651, 0.02849816, 0.02849977, 0.02850133, 0.02850284, 0.0285043, 0.02850572, 0.02850709, 0.02850842, 0.0285097, 0.02851095, 0.02851216, 0.02851332, 0.02851445, 0.02851555, 0.02851661, 0.02851763, 0.02851863, 0.02851959, 0.02852052, 0.02852141, 0.02852228, 0.02852312, 0.02852394, 0.02852473, 0.02852549, 0.02852622, 0.02852693, 0.02852762, 0.02852829, 0.02852893, 0.02852955, 0.02853015, 0.02853073, 0.02853129, 0.02853183, 0.02853236, 0.02853286, 0.02853335, 0.02853382, 0.02853428, 0.02853472, 0.02853514, 0.02853555, 0.02853595, 0.02853633, 0.0285367, 0.02853706, 0.0285374, 0.02853773, 0.02853806, 0.02853836, 0.02853866, 0.02853895, 0.02853923, 0.0285395, 0.02853976, 0.02854001, 0.02854025, 0.02854048, 0.0285407, 0.02854092, 0.02854113, 0.02854133, 0.02854152, 0.02854171, 0.02854189, 0.02854206, 0.02854223, 0.02854239, 0.02854255, 0.0285427, 0.02854284, 0.02854298, 0.02854311, 0.02854324, 0.02854337, 0.02854349, 0.0285436, 0.02854371, 0.02854382, 0.02854392, 0.02854402, 0.02854412, 0.02854421, 0.0285443, 0.02854438, 0.02854447, 0.02854454, 0.02854462, 0.02854469, 0.02854477, 0.02854483, 0.0285449, 0.02854496, 0.02854502, 0.02854508, 0.02854514, 0.02854519, 0.02854524, 0.02854529, 0.02854534, 0.02854539, 0.02854543, 0.02854547, 0.02854552, 0.02854556, 0.02854559, 0.02854563, 0.02854567, 0.0285457, 0.02854573, 0.02854576, 0.02854579, 0.02854582, 0.02854585, 0.02854588, 0.0285459, 0.02854593, 0.02854595, 0.02854597, 0.028546, 0.02854602, 0.02854604, 0.02854606, 0.02854608, 0.02854609, 0.02854611, 0.02854613, 0.02854614, 0.02854616, 0.02854617, 0.02854619, 0.0285462, 0.02854621, 0.02854623, 0.02854624, 0.02854625, 0.02854626, 0.02854627, 0.02854628, 0.02854629, 0.0285463, 0.02854631, 0.02854632, 0.02854633, 0.02854634, 0.02854634, 0.02854635, 0.02854636, 0.02854637, 0.02854637, 0.02854638, 0.02854639, 0.02854639, 0.0285464, 0.0285464, 0.02854641, 0.02854641, 0.02854642, 0.02854642, 0.02854643, 0.02854643, 0.02854643, 0.02854644, 0.02854644, 0.02854645, 0.02854645, 0.02854645, 0.02854646, 0.02854646, 0.02854646, 0.02854646, 0.02854647, 0.02854647, 0.02854647, 0.02854647, 0.02854648, 0.02854648, 0.02854648, 0.02854648, 0.02854648, 0.02854649, 0.02854649, 0.02854649, 0.02854649, 0.02854649, 0.02854649, 0.0285465, 0.0285465, 0.0285465, 0.0285465, 0.0285465, 0.0285465, 0.0285465, 0.0285465, 0.02854651, 0.02854651, 0.02854651, 0.02854651, 0.02854651, 0.02854651, 0.02854651, 0.02854651, 0.02854651] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8] }, { "type": "double", "attributes": {}, "value": [0.00028096, 0.03596249, 0.0692559, 0.15403467, 0.26002569, 0.40457806, 0.56437234, 0.66909906, 0.68686959, 0.00091311, 0.03631369, 0.00021072, 0.03624345, 0.06883446, 0.15115486, 0.25546014, 0.39537672, 0.54112315, 0.64325102, 0.65800126, 0.00091311, 0.03729704, 0.00021072, 0.03638393, 0.06918566, 0.15431562, 0.26269478, 0.40809002, 0.56366995, 0.66902882, 0.69122442, 0.00070239, 0.03652441] }, { "type": "double", "attributes": {}, "value": [0.00001405, 0.00179812, 0.00346279, 0.00770173, 0.01300128, 0.0202289, 0.02821862, 0.03345495, 0.03434348, 0.00004566, 0.00181568, 0.00001054, 0.00181217, 0.00344172, 0.00755774, 0.01277301, 0.01976884, 0.02705616, 0.03216255, 0.03290006, 0.00004566, 0.00186485, 0.00001054, 0.0018192, 0.00345928, 0.00771578, 0.01313474, 0.0204045, 0.0281835, 0.03345144, 0.03456122, 0.00003512, 0.00182622] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["dose", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8, 0, 26.8, 53.6, 134, 268, 536, 1072, 2144, 4288, 0, 26.8] }, { "type": "double", "attributes": {}, "value": [0, 0.04653186, 0.09081418, 0.20572173, 0.35231908, 0.55639709, 0.78816756, 0.94934603, 0.99061285, 0, 0.04698628, 0, 0.04689539, 0.09026156, 0.20187559, 0.34613303, 0.54374292, 0.75569918, 0.91267174, 0.94897854, 0, 0.04825863, 0, 0.04707716, 0.09072208, 0.20609696, 0.35593554, 0.56122693, 0.78718665, 0.94924637, 0.99689345, 0, 0.04725892] }, { "type": "double", "attributes": {}, "value": [0, 0.00361992, 0.00706483, 0.01600398, 0.02740843, 0.04328454, 0.06131497, 0.07385374, 0.07706406, 0, 0.00365527, 0, 0.0036482, 0.00702184, 0.01570478, 0.02692719, 0.04230012, 0.05878911, 0.07100069, 0.07382515, 0, 0.00375425, 0, 0.00366234, 0.00705766, 0.01603318, 0.02768977, 0.04366027, 0.06123866, 0.07384599, 0.07755266, 0, 0.00367648] } ] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["simulated", "measured", "unfaded"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["convInfo", "data", "control"] }, "class": { "type": "character", "attributes": {}, "value": ["nls"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["isConv", "finIter", "finTol", "stopCode", "stopMessage"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [15] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "character", "attributes": {}, "value": ["Relative error in the sum of squares is at most `ftol'."] } ] }, { "type": "symbol", "attributes": {}, "value": ["data"] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ftol", "ptol", "gtol", "diag", "epsfcn", "factor", "maxfev", "maxiter", "nprint"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "list", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [100] }, { "type": "integer", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [500] }, { "type": "double", "attributes": {}, "value": [0] } ] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["convInfo", "data", "weights", "control"] }, "class": { "type": "character", "attributes": {}, "value": ["nls"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["isConv", "finIter", "finTol", "stopCode", "stopMessage"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [7] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "character", "attributes": {}, "value": ["Relative error in the sum of squares is at most `ftol'."] } ] }, { "type": "symbol", "attributes": {}, "value": ["data"] }, { "type": "double", "attributes": {}, "value": [0.21028811, 0.00164288, 0.0008531, 0.00038356, 0.00022722, 0.00014603, 0.00010469, 0.0000883, 0.00008602, 0.06470403, 0.00162699, 0.28038415, 0.00163014, 0.00085832, 0.00039087, 0.00023128, 0.00014943, 0.00010918, 0.00009185, 0.00008979, 0.06470403, 0.00158409, 0.28038415, 0.00162385, 0.00085396, 0.00038286, 0.00022491, 0.00014478, 0.00010482, 0.00008831, 0.00008547, 0.08411524, 0.0016176] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ftol", "ptol", "gtol", "diag", "epsfcn", "factor", "maxfev", "maxiter", "nprint"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "list", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [100] }, { "type": "integer", "attributes": {}, "value": [] }, { "type": "double", "attributes": {}, "value": [500] }, { "type": "double", "attributes": {}, "value": [0] } ] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["convInfo", "data", "control"] }, "class": { "type": "character", "attributes": {}, "value": ["nls"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["isConv", "finTol", "stopCode", "stopMessage"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [1.49011612e-08] }, { "type": "integer", "attributes": {}, "value": [2] }, { "type": "character", "attributes": {}, "value": ["Relative error between `par' and the solution is at most `ptol'."] } ] }, { "type": "language", "attributes": {}, "value": ["parent.frame()"] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["maxiter"] } }, "value": [ { "type": "NULL" } ] } ] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_Huntley2006"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "rhop", "ddot", "readerDdot", "n.MC", "fit.method", "fit.force_through_origin", "mode", "plot", "verbose"] } }, "value": [ { "type": "symbol", "attributes": {}, "value": ["data"] }, { "type": "symbol", "attributes": {}, "value": ["rhop"] }, { "type": "symbol", "attributes": {}, "value": ["ddot"] }, { "type": "symbol", "attributes": {}, "value": ["readerDdot"] }, { "type": "double", "attributes": {}, "value": [100] }, { "type": "character", "attributes": {}, "value": ["GOK"] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "character", "attributes": {}, "value": ["interpolation"] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "logical", "attributes": {}, "value": [false] } ] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/calc_FadingCorr.md0000644000176200001440000004523514762554470022522 0ustar liggesusers# snapshot tests { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["age.corr", "age.corr.MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["AGE", "AGE.ERROR", "AGE_FADED", "AGE_FADED.ERROR", "G_VALUE", "G_VALUE.ERROR", "KAPPA", "KAPPA.ERROR", "TC", "TC.G_VALUE", "n.MC", "OBSERVATIONS", "SEED"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [1.3854] }, { "type": "double", "attributes": {}, "value": [0.1038] }, { "type": "double", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [4.80217241] }, { "type": "double", "attributes": {}, "value": [0.99182824] }, { "type": "double", "attributes": {}, "value": [0.02085557] }, { "type": "double", "attributes": {}, "value": [0.00430746] }, { "type": "double", "attributes": {}, "value": [8.21372102e-07] }, { "type": "double", "attributes": {}, "value": [5.47581401e-06] }, { "type": "double", "attributes": {}, "value": [20] }, { "type": "integer", "attributes": {}, "value": [20] }, { "type": "logical", "attributes": {}, "value": [null] } ] }, { "type": "double", "attributes": {}, "value": [1.31805113, 1.40661916, 1.29710669, 1.59669039, 1.42373847, 1.29860057, 1.4430406, 1.47491558, 1.45409185, 1.35166595, 1.58381466, 1.43104604, 1.31858245, 1.17527583, 1.52768282, 1.38033931, 1.38358509, 1.50270118, 1.4857898, 1.45638128] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_FadingCorr"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["age.corr", "age.corr.MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["AGE", "AGE.ERROR", "AGE_FADED", "AGE_FADED.ERROR", "G_VALUE", "G_VALUE.ERROR", "KAPPA", "KAPPA.ERROR", "TC", "TC.G_VALUE", "n.MC", "OBSERVATIONS", "SEED"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [13.402] }, { "type": "double", "attributes": {}, "value": [0.7532] }, { "type": "double", "attributes": {}, "value": [10] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [5.31239295] }, { "type": "double", "attributes": {}, "value": [1.01190088] }, { "type": "double", "attributes": {}, "value": [0.02307143] }, { "type": "double", "attributes": {}, "value": [0.00439463] }, { "type": "double", "attributes": {}, "value": [0.00008214] }, { "type": "double", "attributes": {}, "value": [5.47581401e-06] }, { "type": "double", "attributes": {}, "value": [20] }, { "type": "integer", "attributes": {}, "value": [20] }, { "type": "logical", "attributes": {}, "value": [null] } ] }, { "type": "double", "attributes": {}, "value": [13.75019012, 13.52270853, 14.16851252, 13.35106175, 13.87098925, 14.46047797, 12.81287261, 12.35038913, 13.44404423, 13.19440981, 12.9342717, 13.02575694, 12.84662693, 14.0905034, 14.53101693, 14.36193873, 13.02895288, 14.62432857, 13.15674887, 15.21488402] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_FadingCorr"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["age.corr", "age.corr.MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["AGE", "AGE.ERROR", "AGE_FADED", "AGE_FADED.ERROR", "G_VALUE", "G_VALUE.ERROR", "KAPPA", "KAPPA.ERROR", "TC", "TC.G_VALUE", "n.MC", "OBSERVATIONS", "SEED"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [1.3382] }, { "type": "double", "attributes": {}, "value": [5.4639] }, { "type": "double", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [6] }, { "type": "double", "attributes": {}, "value": [5.47792719] }, { "type": "double", "attributes": {}, "value": [0.70551392] }, { "type": "double", "attributes": {}, "value": [0.02379034] }, { "type": "double", "attributes": {}, "value": [0.00306401] }, { "type": "double", "attributes": {}, "value": [0.00001198] }, { "type": "double", "attributes": {}, "value": [5.47581401e-06] }, { "type": "double", "attributes": {}, "value": [1000] }, { "type": "integer", "attributes": {}, "value": [585] }, { "type": "double", "attributes": {}, "value": [11] } ] }, { "type": "double", "attributes": {}, "value": [4.75643726, 4.65718725, 6.9647454, 8.02327331, 2.34135678, 23.57480211, 6.70231207, 11.65197143, 7.03308894, 5.32416198, 9.14539155, 2.12696543, 19.18961061, 0.25394477, 2.23531167, 1.25633366, 0.79250982, 6.15258562, 20.71387146, 2.69144136, 7.41833182, 4.24079197, 2.65257361, 3.50274545, 1.67720265, 12.33109335, 14.90056831, 6.821073, 0.19213184, 1.78988519, 5.12723854, 2.84423404, 1.84396483, 3.54646016, 12.09820692, 8.52528959, 13.19718126, 27.75699651, 15.28120125, 6.82904872, 0.14129142, 6.00046537, 8.82357555, 11.84847977, 12.87505016, 2.59085728, 0.8031953, 7.32840377, 6.10090906, 0.93054929, 3.06594813, 10.5558045, 20.21396415, 1.04749076, 0.35240632, 3.61411597, 6.7770515, 13.0539188, 3.90560798, 4.78414205, 7.27311258, 3.133312, 1.41065367, 5.56711893, 3.48257293, 1.0170773, 7.69072743, 14.6374508, 11.5379669, 4.37918258, 23.27588051, 12.66985313, 5.92918185, 7.85171586, 5.4200696, 6.0554618, 6.61566981, 7.21974847, 5.11535126, 15.54629298, 3.14585139, 8.27499154, 1.99596256, 5.73605014, 11.93732421, 8.32621002, 13.02432488, 0.63649563, 7.66441731, 0.17094736, 25.6655326, 6.70188324, 1.75757961, 4.74697633, 0.15961598, 14.73009415, 3.81602833, 8.62078634, 9.54004195, 5.91395815, 1.00052272, 4.65256742, 11.07674069, 8.44679446, 4.39738387, 5.27672381, 11.96751894, 9.44269252, 9.70414113, 4.4716865, 0.2048417, 4.07898026, 13.58371539, 2.65466722, 0.09803816, 29.16676643, 1.71275274, 11.15111662, 1.30241361, 5.82577591, 9.84791421, 22.19560957, 4.89064931, 4.8425933, 0.66794466, 2.42576073, 10.40620699, 2.21012046, 5.71290549, 5.97747546, 15.04713764, 13.92410253, 16.83947614, 4.17463255, 2.62972243, 2.53128476, 1.62639724, 22.2983533, 10.43658917, 2.78272759, 11.14155356, 0.51924006, 6.94842845, 10.25576575, 8.98224869, 10.19652859, 22.7423511, 12.23326133, 1.95727655, 4.8925744, 1.82704522, 3.41607854, 16.74776412, 4.91147484, 1.51332667, 4.28081305, 4.55606061, 14.52538043, 12.39049903, 3.27492545, 16.92019306, 4.83368566, 13.09930222, 22.45646241, 5.15274947, 23.45792175, 6.08912943, 4.01865346, 4.29196263, 0.67728217, 1.64019904, 0.14301667, 5.0270826, 4.16679326, 2.37757744, 1.87381685, 0.36515995, 5.88213422, 1.2279858, 7.28158463, 7.88156695, 22.2846776, 1.97672297, 9.54387295, 4.88672503, 4.22039623, 2.51619348, 8.69241001, 3.82081529, 4.92460185, 7.36129099, 4.68546313, 10.31467267, 1.61362598, 7.72173969, 15.61468084, 5.22218977, 0.30338717, 3.34238845, 9.90914833, 8.82785521, 3.32212542, 10.11869589, 2.08545263, 2.45004196, 3.87194961, 2.06069094, 13.43155782, 6.80513408, 13.20352788, 4.17616538, 0.03398763, 1.66429352, 9.0697084, 6.76683989, 5.19142726, 11.71000107, 7.79337059, 1.69609131, 15.5608457, 7.32200889, 4.61311646, 6.40825669, 3.2837366, 6.00591416, 0.70086008, 17.15363523, 6.84712923, 15.72944657, 13.6093225, 13.17433069, 5.47016463, 9.34702998, 2.53234133, 11.23608053, 9.96771232, 1.58342358, 7.7209567, 0.1941767, 3.0649981, 8.69190183, 7.91651593, 5.40484452, 5.96767116, 1.05716308, 7.65760649, 0.3493716, 10.13455212, 21.98031451, 2.04877003, 14.41123776, 6.55273472, 0.63248097, 8.00570955, 3.21350399, 4.34778145, 3.12818348, 0.94259334, 2.35128052, 17.27651297, 5.46751562, 7.86347966, 7.57279399, 0.07119138, 2.85374604, 8.07572097, 10.26617185, 2.50897444, 5.72958701, 10.56600694, 6.40137795, 11.33434911, 5.03468949, 2.21983752, 3.40182608, 1.68544433, 12.42293101, 12.97238104, 4.75377116, 2.73499698, 1.18557282, 0.4457696, 0.49714165, 14.36227519, 5.00320054, 20.64996724, 5.53090925, 5.05805789, 11.90867883, 7.99807507, 3.91527519, 4.39685399, 17.84802687, 10.64103668, 11.76144157, 12.66119777, 1.36411618, 6.70617215, 8.68592246, 3.01540794, 10.02384411, 18.75638215, 9.08773407, 4.52619689, 0.44761491, 7.05773042, 0.61785906, 7.06907378, 6.51547208, 19.50718672, 11.22753682, 8.29730107, 6.4838077, 7.16577815, 0.56595822, 1.32098579, 6.61136756, 4.45116386, 4.39149124, 4.55836283, 13.56572776, 7.76505129, 5.92589755, 14.52309942, 5.67162516, 20.36058968, 1.45064713, 1.44539822, 0.3597053, 8.54392242, 13.18206512, 25.57598594, 9.06222609, 1.08896176, 9.63220911, 2.33868243, 3.51326924, 13.96898633, 16.03500694, 2.34119811, 6.25099846, 10.71122117, 14.2375497, 1.26516094, 6.10257459, 5.81599491, 2.94074845, 12.68008139, 8.93439682, 3.08548439, 1.49435017, 0.79598993, 0.35036933, 12.80365823, 7.5557557, 12.52931836, 3.18265777, 2.46418832, 10.71318009, 20.76476929, 4.66584983, 6.04989341, 1.1465397, 9.84374967, 9.25284599, 7.37704219, 4.42339933, 12.08826431, 0.26121762, 11.54485451, 1.78083221, 11.41524676, 1.37205942, 2.2459167, 0.36164406, 0.09819227, 8.78699707, 6.42216724, 0.60316163, 16.16632448, 2.79070498, 6.9363138, 3.4771919, 1.15342348, 3.83234232, 0.7655679, 9.43719687, 11.31056112, 3.75321865, 15.05807092, 7.04453951, 6.09183217, 9.14531931, 2.9185972, 4.69228119, 20.20400584, 7.19792934, 3.80664703, 1.50429872, 11.77601683, 6.7263558, 9.15637424, 12.96014852, 19.53689257, 0.4974004, 12.8617575, 12.19697939, 6.14654654, 3.00079274, 2.24272562, 3.07484468, 7.62672369, 9.68719318, 7.19634358, 1.12229572, 11.83318289, 11.57838972, 8.3320917, 3.41081483, 1.92088388, 4.55565153, 0.83040103, 2.66541896, 4.50530833, 18.87237702, 1.37883236, 5.13034295, 10.50397907, 14.15361604, 9.11795813, 2.74033489, 11.04943552, 11.63420686, 1.43857504, 9.74613434, 16.54258055, 4.88594677, 22.79279703, 4.22514255, 4.70136524, 3.22115086, 4.05517099, 2.67324127, 7.02728491, 0.77609534, 2.44552153, 4.15212635, 7.59194618, 2.28680104, 4.65441732, 2.2196729, 7.49778549, 23.65028275, 3.68575377, 3.92722208, 7.29632526, 1.571589, 9.60578144, 5.6687765, 8.46730752, 4.77441419, 10.01130275, 4.5681493, 7.32842447, 14.1596956, 1.62074789, 3.21222125, 0.75828245, 10.12316179, 14.53728615, 8.02576204, 2.40175189, 6.81975034, 0.90160708, 10.48318506, 12.02175925, 9.8568179, 7.90771073, 1.1800374, 16.54364531, 2.49722508, 7.80136275, 6.65653607, 5.90029511, 6.31466631, 2.7646461, 2.41187253, 3.1141049, 0.11050794, 8.15917806, 13.98864806, 9.87458913, 4.85619353, 7.47548484, 11.78290686, 10.93366711, 1.64754874, 3.12732511, 16.00493906, 11.11998169, 12.05128933, 5.7602535, 4.5392395, 3.78861154, 18.94786942, 7.28593907, 12.17735258, 8.00843877, 3.82270364, 5.03764491, 1.69687901, 5.53804723, 0.88524402, 1.40975898, 5.89814913, 6.25549724, 6.85763754, 4.07348433, 3.4338016, 10.49172701, 3.65628841, 2.6636845, 9.26179951, 2.90569208, 9.55319698, 1.7855019, 2.20290427, 1.67448174, 0.96642627, 1.64455022, 6.0913027, 17.27558675, 0.72653646, 0.85090138, 14.12355998, 4.3905976, 4.87235478, 6.22168148, 6.92326008, 1.00250436, 17.24066483, 3.91032475, 0.96012191, 11.25058549, 9.18429703, 1.57949092, 2.92729354, 12.27394379, 7.93537998, 14.39296864, 15.16543005, 13.95529714, 5.2555147, 6.64468488, 9.82332977, 17.49418089, 1.85168918, 13.85587833, 1.83496106, 6.13717451, 11.44188309, 10.21496334, 1.82680945, 0.01509283, 16.35974873, 7.02203213, 10.32295972, 12.64716172, 1.14892677, 10.61045707, 7.50300593, 2.51954124, 8.26267724, 2.56852764, 10.37285975, 8.84632724, 7.51818284, 11.16619606, 0.30071331, 10.39501395, 6.47318471, 2.44963985, 1.2757242, 7.5520862, 13.39022467] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_FadingCorr"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/plot_NRt.md0000644000176200001440000005601714762554470021263 0ustar liggesusers# check functionality { "type": "S4", "attributes": { "protocol": { "type": "character", "attributes": {}, "value": ["UNKNOWN"] }, "records": { "type": "list", "attributes": {}, "value": [ { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["N/R1"] }, "curveType": { "type": "character", "attributes": {}, "value": ["NRt"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [166, 2] } }, "value": [0.22, 0.26, 0.3, 0.34, 0.38, 0.42, 0.46, 0.5, 0.54, 0.58, 0.62, 0.66, 0.7, 0.74, 0.78, 0.82, 0.86, 0.9, 0.94, 0.98, 1.02, 1.06, 1.1, 1.14, 1.18, 1.22, 1.26, 1.3, 1.34, 1.38, 1.42, 1.46, 1.5, 1.54, 1.58, 1.62, 1.66, 1.7, 1.74, 1.78, 1.82, 1.86, 1.9, 1.94, 1.98, 2.02, 2.06, 2.1, 2.14, 2.18, 2.22, 2.26, 2.3, 2.34, 2.38, 2.42, 2.46, 2.5, 2.54, 2.58, 2.62, 2.66, 2.7, 2.74, 2.78, 2.82, 2.86, 2.9, 2.94, 2.98, 3.02, 3.06, 3.1, 3.14, 3.18, 3.22, 3.26, 3.3, 3.34, 3.38, 3.42, 3.46, 3.5, 3.54, 3.58, 3.62, 3.66, 3.7, 3.74, 3.78, 3.82, 3.86, 3.9, 3.94, 3.98, 4.02, 4.06, 4.1, 4.14, 4.18, 4.22, 4.26, 4.3, 4.34, 4.38, 4.42, 4.46, 4.5, 4.54, 4.58, 4.62, 4.66, 4.7, 4.74, 4.78, 4.82, 4.86, 4.9, 4.94, 4.98, 5.02, 5.06, 5.1, 5.14, 5.18, 5.22, 5.26, 5.3, 5.34, 5.38, 5.42, 5.46, 5.5, 5.54, 5.58, 5.62, 5.66, 5.7, 5.74, 5.78, 5.82, 5.86, 5.9, 5.94, 5.98, 6.02, 6.06, 6.1, 6.14, 6.18, 6.22, 6.26, 6.3, 6.34, 6.38, 6.42, 6.46, 6.5, 6.54, 6.58, 6.62, 6.66, 6.7, 6.74, 6.78, 6.82, 1, 0.98274285, 0.97606624, 0.94507834, 0.9380356, 0.93064924, 0.91842276, 0.90228562, 0.88973516, 0.87781628, 0.86753595, 0.87321083, 0.87874927, 0.87782414, 0.89151742, 0.89028983, 0.86953313, 0.86257967, 0.85081281, 0.85333343, 0.83278991, 0.80676541, 0.78470139, 0.77619791, 0.73166137, 0.72676567, 0.7225155, 0.70724272, 0.692695, 0.66384539, 0.68605663, 0.67783027, 0.6685874, 0.65745126, 0.66885936, 0.67212427, 0.66710564, 0.72640868, 0.7228018, 0.75562765, 0.7291984, 0.74681586, 0.74923581, 0.76491346, 0.76254929, 0.75764928, 0.78077889, 0.7496519, 0.74287338, 0.76368977, 0.79517846, 0.78689375, 0.77964793, 0.78758401, 0.78315373, 0.76994949, 0.75595183, 0.72721574, 0.73323568, 0.69362295, 0.71186845, 0.73630853, 0.75624788, 0.75788456, 0.74547743, 0.7374311, 0.76137853, 0.78319304, 0.76468014, 0.77469716, 0.73043822, 0.69092826, 0.66372132, 0.64243934, 0.66520487, 0.66974382, 0.64523487, 0.62722068, 0.66062502, 0.65721013, 0.64237983, 0.69589414, 0.71235561, 0.71196118, 0.7185212, 0.72600849, 0.73412676, 0.7218023, 0.69950039, 0.70568988, 0.72068781, 0.70284734, 0.71035725, 0.71009059, 0.70972097, 0.71766156, 0.68530592, 0.73498072, 0.75194113, 0.72278774, 0.71420498, 0.70377455, 0.6964873, 0.69570215, 0.67608011, 0.69709345, 0.69075332, 0.63476163, 0.62516388, 0.63822459, 0.63071468, 0.60709608, 0.59650258, 0.59832836, 0.60147781, 0.5679367, 0.58279148, 0.59549958, 0.61378936, 0.63969464, 0.64078938, 0.62051887, 0.62743794, 0.61534651, 0.60681252, 0.62557562, 0.65801047, 0.66279995, 0.65018597, 0.61447711, 0.66356382, 0.68492318, 0.66988201, 0.7299063, 0.70639428, 0.67858284, 0.63915118, 0.65064595, 0.65188579, 0.69189843, 0.64378014, 0.62554178, 0.65690885, 0.6313944, 0.66560501, 0.70178372, 0.74096588, 0.74080623, 0.73352104, 0.7109004, 0.72776979, 0.77585275, 0.76272752, 0.74007223, 0.77111132, 0.75933983, 0.72581343, 0.72086429, 0.72025216, 0.72974979, 0.72869798, 0.72702968, 0.71333379, 0.69786477, 0.64068463, 0.63359619] }, "originator": { "type": "character", "attributes": {}, "value": [null] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data"] } }, "value": [ { "type": "list", "attributes": {}, "value": [ { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [175, 2] } }, "value": [0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1, 1.04, 1.08, 1.12, 1.16, 1.2, 1.24, 1.28, 1.32, 1.36, 1.4, 1.44, 1.48, 1.52, 1.56, 1.6, 1.64, 1.68, 1.72, 1.76, 1.8, 1.84, 1.88, 1.92, 1.96, 2, 2.04, 2.08, 2.12, 2.16, 2.2, 2.24, 2.28, 2.32, 2.36, 2.4, 2.44, 2.48, 2.52, 2.56, 2.6, 2.64, 2.68, 2.72, 2.76, 2.8, 2.84, 2.88, 2.92, 2.96, 3, 3.04, 3.08, 3.12, 3.16, 3.2, 3.24, 3.28, 3.32, 3.36, 3.4, 3.44, 3.48, 3.52, 3.56, 3.6, 3.64, 3.68, 3.72, 3.76, 3.8, 3.84, 3.88, 3.92, 3.96, 4, 4.04, 4.08, 4.12, 4.16, 4.2, 4.24, 4.28, 4.32, 4.36, 4.4, 4.44, 4.48, 4.52, 4.56, 4.6, 4.64, 4.68, 4.72, 4.76, 4.8, 4.84, 4.88, 4.92, 4.96, 5, 5.04, 5.08, 5.12, 5.16, 5.2, 5.24, 5.28, 5.32, 5.36, 5.4, 5.44, 5.48, 5.52, 5.56, 5.6, 5.64, 5.68, 5.72, 5.76, 5.8, 5.84, 5.88, 5.92, 5.96, 6, 6.04, 6.08, 6.12, 6.16, 6.2, 6.24, 6.28, 6.32, 6.36, 6.4, 6.44, 6.48, 6.52, 6.56, 6.6, 6.64, 6.68, 6.72, 6.76, 6.8, 6.84, 6.88, 6.92, 6.96, 7, 3673, 2989, 2668, 2292, 1948, 1775, 1517, 1394, 1158, 1046, 923, 788, 634, 621, 587, 513, 419, 421, 325, 323, 339, 289, 248, 296, 254, 192, 193, 172, 183, 163, 138, 154, 146, 124, 158, 146, 117, 124, 108, 135, 100, 99, 103, 125, 123, 85, 95, 109, 108, 92, 104, 93, 90, 90, 94, 97, 101, 64, 84, 98, 76, 86, 85, 77, 84, 73, 82, 79, 82, 87, 83, 92, 70, 69, 63, 105, 96, 69, 84, 83, 70, 61, 72, 74, 59, 75, 78, 87, 90, 50, 75, 63, 76, 82, 79, 78, 57, 54, 72, 78, 61, 77, 79, 65, 64, 53, 80, 77, 66, 57, 75, 67, 56, 55, 78, 47, 49, 61, 54, 63, 71, 64, 60, 53, 63, 57, 59, 83, 69, 50, 45, 55, 68, 46, 60, 69, 56, 69, 59, 60, 54, 54, 79, 34, 51, 40, 57, 53, 67, 54, 37, 48, 62, 61, 61, 72, 65, 44, 55, 69, 54, 59, 53, 62, 59, 39, 53, 53, 41, 52, 61, 41, 47, 50, 47] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [175, 2] } }, "value": [0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1, 1.04, 1.08, 1.12, 1.16, 1.2, 1.24, 1.28, 1.32, 1.36, 1.4, 1.44, 1.48, 1.52, 1.56, 1.6, 1.64, 1.68, 1.72, 1.76, 1.8, 1.84, 1.88, 1.92, 1.96, 2, 2.04, 2.08, 2.12, 2.16, 2.2, 2.24, 2.28, 2.32, 2.36, 2.4, 2.44, 2.48, 2.52, 2.56, 2.6, 2.64, 2.68, 2.72, 2.76, 2.8, 2.84, 2.88, 2.92, 2.96, 3, 3.04, 3.08, 3.12, 3.16, 3.2, 3.24, 3.28, 3.32, 3.36, 3.4, 3.44, 3.48, 3.52, 3.56, 3.6, 3.64, 3.68, 3.72, 3.76, 3.8, 3.84, 3.88, 3.92, 3.96, 4, 4.04, 4.08, 4.12, 4.16, 4.2, 4.24, 4.28, 4.32, 4.36, 4.4, 4.44, 4.48, 4.52, 4.56, 4.6, 4.64, 4.68, 4.72, 4.76, 4.8, 4.84, 4.88, 4.92, 4.96, 5, 5.04, 5.08, 5.12, 5.16, 5.2, 5.24, 5.28, 5.32, 5.36, 5.4, 5.44, 5.48, 5.52, 5.56, 5.6, 5.64, 5.68, 5.72, 5.76, 5.8, 5.84, 5.88, 5.92, 5.96, 6, 6.04, 6.08, 6.12, 6.16, 6.2, 6.24, 6.28, 6.32, 6.36, 6.4, 6.44, 6.48, 6.52, 6.56, 6.6, 6.64, 6.68, 6.72, 6.76, 6.8, 6.84, 6.88, 6.92, 6.96, 7, 1845, 1676, 1326, 1257, 1127, 924, 834, 696, 676, 566, 553, 475, 442, 367, 369, 303, 276, 238, 218, 195, 191, 164, 175, 152, 162, 147, 139, 111, 119, 128, 107, 114, 116, 111, 107, 119, 106, 97, 108, 80, 88, 84, 98, 94, 80, 75, 43, 90, 67, 77, 71, 76, 67, 70, 65, 62, 62, 59, 42, 55, 58, 79, 57, 64, 70, 56, 75, 66, 65, 41, 47, 63, 46, 71, 60, 60, 64, 81, 58, 64, 68, 64, 64, 53, 52, 58, 67, 59, 65, 49, 37, 50, 68, 54, 62, 54, 61, 51, 48, 60, 36, 55, 71, 43, 45, 63, 43, 56, 69, 50, 50, 53, 51, 48, 43, 65, 60, 51, 45, 63, 67, 60, 53, 44, 53, 57, 56, 54, 41, 49, 66, 46, 75, 44, 39, 43, 49, 53, 58, 31, 50, 59, 39, 56, 50, 46, 42, 40, 38, 52, 50, 32, 40, 49, 36, 45, 48, 37, 41, 51, 33, 47, 47, 34, 40, 40, 42, 45, 27, 39, 38, 41, 56, 66, 35] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [175, 2] } }, "value": [0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1, 1.04, 1.08, 1.12, 1.16, 1.2, 1.24, 1.28, 1.32, 1.36, 1.4, 1.44, 1.48, 1.52, 1.56, 1.6, 1.64, 1.68, 1.72, 1.76, 1.8, 1.84, 1.88, 1.92, 1.96, 2, 2.04, 2.08, 2.12, 2.16, 2.2, 2.24, 2.28, 2.32, 2.36, 2.4, 2.44, 2.48, 2.52, 2.56, 2.6, 2.64, 2.68, 2.72, 2.76, 2.8, 2.84, 2.88, 2.92, 2.96, 3, 3.04, 3.08, 3.12, 3.16, 3.2, 3.24, 3.28, 3.32, 3.36, 3.4, 3.44, 3.48, 3.52, 3.56, 3.6, 3.64, 3.68, 3.72, 3.76, 3.8, 3.84, 3.88, 3.92, 3.96, 4, 4.04, 4.08, 4.12, 4.16, 4.2, 4.24, 4.28, 4.32, 4.36, 4.4, 4.44, 4.48, 4.52, 4.56, 4.6, 4.64, 4.68, 4.72, 4.76, 4.8, 4.84, 4.88, 4.92, 4.96, 5, 5.04, 5.08, 5.12, 5.16, 5.2, 5.24, 5.28, 5.32, 5.36, 5.4, 5.44, 5.48, 5.52, 5.56, 5.6, 5.64, 5.68, 5.72, 5.76, 5.8, 5.84, 5.88, 5.92, 5.96, 6, 6.04, 6.08, 6.12, 6.16, 6.2, 6.24, 6.28, 6.32, 6.36, 6.4, 6.44, 6.48, 6.52, 6.56, 6.6, 6.64, 6.68, 6.72, 6.76, 6.8, 6.84, 6.88, 6.92, 6.96, 7, 4036, 3520, 2916, 2574, 2228, 1849, 1635, 1419, 1274, 1133, 985, 881, 761, 652, 601, 590, 517, 412, 415, 361, 348, 316, 317, 263, 292, 236, 231, 217, 185, 186, 182, 177, 143, 130, 149, 141, 138, 156, 147, 124, 129, 125, 90, 130, 137, 119, 101, 114, 120, 105, 106, 101, 102, 90, 100, 83, 97, 113, 91, 105, 89, 78, 94, 105, 68, 82, 91, 96, 75, 90, 97, 84, 85, 82, 86, 90, 100, 91, 73, 90, 72, 86, 92, 91, 90, 78, 86, 72, 92, 94, 90, 75, 75, 76, 54, 87, 90, 82, 93, 55, 60, 73, 73, 69, 67, 73, 89, 68, 73, 71, 74, 60, 77, 80, 94, 77, 85, 75, 73, 60, 79, 53, 58, 54, 67, 56, 67, 71, 77, 54, 79, 74, 64, 65, 79, 59, 67, 69, 64, 62, 65, 70, 62, 78, 69, 55, 65, 71, 65, 69, 49, 70, 59, 49, 50, 61, 66, 42, 50, 73, 52, 69, 52, 54, 57, 54, 68, 40, 63, 60, 46, 66, 73, 65, 70] } ] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } }, { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["N/R2"] }, "curveType": { "type": "character", "attributes": {}, "value": ["NRt"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [166, 2] } }, "value": [0.22, 0.26, 0.3, 0.34, 0.38, 0.42, 0.46, 0.5, 0.54, 0.58, 0.62, 0.66, 0.7, 0.74, 0.78, 0.82, 0.86, 0.9, 0.94, 0.98, 1.02, 1.06, 1.1, 1.14, 1.18, 1.22, 1.26, 1.3, 1.34, 1.38, 1.42, 1.46, 1.5, 1.54, 1.58, 1.62, 1.66, 1.7, 1.74, 1.78, 1.82, 1.86, 1.9, 1.94, 1.98, 2.02, 2.06, 2.1, 2.14, 2.18, 2.22, 2.26, 2.3, 2.34, 2.38, 2.42, 2.46, 2.5, 2.54, 2.58, 2.62, 2.66, 2.7, 2.74, 2.78, 2.82, 2.86, 2.9, 2.94, 2.98, 3.02, 3.06, 3.1, 3.14, 3.18, 3.22, 3.26, 3.3, 3.34, 3.38, 3.42, 3.46, 3.5, 3.54, 3.58, 3.62, 3.66, 3.7, 3.74, 3.78, 3.82, 3.86, 3.9, 3.94, 3.98, 4.02, 4.06, 4.1, 4.14, 4.18, 4.22, 4.26, 4.3, 4.34, 4.38, 4.42, 4.46, 4.5, 4.54, 4.58, 4.62, 4.66, 4.7, 4.74, 4.78, 4.82, 4.86, 4.9, 4.94, 4.98, 5.02, 5.06, 5.1, 5.14, 5.18, 5.22, 5.26, 5.3, 5.34, 5.38, 5.42, 5.46, 5.5, 5.54, 5.58, 5.62, 5.66, 5.7, 5.74, 5.78, 5.82, 5.86, 5.9, 5.94, 5.98, 6.02, 6.06, 6.1, 6.14, 6.18, 6.22, 6.26, 6.3, 6.34, 6.38, 6.42, 6.46, 6.5, 6.54, 6.58, 6.62, 6.66, 6.7, 6.74, 6.78, 6.82, 1, 1.00295324, 1.00790773, 0.99895519, 1.00573883, 1.01693843, 1.00703973, 0.99419865, 0.99851563, 0.98475216, 0.98163708, 0.98569363, 0.98789451, 0.98233949, 1.00126697, 0.98957905, 0.98346041, 0.98620105, 0.96112601, 0.98366735, 0.9816553, 0.95803757, 0.9531695, 0.97927576, 0.96050058, 0.98134446, 1.00561914, 1.00696778, 1.00721337, 0.97937314, 1.00260464, 1.00445909, 0.99592019, 1.00942655, 1.01026804, 0.99248142, 0.95734681, 0.96749506, 0.98513685, 1.00322033, 0.97997203, 1.00250042, 1.01658948, 0.98791827, 0.99212573, 0.99674104, 1.04644841, 1.05745815, 1.01481984, 1.01734431, 1.02359539, 1.00968054, 1.02956529, 1.03196128, 1.00278958, 1.03509295, 1.00463432, 0.98930406, 1.01736851, 1.03599352, 1.03963998, 1.03983006, 1.03902864, 1.03019772, 1.04202648, 0.98703024, 1.0172692, 1.02371262, 1.01663758, 1.0229115, 1.01804955, 1.03079964, 0.98858062, 0.98410415, 0.98101086, 0.97258725, 0.95014748, 0.94434706, 0.99358432, 0.97472218, 0.93202495, 0.91683135, 0.93112888, 0.95636875, 0.98544133, 1.07376676, 1.06665761, 1.03672269, 0.97657829, 0.95425457, 1.05120675, 1.0712623, 1.09475951, 1.1022922, 1.08731417, 1.03177061, 1.0131163, 1.04216508, 1.0939977, 1.10820972, 1.04089256, 1.04054762, 1.04731606, 1.00849008, 0.98064617, 0.96692417, 0.9542741, 0.91900487, 0.88410608, 0.86612352, 0.89316384, 0.88060769, 0.89054946, 0.92415636, 0.95631613, 0.96840539, 1.01297985, 1.04624942, 1.08515872, 1.1022655, 1.08869255, 1.0526895, 1.00189749, 1.00496241, 0.97501155, 0.9552326, 0.97182048, 0.96692224, 0.94843314, 0.95125234, 0.95582675, 0.98439485, 0.98747816, 1.01063614, 0.98090344, 0.97867583, 0.93029979, 0.93479612, 0.90706246, 0.91897482, 0.89872238, 0.89044485, 0.88106823, 0.85663554, 0.94513525, 0.99773944, 1.0473009, 1.05910728, 1.09205017, 1.09962359, 1.11741069, 1.14840848, 1.16693523, 1.16347656, 1.15289272, 1.13266445, 1.08255049, 1.06007697, 1.09042075, 1.04128032, 1.03268866, 1.06415312, 1.03857023, 0.9975043, 0.95605305, 0.91627096] }, "originator": { "type": "character", "attributes": {}, "value": [null] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data"] } }, "value": [ { "type": "list", "attributes": {}, "value": [ { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [175, 2] } }, "value": [0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1, 1.04, 1.08, 1.12, 1.16, 1.2, 1.24, 1.28, 1.32, 1.36, 1.4, 1.44, 1.48, 1.52, 1.56, 1.6, 1.64, 1.68, 1.72, 1.76, 1.8, 1.84, 1.88, 1.92, 1.96, 2, 2.04, 2.08, 2.12, 2.16, 2.2, 2.24, 2.28, 2.32, 2.36, 2.4, 2.44, 2.48, 2.52, 2.56, 2.6, 2.64, 2.68, 2.72, 2.76, 2.8, 2.84, 2.88, 2.92, 2.96, 3, 3.04, 3.08, 3.12, 3.16, 3.2, 3.24, 3.28, 3.32, 3.36, 3.4, 3.44, 3.48, 3.52, 3.56, 3.6, 3.64, 3.68, 3.72, 3.76, 3.8, 3.84, 3.88, 3.92, 3.96, 4, 4.04, 4.08, 4.12, 4.16, 4.2, 4.24, 4.28, 4.32, 4.36, 4.4, 4.44, 4.48, 4.52, 4.56, 4.6, 4.64, 4.68, 4.72, 4.76, 4.8, 4.84, 4.88, 4.92, 4.96, 5, 5.04, 5.08, 5.12, 5.16, 5.2, 5.24, 5.28, 5.32, 5.36, 5.4, 5.44, 5.48, 5.52, 5.56, 5.6, 5.64, 5.68, 5.72, 5.76, 5.8, 5.84, 5.88, 5.92, 5.96, 6, 6.04, 6.08, 6.12, 6.16, 6.2, 6.24, 6.28, 6.32, 6.36, 6.4, 6.44, 6.48, 6.52, 6.56, 6.6, 6.64, 6.68, 6.72, 6.76, 6.8, 6.84, 6.88, 6.92, 6.96, 7, 3673, 2989, 2668, 2292, 1948, 1775, 1517, 1394, 1158, 1046, 923, 788, 634, 621, 587, 513, 419, 421, 325, 323, 339, 289, 248, 296, 254, 192, 193, 172, 183, 163, 138, 154, 146, 124, 158, 146, 117, 124, 108, 135, 100, 99, 103, 125, 123, 85, 95, 109, 108, 92, 104, 93, 90, 90, 94, 97, 101, 64, 84, 98, 76, 86, 85, 77, 84, 73, 82, 79, 82, 87, 83, 92, 70, 69, 63, 105, 96, 69, 84, 83, 70, 61, 72, 74, 59, 75, 78, 87, 90, 50, 75, 63, 76, 82, 79, 78, 57, 54, 72, 78, 61, 77, 79, 65, 64, 53, 80, 77, 66, 57, 75, 67, 56, 55, 78, 47, 49, 61, 54, 63, 71, 64, 60, 53, 63, 57, 59, 83, 69, 50, 45, 55, 68, 46, 60, 69, 56, 69, 59, 60, 54, 54, 79, 34, 51, 40, 57, 53, 67, 54, 37, 48, 62, 61, 61, 72, 65, 44, 55, 69, 54, 59, 53, 62, 59, 39, 53, 53, 41, 52, 61, 41, 47, 50, 47] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [175, 2] } }, "value": [0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1, 1.04, 1.08, 1.12, 1.16, 1.2, 1.24, 1.28, 1.32, 1.36, 1.4, 1.44, 1.48, 1.52, 1.56, 1.6, 1.64, 1.68, 1.72, 1.76, 1.8, 1.84, 1.88, 1.92, 1.96, 2, 2.04, 2.08, 2.12, 2.16, 2.2, 2.24, 2.28, 2.32, 2.36, 2.4, 2.44, 2.48, 2.52, 2.56, 2.6, 2.64, 2.68, 2.72, 2.76, 2.8, 2.84, 2.88, 2.92, 2.96, 3, 3.04, 3.08, 3.12, 3.16, 3.2, 3.24, 3.28, 3.32, 3.36, 3.4, 3.44, 3.48, 3.52, 3.56, 3.6, 3.64, 3.68, 3.72, 3.76, 3.8, 3.84, 3.88, 3.92, 3.96, 4, 4.04, 4.08, 4.12, 4.16, 4.2, 4.24, 4.28, 4.32, 4.36, 4.4, 4.44, 4.48, 4.52, 4.56, 4.6, 4.64, 4.68, 4.72, 4.76, 4.8, 4.84, 4.88, 4.92, 4.96, 5, 5.04, 5.08, 5.12, 5.16, 5.2, 5.24, 5.28, 5.32, 5.36, 5.4, 5.44, 5.48, 5.52, 5.56, 5.6, 5.64, 5.68, 5.72, 5.76, 5.8, 5.84, 5.88, 5.92, 5.96, 6, 6.04, 6.08, 6.12, 6.16, 6.2, 6.24, 6.28, 6.32, 6.36, 6.4, 6.44, 6.48, 6.52, 6.56, 6.6, 6.64, 6.68, 6.72, 6.76, 6.8, 6.84, 6.88, 6.92, 6.96, 7, 1845, 1676, 1326, 1257, 1127, 924, 834, 696, 676, 566, 553, 475, 442, 367, 369, 303, 276, 238, 218, 195, 191, 164, 175, 152, 162, 147, 139, 111, 119, 128, 107, 114, 116, 111, 107, 119, 106, 97, 108, 80, 88, 84, 98, 94, 80, 75, 43, 90, 67, 77, 71, 76, 67, 70, 65, 62, 62, 59, 42, 55, 58, 79, 57, 64, 70, 56, 75, 66, 65, 41, 47, 63, 46, 71, 60, 60, 64, 81, 58, 64, 68, 64, 64, 53, 52, 58, 67, 59, 65, 49, 37, 50, 68, 54, 62, 54, 61, 51, 48, 60, 36, 55, 71, 43, 45, 63, 43, 56, 69, 50, 50, 53, 51, 48, 43, 65, 60, 51, 45, 63, 67, 60, 53, 44, 53, 57, 56, 54, 41, 49, 66, 46, 75, 44, 39, 43, 49, 53, 58, 31, 50, 59, 39, 56, 50, 46, 42, 40, 38, 52, 50, 32, 40, 49, 36, 45, 48, 37, 41, 51, 33, 47, 47, 34, 40, 40, 42, 45, 27, 39, 38, 41, 56, 66, 35] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [175, 2] } }, "value": [0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1, 1.04, 1.08, 1.12, 1.16, 1.2, 1.24, 1.28, 1.32, 1.36, 1.4, 1.44, 1.48, 1.52, 1.56, 1.6, 1.64, 1.68, 1.72, 1.76, 1.8, 1.84, 1.88, 1.92, 1.96, 2, 2.04, 2.08, 2.12, 2.16, 2.2, 2.24, 2.28, 2.32, 2.36, 2.4, 2.44, 2.48, 2.52, 2.56, 2.6, 2.64, 2.68, 2.72, 2.76, 2.8, 2.84, 2.88, 2.92, 2.96, 3, 3.04, 3.08, 3.12, 3.16, 3.2, 3.24, 3.28, 3.32, 3.36, 3.4, 3.44, 3.48, 3.52, 3.56, 3.6, 3.64, 3.68, 3.72, 3.76, 3.8, 3.84, 3.88, 3.92, 3.96, 4, 4.04, 4.08, 4.12, 4.16, 4.2, 4.24, 4.28, 4.32, 4.36, 4.4, 4.44, 4.48, 4.52, 4.56, 4.6, 4.64, 4.68, 4.72, 4.76, 4.8, 4.84, 4.88, 4.92, 4.96, 5, 5.04, 5.08, 5.12, 5.16, 5.2, 5.24, 5.28, 5.32, 5.36, 5.4, 5.44, 5.48, 5.52, 5.56, 5.6, 5.64, 5.68, 5.72, 5.76, 5.8, 5.84, 5.88, 5.92, 5.96, 6, 6.04, 6.08, 6.12, 6.16, 6.2, 6.24, 6.28, 6.32, 6.36, 6.4, 6.44, 6.48, 6.52, 6.56, 6.6, 6.64, 6.68, 6.72, 6.76, 6.8, 6.84, 6.88, 6.92, 6.96, 7, 4036, 3520, 2916, 2574, 2228, 1849, 1635, 1419, 1274, 1133, 985, 881, 761, 652, 601, 590, 517, 412, 415, 361, 348, 316, 317, 263, 292, 236, 231, 217, 185, 186, 182, 177, 143, 130, 149, 141, 138, 156, 147, 124, 129, 125, 90, 130, 137, 119, 101, 114, 120, 105, 106, 101, 102, 90, 100, 83, 97, 113, 91, 105, 89, 78, 94, 105, 68, 82, 91, 96, 75, 90, 97, 84, 85, 82, 86, 90, 100, 91, 73, 90, 72, 86, 92, 91, 90, 78, 86, 72, 92, 94, 90, 75, 75, 76, 54, 87, 90, 82, 93, 55, 60, 73, 73, 69, 67, 73, 89, 68, 73, 71, 74, 60, 77, 80, 94, 77, 85, 75, 73, 60, 79, 53, 58, 54, 67, 56, 67, 71, 77, 54, 79, 74, 64, 65, 79, 59, 67, 69, 64, 62, 65, 70, 62, 78, 69, 55, 65, 71, 65, 69, 49, 70, 59, 49, 50, 61, 66, 42, 50, 73, 52, 69, 52, 54, 57, 54, 68, 40, 63, 60, 46, 66, 73, 65, 70] } ] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } ] }, "originator": { "type": "character", "attributes": {}, "value": ["plot_NRt"] }, "info": { "type": "list", "attributes": {}, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Analysis", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/Risoe.BINfileData-class.md0000644000176200001440000044713314762554470023752 0ustar liggesusers# sort_RLum { "type": "S4", "attributes": { "METADATA": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ID", "SEL", "VERSION", "LENGTH", "PREVIOUS", "NPOINTS", "LTYPE", "LOW", "HIGH", "RATE", "TEMPERATURE", "XCOORD", "YCOORD", "TOLDELAY", "TOLON", "TOLOFF", "POSITION", "RUN", "TIME", "DATE", "SEQUENCE", "USER", "DTYPE", "IRR_TIME", "IRR_TYPE", "IRR_UNIT", "BL_TIME", "BL_UNIT", "AN_TEMP", "AN_TIME", "NORM1", "NORM2", "NORM3", "BG", "SHIFT", "SAMPLE", "COMMENT", "LIGHTSOURCE", "SET", "TAG", "GRAIN", "LPOWER", "SYSTEMID", "FNAME"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 25, 49, 2, 26, 50, 3, 27, 4, 28, 5, 29, 6, 30, 7, 31, 8, 32, 9, 33, 10, 34, 11, 35, 12, 36, 13, 37, 14, 38, 15, 39, 16, 40, 17, 41, 18, 42, 19, 43, 20, 44, 21, 45, 22, 46, 23, 47, 24, 48] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [1, 25, 49, 2, 26, 50, 3, 27, 4, 28, 5, 29, 6, 30, 7, 31, 8, 32, 9, 33, 10, 34, 11, 35, 12, 36, 13, 37, 14, 38, 15, 39, 16, 40, 17, 41, 18, 42, 19, 43, 20, 44, 21, 45, 22, 46, 23, 47, 24, 48] }, { "type": "logical", "attributes": {}, "value": [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true] }, { "type": "raw", "attributes": {}, "value": "AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM=" }, { "type": "integer", "attributes": {}, "value": [1272, 4272, 1272, 1272, 4272, 1272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272] }, { "type": "integer", "attributes": {}, "value": [0, 1272, 4272, 1272, 4272, 1272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272, 1272, 4272] }, { "type": "integer", "attributes": {}, "value": [250, 1000, 250, 250, 1000, 250, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000, 250, 1000] }, { "type": "character", "attributes": {}, "value": ["TL", "OSL", "TL", "TL", "OSL", "TL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL", "TL", "OSL"] }, { "type": "double", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "double", "attributes": {}, "value": [221, 40, 160, 221, 40, 160, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40, 221, 40] }, { "type": "double", "attributes": {}, "value": [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5] }, { "type": "integer", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "integer", "attributes": {}, "value": [1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24] }, { "type": "integer", "attributes": {}, "value": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] }, { "type": "integer", "attributes": { "levels": { "type": "character", "attributes": {}, "value": ["19:14:32", "19:16:11", "19:17:50", "19:19:30", "19:21:09", "19:22:49", "19:24:29", "19:26:09", "19:27:48", "19:29:28", "19:31:08", "19:32:49", "19:34:28", "19:36:09", "19:37:49", "19:39:29", "19:41:10", "19:42:50", "19:44:30", "19:46:10", "19:47:50", "19:49:31", "19:51:11", "19:52:51", "19:54:53", "19:56:41", "19:58:29", "20:00:16", "20:02:04", "20:03:52", "20:05:41", "20:07:29", "20:09:18", "20:11:06", "20:12:54", "20:14:42", "20:16:30", "20:18:19", "20:20:08", "20:21:56", "20:23:45", "20:25:33", "20:27:21", "20:29:10", "20:30:57", "20:32:46", "20:34:34", "20:36:22", "22:39:13", "22:40:22", "22:41:32", "22:42:41", "22:43:49", "22:44:59", "22:46:09", "22:47:19", "22:48:29", "22:49:39", "22:50:48", "22:51:57", "22:53:07", "22:54:17", "22:55:27", "22:56:37", "22:57:47", "22:58:57", "23:00:06", "23:01:16", "23:02:26", "23:03:36", "23:04:46", "23:05:56", "23:07:50", "23:09:38", "23:11:27", "23:13:15", "23:15:03", "23:16:51", "23:18:40", "23:20:28", "23:22:16", "23:24:04", "23:25:53", "23:27:41", "23:29:30", "23:31:18", "23:33:06", "23:34:55", "23:36:43", "23:38:32", "23:40:20", "23:42:09", "23:43:58", "23:45:46", "23:47:34", "23:49:22", "02:52:34", "02:54:13", "02:55:53", "02:57:33", "02:59:12", "03:00:51", "03:02:31", "03:04:10", "03:05:50", "03:07:30", "03:09:11", "03:10:50", "03:12:30", "03:14:09", "03:15:49", "03:17:30", "03:19:11", "03:20:51", "03:22:31", "03:24:11", "03:25:51", "03:27:32", "03:29:12", "03:30:52", "03:32:54", "03:34:43", "03:36:30", "03:38:18", "03:40:07", "03:41:55", "03:43:43", "03:45:32", "03:47:20", "03:49:09", "03:50:57", "03:52:45", "03:54:34", "03:56:22", "03:58:11", "03:59:59", "04:01:48", "04:03:36", "04:05:25", "04:07:13", "04:09:02", "04:10:50", "04:12:38", "04:14:27", "06:17:19", "06:18:28", "06:19:37", "06:20:46", "06:21:55", "06:23:05", "06:24:14", "06:25:23", "06:26:33", "06:27:43", "06:28:52", "06:30:02", "06:31:11", "06:32:21", "06:33:30", "06:34:40", "06:35:49", "06:36:59", "06:38:08", "06:39:18", "06:40:27", "06:41:37", "06:42:45", "06:43:55", "06:45:48", "06:47:37", "06:49:25", "06:51:13", "06:53:01", "06:54:50", "06:56:38", "06:58:26", "07:00:14", "07:02:02", "07:03:50", "07:05:39", "07:07:27", "07:09:15", "07:11:04", "07:12:52", "07:14:40", "07:16:29", "07:18:17", "07:20:05", "07:21:53", "07:23:42", "07:25:30", "07:27:19", "14:30:22", "14:32:02", "14:33:42", "14:35:22", "14:37:02", "14:38:42", "14:40:21", "14:42:01", "14:43:41", "14:45:22", "14:47:02", "14:48:43", "14:50:24", "14:52:05", "14:53:46", "14:55:25", "14:57:06", "14:58:47", "15:00:27", "15:02:08", "15:03:49", "15:05:29", "15:07:10", "15:08:50", "15:10:52", "15:12:41", "15:14:30", "15:16:19", "15:18:07", "15:19:56", "15:21:44", "15:23:33", "15:25:22", "15:27:10", "15:28:59", "15:30:47", "15:32:35", "15:34:24", "15:36:14", "15:38:03", "15:39:51", "15:41:40", "15:43:30", "15:45:18", "15:47:07", "15:48:56", "15:50:45", "15:52:34", "17:55:25", "17:56:35", "17:57:45", "17:58:55", "18:00:03", "18:01:13", "18:02:23", "18:03:33", "18:04:43", "18:05:53", "18:07:03", "18:08:12", "18:09:22", "18:10:32", "18:11:42", "18:12:52", "18:14:02", "18:15:11", "18:16:21", "18:17:32", "18:18:42", "18:19:52", "18:21:02", "18:22:13", "18:24:07", "18:25:56", "18:27:45", "18:29:34", "18:31:22", "18:33:11", "18:35:00", "18:36:49", "18:38:38", "18:40:26", "18:42:15", "18:44:03", "18:45:52", "18:47:40", "18:49:29", "18:51:18", "18:53:07", "18:54:56", "18:56:45", "18:58:34", "19:00:23", "19:02:11", "19:04:00", "19:05:48", "08:28:44", "08:30:24", "08:32:04", "08:33:43", "08:35:23", "08:37:02", "08:38:43", "08:40:22", "08:42:03", "08:43:42", "08:45:22", "08:47:02", "08:48:42", "08:50:22", "08:52:02", "08:53:42", "08:55:22", "08:57:02", "08:58:42", "09:00:22", "09:02:03", "09:03:44", "09:05:24", "09:07:05", "09:09:07", "09:10:56", "09:12:45", "09:14:33", "09:16:21", "09:18:10", "09:19:59", "09:21:48", "09:23:37", "09:25:25", "09:27:14", "09:29:03", "09:30:53", "09:32:41", "09:34:30", "09:36:19", "09:38:07", "09:39:57", "09:41:45", "09:43:34", "09:45:22", "09:47:11", "09:49:00", "09:50:49", "11:53:39", "11:54:47", "11:55:56", "11:57:06", "11:58:14", "11:59:24", "12:00:33", "12:01:43", "12:02:53", "12:04:02", "12:05:11", "12:06:21", "12:07:31", "12:08:41", "12:09:50", "12:11:00", "12:12:10", "12:13:20", "12:14:29", "12:15:39", "12:16:49", "12:17:58", "12:19:08", "12:20:18", "12:22:12", "12:24:00", "12:25:49", "12:27:37", "12:29:26", "12:31:15", "12:33:04", "12:34:53", "12:36:41", "12:38:30", "12:40:18", "12:42:07", "12:43:56", "12:45:45", "12:47:33", "12:49:22", "12:51:11", "12:52:59", "12:54:49", "12:56:38", "12:58:27", "13:00:16", "13:02:05", "13:03:55", "06:06:44", "06:08:24", "06:10:04", "06:11:43", "06:13:22", "06:15:02", "06:16:43", "06:18:23", "06:20:04", "06:21:44", "06:23:24", "06:25:05", "06:26:45", "06:28:26", "06:30:06", "06:31:46", "06:33:27", "06:35:07", "06:36:47", "06:38:28", "06:40:09", "06:41:49", "06:43:29", "06:45:10", "06:47:12", "06:49:01", "06:50:51", "06:52:40", "06:54:28", "06:56:17", "06:58:07", "06:59:55", "07:01:44", "07:03:33", "07:05:21", "07:07:10", "07:08:59", "07:10:48", "07:12:37", "07:14:26", "07:16:15", "07:18:04", "07:19:54", "07:21:43", "07:23:32", "07:25:22", "07:27:10", "07:28:59", "09:31:50", "09:32:59", "09:34:09", "09:35:18", "09:36:27", "09:37:37", "09:38:47", "09:39:56", "09:41:06", "09:42:16", "09:43:25", "09:44:35", "09:45:45", "09:46:55", "09:48:05", "09:49:15", "09:50:25", "09:51:35", "09:52:44", "09:53:54", "09:55:03", "09:56:14", "09:57:24", "09:58:34", "10:00:28", "10:02:17", "10:04:06", "10:05:56", "10:07:44", "10:09:33", "10:11:22", "10:13:11", "10:14:59", "10:16:48", "10:18:37", "10:20:27", "10:22:16", "10:24:05", "10:25:54", "10:27:43", "10:29:32", "10:31:22", "10:33:11", "10:35:00", "10:36:49", "10:38:38", "10:40:27", "10:42:17", "13:45:29", "13:47:08", "13:48:47", "13:50:27", "13:52:07", "13:53:48", "13:55:28", "13:57:08", "13:58:49", "14:00:29", "14:02:10", "14:03:50", "14:05:31", "14:07:11", "14:08:52", "14:10:33", "14:12:13", "14:13:54", "14:15:34", "14:17:15", "14:18:55", "14:20:35", "14:22:16", "14:23:56", "14:25:58", "14:27:46", "14:29:36", "14:31:25", "14:33:15", "14:35:04", "14:36:53", "14:40:32", "14:42:21", "14:44:10", "14:46:00", "14:47:48", "14:49:38", "14:51:27", "14:53:17", "14:55:06", "14:56:56", "14:58:46", "15:00:36", "15:02:26", "15:04:15", "15:06:04", "15:07:54", "17:10:46", "17:11:55", "17:13:05", "17:14:15", "17:15:23", "17:16:33", "17:17:43", "17:18:53", "17:20:03", "17:21:13", "17:22:23", "17:23:33", "17:24:43", "17:25:53", "17:27:04", "17:28:14", "17:29:24", "17:30:35", "17:31:44", "17:32:55", "17:34:05", "17:35:14", "17:36:25", "17:37:35", "17:39:29", "17:41:18", "17:43:07", "17:44:57", "17:46:46", "17:48:35", "17:50:25", "17:52:13", "17:54:03", "17:55:52", "17:57:41", "17:59:31", "18:01:21", "18:03:10", "18:05:00", "18:06:49", "18:08:39", "18:10:28", "18:12:17", "18:14:07", "18:15:56", "18:17:46", "18:19:35", "18:21:24", "18:22:50", "18:24:30", "18:26:11", "18:27:52", "18:29:33", "18:31:14", "18:32:55", "18:34:35", "18:36:16", "18:37:57", "18:39:38", "18:41:19", "18:42:59", "18:44:40", "18:46:21", "18:48:02", "18:49:42", "18:51:23", "18:53:04", "18:54:45", "18:56:26", "18:58:07", "18:59:47", "19:01:28", "19:03:30", "19:05:21", "19:07:11", "19:09:00", "19:10:49", "19:12:39", "19:14:29", "19:16:18", "19:18:08", "19:19:58", "19:21:47", "19:23:37", "19:25:26", "19:27:16", "19:29:06", "19:30:56", "19:32:46", "19:34:36", "19:36:26", "19:38:16", "19:40:06", "19:41:55", "19:43:45", "19:45:35", "21:48:27", "21:49:37", "21:50:46", "21:51:56", "21:53:05", "21:54:14", "21:55:25", "21:56:35", "21:57:44", "21:58:54", "22:00:04", "22:01:15", "22:02:25", "22:03:35", "22:04:45", "22:05:55", "22:07:06", "22:08:16", "22:09:26", "22:10:37", "22:11:47", "22:12:58", "22:14:08", "22:15:18", "22:17:13", "22:19:02", "22:20:51", "22:22:40", "22:24:29", "22:26:19", "22:28:09", "22:29:58", "22:31:47", "22:33:37", "22:35:26", "22:37:15", "22:39:04", "22:40:54", "22:42:44", "22:44:34", "22:46:23", "22:48:13", "22:50:02", "22:51:52", "22:53:42", "22:55:31", "22:57:21", "22:59:10", "02:02:25", "02:04:04", "02:05:43", "02:07:23", "02:09:03", "02:10:43", "02:12:22", "02:14:02", "02:15:42", "02:17:22", "02:19:02", "02:20:41", "02:22:22", "02:24:03", "02:25:42", "02:27:23", "02:29:04", "02:30:45", "02:32:26", "02:34:07", "02:35:47", "02:37:28", "02:39:09", "02:40:50", "02:42:52", "02:44:42", "02:46:31", "02:48:21", "02:50:10", "02:52:00", "02:53:49", "02:55:38", "02:57:28", "02:59:17", "03:01:06", "03:02:55", "03:04:45", "03:06:34", "03:08:23", "03:10:12", "03:12:02", "03:13:51", "03:15:40", "03:19:20", "03:21:09", "03:22:59", "03:24:49"] }, "class": { "type": "character", "attributes": {}, "value": ["factor"] } }, "value": [1, 25, 49, 2, 26, 50, 3, 27, 4, 28, 5, 29, 6, 30, 7, 31, 8, 32, 9, 33, 10, 34, 11, 35, 12, 36, 13, 37, 14, 38, 15, 39, 16, 40, 17, 41, 18, 42, 19, 43, 20, 44, 21, 45, 22, 46, 23, 47, 24, 48] }, { "type": "integer", "attributes": { "levels": { "type": "character", "attributes": {}, "value": ["060920", "070920", "080920", "090920", "100920"] }, "class": { "type": "character", "attributes": {}, "value": ["factor"] } }, "value": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] }, { "type": "integer", "attributes": { "levels": { "type": "character", "attributes": {}, "value": ["20100906"] }, "class": { "type": "character", "attributes": {}, "value": ["factor"] } }, "value": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] }, { "type": "integer", "attributes": { "levels": { "type": "character", "attributes": {}, "value": ["Default"] }, "class": { "type": "character", "attributes": {}, "value": ["factor"] } }, "value": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] }, { "type": "integer", "attributes": { "levels": { "type": "character", "attributes": {}, "value": ["Natural", "Dose"] }, "class": { "type": "character", "attributes": {}, "value": ["factor"] } }, "value": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] }, { "type": "double", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "double", "attributes": {}, "value": [220, 125, 0, 220, 125, 0, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125, 220, 125] }, { "type": "double", "attributes": {}, "value": [10, 10, 0, 10, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10] }, { "type": "double", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "integer", "attributes": { "levels": { "type": "character", "attributes": {}, "value": ["BT 607"] }, "class": { "type": "character", "attributes": {}, "value": ["factor"] } }, "value": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] }, { "type": "integer", "attributes": { "levels": { "type": "character", "attributes": {}, "value": ["Main Measurement Middle Grain SachsenLoesse", "Natural OSL Signal", "Test Dose", "Reg 1", "Reg 2", "Reg 3", "Reg 4", "Reg 1 again", "Reg 0", "IRSL Test"] }, "class": { "type": "character", "attributes": {}, "value": ["factor"] } }, "value": [1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2] }, { "type": "integer", "attributes": { "levels": { "type": "character", "attributes": {}, "value": ["None", "Blue Diodes", "IR diodes/IR Laser"] }, "class": { "type": "character", "attributes": {}, "value": ["factor"] } }, "value": [1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2] }, { "type": "integer", "attributes": {}, "value": [2, 3, 5, 2, 3, 5, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3] }, { "type": "integer", "attributes": {}, "value": [0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1] }, { "type": "integer", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "double", "attributes": {}, "value": [0, 90, 0, 0, 90, 0, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90, 0, 90] }, { "type": "integer", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "integer", "attributes": { "levels": { "type": "character", "attributes": {}, "value": ["ExampleData.BINfileData"] }, "class": { "type": "character", "attributes": {}, "value": ["factor"] } }, "value": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] } ] }, "DATA": { "type": "list", "attributes": {}, "value": [ { "type": "integer", "attributes": {}, "value": [2, 0, 13, 1, 1, 5, 6, 12, 12, 0, 2, 4, 2, 4, 6, 6, 4, 8, 6, 8, 3, 2, 8, 1, 4, 3, 6, 8, 3, 1, 3, 1, 1, 1, 12, 5, 1, 10, 0, 0, 2, 2, 2, 1, 12, 1, 3, 4, 2, 6, 4, 1, 3, 6, 6, 5, 5, 0, 0, 5, 2, 2, 0, 2, 2, 3, 15, 4, 0, 7, 4, 4, 0, 3, 14, 4, 7, 7, 4, 4, 2, 4, 1, 8, 3, 1, 3, 2, 5, 2, 17, 12, 5, 4, 3, 3, 18, 3, 12, 2, 4, 5, 7, 4, 4, 2, 8, 7, 1, 9, 5, 9, 5, 13, 0, 10, 1, 1, 1, 2, 6, 6, 9, 4, 12, 8, 1, 8, 2, 7, 6, 7, 1, 2, 5, 1, 6, 0, 11, 5, 1, 3, 13, 11, 1, 3, 5, 6, 5, 2, 5, 0, 16, 5, 10, 1, 3, 17, 4, 7, 10, 10, 4, 6, 3, 8, 4, 9, 5, 7, 6, 5, 8, 10, 8, 3, 7, 11, 4, 21, 14, 3, 4, 20, 9, 11, 8, 11, 14, 13, 12, 11, 25, 7, 9, 10, 18, 9, 15, 11, 19, 24, 29, 18, 27, 26, 25, 21, 17, 24, 32, 22, 25, 29, 35, 25, 27, 45, 43, 43, 44, 53, 51, 42, 56, 40, 49, 45, 85, 66, 72, 67, 83, 88, 90, 78, 81, 74, 108, 87, 110, 99, 123, 127, 144, 108, 120, 129, 131, 72] }, { "type": "integer", "attributes": {}, "value": [11111, 9280, 8218, 6794, 5743, 5050, 4156, 3750, 3170, 2703, 2408, 2066, 1790, 1647, 1461, 1289, 1010, 971, 829, 766, 713, 600, 555, 475, 433, 473, 362, 371, 313, 281, 269, 245, 247, 213, 185, 179, 186, 177, 113, 156, 117, 167, 116, 123, 120, 116, 87, 93, 109, 109, 80, 91, 94, 90, 101, 86, 107, 91, 73, 89, 68, 65, 72, 90, 72, 92, 77, 94, 86, 95, 107, 91, 52, 73, 74, 75, 75, 72, 102, 72, 65, 56, 90, 68, 70, 55, 51, 62, 53, 73, 74, 50, 66, 83, 51, 64, 38, 61, 50, 74, 54, 72, 74, 57, 64, 46, 55, 65, 80, 49, 31, 61, 67, 60, 49, 75, 58, 46, 55, 56, 53, 69, 55, 49, 56, 63, 46, 67, 69, 59, 57, 68, 74, 64, 45, 54, 45, 44, 85, 54, 46, 49, 67, 56, 37, 48, 56, 53, 42, 67, 63, 63, 57, 51, 52, 51, 52, 67, 39, 38, 46, 45, 48, 53, 45, 48, 40, 40, 47, 75, 37, 56, 47, 33, 47, 39, 50, 46, 44, 44, 36, 51, 44, 43, 39, 58, 60, 53, 61, 42, 66, 42, 59, 54, 66, 41, 42, 51, 28, 29, 52, 50, 54, 53, 53, 36, 35, 53, 31, 45, 40, 27, 52, 48, 49, 51, 51, 32, 44, 48, 56, 44, 55, 30, 35, 60, 47, 43, 31, 38, 34, 43, 44, 41, 53, 35, 82, 33, 44, 43, 40, 31, 46, 50, 42, 64, 47, 39, 48, 53, 47, 49, 35, 40, 35, 42, 38, 35, 38, 53, 48, 34, 55, 36, 52, 52, 41, 47, 37, 43, 39, 36, 36, 27, 41, 47, 38, 36, 39, 32, 32, 37, 43, 39, 48, 41, 43, 42, 50, 48, 48, 54, 42, 44, 39, 30, 32, 43, 52, 36, 37, 44, 39, 46, 44, 31, 44, 45, 33, 39, 61, 35, 27, 47, 50, 39, 25, 31, 47, 46, 40, 55, 50, 51, 46, 46, 50, 43, 44, 37, 45, 38, 40, 28, 51, 31, 41, 42, 39, 33, 49, 46, 37, 27, 40, 40, 25, 30, 32, 42, 30, 33, 59, 36, 45, 38, 40, 31, 30, 53, 42, 48, 37, 43, 28, 33, 41, 35, 28, 24, 28, 36, 42, 49, 55, 25, 30, 38, 31, 34, 43, 51, 50, 45, 39, 41, 42, 27, 27, 62, 30, 24, 44, 40, 35, 51, 52, 23, 42, 34, 70, 41, 44, 45, 37, 31, 34, 32, 47, 37, 37, 28, 47, 39, 40, 39, 48, 32, 25, 37, 42, 31, 43, 26, 40, 43, 36, 37, 32, 42, 31, 35, 28, 38, 34, 43, 48, 46, 44, 37, 37, 49, 31, 41, 41, 22, 37, 32, 48, 36, 33, 33, 43, 51, 22, 39, 45, 33, 36, 38, 30, 35, 36, 32, 39, 39, 28, 41, 28, 41, 32, 32, 51, 29, 41, 49, 30, 37, 32, 37, 38, 31, 40, 35, 44, 36, 44, 33, 35, 46, 45, 25, 47, 35, 25, 26, 28, 36, 39, 43, 46, 28, 40, 50, 26, 37, 43, 33, 24, 42, 40, 39, 41, 34, 48, 46, 44, 36, 40, 40, 47, 38, 43, 35, 56, 34, 36, 26, 36, 43, 43, 40, 42, 30, 32, 32, 29, 39, 26, 40, 39, 42, 28, 39, 42, 33, 47, 35, 28, 36, 29, 22, 31, 28, 30, 44, 44, 36, 46, 29, 30, 42, 23, 28, 34, 21, 51, 40, 37, 24, 40, 47, 45, 34, 42, 36, 59, 34, 31, 39, 27, 31, 35, 48, 30, 46, 17, 47, 28, 42, 38, 37, 33, 42, 32, 21, 20, 33, 30, 32, 31, 28, 23, 36, 20, 34, 29, 44, 43, 43, 31, 39, 37, 35, 37, 30, 41, 37, 32, 31, 37, 45, 32, 29, 34, 41, 22, 25, 43, 15, 24, 29, 30, 24, 27, 29, 53, 29, 32, 19, 39, 37, 42, 40, 35, 27, 39, 23, 25, 50, 25, 35, 40, 39, 32, 41, 28, 29, 28, 41, 28, 45, 23, 32, 43, 34, 36, 27, 22, 45, 41, 42, 18, 42, 31, 50, 24, 49, 31, 23, 43, 27, 32, 19, 31, 36, 29, 46, 36, 28, 28, 24, 36, 40, 41, 44, 38, 28, 30, 33, 24, 21, 32, 41, 31, 30, 35, 44, 36, 32, 40, 49, 37, 26, 30, 29, 28, 20, 28, 26, 41, 34, 26, 27, 25, 41, 34, 25, 35, 31, 44, 25, 41, 23, 52, 38, 26, 31, 27, 45, 33, 30, 27, 26, 30, 32, 28, 27, 34, 30, 31, 25, 23, 30, 32, 30, 27, 17, 33, 35, 29, 35, 39, 32, 41, 36, 28, 32, 26, 28, 24, 25, 33, 25, 30, 34, 31, 33, 22, 27, 29, 22, 29, 61, 59, 40, 22, 44, 28, 28, 26, 27, 43, 29, 21, 35, 25, 36, 17, 39, 37, 28, 37, 33, 33, 27, 24, 30, 30, 42, 32, 33, 43, 39, 31, 34, 31, 32, 34, 33, 23, 17, 36, 26, 31, 36, 27, 49, 26, 30, 32, 26, 29, 27, 27, 18, 32, 22, 37, 29, 23, 40, 48, 31, 30, 29, 35, 19, 25, 18, 24, 32, 35, 38, 17, 25, 28, 18, 23, 30, 21, 23, 38, 24, 37, 29, 32, 42, 32, 31, 34, 18, 37, 26, 30, 24, 41, 34, 30, 36, 35, 29, 38, 30, 26, 36, 34, 35, 31, 25, 18, 38, 36, 30, 29, 25, 21, 33, 40, 24, 36, 27, 27, 32, 39, 14, 26, 31, 23, 41, 33, 22, 27, 33, 25, 40, 34, 35, 15, 30, 24, 39, 32, 29, 32, 32, 36, 24, 33, 32, 26, 38, 19, 22, 24, 23, 29, 30, 32, 39, 31, 42, 20, 24, 22, 15, 32, 26, 30, 32, 41, 33, 24, 40, 22, 31, 25, 27, 28, 26, 29, 28, 33, 30, 22, 30, 34, 22, 37, 47, 23, 22, 21, 34, 30, 25, 31, 33, 29, 20, 27, 46, 29, 28, 38, 30, 36, 23, 25, 25, 44, 32, 37, 46, 24, 34, 29, 46, 44, 35] }, { "type": "integer", "attributes": {}, "value": [4, 8, 5, 7, 2, 3, 0, 4, 1, 4, 8, 10, 25, 6, 6, 2, 1, 4, 6, 0, 0, 4, 1, 12, 14, 3, 2, 5, 4, 3, 6, 5, 6, 1, 4, 0, 3, 2, 0, 5, 2, 7, 0, 4, 3, 7, 6, 3, 10, 2, 0, 0, 0, 2, 6, 2, 1, 6, 2, 12, 3, 10, 3, 6, 2, 6, 4, 6, 12, 5, 5, 7, 1, 3, 9, 4, 2, 3, 4, 5, 10, 5, 15, 17, 9, 8, 12, 1, 8, 6, 11, 10, 4, 5, 6, 10, 13, 23, 18, 20, 20, 19, 15, 21, 17, 24, 28, 25, 15, 34, 47, 32, 33, 27, 31, 32, 33, 50, 38, 33, 42, 53, 60, 51, 62, 67, 64, 68, 74, 62, 66, 69, 103, 94, 93, 103, 108, 112, 96, 119, 137, 121, 132, 165, 138, 141, 146, 160, 134, 170, 157, 195, 173, 170, 207, 189, 209, 210, 188, 233, 216, 212, 251, 256, 173, 239, 204, 218, 199, 249, 199, 214, 204, 176, 182, 220, 167, 194, 174, 163, 158, 174, 126, 128, 135, 125, 105, 93, 110, 92, 85, 76, 92, 56, 75, 68, 52, 50, 62, 81, 66, 62, 53, 64, 56, 79, 56, 57, 62, 51, 57, 54, 72, 57, 74, 57, 65, 76, 62, 60, 63, 66, 64, 61, 54, 77, 75, 72, 61, 75, 83, 53, 64, 53, 54, 59, 61, 50, 67, 71, 62, 59, 75, 77, 68, 72, 52, 71, 56, 65] }, { "type": "integer", "attributes": {}, "value": [4, 2, 3, 0, 20, 4, 4, 2, 3, 12, 3, 6, 6, 15, 8, 3, 1, 5, 5, 8, 1, 6, 8, 6, 5, 20, 12, 4, 4, 8, 2, 5, 11, 3, 5, 6, 1, 4, 11, 5, 9, 5, 4, 6, 5, 5, 1, 1, 4, 7, 1, 12, 6, 4, 1, 0, 2, 5, 5, 10, 11, 4, 3, 9, 3, 2, 7, 2, 7, 11, 8, 2, 0, 6, 6, 8, 0, 8, 2, 8, 8, 5, 10, 4, 1, 24, 7, 4, 7, 5, 6, 5, 17, 1, 3, 1, 2, 4, 5, 6, 26, 4, 7, 8, 11, 5, 6, 2, 6, 6, 5, 14, 3, 10, 2, 18, 2, 0, 2, 1, 10, 10, 2, 11, 7, 0, 2, 16, 0, 13, 6, 10, 0, 3, 6, 6, 15, 3, 2, 10, 4, 3, 6, 2, 11, 5, 2, 7, 3, 6, 2, 1, 6, 4, 0, 1, 3, 5, 4, 8, 7, 6, 10, 6, 2, 7, 3, 7, 3, 4, 10, 7, 4, 12, 6, 6, 16, 11, 6, 6, 1, 8, 8, 11, 5, 10, 6, 17, 3, 6, 10, 8, 11, 10, 8, 15, 14, 11, 14, 10, 9, 12, 11, 12, 8, 19, 16, 41, 13, 22, 20, 39, 15, 27, 27, 24, 25, 32, 26, 20, 30, 27, 37, 38, 29, 31, 35, 42, 49, 41, 36, 60, 51, 43, 41, 48, 49, 55, 75, 53, 76, 67, 59, 61, 88, 76, 95, 85, 101, 41] }, { "type": "integer", "attributes": {}, "value": [5730, 4963, 4157, 3418, 2992, 2510, 2214, 1804, 1696, 1375, 1220, 1100, 854, 790, 733, 601, 544, 547, 403, 367, 316, 364, 266, 265, 256, 207, 175, 170, 141, 125, 133, 112, 103, 96, 82, 91, 98, 85, 64, 48, 52, 68, 59, 62, 58, 73, 44, 54, 45, 46, 33, 50, 59, 43, 46, 44, 36, 38, 39, 61, 40, 45, 36, 28, 31, 33, 33, 37, 31, 33, 43, 24, 33, 38, 30, 26, 42, 38, 21, 38, 43, 40, 27, 32, 36, 37, 45, 29, 28, 32, 21, 16, 19, 39, 26, 32, 22, 26, 25, 44, 33, 34, 20, 15, 16, 29, 25, 27, 29, 20, 16, 32, 36, 27, 29, 30, 36, 30, 28, 26, 22, 21, 21, 23, 18, 26, 27, 42, 20, 12, 38, 18, 15, 40, 31, 35, 17, 15, 23, 21, 19, 23, 39, 20, 22, 19, 38, 20, 22, 34, 26, 23, 20, 24, 25, 16, 21, 26, 23, 33, 21, 29, 30, 24, 27, 17, 35, 25, 24, 28, 31, 29, 16, 33, 31, 27, 31, 35, 26, 21, 22, 21, 26, 34, 32, 12, 21, 17, 30, 31, 17, 22, 11, 23, 15, 44, 32, 27, 24, 30, 20, 34, 37, 36, 18, 26, 14, 16, 19, 15, 20, 36, 27, 34, 25, 37, 32, 26, 16, 24, 23, 18, 14, 30, 28, 18, 13, 21, 21, 29, 14, 16, 22, 12, 23, 28, 24, 23, 21, 24, 27, 26, 14, 12, 18, 28, 21, 16, 24, 20, 28, 24, 27, 20, 21, 21, 30, 19, 28, 28, 12, 24, 21, 26, 17, 18, 23, 25, 23, 15, 19, 19, 25, 28, 23, 25, 20, 13, 26, 22, 12, 15, 18, 19, 19, 25, 18, 19, 30, 25, 15, 21, 12, 21, 32, 20, 15, 18, 27, 8, 22, 15, 19, 24, 8, 14, 16, 19, 30, 13, 25, 27, 22, 18, 15, 24, 15, 21, 26, 18, 19, 20, 15, 20, 22, 29, 21, 28, 14, 12, 20, 31, 11, 22, 26, 11, 29, 12, 20, 19, 11, 11, 26, 20, 28, 17, 17, 19, 34, 21, 21, 18, 27, 25, 17, 23, 33, 26, 21, 23, 21, 23, 19, 10, 15, 27, 18, 13, 24, 17, 18, 16, 20, 14, 21, 13, 27, 35, 21, 17, 16, 19, 20, 19, 20, 18, 14, 17, 17, 21, 14, 20, 16, 19, 25, 17, 26, 21, 20, 20, 13, 14, 12, 16, 18, 22, 15, 21, 19, 20, 29, 23, 26, 20, 10, 19, 13, 15, 14, 12, 26, 20, 22, 11, 9, 13, 21, 22, 31, 26, 19, 21, 17, 16, 25, 17, 21, 11, 26, 26, 23, 24, 19, 24, 12, 22, 18, 13, 16, 16, 24, 31, 25, 15, 14, 21, 12, 17, 23, 19, 12, 22, 33, 11, 20, 11, 11, 16, 16, 20, 29, 15, 15, 16, 10, 14, 15, 20, 16, 11, 17, 21, 22, 23, 20, 26, 22, 16, 14, 13, 15, 14, 13, 16, 21, 22, 15, 18, 16, 32, 23, 15, 6, 14, 26, 12, 21, 13, 26, 14, 17, 15, 15, 25, 36, 19, 13, 15, 23, 12, 17, 18, 12, 25, 12, 28, 27, 17, 16, 14, 16, 21, 15, 13, 23, 26, 23, 15, 17, 18, 23, 19, 22, 23, 24, 20, 11, 13, 28, 17, 18, 26, 20, 18, 11, 17, 18, 30, 25, 18, 17, 18, 24, 25, 15, 15, 21, 22, 16, 19, 17, 19, 23, 14, 16, 16, 24, 13, 10, 17, 21, 10, 19, 10, 19, 10, 20, 18, 23, 14, 10, 13, 7, 16, 17, 12, 8, 15, 17, 26, 26, 26, 15, 21, 15, 23, 28, 13, 8, 15, 23, 13, 22, 15, 34, 13, 12, 12, 18, 21, 22, 11, 17, 20, 26, 14, 9, 5, 17, 21, 24, 11, 22, 19, 15, 21, 28, 15, 15, 30, 13, 12, 10, 18, 12, 22, 11, 10, 20, 15, 14, 28, 6, 15, 19, 14, 13, 22, 25, 18, 26, 16, 14, 28, 16, 16, 21, 17, 14, 10, 18, 20, 18, 13, 17, 15, 23, 10, 13, 16, 12, 9, 16, 13, 20, 17, 17, 20, 15, 22, 14, 18, 10, 24, 8, 16, 26, 15, 19, 12, 26, 13, 17, 17, 14, 15, 12, 16, 21, 11, 24, 14, 13, 18, 6, 24, 12, 15, 12, 14, 20, 15, 19, 19, 21, 16, 25, 18, 16, 19, 19, 22, 15, 14, 16, 10, 19, 17, 15, 22, 18, 10, 14, 17, 12, 20, 15, 13, 15, 13, 15, 13, 20, 18, 17, 25, 18, 15, 19, 9, 18, 11, 13, 11, 27, 19, 20, 17, 15, 20, 13, 11, 21, 14, 11, 18, 21, 8, 17, 12, 7, 15, 11, 6, 18, 19, 5, 14, 19, 13, 17, 15, 14, 16, 19, 19, 26, 11, 23, 26, 19, 19, 9, 18, 18, 16, 15, 9, 10, 19, 19, 16, 23, 7, 14, 18, 12, 5, 17, 6, 13, 15, 22, 22, 26, 19, 8, 20, 10, 11, 23, 11, 15, 18, 12, 11, 22, 4, 14, 8, 12, 30, 6, 14, 28, 17, 18, 13, 12, 25, 18, 12, 28, 18, 26, 11, 17, 18, 15, 15, 16, 14, 10, 13, 33, 11, 20, 11, 19, 11, 16, 9, 16, 11, 12, 10, 25, 16, 18, 12, 13, 16, 13, 10, 18, 12, 17, 15, 18, 12, 15, 7, 13, 7, 18, 21, 16, 12, 11, 14, 19, 18, 15, 15, 10, 14, 16, 15, 16, 18, 15, 10, 16, 16, 11, 26, 12, 9, 11, 14, 11, 20, 16, 7, 16, 24, 18, 21, 21, 19, 11, 14, 13, 18, 22, 14, 10, 19, 18, 25, 21, 15, 16, 19, 19, 9, 19, 15, 8, 11, 9, 12, 16, 20, 18, 9, 15, 42, 19, 22, 13, 14, 15, 15, 22, 13, 16, 23, 12, 12, 19, 7, 14, 8, 21, 16, 14, 27, 12, 12, 19, 20, 20, 11, 19, 12, 17, 15, 18, 6, 11, 15, 12, 9, 9, 19, 19, 5, 9, 12] }, { "type": "integer", "attributes": {}, "value": [31, 3, 4, 8, 6, 8, 8, 1, 5, 5, 7, 8, 4, 2, 5, 5, 8, 7, 9, 8, 9, 3, 5, 5, 9, 5, 1, 12, 6, 3, 1, 7, 3, 8, 9, 3, 6, 9, 5, 4, 2, 11, 13, 12, 3, 5, 1, 4, 5, 13, 6, 1, 9, 6, 5, 12, 5, 6, 2, 1, 9, 4, 3, 5, 14, 6, 5, 5, 1, 2, 8, 6, 4, 6, 9, 4, 2, 8, 8, 4, 4, 2, 12, 5, 1, 11, 3, 8, 6, 4, 6, 14, 10, 8, 14, 25, 19, 9, 13, 17, 7, 15, 18, 12, 18, 12, 5, 6, 14, 22, 25, 12, 12, 16, 9, 16, 20, 16, 19, 21, 17, 30, 17, 28, 31, 29, 42, 46, 36, 26, 43, 38, 51, 41, 63, 59, 47, 51, 45, 43, 77, 79, 91, 71, 68, 93, 75, 89, 96, 91, 109, 85, 108, 104, 92, 114, 142, 116, 118, 132, 146, 143, 146, 140, 122, 132, 110, 116, 132, 119, 132, 149, 122, 134, 124, 96, 111, 111, 127, 107, 104, 111, 85, 120, 82, 88, 88, 76, 69, 76, 73, 49, 62, 61, 56, 44, 56, 30, 32, 36, 27, 32, 38, 40, 39, 46, 35, 20, 35, 24, 41, 34, 23, 34, 31, 63, 42, 39, 38, 25, 37, 34, 23, 49, 45, 36, 33, 48, 25, 18, 37, 41, 24, 33, 47, 35, 25, 39, 16, 50, 42, 46, 24, 25, 21, 19, 34, 39, 19, 29] }, { "type": "integer", "attributes": {}, "value": [11, 0, 3, 5, 2, 1, 8, 21, 2, 10, 10, 5, 5, 4, 2, 2, 6, 2, 3, 14, 3, 0, 2, 4, 4, 2, 0, 6, 2, 9, 2, 1, 12, 1, 10, 5, 8, 1, 10, 3, 6, 9, 12, 4, 3, 3, 4, 1, 2, 4, 0, 5, 0, 6, 5, 5, 5, 7, 2, 3, 0, 12, 3, 0, 5, 2, 7, 0, 3, 9, 4, 6, 2, 4, 5, 0, 10, 4, 6, 3, 4, 4, 11, 5, 6, 6, 5, 6, 2, 5, 9, 2, 3, 6, 1, 5, 7, 2, 1, 45, 5, 0, 0, 4, 11, 3, 3, 2, 1, 0, 1, 11, 9, 10, 8, 7, 9, 11, 9, 7, 8, 8, 7, 1, 13, 3, 5, 11, 2, 8, 0, 9, 2, 7, 6, 17, 1, 5, 3, 6, 2, 14, 5, 1, 1, 3, 2, 3, 4, 3, 15, 5, 1, 13, 11, 5, 6, 1, 4, 2, 62, 5, 5, 3, 9, 4, 8, 3, 10, 6, 17, 11, 3, 5, 9, 5, 4, 5, 3, 2, 5, 4, 10, 6, 4, 8, 17, 3, 10, 10, 6, 4, 11, 6, 15, 7, 14, 15, 12, 9, 16, 16, 21, 9, 6, 17, 11, 18, 15, 18, 13, 15, 18, 23, 20, 22, 33, 32, 22, 26, 27, 23, 34, 33, 26, 29, 29, 32, 30, 51, 36, 31, 44, 56, 77, 47, 76, 43, 77, 57, 68, 80, 82, 90, 86, 57, 109, 95, 95, 55] }, { "type": "integer", "attributes": {}, "value": [6652, 5794, 5005, 4393, 3744, 3193, 2795, 2288, 2064, 1834, 1585, 1427, 1226, 1175, 986, 854, 726, 688, 591, 516, 495, 480, 343, 337, 289, 265, 243, 217, 212, 208, 159, 158, 162, 156, 109, 106, 109, 118, 116, 106, 78, 74, 116, 86, 97, 83, 80, 66, 84, 75, 71, 74, 62, 51, 60, 75, 69, 45, 62, 57, 75, 49, 49, 59, 59, 51, 50, 53, 57, 60, 37, 41, 45, 58, 55, 55, 44, 52, 47, 44, 66, 64, 48, 54, 44, 45, 52, 53, 63, 40, 47, 53, 40, 36, 49, 39, 65, 51, 46, 39, 47, 59, 60, 34, 42, 38, 45, 44, 36, 43, 30, 44, 46, 48, 41, 26, 30, 32, 32, 36, 47, 35, 24, 40, 46, 32, 40, 45, 35, 24, 39, 44, 36, 45, 14, 40, 35, 34, 36, 34, 35, 44, 32, 33, 35, 52, 46, 32, 33, 32, 42, 40, 41, 55, 35, 48, 37, 42, 29, 29, 26, 46, 43, 50, 58, 44, 46, 28, 21, 40, 26, 44, 35, 40, 36, 58, 37, 35, 37, 35, 49, 44, 31, 40, 29, 47, 32, 27, 27, 47, 50, 39, 29, 40, 44, 33, 27, 33, 48, 39, 35, 39, 19, 53, 38, 31, 44, 30, 22, 31, 30, 32, 41, 32, 35, 41, 24, 41, 36, 42, 42, 30, 23, 30, 48, 24, 27, 31, 29, 39, 41, 35, 32, 28, 35, 45, 43, 43, 20, 26, 38, 15, 32, 26, 31, 18, 21, 34, 28, 21, 34, 37, 46, 37, 35, 30, 42, 28, 19, 36, 27, 49, 39, 33, 25, 42, 31, 23, 27, 44, 26, 30, 36, 35, 27, 23, 35, 32, 32, 29, 37, 34, 42, 34, 39, 24, 27, 31, 36, 34, 29, 22, 36, 23, 32, 26, 15, 35, 42, 28, 30, 27, 17, 35, 23, 27, 58, 27, 20, 20, 30, 24, 28, 29, 31, 35, 34, 28, 26, 28, 35, 30, 36, 26, 41, 32, 31, 35, 27, 37, 54, 28, 29, 20, 21, 30, 31, 32, 27, 49, 26, 23, 22, 16, 19, 28, 28, 22, 28, 25, 34, 24, 42, 27, 19, 48, 16, 30, 28, 35, 31, 25, 36, 35, 24, 42, 39, 24, 27, 53, 26, 26, 28, 24, 25, 31, 34, 24, 26, 22, 30, 20, 27, 31, 26, 30, 25, 31, 27, 39, 18, 19, 17, 35, 40, 23, 28, 16, 26, 31, 33, 26, 43, 18, 25, 22, 29, 18, 30, 30, 29, 31, 35, 23, 44, 29, 32, 32, 43, 33, 20, 25, 31, 42, 26, 25, 39, 30, 21, 27, 26, 25, 23, 25, 34, 33, 22, 34, 20, 21, 26, 34, 24, 21, 36, 25, 31, 24, 31, 18, 19, 23, 23, 31, 29, 40, 21, 26, 29, 19, 25, 27, 26, 36, 23, 20, 29, 23, 25, 25, 29, 21, 34, 44, 26, 33, 31, 37, 27, 24, 24, 21, 45, 27, 22, 24, 29, 19, 23, 36, 17, 35, 23, 19, 21, 23, 24, 31, 27, 37, 29, 24, 39, 30, 25, 22, 30, 26, 19, 35, 27, 24, 33, 27, 37, 26, 14, 25, 21, 26, 23, 17, 23, 18, 33, 26, 33, 29, 23, 33, 29, 31, 21, 23, 22, 24, 19, 31, 34, 17, 35, 21, 23, 28, 34, 30, 28, 21, 23, 23, 18, 26, 29, 21, 36, 24, 20, 27, 20, 21, 23, 19, 33, 31, 33, 19, 25, 37, 23, 24, 39, 20, 27, 29, 27, 31, 34, 25, 30, 21, 22, 30, 16, 24, 28, 24, 24, 20, 17, 31, 29, 26, 13, 27, 20, 26, 20, 27, 34, 38, 25, 27, 34, 22, 23, 16, 38, 22, 26, 30, 31, 24, 27, 29, 25, 28, 18, 25, 19, 17, 15, 33, 16, 28, 26, 16, 34, 25, 27, 19, 19, 27, 27, 22, 23, 32, 26, 17, 24, 27, 32, 17, 24, 35, 21, 21, 33, 57, 29, 22, 36, 26, 20, 32, 25, 24, 17, 21, 24, 23, 26, 17, 17, 22, 27, 20, 19, 29, 19, 15, 22, 31, 27, 19, 19, 28, 24, 37, 17, 24, 27, 25, 36, 32, 35, 15, 30, 25, 15, 42, 35, 35, 21, 35, 35, 18, 24, 38, 23, 21, 23, 19, 23, 17, 19, 33, 17, 22, 30, 31, 24, 41, 20, 37, 29, 18, 25, 26, 30, 21, 27, 21, 19, 28, 26, 17, 14, 26, 23, 25, 25, 14, 25, 23, 23, 15, 19, 14, 20, 24, 45, 10, 18, 25, 26, 28, 27, 27, 25, 14, 20, 26, 20, 23, 20, 25, 33, 28, 18, 25, 33, 26, 17, 29, 24, 23, 21, 29, 41, 16, 30, 29, 12, 18, 29, 22, 21, 31, 20, 26, 19, 22, 27, 26, 21, 11, 18, 30, 20, 32, 22, 33, 17, 21, 23, 15, 24, 14, 24, 24, 21, 27, 17, 26, 24, 33, 27, 18, 29, 24, 21, 28, 27, 30, 24, 18, 14, 23, 23, 18, 26, 21, 20, 30, 36, 38, 17, 17, 31, 36, 28, 24, 19, 36, 25, 19, 23, 24, 25, 19, 10, 29, 15, 22, 15, 33, 17, 17, 32, 15, 27, 30, 15, 29, 23, 19, 12, 17, 18, 26, 25, 25, 22, 22, 23, 25, 35, 28, 23, 21, 18, 27, 21, 19, 23, 11, 23, 20, 18, 20, 16, 29, 28, 31, 22, 31, 22, 22, 15, 20, 26, 16, 25, 34, 26, 15, 25, 28, 15, 18, 19, 26, 25, 18, 13, 21, 13, 25, 26, 20, 14, 22, 23, 16, 20, 19, 28, 26, 20, 19, 27, 14, 21, 33, 21, 21, 31, 35, 14, 24, 29, 11, 14, 34, 31, 33, 17, 15, 21, 21, 11, 14, 22, 17, 28, 23, 29, 25, 23, 16, 19, 23, 13, 26, 24, 28, 19, 12, 9, 16, 17, 21, 16, 28, 14, 17, 17, 23, 19, 19, 10, 25, 20, 19, 30, 19, 19, 26, 20, 32, 29, 23, 22, 13, 23, 16, 24, 29, 27, 44, 24, 27, 22, 27, 35, 22, 28, 13, 17, 27] }, { "type": "integer", "attributes": {}, "value": [17, 1, 0, 5, 1, 5, 2, 2, 8, 0, 1, 4, 10, 5, 0, 5, 6, 3, 3, 2, 8, 3, 1, 47, 13, 0, 3, 2, 0, 4, 12, 9, 7, 1, 4, 6, 4, 2, 6, 0, 6, 6, 8, 10, 3, 8, 1, 7, 13, 3, 5, 12, 8, 4, 7, 4, 7, 8, 8, 2, 3, 4, 10, 6, 12, 12, 2, 1, 8, 0, 3, 23, 6, 13, 1, 2, 16, 2, 7, 3, 9, 4, 10, 12, 8, 8, 5, 3, 3, 10, 10, 5, 1, 2, 2, 4, 4, 11, 3, 6, 2, 4, 2, 7, 2, 6, 8, 16, 6, 1, 8, 6, 5, 9, 15, 4, 13, 2, 5, 5, 20, 2, 3, 7, 5, 6, 7, 1, 4, 11, 9, 3, 6, 1, 7, 9, 0, 3, 3, 9, 0, 1, 4, 10, 2, 7, 2, 1, 0, 1, 3, 4, 4, 5, 0, 6, 4, 3, 5, 0, 3, 3, 3, 2, 5, 1, 5, 18, 4, 1, 8, 9, 3, 20, 12, 1, 0, 2, 1, 1, 8, 5, 9, 8, 1, 5, 6, 5, 12, 8, 8, 17, 5, 6, 4, 12, 2, 8, 5, 4, 4, 7, 12, 3, 7, 10, 10, 5, 5, 4, 7, 3, 7, 15, 6, 11, 12, 5, 6, 18, 5, 18, 18, 8, 13, 13, 15, 11, 13, 14, 11, 15, 16, 12, 19, 23, 24, 12, 14, 16, 19, 30, 27, 32, 30, 41, 28, 20, 27, 37] }, { "type": "integer", "attributes": {}, "value": [4984, 4312, 3619, 3143, 2830, 2469, 2119, 1879, 1668, 1510, 1298, 1131, 1060, 925, 782, 693, 651, 603, 564, 515, 446, 363, 335, 319, 263, 272, 259, 218, 211, 195, 154, 192, 172, 124, 142, 159, 113, 108, 102, 84, 88, 91, 106, 74, 119, 67, 78, 75, 51, 80, 49, 73, 69, 52, 51, 50, 55, 59, 80, 44, 58, 47, 47, 43, 50, 46, 53, 47, 31, 30, 46, 42, 38, 42, 43, 74, 36, 50, 23, 47, 38, 30, 37, 37, 45, 39, 40, 36, 39, 31, 41, 47, 52, 37, 36, 43, 42, 42, 23, 32, 40, 35, 32, 39, 27, 41, 28, 40, 37, 21, 34, 30, 19, 37, 20, 36, 34, 30, 33, 26, 37, 28, 22, 34, 23, 33, 36, 42, 19, 42, 28, 30, 22, 22, 26, 44, 22, 32, 26, 26, 37, 36, 28, 22, 37, 33, 36, 28, 30, 16, 22, 33, 26, 18, 29, 24, 33, 31, 39, 34, 22, 29, 21, 29, 23, 31, 19, 40, 31, 23, 36, 31, 28, 16, 24, 27, 28, 36, 40, 24, 30, 25, 20, 35, 34, 26, 27, 40, 29, 44, 30, 34, 36, 22, 30, 33, 33, 41, 24, 18, 27, 40, 33, 22, 30, 28, 23, 39, 32, 21, 19, 21, 30, 29, 39, 24, 29, 24, 23, 31, 27, 31, 25, 28, 20, 28, 22, 24, 14, 14, 33, 26, 16, 17, 20, 25, 24, 24, 38, 15, 19, 30, 27, 31, 32, 23, 19, 28, 28, 28, 23, 19, 23, 26, 35, 24, 28, 17, 22, 35, 20, 22, 18, 30, 34, 26, 26, 33, 16, 18, 27, 15, 29, 19, 20, 13, 32, 32, 29, 33, 24, 16, 24, 16, 23, 26, 27, 20, 28, 30, 19, 29, 21, 23, 15, 26, 23, 22, 20, 23, 36, 27, 22, 26, 41, 25, 32, 27, 35, 21, 25, 18, 17, 26, 46, 33, 24, 19, 19, 28, 25, 26, 18, 23, 27, 19, 23, 30, 22, 19, 21, 20, 23, 25, 28, 15, 29, 35, 29, 22, 20, 40, 25, 20, 24, 30, 24, 21, 15, 21, 24, 15, 21, 25, 21, 27, 18, 17, 19, 18, 25, 18, 27, 17, 24, 18, 25, 29, 17, 19, 22, 35, 19, 27, 20, 14, 22, 13, 26, 17, 31, 32, 30, 21, 22, 23, 24, 31, 13, 25, 25, 20, 25, 12, 29, 18, 18, 23, 25, 18, 12, 26, 24, 18, 22, 23, 28, 32, 12, 27, 27, 19, 21, 24, 20, 13, 31, 27, 15, 33, 18, 24, 17, 27, 10, 26, 20, 23, 29, 25, 28, 30, 12, 17, 26, 27, 24, 16, 9, 18, 32, 15, 20, 22, 33, 20, 15, 23, 20, 25, 27, 26, 29, 16, 28, 19, 29, 27, 26, 18, 21, 24, 14, 18, 26, 18, 31, 27, 18, 19, 24, 11, 13, 16, 29, 16, 37, 11, 15, 15, 21, 27, 16, 27, 15, 22, 36, 15, 21, 35, 15, 31, 21, 33, 26, 28, 18, 16, 37, 10, 15, 18, 22, 16, 22, 17, 17, 20, 29, 16, 25, 34, 20, 19, 21, 32, 22, 12, 20, 25, 25, 14, 27, 14, 18, 31, 16, 22, 22, 31, 22, 22, 26, 20, 23, 12, 24, 23, 16, 18, 16, 24, 22, 26, 11, 17, 26, 15, 21, 21, 23, 20, 15, 21, 21, 21, 18, 27, 14, 18, 28, 22, 27, 21, 19, 25, 18, 14, 14, 28, 17, 17, 16, 14, 16, 26, 15, 20, 14, 21, 35, 18, 22, 27, 21, 33, 28, 19, 24, 24, 36, 17, 15, 19, 21, 22, 28, 15, 20, 18, 15, 25, 21, 23, 12, 23, 30, 28, 13, 27, 21, 33, 27, 31, 21, 19, 28, 20, 17, 9, 18, 13, 21, 20, 12, 12, 19, 13, 23, 15, 29, 21, 34, 19, 17, 20, 23, 26, 22, 22, 22, 19, 21, 15, 21, 18, 23, 13, 34, 18, 22, 24, 16, 12, 18, 22, 19, 19, 24, 21, 26, 22, 14, 24, 14, 16, 22, 17, 20, 11, 11, 17, 16, 13, 17, 23, 16, 13, 17, 17, 20, 19, 31, 34, 12, 13, 28, 20, 14, 22, 20, 14, 18, 17, 16, 29, 30, 18, 20, 21, 25, 19, 21, 17, 16, 18, 20, 14, 16, 18, 23, 17, 16, 30, 14, 16, 25, 22, 11, 23, 16, 15, 24, 20, 22, 25, 18, 18, 13, 23, 19, 23, 11, 16, 16, 26, 18, 21, 20, 22, 22, 20, 13, 37, 23, 15, 15, 21, 19, 21, 17, 26, 11, 11, 15, 31, 21, 14, 25, 21, 17, 23, 20, 29, 22, 19, 15, 25, 23, 25, 19, 19, 18, 20, 25, 15, 30, 23, 16, 19, 25, 10, 17, 17, 24, 18, 15, 23, 22, 20, 21, 20, 21, 23, 23, 17, 18, 15, 22, 29, 18, 20, 17, 23, 20, 25, 15, 28, 33, 25, 18, 16, 25, 28, 22, 20, 13, 10, 30, 18, 24, 13, 20, 22, 8, 21, 21, 14, 31, 23, 16, 16, 25, 19, 11, 13, 12, 10, 17, 26, 26, 17, 31, 23, 17, 11, 18, 12, 17, 8, 19, 16, 21, 19, 24, 19, 20, 11, 25, 17, 18, 19, 16, 23, 23, 7, 19, 11, 25, 21, 16, 14, 21, 21, 24, 15, 21, 20, 17, 20, 17, 22, 25, 14, 16, 18, 17, 13, 8, 23, 15, 19, 12, 12, 19, 21, 15, 23, 22, 9, 17, 23, 24, 19, 19, 20, 20, 22, 19, 35, 17, 21, 22, 21, 23, 16, 15, 12, 13, 24, 18, 24, 12, 22, 8, 19, 17, 22, 21, 22, 28, 30, 14, 15, 19, 10, 11, 26, 19, 16, 16, 18, 17, 13, 16, 21, 28, 16, 19, 16, 10, 14, 13, 24, 19, 19, 23, 13, 15, 23, 23, 19, 21, 20, 14, 22, 20, 23, 25, 22, 22, 15, 21, 24, 20, 10, 18, 16, 23, 16, 16, 16, 20, 21, 28, 17, 9, 21, 15, 16, 21, 25, 13, 6, 9, 16, 16, 23, 25, 15] }, { "type": "integer", "attributes": {}, "value": [2, 2, 3, 6, 1, 2, 3, 1, 1, 7, 2, 5, 4, 4, 0, 2, 2, 5, 5, 8, 11, 1, 14, 5, 4, 0, 0, 3, 4, 3, 2, 1, 5, 3, 12, 3, 3, 1, 1, 6, 4, 0, 1, 6, 6, 3, 3, 4, 3, 3, 5, 5, 9, 4, 6, 0, 16, 3, 5, 3, 4, 1, 6, 3, 0, 5, 3, 3, 2, 6, 3, 3, 6, 1, 2, 6, 3, 9, 4, 5, 7, 1, 4, 5, 7, 0, 9, 1, 0, 3, 2, 7, 8, 2, 7, 2, 8, 5, 6, 2, 9, 7, 6, 3, 0, 4, 2, 5, 15, 18, 1, 6, 5, 3, 13, 4, 6, 4, 1, 2, 4, 1, 5, 3, 4, 2, 4, 7, 13, 5, 3, 4, 7, 5, 20, 3, 8, 1, 7, 3, 10, 10, 7, 2, 5, 10, 4, 2, 9, 5, 1, 5, 2, 2, 8, 7, 3, 4, 5, 12, 7, 7, 4, 4, 3, 5, 4, 6, 6, 9, 11, 9, 2, 3, 1, 3, 9, 7, 9, 10, 12, 5, 17, 5, 8, 4, 12, 7, 12, 6, 3, 9, 1, 7, 7, 15, 7, 8, 12, 15, 14, 12, 21, 20, 11, 18, 11, 27, 26, 16, 20, 23, 23, 29, 31, 23, 22, 27, 31, 22, 29, 43, 24, 29, 25, 31, 37, 41, 54, 54, 52, 50, 40, 51, 52, 67, 61, 65, 47, 62, 97, 73, 67, 93, 87, 68, 86, 78, 77, 69] }, { "type": "integer", "attributes": {}, "value": [8799, 7585, 6545, 5700, 5051, 4201, 3678, 3198, 2980, 2460, 2193, 1988, 1725, 1515, 1383, 1223, 1157, 1067, 879, 859, 752, 669, 626, 532, 523, 458, 435, 419, 349, 300, 276, 298, 258, 257, 249, 261, 228, 206, 211, 167, 171, 143, 180, 129, 149, 144, 139, 124, 138, 125, 113, 102, 122, 121, 115, 103, 105, 112, 94, 119, 123, 98, 76, 126, 88, 105, 75, 75, 87, 80, 77, 71, 75, 66, 71, 99, 82, 82, 99, 60, 74, 84, 81, 55, 67, 66, 61, 76, 65, 69, 54, 69, 75, 57, 46, 72, 75, 48, 59, 71, 67, 63, 46, 59, 59, 52, 43, 45, 67, 79, 61, 59, 60, 53, 50, 62, 54, 50, 60, 51, 48, 50, 63, 49, 64, 56, 45, 47, 55, 51, 51, 38, 52, 61, 53, 47, 52, 48, 57, 46, 61, 50, 46, 53, 43, 51, 60, 51, 50, 42, 46, 49, 47, 51, 41, 46, 47, 56, 68, 62, 41, 60, 53, 48, 41, 53, 45, 41, 51, 41, 48, 43, 38, 44, 50, 70, 63, 43, 45, 50, 53, 52, 50, 57, 55, 51, 38, 43, 45, 39, 52, 37, 42, 30, 46, 53, 53, 41, 55, 40, 62, 37, 49, 46, 60, 53, 49, 41, 43, 47, 41, 59, 38, 47, 36, 39, 46, 35, 33, 47, 27, 45, 36, 40, 49, 38, 51, 43, 34, 54, 45, 33, 40, 42, 37, 44, 46, 38, 36, 48, 42, 48, 41, 42, 39, 47, 34, 33, 33, 44, 40, 30, 39, 38, 50, 46, 45, 43, 36, 39, 42, 38, 47, 50, 32, 33, 45, 29, 40, 27, 41, 29, 31, 48, 42, 46, 49, 29, 47, 32, 41, 51, 42, 41, 30, 45, 41, 35, 34, 35, 42, 41, 30, 35, 37, 41, 42, 46, 37, 34, 44, 43, 38, 55, 35, 33, 27, 38, 26, 39, 21, 48, 41, 36, 37, 37, 27, 35, 28, 38, 57, 34, 33, 33, 39, 26, 39, 40, 37, 49, 34, 41, 28, 24, 37, 37, 32, 36, 39, 35, 27, 43, 43, 24, 39, 38, 38, 32, 31, 39, 33, 38, 42, 21, 48, 44, 36, 26, 21, 43, 34, 23, 27, 27, 39, 45, 37, 28, 36, 25, 39, 40, 43, 40, 39, 21, 46, 28, 40, 35, 25, 44, 29, 38, 29, 35, 38, 58, 39, 34, 23, 40, 26, 31, 31, 37, 20, 24, 36, 30, 41, 28, 34, 33, 26, 37, 41, 31, 42, 33, 32, 29, 42, 39, 30, 30, 38, 32, 31, 40, 34, 38, 32, 23, 26, 34, 39, 32, 24, 30, 27, 27, 54, 24, 33, 32, 38, 46, 22, 46, 45, 37, 32, 34, 37, 35, 29, 35, 30, 27, 21, 21, 28, 21, 39, 45, 30, 33, 34, 36, 34, 33, 26, 29, 29, 32, 35, 29, 31, 29, 37, 32, 29, 31, 47, 34, 30, 46, 20, 36, 23, 32, 25, 42, 32, 32, 37, 30, 20, 37, 40, 21, 31, 25, 24, 31, 26, 20, 38, 20, 37, 24, 23, 23, 23, 37, 31, 34, 27, 44, 18, 32, 39, 31, 33, 24, 30, 31, 33, 30, 25, 30, 35, 38, 32, 44, 47, 32, 24, 38, 31, 22, 28, 28, 32, 26, 33, 21, 32, 45, 30, 39, 34, 37, 28, 23, 39, 23, 36, 29, 28, 38, 24, 37, 21, 24, 33, 31, 30, 30, 32, 23, 29, 22, 29, 34, 42, 39, 22, 28, 38, 21, 12, 28, 25, 30, 31, 27, 11, 34, 22, 22, 22, 23, 29, 37, 24, 35, 38, 29, 36, 21, 28, 38, 22, 41, 27, 21, 33, 20, 31, 26, 24, 31, 39, 31, 37, 26, 24, 34, 30, 30, 20, 27, 24, 31, 35, 22, 32, 29, 21, 27, 33, 29, 21, 31, 32, 37, 23, 51, 22, 18, 30, 28, 22, 29, 33, 31, 30, 26, 38, 24, 27, 27, 38, 42, 29, 41, 22, 46, 30, 29, 26, 32, 27, 21, 35, 22, 33, 39, 33, 26, 27, 22, 32, 27, 29, 27, 28, 19, 37, 44, 34, 19, 28, 27, 30, 21, 27, 33, 31, 28, 31, 35, 29, 25, 39, 26, 29, 33, 29, 40, 34, 33, 23, 21, 20, 32, 19, 25, 26, 28, 31, 22, 34, 37, 18, 27, 33, 22, 40, 20, 21, 46, 20, 20, 25, 23, 29, 18, 25, 23, 21, 27, 30, 33, 19, 24, 30, 25, 20, 42, 28, 17, 29, 22, 33, 35, 28, 21, 24, 27, 16, 39, 33, 24, 38, 25, 17, 29, 19, 22, 20, 38, 29, 38, 34, 27, 21, 23, 28, 17, 27, 38, 40, 22, 27, 34, 33, 27, 19, 40, 35, 22, 33, 25, 17, 21, 18, 32, 39, 22, 31, 24, 30, 26, 35, 20, 21, 30, 26, 30, 30, 40, 34, 23, 29, 14, 21, 37, 28, 27, 34, 34, 29, 33, 29, 23, 25, 36, 19, 35, 14, 25, 23, 41, 27, 20, 24, 18, 17, 25, 16, 23, 28, 21, 31, 27, 21, 31, 18, 19, 21, 14, 20, 34, 29, 25, 20, 32, 15, 46, 31, 33, 33, 24, 35, 25, 26, 19, 34, 25, 26, 29, 35, 30, 40, 31, 23, 23, 19, 13, 27, 16, 30, 34, 24, 20, 23, 22, 27, 28, 42, 32, 29, 29, 18, 22, 20, 28, 34, 22, 29, 19, 30, 26, 18, 24, 29, 30, 22, 21, 27, 21, 33, 29, 24, 22, 26, 16, 32, 14, 35, 17, 33, 17, 21, 19, 23, 26, 26, 18, 28, 28, 24, 20, 28, 29, 18, 18, 20, 23, 32, 19, 25, 26, 20, 22, 21, 32, 24, 12, 20, 25, 29, 22, 35, 37, 29, 24, 38, 41, 42, 21, 23, 11, 19, 11, 33, 34, 30, 28, 38, 26, 36, 23, 31, 23, 42, 16, 19, 24, 29, 23, 29, 32, 29, 24, 16, 18, 23, 13, 20, 29, 25, 20, 12, 22, 23, 15, 14, 21, 26, 31, 19, 35, 34, 21, 31, 23, 19, 23, 26, 30, 23, 27, 18, 21, 21, 19] }, { "type": "integer", "attributes": {}, "value": [2, 5, 2, 16, 8, 4, 2, 0, 3, 3, 4, 6, 5, 2, 12, 2, 5, 4, 3, 3, 8, 11, 4, 3, 12, 5, 2, 5, 4, 3, 3, 3, 3, 2, 3, 3, 4, 8, 1, 9, 7, 4, 7, 8, 2, 2, 5, 4, 8, 4, 0, 0, 3, 4, 1, 13, 6, 1, 4, 10, 3, 5, 3, 6, 4, 6, 9, 2, 6, 37, 10, 8, 3, 9, 6, 2, 7, 6, 4, 3, 2, 10, 8, 0, 3, 4, 3, 1, 2, 4, 4, 4, 8, 7, 4, 1, 13, 4, 2, 0, 1, 5, 8, 2, 1, 0, 6, 3, 20, 11, 1, 8, 2, 2, 3, 2, 5, 3, 8, 3, 3, 2, 5, 5, 4, 2, 0, 15, 2, 0, 14, 4, 11, 5, 0, 15, 2, 1, 10, 16, 3, 2, 4, 2, 7, 1, 2, 4, 12, 7, 2, 12, 5, 7, 17, 5, 10, 3, 0, 2, 8, 13, 2, 6, 8, 6, 9, 6, 6, 0, 0, 6, 19, 4, 7, 7, 6, 11, 3, 8, 5, 7, 2, 7, 2, 7, 4, 11, 7, 15, 19, 10, 14, 18, 16, 9, 10, 12, 10, 10, 13, 12, 12, 18, 8, 21, 16, 16, 11, 30, 13, 19, 20, 24, 18, 30, 19, 26, 27, 28, 28, 22, 25, 26, 21, 35, 39, 43, 42, 45, 47, 49, 49, 36, 46, 62, 41, 45, 68, 76, 61, 63, 48, 71, 58, 75, 80, 67, 83, 59] }, { "type": "integer", "attributes": {}, "value": [5648, 4846, 4245, 3659, 3037, 2762, 2331, 2041, 1771, 1494, 1379, 1264, 1023, 947, 877, 737, 615, 576, 530, 464, 422, 392, 348, 308, 274, 257, 238, 190, 216, 140, 177, 129, 153, 157, 138, 131, 119, 135, 125, 110, 135, 77, 94, 103, 80, 83, 87, 107, 93, 70, 69, 69, 106, 73, 63, 96, 71, 72, 75, 79, 70, 61, 50, 57, 67, 46, 67, 74, 66, 63, 73, 60, 68, 62, 47, 50, 63, 46, 51, 48, 77, 36, 57, 52, 65, 43, 56, 42, 57, 64, 47, 40, 51, 45, 39, 45, 44, 42, 40, 60, 61, 47, 63, 59, 58, 55, 61, 47, 35, 37, 53, 65, 33, 42, 36, 47, 50, 49, 46, 39, 30, 51, 50, 35, 35, 47, 44, 39, 44, 41, 55, 47, 41, 57, 54, 46, 41, 42, 42, 32, 36, 35, 43, 51, 42, 39, 46, 51, 57, 53, 43, 46, 46, 58, 41, 40, 43, 24, 42, 55, 42, 36, 29, 36, 32, 40, 29, 42, 31, 47, 31, 37, 29, 47, 43, 31, 53, 46, 38, 38, 41, 36, 41, 49, 40, 45, 54, 31, 40, 45, 32, 57, 51, 42, 35, 45, 52, 54, 64, 31, 31, 46, 51, 51, 46, 39, 35, 40, 34, 41, 18, 26, 42, 34, 51, 38, 32, 24, 38, 34, 31, 39, 39, 48, 44, 34, 28, 41, 34, 36, 31, 51, 35, 33, 44, 38, 44, 28, 39, 31, 39, 57, 39, 42, 36, 36, 39, 43, 33, 38, 37, 28, 41, 29, 24, 30, 43, 37, 31, 27, 47, 35, 38, 50, 35, 41, 39, 33, 44, 33, 21, 41, 38, 41, 46, 33, 34, 35, 38, 38, 46, 35, 32, 34, 46, 38, 43, 27, 43, 28, 21, 33, 26, 35, 30, 31, 24, 30, 36, 43, 38, 38, 35, 44, 30, 42, 25, 17, 27, 26, 36, 31, 31, 20, 26, 24, 31, 35, 42, 35, 36, 45, 25, 42, 39, 32, 32, 39, 31, 43, 37, 36, 27, 29, 35, 31, 38, 38, 36, 25, 37, 32, 33, 41, 28, 33, 34, 30, 23, 31, 43, 34, 34, 37, 11, 36, 35, 27, 20, 39, 31, 21, 35, 27, 35, 34, 48, 35, 36, 42, 30, 28, 42, 18, 28, 31, 43, 28, 32, 37, 28, 36, 40, 30, 26, 32, 41, 31, 25, 33, 21, 38, 34, 32, 33, 36, 32, 37, 26, 23, 19, 27, 28, 30, 20, 23, 35, 20, 28, 35, 26, 36, 35, 35, 21, 23, 27, 28, 35, 51, 29, 19, 33, 27, 33, 37, 32, 40, 24, 37, 29, 30, 28, 32, 51, 41, 33, 36, 35, 30, 19, 28, 20, 41, 31, 21, 32, 52, 24, 36, 22, 30, 36, 33, 30, 24, 21, 26, 30, 41, 25, 30, 31, 26, 29, 32, 33, 25, 30, 40, 29, 31, 39, 41, 25, 35, 30, 23, 23, 24, 42, 21, 46, 32, 42, 37, 29, 27, 15, 28, 32, 43, 29, 36, 32, 38, 22, 36, 25, 35, 24, 17, 37, 23, 57, 37, 26, 37, 40, 33, 33, 24, 41, 17, 21, 32, 21, 17, 31, 33, 26, 34, 35, 26, 21, 31, 32, 27, 20, 15, 34, 31, 24, 25, 37, 20, 26, 22, 44, 30, 37, 23, 22, 24, 33, 29, 27, 27, 45, 31, 20, 40, 26, 26, 33, 22, 30, 38, 27, 36, 25, 30, 37, 41, 22, 43, 36, 24, 23, 21, 39, 30, 22, 35, 22, 23, 23, 42, 40, 21, 40, 18, 23, 31, 28, 24, 24, 27, 26, 43, 25, 29, 25, 30, 30, 30, 21, 36, 26, 25, 14, 35, 31, 26, 32, 16, 39, 22, 36, 31, 31, 26, 39, 25, 35, 26, 39, 20, 26, 25, 27, 20, 29, 17, 20, 40, 20, 34, 28, 22, 24, 19, 20, 32, 31, 32, 37, 30, 38, 35, 40, 22, 32, 24, 15, 37, 32, 26, 30, 19, 30, 25, 27, 47, 20, 26, 20, 41, 23, 25, 23, 38, 35, 21, 30, 35, 20, 17, 32, 22, 35, 22, 33, 27, 25, 36, 33, 31, 37, 29, 25, 31, 29, 23, 20, 17, 31, 19, 25, 24, 25, 21, 21, 29, 37, 21, 25, 27, 39, 26, 19, 19, 24, 27, 32, 26, 30, 25, 22, 21, 37, 29, 34, 35, 33, 29, 33, 32, 25, 35, 16, 21, 31, 20, 21, 22, 11, 33, 29, 24, 25, 27, 27, 32, 35, 20, 24, 29, 26, 42, 24, 21, 27, 24, 19, 43, 26, 31, 21, 30, 26, 27, 31, 25, 39, 30, 23, 27, 23, 27, 19, 24, 27, 23, 26, 35, 29, 23, 24, 13, 19, 19, 40, 20, 27, 25, 30, 26, 15, 17, 24, 24, 36, 18, 18, 18, 26, 25, 24, 29, 30, 23, 43, 25, 22, 32, 34, 24, 29, 35, 20, 25, 33, 29, 28, 25, 28, 26, 35, 27, 26, 19, 17, 30, 21, 32, 30, 24, 24, 17, 30, 31, 32, 25, 16, 32, 17, 26, 26, 20, 23, 30, 33, 29, 42, 12, 29, 32, 18, 30, 26, 27, 27, 27, 24, 19, 27, 21, 23, 21, 40, 31, 27, 32, 29, 48, 35, 13, 12, 36, 30, 24, 24, 15, 46, 26, 17, 30, 43, 24, 42, 29, 12, 41, 25, 25, 33, 31, 29, 38, 30, 27, 24, 20, 22, 19, 18, 37, 23, 32, 14, 40, 25, 18, 26, 24, 31, 29, 21, 25, 34, 22, 26, 25, 31, 21, 16, 34, 26, 28, 34, 25, 30, 25, 29, 36, 22, 18, 29, 47, 25, 23, 18, 35, 23, 35, 31, 20, 38, 30, 29, 23, 25, 18, 34, 26, 13, 28, 24, 26, 42, 24, 18, 28, 24, 24, 39, 12, 20, 20, 18, 14, 29, 20, 31, 19, 20, 22, 27, 25, 29, 25, 24, 19, 32, 30, 34, 24, 10, 29, 33, 24, 21, 19, 29, 24, 22, 31, 19, 23, 16, 33, 36, 28, 19, 20, 23, 22, 31, 26, 29, 25, 20, 31, 26, 19, 26, 26, 18, 22] }, { "type": "integer", "attributes": {}, "value": [4, 9, 4, 7, 7, 1, 1, 12, 2, 4, 7, 6, 15, 2, 3, 2, 1, 7, 2, 3, 5, 1, 5, 3, 3, 5, 11, 6, 4, 1, 1, 10, 2, 7, 5, 1, 4, 10, 8, 1, 7, 13, 13, 1, 10, 7, 4, 1, 2, 2, 3, 1, 5, 12, 3, 6, 9, 0, 3, 5, 5, 3, 0, 0, 2, 0, 3, 3, 0, 0, 2, 5, 4, 10, 3, 3, 4, 2, 5, 2, 8, 4, 5, 15, 4, 11, 5, 10, 2, 6, 7, 8, 2, 0, 5, 6, 2, 9, 0, 1, 13, 4, 2, 1, 12, 3, 0, 11, 1, 5, 6, 0, 2, 0, 14, 10, 8, 2, 4, 3, 6, 0, 5, 2, 5, 12, 4, 0, 13, 4, 2, 10, 1, 0, 12, 6, 6, 4, 5, 5, 2, 1, 2, 2, 3, 3, 2, 5, 3, 3, 3, 3, 3, 2, 9, 3, 4, 2, 5, 7, 3, 1, 2, 8, 9, 2, 2, 1, 9, 2, 6, 5, 9, 7, 4, 7, 10, 14, 6, 4, 8, 9, 6, 16, 3, 5, 3, 5, 4, 6, 4, 6, 9, 8, 9, 12, 13, 7, 5, 11, 12, 14, 15, 17, 9, 17, 21, 10, 20, 36, 18, 17, 22, 19, 19, 34, 446, 30, 11, 33, 39, 32, 36, 17, 20, 31, 40, 31, 34, 37, 41, 37, 55, 63, 61, 60, 52, 55, 48, 75, 70, 56, 72, 54, 71, 78, 76, 80, 94, 60] }, { "type": "integer", "attributes": {}, "value": [8949, 7812, 6918, 6012, 5136, 4506, 4074, 3428, 3082, 2793, 2317, 2242, 1781, 1789, 1531, 1378, 1177, 1160, 1093, 956, 869, 787, 708, 675, 619, 552, 495, 556, 460, 430, 428, 388, 327, 346, 309, 237, 269, 294, 208, 218, 224, 203, 209, 162, 165, 185, 165, 151, 158, 142, 142, 151, 135, 140, 140, 127, 151, 125, 117, 98, 122, 105, 110, 109, 104, 117, 121, 94, 67, 81, 93, 105, 70, 95, 76, 85, 75, 73, 76, 85, 59, 85, 81, 63, 55, 72, 73, 43, 60, 78, 67, 53, 66, 71, 69, 46, 63, 58, 64, 53, 44, 74, 65, 60, 51, 66, 39, 46, 53, 48, 42, 43, 54, 46, 47, 48, 55, 37, 47, 39, 54, 65, 62, 53, 39, 45, 35, 46, 45, 39, 53, 44, 53, 39, 39, 36, 40, 47, 41, 52, 43, 75, 32, 51, 49, 59, 51, 36, 51, 37, 33, 38, 47, 50, 40, 37, 42, 47, 50, 38, 48, 41, 49, 43, 47, 22, 41, 37, 40, 40, 24, 53, 41, 57, 44, 34, 33, 22, 34, 46, 39, 39, 54, 36, 43, 24, 48, 45, 41, 39, 59, 33, 52, 38, 42, 32, 57, 36, 23, 45, 37, 53, 42, 30, 32, 21, 31, 35, 32, 41, 34, 44, 25, 28, 36, 19, 39, 41, 24, 49, 35, 48, 38, 29, 46, 30, 48, 28, 33, 33, 49, 27, 36, 34, 28, 38, 35, 48, 37, 34, 33, 47, 23, 28, 31, 36, 38, 35, 27, 36, 34, 28, 42, 30, 28, 34, 49, 26, 26, 31, 39, 30, 25, 40, 43, 27, 29, 38, 44, 26, 17, 25, 15, 32, 29, 43, 38, 33, 41, 47, 40, 34, 31, 37, 28, 25, 32, 39, 38, 33, 32, 32, 25, 19, 33, 25, 25, 30, 22, 41, 37, 36, 26, 28, 37, 34, 41, 37, 36, 32, 29, 51, 42, 45, 22, 26, 28, 36, 31, 22, 40, 18, 24, 25, 26, 20, 27, 47, 38, 34, 23, 24, 23, 27, 27, 36, 30, 40, 23, 48, 29, 23, 33, 30, 35, 37, 26, 26, 28, 29, 27, 32, 36, 30, 38, 47, 33, 28, 31, 19, 35, 22, 23, 34, 49, 32, 24, 36, 27, 28, 21, 25, 21, 23, 23, 15, 27, 28, 34, 32, 35, 23, 31, 24, 17, 33, 35, 38, 33, 25, 27, 19, 34, 26, 34, 25, 20, 32, 27, 26, 32, 13, 29, 27, 33, 22, 12, 27, 23, 29, 26, 22, 29, 33, 35, 38, 32, 30, 36, 17, 33, 19, 26, 21, 20, 21, 24, 21, 27, 38, 16, 33, 25, 27, 20, 30, 30, 31, 33, 22, 23, 22, 23, 24, 27, 22, 18, 37, 17, 26, 29, 25, 28, 22, 22, 27, 30, 12, 23, 20, 20, 26, 26, 21, 36, 32, 28, 28, 17, 21, 17, 17, 40, 24, 24, 21, 23, 26, 16, 20, 19, 39, 17, 19, 26, 29, 30, 25, 22, 16, 31, 32, 34, 20, 21, 28, 20, 24, 28, 19, 33, 28, 27, 21, 34, 43, 18, 25, 23, 24, 16, 21, 17, 34, 25, 25, 34, 32, 18, 17, 24, 28, 27, 21, 18, 33, 37, 34, 15, 25, 20, 17, 32, 25, 30, 24, 28, 29, 35, 32, 16, 29, 28, 21, 20, 14, 23, 24, 31, 19, 25, 21, 24, 26, 23, 24, 21, 24, 27, 28, 25, 31, 41, 24, 30, 29, 21, 32, 29, 30, 10, 24, 30, 25, 22, 11, 32, 28, 27, 30, 12, 24, 18, 21, 19, 22, 19, 24, 19, 24, 24, 30, 26, 18, 29, 31, 26, 16, 28, 35, 14, 24, 31, 27, 15, 12, 30, 27, 14, 26, 28, 25, 22, 19, 25, 34, 31, 24, 23, 16, 26, 27, 23, 25, 20, 31, 33, 21, 26, 22, 24, 30, 21, 26, 34, 22, 22, 22, 27, 27, 19, 23, 21, 29, 33, 28, 35, 25, 25, 19, 27, 26, 22, 28, 26, 26, 26, 35, 25, 31, 26, 33, 29, 21, 29, 16, 11, 27, 24, 12, 26, 18, 28, 32, 22, 20, 15, 31, 17, 18, 19, 23, 24, 24, 15, 18, 25, 21, 21, 38, 23, 28, 31, 28, 18, 15, 25, 21, 21, 28, 16, 19, 20, 27, 24, 27, 35, 24, 24, 20, 10, 19, 13, 12, 17, 13, 21, 23, 30, 22, 22, 20, 22, 25, 21, 27, 33, 14, 39, 19, 20, 24, 25, 14, 29, 24, 19, 12, 33, 19, 29, 34, 25, 20, 16, 21, 19, 33, 22, 21, 20, 34, 13, 22, 24, 24, 13, 15, 24, 33, 14, 26, 23, 35, 29, 31, 24, 34, 26, 20, 22, 18, 23, 29, 14, 14, 20, 35, 25, 24, 25, 20, 19, 41, 26, 16, 29, 22, 25, 26, 31, 16, 35, 14, 17, 18, 13, 16, 30, 17, 13, 18, 21, 15, 21, 23, 30, 11, 38, 16, 20, 16, 17, 22, 23, 12, 28, 17, 15, 24, 29, 23, 8, 12, 31, 23, 21, 20, 33, 20, 33, 9, 16, 39, 17, 28, 19, 13, 16, 23, 27, 23, 28, 15, 16, 17, 33, 21, 22, 18, 20, 18, 18, 11, 18, 27, 26, 11, 28, 19, 18, 12, 22, 21, 28, 19, 22, 19, 25, 11, 21, 23, 22, 20, 15, 26, 36, 15, 11, 12, 43, 28, 19, 28, 23, 26, 26, 26, 12, 31, 31, 33, 26, 21, 23, 17, 14, 24, 25, 15, 18, 18, 24, 31, 14, 16, 11, 22, 32, 18, 27, 18, 20, 17, 27, 25, 12, 29, 22, 23, 18, 16, 18, 33, 33, 15, 24, 27, 28, 27, 13, 23, 17, 15, 29, 16, 21, 25, 20, 28, 20, 23, 17, 14, 15, 15, 16, 21, 21, 19, 14, 25, 17, 21, 19, 22, 28, 12, 21, 23, 17, 19, 27, 20, 15, 28, 23, 20, 20, 20, 15, 26, 29, 24, 21, 18, 25, 18, 23, 14, 22, 18, 21, 15, 23, 13, 23, 20, 20, 20, 23, 16, 13, 10, 27, 25, 39, 20, 23, 26] }, { "type": "integer", "attributes": {}, "value": [3, 16, 7, 3, 1, 11, 0, 5, 3, 3, 6, 5, 3, 3, 9, 2, 1, 3, 4, 1, 6, 0, 11, 3, 10, 4, 4, 9, 2, 11, 2, 8, 8, 0, 6, 2, 3, 6, 2, 10, 8, 4, 2, 5, 4, 4, 5, 5, 12, 6, 2, 13, 6, 2, 1, 11, 5, 3, 3, 2, 24, 9, 4, 1, 7, 7, 11, 1, 0, 2, 6, 4, 7, 14, 5, 6, 5, 1, 3, 2, 1, 11, 2, 9, 3, 2, 8, 3, 9, 2, 9, 21, 1, 2, 2, 7, 3, 7, 2, 9, 2, 3, 2, 3, 1, 7, 2, 4, 0, 7, 18, 8, 26, 0, 7, 13, 2, 1, 7, 4, 4, 2, 2, 19, 5, 5, 7, 6, 0, 14, 3, 8, 4, 5, 2, 4, 10, 9, 2, 2, 2, 1, 7, 3, 1, 2, 7, 9, 8, 5, 4, 13, 5, 1, 4, 5, 7, 12, 3, 0, 7, 1, 4, 2, 9, 3, 1, 4, 4, 5, 4, 7, 10, 3, 4, 3, 4, 9, 6, 7, 11, 46, 17, 10, 4, 8, 4, 8, 12, 10, 9, 5, 4, 20, 9, 15, 3, 32, 10, 10, 4, 7, 28, 14, 27, 22, 16, 28, 29, 16, 17, 20, 8, 19, 27, 29, 30, 33, 43, 29, 36, 35, 32, 33, 44, 25, 28, 23, 40, 35, 36, 28, 35, 52, 71, 52, 55, 37, 60, 67, 70, 64, 61, 59, 70, 58, 75, 90, 95, 49] }, { "type": "integer", "attributes": {}, "value": [3673, 2989, 2668, 2292, 1948, 1775, 1517, 1394, 1158, 1046, 923, 788, 634, 621, 587, 513, 419, 421, 325, 323, 339, 289, 248, 296, 254, 192, 193, 172, 183, 163, 138, 154, 146, 124, 158, 146, 117, 124, 108, 135, 100, 99, 103, 125, 123, 85, 95, 109, 108, 92, 104, 93, 90, 90, 94, 97, 101, 64, 84, 98, 76, 86, 85, 77, 84, 73, 82, 79, 82, 87, 83, 92, 70, 69, 63, 105, 96, 69, 84, 83, 70, 61, 72, 74, 59, 75, 78, 87, 90, 50, 75, 63, 76, 82, 79, 78, 57, 54, 72, 78, 61, 77, 79, 65, 64, 53, 80, 77, 66, 57, 75, 67, 56, 55, 78, 47, 49, 61, 54, 63, 71, 64, 60, 53, 63, 57, 59, 83, 69, 50, 45, 55, 68, 46, 60, 69, 56, 69, 59, 60, 54, 54, 79, 34, 51, 40, 57, 53, 67, 54, 37, 48, 62, 61, 61, 72, 65, 44, 55, 69, 54, 59, 53, 62, 59, 39, 53, 53, 41, 52, 61, 41, 47, 50, 47, 39, 53, 65, 60, 56, 49, 39, 39, 40, 42, 53, 48, 56, 55, 50, 51, 45, 57, 59, 54, 57, 43, 60, 43, 38, 34, 46, 43, 57, 52, 39, 42, 54, 35, 69, 38, 32, 35, 34, 39, 51, 50, 58, 49, 40, 40, 60, 33, 37, 41, 47, 50, 62, 53, 31, 26, 52, 26, 47, 40, 56, 42, 41, 37, 52, 45, 44, 36, 38, 43, 57, 53, 51, 50, 55, 44, 46, 48, 39, 47, 41, 61, 43, 49, 47, 30, 47, 39, 50, 37, 43, 53, 62, 54, 40, 43, 43, 29, 41, 59, 46, 39, 33, 36, 51, 29, 44, 36, 58, 41, 28, 48, 49, 37, 22, 40, 30, 33, 56, 34, 43, 30, 34, 46, 32, 35, 49, 50, 38, 51, 41, 44, 24, 42, 36, 47, 54, 29, 54, 33, 41, 41, 34, 36, 39, 32, 33, 37, 50, 31, 44, 40, 33, 50, 45, 31, 44, 52, 41, 44, 52, 33, 61, 45, 35, 37, 37, 46, 46, 27, 32, 21, 40, 30, 39, 42, 43, 44, 51, 44, 35, 43, 32, 39, 35, 44, 41, 43, 42, 41, 41, 55, 31, 46, 50, 29, 28, 32, 46, 49, 36, 37, 32, 40, 54, 37, 43, 37, 43, 42, 50, 43, 26, 44, 49, 39, 40, 44, 38, 42, 26, 28, 31, 36, 32, 33, 46, 35, 33, 25, 41, 31, 33, 25, 32, 32, 39, 36, 31, 35, 38, 41, 27, 35, 29, 48, 44, 30, 38, 38, 37, 38, 35, 54, 39, 37, 35, 44, 25, 34, 44, 31, 31, 37, 31, 26, 30, 36, 30, 36, 41, 44, 31, 30, 47, 32, 29, 29, 30, 25, 43, 47, 48, 38, 27, 42, 36, 35, 30, 22, 47, 22, 45, 44, 30, 44, 33, 30, 36, 35, 30, 26, 45, 35, 38, 21, 38, 33, 36, 28, 38, 44, 30, 41, 40, 51, 30, 32, 46, 38, 23, 29, 30, 41, 33, 42, 35, 38, 31, 29, 40, 29, 48, 28, 36, 41, 40, 37, 25, 37, 37, 24, 31, 35, 26, 30, 39, 48, 38, 40, 23, 28, 27, 43, 42, 45, 37, 41, 31, 29, 24, 31, 47, 18, 23, 32, 33, 29, 38, 43, 36, 26, 20, 29, 41, 21, 25, 31, 29, 30, 34, 15, 34, 33, 38, 43, 33, 30, 35, 29, 37, 38, 31, 56, 28, 40, 19, 34, 35, 31, 31, 29, 34, 34, 28, 32, 31, 22, 38, 39, 34, 38, 30, 32, 37, 23, 40, 39, 32, 31, 32, 28, 47, 34, 34, 28, 42, 32, 30, 34, 31, 33, 27, 28, 45, 27, 44, 22, 29, 40, 44, 37, 32, 40, 37, 34, 36, 33, 23, 21, 45, 30, 35, 23, 42, 29, 45, 35, 26, 35, 26, 40, 38, 30, 35, 34, 28, 22, 34, 30, 33, 38, 23, 20, 29, 21, 25, 27, 28, 30, 36, 41, 26, 34, 23, 35, 38, 34, 53, 28, 44, 30, 33, 29, 38, 27, 26, 53, 29, 34, 25, 29, 29, 33, 37, 23, 32, 38, 25, 41, 31, 32, 31, 35, 30, 34, 36, 28, 39, 36, 27, 33, 19, 31, 30, 20, 41, 23, 40, 31, 12, 48, 21, 32, 31, 22, 42, 28, 34, 32, 30, 35, 29, 37, 37, 31, 37, 28, 26, 21, 38, 36, 28, 28, 30, 24, 40, 21, 32, 22, 33, 23, 28, 21, 28, 35, 32, 31, 27, 45, 35, 29, 26, 35, 30, 41, 26, 38, 18, 26, 28, 29, 33, 24, 31, 41, 29, 22, 24, 39, 37, 25, 28, 24, 43, 36, 25, 24, 42, 37, 32, 31, 28, 39, 34, 25, 46, 32, 52, 23, 23, 22, 27, 40, 39, 17, 33, 26, 23, 43, 29, 24, 18, 35, 30, 25, 25, 29, 30, 34, 34, 24, 22, 19, 23, 47, 25, 24, 21, 24, 30, 32, 19, 28, 30, 22, 25, 33, 29, 29, 34, 39, 17, 26, 30, 34, 20, 48, 24, 25, 32, 21, 26, 33, 33, 19, 29, 29, 34, 37, 37, 16, 13, 38, 23, 27, 35, 17, 21, 25, 39, 29, 21, 33, 28, 28, 40, 24, 21, 23, 31, 28, 20, 18, 20, 28, 29, 38, 34, 27, 21, 25, 42, 40, 39, 19, 28, 23, 19, 28, 27, 20, 18, 25, 17, 32, 30, 25, 16, 14, 30, 29, 21, 30, 27, 28, 36, 27, 19, 39, 24, 36, 17, 20, 21, 40, 33, 17, 34, 26, 38, 25, 29, 40, 19, 29, 12, 17, 20, 18, 11, 18, 27, 21, 18, 27, 25, 28, 26, 24, 20, 25, 30, 24, 34, 20, 39, 39, 37, 34, 27, 21, 15, 40, 29, 22, 24, 39, 24, 18, 13, 25, 28, 27, 28, 27, 20, 30, 29, 39, 29, 31, 15, 25, 40, 24, 34, 23, 22, 40, 30, 28, 28, 27, 32, 29, 48, 32, 30, 21, 31, 24, 24, 41, 37, 29, 29, 44, 22, 27, 33, 21, 19, 32, 44] }, { "type": "integer", "attributes": {}, "value": [5, 5, 6, 24, 6, 3, 6, 1, 6, 3, 10, 11, 2, 3, 2, 2, 2, 1, 3, 6, 2, 5, 4, 3, 2, 2, 9, 1, 4, 16, 3, 1, 3, 0, 4, 2, 5, 4, 9, 2, 6, 5, 4, 6, 1, 8, 7, 3, 8, 6, 4, 2, 5, 4, 4, 7, 5, 2, 9, 4, 16, 5, 3, 1, 8, 2, 6, 6, 3, 14, 2, 0, 4, 7, 7, 6, 6, 6, 3, 2, 8, 6, 4, 2, 4, 1, 2, 2, 25, 2, 1, 2, 5, 2, 4, 11, 4, 9, 0, 3, 3, 2, 2, 24, 8, 2, 2, 15, 4, 0, 6, 1, 1, 13, 4, 6, 6, 0, 5, 7, 5, 3, 4, 3, 5, 4, 6, 6, 4, 3, 5, 10, 1, 12, 6, 7, 4, 2, 0, 5, 0, 4, 4, 3, 7, 2, 3, 3, 2, 5, 5, 11, 4, 4, 4, 9, 8, 7, 5, 5, 2, 9, 6, 1, 2, 22, 8, 4, 4, 3, 4, 5, 16, 21, 7, 5, 6, 10, 3, 2, 2, 5, 5, 9, 6, 9, 2, 7, 7, 12, 7, 7, 5, 5, 4, 11, 7, 7, 10, 18, 9, 10, 19, 20, 19, 13, 16, 17, 18, 11, 19, 21, 10, 25, 23, 23, 23, 33, 40, 31, 29, 36, 27, 34, 36, 45, 33, 36, 48, 48, 40, 58, 34, 52, 52, 66, 57, 63, 72, 55, 53, 62, 71, 72, 84, 81, 75, 114, 87, 58] }, { "type": "integer", "attributes": {}, "value": [5192, 4572, 3803, 3457, 2957, 2555, 2152, 2013, 1643, 1435, 1384, 1193, 1054, 916, 865, 723, 677, 571, 558, 464, 398, 361, 326, 375, 292, 236, 246, 226, 234, 197, 174, 160, 167, 162, 147, 109, 110, 104, 86, 98, 89, 87, 90, 62, 60, 84, 68, 90, 61, 64, 76, 71, 58, 54, 43, 64, 61, 73, 43, 49, 48, 47, 45, 40, 77, 48, 62, 41, 49, 42, 49, 40, 35, 41, 52, 40, 62, 36, 38, 37, 29, 56, 36, 34, 53, 34, 35, 67, 37, 33, 34, 43, 45, 33, 40, 35, 38, 48, 31, 31, 52, 22, 36, 30, 47, 44, 33, 21, 35, 38, 52, 36, 25, 52, 36, 34, 47, 37, 35, 47, 21, 35, 44, 44, 32, 26, 41, 31, 36, 41, 20, 21, 34, 28, 22, 29, 24, 31, 30, 26, 33, 26, 29, 25, 32, 35, 28, 28, 26, 32, 31, 49, 32, 19, 36, 35, 34, 23, 23, 35, 34, 35, 31, 33, 32, 35, 28, 37, 23, 39, 35, 33, 30, 17, 24, 44, 26, 18, 36, 23, 33, 25, 41, 30, 25, 20, 28, 28, 24, 31, 24, 50, 24, 25, 25, 31, 32, 20, 23, 20, 21, 24, 27, 35, 36, 23, 23, 25, 19, 39, 36, 15, 24, 23, 26, 25, 26, 36, 19, 17, 26, 28, 25, 17, 31, 31, 29, 23, 26, 21, 29, 28, 9, 24, 23, 22, 21, 25, 25, 30, 14, 13, 20, 25, 26, 14, 36, 28, 13, 20, 17, 26, 24, 24, 23, 30, 25, 29, 20, 29, 19, 35, 30, 20, 27, 16, 29, 15, 22, 22, 20, 23, 34, 30, 24, 28, 31, 50, 30, 15, 18, 20, 27, 25, 27, 24, 29, 27, 11, 29, 17, 29, 27, 14, 23, 33, 22, 25, 22, 25, 22, 26, 21, 25, 28, 29, 25, 34, 18, 24, 25, 32, 13, 27, 23, 19, 25, 25, 31, 23, 18, 18, 33, 12, 17, 26, 26, 27, 29, 23, 15, 22, 23, 33, 22, 17, 14, 25, 30, 27, 22, 17, 32, 13, 20, 26, 23, 16, 25, 29, 21, 21, 27, 29, 18, 9, 20, 17, 15, 19, 21, 29, 30, 16, 15, 14, 22, 32, 25, 22, 17, 20, 25, 23, 8, 29, 24, 12, 21, 31, 14, 24, 17, 22, 18, 22, 20, 25, 27, 17, 23, 24, 18, 28, 17, 21, 14, 30, 17, 34, 26, 21, 22, 15, 13, 15, 29, 29, 17, 17, 16, 20, 15, 21, 25, 20, 25, 21, 14, 21, 18, 19, 19, 35, 24, 19, 25, 19, 24, 20, 19, 41, 19, 25, 25, 14, 21, 21, 25, 17, 21, 22, 16, 26, 20, 41, 23, 24, 24, 29, 17, 14, 13, 34, 24, 18, 34, 25, 13, 19, 19, 16, 19, 25, 13, 21, 18, 19, 15, 19, 14, 24, 16, 15, 27, 18, 23, 25, 18, 16, 17, 30, 22, 25, 37, 19, 16, 26, 21, 24, 25, 26, 25, 17, 25, 15, 15, 25, 21, 29, 27, 20, 14, 26, 12, 16, 21, 14, 31, 16, 25, 17, 21, 27, 21, 24, 19, 23, 25, 19, 26, 21, 18, 14, 17, 18, 18, 14, 25, 15, 27, 26, 19, 22, 21, 14, 23, 21, 10, 26, 29, 19, 19, 21, 21, 18, 16, 19, 23, 23, 16, 17, 13, 19, 11, 18, 18, 14, 15, 16, 20, 16, 16, 16, 21, 20, 22, 25, 19, 15, 11, 13, 16, 14, 27, 21, 25, 20, 14, 19, 22, 19, 24, 14, 26, 26, 22, 21, 13, 32, 19, 21, 26, 21, 19, 19, 12, 24, 19, 21, 18, 32, 26, 16, 22, 23, 19, 22, 9, 19, 10, 32, 31, 16, 27, 14, 17, 26, 13, 11, 19, 9, 11, 12, 25, 9, 18, 33, 14, 21, 27, 26, 17, 29, 23, 23, 20, 34, 30, 21, 29, 12, 23, 20, 11, 14, 24, 20, 21, 19, 18, 22, 18, 24, 17, 9, 16, 22, 32, 19, 23, 9, 20, 23, 14, 27, 17, 12, 33, 23, 21, 17, 17, 7, 23, 11, 13, 25, 21, 14, 24, 22, 17, 22, 31, 9, 13, 23, 10, 22, 13, 12, 30, 24, 16, 25, 21, 18, 14, 10, 11, 21, 7, 21, 19, 17, 19, 25, 17, 17, 25, 19, 14, 23, 12, 24, 19, 11, 21, 18, 26, 16, 16, 14, 20, 18, 15, 11, 26, 16, 31, 14, 15, 27, 17, 18, 14, 19, 23, 13, 24, 18, 24, 21, 22, 24, 18, 24, 17, 20, 5, 26, 20, 24, 22, 13, 22, 14, 17, 15, 16, 17, 9, 16, 9, 18, 19, 26, 21, 26, 19, 18, 12, 19, 22, 32, 17, 11, 23, 28, 20, 23, 22, 22, 20, 14, 25, 23, 14, 20, 12, 16, 18, 14, 15, 17, 13, 21, 17, 18, 15, 20, 20, 19, 31, 15, 14, 22, 20, 19, 10, 21, 16, 16, 13, 20, 31, 13, 14, 23, 18, 11, 25, 17, 29, 17, 13, 16, 18, 12, 22, 16, 19, 17, 26, 20, 27, 18, 19, 12, 14, 15, 34, 14, 10, 13, 16, 21, 16, 14, 15, 24, 23, 9, 22, 13, 21, 15, 18, 16, 25, 11, 24, 27, 26, 7, 9, 29, 7, 23, 16, 16, 19, 18, 30, 22, 8, 15, 15, 14, 19, 18, 22, 26, 12, 14, 28, 12, 19, 7, 22, 16, 24, 12, 23, 15, 18, 18, 31, 19, 18, 17, 19, 18, 16, 14, 18, 12, 21, 20, 20, 21, 14, 15, 18, 24, 15, 14, 17, 13, 24, 12, 16, 24, 21, 14, 8, 19, 13, 17, 30, 21, 14, 17, 9, 8, 20, 18, 19, 9, 12, 21, 27, 14, 11, 17, 24, 21, 22, 23, 11, 15, 15, 10, 19, 25, 12, 29, 12, 19, 17, 22, 16, 8, 18, 13, 18, 22, 21, 21, 9, 23, 15, 18, 6, 27, 27, 21, 11, 21, 11, 18, 11, 18, 13, 20, 23, 14, 16, 12, 30, 15, 13, 18, 20, 27, 17, 8, 14, 19] }, { "type": "integer", "attributes": {}, "value": [5, 1, 3, 3, 18, 5, 3, 3, 6, 2, 2, 0, 0, 3, 2, 7, 3, 3, 4, 1, 4, 8, 2, 12, 5, 5, 4, 5, 3, 2, 7, 6, 13, 9, 3, 13, 0, 7, 3, 9, 1, 7, 7, 9, 1, 1, 2, 6, 2, 3, 5, 7, 7, 1, 7, 7, 2, 8, 7, 4, 8, 5, 4, 3, 6, 4, 9, 2, 3, 8, 1, 2, 16, 4, 2, 2, 7, 3, 2, 1, 11, 4, 7, 3, 3, 7, 15, 8, 2, 7, 0, 8, 3, 3, 3, 3, 1, 5, 4, 5, 5, 6, 7, 6, 7, 4, 4, 1, 4, 6, 4, 6, 5, 8, 2, 3, 7, 1, 4, 8, 9, 4, 5, 4, 1, 7, 4, 13, 5, 12, 7, 6, 1, 3, 5, 2, 5, 24, 4, 8, 4, 4, 1, 1, 5, 0, 4, 1, 6, 7, 1, 2, 2, 2, 11, 0, 8, 8, 2, 4, 0, 9, 16, 5, 16, 15, 6, 13, 14, 6, 6, 13, 7, 8, 4, 3, 2, 12, 5, 17, 8, 11, 8, 19, 7, 6, 5, 10, 7, 5, 7, 12, 12, 11, 15, 20, 16, 16, 8, 11, 24, 5, 23, 19, 26, 28, 18, 12, 23, 21, 35, 39, 23, 26, 32, 29, 40, 27, 45, 24, 40, 62, 35, 36, 42, 50, 42, 55, 45, 59, 69, 70, 63, 79, 79, 87, 73, 95, 85, 105, 104, 139, 107, 106, 117, 117, 127, 126, 116, 83] }, { "type": "integer", "attributes": {}, "value": [11699, 10003, 8723, 7617, 6417, 5461, 4881, 4272, 3644, 3180, 2741, 2376, 2062, 1806, 1687, 1495, 1277, 1107, 1030, 847, 831, 675, 607, 553, 475, 469, 433, 338, 285, 297, 288, 302, 231, 217, 184, 190, 176, 188, 141, 151, 144, 125, 106, 144, 125, 124, 117, 116, 103, 92, 109, 86, 90, 92, 95, 91, 71, 89, 72, 80, 71, 67, 74, 55, 46, 56, 78, 83, 61, 80, 72, 81, 72, 59, 68, 77, 101, 42, 59, 50, 56, 55, 62, 59, 65, 57, 53, 65, 63, 67, 77, 50, 64, 67, 56, 41, 42, 52, 64, 45, 45, 64, 77, 49, 43, 50, 40, 55, 55, 39, 46, 53, 56, 37, 46, 54, 50, 35, 56, 46, 35, 54, 44, 47, 43, 43, 51, 36, 45, 42, 62, 42, 52, 40, 52, 52, 45, 53, 60, 54, 47, 51, 44, 57, 46, 55, 54, 62, 41, 49, 49, 60, 50, 59, 48, 50, 48, 32, 37, 48, 69, 49, 36, 41, 46, 36, 37, 50, 39, 43, 32, 40, 38, 27, 40, 36, 36, 50, 32, 42, 57, 48, 48, 37, 38, 40, 37, 41, 48, 44, 29, 38, 61, 33, 38, 47, 40, 48, 52, 39, 38, 43, 65, 37, 42, 28, 43, 39, 28, 44, 29, 32, 48, 41, 34, 31, 48, 35, 35, 39, 44, 39, 46, 33, 40, 37, 40, 29, 46, 34, 42, 34, 61, 32, 30, 25, 51, 50, 34, 52, 39, 40, 34, 34, 33, 44, 45, 36, 40, 30, 35, 38, 46, 39, 55, 55, 40, 39, 42, 33, 30, 34, 30, 46, 53, 32, 52, 48, 39, 31, 30, 39, 38, 31, 46, 38, 42, 44, 43, 34, 29, 44, 44, 37, 28, 26, 37, 42, 44, 38, 17, 49, 37, 34, 42, 39, 42, 47, 45, 44, 45, 27, 34, 37, 30, 30, 27, 28, 37, 48, 41, 33, 26, 30, 30, 29, 41, 36, 38, 26, 30, 28, 31, 51, 49, 30, 39, 33, 41, 30, 30, 35, 40, 29, 42, 36, 34, 41, 40, 45, 36, 36, 41, 24, 40, 38, 39, 38, 23, 50, 49, 32, 34, 33, 29, 32, 32, 36, 30, 31, 35, 30, 28, 40, 34, 33, 32, 18, 38, 33, 33, 37, 26, 46, 39, 38, 47, 31, 32, 36, 37, 36, 24, 38, 29, 25, 26, 23, 34, 39, 31, 36, 29, 37, 20, 24, 24, 44, 25, 33, 34, 31, 29, 27, 25, 40, 42, 36, 32, 44, 36, 33, 26, 37, 46, 41, 41, 32, 38, 26, 32, 41, 29, 46, 24, 36, 38, 27, 33, 28, 36, 28, 43, 20, 20, 39, 24, 34, 37, 36, 27, 28, 30, 35, 27, 33, 18, 26, 33, 30, 32, 39, 34, 36, 20, 31, 21, 40, 38, 27, 24, 35, 35, 33, 42, 51, 22, 20, 21, 42, 36, 28, 39, 31, 26, 32, 34, 27, 34, 31, 40, 29, 27, 31, 32, 29, 29, 30, 28, 23, 20, 25, 33, 37, 43, 26, 34, 45, 34, 27, 27, 37, 29, 35, 38, 26, 35, 38, 35, 26, 29, 33, 26, 37, 34, 37, 25, 26, 48, 33, 39, 30, 30, 33, 35, 30, 37, 24, 17, 35, 35, 39, 42, 31, 34, 40, 24, 29, 35, 28, 23, 21, 31, 32, 38, 24, 27, 29, 36, 15, 23, 35, 23, 33, 27, 30, 34, 32, 27, 26, 27, 22, 34, 37, 32, 27, 30, 28, 21, 41, 26, 32, 20, 19, 22, 31, 37, 33, 32, 29, 30, 39, 17, 22, 32, 23, 34, 27, 34, 30, 39, 23, 19, 36, 33, 25, 30, 20, 30, 27, 19, 24, 23, 32, 21, 19, 32, 33, 21, 22, 25, 34, 19, 26, 30, 47, 27, 24, 25, 28, 16, 24, 42, 35, 32, 26, 30, 32, 25, 25, 31, 28, 15, 42, 31, 39, 37, 41, 44, 17, 30, 42, 31, 30, 39, 26, 25, 21, 31, 42, 30, 27, 17, 13, 26, 21, 25, 25, 21, 41, 34, 25, 22, 31, 25, 27, 22, 20, 33, 29, 33, 21, 28, 23, 26, 18, 34, 25, 36, 27, 22, 22, 26, 29, 34, 43, 36, 28, 20, 40, 30, 31, 18, 37, 27, 30, 33, 19, 22, 26, 38, 25, 34, 34, 31, 37, 18, 26, 34, 26, 26, 43, 30, 25, 28, 39, 29, 24, 42, 29, 36, 27, 37, 31, 19, 27, 23, 32, 35, 29, 26, 42, 32, 14, 40, 28, 23, 28, 29, 18, 40, 30, 19, 49, 25, 23, 33, 40, 24, 29, 27, 36, 14, 31, 34, 29, 39, 32, 13, 20, 24, 38, 24, 35, 26, 28, 28, 31, 30, 35, 28, 37, 19, 31, 33, 37, 40, 36, 34, 38, 19, 22, 17, 33, 31, 23, 35, 37, 18, 27, 24, 32, 41, 21, 21, 34, 26, 27, 29, 23, 16, 18, 16, 14, 31, 30, 16, 22, 30, 29, 20, 26, 35, 25, 23, 33, 23, 31, 20, 34, 31, 27, 26, 28, 38, 43, 31, 12, 38, 31, 30, 18, 40, 34, 37, 16, 24, 28, 27, 30, 28, 23, 26, 34, 33, 25, 29, 39, 36, 32, 34, 32, 27, 28, 28, 20, 20, 36, 29, 21, 31, 29, 26, 27, 42, 32, 23, 26, 21, 18, 35, 44, 22, 30, 30, 20, 15, 29, 15, 30, 36, 26, 20, 35, 14, 18, 39, 29, 35, 20, 20, 27, 37, 21, 26, 32, 20, 21, 13, 30, 14, 34, 20, 10, 23, 29, 37, 33, 40, 33, 23, 34, 32, 23, 35, 50, 20, 29, 29, 18, 24, 22, 27, 36, 28, 10, 39, 35, 28, 33, 21, 16, 21, 21, 26, 18, 25, 31, 22, 21, 23, 20, 23, 25, 34, 37, 30, 31, 25, 29, 28, 11, 24, 23, 20, 29, 21, 26, 28, 29, 23, 34, 29, 26, 31, 20, 29, 23, 34, 36, 24, 23, 22, 26, 17, 18, 21, 25, 30, 41, 29, 36, 35, 18, 21, 24, 34, 30, 31, 21, 43, 17, 21, 24, 25, 25, 22, 29, 27, 30] }, { "type": "integer", "attributes": {}, "value": [6, 3, 6, 2, 9, 7, 11, 4, 16, 7, 7, 2, 6, 8, 5, 3, 2, 0, 14, 5, 4, 1, 0, 3, 10, 2, 10, 5, 5, 10, 18, 8, 7, 3, 5, 9, 6, 4, 1, 0, 3, 2, 3, 4, 3, 5, 7, 3, 16, 3, 4, 9, 2, 2, 6, 10, 10, 1, 2, 2, 2, 3, 4, 4, 9, 2, 0, 7, 2, 5, 16, 1, 3, 2, 3, 7, 0, 2, 2, 0, 9, 4, 6, 3, 4, 0, 8, 6, 1, 8, 3, 1, 1, 12, 7, 7, 7, 2, 5, 6, 8, 2, 1, 5, 1, 13, 5, 14, 2, 7, 5, 1, 2, 4, 2, 12, 2, 6, 5, 4, 1, 0, 6, 2, 15, 3, 1, 1, 4, 2, 3, 8, 3, 2, 7, 9, 9, 3, 7, 5, 9, 8, 10, 1, 14, 9, 9, 8, 4, 6, 5, 7, 17, 3, 4, 10, 7, 5, 4, 4, 3, 12, 3, 5, 1, 4, 7, 5, 7, 8, 7, 2, 55, 14, 8, 7, 4, 3, 0, 3, 20, 6, 13, 16, 10, 8, 10, 18, 20, 13, 7, 6, 11, 10, 19, 19, 27, 21, 6, 14, 12, 14, 8, 18, 22, 12, 18, 26, 18, 32, 25, 30, 21, 24, 22, 27, 39, 23, 41, 38, 46, 28, 37, 45, 44, 41, 50, 42, 56, 47, 64, 56, 66, 68, 58, 66, 90, 77, 66, 89, 103, 92, 99, 85, 100, 104, 110, 124, 101, 69] }, { "type": "integer", "attributes": {}, "value": [6219, 5256, 4585, 3940, 3311, 2870, 2483, 2245, 1881, 1678, 1524, 1283, 1130, 1076, 826, 923, 695, 629, 561, 494, 395, 434, 345, 366, 291, 287, 251, 247, 203, 177, 188, 214, 165, 145, 148, 99, 124, 102, 100, 109, 88, 85, 127, 100, 75, 102, 87, 66, 66, 68, 64, 71, 58, 55, 70, 75, 54, 78, 71, 58, 69, 54, 55, 53, 59, 50, 54, 55, 55, 35, 45, 52, 41, 30, 49, 55, 39, 37, 45, 60, 47, 60, 51, 46, 55, 40, 30, 44, 43, 38, 48, 42, 59, 42, 35, 42, 51, 38, 35, 51, 51, 45, 31, 42, 60, 31, 36, 47, 35, 34, 42, 44, 41, 32, 37, 41, 38, 46, 44, 32, 23, 48, 27, 37, 45, 42, 43, 30, 50, 40, 38, 37, 56, 38, 29, 55, 40, 33, 44, 26, 40, 29, 31, 40, 35, 35, 48, 37, 30, 39, 29, 40, 43, 35, 29, 35, 44, 42, 32, 27, 25, 34, 24, 33, 41, 35, 30, 37, 30, 28, 39, 32, 39, 38, 34, 23, 48, 29, 23, 32, 48, 32, 24, 33, 29, 26, 41, 29, 33, 31, 40, 28, 32, 38, 27, 25, 42, 31, 27, 29, 21, 38, 36, 31, 31, 33, 43, 36, 25, 39, 28, 33, 34, 28, 18, 28, 26, 24, 35, 25, 27, 27, 40, 26, 30, 21, 32, 28, 24, 36, 22, 30, 23, 27, 19, 43, 21, 40, 30, 30, 30, 27, 24, 32, 17, 26, 22, 33, 29, 25, 30, 41, 27, 21, 32, 20, 29, 41, 24, 21, 31, 41, 18, 32, 38, 28, 23, 22, 41, 26, 29, 30, 20, 39, 22, 21, 22, 49, 34, 30, 36, 45, 43, 32, 41, 27, 27, 30, 29, 24, 32, 33, 19, 36, 26, 25, 17, 24, 29, 34, 30, 26, 20, 24, 35, 31, 21, 23, 31, 22, 13, 14, 32, 32, 42, 26, 24, 14, 24, 33, 24, 24, 21, 30, 31, 21, 27, 29, 27, 31, 36, 23, 35, 16, 13, 23, 31, 34, 44, 23, 26, 30, 16, 21, 25, 34, 24, 27, 26, 23, 25, 28, 20, 25, 30, 27, 32, 21, 26, 20, 23, 29, 18, 27, 25, 21, 24, 24, 29, 19, 23, 17, 23, 26, 25, 27, 31, 23, 28, 19, 26, 24, 16, 38, 28, 35, 24, 21, 25, 28, 21, 27, 41, 28, 28, 22, 29, 23, 24, 38, 15, 26, 26, 36, 33, 24, 38, 23, 16, 19, 30, 30, 36, 18, 25, 21, 25, 31, 37, 24, 19, 29, 19, 29, 29, 22, 22, 29, 33, 30, 23, 21, 25, 20, 18, 22, 24, 25, 22, 22, 18, 17, 19, 31, 32, 22, 35, 28, 18, 17, 36, 25, 30, 28, 25, 30, 22, 19, 25, 20, 20, 23, 32, 21, 38, 27, 35, 28, 37, 21, 18, 30, 24, 30, 20, 20, 27, 24, 21, 27, 28, 18, 38, 26, 17, 24, 23, 25, 31, 26, 42, 27, 43, 18, 27, 23, 20, 24, 19, 19, 16, 29, 20, 25, 19, 26, 22, 26, 22, 10, 28, 24, 23, 21, 17, 20, 28, 28, 21, 21, 42, 22, 30, 27, 14, 34, 31, 14, 22, 22, 19, 18, 30, 25, 23, 27, 28, 31, 19, 15, 17, 19, 26, 22, 12, 29, 23, 29, 16, 28, 19, 22, 22, 29, 25, 33, 23, 22, 17, 40, 19, 20, 16, 16, 34, 24, 19, 14, 25, 24, 25, 25, 20, 12, 31, 18, 26, 30, 22, 26, 35, 29, 18, 19, 21, 19, 19, 21, 24, 16, 13, 30, 11, 16, 15, 17, 19, 21, 15, 21, 45, 16, 21, 26, 12, 27, 26, 23, 30, 31, 12, 30, 26, 27, 14, 27, 35, 26, 25, 19, 20, 26, 16, 48, 20, 11, 34, 27, 27, 24, 24, 44, 12, 13, 24, 21, 38, 22, 35, 19, 24, 25, 25, 26, 17, 26, 16, 19, 22, 23, 18, 16, 18, 28, 21, 22, 17, 26, 19, 36, 17, 18, 24, 19, 17, 25, 16, 15, 21, 17, 19, 21, 20, 28, 24, 26, 29, 14, 13, 14, 23, 36, 23, 17, 24, 37, 22, 21, 29, 26, 26, 26, 19, 20, 23, 21, 29, 23, 28, 21, 16, 23, 20, 16, 26, 22, 37, 28, 14, 22, 24, 28, 16, 20, 22, 19, 15, 20, 22, 29, 36, 18, 13, 22, 28, 19, 15, 16, 25, 36, 22, 14, 19, 20, 20, 20, 20, 28, 23, 17, 16, 23, 23, 28, 23, 27, 21, 22, 27, 18, 14, 22, 15, 24, 22, 24, 15, 35, 22, 17, 19, 21, 31, 20, 22, 27, 17, 19, 29, 23, 15, 11, 14, 23, 52, 13, 29, 25, 13, 20, 17, 28, 15, 18, 26, 21, 19, 27, 23, 19, 20, 32, 13, 22, 14, 23, 22, 19, 20, 20, 13, 24, 31, 19, 18, 26, 33, 17, 14, 15, 14, 24, 19, 21, 19, 24, 25, 20, 24, 25, 18, 16, 36, 23, 28, 20, 21, 23, 13, 15, 16, 15, 22, 21, 21, 25, 18, 14, 29, 18, 28, 16, 23, 14, 14, 34, 16, 19, 25, 18, 28, 18, 10, 18, 21, 13, 29, 14, 20, 20, 17, 11, 24, 15, 20, 23, 15, 20, 27, 20, 27, 25, 31, 12, 18, 24, 27, 35, 30, 29, 23, 21, 13, 35, 20, 23, 13, 19, 28, 25, 13, 18, 21, 16, 28, 25, 14, 24, 17, 31, 17, 19, 20, 11, 24, 21, 16, 18, 15, 30, 22, 15, 19, 20, 27, 15, 16, 20, 18, 30, 17, 28, 23, 27, 25, 18, 22, 13, 17, 18, 17, 19, 25, 24, 18, 28, 18, 27, 17, 14, 21, 21, 18, 18, 20, 5, 27, 16, 26, 30, 17, 16, 13, 24, 14, 20, 22, 18, 27, 7, 25, 11, 13, 9, 16, 14, 17, 16, 14, 14, 18, 21, 15, 13, 20, 21, 22, 11, 22, 16, 19, 25, 22, 21, 26, 32, 23, 18, 22, 22, 26, 27, 20, 18, 22, 22, 12, 23, 19, 16] }, { "type": "integer", "attributes": {}, "value": [6, 4, 7, 4, 7, 10, 3, 13, 9, 5, 5, 2, 7, 3, 8, 4, 7, 6, 2, 11, 5, 6, 7, 2, 10, 1, 4, 2, 8, 2, 8, 6, 6, 0, 4, 0, 2, 5, 4, 7, 4, 6, 3, 3, 0, 4, 6, 7, 42, 7, 4, 2, 11, 0, 1, 6, 8, 2, 2, 11, 2, 12, 10, 5, 2, 3, 4, 9, 6, 9, 11, 4, 0, 3, 9, 7, 7, 2, 13, 6, 4, 10, 12, 7, 4, 5, 5, 2, 5, 13, 0, 3, 15, 1, 5, 7, 4, 2, 4, 8, 3, 9, 11, 7, 1, 8, 9, 6, 8, 3, 7, 7, 5, 0, 1, 4, 5, 7, 1, 4, 6, 1, 3, 2, 11, 7, 15, 5, 3, 3, 6, 9, 1, 2, 3, 1, 9, 1, 6, 5, 7, 8, 11, 3, 7, 4, 4, 12, 1, 8, 6, 7, 4, 13, 10, 8, 4, 6, 3, 7, 6, 15, 9, 8, 9, 7, 10, 6, 7, 10, 8, 19, 11, 11, 8, 2, 10, 3, 4, 8, 4, 4, 10, 6, 0, 10, 7, 7, 13, 26, 23, 6, 12, 14, 8, 14, 23, 15, 14, 11, 23, 21, 32, 11, 12, 16, 19, 17, 22, 17, 17, 21, 37, 20, 32, 20, 23, 21, 36, 33, 29, 35, 35, 38, 37, 42, 36, 48, 52, 52, 48, 57, 60, 44, 57, 59, 83, 62, 62, 80, 64, 81, 96, 106, 70, 94, 111, 96, 109, 50] }, { "type": "integer", "attributes": {}, "value": [3040, 2643, 2426, 2056, 1705, 1425, 1263, 1140, 1000, 861, 771, 688, 622, 503, 489, 370, 390, 344, 315, 281, 242, 231, 225, 170, 177, 170, 149, 116, 142, 117, 118, 106, 77, 103, 96, 81, 87, 79, 52, 53, 74, 69, 56, 59, 60, 51, 56, 62, 57, 50, 67, 38, 57, 50, 47, 35, 41, 44, 37, 48, 51, 30, 37, 44, 32, 56, 37, 29, 42, 37, 24, 33, 35, 40, 44, 29, 34, 36, 37, 38, 22, 52, 31, 39, 26, 39, 31, 38, 36, 26, 23, 43, 32, 36, 28, 26, 38, 27, 48, 55, 38, 31, 28, 18, 24, 39, 25, 24, 29, 19, 23, 36, 30, 34, 51, 42, 25, 29, 36, 25, 30, 19, 38, 32, 25, 20, 31, 27, 34, 28, 29, 23, 22, 30, 18, 35, 27, 24, 36, 19, 39, 25, 36, 27, 40, 22, 35, 43, 26, 33, 22, 39, 21, 26, 39, 19, 36, 20, 14, 18, 20, 21, 32, 25, 26, 29, 34, 23, 32, 27, 37, 24, 19, 17, 14, 25, 32, 25, 38, 27, 18, 19, 18, 21, 24, 19, 25, 16, 17, 22, 22, 21, 14, 19, 22, 27, 12, 20, 14, 42, 29, 29, 27, 21, 38, 23, 11, 26, 21, 25, 17, 24, 28, 19, 29, 20, 24, 15, 35, 12, 26, 30, 23, 27, 14, 22, 25, 13, 36, 19, 16, 24, 20, 20, 19, 21, 28, 26, 21, 17, 22, 24, 23, 24, 30, 29, 20, 25, 21, 30, 24, 13, 13, 29, 20, 14, 20, 10, 22, 14, 23, 26, 23, 35, 20, 21, 17, 21, 22, 29, 23, 22, 18, 35, 24, 18, 23, 27, 23, 20, 21, 16, 28, 18, 23, 16, 17, 7, 24, 31, 19, 22, 32, 17, 19, 30, 18, 26, 23, 22, 24, 26, 21, 15, 16, 31, 15, 23, 29, 27, 15, 20, 12, 22, 26, 21, 26, 17, 21, 24, 19, 17, 35, 18, 28, 17, 26, 20, 14, 32, 15, 27, 19, 20, 13, 29, 26, 27, 15, 19, 21, 22, 21, 19, 25, 18, 15, 16, 12, 18, 13, 19, 14, 17, 27, 15, 22, 19, 13, 31, 20, 14, 27, 18, 18, 23, 25, 26, 25, 18, 12, 12, 17, 26, 30, 16, 22, 27, 6, 19, 17, 11, 20, 24, 22, 13, 22, 30, 9, 24, 18, 14, 20, 26, 12, 13, 11, 22, 15, 15, 16, 15, 23, 11, 26, 20, 10, 23, 19, 32, 19, 28, 20, 19, 31, 28, 23, 11, 29, 29, 19, 17, 11, 10, 15, 20, 21, 27, 10, 17, 21, 20, 32, 12, 22, 21, 19, 15, 14, 10, 22, 16, 18, 13, 18, 13, 22, 23, 11, 30, 11, 13, 21, 8, 15, 18, 37, 25, 24, 22, 17, 22, 16, 12, 24, 17, 20, 17, 22, 21, 16, 20, 17, 26, 10, 18, 24, 16, 21, 18, 18, 25, 13, 15, 24, 15, 28, 12, 21, 15, 17, 20, 16, 19, 30, 16, 26, 25, 13, 16, 16, 22, 18, 17, 21, 16, 15, 17, 25, 12, 13, 21, 16, 12, 16, 12, 16, 17, 10, 27, 15, 16, 23, 14, 20, 19, 17, 14, 30, 17, 19, 25, 26, 7, 15, 17, 20, 23, 13, 24, 19, 21, 22, 23, 23, 18, 20, 12, 20, 23, 16, 13, 15, 19, 24, 16, 20, 10, 22, 14, 20, 9, 19, 22, 10, 13, 10, 14, 14, 27, 18, 17, 19, 17, 17, 21, 12, 27, 31, 12, 29, 13, 18, 23, 17, 15, 28, 14, 29, 33, 23, 19, 21, 40, 10, 19, 29, 25, 15, 10, 22, 17, 32, 15, 22, 14, 27, 19, 17, 16, 8, 18, 17, 14, 14, 22, 18, 28, 18, 19, 17, 14, 29, 19, 8, 28, 21, 22, 18, 18, 11, 21, 26, 11, 20, 17, 7, 15, 14, 15, 18, 10, 14, 16, 18, 18, 18, 17, 20, 12, 15, 21, 15, 12, 9, 15, 10, 13, 15, 14, 17, 27, 23, 15, 23, 8, 29, 13, 17, 26, 25, 23, 18, 32, 20, 25, 8, 11, 15, 13, 12, 19, 21, 15, 16, 16, 17, 21, 22, 6, 15, 21, 21, 25, 13, 15, 13, 28, 16, 21, 15, 21, 14, 19, 13, 11, 14, 14, 19, 8, 15, 13, 11, 14, 20, 17, 23, 22, 16, 8, 17, 20, 22, 21, 9, 29, 14, 9, 23, 21, 22, 15, 16, 28, 31, 18, 26, 20, 11, 20, 16, 15, 13, 21, 23, 13, 15, 19, 27, 13, 11, 12, 7, 19, 15, 13, 20, 13, 19, 13, 18, 18, 10, 15, 14, 16, 28, 11, 25, 16, 28, 11, 19, 14, 19, 12, 17, 20, 17, 20, 20, 25, 10, 7, 18, 15, 9, 9, 15, 23, 24, 15, 24, 18, 15, 13, 12, 12, 7, 18, 18, 17, 14, 13, 12, 26, 17, 15, 21, 15, 6, 23, 19, 23, 18, 19, 15, 17, 9, 16, 14, 17, 14, 18, 10, 16, 12, 22, 18, 16, 14, 17, 20, 20, 25, 13, 14, 22, 24, 10, 9, 13, 14, 14, 23, 21, 16, 10, 19, 19, 26, 10, 15, 21, 18, 22, 15, 13, 16, 13, 14, 6, 9, 10, 25, 24, 21, 17, 12, 11, 15, 16, 29, 15, 17, 14, 13, 16, 29, 19, 19, 16, 13, 12, 23, 15, 15, 23, 18, 16, 15, 11, 18, 24, 19, 16, 22, 19, 20, 13, 27, 15, 6, 9, 22, 19, 16, 26, 12, 16, 9, 17, 17, 23, 8, 16, 28, 9, 15, 20, 10, 5, 15, 7, 26, 29, 19, 20, 32, 17, 22, 17, 18, 17, 25, 14, 22, 15, 20, 10, 9, 19, 7, 20, 15, 19, 27, 12, 24, 10, 20, 23, 24, 33, 21, 14, 23, 11, 28, 16, 6, 9, 14, 16, 19, 12, 31, 12, 8, 20, 17, 13, 13, 33, 20, 18, 23, 16, 23, 19, 19, 16, 8, 9, 9, 12, 17, 15, 17, 19, 19, 19, 9, 18, 18, 10, 27, 16, 19, 7] }, { "type": "integer", "attributes": {}, "value": [5, 3, 2, 1, 3, 3, 4, 5, 7, 1, 6, 2, 2, 7, 5, 4, 7, 9, 7, 5, 9, 6, 6, 8, 14, 15, 8, 13, 4, 0, 14, 2, 8, 9, 7, 6, 6, 6, 4, 15, 8, 13, 2, 11, 0, 8, 4, 7, 16, 3, 3, 4, 1, 2, 4, 1, 4, 12, 2, 4, 7, 4, 1, 6, 12, 6, 2, 15, 2, 3, 3, 10, 10, 8, 3, 9, 7, 6, 3, 4, 5, 11, 6, 3, 2, 5, 0, 4, 5, 7, 2, 5, 4, 1, 13, 12, 1, 9, 3, 2, 6, 4, 4, 0, 8, 9, 9, 7, 6, 8, 0, 4, 7, 1, 5, 13, 10, 2, 6, 5, 6, 6, 7, 3, 3, 5, 4, 7, 4, 0, 7, 3, 11, 11, 9, 4, 4, 10, 6, 4, 2, 3, 7, 4, 2, 13, 1, 10, 3, 6, 7, 7, 4, 9, 11, 6, 3, 6, 2, 9, 5, 14, 4, 2, 6, 7, 2, 10, 6, 5, 8, 5, 1, 13, 9, 4, 18, 14, 7, 6, 7, 8, 11, 16, 6, 24, 4, 2, 10, 6, 9, 21, 19, 12, 9, 10, 14, 11, 17, 26, 18, 12, 18, 20, 24, 14, 12, 21, 23, 18, 15, 21, 35, 21, 21, 26, 22, 41, 26, 25, 63, 31, 22, 39, 33, 52, 44, 41, 53, 45, 69, 65, 68, 75, 61, 50, 77, 62, 64, 70, 104, 105, 76, 76, 82, 76, 105, 88, 108, 59] }, { "type": "integer", "attributes": {}, "value": [5421, 4620, 3867, 3393, 2855, 2467, 2111, 1838, 1601, 1370, 1214, 1035, 843, 823, 687, 644, 552, 459, 461, 413, 357, 345, 308, 233, 245, 227, 208, 195, 182, 151, 126, 128, 143, 96, 94, 96, 88, 90, 90, 91, 61, 83, 64, 68, 74, 56, 54, 69, 58, 63, 54, 42, 64, 57, 52, 40, 49, 31, 45, 39, 44, 47, 39, 65, 43, 46, 39, 40, 41, 42, 45, 37, 28, 44, 48, 43, 45, 38, 35, 55, 42, 37, 37, 35, 34, 39, 35, 36, 28, 47, 37, 31, 30, 46, 41, 40, 43, 30, 37, 36, 36, 30, 22, 32, 25, 37, 28, 20, 23, 39, 38, 37, 23, 37, 29, 38, 32, 25, 28, 38, 30, 32, 42, 32, 25, 31, 39, 36, 37, 29, 30, 40, 25, 29, 29, 43, 33, 26, 30, 24, 35, 28, 37, 44, 25, 25, 23, 42, 26, 24, 32, 32, 38, 14, 30, 31, 17, 33, 41, 27, 32, 26, 42, 22, 34, 22, 32, 31, 22, 23, 28, 35, 33, 39, 26, 33, 31, 17, 25, 18, 22, 21, 36, 27, 27, 23, 30, 21, 26, 16, 31, 36, 29, 33, 32, 16, 15, 21, 24, 37, 35, 24, 21, 35, 23, 25, 21, 27, 25, 26, 38, 31, 41, 29, 33, 15, 22, 20, 23, 24, 35, 26, 24, 18, 25, 27, 30, 21, 39, 33, 19, 28, 25, 41, 40, 36, 27, 28, 25, 22, 28, 26, 28, 35, 28, 19, 29, 22, 35, 29, 25, 29, 34, 35, 26, 26, 31, 41, 22, 44, 22, 23, 29, 13, 23, 20, 23, 31, 26, 20, 22, 31, 23, 24, 22, 33, 25, 16, 29, 19, 19, 26, 19, 18, 28, 34, 14, 30, 25, 18, 29, 20, 22, 27, 18, 18, 26, 24, 33, 26, 29, 24, 24, 24, 23, 29, 26, 17, 34, 26, 28, 24, 28, 21, 15, 28, 19, 24, 33, 21, 30, 25, 35, 28, 17, 25, 24, 28, 29, 20, 25, 9, 32, 17, 22, 19, 14, 31, 19, 16, 33, 31, 33, 37, 22, 29, 19, 25, 25, 23, 21, 33, 15, 34, 24, 22, 21, 40, 20, 27, 16, 18, 17, 34, 18, 17, 19, 25, 26, 25, 26, 24, 30, 17, 31, 34, 24, 31, 17, 30, 13, 29, 33, 26, 21, 28, 27, 15, 20, 23, 20, 17, 22, 31, 26, 22, 21, 26, 22, 8, 28, 17, 33, 21, 11, 32, 14, 15, 24, 16, 19, 30, 17, 23, 27, 23, 40, 22, 18, 29, 21, 30, 30, 24, 24, 26, 15, 26, 26, 26, 31, 27, 24, 37, 29, 19, 25, 26, 20, 25, 26, 25, 25, 26, 21, 32, 26, 18, 28, 23, 28, 20, 12, 11, 24, 22, 27, 17, 22, 23, 33, 22, 13, 27, 28, 27, 13, 25, 24, 37, 16, 18, 28, 31, 22, 38, 19, 29, 15, 18, 18, 13, 17, 23, 34, 23, 25, 26, 21, 27, 27, 24, 24, 16, 21, 29, 18, 26, 14, 31, 13, 10, 23, 20, 27, 24, 23, 33, 17, 21, 15, 16, 21, 21, 24, 19, 33, 17, 22, 20, 21, 14, 20, 22, 22, 12, 21, 21, 22, 30, 29, 22, 27, 15, 23, 16, 24, 22, 20, 23, 18, 25, 19, 22, 20, 18, 29, 30, 20, 26, 31, 24, 25, 27, 26, 16, 20, 11, 32, 26, 29, 15, 15, 11, 11, 18, 29, 20, 16, 27, 27, 19, 22, 14, 20, 9, 21, 32, 24, 20, 26, 23, 18, 21, 25, 18, 21, 23, 12, 29, 11, 11, 26, 16, 21, 27, 15, 19, 11, 15, 14, 17, 16, 23, 26, 14, 15, 20, 15, 28, 21, 21, 14, 31, 18, 12, 18, 25, 22, 28, 20, 33, 27, 11, 23, 34, 20, 18, 22, 13, 10, 9, 34, 25, 15, 22, 15, 23, 15, 32, 22, 21, 15, 12, 21, 20, 21, 23, 29, 12, 29, 20, 29, 25, 20, 33, 24, 16, 19, 21, 19, 25, 21, 19, 31, 18, 25, 16, 20, 12, 19, 29, 30, 22, 28, 16, 13, 21, 21, 9, 15, 22, 27, 23, 17, 17, 18, 16, 19, 21, 27, 17, 18, 31, 21, 26, 22, 15, 12, 26, 24, 24, 16, 20, 19, 20, 19, 19, 15, 17, 22, 22, 22, 18, 22, 14, 24, 32, 21, 17, 8, 9, 12, 30, 13, 24, 33, 33, 28, 25, 21, 16, 13, 13, 15, 18, 25, 26, 19, 11, 27, 31, 16, 11, 24, 19, 25, 14, 14, 23, 10, 34, 22, 14, 22, 21, 17, 19, 20, 14, 16, 17, 19, 28, 24, 24, 22, 18, 18, 16, 20, 17, 24, 18, 7, 17, 18, 18, 24, 26, 10, 27, 21, 16, 27, 19, 26, 23, 19, 27, 25, 23, 32, 32, 14, 24, 18, 12, 19, 15, 29, 14, 13, 13, 22, 21, 10, 14, 28, 24, 18, 13, 9, 16, 26, 11, 14, 28, 21, 28, 14, 20, 31, 23, 30, 18, 20, 17, 14, 15, 16, 17, 28, 25, 19, 21, 25, 20, 20, 17, 21, 29, 18, 16, 26, 28, 21, 10, 10, 16, 22, 17, 19, 28, 26, 28, 23, 20, 14, 26, 20, 20, 22, 29, 14, 12, 8, 25, 21, 31, 18, 21, 24, 19, 18, 39, 22, 16, 22, 20, 10, 19, 23, 31, 26, 20, 25, 18, 25, 11, 25, 20, 22, 11, 23, 18, 12, 30, 20, 19, 33, 21, 20, 18, 23, 32, 18, 23, 25, 18, 17, 13, 22, 23, 13, 12, 21, 12, 21, 13, 15, 13, 19, 20, 26, 27, 23, 19, 11, 25, 29, 16, 13, 18, 19, 29, 15, 22, 17, 19, 20, 17, 15, 9, 13, 27, 32, 20, 9, 11, 14, 17, 29, 22, 10, 19, 17, 14, 17, 18, 20, 15, 14, 19, 18, 26, 22, 22, 11, 21, 19, 22, 20, 20, 21, 19, 21, 17, 6, 17, 14, 23, 19, 21, 12, 26, 21, 17, 15, 23, 16, 16, 21, 14, 21, 22, 23, 17, 26, 26] }, { "type": "integer", "attributes": {}, "value": [10, 6, 9, 2, 5, 2, 5, 5, 7, 3, 1, 60, 14, 9, 7, 18, 9, 8, 7, 9, 10, 9, 3, 19, 1, 6, 6, 4, 6, 4, 5, 11, 11, 5, 3, 7, 3, 3, 12, 6, 9, 10, 8, 1, 5, 1, 4, 4, 5, 6, 11, 4, 9, 7, 4, 7, 13, 8, 6, 8, 5, 13, 3, 3, 2, 5, 2, 6, 2, 8, 10, 10, 7, 1, 3, 2, 4, 2, 2, 1, 7, 5, 6, 2, 8, 4, 4, 4, 3, 1, 5, 0, 2, 8, 4, 10, 2, 5, 3, 5, 11, 10, 7, 0, 13, 6, 10, 19, 7, 6, 9, 4, 10, 12, 6, 10, 5, 4, 2, 12, 11, 4, 9, 6, 7, 1, 22, 2, 6, 4, 5, 10, 2, 7, 7, 5, 5, 7, 1, 6, 4, 3, 6, 5, 10, 3, 7, 1, 10, 2, 8, 11, 5, 6, 5, 16, 2, 7, 5, 3, 1, 6, 22, 17, 9, 3, 12, 12, 8, 6, 9, 4, 6, 9, 3, 10, 15, 12, 10, 7, 9, 7, 14, 4, 9, 22, 17, 8, 12, 5, 6, 12, 14, 15, 5, 13, 13, 11, 28, 15, 13, 33, 8, 15, 13, 42, 18, 22, 21, 17, 28, 23, 51, 39, 39, 36, 24, 23, 35, 49, 37, 46, 49, 52, 60, 58, 41, 50, 57, 40, 63, 62, 63, 89, 69, 62, 61, 65, 82, 71, 79, 86, 119, 93, 87, 96, 126, 92, 94, 46] }, { "type": "integer", "attributes": {}, "value": [6631, 5843, 4929, 4352, 3720, 3236, 2759, 2502, 2108, 1854, 1649, 1408, 1303, 1102, 975, 784, 746, 683, 615, 536, 506, 441, 412, 364, 323, 285, 222, 231, 190, 246, 148, 199, 143, 149, 141, 112, 134, 113, 116, 115, 83, 103, 82, 99, 77, 94, 82, 98, 62, 64, 61, 64, 70, 67, 62, 76, 65, 67, 59, 53, 65, 49, 77, 58, 66, 60, 51, 50, 48, 44, 53, 44, 51, 55, 50, 51, 47, 53, 43, 45, 66, 43, 41, 53, 50, 43, 44, 44, 56, 24, 45, 48, 31, 47, 40, 56, 50, 39, 43, 40, 40, 48, 50, 42, 49, 54, 38, 55, 41, 56, 44, 40, 47, 48, 47, 32, 37, 35, 43, 52, 36, 48, 40, 44, 42, 50, 42, 44, 28, 34, 52, 34, 30, 43, 41, 38, 35, 37, 31, 34, 33, 38, 25, 38, 43, 43, 50, 23, 33, 35, 31, 33, 31, 31, 29, 32, 33, 30, 55, 34, 27, 27, 47, 39, 41, 29, 45, 25, 35, 39, 49, 36, 37, 45, 46, 32, 28, 30, 43, 33, 40, 24, 38, 24, 29, 27, 41, 30, 35, 28, 35, 43, 35, 41, 34, 39, 28, 31, 35, 70, 30, 30, 32, 55, 39, 58, 30, 28, 19, 38, 39, 22, 25, 23, 27, 33, 38, 33, 34, 28, 17, 20, 29, 23, 39, 23, 15, 24, 34, 30, 41, 24, 37, 37, 36, 28, 20, 24, 28, 30, 49, 31, 36, 35, 30, 38, 35, 18, 42, 23, 22, 40, 32, 34, 35, 22, 33, 24, 45, 41, 27, 32, 36, 24, 29, 31, 38, 26, 42, 35, 26, 41, 33, 22, 35, 29, 45, 31, 27, 38, 20, 28, 24, 45, 35, 26, 22, 22, 30, 38, 29, 29, 25, 17, 25, 31, 35, 24, 28, 26, 48, 37, 25, 31, 28, 44, 30, 22, 37, 34, 26, 30, 18, 32, 27, 40, 23, 24, 22, 30, 27, 30, 29, 36, 34, 32, 36, 22, 34, 34, 35, 28, 20, 25, 34, 29, 27, 30, 23, 30, 24, 22, 32, 30, 35, 25, 35, 27, 35, 22, 31, 34, 32, 34, 41, 28, 22, 25, 29, 28, 18, 20, 22, 41, 25, 27, 34, 44, 17, 29, 29, 32, 30, 34, 36, 28, 20, 29, 23, 25, 26, 24, 42, 29, 34, 19, 26, 20, 33, 34, 35, 27, 23, 32, 20, 35, 27, 27, 29, 17, 29, 31, 20, 21, 27, 24, 37, 18, 29, 33, 28, 25, 19, 18, 25, 25, 20, 34, 26, 26, 17, 23, 30, 27, 18, 24, 21, 16, 30, 25, 27, 23, 20, 39, 33, 33, 22, 35, 26, 26, 29, 27, 21, 23, 34, 12, 23, 19, 14, 43, 19, 30, 25, 36, 24, 29, 34, 28, 37, 20, 29, 17, 30, 19, 28, 19, 35, 29, 37, 22, 22, 30, 33, 27, 32, 15, 22, 27, 36, 30, 22, 32, 16, 17, 19, 27, 42, 24, 29, 22, 34, 21, 30, 27, 24, 33, 20, 26, 25, 17, 30, 21, 23, 30, 25, 22, 31, 29, 27, 26, 30, 24, 24, 20, 22, 36, 25, 33, 15, 24, 15, 23, 36, 22, 26, 28, 31, 21, 33, 21, 31, 43, 19, 20, 22, 30, 32, 20, 24, 13, 19, 24, 29, 27, 13, 27, 25, 17, 33, 33, 26, 16, 44, 23, 31, 32, 16, 34, 32, 22, 30, 28, 25, 25, 24, 10, 26, 16, 13, 40, 27, 29, 28, 34, 23, 28, 18, 22, 26, 28, 15, 22, 23, 25, 26, 20, 27, 25, 29, 22, 30, 26, 22, 34, 33, 28, 27, 35, 22, 25, 23, 23, 22, 33, 21, 26, 29, 33, 33, 20, 40, 26, 23, 19, 24, 25, 20, 23, 30, 27, 28, 26, 20, 20, 28, 18, 24, 8, 40, 25, 15, 22, 24, 32, 31, 26, 14, 23, 22, 25, 18, 15, 24, 39, 31, 25, 23, 26, 22, 25, 24, 26, 26, 21, 26, 18, 19, 27, 30, 36, 19, 20, 23, 29, 11, 20, 29, 34, 20, 15, 24, 32, 23, 29, 27, 11, 28, 29, 31, 31, 21, 25, 23, 23, 18, 37, 19, 36, 19, 27, 43, 17, 19, 32, 17, 41, 34, 32, 15, 26, 29, 21, 21, 17, 27, 28, 30, 37, 19, 15, 24, 25, 24, 22, 17, 25, 20, 32, 18, 31, 25, 20, 30, 16, 8, 36, 19, 25, 36, 27, 20, 13, 24, 28, 23, 19, 26, 21, 36, 12, 17, 22, 13, 18, 21, 27, 29, 23, 19, 24, 21, 20, 31, 27, 20, 18, 17, 32, 29, 19, 49, 29, 20, 13, 20, 32, 28, 29, 34, 21, 23, 29, 22, 23, 22, 20, 33, 18, 25, 24, 25, 12, 15, 34, 23, 22, 23, 17, 17, 22, 22, 21, 24, 20, 24, 19, 16, 21, 36, 20, 22, 24, 24, 16, 17, 29, 28, 22, 18, 31, 20, 31, 16, 15, 21, 13, 24, 8, 38, 14, 26, 23, 25, 17, 26, 15, 29, 21, 19, 22, 20, 26, 22, 27, 20, 27, 25, 25, 29, 21, 43, 25, 22, 12, 32, 26, 24, 27, 18, 20, 17, 36, 21, 21, 22, 34, 19, 25, 26, 26, 23, 27, 22, 22, 25, 19, 24, 25, 17, 17, 27, 34, 20, 25, 27, 32, 21, 35, 14, 24, 20, 15, 26, 26, 25, 26, 25, 15, 25, 15, 15, 21, 26, 32, 14, 31, 22, 16, 21, 21, 22, 17, 21, 28, 18, 21, 17, 27, 14, 31, 22, 25, 14, 11, 24, 21, 19, 27, 20, 25, 24, 33, 25, 26, 18, 17, 34, 19, 28, 21, 45, 25, 27, 15, 24, 36, 29, 27, 36, 17, 19, 25, 25, 20, 31, 30, 23, 14, 28, 30, 15, 32, 27, 26, 22, 25, 26, 16, 17, 14, 19, 17, 18, 23, 28, 21, 26, 21, 14, 23, 25, 14, 13, 18, 17, 21, 18, 29, 17, 23, 24, 21, 19, 16, 15, 23, 22, 21, 27, 42, 25, 27, 18, 31, 21, 23, 21, 40, 29, 21] }, { "type": "integer", "attributes": {}, "value": [6, 6, 11, 14, 6, 3, 2, 2, 2, 9, 7, 4, 5, 3, 2, 0, 10, 12, 12, 2, 7, 7, 3, 5, 6, 3, 4, 7, 1, 8, 4, 8, 3, 6, 27, 2, 6, 5, 1, 2, 1, 16, 1, 8, 12, 6, 4, 5, 2, 5, 3, 11, 6, 12, 5, 13, 9, 3, 9, 5, 3, 9, 10, 2, 5, 3, 4, 3, 5, 7, 5, 1, 2, 5, 5, 4, 12, 7, 2, 8, 14, 6, 2, 0, 6, 9, 5, 4, 1, 0, 7, 18, 4, 2, 4, 2, 1, 2, 12, 1, 5, 8, 1, 6, 2, 4, 7, 8, 3, 4, 4, 10, 5, 9, 5, 4, 7, 4, 1, 6, 2, 8, 4, 5, 0, 1, 6, 9, 3, 12, 1, 9, 4, 5, 1, 2, 6, 3, 9, 4, 4, 6, 5, 4, 0, 6, 9, 4, 2, 3, 4, 10, 2, 14, 2, 8, 1, 6, 11, 4, 6, 10, 0, 4, 6, 6, 6, 7, 9, 9, 6, 12, 2, 8, 14, 9, 4, 20, 3, 16, 11, 19, 15, 10, 10, 4, 6, 9, 11, 9, 15, 21, 11, 8, 12, 14, 15, 11, 21, 31, 13, 11, 14, 15, 15, 41, 21, 30, 34, 24, 24, 30, 16, 17, 44, 33, 42, 41, 39, 45, 39, 59, 39, 45, 45, 62, 43, 43, 50, 72, 60, 73, 77, 64, 67, 85, 101, 58, 95, 96, 82, 103, 116, 91, 106, 100, 111, 104, 115, 56] }, { "type": "integer", "attributes": {}, "value": [8490, 7314, 6196, 5368, 4392, 3816, 3435, 2984, 2571, 2069, 1924, 1671, 1352, 1307, 1042, 964, 848, 771, 623, 590, 493, 474, 433, 373, 310, 311, 245, 218, 218, 214, 200, 140, 165, 155, 137, 105, 109, 94, 111, 103, 94, 89, 68, 85, 85, 68, 52, 79, 47, 60, 64, 58, 53, 62, 60, 56, 53, 52, 47, 43, 43, 40, 40, 41, 59, 54, 53, 41, 42, 49, 38, 43, 44, 26, 35, 49, 53, 44, 33, 48, 40, 46, 43, 59, 33, 29, 27, 45, 39, 48, 30, 26, 42, 30, 45, 51, 36, 47, 43, 23, 36, 33, 19, 45, 33, 36, 35, 21, 22, 30, 24, 41, 58, 26, 32, 25, 41, 38, 21, 42, 33, 24, 38, 30, 16, 33, 30, 31, 20, 18, 16, 35, 36, 36, 30, 30, 39, 24, 31, 37, 33, 33, 29, 46, 26, 30, 25, 33, 25, 33, 25, 24, 18, 16, 25, 39, 23, 35, 27, 18, 19, 29, 20, 20, 31, 24, 26, 36, 26, 17, 27, 21, 38, 26, 36, 24, 34, 13, 23, 33, 24, 30, 26, 32, 24, 27, 19, 27, 28, 33, 22, 25, 19, 18, 29, 21, 22, 13, 35, 23, 30, 34, 22, 32, 27, 31, 30, 28, 37, 24, 29, 28, 25, 22, 24, 20, 17, 19, 35, 21, 27, 23, 31, 22, 32, 20, 28, 38, 18, 31, 34, 32, 17, 26, 22, 25, 18, 17, 34, 28, 15, 14, 32, 29, 23, 21, 17, 30, 20, 23, 22, 29, 31, 15, 22, 33, 33, 16, 23, 33, 30, 39, 22, 27, 22, 24, 26, 31, 29, 17, 30, 19, 11, 31, 27, 36, 24, 17, 17, 32, 13, 24, 18, 16, 20, 22, 26, 31, 33, 20, 23, 22, 23, 37, 29, 13, 29, 25, 18, 33, 31, 29, 13, 26, 25, 22, 18, 18, 26, 18, 11, 15, 10, 26, 31, 10, 30, 27, 30, 28, 32, 28, 27, 30, 22, 36, 16, 15, 33, 23, 18, 28, 22, 19, 33, 20, 21, 21, 42, 21, 18, 21, 23, 22, 16, 20, 14, 15, 18, 37, 16, 31, 28, 27, 23, 26, 19, 19, 23, 20, 15, 13, 27, 24, 15, 19, 14, 21, 31, 26, 20, 22, 13, 30, 15, 23, 17, 12, 32, 23, 33, 19, 29, 22, 22, 28, 30, 27, 24, 25, 13, 24, 23, 19, 30, 30, 22, 27, 26, 25, 19, 22, 33, 22, 16, 14, 9, 29, 32, 20, 16, 22, 14, 29, 23, 23, 31, 14, 18, 24, 21, 18, 23, 28, 25, 16, 18, 25, 11, 18, 21, 24, 23, 24, 25, 20, 22, 8, 28, 32, 24, 22, 19, 27, 23, 17, 13, 34, 15, 23, 17, 24, 17, 17, 26, 24, 21, 25, 22, 32, 27, 26, 24, 18, 18, 19, 16, 28, 36, 32, 35, 17, 18, 16, 28, 16, 12, 31, 19, 20, 18, 11, 24, 23, 23, 22, 18, 31, 25, 20, 21, 11, 14, 24, 20, 20, 18, 17, 28, 22, 14, 25, 15, 20, 24, 14, 23, 19, 26, 17, 22, 18, 20, 17, 18, 19, 17, 39, 18, 36, 22, 30, 14, 19, 28, 20, 19, 26, 27, 15, 30, 25, 20, 22, 18, 29, 20, 18, 18, 33, 19, 14, 12, 13, 26, 19, 19, 16, 22, 17, 20, 21, 19, 9, 14, 20, 20, 14, 16, 16, 28, 18, 20, 19, 13, 21, 11, 15, 13, 24, 21, 29, 15, 25, 21, 22, 19, 20, 18, 13, 18, 24, 14, 18, 27, 17, 17, 16, 16, 20, 16, 23, 18, 18, 13, 22, 19, 25, 26, 12, 18, 30, 22, 17, 12, 26, 17, 24, 25, 11, 24, 25, 14, 25, 20, 10, 24, 19, 6, 17, 20, 15, 27, 25, 27, 15, 29, 16, 27, 22, 20, 22, 17, 11, 39, 20, 22, 23, 23, 20, 13, 22, 30, 23, 23, 18, 11, 22, 17, 12, 16, 26, 16, 27, 13, 22, 17, 21, 14, 39, 21, 23, 28, 29, 14, 21, 25, 16, 22, 21, 14, 20, 25, 21, 22, 20, 11, 12, 23, 26, 24, 20, 17, 18, 23, 37, 20, 17, 24, 33, 17, 22, 24, 14, 20, 15, 9, 14, 36, 21, 17, 21, 16, 10, 14, 14, 13, 19, 18, 20, 12, 21, 20, 20, 22, 15, 21, 18, 26, 16, 12, 16, 14, 17, 16, 17, 18, 15, 29, 15, 20, 20, 29, 19, 25, 17, 19, 19, 20, 25, 16, 28, 19, 12, 20, 29, 25, 12, 19, 14, 18, 20, 27, 18, 17, 24, 19, 10, 20, 20, 29, 17, 9, 17, 19, 13, 18, 5, 13, 19, 10, 11, 18, 33, 14, 18, 16, 19, 13, 9, 20, 25, 22, 14, 13, 16, 10, 12, 17, 26, 10, 24, 14, 13, 24, 13, 21, 17, 14, 14, 20, 26, 22, 12, 25, 25, 12, 20, 15, 24, 21, 33, 25, 13, 22, 19, 19, 27, 31, 20, 26, 22, 17, 20, 13, 13, 21, 12, 13, 12, 18, 14, 13, 26, 16, 30, 9, 27, 16, 11, 13, 20, 8, 16, 23, 17, 8, 21, 17, 21, 13, 15, 16, 13, 12, 14, 15, 13, 18, 15, 26, 11, 16, 24, 17, 14, 27, 14, 17, 25, 15, 10, 18, 20, 18, 17, 20, 20, 14, 7, 19, 18, 19, 15, 15, 18, 13, 12, 24, 20, 17, 16, 18, 19, 13, 13, 18, 8, 16, 16, 15, 30, 13, 18, 10, 26, 18, 13, 10, 16, 7, 15, 26, 23, 15, 12, 16, 7, 14, 19, 19, 13, 16, 27, 21, 39, 17, 21, 17, 15, 20, 16, 11, 17, 20, 12, 16, 15, 15, 21, 23, 5, 21, 11, 20, 16, 19, 15, 23, 12, 26, 15, 22, 13, 18, 22, 17, 22, 15, 19, 23, 12, 13, 16, 11, 19, 16, 21, 14, 20, 14, 17, 17, 17, 15, 20, 8, 17, 19, 19, 23, 19, 16, 14, 15, 7, 11, 19, 32, 26, 17, 24, 11, 8, 19, 19, 20, 19, 12, 13] }, { "type": "integer", "attributes": {}, "value": [6, 1, 2, 7, 1, 7, 9, 3, 4, 0, 11, 8, 5, 8, 3, 2, 4, 1, 1, 6, 11, 11, 6, 5, 16, 0, 9, 9, 4, 6, 5, 1, 4, 5, 9, 8, 3, 3, 1, 6, 7, 4, 7, 8, 4, 6, 4, 6, 0, 2, 4, 3, 3, 8, 0, 11, 6, 2, 4, 7, 2, 7, 5, 5, 10, 9, 3, 10, 5, 7, 3, 7, 12, 4, 1, 7, 16, 7, 0, 6, 10, 0, 8, 3, 19, 12, 2, 4, 3, 6, 12, 7, 10, 16, 8, 4, 18, 9, 3, 1, 1, 6, 3, 0, 2, 4, 4, 5, 5, 7, 8, 20, 2, 2, 5, 17, 6, 5, 10, 11, 0, 0, 5, 4, 3, 3, 6, 3, 3, 0, 2, 1, 8, 4, 0, 1, 4, 14, 14, 7, 8, 7, 8, 10, 12, 4, 12, 5, 5, 2, 9, 4, 1, 5, 8, 13, 10, 15, 3, 0, 6, 6, 2, 2, 10, 11, 5, 6, 4, 1, 0, 10, 0, 10, 1, 12, 6, 6, 8, 12, 11, 10, 6, 8, 10, 8, 9, 6, 12, 18, 8, 5, 6, 19, 6, 7, 6, 15, 16, 15, 12, 19, 10, 16, 23, 22, 17, 23, 21, 18, 17, 34, 33, 26, 35, 33, 24, 32, 37, 22, 38, 37, 42, 30, 37, 38, 45, 54, 67, 46, 60, 50, 76, 63, 60, 67, 68, 102, 85, 79, 92, 88, 92, 86, 113, 103, 119, 96, 92, 78] }, { "type": "integer", "attributes": {}, "value": [5834, 5196, 4556, 3851, 3307, 2817, 2385, 2101, 1959, 1682, 1489, 1265, 1070, 979, 834, 819, 713, 716, 552, 510, 439, 420, 396, 385, 292, 268, 298, 240, 245, 218, 231, 202, 206, 145, 167, 185, 166, 162, 133, 127, 115, 129, 112, 135, 106, 127, 93, 86, 98, 106, 120, 89, 81, 71, 85, 90, 94, 72, 62, 70, 92, 82, 92, 55, 66, 78, 68, 73, 63, 64, 72, 72, 69, 52, 59, 71, 70, 52, 71, 56, 67, 63, 82, 67, 51, 50, 54, 77, 71, 64, 74, 60, 58, 61, 49, 47, 45, 73, 46, 74, 53, 51, 62, 50, 69, 59, 84, 42, 63, 56, 48, 52, 49, 43, 65, 42, 54, 41, 42, 58, 52, 67, 48, 55, 47, 51, 60, 36, 47, 40, 43, 44, 37, 45, 49, 36, 49, 53, 53, 48, 43, 40, 42, 46, 45, 34, 42, 32, 38, 34, 37, 36, 49, 47, 42, 45, 23, 64, 54, 35, 41, 48, 39, 37, 39, 41, 32, 24, 44, 31, 48, 35, 48, 27, 40, 46, 41, 35, 51, 46, 47, 57, 47, 39, 17, 37, 39, 29, 36, 40, 28, 34, 36, 37, 48, 30, 19, 28, 38, 34, 26, 32, 41, 35, 31, 37, 34, 35, 45, 35, 22, 44, 47, 36, 46, 33, 36, 23, 30, 32, 25, 37, 37, 38, 37, 29, 43, 24, 29, 32, 25, 29, 39, 29, 31, 37, 33, 34, 27, 39, 37, 31, 36, 32, 34, 28, 34, 29, 19, 25, 37, 35, 42, 32, 38, 39, 32, 22, 24, 29, 24, 32, 32, 33, 24, 31, 30, 20, 39, 37, 28, 27, 32, 45, 36, 29, 36, 10, 25, 34, 35, 26, 32, 29, 35, 26, 30, 38, 28, 31, 32, 40, 26, 32, 33, 23, 34, 26, 60, 42, 36, 30, 28, 37, 29, 30, 30, 24, 12, 21, 44, 26, 29, 28, 27, 32, 39, 25, 17, 23, 24, 30, 26, 24, 34, 33, 27, 36, 32, 34, 34, 32, 19, 31, 27, 29, 31, 35, 21, 28, 23, 25, 37, 26, 28, 30, 31, 21, 33, 26, 21, 25, 33, 28, 29, 20, 32, 20, 41, 30, 20, 24, 29, 46, 34, 26, 23, 23, 20, 46, 23, 20, 13, 26, 29, 32, 27, 37, 37, 16, 33, 39, 33, 19, 34, 28, 29, 20, 21, 13, 16, 23, 32, 26, 30, 26, 22, 22, 18, 15, 23, 27, 28, 20, 34, 29, 27, 30, 26, 24, 21, 29, 33, 17, 37, 27, 37, 30, 34, 20, 31, 27, 16, 24, 26, 25, 26, 27, 28, 29, 25, 22, 31, 20, 24, 27, 34, 27, 27, 18, 16, 21, 19, 16, 25, 33, 15, 32, 20, 39, 15, 32, 34, 33, 19, 19, 23, 15, 6, 13, 25, 31, 23, 27, 40, 20, 20, 23, 31, 30, 28, 22, 20, 24, 32, 18, 24, 27, 31, 21, 22, 23, 22, 22, 23, 26, 24, 26, 19, 30, 22, 18, 32, 20, 22, 24, 39, 31, 12, 26, 32, 18, 25, 20, 30, 26, 16, 17, 37, 31, 17, 21, 24, 21, 35, 21, 23, 27, 28, 18, 22, 32, 28, 22, 28, 10, 32, 37, 23, 28, 21, 14, 21, 8, 16, 26, 33, 17, 21, 12, 19, 35, 25, 34, 26, 16, 33, 23, 28, 18, 22, 19, 15, 22, 27, 23, 30, 34, 18, 18, 24, 29, 21, 28, 26, 9, 16, 21, 18, 17, 21, 22, 29, 30, 28, 28, 21, 30, 35, 18, 9, 22, 24, 20, 20, 20, 33, 18, 15, 23, 25, 23, 20, 28, 16, 31, 23, 30, 31, 27, 20, 29, 24, 16, 23, 19, 27, 18, 21, 31, 25, 26, 27, 23, 25, 23, 24, 39, 17, 27, 18, 18, 17, 17, 16, 16, 21, 20, 31, 23, 24, 18, 25, 33, 21, 14, 27, 12, 15, 28, 17, 34, 14, 15, 24, 19, 12, 17, 43, 24, 24, 23, 26, 26, 25, 26, 24, 16, 27, 28, 24, 19, 24, 22, 21, 28, 32, 18, 17, 23, 30, 12, 20, 25, 21, 21, 30, 22, 31, 16, 23, 20, 27, 11, 17, 18, 21, 31, 22, 27, 27, 21, 25, 39, 18, 23, 15, 22, 24, 22, 16, 17, 12, 16, 16, 19, 25, 22, 20, 23, 26, 27, 27, 21, 15, 26, 20, 26, 18, 24, 15, 29, 18, 20, 27, 26, 33, 24, 14, 23, 20, 22, 29, 21, 19, 21, 32, 18, 28, 24, 21, 21, 32, 28, 14, 15, 19, 22, 24, 20, 21, 10, 13, 23, 8, 22, 25, 32, 19, 11, 11, 21, 19, 18, 18, 28, 27, 33, 17, 21, 24, 21, 21, 21, 18, 28, 24, 23, 15, 17, 16, 16, 17, 31, 15, 13, 23, 26, 27, 25, 24, 18, 16, 30, 19, 23, 15, 25, 24, 27, 15, 12, 21, 18, 21, 28, 25, 31, 18, 21, 19, 16, 24, 14, 19, 24, 16, 28, 19, 14, 11, 19, 11, 22, 20, 22, 11, 23, 23, 12, 22, 21, 28, 17, 26, 9, 11, 21, 14, 21, 22, 18, 13, 25, 19, 19, 15, 14, 20, 25, 23, 16, 23, 32, 26, 20, 33, 25, 25, 24, 24, 29, 18, 20, 36, 30, 28, 17, 17, 25, 31, 21, 22, 27, 13, 23, 13, 22, 16, 20, 21, 28, 33, 17, 11, 14, 15, 11, 22, 17, 17, 23, 19, 20, 15, 20, 21, 19, 25, 18, 19, 11, 23, 19, 18, 28, 19, 15, 14, 15, 20, 23, 20, 22, 21, 30, 18, 32, 21, 17, 9, 23, 17, 18, 20, 12, 18, 20, 20, 16, 29, 21, 10, 18, 11, 13, 23, 23, 23, 12, 18, 22, 24, 18, 14, 16, 20, 24, 35, 10, 30, 20, 32, 18, 11, 13, 18, 18, 15, 20, 14, 25, 34, 10, 11, 12, 21, 18, 15, 15, 23, 16, 20, 12, 19, 35, 19, 21, 20, 14, 22, 17, 25, 18, 15, 24, 20, 16, 19, 16, 14, 10, 15, 16, 19, 22, 13, 20, 18, 23] }, { "type": "integer", "attributes": {}, "value": [2, 5, 16, 8, 11, 2, 9, 4, 8, 6, 6, 3, 6, 4, 5, 3, 3, 9, 4, 2, 5, 7, 12, 12, 2, 3, 12, 7, 1, 7, 4, 3, 2, 6, 13, 3, 6, 9, 9, 9, 6, 6, 13, 6, 2, 6, 7, 4, 9, 2, 9, 7, 4, 6, 5, 0, 15, 2, 2, 7, 16, 6, 1, 3, 4, 5, 4, 8, 12, 4, 4, 6, 22, 14, 3, 8, 7, 7, 8, 3, 13, 8, 15, 5, 13, 5, 9, 11, 3, 2, 12, 6, 25, 2, 5, 1, 9, 4, 9, 6, 5, 6, 2, 3, 2, 3, 5, 9, 0, 0, 11, 8, 5, 4, 0, 13, 6, 3, 3, 6, 6, 4, 8, 4, 3, 10, 6, 6, 0, 9, 2, 1, 1, 3, 3, 3, 3, 5, 0, 5, 20, 7, 6, 0, 7, 1, 7, 2, 10, 3, 3, 4, 6, 8, 1, 4, 7, 6, 2, 2, 5, 6, 6, 3, 7, 7, 0, 6, 7, 6, 15, 12, 4, 5, 14, 5, 4, 2, 9, 10, 3, 18, 6, 4, 9, 9, 11, 11, 7, 7, 9, 10, 13, 2, 14, 12, 12, 24, 20, 5, 8, 13, 4, 10, 9, 18, 17, 20, 18, 16, 25, 28, 17, 30, 29, 19, 25, 23, 22, 34, 27, 25, 19, 23, 54, 22, 45, 58, 32, 47, 44, 54, 39, 54, 54, 54, 65, 60, 53, 67, 78, 67, 85, 50, 91, 75, 86, 96, 79, 59] }, { "type": "integer", "attributes": {}, "value": [3972, 3380, 2803, 2532, 2266, 1838, 1659, 1444, 1294, 1136, 1013, 889, 752, 709, 642, 514, 451, 419, 353, 331, 257, 285, 214, 193, 199, 196, 154, 153, 125, 145, 136, 129, 118, 89, 83, 78, 75, 86, 80, 67, 78, 75, 77, 54, 55, 51, 36, 56, 57, 43, 45, 67, 45, 39, 39, 52, 53, 36, 44, 64, 50, 55, 51, 49, 47, 40, 36, 45, 31, 45, 35, 32, 42, 24, 39, 42, 37, 46, 23, 20, 42, 43, 35, 26, 31, 32, 34, 38, 54, 47, 48, 24, 40, 40, 39, 20, 34, 36, 48, 28, 42, 29, 34, 22, 23, 24, 30, 28, 36, 33, 39, 25, 27, 32, 16, 32, 34, 45, 28, 30, 30, 31, 41, 32, 47, 34, 33, 21, 37, 20, 24, 38, 28, 17, 29, 34, 39, 25, 20, 25, 18, 38, 33, 35, 27, 30, 21, 29, 33, 35, 25, 30, 26, 26, 30, 23, 18, 25, 27, 24, 26, 26, 31, 28, 33, 27, 27, 23, 19, 31, 27, 17, 31, 25, 23, 24, 33, 37, 28, 28, 22, 42, 26, 33, 29, 25, 28, 21, 26, 30, 34, 34, 27, 27, 34, 22, 51, 25, 20, 21, 39, 26, 22, 23, 15, 23, 33, 29, 21, 36, 28, 25, 24, 26, 25, 30, 24, 27, 30, 35, 26, 19, 18, 13, 21, 22, 21, 25, 29, 22, 33, 27, 17, 17, 28, 15, 23, 33, 21, 26, 30, 24, 25, 24, 23, 27, 18, 16, 22, 27, 14, 25, 24, 26, 23, 29, 25, 19, 27, 19, 20, 22, 28, 17, 25, 22, 25, 27, 26, 32, 22, 30, 20, 32, 22, 8, 21, 17, 22, 24, 25, 24, 40, 31, 15, 16, 24, 32, 30, 26, 21, 23, 27, 33, 15, 39, 28, 20, 23, 25, 20, 29, 29, 32, 17, 26, 25, 17, 26, 26, 16, 27, 22, 23, 31, 15, 18, 27, 21, 24, 13, 25, 34, 28, 24, 15, 20, 24, 9, 24, 28, 27, 18, 25, 22, 15, 25, 30, 27, 12, 30, 25, 20, 25, 27, 16, 36, 32, 26, 9, 25, 18, 21, 16, 21, 22, 19, 14, 20, 20, 23, 28, 18, 20, 25, 30, 29, 13, 24, 20, 27, 25, 9, 12, 18, 19, 20, 19, 25, 13, 19, 19, 21, 24, 19, 18, 17, 14, 20, 12, 23, 16, 16, 29, 20, 29, 28, 23, 31, 29, 22, 31, 23, 24, 25, 21, 16, 9, 19, 31, 24, 14, 23, 23, 23, 24, 13, 21, 18, 25, 18, 26, 41, 14, 28, 25, 15, 16, 10, 13, 19, 20, 26, 16, 24, 18, 31, 16, 16, 25, 31, 20, 21, 15, 26, 21, 31, 30, 24, 11, 18, 19, 24, 18, 19, 21, 20, 26, 25, 21, 15, 16, 13, 24, 21, 14, 10, 31, 26, 18, 31, 26, 22, 25, 12, 15, 19, 15, 27, 19, 18, 21, 17, 26, 19, 19, 16, 11, 24, 17, 24, 17, 28, 23, 20, 22, 35, 15, 31, 24, 24, 20, 27, 19, 21, 32, 29, 24, 23, 13, 13, 21, 17, 15, 21, 21, 19, 28, 26, 22, 20, 12, 24, 23, 25, 12, 26, 19, 16, 22, 13, 15, 18, 21, 20, 29, 21, 11, 21, 18, 11, 7, 27, 10, 15, 27, 23, 19, 17, 17, 12, 35, 24, 13, 16, 14, 15, 20, 16, 23, 22, 25, 12, 18, 22, 20, 12, 28, 15, 19, 20, 15, 20, 29, 15, 12, 25, 23, 17, 17, 10, 21, 19, 19, 15, 25, 13, 10, 28, 14, 16, 19, 21, 18, 15, 15, 27, 15, 15, 14, 20, 23, 20, 26, 17, 19, 21, 12, 21, 23, 15, 24, 17, 21, 16, 22, 6, 29, 23, 15, 21, 14, 23, 22, 15, 24, 13, 15, 27, 15, 20, 11, 15, 15, 15, 19, 29, 20, 24, 19, 13, 23, 23, 18, 23, 13, 15, 15, 15, 13, 26, 12, 21, 22, 18, 11, 17, 24, 8, 25, 19, 18, 19, 17, 23, 12, 16, 17, 26, 25, 16, 13, 24, 18, 22, 20, 15, 21, 13, 23, 24, 19, 15, 21, 16, 17, 14, 22, 20, 17, 16, 21, 9, 16, 12, 16, 26, 20, 29, 30, 19, 15, 20, 13, 18, 21, 18, 15, 18, 20, 33, 16, 24, 15, 11, 16, 18, 16, 8, 37, 22, 10, 8, 15, 28, 15, 12, 31, 17, 14, 15, 13, 18, 20, 20, 27, 8, 25, 25, 12, 11, 14, 8, 14, 20, 24, 19, 12, 18, 18, 17, 14, 19, 18, 29, 22, 21, 10, 24, 17, 13, 15, 14, 13, 26, 17, 16, 19, 15, 18, 11, 25, 18, 13, 19, 22, 18, 23, 19, 23, 20, 17, 12, 17, 23, 30, 18, 15, 20, 17, 18, 23, 14, 20, 22, 23, 17, 13, 14, 13, 16, 13, 9, 9, 17, 13, 15, 10, 7, 18, 9, 15, 13, 12, 30, 10, 10, 19, 31, 26, 10, 21, 18, 23, 24, 14, 20, 14, 26, 30, 16, 21, 30, 22, 14, 28, 15, 25, 24, 17, 26, 16, 21, 16, 22, 12, 12, 29, 17, 15, 12, 25, 16, 24, 17, 22, 17, 21, 13, 21, 16, 18, 10, 13, 25, 14, 9, 13, 12, 14, 25, 13, 21, 14, 20, 12, 13, 8, 26, 15, 17, 13, 17, 19, 21, 16, 25, 21, 11, 19, 13, 17, 17, 17, 16, 22, 15, 29, 13, 12, 17, 18, 12, 13, 15, 17, 19, 16, 16, 14, 16, 18, 12, 15, 18, 21, 17, 20, 30, 7, 46, 24, 29, 20, 15, 14, 19, 15, 11, 17, 25, 15, 18, 31, 12, 18, 26, 24, 26, 17, 10, 27, 7, 9, 33, 9, 20, 21, 12, 16, 16, 20, 23, 20, 32, 17, 17, 19, 5, 14, 24, 10, 16, 22, 17, 11, 17, 19, 13, 20, 17, 15, 9, 21, 22, 11, 13, 20, 12, 16, 16, 9, 20, 19, 16, 18, 10, 18, 10, 10, 13, 4, 19, 14, 15, 13, 14, 22, 30, 22] }, { "type": "integer", "attributes": {}, "value": [5, 8, 3, 11, 10, 4, 3, 4, 2, 30, 3, 13, 3, 7, 5, 8, 4, 2, 6, 3, 3, 7, 7, 11, 10, 5, 10, 0, 10, 17, 1, 2, 2, 13, 11, 7, 1, 2, 3, 2, 5, 10, 9, 4, 5, 13, 7, 2, 2, 3, 6, 9, 1, 3, 3, 5, 6, 4, 7, 2, 3, 13, 2, 3, 7, 1, 4, 7, 5, 3, 4, 2, 4, 6, 3, 5, 4, 7, 8, 6, 1, 3, 5, 2, 9, 21, 11, 3, 1, 9, 5, 8, 11, 3, 4, 1, 5, 3, 3, 3, 6, 3, 3, 4, 7, 8, 3, 5, 3, 12, 7, 2, 2, 2, 4, 8, 9, 8, 3, 9, 6, 4, 6, 10, 7, 2, 5, 6, 2, 3, 14, 4, 2, 7, 11, 12, 3, 5, 1, 1, 5, 4, 12, 15, 5, 5, 8, 1, 11, 19, 3, 5, 6, 8, 9, 2, 4, 4, 7, 4, 4, 2, 7, 8, 11, 4, 6, 4, 6, 5, 8, 6, 7, 4, 6, 15, 10, 7, 5, 3, 15, 14, 7, 9, 5, 7, 19, 21, 10, 12, 30, 15, 11, 7, 9, 7, 11, 12, 16, 25, 12, 10, 27, 16, 18, 15, 31, 22, 30, 29, 53, 33, 32, 31, 32, 27, 31, 31, 41, 52, 39, 36, 34, 52, 45, 43, 46, 43, 53, 66, 48, 59, 72, 70, 76, 64, 67, 78, 58, 81, 94, 92, 99, 106, 101, 91, 101, 96, 103, 69] }, { "type": "integer", "attributes": {}, "value": [5593, 4907, 4377, 3725, 3109, 2787, 2446, 2146, 1855, 1623, 1424, 1275, 1132, 1005, 824, 755, 667, 630, 500, 519, 430, 409, 318, 287, 272, 264, 254, 237, 227, 192, 154, 153, 141, 127, 137, 127, 102, 121, 128, 105, 115, 96, 97, 105, 90, 104, 89, 65, 70, 87, 70, 56, 73, 64, 67, 82, 65, 67, 67, 77, 83, 53, 64, 51, 52, 51, 75, 57, 48, 65, 49, 61, 63, 63, 51, 48, 40, 41, 62, 47, 58, 48, 53, 52, 57, 59, 75, 56, 54, 50, 64, 46, 60, 52, 45, 45, 61, 45, 49, 49, 44, 41, 44, 59, 61, 47, 41, 63, 53, 31, 59, 45, 40, 58, 42, 55, 49, 47, 35, 43, 42, 42, 47, 48, 45, 45, 47, 41, 44, 45, 45, 59, 59, 48, 46, 41, 41, 59, 41, 50, 46, 40, 53, 50, 29, 73, 43, 46, 37, 48, 45, 38, 43, 55, 42, 45, 44, 48, 50, 55, 45, 57, 35, 43, 37, 36, 47, 37, 43, 28, 34, 49, 45, 44, 44, 55, 41, 45, 59, 37, 54, 56, 41, 55, 55, 44, 47, 62, 35, 44, 39, 42, 40, 26, 36, 44, 39, 33, 55, 45, 32, 31, 31, 44, 50, 41, 39, 37, 44, 53, 46, 42, 38, 26, 29, 29, 44, 42, 40, 39, 52, 36, 48, 27, 51, 42, 42, 52, 36, 50, 48, 39, 41, 40, 43, 32, 36, 33, 46, 26, 33, 38, 44, 43, 41, 44, 42, 51, 31, 34, 34, 36, 30, 36, 36, 29, 39, 52, 21, 53, 31, 35, 49, 40, 32, 30, 31, 36, 34, 28, 45, 34, 35, 34, 34, 36, 35, 36, 33, 40, 34, 44, 33, 29, 34, 45, 30, 31, 42, 27, 42, 30, 28, 35, 30, 34, 31, 34, 26, 38, 33, 34, 43, 47, 36, 28, 41, 31, 38, 41, 43, 36, 46, 39, 24, 39, 34, 41, 50, 39, 36, 52, 43, 39, 43, 35, 31, 30, 49, 26, 31, 34, 44, 28, 32, 35, 28, 39, 27, 33, 41, 32, 30, 30, 35, 39, 27, 58, 41, 26, 25, 35, 47, 26, 31, 43, 26, 51, 29, 37, 31, 29, 39, 63, 47, 35, 30, 23, 47, 30, 27, 33, 31, 47, 33, 38, 30, 29, 33, 52, 46, 46, 30, 45, 29, 38, 34, 39, 19, 37, 41, 21, 38, 30, 44, 28, 40, 28, 32, 31, 47, 45, 27, 42, 26, 36, 50, 38, 38, 45, 27, 38, 45, 59, 25, 37, 34, 35, 35, 40, 37, 34, 33, 37, 28, 26, 37, 31, 31, 29, 40, 65, 39, 47, 42, 30, 26, 51, 32, 45, 39, 39, 39, 37, 43, 28, 28, 39, 35, 32, 35, 39, 34, 36, 39, 39, 22, 43, 55, 35, 30, 32, 37, 37, 31, 33, 34, 35, 43, 41, 28, 29, 53, 45, 37, 36, 24, 36, 41, 38, 26, 34, 34, 24, 37, 50, 34, 28, 43, 30, 31, 40, 27, 30, 38, 34, 36, 32, 31, 36, 34, 28, 29, 45, 44, 36, 30, 33, 35, 34, 30, 21, 36, 39, 30, 33, 33, 38, 37, 25, 34, 48, 27, 34, 24, 43, 23, 32, 36, 41, 32, 37, 30, 37, 31, 25, 34, 24, 43, 28, 45, 31, 30, 34, 31, 42, 35, 36, 35, 42, 28, 27, 44, 39, 36, 43, 38, 28, 44, 35, 42, 32, 27, 30, 48, 27, 30, 40, 38, 52, 39, 38, 32, 32, 33, 65, 36, 46, 35, 45, 35, 38, 31, 24, 32, 37, 35, 36, 33, 25, 38, 24, 45, 34, 20, 35, 41, 36, 27, 26, 30, 38, 33, 31, 28, 22, 30, 40, 28, 26, 30, 35, 61, 40, 42, 33, 29, 38, 24, 35, 27, 41, 39, 27, 29, 36, 30, 33, 29, 24, 27, 30, 42, 32, 35, 44, 40, 21, 34, 36, 34, 24, 32, 43, 23, 28, 39, 33, 26, 33, 41, 31, 36, 33, 22, 29, 31, 43, 18, 28, 31, 36, 29, 31, 30, 26, 23, 50, 25, 22, 36, 24, 21, 24, 38, 37, 32, 34, 34, 31, 35, 26, 29, 39, 29, 29, 27, 37, 34, 36, 32, 43, 37, 43, 25, 26, 30, 32, 30, 28, 43, 42, 24, 38, 24, 27, 40, 26, 30, 15, 21, 32, 39, 25, 24, 29, 12, 29, 22, 27, 31, 29, 19, 38, 24, 27, 33, 33, 37, 22, 18, 27, 47, 32, 36, 32, 35, 29, 36, 26, 38, 54, 32, 37, 38, 24, 21, 32, 23, 20, 39, 29, 28, 31, 30, 27, 27, 20, 29, 35, 32, 32, 24, 25, 24, 30, 34, 10, 32, 26, 43, 41, 40, 29, 38, 33, 32, 32, 32, 32, 33, 27, 35, 30, 32, 35, 28, 25, 24, 27, 21, 38, 31, 34, 28, 20, 25, 29, 34, 35, 27, 23, 14, 21, 40, 33, 47, 34, 25, 26, 24, 39, 26, 43, 39, 36, 26, 31, 43, 26, 42, 22, 21, 32, 23, 24, 25, 33, 23, 33, 30, 35, 27, 26, 28, 42, 38, 33, 35, 38, 20, 32, 21, 32, 27, 26, 23, 22, 30, 21, 23, 31, 47, 36, 25, 30, 36, 41, 37, 26, 24, 30, 32, 28, 28, 28, 20, 29, 46, 34, 25, 29, 25, 24, 31, 36, 26, 42, 30, 32, 22, 28, 30, 15, 30, 32, 37, 30, 23, 36, 39, 27, 29, 30, 34, 40, 47, 25, 30, 40, 26, 25, 27, 28, 34, 40, 30, 36, 38, 22, 39, 27, 28, 39, 20, 33, 42, 29, 26, 31, 19, 24, 36, 39, 36, 30, 36, 23, 25, 26, 28, 37, 27, 28, 24, 26, 29, 43, 29, 28, 33, 31, 26, 23, 35, 46, 31, 31, 30, 35, 37, 24, 22, 29, 50, 24, 36, 23, 24, 48, 17, 37, 30, 30, 30, 34, 26, 29, 25, 24, 24, 31, 26, 34, 17, 23, 27, 30, 31, 38, 29, 32, 35, 23, 35, 36, 40, 30, 27, 30, 31, 18, 21, 27, 34, 28, 35, 33, 32, 34] }, { "type": "integer", "attributes": {}, "value": [3, 11, 8, 2, 3, 11, 13, 2, 1, 6, 6, 5, 2, 4, 7, 2, 7, 4, 1, 4, 2, 4, 12, 5, 9, 4, 2, 7, 19, 6, 14, 7, 2, 4, 2, 4, 9, 1, 5, 4, 3, 1, 2, 0, 2, 4, 4, 2, 4, 1, 14, 7, 3, 0, 11, 4, 3, 10, 8, 10, 6, 2, 10, 2, 7, 4, 9, 2, 7, 7, 7, 5, 5, 9, 11, 11, 4, 5, 11, 9, 7, 7, 1, 10, 6, 1, 11, 5, 7, 6, 2, 7, 8, 6, 5, 20, 2, 11, 3, 8, 2, 7, 5, 3, 20, 0, 6, 4, 5, 3, 2, 13, 5, 3, 7, 10, 8, 1, 7, 6, 13, 4, 7, 0, 19, 13, 11, 5, 5, 7, 10, 2, 9, 3, 10, 3, 7, 9, 6, 5, 1, 6, 3, 12, 5, 3, 14, 12, 6, 12, 3, 6, 4, 5, 5, 3, 11, 3, 1, 5, 4, 12, 2, 0, 3, 25, 5, 10, 9, 2, 10, 4, 1, 21, 20, 7, 8, 1, 4, 9, 17, 4, 8, 4, 3, 8, 10, 10, 20, 10, 8, 3, 9, 7, 5, 6, 6, 10, 9, 22, 1, 9, 11, 9, 18, 11, 28, 5, 15, 15, 20, 15, 11, 38, 19, 29, 30, 19, 37, 28, 42, 40, 26, 34, 30, 23, 43, 45, 28, 39, 37, 37, 48, 39, 37, 64, 51, 65, 61, 53, 62, 63, 60, 84, 49, 71, 57, 68, 80, 46] }, { "type": "integer", "attributes": {}, "value": [2681, 2362, 1982, 1811, 1505, 1268, 1168, 1057, 885, 758, 655, 616, 545, 450, 452, 339, 321, 288, 220, 237, 195, 189, 197, 132, 132, 126, 106, 91, 91, 101, 91, 62, 58, 57, 53, 41, 55, 63, 54, 32, 43, 34, 42, 46, 36, 42, 44, 38, 16, 38, 23, 35, 26, 24, 33, 21, 29, 25, 28, 27, 27, 23, 19, 36, 30, 32, 24, 26, 19, 28, 23, 22, 31, 20, 28, 32, 20, 28, 27, 39, 14, 19, 27, 14, 9, 33, 29, 21, 17, 26, 17, 16, 19, 26, 16, 21, 31, 23, 33, 16, 21, 13, 23, 20, 22, 25, 25, 23, 18, 23, 20, 16, 15, 20, 31, 24, 15, 18, 30, 14, 22, 26, 15, 29, 28, 16, 16, 19, 17, 32, 22, 9, 12, 13, 15, 21, 21, 22, 13, 20, 15, 14, 22, 12, 22, 25, 16, 14, 29, 19, 22, 17, 23, 26, 12, 20, 17, 24, 17, 18, 15, 13, 22, 20, 22, 14, 26, 23, 17, 16, 18, 13, 28, 21, 21, 25, 13, 16, 14, 28, 20, 16, 13, 12, 27, 14, 32, 19, 23, 15, 19, 15, 16, 15, 16, 21, 18, 7, 12, 14, 13, 10, 21, 24, 23, 15, 14, 14, 10, 12, 21, 24, 20, 16, 14, 21, 9, 14, 19, 23, 9, 19, 24, 12, 12, 17, 18, 13, 10, 15, 16, 23, 17, 31, 19, 13, 23, 25, 12, 12, 11, 10, 19, 16, 10, 8, 14, 21, 10, 17, 15, 13, 28, 16, 17, 19, 16, 18, 8, 25, 13, 20, 10, 16, 22, 21, 12, 22, 12, 26, 20, 12, 28, 12, 19, 13, 18, 17, 10, 22, 20, 17, 13, 15, 25, 16, 14, 19, 20, 19, 21, 17, 12, 19, 20, 18, 11, 20, 12, 27, 17, 22, 15, 22, 25, 13, 11, 16, 17, 18, 17, 15, 24, 14, 22, 16, 20, 13, 19, 16, 37, 26, 21, 20, 15, 19, 12, 15, 8, 17, 21, 22, 14, 14, 19, 15, 20, 22, 10, 30, 19, 24, 17, 10, 24, 14, 26, 28, 18, 15, 29, 15, 15, 13, 14, 11, 14, 18, 11, 11, 27, 13, 19, 25, 16, 22, 21, 26, 17, 13, 22, 16, 16, 20, 18, 16, 26, 16, 13, 13, 11, 11, 14, 13, 17, 22, 11, 15, 16, 19, 22, 10, 14, 22, 13, 24, 15, 18, 13, 10, 11, 10, 11, 13, 12, 16, 20, 12, 11, 18, 13, 16, 18, 16, 17, 26, 12, 15, 15, 14, 14, 19, 15, 26, 16, 14, 11, 19, 17, 15, 15, 19, 14, 15, 13, 13, 14, 21, 18, 11, 25, 5, 22, 16, 13, 14, 8, 18, 7, 11, 11, 17, 12, 17, 7, 19, 12, 20, 19, 11, 8, 14, 10, 12, 12, 10, 16, 14, 13, 21, 12, 17, 6, 12, 14, 14, 20, 26, 29, 16, 16, 11, 16, 28, 15, 18, 13, 9, 19, 24, 6, 16, 9, 11, 13, 15, 16, 20, 23, 9, 12, 16, 25, 24, 22, 9, 13, 5, 15, 11, 12, 15, 10, 13, 9, 14, 9, 19, 11, 14, 19, 8, 10, 9, 11, 10, 10, 14, 13, 10, 16, 12, 14, 26, 13, 26, 13, 21, 18, 15, 17, 11, 19, 9, 16, 17, 17, 20, 10, 12, 14, 21, 11, 21, 23, 14, 6, 15, 17, 26, 9, 25, 23, 10, 9, 24, 17, 12, 10, 18, 12, 19, 15, 19, 14, 16, 7, 12, 14, 10, 8, 13, 13, 13, 18, 19, 10, 21, 10, 13, 10, 7, 14, 21, 15, 20, 15, 7, 13, 15, 12, 16, 4, 11, 4, 10, 14, 8, 14, 5, 7, 14, 15, 21, 13, 14, 15, 9, 13, 10, 8, 14, 12, 15, 17, 14, 11, 21, 8, 13, 8, 19, 18, 16, 12, 20, 10, 9, 11, 13, 19, 10, 16, 9, 18, 10, 15, 15, 8, 9, 12, 17, 9, 16, 18, 16, 19, 14, 16, 16, 17, 9, 18, 18, 9, 20, 5, 11, 10, 13, 9, 19, 16, 8, 14, 9, 15, 10, 12, 15, 13, 20, 10, 10, 16, 12, 13, 13, 16, 22, 17, 9, 6, 12, 20, 18, 8, 13, 14, 11, 15, 13, 16, 9, 16, 10, 24, 12, 12, 11, 13, 13, 14, 8, 11, 3, 13, 10, 8, 23, 13, 13, 15, 18, 14, 25, 9, 19, 24, 17, 14, 19, 16, 17, 18, 13, 10, 18, 7, 9, 15, 16, 24, 13, 13, 14, 20, 24, 6, 20, 13, 15, 17, 10, 18, 10, 7, 10, 15, 8, 14, 18, 6, 17, 17, 15, 17, 11, 20, 9, 16, 10, 22, 12, 13, 13, 23, 13, 15, 19, 22, 18, 12, 8, 19, 13, 10, 10, 16, 19, 9, 13, 9, 11, 12, 7, 20, 9, 12, 14, 10, 19, 17, 10, 10, 16, 17, 20, 10, 13, 6, 8, 4, 12, 16, 26, 16, 9, 21, 9, 11, 8, 17, 19, 22, 5, 16, 7, 7, 12, 18, 20, 9, 10, 28, 15, 11, 13, 9, 14, 15, 16, 6, 9, 11, 9, 8, 14, 10, 15, 9, 14, 9, 13, 14, 18, 21, 16, 6, 14, 9, 10, 10, 32, 15, 9, 10, 7, 14, 13, 16, 6, 12, 13, 12, 5, 17, 25, 13, 14, 12, 21, 10, 16, 21, 14, 14, 9, 11, 13, 18, 15, 8, 12, 17, 15, 15, 16, 6, 18, 16, 11, 15, 12, 10, 11, 20, 23, 13, 23, 8, 15, 7, 8, 13, 16, 9, 14, 16, 9, 19, 11, 15, 8, 20, 15, 13, 15, 15, 13, 8, 13, 10, 12, 13, 9, 8, 9, 15, 10, 16, 14, 19, 11, 12, 9, 3, 15, 6, 6, 20, 12, 18, 19, 6, 19, 11, 12, 21, 14, 11, 15, 9, 19, 16, 13, 12, 20, 5, 13, 15, 12, 15, 10, 17, 18, 11, 12, 14, 7, 9, 22, 8, 10, 24, 25, 7, 13, 11, 11, 10, 11, 6, 10, 10, 16, 9, 10, 6, 14] }, { "type": "integer", "attributes": {}, "value": [19, 3, 3, 5, 4, 13, 13, 3, 10, 4, 1, 4, 1, 3, 18, 1, 4, 4, 6, 6, 5, 4, 2, 8, 9, 6, 6, 12, 6, 10, 3, 4, 2, 4, 12, 6, 10, 1, 10, 5, 6, 3, 5, 8, 4, 6, 3, 3, 5, 11, 5, 10, 7, 4, 1, 16, 4, 3, 8, 10, 4, 8, 1, 3, 8, 4, 8, 2, 8, 2, 14, 2, 5, 5, 8, 9, 7, 7, 6, 9, 4, 8, 14, 12, 5, 6, 4, 4, 2, 4, 3, 9, 11, 8, 13, 2, 9, 1, 3, 5, 9, 3, 3, 7, 1, 4, 3, 6, 1, 8, 6, 16, 2, 10, 9, 9, 7, 4, 2, 3, 17, 8, 2, 3, 3, 26, 2, 4, 5, 4, 7, 8, 0, 1, 11, 5, 10, 5, 0, 4, 6, 6, 3, 11, 5, 3, 5, 4, 5, 3, 3, 5, 5, 10, 14, 2, 6, 1, 0, 9, 2, 8, 2, 14, 6, 9, 4, 20, 3, 5, 6, 6, 25, 8, 6, 2, 7, 11, 4, 1, 7, 9, 3, 13, 10, 4, 9, 13, 4, 8, 19, 6, 10, 11, 8, 27, 15, 21, 8, 17, 8, 7, 15, 20, 11, 22, 17, 24, 20, 8, 20, 20, 21, 16, 18, 25, 24, 29, 21, 39, 42, 46, 39, 31, 35, 54, 40, 32, 41, 33, 51, 52, 48, 47, 45, 64, 84, 73, 53, 68, 92, 92, 71, 82, 101, 54, 95, 101, 101, 44] }, { "type": "integer", "attributes": {}, "value": [6320, 5726, 4829, 4303, 3598, 3209, 2749, 2439, 2147, 1899, 1682, 1481, 1358, 1184, 1050, 901, 802, 767, 744, 583, 519, 499, 442, 414, 392, 351, 345, 299, 260, 248, 213, 189, 186, 182, 175, 169, 166, 153, 136, 127, 110, 137, 127, 102, 114, 95, 61, 115, 102, 87, 74, 69, 82, 56, 74, 64, 70, 51, 62, 52, 66, 79, 55, 58, 60, 62, 55, 55, 49, 61, 56, 58, 41, 52, 47, 59, 38, 33, 23, 38, 39, 60, 42, 34, 47, 23, 26, 38, 51, 31, 32, 39, 33, 36, 29, 38, 36, 48, 33, 47, 32, 37, 36, 36, 26, 40, 42, 41, 39, 38, 38, 26, 29, 33, 23, 32, 29, 22, 41, 27, 28, 30, 37, 29, 26, 35, 25, 35, 40, 29, 34, 34, 28, 32, 18, 29, 32, 20, 29, 28, 32, 27, 36, 21, 25, 26, 26, 28, 26, 24, 24, 55, 24, 38, 34, 17, 30, 32, 27, 31, 29, 24, 25, 32, 33, 30, 34, 26, 44, 31, 24, 31, 20, 19, 31, 33, 23, 30, 24, 33, 23, 23, 39, 15, 28, 28, 27, 18, 31, 24, 20, 31, 34, 19, 24, 20, 40, 28, 28, 37, 21, 39, 27, 29, 18, 32, 25, 34, 25, 25, 27, 30, 25, 31, 15, 20, 27, 22, 17, 23, 17, 26, 14, 24, 26, 33, 20, 19, 21, 29, 29, 21, 23, 25, 31, 22, 22, 22, 15, 27, 30, 28, 18, 30, 41, 22, 16, 20, 18, 18, 20, 24, 21, 23, 22, 27, 30, 19, 26, 29, 28, 21, 22, 29, 21, 24, 24, 18, 24, 19, 22, 24, 21, 28, 28, 28, 28, 17, 13, 28, 19, 23, 28, 19, 27, 22, 19, 21, 18, 19, 20, 20, 34, 15, 29, 23, 21, 19, 16, 26, 24, 29, 21, 20, 27, 24, 17, 34, 27, 14, 19, 23, 28, 12, 26, 18, 32, 26, 30, 20, 13, 28, 20, 25, 24, 16, 17, 23, 12, 19, 16, 37, 15, 26, 23, 26, 15, 22, 20, 19, 30, 17, 25, 29, 17, 29, 21, 18, 18, 19, 26, 22, 30, 17, 25, 25, 17, 28, 22, 19, 30, 14, 24, 22, 27, 16, 34, 31, 25, 15, 26, 23, 20, 14, 44, 28, 22, 15, 23, 19, 30, 20, 18, 26, 25, 11, 21, 22, 17, 23, 24, 12, 20, 31, 30, 21, 17, 18, 25, 29, 12, 23, 10, 34, 21, 20, 14, 13, 24, 21, 19, 15, 17, 22, 21, 40, 21, 26, 22, 19, 14, 17, 22, 23, 27, 15, 32, 27, 25, 15, 14, 18, 22, 22, 26, 17, 18, 19, 34, 34, 23, 21, 18, 17, 21, 26, 22, 19, 15, 19, 14, 14, 27, 19, 16, 22, 36, 24, 26, 18, 11, 25, 35, 18, 16, 15, 19, 42, 22, 18, 26, 16, 17, 12, 18, 25, 16, 14, 30, 20, 19, 30, 24, 8, 19, 17, 22, 21, 20, 18, 20, 25, 24, 20, 25, 24, 17, 25, 12, 24, 21, 26, 21, 16, 17, 23, 26, 33, 19, 23, 12, 20, 31, 23, 19, 13, 20, 18, 26, 27, 17, 28, 24, 17, 22, 16, 16, 26, 16, 33, 20, 25, 14, 9, 20, 14, 21, 21, 29, 28, 27, 15, 23, 21, 16, 8, 29, 18, 29, 17, 28, 25, 14, 13, 28, 19, 17, 17, 28, 16, 19, 14, 13, 19, 13, 26, 36, 21, 18, 12, 18, 12, 16, 32, 24, 23, 18, 16, 24, 22, 26, 19, 21, 19, 24, 24, 22, 20, 27, 16, 23, 20, 23, 20, 22, 23, 21, 15, 11, 25, 15, 24, 12, 21, 22, 19, 20, 8, 29, 20, 18, 17, 18, 14, 22, 22, 21, 16, 22, 17, 14, 34, 15, 28, 19, 21, 19, 20, 18, 24, 24, 19, 18, 34, 15, 18, 26, 18, 19, 12, 11, 19, 26, 25, 23, 8, 20, 23, 17, 15, 27, 23, 11, 13, 9, 25, 15, 20, 14, 23, 21, 23, 23, 20, 13, 24, 28, 13, 16, 15, 16, 27, 23, 27, 10, 13, 22, 21, 7, 22, 17, 31, 8, 14, 19, 18, 16, 15, 25, 17, 18, 17, 17, 17, 20, 10, 19, 10, 24, 10, 17, 16, 21, 14, 21, 19, 25, 16, 25, 21, 33, 17, 16, 32, 20, 24, 12, 28, 15, 22, 19, 15, 21, 15, 11, 25, 32, 27, 20, 17, 11, 14, 18, 20, 16, 11, 13, 29, 13, 7, 31, 16, 21, 19, 22, 21, 18, 20, 24, 22, 16, 18, 25, 26, 11, 11, 28, 17, 17, 18, 32, 24, 14, 14, 22, 21, 17, 19, 23, 11, 21, 20, 20, 23, 22, 20, 21, 18, 19, 14, 24, 26, 18, 12, 11, 22, 21, 24, 28, 14, 17, 19, 23, 10, 24, 20, 16, 12, 26, 8, 38, 19, 25, 15, 25, 15, 19, 20, 18, 15, 19, 15, 24, 23, 16, 18, 19, 22, 15, 18, 30, 12, 15, 24, 9, 15, 14, 9, 28, 13, 13, 20, 10, 23, 24, 16, 18, 25, 24, 11, 13, 20, 20, 14, 16, 14, 24, 13, 17, 20, 17, 17, 16, 13, 13, 19, 13, 24, 19, 25, 12, 13, 20, 12, 19, 23, 17, 17, 16, 10, 10, 20, 29, 25, 13, 13, 15, 23, 23, 15, 20, 25, 15, 24, 12, 23, 24, 21, 17, 16, 24, 14, 26, 20, 15, 27, 19, 7, 30, 15, 15, 22, 16, 21, 13, 17, 27, 12, 24, 16, 15, 19, 14, 16, 13, 7, 21, 22, 24, 11, 10, 21, 15, 33, 26, 16, 24, 9, 27, 9, 18, 17, 24, 13, 13, 21, 7, 26, 15, 24, 25, 14, 21, 16, 18, 17, 12, 14, 42, 15, 18, 8, 10, 14, 17, 30, 13, 26, 24, 18, 25, 23, 21, 17, 20, 21, 12, 15, 16, 20, 33, 17, 20, 13, 17, 33, 26, 10, 20, 15, 15, 14, 18, 17, 29, 12, 24, 17, 17, 22, 15, 20, 23, 15, 20, 7, 18, 25, 20, 21] }, { "type": "integer", "attributes": {}, "value": [5, 3, 4, 5, 36, 13, 5, 13, 9, 5, 1, 6, 5, 5, 4, 9, 8, 2, 10, 8, 5, 20, 10, 5, 3, 8, 5, 7, 1, 17, 14, 1, 0, 4, 2, 6, 2, 3, 5, 1, 11, 10, 5, 2, 7, 16, 14, 3, 8, 5, 2, 6, 5, 5, 4, 12, 11, 19, 11, 9, 15, 3, 0, 8, 8, 4, 6, 4, 3, 2, 18, 8, 1, 3, 3, 5, 5, 6, 5, 4, 0, 26, 4, 28, 5, 14, 0, 10, 6, 10, 6, 6, 4, 1, 16, 12, 3, 8, 14, 6, 5, 8, 5, 8, 7, 1, 2, 8, 3, 4, 9, 2, 7, 1, 4, 3, 1, 3, 5, 6, 11, 13, 6, 3, 10, 12, 5, 8, 5, 3, 11, 5, 4, 9, 2, 1, 1, 3, 2, 8, 8, 3, 1, 1, 1, 0, 12, 9, 3, 3, 8, 1, 2, 9, 0, 5, 5, 12, 2, 10, 5, 3, 15, 12, 6, 7, 4, 19, 12, 5, 10, 6, 11, 5, 6, 2, 6, 3, 20, 9, 14, 13, 9, 15, 13, 8, 14, 13, 6, 8, 14, 11, 6, 10, 21, 14, 21, 17, 24, 13, 28, 14, 14, 16, 44, 29, 30, 26, 19, 25, 32, 28, 32, 28, 43, 37, 25, 33, 33, 53, 56, 54, 59, 48, 45, 53, 42, 60, 53, 71, 59, 69, 103, 67, 84, 79, 98, 77, 111, 84, 102, 98, 133, 139, 113, 137, 125, 131, 146, 80] }, { "type": "integer", "attributes": {}, "value": [15410, 13012, 11172, 9464, 8334, 7170, 6177, 5419, 4731, 4275, 3570, 3312, 2785, 2511, 2142, 1921, 1694, 1574, 1378, 1260, 1172, 1004, 947, 814, 712, 691, 586, 549, 529, 485, 450, 482, 415, 395, 361, 319, 314, 318, 271, 277, 278, 233, 195, 278, 253, 247, 197, 182, 187, 208, 184, 163, 164, 185, 163, 166, 195, 155, 146, 156, 164, 185, 171, 133, 158, 151, 134, 155, 116, 182, 136, 133, 158, 130, 153, 133, 128, 107, 133, 128, 143, 139, 117, 114, 116, 99, 117, 107, 126, 131, 125, 123, 117, 122, 129, 116, 116, 111, 99, 134, 96, 122, 109, 114, 102, 84, 113, 115, 112, 140, 100, 107, 98, 98, 102, 101, 107, 111, 117, 104, 120, 91, 113, 81, 114, 87, 107, 109, 104, 91, 84, 100, 102, 121, 93, 105, 81, 122, 78, 118, 104, 91, 105, 106, 78, 80, 101, 96, 110, 115, 85, 84, 106, 82, 100, 96, 94, 92, 84, 92, 92, 98, 75, 104, 80, 71, 101, 81, 77, 81, 73, 86, 84, 74, 77, 90, 83, 80, 91, 91, 83, 92, 69, 104, 82, 102, 75, 86, 91, 76, 97, 70, 86, 72, 82, 100, 96, 91, 86, 68, 76, 56, 99, 83, 83, 85, 66, 72, 91, 86, 94, 75, 76, 81, 82, 92, 62, 91, 75, 75, 80, 76, 73, 66, 79, 68, 81, 100, 88, 84, 80, 72, 67, 80, 62, 94, 74, 93, 67, 70, 78, 90, 82, 73, 74, 94, 64, 83, 64, 66, 77, 57, 61, 62, 76, 73, 81, 79, 89, 64, 60, 88, 70, 79, 73, 64, 70, 60, 78, 65, 61, 63, 75, 67, 65, 81, 91, 85, 76, 69, 62, 61, 65, 47, 73, 55, 73, 80, 65, 96, 71, 85, 68, 54, 53, 72, 70, 62, 53, 77, 44, 64, 88, 75, 60, 67, 79, 83, 69, 65, 63, 60, 60, 77, 70, 69, 64, 64, 73, 61, 67, 72, 57, 83, 66, 53, 69, 76, 65, 59, 62, 47, 70, 54, 50, 63, 70, 70, 78, 59, 59, 60, 53, 58, 77, 63, 71, 82, 68, 59, 55, 66, 50, 76, 82, 64, 66, 60, 76, 55, 72, 51, 73, 63, 71, 87, 76, 57, 62, 55, 68, 69, 73, 58, 68, 57, 52, 54, 80, 60, 52, 66, 70, 58, 52, 45, 72, 63, 48, 76, 51, 44, 66, 59, 67, 66, 49, 71, 59, 47, 64, 67, 65, 57, 47, 48, 48, 38, 63, 61, 53, 63, 41, 64, 58, 67, 68, 58, 61, 57, 54, 54, 54, 59, 67, 74, 46, 69, 61, 63, 59, 54, 65, 58, 61, 73, 64, 59, 58, 87, 63, 51, 44, 54, 39, 67, 72, 55, 64, 60, 59, 44, 36, 54, 35, 72, 54, 47, 50, 59, 57, 66, 58, 57, 62, 48, 63, 63, 39, 45, 69, 40, 76, 45, 54, 53, 55, 57, 51, 44, 50, 60, 57, 48, 49, 56, 54, 61, 48, 58, 45, 45, 59, 45, 62, 64, 74, 54, 61, 54, 50, 82, 57, 61, 51, 71, 38, 34, 54, 53, 53, 50, 39, 52, 29, 50, 69, 50, 58, 66, 39, 43, 36, 63, 51, 46, 49, 66, 58, 66, 55, 45, 56, 52, 73, 45, 46, 72, 53, 59, 57, 44, 46, 31, 58, 51, 52, 62, 59, 44, 57, 54, 63, 49, 69, 53, 42, 43, 55, 38, 52, 41, 73, 41, 60, 54, 60, 40, 42, 28, 36, 55, 50, 39, 57, 49, 73, 65, 53, 48, 35, 56, 48, 35, 62, 53, 37, 68, 39, 53, 39, 47, 48, 41, 73, 54, 49, 52, 52, 47, 44, 42, 43, 41, 64, 40, 66, 43, 31, 55, 59, 59, 46, 66, 43, 46, 48, 62, 48, 58, 45, 45, 38, 43, 43, 56, 44, 38, 42, 37, 52, 50, 52, 45, 48, 47, 37, 47, 49, 36, 67, 43, 55, 40, 67, 60, 67, 42, 43, 51, 64, 45, 45, 46, 36, 34, 59, 43, 36, 53, 44, 50, 53, 47, 58, 45, 54, 46, 44, 49, 49, 62, 70, 49, 65, 38, 40, 52, 38, 62, 39, 56, 58, 39, 45, 49, 43, 47, 62, 37, 43, 47, 42, 46, 37, 48, 44, 61, 48, 51, 45, 31, 49, 43, 36, 46, 68, 47, 49, 44, 58, 66, 58, 68, 43, 58, 35, 36, 70, 51, 35, 56, 45, 48, 46, 51, 50, 43, 44, 43, 40, 45, 44, 34, 46, 66, 50, 46, 47, 53, 52, 48, 37, 39, 50, 48, 43, 41, 35, 42, 33, 45, 51, 59, 52, 51, 43, 52, 46, 33, 46, 32, 46, 46, 47, 54, 52, 57, 43, 56, 36, 42, 50, 50, 47, 40, 34, 45, 37, 50, 37, 35, 36, 41, 38, 35, 39, 51, 48, 33, 51, 67, 49, 57, 38, 51, 46, 38, 45, 64, 55, 23, 36, 52, 54, 40, 36, 51, 58, 42, 41, 53, 43, 52, 43, 34, 49, 54, 49, 48, 50, 39, 43, 52, 51, 52, 41, 39, 44, 52, 38, 40, 30, 39, 46, 51, 41, 39, 40, 39, 49, 54, 52, 36, 56, 50, 31, 47, 45, 57, 48, 42, 65, 35, 52, 51, 44, 54, 54, 45, 55, 45, 56, 39, 39, 41, 47, 30, 41, 48, 44, 39, 61, 38, 52, 41, 41, 24, 54, 40, 47, 48, 44, 46, 52, 34, 38, 38, 46, 36, 29, 49, 61, 33, 35, 40, 57, 45, 48, 39, 41, 45, 53, 24, 31, 35, 56, 42, 43, 39, 32, 44, 61, 34, 33, 61, 43, 49, 38, 46, 50, 33, 40, 52, 43, 50, 57, 41, 31, 37, 47, 47, 43, 61, 55, 46, 34, 39, 39, 24, 41, 45, 45, 35, 21, 39, 22, 35, 36, 41, 39, 27, 59, 34, 53, 43, 43, 41, 51, 61, 27, 46, 50, 46, 45, 35, 26, 50, 50, 56, 41, 36, 33, 39, 31, 42, 48, 33, 50, 50, 43, 45, 39, 47, 40, 48, 42, 33, 24, 42, 40, 28, 46, 29, 54, 40, 43, 41, 39, 41] }, { "type": "integer", "attributes": {}, "value": [12, 22, 1, 4, 6, 4, 1, 15, 1, 1, 11, 8, 4, 7, 2, 5, 2, 12, 9, 2, 13, 11, 3, 7, 2, 11, 6, 2, 1, 3, 2, 4, 8, 1, 3, 8, 7, 6, 9, 7, 4, 3, 9, 4, 5, 10, 3, 6, 0, 4, 12, 5, 3, 3, 12, 6, 3, 7, 2, 8, 6, 6, 7, 2, 13, 5, 5, 9, 5, 10, 8, 10, 6, 5, 3, 1, 3, 8, 8, 4, 0, 8, 1, 4, 5, 5, 2, 6, 2, 1, 4, 4, 4, 4, 16, 5, 3, 5, 5, 1, 12, 6, 6, 1, 6, 2, 7, 4, 12, 8, 5, 4, 6, 7, 13, 8, 2, 8, 6, 8, 3, 3, 1, 5, 5, 2, 4, 9, 12, 7, 4, 14, 11, 13, 4, 7, 4, 19, 7, 2, 5, 9, 2, 2, 1, 6, 3, 5, 3, 9, 5, 5, 4, 11, 2, 7, 3, 4, 4, 0, 2, 13, 11, 1, 8, 2, 2, 11, 5, 15, 10, 3, 4, 10, 6, 4, 19, 10, 5, 8, 12, 8, 6, 9, 6, 12, 12, 9, 11, 8, 10, 11, 9, 5, 14, 13, 14, 11, 6, 14, 19, 11, 25, 25, 30, 18, 18, 26, 21, 14, 12, 29, 27, 20, 18, 28, 23, 29, 26, 52, 34, 34, 36, 42, 47, 44, 61, 48, 53, 62, 70, 58, 53, 69, 74, 90, 82, 84, 107, 73, 100, 60, 89, 95, 104, 94, 100, 77, 125, 60] }, { "type": "integer", "attributes": {}, "value": [4353, 3656, 3096, 2713, 2220, 1997, 1592, 1498, 1277, 1108, 903, 783, 698, 617, 541, 452, 437, 426, 373, 319, 264, 257, 233, 192, 190, 145, 151, 128, 152, 99, 126, 104, 88, 97, 83, 100, 89, 63, 61, 67, 75, 76, 50, 63, 55, 68, 56, 47, 57, 39, 44, 41, 61, 46, 55, 44, 44, 51, 39, 44, 43, 29, 34, 44, 49, 33, 39, 40, 42, 36, 40, 41, 44, 41, 40, 34, 20, 39, 36, 40, 30, 24, 42, 32, 33, 25, 36, 47, 36, 34, 39, 22, 33, 28, 26, 24, 38, 30, 24, 38, 35, 45, 42, 23, 33, 41, 26, 29, 20, 26, 33, 27, 23, 18, 22, 24, 29, 46, 30, 25, 25, 39, 21, 36, 24, 40, 32, 24, 29, 20, 29, 22, 38, 35, 17, 21, 21, 34, 22, 37, 11, 31, 25, 35, 23, 39, 25, 30, 34, 18, 27, 34, 26, 26, 23, 26, 40, 33, 33, 21, 24, 28, 30, 32, 18, 33, 22, 19, 27, 23, 25, 24, 21, 27, 27, 17, 21, 30, 24, 24, 40, 22, 31, 26, 21, 33, 18, 26, 23, 20, 19, 25, 41, 26, 38, 19, 37, 23, 22, 28, 33, 38, 36, 27, 28, 16, 33, 32, 25, 18, 21, 21, 17, 11, 18, 24, 16, 13, 31, 26, 28, 38, 29, 18, 23, 29, 19, 30, 13, 22, 25, 26, 30, 22, 26, 17, 26, 30, 27, 26, 34, 16, 21, 15, 24, 22, 21, 49, 17, 33, 29, 20, 22, 26, 27, 25, 28, 23, 22, 27, 18, 22, 21, 32, 28, 17, 25, 27, 31, 34, 20, 21, 16, 39, 30, 18, 25, 32, 38, 17, 28, 16, 21, 22, 21, 27, 18, 17, 24, 17, 25, 27, 23, 32, 23, 23, 34, 18, 24, 36, 21, 33, 28, 40, 18, 25, 17, 20, 21, 29, 23, 15, 25, 25, 31, 21, 18, 21, 40, 27, 20, 21, 25, 27, 23, 28, 22, 27, 27, 20, 21, 17, 25, 19, 17, 35, 30, 19, 15, 19, 12, 21, 21, 37, 22, 36, 25, 34, 24, 15, 26, 22, 17, 23, 28, 31, 25, 21, 31, 21, 18, 20, 16, 12, 20, 15, 28, 22, 25, 29, 29, 32, 25, 26, 25, 27, 25, 30, 18, 19, 27, 29, 22, 18, 13, 26, 36, 17, 17, 14, 17, 23, 27, 25, 23, 28, 17, 30, 20, 18, 16, 19, 13, 32, 22, 14, 28, 18, 23, 36, 25, 29, 24, 24, 16, 13, 17, 25, 29, 21, 28, 15, 30, 17, 25, 21, 18, 31, 29, 26, 17, 30, 25, 16, 9, 29, 17, 21, 21, 21, 12, 25, 25, 29, 23, 28, 30, 26, 17, 29, 23, 18, 17, 24, 25, 21, 18, 23, 28, 26, 25, 24, 22, 19, 17, 13, 24, 18, 22, 17, 32, 24, 27, 25, 31, 29, 33, 25, 21, 22, 20, 25, 28, 21, 25, 28, 15, 26, 22, 16, 27, 23, 32, 24, 32, 22, 14, 18, 19, 28, 18, 26, 11, 23, 24, 11, 15, 16, 15, 24, 22, 16, 21, 26, 16, 19, 24, 16, 17, 25, 19, 23, 22, 26, 27, 21, 15, 23, 11, 6, 23, 24, 13, 23, 17, 16, 18, 10, 21, 18, 15, 31, 21, 22, 21, 22, 27, 39, 13, 18, 22, 15, 24, 36, 19, 26, 16, 20, 18, 15, 10, 17, 18, 18, 32, 30, 21, 15, 27, 24, 24, 10, 44, 11, 18, 20, 25, 16, 36, 16, 16, 30, 20, 24, 16, 16, 24, 18, 14, 15, 10, 18, 22, 20, 16, 28, 23, 18, 28, 23, 19, 19, 22, 19, 16, 24, 16, 22, 18, 14, 23, 20, 29, 28, 17, 19, 21, 35, 13, 13, 20, 20, 14, 13, 36, 12, 13, 30, 20, 24, 24, 28, 32, 21, 14, 30, 22, 25, 22, 23, 13, 14, 16, 22, 17, 25, 24, 14, 22, 16, 31, 28, 19, 31, 26, 17, 20, 17, 21, 17, 19, 25, 23, 28, 19, 26, 22, 20, 21, 22, 23, 19, 17, 25, 35, 21, 18, 21, 16, 18, 24, 10, 15, 24, 26, 17, 17, 20, 14, 21, 12, 15, 16, 20, 21, 22, 29, 26, 13, 12, 24, 10, 23, 29, 15, 18, 26, 17, 18, 24, 33, 24, 33, 22, 9, 15, 14, 13, 12, 11, 19, 16, 32, 13, 27, 20, 18, 10, 19, 30, 18, 25, 16, 8, 22, 29, 20, 29, 26, 18, 25, 21, 11, 19, 19, 20, 19, 20, 21, 24, 20, 17, 31, 12, 11, 21, 21, 24, 18, 25, 19, 22, 10, 14, 19, 15, 12, 17, 19, 20, 21, 15, 21, 22, 21, 31, 12, 14, 23, 25, 18, 25, 14, 30, 22, 27, 28, 18, 28, 26, 12, 15, 23, 21, 18, 26, 12, 11, 17, 19, 19, 19, 27, 32, 14, 10, 15, 21, 12, 15, 15, 12, 24, 21, 23, 14, 16, 27, 19, 26, 20, 12, 6, 18, 14, 19, 19, 27, 23, 12, 22, 25, 20, 20, 13, 25, 11, 17, 18, 15, 18, 21, 14, 18, 17, 14, 16, 16, 14, 16, 24, 29, 16, 22, 12, 16, 16, 17, 17, 14, 20, 14, 17, 12, 16, 9, 22, 23, 22, 20, 16, 12, 24, 15, 19, 27, 14, 15, 14, 26, 15, 19, 33, 18, 18, 23, 27, 26, 17, 24, 25, 21, 14, 10, 15, 15, 26, 12, 11, 29, 21, 28, 26, 20, 19, 23, 13, 19, 12, 15, 18, 21, 21, 19, 16, 18, 23, 16, 23, 12, 25, 14, 21, 7, 18, 20, 19, 18, 14, 21, 18, 31, 12, 26, 24, 16, 25, 19, 22, 18, 22, 15, 16, 23, 18, 15, 19, 5, 11, 23, 23, 12, 11, 27, 25, 18, 24, 18, 14, 14, 15, 24, 16, 21, 16, 27, 20, 14, 22, 18, 25, 34, 15, 16, 12, 21, 23, 19, 18, 13, 15, 25, 18, 18, 20, 14, 19, 6, 23, 13, 15, 8, 18, 15, 25, 19, 19, 25, 38, 22] }, { "type": "integer", "attributes": {}, "value": [8, 8, 16, 25, 3, 3, 6, 2, 14, 8, 6, 1, 2, 3, 2, 11, 4, 4, 12, 3, 11, 3, 7, 16, 3, 7, 4, 2, 8, 4, 2, 7, 5, 3, 2, 1, 2, 6, 7, 20, 4, 2, 3, 0, 5, 14, 2, 4, 7, 1, 6, 2, 6, 7, 7, 8, 4, 1, 14, 3, 7, 9, 1, 4, 6, 4, 14, 4, 2, 6, 8, 6, 5, 9, 7, 9, 9, 4, 7, 7, 1, 3, 5, 2, 18, 9, 3, 5, 3, 11, 7, 8, 20, 3, 6, 4, 21, 10, 1, 1, 10, 5, 3, 2, 6, 4, 8, 8, 0, 8, 0, 17, 10, 6, 5, 2, 8, 11, 7, 6, 0, 7, 4, 7, 3, 3, 10, 3, 3, 2, 19, 7, 1, 1, 2, 11, 2, 4, 7, 10, 6, 8, 11, 6, 13, 4, 1, 4, 14, 2, 4, 7, 7, 8, 7, 6, 0, 9, 6, 2, 1, 6, 2, 1, 1, 3, 3, 3, 9, 8, 16, 4, 15, 7, 6, 4, 1, 7, 5, 5, 0, 2, 4, 3, 2, 5, 14, 3, 10, 7, 10, 15, 21, 14, 22, 6, 7, 14, 12, 12, 7, 12, 8, 21, 11, 30, 7, 7, 16, 29, 16, 22, 20, 25, 11, 15, 20, 21, 31, 13, 26, 26, 26, 43, 26, 38, 34, 52, 38, 38, 39, 40, 42, 46, 45, 68, 42, 38, 55, 62, 54, 54, 71, 79, 63, 78, 75, 81, 76, 48] }, { "type": "integer", "attributes": {}, "value": [3784, 3120, 2771, 2434, 2117, 1762, 1523, 1428, 1327, 972, 947, 824, 712, 639, 567, 491, 433, 422, 315, 345, 261, 260, 226, 211, 185, 171, 139, 116, 128, 115, 102, 101, 118, 83, 83, 77, 68, 55, 59, 51, 49, 44, 47, 42, 28, 45, 33, 37, 45, 44, 34, 33, 37, 36, 39, 29, 25, 32, 25, 34, 17, 38, 21, 25, 22, 24, 25, 13, 22, 20, 28, 11, 14, 34, 17, 20, 23, 25, 21, 20, 21, 30, 26, 31, 28, 25, 29, 17, 22, 21, 18, 29, 26, 15, 18, 20, 22, 22, 21, 19, 12, 24, 21, 18, 20, 19, 18, 28, 14, 23, 18, 20, 24, 19, 18, 21, 27, 22, 21, 17, 25, 21, 20, 15, 14, 21, 24, 12, 18, 26, 21, 11, 23, 17, 27, 16, 21, 21, 23, 32, 26, 21, 27, 21, 18, 15, 19, 25, 18, 18, 22, 29, 17, 25, 29, 17, 21, 8, 14, 14, 14, 22, 16, 21, 20, 19, 18, 10, 20, 18, 18, 11, 14, 19, 19, 24, 9, 21, 15, 22, 11, 13, 13, 8, 18, 26, 31, 25, 11, 16, 18, 14, 20, 9, 19, 15, 13, 17, 17, 15, 15, 8, 15, 8, 14, 12, 15, 23, 23, 26, 24, 8, 15, 22, 14, 13, 13, 24, 14, 17, 14, 13, 28, 17, 34, 13, 13, 12, 18, 19, 21, 9, 5, 25, 23, 21, 19, 15, 18, 16, 20, 17, 16, 26, 26, 24, 16, 24, 19, 15, 24, 23, 20, 14, 14, 13, 22, 12, 15, 17, 24, 16, 12, 15, 14, 22, 15, 26, 21, 15, 11, 16, 17, 20, 18, 14, 9, 9, 20, 14, 13, 18, 16, 13, 16, 22, 17, 25, 9, 14, 16, 15, 19, 19, 23, 21, 17, 14, 17, 14, 23, 23, 17, 21, 25, 21, 20, 21, 9, 14, 18, 19, 10, 10, 27, 9, 19, 22, 16, 20, 21, 10, 15, 8, 22, 22, 15, 21, 9, 21, 13, 20, 14, 20, 17, 7, 8, 14, 21, 14, 13, 15, 19, 22, 18, 25, 13, 18, 18, 10, 14, 19, 13, 25, 16, 13, 21, 20, 11, 21, 14, 7, 11, 14, 13, 14, 18, 23, 13, 12, 15, 13, 9, 18, 14, 12, 8, 27, 19, 22, 17, 23, 17, 12, 22, 21, 13, 8, 16, 15, 10, 14, 20, 12, 14, 27, 9, 14, 20, 21, 16, 23, 12, 25, 18, 13, 12, 18, 15, 17, 22, 7, 11, 11, 23, 27, 15, 18, 18, 17, 17, 22, 15, 13, 14, 18, 19, 13, 18, 12, 10, 23, 7, 21, 5, 11, 20, 8, 10, 17, 11, 18, 23, 15, 17, 17, 23, 11, 13, 15, 8, 18, 8, 14, 11, 19, 13, 6, 10, 19, 12, 17, 22, 20, 17, 16, 21, 21, 11, 21, 17, 21, 25, 25, 18, 15, 13, 18, 13, 10, 15, 9, 15, 11, 15, 16, 13, 12, 10, 9, 18, 19, 23, 14, 9, 13, 11, 21, 11, 21, 14, 24, 12, 13, 16, 7, 12, 12, 15, 8, 10, 11, 26, 11, 12, 18, 21, 19, 10, 15, 11, 13, 8, 21, 12, 13, 23, 10, 24, 14, 9, 21, 17, 15, 16, 13, 8, 12, 16, 24, 14, 13, 15, 19, 13, 17, 9, 14, 9, 10, 16, 16, 11, 23, 18, 10, 17, 14, 10, 8, 12, 15, 25, 7, 13, 13, 9, 8, 16, 19, 16, 11, 18, 16, 12, 16, 9, 14, 17, 18, 16, 10, 18, 19, 13, 20, 14, 12, 13, 15, 14, 21, 11, 14, 11, 23, 19, 17, 8, 14, 15, 5, 10, 4, 12, 20, 23, 18, 10, 20, 13, 12, 7, 11, 9, 21, 6, 20, 22, 19, 13, 10, 10, 17, 13, 13, 19, 14, 25, 16, 13, 12, 7, 10, 15, 13, 10, 19, 14, 13, 15, 11, 16, 10, 6, 10, 13, 16, 10, 21, 16, 11, 12, 16, 19, 18, 17, 15, 20, 19, 10, 14, 8, 9, 15, 10, 7, 20, 9, 22, 13, 21, 14, 19, 17, 15, 20, 18, 16, 9, 15, 9, 10, 14, 11, 16, 12, 17, 10, 8, 13, 15, 5, 3, 12, 18, 10, 15, 20, 10, 14, 8, 14, 12, 13, 14, 6, 18, 9, 19, 9, 8, 18, 18, 21, 15, 13, 15, 12, 12, 16, 6, 10, 18, 10, 15, 19, 18, 9, 5, 10, 13, 13, 13, 10, 24, 3, 19, 14, 6, 14, 8, 23, 9, 5, 7, 2, 12, 10, 18, 10, 17, 12, 18, 12, 14, 23, 14, 18, 13, 17, 16, 12, 18, 8, 9, 10, 14, 13, 8, 8, 13, 13, 9, 12, 13, 17, 28, 11, 11, 18, 10, 15, 13, 11, 9, 19, 13, 11, 18, 10, 12, 16, 17, 21, 11, 20, 16, 12, 16, 5, 10, 18, 9, 16, 16, 13, 14, 14, 10, 19, 12, 13, 13, 17, 10, 16, 27, 17, 10, 17, 10, 7, 9, 8, 14, 21, 19, 13, 11, 10, 18, 14, 11, 17, 15, 21, 15, 14, 19, 9, 14, 13, 11, 25, 10, 14, 5, 15, 11, 13, 10, 12, 14, 12, 19, 10, 12, 12, 12, 10, 13, 7, 7, 8, 4, 17, 18, 19, 10, 8, 12, 14, 14, 15, 14, 9, 15, 14, 10, 18, 15, 19, 26, 20, 8, 10, 8, 18, 12, 12, 12, 13, 14, 11, 16, 20, 13, 10, 8, 15, 10, 13, 10, 11, 21, 10, 12, 11, 8, 10, 17, 18, 12, 16, 10, 18, 16, 15, 15, 15, 9, 11, 13, 19, 22, 10, 8, 10, 20, 5, 7, 13, 25, 7, 10, 13, 19, 18, 12, 14, 9, 23, 21, 15, 16, 10, 11, 15, 8, 15, 16, 7, 14, 8, 11, 8, 20, 21, 12, 10, 9, 13, 7, 13, 13, 12, 11, 14, 4, 8, 14, 13, 19, 9, 13, 16, 13, 13, 13, 22, 17, 9, 15, 23, 13, 13, 11, 16, 15, 14, 8, 15, 10, 14, 7, 17, 15, 13, 9] }, { "type": "integer", "attributes": {}, "value": [11, 7, 12, 3, 2, 8, 6, 6, 11, 6, 5, 2, 2, 8, 4, 13, 3, 9, 10, 6, 9, 3, 5, 10, 15, 7, 2, 2, 1, 5, 10, 12, 2, 2, 11, 5, 6, 13, 2, 7, 0, 18, 4, 3, 5, 4, 1, 4, 2, 2, 9, 3, 10, 7, 1, 5, 5, 3, 3, 6, 5, 3, 2, 3, 7, 3, 4, 12, 7, 10, 2, 5, 15, 3, 4, 3, 1, 4, 6, 0, 5, 2, 4, 1, 7, 8, 4, 6, 4, 11, 2, 6, 9, 4, 4, 5, 6, 6, 9, 17, 14, 8, 8, 2, 9, 3, 3, 10, 8, 3, 3, 6, 9, 3, 12, 4, 4, 3, 8, 6, 6, 7, 1, 26, 3, 1, 6, 3, 16, 7, 2, 0, 17, 1, 12, 6, 3, 5, 14, 14, 8, 11, 9, 2, 15, 2, 3, 3, 1, 5, 13, 9, 7, 12, 6, 6, 6, 15, 6, 7, 8, 6, 6, 3, 4, 8, 7, 9, 2, 3, 2, 8, 11, 10, 4, 12, 10, 2, 11, 6, 8, 7, 12, 10, 3, 9, 3, 12, 17, 8, 11, 13, 9, 15, 20, 8, 20, 9, 13, 11, 14, 11, 27, 12, 14, 17, 12, 28, 33, 23, 34, 26, 26, 34, 28, 41, 35, 21, 32, 53, 41, 34, 48, 40, 51, 56, 49, 36, 57, 46, 57, 66, 67, 74, 72, 64, 71, 65, 81, 79, 74, 76, 95, 98, 96, 97, 119, 123, 129, 54] }, { "type": "integer", "attributes": {}, "value": [4070, 3534, 2914, 2725, 2239, 1923, 1667, 1444, 1249, 1035, 963, 820, 676, 644, 596, 546, 463, 425, 372, 323, 309, 261, 268, 203, 161, 160, 171, 164, 142, 139, 104, 91, 97, 104, 90, 104, 107, 91, 87, 84, 119, 67, 80, 87, 55, 81, 45, 62, 77, 36, 88, 55, 44, 42, 35, 37, 48, 50, 48, 69, 39, 52, 48, 55, 43, 44, 36, 51, 46, 52, 55, 40, 44, 41, 42, 47, 51, 41, 41, 37, 49, 54, 42, 37, 30, 35, 36, 27, 40, 41, 21, 52, 42, 38, 44, 48, 34, 30, 26, 28, 30, 36, 37, 39, 41, 37, 49, 40, 37, 28, 33, 46, 26, 45, 43, 40, 32, 36, 43, 32, 37, 33, 19, 33, 33, 27, 38, 42, 36, 39, 24, 50, 27, 42, 32, 27, 19, 33, 38, 34, 32, 28, 42, 27, 21, 21, 29, 30, 35, 29, 27, 23, 31, 33, 47, 25, 40, 20, 33, 41, 32, 36, 29, 32, 25, 22, 33, 32, 36, 23, 38, 26, 24, 37, 23, 24, 21, 46, 21, 33, 23, 28, 29, 36, 17, 29, 33, 33, 28, 22, 23, 23, 27, 33, 12, 16, 24, 25, 37, 25, 34, 30, 29, 28, 37, 36, 32, 22, 37, 29, 18, 26, 27, 23, 26, 26, 34, 24, 34, 27, 33, 27, 22, 25, 22, 14, 36, 27, 24, 22, 24, 18, 28, 20, 33, 28, 38, 33, 21, 25, 21, 40, 30, 20, 19, 21, 33, 26, 31, 25, 27, 21, 26, 16, 31, 28, 23, 28, 22, 23, 32, 25, 15, 22, 24, 32, 15, 39, 26, 20, 23, 22, 21, 29, 35, 25, 22, 26, 44, 36, 14, 20, 23, 8, 39, 21, 30, 26, 36, 36, 24, 39, 33, 30, 23, 18, 21, 23, 26, 26, 16, 23, 18, 17, 21, 17, 18, 14, 27, 25, 23, 13, 24, 17, 14, 17, 12, 15, 20, 21, 28, 21, 25, 18, 7, 31, 34, 16, 19, 33, 22, 22, 32, 27, 24, 19, 16, 20, 19, 18, 15, 23, 16, 28, 29, 23, 22, 17, 17, 22, 23, 20, 29, 20, 17, 20, 20, 24, 16, 30, 34, 30, 24, 29, 12, 33, 15, 17, 23, 29, 29, 19, 32, 21, 30, 25, 15, 14, 37, 43, 30, 18, 8, 16, 22, 22, 22, 13, 17, 19, 17, 19, 25, 26, 22, 30, 24, 31, 27, 22, 23, 20, 28, 49, 11, 30, 15, 30, 29, 18, 26, 22, 27, 19, 26, 23, 28, 22, 22, 10, 28, 25, 19, 24, 23, 21, 26, 20, 11, 23, 23, 13, 28, 21, 21, 23, 30, 18, 15, 20, 16, 22, 18, 12, 25, 24, 22, 17, 23, 32, 19, 19, 17, 16, 23, 19, 19, 28, 16, 30, 23, 15, 21, 25, 29, 19, 30, 23, 40, 16, 22, 16, 31, 14, 25, 23, 13, 23, 27, 24, 9, 19, 19, 9, 17, 18, 25, 28, 44, 16, 18, 26, 23, 19, 25, 24, 20, 23, 22, 22, 18, 25, 19, 20, 33, 23, 28, 19, 23, 15, 22, 18, 34, 19, 14, 27, 27, 25, 23, 21, 9, 24, 29, 17, 14, 19, 19, 18, 26, 35, 12, 25, 25, 19, 20, 30, 20, 24, 30, 17, 16, 23, 17, 14, 18, 22, 11, 22, 33, 22, 19, 25, 13, 22, 26, 33, 24, 13, 15, 29, 12, 16, 21, 16, 24, 24, 27, 23, 15, 14, 17, 17, 16, 15, 10, 26, 19, 23, 16, 24, 27, 22, 24, 13, 14, 28, 19, 20, 36, 14, 24, 20, 22, 14, 20, 24, 33, 23, 20, 30, 30, 32, 29, 13, 14, 26, 9, 24, 21, 24, 28, 25, 27, 18, 21, 13, 20, 22, 17, 19, 13, 25, 13, 15, 23, 24, 24, 22, 27, 22, 31, 30, 26, 38, 20, 25, 11, 25, 20, 16, 19, 12, 20, 19, 23, 28, 26, 17, 5, 18, 20, 14, 23, 22, 20, 37, 18, 21, 14, 22, 17, 22, 18, 22, 31, 18, 12, 18, 23, 15, 12, 19, 17, 23, 17, 19, 13, 30, 22, 21, 14, 23, 20, 24, 19, 25, 23, 26, 15, 26, 16, 18, 20, 13, 13, 17, 24, 23, 16, 31, 23, 20, 10, 9, 20, 15, 21, 13, 26, 18, 18, 12, 19, 19, 18, 27, 13, 18, 31, 28, 20, 28, 31, 14, 19, 17, 35, 17, 18, 21, 10, 21, 20, 22, 20, 15, 14, 16, 21, 26, 24, 28, 19, 24, 37, 10, 7, 29, 12, 18, 23, 28, 28, 12, 19, 15, 30, 14, 21, 10, 18, 24, 15, 15, 14, 21, 18, 26, 18, 24, 21, 25, 17, 17, 7, 21, 11, 15, 32, 23, 20, 22, 28, 22, 14, 30, 15, 20, 23, 14, 14, 14, 17, 17, 12, 17, 13, 24, 16, 15, 18, 18, 15, 18, 23, 26, 26, 20, 16, 20, 27, 11, 15, 16, 31, 20, 27, 20, 10, 17, 18, 24, 21, 26, 26, 23, 22, 22, 30, 13, 21, 29, 16, 15, 31, 23, 24, 21, 25, 18, 15, 19, 9, 12, 16, 28, 26, 35, 13, 14, 16, 22, 16, 19, 10, 19, 23, 18, 13, 12, 19, 20, 16, 23, 20, 22, 23, 17, 15, 21, 18, 10, 19, 10, 16, 21, 22, 27, 15, 16, 21, 15, 13, 20, 24, 24, 20, 20, 19, 14, 12, 8, 7, 32, 21, 26, 16, 20, 26, 38, 21, 23, 18, 23, 6, 20, 18, 13, 19, 20, 23, 14, 21, 22, 17, 32, 27, 19, 24, 17, 14, 23, 16, 12, 12, 13, 18, 24, 13, 21, 19, 19, 20, 12, 17, 19, 26, 17, 20, 24, 11, 20, 11, 23, 22, 20, 20, 19, 19, 12, 19, 16, 22, 14, 27, 10, 15, 17, 19, 22, 25, 15, 19, 19, 19, 14, 18, 10, 20, 16, 22, 26, 15, 19, 18, 15, 28, 21, 12, 17, 18, 19, 15, 10, 19, 18, 15, 21, 19, 16, 15, 23, 18, 15, 23, 14, 13, 14, 14, 23] } ] }, ".RESERVED": { "type": "list", "attributes": {}, "value": [] } }, "value": { "class": "Risoe.BINfileData", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/calc_IEU.md0000644000176200001440000012441514762554470021124 0ustar liggesusers# snapshot tests { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "data", "args", "call", "tables"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["de", "de_err", "n"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [63.81] }, { "type": "double", "attributes": {}, "value": [2.55] }, { "type": "double", "attributes": {}, "value": [56] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [19.7, 26.2, 31.48, 31.95, 36.17, 37.05, 42.58, 47.23, 47.61, 48.1, 48.11, 50.73, 51.51, 52.06, 52.28, 53.6, 53.96, 55.54, 56.84, 58.97, 61.14, 61.58, 63.24, 64.5, 64.58, 64.76, 65.57, 66.43, 66.8, 66.84, 70.68, 71.46, 71.6, 74.12, 74.73, 75.67, 75.75, 76.21, 76.92, 77.5, 79.01, 79.27, 79.78, 82.86, 83.19, 83.87, 85.26, 86.36, 86.58, 88.7, 89.1, 89.52, 89.53, 93.27, 97.77, 98.64, 102.63, 103.57, 106.23, 107.98, 111.46, 119.06] }, { "type": "double", "attributes": {}, "value": [2.14, 2.04, 2.34, 2.34, 2.95, 3.15, 8.22, 3.23, 4.43, 4.43, 3.14, 9.64, 6.76, 5.6, 10.27, 4.69, 3.78, 4.37, 6.87, 4.63, 4.05, 4.76, 5.58, 8.11, 6.91, 7.78, 12.4, 5.82, 8.61, 10.33, 8.87, 9.59, 10.32, 6.33, 10.16, 10.29, 12.47, 5.75, 7.89, 8.78, 7.97, 7.54, 5.4, 10.36, 11.04, 9.9, 9.84, 12.34, 9.5, 14.15, 15.99, 9.74, 10.99, 8.17, 11.92, 6.83, 7.87, 9.18, 21.23, 14.85, 11.63, 14.88] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["a", "b", "interval", "decimal.point", "plot"] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.25] }, { "type": "double", "attributes": {}, "value": [1.29] }, { "type": "double", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [2] }, { "type": "logical", "attributes": {}, "value": [false] } ] }, { "type": "language", "attributes": { "srcref": { "type": "integer", "attributes": { "srcfile": { "type": "environment", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["srcfilecopy", "srcfile"] } }, "value": {} }, "class": { "type": "character", "attributes": {}, "value": ["srcref"] } }, "value": [7, 3, 7, 30, 3, 30, 7, 7] } }, "value": ["calc_IEU(ExampleData.DeValues$CA1, a = 0.25, b = 1.29, interval = 1, ", " verbose = FALSE, plot = FALSE)"] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Table.IEUCalculations", "Table.Fixed.Iteration", "Table.IEUResults"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Rank.number", "De", "De.Error", "Z", "EXT.top", "EXT", "INT", "R", "R.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62] } }, "value": [ { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62] }, { "type": "double", "attributes": {}, "value": [19.7, 26.2, 31.48, 31.95, 36.17, 37.05, 42.58, 47.23, 47.61, 48.1, 48.11, 50.73, 51.51, 52.06, 52.28, 53.6, 53.96, 55.54, 56.84, 58.97, 61.14, 61.58, 63.24, 64.5, 64.58, 64.76, 65.57, 66.43, 66.8, 66.84, 70.68, 71.46, 71.6, 74.12, 74.73, 75.67, 75.75, 76.21, 76.92, 77.5, 79.01, 79.27, 79.78, 82.86, 83.19, 83.87, 85.26, 86.36, 86.58, 88.7, 89.1, 89.52, 89.53, 93.27, 97.77, 98.64, 102.63, 103.57, 106.23, 107.98, 111.46, 119.06] }, { "type": "double", "attributes": {}, "value": [17.37479226, 17.36275918, 17.40055764, 17.40055764, 17.49303594, 17.52787227, 19.10162837, 17.54242589, 17.80249157, 17.80249157, 17.52607789, 19.75432627, 18.52029714, 18.1290873, 20.0692976, 17.86896489, 17.65197457, 17.78765601, 18.56073022, 17.85331079, 17.71175616, 17.88746506, 18.12291936, 19.0545508, 18.57557284, 18.91645332, 21.23826279, 18.19824734, 19.27267252, 20.10006732, 19.39022192, 19.72997482, 20.09492986, 18.36770825, 20.01323078, 20.07953949, 21.27920831, 18.17598158, 18.96195945, 19.3492172, 18.99538645, 18.81901714, 18.06830945, 20.11550164, 20.47401783, 19.8825, 19.85269267, 21.20328763, 19.68638632, 22.30529772, 23.51560984, 19.80331806, 20.44710019, 19.08016526, 20.96163654, 18.54596199, 18.95364625, 19.53397569, 27.34989408, 22.7557972, 20.79809381, 22.77538597] }, { "type": "double", "attributes": {}, "value": [19.7, 22.95, 25.79, 27.33, 29.08, 30.39, 31.88, 33.81, 35.32, 36.58, 37.64, 38.53, 39.45, 40.33, 40.97, 41.77, 42.51, 43.25, 43.92, 44.69, 45.49, 46.23, 46.96, 47.61, 48.25, 48.83, 49.28, 49.89, 50.41, 50.86, 51.43, 51.97, 52.47, 53.11, 53.63, 54.15, 54.59, 55.18, 55.71, 56.21, 56.74, 57.26, 57.81, 58.3, 58.75, 59.23, 59.72, 60.16, 60.64, 61.04, 61.39, 61.89, 62.33, 62.89, 63.41, 64.06, 64.74, 65.37, 65.7, 66.2, 66.82, 67.41] }, { "type": "double", "attributes": {}, "value": [0, 0.07002586, 0.23034298, 0.32445752, 0.52946469, 0.70229109, 1.0599107, 1.72935112, 2.26440184, 2.72907911, 3.12217209, 3.53153241, 3.98790398, 4.4378535, 4.77345322, 5.24142879, 5.68929465, 6.19532202, 6.70491913, 7.37933021, 8.2001477, 8.97203753, 9.81542455, 10.63156738, 11.4347504, 12.16984313, 12.77438933, 13.63073874, 14.37677374, 15.02646357, 16.04102355, 17.04375874, 17.9737399, 19.32240077, 20.46167458, 21.63838269, 22.64809183, 24.02466002, 25.30728164, 26.54646827, 27.95375635, 29.35391827, 30.86920633, 32.3896402, 33.84064445, 35.40577256, 37.09198666, 38.64451147, 40.41292959, 41.97267387, 43.378482, 45.36038824, 47.15890869, 49.74064698, 52.4681739, 56.00985807, 60.07783051, 63.96577934, 66.17986406, 69.5914777, 74.26275175, 79.46393002] }, { "type": "double", "attributes": {}, "value": ["NaN", 10.5625, 11.59553274, 8.17162011, 8.02071318, 7.10893886, 7.85165863, 9.59485571, 9.79294877, 9.45860173, 8.84108537, 8.47609535, 8.14675389, 7.78769172, 7.36134518, 7.06635795, 6.75252902, 6.52873778, 6.34334794, 6.27850774, 6.30322234, 6.26702823, 6.26470569, 6.248914, 6.19812421, 6.11056275, 6.00042694, 5.94625757, 5.86183527, 5.75290315, 5.76633825, 5.76932624, 5.74471153, 5.81241366, 5.82960599, 5.84821053, 5.82929544, 5.85233767, 5.85576143, 5.84765902, 5.86409612, 5.86858265, 5.87702391, 5.9063659, 5.91997462, 5.94046596, 5.9736567, 5.99252511, 6.02292784, 6.04086457, 6.04128471, 6.08538143, 6.10508748, 6.20311353, 6.32691611, 6.50798535, 6.73617112, 6.93220592, 6.99076517, 7.14204617, 7.39096625, 7.69042971] }, { "type": "double", "attributes": {}, "value": [301.88340625, 150.83713073, 100.68058186, 75.55645589, 60.59488576, 50.61248056, 44.44709524, 38.83768258, 34.59791841, 31.19272553, 28.31709824, 26.40130064, 24.51439331, 22.81282883, 21.58999529, 20.22260982, 18.99013337, 17.9148948, 17.02932736, 16.16564698, 15.37343613, 14.66864048, 14.04152458, 13.5187049, 13.00902737, 12.55267361, 12.212803, 11.77844851, 11.41642698, 11.10269163, 10.78423374, 10.4935253, 10.2277417, 9.92680221, 9.68672446, 9.45945782, 9.26588594, 9.01309294, 8.79268416, 8.59092439, 8.39113863, 8.19692575, 7.99615648, 7.84120268, 7.69721995, 7.5502086, 7.40829039, 7.28819358, 7.15366441, 7.05226369, 6.96345795, 6.84197083, 6.7318044, 6.60958465, 6.51163257, 6.39064634, 6.27894815, 6.17729889, 6.12670312, 6.05506217, 5.97147243, 5.90351134] }, { "type": "double", "attributes": {}, "value": ["NaN", 3.77894673, 2.94664288, 3.04075693, 2.74859969, 2.66824941, 2.37925498, 2.01190481, 1.87961215, 1.81598891, 1.78966433, 1.76487822, 1.73467563, 1.71153268, 1.71256744, 1.69169001, 1.67699118, 1.65650411, 1.63847372, 1.60460569, 1.56172355, 1.52990374, 1.49712063, 1.47083945, 1.44874609, 1.43326836, 1.42664724, 1.40741503, 1.3955593, 1.38921866, 1.36755433, 1.34864659, 1.334307, 1.30685206, 1.28904735, 1.27180821, 1.26076877, 1.2410013, 1.22537509, 1.21207342, 1.19621683, 1.18184055, 1.16643868, 1.15220874, 1.14026823, 1.12737713, 1.11362473, 1.10282098, 1.08983425, 1.080475, 1.07361316, 1.06034381, 1.05007374, 1.03224365, 1.01449265, 0.99094399, 0.9654658, 0.94398171, 0.93616211, 0.92076325, 0.89885597, 0.87615289] }, { "type": "double", "attributes": {}, "value": ["Inf", 0.70710678, 0.5, 0.40824829, 0.35355339, 0.31622777, 0.28867513, 0.26726124, 0.25, 0.23570226, 0.2236068, 0.21320072, 0.20412415, 0.19611614, 0.18898224, 0.18257419, 0.1767767, 0.17149859, 0.16666667, 0.16222142, 0.15811388, 0.15430335, 0.15075567, 0.14744196, 0.14433757, 0.14142136, 0.13867505, 0.13608276, 0.13363062, 0.13130643, 0.12909944, 0.12700013, 0.125, 0.12309149, 0.12126781, 0.11952286, 0.11785113, 0.11624764, 0.11470787, 0.1132277, 0.1118034, 0.11043153, 0.10910895, 0.10783277, 0.10660036, 0.10540926, 0.10425721, 0.10314212, 0.10206207, 0.10101525, 0.1, 0.09901475, 0.09805807, 0.09712859, 0.09622504, 0.09534626, 0.09449112, 0.09365858, 0.09284767, 0.09205746, 0.09128709, 0.09053575] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["FALSE", "Dbar", "Dbar.Fixed", "Zbar", "Zbar.Error", "n", "Below.R", "a", "b"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] }, { "type": "double", "attributes": {}, "value": [69.93, 68.93, 67.93, 66.93, 65.93, 64.93, 63.93, 62.93, 61.93, 60.93, 59.93, 58.93, 57.93, 56.93, 55.93, 54.93, 53.93, 52.93, 51.93, 50.93, 49.93, 48.93, 47.93, 46.93, 45.93, 44.93, 43.93, 42.93, 41.93, 40.93, 39.93, 38.93, 37.93, 36.93, 35.93, 34.93, 33.93, 32.93, 31.93, 30.93, 29.93, 28.93, 27.93, 26.93, 25.93, 24.93, 23.93, 22.93, 21.93, 20.93, 19.93] }, { "type": "double", "attributes": {}, "value": [68.93, 67.93, 66.93, 65.93, 64.93, 63.93, 62.93, 61.93, 60.93, 59.93, 58.93, 57.93, 56.93, 55.93, 54.93, 53.93, 52.93, 51.93, 50.93, 49.93, 48.93, 47.93, 46.93, 45.93, 44.93, 43.93, 42.93, 41.93, 40.93, 39.93, 38.93, 37.93, 36.93, 35.93, 34.93, 33.93, 32.93, 31.93, 30.93, 29.93, 28.93, 27.93, 26.93, 25.93, 24.93, 23.93, 22.93, 21.93, 20.93, 19.93, 18.93] }, { "type": "double", "attributes": {}, "value": [66.17, 65.75, 65.33, 64.96, 64.6, 64.24, 63.86, 63.46, 63.05, 62.6, 62.12, 61.5, 60.81, 60.14, 59.48, 58.85, 58.17, 57.5, 56.84, 56.16, 55.46, 54.73, 54.11, 53.29, 52.57, 52.01, 51.21, 50.44, 49.13, 47.73, 46.81, 46.03, 45.26, 44.57, 43.87, 42.83, 41.56, 40.33, 37.95, 35.93, 35.05, 34.42, 33.84, 33.27, 32.99, 32.69, 32.38, 32.06, 31.73, 31.37, 30.99] }, { "type": "double", "attributes": {}, "value": [2.67, 2.64, 2.63, 2.63, 2.59, 2.59, 2.55, 2.55, 2.52, 2.49, 2.47, 2.47, 2.46, 2.46, 2.46, 2.45, 2.44, 2.44, 2.44, 2.44, 2.43, 2.44, 2.44, 2.43, 2.43, 2.43, 2.43, 2.43, 2.48, 2.54, 2.55, 2.55, 2.56, 2.56, 2.57, 2.61, 2.7, 2.74, 2.92, 3.13, 3.13, 3.13, 3.13, 3.08, 3.08, 3.08, 3.08, 3.08, 3.08, 3.07, 2.67] }, { "type": "double", "attributes": {}, "value": [60, 59, 58, 58, 57, 57, 56, 56, 55, 54, 53, 52, 51, 49, 48, 46, 45, 44, 42, 41, 40, 39, 38, 36, 35, 34, 32, 31, 28, 25, 24, 23, 22, 21, 20, 19, 17, 16, 13, 10, 10, 9, 9, 8, 8, 8, 8, 8, 8, 8, 7] }, { "type": "double", "attributes": {}, "value": [0.99006215, 0.99577423, 0.99309924, 0.98115455, 0.9913129, 0.97911244, 0.99243984, 0.97998151, 0.99067969, 0.99490429, 0.99905984, 0.99543016, 0.99440464, 0.99416769, 0.99183585, 0.99834856, 0.99468427, 0.98941152, 0.99961915, 0.99661076, 0.99430278, 0.98917729, 0.98596738, 0.99363684, 0.98880103, 0.98358228, 0.99649324, 0.99041209, 0.99445072, 0.99828333, 0.9920046, 0.9851956, 0.98498068, 0.98484543, 0.99281593, 0.99384546, 0.99526879, 0.98700331, 0.98756945, 0.99478816, 0.97047904, 0.98081615, 0.95579304, 0.99706061, 0.97027596, 0.94356368, 0.91692956, 0.89038022, 0.86392321, 0.83756721, 0.9987201] }, { "type": "double", "attributes": {}, "value": [0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25] }, { "type": "double", "attributes": {}, "value": [1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29, 1.29] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Dbar", "IEU.De (Gy)", "IEU.Error (Gy)", "Number of De", "a", "b"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [63.81] }, { "type": "double", "attributes": {}, "value": [63.81] }, { "type": "double", "attributes": {}, "value": [2.55] }, { "type": "double", "attributes": {}, "value": [56] }, { "type": "double", "attributes": {}, "value": [0.25] }, { "type": "double", "attributes": {}, "value": [1.29] } ] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_IEU"] }, "info": { "type": "list", "attributes": {}, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "data", "args", "call", "tables"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["de", "de_err", "n"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [25.25] }, { "type": "double", "attributes": {}, "value": [3.39] }, { "type": "double", "attributes": {}, "value": [3] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [19.7, 26.2, 31.48, 31.95, 36.17, 37.05, 42.58, 47.23, 47.61, 48.1, 48.11, 50.73, 51.51, 52.06, 52.28, 53.6, 53.96, 55.54, 56.84, 58.97, 61.14, 61.58, 63.24, 64.5, 64.58, 64.76, 65.57, 66.43, 66.8, 66.84, 70.68, 71.46, 71.6, 74.12, 74.73, 75.67, 75.75, 76.21, 76.92, 77.5, 79.01, 79.27, 79.78, 82.86, 83.19, 83.87, 85.26, 86.36, 86.58, 88.7, 89.1, 89.52, 89.53, 93.27, 97.77, 98.64, 102.63, 103.57, 106.23, 107.98, 111.46, 119.06] }, { "type": "double", "attributes": {}, "value": [2.14, 2.04, 2.34, 2.34, 2.95, 3.15, 8.22, 3.23, 4.43, 4.43, 3.14, 9.64, 6.76, 5.6, 10.27, 4.69, 3.78, 4.37, 6.87, 4.63, 4.05, 4.76, 5.58, 8.11, 6.91, 7.78, 12.4, 5.82, 8.61, 10.33, 8.87, 9.59, 10.32, 6.33, 10.16, 10.29, 12.47, 5.75, 7.89, 8.78, 7.97, 7.54, 5.4, 10.36, 11.04, 9.9, 9.84, 12.34, 9.5, 14.15, 15.99, 9.74, 10.99, 8.17, 11.92, 6.83, 7.87, 9.18, 21.23, 14.85, 11.63, 14.88] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["a", "b", "interval", "decimal.point", "plot"] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.12] }, { "type": "double", "attributes": {}, "value": [2.14] }, { "type": "double", "attributes": {}, "value": [0.9] }, { "type": "double", "attributes": {}, "value": [2] }, { "type": "logical", "attributes": {}, "value": [false] } ] }, { "type": "language", "attributes": { "srcref": { "type": "integer", "attributes": { "srcfile": { "type": "environment", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["srcfilecopy", "srcfile"] } }, "value": {} }, "class": { "type": "character", "attributes": {}, "value": ["srcref"] } }, "value": [7, 3, 7, 30, 3, 30, 7, 7] } }, "value": ["calc_IEU(set_RLum(class = \"RLum.Results\", data = list(test = ExampleData.DeValues$CA1)), ", " a = 0.12, b = 2.14, interval = 0.9, verbose = FALSE, plot = FALSE)"] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Table.IEUCalculations", "Table.Fixed.Iteration", "Table.IEUResults"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Rank.number", "De", "De.Error", "Z", "EXT.top", "EXT", "INT", "R", "R.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62] } }, "value": [ { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62] }, { "type": "double", "attributes": {}, "value": [19.7, 26.2, 31.48, 31.95, 36.17, 37.05, 42.58, 47.23, 47.61, 48.1, 48.11, 50.73, 51.51, 52.06, 52.28, 53.6, 53.96, 55.54, 56.84, 58.97, 61.14, 61.58, 63.24, 64.5, 64.58, 64.76, 65.57, 66.43, 66.8, 66.84, 70.68, 71.46, 71.6, 74.12, 74.73, 75.67, 75.75, 76.21, 76.92, 77.5, 79.01, 79.27, 79.78, 82.86, 83.19, 83.87, 85.26, 86.36, 86.58, 88.7, 89.1, 89.52, 89.53, 93.27, 97.77, 98.64, 102.63, 103.57, 106.23, 107.98, 111.46, 119.06] }, { "type": "double", "attributes": {}, "value": [5.5953999, 5.55792227, 5.67490088, 5.67490088, 5.95242808, 6.05403997, 9.71067969, 6.0960479, 6.80836251, 6.80836251, 6.04884286, 10.93885277, 8.51037602, 7.62160744, 11.49790416, 6.98032951, 6.404475, 6.76947561, 8.5980114, 6.9401585, 6.56745004, 7.02755292, 7.60692448, 9.61774402, 8.63000579, 9.3411616, 13.43461574, 7.78468368, 10.04295773, 11.55152804, 10.26673268, 10.89481528, 11.54258637, 8.17299211, 11.39975877, 11.51577179, 13.49925183, 7.7324899, 9.43297408, 10.18907749, 9.49998947, 9.14223714, 7.47588791, 11.57836344, 12.19059063, 11.16865704, 11.11550719, 13.37925633, 10.81567843, 15.06490624, 16.80502901, 11.0270803, 12.14532832, 9.6683918, 12.99289421, 8.56608429, 9.41625191, 10.53571545, 21.85044164, 15.72422971, 12.72736422, 15.75256487] }, { "type": "double", "attributes": {}, "value": [19.7, 22.97, 25.74, 27.27, 28.89, 30.12, 30.8, 32.82, 34.14, 35.29, 36.5, 36.9, 37.54, 38.3, 38.61, 39.48, 40.4, 41.22, 41.73, 42.54, 43.48, 44.24, 44.9, 45.31, 45.81, 46.22, 46.41, 47.01, 47.35, 47.61, 47.98, 48.32, 48.61, 49.23, 49.55, 49.86, 50.08, 50.76, 51.2, 51.58, 52.02, 52.49, 53.17, 53.48, 53.76, 54.08, 54.42, 54.66, 55.02, 55.22, 55.37, 55.74, 56.03, 56.53, 56.84, 57.54, 58.16, 58.65, 58.77, 59.01, 59.39, 59.68] }, { "type": "double", "attributes": {}, "value": [0, 0.67927159, 2.19515431, 3.09785828, 4.92664994, 6.47018994, 8.02704687, 14.39875926, 18.69736999, 22.55578162, 26.62576686, 28.27144787, 31.09006284, 34.52891953, 35.97391942, 40.3179751, 45.10642356, 49.83778046, 53.03161392, 58.91283556, 66.5280005, 72.88372161, 78.90622432, 82.97179964, 87.82740863, 91.85494522, 93.90906742, 100.32386334, 104.13966948, 106.94788873, 111.91546687, 116.49231324, 120.50962982, 130.01417883, 134.95510874, 140.03907544, 143.68538873, 154.80781454, 162.37118181, 168.93898591, 177.14347253, 185.87492868, 198.8671585, 205.37305453, 211.25746077, 218.44851047, 226.22959574, 231.88515901, 240.4963464, 245.4653135, 249.5120255, 258.99967528, 266.67488358, 281.31114359, 291.30982281, 314.72298397, 337.3376107, 355.71382021, 360.44325614, 370.18973337, 387.04930246, 401.32849876] }, { "type": "double", "attributes": {}, "value": ["NaN", 10.56202635, 11.50932288, 8.16844016, 7.96474454, 7.11309326, 6.94880832, 9.37381108, 9.69737555, 9.54437015, 9.18399413, 8.61673752, 8.30186473, 8.06595289, 7.6280314, 7.52099347, 7.38458628, 7.26401129, 7.06335889, 7.08123629, 7.21472575, 7.21091607, 7.1936224, 7.0818334, 6.99943156, 6.87684989, 6.69084194, 6.67898537, 6.56835335, 6.42780121, 6.39638244, 6.35144465, 6.28541323, 6.41535699, 6.38331892, 6.35744118, 6.28696344, 6.42138589, 6.44667977, 6.44184164, 6.47906064, 6.51849949, 6.63732019, 6.62577057, 6.59911133, 6.59938597, 6.61311581, 6.58475236, 6.61157118, 6.57224336, 6.51670677, 6.56139964, 6.56838868, 6.70626952, 6.76539203, 7.05565874, 7.32572576, 7.50702073, 7.45689103, 7.49236129, 7.6466574, 7.76170406] }, { "type": "double", "attributes": {}, "value": [31.3085, 15.54904772, 10.48611739, 7.91040721, 6.46666164, 5.49681951, 5.19404591, 4.55710637, 4.14919341, 3.80830657, 3.44928812, 3.35264445, 3.20431571, 3.03679898, 2.96860729, 2.79812917, 2.61943579, 2.4778028, 2.39744655, 2.28377209, 2.16892908, 2.07768256, 2.00566805, 1.96310275, 1.91268717, 1.87166022, 1.85245041, 1.79750459, 1.76603109, 1.74296321, 1.71461084, 1.6901955, 1.669022, 1.6283361, 1.60818546, 1.58891681, 1.57518232, 1.5347499, 1.50872728, 1.48711573, 1.46300861, 1.43784039, 1.4017772, 1.38727125, 1.37444092, 1.35946163, 1.34466636, 1.33464066, 1.31958519, 1.31195695, 1.30589032, 1.29201468, 1.28079633, 1.26348455, 1.25409836, 1.23302476, 1.21611297, 1.20293381, 1.19991059, 1.19411555, 1.18537727, 1.17974166] }, { "type": "double", "attributes": {}, "value": ["NaN", 1.21332815, 0.95451437, 0.98407875, 0.9010609, 0.87907613, 0.86456515, 0.69724673, 0.65411594, 0.631673, 0.61284259, 0.62376689, 0.6212692, 0.6135927, 0.62383558, 0.60995286, 0.59558094, 0.58404339, 0.58259779, 0.56789996, 0.54829308, 0.53677759, 0.52802649, 0.52650035, 0.52274584, 0.52169747, 0.52617827, 0.51877586, 0.51852645, 0.52073035, 0.51774459, 0.51586043, 0.51530471, 0.503804, 0.5019319, 0.49993024, 0.5005471, 0.48888242, 0.48376821, 0.4804712, 0.47519014, 0.46965778, 0.45956094, 0.45757522, 0.45637339, 0.45387025, 0.45092489, 0.45020722, 0.44675187, 0.44678952, 0.44765069, 0.44374705, 0.44158124, 0.4340547, 0.43054576, 0.4180393, 0.40743809, 0.40030135, 0.40113961, 0.39922141, 0.39372454, 0.3898656] }, { "type": "double", "attributes": {}, "value": ["Inf", 0.70710678, 0.5, 0.40824829, 0.35355339, 0.31622777, 0.28867513, 0.26726124, 0.25, 0.23570226, 0.2236068, 0.21320072, 0.20412415, 0.19611614, 0.18898224, 0.18257419, 0.1767767, 0.17149859, 0.16666667, 0.16222142, 0.15811388, 0.15430335, 0.15075567, 0.14744196, 0.14433757, 0.14142136, 0.13867505, 0.13608276, 0.13363062, 0.13130643, 0.12909944, 0.12700013, 0.125, 0.12309149, 0.12126781, 0.11952286, 0.11785113, 0.11624764, 0.11470787, 0.1132277, 0.1118034, 0.11043153, 0.10910895, 0.10783277, 0.10660036, 0.10540926, 0.10425721, 0.10314212, 0.10206207, 0.10101525, 0.1, 0.09901475, 0.09805807, 0.09712859, 0.09622504, 0.09534626, 0.09449112, 0.09365858, 0.09284767, 0.09205746, 0.09128709, 0.09053575] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["FALSE", "Dbar", "Dbar.Fixed", "Zbar", "Zbar.Error", "n", "Below.R", "a", "b"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] }, { "type": "double", "attributes": {}, "value": [69.93, 69.03, 68.13, 67.23, 66.33, 65.43, 64.53, 63.63, 62.73, 61.83, 60.93, 60.03, 59.13, 58.23, 57.33, 56.43, 55.53, 54.63, 53.73, 52.83, 51.93, 51.03, 50.13, 49.23, 48.33, 47.43, 46.53, 45.63, 44.73, 43.83, 42.93, 42.03, 41.13, 40.23, 39.33, 38.43, 37.53, 36.63, 35.73, 34.83, 33.93, 33.03, 32.13, 31.23, 30.33, 29.43, 28.53, 27.63, 26.73, 25.83, 24.93, 24.03, 23.13, 22.23, 21.33, 20.43] }, { "type": "double", "attributes": {}, "value": [69.03, 68.13, 67.23, 66.33, 65.43, 64.53, 63.63, 62.73, 61.83, 60.93, 60.03, 59.13, 58.23, 57.33, 56.43, 55.53, 54.63, 53.73, 52.83, 51.93, 51.03, 50.13, 49.23, 48.33, 47.43, 46.53, 45.63, 44.73, 43.83, 42.93, 42.03, 41.13, 40.23, 39.33, 38.43, 37.53, 36.63, 35.73, 34.83, 33.93, 33.03, 32.13, 31.23, 30.33, 29.43, 28.53, 27.63, 26.73, 25.83, 24.93, 24.03, 23.13, 22.23, 21.33, 20.43, 19.53] }, { "type": "double", "attributes": {}, "value": [44.59, 44.31, 44.01, 43.66, 43.32, 42.63, 42.12, 41.58, 41, 40.5, 39.01, 38.38, 37.01, 36.41, 35.92, 35.55, 35.16, 34.8, 34.56, 34.32, 34.07, 33.82, 33.56, 33.3, 33.18, 33.06, 32.93, 32.8, 32.67, 32.54, 32.41, 32.27, 32.13, 31.99, 31.84, 31.7, 31.55, 31.39, 31.24, 31.08, 30.8, 30.44, 29.93, 29.17, 28.74, 28.45, 28.14, 27.83, 27.51, 25.38, 25.19, 24.99, 24.79, 24.58, 24.36, 24.14] }, { "type": "double", "attributes": {}, "value": [2.56, 2.57, 2.57, 2.57, 2.57, 2.64, 2.64, 2.7, 2.74, 2.74, 2.87, 2.92, 3.09, 3.09, 3.13, 3.13, 3.13, 3.13, 3.13, 3.13, 3.13, 3.13, 3.13, 3.08, 3.08, 3.08, 3.08, 3.08, 3.08, 3.08, 3.08, 3.08, 3.08, 3.08, 3.08, 3.08, 3.08, 3.07, 3.07, 3.07, 2.67, 2.67, 2.82, 2.82, 2.86, 2.86, 2.86, 2.86, 2.86, 3.39, 3.39, 3.39, 3.39, 3.39, 3.39, 3.39] }, { "type": "double", "attributes": {}, "value": [21, 21, 20, 20, 20, 18, 18, 17, 16, 16, 14, 13, 11, 11, 10, 10, 10, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 6, 6, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3] }, { "type": "double", "attributes": {}, "value": [0.98561389, 0.97649711, 0.99653111, 0.98722404, 0.97792518, 0.9995671, 0.98996396, 0.99554623, 0.99996379, 0.99031553, 0.98961796, 0.99408857, 0.99545012, 0.98497329, 0.99450578, 0.98399613, 0.97349931, 0.99818463, 0.98734418, 0.97651693, 0.96570327, 0.95490361, 0.94411837, 0.99975358, 0.98817113, 0.97660152, 0.96504517, 0.95350252, 0.94197403, 0.93046019, 0.9189615, 0.90747853, 0.89601185, 0.88456206, 0.87312983, 0.86171585, 0.85032084, 0.8389456, 0.82759096, 0.81625779, 0.99127629, 0.97808369, 0.99464751, 0.97938009, 0.98917653, 0.97345587, 0.95777967, 0.94215011, 0.92656948, 0.96535444, 0.94854354, 0.93178882, 0.91509335, 0.89846042, 0.88189358, 0.86539661] }, { "type": "double", "attributes": {}, "value": [0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12] }, { "type": "double", "attributes": {}, "value": [2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14, 2.14] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Dbar", "IEU.De (Gy)", "IEU.Error (Gy)", "Number of De", "a", "b"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [25.25] }, { "type": "double", "attributes": {}, "value": [25.25] }, { "type": "double", "attributes": {}, "value": [3.39] }, { "type": "double", "attributes": {}, "value": [3] }, { "type": "double", "attributes": {}, "value": [0.12] }, { "type": "double", "attributes": {}, "value": [2.14] } ] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_IEU"] }, "info": { "type": "list", "attributes": {}, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/fit_LMCurve.md0000644000176200001440001263031614762554470021704 0ustar liggesusers# snapshot tests { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "component_matrix", "component.contribution.matrix"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ID", "sample_code", "n.components", "Im1", "xm1", "b1", "b1.error", "n01", "n01.error", "cs1", "rel_cs1", "Im2", "xm2", "b2", "b2.error", "n02", "n02.error", "cs2", "rel_cs2", "Im3", "xm3", "b3", "b3.error", "n03", "n03.error", "cs3", "rel_cs3", "Im4", "xm4", "b4", "b4.error", "n04", "n04.error", "cs4", "rel_cs4", "Im5", "xm5", "b5", "b5.error", "n05", "n05.error", "cs5", "rel_cs5", "Im6", "xm6", "b6", "b6.error", "n06", "n06.error", "cs6", "rel_cs6", "Im7", "xm7", "b7", "b7.error", "n07", "n07.error", "cs7", "rel_cs7", "pseudo-R^2"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": [""] }, { "type": "character", "attributes": {}, "value": [""] }, { "type": "double", "attributes": {}, "value": [3] }, { "type": "double", "attributes": {}, "value": [169.4397935] }, { "type": "double", "attributes": {}, "value": [49.00633937] }, { "type": "double", "attributes": {}, "value": [1.66554152] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [13690.36155225] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1.95538284e-17] }, { "type": "double", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [23.00769045] }, { "type": "double", "attributes": {}, "value": [204.39749173] }, { "type": "double", "attributes": {}, "value": [0.0957434] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [7753.46496196] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1.12404889e-18] }, { "type": "double", "attributes": {}, "value": [0.0575] }, { "type": "double", "attributes": {}, "value": [405.46174044] }, { "type": "double", "attributes": {}, "value": [1591.66437954] }, { "type": "double", "attributes": {}, "value": [0.00157891] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1064017.12625395] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1.85367389e-20] }, { "type": "double", "attributes": {}, "value": [0.0009] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [0.9437] } ] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [4000, 5] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["TIME", "SUM", "COMP_ 1", "COMP_ 2", "COMP_ 3"] } ] } }, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 6.30485968, 12.60258846, 18.88607027, 25.14821862, 31.38199127, 37.5804048, 43.736549, 49.84360102, 55.89483932, 61.88365725, 67.80357638, 73.6482594, 79.41152266, 85.08734823, 90.66989549, 96.15351229, 101.53274546, 106.80235081, 111.95730262, 116.99280236, 121.90428695, 126.68743622, 131.33817982, 135.85270339, 140.22745401, 144.45914506, 148.54476023, 152.48155693, 156.2670689, 159.89910818, 163.37576629, 166.69541478, 169.85670501, 172.85856728, 175.70020928, 178.38111383, 180.90103601, 183.25999968, 185.45829333, 187.49646532, 189.37531868, 191.0959052, 192.6595191, 194.06769021, 195.3221766, 196.4249569, 197.3782221, 198.18436707, 198.84598163, 199.36584144, 199.7468985, 199.99227147, 200.10523576, 200.08921341, 199.94776289, 199.68456875, 199.30343115, 198.80825542, 198.20304155, 197.49187368, 196.67890972, 195.76837089, 194.76453154, 193.67170894, 192.49425332, 191.23653805, 189.90295002, 188.49788027, 187.02571483, 185.49082583, 183.89756295, 182.25024504, 180.55315222, 178.81051817, 177.02652283, 175.20528546, 173.35085797, 171.46721877, 169.55826684, 167.62781631, 165.6795913, 163.71722126, 161.74423665, 159.76406496, 157.78002721, 155.79533475, 153.81308647, 151.83626643, 149.86774172, 147.91026087, 145.96645245, 144.03882409, 142.12976183, 140.24152975, 138.37626999, 136.53600299, 134.72262807, 132.93792423, 131.1835513, 129.46105125, 127.77184978, 126.11725813, 124.4984751, 122.9165892, 121.3725811, 119.86732614, 118.40159699, 116.97606656, 115.59131088, 114.24781219, 112.9459621, 111.68606483, 110.46834047, 109.29292841, 108.15989069, 107.06921548, 106.0208205, 105.01455652, 104.05021082, 103.12751064, 102.24612664, 101.40567629, 100.60572727, 99.84580077, 99.1253748, 98.44388742, 97.80073984, 97.19529958, 96.62690341, 96.09486036, 95.5984545, 95.13694772, 94.70958242, 94.31558405, 93.95416363, 93.62452008, 93.32584253, 93.05731251, 92.81810599, 92.6073954, 92.42435148, 92.26814506, 92.13794873, 92.03293844, 91.95229492, 91.89520512, 91.86086348, 91.84847309, 91.85724681, 91.88640831, 91.93519294, 92.00284862, 92.08863657, 92.19183202, 92.31172479, 92.44761982, 92.59883768, 92.76471492, 92.94460442, 93.13787568, 93.34391501, 93.56212572, 93.79192821, 94.03276004, 94.28407596, 94.54534786, 94.81606472, 95.09573252, 95.38387409, 95.68002894, 95.98375309, 96.29461881, 96.6122144, 96.93614393, 97.26602692, 97.60149809, 97.94220699, 98.28781768, 98.63800842, 98.99247126, 99.35091174, 99.71304848, 100.07861283, 100.44734849, 100.81901111, 101.19336796, 101.5701975, 101.94928905, 102.33044237, 102.71346732, 103.0981835, 103.48441984, 103.87201428, 104.26081344, 104.6506722, 105.04145343, 105.43302765, 105.82527265, 106.21807326, 106.61132097, 107.00491366, 107.39875531, 107.79275574, 108.18683029, 108.58089957, 108.97488923, 109.36872971, 109.76235597, 110.15570729, 110.54872702, 110.94136243, 111.33356444, 111.72528745, 112.11648916, 112.50713039, 112.89717489, 113.28658923, 113.67534255, 114.06340651, 114.45075508, 114.83736446, 115.22321289, 115.60828057, 115.99254954, 116.37600357, 116.75862802, 117.1404098, 117.52133725, 117.90140001, 118.28058902, 118.65889637, 119.03631525, 119.41283989, 119.78846548, 120.16318812, 120.53700472, 120.90991302, 121.28191147, 121.6529992, 122.023176, 122.39244223, 122.76079883, 123.12824725, 123.4947894, 123.86042768, 124.22516487, 124.58900415, 124.95194907, 125.3140035, 125.67517162, 126.03545792, 126.39486713, 126.75340425, 127.11107449, 127.46788329, 127.82383629, 128.17893928, 128.53319826, 128.88661936, 129.23920886, 129.59097318, 129.94191885, 130.29205253, 130.64138095, 130.98991099, 131.33764956, 131.68460368, 132.03078045, 132.37618703, 132.72083062, 133.06471851, 133.40785802, 133.75025652, 134.09192143, 134.43286018, 134.77308028, 135.11258922, 135.45139455, 135.78950383, 136.12692464, 136.46366458, 136.79973127, 137.13513233, 137.46987539, 137.8039681, 138.13741811, 138.47023306, 138.80242061, 139.1339884, 139.4649441, 139.79529534, 140.12504976, 140.454215, 140.78279868, 141.11080841, 141.4382518, 141.76513644, 142.09146991, 142.41725976, 142.74251355, 143.0672388, 143.39144303, 143.71513372, 144.03831836, 144.36100438, 144.68319923, 145.0049103, 145.32614498, 145.64691062, 145.96721455, 146.28706409, 146.60646651, 146.92542906, 147.24395896, 147.56206339, 147.87974954, 148.19702451, 148.51389542, 148.83036933, 149.14645326, 149.46215423, 149.77747919, 150.09243508, 150.40702878, 150.72126716, 151.03515704, 151.34870519, 151.66191837, 151.97480328, 152.28736659, 152.59961493, 152.91155488, 153.22319298, 153.53453575, 153.84558964, 154.15636108, 154.46685645, 154.77708207, 155.08704424, 155.3967492, 155.70620316, 156.01541228, 156.32438266, 156.63312037, 156.94163142, 157.2499218, 157.55799742, 157.86586417, 158.17352786, 158.48099429, 158.78826919, 159.09535823, 159.40226707, 159.70900127, 160.01556638, 160.32196788, 160.62821122, 160.93430176, 161.24024485, 161.54604577, 161.85170975, 162.15724197, 162.46264757, 162.7679316, 163.07309911, 163.37815505, 163.68310435, 163.98795188, 164.29270245, 164.59736081, 164.90193168, 165.2064197, 165.51082948, 165.81516557, 166.11943245, 166.42363456, 166.72777629, 167.03186197, 167.33589588, 167.63988224, 167.9438252, 168.2477289, 168.55159739, 168.85543467, 169.15924469, 169.46303135, 169.76679849, 170.0705499, 170.37428931, 170.6780204, 170.98174679, 171.28547205, 171.5891997, 171.89293319, 172.19667594, 172.50043129, 172.80420255, 173.10799295, 173.41180569, 173.7156439, 174.01951067, 174.32340902, 174.62734193, 174.93131232, 175.23532306, 175.53937696, 175.84347679, 176.14762524, 176.45182499, 176.75607863, 177.06038871, 177.36475772, 177.66918813, 177.97368231, 178.27824262, 178.58287133, 178.8875707, 179.19234291, 179.49719009, 179.80211433, 180.10711767, 180.41220209, 180.71736952, 181.02262185, 181.32796091, 181.6333885, 181.93890634, 182.24451612, 182.55021948, 182.85601801, 183.16191325, 183.4679067, 183.77399979, 184.08019394, 184.38649048, 184.69289073, 184.99939594, 185.30600732, 185.61272604, 185.91955322, 186.22648993, 186.53353721, 186.84069602, 187.14796733, 187.45535201, 187.76285093, 188.07046489, 188.37819466, 188.68604096, 188.99400447, 189.30208582, 189.61028561, 189.9186044, 190.2270427, 190.53560098, 190.84427967, 191.15307916, 191.46199981, 191.77104192, 192.08020577, 192.3894916, 192.69889959, 193.00842991, 193.31808267, 193.62785797, 193.93775583, 194.24777627, 194.55791927, 194.86818476, 195.17857263, 195.48908277, 195.79971499, 196.11046909, 196.42134484, 196.73234197, 197.04346016, 197.35469909, 197.66605837, 197.97753762, 198.28913639, 198.60085422, 198.91269061, 199.22464503, 199.53671693, 199.84890572, 200.16121078, 200.47363146, 200.78616708, 201.09881695, 201.41158034, 201.72445647, 202.03744457, 202.35054381, 202.66375336, 202.97707235, 203.29049989, 203.60403506, 203.91767692, 204.23142449, 204.54527678, 204.85923278, 205.17329144, 205.48745171, 205.80171249, 206.11607267, 206.43053113, 206.74508671, 207.05973823, 207.3744845, 207.68932431, 208.0042564, 208.31927954, 208.63439243, 208.94959379, 209.2648823, 209.58025662, 209.89571541, 210.21125728, 210.52688086, 210.84258474, 211.1583675, 211.47422769, 211.79016387, 212.10617456, 212.42225827, 212.73841352, 213.05463877, 213.37093249, 213.68729315, 214.00371918, 214.32020901, 214.63676106, 214.95337372, 215.27004538, 215.58677443, 215.90355921, 216.22039809, 216.53728941, 216.8542315, 217.17122267, 217.48826123, 217.80534548, 218.12247372, 218.43964421, 218.75685524, 219.07410505, 219.3913919, 219.70871404, 220.0260697, 220.3434571, 220.66087447, 220.97832002, 221.29579195, 221.61328847, 221.93080776, 222.24834801, 222.5659074, 222.8834841, 223.20107629, 223.51868213, 223.83629976, 224.15392736, 224.47156306, 224.78920502, 225.10685137, 225.42450024, 225.74214979, 226.05979812, 226.37744338, 226.69508369, 227.01271716, 227.33034192, 227.64795609, 227.96555778, 228.2831451, 228.60071617, 228.9182691, 229.235802, 229.55331297, 229.87080014, 230.18826159, 230.50569545, 230.82309982, 231.1404728, 231.45781251, 231.77511706, 232.09238454, 232.40961309, 232.72680079, 233.04394577, 233.36104615, 233.67810003, 233.99510553, 234.31206078, 234.62896389, 234.94581299, 235.2626062, 235.57934165, 235.89601747, 236.2126318, 236.52918277, 236.84566852, 237.16208719, 237.47843694, 237.79471591, 238.11092226, 238.42705414, 238.74310971, 239.05908715, 239.37498462, 239.69080029, 240.00653235, 240.32217897, 240.63773835, 240.95320868, 241.26858816, 241.58387498, 241.89906737, 242.21416352, 242.52916167, 242.84406003, 243.15885683, 243.47355031, 243.78813872, 244.10262029, 244.41699328, 244.73125596, 245.04540658, 245.35944341, 245.67336474, 245.98716885, 246.30085403, 246.61441857, 246.92786079, 247.24117898, 247.55437147, 247.86743659, 248.18037265, 248.49317801, 248.805851, 249.11838998, 249.4307933, 249.74305934, 250.05518646, 250.36717304, 250.67901748, 250.99071817, 251.30227351, 251.61368192, 251.9249418, 252.2360516, 252.54700973, 252.85781464, 253.16846478, 253.47895861, 253.78929458, 254.09947118, 254.40948688, 254.71934016, 255.02902953, 255.33855349, 255.64791054, 255.95709922, 256.26611804, 256.57496554, 256.88364026, 257.19214076, 257.5004656, 257.80861334, 258.11658255, 258.42437184, 258.73197977, 259.03940496, 259.34664601, 259.65370155, 259.96057019, 260.26725056, 260.57374132, 260.8800411, 261.18614857, 261.49206239, 261.79778124, 262.10330379, 262.40862874, 262.71375478, 263.01868063, 263.323405, 263.6279266, 263.93224418, 264.23635647, 264.54026222, 264.84396018, 265.14744912, 265.45072781, 265.75379502, 266.05664956, 266.35929021, 266.66171578, 266.96392508, 267.26591693, 267.56769016, 267.8692436, 268.1705761, 268.47168652, 268.77257371, 269.07323654, 269.37367388, 269.67388463, 269.97386767, 270.27362189, 270.57314622, 270.87243957, 271.17150085, 271.47032899, 271.76892295, 272.06728165, 272.36540407, 272.66328915, 272.96093586, 273.25834319, 273.55551011, 273.85243563, 274.14911872, 274.44555842, 274.74175371, 275.03770364, 275.33340722, 275.6288635, 275.92407151, 276.2190303, 276.51373894, 276.80819649, 277.10240201, 277.3963546, 277.69005332, 277.98349729, 278.27668559, 278.56961734, 278.86229164, 279.15470762, 279.44686441, 279.73876114, 280.03039695, 280.32177099, 280.61288241, 280.90373038, 281.19431406, 281.48463263, 281.77468527, 282.06447117, 282.35398951, 282.64323951, 282.93222036, 283.22093128, 283.50937149, 283.79754022, 284.08543669, 284.37306015, 284.66040984, 284.94748501, 285.23428491, 285.52080882, 285.80705598, 286.09302569, 286.37871723, 286.66412987, 286.9492629, 287.23411564, 287.51868738, 287.80297742, 288.08698509, 288.37070971, 288.6541506, 288.93730709, 289.22017851, 289.50276423, 289.78506357, 290.06707589, 290.34880056, 290.63023694, 290.91138438, 291.19224228, 291.47281001, 291.75308696, 292.0330725, 292.31276605, 292.592167, 292.87127475, 293.15008871, 293.42860831, 293.70683295, 293.98476206, 294.26239508, 294.53973144, 294.81677057, 295.09351191, 295.36995493, 295.64609906, 295.92194378, 296.19748853, 296.47273278, 296.74767601, 297.02231769, 297.2966573, 297.57069433, 297.84442826, 298.11785858, 298.39098479, 298.6638064, 298.9363229, 299.2085338, 299.48043863, 299.75203689, 300.02332811, 300.29431182, 300.56498753, 300.83535479, 301.10541314, 301.3751621, 301.64460123, 301.91373008, 302.1825482, 302.45105513, 302.71925046, 302.98713372, 303.25470451, 303.52196237, 303.78890689, 304.05553765, 304.32185422, 304.58785619, 304.85354314, 305.11891468, 305.38397039, 305.64870986, 305.91313271, 306.17723854, 306.44102695, 306.70449755, 306.96764996, 307.23048379, 307.49299867, 307.75519421, 308.01707005, 308.27862582, 308.53986114, 308.80077565, 309.06136899, 309.3216408, 309.58159073, 309.84121841, 310.10052351, 310.35950567, 310.61816455, 310.8764998, 311.1345111, 311.39219809, 311.64956045, 311.90659785, 312.16330995, 312.41969644, 312.67575698, 312.93149126, 313.18689895, 313.44197975, 313.69673334, 313.95115941, 314.20525765, 314.45902775, 314.7124694, 314.96558232, 315.2183662, 315.47082074, 315.72294565, 315.97474063, 316.2262054, 316.47733967, 316.72814315, 316.97861556, 317.22875662, 317.47856605, 317.72804358, 317.97718892, 318.2260018, 318.47448197, 318.72262913, 318.97044304, 319.21792342, 319.46507002, 319.71188257, 319.95836081, 320.20450449, 320.45031335, 320.69578714, 320.94092561, 321.18572851, 321.43019559, 321.67432661, 321.91812132, 322.16157948, 322.40470086, 322.6474852, 322.88993228, 323.13204187, 323.37381372, 323.61524761, 323.85634331, 324.09710058, 324.33751921, 324.57759897, 324.81733963, 325.05674097, 325.29580278, 325.53452483, 325.77290691, 326.01094881, 326.2486503, 326.48601118, 326.72303123, 326.95971025, 327.19604803, 327.43204437, 327.66769905, 327.90301188, 328.13798264, 328.37261116, 328.60689721, 328.84084061, 329.07444116, 329.30769866, 329.54061292, 329.77318375, 330.00541096, 330.23729436, 330.46883375, 330.70002896, 330.93087979, 331.16138607, 331.39154761, 331.62136422, 331.85083573, 332.07996195, 332.30874272, 332.53717785, 332.76526716, 332.99301049, 333.22040766, 333.44745849, 333.67416282, 333.90052047, 334.12653128, 334.35219508, 334.5775117, 334.80248099, 335.02710276, 335.25137687, 335.47530315, 335.69888143, 335.92211157, 336.14499339, 336.36752675, 336.58971148, 336.81154743, 337.03303445, 337.25417239, 337.47496108, 337.69540038, 337.91549015, 338.13523022, 338.35462046, 338.57366071, 338.79235083, 339.01069067, 339.22868009, 339.44631895, 339.6636071, 339.88054441, 340.09713073, 340.31336592, 340.52924984, 340.74478236, 340.95996335, 341.17479265, 341.38927015, 341.6033957, 341.81716918, 342.03059045, 342.24365938, 342.45637584, 342.66873969, 342.88075083, 343.0924091, 343.3037144, 343.51466659, 343.72526554, 343.93551114, 344.14540326, 344.35494178, 344.56412658, 344.77295753, 344.98143452, 345.18955743, 345.39732613, 345.60474052, 345.81180047, 346.01850588, 346.22485661, 346.43085257, 346.63649364, 346.84177971, 347.04671066, 347.25128638, 347.45550676, 347.6593717, 347.86288109, 348.06603481, 348.26883276, 348.47127484, 348.67336094, 348.87509096, 349.07646479, 349.27748232, 349.47814347, 349.67844811, 349.87839617, 350.07798752, 350.27722209, 350.47609976, 350.67462043, 350.87278402, 351.07059043, 351.26803956, 351.46513131, 351.66186559, 351.85824231, 352.05426138, 352.2499227, 352.44522619, 352.64017175, 352.83475929, 353.02898872, 353.22285996, 353.41637292, 353.6095275, 353.80232364, 353.99476123, 354.1868402, 354.37856046, 354.56992192, 354.76092451, 354.95156815, 355.14185274, 355.33177822, 355.5213445, 355.7105515, 355.89939914, 356.08788735, 356.27601605, 356.46378516, 356.65119461, 356.83824431, 357.02493421, 357.21126422, 357.39723426, 357.58284428, 357.76809419, 357.95298393, 358.13751342, 358.32168259, 358.50549138, 358.68893972, 358.87202754, 359.05475477, 359.23712134, 359.4191272, 359.60077227, 359.78205649, 359.96297979, 360.14354213, 360.32374342, 360.50358361, 360.68306263, 360.86218044, 361.04093696, 361.21933214, 361.39736592, 361.57503824, 361.75234904, 361.92929828, 362.10588588, 362.28211179, 362.45797597, 362.63347836, 362.80861889, 362.98339753, 363.15781422, 363.3318689, 363.50556152, 363.67889204, 363.85186041, 364.02446657, 364.19671047, 364.36859208, 364.54011134, 364.7112682, 364.88206262, 365.05249456, 365.22256397, 365.3922708, 365.56161501, 365.73059656, 365.8992154, 366.0674715, 366.23536482, 366.4028953, 366.57006292, 366.73686763, 366.9033094, 367.06938818, 367.23510395, 367.40045666, 367.56544627, 367.73007275, 367.89433608, 368.0582362, 368.22177309, 368.38494672, 368.54775705, 368.71020404, 368.87228768, 369.03400793, 369.19536476, 369.35635813, 369.51698803, 369.67725441, 369.83715727, 369.99669655, 370.15587225, 370.31468434, 370.47313278, 370.63121756, 370.78893865, 370.94629602, 371.10328966, 371.25991955, 371.41618565, 371.57208795, 371.72762643, 371.88280107, 372.03761185, 372.19205875, 372.34614176, 372.49986085, 372.653216, 372.80620721, 372.95883446, 373.11109773, 373.262997, 373.41453227, 373.56570351, 373.71651072, 373.86695389, 374.017033, 374.16674804, 374.316099, 374.46508588, 374.61370865, 374.76196732, 374.90986188, 375.05739231, 375.20455862, 375.35136078, 375.49779881, 375.64387269, 375.78958242, 375.934928, 376.07990942, 376.22452667, 376.36877977, 376.5126687, 376.65619346, 376.79935406, 376.94215049, 377.08458275, 377.22665085, 377.36835479, 377.50969457, 377.65067019, 377.79128165, 377.93152897, 378.07141214, 378.21093117, 378.35008607, 378.48887684, 378.62730349, 378.76536603, 378.90306447, 379.04039881, 379.17736906, 379.31397523, 379.45021734, 379.5860954, 379.72160941, 379.85675939, 379.99154535, 380.12596731, 380.26002528, 380.39371927, 380.52704929, 380.66001538, 380.79261753, 380.92485577, 381.05673011, 381.18824057, 381.31938718, 381.45016995, 381.58058889, 381.71064404, 381.8403354, 381.96966301, 382.09862687, 382.22722703, 382.35546349, 382.48333629, 382.61084544, 382.73799097, 382.86477291, 382.99119129, 383.11724612, 383.24293743, 383.36826526, 383.49322963, 383.61783057, 383.74206811, 383.86594228, 383.9894531, 384.11260062, 384.23538486, 384.35780585, 384.47986362, 384.60155822, 384.72288967, 384.843858, 384.96446326, 385.08470547, 385.20458468, 385.32410091, 385.44325421, 385.56204462, 385.68047216, 385.79853689, 385.91623884, 386.03357805, 386.15055456, 386.2671684, 386.38341963, 386.49930829, 386.61483441, 386.72999804, 386.84479923, 386.95923801, 387.07331444, 387.18702855, 387.3003804, 387.41337003, 387.52599749, 387.63826282, 387.75016607, 387.86170729, 387.97288654, 388.08370385, 388.19415929, 388.30425289, 388.41398472, 388.52335482, 388.63236326, 388.74101007, 388.84929531, 388.95721904, 389.06478131, 389.17198218, 389.27882171, 389.38529994, 389.49141693, 389.59717276, 389.70256746, 389.8076011, 389.91227374, 390.01658544, 390.12053625, 390.22412625, 390.32735548, 390.43022402, 390.53273192, 390.63487924, 390.73666605, 390.83809242, 390.93915841, 391.03986407, 391.14020949, 391.24019472, 391.33981983, 391.43908488, 391.53798995, 391.63653511, 391.73472041, 391.83254594, 391.93001175, 392.02711793, 392.12386454, 392.22025165, 392.31627933, 392.41194766, 392.50725671, 392.60220655, 392.69679726, 392.79102891, 392.88490158, 392.97841534, 393.07157026, 393.16436643, 393.25680393, 393.34888282, 393.44060318, 393.53196511, 393.62296867, 393.71361394, 393.80390101, 393.89382995, 393.98340085, 394.07261379, 394.16146885, 394.24996611, 394.33810567, 394.42588759, 394.51331197, 394.60037888, 394.68708843, 394.77344068, 394.85943574, 394.94507368, 395.03035459, 395.11527856, 395.19984569, 395.28405605, 395.36790974, 395.45140685, 395.53454746, 395.61733168, 395.69975959, 395.78183128, 395.86354685, 395.94490639, 396.02590999, 396.10655775, 396.18684976, 396.26678612, 396.34636693, 396.42559227, 396.50446225, 396.58297696, 396.66113651, 396.73894098, 396.81639048, 396.89348511, 396.97022497, 397.04661016, 397.12264077, 397.19831691, 397.27363869, 397.3486062, 397.42321955, 397.49747884, 397.57138417, 397.64493565, 397.71813339, 397.79097748, 397.86346804, 397.93560517, 398.00738898, 398.07881957, 398.14989705, 398.22062154, 398.29099314, 398.36101196, 398.4306781, 398.49999169, 398.56895283, 398.63756163, 398.7058182, 398.77372266, 398.84127512, 398.90847569, 398.97532449, 399.04182163, 399.10796722, 399.17376139, 399.23920424, 399.30429589, 399.36903646, 399.43342607, 399.49746484, 399.56115287, 399.6244903, 399.68747724, 399.75011381, 399.81240012, 399.87433631, 399.9359225, 399.99715879, 400.05804532, 400.11858221, 400.17876958, 400.23860756, 400.29809627, 400.35723583, 400.41602637, 400.47446801, 400.53256088, 400.59030511, 400.64770082, 400.70474815, 400.76144721, 400.81779814, 400.87380107, 400.92945612, 400.98476343, 401.03972312, 401.09433533, 401.14860019, 401.20251782, 401.25608837, 401.30931196, 401.36218873, 401.41471881, 401.46690233, 401.51873944, 401.57023026, 401.62137492, 401.67217358, 401.72262635, 401.77273339, 401.82249482, 401.87191079, 401.92098142, 401.96970687, 402.01808727, 402.06612276, 402.11381348, 402.16115958, 402.20816118, 402.25481844, 402.30113149, 402.34710048, 402.39272555, 402.43800685, 402.48294451, 402.52753869, 402.57178952, 402.61569716, 402.65926174, 402.70248342, 402.74536234, 402.78789865, 402.83009249, 402.87194402, 402.91345338, 402.95462072, 402.99544619, 403.03592994, 403.07607212, 403.11587288, 403.15533237, 403.19445074, 403.23322815, 403.27166475, 403.30976069, 403.34751613, 403.38493121, 403.42200609, 403.45874093, 403.49513589, 403.53119111, 403.56690676, 403.60228298, 403.63731994, 403.6720178, 403.70637671, 403.74039684, 403.77407833, 403.80742135, 403.84042606, 403.87309262, 403.90542118, 403.93741192, 403.96906499, 404.00038055, 404.03135876, 404.0619998, 404.09230381, 404.12227097, 404.15190144, 404.18119538, 404.21015296, 404.23877435, 404.2670597, 404.29500918, 404.32262297, 404.34990123, 404.37684412, 404.40345182, 404.42972449, 404.4556623, 404.48126542, 404.50653402, 404.53146827, 404.55606834, 404.5803344, 404.60426662, 404.62786518, 404.65113024, 404.67406198, 404.69666057, 404.71892619, 404.74085901, 404.7624592, 404.78372694, 404.8046624, 404.82526575, 404.84553719, 404.86547687, 404.88508498, 404.9043617, 404.9233072, 404.94192165, 404.96020525, 404.97815816, 404.99578057, 405.01307266, 405.0300346, 405.04666658, 405.06296878, 405.07894138, 405.09458456, 405.1098985, 405.12488338, 405.13953939, 405.15386672, 405.16786554, 405.18153604, 405.19487841, 405.20789282, 405.22057947, 405.23293854, 405.24497021, 405.25667468, 405.26805213, 405.27910274, 405.28982671, 405.30022423, 405.31029547, 405.32004064, 405.32945992, 405.33855349, 405.34732156, 405.35576431, 405.36388193, 405.37167461, 405.37914255, 405.38628594, 405.39310496, 405.39959982, 405.4057707, 405.41161781, 405.41714133, 405.42234145, 405.42721838, 405.43177231, 405.43600343, 405.43991194, 405.44349804, 405.44676192, 405.44970379, 405.45232383, 405.45462225, 405.45659924, 405.458255, 405.45958974, 405.46060365, 405.46129693, 405.46166979, 405.46172242, 405.46145502, 405.4608678, 405.45996095, 405.45873469, 405.4571892, 405.4553247, 405.45314139, 405.45063947, 405.44781915, 405.44468063, 405.44122411, 405.4374498, 405.43335791, 405.42894864, 405.4242222, 405.4191788, 405.41381863, 405.40814192, 405.40214886, 405.39583966, 405.38921455, 405.38227371, 405.37501736, 405.36744572, 405.35955899, 405.35135737, 405.3428411, 405.33401036, 405.32486538, 405.31540637, 405.30563353, 405.29554708, 405.28514724, 405.27443422, 405.26340823, 405.25206948, 405.24041819, 405.22845457, 405.21617885, 405.20359122, 405.19069192, 405.17748115, 405.16395914, 405.15012609, 405.13598223, 405.12152777, 405.10676294, 405.09168794, 405.076303, 405.06060834, 405.04460417, 405.02829072, 405.0116682, 404.99473684, 404.97749686, 404.95994847, 404.9420919, 404.92392737, 404.9054551, 404.88667532, 404.86758824, 404.8481941, 404.8284931, 404.80848549, 404.78817147, 404.76755128, 404.74662514, 404.72539327, 404.70385591, 404.68201327, 404.65986558, 404.63741307, 404.61465596, 404.59159449, 404.56822887, 404.54455934, 404.52058613, 404.49630946, 404.47172956, 404.44684666, 404.42166099, 404.39617278, 404.37038226, 404.34428966, 404.31789521, 404.29119915, 404.26420169, 404.23690308, 404.20930355, 404.18140332, 404.15320263, 404.12470172, 404.09590082, 404.06680015, 404.03739996, 404.00770048, 403.97770194, 403.94740458, 403.91680863, 403.88591433, 403.85472191, 403.82323162, 403.79144367, 403.75935833, 403.72697581, 403.69429636, 403.66132021, 403.6280476, 403.59447878, 403.56061398, 403.52645343, 403.49199738, 403.45724607, 403.42219973, 403.38685861, 403.35122294, 403.31529298, 403.27906895, 403.2425511, 403.20573967, 403.16863491, 403.13123704, 403.09354633, 403.05556301, 403.01728732, 402.97871951, 402.93985981, 402.90070848, 402.86126576, 402.8215319, 402.78150712, 402.7411917, 402.70058586, 402.65968985, 402.61850393, 402.57702833, 402.5352633, 402.49320909, 402.45086595, 402.40823412, 402.36531386, 402.3221054, 402.27860901, 402.23482492, 402.19075338, 402.14639465, 402.10174897, 402.0568166, 402.01159778, 401.96609276, 401.9203018, 401.87422514, 401.82786304, 401.78121575, 401.73428352, 401.6870666, 401.63956524, 401.5917797, 401.54371022, 401.49535707, 401.4467205, 401.39780075, 401.34859808, 401.29911275, 401.24934501, 401.19929512, 401.14896333, 401.09834989, 401.04745507, 400.99627911, 400.94482227, 400.89308482, 400.84106699, 400.78876907, 400.73619129, 400.68333391, 400.63019721, 400.57678142, 400.52308681, 400.46911365, 400.41486218, 400.36033266, 400.30552536, 400.25044054, 400.19507845, 400.13943935, 400.08352351, 400.02733119, 399.97086263, 399.91411812, 399.8570979, 399.79980224, 399.7422314, 399.68438565, 399.62626523, 399.56787043, 399.50920149, 399.45025869, 399.39104229, 399.33155254, 399.27178971, 399.21175407, 399.15144589, 399.09086541, 399.03001292, 398.96888867, 398.90749294, 398.84582597, 398.78388805, 398.72167943, 398.65920039, 398.59645119, 398.53343209, 398.47014336, 398.40658527, 398.34275809, 398.27866208, 398.21429752, 398.14966466, 398.08476378, 398.01959515, 397.95415903, 397.8884557, 397.82248542, 397.75624846, 397.68974509, 397.62297558, 397.55594021, 397.48863924, 397.42107294, 397.35324158, 397.28514543, 397.21678477, 397.14815987, 397.07927099, 397.01011842, 396.94070241, 396.87102325, 396.80108121, 396.73087655, 396.66040956, 396.5896805, 396.51868965, 396.44743728, 396.37592367, 396.30414908, 396.2321138, 396.1598181, 396.08726225, 396.01444653, 395.94137121, 395.86803657, 395.79444288, 395.72059042, 395.64647946, 395.57211029, 395.49748317, 395.42259839, 395.34745621, 395.27205693, 395.19640081, 395.12048812, 395.04431916, 394.9678942, 394.89121351, 394.81427737, 394.73708606, 394.65963987, 394.58193906, 394.50398391, 394.42577472, 394.34731175, 394.26859528, 394.1896256, 394.11040298, 394.03092771, 393.95120007, 393.87122032, 393.79098877, 393.71050568, 393.62977134, 393.54878602, 393.46755002, 393.38606361, 393.30432708, 393.22234069, 393.14010475, 393.05761953, 392.97488531, 392.89190237, 392.80867101, 392.72519149, 392.64146411, 392.55748915, 392.47326688, 392.38879761, 392.3040816, 392.21911915, 392.13391053, 392.04845604, 391.96275595, 391.87681055, 391.79062013, 391.70418498, 391.61750537, 391.53058159, 391.44341393, 391.35600268, 391.26834812, 391.18045053, 391.09231021, 391.00392743, 390.91530249, 390.82643568, 390.73732728, 390.64797757, 390.55838685, 390.4685554, 390.37848351, 390.28817147, 390.19761956, 390.10682808, 390.01579731, 389.92452754, 389.83301907, 389.74127217, 389.64928714, 389.55706426, 389.46460383, 389.37190614, 389.27897147, 389.18580012, 389.09239237, 388.99874852, 388.90486885, 388.81075366, 388.71640323, 388.62181786, 388.52699784, 388.43194346, 388.336655, 388.24113277, 388.14537705, 388.04938813, 387.95316631, 387.85671188, 387.76002513, 387.66310635, 387.56595583, 387.46857387, 387.37096076, 387.27311679, 387.17504225, 387.07673744, 386.97820265, 386.87943818, 386.78044432, 386.68122135, 386.58176958, 386.4820893, 386.3821808, 386.28204438, 386.18168032, 386.08108894, 385.98027051, 385.87922534, 385.77795371, 385.67645593, 385.57473229, 385.47278308, 385.3706086, 385.26820915, 385.16558501, 385.0627365, 384.95966389, 384.85636749, 384.75284759, 384.6491045, 384.54513849, 384.44094989, 384.33653897, 384.23190603, 384.12705138, 384.0219753, 383.9166781, 383.81116008, 383.70542152, 383.59946274, 383.49328401, 383.38688565, 383.28026795, 383.17343121, 383.06637572, 382.95910179, 382.85160971, 382.74389978, 382.63597229, 382.52782756, 382.41946587, 382.31088752, 382.20209282, 382.09308206, 381.98385554, 381.87441355, 381.76475641, 381.65488441, 381.54479784, 381.43449701, 381.32398222, 381.21325377, 381.10231195, 380.99115707, 380.87978942, 380.76820931, 380.65641704, 380.5444129, 380.4321972, 380.31977024, 380.20713232, 380.09428373, 379.98122479, 379.86795579, 379.75447703, 379.64078881, 379.52689143, 379.4127852, 379.29847042, 379.18394738, 379.0692164, 378.95427776, 378.83913178, 378.72377875, 378.60821898, 378.49245277, 378.37648041, 378.26030222, 378.1439185, 378.02732954, 377.91053565, 377.79353713, 377.67633428, 377.55892741, 377.44131682, 377.32350282, 377.20548569, 377.08726576, 376.96884332, 376.85021867, 376.73139212, 376.61236396, 376.49313451, 376.37370407, 376.25407294, 376.13424142, 376.01420982, 375.89397844, 375.77354759, 375.65291756, 375.53208867, 375.41106121, 375.2898355, 375.16841182, 375.0467905, 374.92497183, 374.80295611, 374.68074366, 374.55833477, 374.43572975, 374.31292891, 374.18993255, 374.06674097, 373.94335447, 373.81977338, 373.69599797, 373.57202858, 373.44786549, 373.32350901, 373.19895945, 373.07421711, 372.9492823, 372.82415533, 372.69883649, 372.5733261, 372.44762445, 372.32173187, 372.19564864, 372.06937507, 371.94291148, 371.81625816, 371.68941543, 371.56238358, 371.43516293, 371.30775378, 371.18015643, 371.0523712, 370.92439838, 370.79623829, 370.66789122, 370.53935749, 370.4106374, 370.28173126, 370.15263937, 370.02336205, 369.89389959, 369.7642523, 369.63442049, 369.50440447, 369.37420454, 369.243821, 369.11325418, 368.98250436, 368.85157186, 368.72045699, 368.58916004, 368.45768134, 368.32602118, 368.19417987, 368.06215772, 367.92995503, 367.79757211, 367.66500928, 367.53226683, 367.39934507, 367.26624431, 367.13296485, 366.99950701, 366.86587109, 366.7320574, 366.59806624, 366.46389792, 366.32955276, 366.19503104, 366.06033309, 365.92545921, 365.79040971, 365.65518489, 365.51978506, 365.38421053, 365.24846161, 365.1125386, 364.97644181, 364.84017155, 364.70372813, 364.56711184, 364.43032301, 364.29336194, 364.15622892, 364.01892429, 363.88144833, 363.74380135, 363.60598368, 363.4679956, 363.32983743, 363.19150948, 363.05301206, 362.91434546, 362.77551001, 362.636506, 362.49733375, 362.35799355, 362.21848573, 362.07881058, 361.93896842, 361.79895955, 361.65878428, 361.51844291, 361.37793576, 361.23726313, 361.09642533, 360.95542266, 360.81425544, 360.67292397, 360.53142857, 360.38976952, 360.24794715, 360.10596177, 359.96381367, 359.82150317, 359.67903057, 359.53639618, 359.39360032, 359.25064328, 359.10752537, 358.9642469, 358.82080819, 358.67720953, 358.53345123, 358.3895336, 358.24545695, 358.10122159, 357.95682782, 357.81227595, 357.66756629, 357.52269914, 357.37767481, 357.23249362, 357.08715586, 356.94166184, 356.79601188, 356.65020627, 356.50424533, 356.35812936, 356.21185867, 356.06543357, 355.91885436, 355.77212135, 355.62523485, 355.47819516, 355.3310026, 355.18365747, 355.03616007, 354.88851071, 354.7407097, 354.59275735, 354.44465397, 354.29639985, 354.14799531, 353.99944065, 353.85073618, 353.70188221, 353.55287905, 353.40372699, 353.25442635, 353.10497744, 352.95538055, 352.805636, 352.65574409, 352.50570513, 352.35551943, 352.20518729, 352.05470902, 351.90408492, 351.7533153, 351.60240047, 351.45134073, 351.30013639, 351.14878776, 350.99729513, 350.84565883, 350.69387914, 350.54195639, 350.38989087, 350.23768289, 350.08533276, 349.93284078, 349.78020725, 349.62743249, 349.4745168, 349.32146048, 349.16826385, 349.0149272, 348.86145084, 348.70783507, 348.55408021, 348.40018655, 348.24615441, 348.09198408, 347.93767587, 347.78323009, 347.62864704, 347.47392703, 347.31907036, 347.16407734, 347.00894827, 346.85368345, 346.6982832, 346.54274781, 346.38707759, 346.23127284, 346.07533387, 345.91926099, 345.76305449, 345.60671468, 345.45024187, 345.29363636, 345.13689845, 344.98002845, 344.82302666, 344.66589339, 344.50862894, 344.3512336, 344.1937077, 344.03605152, 343.87826538, 343.72034958, 343.56230441, 343.40413019, 343.24582722, 343.0873958, 342.92883623, 342.77014881, 342.61133386, 342.45239167, 342.29332254, 342.13412678, 341.97480469, 341.81535657, 341.65578273, 341.49608347, 341.33625909, 341.17630989, 341.01623617, 340.85603824, 340.6957164, 340.53527095, 340.3747022, 340.21401044, 340.05319597, 339.89225911, 339.73120014, 339.57001937, 339.40871711, 339.24729365, 339.0857493, 338.92408435, 338.76229911, 338.60039388, 338.43836896, 338.27622465, 338.11396125, 337.95157906, 337.78907839, 337.62645953, 337.46372278, 337.30086844, 337.13789682, 336.97480821, 336.81160292, 336.64828124, 336.48484347, 336.32128992, 336.15762088, 335.99383665, 335.82993754, 335.66592384, 335.50179585, 335.33755387, 335.1731982, 335.00872913, 334.84414698, 334.67945203, 334.51464459, 334.34972495, 334.18469341, 334.01955027, 333.85429583, 333.68893039, 333.52345425, 333.35786769, 333.19217103, 333.02636456, 332.86044858, 332.69442338, 332.52828926, 332.36204652, 332.19569546, 332.02923637, 331.86266956, 331.69599531, 331.52921393, 331.36232571, 331.19533095, 331.02822994, 330.86102299, 330.69371038, 330.52629242, 330.3587694, 330.19114161, 330.02340936, 329.85557294, 329.68763264, 329.51958876, 329.35144159, 329.18319144, 329.01483859, 328.84638334, 328.67782599, 328.50916683, 328.34040616, 328.17154426, 328.00258144, 327.83351799, 327.66435421, 327.49509038, 327.3257268, 327.15626377, 326.98670159, 326.81704053, 326.6472809, 326.47742299, 326.3074671, 326.13741352, 325.96726253, 325.79701444, 325.62666954, 325.45622811, 325.28569046, 325.11505687, 324.94432764, 324.77350306, 324.60258342, 324.43156901, 324.26046013, 324.08925706, 323.91796011, 323.74656955, 323.57508569, 323.40350881, 323.2318392, 323.06007716, 322.88822298, 322.71627694, 322.54423934, 322.37211047, 322.19989061, 322.02758007, 321.85517912, 321.68268806, 321.51010718, 321.33743677, 321.16467712, 320.99182851, 320.81889124, 320.64586559, 320.47275186, 320.29955034, 320.1262613, 319.95288505, 319.77942186, 319.60587203, 319.43223585, 319.2585136, 319.08470558, 318.91081206, 318.73683334, 318.56276971, 318.38862144, 318.21438884, 318.04007218, 317.86567176, 317.69118786, 317.51662076, 317.34197075, 317.16723813, 316.99242317, 316.81752616, 316.64254739, 316.46748715, 316.29234571, 316.11712337, 315.9418204, 315.7664371, 315.59097376, 315.41543064, 315.23980805, 315.06410626, 314.88832556, 314.71246623, 314.53652856, 314.36051283, 314.18441933, 314.00824833, 313.83200013, 313.655675, 313.47927323, 313.3027951, 313.1262409, 312.94961091, 312.7729054, 312.59612467, 312.41926899, 312.24233865, 312.06533393, 311.88825511, 311.71110247, 311.53387629, 311.35657686, 311.17920446, 311.00175936, 310.82424186, 310.64665222, 310.46899073, 310.29125767, 310.11345332, 309.93557797, 309.75763188, 309.57961534, 309.40152864, 309.22337204, 309.04514583, 308.86685029, 308.68848569, 308.51005232, 308.33155045, 308.15298037, 307.97434234, 307.79563666, 307.61686359, 307.43802342, 307.25911641, 307.08014286, 306.90110303, 306.72199721, 306.54282567, 306.36358868, 306.18428653, 306.00491949, 305.82548784, 305.64599185, 305.4664318, 305.28680796, 305.10712062, 304.92737004, 304.74755649, 304.56768027, 304.38774164, 304.20774087, 304.02767824, 303.84755403, 303.6673685, 303.48712194, 303.30681461, 303.1264468, 302.94601876, 302.76553079, 302.58498314, 302.4043761, 302.22370993, 302.04298491, 301.86220131, 301.68135941, 301.50045947, 301.31950177, 301.13848657, 300.95741416, 300.7762848, 300.59509876, 300.41385631, 300.23255773, 300.05120328, 299.86979324, 299.68832788, 299.50680746, 299.32523226, 299.14360254, 298.96191858, 298.78018064, 298.598389, 298.41654392, 298.23464567, 298.05269452, 297.87069074, 297.68863459, 297.50652635, 297.32436629, 297.14215466, 296.95989174, 296.7775778, 296.59521309, 296.4127979, 296.23033248, 296.04781711, 295.86525204, 295.68263755, 295.4999739, 295.31726135, 295.13450018, 294.95169065, 294.76883301, 294.58592755, 294.40297452, 294.21997418, 294.03692681, 293.85383266, 293.67069201, 293.4875051, 293.30427222, 293.12099361, 292.93766955, 292.7543003, 292.57088612, 292.38742727, 292.20392401, 292.02037662, 291.83678534, 291.65315044, 291.46947219, 291.28575084, 291.10198666, 290.91817991, 290.73433084, 290.55043972, 290.36650682, 290.18253238, 289.99851667, 289.81445995, 289.63036248, 289.44622452, 289.26204633, 289.07782817, 288.89357029, 288.70927295, 288.52493642, 288.34056096, 288.15614681, 287.97169424, 287.7872035, 287.60267486, 287.41810857, 287.23350488, 287.04886406, 286.86418636, 286.67947204, 286.49472135, 286.30993455, 286.1251119, 285.94025364, 285.75536005, 285.57043136, 285.38546784, 285.20046975, 285.01543733, 284.83037084, 284.64527053, 284.46013666, 284.27496949, 284.08976926, 283.90453623, 283.71927065, 283.53397278, 283.34864287, 283.16328117, 282.97788793, 282.7924634, 282.60700784, 282.4215215, 282.23600464, 282.05045749, 281.86488031, 281.67927336, 281.49363688, 281.30797112, 281.12227634, 280.93655278, 280.7508007, 280.56502034, 280.37921195, 280.19337578, 280.00751209, 279.82162111, 279.6357031, 279.44975831, 279.26378698, 279.07778936, 278.89176571, 278.70571626, 278.51964126, 278.33354096, 278.14741561, 277.96126546, 277.77509074, 277.58889171, 277.40266862, 277.2164217, 277.0301512, 276.84385738, 276.65754046, 276.4712007, 276.28483835, 276.09845364, 275.91204683, 275.72561814, 275.53916784, 275.35269616, 275.16620334, 274.97968963, 274.79315527, 274.60660051, 274.42002558, 274.23343073, 274.04681619, 273.86018222, 273.67352905, 273.48685692, 273.30016608, 273.11345676, 272.92672921, 272.73998367, 272.55322037, 272.36643955, 272.17964146, 271.99282634, 271.80599442, 271.61914594, 271.43228115, 271.24540027, 271.05850355, 270.87159123, 270.68466354, 270.49772073, 270.31076302, 270.12379066, 269.93680388, 269.74980292, 269.56278802, 269.37575941, 269.18871732, 269.001662, 268.81459368, 268.62751259, 268.44041898, 268.25331306, 268.06619509, 267.87906529, 267.6919239, 267.50477114, 267.31760727, 267.1304325, 266.94324707, 266.75605121, 266.56884517, 266.38162916, 266.19440342, 266.00716819, 265.81992369, 265.63267016, 265.44540783, 265.25813693, 265.07085768, 264.88357033, 264.6962751, 264.50897222, 264.32166192, 264.13434444, 263.94701999, 263.75968881, 263.57235113, 263.38500718, 263.19765719, 263.01030137, 262.82293997, 262.63557321, 262.44820132, 262.26082452, 262.07344304, 261.88605711, 261.69866696, 261.51127281, 261.32387488, 261.13647341, 260.94906862, 260.76166073, 260.57424997, 260.38683657, 260.19942074, 260.01200272, 259.82458273, 259.63716098, 259.44973772, 259.26231315, 259.0748875, 258.887461, 258.70003387, 258.51260633, 258.3251786, 258.1377509, 257.95032346, 257.7628965, 257.57547024, 257.3880449, 257.2006207, 257.01319786, 256.82577661, 256.63835715, 256.45093972, 256.26352453, 256.0761118, 255.88870175, 255.7012946, 255.51389057, 255.32648988, 255.13909274, 254.95169937, 254.76430999, 254.57692481, 254.38954407, 254.20216796, 254.01479671, 253.82743054, 253.64006965, 253.45271428, 253.26536462, 253.0780209, 252.89068334, 252.70335214, 252.51602753, 252.32870971, 252.14139891, 251.95409533, 251.76679918, 251.5795107, 251.39223007, 251.20495753, 251.01769327, 250.83043752, 250.64319049, 250.45595239, 250.26872342, 250.08150381, 249.89429375, 249.70709348, 249.51990318, 249.33272308, 249.14555339, 248.95839431, 248.77124606, 248.58410884, 248.39698286, 248.20986834, 248.02276547, 247.83567448, 247.64859557, 247.46152894, 247.27447481, 247.08743337, 246.90040485, 246.71338944, 246.52638736, 246.3393988, 246.15242398, 245.9654631, 245.77851636, 245.59158398, 245.40466616, 245.2177631, 245.030875, 244.84400208, 244.65714453, 244.47030257, 244.28347639, 244.09666619, 243.90987219, 243.72309458, 243.53633356, 243.34958935, 243.16286213, 242.97615212, 242.78945952, 242.60278451, 242.41612732, 242.22948814, 242.04286716, 241.85626459, 241.66968063, 241.48311549, 241.29656935, 241.11004242, 240.92353489, 240.73704698, 240.55057887, 240.36413076, 240.17770286, 239.99129535, 239.80490844, 239.61854233, 239.43219721, 239.24587328, 239.05957073, 238.87328977, 238.68703058, 238.50079337, 238.31457832, 238.12838564, 237.94221552, 237.75606816, 237.56994374, 237.38384247, 237.19776454, 237.01171014, 236.82567946, 236.6396727, 236.45369005, 236.26773171, 236.08179786, 235.8958887, 235.71000442, 235.52414522, 235.33831128, 235.15250279, 234.96671995, 234.78096295, 234.59523198, 234.40952722, 234.22384887, 234.03819712, 233.85257216, 233.66697417, 233.48140334, 233.29585987, 233.11034394, 232.92485575, 232.73939546, 232.55396329, 232.36855941, 232.18318401, 231.99783727, 231.81251939, 231.62723055, 231.44197093, 231.25674073, 231.07154012, 230.8863693, 230.70122844, 230.51611774, 230.33103737, 230.14598753, 229.96096839, 229.77598014, 229.59102296, 229.40609703, 229.22120255, 229.03633968, 228.85150862, 228.66670955, 228.48194264, 228.29720809, 228.11250606, 227.92783675, 227.74320033, 227.55859698, 227.37402689, 227.18949023, 227.00498718, 226.82051793, 226.63608265, 226.45168152, 226.26731472, 226.08298243, 225.89868483, 225.7144221, 225.53019441, 225.34600193, 225.16184486, 224.97772336, 224.79363761, 224.60958779, 224.42557408, 224.24159664, 224.05765567, 223.87375132, 223.68988378, 223.50605321, 223.32225981, 223.13850374, 222.95478517, 222.77110427, 222.58746123, 222.40385622, 222.2202894, 222.03676095, 221.85327105, 221.66981986, 221.48640756, 221.30303432, 221.11970031, 220.9364057, 220.75315067, 220.56993538, 220.38676, 220.20362471, 220.02052967, 219.83747506, 219.65446104, 219.47148778, 219.28855545, 219.10566422, 218.92281426, 218.74000574, 218.55723882, 218.37451367, 218.19183047, 218.00918936, 217.82659053, 217.64403414, 217.46152036, 217.27904934, 217.09662127, 216.91423629, 216.73189459, 216.54959631, 216.36734164, 216.18513072, 216.00296373, 215.82084083, 215.63876219, 215.45672796, 215.27473831, 215.0927934, 214.9108934, 214.72903847, 214.54722876, 214.36546445, 214.18374569, 214.00207264, 213.82044547, 213.63886433, 213.45732939, 213.27584081, 213.09439875, 212.91300335, 212.7316548, 212.55035324, 212.36909883, 212.18789174, 212.00673211, 211.82562012, 211.64455591, 211.46353964, 211.28257148, 211.10165157, 210.92078008, 210.73995716, 210.55918297, 210.37845766, 210.19778139, 210.01715432, 209.8365766, 209.65604838, 209.47556982, 209.29514108, 209.1147623, 208.93443365, 208.75415527, 208.57392733, 208.39374996, 208.21362333, 208.03354759, 207.85352289, 207.67354938, 207.49362722, 207.31375655, 207.13393752, 206.9541703, 206.77445502, 206.59479185, 206.41518092, 206.23562239, 206.05611641, 205.87666313, 205.6972627, 205.51791526, 205.33862097, 205.15937997, 204.98019241, 204.80105845, 204.62197822, 204.44295187, 204.26397956, 204.08506142, 203.90619761, 203.72738827, 203.54863354, 203.36993358, 203.19128853, 203.01269853, 202.83416373, 202.65568428, 202.47726031, 202.29889197, 202.12057941, 201.94232277, 201.76412219, 201.58597782, 201.4078898, 201.22985827, 201.05188337, 200.87396525, 200.69610404, 200.5182999, 200.34055296, 200.16286335, 199.98523124, 199.80765674, 199.63014001, 199.45268118, 199.27528039, 199.09793779, 198.92065351, 198.74342768, 198.56626046, 198.38915198, 198.21210237, 198.03511178, 197.85818034, 197.68130818, 197.50449546, 197.32774229, 197.15104883, 196.9744152, 196.79784155, 196.621328, 196.44487469, 196.26848177, 196.09214936, 195.91587759, 195.73966661, 195.56351655, 195.38742754, 195.21139971, 195.03543321, 194.85952815, 194.68368468, 194.50790293, 194.33218302, 194.1565251, 193.9809293, 193.80539574, 193.62992455, 193.45451588, 193.27916984, 193.10388657, 192.92866621, 192.75350887, 192.5784147, 192.40338381, 192.22841634, 192.05351243, 191.87867218, 191.70389575, 191.52918325, 191.35453481, 191.17995056, 191.00543062, 190.83097513, 190.65658422, 190.482258, 190.3079966, 190.13380016, 189.95966879, 189.78560263, 189.61160179, 189.43766641, 189.2637966, 189.0899925, 188.91625423, 188.7425819, 188.56897566, 188.39543561, 188.22196188, 188.0485546, 187.87521389, 187.70193986, 187.52873265, 187.35559238, 187.18251917, 187.00951313, 186.83657439, 186.66370308, 186.4908993, 186.31816319, 186.14549487, 185.97289444, 185.80036204, 185.62789778, 185.45550178, 185.28317416, 185.11091505, 184.93872455, 184.76660278, 184.59454987, 184.42256594, 184.25065109, 184.07880545, 183.90702913, 183.73532225, 183.56368493, 183.39211728, 183.22061942, 183.04919147, 182.87783354, 182.70654574, 182.53532819, 182.364181, 182.1931043, 182.02209819, 181.85116279, 181.6802982, 181.50950456, 181.33878196, 181.16813052, 180.99755035, 180.82704157, 180.65660429, 180.48623861, 180.31594466, 180.14572254, 179.97557237, 179.80549425, 179.63548829, 179.46555461, 179.29569332, 179.12590452, 178.95618832, 178.78654485, 178.61697419, 178.44747647, 178.27805179, 178.10870025, 177.93942198, 177.77021707, 177.60108563, 177.43202778, 177.26304361, 177.09413323, 176.92529676, 176.75653429, 176.58784594, 176.41923181, 176.250692, 176.08222662, 175.91383577, 175.74551957, 175.57727811, 175.40911149, 175.24101983, 175.07300323, 174.90506179, 174.73719561, 174.5694048, 174.40168946, 174.23404968, 174.06648559, 173.89899727, 173.73158483, 173.56424836, 173.39698798, 173.22980378, 173.06269587, 172.89566434, 172.72870929, 172.56183082, 172.39502904, 172.22830404, 172.06165593, 171.8950848, 171.72859075, 171.56217387, 171.39583428, 171.22957206, 171.06338731, 170.89728014, 170.73125063, 170.56529889, 170.39942501, 170.23362909, 170.06791123, 169.90227152, 169.73671006, 169.57122693, 169.40582225, 169.2404961, 169.07524858, 168.91007978, 168.7449898, 168.57997874, 168.41504667, 168.25019371, 168.08541994, 167.92072545, 167.75611035, 167.59157471, 167.42711864, 167.26274223, 167.09844556, 166.93422873, 166.77009184, 166.60603496, 166.4420582, 166.27816165, 166.11434539, 165.95060951, 165.78695411, 165.62337927, 165.45988509, 165.29647165, 165.13313904, 164.96988736, 164.80671668, 164.6436271, 164.48061871, 164.31769159, 164.15484584, 163.99208153, 163.82939876, 163.66679761, 163.50427817, 163.34184052, 163.17948476, 163.01721097, 162.85501922, 162.69290962, 162.53088224, 162.36893717, 162.2070745, 162.0452943, 161.88359666, 161.72198167, 161.56044941, 161.39899997, 161.23763342, 161.07634985, 160.91514934, 160.75403197, 160.59299784, 160.43204701, 160.27117957, 160.11039561, 159.9496952, 159.78907843, 159.62854537, 159.46809611, 159.30773072, 159.14744929, 158.9872519, 158.82713863, 158.66710955, 158.50716474, 158.34730429, 158.18752828, 158.02783677, 157.86822986, 157.70870761, 157.54927011, 157.38991743, 157.23064965, 157.07146685, 156.9123691, 156.75335648, 156.59442907, 156.43558695, 156.27683018, 156.11815885, 155.95957302, 155.80107279, 155.64265821, 155.48432937, 155.32608634, 155.16792919, 155.009858, 154.85187284, 154.69397379, 154.53616092, 154.37843429, 154.220794, 154.0632401, 153.90577267, 153.74839178, 153.5910975, 153.43388991, 153.27676908, 153.11973507, 152.96278797, 152.80592783, 152.64915474, 152.49246875, 152.33586995, 152.17935839, 152.02293416, 151.86659732, 151.71034793, 151.55418608, 151.39811182, 151.24212522, 151.08622636, 150.9304153, 150.77469211, 150.61905686, 150.4635096, 150.30805042, 150.15267938, 149.99739655, 149.84220198, 149.68709575, 149.53207792, 149.37714857, 149.22230775, 149.06755552, 148.91289196, 148.75831714, 148.6038311, 148.44943393, 148.29512567, 148.14090641, 147.98677619, 147.83273509, 147.67878316, 147.52492048, 147.37114709, 147.21746308, 147.06386849, 146.91036339, 146.75694784, 146.60362191, 146.45038565, 146.29723912, 146.1441824, 145.99121553, 145.83833858, 145.68555161, 145.53285468, 145.38024785, 145.22773117, 145.07530472, 144.92296854, 144.77072269, 144.61856725, 144.46650225, 144.31452777, 144.16264386, 144.01085057, 143.85914797, 143.70753611, 143.55601506, 143.40458486, 143.25324557, 143.10199726, 142.95083997, 142.79977377, 142.6487987, 142.49791483, 142.34712221, 142.19642089, 142.04581094, 141.8952924, 141.74486533, 141.59452978, 141.44428582, 141.29413348, 141.14407283, 140.99410392, 140.84422681, 140.69444153, 140.54474816, 140.39514674, 140.24563732, 140.09621996, 139.94689471, 139.79766162, 139.64852074, 139.49947212, 139.35051581, 139.20165187, 139.05288035, 138.90420129, 138.75561475, 138.60712077, 138.45871941, 138.31041072, 138.16219474, 138.01407152, 137.86604112, 137.71810358, 137.57025895, 137.42250728, 137.27484862, 137.12728301, 136.97981051, 136.83243116, 136.685145, 136.53795209, 136.39085247, 136.24384619, 136.09693329, 135.95011382, 135.80338783, 135.65675537, 135.51021647, 135.36377118, 135.21741956, 135.07116164, 134.92499746, 134.77892708, 134.63295054, 134.48706788, 134.34127915, 134.19558438, 134.04998363, 133.90447693, 133.75906433, 133.61374588, 133.46852161, 133.32339157, 133.17835579, 133.03341433, 132.88856722, 132.74381451, 132.59915623, 132.45459243, 132.31012315, 132.16574843, 132.02146831, 131.87728283, 131.73319203, 131.58919595, 131.44529464, 131.30148812, 131.15777644, 131.01415964, 130.87063776, 130.72721084, 130.58387891, 130.44064201, 130.29750019, 130.15445347, 130.01150191, 129.86864553, 129.72588437, 129.58321847, 129.44064786, 129.29817259, 129.15579269, 129.0135082, 128.87131915, 128.72922557, 128.58722751, 128.445325, 128.30351808, 128.16180677, 128.02019112, 127.87867116, 127.73724692, 127.59591844, 127.45468576, 127.3135489, 127.1725079, 127.0315628, 126.89071362, 126.7499604, 126.60930318, 126.46874198, 126.32827685, 126.1879078, 126.04763488, 125.90745811, 125.76737753, 125.62739317, 125.48750505, 125.34771322, 125.2080177, 125.06841853, 124.92891573, 124.78950933, 124.65019937, 124.51098587, 124.37186886, 124.23284838, 124.09392446, 123.95509711, 123.81636638, 123.67773229, 123.53919486, 123.40075414, 123.26241014, 123.12416289, 122.98601243, 122.84795877, 122.71000195, 122.572142, 122.43437894, 122.2967128, 122.1591436, 122.02167137, 121.88429614, 121.74701794, 121.60983679, 121.47275271, 121.33576574, 121.19887589, 121.06208319, 120.92538767, 120.78878936, 120.65228827, 120.51588443, 120.37957787, 120.24336861, 120.10725667, 119.97124208, 119.83532486, 119.69950504, 119.56378263, 119.42815767, 119.29263016, 119.15720015, 119.02186764, 118.88663266, 118.75149524, 118.61645538, 118.48151313, 118.34666849, 118.2119215, 118.07727216, 117.9427205, 117.80826655, 117.67391032, 117.53965183, 117.4054911, 117.27142816, 117.13746302, 117.0035957, 116.86982623, 116.73615462, 116.60258088, 116.46910505, 116.33572714, 116.20244716, 116.06926514, 115.93618109, 115.80319503, 115.67030698, 115.53751696, 115.40482498, 115.27223106, 115.13973523, 115.00733749, 114.87503786, 114.74283636, 114.61073301, 114.47872782, 114.3468208, 114.21501198, 114.08330137, 113.95168899, 113.82017484, 113.68875896, 113.55744134, 113.426222, 113.29510097, 113.16407825, 113.03315386, 112.90232782, 112.77160013, 112.64097081, 112.51043988, 112.38000734, 112.24967321, 112.11943751, 111.98930025, 111.85926143, 111.72932108, 111.5994792, 111.46973581, 111.34009091, 111.21054453, 111.08109667, 110.95174734, 110.82249656, 110.69334433, 110.56429068, 110.4353356, 110.30647911, 110.17772121, 110.04906193, 109.92050127, 109.79203924, 109.66367584, 109.5354111, 109.40724501, 109.27917759, 109.15120885, 109.0233388, 108.89556744, 108.76789478, 108.64032083, 108.51284561, 108.38546911, 108.25819135, 108.13101233, 108.00393207, 107.87695056, 107.75006782, 107.62328385, 107.49659867, 107.37001227, 107.24352466, 107.11713585, 106.99084585, 106.86465467, 106.7385623, 106.61256875, 106.48667404, 106.36087816, 106.23518112, 106.10958293, 105.98408359, 105.8586831, 105.73338147, 105.60817871, 105.48307482, 105.3580698, 105.23316366, 105.10835639, 104.98364802, 104.85903853, 104.73452793, 104.61011623, 104.48580342, 104.36158952, 104.23747452, 104.11345842, 103.98954124, 103.86572296, 103.7420036, 103.61838315, 103.49486161, 103.371439, 103.2481153, 103.12489052, 103.00176467, 102.87873774, 102.75580973, 102.63298064, 102.51025048, 102.38761925, 102.26508694, 102.14265355, 102.02031909, 101.89808355, 101.77594694, 101.65390925, 101.53197049, 101.41013064, 101.28838972, 101.16674771, 101.04520463, 100.92376046, 100.8024152, 100.68116886, 100.56002143, 100.43897291, 100.3180233, 100.19717258, 100.07642078, 99.95576787, 99.83521385, 99.71475873, 99.5944025, 99.47414515, 99.35398669, 99.2339271, 99.11396639, 98.99410456, 98.87434159, 98.75467748, 98.63511223, 98.51564583, 98.39627829, 98.27700959, 98.15783972, 98.0387687, 97.9197965, 97.80092312, 97.68214856, 97.56347281, 97.44489587, 97.32641773, 97.20803839, 97.08975783, 96.97157605, 96.85349305, 96.73550881, 96.61762334, 96.49983662, 96.38214864, 96.2645594, 96.1470689, 96.02967712, 95.91238405, 95.7951897, 95.67809404, 95.56109708, 95.4441988, 95.32739919, 95.21069825, 95.09409597, 94.97759233, 94.86118734, 94.74488097, 94.62867323, 94.5125641, 94.39655357, 94.28064163, 94.16482827, 94.04911349, 93.93349726, 93.81797959, 93.70256046, 93.58723986, 93.47201778, 93.35689421, 93.24186913, 93.12694254, 93.01211443, 92.89738478, 92.78275358, 92.66822082, 92.55378649, 92.43945057, 92.32521306, 92.21107394, 92.0970332, 91.98309083, 91.86924681, 91.75550113, 91.64185378, 91.52830475, 91.41485402, 91.30150157, 91.1882474, 91.0750915, 90.96203384, 90.84907441, 90.7362132, 90.6234502, 90.51078539, 90.39821875, 90.28575028, 90.17337996, 90.06110776, 89.94893369, 89.83685771, 89.72487983, 89.61300001, 89.50121825, 89.38953453, 89.27794884, 89.16646116, 89.05507146, 88.94377975, 88.83258599, 88.72149018, 88.6104923, 88.49959232, 88.38879024, 88.27808604, 88.1674797, 88.0569712, 87.94656052, 87.83624765, 87.72603258, 87.61591527, 87.50589572, 87.39597391, 87.28614981, 87.17642342, 87.0667947, 86.95726365, 86.84783025, 86.73849447, 86.6292563, 86.52011571, 86.4110727, 86.30212724, 86.1932793, 86.08452888, 85.97587595, 85.86732049, 85.75886248, 85.65050191, 85.54223874, 85.43407297, 85.32600457, 85.21803352, 85.1101598, 85.00238339, 84.89470427, 84.78712242, 84.67963781, 84.57225043, 84.46496025, 84.35776726, 84.25067143, 84.14367273, 84.03677116, 83.92996668, 83.82325927, 83.71664891, 83.61013559, 83.50371927, 83.39739993, 83.29117756, 83.18505213, 83.07902361, 82.97309198, 82.86725723, 82.76151932, 82.65587824, 82.55033395, 82.44488644, 82.33953569, 82.23428166, 82.12912434, 82.0240637, 81.91909971, 81.81423236, 81.70946162, 81.60478746, 81.50020986, 81.39572879, 81.29134423, 81.18705616, 81.08286455, 80.97876937, 80.8747706, 80.77086821, 80.66706218, 80.56335248, 80.45973909, 80.35622198, 80.25280113, 80.1494765, 80.04624808, 79.94311583, 79.84007973, 79.73713976, 79.63429588, 79.53154807, 79.4288963, 79.32634055, 79.22388079, 79.12151699, 79.01924913, 78.91707717, 78.81500109, 78.71302086, 78.61113646, 78.50934785, 78.40765501, 78.30605792, 78.20455653, 78.10315083, 78.00184078, 77.90062636, 77.79950754, 77.69848428, 77.59755657, 77.49672437, 77.39598765, 77.29534639, 77.19480055, 77.09435011, 76.99399503, 76.89373529, 76.79357085, 76.69350169, 76.59352778, 76.49364908, 76.39386558, 76.29417722, 76.194584, 76.09508587, 75.9956828, 75.89637478, 75.79716175, 75.6980437, 75.59902059, 75.50009239, 75.40125908, 75.30252061, 75.20387696, 75.1053281, 75.00687399, 74.9085146, 74.81024991, 74.71207988, 74.61400448, 74.51602367, 74.41813742, 74.32034571, 74.2226485, 74.12504575, 74.02753744, 73.93012353, 73.832804, 73.73557879, 73.63844789, 73.54141127, 73.44446888, 73.34762069, 73.25086668, 73.1542068, 73.05764103, 72.96116933, 72.86479166, 72.768508, 72.67231831, 72.57622256, 72.4802207, 72.38431272, 72.28849856, 72.19277821, 72.09715162, 72.00161876, 71.9061796, 71.8108341, 71.71558222, 71.62042394, 71.52535921, 71.430388, 5.69927974, 11.39144242, 17.06938577, 22.72603711, 28.35436803, 33.94740893, 39.49826337, 45.00012232, 50.44627799, 55.83013751, 61.1452362, 66.3852505, 71.54401045, 76.61551184, 81.59392773, 86.47361961, 91.24914795, 95.91528218, 100.46701014, 104.89954687, 109.20834279, 113.38909124, 117.43773533, 121.35047409, 125.12376803, 128.75434385, 132.23919856, 135.57560283, 138.76110363, 141.79352619, 144.67097517, 147.39183519, 149.95477068, 152.35872492, 154.60291853, 156.68684723, 158.61027895, 160.37325032, 161.97606253, 163.41927664, 164.70370827, 165.83042175, 166.80072379, 167.61615663, 168.27849071, 168.78971693, 169.1520385, 169.36786245, 169.43979067, 169.37061083, 169.16328686, 168.82094929, 168.3468853, 167.74452865, 167.01744944, 166.16934375, 165.20402324, 164.1254046, 162.93749913, 161.64440221, 160.25028286, 158.75937336, 157.17595902, 155.50436798, 153.74896125, 151.91412289, 150.00425041, 148.02374533, 145.9770041, 143.86840917, 141.70232043, 139.48306686, 137.21493862, 134.90217929, 132.54897866, 130.15946569, 127.73770193, 125.2876753, 122.81329421, 120.31838208, 117.80667225, 115.28180328, 112.74731459, 110.20664259, 107.66311704, 105.11995799, 102.58027287, 100.04705416, 97.52317733, 95.0113991, 92.51435615, 90.03456411, 87.57441689, 85.13618634, 82.72202225, 80.33395259, 77.97388408, 75.64360303, 73.34477645, 71.07895337, 68.84756643, 66.65193369, 64.49326064, 62.3726424, 60.29106608, 58.24941334, 56.24846311, 54.28889437, 52.37128913, 50.49613547, 48.66383074, 46.87468475, 45.12892308, 43.42669047, 41.7680542, 40.15300753, 38.58147318, 37.05330676, 35.5683003, 34.12618563, 32.7266379, 31.36927894, 30.05368065, 28.77936834, 27.545824, 26.35248952, 25.19876986, 24.08403613, 23.00762859, 21.9688596, 20.96701646, 20.00136418, 19.07114811, 18.17559656, 17.31392326, 16.48532974, 15.6890076, 14.92414071, 14.18990728, 13.48548181, 12.81003704, 12.16274563, 11.54278191, 10.94932342, 10.38155238, 9.83865709, 9.31983322, 8.82428498, 8.35122622, 7.89988146, 7.46948681, 7.05929082, 6.66855521, 6.29655558, 5.94258203, 5.60593965, 5.28594903, 4.98194663, 4.69328512, 4.41933368, 4.15947819, 3.91312138, 3.67968298, 3.45859978, 3.24932561, 3.05133135, 2.86410486, 2.68715088, 2.51999087, 2.36216289, 2.21322137, 2.07273692, 1.94029603, 1.81550088, 1.69796899, 1.58733294, 1.48324006, 1.38535211, 1.2933449, 1.20690795, 1.12574416, 1.04956942, 0.97811223, 0.91111334, 0.84832538, 0.78951247, 0.73444984, 0.68292346, 0.63472967, 0.58967481, 0.54757485, 0.50825501, 0.47154943, 0.43730082, 0.40536009, 0.37558602, 0.34784496, 0.32201047, 0.29796301, 0.27558966, 0.25478379, 0.23544479, 0.21747778, 0.20079335, 0.18530728, 0.17094031, 0.15761786, 0.14526981, 0.1338303, 0.12323747, 0.11343326, 0.10436321, 0.0959763, 0.08822469, 0.08106361, 0.07445117, 0.06834819, 0.06271803, 0.05752648, 0.0527416, 0.04833359, 0.04427464, 0.04053885, 0.03710207, 0.03394185, 0.03103726, 0.02836886, 0.02591858, 0.02366962, 0.02160639, 0.01971443, 0.01798031, 0.0163916, 0.01493676, 0.01360514, 0.01238684, 0.01127275, 0.0102544, 0.009324, 0.00847434, 0.00769877, 0.00699114, 0.00634581, 0.00575755, 0.00522155, 0.00473341, 0.00428904, 0.00388471, 0.00351697, 0.00318267, 0.0028789, 0.002603, 0.00235252, 0.00212523, 0.00191906, 0.00173215, 0.00156277, 0.00140934, 0.00127043, 0.00114472, 0.001031, 0.00092818, 0.00083525, 0.0007513, 0.0006755, 0.00060709, 0.00054537, 0.00048971, 0.00043954, 0.00039435, 0.00035365, 0.00031701, 0.00028405, 0.0002544, 0.00022775, 0.00020381, 0.0001823, 0.00016299, 0.00014567, 0.00013013, 0.0001162, 0.00010372, 0.00009253, 0.00008252, 0.00007356, 0.00006554, 0.00005838, 0.00005197, 0.00004625, 0.00004114, 0.00003658, 0.00003251, 0.00002888, 0.00002564, 0.00002276, 0.00002019, 0.00001791, 0.00001588, 0.00001407, 0.00001246, 0.00001103, 9.76182549e-06, 8.63504248e-06, 7.63505822e-06, 6.7479941e-06, 5.96144488e-06, 5.26432751e-06, 4.64674484e-06, 4.09986294e-06, 3.61580057e-06, 3.18752974e-06, 2.80878631e-06, 2.47398953e-06, 2.17816988e-06, 1.91690417e-06, 1.6862573e-06, 1.48273009e-06, 1.3032124e-06, 1.14494119e-06, 1.0054629e-06, 8.8259985e-07, 7.74420068e-07, 6.79210396e-07, 5.95452406e-07, 5.21800888e-07, 4.57064643e-07, 4.00189344e-07, 3.50242236e-07, 3.06398507e-07, 2.67929124e-07, 2.3419002e-07, 2.04612445e-07, 1.78694395e-07, 1.55992985e-07, 1.36117661e-07, 1.18724181e-07, 1.03509261e-07, 9.02058235e-08, 7.85787846e-08, 6.84213165e-08, 5.95515342e-08, 5.18095611e-08, 4.50549307e-08, 3.9164286e-08, 3.40293455e-08, 2.95551043e-08, 2.56582443e-08, 2.22657297e-08, 1.93135679e-08, 1.67457148e-08, 1.45131101e-08, 1.25728267e-08, 1.08873211e-08, 9.42377295e-09, 8.15350416e-09, 7.05146736e-09, 6.09579625e-09, 5.26741023e-09, 4.54966711e-09, 3.92805804e-09, 3.3899398e-09, 2.9242999e-09, 2.52155058e-09, 2.17334829e-09, 1.87243549e-09, 1.61250216e-09, 1.38806457e-09, 1.19435924e-09, 1.02725021e-09, 8.83147983e-10, 7.58938731e-10, 6.51922489e-10, 5.59759196e-10, 4.80421634e-10, 4.12154396e-10, 3.53438124e-10, 3.02958363e-10, 2.59578434e-10, 2.22315835e-10, 1.90321709e-10, 1.62862996e-10, 1.39306918e-10, 1.19107508e-10, 1.0179391e-10, 8.69602298e-11, 7.42567258e-11, 6.33821788e-11, 5.4077275e-11, 4.6118876e-11, 3.93150585e-11, 3.35008209e-11, 2.85343706e-11, 2.42939138e-11, 2.06748814e-11, 1.75875335e-11, 1.49548903e-11, 1.27109474e-11, 1.07991363e-11, 9.17099693e-12, 7.78503395e-12, 6.60573164e-12, 5.60270565e-12, 4.74997327e-12, 4.02532561e-12, 3.40978796e-12, 2.88715598e-12, 2.4435974e-12, 2.06730999e-12, 1.74822816e-12, 1.47777117e-12, 1.24862737e-12, 1.05456925e-12, 8.90295068e-13, 7.51293187e-13, 6.33726058e-13, 5.34330943e-13, 4.50335041e-13, 3.79382964e-13, 3.19474788e-13, 2.68913155e-13, 2.26258139e-13, 1.90288739e-13, 1.59970054e-13, 1.34425307e-13, 1.12912008e-13, 9.48016697e-14, 7.95625356e-14, 6.6744891e-14, 5.59685733e-14, 4.69123568e-14, 3.93049351e-14, 3.2917265e-14, 2.75560677e-14, 2.30583163e-14, 1.92865613e-14, 1.61249688e-14, 1.34759641e-14, 1.12573896e-14, 9.40009958e-15, 7.84592447e-15, 6.54595047e-15, 5.45906468e-15, 4.55072621e-15, 3.7919284e-15, 3.15832278e-15, 2.62947999e-15, 2.18826649e-15, 1.82031917e-15, 1.51360264e-15, 1.25803645e-15, 1.04518121e-15, 8.6797455e-16, 7.20509034e-16, 5.97845438e-16, 4.95855881e-16, 4.11092056e-16, 3.40674619e-16, 2.82200358e-16, 2.33664339e-16, 1.93394633e-16, 1.59997616e-16, 1.32312151e-16, 1.09371226e-16, 9.03698515e-17, 7.46382085e-17, 6.16191925e-17, 5.08496496e-17, 4.19447008e-17, 3.45846529e-17, 2.85040737e-17, 2.34826792e-17, 1.93377332e-17, 1.59177142e-17, 1.30970373e-17, 1.07716605e-17, 8.85542675e-18, 7.2770202e-18, 5.97743585e-18, 4.90787544e-18, 4.02799955e-18, 3.30447581e-18, 2.70977373e-18, 2.22116477e-18, 1.8198929e-18, 1.49048701e-18, 1.22019118e-18, 9.98492697e-19, 8.16731377e-19, 6.67776191e-19, 5.45757824e-19, 4.45847533e-19, 3.64074389e-19, 2.9717431e-19, 2.42465402e-19, 1.97745075e-19, 1.61205171e-19, 1.31361973e-19, 1.06998519e-19, 8.71170744e-20, 7.08999977e-20, 5.76775214e-20, 4.69012473e-20, 3.81223478e-20, 3.09736464e-20, 2.51548938e-20, 2.04206755e-20, 1.65704838e-20, 1.3440572e-20, 1.08972722e-20, 8.83151747e-21, 7.15435299e-21, 5.79325838e-21, 4.68913723e-21, 3.79385303e-21, 3.06821356e-21, 2.48032274e-21, 2.00423361e-21, 1.61884783e-21, 1.30701708e-21, 1.05480955e-21, 8.50911515e-22, 6.86139332e-22, 5.53041603e-22, 4.45575053e-22, 3.58840553e-22, 2.88868215e-22, 2.3244253e-22, 1.86960144e-22, 1.50314225e-22, 1.20800503e-22, 9.70409466e-23, 7.7921792e-23, 6.25432537e-23, 5.01787279e-23, 4.02417137e-23, 3.22590026e-23, 2.58489591e-23, 2.07039324e-23, 1.65760211e-23, 1.32655546e-23, 1.06117792e-23, 8.485329e-24, 6.7821416e-24, 5.41854535e-24, 4.32729269e-24, 3.4543595e-24, 2.7563636e-24, 2.19848341e-24, 1.75278076e-24, 1.39684986e-24, 1.11272947e-24, 8.86027476e-25, 7.05216603e-25, 5.61068146e-25, 4.46196797e-25, 3.54694978e-25, 2.81839197e-25, 2.23854337e-25, 1.77724542e-25, 1.41041549e-25, 1.11883107e-25, 8.87155507e-26, 7.03157767e-26, 5.57087738e-26, 4.41176349e-26, 3.49235714e-26, 2.7633945e-26, 2.18567177e-26, 1.72800429e-26, 1.36559687e-26, 1.07874313e-26, 8.51787777e-27, 6.72299215e-27, 5.30409933e-27, 4.18291019e-27, 3.29733661e-27, 2.59815997e-27, 2.04638032e-27, 1.6111081e-27, 1.26788797e-27, 9.9736691e-28, 7.84236245e-28, 6.16391653e-28, 4.84266555e-28, 3.80303302e-28, 2.98533872e-28, 2.34247536e-28, 1.83727581e-28, 1.44042812e-28, 1.12882531e-28, 8.84259645e-29, 6.92390014e-29, 5.41925656e-29, 4.23981161e-29, 3.31567033e-29, 2.59187507e-29, 2.02523177e-29, 1.58180646e-29, 1.23495152e-29, 9.63750088e-30, 7.51790635e-30, 5.86202081e-30, 4.56894329e-30, 3.55960782e-30, 2.7720848e-30, 2.15788775e-30, 1.67907143e-30, 1.30595281e-30, 1.01532197e-30, 7.89038294e-31, 6.12929292e-31, 4.75927363e-31, 3.69393271e-31, 2.86586214e-31, 2.22248902e-31, 1.7228282e-31, 1.33494183e-31, 1.03395285e-31, 8.004923e-32, 6.19486169e-32, 4.79208052e-32, 3.70539609e-32, 2.86393538e-32, 2.2126353e-32, 1.7087342e-32, 1.31903779e-32, 1.01778964e-32, 7.85013043e-33, 6.05220716e-33, 4.6641098e-33, 3.5928726e-33, 2.76651447e-33, 2.12932598e-33, 1.63820951e-33, 1.25983833e-33, 9.68452402e-34, 7.44148888e-34, 5.71556922e-34, 4.38810732e-34, 3.36754257e-34, 2.58325366e-34, 1.98079314e-34, 1.51820111e-34, 1.16315502e-34, 8.90766789e-35, 6.81880945e-35, 5.21760525e-35, 3.99072692e-35, 3.05106131e-35, 2.33167488e-35, 1.78116106e-35, 1.36005518e-35, 1.03807328e-35, 7.91986253e-36, 6.03983987e-36, 4.6041701e-36, 3.50828973e-36, 2.67213075e-36, 2.03440831e-36, 1.54823436e-36, 1.17775092e-36, 8.95546983e-37, 6.80677622e-37, 5.17145499e-37, 3.9273735e-37, 2.9813286e-37, 2.26222436e-37, 1.71585148e-37, 1.30089398e-37, 9.85876037e-38, 7.46828557e-38, 5.65506659e-38, 4.28028546e-38, 3.23836616e-38, 2.44904848e-38, 1.85134357e-38, 1.39892645e-38, 1.05662518e-38, 7.97747136e-39, 6.02043366e-39, 4.54159626e-39, 3.42458146e-39, 2.58121816e-39, 1.94473378e-39, 1.4645825e-39, 1.10251819e-39, 8.29613733e-40, 6.23999649e-40, 4.6914923e-40, 3.52578577e-40, 2.64861655e-40, 1.98884305e-40, 1.49279508e-40, 1.1200003e-40, 8.39951767e-41, 6.29663942e-41, 4.71825675e-41, 3.53404917e-41, 2.6459515e-41, 1.98020179e-41, 1.48134187e-41, 1.10769305e-41, 8.27945687e-42, 6.18589512e-42, 4.61978268e-42, 3.44872713e-42, 2.57344217e-42, 1.91950078e-42, 1.43113456e-42, 1.0665739e-42, 7.94547263e-43, 5.91652669e-43, 4.40384707e-43, 3.27654353e-43, 2.43678925e-43, 1.8114999e-43, 1.34609892e-43, 9.99847953e-44, 7.42350952e-44, 5.50938223e-44, 4.08709626e-44, 3.03071543e-44, 2.24643463e-44, 1.66441165e-44, 1.23266779e-44, 9.12535325e-45, 6.75260999e-45, 4.99472972e-45, 3.6929265e-45, 2.72927744e-45, 2.01624386e-45, 1.48887002e-45, 1.09897766e-45, 8.10847728e-46, 5.98009528e-46, 4.40854486e-46, 3.24863404e-46, 2.39290073e-46, 1.76184194e-46, 1.29666437e-46, 9.53908197e-47, 7.01461696e-47, 5.15608085e-47, 3.78838279e-47, 2.78231549e-47, 2.04257154e-47, 1.49887896e-47, 1.09944685e-47, 8.0612113e-48, 5.90805817e-48, 4.32820293e-48, 3.16948618e-48, 2.32000279e-48, 1.69748738e-48, 1.24148936e-48, 9.07607038e-49, 6.63240615e-49, 4.84465417e-49, 3.53730785e-49, 2.58167368e-49, 1.88342465e-49, 1.37345227e-49, 1.00114575e-49, 7.29456616e-50, 5.31275817e-50, 3.86775586e-50, 2.8145987e-50, 2.04735117e-50, 1.48862953e-50, 1.08193046e-50, 7.860144e-51, 5.70794909e-51, 4.14331658e-51, 3.00631569e-51, 2.18041665e-51, 1.58074872e-51, 1.14552517e-51, 8.29783656e-52, 6.00818874e-52, 4.34851235e-52, 3.14598249e-52, 2.27504687e-52, 1.64453398e-52, 1.18826639e-52, 8.58229092e-53, 6.19599579e-53, 4.47133757e-53, 3.22539025e-53, 2.32565637e-53, 1.67620561e-53, 1.20761224e-53, 8.69653387e-54, 6.26013002e-54, 4.50442116e-54, 3.23976198e-54, 2.32919418e-54, 1.6738509e-54, 1.20239269e-54, 8.63364856e-55, 6.19670601e-55, 4.44575889e-55, 3.18822827e-55, 2.2854483e-55, 1.6376153e-55, 1.17292669e-55, 8.39746776e-56, 6.00958274e-56, 4.29891435e-56, 3.07391438e-56, 2.19706671e-56, 1.56968759e-56, 1.12098993e-56, 8.00218717e-57, 5.70997502e-57, 4.07266063e-57, 2.90362648e-57, 2.06929205e-57, 1.47408099e-57, 1.04963769e-57, 7.47095308e-58, 5.31534086e-58, 3.78011275e-58, 2.68718094e-58, 1.90944693e-58, 1.35624079e-58, 9.62907428e-59, 6.83361965e-59, 4.84769848e-59, 3.4374701e-59, 2.43646846e-59, 1.72624007e-59, 1.2225317e-59, 8.65441277e-60, 6.12397799e-60, 4.33159834e-60, 3.06253654e-60, 2.16437707e-60, 1.52898462e-60, 1.07967204e-60, 7.62077508e-61, 5.37681363e-61, 3.79200913e-61, 2.67320534e-61, 1.88370903e-61, 1.3268257e-61, 9.34184139e-62, 6.57460496e-62, 4.62514547e-62, 3.25236811e-62, 2.28608594e-62, 1.60621611e-62, 1.1280646e-62, 7.91922221e-63, 5.5571185e-63, 3.89794186e-63, 2.73299998e-63, 1.91541319e-63, 1.34184976e-63, 9.39645176e-64, 6.57722141e-64, 4.60192582e-64, 3.21851358e-64, 2.250037e-64, 1.57232586e-64, 1.09828244e-64, 7.66838848e-65, 5.35195878e-65, 3.73370501e-65, 2.60366937e-65, 1.81488979e-65, 1.26454204e-65, 8.80713965e-66, 6.13133559e-66, 4.26671749e-66, 2.96791382e-66, 2.06360838e-66, 1.43424016e-66, 9.9640312e-67, 6.91937519e-67, 4.80305197e-67, 3.33262384e-67, 2.31139364e-67, 1.60243395e-67, 1.11046525e-67, 7.69216192e-68, 5.3261142e-68, 3.68630396e-68, 2.55029504e-68, 1.76363344e-68, 1.21911546e-68, 8.4236434e-69, 5.81800012e-69, 4.0166695e-69, 2.77189702e-69, 1.91208286e-69, 1.31842354e-69, 9.08702694e-70, 6.26047532e-70, 4.3113316e-70, 2.9677969e-70, 2.04209318e-70, 1.4045447e-70, 9.65637686e-71, 6.636078e-71, 4.55855703e-71, 3.13012685e-71, 2.14839989e-71, 1.47396423e-71, 1.01082833e-71, 6.92925438e-72, 4.74803868e-72, 3.25207561e-72, 2.2265152e-72, 1.52373463e-72, 1.04234541e-72, 7.12742454e-73, 4.87160699e-73, 3.32836167e-73, 2.27304184e-73, 1.55168299e-73, 1.05880802e-73, 7.22187716e-74, 4.92381389e-74, 3.35561261e-74, 2.28591808e-74, 1.55656825e-74, 1.05948382e-74, 7.2084046e-75, 4.90233112e-75, 3.33261228e-75, 2.26456924e-75, 1.53817264e-75, 1.04434316e-75, 7.08761369e-76, 4.80812244e-76, 3.26039087e-76, 2.2099502e-76, 1.49731777e-76, 1.01406114e-76, 6.86488047e-77, 4.64537193e-77, 3.1421483e-77, 2.1244746e-77, 1.43580376e-77, 9.69967775e-78, 6.54995335e-78, 4.42117584e-78, 2.98301922e-78, 2.01183796e-78, 1.35627772e-78, 9.13951064e-79, 6.15624569e-79, 4.14502955e-79, 2.78970324e-79, 1.8767528e-79, 1.26204496e-79, 8.48323059e-80, 5.69988915e-80, 3.8281614e-80, 2.56999788e-80, 1.72462225e-80, 1.1568416e-80, 7.75661991e-81, 5.19864092e-81, 3.48277829e-81, 2.33227919e-81, 1.56118348e-81, 1.04459046e-81, 6.98645507e-82, 4.67074747e-82, 3.12129351e-82, 2.08497828e-82, 1.39215365e-82, 9.2916215e-83, 6.19889899e-83, 4.13386527e-83, 2.75560387e-83, 1.83609846e-83, 1.2229082e-83, 8.14161316e-84, 5.4180846e-84, 3.60412476e-84, 2.39647314e-84, 1.59281021e-84, 1.05821574e-84, 7.02753662e-85, 4.66499023e-85, 3.09540216e-85, 2.05306237e-85, 1.36114982e-85, 9.02045486e-86, 5.97543697e-86, 3.95666815e-86, 2.61883604e-86, 1.73262956e-86, 1.1458344e-86, 7.57454797e-87, 5.00507183e-87, 3.30584616e-87, 2.18259771e-87, 1.44040122e-87, 9.50193382e-88, 6.26555079e-88, 4.12976408e-88, 2.72088362e-88, 1.79189858e-88, 1.17960233e-88, 7.76205214e-89, 5.10547587e-89, 3.35671632e-89, 2.20603193e-89, 1.44919787e-89, 9.51617288e-90, 6.24619736e-90, 4.09814976e-90, 2.68768701e-90, 1.7619286e-90, 1.15456042e-90, 7.56247183e-91, 4.95141837e-91, 3.24051642e-91, 2.11991076e-91, 1.386244e-91, 9.06109188e-92, 5.92025127e-92, 3.8665043e-92, 2.52415261e-92, 1.64714365e-92, 1.07440024e-92, 7.00518283e-93, 4.56553428e-93, 2.97428445e-93, 1.93683288e-93, 1.26072556e-93, 8.20290587e-94, 5.33499059e-94, 3.46831352e-94, 2.25383336e-94, 1.46400992e-94, 9.5057196e-95, 6.16942578e-95, 4.00242548e-95, 2.595497e-95, 1.68242834e-95, 1.09011267e-95, 7.06032942e-96, 4.57085362e-96, 2.95793368e-96, 1.91336718e-96, 1.23716317e-96, 7.99603e-97, 5.16583608e-97, 3.33599661e-97, 2.15342304e-97, 1.38947867e-97, 8.96175752e-98, 5.77767716e-98, 3.72333515e-98, 2.39844502e-98, 1.54435161e-98, 9.93988546e-99, 6.39492354e-99, 4.11252086e-99, 2.6436238e-99, 1.69867374e-99, 1.091036e-99, 7.00465851e-100, 4.49524784e-100, 2.88362711e-100, 1.84902739e-100, 1.18513105e-100, 7.59290901e-101, 4.86260288e-101, 3.11277837e-101, 1.99180301e-101, 1.2739822e-101, 8.14515079e-102, 5.20539497e-102, 3.32527096e-102, 2.12333825e-102, 1.35528341e-102, 8.64688842e-103, 5.51452846e-103, 3.51540775e-103, 2.24007122e-103, 1.42681197e-103, 9.08427891e-104, 5.7813994e-104, 3.67785232e-104, 2.33869938e-104, 1.48652875e-104, 9.44476221e-105, 5.99829119e-105, 3.80787659e-105, 2.41633413e-105, 1.53267444e-105, 9.71765878e-106, 6.15874442e-106, 3.90158906e-106, 2.47064117e-106, 1.56385553e-106, 9.89469458e-107, 6.25787618e-107, 3.95612812e-107, 2.499957e-107, 1.57911421e-107, 9.97041772e-108, 6.29262685e-108, 3.96980721e-108, 2.50337359e-108, 1.57797722e-108, 9.94247729e-109, 6.26191691e-109, 3.94220141e-109, 2.48078504e-109, 1.56048025e-109, 9.81174458e-110, 6.16670269e-110, 3.8741694e-110, 2.43289307e-110, 1.52716603e-110, 9.58226796e-111, 6.00992688e-111, 3.76780906e-111, 2.36117082e-111, 1.47905645e-111, 9.26106468e-112, 5.79636745e-112, 3.62635006e-112, 2.26778755e-112, 1.41760042e-112, 8.85776448e-113, 5.53239589e-113, 3.45399098e-113, 2.15549975e-113, 1.34460147e-113, 8.3841303e-114, 5.22566164e-114, 3.25569253e-114, 2.0275161e-114, 1.26212995e-114, 7.85348945e-115, 4.88472469e-115, 3.03694097e-115, 1.88734565e-115, 1.17242582e-115, 7.2801133e-116, 4.51866077e-116, 2.80349752e-116, 1.73863913e-116, 1.07779847e-116, 6.67858584e-117, 4.13666452e-117, 2.5611495e-117, 1.58503333e-117, 9.80529598e-118, 6.0631995e-118, 3.74767438e-118, 2.31547813e-118, 1.43000765e-118, 8.82784871e-119, 5.44741229e-119, 3.36004006e-119, 2.07165536e-119, 1.27676041e-119, 7.86538805e-120, 4.84339341e-120, 2.98124855e-120, 1.83427933e-120, 1.12811042e-120, 6.93516173e-121, 4.26167598e-121, 2.61771952e-121, 1.60725448e-121, 9.86427181e-122, 6.05151714e-122, 3.71092654e-122, 2.27467471e-122, 1.39371859e-122, 8.53590832e-123, 5.22568521e-123, 3.19783169e-123, 1.95608091e-123, 1.19601571e-123, 7.30980528e-124, 4.4657416e-124, 2.72709476e-124, 1.6646607e-124, 1.01571083e-124, 6.19488568e-125, 3.77672506e-125, 2.30152822e-125, 1.40196153e-125, 8.53639993e-126, 5.19555887e-126, 3.16088466e-126, 1.92222353e-126, 1.16847115e-126, 7.09987924e-127, 4.31223871e-127, 2.6180232e-127, 1.58877739e-127, 9.63765728e-128, 5.84384612e-128, 3.54197043e-128, 2.14590236e-128, 1.29955257e-128, 7.86677291e-129, 4.76012376e-129, 2.87911322e-129, 1.74067669e-129, 1.05195304e-129, 6.35467672e-130, 3.83715588e-130, 2.3160306e-130, 1.39732689e-130, 8.42695382e-131, 5.07998095e-131, 3.06106411e-131, 1.84374834e-131, 1.11006838e-131, 6.68061892e-132, 4.01885687e-132, 2.41661383e-132, 1.45254919e-132, 8.72716765e-133, 5.24124747e-133, 3.14640693e-133, 1.88805218e-133, 1.13248374e-133, 6.78998531e-134, 4.06934559e-134, 2.43780629e-134, 1.45979776e-134, 8.73785987e-135, 5.22800914e-135, 3.12670194e-135, 1.86919887e-135, 1.11697491e-135, 6.67191049e-136, 3.98360151e-136, 2.37749958e-136, 1.41835157e-136, 8.45797162e-137, 5.04158901e-137, 3.00391432e-137, 1.78906669e-137, 1.06508533e-137, 6.33813034e-138, 3.77013425e-138, 2.24166832e-138, 1.33230844e-138, 7.91511257e-139, 4.70032947e-139, 2.79009118e-139, 1.65549313e-139, 9.81872865e-140, 5.82105933e-140, 3.44959163e-140, 2.04339458e-140, 1.20991728e-140, 7.16107163e-141, 4.23661743e-141, 2.50541327e-141, 1.48101136e-141, 8.75097221e-142, 5.16860226e-142, 3.05146798e-142, 1.80079144e-142, 1.06227489e-142, 6.26367632e-143, 3.69182068e-143, 2.17505772e-143, 1.28091371e-143, 7.54028669e-144, 4.43684996e-144, 2.60963955e-144, 1.53428207e-144, 9.01672434e-145, 5.29677197e-145, 3.11023112e-145, 1.82554671e-145, 1.0710559e-145, 6.28131001e-146, 3.68219871e-146, 2.15766054e-146, 1.26379874e-146, 7.39931681e-147, 4.33036228e-147, 2.53323654e-147, 1.48131071e-147, 8.65835696e-148, 5.05875581e-148, 2.9544106e-148, 1.72471323e-148, 1.006426e-148, 5.87037309e-149, 3.42269712e-149, 1.99475767e-149, 1.16206582e-149, 6.76690716e-150, 3.93884254e-150, 2.29174309e-150, 1.33285269e-150, 7.74849371e-151, 4.50268254e-151, 2.61543712e-151, 1.51857467e-151, 8.81346998e-152, 5.11300976e-152, 2.96500361e-152, 1.71867098e-152, 9.95816177e-153, 5.7674591e-153, 3.3389413e-153, 1.93219948e-153, 1.11767118e-153, 6.4624182e-154, 3.73503764e-154, 2.15781308e-154, 1.24609622e-154, 7.19297006e-155, 4.1503416e-155, 2.39374759e-155, 1.38004034e-155, 7.95287448e-156, 4.5811593e-156, 2.63782256e-156, 1.51821992e-156, 8.73459372e-157, 5.02307491e-157, 2.88745698e-157, 1.6591296e-157, 9.52936629e-158, 5.47099922e-158, 3.13970039e-158, 1.80106209e-158, 1.03273307e-158, 5.91924627e-159, 3.39128006e-159, 1.94213685e-159, 1.11176994e-159, 6.36163793e-160, 3.6386635e-160, 2.08033736e-160, 1.18889792e-160, 6.79163428e-161, 3.87813519e-161, 2.21355605e-161, 1.26292346e-161, 7.20248669e-162, 4.10588543e-162, 2.33964582e-162, 1.33263845e-162, 7.58740887e-163, 4.31810866e-163, 2.45647628e-163, 1.39685239e-163, 7.93976017e-164, 4.51110759e-164, 2.56199287e-164, 1.45442584e-164, 8.25323435e-165, 4.68139951e-165, 2.65427652e-165, 1.50430382e-165, 8.52204625e-166, 4.82582032e-166, 2.7316015e-166, 1.54554791e-166, 8.74110901e-167, 4.94162216e-167, 2.79248899e-167, 1.57736551e-167, 8.90619392e-168, 5.02656022e-168, 2.83575411e-168, 1.59913521e-168, 9.01406614e-169, 5.07896514e-169, 2.8605442e-169, 1.61042695e-169, 9.06259011e-170, 5.09779755e-170, 2.86636683e-170, 1.61101615e-170, 9.05079983e-171, 5.08268232e-171, 2.85310603e-171, 1.60089113e-171, 8.97893088e-172, 5.03392104e-172, 2.82102615e-172, 1.58025352e-172, 8.84841256e-173, 4.95248198e-173, 2.77076305e-173, 1.54951154e-173, 8.66182063e-174, 4.83996812e-174, 2.70330322e-174, 1.50926662e-174, 8.42279277e-175, 4.6985647e-175, 2.6199515e-175, 1.4602938e-175, 8.13591071e-176, 4.53096862e-176, 2.52228921e-176, 1.40351693e-176, 7.80655421e-177, 4.34030301e-177, 2.41212422e-177, 1.33997976e-177, 7.44073356e-178, 4.13002061e-178, 2.29143549e-178, 1.27081403e-178, 7.04490782e-179, 3.90380018e-179, 2.16231418e-179, 1.19720622e-179, 6.62579634e-180, 3.66544032e-180, 2.02690398e-180, 1.12036401e-180, 6.1901914e-181, 3.41875483e-181, 1.88734281e-181, 1.04148394e-181, 5.74477889e-182, 3.16747366e-182, 1.74570824e-182, 9.61721366e-183, 5.29597374e-183, 2.91515289e-183, 1.60396839e-183, 8.82163796e-184, 4.84977524e-184, 2.66509656e-184, 1.46393988e-184, 8.03808314e-185, 4.41164647e-185, 2.42029257e-185, 1.32725384e-185, 7.27543683e-186, 3.98642056e-186, 2.18336384e-186, 1.19533069e-186, 6.54137412e-187, 3.57823505e-187, 1.95653536e-187, 1.06936385e-187, 5.8422785e-188, 3.19049431e-188, 1.74161699e-188, 9.50312175e-189, 5.18321108e-189, 2.82585881e-189, 1.54000093e-189, 8.38900537e-190, 4.56792456e-190, 2.48625882e-190, 1.35267266e-190, 7.35627666e-191, 3.9989167e-191, 2.17292945e-191, 1.18023329e-191, 6.40780159e-192, 3.47751665e-192, 1.88646323e-192, 1.02293123e-192, 5.54451415e-193, 3.00399718e-193, 1.62687622e-193, 8.80700956e-194, 4.76564175e-194, 2.57770541e-194, 1.39368344e-194, 7.53206338e-195, 4.06895381e-195, 2.19720471e-195, 1.18597969e-195, 6.39886503e-196, 3.45102112e-196, 1.86042109e-196, 1.00252188e-196, 5.40002085e-197, 2.90747496e-197, 1.56478797e-197, 8.41809817e-198, 4.52680142e-198, 2.43325639e-198, 1.30738432e-198, 7.02162519e-199, 3.76956283e-199, 2.02284824e-199, 1.08506209e-199, 5.81788121e-200, 3.11812903e-200, 1.67048388e-200, 8.94559986e-201, 4.78845733e-201, 2.56212756e-201, 1.370329e-201, 7.32601705e-202, 3.91498385e-202, 2.0912743e-202, 1.11663439e-202, 5.95977654e-203, 3.17956661e-203, 1.69560565e-203, 9.03859148e-204, 4.81610157e-204, 2.56513068e-204, 1.36565918e-204, 7.26765224e-205, 3.86602738e-205, 2.05567612e-205, 1.09260563e-205, 5.80485207e-206, 3.08274681e-206, 1.63645299e-206, 8.68336772e-207, 4.60565953e-207, 2.44182449e-207, 1.29406485e-207, 6.85514455e-208, 3.62991264e-208, 1.9212979e-208, 1.01651133e-208, 5.37586956e-209, 2.84186996e-209, 1.50168437e-209, 7.93180635e-210, 4.18778644e-210, 2.21012039e-210, 1.16591347e-210, 6.14802591e-211, 3.24058966e-211, 1.70738467e-211, 8.99202896e-212, 4.73372473e-212, 2.49096305e-212, 1.3102391e-212, 6.88894648e-213, 3.62054583e-213, 1.90201647e-213, 9.98788382e-214, 5.24265978e-214, 2.75073564e-214, 1.44266342e-214, 7.56310569e-215, 3.96327589e-215, 2.07600038e-215, 1.08697496e-215, 5.68893057e-216, 2.97619043e-216, 1.55635902e-216, 8.13538002e-217, 4.2507434e-217, 2.22009175e-217, 1.15903338e-217, 6.04839233e-218, 3.15502607e-218, 1.64507211e-218, 8.57404809e-219, 4.4668964e-219, 2.32618813e-219, 1.21088467e-219, 6.30056816e-220, 3.27699394e-220, 1.70368992e-220, 8.85369301e-221, 4.59914769e-221, 2.38808205e-221, 1.23948171e-221, 6.43057773e-222, 3.33486958e-222, 1.72872817e-222, 8.95763897e-223, 4.63958775e-223, 2.40206206e-223, 1.24310567e-223, 6.43059065e-224, 3.32516098e-224, 1.71867389e-224, 8.87959741e-225, 4.58576787e-225, 2.36728122e-225, 1.22153702e-225, 6.30060722e-226, 3.2484574e-226, 1.67413679e-226, 8.62429689e-227, 4.4409456e-227, 2.28584198e-227, 1.17607752e-227, 6.04845831e-228, 3.10937019e-228, 1.59778804e-228, 8.20700875e-229, 4.21375834e-229, 2.16258582e-229, 1.10942021e-229, 5.68902437e-230, 2.91607381e-230, 1.49409506e-230, 7.65203491e-231, 3.91737056e-231, 2.00461681e-231, 1.02538528e-231, 5.24278184e-232, 2.67951069e-232, 1.3688889e-232, 6.99036591e-233, 3.56821173e-233, 1.82062425e-233, 9.28557989e-234, 4.73387449e-234, 2.41236738e-234, 1.22882251e-234, 6.25682297e-235, 3.18447306e-235, 1.62009429e-235, 8.23876293e-236, 4.18796191e-236, 2.12795501e-236, 1.08078961e-236, 5.4870496e-237, 2.78455379e-237, 1.41250938e-237, 7.16219388e-238, 3.63011019e-238, 1.8391305e-238, 9.31374385e-239, 4.71471055e-239, 2.38563933e-239, 1.20662839e-239, 6.10044196e-240, 3.08296123e-240, 1.55737727e-240, 7.86391129e-241, 3.96919453e-241, 2.0025583e-241, 1.00991997e-241, 5.0910546e-242, 2.5653555e-242, 1.29213046e-242, 6.50555239e-243, 3.27401752e-243, 1.64701224e-243, 8.28193203e-244, 4.1627996e-244, 2.09150233e-244, 1.05038911e-244, 5.27304011e-245, 2.64600675e-245, 1.32721056e-245, 6.65438184e-246, 3.33499061e-246, 1.67070788e-246, 8.36614595e-247, 4.18764021e-247, 2.09523285e-247, 1.04788648e-247, 5.23859942e-248, 2.6177921e-248, 1.30759763e-248, 6.52878112e-249, 3.2584353e-249, 1.62556787e-249, 8.10625237e-250, 4.0406771e-250, 2.01329392e-250, 1.00271897e-250, 4.99195073e-251, 2.48416456e-251, 1.23568975e-251, 6.14408959e-252, 3.05368789e-252, 1.51708798e-252, 7.53383145e-253, 3.73972825e-253, 1.85559504e-253, 9.20333806e-254, 4.5627488e-254, 2.26113638e-254, 1.12007208e-254, 5.54605531e-255, 2.74499423e-255, 1.35805604e-255, 6.71603513e-256, 3.31991712e-256, 1.64044072e-256, 8.10238459e-257, 4.00022281e-257, 1.97412444e-257, 9.73831648e-258, 4.80189057e-258, 2.36678959e-258, 1.16607385e-258, 5.74263851e-259, 2.82693562e-259, 1.39103922e-259, 6.84198072e-260, 3.363902e-260, 1.65319408e-260, 8.12125908e-261, 3.9878784e-261, 1.95739947e-261, 9.60364376e-262, 4.70989946e-262, 2.30890598e-262, 1.13140965e-262, 5.54182145e-263, 2.71333987e-263, 1.32792909e-263, 6.49627782e-264, 3.17667887e-264, 1.55274829e-264, 7.58661111e-265, 3.70521664e-265, 1.80883274e-265, 8.82677858e-266, 4.30551469e-266, 2.09926343e-266, 1.02312294e-266, 4.9843408e-267, 2.4272061e-267, 1.18147518e-267, 5.7485931e-268, 2.79587376e-268, 1.35922881e-268, 6.60520958e-269, 3.20848237e-269, 1.55787186e-269, 7.56106257e-270, 3.66819955e-270, 1.77886134e-270, 8.62283871e-271, 4.17808674e-271, 2.02359531e-271, 9.79690505e-272, 4.74103496e-272, 2.29338221e-272, 1.10891624e-272, 5.35969498e-273, 2.58940766e-273, 1.2504888e-273, 6.03640275e-274, 2.91269919e-274, 1.40485689e-274, 6.77310115e-275, 3.26408953e-275, 1.57237304e-275, 7.57125965e-276, 3.64417913e-276, 1.75327613e-276, 8.43179322e-277, 4.05329862e-277, 1.94767407e-277, 9.35498268e-278, 4.49147225e-278, 2.15552706e-278, 1.03403983e-278, 4.9583831e-279, 2.37663188e-279, 1.13868287e-279, 5.45334132e-280, 2.61060763e-280, 1.24922179e-280, 5.97525618e-281, 2.85688353e-281, 1.36536124e-281, 6.52261328e-282, 3.11468923e-282, 1.48671197e-282, 7.09345776e-283, 3.38304803e-283, 1.61278832e-283, 7.68538457e-284, 3.66077358e-284, 1.74300712e-284, 8.29553662e-285, 3.94647029e-285, 1.87668862e-285, 8.92061168e-286, 4.23853797e-286, 2.01305922e-286, 9.55687832e-287, 4.53518066e-287, 2.15125631e-287, 1.02002016e-287, 4.83442007e-288, 2.29033518e-288, 1.08460783e-288, 5.13411341e-289, 2.42927797e-289, 1.14896817e-289, 5.43197569e-290, 2.56700473e-290, 1.21259159e-290, 5.72560611e-291, 2.70238621e-291, 1.27494778e-291, 6.01251831e-292, 2.83425851e-292, 1.33549277e-292, 6.29017392e-293, 2.96143907e-293, 1.39367652e-293, 6.55601892e-294, 3.0827439e-294, 1.44895111e-294, 6.80752192e-295, 3.19700563e-295, 1.50077915e-295, 7.04221384e-296, 3.30309196e-296, 1.54864244e-296, 7.25772791e-297, 3.39992428e-297, 1.59205051e-297, 7.45183919e-298, 3.48649577e-298, 1.63054897e-298, 7.62250272e-299, 3.56188886e-299, 1.66372743e-299, 7.76788928e-300, 3.62529133e-300, 1.69122673e-300, 7.88641805e-301, 3.67601091e-301, 1.71274546e-301, 7.97678517e-302, 3.71348782e-302, 1.72804541e-302, 8.03798763e-303, 3.73730511e-303, 1.73695599e-303, 8.06934181e-304, 3.74719633e-304, 1.7393774e-304, 8.07049616e-305, 3.7430505e-305, 1.73528246e-305, 8.04143779e-306, 3.72491421e-306, 1.72471715e-306, 7.98249269e-307, 3.69299072e-307, 1.70779974e-307, 7.89431966e-308, 3.64763617e-308, 1.68471856e-308, 7.77789805e-309, 3.58935301e-309, 1.65572856e-309, 7.63450962e-310, 3.51878065e-310, 1.62114658e-310, 7.46571512e-311, 3.43668388e-311, 1.58134561e-311, 7.27332599e-312, 3.34393903e-312, 1.5367481e-312, 7.05937173e-313, 3.24151811e-313, 1.48781831e-313, 6.82606561e-314, 3.13047422e-314, 1.43505673e-314, 6.57577902e-315, 3.01192154e-315, 1.37900228e-315, 6.31073893e-316, 2.88674716e-316, 1.32017616e-316, 6.03193878e-317, 2.7577109e-317, 1.25754726e-317, 5.73363676e-318, 2.60275264e-318, 1.22234805e-318, 5.31738151e-319, 2.66009884e-319, 1.06461265e-319, 5.32602766e-320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.18558356, 0.3711538, 0.55669738, 0.742201, 0.92765132, 1.11303505, 1.29833888, 1.48354951, 1.66865367, 1.85363809, 2.0384895, 2.22319469, 2.40774041, 2.59211348, 2.7763007, 2.96028893, 3.14406502, 3.32761586, 3.51092838, 3.69398952, 3.87678625, 4.05930557, 4.24153454, 4.42346022, 4.60506973, 4.78635021, 4.96728885, 5.14787288, 5.32808957, 5.50792624, 5.68737024, 5.86640897, 6.0450299, 6.22322053, 6.40096841, 6.57826115, 6.75508641, 6.9314319, 7.10728541, 7.28263476, 7.45746784, 7.6317726, 7.80553706, 7.97874931, 8.15139747, 8.32346976, 8.49495446, 8.66583992, 8.83611455, 9.00576684, 9.17478535, 9.34315873, 9.51087567, 9.67792497, 9.84429551, 10.00997621, 10.17495611, 10.33922433, 10.50277004, 10.66558252, 10.82765115, 10.98896535, 11.14951468, 11.30928874, 11.46827726, 11.62647004, 11.78385698, 11.94042806, 12.09617336, 12.25108307, 12.40514747, 12.55835691, 12.71070188, 12.86217294, 13.01276076, 13.16245611, 13.31124986, 13.45913299, 13.60609657, 13.75213179, 13.89722994, 14.04138241, 14.18458071, 14.32681644, 14.46808132, 14.60836718, 14.74766596, 14.88596971, 15.02327059, 15.15956087, 15.29483294, 15.42907931, 15.56229257, 15.69446547, 15.82559085, 15.95566167, 16.08467101, 16.21261207, 16.33947815, 16.4652627, 16.58995926, 16.7135615, 16.83606322, 16.95745833, 17.07774085, 17.19690495, 17.31494489, 17.43185507, 17.54763001, 17.66226436, 17.77575288, 17.88809045, 17.99927209, 18.10929293, 18.21814824, 18.32583339, 18.4323439, 18.5376754, 18.64182364, 18.74478452, 18.84655404, 18.94712833, 19.04650366, 19.1446764, 19.24164308, 19.33740032, 19.43194488, 19.52527366, 19.61738367, 19.70827205, 19.79793606, 19.88637309, 19.97358066, 20.0595564, 20.14429809, 20.22780362, 20.31007099, 20.39109836, 20.47088399, 20.54942627, 20.62672371, 20.70277495, 20.77757875, 20.851134, 20.9234397, 20.994495, 21.06429913, 21.13285149, 21.20015156, 21.26619896, 21.33099344, 21.39453485, 21.45682318, 21.51785853, 21.57764112, 21.63617129, 21.69344949, 21.7494763, 21.80425242, 21.85777866, 21.91005593, 21.96108529, 22.01086789, 22.059405, 22.10669802, 22.15274843, 22.19755785, 22.24112801, 22.28346075, 22.324558, 22.36442183, 22.4030544, 22.44045799, 22.47663499, 22.51158788, 22.54531926, 22.57783183, 22.60912841, 22.6392119, 22.66808532, 22.6957518, 22.72221455, 22.74747689, 22.77154225, 22.79441415, 22.8160962, 22.83659213, 22.85590575, 22.87404097, 22.8910018, 22.90679234, 22.92141677, 22.93487939, 22.94718457, 22.95833677, 22.96834056, 22.97720058, 22.98492156, 22.99150832, 22.99696576, 23.00129887, 23.00451273, 23.00661249, 23.00760338, 23.00749073, 23.00627993, 23.00397645, 23.00058586, 22.99611376, 22.99056588, 22.98394799, 22.97626594, 22.96752566, 22.95773313, 22.94689443, 22.93501569, 22.9221031, 22.90816295, 22.89320156, 22.87722533, 22.86024072, 22.84225426, 22.82327253, 22.80330218, 22.78234992, 22.7604225, 22.73752675, 22.71366954, 22.6888578, 22.66309852, 22.63639872, 22.60876551, 22.580206, 22.55072739, 22.52033692, 22.48904186, 22.45684953, 22.42376732, 22.38980262, 22.3549629, 22.31925565, 22.28268841, 22.24526876, 22.2070043, 22.16790269, 22.1279716, 22.08721877, 22.04565194, 22.00327889, 21.96010744, 21.91614544, 21.87140075, 21.82588128, 21.77959496, 21.73254973, 21.68475358, 21.63621451, 21.58694053, 21.53693969, 21.48622005, 21.4347897, 21.38265673, 21.32982926, 21.27631542, 21.22212336, 21.16726123, 21.11173721, 21.05555948, 20.99873624, 20.94127568, 20.88318602, 20.82447547, 20.76515226, 20.70522462, 20.64470078, 20.58358898, 20.52189745, 20.45963444, 20.39680818, 20.33342691, 20.26949887, 20.2050323, 20.14003542, 20.07451645, 20.00848363, 19.94194515, 19.87490923, 19.80738406, 19.73937784, 19.67089873, 19.6019549, 19.53255451, 19.46270569, 19.39241658, 19.32169528, 19.2505499, 19.17898851, 19.10701917, 19.03464992, 18.9618888, 18.88874381, 18.81522293, 18.74133413, 18.66708534, 18.59248449, 18.51753946, 18.44225814, 18.36664836, 18.29071793, 18.21447466, 18.1379263, 18.0610806, 17.98394525, 17.90652793, 17.82883629, 17.75087795, 17.67266048, 17.59419145, 17.51547836, 17.4365287, 17.35734992, 17.27794944, 17.19833463, 17.11851283, 17.03849137, 16.95827749, 16.87787844, 16.7973014, 16.71655353, 16.63564194, 16.55457371, 16.47335586, 16.39199539, 16.31049926, 16.22887435, 16.14712755, 16.06526567, 15.98329549, 15.90122375, 15.81905712, 15.73680226, 15.65446577, 15.5720542, 15.48957405, 15.40703178, 15.32443381, 15.24178651, 15.15909618, 15.07636911, 14.9936115, 14.91082954, 14.82802934, 14.74521698, 14.66239849, 14.57957983, 14.49676693, 14.41396566, 14.33118184, 14.24842125, 14.1656896, 14.08299257, 14.00033575, 13.91772473, 13.835165, 13.75266203, 13.67022122, 13.58784793, 13.50554746, 13.42332504, 13.34118588, 13.25913511, 13.17717782, 13.09531904, 13.01356374, 12.93191686, 12.85038325, 12.76896774, 12.68767508, 12.60650999, 12.5254771, 12.44458103, 12.3638263, 12.28321742, 12.2027588, 12.12245484, 12.04230984, 11.96232809, 11.88251379, 11.80287111, 11.72340414, 11.64411694, 11.5650135, 11.48609776, 11.4073736, 11.32884486, 11.25051531, 11.17238867, 11.09446861, 11.01675875, 10.93926263, 10.86198377, 10.78492561, 10.70809155, 10.63148494, 10.55510905, 10.47896713, 10.40306236, 10.32739786, 10.2519767, 10.17680192, 10.10187648, 10.02720329, 9.95278522, 9.87862508, 9.80472563, 9.73108957, 9.65771956, 9.5846182, 9.51178805, 9.4392316, 9.3669513, 9.29494956, 9.22322871, 9.15179107, 9.08063887, 9.00977431, 8.93919955, 8.86891667, 8.79892774, 8.72923474, 8.65983964, 8.59074434, 8.52195068, 8.45346049, 8.38527551, 8.31739747, 8.24982802, 8.18256879, 8.11562135, 8.04898723, 7.98266791, 7.91666482, 7.85097935, 7.78561285, 7.72056662, 7.65584192, 7.59143996, 7.5273619, 7.46360888, 7.40018198, 7.33708223, 7.27431064, 7.21186816, 7.1497557, 7.08797414, 7.02652431, 6.965407, 6.90462296, 6.84417291, 6.78405751, 6.7242774, 6.66483317, 6.60572538, 6.54695454, 6.48852113, 6.4304256, 6.37266835, 6.31524974, 6.25817012, 6.20142977, 6.14502895, 6.08896789, 6.03324679, 5.97786579, 5.92282502, 5.86812456, 5.81376447, 5.75974477, 5.70606545, 5.65272646, 5.59972774, 5.54706917, 5.49475061, 5.44277189, 5.39113283, 5.33983318, 5.28887268, 5.23825106, 5.18796798, 5.13802312, 5.08841608, 5.03914647, 4.99021387, 4.94161781, 4.89335781, 4.84543336, 4.79784393, 4.75058895, 4.70366784, 4.65708, 4.61082478, 4.56490152, 4.51930954, 4.47404814, 4.42911658, 4.38451412, 4.34023997, 4.29629335, 4.25267343, 4.20937938, 4.16641033, 4.12376541, 4.08144371, 4.03944432, 3.99776629, 3.95640866, 3.91537047, 3.8746507, 3.83424835, 3.79416239, 3.75439177, 3.71493541, 3.67579225, 3.63696117, 3.59844106, 3.5602308, 3.52232923, 3.48473519, 3.44744752, 3.41046501, 3.37378647, 3.33741067, 3.30133639, 3.26556237, 3.23008737, 3.19491011, 3.1600293, 3.12544367, 3.09115189, 3.05715266, 3.02344464, 2.9900265, 2.95689688, 2.92405444, 2.8914978, 2.85922558, 2.82723639, 2.79552885, 2.76410154, 2.73295305, 2.70208196, 2.67148685, 2.64116626, 2.61111877, 2.58134292, 2.55183725, 2.5226003, 2.4936306, 2.46492667, 2.43648703, 2.40831019, 2.38039467, 2.35273896, 2.32534156, 2.29820096, 2.27131566, 2.24468414, 2.21830487, 2.19217635, 2.16629704, 2.14066542, 2.11527995, 2.0901391, 2.06524133, 2.04058511, 2.01616889, 1.99199113, 1.9680503, 1.94434484, 1.9208732, 1.89763385, 1.87462523, 1.85184579, 1.82929399, 1.80696827, 1.78486709, 1.7629889, 1.74133215, 1.71989529, 1.69867677, 1.67767506, 1.65688859, 1.63631584, 1.61595525, 1.59580528, 1.57586441, 1.55613108, 1.53660376, 1.51728093, 1.49816104, 1.47924258, 1.46052401, 1.44200381, 1.42368047, 1.40555246, 1.38761827, 1.3698764, 1.35232533, 1.33496356, 1.3177896, 1.30080194, 1.2839991, 1.26737958, 1.25094191, 1.2346846, 1.21860618, 1.20270518, 1.18698014, 1.17142959, 1.15605208, 1.14084616, 1.12581038, 1.11094329, 1.09624348, 1.0817095, 1.06733993, 1.05313335, 1.03908835, 1.02520352, 1.01147746, 0.99790877, 0.98449607, 0.97123796, 0.95813307, 0.94518004, 0.93237748, 0.91972405, 0.90721839, 0.89485915, 0.88264499, 0.87057459, 0.85864661, 0.84685973, 0.83521265, 0.82370404, 0.81233262, 0.80109709, 0.78999616, 0.77902856, 0.76819301, 0.75748825, 0.74691302, 0.73646607, 0.72614615, 0.71595204, 0.70588249, 0.69593629, 0.68611223, 0.67640909, 0.66682568, 0.65736081, 0.64801328, 0.63878193, 0.62966558, 0.62066307, 0.61177324, 0.60299495, 0.59432705, 0.58576843, 0.57731794, 0.56897447, 0.56073692, 0.55260418, 0.54457516, 0.53664877, 0.52882393, 0.52109956, 0.51347462, 0.50594803, 0.49851876, 0.49118576, 0.483948, 0.47680445, 0.46975409, 0.46279592, 0.45592893, 0.44915213, 0.44246452, 0.43586514, 0.42935301, 0.42292716, 0.41658664, 0.4103305, 0.40415779, 0.39806759, 0.39205896, 0.38613099, 0.38028277, 0.37451339, 0.36882195, 0.36320758, 0.35766937, 0.35220647, 0.34681801, 0.34150312, 0.33626095, 0.33109066, 0.32599142, 0.32096239, 0.31600275, 0.31111168, 0.30628838, 0.30153204, 0.29684187, 0.2922171, 0.28765692, 0.28316058, 0.27872731, 0.27435635, 0.27004694, 0.26579835, 0.26160984, 0.25748067, 0.25341013, 0.24939749, 0.24544205, 0.24154311, 0.23769996, 0.23391191, 0.2301783, 0.22649843, 0.22287163, 0.21929726, 0.21577464, 0.21230313, 0.20888209, 0.20551087, 0.20218885, 0.19891541, 0.19568992, 0.19251177, 0.18938036, 0.18629509, 0.18325536, 0.18026059, 0.1773102, 0.17440361, 0.17154025, 0.16871957, 0.165941, 0.16320399, 0.16050799, 0.15785248, 0.15523691, 0.15266076, 0.1501235, 0.14762462, 0.1451636, 0.14273995, 0.14035316, 0.13800274, 0.1356882, 0.13340905, 0.13116482, 0.12895504, 0.12677923, 0.12463694, 0.12252771, 0.12045109, 0.11840662, 0.11639388, 0.11441242, 0.11246181, 0.11054162, 0.10865144, 0.10679084, 0.10495942, 0.10315677, 0.10138248, 0.09963617, 0.09791742, 0.09622587, 0.09456112, 0.09292279, 0.09131052, 0.08972392, 0.08816265, 0.08662632, 0.0851146, 0.08362711, 0.08216353, 0.0807235, 0.07930668, 0.07791274, 0.07654135, 0.07519218, 0.07386491, 0.07255921, 0.07127478, 0.07001129, 0.06876846, 0.06754596, 0.0663435, 0.06516079, 0.06399753, 0.06285344, 0.06172823, 0.06062161, 0.05953332, 0.05846308, 0.05741062, 0.05637567, 0.05535796, 0.05435725, 0.05337326, 0.05240576, 0.05145449, 0.05051919, 0.04959964, 0.04869559, 0.0478068, 0.04693303, 0.04607407, 0.04522968, 0.04439964, 0.04358372, 0.0427817, 0.04199338, 0.04121854, 0.04045697, 0.03970846, 0.03897281, 0.03824982, 0.03753929, 0.03684102, 0.03615483, 0.03548051, 0.03481789, 0.03416678, 0.03352699, 0.03289835, 0.03228068, 0.0316738, 0.03107754, 0.03049174, 0.02991622, 0.02935082, 0.02879537, 0.02824972, 0.02771371, 0.02718718, 0.02666998, 0.02616196, 0.02566296, 0.02517285, 0.02469147, 0.02421868, 0.02375434, 0.02329832, 0.02285047, 0.02241067, 0.02197877, 0.02155466, 0.02113819, 0.02072925, 0.0203277, 0.01993343, 0.01954631, 0.01916623, 0.01879306, 0.01842669, 0.01806701, 0.0177139, 0.01736725, 0.01702696, 0.01669292, 0.01636501, 0.01604314, 0.01572721, 0.0154171, 0.01511273, 0.014814, 0.01452081, 0.01423305, 0.01395065, 0.01367351, 0.01340154, 0.01313464, 0.01287274, 0.01261573, 0.01236355, 0.01211611, 0.01187332, 0.0116351, 0.01140137, 0.01117205, 0.01094708, 0.01072636, 0.01050983, 0.01029741, 0.01008903, 0.00988462, 0.0096841, 0.00948742, 0.00929449, 0.00910526, 0.00891966, 0.00873762, 0.00855908, 0.00838398, 0.00821225, 0.00804384, 0.00787869, 0.00771673, 0.00755791, 0.00740217, 0.00724947, 0.00709973, 0.00695291, 0.00680896, 0.00666781, 0.00652943, 0.00639377, 0.00626076, 0.00613037, 0.00600254, 0.00587723, 0.00575439, 0.00563398, 0.00551594, 0.00540025, 0.00528685, 0.0051757, 0.00506676, 0.00495999, 0.00485535, 0.00475279, 0.00465229, 0.0045538, 0.00445728, 0.00436269, 0.00427001, 0.00417919, 0.0040902, 0.00400301, 0.00391757, 0.00383386, 0.00375185, 0.0036715, 0.00359278, 0.00351566, 0.00344011, 0.0033661, 0.0032936, 0.00322258, 0.00315301, 0.00308487, 0.00301812, 0.00295274, 0.00288871, 0.002826, 0.00276457, 0.00270442, 0.00264551, 0.00258781, 0.00253132, 0.00247599, 0.00242181, 0.00236876, 0.00231681, 0.00226595, 0.00221614, 0.00216738, 0.00211964, 0.00207289, 0.00202713, 0.00198233, 0.00193847, 0.00189553, 0.0018535, 0.00181235, 0.00177207, 0.00173265, 0.00169406, 0.00165629, 0.00161932, 0.00158313, 0.00154772, 0.00151306, 0.00147914, 0.00144594, 0.00141345, 0.00138166, 0.00135055, 0.00132011, 0.00129032, 0.00126117, 0.00123265, 0.00120475, 0.00117745, 0.00115073, 0.0011246, 0.00109903, 0.00107402, 0.00104954, 0.00102561, 0.00100219, 0.00097928, 0.00095687, 0.00093495, 0.00091351, 0.00089255, 0.00087204, 0.00085198, 0.00083236, 0.00081317, 0.0007944, 0.00077605, 0.00075811, 0.00074056, 0.00072339, 0.00070661, 0.0006902, 0.00067416, 0.00065847, 0.00064313, 0.00062813, 0.00061347, 0.00059913, 0.00058512, 0.00057142, 0.00055802, 0.00054493, 0.00053213, 0.00051961, 0.00050738, 0.00049543, 0.00048374, 0.00047232, 0.00046116, 0.00045025, 0.00043958, 0.00042916, 0.00041898, 0.00040902, 0.0003993, 0.00038979, 0.0003805, 0.00037143, 0.00036256, 0.00035389, 0.00034542, 0.00033715, 0.00032907, 0.00032117, 0.00031345, 0.00030592, 0.00029855, 0.00029136, 0.00028433, 0.00027746, 0.00027076, 0.00026421, 0.00025781, 0.00025156, 0.00024546, 0.00023949, 0.00023367, 0.00022798, 0.00022243, 0.000217, 0.00021171, 0.00020653, 0.00020148, 0.00019655, 0.00019173, 0.00018703, 0.00018244, 0.00017795, 0.00017357, 0.0001693, 0.00016512, 0.00016105, 0.00015707, 0.00015319, 0.0001494, 0.0001457, 0.00014208, 0.00013856, 0.00013511, 0.00013175, 0.00012847, 0.00012527, 0.00012215, 0.0001191, 0.00011612, 0.00011322, 0.00011038, 0.00010761, 0.00010491, 0.00010228, 0.00009971, 0.0000972, 0.00009475, 0.00009236, 0.00009003, 0.00008776, 0.00008554, 0.00008338, 0.00008126, 0.0000792, 0.00007719, 0.00007523, 0.00007332, 0.00007145, 0.00006963, 0.00006786, 0.00006613, 0.00006444, 0.00006279, 0.00006118, 0.00005962, 0.00005809, 0.0000566, 0.00005514, 0.00005372, 0.00005234, 0.00005099, 0.00004968, 0.0000484, 0.00004714, 0.00004593, 0.00004474, 0.00004358, 0.00004245, 0.00004135, 0.00004027, 0.00003922, 0.0000382, 0.00003721, 0.00003624, 0.00003529, 0.00003437, 0.00003347, 0.0000326, 0.00003174, 0.00003091, 0.0000301, 0.00002931, 0.00002854, 0.00002779, 0.00002705, 0.00002634, 0.00002565, 0.00002497, 0.00002431, 0.00002367, 0.00002304, 0.00002243, 0.00002183, 0.00002125, 0.00002069, 0.00002014, 0.0000196, 0.00001908, 0.00001857, 0.00001807, 0.00001759, 0.00001712, 0.00001666, 0.00001622, 0.00001578, 0.00001536, 0.00001494, 0.00001454, 0.00001415, 0.00001377, 0.0000134, 0.00001304, 0.00001268, 0.00001234, 0.00001201, 0.00001168, 0.00001137, 0.00001106, 0.00001076, 0.00001046, 0.00001018, 9.90294972e-06, 9.633067e-06, 9.37030842e-06, 9.11449244e-06, 8.86544198e-06, 8.62298427e-06, 8.38695082e-06, 8.15717725e-06, 7.93350325e-06, 7.71577243e-06, 7.50383227e-06, 7.29753403e-06, 7.09673262e-06, 6.90128656e-06, 6.71105785e-06, 6.52591194e-06, 6.3457176e-06, 6.17034687e-06, 5.99967496e-06, 5.8335802e-06, 5.67194395e-06, 5.51465053e-06, 5.36158714e-06, 5.21264383e-06, 5.06771336e-06, 4.92669121e-06, 4.78947548e-06, 4.65596681e-06, 4.52606835e-06, 4.3996857e-06, 4.27672681e-06, 4.15710197e-06, 4.04072374e-06, 3.92750688e-06, 3.81736831e-06, 3.71022705e-06, 3.60600418e-06, 3.50462279e-06, 3.40600789e-06, 3.31008645e-06, 3.21678725e-06, 3.12604093e-06, 3.03777985e-06, 2.95193815e-06, 2.86845161e-06, 2.78725769e-06, 2.70829542e-06, 2.63150542e-06, 2.55682982e-06, 2.48421225e-06, 2.41359776e-06, 2.34493286e-06, 2.27816541e-06, 2.21324462e-06, 2.15012102e-06, 2.0887464e-06, 2.02907383e-06, 1.97105757e-06, 1.91465307e-06, 1.85981695e-06, 1.80650696e-06, 1.75468192e-06, 1.70430175e-06, 1.65532741e-06, 1.60772087e-06, 1.56144511e-06, 1.51646406e-06, 1.47274261e-06, 1.43024656e-06, 1.38894261e-06, 1.34879833e-06, 1.30978216e-06, 1.27186335e-06, 1.23501197e-06, 1.19919887e-06, 1.16439569e-06, 1.1305748e-06, 1.0977093e-06, 1.06577302e-06, 1.03474047e-06, 1.00458683e-06, 9.75287964e-07, 9.46820347e-07, 9.191611e-07, 8.92287946e-07, 8.66179205e-07, 8.40813773e-07, 8.16171111e-07, 7.9223123e-07, 7.68974674e-07, 7.4638251e-07, 7.24436311e-07, 7.03118146e-07, 6.82410566e-07, 6.62296591e-07, 6.42759697e-07, 6.23783807e-07, 6.05353276e-07, 5.87452884e-07, 5.7006782e-07, 5.53183675e-07, 5.36786428e-07, 5.20862442e-07, 5.05398447e-07, 4.90381534e-07, 4.75799145e-07, 4.61639065e-07, 4.4788941e-07, 4.3453862e-07, 4.21575453e-07, 4.0898897e-07, 3.96768535e-07, 3.84903801e-07, 3.73384706e-07, 3.62201461e-07, 3.51344549e-07, 3.40804712e-07, 3.30572949e-07, 3.20640505e-07, 3.10998866e-07, 3.01639754e-07, 2.92555119e-07, 2.83737134e-07, 2.75178188e-07, 2.66870879e-07, 2.58808014e-07, 2.50982596e-07, 2.43387823e-07, 2.36017084e-07, 2.2886395e-07, 2.21922171e-07, 2.15185672e-07, 2.08648547e-07, 2.02305055e-07, 1.96149616e-07, 1.90176804e-07, 1.84381348e-07, 1.78758122e-07, 1.73302145e-07, 1.68008576e-07, 1.6287271e-07, 1.57889974e-07, 1.53055924e-07, 1.48366241e-07, 1.43816728e-07, 1.39403306e-07, 1.35122012e-07, 1.30968996e-07, 1.26940513e-07, 1.2303293e-07, 1.19242712e-07, 1.15566426e-07, 1.12000739e-07, 1.08542408e-07, 1.05188287e-07, 1.01935317e-07, 9.87805262e-08, 9.57210289e-08, 9.27540211e-08, 8.9876779e-08, 8.70866569e-08, 8.43810849e-08, 8.17575666e-08, 7.92136774e-08, 7.67470625e-08, 7.43554344e-08, 7.20365718e-08, 6.97883172e-08, 6.76085754e-08, 6.54953115e-08, 6.34465496e-08, 6.14603707e-08, 5.95349114e-08, 5.76683623e-08, 5.58589664e-08, 5.41050177e-08, 5.24048597e-08, 5.07568842e-08, 4.91595295e-08, 4.76112796e-08, 4.61106625e-08, 4.46562493e-08, 4.32466527e-08, 4.1880526e-08, 4.05565618e-08, 3.9273491e-08, 3.80300818e-08, 3.68251383e-08, 3.56574998e-08, 3.45260398e-08, 3.34296647e-08, 3.23673133e-08, 3.13379555e-08, 3.03405915e-08, 2.93742513e-08, 2.84379931e-08, 2.75309034e-08, 2.66520954e-08, 2.58007086e-08, 2.49759081e-08, 2.41768837e-08, 2.34028492e-08, 2.26530418e-08, 2.19267215e-08, 2.122317e-08, 2.05416908e-08, 1.98816079e-08, 1.92422655e-08, 1.86230274e-08, 1.80232764e-08, 1.74424139e-08, 1.68798591e-08, 1.63350484e-08, 1.58074356e-08, 1.52964904e-08, 1.48016988e-08, 1.43225619e-08, 1.38585962e-08, 1.34093324e-08, 1.29743156e-08, 1.25531045e-08, 1.21452713e-08, 1.17504008e-08, 1.13680906e-08, 1.09979505e-08, 1.0639602e-08, 1.02926781e-08, 9.95682298e-09, 9.63169165e-09, 9.31694955e-09, 9.01227231e-09, 8.71734545e-09, 8.43186408e-09, 8.15553259e-09, 7.8880644e-09, 7.62918169e-09, 7.37861515e-09, 7.13610368e-09, 6.9013942e-09, 6.67424138e-09, 6.45440742e-09, 6.24166182e-09, 6.03578117e-09, 5.83654891e-09, 5.64375518e-09, 5.45719656e-09, 5.2766759e-09, 5.10200216e-09, 4.93299017e-09, 4.7694605e-09, 4.61123926e-09, 4.45815797e-09, 4.31005334e-09, 4.16676715e-09, 4.02814611e-09, 3.89404167e-09, 3.7643099e-09, 3.63881136e-09, 3.51741096e-09, 3.39997778e-09, 3.28638503e-09, 3.17650985e-09, 3.07023323e-09, 2.96743986e-09, 2.86801808e-09, 2.77185969e-09, 2.67885988e-09, 2.58891717e-09, 2.50193321e-09, 2.41781277e-09, 2.33646363e-09, 2.25779643e-09, 2.18172466e-09, 2.10816453e-09, 2.03703487e-09, 1.9682571e-09, 1.90175511e-09, 1.83745521e-09, 1.77528601e-09, 1.71517842e-09, 1.65706553e-09, 1.60088252e-09, 1.54656667e-09, 1.49405724e-09, 1.4432954e-09, 1.39422423e-09, 1.34678859e-09, 1.30093512e-09, 1.25661214e-09, 1.21376963e-09, 1.17235919e-09, 1.13233394e-09, 1.0936485e-09, 1.05625896e-09, 1.02012281e-09, 9.85198895e-10, 9.51447398e-10, 9.18829768e-10, 8.87308698e-10, 8.56848083e-10, 8.27412979e-10, 7.98969567e-10, 7.71485121e-10, 7.4492797e-10, 7.19267468e-10, 6.94473957e-10, 6.70518741e-10, 6.47374052e-10, 6.25013022e-10, 6.03409655e-10, 5.82538798e-10, 5.62376115e-10, 5.42898061e-10, 5.24081858e-10, 5.05905468e-10, 4.88347573e-10, 4.71387549e-10, 4.55005444e-10, 4.3918196e-10, 4.23898428e-10, 4.09136789e-10, 3.94879578e-10, 3.81109898e-10, 3.67811411e-10, 3.5496831e-10, 3.42565311e-10, 3.30587629e-10, 3.19020968e-10, 3.07851501e-10, 2.97065856e-10, 2.86651102e-10, 2.76594737e-10, 2.66884667e-10, 2.57509202e-10, 2.48457036e-10, 2.39717237e-10, 2.31279237e-10, 2.23132816e-10, 2.15268093e-10, 2.07675517e-10, 2.00345853e-10, 1.93270171e-10, 1.86439842e-10, 1.7984652e-10, 1.7348214e-10, 1.67338906e-10, 1.61409279e-10, 1.55685975e-10, 1.50161953e-10, 1.44830404e-10, 1.39684751e-10, 1.34718636e-10, 1.29925913e-10, 1.25300643e-10, 1.20837086e-10, 1.16529695e-10, 1.12373109e-10, 1.08362149e-10, 1.04491808e-10, 1.00757249e-10, 9.71537982e-11, 9.36769386e-11, 9.03223064e-11, 8.70856851e-11, 8.39630007e-11, 8.0950317e-11, 7.80438314e-11, 7.52398697e-11, 7.25348828e-11, 6.99254416e-11, 6.74082338e-11, 6.49800594e-11, 6.26378275e-11, 6.03785523e-11, 5.81993496e-11, 5.60974337e-11, 5.40701139e-11, 5.21147912e-11, 5.02289555e-11, 4.84101826e-11, 4.6656131e-11, 4.49645397e-11, 4.33332248e-11, 4.17600776e-11, 4.02430616e-11, 3.87802102e-11, 3.73696245e-11, 3.60094707e-11, 3.46979784e-11, 3.3433438e-11, 3.22141987e-11, 3.10386668e-11, 2.99053036e-11, 2.88126234e-11, 2.77591921e-11, 2.67436249e-11, 2.57645852e-11, 2.48207825e-11, 2.39109711e-11, 2.30339486e-11, 2.21885542e-11, 2.13736674e-11, 2.05882069e-11, 1.98311288e-11, 1.91014255e-11, 1.83981246e-11, 1.77202876e-11, 1.70670088e-11, 1.64374139e-11, 1.58306594e-11, 1.52459311e-11, 1.46824435e-11, 1.41394383e-11, 1.3616184e-11, 1.31119746e-11, 1.26261291e-11, 1.21579901e-11, 1.17069236e-11, 1.12723176e-11, 1.08535819e-11, 1.04501469e-11, 1.00614631e-11, 9.68700051e-12, 9.32624761e-12, 8.97871112e-12, 8.64391512e-12, 8.32140053e-12, 8.01072453e-12, 7.71145994e-12, 7.42319476e-12, 7.14553157e-12, 6.87808706e-12, 6.62049153e-12, 6.37238842e-12, 6.13343383e-12, 5.90329612e-12, 5.68165546e-12, 5.46820338e-12, 5.26264245e-12, 5.06468584e-12, 4.87405694e-12, 4.69048906e-12, 4.51372501e-12, 4.34351683e-12, 4.17962542e-12, 4.02182025e-12, 3.86987907e-12, 3.72358758e-12, 3.5827392e-12, 3.44713475e-12, 3.31658222e-12, 3.19089651e-12, 3.06989918e-12, 2.95341822e-12, 2.84128783e-12, 2.73334818e-12, 2.62944521e-12, 2.52943044e-12, 2.43316073e-12, 2.34049814e-12, 2.25130973e-12, 2.16546736e-12, 2.08284753e-12, 2.00333124e-12, 1.92680379e-12, 1.85315467e-12, 1.78227735e-12, 1.71406922e-12, 1.64843137e-12, 1.5852685e-12, 1.5244888e-12, 1.46600379e-12, 1.40972822e-12, 1.35557997e-12, 1.3034799e-12, 1.25335178e-12, 1.20512217e-12, 1.1587203e-12, 1.11407801e-12, 1.07112965e-12, 1.02981195e-12, 9.90063979e-13, 9.51827052e-13, 9.1504463e-13, 8.79662258e-13, 8.45627487e-13, 8.12889798e-13, 7.81400536e-13, 7.51112841e-13, 7.21981582e-13, 6.93963297e-13, 6.67016129e-13, 6.41099768e-13, 6.161754e-13, 5.92205645e-13, 5.69154509e-13, 5.46987335e-13, 5.25670751e-13, 5.05172623e-13, 4.85462013e-13, 4.66509134e-13, 4.48285304e-13, 4.30762914e-13, 4.13915379e-13, 3.97717107e-13, 3.82143463e-13, 3.67170729e-13, 3.52776073e-13, 3.38937519e-13, 3.2563391e-13, 3.12844883e-13, 3.00550837e-13, 2.88732907e-13, 2.77372933e-13, 2.66453438e-13, 2.55957603e-13, 2.45869238e-13, 2.36172763e-13, 2.26853186e-13, 2.17896076e-13, 2.0928755e-13, 2.01014244e-13, 1.93063302e-13, 1.8542235e-13, 1.78079484e-13, 1.7102325e-13, 1.64242625e-13, 1.57727005e-13, 1.51466188e-13, 1.45450356e-13, 1.39670067e-13, 1.34116234e-13, 1.28780118e-13, 1.2365331e-13, 1.1872772e-13, 1.13995569e-13, 1.09449372e-13, 1.05081928e-13, 1.00886314e-13, 9.68558668e-14, 9.2984181e-14, 8.92650942e-14, 8.56926799e-14, 8.22612381e-14, 7.89652871e-14, 7.5799555e-14, 7.27589718e-14, 6.98386622e-14, 6.70339375e-14, 6.43402894e-14, 6.17533825e-14, 5.92690481e-14, 5.6883278e-14, 5.45922181e-14, 5.23921628e-14, 5.02795491e-14, 4.82509518e-14, 4.63030775e-14, 4.44327601e-14, 4.26369558e-14, 4.09127384e-14, 3.9257295e-14, 3.76679216e-14, 3.61420187e-14, 3.46770878e-14, 3.32707272e-14, 3.19206284e-14, 3.06245726e-14, 2.9380427e-14, 2.81861419e-14, 2.70397473e-14, 2.593935e-14, 2.48831303e-14, 2.38693395e-14, 2.28962973e-14, 2.19623888e-14, 2.10660621e-14, 2.0205826e-14, 1.93802477e-14, 1.85879504e-14, 1.78276111e-14, 1.70979587e-14, 1.6397772e-14, 1.57258775e-14, 1.5081148e-14, 1.44625002e-14, 1.38688938e-14, 1.32993292e-14, 1.2752846e-14, 1.22285218e-14, 1.17254704e-14, 1.12428407e-14, 1.0779815e-14, 1.03356079e-14, 9.90946501e-15, 9.50066187e-15, 9.10850253e-15, 8.73231861e-15, 8.3714682e-15, 8.0253348e-15, 7.69332636e-15, 7.37487428e-15, 7.06943257e-15, 6.77647687e-15, 6.4955037e-15, 6.22602955e-15, 5.96759018e-15, 5.71973982e-15, 5.48205045e-15, 5.2541111e-15, 5.03552719e-15, 4.82591991e-15, 4.62492555e-15, 4.43219493e-15, 4.24739283e-15, 4.07019746e-15, 3.90029987e-15, 3.73740352e-15, 3.58122373e-15, 3.43148724e-15, 3.28793176e-15, 3.15030552e-15, 3.01836687e-15, 2.89188387e-15, 2.77063391e-15, 2.65440333e-15, 2.54298709e-15, 2.43618839e-15, 2.33381839e-15, 2.23569584e-15, 2.14164682e-15, 2.05150444e-15, 1.96510854e-15, 1.88230544e-15, 1.80294769e-15, 1.7268938e-15, 1.65400801e-15, 1.58416006e-15, 1.51722499e-15, 1.45308289e-15, 1.39161872e-15, 1.33272215e-15, 1.27628728e-15, 1.22221256e-15, 1.17040056e-15, 1.1207578e-15, 1.07319465e-15, 1.0276251e-15, 9.8396666e-16, 9.42140209e-16, 9.02069858e-16, 8.63682818e-16, 8.26909278e-16, 7.91682284e-16, 7.57937622e-16, 7.25613711e-16, 6.94651492e-16, 6.6499433e-16, 6.36587915e-16, 6.09380165e-16, 5.8332114e-16, 5.58362954e-16, 5.34459688e-16, 5.11567316e-16, 4.89643624e-16, 4.68648138e-16, 4.48542053e-16, 4.29288165e-16, 4.10850807e-16, 3.93195782e-16, 3.76290312e-16, 3.60102969e-16, 3.44603628e-16, 3.29763413e-16, 3.15554642e-16, 3.0195078e-16, 2.88926395e-16, 2.76457108e-16, 2.64519555e-16, 2.53091341e-16, 2.42151002e-16, 2.31677967e-16, 2.21652522e-16, 2.12055774e-16, 2.02869617e-16, 1.94076698e-16, 1.85660392e-16, 1.77604765e-16, 1.69894548e-16, 1.62515113e-16, 1.55452442e-16, 1.48693103e-16, 1.42224227e-16, 1.36033484e-16, 1.30109061e-16, 1.2443964e-16, 1.19014379e-16, 1.13822888e-16, 1.08855219e-16, 1.04101836e-16, 9.95536085e-17, 9.52017884e-17, 9.10379963e-17, 8.70542058e-17, 8.32427288e-17, 7.95962015e-17, 7.61075708e-17, 7.27700817e-17, 6.95772642e-17, 6.65229221e-17, 6.36011212e-17, 6.08061785e-17, 5.81326517e-17, 5.55753288e-17, 5.31292192e-17, 5.07895436e-17, 4.85517259e-17, 4.6411384e-17, 4.43643224e-17, 4.24065235e-17, 4.0534141e-17, 3.87434921e-17, 3.70310509e-17, 3.53934419e-17, 3.38274332e-17, 3.2329931e-17, 3.08979735e-17, 2.95287254e-17, 2.82194726e-17, 2.6967617e-17, 2.57706716e-17, 2.4626256e-17, 2.35320915e-17, 2.24859973e-17, 2.1485886e-17, 2.05297598e-17, 1.96157066e-17, 1.87418964e-17, 1.79065779e-17, 1.71080751e-17, 1.6344784e-17, 1.56151699e-17, 1.49177639e-17, 1.42511606e-17, 1.3614015e-17, 1.30050404e-17, 1.24230055e-17, 1.1866732e-17, 1.13350928e-17, 1.08270095e-17, 1.03414502e-17, 9.87742768e-18, 9.43399762e-18, 9.01025654e-18, 8.60534011e-18, 8.21842153e-18, 7.84870987e-18, 7.49544857e-18, 7.15791392e-18, 6.83541371e-18, 6.52728579e-18, 6.23289689e-18, 5.95164128e-18, 5.68293963e-18, 5.42623788e-18, 5.18100613e-18, 4.9467376e-18, 4.72294767e-18, 4.50917285e-18, 4.30496997e-18, 4.10991518e-18, 3.92360324e-18, 3.74564662e-18, 3.57567477e-18, 3.4133334e-18, 3.25828376e-18, 3.11020194e-18, 2.96877829e-18, 2.83371674e-18, 2.70473423e-18, 2.58156017e-18, 2.46393587e-18, 2.35161402e-18, 2.24435822e-18, 2.14194247e-18, 2.04415075e-18, 1.95077659e-18, 1.86162259e-18, 1.77650012e-18, 1.69522885e-18, 1.61763645e-18, 1.54355818e-18, 1.47283664e-18, 1.40532137e-18, 1.34086858e-18, 1.27934087e-18, 1.22060691e-18, 1.16454124e-18, 1.11102393e-18, 1.05994041e-18, 1.01118119e-18, 9.64641652e-19, 9.20221832e-19, 8.77826222e-19, 8.37363569e-19, 7.98746687e-19, 7.61892281e-19, 7.2672077e-19, 6.93156129e-19, 6.61125728e-19, 6.30560186e-19, 6.01393221e-19, 5.73561521e-19, 5.47004606e-19, 5.21664706e-19, 4.97486641e-19, 4.74417705e-19, 4.52407557e-19, 4.31408114e-19, 4.11373456e-19, 3.92259724e-19, 3.74025031e-19, 3.56629377e-19, 3.4003456e-19, 3.242041e-19, 3.09103158e-19, 2.94698469e-19, 2.80958267e-19, 2.67852219e-19, 2.55351363e-19, 2.43428044e-19, 2.32055858e-19, 2.21209596e-19, 2.10865188e-19, 2.00999655e-19, 1.91591057e-19, 1.8261845e-19, 1.74061841e-19, 1.65902141e-19, 1.5812113e-19, 1.50701413e-19, 1.43626389e-19, 1.36880208e-19, 1.30447744e-19, 1.24314557e-19, 1.18466866e-19, 1.12891519e-19, 1.0757596e-19, 1.02508208e-19, 9.76768302e-20, 9.30709125e-20, 8.86800413e-20, 8.44942785e-20, 8.05041405e-20, 7.67005775e-20, 7.30749541e-20, 6.96190302e-20, 6.63249434e-20, 6.31851918e-20, 6.01926175e-20, 5.73403912e-20, 5.46219971e-20, 5.20312189e-20, 4.95621259e-20, 4.72090602e-20, 4.49666243e-20, 4.28296689e-20, 4.07932823e-20, 3.88527789e-20, 3.70036892e-20, 3.524175e-20, 3.35628945e-20, 3.19632442e-20, 3.04390996e-20, 2.8986932e-20, 2.76033762e-20, 2.62852227e-20, 2.50294104e-20, 2.38330202e-20, 2.26932682e-20, 2.16074997e-20, 2.05731829e-20, 1.95879038e-20, 1.86493603e-20, 1.77553575e-20, 1.69038024e-20, 1.60926994e-20, 1.53201456e-20, 1.45843269e-20, 1.38835136e-20, 1.32160568e-20, 1.25803843e-20, 1.19749973e-20, 1.13984669e-20, 1.08494311e-20, 1.03265914e-20, 9.82871016e-21, 9.35460742e-21, 8.9031586e-21, 8.47329171e-21, 8.06398501e-21, 7.67426463e-21, 7.30320237e-21, 6.94991358e-21, 6.61355515e-21, 6.29332356e-21, 5.98845303e-21, 5.69821379e-21, 5.42191042e-21, 5.1588802e-21, 4.90849161e-21, 4.6701429e-21, 4.44326067e-21, 4.22729857e-21, 4.021736e-21, 3.82607696e-21, 3.63984886e-21, 3.46260145e-21, 3.29390576e-21, 3.1333531e-21, 2.98055415e-21, 2.83513798e-21, 2.69675127e-21, 2.56505741e-21, 2.43973579e-21, 2.32048096e-21, 2.20700202e-21, 2.09902185e-21, 1.99627651e-21, 1.8985146e-21, 1.80549668e-21, 1.7169947e-21, 1.63279147e-21, 1.55268015e-21, 1.47646374e-21, 1.40395465e-21, 1.33497423e-21, 1.26935236e-21, 1.20692703e-21, 1.14754399e-21, 1.09105634e-21, 1.03732424e-21, 9.86214494e-22, 9.37600317e-22, 8.91360982e-22, 8.47381547e-22, 8.05552584e-22, 7.6576991e-22, 7.27934343e-22, 6.91951461e-22, 6.57731379e-22, 6.25188532e-22, 5.94241466e-22, 5.6481265e-22, 5.3682828e-22, 5.10218107e-22, 4.84915269e-22, 4.60856122e-22, 4.37980096e-22, 4.16229538e-22, 3.95549583e-22, 3.75888013e-22, 3.57195132e-22, 3.39423649e-22, 3.22528558e-22, 3.06467033e-22, 2.91198319e-22, 2.76683636e-22, 2.62886084e-22, 2.4977055e-22, 2.37303627e-22, 2.25453527e-22, 2.14190005e-22, 2.03484289e-22, 1.93309e-22, 1.83638095e-22, 1.74446795e-22, 1.65711529e-22, 1.57409871e-22, 1.49520492e-22, 1.42023098e-22, 1.34898388e-22, 1.28128001e-22, 1.21694473e-22, 1.15581192e-22, 1.09772359e-22, 1.04252947e-22, 9.90086627e-23, 9.40259137e-23, 8.92917723e-23, 8.47939442e-23, 8.05207376e-23, 7.64610337e-23, 7.26042593e-23, 6.894036e-23, 6.54597751e-23, 6.21534133e-23, 5.90126304e-23, 5.6029207e-23, 5.31953282e-23, 5.05035636e-23, 4.79468487e-23, 4.55184671e-23, 4.32120333e-23, 4.10214767e-23, 3.89410263e-23, 3.69651957e-23, 3.50887698e-23, 3.33067907e-23, 3.1614546e-23, 3.00075561e-23, 2.84815629e-23, 2.70325194e-23, 2.56565788e-23, 2.4350085e-23, 2.3109563e-23, 2.19317103e-23, 2.08133882e-23, 1.97516137e-23, 1.87435521e-23, 1.77865094e-23, 1.68779258e-23, 1.60153684e-23, 1.51965258e-23, 1.44192013e-23, 1.36813078e-23, 1.29808622e-23, 1.23159802e-23, 1.16848715e-23, 1.10858351e-23, 1.0517255e-23, 9.97759597e-24, 9.46539927e-24, 8.97927928e-24, 8.51791962e-24, 8.0800698e-24, 7.66454193e-24, 7.27020762e-24, 6.89599503e-24, 6.54088605e-24, 6.20391365e-24, 5.88415931e-24, 5.58075064e-24, 5.29285908e-24, 5.01969768e-24, 4.76051908e-24, 4.51461351e-24, 4.2813069e-24, 4.05995914e-24, 3.84996235e-24, 3.6507393e-24, 3.46174184e-24, 3.28244949e-24, 3.11236802e-24, 2.95102817e-24, 2.79798438e-24, 2.65281359e-24, 2.51511415e-24, 2.38450472e-24, 2.26062325e-24, 2.14312604e-24, 2.03168678e-24, 1.92599571e-24, 1.82575877e-24, 1.73069682e-24, 1.64054487e-24, 1.55505141e-24, 1.47397769e-24, 1.39709708e-24, 1.32419451e-24, 1.25506581e-24, 1.18951722e-24, 1.12736485e-24, 1.06843416e-24, 1.01255952e-24, 9.59583727e-25, 9.09357618e-25, 8.61739628e-25, 8.16595421e-25, 7.73797525e-25, 7.3322498e-25, 6.94763011e-25, 6.58302714e-25, 6.23740758e-25, 5.90979099e-25, 5.59924719e-25, 5.30489364e-25, 5.02589304e-25, 4.76145104e-25, 4.51081406e-25, 4.2732672e-25, 4.04813227e-25, 3.83476594e-25, 3.63255793e-25, 3.44092936e-25, 3.25933115e-25, 3.08724247e-25, 2.9241693e-25, 2.7696431e-25, 2.62321946e-25, 2.48447691e-25, 2.3530157e-25, 2.22845674e-25, 2.1104405e-25, 1.99862603e-25, 1.89269e-25, 1.79232582e-25, 1.69724272e-25, 1.60716501e-25, 1.52183129e-25, 1.44099366e-25, 1.3644171e-25, 1.29187877e-25, 1.22316738e-25, 1.15808261e-25, 1.09643456e-25, 1.03804317e-25, 9.82737741e-26, 9.30356463e-26, 8.80745933e-26, 8.33760732e-26, 7.89263012e-26, 7.47122109e-26, 7.07214162e-26, 6.69421772e-26, 6.33633662e-26, 5.9974436e-26, 5.67653903e-26, 5.37267546e-26, 5.08495496e-26, 4.81252654e-26, 4.55458371e-26, 4.31036218e-26, 4.07913767e-26, 3.86022382e-26, 3.65297025e-26, 3.45676063e-26, 3.27101099e-26, 3.09516799e-26, 2.92870731e-26, 2.77113218e-26, 2.62197192e-26, 2.4807806e-26, 2.34713571e-26, 2.220637e-26, 2.10090525e-26, 1.98758123e-26, 1.88032461e-26, 1.77881303e-26, 1.68274108e-26, 1.59181949e-26, 1.50577424e-26, 1.42434579e-26, 1.34728828e-26, 1.27436888e-26, 1.20536702e-26, 1.14007384e-26, 1.07829149e-26, 1.01983264e-26, 9.64519822e-27, 9.12185019e-27, 8.62669095e-27, 8.15821356e-27, 7.71499104e-27, 7.29567214e-27, 6.89897733e-27, 6.52369508e-27, 6.16867821e-27, 5.83284055e-27, 5.51515369e-27, 5.21464396e-27, 4.9303895e-27, 4.66151757e-27, 4.40720191e-27, 4.16666032e-27, 3.93915231e-27, 3.72397688e-27, 3.52047048e-27, 3.32800496e-27, 3.14598574e-27, 2.97385002e-27, 2.81106509e-27, 2.65712673e-27, 2.51155772e-27, 2.37390637e-27, 2.2437452e-27, 2.12066961e-27, 2.00429674e-27, 1.8942642e-27, 1.79022911e-27, 1.69186694e-27, 1.59887061e-27, 1.51094956e-27, 1.42782881e-27, 1.34924818e-27, 1.2749615e-27, 1.20473584e-27, 1.1383508e-27, 1.07559787e-27, 1.01627976e-27, 9.60209836e-28, 9.0721151e-28, 8.57117736e-28, 8.09770481e-28, 7.65020246e-28, 7.22725612e-28, 6.82752803e-28, 6.44975276e-28, 6.09273334e-28, 5.75533761e-28, 5.43649467e-28, 5.13519168e-28, 4.85047064e-28, 4.58142552e-28, 4.32719943e-28, 4.08698196e-28, 3.86000672e-28, 3.64554892e-28, 3.44292315e-28, 3.25148128e-28, 3.0706104e-28, 2.89973096e-28, 2.73829494e-28, 2.58578417e-28, 2.44170871e-28, 2.30560529e-28, 2.17703595e-28, 2.05558656e-28, 1.94086563e-28, 1.83250303e-28, 1.73014882e-28, 1.63347222e-28, 1.5421605e-28, 1.45591804e-28, 1.3744654e-28, 1.29753842e-28, 1.22488741e-28, 1.15627637e-28, 1.0914822e-28, 1.03029406e-28, 9.72512661e-29, 9.17949659e-29, 8.66427039e-29, 8.17776564e-29, 7.71839241e-29, 7.28464816e-29, 6.87511296e-29, 6.488445e-29, 6.12337629e-29, 5.77870867e-29, 5.45330998e-29, 5.14611042e-29, 4.85609918e-29, 4.5823212e-29, 4.3238741e-29, 4.07990531e-29, 3.84960934e-29, 3.6322252e-29, 3.42703395e-29, 3.23335641e-29, 3.05055096e-29, 2.87801147e-29, 2.7151654e-29, 2.56147188e-29, 2.41642003e-29, 2.27952728e-29, 2.15033782e-29, 2.02842113e-29, 1.91337058e-29, 1.80480211e-29, 1.702353e-29, 1.60568069e-29, 1.51446166e-29, 1.42839037e-29, 1.34717829e-29, 1.27055296e-29, 1.19825708e-29, 1.13004767e-29, 1.06569533e-29, 1.00498341e-29, 9.47707364e-30, 8.9367406e-30, 8.42701142e-30, 7.94616442e-30, 7.49257407e-30, 7.06470573e-30, 6.66111056e-30, 6.28042078e-30, 5.92134513e-30, 5.58266467e-30, 5.26322873e-30, 4.96195109e-30, 4.67780646e-30, 4.40982701e-30, 4.15709923e-30, 3.91876088e-30, 3.69399813e-30, 3.48204286e-30, 3.28217013e-30, 3.09369574e-30, 2.91597398e-30, 2.74839548e-30, 2.59038514e-30, 2.44140027e-30, 2.30092876e-30, 2.16848735e-30, 2.04362001e-30, 1.92589647e-30, 1.8149107e-30, 1.71027962e-30, 1.61164177e-30, 1.51865612e-30, 1.43100091e-30, 1.34837257e-30, 1.27048472e-30, 1.19706716e-30, 1.12786501e-30, 1.06263782e-30, 1.00115875e-30, 9.43213829e-31, 8.88601229e-31, 8.37130557e-31, 7.88622232e-31, 7.42906868e-31, 6.998247e-31, 6.59225041e-31, 6.20965771e-31, 5.8491285e-31, 5.50939868e-31, 5.18927605e-31, 4.88763633e-31, 4.60341927e-31, 4.33562502e-31, 4.08331076e-31, 3.84558743e-31, 3.62161668e-31, 3.41060803e-31, 3.21181614e-31, 3.02453823e-31, 2.8481117e-31, 2.68191182e-31, 2.52534959e-31, 2.37786972e-31, 2.23894871e-31, 2.10809301e-31, 1.98483737e-31, 1.86874321e-31, 1.75939706e-31, 1.65640921e-31, 1.55941226e-31, 1.46805996e-31, 1.38202589e-31, 1.30100241e-31, 1.22469955e-31, 1.15284404e-31, 1.08517828e-31, 1.02145953e-31, 9.61459014e-32, 9.04961125e-32, 8.51762684e-32, 8.01672219e-32, 7.54509297e-32, 7.10103896e-32, 6.68295803e-32, 6.28934053e-32, 5.918764e-32, 5.56988818e-32, 5.24145024e-32, 4.93226039e-32, 4.64119765e-32, 4.36720592e-32, 4.10929021e-32, 3.8665132e-32, 3.63799182e-32, 3.42289422e-32, 3.22043677e-32, 3.0298813e-32, 2.85053246e-32, 2.68173528e-32, 2.52287283e-32, 2.37336401e-32, 2.23266151e-32, 2.10024982e-32, 1.97564343e-32, 1.8583851e-32, 1.74804417e-32, 1.64421509e-32, 1.54651593e-32, 1.45458701e-32, 1.36808962e-32, 1.28670484e-32, 1.21013232e-32, 1.13808925e-32, 1.07030937e-32, 1.00654193e-32, 9.46550857e-33, 8.90113886e-33, 8.37021741e-33, 7.87077398e-33, 7.40095363e-33, 6.95901008e-33, 6.54329933e-33, 6.15227373e-33, 5.78447639e-33, 5.43853585e-33, 5.11316112e-33, 4.80713702e-33, 4.5193197e-33, 4.24863251e-33, 3.99406209e-33, 3.75465465e-33, 3.52951248e-33, 3.31779072e-33, 3.11869421e-33, 2.93147463e-33, 2.75542775e-33, 2.58989082e-33, 2.43424017e-33, 2.28788892e-33, 2.15028481e-33, 2.02090816e-33, 1.89927001e-33, 1.78491025e-33, 1.67739599e-33, 1.57631989e-33, 1.48129874e-33, 1.39197197e-33, 1.30800038e-33, 1.22906483e-33, 1.15486509e-33, 1.08511873e-33, 1.01956003e-33, 9.57939078e-34, 9.00020742e-34, 8.45583867e-34, 7.94420423e-34, 7.46334734e-34, 7.01142752e-34, 6.58671369e-34, 6.18757769e-34, 5.81248822e-34, 5.4600051e-34, 5.12877389e-34, 4.81752081e-34, 4.52504798e-34, 4.2502289e-34, 3.99200423e-34, 3.74937784e-34, 3.52141302e-34, 3.30722899e-34, 3.10599755e-34, 2.91693998e-34, 2.73932412e-34, 2.57246154e-34, 2.41570503e-34, 2.26844607e-34, 2.13011258e-34, 2.00016672e-34, 1.87810289e-34, 1.76344576e-34, 1.65574852e-34, 1.55459113e-34, 1.45957878e-34, 1.37034033e-34, 1.28652693e-34, 1.20781068e-34, 1.13388338e-34, 1.06445538e-34, 9.99254412e-35, 9.38024607e-35, 8.80525487e-35, 8.26531053e-35, 7.75828915e-35, 7.28219479e-35, 6.83515182e-35, 6.41539768e-35, 6.02127613e-35, 5.65123085e-35, 5.30379948e-35, 4.97760796e-35, 4.67136524e-35, 4.38385826e-35, 4.11394733e-35, 3.86056167e-35, 3.62269529e-35, 3.39940306e-35, 3.18979712e-35, 2.99304333e-35, 2.80835815e-35, 2.63500549e-35, 2.47229392e-35, 2.31957394e-35, 2.17623547e-35, 2.04170548e-35, 1.91544571e-35, 1.79695063e-35, 1.68574542e-35, 1.58138413e-35, 1.48344793e-35, 1.39154349e-35, 1.3053014e-35, 1.22437476e-35, 1.1484378e-35, 1.0771846e-35, 1.01032787e-35, 9.47597879e-36, 8.88741315e-36, 8.33520345e-36, 7.81711651e-36, 7.33105554e-36, 6.87505189e-36, 6.44725719e-36, 6.04593615e-36, 5.66945956e-36, 5.31629795e-36, 4.98501546e-36, 4.67426415e-36, 4.38277866e-36, 4.10937119e-36, 3.85292673e-36, 3.61239867e-36, 3.38680462e-36, 3.17522247e-36, 2.97678672e-36, 2.79068505e-36, 2.61615504e-36, 2.45248114e-36, 2.29899179e-36, 2.15505675e-36, 2.02008455e-36, 1.89352014e-36, 1.77484265e-36, 1.6635633e-36, 1.55922343e-36, 1.46139265e-36, 1.36966712e-36, 1.28366792e-36, 1.20303952e-36, 1.12744833e-36, 1.05658136e-36, 9.90144978e-37, 9.2786369e-37, 8.6947904e-37, 8.14748559e-37, 7.63444783e-37, 7.15354328e-37, 6.70277024e-37, 6.28025103e-37, 5.88422432e-37, 5.51303799e-37, 5.16514237e-37, 4.83908393e-37, 4.53349937e-37, 4.24711002e-37, 3.97871664e-37, 3.7271945e-37, 3.49148877e-37, 3.27061022e-37, 3.06363115e-37, 2.86968159e-37, 2.68794572e-37, 2.51765851e-37, 2.35810262e-37, 2.20860537e-37, 2.06853606e-37, 1.93730329e-37, 1.81435256e-37, 1.69916399e-37, 1.59125015e-37, 1.49015405e-37, 1.39544725e-37, 1.3067281e-37, 1.22362004e-37, 1.14577009e-37, 1.07284734e-37, 1.0045416e-37, 9.40562091e-38, 8.80636259e-38, 8.24508625e-38, 7.71939726e-38, 7.22705114e-38, 6.76594421e-38, 6.33410481e-38, 5.92968504e-38, 5.55095306e-38, 5.19628584e-38, 4.86416231e-38, 4.55315708e-38, 4.26193435e-38, 3.9892424e-38, 3.73390829e-38, 3.49483289e-38, 3.27098635e-38, 3.06140366e-38, 2.86518066e-38, 2.6814702e-38, 2.50947854e-38, 2.34846205e-38, 2.19772402e-38, 2.05661176e-38, 1.92451376e-38, 1.8008572e-38, 1.68510545e-38, 1.5767558e-38, 1.47533736e-38, 1.38040903e-38, 1.29155764e-38, 1.20839618e-38, 1.13056215e-38, 1.05771605e-38, 9.89539856e-39, 9.25735757e-39, 8.66024815e-39, 8.10145796e-39, 7.57854056e-39, 7.08920483e-39, 6.63130525e-39, 6.20283266e-39, 5.80190561e-39, 5.42676235e-39, 5.0757532e-39, 4.74733349e-39, 4.44005688e-39, 4.15256919e-39, 3.88360249e-39, 3.63196967e-39, 3.39655934e-39, 3.17633097e-39, 2.97031044e-39, 2.77758581e-39, 2.59730337e-39, 2.42866392e-39, 2.27091937e-39, 2.12336942e-39, 1.98535856e-39, 1.85627321e-39, 1.73553906e-39, 1.62261855e-39, 1.51700856e-39, 1.4182382e-39, 1.32586673e-39, 1.2394817e-39, 1.15869709e-39, 1.08315165e-39, 1.0125073e-39, 9.46447686e-40, 8.84676749e-40, 8.26917464e-40, 7.72910604e-40, 7.22413608e-40, 6.75199515e-40, 6.31055964e-40, 5.89784264e-40, 5.51198512e-40, 5.15124782e-40, 4.8140035e-40, 4.49872982e-40, 4.20400256e-40, 3.92848938e-40, 3.67094389e-40, 3.43020014e-40, 3.20516746e-40, 2.99482564e-40, 2.79822035e-40, 2.61445896e-40, 2.44270657e-40, 2.28218225e-40, 2.13215561e-40, 1.99194353e-40, 1.86090713e-40, 1.73844889e-40, 1.62401003e-40, 1.51706797e-40, 1.41713402e-40, 1.32375118e-40, 1.2364921e-40, 1.15495719e-40, 1.07877277e-40, 1.00758947e-40, 9.41080586e-41, 8.78940671e-41, 8.2088413e-41, 7.66643946e-41, 7.15970476e-41, 6.68630324e-41, 6.24405294e-41, 5.830914e-41, 5.44497948e-41, 5.08446675e-41, 4.7477094e-41, 4.4331497e-41, 4.13933159e-41, 3.86489404e-41, 3.60856488e-41, 3.36915504e-41, 3.14555315e-41, 2.93672048e-41, 2.74168621e-41, 2.55954304e-41, 2.38944302e-41, 2.23059371e-41, 2.08225455e-41, 1.9437335e-41, 1.81438386e-41, 1.6936013e-41, 1.58082115e-41, 1.47551575e-41, 1.37719207e-41, 1.28538945e-41, 1.19967746e-41, 1.11965397e-41, 1.04494324e-41, 9.75194248e-42, 9.10079044e-42, 8.49291251e-42, 7.92544652e-42, 7.39571867e-42, 6.90123123e-42, 6.43965096e-42, 6.00879837e-42, 5.60663763e-42, 5.23126713e-42, 4.88091068e-42, 4.55390931e-42, 4.24871351e-42, 3.96387611e-42, 3.69804549e-42, 3.44995937e-42, 3.21843888e-42, 3.00238309e-42, 2.80076388e-42, 2.61262118e-42, 2.43705844e-42, 2.27323848e-42, 2.12037955e-42, 1.97775171e-42, 1.8446734e-42, 1.72050823e-42, 1.60466204e-42, 1.49658007e-42, 1.39574439e-42, 1.30167144e-42, 1.2139098e-42, 1.13203802e-42, 1.05566266e-42, 9.84416456e-43, 9.17956546e-43, 8.55962888e-43, 7.98136739e-43, 7.44199242e-43, 6.93890112e-43, 6.46966404e-43, 6.03201363e-43, 5.62383348e-43, 5.24314837e-43, 4.88811479e-43, 4.55701228e-43, 4.24823524e-43, 3.96028526e-43, 3.69176406e-43, 3.44136676e-43, 3.20787574e-43, 2.99015478e-43, 2.78714367e-43, 2.59785315e-43, 2.42136017e-43, 2.2568035e-43, 2.10337958e-43, 1.96033871e-43, 1.82698143e-43, 1.70265518e-43, 1.58675119e-43, 1.47870151e-43, 1.37797632e-43, 1.28408138e-43, 1.19655563e-43, 1.11496902e-43, 1.03892036e-43, 9.68035477e-44, 9.0196533e-44, 8.40384377e-44, 7.82988983e-44, 7.29495955e-44, 6.79641173e-44, 6.33178309e-44, 5.89877638e-44, 5.4952492e-44, 5.11920365e-44, 4.7687766e-44, 4.44223065e-44, 4.1379457e-44, 3.85441103e-44, 3.590218e-44, 3.34405314e-44, 3.11469178e-44, 2.90099205e-44, 2.70188933e-44, 2.51639104e-44, 2.34357178e-44, 2.18256882e-44, 2.03257786e-44, 1.89284908e-44, 1.76268352e-44, 1.64142958e-44, 1.52847986e-44, 1.4232682e-44, 1.32526682e-44, 1.23398381e-44, 1.14896065e-44, 1.06976997e-44, 9.96013466e-45, 9.27319885e-45, 8.63343237e-45, 8.03761069e-45, 7.48272869e-45, 6.96598584e-45, 6.48477232e-45, 6.03665609e-45, 5.61937084e-45, 5.23080475e-45, 4.86898999e-45, 4.53209297e-45, 4.21840523e-45, 3.92633489e-45, 3.6543988e-45, 3.40121508e-45, 3.1654963e-45, 2.94604299e-45, 2.74173773e-45, 2.55153948e-45, 2.37447846e-45, 2.20965125e-45, 2.05621627e-45, 1.91338958e-45, 1.78044095e-45, 1.6566902e-45, 1.54150376e-45, 1.43429152e-45, 1.33450385e-45, 1.24162883e-45, 1.15518969e-45, 1.07474238e-45, 9.99873377e-46, 9.30197552e-46, 8.65356254e-46, 8.05015494e-46, 7.48864252e-46, 6.96612907e-46, 6.47991773e-46, 6.02749731e-46, 5.60652956e-46, 5.21483732e-46, 4.85039348e-46, 4.51131067e-46, 4.19583168e-46, 3.90232052e-46, 3.62925409e-46, 3.37521444e-46, 3.13888153e-46, 2.91902649e-46, 2.71450538e-46, 2.52425331e-46, 2.34727904e-46, 2.18265987e-46, 2.02953697e-46, 1.88711092e-46, 1.75463766e-46, 1.63142466e-46, 1.51682738e-46, 1.41024592e-46, 1.311122e-46, 1.21893603e-46, 1.13320448e-46, 1.05347737e-46, 9.79335947e-47, 9.10390548e-47, 8.46278569e-47, 7.86662602e-47, 7.31228692e-47, 6.79684714e-47, 6.31758858e-47, 5.87198227e-47, 5.45767525e-47, 5.07247836e-47, 4.71435492e-47, 4.38141011e-47, 4.07188117e-47, 3.78412823e-47, 3.51662575e-47, 3.26795463e-47, 3.03679478e-47, 2.82191825e-47, 2.62218284e-47, 2.43652613e-47, 2.26395992e-47, 2.10356509e-47, 1.95448677e-47, 1.81592988e-47, 1.68715496e-47, 1.5674743e-47, 1.45624835e-47, 1.35288232e-47, 1.25682311e-47, 1.16755635e-47, 1.08460376e-47, 1.00752056e-47, 9.35893197e-48, 8.69337116e-48, 8.07494762e-48, 7.50033678e-48, 6.96644761e-48, 6.4704062e-48, 6.00954062e-48, 5.5813668e-48, 5.18357532e-48, 4.81401925e-48, 4.4707027e-48, 4.15177031e-48, 3.85549733e-48, 3.58028051e-48, 3.32462956e-48, 3.08715923e-48, 2.86658192e-48, 2.66170086e-48, 2.47140369e-48, 2.29465658e-48, 2.13049866e-48, 1.97803692e-48, 1.83644142e-48, 1.70494089e-48, 1.58281856e-48, 1.46940835e-48, 1.36409127e-48, 1.26629216e-48, 1.17547654e-48, 1.09114778e-48, 1.01284443e-48, 9.4013771e-49, 8.72629243e-49, 8.09948886e-49, 7.51752745e-49, 6.9772132e-49, 6.47557779e-49, 6.00986361e-49, 5.57750886e-49, 5.17613365e-49, 4.8035272e-49, 4.45763586e-49, 4.13655195e-49, 3.83850348e-49, 3.56184449e-49, 3.30504617e-49, 3.06668852e-49, 2.84545267e-49, 2.64011366e-49, 2.44953385e-49, 2.27265664e-49, 2.10850078e-49, 1.95615502e-49, 1.8147731e-49, 1.68356914e-49, 1.56181339e-49, 1.44882819e-49, 1.3439843e-49, 1.24669743e-49, 1.15642506e-49, 1.07266345e-49, 9.94944914e-50, 9.22835195e-50, 8.55931133e-50, 7.93858426e-50, 7.36269577e-50, 6.82841981e-50, 6.33276151e-50, 5.87294068e-50, 5.44637645e-50, 5.05067309e-50, 4.68360676e-50, 4.34311322e-50, 4.02727642e-50, 3.73431792e-50, 3.46258704e-50, 3.21055173e-50, 2.97679006e-50, 2.75998233e-50, 2.5589038e-50, 2.37241783e-50, 2.19946958e-50, 2.03908017e-50, 1.89034123e-50, 1.7524098e-50, 1.62450368e-50, 1.50589708e-50, 1.3959165e-50, 1.29393707e-50, 1.19937897e-50, 1.11170426e-50, 1.0304138e-50, 9.55044547e-51, 8.85166874e-51, 8.20382218e-51, 7.60320825e-51, 7.0463968e-51, 6.53020579e-51, 6.05168343e-51, 5.60809159e-51, 5.19689038e-51, 4.81572387e-51, 4.46240681e-51, 4.13491232e-51, 3.83136046e-51, 3.5500076e-51, 3.28923661e-51, 3.04754769e-51, 2.8235499e-51, 2.6159533e-51, 2.42356163e-51, 2.24526555e-51, 2.08003633e-51, 1.92692003e-51, 1.78503207e-51, 1.65355223e-51, 1.53171997e-51, 1.41883011e-51, 1.3142288e-51, 1.21730982e-51, 1.12751112e-51, 1.0443116e-51, 9.67228173e-52, 8.95812947e-52, 8.2965072e-52, 7.68356584e-52, 7.11573724e-52, 6.58971377e-52, 6.10242938e-52, 5.65104202e-52, 5.23291733e-52, 4.84561354e-52, 4.48686743e-52, 4.15458132e-52, 3.84681104e-52, 3.56175471e-52, 3.29774236e-52, 3.05322635e-52, 2.82677241e-52, 2.61705139e-52, 2.42283154e-52, 2.24297148e-52, 2.07641351e-52, 1.92217757e-52, 1.77935551e-52, 1.64710586e-52, 1.52464896e-52, 1.41126241e-52, 1.30627691e-52, 1.20907235e-52, 1.11907423e-52, 1.03575028e-52, 9.58607428e-53, 8.87188867e-53, 8.2107143e-53, 7.59863112e-53, 7.03200784e-53, 6.50748079e-53, 6.02193421e-53, 5.57248211e-53, 5.15645132e-53, 4.77136593e-53, 4.41493275e-53, 4.08502787e-53, 3.77968423e-53, 3.49708008e-53, 3.23552828e-53, 2.9934664e-53, 2.76944751e-53, 2.56213172e-53, 2.37027825e-53, 2.19273816e-53, 2.02844754e-53, 1.87642129e-53, 1.73574725e-53, 1.60558087e-53, 1.48514019e-53, 1.3737012e-53, 1.27059362e-53, 1.17519687e-53, 1.08693643e-53, 1.00528043e-53, 9.29736496e-54, 8.59848806e-54, 7.9519542e-54, 7.35385754e-54, 6.80058258e-54, 6.28878272e-54, 5.81536027e-54, 5.37744807e-54, 4.97239235e-54, 4.59773693e-54, 4.25120857e-54, 3.93070337e-54, 3.63427422e-54, 3.36011918e-54, 3.10657064e-54, 2.8720854e-54, 2.65523541e-54, 2.45469918e-54, 2.26925389e-54, 2.09776804e-54, 1.93919465e-54, 1.79256499e-54, 1.65698273e-54, 1.53161855e-54, 1.41570517e-54, 1.30853271e-54, 1.20944441e-54, 1.11783269e-54, 1.03313546e-54, 9.54832718e-55, 8.82443447e-55, 8.15522669e-55, 7.53658771e-55, 6.96471009e-55, 6.436072e-55, 5.9474159e-55, 5.49572877e-55, 5.0782238e-55, 4.69232353e-55, 4.3356441e-55, 4.00598083e-55, 3.70129478e-55, 3.4197003e-55, 3.15945362e-55, 2.91894215e-55, 2.69667468e-55, 2.49127226e-55, 2.30145979e-55, 2.12605824e-55, 1.96397741e-55, 1.81420928e-55, 1.67582184e-55, 1.54795337e-55, 1.42980715e-55, 1.32064662e-55, 1.21979079e-55, 1.1266101e-55, 1.04052255e-55, 9.60990105e-56, 8.87515411e-56, 8.196387e-56, 7.56934979e-56, 6.99011401e-56, 6.4550485e-56, 5.96079692e-56, 5.50425706e-56, 5.08256166e-56, 4.69306068e-56, 4.33330492e-56, 4.00103081e-56, 3.69414644e-56, 3.41071857e-56, 3.14896062e-56, 2.90722162e-56, 2.68397592e-56, 2.47781374e-56, 2.28743239e-56, 2.11162814e-56, 1.94928877e-56, 1.79938663e-56, 1.66097219e-56, 1.53316819e-56, 1.41516411e-56, 1.30621113e-56, 1.20561743e-56, 1.1127439e-56, 1.02700012e-56, 9.47840649e-57, 8.74761647e-57, 8.07297679e-57, 7.45018815e-57, 6.87527927e-57, 6.34458198e-57, 5.85470814e-57, 5.40252833e-57, 4.9851522e-57, 4.59991025e-57, 4.24433701e-57, 3.91615551e-57, 3.61326293e-57, 3.3337173e-57, 3.07572525e-57, 2.8376307e-57, 2.61790436e-57, 2.41513408e-57, 2.22801588e-57, 2.05534573e-57, 1.89601189e-57, 1.74898785e-57, 1.61332586e-57, 1.48815088e-57, 1.37265503e-57, 1.26609242e-57, 1.16777448e-57, 1.07706551e-57, 9.93378657e-58, 9.16172174e-58, 8.44945966e-58, 7.79238396e-58, 7.18623339e-58, 6.62707459e-58, 6.11127697e-58, 5.63548947e-58, 5.1966191e-58, 4.79181116e-58, 4.41843094e-58, 4.07404682e-58, 3.75641467e-58, 3.46346343e-58, 3.19328185e-58, 2.94410616e-58, 2.71430875e-58, 2.50238769e-58, 2.30695706e-58, 2.12673802e-58, 1.96055055e-58, 1.80730589e-58, 1.66599943e-58, 1.53570431e-58, 1.41556535e-58, 1.30479358e-58, 1.20266111e-58, 1.10849641e-58, 1.02167998e-58, 9.41640309e-59, 8.678502e-59, 7.99823319e-59, 7.37111054e-59, 6.79299592e-59, 6.26007233e-59, 5.76881905e-59, 5.31598871e-59, 4.89858615e-59, 4.51384892e-59, 4.15922923e-59, 3.83237731e-59, 3.53112615e-59, 3.25347725e-59, 2.99758759e-59, 2.7617576e-59, 2.54442001e-59, 2.34412958e-59, 2.15955364e-59, 1.98946336e-59, 1.83272566e-59, 1.68829582e-59, 1.55521057e-59, 1.43258177e-59, 1.31959059e-59, 1.2154821e-59, 1.11956031e-59, 1.03118357e-59, 9.49760378e-60, 8.74745422e-60, 8.05636023e-60, 7.41968801e-60, 6.83316613e-60, 6.29285729e-60, 5.7951323e-60, 5.33664601e-60, 4.91431516e-60, 4.52529799e-60, 4.16697532e-60, 3.83693324e-60, 3.53294703e-60, 3.2529664e-60, 2.99510186e-60, 2.75761216e-60, 2.53889268e-60, 2.33746474e-60, 2.15196579e-60, 1.98114027e-60, 1.82383127e-60, 1.67897279e-60, 1.54558263e-60, 1.4227558e-60, 1.30965852e-60, 1.20552258e-60, 1.10964023e-60, 1.02135944e-60, 9.40079511e-61, 8.65247072e-61, 7.96352335e-61, 7.32925693e-61, 6.74534557e-61, 6.20780449e-61, 5.7129632e-61, 5.25744079e-61, 4.83812321e-61, 4.4521422e-61, 4.09685599e-61, 3.7698315e-61, 3.46882786e-61, 3.19178131e-61, 2.93679124e-61, 2.70210731e-61, 2.48611766e-61, 2.28733795e-61, 2.10440129e-61, 1.93604904e-61, 1.7811222e-61, 1.63855359e-61, 1.50736057e-61, 1.3866384e-61, 1.27555404e-61, 1.17334053e-61, 1.07929174e-61, 9.92757555e-62, 9.13139477e-62, 8.39886511e-62, 7.72491418e-62, 7.10487252e-62, 6.53444167e-62, 6.00966483e-62, 5.52689974e-62, 5.08279379e-62, 4.67426107e-62, 4.29846118e-62, 3.95277981e-62, 3.63481076e-62, 3.34233947e-62, 3.07332777e-62, 2.82589989e-62, 2.59832956e-62, 2.38902814e-62, 2.19653368e-62, 2.01950084e-62, 1.85669163e-62, 1.70696686e-62, 1.5692783e-62, 1.44266143e-62, 1.32622876e-62, 1.21916372e-62, 1.12071502e-62, 1.0301914e-62, 9.46956918e-63, 8.70426473e-63, 8.00061792e-63, 7.35367684e-63, 6.75888599e-63, 6.2120547e-63, 5.70932796e-63, 5.24715969e-63, 4.82228797e-63, 4.43171244e-63, 4.07267329e-63, 3.74263215e-63, 3.43925427e-63, 3.16039231e-63, 2.90407132e-63, 2.66847494e-63, 2.45193273e-63, 2.25290845e-63, 2.06998933e-63, 1.90187618e-63, 1.74737429e-63, 1.60538506e-63, 1.47489825e-63, 1.35498496e-63, 1.24479106e-63, 1.14353119e-63, 1.05048327e-63, 9.64983387e-64, 8.86421137e-64, 8.14235327e-64, 7.47910015e-64, 6.86970878e-64, 6.30981863e-64, 5.79542107e-64, 5.3228311e-64, 4.88866127e-64, 4.48979775e-64, 4.1233783e-64, 3.78677197e-64, 3.47756052e-64, 3.19352126e-64, 2.93261125e-64, 2.69295287e-64, 2.47282042e-64, 2.27062793e-64, 2.08491784e-64, 1.91435062e-64, 1.75769531e-64, 1.61382067e-64, 1.48168719e-64, 1.36033963e-64, 1.24890022e-64, 1.14656243e-64, 1.05258516e-64, 9.66287475e-65, 8.87043724e-65, 8.14279078e-65, 7.47465404e-65, 6.86117485e-65, 6.29789548e-65, 5.78072064e-65, 5.30588809e-65, 4.86994169e-65, 4.46970651e-65, 4.10226608e-65, 3.76494134e-65, 3.45527147e-65, 3.17099609e-65, 2.91003899e-65, 2.67049324e-65, 2.45060733e-65, 2.24877262e-65, 2.06351168e-65, 1.89346766e-65, 1.73739442e-65, 1.59414758e-65, 1.46267621e-65, 1.34201522e-65, 1.23127839e-65, 1.12965192e-65, 1.03638855e-65, 9.50802108e-66, 8.72262573e-66, 8.00191459e-66, 7.3405763e-66, 6.73373427e-66, 6.17691127e-66, 5.66599677e-66, 5.19721705e-66, 4.76710763e-66, 4.37248807e-66, 4.01043867e-66, 3.67827926e-66, 3.37354951e-66, 3.09399103e-66, 2.8375308e-66, 2.60226601e-66, 2.38645015e-66, 2.18848017e-66, 2.00688477e-66, 1.84031357e-66, 1.68752725e-66, 1.54738838e-66, 1.41885312e-66, 1.30096352e-66, 1.19284049e-66, 1.09367729e-66, 1.00273366e-66, 9.19330271e-67, 8.42843808e-67, 7.72702314e-67, 7.08380989e-67, 6.4939831e-67, 5.95312473e-67, 5.45718131e-67, 5.00243386e-67, 4.58547046e-67, 4.20316092e-67, 3.85263359e-67, 3.53125409e-67, 3.23660575e-67, 2.96647168e-67, 2.71881831e-67, 2.49178023e-67, 2.2836464e-67, 2.09284735e-67, 1.91794355e-67, 1.75761463e-67, 1.61064961e-67, 1.4759378e-67, 1.35246057e-67, 1.23928371e-67, 1.13555048e-67, 1.04047516e-67, 9.53337253e-68, 8.73476012e-68, 8.00285548e-68, 7.33210268e-68, 6.71740719e-68, 6.15409765e-68, 5.63789087e-68, 5.16485959e-68, 4.73140305e-68, 4.33421993e-68, 3.97028348e-68, 3.63681879e-68, 3.33128185e-68, 3.05134047e-68, 2.79485661e-68, 2.55987033e-68, 2.34458496e-68, 2.14735356e-68, 1.96666645e-68, 1.80113986e-68, 1.64950538e-68, 1.51060044e-68, 1.38335949e-68, 1.26680588e-68, 1.16004453e-68, 1.0622551e-68, 9.72685768e-69, 8.90647536e-69, 8.1550899e-69, 7.46691502e-69, 6.83664827e-69, 6.25943074e-69, 5.73081003e-69, 5.24670637e-69, 4.80338149e-69, 4.39741014e-69, 4.02565396e-69, 3.68523749e-69, 3.37352624e-69, 3.08810657e-69, 2.82676717e-69, 2.5874822e-69, 2.36839576e-69, 2.1678077e-69, 1.98416053e-69, 1.81602754e-69, 1.66210184e-69, 1.52118629e-69, 1.39218435e-69, 1.27409164e-69, 1.1659882e-69, 1.06703145e-69, 9.76449662e-70, 8.93536034e-70, 8.17643251e-70, 7.48178484e-70, 6.84598821e-70, 6.26407072e-70, 5.73147933e-70, 5.24404468e-70, 4.79794879e-70, 4.38969562e-70, 4.01608393e-70, 3.67418252e-70, 3.36130752e-70, 3.07500156e-70, 2.81301474e-70, 2.57328713e-70, 2.35393281e-70, 2.15322518e-70, 1.96958357e-70, 1.8015609e-70, 1.64783247e-70, 1.50718561e-70, 1.37851024e-70, 1.2607902e-70, 1.15309537e-70, 1.05457436e-70, 9.64447871e-71, 8.82002638e-71, 8.0658582e-71, 7.37599911e-71, 6.74498057e-71, 6.16779774e-71, 5.63987032e-71, 5.15700659e-71, 4.71537057e-71, 4.3114519e-71, 3.94203827e-71, 3.60419019e-71, 3.2952179e-71, 3.0126602e-71, 2.75426509e-71, 2.517972e-71, 2.30189565e-71, 2.10431107e-71, 1.9236401e-71, 1.75843889e-71, 1.60738648e-71, 1.46927441e-71, 1.34299716e-71, 1.22754338e-71, 1.1219879e-71, 1.02548444e-71, 9.37258855e-72, 8.56603023e-72, 7.82869236e-72, 7.15465053e-72, 6.538486e-72, 5.97524264e-72, 5.46038754e-72, 4.989775e-72, 4.55961353e-72, 4.16643564e-72, 3.8070703e-72, 3.4786176e-72, 3.17842566e-72, 2.90406946e-72, 2.65333152e-72, 2.42418415e-72, 2.21477327e-72, 2.02340358e-72, 1.848525e-72, 1.68872027e-72, 1.54269361e-72, 1.4092603e-72, 1.28733724e-72, 1.17593419e-72, 1.07414592e-72, 9.81144826e-73, 8.9617439e-73, 8.1854303e-73, 7.47618562e-73, 6.82823109e-73, 6.23628452e-73, 5.69551769e-73, 5.20151751e-73, 4.75025035e-73, 4.33802957e-73, 3.96148569e-73, 3.61753923e-73, 3.3033758e-73, 3.01642333e-73, 2.75433128e-73, 2.5149516e-73, 2.29632136e-73, 2.09664678e-73, 1.91428878e-73, 1.7477496e-73, 1.59566068e-73, 1.45677155e-73, 1.32993965e-73, 1.21412106e-73, 1.10836199e-73, 1.01179104e-73, 9.23612098e-74, 8.43097828e-74, 7.69583775e-74, 7.02462929e-74, 6.41180776e-74, 5.85230768e-74, 5.34150185e-74, 4.87516357e-74, 4.449432e-74, 4.06078067e-74, 3.70598849e-74, 3.38211347e-74, 3.08646857e-74, 2.81659963e-74, 2.57026529e-74, 2.34541858e-74, 2.14019008e-74, 1.95287258e-74, 1.78190703e-74, 1.62586976e-74, 1.48346068e-74, 1.35349265e-74, 1.23488165e-74, 1.12663788e-74, 1.02785757e-74, 9.37715512e-75, 8.55458289e-75, 7.80398009e-75, 7.11906638e-75, 6.494108e-75, 5.92387039e-75, 5.40357475e-75, 4.92885855e-75, 4.49573933e-75, 4.10058165e-75, 3.740067e-75, 3.41116617e-75, 3.11111414e-75, 2.8373871e-75, 2.58768144e-75, 2.3598946e-75, 2.15210759e-75, 1.96256896e-75, 1.78968027e-75, 1.63198269e-75, 1.48814491e-75, 1.35695196e-75, 1.23729512e-75, 1.12816261e-75, 1.02863117e-75, 9.37858312e-76, 8.55075299e-76, 7.79580677e-76, 7.10734418e-76, 6.47952551e-76, 5.90702265e-76, 5.38497442e-76, 4.90894571e-76, 4.47489026e-76, 4.07911666e-76, 3.71825729e-76, 3.38924002e-76, 3.08926234e-76, 2.81576775e-76, 2.56642423e-76, 2.33910458e-76, 2.13186847e-76, 1.94294609e-76, 1.77072317e-76, 1.61372738e-76, 1.47061584e-76, 1.34016382e-76, 1.22125432e-76, 1.11286866e-76, 1.01407784e-76, 9.24034622e-77, 8.41966424e-77, 7.67168705e-77, 6.98999009e-77, 6.36871505e-77, 5.80252008e-77, 5.2865344e-77, 4.81631684e-77, 4.38781807e-77, 3.99734609e-77, 3.64153482e-77, 3.31731535e-77, 3.02188983e-77, 2.75270754e-77, 2.50744313e-77, 2.28397681e-77, 2.08037614e-77, 1.89487957e-77, 1.72588137e-77, 1.57191784e-77, 1.43165483e-77, 1.30387626e-77, 1.18747373e-77, 1.08143699e-77, 9.84845275e-78, 8.96859407e-78, 8.16714575e-78, 7.43713768e-78, 6.77221774e-78, 6.1665972e-78, 5.61500085e-78, 5.11262156e-78, 4.65507889e-78, 4.23838126e-78, 3.85889154e-78, 3.51329566e-78, 3.19857401e-78, 2.91197529e-78, 2.65099278e-78, 2.4133426e-78, 2.19694402e-78, 1.99990138e-78, 1.82048768e-78, 1.65712964e-78, 1.50839403e-78, 1.37297522e-78, 1.24968389e-78, 1.13743666e-78, 1.03524668e-78, 9.42215081e-79, 8.57523106e-79, 7.80425027e-79, 7.10241625e-79, 6.46354285e-79, 5.88199593e-79, 5.3526443e-79, 4.8708149e-79, 4.432252e-79, 4.03308003e-79, 3.66976971e-79, 3.3391072e-79, 3.03816592e-79, 2.76428102e-79, 2.51502596e-79, 2.2881913e-79, 2.0817653e-79, 1.89391628e-79, 1.72297655e-79, 1.56742775e-79, 1.42588755e-79, 1.29709742e-79, 1.17991166e-79, 1.07328725e-79, 9.76274669e-80, 8.88009579e-80, 8.07705159e-80, 7.34645193e-80, 6.68177738e-80, 6.07709381e-80, 5.52699989e-80, 5.02657942e-80, 4.57135785e-80, 4.15726268e-80, 3.78058748e-80, 3.43795901e-80, 3.12630737e-80, 2.84283878e-80, 2.58501082e-80, 2.35050986e-80, 2.13723052e-80, 1.94325697e-80, 1.76684592e-80, 1.60641111e-80, 1.46050921e-80, 1.32782694e-80, 1.20716943e-80, 1.09744954e-80, 9.97678173e-81, 9.06955456e-81, 8.24462719e-81, 7.49455178e-81, 6.81255284e-81, 6.19246672e-81, 5.62868644e-81, 5.11611159e-81, 0.41999637, 0.83999225, 1.25998712, 1.67998051, 2.09997191, 2.51996082, 2.93994675, 3.35992919, 3.77990766, 4.19988165, 4.61985067, 5.03981422, 5.4597718, 5.87972291, 6.29966706, 6.71960375, 7.13953249, 7.55945277, 7.9793641, 8.39926598, 8.81915791, 9.2390394, 9.65890996, 10.07876907, 10.49861625, 10.918451, 11.33827282, 11.75808122, 12.17787569, 12.59765575, 13.01742088, 13.43717061, 13.85690442, 14.27662183, 14.69632234, 15.11600544, 15.53567065, 15.95531746, 16.37494539, 16.79455392, 17.21414258, 17.63371085, 18.05325825, 18.47278427, 18.89228842, 19.31177021, 19.73122913, 20.1506647, 20.57007641, 20.98946377, 21.40882629, 21.82816346, 22.24747479, 22.66675978, 23.08601795, 23.50524879, 23.9244518, 24.3436265, 24.76277238, 25.18188895, 25.60097571, 26.02003218, 26.43905784, 26.85805222, 27.27701481, 27.69594511, 28.11484263, 28.53370689, 28.95253737, 29.37133359, 29.79009505, 30.20882126, 30.62751172, 31.04616594, 31.46478342, 31.88336366, 32.30190618, 32.72041048, 33.13887606, 33.55730244, 33.9756891, 34.39403557, 34.81234135, 35.23060594, 35.64882885, 36.06700958, 36.48514765, 36.90324255, 37.3212938, 37.7393009, 38.15726335, 38.57518067, 38.99305237, 39.41087794, 39.82865689, 40.24638874, 40.66407298, 41.08170913, 41.49929669, 41.91683518, 42.33432409, 42.75176294, 43.16915123, 43.58648847, 44.00377418, 44.42100784, 44.83818899, 45.25531712, 45.67239174, 46.08941236, 46.50637849, 46.92328963, 47.3401453, 47.75694501, 48.17368826, 48.59037456, 49.00700343, 49.42357437, 49.84008688, 50.25654049, 50.6729347, 51.08926902, 51.50554295, 51.92175602, 52.33790773, 52.75399758, 53.1700251, 53.58598978, 54.00189115, 54.41772871, 54.83350198, 55.24921045, 55.66485365, 56.08043109, 56.49594228, 56.91138672, 57.32676394, 57.74207343, 58.15731472, 58.57248732, 58.98759074, 59.40262449, 59.81758808, 60.23248102, 60.64730284, 61.06205303, 61.47673112, 61.89133662, 62.30586904, 62.72032789, 63.13471269, 63.54902295, 63.96325818, 64.37741791, 64.79150164, 65.20550888, 65.61943916, 66.03329199, 66.44706687, 66.86076334, 67.27438089, 67.68791905, 68.10137734, 68.51475526, 68.92805233, 69.34126807, 69.754402, 70.16745363, 70.58042248, 70.99330806, 71.40610989, 71.81882749, 72.23146037, 72.64400806, 73.05647006, 73.4688459, 73.8811351, 74.29333716, 74.70545162, 75.11747799, 75.52941578, 75.94126451, 76.35302371, 76.7646929, 77.17627158, 77.58775929, 77.99915553, 78.41045984, 78.82167172, 79.23279071, 79.64381631, 80.05474806, 80.46558546, 80.87632805, 81.28697534, 81.69752685, 82.1079821, 82.51834062, 82.92860193, 83.33876555, 83.748831, 84.1587978, 84.56866548, 84.97843356, 85.38810155, 85.79766899, 86.2071354, 86.6165003, 87.02576322, 87.43492367, 87.84398118, 88.25293528, 88.66178549, 89.07053134, 89.47917235, 89.88770804, 90.29613794, 90.70446157, 91.11267847, 91.52078815, 91.92879015, 92.33668399, 92.74446919, 93.15214528, 93.5597118, 93.96716826, 94.37451419, 94.78174913, 95.18887259, 95.59588411, 96.00278322, 96.40956943, 96.8162423, 97.22280133, 97.62924606, 98.03557602, 98.44179074, 98.84788975, 99.25387258, 99.65973875, 100.06548781, 100.47111928, 100.87663268, 101.28202756, 101.68730344, 102.09245986, 102.49749634, 102.90241242, 103.30720763, 103.71188151, 104.11643358, 104.52086338, 104.92517045, 105.32935431, 105.7334145, 106.13735055, 106.541162, 106.94484839, 107.34840924, 107.75184409, 108.15515248, 108.55833394, 108.96138802, 109.36431423, 109.76711213, 110.16978124, 110.57232111, 110.97473126, 111.37701125, 111.7791606, 112.18117885, 112.58306554, 112.98482022, 113.38644241, 113.78793165, 114.18928749, 114.59050947, 114.99159712, 115.39254998, 115.7933676, 116.19404951, 116.59459526, 116.99500438, 117.39527642, 117.79541091, 118.19540741, 118.59526545, 118.99498457, 119.39456432, 119.79400423, 120.19330386, 120.59246275, 120.99148043, 121.39035645, 121.78909037, 122.18768171, 122.58613003, 122.98443487, 123.38259577, 123.78061229, 124.17848396, 124.57621034, 124.97379096, 125.37122538, 125.76851315, 126.1656538, 126.5626469, 126.95949197, 127.35618859, 127.75273628, 128.1491346, 128.54538311, 128.94148134, 129.33742885, 129.73322519, 130.1288699, 130.52436255, 130.91970267, 131.31488982, 131.70992356, 132.10480343, 132.49952898, 132.89409977, 133.28851535, 133.68277527, 134.07687909, 134.47082636, 134.86461662, 135.25824945, 135.65172439, 136.04504099, 136.43819881, 136.83119741, 137.22403634, 137.61671515, 138.00923341, 138.40159067, 138.79378648, 139.18582041, 139.57769201, 139.96940084, 140.36094646, 140.75232842, 141.14354628, 141.53459961, 141.92548796, 142.31621089, 142.70676796, 143.09715874, 143.48738277, 143.87743963, 144.26732888, 144.65705007, 145.04660277, 145.43598655, 145.82520095, 146.21424555, 146.60311991, 146.99182359, 147.38035616, 147.76871718, 148.15690622, 148.54492284, 148.9327666, 149.32043707, 149.70793382, 150.09525642, 150.48240442, 150.8693774, 151.25617493, 151.64279656, 152.02924188, 152.41551044, 152.80160182, 153.18751559, 153.57325131, 153.95880855, 154.34418689, 154.72938589, 155.11440513, 155.49924418, 155.8839026, 156.26837997, 156.65267586, 157.03678985, 157.42072151, 157.8044704, 158.18803611, 158.5714182, 158.95461626, 159.33762985, 159.72045855, 160.10310194, 160.48555959, 160.86783108, 161.24991598, 161.63181388, 162.01352434, 162.39504694, 162.77638127, 163.1575269, 163.53848341, 163.91925038, 164.29982739, 164.68021401, 165.06040983, 165.44041443, 165.82022739, 166.19984829, 166.5792767, 166.95851223, 167.33755443, 167.71640291, 168.09505723, 168.47351699, 168.85178177, 169.22985114, 169.60772471, 169.98540204, 170.36288274, 170.74016637, 171.11725253, 171.49414081, 171.87083078, 172.24732205, 172.62361419, 172.99970679, 173.37559945, 173.75129174, 174.12678327, 174.50207361, 174.87716236, 175.25204911, 175.62673345, 176.00121497, 176.37549326, 176.74956792, 177.12343853, 177.49710469, 177.87056599, 178.24382203, 178.61687239, 178.98971668, 179.36235448, 179.73478539, 180.10700901, 180.47902494, 180.85083276, 181.22243208, 181.59382249, 181.96500359, 182.33597497, 182.70673624, 183.077287, 183.44762684, 183.81775536, 184.18767216, 184.55737685, 184.92686902, 185.29614827, 185.6652142, 186.03406642, 186.40270454, 186.77112814, 187.13933683, 187.50733023, 187.87510793, 188.24266953, 188.61001464, 188.97714287, 189.34405382, 189.7107471, 190.0772223, 190.44347905, 190.80951695, 191.1753356, 191.54093462, 191.9063136, 192.27147217, 192.63640992, 193.00112648, 193.36562144, 193.72989442, 194.09394504, 194.45777289, 194.8213776, 195.18475877, 195.54791603, 195.91084897, 196.27355722, 196.63604039, 196.99829809, 197.36032994, 197.72213556, 198.08371455, 198.44506654, 198.80619114, 199.16708797, 199.52775664, 199.88819678, 200.248408, 200.60838992, 200.96814217, 201.32766435, 201.68695609, 202.04601701, 202.40484674, 202.76344488, 203.12181107, 203.47994493, 203.83784607, 204.19551413, 204.55294872, 204.91014948, 205.26711601, 205.62384796, 205.98034494, 206.33660658, 206.69263251, 207.04842235, 207.40397573, 207.75929228, 208.11437162, 208.46921339, 208.82381721, 209.17818272, 209.53230954, 209.8861973, 210.23984563, 210.59325417, 210.94642254, 211.29935039, 211.65203733, 212.00448301, 212.35668706, 212.70864911, 213.06036879, 213.41184574, 213.76307961, 214.11407001, 214.46481659, 214.81531899, 215.16557683, 215.51558977, 215.86535744, 216.21487947, 216.56415551, 216.91318519, 217.26196816, 217.61050405, 217.95879251, 218.30683317, 218.65462569, 219.0021697, 219.34946484, 219.69651076, 220.0433071, 220.38985351, 220.73614962, 221.0821951, 221.42798957, 221.77353269, 222.11882411, 222.46386346, 222.8086504, 223.15318458, 223.49746565, 223.84149325, 224.18526703, 224.52878664, 224.87205174, 225.21506198, 225.55781699, 225.90031645, 226.24255999, 226.58454728, 226.92627797, 227.2677517, 227.60896814, 227.94992693, 228.29062774, 228.63107022, 228.97125403, 229.31117881, 229.65084424, 229.99024996, 230.32939564, 230.66828094, 231.0069055, 231.345269, 231.68337109, 232.02121144, 232.3587897, 232.69610553, 233.03315861, 233.36994858, 233.70647512, 234.04273788, 234.37873654, 234.71447076, 235.04994019, 235.38514451, 235.72008338, 236.05475647, 236.38916345, 236.72330399, 237.05717774, 237.39078438, 237.72412359, 238.05719502, 238.38999835, 238.72253325, 239.05479939, 239.38679644, 239.71852408, 240.04998198, 240.3811698, 240.71208723, 241.04273393, 241.37310959, 241.70321387, 242.03304646, 242.36260702, 242.69189524, 243.02091079, 243.34965336, 243.67812261, 244.00631823, 244.33423989, 244.66188728, 244.98926008, 245.31635796, 245.64318061, 245.96972771, 246.29599895, 246.62199399, 246.94771254, 247.27315427, 247.59831886, 247.92320601, 248.24781539, 248.57214669, 248.8961996, 249.21997381, 249.543469, 249.86668486, 250.18962108, 250.51227735, 250.83465336, 251.15674879, 251.47856334, 251.80009671, 252.12134857, 252.44231863, 252.76300657, 253.08341209, 253.40353488, 253.72337465, 254.04293107, 254.36220385, 254.68119268, 254.99989726, 255.31831729, 255.63645246, 255.95430247, 256.27186702, 256.58914581, 256.90613854, 257.22284491, 257.53926462, 257.85539736, 258.17124285, 258.48680078, 258.80207086, 259.11705278, 259.43174626, 259.746151, 260.0602667, 260.37409307, 260.68762981, 261.00087663, 261.31383324, 261.62649934, 261.93887465, 262.25095887, 262.5627517, 262.87425287, 263.18546208, 263.49637904, 263.80700346, 264.11733506, 264.42737354, 264.73711862, 265.04657002, 265.35572744, 265.6645906, 265.97315922, 266.28143301, 266.58941169, 266.89709497, 267.20448258, 267.51157423, 267.81836963, 268.12486851, 268.43107059, 268.73697559, 269.04258322, 269.34789321, 269.65290528, 269.95761915, 270.26203455, 270.56615119, 270.86996881, 271.17348712, 271.47670585, 271.77962473, 272.08224349, 272.38456184, 272.68657951, 272.98829625, 273.28971176, 273.59082578, 273.89163805, 274.19214828, 274.49235622, 274.79226159, 275.09186412, 275.39116354, 275.69015959, 275.98885201, 276.28724052, 276.58532485, 276.88310475, 277.18057996, 277.47775019, 277.7746152, 278.07117472, 278.36742848, 278.66337623, 278.9590177, 279.25435264, 279.54938078, 279.84410186, 280.13851563, 280.43262182, 280.72642018, 281.01991045, 281.31309238, 281.6059657, 281.89853017, 282.19078553, 282.48273151, 282.77436788, 283.06569437, 283.35671074, 283.64741672, 283.93781208, 284.22789655, 284.51766989, 284.80713185, 285.09628217, 285.38512062, 285.67364693, 285.96186087, 286.24976219, 286.53735063, 286.82462596, 287.11158793, 287.39823629, 287.6845708, 287.97059122, 288.25629729, 288.54168879, 288.82676547, 289.11152708, 289.39597338, 289.68010415, 289.96391912, 290.24741808, 290.53060077, 290.81346696, 291.09601641, 291.37824889, 291.66016416, 291.94176199, 292.22304213, 292.50400435, 292.78464843, 293.06497412, 293.34498119, 293.62466942, 293.90403856, 294.1830884, 294.46181869, 294.74022921, 295.01831973, 295.29609002, 295.57353985, 295.850669, 296.12747723, 296.40396433, 296.68013005, 296.95597419, 297.23149651, 297.5066968, 297.78157482, 298.05613035, 298.33036318, 298.60427307, 298.87785981, 299.15112319, 299.42406296, 299.69667893, 299.96897087, 300.24093855, 300.51258177, 300.78390031, 301.05489394, 301.32556246, 301.59590565, 301.86592328, 302.13561516, 302.40498106, 302.67402078, 302.94273409, 303.21112079, 303.47918067, 303.74691351, 304.0143191, 304.28139725, 304.54814772, 304.81457033, 305.08066486, 305.34643109, 305.61186884, 305.87697788, 306.14175802, 306.40620905, 306.67033077, 306.93412296, 307.19758544, 307.46071799, 307.72352041, 307.98599251, 308.24813408, 308.50994492, 308.77142483, 309.03257362, 309.29339108, 309.55387701, 309.81403123, 310.07385353, 310.33334371, 310.59250159, 310.85132696, 311.10981963, 311.36797941, 311.62580611, 311.88329953, 312.14045948, 312.39728577, 312.6537782, 312.9099366, 313.16576076, 313.42125051, 313.67640564, 313.93122598, 314.18571133, 314.43986152, 314.69367635, 314.94715563, 315.20029919, 315.45310684, 315.70557839, 315.95771367, 316.20951249, 316.46097466, 316.71210001, 316.96288836, 317.21333952, 317.46345332, 317.71322958, 317.96266811, 318.21176875, 318.46053131, 318.70895562, 318.9570415, 319.20478878, 319.45219728, 319.69926683, 319.94599726, 320.19238838, 320.43844004, 320.68415205, 320.92952424, 321.17455646, 321.41924852, 321.66360025, 321.90761149, 322.15128207, 322.39461183, 322.63760059, 322.88024818, 323.12255445, 323.36451923, 323.60614235, 323.84742365, 324.08836296, 324.32896013, 324.56921499, 324.80912737, 325.04869713, 325.28792409, 325.5268081, 325.765349, 326.00354663, 326.24140083, 326.47891145, 326.71607832, 326.9529013, 327.18938022, 327.42551493, 327.66130528, 327.89675111, 328.13185228, 328.36660862, 328.60101998, 328.83508622, 329.06880718, 329.30218271, 329.53521267, 329.7678969, 330.00023526, 330.23222759, 330.46387376, 330.69517361, 330.926127, 331.15673378, 331.38699381, 331.61690694, 331.84647303, 332.07569194, 332.30456353, 332.53308765, 332.76126416, 332.98909292, 333.21657379, 333.44370664, 333.67049132, 333.89692769, 334.12301562, 334.34875497, 334.57414561, 334.79918739, 335.02388019, 335.24822386, 335.47221828, 335.69586331, 335.91915882, 336.14210468, 336.36470075, 336.5869469, 336.80884301, 337.03038894, 337.25158457, 337.47242976, 337.69292439, 337.91306834, 338.13286146, 338.35230364, 338.57139476, 338.79013468, 339.00852329, 339.22656046, 339.44424606, 339.66157997, 339.87856208, 340.09519226, 340.31147039, 340.52739635, 340.74297001, 340.95819127, 341.17306, 341.38757609, 341.60173942, 341.81554986, 342.02900732, 342.24211166, 342.45486278, 342.66726056, 342.87930489, 343.09099565, 343.30233274, 343.51331604, 343.72394544, 343.93422082, 344.14414209, 344.35370913, 344.56292183, 344.77178009, 344.98028379, 345.18843283, 345.3962271, 345.6036665, 345.81075093, 346.01748027, 346.22385443, 346.42987329, 346.63553677, 346.84084475, 347.04579714, 347.25039383, 347.45463473, 347.65851973, 347.86204873, 348.06522164, 348.26803836, 348.47049879, 348.67260284, 348.8743504, 349.07574139, 349.27677571, 349.47745326, 349.67777396, 349.8777377, 350.07734439, 350.27659395, 350.47548629, 350.6740213, 350.8721989, 351.07001901, 351.26748153, 351.46458638, 351.66133346, 351.8577227, 352.053754, 352.24942728, 352.44474245, 352.63969942, 352.83429813, 353.02853847, 353.22242038, 353.41594375, 353.60910853, 353.80191462, 353.99436194, 354.18645041, 354.37817996, 354.5695505, 354.76056196, 354.95121426, 355.14150732, 355.33144107, 355.52101543, 355.71023033, 355.89908569, 356.08758144, 356.2757175, 356.4634938, 356.65091028, 356.83796685, 357.02466345, 357.21100001, 357.39697645, 357.58259272, 357.76784873, 357.95274443, 358.13727975, 358.32145461, 358.50526895, 358.68872272, 358.87181583, 359.05454823, 359.23691986, 359.41893065, 359.60058053, 359.78186946, 359.96279736, 360.14336417, 360.32356984, 360.50341431, 360.68289751, 360.86201939, 361.04077989, 361.21917895, 361.39721652, 361.57489254, 361.75220696, 361.92915972, 362.10575076, 362.28198004, 362.4578475, 362.63335309, 362.80849675, 362.98327843, 363.15769809, 363.33175568, 363.50545114, 363.67878443, 363.85175549, 364.02436429, 364.19661077, 364.36849488, 364.54001659, 364.71117584, 364.88197259, 365.0524068, 365.22247843, 365.39218742, 365.56153374, 365.73051735, 365.89913821, 366.06739627, 366.2352915, 366.40282385, 366.56999329, 366.73679977, 366.90324327, 367.06932375, 367.23504116, 367.40039547, 367.56538665, 367.73001467, 367.89427948, 368.05818106, 368.22171937, 368.38489438, 368.54770605, 368.71015437, 368.87223929, 369.03396079, 369.19531883, 369.35631339, 369.51694445, 369.67721197, 369.83711592, 369.99665628, 370.15583303, 370.31464613, 370.47309557, 370.63118132, 370.78890335, 370.94626165, 371.10325619, 371.25988695, 371.41615391, 371.57205704, 371.72759633, 371.88277176, 372.03758332, 372.19203097, 372.3461147, 372.4998345, 372.65319036, 372.80618224, 372.95881015, 373.11107406, 373.26297396, 373.41450984, 373.56568168, 373.71648947, 373.8669332, 374.01701286, 374.16672844, 374.31607993, 374.46506731, 374.61369058, 374.76194973, 374.90984476, 375.05737565, 375.2045424, 375.351345, 375.49778345, 375.64385775, 375.78956788, 375.93491385, 376.07989565, 376.22451328, 376.36876673, 376.51265601, 376.65618112, 376.79934205, 376.9421388, 377.08457138, 377.22663979, 377.36834403, 377.5096841, 377.65066, 377.79127175, 377.93151933, 378.07140277, 378.21092206, 378.35007721, 378.48886822, 378.62729511, 378.76535788, 378.90305653, 379.04039109, 379.17736155, 379.31396794, 379.45021025, 379.5860885, 379.7216027, 379.85675287, 379.99153901, 380.12596114, 380.26001928, 380.39371343, 380.52704362, 380.66000986, 380.79261217, 380.92485055, 381.05672504, 381.18823565, 381.31938239, 381.45016529, 381.58058436, 381.71063964, 381.84033112, 381.96965885, 382.09862283, 382.2272231, 382.35545968, 382.48333258, 382.61084183, 382.73798747, 382.86476951, 382.99118798, 383.1172429, 383.24293431, 383.36826222, 383.49322668, 383.6178277, 383.74206532, 383.86593957, 383.98945047, 384.11259806, 384.23538237, 384.35780343, 384.47986128, 384.60155594, 384.72288745, 384.84385585, 384.96446117, 385.08470344, 385.2045827, 385.324099, 385.44325235, 385.56204281, 385.68047041, 385.79853519, 385.91623719, 386.03357644, 386.15055299, 386.26716689, 386.38341816, 386.49930686, 386.61483302, 386.7299967, 386.84479792, 386.95923674, 387.0733132, 387.18702735, 387.30037924, 387.4133689, 387.52599639, 387.63826175, 387.75016503, 387.86170629, 387.97288556, 388.0837029, 388.19415837, 388.304252, 388.41398386, 388.52335398, 388.63236244, 388.74100927, 388.84929454, 388.95721829, 389.06478059, 389.17198148, 389.27882102, 389.38529927, 389.49141629, 389.59717213, 389.70256685, 389.80760051, 389.91227317, 390.01658488, 390.12053572, 390.22412573, 390.32735498, 390.43022353, 390.53273144, 390.63487878, 390.73666561, 390.83809199, 390.93915798, 391.03986366, 391.14020909, 391.24019433, 391.33981945, 391.43908452, 391.5379896, 391.63653477, 391.73472008, 391.83254562, 391.93001144, 392.02711763, 392.12386424, 392.22025136, 392.31627905, 392.41194739, 392.50725645, 392.6022063, 392.69679702, 392.79102868, 392.88490135, 392.97841512, 393.07157005, 393.16436623, 393.25680372, 393.34888262, 393.44060299, 393.53196492, 393.62296849, 393.71361377, 393.80390084, 393.89382979, 393.98340069, 394.07261364, 394.1614687, 394.24996597, 394.33810553, 394.42588745, 394.51331183, 394.60037876, 394.6870883, 394.77344056, 394.85943562, 394.94507357, 395.03035448, 395.11527846, 395.19984559, 395.28405595, 395.36790964, 395.45140675, 395.53454737, 395.61733159, 395.69975951, 395.7818312, 395.86354677, 395.94490631, 396.02590992, 396.10655768, 396.1868497, 396.26678606, 396.34636686, 396.42559221, 396.50446219, 396.5829769, 396.66113645, 396.73894092, 396.81639043, 396.89348506, 396.97022492, 397.04661011, 397.12264072, 397.19831687, 397.27363865, 397.34860616, 397.42321951, 397.4974788, 397.57138413, 397.64493561, 397.71813335, 397.79097744, 397.863468, 397.93560513, 398.00738894, 398.07881954, 398.14989702, 398.22062151, 398.29099311, 398.36101193, 398.43067808, 398.49999167, 398.5689528, 398.6375616, 398.70581818, 398.77372264, 398.8412751, 398.90847567, 398.97532447, 399.04182161, 399.1079672, 399.17376137, 399.23920422, 399.30429587, 399.36903645, 399.43342606, 399.49746482, 399.56115286, 399.62449029, 399.68747722, 399.75011379, 399.81240011, 399.8743363, 399.93592248, 399.99715878, 400.05804531, 400.1185822, 400.17876957, 400.23860755, 400.29809626, 400.35723582, 400.41602636, 400.474468, 400.53256087, 400.5903051, 400.64770082, 400.70474814, 400.7614472, 400.81779813, 400.87380106, 400.92945611, 400.98476342, 401.03972311, 401.09433532, 401.14860018, 401.20251782, 401.25608836, 401.30931196, 401.36218873, 401.4147188, 401.46690233, 401.51873943, 401.57023025, 401.62137492, 401.67217357, 401.72262635, 401.77273338, 401.82249482, 401.87191078, 401.92098142, 401.96970687, 402.01808727, 402.06612276, 402.11381348, 402.16115957, 402.20816118, 402.25481843, 402.30113149, 402.34710048, 402.39272555, 402.43800685, 402.48294451, 402.52753869, 402.57178952, 402.61569716, 402.65926174, 402.70248342, 402.74536234, 402.78789865, 402.83009249, 402.87194402, 402.91345338, 402.95462072, 402.99544619, 403.03592994, 403.07607211, 403.11587287, 403.15533237, 403.19445074, 403.23322815, 403.27166475, 403.30976069, 403.34751612, 403.38493121, 403.42200609, 403.45874093, 403.49513589, 403.53119111, 403.56690675, 403.60228298, 403.63731994, 403.6720178, 403.70637671, 403.74039684, 403.77407833, 403.80742135, 403.84042606, 403.87309262, 403.90542118, 403.93741192, 403.96906499, 404.00038055, 404.03135876, 404.0619998, 404.09230381, 404.12227097, 404.15190144, 404.18119538, 404.21015296, 404.23877435, 404.2670597, 404.29500918, 404.32262297, 404.34990123, 404.37684412, 404.40345182, 404.42972449, 404.4556623, 404.48126542, 404.50653402, 404.53146827, 404.55606834, 404.5803344, 404.60426662, 404.62786518, 404.65113024, 404.67406198, 404.69666057, 404.71892619, 404.74085901, 404.7624592, 404.78372694, 404.8046624, 404.82526575, 404.84553719, 404.86547687, 404.88508498, 404.9043617, 404.9233072, 404.94192165, 404.96020525, 404.97815816, 404.99578057, 405.01307266, 405.0300346, 405.04666658, 405.06296878, 405.07894138, 405.09458456, 405.1098985, 405.12488338, 405.13953939, 405.15386672, 405.16786554, 405.18153604, 405.19487841, 405.20789282, 405.22057947, 405.23293854, 405.24497021, 405.25667468, 405.26805213, 405.27910274, 405.28982671, 405.30022423, 405.31029547, 405.32004064, 405.32945992, 405.33855349, 405.34732156, 405.35576431, 405.36388193, 405.37167461, 405.37914255, 405.38628594, 405.39310496, 405.39959982, 405.4057707, 405.41161781, 405.41714133, 405.42234145, 405.42721838, 405.43177231, 405.43600343, 405.43991194, 405.44349804, 405.44676192, 405.44970379, 405.45232383, 405.45462225, 405.45659924, 405.458255, 405.45958974, 405.46060365, 405.46129693, 405.46166979, 405.46172242, 405.46145502, 405.4608678, 405.45996095, 405.45873469, 405.4571892, 405.4553247, 405.45314139, 405.45063947, 405.44781915, 405.44468063, 405.44122411, 405.4374498, 405.43335791, 405.42894864, 405.4242222, 405.4191788, 405.41381863, 405.40814192, 405.40214886, 405.39583966, 405.38921455, 405.38227371, 405.37501736, 405.36744572, 405.35955899, 405.35135737, 405.3428411, 405.33401036, 405.32486538, 405.31540637, 405.30563353, 405.29554708, 405.28514724, 405.27443422, 405.26340823, 405.25206948, 405.24041819, 405.22845457, 405.21617885, 405.20359122, 405.19069192, 405.17748115, 405.16395914, 405.15012609, 405.13598223, 405.12152777, 405.10676294, 405.09168794, 405.076303, 405.06060834, 405.04460417, 405.02829072, 405.0116682, 404.99473684, 404.97749686, 404.95994847, 404.9420919, 404.92392737, 404.9054551, 404.88667532, 404.86758824, 404.8481941, 404.8284931, 404.80848549, 404.78817147, 404.76755128, 404.74662514, 404.72539327, 404.70385591, 404.68201327, 404.65986558, 404.63741307, 404.61465596, 404.59159449, 404.56822887, 404.54455934, 404.52058613, 404.49630946, 404.47172956, 404.44684666, 404.42166099, 404.39617278, 404.37038226, 404.34428966, 404.31789521, 404.29119915, 404.26420169, 404.23690308, 404.20930355, 404.18140332, 404.15320263, 404.12470172, 404.09590082, 404.06680015, 404.03739996, 404.00770048, 403.97770194, 403.94740458, 403.91680863, 403.88591433, 403.85472191, 403.82323162, 403.79144367, 403.75935833, 403.72697581, 403.69429636, 403.66132021, 403.6280476, 403.59447878, 403.56061398, 403.52645343, 403.49199738, 403.45724607, 403.42219973, 403.38685861, 403.35122294, 403.31529298, 403.27906895, 403.2425511, 403.20573967, 403.16863491, 403.13123704, 403.09354633, 403.05556301, 403.01728732, 402.97871951, 402.93985981, 402.90070848, 402.86126576, 402.8215319, 402.78150712, 402.7411917, 402.70058586, 402.65968985, 402.61850393, 402.57702833, 402.5352633, 402.49320909, 402.45086595, 402.40823412, 402.36531386, 402.3221054, 402.27860901, 402.23482492, 402.19075338, 402.14639465, 402.10174897, 402.0568166, 402.01159778, 401.96609276, 401.9203018, 401.87422514, 401.82786304, 401.78121575, 401.73428352, 401.6870666, 401.63956524, 401.5917797, 401.54371022, 401.49535707, 401.4467205, 401.39780075, 401.34859808, 401.29911275, 401.24934501, 401.19929512, 401.14896333, 401.09834989, 401.04745507, 400.99627911, 400.94482227, 400.89308482, 400.84106699, 400.78876907, 400.73619129, 400.68333391, 400.63019721, 400.57678142, 400.52308681, 400.46911365, 400.41486218, 400.36033266, 400.30552536, 400.25044054, 400.19507845, 400.13943935, 400.08352351, 400.02733119, 399.97086263, 399.91411812, 399.8570979, 399.79980224, 399.7422314, 399.68438565, 399.62626523, 399.56787043, 399.50920149, 399.45025869, 399.39104229, 399.33155254, 399.27178971, 399.21175407, 399.15144589, 399.09086541, 399.03001292, 398.96888867, 398.90749294, 398.84582597, 398.78388805, 398.72167943, 398.65920039, 398.59645119, 398.53343209, 398.47014336, 398.40658527, 398.34275809, 398.27866208, 398.21429752, 398.14966466, 398.08476378, 398.01959515, 397.95415903, 397.8884557, 397.82248542, 397.75624846, 397.68974509, 397.62297558, 397.55594021, 397.48863924, 397.42107294, 397.35324158, 397.28514543, 397.21678477, 397.14815987, 397.07927099, 397.01011842, 396.94070241, 396.87102325, 396.80108121, 396.73087655, 396.66040956, 396.5896805, 396.51868965, 396.44743728, 396.37592367, 396.30414908, 396.2321138, 396.1598181, 396.08726225, 396.01444653, 395.94137121, 395.86803657, 395.79444288, 395.72059042, 395.64647946, 395.57211029, 395.49748317, 395.42259839, 395.34745621, 395.27205693, 395.19640081, 395.12048812, 395.04431916, 394.9678942, 394.89121351, 394.81427737, 394.73708606, 394.65963987, 394.58193906, 394.50398391, 394.42577472, 394.34731175, 394.26859528, 394.1896256, 394.11040298, 394.03092771, 393.95120007, 393.87122032, 393.79098877, 393.71050568, 393.62977134, 393.54878602, 393.46755002, 393.38606361, 393.30432708, 393.22234069, 393.14010475, 393.05761953, 392.97488531, 392.89190237, 392.80867101, 392.72519149, 392.64146411, 392.55748915, 392.47326688, 392.38879761, 392.3040816, 392.21911915, 392.13391053, 392.04845604, 391.96275595, 391.87681055, 391.79062013, 391.70418498, 391.61750537, 391.53058159, 391.44341393, 391.35600268, 391.26834812, 391.18045053, 391.09231021, 391.00392743, 390.91530249, 390.82643568, 390.73732728, 390.64797757, 390.55838685, 390.4685554, 390.37848351, 390.28817147, 390.19761956, 390.10682808, 390.01579731, 389.92452754, 389.83301907, 389.74127217, 389.64928714, 389.55706426, 389.46460383, 389.37190614, 389.27897147, 389.18580012, 389.09239237, 388.99874852, 388.90486885, 388.81075366, 388.71640323, 388.62181786, 388.52699784, 388.43194346, 388.336655, 388.24113277, 388.14537705, 388.04938813, 387.95316631, 387.85671188, 387.76002513, 387.66310635, 387.56595583, 387.46857387, 387.37096076, 387.27311679, 387.17504225, 387.07673744, 386.97820265, 386.87943818, 386.78044432, 386.68122135, 386.58176958, 386.4820893, 386.3821808, 386.28204438, 386.18168032, 386.08108894, 385.98027051, 385.87922534, 385.77795371, 385.67645593, 385.57473229, 385.47278308, 385.3706086, 385.26820915, 385.16558501, 385.0627365, 384.95966389, 384.85636749, 384.75284759, 384.6491045, 384.54513849, 384.44094989, 384.33653897, 384.23190603, 384.12705138, 384.0219753, 383.9166781, 383.81116008, 383.70542152, 383.59946274, 383.49328401, 383.38688565, 383.28026795, 383.17343121, 383.06637572, 382.95910179, 382.85160971, 382.74389978, 382.63597229, 382.52782756, 382.41946587, 382.31088752, 382.20209282, 382.09308206, 381.98385554, 381.87441355, 381.76475641, 381.65488441, 381.54479784, 381.43449701, 381.32398222, 381.21325377, 381.10231195, 380.99115707, 380.87978942, 380.76820931, 380.65641704, 380.5444129, 380.4321972, 380.31977024, 380.20713232, 380.09428373, 379.98122479, 379.86795579, 379.75447703, 379.64078881, 379.52689143, 379.4127852, 379.29847042, 379.18394738, 379.0692164, 378.95427776, 378.83913178, 378.72377875, 378.60821898, 378.49245277, 378.37648041, 378.26030222, 378.1439185, 378.02732954, 377.91053565, 377.79353713, 377.67633428, 377.55892741, 377.44131682, 377.32350282, 377.20548569, 377.08726576, 376.96884332, 376.85021867, 376.73139212, 376.61236396, 376.49313451, 376.37370407, 376.25407294, 376.13424142, 376.01420982, 375.89397844, 375.77354759, 375.65291756, 375.53208867, 375.41106121, 375.2898355, 375.16841182, 375.0467905, 374.92497183, 374.80295611, 374.68074366, 374.55833477, 374.43572975, 374.31292891, 374.18993255, 374.06674097, 373.94335447, 373.81977338, 373.69599797, 373.57202858, 373.44786549, 373.32350901, 373.19895945, 373.07421711, 372.9492823, 372.82415533, 372.69883649, 372.5733261, 372.44762445, 372.32173187, 372.19564864, 372.06937507, 371.94291148, 371.81625816, 371.68941543, 371.56238358, 371.43516293, 371.30775378, 371.18015643, 371.0523712, 370.92439838, 370.79623829, 370.66789122, 370.53935749, 370.4106374, 370.28173126, 370.15263937, 370.02336205, 369.89389959, 369.7642523, 369.63442049, 369.50440447, 369.37420454, 369.243821, 369.11325418, 368.98250436, 368.85157186, 368.72045699, 368.58916004, 368.45768134, 368.32602118, 368.19417987, 368.06215772, 367.92995503, 367.79757211, 367.66500928, 367.53226683, 367.39934507, 367.26624431, 367.13296485, 366.99950701, 366.86587109, 366.7320574, 366.59806624, 366.46389792, 366.32955276, 366.19503104, 366.06033309, 365.92545921, 365.79040971, 365.65518489, 365.51978506, 365.38421053, 365.24846161, 365.1125386, 364.97644181, 364.84017155, 364.70372813, 364.56711184, 364.43032301, 364.29336194, 364.15622892, 364.01892429, 363.88144833, 363.74380135, 363.60598368, 363.4679956, 363.32983743, 363.19150948, 363.05301206, 362.91434546, 362.77551001, 362.636506, 362.49733375, 362.35799355, 362.21848573, 362.07881058, 361.93896842, 361.79895955, 361.65878428, 361.51844291, 361.37793576, 361.23726313, 361.09642533, 360.95542266, 360.81425544, 360.67292397, 360.53142857, 360.38976952, 360.24794715, 360.10596177, 359.96381367, 359.82150317, 359.67903057, 359.53639618, 359.39360032, 359.25064328, 359.10752537, 358.9642469, 358.82080819, 358.67720953, 358.53345123, 358.3895336, 358.24545695, 358.10122159, 357.95682782, 357.81227595, 357.66756629, 357.52269914, 357.37767481, 357.23249362, 357.08715586, 356.94166184, 356.79601188, 356.65020627, 356.50424533, 356.35812936, 356.21185867, 356.06543357, 355.91885436, 355.77212135, 355.62523485, 355.47819516, 355.3310026, 355.18365747, 355.03616007, 354.88851071, 354.7407097, 354.59275735, 354.44465397, 354.29639985, 354.14799531, 353.99944065, 353.85073618, 353.70188221, 353.55287905, 353.40372699, 353.25442635, 353.10497744, 352.95538055, 352.805636, 352.65574409, 352.50570513, 352.35551943, 352.20518729, 352.05470902, 351.90408492, 351.7533153, 351.60240047, 351.45134073, 351.30013639, 351.14878776, 350.99729513, 350.84565883, 350.69387914, 350.54195639, 350.38989087, 350.23768289, 350.08533276, 349.93284078, 349.78020725, 349.62743249, 349.4745168, 349.32146048, 349.16826385, 349.0149272, 348.86145084, 348.70783507, 348.55408021, 348.40018655, 348.24615441, 348.09198408, 347.93767587, 347.78323009, 347.62864704, 347.47392703, 347.31907036, 347.16407734, 347.00894827, 346.85368345, 346.6982832, 346.54274781, 346.38707759, 346.23127284, 346.07533387, 345.91926099, 345.76305449, 345.60671468, 345.45024187, 345.29363636, 345.13689845, 344.98002845, 344.82302666, 344.66589339, 344.50862894, 344.3512336, 344.1937077, 344.03605152, 343.87826538, 343.72034958, 343.56230441, 343.40413019, 343.24582722, 343.0873958, 342.92883623, 342.77014881, 342.61133386, 342.45239167, 342.29332254, 342.13412678, 341.97480469, 341.81535657, 341.65578273, 341.49608347, 341.33625909, 341.17630989, 341.01623617, 340.85603824, 340.6957164, 340.53527095, 340.3747022, 340.21401044, 340.05319597, 339.89225911, 339.73120014, 339.57001937, 339.40871711, 339.24729365, 339.0857493, 338.92408435, 338.76229911, 338.60039388, 338.43836896, 338.27622465, 338.11396125, 337.95157906, 337.78907839, 337.62645953, 337.46372278, 337.30086844, 337.13789682, 336.97480821, 336.81160292, 336.64828124, 336.48484347, 336.32128992, 336.15762088, 335.99383665, 335.82993754, 335.66592384, 335.50179585, 335.33755387, 335.1731982, 335.00872913, 334.84414698, 334.67945203, 334.51464459, 334.34972495, 334.18469341, 334.01955027, 333.85429583, 333.68893039, 333.52345425, 333.35786769, 333.19217103, 333.02636456, 332.86044858, 332.69442338, 332.52828926, 332.36204652, 332.19569546, 332.02923637, 331.86266956, 331.69599531, 331.52921393, 331.36232571, 331.19533095, 331.02822994, 330.86102299, 330.69371038, 330.52629242, 330.3587694, 330.19114161, 330.02340936, 329.85557294, 329.68763264, 329.51958876, 329.35144159, 329.18319144, 329.01483859, 328.84638334, 328.67782599, 328.50916683, 328.34040616, 328.17154426, 328.00258144, 327.83351799, 327.66435421, 327.49509038, 327.3257268, 327.15626377, 326.98670159, 326.81704053, 326.6472809, 326.47742299, 326.3074671, 326.13741352, 325.96726253, 325.79701444, 325.62666954, 325.45622811, 325.28569046, 325.11505687, 324.94432764, 324.77350306, 324.60258342, 324.43156901, 324.26046013, 324.08925706, 323.91796011, 323.74656955, 323.57508569, 323.40350881, 323.2318392, 323.06007716, 322.88822298, 322.71627694, 322.54423934, 322.37211047, 322.19989061, 322.02758007, 321.85517912, 321.68268806, 321.51010718, 321.33743677, 321.16467712, 320.99182851, 320.81889124, 320.64586559, 320.47275186, 320.29955034, 320.1262613, 319.95288505, 319.77942186, 319.60587203, 319.43223585, 319.2585136, 319.08470558, 318.91081206, 318.73683334, 318.56276971, 318.38862144, 318.21438884, 318.04007218, 317.86567176, 317.69118786, 317.51662076, 317.34197075, 317.16723813, 316.99242317, 316.81752616, 316.64254739, 316.46748715, 316.29234571, 316.11712337, 315.9418204, 315.7664371, 315.59097376, 315.41543064, 315.23980805, 315.06410626, 314.88832556, 314.71246623, 314.53652856, 314.36051283, 314.18441933, 314.00824833, 313.83200013, 313.655675, 313.47927323, 313.3027951, 313.1262409, 312.94961091, 312.7729054, 312.59612467, 312.41926899, 312.24233865, 312.06533393, 311.88825511, 311.71110247, 311.53387629, 311.35657686, 311.17920446, 311.00175936, 310.82424186, 310.64665222, 310.46899073, 310.29125767, 310.11345332, 309.93557797, 309.75763188, 309.57961534, 309.40152864, 309.22337204, 309.04514583, 308.86685029, 308.68848569, 308.51005232, 308.33155045, 308.15298037, 307.97434234, 307.79563666, 307.61686359, 307.43802342, 307.25911641, 307.08014286, 306.90110303, 306.72199721, 306.54282567, 306.36358868, 306.18428653, 306.00491949, 305.82548784, 305.64599185, 305.4664318, 305.28680796, 305.10712062, 304.92737004, 304.74755649, 304.56768027, 304.38774164, 304.20774087, 304.02767824, 303.84755403, 303.6673685, 303.48712194, 303.30681461, 303.1264468, 302.94601876, 302.76553079, 302.58498314, 302.4043761, 302.22370993, 302.04298491, 301.86220131, 301.68135941, 301.50045947, 301.31950177, 301.13848657, 300.95741416, 300.7762848, 300.59509876, 300.41385631, 300.23255773, 300.05120328, 299.86979324, 299.68832788, 299.50680746, 299.32523226, 299.14360254, 298.96191858, 298.78018064, 298.598389, 298.41654392, 298.23464567, 298.05269452, 297.87069074, 297.68863459, 297.50652635, 297.32436629, 297.14215466, 296.95989174, 296.7775778, 296.59521309, 296.4127979, 296.23033248, 296.04781711, 295.86525204, 295.68263755, 295.4999739, 295.31726135, 295.13450018, 294.95169065, 294.76883301, 294.58592755, 294.40297452, 294.21997418, 294.03692681, 293.85383266, 293.67069201, 293.4875051, 293.30427222, 293.12099361, 292.93766955, 292.7543003, 292.57088612, 292.38742727, 292.20392401, 292.02037662, 291.83678534, 291.65315044, 291.46947219, 291.28575084, 291.10198666, 290.91817991, 290.73433084, 290.55043972, 290.36650682, 290.18253238, 289.99851667, 289.81445995, 289.63036248, 289.44622452, 289.26204633, 289.07782817, 288.89357029, 288.70927295, 288.52493642, 288.34056096, 288.15614681, 287.97169424, 287.7872035, 287.60267486, 287.41810857, 287.23350488, 287.04886406, 286.86418636, 286.67947204, 286.49472135, 286.30993455, 286.1251119, 285.94025364, 285.75536005, 285.57043136, 285.38546784, 285.20046975, 285.01543733, 284.83037084, 284.64527053, 284.46013666, 284.27496949, 284.08976926, 283.90453623, 283.71927065, 283.53397278, 283.34864287, 283.16328117, 282.97788793, 282.7924634, 282.60700784, 282.4215215, 282.23600464, 282.05045749, 281.86488031, 281.67927336, 281.49363688, 281.30797112, 281.12227634, 280.93655278, 280.7508007, 280.56502034, 280.37921195, 280.19337578, 280.00751209, 279.82162111, 279.6357031, 279.44975831, 279.26378698, 279.07778936, 278.89176571, 278.70571626, 278.51964126, 278.33354096, 278.14741561, 277.96126546, 277.77509074, 277.58889171, 277.40266862, 277.2164217, 277.0301512, 276.84385738, 276.65754046, 276.4712007, 276.28483835, 276.09845364, 275.91204683, 275.72561814, 275.53916784, 275.35269616, 275.16620334, 274.97968963, 274.79315527, 274.60660051, 274.42002558, 274.23343073, 274.04681619, 273.86018222, 273.67352905, 273.48685692, 273.30016608, 273.11345676, 272.92672921, 272.73998367, 272.55322037, 272.36643955, 272.17964146, 271.99282634, 271.80599442, 271.61914594, 271.43228115, 271.24540027, 271.05850355, 270.87159123, 270.68466354, 270.49772073, 270.31076302, 270.12379066, 269.93680388, 269.74980292, 269.56278802, 269.37575941, 269.18871732, 269.001662, 268.81459368, 268.62751259, 268.44041898, 268.25331306, 268.06619509, 267.87906529, 267.6919239, 267.50477114, 267.31760727, 267.1304325, 266.94324707, 266.75605121, 266.56884517, 266.38162916, 266.19440342, 266.00716819, 265.81992369, 265.63267016, 265.44540783, 265.25813693, 265.07085768, 264.88357033, 264.6962751, 264.50897222, 264.32166192, 264.13434444, 263.94701999, 263.75968881, 263.57235113, 263.38500718, 263.19765719, 263.01030137, 262.82293997, 262.63557321, 262.44820132, 262.26082452, 262.07344304, 261.88605711, 261.69866696, 261.51127281, 261.32387488, 261.13647341, 260.94906862, 260.76166073, 260.57424997, 260.38683657, 260.19942074, 260.01200272, 259.82458273, 259.63716098, 259.44973772, 259.26231315, 259.0748875, 258.887461, 258.70003387, 258.51260633, 258.3251786, 258.1377509, 257.95032346, 257.7628965, 257.57547024, 257.3880449, 257.2006207, 257.01319786, 256.82577661, 256.63835715, 256.45093972, 256.26352453, 256.0761118, 255.88870175, 255.7012946, 255.51389057, 255.32648988, 255.13909274, 254.95169937, 254.76430999, 254.57692481, 254.38954407, 254.20216796, 254.01479671, 253.82743054, 253.64006965, 253.45271428, 253.26536462, 253.0780209, 252.89068334, 252.70335214, 252.51602753, 252.32870971, 252.14139891, 251.95409533, 251.76679918, 251.5795107, 251.39223007, 251.20495753, 251.01769327, 250.83043752, 250.64319049, 250.45595239, 250.26872342, 250.08150381, 249.89429375, 249.70709348, 249.51990318, 249.33272308, 249.14555339, 248.95839431, 248.77124606, 248.58410884, 248.39698286, 248.20986834, 248.02276547, 247.83567448, 247.64859557, 247.46152894, 247.27447481, 247.08743337, 246.90040485, 246.71338944, 246.52638736, 246.3393988, 246.15242398, 245.9654631, 245.77851636, 245.59158398, 245.40466616, 245.2177631, 245.030875, 244.84400208, 244.65714453, 244.47030257, 244.28347639, 244.09666619, 243.90987219, 243.72309458, 243.53633356, 243.34958935, 243.16286213, 242.97615212, 242.78945952, 242.60278451, 242.41612732, 242.22948814, 242.04286716, 241.85626459, 241.66968063, 241.48311549, 241.29656935, 241.11004242, 240.92353489, 240.73704698, 240.55057887, 240.36413076, 240.17770286, 239.99129535, 239.80490844, 239.61854233, 239.43219721, 239.24587328, 239.05957073, 238.87328977, 238.68703058, 238.50079337, 238.31457832, 238.12838564, 237.94221552, 237.75606816, 237.56994374, 237.38384247, 237.19776454, 237.01171014, 236.82567946, 236.6396727, 236.45369005, 236.26773171, 236.08179786, 235.8958887, 235.71000442, 235.52414522, 235.33831128, 235.15250279, 234.96671995, 234.78096295, 234.59523198, 234.40952722, 234.22384887, 234.03819712, 233.85257216, 233.66697417, 233.48140334, 233.29585987, 233.11034394, 232.92485575, 232.73939546, 232.55396329, 232.36855941, 232.18318401, 231.99783727, 231.81251939, 231.62723055, 231.44197093, 231.25674073, 231.07154012, 230.8863693, 230.70122844, 230.51611774, 230.33103737, 230.14598753, 229.96096839, 229.77598014, 229.59102296, 229.40609703, 229.22120255, 229.03633968, 228.85150862, 228.66670955, 228.48194264, 228.29720809, 228.11250606, 227.92783675, 227.74320033, 227.55859698, 227.37402689, 227.18949023, 227.00498718, 226.82051793, 226.63608265, 226.45168152, 226.26731472, 226.08298243, 225.89868483, 225.7144221, 225.53019441, 225.34600193, 225.16184486, 224.97772336, 224.79363761, 224.60958779, 224.42557408, 224.24159664, 224.05765567, 223.87375132, 223.68988378, 223.50605321, 223.32225981, 223.13850374, 222.95478517, 222.77110427, 222.58746123, 222.40385622, 222.2202894, 222.03676095, 221.85327105, 221.66981986, 221.48640756, 221.30303432, 221.11970031, 220.9364057, 220.75315067, 220.56993538, 220.38676, 220.20362471, 220.02052967, 219.83747506, 219.65446104, 219.47148778, 219.28855545, 219.10566422, 218.92281426, 218.74000574, 218.55723882, 218.37451367, 218.19183047, 218.00918936, 217.82659053, 217.64403414, 217.46152036, 217.27904934, 217.09662127, 216.91423629, 216.73189459, 216.54959631, 216.36734164, 216.18513072, 216.00296373, 215.82084083, 215.63876219, 215.45672796, 215.27473831, 215.0927934, 214.9108934, 214.72903847, 214.54722876, 214.36546445, 214.18374569, 214.00207264, 213.82044547, 213.63886433, 213.45732939, 213.27584081, 213.09439875, 212.91300335, 212.7316548, 212.55035324, 212.36909883, 212.18789174, 212.00673211, 211.82562012, 211.64455591, 211.46353964, 211.28257148, 211.10165157, 210.92078008, 210.73995716, 210.55918297, 210.37845766, 210.19778139, 210.01715432, 209.8365766, 209.65604838, 209.47556982, 209.29514108, 209.1147623, 208.93443365, 208.75415527, 208.57392733, 208.39374996, 208.21362333, 208.03354759, 207.85352289, 207.67354938, 207.49362722, 207.31375655, 207.13393752, 206.9541703, 206.77445502, 206.59479185, 206.41518092, 206.23562239, 206.05611641, 205.87666313, 205.6972627, 205.51791526, 205.33862097, 205.15937997, 204.98019241, 204.80105845, 204.62197822, 204.44295187, 204.26397956, 204.08506142, 203.90619761, 203.72738827, 203.54863354, 203.36993358, 203.19128853, 203.01269853, 202.83416373, 202.65568428, 202.47726031, 202.29889197, 202.12057941, 201.94232277, 201.76412219, 201.58597782, 201.4078898, 201.22985827, 201.05188337, 200.87396525, 200.69610404, 200.5182999, 200.34055296, 200.16286335, 199.98523124, 199.80765674, 199.63014001, 199.45268118, 199.27528039, 199.09793779, 198.92065351, 198.74342768, 198.56626046, 198.38915198, 198.21210237, 198.03511178, 197.85818034, 197.68130818, 197.50449546, 197.32774229, 197.15104883, 196.9744152, 196.79784155, 196.621328, 196.44487469, 196.26848177, 196.09214936, 195.91587759, 195.73966661, 195.56351655, 195.38742754, 195.21139971, 195.03543321, 194.85952815, 194.68368468, 194.50790293, 194.33218302, 194.1565251, 193.9809293, 193.80539574, 193.62992455, 193.45451588, 193.27916984, 193.10388657, 192.92866621, 192.75350887, 192.5784147, 192.40338381, 192.22841634, 192.05351243, 191.87867218, 191.70389575, 191.52918325, 191.35453481, 191.17995056, 191.00543062, 190.83097513, 190.65658422, 190.482258, 190.3079966, 190.13380016, 189.95966879, 189.78560263, 189.61160179, 189.43766641, 189.2637966, 189.0899925, 188.91625423, 188.7425819, 188.56897566, 188.39543561, 188.22196188, 188.0485546, 187.87521389, 187.70193986, 187.52873265, 187.35559238, 187.18251917, 187.00951313, 186.83657439, 186.66370308, 186.4908993, 186.31816319, 186.14549487, 185.97289444, 185.80036204, 185.62789778, 185.45550178, 185.28317416, 185.11091505, 184.93872455, 184.76660278, 184.59454987, 184.42256594, 184.25065109, 184.07880545, 183.90702913, 183.73532225, 183.56368493, 183.39211728, 183.22061942, 183.04919147, 182.87783354, 182.70654574, 182.53532819, 182.364181, 182.1931043, 182.02209819, 181.85116279, 181.6802982, 181.50950456, 181.33878196, 181.16813052, 180.99755035, 180.82704157, 180.65660429, 180.48623861, 180.31594466, 180.14572254, 179.97557237, 179.80549425, 179.63548829, 179.46555461, 179.29569332, 179.12590452, 178.95618832, 178.78654485, 178.61697419, 178.44747647, 178.27805179, 178.10870025, 177.93942198, 177.77021707, 177.60108563, 177.43202778, 177.26304361, 177.09413323, 176.92529676, 176.75653429, 176.58784594, 176.41923181, 176.250692, 176.08222662, 175.91383577, 175.74551957, 175.57727811, 175.40911149, 175.24101983, 175.07300323, 174.90506179, 174.73719561, 174.5694048, 174.40168946, 174.23404968, 174.06648559, 173.89899727, 173.73158483, 173.56424836, 173.39698798, 173.22980378, 173.06269587, 172.89566434, 172.72870929, 172.56183082, 172.39502904, 172.22830404, 172.06165593, 171.8950848, 171.72859075, 171.56217387, 171.39583428, 171.22957206, 171.06338731, 170.89728014, 170.73125063, 170.56529889, 170.39942501, 170.23362909, 170.06791123, 169.90227152, 169.73671006, 169.57122693, 169.40582225, 169.2404961, 169.07524858, 168.91007978, 168.7449898, 168.57997874, 168.41504667, 168.25019371, 168.08541994, 167.92072545, 167.75611035, 167.59157471, 167.42711864, 167.26274223, 167.09844556, 166.93422873, 166.77009184, 166.60603496, 166.4420582, 166.27816165, 166.11434539, 165.95060951, 165.78695411, 165.62337927, 165.45988509, 165.29647165, 165.13313904, 164.96988736, 164.80671668, 164.6436271, 164.48061871, 164.31769159, 164.15484584, 163.99208153, 163.82939876, 163.66679761, 163.50427817, 163.34184052, 163.17948476, 163.01721097, 162.85501922, 162.69290962, 162.53088224, 162.36893717, 162.2070745, 162.0452943, 161.88359666, 161.72198167, 161.56044941, 161.39899997, 161.23763342, 161.07634985, 160.91514934, 160.75403197, 160.59299784, 160.43204701, 160.27117957, 160.11039561, 159.9496952, 159.78907843, 159.62854537, 159.46809611, 159.30773072, 159.14744929, 158.9872519, 158.82713863, 158.66710955, 158.50716474, 158.34730429, 158.18752828, 158.02783677, 157.86822986, 157.70870761, 157.54927011, 157.38991743, 157.23064965, 157.07146685, 156.9123691, 156.75335648, 156.59442907, 156.43558695, 156.27683018, 156.11815885, 155.95957302, 155.80107279, 155.64265821, 155.48432937, 155.32608634, 155.16792919, 155.009858, 154.85187284, 154.69397379, 154.53616092, 154.37843429, 154.220794, 154.0632401, 153.90577267, 153.74839178, 153.5910975, 153.43388991, 153.27676908, 153.11973507, 152.96278797, 152.80592783, 152.64915474, 152.49246875, 152.33586995, 152.17935839, 152.02293416, 151.86659732, 151.71034793, 151.55418608, 151.39811182, 151.24212522, 151.08622636, 150.9304153, 150.77469211, 150.61905686, 150.4635096, 150.30805042, 150.15267938, 149.99739655, 149.84220198, 149.68709575, 149.53207792, 149.37714857, 149.22230775, 149.06755552, 148.91289196, 148.75831714, 148.6038311, 148.44943393, 148.29512567, 148.14090641, 147.98677619, 147.83273509, 147.67878316, 147.52492048, 147.37114709, 147.21746308, 147.06386849, 146.91036339, 146.75694784, 146.60362191, 146.45038565, 146.29723912, 146.1441824, 145.99121553, 145.83833858, 145.68555161, 145.53285468, 145.38024785, 145.22773117, 145.07530472, 144.92296854, 144.77072269, 144.61856725, 144.46650225, 144.31452777, 144.16264386, 144.01085057, 143.85914797, 143.70753611, 143.55601506, 143.40458486, 143.25324557, 143.10199726, 142.95083997, 142.79977377, 142.6487987, 142.49791483, 142.34712221, 142.19642089, 142.04581094, 141.8952924, 141.74486533, 141.59452978, 141.44428582, 141.29413348, 141.14407283, 140.99410392, 140.84422681, 140.69444153, 140.54474816, 140.39514674, 140.24563732, 140.09621996, 139.94689471, 139.79766162, 139.64852074, 139.49947212, 139.35051581, 139.20165187, 139.05288035, 138.90420129, 138.75561475, 138.60712077, 138.45871941, 138.31041072, 138.16219474, 138.01407152, 137.86604112, 137.71810358, 137.57025895, 137.42250728, 137.27484862, 137.12728301, 136.97981051, 136.83243116, 136.685145, 136.53795209, 136.39085247, 136.24384619, 136.09693329, 135.95011382, 135.80338783, 135.65675537, 135.51021647, 135.36377118, 135.21741956, 135.07116164, 134.92499746, 134.77892708, 134.63295054, 134.48706788, 134.34127915, 134.19558438, 134.04998363, 133.90447693, 133.75906433, 133.61374588, 133.46852161, 133.32339157, 133.17835579, 133.03341433, 132.88856722, 132.74381451, 132.59915623, 132.45459243, 132.31012315, 132.16574843, 132.02146831, 131.87728283, 131.73319203, 131.58919595, 131.44529464, 131.30148812, 131.15777644, 131.01415964, 130.87063776, 130.72721084, 130.58387891, 130.44064201, 130.29750019, 130.15445347, 130.01150191, 129.86864553, 129.72588437, 129.58321847, 129.44064786, 129.29817259, 129.15579269, 129.0135082, 128.87131915, 128.72922557, 128.58722751, 128.445325, 128.30351808, 128.16180677, 128.02019112, 127.87867116, 127.73724692, 127.59591844, 127.45468576, 127.3135489, 127.1725079, 127.0315628, 126.89071362, 126.7499604, 126.60930318, 126.46874198, 126.32827685, 126.1879078, 126.04763488, 125.90745811, 125.76737753, 125.62739317, 125.48750505, 125.34771322, 125.2080177, 125.06841853, 124.92891573, 124.78950933, 124.65019937, 124.51098587, 124.37186886, 124.23284838, 124.09392446, 123.95509711, 123.81636638, 123.67773229, 123.53919486, 123.40075414, 123.26241014, 123.12416289, 122.98601243, 122.84795877, 122.71000195, 122.572142, 122.43437894, 122.2967128, 122.1591436, 122.02167137, 121.88429614, 121.74701794, 121.60983679, 121.47275271, 121.33576574, 121.19887589, 121.06208319, 120.92538767, 120.78878936, 120.65228827, 120.51588443, 120.37957787, 120.24336861, 120.10725667, 119.97124208, 119.83532486, 119.69950504, 119.56378263, 119.42815767, 119.29263016, 119.15720015, 119.02186764, 118.88663266, 118.75149524, 118.61645538, 118.48151313, 118.34666849, 118.2119215, 118.07727216, 117.9427205, 117.80826655, 117.67391032, 117.53965183, 117.4054911, 117.27142816, 117.13746302, 117.0035957, 116.86982623, 116.73615462, 116.60258088, 116.46910505, 116.33572714, 116.20244716, 116.06926514, 115.93618109, 115.80319503, 115.67030698, 115.53751696, 115.40482498, 115.27223106, 115.13973523, 115.00733749, 114.87503786, 114.74283636, 114.61073301, 114.47872782, 114.3468208, 114.21501198, 114.08330137, 113.95168899, 113.82017484, 113.68875896, 113.55744134, 113.426222, 113.29510097, 113.16407825, 113.03315386, 112.90232782, 112.77160013, 112.64097081, 112.51043988, 112.38000734, 112.24967321, 112.11943751, 111.98930025, 111.85926143, 111.72932108, 111.5994792, 111.46973581, 111.34009091, 111.21054453, 111.08109667, 110.95174734, 110.82249656, 110.69334433, 110.56429068, 110.4353356, 110.30647911, 110.17772121, 110.04906193, 109.92050127, 109.79203924, 109.66367584, 109.5354111, 109.40724501, 109.27917759, 109.15120885, 109.0233388, 108.89556744, 108.76789478, 108.64032083, 108.51284561, 108.38546911, 108.25819135, 108.13101233, 108.00393207, 107.87695056, 107.75006782, 107.62328385, 107.49659867, 107.37001227, 107.24352466, 107.11713585, 106.99084585, 106.86465467, 106.7385623, 106.61256875, 106.48667404, 106.36087816, 106.23518112, 106.10958293, 105.98408359, 105.8586831, 105.73338147, 105.60817871, 105.48307482, 105.3580698, 105.23316366, 105.10835639, 104.98364802, 104.85903853, 104.73452793, 104.61011623, 104.48580342, 104.36158952, 104.23747452, 104.11345842, 103.98954124, 103.86572296, 103.7420036, 103.61838315, 103.49486161, 103.371439, 103.2481153, 103.12489052, 103.00176467, 102.87873774, 102.75580973, 102.63298064, 102.51025048, 102.38761925, 102.26508694, 102.14265355, 102.02031909, 101.89808355, 101.77594694, 101.65390925, 101.53197049, 101.41013064, 101.28838972, 101.16674771, 101.04520463, 100.92376046, 100.8024152, 100.68116886, 100.56002143, 100.43897291, 100.3180233, 100.19717258, 100.07642078, 99.95576787, 99.83521385, 99.71475873, 99.5944025, 99.47414515, 99.35398669, 99.2339271, 99.11396639, 98.99410456, 98.87434159, 98.75467748, 98.63511223, 98.51564583, 98.39627829, 98.27700959, 98.15783972, 98.0387687, 97.9197965, 97.80092312, 97.68214856, 97.56347281, 97.44489587, 97.32641773, 97.20803839, 97.08975783, 96.97157605, 96.85349305, 96.73550881, 96.61762334, 96.49983662, 96.38214864, 96.2645594, 96.1470689, 96.02967712, 95.91238405, 95.7951897, 95.67809404, 95.56109708, 95.4441988, 95.32739919, 95.21069825, 95.09409597, 94.97759233, 94.86118734, 94.74488097, 94.62867323, 94.5125641, 94.39655357, 94.28064163, 94.16482827, 94.04911349, 93.93349726, 93.81797959, 93.70256046, 93.58723986, 93.47201778, 93.35689421, 93.24186913, 93.12694254, 93.01211443, 92.89738478, 92.78275358, 92.66822082, 92.55378649, 92.43945057, 92.32521306, 92.21107394, 92.0970332, 91.98309083, 91.86924681, 91.75550113, 91.64185378, 91.52830475, 91.41485402, 91.30150157, 91.1882474, 91.0750915, 90.96203384, 90.84907441, 90.7362132, 90.6234502, 90.51078539, 90.39821875, 90.28575028, 90.17337996, 90.06110776, 89.94893369, 89.83685771, 89.72487983, 89.61300001, 89.50121825, 89.38953453, 89.27794884, 89.16646116, 89.05507146, 88.94377975, 88.83258599, 88.72149018, 88.6104923, 88.49959232, 88.38879024, 88.27808604, 88.1674797, 88.0569712, 87.94656052, 87.83624765, 87.72603258, 87.61591527, 87.50589572, 87.39597391, 87.28614981, 87.17642342, 87.0667947, 86.95726365, 86.84783025, 86.73849447, 86.6292563, 86.52011571, 86.4110727, 86.30212724, 86.1932793, 86.08452888, 85.97587595, 85.86732049, 85.75886248, 85.65050191, 85.54223874, 85.43407297, 85.32600457, 85.21803352, 85.1101598, 85.00238339, 84.89470427, 84.78712242, 84.67963781, 84.57225043, 84.46496025, 84.35776726, 84.25067143, 84.14367273, 84.03677116, 83.92996668, 83.82325927, 83.71664891, 83.61013559, 83.50371927, 83.39739993, 83.29117756, 83.18505213, 83.07902361, 82.97309198, 82.86725723, 82.76151932, 82.65587824, 82.55033395, 82.44488644, 82.33953569, 82.23428166, 82.12912434, 82.0240637, 81.91909971, 81.81423236, 81.70946162, 81.60478746, 81.50020986, 81.39572879, 81.29134423, 81.18705616, 81.08286455, 80.97876937, 80.8747706, 80.77086821, 80.66706218, 80.56335248, 80.45973909, 80.35622198, 80.25280113, 80.1494765, 80.04624808, 79.94311583, 79.84007973, 79.73713976, 79.63429588, 79.53154807, 79.4288963, 79.32634055, 79.22388079, 79.12151699, 79.01924913, 78.91707717, 78.81500109, 78.71302086, 78.61113646, 78.50934785, 78.40765501, 78.30605792, 78.20455653, 78.10315083, 78.00184078, 77.90062636, 77.79950754, 77.69848428, 77.59755657, 77.49672437, 77.39598765, 77.29534639, 77.19480055, 77.09435011, 76.99399503, 76.89373529, 76.79357085, 76.69350169, 76.59352778, 76.49364908, 76.39386558, 76.29417722, 76.194584, 76.09508587, 75.9956828, 75.89637478, 75.79716175, 75.6980437, 75.59902059, 75.50009239, 75.40125908, 75.30252061, 75.20387696, 75.1053281, 75.00687399, 74.9085146, 74.81024991, 74.71207988, 74.61400448, 74.51602367, 74.41813742, 74.32034571, 74.2226485, 74.12504575, 74.02753744, 73.93012353, 73.832804, 73.73557879, 73.63844789, 73.54141127, 73.44446888, 73.34762069, 73.25086668, 73.1542068, 73.05764103, 72.96116933, 72.86479166, 72.768508, 72.67231831, 72.57622256, 72.4802207, 72.38431272, 72.28849856, 72.19277821, 72.09715162, 72.00161876, 71.9061796, 71.8108341, 71.71558222, 71.62042394, 71.52535921, 71.430388] }, { "type": "list", "attributes": {}, "value": [ { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [4000, 12] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["x", "rev.x", "y.c1", "rev.y.c1", "y.c2", "rev.y.c2", "y.c3", "rev.y.c3", "cont.c1", "cont.c2", "cont.c3", "cont.sum"] } ] } }, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4000, 3999, 3998, 3997, 3996, 3995, 3994, 3993, 3992, 3991, 3990, 3989, 3988, 3987, 3986, 3985, 3984, 3983, 3982, 3981, 3980, 3979, 3978, 3977, 3976, 3975, 3974, 3973, 3972, 3971, 3970, 3969, 3968, 3967, 3966, 3965, 3964, 3963, 3962, 3961, 3960, 3959, 3958, 3957, 3956, 3955, 3954, 3953, 3952, 3951, 3950, 3949, 3948, 3947, 3946, 3945, 3944, 3943, 3942, 3941, 3940, 3939, 3938, 3937, 3936, 3935, 3934, 3933, 3932, 3931, 3930, 3929, 3928, 3927, 3926, 3925, 3924, 3923, 3922, 3921, 3920, 3919, 3918, 3917, 3916, 3915, 3914, 3913, 3912, 3911, 3910, 3909, 3908, 3907, 3906, 3905, 3904, 3903, 3902, 3901, 3900, 3899, 3898, 3897, 3896, 3895, 3894, 3893, 3892, 3891, 3890, 3889, 3888, 3887, 3886, 3885, 3884, 3883, 3882, 3881, 3880, 3879, 3878, 3877, 3876, 3875, 3874, 3873, 3872, 3871, 3870, 3869, 3868, 3867, 3866, 3865, 3864, 3863, 3862, 3861, 3860, 3859, 3858, 3857, 3856, 3855, 3854, 3853, 3852, 3851, 3850, 3849, 3848, 3847, 3846, 3845, 3844, 3843, 3842, 3841, 3840, 3839, 3838, 3837, 3836, 3835, 3834, 3833, 3832, 3831, 3830, 3829, 3828, 3827, 3826, 3825, 3824, 3823, 3822, 3821, 3820, 3819, 3818, 3817, 3816, 3815, 3814, 3813, 3812, 3811, 3810, 3809, 3808, 3807, 3806, 3805, 3804, 3803, 3802, 3801, 3800, 3799, 3798, 3797, 3796, 3795, 3794, 3793, 3792, 3791, 3790, 3789, 3788, 3787, 3786, 3785, 3784, 3783, 3782, 3781, 3780, 3779, 3778, 3777, 3776, 3775, 3774, 3773, 3772, 3771, 3770, 3769, 3768, 3767, 3766, 3765, 3764, 3763, 3762, 3761, 3760, 3759, 3758, 3757, 3756, 3755, 3754, 3753, 3752, 3751, 3750, 3749, 3748, 3747, 3746, 3745, 3744, 3743, 3742, 3741, 3740, 3739, 3738, 3737, 3736, 3735, 3734, 3733, 3732, 3731, 3730, 3729, 3728, 3727, 3726, 3725, 3724, 3723, 3722, 3721, 3720, 3719, 3718, 3717, 3716, 3715, 3714, 3713, 3712, 3711, 3710, 3709, 3708, 3707, 3706, 3705, 3704, 3703, 3702, 3701, 3700, 3699, 3698, 3697, 3696, 3695, 3694, 3693, 3692, 3691, 3690, 3689, 3688, 3687, 3686, 3685, 3684, 3683, 3682, 3681, 3680, 3679, 3678, 3677, 3676, 3675, 3674, 3673, 3672, 3671, 3670, 3669, 3668, 3667, 3666, 3665, 3664, 3663, 3662, 3661, 3660, 3659, 3658, 3657, 3656, 3655, 3654, 3653, 3652, 3651, 3650, 3649, 3648, 3647, 3646, 3645, 3644, 3643, 3642, 3641, 3640, 3639, 3638, 3637, 3636, 3635, 3634, 3633, 3632, 3631, 3630, 3629, 3628, 3627, 3626, 3625, 3624, 3623, 3622, 3621, 3620, 3619, 3618, 3617, 3616, 3615, 3614, 3613, 3612, 3611, 3610, 3609, 3608, 3607, 3606, 3605, 3604, 3603, 3602, 3601, 3600, 3599, 3598, 3597, 3596, 3595, 3594, 3593, 3592, 3591, 3590, 3589, 3588, 3587, 3586, 3585, 3584, 3583, 3582, 3581, 3580, 3579, 3578, 3577, 3576, 3575, 3574, 3573, 3572, 3571, 3570, 3569, 3568, 3567, 3566, 3565, 3564, 3563, 3562, 3561, 3560, 3559, 3558, 3557, 3556, 3555, 3554, 3553, 3552, 3551, 3550, 3549, 3548, 3547, 3546, 3545, 3544, 3543, 3542, 3541, 3540, 3539, 3538, 3537, 3536, 3535, 3534, 3533, 3532, 3531, 3530, 3529, 3528, 3527, 3526, 3525, 3524, 3523, 3522, 3521, 3520, 3519, 3518, 3517, 3516, 3515, 3514, 3513, 3512, 3511, 3510, 3509, 3508, 3507, 3506, 3505, 3504, 3503, 3502, 3501, 3500, 3499, 3498, 3497, 3496, 3495, 3494, 3493, 3492, 3491, 3490, 3489, 3488, 3487, 3486, 3485, 3484, 3483, 3482, 3481, 3480, 3479, 3478, 3477, 3476, 3475, 3474, 3473, 3472, 3471, 3470, 3469, 3468, 3467, 3466, 3465, 3464, 3463, 3462, 3461, 3460, 3459, 3458, 3457, 3456, 3455, 3454, 3453, 3452, 3451, 3450, 3449, 3448, 3447, 3446, 3445, 3444, 3443, 3442, 3441, 3440, 3439, 3438, 3437, 3436, 3435, 3434, 3433, 3432, 3431, 3430, 3429, 3428, 3427, 3426, 3425, 3424, 3423, 3422, 3421, 3420, 3419, 3418, 3417, 3416, 3415, 3414, 3413, 3412, 3411, 3410, 3409, 3408, 3407, 3406, 3405, 3404, 3403, 3402, 3401, 3400, 3399, 3398, 3397, 3396, 3395, 3394, 3393, 3392, 3391, 3390, 3389, 3388, 3387, 3386, 3385, 3384, 3383, 3382, 3381, 3380, 3379, 3378, 3377, 3376, 3375, 3374, 3373, 3372, 3371, 3370, 3369, 3368, 3367, 3366, 3365, 3364, 3363, 3362, 3361, 3360, 3359, 3358, 3357, 3356, 3355, 3354, 3353, 3352, 3351, 3350, 3349, 3348, 3347, 3346, 3345, 3344, 3343, 3342, 3341, 3340, 3339, 3338, 3337, 3336, 3335, 3334, 3333, 3332, 3331, 3330, 3329, 3328, 3327, 3326, 3325, 3324, 3323, 3322, 3321, 3320, 3319, 3318, 3317, 3316, 3315, 3314, 3313, 3312, 3311, 3310, 3309, 3308, 3307, 3306, 3305, 3304, 3303, 3302, 3301, 3300, 3299, 3298, 3297, 3296, 3295, 3294, 3293, 3292, 3291, 3290, 3289, 3288, 3287, 3286, 3285, 3284, 3283, 3282, 3281, 3280, 3279, 3278, 3277, 3276, 3275, 3274, 3273, 3272, 3271, 3270, 3269, 3268, 3267, 3266, 3265, 3264, 3263, 3262, 3261, 3260, 3259, 3258, 3257, 3256, 3255, 3254, 3253, 3252, 3251, 3250, 3249, 3248, 3247, 3246, 3245, 3244, 3243, 3242, 3241, 3240, 3239, 3238, 3237, 3236, 3235, 3234, 3233, 3232, 3231, 3230, 3229, 3228, 3227, 3226, 3225, 3224, 3223, 3222, 3221, 3220, 3219, 3218, 3217, 3216, 3215, 3214, 3213, 3212, 3211, 3210, 3209, 3208, 3207, 3206, 3205, 3204, 3203, 3202, 3201, 3200, 3199, 3198, 3197, 3196, 3195, 3194, 3193, 3192, 3191, 3190, 3189, 3188, 3187, 3186, 3185, 3184, 3183, 3182, 3181, 3180, 3179, 3178, 3177, 3176, 3175, 3174, 3173, 3172, 3171, 3170, 3169, 3168, 3167, 3166, 3165, 3164, 3163, 3162, 3161, 3160, 3159, 3158, 3157, 3156, 3155, 3154, 3153, 3152, 3151, 3150, 3149, 3148, 3147, 3146, 3145, 3144, 3143, 3142, 3141, 3140, 3139, 3138, 3137, 3136, 3135, 3134, 3133, 3132, 3131, 3130, 3129, 3128, 3127, 3126, 3125, 3124, 3123, 3122, 3121, 3120, 3119, 3118, 3117, 3116, 3115, 3114, 3113, 3112, 3111, 3110, 3109, 3108, 3107, 3106, 3105, 3104, 3103, 3102, 3101, 3100, 3099, 3098, 3097, 3096, 3095, 3094, 3093, 3092, 3091, 3090, 3089, 3088, 3087, 3086, 3085, 3084, 3083, 3082, 3081, 3080, 3079, 3078, 3077, 3076, 3075, 3074, 3073, 3072, 3071, 3070, 3069, 3068, 3067, 3066, 3065, 3064, 3063, 3062, 3061, 3060, 3059, 3058, 3057, 3056, 3055, 3054, 3053, 3052, 3051, 3050, 3049, 3048, 3047, 3046, 3045, 3044, 3043, 3042, 3041, 3040, 3039, 3038, 3037, 3036, 3035, 3034, 3033, 3032, 3031, 3030, 3029, 3028, 3027, 3026, 3025, 3024, 3023, 3022, 3021, 3020, 3019, 3018, 3017, 3016, 3015, 3014, 3013, 3012, 3011, 3010, 3009, 3008, 3007, 3006, 3005, 3004, 3003, 3002, 3001, 3000, 2999, 2998, 2997, 2996, 2995, 2994, 2993, 2992, 2991, 2990, 2989, 2988, 2987, 2986, 2985, 2984, 2983, 2982, 2981, 2980, 2979, 2978, 2977, 2976, 2975, 2974, 2973, 2972, 2971, 2970, 2969, 2968, 2967, 2966, 2965, 2964, 2963, 2962, 2961, 2960, 2959, 2958, 2957, 2956, 2955, 2954, 2953, 2952, 2951, 2950, 2949, 2948, 2947, 2946, 2945, 2944, 2943, 2942, 2941, 2940, 2939, 2938, 2937, 2936, 2935, 2934, 2933, 2932, 2931, 2930, 2929, 2928, 2927, 2926, 2925, 2924, 2923, 2922, 2921, 2920, 2919, 2918, 2917, 2916, 2915, 2914, 2913, 2912, 2911, 2910, 2909, 2908, 2907, 2906, 2905, 2904, 2903, 2902, 2901, 2900, 2899, 2898, 2897, 2896, 2895, 2894, 2893, 2892, 2891, 2890, 2889, 2888, 2887, 2886, 2885, 2884, 2883, 2882, 2881, 2880, 2879, 2878, 2877, 2876, 2875, 2874, 2873, 2872, 2871, 2870, 2869, 2868, 2867, 2866, 2865, 2864, 2863, 2862, 2861, 2860, 2859, 2858, 2857, 2856, 2855, 2854, 2853, 2852, 2851, 2850, 2849, 2848, 2847, 2846, 2845, 2844, 2843, 2842, 2841, 2840, 2839, 2838, 2837, 2836, 2835, 2834, 2833, 2832, 2831, 2830, 2829, 2828, 2827, 2826, 2825, 2824, 2823, 2822, 2821, 2820, 2819, 2818, 2817, 2816, 2815, 2814, 2813, 2812, 2811, 2810, 2809, 2808, 2807, 2806, 2805, 2804, 2803, 2802, 2801, 2800, 2799, 2798, 2797, 2796, 2795, 2794, 2793, 2792, 2791, 2790, 2789, 2788, 2787, 2786, 2785, 2784, 2783, 2782, 2781, 2780, 2779, 2778, 2777, 2776, 2775, 2774, 2773, 2772, 2771, 2770, 2769, 2768, 2767, 2766, 2765, 2764, 2763, 2762, 2761, 2760, 2759, 2758, 2757, 2756, 2755, 2754, 2753, 2752, 2751, 2750, 2749, 2748, 2747, 2746, 2745, 2744, 2743, 2742, 2741, 2740, 2739, 2738, 2737, 2736, 2735, 2734, 2733, 2732, 2731, 2730, 2729, 2728, 2727, 2726, 2725, 2724, 2723, 2722, 2721, 2720, 2719, 2718, 2717, 2716, 2715, 2714, 2713, 2712, 2711, 2710, 2709, 2708, 2707, 2706, 2705, 2704, 2703, 2702, 2701, 2700, 2699, 2698, 2697, 2696, 2695, 2694, 2693, 2692, 2691, 2690, 2689, 2688, 2687, 2686, 2685, 2684, 2683, 2682, 2681, 2680, 2679, 2678, 2677, 2676, 2675, 2674, 2673, 2672, 2671, 2670, 2669, 2668, 2667, 2666, 2665, 2664, 2663, 2662, 2661, 2660, 2659, 2658, 2657, 2656, 2655, 2654, 2653, 2652, 2651, 2650, 2649, 2648, 2647, 2646, 2645, 2644, 2643, 2642, 2641, 2640, 2639, 2638, 2637, 2636, 2635, 2634, 2633, 2632, 2631, 2630, 2629, 2628, 2627, 2626, 2625, 2624, 2623, 2622, 2621, 2620, 2619, 2618, 2617, 2616, 2615, 2614, 2613, 2612, 2611, 2610, 2609, 2608, 2607, 2606, 2605, 2604, 2603, 2602, 2601, 2600, 2599, 2598, 2597, 2596, 2595, 2594, 2593, 2592, 2591, 2590, 2589, 2588, 2587, 2586, 2585, 2584, 2583, 2582, 2581, 2580, 2579, 2578, 2577, 2576, 2575, 2574, 2573, 2572, 2571, 2570, 2569, 2568, 2567, 2566, 2565, 2564, 2563, 2562, 2561, 2560, 2559, 2558, 2557, 2556, 2555, 2554, 2553, 2552, 2551, 2550, 2549, 2548, 2547, 2546, 2545, 2544, 2543, 2542, 2541, 2540, 2539, 2538, 2537, 2536, 2535, 2534, 2533, 2532, 2531, 2530, 2529, 2528, 2527, 2526, 2525, 2524, 2523, 2522, 2521, 2520, 2519, 2518, 2517, 2516, 2515, 2514, 2513, 2512, 2511, 2510, 2509, 2508, 2507, 2506, 2505, 2504, 2503, 2502, 2501, 2500, 2499, 2498, 2497, 2496, 2495, 2494, 2493, 2492, 2491, 2490, 2489, 2488, 2487, 2486, 2485, 2484, 2483, 2482, 2481, 2480, 2479, 2478, 2477, 2476, 2475, 2474, 2473, 2472, 2471, 2470, 2469, 2468, 2467, 2466, 2465, 2464, 2463, 2462, 2461, 2460, 2459, 2458, 2457, 2456, 2455, 2454, 2453, 2452, 2451, 2450, 2449, 2448, 2447, 2446, 2445, 2444, 2443, 2442, 2441, 2440, 2439, 2438, 2437, 2436, 2435, 2434, 2433, 2432, 2431, 2430, 2429, 2428, 2427, 2426, 2425, 2424, 2423, 2422, 2421, 2420, 2419, 2418, 2417, 2416, 2415, 2414, 2413, 2412, 2411, 2410, 2409, 2408, 2407, 2406, 2405, 2404, 2403, 2402, 2401, 2400, 2399, 2398, 2397, 2396, 2395, 2394, 2393, 2392, 2391, 2390, 2389, 2388, 2387, 2386, 2385, 2384, 2383, 2382, 2381, 2380, 2379, 2378, 2377, 2376, 2375, 2374, 2373, 2372, 2371, 2370, 2369, 2368, 2367, 2366, 2365, 2364, 2363, 2362, 2361, 2360, 2359, 2358, 2357, 2356, 2355, 2354, 2353, 2352, 2351, 2350, 2349, 2348, 2347, 2346, 2345, 2344, 2343, 2342, 2341, 2340, 2339, 2338, 2337, 2336, 2335, 2334, 2333, 2332, 2331, 2330, 2329, 2328, 2327, 2326, 2325, 2324, 2323, 2322, 2321, 2320, 2319, 2318, 2317, 2316, 2315, 2314, 2313, 2312, 2311, 2310, 2309, 2308, 2307, 2306, 2305, 2304, 2303, 2302, 2301, 2300, 2299, 2298, 2297, 2296, 2295, 2294, 2293, 2292, 2291, 2290, 2289, 2288, 2287, 2286, 2285, 2284, 2283, 2282, 2281, 2280, 2279, 2278, 2277, 2276, 2275, 2274, 2273, 2272, 2271, 2270, 2269, 2268, 2267, 2266, 2265, 2264, 2263, 2262, 2261, 2260, 2259, 2258, 2257, 2256, 2255, 2254, 2253, 2252, 2251, 2250, 2249, 2248, 2247, 2246, 2245, 2244, 2243, 2242, 2241, 2240, 2239, 2238, 2237, 2236, 2235, 2234, 2233, 2232, 2231, 2230, 2229, 2228, 2227, 2226, 2225, 2224, 2223, 2222, 2221, 2220, 2219, 2218, 2217, 2216, 2215, 2214, 2213, 2212, 2211, 2210, 2209, 2208, 2207, 2206, 2205, 2204, 2203, 2202, 2201, 2200, 2199, 2198, 2197, 2196, 2195, 2194, 2193, 2192, 2191, 2190, 2189, 2188, 2187, 2186, 2185, 2184, 2183, 2182, 2181, 2180, 2179, 2178, 2177, 2176, 2175, 2174, 2173, 2172, 2171, 2170, 2169, 2168, 2167, 2166, 2165, 2164, 2163, 2162, 2161, 2160, 2159, 2158, 2157, 2156, 2155, 2154, 2153, 2152, 2151, 2150, 2149, 2148, 2147, 2146, 2145, 2144, 2143, 2142, 2141, 2140, 2139, 2138, 2137, 2136, 2135, 2134, 2133, 2132, 2131, 2130, 2129, 2128, 2127, 2126, 2125, 2124, 2123, 2122, 2121, 2120, 2119, 2118, 2117, 2116, 2115, 2114, 2113, 2112, 2111, 2110, 2109, 2108, 2107, 2106, 2105, 2104, 2103, 2102, 2101, 2100, 2099, 2098, 2097, 2096, 2095, 2094, 2093, 2092, 2091, 2090, 2089, 2088, 2087, 2086, 2085, 2084, 2083, 2082, 2081, 2080, 2079, 2078, 2077, 2076, 2075, 2074, 2073, 2072, 2071, 2070, 2069, 2068, 2067, 2066, 2065, 2064, 2063, 2062, 2061, 2060, 2059, 2058, 2057, 2056, 2055, 2054, 2053, 2052, 2051, 2050, 2049, 2048, 2047, 2046, 2045, 2044, 2043, 2042, 2041, 2040, 2039, 2038, 2037, 2036, 2035, 2034, 2033, 2032, 2031, 2030, 2029, 2028, 2027, 2026, 2025, 2024, 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990, 1989, 1988, 1987, 1986, 1985, 1984, 1983, 1982, 1981, 1980, 1979, 1978, 1977, 1976, 1975, 1974, 1973, 1972, 1971, 1970, 1969, 1968, 1967, 1966, 1965, 1964, 1963, 1962, 1961, 1960, 1959, 1958, 1957, 1956, 1955, 1954, 1953, 1952, 1951, 1950, 1949, 1948, 1947, 1946, 1945, 1944, 1943, 1942, 1941, 1940, 1939, 1938, 1937, 1936, 1935, 1934, 1933, 1932, 1931, 1930, 1929, 1928, 1927, 1926, 1925, 1924, 1923, 1922, 1921, 1920, 1919, 1918, 1917, 1916, 1915, 1914, 1913, 1912, 1911, 1910, 1909, 1908, 1907, 1906, 1905, 1904, 1903, 1902, 1901, 1900, 1899, 1898, 1897, 1896, 1895, 1894, 1893, 1892, 1891, 1890, 1889, 1888, 1887, 1886, 1885, 1884, 1883, 1882, 1881, 1880, 1879, 1878, 1877, 1876, 1875, 1874, 1873, 1872, 1871, 1870, 1869, 1868, 1867, 1866, 1865, 1864, 1863, 1862, 1861, 1860, 1859, 1858, 1857, 1856, 1855, 1854, 1853, 1852, 1851, 1850, 1849, 1848, 1847, 1846, 1845, 1844, 1843, 1842, 1841, 1840, 1839, 1838, 1837, 1836, 1835, 1834, 1833, 1832, 1831, 1830, 1829, 1828, 1827, 1826, 1825, 1824, 1823, 1822, 1821, 1820, 1819, 1818, 1817, 1816, 1815, 1814, 1813, 1812, 1811, 1810, 1809, 1808, 1807, 1806, 1805, 1804, 1803, 1802, 1801, 1800, 1799, 1798, 1797, 1796, 1795, 1794, 1793, 1792, 1791, 1790, 1789, 1788, 1787, 1786, 1785, 1784, 1783, 1782, 1781, 1780, 1779, 1778, 1777, 1776, 1775, 1774, 1773, 1772, 1771, 1770, 1769, 1768, 1767, 1766, 1765, 1764, 1763, 1762, 1761, 1760, 1759, 1758, 1757, 1756, 1755, 1754, 1753, 1752, 1751, 1750, 1749, 1748, 1747, 1746, 1745, 1744, 1743, 1742, 1741, 1740, 1739, 1738, 1737, 1736, 1735, 1734, 1733, 1732, 1731, 1730, 1729, 1728, 1727, 1726, 1725, 1724, 1723, 1722, 1721, 1720, 1719, 1718, 1717, 1716, 1715, 1714, 1713, 1712, 1711, 1710, 1709, 1708, 1707, 1706, 1705, 1704, 1703, 1702, 1701, 1700, 1699, 1698, 1697, 1696, 1695, 1694, 1693, 1692, 1691, 1690, 1689, 1688, 1687, 1686, 1685, 1684, 1683, 1682, 1681, 1680, 1679, 1678, 1677, 1676, 1675, 1674, 1673, 1672, 1671, 1670, 1669, 1668, 1667, 1666, 1665, 1664, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653, 1652, 1651, 1650, 1649, 1648, 1647, 1646, 1645, 1644, 1643, 1642, 1641, 1640, 1639, 1638, 1637, 1636, 1635, 1634, 1633, 1632, 1631, 1630, 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1619, 1618, 1617, 1616, 1615, 1614, 1613, 1612, 1611, 1610, 1609, 1608, 1607, 1606, 1605, 1604, 1603, 1602, 1601, 1600, 1599, 1598, 1597, 1596, 1595, 1594, 1593, 1592, 1591, 1590, 1589, 1588, 1587, 1586, 1585, 1584, 1583, 1582, 1581, 1580, 1579, 1578, 1577, 1576, 1575, 1574, 1573, 1572, 1571, 1570, 1569, 1568, 1567, 1566, 1565, 1564, 1563, 1562, 1561, 1560, 1559, 1558, 1557, 1556, 1555, 1554, 1553, 1552, 1551, 1550, 1549, 1548, 1547, 1546, 1545, 1544, 1543, 1542, 1541, 1540, 1539, 1538, 1537, 1536, 1535, 1534, 1533, 1532, 1531, 1530, 1529, 1528, 1527, 1526, 1525, 1524, 1523, 1522, 1521, 1520, 1519, 1518, 1517, 1516, 1515, 1514, 1513, 1512, 1511, 1510, 1509, 1508, 1507, 1506, 1505, 1504, 1503, 1502, 1501, 1500, 1499, 1498, 1497, 1496, 1495, 1494, 1493, 1492, 1491, 1490, 1489, 1488, 1487, 1486, 1485, 1484, 1483, 1482, 1481, 1480, 1479, 1478, 1477, 1476, 1475, 1474, 1473, 1472, 1471, 1470, 1469, 1468, 1467, 1466, 1465, 1464, 1463, 1462, 1461, 1460, 1459, 1458, 1457, 1456, 1455, 1454, 1453, 1452, 1451, 1450, 1449, 1448, 1447, 1446, 1445, 1444, 1443, 1442, 1441, 1440, 1439, 1438, 1437, 1436, 1435, 1434, 1433, 1432, 1431, 1430, 1429, 1428, 1427, 1426, 1425, 1424, 1423, 1422, 1421, 1420, 1419, 1418, 1417, 1416, 1415, 1414, 1413, 1412, 1411, 1410, 1409, 1408, 1407, 1406, 1405, 1404, 1403, 1402, 1401, 1400, 1399, 1398, 1397, 1396, 1395, 1394, 1393, 1392, 1391, 1390, 1389, 1388, 1387, 1386, 1385, 1384, 1383, 1382, 1381, 1380, 1379, 1378, 1377, 1376, 1375, 1374, 1373, 1372, 1371, 1370, 1369, 1368, 1367, 1366, 1365, 1364, 1363, 1362, 1361, 1360, 1359, 1358, 1357, 1356, 1355, 1354, 1353, 1352, 1351, 1350, 1349, 1348, 1347, 1346, 1345, 1344, 1343, 1342, 1341, 1340, 1339, 1338, 1337, 1336, 1335, 1334, 1333, 1332, 1331, 1330, 1329, 1328, 1327, 1326, 1325, 1324, 1323, 1322, 1321, 1320, 1319, 1318, 1317, 1316, 1315, 1314, 1313, 1312, 1311, 1310, 1309, 1308, 1307, 1306, 1305, 1304, 1303, 1302, 1301, 1300, 1299, 1298, 1297, 1296, 1295, 1294, 1293, 1292, 1291, 1290, 1289, 1288, 1287, 1286, 1285, 1284, 1283, 1282, 1281, 1280, 1279, 1278, 1277, 1276, 1275, 1274, 1273, 1272, 1271, 1270, 1269, 1268, 1267, 1266, 1265, 1264, 1263, 1262, 1261, 1260, 1259, 1258, 1257, 1256, 1255, 1254, 1253, 1252, 1251, 1250, 1249, 1248, 1247, 1246, 1245, 1244, 1243, 1242, 1241, 1240, 1239, 1238, 1237, 1236, 1235, 1234, 1233, 1232, 1231, 1230, 1229, 1228, 1227, 1226, 1225, 1224, 1223, 1222, 1221, 1220, 1219, 1218, 1217, 1216, 1215, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1207, 1206, 1205, 1204, 1203, 1202, 1201, 1200, 1199, 1198, 1197, 1196, 1195, 1194, 1193, 1192, 1191, 1190, 1189, 1188, 1187, 1186, 1185, 1184, 1183, 1182, 1181, 1180, 1179, 1178, 1177, 1176, 1175, 1174, 1173, 1172, 1171, 1170, 1169, 1168, 1167, 1166, 1165, 1164, 1163, 1162, 1161, 1160, 1159, 1158, 1157, 1156, 1155, 1154, 1153, 1152, 1151, 1150, 1149, 1148, 1147, 1146, 1145, 1144, 1143, 1142, 1141, 1140, 1139, 1138, 1137, 1136, 1135, 1134, 1133, 1132, 1131, 1130, 1129, 1128, 1127, 1126, 1125, 1124, 1123, 1122, 1121, 1120, 1119, 1118, 1117, 1116, 1115, 1114, 1113, 1112, 1111, 1110, 1109, 1108, 1107, 1106, 1105, 1104, 1103, 1102, 1101, 1100, 1099, 1098, 1097, 1096, 1095, 1094, 1093, 1092, 1091, 1090, 1089, 1088, 1087, 1086, 1085, 1084, 1083, 1082, 1081, 1080, 1079, 1078, 1077, 1076, 1075, 1074, 1073, 1072, 1071, 1070, 1069, 1068, 1067, 1066, 1065, 1064, 1063, 1062, 1061, 1060, 1059, 1058, 1057, 1056, 1055, 1054, 1053, 1052, 1051, 1050, 1049, 1048, 1047, 1046, 1045, 1044, 1043, 1042, 1041, 1040, 1039, 1038, 1037, 1036, 1035, 1034, 1033, 1032, 1031, 1030, 1029, 1028, 1027, 1026, 1025, 1024, 1023, 1022, 1021, 1020, 1019, 1018, 1017, 1016, 1015, 1014, 1013, 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1005, 1004, 1003, 1002, 1001, 1000, 999, 998, 997, 996, 995, 994, 993, 992, 991, 990, 989, 988, 987, 986, 985, 984, 983, 982, 981, 980, 979, 978, 977, 976, 975, 974, 973, 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960, 959, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945, 944, 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928, 927, 926, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911, 910, 909, 908, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894, 893, 892, 891, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 879, 878, 877, 876, 875, 874, 873, 872, 871, 870, 869, 868, 867, 866, 865, 864, 863, 862, 861, 860, 859, 858, 857, 856, 855, 854, 853, 852, 851, 850, 849, 848, 847, 846, 845, 844, 843, 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, 824, 823, 822, 821, 820, 819, 818, 817, 816, 815, 814, 813, 812, 811, 810, 809, 808, 807, 806, 805, 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999998, 99.99999998, 99.99999998, 99.99999997, 99.99999997, 99.99999997, 99.99999996, 99.99999996, 99.99999995, 99.99999994, 99.99999993, 99.99999992, 99.99999991, 99.9999999, 99.99999988, 99.99999987, 99.99999985, 99.99999982, 99.9999998, 99.99999977, 99.99999974, 99.9999997, 99.99999965, 99.9999996, 99.99999955, 99.99999948, 99.99999941, 99.99999933, 99.99999923, 99.99999912, 99.999999, 99.99999886, 99.9999987, 99.99999852, 99.99999832, 99.99999808, 99.99999782, 99.99999752, 99.99999719, 99.9999968, 99.99999637, 99.99999588, 99.99999533, 99.9999947, 99.99999399, 99.99999319, 99.99999229, 99.99999127, 99.99999012, 99.99998883, 99.99998737, 99.99998572, 99.99998387, 99.99998178, 99.99997944, 99.9999768, 99.99997384, 99.9999705, 99.99996676, 99.99996256, 99.99995784, 99.99995255, 99.99994662, 99.99993997, 99.99993252, 99.99992418, 99.99991485, 99.9999044, 99.99989272, 99.99987967, 99.99986507, 99.99984878, 99.99983058, 99.99981028, 99.99978763, 99.99976238, 99.99973423, 99.99970287, 99.99966796, 99.99962909, 99.99958585, 99.99953777, 99.99948431, 99.99942491, 99.99935894, 99.9992857, 99.99920442, 99.99911426, 99.9990143, 99.99890352, 99.99878079, 99.99864489, 99.99849447, 99.99832806, 99.99814402, 99.99794058, 99.9977158, 99.99746754, 99.99719347, 99.99689104, 99.99655745, 99.99618965, 99.99578432, 99.99533782, 99.99484618, 99.99430507, 99.99370977, 99.99305514, 99.99233557, 99.99154499, 99.99067674, 99.98972362, 99.98867778, 99.98753072, 99.98627317, 99.98489511, 99.98338563, 99.98173293, 99.97992422, 99.97794564, 99.97578217, 99.97341759, 99.97083432, 99.9680134, 99.9649343, 99.96157489, 99.95791127, 99.95391764, 99.94956623, 99.94482706, 99.93966789, 99.934054, 99.92794802, 99.9213098, 99.91409617, 99.90626078, 99.89775386, 99.88852204, 99.87850806, 99.86765061, 99.85588398, 99.84313789, 99.82933713, 99.8144013, 99.79824453, 99.78077513, 99.76189525, 99.74150057, 99.71947993, 99.69571496, 99.6700797, 99.64244019, 99.6126541, 99.5805703, 99.54602841, 99.50885843, 99.46888022, 99.42590312, 99.37972547, 99.33013416, 99.2769042, 99.21979821, 99.15856606, 99.09294436, 99.02265609, 98.94741016, 98.86690103, 98.78080835, 98.68879662, 98.59051493, 98.48559665, 98.37365925, 98.25430416, 98.12711667, 97.99166591, 97.84750493, 97.69417083, 97.53118502, 97.35805356, 97.17426765, 96.97930422, 96.77262666, 96.55368568, 96.32192038, 96.07675942, 95.81762241, 95.54392144, 95.25506283, 94.95044909, 94.62948101, 94.29156007, 93.93609088, 93.56248403, 93.17015896, 92.75854714, 92.32709538, 91.87526933, 91.40255713, 90.90847319, 90.39256214, 89.85440277, 89.29361213, 88.70984962, 88.10282101, 87.47228252, 86.81804471, 86.13997628, 85.43800767, 84.71213442, 83.96242024, 83.18899977, 82.39208091, 81.57194679, 80.72895721, 79.86354958, 78.97623935, 78.06761984, 77.13836149, 76.18921048, 75.22098678, 74.23458156, 73.23095399, 72.21112752, 71.17618555, 70.12726664, 69.06555916, 67.99229567, 66.90874683, 65.81621506, 64.71602796, 63.60953161, 62.49808374, 61.38304696, 60.26578197, 59.14764095, 58.02996119, 56.91405887, 55.80122323, 54.69271113, 53.58974193, 52.49349287, 51.40509493, 50.32562913, 49.25612336, 48.19754974, 47.15082244, 46.11679603, 45.09626433, 44.08995966, 43.0985526, 42.12265215, 41.16280627, 40.21950277, 39.29317051, 38.38418093, 37.49284981, 36.61943919, 35.7641596, 34.92717231, 34.10859176, 33.3084881, 32.52688975, 31.76378598, 31.01912961, 30.29283953, 29.58480336, 28.89487997, 28.22290194, 27.56867801, 26.9319954, 26.31262203, 25.71030871, 25.12479117, 24.55579198, 24.00302242, 23.46618418, 22.94497102, 22.43907022, 21.94816406, 21.47193108, 21.01004729, 20.56218731, 20.12802533, 19.70723611, 19.29949577, 18.90448256, 18.52187757, 18.15136532, 17.79263433, 17.44537758, 17.10929296, 16.78408362, 16.46945831, 16.16513165, 15.87082434, 15.58626339, 15.31118224, 15.0453209, 14.78842606, 14.5402511, 14.30055621, 14.06910833, 13.8456812, 13.63005534, 13.42201799, 13.22136308, 13.02789117, 12.84140938, 12.66173131, 12.48867697, 12.32207264, 12.16175083, 12.00755015, 11.85931521, 11.7168965, 11.58015031, 11.44893857, 11.32312881, 11.20259399, 11.08721241, 10.97686761, 10.87144826, 10.77084804, 10.67496556, 10.58370423, 10.49697221, 10.41468227, 10.33675171, 10.26310228, 10.19366011, 10.12835559, 10.06712334, 10.00990209, 9.95663464, 9.90726779, 9.86175228, 9.82004273, 9.78209758, 9.74787905, 9.71735309, 9.69048936, 9.66726115, 9.64764539, 9.63162261, 9.6191769, 9.61029592, 9.60497085, 9.60497085, 9.61029592, 9.6191769, 9.63162261, 9.64764539, 9.66726115, 9.69048936, 9.71735309, 9.74787905, 9.78209758, 9.82004273, 9.86175228, 9.90726779, 9.95663464, 10.00990209, 10.06712334, 10.12835559, 10.19366011, 10.26310228, 10.33675171, 10.41468227, 10.49697221, 10.58370423, 10.67496556, 10.77084804, 10.87144826, 10.97686761, 11.08721241, 11.20259399, 11.32312881, 11.44893857, 11.58015031, 11.7168965, 11.85931521, 12.00755015, 12.16175083, 12.32207264, 12.48867697, 12.66173131, 12.84140938, 13.02789117, 13.22136308, 13.42201799, 13.63005534, 13.8456812, 14.06910833, 14.30055621, 14.5402511, 14.78842606, 15.0453209, 15.31118224, 15.58626339, 15.87082434, 16.16513165, 16.46945831, 16.78408362, 17.10929296, 17.44537758, 17.79263433, 18.15136532, 18.52187757, 18.90448256, 19.29949577, 19.70723611, 20.12802533, 20.56218731, 21.01004729, 21.47193108, 21.94816406, 22.43907022, 22.94497102, 23.46618418, 24.00302242, 24.55579198, 25.12479117, 25.71030871, 26.31262203, 26.9319954, 27.56867801, 28.22290194, 28.89487997, 29.58480336, 30.29283953, 31.01912961, 31.76378598, 32.52688975, 33.3084881, 34.10859176, 34.92717231, 35.7641596, 36.61943919, 37.49284981, 38.38418093, 39.29317051, 40.21950277, 41.16280627, 42.12265215, 43.0985526, 44.08995966, 45.09626433, 46.11679603, 47.15082244, 48.19754974, 49.25612336, 50.32562913, 51.40509493, 52.49349287, 53.58974193, 54.69271113, 55.80122323, 56.91405887, 58.02996119, 59.14764095, 60.26578197, 61.38304696, 62.49808374, 63.60953161, 64.71602796, 65.81621506, 66.90874683, 67.99229567, 69.06555916, 70.12726664, 71.17618555, 72.21112752, 73.23095399, 74.23458156, 75.22098678, 76.18921048, 77.13836149, 78.06761984, 78.97623935, 79.86354958, 80.72895721, 81.57194679, 82.39208091, 83.18899977, 83.96242024, 84.71213442, 85.43800767, 86.13997628, 86.81804471, 87.47228252, 88.10282101, 88.70984962, 89.29361213, 89.85440277, 90.39256214, 90.90847319, 91.40255713, 91.87526933, 92.32709538, 92.75854714, 93.17015896, 93.56248403, 93.93609088, 94.29156007, 94.62948101, 94.95044909, 95.25506283, 95.54392144, 95.81762241, 96.07675942, 96.32192038, 96.55368568, 96.77262666, 96.97930422, 97.17426765, 97.35805356, 97.53118502, 97.69417083, 97.84750493, 97.99166591, 98.12711667, 98.25430416, 98.37365925, 98.48559665, 98.59051493, 98.68879662, 98.78080835, 98.86690103, 98.94741016, 99.02265609, 99.09294436, 99.15856606, 99.21979821, 99.2769042, 99.33013416, 99.37972547, 99.42590312, 99.46888022, 99.50885843, 99.54602841, 99.5805703, 99.6126541, 99.64244019, 99.6700797, 99.69571496, 99.71947993, 99.74150057, 99.76189525, 99.78077513, 99.79824453, 99.8144013, 99.82933713, 99.84313789, 99.85588398, 99.86765061, 99.87850806, 99.88852204, 99.89775386, 99.90626078, 99.91409617, 99.9213098, 99.92794802, 99.934054, 99.93966789, 99.94482706, 99.94956623, 99.95391764, 99.95791127, 99.96157489, 99.9649343, 99.9680134, 99.97083432, 99.97341759, 99.97578217, 99.97794564, 99.97992422, 99.98173293, 99.98338563, 99.98489511, 99.98627317, 99.98753072, 99.98867778, 99.98972362, 99.99067674, 99.99154499, 99.99233557, 99.99305514, 99.99370977, 99.99430507, 99.99484618, 99.99533782, 99.99578432, 99.99618965, 99.99655745, 99.99689104, 99.99719347, 99.99746754, 99.9977158, 99.99794058, 99.99814402, 99.99832806, 99.99849447, 99.99864489, 99.99878079, 99.99890352, 99.9990143, 99.99911426, 99.99920442, 99.9992857, 99.99935894, 99.99942491, 99.99948431, 99.99953777, 99.99958585, 99.99962909, 99.99966796, 99.99970287, 99.99973423, 99.99976238, 99.99978763, 99.99981028, 99.99983058, 99.99984878, 99.99986507, 99.99987967, 99.99989272, 99.9999044, 99.99991485, 99.99992418, 99.99993252, 99.99993997, 99.99994662, 99.99995255, 99.99995784, 99.99996256, 99.99996676, 99.9999705, 99.99997384, 99.9999768, 99.99997944, 99.99998178, 99.99998387, 99.99998572, 99.99998737, 99.99998883, 99.99999012, 99.99999127, 99.99999229, 99.99999319, 99.99999399, 99.9999947, 99.99999533, 99.99999588, 99.99999637, 99.9999968, 99.99999719, 99.99999752, 99.99999782, 99.99999808, 99.99999832, 99.99999852, 99.9999987, 99.99999886, 99.999999, 99.99999912, 99.99999923, 99.99999933, 99.99999941, 99.99999948, 99.99999955, 99.9999996, 99.99999965, 99.9999997, 99.99999974, 99.99999977, 99.9999998, 99.99999982, 99.99999985, 99.99999987, 99.99999988, 99.9999999, 99.99999991, 99.99999992, 99.99999993, 99.99999994, 99.99999995, 99.99999996, 99.99999996, 99.99999997, 99.99999997, 99.99999997, 99.99999998, 99.99999998, 99.99999998, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999991, 99.99999991, 99.99999991, 99.9999999, 99.9999999, 99.9999999, 99.9999999, 99.99999989, 99.99999989, 99.99999989, 99.99999988, 99.99999988, 99.99999987, 99.99999987, 99.99999987, 99.99999986, 99.99999986, 99.99999985, 99.99999985, 99.99999984, 99.99999984, 99.99999983, 99.99999983, 99.99999982, 99.99999982, 99.99999981, 99.99999981, 99.9999998, 99.9999998, 99.99999979, 99.99999978, 99.99999978, 99.99999977, 99.99999976, 99.99999976, 99.99999975, 99.99999974, 99.99999973, 99.99999973, 99.99999972, 99.99999971, 99.9999997, 99.99999969, 99.99999968, 99.99999967, 99.99999966, 99.99999965, 99.99999964, 99.99999963, 99.99999962, 99.99999961, 99.9999996, 99.99999958, 99.99999957, 99.99999956, 99.99999955, 99.99999953, 99.99999952, 99.9999995, 99.99999949, 99.99999947, 99.99999946, 99.99999944, 99.99999942, 99.99999941, 99.99999939, 99.99999937, 99.99999935, 99.99999933, 99.99999931, 99.99999929, 99.99999927, 99.99999925, 99.99999923, 99.99999921, 99.99999918, 99.99999916, 99.99999914, 99.99999911, 99.99999908, 99.99999906, 99.99999903, 99.999999, 99.99999897, 99.99999894, 99.99999891, 99.99999888, 99.99999885, 99.99999881, 99.99999878, 99.99999874, 99.99999871, 99.99999867, 99.99999863, 99.99999859, 99.99999855, 99.99999851, 99.99999847, 99.99999842, 99.99999838, 99.99999833, 99.99999828, 99.99999823, 99.99999818, 99.99999813, 99.99999808, 99.99999802, 99.99999796, 99.99999791, 99.99999785, 99.99999778, 99.99999772, 99.99999766, 99.99999759, 99.99999752, 99.99999745, 99.99999738, 99.9999973, 99.99999723, 99.99999715, 99.99999707, 99.99999699, 99.9999969, 99.99999681, 99.99999672, 99.99999663, 99.99999654, 99.99999644, 99.99999634, 99.99999624, 99.99999613, 99.99999602, 99.99999591, 99.9999958, 99.99999568, 99.99999556, 99.99999543, 99.99999531, 99.99999518, 99.99999504, 99.9999949, 99.99999476, 99.99999462, 99.99999447, 99.99999431, 99.99999416, 99.99999399, 99.99999383, 99.99999366, 99.99999348, 99.9999933, 99.99999312, 99.99999293, 99.99999273, 99.99999253, 99.99999233, 99.99999212, 99.9999919, 99.99999168, 99.99999145, 99.99999122, 99.99999098, 99.99999073, 99.99999048, 99.99999022, 99.99998996, 99.99998968, 99.9999894, 99.99998912, 99.99998882, 99.99998852, 99.99998821, 99.99998789, 99.99998756, 99.99998722, 99.99998688, 99.99998653, 99.99998616, 99.99998579, 99.99998541, 99.99998502, 99.99998462, 99.9999842, 99.99998378, 99.99998335, 99.9999829, 99.99998245, 99.99998198, 99.9999815, 99.999981, 99.9999805, 99.99997998, 99.99997945, 99.9999789, 99.99997834, 99.99997777, 99.99997718, 99.99997658, 99.99997596, 99.99997533, 99.99997467, 99.99997401, 99.99997332, 99.99997262, 99.9999719, 99.99997117, 99.99997041, 99.99996963, 99.99996884, 99.99996802, 99.99996719, 99.99996633, 99.99996546, 99.99996456, 99.99996363, 99.99996269, 99.99996172, 99.99996072, 99.99995971, 99.99995866, 99.99995759, 99.99995649, 99.99995537, 99.99995422, 99.99995304, 99.99995183, 99.99995059, 99.99994932, 99.99994802, 99.99994668, 99.99994531, 99.99994391, 99.99994248, 99.99994101, 99.9999395, 99.99993796, 99.99993637, 99.99993475, 99.99993309, 99.99993139, 99.99992965, 99.99992786, 99.99992604, 99.99992416, 99.99992224, 99.99992028, 99.99991826, 99.9999162, 99.99991409, 99.99991193, 99.99990971, 99.99990744, 99.99990512, 99.99990274, 99.9999003, 99.9998978, 99.99989525, 99.99989263, 99.99988995, 99.9998872, 99.99988439, 99.99988151, 99.99987857, 99.99987555, 99.99987246, 99.9998693, 99.99986606, 99.99986275, 99.99985935, 99.99985588, 99.99985232, 99.99984868, 99.99984496, 99.99984114, 99.99983724, 99.99983324, 99.99982915, 99.99982496, 99.99982068, 99.99981629, 99.9998118, 99.99980721, 99.9998025, 99.99979769, 99.99979277, 99.99978773, 99.99978257, 99.9997773, 99.9997719, 99.99976638, 99.99976072, 99.99975494, 99.99974902, 99.99974297, 99.99973677, 99.99973044, 99.99972396, 99.99971732, 99.99971054, 99.9997036, 99.9996965, 99.99968924, 99.99968181, 99.99967421, 99.99966644, 99.99965849, 99.99965036, 99.99964204, 99.99963353, 99.99962484, 99.99961594, 99.99960684, 99.99959754, 99.99958803, 99.9995783, 99.99956835, 99.99955818, 99.99954777, 99.99953714, 99.99952626, 99.99951514, 99.99950378, 99.99949215, 99.99948027, 99.99946812, 99.9994557, 99.999443, 99.99943003, 99.99941676, 99.99940319, 99.99938933, 99.99937516, 99.99936068, 99.99934587, 99.99933074, 99.99931527, 99.99929946, 99.99928331, 99.9992668, 99.99924992, 99.99923268, 99.99921506, 99.99919705, 99.99917865, 99.99915985, 99.99914064, 99.999121, 99.99910094, 99.99908045, 99.99905951, 99.99903811, 99.99901626, 99.99899393, 99.99897111, 99.99894781, 99.998924, 99.99889968, 99.99887483, 99.99884945, 99.99882353, 99.99879705, 99.99877, 99.99874238, 99.99871416, 99.99868535, 99.99865591, 99.99862586, 99.99859516, 99.99856381, 99.9985318, 99.9984991, 99.99846572, 99.99843163, 99.99839682, 99.99836128, 99.99832499, 99.99828793, 99.9982501, 99.99821147, 99.99817203, 99.99813177, 99.99809067, 99.9980487, 99.99800587, 99.99796213, 99.99791749, 99.99787193, 99.99782541, 99.99777793, 99.99772947, 99.99768001, 99.99762952, 99.99757799, 99.9975254, 99.99747173, 99.99741696, 99.99736106, 99.99730401, 99.9972458, 99.99718639, 99.99712577, 99.99706392, 99.9970008, 99.9969364, 99.99687069, 99.99680365, 99.99673525, 99.99666546, 99.99659426, 99.99652162, 99.99644752, 99.99637192, 99.9962948, 99.99621613, 99.99613589, 99.99605403, 99.99597053, 99.99588537, 99.9957985, 99.9957099, 99.99561954, 99.99552738, 99.99543338, 99.99533752, 99.99523976, 99.99514007, 99.9950384, 99.99493473, 99.99482901, 99.99472121, 99.99461129, 99.99449921, 99.99438493, 99.99426842, 99.99414962, 99.9940285, 99.99390502, 99.99377913, 99.99365079, 99.99351995, 99.99338658, 99.99325061, 99.99311202, 99.99297075, 99.99282674, 99.99267996, 99.99253035, 99.99237787, 99.99222245, 99.99206405, 99.99190262, 99.9917381, 99.99157043, 99.99139957, 99.99122545, 99.99104801, 99.9908672, 99.99068296, 99.99049523, 99.99030394, 99.99010903, 99.98991045, 99.98970812, 99.98950198, 99.98929196, 99.98907801, 99.98886003, 99.98863798, 99.98841177, 99.98818134, 99.98794661, 99.98770751, 99.98746396, 99.98721589, 99.98696322, 99.98670586, 99.98644375, 99.98617679, 99.98590491, 99.98562802, 99.98534603, 99.98505887, 99.98476644, 99.98446865, 99.98416541, 99.98385664, 99.98354223, 99.98322209, 99.98289613, 99.98256425, 99.98222635, 99.98188233, 99.98153208, 99.98117551, 99.98081251, 99.98044296, 99.98006678, 99.97968383, 99.97929402, 99.97889723, 99.97849334, 99.97808223, 99.9776638, 99.97723792, 99.97680446, 99.97636331, 99.97591433, 99.97545741, 99.97499241, 99.9745192, 99.97403765, 99.97354763, 99.97304899, 99.9725416, 99.97202533, 99.97150001, 99.97096552, 99.97042171, 99.96986842, 99.96930551, 99.96873282, 99.96815019, 99.96755748, 99.96695452, 99.96634115, 99.96571721, 99.96508252, 99.96443693, 99.96378025, 99.96311232, 99.96243297, 99.96174201, 99.96103926, 99.96032454, 99.95959766, 99.95885844, 99.95810669, 99.95734222, 99.95656482, 99.9557743, 99.95497045, 99.95415309, 99.95332199, 99.95247695, 99.95161776, 99.9507442, 99.94985606, 99.94895311, 99.94803513, 99.9471019, 99.94615319, 99.94518876, 99.94420838, 99.9432118, 99.9421988, 99.94116912, 99.94012252, 99.93905875, 99.93797755, 99.93687866, 99.93576183, 99.93462678, 99.93347326, 99.93230099, 99.9311097, 99.92989912, 99.92866895, 99.92741891, 99.92614873, 99.9248581, 99.92354673, 99.92221432, 99.92086057, 99.91948518, 99.91808782, 99.9166682, 99.91522598, 99.91376086, 99.9122725, 99.91076058, 99.90922476, 99.9076647, 99.90608006, 99.90447051, 99.90283568, 99.90117522, 99.89948879, 99.897776, 99.89603651, 99.89426993, 99.8924759, 99.89065403, 99.88880393, 99.88692523, 99.88501753, 99.88308043, 99.88111354, 99.87911643, 99.87708871, 99.87502995, 99.87293975, 99.87081766, 99.86866327, 99.86647613, 99.86425582, 99.86200188, 99.85971386, 99.85739131, 99.85503378, 99.8526408, 99.85021189, 99.84774659, 99.84524441, 99.84270487, 99.84012749, 99.83751176, 99.83485718, 99.83216326, 99.82942947, 99.82665531, 99.82384024, 99.82098375, 99.8180853, 99.81514435, 99.81216036, 99.80913277, 99.80606104, 99.8029446, 99.79978289, 99.79657533, 99.79332135, 99.79002036, 99.78667177, 99.78327498, 99.77982941, 99.77633442, 99.77278943, 99.76919379, 99.7655469, 99.76184811, 99.75809679, 99.7542923, 99.75043399, 99.74652119, 99.74255325, 99.7385295, 99.73444926, 99.73031185, 99.72611659, 99.72186278, 99.71754972, 99.7131767, 99.70874301, 99.70424792, 99.69969073, 99.69507068, 99.69038704, 99.68563907, 99.68082601, 99.6759471, 99.67100158, 99.66598867, 99.6609076, 99.65575758, 99.65053781, 99.64524749, 99.63988583, 99.634452, 99.62894519, 99.62336457, 99.6177093, 99.61197855, 99.60617146, 99.60028719, 99.59432487, 99.58828363, 99.5821626, 99.57596089, 99.56967763, 99.5633119, 99.55686281, 99.55032944, 99.54371089, 99.53700622, 99.53021451, 99.52333481, 99.51636619, 99.50930768, 99.50215834, 99.49491718, 99.48758325, 99.48015556, 99.47263312, 99.46501494, 99.45730001, 99.44948734, 99.4415759, 99.43356467, 99.42545262, 99.41723871, 99.40892191, 99.40050116, 99.39197541, 99.38334359, 99.37460462, 99.36575744, 99.35680096, 99.34773408, 99.33855571, 99.32926474, 99.31986006, 99.31034056, 99.3007051, 99.29095256, 99.28108179, 99.27109165, 99.26098099, 99.25074866, 99.24039347, 99.22991427, 99.21930988, 99.20857911, 99.19772077, 99.18673366, 99.17561659, 99.16436833, 99.15298768, 99.14147342, 99.12982431, 99.11803912, 99.10611661, 99.09405555, 99.08185466, 99.06951271, 99.05702841, 99.04440052, 99.03162775, 99.01870881, 99.00564244, 98.99242733, 98.97906219, 98.96554572, 98.95187661, 98.93805355, 98.92407523, 98.90994032, 98.8956475, 98.88119543, 98.86658279, 98.85180823, 98.8368704, 98.82176796, 98.80649955, 98.79106383, 98.77545942, 98.75968495, 98.74373907, 98.7276204, 98.71132756, 98.69485918, 98.67821386, 98.66139022, 98.64438687, 98.62720243, 98.60983548, 98.59228464, 98.5745485, 98.55662566, 98.53851471, 98.52021425, 98.50172286, 98.48303912, 98.46416163, 98.44508897, 98.42581972, 98.40635246, 98.38668576, 98.36681822, 98.3467484, 98.32647488, 98.30599623, 98.28531104, 98.26441787, 98.2433153, 98.2220019, 98.20047625, 98.17873692, 98.15678249, 98.13461153, 98.11222263, 98.08961435, 98.06678527, 98.04373399, 98.02045907, 97.9969591, 97.97323267, 97.94927836, 97.92509476, 97.90068048, 97.87603409, 97.8511542, 97.8260394, 97.80068831, 97.77509953, 97.74927168, 97.72320336, 97.69689319, 97.6703398, 97.64354183, 97.61649789, 97.58920663, 97.56166669, 97.53387672, 97.50583537, 97.47754131, 97.4489932, 97.4201897, 97.39112951, 97.3618113, 97.33223378, 97.30239562, 97.27229556, 97.24193229, 97.21130454, 97.18041105, 97.14925055, 97.11782179, 97.08612353, 97.05415453, 97.02191357, 96.98939943, 96.95661091, 96.92354681, 96.89020595, 96.85658715, 96.82268925, 96.7885111, 96.75405156, 96.7193095, 96.68428379, 96.64897335, 96.61337706, 96.57749385, 96.54132266, 96.50486243, 96.46811212, 96.4310707, 96.39373716, 96.35611049, 96.31818972, 96.27997387, 96.24146199, 96.20265314, 96.16354639, 96.12414084, 96.08443559, 96.04442976, 96.0041225, 95.96351295, 95.9226003, 95.88138373, 95.83986246, 95.7980357, 95.7559027, 95.71346273, 95.67071505, 95.62765898, 95.58429383, 95.54061894, 95.49663366, 95.45233738, 95.40772948, 95.36280938, 95.31757652, 95.27203036, 95.22617038, 95.17999608, 95.13350697, 95.0867026, 95.03958254, 94.99214637, 94.9443937, 94.89632417, 94.84793742, 94.79923313, 94.75021101, 94.70087078, 94.65121219, 94.601235, 94.55093901, 94.50032405, 94.44938996, 94.3981366, 94.34656387, 94.29467169, 94.24246, 94.18992878, 94.13707801, 94.08390772, 94.03041795, 93.97660879, 93.92248032, 93.86803267, 93.813266, 93.75818049, 93.70277634, 93.64705378, 93.59101309, 93.53465454, 93.47797845, 93.42098516, 93.36367506, 93.30604853, 93.24810601, 93.18984795, 93.13127483, 93.07238718, 93.01318553, 92.95367045, 92.89384254, 92.83370243, 92.77325078, 92.71248828, 92.65141563, 92.59003359, 92.52834294, 92.46634446, 92.40403901, 92.34142743, 92.27851063, 92.21528953, 92.15176507, 92.08793825, 92.02381006, 91.95938157, 91.89465383, 91.82962795, 91.76430506, 91.69868632, 91.63277292, 91.56656609, 91.50006708, 91.43327716, 91.36619766, 91.2988299, 91.23117527, 91.16323516, 91.09501101, 91.02650428, 90.95771645, 90.88864904, 90.81930362, 90.74968175, 90.67978506, 90.60961516, 90.53917374, 90.4684625, 90.39748315, 90.32623746, 90.25472721, 90.18295421, 90.11092031, 90.03862739, 89.96607733, 89.89327207, 89.82021357, 89.74690381, 89.67334481, 89.5995386, 89.52548727, 89.4511929, 89.37665761, 89.30188358, 89.22687296, 89.15162797, 89.07615085, 89.00044384, 88.92450924, 88.84834937, 88.77196655, 88.69536316, 88.61854159, 88.54150424, 88.46425357, 88.38679203, 88.30912213, 88.23124636, 88.15316728, 88.07488745, 87.99640945, 87.9177359, 87.83886943, 87.75981269, 87.68056837, 87.60113917, 87.52152781, 87.44173704, 87.36176962, 87.28162835, 87.20131603, 87.12083549, 87.04018959, 86.95938119, 86.87841318, 86.79728846, 86.71600997, 86.63458065, 86.55300346, 86.47128138, 86.3894174, 86.30741453, 86.22527581, 86.14300427, 86.06060298, 85.97807499, 85.8954234, 85.81265131, 85.72976181, 85.64675803, 85.5636431, 85.48042015, 85.39709233, 85.3136628, 85.23013472, 85.14651125, 85.06279555, 84.97899081, 84.8951002, 84.81112688, 84.72707403, 84.64294481, 84.55874239, 84.47446992, 84.39013055, 84.3057274, 84.22126359, 84.13674223, 84.05216638, 83.96753912, 83.88286345, 83.79814239, 83.71337889, 83.62857588, 83.54373624, 83.45886278, 83.37395829, 83.28902548, 83.20406699, 83.1190854, 83.03408319, 82.94906275, 82.86402639, 82.77897629, 82.69391452, 82.60884302, 82.52376358, 82.43867784, 82.35358727, 82.26849314, 82.18339655, 82.09829834, 82.01319914, 81.92809931, 81.84299893, 81.75789778, 81.6727953, 81.58769059, 81.50258233, 81.41746883, 81.33234789, 81.24721688, 81.1620726, 81.07691131, 80.99172864, 80.90651957, 80.82127837, 80.73599854, 80.65067276, 80.56529284, 80.47984963, 80.39433296, 80.3087316, 80.2230331, 80.13722381, 80.05128869, 79.96521131, 79.87897369, 79.79255619, 79.70593744, 79.61909421, 79.53200125, 79.44463121, 79.35695447, 79.268939, 79.18055021, 79.09175078, 79.00250052, 78.91275614, 78.82247113, 78.73159551, 78.64007564, 78.54785405, 78.45486916, 78.36105507, 78.26634136, 78.17065279, 78.07390907, 77.97602459, 77.87690815, 77.7764627, 77.67458501, 77.57116541, 77.46608749, 77.35922778, 77.25045545, 77.139632, 77.02661095, 76.91123751, 76.7933483, 76.67277101, 76.54932411, 76.42281658, 76.29304759, 76.15980623, 76.02287131, 75.88201106, 75.73698295, 75.58753355, 75.43339829, 75.27430146, 75.10995604, 74.94006375, 74.76431507, 74.58238931, 74.3939548, 74.19866908, 73.99617928, 73.78612244, 73.56812604, 73.34180861, 73.10678036, 72.86264407, 72.60899593, 72.34542667, 72.0715227, 71.78686743, 71.49104275, 71.18363059, 70.86421472, 70.53238257, 70.18772728, 69.82984989, 69.4583616, 69.07288622, 68.6730627, 68.25854775, 67.82901861, 67.38417585, 66.92374619, 66.44748543, 65.95518132, 65.44665643, 64.92177099, 64.3804256, 63.82256385, 63.2481748, 62.65729526, 62.05001184, 61.42646279, 60.78683947, 60.13138758, 59.46040801, 58.7742573, 58.07334771, 57.35814691, 56.62917716, 55.88701412, 55.13228522, 54.36566756, 53.58788541, 52.79970727, 52.00194262, 51.19543823, 50.3810742, 49.55975973, 48.7324286, 47.9000345, 47.06354624, 46.2239428, 45.38220846, 44.5393278, 43.69628091, 42.85403863, 42.01355801, 41.17577788, 40.34161484, 39.51195932, 38.68767214, 37.86958126, 37.05847897, 36.25511938, 35.46021636, 34.67444175, 33.89842403, 33.13274729, 32.37795057, 31.63452756, 30.90292659, 30.18355087, 29.47675913, 28.78286638, 28.10214493, 27.43482566, 26.78109941, 26.14111853, 25.51499854, 24.90281989, 24.30462986, 23.72044439, 23.15025006, 22.59400602, 22.05164594, 21.52307994, 21.00819652, 20.50686439, 20.01893431, 19.54424086, 19.08260408, 18.63383116, 18.19771794, 17.77405042, 17.3626061, 16.96315536, 16.57546263, 16.19928757, 15.83438613, 15.48051154, 15.13741526, 14.80484776, 14.48255934, 14.17030085, 13.86782425, 13.57488329, 13.29123395, 13.01663496, 12.75084816, 12.49363894, 12.24477648, 12.00403408, 11.7711894, 11.54602463, 11.3283267, 11.1178874, 10.91450349, 10.71797682, 10.52811436, 10.34472824, 10.16763582, 9.99665967, 9.83162757, 9.67237246, 9.51873248, 9.37055087, 9.22767593, 9.08996098, 8.95726428, 8.82944898, 8.706383, 8.58793901, 8.47399431, 8.36443075, 8.25913465, 8.15799672, 8.06091195, 7.96777954, 7.87850282, 7.79298913, 7.71114976, 7.63289988, 7.5581584, 7.48684794, 7.41889474, 7.35422858, 7.29278268, 7.23449366, 7.17930147, 7.12714929, 7.0779835, 7.0317536, 6.98841217, 6.94791477, 6.91021995, 6.87528914, 6.84308666, 6.81357963, 6.78673795, 6.76253427, 6.74094392, 6.72194495, 6.70551804, 6.69164647, 6.68031616, 6.6715156, 6.66523586, 6.66147057, 6.66147057, 6.66523586, 6.6715156, 6.68031616, 6.69164647, 6.70551804, 6.72194495, 6.74094392, 6.76253427, 6.78673795, 6.81357963, 6.84308666, 6.87528914, 6.91021995, 6.94791477, 6.98841217, 7.0317536, 7.0779835, 7.12714929, 7.17930147, 7.23449366, 7.29278268, 7.35422858, 7.41889474, 7.48684794, 7.5581584, 7.63289988, 7.71114976, 7.79298913, 7.87850282, 7.96777954, 8.06091195, 8.15799672, 8.25913465, 8.36443075, 8.47399431, 8.58793901, 8.706383, 8.82944898, 8.95726428, 9.08996098, 9.22767593, 9.37055087, 9.51873248, 9.67237246, 9.83162757, 9.99665967, 10.16763582, 10.34472824, 10.52811436, 10.71797682, 10.91450349, 11.1178874, 11.3283267, 11.54602463, 11.7711894, 12.00403408, 12.24477648, 12.49363894, 12.75084816, 13.01663496, 13.29123395, 13.57488329, 13.86782425, 14.17030085, 14.48255934, 14.80484776, 15.13741526, 15.48051154, 15.83438613, 16.19928757, 16.57546263, 16.96315536, 17.3626061, 17.77405042, 18.19771794, 18.63383116, 19.08260408, 19.54424086, 20.01893431, 20.50686439, 21.00819652, 21.52307994, 22.05164594, 22.59400602, 23.15025006, 23.72044439, 24.30462986, 24.90281989, 25.51499854, 26.14111853, 26.78109941, 27.43482566, 28.10214493, 28.78286638, 29.47675913, 30.18355087, 30.90292659, 31.63452756, 32.37795057, 33.13274729, 33.89842403, 34.67444175, 35.46021636, 36.25511938, 37.05847897, 37.86958126, 38.68767214, 39.51195932, 40.34161484, 41.17577788, 42.01355801, 42.85403863, 43.69628091, 44.5393278, 45.38220846, 46.2239428, 47.06354624, 47.9000345, 48.7324286, 49.55975973, 50.3810742, 51.19543823, 52.00194262, 52.79970727, 53.58788541, 54.36566756, 55.13228522, 55.88701412, 56.62917716, 57.35814691, 58.07334771, 58.7742573, 59.46040801, 60.13138758, 60.78683947, 61.42646279, 62.05001184, 62.65729526, 63.2481748, 63.82256385, 64.3804256, 64.92177099, 65.44665643, 65.95518132, 66.44748543, 66.92374619, 67.38417585, 67.82901861, 68.25854775, 68.6730627, 69.07288622, 69.4583616, 69.82984989, 70.18772728, 70.53238257, 70.86421472, 71.18363059, 71.49104275, 71.78686743, 72.0715227, 72.34542667, 72.60899593, 72.86264407, 73.10678036, 73.34180861, 73.56812604, 73.78612244, 73.99617928, 74.19866908, 74.3939548, 74.58238931, 74.76431507, 74.94006375, 75.10995604, 75.27430146, 75.43339829, 75.58753355, 75.73698295, 75.88201106, 76.02287131, 76.15980623, 76.29304759, 76.42281658, 76.54932411, 76.67277101, 76.7933483, 76.91123751, 77.02661095, 77.139632, 77.25045545, 77.35922778, 77.46608749, 77.57116541, 77.67458501, 77.7764627, 77.87690815, 77.97602459, 78.07390907, 78.17065279, 78.26634136, 78.36105507, 78.45486916, 78.54785405, 78.64007564, 78.73159551, 78.82247113, 78.91275614, 79.00250052, 79.09175078, 79.18055021, 79.268939, 79.35695447, 79.44463121, 79.53200125, 79.61909421, 79.70593744, 79.79255619, 79.87897369, 79.96521131, 80.05128869, 80.13722381, 80.2230331, 80.3087316, 80.39433296, 80.47984963, 80.56529284, 80.65067276, 80.73599854, 80.82127837, 80.90651957, 80.99172864, 81.07691131, 81.1620726, 81.24721688, 81.33234789, 81.41746883, 81.50258233, 81.58769059, 81.6727953, 81.75789778, 81.84299893, 81.92809931, 82.01319914, 82.09829834, 82.18339655, 82.26849314, 82.35358727, 82.43867784, 82.52376358, 82.60884302, 82.69391452, 82.77897629, 82.86402639, 82.94906275, 83.03408319, 83.1190854, 83.20406699, 83.28902548, 83.37395829, 83.45886278, 83.54373624, 83.62857588, 83.71337889, 83.79814239, 83.88286345, 83.96753912, 84.05216638, 84.13674223, 84.22126359, 84.3057274, 84.39013055, 84.47446992, 84.55874239, 84.64294481, 84.72707403, 84.81112688, 84.8951002, 84.97899081, 85.06279555, 85.14651125, 85.23013472, 85.3136628, 85.39709233, 85.48042015, 85.5636431, 85.64675803, 85.72976181, 85.81265131, 85.8954234, 85.97807499, 86.06060298, 86.14300427, 86.22527581, 86.30741453, 86.3894174, 86.47128138, 86.55300346, 86.63458065, 86.71600997, 86.79728846, 86.87841318, 86.95938119, 87.04018959, 87.12083549, 87.20131603, 87.28162835, 87.36176962, 87.44173704, 87.52152781, 87.60113917, 87.68056837, 87.75981269, 87.83886943, 87.9177359, 87.99640945, 88.07488745, 88.15316728, 88.23124636, 88.30912213, 88.38679203, 88.46425357, 88.54150424, 88.61854159, 88.69536316, 88.77196655, 88.84834937, 88.92450924, 89.00044384, 89.07615085, 89.15162797, 89.22687296, 89.30188358, 89.37665761, 89.4511929, 89.52548727, 89.5995386, 89.67334481, 89.74690381, 89.82021357, 89.89327207, 89.96607733, 90.03862739, 90.11092031, 90.18295421, 90.25472721, 90.32623746, 90.39748315, 90.4684625, 90.53917374, 90.60961516, 90.67978506, 90.74968175, 90.81930362, 90.88864904, 90.95771645, 91.02650428, 91.09501101, 91.16323516, 91.23117527, 91.2988299, 91.36619766, 91.43327716, 91.50006708, 91.56656609, 91.63277292, 91.69868632, 91.76430506, 91.82962795, 91.89465383, 91.95938157, 92.02381006, 92.08793825, 92.15176507, 92.21528953, 92.27851063, 92.34142743, 92.40403901, 92.46634446, 92.52834294, 92.59003359, 92.65141563, 92.71248828, 92.77325078, 92.83370243, 92.89384254, 92.95367045, 93.01318553, 93.07238718, 93.13127483, 93.18984795, 93.24810601, 93.30604853, 93.36367506, 93.42098516, 93.47797845, 93.53465454, 93.59101309, 93.64705378, 93.70277634, 93.75818049, 93.813266, 93.86803267, 93.92248032, 93.97660879, 94.03041795, 94.08390772, 94.13707801, 94.18992878, 94.24246, 94.29467169, 94.34656387, 94.3981366, 94.44938996, 94.50032405, 94.55093901, 94.601235, 94.65121219, 94.70087078, 94.75021101, 94.79923313, 94.84793742, 94.89632417, 94.9443937, 94.99214637, 95.03958254, 95.0867026, 95.13350697, 95.17999608, 95.22617038, 95.27203036, 95.31757652, 95.36280938, 95.40772948, 95.45233738, 95.49663366, 95.54061894, 95.58429383, 95.62765898, 95.67071505, 95.71346273, 95.7559027, 95.7980357, 95.83986246, 95.88138373, 95.9226003, 95.96351295, 96.0041225, 96.04442976, 96.08443559, 96.12414084, 96.16354639, 96.20265314, 96.24146199, 96.27997387, 96.31818972, 96.35611049, 96.39373716, 96.4310707, 96.46811212, 96.50486243, 96.54132266, 96.57749385, 96.61337706, 96.64897335, 96.68428379, 96.7193095, 96.75405156, 96.7885111, 96.82268925, 96.85658715, 96.89020595, 96.92354681, 96.95661091, 96.98939943, 97.02191357, 97.05415453, 97.08612353, 97.11782179, 97.14925055, 97.18041105, 97.21130454, 97.24193229, 97.27229556, 97.30239562, 97.33223378, 97.3618113, 97.39112951, 97.4201897, 97.4489932, 97.47754131, 97.50583537, 97.53387672, 97.56166669, 97.58920663, 97.61649789, 97.64354183, 97.6703398, 97.69689319, 97.72320336, 97.74927168, 97.77509953, 97.80068831, 97.8260394, 97.8511542, 97.87603409, 97.90068048, 97.92509476, 97.94927836, 97.97323267, 97.9969591, 98.02045907, 98.04373399, 98.06678527, 98.08961435, 98.11222263, 98.13461153, 98.15678249, 98.17873692, 98.20047625, 98.2220019, 98.2433153, 98.26441787, 98.28531104, 98.30599623, 98.32647488, 98.3467484, 98.36681822, 98.38668576, 98.40635246, 98.42581972, 98.44508897, 98.46416163, 98.48303912, 98.50172286, 98.52021425, 98.53851471, 98.55662566, 98.5745485, 98.59228464, 98.60983548, 98.62720243, 98.64438687, 98.66139022, 98.67821386, 98.69485918, 98.71132756, 98.7276204, 98.74373907, 98.75968495, 98.77545942, 98.79106383, 98.80649955, 98.82176796, 98.8368704, 98.85180823, 98.86658279, 98.88119543, 98.8956475, 98.90994032, 98.92407523, 98.93805355, 98.95187661, 98.96554572, 98.97906219, 98.99242733, 99.00564244, 99.01870881, 99.03162775, 99.04440052, 99.05702841, 99.06951271, 99.08185466, 99.09405555, 99.10611661, 99.11803912, 99.12982431, 99.14147342, 99.15298768, 99.16436833, 99.17561659, 99.18673366, 99.19772077, 99.20857911, 99.21930988, 99.22991427, 99.24039347, 99.25074866, 99.26098099, 99.27109165, 99.28108179, 99.29095256, 99.3007051, 99.31034056, 99.31986006, 99.32926474, 99.33855571, 99.34773408, 99.35680096, 99.36575744, 99.37460462, 99.38334359, 99.39197541, 99.40050116, 99.40892191, 99.41723871, 99.42545262, 99.43356467, 99.4415759, 99.44948734, 99.45730001, 99.46501494, 99.47263312, 99.48015556, 99.48758325, 99.49491718, 99.50215834, 99.50930768, 99.51636619, 99.52333481, 99.53021451, 99.53700622, 99.54371089, 99.55032944, 99.55686281, 99.5633119, 99.56967763, 99.57596089, 99.5821626, 99.58828363, 99.59432487, 99.60028719, 99.60617146, 99.61197855, 99.6177093, 99.62336457, 99.62894519, 99.634452, 99.63988583, 99.64524749, 99.65053781, 99.65575758, 99.6609076, 99.66598867, 99.67100158, 99.6759471, 99.68082601, 99.68563907, 99.69038704, 99.69507068, 99.69969073, 99.70424792, 99.70874301, 99.7131767, 99.71754972, 99.72186278, 99.72611659, 99.73031185, 99.73444926, 99.7385295, 99.74255325, 99.74652119, 99.75043399, 99.7542923, 99.75809679, 99.76184811, 99.7655469, 99.76919379, 99.77278943, 99.77633442, 99.77982941, 99.78327498, 99.78667177, 99.79002036, 99.79332135, 99.79657533, 99.79978289, 99.8029446, 99.80606104, 99.80913277, 99.81216036, 99.81514435, 99.8180853, 99.82098375, 99.82384024, 99.82665531, 99.82942947, 99.83216326, 99.83485718, 99.83751176, 99.84012749, 99.84270487, 99.84524441, 99.84774659, 99.85021189, 99.8526408, 99.85503378, 99.85739131, 99.85971386, 99.86200188, 99.86425582, 99.86647613, 99.86866327, 99.87081766, 99.87293975, 99.87502995, 99.87708871, 99.87911643, 99.88111354, 99.88308043, 99.88501753, 99.88692523, 99.88880393, 99.89065403, 99.8924759, 99.89426993, 99.89603651, 99.897776, 99.89948879, 99.90117522, 99.90283568, 99.90447051, 99.90608006, 99.9076647, 99.90922476, 99.91076058, 99.9122725, 99.91376086, 99.91522598, 99.9166682, 99.91808782, 99.91948518, 99.92086057, 99.92221432, 99.92354673, 99.9248581, 99.92614873, 99.92741891, 99.92866895, 99.92989912, 99.9311097, 99.93230099, 99.93347326, 99.93462678, 99.93576183, 99.93687866, 99.93797755, 99.93905875, 99.94012252, 99.94116912, 99.9421988, 99.9432118, 99.94420838, 99.94518876, 99.94615319, 99.9471019, 99.94803513, 99.94895311, 99.94985606, 99.9507442, 99.95161776, 99.95247695, 99.95332199, 99.95415309, 99.95497045, 99.9557743, 99.95656482, 99.95734222, 99.95810669, 99.95885844, 99.95959766, 99.96032454, 99.96103926, 99.96174201, 99.96243297, 99.96311232, 99.96378025, 99.96443693, 99.96508252, 99.96571721, 99.96634115, 99.96695452, 99.96755748, 99.96815019, 99.96873282, 99.96930551, 99.96986842, 99.97042171, 99.97096552, 99.97150001, 99.97202533, 99.9725416, 99.97304899, 99.97354763, 99.97403765, 99.9745192, 99.97499241, 99.97545741, 99.97591433, 99.97636331, 99.97680446, 99.97723792, 99.9776638, 99.97808223, 99.97849334, 99.97889723, 99.97929402, 99.97968383, 99.98006678, 99.98044296, 99.98081251, 99.98117551, 99.98153208, 99.98188233, 99.98222635, 99.98256425, 99.98289613, 99.98322209, 99.98354223, 99.98385664, 99.98416541, 99.98446865, 99.98476644, 99.98505887, 99.98534603, 99.98562802, 99.98590491, 99.98617679, 99.98644375, 99.98670586, 99.98696322, 99.98721589, 99.98746396, 99.98770751, 99.98794661, 99.98818134, 99.98841177, 99.98863798, 99.98886003, 99.98907801, 99.98929196, 99.98950198, 99.98970812, 99.98991045, 99.99010903, 99.99030394, 99.99049523, 99.99068296, 99.9908672, 99.99104801, 99.99122545, 99.99139957, 99.99157043, 99.9917381, 99.99190262, 99.99206405, 99.99222245, 99.99237787, 99.99253035, 99.99267996, 99.99282674, 99.99297075, 99.99311202, 99.99325061, 99.99338658, 99.99351995, 99.99365079, 99.99377913, 99.99390502, 99.9940285, 99.99414962, 99.99426842, 99.99438493, 99.99449921, 99.99461129, 99.99472121, 99.99482901, 99.99493473, 99.9950384, 99.99514007, 99.99523976, 99.99533752, 99.99543338, 99.99552738, 99.99561954, 99.9957099, 99.9957985, 99.99588537, 99.99597053, 99.99605403, 99.99613589, 99.99621613, 99.9962948, 99.99637192, 99.99644752, 99.99652162, 99.99659426, 99.99666546, 99.99673525, 99.99680365, 99.99687069, 99.9969364, 99.9970008, 99.99706392, 99.99712577, 99.99718639, 99.9972458, 99.99730401, 99.99736106, 99.99741696, 99.99747173, 99.9975254, 99.99757799, 99.99762952, 99.99768001, 99.99772947, 99.99777793, 99.99782541, 99.99787193, 99.99791749, 99.99796213, 99.99800587, 99.9980487, 99.99809067, 99.99813177, 99.99817203, 99.99821147, 99.9982501, 99.99828793, 99.99832499, 99.99836128, 99.99839682, 99.99843163, 99.99846572, 99.9984991, 99.9985318, 99.99856381, 99.99859516, 99.99862586, 99.99865591, 99.99868535, 99.99871416, 99.99874238, 99.99877, 99.99879705, 99.99882353, 99.99884945, 99.99887483, 99.99889968, 99.998924, 99.99894781, 99.99897111, 99.99899393, 99.99901626, 99.99903811, 99.99905951, 99.99908045, 99.99910094, 99.999121, 99.99914064, 99.99915985, 99.99917865, 99.99919705, 99.99921506, 99.99923268, 99.99924992, 99.9992668, 99.99928331, 99.99929946, 99.99931527, 99.99933074, 99.99934587, 99.99936068, 99.99937516, 99.99938933, 99.99940319, 99.99941676, 99.99943003, 99.999443, 99.9994557, 99.99946812, 99.99948027, 99.99949215, 99.99950378, 99.99951514, 99.99952626, 99.99953714, 99.99954777, 99.99955818, 99.99956835, 99.9995783, 99.99958803, 99.99959754, 99.99960684, 99.99961594, 99.99962484, 99.99963353, 99.99964204, 99.99965036, 99.99965849, 99.99966644, 99.99967421, 99.99968181, 99.99968924, 99.9996965, 99.9997036, 99.99971054, 99.99971732, 99.99972396, 99.99973044, 99.99973677, 99.99974297, 99.99974902, 99.99975494, 99.99976072, 99.99976638, 99.9997719, 99.9997773, 99.99978257, 99.99978773, 99.99979277, 99.99979769, 99.9998025, 99.99980721, 99.9998118, 99.99981629, 99.99982068, 99.99982496, 99.99982915, 99.99983324, 99.99983724, 99.99984114, 99.99984496, 99.99984868, 99.99985232, 99.99985588, 99.99985935, 99.99986275, 99.99986606, 99.9998693, 99.99987246, 99.99987555, 99.99987857, 99.99988151, 99.99988439, 99.9998872, 99.99988995, 99.99989263, 99.99989525, 99.9998978, 99.9999003, 99.99990274, 99.99990512, 99.99990744, 99.99990971, 99.99991193, 99.99991409, 99.9999162, 99.99991826, 99.99992028, 99.99992224, 99.99992416, 99.99992604, 99.99992786, 99.99992965, 99.99993139, 99.99993309, 99.99993475, 99.99993637, 99.99993796, 99.9999395, 99.99994101, 99.99994248, 99.99994391, 99.99994531, 99.99994668, 99.99994802, 99.99994932, 99.99995059, 99.99995183, 99.99995304, 99.99995422, 99.99995537, 99.99995649, 99.99995759, 99.99995866, 99.99995971, 99.99996072, 99.99996172, 99.99996269, 99.99996363, 99.99996456, 99.99996546, 99.99996633, 99.99996719, 99.99996802, 99.99996884, 99.99996963, 99.99997041, 99.99997117, 99.9999719, 99.99997262, 99.99997332, 99.99997401, 99.99997467, 99.99997533, 99.99997596, 99.99997658, 99.99997718, 99.99997777, 99.99997834, 99.9999789, 99.99997945, 99.99997998, 99.9999805, 99.999981, 99.9999815, 99.99998198, 99.99998245, 99.9999829, 99.99998335, 99.99998378, 99.9999842, 99.99998462, 99.99998502, 99.99998541, 99.99998579, 99.99998616, 99.99998653, 99.99998688, 99.99998722, 99.99998756, 99.99998789, 99.99998821, 99.99998852, 99.99998882, 99.99998912, 99.9999894, 99.99998968, 99.99998996, 99.99999022, 99.99999048, 99.99999073, 99.99999098, 99.99999122, 99.99999145, 99.99999168, 99.9999919, 99.99999212, 99.99999233, 99.99999253, 99.99999273, 99.99999293, 99.99999312, 99.9999933, 99.99999348, 99.99999366, 99.99999383, 99.99999399, 99.99999416, 99.99999431, 99.99999447, 99.99999462, 99.99999476, 99.9999949, 99.99999504, 99.99999518, 99.99999531, 99.99999543, 99.99999556, 99.99999568, 99.9999958, 99.99999591, 99.99999602, 99.99999613, 99.99999624, 99.99999634, 99.99999644, 99.99999654, 99.99999663, 99.99999672, 99.99999681, 99.9999969, 99.99999699, 99.99999707, 99.99999715, 99.99999723, 99.9999973, 99.99999738, 99.99999745, 99.99999752, 99.99999759, 99.99999766, 99.99999772, 99.99999778, 99.99999785, 99.99999791, 99.99999796, 99.99999802, 99.99999808, 99.99999813, 99.99999818, 99.99999823, 99.99999828, 99.99999833, 99.99999838, 99.99999842, 99.99999847, 99.99999851, 99.99999855, 99.99999859, 99.99999863, 99.99999867, 99.99999871, 99.99999874, 99.99999878, 99.99999881, 99.99999885, 99.99999888, 99.99999891, 99.99999894, 99.99999897, 99.999999, 99.99999903, 99.99999906, 99.99999908, 99.99999911, 99.99999914, 99.99999916, 99.99999918, 99.99999921, 99.99999923, 99.99999925, 99.99999927, 99.99999929, 99.99999931, 99.99999933, 99.99999935, 99.99999937, 99.99999939, 99.99999941, 99.99999942, 99.99999944, 99.99999946, 99.99999947, 99.99999949, 99.9999995, 99.99999952, 99.99999953, 99.99999955, 99.99999956, 99.99999957, 99.99999958, 99.9999996, 99.99999961, 99.99999962, 99.99999963, 99.99999964, 99.99999965, 99.99999966, 99.99999967, 99.99999968, 99.99999969, 99.9999997, 99.99999971, 99.99999972, 99.99999973, 99.99999973, 99.99999974, 99.99999975, 99.99999976, 99.99999976, 99.99999977, 99.99999978, 99.99999978, 99.99999979, 99.9999998, 99.9999998, 99.99999981, 99.99999981, 99.99999982, 99.99999982, 99.99999983, 99.99999983, 99.99999984, 99.99999984, 99.99999985, 99.99999985, 99.99999986, 99.99999986, 99.99999987, 99.99999987, 99.99999987, 99.99999988, 99.99999988, 99.99999989, 99.99999989, 99.99999989, 99.9999999, 99.9999999, 99.9999999, 99.9999999, 99.99999991, 99.99999991, 99.99999991, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90.39502915, 90.38970408, 90.3808231, 90.36837739, 90.35235461, 90.33273885, 90.30951064, 90.28264691, 90.25212095, 90.21790242, 90.17995727, 90.13824772, 90.09273221, 90.04336536, 89.99009791, 89.93287666, 89.87164441, 89.80633989, 89.73689772, 89.66324829, 89.58531773, 89.50302779, 89.41629577, 89.32503444, 89.22915196, 89.12855174, 89.02313239, 88.91278759, 88.79740601, 88.67687119, 88.55106143, 88.41984969, 88.2831035, 88.14068479, 87.99244985, 87.83824917, 87.67792736, 87.51132303, 87.33826869, 87.15859062, 86.97210883, 86.77863692, 86.57798201, 86.36994466, 86.1543188, 85.93089167, 85.69944379, 85.4597489, 85.21157394, 84.9546791, 84.68881776, 84.41373661, 84.12917566, 83.83486835, 83.53054169, 83.21591638, 82.89070704, 82.55462242, 82.20736567, 81.84863468, 81.47812243, 81.09551744, 80.70050423, 80.29276389, 79.87197467, 79.43781269, 78.98995271, 78.52806892, 78.05183594, 77.56092978, 77.05502898, 76.53381582, 75.99697758, 75.44420802, 74.87520883, 74.28969129, 73.68737797, 73.0680046, 72.43132199, 71.77709806, 71.10512003, 70.41519664, 69.70716047, 68.98087039, 68.23621402, 67.47311025, 66.6915119, 65.89140824, 65.07282769, 64.2358404, 63.38056081, 62.50715019, 61.61581907, 60.70682949, 59.78049723, 58.83719373, 57.87734785, 56.9014474, 55.91004034, 54.90373567, 53.88320397, 52.84917756, 51.80245026, 50.74387664, 49.67437087, 48.59490507, 47.50650713, 46.41025807, 45.30728887, 44.19877677, 43.08594113, 41.97003881, 40.85235905, 39.73421803, 38.61695304, 37.50191626, 36.39046839, 35.28397204, 34.18378494, 33.09125317, 32.00770433, 30.93444084, 29.87273336, 28.82381445, 27.78887248, 26.76904601, 25.76541844, 24.77901322, 23.81078952, 22.86163851, 21.93238016, 21.02376065, 20.13645042, 19.27104279, 18.42805321, 17.60791909, 16.81100023, 16.03757976, 15.28786558, 14.56199233, 13.86002372, 13.18195529, 12.52771748, 11.89717899, 11.29015038, 10.70638787, 10.14559723, 9.60743786, 9.09152681, 8.59744287, 8.12473067, 7.67290462, 7.24145286, 6.82984104, 6.43751597, 6.06390912, 5.70843993, 5.37051899, 5.04955091, 4.74493717, 4.45607856, 4.18237759, 3.92324058, 3.67807962, 3.44631432, 3.22737334, 3.02069578, 2.82573235, 2.64194644, 2.46881498, 2.30582917, 2.15249507, 2.00833409, 1.87288333, 1.74569584, 1.62634075, 1.51440335, 1.40948507, 1.31120338, 1.21919165, 1.13309897, 1.05258984, 0.97734391, 0.90705564, 0.84143394, 0.78020179, 0.7230958, 0.66986584, 0.62027453, 0.57409688, 0.53111978, 0.49114157, 0.45397159, 0.4194297, 0.3873459, 0.35755981, 0.3299203, 0.30428504, 0.28052007, 0.25849943, 0.23810475, 0.21922487, 0.20175547, 0.1855987, 0.17066287, 0.15686211, 0.14411602, 0.13234939, 0.12149194, 0.11147796, 0.10224614, 0.09373922, 0.08590383, 0.0786902, 0.07205198, 0.065946, 0.06033211, 0.05517294, 0.05043377, 0.04608236, 0.04208873, 0.03842511, 0.0350657, 0.0319866, 0.02916568, 0.02658241, 0.02421783, 0.02205436, 0.02007578, 0.01826707, 0.01661437, 0.01510489, 0.01372683, 0.01246928, 0.01132222, 0.01027638, 0.00932326, 0.00845501, 0.00766443, 0.00694486, 0.00629023, 0.00569493, 0.00515382, 0.00466218, 0.00421568, 0.00381035, 0.00344255, 0.00310896, 0.00280653, 0.00253246, 0.0022842, 0.00205942, 0.00185598, 0.00167194, 0.00150553, 0.00135511, 0.00121921, 0.00109648, 0.0009857, 0.00088574, 0.00079558, 0.0007143, 0.00064106, 0.00057509, 0.00051569, 0.00046223, 0.00041415, 0.00037091, 0.00033204, 0.00029713, 0.00026577, 0.00023762, 0.00021237, 0.00018972, 0.00016942, 0.00015122, 0.00013493, 0.00012033, 0.00010728, 0.0000956, 0.00008515, 0.00007582, 0.00006748, 0.00006003, 0.00005338, 0.00004745, 0.00004216, 0.00003744, 0.00003324, 0.0000295, 0.00002616, 0.0000232, 0.00002056, 0.00001822, 0.00001613, 0.00001428, 0.00001263, 0.00001117, 9.87766735e-06, 8.72878915e-06, 7.71030948e-06, 6.80781592e-06, 6.00844341e-06, 5.30071324e-06, 4.67438844e-06, 4.12034356e-06, 3.63044775e-06, 3.19745965e-06, 2.81493298e-06, 2.47713199e-06, 2.1789553e-06, 1.91586795e-06, 1.68384027e-06, 1.4792932e-06, 1.29904944e-06, 1.14028953e-06, 1.00051273e-06, 8.77502004e-07, 7.69292711e-07, 6.74144701e-07, 5.90517288e-07, 5.1704707e-07, 4.5252807e-07, 3.95894006e-07, 3.46202555e-07, 3.02621359e-07, 2.64415434e-07, 2.3093618e-07, 2.01611385e-07, 1.75936535e-07, 1.53466985e-07, 1.33810971e-07, 1.16623596e-07, 1.01601231e-07, 8.84768099e-08, 7.70154287e-08, 6.70106601e-08, 5.8281131e-08, 5.06675377e-08, 4.4030088e-08, 3.82460854e-08, 3.32079821e-08, 2.88214324e-08, 2.50038283e-08, 2.16828084e-08, 1.87949922e-08, 1.62849574e-08, 1.41042023e-08, 1.22103643e-08, 1.05663815e-08, 9.13991016e-09, 7.90269894e-09, 6.83009205e-09, 5.90058846e-09, 5.09544407e-09, 4.39831638e-09, 3.79496612e-09, 3.27301564e-09, 2.82166468e-09, 2.43153409e-09, 2.09446682e-09, 1.80337167e-09, 1.55208113e-09, 1.3352377e-09, 1.14822285e-09, 9.86972282e-10, 8.48018544e-10, 7.28320515e-10, 6.25249186e-10, 5.36545031e-10, 4.60232741e-10, 3.94607014e-10, 3.38204131e-10, 2.89730906e-10, 2.48107312e-10, 2.12367013e-10, 1.81714199e-10, 1.55409907e-10, 1.32857281e-10, 1.13530518e-10, 9.69748726e-11, 8.27924396e-11, 7.06705805e-11, 6.02824457e-11, 5.14006615e-11, 4.38120651e-11, 3.73319153e-11, 3.18038929e-11, 2.70716782e-11, 2.30357955e-11, 1.95967687e-11, 1.66551217e-11, 1.41540113e-11, 1.20223831e-11, 1.02176045e-11, 8.66862138e-12, 7.36122274e-12, 6.23856522e-12, 5.28643795e-12, 4.47641924e-12, 3.79429821e-12, 3.21165317e-12, 2.71427325e-12, 2.30215846e-12, 1.9468871e-12, 1.64845915e-12, 1.39266376e-12, 1.17950094e-12, 9.9475983e-13, 8.38440428e-13, 7.10542736e-13, 5.96855898e-13, 4.97379915e-13, 4.26325641e-13, 3.55271368e-13, 2.98427949e-13, 2.55795385e-13, 2.13162821e-13, 1.84741111e-13, 1.56319402e-13, 1.27897692e-13, 9.9475983e-14, 8.52651283e-14, 7.10542736e-14, 5.68434189e-14, 5.68434189e-14, 4.26325641e-14, 4.26325641e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.94350028, 2.94506006, 2.9476613, 2.95130645, 2.95599892, 2.96174311, 2.9685444, 2.97640917, 2.98534478, 2.99535963, 3.0064631, 3.01866562, 3.03197865, 3.04641469, 3.06198732, 3.07871117, 3.09660199, 3.11567661, 3.13595299, 3.15745024, 3.18018861, 3.20418953, 3.22947565, 3.25607081, 3.2840001, 3.31328986, 3.34396773, 3.37606264, 3.40960486, 3.44462599, 3.48115903, 3.51923836, 3.55889978, 3.60018056, 3.6431194, 3.68775652, 3.73413362, 3.78229396, 3.83228233, 3.88414509, 3.93793018, 3.99368714, 4.05146712, 4.11132286, 4.17330874, 4.23748076, 4.30389654, 4.37261528, 4.44369782, 4.51720655, 4.59320541, 4.67175989, 4.75293694, 4.83680495, 4.92343368, 5.01289422, 5.10525888, 5.2006011, 5.29899539, 5.40051716, 5.50524261, 5.61324861, 5.72461248, 5.83941186, 5.95772449, 6.07962796, 6.20519954, 6.33451582, 6.46765252, 6.6046841, 6.74568345, 6.89072155, 7.03986705, 7.19318588, 7.35074075, 7.51259077, 7.67879087, 7.84939132, 8.02443716, 8.20396763, 8.38801559, 8.57660685, 8.76975959, 8.96748367, 9.16977996, 9.37663968, 9.58804371, 9.8039619, 10.02435242, 10.24916107, 10.47832066, 10.71175039, 10.94935527, 11.19102558, 11.43663639, 11.68604714, 11.93910128, 12.19562601, 12.45543209, 12.71831376, 12.98404875, 13.2523984, 13.52310798, 13.795907, 14.07050975, 14.34661597, 14.62391161, 14.90206979, 15.18075181, 15.45960839, 15.73828098, 16.01640319, 16.29360232, 16.56950106, 16.84371916, 17.11587528, 17.3855888, 17.65248172, 17.91618056, 18.17631823, 18.43253594, 18.68448496, 18.93182841, 19.17424294, 19.41142025, 19.64306858, 19.86891399, 20.08870156, 20.30219637, 20.50918434, 20.70947293, 20.90289164, 21.08929228, 21.2685492, 21.44055922, 21.60524145, 21.76253698, 21.9124084, 22.05483916, 22.18983287, 22.31741243, 22.43761911, 22.55051152, 22.65616458, 22.7546683, 22.84612671, 22.93065658, 23.00838629, 23.07945458, 23.14400938, 23.20220664, 23.25420916, 23.30018554, 23.34030907, 23.37475675, 23.40370831, 23.42734534, 23.44585042, 23.45940634, 23.4681954, 23.47239874, 23.47219574, 23.4677635, 23.45927631, 23.44690532, 23.43081805, 23.41117818, 23.38814521, 23.36187428, 23.33251593, 23.30021604, 23.26511562, 23.22735084, 23.18705292, 23.14434812, 23.09935779, 23.05219836, 23.00298139, 22.95181367, 22.89879729, 22.84402972, 22.78760392, 22.7296085, 22.67012778, 22.60924194, 22.5470272, 22.4835559, 22.41889666, 22.35311452, 22.28627112, 22.21842477, 22.14963065, 22.07994092, 22.00940489, 21.93806909, 21.86597749, 21.79317154, 21.71969037, 21.64557086, 21.57084777, 21.49555388, 21.41972005, 21.34337538, 21.26654725, 21.18926148, 21.11154239, 21.03341285, 20.95489446, 20.87600755, 20.79677125, 20.71720365, 20.63732178, 20.5571417, 20.47667859, 20.39594677, 20.31495979, 20.23373045, 20.15227088, 20.07059254, 19.98870633, 19.90662258, 19.82435109, 19.7419012, 19.6592818, 19.57650136, 19.49356796, 19.41048933, 19.32727288, 19.24392569, 19.16045457, 19.07686606, 18.99316646, 18.90936186, 18.82545811, 18.7414609, 18.65737572, 18.57320791, 18.48896265, 18.40464499, 18.32025983, 18.23581199, 18.15130614, 18.06674687, 17.98213868, 17.89748598, 17.8127931, 17.7280643, 17.64330377, 17.55851563, 17.47370396, 17.38887278, 17.30402606, 17.21916773, 17.13430167, 17.04943172, 16.96456171, 16.87969539, 16.79483652, 16.70998882, 16.62515597, 16.54034164, 16.45554946, 16.37078306, 16.28604602, 16.20134192, 16.11667431, 16.03204674, 15.94746271, 15.86292573, 15.77843928, 15.69400683, 15.60963183, 15.52531771, 15.44106789, 15.35688577, 15.27277475, 15.1887382, 15.10477947, 15.02090191, 14.93710885, 14.8534036, 14.76978946, 14.68626972, 14.60284764, 14.51952647, 14.43630945, 14.35319981, 14.27020075, 14.18731545, 14.1045471, 14.02189884, 13.93937382, 13.85697517, 13.77470597, 13.69256934, 13.61056833, 13.52870599, 13.44698537, 13.36540947, 13.2839813, 13.20270383, 13.12158001, 13.0406128, 12.95980511, 12.87915983, 12.79867985, 12.71836802, 12.63822718, 12.55826015, 12.47846971, 12.39885865, 12.31942971, 12.24018562, 12.16112909, 12.0822628, 12.00358941, 11.92511155, 11.84683184, 11.76875287, 11.6908772, 11.61320738, 11.53574591, 11.4584953, 11.38145802, 11.30463649, 11.22803314, 11.15165037, 11.07549052, 10.99955596, 10.92384898, 10.84837187, 10.77312691, 10.69811631, 10.62334228, 10.54880702, 10.47451266, 10.40046133, 10.32665513, 10.25309614, 10.17978639, 10.10672789, 10.03392264, 9.96137258, 9.88907966, 9.81704577, 9.74527277, 9.67376252, 9.60251683, 9.53153749, 9.46082624, 9.39038483, 9.32021494, 9.25031824, 9.18069637, 9.11135095, 9.04228355, 8.97349572, 8.90498898, 8.83676483, 8.76882472, 8.70117009, 8.63380234, 8.56672283, 8.49993292, 8.43343391, 8.36722708, 8.30131368, 8.23569494, 8.17037205, 8.10534617, 8.04061843, 7.97618993, 7.91206175, 7.84823493, 7.78471047, 7.72148937, 7.65857257, 7.59596099, 7.53365554, 7.47165706, 7.40996641, 7.34858437, 7.28751172, 7.22674922, 7.16629757, 7.10615746, 7.04632955, 6.98681447, 6.92761282, 6.86872517, 6.81015205, 6.75189399, 6.69395147, 6.63632494, 6.57901484, 6.52202155, 6.46534546, 6.40898691, 6.35294622, 6.29722366, 6.24181951, 6.186734, 6.13196733, 6.07751968, 6.02339121, 5.96958205, 5.91609228, 5.86292199, 5.81007122, 5.75754, 5.70532831, 5.65343613, 5.6018634, 5.55061004, 5.49967595, 5.44906099, 5.398765, 5.34878781, 5.29912922, 5.24978899, 5.20076687, 5.15206258, 5.10367583, 5.0556063, 5.00785363, 4.96041746, 4.9132974, 4.86649303, 4.82000392, 4.77382962, 4.72796964, 4.68242348, 4.63719062, 4.59227052, 4.54766262, 4.50336634, 4.45938106, 4.41570617, 4.37234102, 4.32928495, 4.28653727, 4.2440973, 4.2019643, 4.16013754, 4.11861627, 4.0773997, 4.03648705, 3.9958775, 3.95557024, 3.91556441, 3.87585916, 3.83645361, 3.79734686, 3.75853801, 3.72002613, 3.68181028, 3.64388951, 3.60626284, 3.5689293, 3.53188788, 3.49513757, 3.45867734, 3.42250615, 3.38662294, 3.35102665, 3.31571621, 3.2806905, 3.24594844, 3.2114889, 3.17731075, 3.14341285, 3.10979405, 3.07645319, 3.04338909, 3.01060057, 2.97808643, 2.94584547, 2.91387647, 2.88217821, 2.85074945, 2.81958895, 2.78869546, 2.75806771, 2.72770444, 2.69760438, 2.66776622, 2.6381887, 2.60887049, 2.5798103, 2.5510068, 2.52245869, 2.49416463, 2.46612328, 2.43833331, 2.41079337, 2.38350211, 2.35645817, 2.3296602, 2.30310681, 2.27679664, 2.25072832, 2.22490047, 2.19931169, 2.1739606, 2.1488458, 2.12396591, 2.09931952, 2.07490524, 2.05072164, 2.02676733, 2.0030409, 1.97954093, 1.95626601, 1.93321473, 1.91038565, 1.88777737, 1.86538847, 1.84321751, 1.82126308, 1.79952375, 1.7779981, 1.7566847, 1.73558213, 1.71468896, 1.69400377, 1.67352512, 1.6532516, 1.63318178, 1.61331424, 1.59364754, 1.57418028, 1.55491103, 1.53583837, 1.51696088, 1.49827714, 1.47978575, 1.46148529, 1.44337434, 1.4254515, 1.40771536, 1.39016452, 1.37279757, 1.35561313, 1.33860978, 1.32178614, 1.30514082, 1.28867244, 1.2723796, 1.25626093, 1.24031505, 1.22454058, 1.20893617, 1.19350045, 1.17823204, 1.1631296, 1.14819177, 1.13341721, 1.11880457, 1.1043525, 1.09005968, 1.07592477, 1.06194645, 1.04812339, 1.03445428, 1.02093781, 1.00757267, 0.99435756, 0.98129119, 0.96837225, 0.95559948, 0.94297159, 0.93048729, 0.91814534, 0.90594445, 0.89388339, 0.88196088, 0.87017569, 0.85852658, 0.84701232, 0.83563167, 0.82438341, 0.81326634, 0.80227923, 0.79142089, 0.78069012, 0.77008573, 0.75960653, 0.74925134, 0.73901901, 0.72890835, 0.71891821, 0.70904744, 0.6992949, 0.68965944, 0.68013994, 0.67073526, 0.66144429, 0.65226592, 0.64319904, 0.63424256, 0.62539538, 0.61665641, 0.60802459, 0.59949884, 0.59107809, 0.58276129, 0.57454738, 0.56643533, 0.5584241, 0.55051266, 0.54269999, 0.53498506, 0.52736688, 0.51984444, 0.51241675, 0.50508282, 0.49784166, 0.49069232, 0.48363381, 0.47666519, 0.46978549, 0.46299378, 0.45628911, 0.44967056, 0.44313719, 0.4366881, 0.43032237, 0.42403911, 0.4178374, 0.41171637, 0.40567513, 0.39971281, 0.39382854, 0.38802145, 0.3822907, 0.37663543, 0.37105481, 0.365548, 0.36011417, 0.35475251, 0.34946219, 0.34424242, 0.3390924, 0.33401133, 0.32899842, 0.3240529, 0.31917399, 0.31436093, 0.30961296, 0.30492932, 0.30030927, 0.29575208, 0.29125699, 0.2868233, 0.28245028, 0.27813722, 0.27388341, 0.26968815, 0.26555074, 0.2614705, 0.25744675, 0.25347881, 0.24956601, 0.2457077, 0.24190321, 0.23815189, 0.2344531, 0.23080621, 0.22721057, 0.22366558, 0.22017059, 0.21672502, 0.21332823, 0.20997964, 0.20667865, 0.20342467, 0.20021711, 0.1970554, 0.19393896, 0.19086723, 0.18783964, 0.18485565, 0.1819147, 0.17901625, 0.17615976, 0.17334469, 0.17057053, 0.16783674, 0.16514282, 0.16248824, 0.15987251, 0.15729513, 0.15475559, 0.15225341, 0.14978811, 0.1473592, 0.14496622, 0.14260869, 0.14028614, 0.13799812, 0.13574418, 0.13352387, 0.13133673, 0.12918234, 0.12706025, 0.12497005, 0.12291129, 0.12088357, 0.11888646, 0.11691957, 0.11498247, 0.11307477, 0.11119607, 0.10934597, 0.1075241, 0.10573007, 0.10396349, 0.102224, 0.10051121, 0.09882478, 0.09716432, 0.09552949, 0.09391994, 0.0923353, 0.09077524, 0.08923942, 0.0877275, 0.08623914, 0.08477402, 0.0833318, 0.08191218, 0.08051482, 0.07913943, 0.07778568, 0.07645327, 0.0751419, 0.07385127, 0.07258109, 0.07133105, 0.07010088, 0.0688903, 0.06769901, 0.06652674, 0.06537322, 0.06423817, 0.06312134, 0.06202245, 0.06094125, 0.05987748, 0.05883088, 0.0578012, 0.0567882, 0.05579162, 0.05481124, 0.05384681, 0.0528981, 0.05196487, 0.05104689, 0.05014394, 0.0492558, 0.04838224, 0.04752305, 0.04667801, 0.04584691, 0.04502955, 0.0442257, 0.04343518, 0.04265778, 0.04189331, 0.04114156, 0.04040234, 0.03967546, 0.03896074, 0.03825799, 0.03756703, 0.03688768, 0.03621975, 0.03556307, 0.03491748, 0.03428279, 0.03365885, 0.03304548, 0.03244252, 0.03184981, 0.03126718, 0.03069449, 0.03013158, 0.02957829, 0.02903448, 0.02849999, 0.02797467, 0.0274584, 0.02695101, 0.02645237, 0.02596235, 0.0254808, 0.02500759, 0.02454259, 0.02408567, 0.02363669, 0.02319554, 0.02276208, 0.0223362, 0.02191777, 0.02150666, 0.02110277, 0.02070598, 0.02031617, 0.01993322, 0.01955704, 0.01918749, 0.01882449, 0.01846792, 0.01811767, 0.01777365, 0.01743575, 0.01710387, 0.01677791, 0.01645777, 0.01614336, 0.01583459, 0.01553135, 0.01523356, 0.01494113, 0.01465397, 0.01437198, 0.01409509, 0.01382321, 0.01355625, 0.01329414, 0.01303678, 0.01278411, 0.01253604, 0.01229249, 0.01205339, 0.01181866, 0.01158823, 0.01136202, 0.01113997, 0.01092199, 0.01070804, 0.01049802, 0.01029188, 0.01008955, 0.00989097, 0.00969606, 0.00950477, 0.00931704, 0.0091328, 0.00895199, 0.00877455, 0.00860043, 0.00842957, 0.0082619, 0.00809738, 0.00793595, 0.00777755, 0.00762213, 0.00746965, 0.00732004, 0.00717326, 0.00702925, 0.00688798, 0.00674939, 0.00661342, 0.00648005, 0.00634921, 0.00622087, 0.00609498, 0.0059715, 0.00585038, 0.00573158, 0.00561507, 0.00550079, 0.00538871, 0.00527879, 0.00517099, 0.00506527, 0.0049616, 0.00485993, 0.00476024, 0.00466248, 0.00456662, 0.00447262, 0.00438046, 0.0042901, 0.0042015, 0.00411463, 0.00402947, 0.00394597, 0.00386411, 0.00378387, 0.0037052, 0.00362808, 0.00355248, 0.00347838, 0.00340574, 0.00333454, 0.00326475, 0.00319635, 0.00312931, 0.0030636, 0.0029992, 0.00293608, 0.00287423, 0.00281361, 0.0027542, 0.00269599, 0.00263894, 0.00258304, 0.00252827, 0.0024746, 0.00242201, 0.00237048, 0.00231999, 0.00227053, 0.00222207, 0.00217459, 0.00212807, 0.00208251, 0.00203787, 0.00199413, 0.0019513, 0.00190933, 0.00186823, 0.00182797, 0.00178853, 0.0017499, 0.00171207, 0.00167501, 0.00163872, 0.00160318, 0.00156837, 0.00153428, 0.0015009, 0.0014682, 0.00143619, 0.00140484, 0.00137414, 0.00134409, 0.00131465, 0.00128584, 0.00125762, 0.00123, 0.00120295, 0.00117647, 0.00115055, 0.00112517, 0.00110032, 0.001076, 0.00105219, 0.00102889, 0.00100607, 0.00098374, 0.00096189, 0.00094049, 0.00091955, 0.00089906, 0.000879, 0.00085936, 0.00084015, 0.00082135, 0.00080295, 0.00078494, 0.00076732, 0.00075008, 0.0007332, 0.00071669, 0.00070054, 0.00068473, 0.00066926, 0.00065413, 0.00063932, 0.00062484, 0.00061067, 0.00059681, 0.00058324, 0.00056997, 0.000557, 0.0005443, 0.00053188, 0.00051973, 0.00050785, 0.00049622, 0.00048486, 0.00047374, 0.00046286, 0.00045223, 0.00044182, 0.00043165, 0.0004217, 0.00041197, 0.00040246, 0.00039316, 0.00038406, 0.00037516, 0.00036647, 0.00035796, 0.00034964, 0.00034151, 0.00033356, 0.00032579, 0.00031819, 0.00031076, 0.0003035, 0.0002964, 0.00028946, 0.00028268, 0.00027604, 0.00026956, 0.00026323, 0.00025703, 0.00025098, 0.00024506, 0.00023928, 0.00023362, 0.0002281, 0.0002227, 0.00021743, 0.00021227, 0.00020723, 0.00020231, 0.0001975, 0.00019279, 0.0001882, 0.00018371, 0.00017932, 0.00017504, 0.00017085, 0.00016676, 0.00016276, 0.00015886, 0.00015504, 0.00015132, 0.00014768, 0.00014412, 0.00014065, 0.00013725, 0.00013394, 0.0001307, 0.00012754, 0.00012445, 0.00012143, 0.00011849, 0.00011561, 0.0001128, 0.00011005, 0.00010737, 0.00010475, 0.0001022, 0.0000997, 0.00009726, 0.00009488, 0.00009256, 0.00009029, 0.00008807, 0.00008591, 0.0000838, 0.00008174, 0.00007972, 0.00007776, 0.00007584, 0.00007396, 0.00007214, 0.00007035, 0.00006861, 0.00006691, 0.00006525, 0.00006363, 0.00006204, 0.0000605, 0.00005899, 0.00005752, 0.00005609, 0.00005469, 0.00005332, 0.00005198, 0.00005068, 0.00004941, 0.00004817, 0.00004696, 0.00004578, 0.00004463, 0.00004351, 0.00004241, 0.00004134, 0.00004029, 0.00003928, 0.00003828, 0.00003731, 0.00003637, 0.00003544, 0.00003454, 0.00003367, 0.00003281, 0.00003198, 0.00003116, 0.00003037, 0.00002959, 0.00002883, 0.0000281, 0.00002738, 0.00002668, 0.00002599, 0.00002533, 0.00002467, 0.00002404, 0.00002342, 0.00002282, 0.00002223, 0.00002166, 0.0000211, 0.00002055, 0.00002002, 0.0000195, 0.000019, 0.0000185, 0.00001802, 0.00001755, 0.0000171, 0.00001665, 0.00001622, 0.0000158, 0.00001538, 0.00001498, 0.00001459, 0.00001421, 0.00001384, 0.00001347, 0.00001312, 0.00001278, 0.00001244, 0.00001211, 0.00001179, 0.00001148, 0.00001118, 0.00001088, 0.0000106, 0.00001032, 0.00001004, 9.77746801e-06, 9.51822484e-06, 9.26563722e-06, 9.01954023e-06, 8.77977294e-06, 8.54617822e-06, 8.3186027e-06, 8.09689664e-06, 7.88091393e-06, 7.67051193e-06, 7.46555143e-06, 7.26589654e-06, 7.07141464e-06, 6.88197632e-06, 6.69745525e-06, 6.51772817e-06, 6.34267477e-06, 6.17217765e-06, 6.00612226e-06, 5.84439682e-06, 5.68689225e-06, 5.5335021e-06, 5.38412255e-06, 5.23865222e-06, 5.09699228e-06, 4.95904628e-06, 4.82472009e-06, 4.69392189e-06, 4.56656215e-06, 4.44255346e-06, 4.32181058e-06, 4.20425036e-06, 4.08979169e-06, 3.97835544e-06, 3.86986444e-06, 3.76424342e-06, 3.66141893e-06, 3.56131937e-06, 3.46387489e-06, 3.36901736e-06, 3.27668035e-06, 3.18679906e-06, 3.09931031e-06, 3.01415247e-06, 2.93126546e-06, 2.85059066e-06, 2.77207096e-06, 2.69565064e-06, 2.62127534e-06, 2.54889213e-06, 2.47844935e-06, 2.40989662e-06, 2.34318487e-06, 2.27826624e-06, 2.21509404e-06, 2.15362279e-06, 2.09380815e-06, 2.03560688e-06, 1.97897683e-06, 1.92387692e-06, 1.87026711e-06, 1.81810836e-06, 1.76736263e-06, 1.71799284e-06, 1.66996284e-06, 1.6232374e-06, 1.57778219e-06, 1.53356375e-06, 1.49054948e-06, 1.44870759e-06, 1.40800711e-06, 1.36841788e-06, 1.32991048e-06, 1.29245625e-06, 1.25602726e-06, 1.22059635e-06, 1.18613694e-06, 1.15262327e-06, 1.12003013e-06, 1.08833302e-06, 1.05750806e-06, 1.02753195e-06, 9.98382049e-07, 9.70036254e-07, 9.42473065e-07, 9.15671521e-07, 8.89611201e-07, 8.64272209e-07, 8.39635206e-07, 8.1568129e-07, 7.923921e-07, 7.69749747e-07, 7.47736777e-07, 7.26336239e-07, 7.05531576e-07, 6.85306688e-07, 6.65645914e-07, 6.46533962e-07, 6.2795597e-07, 6.09897441e-07, 5.92344307e-07, 5.75282797e-07, 5.58699583e-07, 5.42581617e-07, 5.26916239e-07, 5.11691098e-07, 4.96894188e-07, 4.82513812e-07, 4.68538587e-07, 4.54957416e-07, 4.41759511e-07, 4.28934371e-07, 4.16471764e-07, 4.04361742e-07, 3.925946e-07, 3.8116093e-07, 3.70051524e-07, 3.59257456e-07, 3.4877003e-07, 3.3858079e-07, 3.2868148e-07, 3.190641e-07, 3.09720832e-07, 3.00644089e-07, 2.91826481e-07, 2.83260817e-07, 2.74940092e-07, 2.66857512e-07, 2.59006455e-07, 2.51380442e-07, 2.43973233e-07, 2.36778703e-07, 2.29790928e-07, 2.23004122e-07, 2.16412673e-07, 2.10011109e-07, 2.03794102e-07, 1.97756478e-07, 1.91893221e-07, 1.86199401e-07, 1.80670284e-07, 1.75301224e-07, 1.70087716e-07, 1.65025384e-07, 1.60109948e-07, 1.55337261e-07, 1.50703286e-07, 1.4620413e-07, 1.4183594e-07, 1.37595023e-07, 1.33477769e-07, 1.29480668e-07, 1.25600295e-07, 1.21833352e-07, 1.18176615e-07, 1.14626914e-07, 1.11181237e-07, 1.07836584e-07, 1.045901e-07, 1.01438957e-07, 9.83804398e-08, 9.54118917e-08, 9.25307404e-08, 8.97344705e-08, 8.70206662e-08, 8.43869401e-08, 8.18310042e-08, 7.93506132e-08, 7.69435928e-08, 7.46078399e-08, 7.23412796e-08, 7.01419225e-08, 6.80078358e-08, 6.59371295e-08, 6.39279705e-08, 6.19785538e-08, 6.00871886e-08, 5.82521551e-08, 5.64718476e-08, 5.47446604e-08, 5.30690443e-08, 5.1443493e-08, 4.98665713e-08, 4.83368581e-08, 4.68529464e-08, 4.54135431e-08, 4.40173125e-08, 4.26630038e-08, 4.1349395e-08, 4.00752924e-08, 3.88395165e-08, 3.76409872e-08, 3.64785677e-08, 3.53512206e-08, 3.42578943e-08, 3.31976082e-08, 3.21693818e-08, 3.11722772e-08, 3.02053564e-08, 2.92677385e-08, 2.83585564e-08, 2.7476986e-08, 2.66221747e-08, 2.5793355e-08, 2.49897596e-08, 2.42106211e-08, 2.34552289e-08, 2.27228583e-08, 2.20128555e-08, 2.13245244e-08, 2.06572253e-08, 2.00103472e-08, 1.93832648e-08, 1.87753955e-08, 1.81861566e-08, 1.76149939e-08, 1.70613816e-08, 1.65247656e-08, 1.60046483e-08, 1.55005466e-08, 1.50119632e-08, 1.45384433e-08, 1.40795322e-08, 1.36347751e-08, 1.32037599e-08, 1.27860744e-08, 1.23812924e-08, 1.19890586e-08, 1.16089751e-08, 1.12406724e-08, 1.08838094e-08, 1.05380167e-08, 1.02029674e-08, 9.87834881e-09, 9.56383417e-09, 9.25911081e-09, 8.9638803e-09, 8.67785843e-09, 8.40077519e-09, 8.13234635e-09, 7.87230192e-09, 7.62040031e-09, 7.37637151e-09, 7.14000237e-09, 6.91103708e-09, 6.68926248e-09, 6.4744512e-09, 6.26639007e-09, 6.06488015e-09, 5.86970827e-09, 5.68067549e-09, 5.49761126e-09, 5.32031663e-09, 5.14860687e-09, 4.98233987e-09, 4.82131668e-09, 4.66539518e-09, 4.51440485e-09, 4.36820358e-09, 4.22663504e-09, 4.08955714e-09, 3.95682775e-09, 3.828319e-09, 3.70390296e-09, 3.58343755e-09, 3.46680906e-09, 3.35390382e-09, 3.24459393e-09, 3.1387799e-09, 3.03633385e-09, 2.93717051e-09, 2.84117618e-09, 2.74826562e-09, 2.6583109e-09, 2.57125521e-09, 2.48698484e-09, 2.40541453e-09, 2.32647324e-09, 2.25007568e-09, 2.17612239e-09, 2.10455653e-09, 2.03529282e-09, 1.96827443e-09, 1.90340188e-09, 1.84063254e-09, 1.77989534e-09, 1.72110504e-09, 1.6642332e-09, 1.60919456e-09, 1.55594648e-09, 1.50441792e-09, 1.45456625e-09, 1.4063346e-09, 1.35966616e-09, 1.31451827e-09, 1.2708341e-09, 1.22858523e-09, 1.1877006e-09, 1.1481518e-09, 1.10989617e-09, 1.07289111e-09, 1.03709397e-09, 1.00246211e-09, 9.6898134e-10, 9.36580591e-10, 9.05245656e-10, 8.74933903e-10, 8.45631121e-10, 8.17280466e-10, 7.89853516e-10, 7.63350272e-10, 7.37699679e-10, 7.12901738e-10, 6.88928026e-10, 6.65735911e-10, 6.43311182e-10, 6.21625418e-10, 6.00664407e-10, 5.80385517e-10, 5.60788749e-10, 5.41831469e-10, 5.23499466e-10, 5.05792741e-10, 4.8865445e-10, 4.72098804e-10, 4.56083171e-10, 4.4060755e-10, 4.2564352e-10, 4.11191081e-10, 3.972076e-10, 3.83693077e-10, 3.70633302e-10, 3.57999852e-10, 3.45792728e-10, 3.33997718e-10, 3.22600613e-10, 3.1157299e-10, 3.00929059e-10, 2.9062619e-10, 2.80678591e-10, 2.71072054e-10, 2.61778155e-10, 2.52796895e-10, 2.44128273e-10, 2.35743869e-10, 2.27643682e-10, 2.19813501e-10, 2.12239115e-10, 2.04934736e-10, 1.97871941e-10, 1.91050731e-10, 1.84456894e-10, 1.78090431e-10, 1.71937131e-10, 1.65996994e-10, 1.60255809e-10, 1.54699364e-10, 1.49341872e-10, 1.44169121e-10, 1.391669e-10, 1.3433521e-10, 1.29674049e-10, 1.25169208e-10, 1.20820687e-10, 1.16614274e-10, 1.12549969e-10, 1.08627773e-10, 1.04847686e-10, 1.01181286e-10, 9.76569936e-11, 9.42463885e-11, 9.09494702e-11, 8.77662387e-11, 8.46966941e-11, 8.17266255e-11, 7.88560328e-11, 7.6099127e-11, 7.34274863e-11, 7.08411108e-11, 6.83542112e-11, 6.59525767e-11, 6.36362074e-11, 6.13908924e-11, 5.92308425e-11, 5.71418468e-11, 5.51239054e-11, 5.31770183e-11, 5.13011855e-11, 4.9496407e-11, 4.7734261e-11, 4.60431693e-11, 4.44231318e-11, 4.2845727e-11, 4.13251655e-11, 3.98614475e-11, 3.8440362e-11, 3.707612e-11, 3.57545105e-11, 3.44897444e-11, 3.32676109e-11, 3.20738991e-11, 3.09370307e-11, 2.9828584e-11, 2.87627699e-11, 2.77395884e-11, 2.67448286e-11, 2.57927013e-11, 2.48689958e-11, 2.39737119e-11, 2.31210606e-11, 2.2296831e-11, 2.14868123e-11, 2.07194262e-11, 1.99804617e-11, 1.92557081e-11, 1.85593763e-11, 1.78914661e-11, 1.72519776e-11, 1.66267e-11, 1.60298441e-11, 1.54471991e-11, 1.48929757e-11, 1.43529633e-11, 1.38413725e-11, 1.33439926e-11, 1.28608235e-11, 1.23918653e-11, 1.1937118e-11, 1.15107923e-11, 1.10986775e-11, 1.06865627e-11, 1.03028697e-11, 9.93338745e-12, 9.56390522e-12, 9.22284471e-12, 8.8817842e-12, 8.55493454e-12, 8.24229573e-12, 7.94386779e-12, 7.65965069e-12, 7.3754336e-12, 7.10542736e-12, 6.84963197e-12, 6.59383659e-12, 6.35225206e-12, 6.12487838e-12, 5.89750471e-12, 5.68434189e-12, 5.47117907e-12, 5.2722271e-12, 5.07327513e-12, 4.88853402e-12, 4.71800377e-12, 4.53326265e-12, 4.37694325e-12, 4.206413e-12, 4.05009359e-12, 3.90798505e-12, 3.7658765e-12, 3.62376795e-12, 3.48165941e-12, 3.35376171e-12, 3.24007488e-12, 3.11217718e-12, 2.99849034e-12, 2.88480351e-12, 2.78532752e-12, 2.67164069e-12, 2.5721647e-12, 2.48689958e-12, 2.38742359e-12, 2.30215846e-12, 2.21689334e-12, 2.13162821e-12, 2.04636308e-12, 1.97530881e-12, 1.90425453e-12, 1.83320026e-12, 1.76214598e-12, 1.69109171e-12, 1.63424829e-12, 1.57740487e-12, 1.5063506e-12, 1.44950718e-12, 1.40687462e-12, 1.3500312e-12, 1.29318778e-12, 1.25055521e-12, 1.20792265e-12, 1.15107923e-12, 1.10844667e-12, 1.0658141e-12, 1.03739239e-12, 9.9475983e-13, 9.52127266e-13, 9.23705556e-13, 8.81072992e-13, 8.52651283e-13, 8.24229573e-13, 7.81597009e-13, 7.531753e-13, 7.2475359e-13, 6.96331881e-13, 6.67910172e-13, 6.53699317e-13, 6.25277607e-13, 5.96855898e-13, 5.82645043e-13, 5.54223334e-13, 5.40012479e-13, 5.1159077e-13, 4.97379915e-13, 4.68958206e-13, 4.54747351e-13, 4.40536496e-13, 4.26325641e-13, 4.12114787e-13, 3.97903932e-13, 3.83693077e-13, 3.55271368e-13, 3.55271368e-13, 3.41060513e-13, 3.26849658e-13, 3.12638804e-13, 2.98427949e-13, 2.84217094e-13, 2.7000624e-13, 2.7000624e-13, 2.55795385e-13, 2.4158453e-13, 2.4158453e-13, 2.27373675e-13, 2.13162821e-13, 2.13162821e-13, 1.98951966e-13, 1.98951966e-13, 1.84741111e-13, 1.84741111e-13, 1.70530257e-13, 1.70530257e-13, 1.56319402e-13, 1.56319402e-13, 1.42108547e-13, 1.42108547e-13, 1.42108547e-13, 1.27897692e-13, 1.27897692e-13, 1.13686838e-13, 1.13686838e-13, 1.13686838e-13, 1.13686838e-13, 9.9475983e-14, 9.9475983e-14, 9.9475983e-14, 8.52651283e-14, 8.52651283e-14, 8.52651283e-14, 8.52651283e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.66147057, 6.66523586, 6.6715156, 6.68031616, 6.69164647, 6.70551804, 6.72194495, 6.74094392, 6.76253427, 6.78673795, 6.81357963, 6.84308666, 6.87528914, 6.91021995, 6.94791477, 6.98841217, 7.0317536, 7.0779835, 7.12714929, 7.17930147, 7.23449366, 7.29278268, 7.35422858, 7.41889474, 7.48684794, 7.5581584, 7.63289988, 7.71114976, 7.79298913, 7.87850282, 7.96777954, 8.06091195, 8.15799672, 8.25913465, 8.36443075, 8.47399431, 8.58793901, 8.706383, 8.82944898, 8.95726428, 9.08996098, 9.22767593, 9.37055087, 9.51873248, 9.67237246, 9.83162757, 9.99665967, 10.16763582, 10.34472824, 10.52811436, 10.71797682, 10.91450349, 11.1178874, 11.3283267, 11.54602463, 11.7711894, 12.00403408, 12.24477648, 12.49363894, 12.75084816, 13.01663496, 13.29123395, 13.57488329, 13.86782425, 14.17030085, 14.48255934, 14.80484776, 15.13741526, 15.48051154, 15.83438613, 16.19928757, 16.57546263, 16.96315536, 17.3626061, 17.77405042, 18.19771794, 18.63383116, 19.08260408, 19.54424086, 20.01893431, 20.50686439, 21.00819652, 21.52307994, 22.05164594, 22.59400602, 23.15025006, 23.72044439, 24.30462986, 24.90281989, 25.51499854, 26.14111853, 26.78109941, 27.43482566, 28.10214493, 28.78286638, 29.47675913, 30.18355087, 30.90292659, 31.63452756, 32.37795057, 33.13274729, 33.89842403, 34.67444175, 35.46021636, 36.25511938, 37.05847897, 37.86958126, 38.68767214, 39.51195932, 40.34161484, 41.17577788, 42.01355801, 42.85403863, 43.69628091, 44.5393278, 45.38220846, 46.2239428, 47.06354624, 47.9000345, 48.7324286, 49.55975973, 50.3810742, 51.19543823, 52.00194262, 52.79970727, 53.58788541, 54.36566756, 55.13228522, 55.88701412, 56.62917716, 57.35814691, 58.07334771, 58.7742573, 59.46040801, 60.13138758, 60.78683947, 61.42646279, 62.05001184, 62.65729526, 63.2481748, 63.82256385, 64.3804256, 64.92177099, 65.44665643, 65.95518132, 66.44748543, 66.92374619, 67.38417585, 67.82901861, 68.25854775, 68.6730627, 69.07288622, 69.4583616, 69.82984989, 70.18772728, 70.53238257, 70.86421472, 71.18363059, 71.49104275, 71.78686743, 72.0715227, 72.34542667, 72.60899593, 72.86264407, 73.10678036, 73.34180861, 73.56812604, 73.78612244, 73.99617928, 74.19866908, 74.3939548, 74.58238931, 74.76431507, 74.94006375, 75.10995604, 75.27430146, 75.43339829, 75.58753355, 75.73698295, 75.88201106, 76.02287131, 76.15980623, 76.29304759, 76.42281658, 76.54932411, 76.67277101, 76.7933483, 76.91123751, 77.02661095, 77.139632, 77.25045545, 77.35922778, 77.46608749, 77.57116541, 77.67458501, 77.7764627, 77.87690815, 77.97602459, 78.07390907, 78.17065279, 78.26634136, 78.36105507, 78.45486916, 78.54785405, 78.64007564, 78.73159551, 78.82247113, 78.91275614, 79.00250052, 79.09175078, 79.18055021, 79.268939, 79.35695447, 79.44463121, 79.53200125, 79.61909421, 79.70593744, 79.79255619, 79.87897369, 79.96521131, 80.05128869, 80.13722381, 80.2230331, 80.3087316, 80.39433296, 80.47984963, 80.56529284, 80.65067276, 80.73599854, 80.82127837, 80.90651957, 80.99172864, 81.07691131, 81.1620726, 81.24721688, 81.33234789, 81.41746883, 81.50258233, 81.58769059, 81.6727953, 81.75789778, 81.84299893, 81.92809931, 82.01319914, 82.09829834, 82.18339655, 82.26849314, 82.35358727, 82.43867784, 82.52376358, 82.60884302, 82.69391452, 82.77897629, 82.86402639, 82.94906275, 83.03408319, 83.1190854, 83.20406699, 83.28902548, 83.37395829, 83.45886278, 83.54373624, 83.62857588, 83.71337889, 83.79814239, 83.88286345, 83.96753912, 84.05216638, 84.13674223, 84.22126359, 84.3057274, 84.39013055, 84.47446992, 84.55874239, 84.64294481, 84.72707403, 84.81112688, 84.8951002, 84.97899081, 85.06279555, 85.14651125, 85.23013472, 85.3136628, 85.39709233, 85.48042015, 85.5636431, 85.64675803, 85.72976181, 85.81265131, 85.8954234, 85.97807499, 86.06060298, 86.14300427, 86.22527581, 86.30741453, 86.3894174, 86.47128138, 86.55300346, 86.63458065, 86.71600997, 86.79728846, 86.87841318, 86.95938119, 87.04018959, 87.12083549, 87.20131603, 87.28162835, 87.36176962, 87.44173704, 87.52152781, 87.60113917, 87.68056837, 87.75981269, 87.83886943, 87.9177359, 87.99640945, 88.07488745, 88.15316728, 88.23124636, 88.30912213, 88.38679203, 88.46425357, 88.54150424, 88.61854159, 88.69536316, 88.77196655, 88.84834937, 88.92450924, 89.00044384, 89.07615085, 89.15162797, 89.22687296, 89.30188358, 89.37665761, 89.4511929, 89.52548727, 89.5995386, 89.67334481, 89.74690381, 89.82021357, 89.89327207, 89.96607733, 90.03862739, 90.11092031, 90.18295421, 90.25472721, 90.32623746, 90.39748315, 90.4684625, 90.53917374, 90.60961516, 90.67978506, 90.74968175, 90.81930362, 90.88864904, 90.95771645, 91.02650428, 91.09501101, 91.16323516, 91.23117527, 91.2988299, 91.36619766, 91.43327716, 91.50006708, 91.56656609, 91.63277292, 91.69868632, 91.76430506, 91.82962795, 91.89465383, 91.95938157, 92.02381006, 92.08793825, 92.15176507, 92.21528953, 92.27851063, 92.34142743, 92.40403901, 92.46634446, 92.52834294, 92.59003359, 92.65141563, 92.71248828, 92.77325078, 92.83370243, 92.89384254, 92.95367045, 93.01318553, 93.07238718, 93.13127483, 93.18984795, 93.24810601, 93.30604853, 93.36367506, 93.42098516, 93.47797845, 93.53465454, 93.59101309, 93.64705378, 93.70277634, 93.75818049, 93.813266, 93.86803267, 93.92248032, 93.97660879, 94.03041795, 94.08390772, 94.13707801, 94.18992878, 94.24246, 94.29467169, 94.34656387, 94.3981366, 94.44938996, 94.50032405, 94.55093901, 94.601235, 94.65121219, 94.70087078, 94.75021101, 94.79923313, 94.84793742, 94.89632417, 94.9443937, 94.99214637, 95.03958254, 95.0867026, 95.13350697, 95.17999608, 95.22617038, 95.27203036, 95.31757652, 95.36280938, 95.40772948, 95.45233738, 95.49663366, 95.54061894, 95.58429383, 95.62765898, 95.67071505, 95.71346273, 95.7559027, 95.7980357, 95.83986246, 95.88138373, 95.9226003, 95.96351295, 96.0041225, 96.04442976, 96.08443559, 96.12414084, 96.16354639, 96.20265314, 96.24146199, 96.27997387, 96.31818972, 96.35611049, 96.39373716, 96.4310707, 96.46811212, 96.50486243, 96.54132266, 96.57749385, 96.61337706, 96.64897335, 96.68428379, 96.7193095, 96.75405156, 96.7885111, 96.82268925, 96.85658715, 96.89020595, 96.92354681, 96.95661091, 96.98939943, 97.02191357, 97.05415453, 97.08612353, 97.11782179, 97.14925055, 97.18041105, 97.21130454, 97.24193229, 97.27229556, 97.30239562, 97.33223378, 97.3618113, 97.39112951, 97.4201897, 97.4489932, 97.47754131, 97.50583537, 97.53387672, 97.56166669, 97.58920663, 97.61649789, 97.64354183, 97.6703398, 97.69689319, 97.72320336, 97.74927168, 97.77509953, 97.80068831, 97.8260394, 97.8511542, 97.87603409, 97.90068048, 97.92509476, 97.94927836, 97.97323267, 97.9969591, 98.02045907, 98.04373399, 98.06678527, 98.08961435, 98.11222263, 98.13461153, 98.15678249, 98.17873692, 98.20047625, 98.2220019, 98.2433153, 98.26441787, 98.28531104, 98.30599623, 98.32647488, 98.3467484, 98.36681822, 98.38668576, 98.40635246, 98.42581972, 98.44508897, 98.46416163, 98.48303912, 98.50172286, 98.52021425, 98.53851471, 98.55662566, 98.5745485, 98.59228464, 98.60983548, 98.62720243, 98.64438687, 98.66139022, 98.67821386, 98.69485918, 98.71132756, 98.7276204, 98.74373907, 98.75968495, 98.77545942, 98.79106383, 98.80649955, 98.82176796, 98.8368704, 98.85180823, 98.86658279, 98.88119543, 98.8956475, 98.90994032, 98.92407523, 98.93805355, 98.95187661, 98.96554572, 98.97906219, 98.99242733, 99.00564244, 99.01870881, 99.03162775, 99.04440052, 99.05702841, 99.06951271, 99.08185466, 99.09405555, 99.10611661, 99.11803912, 99.12982431, 99.14147342, 99.15298768, 99.16436833, 99.17561659, 99.18673366, 99.19772077, 99.20857911, 99.21930988, 99.22991427, 99.24039347, 99.25074866, 99.26098099, 99.27109165, 99.28108179, 99.29095256, 99.3007051, 99.31034056, 99.31986006, 99.32926474, 99.33855571, 99.34773408, 99.35680096, 99.36575744, 99.37460462, 99.38334359, 99.39197541, 99.40050116, 99.40892191, 99.41723871, 99.42545262, 99.43356467, 99.4415759, 99.44948734, 99.45730001, 99.46501494, 99.47263312, 99.48015556, 99.48758325, 99.49491718, 99.50215834, 99.50930768, 99.51636619, 99.52333481, 99.53021451, 99.53700622, 99.54371089, 99.55032944, 99.55686281, 99.5633119, 99.56967763, 99.57596089, 99.5821626, 99.58828363, 99.59432487, 99.60028719, 99.60617146, 99.61197855, 99.6177093, 99.62336457, 99.62894519, 99.634452, 99.63988583, 99.64524749, 99.65053781, 99.65575758, 99.6609076, 99.66598867, 99.67100158, 99.6759471, 99.68082601, 99.68563907, 99.69038704, 99.69507068, 99.69969073, 99.70424792, 99.70874301, 99.7131767, 99.71754972, 99.72186278, 99.72611659, 99.73031185, 99.73444926, 99.7385295, 99.74255325, 99.74652119, 99.75043399, 99.7542923, 99.75809679, 99.76184811, 99.7655469, 99.76919379, 99.77278943, 99.77633442, 99.77982941, 99.78327498, 99.78667177, 99.79002036, 99.79332135, 99.79657533, 99.79978289, 99.8029446, 99.80606104, 99.80913277, 99.81216036, 99.81514435, 99.8180853, 99.82098375, 99.82384024, 99.82665531, 99.82942947, 99.83216326, 99.83485718, 99.83751176, 99.84012749, 99.84270487, 99.84524441, 99.84774659, 99.85021189, 99.8526408, 99.85503378, 99.85739131, 99.85971386, 99.86200188, 99.86425582, 99.86647613, 99.86866327, 99.87081766, 99.87293975, 99.87502995, 99.87708871, 99.87911643, 99.88111354, 99.88308043, 99.88501753, 99.88692523, 99.88880393, 99.89065403, 99.8924759, 99.89426993, 99.89603651, 99.897776, 99.89948879, 99.90117522, 99.90283568, 99.90447051, 99.90608006, 99.9076647, 99.90922476, 99.91076058, 99.9122725, 99.91376086, 99.91522598, 99.9166682, 99.91808782, 99.91948518, 99.92086057, 99.92221432, 99.92354673, 99.9248581, 99.92614873, 99.92741891, 99.92866895, 99.92989912, 99.9311097, 99.93230099, 99.93347326, 99.93462678, 99.93576183, 99.93687866, 99.93797755, 99.93905875, 99.94012252, 99.94116912, 99.9421988, 99.9432118, 99.94420838, 99.94518876, 99.94615319, 99.9471019, 99.94803513, 99.94895311, 99.94985606, 99.9507442, 99.95161776, 99.95247695, 99.95332199, 99.95415309, 99.95497045, 99.9557743, 99.95656482, 99.95734222, 99.95810669, 99.95885844, 99.95959766, 99.96032454, 99.96103926, 99.96174201, 99.96243297, 99.96311232, 99.96378025, 99.96443693, 99.96508252, 99.96571721, 99.96634115, 99.96695452, 99.96755748, 99.96815019, 99.96873282, 99.96930551, 99.96986842, 99.97042171, 99.97096552, 99.97150001, 99.97202533, 99.9725416, 99.97304899, 99.97354763, 99.97403765, 99.9745192, 99.97499241, 99.97545741, 99.97591433, 99.97636331, 99.97680446, 99.97723792, 99.9776638, 99.97808223, 99.97849334, 99.97889723, 99.97929402, 99.97968383, 99.98006678, 99.98044296, 99.98081251, 99.98117551, 99.98153208, 99.98188233, 99.98222635, 99.98256425, 99.98289613, 99.98322209, 99.98354223, 99.98385664, 99.98416541, 99.98446865, 99.98476644, 99.98505887, 99.98534603, 99.98562802, 99.98590491, 99.98617679, 99.98644375, 99.98670586, 99.98696322, 99.98721589, 99.98746396, 99.98770751, 99.98794661, 99.98818134, 99.98841177, 99.98863798, 99.98886003, 99.98907801, 99.98929196, 99.98950198, 99.98970812, 99.98991045, 99.99010903, 99.99030394, 99.99049523, 99.99068296, 99.9908672, 99.99104801, 99.99122545, 99.99139957, 99.99157043, 99.9917381, 99.99190262, 99.99206405, 99.99222245, 99.99237787, 99.99253035, 99.99267996, 99.99282674, 99.99297075, 99.99311202, 99.99325061, 99.99338658, 99.99351995, 99.99365079, 99.99377913, 99.99390502, 99.9940285, 99.99414962, 99.99426842, 99.99438493, 99.99449921, 99.99461129, 99.99472121, 99.99482901, 99.99493473, 99.9950384, 99.99514007, 99.99523976, 99.99533752, 99.99543338, 99.99552738, 99.99561954, 99.9957099, 99.9957985, 99.99588537, 99.99597053, 99.99605403, 99.99613589, 99.99621613, 99.9962948, 99.99637192, 99.99644752, 99.99652162, 99.99659426, 99.99666546, 99.99673525, 99.99680365, 99.99687069, 99.9969364, 99.9970008, 99.99706392, 99.99712577, 99.99718639, 99.9972458, 99.99730401, 99.99736106, 99.99741696, 99.99747173, 99.9975254, 99.99757799, 99.99762952, 99.99768001, 99.99772947, 99.99777793, 99.99782541, 99.99787193, 99.99791749, 99.99796213, 99.99800587, 99.9980487, 99.99809067, 99.99813177, 99.99817203, 99.99821147, 99.9982501, 99.99828793, 99.99832499, 99.99836128, 99.99839682, 99.99843163, 99.99846572, 99.9984991, 99.9985318, 99.99856381, 99.99859516, 99.99862586, 99.99865591, 99.99868535, 99.99871416, 99.99874238, 99.99877, 99.99879705, 99.99882353, 99.99884945, 99.99887483, 99.99889968, 99.998924, 99.99894781, 99.99897111, 99.99899393, 99.99901626, 99.99903811, 99.99905951, 99.99908045, 99.99910094, 99.999121, 99.99914064, 99.99915985, 99.99917865, 99.99919705, 99.99921506, 99.99923268, 99.99924992, 99.9992668, 99.99928331, 99.99929946, 99.99931527, 99.99933074, 99.99934587, 99.99936068, 99.99937516, 99.99938933, 99.99940319, 99.99941676, 99.99943003, 99.999443, 99.9994557, 99.99946812, 99.99948027, 99.99949215, 99.99950378, 99.99951514, 99.99952626, 99.99953714, 99.99954777, 99.99955818, 99.99956835, 99.9995783, 99.99958803, 99.99959754, 99.99960684, 99.99961594, 99.99962484, 99.99963353, 99.99964204, 99.99965036, 99.99965849, 99.99966644, 99.99967421, 99.99968181, 99.99968924, 99.9996965, 99.9997036, 99.99971054, 99.99971732, 99.99972396, 99.99973044, 99.99973677, 99.99974297, 99.99974902, 99.99975494, 99.99976072, 99.99976638, 99.9997719, 99.9997773, 99.99978257, 99.99978773, 99.99979277, 99.99979769, 99.9998025, 99.99980721, 99.9998118, 99.99981629, 99.99982068, 99.99982496, 99.99982915, 99.99983324, 99.99983724, 99.99984114, 99.99984496, 99.99984868, 99.99985232, 99.99985588, 99.99985935, 99.99986275, 99.99986606, 99.9998693, 99.99987246, 99.99987555, 99.99987857, 99.99988151, 99.99988439, 99.9998872, 99.99988995, 99.99989263, 99.99989525, 99.9998978, 99.9999003, 99.99990274, 99.99990512, 99.99990744, 99.99990971, 99.99991193, 99.99991409, 99.9999162, 99.99991826, 99.99992028, 99.99992224, 99.99992416, 99.99992604, 99.99992786, 99.99992965, 99.99993139, 99.99993309, 99.99993475, 99.99993637, 99.99993796, 99.9999395, 99.99994101, 99.99994248, 99.99994391, 99.99994531, 99.99994668, 99.99994802, 99.99994932, 99.99995059, 99.99995183, 99.99995304, 99.99995422, 99.99995537, 99.99995649, 99.99995759, 99.99995866, 99.99995971, 99.99996072, 99.99996172, 99.99996269, 99.99996363, 99.99996456, 99.99996546, 99.99996633, 99.99996719, 99.99996802, 99.99996884, 99.99996963, 99.99997041, 99.99997117, 99.9999719, 99.99997262, 99.99997332, 99.99997401, 99.99997467, 99.99997533, 99.99997596, 99.99997658, 99.99997718, 99.99997777, 99.99997834, 99.9999789, 99.99997945, 99.99997998, 99.9999805, 99.999981, 99.9999815, 99.99998198, 99.99998245, 99.9999829, 99.99998335, 99.99998378, 99.9999842, 99.99998462, 99.99998502, 99.99998541, 99.99998579, 99.99998616, 99.99998653, 99.99998688, 99.99998722, 99.99998756, 99.99998789, 99.99998821, 99.99998852, 99.99998882, 99.99998912, 99.9999894, 99.99998968, 99.99998996, 99.99999022, 99.99999048, 99.99999073, 99.99999098, 99.99999122, 99.99999145, 99.99999168, 99.9999919, 99.99999212, 99.99999233, 99.99999253, 99.99999273, 99.99999293, 99.99999312, 99.9999933, 99.99999348, 99.99999366, 99.99999383, 99.99999399, 99.99999416, 99.99999431, 99.99999447, 99.99999462, 99.99999476, 99.9999949, 99.99999504, 99.99999518, 99.99999531, 99.99999543, 99.99999556, 99.99999568, 99.9999958, 99.99999591, 99.99999602, 99.99999613, 99.99999624, 99.99999634, 99.99999644, 99.99999654, 99.99999663, 99.99999672, 99.99999681, 99.9999969, 99.99999699, 99.99999707, 99.99999715, 99.99999723, 99.9999973, 99.99999738, 99.99999745, 99.99999752, 99.99999759, 99.99999766, 99.99999772, 99.99999778, 99.99999785, 99.99999791, 99.99999796, 99.99999802, 99.99999808, 99.99999813, 99.99999818, 99.99999823, 99.99999828, 99.99999833, 99.99999838, 99.99999842, 99.99999847, 99.99999851, 99.99999855, 99.99999859, 99.99999863, 99.99999867, 99.99999871, 99.99999874, 99.99999878, 99.99999881, 99.99999885, 99.99999888, 99.99999891, 99.99999894, 99.99999897, 99.999999, 99.99999903, 99.99999906, 99.99999908, 99.99999911, 99.99999914, 99.99999916, 99.99999918, 99.99999921, 99.99999923, 99.99999925, 99.99999927, 99.99999929, 99.99999931, 99.99999933, 99.99999935, 99.99999937, 99.99999939, 99.99999941, 99.99999942, 99.99999944, 99.99999946, 99.99999947, 99.99999949, 99.9999995, 99.99999952, 99.99999953, 99.99999955, 99.99999956, 99.99999957, 99.99999958, 99.9999996, 99.99999961, 99.99999962, 99.99999963, 99.99999964, 99.99999965, 99.99999966, 99.99999967, 99.99999968, 99.99999969, 99.9999997, 99.99999971, 99.99999972, 99.99999973, 99.99999973, 99.99999974, 99.99999975, 99.99999976, 99.99999976, 99.99999977, 99.99999978, 99.99999978, 99.99999979, 99.9999998, 99.9999998, 99.99999981, 99.99999981, 99.99999982, 99.99999982, 99.99999983, 99.99999983, 99.99999984, 99.99999984, 99.99999985, 99.99999985, 99.99999986, 99.99999986, 99.99999987, 99.99999987, 99.99999987, 99.99999988, 99.99999988, 99.99999989, 99.99999989, 99.99999989, 99.9999999, 99.9999999, 99.9999999, 99.9999999, 99.99999991, 99.99999991, 99.99999991, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_LMCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "component_matrix", "component.contribution.matrix"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ID", "sample_code", "n.components", "Im1", "xm1", "b1", "b1.error", "n01", "n01.error", "cs1", "rel_cs1", "Im2", "xm2", "b2", "b2.error", "n02", "n02.error", "cs2", "rel_cs2", "Im3", "xm3", "b3", "b3.error", "n03", "n03.error", "cs3", "rel_cs3", "Im4", "xm4", "b4", "b4.error", "n04", "n04.error", "cs4", "rel_cs4", "Im5", "xm5", "b5", "b5.error", "n05", "n05.error", "cs5", "rel_cs5", "Im6", "xm6", "b6", "b6.error", "n06", "n06.error", "cs6", "rel_cs6", "Im7", "xm7", "b7", "b7.error", "n07", "n07.error", "cs7", "rel_cs7", "pseudo-R^2"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": [""] }, { "type": "character", "attributes": {}, "value": [""] }, { "type": "double", "attributes": {}, "value": [3] }, { "type": "double", "attributes": {}, "value": [169.43653425] }, { "type": "double", "attributes": {}, "value": [49.00509076] }, { "type": "double", "attributes": {}, "value": [1.6656264] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [13689.74940598] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1.95548249e-17] }, { "type": "double", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [23.01175861] }, { "type": "double", "attributes": {}, "value": [204.34968702] }, { "type": "double", "attributes": {}, "value": [0.09578821] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [7753.02219862] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1.12457487e-18] }, { "type": "double", "attributes": {}, "value": [0.0575] }, { "type": "double", "attributes": {}, "value": [405.46223129] }, { "type": "double", "attributes": {}, "value": [1591.66299806] }, { "type": "double", "attributes": {}, "value": [0.00157891] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1064017.49082015] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1.85367711e-20] }, { "type": "double", "attributes": {}, "value": [0.0009] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [0.9437] } ] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [4000, 5] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["TIME", "SUM", "COMP_ 1", "COMP_ 2", "COMP_ 3"] } ] } }, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 6.30497231, 12.6028133, 18.8864065, 25.14866497, 31.38254609, 37.58106602, 43.73731417, 49.84446731, 55.8958035, 61.88471574, 67.80472526, 73.64949441, 79.41283922, 85.08874145, 90.67136023, 96.15504311, 101.5343367, 106.80399659, 111.95899684, 116.99453878, 121.90605914, 126.68923765, 131.34000384, 135.85454326, 140.22930296, 144.46099628, 148.5466069, 152.48339224, 156.2688861, 159.90090058, 163.37752729, 166.6971379, 169.8583839, 172.86019576, 175.70178133, 178.38262365, 180.90247802, 183.26136854, 185.45958393, 187.49767287, 189.37643865, 191.09693337, 192.66045157, 194.0685234, 195.32290728, 196.4255822, 197.37873949, 198.18477439, 198.84627709, 199.36602363, 199.74696638, 199.99222437, 200.1050734, 200.08893588, 199.94737067, 199.68406266, 199.30281241, 198.80752558, 198.20220253, 197.49092774, 196.67785944, 195.7672192, 194.76328166, 193.67036439, 192.49281792, 191.23501589, 189.90134545, 188.49619787, 187.02395942, 185.48900245, 183.8956768, 182.24830154, 180.55115693, 178.80847679, 177.0244412, 175.2031695, 173.34871373, 171.46505234, 169.55608439, 167.62562401, 165.67739538, 163.71502795, 161.74205214, 159.76189543, 157.77787879, 155.79321351, 153.81099842, 151.83421745, 149.86573763, 147.90830736, 145.96455508, 144.03698827, 142.12799282, 140.23983267, 138.37464977, 136.53446438, 134.72117564, 132.93656234, 131.18228412, 129.45988274, 127.77078368, 126.11629798, 124.49762419, 122.91585061, 121.37195769, 119.86682052, 118.40121156, 116.97580347, 115.59117207, 114.24779937, 112.94607675, 111.68630818, 110.46871356, 109.29343205, 108.16052547, 107.06998178, 106.02171849, 105.01558617, 104.05137191, 103.12880274, 102.24754915, 101.40722842, 100.60740806, 99.8476091, 99.12730939, 98.44594682, 97.80292247, 97.19760371, 96.62932719, 96.09740181, 95.60111151, 95.13971809, 94.71246383, 94.3185741, 93.95725982, 93.62771983, 93.32914319, 93.06071136, 92.82160025, 92.61098224, 92.42802801, 92.27190836, 92.14179585, 92.03686637, 91.95630066, 91.89928564, 91.86501573, 91.85269402, 91.86153338, 91.89075745, 91.93960161, 92.00731378, 92.09315521, 92.19640112, 92.31634137, 92.45228093, 92.60354039, 92.76945632, 92.94938166, 93.14268592, 93.34875546, 93.56699364, 93.79682088, 94.03767481, 94.28901019, 94.55029899, 94.82103023, 95.10070993, 95.38886098, 95.68502293, 95.98875185, 96.29962007, 96.61721594, 96.94114358, 97.27102257, 97.60648767, 97.94718848, 98.29278913, 98.6429679, 98.99741693, 99.35584178, 99.71796113, 100.08350638, 100.45222127, 100.82386152, 101.19819442, 101.5749985, 101.9540631, 102.33518805, 102.71818324, 103.10286831, 103.48907223, 103.87663301, 104.26539727, 104.65521995, 105.04596397, 105.43749985, 105.82970546, 106.22246563, 106.6156719, 107.00922219, 107.40302051, 107.7969767, 108.19100612, 108.58502945, 108.97897234, 109.37276527, 109.76634321, 110.15964548, 110.55261547, 110.94520045, 111.33735137, 111.72902266, 112.12017204, 112.51076035, 112.90075138, 113.29011169, 113.67881046, 114.06681937, 114.45411242, 114.84066579, 115.22645777, 115.61146858, 115.99568026, 116.3790766, 116.76164299, 117.14336635, 117.52423502, 117.90423868, 118.28336827, 118.66161589, 119.03897475, 119.41543911, 119.79100415, 120.16566598, 120.53942156, 120.9122686, 121.28420558, 121.65523165, 122.02534659, 122.3945508, 122.76284521, 123.13023129, 123.49671097, 123.86228664, 124.2269611, 124.59073755, 124.95361953, 125.31561094, 125.67671597, 126.03693911, 126.3962851, 126.75475895, 127.11236589, 127.46911135, 127.82500099, 128.18004063, 128.53423624, 128.88759399, 129.24012016, 129.59182117, 129.94270356, 130.29277401, 130.64203926, 130.99050617, 131.33818169, 131.68507285, 132.03118674, 132.37653052, 132.72111143, 133.06493674, 133.40801379, 133.75034995, 134.09195266, 134.43282935, 134.77298754, 135.11243472, 135.45117846, 135.78922632, 136.12658589, 136.46326478, 136.79927061, 137.134611, 137.46929361, 137.80332607, 138.13671605, 138.46947121, 138.8015992, 139.13310767, 139.46400429, 139.79429671, 140.12399257, 140.45309952, 140.78162517, 141.10957716, 141.43696309, 141.76379055, 142.09006714, 142.41580043, 142.74099795, 143.06566725, 143.38981584, 143.71345123, 144.03658088, 144.35921226, 144.6813528, 145.00300991, 145.32419098, 145.64490337, 145.96515441, 146.28495142, 146.60430168, 146.92321244, 147.24169093, 147.55974434, 147.87737985, 148.19460458, 148.51142564, 148.8278501, 149.143885, 149.45953733, 149.77481407, 150.08972215, 150.40426847, 150.71845988, 151.03230322, 151.34580527, 151.65897278, 151.97181246, 152.28433097, 152.59653495, 152.90843099, 153.22002564, 153.5313254, 153.84233674, 154.15306609, 154.46351982, 154.77370427, 155.08362573, 155.39329046, 155.70270465, 156.01187447, 156.32080602, 156.62950538, 156.93797856, 157.24623155, 157.55427026, 157.86210057, 158.16972832, 158.47715929, 158.78439922, 159.09145378, 159.39832862, 159.70502932, 160.01156142, 160.3179304, 160.62414171, 160.93020073, 161.23611278, 161.54188317, 161.84751711, 162.15301979, 162.45839633, 162.76365182, 163.06879128, 163.37381967, 163.67874193, 163.9835629, 164.28828742, 164.59292023, 164.89746604, 165.20192951, 165.50631523, 165.81062776, 166.11487158, 166.41905113, 166.72317079, 167.0272349, 167.33124773, 167.63521351, 167.93913639, 168.24302049, 168.54686988, 168.85068854, 169.15448044, 169.45824947, 169.76199947, 170.06573422, 170.36945745, 170.67317285, 170.97688403, 171.28059456, 171.58430796, 171.88802769, 172.19175714, 172.49549967, 172.79925858, 173.1030371, 173.40683843, 173.7106657, 174.01452199, 174.31841033, 174.62233368, 174.92629498, 175.23029708, 175.53434279, 175.83843488, 176.14257605, 176.44676896, 176.7510162, 177.05532033, 177.35968384, 177.66410917, 177.96859871, 178.27315481, 178.57777975, 178.88247576, 179.18724504, 179.49208972, 179.79701187, 180.10201353, 180.40709669, 180.71226327, 181.01751516, 181.32285418, 181.62828213, 181.93380072, 182.23941166, 182.54511656, 182.85091702, 183.15681458, 183.46281073, 183.7689069, 184.0751045, 184.38140487, 184.68780931, 184.99431908, 185.30093538, 185.60765939, 185.9144922, 186.2214349, 186.52848851, 186.83565401, 187.14293234, 187.45032439, 187.75783101, 188.065453, 188.37319113, 188.6810461, 188.98901861, 189.29710928, 189.60531871, 189.91364745, 190.22209599, 190.53066483, 190.83935437, 191.14816501, 191.4570971, 191.76615094, 192.07532681, 192.38462493, 192.69404549, 193.00358866, 193.31325454, 193.62304321, 193.93295472, 194.24298907, 194.55314623, 194.86342613, 195.17382867, 195.48435371, 195.79500108, 196.10577057, 196.41666193, 196.72767491, 197.03880917, 197.35006439, 197.6614402, 197.97293617, 198.28455189, 198.59628687, 198.90814061, 199.22011259, 199.53220225, 199.84440898, 200.15673218, 200.46917118, 200.78172532, 201.09439387, 201.40717612, 201.72007128, 202.03307858, 202.3461972, 202.65942628, 202.97276496, 203.28621234, 203.59976751, 203.9134295, 204.22719736, 204.54107008, 204.85504665, 205.16912601, 205.48330711, 205.79758885, 206.11197012, 206.42644978, 206.74102668, 207.05569964, 207.37046746, 207.68532892, 208.00028278, 208.31532777, 208.63046263, 208.94568604, 209.2609967, 209.57639326, 209.89187436, 210.20743864, 210.52308471, 210.83881115, 211.15461654, 211.47049943, 211.78645838, 212.10249191, 212.41859853, 212.73477673, 213.05102499, 213.36734178, 213.68372556, 214.00017475, 214.3166878, 214.63326309, 214.94989904, 215.26659404, 215.58334644, 215.90015462, 216.21701692, 216.53393169, 216.85089724, 217.1679119, 217.48497397, 217.80208175, 218.11923353, 218.43642757, 218.75366215, 219.07093553, 219.38824595, 219.70559165, 220.02297088, 220.34038185, 220.65782278, 220.97529188, 221.29278735, 221.61030739, 221.9278502, 222.24541395, 222.56299682, 222.88059698, 223.19821261, 223.51584185, 223.83348287, 224.15113382, 224.46879285, 224.7864581, 225.1041277, 225.4217998, 225.73947253, 226.05714401, 226.37481237, 226.69247573, 227.01013222, 227.32777994, 227.64541702, 227.96304158, 228.28065172, 228.59824555, 228.91582118, 229.23337673, 229.55091029, 229.86841998, 230.18590391, 230.50336017, 230.82078688, 231.13818214, 231.45554406, 231.77287075, 232.09016031, 232.40741085, 232.72462048, 233.04178732, 233.35890948, 233.67598506, 233.99301219, 234.30998899, 234.62691357, 234.94378406, 235.26059857, 235.57735525, 235.89405221, 236.2106876, 236.52725954, 236.84376618, 237.16020565, 237.47657611, 237.7928757, 238.10910258, 238.4252549, 238.74133082, 239.05732851, 239.37324614, 239.68908188, 240.00483391, 240.32050041, 240.63607958, 240.95156959, 241.26696865, 241.58227497, 241.89748674, 242.21260219, 242.52761953, 242.84253698, 243.15735277, 243.47206514, 243.78667233, 244.10117259, 244.41556416, 244.72984531, 245.0440143, 245.35806941, 245.6720089, 245.98583107, 246.2995342, 246.6131166, 246.92657655, 247.23991238, 247.55312241, 247.86620494, 248.17915833, 248.49198089, 248.80467099, 249.11722696, 249.42964717, 249.74192998, 250.05407378, 250.36607692, 250.67793782, 250.98965486, 251.30122644, 251.61265097, 251.92392688, 252.23505259, 252.54602652, 252.85684713, 253.16751286, 253.47802216, 253.78837351, 254.09856537, 254.40859622, 254.71846455, 255.02816886, 255.33770764, 255.64707942, 255.95628271, 256.26531603, 256.57417793, 256.88286694, 257.19138163, 257.49972054, 257.80788224, 258.11586532, 258.42366836, 258.73128994, 259.03872868, 259.34598317, 259.65305203, 259.9599339, 260.2666274, 260.57313117, 260.87944386, 261.18556414, 261.49149066, 261.79722211, 262.10275716, 262.4080945, 262.71323284, 263.01817088, 263.32290733, 263.62744092, 263.93177038, 264.23589446, 264.53981189, 264.84352143, 265.14702185, 265.45031193, 265.75339043, 266.05625615, 266.35890789, 266.66134445, 266.96356464, 267.26556729, 267.56735122, 267.86891527, 268.17025828, 268.47137911, 268.77227662, 269.07294968, 269.37339716, 269.67361794, 269.97361093, 270.27337501, 270.5729091, 270.87221212, 271.17128298, 271.47012062, 271.76872397, 272.06709199, 272.36522363, 272.66311784, 272.96077361, 273.2581899, 273.5553657, 273.8523, 274.1489918, 274.44544011, 274.74164394, 275.03760231, 275.33331426, 275.62877882, 275.92399503, 276.21896194, 276.51367862, 276.80814412, 277.10235752, 277.3963179, 277.69002435, 277.98347595, 278.27667182, 278.56961104, 278.86229275, 279.15471607, 279.44688011, 279.73878402, 280.03042693, 280.321808, 280.61292638, 280.90378123, 281.19437173, 281.48469703, 281.77475634, 282.06454883, 282.3540737, 282.64333015, 282.93231739, 283.22103463, 283.50948109, 283.797656, 284.08555858, 284.37318809, 284.66054376, 284.94762484, 285.2344306, 285.52096029, 285.80721318, 286.09318855, 286.37888568, 286.66430385, 286.94944236, 287.23430051, 287.5188776, 287.80317293, 288.08718583, 288.37091562, 288.65436162, 288.93752316, 289.22039959, 289.50299024, 289.78529447, 290.06731162, 290.34904106, 290.63048215, 290.91163426, 291.19249677, 291.47306905, 291.7533505, 292.0333405, 292.31303844, 292.59244373, 292.87155578, 293.15037399, 293.42889777, 293.70712656, 293.98505977, 294.26269684, 294.54003719, 294.81708027, 295.09382552, 295.37027239, 295.64642034, 295.92226882, 296.19781729, 296.47306522, 296.74801208, 297.02265734, 297.2970005, 297.57104102, 297.84477841, 298.11821214, 298.39134173, 298.66416666, 298.93668646, 299.20890061, 299.48080865, 299.75241008, 300.02370444, 300.29469123, 300.56537, 300.83574028, 301.1058016, 301.3755535, 301.64499554, 301.91412726, 302.1829482, 302.45145794, 302.71965602, 302.98754202, 303.25511549, 303.52237601, 303.78932316, 304.05595651, 304.32227564, 304.58828013, 304.85396958, 305.11934358, 305.38440172, 305.64914359, 305.91356881, 306.17767698, 306.44146769, 306.70494057, 306.96809523, 307.23093128, 307.49344835, 307.75564606, 308.01752404, 308.27908191, 308.54031931, 308.80123588, 309.06183124, 309.32210505, 309.58205695, 309.84168659, 310.10099361, 310.35997767, 310.61863842, 310.87697552, 311.13498864, 311.39267743, 311.65004157, 311.90708072, 312.16379455, 312.42018275, 312.67624497, 312.93198091, 313.18739025, 313.44247267, 313.69722786, 313.9516555, 314.20575529, 314.45952692, 314.7129701, 314.96608451, 315.21886986, 315.47132586, 315.7234522, 315.9752486, 316.22671477, 316.47785041, 316.72865525, 316.97912901, 317.22927139, 317.47908213, 317.72856094, 317.97770755, 318.22652169, 318.47500309, 318.72315148, 318.97096659, 319.21844816, 319.46559593, 319.71240964, 319.95888902, 320.20503382, 320.4508438, 320.69631868, 320.94145823, 321.1862622, 321.43073033, 321.67486239, 321.91865812, 322.16211729, 322.40523966, 322.64802499, 322.89047304, 323.13258358, 323.37435638, 323.6157912, 323.85688781, 324.09764599, 324.33806551, 324.57814615, 324.81788768, 325.05728988, 325.29635253, 325.53507542, 325.77345832, 326.01150103, 326.24920332, 326.48656499, 326.72358582, 326.96026561, 327.19660415, 327.43260123, 327.66825665, 327.9035702, 328.13854169, 328.37317091, 328.60745766, 328.84140175, 329.07500298, 329.30826115, 329.54117607, 329.77374756, 330.00597541, 330.23785944, 330.46939946, 330.70059528, 330.93144673, 331.1619536, 331.39211573, 331.62193293, 331.85140501, 332.08053181, 332.30931313, 332.53774882, 332.76583868, 332.99358254, 333.22098024, 333.44803159, 333.67473644, 333.9010946, 334.12710591, 334.35277021, 334.57808732, 334.80305709, 335.02767934, 335.25195391, 335.47588065, 335.69945939, 335.92268998, 336.14557225, 336.36810604, 336.59029121, 336.81212759, 337.03361503, 337.25475337, 337.47554248, 337.69598218, 337.91607235, 338.13581281, 338.35520343, 338.57424407, 338.79293456, 339.01127478, 339.22926457, 339.44690379, 339.66419229, 339.88112995, 340.09771661, 340.31395215, 340.52983641, 340.74536926, 340.96055057, 341.1753802, 341.38985802, 341.60398389, 341.81775767, 342.03117925, 342.24424848, 342.45696523, 342.66932938, 342.88134081, 343.09299937, 343.30430494, 343.51525741, 343.72585664, 343.93610251, 344.14599489, 344.35553368, 344.56471873, 344.77354994, 344.98202718, 345.19015033, 345.39791928, 345.60533391, 345.8123941, 346.01909973, 346.2254507, 346.43144689, 346.63708818, 346.84237447, 347.04730563, 347.25188157, 347.45610216, 347.65996731, 347.8634769, 348.06663082, 348.26942898, 348.47187125, 348.67395755, 348.87568775, 349.07706177, 349.27807949, 349.47874081, 349.67904564, 349.87899387, 350.0785854, 350.27782013, 350.47669797, 350.67521881, 350.87338256, 351.07118913, 351.26863842, 351.46573032, 351.66246476, 351.85884163, 352.05486085, 352.25052232, 352.44582594, 352.64077164, 352.83535932, 353.02958889, 353.22346026, 353.41697335, 353.61012807, 353.80292433, 353.99536205, 354.18744114, 354.37916152, 354.5705231, 354.76152581, 354.95216956, 355.14245427, 355.33237986, 355.52194624, 355.71115335, 355.9000011, 356.08848941, 356.27661821, 356.46438741, 356.65179696, 356.83884676, 357.02553675, 357.21186684, 357.39783698, 357.58344708, 357.76869708, 357.9535869, 358.13811647, 358.32228573, 358.50609459, 358.68954301, 358.8726309, 359.0553582, 359.23772485, 359.41973077, 359.60137591, 359.7826602, 359.96358357, 360.14414596, 360.32434731, 360.50418756, 360.68366665, 360.86278451, 361.04154108, 361.21993632, 361.39797015, 361.57564251, 361.75295337, 361.92990264, 362.10649029, 362.28271625, 362.45858047, 362.6340829, 362.80922347, 362.98400215, 363.15841887, 363.33247358, 363.50616624, 363.67949679, 363.85246518, 364.02507137, 364.19731531, 364.36919694, 364.54071622, 364.71187311, 364.88266755, 365.0530995, 365.22316893, 365.39287578, 365.56222, 365.73120157, 365.89982042, 366.06807653, 366.23596986, 366.40350035, 366.57066798, 366.7374727, 366.90391447, 367.06999325, 367.23570902, 367.40106173, 367.56605134, 367.73067782, 367.89494114, 368.05884126, 368.22237814, 368.38555176, 368.54836208, 368.71080907, 368.8728927, 369.03461294, 369.19596975, 369.35696311, 369.51759299, 369.67785935, 369.83776219, 369.99730145, 370.15647713, 370.31528919, 370.47373761, 370.63182237, 370.78954343, 370.94690078, 371.10389439, 371.26052424, 371.41679031, 371.57269258, 371.72823103, 371.88340563, 372.03821638, 372.19266324, 372.34674621, 372.50046526, 372.65382037, 372.80681154, 372.95943874, 373.11170196, 373.26360119, 373.41513641, 373.56630761, 373.71711477, 373.86755789, 374.01763695, 374.16735193, 374.31670284, 374.46568966, 374.61431238, 374.76257099, 374.91046549, 375.05799586, 375.2051621, 375.35196421, 375.49840218, 375.64447599, 375.79018566, 375.93553117, 376.08051252, 376.2251297, 376.36938273, 376.51327159, 376.65679628, 376.7999568, 376.94275315, 377.08518534, 377.22725337, 377.36895722, 377.51029692, 377.65127246, 377.79188385, 377.93213108, 378.07201417, 378.21153312, 378.35068793, 378.48947861, 378.62790518, 378.76596763, 378.90366597, 379.04100022, 379.17797038, 379.31457646, 379.45081848, 379.58669643, 379.72221035, 379.85736023, 379.9921461, 380.12656795, 380.26062582, 380.3943197, 380.52764963, 380.66061561, 380.79321765, 380.92545578, 381.05733002, 381.18884038, 381.31998687, 381.45076953, 381.58118836, 381.71124339, 381.84093464, 381.97026213, 382.09922588, 382.22782592, 382.35606227, 382.48393494, 382.61144397, 382.73858938, 382.8653712, 382.99178945, 383.11784416, 383.24353535, 383.36886305, 383.49382729, 383.6184281, 383.74266551, 383.86653954, 383.99005024, 384.11319762, 384.23598172, 384.35840258, 384.48046022, 384.60215468, 384.72348598, 384.84445418, 384.9650593, 385.08530137, 385.20518043, 385.32469652, 385.44384968, 385.56263994, 385.68106734, 385.79913192, 385.91683372, 386.03417277, 386.15114913, 386.26776283, 386.3840139, 386.49990241, 386.61542837, 386.73059185, 386.84539288, 386.9598315, 387.07390777, 387.18762172, 387.30097341, 387.41396287, 387.52659017, 387.63885533, 387.75075842, 387.86229948, 387.97347855, 388.0842957, 388.19475097, 388.3048444, 388.41457606, 388.52394599, 388.63295425, 388.74160088, 388.84988595, 388.9578095, 389.0653716, 389.17257229, 389.27941163, 389.38588968, 389.4920065, 389.59776214, 389.70315666, 389.80819011, 389.91286257, 390.01717408, 390.12112471, 390.22471451, 390.32794356, 390.4308119, 390.53331961, 390.63546674, 390.73725336, 390.83867954, 390.93974532, 391.04045079, 391.14079601, 391.24078104, 391.34040595, 391.43967081, 391.53857568, 391.63712063, 391.73530573, 391.83313105, 391.93059666, 392.02770263, 392.12444903, 392.22083593, 392.31686341, 392.41253153, 392.50784036, 392.60278999, 392.69738049, 392.79161193, 392.88548438, 392.97899792, 393.07215263, 393.16494858, 393.25738585, 393.34946452, 393.44118467, 393.53254637, 393.62354971, 393.71419476, 393.8044816, 393.89441032, 393.98398099, 394.0731937, 394.16204853, 394.25054557, 394.33868489, 394.42646658, 394.51389072, 394.60095741, 394.68766672, 394.77401874, 394.86001356, 394.94565126, 395.03093193, 395.11585567, 395.20042255, 395.28463267, 395.36848612, 395.45198298, 395.53512336, 395.61790733, 395.70033499, 395.78240644, 395.86412176, 395.94548105, 396.0264844, 396.10713191, 396.18742367, 396.26735978, 396.34694033, 396.42616542, 396.50503514, 396.5835496, 396.66170888, 396.7395131, 396.81696234, 396.89405671, 396.97079631, 397.04718123, 397.12321158, 397.19888746, 397.27420898, 397.34917622, 397.4237893, 397.49804832, 397.57195339, 397.6455046, 397.71870207, 397.79154589, 397.86403617, 397.93617303, 398.00795656, 398.07938688, 398.15046409, 398.2211883, 398.29155962, 398.36157816, 398.43124403, 398.50055734, 398.5695182, 398.63812671, 398.706383, 398.77428718, 398.84183936, 398.90903964, 398.97588815, 399.042385, 399.10853031, 399.17432418, 399.23976674, 399.30485811, 399.36959839, 399.4339877, 399.49802617, 399.56171392, 399.62505105, 399.68803769, 399.75067396, 399.81295998, 399.87489587, 399.93648175, 399.99771775, 400.05860398, 400.11914057, 400.17932763, 400.23916531, 400.29865371, 400.35779296, 400.41658319, 400.47502453, 400.53311709, 400.59086101, 400.64825641, 400.70530343, 400.76200218, 400.8183528, 400.87435541, 400.93001015, 400.98531714, 401.04027652, 401.09488841, 401.14915295, 401.20307026, 401.25664049, 401.30986376, 401.36274021, 401.41526997, 401.46745317, 401.51928995, 401.57078044, 401.62192478, 401.67272311, 401.72317556, 401.77328226, 401.82304337, 401.872459, 401.92152931, 401.97025443, 402.01863449, 402.06666965, 402.11436004, 402.16170579, 402.20870706, 402.25536398, 402.3016767, 402.34764535, 402.39327008, 402.43855104, 402.48348836, 402.5280822, 402.57233269, 402.61623998, 402.65980422, 402.70302556, 402.74590413, 402.78844009, 402.83063359, 402.87248476, 402.91399377, 402.95516076, 402.99598588, 403.03646928, 403.07661111, 403.11641151, 403.15587065, 403.19498867, 403.23376573, 403.27220197, 403.31029755, 403.34805263, 403.38546735, 403.42254187, 403.45927636, 403.49567095, 403.53172581, 403.56744109, 403.60281695, 403.63785355, 403.67255105, 403.70690959, 403.74092935, 403.77461047, 403.80795312, 403.84095746, 403.87362365, 403.90595185, 403.93794221, 403.96959491, 404.00091009, 404.03188794, 404.0625286, 404.09283223, 404.12279902, 404.15242911, 404.18172267, 404.21067987, 404.23930088, 404.26758585, 404.29553495, 404.32314836, 404.35042624, 404.37736874, 404.40397606, 404.43024834, 404.45618577, 404.4817885, 404.50705671, 404.53199057, 404.55659025, 404.58085593, 404.60478776, 404.62838592, 404.65165059, 404.67458194, 404.69718014, 404.71944537, 404.74137779, 404.76297758, 404.78424493, 404.80517999, 404.82578295, 404.84605399, 404.86599327, 404.88560098, 404.9048773, 404.92382239, 404.94243645, 404.96071964, 404.97867215, 404.99629416, 405.01358584, 405.03054738, 405.04717895, 405.06348074, 405.07945293, 405.0950957, 405.11040923, 405.1253937, 405.14004931, 405.15437622, 405.16837463, 405.18204472, 405.19538667, 405.20840067, 405.2210869, 405.23344555, 405.24547681, 405.25718086, 405.26855789, 405.27960809, 405.29033164, 405.30072873, 405.31079956, 405.3205443, 405.32996316, 405.33905631, 405.34782396, 405.35626628, 405.36438347, 405.37217573, 405.37964324, 405.3867862, 405.3936048, 405.40009923, 405.40626969, 405.41211636, 405.41763945, 405.42283914, 405.42771564, 405.43226913, 405.43649982, 405.4404079, 405.44399356, 405.44725701, 405.45019844, 405.45281804, 405.45511602, 405.45709258, 405.4587479, 405.4600822, 405.46109567, 405.46178851, 405.46216093, 405.46221311, 405.46194527, 405.46135761, 405.46045032, 405.45922361, 405.45767768, 405.45581273, 405.45362897, 405.45112661, 405.44830584, 405.44516687, 405.4417099, 405.43793514, 405.4338428, 405.42943308, 405.42470619, 405.41966233, 405.41430171, 405.40862454, 405.40263103, 405.39632138, 405.38969581, 405.38275451, 405.37549771, 405.36792561, 405.36003842, 405.35183635, 405.34331961, 405.33448841, 405.32534297, 405.31588349, 405.3061102, 405.29602329, 405.28562299, 405.2749095, 405.26388304, 405.25254383, 405.24089207, 405.22892799, 405.2166518, 405.20406371, 405.19116393, 405.1779527, 405.16443021, 405.15059669, 405.13645236, 405.12199743, 405.10723213, 405.09215666, 405.07677124, 405.06107611, 405.04507147, 405.02875754, 405.01213455, 404.99520271, 404.97796225, 404.96041338, 404.94255634, 404.92439133, 404.90591858, 404.88713832, 404.86805076, 404.84865614, 404.82895466, 404.80894656, 404.78863207, 404.76801139, 404.74708477, 404.72585242, 404.70431456, 404.68247144, 404.66032326, 404.63787027, 404.61511267, 404.59205071, 404.56868461, 404.54501459, 404.52104089, 404.49676373, 404.47218334, 404.44729995, 404.42211379, 404.39662508, 404.37083407, 404.34474098, 404.31834604, 404.29164947, 404.26465152, 404.23735242, 404.20975239, 404.18185166, 404.15365048, 404.12514907, 404.09634767, 404.0672465, 404.03784581, 404.00814583, 403.97814679, 403.94784893, 403.91725248, 403.88635768, 403.85516476, 403.82367396, 403.79188551, 403.75979966, 403.72741664, 403.69473668, 403.66176003, 403.62848692, 403.59491759, 403.56105227, 403.52689122, 403.49243466, 403.45768284, 403.42263599, 403.38729436, 403.35165819, 403.31572771, 403.27950317, 403.24298481, 403.20617287, 403.16906759, 403.13166921, 403.09397799, 403.05599415, 403.01771794, 402.97914962, 402.94028941, 402.90113756, 402.86169432, 402.82195994, 402.78193465, 402.7416187, 402.70101235, 402.66011582, 402.61892938, 402.57745326, 402.53568771, 402.49363298, 402.45128932, 402.40865697, 402.36573618, 402.3225272, 402.27903028, 402.23524566, 402.1911736, 402.14681435, 402.10216815, 402.05723525, 402.0120159, 401.96651036, 401.92071887, 401.87464168, 401.82827906, 401.78163123, 401.73469847, 401.68748102, 401.63997913, 401.59219306, 401.54412305, 401.49576937, 401.44713226, 401.39821198, 401.34900878, 401.29952292, 401.24975465, 401.19970422, 401.14937189, 401.09875792, 401.04786256, 400.99668607, 400.94522869, 400.8934907, 400.84147234, 400.78917388, 400.73659556, 400.68373765, 400.6306004, 400.57718408, 400.52348893, 400.46951522, 400.41526321, 400.36073316, 400.30592532, 400.25083995, 400.19547732, 400.13983768, 400.08392129, 400.02772842, 399.97125933, 399.91451427, 399.8574935, 399.8001973, 399.74262592, 399.68477961, 399.62665866, 399.5682633, 399.50959382, 399.45065047, 399.39143352, 399.33194322, 399.27217985, 399.21214366, 399.15183492, 399.0912539, 399.03040086, 398.96927606, 398.90787977, 398.84621225, 398.78427378, 398.72206461, 398.65958501, 398.59683526, 398.5338156, 398.47052632, 398.40696768, 398.34313994, 398.27904338, 398.21467826, 398.15004485, 398.08514341, 398.01997423, 397.95453755, 397.88883366, 397.82286282, 397.7566253, 397.69012138, 397.62335131, 397.55631538, 397.48901385, 397.42144699, 397.35361507, 397.28551836, 397.21715714, 397.14853168, 397.07964224, 397.0104891, 396.94107254, 396.87139281, 396.80145021, 396.73124499, 396.66077743, 396.59004781, 396.51905639, 396.44780346, 396.37628928, 396.30451413, 396.23247828, 396.16018202, 396.0876256, 396.01480931, 395.94173343, 395.86839822, 395.79480396, 395.72095093, 395.64683941, 395.57246967, 395.49784198, 395.42295663, 395.34781389, 395.27241403, 395.19675734, 395.12084409, 395.04467455, 394.96824902, 394.89156776, 394.81463105, 394.73743917, 394.6599924, 394.58229102, 394.5043353, 394.42612553, 394.34766199, 394.26894495, 394.1899747, 394.11075151, 394.03127566, 393.95154744, 393.87156712, 393.79133499, 393.71085132, 393.63011641, 393.54913052, 393.46789394, 393.38640695, 393.30466984, 393.22268288, 393.14044636, 393.05796056, 392.97522576, 392.89224225, 392.8090103, 392.72553021, 392.64180225, 392.5578267, 392.47360386, 392.389134, 392.30441742, 392.21945438, 392.13424519, 392.04879011, 391.96308944, 391.87714347, 391.79095246, 391.70451673, 391.61783653, 391.53091217, 391.44374393, 391.3563321, 391.26867695, 391.18077878, 391.09263787, 391.00425451, 390.91562899, 390.82676159, 390.7376526, 390.64830231, 390.55871101, 390.46887897, 390.3788065, 390.28849387, 390.19794138, 390.10714931, 390.01611795, 389.9248476, 389.83333854, 389.74159105, 389.64960543, 389.55738197, 389.46492095, 389.37222267, 389.27928741, 389.18611547, 389.09270714, 388.99906269, 388.90518244, 388.81106665, 388.71671564, 388.62212968, 388.52730907, 388.43225409, 388.33696505, 388.24144223, 388.14568592, 388.04969641, 387.953474, 387.85701897, 387.76033163, 387.66341225, 387.56626115, 387.46887859, 387.37126489, 387.27342032, 387.1753452, 387.0770398, 386.97850442, 386.87973935, 386.78074489, 386.68152133, 386.58206897, 386.48238809, 386.382479, 386.28234198, 386.18197733, 386.08138535, 385.98056633, 385.87952056, 385.77824834, 385.67674997, 385.57502573, 385.47307592, 385.37090085, 385.2685008, 385.16587607, 385.06302695, 384.95995375, 384.85665675, 384.75313626, 384.64939257, 384.54542597, 384.44123676, 384.33682525, 384.23219171, 384.12733646, 384.02225979, 383.91696199, 383.81144337, 383.70570422, 383.59974483, 383.49356551, 383.38716655, 383.28054825, 383.17371091, 383.06665482, 382.95938029, 382.85188761, 382.74417708, 382.636249, 382.52810366, 382.41974137, 382.31116242, 382.20236712, 382.09335576, 381.98412864, 381.87468606, 381.76502831, 381.65515571, 381.54506854, 381.43476711, 381.32425172, 381.21352267, 381.10258025, 380.99142476, 380.88005651, 380.7684758, 380.65668293, 380.54467819, 380.43246189, 380.32003433, 380.2073958, 380.09454662, 379.98148707, 379.86821747, 379.7547381, 379.64104928, 379.5271513, 379.41304447, 379.29872908, 379.18420545, 379.06947386, 378.95453462, 378.83938803, 378.7240344, 378.60847403, 378.49270721, 378.37673425, 378.26055546, 378.14417113, 378.02758157, 377.91078707, 377.79378795, 377.6765845, 377.55917703, 377.44156583, 377.32375122, 377.2057335, 377.08751296, 376.96908991, 376.85046466, 376.7316375, 376.61260874, 376.49337869, 376.37394764, 376.25431591, 376.13448379, 376.01445158, 375.8942196, 375.77378814, 375.65315751, 375.53232801, 375.41129995, 375.29007363, 375.16864935, 375.04702742, 374.92520814, 374.80319182, 374.68097876, 374.55856927, 374.43596365, 374.3131622, 374.19016523, 374.06697304, 373.94358595, 373.82000424, 373.69622824, 373.57225823, 373.44809454, 373.32373746, 373.19918729, 373.07444435, 372.94950893, 372.82438135, 372.69906191, 372.57355091, 372.44784866, 372.32195547, 372.19587163, 372.06959746, 371.94313327, 371.81647934, 371.689636, 371.56260355, 371.4353823, 371.30797254, 371.18037459, 371.05258874, 370.92461532, 370.79645462, 370.66810695, 370.53957261, 370.41085192, 370.28194517, 370.15285268, 370.02357475, 369.89411168, 369.76446379, 369.63463138, 369.50461475, 369.37441421, 369.24403007, 369.11346264, 368.98271222, 368.85177911, 368.72066363, 368.58936608, 368.45788677, 368.32622601, 368.19438409, 368.06236134, 367.93015804, 367.79777452, 367.66521108, 367.53246803, 367.39954566, 367.2664443, 367.13316424, 366.99970579, 366.86606927, 366.73225497, 366.59826321, 366.46409429, 366.32974851, 366.19522619, 366.06052764, 365.92565315, 365.79060305, 365.65537762, 365.51997719, 365.38440206, 365.24865253, 365.11272892, 364.97663152, 364.84036066, 364.70391663, 364.56729974, 364.43051031, 364.29354863, 364.15641501, 364.01910977, 363.88163321, 363.74398563, 363.60616735, 363.46817867, 363.3300199, 363.19169135, 363.05319332, 362.91452612, 362.77569006, 362.63668545, 362.49751259, 362.3581718, 362.21866337, 362.07898762, 361.93914485, 361.79913538, 361.65895951, 361.51861754, 361.37810978, 361.23743655, 361.09659815, 360.95559488, 360.81442706, 360.67309499, 360.53159898, 360.38993933, 360.24811636, 360.10613037, 359.96398168, 359.82167057, 359.67919737, 359.53656239, 359.39376592, 359.25080828, 359.10768977, 358.9644107, 358.82097139, 358.67737212, 358.53361323, 358.389695, 358.24561775, 358.10138179, 357.95698742, 357.81243495, 357.66772469, 357.52285694, 357.37783201, 357.23265022, 357.08731186, 356.94181724, 356.79616668, 356.65036047, 356.50439893, 356.35828237, 356.21201108, 356.06558538, 355.91900557, 355.77227196, 355.62538487, 355.47834458, 355.33115142, 355.18380569, 355.03630769, 354.88865774, 354.74085614, 354.59290319, 354.4447992, 354.29654449, 354.14813935, 353.9995841, 353.85087904, 353.70202447, 353.55302071, 353.40386806, 353.25456682, 353.10511731, 352.95551983, 352.80577468, 352.65588218, 352.50584263, 352.35565633, 352.20532359, 352.05484473, 351.90422003, 351.75344982, 351.60253439, 351.45147406, 351.30026913, 351.1489199, 350.99742669, 350.84578979, 350.69400951, 350.54208616, 350.39002005, 350.23781148, 350.08546075, 349.93296818, 349.78033407, 349.62755871, 349.47464243, 349.32158552, 349.1683883, 349.01505105, 348.8615741, 348.70795775, 348.55420229, 348.40030805, 348.24627531, 348.09210439, 347.9377956, 347.78334923, 347.62876559, 347.47404499, 347.31918773, 347.16419412, 347.00906446, 346.85379906, 346.69839821, 346.54286223, 346.38719143, 346.23138609, 346.07544654, 345.91937307, 345.76316598, 345.60682559, 345.45035219, 345.29374609, 345.1370076, 344.98013701, 344.82313464, 344.66600078, 344.50873574, 344.35133982, 344.19381333, 344.03615657, 343.87836985, 343.72045346, 343.56240771, 343.40423291, 343.24592935, 343.08749734, 342.92893719, 342.77024919, 342.61143366, 342.45249088, 342.29342117, 342.13422483, 341.97490216, 341.81545346, 341.65587904, 341.4961792, 341.33635423, 341.17640445, 341.01633015, 340.85613165, 340.69580923, 340.5353632, 340.37479386, 340.21410152, 340.05328648, 339.89234904, 339.73128949, 339.57010815, 339.40880531, 339.24738127, 339.08583634, 338.92417082, 338.762385, 338.60047919, 338.4384537, 338.27630881, 338.11404483, 337.95166207, 337.78916082, 337.62654138, 337.46380406, 337.30094915, 337.13797695, 336.97488777, 336.8116819, 336.64835965, 336.48492131, 336.32136718, 336.15769757, 335.99391277, 335.83001309, 335.66599881, 335.50187025, 335.3376277, 335.17327145, 335.00880182, 334.8442191, 334.67952358, 334.51471556, 334.34979535, 334.18476325, 334.01961954, 333.85436453, 333.68899852, 333.52352181, 333.35793469, 333.19223746, 333.02643042, 332.86051387, 332.6944881, 332.52835342, 332.36211011, 332.19575849, 332.02929883, 331.86273145, 331.69605664, 331.52927469, 331.36238591, 331.19539058, 331.02828901, 330.86108149, 330.69376832, 330.5263498, 330.35882621, 330.19119787, 330.02346505, 329.85562807, 329.6876872, 329.51964276, 329.35149504, 329.18324432, 329.01489091, 328.84643511, 328.67787719, 328.50921747, 328.34045624, 328.17159379, 328.00263041, 327.8335664, 327.66440206, 327.49513767, 327.32577354, 327.15630995, 326.98674721, 326.81708559, 326.64732541, 326.47746695, 326.3075105, 326.13745636, 325.96730482, 325.79705617, 325.62671071, 325.45626873, 325.28573053, 325.11509639, 324.9443666, 324.77354147, 324.60262127, 324.43160632, 324.26049688, 324.08929327, 323.91799576, 323.74660465, 323.57512024, 323.40354281, 323.23187265, 323.06011006, 322.88825533, 322.71630874, 322.5442706, 322.37214118, 322.19992077, 322.02760968, 321.85520819, 321.68271658, 321.51013515, 321.3374642, 321.164704, 320.99185484, 320.81891703, 320.64589084, 320.47277656, 320.29957449, 320.12628491, 319.95290812, 319.77944439, 319.60589402, 319.4322573, 319.25853451, 319.08472594, 318.91083188, 318.73685262, 318.56278845, 318.38863964, 318.2144065, 318.0400893, 317.86568834, 317.6912039, 317.51663626, 317.34198572, 317.16725256, 316.99243706, 316.81753952, 316.64256021, 316.46749943, 316.29235745, 316.11713458, 315.94183108, 315.76644724, 315.59098336, 315.41543972, 315.23981659, 315.06411427, 314.88833303, 314.71247317, 314.53653497, 314.36051871, 314.18442467, 314.00825315, 313.83200441, 313.65567875, 313.47927646, 313.3027978, 313.12624307, 312.94961254, 312.77290651, 312.59612525, 312.41926904, 312.24233817, 312.06533293, 311.88825358, 311.71110041, 311.53387371, 311.35657376, 311.17920083, 311.00175521, 310.82423718, 310.64664702, 310.46898501, 310.29125143, 310.11344656, 309.93557068, 309.75762407, 309.57960701, 309.40151978, 309.22336266, 309.04513593, 308.86683987, 308.68847476, 308.51004087, 308.33153848, 308.15296788, 307.97432934, 307.79562314, 307.61684955, 307.43800886, 307.25910134, 307.08012727, 306.90108693, 306.72198059, 306.54280853, 306.36357104, 306.18426837, 306.00490082, 305.82546865, 305.64597215, 305.46641159, 305.28678724, 305.10709938, 304.92734829, 304.74753424, 304.5676575, 304.38771836, 304.20771708, 304.02765395, 303.84752922, 303.66734319, 303.48709612, 303.30678829, 303.12641996, 302.94599143, 302.76550294, 302.58495479, 302.40434724, 302.22368057, 302.04295505, 301.86217095, 301.68132854, 301.5004281, 301.31946989, 301.1384542, 300.95738128, 300.77625142, 300.59506488, 300.41382193, 300.23252285, 300.05116791, 299.86975737, 299.6882915, 299.50677059, 299.32519489, 299.14356467, 298.96188021, 298.78014178, 298.59834964, 298.41650406, 298.23460532, 298.05265368, 297.8706494, 297.68859276, 297.50648403, 297.32432347, 297.14211135, 296.95984794, 296.7775335, 296.59516831, 296.41275262, 296.23028672, 296.04777085, 295.8652053, 295.68259031, 295.49992618, 295.31721314, 295.13445148, 294.95164146, 294.76878334, 294.58587739, 294.40292388, 294.21992306, 294.0368752, 293.85378057, 293.67063943, 293.48745204, 293.30421867, 293.12093958, 292.93761504, 292.75424531, 292.57083064, 292.38737131, 292.20386758, 292.0203197, 291.83672794, 291.65309257, 291.46941384, 291.28569201, 291.10192735, 290.91812012, 290.73427058, 290.55037898, 290.3664456, 290.18247069, 289.9984545, 289.81439731, 289.63029937, 289.44616093, 289.26198227, 289.07776363, 288.89350528, 288.70920748, 288.52487048, 288.34049454, 288.15607992, 287.97162688, 287.78713567, 287.60260656, 287.4180398, 287.23343565, 287.04879436, 286.8641162, 286.67940141, 286.49465025, 286.30986299, 286.12503987, 285.94018115, 285.75528709, 285.57035794, 285.38539396, 285.2003954, 285.01536252, 284.83029556, 284.6451948, 284.46006047, 284.27489283, 284.08969215, 283.90445866, 283.71919262, 283.53389429, 283.34856392, 283.16320176, 282.97780806, 282.79238308, 282.60692707, 282.42144027, 282.23592295, 282.05037535, 281.86479772, 281.67919031, 281.49355338, 281.30788717, 281.12219193, 280.93646793, 280.75071539, 280.56493458, 280.37912574, 280.19328913, 280.00742498, 279.82153356, 279.6356151, 279.44966986, 279.26369808, 279.07770002, 278.89167592, 278.70562602, 278.51955058, 278.33344983, 278.14732404, 277.96117344, 277.77499828, 277.58879881, 277.40257527, 277.21632791, 277.03005698, 276.84376271, 276.65744535, 276.47110516, 276.28474236, 276.09835722, 275.91194996, 275.72552084, 275.5390701, 275.35259798, 275.16610473, 274.97959059, 274.79305579, 274.60650059, 274.41992523, 274.23332994, 274.04671497, 273.86008057, 273.67342697, 273.48675441, 273.30006313, 273.11335339, 272.9266254, 272.73987943, 272.5531157, 272.36633446, 272.17953594, 271.99272039, 271.80588804, 271.61903914, 271.43217392, 271.24529261, 271.05839547, 270.87148273, 270.68455461, 270.49761137, 270.31065324, 270.12368046, 269.93669326, 269.74969188, 269.56267655, 269.37564752, 269.18860502, 269.00154928, 268.81448054, 268.62739903, 268.440305, 268.25319867, 268.06608028, 267.87895006, 267.69180825, 267.50465508, 267.31749079, 267.1303156, 266.94312976, 266.75593349, 266.56872703, 266.38151061, 266.19428446, 266.00704882, 265.81980391, 265.63254997, 265.44528723, 265.25801592, 265.07073627, 264.88344851, 264.69615287, 264.50884958, 264.32153888, 264.13422098, 263.94689613, 263.75956455, 263.57222647, 263.38488211, 263.19753171, 263.0101755, 262.82281369, 262.63544653, 262.44807424, 262.26069704, 262.07331516, 261.88592883, 261.69853828, 261.51114373, 261.3237454, 261.13634353, 260.94893834, 260.76153006, 260.5741189, 260.3867051, 260.19928888, 260.01187047, 259.82445008, 259.63702794, 259.44960428, 259.26217932, 259.07475328, 258.88732639, 258.69989887, 258.51247094, 258.32504282, 258.13761473, 257.9501869, 257.76275956, 257.57533291, 257.38790718, 257.20048259, 257.01305937, 256.82563773, 256.63821789, 256.45080007, 256.2633845, 256.07597139, 255.88856096, 255.70115342, 255.51374901, 255.32634793, 255.13895041, 254.95155666, 254.7641669, 254.57678135, 254.38940023, 254.20202374, 254.01465211, 253.82728556, 253.6399243, 253.45256855, 253.26521852, 253.07787443, 252.89053649, 252.70320492, 252.51587993, 252.32856174, 252.14125056, 251.95394661, 251.7666501, 251.57936124, 251.39208025, 251.20480733, 251.01754271, 250.83028659, 250.64303919, 250.45580072, 250.26857139, 250.08135141, 249.89414099, 249.70694035, 249.51974969, 249.33256922, 249.14539917, 248.95823972, 248.77109111, 248.58395353, 248.39682719, 248.20971231, 248.02260908, 247.83551773, 247.64843846, 247.46137147, 247.27431698, 247.08727519, 246.90024631, 246.71323054, 246.5262281, 246.33923919, 246.15226401, 245.96530278, 245.77835569, 245.59142296, 245.40450478, 245.21760137, 245.03071292, 244.84383965, 244.65698175, 244.47013944, 244.28331291, 244.09650236, 243.90970801, 243.72293005, 243.53616869, 243.34942413, 243.16269657, 242.97598621, 242.78929326, 242.60261791, 242.41596038, 242.22932085, 242.04269953, 241.85609662, 241.66951232, 241.48294683, 241.29640035, 241.10987308, 240.92336522, 240.73687696, 240.55040852, 240.36396007, 240.17753183, 239.99112399, 239.80473674, 239.61837029, 239.43202484, 239.24570057, 239.05939769, 238.87311639, 238.68685687, 238.50061933, 238.31440395, 238.12821094, 237.94204049, 237.7558928, 237.56976805, 237.38366645, 237.19758819, 237.01153346, 236.82550246, 236.63949537, 236.4535124, 236.26755373, 236.08161955, 235.89571007, 235.70982547, 235.52396594, 235.33813168, 235.15232287, 234.96653971, 234.78078239, 234.59505109, 234.40934601, 234.22366735, 234.03801527, 233.85238999, 233.66679168, 233.48122054, 233.29567676, 233.11016051, 232.924672, 232.7392114, 232.55377891, 232.36837472, 232.182999, 231.99765195, 231.81233376, 231.62704461, 231.44178468, 231.25655417, 231.07135325, 230.88618212, 230.70104095, 230.51592994, 230.33084926, 230.14579911, 229.96077966, 229.77579111, 229.59083362, 229.40590739, 229.2210126, 229.03614943, 228.85131807, 228.66651869, 228.48175149, 228.29701663, 228.1123143, 227.92764469, 227.74300796, 227.55840432, 227.37383392, 227.18929697, 227.00479362, 226.82032407, 226.6358885, 226.45148707, 226.26711998, 226.0827874, 225.8984895, 225.71422647, 225.52999849, 225.34580572, 225.16164835, 224.97752656, 224.79344053, 224.60939041, 224.42537641, 224.24139868, 224.05745742, 223.87355278, 223.68968495, 223.5058541, 223.32206041, 223.13830405, 222.95458519, 222.77090402, 222.58726069, 222.40365539, 222.22008829, 222.03655956, 221.85306938, 221.66961791, 221.48620533, 221.3028318, 221.11949751, 220.93620263, 220.75294731, 220.56973174, 220.38655609, 220.20342052, 220.0203252, 219.83727031, 219.65425602, 219.47128248, 219.28834988, 219.10545838, 218.92260815, 218.73979935, 218.55703216, 218.37430674, 218.19162326, 218.00898189, 217.82638279, 217.64382613, 217.46131207, 217.27884079, 217.09641244, 216.9140272, 216.73168523, 216.54938669, 216.36713175, 216.18492057, 216.00275331, 215.82063015, 215.63855124, 215.45651675, 215.27452684, 215.09258167, 214.91068141, 214.72882621, 214.54701625, 214.36525167, 214.18353265, 214.00185935, 213.82023192, 213.63865053, 213.45711533, 213.27562649, 213.09418417, 212.91278852, 212.73143971, 212.5501379, 212.36888324, 212.18767589, 212.00651601, 211.82540376, 211.6443393, 211.46332279, 211.28235437, 211.10143422, 210.92056248, 210.73973931, 210.55896487, 210.37823931, 210.1975628, 210.01693548, 209.83635751, 209.65582905, 209.47535024, 209.29492126, 209.11454224, 208.93421334, 208.75393472, 208.57370653, 208.39352893, 208.21340206, 208.03332608, 207.85330114, 207.67332739, 207.49340498, 207.31353408, 207.13371482, 206.95394735, 206.77423184, 206.59456843, 206.41495727, 206.2353985, 206.05589229, 205.87643877, 205.69703811, 205.51769044, 205.33839591, 205.15915468, 204.9799669, 204.8008327, 204.62175224, 204.44272566, 204.26375312, 204.08483476, 203.90597072, 203.72716115, 203.5484062, 203.36970601, 203.19106074, 203.01247051, 202.83393549, 202.65545581, 202.47703162, 202.29866306, 202.12035028, 201.94209341, 201.76389261, 201.58574802, 201.40765978, 201.22962803, 201.05165291, 200.87373457, 200.69587315, 200.51806879, 200.34032163, 200.16263181, 199.98499947, 199.80742476, 199.62990782, 199.45244877, 199.27504777, 199.09770496, 198.92042046, 198.74319443, 198.566027, 198.3889183, 198.21186848, 198.03487768, 197.85794603, 197.68107367, 197.50426073, 197.32750736, 197.15081369, 196.97417986, 196.79760599, 196.62109224, 196.44463873, 196.2682456, 196.09191299, 195.91564102, 195.73942984, 195.56327957, 195.38719036, 195.21116233, 195.03519563, 194.85929037, 194.6834467, 194.50766475, 194.33194465, 194.15628653, 193.98069052, 193.80515677, 193.62968539, 193.45427652, 193.27893029, 193.10364682, 192.92842626, 192.75326874, 192.57817437, 192.40314329, 192.22817563, 192.05327152, 191.87843109, 191.70365446, 191.52894177, 191.35429314, 191.1797087, 191.00518858, 190.8307329, 190.6563418, 190.48201539, 190.30775381, 190.13355718, 189.95942563, 189.78535928, 189.61135826, 189.4374227, 189.26355271, 189.08974842, 188.91600997, 188.74233746, 188.56873103, 188.3951908, 188.2217169, 188.04830944, 187.87496855, 187.70169435, 187.52848696, 187.35534651, 187.18227312, 187.00926691, 186.83632799, 186.6634565, 186.49065256, 186.31791627, 186.14524777, 185.97264717, 185.8001146, 185.62765017, 185.455254, 185.28292621, 185.11066692, 184.93847625, 184.76635432, 184.59430124, 184.42231714, 184.25040212, 184.07855631, 183.90677983, 183.73507279, 183.5634353, 183.39186749, 183.22036946, 183.04894135, 182.87758325, 182.70629529, 182.53507758, 182.36393023, 182.19285337, 182.02184709, 181.85091153, 181.68004679, 181.50925298, 181.33853022, 181.16787863, 180.9972983, 180.82678937, 180.65635193, 180.4859861, 180.31569199, 180.14546972, 179.97531939, 179.80524111, 179.635235, 179.46530117, 179.29543972, 179.12565077, 178.95593443, 178.7862908, 178.61671999, 178.44722212, 178.27779729, 178.10844561, 177.93916718, 177.76996213, 177.60083054, 177.43177254, 177.26278823, 177.09387771, 176.92504109, 176.75627848, 176.58758998, 176.4189757, 176.25043575, 176.08197022, 175.91357924, 175.74526289, 175.57702129, 175.40885454, 175.24076274, 175.072746, 174.90480441, 174.7369381, 174.56914715, 174.40143167, 174.23379176, 174.06622753, 173.89873907, 173.73132649, 173.5639899, 173.39672938, 173.22954505, 173.062437, 172.89540533, 172.72845015, 172.56157156, 172.39476964, 172.22804452, 172.06139627, 171.89482501, 171.72833083, 171.56191383, 171.3955741, 171.22931176, 171.06312688, 170.89701958, 170.73098995, 170.56503808, 170.39916408, 170.23336803, 170.06765005, 169.90201021, 169.73644862, 169.57096538, 169.40556057, 169.2402343, 169.07498666, 168.90981774, 168.74472764, 168.57971645, 168.41478427, 168.24993119, 168.0851573, 167.9204627, 167.75584747, 167.59131172, 167.42685554, 167.26247901, 167.09818222, 166.93396528, 166.76982827, 166.60577128, 166.44179441, 166.27789774, 166.11408137, 165.95034538, 165.78668987, 165.62311492, 165.45962063, 165.29620708, 165.13287436, 164.96962257, 164.80645178, 164.6433621, 164.4803536, 164.31742637, 164.15458051, 163.99181609, 163.82913322, 163.66653196, 163.50401242, 163.34157467, 163.1792188, 163.01694491, 162.85475306, 162.69264336, 162.53061588, 162.36867071, 162.20680793, 162.04502763, 161.8833299, 161.72171481, 161.56018245, 161.3987329, 161.23736625, 161.07608259, 160.91488198, 160.75376452, 160.59273029, 160.43177937, 160.27091184, 160.11012778, 159.94942728, 159.78881041, 159.62827726, 159.4678279, 159.30746242, 159.1471809, 158.98698342, 158.82687006, 158.66684089, 158.50689599, 158.34703546, 158.18725935, 158.02756776, 157.86796075, 157.70843842, 157.54900083, 157.38964806, 157.2303802, 157.07119731, 156.91209948, 156.75308678, 156.59415928, 156.43531707, 156.27656022, 156.11788881, 155.9593029, 155.80080259, 155.64238793, 155.48405901, 155.3258159, 155.16765867, 155.0095874, 154.85160216, 154.69370303, 154.53589008, 154.37816338, 154.22052301, 154.06296903, 153.90550152, 153.74812056, 153.59082621, 153.43361854, 153.27649764, 153.11946356, 152.96251638, 152.80565617, 152.648883, 152.49219695, 152.33559807, 152.17908645, 152.02266214, 151.86632523, 151.71007578, 151.55391385, 151.39783952, 151.24185286, 151.08595393, 150.9301428, 150.77441954, 150.61878422, 150.46323691, 150.30777766, 150.15240656, 149.99712365, 149.84192902, 149.68682273, 149.53180484, 149.37687542, 149.22203454, 149.06728225, 148.91261863, 148.75804374, 148.60355765, 148.44916041, 148.2948521, 148.14063278, 147.9865025, 147.83246134, 147.67850936, 147.52464661, 147.37087317, 147.2171891, 147.06359446, 146.9100893, 146.7566737, 146.60334771, 146.4501114, 146.29696482, 146.14390804, 145.99094112, 145.83806412, 145.6852771, 145.53258011, 145.37997323, 145.2274565, 145.07503, 144.92269377, 144.77044788, 144.61829238, 144.46622734, 144.31425281, 144.16236885, 144.01057551, 143.85887287, 143.70726097, 143.55573986, 143.40430962, 143.25297029, 143.10172193, 142.9505646, 142.79949835, 142.64852324, 142.49763933, 142.34684666, 142.19614531, 142.04553531, 141.89501673, 141.74458962, 141.59425403, 141.44401003, 141.29385765, 141.14379696, 140.99382802, 140.84395086, 140.69416555, 140.54447214, 140.39487069, 140.24536123, 140.09594384, 139.94661855, 139.79738542, 139.6482445, 139.49919585, 139.35023951, 139.20137554, 139.05260398, 138.90392489, 138.75533832, 138.60684431, 138.45844292, 138.31013419, 138.16191818, 138.01379494, 137.86576451, 137.71782694, 137.56998228, 137.42223058, 137.27457189, 137.12700626, 136.97953373, 136.83215435, 136.68486816, 136.53767523, 136.39057558, 136.24356928, 136.09665635, 135.94983686, 135.80311085, 135.65647836, 135.50993944, 135.36349413, 135.21714249, 135.07088454, 134.92472035, 134.77864995, 134.63267338, 134.4867907, 134.34100195, 134.19530716, 134.04970639, 133.90419968, 133.75878706, 133.61346859, 133.4682443, 133.32311424, 133.17807845, 133.03313697, 132.88828985, 132.74353712, 132.59887883, 132.45431502, 132.30984572, 132.16547099, 132.02119086, 131.87700536, 131.73291455, 131.58891846, 131.44501713, 131.3012106, 131.15749892, 131.01388211, 130.87036022, 130.72693328, 130.58360135, 130.44036444, 130.29722261, 130.15417589, 130.01122431, 129.86836792, 129.72560676, 129.58294085, 129.44037024, 129.29789497, 129.15551506, 129.01323056, 128.8710415, 128.72894793, 128.58694986, 128.44504735, 128.30324042, 128.16152911, 128.01991346, 127.8783935, 127.73696926, 127.59564078, 127.45440809, 127.31327124, 127.17223024, 127.03128513, 126.89043596, 126.74968274, 126.60902552, 126.46846433, 126.32799919, 126.18763015, 126.04735723, 125.90718046, 125.76709989, 125.62711553, 125.48722742, 125.3474356, 125.20774009, 125.06814092, 124.92863812, 124.78923173, 124.64992177, 124.51070828, 124.37159129, 124.23257081, 124.0936469, 123.95481956, 123.81608884, 123.67745475, 123.53891734, 123.40047662, 123.26213264, 123.1238854, 122.98573495, 122.84768131, 122.7097245, 122.57186456, 122.43410151, 122.29643538, 122.1588662, 122.02139399, 121.88401877, 121.74674058, 121.60955945, 121.47247539, 121.33548843, 121.1985986, 121.06180592, 120.92511042, 120.78851212, 120.65201105, 120.51560723, 120.37930069, 120.24309144, 120.10697953, 119.97096495, 119.83504776, 119.69922795, 119.56350557, 119.42788062, 119.29235314, 119.15692314, 119.02159066, 118.8863557, 118.7512183, 118.61617847, 118.48123624, 118.34639163, 118.21164466, 118.07699534, 117.94244371, 117.80798978, 117.67363358, 117.53937512, 117.40521442, 117.2711515, 117.13718639, 117.0033191, 116.86954965, 116.73587807, 116.60230436, 116.46882856, 116.33545067, 116.20217073, 116.06898873, 115.93590471, 115.80291869, 115.67003067, 115.53724068, 115.40454873, 115.27195485, 115.13945904, 115.00706134, 114.87476174, 114.74256028, 114.61045696, 114.4784518, 114.34654482, 114.21473604, 114.08302546, 113.95141311, 113.819899, 113.68848315, 113.55716557, 113.42594627, 113.29482528, 113.1638026, 113.03287824, 112.90205224, 112.77132458, 112.6406953, 112.51016441, 112.37973191, 112.24939783, 112.11916216, 111.98902494, 111.85898616, 111.72904585, 111.59920401, 111.46946066, 111.33981581, 111.21026947, 111.08082165, 110.95147237, 110.82222163, 110.69306945, 110.56401584, 110.4350608, 110.30620435, 110.17744651, 110.04878727, 109.92022665, 109.79176467, 109.66340132, 109.53513662, 109.40697058, 109.27890321, 109.15093452, 109.02306451, 108.8952932, 108.76762059, 108.64004669, 108.51257151, 108.38519507, 108.25791736, 108.13073839, 108.00365817, 107.87667672, 107.74979403, 107.62301011, 107.49632498, 107.36973863, 107.24325107, 107.11686232, 106.99057237, 106.86438124, 106.73828892, 106.61229543, 106.48640077, 106.36060495, 106.23490797, 106.10930983, 105.98381054, 105.85841011, 105.73310854, 105.60790583, 105.482802, 105.35779703, 105.23289095, 105.10808375, 104.98337543, 104.858766, 104.73425546, 104.60984381, 104.48553107, 104.36131722, 104.23720228, 104.11318625, 103.98926912, 103.8654509, 103.7417316, 103.61811121, 103.49458974, 103.37116718, 103.24784355, 103.12461884, 103.00149304, 102.87846617, 102.75553823, 102.63270921, 102.50997911, 102.38734794, 102.26481569, 102.14238237, 102.02004798, 101.8978125, 101.77567596, 101.65363833, 101.53169963, 101.40985986, 101.288119, 101.16647706, 101.04493404, 100.92348994, 100.80214475, 100.68089848, 100.55975112, 100.43870267, 100.31775312, 100.19690248, 100.07615074, 99.9554979, 99.83494395, 99.7144889, 99.59413274, 99.47387547, 99.35371707, 99.23365756, 99.11369692, 98.99383516, 98.87407226, 98.75440822, 98.63484305, 98.51537673, 98.39600925, 98.27674063, 98.15757084, 98.03849988, 97.91952776, 97.80065446, 97.68187997, 97.5632043, 97.44462744, 97.32614937, 97.2077701, 97.08948962, 96.97130792, 96.85322499, 96.73524083, 96.61735544, 96.49956879, 96.3818809, 96.26429174, 96.14680131, 96.02940961, 95.91211662, 95.79492235, 95.67782677, 95.56082989, 95.44393168, 95.32713216, 95.2104313, 95.0938291, 94.97732554, 94.86092063, 94.74461435, 94.62840669, 94.51229764, 94.39628719, 94.28037533, 94.16456206, 94.04884736, 93.93323122, 93.81771363, 93.70229458, 93.58697407, 93.47175207, 93.35662858, 93.24160359, 93.12667709, 93.01184906, 92.89711949, 92.78248838, 92.66795571, 92.55352146, 92.43918564, 92.32494821, 92.21080918, 92.09676853, 91.98282624, 91.86898231, 91.75523672, 91.64158946, 91.52804052, 91.41458987, 91.30123752, 91.18798344, 91.07482762, 90.96177005, 90.84881071, 90.7359496, 90.62318668, 90.51052196, 90.39795542, 90.28548704, 90.17311681, 90.06084471, 89.94867072, 89.83659484, 89.72461705, 89.61273732, 89.50095566, 89.38927203, 89.27768643, 89.16619884, 89.05480925, 88.94351762, 88.83232396, 88.72122825, 88.61023046, 88.49933058, 88.38852859, 88.27782449, 88.16721824, 88.05670984, 87.94629926, 87.83598649, 87.7257715, 87.6156543, 87.50563484, 87.39571313, 87.28588913, 87.17616283, 87.06653422, 86.95700327, 86.84756996, 86.73823428, 86.62899621, 86.51985572, 86.41081281, 86.30186744, 86.19301961, 86.08426929, 85.97561646, 85.8670611, 85.75860319, 85.65024272, 85.54197966, 85.43381399, 85.32574569, 85.21777474, 85.10990112, 85.00212482, 84.8944458, 84.78686405, 84.67937954, 84.57199227, 84.46470219, 84.3575093, 84.25041357, 84.14341498, 84.03651351, 83.92970913, 83.82300183, 83.71639158, 83.60987836, 83.50346215, 83.39714292, 83.29092065, 83.18479532, 83.07876691, 82.97283539, 82.86700075, 82.76126294, 82.65562197, 82.55007779, 82.44463039, 82.33927974, 82.23402582, 82.12886861, 82.02380807, 81.9188442, 81.81397696, 81.70920632, 81.60453227, 81.49995478, 81.39547382, 81.29108937, 81.18680141, 81.08260991, 80.97851484, 80.87451618, 80.7706139, 80.66680798, 80.5630984, 80.45948512, 80.35596812, 80.25254738, 80.14922286, 80.04599455, 79.94286241, 79.83982643, 79.73688657, 79.6340428, 79.5312951, 79.42864345, 79.32608781, 79.22362817, 79.12126448, 79.01899673, 78.91682489, 78.81474892, 78.71276881, 78.61088452, 78.50909603, 78.40740331, 78.30580632, 78.20430505, 78.10289946, 78.00158953, 77.90037523, 77.79925652, 77.69823339, 77.59730579, 77.49647371, 77.39573711, 77.29509596, 77.19455024, 77.09409991, 76.99374495, 76.89348533, 76.79332101, 76.69325197, 76.59327818, 76.4933996, 76.39361621, 76.29392798, 76.19433487, 76.09483686, 75.99543391, 75.896126, 75.7969131, 75.69779517, 75.59877218, 75.4998441, 75.40101091, 75.30227256, 75.20362903, 75.10508029, 75.0066263, 74.90826704, 74.81000247, 74.71183256, 74.61375728, 74.51577659, 74.41789047, 74.32009888, 74.22240179, 74.12479917, 74.02729098, 73.92987719, 73.83255778, 73.7353327, 73.63820192, 73.54116542, 73.44422315, 73.34737509, 73.2506212, 73.15396145, 73.0573958, 72.96092422, 72.86454668, 72.76826315, 72.67207358, 72.57597795, 72.47997623, 72.38406837, 72.28825434, 72.19253411, 72.09690765, 72.00137492, 71.90593588, 71.8105905, 71.71533876, 71.6201806, 71.525116, 71.43014492, 5.69931526, 11.39151305, 17.06949071, 22.72617514, 28.35453754, 33.94760791, 39.49848944, 45.00037272, 50.44654959, 55.83042685, 61.14553947, 66.38556355, 71.54432886, 76.61583087, 81.59424238, 86.47392464, 91.24943788, 95.91555132, 100.46725261, 104.89975663, 109.20851367, 113.38921693, 117.43780944, 121.35049016, 125.12371955, 128.7542243, 132.23900141, 135.5753216, 138.76073189, 141.79305756, 144.6704034, 147.39115416, 149.95397439, 152.35780757, 154.60187449, 156.6856711, 158.60896554, 160.37179469, 161.97446004, 163.41752291, 164.70179921, 165.82835361, 166.79849313, 167.61376035, 168.27592607, 168.78698154, 169.14913035, 169.36477988, 169.43653243, 169.36717603, 169.159675, 168.81716026, 168.34291938, 167.7403865, 167.0131321, 166.16485266, 165.19936018, 164.12057175, 162.93249902, 161.6392377, 160.24495718, 158.75389007, 157.17032198, 155.49858137, 153.74302955, 151.90805086, 149.99804305, 148.01740793, 145.97054216, 143.86182842, 141.69562679, 139.47626645, 137.20803771, 134.89518432, 132.54189619, 130.15230239, 127.73046457, 125.28037074, 122.80592936, 120.31096389, 117.79920771, 115.27429937, 112.7397783, 110.19908087, 107.65553683, 105.11236613, 102.57267616, 100.03945932, 97.51559097, 95.00382771, 92.50680611, 90.02704165, 87.5669281, 85.12873717, 82.71461845, 80.32659976, 77.96658761, 75.63636815, 73.33760816, 71.07185647, 68.84054552, 66.64499315, 64.48640464, 62.36587486, 60.28439072, 58.24283366, 56.24198236, 54.28251557, 52.36501508, 50.48996876, 48.65777371, 46.86873952, 45.12309155, 43.42097433, 41.76245492, 40.14752636, 38.57611118, 37.04806478, 35.56317898, 34.12118544, 32.72175911, 31.36452164, 30.04904476, 28.77485361, 27.54143002, 26.34821573, 25.19461555, 24.08000045, 23.00371056, 21.96505811, 20.96333028, 19.99779197, 19.06768843, 18.17224786, 17.31068392, 16.48219803, 15.68598174, 14.92121883, 14.18708745, 13.48276206, 12.80741533, 12.16021988, 11.54035001, 10.94698322, 10.37930171, 9.83649375, 9.317755, 8.82228964, 8.34931154, 7.89804521, 7.46772675, 7.05760473, 6.66694087, 6.29501079, 5.94110461, 5.60452743, 5.28459987, 4.98065842, 4.69205577, 4.41816114, 4.15836043, 3.91205641, 3.67866887, 3.4576346, 3.24840749, 3.05045847, 2.86327542, 2.68636313, 2.51924312, 2.36145348, 2.21254869, 2.07209939, 1.93969214, 1.81492915, 1.69742798, 1.58682128, 1.4827564, 1.38489515, 1.29291339, 1.20650069, 1.12535998, 1.04920719, 0.97777087, 0.91079182, 0.8480227, 0.78922767, 0.73418199, 0.68267169, 0.63449313, 0.58945269, 0.54736637, 0.50805944, 0.47136606, 0.43712897, 0.40519912, 0.37543532, 0.34770394, 0.32187858, 0.29783971, 0.27547445, 0.25467619, 0.23534435, 0.21738407, 0.20070597, 0.18522584, 0.17086443, 0.1575472, 0.14520406, 0.13376913, 0.12318059, 0.1133804, 0.10431411, 0.09593071, 0.08818238, 0.08102437, 0.07441479, 0.06831448, 0.0626868, 0.05749758, 0.05271486, 0.04830885, 0.04425177, 0.04051772, 0.03708256, 0.03392383, 0.03102064, 0.02835353, 0.02590445, 0.0236566, 0.02159441, 0.01970339, 0.01797016, 0.01638226, 0.01492818, 0.01359725, 0.0123796, 0.0112661, 0.01024831, 0.00931841, 0.00846922, 0.00769408, 0.00698685, 0.00634187, 0.00575395, 0.00521826, 0.0047304, 0.0042863, 0.0038822, 0.00351468, 0.00318058, 0.002877, 0.00260126, 0.00235094, 0.00212378, 0.00191775, 0.00173096, 0.00156169, 0.00140836, 0.00126954, 0.00114391, 0.00103026, 0.00092751, 0.00083464, 0.00075075, 0.000675, 0.00060664, 0.00054496, 0.00048934, 0.00043921, 0.00039405, 0.00035337, 0.00031676, 0.00028382, 0.0002542, 0.00022757, 0.00020364, 0.00018215, 0.00016286, 0.00014555, 0.00013002, 0.0001161, 0.00010363, 0.00009245, 0.00008245, 0.0000735, 0.00006549, 0.00005833, 0.00005193, 0.00004621, 0.0000411, 0.00003654, 0.00003248, 0.00002885, 0.00002562, 0.00002274, 0.00002018, 0.00001789, 0.00001586, 0.00001405, 0.00001245, 0.00001102, 9.75244524e-06, 8.6266896e-06, 7.62762352e-06, 6.74137963e-06, 5.9555628e-06, 5.25909905e-06, 4.64209947e-06, 4.09573748e-06, 3.61213847e-06, 3.18428042e-06, 2.80590453e-06, 2.47143486e-06, 2.1759062e-06, 1.91489923e-06, 1.68448233e-06, 1.48115941e-06, 1.30182311e-06, 1.14371289e-06, 1.00437743e-06, 8.81641024e-07, 7.73573487e-07, 6.78463254e-07, 5.94793316e-07, 5.21219732e-07, 4.56552434e-07, 3.99738102e-07, 3.49844883e-07, 3.06048761e-07, 2.67621419e-07, 2.33919422e-07, 2.04374585e-07, 1.78485406e-07, 1.55809443e-07, 1.3595654e-07, 1.18582804e-07, 1.03385264e-07, 9.00971176e-08, 7.84835266e-08, 6.83378797e-08, 5.9478484e-08, 5.17456328e-08, 4.499901e-08, 3.91153914e-08, 3.39866132e-08, 2.95177741e-08, 2.56256477e-08, 2.22372791e-08, 1.92887469e-08, 1.67240698e-08, 1.44942431e-08, 1.25563884e-08, 1.08730052e-08, 9.41131091e-09, 8.14266067e-09, 7.04203637e-09, 6.08759737e-09, 5.26028564e-09, 4.54347876e-09, 3.92268526e-09, 3.38527716e-09, 2.92025532e-09, 2.51804367e-09, 2.17030891e-09, 1.86980247e-09, 1.61022217e-09, 1.38609114e-09, 1.19265191e-09, 1.02577374e-09, 8.81871716e-10, 7.57836005e-10, 6.50970125e-10, 5.58937051e-10, 4.79712214e-10, 4.11542513e-10, 3.52910599e-10, 3.02503765e-10, 2.59186853e-10, 2.21978683e-10, 1.90031547e-10, 1.62613384e-10, 1.39092283e-10, 1.1892303e-10, 1.01635421e-10, 8.6824128e-11, 7.41398998e-11, 6.32819424e-11, 5.399131e-11, 4.60451827e-11, 3.92519126e-11, 3.34467364e-11, 2.84880674e-11, 2.42542896e-11, 2.06409877e-11, 1.75585541e-11, 1.49301235e-11, 1.268979e-11, 1.07810702e-11, 9.15557714e-12, 7.7718786e-12, 6.59451305e-12, 5.59314287e-12, 4.74182544e-12, 4.0183864e-12, 3.40388065e-12, 2.88212931e-12, 2.43932194e-12, 2.06367507e-12, 1.74513915e-12, 1.47514722e-12, 1.24639943e-12, 1.05267838e-12, 8.88690969e-13, 7.49932956e-13, 6.32573121e-13, 5.33354133e-13, 4.49507811e-13, 3.78682713e-13, 3.18882282e-13, 2.68412032e-13, 2.25834489e-13, 1.8993074e-13, 1.59667664e-13, 1.34169998e-13, 1.12696543e-13, 9.461991e-14, 7.94092747e-14, 6.66157164e-14, 5.58597468e-14, 4.68207126e-14, 3.92277939e-14, 3.28523596e-14, 2.7501481e-14, 2.30124277e-14, 1.92480014e-14, 1.60925812e-14, 1.34487725e-14, 1.12345704e-14, 9.38095788e-15, 7.82987457e-15, 6.53249878e-15, 5.44779546e-15, 4.54128945e-15, 3.78402954e-15, 3.15171404e-15, 2.62395304e-15, 2.18364624e-15, 1.81645855e-15, 1.51037815e-15, 1.25534442e-15, 1.04293469e-15, 8.66100628e-16, 7.18946581e-16, 5.96543246e-16, 4.94771065e-16, 4.10188719e-16, 3.39922725e-16, 2.81574787e-16, 2.33144093e-16, 1.92962165e-16, 1.59638271e-16, 1.32013693e-16, 1.09123445e-16, 9.01642312e-17, 7.44676488e-17, 6.1477776e-17, 5.07324471e-17, 4.18476081e-17, 3.4504254e-17, 2.84375271e-17, 2.34276217e-17, 1.9292201e-17, 1.58800754e-17, 1.3065937e-17, 1.07459739e-17, 8.83422054e-18, 7.25952042e-18, 5.96300089e-18, 4.89597366e-18, 4.01819063e-18, 3.29639518e-18, 2.70311975e-18, 2.21568791e-18, 1.81538685e-18, 1.48678129e-18, 1.21714494e-18, 9.95989653e-19, 8.14675549e-19, 6.66088399e-19, 5.44372777e-19, 4.44711414e-19, 3.63142859e-19, 2.96410855e-19, 2.41839964e-19, 1.97232924e-19, 1.60785966e-19, 1.31018993e-19, 1.06718024e-19, 8.68877796e-20, 7.07126373e-20, 5.75244918e-20, 4.67763115e-20, 3.80203919e-20, 3.08904792e-20, 2.5087082e-20, 2.03654076e-20, 1.65254587e-20, 1.34039071e-20, 1.08674279e-20, 8.8072355e-21, 7.13460505e-21, 5.77720473e-21, 4.67609234e-21, 3.78325755e-21, 3.05961124e-21, 2.47334164e-21, 1.9985706e-21, 1.61425601e-21, 1.30329542e-21, 1.05179444e-21, 8.48469866e-22, 6.84162919e-22, 5.51442461e-22, 4.44281721e-22, 3.57794995e-22, 2.88023325e-22, 2.31760087e-22, 1.86409148e-22, 1.49869549e-22, 1.20441785e-22, 9.67516933e-23, 7.76886517e-23, 6.23554211e-23, 5.00274627e-23, 4.01199489e-23, 3.21610267e-23, 2.57701581e-23, 2.06405808e-23, 1.65251115e-23, 1.3224661e-23, 1.05789451e-23, 8.45897717e-24, 6.76100132e-24, 5.40159318e-24, 4.31370471e-24, 3.44347273e-24, 2.74764477e-24, 2.19150379e-24, 1.7471958e-24, 1.39238278e-24, 1.10915805e-24, 8.83173338e-25, 7.02936665e-25, 5.59247667e-25, 4.44743804e-25, 3.53535785e-25, 2.80914789e-25, 2.23117475e-25, 1.77137426e-25, 1.40573948e-25, 1.11510849e-25, 8.84193228e-26, 7.00801505e-26, 5.55214315e-26, 4.39687455e-26, 3.48052928e-26, 2.75400237e-26, 2.17821695e-26, 1.7220897e-26, 1.36090628e-26, 1.07502482e-26, 8.48841463e-27, 6.69965609e-27, 5.28562404e-27, 4.16828943e-27, 3.28577112e-27, 2.58901518e-27, 2.03915266e-27, 1.60539807e-27, 1.26337884e-27, 9.93807623e-28, 7.81427912e-28, 6.14176777e-28, 4.82520469e-28, 3.78927369e-28, 2.97450084e-28, 2.33394227e-28, 1.83056022e-28, 1.43514516e-28, 1.12467113e-28, 8.80994451e-29, 6.89824654e-29, 5.39910991e-29, 4.22399648e-29, 3.30326071e-29, 2.58214179e-29, 2.01760087e-29, 1.57582637e-29, 1.23026711e-29, 9.60082181e-30, 7.48919875e-30, 5.83956178e-30, 4.55138022e-30, 3.54587923e-30, 2.76135809e-30, 2.14951009e-30, 1.67253118e-30, 1.30084914e-30, 1.01134103e-30, 7.85934418e-31, 6.10510275e-31, 4.74042894e-31, 3.6792585e-31, 2.85444029e-31, 2.21360247e-31, 1.71591711e-31, 1.32956934e-31, 1.02977821e-31, 7.97249803e-32, 6.16968751e-32, 4.77254401e-32, 3.69024115e-32, 2.85218431e-32, 2.20352744e-32, 1.70167799e-32, 1.3135734e-32, 1.01355976e-32, 7.81740161e-33, 6.02689388e-33, 4.64454018e-33, 3.5777498e-33, 2.75483299e-33, 2.12030654e-33, 1.63124842e-33, 1.25446813e-33, 9.64311265e-34, 7.40956873e-34, 5.6909754e-34, 4.3691663e-34, 3.35296126e-34, 2.57203334e-34, 1.97216275e-34, 1.51156564e-34, 1.15805551e-34, 8.86849356e-35, 6.78872857e-35, 5.19451674e-35, 3.97301291e-35, 3.03747648e-35, 2.32126112e-35, 1.77318154e-35, 1.35394348e-35, 1.03339417e-35, 7.88405444e-36, 6.01244843e-36, 4.58322586e-36, 3.49228197e-36, 2.65990114e-36, 2.02506908e-36, 1.54110541e-36, 1.17231146e-36, 8.91398373e-37, 6.77514868e-37, 5.14735346e-37, 3.90901489e-37, 2.9673504e-37, 2.2515859e-37, 1.70775823e-37, 1.29473962e-37, 9.81198046e-38, 7.43274273e-38, 5.62807297e-38, 4.25979338e-38, 3.22281626e-38, 2.43725382e-38, 1.84240107e-38, 1.39214926e-38, 1.05149117e-38, 7.93859556e-39, 5.99100851e-39, 4.51933374e-39, 3.40774518e-39, 2.56849091e-39, 1.93511678e-39, 1.45731876e-39, 1.09703419e-39, 8.2547515e-40, 6.20877728e-40, 4.66795218e-40, 3.5080434e-40, 2.63524963e-40, 1.97877681e-40, 1.48521769e-40, 1.11429881e-40, 8.35663585e-41, 6.26440092e-41, 4.69403012e-41, 3.515851e-41, 2.63228748e-41, 1.96994654e-41, 1.47364826e-41, 1.10192365e-41, 8.23621067e-42, 6.15349239e-42, 4.59551481e-42, 3.43055949e-42, 2.5598471e-42, 1.90933171e-42, 1.42353134e-42, 1.06089151e-42, 7.90302241e-43, 5.88482766e-43, 4.38018632e-43, 3.25889016e-43, 2.42362356e-43, 1.80168522e-43, 1.33878543e-43, 9.94400535e-44, 7.38295185e-44, 5.47919857e-44, 4.06464259e-44, 3.01401915e-44, 2.23402473e-44, 1.65519159e-44, 1.22582054e-44, 9.07452385e-45, 6.71489355e-45, 4.96675519e-45, 3.67218636e-45, 2.71390732e-45, 2.00485816e-45, 1.48043941e-45, 1.0927378e-45, 8.06231288e-46, 5.94595583e-46, 4.38330875e-46, 3.2299872e-46, 2.37912849e-46, 1.75167428e-46, 1.28916103e-46, 9.48373372e-47, 6.97380659e-47, 5.1260025e-47, 3.76622359e-47, 2.76599733e-47, 2.03055982e-47, 1.49004093e-47, 1.09294671e-47, 8.01342457e-48, 5.87294189e-48, 4.30240847e-48, 3.150547e-48, 2.30610286e-48, 1.68729017e-48, 1.23401168e-48, 9.02125922e-49, 6.59224667e-49, 4.81524219e-49, 3.51577621e-49, 2.56591765e-49, 1.87189985e-49, 1.36502596e-49, 9.94987498e-50, 7.24957833e-50, 5.27990711e-50, 3.84377743e-50, 2.7971039e-50, 2.03459224e-50, 1.47932839e-50, 1.07515287e-50, 7.81077761e-51, 5.67200692e-51, 4.11715919e-51, 2.98728733e-51, 2.16658019e-51, 1.57069178e-51, 1.13821842e-51, 8.24477269e-52, 5.96966833e-52, 4.32056119e-52, 3.12570913e-52, 2.26034851e-52, 1.63388204e-52, 1.18055015e-52, 8.52641821e-53, 6.15555582e-53, 4.44207995e-53, 3.20423178e-53, 2.31036147e-53, 1.665154e-53, 1.19963005e-53, 8.63890559e-54, 6.2185422e-54, 4.47442168e-54, 3.21813088e-54, 2.31360367e-54, 1.66261884e-54, 1.19430405e-54, 8.5754237e-55, 6.15481134e-55, 4.41562702e-55, 3.16656567e-55, 2.26988104e-55, 1.62643301e-55, 1.16489759e-55, 8.33984155e-56, 5.96824086e-56, 4.26926756e-56, 3.05266324e-56, 2.18184007e-56, 1.55878216e-56, 1.11318267e-56, 7.94631802e-57, 5.67001161e-57, 4.04408669e-57, 2.88320464e-57, 2.05470266e-57, 1.4636627e-57, 1.04220112e-57, 7.41789319e-58, 5.27749859e-58, 3.75313503e-58, 2.66795664e-58, 1.89575347e-58, 1.34649105e-58, 9.55968538e-59, 6.78425633e-59, 4.81259616e-59, 3.41251929e-59, 2.41874083e-59, 1.71364983e-59, 1.21359382e-59, 8.59098893e-60, 6.07899092e-60, 4.29970205e-60, 3.03993126e-60, 2.14836318e-60, 1.51764493e-60, 1.0716456e-60, 7.5639864e-61, 5.33665138e-61, 3.76361742e-61, 2.65314295e-61, 1.86953835e-61, 1.31682072e-61, 9.27123254e-62, 6.52479463e-62, 4.59002204e-62, 3.22761146e-62, 2.26864363e-62, 1.59393229e-62, 1.1194173e-62, 7.85837439e-63, 5.51432018e-63, 3.86785161e-63, 2.7118533e-63, 1.90055807e-63, 1.33141873e-63, 9.32323746e-64, 6.52585468e-64, 4.56590237e-64, 3.19326098e-64, 2.23234226e-64, 1.55993219e-64, 1.08960537e-64, 7.60766406e-65, 5.30948008e-65, 3.70400227e-65, 2.58290881e-65, 1.80038541e-65, 1.2544128e-65, 8.73643109e-66, 6.08199725e-66, 4.23230513e-66, 2.94392207e-66, 2.04688875e-66, 1.4225933e-66, 9.88293347e-67, 6.86293013e-67, 4.76378199e-67, 3.30531439e-67, 2.29240987e-67, 1.5892432e-67, 1.10130359e-67, 7.62855617e-68, 5.28197382e-68, 3.65568481e-68, 2.52906417e-68, 1.74891845e-68, 1.20892088e-68, 8.35304471e-69, 5.76913023e-69, 3.98285495e-69, 2.74850955e-69, 1.89591396e-69, 1.30724989e-69, 9.00984288e-70, 6.20718143e-70, 4.2745488e-70, 2.94242051e-70, 2.02459341e-70, 1.39248178e-70, 9.57325983e-71, 6.578832e-71, 4.51914599e-71, 3.1030057e-71, 2.129744e-71, 1.46113674e-71, 1.00201206e-71, 6.86868611e-72, 4.70644538e-72, 3.22352475e-72, 2.20692528e-72, 1.51029883e-72, 1.0331343e-72, 7.0643029e-73, 4.82836934e-73, 3.29875678e-73, 2.25277983e-73, 1.5378212e-73, 1.04932878e-73, 7.15708161e-74, 4.87954132e-74, 3.32537539e-74, 2.26527537e-74, 1.54248155e-74, 1.04987503e-74, 7.14288869e-75, 4.857679e-75, 3.30219257e-75, 2.2438542e-75, 1.52407216e-75, 1.03474916e-75, 7.02236324e-76, 4.76376312e-76, 3.23024667e-76, 2.18947442e-76, 1.48341521e-76, 1.00462561e-76, 6.80086922e-77, 4.60196454e-77, 3.11272519e-77, 2.10453891e-77, 1.42230195e-77, 9.60827276e-78, 6.48809964e-78, 4.37933704e-78, 2.95473068e-78, 1.99271921e-78, 1.34336178e-78, 9.05229178e-79, 6.09737319e-79, 4.10530745e-79, 2.76291342e-79, 1.85869249e-79, 1.24987475e-79, 8.4012542e-80, 5.64469447e-80, 3.79101443e-80, 2.54500781e-80, 1.70781761e-80, 1.14554602e-80, 7.68072622e-81, 5.14767021e-81, 3.4485604e-81, 2.3093175e-81, 1.54578166e-81, 1.03426385e-81, 6.9172462e-82, 4.62438322e-82, 3.0902463e-82, 2.06419665e-82, 1.37824917e-82, 9.19862915e-83, 6.13673231e-83, 4.09232342e-83, 2.72785586e-83, 1.81757186e-83, 1.21054368e-83, 8.05912782e-84, 5.36308064e-84, 3.56746168e-84, 2.37204548e-84, 1.57654153e-84, 1.04738543e-84, 6.95546784e-85, 4.61705319e-85, 3.06352987e-85, 2.03188008e-85, 1.34707799e-85, 8.92701205e-86, 5.91341307e-86, 3.91551622e-86, 2.59154381e-86, 1.71453675e-86, 1.13384519e-86, 7.49513474e-87, 4.95249273e-87, 3.2710484e-87, 2.1595776e-87, 1.42517889e-87, 9.40131648e-88, 6.19907211e-88, 4.0858595e-88, 2.69189983e-88, 1.77277284e-88, 1.16698698e-88, 7.67887608e-89, 5.05065889e-89, 3.32060447e-89, 2.18225245e-89, 1.43354576e-89, 9.41319093e-90, 6.1784695e-90, 4.05362604e-90, 2.65842976e-90, 1.74271125e-90, 1.14194298e-90, 7.47966485e-91, 4.89709577e-91, 3.20489493e-91, 2.09656212e-91, 1.37094621e-91, 8.96090423e-92, 5.85466433e-92, 3.8235864e-92, 2.49608035e-92, 1.62878949e-92, 1.06240499e-92, 6.92682143e-93, 4.51436458e-93, 2.94088482e-93, 1.91504133e-93, 1.24651364e-93, 8.11025805e-94, 5.27461858e-94, 3.42898985e-94, 2.22823039e-94, 1.44734725e-94, 9.39732269e-95, 6.0989391e-95, 3.95660968e-95, 2.56572957e-95, 1.66309595e-95, 1.07756256e-95, 6.97889135e-96, 4.51803033e-96, 2.92368519e-96, 1.89117115e-96, 1.22278422e-96, 7.90291983e-97, 5.10556833e-97, 3.29700324e-97, 2.1282048e-97, 1.37317608e-97, 8.85641196e-98, 5.7096325e-98, 3.67940225e-98, 2.37009172e-98, 1.52606069e-98, 9.82193892e-99, 6.31889914e-99, 4.0635386e-99, 2.61207792e-99, 1.67836587e-99, 1.07796814e-99, 6.9206038e-100, 4.44120503e-100, 2.84889495e-100, 1.82671513e-100, 1.17080345e-100, 7.50094424e-101, 4.80359806e-101, 3.07493659e-101, 1.96754398e-101, 1.2584371e-101, 8.04558007e-102, 5.14164385e-102, 3.28447079e-102, 2.09723743e-102, 1.3385931e-102, 8.54020604e-103, 5.44636698e-103, 3.47187627e-103, 2.21228139e-103, 1.4090788e-103, 8.97116788e-104, 5.70928176e-104, 3.6318906e-104, 2.30941952e-104, 1.46788386e-104, 9.32608465e-105, 5.92278274e-105, 3.75985455e-105, 2.38580575e-105, 1.51327519e-105, 9.59443798e-106, 6.08050938e-106, 3.85193706e-106, 2.43914264e-106, 1.54388168e-106, 9.76808944e-107, 6.17766054e-107, 3.90532564e-107, 2.46779606e-107, 1.55876297e-107, 9.84169036e-108, 6.21123722e-108, 3.91836906e-108, 2.47087835e-108, 1.55745746e-108, 9.81295551e-109, 6.18019632e-109, 3.89066213e-109, 2.44829402e-109, 1.54000608e-109, 9.68278089e-110, 6.08550444e-110, 3.82306667e-110, 2.40074465e-110, 1.50695013e-110, 9.4551974e-111, 5.93008792e-111, 3.71766692e-111, 2.32969268e-111, 1.45930344e-111, 9.13716345e-112, 5.71868263e-112, 3.57766285e-112, 2.23728672e-112, 1.39850072e-112, 8.73821169e-113, 5.45759428e-113, 3.40720882e-113, 2.12625366e-113, 1.3263258e-113, 8.26997467e-114, 5.1543863e-114, 3.21120898e-114, 1.99976516e-114, 1.24482485e-114, 7.74562241e-115, 4.8175166e-115, 2.99508355e-115, 1.86128762e-115, 1.15621037e-115, 7.17924974e-116, 4.45594773e-116, 2.7645213e-116, 1.71442552e-116, 1.06276228e-116, 6.58525309e-117, 4.07875519e-117, 2.52523406e-117, 1.56276785e-117, 9.66732077e-118, 5.9777345e-118, 3.69475757e-118, 2.28272768e-118, 1.40974674e-118, 8.70255795e-119, 5.36996661e-119, 3.31218878e-119, 2.04210192e-119, 1.25851554e-119, 7.75280011e-120, 4.7739452e-120, 2.93842838e-120, 1.80788845e-120, 1.11185202e-120, 6.83504198e-121, 4.20004772e-121, 2.57980039e-121, 1.58393306e-121, 9.72089801e-122, 5.96341167e-122, 3.65680699e-122, 2.24144522e-122, 1.37332417e-122, 8.41079104e-123, 5.1489594e-123, 3.15080073e-123, 1.9272642e-123, 1.17836658e-123, 7.20175636e-124, 4.39962116e-124, 2.68664935e-124, 1.63993087e-124, 1.00059642e-124, 6.10254791e-125, 3.72033717e-125, 2.26710824e-125, 1.38095987e-125, 8.40831003e-126, 5.11746906e-126, 3.11329725e-126, 1.89323621e-126, 1.15082125e-126, 6.99245686e-127, 4.24688571e-127, 2.57828076e-127, 1.56461935e-127, 9.49087039e-128, 5.75469413e-128, 3.48784603e-128, 2.11305705e-128, 1.27962878e-128, 7.74596683e-129, 4.68690474e-129, 2.83475468e-129, 1.71381403e-129, 1.03569235e-129, 6.25628761e-130, 3.77764814e-130, 2.28005416e-130, 1.37558581e-130, 8.29562426e-131, 5.00068297e-131, 3.01320331e-131, 1.81487373e-131, 1.09265551e-131, 6.57565422e-132, 3.9556107e-132, 2.37852097e-132, 1.42961565e-132, 8.5891556e-133, 5.15822777e-133, 3.09648819e-133, 1.8580492e-133, 1.1144584e-133, 6.68173707e-134, 4.00436607e-134, 2.39881654e-134, 1.43641248e-134, 8.59765815e-135, 5.14398923e-135, 3.07637165e-135, 1.83906222e-135, 1.09893731e-135, 6.56399574e-136, 3.91906562e-136, 2.33892155e-136, 1.39530018e-136, 8.32029111e-137, 4.95939008e-137, 2.95485989e-137, 1.75980438e-137, 1.04763687e-137, 6.23413252e-138, 3.70817452e-138, 2.20476944e-138, 1.31034324e-138, 7.78441261e-139, 4.62259134e-139, 2.74387319e-139, 1.62802643e-139, 9.65556628e-140, 5.72417535e-140, 3.39208707e-140, 2.00927757e-140, 1.18968439e-140, 7.04113184e-141, 4.16554732e-141, 2.46331842e-141, 1.456089e-141, 8.60348035e-142, 5.08135233e-142, 2.9998762e-142, 1.77029745e-142, 1.04425855e-142, 6.1572775e-143, 3.62901113e-143, 2.13799538e-143, 1.25905329e-143, 7.41140172e-144, 4.36089354e-144, 2.56489449e-144, 1.50793428e-144, 8.86164233e-145, 5.20552948e-145, 3.05657105e-145, 1.79400221e-145, 1.05251997e-145, 6.17243616e-146, 3.6182766e-146, 2.12014622e-146, 1.24179172e-146, 7.27027098e-147, 4.25472341e-147, 2.48892015e-147, 1.45535683e-147, 8.50642176e-148, 4.96984943e-148, 2.9024079e-148, 1.69430878e-148, 9.88656835e-149, 5.76656887e-149, 3.36208193e-149, 1.95937698e-149, 1.14142297e-149, 6.64651694e-150, 3.86865965e-150, 2.25084626e-150, 1.30903133e-150, 7.60979843e-151, 4.42196363e-151, 2.56847937e-151, 1.49126869e-151, 8.65475186e-152, 5.02079218e-152, 2.91144623e-152, 1.68757937e-152, 9.77774133e-153, 5.66280734e-153, 3.27826407e-153, 1.89703344e-153, 1.09729891e-153, 6.34444757e-154, 3.66675241e-154, 2.1183039e-154, 1.22324614e-154, 7.06087219e-155, 4.07400685e-155, 2.34965483e-155, 1.35458197e-155, 7.80594383e-156, 4.49639508e-156, 2.58894257e-156, 1.49004464e-156, 8.57225442e-157, 4.92957794e-157, 2.83363126e-157, 1.62815536e-157, 9.35119827e-158, 5.36855738e-158, 3.0808237e-158, 1.76723787e-158, 1.01330943e-158, 5.80775213e-159, 3.32730779e-159, 1.90544666e-159, 1.09073571e-159, 6.24110058e-160, 3.56961804e-160, 2.04080369e-160, 1.16627141e-160, 6.66218899e-161, 3.80411102e-161, 2.17124252e-161, 1.2387464e-161, 7.06440185e-162, 4.02705262e-162, 2.29465887e-162, 1.3069768e-162, 7.44108981e-163, 4.23471448e-163, 2.40896585e-163, 1.36979656e-163, 7.78574944e-164, 4.42347621e-164, 2.51215187e-164, 1.42609024e-164, 8.0922082e-165, 4.58992946e-165, 2.60233916e-165, 1.47482574e-165, 8.35480741e-166, 4.73097989e-166, 2.67784038e-166, 1.51508569e-166, 8.56857555e-167, 4.84394263e-167, 2.73721101e-167, 1.54609612e-167, 8.72938466e-168, 4.92662718e-168, 2.7792953e-168, 1.56725122e-168, 8.83408284e-169, 4.97740806e-169, 2.80326371e-169, 1.57813297e-169, 8.88059695e-170, 4.99527793e-170, 2.80864005e-170, 1.57852492e-170, 8.86800093e-171, 4.97988083e-171, 2.79531723e-171, 1.56841932e-171, 8.79654642e-172, 4.93152395e-172, 2.76356082e-172, 1.54801741e-172, 8.66765441e-173, 4.85116747e-173, 2.71400024e-173, 1.51772271e-173, 8.48386824e-174, 4.74039284e-174, 2.64760802e-174, 1.47812777e-174, 8.24877017e-175, 4.60135102e-175, 2.56566804e-175, 1.42999493e-175, 7.96686525e-176, 4.43669304e-176, 2.46973428e-176, 1.37423187e-176, 7.64343789e-177, 4.24948601e-177, 2.36158187e-177, 1.3118632e-177, 7.28438733e-178, 4.04311833e-178, 2.24315257e-178, 1.24399924e-178, 6.89604934e-179, 3.82119802e-179, 2.11649707e-179, 1.17180336e-179, 6.48501148e-180, 3.58744872e-180, 1.98371646e-180, 1.0964591e-180, 6.05792953e-181, 3.34560714e-181, 1.84690523e-181, 1.01913854e-181, 5.62135203e-182, 3.09932619e-182, 1.7080978e-182, 9.40972926e-183, 5.18155923e-183, 2.85208689e-183, 1.56922054e-183, 8.63026561e-184, 4.74442174e-184, 2.60712203e-184, 1.43205065e-184, 7.8627478e-185, 4.31528279e-185, 2.36735357e-185, 1.29818306e-185, 7.11586498e-186, 3.8988669e-186, 2.13534508e-186, 1.16900584e-186, 6.3971162e-187, 3.49921598e-187, 1.91326977e-187, 1.04568438e-187, 5.71273377e-188, 3.11965307e-188, 1.70289381e-188, 9.29154178e-189, 5.06765399e-189, 2.7627722e-189, 1.50557417e-189, 8.20121473e-190, 4.46553159e-190, 2.4304523e-190, 1.32226954e-190, 7.19071105e-191, 3.90879269e-191, 2.12389181e-191, 1.15356242e-191, 6.2628032e-192, 3.39871999e-192, 1.84366054e-192, 9.99690336e-193, 5.41837405e-193, 2.93556316e-193, 1.58976463e-193, 8.60583849e-194, 4.65663833e-194, 2.51866719e-194, 1.36172063e-194, 7.35909161e-195, 3.97538651e-195, 2.14661159e-195, 1.15863472e-195, 6.25113051e-196, 3.37123909e-196, 1.81735387e-196, 9.79283437e-197, 5.27468195e-197, 2.83990039e-197, 1.52837138e-197, 8.22192761e-198, 4.4211715e-198, 2.3764027e-198, 1.27679647e-198, 6.85712826e-199, 3.68113576e-199, 1.97533318e-199, 1.0595412e-199, 5.68086277e-200, 3.04459629e-200, 1.63103805e-200, 8.73408542e-201, 4.67508749e-201, 2.50138773e-201, 1.33780018e-201, 7.15188386e-202, 3.82180585e-202, 2.04143593e-202, 1.08998834e-202, 5.8173731e-203, 3.10349429e-203, 1.65498457e-203, 8.82177373e-204, 4.70042196e-204, 2.50343746e-204, 1.33277125e-204, 7.09240374e-205, 3.77268247e-205, 2.00597736e-205, 1.06615603e-205, 5.6641465e-206, 3.00792606e-206, 1.59668338e-206, 8.47206781e-207, 4.49344067e-207, 2.38225128e-207, 1.26245265e-207, 6.68746617e-208, 3.54100931e-208, 1.87418091e-208, 9.91550693e-209, 5.2436936e-209, 2.77190705e-209, 1.46466732e-209, 7.73603262e-210, 4.08428995e-210, 2.15542945e-210, 1.13702505e-210, 5.99549747e-211, 3.16008955e-211, 1.66491678e-211, 8.76808283e-212, 4.61568042e-212, 2.42876667e-212, 1.27748213e-212, 6.7164973e-213, 3.52979783e-213, 1.85428205e-213, 9.73690054e-214, 5.11075013e-214, 2.68143664e-214, 1.40627225e-214, 7.37208358e-215, 3.8630477e-215, 2.02343319e-215, 1.05941628e-215, 5.54451288e-216, 2.90054179e-216, 1.51674941e-216, 7.92807083e-217, 4.14228701e-217, 2.16337512e-217, 1.12938614e-217, 5.89348326e-218, 3.07411872e-218, 1.60283271e-218, 8.35362041e-219, 4.35191353e-219, 2.26623404e-219, 1.1796366e-219, 6.13777129e-220, 3.19221508e-220, 1.65955851e-220, 8.62406406e-221, 4.47971475e-221, 2.32598939e-221, 1.20721349e-221, 6.26295678e-222, 3.2478333e-222, 1.68355391e-222, 8.72326991e-223, 4.51804524e-223, 2.3390571e-223, 1.21045892e-223, 6.26149834e-224, 3.23761698e-224, 1.67336875e-224, 8.64523537e-225, 4.46458375e-225, 2.3046454e-225, 1.18917627e-225, 6.13348551e-226, 3.16218619e-226, 1.62962064e-226, 8.39468844e-227, 4.32256601e-227, 2.22483431e-227, 1.14464996e-227, 5.88662959e-228, 3.02607514e-228, 1.55493305e-228, 7.98661349e-229, 4.10046046e-229, 2.10436746e-229, 1.07951707e-229, 5.53549471e-230, 2.83728103e-230, 1.45367478e-230, 7.44476766e-231, 3.81113234e-231, 1.9501854e-231, 9.97508855e-232, 5.10007555e-232, 2.60648631e-232, 1.33153712e-232, 6.79939229e-233, 3.47061076e-233, 1.77076411e-233, 9.03097216e-234, 4.6039149e-234, 2.34605972e-234, 1.1950053e-234, 6.08442565e-235, 3.09662303e-235, 1.57534646e-235, 8.0109278e-236, 4.07200728e-236, 2.06896559e-236, 1.05079254e-236, 5.33457331e-237, 2.70708186e-237, 1.37316297e-237, 6.9624449e-238, 3.52874644e-238, 1.78771437e-238, 9.05304754e-239, 4.58258434e-239, 2.31870302e-239, 1.17273202e-239, 5.92886325e-240, 2.99614674e-240, 1.51346967e-240, 7.64193535e-241, 3.85702091e-241, 1.94589599e-241, 9.81310056e-242, 4.94665785e-242, 2.4925076e-242, 1.25539417e-242, 6.32037319e-243, 3.1807119e-243, 1.60001827e-243, 8.04534273e-244, 4.04373935e-244, 2.03161194e-244, 1.02027527e-244, 5.1216861e-245, 2.56996706e-245, 1.28902445e-245, 6.46269634e-246, 3.23880907e-246, 1.62246726e-246, 8.12429223e-247, 4.06643778e-247, 2.03451889e-247, 1.01748572e-247, 5.0864399e-248, 2.5416662e-248, 1.26952749e-248, 6.33847393e-249, 3.16334317e-249, 1.57807234e-249, 7.86912621e-250, 3.9223389e-250, 1.9542617e-250, 9.73283428e-251, 4.84523604e-251, 2.41106852e-251, 1.19928711e-251, 5.9628761e-252, 2.96351689e-252, 1.47223803e-252, 7.3108464e-253, 3.62891078e-253, 1.80054478e-253, 8.92998164e-254, 4.42706817e-254, 2.19381932e-254, 1.08668709e-254, 5.38055613e-255, 2.66298566e-255, 1.3174359e-255, 6.51492119e-256, 3.22038536e-256, 1.59120277e-256, 7.8589082e-257, 3.87987658e-257, 1.91466417e-257, 9.44465978e-258, 4.65692272e-258, 2.29525399e-258, 1.13078875e-258, 5.56866654e-259, 2.74119514e-259, 1.34880045e-259, 6.63398458e-260, 3.26152132e-260, 1.60282089e-260, 7.87351705e-261, 3.86608644e-261, 1.89755056e-261, 9.3096673e-262, 4.56555916e-262, 2.23806552e-262, 1.09665653e-262, 5.37139968e-263, 2.62980362e-263, 1.28699891e-263, 6.29581631e-264, 3.0785409e-264, 1.50472389e-264, 7.35169899e-265, 3.59035694e-265, 1.75269581e-265, 8.55252751e-266, 4.17158812e-266, 2.0338896e-266, 9.91225215e-267, 4.82876775e-267, 2.35136097e-267, 1.14451452e-267, 5.56855249e-268, 2.70821003e-268, 1.31656219e-268, 6.39763453e-269, 3.10753829e-269, 1.50880308e-269, 7.32263944e-270, 3.55239909e-270, 1.72264134e-270, 8.35000992e-271, 4.04574152e-271, 1.95942338e-271, 9.48587627e-272, 4.59034828e-272, 2.22040826e-272, 1.07359146e-272, 5.18876823e-273, 2.50673551e-273, 1.21051944e-273, 5.84324424e-274, 2.81939111e-274, 1.35980185e-274, 6.55563771e-275, 3.15917204e-275, 1.52177563e-275, 7.32735092e-276, 3.52665009e-276, 1.69666761e-276, 8.15924894e-277, 3.92213569e-277, 1.88457776e-277, 9.05158276e-278, 4.34564263e-278, 2.08546309e-278, 1.00039157e-278, 4.79685464e-279, 2.29912249e-279, 1.10150553e-279, 5.2750948e-280, 2.52518311e-280, 1.20829923e-280, 5.77929873e-281, 2.76308857e-281, 1.32048505e-281, 6.30799278e-282, 3.01208974e-282, 1.43768468e-282, 6.859278e-283, 3.2712383e-283, 1.55942675e-283, 7.43082098e-284, 3.53938362e-284, 1.68514585e-284, 8.01985237e-285, 3.81517333e-285, 1.81418342e-285, 8.6231737e-286, 4.09705786e-286, 1.94579051e-286, 9.23717316e-287, 4.38329915e-287, 2.07913246e-287, 9.85785053e-288, 4.67198372e-288, 2.21329567e-288, 1.04808516e-288, 4.96104001e-289, 2.34729628e-289, 1.11015115e-289, 5.24825999e-290, 2.48009085e-290, 1.17149075e-290, 5.53132479e-291, 2.61058886e-291, 1.2315919e-291, 5.80783394e-292, 2.73766675e-292, 1.28992956e-292, 6.07533787e-293, 2.86018351e-293, 1.34597312e-293, 6.331373e-294, 2.97699728e-294, 1.39919421e-294, 6.57349879e-295, 3.08698273e-295, 1.44907491e-295, 6.79933598e-296, 3.18904899e-296, 1.49511606e-296, 7.0066052e-297, 3.28215747e-297, 1.53684549e-297, 7.19316507e-298, 3.36533942e-298, 1.57382611e-298, 7.35704895e-299, 3.43771265e-299, 1.60566347e-299, 7.49649934e-300, 3.49849708e-300, 1.63201276e-300, 7.60999926e-301, 3.54702873e-301, 1.65258507e-301, 7.69629972e-302, 3.5827718e-302, 1.66715259e-302, 7.75444257e-303, 3.60532853e-303, 1.67555286e-303, 7.78377822e-304, 3.6144465e-304, 1.67769178e-304, 7.78397772e-305, 3.61002342e-305, 1.67354535e-305, 7.75503889e-306, 3.59210899e-306, 1.66316011e-306, 7.69728638e-307, 3.56090396e-307, 1.6466523e-307, 7.61136559e-308, 3.51675643e-308, 1.62420569e-308, 7.49823067e-309, 3.46015534e-309, 1.59606814e-309, 7.35912687e-310, 3.3917215e-310, 1.56254708e-310, 7.19556777e-311, 3.31219622e-311, 1.5240039e-311, 7.00930782e-312, 3.22242798e-312, 1.48084751e-312, 6.80231085e-313, 3.12335711e-313, 1.43352722e-313, 6.57671454e-314, 3.01599865e-314, 1.38252181e-314, 6.33478188e-315, 2.90145408e-315, 1.32833996e-315, 6.07898623e-316, 2.78086771e-316, 1.27144563e-316, 5.80935529e-317, 2.65696499e-317, 1.21510604e-317, 5.52131205e-318, 2.54965047e-318, 1.16921129e-318, 5.31738151e-319, 2.12808896e-319, 1.06461265e-319, 5.32602766e-320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1856598, 0.37130626, 0.55692604, 0.74250582, 0.92803227, 1.11349206, 1.29887187, 1.48415841, 1.66933839, 1.85439851, 2.03932552, 2.22410617, 2.40872722, 2.59317546, 2.77743769, 2.96150075, 3.14535149, 3.32897679, 3.51236355, 3.69549871, 3.87836923, 4.06096211, 4.24326437, 4.42526308, 4.60694534, 4.78829829, 4.9693091, 5.14996499, 5.33025322, 5.51016109, 5.68967596, 5.86878521, 6.04747629, 6.22573669, 6.40355396, 6.5809157, 6.75780955, 6.93422322, 7.11014448, 7.28556114, 7.46046109, 7.63483227, 7.80866268, 7.98194039, 8.15465354, 8.32679032, 8.49833901, 8.66928794, 8.83962552, 9.00934022, 9.17842061, 9.3468553, 9.51463301, 9.68174251, 9.84817265, 10.01391239, 10.17895072, 10.34327676, 10.50687969, 10.66974878, 10.83187337, 10.99324291, 11.15384692, 11.31367502, 11.47271691, 11.6309624, 11.78840137, 11.9450238, 12.10081976, 12.25577944, 12.40989309, 12.56315109, 12.71554389, 12.86706206, 13.01769625, 13.16743725, 13.3162759, 13.46420317, 13.61121015, 13.75728801, 13.90242803, 14.0466216, 14.18986021, 14.33213548, 14.47343911, 14.61376293, 14.75309886, 14.89143897, 15.0287754, 15.16510042, 15.30040641, 15.43468587, 15.56793142, 15.70013577, 15.83129176, 15.96139237, 16.09043065, 16.21839981, 16.34529315, 16.47110411, 16.59582623, 16.71945318, 16.84197875, 16.96339684, 17.08370149, 17.20288685, 17.32094719, 17.43787691, 17.55367051, 17.66832265, 17.78182809, 17.8941817, 18.00537852, 18.11541366, 18.22428238, 18.33198008, 18.43850225, 18.54384454, 18.6480027, 18.75097261, 18.85275028, 18.95333184, 19.05271356, 19.15089183, 19.24786314, 19.34362414, 19.4381716, 19.5315024, 19.62361355, 19.71450219, 19.8041656, 19.89260116, 19.97980639, 20.06577893, 20.15051655, 20.23401714, 20.31627873, 20.39729945, 20.47707758, 20.5556115, 20.63289974, 20.70894093, 20.78373384, 20.85727736, 20.9295705, 21.00061239, 21.07040229, 21.13893958, 21.20622377, 21.27225447, 21.33703143, 21.40055452, 21.46282372, 21.52383913, 21.58360098, 21.64210962, 21.69936551, 21.75536923, 21.81012147, 21.86362305, 21.91587491, 21.96687809, 22.01663375, 22.06514317, 22.11240775, 22.15842898, 22.20320849, 22.246748, 22.28904937, 22.33011453, 22.36994557, 22.40854464, 22.44591403, 22.48205613, 22.51697344, 22.55066857, 22.58314421, 22.61440319, 22.64444843, 22.67328295, 22.70090988, 22.72733244, 22.75255397, 22.77657789, 22.79940773, 22.82104712, 22.84149978, 22.86076955, 22.87886032, 22.89577613, 22.91152107, 22.92609935, 22.93951526, 22.95177319, 22.9628776, 22.97283306, 22.98164424, 22.98931585, 22.99585275, 23.00125982, 23.00554208, 23.00870461, 23.01075256, 23.01169118, 23.0115258, 23.01026183, 23.00790474, 23.0044601, 22.99993355, 22.99433079, 22.98765762, 22.97991989, 22.97112354, 22.96127458, 22.95037907, 22.93844315, 22.92547305, 22.91147503, 22.89645544, 22.88042069, 22.86337725, 22.84533164, 22.82629048, 22.8062604, 22.78524812, 22.76326043, 22.74030413, 22.71638612, 22.69151335, 22.66569278, 22.63893149, 22.61123655, 22.58261512, 22.55307438, 22.52262159, 22.49126403, 22.45900903, 22.42586398, 22.39183629, 22.35693344, 22.32116292, 22.28453228, 22.2470491, 22.20872101, 22.16955566, 22.12956076, 22.08874401, 22.04711319, 22.00467609, 21.96144053, 21.91741437, 21.87260548, 21.82702177, 21.78067119, 21.73356169, 21.68570126, 21.6370979, 21.58775965, 21.53769455, 21.48691069, 21.43541614, 21.38321902, 21.33032745, 21.27674957, 21.22249353, 21.1675675, 21.11197966, 21.0557382, 20.99885132, 20.94132724, 20.88317416, 20.82440033, 20.76501396, 20.70502329, 20.64443657, 20.58326203, 20.52150793, 20.45918251, 20.39629402, 20.3328507, 20.2688608, 20.20433255, 20.1392742, 20.07369397, 20.0076001, 19.94100079, 19.87390428, 19.80631875, 19.7382524, 19.66971341, 19.60070997, 19.53125021, 19.46134231, 19.39099438, 19.32021454, 19.2490109, 19.17739154, 19.10536453, 19.03293792, 18.96011975, 18.88691801, 18.81334071, 18.73939581, 18.66509125, 18.59043497, 18.51543485, 18.44009878, 18.3644346, 18.28845014, 18.21215319, 18.13555152, 18.05865287, 17.98146495, 17.90399544, 17.826252, 17.74824224, 17.66997375, 17.59145409, 17.51269077, 17.43369129, 17.3544631, 17.27501362, 17.19535022, 17.11548027, 17.03541106, 16.95514987, 16.87470394, 16.79408046, 16.71328658, 16.63232942, 16.55121606, 16.46995354, 16.38854884, 16.30700893, 16.22534071, 16.14355104, 16.06164676, 15.97963464, 15.89752142, 15.81531379, 15.73301839, 15.65064184, 15.56819067, 15.48567141, 15.40309051, 15.32045438, 15.2377694, 15.15504189, 15.07227811, 14.98948428, 14.90666659, 14.82383115, 14.74098404, 14.65813128, 14.57527885, 14.49243268, 14.40959863, 14.32678253, 14.24399015, 14.16122721, 14.07849938, 13.99581227, 13.91317144, 13.83058242, 13.74805065, 13.66558155, 13.58318046, 13.50085268, 13.41860346, 13.336438, 13.25436143, 13.17237884, 13.09049525, 13.00871565, 12.92704496, 12.84548805, 12.76404973, 12.68273476, 12.60154784, 12.52049364, 12.43957673, 12.35880168, 12.27817295, 12.19769498, 12.11737216, 12.0372088, 11.95720916, 11.87737747, 11.79771788, 11.71823448, 11.63893134, 11.55981244, 11.48088171, 11.40214305, 11.32360029, 11.24525719, 11.16711747, 11.08918481, 11.0114628, 10.93395502, 10.85666495, 10.77959605, 10.70275171, 10.62613528, 10.54975003, 10.4735992, 10.39768597, 10.32201346, 10.24658475, 10.17140285, 10.09647074, 10.02179132, 9.94736746, 9.87320196, 9.79929758, 9.72565703, 9.65228295, 9.57917795, 9.50634458, 9.43378532, 9.36150264, 9.28949893, 9.21777652, 9.14633772, 9.07518477, 9.00431987, 8.93374515, 8.86346273, 8.79347463, 8.72378286, 8.65438937, 8.58529606, 8.51650478, 8.44801733, 8.37983548, 8.31196093, 8.24439534, 8.17714034, 8.11019748, 8.0435683, 7.97725426, 7.91125682, 7.84557734, 7.78021717, 7.71517761, 7.65045991, 7.58606529, 7.5219949, 7.45824987, 7.39483128, 7.33174016, 7.26897751, 7.20654428, 7.14444139, 7.0826697, 7.02123003, 6.96012319, 6.89934991, 6.8389109, 6.77880683, 6.71903833, 6.659606, 6.60051037, 6.54175197, 6.48333127, 6.4252487, 6.36750468, 6.31009956, 6.25303367, 6.19630731, 6.13992072, 6.08387414, 6.02816775, 5.9728017, 5.9177761, 5.86309105, 5.80874658, 5.75474273, 5.70107948, 5.64775677, 5.59477453, 5.54213265, 5.48983098, 5.43786936, 5.38624757, 5.3349654, 5.28402257, 5.23341879, 5.18315375, 5.13322708, 5.08363842, 5.03438736, 4.98547347, 4.93689628, 4.88865532, 4.84075006, 4.79317997, 4.74594449, 4.69904302, 4.65247495, 4.60623964, 4.56033644, 4.51476464, 4.46952355, 4.42461243, 4.38003053, 4.33577706, 4.29185123, 4.24825222, 4.20497918, 4.16203125, 4.11940755, 4.07710718, 4.0351292, 3.99347268, 3.95213666, 3.91112015, 3.87042215, 3.83004165, 3.78997762, 3.750229, 3.71079472, 3.67167369, 3.63286482, 3.59436698, 3.55617905, 3.51829987, 3.48072828, 3.44346309, 3.40650313, 3.36984717, 3.333494, 3.29744239, 3.26169108, 3.22623881, 3.19108433, 3.15622633, 3.12166352, 3.0873946, 3.05341824, 3.01973312, 2.98633789, 2.9532312, 2.92041169, 2.887878, 2.85562873, 2.82366251, 2.79197792, 2.76057357, 2.72944804, 2.69859991, 2.66802773, 2.63773009, 2.60770552, 2.57795258, 2.54846981, 2.51925574, 2.4903089, 2.46162781, 2.43321098, 2.40505693, 2.37716417, 2.34953118, 2.32215648, 2.29503855, 2.26817588, 2.24156695, 2.21521024, 2.18910423, 2.16324739, 2.13763819, 2.11227509, 2.08715657, 2.06228109, 2.0376471, 2.01325306, 1.98909743, 1.96517866, 1.9414952, 1.91804552, 1.89482806, 1.87184127, 1.84908359, 1.82655349, 1.80424941, 1.7821698, 1.76031311, 1.73867778, 1.71726228, 1.69606505, 1.67508455, 1.65431922, 1.63376752, 1.61342792, 1.59329886, 1.57337881, 1.55366622, 1.53415957, 1.51485732, 1.49575793, 1.47685988, 1.45816164, 1.43966168, 1.42135849, 1.40325055, 1.38533634, 1.36761435, 1.35008308, 1.33274101, 1.31558666, 1.29861852, 1.2818351, 1.26523492, 1.24881648, 1.23257831, 1.21651893, 1.20063688, 1.18493069, 1.16939889, 1.15404002, 1.13885265, 1.12383532, 1.10898659, 1.09430502, 1.07978919, 1.06543766, 1.05124903, 1.03722187, 1.02335478, 1.00964635, 0.99609519, 0.98269991, 0.96945913, 0.95637146, 0.94343553, 0.93064998, 0.91801345, 0.90552458, 0.89318203, 0.88098445, 0.86893053, 0.85701891, 0.8452483, 0.83361737, 0.82212481, 0.81076933, 0.79954963, 0.78846443, 0.77751244, 0.76669241, 0.75600305, 0.74544311, 0.73501135, 0.72470651, 0.71452737, 0.70447269, 0.69454125, 0.68473184, 0.67504324, 0.66547427, 0.65602372, 0.64669042, 0.63747318, 0.62837084, 0.61938222, 0.61050619, 0.60174159, 0.59308728, 0.58454213, 0.57610501, 0.56777481, 0.55955042, 0.55143074, 0.54341466, 0.53550112, 0.52768902, 0.51997729, 0.51236488, 0.50485073, 0.49743378, 0.490113, 0.48288736, 0.47575583, 0.46871739, 0.46177104, 0.45491576, 0.44815057, 0.44147448, 0.43488651, 0.42838569, 0.42197106, 0.41564165, 0.40939653, 0.40323474, 0.39715535, 0.39115745, 0.38524011, 0.37940241, 0.37364347, 0.36796237, 0.36235823, 0.35683018, 0.35137733, 0.34599882, 0.3406938, 0.33546141, 0.3303008, 0.32521114, 0.32019161, 0.31524137, 0.31035962, 0.30554554, 0.30079834, 0.29611722, 0.2915014, 0.28695009, 0.28246253, 0.27803796, 0.2736756, 0.26937472, 0.26513457, 0.26095441, 0.25683351, 0.25277115, 0.24876661, 0.24481918, 0.24092817, 0.23709287, 0.2333126, 0.22958667, 0.22591441, 0.22229515, 0.21872823, 0.21521298, 0.21174877, 0.20833494, 0.20497086, 0.20165591, 0.19838945, 0.19517087, 0.19199956, 0.18887492, 0.18579633, 0.18276322, 0.179775, 0.17683108, 0.17393089, 0.17107386, 0.16825943, 0.16548705, 0.16275616, 0.16006622, 0.15741668, 0.15480703, 0.15223672, 0.14970524, 0.14721208, 0.14475671, 0.14233865, 0.13995738, 0.13761241, 0.13530326, 0.13302944, 0.13079048, 0.1285859, 0.12641524, 0.12427803, 0.12217383, 0.12010217, 0.11806261, 0.11605471, 0.11407804, 0.11213216, 0.11021664, 0.10833108, 0.10647505, 0.10464813, 0.10284993, 0.10108004, 0.09933806, 0.09762361, 0.09593629, 0.09427572, 0.09264153, 0.09103334, 0.08945077, 0.08789347, 0.08636108, 0.08485323, 0.08336958, 0.08190978, 0.08047348, 0.07906035, 0.07767005, 0.07630225, 0.07495663, 0.07363285, 0.07233061, 0.07104959, 0.06978948, 0.06854996, 0.06733074, 0.06613152, 0.064952, 0.0637919, 0.06265092, 0.06152878, 0.06042519, 0.05933989, 0.0582726, 0.05722304, 0.05619096, 0.05517609, 0.05417817, 0.05319694, 0.05223216, 0.05128357, 0.05035092, 0.04943398, 0.0485325, 0.04764624, 0.04677499, 0.04591849, 0.04507654, 0.04424889, 0.04343534, 0.04263567, 0.04184965, 0.04107708, 0.04031775, 0.03957145, 0.03883798, 0.03811713, 0.03740871, 0.03671253, 0.03602839, 0.0353561, 0.03469548, 0.03404634, 0.03340849, 0.03278176, 0.03216598, 0.03156096, 0.03096653, 0.03038253, 0.02980879, 0.02924514, 0.02869143, 0.02814748, 0.02761315, 0.02708827, 0.0265727, 0.02606628, 0.02556886, 0.0250803, 0.02460046, 0.02412918, 0.02366633, 0.02321178, 0.02276537, 0.02232699, 0.0218965, 0.02147376, 0.02105866, 0.02065105, 0.02025082, 0.01985785, 0.01947201, 0.01909318, 0.01872126, 0.01835611, 0.01799763, 0.0176457, 0.01730022, 0.01696108, 0.01662816, 0.01630137, 0.01598059, 0.01566574, 0.0153567, 0.01505337, 0.01475566, 0.01446348, 0.01417672, 0.0138953, 0.01361913, 0.0133481, 0.01308214, 0.01282115, 0.01256506, 0.01231377, 0.0120672, 0.01182527, 0.01158789, 0.011355, 0.01112651, 0.01090234, 0.01068242, 0.01046667, 0.01025502, 0.01004739, 0.00984372, 0.00964394, 0.00944798, 0.00925576, 0.00906723, 0.00888231, 0.00870094, 0.00852307, 0.00834862, 0.00817753, 0.00800975, 0.00784522, 0.00768387, 0.00752565, 0.0073705, 0.00721837, 0.0070692, 0.00692294, 0.00677954, 0.00663894, 0.00650109, 0.00636595, 0.00623346, 0.00610357, 0.00597624, 0.00585142, 0.00572906, 0.00560912, 0.00549155, 0.00537631, 0.00526336, 0.00515265, 0.00504414, 0.0049378, 0.00483357, 0.00473143, 0.00463133, 0.00453323, 0.0044371, 0.0043429, 0.00425059, 0.00416014, 0.00407151, 0.00398467, 0.00389959, 0.00381622, 0.00373455, 0.00365453, 0.00357614, 0.00349934, 0.0034241, 0.0033504, 0.0032782, 0.00320748, 0.0031382, 0.00307034, 0.00300388, 0.00293878, 0.00287502, 0.00281257, 0.00275141, 0.00269152, 0.00263286, 0.00257541, 0.00251916, 0.00246407, 0.00241013, 0.0023573, 0.00230558, 0.00225494, 0.00220535, 0.00215681, 0.00210927, 0.00206273, 0.00201717, 0.00197257, 0.0019289, 0.00188616, 0.00184431, 0.00180335, 0.00176325, 0.00172401, 0.00168559, 0.00164799, 0.00161119, 0.00157517, 0.00153991, 0.00150541, 0.00147164, 0.0014386, 0.00140626, 0.00137462, 0.00134365, 0.00131335, 0.0012837, 0.00125469, 0.0012263, 0.00119853, 0.00117135, 0.00114476, 0.00111875, 0.0010933, 0.00106841, 0.00104405, 0.00102023, 0.00099692, 0.00097412, 0.00095182, 0.00093001, 0.00090867, 0.00088781, 0.00086739, 0.00084743, 0.00082791, 0.00080881, 0.00079014, 0.00077188, 0.00075402, 0.00073656, 0.00071948, 0.00070278, 0.00068645, 0.00067049, 0.00065488, 0.00063961, 0.00062469, 0.0006101, 0.00059584, 0.00058189, 0.00056826, 0.00055493, 0.0005419, 0.00052917, 0.00051672, 0.00050455, 0.00049266, 0.00048103, 0.00046967, 0.00045856, 0.00044771, 0.0004371, 0.00042673, 0.0004166, 0.0004067, 0.00039702, 0.00038756, 0.00037832, 0.0003693, 0.00036047, 0.00035185, 0.00034343, 0.0003352, 0.00032716, 0.0003193, 0.00031163, 0.00030413, 0.00029681, 0.00028965, 0.00028266, 0.00027583, 0.00026916, 0.00026265, 0.00025629, 0.00025007, 0.000244, 0.00023807, 0.00023228, 0.00022662, 0.0002211, 0.0002157, 0.00021044, 0.00020529, 0.00020027, 0.00019536, 0.00019057, 0.00018589, 0.00018133, 0.00017687, 0.00017251, 0.00016826, 0.00016411, 0.00016006, 0.00015611, 0.00015224, 0.00014847, 0.00014479, 0.0001412, 0.0001377, 0.00013427, 0.00013093, 0.00012767, 0.00012449, 0.00012138, 0.00011835, 0.00011539, 0.0001125, 0.00010968, 0.00010693, 0.00010425, 0.00010163, 0.00009907, 0.00009658, 0.00009415, 0.00009177, 0.00008946, 0.0000872, 0.00008499, 0.00008284, 0.00008074, 0.00007869, 0.00007669, 0.00007474, 0.00007284, 0.00007099, 0.00006918, 0.00006741, 0.00006569, 0.00006401, 0.00006238, 0.00006078, 0.00005922, 0.0000577, 0.00005622, 0.00005477, 0.00005337, 0.00005199, 0.00005065, 0.00004934, 0.00004807, 0.00004683, 0.00004562, 0.00004443, 0.00004328, 0.00004216, 0.00004107, 0.00004, 0.00003896, 0.00003794, 0.00003695, 0.00003599, 0.00003505, 0.00003413, 0.00003324, 0.00003237, 0.00003152, 0.0000307, 0.00002989, 0.0000291, 0.00002834, 0.00002759, 0.00002686, 0.00002616, 0.00002547, 0.00002479, 0.00002414, 0.0000235, 0.00002288, 0.00002227, 0.00002168, 0.0000211, 0.00002054, 0.00001999, 0.00001946, 0.00001894, 0.00001844, 0.00001794, 0.00001746, 0.000017, 0.00001654, 0.0000161, 0.00001567, 0.00001525, 0.00001484, 0.00001444, 0.00001405, 0.00001367, 0.0000133, 0.00001294, 0.00001259, 0.00001225, 0.00001192, 0.0000116, 0.00001128, 0.00001098, 0.00001068, 0.00001039, 0.0000101, 9.8288937e-06, 9.56090183e-06, 9.29998768e-06, 9.04597079e-06, 8.79867514e-06, 8.55792902e-06, 8.32356494e-06, 8.09541953e-06, 7.87333344e-06, 7.65715124e-06, 7.44672136e-06, 7.24189594e-06, 7.04253079e-06, 6.8484853e-06, 6.65962233e-06, 6.47580814e-06, 6.29691232e-06, 6.12280771e-06, 5.95337028e-06, 5.78847913e-06, 5.62801636e-06, 5.47186701e-06, 5.31991899e-06, 5.17206302e-06, 5.02819256e-06, 4.88820374e-06, 4.7519953e-06, 4.61946852e-06, 4.49052716e-06, 4.36507741e-06, 4.24302781e-06, 4.12428924e-06, 4.00877481e-06, 3.89639982e-06, 3.78708172e-06, 3.68074007e-06, 3.57729645e-06, 3.47667444e-06, 3.37879956e-06, 3.28359922e-06, 3.1910027e-06, 3.10094105e-06, 3.01334712e-06, 2.92815545e-06, 2.84530226e-06, 2.7647254e-06, 2.68636433e-06, 2.61016003e-06, 2.53605504e-06, 2.46399335e-06, 2.39392038e-06, 2.325783e-06, 2.25952941e-06, 2.19510917e-06, 2.13247312e-06, 2.07157341e-06, 2.0123634e-06, 1.95479766e-06, 1.89883195e-06, 1.84442319e-06, 1.79152938e-06, 1.74010967e-06, 1.69012422e-06, 1.64153427e-06, 1.59430206e-06, 1.5483908e-06, 1.50376468e-06, 1.46038883e-06, 1.41822929e-06, 1.37725299e-06, 1.33742772e-06, 1.29872214e-06, 1.26110572e-06, 1.22454873e-06, 1.18902224e-06, 1.15449806e-06, 1.12094878e-06, 1.08834769e-06, 1.05666878e-06, 1.02588675e-06, 9.95976977e-07, 9.66915465e-07, 9.38678875e-07, 9.11244486e-07, 8.84590179e-07, 8.5869443e-07, 8.33536286e-07, 8.09095355e-07, 7.85351791e-07, 7.62286279e-07, 7.39880022e-07, 7.18114728e-07, 6.96972594e-07, 6.76436298e-07, 6.56488983e-07, 6.37114248e-07, 6.1829613e-07, 6.00019101e-07, 5.82268052e-07, 5.65028279e-07, 5.48285481e-07, 5.32025741e-07, 5.16235521e-07, 5.0090165e-07, 4.86011315e-07, 4.71552051e-07, 4.57511734e-07, 4.43878568e-07, 4.30641081e-07, 4.17788113e-07, 4.0530881e-07, 3.93192614e-07, 3.81429257e-07, 3.70008751e-07, 3.58921383e-07, 3.48157708e-07, 3.37708538e-07, 3.27564939e-07, 3.17718225e-07, 3.08159946e-07, 2.98881888e-07, 2.89876061e-07, 2.811347e-07, 2.72650251e-07, 2.64415371e-07, 2.5642292e-07, 2.48665958e-07, 2.41137734e-07, 2.33831689e-07, 2.26741443e-07, 2.19860796e-07, 2.1318372e-07, 2.06704355e-07, 2.00417006e-07, 1.94316135e-07, 1.8839636e-07, 1.82652452e-07, 1.77079324e-07, 1.71672036e-07, 1.66425785e-07, 1.61335903e-07, 1.56397854e-07, 1.51607228e-07, 1.46959742e-07, 1.42451232e-07, 1.38077652e-07, 1.33835071e-07, 1.29719668e-07, 1.25727732e-07, 1.21855655e-07, 1.18099935e-07, 1.14457164e-07, 1.10924036e-07, 1.07497337e-07, 1.04173944e-07, 1.00950823e-07, 9.78250283e-08, 9.47936968e-08, 9.18540477e-08, 8.90033797e-08, 8.62390687e-08, 8.35585662e-08, 8.09593965e-08, 7.84391551e-08, 7.59955066e-08, 7.36261827e-08, 7.13289806e-08, 6.91017608e-08, 6.69424455e-08, 6.48490171e-08, 6.28195161e-08, 6.08520397e-08, 5.89447403e-08, 5.70958237e-08, 5.53035477e-08, 5.35662209e-08, 5.18822008e-08, 5.02498928e-08, 4.86677486e-08, 4.71342651e-08, 4.56479829e-08, 4.42074854e-08, 4.28113971e-08, 4.14583829e-08, 4.01471467e-08, 3.88764304e-08, 3.76450126e-08, 3.64517081e-08, 3.5295366e-08, 3.41748698e-08, 3.30891352e-08, 3.20371104e-08, 3.10177742e-08, 3.00301357e-08, 2.90732332e-08, 2.81461334e-08, 2.72479306e-08, 2.6377746e-08, 2.55347266e-08, 2.47180449e-08, 2.39268979e-08, 2.31605064e-08, 2.24181143e-08, 2.16989882e-08, 2.10024164e-08, 2.03277084e-08, 1.96741942e-08, 1.90412241e-08, 1.84281675e-08, 1.78344128e-08, 1.72593668e-08, 1.67024537e-08, 1.61631155e-08, 1.56408105e-08, 1.51350134e-08, 1.46452147e-08, 1.41709204e-08, 1.37116511e-08, 1.3266942e-08, 1.28363422e-08, 1.24194145e-08, 1.20157349e-08, 1.16248923e-08, 1.12464879e-08, 1.0880135e-08, 1.05254586e-08, 1.01820953e-08, 9.84969238e-09, 9.52790814e-09, 9.21641113e-09, 8.91488e-09, 8.62300321e-09, 8.34047872e-09, 8.0670137e-09, 7.80232426e-09, 7.5461352e-09, 7.29817972e-09, 7.05819922e-09, 6.82594299e-09, 6.60116803e-09, 6.3836388e-09, 6.17312699e-09, 5.96941131e-09, 5.77227728e-09, 5.58151702e-09, 5.39692908e-09, 5.21831819e-09, 5.04549514e-09, 4.87827655e-09, 4.71648471e-09, 4.55994742e-09, 4.4084978e-09, 4.26197417e-09, 4.12021984e-09, 3.98308299e-09, 3.85041653e-09, 3.72207793e-09, 3.59792912e-09, 3.47783631e-09, 3.36166988e-09, 3.24930428e-09, 3.14061785e-09, 3.03549275e-09, 2.93381482e-09, 2.83547349e-09, 2.74036164e-09, 2.64837549e-09, 2.55941456e-09, 2.4733815e-09, 2.39018202e-09, 2.3097248e-09, 2.2319214e-09, 2.15668616e-09, 2.08393612e-09, 2.01359095e-09, 1.94557284e-09, 1.87980646e-09, 1.81621884e-09, 1.75473934e-09, 1.69529956e-09, 1.63783325e-09, 1.58227628e-09, 1.52856654e-09, 1.47664391e-09, 1.42645018e-09, 1.377929e-09, 1.33102579e-09, 1.28568773e-09, 1.2418637e-09, 1.19950417e-09, 1.15856124e-09, 1.11898852e-09, 1.0807411e-09, 1.04377552e-09, 1.0080497e-09, 9.73522936e-10, 9.40155808e-10, 9.07910172e-10, 8.7674911e-10, 8.46636892e-10, 8.1753894e-10, 7.89421791e-10, 7.62253062e-10, 7.36001416e-10, 7.10636527e-10, 6.86129052e-10, 6.62450596e-10, 6.39573687e-10, 6.17471741e-10, 5.96119038e-10, 5.75490691e-10, 5.55562624e-10, 5.36311544e-10, 5.17714916e-10, 4.99750937e-10, 4.82398517e-10, 4.65637253e-10, 4.4944741e-10, 4.33809894e-10, 4.1870624e-10, 4.04118584e-10, 3.90029648e-10, 3.7642272e-10, 3.63281638e-10, 3.50590767e-10, 3.38334988e-10, 3.2649968e-10, 3.15070701e-10, 3.04034375e-10, 2.93377477e-10, 2.83087219e-10, 2.73151234e-10, 2.63557563e-10, 2.54294643e-10, 2.45351294e-10, 2.36716704e-10, 2.28380423e-10, 2.20332343e-10, 2.12562694e-10, 2.0506203e-10, 1.97821218e-10, 1.90831431e-10, 1.84084133e-10, 1.77571074e-10, 1.71284277e-10, 1.65216034e-10, 1.59358892e-10, 1.53705648e-10, 1.4824934e-10, 1.42983237e-10, 1.37900836e-10, 1.3299585e-10, 1.28262203e-10, 1.23694024e-10, 1.19285638e-10, 1.15031562e-10, 1.10926496e-10, 1.06965318e-10, 1.03143081e-10, 9.94550021e-11, 9.5896461e-11, 9.24629933e-11, 8.91502851e-11, 8.59541685e-11, 8.28706165e-11, 7.98957387e-11, 7.70257761e-11, 7.42570975e-11, 7.15861947e-11, 6.90096787e-11, 6.65242757e-11, 6.41268231e-11, 6.1814266e-11, 5.95836536e-11, 5.74321356e-11, 5.53569589e-11, 5.33554643e-11, 5.14250836e-11, 4.95633362e-11, 4.77678265e-11, 4.60362407e-11, 4.43663446e-11, 4.27559802e-11, 4.12030637e-11, 3.9705583e-11, 3.82615949e-11, 3.6869223e-11, 3.55266556e-11, 3.42321434e-11, 3.29839971e-11, 3.1780586e-11, 3.06203354e-11, 2.95017252e-11, 2.84232875e-11, 2.73836055e-11, 2.63813112e-11, 2.54150841e-11, 2.44836495e-11, 2.35857767e-11, 2.27202779e-11, 2.18860065e-11, 2.10818557e-11, 2.03067572e-11, 1.955968e-11, 1.88396288e-11, 1.81456433e-11, 1.74767963e-11, 1.68321932e-11, 1.62109707e-11, 1.56122956e-11, 1.50353637e-11, 1.44793992e-11, 1.39436533e-11, 1.34274035e-11, 1.29299526e-11, 1.24506281e-11, 1.19887807e-11, 1.15437843e-11, 1.11150347e-11, 1.0701949e-11, 1.03039646e-11, 9.92053913e-12, 9.55114905e-12, 9.19528942e-12, 8.85247312e-12, 8.52223024e-12, 8.2041075e-12, 7.89766768e-12, 7.60248903e-12, 7.31816476e-12, 7.0443025e-12, 6.78052382e-12, 6.52646373e-12, 6.28177023e-12, 6.04610381e-12, 5.81913707e-12, 5.60055427e-12, 5.39005093e-12, 5.18733341e-12, 4.99211858e-12, 4.80413341e-12, 4.62311462e-12, 4.44880838e-12, 4.28096991e-12, 4.11936323e-12, 3.96376079e-12, 3.81394323e-12, 3.66969904e-12, 3.53082432e-12, 3.39712251e-12, 3.2684041e-12, 3.14448642e-12, 3.02519335e-12, 2.91035516e-12, 2.79980821e-12, 2.69339478e-12, 2.59096284e-12, 2.49236586e-12, 2.39746261e-12, 2.30611697e-12, 2.21819775e-12, 2.13357852e-12, 2.05213742e-12, 1.97375703e-12, 1.89832419e-12, 1.82572984e-12, 1.7558689e-12, 1.68864011e-12, 1.6239459e-12, 1.56169225e-12, 1.50178857e-12, 1.44414758e-12, 1.38868519e-12, 1.33532036e-12, 1.28397503e-12, 1.23457401e-12, 1.18704485e-12, 1.14131773e-12, 1.09732544e-12, 1.05500319e-12, 1.0142886e-12, 9.75121557e-13, 9.37444177e-13, 9.01200695e-13, 8.66337403e-13, 8.3280257e-13, 8.00546372e-13, 7.69520821e-13, 7.39679704e-13, 7.10978512e-13, 6.83374381e-13, 6.56826033e-13, 6.31293718e-13, 6.06739158e-13, 5.83125492e-13, 5.60417227e-13, 5.38580187e-13, 5.17581466e-13, 4.97389378e-13, 4.77973418e-13, 4.59304214e-13, 4.41353487e-13, 4.24094015e-13, 4.07499586e-13, 3.9154497e-13, 3.76205876e-13, 3.61458922e-13, 3.47281598e-13, 3.33652239e-13, 3.20549988e-13, 3.07954769e-13, 2.95847262e-13, 2.84208867e-13, 2.73021685e-13, 2.62268488e-13, 2.51932694e-13, 2.41998348e-13, 2.32450091e-13, 2.23273146e-13, 2.1445329e-13, 2.05976838e-13, 1.97830619e-13, 1.90001962e-13, 1.82478673e-13, 1.75249018e-13, 1.68301708e-13, 1.61625881e-13, 1.55211087e-13, 1.49047271e-13, 1.43124759e-13, 1.37434245e-13, 1.31966776e-13, 1.26713739e-13, 1.21666849e-13, 1.16818134e-13, 1.12159929e-13, 1.07684858e-13, 1.03385827e-13, 9.92560131e-14, 9.52888536e-14, 9.14780361e-14, 8.78174895e-14, 8.43013748e-14, 8.09240764e-14, 7.7680194e-14, 7.45645338e-14, 7.15721012e-14, 6.86980933e-14, 6.59378915e-14, 6.32870546e-14, 6.07413119e-14, 5.82965573e-14, 5.59488424e-14, 5.3694371e-14, 5.1529493e-14, 4.94506993e-14, 4.74546158e-14, 4.5537999e-14, 4.36977306e-14, 4.19308127e-14, 4.02343635e-14, 3.86056125e-14, 3.70418969e-14, 3.55406567e-14, 3.40994312e-14, 3.27158555e-14, 3.13876562e-14, 3.01126482e-14, 2.88887316e-14, 2.77138879e-14, 2.65861773e-14, 2.55037357e-14, 2.44647712e-14, 2.34675623e-14, 2.25104543e-14, 2.15918573e-14, 2.07102434e-14, 1.98641445e-14, 1.90521498e-14, 1.82729039e-14, 1.75251045e-14, 1.68075e-14, 1.61188884e-14, 1.54581144e-14, 1.48240683e-14, 1.42156839e-14, 1.3631937e-14, 1.30718437e-14, 1.25344587e-14, 1.20188741e-14, 1.15242176e-14, 1.10496513e-14, 1.05943706e-14, 1.01576025e-14, 9.7386045e-15, 9.3366635e-15, 8.95109462e-15, 8.58124009e-15, 8.22646818e-15, 7.88617218e-15, 7.55976946e-15, 7.2467005e-15, 6.94642799e-15, 6.65843598e-15, 6.382229e-15, 6.11733131e-15, 5.86328611e-15, 5.61965477e-15, 5.38601615e-15, 5.16196591e-15, 4.94711582e-15, 4.74109316e-15, 4.54354012e-15, 4.35411315e-15, 4.17248247e-15, 3.99833148e-15, 3.83135628e-15, 3.67126512e-15, 3.51777797e-15, 3.37062601e-15, 3.22955122e-15, 3.09430597e-15, 2.96465253e-15, 2.84036277e-15, 2.72121772e-15, 2.60700725e-15, 2.49752966e-15, 2.3925914e-15, 2.29200674e-15, 2.19559741e-15, 2.10319237e-15, 2.01462749e-15, 1.92974526e-15, 1.84839454e-15, 1.77043033e-15, 1.69571349e-15, 1.62411051e-15, 1.55549332e-15, 1.48973902e-15, 1.42672971e-15, 1.36635228e-15, 1.30849823e-15, 1.25306345e-15, 1.19994808e-15, 1.14905632e-15, 1.10029629e-15, 1.05357985e-15, 1.00882243e-15, 9.65942951e-16, 9.24863618e-16, 8.85509826e-16, 8.47810021e-16, 8.11695574e-16, 7.77100668e-16, 7.4396218e-16, 7.12219576e-16, 6.81814805e-16, 6.52692196e-16, 6.24798366e-16, 5.98082126e-16, 5.72494388e-16, 5.47988087e-16, 5.24518094e-16, 5.02041136e-16, 4.80515727e-16, 4.5990209e-16, 4.40162088e-16, 4.2125916e-16, 4.03158253e-16, 3.85825766e-16, 3.69229483e-16, 3.53338526e-16, 3.38123291e-16, 3.23555403e-16, 3.09607662e-16, 2.96253997e-16, 2.83469418e-16, 2.71229972e-16, 2.59512704e-16, 2.48295611e-16, 2.37557604e-16, 2.27278475e-16, 2.17438855e-16, 2.08020183e-16, 1.99004672e-16, 1.90375276e-16, 1.82115662e-16, 1.74210177e-16, 1.66643825e-16, 1.59402234e-16, 1.52471636e-16, 1.45838838e-16, 1.39491198e-16, 1.33416607e-16, 1.27603462e-16, 1.22040646e-16, 1.16717511e-16, 1.11623855e-16, 1.06749904e-16, 1.02086296e-16, 9.76240627e-17, 9.33546138e-17, 8.92697205e-17, 8.53615007e-17, 8.16224049e-17, 7.80452022e-17, 7.46229671e-17, 7.13490664e-17, 6.82171475e-17, 6.52211265e-17, 6.23551768e-17, 5.96137187e-17, 5.69914088e-17, 5.44831302e-17, 5.20839831e-17, 4.97892755e-17, 4.7594515e-17, 4.54953996e-17, 4.34878105e-17, 4.15678041e-17, 3.97316044e-17, 3.79755964e-17, 3.62963192e-17, 3.46904591e-17, 3.31548442e-17, 3.16864377e-17, 3.02823325e-17, 2.89397457e-17, 2.76560137e-17, 2.64285863e-17, 2.52550228e-17, 2.41329871e-17, 2.30602429e-17, 2.20346501e-17, 2.105416e-17, 2.01168123e-17, 1.92207306e-17, 1.83641191e-17, 1.75452594e-17, 1.67625069e-17, 1.60142877e-17, 1.5299096e-17, 1.46154905e-17, 1.39620923e-17, 1.33375818e-17, 1.27406965e-17, 1.21702285e-17, 1.16250218e-17, 1.11039706e-17, 1.06060169e-17, 1.01301485e-17, 9.67539696e-18, 9.24083588e-18, 8.82557901e-18, 8.42877851e-18, 8.04962338e-18, 7.68733781e-18, 7.34117971e-18, 7.01043925e-18, 6.69443749e-18, 6.39252502e-18, 6.10408071e-18, 5.82851052e-18, 5.56524627e-18, 5.3137446e-18, 5.07348583e-18, 4.84397299e-18, 4.62473082e-18, 4.41530484e-18, 4.21526045e-18, 4.02418206e-18, 3.84167229e-18, 3.66735115e-18, 3.50085532e-18, 3.34183742e-18, 3.1899653e-18, 3.04492142e-18, 2.90640215e-18, 2.77411723e-18, 2.64778917e-18, 2.52715268e-18, 2.41195416e-18, 2.30195116e-18, 2.19691194e-18, 2.09661496e-18, 2.00084848e-18, 1.90941008e-18, 1.82210629e-18, 1.73875221e-18, 1.65917108e-18, 1.58319399e-18, 1.5106595e-18, 1.44141331e-18, 1.37530797e-18, 1.31220256e-18, 1.25196241e-18, 1.19445884e-18, 1.13956888e-18, 1.08717501e-18, 1.03716494e-18, 9.89431398e-19, 9.43871857e-19, 9.00388371e-19, 8.58887352e-19, 8.19279386e-19, 7.81479048e-19, 7.45404724e-19, 7.10978444e-19, 6.78125721e-19, 6.46775398e-19, 6.168595e-19, 5.88313094e-19, 5.61074154e-19, 5.35083431e-19, 5.10284333e-19, 4.86622805e-19, 4.64047217e-19, 4.42508257e-19, 4.21958828e-19, 4.02353949e-19, 3.83650662e-19, 3.6580794e-19, 3.48786603e-19, 3.32549237e-19, 3.17060112e-19, 3.02285109e-19, 2.8819165e-19, 2.74748623e-19, 2.61926325e-19, 2.49696392e-19, 2.38031744e-19, 2.26906524e-19, 2.16296046e-19, 2.06176742e-19, 1.9652611e-19, 1.87322669e-19, 1.78545912e-19, 1.70176261e-19, 1.62195028e-19, 1.54584375e-19, 1.47327271e-19, 1.40407462e-19, 1.33809432e-19, 1.27518372e-19, 1.21520147e-19, 1.15801267e-19, 1.10348854e-19, 1.05150621e-19, 1.00194839e-19, 9.54703145e-20, 9.09663674e-20, 8.66728039e-20, 8.25798969e-20, 7.86783641e-20, 7.49593484e-20, 7.14143981e-20, 6.80354487e-20, 6.48148055e-20, 6.17451269e-20, 5.8819408e-20, 5.60309657e-20, 5.33734237e-20, 5.0840699e-20, 4.84269883e-20, 4.61267552e-20, 4.39347184e-20, 4.18458395e-20, 3.98553127e-20, 3.79585534e-20, 3.61511888e-20, 3.44290478e-20, 3.27881517e-20, 3.1224706e-20, 2.97350915e-20, 2.83158561e-20, 2.69637078e-20, 2.56755069e-20, 2.4448259e-20, 2.32791087e-20, 2.21653328e-20, 2.11043346e-20, 2.00936377e-20, 1.91308811e-20, 1.82138131e-20, 1.73402868e-20, 1.65082553e-20, 1.57157668e-20, 1.49609604e-20, 1.42420619e-20, 1.35573799e-20, 1.29053017e-20, 1.22842899e-20, 1.16928789e-20, 1.11296715e-20, 1.05933359e-20, 1.00826023e-20, 9.59626053e-21, 9.13315702e-21, 8.69219215e-21, 8.27231784e-21, 7.87253513e-21, 7.4918919e-21, 7.12948071e-21, 6.78443669e-21, 6.45593562e-21, 6.143192e-21, 5.84545723e-21, 5.56201796e-21, 5.29219438e-21, 5.03533871e-21, 4.79083366e-21, 4.55809106e-21, 4.33655044e-21, 4.12567782e-21, 3.92496437e-21, 3.73392534e-21, 3.55209884e-21, 3.37904486e-21, 3.21434415e-21, 3.05759734e-21, 2.90842395e-21, 2.76646153e-21, 2.6313648e-21, 2.50280486e-21, 2.3804684e-21, 2.26405698e-21, 2.15328636e-21, 2.04788577e-21, 1.94759732e-21, 1.85217541e-21, 1.76138609e-21, 1.67500656e-21, 1.59282465e-21, 1.51463827e-21, 1.44025498e-21, 1.36949153e-21, 1.3021734e-21, 1.2381344e-21, 1.1772163e-21, 1.11926841e-21, 1.06414726e-21, 1.01171624e-21, 9.61845266e-22, 9.14410509e-22, 8.69294055e-22, 8.26383648e-22, 7.85572415e-22, 7.46758611e-22, 7.09845378e-22, 6.74740507e-22, 6.41356222e-22, 6.09608967e-22, 5.79419204e-22, 5.50711227e-22, 5.23412969e-22, 4.97455841e-22, 4.72774556e-22, 4.49306976e-22, 4.26993961e-22, 4.05779227e-22, 3.85609206e-22, 3.66432919e-22, 3.48201853e-22, 3.30869838e-22, 3.14392941e-22, 2.98729354e-22, 2.83839295e-22, 2.69684909e-22, 2.56230178e-22, 2.43440829e-22, 2.31284252e-22, 2.19729423e-22, 2.08746824e-22, 1.98308369e-22, 1.88387341e-22, 1.78958321e-22, 1.69997128e-22, 1.61480758e-22, 1.53387328e-22, 1.45696021e-22, 1.38387036e-22, 1.31441539e-22, 1.24841612e-22, 1.18570215e-22, 1.1261114e-22, 1.06948971e-22, 1.01569047e-22, 9.64574217e-23, 9.16008344e-23, 8.69866726e-23, 8.26029421e-23, 7.84382366e-23, 7.44817095e-23, 7.07230463e-23, 6.7152439e-23, 6.37605613e-23, 6.05385453e-23, 5.74779591e-23, 5.45707857e-23, 5.18094024e-23, 4.91865621e-23, 4.66953746e-23, 4.43292893e-23, 4.20820785e-23, 3.99478219e-23, 3.79208915e-23, 3.59959368e-23, 3.41678722e-23, 3.24318629e-23, 3.07833137e-23, 2.92178564e-23, 2.77313392e-23, 2.63198158e-23, 2.49795355e-23, 2.37069335e-23, 2.24986218e-23, 2.13513805e-23, 2.02621495e-23, 1.92280207e-23, 1.82462305e-23, 1.73141527e-23, 1.64292918e-23, 1.55892762e-23, 1.47918526e-23, 1.403488e-23, 1.33163238e-23, 1.2634251e-23, 1.1986825e-23, 1.13723009e-23, 1.07890208e-23, 1.02354097e-23, 9.70997121e-24, 9.21128386e-24, 8.7379972e-24, 8.2888284e-24, 7.86255884e-24, 7.45803093e-24, 7.0741451e-24, 6.70985693e-24, 6.36417434e-24, 6.03615508e-24, 5.72490419e-24, 5.42957165e-24, 5.14935019e-24, 4.88347309e-24, 4.63121223e-24, 4.39187611e-24, 4.16480805e-24, 3.94938447e-24, 3.74501318e-24, 3.55113187e-24, 3.36720659e-24, 3.19273034e-24, 3.0272217e-24, 2.8702236e-24, 2.72130205e-24, 2.58004499e-24, 2.44606123e-24, 2.31897935e-24, 2.19844676e-24, 2.08412873e-24, 1.97570746e-24, 1.8728813e-24, 1.77536389e-24, 1.68288339e-24, 1.59518179e-24, 1.51201414e-24, 1.43314799e-24, 1.35836268e-24, 1.28744877e-24, 1.22020749e-24, 1.15645019e-24, 1.09599782e-24, 1.03868047e-24, 9.84336876e-25, 9.3281401e-25, 8.8396665e-25, 8.37656988e-25, 7.93754255e-25, 7.52134366e-25, 7.12679579e-25, 6.75278172e-25, 6.39824145e-25, 6.0621692e-25, 5.74361073e-25, 5.44166069e-25, 5.15546015e-25, 4.88419423e-25, 4.62708987e-25, 4.38341369e-25, 4.15246997e-25, 3.93359875e-25, 3.726174e-25, 3.52960187e-25, 3.34331908e-25, 3.16679135e-25, 2.9995119e-25, 2.84100008e-25, 2.6908e-25, 2.5484793e-25, 2.4136279e-25, 2.28585691e-25, 2.16479752e-25, 2.05009998e-25, 1.94143259e-25, 1.83848085e-25, 1.74094648e-25, 1.64854668e-25, 1.56101327e-25, 1.47809197e-25, 1.39954168e-25, 1.32513381e-25, 1.25465162e-25, 1.18788962e-25, 1.12465298e-25, 1.06475701e-25, 1.00802661e-25, 9.54295782e-26, 9.03407162e-26, 8.55211579e-26, 8.09567628e-26, 7.66341269e-26, 7.25405447e-26, 6.86639732e-26, 6.49929973e-26, 6.15167977e-26, 5.82251202e-26, 5.51082457e-26, 5.21569632e-26, 4.93625433e-26, 4.67167129e-26, 4.42116319e-26, 4.18398707e-26, 3.95943886e-26, 3.74685138e-26, 3.54559244e-26, 3.35506299e-26, 3.17469541e-26, 3.00395186e-26, 2.84232276e-26, 2.6893253e-26, 2.54450203e-26, 2.40741956e-26, 2.27766731e-26, 2.1548563e-26, 2.03861802e-26, 1.92860337e-26, 1.82448168e-26, 1.72593967e-26, 1.63268062e-26, 1.54442344e-26, 1.46090189e-26, 1.38186379e-26, 1.3070703e-26, 1.23629517e-26, 1.16932416e-26, 1.10595433e-26, 1.0459935e-26, 9.89259653e-27, 9.35580432e-27, 8.84792605e-27, 8.36741598e-27, 7.91281035e-27, 7.48272312e-27, 7.07584181e-27, 6.69092368e-27, 6.32679203e-27, 5.98233272e-27, 5.65649086e-27, 5.3482677e-27, 5.05671768e-27, 4.78094556e-27, 4.52010384e-27, 4.27339018e-27, 4.04004503e-27, 3.81934935e-27, 3.61062252e-27, 3.41322023e-27, 3.2265326e-27, 3.04998235e-27, 2.88302307e-27, 2.72513758e-27, 2.57583636e-27, 2.43465612e-27, 2.30115838e-27, 2.17492815e-27, 2.05557271e-27, 1.94272037e-27, 1.83601941e-27, 1.73513697e-27, 1.6397581e-27, 1.54958473e-27, 1.46433483e-27, 1.38374155e-27, 1.30755238e-27, 1.2355284e-27, 1.16744356e-27, 1.10308398e-27, 1.04224731e-27, 9.84742119e-28, 9.30387289e-28, 8.7901148e-28, 8.304526e-28, 7.84557314e-28, 7.4118057e-28, 7.00185158e-28, 6.61441286e-28, 6.24826185e-28, 5.90223734e-28, 5.57524094e-28, 5.2662338e-28, 4.97423337e-28, 4.69831035e-28, 4.43758588e-28, 4.19122875e-28, 3.95845292e-28, 3.738515e-28, 3.53071202e-28, 3.33437921e-28, 3.14888795e-28, 2.97364384e-28, 2.8080848e-28, 2.65167939e-28, 2.50392509e-28, 2.36434678e-28, 2.23249526e-28, 2.1079458e-28, 1.99029687e-28, 1.87916885e-28, 1.77420287e-28, 1.67505964e-28, 1.58141843e-28, 1.49297607e-28, 1.40944593e-28, 1.33055711e-28, 1.25605352e-28, 1.18569312e-28, 1.1192471e-28, 1.05649922e-28, 9.97245102e-29, 9.41291569e-29, 8.88456056e-29, 8.38566023e-29, 7.91458409e-29, 7.46979116e-29, 7.0498252e-29, 6.65331009e-29, 6.27894541e-29, 5.92550237e-29, 5.59181986e-29, 5.27680074e-29, 4.97940837e-29, 4.69866326e-29, 4.43363998e-29, 4.18346419e-29, 3.94730981e-29, 3.72439641e-29, 3.51398669e-29, 3.31538411e-29, 3.12793067e-29, 2.95100478e-29, 2.78401926e-29, 2.62641945e-29, 2.47768141e-29, 2.33731027e-29, 2.20483859e-29, 2.07982484e-29, 1.96185204e-29, 1.85052632e-29, 1.74547572e-29, 1.64634892e-29, 1.55281416e-29, 1.46455813e-29, 1.38128492e-29, 1.30271512e-29, 1.22858489e-29, 1.15864505e-29, 1.09266034e-29, 1.03040861e-29, 9.71680098e-30, 9.16276743e-30, 8.64011551e-30, 8.14707965e-30, 7.68199295e-30, 7.2432817e-30, 6.82946016e-30, 6.43912573e-30, 6.07095429e-30, 5.72369588e-30, 5.39617054e-30, 5.08726443e-30, 4.79592615e-30, 4.52116328e-30, 4.26203905e-30, 4.01766931e-30, 3.78721953e-30, 3.56990207e-30, 3.36497354e-30, 3.17173237e-30, 2.98951644e-30, 2.81770087e-30, 2.65569599e-30, 2.5029453e-30, 2.35892367e-30, 2.22313558e-30, 2.09511342e-30, 1.97441599e-30, 1.86062696e-30, 1.75335353e-30, 1.65222505e-30, 1.55689184e-30, 1.46702399e-30, 1.38231022e-30, 1.30245687e-30, 1.22718691e-30, 1.15623898e-30, 1.08936654e-30, 1.02633701e-30, 9.66930978e-31, 9.10941507e-31, 8.5817338e-31, 8.08442465e-31, 7.61575085e-31, 7.17407427e-31, 6.75784988e-31, 6.3656205e-31, 5.99601178e-31, 5.64772762e-31, 5.31954565e-31, 5.01031313e-31, 4.71894296e-31, 4.44441003e-31, 4.18574765e-31, 3.94204426e-31, 3.71244033e-31, 3.49612539e-31, 3.29233523e-31, 3.10034933e-31, 2.91948833e-31, 2.74911172e-31, 2.58861561e-31, 2.43743069e-31, 2.29502022e-31, 2.1608782e-31, 2.03452764e-31, 1.91551886e-31, 1.80342797e-31, 1.69785542e-31, 1.59842454e-31, 1.50478033e-31, 1.41658815e-31, 1.3335326e-31, 1.2553164e-31, 1.18165936e-31, 1.11229742e-31, 1.04698171e-31, 9.85477673e-32, 9.27564284e-32, 8.7303324e-32, 8.21688245e-32, 7.73344323e-32, 7.27827167e-32, 6.84972532e-32, 6.44625651e-32, 6.06640699e-32, 5.70880274e-32, 5.37214918e-32, 5.05522656e-32, 4.75688572e-32, 4.47604398e-32, 4.21168135e-32, 3.96283692e-32, 3.72860544e-32, 3.50813413e-32, 3.30061969e-32, 3.10530538e-32, 2.92147839e-32, 2.74846731e-32, 2.5856397e-32, 2.43239987e-32, 2.28818678e-32, 2.15247197e-32, 2.02475776e-32, 1.90457541e-32, 1.79148349e-32, 1.68506625e-32, 1.58493219e-32, 1.49071261e-32, 1.40206032e-32, 1.31864838e-32, 1.24016894e-32, 1.16633209e-32, 1.0968649e-32, 1.03151034e-32, 9.70026428e-33, 9.12185329e-33, 8.57772531e-33, 8.06586076e-33, 7.5843583e-33, 7.13142794e-33, 6.70538455e-33, 6.30464178e-33, 5.9277063e-33, 5.57317236e-33, 5.2397167e-33, 4.92609377e-33, 4.63113112e-33, 4.35372522e-33, 4.09283738e-33, 3.84748999e-33, 3.61676294e-33, 3.39979025e-33, 3.19575694e-33, 3.003896e-33, 2.82348562e-33, 2.65384653e-33, 2.49433949e-33, 2.344363e-33, 2.20335102e-33, 2.07077092e-33, 1.94612155e-33, 1.82893133e-33, 1.71875659e-33, 1.61517985e-33, 1.51780835e-33, 1.42627254e-33, 1.34022478e-33, 1.25933798e-33, 1.18330444e-33, 1.1118347e-33, 1.04465645e-33, 9.81513539e-34, 9.22165e-34, 8.66384176e-34, 8.13957868e-34, 7.64685537e-34, 7.18378562e-34, 6.74859534e-34, 6.33961594e-34, 5.9552781e-34, 5.59410588e-34, 5.25471123e-34, 4.93578875e-34, 4.63611084e-34, 4.35452306e-34, 4.0899398e-34, 3.84134023e-34, 3.60776441e-34, 3.38830973e-34, 3.18212748e-34, 2.98841964e-34, 2.80643591e-34, 2.63547082e-34, 2.47486112e-34, 2.32398324e-34, 2.18225094e-34, 2.04911307e-34, 1.92405151e-34, 1.8065792e-34, 1.69623825e-34, 1.59259827e-34, 1.49525466e-34, 1.40382711e-34, 1.31795817e-34, 1.23731183e-34, 1.16157229e-34, 1.09044272e-34, 1.02364415e-34, 9.609144e-35, 9.0200705e-35, 8.46690526e-35, 7.94747202e-35, 7.45972561e-35, 7.00174415e-35, 6.57172165e-35, 6.16796104e-35, 5.78886767e-35, 5.43294315e-35, 5.09877959e-35, 4.78505414e-35, 4.49052389e-35, 4.2140211e-35, 3.95444864e-35, 3.71077577e-35, 3.48203413e-35, 3.26731401e-35, 3.06576079e-35, 2.87657164e-35, 2.69899241e-35, 2.53231467e-35, 2.37587298e-35, 2.22904228e-35, 2.09123545e-35, 1.96190104e-35, 1.84052111e-35, 1.72660919e-35, 1.61970839e-35, 1.51938962e-35, 1.4252499e-35, 1.33691078e-35, 1.25401684e-35, 1.17623433e-35, 1.10324984e-35, 1.03476907e-35, 9.70515644e-36, 9.10230081e-36, 8.53668717e-36, 8.00602774e-36, 7.50817444e-36, 7.04111047e-36, 6.6029423e-36, 6.1918922e-36, 5.80629118e-36, 5.4445724e-36, 5.10526491e-36, 4.78698789e-36, 4.48844508e-36, 4.20841968e-36, 3.94576949e-36, 3.69942238e-36, 3.46837198e-36, 3.2516737e-36, 3.04844097e-36, 2.85784165e-36, 2.67909475e-36, 2.51146729e-36, 2.35427137e-36, 2.20686139e-36, 2.0686315e-36, 1.93901313e-36, 1.81747276e-36, 1.70350969e-36, 1.59665414e-36, 1.49646524e-36, 1.40252934e-36, 1.31445833e-36, 1.23188801e-36, 1.15447671e-36, 1.08190385e-36, 1.01386865e-36, 9.50088953e-37, 8.90300019e-37, 8.34253502e-37, 7.81716423e-37, 7.32470225e-37, 6.86309888e-37, 6.43043095e-37, 6.02489446e-37, 5.64479728e-37, 5.28855224e-37, 4.95467063e-37, 4.64175615e-37, 4.34849922e-37, 4.07367158e-37, 3.81612131e-37, 3.57476809e-37, 3.34859879e-37, 3.1366633e-37, 2.93807062e-37, 2.75198524e-37, 2.57762368e-37, 2.41425127e-37, 2.26117912e-37, 2.1177613e-37, 1.98339215e-37, 1.85750382e-37, 1.73956389e-37, 1.62907318e-37, 1.52556371e-37, 1.42859671e-37, 1.33776085e-37, 1.25267055e-37, 1.17296429e-37, 1.09830322e-37, 1.02836969e-37, 9.62865939e-38, 9.01512849e-38, 8.44048809e-38, 7.90228602e-38, 7.39822391e-38, 6.92614758e-38, 6.48403804e-38, 6.07000307e-38, 5.68226928e-38, 5.31917469e-38, 4.97916182e-38, 4.66077106e-38, 4.36263465e-38, 4.08347087e-38, 3.82207868e-38, 3.57733266e-38, 3.34817828e-38, 3.13362748e-38, 2.93275445e-38, 2.74469179e-38, 2.56862678e-38, 2.40379802e-38, 2.24949216e-38, 2.10504091e-38, 1.96981817e-38, 1.84323744e-38, 1.72474927e-38, 1.61383898e-38, 1.51002444e-38, 1.41285404e-38, 1.32190474e-38, 1.23678033e-38, 1.15710967e-38, 1.08254515e-38, 1.01276122e-38, 9.47452939e-39, 8.86334752e-39, 8.29139209e-39, 7.75615845e-39, 7.25530103e-39, 6.78662333e-39, 6.34806842e-39, 5.9377102e-39, 5.55374507e-39, 5.19448419e-39, 4.85834623e-39, 4.54385055e-39, 4.24961084e-39, 3.97432912e-39, 3.71679015e-39, 3.47585619e-39, 3.25046206e-39, 3.03961059e-39, 2.84236824e-39, 2.6578611e-39, 2.48527107e-39, 2.32383235e-39, 2.17282809e-39, 2.03158728e-39, 1.89948186e-39, 1.77592394e-39, 1.66036327e-39, 1.55228485e-39, 1.45120667e-39, 1.35667761e-39, 1.26827548e-39, 1.18560515e-39, 1.10829687e-39, 1.0360046e-39, 9.68404509e-40, 9.0519359e-40, 8.46088286e-40, 7.90823271e-40, 7.39150278e-40, 6.90837009e-40, 6.4566611e-40, 6.03434218e-40, 5.63951066e-40, 5.27038639e-40, 4.92530395e-40, 4.60270525e-40, 4.30113265e-40, 4.01922257e-40, 3.75569938e-40, 3.5093698e-40, 3.2791176e-40, 3.06389866e-40, 2.86273632e-40, 2.67471705e-40, 2.49898639e-40, 2.33474515e-40, 2.18124585e-40, 2.03778942e-40, 1.90372202e-40, 1.77843219e-40, 1.66134809e-40, 1.55193493e-40, 1.44969261e-40, 1.35415348e-40, 1.26488022e-40, 1.18146391e-40, 1.10352218e-40, 1.03069749e-40, 9.62655547e-41, 8.99083784e-41, 8.39689956e-41, 7.84200834e-41, 7.32360964e-41, 6.83931527e-41, 6.3868925e-41, 5.96425408e-41, 5.56944877e-41, 5.20065253e-41, 4.85616026e-41, 4.5343781e-41, 4.23381618e-41, 3.95308191e-41, 3.69087362e-41, 3.4459747e-41, 3.21724802e-41, 3.00363079e-41, 2.80412972e-41, 2.6178165e-41, 2.44382357e-41, 2.28134016e-41, 2.12960859e-41, 1.98792082e-41, 1.85561521e-41, 1.73207347e-41, 1.6167179e-41, 1.50900865e-41, 1.40844134e-41, 1.31454465e-41, 1.22687826e-41, 1.14503074e-41, 1.06861772e-41, 9.97280082e-42, 9.30682326e-42, 8.68511026e-42, 8.10473378e-42, 7.56295855e-42, 7.05722941e-42, 6.5851595e-42, 6.14451926e-42, 5.73322611e-42, 5.34933479e-42, 4.99102835e-42, 4.65660975e-42, 4.34449396e-42, 4.05320063e-42, 3.78134718e-42, 3.5276424e-42, 3.29088044e-42, 3.06993516e-42, 2.86375493e-42, 2.67135771e-42, 2.49182645e-42, 2.32430484e-42, 2.16799327e-42, 2.02214513e-42, 1.8860633e-42, 1.75909687e-42, 1.64063811e-42, 1.53011962e-42, 1.42701166e-42, 1.33081967e-42, 1.24108191e-42, 1.15736737e-42, 1.07927364e-42, 1.00642509e-42, 9.38471068e-43, 8.7508426e-43, 8.1595913e-43, 7.60810485e-43, 7.0937213e-43, 6.61395604e-43, 6.16649006e-43, 5.74915897e-43, 5.35994272e-43, 4.99695605e-43, 4.65843951e-43, 4.34275112e-43, 4.04835857e-43, 3.77383191e-43, 3.51783676e-43, 3.27912795e-43, 3.05654358e-43, 2.8489995e-43, 2.65548409e-43, 2.47505346e-43, 2.30682694e-43, 2.14998285e-43, 2.00375457e-43, 1.86742689e-43, 1.74033253e-43, 1.62184901e-43, 1.51139559e-43, 1.40843054e-43, 1.31244849e-43, 1.22297802e-43, 1.13957938e-43, 1.06184241e-43, 9.89384501e-44, 9.21848786e-44, 8.58902415e-44, 8.00234941e-44, 7.4555682e-44, 6.9459801e-44, 6.47106666e-44, 6.02847914e-44, 5.6160272e-44, 5.23166821e-44, 4.87349736e-44, 4.53973841e-44, 4.22873501e-44, 3.93894273e-44, 3.66892143e-44, 3.41732834e-44, 3.18291145e-44, 2.96450341e-44, 2.76101588e-44, 2.57143414e-44, 2.39481218e-44, 2.23026804e-44, 2.07697953e-44, 1.93418015e-44, 1.80115538e-44, 1.67723913e-44, 1.56181053e-44, 1.45429081e-44, 1.35414048e-44, 1.26085671e-44, 1.17397082e-44, 1.09304595e-44, 1.01767496e-44, 9.47478378e-45, 8.82102555e-45, 8.21217894e-45, 7.64517234e-45, 7.11714325e-45, 6.62542414e-45, 6.16752923e-45, 5.74114214e-45, 5.3441044e-45, 4.97440476e-45, 4.63016917e-45, 4.30965147e-45, 4.01122471e-45, 3.73337303e-45, 3.47468414e-45, 3.23384225e-45, 3.0096215e-45, 2.80087988e-45, 2.60655347e-45, 2.42565117e-45, 2.25724971e-45, 2.10048903e-45, 1.95456799e-45, 1.81874033e-45, 1.69231096e-45, 1.57463242e-45, 1.46510166e-45, 1.36315703e-45, 1.26827539e-45, 1.17996954e-45, 1.09778573e-45, 1.02130137e-45, 9.50122943e-46, 8.83883948e-46, 8.22243106e-46, 7.64882611e-46, 7.11506525e-46, 6.61839282e-46, 6.15624287e-46, 5.72622625e-46, 5.32611837e-46, 4.95384801e-46, 4.60748675e-46, 4.28523916e-46, 3.98543369e-46, 3.70651416e-46, 3.44703182e-46, 3.20563797e-46, 2.9810771e-46, 2.77218045e-46, 2.57786006e-46, 2.39710321e-46, 2.22896722e-46, 2.07257465e-46, 1.92710881e-46, 1.79180954e-46, 1.66596934e-46, 1.54892974e-46, 1.44007791e-46, 1.33884348e-46, 1.24469568e-46, 1.15714055e-46, 1.07571839e-46, 1.00000145e-46, 9.29591659e-47, 8.64118616e-47, 8.03237651e-47, 7.4662806e-47, 6.93991436e-47, 6.45050133e-47, 5.99545821e-47, 5.57238155e-47, 5.17903522e-47, 4.81333886e-47, 4.47335706e-47, 4.15728928e-47, 3.86346053e-47, 3.59031264e-47, 3.33639615e-47, 3.10036273e-47, 2.88095821e-47, 2.67701598e-47, 2.48745094e-47, 2.31125379e-47, 2.14748582e-47, 1.99527392e-47, 1.85380608e-47, 1.72232709e-47, 1.6001346e-47, 1.48657545e-47, 1.3810422e-47, 1.28296999e-47, 1.19183353e-47, 1.10714437e-47, 1.02844831e-47, 9.55322999e-48, 8.87375745e-48, 8.24241408e-48, 7.65580491e-48, 7.11077345e-48, 6.60438498e-48, 6.13391106e-48, 5.69681509e-48, 5.29073886e-48, 4.91349008e-48, 4.56303076e-48, 4.23746637e-48, 3.93503579e-48, 3.65410198e-48, 3.39314326e-48, 3.1507452e-48, 2.92559312e-48, 2.71646506e-48, 2.52222529e-48, 2.34181823e-48, 2.17426285e-48, 2.01864738e-48, 1.87412449e-48, 1.73990671e-48, 1.61526226e-48, 1.4995111e-48, 1.3920213e-48, 1.29220563e-48, 1.19951845e-48, 1.11345275e-48, 1.03353743e-48, 9.59334755e-49, 8.90438039e-49, 8.26469415e-49, 7.67077816e-49, 7.11937085e-49, 6.60744207e-49, 6.1321768e-49, 5.69095992e-49, 5.28136207e-49, 4.90112651e-49, 4.54815691e-49, 4.220506e-49, 3.91636499e-49, 3.63405381e-49, 3.37201194e-49, 3.12878996e-49, 2.90304167e-49, 2.69351679e-49, 2.49905411e-49, 2.31857522e-49, 2.15107858e-49, 1.9956341e-49, 1.85137806e-49, 1.71750839e-49, 1.59328026e-49, 1.47800207e-49, 1.37103159e-49, 1.27177253e-49, 1.17967119e-49, 1.09421349e-49, 1.01492211e-49, 9.41353875e-50, 8.73097358e-50, 8.09770571e-50, 7.51018891e-50, 6.96513101e-50, 6.45947579e-50, 5.99038611e-50, 5.55522833e-50, 5.15155769e-50, 4.77710491e-50, 4.42976356e-50, 4.10757848e-50, 3.80873495e-50, 3.53154861e-50, 3.27445617e-50, 3.03600675e-50, 2.81485378e-50, 2.60974758e-50, 2.4195284e-50, 2.24311997e-50, 2.07952352e-50, 1.92781222e-50, 1.78712602e-50, 1.65666685e-50, 1.5356942e-50, 1.42352095e-50, 1.31950956e-50, 1.22306848e-50, 1.13364888e-50, 1.05074156e-50, 9.738741e-51, 9.02608206e-51, 8.36537273e-51, 7.75284092e-51, 7.18498732e-51, 6.65856581e-51, 6.17056518e-51, 5.71819221e-51, 5.29885593e-51, 4.91015308e-51, 4.5498545e-51, 4.21589265e-51, 3.90634985e-51, 3.61944753e-51, 3.35353615e-51, 3.10708587e-51, 2.87867793e-51, 2.66699658e-51, 2.47082163e-51, 2.2890216e-51, 2.12054719e-51, 1.96442545e-51, 1.81975416e-51, 1.68569674e-51, 1.5614775e-51, 1.44637721e-51, 1.33972903e-51, 1.24091469e-51, 1.14936096e-51, 1.06453639e-51, 9.85948303e-52, 9.13139926e-52, 8.45687825e-52, 7.83199466e-52, 7.25310968e-52, 6.71685024e-52, 6.22008964e-52, 5.75992967e-52, 5.33368392e-52, 4.93886241e-52, 4.57315729e-52, 4.23442951e-52, 3.92069659e-52, 3.63012116e-52, 3.3610004e-52, 3.11175622e-52, 2.88092616e-52, 2.66715495e-52, 2.46918667e-52, 2.28585753e-52, 2.11608912e-52, 1.95888214e-52, 1.81331067e-52, 1.67851678e-52, 1.55370554e-52, 1.43814045e-52, 1.33113912e-52, 1.23206934e-52, 1.14034539e-52, 1.05542465e-52, 9.76804414e-53, 9.04018987e-53, 8.36636965e-53, 7.7425872e-53, 7.16514065e-53, 6.63060098e-53, 6.13579196e-53, 5.67777159e-53, 5.25381489e-53, 4.86139798e-53, 4.49818325e-53, 4.16200571e-53, 3.85086024e-53, 3.5628899e-53, 3.29637496e-53, 3.04972282e-53, 2.82145866e-53, 2.61021675e-53, 2.41473242e-53, 2.2338346e-53, 2.06643891e-53, 1.91154132e-53, 1.76821213e-53, 1.63559059e-53, 1.51287971e-53, 1.39934163e-53, 1.2942932e-53, 1.19710196e-53, 1.1071824e-53, 1.02399248e-53, 9.470304e-54, 8.75831642e-54, 8.09966212e-54, 7.49036072e-54, 6.92672782e-54, 6.40535306e-54, 5.92307977e-54, 5.47698625e-54, 5.06436827e-54, 4.68272298e-54, 4.32973399e-54, 4.00325746e-54, 3.70130939e-54, 3.42205367e-54, 3.16379112e-54, 2.92494935e-54, 2.70407327e-54, 2.49981645e-54, 2.31093297e-54, 2.13626996e-54, 1.97476072e-54, 1.82541824e-54, 1.68732931e-54, 1.55964902e-54, 1.44159565e-54, 1.33244597e-54, 1.23153091e-54, 1.13823145e-54, 1.05197497e-54, 9.72231737e-55, 8.98511707e-55, 8.30361581e-55, 7.67362044e-55, 7.09125236e-55, 6.55292396e-55, 6.05531689e-55, 5.59536194e-55, 5.17022035e-55, 4.77726663e-55, 4.41407258e-55, 4.0783925e-55, 3.76814954e-55, 3.48142305e-55, 3.21643686e-55, 2.9715485e-55, 2.74523909e-55, 2.53610416e-55, 2.34284501e-55, 2.1642608e-55, 1.99924117e-55, 1.8467595e-55, 1.70586657e-55, 1.57568476e-55, 1.45540268e-55, 1.34427019e-55, 1.24159378e-55, 1.1467323e-55, 1.05909307e-55, 9.78128172e-56, 9.03331114e-56, 8.34233704e-56, 7.7040316e-56, 7.11439444e-56, 6.56972794e-56, 6.0666144e-56, 5.60189493e-56, 5.17264993e-56, 4.776181e-56, 4.40999429e-56, 4.07178501e-56, 3.75942315e-56, 3.47094031e-56, 3.20451745e-56, 2.95847359e-56, 2.73125541e-56, 2.52142755e-56, 2.32766369e-56, 2.14873834e-56, 1.98351914e-56, 1.83095985e-56, 1.69009379e-56, 1.56002785e-56, 1.4399369e-56, 1.3290586e-56, 1.22668869e-56, 1.13217654e-56, 1.04492112e-56, 9.64367178e-57, 8.90001826e-57, 8.21351275e-57, 7.57977887e-57, 6.99477416e-57, 6.45476477e-57, 5.95630193e-57, 5.4962003e-57, 5.07151786e-57, 4.67953747e-57, 4.31774968e-57, 3.98383693e-57, 3.67565895e-57, 3.39123921e-57, 3.12875246e-57, 2.88651318e-57, 2.66296493e-57, 2.4566705e-57, 2.26630281e-57, 2.09063649e-57, 1.92854011e-57, 1.77896903e-57, 1.64095874e-57, 1.51361875e-57, 1.3961269e-57, 1.2877242e-57, 1.1877099e-57, 1.09543714e-57, 1.01030874e-57, 9.3177342e-58, 8.59322313e-58, 7.92485677e-58, 7.30829917e-58, 6.73954806e-58, 6.21490929e-58, 5.73097318e-58, 5.2845927e-58, 4.87286329e-58, 4.49310426e-58, 4.1428416e-58, 3.81979206e-58, 3.52184857e-58, 3.2470666e-58, 2.99365175e-58, 2.75994814e-58, 2.54442778e-58, 2.34568071e-58, 2.16240595e-58, 1.99340307e-58, 1.83756444e-58, 1.69386813e-58, 1.56137126e-58, 1.43920389e-58, 1.32656346e-58, 1.22270954e-58, 1.12695905e-58, 1.03868182e-58, 9.57296536e-59, 8.82266945e-59, 8.13098373e-59, 7.49334517e-59, 6.90554481e-59, 6.36370033e-59, 5.86423081e-59, 5.40383343e-59, 4.97946191e-59, 4.58830668e-59, 4.22777655e-59, 3.89548177e-59, 3.58921843e-59, 3.30695408e-59, 3.04681443e-59, 2.80707106e-59, 2.58613012e-59, 2.3825219e-59, 2.19489118e-59, 2.02198834e-59, 1.86266119e-59, 1.71584734e-59, 1.5805673e-59, 1.45591795e-59, 1.34106667e-59, 1.23524585e-59, 1.1377478e-59, 1.04792008e-59, 9.65161275e-60, 8.88916928e-60, 8.18675942e-60, 7.53967182e-60, 6.94356365e-60, 6.39443185e-60, 5.88858662e-60, 5.42262706e-60, 4.99341854e-60, 4.59807198e-60, 4.23392465e-60, 3.89852252e-60, 3.58960395e-60, 3.30508463e-60, 3.04304377e-60, 2.80171127e-60, 2.57945596e-60, 2.37477475e-60, 2.18628257e-60, 2.01270314e-60, 1.85286049e-60, 1.70567106e-60, 1.57013649e-60, 1.44533691e-60, 1.33042484e-60, 1.22461948e-60, 1.12720146e-60, 1.03750807e-60, 9.54928803e-61, 8.78901215e-61, 8.08907199e-61, 7.44469483e-61, 6.85148425e-61, 6.30539055e-61, 5.8026835e-61, 5.33992724e-61, 4.91395709e-61, 4.52185825e-61, 4.16094612e-61, 3.82874819e-61, 3.52298733e-61, 3.2415664e-61, 2.98255408e-61, 2.7441718e-61, 2.52478169e-61, 2.32287548e-61, 2.13706431e-61, 1.96606929e-61, 1.80871279e-61, 1.66391051e-61, 1.53066406e-61, 1.40805419e-61, 1.29523455e-61, 1.19142589e-61, 1.09591081e-61, 1.00802883e-61, 9.27171898e-62, 8.52780245e-62, 7.84338562e-62, 7.21372477e-62, 6.63445318e-62, 6.10155125e-62, 5.61131899e-62, 5.1603507e-62, 4.74551162e-62, 4.36391648e-62, 4.01290966e-62, 3.69004703e-62, 3.3930791e-62, 3.11993562e-62, 2.8687113e-62, 2.63765277e-62, 2.42514642e-62, 2.22970738e-62, 2.04996924e-62, 1.88467461e-62, 1.73266651e-62, 1.59288033e-62, 1.46433648e-62, 1.34613364e-62, 1.23744253e-62, 1.13750016e-62, 1.04560454e-62, 9.61109822e-63, 8.83421852e-63, 8.11994009e-63, 7.46323432e-63, 6.85947527e-63, 6.3044075e-63, 5.79411653e-63, 5.32500155e-63, 4.89375042e-63, 4.49731658e-63, 4.13289783e-63, 3.79791677e-63, 3.49000286e-63, 3.20697583e-63, 2.94683051e-63, 2.70772274e-63, 2.48795656e-63, 2.28597228e-63, 2.10033559e-63, 1.92972751e-63, 1.77293515e-63, 1.6288432e-63, 1.4964261e-63, 1.37474083e-63, 1.26292034e-63, 1.16016737e-63, 1.06574892e-63, 9.78991057e-64, 8.99274154e-64, 8.26028562e-64, 7.5873057e-64, 6.9689872e-64, 6.40090404e-64, 5.87898743e-64, 5.39949711e-64, 4.95899488e-64, 4.55432032e-64, 4.18256839e-64, 3.84106888e-64, 3.52736747e-64, 3.23920834e-64, 2.97451815e-64, 2.73139136e-64, 2.50807665e-64, 2.30296451e-64, 2.11457576e-64, 1.94155108e-64, 1.78264128e-64, 1.63669842e-64, 1.50266763e-64, 1.37957961e-64, 1.26654367e-64, 1.1627414e-64, 1.06742082e-64, 9.79891005e-65, 8.99517128e-65, 8.25715942e-65, 7.57951589e-65, 6.95731765e-65, 6.38604189e-65, 5.86153362e-65, 5.37997582e-65, 4.93786205e-65, 4.53197128e-65, 4.15934468e-65, 3.81726438e-65, 3.5032339e-65, 3.21496016e-65, 2.95033698e-65, 2.70742988e-65, 2.48446211e-65, 2.27980186e-65, 2.09195047e-65, 1.91953156e-65, 1.76128114e-65, 1.6160384e-65, 1.48273738e-65, 1.36039918e-65, 1.24812492e-65, 1.14508918e-65, 1.05053406e-65, 9.63763624e-66, 8.8413888e-66, 8.11073131e-66, 7.44027704e-66, 6.8250803e-66, 6.2606005e-66, 5.74266898e-66, 5.26745874e-66, 4.83145644e-66, 4.43143681e-66, 4.0644391e-66, 3.72774543e-66, 3.41886097e-66, 3.13549563e-66, 2.87554737e-66, 2.63708677e-66, 2.4183429e-66, 2.21769036e-66, 2.03363732e-66, 1.86481462e-66, 1.70996568e-66, 1.56793729e-66, 1.43767113e-66, 1.31819597e-66, 1.20862056e-66, 1.10812701e-66, 1.01596482e-66, 9.31445329e-67, 8.53936612e-67, 7.82858851e-67, 7.17680036e-67, 6.57912037e-67, 6.03106995e-67, 5.52854014e-67, 5.06776112e-67, 4.64527437e-67, 4.25790702e-67, 3.9027483e-67, 3.577128e-67, 3.27859661e-67, 3.00490715e-67, 2.75399848e-67, 2.52397996e-67, 2.31311741e-67, 2.11982016e-67, 1.94262927e-67, 1.78020659e-67, 1.63132484e-67, 1.49485841e-67, 1.36977501e-67, 1.2551279e-67, 1.15004888e-67, 1.05374173e-67, 9.65476327e-68, 8.84583117e-68, 8.10448142e-68, 7.4250842e-68, 6.80247732e-68, 6.23192746e-68, 5.70909467e-68, 5.22999974e-68, 4.79099434e-68, 4.38873356e-68, 4.02015078e-68, 3.68243454e-68, 3.37300742e-68, 3.08950659e-68, 2.82976599e-68, 2.59180001e-68, 2.37378849e-68, 2.17406298e-68, 1.99109412e-68, 1.82348009e-68, 1.66993601e-68, 1.5292842e-68, 1.40044528e-68, 1.28242995e-68, 1.17433155e-68, 1.07531913e-68, 9.8463118e-69, 9.01569818e-69, 8.25495505e-69, 7.55822175e-69, 6.92012778e-69, 6.33575196e-69, 5.8005849e-69, 5.31049466e-69, 4.86169527e-69, 4.45071781e-69, 4.07438395e-69, 3.72978171e-69, 3.41424313e-69, 3.12532397e-69, 2.86078493e-69, 2.61857456e-69, 2.39681353e-69, 2.19378023e-69, 2.00789759e-69, 1.83772095e-69, 1.681927e-69, 1.53930361e-69, 1.4087405e-69, 1.28922074e-69, 1.17981288e-69, 1.07966383e-69, 9.87992254e-70, 9.04082567e-70, 8.27279417e-70, 7.56982626e-70, 6.92642559e-70, 6.33755882e-70, 5.79861669e-70, 5.30537844e-70, 4.85397912e-70, 4.44087969e-70, 4.06283964e-70, 3.71689183e-70, 3.40031955e-70, 3.11063541e-70, 2.84556204e-70, 2.60301443e-70, 2.38108369e-70, 2.17802226e-70, 1.99223028e-70, 1.82224316e-70, 1.66672016e-70, 1.52443397e-70, 1.39426112e-70, 1.27517322e-70, 1.16622895e-70, 1.06656671e-70, 9.75397855e-71, 8.92000583e-71, 8.15714251e-71, 7.45934218e-71, 6.82107114e-71, 6.23726502e-71, 5.70328908e-71, 5.21490188e-71, 4.76822199e-71, 4.35969754e-71, 3.98607829e-71, 3.64439009e-71, 3.33191151e-71, 3.04615241e-71, 2.78483436e-71, 2.54587267e-71, 2.32735995e-71, 2.12755112e-71, 1.9448496e-71, 1.7777947e-71, 1.62505013e-71, 1.48539339e-71, 1.35770613e-71, 1.24096532e-71, 1.13423508e-71, 1.03665937e-71, 9.47455122e-72, 8.65906079e-72, 7.91357091e-72, 7.23208925e-72, 6.60913504e-72, 6.0396955e-72, 5.51918601e-72, 5.04341363e-72, 4.60854374e-72, 4.2110695e-72, 3.84778391e-72, 3.51575424e-72, 3.21229864e-72, 2.93496474e-72, 2.68151006e-72, 2.44988413e-72, 2.23821203e-72, 2.04477948e-72, 1.86801905e-72, 1.70649764e-72, 1.55890501e-72, 1.42404326e-72, 1.30081724e-72, 1.18822574e-72, 1.08535346e-72, 9.91363681e-73, 9.05491512e-73, 8.27037749e-73, 7.5536325e-73, 6.8988379e-73, 6.30065354e-73, 5.75419834e-73, 5.25501096e-73, 4.79901375e-73, 4.38247989e-73, 4.00200328e-73, 3.65447098e-73, 3.3370381e-73, 3.04710475e-73, 2.78229497e-73, 2.54043758e-73, 2.31954849e-73, 2.11781468e-73, 1.93357945e-73, 1.76532902e-73, 1.61168019e-73, 1.47136915e-73, 1.34324117e-73, 1.22624122e-73, 1.11940541e-73, 1.02185308e-73, 9.32779701e-74, 8.51450265e-74, 7.77193311e-74, 7.09395441e-74, 6.47496317e-74, 5.90984079e-74, 5.39391168e-74, 4.92290496e-74, 4.49291954e-74, 4.10039223e-74, 3.7420685e-74, 3.41497583e-74, 3.11639935e-74, 2.84385957e-74, 2.595092e-74, 2.36802859e-74, 2.16078072e-74, 1.97162365e-74, 1.79898239e-74, 1.6414187e-74, 1.49761924e-74, 1.36638478e-74, 1.24662029e-74, 1.13732592e-74, 1.03758875e-74, 9.46575245e-75, 8.63524374e-75, 7.87741324e-75, 7.18591751e-75, 6.5549653e-75, 5.97926962e-75, 5.45400395e-75, 4.97476225e-75, 4.5375224e-75, 4.13861288e-75, 3.77468224e-75, 3.44267133e-75, 3.1397878e-75, 2.86348296e-75, 2.61143054e-75, 2.38150735e-75, 2.17177557e-75, 1.98046665e-75, 1.80596651e-75, 1.64680214e-75, 1.50162927e-75, 1.36922114e-75, 1.24845829e-75, 1.13831918e-75, 1.03787162e-75, 9.46265035e-76, 8.62723285e-76, 7.86538195e-76, 7.17063614e-76, 6.53709995e-76, 5.9593945e-76, 5.43261235e-76, 4.95227633e-76, 4.51430183e-76, 4.11496255e-76, 3.75085912e-76, 3.41889049e-76, 3.1162278e-76, 2.8402906e-76, 2.58872505e-76, 2.3593841e-76, 2.15030933e-76, 1.95971449e-76, 1.78597032e-76, 1.62759087e-76, 1.48322085e-76, 1.35162423e-76, 1.23167376e-76, 1.12234139e-76, 1.0226896e-76, 9.31863443e-77, 8.49083261e-77, 7.7363811e-77, 7.04879699e-77, 6.42216887e-77, 5.85110661e-77, 5.33069547e-77, 4.85645429e-77, 4.42429737e-77, 4.03049963e-77, 3.67166485e-77, 3.34469677e-77, 3.04677259e-77, 2.77531896e-77, 2.5279899e-77, 2.30264686e-77, 2.09734036e-77, 1.91029334e-77, 1.73988595e-77, 1.58464167e-77, 1.44321467e-77, 1.31437826e-77, 1.1970144e-77, 1.09010404e-77, 9.92718462e-78, 9.04011217e-78, 8.23210898e-78, 7.49614493e-78, 6.82581337e-78, 6.21527597e-78, 5.65921242e-78, 5.15277461e-78, 4.69154481e-78, 4.27149756e-78, 3.88896494e-78, 3.5406049e-78, 3.22337234e-78, 2.93449285e-78, 2.67143868e-78, 2.43190684e-78, 2.21379922e-78, 2.01520438e-78, 1.83438099e-78, 1.6697427e-78, 1.51984443e-78, 1.38336981e-78, 1.25911971e-78, 1.14600186e-78, 1.04302134e-78, 9.49271927e-79, 8.63928207e-79, 7.86238384e-79, 7.15517734e-79, 6.51142638e-79, 5.92545138e-79, 5.39207986e-79, 4.90660124e-79, 4.46472572e-79, 4.0625468e-79, 3.69650708e-79, 3.36336716e-79, 3.06017729e-79, 2.78425155e-79, 2.53314426e-79, 2.30462861e-79, 2.09667708e-79, 1.90744365e-79, 1.73524763e-79, 1.57855884e-79, 1.4359842e-79, 1.30625547e-79, 1.18821807e-79, 1.08082096e-79, 9.83107327e-80, 8.94206209e-80, 8.13324776e-80, 7.3974135e-80, 6.72799037e-80, 6.11899924e-80, 5.56499797e-80, 5.06103328e-80, 4.60259698e-80, 4.18558606e-80, 3.80626636e-80, 3.46123948e-80, 3.14741271e-80, 2.86197155e-80, 2.60235477e-80, 2.36623169e-80, 2.15148143e-80, 1.95617412e-80, 1.77855373e-80, 1.61702242e-80, 1.47012637e-80, 1.33654279e-80, 1.21506815e-80, 1.10460748e-80, 1.00416458e-80, 9.12833115e-81, 8.29788571e-81, 7.54280852e-81, 6.85627597e-81, 6.23208072e-81, 5.66457619e-81, 5.14862603e-81, 4.67955812e-81, 0.41999724, 0.83999399, 1.25998974, 1.679984, 2.09997628, 2.51996606, 2.93995286, 3.35993618, 3.77991552, 4.19989038, 4.61986027, 5.03982469, 5.45978314, 5.87973513, 6.29968015, 6.71961772, 7.13954733, 7.55946848, 7.97938068, 8.39928343, 8.81917624, 9.23905861, 9.65893003, 10.07879002, 10.49863807, 10.91847369, 11.33829639, 11.75810565, 12.177901, 12.59768193, 13.01744794, 13.43719853, 13.85693322, 14.2766515, 14.69635288, 15.11603685, 15.53570293, 15.95535062, 16.37497941, 16.79458882, 17.21417835, 17.63374749, 18.05329576, 18.47282265, 18.89232768, 19.31181033, 19.73127013, 20.15070657, 20.57011915, 20.98950738, 21.40887077, 21.82820881, 22.24752101, 22.66680687, 23.08606591, 23.50529762, 23.9245015, 24.34367707, 24.76282382, 25.18194126, 25.60102889, 26.02008623, 26.43911276, 26.85810801, 27.27707146, 27.69600263, 28.11490103, 28.53376615, 28.9525975, 29.37139459, 29.79015692, 30.208884, 30.62757533, 31.04623041, 31.46484876, 31.88342987, 32.30197326, 32.72047842, 33.13894487, 33.55737211, 33.97575965, 34.39410698, 34.81241362, 35.23067908, 35.64890286, 36.06708446, 36.48522339, 36.90331916, 37.32137127, 37.73937924, 38.15734256, 38.57526074, 38.9931333, 39.41095973, 39.82873955, 40.24647226, 40.66415737, 41.08179438, 41.49938281, 41.91692216, 42.33441194, 42.75185165, 43.1692408, 43.58657891, 44.00386547, 44.4211, 44.83828201, 45.255411, 45.67248648, 46.08950796, 46.50647495, 46.92338696, 47.34024349, 47.75704406, 48.17378817, 48.59047534, 49.00710506, 49.42367686, 49.84019024, 50.2566447, 50.67303977, 51.08937495, 51.50564974, 51.92186367, 52.33801623, 52.75410695, 53.17013532, 53.58610086, 54.00200309, 54.41784151, 54.83361563, 55.24932496, 55.66496902, 56.08054731, 56.49605935, 56.91150465, 57.32688272, 57.74219308, 58.15743522, 58.57260867, 58.98771294, 59.40274755, 59.81771199, 60.23260579, 60.64742846, 61.0621795, 61.47685845, 61.8914648, 62.30599807, 62.72045777, 63.13484342, 63.54915453, 63.96339062, 64.3775512, 64.79163578, 65.20564387, 65.619575, 66.03342868, 66.44720441, 66.86090172, 67.27452013, 67.68805914, 68.10151827, 68.51489703, 68.92819496, 69.34141155, 69.75454632, 70.1675988, 70.58056849, 70.99345492, 71.40625759, 71.81897604, 72.23160977, 72.6441583, 73.05662114, 73.46899783, 73.88128787, 74.29349078, 74.70560608, 75.11763329, 75.52957192, 75.9414215, 76.35318154, 76.76485157, 77.17643109, 77.58791964, 77.99931672, 78.41062187, 78.82183459, 79.23295442, 79.64398086, 80.05491344, 80.46575169, 80.87649511, 81.28714323, 81.69769558, 82.10815167, 82.51851103, 82.92877318, 83.33893763, 83.74900391, 84.15897155, 84.56884006, 84.97860897, 85.38827781, 85.79784608, 86.20731332, 86.61667905, 87.0259428, 87.43510408, 87.84416243, 88.25311736, 88.6619684, 89.07071508, 89.47935691, 89.88789343, 90.29632416, 90.70464863, 91.11286635, 91.52097687, 91.92897969, 92.33687435, 92.74466038, 93.1523373, 93.55990464, 93.96736193, 94.37470869, 94.78194444, 95.18906873, 95.59608108, 96.002981, 96.40976805, 96.81644173, 97.22300158, 97.62944714, 98.03577792, 98.44199346, 98.84809329, 99.25407694, 99.65994393, 100.06569381, 100.47132609, 100.87684032, 101.28223601, 101.68751271, 102.09266994, 102.49770724, 102.90262414, 103.30742017, 103.71209486, 104.11664774, 104.52107836, 104.92538624, 105.32957091, 105.73363191, 106.13756878, 106.54138104, 106.94506824, 107.3486299, 107.75206556, 108.15537476, 108.55855703, 108.96161191, 109.36453894, 109.76733764, 110.17000756, 110.57254823, 110.9749592, 111.37723999, 111.77939014, 112.1814092, 112.5832967, 112.98505217, 113.38667517, 113.78816522, 114.18952186, 114.59074464, 114.99183309, 115.39278675, 115.79360517, 116.19428788, 116.59483443, 116.99524435, 117.39551718, 117.79565248, 118.19564977, 118.59550861, 118.99522852, 119.39480907, 119.79424978, 120.1935502, 120.59270988, 120.99172836, 121.39060517, 121.78933988, 122.18793201, 122.58638112, 122.98468675, 123.38284845, 123.78086575, 124.17873821, 124.57646538, 124.97404679, 125.371482, 125.76877055, 126.165912, 126.56290587, 126.95975174, 127.35644913, 127.75299761, 128.14939672, 128.545646, 128.94174502, 129.33769331, 129.73349043, 130.12913593, 130.52462935, 130.91997026, 131.31515819, 131.7101927, 132.10507335, 132.49979968, 132.89437125, 133.2887876, 133.6830483, 134.07715289, 134.47110093, 134.86489197, 135.25852557, 135.65200128, 136.04531866, 136.43847725, 136.83147662, 137.22431632, 137.6169959, 138.00951493, 138.40187296, 138.79406954, 139.18610424, 139.5779766, 139.9696862, 140.36123258, 140.7526153, 141.14383393, 141.53488802, 141.92577713, 142.31650083, 142.70705866, 143.0974502, 143.48767499, 143.87773262, 144.26762262, 144.65734457, 145.04689803, 145.43628256, 145.82549772, 146.21454308, 146.60341819, 146.99212263, 147.38065595, 147.76901773, 148.15720752, 148.54522489, 148.9330694, 149.32074063, 149.70823813, 150.09556147, 150.48271022, 150.86968395, 151.25648222, 151.64310461, 152.02955067, 152.41581998, 152.8019121, 153.18782661, 153.57356308, 153.95912106, 154.34450014, 154.72969989, 155.11471987, 155.49955965, 155.88421882, 156.26869693, 156.65299356, 157.03710828, 157.42104067, 157.80479031, 158.18835675, 158.57173958, 158.95493837, 159.33795269, 159.72078213, 160.10342625, 160.48588463, 160.86815685, 161.25024248, 161.6321411, 162.01385229, 162.39537563, 162.77671068, 163.15785704, 163.53881428, 163.91958197, 164.3001597, 164.68054705, 165.06074359, 165.44074891, 165.82056259, 166.20018421, 166.57961335, 166.95884959, 167.33789252, 167.71674171, 168.09539675, 168.47385723, 168.85212272, 169.23019281, 169.60806709, 169.98574514, 170.36322654, 170.74051089, 171.11759776, 171.49448675, 171.87117744, 172.24766941, 172.62396226, 173.00005557, 173.37594893, 173.75164193, 174.12713416, 174.50242521, 174.87751467, 175.25240212, 175.62708716, 176.00156939, 176.37584838, 176.74992374, 177.12379505, 177.49746191, 177.8709239, 178.24418064, 178.6172317, 178.99007668, 179.36271517, 179.73514678, 180.1073711, 180.47938771, 180.85119623, 181.22279624, 181.59418734, 181.96536913, 182.3363412, 182.70710316, 183.0776546, 183.44799513, 183.81812434, 184.18804182, 184.55774719, 184.92724004, 185.29651998, 185.66558659, 186.0344395, 186.40307829, 186.77150257, 187.13971195, 187.50770602, 187.87548439, 188.24304667, 188.61039246, 188.97752136, 189.34443299, 189.71112694, 190.07760282, 190.44386024, 190.80989881, 191.17571813, 191.54131781, 191.90669746, 192.2718567, 192.63679512, 193.00151234, 193.36600797, 193.73028161, 194.09433289, 194.45816141, 194.82176678, 195.18514861, 195.54830652, 195.91124013, 196.27394904, 196.63643286, 196.99869122, 197.36072373, 197.72253, 198.08410964, 198.44546229, 198.80658754, 199.16748502, 199.52815434, 199.88859513, 200.248807, 200.60878958, 200.96854247, 201.32806529, 201.68735768, 202.04641925, 202.40524962, 202.7638484, 203.12221524, 203.48034973, 203.83825152, 204.19592022, 204.55335545, 204.91055684, 205.26752402, 205.6242566, 205.98075421, 206.33701649, 206.69304305, 207.04883353, 207.40438754, 207.75970472, 208.11478469, 208.46962709, 208.82423154, 209.17859768, 209.53272512, 209.88661351, 210.24026246, 210.59367163, 210.94684063, 211.29976909, 211.65245666, 212.00490296, 212.35710762, 212.70907029, 213.06079059, 213.41226817, 213.76350264, 214.11449366, 214.46524086, 214.81574387, 215.16600233, 215.51601588, 215.86578415, 216.2153068, 216.56458344, 216.91361373, 217.26239731, 217.61093381, 217.95922287, 218.30726414, 218.65505726, 219.00260187, 219.34989762, 219.69694414, 220.04374108, 220.39028808, 220.7365848, 221.08263087, 221.42842594, 221.77396966, 222.11926167, 222.46430162, 222.80908915, 223.15362392, 223.49790558, 223.84193377, 224.18570814, 224.52922834, 224.87249403, 225.21550485, 225.55826045, 225.90076049, 226.24300462, 226.58499249, 226.92672376, 227.26819807, 227.60941509, 227.95037446, 228.29107585, 228.63151891, 228.97170329, 229.31162865, 229.65129465, 229.99070095, 230.3298472, 230.66873306, 231.0073582, 231.34572227, 231.68382493, 232.02166584, 232.35924467, 232.69656107, 233.03361471, 233.37040525, 233.70693235, 234.04319568, 234.37919489, 234.71492967, 235.05039966, 235.38560454, 235.72054397, 236.05521762, 236.38962515, 236.72376624, 237.05764055, 237.39124774, 237.7245875, 238.05765948, 238.39046336, 238.72299881, 239.0552655, 239.3872631, 239.71899128, 240.05044972, 240.38163809, 240.71255606, 241.0432033, 241.3735795, 241.70368432, 242.03351745, 242.36307855, 242.69236731, 243.0213834, 243.3501265, 243.67859628, 244.00679243, 244.33471463, 244.66236255, 244.98973588, 245.31683429, 245.64365747, 245.9702051, 246.29647686, 246.62247243, 246.9481915, 247.27363375, 247.59879887, 247.92368653, 248.24829643, 248.57262826, 248.89668169, 249.22045641, 249.54395212, 249.86716849, 250.19010523, 250.51276201, 250.83513853, 251.15723447, 251.47904954, 251.80058341, 252.12183578, 252.44280634, 252.76349479, 253.08390082, 253.40402412, 253.72386438, 254.04342131, 254.36269459, 254.68168392, 255.000389, 255.31880953, 255.63694519, 255.9547957, 256.27236075, 256.58964003, 256.90663326, 257.22334011, 257.53976031, 257.85589355, 258.17173952, 258.48729794, 258.80256851, 259.11755092, 259.43224488, 259.7466501, 260.06076629, 260.37459314, 260.68813036, 261.00137766, 261.31433475, 261.62700133, 261.93937711, 262.2514618, 262.56325512, 262.87475676, 263.18596644, 263.49688387, 263.80750876, 264.11784083, 264.42787978, 264.73762533, 265.04707719, 265.35623507, 265.6650987, 265.97366778, 266.28194204, 266.58992118, 266.89760492, 267.20499299, 267.51208509, 267.81888095, 268.12538029, 268.43158282, 268.73748827, 269.04309636, 269.3484068, 269.65341932, 269.95813364, 270.26254949, 270.56666658, 270.87048464, 271.1740034, 271.47722258, 271.7801419, 272.0827611, 272.38507989, 272.68709801, 272.98881518, 273.29023113, 273.59134559, 273.89215829, 274.19266896, 274.49287733, 274.79278313, 275.09238609, 275.39168595, 275.69068243, 275.98937527, 276.28776421, 276.58584897, 276.8836293, 277.18110492, 277.47827558, 277.77514101, 278.07170095, 278.36795514, 278.6639033, 278.95954519, 279.25488055, 279.5499091, 279.8446306, 280.13904478, 280.43315138, 280.72695016, 281.02044084, 281.31362317, 281.60649691, 281.89906178, 282.19131754, 282.48326393, 282.7749007, 283.0662276, 283.35724437, 283.64795075, 283.93834651, 284.22843138, 284.51820511, 284.80766747, 285.09681819, 285.38565703, 285.67418374, 285.96239807, 286.25029977, 286.53788861, 286.82516433, 287.11212668, 287.39877543, 287.68511032, 287.97113112, 288.25683758, 288.54222946, 288.82730652, 289.11206851, 289.3965152, 289.68064634, 289.96446169, 290.24796102, 290.53114409, 290.81401065, 291.09656048, 291.37879333, 291.66070897, 291.94230716, 292.22358767, 292.50455026, 292.7851947, 293.06552076, 293.3455282, 293.62521678, 293.90458629, 294.18363649, 294.46236714, 294.74077802, 295.01886889, 295.29663954, 295.57408973, 295.85121923, 296.12802781, 296.40451526, 296.68068134, 296.95652582, 297.23204849, 297.50724912, 297.78212749, 298.05668337, 298.33091654, 298.60482677, 298.87841386, 299.15167757, 299.42461769, 299.69723399, 299.96952627, 300.24149429, 300.51313784, 300.78445671, 301.05545068, 301.32611953, 301.59646305, 301.86648101, 302.13617322, 302.40553945, 302.67457949, 302.94329312, 303.21168015, 303.47974035, 303.74747351, 304.01487943, 304.28195789, 304.54870868, 304.81513161, 305.08122645, 305.346993, 305.61243106, 305.87754042, 306.14232087, 306.40677221, 306.67089423, 306.93468674, 307.19814952, 307.46128238, 307.72408511, 307.98655751, 308.24869938, 308.51051052, 308.77199073, 309.03313982, 309.29395757, 309.55444381, 309.81459832, 310.07442091, 310.33391139, 310.59306956, 310.85189522, 311.11038818, 311.36854825, 311.62637524, 311.88386894, 312.14102918, 312.39785575, 312.65434847, 312.91050715, 313.1663316, 313.42182162, 313.67697703, 313.93179765, 314.18628328, 314.44043374, 314.69424884, 314.9477284, 315.20087223, 315.45368015, 315.70615198, 315.95828752, 316.2100866, 316.46154904, 316.71267466, 316.96346327, 317.2139147, 317.46402876, 317.71380528, 317.96324407, 318.21234497, 318.46110779, 318.70953235, 318.95761849, 319.20536603, 319.45277478, 319.69984458, 319.94657525, 320.19296663, 320.43901853, 320.68473079, 320.93010323, 321.17513569, 321.41982799, 321.66417997, 321.90819145, 322.15186228, 322.39519227, 322.63818127, 322.8808291, 323.1231356, 323.36510062, 323.60672397, 323.8480055, 324.08894505, 324.32954245, 324.56979753, 324.80971015, 325.04928013, 325.28850732, 325.52739155, 325.76593267, 326.00413053, 326.24198495, 326.47949578, 326.71666288, 326.95348607, 327.18996521, 327.42610014, 327.6618907, 327.89733675, 328.13243812, 328.36719467, 328.60160625, 328.83567269, 329.06939386, 329.3027696, 329.53579976, 329.7684842, 330.00082276, 330.2328153, 330.46446166, 330.69576171, 330.9267153, 331.15732228, 331.3875825, 331.61749583, 331.84706212, 332.07628122, 332.305153, 332.5336773, 332.761854, 332.98968295, 333.21716401, 333.44429704, 333.67108191, 333.89751846, 334.12360658, 334.34934611, 334.57473692, 334.79977889, 335.02447186, 335.24881571, 335.47281031, 335.69645551, 335.9197512, 336.14269723, 336.36529347, 336.58753979, 336.80943607, 337.03098217, 337.25217796, 337.47302332, 337.69351811, 337.91366222, 338.13345551, 338.35289785, 338.57198913, 338.79072921, 339.00911797, 339.22715529, 339.44484105, 339.66217512, 339.87915738, 340.09578771, 340.31206599, 340.5279921, 340.74356591, 340.95878732, 341.1736562, 341.38817243, 341.6023359, 341.81614649, 342.02960408, 342.24270856, 342.45545982, 342.66785774, 342.87990221, 343.09159311, 343.30293033, 343.51391376, 343.72454329, 343.93481881, 344.14474021, 344.35430738, 344.5635202, 344.77237859, 344.98088241, 345.18903158, 345.39682597, 345.6042655, 345.81135004, 346.01807951, 346.22445378, 346.43047277, 346.63613636, 346.84144446, 347.04639696, 347.25099376, 347.45523477, 347.65911988, 347.86264899, 348.06582201, 348.26863884, 348.47109938, 348.67320353, 348.8749512, 349.07634229, 349.27737671, 349.47805436, 349.67837515, 349.87833899, 350.07794579, 350.27719544, 350.47608787, 350.67462297, 350.87280067, 351.07062087, 351.26808348, 351.46518842, 351.66193559, 351.85832491, 352.0543563, 352.25002966, 352.44534491, 352.64030197, 352.83490076, 353.02914118, 353.22302317, 353.41654662, 353.60971147, 353.80251764, 353.99496503, 354.18705358, 354.3787832, 354.57015381, 354.76116534, 354.95181771, 355.14211084, 355.33204465, 355.52161908, 355.71083404, 355.89968947, 356.08818527, 356.2763214, 356.46409776, 356.65151429, 356.83857092, 357.02526758, 357.21160419, 357.39758069, 357.58319701, 357.76845308, 357.95334883, 358.13788419, 358.3220591, 358.5058735, 358.6893273, 358.87242046, 359.05515291, 359.23752458, 359.41953541, 359.60118534, 359.7824743, 359.96340224, 360.14396909, 360.3241748, 360.5040193, 360.68350253, 360.86262445, 361.04138498, 361.21978407, 361.39782167, 361.57549772, 361.75281216, 361.92976495, 362.10635602, 362.28258532, 362.4584528, 362.63395841, 362.80910209, 362.9838838, 363.15830348, 363.33236108, 363.50605655, 363.67938986, 363.85236093, 364.02496974, 364.19721623, 364.36910036, 364.54062207, 364.71178133, 364.88257809, 365.05301231, 365.22308394, 365.39279294, 365.56213926, 365.73112287, 365.89974373, 366.06800179, 366.23589701, 366.40342936, 366.5705988, 366.73740528, 366.90384877, 367.06992924, 367.23564664, 367.40100095, 367.56599212, 367.73062012, 367.89488492, 368.05878649, 368.22232478, 368.38549977, 368.54831143, 368.71075973, 368.87284463, 369.03456611, 369.19592413, 369.35691867, 369.5175497, 369.67781719, 369.83772112, 369.99726146, 370.15643817, 370.31525125, 370.47370066, 370.63178638, 370.78950838, 370.94686664, 371.10386115, 371.26049187, 371.41675879, 371.57266189, 371.72820114, 371.88337653, 372.03818804, 372.19263565, 372.34671934, 372.5004391, 372.65379491, 372.80678675, 372.9594146, 373.11167847, 373.26357832, 373.41511414, 373.56628593, 373.71709367, 373.86753735, 374.01761695, 374.16733247, 374.3166839, 374.46567122, 374.61429444, 374.76255353, 374.91044849, 375.05797932, 375.20514601, 375.35194854, 375.49838693, 375.64446116, 375.79017122, 375.93551712, 376.08049885, 376.2251164, 376.36936979, 376.51325899, 376.65678402, 376.79994488, 376.94274156, 377.08517406, 377.22724239, 377.36894655, 377.51028654, 377.65126236, 377.79187402, 377.93212152, 378.07200487, 378.21152407, 378.35067913, 378.48947006, 378.62789685, 378.76595953, 378.9036581, 379.04099256, 379.17796293, 379.31456922, 379.45081143, 379.58668959, 379.72220369, 379.85735376, 379.9921398, 380.12656183, 380.26061986, 380.39431392, 380.527644, 380.66061013, 380.79321233, 380.92545061, 381.05732499, 381.18883549, 381.31998212, 381.45076491, 381.58118387, 381.71123902, 381.8409304, 381.97025801, 382.09922187, 382.22782202, 382.35605848, 382.48393126, 382.6114404, 382.73858591, 382.86536782, 382.99178617, 383.11784096, 383.24353224, 383.36886003, 383.49382436, 383.61842525, 383.74266274, 383.86653686, 383.99004763, 384.11319508, 384.23597926, 384.35840018, 384.48045789, 384.60215242, 384.72348379, 384.84445205, 384.96505722, 385.08529935, 385.20517847, 385.32469462, 385.44384783, 385.56263815, 385.6810656, 385.79913023, 385.91683207, 386.03417118, 386.15114758, 386.26776132, 386.38401244, 386.49990099, 386.61542699, 386.73059051, 386.84539158, 386.95983024, 387.07390654, 387.18762053, 387.30097225, 387.41396175, 387.52658908, 387.63885428, 387.75075739, 387.86229848, 387.97347759, 388.08429476, 388.19475005, 388.30484352, 388.4145752, 388.52394516, 388.63295344, 388.7416001, 388.84988519, 388.95780876, 389.06537088, 389.17257159, 389.27941096, 389.38588903, 389.49200586, 389.59776152, 389.70315606, 389.80818953, 389.912862, 390.01717353, 390.12112418, 390.224714, 390.32794306, 390.43081142, 390.53331914, 390.63546628, 390.73725292, 390.8386791, 390.93974491, 391.04045039, 391.14079562, 391.24078066, 391.34040558, 391.43967045, 391.53857533, 391.63712029, 391.7353054, 391.83313073, 391.93059635, 392.02770233, 392.12444874, 392.22083565, 392.31686313, 392.41253126, 392.50784011, 392.60278975, 392.69738025, 392.79161169, 392.88548415, 392.9789977, 393.07215242, 393.16494837, 393.25738565, 393.34946433, 393.44118448, 393.53254619, 393.62354953, 393.71419458, 393.80448143, 393.89441016, 393.98398083, 394.07319355, 394.16204839, 394.25054542, 394.33868475, 394.42646644, 394.51389059, 394.60095728, 394.6876666, 394.77401862, 394.86001344, 394.94565115, 395.03093182, 395.11585556, 395.20042245, 395.28463257, 395.36848602, 395.45198289, 395.53512327, 395.61790724, 395.70033491, 395.78240636, 395.86412168, 395.94548097, 396.02648433, 396.10713184, 396.1874236, 396.26735971, 396.34694026, 396.42616535, 396.50503508, 396.58354954, 396.66170883, 396.73951304, 396.81696229, 396.89405666, 396.97079626, 397.04718118, 397.12321154, 397.19888742, 397.27420893, 397.34917618, 397.42378926, 397.49804828, 397.57195335, 397.64550456, 397.71870203, 397.79154585, 397.86403614, 397.936173, 398.00795653, 398.07938685, 398.15046406, 398.22118827, 398.2915596, 398.36157814, 398.43124401, 398.50055731, 398.56951817, 398.63812669, 398.70638298, 398.77428716, 398.84183933, 398.90903962, 398.97588813, 399.04238498, 399.10853029, 399.17432417, 399.23976673, 399.30485809, 399.36959837, 399.43398769, 399.49802616, 399.5617139, 399.62505103, 399.68803768, 399.75067395, 399.81295997, 399.87489586, 399.93648174, 399.99771774, 400.05860397, 400.11914055, 400.17932762, 400.2391653, 400.2986537, 400.35779295, 400.41658318, 400.47502452, 400.53311708, 400.590861, 400.64825641, 400.70530342, 400.76200217, 400.81835279, 400.8743554, 400.93001014, 400.98531713, 401.04027651, 401.0948884, 401.14915294, 401.20307026, 401.25664049, 401.30986376, 401.3627402, 401.41526996, 401.46745316, 401.51928994, 401.57078044, 401.62192478, 401.6727231, 401.72317555, 401.77328226, 401.82304336, 401.872459, 401.92152931, 401.97025442, 402.01863449, 402.06666965, 402.11436003, 402.16170579, 402.20870706, 402.25536398, 402.30167669, 402.34764535, 402.39327008, 402.43855104, 402.48348836, 402.52808219, 402.57233269, 402.61623998, 402.65980422, 402.70302555, 402.74590413, 402.78844009, 402.83063358, 402.87248476, 402.91399377, 402.95516076, 402.99598588, 403.03646928, 403.0766111, 403.11641151, 403.15587065, 403.19498867, 403.23376572, 403.27220197, 403.31029755, 403.34805263, 403.38546735, 403.42254187, 403.45927635, 403.49567095, 403.53172581, 403.56744109, 403.60281695, 403.63785355, 403.67255104, 403.70690959, 403.74092934, 403.77461047, 403.80795312, 403.84095746, 403.87362365, 403.90595184, 403.93794221, 403.9695949, 404.00091009, 404.03188793, 404.06252859, 404.09283223, 404.12279902, 404.15242911, 404.18172267, 404.21067987, 404.23930088, 404.26758585, 404.29553495, 404.32314836, 404.35042623, 404.37736874, 404.40397606, 404.43024834, 404.45618577, 404.4817885, 404.50705671, 404.53199057, 404.55659025, 404.58085592, 404.60478776, 404.62838592, 404.65165059, 404.67458194, 404.69718014, 404.71944537, 404.74137779, 404.76297758, 404.78424493, 404.80517999, 404.82578295, 404.84605399, 404.86599327, 404.88560098, 404.9048773, 404.92382239, 404.94243645, 404.96071964, 404.97867215, 404.99629416, 405.01358584, 405.03054738, 405.04717895, 405.06348074, 405.07945293, 405.0950957, 405.11040923, 405.1253937, 405.14004931, 405.15437622, 405.16837463, 405.18204472, 405.19538667, 405.20840067, 405.2210869, 405.23344555, 405.24547681, 405.25718086, 405.26855789, 405.27960809, 405.29033164, 405.30072873, 405.31079956, 405.3205443, 405.32996316, 405.33905631, 405.34782396, 405.35626628, 405.36438347, 405.37217573, 405.37964324, 405.3867862, 405.3936048, 405.40009923, 405.40626969, 405.41211636, 405.41763945, 405.42283914, 405.42771564, 405.43226913, 405.43649982, 405.4404079, 405.44399356, 405.44725701, 405.45019844, 405.45281804, 405.45511602, 405.45709258, 405.4587479, 405.4600822, 405.46109567, 405.46178851, 405.46216093, 405.46221311, 405.46194527, 405.46135761, 405.46045032, 405.45922361, 405.45767768, 405.45581273, 405.45362897, 405.45112661, 405.44830584, 405.44516687, 405.4417099, 405.43793514, 405.4338428, 405.42943308, 405.42470619, 405.41966233, 405.41430171, 405.40862454, 405.40263103, 405.39632138, 405.38969581, 405.38275451, 405.37549771, 405.36792561, 405.36003842, 405.35183635, 405.34331961, 405.33448841, 405.32534297, 405.31588349, 405.3061102, 405.29602329, 405.28562299, 405.2749095, 405.26388304, 405.25254383, 405.24089207, 405.22892799, 405.2166518, 405.20406371, 405.19116393, 405.1779527, 405.16443021, 405.15059669, 405.13645236, 405.12199743, 405.10723213, 405.09215666, 405.07677124, 405.06107611, 405.04507147, 405.02875754, 405.01213455, 404.99520271, 404.97796225, 404.96041338, 404.94255634, 404.92439133, 404.90591858, 404.88713832, 404.86805076, 404.84865614, 404.82895466, 404.80894656, 404.78863207, 404.76801139, 404.74708477, 404.72585242, 404.70431456, 404.68247144, 404.66032326, 404.63787027, 404.61511267, 404.59205071, 404.56868461, 404.54501459, 404.52104089, 404.49676373, 404.47218334, 404.44729995, 404.42211379, 404.39662508, 404.37083407, 404.34474098, 404.31834604, 404.29164947, 404.26465152, 404.23735242, 404.20975239, 404.18185166, 404.15365048, 404.12514907, 404.09634767, 404.0672465, 404.03784581, 404.00814583, 403.97814679, 403.94784893, 403.91725248, 403.88635768, 403.85516476, 403.82367396, 403.79188551, 403.75979966, 403.72741664, 403.69473668, 403.66176003, 403.62848692, 403.59491759, 403.56105227, 403.52689122, 403.49243466, 403.45768284, 403.42263599, 403.38729436, 403.35165819, 403.31572771, 403.27950317, 403.24298481, 403.20617287, 403.16906759, 403.13166921, 403.09397799, 403.05599415, 403.01771794, 402.97914962, 402.94028941, 402.90113756, 402.86169432, 402.82195994, 402.78193465, 402.7416187, 402.70101235, 402.66011582, 402.61892938, 402.57745326, 402.53568771, 402.49363298, 402.45128932, 402.40865697, 402.36573618, 402.3225272, 402.27903028, 402.23524566, 402.1911736, 402.14681435, 402.10216815, 402.05723525, 402.0120159, 401.96651036, 401.92071887, 401.87464168, 401.82827906, 401.78163123, 401.73469847, 401.68748102, 401.63997913, 401.59219306, 401.54412305, 401.49576937, 401.44713226, 401.39821198, 401.34900878, 401.29952292, 401.24975465, 401.19970422, 401.14937189, 401.09875792, 401.04786256, 400.99668607, 400.94522869, 400.8934907, 400.84147234, 400.78917388, 400.73659556, 400.68373765, 400.6306004, 400.57718408, 400.52348893, 400.46951522, 400.41526321, 400.36073316, 400.30592532, 400.25083995, 400.19547732, 400.13983768, 400.08392129, 400.02772842, 399.97125933, 399.91451427, 399.8574935, 399.8001973, 399.74262592, 399.68477961, 399.62665866, 399.5682633, 399.50959382, 399.45065047, 399.39143352, 399.33194322, 399.27217985, 399.21214366, 399.15183492, 399.0912539, 399.03040086, 398.96927606, 398.90787977, 398.84621225, 398.78427378, 398.72206461, 398.65958501, 398.59683526, 398.5338156, 398.47052632, 398.40696768, 398.34313994, 398.27904338, 398.21467826, 398.15004485, 398.08514341, 398.01997423, 397.95453755, 397.88883366, 397.82286282, 397.7566253, 397.69012138, 397.62335131, 397.55631538, 397.48901385, 397.42144699, 397.35361507, 397.28551836, 397.21715714, 397.14853168, 397.07964224, 397.0104891, 396.94107254, 396.87139281, 396.80145021, 396.73124499, 396.66077743, 396.59004781, 396.51905639, 396.44780346, 396.37628928, 396.30451413, 396.23247828, 396.16018202, 396.0876256, 396.01480931, 395.94173343, 395.86839822, 395.79480396, 395.72095093, 395.64683941, 395.57246967, 395.49784198, 395.42295663, 395.34781389, 395.27241403, 395.19675734, 395.12084409, 395.04467455, 394.96824902, 394.89156776, 394.81463105, 394.73743917, 394.6599924, 394.58229102, 394.5043353, 394.42612553, 394.34766199, 394.26894495, 394.1899747, 394.11075151, 394.03127566, 393.95154744, 393.87156712, 393.79133499, 393.71085132, 393.63011641, 393.54913052, 393.46789394, 393.38640695, 393.30466984, 393.22268288, 393.14044636, 393.05796056, 392.97522576, 392.89224225, 392.8090103, 392.72553021, 392.64180225, 392.5578267, 392.47360386, 392.389134, 392.30441742, 392.21945438, 392.13424519, 392.04879011, 391.96308944, 391.87714347, 391.79095246, 391.70451673, 391.61783653, 391.53091217, 391.44374393, 391.3563321, 391.26867695, 391.18077878, 391.09263787, 391.00425451, 390.91562899, 390.82676159, 390.7376526, 390.64830231, 390.55871101, 390.46887897, 390.3788065, 390.28849387, 390.19794138, 390.10714931, 390.01611795, 389.9248476, 389.83333854, 389.74159105, 389.64960543, 389.55738197, 389.46492095, 389.37222267, 389.27928741, 389.18611547, 389.09270714, 388.99906269, 388.90518244, 388.81106665, 388.71671564, 388.62212968, 388.52730907, 388.43225409, 388.33696505, 388.24144223, 388.14568592, 388.04969641, 387.953474, 387.85701897, 387.76033163, 387.66341225, 387.56626115, 387.46887859, 387.37126489, 387.27342032, 387.1753452, 387.0770398, 386.97850442, 386.87973935, 386.78074489, 386.68152133, 386.58206897, 386.48238809, 386.382479, 386.28234198, 386.18197733, 386.08138535, 385.98056633, 385.87952056, 385.77824834, 385.67674997, 385.57502573, 385.47307592, 385.37090085, 385.2685008, 385.16587607, 385.06302695, 384.95995375, 384.85665675, 384.75313626, 384.64939257, 384.54542597, 384.44123676, 384.33682525, 384.23219171, 384.12733646, 384.02225979, 383.91696199, 383.81144337, 383.70570422, 383.59974483, 383.49356551, 383.38716655, 383.28054825, 383.17371091, 383.06665482, 382.95938029, 382.85188761, 382.74417708, 382.636249, 382.52810366, 382.41974137, 382.31116242, 382.20236712, 382.09335576, 381.98412864, 381.87468606, 381.76502831, 381.65515571, 381.54506854, 381.43476711, 381.32425172, 381.21352267, 381.10258025, 380.99142476, 380.88005651, 380.7684758, 380.65668293, 380.54467819, 380.43246189, 380.32003433, 380.2073958, 380.09454662, 379.98148707, 379.86821747, 379.7547381, 379.64104928, 379.5271513, 379.41304447, 379.29872908, 379.18420545, 379.06947386, 378.95453462, 378.83938803, 378.7240344, 378.60847403, 378.49270721, 378.37673425, 378.26055546, 378.14417113, 378.02758157, 377.91078707, 377.79378795, 377.6765845, 377.55917703, 377.44156583, 377.32375122, 377.2057335, 377.08751296, 376.96908991, 376.85046466, 376.7316375, 376.61260874, 376.49337869, 376.37394764, 376.25431591, 376.13448379, 376.01445158, 375.8942196, 375.77378814, 375.65315751, 375.53232801, 375.41129995, 375.29007363, 375.16864935, 375.04702742, 374.92520814, 374.80319182, 374.68097876, 374.55856927, 374.43596365, 374.3131622, 374.19016523, 374.06697304, 373.94358595, 373.82000424, 373.69622824, 373.57225823, 373.44809454, 373.32373746, 373.19918729, 373.07444435, 372.94950893, 372.82438135, 372.69906191, 372.57355091, 372.44784866, 372.32195547, 372.19587163, 372.06959746, 371.94313327, 371.81647934, 371.689636, 371.56260355, 371.4353823, 371.30797254, 371.18037459, 371.05258874, 370.92461532, 370.79645462, 370.66810695, 370.53957261, 370.41085192, 370.28194517, 370.15285268, 370.02357475, 369.89411168, 369.76446379, 369.63463138, 369.50461475, 369.37441421, 369.24403007, 369.11346264, 368.98271222, 368.85177911, 368.72066363, 368.58936608, 368.45788677, 368.32622601, 368.19438409, 368.06236134, 367.93015804, 367.79777452, 367.66521108, 367.53246803, 367.39954566, 367.2664443, 367.13316424, 366.99970579, 366.86606927, 366.73225497, 366.59826321, 366.46409429, 366.32974851, 366.19522619, 366.06052764, 365.92565315, 365.79060305, 365.65537762, 365.51997719, 365.38440206, 365.24865253, 365.11272892, 364.97663152, 364.84036066, 364.70391663, 364.56729974, 364.43051031, 364.29354863, 364.15641501, 364.01910977, 363.88163321, 363.74398563, 363.60616735, 363.46817867, 363.3300199, 363.19169135, 363.05319332, 362.91452612, 362.77569006, 362.63668545, 362.49751259, 362.3581718, 362.21866337, 362.07898762, 361.93914485, 361.79913538, 361.65895951, 361.51861754, 361.37810978, 361.23743655, 361.09659815, 360.95559488, 360.81442706, 360.67309499, 360.53159898, 360.38993933, 360.24811636, 360.10613037, 359.96398168, 359.82167057, 359.67919737, 359.53656239, 359.39376592, 359.25080828, 359.10768977, 358.9644107, 358.82097139, 358.67737212, 358.53361323, 358.389695, 358.24561775, 358.10138179, 357.95698742, 357.81243495, 357.66772469, 357.52285694, 357.37783201, 357.23265022, 357.08731186, 356.94181724, 356.79616668, 356.65036047, 356.50439893, 356.35828237, 356.21201108, 356.06558538, 355.91900557, 355.77227196, 355.62538487, 355.47834458, 355.33115142, 355.18380569, 355.03630769, 354.88865774, 354.74085614, 354.59290319, 354.4447992, 354.29654449, 354.14813935, 353.9995841, 353.85087904, 353.70202447, 353.55302071, 353.40386806, 353.25456682, 353.10511731, 352.95551983, 352.80577468, 352.65588218, 352.50584263, 352.35565633, 352.20532359, 352.05484473, 351.90422003, 351.75344982, 351.60253439, 351.45147406, 351.30026913, 351.1489199, 350.99742669, 350.84578979, 350.69400951, 350.54208616, 350.39002005, 350.23781148, 350.08546075, 349.93296818, 349.78033407, 349.62755871, 349.47464243, 349.32158552, 349.1683883, 349.01505105, 348.8615741, 348.70795775, 348.55420229, 348.40030805, 348.24627531, 348.09210439, 347.9377956, 347.78334923, 347.62876559, 347.47404499, 347.31918773, 347.16419412, 347.00906446, 346.85379906, 346.69839821, 346.54286223, 346.38719143, 346.23138609, 346.07544654, 345.91937307, 345.76316598, 345.60682559, 345.45035219, 345.29374609, 345.1370076, 344.98013701, 344.82313464, 344.66600078, 344.50873574, 344.35133982, 344.19381333, 344.03615657, 343.87836985, 343.72045346, 343.56240771, 343.40423291, 343.24592935, 343.08749734, 342.92893719, 342.77024919, 342.61143366, 342.45249088, 342.29342117, 342.13422483, 341.97490216, 341.81545346, 341.65587904, 341.4961792, 341.33635423, 341.17640445, 341.01633015, 340.85613165, 340.69580923, 340.5353632, 340.37479386, 340.21410152, 340.05328648, 339.89234904, 339.73128949, 339.57010815, 339.40880531, 339.24738127, 339.08583634, 338.92417082, 338.762385, 338.60047919, 338.4384537, 338.27630881, 338.11404483, 337.95166207, 337.78916082, 337.62654138, 337.46380406, 337.30094915, 337.13797695, 336.97488777, 336.8116819, 336.64835965, 336.48492131, 336.32136718, 336.15769757, 335.99391277, 335.83001309, 335.66599881, 335.50187025, 335.3376277, 335.17327145, 335.00880182, 334.8442191, 334.67952358, 334.51471556, 334.34979535, 334.18476325, 334.01961954, 333.85436453, 333.68899852, 333.52352181, 333.35793469, 333.19223746, 333.02643042, 332.86051387, 332.6944881, 332.52835342, 332.36211011, 332.19575849, 332.02929883, 331.86273145, 331.69605664, 331.52927469, 331.36238591, 331.19539058, 331.02828901, 330.86108149, 330.69376832, 330.5263498, 330.35882621, 330.19119787, 330.02346505, 329.85562807, 329.6876872, 329.51964276, 329.35149504, 329.18324432, 329.01489091, 328.84643511, 328.67787719, 328.50921747, 328.34045624, 328.17159379, 328.00263041, 327.8335664, 327.66440206, 327.49513767, 327.32577354, 327.15630995, 326.98674721, 326.81708559, 326.64732541, 326.47746695, 326.3075105, 326.13745636, 325.96730482, 325.79705617, 325.62671071, 325.45626873, 325.28573053, 325.11509639, 324.9443666, 324.77354147, 324.60262127, 324.43160632, 324.26049688, 324.08929327, 323.91799576, 323.74660465, 323.57512024, 323.40354281, 323.23187265, 323.06011006, 322.88825533, 322.71630874, 322.5442706, 322.37214118, 322.19992077, 322.02760968, 321.85520819, 321.68271658, 321.51013515, 321.3374642, 321.164704, 320.99185484, 320.81891703, 320.64589084, 320.47277656, 320.29957449, 320.12628491, 319.95290812, 319.77944439, 319.60589402, 319.4322573, 319.25853451, 319.08472594, 318.91083188, 318.73685262, 318.56278845, 318.38863964, 318.2144065, 318.0400893, 317.86568834, 317.6912039, 317.51663626, 317.34198572, 317.16725256, 316.99243706, 316.81753952, 316.64256021, 316.46749943, 316.29235745, 316.11713458, 315.94183108, 315.76644724, 315.59098336, 315.41543972, 315.23981659, 315.06411427, 314.88833303, 314.71247317, 314.53653497, 314.36051871, 314.18442467, 314.00825315, 313.83200441, 313.65567875, 313.47927646, 313.3027978, 313.12624307, 312.94961254, 312.77290651, 312.59612525, 312.41926904, 312.24233817, 312.06533293, 311.88825358, 311.71110041, 311.53387371, 311.35657376, 311.17920083, 311.00175521, 310.82423718, 310.64664702, 310.46898501, 310.29125143, 310.11344656, 309.93557068, 309.75762407, 309.57960701, 309.40151978, 309.22336266, 309.04513593, 308.86683987, 308.68847476, 308.51004087, 308.33153848, 308.15296788, 307.97432934, 307.79562314, 307.61684955, 307.43800886, 307.25910134, 307.08012727, 306.90108693, 306.72198059, 306.54280853, 306.36357104, 306.18426837, 306.00490082, 305.82546865, 305.64597215, 305.46641159, 305.28678724, 305.10709938, 304.92734829, 304.74753424, 304.5676575, 304.38771836, 304.20771708, 304.02765395, 303.84752922, 303.66734319, 303.48709612, 303.30678829, 303.12641996, 302.94599143, 302.76550294, 302.58495479, 302.40434724, 302.22368057, 302.04295505, 301.86217095, 301.68132854, 301.5004281, 301.31946989, 301.1384542, 300.95738128, 300.77625142, 300.59506488, 300.41382193, 300.23252285, 300.05116791, 299.86975737, 299.6882915, 299.50677059, 299.32519489, 299.14356467, 298.96188021, 298.78014178, 298.59834964, 298.41650406, 298.23460532, 298.05265368, 297.8706494, 297.68859276, 297.50648403, 297.32432347, 297.14211135, 296.95984794, 296.7775335, 296.59516831, 296.41275262, 296.23028672, 296.04777085, 295.8652053, 295.68259031, 295.49992618, 295.31721314, 295.13445148, 294.95164146, 294.76878334, 294.58587739, 294.40292388, 294.21992306, 294.0368752, 293.85378057, 293.67063943, 293.48745204, 293.30421867, 293.12093958, 292.93761504, 292.75424531, 292.57083064, 292.38737131, 292.20386758, 292.0203197, 291.83672794, 291.65309257, 291.46941384, 291.28569201, 291.10192735, 290.91812012, 290.73427058, 290.55037898, 290.3664456, 290.18247069, 289.9984545, 289.81439731, 289.63029937, 289.44616093, 289.26198227, 289.07776363, 288.89350528, 288.70920748, 288.52487048, 288.34049454, 288.15607992, 287.97162688, 287.78713567, 287.60260656, 287.4180398, 287.23343565, 287.04879436, 286.8641162, 286.67940141, 286.49465025, 286.30986299, 286.12503987, 285.94018115, 285.75528709, 285.57035794, 285.38539396, 285.2003954, 285.01536252, 284.83029556, 284.6451948, 284.46006047, 284.27489283, 284.08969215, 283.90445866, 283.71919262, 283.53389429, 283.34856392, 283.16320176, 282.97780806, 282.79238308, 282.60692707, 282.42144027, 282.23592295, 282.05037535, 281.86479772, 281.67919031, 281.49355338, 281.30788717, 281.12219193, 280.93646793, 280.75071539, 280.56493458, 280.37912574, 280.19328913, 280.00742498, 279.82153356, 279.6356151, 279.44966986, 279.26369808, 279.07770002, 278.89167592, 278.70562602, 278.51955058, 278.33344983, 278.14732404, 277.96117344, 277.77499828, 277.58879881, 277.40257527, 277.21632791, 277.03005698, 276.84376271, 276.65744535, 276.47110516, 276.28474236, 276.09835722, 275.91194996, 275.72552084, 275.5390701, 275.35259798, 275.16610473, 274.97959059, 274.79305579, 274.60650059, 274.41992523, 274.23332994, 274.04671497, 273.86008057, 273.67342697, 273.48675441, 273.30006313, 273.11335339, 272.9266254, 272.73987943, 272.5531157, 272.36633446, 272.17953594, 271.99272039, 271.80588804, 271.61903914, 271.43217392, 271.24529261, 271.05839547, 270.87148273, 270.68455461, 270.49761137, 270.31065324, 270.12368046, 269.93669326, 269.74969188, 269.56267655, 269.37564752, 269.18860502, 269.00154928, 268.81448054, 268.62739903, 268.440305, 268.25319867, 268.06608028, 267.87895006, 267.69180825, 267.50465508, 267.31749079, 267.1303156, 266.94312976, 266.75593349, 266.56872703, 266.38151061, 266.19428446, 266.00704882, 265.81980391, 265.63254997, 265.44528723, 265.25801592, 265.07073627, 264.88344851, 264.69615287, 264.50884958, 264.32153888, 264.13422098, 263.94689613, 263.75956455, 263.57222647, 263.38488211, 263.19753171, 263.0101755, 262.82281369, 262.63544653, 262.44807424, 262.26069704, 262.07331516, 261.88592883, 261.69853828, 261.51114373, 261.3237454, 261.13634353, 260.94893834, 260.76153006, 260.5741189, 260.3867051, 260.19928888, 260.01187047, 259.82445008, 259.63702794, 259.44960428, 259.26217932, 259.07475328, 258.88732639, 258.69989887, 258.51247094, 258.32504282, 258.13761473, 257.9501869, 257.76275956, 257.57533291, 257.38790718, 257.20048259, 257.01305937, 256.82563773, 256.63821789, 256.45080007, 256.2633845, 256.07597139, 255.88856096, 255.70115342, 255.51374901, 255.32634793, 255.13895041, 254.95155666, 254.7641669, 254.57678135, 254.38940023, 254.20202374, 254.01465211, 253.82728556, 253.6399243, 253.45256855, 253.26521852, 253.07787443, 252.89053649, 252.70320492, 252.51587993, 252.32856174, 252.14125056, 251.95394661, 251.7666501, 251.57936124, 251.39208025, 251.20480733, 251.01754271, 250.83028659, 250.64303919, 250.45580072, 250.26857139, 250.08135141, 249.89414099, 249.70694035, 249.51974969, 249.33256922, 249.14539917, 248.95823972, 248.77109111, 248.58395353, 248.39682719, 248.20971231, 248.02260908, 247.83551773, 247.64843846, 247.46137147, 247.27431698, 247.08727519, 246.90024631, 246.71323054, 246.5262281, 246.33923919, 246.15226401, 245.96530278, 245.77835569, 245.59142296, 245.40450478, 245.21760137, 245.03071292, 244.84383965, 244.65698175, 244.47013944, 244.28331291, 244.09650236, 243.90970801, 243.72293005, 243.53616869, 243.34942413, 243.16269657, 242.97598621, 242.78929326, 242.60261791, 242.41596038, 242.22932085, 242.04269953, 241.85609662, 241.66951232, 241.48294683, 241.29640035, 241.10987308, 240.92336522, 240.73687696, 240.55040852, 240.36396007, 240.17753183, 239.99112399, 239.80473674, 239.61837029, 239.43202484, 239.24570057, 239.05939769, 238.87311639, 238.68685687, 238.50061933, 238.31440395, 238.12821094, 237.94204049, 237.7558928, 237.56976805, 237.38366645, 237.19758819, 237.01153346, 236.82550246, 236.63949537, 236.4535124, 236.26755373, 236.08161955, 235.89571007, 235.70982547, 235.52396594, 235.33813168, 235.15232287, 234.96653971, 234.78078239, 234.59505109, 234.40934601, 234.22366735, 234.03801527, 233.85238999, 233.66679168, 233.48122054, 233.29567676, 233.11016051, 232.924672, 232.7392114, 232.55377891, 232.36837472, 232.182999, 231.99765195, 231.81233376, 231.62704461, 231.44178468, 231.25655417, 231.07135325, 230.88618212, 230.70104095, 230.51592994, 230.33084926, 230.14579911, 229.96077966, 229.77579111, 229.59083362, 229.40590739, 229.2210126, 229.03614943, 228.85131807, 228.66651869, 228.48175149, 228.29701663, 228.1123143, 227.92764469, 227.74300796, 227.55840432, 227.37383392, 227.18929697, 227.00479362, 226.82032407, 226.6358885, 226.45148707, 226.26711998, 226.0827874, 225.8984895, 225.71422647, 225.52999849, 225.34580572, 225.16164835, 224.97752656, 224.79344053, 224.60939041, 224.42537641, 224.24139868, 224.05745742, 223.87355278, 223.68968495, 223.5058541, 223.32206041, 223.13830405, 222.95458519, 222.77090402, 222.58726069, 222.40365539, 222.22008829, 222.03655956, 221.85306938, 221.66961791, 221.48620533, 221.3028318, 221.11949751, 220.93620263, 220.75294731, 220.56973174, 220.38655609, 220.20342052, 220.0203252, 219.83727031, 219.65425602, 219.47128248, 219.28834988, 219.10545838, 218.92260815, 218.73979935, 218.55703216, 218.37430674, 218.19162326, 218.00898189, 217.82638279, 217.64382613, 217.46131207, 217.27884079, 217.09641244, 216.9140272, 216.73168523, 216.54938669, 216.36713175, 216.18492057, 216.00275331, 215.82063015, 215.63855124, 215.45651675, 215.27452684, 215.09258167, 214.91068141, 214.72882621, 214.54701625, 214.36525167, 214.18353265, 214.00185935, 213.82023192, 213.63865053, 213.45711533, 213.27562649, 213.09418417, 212.91278852, 212.73143971, 212.5501379, 212.36888324, 212.18767589, 212.00651601, 211.82540376, 211.6443393, 211.46332279, 211.28235437, 211.10143422, 210.92056248, 210.73973931, 210.55896487, 210.37823931, 210.1975628, 210.01693548, 209.83635751, 209.65582905, 209.47535024, 209.29492126, 209.11454224, 208.93421334, 208.75393472, 208.57370653, 208.39352893, 208.21340206, 208.03332608, 207.85330114, 207.67332739, 207.49340498, 207.31353408, 207.13371482, 206.95394735, 206.77423184, 206.59456843, 206.41495727, 206.2353985, 206.05589229, 205.87643877, 205.69703811, 205.51769044, 205.33839591, 205.15915468, 204.9799669, 204.8008327, 204.62175224, 204.44272566, 204.26375312, 204.08483476, 203.90597072, 203.72716115, 203.5484062, 203.36970601, 203.19106074, 203.01247051, 202.83393549, 202.65545581, 202.47703162, 202.29866306, 202.12035028, 201.94209341, 201.76389261, 201.58574802, 201.40765978, 201.22962803, 201.05165291, 200.87373457, 200.69587315, 200.51806879, 200.34032163, 200.16263181, 199.98499947, 199.80742476, 199.62990782, 199.45244877, 199.27504777, 199.09770496, 198.92042046, 198.74319443, 198.566027, 198.3889183, 198.21186848, 198.03487768, 197.85794603, 197.68107367, 197.50426073, 197.32750736, 197.15081369, 196.97417986, 196.79760599, 196.62109224, 196.44463873, 196.2682456, 196.09191299, 195.91564102, 195.73942984, 195.56327957, 195.38719036, 195.21116233, 195.03519563, 194.85929037, 194.6834467, 194.50766475, 194.33194465, 194.15628653, 193.98069052, 193.80515677, 193.62968539, 193.45427652, 193.27893029, 193.10364682, 192.92842626, 192.75326874, 192.57817437, 192.40314329, 192.22817563, 192.05327152, 191.87843109, 191.70365446, 191.52894177, 191.35429314, 191.1797087, 191.00518858, 190.8307329, 190.6563418, 190.48201539, 190.30775381, 190.13355718, 189.95942563, 189.78535928, 189.61135826, 189.4374227, 189.26355271, 189.08974842, 188.91600997, 188.74233746, 188.56873103, 188.3951908, 188.2217169, 188.04830944, 187.87496855, 187.70169435, 187.52848696, 187.35534651, 187.18227312, 187.00926691, 186.83632799, 186.6634565, 186.49065256, 186.31791627, 186.14524777, 185.97264717, 185.8001146, 185.62765017, 185.455254, 185.28292621, 185.11066692, 184.93847625, 184.76635432, 184.59430124, 184.42231714, 184.25040212, 184.07855631, 183.90677983, 183.73507279, 183.5634353, 183.39186749, 183.22036946, 183.04894135, 182.87758325, 182.70629529, 182.53507758, 182.36393023, 182.19285337, 182.02184709, 181.85091153, 181.68004679, 181.50925298, 181.33853022, 181.16787863, 180.9972983, 180.82678937, 180.65635193, 180.4859861, 180.31569199, 180.14546972, 179.97531939, 179.80524111, 179.635235, 179.46530117, 179.29543972, 179.12565077, 178.95593443, 178.7862908, 178.61671999, 178.44722212, 178.27779729, 178.10844561, 177.93916718, 177.76996213, 177.60083054, 177.43177254, 177.26278823, 177.09387771, 176.92504109, 176.75627848, 176.58758998, 176.4189757, 176.25043575, 176.08197022, 175.91357924, 175.74526289, 175.57702129, 175.40885454, 175.24076274, 175.072746, 174.90480441, 174.7369381, 174.56914715, 174.40143167, 174.23379176, 174.06622753, 173.89873907, 173.73132649, 173.5639899, 173.39672938, 173.22954505, 173.062437, 172.89540533, 172.72845015, 172.56157156, 172.39476964, 172.22804452, 172.06139627, 171.89482501, 171.72833083, 171.56191383, 171.3955741, 171.22931176, 171.06312688, 170.89701958, 170.73098995, 170.56503808, 170.39916408, 170.23336803, 170.06765005, 169.90201021, 169.73644862, 169.57096538, 169.40556057, 169.2402343, 169.07498666, 168.90981774, 168.74472764, 168.57971645, 168.41478427, 168.24993119, 168.0851573, 167.9204627, 167.75584747, 167.59131172, 167.42685554, 167.26247901, 167.09818222, 166.93396528, 166.76982827, 166.60577128, 166.44179441, 166.27789774, 166.11408137, 165.95034538, 165.78668987, 165.62311492, 165.45962063, 165.29620708, 165.13287436, 164.96962257, 164.80645178, 164.6433621, 164.4803536, 164.31742637, 164.15458051, 163.99181609, 163.82913322, 163.66653196, 163.50401242, 163.34157467, 163.1792188, 163.01694491, 162.85475306, 162.69264336, 162.53061588, 162.36867071, 162.20680793, 162.04502763, 161.8833299, 161.72171481, 161.56018245, 161.3987329, 161.23736625, 161.07608259, 160.91488198, 160.75376452, 160.59273029, 160.43177937, 160.27091184, 160.11012778, 159.94942728, 159.78881041, 159.62827726, 159.4678279, 159.30746242, 159.1471809, 158.98698342, 158.82687006, 158.66684089, 158.50689599, 158.34703546, 158.18725935, 158.02756776, 157.86796075, 157.70843842, 157.54900083, 157.38964806, 157.2303802, 157.07119731, 156.91209948, 156.75308678, 156.59415928, 156.43531707, 156.27656022, 156.11788881, 155.9593029, 155.80080259, 155.64238793, 155.48405901, 155.3258159, 155.16765867, 155.0095874, 154.85160216, 154.69370303, 154.53589008, 154.37816338, 154.22052301, 154.06296903, 153.90550152, 153.74812056, 153.59082621, 153.43361854, 153.27649764, 153.11946356, 152.96251638, 152.80565617, 152.648883, 152.49219695, 152.33559807, 152.17908645, 152.02266214, 151.86632523, 151.71007578, 151.55391385, 151.39783952, 151.24185286, 151.08595393, 150.9301428, 150.77441954, 150.61878422, 150.46323691, 150.30777766, 150.15240656, 149.99712365, 149.84192902, 149.68682273, 149.53180484, 149.37687542, 149.22203454, 149.06728225, 148.91261863, 148.75804374, 148.60355765, 148.44916041, 148.2948521, 148.14063278, 147.9865025, 147.83246134, 147.67850936, 147.52464661, 147.37087317, 147.2171891, 147.06359446, 146.9100893, 146.7566737, 146.60334771, 146.4501114, 146.29696482, 146.14390804, 145.99094112, 145.83806412, 145.6852771, 145.53258011, 145.37997323, 145.2274565, 145.07503, 144.92269377, 144.77044788, 144.61829238, 144.46622734, 144.31425281, 144.16236885, 144.01057551, 143.85887287, 143.70726097, 143.55573986, 143.40430962, 143.25297029, 143.10172193, 142.9505646, 142.79949835, 142.64852324, 142.49763933, 142.34684666, 142.19614531, 142.04553531, 141.89501673, 141.74458962, 141.59425403, 141.44401003, 141.29385765, 141.14379696, 140.99382802, 140.84395086, 140.69416555, 140.54447214, 140.39487069, 140.24536123, 140.09594384, 139.94661855, 139.79738542, 139.6482445, 139.49919585, 139.35023951, 139.20137554, 139.05260398, 138.90392489, 138.75533832, 138.60684431, 138.45844292, 138.31013419, 138.16191818, 138.01379494, 137.86576451, 137.71782694, 137.56998228, 137.42223058, 137.27457189, 137.12700626, 136.97953373, 136.83215435, 136.68486816, 136.53767523, 136.39057558, 136.24356928, 136.09665635, 135.94983686, 135.80311085, 135.65647836, 135.50993944, 135.36349413, 135.21714249, 135.07088454, 134.92472035, 134.77864995, 134.63267338, 134.4867907, 134.34100195, 134.19530716, 134.04970639, 133.90419968, 133.75878706, 133.61346859, 133.4682443, 133.32311424, 133.17807845, 133.03313697, 132.88828985, 132.74353712, 132.59887883, 132.45431502, 132.30984572, 132.16547099, 132.02119086, 131.87700536, 131.73291455, 131.58891846, 131.44501713, 131.3012106, 131.15749892, 131.01388211, 130.87036022, 130.72693328, 130.58360135, 130.44036444, 130.29722261, 130.15417589, 130.01122431, 129.86836792, 129.72560676, 129.58294085, 129.44037024, 129.29789497, 129.15551506, 129.01323056, 128.8710415, 128.72894793, 128.58694986, 128.44504735, 128.30324042, 128.16152911, 128.01991346, 127.8783935, 127.73696926, 127.59564078, 127.45440809, 127.31327124, 127.17223024, 127.03128513, 126.89043596, 126.74968274, 126.60902552, 126.46846433, 126.32799919, 126.18763015, 126.04735723, 125.90718046, 125.76709989, 125.62711553, 125.48722742, 125.3474356, 125.20774009, 125.06814092, 124.92863812, 124.78923173, 124.64992177, 124.51070828, 124.37159129, 124.23257081, 124.0936469, 123.95481956, 123.81608884, 123.67745475, 123.53891734, 123.40047662, 123.26213264, 123.1238854, 122.98573495, 122.84768131, 122.7097245, 122.57186456, 122.43410151, 122.29643538, 122.1588662, 122.02139399, 121.88401877, 121.74674058, 121.60955945, 121.47247539, 121.33548843, 121.1985986, 121.06180592, 120.92511042, 120.78851212, 120.65201105, 120.51560723, 120.37930069, 120.24309144, 120.10697953, 119.97096495, 119.83504776, 119.69922795, 119.56350557, 119.42788062, 119.29235314, 119.15692314, 119.02159066, 118.8863557, 118.7512183, 118.61617847, 118.48123624, 118.34639163, 118.21164466, 118.07699534, 117.94244371, 117.80798978, 117.67363358, 117.53937512, 117.40521442, 117.2711515, 117.13718639, 117.0033191, 116.86954965, 116.73587807, 116.60230436, 116.46882856, 116.33545067, 116.20217073, 116.06898873, 115.93590471, 115.80291869, 115.67003067, 115.53724068, 115.40454873, 115.27195485, 115.13945904, 115.00706134, 114.87476174, 114.74256028, 114.61045696, 114.4784518, 114.34654482, 114.21473604, 114.08302546, 113.95141311, 113.819899, 113.68848315, 113.55716557, 113.42594627, 113.29482528, 113.1638026, 113.03287824, 112.90205224, 112.77132458, 112.6406953, 112.51016441, 112.37973191, 112.24939783, 112.11916216, 111.98902494, 111.85898616, 111.72904585, 111.59920401, 111.46946066, 111.33981581, 111.21026947, 111.08082165, 110.95147237, 110.82222163, 110.69306945, 110.56401584, 110.4350608, 110.30620435, 110.17744651, 110.04878727, 109.92022665, 109.79176467, 109.66340132, 109.53513662, 109.40697058, 109.27890321, 109.15093452, 109.02306451, 108.8952932, 108.76762059, 108.64004669, 108.51257151, 108.38519507, 108.25791736, 108.13073839, 108.00365817, 107.87667672, 107.74979403, 107.62301011, 107.49632498, 107.36973863, 107.24325107, 107.11686232, 106.99057237, 106.86438124, 106.73828892, 106.61229543, 106.48640077, 106.36060495, 106.23490797, 106.10930983, 105.98381054, 105.85841011, 105.73310854, 105.60790583, 105.482802, 105.35779703, 105.23289095, 105.10808375, 104.98337543, 104.858766, 104.73425546, 104.60984381, 104.48553107, 104.36131722, 104.23720228, 104.11318625, 103.98926912, 103.8654509, 103.7417316, 103.61811121, 103.49458974, 103.37116718, 103.24784355, 103.12461884, 103.00149304, 102.87846617, 102.75553823, 102.63270921, 102.50997911, 102.38734794, 102.26481569, 102.14238237, 102.02004798, 101.8978125, 101.77567596, 101.65363833, 101.53169963, 101.40985986, 101.288119, 101.16647706, 101.04493404, 100.92348994, 100.80214475, 100.68089848, 100.55975112, 100.43870267, 100.31775312, 100.19690248, 100.07615074, 99.9554979, 99.83494395, 99.7144889, 99.59413274, 99.47387547, 99.35371707, 99.23365756, 99.11369692, 98.99383516, 98.87407226, 98.75440822, 98.63484305, 98.51537673, 98.39600925, 98.27674063, 98.15757084, 98.03849988, 97.91952776, 97.80065446, 97.68187997, 97.5632043, 97.44462744, 97.32614937, 97.2077701, 97.08948962, 96.97130792, 96.85322499, 96.73524083, 96.61735544, 96.49956879, 96.3818809, 96.26429174, 96.14680131, 96.02940961, 95.91211662, 95.79492235, 95.67782677, 95.56082989, 95.44393168, 95.32713216, 95.2104313, 95.0938291, 94.97732554, 94.86092063, 94.74461435, 94.62840669, 94.51229764, 94.39628719, 94.28037533, 94.16456206, 94.04884736, 93.93323122, 93.81771363, 93.70229458, 93.58697407, 93.47175207, 93.35662858, 93.24160359, 93.12667709, 93.01184906, 92.89711949, 92.78248838, 92.66795571, 92.55352146, 92.43918564, 92.32494821, 92.21080918, 92.09676853, 91.98282624, 91.86898231, 91.75523672, 91.64158946, 91.52804052, 91.41458987, 91.30123752, 91.18798344, 91.07482762, 90.96177005, 90.84881071, 90.7359496, 90.62318668, 90.51052196, 90.39795542, 90.28548704, 90.17311681, 90.06084471, 89.94867072, 89.83659484, 89.72461705, 89.61273732, 89.50095566, 89.38927203, 89.27768643, 89.16619884, 89.05480925, 88.94351762, 88.83232396, 88.72122825, 88.61023046, 88.49933058, 88.38852859, 88.27782449, 88.16721824, 88.05670984, 87.94629926, 87.83598649, 87.7257715, 87.6156543, 87.50563484, 87.39571313, 87.28588913, 87.17616283, 87.06653422, 86.95700327, 86.84756996, 86.73823428, 86.62899621, 86.51985572, 86.41081281, 86.30186744, 86.19301961, 86.08426929, 85.97561646, 85.8670611, 85.75860319, 85.65024272, 85.54197966, 85.43381399, 85.32574569, 85.21777474, 85.10990112, 85.00212482, 84.8944458, 84.78686405, 84.67937954, 84.57199227, 84.46470219, 84.3575093, 84.25041357, 84.14341498, 84.03651351, 83.92970913, 83.82300183, 83.71639158, 83.60987836, 83.50346215, 83.39714292, 83.29092065, 83.18479532, 83.07876691, 82.97283539, 82.86700075, 82.76126294, 82.65562197, 82.55007779, 82.44463039, 82.33927974, 82.23402582, 82.12886861, 82.02380807, 81.9188442, 81.81397696, 81.70920632, 81.60453227, 81.49995478, 81.39547382, 81.29108937, 81.18680141, 81.08260991, 80.97851484, 80.87451618, 80.7706139, 80.66680798, 80.5630984, 80.45948512, 80.35596812, 80.25254738, 80.14922286, 80.04599455, 79.94286241, 79.83982643, 79.73688657, 79.6340428, 79.5312951, 79.42864345, 79.32608781, 79.22362817, 79.12126448, 79.01899673, 78.91682489, 78.81474892, 78.71276881, 78.61088452, 78.50909603, 78.40740331, 78.30580632, 78.20430505, 78.10289946, 78.00158953, 77.90037523, 77.79925652, 77.69823339, 77.59730579, 77.49647371, 77.39573711, 77.29509596, 77.19455024, 77.09409991, 76.99374495, 76.89348533, 76.79332101, 76.69325197, 76.59327818, 76.4933996, 76.39361621, 76.29392798, 76.19433487, 76.09483686, 75.99543391, 75.896126, 75.7969131, 75.69779517, 75.59877218, 75.4998441, 75.40101091, 75.30227256, 75.20362903, 75.10508029, 75.0066263, 74.90826704, 74.81000247, 74.71183256, 74.61375728, 74.51577659, 74.41789047, 74.32009888, 74.22240179, 74.12479917, 74.02729098, 73.92987719, 73.83255778, 73.7353327, 73.63820192, 73.54116542, 73.44422315, 73.34737509, 73.2506212, 73.15396145, 73.0573958, 72.96092422, 72.86454668, 72.76826315, 72.67207358, 72.57597795, 72.47997623, 72.38406837, 72.28825434, 72.19253411, 72.09690765, 72.00137492, 71.90593588, 71.8105905, 71.71533876, 71.6201806, 71.525116, 71.43014492] }, { "type": "list", "attributes": {}, "value": [ { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [4000, 12] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["x", "rev.x", "y.c1", "rev.y.c1", "y.c2", "rev.y.c2", "y.c3", "rev.y.c3", "cont.c1", "cont.c2", "cont.c3", "cont.sum"] } ] } }, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4000, 3999, 3998, 3997, 3996, 3995, 3994, 3993, 3992, 3991, 3990, 3989, 3988, 3987, 3986, 3985, 3984, 3983, 3982, 3981, 3980, 3979, 3978, 3977, 3976, 3975, 3974, 3973, 3972, 3971, 3970, 3969, 3968, 3967, 3966, 3965, 3964, 3963, 3962, 3961, 3960, 3959, 3958, 3957, 3956, 3955, 3954, 3953, 3952, 3951, 3950, 3949, 3948, 3947, 3946, 3945, 3944, 3943, 3942, 3941, 3940, 3939, 3938, 3937, 3936, 3935, 3934, 3933, 3932, 3931, 3930, 3929, 3928, 3927, 3926, 3925, 3924, 3923, 3922, 3921, 3920, 3919, 3918, 3917, 3916, 3915, 3914, 3913, 3912, 3911, 3910, 3909, 3908, 3907, 3906, 3905, 3904, 3903, 3902, 3901, 3900, 3899, 3898, 3897, 3896, 3895, 3894, 3893, 3892, 3891, 3890, 3889, 3888, 3887, 3886, 3885, 3884, 3883, 3882, 3881, 3880, 3879, 3878, 3877, 3876, 3875, 3874, 3873, 3872, 3871, 3870, 3869, 3868, 3867, 3866, 3865, 3864, 3863, 3862, 3861, 3860, 3859, 3858, 3857, 3856, 3855, 3854, 3853, 3852, 3851, 3850, 3849, 3848, 3847, 3846, 3845, 3844, 3843, 3842, 3841, 3840, 3839, 3838, 3837, 3836, 3835, 3834, 3833, 3832, 3831, 3830, 3829, 3828, 3827, 3826, 3825, 3824, 3823, 3822, 3821, 3820, 3819, 3818, 3817, 3816, 3815, 3814, 3813, 3812, 3811, 3810, 3809, 3808, 3807, 3806, 3805, 3804, 3803, 3802, 3801, 3800, 3799, 3798, 3797, 3796, 3795, 3794, 3793, 3792, 3791, 3790, 3789, 3788, 3787, 3786, 3785, 3784, 3783, 3782, 3781, 3780, 3779, 3778, 3777, 3776, 3775, 3774, 3773, 3772, 3771, 3770, 3769, 3768, 3767, 3766, 3765, 3764, 3763, 3762, 3761, 3760, 3759, 3758, 3757, 3756, 3755, 3754, 3753, 3752, 3751, 3750, 3749, 3748, 3747, 3746, 3745, 3744, 3743, 3742, 3741, 3740, 3739, 3738, 3737, 3736, 3735, 3734, 3733, 3732, 3731, 3730, 3729, 3728, 3727, 3726, 3725, 3724, 3723, 3722, 3721, 3720, 3719, 3718, 3717, 3716, 3715, 3714, 3713, 3712, 3711, 3710, 3709, 3708, 3707, 3706, 3705, 3704, 3703, 3702, 3701, 3700, 3699, 3698, 3697, 3696, 3695, 3694, 3693, 3692, 3691, 3690, 3689, 3688, 3687, 3686, 3685, 3684, 3683, 3682, 3681, 3680, 3679, 3678, 3677, 3676, 3675, 3674, 3673, 3672, 3671, 3670, 3669, 3668, 3667, 3666, 3665, 3664, 3663, 3662, 3661, 3660, 3659, 3658, 3657, 3656, 3655, 3654, 3653, 3652, 3651, 3650, 3649, 3648, 3647, 3646, 3645, 3644, 3643, 3642, 3641, 3640, 3639, 3638, 3637, 3636, 3635, 3634, 3633, 3632, 3631, 3630, 3629, 3628, 3627, 3626, 3625, 3624, 3623, 3622, 3621, 3620, 3619, 3618, 3617, 3616, 3615, 3614, 3613, 3612, 3611, 3610, 3609, 3608, 3607, 3606, 3605, 3604, 3603, 3602, 3601, 3600, 3599, 3598, 3597, 3596, 3595, 3594, 3593, 3592, 3591, 3590, 3589, 3588, 3587, 3586, 3585, 3584, 3583, 3582, 3581, 3580, 3579, 3578, 3577, 3576, 3575, 3574, 3573, 3572, 3571, 3570, 3569, 3568, 3567, 3566, 3565, 3564, 3563, 3562, 3561, 3560, 3559, 3558, 3557, 3556, 3555, 3554, 3553, 3552, 3551, 3550, 3549, 3548, 3547, 3546, 3545, 3544, 3543, 3542, 3541, 3540, 3539, 3538, 3537, 3536, 3535, 3534, 3533, 3532, 3531, 3530, 3529, 3528, 3527, 3526, 3525, 3524, 3523, 3522, 3521, 3520, 3519, 3518, 3517, 3516, 3515, 3514, 3513, 3512, 3511, 3510, 3509, 3508, 3507, 3506, 3505, 3504, 3503, 3502, 3501, 3500, 3499, 3498, 3497, 3496, 3495, 3494, 3493, 3492, 3491, 3490, 3489, 3488, 3487, 3486, 3485, 3484, 3483, 3482, 3481, 3480, 3479, 3478, 3477, 3476, 3475, 3474, 3473, 3472, 3471, 3470, 3469, 3468, 3467, 3466, 3465, 3464, 3463, 3462, 3461, 3460, 3459, 3458, 3457, 3456, 3455, 3454, 3453, 3452, 3451, 3450, 3449, 3448, 3447, 3446, 3445, 3444, 3443, 3442, 3441, 3440, 3439, 3438, 3437, 3436, 3435, 3434, 3433, 3432, 3431, 3430, 3429, 3428, 3427, 3426, 3425, 3424, 3423, 3422, 3421, 3420, 3419, 3418, 3417, 3416, 3415, 3414, 3413, 3412, 3411, 3410, 3409, 3408, 3407, 3406, 3405, 3404, 3403, 3402, 3401, 3400, 3399, 3398, 3397, 3396, 3395, 3394, 3393, 3392, 3391, 3390, 3389, 3388, 3387, 3386, 3385, 3384, 3383, 3382, 3381, 3380, 3379, 3378, 3377, 3376, 3375, 3374, 3373, 3372, 3371, 3370, 3369, 3368, 3367, 3366, 3365, 3364, 3363, 3362, 3361, 3360, 3359, 3358, 3357, 3356, 3355, 3354, 3353, 3352, 3351, 3350, 3349, 3348, 3347, 3346, 3345, 3344, 3343, 3342, 3341, 3340, 3339, 3338, 3337, 3336, 3335, 3334, 3333, 3332, 3331, 3330, 3329, 3328, 3327, 3326, 3325, 3324, 3323, 3322, 3321, 3320, 3319, 3318, 3317, 3316, 3315, 3314, 3313, 3312, 3311, 3310, 3309, 3308, 3307, 3306, 3305, 3304, 3303, 3302, 3301, 3300, 3299, 3298, 3297, 3296, 3295, 3294, 3293, 3292, 3291, 3290, 3289, 3288, 3287, 3286, 3285, 3284, 3283, 3282, 3281, 3280, 3279, 3278, 3277, 3276, 3275, 3274, 3273, 3272, 3271, 3270, 3269, 3268, 3267, 3266, 3265, 3264, 3263, 3262, 3261, 3260, 3259, 3258, 3257, 3256, 3255, 3254, 3253, 3252, 3251, 3250, 3249, 3248, 3247, 3246, 3245, 3244, 3243, 3242, 3241, 3240, 3239, 3238, 3237, 3236, 3235, 3234, 3233, 3232, 3231, 3230, 3229, 3228, 3227, 3226, 3225, 3224, 3223, 3222, 3221, 3220, 3219, 3218, 3217, 3216, 3215, 3214, 3213, 3212, 3211, 3210, 3209, 3208, 3207, 3206, 3205, 3204, 3203, 3202, 3201, 3200, 3199, 3198, 3197, 3196, 3195, 3194, 3193, 3192, 3191, 3190, 3189, 3188, 3187, 3186, 3185, 3184, 3183, 3182, 3181, 3180, 3179, 3178, 3177, 3176, 3175, 3174, 3173, 3172, 3171, 3170, 3169, 3168, 3167, 3166, 3165, 3164, 3163, 3162, 3161, 3160, 3159, 3158, 3157, 3156, 3155, 3154, 3153, 3152, 3151, 3150, 3149, 3148, 3147, 3146, 3145, 3144, 3143, 3142, 3141, 3140, 3139, 3138, 3137, 3136, 3135, 3134, 3133, 3132, 3131, 3130, 3129, 3128, 3127, 3126, 3125, 3124, 3123, 3122, 3121, 3120, 3119, 3118, 3117, 3116, 3115, 3114, 3113, 3112, 3111, 3110, 3109, 3108, 3107, 3106, 3105, 3104, 3103, 3102, 3101, 3100, 3099, 3098, 3097, 3096, 3095, 3094, 3093, 3092, 3091, 3090, 3089, 3088, 3087, 3086, 3085, 3084, 3083, 3082, 3081, 3080, 3079, 3078, 3077, 3076, 3075, 3074, 3073, 3072, 3071, 3070, 3069, 3068, 3067, 3066, 3065, 3064, 3063, 3062, 3061, 3060, 3059, 3058, 3057, 3056, 3055, 3054, 3053, 3052, 3051, 3050, 3049, 3048, 3047, 3046, 3045, 3044, 3043, 3042, 3041, 3040, 3039, 3038, 3037, 3036, 3035, 3034, 3033, 3032, 3031, 3030, 3029, 3028, 3027, 3026, 3025, 3024, 3023, 3022, 3021, 3020, 3019, 3018, 3017, 3016, 3015, 3014, 3013, 3012, 3011, 3010, 3009, 3008, 3007, 3006, 3005, 3004, 3003, 3002, 3001, 3000, 2999, 2998, 2997, 2996, 2995, 2994, 2993, 2992, 2991, 2990, 2989, 2988, 2987, 2986, 2985, 2984, 2983, 2982, 2981, 2980, 2979, 2978, 2977, 2976, 2975, 2974, 2973, 2972, 2971, 2970, 2969, 2968, 2967, 2966, 2965, 2964, 2963, 2962, 2961, 2960, 2959, 2958, 2957, 2956, 2955, 2954, 2953, 2952, 2951, 2950, 2949, 2948, 2947, 2946, 2945, 2944, 2943, 2942, 2941, 2940, 2939, 2938, 2937, 2936, 2935, 2934, 2933, 2932, 2931, 2930, 2929, 2928, 2927, 2926, 2925, 2924, 2923, 2922, 2921, 2920, 2919, 2918, 2917, 2916, 2915, 2914, 2913, 2912, 2911, 2910, 2909, 2908, 2907, 2906, 2905, 2904, 2903, 2902, 2901, 2900, 2899, 2898, 2897, 2896, 2895, 2894, 2893, 2892, 2891, 2890, 2889, 2888, 2887, 2886, 2885, 2884, 2883, 2882, 2881, 2880, 2879, 2878, 2877, 2876, 2875, 2874, 2873, 2872, 2871, 2870, 2869, 2868, 2867, 2866, 2865, 2864, 2863, 2862, 2861, 2860, 2859, 2858, 2857, 2856, 2855, 2854, 2853, 2852, 2851, 2850, 2849, 2848, 2847, 2846, 2845, 2844, 2843, 2842, 2841, 2840, 2839, 2838, 2837, 2836, 2835, 2834, 2833, 2832, 2831, 2830, 2829, 2828, 2827, 2826, 2825, 2824, 2823, 2822, 2821, 2820, 2819, 2818, 2817, 2816, 2815, 2814, 2813, 2812, 2811, 2810, 2809, 2808, 2807, 2806, 2805, 2804, 2803, 2802, 2801, 2800, 2799, 2798, 2797, 2796, 2795, 2794, 2793, 2792, 2791, 2790, 2789, 2788, 2787, 2786, 2785, 2784, 2783, 2782, 2781, 2780, 2779, 2778, 2777, 2776, 2775, 2774, 2773, 2772, 2771, 2770, 2769, 2768, 2767, 2766, 2765, 2764, 2763, 2762, 2761, 2760, 2759, 2758, 2757, 2756, 2755, 2754, 2753, 2752, 2751, 2750, 2749, 2748, 2747, 2746, 2745, 2744, 2743, 2742, 2741, 2740, 2739, 2738, 2737, 2736, 2735, 2734, 2733, 2732, 2731, 2730, 2729, 2728, 2727, 2726, 2725, 2724, 2723, 2722, 2721, 2720, 2719, 2718, 2717, 2716, 2715, 2714, 2713, 2712, 2711, 2710, 2709, 2708, 2707, 2706, 2705, 2704, 2703, 2702, 2701, 2700, 2699, 2698, 2697, 2696, 2695, 2694, 2693, 2692, 2691, 2690, 2689, 2688, 2687, 2686, 2685, 2684, 2683, 2682, 2681, 2680, 2679, 2678, 2677, 2676, 2675, 2674, 2673, 2672, 2671, 2670, 2669, 2668, 2667, 2666, 2665, 2664, 2663, 2662, 2661, 2660, 2659, 2658, 2657, 2656, 2655, 2654, 2653, 2652, 2651, 2650, 2649, 2648, 2647, 2646, 2645, 2644, 2643, 2642, 2641, 2640, 2639, 2638, 2637, 2636, 2635, 2634, 2633, 2632, 2631, 2630, 2629, 2628, 2627, 2626, 2625, 2624, 2623, 2622, 2621, 2620, 2619, 2618, 2617, 2616, 2615, 2614, 2613, 2612, 2611, 2610, 2609, 2608, 2607, 2606, 2605, 2604, 2603, 2602, 2601, 2600, 2599, 2598, 2597, 2596, 2595, 2594, 2593, 2592, 2591, 2590, 2589, 2588, 2587, 2586, 2585, 2584, 2583, 2582, 2581, 2580, 2579, 2578, 2577, 2576, 2575, 2574, 2573, 2572, 2571, 2570, 2569, 2568, 2567, 2566, 2565, 2564, 2563, 2562, 2561, 2560, 2559, 2558, 2557, 2556, 2555, 2554, 2553, 2552, 2551, 2550, 2549, 2548, 2547, 2546, 2545, 2544, 2543, 2542, 2541, 2540, 2539, 2538, 2537, 2536, 2535, 2534, 2533, 2532, 2531, 2530, 2529, 2528, 2527, 2526, 2525, 2524, 2523, 2522, 2521, 2520, 2519, 2518, 2517, 2516, 2515, 2514, 2513, 2512, 2511, 2510, 2509, 2508, 2507, 2506, 2505, 2504, 2503, 2502, 2501, 2500, 2499, 2498, 2497, 2496, 2495, 2494, 2493, 2492, 2491, 2490, 2489, 2488, 2487, 2486, 2485, 2484, 2483, 2482, 2481, 2480, 2479, 2478, 2477, 2476, 2475, 2474, 2473, 2472, 2471, 2470, 2469, 2468, 2467, 2466, 2465, 2464, 2463, 2462, 2461, 2460, 2459, 2458, 2457, 2456, 2455, 2454, 2453, 2452, 2451, 2450, 2449, 2448, 2447, 2446, 2445, 2444, 2443, 2442, 2441, 2440, 2439, 2438, 2437, 2436, 2435, 2434, 2433, 2432, 2431, 2430, 2429, 2428, 2427, 2426, 2425, 2424, 2423, 2422, 2421, 2420, 2419, 2418, 2417, 2416, 2415, 2414, 2413, 2412, 2411, 2410, 2409, 2408, 2407, 2406, 2405, 2404, 2403, 2402, 2401, 2400, 2399, 2398, 2397, 2396, 2395, 2394, 2393, 2392, 2391, 2390, 2389, 2388, 2387, 2386, 2385, 2384, 2383, 2382, 2381, 2380, 2379, 2378, 2377, 2376, 2375, 2374, 2373, 2372, 2371, 2370, 2369, 2368, 2367, 2366, 2365, 2364, 2363, 2362, 2361, 2360, 2359, 2358, 2357, 2356, 2355, 2354, 2353, 2352, 2351, 2350, 2349, 2348, 2347, 2346, 2345, 2344, 2343, 2342, 2341, 2340, 2339, 2338, 2337, 2336, 2335, 2334, 2333, 2332, 2331, 2330, 2329, 2328, 2327, 2326, 2325, 2324, 2323, 2322, 2321, 2320, 2319, 2318, 2317, 2316, 2315, 2314, 2313, 2312, 2311, 2310, 2309, 2308, 2307, 2306, 2305, 2304, 2303, 2302, 2301, 2300, 2299, 2298, 2297, 2296, 2295, 2294, 2293, 2292, 2291, 2290, 2289, 2288, 2287, 2286, 2285, 2284, 2283, 2282, 2281, 2280, 2279, 2278, 2277, 2276, 2275, 2274, 2273, 2272, 2271, 2270, 2269, 2268, 2267, 2266, 2265, 2264, 2263, 2262, 2261, 2260, 2259, 2258, 2257, 2256, 2255, 2254, 2253, 2252, 2251, 2250, 2249, 2248, 2247, 2246, 2245, 2244, 2243, 2242, 2241, 2240, 2239, 2238, 2237, 2236, 2235, 2234, 2233, 2232, 2231, 2230, 2229, 2228, 2227, 2226, 2225, 2224, 2223, 2222, 2221, 2220, 2219, 2218, 2217, 2216, 2215, 2214, 2213, 2212, 2211, 2210, 2209, 2208, 2207, 2206, 2205, 2204, 2203, 2202, 2201, 2200, 2199, 2198, 2197, 2196, 2195, 2194, 2193, 2192, 2191, 2190, 2189, 2188, 2187, 2186, 2185, 2184, 2183, 2182, 2181, 2180, 2179, 2178, 2177, 2176, 2175, 2174, 2173, 2172, 2171, 2170, 2169, 2168, 2167, 2166, 2165, 2164, 2163, 2162, 2161, 2160, 2159, 2158, 2157, 2156, 2155, 2154, 2153, 2152, 2151, 2150, 2149, 2148, 2147, 2146, 2145, 2144, 2143, 2142, 2141, 2140, 2139, 2138, 2137, 2136, 2135, 2134, 2133, 2132, 2131, 2130, 2129, 2128, 2127, 2126, 2125, 2124, 2123, 2122, 2121, 2120, 2119, 2118, 2117, 2116, 2115, 2114, 2113, 2112, 2111, 2110, 2109, 2108, 2107, 2106, 2105, 2104, 2103, 2102, 2101, 2100, 2099, 2098, 2097, 2096, 2095, 2094, 2093, 2092, 2091, 2090, 2089, 2088, 2087, 2086, 2085, 2084, 2083, 2082, 2081, 2080, 2079, 2078, 2077, 2076, 2075, 2074, 2073, 2072, 2071, 2070, 2069, 2068, 2067, 2066, 2065, 2064, 2063, 2062, 2061, 2060, 2059, 2058, 2057, 2056, 2055, 2054, 2053, 2052, 2051, 2050, 2049, 2048, 2047, 2046, 2045, 2044, 2043, 2042, 2041, 2040, 2039, 2038, 2037, 2036, 2035, 2034, 2033, 2032, 2031, 2030, 2029, 2028, 2027, 2026, 2025, 2024, 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990, 1989, 1988, 1987, 1986, 1985, 1984, 1983, 1982, 1981, 1980, 1979, 1978, 1977, 1976, 1975, 1974, 1973, 1972, 1971, 1970, 1969, 1968, 1967, 1966, 1965, 1964, 1963, 1962, 1961, 1960, 1959, 1958, 1957, 1956, 1955, 1954, 1953, 1952, 1951, 1950, 1949, 1948, 1947, 1946, 1945, 1944, 1943, 1942, 1941, 1940, 1939, 1938, 1937, 1936, 1935, 1934, 1933, 1932, 1931, 1930, 1929, 1928, 1927, 1926, 1925, 1924, 1923, 1922, 1921, 1920, 1919, 1918, 1917, 1916, 1915, 1914, 1913, 1912, 1911, 1910, 1909, 1908, 1907, 1906, 1905, 1904, 1903, 1902, 1901, 1900, 1899, 1898, 1897, 1896, 1895, 1894, 1893, 1892, 1891, 1890, 1889, 1888, 1887, 1886, 1885, 1884, 1883, 1882, 1881, 1880, 1879, 1878, 1877, 1876, 1875, 1874, 1873, 1872, 1871, 1870, 1869, 1868, 1867, 1866, 1865, 1864, 1863, 1862, 1861, 1860, 1859, 1858, 1857, 1856, 1855, 1854, 1853, 1852, 1851, 1850, 1849, 1848, 1847, 1846, 1845, 1844, 1843, 1842, 1841, 1840, 1839, 1838, 1837, 1836, 1835, 1834, 1833, 1832, 1831, 1830, 1829, 1828, 1827, 1826, 1825, 1824, 1823, 1822, 1821, 1820, 1819, 1818, 1817, 1816, 1815, 1814, 1813, 1812, 1811, 1810, 1809, 1808, 1807, 1806, 1805, 1804, 1803, 1802, 1801, 1800, 1799, 1798, 1797, 1796, 1795, 1794, 1793, 1792, 1791, 1790, 1789, 1788, 1787, 1786, 1785, 1784, 1783, 1782, 1781, 1780, 1779, 1778, 1777, 1776, 1775, 1774, 1773, 1772, 1771, 1770, 1769, 1768, 1767, 1766, 1765, 1764, 1763, 1762, 1761, 1760, 1759, 1758, 1757, 1756, 1755, 1754, 1753, 1752, 1751, 1750, 1749, 1748, 1747, 1746, 1745, 1744, 1743, 1742, 1741, 1740, 1739, 1738, 1737, 1736, 1735, 1734, 1733, 1732, 1731, 1730, 1729, 1728, 1727, 1726, 1725, 1724, 1723, 1722, 1721, 1720, 1719, 1718, 1717, 1716, 1715, 1714, 1713, 1712, 1711, 1710, 1709, 1708, 1707, 1706, 1705, 1704, 1703, 1702, 1701, 1700, 1699, 1698, 1697, 1696, 1695, 1694, 1693, 1692, 1691, 1690, 1689, 1688, 1687, 1686, 1685, 1684, 1683, 1682, 1681, 1680, 1679, 1678, 1677, 1676, 1675, 1674, 1673, 1672, 1671, 1670, 1669, 1668, 1667, 1666, 1665, 1664, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653, 1652, 1651, 1650, 1649, 1648, 1647, 1646, 1645, 1644, 1643, 1642, 1641, 1640, 1639, 1638, 1637, 1636, 1635, 1634, 1633, 1632, 1631, 1630, 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1619, 1618, 1617, 1616, 1615, 1614, 1613, 1612, 1611, 1610, 1609, 1608, 1607, 1606, 1605, 1604, 1603, 1602, 1601, 1600, 1599, 1598, 1597, 1596, 1595, 1594, 1593, 1592, 1591, 1590, 1589, 1588, 1587, 1586, 1585, 1584, 1583, 1582, 1581, 1580, 1579, 1578, 1577, 1576, 1575, 1574, 1573, 1572, 1571, 1570, 1569, 1568, 1567, 1566, 1565, 1564, 1563, 1562, 1561, 1560, 1559, 1558, 1557, 1556, 1555, 1554, 1553, 1552, 1551, 1550, 1549, 1548, 1547, 1546, 1545, 1544, 1543, 1542, 1541, 1540, 1539, 1538, 1537, 1536, 1535, 1534, 1533, 1532, 1531, 1530, 1529, 1528, 1527, 1526, 1525, 1524, 1523, 1522, 1521, 1520, 1519, 1518, 1517, 1516, 1515, 1514, 1513, 1512, 1511, 1510, 1509, 1508, 1507, 1506, 1505, 1504, 1503, 1502, 1501, 1500, 1499, 1498, 1497, 1496, 1495, 1494, 1493, 1492, 1491, 1490, 1489, 1488, 1487, 1486, 1485, 1484, 1483, 1482, 1481, 1480, 1479, 1478, 1477, 1476, 1475, 1474, 1473, 1472, 1471, 1470, 1469, 1468, 1467, 1466, 1465, 1464, 1463, 1462, 1461, 1460, 1459, 1458, 1457, 1456, 1455, 1454, 1453, 1452, 1451, 1450, 1449, 1448, 1447, 1446, 1445, 1444, 1443, 1442, 1441, 1440, 1439, 1438, 1437, 1436, 1435, 1434, 1433, 1432, 1431, 1430, 1429, 1428, 1427, 1426, 1425, 1424, 1423, 1422, 1421, 1420, 1419, 1418, 1417, 1416, 1415, 1414, 1413, 1412, 1411, 1410, 1409, 1408, 1407, 1406, 1405, 1404, 1403, 1402, 1401, 1400, 1399, 1398, 1397, 1396, 1395, 1394, 1393, 1392, 1391, 1390, 1389, 1388, 1387, 1386, 1385, 1384, 1383, 1382, 1381, 1380, 1379, 1378, 1377, 1376, 1375, 1374, 1373, 1372, 1371, 1370, 1369, 1368, 1367, 1366, 1365, 1364, 1363, 1362, 1361, 1360, 1359, 1358, 1357, 1356, 1355, 1354, 1353, 1352, 1351, 1350, 1349, 1348, 1347, 1346, 1345, 1344, 1343, 1342, 1341, 1340, 1339, 1338, 1337, 1336, 1335, 1334, 1333, 1332, 1331, 1330, 1329, 1328, 1327, 1326, 1325, 1324, 1323, 1322, 1321, 1320, 1319, 1318, 1317, 1316, 1315, 1314, 1313, 1312, 1311, 1310, 1309, 1308, 1307, 1306, 1305, 1304, 1303, 1302, 1301, 1300, 1299, 1298, 1297, 1296, 1295, 1294, 1293, 1292, 1291, 1290, 1289, 1288, 1287, 1286, 1285, 1284, 1283, 1282, 1281, 1280, 1279, 1278, 1277, 1276, 1275, 1274, 1273, 1272, 1271, 1270, 1269, 1268, 1267, 1266, 1265, 1264, 1263, 1262, 1261, 1260, 1259, 1258, 1257, 1256, 1255, 1254, 1253, 1252, 1251, 1250, 1249, 1248, 1247, 1246, 1245, 1244, 1243, 1242, 1241, 1240, 1239, 1238, 1237, 1236, 1235, 1234, 1233, 1232, 1231, 1230, 1229, 1228, 1227, 1226, 1225, 1224, 1223, 1222, 1221, 1220, 1219, 1218, 1217, 1216, 1215, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1207, 1206, 1205, 1204, 1203, 1202, 1201, 1200, 1199, 1198, 1197, 1196, 1195, 1194, 1193, 1192, 1191, 1190, 1189, 1188, 1187, 1186, 1185, 1184, 1183, 1182, 1181, 1180, 1179, 1178, 1177, 1176, 1175, 1174, 1173, 1172, 1171, 1170, 1169, 1168, 1167, 1166, 1165, 1164, 1163, 1162, 1161, 1160, 1159, 1158, 1157, 1156, 1155, 1154, 1153, 1152, 1151, 1150, 1149, 1148, 1147, 1146, 1145, 1144, 1143, 1142, 1141, 1140, 1139, 1138, 1137, 1136, 1135, 1134, 1133, 1132, 1131, 1130, 1129, 1128, 1127, 1126, 1125, 1124, 1123, 1122, 1121, 1120, 1119, 1118, 1117, 1116, 1115, 1114, 1113, 1112, 1111, 1110, 1109, 1108, 1107, 1106, 1105, 1104, 1103, 1102, 1101, 1100, 1099, 1098, 1097, 1096, 1095, 1094, 1093, 1092, 1091, 1090, 1089, 1088, 1087, 1086, 1085, 1084, 1083, 1082, 1081, 1080, 1079, 1078, 1077, 1076, 1075, 1074, 1073, 1072, 1071, 1070, 1069, 1068, 1067, 1066, 1065, 1064, 1063, 1062, 1061, 1060, 1059, 1058, 1057, 1056, 1055, 1054, 1053, 1052, 1051, 1050, 1049, 1048, 1047, 1046, 1045, 1044, 1043, 1042, 1041, 1040, 1039, 1038, 1037, 1036, 1035, 1034, 1033, 1032, 1031, 1030, 1029, 1028, 1027, 1026, 1025, 1024, 1023, 1022, 1021, 1020, 1019, 1018, 1017, 1016, 1015, 1014, 1013, 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1005, 1004, 1003, 1002, 1001, 1000, 999, 998, 997, 996, 995, 994, 993, 992, 991, 990, 989, 988, 987, 986, 985, 984, 983, 982, 981, 980, 979, 978, 977, 976, 975, 974, 973, 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960, 959, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945, 944, 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928, 927, 926, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911, 910, 909, 908, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894, 893, 892, 891, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 879, 878, 877, 876, 875, 874, 873, 872, 871, 870, 869, 868, 867, 866, 865, 864, 863, 862, 861, 860, 859, 858, 857, 856, 855, 854, 853, 852, 851, 850, 849, 848, 847, 846, 845, 844, 843, 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, 824, 823, 822, 821, 820, 819, 818, 817, 816, 815, 814, 813, 812, 811, 810, 809, 808, 807, 806, 805, 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999997, 99.99999997, 99.99999996, 99.99999996, 99.99999995, 99.99999994, 99.99999993, 99.99999992, 99.99999991, 99.9999999, 99.99999988, 99.99999987, 99.99999985, 99.99999982, 99.9999998, 99.99999977, 99.99999974, 99.9999997, 99.99999965, 99.9999996, 99.99999955, 99.99999948, 99.99999941, 99.99999933, 99.99999923, 99.99999912, 99.999999, 99.99999886, 99.9999987, 99.99999852, 99.99999832, 99.99999809, 99.99999782, 99.99999753, 99.99999719, 99.99999681, 99.99999637, 99.99999588, 99.99999533, 99.9999947, 99.999994, 99.9999932, 99.9999923, 99.99999128, 99.99999013, 99.99998884, 99.99998738, 99.99998574, 99.99998388, 99.9999818, 99.99997946, 99.99997682, 99.99997386, 99.99997053, 99.99996679, 99.99996259, 99.99995788, 99.99995259, 99.99994667, 99.99994002, 99.99993258, 99.99992425, 99.99991492, 99.99990448, 99.99989281, 99.99987976, 99.99986518, 99.9998489, 99.99983072, 99.99981043, 99.9997878, 99.99976256, 99.99973444, 99.9997031, 99.99966821, 99.99962938, 99.99958617, 99.99953811, 99.99948469, 99.99942534, 99.99935941, 99.99928622, 99.99920499, 99.9991149, 99.999015, 99.99890429, 99.99878165, 99.99864584, 99.99849552, 99.99832921, 99.99814529, 99.99794198, 99.99771734, 99.99746924, 99.99719533, 99.99689309, 99.9965597, 99.99619213, 99.99578704, 99.99534081, 99.99484946, 99.99430866, 99.99371371, 99.99305946, 99.99234031, 99.99155017, 99.99068242, 99.98972983, 99.98868458, 99.98753815, 99.98628129, 99.98490397, 99.98339531, 99.9817435, 99.97993575, 99.97795821, 99.97579587, 99.97343251, 99.97085057, 99.96803108, 99.96495355, 99.96159582, 99.95793402, 99.95394236, 99.94959308, 99.94485621, 99.93969953, 99.93408831, 99.92798522, 99.92135012, 99.91413985, 99.90630807, 99.89780504, 99.8885774, 99.87856793, 99.86771532, 99.8559539, 99.84321339, 99.82941862, 99.81448923, 99.79833936, 99.78087734, 99.76200538, 99.74161918, 99.71960761, 99.69585234, 99.67022744, 99.642599, 99.61282474, 99.58075355, 99.54622513, 99.50906948, 99.46910655, 99.42614572, 99.37998538, 99.33041248, 99.27720207, 99.22011685, 99.15890674, 99.09330843, 99.02304495, 98.94782527, 98.86734393, 98.78128064, 98.68929999, 98.59105112, 98.48616747, 98.3742666, 98.25495, 98.12780303, 97.99239491, 97.84827875, 97.69499171, 97.53205527, 97.35897557, 97.17524387, 96.98033715, 96.77371886, 96.55483976, 96.32313899, 96.07804525, 95.81897819, 95.5453499, 95.25656674, 94.95203121, 94.63114411, 94.29330688, 93.93792411, 93.56440634, 93.17217297, 92.76065539, 92.32930031, 91.87757329, 91.40496234, 90.91098174, 90.39517595, 89.8571236, 89.29644155, 88.71278897, 88.10587143, 87.47544487, 86.82131962, 86.14336408, 85.44150841, 84.71574783, 83.96614574, 83.19283645, 82.39602752, 81.57600174, 80.73311854, 79.86781501, 78.98060624, 78.0720852, 77.14292198, 76.19386244, 75.22572622, 74.23940418, 73.23585522, 72.21610252, 71.18122921, 70.13237361, 69.07072393, 67.99751253, 66.91400993, 65.82151843, 64.72136554, 63.61489728, 62.50347138, 61.38845042, 60.27119515, 59.15305782, 58.0353758, 56.91946537, 55.80661594, 54.69808452, 53.59509065, 52.49881178, 51.41037911, 50.33087389, 49.26132427, 48.20270262, 47.15592337, 46.12184137, 45.1012507, 44.09488396, 43.10341202, 42.12744415, 41.16752857, 40.22415335, 39.29774762, 38.38868307, 37.49727571, 36.62378784, 35.76843018, 34.93136423, 34.11270463, 33.31252172, 32.53084408, 31.76766119, 31.02292598, 30.29655751, 29.58844352, 28.898443, 28.22638866, 27.57208932, 26.93533228, 26.31588558, 25.71350007, 25.12791155, 24.55884265, 24.0060047, 23.46909942, 22.94782061, 22.44185557, 21.95088661, 21.47459227, 21.0126486, 20.56473018, 20.13051125, 19.70966655, 19.30187218, 18.9068064, 18.52415029, 18.15358834, 17.79480907, 17.44750544, 17.11137531, 16.78612181, 16.47145369, 16.16708552, 15.872738, 15.58813809, 15.31301923, 15.0471214, 14.79019125, 14.54198215, 14.30225424, 14.07077446, 13.84731652, 13.63166091, 13.42359484, 13.22291222, 13.02941359, 12.84290605, 12.66320316, 12.49012491, 12.32349757, 12.16315362, 12.00893166, 11.86067626, 11.71823789, 11.58147283, 11.45024301, 11.32441591, 11.20386448, 11.08846701, 10.97810702, 10.87267317, 10.77205912, 10.67616345, 10.58488959, 10.49814567, 10.41584443, 10.33790318, 10.26424366, 10.19479197, 10.12947851, 10.06823788, 10.01100879, 9.95773406, 9.90836046, 9.86283873, 9.82112348, 9.78317315, 9.74894995, 9.71841982, 9.69155242, 9.66832104, 9.64870261, 9.63267764, 9.62023024, 9.61134804, 9.60602225, 9.60602225, 9.61134804, 9.62023024, 9.63267764, 9.64870261, 9.66832104, 9.69155242, 9.71841982, 9.74894995, 9.78317315, 9.82112348, 9.86283873, 9.90836046, 9.95773406, 10.01100879, 10.06823788, 10.12947851, 10.19479197, 10.26424366, 10.33790318, 10.41584443, 10.49814567, 10.58488959, 10.67616345, 10.77205912, 10.87267317, 10.97810702, 11.08846701, 11.20386448, 11.32441591, 11.45024301, 11.58147283, 11.71823789, 11.86067626, 12.00893166, 12.16315362, 12.32349757, 12.49012491, 12.66320316, 12.84290605, 13.02941359, 13.22291222, 13.42359484, 13.63166091, 13.84731652, 14.07077446, 14.30225424, 14.54198215, 14.79019125, 15.0471214, 15.31301923, 15.58813809, 15.872738, 16.16708552, 16.47145369, 16.78612181, 17.11137531, 17.44750544, 17.79480907, 18.15358834, 18.52415029, 18.9068064, 19.30187218, 19.70966655, 20.13051125, 20.56473018, 21.0126486, 21.47459227, 21.95088661, 22.44185557, 22.94782061, 23.46909942, 24.0060047, 24.55884265, 25.12791155, 25.71350007, 26.31588558, 26.93533228, 27.57208932, 28.22638866, 28.898443, 29.58844352, 30.29655751, 31.02292598, 31.76766119, 32.53084408, 33.31252172, 34.11270463, 34.93136423, 35.76843018, 36.62378784, 37.49727571, 38.38868307, 39.29774762, 40.22415335, 41.16752857, 42.12744415, 43.10341202, 44.09488396, 45.1012507, 46.12184137, 47.15592337, 48.20270262, 49.26132427, 50.33087389, 51.41037911, 52.49881178, 53.59509065, 54.69808452, 55.80661594, 56.91946537, 58.0353758, 59.15305782, 60.27119515, 61.38845042, 62.50347138, 63.61489728, 64.72136554, 65.82151843, 66.91400993, 67.99751253, 69.07072393, 70.13237361, 71.18122921, 72.21610252, 73.23585522, 74.23940418, 75.22572622, 76.19386244, 77.14292198, 78.0720852, 78.98060624, 79.86781501, 80.73311854, 81.57600174, 82.39602752, 83.19283645, 83.96614574, 84.71574783, 85.44150841, 86.14336408, 86.82131962, 87.47544487, 88.10587143, 88.71278897, 89.29644155, 89.8571236, 90.39517595, 90.91098174, 91.40496234, 91.87757329, 92.32930031, 92.76065539, 93.17217297, 93.56440634, 93.93792411, 94.29330688, 94.63114411, 94.95203121, 95.25656674, 95.5453499, 95.81897819, 96.07804525, 96.32313899, 96.55483976, 96.77371886, 96.98033715, 97.17524387, 97.35897557, 97.53205527, 97.69499171, 97.84827875, 97.99239491, 98.12780303, 98.25495, 98.3742666, 98.48616747, 98.59105112, 98.68929999, 98.78128064, 98.86734393, 98.94782527, 99.02304495, 99.09330843, 99.15890674, 99.22011685, 99.27720207, 99.33041248, 99.37998538, 99.42614572, 99.46910655, 99.50906948, 99.54622513, 99.58075355, 99.61282474, 99.642599, 99.67022744, 99.69585234, 99.71960761, 99.74161918, 99.76200538, 99.78087734, 99.79833936, 99.81448923, 99.82941862, 99.84321339, 99.8559539, 99.86771532, 99.87856793, 99.8885774, 99.89780504, 99.90630807, 99.91413985, 99.92135012, 99.92798522, 99.93408831, 99.93969953, 99.94485621, 99.94959308, 99.95394236, 99.95793402, 99.96159582, 99.96495355, 99.96803108, 99.97085057, 99.97343251, 99.97579587, 99.97795821, 99.97993575, 99.9817435, 99.98339531, 99.98490397, 99.98628129, 99.98753815, 99.98868458, 99.98972983, 99.99068242, 99.99155017, 99.99234031, 99.99305946, 99.99371371, 99.99430866, 99.99484946, 99.99534081, 99.99578704, 99.99619213, 99.9965597, 99.99689309, 99.99719533, 99.99746924, 99.99771734, 99.99794198, 99.99814529, 99.99832921, 99.99849552, 99.99864584, 99.99878165, 99.99890429, 99.999015, 99.9991149, 99.99920499, 99.99928622, 99.99935941, 99.99942534, 99.99948469, 99.99953811, 99.99958617, 99.99962938, 99.99966821, 99.9997031, 99.99973444, 99.99976256, 99.9997878, 99.99981043, 99.99983072, 99.9998489, 99.99986518, 99.99987976, 99.99989281, 99.99990448, 99.99991492, 99.99992425, 99.99993258, 99.99994002, 99.99994667, 99.99995259, 99.99995788, 99.99996259, 99.99996679, 99.99997053, 99.99997386, 99.99997682, 99.99997946, 99.9999818, 99.99998388, 99.99998574, 99.99998738, 99.99998884, 99.99999013, 99.99999128, 99.9999923, 99.9999932, 99.999994, 99.9999947, 99.99999533, 99.99999588, 99.99999637, 99.99999681, 99.99999719, 99.99999753, 99.99999782, 99.99999809, 99.99999832, 99.99999852, 99.9999987, 99.99999886, 99.999999, 99.99999912, 99.99999923, 99.99999933, 99.99999941, 99.99999948, 99.99999955, 99.9999996, 99.99999965, 99.9999997, 99.99999974, 99.99999977, 99.9999998, 99.99999982, 99.99999985, 99.99999987, 99.99999988, 99.9999999, 99.99999991, 99.99999992, 99.99999993, 99.99999994, 99.99999995, 99.99999996, 99.99999996, 99.99999997, 99.99999997, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999991, 99.99999991, 99.99999991, 99.99999991, 99.9999999, 99.9999999, 99.9999999, 99.99999989, 99.99999989, 99.99999989, 99.99999988, 99.99999988, 99.99999988, 99.99999987, 99.99999987, 99.99999986, 99.99999986, 99.99999986, 99.99999985, 99.99999985, 99.99999984, 99.99999984, 99.99999983, 99.99999983, 99.99999982, 99.99999982, 99.99999981, 99.9999998, 99.9999998, 99.99999979, 99.99999979, 99.99999978, 99.99999977, 99.99999977, 99.99999976, 99.99999975, 99.99999974, 99.99999974, 99.99999973, 99.99999972, 99.99999971, 99.9999997, 99.99999969, 99.99999968, 99.99999967, 99.99999966, 99.99999965, 99.99999964, 99.99999963, 99.99999962, 99.99999961, 99.9999996, 99.99999959, 99.99999957, 99.99999956, 99.99999955, 99.99999954, 99.99999952, 99.99999951, 99.99999949, 99.99999948, 99.99999946, 99.99999945, 99.99999943, 99.99999941, 99.9999994, 99.99999938, 99.99999936, 99.99999934, 99.99999932, 99.9999993, 99.99999928, 99.99999926, 99.99999924, 99.99999921, 99.99999919, 99.99999917, 99.99999914, 99.99999912, 99.99999909, 99.99999907, 99.99999904, 99.99999901, 99.99999898, 99.99999895, 99.99999892, 99.99999889, 99.99999886, 99.99999882, 99.99999879, 99.99999875, 99.99999872, 99.99999868, 99.99999864, 99.9999986, 99.99999856, 99.99999852, 99.99999848, 99.99999843, 99.99999839, 99.99999834, 99.9999983, 99.99999825, 99.9999982, 99.99999814, 99.99999809, 99.99999804, 99.99999798, 99.99999792, 99.99999786, 99.9999978, 99.99999774, 99.99999767, 99.99999761, 99.99999754, 99.99999747, 99.9999974, 99.99999732, 99.99999725, 99.99999717, 99.99999709, 99.99999701, 99.99999692, 99.99999684, 99.99999675, 99.99999666, 99.99999656, 99.99999646, 99.99999637, 99.99999626, 99.99999616, 99.99999605, 99.99999594, 99.99999583, 99.99999571, 99.99999559, 99.99999547, 99.99999534, 99.99999521, 99.99999508, 99.99999494, 99.9999948, 99.99999465, 99.99999451, 99.99999435, 99.9999942, 99.99999404, 99.99999387, 99.9999937, 99.99999353, 99.99999335, 99.99999317, 99.99999298, 99.99999278, 99.99999259, 99.99999238, 99.99999217, 99.99999196, 99.99999174, 99.99999151, 99.99999128, 99.99999104, 99.9999908, 99.99999055, 99.99999029, 99.99999003, 99.99998975, 99.99998948, 99.99998919, 99.9999889, 99.9999886, 99.99998829, 99.99998797, 99.99998764, 99.99998731, 99.99998697, 99.99998662, 99.99998626, 99.99998589, 99.99998551, 99.99998512, 99.99998472, 99.99998431, 99.99998389, 99.99998346, 99.99998301, 99.99998256, 99.9999821, 99.99998162, 99.99998113, 99.99998063, 99.99998011, 99.99997958, 99.99997904, 99.99997848, 99.99997791, 99.99997733, 99.99997673, 99.99997611, 99.99997548, 99.99997484, 99.99997417, 99.99997349, 99.9999728, 99.99997208, 99.99997135, 99.9999706, 99.99996983, 99.99996904, 99.99996823, 99.9999674, 99.99996654, 99.99996567, 99.99996478, 99.99996386, 99.99996292, 99.99996196, 99.99996097, 99.99995995, 99.99995892, 99.99995785, 99.99995676, 99.99995564, 99.9999545, 99.99995333, 99.99995212, 99.99995089, 99.99994963, 99.99994833, 99.999947, 99.99994565, 99.99994425, 99.99994282, 99.99994136, 99.99993986, 99.99993833, 99.99993675, 99.99993514, 99.99993349, 99.9999318, 99.99993007, 99.99992829, 99.99992647, 99.99992461, 99.9999227, 99.99992075, 99.99991874, 99.99991669, 99.99991459, 99.99991244, 99.99991023, 99.99990798, 99.99990567, 99.9999033, 99.99990087, 99.99989839, 99.99989585, 99.99989324, 99.99989058, 99.99988785, 99.99988505, 99.99988219, 99.99987926, 99.99987625, 99.99987318, 99.99987004, 99.99986681, 99.99986352, 99.99986014, 99.99985668, 99.99985315, 99.99984952, 99.99984582, 99.99984202, 99.99983814, 99.99983416, 99.99983009, 99.99982592, 99.99982166, 99.99981729, 99.99981283, 99.99980826, 99.99980358, 99.99979879, 99.99979389, 99.99978888, 99.99978375, 99.9997785, 99.99977312, 99.99976763, 99.999762, 99.99975625, 99.99975036, 99.99974433, 99.99973817, 99.99973186, 99.99972541, 99.99971881, 99.99971206, 99.99970515, 99.99969809, 99.99969086, 99.99968347, 99.9996759, 99.99966817, 99.99966026, 99.99965216, 99.99964389, 99.99963542, 99.99962676, 99.99961791, 99.99960885, 99.99959959, 99.99959012, 99.99958044, 99.99957054, 99.99956041, 99.99955005, 99.99953947, 99.99952864, 99.99951757, 99.99950626, 99.99949469, 99.99948286, 99.99947076, 99.9994584, 99.99944576, 99.99943284, 99.99941963, 99.99940613, 99.99939232, 99.99937822, 99.9993638, 99.99934906, 99.99933399, 99.99931859, 99.99930285, 99.99928677, 99.99927033, 99.99925353, 99.99923636, 99.99921881, 99.99920088, 99.99918256, 99.99916384, 99.99914471, 99.99912516, 99.99910519, 99.99908478, 99.99906393, 99.99904262, 99.99902086, 99.99899862, 99.9989759, 99.99895269, 99.99892898, 99.99890476, 99.99888002, 99.99885475, 99.99882893, 99.99880256, 99.99877562, 99.99874811, 99.99872001, 99.99869131, 99.998662, 99.99863207, 99.99860149, 99.99857027, 99.99853838, 99.99850582, 99.99847257, 99.99843862, 99.99840395, 99.99836855, 99.9983324, 99.99829549, 99.99825781, 99.99821933, 99.99818005, 99.99813994, 99.998099, 99.9980572, 99.99801452, 99.99797096, 99.99792649, 99.9978811, 99.99783476, 99.99778747, 99.99773919, 99.99768991, 99.99763962, 99.99758829, 99.9975359, 99.99748243, 99.99742786, 99.99737217, 99.99731533, 99.99725734, 99.99719815, 99.99713776, 99.99707613, 99.99701325, 99.99694908, 99.99688361, 99.99681682, 99.99674866, 99.99667913, 99.99660818, 99.99653581, 99.99646197, 99.99638665, 99.9963098, 99.99623142, 99.99615145, 99.99606989, 99.99598669, 99.99590182, 99.99581526, 99.99572697, 99.99563692, 99.99554508, 99.99545142, 99.99535589, 99.99525847, 99.99515912, 99.9950578, 99.99495448, 99.99484913, 99.9947417, 99.99463215, 99.99452045, 99.99440656, 99.99429043, 99.99417204, 99.99405132, 99.99392825, 99.99380278, 99.99367487, 99.99354447, 99.99341153, 99.99327602, 99.99313788, 99.99299707, 99.99285354, 99.99270723, 99.99255811, 99.99240612, 99.99225121, 99.99209332, 99.9919324, 99.99176841, 99.99160128, 99.99143095, 99.99125738, 99.99108051, 99.99090027, 99.99071661, 99.99052946, 99.99033877, 99.99014447, 99.9899465, 99.9897448, 99.9895393, 99.98932993, 99.98911662, 99.98889932, 99.98867794, 99.98845242, 99.98822269, 99.98798867, 99.98775029, 99.98750747, 99.98726014, 99.98700822, 99.98675163, 99.98649029, 99.98622412, 99.98595304, 99.98567696, 99.9853958, 99.98510948, 99.9848179, 99.98452097, 99.98421861, 99.98391072, 99.98359722, 99.983278, 99.98295297, 99.98262203, 99.98228509, 99.98194204, 99.98159278, 99.98123721, 99.98087522, 99.98050671, 99.98013157, 99.97974968, 99.97936095, 99.97896525, 99.97856246, 99.97815249, 99.97773519, 99.97731047, 99.97687818, 99.97643822, 99.97599045, 99.97553476, 99.975071, 99.97459905, 99.97411878, 99.97363005, 99.97313273, 99.97262668, 99.97211175, 99.97158781, 99.97105471, 99.9705123, 99.96996044, 99.96939898, 99.96882776, 99.96824663, 99.96765543, 99.967054, 99.96644218, 99.96581981, 99.96518672, 99.96454274, 99.9638877, 99.96322144, 99.96254376, 99.96185451, 99.96115349, 99.96044052, 99.95971542, 99.958978, 99.95822808, 99.95746545, 99.95668992, 99.9559013, 99.95509938, 99.95428396, 99.95345483, 99.95261179, 99.95175463, 99.95088312, 99.94999706, 99.94909622, 99.94818037, 99.9472493, 99.94630278, 99.94534056, 99.94436242, 99.94336813, 99.94235743, 99.94133008, 99.94028584, 99.93922445, 99.93814567, 99.93704924, 99.93593488, 99.93480235, 99.93365138, 99.93248168, 99.931293, 99.93008505, 99.92885756, 99.92761023, 99.92634278, 99.92505492, 99.92374635, 99.92241679, 99.92106591, 99.91969342, 99.91829901, 99.91688236, 99.91544316, 99.91398109, 99.91249582, 99.91098701, 99.90945435, 99.90789749, 99.90631609, 99.9047098, 99.90307828, 99.90142117, 99.89973812, 99.89802876, 99.89629273, 99.89452966, 99.89273917, 99.89092088, 99.88907441, 99.88719938, 99.88529538, 99.88336203, 99.88139892, 99.87940565, 99.8773818, 99.87532697, 99.87324072, 99.87112264, 99.8689723, 99.86678925, 99.86457308, 99.86232332, 99.86003953, 99.85772126, 99.85536804, 99.85297942, 99.85055492, 99.84809408, 99.84559641, 99.84306142, 99.84048864, 99.83787755, 99.83522768, 99.83253849, 99.8298095, 99.82704018, 99.82423001, 99.82137846, 99.818485, 99.81554909, 99.81257019, 99.80954775, 99.80648122, 99.80337003, 99.80021361, 99.79701141, 99.79376283, 99.79046729, 99.78712421, 99.78373299, 99.78029303, 99.77680372, 99.77326445, 99.76967459, 99.76603353, 99.76234063, 99.75859526, 99.75479677, 99.75094451, 99.74703782, 99.74307605, 99.73905852, 99.73498457, 99.7308535, 99.72666463, 99.72241727, 99.71811072, 99.71374427, 99.70931721, 99.70482881, 99.70027836, 99.69566511, 99.69098833, 99.68624728, 99.6814412, 99.67656933, 99.67163091, 99.66662516, 99.66155131, 99.65640856, 99.65119613, 99.64591322, 99.64055901, 99.63513271, 99.62963348, 99.6240605, 99.61841293, 99.61268995, 99.60689069, 99.6010143, 99.59505993, 99.5890267, 99.58291375, 99.57672018, 99.57044511, 99.56408764, 99.55764687, 99.55112188, 99.54451177, 99.53781561, 99.53103247, 99.5241614, 99.51720147, 99.51015172, 99.50301119, 99.49577891, 99.48845392, 99.48103523, 99.47352185, 99.4659128, 99.45820706, 99.45040363, 99.4425015, 99.43449964, 99.42639703, 99.41819262, 99.40988537, 99.40147424, 99.39295816, 99.38433607, 99.3756069, 99.36676958, 99.35782301, 99.34876611, 99.33959778, 99.3303169, 99.32092238, 99.31141309, 99.3017879, 99.29204569, 99.2821853, 99.27220561, 99.26210545, 99.25188367, 99.24153911, 99.23107058, 99.22047691, 99.20975692, 99.19890941, 99.1879332, 99.17682707, 99.16558981, 99.15422021, 99.14271705, 99.13107909, 99.11930511, 99.10739387, 99.09534411, 99.08315458, 99.07082403, 99.0583512, 99.04573481, 99.03297359, 99.02006625, 99.00701152, 98.99380811, 98.9804547, 98.96695001, 98.95329273, 98.93948153, 98.92551512, 98.91139216, 98.89711133, 98.88267129, 98.86807071, 98.85330826, 98.83838257, 98.82329231, 98.80803612, 98.79261264, 98.77702051, 98.76125837, 98.74532484, 98.72921854, 98.71293811, 98.69648216, 98.6798493, 98.66303815, 98.64604732, 98.62887542, 98.61152103, 98.59398278, 98.57625925, 98.55834903, 98.54025073, 98.52196293, 98.50348421, 98.48481317, 98.46594839, 98.44688845, 98.42763193, 98.40817741, 98.38852347, 98.36866868, 98.34861162, 98.32835087, 98.30788499, 98.28721257, 98.26633217, 98.24524237, 98.22394175, 98.20242886, 98.18070229, 98.15876061, 98.1366024, 98.11422623, 98.09163067, 98.0688143, 98.04577571, 98.02251347, 97.99902616, 97.97531236, 97.95137067, 97.92719967, 97.90279794, 97.87816409, 97.85329671, 97.8281944, 97.80285576, 97.7772794, 97.75146392, 97.72540794, 97.69911007, 97.67256894, 97.64578318, 97.61875141, 97.59147228, 97.56394441, 97.53616646, 97.50813708, 97.47985493, 97.45131868, 97.42252698, 97.39347852, 97.36417199, 97.33460607, 97.30477945, 97.27469085, 97.24433898, 97.21372256, 97.18284032, 97.15169098, 97.12027331, 97.08858606, 97.05662798, 97.02439785, 96.99189445, 96.95911659, 96.92606305, 96.89273265, 96.85912422, 96.82523659, 96.7910686, 96.75661911, 96.721887, 96.68687113, 96.65157041, 96.61598374, 96.58011003, 96.54394822, 96.50749724, 96.47075606, 96.43372365, 96.39639898, 96.35878106, 96.3208689, 96.28266153, 96.24415799, 96.20535734, 96.16625865, 96.126861, 96.08716351, 96.0471653, 96.00686549, 95.96626325, 95.92535775, 95.88414817, 95.84263372, 95.80081362, 95.75868712, 95.71625347, 95.67351195, 95.63046185, 95.5871025, 95.54343323, 95.4994534, 95.45516237, 95.41055953, 95.36564432, 95.32041615, 95.27487449, 95.22901881, 95.18284861, 95.1363634, 95.08956273, 95.04244616, 94.99501328, 94.94726369, 94.89919701, 94.85081291, 94.80211106, 94.75309115, 94.70375291, 94.65409608, 94.60412044, 94.55382577, 94.50321189, 94.45227864, 94.4010259, 94.34945355, 94.29756151, 94.24534972, 94.19281815, 94.13996679, 94.08679566, 94.03330481, 93.9794943, 93.92536424, 93.87091474, 93.81614597, 93.76105809, 93.70565131, 93.64992586, 93.59388201, 93.53752003, 93.48084025, 93.423843, 93.36652866, 93.30889762, 93.25095031, 93.19268718, 93.13410873, 93.07521545, 93.01600788, 92.95648661, 92.89665222, 92.83650535, 92.77604664, 92.71527679, 92.65419651, 92.59280654, 92.53110765, 92.46910065, 92.40678637, 92.34416568, 92.28123946, 92.21800863, 92.15447415, 92.090637, 92.02649819, 91.96205876, 91.89731977, 91.83228234, 91.76694759, 91.70131668, 91.6353908, 91.56917118, 91.50265906, 91.43585573, 91.36876249, 91.30138069, 91.23371169, 91.16575691, 91.09751776, 91.02899572, 90.96019226, 90.89110891, 90.82174722, 90.75210877, 90.68219517, 90.61200806, 90.5415491, 90.47081999, 90.39982247, 90.32855828, 90.25702921, 90.18523707, 90.11318371, 90.040871, 89.96830085, 89.89547517, 89.82239593, 89.74906511, 89.67548473, 89.60165683, 89.52758348, 89.45326678, 89.37870885, 89.30391184, 89.22887794, 89.15360935, 89.07810831, 89.00237708, 88.92641794, 88.85023321, 88.77382522, 88.69719635, 88.62034898, 88.54328554, 88.46600846, 88.3885202, 88.31082327, 88.23292018, 88.15481347, 88.0765057, 87.99799946, 87.91929737, 87.84040206, 87.76131619, 87.68204243, 87.6025835, 87.52294212, 87.44312104, 87.36312302, 87.28295085, 87.20260735, 87.12209535, 87.0414177, 86.96057726, 86.87957694, 86.79841964, 86.71710828, 86.63564582, 86.55403521, 86.47227945, 86.39038151, 86.30834443, 86.22617123, 86.14386494, 86.06142864, 85.9788654, 85.89617829, 85.81337042, 85.7304449, 85.64740485, 85.56425341, 85.4809937, 85.39762889, 85.31416212, 85.23059656, 85.14693538, 85.06318175, 84.97933884, 84.89540984, 84.81139791, 84.72730623, 84.64313796, 84.55889628, 84.47458434, 84.39020528, 84.30576225, 84.22125835, 84.1366967, 84.05208038, 83.96741243, 83.88269591, 83.7979338, 83.71312907, 83.62828464, 83.54340341, 83.45848819, 83.37354177, 83.28856686, 83.20356612, 83.11854211, 83.03349732, 82.94843417, 82.86335494, 82.77826183, 82.69315691, 82.60804212, 82.52291927, 82.43778998, 82.35265575, 82.26751784, 82.18237735, 82.09723514, 82.01209183, 81.9269478, 81.84180313, 81.75665759, 81.67151065, 81.58636139, 81.50120852, 81.41605033, 81.33088467, 81.24570886, 81.16051975, 81.07531359, 80.99008602, 80.90483202, 80.81954587, 80.73422109, 80.64885037, 80.56342551, 80.47793738, 80.39237582, 80.30672961, 80.22098631, 80.13513228, 80.0491525, 79.96303054, 79.87674843, 79.79028656, 79.70362357, 79.61673623, 79.52959933, 79.44218552, 79.3544652, 79.26640636, 79.17797442, 79.0891321, 78.99983921, 78.9100525, 78.81972547, 78.72880817, 78.63724699, 78.54498449, 78.4519591, 78.35810497, 78.2633517, 78.16762409, 78.07084187, 77.97291949, 77.87376577, 77.77328371, 77.67137012, 77.56791537, 77.46280309, 77.35590987, 77.24710492, 77.1362498, 77.02319808, 76.90779502, 76.78987731, 76.66927269, 76.5457997, 76.41926738, 76.28947496, 76.15621162, 76.01925621, 75.87837705, 75.7333317, 75.58386677, 75.4297178, 75.27060914, 75.10625386, 74.93635376, 74.76059941, 74.57867018, 74.3902345, 74.19495, 73.99246387, 73.78241324, 73.56442569, 73.3381198, 73.10310588, 72.85898676, 72.60535872, 72.34181254, 72.06793469, 71.78330866, 71.48751635, 71.18013977, 70.8607627, 70.52897259, 70.18436261, 69.82653381, 69.45509737, 69.0696771, 68.6699119, 68.25545845, 67.82599395, 67.38121887, 66.92085987, 66.44467264, 65.95244483, 65.44399887, 64.91919486, 64.37793322, 63.82015738, 63.24585622, 62.65506635, 62.04787416, 61.42441767, 60.78488802, 60.12953066, 59.45864624, 58.77259103, 58.07177704, 57.35667166, 56.62779688, 55.88572813, 55.13109256, 54.364567, 53.58687549, 52.79878628, 52.00110862, 51.19468907, 50.38040753, 49.559173, 48.73191908, 47.89959932, 47.06318239, 46.22364715, 45.38197778, 44.53915878, 43.69617018, 42.85398279, 42.01355361, 41.1758215, 40.34170305, 39.51208874, 38.68783941, 37.86978311, 37.05871217, 36.25538082, 35.46050301, 34.67475069, 33.89875245, 33.13309249, 32.37831, 31.63489879, 30.90330731, 30.18393892, 29.47715249, 28.78326313, 28.10254332, 27.43522407, 26.78149634, 26.1415126, 25.51538849, 24.9032046, 24.3050083, 23.72081565, 23.15061333, 22.59436058, 22.05199117, 21.52341532, 21.00852158, 20.50717877, 20.0192377, 19.544533, 19.08288481, 18.63410034, 18.19797551, 17.77429633, 17.36284038, 16.96337805, 16.57567382, 16.19948736, 15.83457467, 15.48068899, 15.1375818, 14.8050036, 14.4827047, 14.17043594, 13.86794933, 13.5749986, 13.29133975, 13.0167315, 12.75093572, 12.49371778, 12.24484687, 12.00409629, 11.77124369, 11.54607126, 11.32836595, 11.11791952, 10.91452874, 10.71799545, 10.52812661, 10.34473436, 10.16763605, 9.99665424, 9.8316167, 9.67235638, 9.5187114, 9.37052499, 9.22764546, 9.08992611, 8.95722521, 8.82940588, 8.70633606, 8.5878884, 8.4739402, 8.3643733, 8.25907401, 8.15793304, 8.06084538, 7.96771022, 7.87843088, 7.7929147, 7.71107298, 7.63282085, 7.55807725, 7.48676478, 7.41880969, 7.35414173, 7.29269414, 7.23440353, 7.17920983, 7.12705625, 7.07788914, 7.03165802, 6.98831543, 6.94781697, 6.91012116, 6.87518945, 6.84298614, 6.81347834, 6.78663598, 6.76243167, 6.74084078, 6.72184133, 6.70541399, 6.69154207, 6.68021148, 6.6714107, 6.6651308, 6.66136541, 6.66136541, 6.6651308, 6.6714107, 6.68021148, 6.69154207, 6.70541399, 6.72184133, 6.74084078, 6.76243167, 6.78663598, 6.81347834, 6.84298614, 6.87518945, 6.91012116, 6.94781697, 6.98831543, 7.03165802, 7.07788914, 7.12705625, 7.17920983, 7.23440353, 7.29269414, 7.35414173, 7.41880969, 7.48676478, 7.55807725, 7.63282085, 7.71107298, 7.7929147, 7.87843088, 7.96771022, 8.06084538, 8.15793304, 8.25907401, 8.3643733, 8.4739402, 8.5878884, 8.70633606, 8.82940588, 8.95722521, 9.08992611, 9.22764546, 9.37052499, 9.5187114, 9.67235638, 9.8316167, 9.99665424, 10.16763605, 10.34473436, 10.52812661, 10.71799545, 10.91452874, 11.11791952, 11.32836595, 11.54607126, 11.77124369, 12.00409629, 12.24484687, 12.49371778, 12.75093572, 13.0167315, 13.29133975, 13.5749986, 13.86794933, 14.17043594, 14.4827047, 14.8050036, 15.1375818, 15.48068899, 15.83457467, 16.19948736, 16.57567382, 16.96337805, 17.36284038, 17.77429633, 18.19797551, 18.63410034, 19.08288481, 19.544533, 20.0192377, 20.50717877, 21.00852158, 21.52341532, 22.05199117, 22.59436058, 23.15061333, 23.72081565, 24.3050083, 24.9032046, 25.51538849, 26.1415126, 26.78149634, 27.43522407, 28.10254332, 28.78326313, 29.47715249, 30.18393892, 30.90330731, 31.63489879, 32.37831, 33.13309249, 33.89875245, 34.67475069, 35.46050301, 36.25538082, 37.05871217, 37.86978311, 38.68783941, 39.51208874, 40.34170305, 41.1758215, 42.01355361, 42.85398279, 43.69617018, 44.53915878, 45.38197778, 46.22364715, 47.06318239, 47.89959932, 48.73191908, 49.559173, 50.38040753, 51.19468907, 52.00110862, 52.79878628, 53.58687549, 54.364567, 55.13109256, 55.88572813, 56.62779688, 57.35667166, 58.07177704, 58.77259103, 59.45864624, 60.12953066, 60.78488802, 61.42441767, 62.04787416, 62.65506635, 63.24585622, 63.82015738, 64.37793322, 64.91919486, 65.44399887, 65.95244483, 66.44467264, 66.92085987, 67.38121887, 67.82599395, 68.25545845, 68.6699119, 69.0696771, 69.45509737, 69.82653381, 70.18436261, 70.52897259, 70.8607627, 71.18013977, 71.48751635, 71.78330866, 72.06793469, 72.34181254, 72.60535872, 72.85898676, 73.10310588, 73.3381198, 73.56442569, 73.78241324, 73.99246387, 74.19495, 74.3902345, 74.57867018, 74.76059941, 74.93635376, 75.10625386, 75.27060914, 75.4297178, 75.58386677, 75.7333317, 75.87837705, 76.01925621, 76.15621162, 76.28947496, 76.41926738, 76.5457997, 76.66927269, 76.78987731, 76.90779502, 77.02319808, 77.1362498, 77.24710492, 77.35590987, 77.46280309, 77.56791537, 77.67137012, 77.77328371, 77.87376577, 77.97291949, 78.07084187, 78.16762409, 78.2633517, 78.35810497, 78.4519591, 78.54498449, 78.63724699, 78.72880817, 78.81972547, 78.9100525, 78.99983921, 79.0891321, 79.17797442, 79.26640636, 79.3544652, 79.44218552, 79.52959933, 79.61673623, 79.70362357, 79.79028656, 79.87674843, 79.96303054, 80.0491525, 80.13513228, 80.22098631, 80.30672961, 80.39237582, 80.47793738, 80.56342551, 80.64885037, 80.73422109, 80.81954587, 80.90483202, 80.99008602, 81.07531359, 81.16051975, 81.24570886, 81.33088467, 81.41605033, 81.50120852, 81.58636139, 81.67151065, 81.75665759, 81.84180313, 81.9269478, 82.01209183, 82.09723514, 82.18237735, 82.26751784, 82.35265575, 82.43778998, 82.52291927, 82.60804212, 82.69315691, 82.77826183, 82.86335494, 82.94843417, 83.03349732, 83.11854211, 83.20356612, 83.28856686, 83.37354177, 83.45848819, 83.54340341, 83.62828464, 83.71312907, 83.7979338, 83.88269591, 83.96741243, 84.05208038, 84.1366967, 84.22125835, 84.30576225, 84.39020528, 84.47458434, 84.55889628, 84.64313796, 84.72730623, 84.81139791, 84.89540984, 84.97933884, 85.06318175, 85.14693538, 85.23059656, 85.31416212, 85.39762889, 85.4809937, 85.56425341, 85.64740485, 85.7304449, 85.81337042, 85.89617829, 85.9788654, 86.06142864, 86.14386494, 86.22617123, 86.30834443, 86.39038151, 86.47227945, 86.55403521, 86.63564582, 86.71710828, 86.79841964, 86.87957694, 86.96057726, 87.0414177, 87.12209535, 87.20260735, 87.28295085, 87.36312302, 87.44312104, 87.52294212, 87.6025835, 87.68204243, 87.76131619, 87.84040206, 87.91929737, 87.99799946, 88.0765057, 88.15481347, 88.23292018, 88.31082327, 88.3885202, 88.46600846, 88.54328554, 88.62034898, 88.69719635, 88.77382522, 88.85023321, 88.92641794, 89.00237708, 89.07810831, 89.15360935, 89.22887794, 89.30391184, 89.37870885, 89.45326678, 89.52758348, 89.60165683, 89.67548473, 89.74906511, 89.82239593, 89.89547517, 89.96830085, 90.040871, 90.11318371, 90.18523707, 90.25702921, 90.32855828, 90.39982247, 90.47081999, 90.5415491, 90.61200806, 90.68219517, 90.75210877, 90.82174722, 90.89110891, 90.96019226, 91.02899572, 91.09751776, 91.16575691, 91.23371169, 91.30138069, 91.36876249, 91.43585573, 91.50265906, 91.56917118, 91.6353908, 91.70131668, 91.76694759, 91.83228234, 91.89731977, 91.96205876, 92.02649819, 92.090637, 92.15447415, 92.21800863, 92.28123946, 92.34416568, 92.40678637, 92.46910065, 92.53110765, 92.59280654, 92.65419651, 92.71527679, 92.77604664, 92.83650535, 92.89665222, 92.95648661, 93.01600788, 93.07521545, 93.13410873, 93.19268718, 93.25095031, 93.30889762, 93.36652866, 93.423843, 93.48084025, 93.53752003, 93.59388201, 93.64992586, 93.70565131, 93.76105809, 93.81614597, 93.87091474, 93.92536424, 93.9794943, 94.03330481, 94.08679566, 94.13996679, 94.19281815, 94.24534972, 94.29756151, 94.34945355, 94.4010259, 94.45227864, 94.50321189, 94.55382577, 94.60412044, 94.65409608, 94.70375291, 94.75309115, 94.80211106, 94.85081291, 94.89919701, 94.94726369, 94.99501328, 95.04244616, 95.08956273, 95.1363634, 95.18284861, 95.22901881, 95.27487449, 95.32041615, 95.36564432, 95.41055953, 95.45516237, 95.4994534, 95.54343323, 95.5871025, 95.63046185, 95.67351195, 95.71625347, 95.75868712, 95.80081362, 95.84263372, 95.88414817, 95.92535775, 95.96626325, 96.00686549, 96.0471653, 96.08716351, 96.126861, 96.16625865, 96.20535734, 96.24415799, 96.28266153, 96.3208689, 96.35878106, 96.39639898, 96.43372365, 96.47075606, 96.50749724, 96.54394822, 96.58011003, 96.61598374, 96.65157041, 96.68687113, 96.721887, 96.75661911, 96.7910686, 96.82523659, 96.85912422, 96.89273265, 96.92606305, 96.95911659, 96.99189445, 97.02439785, 97.05662798, 97.08858606, 97.12027331, 97.15169098, 97.18284032, 97.21372256, 97.24433898, 97.27469085, 97.30477945, 97.33460607, 97.36417199, 97.39347852, 97.42252698, 97.45131868, 97.47985493, 97.50813708, 97.53616646, 97.56394441, 97.59147228, 97.61875141, 97.64578318, 97.67256894, 97.69911007, 97.72540794, 97.75146392, 97.7772794, 97.80285576, 97.8281944, 97.85329671, 97.87816409, 97.90279794, 97.92719967, 97.95137067, 97.97531236, 97.99902616, 98.02251347, 98.04577571, 98.0688143, 98.09163067, 98.11422623, 98.1366024, 98.15876061, 98.18070229, 98.20242886, 98.22394175, 98.24524237, 98.26633217, 98.28721257, 98.30788499, 98.32835087, 98.34861162, 98.36866868, 98.38852347, 98.40817741, 98.42763193, 98.44688845, 98.46594839, 98.48481317, 98.50348421, 98.52196293, 98.54025073, 98.55834903, 98.57625925, 98.59398278, 98.61152103, 98.62887542, 98.64604732, 98.66303815, 98.6798493, 98.69648216, 98.71293811, 98.72921854, 98.74532484, 98.76125837, 98.77702051, 98.79261264, 98.80803612, 98.82329231, 98.83838257, 98.85330826, 98.86807071, 98.88267129, 98.89711133, 98.91139216, 98.92551512, 98.93948153, 98.95329273, 98.96695001, 98.9804547, 98.99380811, 99.00701152, 99.02006625, 99.03297359, 99.04573481, 99.0583512, 99.07082403, 99.08315458, 99.09534411, 99.10739387, 99.11930511, 99.13107909, 99.14271705, 99.15422021, 99.16558981, 99.17682707, 99.1879332, 99.19890941, 99.20975692, 99.22047691, 99.23107058, 99.24153911, 99.25188367, 99.26210545, 99.27220561, 99.2821853, 99.29204569, 99.3017879, 99.31141309, 99.32092238, 99.3303169, 99.33959778, 99.34876611, 99.35782301, 99.36676958, 99.3756069, 99.38433607, 99.39295816, 99.40147424, 99.40988537, 99.41819262, 99.42639703, 99.43449964, 99.4425015, 99.45040363, 99.45820706, 99.4659128, 99.47352185, 99.48103523, 99.48845392, 99.49577891, 99.50301119, 99.51015172, 99.51720147, 99.5241614, 99.53103247, 99.53781561, 99.54451177, 99.55112188, 99.55764687, 99.56408764, 99.57044511, 99.57672018, 99.58291375, 99.5890267, 99.59505993, 99.6010143, 99.60689069, 99.61268995, 99.61841293, 99.6240605, 99.62963348, 99.63513271, 99.64055901, 99.64591322, 99.65119613, 99.65640856, 99.66155131, 99.66662516, 99.67163091, 99.67656933, 99.6814412, 99.68624728, 99.69098833, 99.69566511, 99.70027836, 99.70482881, 99.70931721, 99.71374427, 99.71811072, 99.72241727, 99.72666463, 99.7308535, 99.73498457, 99.73905852, 99.74307605, 99.74703782, 99.75094451, 99.75479677, 99.75859526, 99.76234063, 99.76603353, 99.76967459, 99.77326445, 99.77680372, 99.78029303, 99.78373299, 99.78712421, 99.79046729, 99.79376283, 99.79701141, 99.80021361, 99.80337003, 99.80648122, 99.80954775, 99.81257019, 99.81554909, 99.818485, 99.82137846, 99.82423001, 99.82704018, 99.8298095, 99.83253849, 99.83522768, 99.83787755, 99.84048864, 99.84306142, 99.84559641, 99.84809408, 99.85055492, 99.85297942, 99.85536804, 99.85772126, 99.86003953, 99.86232332, 99.86457308, 99.86678925, 99.8689723, 99.87112264, 99.87324072, 99.87532697, 99.8773818, 99.87940565, 99.88139892, 99.88336203, 99.88529538, 99.88719938, 99.88907441, 99.89092088, 99.89273917, 99.89452966, 99.89629273, 99.89802876, 99.89973812, 99.90142117, 99.90307828, 99.9047098, 99.90631609, 99.90789749, 99.90945435, 99.91098701, 99.91249582, 99.91398109, 99.91544316, 99.91688236, 99.91829901, 99.91969342, 99.92106591, 99.92241679, 99.92374635, 99.92505492, 99.92634278, 99.92761023, 99.92885756, 99.93008505, 99.931293, 99.93248168, 99.93365138, 99.93480235, 99.93593488, 99.93704924, 99.93814567, 99.93922445, 99.94028584, 99.94133008, 99.94235743, 99.94336813, 99.94436242, 99.94534056, 99.94630278, 99.9472493, 99.94818037, 99.94909622, 99.94999706, 99.95088312, 99.95175463, 99.95261179, 99.95345483, 99.95428396, 99.95509938, 99.9559013, 99.95668992, 99.95746545, 99.95822808, 99.958978, 99.95971542, 99.96044052, 99.96115349, 99.96185451, 99.96254376, 99.96322144, 99.9638877, 99.96454274, 99.96518672, 99.96581981, 99.96644218, 99.967054, 99.96765543, 99.96824663, 99.96882776, 99.96939898, 99.96996044, 99.9705123, 99.97105471, 99.97158781, 99.97211175, 99.97262668, 99.97313273, 99.97363005, 99.97411878, 99.97459905, 99.975071, 99.97553476, 99.97599045, 99.97643822, 99.97687818, 99.97731047, 99.97773519, 99.97815249, 99.97856246, 99.97896525, 99.97936095, 99.97974968, 99.98013157, 99.98050671, 99.98087522, 99.98123721, 99.98159278, 99.98194204, 99.98228509, 99.98262203, 99.98295297, 99.983278, 99.98359722, 99.98391072, 99.98421861, 99.98452097, 99.9848179, 99.98510948, 99.9853958, 99.98567696, 99.98595304, 99.98622412, 99.98649029, 99.98675163, 99.98700822, 99.98726014, 99.98750747, 99.98775029, 99.98798867, 99.98822269, 99.98845242, 99.98867794, 99.98889932, 99.98911662, 99.98932993, 99.9895393, 99.9897448, 99.9899465, 99.99014447, 99.99033877, 99.99052946, 99.99071661, 99.99090027, 99.99108051, 99.99125738, 99.99143095, 99.99160128, 99.99176841, 99.9919324, 99.99209332, 99.99225121, 99.99240612, 99.99255811, 99.99270723, 99.99285354, 99.99299707, 99.99313788, 99.99327602, 99.99341153, 99.99354447, 99.99367487, 99.99380278, 99.99392825, 99.99405132, 99.99417204, 99.99429043, 99.99440656, 99.99452045, 99.99463215, 99.9947417, 99.99484913, 99.99495448, 99.9950578, 99.99515912, 99.99525847, 99.99535589, 99.99545142, 99.99554508, 99.99563692, 99.99572697, 99.99581526, 99.99590182, 99.99598669, 99.99606989, 99.99615145, 99.99623142, 99.9963098, 99.99638665, 99.99646197, 99.99653581, 99.99660818, 99.99667913, 99.99674866, 99.99681682, 99.99688361, 99.99694908, 99.99701325, 99.99707613, 99.99713776, 99.99719815, 99.99725734, 99.99731533, 99.99737217, 99.99742786, 99.99748243, 99.9975359, 99.99758829, 99.99763962, 99.99768991, 99.99773919, 99.99778747, 99.99783476, 99.9978811, 99.99792649, 99.99797096, 99.99801452, 99.9980572, 99.998099, 99.99813994, 99.99818005, 99.99821933, 99.99825781, 99.99829549, 99.9983324, 99.99836855, 99.99840395, 99.99843862, 99.99847257, 99.99850582, 99.99853838, 99.99857027, 99.99860149, 99.99863207, 99.998662, 99.99869131, 99.99872001, 99.99874811, 99.99877562, 99.99880256, 99.99882893, 99.99885475, 99.99888002, 99.99890476, 99.99892898, 99.99895269, 99.9989759, 99.99899862, 99.99902086, 99.99904262, 99.99906393, 99.99908478, 99.99910519, 99.99912516, 99.99914471, 99.99916384, 99.99918256, 99.99920088, 99.99921881, 99.99923636, 99.99925353, 99.99927033, 99.99928677, 99.99930285, 99.99931859, 99.99933399, 99.99934906, 99.9993638, 99.99937822, 99.99939232, 99.99940613, 99.99941963, 99.99943284, 99.99944576, 99.9994584, 99.99947076, 99.99948286, 99.99949469, 99.99950626, 99.99951757, 99.99952864, 99.99953947, 99.99955005, 99.99956041, 99.99957054, 99.99958044, 99.99959012, 99.99959959, 99.99960885, 99.99961791, 99.99962676, 99.99963542, 99.99964389, 99.99965216, 99.99966026, 99.99966817, 99.9996759, 99.99968347, 99.99969086, 99.99969809, 99.99970515, 99.99971206, 99.99971881, 99.99972541, 99.99973186, 99.99973817, 99.99974433, 99.99975036, 99.99975625, 99.999762, 99.99976763, 99.99977312, 99.9997785, 99.99978375, 99.99978888, 99.99979389, 99.99979879, 99.99980358, 99.99980826, 99.99981283, 99.99981729, 99.99982166, 99.99982592, 99.99983009, 99.99983416, 99.99983814, 99.99984202, 99.99984582, 99.99984952, 99.99985315, 99.99985668, 99.99986014, 99.99986352, 99.99986681, 99.99987004, 99.99987318, 99.99987625, 99.99987926, 99.99988219, 99.99988505, 99.99988785, 99.99989058, 99.99989324, 99.99989585, 99.99989839, 99.99990087, 99.9999033, 99.99990567, 99.99990798, 99.99991023, 99.99991244, 99.99991459, 99.99991669, 99.99991874, 99.99992075, 99.9999227, 99.99992461, 99.99992647, 99.99992829, 99.99993007, 99.9999318, 99.99993349, 99.99993514, 99.99993675, 99.99993833, 99.99993986, 99.99994136, 99.99994282, 99.99994425, 99.99994565, 99.999947, 99.99994833, 99.99994963, 99.99995089, 99.99995212, 99.99995333, 99.9999545, 99.99995564, 99.99995676, 99.99995785, 99.99995892, 99.99995995, 99.99996097, 99.99996196, 99.99996292, 99.99996386, 99.99996478, 99.99996567, 99.99996654, 99.9999674, 99.99996823, 99.99996904, 99.99996983, 99.9999706, 99.99997135, 99.99997208, 99.9999728, 99.99997349, 99.99997417, 99.99997484, 99.99997548, 99.99997611, 99.99997673, 99.99997733, 99.99997791, 99.99997848, 99.99997904, 99.99997958, 99.99998011, 99.99998063, 99.99998113, 99.99998162, 99.9999821, 99.99998256, 99.99998301, 99.99998346, 99.99998389, 99.99998431, 99.99998472, 99.99998512, 99.99998551, 99.99998589, 99.99998626, 99.99998662, 99.99998697, 99.99998731, 99.99998764, 99.99998797, 99.99998829, 99.9999886, 99.9999889, 99.99998919, 99.99998948, 99.99998975, 99.99999003, 99.99999029, 99.99999055, 99.9999908, 99.99999104, 99.99999128, 99.99999151, 99.99999174, 99.99999196, 99.99999217, 99.99999238, 99.99999259, 99.99999278, 99.99999298, 99.99999317, 99.99999335, 99.99999353, 99.9999937, 99.99999387, 99.99999404, 99.9999942, 99.99999435, 99.99999451, 99.99999465, 99.9999948, 99.99999494, 99.99999508, 99.99999521, 99.99999534, 99.99999547, 99.99999559, 99.99999571, 99.99999583, 99.99999594, 99.99999605, 99.99999616, 99.99999626, 99.99999637, 99.99999646, 99.99999656, 99.99999666, 99.99999675, 99.99999684, 99.99999692, 99.99999701, 99.99999709, 99.99999717, 99.99999725, 99.99999732, 99.9999974, 99.99999747, 99.99999754, 99.99999761, 99.99999767, 99.99999774, 99.9999978, 99.99999786, 99.99999792, 99.99999798, 99.99999804, 99.99999809, 99.99999814, 99.9999982, 99.99999825, 99.9999983, 99.99999834, 99.99999839, 99.99999843, 99.99999848, 99.99999852, 99.99999856, 99.9999986, 99.99999864, 99.99999868, 99.99999872, 99.99999875, 99.99999879, 99.99999882, 99.99999886, 99.99999889, 99.99999892, 99.99999895, 99.99999898, 99.99999901, 99.99999904, 99.99999907, 99.99999909, 99.99999912, 99.99999914, 99.99999917, 99.99999919, 99.99999921, 99.99999924, 99.99999926, 99.99999928, 99.9999993, 99.99999932, 99.99999934, 99.99999936, 99.99999938, 99.9999994, 99.99999941, 99.99999943, 99.99999945, 99.99999946, 99.99999948, 99.99999949, 99.99999951, 99.99999952, 99.99999954, 99.99999955, 99.99999956, 99.99999957, 99.99999959, 99.9999996, 99.99999961, 99.99999962, 99.99999963, 99.99999964, 99.99999965, 99.99999966, 99.99999967, 99.99999968, 99.99999969, 99.9999997, 99.99999971, 99.99999972, 99.99999973, 99.99999974, 99.99999974, 99.99999975, 99.99999976, 99.99999977, 99.99999977, 99.99999978, 99.99999979, 99.99999979, 99.9999998, 99.9999998, 99.99999981, 99.99999982, 99.99999982, 99.99999983, 99.99999983, 99.99999984, 99.99999984, 99.99999985, 99.99999985, 99.99999986, 99.99999986, 99.99999986, 99.99999987, 99.99999987, 99.99999988, 99.99999988, 99.99999988, 99.99999989, 99.99999989, 99.99999989, 99.9999999, 99.9999999, 99.9999999, 99.99999991, 99.99999991, 99.99999991, 99.99999991, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90.39397775, 90.38865196, 90.37976976, 90.36732236, 90.35129739, 90.33167896, 90.30844758, 90.28158018, 90.25105005, 90.21682685, 90.17887652, 90.13716127, 90.09163954, 90.04226594, 89.98899121, 89.93176212, 89.87052149, 89.80520803, 89.73575634, 89.66209682, 89.58415557, 89.50185433, 89.41511041, 89.32383655, 89.22794088, 89.12732683, 89.02189298, 88.91153299, 88.79613552, 88.67558409, 88.54975699, 88.41852717, 88.28176211, 88.13932374, 87.99106834, 87.83684638, 87.67650243, 87.50987509, 87.33679684, 87.15709395, 86.97058641, 86.77708778, 86.57640516, 86.36833909, 86.15268348, 85.92922554, 85.69774576, 85.45801785, 85.20980875, 84.9528786, 84.68698077, 84.41186191, 84.127262, 83.83291448, 83.52854631, 83.21387819, 82.88862469, 82.55249456, 82.20519093, 81.84641166, 81.47584971, 81.0931936, 80.69812782, 80.29033345, 79.86948875, 79.43526982, 78.9873514, 78.52540773, 78.04911339, 77.55814443, 77.05217939, 76.53090058, 75.9939953, 75.44115735, 74.87208845, 74.28649993, 73.68411442, 73.06466772, 72.42791068, 71.77361134, 71.101557, 70.41155648, 69.70344249, 68.97707402, 68.23233881, 67.46915592, 66.68747828, 65.88729537, 65.06863577, 64.23156982, 63.37621216, 62.50272429, 61.61131693, 60.70225238, 59.77584665, 58.83247143, 57.87255585, 56.89658798, 55.90511604, 54.8987493, 53.87815863, 52.84407663, 51.79729738, 50.73867573, 49.66912611, 48.58962089, 47.50118822, 46.40490935, 45.30191548, 44.19338406, 43.08053463, 41.9646242, 40.84694218, 39.72880485, 38.61154958, 37.49652862, 36.38510272, 35.27863446, 34.17848157, 33.08599007, 32.00248747, 30.92927607, 29.86762639, 28.81877079, 27.78389748, 26.76414478, 25.76059582, 24.77427378, 23.80613756, 22.85707802, 21.9279148, 21.01939376, 20.13218499, 19.26688146, 18.42399826, 17.60397248, 16.80716355, 16.03385426, 15.28425217, 14.55849159, 13.85663592, 13.17868038, 12.52455513, 11.89412857, 11.28721103, 10.70355845, 10.1428764, 9.60482405, 9.08901826, 8.59503766, 8.12242671, 7.67069969, 7.23934461, 6.82782703, 6.43559366, 6.06207589, 5.70669312, 5.36885589, 5.04796879, 4.74343326, 4.4546501, 4.18102181, 3.92195475, 3.67686101, 3.44516024, 3.22628114, 3.01966285, 2.82475613, 2.64102443, 2.46794473, 2.30500829, 2.15172125, 2.00760509, 1.87219697, 1.74505, 1.6257334, 1.51383253, 1.40894888, 1.31070001, 1.21871936, 1.13265607, 1.05217473, 0.97695505, 0.90669157, 0.84109326, 0.77988315, 0.72279793, 0.66958752, 0.62001462, 0.57385428, 0.53089345, 0.49093052, 0.45377487, 0.41924645, 0.38717526, 0.357401, 0.32977256, 0.30414766, 0.28039239, 0.25838082, 0.23799462, 0.21912266, 0.20166064, 0.18551077, 0.17058138, 0.15678661, 0.1440461, 0.13228468, 0.12143207, 0.1114226, 0.10219496, 0.09369193, 0.08586015, 0.07864988, 0.07201478, 0.06591169, 0.06030047, 0.05514379, 0.05040692, 0.04605764, 0.04206598, 0.03840418, 0.03504645, 0.03196892, 0.02914943, 0.02656749, 0.02420413, 0.02204179, 0.02006425, 0.0182565, 0.01660469, 0.01509603, 0.01371871, 0.01246185, 0.01131542, 0.01027017, 0.00931758, 0.00844983, 0.00765969, 0.00694054, 0.00628629, 0.00569134, 0.00515054, 0.00465919, 0.00421296, 0.00380787, 0.0034403, 0.00310691, 0.00280467, 0.00253076, 0.00228266, 0.00205802, 0.00185471, 0.00167079, 0.00150448, 0.00135416, 0.00121835, 0.00109571, 0.000985, 0.0008851, 0.00079501, 0.00071378, 0.00064059, 0.00057466, 0.00051531, 0.00046189, 0.00041383, 0.00037062, 0.00033179, 0.0002969, 0.00026556, 0.00023744, 0.0002122, 0.00018957, 0.00016928, 0.0001511, 0.00013482, 0.00012024, 0.00010719, 0.00009552, 0.00008508, 0.00007575, 0.00006742, 0.00005998, 0.00005333, 0.00004741, 0.00004212, 0.00003741, 0.00003321, 0.00002947, 0.00002614, 0.00002318, 0.00002054, 0.0000182, 0.00001612, 0.00001426, 0.00001262, 0.00001116, 9.86846568e-06, 8.72060555e-06, 7.70303444e-06, 6.80135139e-06, 6.00270157e-06, 5.29561551e-06, 4.66986452e-06, 4.1163306e-06, 3.62688958e-06, 3.19430607e-06, 2.81213924e-06, 2.47465806e-06, 2.17676555e-06, 1.91393056e-06, 1.68212689e-06, 1.4777786e-06, 1.29771114e-06, 1.1391075e-06, 9.99469179e-07, 8.76581112e-07, 7.68480419e-07, 6.73428502e-07, 5.89886085e-07, 5.16491028e-07, 4.52038449e-07, 3.95463061e-07, 3.45823423e-07, 3.02287944e-07, 2.64122349e-07, 2.30678651e-07, 2.0138522e-07, 1.75737995e-07, 1.53292746e-07, 1.33658148e-07, 1.16489602e-07, 1.01483806e-07, 8.83739375e-08, 7.69253603e-08, 6.69318325e-08, 5.82121658e-08, 5.06072269e-08, 4.39773657e-08, 3.8200028e-08, 3.31677512e-08, 2.87863173e-08, 2.49731897e-08, 2.16560778e-08, 1.87716864e-08, 1.62646501e-08, 1.40865239e-08, 1.21949739e-08, 1.05529807e-08, 9.12825726e-09, 7.8925666e-09, 6.82128132e-09, 5.89292881e-09, 5.08879339e-09, 4.39254677e-09, 3.7899639e-09, 3.26868133e-09, 2.8178988e-09, 2.4282798e-09, 2.09165307e-09, 1.80092741e-09, 1.54996371e-09, 1.3334045e-09, 1.14663123e-09, 9.8560804e-10, 8.46839043e-10, 7.27297333e-10, 6.24368113e-10, 5.35791855e-10, 4.59579041e-10, 3.9403858e-10, 3.37706751e-10, 2.89318791e-10, 2.47752041e-10, 2.12054374e-10, 1.81444193e-10, 1.55182533e-10, 1.32658329e-10, 1.13359988e-10, 9.6832764e-11, 8.26787527e-11, 7.05568937e-11, 6.01971806e-11, 5.13296072e-11, 4.37552217e-11, 3.72750719e-11, 3.17470494e-11, 2.70290457e-11, 2.29931629e-11, 1.95683469e-11, 1.66267e-11, 1.41398004e-11, 1.20081722e-11, 1.02033937e-11, 8.65441052e-12, 7.34701189e-12, 6.22435437e-12, 5.28643795e-12, 4.47641924e-12, 3.79429821e-12, 3.21165317e-12, 2.71427325e-12, 2.30215846e-12, 1.9468871e-12, 1.64845915e-12, 1.39266376e-12, 1.16529009e-12, 9.9475983e-13, 8.38440428e-13, 7.10542736e-13, 5.96855898e-13, 4.97379915e-13, 4.26325641e-13, 3.55271368e-13, 2.98427949e-13, 2.55795385e-13, 2.13162821e-13, 1.84741111e-13, 1.56319402e-13, 1.27897692e-13, 9.9475983e-14, 8.52651283e-14, 7.10542736e-14, 5.68434189e-14, 5.68434189e-14, 4.26325641e-14, 4.26325641e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.94465684, 2.94621724, 2.94881954, 2.95246616, 2.95716054, 2.96290705, 2.9697111, 2.97757904, 2.98651828, 2.99653717, 3.00764514, 3.01985259, 3.03317101, 3.04761289, 3.06319182, 3.07992244, 3.09782049, 3.11690283, 3.13718741, 3.15869334, 3.1814409, 3.20545153, 3.23074786, 3.25735377, 3.28529433, 3.31459592, 3.34528617, 3.37739403, 3.41094978, 3.44598503, 3.48253279, 3.52062746, 3.56030485, 3.60160225, 3.64455836, 3.68921343, 3.73560917, 3.78378885, 3.83379728, 3.88568084, 3.93948748, 3.99526676, 4.05306985, 4.11294951, 4.17496015, 4.23915777, 4.3056, 4.3743461, 4.44545689, 4.51899479, 4.59502378, 4.67360935, 4.75481848, 4.83871957, 4.92538242, 5.01487813, 5.10727902, 5.20265857, 5.30109129, 5.40265262, 5.50741878, 5.61546665, 5.72687358, 5.84171722, 5.96007531, 6.08202548, 6.207645, 6.33701047, 6.47019762, 6.60728091, 6.74833324, 6.89342561, 7.04262665, 7.19600227, 7.35361522, 7.51552457, 7.68178523, 7.85244748, 8.02755631, 8.20715096, 8.39126424, 8.57992194, 8.77314219, 8.9709348, 9.1733006, 9.38023075, 9.59170607, 9.80769633, 10.02815963, 10.25304169, 10.48227524, 10.71577937, 10.953459, 11.19520429, 11.44089021, 11.69037608, 11.94350523, 12.20010472, 12.45998517, 12.7229407, 12.98874888, 13.25717092, 13.52795192, 13.80082126, 14.07549307, 14.35166694, 14.62902868, 14.90725123, 15.18599578, 15.46491289, 15.74364387, 16.02182219, 16.29907504, 16.57502497, 16.84929165, 17.1214936, 17.39125013, 17.65818315, 17.9219191, 18.18209085, 18.43833953, 18.6903164, 18.93768454, 19.18012058, 19.41731624, 19.64897974, 19.87483718, 20.09463366, 20.30813431, 20.51512509, 20.71541354, 20.9088292, 21.09522398, 21.27447231, 21.44647107, 21.6111395, 21.76841878, 21.91827158, 22.06068149, 22.19565219, 22.3232067, 22.4433864, 22.55625002, 22.66187255, 22.76034415, 22.85176891, 22.93626373, 23.01395708, 23.0849878, 23.14950389, 23.2076614, 23.25962322, 23.30555802, 23.34563917, 23.38004373, 23.40895152, 23.43254418, 23.45100434, 23.46451486, 23.47325809, 23.47741521, 23.47716565, 23.47268654, 23.46415223, 23.45173388, 23.43559906, 23.41591146, 23.39283063, 23.36651171, 23.33710528, 23.30475721, 23.26960856, 23.23179551, 23.19144927, 23.14869614, 23.10365746, 23.05644967, 23.00718435, 22.95596829, 22.90290359, 22.84808772, 22.79161365, 22.73356999, 22.67404105, 22.61310704, 22.55084416, 22.48732476, 22.42261745, 22.3567873, 22.28989592, 22.22200163, 22.15315961, 22.08342204, 22.01283819, 21.94145463, 21.86931529, 21.79646166, 21.72293285, 21.64876574, 21.57399509, 21.49865368, 21.42277237, 21.34638026, 21.26950475, 21.19217163, 21.11440522, 21.03622843, 20.95766282, 20.87872873, 20.79944531, 20.71983062, 20.63990171, 20.55967465, 20.4791646, 20.39838589, 20.31735208, 20.23607595, 20.15456965, 20.07284465, 19.99091182, 19.90878152, 19.82646355, 19.74396724, 19.66130148, 19.57847475, 19.49549513, 19.41237036, 19.32910784, 19.24571466, 19.16219763, 19.07856329, 18.99481796, 18.9109677, 18.82701839, 18.74297571, 18.65884516, 18.57463208, 18.49034165, 18.40597892, 18.32154881, 18.23705612, 18.15250554, 18.06790166, 17.98324898, 17.89855191, 17.81381478, 17.72904186, 17.64423734, 17.55940535, 17.47454997, 17.38967522, 17.30478507, 17.21988346, 17.13497427, 17.05006135, 16.96514851, 16.88023954, 16.79533818, 16.71044814, 16.62557313, 16.54071681, 16.45588281, 16.37107477, 16.28629627, 16.2015509, 16.1168422, 16.03217373, 15.947549, 15.86297151, 15.77844475, 15.69397219, 15.60955728, 15.52520346, 15.44091415, 15.35669276, 15.27254267, 15.18846728, 15.10446992, 15.02055397, 14.93672273, 14.85297954, 14.76932769, 14.68577046, 14.60231114, 14.51895297, 14.43569919, 14.35255302, 14.26951769, 14.18659637, 14.10379224, 14.02110846, 13.93854818, 13.85611451, 13.77381058, 13.69163945, 13.60960422, 13.52770793, 13.44595362, 13.36434431, 13.282883, 13.20157266, 13.12041626, 13.03941673, 12.95857701, 12.87789998, 12.79738853, 12.71704552, 12.63687379, 12.55687615, 12.4770554, 12.39741432, 12.31795565, 12.23868213, 12.15959646, 12.08070133, 12.0019994, 11.9234933, 11.84518566, 11.76707905, 11.68917605, 11.61147921, 11.53399103, 11.45671401, 11.37965062, 11.3028033, 11.22617448, 11.14976653, 11.07358183, 10.99762272, 10.92189151, 10.84639049, 10.77112193, 10.69608804, 10.62129105, 10.54673314, 10.47241644, 10.3983431, 10.32451521, 10.25093484, 10.17760403, 10.10452479, 10.03169912, 9.95912897, 9.88681626, 9.81476291, 9.74297078, 9.67144171, 9.60017752, 9.52917999, 9.45845089, 9.38799193, 9.31780482, 9.24789122, 9.17825277, 9.10889108, 9.03980774, 8.97100428, 8.90248223, 8.83424309, 8.7662883, 8.69861931, 8.63123751, 8.56414427, 8.49734094, 8.43082882, 8.3646092, 8.29868332, 8.23305241, 8.16771766, 8.10268023, 8.03794124, 7.97350181, 7.909363, 7.84552584, 7.78199137, 7.71876054, 7.65583432, 7.59321362, 7.53089935, 7.46889235, 7.40719346, 7.34580349, 7.28472321, 7.22395336, 7.16349465, 7.10334778, 7.04351339, 6.98399212, 6.92478455, 6.86589127, 6.80731282, 6.74904969, 6.69110238, 6.63347134, 6.576157, 6.51915975, 6.46247997, 6.40611799, 6.35007414, 6.29434869, 6.23894191, 6.18385403, 6.12908526, 6.07463576, 6.0205057, 5.96669519, 5.91320434, 5.86003321, 5.80718185, 5.75465028, 5.70243849, 5.65054645, 5.5989741, 5.54772136, 5.49678811, 5.44617423, 5.39587956, 5.34590392, 5.29624709, 5.24690885, 5.19788894, 5.14918709, 5.10080299, 5.05273631, 5.00498672, 4.95755384, 4.91043727, 4.8636366, 4.81715139, 4.77098119, 4.72512551, 4.67958385, 4.63435568, 4.58944047, 4.54483763, 4.5005466, 4.45656677, 4.4128975, 4.36953815, 4.32648805, 4.28374653, 4.24131288, 4.19918638, 4.15736628, 4.11585183, 4.07464225, 4.03373675, 3.99313451, 3.9528347, 3.91283649, 3.873139, 3.83374135, 3.79464266, 3.75584201, 3.71733847, 3.6791311, 3.64121894, 3.60360102, 3.56627635, 3.52924394, 3.49250276, 3.45605178, 3.41988997, 3.38401626, 3.34842959, 3.31312887, 3.278113, 3.24338089, 3.2089314, 3.17476341, 3.14087578, 3.10726735, 3.07393695, 3.04088341, 3.00810555, 2.97560215, 2.94337202, 2.91141394, 2.87972669, 2.84830902, 2.81715968, 2.78627744, 2.75566102, 2.72530915, 2.69522055, 2.66539393, 2.63582801, 2.60652148, 2.57747302, 2.54868132, 2.52014507, 2.49186292, 2.46383354, 2.43605559, 2.40852772, 2.38124859, 2.35421682, 2.32743106, 2.30088993, 2.27459206, 2.24853608, 2.2227206, 2.19714424, 2.1718056, 2.14670329, 2.12183591, 2.09720206, 2.07280033, 2.04862933, 2.02468764, 2.00097384, 1.97748653, 1.95422429, 1.9311857, 1.90836933, 1.88577377, 1.8633976, 1.84123939, 1.81929771, 1.79757114, 1.77605825, 1.75475763, 1.73366783, 1.71278743, 1.69211501, 1.67164913, 1.65138838, 1.63133132, 1.61147653, 1.59182259, 1.57236807, 1.55311155, 1.53405161, 1.51518683, 1.49651579, 1.47803707, 1.45974927, 1.44165097, 1.42374075, 1.40601722, 1.38847897, 1.37112458, 1.35395268, 1.33696185, 1.3201507, 1.30351784, 1.28706189, 1.27078146, 1.25467516, 1.23874163, 1.22297949, 1.20738736, 1.19196388, 1.17670769, 1.16161743, 1.14669174, 1.13192929, 1.11732871, 1.10288867, 1.08860784, 1.07448488, 1.06051847, 1.04670727, 1.03304999, 1.0195453, 1.00619189, 0.99298848, 0.97993375, 0.96702641, 0.95426519, 0.9416488, 0.92917597, 0.91684542, 0.90465589, 0.89260613, 0.88069489, 0.86892091, 0.85728295, 0.84577979, 0.83441019, 0.82317293, 0.8120668, 0.80109059, 0.79024308, 0.77952309, 0.76892942, 0.75846089, 0.74811633, 0.73789455, 0.72779439, 0.7178147, 0.70795431, 0.6982121, 0.68858691, 0.67907762, 0.6696831, 0.66040222, 0.65123389, 0.64217699, 0.63323042, 0.6243931, 0.61566393, 0.60704184, 0.59852576, 0.59011463, 0.58180738, 0.57360297, 0.56550036, 0.5574985, 0.54959637, 0.54179294, 0.5340872, 0.52647815, 0.51896477, 0.51154608, 0.50422109, 0.49698881, 0.48984828, 0.48279853, 0.4758386, 0.46896753, 0.46218439, 0.45548823, 0.44887812, 0.44235313, 0.43591236, 0.42955489, 0.42327982, 0.41708625, 0.4109733, 0.40494007, 0.3989857, 0.39310931, 0.38731005, 0.38158707, 0.3759395, 0.37036652, 0.36486729, 0.35944099, 0.35408678, 0.34880387, 0.34359144, 0.33844869, 0.33337484, 0.32836909, 0.32343067, 0.3185588, 0.31375272, 0.30901167, 0.30433489, 0.29972164, 0.29517119, 0.29068279, 0.28625573, 0.28188928, 0.27758273, 0.27333537, 0.2691465, 0.26501543, 0.26094148, 0.25692395, 0.25296218, 0.24905549, 0.24520323, 0.24140474, 0.23765937, 0.23396647, 0.23032541, 0.22673555, 0.22319628, 0.21970697, 0.21626701, 0.21287579, 0.20953271, 0.20623717, 0.20298859, 0.19978639, 0.19662997, 0.19351878, 0.19045225, 0.18742981, 0.18445091, 0.181515, 0.17862154, 0.17576999, 0.17295982, 0.1701905, 0.16746151, 0.16477232, 0.16212245, 0.15951136, 0.15693858, 0.15440359, 0.15190592, 0.14944508, 0.14702058, 0.14463196, 0.14227874, 0.13996047, 0.13767668, 0.13542692, 0.13321075, 0.1310277, 0.12887736, 0.12675928, 0.12467303, 0.1226182, 0.12059435, 0.11860108, 0.11663797, 0.11470462, 0.11280062, 0.11092559, 0.10907912, 0.10726083, 0.10547034, 0.10370727, 0.10197124, 0.10026188, 0.09857883, 0.09692172, 0.0952902, 0.09368391, 0.09210251, 0.09054565, 0.08901299, 0.08750418, 0.08601891, 0.08455684, 0.08311764, 0.08170099, 0.08030658, 0.07893409, 0.07758321, 0.07625365, 0.07494508, 0.07365722, 0.07238977, 0.07114244, 0.06991495, 0.068707, 0.06751832, 0.06634862, 0.06519765, 0.06406512, 0.06295076, 0.06185433, 0.06077555, 0.05971416, 0.05866992, 0.05764257, 0.05663187, 0.05563758, 0.05465944, 0.05369722, 0.0527507, 0.05181963, 0.05090378, 0.05000294, 0.04911688, 0.04824537, 0.04738821, 0.04654517, 0.04571604, 0.04490062, 0.0440987, 0.04331008, 0.04253455, 0.04177192, 0.041022, 0.04028458, 0.03955948, 0.03884651, 0.03814549, 0.03745624, 0.03677856, 0.0361123, 0.03545726, 0.03481328, 0.03418019, 0.03355782, 0.032946, 0.03234457, 0.03175337, 0.03117224, 0.03060102, 0.03003956, 0.0294877, 0.02894529, 0.02841219, 0.02788825, 0.02737332, 0.02686727, 0.02636995, 0.02588122, 0.02540095, 0.024929, 0.02446524, 0.02400955, 0.02356178, 0.02312182, 0.02268953, 0.02226481, 0.02184751, 0.02143754, 0.02103475, 0.02063905, 0.02025032, 0.01986843, 0.01949329, 0.01912478, 0.01876279, 0.01840722, 0.01805796, 0.01771491, 0.01737797, 0.01704703, 0.016722, 0.01640278, 0.01608928, 0.01578139, 0.01547903, 0.0151821, 0.01489052, 0.0146042, 0.01432304, 0.01404696, 0.01377588, 0.01350971, 0.01324837, 0.01299178, 0.01273986, 0.01249253, 0.01224971, 0.01201133, 0.01177731, 0.01154758, 0.01132206, 0.01110068, 0.01088338, 0.01067007, 0.0104607, 0.0102552, 0.0100535, 0.00985553, 0.00966123, 0.00947054, 0.00928339, 0.00909973, 0.00891949, 0.00874262, 0.00856905, 0.00839872, 0.00823159, 0.0080676, 0.00790668, 0.00774879, 0.00759388, 0.00744189, 0.00729277, 0.00714646, 0.00700293, 0.00686212, 0.00672398, 0.00658847, 0.00645553, 0.00632513, 0.00619722, 0.00607175, 0.00594868, 0.00582796, 0.00570957, 0.00559344, 0.00547955, 0.00536785, 0.0052583, 0.00515087, 0.00504552, 0.0049422, 0.00484088, 0.00474153, 0.00464411, 0.00454858, 0.00445492, 0.00436308, 0.00427303, 0.00418474, 0.00409818, 0.00401331, 0.00393011, 0.00384855, 0.00376858, 0.0036902, 0.00361335, 0.00353803, 0.00346419, 0.00339182, 0.00332087, 0.00325134, 0.00318318, 0.00311639, 0.00305092, 0.00298675, 0.00292387, 0.00286224, 0.00280185, 0.00274266, 0.00268467, 0.00262783, 0.00257214, 0.00251757, 0.0024641, 0.00241171, 0.00236038, 0.00231009, 0.00226081, 0.00221253, 0.00216524, 0.0021189, 0.00207351, 0.00202904, 0.00198548, 0.0019428, 0.001901, 0.00186006, 0.00181995, 0.00178067, 0.00174219, 0.00170451, 0.0016676, 0.00163145, 0.00159605, 0.00156138, 0.00152743, 0.00149418, 0.00146162, 0.00142973, 0.00139851, 0.00136793, 0.001338, 0.00130869, 0.00127999, 0.00125189, 0.00122438, 0.00119744, 0.00117107, 0.00114525, 0.00111998, 0.00109524, 0.00107102, 0.00104731, 0.0010241, 0.00100138, 0.00097914, 0.00095738, 0.00093607, 0.00091522, 0.00089481, 0.00087484, 0.00085529, 0.00083616, 0.00081744, 0.00079912, 0.00078119, 0.00076364, 0.00074647, 0.00072967, 0.00071323, 0.00069715, 0.00068141, 0.00066601, 0.00065094, 0.0006362, 0.00062178, 0.00060768, 0.00059387, 0.00058037, 0.00056716, 0.00055424, 0.0005416, 0.00052924, 0.00051714, 0.00050531, 0.00049374, 0.00048243, 0.00047136, 0.00046053, 0.00044995, 0.00043959, 0.00042946, 0.00041956, 0.00040988, 0.00040041, 0.00039115, 0.00038209, 0.00037324, 0.00036458, 0.00035611, 0.00034784, 0.00033974, 0.00033183, 0.0003241, 0.00031653, 0.00030914, 0.00030191, 0.00029485, 0.00028794, 0.00028119, 0.00027459, 0.00026814, 0.00026183, 0.00025567, 0.00024964, 0.00024375, 0.000238, 0.00023237, 0.00022688, 0.0002215, 0.00021625, 0.00021112, 0.00020611, 0.00020121, 0.00019642, 0.00019174, 0.00018717, 0.00018271, 0.00017834, 0.00017408, 0.00016991, 0.00016584, 0.00016186, 0.00015798, 0.00015418, 0.00015048, 0.00014685, 0.00014332, 0.00013986, 0.00013648, 0.00013319, 0.00012996, 0.00012682, 0.00012375, 0.00012074, 0.00011781, 0.00011495, 0.00011215, 0.00010942, 0.00010676, 0.00010415, 0.00010161, 0.00009913, 0.0000967, 0.00009433, 0.00009202, 0.00008977, 0.00008756, 0.00008541, 0.00008331, 0.00008126, 0.00007925, 0.0000773, 0.00007539, 0.00007353, 0.00007171, 0.00006993, 0.0000682, 0.00006651, 0.00006486, 0.00006325, 0.00006167, 0.00006014, 0.00005864, 0.00005718, 0.00005575, 0.00005435, 0.000053, 0.00005167, 0.00005037, 0.00004911, 0.00004788, 0.00004667, 0.0000455, 0.00004436, 0.00004324, 0.00004215, 0.00004108, 0.00004005, 0.00003903, 0.00003804, 0.00003708, 0.00003614, 0.00003522, 0.00003433, 0.00003346, 0.0000326, 0.00003177, 0.00003096, 0.00003017, 0.0000294, 0.00002865, 0.00002792, 0.0000272, 0.00002651, 0.00002583, 0.00002516, 0.00002452, 0.00002389, 0.00002327, 0.00002267, 0.00002209, 0.00002152, 0.00002096, 0.00002042, 0.00001989, 0.00001937, 0.00001887, 0.00001838, 0.0000179, 0.00001744, 0.00001699, 0.00001654, 0.00001611, 0.00001569, 0.00001528, 0.00001488, 0.00001449, 0.00001411, 0.00001374, 0.00001338, 0.00001303, 0.00001269, 0.00001236, 0.00001203, 0.00001171, 0.0000114, 0.0000111, 0.00001081, 0.00001052, 0.00001025, 9.97478475e-06, 9.71041442e-06, 9.45282828e-06, 9.20185835e-06, 8.95734064e-06, 8.71911504e-06, 8.48702531e-06, 8.26091888e-06, 8.04064688e-06, 7.82606395e-06, 7.61702826e-06, 7.41340135e-06, 7.21504809e-06, 7.02183659e-06, 6.83363814e-06, 6.65032714e-06, 6.47178099e-06, 6.29788006e-06, 6.12850762e-06, 5.96354975e-06, 5.8028953e-06, 5.6464358e-06, 5.49406539e-06, 5.34568085e-06, 5.20118138e-06, 5.06046871e-06, 4.92344692e-06, 4.79002243e-06, 4.66010397e-06, 4.53360246e-06, 4.41043105e-06, 4.29050496e-06, 4.17374156e-06, 4.06006015e-06, 3.9493821e-06, 3.8416307e-06, 3.73673106e-06, 3.63461021e-06, 3.53519695e-06, 3.43842184e-06, 3.34421718e-06, 3.25251688e-06, 3.16325655e-06, 3.07637337e-06, 2.99180611e-06, 2.90949501e-06, 2.82938181e-06, 2.75140975e-06, 2.67552342e-06, 2.60166884e-06, 2.52979332e-06, 2.45984556e-06, 2.3917755e-06, 2.32553433e-06, 2.26107448e-06, 2.19834958e-06, 2.13731438e-06, 2.07792485e-06, 2.02013798e-06, 1.96391193e-06, 1.90920581e-06, 1.85597986e-06, 1.80419529e-06, 1.75381427e-06, 1.70479997e-06, 1.65711644e-06, 1.61072869e-06, 1.56560262e-06, 1.52170493e-06, 1.47900326e-06, 1.43746603e-06, 1.39706243e-06, 1.35776251e-06, 1.31953702e-06, 1.28235752e-06, 1.24619623e-06, 1.21102613e-06, 1.1768209e-06, 1.14355484e-06, 1.11120298e-06, 1.07974093e-06, 1.04914497e-06, 1.01939199e-06, 9.90459441e-07, 9.62325402e-07, 9.34968497e-07, 9.08367895e-07, 8.82503301e-07, 8.57354991e-07, 8.32903694e-07, 8.09130682e-07, 7.86017708e-07, 7.63546964e-07, 7.41701143e-07, 7.2046339e-07, 6.99817264e-07, 6.7974679e-07, 6.60236367e-07, 6.41270844e-07, 6.22835444e-07, 6.04915783e-07, 5.87497851e-07, 5.70568019e-07, 5.54112987e-07, 5.38119849e-07, 5.22576002e-07, 5.0746921e-07, 4.92787507e-07, 4.78519297e-07, 4.64653269e-07, 4.51178394e-07, 4.38083987e-07, 4.25359588e-07, 4.12995064e-07, 4.00980497e-07, 3.8930628e-07, 3.77963062e-07, 3.66941691e-07, 3.56233329e-07, 3.45829307e-07, 3.35721239e-07, 3.25900942e-07, 3.16360442e-07, 3.07092009e-07, 2.98088082e-07, 2.89341344e-07, 2.80844645e-07, 2.72591038e-07, 2.64573757e-07, 2.56786237e-07, 2.49222055e-07, 2.41875e-07, 2.34739005e-07, 2.27808172e-07, 2.21076775e-07, 2.14539227e-07, 2.08190102e-07, 2.02024111e-07, 1.96036126e-07, 1.90221158e-07, 1.84574304e-07, 1.79090875e-07, 1.73766267e-07, 1.68595989e-07, 1.63575692e-07, 1.58701155e-07, 1.53968244e-07, 1.49372966e-07, 1.44911425e-07, 1.40579829e-07, 1.36374496e-07, 1.32291859e-07, 1.28328409e-07, 1.24480778e-07, 1.20745668e-07, 1.17119868e-07, 1.13600265e-07, 1.10183848e-07, 1.06867645e-07, 1.03648816e-07, 1.00524574e-07, 9.74922045e-08, 9.45490797e-08, 9.1692641e-08, 8.89204159e-08, 8.62299601e-08, 8.36189429e-08, 8.10850906e-08, 7.8626158e-08, 7.6239985e-08, 7.3924511e-08, 7.16776611e-08, 6.94974602e-08, 6.73819898e-08, 6.53293739e-08, 6.33377937e-08, 6.14054869e-08, 5.95307199e-08, 5.77118442e-08, 5.59472113e-08, 5.42352581e-08, 5.25744639e-08, 5.09633225e-08, 4.94003842e-08, 4.78842566e-08, 4.6413561e-08, 4.49869759e-08, 4.36032082e-08, 4.22610213e-08, 4.09591792e-08, 3.96965021e-08, 3.8471839e-08, 3.72840958e-08, 3.61321639e-08, 3.50149918e-08, 3.39315704e-08, 3.28808909e-08, 3.18619868e-08, 3.08739487e-08, 2.99158387e-08, 2.89867756e-08, 2.80858927e-08, 2.72123799e-08, 2.6365413e-08, 2.55442103e-08, 2.47479903e-08, 2.39760425e-08, 2.32276136e-08, 2.25020216e-08, 2.17985701e-08, 2.11166338e-08, 2.04555306e-08, 1.98146637e-08, 1.9193422e-08, 1.85912228e-08, 1.80074977e-08, 1.74416783e-08, 1.6893253e-08, 1.63616818e-08, 1.58464672e-08, 1.53470978e-08, 1.48631329e-08, 1.43940895e-08, 1.39395127e-08, 1.34989762e-08, 1.30720537e-08, 1.2658333e-08, 1.22574164e-08, 1.18689343e-08, 1.14924745e-08, 1.11276961e-08, 1.07742579e-08, 1.04317763e-08, 1.00999671e-08, 9.77846071e-09, 9.46697298e-09, 9.16520548e-09, 8.87283136e-09, 8.5895806e-09, 8.31518321e-09, 8.04936917e-09, 7.79185427e-09, 7.54241114e-09, 7.30076977e-09, 7.06671699e-09, 6.83999701e-09, 6.62039668e-09, 6.40770281e-09, 6.20168805e-09, 6.00215344e-09, 5.80891424e-09, 5.62175728e-09, 5.44049783e-09, 5.26496535e-09, 5.09497511e-09, 4.93035657e-09, 4.7709392e-09, 4.61656668e-09, 4.46709691e-09, 4.32235936e-09, 4.1821977e-09, 4.04649825e-09, 3.9151189e-09, 3.78790332e-09, 3.66473785e-09, 3.54549456e-09, 3.43004558e-09, 3.31829142e-09, 3.21008997e-09, 3.10534176e-09, 3.00394731e-09, 2.90579294e-09, 2.81077916e-09, 2.71882072e-09, 2.62978972e-09, 2.54362931e-09, 2.4602258e-09, 2.37949394e-09, 2.30137687e-09, 2.2257467e-09, 2.15257501e-09, 2.08174811e-09, 2.01320915e-09, 1.94687289e-09, 1.88268245e-09, 1.82056681e-09, 1.76045489e-09, 1.70228986e-09, 1.64601488e-09, 1.59155888e-09, 1.53886504e-09, 1.48787649e-09, 1.43855061e-09, 1.39083056e-09, 1.34464528e-09, 1.29998057e-09, 1.25676536e-09, 1.21495702e-09, 1.17451293e-09, 1.13537624e-09, 1.09753273e-09, 1.06092557e-09, 1.02551212e-09, 9.91249749e-10, 9.58124247e-10, 9.26064558e-10, 8.95070684e-10, 8.65099992e-10, 8.36095637e-10, 8.08057621e-10, 7.80929099e-10, 7.54710072e-10, 7.29343697e-10, 7.04815761e-10, 6.81097845e-10, 6.58161525e-10, 6.35978381e-10, 6.14534201e-10, 5.93786353e-10, 5.73734837e-10, 5.54351232e-10, 5.35607114e-10, 5.17488274e-10, 4.99966291e-10, 4.83026952e-10, 4.66656047e-10, 4.50810944e-10, 4.35505854e-10, 4.20712354e-10, 4.06416234e-10, 3.92589072e-10, 3.79230869e-10, 3.66313202e-10, 3.53821861e-10, 3.41756845e-10, 3.30089733e-10, 3.18820526e-10, 3.079208e-10, 2.97390557e-10, 2.87215585e-10, 2.77367462e-10, 2.67874611e-10, 2.58680188e-10, 2.49812615e-10, 2.41229259e-10, 2.3294433e-10, 2.24929408e-10, 2.17198703e-10, 2.09709583e-10, 2.02490469e-10, 1.95512939e-10, 1.88762783e-10, 1.82254212e-10, 1.75958803e-10, 1.69876557e-10, 1.63993263e-10, 1.58323132e-10, 1.52837742e-10, 1.47537094e-10, 1.42421186e-10, 1.37490019e-10, 1.32715172e-10, 1.28096644e-10, 1.23648647e-10, 1.19342758e-10, 1.15193188e-10, 1.11171516e-10, 1.07306164e-10, 1.03554498e-10, 9.99449412e-11, 9.6449071e-11, 9.30810984e-11, 8.98268127e-11, 8.66862138e-11, 8.36450909e-11, 8.07176548e-11, 7.78896947e-11, 7.51469997e-11, 7.25179916e-11, 6.99600378e-11, 6.75015599e-11, 6.51283472e-11, 6.28403996e-11, 6.06235062e-11, 5.8491878e-11, 5.64313041e-11, 5.44417844e-11, 5.25091082e-11, 5.06616971e-11, 4.88711294e-11, 4.71374051e-11, 4.54747351e-11, 4.38546977e-11, 4.23057145e-11, 4.07993639e-11, 3.93498567e-11, 3.79571929e-11, 3.66071617e-11, 3.52997631e-11, 3.40492079e-11, 3.28412852e-11, 3.16617843e-11, 3.05391268e-11, 2.9444891e-11, 2.83932877e-11, 2.7384317e-11, 2.64037681e-11, 2.54516408e-11, 2.45421461e-11, 2.3675284e-11, 2.28226327e-11, 2.19984031e-11, 2.12168061e-11, 2.04494199e-11, 1.97104555e-11, 1.90141236e-11, 1.83177917e-11, 1.76640924e-11, 1.70246039e-11, 1.64135372e-11, 1.58166813e-11, 1.52482471e-11, 1.46940238e-11, 1.41682222e-11, 1.36566314e-11, 1.31592515e-11, 1.26902933e-11, 1.22213351e-11, 1.17807986e-11, 1.13544729e-11, 1.09423581e-11, 1.05444542e-11, 1.01607611e-11, 9.7912789e-12, 9.43600753e-12, 9.09494702e-12, 8.76809736e-12, 8.4412477e-12, 8.1286089e-12, 7.8443918e-12, 7.54596385e-12, 7.27595761e-12, 7.00595137e-12, 6.75015599e-12, 6.50857146e-12, 6.26698693e-12, 6.03961325e-12, 5.81223958e-12, 5.59907676e-12, 5.40012479e-12, 5.20117283e-12, 5.00222086e-12, 4.81747975e-12, 4.64694949e-12, 4.47641924e-12, 4.30588898e-12, 4.14956958e-12, 3.99325017e-12, 3.85114163e-12, 3.70903308e-12, 3.56692453e-12, 3.43902684e-12, 3.31112915e-12, 3.18323146e-12, 3.06954462e-12, 2.95585778e-12, 2.84217094e-12, 2.74269496e-12, 2.64321898e-12, 2.54374299e-12, 2.44426701e-12, 2.35900188e-12, 2.27373675e-12, 2.18847163e-12, 2.1032065e-12, 2.01794137e-12, 1.9468871e-12, 1.87583282e-12, 1.80477855e-12, 1.73372428e-12, 1.67688086e-12, 1.60582658e-12, 1.54898316e-12, 1.49213975e-12, 1.43529633e-12, 1.37845291e-12, 1.33582034e-12, 1.27897692e-12, 1.23634436e-12, 1.17950094e-12, 1.13686838e-12, 1.09423581e-12, 1.05160325e-12, 1.02318154e-12, 9.80548975e-13, 9.37916411e-13, 9.09494702e-13, 8.66862138e-13, 8.38440428e-13, 8.10018719e-13, 7.81597009e-13, 7.531753e-13, 7.2475359e-13, 6.96331881e-13, 6.67910172e-13, 6.39488462e-13, 6.11066753e-13, 5.96855898e-13, 5.68434189e-13, 5.54223334e-13, 5.25801624e-13, 5.1159077e-13, 4.8316906e-13, 4.68958206e-13, 4.54747351e-13, 4.40536496e-13, 4.12114787e-13, 3.97903932e-13, 3.83693077e-13, 3.69482223e-13, 3.55271368e-13, 3.41060513e-13, 3.26849658e-13, 3.12638804e-13, 2.98427949e-13, 2.98427949e-13, 2.84217094e-13, 2.7000624e-13, 2.55795385e-13, 2.55795385e-13, 2.4158453e-13, 2.27373675e-13, 2.27373675e-13, 2.13162821e-13, 1.98951966e-13, 1.98951966e-13, 1.84741111e-13, 1.84741111e-13, 1.70530257e-13, 1.70530257e-13, 1.56319402e-13, 1.56319402e-13, 1.56319402e-13, 1.42108547e-13, 1.42108547e-13, 1.27897692e-13, 1.27897692e-13, 1.27897692e-13, 1.13686838e-13, 1.13686838e-13, 1.13686838e-13, 9.9475983e-14, 9.9475983e-14, 9.9475983e-14, 9.9475983e-14, 8.52651283e-14, 8.52651283e-14, 8.52651283e-14, 8.52651283e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.66136541, 6.6651308, 6.6714107, 6.68021148, 6.69154207, 6.70541399, 6.72184133, 6.74084078, 6.76243167, 6.78663598, 6.81347834, 6.84298614, 6.87518945, 6.91012116, 6.94781697, 6.98831543, 7.03165802, 7.07788914, 7.12705625, 7.17920983, 7.23440353, 7.29269414, 7.35414173, 7.41880969, 7.48676478, 7.55807725, 7.63282085, 7.71107298, 7.7929147, 7.87843088, 7.96771022, 8.06084538, 8.15793304, 8.25907401, 8.3643733, 8.4739402, 8.5878884, 8.70633606, 8.82940588, 8.95722521, 9.08992611, 9.22764546, 9.37052499, 9.5187114, 9.67235638, 9.8316167, 9.99665424, 10.16763605, 10.34473436, 10.52812661, 10.71799545, 10.91452874, 11.11791952, 11.32836595, 11.54607126, 11.77124369, 12.00409629, 12.24484687, 12.49371778, 12.75093572, 13.0167315, 13.29133975, 13.5749986, 13.86794933, 14.17043594, 14.4827047, 14.8050036, 15.1375818, 15.48068899, 15.83457467, 16.19948736, 16.57567382, 16.96337805, 17.36284038, 17.77429633, 18.19797551, 18.63410034, 19.08288481, 19.544533, 20.0192377, 20.50717877, 21.00852158, 21.52341532, 22.05199117, 22.59436058, 23.15061333, 23.72081565, 24.3050083, 24.9032046, 25.51538849, 26.1415126, 26.78149634, 27.43522407, 28.10254332, 28.78326313, 29.47715249, 30.18393892, 30.90330731, 31.63489879, 32.37831, 33.13309249, 33.89875245, 34.67475069, 35.46050301, 36.25538082, 37.05871217, 37.86978311, 38.68783941, 39.51208874, 40.34170305, 41.1758215, 42.01355361, 42.85398279, 43.69617018, 44.53915878, 45.38197778, 46.22364715, 47.06318239, 47.89959932, 48.73191908, 49.559173, 50.38040753, 51.19468907, 52.00110862, 52.79878628, 53.58687549, 54.364567, 55.13109256, 55.88572813, 56.62779688, 57.35667166, 58.07177704, 58.77259103, 59.45864624, 60.12953066, 60.78488802, 61.42441767, 62.04787416, 62.65506635, 63.24585622, 63.82015738, 64.37793322, 64.91919486, 65.44399887, 65.95244483, 66.44467264, 66.92085987, 67.38121887, 67.82599395, 68.25545845, 68.6699119, 69.0696771, 69.45509737, 69.82653381, 70.18436261, 70.52897259, 70.8607627, 71.18013977, 71.48751635, 71.78330866, 72.06793469, 72.34181254, 72.60535872, 72.85898676, 73.10310588, 73.3381198, 73.56442569, 73.78241324, 73.99246387, 74.19495, 74.3902345, 74.57867018, 74.76059941, 74.93635376, 75.10625386, 75.27060914, 75.4297178, 75.58386677, 75.7333317, 75.87837705, 76.01925621, 76.15621162, 76.28947496, 76.41926738, 76.5457997, 76.66927269, 76.78987731, 76.90779502, 77.02319808, 77.1362498, 77.24710492, 77.35590987, 77.46280309, 77.56791537, 77.67137012, 77.77328371, 77.87376577, 77.97291949, 78.07084187, 78.16762409, 78.2633517, 78.35810497, 78.4519591, 78.54498449, 78.63724699, 78.72880817, 78.81972547, 78.9100525, 78.99983921, 79.0891321, 79.17797442, 79.26640636, 79.3544652, 79.44218552, 79.52959933, 79.61673623, 79.70362357, 79.79028656, 79.87674843, 79.96303054, 80.0491525, 80.13513228, 80.22098631, 80.30672961, 80.39237582, 80.47793738, 80.56342551, 80.64885037, 80.73422109, 80.81954587, 80.90483202, 80.99008602, 81.07531359, 81.16051975, 81.24570886, 81.33088467, 81.41605033, 81.50120852, 81.58636139, 81.67151065, 81.75665759, 81.84180313, 81.9269478, 82.01209183, 82.09723514, 82.18237735, 82.26751784, 82.35265575, 82.43778998, 82.52291927, 82.60804212, 82.69315691, 82.77826183, 82.86335494, 82.94843417, 83.03349732, 83.11854211, 83.20356612, 83.28856686, 83.37354177, 83.45848819, 83.54340341, 83.62828464, 83.71312907, 83.7979338, 83.88269591, 83.96741243, 84.05208038, 84.1366967, 84.22125835, 84.30576225, 84.39020528, 84.47458434, 84.55889628, 84.64313796, 84.72730623, 84.81139791, 84.89540984, 84.97933884, 85.06318175, 85.14693538, 85.23059656, 85.31416212, 85.39762889, 85.4809937, 85.56425341, 85.64740485, 85.7304449, 85.81337042, 85.89617829, 85.9788654, 86.06142864, 86.14386494, 86.22617123, 86.30834443, 86.39038151, 86.47227945, 86.55403521, 86.63564582, 86.71710828, 86.79841964, 86.87957694, 86.96057726, 87.0414177, 87.12209535, 87.20260735, 87.28295085, 87.36312302, 87.44312104, 87.52294212, 87.6025835, 87.68204243, 87.76131619, 87.84040206, 87.91929737, 87.99799946, 88.0765057, 88.15481347, 88.23292018, 88.31082327, 88.3885202, 88.46600846, 88.54328554, 88.62034898, 88.69719635, 88.77382522, 88.85023321, 88.92641794, 89.00237708, 89.07810831, 89.15360935, 89.22887794, 89.30391184, 89.37870885, 89.45326678, 89.52758348, 89.60165683, 89.67548473, 89.74906511, 89.82239593, 89.89547517, 89.96830085, 90.040871, 90.11318371, 90.18523707, 90.25702921, 90.32855828, 90.39982247, 90.47081999, 90.5415491, 90.61200806, 90.68219517, 90.75210877, 90.82174722, 90.89110891, 90.96019226, 91.02899572, 91.09751776, 91.16575691, 91.23371169, 91.30138069, 91.36876249, 91.43585573, 91.50265906, 91.56917118, 91.6353908, 91.70131668, 91.76694759, 91.83228234, 91.89731977, 91.96205876, 92.02649819, 92.090637, 92.15447415, 92.21800863, 92.28123946, 92.34416568, 92.40678637, 92.46910065, 92.53110765, 92.59280654, 92.65419651, 92.71527679, 92.77604664, 92.83650535, 92.89665222, 92.95648661, 93.01600788, 93.07521545, 93.13410873, 93.19268718, 93.25095031, 93.30889762, 93.36652866, 93.423843, 93.48084025, 93.53752003, 93.59388201, 93.64992586, 93.70565131, 93.76105809, 93.81614597, 93.87091474, 93.92536424, 93.9794943, 94.03330481, 94.08679566, 94.13996679, 94.19281815, 94.24534972, 94.29756151, 94.34945355, 94.4010259, 94.45227864, 94.50321189, 94.55382577, 94.60412044, 94.65409608, 94.70375291, 94.75309115, 94.80211106, 94.85081291, 94.89919701, 94.94726369, 94.99501328, 95.04244616, 95.08956273, 95.1363634, 95.18284861, 95.22901881, 95.27487449, 95.32041615, 95.36564432, 95.41055953, 95.45516237, 95.4994534, 95.54343323, 95.5871025, 95.63046185, 95.67351195, 95.71625347, 95.75868712, 95.80081362, 95.84263372, 95.88414817, 95.92535775, 95.96626325, 96.00686549, 96.0471653, 96.08716351, 96.126861, 96.16625865, 96.20535734, 96.24415799, 96.28266153, 96.3208689, 96.35878106, 96.39639898, 96.43372365, 96.47075606, 96.50749724, 96.54394822, 96.58011003, 96.61598374, 96.65157041, 96.68687113, 96.721887, 96.75661911, 96.7910686, 96.82523659, 96.85912422, 96.89273265, 96.92606305, 96.95911659, 96.99189445, 97.02439785, 97.05662798, 97.08858606, 97.12027331, 97.15169098, 97.18284032, 97.21372256, 97.24433898, 97.27469085, 97.30477945, 97.33460607, 97.36417199, 97.39347852, 97.42252698, 97.45131868, 97.47985493, 97.50813708, 97.53616646, 97.56394441, 97.59147228, 97.61875141, 97.64578318, 97.67256894, 97.69911007, 97.72540794, 97.75146392, 97.7772794, 97.80285576, 97.8281944, 97.85329671, 97.87816409, 97.90279794, 97.92719967, 97.95137067, 97.97531236, 97.99902616, 98.02251347, 98.04577571, 98.0688143, 98.09163067, 98.11422623, 98.1366024, 98.15876061, 98.18070229, 98.20242886, 98.22394175, 98.24524237, 98.26633217, 98.28721257, 98.30788499, 98.32835087, 98.34861162, 98.36866868, 98.38852347, 98.40817741, 98.42763193, 98.44688845, 98.46594839, 98.48481317, 98.50348421, 98.52196293, 98.54025073, 98.55834903, 98.57625925, 98.59398278, 98.61152103, 98.62887542, 98.64604732, 98.66303815, 98.6798493, 98.69648216, 98.71293811, 98.72921854, 98.74532484, 98.76125837, 98.77702051, 98.79261264, 98.80803612, 98.82329231, 98.83838257, 98.85330826, 98.86807071, 98.88267129, 98.89711133, 98.91139216, 98.92551512, 98.93948153, 98.95329273, 98.96695001, 98.9804547, 98.99380811, 99.00701152, 99.02006625, 99.03297359, 99.04573481, 99.0583512, 99.07082403, 99.08315458, 99.09534411, 99.10739387, 99.11930511, 99.13107909, 99.14271705, 99.15422021, 99.16558981, 99.17682707, 99.1879332, 99.19890941, 99.20975692, 99.22047691, 99.23107058, 99.24153911, 99.25188367, 99.26210545, 99.27220561, 99.2821853, 99.29204569, 99.3017879, 99.31141309, 99.32092238, 99.3303169, 99.33959778, 99.34876611, 99.35782301, 99.36676958, 99.3756069, 99.38433607, 99.39295816, 99.40147424, 99.40988537, 99.41819262, 99.42639703, 99.43449964, 99.4425015, 99.45040363, 99.45820706, 99.4659128, 99.47352185, 99.48103523, 99.48845392, 99.49577891, 99.50301119, 99.51015172, 99.51720147, 99.5241614, 99.53103247, 99.53781561, 99.54451177, 99.55112188, 99.55764687, 99.56408764, 99.57044511, 99.57672018, 99.58291375, 99.5890267, 99.59505993, 99.6010143, 99.60689069, 99.61268995, 99.61841293, 99.6240605, 99.62963348, 99.63513271, 99.64055901, 99.64591322, 99.65119613, 99.65640856, 99.66155131, 99.66662516, 99.67163091, 99.67656933, 99.6814412, 99.68624728, 99.69098833, 99.69566511, 99.70027836, 99.70482881, 99.70931721, 99.71374427, 99.71811072, 99.72241727, 99.72666463, 99.7308535, 99.73498457, 99.73905852, 99.74307605, 99.74703782, 99.75094451, 99.75479677, 99.75859526, 99.76234063, 99.76603353, 99.76967459, 99.77326445, 99.77680372, 99.78029303, 99.78373299, 99.78712421, 99.79046729, 99.79376283, 99.79701141, 99.80021361, 99.80337003, 99.80648122, 99.80954775, 99.81257019, 99.81554909, 99.818485, 99.82137846, 99.82423001, 99.82704018, 99.8298095, 99.83253849, 99.83522768, 99.83787755, 99.84048864, 99.84306142, 99.84559641, 99.84809408, 99.85055492, 99.85297942, 99.85536804, 99.85772126, 99.86003953, 99.86232332, 99.86457308, 99.86678925, 99.8689723, 99.87112264, 99.87324072, 99.87532697, 99.8773818, 99.87940565, 99.88139892, 99.88336203, 99.88529538, 99.88719938, 99.88907441, 99.89092088, 99.89273917, 99.89452966, 99.89629273, 99.89802876, 99.89973812, 99.90142117, 99.90307828, 99.9047098, 99.90631609, 99.90789749, 99.90945435, 99.91098701, 99.91249582, 99.91398109, 99.91544316, 99.91688236, 99.91829901, 99.91969342, 99.92106591, 99.92241679, 99.92374635, 99.92505492, 99.92634278, 99.92761023, 99.92885756, 99.93008505, 99.931293, 99.93248168, 99.93365138, 99.93480235, 99.93593488, 99.93704924, 99.93814567, 99.93922445, 99.94028584, 99.94133008, 99.94235743, 99.94336813, 99.94436242, 99.94534056, 99.94630278, 99.9472493, 99.94818037, 99.94909622, 99.94999706, 99.95088312, 99.95175463, 99.95261179, 99.95345483, 99.95428396, 99.95509938, 99.9559013, 99.95668992, 99.95746545, 99.95822808, 99.958978, 99.95971542, 99.96044052, 99.96115349, 99.96185451, 99.96254376, 99.96322144, 99.9638877, 99.96454274, 99.96518672, 99.96581981, 99.96644218, 99.967054, 99.96765543, 99.96824663, 99.96882776, 99.96939898, 99.96996044, 99.9705123, 99.97105471, 99.97158781, 99.97211175, 99.97262668, 99.97313273, 99.97363005, 99.97411878, 99.97459905, 99.975071, 99.97553476, 99.97599045, 99.97643822, 99.97687818, 99.97731047, 99.97773519, 99.97815249, 99.97856246, 99.97896525, 99.97936095, 99.97974968, 99.98013157, 99.98050671, 99.98087522, 99.98123721, 99.98159278, 99.98194204, 99.98228509, 99.98262203, 99.98295297, 99.983278, 99.98359722, 99.98391072, 99.98421861, 99.98452097, 99.9848179, 99.98510948, 99.9853958, 99.98567696, 99.98595304, 99.98622412, 99.98649029, 99.98675163, 99.98700822, 99.98726014, 99.98750747, 99.98775029, 99.98798867, 99.98822269, 99.98845242, 99.98867794, 99.98889932, 99.98911662, 99.98932993, 99.9895393, 99.9897448, 99.9899465, 99.99014447, 99.99033877, 99.99052946, 99.99071661, 99.99090027, 99.99108051, 99.99125738, 99.99143095, 99.99160128, 99.99176841, 99.9919324, 99.99209332, 99.99225121, 99.99240612, 99.99255811, 99.99270723, 99.99285354, 99.99299707, 99.99313788, 99.99327602, 99.99341153, 99.99354447, 99.99367487, 99.99380278, 99.99392825, 99.99405132, 99.99417204, 99.99429043, 99.99440656, 99.99452045, 99.99463215, 99.9947417, 99.99484913, 99.99495448, 99.9950578, 99.99515912, 99.99525847, 99.99535589, 99.99545142, 99.99554508, 99.99563692, 99.99572697, 99.99581526, 99.99590182, 99.99598669, 99.99606989, 99.99615145, 99.99623142, 99.9963098, 99.99638665, 99.99646197, 99.99653581, 99.99660818, 99.99667913, 99.99674866, 99.99681682, 99.99688361, 99.99694908, 99.99701325, 99.99707613, 99.99713776, 99.99719815, 99.99725734, 99.99731533, 99.99737217, 99.99742786, 99.99748243, 99.9975359, 99.99758829, 99.99763962, 99.99768991, 99.99773919, 99.99778747, 99.99783476, 99.9978811, 99.99792649, 99.99797096, 99.99801452, 99.9980572, 99.998099, 99.99813994, 99.99818005, 99.99821933, 99.99825781, 99.99829549, 99.9983324, 99.99836855, 99.99840395, 99.99843862, 99.99847257, 99.99850582, 99.99853838, 99.99857027, 99.99860149, 99.99863207, 99.998662, 99.99869131, 99.99872001, 99.99874811, 99.99877562, 99.99880256, 99.99882893, 99.99885475, 99.99888002, 99.99890476, 99.99892898, 99.99895269, 99.9989759, 99.99899862, 99.99902086, 99.99904262, 99.99906393, 99.99908478, 99.99910519, 99.99912516, 99.99914471, 99.99916384, 99.99918256, 99.99920088, 99.99921881, 99.99923636, 99.99925353, 99.99927033, 99.99928677, 99.99930285, 99.99931859, 99.99933399, 99.99934906, 99.9993638, 99.99937822, 99.99939232, 99.99940613, 99.99941963, 99.99943284, 99.99944576, 99.9994584, 99.99947076, 99.99948286, 99.99949469, 99.99950626, 99.99951757, 99.99952864, 99.99953947, 99.99955005, 99.99956041, 99.99957054, 99.99958044, 99.99959012, 99.99959959, 99.99960885, 99.99961791, 99.99962676, 99.99963542, 99.99964389, 99.99965216, 99.99966026, 99.99966817, 99.9996759, 99.99968347, 99.99969086, 99.99969809, 99.99970515, 99.99971206, 99.99971881, 99.99972541, 99.99973186, 99.99973817, 99.99974433, 99.99975036, 99.99975625, 99.999762, 99.99976763, 99.99977312, 99.9997785, 99.99978375, 99.99978888, 99.99979389, 99.99979879, 99.99980358, 99.99980826, 99.99981283, 99.99981729, 99.99982166, 99.99982592, 99.99983009, 99.99983416, 99.99983814, 99.99984202, 99.99984582, 99.99984952, 99.99985315, 99.99985668, 99.99986014, 99.99986352, 99.99986681, 99.99987004, 99.99987318, 99.99987625, 99.99987926, 99.99988219, 99.99988505, 99.99988785, 99.99989058, 99.99989324, 99.99989585, 99.99989839, 99.99990087, 99.9999033, 99.99990567, 99.99990798, 99.99991023, 99.99991244, 99.99991459, 99.99991669, 99.99991874, 99.99992075, 99.9999227, 99.99992461, 99.99992647, 99.99992829, 99.99993007, 99.9999318, 99.99993349, 99.99993514, 99.99993675, 99.99993833, 99.99993986, 99.99994136, 99.99994282, 99.99994425, 99.99994565, 99.999947, 99.99994833, 99.99994963, 99.99995089, 99.99995212, 99.99995333, 99.9999545, 99.99995564, 99.99995676, 99.99995785, 99.99995892, 99.99995995, 99.99996097, 99.99996196, 99.99996292, 99.99996386, 99.99996478, 99.99996567, 99.99996654, 99.9999674, 99.99996823, 99.99996904, 99.99996983, 99.9999706, 99.99997135, 99.99997208, 99.9999728, 99.99997349, 99.99997417, 99.99997484, 99.99997548, 99.99997611, 99.99997673, 99.99997733, 99.99997791, 99.99997848, 99.99997904, 99.99997958, 99.99998011, 99.99998063, 99.99998113, 99.99998162, 99.9999821, 99.99998256, 99.99998301, 99.99998346, 99.99998389, 99.99998431, 99.99998472, 99.99998512, 99.99998551, 99.99998589, 99.99998626, 99.99998662, 99.99998697, 99.99998731, 99.99998764, 99.99998797, 99.99998829, 99.9999886, 99.9999889, 99.99998919, 99.99998948, 99.99998975, 99.99999003, 99.99999029, 99.99999055, 99.9999908, 99.99999104, 99.99999128, 99.99999151, 99.99999174, 99.99999196, 99.99999217, 99.99999238, 99.99999259, 99.99999278, 99.99999298, 99.99999317, 99.99999335, 99.99999353, 99.9999937, 99.99999387, 99.99999404, 99.9999942, 99.99999435, 99.99999451, 99.99999465, 99.9999948, 99.99999494, 99.99999508, 99.99999521, 99.99999534, 99.99999547, 99.99999559, 99.99999571, 99.99999583, 99.99999594, 99.99999605, 99.99999616, 99.99999626, 99.99999637, 99.99999646, 99.99999656, 99.99999666, 99.99999675, 99.99999684, 99.99999692, 99.99999701, 99.99999709, 99.99999717, 99.99999725, 99.99999732, 99.9999974, 99.99999747, 99.99999754, 99.99999761, 99.99999767, 99.99999774, 99.9999978, 99.99999786, 99.99999792, 99.99999798, 99.99999804, 99.99999809, 99.99999814, 99.9999982, 99.99999825, 99.9999983, 99.99999834, 99.99999839, 99.99999843, 99.99999848, 99.99999852, 99.99999856, 99.9999986, 99.99999864, 99.99999868, 99.99999872, 99.99999875, 99.99999879, 99.99999882, 99.99999886, 99.99999889, 99.99999892, 99.99999895, 99.99999898, 99.99999901, 99.99999904, 99.99999907, 99.99999909, 99.99999912, 99.99999914, 99.99999917, 99.99999919, 99.99999921, 99.99999924, 99.99999926, 99.99999928, 99.9999993, 99.99999932, 99.99999934, 99.99999936, 99.99999938, 99.9999994, 99.99999941, 99.99999943, 99.99999945, 99.99999946, 99.99999948, 99.99999949, 99.99999951, 99.99999952, 99.99999954, 99.99999955, 99.99999956, 99.99999957, 99.99999959, 99.9999996, 99.99999961, 99.99999962, 99.99999963, 99.99999964, 99.99999965, 99.99999966, 99.99999967, 99.99999968, 99.99999969, 99.9999997, 99.99999971, 99.99999972, 99.99999973, 99.99999974, 99.99999974, 99.99999975, 99.99999976, 99.99999977, 99.99999977, 99.99999978, 99.99999979, 99.99999979, 99.9999998, 99.9999998, 99.99999981, 99.99999982, 99.99999982, 99.99999983, 99.99999983, 99.99999984, 99.99999984, 99.99999985, 99.99999985, 99.99999986, 99.99999986, 99.99999986, 99.99999987, 99.99999987, 99.99999988, 99.99999988, 99.99999988, 99.99999989, 99.99999989, 99.99999989, 99.9999999, 99.9999999, 99.9999999, 99.99999991, 99.99999991, 99.99999991, 99.99999991, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_LMCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "component_matrix", "component.contribution.matrix"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ID", "sample_code", "n.components", "Im1", "xm1", "b1", "b1.error", "n01", "n01.error", "cs1", "rel_cs1", "Im2", "xm2", "b2", "b2.error", "n02", "n02.error", "cs2", "rel_cs2", "Im3", "xm3", "b3", "b3.error", "n03", "n03.error", "cs3", "rel_cs3", "Im4", "xm4", "b4", "b4.error", "n04", "n04.error", "cs4", "rel_cs4", "Im5", "xm5", "b5", "b5.error", "n05", "n05.error", "cs5", "rel_cs5", "Im6", "xm6", "b6", "b6.error", "n06", "n06.error", "cs6", "rel_cs6", "Im7", "xm7", "b7", "b7.error", "n07", "n07.error", "cs7", "rel_cs7", "pseudo-R^2"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": [""] }, { "type": "character", "attributes": {}, "value": [""] }, { "type": "double", "attributes": {}, "value": [3] }, { "type": "double", "attributes": {}, "value": [185.61523375] }, { "type": "double", "attributes": {}, "value": [50.00726982] }, { "type": "double", "attributes": {}, "value": [1.59953483] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [15303.6139709] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1.87788952e-17] }, { "type": "double", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [32.42354371] }, { "type": "double", "attributes": {}, "value": [263.37543448] }, { "type": "double", "attributes": {}, "value": [0.05766462] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [14079.36231441] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [6.76995523e-19] }, { "type": "double", "attributes": {}, "value": [0.0361] }, { "type": "double", "attributes": {}, "value": [399.20163132] }, { "type": "double", "attributes": {}, "value": [1603.23789337] }, { "type": "double", "attributes": {}, "value": [0.0015562] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1055206.64483228] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1.82700775e-20] }, { "type": "double", "attributes": {}, "value": [0.001] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [0.934] } ] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [4000, 5] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["TIME", "SUM", "COMP_ 1", "COMP_ 2", "COMP_ 3"] } ] } }, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 6.73193805, 13.45652904, 20.1664406, 26.85436962, 33.51305684, 40.13530125, 46.71397435, 53.2420342, 59.71253925, 66.11866186, 72.45370153, 78.71109776, 84.88444252, 90.96749235, 96.95417993, 102.83862522, 108.61514608, 114.27826838, 119.82273546, 125.24351712, 130.53581791, 135.6950849, 140.71701465, 145.59755971, 150.33293432, 154.91961949, 159.35436735, 163.63420492, 167.756437, 171.71864856, 175.5187063, 179.15475961, 182.62524074, 185.92886442, 189.06462671, 192.03180326, 194.82994687, 197.45888447, 199.91871349, 202.20979761, 204.33276195, 206.28848772, 208.07810635, 209.70299312, 211.16476029, 212.46524981, 213.60652562, 214.5908655, 215.42075267, 216.09886694, 216.62807564, 217.01142425, 217.25212676, 217.35355595, 217.31923331, 217.15281897, 216.85810145, 216.43898731, 215.89949083, 215.24372356, 214.47588397, 213.60024709, 212.62115421, 211.54300271, 210.37023596, 209.10733338, 207.7588007, 206.32916034, 204.82294205, 203.24467379, 201.59887281, 199.89003702, 198.12263668, 196.30110635, 194.42983711, 192.51316925, 190.55538511, 188.56070241, 186.53326787, 184.47715119, 182.39633942, 180.29473171, 178.17613436, 176.04425634, 173.90270516, 171.75498302, 169.60448351, 167.45448852, 165.30816557, 163.16856558, 161.03862082, 158.92114339, 156.81882394, 154.73423072, 152.66980899, 150.62788073, 148.61064463, 146.6201764, 144.65842934, 142.72723518, 140.82830517, 138.96323143, 137.1334885, 135.34043512, 133.58531621, 131.86926503, 130.19330556, 128.55835493, 126.96522614, 125.4146308, 123.90718204, 122.44339755, 121.02370263, 119.64843343, 118.31784018, 117.03209051, 115.79127281, 114.59539962, 113.44441107, 112.33817829, 111.27650687, 110.25914024, 109.28576317, 108.35600508, 107.46944345, 106.62560712, 105.82397957, 105.06400214, 104.34507719, 103.6665712, 103.02781778, 102.42812065, 101.86675647, 101.34297767, 100.85601513, 100.40508078, 99.98937016, 99.60806479, 99.26033454, 98.94533987, 98.66223393, 98.41016463, 98.18827655, 97.99571281, 97.8316168, 97.69513383, 97.58541264, 97.50160693, 97.44287666, 97.40838932, 97.39732116, 97.40885819, 97.44219728, 97.49654703, 97.57112858, 97.66517644, 97.77793911, 97.90867973, 98.0566766, 98.22122365, 98.40163085, 98.59722457, 98.80734782, 99.03136053, 99.2686397, 99.51857952, 99.78059146, 100.05410428, 100.33856404, 100.63343407, 100.93819482, 101.25234381, 101.57539543, 101.90688077, 102.24634745, 102.59335931, 102.94749625, 103.30835389, 103.6755433, 104.04869069, 104.4274371, 104.81143805, 105.20036322, 105.59389608, 105.99173353, 106.39358554, 106.7991748, 107.20823631, 107.62051705, 108.03577556, 108.45378163, 108.87431584, 109.29716927, 109.7221431, 110.14904825, 110.57770502, 111.00794272, 111.43959938, 111.87252133, 112.30656295, 112.74158625, 113.17746065, 113.61406257, 114.05127522, 114.48898823, 114.92709739, 115.36550439, 115.80411651, 116.24284639, 116.68161177, 117.12033523, 117.55894397, 117.99736959, 118.43554784, 118.87341844, 119.31092485, 119.7480141, 120.18463659, 120.62074592, 121.05629872, 121.49125446, 121.92557533, 122.35922606, 122.7921738, 123.22438799, 123.65584018, 124.08650398, 124.51635488, 124.94537017, 125.37352885, 125.80081149, 126.22720014, 126.65267829, 127.07723072, 127.50084345, 127.92350368, 128.34519969, 128.76592078, 129.18565721, 129.60440013, 130.02214155, 130.43887426, 130.85459177, 131.26928831, 131.68295873, 132.09559849, 132.50720363, 132.91777071, 133.32729676, 133.7357793, 134.14321628, 134.54960604, 134.95494729, 135.35923912, 135.76248093, 136.16467241, 136.56581358, 136.9659047, 137.36494627, 137.76293905, 138.15988402, 138.55578234, 138.95063538, 139.34444468, 139.73721198, 140.12893913, 140.51962816, 140.90928124, 141.29790065, 141.68548882, 142.07204826, 142.45758163, 142.84209166, 143.22558119, 143.60805315, 143.98951056, 144.36995652, 144.7493942, 145.12782686, 145.5052578, 145.88169041, 146.25712815, 146.63157451, 147.00503307, 147.37750744, 147.74900129, 148.11951834, 148.48906236, 148.85763717, 149.22524662, 149.59189461, 149.95758509, 150.32232204, 150.68610947, 151.04895145, 151.41085205, 151.7718154, 152.13184567, 152.49094704, 152.84912373, 153.20637999, 153.5627201, 153.91814836, 154.27266912, 154.62628674, 154.97900559, 155.33083009, 155.68176469, 156.03181384, 156.38098202, 156.72927374, 157.07669352, 157.42324593, 157.76893552, 158.11376689, 158.45774465, 158.80087342, 159.14315786, 159.48460262, 159.82521239, 160.16499187, 160.50394577, 160.84207883, 161.17939579, 161.51590142, 161.85160049, 162.18649779, 162.52059812, 162.85390631, 163.18642717, 163.51816556, 163.84912632, 164.17931433, 164.50873445, 164.83739157, 165.16529058, 165.4924364, 165.81883393, 166.1444881, 166.46940384, 166.79358608, 167.11703977, 167.43976987, 167.76178133, 168.08307912, 168.40366821, 168.72355357, 169.04274019, 169.36123304, 169.67903713, 169.99615743, 170.31259895, 170.62836668, 170.94346562, 171.25790078, 171.57167716, 171.88479977, 172.19727361, 172.50910368, 172.820295, 173.13085256, 173.44078138, 173.75008645, 174.05877278, 174.36684537, 174.67430922, 174.98116931, 175.28743065, 175.59309822, 175.898177, 176.20267198, 176.50658813, 176.80993042, 177.11270382, 177.41491329, 177.71656377, 178.01766023, 178.31820759, 178.6182108, 178.91767477, 179.21660444, 179.5150047, 179.81288046, 180.11023662, 180.40707805, 180.70340964, 180.99923624, 181.29456272, 181.58939392, 181.88373467, 182.17758979, 182.47096411, 182.76386241, 183.05628948, 183.34825011, 183.63974906, 183.93079107, 184.22138089, 184.51152323, 184.80122282, 185.09048433, 185.37931247, 185.66771189, 185.95568725, 186.24324319, 186.53038432, 186.81711526, 187.10344059, 187.3893649, 187.67489273, 187.96002864, 188.24477713, 188.52914273, 188.81312993, 189.09674318, 189.37998696, 189.66286568, 189.94538378, 190.22754566, 190.50935568, 190.79081821, 191.0719376, 191.35271817, 191.63316421, 191.91328002, 192.19306985, 192.47253794, 192.75168852, 193.03052579, 193.30905392, 193.58727707, 193.86519939, 194.14282499, 194.42015795, 194.69720236, 194.97396225, 195.25044166, 195.5266446, 195.80257504, 196.07823694, 196.35363424, 196.62877085, 196.90365066, 197.17827755, 197.45265534, 197.72678785, 198.0006789, 198.27433223, 198.54775161, 198.82094074, 199.09390334, 199.36664307, 199.63916358, 199.91146849, 200.1835614, 200.4554459, 200.72712551, 200.99860377, 201.26988417, 201.54097019, 201.81186526, 202.08257282, 202.35309625, 202.62343892, 202.89360418, 203.16359534, 203.43341569, 203.7030685, 203.97255699, 204.24188438, 204.51105386, 204.78006859, 205.04893168, 205.31764625, 205.58621538, 205.85464211, 206.12292946, 206.39108044, 206.65909801, 206.92698511, 207.19474466, 207.46237955, 207.72989263, 207.99728673, 208.26456467, 208.53172922, 208.79878314, 209.06572914, 209.33256992, 209.59930814, 209.86594646, 210.13248748, 210.39893379, 210.66528795, 210.93155248, 211.19772989, 211.46382265, 211.72983322, 211.99576401, 212.26161742, 212.5273958, 212.7931015, 213.05873683, 213.32430407, 213.58980546, 213.85524325, 214.12061963, 214.38593677, 214.65119682, 214.91640188, 215.18155406, 215.44665541, 215.71170797, 215.97671375, 216.24167472, 216.50659284, 216.77147004, 217.03630821, 217.30110922, 217.56587492, 217.83060712, 218.09530761, 218.35997817, 218.62462051, 218.88923636, 219.1538274, 219.41839527, 219.68294161, 219.94746803, 220.21197609, 220.47646735, 220.74094333, 221.00540552, 221.2698554, 221.53429441, 221.79872397, 222.06314547, 222.32756028, 222.59196973, 222.85637514, 223.12077781, 223.38517898, 223.6495799, 223.91398179, 224.17838582, 224.44279316, 224.70720495, 224.97162229, 225.23604627, 225.50047796, 225.76491839, 226.02936856, 226.29382948, 226.55830209, 226.82278734, 227.08728615, 227.3517994, 227.61632795, 227.88087265, 228.14543432, 228.41001375, 228.67461171, 228.93922895, 229.20386619, 229.46852413, 229.73320345, 229.9979048, 230.26262882, 230.52737611, 230.79214726, 231.05694283, 231.32176336, 231.58660936, 231.85148135, 232.11637979, 232.38130512, 232.6462578, 232.91123821, 233.17624675, 233.44128379, 233.70634966, 233.9714447, 234.2365692, 234.50172345, 234.76690771, 235.03212221, 235.29736718, 235.56264282, 235.8279493, 236.09328679, 236.35865542, 236.62405532, 236.88948658, 237.15494928, 237.42044349, 237.68596924, 237.95152656, 238.21711546, 238.48273591, 238.74838789, 239.01407134, 239.27978619, 239.54553236, 239.81130973, 240.07711818, 240.34295757, 240.60882774, 240.87472851, 241.14065969, 241.40662106, 241.67261239, 241.93863345, 242.20468396, 242.47076365, 242.73687222, 243.00300936, 243.26917474, 243.53536801, 243.80158882, 244.06783679, 244.33411154, 244.60041264, 244.86673968, 245.13309223, 245.39946982, 245.665872, 245.93229829, 246.19874818, 246.46522116, 246.73171671, 246.9982343, 247.26477337, 247.53133334, 247.79791366, 248.0645137, 248.33113289, 248.59777058, 248.86442615, 249.13109895, 249.39778833, 249.66449361, 249.9312141, 250.19794912, 250.46469796, 250.73145988, 250.99823417, 251.26502007, 251.53181684, 251.7986237, 252.06543988, 252.33226459, 252.59909702, 252.86593637, 253.13278181, 253.39963251, 253.66648763, 253.93334632, 254.20020771, 254.46707093, 254.73393509, 255.00079931, 255.26766267, 255.53452428, 255.8013832, 256.06823851, 256.33508927, 256.60193452, 256.86877332, 257.1356047, 257.40242767, 257.66924127, 257.9360445, 258.20283636, 258.46961584, 258.73638193, 259.00313361, 259.26986985, 259.53658961, 259.80329185, 260.06997551, 260.33663954, 260.60328287, 260.86990443, 261.13650314, 261.40307792, 261.66962767, 261.9361513, 262.2026477, 262.46911576, 262.73555436, 263.0019624, 263.26833873, 263.53468222, 263.80099174, 264.06726615, 264.33350429, 264.59970501, 264.86586715, 265.13198956, 265.39807105, 265.66411047, 265.93010663, 266.19605834, 266.46196444, 266.72782372, 266.99363499, 267.25939706, 267.52510873, 267.79076878, 268.05637602, 268.32192922, 268.58742718, 268.85286867, 269.11825248, 269.38357738, 269.64884215, 269.91404554, 270.17918634, 270.4442633, 270.70927519, 270.97422076, 271.23909878, 271.503908, 271.76864717, 272.03331505, 272.29791038, 272.5624319, 272.82687838, 273.09124855, 273.35554115, 273.61975492, 273.88388861, 274.14794096, 274.41191069, 274.67579656, 274.93959729, 275.20331161, 275.46693827, 275.73047599, 275.99392351, 276.25727956, 276.52054288, 276.78371218, 277.04678621, 277.3097637, 277.57264337, 277.83542395, 278.09810419, 278.3606828, 278.62315852, 278.88553008, 279.14779621, 279.40995565, 279.67200712, 279.93394936, 280.1957811, 280.45750109, 280.71910805, 280.98060071, 281.24197783, 281.50323812, 281.76438035, 282.02540323, 282.28630552, 282.54708597, 282.8077433, 283.06827627, 283.32868363, 283.58896413, 283.8491165, 284.10913952, 284.36903192, 284.62879247, 284.88841992, 285.14791303, 285.40727057, 285.66649129, 285.92557396, 286.18451734, 286.44332022, 286.70198135, 286.96049951, 287.21887348, 287.47710204, 287.73518397, 287.99311805, 288.25090306, 288.5085378, 288.76602106, 289.02335162, 289.2805283, 289.53754988, 289.79441517, 290.05112297, 290.3076721, 290.56406135, 290.82028955, 291.07635552, 291.33225807, 291.58799602, 291.84356821, 292.09897345, 292.35421059, 292.60927846, 292.8641759, 293.11890175, 293.37345486, 293.62783407, 293.88203825, 294.13606623, 294.38991689, 294.64358909, 294.8970817, 295.15039357, 295.4035236, 295.65647065, 295.90923361, 296.16181137, 296.4142028, 296.66640681, 296.91842229, 297.17024814, 297.42188326, 297.67332656, 297.92457696, 298.17563337, 298.42649471, 298.6771599, 298.92762787, 299.17789755, 299.42796789, 299.6778378, 299.92750625, 300.17697218, 300.42623454, 300.67529229, 300.92414438, 301.17278979, 301.42122748, 301.66945642, 301.91747559, 302.16528397, 302.41288055, 302.66026432, 302.90743426, 303.15438939, 303.4011287, 303.64765119, 303.89395589, 304.1400418, 304.38590795, 304.63155336, 304.87697706, 305.12217807, 305.36715545, 305.61190823, 305.85643545, 306.10073617, 306.34480945, 306.58865434, 306.8322699, 307.07565521, 307.31880933, 307.56173135, 307.80442035, 308.0468754, 308.28909561, 308.53108007, 308.77282788, 309.01433813, 309.25560995, 309.49664244, 309.73743472, 309.97798591, 310.21829514, 310.45836154, 310.69818424, 310.93776239, 311.17709513, 311.41618161, 311.65502098, 311.89361239, 312.13195502, 312.37004802, 312.60789058, 312.84548186, 313.08282104, 313.31990732, 313.55673987, 313.79331789, 314.02964059, 314.26570716, 314.5015168, 314.73706874, 314.97236219, 315.20739636, 315.44217048, 315.67668379, 315.91093551, 316.14492488, 316.37865114, 316.61211354, 316.84531134, 317.07824379, 317.31091014, 317.54330966, 317.77544162, 318.0073053, 318.23889997, 318.47022491, 318.7012794, 318.93206274, 319.16257423, 319.39281316, 319.62277883, 319.85247055, 320.08188764, 320.3110294, 320.53989517, 320.76848426, 320.996796, 321.22482972, 321.45258477, 321.68006048, 321.9072562, 322.13417128, 322.36080507, 322.58715693, 322.81322622, 323.03901231, 323.26451457, 323.48973237, 323.71466509, 323.93931212, 324.16367283, 324.38774663, 324.6115329, 324.83503104, 325.05824046, 325.28116057, 325.50379076, 325.72613047, 325.9481791, 326.16993608, 326.39140084, 326.6125728, 326.8334514, 327.05403608, 327.27432628, 327.49432145, 327.71402103, 327.93342448, 328.15253125, 328.37134081, 328.58985263, 328.80806616, 329.02598089, 329.24359628, 329.46091182, 329.677927, 329.89464129, 330.1110542, 330.3271652, 330.54297381, 330.75847953, 330.97368185, 331.18858029, 331.40317437, 331.61746359, 331.83144747, 332.04512555, 332.25849734, 332.47156238, 332.6843202, 332.89677033, 333.10891233, 333.32074572, 333.53227007, 333.74348492, 333.95438982, 334.16498433, 334.37526801, 334.58524043, 334.79490116, 335.00424976, 335.21328582, 335.42200889, 335.63041858, 335.83851446, 336.04629612, 336.25376315, 336.46091514, 336.66775169, 336.87427241, 337.08047688, 337.28636473, 337.49193555, 337.69718896, 337.90212459, 338.10674203, 338.31104093, 338.51502089, 338.71868155, 338.92202255, 339.12504351, 339.32774406, 339.53012386, 339.73218254, 339.93391975, 340.13533513, 340.33642834, 340.53719904, 340.73764687, 340.9377715, 341.13757259, 341.33704981, 341.53620282, 341.73503129, 341.93353491, 342.13171335, 342.32956627, 342.52709338, 342.72429435, 342.92116887, 343.11771662, 343.31393731, 343.50983063, 343.70539627, 343.90063394, 344.09554334, 344.29012418, 344.48437615, 344.67829898, 344.87189238, 345.06515607, 345.25808975, 345.45069316, 345.64296602, 345.83490805, 346.02651898, 346.21779854, 346.40874646, 346.59936249, 346.78964636, 346.9795978, 347.16921656, 347.3585024, 347.54745504, 347.73607425, 347.92435978, 348.11231137, 348.29992879, 348.4872118, 348.67416015, 348.86077362, 349.04705196, 349.23299494, 349.41860233, 349.60387391, 349.78880945, 349.97340873, 350.15767152, 350.3415976, 350.52518677, 350.7084388, 350.89135347, 351.07393059, 351.25616994, 351.43807131, 351.6196345, 351.8008593, 351.98174552, 352.16229296, 352.34250142, 352.5223707, 352.70190062, 352.88109097, 353.05994158, 353.23845226, 353.41662281, 353.59445306, 353.77194283, 353.94909194, 354.1259002, 354.30236745, 354.47849351, 354.65427821, 354.82972137, 355.00482283, 355.17958242, 355.35399999, 355.52807535, 355.70180836, 355.87519885, 356.04824667, 356.22095166, 356.39331367, 356.56533253, 356.73700811, 356.90834025, 357.07932881, 357.24997364, 357.42027459, 357.59023152, 357.75984429, 357.92911277, 358.09803681, 358.26661627, 358.43485103, 358.60274095, 358.7702859, 358.93748575, 359.10434037, 359.27084964, 359.43701342, 359.60283159, 359.76830404, 359.93343064, 360.09821128, 360.26264583, 360.42673418, 360.59047621, 360.75387181, 360.91692087, 361.07962329, 361.24197894, 361.40398772, 361.56564952, 361.72696425, 361.8879318, 362.04855206, 362.20882494, 362.36875033, 362.52832814, 362.68755827, 362.84644063, 363.00497512, 363.16316165, 363.32100013, 363.47849046, 363.63563257, 363.79242636, 363.94887175, 364.10496865, 364.26071697, 364.41611665, 364.57116759, 364.72586971, 364.88022294, 365.0342272, 365.18788242, 365.34118852, 365.49414542, 365.64675305, 365.79901135, 365.95092024, 366.10247965, 366.25368952, 366.40454978, 366.55506036, 366.70522121, 366.85503225, 367.00449342, 367.15360467, 367.30236594, 367.45077716, 367.59883828, 367.74654924, 367.89391, 368.04092048, 368.18758065, 368.33389045, 368.47984982, 368.62545873, 368.77071711, 368.91562493, 369.06018214, 369.20438868, 369.34824452, 369.49174962, 369.63490392, 369.77770739, 369.92016, 370.06226169, 370.20401243, 370.34541219, 370.48646093, 370.62715861, 370.76750519, 370.90750066, 371.04714496, 371.18643808, 371.32537998, 371.46397063, 371.60221, 371.74009807, 371.8776348, 372.01482018, 372.15165418, 372.28813678, 372.42426794, 372.56004766, 372.6954759, 372.83055266, 372.9652779, 373.09965161, 373.23367378, 373.36734439, 373.50066342, 373.63363086, 373.76624669, 373.8985109, 374.03042348, 374.16198441, 374.2931937, 374.42405132, 374.55455727, 374.68471154, 374.81451412, 374.94396501, 375.07306421, 375.2018117, 375.33020749, 375.45825157, 375.58594394, 375.7132846, 375.84027355, 375.96691079, 376.09319632, 376.21913014, 376.34471225, 376.46994267, 376.59482139, 376.71934842, 376.84352376, 376.96734743, 377.09081943, 377.21393976, 377.33670844, 377.45912548, 377.58119089, 377.70290468, 377.82426686, 377.94527744, 378.06593645, 378.18624388, 378.30619977, 378.42580412, 378.54505695, 378.66395829, 378.78250814, 378.90070652, 379.01855347, 379.13604899, 379.2531931, 379.36998584, 379.48642722, 379.60251726, 379.718256, 379.83364345, 379.94867964, 380.0633646, 380.17769834, 380.29168091, 380.40531233, 380.51859263, 380.63152184, 380.74409998, 380.85632709, 380.9682032, 381.07972835, 381.19090256, 381.30172587, 381.41219832, 381.52231994, 381.63209076, 381.74151083, 381.85058017, 381.95929883, 382.06766685, 382.17568426, 382.2833511, 382.39066742, 382.49763326, 382.60424865, 382.71051364, 382.81642828, 382.9219926, 383.02720666, 383.13207048, 383.23658414, 383.34074765, 383.44456109, 383.54802448, 383.65113789, 383.75390135, 383.85631493, 383.95837866, 384.0600926, 384.1614568, 384.26247131, 384.36313619, 384.46345149, 384.56341726, 384.66303355, 384.76230042, 384.86121793, 384.95978614, 385.05800509, 385.15587485, 385.25339547, 385.35056702, 385.44738955, 385.54386312, 385.63998779, 385.73576363, 385.83119069, 385.92626904, 386.02099874, 386.11537986, 386.20941245, 386.30309658, 386.39643232, 386.48941973, 386.58205888, 386.67434983, 386.76629266, 386.85788743, 386.94913421, 387.04003306, 387.13058407, 387.22078729, 387.3106428, 387.40015067, 387.48931098, 387.57812379, 387.66658917, 387.75470721, 387.84247798, 387.92990155, 388.01697799, 388.10370738, 388.19008981, 388.27612533, 388.36181404, 388.44715602, 388.53215133, 388.61680006, 388.70110229, 388.7850581, 388.86866756, 388.95193077, 389.0348478, 389.11741874, 389.19964367, 389.28152267, 389.36305582, 389.44424322, 389.52508494, 389.60558107, 389.6857317, 389.76553691, 389.8449968, 389.92411145, 390.00288094, 390.08130537, 390.15938483, 390.23711941, 390.31450919, 390.39155427, 390.46825474, 390.54461069, 390.62062221, 390.6962894, 390.77161236, 390.84659116, 390.92122592, 390.99551672, 391.06946366, 391.14306684, 391.21632635, 391.28924229, 391.36181476, 391.43404386, 391.50592968, 391.57747232, 391.64867189, 391.71952849, 391.79004221, 391.86021315, 391.93004143, 391.99952713, 392.06867037, 392.13747124, 392.20592986, 392.27404632, 392.34182073, 392.40925319, 392.47634382, 392.54309271, 392.60949998, 392.67556573, 392.74129007, 392.8066731, 392.87171494, 392.9364157, 393.00077548, 393.06479439, 393.12847256, 393.19181008, 393.25480707, 393.31746364, 393.3797799, 393.44175597, 393.50339196, 393.56468799, 393.62564417, 393.68626061, 393.74653743, 393.80647475, 393.86607268, 393.92533134, 393.98425085, 394.04283132, 394.10107288, 394.15897564, 394.21653973, 394.27376525, 394.33065234, 394.38720111, 394.44341169, 394.49928419, 394.55481875, 394.61001547, 394.66487449, 394.71939593, 394.77357991, 394.82742655, 394.88093599, 394.93410835, 394.98694375, 395.03944233, 395.0916042, 395.14342949, 395.19491834, 395.24607087, 395.29688721, 395.34736748, 395.39751183, 395.44732037, 395.49679325, 395.54593058, 395.59473251, 395.64319916, 395.69133067, 395.73912717, 395.78658879, 395.83371567, 395.88050794, 395.92696574, 395.97308919, 396.01887845, 396.06433363, 396.10945489, 396.15424235, 396.19869616, 396.24281645, 396.28660335, 396.33005702, 396.37317759, 396.41596519, 396.45841997, 396.50054207, 396.54233163, 396.58378879, 396.62491369, 396.66570648, 396.70616729, 396.74629628, 396.78609358, 396.82555934, 396.86469371, 396.90349682, 396.94196883, 396.98010987, 397.01792011, 397.05539967, 397.09254872, 397.12936739, 397.16585584, 397.20201421, 397.23784265, 397.27334132, 397.30851036, 397.34334992, 397.37786016, 397.41204122, 397.44589325, 397.47941641, 397.51261085, 397.54547672, 397.57801418, 397.61022338, 397.64210447, 397.67365761, 397.70488295, 397.73578065, 397.76635086, 397.79659374, 397.82650945, 397.85609814, 397.88535997, 397.9142951, 397.94290369, 397.97118589, 397.99914187, 398.02677178, 398.05407578, 398.08105404, 398.10770671, 398.13403396, 398.16003595, 398.18571284, 398.21106479, 398.23609196, 398.26079452, 398.28517264, 398.30922647, 398.33295618, 398.35636193, 398.3794439, 398.40220224, 398.42463713, 398.44674872, 398.46853719, 398.4900027, 398.51114542, 398.53196552, 398.55246317, 398.57263854, 398.59249179, 398.61202309, 398.63123262, 398.65012055, 398.66868704, 398.68693227, 398.70485642, 398.72245964, 398.73974212, 398.75670402, 398.77334553, 398.78966681, 398.80566804, 398.82134939, 398.83671104, 398.85175317, 398.86647594, 398.88087954, 398.89496414, 398.90872991, 398.92217705, 398.93530571, 398.94811609, 398.96060836, 398.97278269, 398.98463928, 398.99617829, 399.00739991, 399.01830431, 399.02889168, 399.03916221, 399.04911606, 399.05875343, 399.06807449, 399.07707943, 399.08576843, 399.09414167, 399.10219934, 399.10994163, 399.11736871, 399.12448077, 399.131278, 399.13776058, 399.1439287, 399.14978254, 399.1553223, 399.16054816, 399.1654603, 399.17005891, 399.17434419, 399.17831632, 399.18197549, 399.18532189, 399.18835571, 399.19107714, 399.19348637, 399.19558359, 399.197369, 399.19884277, 399.20000512, 399.20085622, 399.20139627, 399.20162547, 399.201544, 399.20115207, 399.20044986, 399.19943757, 399.1981154, 399.19648353, 399.19454218, 399.19229152, 399.18973176, 399.1868631, 399.18368573, 399.18019985, 399.17640565, 399.17230335, 399.16789312, 399.16317518, 399.15814972, 399.15281694, 399.14717704, 399.14123022, 399.13497668, 399.12841663, 399.12155026, 399.11437778, 399.10689938, 399.09911528, 399.09102567, 399.08263075, 399.07393074, 399.06492582, 399.05561622, 399.04600212, 399.03608374, 399.02586128, 399.01533495, 399.00450496, 398.9933715, 398.98193478, 398.97019502, 398.95815242, 398.94580718, 398.93315952, 398.92020964, 398.90695776, 398.89340407, 398.87954879, 398.86539213, 398.8509343, 398.83617551, 398.82111597, 398.80575589, 398.79009548, 398.77413495, 398.75787451, 398.74131439, 398.72445478, 398.70729591, 398.68983798, 398.67208121, 398.65402581, 398.635672, 398.61701999, 398.59807, 398.57882223, 398.55927692, 398.53943427, 398.51929449, 398.49885781, 398.47812445, 398.45709461, 398.43576851, 398.41414639, 398.39222844, 398.37001489, 398.34750596, 398.32470187, 398.30160284, 398.27820909, 398.25452083, 398.23053828, 398.20626168, 398.18169123, 398.15682716, 398.1316697, 398.10621905, 398.08047545, 398.05443912, 398.02811028, 398.00148915, 397.97457595, 397.94737092, 397.91987427, 397.89208623, 397.86400702, 397.83563687, 397.806976, 397.77802464, 397.74878302, 397.71925135, 397.68942987, 397.65931881, 397.62891838, 397.59822882, 397.56725036, 397.53598322, 397.50442763, 397.47258382, 397.44045202, 397.40803246, 397.37532536, 397.34233096, 397.30904949, 397.27548117, 397.24162624, 397.20748493, 397.17305746, 397.13834408, 397.10334501, 397.06806049, 397.03249074, 396.996636, 396.9604965, 396.92407248, 396.88736416, 396.85037179, 396.81309559, 396.77553581, 396.73769267, 396.69956641, 396.66115727, 396.62246547, 396.58349126, 396.54423488, 396.50469655, 396.46487652, 396.42477502, 396.38439229, 396.34372857, 396.30278408, 396.26155909, 396.22005381, 396.17826849, 396.13620337, 396.09385868, 396.05123467, 396.00833158, 395.96514964, 395.92168909, 395.87795018, 395.83393315, 395.78963823, 395.74506568, 395.70021572, 395.6550886, 395.60968457, 395.56400387, 395.51804673, 395.4718134, 395.42530413, 395.37851915, 395.33145872, 395.28412307, 395.23651245, 395.1886271, 395.14046727, 395.0920332, 395.04332514, 394.99434333, 394.94508803, 394.89555947, 394.84575789, 394.79568356, 394.74533671, 394.69471759, 394.64382645, 394.59266353, 394.54122909, 394.48952337, 394.43754662, 394.38529909, 394.33278102, 394.27999267, 394.22693428, 394.1736061, 394.12000839, 394.0661414, 394.01200536, 393.95760055, 393.90292719, 393.84798555, 393.79277588, 393.73729843, 393.68155344, 393.62554118, 393.56926189, 393.51271583, 393.45590324, 393.39882439, 393.34147952, 393.28386889, 393.22599275, 393.16785136, 393.10944496, 393.05077382, 392.99183818, 392.93263831, 392.87317446, 392.81344687, 392.75345582, 392.69320155, 392.63268432, 392.57190438, 392.51086199, 392.44955742, 392.3879909, 392.32616271, 392.2640731, 392.20172233, 392.13911065, 392.07623832, 392.0131056, 391.94971275, 391.88606003, 391.82214769, 391.757976, 391.69354521, 391.62885558, 391.56390738, 391.49870086, 391.43323628, 391.36751391, 391.301534, 391.23529682, 391.16880262, 391.10205167, 391.03504422, 390.96778055, 390.9002609, 390.83248555, 390.76445475, 390.69616878, 390.62762788, 390.55883233, 390.48978238, 390.4204783, 390.35092036, 390.28110881, 390.21104392, 390.14072596, 390.07015519, 389.99933187, 389.92825627, 389.85692865, 389.78534928, 389.71351842, 389.64143634, 389.56910331, 389.49651958, 389.42368543, 389.35060113, 389.27726693, 389.20368312, 389.12984994, 389.05576767, 388.98143658, 388.90685694, 388.832029, 388.75695305, 388.68162934, 388.60605815, 388.53023975, 388.4541744, 388.37786237, 388.30130393, 388.22449935, 388.1474489, 388.07015285, 387.99261147, 387.91482502, 387.83679379, 387.75851803, 387.67999803, 387.60123404, 387.52222634, 387.44297521, 387.3634809, 387.28374371, 387.20376388, 387.12354171, 387.04307745, 386.96237139, 386.88142379, 386.80023492, 386.71880507, 386.63713449, 386.55522347, 386.47307227, 386.39068118, 386.30805046, 386.22518039, 386.14207124, 386.05872328, 385.9751368, 385.89131206, 385.80724933, 385.7229489, 385.63841104, 385.55363601, 385.46862411, 385.3833756, 385.29789076, 385.21216986, 385.12621318, 385.040021, 384.95359359, 384.86693122, 384.78003418, 384.69290275, 384.60553719, 384.51793778, 384.43010481, 384.34203854, 384.25373926, 384.16520725, 384.07644277, 383.98744612, 383.89821756, 383.80875738, 383.71906585, 383.62914326, 383.53898987, 383.44860597, 383.35799184, 383.26714776, 383.17607401, 383.08477086, 382.99323859, 382.90147749, 382.80948784, 382.71726991, 382.62482398, 382.53215034, 382.43924926, 382.34612103, 382.25276592, 382.15918422, 382.06537621, 381.97134217, 381.87708237, 381.78259711, 381.68788666, 381.59295131, 381.49779133, 381.40240701, 381.30679862, 381.21096646, 381.11491081, 381.01863194, 380.92213014, 380.82540569, 380.72845887, 380.63128997, 380.53389928, 380.43628706, 380.33845362, 380.24039922, 380.14212416, 380.04362871, 379.94491316, 379.84597781, 379.74682292, 379.64744878, 379.54785568, 379.4480439, 379.34801373, 379.24776545, 379.14729935, 379.04661571, 378.94571481, 378.84459694, 378.7432624, 378.64171145, 378.53994439, 378.4379615, 378.33576307, 378.23334939, 378.13072073, 378.0278774, 377.92481966, 377.82154782, 377.71806214, 377.61436294, 377.51045047, 377.40632505, 377.30198695, 377.19743645, 377.09267385, 376.98769944, 376.88251349, 376.7771163, 376.67150816, 376.56568935, 376.45966016, 376.35342088, 376.24697179, 376.14031319, 376.03344537, 375.9263686, 375.81908318, 375.7115894, 375.60388754, 375.4959779, 375.38786076, 375.27953641, 375.17100514, 375.06226724, 374.953323, 374.84417271, 374.73481665, 374.62525512, 374.51548841, 374.4055168, 374.29534059, 374.18496006, 374.07437551, 373.96358722, 373.85259548, 373.74140059, 373.63000283, 373.5184025, 373.40659988, 373.29459527, 373.18238896, 373.06998123, 372.95737238, 372.84456269, 372.73155247, 372.61834199, 372.50493155, 372.39132145, 372.27751197, 372.1635034, 372.04929604, 371.93489018, 371.8202861, 371.7054841, 371.59048448, 371.47528752, 371.35989351, 371.24430275, 371.12851553, 371.01253214, 370.89635287, 370.77997801, 370.66340786, 370.54664272, 370.42968286, 370.31252859, 370.19518019, 370.07763796, 369.9599022, 369.84197318, 369.72385122, 369.60553659, 369.4870296, 369.36833053, 369.24943968, 369.13035735, 369.01108381, 368.89161938, 368.77196433, 368.65211897, 368.53208359, 368.41185848, 368.29144394, 368.17084025, 368.05004771, 367.92906662, 367.80789727, 367.68653995, 367.56499496, 367.44326259, 367.32134313, 367.19923688, 367.07694414, 366.95446519, 366.83180033, 366.70894985, 366.58591406, 366.46269324, 366.33928768, 366.21569769, 366.09192355, 365.96796557, 365.84382403, 365.71949923, 365.59499147, 365.47030103, 365.34542822, 365.22037333, 365.09513665, 364.96971848, 364.84411911, 364.71833884, 364.59237796, 364.46623677, 364.33991557, 364.21341464, 364.08673428, 363.9598748, 363.83283647, 363.70561961, 363.5782245, 363.45065144, 363.32290072, 363.19497264, 363.0668675, 362.93858559, 362.8101272, 362.68149263, 362.55268219, 362.42369615, 362.29453482, 362.1651985, 362.03568747, 361.90600204, 361.7761425, 361.64610915, 361.51590228, 361.38552218, 361.25496916, 361.12424351, 360.99334552, 360.8622755, 360.73103373, 360.59962051, 360.46803614, 360.33628092, 360.20435514, 360.07225909, 359.93999307, 359.80755739, 359.67495232, 359.54217818, 359.40923525, 359.27612384, 359.14284423, 359.00939673, 358.87578163, 358.74199923, 358.60804981, 358.47393369, 358.33965115, 358.2052025, 358.07058802, 357.93580801, 357.80086278, 357.66575261, 357.5304778, 357.39503865, 357.25943546, 357.12366852, 356.98773812, 356.85164457, 356.71538815, 356.57896917, 356.44238793, 356.30564471, 356.16873982, 356.03167355, 355.89444619, 355.75705805, 355.61950942, 355.48180059, 355.34393186, 355.20590354, 355.0677159, 354.92936926, 354.79086391, 354.65220014, 354.51337825, 354.37439853, 354.23526128, 354.09596681, 353.9565154, 353.81690734, 353.67714295, 353.53722251, 353.39714631, 353.25691466, 353.11652786, 352.97598619, 352.83528995, 352.69443945, 352.55343497, 352.41227681, 352.27096527, 352.12950064, 351.98788322, 351.84611331, 351.7041912, 351.56211719, 351.41989158, 351.27751465, 351.13498671, 350.99230805, 350.84947897, 350.70649976, 350.56337072, 350.42009215, 350.27666434, 350.13308758, 349.98936218, 349.84548842, 349.70146661, 349.55729704, 349.41298001, 349.26851581, 349.12390473, 348.97914707, 348.83424314, 348.68919321, 348.5439976, 348.39865659, 348.25317048, 348.10753957, 347.96176414, 347.81584451, 347.66978095, 347.52357377, 347.37722326, 347.23072972, 347.08409344, 346.93731472, 346.79039386, 346.64333114, 346.49612686, 346.34878132, 346.20129481, 346.05366763, 345.90590008, 345.75799244, 345.60994501, 345.46175809, 345.31343197, 345.16496695, 345.01636332, 344.86762138, 344.71874141, 344.56972372, 344.42056861, 344.27127635, 344.12184725, 343.97228161, 343.82257971, 343.67274185, 343.52276833, 343.37265944, 343.22241547, 343.07203672, 342.92152348, 342.77087605, 342.62009472, 342.46917978, 342.31813153, 342.16695026, 342.01563626, 341.86418983, 341.71261127, 341.56090086, 341.4090589, 341.25708568, 341.1049815, 340.95274665, 340.80038142, 340.64788611, 340.495261, 340.3425064, 340.18962259, 340.03660987, 339.88346853, 339.73019887, 339.57680117, 339.42327574, 339.26962285, 339.11584281, 338.96193591, 338.80790244, 338.65374269, 338.49945695, 338.34504552, 338.19050869, 338.03584675, 337.88106, 337.72614872, 337.57111321, 337.41595376, 337.26067066, 337.1052642, 336.94973468, 336.79408239, 336.63830761, 336.48241064, 336.32639178, 336.1702513, 336.01398951, 335.85760669, 335.70110315, 335.54447915, 335.38773501, 335.230871, 335.07388743, 334.91678457, 334.75956273, 334.60222218, 334.44476323, 334.28718616, 334.12949127, 333.97167884, 333.81374916, 333.65570253, 333.49753923, 333.33925955, 333.18086379, 333.02235223, 332.86372517, 332.70498288, 332.54612568, 332.38715383, 332.22806763, 332.06886737, 331.90955335, 331.75012584, 331.59058514, 331.43093154, 331.27116532, 331.11128678, 330.95129621, 330.79119388, 330.6309801, 330.47065514, 330.3102193, 330.14967287, 329.98901613, 329.82824937, 329.66737288, 329.50638695, 329.34529187, 329.18408792, 329.02277539, 328.86135457, 328.69982574, 328.5381892, 328.37644523, 328.21459411, 328.05263614, 327.8905716, 327.72840078, 327.56612397, 327.40374144, 327.2412535, 327.07866042, 326.91596249, 326.75316, 326.59025323, 326.42724247, 326.26412801, 326.10091012, 325.93758911, 325.77416525, 325.61063882, 325.44701012, 325.28327943, 325.11944704, 324.95551322, 324.79147826, 324.62734246, 324.46310609, 324.29876944, 324.13433279, 323.96979643, 323.80516065, 323.64042572, 323.47559193, 323.31065956, 323.1456289, 322.98050024, 322.81527385, 322.64995002, 322.48452904, 322.31901118, 322.15339673, 321.98768598, 321.8218792, 321.65597668, 321.4899787, 321.32388554, 321.15769749, 320.99141484, 320.82503785, 320.65856682, 320.49200202, 320.32534374, 320.15859227, 319.99174787, 319.82481084, 319.65778145, 319.49065999, 319.32344673, 319.15614197, 318.98874597, 318.82125903, 318.65368141, 318.48601341, 318.3182553, 318.15040737, 317.98246988, 317.81444314, 317.6463274, 317.47812296, 317.30983009, 317.14144907, 316.97298019, 316.80442372, 316.63577994, 316.46704913, 316.29823157, 316.12932753, 315.96033731, 315.79126117, 315.62209939, 315.45285226, 315.28352004, 315.11410303, 314.94460149, 314.77501571, 314.60534596, 314.43559252, 314.26575567, 314.09583568, 313.92583284, 313.75574741, 313.58557968, 313.41532992, 313.24499841, 313.07458543, 312.90409125, 312.73351615, 312.5628604, 312.39212429, 312.22130808, 312.05041205, 311.87943648, 311.70838164, 311.53724781, 311.36603527, 311.19474428, 311.02337513, 310.85192808, 310.68040342, 310.50880141, 310.33712234, 310.16536647, 309.99353408, 309.82162544, 309.64964084, 309.47758053, 309.30544479, 309.1332339, 308.96094814, 308.78858776, 308.61615306, 308.44364429, 308.27106173, 308.09840566, 307.92567634, 307.75287405, 307.57999906, 307.40705164, 307.23403207, 307.06094061, 306.88777754, 306.71454312, 306.54123763, 306.36786135, 306.19441453, 306.02089745, 305.84731039, 305.67365361, 305.49992737, 305.32613196, 305.15226765, 304.97833469, 304.80433336, 304.63026394, 304.45612668, 304.28192186, 304.10764975, 303.93331061, 303.75890472, 303.58443234, 303.40989374, 303.2352892, 303.06061897, 302.88588332, 302.71108253, 302.53621685, 302.36128657, 302.18629194, 302.01123323, 301.8361107, 301.66092464, 301.48567529, 301.31036294, 301.13498783, 300.95955025, 300.78405045, 300.60848871, 300.43286528, 300.25718043, 300.08143443, 299.90562755, 299.72976004, 299.55383217, 299.37784422, 299.20179643, 299.02568907, 298.84952242, 298.67329673, 298.49701227, 298.3206693, 298.14426808, 297.96780887, 297.79129195, 297.61471757, 297.438086, 297.26139749, 297.08465232, 296.90785074, 296.73099301, 296.5540794, 296.37711016, 296.20008557, 296.02300588, 295.84587135, 295.66868224, 295.49143881, 295.31414133, 295.13679006, 294.95938525, 294.78192716, 294.60441606, 294.42685221, 294.24923586, 294.07156727, 293.8938467, 293.71607442, 293.53825068, 293.36037574, 293.18244985, 293.00447329, 292.82644629, 292.64836913, 292.47024206, 292.29206534, 292.11383922, 291.93556397, 291.75723983, 291.57886707, 291.40044595, 291.22197671, 291.04345962, 290.86489494, 290.68628291, 290.50762379, 290.32891784, 290.15016532, 289.97136648, 289.79252158, 289.61363086, 289.43469459, 289.25571302, 289.0766864, 288.89761499, 288.71849905, 288.53933881, 288.36013455, 288.18088651, 288.00159495, 287.82226011, 287.64288225, 287.46346163, 287.2839985, 287.10449311, 286.9249457, 286.74535654, 286.56572587, 286.38605395, 286.20634103, 286.02658735, 285.84679318, 285.66695875, 285.48708433, 285.30717016, 285.12721648, 284.94722356, 284.76719164, 284.58712097, 284.4070118, 284.22686438, 284.04667896, 283.86645579, 283.68619511, 283.50589717, 283.32556223, 283.14519052, 282.96478231, 282.78433783, 282.60385734, 282.42334107, 282.24278928, 282.06220222, 281.88158013, 281.70092325, 281.52023184, 281.33950614, 281.1587464, 280.97795285, 280.79712576, 280.61626535, 280.43537188, 280.2544456, 280.07348674, 279.89249555, 279.71147228, 279.53041717, 279.34933046, 279.1682124, 278.98706323, 278.80588319, 278.62467254, 278.4434315, 278.26216032, 278.08085925, 277.89952852, 277.71816839, 277.53677908, 277.35536085, 277.17391394, 276.99243857, 276.81093501, 276.62940348, 276.44784423, 276.2662575, 276.08464353, 275.90300256, 275.72133482, 275.53964057, 275.35792003, 275.17617344, 274.99440106, 274.81260311, 274.63077983, 274.44893146, 274.26705824, 274.08516041, 273.9032382, 273.72129186, 273.53932161, 273.35732771, 273.17531038, 272.99326985, 272.81120638, 272.62912019, 272.44701152, 272.2648806, 272.08272767, 271.90055298, 271.71835674, 271.5361392, 271.35390059, 271.17164114, 270.9893611, 270.80706069, 270.62474015, 270.44239971, 270.26003961, 270.07766007, 269.89526134, 269.71284364, 269.53040721, 269.34795228, 269.16547909, 268.98298785, 268.80047882, 268.6179522, 268.43540825, 268.25284719, 268.07026925, 267.88767466, 267.70506366, 267.52243646, 267.33979331, 267.15713443, 266.97446005, 266.79177041, 266.60906572, 266.42634623, 266.24361215, 266.06086372, 265.87810116, 265.69532471, 265.51253459, 265.32973103, 265.14691425, 264.96408449, 264.78124197, 264.59838691, 264.41551955, 264.23264011, 264.04974882, 263.8668459, 263.68393157, 263.50100607, 263.31806962, 263.13512244, 262.95216476, 262.76919681, 262.5862188, 262.40323096, 262.22023351, 262.03722669, 261.85421071, 261.67118579, 261.48815217, 261.30511005, 261.12205967, 260.93900125, 260.755935, 260.57286115, 260.38977993, 260.20669155, 260.02359623, 259.8404942, 259.65738568, 259.47427088, 259.29115003, 259.10802335, 258.92489106, 258.74175337, 258.55861051, 258.37546269, 258.19231014, 258.00915307, 257.82599171, 257.64282626, 257.45965695, 257.276484, 257.09330762, 256.91012803, 256.72694545, 256.5437601, 256.36057218, 256.17738193, 255.99418954, 255.81099525, 255.62779926, 255.4446018, 255.26140307, 255.07820329, 254.89500268, 254.71180146, 254.52859982, 254.345398, 254.1621962, 253.97899464, 253.79579352, 253.61259308, 253.4293935, 253.24619502, 253.06299784, 252.87980218, 252.69660824, 252.51341624, 252.33022639, 252.1470389, 251.96385399, 251.78067186, 251.59749272, 251.41431678, 251.23114426, 251.04797537, 250.86481031, 250.68164929, 250.49849253, 250.31534023, 250.1321926, 249.94904985, 249.76591219, 249.58277982, 249.39965296, 249.21653181, 249.03341657, 248.85030747, 248.66720469, 248.48410846, 248.30101897, 248.11793644, 247.93486106, 247.75179304, 247.5687326, 247.38567993, 247.20263524, 247.01959873, 246.83657062, 246.65355109, 246.47054037, 246.28753864, 246.10454612, 245.92156301, 245.73858951, 245.55562582, 245.37267215, 245.1897287, 245.00679567, 244.82387327, 244.64096169, 244.45806114, 244.27517181, 244.09229391, 243.90942764, 243.72657321, 243.5437308, 243.36090062, 243.17808287, 242.99527776, 242.81248547, 242.62970621, 242.44694017, 242.26418756, 242.08144858, 241.89872342, 241.71601227, 241.53331535, 241.35063283, 241.16796493, 240.98531184, 240.80267376, 240.62005087, 240.43744339, 240.2548515, 240.07227539, 239.88971528, 239.70717134, 239.52464378, 239.34213278, 239.15963856, 238.97716129, 238.79470117, 238.6122584, 238.42983317, 238.24742567, 238.0650361, 237.88266465, 237.70031151, 237.51797687, 237.33566093, 237.15336388, 236.9710859, 236.7888272, 236.60658796, 236.42436837, 236.24216863, 236.05998891, 235.87782942, 235.69569035, 235.51357188, 235.3314742, 235.1493975, 234.96734197, 234.7853078, 234.60329518, 234.42130429, 234.23933533, 234.05738848, 233.87546392, 233.69356186, 233.51168246, 233.32982593, 233.14799244, 232.96618218, 232.78439534, 232.6026321, 232.42089265, 232.23917718, 232.05748587, 231.8758189, 231.69417646, 231.51255873, 231.33096589, 231.14939814, 230.96785565, 230.78633861, 230.6048472, 230.4233816, 230.241942, 230.06052857, 229.87914151, 229.69778098, 229.51644718, 229.33514028, 229.15386047, 228.97260792, 228.79138282, 228.61018535, 228.42901568, 228.247874, 228.06676048, 227.88567531, 227.70461866, 227.52359072, 227.34259166, 227.16162166, 226.98068089, 226.79976955, 226.61888779, 226.43803581, 226.25721377, 226.07642186, 225.89566025, 225.71492911, 225.53422863, 225.35355898, 225.17292033, 224.99231286, 224.81173675, 224.63119217, 224.45067929, 224.27019829, 224.08974935, 223.90933263, 223.72894831, 223.54859656, 223.36827756, 223.18799148, 223.00773849, 222.82751877, 222.64733248, 222.4671798, 222.2870609, 222.10697595, 221.92692512, 221.74690859, 221.56692652, 221.38697909, 221.20706645, 221.02718879, 220.84734628, 220.66753908, 220.48776736, 220.30803129, 220.12833104, 219.94866677, 219.76903866, 219.58944688, 219.40989159, 219.23037295, 219.05089114, 218.87144633, 218.69203867, 218.51266833, 218.33333549, 218.15404031, 217.97478294, 217.79556357, 217.61638235, 217.43723944, 217.25813502, 217.07906925, 216.90004228, 216.72105429, 216.54210544, 216.36319589, 216.18432581, 216.00549535, 215.82670468, 215.64795397, 215.46924337, 215.29057304, 215.11194315, 214.93335386, 214.75480534, 214.57629773, 214.3978312, 214.21940592, 214.04102204, 213.86267972, 213.68437912, 213.5061204, 213.32790372, 213.14972924, 212.97159712, 212.79350751, 212.61546057, 212.43745647, 212.25949535, 212.08157738, 211.90370272, 211.72587151, 211.54808392, 211.3703401, 211.19264021, 211.01498441, 210.83737284, 210.65980568, 210.48228306, 210.30480514, 210.12737209, 209.94998405, 209.77264118, 209.59534363, 209.41809155, 209.2408851, 209.06372444, 208.88660971, 208.70954106, 208.53251866, 208.35554264, 208.17861317, 208.0017304, 207.82489447, 207.64810553, 207.47136375, 207.29466926, 207.11802222, 206.94142278, 206.76487109, 206.58836729, 206.41191154, 206.23550399, 206.05914478, 205.88283406, 205.70657199, 205.53035871, 205.35419436, 205.1780791, 205.00201306, 204.82599641, 204.65002929, 204.47411183, 204.2982442, 204.12242653, 203.94665896, 203.77094166, 203.59527475, 203.41965839, 203.24409273, 203.06857789, 202.89311404, 202.71770131, 202.54233984, 202.36702979, 202.19177129, 202.01656449, 201.84140952, 201.66630654, 201.49125568, 201.31625709, 201.14131091, 200.96641728, 200.79157633, 200.61678822, 200.44205308, 200.26737105, 200.09274228, 199.9181669, 199.74364505, 199.56917688, 199.39476251, 199.2204021, 199.04609577, 198.87184367, 198.69764594, 198.52350271, 198.34941413, 198.17538032, 198.00140143, 197.82747759, 197.65360894, 197.47979562, 197.30603776, 197.13233549, 196.95868897, 196.78509831, 196.61156366, 196.43808514, 196.2646629, 196.09129707, 195.91798779, 195.74473518, 195.57153938, 195.39840053, 195.22531875, 195.05229419, 194.87932696, 194.70641722, 194.53356508, 194.36077068, 194.18803416, 194.01535563, 193.84273524, 193.67017312, 193.49766939, 193.32522419, 193.15283765, 192.98050989, 192.80824105, 192.63603125, 192.46388064, 192.29178932, 192.11975744, 191.94778512, 191.77587249, 191.60401967, 191.4322268, 191.26049401, 191.08882141, 190.91720915, 190.74565733, 190.5741661, 190.40273557, 190.23136588, 190.06005714, 189.88880949, 189.71762305, 189.54649794, 189.37543429, 189.20443222, 189.03349186, 188.86261334, 188.69179677, 188.52104227, 188.35034998, 188.17972002, 188.0091525, 187.83864756, 187.6682053, 187.49782586, 187.32750936, 187.15725592, 186.98706566, 186.81693869, 186.64687515, 186.47687515, 186.30693881, 186.13706626, 185.96725761, 185.79751298, 185.62783249, 185.45821626, 185.28866441, 185.11917705, 184.94975432, 184.78039631, 184.61110316, 184.44187498, 184.27271188, 184.10361399, 183.93458142, 183.76561429, 183.59671271, 183.4278768, 183.25910667, 183.09040245, 182.92176425, 182.75319217, 182.58468634, 182.41624688, 182.24787389, 182.07956749, 181.91132779, 181.74315492, 181.57504897, 181.40701007, 181.23903832, 181.07113385, 180.90329675, 180.73552715, 180.56782516, 180.40019089, 180.23262444, 180.06512594, 179.89769549, 179.7303332, 179.56303918, 179.39581355, 179.22865641, 179.06156788, 178.89454806, 178.72759705, 178.56071498, 178.39390196, 178.22715807, 178.06048345, 177.89387819, 177.7273424, 177.5608762, 177.39447968, 177.22815295, 177.06189613, 176.89570931, 176.72959261, 176.56354613, 176.39756998, 176.23166426, 176.06582907, 175.90006453, 175.73437074, 175.5687478, 175.40319581, 175.23771489, 175.07230513, 174.90696664, 174.74169953, 174.57650388, 174.41137982, 174.24632744, 174.08134684, 173.91643813, 173.7516014, 173.58683677, 173.42214432, 173.25752417, 173.09297641, 172.92850115, 172.76409848, 172.59976851, 172.43551133, 172.27132705, 172.10721576, 171.94317757, 171.77921257, 171.61532087, 171.45150255, 171.28775772, 171.12408649, 170.96048894, 170.79696517, 170.63351528, 170.47013937, 170.30683754, 170.14360988, 169.98045649, 169.81737746, 169.65437289, 169.49144288, 169.32858752, 169.16580691, 169.00310115, 168.84047032, 168.67791452, 168.51543385, 168.3530284, 168.19069827, 168.02844354, 167.86626432, 167.70416069, 167.54213275, 167.38018059, 167.2183043, 167.05650398, 166.89477972, 166.73313161, 166.57155973, 166.41006419, 166.24864508, 166.08730248, 165.92603648, 165.76484718, 165.60373466, 165.44269903, 165.28174035, 165.12085873, 164.96005426, 164.79932701, 164.63867709, 164.47810458, 164.31760957, 164.15719214, 163.99685239, 163.8365904, 163.67640626, 163.51630005, 163.35627187, 163.1963218, 163.03644993, 162.87665634, 162.71694111, 162.55730434, 162.39774611, 162.23826651, 162.07886561, 161.91954351, 161.76030029, 161.60113604, 161.44205083, 161.28304475, 161.12411789, 160.96527033, 160.80650215, 160.64781343, 160.48920426, 160.33067472, 160.1722249, 160.01385487, 159.85556471, 159.69735451, 159.53922436, 159.38117432, 159.22320448, 159.06531493, 158.90750573, 158.74977698, 158.59212875, 158.43456113, 158.27707418, 158.119668, 157.96234266, 157.80509823, 157.6479348, 157.49085245, 157.33385125, 157.17693129, 157.02009263, 156.86333536, 156.70665955, 156.55006529, 156.39355264, 156.23712169, 156.08077251, 155.92450517, 155.76831976, 155.61221635, 155.45619501, 155.30025582, 155.14439885, 154.98862418, 154.83293189, 154.67732204, 154.52179471, 154.36634998, 154.21098792, 154.0557086, 153.9005121, 153.74539849, 153.59036783, 153.43542022, 153.2805557, 153.12577437, 152.97107628, 152.81646152, 152.66193015, 152.50748224, 152.35311787, 152.19883711, 152.04464002, 151.89052667, 151.73649715, 151.58255151, 151.42868982, 151.27491217, 151.1212186, 150.9676092, 150.81408403, 150.66064316, 150.50728667, 150.3540146, 150.20082705, 150.04772406, 149.89470572, 149.74177208, 149.58892321, 149.43615919, 149.28348007, 149.13088593, 148.97837683, 148.82595283, 148.673614, 148.52136041, 148.36919212, 148.2171092, 148.06511171, 147.91319971, 147.76137328, 147.60963247, 147.45797734, 147.30640797, 147.15492442, 147.00352674, 146.852215, 146.70098927, 146.54984961, 146.39879607, 146.24782873, 146.09694764, 145.94615286, 145.79544446, 145.6448225, 145.49428704, 145.34383814, 145.19347586, 145.04320025, 144.89301139, 144.74290934, 144.59289414, 144.44296586, 144.29312456, 144.1433703, 143.99370314, 143.84412313, 143.69463034, 143.54522483, 143.39590664, 143.24667584, 143.09753249, 142.94847665, 142.79950836, 142.6506277, 142.50183471, 142.35312945, 142.20451198, 142.05598235, 141.90754062, 141.75918685, 141.6109211, 141.4627434, 141.31465383, 141.16665244, 141.01873928, 140.8709144, 140.72317787, 140.57552973, 140.42797003, 140.28049884, 140.1331162, 139.98582218, 139.83861681, 139.69150016, 139.54447227, 139.3975332, 139.25068301, 139.10392173, 138.95724944, 138.81066617, 138.66417197, 138.51776691, 138.37145102, 138.22522437, 138.079087, 137.93303895, 137.78708029, 137.64121106, 137.49543132, 137.3497411, 137.20414046, 137.05862945, 136.91320812, 136.76787652, 136.62263469, 136.47748268, 136.33242054, 136.18744832, 136.04256607, 135.89777384, 135.75307166, 135.60845959, 135.46393768, 135.31950597, 135.1751645, 135.03091333, 134.8867525, 134.74268206, 134.59870205, 134.45481251, 134.3110135, 134.16730505, 134.02368722, 133.88016004, 133.73672356, 133.59337783, 133.45012289, 133.30695878, 133.16388554, 133.02090323, 132.87801188, 132.73521153, 132.59250223, 132.44988403, 132.30735695, 132.16492106, 132.02257638, 131.88032296, 131.73816084, 131.59609006, 131.45411067, 131.3122227, 131.1704262, 131.0287212, 130.88710775, 130.74558589, 130.60415565, 130.46281708, 130.32157021, 130.18041509, 130.03935176, 129.89838024, 129.75750059, 129.61671284, 129.47601703, 129.3354132, 129.19490139, 129.05448162, 128.91415395, 128.77391841, 128.63377503, 128.49372386, 128.35376492, 128.21389826, 128.07412392, 127.93444192, 127.79485231, 127.65535512, 127.51595039, 127.37663815, 127.23741843, 127.09829128, 126.95925673, 126.82031481, 126.68146555, 126.542709, 126.40404519, 126.26547414, 126.1269959, 125.98861049, 125.85031795, 125.71211832, 125.57401162, 125.43599789, 125.29807717, 125.16024948, 125.02251485, 124.88487333, 124.74732493, 124.6098697, 124.47250766, 124.33523885, 124.19806329, 124.06098102, 123.92399207, 123.78709646, 123.65029424, 123.51358542, 123.37697005, 123.24044814, 123.10401973, 122.96768485, 122.83144352, 122.69529579, 122.55924166, 122.42328119, 122.28741438, 122.15164127, 122.0159619, 121.88037628, 121.74488444, 121.60948642, 121.47418223, 121.33897192, 121.20385549, 121.06883299, 120.93390444, 120.79906986, 120.66432928, 120.52968272, 120.39513022, 120.26067179, 120.12630747, 119.99203728, 119.85786124, 119.72377938, 119.58979173, 119.4558983, 119.32209913, 119.18839423, 119.05478364, 118.92126737, 118.78784545, 118.65451791, 118.52128476, 118.38814603, 118.25510174, 118.12215191, 117.98929658, 117.85653576, 117.72386946, 117.59129773, 117.45882057, 117.32643801, 117.19415007, 117.06195677, 116.92985814, 116.79785419, 116.66594494, 116.53413042, 116.40241065, 116.27078564, 116.13925542, 116.00782001, 115.87647942, 115.74523368, 115.61408281, 115.48302682, 115.35206574, 115.22119958, 115.09042836, 114.95975211, 114.82917083, 114.69868455, 114.56829329, 114.43799706, 114.30779588, 114.17768977, 114.04767875, 113.91776283, 113.78794203, 113.65821637, 113.52858586, 113.39905052, 113.26961038, 113.14026543, 113.0110157, 112.88186121, 112.75280198, 112.623838, 112.49496931, 112.36619592, 112.23751784, 112.10893509, 111.98044767, 111.85205562, 111.72375893, 111.59555763, 111.46745173, 111.33944124, 111.21152618, 111.08370655, 110.95598238, 110.82835368, 110.70082046, 110.57338272, 110.4460405, 110.31879378, 110.1916426, 110.06458696, 109.93762688, 109.81076236, 109.68399342, 109.55732006, 109.43074231, 109.30426017, 109.17787365, 109.05158276, 108.92538752, 108.79928793, 108.673284, 108.54737575, 108.42156319, 108.29584632, 108.17022515, 108.0446997, 107.91926997, 107.79393598, 107.66869772, 107.54355522, 107.41850847, 107.2935575, 107.1687023, 107.04394288, 106.91927926, 106.79471143, 106.67023942, 106.54586322, 106.42158284, 106.2973983, 106.17330959, 106.04931672, 105.92541971, 105.80161856, 105.67791327, 105.55430385, 105.43079031, 105.30737265, 105.18405088, 105.060825, 104.93769503, 104.81466096, 104.6917228, 104.56888055, 104.44613423, 104.32348384, 104.20092937, 104.07847083, 103.95610824, 103.83384159, 103.71167089, 103.58959613, 103.46761733, 103.34573449, 103.22394761, 103.1022567, 102.98066175, 102.85916277, 102.73775976, 102.61645274, 102.49524168, 102.37412661, 102.25310753, 102.13218442, 102.01135731, 101.89062618, 101.76999104, 101.64945189, 101.52900873, 101.40866157, 101.2884104, 101.16825523, 101.04819605, 100.92823287, 100.80836568, 100.68859449, 100.5689193, 100.4493401, 100.3298569, 100.21046969, 100.09117848, 99.97198327, 99.85288405, 99.73388082, 99.61497358, 99.49616233, 99.37744707, 99.2588278, 99.14030451, 99.0218772, 98.90354588, 98.78531054, 98.66717117, 98.54912777, 98.43118035, 98.3133289, 98.19557341, 98.07791388, 97.96035032, 97.84288271, 97.72551105, 97.60823534, 97.49105558, 97.37397176, 97.25698388, 97.14009193, 97.0232959, 96.9065958, 96.78999163, 96.67348336, 96.55707101, 96.44075456, 96.32453401, 96.20840935, 96.09238058, 95.9764477, 95.86061069, 95.74486955, 95.62922428, 95.51367487, 95.39822131, 95.28286359, 95.16760172, 95.05243567, 94.93736546, 94.82239106, 94.70751247, 94.59272969, 94.47804271, 94.36345151, 94.2489561, 94.13455646, 94.02025258, 93.90604446, 93.7919321, 93.67791547, 93.56399457, 93.4501694, 93.33643994, 93.22280619, 93.10926814, 92.99582577, 92.88247908, 92.76922806, 92.6560727, 92.54301298, 92.43004891, 92.31718047, 92.20440764, 92.09173042, 91.9791488, 91.86666277, 91.75427232, 91.64197743, 91.5297781, 91.41767431, 91.30566605, 91.19375332, 91.08193609, 90.97021437, 90.85858813, 90.74705736, 90.63562206, 90.52428221, 90.41303779, 90.3018888, 90.19083523, 90.07987706, 89.96901427, 89.85824686, 89.74757481, 89.6369981, 89.52651674, 89.41613069, 89.30583996, 89.19564451, 89.08554435, 88.97553946, 88.86562981, 88.75581541, 88.64609623, 88.53647226, 88.42694349, 88.31750989, 88.20817146, 88.09892818, 87.98978004, 87.88072701, 87.77176909, 87.66290627, 87.55413851, 87.44546581, 87.33688816, 87.22840553, 87.12001791, 87.01172528, 86.90352763, 86.79542494, 86.6874172, 86.57950439, 86.47168648, 86.36396347, 86.25633534, 86.14880206, 86.04136363, 85.93402003, 85.82677123, 85.71961722, 85.61255798, 85.5055935, 85.39872375, 85.29194872, 85.18526839, 85.07868274, 84.97219175, 84.86579541, 84.75949369, 84.65328658, 84.54717405, 84.4411561, 84.33523269, 84.22940381, 84.12366944, 84.01802956, 83.91248416, 83.8070332, 83.70167667, 83.59641456, 83.49124684, 83.38617348, 83.28119448, 83.17630981, 83.07151944, 82.96682336, 82.86222155, 82.75771399, 82.65330065, 82.54898152, 82.44475657, 82.34062578, 82.23658913, 82.13264659, 82.02879816, 81.92504379, 81.82138348, 81.7178172, 81.61434493, 81.51096664, 81.40768232, 81.30449194, 81.20139547, 81.0983929, 80.9954842, 80.89266936, 80.78994833, 80.68732111, 80.58478767, 80.48234799, 80.38000204, 80.27774979, 80.17559123, 80.07352634, 79.97155507, 79.86967743, 79.76789337, 79.66620287, 79.56460592, 79.46310248, 79.36169253, 79.26037605, 79.15915301, 79.05802338, 78.95698714, 78.85604428, 78.75519475, 78.65443853, 78.55377561, 78.45320595, 78.35272953, 78.25234632, 78.1520563, 78.05185944, 77.95175571, 77.85174509, 77.75182755, 77.65200307, 77.55227161, 77.45263316, 77.35308768, 77.25363515, 77.15427555, 77.05500883, 76.95583499, 76.85675398, 76.75776579, 76.65887038, 76.56006773, 76.46135781, 76.36274059, 76.26421604, 76.16578414, 76.06744486, 75.96919817, 75.87104404, 75.77298244, 75.67501335, 75.57713673, 75.47935256, 75.38166081, 75.28406145, 75.18655444, 75.08913977, 74.99181741, 74.89458731, 74.79744946, 74.70040382, 74.60345037, 74.50658907, 74.4098199, 74.31314282, 74.21655781, 74.12006483, 74.02366385, 73.92735486, 73.8311378, 73.73501266, 73.63897941, 73.543038, 73.44718842, 73.35143063, 73.2557646, 73.16019029, 73.06470769, 6.11844245, 12.2295471, 18.32599083, 24.40047979, 30.44576397, 36.45465161, 42.42002346, 48.33484683, 54.19218941, 59.98523278, 65.70728568, 71.35179682, 76.91236741, 82.38276317, 87.756926, 93.02898503, 98.19326733, 103.24430792, 108.1768593, 112.98590043, 117.666645, 122.21454918, 126.62531866, 130.89491509, 135.01956179, 138.99574883, 142.82023741, 146.49006356, 150.00254112, 153.35526405, 156.54610805, 159.57323146, 162.43507547, 165.13036376, 167.65810127, 170.01757254, 172.20833923, 174.23023713, 176.08337247, 177.76811772, 179.28510678, 180.6352296, 181.81962633, 182.83968094, 183.69701436, 184.39347718, 184.93114194, 185.31229503, 185.53942821, 185.61522983, 185.54257569, 185.32451975, 184.96428446, 184.46525096, 183.83094915, 183.06504747, 182.17134276, 181.15374986, 180.01629127, 178.76308676, 177.39834296, 175.92634304, 174.35143638, 172.67802842, 170.91057054, 169.05355017, 167.11148097, 165.08889327, 162.99032469, 160.82031102, 158.58337728, 156.28402915, 153.92674459, 151.51596581, 149.05609153, 146.55146961, 144.00638992, 141.42507768, 138.81168705, 136.17029514, 133.50489637, 130.81939717, 128.11761114, 125.40325446, 122.67994179, 119.9511825, 117.22037722, 114.49081489, 111.76567002, 109.04800044, 106.34074532, 103.6467236, 100.96863269, 98.3090476, 95.67042026, 93.05507929, 90.46522995, 87.90295449, 85.37021268, 82.86884267, 80.40056209, 77.96696937, 75.56954532, 73.20965487, 70.88854911, 68.60736741, 66.36713978, 64.16878934, 62.01313503, 59.90089433, 57.83268621, 55.8090341, 53.83036903, 51.89703278, 50.0092812, 48.16728743, 46.37114535, 44.62087292, 42.91641563, 41.25764991, 39.64438659, 38.0763743, 36.55330291, 35.07480692, 33.64046882, 32.24982238, 30.90235597, 29.59751576, 28.33470886, 27.11330646, 25.9326468, 24.79203819, 23.69076182, 22.62807455, 21.60321166, 20.61538943, 19.66380764, 18.74765204, 17.86609664, 17.01830597, 16.20343721, 15.42064222, 14.66906948, 13.94786594, 13.25617875, 12.59315691, 11.95795283, 11.34972377, 10.76763319, 10.21085205, 9.67855996, 9.16994628, 8.68421112, 8.22056626, 7.77823599, 7.35645788, 6.95448342, 6.57157869, 6.20702486, 5.86011867, 5.53017284, 5.21651639, 4.91849497, 4.63547106, 4.36682413, 4.11195079, 3.87026488, 3.64119744, 3.42419677, 3.21872835, 3.02427473, 2.84033547, 2.66642693, 2.50208211, 2.34685045, 2.20029761, 2.06200516, 1.9315704, 1.80860596, 1.6927396, 1.5836138, 1.4808855, 1.38422568, 1.29331909, 1.20786383, 1.12757104, 1.05216445, 0.98138011, 0.91496593, 0.85268136, 0.79429699, 0.73959419, 0.68836474, 0.64041046, 0.59554285, 0.55358271, 0.51435984, 0.47771263, 0.44348778, 0.4115399, 0.38173126, 0.35393138, 0.32801682, 0.30387079, 0.28138289, 0.26044884, 0.24097015, 0.22285392, 0.20601251, 0.19036334, 0.1758286, 0.16233504, 0.14981377, 0.13819996, 0.12743273, 0.11745485, 0.10821264, 0.09965569, 0.09173677, 0.08441158, 0.07763865, 0.07137915, 0.06559675, 0.06025746, 0.05532953, 0.0507833, 0.04659108, 0.042727, 0.03916698, 0.03588854, 0.03287075, 0.03009412, 0.02754051, 0.02519304, 0.02303603, 0.0210549, 0.0192361, 0.01756709, 0.01603618, 0.01463259, 0.01334627, 0.01216795, 0.01108905, 0.01010159, 0.00919823, 0.00837217, 0.00761712, 0.00692728, 0.0062973, 0.00572223, 0.00519751, 0.00471894, 0.00428266, 0.0038851, 0.00352298, 0.00319329, 0.00289325, 0.00262031, 0.00237214, 0.00214658, 0.00194166, 0.00175558, 0.00158667, 0.00143342, 0.00129444, 0.00116844, 0.00105428, 0.00095087, 0.00085726, 0.00077254, 0.0006959, 0.00062661, 0.00056398, 0.00050741, 0.00045632, 0.0004102, 0.00036859, 0.00033107, 0.00029724, 0.00026676, 0.00023931, 0.00021459, 0.00019235, 0.00017234, 0.00015435, 0.00013818, 0.00012365, 0.00011061, 0.0000989, 0.00008839, 0.00007897, 0.00007052, 0.00006295, 0.00005617, 0.0000501, 0.00004467, 0.00003981, 0.00003546, 0.00003158, 0.00002811, 0.00002501, 0.00002224, 0.00001977, 0.00001757, 0.00001561, 0.00001386, 0.0000123, 0.00001091, 9.67660551e-06, 8.57780611e-06, 7.60065863e-06, 6.73206146e-06, 5.96028173e-06, 5.27481708e-06, 4.6662709e-06, 4.12623964e-06, 3.64721135e-06, 3.22247402e-06, 2.84603316e-06, 2.5125375e-06, 2.21721211e-06, 1.95579822e-06, 1.7244992e-06, 1.51993186e-06, 1.33908281e-06, 1.17926924e-06, 1.03810374e-06, 9.13462679e-07, 8.03457961e-07, 7.06411611e-07, 6.20833072e-07, 5.45398863e-07, 4.7893437e-07, 4.2039757e-07, 3.68864474e-07, 3.2351612e-07, 2.83626958e-07, 2.4855448e-07, 2.17729972e-07, 1.90650256e-07, 1.66870337e-07, 1.45996852e-07, 1.2768223e-07, 1.11619499e-07, 9.75376616e-08, 8.51975871e-08, 7.43883551e-08, 6.4924011e-08, 5.66406822e-08, 4.93940203e-08, 4.30569303e-08, 3.75175577e-08, 3.26775044e-08, 2.84502477e-08, 2.47597406e-08, 2.15391725e-08, 1.87298735e-08, 1.62803448e-08, 1.41454021e-08, 1.22854186e-08, 1.06656568e-08, 9.25567823e-09, 8.0288235e-09, 6.961753e-09, 6.0340425e-09, 5.22782682e-09, 4.52748594e-09, 3.91936884e-09, 3.3915505e-09, 2.93361814e-09, 2.53648348e-09, 2.19221766e-09, 1.89390634e-09, 1.63552255e-09, 1.41181504e-09, 1.21821043e-09, 1.05072747e-09, 9.05901823e-10, 7.80720306e-10, 6.72563239e-10, 5.79154056e-10, 4.98515216e-10, 4.28929674e-10, 3.68907206e-10, 3.17155006e-10, 2.72552021e-10, 2.34126547e-10, 2.010367e-10, 1.72553384e-10, 1.48045455e-10, 1.26966794e-10, 1.08845059e-10, 9.32718932e-11, 7.98944085e-11, 6.84077828e-11, 5.85488262e-11, 5.00903924e-11, 4.28365269e-11, 3.66182564e-11, 3.1289936e-11, 2.67260827e-11, 2.28186303e-11, 1.94745523e-11, 1.66138028e-11, 1.41675349e-11, 1.20765592e-11, 1.0290011e-11, 8.76419785e-12, 7.46160459e-12, 6.35003363e-12, 5.40186304e-12, 4.59340643e-12, 3.90436088e-12, 3.31733109e-12, 2.81741929e-12, 2.39187214e-12, 2.02977668e-12, 1.72179877e-12, 1.45995804e-12, 1.23743448e-12, 1.0484022e-12, 8.87886634e-13, 7.51641941e-13, 6.36045814e-13, 5.38009207e-13, 4.54898962e-13, 3.84471475e-13, 3.24815879e-13, 2.74305391e-13, 2.31555663e-13, 1.95389154e-13, 1.64804663e-13, 1.38951277e-13, 1.17106124e-13, 9.86553626e-14, 8.30779604e-14, 6.99318476e-14, 5.884211e-14, 4.94909216e-14, 4.16089661e-14, 3.49681291e-14, 2.93752769e-14, 2.46669613e-14, 2.07049151e-14, 1.73722226e-14, 1.45700639e-14, 1.22149495e-14, 1.02363719e-14, 8.57481194e-15, 7.18004772e-15, 6.00972011e-15, 5.02811681e-15, 4.20514212e-15, 3.51544424e-15, 2.93767654e-15, 2.45387237e-15, 2.04891627e-15, 1.71009684e-15, 1.42672891e-15, 1.18983431e-15, 9.9187238e-16, 8.26512438e-16, 6.8844189e-16, 5.73204366e-16, 4.77063299e-16, 3.96886977e-16, 3.30051737e-16, 2.7436047e-16, 2.27974044e-16, 1.89353626e-16, 1.5721219e-16, 1.30473761e-16, 1.08239189e-16, 8.97574015e-17, 7.44012806e-17, 6.16474275e-17, 5.10591902e-17, 4.22724394e-17, 3.49836508e-17, 2.89399242e-17, 2.3930628e-17, 1.97804086e-17, 1.63433426e-17, 1.34980484e-17, 1.11436011e-17, 9.19611981e-18, 7.58591858e-18, 6.25512849e-18, 5.15571381e-18, 4.24781785e-18, 3.49838412e-18, 2.88000758e-18, 2.36997797e-18, 1.94948336e-18, 1.60294754e-18, 1.31747883e-18, 1.08241188e-18, 8.88926855e-19, 7.29733168e-19, 5.98806816e-19, 4.91172427e-19, 4.02722436e-19, 3.30067133e-19, 2.70410377e-19, 2.21446616e-19, 1.81275609e-19, 1.48331823e-19, 1.21326016e-19, 9.9196921e-20, 8.10712936e-20, 6.6230903e-20, 5.40852597e-20, 4.41490984e-20, 3.60237932e-20, 2.93820255e-20, 2.39551402e-20, 1.95227235e-20, 1.59040158e-20, 1.29508391e-20, 1.05417749e-20, 8.57737296e-21, 6.97621061e-21, 5.67165247e-21, 4.60918759e-21, 3.74424198e-21, 3.04038226e-21, 2.46784133e-21, 2.00230875e-21, 1.62393871e-21, 1.3165368e-21, 1.06689372e-21, 8.64239488e-22, 6.99796638e-22, 5.66414551e-22, 4.58270352e-22, 3.70624339e-22, 2.99620091e-22, 2.42121165e-22, 1.95577734e-22, 1.57917734e-22, 1.27458041e-22, 1.02832034e-22, 8.29305343e-23, 6.68536868e-23, 5.38717554e-23, 4.33932084e-23, 3.49387427e-23, 2.81201521e-23, 2.26231431e-23, 1.81933684e-23, 1.46250777e-23, 1.17519017e-23, 9.43937039e-24, 7.57884137e-24, 6.08257573e-24, 4.8797453e-24, 3.91319701e-24, 3.13683159e-24, 2.51348115e-24, 2.01319111e-24, 1.61183033e-24, 1.28996698e-24, 1.03195991e-24, 8.25224318e-25, 6.59638776e-25, 5.27066373e-25, 4.20968324e-25, 3.36092259e-25, 2.68220882e-25, 2.13969394e-25, 1.70622272e-25, 1.36001841e-25, 1.0836246e-25, 8.63053937e-26, 6.87103298e-26, 5.46803326e-26, 4.34975991e-26, 3.45879206e-26, 2.74921467e-26, 2.18432818e-26, 1.734811e-26, 1.37724591e-26, 1.09293886e-26, 8.66972448e-27, 6.87447893e-27, 5.44878081e-27, 4.31701899e-27, 3.41895711e-27, 2.70662708e-27, 2.14184615e-27, 1.69423328e-27, 1.33962497e-27, 1.05881077e-27, 8.36524314e-28, 6.60638511e-28, 5.21524014e-28, 4.11537907e-28, 3.24616427e-28, 2.55950663e-28, 2.01728449e-28, 1.58929005e-28, 1.25159641e-28, 9.85259406e-29, 7.75286118e-29, 6.09815654e-29, 4.79468715e-29, 3.76831442e-29, 2.96045963e-29, 2.32485735e-29, 1.82498224e-29, 1.43201029e-29, 1.12320442e-29, 8.80636418e-30, 6.90175688e-30, 5.40689397e-30, 4.2341012e-30, 3.31436095e-30, 2.59336451e-30, 2.02839495e-30, 1.58586669e-30, 1.23938443e-30, 9.68212309e-31, 7.5606716e-31, 5.90167601e-31, 4.60485087e-31, 3.5915424e-31, 2.8000878e-31, 2.18216472e-31, 1.69992061e-31, 1.32371651e-31, 1.03035426e-31, 8.01684336e-32, 6.23512939e-32, 4.8474439e-32, 3.76708452e-32, 2.92632929e-32, 2.27230321e-32, 1.76374027e-32, 1.36844784e-32, 1.06132192e-32, 8.22794331e-33, 6.37618229e-33, 4.93918663e-33, 3.82450675e-33, 2.96019766e-33, 2.29029424e-33, 1.77127969e-33, 1.36933055e-33, 1.05816831e-33, 8.1738471e-34, 6.31136897e-34, 4.87131192e-34, 3.75831883e-34, 2.89845535e-34, 2.2344206e-34, 1.72182321e-34, 1.326287e-34, 1.02120233e-34, 7.85979842e-35, 6.04694965e-35, 4.65036063e-35, 3.57488645e-35, 2.7470288e-35, 2.11003432e-35, 1.62009757e-35, 1.24342094e-35, 9.53938842e-36, 7.31557128e-36, 5.60791368e-36, 4.2971425e-36, 3.29142192e-36, 2.5200707e-36, 1.92871148e-36, 1.47552706e-36, 1.12837244e-36, 8.62547738e-37, 6.59081609e-37, 5.034086e-37, 3.84350505e-37, 2.93332155e-37, 2.23777946e-37, 1.70647641e-37, 1.3007945e-37, 9.91157109e-38, 7.54921356e-38, 5.74759727e-38, 4.37417705e-38, 3.32760524e-38, 2.53042025e-38, 1.92344126e-38, 1.46147242e-38, 1.11001217e-38, 8.4273355e-39, 6.39555526e-39, 4.85167452e-39, 3.67900599e-39, 2.78865486e-39, 2.11292693e-39, 1.60029346e-39, 1.21154689e-39, 9.16866849e-40, 6.93581917e-40, 5.24462819e-40, 3.9642141e-40, 2.99519399e-40, 2.26213369e-40, 1.70780013e-40, 1.2887874e-40, 9.72189629e-41, 7.33071198e-41, 5.52543915e-41, 4.16306238e-41, 3.13533905e-41, 2.36037814e-41, 1.77625019e-41, 1.33614064e-41, 1.00467523e-41, 7.55135181e-42, 5.67347576e-42, 4.26087895e-42, 3.19870864e-42, 2.40035606e-42, 1.80053742e-42, 1.35006332e-42, 1.0118861e-42, 7.5811419e-43, 5.67757829e-43, 4.25027615e-43, 3.18050936e-43, 2.37903988e-43, 1.77882116e-43, 1.32950008e-43, 9.93276074e-44, 7.41783389e-44, 5.53744926e-44, 4.13207262e-44, 3.08213503e-44, 2.2980576e-44, 1.71275678e-44, 1.2760157e-44, 9.50258752e-45, 7.07380823e-45, 5.26368909e-45, 3.91518891e-45, 2.91099034e-45, 2.16348733e-45, 1.60728725e-45, 1.19359832e-45, 8.86030052e-46, 6.57452325e-46, 4.87647093e-46, 3.61553506e-46, 2.67956982e-46, 1.98510346e-46, 1.47003198e-46, 1.0881681e-46, 8.05175909e-47, 5.95540262e-47, 4.40308491e-47, 3.25408259e-47, 2.40395129e-47, 1.77520429e-47, 1.31037801e-47, 9.66875252e-48, 7.13131925e-48, 5.25768914e-48, 3.87476638e-48, 2.85444537e-48, 2.10195563e-48, 1.54721602e-48, 1.13842378e-48, 8.3730285e-49, 6.15583234e-49, 4.52393757e-49, 3.323319e-49, 2.44035533e-49, 1.79126449e-49, 1.31429234e-49, 9.63939672e-50, 7.06697165e-50, 5.17895887e-50, 3.79382414e-50, 2.77803397e-50, 2.03340334e-50, 1.48776775e-50, 1.08810893e-50, 7.95490941e-51, 5.81331337e-51, 4.24656585e-51, 3.10082765e-51, 2.26330472e-51, 1.65133075e-51, 1.20434454e-51, 8.77997079e-52, 6.39824752e-52, 4.66073755e-52, 3.39370359e-52, 2.47012434e-52, 1.79717088e-52, 1.30703009e-52, 9.50183424e-53, 6.90486149e-53, 5.0156607e-53, 3.64189137e-53, 2.64333061e-53, 1.91779264e-53, 1.39084096e-53, 1.00827492e-53, 7.30644504e-54, 5.29247664e-54, 3.83210542e-54, 2.77358589e-54, 2.00664924e-54, 1.45119905e-54, 1.04907897e-54, 7.58080035e-55, 5.47580049e-55, 3.95371951e-55, 2.8535782e-55, 2.05872997e-55, 1.48468623e-55, 1.0702757e-55, 7.71227201e-56, 5.5551361e-56, 3.99974921e-56, 2.87870071e-56, 2.07102797e-56, 1.48936488e-56, 1.07063628e-56, 7.6932262e-57, 5.52587111e-57, 3.96751615e-57, 2.84749101e-57, 2.04282765e-57, 1.46496348e-57, 1.05014092e-57, 7.52478467e-58, 5.38972099e-58, 3.85890605e-58, 2.76177213e-58, 1.97577368e-58, 1.41290275e-58, 1.00998067e-58, 7.21671538e-59, 5.15456256e-59, 3.68018607e-59, 2.62647617e-59, 1.87371218e-59, 1.33615864e-59, 9.52442792e-60, 6.78649456e-60, 4.83367943e-60, 3.44140605e-60, 2.44917449e-60, 1.74232542e-60, 1.23898075e-60, 8.80695109e-61, 6.25766559e-61, 4.44451995e-61, 3.15546316e-61, 2.23937648e-61, 1.58860841e-61, 1.126503e-61, 7.98497566e-62, 5.6577088e-62, 4.00712913e-62, 2.83695103e-62, 2.0076874e-62, 1.42025428e-62, 1.00429633e-62, 7.09877487e-63, 5.01569006e-63, 3.54245011e-63, 2.50093587e-63, 1.76492857e-63, 1.24502329e-63, 8.77917254e-64, 6.18807348e-64, 4.35996606e-64, 3.0706939e-64, 2.16180101e-64, 1.52132036e-64, 1.07016665e-64, 7.52502466e-65, 5.28920277e-65, 3.7161932e-65, 2.60994967e-65, 1.83227966e-65, 1.2858111e-65, 9.01962253e-66, 6.32448753e-66, 4.43290173e-66, 3.10582266e-66, 2.17515892e-66, 1.52275881e-66, 1.06560693e-66, 7.453989e-67, 5.21202212e-67, 3.64291927e-67, 2.54518081e-67, 1.77751604e-67, 1.24089266e-67, 8.65925841e-68, 6.04022318e-68, 4.21163836e-68, 2.93545186e-68, 2.04514759e-68, 1.42429567e-68, 9.91519949e-69, 6.89967393e-69, 4.79933965e-69, 3.3370308e-69, 2.31934179e-69, 1.61136937e-69, 1.11905458e-69, 7.7684298e-70, 5.3906488e-70, 3.73916515e-70, 2.59259138e-70, 1.79688101e-70, 1.24488829e-70, 8.62119102e-71, 5.96801594e-71, 4.12970001e-71, 2.85649099e-71, 1.975027e-71, 1.36502009e-71, 9.43041653e-72, 6.51251199e-72, 4.49564518e-72, 3.10213967e-72, 2.1397178e-72, 1.4752903e-72, 1.0167737e-72, 7.00481967e-73, 4.82386838e-73, 3.32062457e-73, 2.28491444e-73, 1.57161421e-73, 1.08055727e-73, 7.42635107e-74, 5.10186548e-74, 3.50355044e-74, 2.40499175e-74, 1.65023066e-74, 1.13188306e-74, 7.76040368e-75, 5.31854595e-75, 3.64357211e-75, 2.49509837e-75, 1.70794478e-75, 1.16865369e-75, 7.99325548e-76, 5.4649653e-76, 3.73488281e-76, 2.5514814e-76, 1.74234315e-76, 1.18932578e-76, 8.11509928e-77, 5.53493723e-77, 3.77361357e-77, 2.57174564e-77, 1.75196111e-77, 1.1930174e-77, 8.12072788e-78, 5.52546719e-78, 3.75810507e-78, 2.55502233e-78, 1.73638631e-78, 1.17957042e-78, 8.00990318e-79, 5.43696493e-79, 3.6890256e-79, 2.50203097e-79, 1.69628791e-79, 1.14956182e-79, 7.78737288e-80, 5.2732151e-80, 3.56932327e-80, 2.41502793e-80, 1.63336902e-80, 1.10426257e-80, 7.46253312e-81, 5.04110884e-81, 3.40401732e-81, 2.29764715e-81, 1.55024662e-81, 1.04554839e-81, 7.0487705e-82, 4.75016278e-82, 3.19984914e-82, 2.15464837e-82, 1.45027112e-82, 9.75770948e-83, 6.56254754e-83, 4.41187231e-83, 2.96482663e-83, 1.99159747e-83, 1.33730271e-83, 8.97601941e-84, 6.02231876e-84, 4.03896039e-84, 2.70770502e-84, 1.8145085e-84, 1.2154653e-84, 8.13864351e-85, 5.44737647e-85, 3.64458983e-85, 2.43745066e-85, 1.62947955e-85, 1.08889976e-85, 7.27365665e-86, 4.85672598e-86, 3.24160665e-86, 2.16273315e-86, 1.4423527e-86, 9.6153682e-87, 6.40746554e-87, 4.26808001e-87, 2.84187349e-87, 1.89148475e-87, 1.25842362e-87, 8.36906226e-88, 5.56355842e-88, 3.69704234e-88, 2.45573849e-88, 1.63055604e-88, 1.08221927e-88, 7.17993836e-89, 4.76159104e-89, 3.15652616e-89, 2.09166735e-89, 1.38548481e-89, 9.17353754e-90, 6.07152579e-90, 4.01684222e-90, 2.65642544e-90, 1.75604814e-90, 1.1603824e-90, 7.66464029e-91, 5.06067392e-91, 3.34003382e-91, 2.20353172e-91, 1.45316083e-91, 9.57930478e-92, 6.31219251e-92, 4.15769298e-92, 2.73747734e-92, 1.80166726e-92, 1.18528989e-92, 7.79471985e-93, 5.12392048e-93, 3.3668998e-93, 2.21148473e-93, 1.45199004e-93, 9.52948156e-94, 6.25173921e-94, 4.09975946e-94, 2.68745899e-94, 1.76096717e-94, 1.15341772e-94, 7.55175559e-95, 4.94236915e-95, 3.23331772e-95, 2.11440187e-95, 1.38214191e-95, 9.03116316e-96, 5.89875953e-96, 3.85126717e-96, 2.51346334e-96, 1.6397114e-96, 1.06927209e-96, 6.97003571e-97, 4.54158795e-97, 2.95805613e-97, 1.9258881e-97, 1.25337679e-97, 8.15376521e-98, 5.30225628e-98, 3.44658655e-98, 2.23946161e-98, 1.45453447e-98, 9.44344324e-99, 6.12861999e-99, 3.97576747e-99, 2.57813243e-99, 1.67115e-99, 1.08280838e-99, 7.01316005e-100, 4.54048095e-100, 2.93843395e-100, 1.90088558e-100, 1.2291984e-100, 7.94536712e-101, 5.13371694e-101, 3.31570467e-101, 2.14065033e-101, 1.38147044e-101, 8.911759e-102, 5.74660363e-102, 3.70411982e-102, 2.38662829e-102, 1.53712971e-102, 9.89605788e-103, 6.36854045e-103, 4.09678878e-103, 2.63434842e-103, 1.69328021e-103, 1.08795374e-103, 6.98743862e-104, 4.4859204e-104, 2.87879739e-104, 1.84670115e-104, 1.18415382e-104, 7.59006693e-105, 4.86305379e-105, 3.11457308e-105, 1.99394861e-105, 1.27601383e-105, 8.16249241e-106, 5.21934715e-106, 3.33607315e-106, 2.13147839e-106, 1.36129513e-106, 8.69059751e-107, 5.54591198e-107, 3.53771056e-107, 2.25578453e-107, 1.43780147e-107, 9.16064857e-108, 5.83417585e-108, 3.71414454e-108, 2.36354612e-108, 1.50347203e-108, 9.55988401e-109, 6.07625355e-109, 3.86051415e-109, 2.45177383e-109, 1.55647325e-109, 9.87708778e-110, 6.26530423e-110, 3.97266016e-110, 2.51794747e-110, 1.59528365e-110, 1.0103112e-110, 6.3958522e-111, 4.04732122e-111, 2.56013538e-111, 1.61876644e-111, 1.0231315e-111, 6.46405026e-112, 4.08229137e-112, 2.57708817e-112, 1.62622473e-112, 1.02578857e-112, 6.46786807e-113, 4.07652828e-113, 2.56830013e-113, 1.61743597e-113, 1.01820314e-113, 6.40719252e-114, 4.0302049e-114, 2.53403431e-114, 1.59266291e-114, 1.00060174e-114, 6.28383332e-115, 3.94470083e-115, 2.47530945e-115, 1.55264061e-115, 9.73505477e-116, 6.10143336e-116, 3.82253404e-116, 2.39384963e-116, 1.49854017e-116, 9.37704347e-117, 5.86528996e-117, 3.66723773e-117, 2.29200025e-117, 1.43191183e-117, 8.9421904e-118, 5.58209945e-118, 3.48319067e-118, 2.17261587e-118, 1.35461123e-118, 8.44252618e-119, 5.259642e-119, 3.27541232e-119, 2.03892756e-119, 1.26871372e-119, 7.89135363e-120, 4.90642765e-120, 3.04933627e-120, 1.89439818e-120, 1.17642228e-120, 7.30266277e-121, 4.53132568e-121, 2.81057603e-121, 1.7425748e-121, 1.07997462e-121, 6.69054815e-122, 4.14319985e-122, 2.56469719e-122, 1.58694671e-122, 9.81554958e-123, 6.06866176e-123, 3.75057002e-123, 2.31700866e-123, 1.43081694e-123, 8.83215172e-124, 5.44973025e-124, 3.36131742e-124, 2.0723833e-124, 1.27719344e-124, 7.86808985e-125, 4.84515841e-125, 2.98244669e-125, 1.83511564e-125, 1.12870442e-125, 6.93941805e-126, 4.26473371e-126, 2.61991274e-126, 1.60882119e-126, 9.87540166e-127, 6.05937461e-127, 3.71643789e-127, 2.27851557e-127, 1.39637853e-127, 8.55421915e-128, 5.23821868e-128, 3.20636473e-128, 1.96186115e-128, 1.19991272e-128, 7.33596234e-129, 4.48322543e-129, 2.7387356e-129, 1.67238278e-129, 1.02081564e-129, 6.22852183e-130, 3.79882e-130, 2.31599966e-130, 1.41141366e-130, 8.59797532e-131, 5.23557182e-131, 3.18682416e-131, 1.93900144e-131, 1.17929978e-131, 7.16962355e-132, 4.35707006e-132, 2.64678575e-132, 1.6071969e-132, 9.75540803e-133, 5.91899329e-133, 3.58985008e-133, 2.17636048e-133, 1.3188986e-133, 7.98947132e-134, 4.83783145e-134, 2.92825897e-134, 1.77171674e-134, 1.07153202e-134, 6.47801696e-135, 3.91475931e-135, 2.36479833e-135, 1.42793755e-135, 8.61887101e-136, 5.2001708e-136, 3.13625161e-136, 1.89073319e-136, 1.13939855e-136, 6.86352373e-137, 4.13280277e-137, 2.48752975e-137, 1.49664208e-137, 9.00106061e-138, 5.41122366e-138, 3.25179642e-138, 1.95333746e-138, 1.17288998e-138, 7.0398489e-139, 4.22372339e-139, 2.53310776e-139, 1.5185809e-139, 9.10014404e-140, 5.45110654e-140, 3.2639774e-140, 1.95360017e-140, 1.16882717e-140, 6.99022219e-141, 4.17885916e-141, 2.49718409e-141, 1.49165867e-141, 8.90665081e-142, 5.31600606e-142, 3.17163048e-142, 1.89149749e-142, 1.12759991e-142, 6.71939803e-143, 4.00250403e-143, 2.38319327e-143, 1.41844606e-143, 8.43902863e-144, 5.01878017e-144, 2.98352693e-144, 1.77291465e-144, 1.05310523e-144, 6.25290445e-145, 3.71123018e-145, 2.20181116e-145, 1.30577493e-145, 7.74074322e-146, 4.58694018e-146, 2.71699958e-146, 1.60872625e-146, 9.52139985e-147, 5.6330751e-147, 3.33132007e-147, 1.96930626e-147, 1.16368717e-147, 6.87361672e-148, 4.05845244e-148, 2.39530981e-148, 1.41315243e-148, 8.33378729e-149, 4.91271869e-149, 2.89485935e-149, 1.70513639e-149, 1.00396105e-149, 5.90881907e-150, 3.47624683e-150, 2.04430931e-150, 1.20173496e-150, 7.06149848e-151, 4.14773626e-151, 2.43529449e-151, 1.42928201e-151, 8.38514265e-152, 4.91732683e-152, 2.88252965e-152, 1.68905807e-152, 9.89330666e-153, 5.79247878e-153, 3.39010791e-153, 1.98330125e-153, 1.15981826e-153, 6.77980632e-154, 3.96160095e-154, 2.31393023e-154, 1.35100167e-154, 7.88474415e-155, 4.59986853e-155, 2.68243575e-155, 1.56364921e-155, 9.11119683e-156, 5.3068599e-156, 3.08976829e-156, 1.79820954e-156, 1.04611825e-156, 6.0834138e-157, 3.53622618e-157, 2.05474915e-157, 1.19344849e-157, 6.92906524e-158, 4.02134857e-158, 2.33289336e-158, 1.35283289e-158, 7.84186786e-159, 4.54381861e-159, 2.63177376e-159, 1.52370966e-159, 8.8182415e-160, 5.10138215e-160, 2.94998515e-160, 1.70521012e-160, 9.8528547e-161, 5.69078734e-161, 3.28555497e-161, 1.89614359e-161, 1.09385514e-161, 6.30775045e-162, 3.63592821e-162, 2.09499119e-162, 1.20663302e-162, 6.94695233e-163, 3.99797005e-163, 2.29991009e-163, 1.32253839e-163, 7.60206931e-164, 4.36798832e-164, 2.50874904e-164, 1.44032028e-164, 8.26584092e-165, 4.7417769e-165, 2.71907571e-165, 1.55857459e-165, 8.93017547e-166, 5.11468042e-166, 2.92821609e-166, 1.67576785e-166, 9.58629291e-167, 5.48167958e-167, 3.13330527e-167, 1.79026732e-167, 1.02249024e-167, 5.83749563e-168, 3.33134859e-168, 1.90037672e-168, 1.08364103e-168, 6.17671109e-169, 3.51929159e-169, 2.00437662e-169, 1.14111528e-169, 6.49390344e-170, 3.6940966e-170, 2.10056819e-170, 1.19396456e-170, 6.783787e-171, 3.85282326e-171, 2.18731881e-171, 1.24128413e-171, 7.04135819e-172, 3.99271019e-172, 2.26310788e-172, 1.28223859e-172, 7.26203853e-173, 4.1112546e-173, 2.32657102e-173, 1.31608632e-173, 7.44180965e-174, 4.20628657e-174, 2.37654082e-174, 1.34220181e-174, 7.57733488e-175, 4.27603512e-175, 2.41208255e-175, 1.36009484e-175, 7.66606222e-176, 4.31918304e-176, 2.43252326e-176, 1.36942583e-176, 7.70630427e-177, 4.33490828e-177, 2.43747291e-177, 1.37001652e-177, 7.69729156e-178, 4.32291e-178, 2.42683682e-178, 1.36185566e-178, 7.63919705e-179, 4.28341812e-179, 2.40081863e-179, 1.34509935e-179, 7.53313062e-180, 4.21718604e-180, 2.35991385e-180, 1.32006606e-180, 7.38110376e-181, 4.12546666e-181, 2.30489413e-181, 1.28722662e-181, 7.18596617e-182, 4.00997306e-182, 2.23678309e-182, 1.24718941e-182, 6.95131693e-183, 3.87282519e-183, 2.15682461e-183, 1.20068171e-183, 6.68139415e-184, 3.71648531e-184, 2.06644514e-184, 1.14852769e-184, 6.38094784e-185, 3.54368451e-185, 1.96721142e-185, 1.09162421e-185, 6.05510129e-186, 3.35734367e-186, 1.86078553e-186, 1.03091528e-186, 5.70920667e-187, 3.16049195e-187, 1.74887893e-187, 9.67366268e-188, 5.34870035e-188, 2.95618584e-188, 1.63320737e-188, 9.01938794e-189, 4.97896346e-189, 2.74743197e-189, 1.51544819e-189, 8.35567185e-190, 4.60519257e-190, 2.53711617e-190, 1.39720152e-190, 7.69137315e-191, 4.2322845e-191, 2.32794097e-191, 1.27995651e-191, 7.03468414e-192, 3.86473865e-192, 2.12237342e-192, 1.16506352e-192, 6.39298306e-193, 3.50657912e-193, 1.92260413e-193, 1.05371276e-193, 5.77272345e-194, 3.16129777e-194, 1.73051831e-194, 9.46919666e-195, 5.17936139e-195, 2.83181864e-195, 1.54767868e-195, 8.45516928e-196, 4.61731982e-196, 2.52048287e-196, 1.37531978e-196, 7.50152861e-197, 4.08998764e-197, 2.22905285e-197, 1.21435281e-197, 6.61295459e-198, 3.59975004e-198, 1.95873325e-198, 1.06537964e-198, 5.79241454e-199, 3.14804566e-199, 1.71020652e-199, 9.2871453e-200, 5.0412945e-200, 2.73544536e-200, 1.48367975e-200, 8.04411811e-201, 4.35956199e-201, 2.36174728e-201, 1.27893991e-201, 6.92297884e-202, 3.74595035e-202, 2.02608275e-202, 1.09541451e-202, 5.92005786e-203, 3.19815539e-203, 1.72702778e-203, 9.32234634e-204, 5.03010783e-204, 2.7130357e-204, 1.46271553e-204, 7.8829793e-205, 4.2466557e-205, 2.28680888e-205, 1.23094554e-205, 6.62329291e-206, 3.56233892e-206, 1.91523762e-206, 1.02928642e-206, 5.52937413e-207, 2.96921648e-207, 1.59380029e-207, 8.55169289e-208, 4.5866589e-208, 2.45904766e-208, 1.31784278e-208, 7.05970272e-209, 3.78037933e-209, 2.02353398e-209, 1.08270908e-209, 5.79080859e-210, 3.09594187e-210, 1.65452199e-210, 8.83849749e-211, 4.71965768e-211, 2.51923519e-211, 1.34416655e-211, 7.16908307e-212, 3.82208462e-212, 2.0368692e-212, 1.08505597e-212, 5.77786381e-213, 3.07544963e-213, 1.6363496e-213, 8.70301493e-214, 4.6268937e-214, 2.45886947e-214, 1.30619371e-214, 6.93594847e-215, 3.6815465e-215, 1.95335366e-215, 1.03599494e-215, 5.4923796e-216, 2.91064754e-216, 1.54185968e-216, 8.1644371e-217, 4.3214929e-217, 2.28648061e-217, 1.20928148e-217, 6.39312865e-218, 3.37851342e-218, 1.78469503e-218, 9.42385388e-219, 4.9741541e-219, 2.62443663e-219, 1.3841371e-219, 7.29706628e-220, 3.84541872e-220, 2.02565344e-220, 1.0666276e-220, 5.61418419e-221, 2.95383791e-221, 1.55350561e-221, 8.16704895e-222, 4.29184131e-222, 2.25449003e-222, 1.18380221e-222, 6.21349769e-223, 3.26001277e-223, 1.70973431e-223, 8.96322132e-224, 4.69705645e-224, 2.46044468e-224, 1.28833142e-224, 6.74322667e-225, 3.52804476e-225, 1.84512835e-225, 9.6459553e-226, 5.04069101e-226, 2.63306194e-226, 1.37485926e-226, 7.17598596e-227, 3.74395902e-227, 1.95257067e-227, 1.01790818e-227, 5.30440429e-228, 2.76306308e-228, 1.43870301e-228, 7.48820415e-229, 3.89592304e-229, 2.02613898e-229, 1.05330529e-229, 5.4735044e-230, 2.84317013e-230, 1.47627204e-230, 7.6622464e-231, 3.97531918e-231, 2.06164586e-231, 1.06876519e-231, 5.53830293e-232, 2.86878027e-232, 1.48540211e-232, 7.68806349e-233, 3.97755376e-233, 2.05703333e-233, 1.06339049e-233, 5.49503408e-234, 2.83840381e-234, 1.46556183e-234, 7.56415267e-235, 3.90249719e-235, 2.01257043e-235, 1.03749437e-235, 5.34621707e-236, 2.75380764e-236, 1.41790388e-236, 7.29770247e-237, 3.7544964e-237, 1.9308272e-237, 9.92570353e-238, 5.10041327e-238, 2.61984508e-238, 1.34515407e-238, 6.90390217e-239, 3.54195797e-239, 1.8164287e-239, 9.31149648e-240, 4.77141059e-240, 2.44399478e-240, 1.25135328e-240, 6.40450806e-241, 3.27655751e-241, 1.67562176e-241, 8.56565084e-242, 4.37694331e-242, 2.23566978e-242, 1.14148594e-242, 5.82585485e-243, 2.9721788e-243, 1.51571093e-243, 7.72652145e-244, 3.93711251e-244, 2.00538526e-244, 1.0210429e-244, 5.19656475e-245, 2.64371647e-245, 1.34443432e-245, 6.83424411e-246, 3.47270238e-246, 1.76388726e-246, 8.95571499e-247, 4.54523023e-247, 2.30588525e-247, 1.16935312e-247, 5.92761307e-248, 3.00358688e-248, 1.52134157e-248, 7.70263734e-249, 3.89832777e-249, 1.97216586e-249, 9.97320401e-250, 5.04141158e-250, 2.54739205e-250, 1.28666536e-250, 6.49623328e-251, 3.27856501e-251, 1.6539873e-251, 8.3407812e-252, 4.20443333e-252, 2.11852892e-252, 1.06705673e-252, 5.37238102e-253, 2.70378584e-253, 1.36020372e-253, 6.84008995e-254, 3.43831652e-254, 1.72765126e-254, 8.67745748e-255, 4.3566743e-255, 2.1864718e-255, 1.09687934e-255, 5.50047272e-256, 2.75719425e-256, 1.38153184e-256, 6.91959414e-257, 3.46438806e-257, 1.73379854e-257, 8.67355064e-258, 4.33731929e-258, 2.1680638e-258, 1.08330042e-258, 5.41068126e-259, 2.70135201e-259, 1.34814498e-259, 6.72540137e-260, 3.35371386e-260, 1.67170635e-260, 8.32952374e-261, 4.14864752e-261, 2.06547097e-261, 1.02791651e-261, 5.11355321e-262, 2.54280998e-262, 1.26395388e-262, 6.28021826e-263, 3.11920873e-263, 1.54860383e-263, 7.68532812e-264, 3.81250735e-264, 1.89053689e-264, 9.37099735e-265, 4.64314948e-265, 2.299671e-265, 1.13853122e-265, 5.63443499e-266, 2.78728895e-266, 1.37828746e-266, 6.81277133e-267, 3.36615424e-267, 1.6625335e-267, 8.20791766e-268, 4.0506225e-268, 1.99818983e-268, 9.85321393e-269, 4.85674469e-269, 2.39297868e-269, 1.17857868e-269, 5.80235805e-270, 2.85546384e-270, 1.40467224e-270, 6.90716019e-271, 3.39508188e-271, 1.66811955e-271, 8.19276105e-272, 4.02216238e-272, 1.97385437e-272, 9.68270743e-273, 4.74793438e-273, 2.3272273e-273, 1.14024741e-273, 5.58451656e-274, 2.73399848e-274, 1.33794158e-274, 6.54488815e-275, 3.20032073e-275, 1.56426734e-275, 7.6428379e-276, 3.73271229e-276, 1.82230297e-276, 8.89288851e-277, 4.3380176e-277, 2.11527078e-277, 1.03101938e-277, 5.02335517e-278, 2.44651083e-278, 1.19104068e-278, 5.79605169e-279, 2.81944809e-279, 1.3709517e-279, 6.66356144e-280, 3.23755278e-280, 1.57236551e-280, 7.6333708e-281, 3.70429367e-281, 1.79688656e-281, 8.7128876e-282, 4.22308442e-282, 2.04608473e-282, 9.90931577e-283, 4.79722316e-283, 2.32146626e-283, 1.12295158e-283, 5.42982571e-284, 2.62444181e-284, 1.26798527e-284, 6.12375307e-285, 2.95629204e-285, 1.42660322e-285, 6.88153413e-286, 3.31813108e-286, 1.59929291e-286, 7.70528465e-287, 3.71086851e-287, 1.78644087e-287, 8.59662398e-288, 4.13517047e-288, 1.98831463e-288, 9.55659107e-289, 4.59142083e-289, 2.20504472e-289, 1.05855617e-289, 5.07968307e-290, 2.43660724e-290, 1.16831687e-290, 5.59966402e-291, 2.68280741e-291, 1.28482278e-291, 6.15068045e-292, 2.94326459e-292, 1.40786707e-292, 6.73162948e-293, 3.21739929e-293, 1.53714885e-293, 7.34096396e-294, 3.50442255e-294, 1.67226864e-294, 7.9766738e-295, 3.80332839e-295, 1.81272542e-295, 8.63627433e-296, 4.11288949e-296, 1.95791512e-296, 9.31680242e-297, 4.43165678e-297, 2.1071311e-297, 1.00148213e-297, 4.75796299e-298, 2.25956647e-298, 1.07264347e-298, 5.0899307e-299, 2.41431846e-299, 1.14473101e-299, 5.4254848e-300, 2.57039496e-300, 1.21727129e-300, 5.76236957e-301, 2.72672315e-301, 1.28975491e-301, 6.09817025e-302, 2.88216014e-302, 1.36164182e-302, 6.43033892e-303, 3.03550572e-303, 1.4323675e-303, 6.75622444e-304, 3.18551673e-304, 1.50134991e-304, 7.07310595e-305, 3.33092317e-305, 1.56799718e-305, 7.37822935e-306, 3.47044555e-306, 1.63171584e-306, 7.66884634e-307, 3.60281326e-307, 1.69191944e-307, 7.94225489e-308, 3.72678357e-308, 1.74803746e-308, 8.19584071e-309, 3.84116087e-309, 1.79952421e-309, 8.42711858e-310, 3.94481579e-310, 1.84586767e-310, 8.6337727e-311, 4.03670369e-311, 1.88659789e-311, 8.81369527e-312, 4.11588216e-312, 1.92129497e-312, 8.96502218e-313, 4.18152722e-313, 1.94959634e-313, 9.08616371e-314, 4.23294895e-314, 1.97120027e-314, 9.17582668e-315, 4.2695714e-315, 1.98586027e-315, 9.23315783e-316, 4.2913377e-316, 1.99361135e-316, 9.25921757e-317, 4.29804998e-317, 1.99324115e-317, 9.24461546e-318, 4.30476433e-318, 1.97889101e-318, 9.31728758e-319, 4.07841309e-319, 1.74879476e-319, 1.16648899e-319, 5.83540934e-320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.20296882, 0.40592886, 0.60887135, 0.8117875, 1.01466855, 1.21750572, 1.42029024, 1.62301336, 1.8256663, 2.02824032, 2.23072666, 2.43311659, 2.63540135, 2.83757224, 3.03962052, 3.24153748, 3.44331443, 3.64494267, 3.84641351, 4.04771829, 4.24884835, 4.44979505, 4.65054975, 4.85110383, 5.05144869, 5.25157574, 5.45147641, 5.65114213, 5.85056438, 6.04973462, 6.24864435, 6.44728509, 6.64564837, 6.84372574, 7.04150877, 7.23898906, 7.43615823, 7.63300792, 7.82952978, 8.0257155, 8.2215568, 8.4170454, 8.61217306, 8.80693157, 9.00131274, 9.19530841, 9.38891044, 9.58211073, 9.7749012, 9.96727379, 10.1592205, 10.35073333, 10.54180433, 10.73242557, 10.92258916, 11.11228722, 11.30151195, 11.49025553, 11.67851022, 11.86626828, 12.05352202, 12.24026379, 12.42648597, 12.61218098, 12.79734126, 12.98195933, 13.16602769, 13.34953894, 13.53248567, 13.71486053, 13.89665621, 14.07786545, 14.25848102, 14.43849572, 14.61790241, 14.79669399, 14.97486341, 15.15240364, 15.32930771, 15.50556871, 15.68117973, 15.85613396, 16.03042459, 16.20404489, 16.37698816, 16.54924774, 16.72081703, 16.89168947, 17.06185857, 17.23131786, 17.40006093, 17.56808143, 17.73537304, 17.9019295, 18.06774462, 18.23281222, 18.39712621, 18.56068053, 18.72346918, 18.88548621, 19.04672572, 19.20718188, 19.36684889, 19.52572102, 19.68379259, 19.84105796, 19.99751158, 20.15314793, 20.30796154, 20.46194701, 20.61509899, 20.76741219, 20.91888138, 21.06950138, 21.21926706, 21.36817337, 21.5162153, 21.6633879, 21.80968629, 21.95510563, 22.09964116, 22.24328816, 22.38604199, 22.52789804, 22.66885179, 22.80889876, 22.94803455, 23.08625479, 23.22355521, 23.35993156, 23.49537968, 23.62989547, 23.76347487, 23.8961139, 24.02780864, 24.15855523, 24.28834986, 24.41718881, 24.5450684, 24.67198501, 24.7979351, 24.92291519, 25.04692184, 25.1699517, 25.29200148, 25.41306793, 25.53314789, 25.65223826, 25.77033599, 25.88743809, 26.00354166, 26.11864385, 26.23274186, 26.34583297, 26.45791452, 26.56898392, 26.67903863, 26.78807619, 26.89609419, 27.00309029, 27.10906223, 27.21400778, 27.3179248, 27.42081121, 27.52266499, 27.62348419, 27.72326692, 27.82201135, 27.91971571, 28.01637833, 28.11199755, 28.20657181, 28.30009962, 28.39257951, 28.48401013, 28.57439016, 28.66371834, 28.75199349, 28.83921449, 28.92538029, 29.01048988, 29.09454234, 29.1775368, 29.25947245, 29.34034855, 29.42016443, 29.49891946, 29.5766131, 29.65324485, 29.72881428, 29.80332104, 29.87676481, 29.94914536, 30.0204625, 30.09071612, 30.15990616, 30.22803263, 30.2950956, 30.36109518, 30.42603157, 30.48990502, 30.55271584, 30.6144644, 30.67515112, 30.7347765, 30.79334109, 30.85084549, 30.90729037, 30.96267647, 31.01700456, 31.07027549, 31.12249017, 31.17364955, 31.22375466, 31.27280657, 31.3208064, 31.36775537, 31.4136547, 31.45850571, 31.50230976, 31.54506826, 31.58678268, 31.62745455, 31.66708546, 31.70567704, 31.74323098, 31.77974903, 31.81523299, 31.84968472, 31.88310611, 31.91549914, 31.94686581, 31.97720819, 32.0065284, 32.0348286, 32.06211102, 32.08837792, 32.11363164, 32.13787453, 32.16110904, 32.18333762, 32.2045628, 32.22478715, 32.24401329, 32.2622439, 32.27948167, 32.29572938, 32.31098984, 32.32526591, 32.33856049, 32.35087652, 32.36221701, 32.372585, 32.38198356, 32.39041584, 32.39788501, 32.40439429, 32.40994693, 32.41454624, 32.41819557, 32.42089832, 32.4226579, 32.4234778, 32.42336152, 32.42231263, 32.42033472, 32.41743142, 32.4136064, 32.40886338, 32.40320611, 32.39663837, 32.38916401, 32.38078687, 32.37151086, 32.36133992, 32.35027802, 32.33832918, 32.32549743, 32.31178685, 32.29720155, 32.2817457, 32.26542345, 32.24823903, 32.23019669, 32.21130069, 32.19155536, 32.17096503, 32.14953407, 32.12726688, 32.1041679, 32.08024159, 32.05549243, 32.02992495, 32.00354369, 31.97635323, 31.94835817, 31.91956314, 31.88997279, 31.8595918, 31.82842488, 31.79647676, 31.76375219, 31.73025596, 31.69599287, 31.66096774, 31.62518543, 31.58865081, 31.55136876, 31.5133442, 31.47458208, 31.43508734, 31.39486496, 31.35391994, 31.3122573, 31.26988206, 31.22679928, 31.18301402, 31.13853139, 31.09335647, 31.04749439, 31.00095029, 30.95372932, 30.90583665, 30.85727745, 30.80805693, 30.75818029, 30.70765277, 30.65647959, 30.604666, 30.55221727, 30.49913866, 30.44543547, 30.39111299, 30.33617652, 30.28063137, 30.22448288, 30.16773637, 30.11039719, 30.05247069, 29.99396222, 29.93487716, 29.87522087, 29.81499873, 29.75421613, 29.69287846, 29.63099112, 29.5685595, 29.50558901, 29.44208506, 29.37805307, 29.31349844, 29.2484266, 29.18284298, 29.11675298, 29.05016205, 28.98307559, 28.91549905, 28.84743785, 28.77889741, 28.70988317, 28.64040054, 28.57045496, 28.50005185, 28.42919663, 28.35789471, 28.28615152, 28.21397247, 28.14136296, 28.06832841, 27.99487422, 27.92100579, 27.8467285, 27.77204775, 27.69696892, 27.62149738, 27.5456385, 27.46939765, 27.39278018, 27.31579144, 27.23843677, 27.16072151, 27.08265098, 27.00423049, 26.92546535, 26.84636086, 26.76692231, 26.68715497, 26.60706411, 26.52665498, 26.44593284, 26.36490292, 26.28357043, 26.20194059, 26.1200186, 26.03780964, 25.95531889, 25.8725515, 25.78951262, 25.70620738, 25.6226409, 25.53881829, 25.45474464, 25.37042501, 25.28586447, 25.20106807, 25.11604082, 25.03078775, 24.94531384, 24.85962408, 24.77372343, 24.68761683, 24.60130922, 24.5148055, 24.42811056, 24.34122929, 24.25416653, 24.16692713, 24.07951591, 23.99193766, 23.90419716, 23.81629918, 23.72824846, 23.64004971, 23.55170765, 23.46322696, 23.37461228, 23.28586827, 23.19699955, 23.1080107, 23.01890631, 22.92969093, 22.8403691, 22.75094532, 22.66142409, 22.57180987, 22.48210711, 22.39232023, 22.30245362, 22.21251166, 22.12249871, 22.03241909, 21.94227711, 21.85207705, 21.76182317, 21.6715197, 21.58117085, 21.49078081, 21.40035374, 21.30989377, 21.21940502, 21.12889157, 21.03835748, 20.9478068, 20.85724353, 20.76667166, 20.67609514, 20.58551793, 20.49494391, 20.40437698, 20.31382099, 20.22327978, 20.13275715, 20.04225687, 19.95178271, 19.86133838, 19.77092759, 19.680554, 19.59022127, 19.49993302, 19.40969283, 19.31950427, 19.22937089, 19.13929618, 19.04928364, 18.95933671, 18.86945884, 18.77965343, 18.68992384, 18.60027342, 18.5107055, 18.42122337, 18.33183028, 18.24252949, 18.15332419, 18.06421756, 17.97521277, 17.88631294, 17.79752116, 17.7088405, 17.62027401, 17.5318247, 17.44349556, 17.35528954, 17.26720958, 17.17925857, 17.0914394, 17.0037549, 16.9162079, 16.82880118, 16.74153751, 16.65441962, 16.56745022, 16.48063199, 16.39396757, 16.30745959, 16.22111064, 16.13492329, 16.04890007, 15.9630435, 15.87735607, 15.79184021, 15.70649837, 15.62133293, 15.53634627, 15.45154074, 15.36691865, 15.28248229, 15.19823391, 15.11417575, 15.03031002, 14.94663889, 14.86316452, 14.77988902, 14.6968145, 14.61394302, 14.53127662, 14.44881731, 14.36656709, 14.2845279, 14.2027017, 14.12109037, 14.03969581, 13.95851985, 13.87756434, 13.79683106, 13.71632179, 13.63603827, 13.55598223, 13.47615535, 13.39655931, 13.31719574, 13.23806626, 13.15917246, 13.0805159, 13.00209812, 12.92392062, 12.8459849, 12.76829242, 12.6908446, 12.61364286, 12.53668858, 12.45998313, 12.38352783, 12.30732399, 12.2313729, 12.15567581, 12.08023397, 12.00504858, 11.93012083, 11.85545187, 11.78104285, 11.70689488, 11.63300905, 11.55938643, 11.48602805, 11.41293493, 11.34010807, 11.26754844, 11.19525699, 11.12323464, 11.0514823, 10.98000084, 10.90879111, 10.83785396, 10.7671902, 10.6968006, 10.62668595, 10.55684697, 10.48728441, 10.41799894, 10.34899127, 10.28026203, 10.21181187, 10.1436414, 10.07575122, 10.00814189, 9.94081397, 9.87376799, 9.80700445, 9.74052385, 9.67432665, 9.60841331, 9.54278425, 9.47743988, 9.41238059, 9.34760674, 9.28311869, 9.21891677, 9.15500129, 9.09137253, 9.02803078, 8.96497628, 8.90220927, 8.83972997, 8.77753857, 8.71563526, 8.6540202, 8.59269352, 8.53165537, 8.47090583, 8.41044502, 8.35027299, 8.29038981, 8.23079551, 8.17149013, 8.11247365, 8.05374608, 7.99530738, 7.93715751, 7.87929641, 7.821724, 7.76444019, 7.70744488, 7.65073794, 7.59431923, 7.53818859, 7.48234587, 7.42679086, 7.37152339, 7.31654322, 7.26185013, 7.20744388, 7.15332421, 7.09949086, 7.04594353, 6.99268192, 6.93970573, 6.88701462, 6.83460826, 6.7824863, 6.73064836, 6.67909407, 6.62782305, 6.57683487, 6.52612913, 6.4757054, 6.42556323, 6.37570218, 6.32612177, 6.27682153, 6.22780097, 6.17905959, 6.13059688, 6.08241232, 6.03450537, 5.98687548, 5.93952211, 5.89244468, 5.84564262, 5.79911533, 5.75286224, 5.70688271, 5.66117615, 5.61574192, 5.57057938, 5.52568789, 5.48106679, 5.43671542, 5.3926331, 5.34881916, 5.30527289, 5.26199359, 5.21898057, 5.17623309, 5.13375044, 5.09153188, 5.04957667, 5.00788405, 4.96645328, 4.92528358, 4.88437417, 4.84372429, 4.80333315, 4.76319994, 4.72332386, 4.68370411, 4.64433988, 4.60523033, 4.56637465, 4.52777199, 4.48942151, 4.45132237, 4.41347371, 4.37587468, 4.33852441, 4.30142202, 4.26456664, 4.22795739, 4.19159339, 4.15547373, 4.11959753, 4.08396388, 4.04857187, 4.01342059, 3.97850913, 3.94383655, 3.90940195, 3.87520439, 3.84124292, 3.80751663, 3.77402456, 3.74076577, 3.7077393, 3.67494422, 3.64237955, 3.61004434, 3.57793763, 3.54605845, 3.51440582, 3.48297879, 3.45177636, 3.42079757, 3.39004143, 3.35950695, 3.32919316, 3.29909906, 3.26922366, 3.23956597, 3.210125, 3.18089974, 3.15188919, 3.12309236, 3.09450824, 3.06613583, 3.03797412, 3.01002211, 2.98227878, 2.95474312, 2.92741412, 2.90029077, 2.87337206, 2.84665697, 2.82014448, 2.79383358, 2.76772325, 2.74181248, 2.71610024, 2.69058551, 2.66526728, 2.64014452, 2.61521622, 2.59048135, 2.5659389, 2.54158785, 2.51742717, 2.49345584, 2.46967285, 2.44607717, 2.42266778, 2.39944367, 2.37640382, 2.35354721, 2.33087282, 2.30837963, 2.28606663, 2.26393281, 2.24197714, 2.22019863, 2.19859624, 2.17716897, 2.15591582, 2.13483577, 2.11392781, 2.09319094, 2.07262415, 2.05222644, 2.0319968, 2.01193424, 1.99203776, 1.97230635, 1.95273902, 1.93333478, 1.91409264, 1.8950116, 1.87609067, 1.85732887, 1.83872522, 1.82027872, 1.80198841, 1.78385329, 1.7658724, 1.74804476, 1.7303694, 1.71284534, 1.69547162, 1.67824728, 1.66117136, 1.64424288, 1.6274609, 1.61082447, 1.59433261, 1.5779844, 1.56177888, 1.5457151, 1.52979213, 1.51400902, 1.49836484, 1.48285866, 1.46748955, 1.45225657, 1.43715881, 1.42219534, 1.40736524, 1.3926676, 1.37810151, 1.36366606, 1.34936033, 1.33518343, 1.32113446, 1.30721252, 1.29341672, 1.27974617, 1.26619998, 1.25277726, 1.23947714, 1.22629874, 1.21324119, 1.20030362, 1.18748515, 1.17478494, 1.16220211, 1.14973581, 1.1373852, 1.12514941, 1.11302761, 1.10101895, 1.08912259, 1.0773377, 1.06566345, 1.05409902, 1.04264357, 1.03129628, 1.02005635, 1.00892295, 0.99789529, 0.98697254, 0.97615392, 0.96543862, 0.95482585, 0.94431482, 0.93390475, 0.92359484, 0.91338432, 0.90327242, 0.89325837, 0.88334139, 0.87352072, 0.86379561, 0.8541653, 0.84462903, 0.83518606, 0.82583564, 0.81657704, 0.80740951, 0.79833233, 0.78934476, 0.78044608, 0.77163556, 0.7629125, 0.75427618, 0.74572589, 0.73726092, 0.72888057, 0.72058415, 0.71237096, 0.70424031, 0.69619151, 0.68822389, 0.68033677, 0.67252946, 0.66480131, 0.65715164, 0.6495798, 0.64208512, 0.63466695, 0.62732464, 0.62005754, 0.61286501, 0.60574641, 0.59870111, 0.59172848, 0.58482788, 0.57799869, 0.5712403, 0.56455209, 0.55793345, 0.55138376, 0.54490243, 0.53848886, 0.53214244, 0.52586259, 0.51964872, 0.51350024, 0.50741657, 0.50139714, 0.49544137, 0.48954868, 0.48371853, 0.47795033, 0.47224354, 0.4665976, 0.46101196, 0.45548607, 0.45001939, 0.44461137, 0.43926149, 0.43396921, 0.428734, 0.42355534, 0.4184327, 0.41336557, 0.40835344, 0.40339578, 0.39849211, 0.3936419, 0.38884467, 0.38409992, 0.37940715, 0.37476588, 0.37017562, 0.36563589, 0.36114621, 0.35670611, 0.35231511, 0.34797275, 0.34367856, 0.33943208, 0.33523286, 0.33108044, 0.32697437, 0.3229142, 0.31889949, 0.3149298, 0.31100469, 0.30712373, 0.30328649, 0.29949254, 0.29574145, 0.29203281, 0.2883662, 0.28474121, 0.28115742, 0.27761443, 0.27411183, 0.27064923, 0.26722622, 0.26384241, 0.26049741, 0.25719082, 0.25392228, 0.25069138, 0.24749776, 0.24434104, 0.24122084, 0.2381368, 0.23508854, 0.23207571, 0.22909795, 0.22615489, 0.22324618, 0.22037147, 0.21753041, 0.21472266, 0.21194787, 0.20920569, 0.20649581, 0.20381787, 0.20117155, 0.19855652, 0.19597245, 0.19341902, 0.19089591, 0.18840281, 0.18593939, 0.18350534, 0.18110037, 0.17872415, 0.17637638, 0.17405677, 0.17176501, 0.16950081, 0.16726388, 0.16505392, 0.16287064, 0.16071377, 0.15858301, 0.15647809, 0.15439873, 0.15234465, 0.15031557, 0.14831124, 0.14633138, 0.14437572, 0.14244401, 0.14053597, 0.13865136, 0.13678991, 0.13495137, 0.1331355, 0.13134203, 0.12957074, 0.12782136, 0.12609366, 0.12438739, 0.12270233, 0.12103824, 0.11939487, 0.11777201, 0.11616941, 0.11458687, 0.11302414, 0.11148101, 0.10995726, 0.10845267, 0.10696702, 0.1055001, 0.10405171, 0.10262161, 0.10120962, 0.09981553, 0.09843912, 0.09708021, 0.09573858, 0.09441405, 0.09310641, 0.09181547, 0.09054104, 0.08928293, 0.08804095, 0.08681492, 0.08560464, 0.08440995, 0.08323065, 0.08206657, 0.08091752, 0.07978335, 0.07866386, 0.0775589, 0.07646828, 0.07539184, 0.07432942, 0.07328085, 0.07224596, 0.07122459, 0.07021659, 0.0692218, 0.06824005, 0.0672712, 0.06631509, 0.06537157, 0.06444048, 0.06352168, 0.06261503, 0.06172037, 0.06083757, 0.05996647, 0.05910694, 0.05825884, 0.05742204, 0.05659638, 0.05578175, 0.054978, 0.054185, 0.05340263, 0.05263074, 0.05186923, 0.05111794, 0.05037678, 0.04964559, 0.04892428, 0.04821271, 0.04751076, 0.04681832, 0.04613526, 0.04546148, 0.04479685, 0.04414126, 0.04349461, 0.04285677, 0.04222765, 0.04160712, 0.04099509, 0.04039144, 0.03979608, 0.03920889, 0.03862978, 0.03805864, 0.03749538, 0.03693988, 0.03639206, 0.03585182, 0.03531906, 0.03479369, 0.03427561, 0.03376473, 0.03326096, 0.0327642, 0.03227438, 0.03179139, 0.03131515, 0.03084558, 0.03038258, 0.02992608, 0.02947599, 0.02903223, 0.02859471, 0.02816336, 0.02773809, 0.02731883, 0.0269055, 0.02649801, 0.0260963, 0.02570029, 0.02530991, 0.02492507, 0.02454572, 0.02417177, 0.02380315, 0.0234398, 0.02308165, 0.02272862, 0.02238065, 0.02203767, 0.02169962, 0.02136644, 0.02103804, 0.02071438, 0.02039539, 0.02008101, 0.01977117, 0.01946582, 0.01916489, 0.01886833, 0.01857608, 0.01828807, 0.01800426, 0.01772458, 0.01744898, 0.01717741, 0.01690981, 0.01664612, 0.0163863, 0.01613028, 0.01587803, 0.01562948, 0.01538459, 0.01514331, 0.01490559, 0.01467137, 0.01444062, 0.01421328, 0.01398931, 0.01376866, 0.01355128, 0.01333714, 0.01312617, 0.01291835, 0.01271363, 0.01251196, 0.01231331, 0.01211762, 0.01192487, 0.011735, 0.01154798, 0.01136377, 0.01118233, 0.01100362, 0.0108276, 0.01065424, 0.01048349, 0.01031532, 0.0101497, 0.00998658, 0.00982594, 0.00966774, 0.00951194, 0.00935851, 0.00920741, 0.00905862, 0.00891209, 0.00876781, 0.00862572, 0.00848582, 0.00834805, 0.0082124, 0.00807883, 0.00794732, 0.00781782, 0.00769032, 0.00756479, 0.00744119, 0.0073195, 0.00719969, 0.00708174, 0.00696561, 0.00685128, 0.00673873, 0.00662793, 0.00651885, 0.00641147, 0.00630576, 0.0062017, 0.00609927, 0.00599844, 0.00589918, 0.00580149, 0.00570532, 0.00561066, 0.00551749, 0.00542578, 0.00533552, 0.00524668, 0.00515925, 0.00507319, 0.00498849, 0.00490514, 0.0048231, 0.00474236, 0.00466291, 0.00458471, 0.00450777, 0.00443204, 0.00435752, 0.00428419, 0.00421203, 0.00414103, 0.00407115, 0.0040024, 0.00393475, 0.00386819, 0.00380269, 0.00373825, 0.00367484, 0.00361245, 0.00355107, 0.00349068, 0.00343127, 0.00337281, 0.0033153, 0.00325873, 0.00320307, 0.00314831, 0.00309444, 0.00304145, 0.00298932, 0.00293805, 0.0028876, 0.00283798, 0.00278917, 0.00274116, 0.00269394, 0.00264749, 0.0026018, 0.00255686, 0.00251266, 0.00246918, 0.00242642, 0.00238437, 0.00234301, 0.00230233, 0.00226233, 0.00222298, 0.00218429, 0.00214624, 0.00210882, 0.00207202, 0.00203584, 0.00200025, 0.00196526, 0.00193085, 0.00189701, 0.00186374, 0.00183103, 0.00179886, 0.00176723, 0.00173613, 0.00170556, 0.00167549, 0.00164594, 0.00161687, 0.0015883, 0.00156021, 0.00153259, 0.00150544, 0.00147875, 0.00145251, 0.00142672, 0.00140136, 0.00137643, 0.00135192, 0.00132783, 0.00130415, 0.00128088, 0.001258, 0.00123551, 0.0012134, 0.00119167, 0.00117032, 0.00114932, 0.00112869, 0.00110841, 0.00108848, 0.0010689, 0.00104965, 0.00103073, 0.00101213, 0.00099386, 0.0009759, 0.00095825, 0.00094091, 0.00092387, 0.00090712, 0.00089066, 0.00087449, 0.0008586, 0.00084298, 0.00082764, 0.00081256, 0.00079775, 0.00078319, 0.00076889, 0.00075484, 0.00074103, 0.00072747, 0.00071414, 0.00070105, 0.00068819, 0.00067555, 0.00066314, 0.00065094, 0.00063896, 0.00062719, 0.00061562, 0.00060426, 0.0005931, 0.00058214, 0.00057138, 0.0005608, 0.00055041, 0.00054021, 0.00053018, 0.00052034, 0.00051067, 0.00050117, 0.00049184, 0.00048268, 0.00047368, 0.00046485, 0.00045617, 0.00044764, 0.00043927, 0.00043105, 0.00042298, 0.00041505, 0.00040726, 0.00039961, 0.00039211, 0.00038473, 0.00037749, 0.00037038, 0.0003634, 0.00035655, 0.00034982, 0.00034321, 0.00033672, 0.00033035, 0.00032409, 0.00031795, 0.00031192, 0.000306, 0.00030019, 0.00029448, 0.00028888, 0.00028338, 0.00027798, 0.00027268, 0.00026748, 0.00026237, 0.00025736, 0.00025243, 0.0002476, 0.00024286, 0.0002382, 0.00023363, 0.00022915, 0.00022474, 0.00022042, 0.00021618, 0.00021202, 0.00020793, 0.00020392, 0.00019999, 0.00019612, 0.00019233, 0.00018861, 0.00018496, 0.00018137, 0.00017786, 0.00017441, 0.00017102, 0.0001677, 0.00016443, 0.00016123, 0.00015809, 0.00015501, 0.00015199, 0.00014902, 0.00014611, 0.00014325, 0.00014045, 0.0001377, 0.000135, 0.00013236, 0.00012976, 0.00012721, 0.00012471, 0.00012226, 0.00011985, 0.00011749, 0.00011517, 0.0001129, 0.00011067, 0.00010849, 0.00010634, 0.00010424, 0.00010217, 0.00010015, 0.00009816, 0.00009622, 0.00009431, 0.00009243, 0.00009059, 0.00008879, 0.00008702, 0.00008529, 0.00008359, 0.00008192, 0.00008028, 0.00007868, 0.0000771, 0.00007556, 0.00007405, 0.00007256, 0.00007111, 0.00006968, 0.00006828, 0.00006691, 0.00006556, 0.00006424, 0.00006295, 0.00006168, 0.00006043, 0.00005921, 0.00005801, 0.00005684, 0.00005569, 0.00005456, 0.00005346, 0.00005237, 0.00005131, 0.00005027, 0.00004925, 0.00004825, 0.00004726, 0.0000463, 0.00004536, 0.00004443, 0.00004352, 0.00004264, 0.00004176, 0.00004091, 0.00004007, 0.00003925, 0.00003845, 0.00003766, 0.00003689, 0.00003613, 0.00003538, 0.00003466, 0.00003394, 0.00003324, 0.00003256, 0.00003189, 0.00003123, 0.00003058, 0.00002995, 0.00002933, 0.00002872, 0.00002813, 0.00002755, 0.00002697, 0.00002641, 0.00002587, 0.00002533, 0.0000248, 0.00002428, 0.00002378, 0.00002328, 0.0000228, 0.00002232, 0.00002185, 0.0000214, 0.00002095, 0.00002051, 0.00002008, 0.00001966, 0.00001925, 0.00001884, 0.00001845, 0.00001806, 0.00001768, 0.00001731, 0.00001694, 0.00001659, 0.00001624, 0.00001589, 0.00001556, 0.00001523, 0.00001491, 0.00001459, 0.00001428, 0.00001398, 0.00001368, 0.00001339, 0.00001311, 0.00001283, 0.00001256, 0.00001229, 0.00001203, 0.00001177, 0.00001152, 0.00001127, 0.00001103, 0.0000108, 0.00001057, 0.00001034, 0.00001012, 9.9025064e-06, 9.69015349e-06, 9.4822137e-06, 9.27859844e-06, 9.07922083e-06, 8.88399566e-06, 8.69283938e-06, 8.50567005e-06, 8.32240733e-06, 8.14297243e-06, 7.96728807e-06, 7.79527851e-06, 7.62686946e-06, 7.46198808e-06, 7.30056293e-06, 7.142524e-06, 6.98780262e-06, 6.83633147e-06, 6.68804453e-06, 6.5428771e-06, 6.40076571e-06, 6.26164818e-06, 6.1254635e-06, 5.99215188e-06, 5.86165472e-06, 5.73391454e-06, 5.60887502e-06, 5.48648093e-06, 5.36667813e-06, 5.24941355e-06, 5.13463518e-06, 5.02229201e-06, 4.91233407e-06, 4.80471235e-06, 4.69937883e-06, 4.59628644e-06, 4.49538903e-06, 4.39664137e-06, 4.29999916e-06, 4.20541892e-06, 4.1128581e-06, 4.02227494e-06, 3.93362856e-06, 3.84687886e-06, 3.76198657e-06, 3.67891317e-06, 3.59762095e-06, 3.51807293e-06, 3.44023286e-06, 3.36406525e-06, 3.2895353e-06, 3.21660891e-06, 3.14525266e-06, 3.07543382e-06, 3.00712031e-06, 2.94028068e-06, 2.87488415e-06, 2.81090052e-06, 2.74830023e-06, 2.6870543e-06, 2.62713435e-06, 2.56851257e-06, 2.51116169e-06, 2.45505503e-06, 2.40016643e-06, 2.34647027e-06, 2.29394144e-06, 2.24255534e-06, 2.19228789e-06, 2.14311548e-06, 2.09501499e-06, 2.04796376e-06, 2.00193963e-06, 1.95692084e-06, 1.91288611e-06, 1.86981458e-06, 1.82768584e-06, 1.78647986e-06, 1.74617706e-06, 1.70675823e-06, 1.66820458e-06, 1.63049769e-06, 1.59361952e-06, 1.55755241e-06, 1.52227907e-06, 1.48778254e-06, 1.45404623e-06, 1.42105389e-06, 1.38878961e-06, 1.3572378e-06, 1.3263832e-06, 1.29621085e-06, 1.26670613e-06, 1.2378547e-06, 1.20964252e-06, 1.18205585e-06, 1.15508124e-06, 1.1287055e-06, 1.10291572e-06, 1.07769929e-06, 1.05304382e-06, 1.0289372e-06, 1.00536757e-06, 9.82323326e-07, 9.59793096e-07, 9.37765748e-07, 9.16230386e-07, 8.95176341e-07, 8.7459317e-07, 8.54470646e-07, 8.3479876e-07, 8.15567712e-07, 7.96767908e-07, 7.78389959e-07, 7.6042467e-07, 7.42863044e-07, 7.25696269e-07, 7.08915725e-07, 6.9251297e-07, 6.76479743e-07, 6.60807957e-07, 6.45489697e-07, 6.30517215e-07, 6.15882928e-07, 6.01579414e-07, 5.8759941e-07, 5.73935806e-07, 5.60581643e-07, 5.47530113e-07, 5.3477455e-07, 5.22308433e-07, 5.10125377e-07, 4.98219137e-07, 4.86583599e-07, 4.75212782e-07, 4.64100831e-07, 4.53242018e-07, 4.42630738e-07, 4.32261504e-07, 4.2212895e-07, 4.12227823e-07, 4.02552985e-07, 3.93099407e-07, 3.83862169e-07, 3.74836457e-07, 3.66017561e-07, 3.57400874e-07, 3.48981885e-07, 3.40756184e-07, 3.32719456e-07, 3.24867477e-07, 3.17196118e-07, 3.09701337e-07, 3.0237918e-07, 2.9522578e-07, 2.88237354e-07, 2.814102e-07, 2.74740698e-07, 2.68225306e-07, 2.61860559e-07, 2.55643069e-07, 2.49569521e-07, 2.43636672e-07, 2.3784135e-07, 2.32180454e-07, 2.26650948e-07, 2.21249866e-07, 2.15974304e-07, 2.10821424e-07, 2.05788449e-07, 2.00872663e-07, 1.96071409e-07, 1.91382092e-07, 1.8680217e-07, 1.82329159e-07, 1.77960629e-07, 1.73694205e-07, 1.69527563e-07, 1.65458431e-07, 1.61484588e-07, 1.5760386e-07, 1.53814123e-07, 1.501133e-07, 1.46499359e-07, 1.42970313e-07, 1.39524222e-07, 1.36159185e-07, 1.32873347e-07, 1.29664891e-07, 1.26532042e-07, 1.23473066e-07, 1.20486265e-07, 1.17569981e-07, 1.14722592e-07, 1.11942512e-07, 1.09228191e-07, 1.06578114e-07, 1.03990799e-07, 1.01464799e-07, 9.89986965e-08, 9.65911089e-08, 9.4240683e-08, 9.19460962e-08, 8.97060558e-08, 8.75192983e-08, 8.53845884e-08, 8.33007189e-08, 8.12665097e-08, 7.92808074e-08, 7.73424845e-08, 7.54504392e-08, 7.36035945e-08, 7.18008978e-08, 7.00413203e-08, 6.83238566e-08, 6.66475241e-08, 6.50113624e-08, 6.34144331e-08, 6.18558189e-08, 6.03346236e-08, 5.88499711e-08, 5.74010056e-08, 5.59868905e-08, 5.46068086e-08, 5.32599609e-08, 5.19455672e-08, 5.06628647e-08, 4.94111082e-08, 4.81895695e-08, 4.69975372e-08, 4.58343162e-08, 4.46992271e-08, 4.35916063e-08, 4.25108055e-08, 4.14561911e-08, 4.04271442e-08, 3.94230601e-08, 3.8443348e-08, 3.74874308e-08, 3.65547446e-08, 3.56447386e-08, 3.47568747e-08, 3.38906271e-08, 3.30454823e-08, 3.22209388e-08, 3.14165063e-08, 3.06317063e-08, 2.98660712e-08, 2.91191442e-08, 2.83904792e-08, 2.76796403e-08, 2.6986202e-08, 2.63097485e-08, 2.56498737e-08, 2.50061811e-08, 2.43782831e-08, 2.37658016e-08, 2.3168367e-08, 2.25856184e-08, 2.20172035e-08, 2.14627778e-08, 2.09220055e-08, 2.0394558e-08, 1.9880115e-08, 1.93783633e-08, 1.88889971e-08, 1.8411718e-08, 1.79462344e-08, 1.74922617e-08, 1.70495218e-08, 1.66177433e-08, 1.61966612e-08, 1.57860167e-08, 1.53855571e-08, 1.49950356e-08, 1.46142114e-08, 1.42428493e-08, 1.38807196e-08, 1.3527598e-08, 1.31832658e-08, 1.28475092e-08, 1.25201195e-08, 1.22008931e-08, 1.1889631e-08, 1.15861392e-08, 1.12902281e-08, 1.10017128e-08, 1.07204125e-08, 1.04461511e-08, 1.01787563e-08, 9.9180603e-09, 9.66389897e-09, 9.41611228e-09, 9.17454398e-09, 8.93904155e-09, 8.70945614e-09, 8.48564244e-09, 8.26745865e-09, 8.05476633e-09, 7.8474304e-09, 7.64531899e-09, 7.44830343e-09, 7.25625812e-09, 7.06906049e-09, 6.8865909e-09, 6.70873263e-09, 6.53537175e-09, 6.36639706e-09, 6.20170007e-09, 6.04117491e-09, 5.88471824e-09, 5.73222926e-09, 5.58360956e-09, 5.43876316e-09, 5.29759636e-09, 5.16001777e-09, 5.02593819e-09, 4.8952706e-09, 4.76793009e-09, 4.64383379e-09, 4.52290089e-09, 4.40505251e-09, 4.2902117e-09, 4.17830338e-09, 4.06925433e-09, 3.96299306e-09, 3.85944988e-09, 3.75855678e-09, 3.66024739e-09, 3.564457e-09, 3.47112247e-09, 3.38018219e-09, 3.29157608e-09, 3.20524552e-09, 3.12113334e-09, 3.03918377e-09, 2.95934239e-09, 2.88155615e-09, 2.80577328e-09, 2.73194329e-09, 2.66001694e-09, 2.58994619e-09, 2.52168421e-09, 2.45518529e-09, 2.39040487e-09, 2.3272995e-09, 2.26582677e-09, 2.20594536e-09, 2.14761493e-09, 2.09079618e-09, 2.03545075e-09, 1.98154125e-09, 1.92903122e-09, 1.87788509e-09, 1.82806818e-09, 1.77954668e-09, 1.73228761e-09, 1.68625882e-09, 1.64142894e-09, 1.59776742e-09, 1.55524442e-09, 1.5138309e-09, 1.4734985e-09, 1.43421959e-09, 1.39596723e-09, 1.35871514e-09, 1.32243773e-09, 1.28711e-09, 1.25270762e-09, 1.21920685e-09, 1.18658456e-09, 1.15481817e-09, 1.12388571e-09, 1.09376572e-09, 1.06443731e-09, 1.03588011e-09, 1.00807425e-09, 9.81000359e-10, 9.54639577e-10, 9.28973501e-10, 9.03984199e-10, 8.79654188e-10, 8.5596643e-10, 8.32904317e-10, 8.1045166e-10, 7.88592681e-10, 7.67312001e-10, 7.46594631e-10, 7.26425962e-10, 7.06791757e-10, 6.87678137e-10, 6.6907158e-10, 6.50958903e-10, 6.33327263e-10, 6.16164141e-10, 5.99457338e-10, 5.83194964e-10, 5.67365435e-10, 5.51957459e-10, 5.36960037e-10, 5.22362446e-10, 5.0815424e-10, 4.94325239e-10, 4.80865525e-10, 4.67765431e-10, 4.55015541e-10, 4.42606678e-10, 4.30529901e-10, 4.187765e-10, 4.07337985e-10, 3.96206089e-10, 3.85372753e-10, 3.74830128e-10, 3.64570567e-10, 3.54586619e-10, 3.44871024e-10, 3.35416713e-10, 3.26216795e-10, 3.17264559e-10, 3.08553468e-10, 3.00077152e-10, 2.91829409e-10, 2.83804193e-10, 2.75995618e-10, 2.6839795e-10, 2.61005602e-10, 2.53813133e-10, 2.46815244e-10, 2.40006773e-10, 2.3338269e-10, 2.269381e-10, 2.20668233e-10, 2.14568441e-10, 2.08634202e-10, 2.02861107e-10, 1.97244865e-10, 1.91781296e-10, 1.8646633e-10, 1.81296001e-10, 1.76266449e-10, 1.71373914e-10, 1.66614734e-10, 1.61985344e-10, 1.57482271e-10, 1.53102135e-10, 1.48841643e-10, 1.44697588e-10, 1.40666849e-10, 1.36746385e-10, 1.32933238e-10, 1.29224524e-10, 1.25617437e-10, 1.22109245e-10, 1.18697287e-10, 1.15378974e-10, 1.12151783e-10, 1.09013259e-10, 1.05961012e-10, 1.02992713e-10, 1.00106098e-10, 9.72989603e-11, 9.45691524e-11, 9.19145838e-11, 8.93332194e-11, 8.68230779e-11, 8.43822306e-11, 8.20088e-11, 7.97009586e-11, 7.74569274e-11, 7.52749746e-11, 7.31534146e-11, 7.10906066e-11, 6.90849535e-11, 6.71349009e-11, 6.52389357e-11, 6.33955853e-11, 6.16034163e-11, 5.98610336e-11, 5.81670796e-11, 5.65202326e-11, 5.49192067e-11, 5.33627501e-11, 5.18496447e-11, 5.03787051e-11, 4.89487775e-11, 4.75587392e-11, 4.62074977e-11, 4.48939896e-11, 4.36171804e-11, 4.23760632e-11, 4.11696583e-11, 3.99970123e-11, 3.88571975e-11, 3.77493114e-11, 3.66724755e-11, 3.56258353e-11, 3.46085592e-11, 3.36198382e-11, 3.26588849e-11, 3.17249336e-11, 3.08172391e-11, 2.99350762e-11, 2.90777397e-11, 2.82445433e-11, 2.74348193e-11, 2.66479183e-11, 2.58832084e-11, 2.51400748e-11, 2.44179195e-11, 2.37161608e-11, 2.30342328e-11, 2.2371585e-11, 2.17276818e-11, 2.11020024e-11, 2.04940401e-11, 1.99033019e-11, 1.93293085e-11, 1.87715935e-11, 1.82297034e-11, 1.7703197e-11, 1.71916451e-11, 1.66946305e-11, 1.62117472e-11, 1.57426004e-11, 1.52868061e-11, 1.4843991e-11, 1.44137919e-11, 1.39958554e-11, 1.35898382e-11, 1.31954062e-11, 1.28122346e-11, 1.24400073e-11, 1.20784173e-11, 1.17271657e-11, 1.13859621e-11, 1.10545239e-11, 1.07325765e-11, 1.04198527e-11, 1.01160929e-11, 9.82104443e-12, 9.53446178e-12, 9.25610618e-12, 8.98574549e-12, 8.72315398e-12, 8.4681122e-12, 8.22040678e-12, 7.97983027e-12, 7.74618097e-12, 7.51926281e-12, 7.29888515e-12, 7.08486266e-12, 6.87701517e-12, 6.67516752e-12, 6.47914944e-12, 6.28879539e-12, 6.10394447e-12, 5.92444026e-12, 5.75013069e-12, 5.58086797e-12, 5.41650841e-12, 5.25691236e-12, 5.10194407e-12, 4.95147158e-12, 4.80536665e-12, 4.66350462e-12, 4.52576432e-12, 4.39202799e-12, 4.26218117e-12, 4.13611261e-12, 4.0137142e-12, 3.89488087e-12, 3.77951048e-12, 3.66750379e-12, 3.55876436e-12, 3.45319843e-12, 3.35071493e-12, 3.25122533e-12, 3.1546436e-12, 3.06088614e-12, 2.96987173e-12, 2.88152143e-12, 2.79575852e-12, 2.71250848e-12, 2.63169887e-12, 2.55325934e-12, 2.47712149e-12, 2.40321888e-12, 2.33148697e-12, 2.26186303e-12, 2.19428611e-12, 2.12869702e-12, 2.06503821e-12, 2.00325381e-12, 1.94328952e-12, 1.88509257e-12, 1.82861173e-12, 1.77379719e-12, 1.7206006e-12, 1.66897497e-12, 1.61887464e-12, 1.57025528e-12, 1.52307381e-12, 1.47728838e-12, 1.43285836e-12, 1.38974424e-12, 1.34790769e-12, 1.30731145e-12, 1.26791934e-12, 1.2296962e-12, 1.1926079e-12, 1.15662127e-12, 1.12170413e-12, 1.08782518e-12, 1.05495404e-12, 1.02306122e-12, 9.92118044e-13, 9.62096692e-13, 9.32970132e-13, 9.04712116e-13, 8.77297151e-13, 8.5070048e-13, 8.24898063e-13, 7.99866553e-13, 7.75583277e-13, 7.5202622e-13, 7.29174003e-13, 7.07005866e-13, 6.85501651e-13, 6.64641784e-13, 6.44407259e-13, 6.24779619e-13, 6.05740947e-13, 5.87273843e-13, 5.69361414e-13, 5.51987257e-13, 5.3513545e-13, 5.18790528e-13, 5.02937483e-13, 4.87561739e-13, 4.72649148e-13, 4.58185972e-13, 4.44158878e-13, 4.30554918e-13, 4.17361524e-13, 4.04566496e-13, 3.92157989e-13, 3.80124506e-13, 3.68454886e-13, 3.57138294e-13, 3.46164213e-13, 3.35522436e-13, 3.25203053e-13, 3.15196445e-13, 3.05493276e-13, 2.96084486e-13, 2.86961277e-13, 2.78115114e-13, 2.69537711e-13, 2.61221026e-13, 2.53157253e-13, 2.45338818e-13, 2.37758369e-13, 2.30408771e-13, 2.23283099e-13, 2.16374634e-13, 2.09676854e-13, 2.0318343e-13, 1.96888221e-13, 1.90785266e-13, 1.84868782e-13, 1.79133156e-13, 1.73572943e-13, 1.68182857e-13, 1.62957772e-13, 1.5789271e-13, 1.52982845e-13, 1.48223491e-13, 1.43610103e-13, 1.39138271e-13, 1.34803715e-13, 1.30602284e-13, 1.26529949e-13, 1.22582803e-13, 1.18757054e-13, 1.15049022e-13, 1.1145514e-13, 1.07971945e-13, 1.04596077e-13, 1.01324279e-13, 9.81533894e-14, 9.50803412e-14, 9.21021599e-14, 8.92159595e-14, 8.64189407e-14, 8.37083882e-14, 8.10816678e-14, 7.85362245e-14, 7.60695801e-14, 7.36793305e-14, 7.13631442e-14, 6.91187595e-14, 6.69439828e-14, 6.48366864e-14, 6.2794807e-14, 6.0816343e-14, 5.88993534e-14, 5.70419555e-14, 5.52423237e-14, 5.34986871e-14, 5.18093286e-14, 5.01725828e-14, 4.85868346e-14, 4.70505179e-14, 4.55621138e-14, 4.41201494e-14, 4.27231966e-14, 4.13698702e-14, 4.00588273e-14, 3.87887656e-14, 3.75584224e-14, 3.63665731e-14, 3.52120305e-14, 3.40936436e-14, 3.30102959e-14, 3.19609054e-14, 3.09444227e-14, 2.99598305e-14, 2.90061423e-14, 2.80824019e-14, 2.7187682e-14, 2.63210839e-14, 2.5481736e-14, 2.46687936e-14, 2.38814375e-14, 2.31188738e-14, 2.23803328e-14, 2.16650682e-14, 2.09723568e-14, 2.03014974e-14, 1.96518102e-14, 1.90226363e-14, 1.84133372e-14, 1.78232937e-14, 1.72519058e-14, 1.66985918e-14, 1.6162788e-14, 1.56439478e-14, 1.51415418e-14, 1.46550565e-14, 1.41839943e-14, 1.37278732e-14, 1.32862257e-14, 1.28585989e-14, 1.24445539e-14, 1.20436651e-14, 1.16555203e-14, 1.127972e-14, 1.09158769e-14, 1.05636158e-14, 1.0222573e-14, 9.89239625e-15, 9.57274399e-15, 9.26328535e-15, 8.96369969e-15, 8.67367632e-15, 8.39291418e-15, 8.12112157e-15, 7.85801583e-15, 7.60332308e-15, 7.35677796e-15, 7.11812336e-15, 6.88711017e-15, 6.66349703e-15, 6.44705011e-15, 6.23754284e-15, 6.03475573e-15, 5.83847612e-15, 5.64849801e-15, 5.4646218e-15, 5.28665414e-15, 5.11440773e-15, 4.94770109e-15, 4.78635846e-15, 4.63020955e-15, 4.4790894e-15, 4.33283823e-15, 4.19130126e-15, 4.05432856e-15, 3.9217749e-15, 3.79349961e-15, 3.66936645e-15, 3.54924343e-15, 3.43300272e-15, 3.32052052e-15, 3.2116769e-15, 3.10635573e-15, 3.00444452e-15, 2.90583433e-15, 2.81041963e-15, 2.71809825e-15, 2.62877123e-15, 2.54234272e-15, 2.4587199e-15, 2.3778129e-15, 2.29953467e-15, 2.22380092e-15, 2.15053003e-15, 2.07964294e-15, 2.01106312e-15, 1.94471646e-15, 1.88053117e-15, 1.81843778e-15, 1.75836899e-15, 1.70025965e-15, 1.64404666e-15, 1.58966896e-15, 1.53706739e-15, 1.4861847e-15, 1.43696544e-15, 1.38935594e-15, 1.34330424e-15, 1.29876001e-15, 1.25567455e-15, 1.2140007e-15, 1.17369282e-15, 1.1347067e-15, 1.09699955e-15, 1.06052997e-15, 1.02525785e-15, 9.91144374e-16, 9.5815198e-16, 9.26244292e-16, 8.95386105e-16, 8.6554334e-16, 8.3668301e-16, 8.08773184e-16, 7.81782959e-16, 7.55682419e-16, 7.30442611e-16, 7.06035511e-16, 6.82433994e-16, 6.5961181e-16, 6.3754355e-16, 6.16204624e-16, 5.95571233e-16, 5.75620345e-16, 5.5632967e-16, 5.37677634e-16, 5.19643363e-16, 5.02206653e-16, 4.85347952e-16, 4.69048342e-16, 4.53289514e-16, 4.38053752e-16, 4.2332391e-16, 4.09083401e-16, 3.95316172e-16, 3.82006689e-16, 3.69139924e-16, 3.56701334e-16, 3.44676848e-16, 3.33052852e-16, 3.21816172e-16, 3.10954063e-16, 3.00454195e-16, 2.90304638e-16, 2.80493847e-16, 2.71010657e-16, 2.61844264e-16, 2.52984215e-16, 2.44420399e-16, 2.36143033e-16, 2.28142655e-16, 2.2041011e-16, 2.12936541e-16, 2.05713382e-16, 1.98732346e-16, 1.91985416e-16, 1.85464838e-16, 1.79163111e-16, 1.7307298e-16, 1.67187426e-16, 1.61499662e-16, 1.56003122e-16, 1.50691456e-16, 1.45558521e-16, 1.40598375e-16, 1.35805275e-16, 1.31173661e-16, 1.2669816e-16, 1.22373573e-16, 1.18194873e-16, 1.14157199e-16, 1.10255849e-16, 1.06486275e-16, 1.0284408e-16, 9.93250127e-17, 9.59249599e-17, 9.26399453e-17, 8.94661234e-17, 8.6399776e-17, 8.34373073e-17, 8.05752404e-17, 7.78102135e-17, 7.51389758e-17, 7.2558384e-17, 7.00653989e-17, 6.76570821e-17, 6.53305923e-17, 6.30831824e-17, 6.09121965e-17, 5.88150667e-17, 5.67893104e-17, 5.48325272e-17, 5.29423967e-17, 5.11166756e-17, 4.93531949e-17, 4.76498579e-17, 4.60046378e-17, 4.44155751e-17, 4.28807755e-17, 4.13984079e-17, 3.99667024e-17, 3.85839479e-17, 3.72484903e-17, 3.59587309e-17, 3.47131245e-17, 3.35101771e-17, 3.2348445e-17, 3.12265326e-17, 3.0143091e-17, 2.90968165e-17, 2.8086449e-17, 2.71107706e-17, 2.61686042e-17, 2.52588122e-17, 2.43802951e-17, 2.35319903e-17, 2.27128709e-17, 2.19219444e-17, 2.11582518e-17, 2.04208662e-17, 1.97088918e-17, 1.90214632e-17, 1.83577439e-17, 1.77169256e-17, 1.70982273e-17, 1.65008942e-17, 1.5924197e-17, 1.53674311e-17, 1.48299154e-17, 1.43109922e-17, 1.38100257e-17, 1.33264016e-17, 1.28595265e-17, 1.24088269e-17, 1.19737489e-17, 1.15537572e-17, 1.11483346e-17, 1.07569816e-17, 1.03792154e-17, 1.00145697e-17, 9.66259402e-18, 9.32285313e-18, 8.99492658e-18, 8.67840818e-18, 8.37290558e-18, 8.07803974e-18, 7.7934445e-18, 7.51876618e-18, 7.25366312e-18, 6.99780531e-18, 6.75087396e-18, 6.51256116e-18, 6.28256948e-18, 6.06061166e-18, 5.84641021e-18, 5.63969715e-18, 5.44021361e-18, 5.24770959e-18, 5.06194363e-18, 4.88268253e-18, 4.70970106e-18, 4.5427817e-18, 4.38171437e-18, 4.22629621e-18, 4.07633129e-18, 3.93163039e-18, 3.7920108e-18, 3.65729608e-18, 3.52731582e-18, 3.40190549e-18, 3.2809062e-18, 3.16416451e-18, 3.05153228e-18, 2.94286645e-18, 2.83802888e-18, 2.7368862e-18, 2.63930962e-18, 2.5451748e-18, 2.45436167e-18, 2.36675432e-18, 2.28224082e-18, 2.20071311e-18, 2.12206687e-18, 2.04620138e-18, 1.97301939e-18, 1.90242702e-18, 1.83433364e-18, 1.76865175e-18, 1.70529688e-18, 1.6441875e-18, 1.58524487e-18, 1.52839302e-18, 1.47355859e-18, 1.42067076e-18, 1.36966119e-18, 1.3204639e-18, 1.27301519e-18, 1.2272536e-18, 1.18311978e-18, 1.14055646e-18, 1.09950836e-18, 1.05992212e-18, 1.02174624e-18, 9.84931023e-19, 9.49428486e-19, 9.15192331e-19, 8.82177873e-19, 8.50341985e-19, 8.19643045e-19, 7.90040887e-19, 7.61496745e-19, 7.3397321e-19, 7.0743418e-19, 6.81844819e-19, 6.57171504e-19, 6.33381796e-19, 6.10444387e-19, 5.88329068e-19, 5.67006689e-19, 5.46449122e-19, 5.26629226e-19, 5.07520812e-19, 4.89098611e-19, 4.71338242e-19, 4.54216179e-19, 4.37709726e-19, 4.21796982e-19, 4.0645682e-19, 3.91668853e-19, 3.77413414e-19, 3.63671529e-19, 3.50424892e-19, 3.37655843e-19, 3.25347343e-19, 3.13482958e-19, 3.0204683e-19, 2.91023663e-19, 2.80398702e-19, 2.70157712e-19, 2.60286963e-19, 2.5077321e-19, 2.41603675e-19, 2.32766035e-19, 2.24248402e-19, 2.1603931e-19, 2.08127698e-19, 2.00502899e-19, 1.93154623e-19, 1.86072946e-19, 1.79248296e-19, 1.72671441e-19, 1.66333477e-19, 1.60225818e-19, 1.5434018e-19, 1.48668577e-19, 1.43203306e-19, 1.37936937e-19, 1.32862306e-19, 1.27972506e-19, 1.23260872e-19, 1.18720981e-19, 1.14346636e-19, 1.10131862e-19, 1.06070899e-19, 1.02158191e-19, 9.83883816e-20, 9.47563045e-20, 9.12569793e-20, 8.78856037e-20, 8.46375471e-20, 8.15083446e-20, 7.84936916e-20, 7.55894374e-20, 7.27915804e-20, 7.00962623e-20, 6.74997633e-20, 6.49984973e-20, 6.25890068e-20, 6.02679585e-20, 5.8032139e-20, 5.58784504e-20, 5.38039061e-20, 5.18056272e-20, 4.98808383e-20, 4.80268638e-20, 4.62411248e-20, 4.45211352e-20, 4.28644985e-20, 4.12689046e-20, 3.97321269e-20, 3.82520191e-20, 3.68265125e-20, 3.54536129e-20, 3.41313984e-20, 3.28580165e-20, 3.16316818e-20, 3.04506733e-20, 2.93133326e-20, 2.82180611e-20, 2.71633182e-20, 2.61476192e-20, 2.51695331e-20, 2.4227681e-20, 2.33207338e-20, 2.24474108e-20, 2.16064778e-20, 2.07967454e-20, 2.00170675e-20, 1.92663396e-20, 1.85434973e-20, 1.78475152e-20, 1.71774049e-20, 1.65322143e-20, 1.59110256e-20, 1.53129549e-20, 1.47371503e-20, 1.41827909e-20, 1.36490859e-20, 1.31352732e-20, 1.26406188e-20, 1.21644153e-20, 1.17059811e-20, 1.12646598e-20, 1.08398188e-20, 1.04308486e-20, 1.00371621e-20, 9.65819386e-21, 9.29339885e-21, 8.94225219e-21, 8.60424821e-21, 8.27889981e-21, 7.96573771e-21, 7.66430992e-21, 7.374181e-21, 7.09493152e-21, 6.82615747e-21, 6.56746968e-21, 6.31849332e-21, 6.07886733e-21, 5.84824393e-21, 5.62628818e-21, 5.41267744e-21, 5.20710099e-21, 5.00925955e-21, 4.81886488e-21, 4.63563938e-21, 4.45931568e-21, 4.28963631e-21, 4.12635329e-21, 3.96922779e-21, 3.81802985e-21, 3.67253798e-21, 3.5325389e-21, 3.39782721e-21, 3.26820514e-21, 3.14348221e-21, 3.02347503e-21, 2.90800699e-21, 2.79690804e-21, 2.69001442e-21, 2.58716848e-21, 2.48821838e-21, 2.39301796e-21, 2.30142647e-21, 2.21330838e-21, 2.12853324e-21, 2.0469754e-21, 1.96851394e-21, 1.89303239e-21, 1.82041865e-21, 1.75056479e-21, 1.6833669e-21, 1.61872494e-21, 1.55654262e-21, 1.49672721e-21, 1.43918947e-21, 1.38384349e-21, 1.33060655e-21, 1.27939905e-21, 1.23014433e-21, 1.18276863e-21, 1.13720093e-21, 1.09337288e-21, 1.05121868e-21, 1.010675e-21, 9.71680891e-22, 9.34177667e-22, 8.98108861e-22, 8.63420119e-22, 8.30059126e-22, 7.97975533e-22, 7.67120881e-22, 7.37448533e-22, 7.08913602e-22, 6.81472892e-22, 6.5508483e-22, 6.29709409e-22, 6.05308128e-22, 5.81843933e-22, 5.5928117e-22, 5.37585527e-22, 5.16723985e-22, 4.9666477e-22, 4.7737731e-22, 4.58832185e-22, 4.41001084e-22, 4.23856768e-22, 4.07373028e-22, 3.91524643e-22, 3.76287349e-22, 3.61637796e-22, 3.47553523e-22, 3.34012914e-22, 3.20995175e-22, 3.08480299e-22, 2.96449038e-22, 2.84882873e-22, 2.73763989e-22, 2.63075244e-22, 2.5280015e-22, 2.42922843e-22, 2.33428064e-22, 2.24301131e-22, 2.15527922e-22, 2.07094852e-22, 1.98988853e-22, 1.91197354e-22, 1.83708263e-22, 1.76509948e-22, 1.69591221e-22, 1.62941321e-22, 1.56549895e-22, 1.50406987e-22, 1.44503021e-22, 1.38828786e-22, 1.33375422e-22, 1.2813441e-22, 1.23097555e-22, 1.18256974e-22, 1.13605087e-22, 1.09134605e-22, 1.04838517e-22, 1.0071008e-22, 9.67428099e-23, 9.29304707e-23, 8.92670661e-23, 8.57468293e-23, 8.23642148e-23, 7.91138902e-23, 7.59907274e-23, 7.29897957e-23, 7.01063536e-23, 6.73358419e-23, 6.46738767e-23, 6.21162428e-23, 5.96588872e-23, 5.72979128e-23, 5.50295728e-23, 5.28502644e-23, 5.07565241e-23, 4.87450215e-23, 4.68125549e-23, 4.49560461e-23, 4.31725356e-23, 4.14591782e-23, 3.98132387e-23, 3.82320874e-23, 3.67131966e-23, 3.52541358e-23, 3.3852569e-23, 3.25062504e-23, 3.12130211e-23, 2.99708059e-23, 2.87776099e-23, 2.76315156e-23, 2.65306798e-23, 2.54733307e-23, 2.44577655e-23, 2.34823471e-23, 2.25455024e-23, 2.1645719e-23, 2.07815435e-23, 1.99515789e-23, 1.91544827e-23, 1.83889643e-23, 1.76537835e-23, 1.69477485e-23, 1.62697136e-23, 1.56185781e-23, 1.49932839e-23, 1.43928143e-23, 1.38161922e-23, 1.32624786e-23, 1.27307712e-23, 1.22202028e-23, 1.17299403e-23, 1.12591829e-23, 1.08071614e-23, 1.03731363e-23, 9.95639723e-24, 9.55626171e-24, 9.17207381e-24, 8.80320333e-24, 8.44904478e-24, 8.10901637e-24, 7.78255913e-24, 7.46913601e-24, 7.16823101e-24, 6.8793484e-24, 6.60201191e-24, 6.33576395e-24, 6.08016494e-24, 5.83479255e-24, 5.59924106e-24, 5.37312072e-24, 5.15605709e-24, 4.94769049e-24, 4.74767539e-24, 4.55567987e-24, 4.37138508e-24, 4.19448476e-24, 4.0246847e-24, 3.86170231e-24, 3.70526614e-24, 3.55511547e-24, 3.41099986e-24, 3.27267878e-24, 3.13992118e-24, 3.01250515e-24, 2.89021758e-24, 2.77285377e-24, 2.66021711e-24, 2.55211879e-24, 2.44837748e-24, 2.34881901e-24, 2.25327615e-24, 2.16158826e-24, 2.0736011e-24, 1.98916653e-24, 1.9081423e-24, 1.83039181e-24, 1.75578387e-24, 1.68419253e-24, 1.61549681e-24, 1.54958056e-24, 1.48633226e-24, 1.42564481e-24, 1.36741537e-24, 1.31154521e-24, 1.25793952e-24, 1.20650728e-24, 1.15716108e-24, 1.10981702e-24, 1.06439452e-24, 1.02081623e-24, 9.79007891e-25, 9.38898201e-25, 9.00418708e-25, 8.63503696e-25, 8.28090077e-25, 7.94117284e-25, 7.61527175e-25, 7.30263932e-25, 7.00273972e-25, 6.71505861e-25, 6.43910221e-25, 6.17439656e-25, 5.92048667e-25, 5.67693583e-25, 5.44332483e-25, 5.21925129e-25, 5.00432897e-25, 4.79818716e-25, 4.60047004e-25, 4.41083608e-25, 4.22895748e-25, 4.05451963e-25, 3.88722058e-25, 3.72677053e-25, 3.57289135e-25, 3.4253161e-25, 3.2837886e-25, 3.148063e-25, 3.01790336e-25, 2.89308326e-25, 2.77338539e-25, 2.65860126e-25, 2.54853074e-25, 2.44298184e-25, 2.34177027e-25, 2.24471923e-25, 2.15165906e-25, 2.06242695e-25, 1.97686669e-25, 1.89482839e-25, 1.81616821e-25, 1.74074817e-25, 1.66843586e-25, 1.59910423e-25, 1.5326314e-25, 1.46890043e-25, 1.4077991e-25, 1.34921979e-25, 1.2930592e-25, 1.23921826e-25, 1.18760192e-25, 1.13811899e-25, 1.09068197e-25, 1.04520696e-25, 1.00161343e-25, 9.59824161e-26, 9.19765056e-26, 8.81365048e-26, 8.44555962e-26, 8.09272403e-26, 7.75451642e-26, 7.43033508e-26, 7.11960287e-26, 6.82176618e-26, 6.53629403e-26, 6.26267712e-26, 6.00042696e-26, 5.74907503e-26, 5.50817196e-26, 5.27728676e-26, 5.05600609e-26, 4.84393351e-26, 4.64068884e-26, 4.44590744e-26, 4.25923962e-26, 4.08035005e-26, 3.90891712e-26, 3.74463241e-26, 3.58720019e-26, 3.43633682e-26, 3.29177035e-26, 3.15323997e-26, 3.02049561e-26, 2.89329746e-26, 2.77141557e-26, 2.65462947e-26, 2.54272775e-26, 2.43550768e-26, 2.33277491e-26, 2.23434308e-26, 2.14003352e-26, 2.04967489e-26, 1.96310297e-26, 1.88016026e-26, 1.80069579e-26, 1.72456482e-26, 1.65162857e-26, 1.581754e-26, 1.51481358e-26, 1.45068502e-26, 1.38925113e-26, 1.33039952e-26, 1.27402249e-26, 1.22001677e-26, 1.16828337e-26, 1.11872743e-26, 1.07125797e-26, 1.02578782e-26, 9.82233412e-27, 9.40514639e-27, 9.00554723e-27, 8.62280071e-27, 8.25620146e-27, 7.90507339e-27, 7.56876851e-27, 7.24666578e-27, 6.93816993e-27, 6.6427105e-27, 6.35974073e-27, 6.08873663e-27, 5.82919601e-27, 5.5806376e-27, 5.34260019e-27, 5.11464178e-27, 4.89633881e-27, 4.68728535e-27, 4.48709245e-27, 4.29538735e-27, 4.11181289e-27, 3.93602678e-27, 3.76770108e-27, 3.6065215e-27, 3.45218694e-27, 3.30440886e-27, 3.16291079e-27, 3.02742784e-27, 2.89770621e-27, 2.77350271e-27, 2.65458435e-27, 2.54072791e-27, 2.43171952e-27, 2.32735426e-27, 2.22743584e-27, 2.13177617e-27, 2.04019509e-27, 1.95251997e-27, 1.86858545e-27, 1.78823313e-27, 1.71131124e-27, 1.6376744e-27, 1.56718337e-27, 1.49970472e-27, 1.43511068e-27, 1.37327884e-27, 1.31409195e-27, 1.25743769e-27, 1.20320848e-27, 1.15130129e-27, 1.10161741e-27, 1.0540623e-27, 1.00854543e-27, 9.64980077e-28, 9.23283171e-28, 8.83375166e-28, 8.45179872e-28, 8.08624321e-28, 7.73638629e-28, 7.4015587e-28, 7.08111948e-28, 6.77445482e-28, 6.48097689e-28, 6.20012276e-28, 5.93135337e-28, 5.67415248e-28, 5.42802576e-28, 5.19249983e-28, 4.96712142e-28, 4.75145648e-28, 4.54508939e-28, 4.34762219e-28, 4.15867382e-28, 3.97787942e-28, 3.80488963e-28, 3.63936997e-28, 3.48100018e-28, 3.32947362e-28, 3.18449671e-28, 3.04578838e-28, 2.91307952e-28, 2.78611251e-28, 2.66464068e-28, 2.5484279e-28, 2.43724812e-28, 2.33088492e-28, 2.22913111e-28, 2.13178837e-28, 2.03866684e-28, 1.94958477e-28, 1.86436819e-28, 1.78285055e-28, 1.70487243e-28, 1.63028124e-28, 1.55893091e-28, 1.49068164e-28, 1.42539959e-28, 1.36295668e-28, 1.3032303e-28, 1.24610312e-28, 1.19146281e-28, 1.13920188e-28, 1.08921744e-28, 1.04141105e-28, 9.95688445e-29, 9.51959449e-29, 9.10137745e-29, 8.7014073e-29, 8.31889351e-29, 7.95307956e-29, 7.60324149e-29, 7.26868648e-29, 6.94875156e-29, 6.6428023e-29, 6.35023161e-29, 6.07045857e-29, 5.80292728e-29, 5.54710584e-29, 5.30248528e-29, 5.06857861e-29, 4.84491985e-29, 4.63106315e-29, 4.4265819e-29, 4.23106796e-29, 4.0441308e-29, 3.86539679e-29, 3.69450846e-29, 3.5311238e-29, 3.37491562e-29, 3.22557088e-29, 3.0827901e-29, 2.94628678e-29, 2.81578684e-29, 2.69102808e-29, 2.57175965e-29, 2.45774162e-29, 2.34874444e-29, 2.24454854e-29, 2.14494388e-29, 2.04972955e-29, 1.95871337e-29, 1.8717115e-29, 1.7885481e-29, 1.709055e-29, 1.6330713e-29, 1.56044315e-29, 1.49102338e-29, 1.42467122e-29, 1.36125204e-29, 1.30063709e-29, 1.24270321e-29, 1.18733263e-29, 1.1344127e-29, 1.08383571e-29, 1.03549863e-29, 9.8930293e-30, 9.45154398e-30, 9.02962927e-30, 8.62642353e-30, 8.24110278e-30, 7.87287907e-30, 7.52099893e-30, 7.18474188e-30, 6.86341896e-30, 6.55637139e-30, 6.26296925e-30, 5.98261023e-30, 5.71471841e-30, 5.45874313e-30, 5.2141579e-30, 4.9804593e-30, 4.75716603e-30, 4.54381791e-30, 4.33997499e-30, 4.14521662e-30, 3.95914066e-30, 3.78136264e-30, 3.61151501e-30, 3.44924637e-30, 3.2942208e-30, 3.14611716e-30, 3.00462844e-30, 2.86946118e-30, 2.74033484e-30, 2.61698122e-30, 2.49914398e-30, 2.38657807e-30, 2.27904926e-30, 2.17633364e-30, 2.07821721e-30, 1.98449539e-30, 1.89497266e-30, 1.80946215e-30, 1.72778521e-30, 1.64977113e-30, 1.57525673e-30, 1.50408606e-30, 1.43611007e-30, 1.37118629e-30, 1.3091786e-30, 1.24995688e-30, 1.19339678e-30, 1.13937947e-30, 1.08779138e-30, 1.038524e-30, 9.91473606e-31, 9.46541099e-31, 9.03631771e-31, 8.62655123e-31, 8.23524677e-31, 7.86157799e-31, 7.50475527e-31, 7.16402412e-31, 6.83866363e-31, 6.52798494e-31, 6.23132988e-31, 5.94806957e-31, 5.67760317e-31, 5.41935658e-31, 5.17278132e-31, 4.93735333e-31, 4.71257196e-31, 4.49795887e-31, 4.29305709e-31, 4.09743002e-31, 3.9106606e-31, 3.73235035e-31, 3.56211864e-31, 3.39960183e-31, 3.24445255e-31, 3.09633897e-31, 2.95494409e-31, 2.81996512e-31, 2.69111281e-31, 2.56811086e-31, 2.45069537e-31, 2.33861426e-31, 2.23162672e-31, 2.12950278e-31, 2.03202277e-31, 1.93897685e-31, 1.85016465e-31, 1.76539476e-31, 1.68448437e-31, 1.60725888e-31, 1.53355157e-31, 1.46320317e-31, 1.39606159e-31, 1.3319816e-31, 1.27082447e-31, 1.21245774e-31, 1.15675492e-31, 1.10359518e-31, 1.05286317e-31, 1.00444873e-31, 9.58246651e-32, 9.1415649e-32, 8.7208232e-32, 8.3193255e-32, 7.93619719e-32, 7.57060318e-32, 7.22174609e-32, 6.88886455e-32, 6.57123162e-32, 6.26815323e-32, 5.97896668e-32, 5.70303925e-32, 5.43976687e-32, 5.18857279e-32, 4.94890639e-32, 4.72024199e-32, 4.50207772e-32, 4.29393446e-32, 4.09535481e-32, 3.90590212e-32, 3.72515954e-32, 3.55272914e-32, 3.38823106e-32, 3.23130267e-32, 3.08159782e-32, 2.93878611e-32, 2.80255211e-32, 2.67259477e-32, 2.54862672e-32, 2.43037366e-32, 2.31757377e-32, 2.20997716e-32, 2.10734529e-32, 2.00945052e-32, 1.91607557e-32, 1.82701305e-32, 1.74206504e-32, 1.66104264e-32, 1.58376557e-32, 1.51006177e-32, 1.43976704e-32, 1.37272468e-32, 1.30878515e-32, 1.24780572e-32, 1.18965021e-32, 1.13418866e-32, 1.08129705e-32, 1.03085702e-32, 9.82755648e-33, 9.36885168e-33, 8.93142754e-33, 8.51430288e-33, 8.11654145e-33, 7.73724996e-33, 7.37557602e-33, 7.03070637e-33, 6.70186503e-33, 6.38831165e-33, 6.08933984e-33, 5.80427566e-33, 5.53247612e-33, 5.27332778e-33, 5.02624537e-33, 4.79067055e-33, 4.56607064e-33, 4.35193747e-33, 4.14778625e-33, 3.95315451e-33, 3.76760107e-33, 3.59070506e-33, 3.42206502e-33, 3.26129798e-33, 3.10803861e-33, 2.96193846e-33, 2.82266512e-33, 2.68990154e-33, 2.56334529e-33, 2.44270791e-33, 2.32771427e-33, 2.21810192e-33, 2.11362058e-33, 2.01403151e-33, 1.91910701e-33, 1.82862994e-33, 1.74239317e-33, 1.66019918e-33, 1.58185959e-33, 1.50719474e-33, 1.43603329e-33, 1.36821185e-33, 1.30357459e-33, 1.24197292e-33, 1.18326514e-33, 1.12731611e-33, 1.07399698e-33, 1.02318486e-33, 9.74762586e-34, 9.28618432e-34, 8.8464586e-34, 8.42743284e-34, 8.02813842e-34, 7.64765179e-34, 7.28509233e-34, 6.93962042e-34, 6.61043553e-34, 6.29677438e-34, 5.99790928e-34, 5.71314642e-34, 5.44182433e-34, 5.18331237e-34, 4.93700934e-34, 4.70234205e-34, 4.47876407e-34, 4.26575449e-34, 4.0628167e-34, 3.8694773e-34, 3.68528499e-34, 3.50980959e-34, 3.34264099e-34, 3.1833883e-34, 3.03167888e-34, 2.88715754e-34, 2.74948572e-34, 2.6183407e-34, 2.49341487e-34, 2.37441505e-34, 2.26106179e-34, 2.15308872e-34, 2.05024198e-34, 1.95227962e-34, 1.85897103e-34, 1.77009643e-34, 1.68544634e-34, 1.60482114e-34, 1.52803058e-34, 1.45489334e-34, 1.38523664e-34, 1.3188958e-34, 1.2557139e-34, 1.19554141e-34, 1.13823581e-34, 1.08366131e-34, 1.03168851e-34, 9.82194102e-35, 9.35060588e-35, 8.90176008e-35, 8.4743368e-35, 8.06731951e-35, 7.67973965e-35, 7.31067436e-35, 6.95924432e-35, 6.62461175e-35, 6.30597842e-35, 6.0025838e-35, 5.71370331e-35, 5.43864664e-35, 5.17675607e-35, 4.92740504e-35, 4.6899966e-35, 4.46396206e-35, 4.24875965e-35, 4.04387326e-35, 3.84881122e-35, 3.66310517e-35, 3.48630892e-35, 3.31799747e-35, 3.15776594e-35, 3.00522867e-35, 2.86001832e-35, 2.72178495e-35, 2.59019526e-35, 2.46493178e-35, 2.34569211e-35, 2.23218822e-35, 2.12414578e-35, 2.02130351e-35, 1.92341254e-35, 1.83023586e-35, 1.74154772e-35, 1.65713314e-35, 1.57678736e-35, 1.50031537e-35, 1.42753146e-35, 1.35825879e-35, 1.29232892e-35, 1.22958145e-35, 1.16986365e-35, 1.11303006e-35, 1.05894217e-35, 1.00746809e-35, 9.58482208e-36, 9.11864935e-36, 8.67502388e-36, 8.25286129e-36, 7.85112905e-36, 7.46884401e-36, 7.10507008e-36, 6.75891595e-36, 6.42953299e-36, 6.11611322e-36, 5.81788733e-36, 5.53412291e-36, 5.26412262e-36, 5.00722259e-36, 4.76279076e-36, 4.53022539e-36, 4.30895363e-36, 4.09843013e-36, 3.89813571e-36, 3.70757612e-36, 3.52628088e-36, 3.35380209e-36, 3.18971341e-36, 3.03360898e-36, 2.88510246e-36, 2.74382611e-36, 2.60942989e-36, 2.4815806e-36, 2.35996108e-36, 2.24426946e-36, 2.13421841e-36, 2.02953446e-36, 1.9299573e-36, 1.83523919e-36, 1.74514434e-36, 1.65944834e-36, 1.57793759e-36, 1.50040883e-36, 1.42666861e-36, 1.35653282e-36, 1.28982624e-36, 1.22638213e-36, 1.16604182e-36, 1.10865428e-36, 1.05407584e-36, 1.00216973e-36, 9.52805836e-37, 9.05860327e-37, 8.61215377e-37, 8.18758865e-37, 7.78384105e-37, 7.39989585e-37, 7.03478712e-37, 6.6875958e-37, 6.35744742e-37, 6.04350997e-37, 5.74499179e-37, 5.4611397e-37, 5.1912371e-37, 4.9346022e-37, 4.69058635e-37, 4.45857243e-37, 4.23797336e-37, 4.02823059e-37, 3.82881276e-37, 3.63921437e-37, 3.45895453e-37, 3.28757577e-37, 3.12464293e-37, 2.96974201e-37, 2.82247924e-37, 2.68248e-37, 2.54938799e-37, 2.42286425e-37, 2.30258639e-37, 2.18824774e-37, 2.07955662e-37, 1.97623559e-37, 1.87802075e-37, 1.78466111e-37, 1.69591797e-37, 1.61156425e-37, 1.53138404e-37, 1.45517193e-37, 1.38273262e-37, 1.31388034e-37, 1.24843841e-37, 1.18623883e-37, 1.12712182e-37, 1.07093541e-37, 1.01753512e-37, 9.66783531e-38, 9.18549961e-38, 8.72710151e-38, 8.29145937e-38, 7.87744956e-38, 7.48400365e-38, 7.11010568e-38, 6.75478959e-38, 6.41713685e-38, 6.09627404e-38, 5.79137073e-38, 5.50163732e-38, 5.22632308e-38, 4.96471422e-38, 4.7161321e-38, 4.4799315e-38, 4.25549898e-38, 4.04225134e-38, 3.83963411e-38, 3.64712018e-38, 3.46420842e-38, 3.29042243e-38, 3.12530932e-38, 2.96843855e-38, 2.81940083e-38, 2.6778071e-38, 2.54328752e-38, 2.41549052e-38, 2.29408191e-38, 2.17874402e-38, 2.06917491e-38, 1.96508754e-38, 1.86620912e-38, 1.77228033e-38, 1.68305471e-38, 1.598298e-38, 1.51778755e-38, 1.44131172e-38, 1.3686694e-38, 1.29966943e-38, 1.23413013e-38, 1.17187883e-38, 1.11275146e-38, 1.05659206e-38, 1.00325242e-38, 9.52591705e-39, 9.04476071e-39, 8.58778322e-39, 8.1537759e-39, 7.74159014e-39, 7.35013447e-39, 6.97837173e-39, 6.62531638e-39, 6.29003192e-39, 5.97162852e-39, 5.66926063e-39, 5.38212486e-39, 5.10945785e-39, 4.85053429e-39, 4.60466504e-39, 4.37119533e-39, 4.14950307e-39, 3.93899721e-39, 3.7391162e-39, 3.54932654e-39, 3.36912138e-39, 3.19801919e-39, 3.0355625e-39, 2.88131672e-39, 2.73486899e-39, 2.59582708e-39, 2.46381842e-39, 2.33848907e-39, 2.21950279e-39, 2.10654021e-39, 1.99929794e-39, 1.89748779e-39, 1.80083602e-39, 1.7090826e-39, 1.62198055e-39, 1.53929529e-39, 1.46080398e-39, 1.38629499e-39, 1.3155673e-39, 1.24842999e-39, 1.18470173e-39, 1.1242103e-39, 1.06679213e-39, 1.01229188e-39, 9.60562017e-40, 9.11462432e-40, 8.64860062e-40, 8.20628545e-40, 7.78647875e-40, 7.38804093e-40, 7.00988978e-40, 6.65099763e-40, 6.31038859e-40, 5.98713597e-40, 5.6803598e-40, 5.38922451e-40, 5.11293668e-40, 4.85074293e-40, 4.60192791e-40, 4.36581239e-40, 4.14175147e-40, 3.9291328e-40, 3.72737499e-40, 3.53592605e-40, 3.35426189e-40, 3.18188492e-40, 3.01832274e-40, 2.86312685e-40, 2.71587147e-40, 2.57615234e-40, 2.44358571e-40, 2.31780727e-40, 2.19847115e-40, 2.08524903e-40, 1.97782924e-40, 1.8759159e-40, 1.77922816e-40, 1.68749941e-40, 1.60047658e-40, 1.51791945e-40, 1.43959999e-40, 1.36530176e-40, 1.29481932e-40, 1.22795769e-40, 1.16453177e-40, 1.10436589e-40, 1.04729333e-40, 9.93155833e-41, 9.41803207e-41, 8.93092906e-41, 8.46889644e-41, 8.03065025e-41, 7.61497197e-41, 7.22070519e-41, 6.84675245e-41, 6.49207227e-41, 6.15567629e-41, 5.83662658e-41, 5.53403308e-41, 5.24705119e-41, 4.97487942e-41, 4.71675724e-41, 4.47196296e-41, 4.2398118e-41, 4.01965396e-41, 3.81087289e-41, 3.61288358e-41, 3.42513095e-41, 3.2470883e-41, 3.07825594e-41, 2.91815974e-41, 2.76634986e-41, 2.62239952e-41, 2.48590378e-41, 2.3564785e-41, 2.23375921e-41, 2.11740014e-41, 2.00707328e-41, 1.90246741e-41, 1.80328734e-41, 1.70925299e-41, 1.62009869e-41, 1.53557241e-41, 1.45543508e-41, 1.37945991e-41, 1.30743179e-41, 1.23914663e-41, 1.1744109e-41, 1.11304097e-41, 1.0548627e-41, 9.99710912e-42, 9.47428916e-42, 8.9786811e-42, 8.50887544e-42, 8.06353535e-42, 7.64139289e-42, 7.24124554e-42, 6.8619528e-42, 6.50243302e-42, 6.16166037e-42, 5.83866199e-42, 5.53251524e-42, 5.24234518e-42, 4.96732202e-42, 4.70665891e-42, 4.45960964e-42, 4.2254666e-42, 4.00355878e-42, 3.79324988e-42, 3.59393655e-42, 3.40504666e-42, 3.22603769e-42, 3.05639524e-42, 2.89563156e-42, 2.74328417e-42, 2.59891455e-42, 2.46210695e-42, 2.33246714e-42, 2.20962139e-42, 2.09321531e-42, 1.98291295e-42, 1.87839579e-42, 1.77936183e-42, 1.68552478e-42, 1.59661323e-42, 1.51236986e-42, 1.43255074e-42, 1.35692462e-42, 1.28527227e-42, 1.21738589e-42, 1.15306847e-42, 1.09213328e-42, 1.03440329e-42, 9.79710703e-43, 9.27896469e-43, 8.78809819e-43, 8.32307845e-43, 7.88255091e-43, 7.46523166e-43, 7.06990378e-43, 6.69541385e-43, 6.34066865e-43, 6.00463204e-43, 5.686322e-43, 5.38480782e-43, 5.0992074e-43, 4.82868476e-43, 4.57244762e-43, 4.32974515e-43, 4.09986578e-43, 3.88213517e-43, 3.67591428e-43, 3.48059752e-43, 3.29561103e-43, 3.12041098e-43, 2.95448206e-43, 2.79733594e-43, 2.64850991e-43, 2.50756552e-43, 2.37408731e-43, 2.24768161e-43, 2.12797542e-43, 2.01461531e-43, 1.90726642e-43, 1.80561148e-43, 1.70934985e-43, 1.61819673e-43, 1.53188227e-43, 1.45015081e-43, 1.37276014e-43, 1.29948078e-43, 1.23009532e-43, 1.16439783e-43, 1.10219316e-43, 1.0432965e-43, 9.87532725e-44, 9.34735964e-44, 8.84749076e-44, 8.37423208e-44, 7.92617355e-44, 7.50197947e-44, 7.10038463e-44, 6.72019057e-44, 6.36026208e-44, 6.01952392e-44, 5.69695759e-44, 5.39159844e-44, 5.10253274e-44, 4.82889511e-44, 4.56986586e-44, 4.32466871e-44, 4.09256838e-44, 3.87286853e-44, 3.66490967e-44, 3.4680672e-44, 3.28174963e-44, 3.10539675e-44, 2.93847807e-44, 2.78049119e-44, 2.63096034e-44, 2.489435e-44, 2.35548851e-44, 2.22871686e-44, 2.10873748e-44, 1.9951881e-44, 1.88772568e-44, 1.78602541e-44, 1.68977971e-44, 1.59869737e-44, 1.51250263e-44, 1.43093441e-44, 1.3537455e-44, 1.28070185e-44, 1.21158184e-44, 1.14617567e-44, 1.08428468e-44, 1.02572082e-44, 9.70306034e-45, 9.17871746e-45, 8.68258376e-45, 8.21314843e-45, 7.76898122e-45, 7.34872815e-45, 6.95110747e-45, 6.57490578e-45, 6.21897448e-45, 5.88222627e-45, 5.56363189e-45, 5.26221708e-45, 4.97705961e-45, 4.70728654e-45, 4.45207158e-45, 4.21063263e-45, 3.98222941e-45, 3.76616124e-45, 3.56176494e-45, 3.3684128e-45, 3.18551075e-45, 3.0124965e-45, 2.84883789e-45, 2.69403128e-45, 2.54760001e-45, 2.40909297e-45, 2.27808324e-45, 2.15416679e-45, 2.03696129e-45, 1.9261049e-45, 1.82125521e-45, 1.72208819e-45, 1.62829722e-45, 1.53959213e-45, 1.45569837e-45, 1.37635613e-45, 1.30131955e-45, 1.23035603e-45, 1.16324543e-45, 1.09977951e-45, 1.03976118e-45, 9.83004009e-46, 9.29331564e-46, 8.78576935e-46, 8.30582197e-46, 7.85197936e-46, 7.4228279e-46, 7.01703018e-46, 6.63332091e-46, 6.27050305e-46, 5.92744412e-46, 5.6030728e-46, 5.29637556e-46, 5.0063936e-46, 4.73221993e-46, 4.47299652e-46, 4.22791173e-46, 3.99619778e-46, 3.77712839e-46, 3.57001656e-46, 3.37421247e-46, 3.18910143e-46, 3.01410203e-46, 2.84866433e-46, 2.69226818e-46, 2.54442157e-46, 2.40465917e-46, 2.27254087e-46, 2.1476504e-46, 2.02959405e-46, 1.91799949e-46, 1.81251456e-46, 1.71280623e-46, 1.61855952e-46, 1.52947656e-46, 1.44527565e-46, 1.36569041e-46, 1.29046891e-46, 1.21937291e-46, 1.15217712e-46, 1.08866853e-46, 1.02864566e-46, 9.71918029e-47, 9.18305512e-47, 8.67637781e-47, 8.19753785e-47, 7.7450124e-47, 7.31736158e-47, 6.91322394e-47, 6.53131224e-47, 6.17040938e-47, 5.82936465e-47, 5.50709005e-47, 5.20255698e-47, 4.91479292e-47, 4.64287845e-47, 4.38594433e-47, 4.14316881e-47, 3.91377498e-47, 3.69702842e-47, 3.49223481e-47, 3.29873779e-47, 3.1159169e-47, 2.9431856e-47, 2.77998943e-47, 2.62580427e-47, 2.48013469e-47, 2.34251239e-47, 2.21249469e-47, 2.08966318e-47, 1.97362235e-47, 1.86399838e-47, 1.76043794e-47, 1.66260705e-47, 1.57019008e-47, 1.48288869e-47, 1.40042092e-47, 1.32252026e-47, 1.24893488e-47, 1.17942673e-47, 1.11377085e-47, 1.05175465e-47, 9.93177214e-48, 9.37848667e-48, 8.85589575e-48, 8.36230373e-48, 7.89610821e-48, 7.45579498e-48, 7.03993315e-48, 6.6471706e-48, 0.41052678, 0.82105308, 1.23157843, 1.64210234, 2.05262433, 2.46314392, 2.87366064, 3.28417401, 3.69468354, 4.10518876, 4.51568919, 4.92618435, 5.33667376, 5.74715694, 6.15763341, 6.5681027, 6.97856432, 7.3890178, 7.79946265, 8.2098984, 8.62032457, 9.03074067, 9.44114624, 9.85154079, 10.26192384, 10.67229492, 11.08265354, 11.49299923, 11.9033315, 12.31364989, 12.7239539, 13.13424306, 13.5445169, 13.95477493, 14.36501668, 14.77524166, 15.1854494, 15.59563942, 16.00581124, 16.41596438, 16.82609837, 17.23621272, 17.64630696, 18.05638061, 18.46643319, 18.87646423, 19.28647323, 19.69645974, 20.10642326, 20.51636332, 20.92627945, 21.33617116, 21.74603797, 22.15587942, 22.56569501, 22.97548428, 23.38524674, 23.79498192, 24.20468934, 24.61436852, 25.02401899, 25.43364026, 25.84323187, 26.25279332, 26.66232415, 27.07182389, 27.48129204, 27.89072813, 28.3001317, 28.70950225, 29.11883931, 29.52814242, 29.93741108, 30.34664482, 30.75584317, 31.16500565, 31.57413178, 31.98322109, 32.3922731, 32.80128734, 33.21026332, 33.61920058, 34.02809863, 34.43695699, 34.84577521, 35.25455279, 35.66328926, 36.07198415, 36.48063698, 36.88924728, 37.29781457, 37.70633837, 38.11481821, 38.52325361, 38.93164411, 39.33998922, 39.74828847, 40.15654138, 40.56474748, 40.9729063, 41.38101736, 41.78908018, 42.1970943, 42.60505923, 43.01297451, 43.42083966, 43.8286542, 44.23641766, 44.64412957, 45.05178946, 45.45939684, 45.86695126, 46.27445222, 46.68189927, 47.08929192, 47.49662971, 47.90391216, 48.3111388, 48.71830915, 49.12542275, 49.53247912, 49.93947778, 50.34641827, 50.75330012, 51.16012284, 51.56688598, 51.97358905, 52.38023159, 52.78681313, 53.19333319, 53.59979129, 54.00618698, 54.41251978, 54.81878922, 55.22499483, 55.63113613, 56.03721265, 56.44322394, 56.84916951, 57.25504889, 57.66086162, 58.06660722, 58.47228523, 58.87789517, 59.28343658, 59.68890898, 60.09431192, 60.49964491, 60.90490748, 61.31009918, 61.71521953, 62.12026806, 62.52524431, 62.9301478, 63.33497807, 63.73973464, 64.14441706, 64.54902485, 64.95355755, 65.35801468, 65.76239579, 66.1667004, 66.57092805, 66.97507826, 67.37915058, 67.78314454, 68.18705966, 68.59089549, 68.99465156, 69.3983274, 69.80192254, 70.20543653, 70.60886888, 71.01221915, 71.41548686, 71.81867155, 72.22177275, 72.62479, 73.02772284, 73.4305708, 73.83333341, 74.23601022, 74.63860075, 75.04110454, 75.44352114, 75.84585008, 76.24809089, 76.6502431, 77.05230627, 77.45427992, 77.8561636, 78.25795684, 78.65965917, 79.06127014, 79.46278928, 79.86421614, 80.26555025, 80.66679115, 81.06793837, 81.46899147, 81.86994997, 82.27081342, 82.67158135, 83.07225331, 83.47282884, 83.87330747, 84.27368875, 84.67397221, 85.07415741, 85.47424387, 85.87423114, 86.27411876, 86.67390627, 87.07359322, 87.47317915, 87.87266359, 88.27204609, 88.67132619, 89.07050344, 89.46957738, 89.86854755, 90.2674135, 90.66617476, 91.06483089, 91.46338142, 91.8618259, 92.26016387, 92.65839488, 93.05651848, 93.4545342, 93.8524416, 94.25024021, 94.64792959, 95.04550928, 95.44297883, 95.84033777, 96.23758567, 96.63472206, 97.03174649, 97.42865851, 97.82545767, 98.2221435, 98.61871558, 99.01517342, 99.4115166, 99.80774465, 100.20385713, 100.59985358, 100.99573355, 101.39149659, 101.78714225, 102.18267008, 102.57807964, 102.97337046, 103.3685421, 103.76359411, 104.15852605, 104.55333746, 104.94802789, 105.3425969, 105.73704404, 106.13136886, 106.52557091, 106.91964974, 107.31360491, 107.70743597, 108.10114247, 108.49472397, 108.88818002, 109.28151017, 109.67471399, 110.06779101, 110.4607408, 110.85356292, 111.24625691, 111.63882234, 112.03125875, 112.42356571, 112.81574276, 113.20778948, 113.59970541, 113.99149011, 114.38314313, 114.77466404, 115.16605239, 115.55730775, 115.94842966, 116.33941769, 116.73027139, 117.12099033, 117.51157406, 117.90202214, 118.29233414, 118.68250961, 119.07254811, 119.46244921, 119.85221246, 120.24183742, 120.63132366, 121.02067074, 121.40987822, 121.79894566, 122.18787263, 122.57665868, 122.96530338, 123.3538063, 123.74216699, 124.13038502, 124.51845996, 124.90639136, 125.2941788, 125.68182183, 126.06932003, 126.45667295, 126.84388017, 127.23094125, 127.61785575, 128.00462325, 128.3912433, 128.77771548, 129.16403936, 129.5502145, 129.93624046, 130.32211682, 130.70784315, 131.09341902, 131.47884398, 131.86411762, 132.2492395, 132.6342092, 133.01902627, 133.40369031, 133.78820086, 134.17255751, 134.55675983, 134.94080738, 135.32469974, 135.70843649, 136.09201719, 136.47544142, 136.85870875, 137.24181876, 137.62477101, 138.00756509, 138.39020056, 138.77267701, 139.154994, 139.53715111, 139.91914792, 140.30098401, 140.68265894, 141.0641723, 141.44552367, 141.82671261, 142.20773871, 142.58860155, 142.9693007, 143.34983574, 143.73020625, 144.11041181, 144.490452, 144.8703264, 145.25003459, 145.62957615, 146.00895066, 146.38815769, 146.76719684, 147.14606768, 147.5247698, 147.90330277, 148.28166619, 148.65985963, 149.03788267, 149.4157349, 149.79341591, 150.17092527, 150.54826258, 150.92542741, 151.30241936, 151.679238, 152.05588292, 152.43235372, 152.80864997, 153.18477126, 153.56071719, 153.93648733, 154.31208127, 154.68749861, 155.06273893, 155.43780182, 155.81268688, 156.18739368, 156.56192182, 156.93627089, 157.31044047, 157.68443017, 158.05823958, 158.43186827, 158.80531585, 159.17858191, 159.55166604, 159.92456783, 160.29728688, 160.66982278, 161.04217512, 161.4143435, 161.78632751, 162.15812676, 162.52974082, 162.90116931, 163.27241181, 163.64346792, 164.01433724, 164.38501936, 164.75551389, 165.12582042, 165.49593855, 165.86586788, 166.235608, 166.60515852, 166.97451904, 167.34368915, 167.71266846, 168.08145656, 168.45005306, 168.81845756, 169.18666967, 169.55468897, 169.92251509, 170.29014761, 170.65758614, 171.02483029, 171.39187966, 171.75873386, 172.12539248, 172.49185514, 172.85812144, 173.22419098, 173.59006337, 173.95573823, 174.32121515, 174.68649374, 175.05157362, 175.41645438, 175.78113564, 176.145617, 176.50989809, 176.87397849, 177.23785784, 177.60153573, 177.96501177, 178.32828558, 178.69135678, 179.05422496, 179.41688975, 179.77935075, 180.14160758, 180.50365986, 180.86550719, 181.22714919, 181.58858548, 181.94981567, 182.31083938, 182.67165622, 183.0322658, 183.39266776, 183.75286169, 184.11284722, 184.47262397, 184.83219155, 185.19154959, 185.5506977, 185.9096355, 186.26836262, 186.62687867, 186.98518326, 187.34327604, 187.7011566, 188.05882459, 188.41627961, 188.77352129, 189.13054926, 189.48736314, 189.84396255, 190.20034711, 190.55651645, 190.9124702, 191.26820798, 191.62372941, 191.97903413, 192.33412176, 192.68899192, 193.04364425, 193.39807837, 193.7522939, 194.10629049, 194.46006775, 194.81362532, 195.16696283, 195.52007991, 195.87297618, 196.22565128, 196.57810484, 196.9303365, 197.28234588, 197.63413262, 197.98569634, 198.3370367, 198.68815331, 199.03904582, 199.38971385, 199.74015705, 200.09037504, 200.44036748, 200.79013398, 201.13967419, 201.48898775, 201.8380743, 202.18693347, 202.53556489, 202.88396822, 203.23214309, 203.58008914, 203.92780601, 204.27529335, 204.62255078, 204.96957796, 205.31637453, 205.66294012, 206.00927439, 206.35537697, 206.70124752, 207.04688567, 207.39229106, 207.73746335, 208.08240219, 208.4271072, 208.77157805, 209.11581438, 209.45981584, 209.80358206, 210.14711272, 210.49040744, 210.83346589, 211.1762877, 211.51887254, 211.86122004, 212.20332987, 212.54520167, 212.8868351, 213.2282298, 213.56938543, 213.91030165, 214.2509781, 214.59141445, 214.93161034, 215.27156543, 215.61127937, 215.95075183, 216.28998245, 216.6289709, 216.96771683, 217.3062199, 217.64447976, 217.98249608, 218.32026852, 218.65779673, 218.99508038, 219.33211912, 219.66891262, 220.00546053, 220.34176252, 220.67781825, 221.01362739, 221.34918959, 221.68450452, 222.01957185, 222.35439123, 222.68896234, 223.02328484, 223.35735839, 223.69118267, 224.02475733, 224.35808205, 224.69115649, 225.02398032, 225.35655321, 225.68887483, 226.02094485, 226.35276294, 226.68432877, 227.01564201, 227.34670233, 227.6775094, 228.0080629, 228.3383625, 228.66840787, 228.99819869, 229.32773463, 229.65701536, 229.98604057, 230.31480992, 230.64332309, 230.97157976, 231.29957961, 231.62732231, 231.95480754, 232.28203499, 232.60900432, 232.93571523, 233.26216738, 233.58836046, 233.91429415, 234.23996813, 234.56538209, 234.89053571, 235.21542866, 235.54006063, 235.86443132, 236.18854039, 236.51238754, 236.83597245, 237.1592948, 237.48235429, 237.8051506, 238.12768341, 238.44995242, 238.77195731, 239.09369777, 239.4151735, 239.73638417, 240.05732949, 240.37800913, 240.6984228, 241.01857018, 241.33845097, 241.65806485, 241.97741153, 242.29649069, 242.61530203, 242.93384525, 243.25212003, 243.57012608, 243.88786309, 244.20533075, 244.52252877, 244.83945684, 245.15611467, 245.47250194, 245.78861835, 246.10446362, 246.42003743, 246.73533948, 247.05036949, 247.36512714, 247.67961215, 247.99382421, 248.30776303, 248.62142831, 248.93481976, 249.24793707, 249.56077996, 249.87334813, 250.18564128, 250.49765913, 250.80940138, 251.12086773, 251.4320579, 251.74297159, 252.05360852, 252.36396839, 252.67405091, 252.98385579, 253.29338275, 253.60263149, 253.91160173, 254.22029319, 254.52870556, 254.83683857, 255.14469194, 255.45226537, 255.75955858, 256.06657129, 256.37330321, 256.67975406, 256.98592356, 257.29181142, 257.59741736, 257.90274111, 258.20778238, 258.51254089, 258.81701636, 259.12120851, 259.42511706, 259.72874174, 260.03208227, 260.33513837, 260.63790976, 260.94039617, 261.24259732, 261.54451294, 261.84614275, 262.14748648, 262.44854385, 262.7493146, 263.04979844, 263.34999511, 263.64990434, 263.94952586, 264.24885939, 264.54790466, 264.84666141, 265.14512937, 265.44330827, 265.74119783, 266.0387978, 266.33610791, 266.63312789, 266.92985748, 267.2262964, 267.5224444, 267.81830121, 268.11386657, 268.40914022, 268.70412189, 268.99881131, 269.29320824, 269.58731241, 269.88112355, 270.17464141, 270.46786573, 270.76079625, 271.05343272, 271.34577486, 271.63782243, 271.92957518, 272.22103283, 272.51219515, 272.80306187, 273.09363274, 273.3839075, 273.67388591, 273.9635677, 274.25295263, 274.54204044, 274.83083089, 275.11932372, 275.40751868, 275.69541552, 275.983014, 276.27031386, 276.55731486, 276.84401674, 277.13041927, 277.41652219, 277.70232527, 277.98782824, 278.27303088, 278.55793293, 278.84253415, 279.1268343, 279.41083314, 279.69453041, 279.97792589, 280.26101933, 280.54381049, 280.82629913, 281.10848501, 281.39036789, 281.67194753, 281.9532237, 282.23419615, 282.51486466, 282.79522898, 283.07528888, 283.35504413, 283.63449448, 283.91363971, 284.19247959, 284.47101387, 284.74924233, 285.02716473, 285.30478085, 285.58209045, 285.8590933, 286.13578917, 286.41217784, 286.68825908, 286.96403265, 287.23949833, 287.5146559, 287.78950512, 288.06404577, 288.33827763, 288.61220047, 288.88581407, 289.1591182, 289.43211264, 289.70479716, 289.97717156, 290.24923559, 290.52098905, 290.79243172, 291.06356336, 291.33438377, 291.60489273, 291.87509002, 292.14497541, 292.4145487, 292.68380966, 292.95275808, 293.22139375, 293.48971645, 293.75772597, 294.02542209, 294.2928046, 294.55987328, 294.82662793, 295.09306834, 295.35919429, 295.62500557, 295.89050197, 296.15568328, 296.4205493, 296.68509982, 296.94933463, 297.21325352, 297.47685628, 297.74014272, 298.00311262, 298.26576578, 298.52810199, 298.79012106, 299.05182277, 299.31320694, 299.57427334, 299.8350218, 300.09545209, 300.35556402, 300.6153574, 300.87483202, 301.13398769, 301.3928242, 301.65134136, 301.90953898, 302.16741685, 302.42497478, 302.68221257, 302.93913004, 303.19572698, 303.45200321, 303.70795852, 303.96359273, 304.21890565, 304.47389708, 304.72856684, 304.98291473, 305.23694056, 305.49064415, 305.7440253, 305.99708384, 306.24981956, 306.50223229, 306.75432184, 307.00608802, 307.25753065, 307.50864954, 307.75944451, 308.00991537, 308.26006195, 308.50988406, 308.75938152, 309.00855415, 309.25740176, 309.50592418, 309.75412123, 310.00199273, 310.2495385, 310.49675837, 310.74365215, 310.99021967, 311.23646075, 311.48237522, 311.72796291, 311.97322363, 312.21815722, 312.4627635, 312.70704231, 312.95099346, 313.19461678, 313.43791211, 313.68087928, 313.92351811, 314.16582844, 314.4078101, 314.64946291, 314.89078672, 315.13178135, 315.37244665, 315.61278243, 315.85278855, 316.09246482, 316.3318111, 316.57082721, 316.809513, 317.0478683, 317.28589294, 317.52358678, 317.76094964, 317.99798136, 318.2346818, 318.47105079, 318.70708816, 318.94279377, 319.17816746, 319.41320906, 319.64791843, 319.8822954, 320.11633983, 320.35005155, 320.58343042, 320.81647629, 321.04918899, 321.28156838, 321.5136143, 321.74532661, 321.97670515, 322.20774978, 322.43846034, 322.66883669, 322.89887868, 323.12858616, 323.35795899, 323.58699701, 323.81570009, 324.04406807, 324.27210082, 324.49979818, 324.72716003, 324.9541862, 325.18087657, 325.40723098, 325.6332493, 325.85893139, 326.08427711, 326.30928631, 326.53395887, 326.75829463, 326.98229347, 327.20595524, 327.42927982, 327.65226705, 327.87491682, 328.09722898, 328.3192034, 328.54083994, 328.76213848, 328.98309887, 329.203721, 329.42400472, 329.64394991, 329.86355643, 330.08282416, 330.30175297, 330.52034273, 330.73859331, 330.95650458, 331.17407642, 331.3913087, 331.60820129, 331.82475408, 332.04096693, 332.25683972, 332.47237233, 332.68756464, 332.90241652, 333.11692786, 333.33109852, 333.5449284, 333.75841737, 333.97156531, 334.1843721, 334.39683763, 334.60896177, 334.82074442, 335.03218545, 335.24328475, 335.4540422, 335.66445769, 335.87453111, 336.08426234, 336.29365127, 336.50269778, 336.71140176, 336.91976311, 337.12778172, 337.33545746, 337.54279024, 337.74977994, 337.95642646, 338.16272968, 338.36868951, 338.57430583, 338.77957854, 338.98450754, 339.18909271, 339.39333395, 339.59723117, 339.80078425, 340.0039931, 340.20685761, 340.40937768, 340.61155321, 340.8133841, 341.01487026, 341.21601157, 341.41680795, 341.61725929, 341.8173655, 342.01712648, 342.21654214, 342.41561237, 342.61433709, 342.8127162, 343.0107496, 343.20843721, 343.40577893, 343.60277466, 343.79942432, 343.99572781, 344.19168505, 344.38729595, 344.5825604, 344.77747834, 344.97204966, 345.16627429, 345.36015212, 345.55368309, 345.7468671, 345.93970406, 346.13219389, 346.32433652, 346.51613184, 346.70757979, 346.89868027, 347.08943322, 347.27983853, 347.46989615, 347.65960597, 347.84896793, 348.03798195, 348.22664795, 348.41496584, 348.60293556, 348.79055702, 348.97783016, 349.16475488, 349.35133113, 349.53755882, 349.72343789, 349.90896825, 350.09414984, 350.27898258, 350.4634664, 350.64760123, 350.831387, 351.01482365, 351.19791109, 351.38064927, 351.56303811, 351.74507755, 351.92676752, 352.10810796, 352.28909879, 352.46973996, 352.65003139, 352.82997303, 353.00956481, 353.18880666, 353.36769853, 353.54624036, 353.72443207, 353.90227362, 354.07976494, 354.25690598, 354.43369666, 354.61013694, 354.78622676, 354.96196606, 355.13735478, 355.31239286, 355.48708026, 355.66141692, 355.83540278, 356.00903778, 356.18232188, 356.35525502, 356.52783716, 356.70006823, 356.87194819, 357.04347699, 357.21465457, 357.38548089, 357.55595591, 357.72607956, 357.89585181, 358.0652726, 358.2343419, 358.40305965, 358.5714258, 358.73944033, 358.90710317, 359.07441429, 359.24137364, 359.40798119, 359.57423688, 359.74014068, 359.90569255, 360.07089245, 360.23574033, 360.40023616, 360.56437991, 360.72817152, 360.89161097, 361.05469821, 361.21743322, 361.37981595, 361.54184637, 361.70352445, 361.86485015, 362.02582344, 362.18644429, 362.34671266, 362.50662852, 362.66619184, 362.82540259, 362.98426074, 363.14276626, 363.30091912, 363.45871929, 363.61616675, 363.77326147, 363.93000341, 364.08639257, 364.2424289, 364.39811239, 364.553443, 364.70842073, 364.86304553, 365.0173174, 365.1712363, 365.32480222, 365.47801513, 365.63087502, 365.78338187, 365.93553565, 366.08733634, 366.23878393, 366.38987841, 366.54061974, 366.69100792, 366.84104293, 366.99072476, 367.14005339, 367.2890288, 367.43765098, 367.58591993, 367.73383561, 367.88139803, 368.02860718, 368.17546303, 368.32196558, 368.46811482, 368.61391075, 368.75935334, 368.9044426, 369.04917852, 369.19356108, 369.33759028, 369.48126613, 369.6245886, 369.76755769, 369.91017341, 370.05243575, 370.1943447, 370.33590025, 370.47710242, 370.6179512, 370.75844658, 370.89858857, 371.03837716, 371.17781235, 371.31689416, 371.45562257, 371.5939976, 371.73201923, 371.86968749, 372.00700236, 372.14396386, 372.28057199, 372.41682675, 372.55272816, 372.68827621, 372.82347092, 372.95831229, 373.09280033, 373.22693505, 373.36071646, 373.49414457, 373.62721939, 373.75994093, 373.89230919, 374.02432421, 374.15598597, 374.28729451, 374.41824983, 374.54885195, 374.67910088, 374.80899663, 374.93853923, 375.06772869, 375.19656502, 375.32504825, 375.45317838, 375.58095545, 375.70837947, 375.83545045, 375.96216843, 376.08853341, 376.21454542, 376.34020449, 376.46551063, 376.59046387, 376.71506423, 376.83931173, 376.9632064, 377.08674827, 377.20993736, 377.33277369, 377.4552573, 377.5773882, 377.69916643, 377.82059202, 377.94166499, 378.06238537, 378.1827532, 378.3027685, 378.42243131, 378.54174165, 378.66069956, 378.77930507, 378.89755821, 379.01545902, 379.13300753, 379.25020378, 379.36704779, 379.48353962, 379.59967928, 379.71546683, 379.83090229, 379.9459857, 380.06071711, 380.17509655, 380.28912406, 380.40279968, 380.51612345, 380.62909541, 380.74171561, 380.85398408, 380.96590087, 381.07746602, 381.18867958, 381.29954158, 381.41005208, 381.52021112, 381.63001874, 381.73947499, 381.84857992, 381.95733357, 382.065736, 382.17378724, 382.28148736, 382.38883639, 382.4958344, 382.60248142, 382.70877751, 382.81472272, 382.92031711, 383.02556072, 383.13045361, 383.23499583, 383.33918744, 383.44302849, 383.54651904, 383.64965914, 383.75244884, 383.85488821, 383.9569773, 384.05871617, 384.16010488, 384.26114348, 384.36183204, 384.46217061, 384.56215926, 384.66179804, 384.76108702, 384.86002626, 384.95861582, 385.05685577, 385.15474616, 385.25228706, 385.34947854, 385.44632065, 385.54281347, 385.63895707, 385.7347515, 385.83019684, 385.92529314, 386.02004049, 386.11443895, 386.20848858, 386.30218946, 386.39554166, 386.48854524, 386.58120028, 386.67350685, 386.76546502, 386.85707486, 386.94833646, 387.03924987, 387.12981517, 387.22003245, 387.30990176, 387.3994232, 387.48859683, 387.57742274, 387.66590099, 387.75403166, 387.84181484, 387.92925061, 388.01633903, 388.1030802, 388.18947418, 388.27552107, 388.36122094, 388.44657387, 388.53157995, 388.61623926, 388.70055188, 388.78451789, 388.86813738, 388.95141043, 389.03433714, 389.11691757, 389.19915182, 389.28103998, 389.36258214, 389.44377837, 389.52462877, 389.60513343, 389.68529243, 389.76510586, 389.84457383, 389.9236964, 390.00247368, 390.08090576, 390.15899273, 390.23673467, 390.3141317, 390.39118389, 390.46789134, 390.54425414, 390.6202724, 390.6959462, 390.77127564, 390.84626081, 390.92090183, 390.99519877, 391.06915174, 391.14276084, 391.21602616, 391.28894781, 391.36152588, 391.43376048, 391.5056517, 391.57719964, 391.64840441, 391.71926612, 391.78978485, 391.85996072, 391.92979382, 391.99928427, 392.06843217, 392.13723761, 392.20570071, 392.27382157, 392.34160031, 392.40903701, 392.4761318, 392.54288478, 392.60929606, 392.67536574, 392.74109394, 392.80648077, 392.87152633, 392.93623074, 393.0005941, 393.06461654, 393.12829815, 393.19163906, 393.25463937, 393.3172992, 393.37961867, 393.44159788, 393.50323695, 393.564536, 393.62549515, 393.6861145, 393.74639418, 393.8063343, 393.86593498, 393.92519634, 393.98411849, 394.04270157, 394.10094567, 394.15885093, 394.21641747, 394.2736454, 394.33053485, 394.38708594, 394.44329879, 394.49917352, 394.55471026, 394.60990913, 394.66477025, 394.71929375, 394.77347976, 394.82732839, 394.88083978, 394.93401405, 394.98685132, 395.03935173, 395.09151541, 395.14334247, 395.19483305, 395.24598728, 395.29680529, 395.3472872, 395.39743315, 395.44724327, 395.49671769, 395.54585654, 395.59465995, 395.64312806, 395.69126099, 395.73905889, 395.78652189, 395.83365011, 395.8804437, 395.92690279, 395.97302752, 396.01881802, 396.06427442, 396.10939688, 396.15418551, 396.19864047, 396.24276188, 396.2865499, 396.33000465, 396.37312628, 396.41591492, 396.45837072, 396.50049382, 396.54228436, 396.58374249, 396.62486833, 396.66566205, 396.70612377, 396.74625364, 396.78605182, 396.82551843, 396.86465363, 396.90345757, 396.94193038, 396.98007221, 397.01788322, 397.05536354, 397.09251333, 397.12933273, 397.16582189, 397.20198096, 397.2378101, 397.27330943, 397.30847913, 397.34331934, 397.37783021, 397.41201188, 397.44586452, 397.47938828, 397.5125833, 397.54544975, 397.57798777, 397.61019751, 397.64207914, 397.67363281, 397.70485866, 397.73575687, 397.76632757, 397.79657094, 397.82648713, 397.85607628, 397.88533857, 397.91427415, 397.94288317, 397.97116581, 397.9991222, 398.02675253, 398.05405694, 398.08103559, 398.10768865, 398.13401628, 398.16001864, 398.18569589, 398.2110482, 398.23607572, 398.26077863, 398.28515708, 398.30921124, 398.33294127, 398.35634734, 398.37942962, 398.40218826, 398.42462344, 398.44673533, 398.46852408, 398.48998987, 398.51113287, 398.53195323, 398.55245114, 398.57262677, 398.59248027, 398.61201182, 398.63122159, 398.65010975, 398.66867648, 398.68692193, 398.7048463, 398.72244974, 398.73973243, 398.75669454, 398.77333625, 398.78965773, 398.80565916, 398.8213407, 398.83670254, 398.85174484, 398.8664678, 398.88087157, 398.89495634, 398.90872229, 398.92216958, 398.93529841, 398.94810895, 398.96060137, 398.97277586, 398.98463259, 398.99617174, 399.0073935, 399.01829805, 399.02888556, 399.03915622, 399.0491102, 399.05874769, 399.06806888, 399.07707394, 399.08576306, 399.09413642, 399.10219421, 399.10993661, 399.1173638, 399.12447597, 399.1312733, 399.13775598, 399.1439242, 399.14977815, 399.155318, 399.16054395, 399.16545619, 399.17005489, 399.17434026, 399.17831248, 399.18197173, 399.18531821, 399.18835212, 399.19107363, 399.19348293, 399.19558023, 399.19736571, 399.19883956, 399.20000197, 399.20085314, 399.20139326, 399.20162253, 399.20154113, 399.20114926, 399.20044711, 399.19943488, 399.19811277, 399.19648097, 399.19453967, 399.19228907, 399.18972936, 399.18686075, 399.18368344, 399.18019761, 399.17640346, 399.1723012, 399.16789102, 399.16317313, 399.15814771, 399.15281498, 399.14717512, 399.14122835, 399.13497486, 399.12841484, 399.12154852, 399.11437607, 399.10689772, 399.09911365, 399.09102407, 399.08262919, 399.07392921, 399.06492433, 399.05561476, 399.0460007, 399.03608235, 399.02585993, 399.01533363, 399.00450366, 398.99337023, 398.98193355, 398.97019381, 398.95815124, 398.94580603, 398.93315839, 398.92020854, 398.90695668, 398.89340302, 398.87954776, 398.86539113, 398.85093332, 398.83617455, 398.82111503, 398.80575497, 398.79009458, 398.77413407, 398.75787366, 398.74131355, 398.72445397, 398.70729511, 398.6898372, 398.67208045, 398.65402507, 398.63567127, 398.61701928, 398.5980693, 398.57882156, 398.55927626, 398.53943362, 398.51929386, 398.4988572, 398.47812384, 398.45709402, 398.43576794, 398.41414583, 398.39222789, 398.37001436, 398.34750544, 398.32470136, 398.30160234, 398.2782086, 398.25452035, 398.23053782, 398.20626122, 398.18169079, 398.15682673, 398.13166927, 398.10621864, 398.08047505, 398.05443873, 398.02810989, 398.00148877, 397.97457559, 397.94737056, 397.91987392, 397.89208589, 397.86400669, 397.83563655, 397.80697569, 397.77802433, 397.74878272, 397.71925106, 397.68942959, 397.65931853, 397.62891811, 397.59822856, 397.5672501, 397.53598297, 397.50442738, 397.47258358, 397.44045178, 397.40803223, 397.37532513, 397.34233074, 397.30904927, 397.27548096, 397.24162603, 397.20748473, 397.17305727, 397.13834389, 397.10334482, 397.0680603, 397.03249056, 396.99663582, 396.96049633, 396.92407231, 396.887364, 396.85037163, 396.81309544, 396.77553566, 396.73769252, 396.69956627, 396.66115713, 396.62246534, 396.58349113, 396.54423475, 396.50469643, 396.4648764, 396.4247749, 396.38439217, 396.34372845, 396.30278397, 396.26155898, 396.2200537, 396.17826838, 396.13620326, 396.09385858, 396.05123457, 396.00833148, 395.96514954, 395.921689, 395.87795009, 395.83393306, 395.78963815, 395.7450656, 395.70021564, 395.65508853, 395.6096845, 395.56400379, 395.51804665, 395.47181333, 395.42530406, 395.37851908, 395.33145865, 395.284123, 395.23651238, 395.18862704, 395.14046721, 395.09203314, 395.04332509, 394.99434328, 394.94508797, 394.89555941, 394.84575784, 394.79568351, 394.74533666, 394.69471754, 394.6438264, 394.59266349, 394.54122905, 394.48952333, 394.43754658, 394.38529905, 394.33278098, 394.27999263, 394.22693424, 394.17360607, 394.12000836, 394.06614136, 394.01200533, 393.95760051, 393.90292716, 393.84798552, 393.79277585, 393.7372984, 393.68155341, 393.62554115, 393.56926186, 393.5127158, 393.45590322, 393.39882437, 393.3414795, 393.28386887, 393.22599273, 393.16785133, 393.10944494, 393.0507738, 392.99183816, 392.93263829, 392.87317444, 392.81344685, 392.7534558, 392.69320153, 392.6326843, 392.57190436, 392.51086198, 392.4495574, 392.38799089, 392.3261627, 392.26407309, 392.20172231, 392.13911063, 392.0762383, 392.01310558, 391.94971274, 391.88606001, 391.82214768, 391.75797598, 391.6935452, 391.62885557, 391.56390737, 391.49870085, 391.43323627, 391.3675139, 391.30153399, 391.23529681, 391.16880261, 391.10205166, 391.03504421, 390.96778054, 390.90026089, 390.83248554, 390.76445475, 390.69616877, 390.62762787, 390.55883232, 390.48978237, 390.42047829, 390.35092035, 390.2811088, 390.21104392, 390.14072595, 390.07015518, 389.99933186, 389.92825626, 389.85692864, 389.78534927, 389.71351841, 389.64143633, 389.5691033, 389.49651958, 389.42368543, 389.35060112, 389.27726693, 389.20368311, 389.12984993, 389.05576767, 388.98143658, 388.90685693, 388.832029, 388.75695305, 388.68162934, 388.60605815, 388.53023975, 388.45417439, 388.37786236, 388.30130393, 388.22449935, 388.1474489, 388.07015285, 387.99261147, 387.91482502, 387.83679379, 387.75851803, 387.67999802, 387.60123404, 387.52222634, 387.4429752, 387.3634809, 387.2837437, 387.20376388, 387.12354171, 387.04307745, 386.96237139, 386.88142379, 386.80023492, 386.71880506, 386.63713449, 386.55522347, 386.47307227, 386.39068118, 386.30805046, 386.22518039, 386.14207124, 386.05872328, 385.9751368, 385.89131205, 385.80724933, 385.7229489, 385.63841103, 385.55363601, 385.46862411, 385.3833756, 385.29789076, 385.21216986, 385.12621318, 385.040021, 384.95359359, 384.86693122, 384.78003418, 384.69290275, 384.60553719, 384.51793778, 384.43010481, 384.34203854, 384.25373926, 384.16520725, 384.07644277, 383.98744612, 383.89821756, 383.80875738, 383.71906585, 383.62914325, 383.53898987, 383.44860597, 383.35799184, 383.26714776, 383.17607401, 383.08477086, 382.99323859, 382.90147749, 382.80948784, 382.7172699, 382.62482398, 382.53215034, 382.43924926, 382.34612103, 382.25276592, 382.15918422, 382.06537621, 381.97134217, 381.87708237, 381.78259711, 381.68788666, 381.59295131, 381.49779133, 381.40240701, 381.30679862, 381.21096646, 381.11491081, 381.01863194, 380.92213014, 380.82540569, 380.72845887, 380.63128997, 380.53389928, 380.43628706, 380.33845362, 380.24039922, 380.14212416, 380.04362871, 379.94491316, 379.84597781, 379.74682291, 379.64744878, 379.54785568, 379.4480439, 379.34801373, 379.24776545, 379.14729935, 379.04661571, 378.94571481, 378.84459694, 378.7432624, 378.64171145, 378.53994439, 378.4379615, 378.33576307, 378.23334939, 378.13072073, 378.0278774, 377.92481966, 377.82154782, 377.71806214, 377.61436294, 377.51045047, 377.40632505, 377.30198695, 377.19743645, 377.09267385, 376.98769944, 376.88251349, 376.7771163, 376.67150816, 376.56568935, 376.45966016, 376.35342088, 376.24697179, 376.14031319, 376.03344537, 375.9263686, 375.81908318, 375.7115894, 375.60388754, 375.4959779, 375.38786076, 375.27953641, 375.17100514, 375.06226724, 374.953323, 374.84417271, 374.73481665, 374.62525512, 374.51548841, 374.4055168, 374.29534059, 374.18496006, 374.07437551, 373.96358722, 373.85259548, 373.74140059, 373.63000283, 373.5184025, 373.40659988, 373.29459527, 373.18238896, 373.06998123, 372.95737238, 372.84456269, 372.73155247, 372.61834199, 372.50493155, 372.39132145, 372.27751197, 372.1635034, 372.04929604, 371.93489018, 371.8202861, 371.7054841, 371.59048448, 371.47528752, 371.35989351, 371.24430275, 371.12851553, 371.01253214, 370.89635287, 370.77997801, 370.66340786, 370.54664272, 370.42968286, 370.31252859, 370.19518019, 370.07763796, 369.9599022, 369.84197318, 369.72385122, 369.60553659, 369.4870296, 369.36833053, 369.24943968, 369.13035735, 369.01108381, 368.89161938, 368.77196433, 368.65211897, 368.53208359, 368.41185848, 368.29144394, 368.17084025, 368.05004771, 367.92906662, 367.80789727, 367.68653995, 367.56499496, 367.44326259, 367.32134313, 367.19923688, 367.07694414, 366.95446519, 366.83180033, 366.70894985, 366.58591406, 366.46269324, 366.33928768, 366.21569769, 366.09192355, 365.96796557, 365.84382403, 365.71949923, 365.59499147, 365.47030103, 365.34542822, 365.22037333, 365.09513665, 364.96971848, 364.84411911, 364.71833884, 364.59237796, 364.46623677, 364.33991557, 364.21341464, 364.08673428, 363.9598748, 363.83283647, 363.70561961, 363.5782245, 363.45065144, 363.32290072, 363.19497264, 363.0668675, 362.93858559, 362.8101272, 362.68149263, 362.55268219, 362.42369615, 362.29453482, 362.1651985, 362.03568747, 361.90600204, 361.7761425, 361.64610915, 361.51590228, 361.38552218, 361.25496916, 361.12424351, 360.99334552, 360.8622755, 360.73103373, 360.59962051, 360.46803614, 360.33628092, 360.20435514, 360.07225909, 359.93999307, 359.80755739, 359.67495232, 359.54217818, 359.40923525, 359.27612384, 359.14284423, 359.00939673, 358.87578163, 358.74199923, 358.60804981, 358.47393369, 358.33965115, 358.2052025, 358.07058802, 357.93580801, 357.80086278, 357.66575261, 357.5304778, 357.39503865, 357.25943546, 357.12366852, 356.98773812, 356.85164457, 356.71538815, 356.57896917, 356.44238793, 356.30564471, 356.16873982, 356.03167355, 355.89444619, 355.75705805, 355.61950942, 355.48180059, 355.34393186, 355.20590354, 355.0677159, 354.92936926, 354.79086391, 354.65220014, 354.51337825, 354.37439853, 354.23526128, 354.09596681, 353.9565154, 353.81690734, 353.67714295, 353.53722251, 353.39714631, 353.25691466, 353.11652786, 352.97598619, 352.83528995, 352.69443945, 352.55343497, 352.41227681, 352.27096527, 352.12950064, 351.98788322, 351.84611331, 351.7041912, 351.56211719, 351.41989158, 351.27751465, 351.13498671, 350.99230805, 350.84947897, 350.70649976, 350.56337072, 350.42009215, 350.27666434, 350.13308758, 349.98936218, 349.84548842, 349.70146661, 349.55729704, 349.41298001, 349.26851581, 349.12390473, 348.97914707, 348.83424314, 348.68919321, 348.5439976, 348.39865659, 348.25317048, 348.10753957, 347.96176414, 347.81584451, 347.66978095, 347.52357377, 347.37722326, 347.23072972, 347.08409344, 346.93731472, 346.79039386, 346.64333114, 346.49612686, 346.34878132, 346.20129481, 346.05366763, 345.90590008, 345.75799244, 345.60994501, 345.46175809, 345.31343197, 345.16496695, 345.01636332, 344.86762138, 344.71874141, 344.56972372, 344.42056861, 344.27127635, 344.12184725, 343.97228161, 343.82257971, 343.67274185, 343.52276833, 343.37265944, 343.22241547, 343.07203672, 342.92152348, 342.77087605, 342.62009472, 342.46917978, 342.31813153, 342.16695026, 342.01563626, 341.86418983, 341.71261127, 341.56090086, 341.4090589, 341.25708568, 341.1049815, 340.95274665, 340.80038142, 340.64788611, 340.495261, 340.3425064, 340.18962259, 340.03660987, 339.88346853, 339.73019887, 339.57680117, 339.42327574, 339.26962285, 339.11584281, 338.96193591, 338.80790244, 338.65374269, 338.49945695, 338.34504552, 338.19050869, 338.03584675, 337.88106, 337.72614872, 337.57111321, 337.41595376, 337.26067066, 337.1052642, 336.94973468, 336.79408239, 336.63830761, 336.48241064, 336.32639178, 336.1702513, 336.01398951, 335.85760669, 335.70110315, 335.54447915, 335.38773501, 335.230871, 335.07388743, 334.91678457, 334.75956273, 334.60222218, 334.44476323, 334.28718616, 334.12949127, 333.97167884, 333.81374916, 333.65570253, 333.49753923, 333.33925955, 333.18086379, 333.02235223, 332.86372517, 332.70498288, 332.54612568, 332.38715383, 332.22806763, 332.06886737, 331.90955335, 331.75012584, 331.59058514, 331.43093154, 331.27116532, 331.11128678, 330.95129621, 330.79119388, 330.6309801, 330.47065514, 330.3102193, 330.14967287, 329.98901613, 329.82824937, 329.66737288, 329.50638695, 329.34529187, 329.18408792, 329.02277539, 328.86135457, 328.69982574, 328.5381892, 328.37644523, 328.21459411, 328.05263614, 327.8905716, 327.72840078, 327.56612397, 327.40374144, 327.2412535, 327.07866042, 326.91596249, 326.75316, 326.59025323, 326.42724247, 326.26412801, 326.10091012, 325.93758911, 325.77416525, 325.61063882, 325.44701012, 325.28327943, 325.11944704, 324.95551322, 324.79147826, 324.62734246, 324.46310609, 324.29876944, 324.13433279, 323.96979643, 323.80516065, 323.64042572, 323.47559193, 323.31065956, 323.1456289, 322.98050024, 322.81527385, 322.64995002, 322.48452904, 322.31901118, 322.15339673, 321.98768598, 321.8218792, 321.65597668, 321.4899787, 321.32388554, 321.15769749, 320.99141484, 320.82503785, 320.65856682, 320.49200202, 320.32534374, 320.15859227, 319.99174787, 319.82481084, 319.65778145, 319.49065999, 319.32344673, 319.15614197, 318.98874597, 318.82125903, 318.65368141, 318.48601341, 318.3182553, 318.15040737, 317.98246988, 317.81444314, 317.6463274, 317.47812296, 317.30983009, 317.14144907, 316.97298019, 316.80442372, 316.63577994, 316.46704913, 316.29823157, 316.12932753, 315.96033731, 315.79126117, 315.62209939, 315.45285226, 315.28352004, 315.11410303, 314.94460149, 314.77501571, 314.60534596, 314.43559252, 314.26575567, 314.09583568, 313.92583284, 313.75574741, 313.58557968, 313.41532992, 313.24499841, 313.07458543, 312.90409125, 312.73351615, 312.5628604, 312.39212429, 312.22130808, 312.05041205, 311.87943648, 311.70838164, 311.53724781, 311.36603527, 311.19474428, 311.02337513, 310.85192808, 310.68040342, 310.50880141, 310.33712234, 310.16536647, 309.99353408, 309.82162544, 309.64964084, 309.47758053, 309.30544479, 309.1332339, 308.96094814, 308.78858776, 308.61615306, 308.44364429, 308.27106173, 308.09840566, 307.92567634, 307.75287405, 307.57999906, 307.40705164, 307.23403207, 307.06094061, 306.88777754, 306.71454312, 306.54123763, 306.36786135, 306.19441453, 306.02089745, 305.84731039, 305.67365361, 305.49992737, 305.32613196, 305.15226765, 304.97833469, 304.80433336, 304.63026394, 304.45612668, 304.28192186, 304.10764975, 303.93331061, 303.75890472, 303.58443234, 303.40989374, 303.2352892, 303.06061897, 302.88588332, 302.71108253, 302.53621685, 302.36128657, 302.18629194, 302.01123323, 301.8361107, 301.66092464, 301.48567529, 301.31036294, 301.13498783, 300.95955025, 300.78405045, 300.60848871, 300.43286528, 300.25718043, 300.08143443, 299.90562755, 299.72976004, 299.55383217, 299.37784422, 299.20179643, 299.02568907, 298.84952242, 298.67329673, 298.49701227, 298.3206693, 298.14426808, 297.96780887, 297.79129195, 297.61471757, 297.438086, 297.26139749, 297.08465232, 296.90785074, 296.73099301, 296.5540794, 296.37711016, 296.20008557, 296.02300588, 295.84587135, 295.66868224, 295.49143881, 295.31414133, 295.13679006, 294.95938525, 294.78192716, 294.60441606, 294.42685221, 294.24923586, 294.07156727, 293.8938467, 293.71607442, 293.53825068, 293.36037574, 293.18244985, 293.00447329, 292.82644629, 292.64836913, 292.47024206, 292.29206534, 292.11383922, 291.93556397, 291.75723983, 291.57886707, 291.40044595, 291.22197671, 291.04345962, 290.86489494, 290.68628291, 290.50762379, 290.32891784, 290.15016532, 289.97136648, 289.79252158, 289.61363086, 289.43469459, 289.25571302, 289.0766864, 288.89761499, 288.71849905, 288.53933881, 288.36013455, 288.18088651, 288.00159495, 287.82226011, 287.64288225, 287.46346163, 287.2839985, 287.10449311, 286.9249457, 286.74535654, 286.56572587, 286.38605395, 286.20634103, 286.02658735, 285.84679318, 285.66695875, 285.48708433, 285.30717016, 285.12721648, 284.94722356, 284.76719164, 284.58712097, 284.4070118, 284.22686438, 284.04667896, 283.86645579, 283.68619511, 283.50589717, 283.32556223, 283.14519052, 282.96478231, 282.78433783, 282.60385734, 282.42334107, 282.24278928, 282.06220222, 281.88158013, 281.70092325, 281.52023184, 281.33950614, 281.1587464, 280.97795285, 280.79712576, 280.61626535, 280.43537188, 280.2544456, 280.07348674, 279.89249555, 279.71147228, 279.53041717, 279.34933046, 279.1682124, 278.98706323, 278.80588319, 278.62467254, 278.4434315, 278.26216032, 278.08085925, 277.89952852, 277.71816839, 277.53677908, 277.35536085, 277.17391394, 276.99243857, 276.81093501, 276.62940348, 276.44784423, 276.2662575, 276.08464353, 275.90300256, 275.72133482, 275.53964057, 275.35792003, 275.17617344, 274.99440106, 274.81260311, 274.63077983, 274.44893146, 274.26705824, 274.08516041, 273.9032382, 273.72129186, 273.53932161, 273.35732771, 273.17531038, 272.99326985, 272.81120638, 272.62912019, 272.44701152, 272.2648806, 272.08272767, 271.90055298, 271.71835674, 271.5361392, 271.35390059, 271.17164114, 270.9893611, 270.80706069, 270.62474015, 270.44239971, 270.26003961, 270.07766007, 269.89526134, 269.71284364, 269.53040721, 269.34795228, 269.16547909, 268.98298785, 268.80047882, 268.6179522, 268.43540825, 268.25284719, 268.07026925, 267.88767466, 267.70506366, 267.52243646, 267.33979331, 267.15713443, 266.97446005, 266.79177041, 266.60906572, 266.42634623, 266.24361215, 266.06086372, 265.87810116, 265.69532471, 265.51253459, 265.32973103, 265.14691425, 264.96408449, 264.78124197, 264.59838691, 264.41551955, 264.23264011, 264.04974882, 263.8668459, 263.68393157, 263.50100607, 263.31806962, 263.13512244, 262.95216476, 262.76919681, 262.5862188, 262.40323096, 262.22023351, 262.03722669, 261.85421071, 261.67118579, 261.48815217, 261.30511005, 261.12205967, 260.93900125, 260.755935, 260.57286115, 260.38977993, 260.20669155, 260.02359623, 259.8404942, 259.65738568, 259.47427088, 259.29115003, 259.10802335, 258.92489106, 258.74175337, 258.55861051, 258.37546269, 258.19231014, 258.00915307, 257.82599171, 257.64282626, 257.45965695, 257.276484, 257.09330762, 256.91012803, 256.72694545, 256.5437601, 256.36057218, 256.17738193, 255.99418954, 255.81099525, 255.62779926, 255.4446018, 255.26140307, 255.07820329, 254.89500268, 254.71180146, 254.52859982, 254.345398, 254.1621962, 253.97899464, 253.79579352, 253.61259308, 253.4293935, 253.24619502, 253.06299784, 252.87980218, 252.69660824, 252.51341624, 252.33022639, 252.1470389, 251.96385399, 251.78067186, 251.59749272, 251.41431678, 251.23114426, 251.04797537, 250.86481031, 250.68164929, 250.49849253, 250.31534023, 250.1321926, 249.94904985, 249.76591219, 249.58277982, 249.39965296, 249.21653181, 249.03341657, 248.85030747, 248.66720469, 248.48410846, 248.30101897, 248.11793644, 247.93486106, 247.75179304, 247.5687326, 247.38567993, 247.20263524, 247.01959873, 246.83657062, 246.65355109, 246.47054037, 246.28753864, 246.10454612, 245.92156301, 245.73858951, 245.55562582, 245.37267215, 245.1897287, 245.00679567, 244.82387327, 244.64096169, 244.45806114, 244.27517181, 244.09229391, 243.90942764, 243.72657321, 243.5437308, 243.36090062, 243.17808287, 242.99527776, 242.81248547, 242.62970621, 242.44694017, 242.26418756, 242.08144858, 241.89872342, 241.71601227, 241.53331535, 241.35063283, 241.16796493, 240.98531184, 240.80267376, 240.62005087, 240.43744339, 240.2548515, 240.07227539, 239.88971528, 239.70717134, 239.52464378, 239.34213278, 239.15963856, 238.97716129, 238.79470117, 238.6122584, 238.42983317, 238.24742567, 238.0650361, 237.88266465, 237.70031151, 237.51797687, 237.33566093, 237.15336388, 236.9710859, 236.7888272, 236.60658796, 236.42436837, 236.24216863, 236.05998891, 235.87782942, 235.69569035, 235.51357188, 235.3314742, 235.1493975, 234.96734197, 234.7853078, 234.60329518, 234.42130429, 234.23933533, 234.05738848, 233.87546392, 233.69356186, 233.51168246, 233.32982593, 233.14799244, 232.96618218, 232.78439534, 232.6026321, 232.42089265, 232.23917718, 232.05748587, 231.8758189, 231.69417646, 231.51255873, 231.33096589, 231.14939814, 230.96785565, 230.78633861, 230.6048472, 230.4233816, 230.241942, 230.06052857, 229.87914151, 229.69778098, 229.51644718, 229.33514028, 229.15386047, 228.97260792, 228.79138282, 228.61018535, 228.42901568, 228.247874, 228.06676048, 227.88567531, 227.70461866, 227.52359072, 227.34259166, 227.16162166, 226.98068089, 226.79976955, 226.61888779, 226.43803581, 226.25721377, 226.07642186, 225.89566025, 225.71492911, 225.53422863, 225.35355898, 225.17292033, 224.99231286, 224.81173675, 224.63119217, 224.45067929, 224.27019829, 224.08974935, 223.90933263, 223.72894831, 223.54859656, 223.36827756, 223.18799148, 223.00773849, 222.82751877, 222.64733248, 222.4671798, 222.2870609, 222.10697595, 221.92692512, 221.74690859, 221.56692652, 221.38697909, 221.20706645, 221.02718879, 220.84734628, 220.66753908, 220.48776736, 220.30803129, 220.12833104, 219.94866677, 219.76903866, 219.58944688, 219.40989159, 219.23037295, 219.05089114, 218.87144633, 218.69203867, 218.51266833, 218.33333549, 218.15404031, 217.97478294, 217.79556357, 217.61638235, 217.43723944, 217.25813502, 217.07906925, 216.90004228, 216.72105429, 216.54210544, 216.36319589, 216.18432581, 216.00549535, 215.82670468, 215.64795397, 215.46924337, 215.29057304, 215.11194315, 214.93335386, 214.75480534, 214.57629773, 214.3978312, 214.21940592, 214.04102204, 213.86267972, 213.68437912, 213.5061204, 213.32790372, 213.14972924, 212.97159712, 212.79350751, 212.61546057, 212.43745647, 212.25949535, 212.08157738, 211.90370272, 211.72587151, 211.54808392, 211.3703401, 211.19264021, 211.01498441, 210.83737284, 210.65980568, 210.48228306, 210.30480514, 210.12737209, 209.94998405, 209.77264118, 209.59534363, 209.41809155, 209.2408851, 209.06372444, 208.88660971, 208.70954106, 208.53251866, 208.35554264, 208.17861317, 208.0017304, 207.82489447, 207.64810553, 207.47136375, 207.29466926, 207.11802222, 206.94142278, 206.76487109, 206.58836729, 206.41191154, 206.23550399, 206.05914478, 205.88283406, 205.70657199, 205.53035871, 205.35419436, 205.1780791, 205.00201306, 204.82599641, 204.65002929, 204.47411183, 204.2982442, 204.12242653, 203.94665896, 203.77094166, 203.59527475, 203.41965839, 203.24409273, 203.06857789, 202.89311404, 202.71770131, 202.54233984, 202.36702979, 202.19177129, 202.01656449, 201.84140952, 201.66630654, 201.49125568, 201.31625709, 201.14131091, 200.96641728, 200.79157633, 200.61678822, 200.44205308, 200.26737105, 200.09274228, 199.9181669, 199.74364505, 199.56917688, 199.39476251, 199.2204021, 199.04609577, 198.87184367, 198.69764594, 198.52350271, 198.34941413, 198.17538032, 198.00140143, 197.82747759, 197.65360894, 197.47979562, 197.30603776, 197.13233549, 196.95868897, 196.78509831, 196.61156366, 196.43808514, 196.2646629, 196.09129707, 195.91798779, 195.74473518, 195.57153938, 195.39840053, 195.22531875, 195.05229419, 194.87932696, 194.70641722, 194.53356508, 194.36077068, 194.18803416, 194.01535563, 193.84273524, 193.67017312, 193.49766939, 193.32522419, 193.15283765, 192.98050989, 192.80824105, 192.63603125, 192.46388064, 192.29178932, 192.11975744, 191.94778512, 191.77587249, 191.60401967, 191.4322268, 191.26049401, 191.08882141, 190.91720915, 190.74565733, 190.5741661, 190.40273557, 190.23136588, 190.06005714, 189.88880949, 189.71762305, 189.54649794, 189.37543429, 189.20443222, 189.03349186, 188.86261334, 188.69179677, 188.52104227, 188.35034998, 188.17972002, 188.0091525, 187.83864756, 187.6682053, 187.49782586, 187.32750936, 187.15725592, 186.98706566, 186.81693869, 186.64687515, 186.47687515, 186.30693881, 186.13706626, 185.96725761, 185.79751298, 185.62783249, 185.45821626, 185.28866441, 185.11917705, 184.94975432, 184.78039631, 184.61110316, 184.44187498, 184.27271188, 184.10361399, 183.93458142, 183.76561429, 183.59671271, 183.4278768, 183.25910667, 183.09040245, 182.92176425, 182.75319217, 182.58468634, 182.41624688, 182.24787389, 182.07956749, 181.91132779, 181.74315492, 181.57504897, 181.40701007, 181.23903832, 181.07113385, 180.90329675, 180.73552715, 180.56782516, 180.40019089, 180.23262444, 180.06512594, 179.89769549, 179.7303332, 179.56303918, 179.39581355, 179.22865641, 179.06156788, 178.89454806, 178.72759705, 178.56071498, 178.39390196, 178.22715807, 178.06048345, 177.89387819, 177.7273424, 177.5608762, 177.39447968, 177.22815295, 177.06189613, 176.89570931, 176.72959261, 176.56354613, 176.39756998, 176.23166426, 176.06582907, 175.90006453, 175.73437074, 175.5687478, 175.40319581, 175.23771489, 175.07230513, 174.90696664, 174.74169953, 174.57650388, 174.41137982, 174.24632744, 174.08134684, 173.91643813, 173.7516014, 173.58683677, 173.42214432, 173.25752417, 173.09297641, 172.92850115, 172.76409848, 172.59976851, 172.43551133, 172.27132705, 172.10721576, 171.94317757, 171.77921257, 171.61532087, 171.45150255, 171.28775772, 171.12408649, 170.96048894, 170.79696517, 170.63351528, 170.47013937, 170.30683754, 170.14360988, 169.98045649, 169.81737746, 169.65437289, 169.49144288, 169.32858752, 169.16580691, 169.00310115, 168.84047032, 168.67791452, 168.51543385, 168.3530284, 168.19069827, 168.02844354, 167.86626432, 167.70416069, 167.54213275, 167.38018059, 167.2183043, 167.05650398, 166.89477972, 166.73313161, 166.57155973, 166.41006419, 166.24864508, 166.08730248, 165.92603648, 165.76484718, 165.60373466, 165.44269903, 165.28174035, 165.12085873, 164.96005426, 164.79932701, 164.63867709, 164.47810458, 164.31760957, 164.15719214, 163.99685239, 163.8365904, 163.67640626, 163.51630005, 163.35627187, 163.1963218, 163.03644993, 162.87665634, 162.71694111, 162.55730434, 162.39774611, 162.23826651, 162.07886561, 161.91954351, 161.76030029, 161.60113604, 161.44205083, 161.28304475, 161.12411789, 160.96527033, 160.80650215, 160.64781343, 160.48920426, 160.33067472, 160.1722249, 160.01385487, 159.85556471, 159.69735451, 159.53922436, 159.38117432, 159.22320448, 159.06531493, 158.90750573, 158.74977698, 158.59212875, 158.43456113, 158.27707418, 158.119668, 157.96234266, 157.80509823, 157.6479348, 157.49085245, 157.33385125, 157.17693129, 157.02009263, 156.86333536, 156.70665955, 156.55006529, 156.39355264, 156.23712169, 156.08077251, 155.92450517, 155.76831976, 155.61221635, 155.45619501, 155.30025582, 155.14439885, 154.98862418, 154.83293189, 154.67732204, 154.52179471, 154.36634998, 154.21098792, 154.0557086, 153.9005121, 153.74539849, 153.59036783, 153.43542022, 153.2805557, 153.12577437, 152.97107628, 152.81646152, 152.66193015, 152.50748224, 152.35311787, 152.19883711, 152.04464002, 151.89052667, 151.73649715, 151.58255151, 151.42868982, 151.27491217, 151.1212186, 150.9676092, 150.81408403, 150.66064316, 150.50728667, 150.3540146, 150.20082705, 150.04772406, 149.89470572, 149.74177208, 149.58892321, 149.43615919, 149.28348007, 149.13088593, 148.97837683, 148.82595283, 148.673614, 148.52136041, 148.36919212, 148.2171092, 148.06511171, 147.91319971, 147.76137328, 147.60963247, 147.45797734, 147.30640797, 147.15492442, 147.00352674, 146.852215, 146.70098927, 146.54984961, 146.39879607, 146.24782873, 146.09694764, 145.94615286, 145.79544446, 145.6448225, 145.49428704, 145.34383814, 145.19347586, 145.04320025, 144.89301139, 144.74290934, 144.59289414, 144.44296586, 144.29312456, 144.1433703, 143.99370314, 143.84412313, 143.69463034, 143.54522483, 143.39590664, 143.24667584, 143.09753249, 142.94847665, 142.79950836, 142.6506277, 142.50183471, 142.35312945, 142.20451198, 142.05598235, 141.90754062, 141.75918685, 141.6109211, 141.4627434, 141.31465383, 141.16665244, 141.01873928, 140.8709144, 140.72317787, 140.57552973, 140.42797003, 140.28049884, 140.1331162, 139.98582218, 139.83861681, 139.69150016, 139.54447227, 139.3975332, 139.25068301, 139.10392173, 138.95724944, 138.81066617, 138.66417197, 138.51776691, 138.37145102, 138.22522437, 138.079087, 137.93303895, 137.78708029, 137.64121106, 137.49543132, 137.3497411, 137.20414046, 137.05862945, 136.91320812, 136.76787652, 136.62263469, 136.47748268, 136.33242054, 136.18744832, 136.04256607, 135.89777384, 135.75307166, 135.60845959, 135.46393768, 135.31950597, 135.1751645, 135.03091333, 134.8867525, 134.74268206, 134.59870205, 134.45481251, 134.3110135, 134.16730505, 134.02368722, 133.88016004, 133.73672356, 133.59337783, 133.45012289, 133.30695878, 133.16388554, 133.02090323, 132.87801188, 132.73521153, 132.59250223, 132.44988403, 132.30735695, 132.16492106, 132.02257638, 131.88032296, 131.73816084, 131.59609006, 131.45411067, 131.3122227, 131.1704262, 131.0287212, 130.88710775, 130.74558589, 130.60415565, 130.46281708, 130.32157021, 130.18041509, 130.03935176, 129.89838024, 129.75750059, 129.61671284, 129.47601703, 129.3354132, 129.19490139, 129.05448162, 128.91415395, 128.77391841, 128.63377503, 128.49372386, 128.35376492, 128.21389826, 128.07412392, 127.93444192, 127.79485231, 127.65535512, 127.51595039, 127.37663815, 127.23741843, 127.09829128, 126.95925673, 126.82031481, 126.68146555, 126.542709, 126.40404519, 126.26547414, 126.1269959, 125.98861049, 125.85031795, 125.71211832, 125.57401162, 125.43599789, 125.29807717, 125.16024948, 125.02251485, 124.88487333, 124.74732493, 124.6098697, 124.47250766, 124.33523885, 124.19806329, 124.06098102, 123.92399207, 123.78709646, 123.65029424, 123.51358542, 123.37697005, 123.24044814, 123.10401973, 122.96768485, 122.83144352, 122.69529579, 122.55924166, 122.42328119, 122.28741438, 122.15164127, 122.0159619, 121.88037628, 121.74488444, 121.60948642, 121.47418223, 121.33897192, 121.20385549, 121.06883299, 120.93390444, 120.79906986, 120.66432928, 120.52968272, 120.39513022, 120.26067179, 120.12630747, 119.99203728, 119.85786124, 119.72377938, 119.58979173, 119.4558983, 119.32209913, 119.18839423, 119.05478364, 118.92126737, 118.78784545, 118.65451791, 118.52128476, 118.38814603, 118.25510174, 118.12215191, 117.98929658, 117.85653576, 117.72386946, 117.59129773, 117.45882057, 117.32643801, 117.19415007, 117.06195677, 116.92985814, 116.79785419, 116.66594494, 116.53413042, 116.40241065, 116.27078564, 116.13925542, 116.00782001, 115.87647942, 115.74523368, 115.61408281, 115.48302682, 115.35206574, 115.22119958, 115.09042836, 114.95975211, 114.82917083, 114.69868455, 114.56829329, 114.43799706, 114.30779588, 114.17768977, 114.04767875, 113.91776283, 113.78794203, 113.65821637, 113.52858586, 113.39905052, 113.26961038, 113.14026543, 113.0110157, 112.88186121, 112.75280198, 112.623838, 112.49496931, 112.36619592, 112.23751784, 112.10893509, 111.98044767, 111.85205562, 111.72375893, 111.59555763, 111.46745173, 111.33944124, 111.21152618, 111.08370655, 110.95598238, 110.82835368, 110.70082046, 110.57338272, 110.4460405, 110.31879378, 110.1916426, 110.06458696, 109.93762688, 109.81076236, 109.68399342, 109.55732006, 109.43074231, 109.30426017, 109.17787365, 109.05158276, 108.92538752, 108.79928793, 108.673284, 108.54737575, 108.42156319, 108.29584632, 108.17022515, 108.0446997, 107.91926997, 107.79393598, 107.66869772, 107.54355522, 107.41850847, 107.2935575, 107.1687023, 107.04394288, 106.91927926, 106.79471143, 106.67023942, 106.54586322, 106.42158284, 106.2973983, 106.17330959, 106.04931672, 105.92541971, 105.80161856, 105.67791327, 105.55430385, 105.43079031, 105.30737265, 105.18405088, 105.060825, 104.93769503, 104.81466096, 104.6917228, 104.56888055, 104.44613423, 104.32348384, 104.20092937, 104.07847083, 103.95610824, 103.83384159, 103.71167089, 103.58959613, 103.46761733, 103.34573449, 103.22394761, 103.1022567, 102.98066175, 102.85916277, 102.73775976, 102.61645274, 102.49524168, 102.37412661, 102.25310753, 102.13218442, 102.01135731, 101.89062618, 101.76999104, 101.64945189, 101.52900873, 101.40866157, 101.2884104, 101.16825523, 101.04819605, 100.92823287, 100.80836568, 100.68859449, 100.5689193, 100.4493401, 100.3298569, 100.21046969, 100.09117848, 99.97198327, 99.85288405, 99.73388082, 99.61497358, 99.49616233, 99.37744707, 99.2588278, 99.14030451, 99.0218772, 98.90354588, 98.78531054, 98.66717117, 98.54912777, 98.43118035, 98.3133289, 98.19557341, 98.07791388, 97.96035032, 97.84288271, 97.72551105, 97.60823534, 97.49105558, 97.37397176, 97.25698388, 97.14009193, 97.0232959, 96.9065958, 96.78999163, 96.67348336, 96.55707101, 96.44075456, 96.32453401, 96.20840935, 96.09238058, 95.9764477, 95.86061069, 95.74486955, 95.62922428, 95.51367487, 95.39822131, 95.28286359, 95.16760172, 95.05243567, 94.93736546, 94.82239106, 94.70751247, 94.59272969, 94.47804271, 94.36345151, 94.2489561, 94.13455646, 94.02025258, 93.90604446, 93.7919321, 93.67791547, 93.56399457, 93.4501694, 93.33643994, 93.22280619, 93.10926814, 92.99582577, 92.88247908, 92.76922806, 92.6560727, 92.54301298, 92.43004891, 92.31718047, 92.20440764, 92.09173042, 91.9791488, 91.86666277, 91.75427232, 91.64197743, 91.5297781, 91.41767431, 91.30566605, 91.19375332, 91.08193609, 90.97021437, 90.85858813, 90.74705736, 90.63562206, 90.52428221, 90.41303779, 90.3018888, 90.19083523, 90.07987706, 89.96901427, 89.85824686, 89.74757481, 89.6369981, 89.52651674, 89.41613069, 89.30583996, 89.19564451, 89.08554435, 88.97553946, 88.86562981, 88.75581541, 88.64609623, 88.53647226, 88.42694349, 88.31750989, 88.20817146, 88.09892818, 87.98978004, 87.88072701, 87.77176909, 87.66290627, 87.55413851, 87.44546581, 87.33688816, 87.22840553, 87.12001791, 87.01172528, 86.90352763, 86.79542494, 86.6874172, 86.57950439, 86.47168648, 86.36396347, 86.25633534, 86.14880206, 86.04136363, 85.93402003, 85.82677123, 85.71961722, 85.61255798, 85.5055935, 85.39872375, 85.29194872, 85.18526839, 85.07868274, 84.97219175, 84.86579541, 84.75949369, 84.65328658, 84.54717405, 84.4411561, 84.33523269, 84.22940381, 84.12366944, 84.01802956, 83.91248416, 83.8070332, 83.70167667, 83.59641456, 83.49124684, 83.38617348, 83.28119448, 83.17630981, 83.07151944, 82.96682336, 82.86222155, 82.75771399, 82.65330065, 82.54898152, 82.44475657, 82.34062578, 82.23658913, 82.13264659, 82.02879816, 81.92504379, 81.82138348, 81.7178172, 81.61434493, 81.51096664, 81.40768232, 81.30449194, 81.20139547, 81.0983929, 80.9954842, 80.89266936, 80.78994833, 80.68732111, 80.58478767, 80.48234799, 80.38000204, 80.27774979, 80.17559123, 80.07352634, 79.97155507, 79.86967743, 79.76789337, 79.66620287, 79.56460592, 79.46310248, 79.36169253, 79.26037605, 79.15915301, 79.05802338, 78.95698714, 78.85604428, 78.75519475, 78.65443853, 78.55377561, 78.45320595, 78.35272953, 78.25234632, 78.1520563, 78.05185944, 77.95175571, 77.85174509, 77.75182755, 77.65200307, 77.55227161, 77.45263316, 77.35308768, 77.25363515, 77.15427555, 77.05500883, 76.95583499, 76.85675398, 76.75776579, 76.65887038, 76.56006773, 76.46135781, 76.36274059, 76.26421604, 76.16578414, 76.06744486, 75.96919817, 75.87104404, 75.77298244, 75.67501335, 75.57713673, 75.47935256, 75.38166081, 75.28406145, 75.18655444, 75.08913977, 74.99181741, 74.89458731, 74.79744946, 74.70040382, 74.60345037, 74.50658907, 74.4098199, 74.31314282, 74.21655781, 74.12006483, 74.02366385, 73.92735486, 73.8311378, 73.73501266, 73.63897941, 73.543038, 73.44718842, 73.35143063, 73.2557646, 73.16019029, 73.06470769] }, { "type": "list", "attributes": {}, "value": [ { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [4000, 12] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["x", "rev.x", "y.c1", "rev.y.c1", "y.c2", "rev.y.c2", "y.c3", "rev.y.c3", "cont.c1", "cont.c2", "cont.c3", "cont.sum"] } ] } }, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4000, 3999, 3998, 3997, 3996, 3995, 3994, 3993, 3992, 3991, 3990, 3989, 3988, 3987, 3986, 3985, 3984, 3983, 3982, 3981, 3980, 3979, 3978, 3977, 3976, 3975, 3974, 3973, 3972, 3971, 3970, 3969, 3968, 3967, 3966, 3965, 3964, 3963, 3962, 3961, 3960, 3959, 3958, 3957, 3956, 3955, 3954, 3953, 3952, 3951, 3950, 3949, 3948, 3947, 3946, 3945, 3944, 3943, 3942, 3941, 3940, 3939, 3938, 3937, 3936, 3935, 3934, 3933, 3932, 3931, 3930, 3929, 3928, 3927, 3926, 3925, 3924, 3923, 3922, 3921, 3920, 3919, 3918, 3917, 3916, 3915, 3914, 3913, 3912, 3911, 3910, 3909, 3908, 3907, 3906, 3905, 3904, 3903, 3902, 3901, 3900, 3899, 3898, 3897, 3896, 3895, 3894, 3893, 3892, 3891, 3890, 3889, 3888, 3887, 3886, 3885, 3884, 3883, 3882, 3881, 3880, 3879, 3878, 3877, 3876, 3875, 3874, 3873, 3872, 3871, 3870, 3869, 3868, 3867, 3866, 3865, 3864, 3863, 3862, 3861, 3860, 3859, 3858, 3857, 3856, 3855, 3854, 3853, 3852, 3851, 3850, 3849, 3848, 3847, 3846, 3845, 3844, 3843, 3842, 3841, 3840, 3839, 3838, 3837, 3836, 3835, 3834, 3833, 3832, 3831, 3830, 3829, 3828, 3827, 3826, 3825, 3824, 3823, 3822, 3821, 3820, 3819, 3818, 3817, 3816, 3815, 3814, 3813, 3812, 3811, 3810, 3809, 3808, 3807, 3806, 3805, 3804, 3803, 3802, 3801, 3800, 3799, 3798, 3797, 3796, 3795, 3794, 3793, 3792, 3791, 3790, 3789, 3788, 3787, 3786, 3785, 3784, 3783, 3782, 3781, 3780, 3779, 3778, 3777, 3776, 3775, 3774, 3773, 3772, 3771, 3770, 3769, 3768, 3767, 3766, 3765, 3764, 3763, 3762, 3761, 3760, 3759, 3758, 3757, 3756, 3755, 3754, 3753, 3752, 3751, 3750, 3749, 3748, 3747, 3746, 3745, 3744, 3743, 3742, 3741, 3740, 3739, 3738, 3737, 3736, 3735, 3734, 3733, 3732, 3731, 3730, 3729, 3728, 3727, 3726, 3725, 3724, 3723, 3722, 3721, 3720, 3719, 3718, 3717, 3716, 3715, 3714, 3713, 3712, 3711, 3710, 3709, 3708, 3707, 3706, 3705, 3704, 3703, 3702, 3701, 3700, 3699, 3698, 3697, 3696, 3695, 3694, 3693, 3692, 3691, 3690, 3689, 3688, 3687, 3686, 3685, 3684, 3683, 3682, 3681, 3680, 3679, 3678, 3677, 3676, 3675, 3674, 3673, 3672, 3671, 3670, 3669, 3668, 3667, 3666, 3665, 3664, 3663, 3662, 3661, 3660, 3659, 3658, 3657, 3656, 3655, 3654, 3653, 3652, 3651, 3650, 3649, 3648, 3647, 3646, 3645, 3644, 3643, 3642, 3641, 3640, 3639, 3638, 3637, 3636, 3635, 3634, 3633, 3632, 3631, 3630, 3629, 3628, 3627, 3626, 3625, 3624, 3623, 3622, 3621, 3620, 3619, 3618, 3617, 3616, 3615, 3614, 3613, 3612, 3611, 3610, 3609, 3608, 3607, 3606, 3605, 3604, 3603, 3602, 3601, 3600, 3599, 3598, 3597, 3596, 3595, 3594, 3593, 3592, 3591, 3590, 3589, 3588, 3587, 3586, 3585, 3584, 3583, 3582, 3581, 3580, 3579, 3578, 3577, 3576, 3575, 3574, 3573, 3572, 3571, 3570, 3569, 3568, 3567, 3566, 3565, 3564, 3563, 3562, 3561, 3560, 3559, 3558, 3557, 3556, 3555, 3554, 3553, 3552, 3551, 3550, 3549, 3548, 3547, 3546, 3545, 3544, 3543, 3542, 3541, 3540, 3539, 3538, 3537, 3536, 3535, 3534, 3533, 3532, 3531, 3530, 3529, 3528, 3527, 3526, 3525, 3524, 3523, 3522, 3521, 3520, 3519, 3518, 3517, 3516, 3515, 3514, 3513, 3512, 3511, 3510, 3509, 3508, 3507, 3506, 3505, 3504, 3503, 3502, 3501, 3500, 3499, 3498, 3497, 3496, 3495, 3494, 3493, 3492, 3491, 3490, 3489, 3488, 3487, 3486, 3485, 3484, 3483, 3482, 3481, 3480, 3479, 3478, 3477, 3476, 3475, 3474, 3473, 3472, 3471, 3470, 3469, 3468, 3467, 3466, 3465, 3464, 3463, 3462, 3461, 3460, 3459, 3458, 3457, 3456, 3455, 3454, 3453, 3452, 3451, 3450, 3449, 3448, 3447, 3446, 3445, 3444, 3443, 3442, 3441, 3440, 3439, 3438, 3437, 3436, 3435, 3434, 3433, 3432, 3431, 3430, 3429, 3428, 3427, 3426, 3425, 3424, 3423, 3422, 3421, 3420, 3419, 3418, 3417, 3416, 3415, 3414, 3413, 3412, 3411, 3410, 3409, 3408, 3407, 3406, 3405, 3404, 3403, 3402, 3401, 3400, 3399, 3398, 3397, 3396, 3395, 3394, 3393, 3392, 3391, 3390, 3389, 3388, 3387, 3386, 3385, 3384, 3383, 3382, 3381, 3380, 3379, 3378, 3377, 3376, 3375, 3374, 3373, 3372, 3371, 3370, 3369, 3368, 3367, 3366, 3365, 3364, 3363, 3362, 3361, 3360, 3359, 3358, 3357, 3356, 3355, 3354, 3353, 3352, 3351, 3350, 3349, 3348, 3347, 3346, 3345, 3344, 3343, 3342, 3341, 3340, 3339, 3338, 3337, 3336, 3335, 3334, 3333, 3332, 3331, 3330, 3329, 3328, 3327, 3326, 3325, 3324, 3323, 3322, 3321, 3320, 3319, 3318, 3317, 3316, 3315, 3314, 3313, 3312, 3311, 3310, 3309, 3308, 3307, 3306, 3305, 3304, 3303, 3302, 3301, 3300, 3299, 3298, 3297, 3296, 3295, 3294, 3293, 3292, 3291, 3290, 3289, 3288, 3287, 3286, 3285, 3284, 3283, 3282, 3281, 3280, 3279, 3278, 3277, 3276, 3275, 3274, 3273, 3272, 3271, 3270, 3269, 3268, 3267, 3266, 3265, 3264, 3263, 3262, 3261, 3260, 3259, 3258, 3257, 3256, 3255, 3254, 3253, 3252, 3251, 3250, 3249, 3248, 3247, 3246, 3245, 3244, 3243, 3242, 3241, 3240, 3239, 3238, 3237, 3236, 3235, 3234, 3233, 3232, 3231, 3230, 3229, 3228, 3227, 3226, 3225, 3224, 3223, 3222, 3221, 3220, 3219, 3218, 3217, 3216, 3215, 3214, 3213, 3212, 3211, 3210, 3209, 3208, 3207, 3206, 3205, 3204, 3203, 3202, 3201, 3200, 3199, 3198, 3197, 3196, 3195, 3194, 3193, 3192, 3191, 3190, 3189, 3188, 3187, 3186, 3185, 3184, 3183, 3182, 3181, 3180, 3179, 3178, 3177, 3176, 3175, 3174, 3173, 3172, 3171, 3170, 3169, 3168, 3167, 3166, 3165, 3164, 3163, 3162, 3161, 3160, 3159, 3158, 3157, 3156, 3155, 3154, 3153, 3152, 3151, 3150, 3149, 3148, 3147, 3146, 3145, 3144, 3143, 3142, 3141, 3140, 3139, 3138, 3137, 3136, 3135, 3134, 3133, 3132, 3131, 3130, 3129, 3128, 3127, 3126, 3125, 3124, 3123, 3122, 3121, 3120, 3119, 3118, 3117, 3116, 3115, 3114, 3113, 3112, 3111, 3110, 3109, 3108, 3107, 3106, 3105, 3104, 3103, 3102, 3101, 3100, 3099, 3098, 3097, 3096, 3095, 3094, 3093, 3092, 3091, 3090, 3089, 3088, 3087, 3086, 3085, 3084, 3083, 3082, 3081, 3080, 3079, 3078, 3077, 3076, 3075, 3074, 3073, 3072, 3071, 3070, 3069, 3068, 3067, 3066, 3065, 3064, 3063, 3062, 3061, 3060, 3059, 3058, 3057, 3056, 3055, 3054, 3053, 3052, 3051, 3050, 3049, 3048, 3047, 3046, 3045, 3044, 3043, 3042, 3041, 3040, 3039, 3038, 3037, 3036, 3035, 3034, 3033, 3032, 3031, 3030, 3029, 3028, 3027, 3026, 3025, 3024, 3023, 3022, 3021, 3020, 3019, 3018, 3017, 3016, 3015, 3014, 3013, 3012, 3011, 3010, 3009, 3008, 3007, 3006, 3005, 3004, 3003, 3002, 3001, 3000, 2999, 2998, 2997, 2996, 2995, 2994, 2993, 2992, 2991, 2990, 2989, 2988, 2987, 2986, 2985, 2984, 2983, 2982, 2981, 2980, 2979, 2978, 2977, 2976, 2975, 2974, 2973, 2972, 2971, 2970, 2969, 2968, 2967, 2966, 2965, 2964, 2963, 2962, 2961, 2960, 2959, 2958, 2957, 2956, 2955, 2954, 2953, 2952, 2951, 2950, 2949, 2948, 2947, 2946, 2945, 2944, 2943, 2942, 2941, 2940, 2939, 2938, 2937, 2936, 2935, 2934, 2933, 2932, 2931, 2930, 2929, 2928, 2927, 2926, 2925, 2924, 2923, 2922, 2921, 2920, 2919, 2918, 2917, 2916, 2915, 2914, 2913, 2912, 2911, 2910, 2909, 2908, 2907, 2906, 2905, 2904, 2903, 2902, 2901, 2900, 2899, 2898, 2897, 2896, 2895, 2894, 2893, 2892, 2891, 2890, 2889, 2888, 2887, 2886, 2885, 2884, 2883, 2882, 2881, 2880, 2879, 2878, 2877, 2876, 2875, 2874, 2873, 2872, 2871, 2870, 2869, 2868, 2867, 2866, 2865, 2864, 2863, 2862, 2861, 2860, 2859, 2858, 2857, 2856, 2855, 2854, 2853, 2852, 2851, 2850, 2849, 2848, 2847, 2846, 2845, 2844, 2843, 2842, 2841, 2840, 2839, 2838, 2837, 2836, 2835, 2834, 2833, 2832, 2831, 2830, 2829, 2828, 2827, 2826, 2825, 2824, 2823, 2822, 2821, 2820, 2819, 2818, 2817, 2816, 2815, 2814, 2813, 2812, 2811, 2810, 2809, 2808, 2807, 2806, 2805, 2804, 2803, 2802, 2801, 2800, 2799, 2798, 2797, 2796, 2795, 2794, 2793, 2792, 2791, 2790, 2789, 2788, 2787, 2786, 2785, 2784, 2783, 2782, 2781, 2780, 2779, 2778, 2777, 2776, 2775, 2774, 2773, 2772, 2771, 2770, 2769, 2768, 2767, 2766, 2765, 2764, 2763, 2762, 2761, 2760, 2759, 2758, 2757, 2756, 2755, 2754, 2753, 2752, 2751, 2750, 2749, 2748, 2747, 2746, 2745, 2744, 2743, 2742, 2741, 2740, 2739, 2738, 2737, 2736, 2735, 2734, 2733, 2732, 2731, 2730, 2729, 2728, 2727, 2726, 2725, 2724, 2723, 2722, 2721, 2720, 2719, 2718, 2717, 2716, 2715, 2714, 2713, 2712, 2711, 2710, 2709, 2708, 2707, 2706, 2705, 2704, 2703, 2702, 2701, 2700, 2699, 2698, 2697, 2696, 2695, 2694, 2693, 2692, 2691, 2690, 2689, 2688, 2687, 2686, 2685, 2684, 2683, 2682, 2681, 2680, 2679, 2678, 2677, 2676, 2675, 2674, 2673, 2672, 2671, 2670, 2669, 2668, 2667, 2666, 2665, 2664, 2663, 2662, 2661, 2660, 2659, 2658, 2657, 2656, 2655, 2654, 2653, 2652, 2651, 2650, 2649, 2648, 2647, 2646, 2645, 2644, 2643, 2642, 2641, 2640, 2639, 2638, 2637, 2636, 2635, 2634, 2633, 2632, 2631, 2630, 2629, 2628, 2627, 2626, 2625, 2624, 2623, 2622, 2621, 2620, 2619, 2618, 2617, 2616, 2615, 2614, 2613, 2612, 2611, 2610, 2609, 2608, 2607, 2606, 2605, 2604, 2603, 2602, 2601, 2600, 2599, 2598, 2597, 2596, 2595, 2594, 2593, 2592, 2591, 2590, 2589, 2588, 2587, 2586, 2585, 2584, 2583, 2582, 2581, 2580, 2579, 2578, 2577, 2576, 2575, 2574, 2573, 2572, 2571, 2570, 2569, 2568, 2567, 2566, 2565, 2564, 2563, 2562, 2561, 2560, 2559, 2558, 2557, 2556, 2555, 2554, 2553, 2552, 2551, 2550, 2549, 2548, 2547, 2546, 2545, 2544, 2543, 2542, 2541, 2540, 2539, 2538, 2537, 2536, 2535, 2534, 2533, 2532, 2531, 2530, 2529, 2528, 2527, 2526, 2525, 2524, 2523, 2522, 2521, 2520, 2519, 2518, 2517, 2516, 2515, 2514, 2513, 2512, 2511, 2510, 2509, 2508, 2507, 2506, 2505, 2504, 2503, 2502, 2501, 2500, 2499, 2498, 2497, 2496, 2495, 2494, 2493, 2492, 2491, 2490, 2489, 2488, 2487, 2486, 2485, 2484, 2483, 2482, 2481, 2480, 2479, 2478, 2477, 2476, 2475, 2474, 2473, 2472, 2471, 2470, 2469, 2468, 2467, 2466, 2465, 2464, 2463, 2462, 2461, 2460, 2459, 2458, 2457, 2456, 2455, 2454, 2453, 2452, 2451, 2450, 2449, 2448, 2447, 2446, 2445, 2444, 2443, 2442, 2441, 2440, 2439, 2438, 2437, 2436, 2435, 2434, 2433, 2432, 2431, 2430, 2429, 2428, 2427, 2426, 2425, 2424, 2423, 2422, 2421, 2420, 2419, 2418, 2417, 2416, 2415, 2414, 2413, 2412, 2411, 2410, 2409, 2408, 2407, 2406, 2405, 2404, 2403, 2402, 2401, 2400, 2399, 2398, 2397, 2396, 2395, 2394, 2393, 2392, 2391, 2390, 2389, 2388, 2387, 2386, 2385, 2384, 2383, 2382, 2381, 2380, 2379, 2378, 2377, 2376, 2375, 2374, 2373, 2372, 2371, 2370, 2369, 2368, 2367, 2366, 2365, 2364, 2363, 2362, 2361, 2360, 2359, 2358, 2357, 2356, 2355, 2354, 2353, 2352, 2351, 2350, 2349, 2348, 2347, 2346, 2345, 2344, 2343, 2342, 2341, 2340, 2339, 2338, 2337, 2336, 2335, 2334, 2333, 2332, 2331, 2330, 2329, 2328, 2327, 2326, 2325, 2324, 2323, 2322, 2321, 2320, 2319, 2318, 2317, 2316, 2315, 2314, 2313, 2312, 2311, 2310, 2309, 2308, 2307, 2306, 2305, 2304, 2303, 2302, 2301, 2300, 2299, 2298, 2297, 2296, 2295, 2294, 2293, 2292, 2291, 2290, 2289, 2288, 2287, 2286, 2285, 2284, 2283, 2282, 2281, 2280, 2279, 2278, 2277, 2276, 2275, 2274, 2273, 2272, 2271, 2270, 2269, 2268, 2267, 2266, 2265, 2264, 2263, 2262, 2261, 2260, 2259, 2258, 2257, 2256, 2255, 2254, 2253, 2252, 2251, 2250, 2249, 2248, 2247, 2246, 2245, 2244, 2243, 2242, 2241, 2240, 2239, 2238, 2237, 2236, 2235, 2234, 2233, 2232, 2231, 2230, 2229, 2228, 2227, 2226, 2225, 2224, 2223, 2222, 2221, 2220, 2219, 2218, 2217, 2216, 2215, 2214, 2213, 2212, 2211, 2210, 2209, 2208, 2207, 2206, 2205, 2204, 2203, 2202, 2201, 2200, 2199, 2198, 2197, 2196, 2195, 2194, 2193, 2192, 2191, 2190, 2189, 2188, 2187, 2186, 2185, 2184, 2183, 2182, 2181, 2180, 2179, 2178, 2177, 2176, 2175, 2174, 2173, 2172, 2171, 2170, 2169, 2168, 2167, 2166, 2165, 2164, 2163, 2162, 2161, 2160, 2159, 2158, 2157, 2156, 2155, 2154, 2153, 2152, 2151, 2150, 2149, 2148, 2147, 2146, 2145, 2144, 2143, 2142, 2141, 2140, 2139, 2138, 2137, 2136, 2135, 2134, 2133, 2132, 2131, 2130, 2129, 2128, 2127, 2126, 2125, 2124, 2123, 2122, 2121, 2120, 2119, 2118, 2117, 2116, 2115, 2114, 2113, 2112, 2111, 2110, 2109, 2108, 2107, 2106, 2105, 2104, 2103, 2102, 2101, 2100, 2099, 2098, 2097, 2096, 2095, 2094, 2093, 2092, 2091, 2090, 2089, 2088, 2087, 2086, 2085, 2084, 2083, 2082, 2081, 2080, 2079, 2078, 2077, 2076, 2075, 2074, 2073, 2072, 2071, 2070, 2069, 2068, 2067, 2066, 2065, 2064, 2063, 2062, 2061, 2060, 2059, 2058, 2057, 2056, 2055, 2054, 2053, 2052, 2051, 2050, 2049, 2048, 2047, 2046, 2045, 2044, 2043, 2042, 2041, 2040, 2039, 2038, 2037, 2036, 2035, 2034, 2033, 2032, 2031, 2030, 2029, 2028, 2027, 2026, 2025, 2024, 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990, 1989, 1988, 1987, 1986, 1985, 1984, 1983, 1982, 1981, 1980, 1979, 1978, 1977, 1976, 1975, 1974, 1973, 1972, 1971, 1970, 1969, 1968, 1967, 1966, 1965, 1964, 1963, 1962, 1961, 1960, 1959, 1958, 1957, 1956, 1955, 1954, 1953, 1952, 1951, 1950, 1949, 1948, 1947, 1946, 1945, 1944, 1943, 1942, 1941, 1940, 1939, 1938, 1937, 1936, 1935, 1934, 1933, 1932, 1931, 1930, 1929, 1928, 1927, 1926, 1925, 1924, 1923, 1922, 1921, 1920, 1919, 1918, 1917, 1916, 1915, 1914, 1913, 1912, 1911, 1910, 1909, 1908, 1907, 1906, 1905, 1904, 1903, 1902, 1901, 1900, 1899, 1898, 1897, 1896, 1895, 1894, 1893, 1892, 1891, 1890, 1889, 1888, 1887, 1886, 1885, 1884, 1883, 1882, 1881, 1880, 1879, 1878, 1877, 1876, 1875, 1874, 1873, 1872, 1871, 1870, 1869, 1868, 1867, 1866, 1865, 1864, 1863, 1862, 1861, 1860, 1859, 1858, 1857, 1856, 1855, 1854, 1853, 1852, 1851, 1850, 1849, 1848, 1847, 1846, 1845, 1844, 1843, 1842, 1841, 1840, 1839, 1838, 1837, 1836, 1835, 1834, 1833, 1832, 1831, 1830, 1829, 1828, 1827, 1826, 1825, 1824, 1823, 1822, 1821, 1820, 1819, 1818, 1817, 1816, 1815, 1814, 1813, 1812, 1811, 1810, 1809, 1808, 1807, 1806, 1805, 1804, 1803, 1802, 1801, 1800, 1799, 1798, 1797, 1796, 1795, 1794, 1793, 1792, 1791, 1790, 1789, 1788, 1787, 1786, 1785, 1784, 1783, 1782, 1781, 1780, 1779, 1778, 1777, 1776, 1775, 1774, 1773, 1772, 1771, 1770, 1769, 1768, 1767, 1766, 1765, 1764, 1763, 1762, 1761, 1760, 1759, 1758, 1757, 1756, 1755, 1754, 1753, 1752, 1751, 1750, 1749, 1748, 1747, 1746, 1745, 1744, 1743, 1742, 1741, 1740, 1739, 1738, 1737, 1736, 1735, 1734, 1733, 1732, 1731, 1730, 1729, 1728, 1727, 1726, 1725, 1724, 1723, 1722, 1721, 1720, 1719, 1718, 1717, 1716, 1715, 1714, 1713, 1712, 1711, 1710, 1709, 1708, 1707, 1706, 1705, 1704, 1703, 1702, 1701, 1700, 1699, 1698, 1697, 1696, 1695, 1694, 1693, 1692, 1691, 1690, 1689, 1688, 1687, 1686, 1685, 1684, 1683, 1682, 1681, 1680, 1679, 1678, 1677, 1676, 1675, 1674, 1673, 1672, 1671, 1670, 1669, 1668, 1667, 1666, 1665, 1664, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653, 1652, 1651, 1650, 1649, 1648, 1647, 1646, 1645, 1644, 1643, 1642, 1641, 1640, 1639, 1638, 1637, 1636, 1635, 1634, 1633, 1632, 1631, 1630, 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1619, 1618, 1617, 1616, 1615, 1614, 1613, 1612, 1611, 1610, 1609, 1608, 1607, 1606, 1605, 1604, 1603, 1602, 1601, 1600, 1599, 1598, 1597, 1596, 1595, 1594, 1593, 1592, 1591, 1590, 1589, 1588, 1587, 1586, 1585, 1584, 1583, 1582, 1581, 1580, 1579, 1578, 1577, 1576, 1575, 1574, 1573, 1572, 1571, 1570, 1569, 1568, 1567, 1566, 1565, 1564, 1563, 1562, 1561, 1560, 1559, 1558, 1557, 1556, 1555, 1554, 1553, 1552, 1551, 1550, 1549, 1548, 1547, 1546, 1545, 1544, 1543, 1542, 1541, 1540, 1539, 1538, 1537, 1536, 1535, 1534, 1533, 1532, 1531, 1530, 1529, 1528, 1527, 1526, 1525, 1524, 1523, 1522, 1521, 1520, 1519, 1518, 1517, 1516, 1515, 1514, 1513, 1512, 1511, 1510, 1509, 1508, 1507, 1506, 1505, 1504, 1503, 1502, 1501, 1500, 1499, 1498, 1497, 1496, 1495, 1494, 1493, 1492, 1491, 1490, 1489, 1488, 1487, 1486, 1485, 1484, 1483, 1482, 1481, 1480, 1479, 1478, 1477, 1476, 1475, 1474, 1473, 1472, 1471, 1470, 1469, 1468, 1467, 1466, 1465, 1464, 1463, 1462, 1461, 1460, 1459, 1458, 1457, 1456, 1455, 1454, 1453, 1452, 1451, 1450, 1449, 1448, 1447, 1446, 1445, 1444, 1443, 1442, 1441, 1440, 1439, 1438, 1437, 1436, 1435, 1434, 1433, 1432, 1431, 1430, 1429, 1428, 1427, 1426, 1425, 1424, 1423, 1422, 1421, 1420, 1419, 1418, 1417, 1416, 1415, 1414, 1413, 1412, 1411, 1410, 1409, 1408, 1407, 1406, 1405, 1404, 1403, 1402, 1401, 1400, 1399, 1398, 1397, 1396, 1395, 1394, 1393, 1392, 1391, 1390, 1389, 1388, 1387, 1386, 1385, 1384, 1383, 1382, 1381, 1380, 1379, 1378, 1377, 1376, 1375, 1374, 1373, 1372, 1371, 1370, 1369, 1368, 1367, 1366, 1365, 1364, 1363, 1362, 1361, 1360, 1359, 1358, 1357, 1356, 1355, 1354, 1353, 1352, 1351, 1350, 1349, 1348, 1347, 1346, 1345, 1344, 1343, 1342, 1341, 1340, 1339, 1338, 1337, 1336, 1335, 1334, 1333, 1332, 1331, 1330, 1329, 1328, 1327, 1326, 1325, 1324, 1323, 1322, 1321, 1320, 1319, 1318, 1317, 1316, 1315, 1314, 1313, 1312, 1311, 1310, 1309, 1308, 1307, 1306, 1305, 1304, 1303, 1302, 1301, 1300, 1299, 1298, 1297, 1296, 1295, 1294, 1293, 1292, 1291, 1290, 1289, 1288, 1287, 1286, 1285, 1284, 1283, 1282, 1281, 1280, 1279, 1278, 1277, 1276, 1275, 1274, 1273, 1272, 1271, 1270, 1269, 1268, 1267, 1266, 1265, 1264, 1263, 1262, 1261, 1260, 1259, 1258, 1257, 1256, 1255, 1254, 1253, 1252, 1251, 1250, 1249, 1248, 1247, 1246, 1245, 1244, 1243, 1242, 1241, 1240, 1239, 1238, 1237, 1236, 1235, 1234, 1233, 1232, 1231, 1230, 1229, 1228, 1227, 1226, 1225, 1224, 1223, 1222, 1221, 1220, 1219, 1218, 1217, 1216, 1215, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1207, 1206, 1205, 1204, 1203, 1202, 1201, 1200, 1199, 1198, 1197, 1196, 1195, 1194, 1193, 1192, 1191, 1190, 1189, 1188, 1187, 1186, 1185, 1184, 1183, 1182, 1181, 1180, 1179, 1178, 1177, 1176, 1175, 1174, 1173, 1172, 1171, 1170, 1169, 1168, 1167, 1166, 1165, 1164, 1163, 1162, 1161, 1160, 1159, 1158, 1157, 1156, 1155, 1154, 1153, 1152, 1151, 1150, 1149, 1148, 1147, 1146, 1145, 1144, 1143, 1142, 1141, 1140, 1139, 1138, 1137, 1136, 1135, 1134, 1133, 1132, 1131, 1130, 1129, 1128, 1127, 1126, 1125, 1124, 1123, 1122, 1121, 1120, 1119, 1118, 1117, 1116, 1115, 1114, 1113, 1112, 1111, 1110, 1109, 1108, 1107, 1106, 1105, 1104, 1103, 1102, 1101, 1100, 1099, 1098, 1097, 1096, 1095, 1094, 1093, 1092, 1091, 1090, 1089, 1088, 1087, 1086, 1085, 1084, 1083, 1082, 1081, 1080, 1079, 1078, 1077, 1076, 1075, 1074, 1073, 1072, 1071, 1070, 1069, 1068, 1067, 1066, 1065, 1064, 1063, 1062, 1061, 1060, 1059, 1058, 1057, 1056, 1055, 1054, 1053, 1052, 1051, 1050, 1049, 1048, 1047, 1046, 1045, 1044, 1043, 1042, 1041, 1040, 1039, 1038, 1037, 1036, 1035, 1034, 1033, 1032, 1031, 1030, 1029, 1028, 1027, 1026, 1025, 1024, 1023, 1022, 1021, 1020, 1019, 1018, 1017, 1016, 1015, 1014, 1013, 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1005, 1004, 1003, 1002, 1001, 1000, 999, 998, 997, 996, 995, 994, 993, 992, 991, 990, 989, 988, 987, 986, 985, 984, 983, 982, 981, 980, 979, 978, 977, 976, 975, 974, 973, 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960, 959, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945, 944, 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928, 927, 926, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911, 910, 909, 908, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894, 893, 892, 891, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 879, 878, 877, 876, 875, 874, 873, 872, 871, 870, 869, 868, 867, 866, 865, 864, 863, 862, 861, 860, 859, 858, 857, 856, 855, 854, 853, 852, 851, 850, 849, 848, 847, 846, 845, 844, 843, 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, 824, 823, 822, 821, 820, 819, 818, 817, 816, 815, 814, 813, 812, 811, 810, 809, 808, 807, 806, 805, 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999998, 99.99999998, 99.99999998, 99.99999997, 99.99999997, 99.99999997, 99.99999996, 99.99999996, 99.99999995, 99.99999994, 99.99999993, 99.99999992, 99.99999991, 99.9999999, 99.99999989, 99.99999987, 99.99999985, 99.99999983, 99.9999998, 99.99999978, 99.99999974, 99.99999971, 99.99999967, 99.99999962, 99.99999957, 99.99999951, 99.99999944, 99.99999936, 99.99999927, 99.99999917, 99.99999906, 99.99999893, 99.99999878, 99.99999862, 99.99999843, 99.99999822, 99.99999798, 99.9999977, 99.9999974, 99.99999705, 99.99999666, 99.99999621, 99.99999571, 99.99999515, 99.99999451, 99.9999938, 99.99999299, 99.99999208, 99.99999106, 99.99998991, 99.99998861, 99.99998715, 99.99998552, 99.99998368, 99.99998161, 99.99997929, 99.99997669, 99.99997377, 99.9999705, 99.99996683, 99.99996272, 99.99995812, 99.99995297, 99.99994721, 99.99994077, 99.99993356, 99.99992551, 99.99991652, 99.99990648, 99.99989527, 99.99988276, 99.99986882, 99.99985328, 99.99983596, 99.99981666, 99.99979518, 99.99977128, 99.99974469, 99.99971512, 99.99968225, 99.99964573, 99.99960517, 99.99956014, 99.99951018, 99.99945475, 99.9993933, 99.99932519, 99.99924973, 99.99916616, 99.99907366, 99.99897131, 99.9988581, 99.99873294, 99.99859463, 99.99844183, 99.99827311, 99.99808689, 99.99788143, 99.99765483, 99.99740504, 99.99712979, 99.9968266, 99.99649279, 99.9961254, 99.99572125, 99.99527681, 99.99478829, 99.99425154, 99.99366204, 99.99301487, 99.99230468, 99.99152567, 99.99067153, 99.98973539, 99.98870981, 99.98758671, 99.98635735, 99.98501221, 99.98354103, 99.98193265, 99.98017502, 99.97825509, 99.97615877, 99.9738708, 99.97137471, 99.96865272, 99.96568563, 99.96245275, 99.95893174, 99.95509855, 99.95092728, 99.94639003, 99.94145679, 99.93609528, 99.93027081, 99.92394611, 99.91708117, 99.90963304, 99.90155566, 99.89279964, 99.88331209, 99.87303635, 99.86191179, 99.84987356, 99.83685232, 99.82277403, 99.80755959, 99.79112461, 99.77337909, 99.75422711, 99.73356651, 99.71128854, 99.6872775, 99.66141043, 99.63355667, 99.60357756, 99.57132596, 99.53664591, 99.49937222, 99.45933001, 99.41633435, 99.37018978, 99.32068993, 99.26761707, 99.21074167, 99.14982203, 99.08460381, 99.01481968, 98.94018889, 98.86041695, 98.77519522, 98.68420067, 98.58709553, 98.48352708, 98.37312744, 98.2555134, 98.13028635, 97.99703224, 97.85532161, 97.70470974, 97.54473683, 97.37492833, 97.19479533, 97.00383513, 96.80153184, 96.58735721, 96.36077154, 96.12122476, 95.86815767, 95.60100336, 95.31918876, 95.02213643, 94.7092665, 94.3799988, 94.03375518, 93.66996203, 93.288053, 92.88747187, 92.46767564, 92.02813772, 91.56835138, 91.08783324, 90.58612692, 90.06280681, 89.51748189, 88.94979956, 88.35944953, 87.74616768, 87.10973984, 86.45000545, 85.76686108, 85.06026381, 84.3302343, 83.57685959, 82.8002956, 82.00076927, 81.17858019, 80.3341019, 79.46778264, 78.58014553, 77.67178835, 76.74338259, 75.79567209, 74.82947095, 73.84566101, 72.84518866, 71.82906119, 70.79834259, 69.75414889, 68.69764304, 67.63002946, 66.55254825, 65.46646907, 64.37308494, 63.27370575, 62.16965188, 61.06224764, 59.9528149, 58.84266681, 57.73310169, 56.62539718, 55.52080472, 54.42054433, 53.3257998, 52.23771425, 51.15738623, 50.08586616, 49.02415336, 47.97319345, 46.93387632, 45.90703451, 44.89344205, 43.8938138, 42.90880516, 41.93901215, 40.98497193, 40.0471636, 39.12600932, 38.22187576, 37.33507568, 36.4658698, 35.61446888, 34.78103581, 33.96568799, 33.16849967, 32.38950439, 31.6286975, 30.88603863, 30.16145419, 29.45483989, 28.76606311, 28.09496536, 27.44136452, 26.80505717, 26.1858207, 25.58341542, 24.99758652, 24.42806597, 23.87457431, 23.3368223, 22.81451255, 22.30734096, 21.81499815, 21.33717065, 20.87354221, 20.42379479, 19.9876096, 19.56466806, 19.15465257, 18.75724731, 18.3721389, 17.99901707, 17.63757513, 17.28751052, 16.94852523, 16.62032616, 16.30262546, 15.99514081, 15.69759567, 15.40971945, 15.13124772, 14.86192231, 14.60149142, 14.34970968, 14.10633825, 13.87114476, 13.64390343, 13.42439497, 13.21240658, 13.00773192, 12.81017108, 12.61953047, 12.43562276, 12.25826682, 12.08728765, 11.92251621, 11.76378941, 11.61094996, 11.46384627, 11.32233238, 11.18626779, 11.0555174, 10.9299514, 10.80944513, 10.693879, 10.58313839, 10.47711349, 10.37569928, 10.27879536, 10.18630588, 10.09813945, 10.01420903, 9.93443184, 9.85872929, 9.78702688, 9.71925412, 9.65534447, 9.59523522, 9.53886748, 9.48618609, 9.43713953, 9.39167988, 9.3497628, 9.3113474, 9.27639627, 9.24487538, 9.21675409, 9.19200506, 9.17060424, 9.15253087, 9.13776741, 9.12629953, 9.11811612, 9.11320925, 9.11320925, 9.11811612, 9.12629953, 9.13776741, 9.15253087, 9.17060424, 9.19200506, 9.21675409, 9.24487538, 9.27639627, 9.3113474, 9.3497628, 9.39167988, 9.43713953, 9.48618609, 9.53886748, 9.59523522, 9.65534447, 9.71925412, 9.78702688, 9.85872929, 9.93443184, 10.01420903, 10.09813945, 10.18630588, 10.27879536, 10.37569928, 10.47711349, 10.58313839, 10.693879, 10.80944513, 10.9299514, 11.0555174, 11.18626779, 11.32233238, 11.46384627, 11.61094996, 11.76378941, 11.92251621, 12.08728765, 12.25826682, 12.43562276, 12.61953047, 12.81017108, 13.00773192, 13.21240658, 13.42439497, 13.64390343, 13.87114476, 14.10633825, 14.34970968, 14.60149142, 14.86192231, 15.13124772, 15.40971945, 15.69759567, 15.99514081, 16.30262546, 16.62032616, 16.94852523, 17.28751052, 17.63757513, 17.99901707, 18.3721389, 18.75724731, 19.15465257, 19.56466806, 19.9876096, 20.42379479, 20.87354221, 21.33717065, 21.81499815, 22.30734096, 22.81451255, 23.3368223, 23.87457431, 24.42806597, 24.99758652, 25.58341542, 26.1858207, 26.80505717, 27.44136452, 28.09496536, 28.76606311, 29.45483989, 30.16145419, 30.88603863, 31.6286975, 32.38950439, 33.16849967, 33.96568799, 34.78103581, 35.61446888, 36.4658698, 37.33507568, 38.22187576, 39.12600932, 40.0471636, 40.98497193, 41.93901215, 42.90880516, 43.8938138, 44.89344205, 45.90703451, 46.93387632, 47.97319345, 49.02415336, 50.08586616, 51.15738623, 52.23771425, 53.3257998, 54.42054433, 55.52080472, 56.62539718, 57.73310169, 58.84266681, 59.9528149, 61.06224764, 62.16965188, 63.27370575, 64.37308494, 65.46646907, 66.55254825, 67.63002946, 68.69764304, 69.75414889, 70.79834259, 71.82906119, 72.84518866, 73.84566101, 74.82947095, 75.79567209, 76.74338259, 77.67178835, 78.58014553, 79.46778264, 80.3341019, 81.17858019, 82.00076927, 82.8002956, 83.57685959, 84.3302343, 85.06026381, 85.76686108, 86.45000545, 87.10973984, 87.74616768, 88.35944953, 88.94979956, 89.51748189, 90.06280681, 90.58612692, 91.08783324, 91.56835138, 92.02813772, 92.46767564, 92.88747187, 93.288053, 93.66996203, 94.03375518, 94.3799988, 94.7092665, 95.02213643, 95.31918876, 95.60100336, 95.86815767, 96.12122476, 96.36077154, 96.58735721, 96.80153184, 97.00383513, 97.19479533, 97.37492833, 97.54473683, 97.70470974, 97.85532161, 97.99703224, 98.13028635, 98.2555134, 98.37312744, 98.48352708, 98.58709553, 98.68420067, 98.77519522, 98.86041695, 98.94018889, 99.01481968, 99.08460381, 99.14982203, 99.21074167, 99.26761707, 99.32068993, 99.37018978, 99.41633435, 99.45933001, 99.49937222, 99.53664591, 99.57132596, 99.60357756, 99.63355667, 99.66141043, 99.6872775, 99.71128854, 99.73356651, 99.75422711, 99.77337909, 99.79112461, 99.80755959, 99.82277403, 99.83685232, 99.84987356, 99.86191179, 99.87303635, 99.88331209, 99.89279964, 99.90155566, 99.90963304, 99.91708117, 99.92394611, 99.93027081, 99.93609528, 99.94145679, 99.94639003, 99.95092728, 99.95509855, 99.95893174, 99.96245275, 99.96568563, 99.96865272, 99.97137471, 99.9738708, 99.97615877, 99.97825509, 99.98017502, 99.98193265, 99.98354103, 99.98501221, 99.98635735, 99.98758671, 99.98870981, 99.98973539, 99.99067153, 99.99152567, 99.99230468, 99.99301487, 99.99366204, 99.99425154, 99.99478829, 99.99527681, 99.99572125, 99.9961254, 99.99649279, 99.9968266, 99.99712979, 99.99740504, 99.99765483, 99.99788143, 99.99808689, 99.99827311, 99.99844183, 99.99859463, 99.99873294, 99.9988581, 99.99897131, 99.99907366, 99.99916616, 99.99924973, 99.99932519, 99.9993933, 99.99945475, 99.99951018, 99.99956014, 99.99960517, 99.99964573, 99.99968225, 99.99971512, 99.99974469, 99.99977128, 99.99979518, 99.99981666, 99.99983596, 99.99985328, 99.99986882, 99.99988276, 99.99989527, 99.99990648, 99.99991652, 99.99992551, 99.99993356, 99.99994077, 99.99994721, 99.99995297, 99.99995812, 99.99996272, 99.99996683, 99.9999705, 99.99997377, 99.99997669, 99.99997929, 99.99998161, 99.99998368, 99.99998552, 99.99998715, 99.99998861, 99.99998991, 99.99999106, 99.99999208, 99.99999299, 99.9999938, 99.99999451, 99.99999515, 99.99999571, 99.99999621, 99.99999666, 99.99999705, 99.9999974, 99.9999977, 99.99999798, 99.99999822, 99.99999843, 99.99999862, 99.99999878, 99.99999893, 99.99999906, 99.99999917, 99.99999927, 99.99999936, 99.99999944, 99.99999951, 99.99999957, 99.99999962, 99.99999967, 99.99999971, 99.99999974, 99.99999978, 99.9999998, 99.99999983, 99.99999985, 99.99999987, 99.99999989, 99.9999999, 99.99999991, 99.99999992, 99.99999993, 99.99999994, 99.99999995, 99.99999996, 99.99999996, 99.99999997, 99.99999997, 99.99999997, 99.99999998, 99.99999998, 99.99999998, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999991, 99.99999991, 99.99999991, 99.99999991, 99.99999991, 99.9999999, 99.9999999, 99.9999999, 99.9999999, 99.99999989, 99.99999989, 99.99999989, 99.99999989, 99.99999988, 99.99999988, 99.99999988, 99.99999987, 99.99999987, 99.99999987, 99.99999987, 99.99999986, 99.99999986, 99.99999986, 99.99999985, 99.99999985, 99.99999985, 99.99999984, 99.99999984, 99.99999983, 99.99999983, 99.99999983, 99.99999982, 99.99999982, 99.99999981, 99.99999981, 99.9999998, 99.9999998, 99.9999998, 99.99999979, 99.99999979, 99.99999978, 99.99999978, 99.99999977, 99.99999976, 99.99999976, 99.99999975, 99.99999975, 99.99999974, 99.99999974, 99.99999973, 99.99999972, 99.99999972, 99.99999971, 99.9999997, 99.9999997, 99.99999969, 99.99999968, 99.99999968, 99.99999967, 99.99999966, 99.99999965, 99.99999964, 99.99999964, 99.99999963, 99.99999962, 99.99999961, 99.9999996, 99.99999959, 99.99999958, 99.99999957, 99.99999956, 99.99999955, 99.99999954, 99.99999953, 99.99999952, 99.99999951, 99.9999995, 99.99999949, 99.99999948, 99.99999946, 99.99999945, 99.99999944, 99.99999943, 99.99999941, 99.9999994, 99.99999938, 99.99999937, 99.99999936, 99.99999934, 99.99999933, 99.99999931, 99.9999993, 99.99999928, 99.99999926, 99.99999925, 99.99999923, 99.99999921, 99.99999919, 99.99999918, 99.99999916, 99.99999914, 99.99999912, 99.9999991, 99.99999908, 99.99999906, 99.99999904, 99.99999901, 99.99999899, 99.99999897, 99.99999895, 99.99999892, 99.9999989, 99.99999887, 99.99999885, 99.99999882, 99.9999988, 99.99999877, 99.99999874, 99.99999871, 99.99999868, 99.99999866, 99.99999863, 99.99999859, 99.99999856, 99.99999853, 99.9999985, 99.99999846, 99.99999843, 99.9999984, 99.99999836, 99.99999832, 99.99999829, 99.99999825, 99.99999821, 99.99999817, 99.99999813, 99.99999809, 99.99999805, 99.999998, 99.99999796, 99.99999791, 99.99999787, 99.99999782, 99.99999777, 99.99999772, 99.99999767, 99.99999762, 99.99999757, 99.99999752, 99.99999746, 99.99999741, 99.99999735, 99.99999729, 99.99999723, 99.99999717, 99.99999711, 99.99999705, 99.99999698, 99.99999692, 99.99999685, 99.99999678, 99.99999671, 99.99999664, 99.99999657, 99.99999649, 99.99999641, 99.99999634, 99.99999626, 99.99999618, 99.99999609, 99.99999601, 99.99999592, 99.99999583, 99.99999574, 99.99999565, 99.99999556, 99.99999546, 99.99999537, 99.99999527, 99.99999516, 99.99999506, 99.99999495, 99.99999485, 99.99999473, 99.99999462, 99.99999451, 99.99999439, 99.99999427, 99.99999415, 99.99999402, 99.99999389, 99.99999376, 99.99999363, 99.99999349, 99.99999336, 99.99999321, 99.99999307, 99.99999292, 99.99999277, 99.99999262, 99.99999246, 99.9999923, 99.99999214, 99.99999197, 99.9999918, 99.99999163, 99.99999145, 99.99999127, 99.99999109, 99.9999909, 99.99999071, 99.99999051, 99.99999031, 99.99999011, 99.9999899, 99.99998969, 99.99998947, 99.99998925, 99.99998903, 99.9999888, 99.99998856, 99.99998833, 99.99998808, 99.99998783, 99.99998758, 99.99998732, 99.99998705, 99.99998679, 99.99998651, 99.99998623, 99.99998594, 99.99998565, 99.99998535, 99.99998505, 99.99998474, 99.99998442, 99.9999841, 99.99998377, 99.99998344, 99.9999831, 99.99998275, 99.99998239, 99.99998203, 99.99998166, 99.99998128, 99.99998089, 99.9999805, 99.9999801, 99.99997969, 99.99997928, 99.99997885, 99.99997842, 99.99997798, 99.99997753, 99.99997707, 99.9999766, 99.99997612, 99.99997563, 99.99997514, 99.99997463, 99.99997411, 99.99997359, 99.99997305, 99.9999725, 99.99997195, 99.99997138, 99.9999708, 99.99997021, 99.9999696, 99.99996899, 99.99996836, 99.99996772, 99.99996707, 99.99996641, 99.99996573, 99.99996504, 99.99996434, 99.99996362, 99.99996289, 99.99996214, 99.99996138, 99.99996061, 99.99995982, 99.99995901, 99.99995819, 99.99995736, 99.9999565, 99.99995564, 99.99995475, 99.99995385, 99.99995293, 99.99995199, 99.99995104, 99.99995006, 99.99994907, 99.99994806, 99.99994703, 99.99994598, 99.99994491, 99.99994382, 99.99994271, 99.99994157, 99.99994042, 99.99993924, 99.99993805, 99.99993683, 99.99993558, 99.99993431, 99.99993302, 99.9999317, 99.99993036, 99.999929, 99.9999276, 99.99992619, 99.99992474, 99.99992327, 99.99992177, 99.99992024, 99.99991868, 99.99991709, 99.99991548, 99.99991383, 99.99991215, 99.99991045, 99.9999087, 99.99990693, 99.99990513, 99.99990328, 99.99990141, 99.9998995, 99.99989756, 99.99989557, 99.99989356, 99.9998915, 99.99988941, 99.99988728, 99.9998851, 99.99988289, 99.99988064, 99.99987834, 99.99987601, 99.99987363, 99.9998712, 99.99986873, 99.99986622, 99.99986366, 99.99986105, 99.9998584, 99.99985569, 99.99985294, 99.99985014, 99.99984728, 99.99984437, 99.99984141, 99.9998384, 99.99983533, 99.9998322, 99.99982902, 99.99982578, 99.99982248, 99.99981912, 99.9998157, 99.99981222, 99.99980867, 99.99980506, 99.99980139, 99.99979765, 99.99979384, 99.99978996, 99.99978601, 99.99978199, 99.9997779, 99.99977374, 99.9997695, 99.99976518, 99.99976079, 99.99975631, 99.99975176, 99.99974713, 99.99974241, 99.99973761, 99.99973272, 99.99972775, 99.99972269, 99.99971753, 99.99971229, 99.99970695, 99.99970152, 99.99969599, 99.99969036, 99.99968464, 99.99967881, 99.99967288, 99.99966684, 99.9996607, 99.99965445, 99.99964808, 99.99964161, 99.99963502, 99.99962832, 99.9996215, 99.99961456, 99.9996075, 99.99960031, 99.999593, 99.99958556, 99.99957799, 99.99957028, 99.99956245, 99.99955447, 99.99954636, 99.9995381, 99.99952971, 99.99952116, 99.99951247, 99.99950363, 99.99949463, 99.99948548, 99.99947617, 99.9994667, 99.99945706, 99.99944726, 99.99943729, 99.99942715, 99.99941683, 99.99940634, 99.99939566, 99.9993848, 99.99937376, 99.99936253, 99.9993511, 99.99933948, 99.99932766, 99.99931564, 99.99930341, 99.99929097, 99.99927833, 99.99926546, 99.99925238, 99.99923908, 99.99922555, 99.99921179, 99.99919779, 99.99918356, 99.99916909, 99.99915438, 99.99913941, 99.9991242, 99.99910873, 99.99909299, 99.99907699, 99.99906073, 99.99904419, 99.99902737, 99.99901027, 99.99899288, 99.9989752, 99.99895723, 99.99893896, 99.99892038, 99.99890149, 99.99888229, 99.99886276, 99.99884292, 99.99882274, 99.99880222, 99.99878137, 99.99876017, 99.99873862, 99.99871672, 99.99869445, 99.99867181, 99.9986488, 99.99862541, 99.99860164, 99.99857747, 99.99855291, 99.99852794, 99.99850256, 99.99847677, 99.99845056, 99.99842391, 99.99839683, 99.99836931, 99.99834134, 99.99831291, 99.99828402, 99.99825466, 99.99822482, 99.9981945, 99.99816369, 99.99813237, 99.99810055, 99.99806821, 99.99803535, 99.99800196, 99.99796803, 99.99793355, 99.99789852, 99.99786292, 99.99782675, 99.99779, 99.99775266, 99.99771472, 99.99767617, 99.99763701, 99.99759722, 99.99755679, 99.99751572, 99.997474, 99.9974316, 99.99738854, 99.99734479, 99.99730034, 99.99725519, 99.99720932, 99.99716273, 99.9971154, 99.99706732, 99.99701848, 99.99696887, 99.99691847, 99.99686729, 99.99681529, 99.99676248, 99.99670884, 99.99665436, 99.99659903, 99.99654283, 99.99648575, 99.99642777, 99.99636889, 99.9963091, 99.99624837, 99.99618669, 99.99612406, 99.99606045, 99.99599585, 99.99593026, 99.99586364, 99.995796, 99.9957273, 99.99565755, 99.99558672, 99.9955148, 99.99544177, 99.99536761, 99.99529232, 99.99521586, 99.99513824, 99.99505942, 99.9949794, 99.99489815, 99.99481566, 99.99473191, 99.99464689, 99.99456057, 99.99447293, 99.99438396, 99.99429364, 99.99420194, 99.99410886, 99.99401436, 99.99391844, 99.99382106, 99.99372222, 99.99362188, 99.99352003, 99.99341664, 99.9933117, 99.99320519, 99.99309707, 99.99298733, 99.99287595, 99.9927629, 99.99264816, 99.9925317, 99.99241351, 99.99229355, 99.99217181, 99.99204825, 99.99192286, 99.99179561, 99.99166647, 99.99153541, 99.99140242, 99.99126745, 99.9911305, 99.99099152, 99.99085049, 99.99070739, 99.99056218, 99.99041484, 99.99026533, 99.99011363, 99.9899597, 99.98980353, 99.98964507, 99.98948429, 99.98932117, 99.98915567, 99.98898776, 99.98881741, 99.98864458, 99.98846924, 99.98829136, 99.9881109, 99.98792783, 99.98774212, 99.98755372, 99.9873626, 99.98716873, 99.98697207, 99.98677258, 99.98657023, 99.98636497, 99.98615677, 99.98594559, 99.98573138, 99.98551412, 99.98529375, 99.98507024, 99.98484355, 99.98461363, 99.98438044, 99.98414394, 99.98390409, 99.98366084, 99.98341414, 99.98316396, 99.98291025, 99.98265295, 99.98239203, 99.98212744, 99.98185912, 99.98158704, 99.98131113, 99.98103136, 99.98074768, 99.98046002, 99.98016835, 99.9798726, 99.97957274, 99.97926869, 99.97896042, 99.97864786, 99.97833097, 99.97800968, 99.97768394, 99.9773537, 99.97701889, 99.97667946, 99.97633535, 99.9759865, 99.97563285, 99.97527434, 99.97491091, 99.97454249, 99.97416903, 99.97379046, 99.97340672, 99.97301773, 99.97262344, 99.97222379, 99.97181869, 99.97140809, 99.97099191, 99.9705701, 99.97014257, 99.96970925, 99.96927008, 99.96882498, 99.96837388, 99.9679167, 99.96745337, 99.96698382, 99.96650797, 99.96602573, 99.96553704, 99.96504181, 99.96453997, 99.96403142, 99.9635161, 99.96299392, 99.96246479, 99.96192863, 99.96138536, 99.96083489, 99.96027713, 99.959712, 99.9591394, 99.95855925, 99.95797145, 99.95737592, 99.95677256, 99.95616128, 99.95554198, 99.95491456, 99.95427894, 99.95363501, 99.95298268, 99.95232184, 99.9516524, 99.95097424, 99.95028728, 99.9495914, 99.9488865, 99.94817248, 99.94744923, 99.94671663, 99.94597459, 99.94522298, 99.9444617, 99.94369064, 99.94290968, 99.9421187, 99.9413176, 99.94050625, 99.93968453, 99.93885233, 99.93800952, 99.93715599, 99.9362916, 99.93541623, 99.93452977, 99.93363207, 99.93272302, 99.93180248, 99.93087032, 99.92992641, 99.92897062, 99.92800281, 99.92702285, 99.92603059, 99.92502591, 99.92400865, 99.92297868, 99.92193586, 99.92088004, 99.91981107, 99.91872881, 99.91763311, 99.91652383, 99.9154008, 99.91426387, 99.9131129, 99.91194772, 99.91076819, 99.90957413, 99.9083654, 99.90714182, 99.90590324, 99.90464949, 99.90338041, 99.90209582, 99.90079556, 99.89947946, 99.89814735, 99.89679904, 99.89543437, 99.89405316, 99.89265523, 99.8912404, 99.88980848, 99.8883593, 99.88689266, 99.88540838, 99.88390628, 99.88238616, 99.88084782, 99.87929108, 99.87771574, 99.8761216, 99.87450846, 99.87287613, 99.87122439, 99.86955305, 99.8678619, 99.86615072, 99.86441932, 99.86266747, 99.86089497, 99.85910159, 99.85728713, 99.85545136, 99.85359406, 99.85171501, 99.84981398, 99.84789075, 99.84594509, 99.84397676, 99.84198553, 99.83997118, 99.83793346, 99.83587213, 99.83378695, 99.83167769, 99.82954409, 99.82738591, 99.8252029, 99.82299481, 99.82076139, 99.81850238, 99.81621752, 99.81390656, 99.81156923, 99.80920527, 99.80681442, 99.8043964, 99.80195095, 99.7994778, 99.79697667, 99.79444728, 99.79188936, 99.78930263, 99.7866868, 99.78404158, 99.7813667, 99.77866185, 99.77592675, 99.77316111, 99.77036462, 99.76753699, 99.76467792, 99.7617871, 99.75886423, 99.755909, 99.7529211, 99.74990022, 99.74684603, 99.74375823, 99.7406365, 99.7374805, 99.73428992, 99.73106444, 99.72780371, 99.72450741, 99.7211752, 99.71780675, 99.71440172, 99.71095976, 99.70748054, 99.70396369, 99.70040889, 99.69681577, 99.69318397, 99.68951315, 99.68580295, 99.68205299, 99.67826292, 99.67443238, 99.67056098, 99.66664836, 99.66269415, 99.65869796, 99.65465942, 99.65057814, 99.64645375, 99.64228584, 99.63807404, 99.63381795, 99.62951717, 99.62517131, 99.62077996, 99.61634273, 99.6118592, 99.60732897, 99.60275162, 99.59812675, 99.59345393, 99.58873274, 99.58396278, 99.5791436, 99.57427478, 99.56935589, 99.5643865, 99.55936618, 99.55429448, 99.54917097, 99.54399519, 99.53876671, 99.53348508, 99.52814984, 99.52276054, 99.51731672, 99.51181792, 99.50626369, 99.50065354, 99.49498702, 99.48926366, 99.48348298, 99.4776445, 99.47174775, 99.46579224, 99.45977749, 99.45370302, 99.44756832, 99.44137291, 99.4351163, 99.42879798, 99.42241746, 99.41597423, 99.40946778, 99.4028976, 99.39626319, 99.38956403, 99.3827996, 99.37596937, 99.36907284, 99.36210947, 99.35507873, 99.3479801, 99.34081303, 99.333577, 99.32627146, 99.31889587, 99.3114497, 99.30393238, 99.29634338, 99.28868213, 99.28094809, 99.27314069, 99.26525938, 99.2573036, 99.24927277, 99.24116633, 99.23298371, 99.22472433, 99.21638763, 99.20797301, 99.19947991, 99.19090773, 99.18225589, 99.17352381, 99.16471088, 99.15581652, 99.14684014, 99.13778112, 99.12863888, 99.1194128, 99.11010229, 99.10070673, 99.09122551, 99.08165803, 99.07200365, 99.06226178, 99.05243177, 99.04251303, 99.03250491, 99.02240679, 99.01221805, 99.00193804, 98.99156615, 98.98110172, 98.97054413, 98.95989273, 98.94914687, 98.93830593, 98.92736924, 98.91633616, 98.90520604, 98.89397822, 98.88265206, 98.87122689, 98.85970205, 98.84807689, 98.83635074, 98.82452293, 98.81259281, 98.8005597, 98.78842292, 98.77618182, 98.76383572, 98.75138393, 98.73882579, 98.72616061, 98.71338772, 98.70050643, 98.68751605, 98.67441592, 98.66120532, 98.64788359, 98.63445003, 98.62090395, 98.60724465, 98.59347144, 98.57958364, 98.56558053, 98.55146143, 98.53722563, 98.52287244, 98.50840116, 98.49381108, 98.4791015, 98.46427171, 98.44932102, 98.43424871, 98.41905407, 98.40373641, 98.38829501, 98.37272917, 98.35703816, 98.34122129, 98.32527784, 98.3092071, 98.29300836, 98.2766809, 98.26022401, 98.24363698, 98.2269191, 98.21006964, 98.19308789, 98.17597315, 98.15872469, 98.1413418, 98.12382376, 98.10616986, 98.08837939, 98.07045162, 98.05238585, 98.03418136, 98.01583743, 97.99735335, 97.97872841, 97.9599619, 97.94105309, 97.92200128, 97.90280575, 97.88346581, 97.86398072, 97.84434979, 97.8245723, 97.80464756, 97.78457484, 97.76435344, 97.74398266, 97.7234618, 97.70279015, 97.68196701, 97.66099168, 97.63986345, 97.61858164, 97.59714555, 97.57555447, 97.55380773, 97.53190462, 97.50984445, 97.48762655, 97.46525022, 97.44271478, 97.42001954, 97.39716383, 97.37414697, 97.35096828, 97.32762708, 97.30412272, 97.28045451, 97.2566218, 97.23262391, 97.20846019, 97.18412998, 97.15963262, 97.13496746, 97.11013385, 97.08513114, 97.05995869, 97.03461585, 97.00910199, 96.98341648, 96.95755868, 96.93152796, 96.9053237, 96.87894528, 96.85239208, 96.82566349, 96.7987589, 96.7716777, 96.74441929, 96.71698306, 96.68936844, 96.66157482, 96.63360162, 96.60544826, 96.57711417, 96.54859876, 96.51990148, 96.49102175, 96.46195902, 96.43271273, 96.40328234, 96.3736673, 96.34386707, 96.31388112, 96.28370891, 96.25334993, 96.22280365, 96.19206956, 96.16114716, 96.13003593, 96.09873539, 96.06724504, 96.0355644, 96.00369298, 95.97163032, 95.93937594, 95.90692939, 95.87429021, 95.84145795, 95.80843216, 95.77521241, 95.74179827, 95.70818932, 95.67438514, 95.64038531, 95.60618945, 95.57179714, 95.537208, 95.50242164, 95.4674377, 95.4322558, 95.39687558, 95.36129669, 95.32551878, 95.28954151, 95.25336454, 95.21698757, 95.18041026, 95.14363232, 95.10665343, 95.06947331, 95.03209168, 94.99450825, 94.95672276, 94.91873494, 94.88054454, 94.84215133, 94.80355506, 94.76475551, 94.72575246, 94.6865457, 94.64713502, 94.60752024, 94.56770117, 94.52767764, 94.48744948, 94.44701654, 94.40637866, 94.36553571, 94.32448756, 94.28323408, 94.24177518, 94.20011074, 94.15824068, 94.11616491, 94.07388336, 94.03139597, 93.98870268, 93.94580345, 93.90269825, 93.85938705, 93.81586984, 93.77214661, 93.72821738, 93.68408215, 93.63974096, 93.59519384, 93.55044083, 93.505482, 93.46031741, 93.41494714, 93.36937128, 93.32358993, 93.2776032, 93.2314112, 93.18501407, 93.13841196, 93.091605, 93.04459337, 92.99737724, 92.9499568, 92.90233223, 92.85450376, 92.80647158, 92.75823595, 92.70979708, 92.66115524, 92.61231068, 92.56326368, 92.51401453, 92.46456352, 92.41491095, 92.36505715, 92.31500244, 92.26474716, 92.21429167, 92.16363634, 92.11278152, 92.06172762, 92.01047503, 91.95902416, 91.90737542, 91.85552926, 91.80348611, 91.75124644, 91.6988107, 91.64617938, 91.59335297, 91.54033197, 91.48711688, 91.43370825, 91.3801066, 91.32631248, 91.27232645, 91.21814908, 91.16378096, 91.10922268, 91.05447485, 90.99953808, 90.94441301, 90.88910027, 90.83360052, 90.77791442, 90.72204266, 90.66598591, 90.60974488, 90.55332027, 90.49671281, 90.43992324, 90.38295229, 90.32580074, 90.26846933, 90.21095886, 90.15327012, 90.0954039, 90.03736103, 89.97914233, 89.92074863, 89.86218079, 89.80343966, 89.74452612, 89.68544105, 89.62618533, 89.56675988, 89.50716562, 89.44740346, 89.38747435, 89.32737923, 89.26711907, 89.20669484, 89.14610751, 89.08535809, 89.02444758, 88.96337698, 88.90214733, 88.84075966, 88.77921502, 88.71751447, 88.65565907, 88.5936499, 88.53148805, 88.46917463, 88.40671073, 88.34409748, 88.28133601, 88.21842746, 88.15537298, 88.09217373, 88.02883088, 87.96534561, 87.90171911, 87.83795259, 87.77404724, 87.71000429, 87.64582498, 87.58151053, 87.51706219, 87.45248123, 87.38776891, 87.3229265, 87.2579553, 87.19285658, 87.12763167, 87.06228186, 86.99680848, 86.93121286, 86.86549635, 86.79966027, 86.733706, 86.66763489, 86.60144831, 86.53514766, 86.46873431, 86.40220966, 86.33557512, 86.2688321, 86.20198203, 86.13502632, 86.06796642, 86.00080377, 85.93353981, 85.86617602, 85.79871386, 85.73115479, 85.6635003, 85.59575187, 85.52791101, 85.45997921, 85.39195797, 85.32384882, 85.25565327, 85.18737285, 85.1190091, 85.05056356, 84.98203776, 84.91343327, 84.84475164, 84.77599443, 84.70716322, 84.63825958, 84.56928508, 84.50024133, 84.43112991, 84.36195241, 84.29271043, 84.2234056, 84.15403951, 84.08461378, 84.01513003, 83.9455899, 83.87599501, 83.80634699, 83.73664749, 83.66689815, 83.59710062, 83.52725654, 83.45736757, 83.38743538, 83.31746162, 83.24744796, 83.17739608, 83.10730763, 83.03718431, 82.96702778, 82.89683974, 82.82662186, 82.75637583, 82.68610335, 82.61580612, 82.54548581, 82.47514414, 82.4047828, 82.33440349, 82.26400792, 82.1935978, 82.12317484, 82.05274074, 81.98229721, 81.91184598, 81.84138875, 81.77092723, 81.70046316, 81.62999823, 81.55953419, 81.48907273, 81.41861559, 81.34816448, 81.27772113, 81.20728726, 81.13686459, 81.06645484, 80.99605974, 80.925681, 80.85532036, 80.78497953, 80.71466024, 80.6443642, 80.57409314, 80.50384877, 80.43363282, 80.363447, 80.29329303, 80.22317263, 80.15308751, 80.08303938, 80.01302995, 79.94306093, 79.87313403, 79.80325095, 79.73341339, 79.66362306, 79.59388166, 79.52419086, 79.45455237, 79.38496787, 79.31543905, 79.24596758, 79.17655515, 79.10720341, 79.03791405, 78.96868871, 78.89952906, 78.83043674, 78.76141339, 78.69246066, 78.62358017, 78.55477355, 78.4860424, 78.41738832, 78.34881293, 78.28031779, 78.21190447, 78.14357455, 78.07532956, 78.00717104, 77.93910051, 77.87111946, 77.80322938, 77.73543173, 77.66772796, 77.60011948, 77.53260769, 77.46519396, 77.39787963, 77.330666, 77.26355435, 77.19654593, 77.12964192, 77.06284348, 76.99615172, 76.92956769, 76.8630924, 76.79672679, 76.73047173, 76.66432803, 76.59829642, 76.53237754, 76.46657194, 76.4008801, 76.33530235, 76.26983893, 76.20448996, 76.13925541, 76.07413511, 76.00912875, 75.94423581, 75.87945561, 75.81478728, 75.7502297, 75.68578155, 75.62144124, 75.55720689, 75.49307637, 75.42904719, 75.36511653, 75.3012812, 75.23753762, 75.17388176, 75.11030914, 75.04681477, 74.98339314, 74.92003816, 74.85674309, 74.79350057, 74.73030249, 74.66713997, 74.60400333, 74.540882, 74.47776444, 74.41463812, 74.35148941, 74.28830354, 74.22506446, 74.16175483, 74.09835587, 74.03484729, 73.97120719, 73.90741195, 73.8434361, 73.77925225, 73.71483089, 73.65014034, 73.58514653, 73.51981293, 73.45410035, 73.38796679, 73.32136727, 73.25425367, 73.18657453, 73.11827487, 73.04929597, 72.9795752, 72.90904578, 72.83763654, 72.76527173, 72.69187076, 72.61734795, 72.54161229, 72.46456718, 72.38611014, 72.30613259, 72.22451952, 72.14114924, 72.0558931, 71.96861519, 71.87917208, 71.78741251, 71.69317712, 71.59629817, 71.49659928, 71.39389516, 71.28799137, 71.17868406, 71.06575979, 70.94899529, 70.8281573, 70.70300245, 70.5732771, 70.43871729, 70.29904869, 70.15398662, 70.00323611, 69.84649197, 69.68343905, 69.51375241, 69.33709767, 69.15313144, 68.96150175, 68.76184866, 68.55380495, 68.33699687, 68.11104506, 67.87556552, 67.63017079, 67.37447115, 67.108076, 66.83059541, 66.54164167, 66.24083112, 65.927786, 65.60213648, 65.26352275, 64.9115973, 64.54602724, 64.1664967, 63.7727094, 63.36439113, 62.94129244, 62.50319117, 62.04989518, 61.58124487, 61.09711574, 60.59742087, 60.08211327, 59.55118807, 59.00468457, 58.44268807, 57.86533147, 57.2727966, 56.66531526, 56.04316995, 55.40669426, 54.75627285, 54.09234116, 53.41538464, 52.72593761, 52.02458176, 51.31194422, 50.58869527, 49.85554569, 49.11324377, 48.36257197, 47.60434334, 46.83939767, 46.06859742, 45.2928235, 44.5129709, 43.72994426, 42.94465341, 42.15800892, 41.37091769, 40.58427864, 39.79897863, 39.01588841, 38.23585894, 37.45971786, 36.68826624, 35.92227571, 35.16248577, 34.40960153, 33.66429173, 32.92718712, 32.19887914, 31.47991891, 30.77081664, 30.07204118, 29.38402, 28.70713935, 28.04174473, 27.3881415, 26.74659582, 26.11733567, 25.50055205, 24.89640039, 24.30500195, 23.72644543, 23.16078862, 22.60806004, 22.06826073, 21.54136594, 21.02732695, 20.52607276, 20.03751188, 19.56153396, 19.0980115, 18.64680141, 18.20774662, 17.78067751, 17.36541341, 16.96176387, 16.56953004, 16.18850584, 15.81847911, 15.4592327, 15.11054546, 14.77219318, 14.44394947, 14.12558652, 13.81687589, 13.51758912, 13.2274984, 12.94637708, 12.67400021, 12.41014498, 12.15459109, 11.90712118, 11.66752109, 11.43558015, 11.21109144, 10.99385199, 10.78366295, 10.58032974, 10.38366217, 10.19347455, 10.00958577, 9.83181933, 9.66000339, 9.4939708, 9.3335591, 9.17861051, 9.02897193, 8.88449487, 8.74503547, 8.61045441, 8.48061686, 8.35539245, 8.23465518, 8.11828338, 8.00615958, 7.89817053, 7.79420702, 7.69416389, 7.59793988, 7.50543762, 7.41656347, 7.33122753, 7.24934348, 7.17082856, 7.09560343, 7.02359218, 6.95472219, 6.88892405, 6.82613154, 6.76628153, 6.70931391, 6.65517154, 6.60380017, 6.55514839, 6.50916758, 6.46581183, 6.42503792, 6.38680523, 6.35107575, 6.31781397, 6.28698687, 6.2585639, 6.2325169, 6.20882009, 6.18745005, 6.16838567, 6.15160812, 6.13710087, 6.12484959, 6.11484224, 6.10706893, 6.10152203, 6.09819607, 6.09819607, 6.10152203, 6.10706893, 6.11484224, 6.12484959, 6.13710087, 6.15160812, 6.16838567, 6.18745005, 6.20882009, 6.2325169, 6.2585639, 6.28698687, 6.31781397, 6.35107575, 6.38680523, 6.42503792, 6.46581183, 6.50916758, 6.55514839, 6.60380017, 6.65517154, 6.70931391, 6.76628153, 6.82613154, 6.88892405, 6.95472219, 7.02359218, 7.09560343, 7.17082856, 7.24934348, 7.33122753, 7.41656347, 7.50543762, 7.59793988, 7.69416389, 7.79420702, 7.89817053, 8.00615958, 8.11828338, 8.23465518, 8.35539245, 8.48061686, 8.61045441, 8.74503547, 8.88449487, 9.02897193, 9.17861051, 9.3335591, 9.4939708, 9.66000339, 9.83181933, 10.00958577, 10.19347455, 10.38366217, 10.58032974, 10.78366295, 10.99385199, 11.21109144, 11.43558015, 11.66752109, 11.90712118, 12.15459109, 12.41014498, 12.67400021, 12.94637708, 13.2274984, 13.51758912, 13.81687589, 14.12558652, 14.44394947, 14.77219318, 15.11054546, 15.4592327, 15.81847911, 16.18850584, 16.56953004, 16.96176387, 17.36541341, 17.78067751, 18.20774662, 18.64680141, 19.0980115, 19.56153396, 20.03751188, 20.52607276, 21.02732695, 21.54136594, 22.06826073, 22.60806004, 23.16078862, 23.72644543, 24.30500195, 24.89640039, 25.50055205, 26.11733567, 26.74659582, 27.3881415, 28.04174473, 28.70713935, 29.38402, 30.07204118, 30.77081664, 31.47991891, 32.19887914, 32.92718712, 33.66429173, 34.40960153, 35.16248577, 35.92227571, 36.68826624, 37.45971786, 38.23585894, 39.01588841, 39.79897863, 40.58427864, 41.37091769, 42.15800892, 42.94465341, 43.72994426, 44.5129709, 45.2928235, 46.06859742, 46.83939767, 47.60434334, 48.36257197, 49.11324377, 49.85554569, 50.58869527, 51.31194422, 52.02458176, 52.72593761, 53.41538464, 54.09234116, 54.75627285, 55.40669426, 56.04316995, 56.66531526, 57.2727966, 57.86533147, 58.44268807, 59.00468457, 59.55118807, 60.08211327, 60.59742087, 61.09711574, 61.58124487, 62.04989518, 62.50319117, 62.94129244, 63.36439113, 63.7727094, 64.1664967, 64.54602724, 64.9115973, 65.26352275, 65.60213648, 65.927786, 66.24083112, 66.54164167, 66.83059541, 67.108076, 67.37447115, 67.63017079, 67.87556552, 68.11104506, 68.33699687, 68.55380495, 68.76184866, 68.96150175, 69.15313144, 69.33709767, 69.51375241, 69.68343905, 69.84649197, 70.00323611, 70.15398662, 70.29904869, 70.43871729, 70.5732771, 70.70300245, 70.8281573, 70.94899529, 71.06575979, 71.17868406, 71.28799137, 71.39389516, 71.49659928, 71.59629817, 71.69317712, 71.78741251, 71.87917208, 71.96861519, 72.0558931, 72.14114924, 72.22451952, 72.30613259, 72.38611014, 72.46456718, 72.54161229, 72.61734795, 72.69187076, 72.76527173, 72.83763654, 72.90904578, 72.9795752, 73.04929597, 73.11827487, 73.18657453, 73.25425367, 73.32136727, 73.38796679, 73.45410035, 73.51981293, 73.58514653, 73.65014034, 73.71483089, 73.77925225, 73.8434361, 73.90741195, 73.97120719, 74.03484729, 74.09835587, 74.16175483, 74.22506446, 74.28830354, 74.35148941, 74.41463812, 74.47776444, 74.540882, 74.60400333, 74.66713997, 74.73030249, 74.79350057, 74.85674309, 74.92003816, 74.98339314, 75.04681477, 75.11030914, 75.17388176, 75.23753762, 75.3012812, 75.36511653, 75.42904719, 75.49307637, 75.55720689, 75.62144124, 75.68578155, 75.7502297, 75.81478728, 75.87945561, 75.94423581, 76.00912875, 76.07413511, 76.13925541, 76.20448996, 76.26983893, 76.33530235, 76.4008801, 76.46657194, 76.53237754, 76.59829642, 76.66432803, 76.73047173, 76.79672679, 76.8630924, 76.92956769, 76.99615172, 77.06284348, 77.12964192, 77.19654593, 77.26355435, 77.330666, 77.39787963, 77.46519396, 77.53260769, 77.60011948, 77.66772796, 77.73543173, 77.80322938, 77.87111946, 77.93910051, 78.00717104, 78.07532956, 78.14357455, 78.21190447, 78.28031779, 78.34881293, 78.41738832, 78.4860424, 78.55477355, 78.62358017, 78.69246066, 78.76141339, 78.83043674, 78.89952906, 78.96868871, 79.03791405, 79.10720341, 79.17655515, 79.24596758, 79.31543905, 79.38496787, 79.45455237, 79.52419086, 79.59388166, 79.66362306, 79.73341339, 79.80325095, 79.87313403, 79.94306093, 80.01302995, 80.08303938, 80.15308751, 80.22317263, 80.29329303, 80.363447, 80.43363282, 80.50384877, 80.57409314, 80.6443642, 80.71466024, 80.78497953, 80.85532036, 80.925681, 80.99605974, 81.06645484, 81.13686459, 81.20728726, 81.27772113, 81.34816448, 81.41861559, 81.48907273, 81.55953419, 81.62999823, 81.70046316, 81.77092723, 81.84138875, 81.91184598, 81.98229721, 82.05274074, 82.12317484, 82.1935978, 82.26400792, 82.33440349, 82.4047828, 82.47514414, 82.54548581, 82.61580612, 82.68610335, 82.75637583, 82.82662186, 82.89683974, 82.96702778, 83.03718431, 83.10730763, 83.17739608, 83.24744796, 83.31746162, 83.38743538, 83.45736757, 83.52725654, 83.59710062, 83.66689815, 83.73664749, 83.80634699, 83.87599501, 83.9455899, 84.01513003, 84.08461378, 84.15403951, 84.2234056, 84.29271043, 84.36195241, 84.43112991, 84.50024133, 84.56928508, 84.63825958, 84.70716322, 84.77599443, 84.84475164, 84.91343327, 84.98203776, 85.05056356, 85.1190091, 85.18737285, 85.25565327, 85.32384882, 85.39195797, 85.45997921, 85.52791101, 85.59575187, 85.6635003, 85.73115479, 85.79871386, 85.86617602, 85.93353981, 86.00080377, 86.06796642, 86.13502632, 86.20198203, 86.2688321, 86.33557512, 86.40220966, 86.46873431, 86.53514766, 86.60144831, 86.66763489, 86.733706, 86.79966027, 86.86549635, 86.93121286, 86.99680848, 87.06228186, 87.12763167, 87.19285658, 87.2579553, 87.3229265, 87.38776891, 87.45248123, 87.51706219, 87.58151053, 87.64582498, 87.71000429, 87.77404724, 87.83795259, 87.90171911, 87.96534561, 88.02883088, 88.09217373, 88.15537298, 88.21842746, 88.28133601, 88.34409748, 88.40671073, 88.46917463, 88.53148805, 88.5936499, 88.65565907, 88.71751447, 88.77921502, 88.84075966, 88.90214733, 88.96337698, 89.02444758, 89.08535809, 89.14610751, 89.20669484, 89.26711907, 89.32737923, 89.38747435, 89.44740346, 89.50716562, 89.56675988, 89.62618533, 89.68544105, 89.74452612, 89.80343966, 89.86218079, 89.92074863, 89.97914233, 90.03736103, 90.0954039, 90.15327012, 90.21095886, 90.26846933, 90.32580074, 90.38295229, 90.43992324, 90.49671281, 90.55332027, 90.60974488, 90.66598591, 90.72204266, 90.77791442, 90.83360052, 90.88910027, 90.94441301, 90.99953808, 91.05447485, 91.10922268, 91.16378096, 91.21814908, 91.27232645, 91.32631248, 91.3801066, 91.43370825, 91.48711688, 91.54033197, 91.59335297, 91.64617938, 91.6988107, 91.75124644, 91.80348611, 91.85552926, 91.90737542, 91.95902416, 92.01047503, 92.06172762, 92.11278152, 92.16363634, 92.21429167, 92.26474716, 92.31500244, 92.36505715, 92.41491095, 92.46456352, 92.51401453, 92.56326368, 92.61231068, 92.66115524, 92.70979708, 92.75823595, 92.80647158, 92.85450376, 92.90233223, 92.9499568, 92.99737724, 93.04459337, 93.091605, 93.13841196, 93.18501407, 93.2314112, 93.2776032, 93.32358993, 93.36937128, 93.41494714, 93.46031741, 93.505482, 93.55044083, 93.59519384, 93.63974096, 93.68408215, 93.72821738, 93.77214661, 93.81586984, 93.85938705, 93.90269825, 93.94580345, 93.98870268, 94.03139597, 94.07388336, 94.11616491, 94.15824068, 94.20011074, 94.24177518, 94.28323408, 94.32448756, 94.36553571, 94.40637866, 94.44701654, 94.48744948, 94.52767764, 94.56770117, 94.60752024, 94.64713502, 94.6865457, 94.72575246, 94.76475551, 94.80355506, 94.84215133, 94.88054454, 94.91873494, 94.95672276, 94.99450825, 95.03209168, 95.06947331, 95.10665343, 95.14363232, 95.18041026, 95.21698757, 95.25336454, 95.28954151, 95.32551878, 95.36129669, 95.39687558, 95.4322558, 95.4674377, 95.50242164, 95.537208, 95.57179714, 95.60618945, 95.64038531, 95.67438514, 95.70818932, 95.74179827, 95.77521241, 95.80843216, 95.84145795, 95.87429021, 95.90692939, 95.93937594, 95.97163032, 96.00369298, 96.0355644, 96.06724504, 96.09873539, 96.13003593, 96.16114716, 96.19206956, 96.22280365, 96.25334993, 96.28370891, 96.31388112, 96.34386707, 96.3736673, 96.40328234, 96.43271273, 96.46195902, 96.49102175, 96.51990148, 96.54859876, 96.57711417, 96.60544826, 96.63360162, 96.66157482, 96.68936844, 96.71698306, 96.74441929, 96.7716777, 96.7987589, 96.82566349, 96.85239208, 96.87894528, 96.9053237, 96.93152796, 96.95755868, 96.98341648, 97.00910199, 97.03461585, 97.05995869, 97.08513114, 97.11013385, 97.13496746, 97.15963262, 97.18412998, 97.20846019, 97.23262391, 97.2566218, 97.28045451, 97.30412272, 97.32762708, 97.35096828, 97.37414697, 97.39716383, 97.42001954, 97.44271478, 97.46525022, 97.48762655, 97.50984445, 97.53190462, 97.55380773, 97.57555447, 97.59714555, 97.61858164, 97.63986345, 97.66099168, 97.68196701, 97.70279015, 97.7234618, 97.74398266, 97.76435344, 97.78457484, 97.80464756, 97.8245723, 97.84434979, 97.86398072, 97.88346581, 97.90280575, 97.92200128, 97.94105309, 97.9599619, 97.97872841, 97.99735335, 98.01583743, 98.03418136, 98.05238585, 98.07045162, 98.08837939, 98.10616986, 98.12382376, 98.1413418, 98.15872469, 98.17597315, 98.19308789, 98.21006964, 98.2269191, 98.24363698, 98.26022401, 98.2766809, 98.29300836, 98.3092071, 98.32527784, 98.34122129, 98.35703816, 98.37272917, 98.38829501, 98.40373641, 98.41905407, 98.43424871, 98.44932102, 98.46427171, 98.4791015, 98.49381108, 98.50840116, 98.52287244, 98.53722563, 98.55146143, 98.56558053, 98.57958364, 98.59347144, 98.60724465, 98.62090395, 98.63445003, 98.64788359, 98.66120532, 98.67441592, 98.68751605, 98.70050643, 98.71338772, 98.72616061, 98.73882579, 98.75138393, 98.76383572, 98.77618182, 98.78842292, 98.8005597, 98.81259281, 98.82452293, 98.83635074, 98.84807689, 98.85970205, 98.87122689, 98.88265206, 98.89397822, 98.90520604, 98.91633616, 98.92736924, 98.93830593, 98.94914687, 98.95989273, 98.97054413, 98.98110172, 98.99156615, 99.00193804, 99.01221805, 99.02240679, 99.03250491, 99.04251303, 99.05243177, 99.06226178, 99.07200365, 99.08165803, 99.09122551, 99.10070673, 99.11010229, 99.1194128, 99.12863888, 99.13778112, 99.14684014, 99.15581652, 99.16471088, 99.17352381, 99.18225589, 99.19090773, 99.19947991, 99.20797301, 99.21638763, 99.22472433, 99.23298371, 99.24116633, 99.24927277, 99.2573036, 99.26525938, 99.27314069, 99.28094809, 99.28868213, 99.29634338, 99.30393238, 99.3114497, 99.31889587, 99.32627146, 99.333577, 99.34081303, 99.3479801, 99.35507873, 99.36210947, 99.36907284, 99.37596937, 99.3827996, 99.38956403, 99.39626319, 99.4028976, 99.40946778, 99.41597423, 99.42241746, 99.42879798, 99.4351163, 99.44137291, 99.44756832, 99.45370302, 99.45977749, 99.46579224, 99.47174775, 99.4776445, 99.48348298, 99.48926366, 99.49498702, 99.50065354, 99.50626369, 99.51181792, 99.51731672, 99.52276054, 99.52814984, 99.53348508, 99.53876671, 99.54399519, 99.54917097, 99.55429448, 99.55936618, 99.5643865, 99.56935589, 99.57427478, 99.5791436, 99.58396278, 99.58873274, 99.59345393, 99.59812675, 99.60275162, 99.60732897, 99.6118592, 99.61634273, 99.62077996, 99.62517131, 99.62951717, 99.63381795, 99.63807404, 99.64228584, 99.64645375, 99.65057814, 99.65465942, 99.65869796, 99.66269415, 99.66664836, 99.67056098, 99.67443238, 99.67826292, 99.68205299, 99.68580295, 99.68951315, 99.69318397, 99.69681577, 99.70040889, 99.70396369, 99.70748054, 99.71095976, 99.71440172, 99.71780675, 99.7211752, 99.72450741, 99.72780371, 99.73106444, 99.73428992, 99.7374805, 99.7406365, 99.74375823, 99.74684603, 99.74990022, 99.7529211, 99.755909, 99.75886423, 99.7617871, 99.76467792, 99.76753699, 99.77036462, 99.77316111, 99.77592675, 99.77866185, 99.7813667, 99.78404158, 99.7866868, 99.78930263, 99.79188936, 99.79444728, 99.79697667, 99.7994778, 99.80195095, 99.8043964, 99.80681442, 99.80920527, 99.81156923, 99.81390656, 99.81621752, 99.81850238, 99.82076139, 99.82299481, 99.8252029, 99.82738591, 99.82954409, 99.83167769, 99.83378695, 99.83587213, 99.83793346, 99.83997118, 99.84198553, 99.84397676, 99.84594509, 99.84789075, 99.84981398, 99.85171501, 99.85359406, 99.85545136, 99.85728713, 99.85910159, 99.86089497, 99.86266747, 99.86441932, 99.86615072, 99.8678619, 99.86955305, 99.87122439, 99.87287613, 99.87450846, 99.8761216, 99.87771574, 99.87929108, 99.88084782, 99.88238616, 99.88390628, 99.88540838, 99.88689266, 99.8883593, 99.88980848, 99.8912404, 99.89265523, 99.89405316, 99.89543437, 99.89679904, 99.89814735, 99.89947946, 99.90079556, 99.90209582, 99.90338041, 99.90464949, 99.90590324, 99.90714182, 99.9083654, 99.90957413, 99.91076819, 99.91194772, 99.9131129, 99.91426387, 99.9154008, 99.91652383, 99.91763311, 99.91872881, 99.91981107, 99.92088004, 99.92193586, 99.92297868, 99.92400865, 99.92502591, 99.92603059, 99.92702285, 99.92800281, 99.92897062, 99.92992641, 99.93087032, 99.93180248, 99.93272302, 99.93363207, 99.93452977, 99.93541623, 99.9362916, 99.93715599, 99.93800952, 99.93885233, 99.93968453, 99.94050625, 99.9413176, 99.9421187, 99.94290968, 99.94369064, 99.9444617, 99.94522298, 99.94597459, 99.94671663, 99.94744923, 99.94817248, 99.9488865, 99.9495914, 99.95028728, 99.95097424, 99.9516524, 99.95232184, 99.95298268, 99.95363501, 99.95427894, 99.95491456, 99.95554198, 99.95616128, 99.95677256, 99.95737592, 99.95797145, 99.95855925, 99.9591394, 99.959712, 99.96027713, 99.96083489, 99.96138536, 99.96192863, 99.96246479, 99.96299392, 99.9635161, 99.96403142, 99.96453997, 99.96504181, 99.96553704, 99.96602573, 99.96650797, 99.96698382, 99.96745337, 99.9679167, 99.96837388, 99.96882498, 99.96927008, 99.96970925, 99.97014257, 99.9705701, 99.97099191, 99.97140809, 99.97181869, 99.97222379, 99.97262344, 99.97301773, 99.97340672, 99.97379046, 99.97416903, 99.97454249, 99.97491091, 99.97527434, 99.97563285, 99.9759865, 99.97633535, 99.97667946, 99.97701889, 99.9773537, 99.97768394, 99.97800968, 99.97833097, 99.97864786, 99.97896042, 99.97926869, 99.97957274, 99.9798726, 99.98016835, 99.98046002, 99.98074768, 99.98103136, 99.98131113, 99.98158704, 99.98185912, 99.98212744, 99.98239203, 99.98265295, 99.98291025, 99.98316396, 99.98341414, 99.98366084, 99.98390409, 99.98414394, 99.98438044, 99.98461363, 99.98484355, 99.98507024, 99.98529375, 99.98551412, 99.98573138, 99.98594559, 99.98615677, 99.98636497, 99.98657023, 99.98677258, 99.98697207, 99.98716873, 99.9873626, 99.98755372, 99.98774212, 99.98792783, 99.9881109, 99.98829136, 99.98846924, 99.98864458, 99.98881741, 99.98898776, 99.98915567, 99.98932117, 99.98948429, 99.98964507, 99.98980353, 99.9899597, 99.99011363, 99.99026533, 99.99041484, 99.99056218, 99.99070739, 99.99085049, 99.99099152, 99.9911305, 99.99126745, 99.99140242, 99.99153541, 99.99166647, 99.99179561, 99.99192286, 99.99204825, 99.99217181, 99.99229355, 99.99241351, 99.9925317, 99.99264816, 99.9927629, 99.99287595, 99.99298733, 99.99309707, 99.99320519, 99.9933117, 99.99341664, 99.99352003, 99.99362188, 99.99372222, 99.99382106, 99.99391844, 99.99401436, 99.99410886, 99.99420194, 99.99429364, 99.99438396, 99.99447293, 99.99456057, 99.99464689, 99.99473191, 99.99481566, 99.99489815, 99.9949794, 99.99505942, 99.99513824, 99.99521586, 99.99529232, 99.99536761, 99.99544177, 99.9955148, 99.99558672, 99.99565755, 99.9957273, 99.995796, 99.99586364, 99.99593026, 99.99599585, 99.99606045, 99.99612406, 99.99618669, 99.99624837, 99.9963091, 99.99636889, 99.99642777, 99.99648575, 99.99654283, 99.99659903, 99.99665436, 99.99670884, 99.99676248, 99.99681529, 99.99686729, 99.99691847, 99.99696887, 99.99701848, 99.99706732, 99.9971154, 99.99716273, 99.99720932, 99.99725519, 99.99730034, 99.99734479, 99.99738854, 99.9974316, 99.997474, 99.99751572, 99.99755679, 99.99759722, 99.99763701, 99.99767617, 99.99771472, 99.99775266, 99.99779, 99.99782675, 99.99786292, 99.99789852, 99.99793355, 99.99796803, 99.99800196, 99.99803535, 99.99806821, 99.99810055, 99.99813237, 99.99816369, 99.9981945, 99.99822482, 99.99825466, 99.99828402, 99.99831291, 99.99834134, 99.99836931, 99.99839683, 99.99842391, 99.99845056, 99.99847677, 99.99850256, 99.99852794, 99.99855291, 99.99857747, 99.99860164, 99.99862541, 99.9986488, 99.99867181, 99.99869445, 99.99871672, 99.99873862, 99.99876017, 99.99878137, 99.99880222, 99.99882274, 99.99884292, 99.99886276, 99.99888229, 99.99890149, 99.99892038, 99.99893896, 99.99895723, 99.9989752, 99.99899288, 99.99901027, 99.99902737, 99.99904419, 99.99906073, 99.99907699, 99.99909299, 99.99910873, 99.9991242, 99.99913941, 99.99915438, 99.99916909, 99.99918356, 99.99919779, 99.99921179, 99.99922555, 99.99923908, 99.99925238, 99.99926546, 99.99927833, 99.99929097, 99.99930341, 99.99931564, 99.99932766, 99.99933948, 99.9993511, 99.99936253, 99.99937376, 99.9993848, 99.99939566, 99.99940634, 99.99941683, 99.99942715, 99.99943729, 99.99944726, 99.99945706, 99.9994667, 99.99947617, 99.99948548, 99.99949463, 99.99950363, 99.99951247, 99.99952116, 99.99952971, 99.9995381, 99.99954636, 99.99955447, 99.99956245, 99.99957028, 99.99957799, 99.99958556, 99.999593, 99.99960031, 99.9996075, 99.99961456, 99.9996215, 99.99962832, 99.99963502, 99.99964161, 99.99964808, 99.99965445, 99.9996607, 99.99966684, 99.99967288, 99.99967881, 99.99968464, 99.99969036, 99.99969599, 99.99970152, 99.99970695, 99.99971229, 99.99971753, 99.99972269, 99.99972775, 99.99973272, 99.99973761, 99.99974241, 99.99974713, 99.99975176, 99.99975631, 99.99976079, 99.99976518, 99.9997695, 99.99977374, 99.9997779, 99.99978199, 99.99978601, 99.99978996, 99.99979384, 99.99979765, 99.99980139, 99.99980506, 99.99980867, 99.99981222, 99.9998157, 99.99981912, 99.99982248, 99.99982578, 99.99982902, 99.9998322, 99.99983533, 99.9998384, 99.99984141, 99.99984437, 99.99984728, 99.99985014, 99.99985294, 99.99985569, 99.9998584, 99.99986105, 99.99986366, 99.99986622, 99.99986873, 99.9998712, 99.99987363, 99.99987601, 99.99987834, 99.99988064, 99.99988289, 99.9998851, 99.99988728, 99.99988941, 99.9998915, 99.99989356, 99.99989557, 99.99989756, 99.9998995, 99.99990141, 99.99990328, 99.99990513, 99.99990693, 99.9999087, 99.99991045, 99.99991215, 99.99991383, 99.99991548, 99.99991709, 99.99991868, 99.99992024, 99.99992177, 99.99992327, 99.99992474, 99.99992619, 99.9999276, 99.999929, 99.99993036, 99.9999317, 99.99993302, 99.99993431, 99.99993558, 99.99993683, 99.99993805, 99.99993924, 99.99994042, 99.99994157, 99.99994271, 99.99994382, 99.99994491, 99.99994598, 99.99994703, 99.99994806, 99.99994907, 99.99995006, 99.99995104, 99.99995199, 99.99995293, 99.99995385, 99.99995475, 99.99995564, 99.9999565, 99.99995736, 99.99995819, 99.99995901, 99.99995982, 99.99996061, 99.99996138, 99.99996214, 99.99996289, 99.99996362, 99.99996434, 99.99996504, 99.99996573, 99.99996641, 99.99996707, 99.99996772, 99.99996836, 99.99996899, 99.9999696, 99.99997021, 99.9999708, 99.99997138, 99.99997195, 99.9999725, 99.99997305, 99.99997359, 99.99997411, 99.99997463, 99.99997514, 99.99997563, 99.99997612, 99.9999766, 99.99997707, 99.99997753, 99.99997798, 99.99997842, 99.99997885, 99.99997928, 99.99997969, 99.9999801, 99.9999805, 99.99998089, 99.99998128, 99.99998166, 99.99998203, 99.99998239, 99.99998275, 99.9999831, 99.99998344, 99.99998377, 99.9999841, 99.99998442, 99.99998474, 99.99998505, 99.99998535, 99.99998565, 99.99998594, 99.99998623, 99.99998651, 99.99998679, 99.99998705, 99.99998732, 99.99998758, 99.99998783, 99.99998808, 99.99998833, 99.99998856, 99.9999888, 99.99998903, 99.99998925, 99.99998947, 99.99998969, 99.9999899, 99.99999011, 99.99999031, 99.99999051, 99.99999071, 99.9999909, 99.99999109, 99.99999127, 99.99999145, 99.99999163, 99.9999918, 99.99999197, 99.99999214, 99.9999923, 99.99999246, 99.99999262, 99.99999277, 99.99999292, 99.99999307, 99.99999321, 99.99999336, 99.99999349, 99.99999363, 99.99999376, 99.99999389, 99.99999402, 99.99999415, 99.99999427, 99.99999439, 99.99999451, 99.99999462, 99.99999473, 99.99999485, 99.99999495, 99.99999506, 99.99999516, 99.99999527, 99.99999537, 99.99999546, 99.99999556, 99.99999565, 99.99999574, 99.99999583, 99.99999592, 99.99999601, 99.99999609, 99.99999618, 99.99999626, 99.99999634, 99.99999641, 99.99999649, 99.99999657, 99.99999664, 99.99999671, 99.99999678, 99.99999685, 99.99999692, 99.99999698, 99.99999705, 99.99999711, 99.99999717, 99.99999723, 99.99999729, 99.99999735, 99.99999741, 99.99999746, 99.99999752, 99.99999757, 99.99999762, 99.99999767, 99.99999772, 99.99999777, 99.99999782, 99.99999787, 99.99999791, 99.99999796, 99.999998, 99.99999805, 99.99999809, 99.99999813, 99.99999817, 99.99999821, 99.99999825, 99.99999829, 99.99999832, 99.99999836, 99.9999984, 99.99999843, 99.99999846, 99.9999985, 99.99999853, 99.99999856, 99.99999859, 99.99999863, 99.99999866, 99.99999868, 99.99999871, 99.99999874, 99.99999877, 99.9999988, 99.99999882, 99.99999885, 99.99999887, 99.9999989, 99.99999892, 99.99999895, 99.99999897, 99.99999899, 99.99999901, 99.99999904, 99.99999906, 99.99999908, 99.9999991, 99.99999912, 99.99999914, 99.99999916, 99.99999918, 99.99999919, 99.99999921, 99.99999923, 99.99999925, 99.99999926, 99.99999928, 99.9999993, 99.99999931, 99.99999933, 99.99999934, 99.99999936, 99.99999937, 99.99999938, 99.9999994, 99.99999941, 99.99999943, 99.99999944, 99.99999945, 99.99999946, 99.99999948, 99.99999949, 99.9999995, 99.99999951, 99.99999952, 99.99999953, 99.99999954, 99.99999955, 99.99999956, 99.99999957, 99.99999958, 99.99999959, 99.9999996, 99.99999961, 99.99999962, 99.99999963, 99.99999964, 99.99999964, 99.99999965, 99.99999966, 99.99999967, 99.99999968, 99.99999968, 99.99999969, 99.9999997, 99.9999997, 99.99999971, 99.99999972, 99.99999972, 99.99999973, 99.99999974, 99.99999974, 99.99999975, 99.99999975, 99.99999976, 99.99999976, 99.99999977, 99.99999978, 99.99999978, 99.99999979, 99.99999979, 99.9999998, 99.9999998, 99.9999998, 99.99999981, 99.99999981, 99.99999982, 99.99999982, 99.99999983, 99.99999983, 99.99999983, 99.99999984, 99.99999984, 99.99999985, 99.99999985, 99.99999985, 99.99999986, 99.99999986, 99.99999986, 99.99999987, 99.99999987, 99.99999987, 99.99999987, 99.99999988, 99.99999988, 99.99999988, 99.99999989, 99.99999989, 99.99999989, 99.99999989, 99.9999999, 99.9999999, 99.9999999, 99.9999999, 99.99999991, 99.99999991, 99.99999991, 99.99999991, 99.99999991, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90.88679075, 90.88188388, 90.87370047, 90.86223259, 90.84746913, 90.82939576, 90.80799494, 90.78324591, 90.75512462, 90.72360373, 90.6886526, 90.6502372, 90.60832012, 90.56286047, 90.51381391, 90.46113252, 90.40476478, 90.34465553, 90.28074588, 90.21297312, 90.14127071, 90.06556816, 89.98579097, 89.90186055, 89.81369412, 89.72120464, 89.62430072, 89.52288651, 89.41686161, 89.306121, 89.19055487, 89.0700486, 88.9444826, 88.81373221, 88.67766762, 88.53615373, 88.38905004, 88.23621059, 88.07748379, 87.91271235, 87.74173318, 87.56437724, 87.38046953, 87.18982892, 86.99226808, 86.78759342, 86.57560503, 86.35609657, 86.12885524, 85.89366175, 85.65029032, 85.39850858, 85.13807769, 84.86875228, 84.59028055, 84.30240433, 84.00485919, 83.69737454, 83.37967384, 83.05147477, 82.71248948, 82.36242487, 82.00098293, 81.6278611, 81.24275269, 80.84534743, 80.43533194, 80.0123904, 79.57620521, 79.12645779, 78.66282935, 78.18500185, 77.69265904, 77.18548745, 76.6631777, 76.12542569, 75.57193403, 75.00241348, 74.41658458, 73.8141793, 73.19494283, 72.55863548, 71.90503464, 71.23393689, 70.54516011, 69.83854581, 69.11396137, 68.3713025, 67.61049561, 66.83150033, 66.03431201, 65.21896419, 64.38553112, 63.5341302, 62.66492432, 61.77812424, 60.87399068, 59.9528364, 59.01502807, 58.06098785, 57.09119484, 56.1061862, 55.10655795, 54.09296549, 53.06612368, 52.02680655, 50.97584664, 49.91413384, 48.84261377, 47.76228575, 46.6742002, 45.57945567, 44.47919528, 43.37460282, 42.26689831, 41.15733319, 40.0471851, 38.93775236, 37.83034812, 36.72629425, 35.62691506, 34.53353093, 33.44745175, 32.36997054, 31.30235696, 30.24585111, 29.20165741, 28.17093881, 27.15481134, 26.15433899, 25.17052905, 24.20432791, 23.25661741, 22.32821165, 21.41985447, 20.53221736, 19.6658981, 18.82141981, 17.99923073, 17.1997044, 16.42314041, 15.6697657, 14.93973619, 14.23313892, 13.54999455, 12.89026016, 12.25383232, 11.64055047, 11.05020044, 10.48251811, 9.93719319, 9.41387308, 8.91216676, 8.43164862, 7.97186228, 7.53232436, 7.11252813, 6.711947, 6.33003797, 5.96624482, 5.6200012, 5.2907335, 4.97786357, 4.68081124, 4.39899664, 4.13184233, 3.87877524, 3.63922846, 3.41264279, 3.19846816, 2.99616487, 2.80520467, 2.62507167, 2.45526317, 2.29529026, 2.14467839, 2.00296776, 1.86971365, 1.7444866, 1.62687256, 1.51647292, 1.41290447, 1.31579933, 1.22480478, 1.13958305, 1.05981111, 0.98518032, 0.91539619, 0.85017797, 0.78925833, 0.73238293, 0.67931007, 0.62981022, 0.58366565, 0.54066999, 0.50062778, 0.46335409, 0.42867404, 0.39642244, 0.36644333, 0.33858957, 0.3127225, 0.28871146, 0.26643349, 0.24577289, 0.22662091, 0.20887539, 0.19244041, 0.17722597, 0.16314768, 0.15012644, 0.13808821, 0.12696365, 0.11668791, 0.10720036, 0.09844434, 0.09036696, 0.08291883, 0.07605389, 0.06972919, 0.06390472, 0.05854321, 0.05360997, 0.04907272, 0.04490145, 0.04106826, 0.03754725, 0.03431437, 0.03134728, 0.02862529, 0.0261292, 0.02384123, 0.02174491, 0.01982498, 0.01806735, 0.01645897, 0.01498779, 0.01364265, 0.01241329, 0.01129019, 0.01026461, 0.00932847, 0.00847433, 0.00769532, 0.00698513, 0.00633796, 0.00574846, 0.00521171, 0.00472319, 0.00427875, 0.0038746, 0.00350721, 0.0031734, 0.00287021, 0.00259496, 0.00234517, 0.00211857, 0.00191311, 0.00172689, 0.00155817, 0.00140537, 0.00126706, 0.0011419, 0.00102869, 0.00092634, 0.00083384, 0.00075027, 0.00067481, 0.0006067, 0.00054525, 0.00048982, 0.00043986, 0.00039483, 0.00035427, 0.00031775, 0.00028488, 0.00025531, 0.00022872, 0.00020482, 0.00018334, 0.00016404, 0.00014672, 0.00013118, 0.00011724, 0.00010473, 0.00009352, 0.00008348, 0.00007449, 0.00006644, 0.00005923, 0.00005279, 0.00004703, 0.00004188, 0.00003728, 0.00003317, 0.0000295, 0.00002623, 0.00002331, 0.00002071, 0.00001839, 0.00001632, 0.00001448, 0.00001285, 0.00001139, 0.00001009, 8.94172247e-06, 7.91816083e-06, 7.00896491e-06, 6.20168751e-06, 5.48519775e-06, 4.84954626e-06, 4.28584363e-06, 3.78615096e-06, 3.34338129e-06, 2.95121102e-06, 2.60399999e-06, 2.29671996e-06, 2.02489008e-06, 1.78451909e-06, 1.57205328e-06, 1.38433005e-06, 1.21853591e-06, 1.07216918e-06, 9.43006299e-07, 8.29071809e-07, 7.28611411e-07, 6.4006791e-07, 5.6205964e-07, 4.93361185e-07, 4.32886253e-07, 3.7967223e-07, 3.32866506e-07, 2.91714201e-07, 2.55547263e-07, 2.23774762e-07, 1.95874151e-07, 1.71383633e-07, 1.498952e-07, 1.31048566e-07, 1.14525704e-07, 1.00046009e-07, 8.73620394e-08, 7.62556169e-08, 6.65345254e-08, 5.80294284e-08, 5.05912823e-08, 4.40888925e-08, 3.8406867e-08, 3.34437118e-08, 2.9110268e-08, 2.53281769e-08, 2.20286438e-08, 1.91512726e-08, 1.66430709e-08, 1.44575694e-08, 1.25540396e-08, 1.08967555e-08, 9.45446743e-09, 8.19980528e-09, 7.10878112e-09, 6.16046236e-09, 5.3365028e-09, 4.620901e-09, 3.99965927e-09, 3.46054208e-09, 2.99290548e-09, 2.58741295e-09, 2.2359643e-09, 1.93148253e-09, 1.66780012e-09, 1.43953116e-09, 1.24200028e-09, 1.07115739e-09, 9.2343555e-10, 7.95765231e-10, 6.85474788e-10, 5.9023364e-10, 5.08023845e-10, 4.37083258e-10, 3.75905529e-10, 3.23154836e-10, 2.77694312e-10, 2.38543407e-10, 2.04821049e-10, 1.75802484e-10, 1.50834012e-10, 1.293472e-10, 1.10887299e-10, 9.50279855e-11, 8.13997758e-11, 6.96900315e-11, 5.96571681e-11, 5.10311793e-11, 4.36415348e-11, 3.73034936e-11, 3.1889158e-11, 2.72279976e-11, 2.32489583e-11, 1.9852564e-11, 1.6925128e-11, 1.44382284e-11, 1.23066002e-11, 1.04876108e-11, 8.93862762e-12, 7.60280727e-12, 6.48014975e-12, 5.51381163e-12, 4.68958206e-12, 3.97903932e-12, 3.38218342e-12, 2.87059265e-12, 2.44426701e-12, 2.07478479e-12, 1.76214598e-12, 1.49213975e-12, 1.26476607e-12, 1.0658141e-12, 9.09494702e-13, 7.67386155e-13, 6.53699317e-13, 5.54223334e-13, 4.68958206e-13, 3.97903932e-13, 3.26849658e-13, 2.84217094e-13, 2.4158453e-13, 1.98951966e-13, 1.70530257e-13, 1.42108547e-13, 1.13686838e-13, 9.9475983e-14, 8.52651283e-14, 7.10542736e-14, 5.68434189e-14, 5.68434189e-14, 4.26325641e-14, 4.26325641e-14, 2.84217094e-14, 2.84217094e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3.01501317, 3.01659409, 3.0192306, 3.02292517, 3.02768128, 3.03350338, 3.04039694, 3.04836842, 3.05742533, 3.06757618, 3.0788305, 3.0911989, 3.10469301, 3.11932556, 3.13511034, 3.15206225, 3.1701973, 3.18953264, 3.21008654, 3.23187849, 3.25492912, 3.2792603, 3.30489512, 3.33185792, 3.36017434, 3.38987131, 3.42097709, 3.45352131, 3.48753495, 3.52305045, 3.56010165, 3.59872387, 3.63895393, 3.68083017, 3.7243925, 3.76968239, 3.81674294, 3.86561888, 3.91635662, 3.96900427, 4.02361164, 4.08023031, 4.13891361, 4.19971668, 4.26269645, 4.3279117, 4.39542304, 4.46529292, 4.53758567, 4.61236745, 4.6897063, 4.76967209, 4.85233654, 4.93777317, 5.02605728, 5.11726593, 5.21147786, 5.30877347, 5.40923472, 5.51294508, 5.61998944, 5.73045395, 5.84442598, 5.96199393, 6.08324709, 6.20827549, 6.33716966, 6.47002048, 6.6069189, 6.74795569, 6.89322119, 7.04280497, 7.19679551, 7.35527985, 7.51834319, 7.68606847, 7.85853593, 8.03582265, 8.21800202, 8.40514319, 8.59731055, 8.79456311, 8.99695386, 9.20452915, 9.41732801, 9.63538143, 9.85871168, 10.08733156, 10.32124367, 10.56043963, 10.80489937, 11.05459038, 11.30946693, 11.56946942, 11.83452363, 12.1045401, 12.3794135, 12.6590221, 12.9432272, 13.2318728, 13.52478516, 13.82177262, 14.12262541, 14.42711559, 14.73499719, 15.04600633, 15.35986163, 15.67626463, 15.99490046, 16.31543854, 16.63753355, 16.96082648, 17.28494578, 17.60950877, 17.93412306, 18.25838817, 18.58189722, 18.90423871, 19.22499847, 19.54376149, 19.86011404, 20.17364557, 20.48395083, 20.79063179, 21.0932997, 21.39157692, 21.68509882, 21.9735155, 22.25649339, 22.53371679, 22.80488919, 23.06973448, 23.32799796, 23.57944719, 23.82387268, 24.06108838, 24.29093195, 24.51326493, 24.72797267, 24.93496414, 25.13417152, 25.32554973, 25.50907575, 25.68474781, 25.85258458, 26.0126241, 26.16492281, 26.30955434, 26.44660838, 26.57618946, 26.69841568, 26.81341752, 26.92133653, 27.02232414, 27.11654042, 27.20415289, 27.2853354, 27.360267, 27.42913091, 27.49211351, 27.54940339, 27.6011905, 27.64766528, 27.68901797, 27.72543784, 27.75711262, 27.78422789, 27.80696659, 27.82550855, 27.84003009, 27.85070369, 27.85769766, 27.86117592, 27.86129778, 27.85821777, 27.8520855, 27.84304561, 27.83123766, 27.81679611, 27.79985034, 27.78052463, 27.75893822, 27.73520538, 27.70943543, 27.68173288, 27.65219752, 27.62092452, 27.58800454, 27.55352386, 27.51756455, 27.48020455, 27.44151785, 27.40157459, 27.36044125, 27.31818077, 27.2748527, 27.23051332, 27.18521582, 27.13901038, 27.09194438, 27.04406248, 26.99540674, 26.94601681, 26.89592998, 26.84518134, 26.79380388, 26.74182864, 26.68928472, 26.6361995, 26.58259866, 26.52850629, 26.473945, 26.418936, 26.36349916, 26.30765311, 26.25141532, 26.19480215, 26.13782892, 26.08051001, 26.02285886, 25.96488809, 25.9066095, 25.84803416, 25.78917245, 25.73003409, 25.6706282, 25.61096333, 25.55104751, 25.49088828, 25.43049271, 25.36986746, 25.3090188, 25.24795261, 25.18667445, 25.12518955, 25.06350287, 25.00161907, 24.93954258, 24.87727758, 24.81482805, 24.75219777, 24.68939032, 24.62640914, 24.56325749, 24.49993849, 24.43645514, 24.37281031, 24.30900674, 24.24504711, 24.18093397, 24.11666979, 24.05225698, 23.98769785, 23.92299467, 23.85814963, 23.79316488, 23.7280425, 23.66278454, 23.59739302, 23.53186989, 23.46621709, 23.40043653, 23.33453007, 23.26849958, 23.20234687, 23.13607376, 23.06968204, 23.00317347, 22.93654982, 22.86981283, 22.80296425, 22.73600579, 22.66893917, 22.6017661, 22.53448829, 22.46710743, 22.39962521, 22.33204332, 22.26436346, 22.19658729, 22.1287165, 22.06075277, 21.99269778, 21.9245532, 21.85632072, 21.788002, 21.71959873, 21.65111258, 21.58254524, 21.51389837, 21.44517366, 21.3763728, 21.30749746, 21.23854933, 21.16953009, 21.10044144, 21.03128506, 20.96206264, 20.89277588, 20.82342646, 20.75401609, 20.68454647, 20.61501928, 20.54543624, 20.47579905, 20.4061094, 20.33636902, 20.2665796, 20.19674285, 20.12686049, 20.05693422, 19.98696577, 19.91695684, 19.84690915, 19.77682442, 19.70670436, 19.6365507, 19.56636516, 19.49614945, 19.42590529, 19.35563442, 19.28533855, 19.2150194, 19.1446787, 19.07431817, 19.00393954, 18.93354452, 18.86313485, 18.79271225, 18.72227844, 18.65183514, 18.58138408, 18.51092698, 18.44046556, 18.37000154, 18.29953665, 18.2290726, 18.1586111, 18.08815389, 18.01770267, 17.94725916, 17.87682507, 17.80640212, 17.73599201, 17.66559645, 17.59521715, 17.52485582, 17.45451415, 17.38419385, 17.31389662, 17.24362414, 17.17337812, 17.10316025, 17.0329722, 16.96281568, 16.89269236, 16.82260391, 16.75255203, 16.68253837, 16.61256461, 16.54263242, 16.47274346, 16.40289938, 16.33310184, 16.2633525, 16.193653, 16.12400499, 16.0544101, 15.98486996, 15.91538622, 15.84596049, 15.7765944, 15.70728956, 15.63804759, 15.56887009, 15.49975867, 15.43071492, 15.36174042, 15.29283678, 15.22400557, 15.15524836, 15.08656673, 15.01796224, 14.94943644, 14.8809909, 14.81262715, 14.74434673, 14.67615118, 14.60804203, 14.54002079, 14.47208899, 14.40424813, 14.3364997, 14.26884521, 14.20128614, 14.13382398, 14.06646019, 13.99919623, 13.93203358, 13.86497368, 13.79801797, 13.7311679, 13.66442488, 13.59779034, 13.53126569, 13.46485234, 13.39855169, 13.33236511, 13.266294, 13.20033973, 13.13450365, 13.06878714, 13.00319152, 12.93771814, 12.87236833, 12.80714342, 12.7420447, 12.6770735, 12.61223109, 12.54751877, 12.48293781, 12.41848947, 12.35417502, 12.28999571, 12.22595276, 12.16204741, 12.09828089, 12.03465439, 11.97116912, 11.90782627, 11.84462702, 11.78157254, 11.71866399, 11.65590252, 11.59328927, 11.53082537, 11.46851195, 11.4063501, 11.34434093, 11.28248553, 11.22078498, 11.15924034, 11.09785267, 11.03662302, 10.97555242, 10.91464191, 10.85389249, 10.79330516, 10.73288093, 10.67262077, 10.61252565, 10.55259654, 10.49283438, 10.43324012, 10.37381467, 10.31455895, 10.25547388, 10.19656034, 10.13781921, 10.07925137, 10.02085767, 9.96263897, 9.9045961, 9.84672988, 9.78904114, 9.73153067, 9.67419926, 9.61704771, 9.56007676, 9.50328719, 9.44667973, 9.39025512, 9.33401409, 9.27795734, 9.22208558, 9.16639948, 9.11089973, 9.05558699, 9.00046192, 8.94552515, 8.89077732, 8.83621904, 8.78185092, 8.72767355, 8.67368752, 8.6198934, 8.56629175, 8.51288312, 8.45966803, 8.40664703, 8.35382062, 8.3011893, 8.24875356, 8.19651389, 8.14447074, 8.09262458, 8.04097584, 7.98952497, 7.93827238, 7.88721848, 7.83636366, 7.78570833, 7.73525284, 7.68499756, 7.63494285, 7.58508905, 7.53543648, 7.48598547, 7.43673632, 7.38768932, 7.33884476, 7.29020292, 7.24176405, 7.19352842, 7.14549624, 7.09766777, 7.0500432, 7.00262276, 6.95540663, 6.908395, 6.86158804, 6.81498593, 6.7685888, 6.7223968, 6.67641007, 6.63062872, 6.58505286, 6.53968259, 6.494518, 6.44955917, 6.40480616, 6.36025904, 6.31591785, 6.27178262, 6.22785339, 6.18413016, 6.14061295, 6.09730175, 6.05419655, 6.01129732, 5.96860403, 5.92611664, 5.88383509, 5.84175932, 5.79988926, 5.75822482, 5.71676592, 5.67551244, 5.63446429, 5.59362134, 5.55298346, 5.51255052, 5.47232236, 5.43229883, 5.39247976, 5.35286498, 5.3134543, 5.27424754, 5.23524449, 5.19644494, 5.15784867, 5.11945546, 5.08126506, 5.04327724, 5.00549175, 4.96790832, 4.93052669, 4.89334657, 4.85636768, 4.81958974, 4.78301243, 4.74663546, 4.71045849, 4.67448122, 4.63870331, 4.60312442, 4.5677442, 4.5325623, 4.49757836, 4.462792, 4.42820286, 4.39381055, 4.35961469, 4.32561486, 4.29181068, 4.25820173, 4.22478759, 4.19156784, 4.15854205, 4.12570979, 4.09307061, 4.06062406, 4.02836968, 3.99630702, 3.9644356, 3.93275496, 3.90126461, 3.86996407, 3.83885284, 3.80793044, 3.77719635, 3.74665007, 3.71629109, 3.68611888, 3.65613293, 3.6263327, 3.59671766, 3.56728727, 3.53804098, 3.50897825, 3.48009852, 3.45140124, 3.42288583, 3.39455174, 3.36639838, 3.33842518, 3.31063156, 3.28301694, 3.25558071, 3.2283223, 3.2012411, 3.17433651, 3.14760792, 3.12105472, 3.0946763, 3.06847204, 3.04244132, 3.01658352, 2.99089801, 2.96538415, 2.94004131, 2.91486886, 2.88986615, 2.86503254, 2.84036738, 2.81587002, 2.79153981, 2.76737609, 2.7433782, 2.71954549, 2.69587728, 2.67237292, 2.64903172, 2.62585303, 2.60283617, 2.57998046, 2.55728522, 2.53474978, 2.51237345, 2.49015555, 2.46809538, 2.44619227, 2.42444553, 2.40285445, 2.38141836, 2.36013655, 2.33900832, 2.31803299, 2.29720985, 2.2765382, 2.25601734, 2.23564656, 2.21542516, 2.19535244, 2.1754277, 2.15565021, 2.13601928, 2.11653419, 2.09719425, 2.07799872, 2.05894691, 2.0400381, 2.02127159, 2.00264665, 1.98416257, 1.96581864, 1.94761415, 1.92954838, 1.91162061, 1.89383014, 1.87617624, 1.8586582, 1.84127531, 1.82402685, 1.80691211, 1.78993036, 1.7730809, 1.75636302, 1.73977599, 1.7233191, 1.70699164, 1.6907929, 1.67472216, 1.65877871, 1.64296184, 1.62727083, 1.61170499, 1.59626359, 1.58094593, 1.56575129, 1.55067898, 1.53572829, 1.5208985, 1.50618892, 1.49159884, 1.47712756, 1.46277437, 1.44853857, 1.43441947, 1.42041636, 1.40652856, 1.39275535, 1.37909605, 1.36554997, 1.35211641, 1.33879468, 1.32558408, 1.31248395, 1.29949357, 1.28661228, 1.27383939, 1.26117421, 1.24861607, 1.23616428, 1.22381818, 1.21157708, 1.1994403, 1.18740719, 1.17547707, 1.16364926, 1.15192311, 1.14029795, 1.12877311, 1.11734794, 1.10602178, 1.09479396, 1.08366384, 1.07263076, 1.06169407, 1.05085313, 1.04010727, 1.02945587, 1.01889828, 1.00843385, 0.99806196, 0.98778195, 0.97759321, 0.96749509, 0.95748697, 0.94756823, 0.93773822, 0.92799635, 0.91834197, 0.90877449, 0.89929327, 0.88989771, 0.8805872, 0.87136112, 0.86221888, 0.85315986, 0.84418348, 0.83528912, 0.82647619, 0.81774411, 0.80909227, 0.80052009, 0.79202699, 0.78361237, 0.77527567, 0.76701629, 0.75883367, 0.75072723, 0.7426964, 0.73474062, 0.72685931, 0.71905191, 0.71131787, 0.70365662, 0.69606762, 0.6885503, 0.68110413, 0.67372854, 0.666423, 0.65918697, 0.6520199, 0.64492127, 0.63789053, 0.63092716, 0.62403063, 0.6172004, 0.61043597, 0.60373681, 0.5971024, 0.59053222, 0.58402577, 0.57758254, 0.57120202, 0.5648837, 0.55862709, 0.55243168, 0.54629698, 0.54022251, 0.53420776, 0.52825225, 0.5223555, 0.51651702, 0.51073634, 0.50501298, 0.49934646, 0.49373631, 0.48818208, 0.48268328, 0.47723946, 0.47185016, 0.46651492, 0.46123329, 0.45600481, 0.45082903, 0.44570552, 0.44063382, 0.4356135, 0.43064411, 0.42572522, 0.4208564, 0.41603722, 0.41126726, 0.40654607, 0.40187325, 0.39724838, 0.39267103, 0.3881408, 0.38365727, 0.37922004, 0.37482869, 0.37048283, 0.36618205, 0.36192596, 0.35771416, 0.35354625, 0.34942186, 0.34534058, 0.34130204, 0.33730585, 0.33335164, 0.32943902, 0.32556762, 0.32173708, 0.31794701, 0.31419705, 0.31048685, 0.30681603, 0.30318423, 0.29959111, 0.29603631, 0.29251946, 0.28904024, 0.28559828, 0.28219325, 0.2788248, 0.27549259, 0.27219629, 0.26893556, 0.26571008, 0.2625195, 0.2593635, 0.25624177, 0.25315397, 0.25009978, 0.2470789, 0.244091, 0.24113577, 0.2382129, 0.23532208, 0.23246301, 0.22963538, 0.22683889, 0.22407325, 0.22133815, 0.2186333, 0.21595842, 0.2133132, 0.21069737, 0.20811064, 0.20555272, 0.20302333, 0.2005222, 0.19804905, 0.1956036, 0.19318558, 0.19079473, 0.18843077, 0.18609344, 0.18378248, 0.18149762, 0.17923861, 0.17700519, 0.1747971, 0.17261409, 0.17045591, 0.16832231, 0.16621305, 0.16412787, 0.16206654, 0.16002882, 0.15801447, 0.15602324, 0.15405491, 0.15210925, 0.15018602, 0.14828499, 0.14640594, 0.14454864, 0.14271287, 0.14089841, 0.13910503, 0.13733253, 0.13558068, 0.13384928, 0.1321381, 0.13044695, 0.12877561, 0.12712387, 0.12549154, 0.1238784, 0.12228426, 0.12070892, 0.11915218, 0.11761384, 0.11609372, 0.11459162, 0.11310734, 0.1116407, 0.11019152, 0.1087596, 0.10734477, 0.10594684, 0.10456563, 0.10320096, 0.10185265, 0.10052054, 0.09920444, 0.09790418, 0.09661959, 0.09535051, 0.09409676, 0.09285818, 0.0916346, 0.09042587, 0.08923181, 0.08805228, 0.0868871, 0.08573613, 0.0845992, 0.08347617, 0.08236689, 0.08127119, 0.08018893, 0.07911996, 0.07806414, 0.07702132, 0.07599135, 0.07497409, 0.07396941, 0.07297715, 0.07199719, 0.07102938, 0.07007359, 0.06912968, 0.06819752, 0.06727698, 0.06636793, 0.06547023, 0.06458377, 0.0637084, 0.06284401, 0.06199048, 0.06114767, 0.06031547, 0.05949375, 0.0586824, 0.0578813, 0.05709032, 0.05630936, 0.0555383, 0.05477702, 0.05402541, 0.05328337, 0.05255077, 0.05182752, 0.0511135, 0.0504086, 0.04971272, 0.04902576, 0.0483476, 0.04767816, 0.04701732, 0.04636499, 0.04572106, 0.04508544, 0.04445802, 0.04383872, 0.04322744, 0.04262408, 0.04202855, 0.04144075, 0.0408606, 0.040288, 0.03972287, 0.03916511, 0.03861464, 0.03807137, 0.03753521, 0.03700608, 0.0364839, 0.03596858, 0.03546003, 0.03495819, 0.03446296, 0.03397427, 0.03349203, 0.03301618, 0.03254663, 0.0320833, 0.03162612, 0.03117502, 0.03072992, 0.03029075, 0.02985743, 0.0294299, 0.02900809, 0.02859191, 0.02818131, 0.02777621, 0.02737656, 0.02698227, 0.02659328, 0.02620954, 0.02583097, 0.02545751, 0.02508909, 0.02472566, 0.02436715, 0.0240135, 0.02366465, 0.02332054, 0.02298111, 0.0226463, 0.02231606, 0.02199032, 0.02166903, 0.02135214, 0.02103958, 0.02073131, 0.02042726, 0.0201274, 0.01983165, 0.01953998, 0.01925232, 0.01896864, 0.01868887, 0.01841296, 0.01814088, 0.01787256, 0.01760797, 0.01734705, 0.01708975, 0.01683604, 0.01658586, 0.01633916, 0.01609591, 0.01585606, 0.01561956, 0.01538637, 0.01515645, 0.01492976, 0.01470625, 0.01448588, 0.01426862, 0.01405441, 0.01384323, 0.01363503, 0.01342977, 0.01322742, 0.01302793, 0.01283127, 0.0126374, 0.01244628, 0.01225788, 0.01207217, 0.0118891, 0.01170864, 0.01153076, 0.01135542, 0.01118259, 0.01101224, 0.01084433, 0.01067883, 0.01051571, 0.01035493, 0.01019647, 0.0100403, 0.00988637, 0.00973467, 0.00958516, 0.00943782, 0.00929261, 0.00914951, 0.00900848, 0.0088695, 0.00873255, 0.00859758, 0.00846459, 0.00833353, 0.00820439, 0.00807714, 0.00795175, 0.00782819, 0.00770645, 0.00758649, 0.0074683, 0.00735184, 0.0072371, 0.00712405, 0.00701267, 0.00690293, 0.00679481, 0.0066883, 0.00658336, 0.00647997, 0.00637812, 0.00627778, 0.00617894, 0.00608156, 0.00598564, 0.00589114, 0.00579806, 0.00570636, 0.00561604, 0.00552707, 0.00543943, 0.00535311, 0.00526809, 0.00518434, 0.00510185, 0.0050206, 0.00494058, 0.00486176, 0.00478414, 0.00470768, 0.00463239, 0.00455823, 0.0044852, 0.00441328, 0.00434245, 0.0042727, 0.004204, 0.00413636, 0.00406974, 0.00400415, 0.00393955, 0.00387594, 0.00381331, 0.00375163, 0.0036909, 0.00363111, 0.00357223, 0.00351425, 0.00345717, 0.00340097, 0.00334564, 0.00329116, 0.00323752, 0.00318471, 0.00313271, 0.00308153, 0.00303113, 0.00298152, 0.00293268, 0.0028846, 0.00283727, 0.00279068, 0.00274481, 0.00269966, 0.00265521, 0.00261146, 0.0025684, 0.002526, 0.00248428, 0.00244321, 0.00240278, 0.00236299, 0.00232383, 0.00228528, 0.00224734, 0.00221, 0.00217325, 0.00213708, 0.00210148, 0.00206645, 0.00203197, 0.00199804, 0.00196465, 0.00193179, 0.00189945, 0.00186763, 0.00183631, 0.0018055, 0.00177518, 0.00174534, 0.00171598, 0.00168709, 0.00165866, 0.00163069, 0.00160317, 0.00157609, 0.00154944, 0.00152323, 0.00149744, 0.00147206, 0.00144709, 0.00142253, 0.00139836, 0.00137459, 0.0013512, 0.00132819, 0.00130555, 0.00128328, 0.00126138, 0.00123983, 0.00121863, 0.00119778, 0.00117726, 0.00115708, 0.00113724, 0.00111771, 0.00109851, 0.00107962, 0.00106104, 0.00104277, 0.0010248, 0.00100712, 0.00098973, 0.00097263, 0.00095581, 0.00093927, 0.00092301, 0.00090701, 0.00089127, 0.0008758, 0.00086059, 0.00084562, 0.00083091, 0.00081644, 0.00080221, 0.00078821, 0.00077445, 0.00076092, 0.00074762, 0.00073454, 0.00072167, 0.00070903, 0.00069659, 0.00068436, 0.00067234, 0.00066052, 0.0006489, 0.00063747, 0.00062624, 0.0006152, 0.00060434, 0.00059366, 0.00058317, 0.00057285, 0.00056271, 0.00055274, 0.00054294, 0.0005333, 0.00052383, 0.00051452, 0.00050537, 0.00049637, 0.00048753, 0.00047884, 0.00047029, 0.0004619, 0.00045364, 0.00044553, 0.00043755, 0.00042972, 0.00042201, 0.00041444, 0.000407, 0.00039969, 0.0003925, 0.00038544, 0.0003785, 0.00037168, 0.00036498, 0.00035839, 0.00035192, 0.00034555, 0.0003393, 0.00033316, 0.00032712, 0.00032119, 0.00031536, 0.00030964, 0.00030401, 0.00029848, 0.00029305, 0.00028771, 0.00028247, 0.00027731, 0.00027225, 0.00026728, 0.00026239, 0.00025759, 0.00025287, 0.00024824, 0.00024369, 0.00023921, 0.00023482, 0.0002305, 0.00022626, 0.0002221, 0.00021801, 0.00021399, 0.00021004, 0.00020616, 0.00020235, 0.00019861, 0.00019494, 0.00019133, 0.00018778, 0.0001843, 0.00018088, 0.00017752, 0.00017422, 0.00017098, 0.0001678, 0.00016467, 0.0001616, 0.00015859, 0.00015563, 0.00015272, 0.00014986, 0.00014706, 0.00014431, 0.0001416, 0.00013895, 0.00013634, 0.00013378, 0.00013127, 0.0001288, 0.00012637, 0.00012399, 0.00012166, 0.00011936, 0.00011711, 0.0001149, 0.00011272, 0.00011059, 0.0001085, 0.00010644, 0.00010443, 0.00010244, 0.0001005, 0.00009859, 0.00009672, 0.00009487, 0.00009307, 0.0000913, 0.00008955, 0.00008785, 0.00008617, 0.00008452, 0.00008291, 0.00008132, 0.00007976, 0.00007823, 0.00007673, 0.00007526, 0.00007381, 0.0000724, 0.000071, 0.00006964, 0.0000683, 0.00006698, 0.00006569, 0.00006442, 0.00006317, 0.00006195, 0.00006076, 0.00005958, 0.00005843, 0.00005729, 0.00005618, 0.00005509, 0.00005402, 0.00005297, 0.00005194, 0.00005093, 0.00004994, 0.00004896, 0.00004801, 0.00004707, 0.00004615, 0.00004525, 0.00004436, 0.0000435, 0.00004264, 0.00004181, 0.00004099, 0.00004018, 0.00003939, 0.00003862, 0.00003786, 0.00003711, 0.00003638, 0.00003566, 0.00003496, 0.00003427, 0.00003359, 0.00003293, 0.00003228, 0.00003164, 0.00003101, 0.0000304, 0.00002979, 0.0000292, 0.00002862, 0.00002805, 0.0000275, 0.00002695, 0.00002641, 0.00002589, 0.00002537, 0.00002486, 0.00002437, 0.00002388, 0.0000234, 0.00002293, 0.00002247, 0.00002202, 0.00002158, 0.00002115, 0.00002072, 0.00002031, 0.0000199, 0.0000195, 0.00001911, 0.00001872, 0.00001834, 0.00001797, 0.00001761, 0.00001725, 0.0000169, 0.00001656, 0.00001623, 0.0000159, 0.00001558, 0.00001526, 0.00001495, 0.00001465, 0.00001435, 0.00001406, 0.00001377, 0.00001349, 0.00001321, 0.00001295, 0.00001268, 0.00001242, 0.00001217, 0.00001192, 0.00001167, 0.00001144, 0.0000112, 0.00001097, 0.00001075, 0.00001053, 0.00001031, 0.0000101, 9.88944154e-06, 9.68577646e-06, 9.48617264e-06, 9.29055192e-06, 9.09883759e-06, 8.91095438e-06, 8.72682837e-06, 8.54638706e-06, 8.36955925e-06, 8.19627512e-06, 8.02646608e-06, 7.86006487e-06, 7.69700544e-06, 7.537223e-06, 7.38065397e-06, 7.22723593e-06, 7.07690764e-06, 6.92960901e-06, 6.78528109e-06, 6.64386597e-06, 6.50530691e-06, 6.36954819e-06, 6.23653511e-06, 6.10621404e-06, 5.97853236e-06, 5.85343841e-06, 5.73088151e-06, 5.61081195e-06, 5.49318096e-06, 5.37794068e-06, 5.26504414e-06, 5.15444529e-06, 5.04609891e-06, 4.93996068e-06, 4.8359871e-06, 4.73413549e-06, 4.63436399e-06, 4.53663152e-06, 4.44089781e-06, 4.34712334e-06, 4.25526932e-06, 4.16529774e-06, 4.07717128e-06, 3.99085336e-06, 3.90630808e-06, 3.82350025e-06, 3.74239532e-06, 3.66295943e-06, 3.58515935e-06, 3.50896249e-06, 3.4343369e-06, 3.36125125e-06, 3.28967477e-06, 3.21957731e-06, 3.15092932e-06, 3.08370178e-06, 3.01786628e-06, 2.9533949e-06, 2.89026029e-06, 2.82843563e-06, 2.76789461e-06, 2.70861146e-06, 2.65056084e-06, 2.59371799e-06, 2.53805857e-06, 2.48355872e-06, 2.43019505e-06, 2.37794465e-06, 2.32678501e-06, 2.2766941e-06, 2.2276503e-06, 2.1796324e-06, 2.13261964e-06, 2.08659164e-06, 2.0415284e-06, 1.99741038e-06, 1.95421833e-06, 1.91193345e-06, 1.87053729e-06, 1.83001174e-06, 1.79033907e-06, 1.7515019e-06, 1.71348317e-06, 1.67626617e-06, 1.63983452e-06, 1.60417218e-06, 1.56926339e-06, 1.53509272e-06, 1.50164506e-06, 1.46890558e-06, 1.43685973e-06, 1.40549329e-06, 1.37479229e-06, 1.34474305e-06, 1.31533216e-06, 1.28654645e-06, 1.25837306e-06, 1.23079937e-06, 1.20381299e-06, 1.1774018e-06, 1.1515539e-06, 1.12625764e-06, 1.10150164e-06, 1.07727466e-06, 1.05356577e-06, 1.03036422e-06, 1.00765948e-06, 9.85441233e-07, 9.6369935e-07, 9.42423952e-07, 9.2160532e-07, 9.01233946e-07, 8.81300494e-07, 8.6179584e-07, 8.42711046e-07, 8.24037315e-07, 8.05766092e-07, 7.87888936e-07, 7.70397605e-07, 7.53284013e-07, 7.36540258e-07, 7.20158567e-07, 7.04131367e-07, 6.88451181e-07, 6.73110748e-07, 6.58102891e-07, 6.43420634e-07, 6.29057126e-07, 6.15005618e-07, 6.01259558e-07, 5.87812494e-07, 5.74658117e-07, 5.6179023e-07, 5.49202767e-07, 5.36889829e-07, 5.24845561e-07, 5.13064307e-07, 5.01540455e-07, 4.90268576e-07, 4.79243297e-07, 4.6845939e-07, 4.57911725e-07, 4.47595255e-07, 4.37505079e-07, 4.27636365e-07, 4.17984396e-07, 4.08544551e-07, 3.99312285e-07, 3.90283191e-07, 3.81452892e-07, 3.72817169e-07, 3.64371829e-07, 3.56112807e-07, 3.48036096e-07, 3.40137802e-07, 3.32414089e-07, 3.24861205e-07, 3.17475482e-07, 3.10253327e-07, 3.031912e-07, 2.96285677e-07, 2.89533375e-07, 2.82930984e-07, 2.76475262e-07, 2.70163071e-07, 2.63991282e-07, 2.5795687e-07, 2.5205685e-07, 2.46288337e-07, 2.40648461e-07, 2.35134422e-07, 2.2974352e-07, 2.24473069e-07, 2.19320441e-07, 2.14283077e-07, 2.09358475e-07, 2.04544193e-07, 1.998378e-07, 1.95236964e-07, 1.90739385e-07, 1.86342788e-07, 1.82044985e-07, 1.77843816e-07, 1.73737163e-07, 1.69722952e-07, 1.65799165e-07, 1.61963825e-07, 1.58214974e-07, 1.54550733e-07, 1.50969242e-07, 1.47468683e-07, 1.44047263e-07, 1.4070325e-07, 1.37434938e-07, 1.34240665e-07, 1.31118796e-07, 1.28067725e-07, 1.25085904e-07, 1.22171784e-07, 1.19323886e-07, 1.16540747e-07, 1.13820917e-07, 1.11163004e-07, 1.08565644e-07, 1.06027471e-07, 1.03547194e-07, 1.01123518e-07, 9.87551942e-08, 9.64409708e-08, 9.41796685e-08, 9.19700796e-08, 8.98110954e-08, 8.77015509e-08, 8.56403517e-08, 8.3626432e-08, 8.16587118e-08, 7.97361821e-08, 7.7857834e-08, 7.60226584e-08, 7.42296891e-08, 7.24780023e-08, 7.07666601e-08, 6.9094753e-08, 6.74614e-08, 6.586572e-08, 6.43069029e-08, 6.27840819e-08, 6.12964755e-08, 5.98432734e-08, 5.84236943e-08, 5.70369991e-08, 5.56824347e-08, 5.43592762e-08, 5.30668132e-08, 5.18043493e-08, 5.05712165e-08, 4.93667471e-08, 4.81902873e-08, 4.70411976e-08, 4.59188669e-08, 4.48226842e-08, 4.37520526e-08, 4.27064037e-08, 4.16851549e-08, 4.0687766e-08, 3.97136688e-08, 3.87623658e-08, 3.78333027e-08, 3.69259965e-08, 3.60399497e-08, 3.5174665e-08, 3.43296733e-08, 3.35045058e-08, 3.2698722e-08, 3.19118669e-08, 3.11435002e-08, 3.03932239e-08, 2.96605975e-08, 2.89452231e-08, 2.8246717e-08, 2.7564667e-08, 2.68987179e-08, 2.62484861e-08, 2.56136161e-08, 2.49937528e-08, 2.4388541e-08, 2.37976536e-08, 2.32207498e-08, 2.2657531e-08, 2.21076419e-08, 2.15708127e-08, 2.10467164e-08, 2.05350688e-08, 2.00355714e-08, 1.95479544e-08, 1.90719334e-08, 1.86072526e-08, 1.81536279e-08, 1.77108319e-08, 1.72785803e-08, 1.68566316e-08, 1.64447727e-08, 1.60427476e-08, 1.5650329e-08, 1.52673039e-08, 1.48934305e-08, 1.452851e-08, 1.41723433e-08, 1.38247032e-08, 1.34854048e-08, 1.31542492e-08, 1.28310518e-08, 1.25156134e-08, 1.22077637e-08, 1.19073178e-08, 1.1614091e-08, 1.13279413e-08, 1.10486837e-08, 1.07761622e-08, 1.0510206e-08, 1.02506732e-08, 9.99740735e-09, 9.75026637e-09, 9.50909396e-09, 9.2737622e-09, 9.044129e-09, 8.82006645e-09, 8.60141824e-09, 8.38808489e-09, 8.17992429e-09, 7.97680855e-09, 7.77863818e-09, 7.58528529e-09, 7.39662198e-09, 7.21256299e-09, 7.03298042e-09, 6.85777479e-09, 6.68683242e-09, 6.52006804e-09, 6.35736797e-09, 6.19864693e-09, 6.04380546e-09, 5.89274407e-09, 5.74537751e-09, 5.6016205e-09, 5.46137358e-09, 5.32457989e-09, 5.19112575e-09, 5.06095432e-09, 4.93398034e-09, 4.81011853e-09, 4.68929784e-09, 4.57144722e-09, 4.45650983e-09, 4.34438618e-09, 4.23503366e-09, 4.12836698e-09, 4.02432931e-09, 3.92286381e-09, 3.82391363e-09, 3.7273935e-09, 3.6332608e-09, 3.54145868e-09, 3.45191609e-09, 3.36460459e-09, 3.27945315e-09, 3.19640492e-09, 3.11541726e-09, 3.03644754e-09, 2.95943892e-09, 2.88433455e-09, 2.8110918e-09, 2.73968226e-09, 2.67004907e-09, 2.6021354e-09, 2.53592702e-09, 2.47136711e-09, 2.40841302e-09, 2.34703634e-09, 2.28718022e-09, 2.22883045e-09, 2.17193019e-09, 2.11645101e-09, 2.0623645e-09, 2.00964223e-09, 1.95822736e-09, 1.90810567e-09, 1.85923454e-09, 1.81159976e-09, 1.76515869e-09, 1.7198829e-09, 1.67574399e-09, 1.63271352e-09, 1.59076308e-09, 1.54987845e-09, 1.510017e-09, 1.47115031e-09, 1.43327838e-09, 1.39635858e-09, 1.36036249e-09, 1.3252901e-09, 1.29109878e-09, 1.25776012e-09, 1.2252741e-09, 1.19361232e-09, 1.16276055e-09, 1.13267618e-09, 1.10335918e-09, 1.07478115e-09, 1.04694209e-09, 1.01979936e-09, 9.93352955e-10, 9.67574465e-10, 9.42449674e-10, 9.17964371e-10, 8.94104346e-10, 8.70855388e-10, 8.48189075e-10, 8.26105406e-10, 8.04590172e-10, 7.83629162e-10, 7.63193952e-10, 7.43284545e-10, 7.23886728e-10, 7.04972081e-10, 6.86554813e-10, 6.68606503e-10, 6.51127152e-10, 6.34074127e-10, 6.17475848e-10, 6.01303896e-10, 5.85544058e-10, 5.70182124e-10, 5.55232305e-10, 5.40651968e-10, 5.26455324e-10, 5.12613951e-10, 4.99142061e-10, 4.86011231e-10, 4.73221462e-10, 4.60758542e-10, 4.48608262e-10, 4.36784831e-10, 4.25274038e-10, 4.14047463e-10, 4.03119316e-10, 3.92461175e-10, 3.82087251e-10, 3.71983333e-10, 3.62149422e-10, 3.52557095e-10, 3.43220563e-10, 3.34125616e-10, 3.25272254e-10, 3.16646265e-10, 3.0824765e-10, 3.00062197e-10, 2.92089908e-10, 2.8431657e-10, 2.76756396e-10, 2.69395173e-10, 2.62218691e-10, 2.55241162e-10, 2.48434162e-10, 2.41811904e-10, 2.35360176e-10, 2.29078978e-10, 2.2296831e-10, 2.17013962e-10, 2.11215934e-10, 2.05560013e-10, 2.00060413e-10, 1.9470292e-10, 1.89487537e-10, 1.84414262e-10, 1.79468884e-10, 1.74651404e-10, 1.69961822e-10, 1.65400138e-10, 1.60952141e-10, 1.56632041e-10, 1.52425628e-10, 1.48318691e-10, 1.4432544e-10, 1.40431666e-10, 1.36651579e-10, 1.32970968e-10, 1.29375621e-10, 1.25893962e-10, 1.22497568e-10, 1.19186438e-10, 1.15960574e-10, 1.12819976e-10, 1.09764642e-10, 1.06794573e-10, 1.0390977e-10, 1.0109602e-10, 9.83533255e-11, 9.56816848e-11, 9.30810984e-11, 9.05657771e-11, 8.80930884e-11, 8.57056648e-11, 8.33750846e-11, 8.11013479e-11, 7.88986654e-11, 7.67528263e-11, 7.46638307e-11, 7.26174676e-11, 7.06421588e-11, 6.87094825e-11, 6.68336497e-11, 6.50146603e-11, 6.32383035e-11, 6.15045792e-11, 5.98276984e-11, 5.81792392e-11, 5.65876235e-11, 5.50386403e-11, 5.35322897e-11, 5.20685717e-11, 5.06332754e-11, 4.92406116e-11, 4.78905804e-11, 4.65831818e-11, 4.5289994e-11, 4.40536496e-11, 4.28315161e-11, 4.16520152e-11, 4.05151468e-11, 3.93924893e-11, 3.83124643e-11, 3.72466502e-11, 3.62234687e-11, 3.52287088e-11, 3.42481599e-11, 3.32960326e-11, 3.23865379e-11, 3.1491254e-11, 3.06101811e-11, 2.97717406e-11, 2.89475111e-11, 2.81374923e-11, 2.73558953e-11, 2.660272e-11, 2.58637556e-11, 2.5139002e-11, 2.44426701e-11, 2.37605491e-11, 2.31068498e-11, 2.24531505e-11, 2.18278728e-11, 2.12310169e-11, 2.0634161e-11, 2.0051516e-11, 1.94972927e-11, 1.89572802e-11, 1.84314786e-11, 1.79056769e-11, 1.7408297e-11, 1.6925128e-11, 1.64419589e-11, 1.59872116e-11, 1.55466751e-11, 1.51061386e-11, 1.46798129e-11, 1.42676981e-11, 1.38697942e-11, 1.34861011e-11, 1.3102408e-11, 1.27329258e-11, 1.23776545e-11, 1.20223831e-11, 1.16813226e-11, 1.13544729e-11, 1.10418341e-11, 1.07291953e-11, 1.04307674e-11, 1.01323394e-11, 9.84812232e-12, 9.56390522e-12, 9.29389898e-12, 9.0381036e-12, 8.78230821e-12, 8.52651283e-12, 8.2849283e-12, 8.05755462e-12, 7.83018095e-12, 7.60280727e-12, 7.38964445e-12, 7.17648163e-12, 6.97752967e-12, 6.7785777e-12, 6.57962573e-12, 6.39488462e-12, 6.21014351e-12, 6.03961325e-12, 5.869083e-12, 5.69855274e-12, 5.54223334e-12, 5.37170308e-12, 5.22959454e-12, 5.07327513e-12, 4.93116659e-12, 4.78905804e-12, 4.64694949e-12, 4.5190518e-12, 4.39115411e-12, 4.26325641e-12, 4.14956958e-12, 4.02167188e-12, 3.90798505e-12, 3.79429821e-12, 3.68061137e-12, 3.58113539e-12, 3.48165941e-12, 3.38218342e-12, 3.28270744e-12, 3.18323146e-12, 3.09796633e-12, 3.0127012e-12, 2.91322522e-12, 2.84217094e-12, 2.75690581e-12, 2.67164069e-12, 2.60058641e-12, 2.51532128e-12, 2.44426701e-12, 2.37321274e-12, 2.31636932e-12, 2.24531505e-12, 2.17426077e-12, 2.11741735e-12, 2.06057393e-12, 1.98951966e-12, 1.93267624e-12, 1.87583282e-12, 1.8189894e-12, 1.77635684e-12, 1.71951342e-12, 1.67688086e-12, 1.62003744e-12, 1.57740487e-12, 1.53477231e-12, 1.49213975e-12, 1.43529633e-12, 1.40687462e-12, 1.36424205e-12, 1.32160949e-12, 1.27897692e-12, 1.25055521e-12, 1.20792265e-12, 1.16529009e-12, 1.13686838e-12, 1.10844667e-12, 1.0658141e-12, 1.03739239e-12, 1.00897068e-12, 9.80548975e-13, 9.52127266e-13, 9.23705556e-13, 8.95283847e-13, 8.66862138e-13, 8.38440428e-13, 8.24229573e-13, 7.95807864e-13, 7.67386155e-13, 7.531753e-13, 7.2475359e-13, 7.10542736e-13, 6.82121026e-13, 6.67910172e-13, 6.39488462e-13, 6.25277607e-13, 6.11066753e-13, 5.96855898e-13, 5.68434189e-13, 5.54223334e-13, 5.40012479e-13, 5.25801624e-13, 5.1159077e-13, 4.97379915e-13, 4.8316906e-13, 4.68958206e-13, 4.54747351e-13, 4.40536496e-13, 4.26325641e-13, 4.12114787e-13, 3.97903932e-13, 3.83693077e-13, 3.69482223e-13, 3.69482223e-13, 3.55271368e-13, 3.41060513e-13, 3.26849658e-13, 3.26849658e-13, 3.12638804e-13, 2.98427949e-13, 2.98427949e-13, 2.84217094e-13, 2.84217094e-13, 2.7000624e-13, 2.55795385e-13, 2.55795385e-13, 2.4158453e-13, 2.4158453e-13, 2.27373675e-13, 2.27373675e-13, 2.13162821e-13, 2.13162821e-13, 1.98951966e-13, 1.98951966e-13, 1.98951966e-13, 1.84741111e-13, 1.84741111e-13, 1.70530257e-13, 1.70530257e-13, 1.70530257e-13, 1.56319402e-13, 1.56319402e-13, 1.56319402e-13, 1.42108547e-13, 1.42108547e-13, 1.42108547e-13, 1.27897692e-13, 1.27897692e-13, 1.27897692e-13, 1.27897692e-13, 1.13686838e-13, 1.13686838e-13, 1.13686838e-13, 1.13686838e-13, 9.9475983e-14, 9.9475983e-14, 9.9475983e-14, 9.9475983e-14, 8.52651283e-14, 8.52651283e-14, 8.52651283e-14, 8.52651283e-14, 8.52651283e-14, 8.52651283e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.09819607, 6.10152203, 6.10706893, 6.11484224, 6.12484959, 6.13710087, 6.15160812, 6.16838567, 6.18745005, 6.20882009, 6.2325169, 6.2585639, 6.28698687, 6.31781397, 6.35107575, 6.38680523, 6.42503792, 6.46581183, 6.50916758, 6.55514839, 6.60380017, 6.65517154, 6.70931391, 6.76628153, 6.82613154, 6.88892405, 6.95472219, 7.02359218, 7.09560343, 7.17082856, 7.24934348, 7.33122753, 7.41656347, 7.50543762, 7.59793988, 7.69416389, 7.79420702, 7.89817053, 8.00615958, 8.11828338, 8.23465518, 8.35539245, 8.48061686, 8.61045441, 8.74503547, 8.88449487, 9.02897193, 9.17861051, 9.3335591, 9.4939708, 9.66000339, 9.83181933, 10.00958577, 10.19347455, 10.38366217, 10.58032974, 10.78366295, 10.99385199, 11.21109144, 11.43558015, 11.66752109, 11.90712118, 12.15459109, 12.41014498, 12.67400021, 12.94637708, 13.2274984, 13.51758912, 13.81687589, 14.12558652, 14.44394947, 14.77219318, 15.11054546, 15.4592327, 15.81847911, 16.18850584, 16.56953004, 16.96176387, 17.36541341, 17.78067751, 18.20774662, 18.64680141, 19.0980115, 19.56153396, 20.03751188, 20.52607276, 21.02732695, 21.54136594, 22.06826073, 22.60806004, 23.16078862, 23.72644543, 24.30500195, 24.89640039, 25.50055205, 26.11733567, 26.74659582, 27.3881415, 28.04174473, 28.70713935, 29.38402, 30.07204118, 30.77081664, 31.47991891, 32.19887914, 32.92718712, 33.66429173, 34.40960153, 35.16248577, 35.92227571, 36.68826624, 37.45971786, 38.23585894, 39.01588841, 39.79897863, 40.58427864, 41.37091769, 42.15800892, 42.94465341, 43.72994426, 44.5129709, 45.2928235, 46.06859742, 46.83939767, 47.60434334, 48.36257197, 49.11324377, 49.85554569, 50.58869527, 51.31194422, 52.02458176, 52.72593761, 53.41538464, 54.09234116, 54.75627285, 55.40669426, 56.04316995, 56.66531526, 57.2727966, 57.86533147, 58.44268807, 59.00468457, 59.55118807, 60.08211327, 60.59742087, 61.09711574, 61.58124487, 62.04989518, 62.50319117, 62.94129244, 63.36439113, 63.7727094, 64.1664967, 64.54602724, 64.9115973, 65.26352275, 65.60213648, 65.927786, 66.24083112, 66.54164167, 66.83059541, 67.108076, 67.37447115, 67.63017079, 67.87556552, 68.11104506, 68.33699687, 68.55380495, 68.76184866, 68.96150175, 69.15313144, 69.33709767, 69.51375241, 69.68343905, 69.84649197, 70.00323611, 70.15398662, 70.29904869, 70.43871729, 70.5732771, 70.70300245, 70.8281573, 70.94899529, 71.06575979, 71.17868406, 71.28799137, 71.39389516, 71.49659928, 71.59629817, 71.69317712, 71.78741251, 71.87917208, 71.96861519, 72.0558931, 72.14114924, 72.22451952, 72.30613259, 72.38611014, 72.46456718, 72.54161229, 72.61734795, 72.69187076, 72.76527173, 72.83763654, 72.90904578, 72.9795752, 73.04929597, 73.11827487, 73.18657453, 73.25425367, 73.32136727, 73.38796679, 73.45410035, 73.51981293, 73.58514653, 73.65014034, 73.71483089, 73.77925225, 73.8434361, 73.90741195, 73.97120719, 74.03484729, 74.09835587, 74.16175483, 74.22506446, 74.28830354, 74.35148941, 74.41463812, 74.47776444, 74.540882, 74.60400333, 74.66713997, 74.73030249, 74.79350057, 74.85674309, 74.92003816, 74.98339314, 75.04681477, 75.11030914, 75.17388176, 75.23753762, 75.3012812, 75.36511653, 75.42904719, 75.49307637, 75.55720689, 75.62144124, 75.68578155, 75.7502297, 75.81478728, 75.87945561, 75.94423581, 76.00912875, 76.07413511, 76.13925541, 76.20448996, 76.26983893, 76.33530235, 76.4008801, 76.46657194, 76.53237754, 76.59829642, 76.66432803, 76.73047173, 76.79672679, 76.8630924, 76.92956769, 76.99615172, 77.06284348, 77.12964192, 77.19654593, 77.26355435, 77.330666, 77.39787963, 77.46519396, 77.53260769, 77.60011948, 77.66772796, 77.73543173, 77.80322938, 77.87111946, 77.93910051, 78.00717104, 78.07532956, 78.14357455, 78.21190447, 78.28031779, 78.34881293, 78.41738832, 78.4860424, 78.55477355, 78.62358017, 78.69246066, 78.76141339, 78.83043674, 78.89952906, 78.96868871, 79.03791405, 79.10720341, 79.17655515, 79.24596758, 79.31543905, 79.38496787, 79.45455237, 79.52419086, 79.59388166, 79.66362306, 79.73341339, 79.80325095, 79.87313403, 79.94306093, 80.01302995, 80.08303938, 80.15308751, 80.22317263, 80.29329303, 80.363447, 80.43363282, 80.50384877, 80.57409314, 80.6443642, 80.71466024, 80.78497953, 80.85532036, 80.925681, 80.99605974, 81.06645484, 81.13686459, 81.20728726, 81.27772113, 81.34816448, 81.41861559, 81.48907273, 81.55953419, 81.62999823, 81.70046316, 81.77092723, 81.84138875, 81.91184598, 81.98229721, 82.05274074, 82.12317484, 82.1935978, 82.26400792, 82.33440349, 82.4047828, 82.47514414, 82.54548581, 82.61580612, 82.68610335, 82.75637583, 82.82662186, 82.89683974, 82.96702778, 83.03718431, 83.10730763, 83.17739608, 83.24744796, 83.31746162, 83.38743538, 83.45736757, 83.52725654, 83.59710062, 83.66689815, 83.73664749, 83.80634699, 83.87599501, 83.9455899, 84.01513003, 84.08461378, 84.15403951, 84.2234056, 84.29271043, 84.36195241, 84.43112991, 84.50024133, 84.56928508, 84.63825958, 84.70716322, 84.77599443, 84.84475164, 84.91343327, 84.98203776, 85.05056356, 85.1190091, 85.18737285, 85.25565327, 85.32384882, 85.39195797, 85.45997921, 85.52791101, 85.59575187, 85.6635003, 85.73115479, 85.79871386, 85.86617602, 85.93353981, 86.00080377, 86.06796642, 86.13502632, 86.20198203, 86.2688321, 86.33557512, 86.40220966, 86.46873431, 86.53514766, 86.60144831, 86.66763489, 86.733706, 86.79966027, 86.86549635, 86.93121286, 86.99680848, 87.06228186, 87.12763167, 87.19285658, 87.2579553, 87.3229265, 87.38776891, 87.45248123, 87.51706219, 87.58151053, 87.64582498, 87.71000429, 87.77404724, 87.83795259, 87.90171911, 87.96534561, 88.02883088, 88.09217373, 88.15537298, 88.21842746, 88.28133601, 88.34409748, 88.40671073, 88.46917463, 88.53148805, 88.5936499, 88.65565907, 88.71751447, 88.77921502, 88.84075966, 88.90214733, 88.96337698, 89.02444758, 89.08535809, 89.14610751, 89.20669484, 89.26711907, 89.32737923, 89.38747435, 89.44740346, 89.50716562, 89.56675988, 89.62618533, 89.68544105, 89.74452612, 89.80343966, 89.86218079, 89.92074863, 89.97914233, 90.03736103, 90.0954039, 90.15327012, 90.21095886, 90.26846933, 90.32580074, 90.38295229, 90.43992324, 90.49671281, 90.55332027, 90.60974488, 90.66598591, 90.72204266, 90.77791442, 90.83360052, 90.88910027, 90.94441301, 90.99953808, 91.05447485, 91.10922268, 91.16378096, 91.21814908, 91.27232645, 91.32631248, 91.3801066, 91.43370825, 91.48711688, 91.54033197, 91.59335297, 91.64617938, 91.6988107, 91.75124644, 91.80348611, 91.85552926, 91.90737542, 91.95902416, 92.01047503, 92.06172762, 92.11278152, 92.16363634, 92.21429167, 92.26474716, 92.31500244, 92.36505715, 92.41491095, 92.46456352, 92.51401453, 92.56326368, 92.61231068, 92.66115524, 92.70979708, 92.75823595, 92.80647158, 92.85450376, 92.90233223, 92.9499568, 92.99737724, 93.04459337, 93.091605, 93.13841196, 93.18501407, 93.2314112, 93.2776032, 93.32358993, 93.36937128, 93.41494714, 93.46031741, 93.505482, 93.55044083, 93.59519384, 93.63974096, 93.68408215, 93.72821738, 93.77214661, 93.81586984, 93.85938705, 93.90269825, 93.94580345, 93.98870268, 94.03139597, 94.07388336, 94.11616491, 94.15824068, 94.20011074, 94.24177518, 94.28323408, 94.32448756, 94.36553571, 94.40637866, 94.44701654, 94.48744948, 94.52767764, 94.56770117, 94.60752024, 94.64713502, 94.6865457, 94.72575246, 94.76475551, 94.80355506, 94.84215133, 94.88054454, 94.91873494, 94.95672276, 94.99450825, 95.03209168, 95.06947331, 95.10665343, 95.14363232, 95.18041026, 95.21698757, 95.25336454, 95.28954151, 95.32551878, 95.36129669, 95.39687558, 95.4322558, 95.4674377, 95.50242164, 95.537208, 95.57179714, 95.60618945, 95.64038531, 95.67438514, 95.70818932, 95.74179827, 95.77521241, 95.80843216, 95.84145795, 95.87429021, 95.90692939, 95.93937594, 95.97163032, 96.00369298, 96.0355644, 96.06724504, 96.09873539, 96.13003593, 96.16114716, 96.19206956, 96.22280365, 96.25334993, 96.28370891, 96.31388112, 96.34386707, 96.3736673, 96.40328234, 96.43271273, 96.46195902, 96.49102175, 96.51990148, 96.54859876, 96.57711417, 96.60544826, 96.63360162, 96.66157482, 96.68936844, 96.71698306, 96.74441929, 96.7716777, 96.7987589, 96.82566349, 96.85239208, 96.87894528, 96.9053237, 96.93152796, 96.95755868, 96.98341648, 97.00910199, 97.03461585, 97.05995869, 97.08513114, 97.11013385, 97.13496746, 97.15963262, 97.18412998, 97.20846019, 97.23262391, 97.2566218, 97.28045451, 97.30412272, 97.32762708, 97.35096828, 97.37414697, 97.39716383, 97.42001954, 97.44271478, 97.46525022, 97.48762655, 97.50984445, 97.53190462, 97.55380773, 97.57555447, 97.59714555, 97.61858164, 97.63986345, 97.66099168, 97.68196701, 97.70279015, 97.7234618, 97.74398266, 97.76435344, 97.78457484, 97.80464756, 97.8245723, 97.84434979, 97.86398072, 97.88346581, 97.90280575, 97.92200128, 97.94105309, 97.9599619, 97.97872841, 97.99735335, 98.01583743, 98.03418136, 98.05238585, 98.07045162, 98.08837939, 98.10616986, 98.12382376, 98.1413418, 98.15872469, 98.17597315, 98.19308789, 98.21006964, 98.2269191, 98.24363698, 98.26022401, 98.2766809, 98.29300836, 98.3092071, 98.32527784, 98.34122129, 98.35703816, 98.37272917, 98.38829501, 98.40373641, 98.41905407, 98.43424871, 98.44932102, 98.46427171, 98.4791015, 98.49381108, 98.50840116, 98.52287244, 98.53722563, 98.55146143, 98.56558053, 98.57958364, 98.59347144, 98.60724465, 98.62090395, 98.63445003, 98.64788359, 98.66120532, 98.67441592, 98.68751605, 98.70050643, 98.71338772, 98.72616061, 98.73882579, 98.75138393, 98.76383572, 98.77618182, 98.78842292, 98.8005597, 98.81259281, 98.82452293, 98.83635074, 98.84807689, 98.85970205, 98.87122689, 98.88265206, 98.89397822, 98.90520604, 98.91633616, 98.92736924, 98.93830593, 98.94914687, 98.95989273, 98.97054413, 98.98110172, 98.99156615, 99.00193804, 99.01221805, 99.02240679, 99.03250491, 99.04251303, 99.05243177, 99.06226178, 99.07200365, 99.08165803, 99.09122551, 99.10070673, 99.11010229, 99.1194128, 99.12863888, 99.13778112, 99.14684014, 99.15581652, 99.16471088, 99.17352381, 99.18225589, 99.19090773, 99.19947991, 99.20797301, 99.21638763, 99.22472433, 99.23298371, 99.24116633, 99.24927277, 99.2573036, 99.26525938, 99.27314069, 99.28094809, 99.28868213, 99.29634338, 99.30393238, 99.3114497, 99.31889587, 99.32627146, 99.333577, 99.34081303, 99.3479801, 99.35507873, 99.36210947, 99.36907284, 99.37596937, 99.3827996, 99.38956403, 99.39626319, 99.4028976, 99.40946778, 99.41597423, 99.42241746, 99.42879798, 99.4351163, 99.44137291, 99.44756832, 99.45370302, 99.45977749, 99.46579224, 99.47174775, 99.4776445, 99.48348298, 99.48926366, 99.49498702, 99.50065354, 99.50626369, 99.51181792, 99.51731672, 99.52276054, 99.52814984, 99.53348508, 99.53876671, 99.54399519, 99.54917097, 99.55429448, 99.55936618, 99.5643865, 99.56935589, 99.57427478, 99.5791436, 99.58396278, 99.58873274, 99.59345393, 99.59812675, 99.60275162, 99.60732897, 99.6118592, 99.61634273, 99.62077996, 99.62517131, 99.62951717, 99.63381795, 99.63807404, 99.64228584, 99.64645375, 99.65057814, 99.65465942, 99.65869796, 99.66269415, 99.66664836, 99.67056098, 99.67443238, 99.67826292, 99.68205299, 99.68580295, 99.68951315, 99.69318397, 99.69681577, 99.70040889, 99.70396369, 99.70748054, 99.71095976, 99.71440172, 99.71780675, 99.7211752, 99.72450741, 99.72780371, 99.73106444, 99.73428992, 99.7374805, 99.7406365, 99.74375823, 99.74684603, 99.74990022, 99.7529211, 99.755909, 99.75886423, 99.7617871, 99.76467792, 99.76753699, 99.77036462, 99.77316111, 99.77592675, 99.77866185, 99.7813667, 99.78404158, 99.7866868, 99.78930263, 99.79188936, 99.79444728, 99.79697667, 99.7994778, 99.80195095, 99.8043964, 99.80681442, 99.80920527, 99.81156923, 99.81390656, 99.81621752, 99.81850238, 99.82076139, 99.82299481, 99.8252029, 99.82738591, 99.82954409, 99.83167769, 99.83378695, 99.83587213, 99.83793346, 99.83997118, 99.84198553, 99.84397676, 99.84594509, 99.84789075, 99.84981398, 99.85171501, 99.85359406, 99.85545136, 99.85728713, 99.85910159, 99.86089497, 99.86266747, 99.86441932, 99.86615072, 99.8678619, 99.86955305, 99.87122439, 99.87287613, 99.87450846, 99.8761216, 99.87771574, 99.87929108, 99.88084782, 99.88238616, 99.88390628, 99.88540838, 99.88689266, 99.8883593, 99.88980848, 99.8912404, 99.89265523, 99.89405316, 99.89543437, 99.89679904, 99.89814735, 99.89947946, 99.90079556, 99.90209582, 99.90338041, 99.90464949, 99.90590324, 99.90714182, 99.9083654, 99.90957413, 99.91076819, 99.91194772, 99.9131129, 99.91426387, 99.9154008, 99.91652383, 99.91763311, 99.91872881, 99.91981107, 99.92088004, 99.92193586, 99.92297868, 99.92400865, 99.92502591, 99.92603059, 99.92702285, 99.92800281, 99.92897062, 99.92992641, 99.93087032, 99.93180248, 99.93272302, 99.93363207, 99.93452977, 99.93541623, 99.9362916, 99.93715599, 99.93800952, 99.93885233, 99.93968453, 99.94050625, 99.9413176, 99.9421187, 99.94290968, 99.94369064, 99.9444617, 99.94522298, 99.94597459, 99.94671663, 99.94744923, 99.94817248, 99.9488865, 99.9495914, 99.95028728, 99.95097424, 99.9516524, 99.95232184, 99.95298268, 99.95363501, 99.95427894, 99.95491456, 99.95554198, 99.95616128, 99.95677256, 99.95737592, 99.95797145, 99.95855925, 99.9591394, 99.959712, 99.96027713, 99.96083489, 99.96138536, 99.96192863, 99.96246479, 99.96299392, 99.9635161, 99.96403142, 99.96453997, 99.96504181, 99.96553704, 99.96602573, 99.96650797, 99.96698382, 99.96745337, 99.9679167, 99.96837388, 99.96882498, 99.96927008, 99.96970925, 99.97014257, 99.9705701, 99.97099191, 99.97140809, 99.97181869, 99.97222379, 99.97262344, 99.97301773, 99.97340672, 99.97379046, 99.97416903, 99.97454249, 99.97491091, 99.97527434, 99.97563285, 99.9759865, 99.97633535, 99.97667946, 99.97701889, 99.9773537, 99.97768394, 99.97800968, 99.97833097, 99.97864786, 99.97896042, 99.97926869, 99.97957274, 99.9798726, 99.98016835, 99.98046002, 99.98074768, 99.98103136, 99.98131113, 99.98158704, 99.98185912, 99.98212744, 99.98239203, 99.98265295, 99.98291025, 99.98316396, 99.98341414, 99.98366084, 99.98390409, 99.98414394, 99.98438044, 99.98461363, 99.98484355, 99.98507024, 99.98529375, 99.98551412, 99.98573138, 99.98594559, 99.98615677, 99.98636497, 99.98657023, 99.98677258, 99.98697207, 99.98716873, 99.9873626, 99.98755372, 99.98774212, 99.98792783, 99.9881109, 99.98829136, 99.98846924, 99.98864458, 99.98881741, 99.98898776, 99.98915567, 99.98932117, 99.98948429, 99.98964507, 99.98980353, 99.9899597, 99.99011363, 99.99026533, 99.99041484, 99.99056218, 99.99070739, 99.99085049, 99.99099152, 99.9911305, 99.99126745, 99.99140242, 99.99153541, 99.99166647, 99.99179561, 99.99192286, 99.99204825, 99.99217181, 99.99229355, 99.99241351, 99.9925317, 99.99264816, 99.9927629, 99.99287595, 99.99298733, 99.99309707, 99.99320519, 99.9933117, 99.99341664, 99.99352003, 99.99362188, 99.99372222, 99.99382106, 99.99391844, 99.99401436, 99.99410886, 99.99420194, 99.99429364, 99.99438396, 99.99447293, 99.99456057, 99.99464689, 99.99473191, 99.99481566, 99.99489815, 99.9949794, 99.99505942, 99.99513824, 99.99521586, 99.99529232, 99.99536761, 99.99544177, 99.9955148, 99.99558672, 99.99565755, 99.9957273, 99.995796, 99.99586364, 99.99593026, 99.99599585, 99.99606045, 99.99612406, 99.99618669, 99.99624837, 99.9963091, 99.99636889, 99.99642777, 99.99648575, 99.99654283, 99.99659903, 99.99665436, 99.99670884, 99.99676248, 99.99681529, 99.99686729, 99.99691847, 99.99696887, 99.99701848, 99.99706732, 99.9971154, 99.99716273, 99.99720932, 99.99725519, 99.99730034, 99.99734479, 99.99738854, 99.9974316, 99.997474, 99.99751572, 99.99755679, 99.99759722, 99.99763701, 99.99767617, 99.99771472, 99.99775266, 99.99779, 99.99782675, 99.99786292, 99.99789852, 99.99793355, 99.99796803, 99.99800196, 99.99803535, 99.99806821, 99.99810055, 99.99813237, 99.99816369, 99.9981945, 99.99822482, 99.99825466, 99.99828402, 99.99831291, 99.99834134, 99.99836931, 99.99839683, 99.99842391, 99.99845056, 99.99847677, 99.99850256, 99.99852794, 99.99855291, 99.99857747, 99.99860164, 99.99862541, 99.9986488, 99.99867181, 99.99869445, 99.99871672, 99.99873862, 99.99876017, 99.99878137, 99.99880222, 99.99882274, 99.99884292, 99.99886276, 99.99888229, 99.99890149, 99.99892038, 99.99893896, 99.99895723, 99.9989752, 99.99899288, 99.99901027, 99.99902737, 99.99904419, 99.99906073, 99.99907699, 99.99909299, 99.99910873, 99.9991242, 99.99913941, 99.99915438, 99.99916909, 99.99918356, 99.99919779, 99.99921179, 99.99922555, 99.99923908, 99.99925238, 99.99926546, 99.99927833, 99.99929097, 99.99930341, 99.99931564, 99.99932766, 99.99933948, 99.9993511, 99.99936253, 99.99937376, 99.9993848, 99.99939566, 99.99940634, 99.99941683, 99.99942715, 99.99943729, 99.99944726, 99.99945706, 99.9994667, 99.99947617, 99.99948548, 99.99949463, 99.99950363, 99.99951247, 99.99952116, 99.99952971, 99.9995381, 99.99954636, 99.99955447, 99.99956245, 99.99957028, 99.99957799, 99.99958556, 99.999593, 99.99960031, 99.9996075, 99.99961456, 99.9996215, 99.99962832, 99.99963502, 99.99964161, 99.99964808, 99.99965445, 99.9996607, 99.99966684, 99.99967288, 99.99967881, 99.99968464, 99.99969036, 99.99969599, 99.99970152, 99.99970695, 99.99971229, 99.99971753, 99.99972269, 99.99972775, 99.99973272, 99.99973761, 99.99974241, 99.99974713, 99.99975176, 99.99975631, 99.99976079, 99.99976518, 99.9997695, 99.99977374, 99.9997779, 99.99978199, 99.99978601, 99.99978996, 99.99979384, 99.99979765, 99.99980139, 99.99980506, 99.99980867, 99.99981222, 99.9998157, 99.99981912, 99.99982248, 99.99982578, 99.99982902, 99.9998322, 99.99983533, 99.9998384, 99.99984141, 99.99984437, 99.99984728, 99.99985014, 99.99985294, 99.99985569, 99.9998584, 99.99986105, 99.99986366, 99.99986622, 99.99986873, 99.9998712, 99.99987363, 99.99987601, 99.99987834, 99.99988064, 99.99988289, 99.9998851, 99.99988728, 99.99988941, 99.9998915, 99.99989356, 99.99989557, 99.99989756, 99.9998995, 99.99990141, 99.99990328, 99.99990513, 99.99990693, 99.9999087, 99.99991045, 99.99991215, 99.99991383, 99.99991548, 99.99991709, 99.99991868, 99.99992024, 99.99992177, 99.99992327, 99.99992474, 99.99992619, 99.9999276, 99.999929, 99.99993036, 99.9999317, 99.99993302, 99.99993431, 99.99993558, 99.99993683, 99.99993805, 99.99993924, 99.99994042, 99.99994157, 99.99994271, 99.99994382, 99.99994491, 99.99994598, 99.99994703, 99.99994806, 99.99994907, 99.99995006, 99.99995104, 99.99995199, 99.99995293, 99.99995385, 99.99995475, 99.99995564, 99.9999565, 99.99995736, 99.99995819, 99.99995901, 99.99995982, 99.99996061, 99.99996138, 99.99996214, 99.99996289, 99.99996362, 99.99996434, 99.99996504, 99.99996573, 99.99996641, 99.99996707, 99.99996772, 99.99996836, 99.99996899, 99.9999696, 99.99997021, 99.9999708, 99.99997138, 99.99997195, 99.9999725, 99.99997305, 99.99997359, 99.99997411, 99.99997463, 99.99997514, 99.99997563, 99.99997612, 99.9999766, 99.99997707, 99.99997753, 99.99997798, 99.99997842, 99.99997885, 99.99997928, 99.99997969, 99.9999801, 99.9999805, 99.99998089, 99.99998128, 99.99998166, 99.99998203, 99.99998239, 99.99998275, 99.9999831, 99.99998344, 99.99998377, 99.9999841, 99.99998442, 99.99998474, 99.99998505, 99.99998535, 99.99998565, 99.99998594, 99.99998623, 99.99998651, 99.99998679, 99.99998705, 99.99998732, 99.99998758, 99.99998783, 99.99998808, 99.99998833, 99.99998856, 99.9999888, 99.99998903, 99.99998925, 99.99998947, 99.99998969, 99.9999899, 99.99999011, 99.99999031, 99.99999051, 99.99999071, 99.9999909, 99.99999109, 99.99999127, 99.99999145, 99.99999163, 99.9999918, 99.99999197, 99.99999214, 99.9999923, 99.99999246, 99.99999262, 99.99999277, 99.99999292, 99.99999307, 99.99999321, 99.99999336, 99.99999349, 99.99999363, 99.99999376, 99.99999389, 99.99999402, 99.99999415, 99.99999427, 99.99999439, 99.99999451, 99.99999462, 99.99999473, 99.99999485, 99.99999495, 99.99999506, 99.99999516, 99.99999527, 99.99999537, 99.99999546, 99.99999556, 99.99999565, 99.99999574, 99.99999583, 99.99999592, 99.99999601, 99.99999609, 99.99999618, 99.99999626, 99.99999634, 99.99999641, 99.99999649, 99.99999657, 99.99999664, 99.99999671, 99.99999678, 99.99999685, 99.99999692, 99.99999698, 99.99999705, 99.99999711, 99.99999717, 99.99999723, 99.99999729, 99.99999735, 99.99999741, 99.99999746, 99.99999752, 99.99999757, 99.99999762, 99.99999767, 99.99999772, 99.99999777, 99.99999782, 99.99999787, 99.99999791, 99.99999796, 99.999998, 99.99999805, 99.99999809, 99.99999813, 99.99999817, 99.99999821, 99.99999825, 99.99999829, 99.99999832, 99.99999836, 99.9999984, 99.99999843, 99.99999846, 99.9999985, 99.99999853, 99.99999856, 99.99999859, 99.99999863, 99.99999866, 99.99999868, 99.99999871, 99.99999874, 99.99999877, 99.9999988, 99.99999882, 99.99999885, 99.99999887, 99.9999989, 99.99999892, 99.99999895, 99.99999897, 99.99999899, 99.99999901, 99.99999904, 99.99999906, 99.99999908, 99.9999991, 99.99999912, 99.99999914, 99.99999916, 99.99999918, 99.99999919, 99.99999921, 99.99999923, 99.99999925, 99.99999926, 99.99999928, 99.9999993, 99.99999931, 99.99999933, 99.99999934, 99.99999936, 99.99999937, 99.99999938, 99.9999994, 99.99999941, 99.99999943, 99.99999944, 99.99999945, 99.99999946, 99.99999948, 99.99999949, 99.9999995, 99.99999951, 99.99999952, 99.99999953, 99.99999954, 99.99999955, 99.99999956, 99.99999957, 99.99999958, 99.99999959, 99.9999996, 99.99999961, 99.99999962, 99.99999963, 99.99999964, 99.99999964, 99.99999965, 99.99999966, 99.99999967, 99.99999968, 99.99999968, 99.99999969, 99.9999997, 99.9999997, 99.99999971, 99.99999972, 99.99999972, 99.99999973, 99.99999974, 99.99999974, 99.99999975, 99.99999975, 99.99999976, 99.99999976, 99.99999977, 99.99999978, 99.99999978, 99.99999979, 99.99999979, 99.9999998, 99.9999998, 99.9999998, 99.99999981, 99.99999981, 99.99999982, 99.99999982, 99.99999983, 99.99999983, 99.99999983, 99.99999984, 99.99999984, 99.99999985, 99.99999985, 99.99999985, 99.99999986, 99.99999986, 99.99999986, 99.99999987, 99.99999987, 99.99999987, 99.99999987, 99.99999988, 99.99999988, 99.99999988, 99.99999989, 99.99999989, 99.99999989, 99.99999989, 99.9999999, 99.9999999, 99.9999999, 99.9999999, 99.99999991, 99.99999991, 99.99999991, 99.99999991, 99.99999991, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_LMCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "component_matrix", "component.contribution.matrix"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ID", "sample_code", "n.components", "Im1", "xm1", "b1", "b1.error", "n01", "n01.error", "cs1", "rel_cs1", "Im2", "xm2", "b2", "b2.error", "n02", "n02.error", "cs2", "rel_cs2", "Im3", "xm3", "b3", "b3.error", "n03", "n03.error", "cs3", "rel_cs3", "Im4", "xm4", "b4", "b4.error", "n04", "n04.error", "cs4", "rel_cs4", "Im5", "xm5", "b5", "b5.error", "n05", "n05.error", "cs5", "rel_cs5", "Im6", "xm6", "b6", "b6.error", "n06", "n06.error", "cs6", "rel_cs6", "Im7", "xm7", "b7", "b7.error", "n07", "n07.error", "cs7", "rel_cs7", "pseudo-R^2"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": [""] }, { "type": "character", "attributes": {}, "value": [""] }, { "type": "double", "attributes": {}, "value": [3] }, { "type": "double", "attributes": {}, "value": [169.43976364] }, { "type": "double", "attributes": {}, "value": [49.00632792] }, { "type": "double", "attributes": {}, "value": [1.6655423] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [13690.35593998] }, { "type": "double", "attributes": {}, "value": [3181.5724175] }, { "type": "double", "attributes": {}, "value": [1.95538376e-17] }, { "type": "double", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [23.00772777] }, { "type": "double", "attributes": {}, "value": [204.39705396] }, { "type": "double", "attributes": {}, "value": [0.09574381] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [7753.46093146] }, { "type": "double", "attributes": {}, "value": [1193.67525116] }, { "type": "double", "attributes": {}, "value": [1.12405371e-18] }, { "type": "double", "attributes": {}, "value": [0.0575] }, { "type": "double", "attributes": {}, "value": [405.46174494] }, { "type": "double", "attributes": {}, "value": [1591.66436689] }, { "type": "double", "attributes": {}, "value": [0.00157891] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1064017.12959621] }, { "type": "double", "attributes": {}, "value": [6481.28495432] }, { "type": "double", "attributes": {}, "value": [1.85367392e-20] }, { "type": "double", "attributes": {}, "value": [0.0009] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [0.9437] } ] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [4000, 5] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["TIME", "SUM", "COMP_ 1", "COMP_ 2", "COMP_ 3"] } ] } }, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 6.30486071, 12.60259052, 18.88607336, 25.14822272, 31.38199636, 37.58041086, 43.73655602, 49.84360897, 55.89484816, 61.88366696, 67.80358692, 73.64827073, 79.41153474, 85.08736101, 90.66990893, 96.15352634, 101.53276005, 106.80236591, 111.95731816, 116.99281829, 121.90430321, 126.68745275, 131.33819656, 135.85272026, 140.22747097, 144.45916204, 148.54477717, 152.48157376, 156.26708557, 159.89912462, 163.37578244, 166.69543058, 169.85672041, 172.85858222, 175.7002237, 178.38112767, 180.90104924, 183.26001224, 185.45830516, 187.4964764, 189.37532895, 191.09591463, 192.65952765, 194.06769784, 195.32218329, 196.42496263, 197.37822684, 198.1843708, 198.84598433, 199.36584311, 199.74689912, 199.99227104, 200.10523426, 200.08921085, 199.94775929, 199.6845641, 199.30342547, 198.80824872, 198.20303384, 197.491865, 196.67890007, 195.76836032, 194.76452006, 193.67169659, 192.49424014, 191.23652407, 189.90293529, 188.49786482, 187.02569871, 185.49080909, 183.89754563, 182.25022719, 180.55313389, 178.81049942, 177.02650372, 175.20526602, 173.35083828, 171.46719887, 169.5582468, 167.62779617, 165.67957113, 163.71720112, 161.74421658, 159.76404503, 157.78000748, 155.79531526, 153.81306729, 151.8362476, 149.86772331, 147.91024292, 145.96643502, 144.03880722, 142.12974557, 140.24151415, 138.3762551, 136.53598885, 134.72261471, 132.9379117, 131.18353964, 129.46104049, 127.77183996, 126.11724929, 124.49846725, 122.91658239, 121.37257535, 119.86732146, 118.40159342, 116.97606411, 115.59130956, 114.24781203, 112.94596312, 111.68606702, 110.46834385, 109.29293299, 108.15989647, 107.06922247, 106.0208287, 105.01456593, 104.05022143, 103.12752245, 102.24613965, 101.40569049, 100.60574264, 99.84581731, 99.12539251, 98.44390627, 97.80075982, 97.19532067, 96.6269256, 96.09488363, 95.59847883, 95.13697309, 94.70960881, 94.31561144, 93.95419199, 93.62454939, 93.32587277, 93.05734364, 92.818138, 92.60742826, 92.42438516, 92.26817954, 92.13798398, 92.03297443, 91.95233162, 91.89524251, 91.86090153, 91.84851177, 91.85728609, 91.88644816, 91.93523334, 92.00288954, 92.08867799, 92.1918739, 92.3117671, 92.44766254, 92.59888078, 92.76475838, 92.94464821, 93.13791977, 93.34395938, 93.56217034, 93.79197306, 94.0328051, 94.28412119, 94.54539325, 94.81611024, 95.09577815, 95.38391981, 95.68007473, 95.98379892, 96.29466466, 96.61226026, 96.93618977, 97.26607273, 97.60154384, 97.94225267, 98.28786327, 98.63805389, 98.99251661, 99.35095695, 99.71309353, 100.07865771, 100.44739317, 100.81905559, 101.19341222, 101.57024153, 101.94933283, 102.33048589, 102.71351058, 103.09822647, 103.48446251, 103.87205665, 104.26085548, 104.65071391, 105.04149481, 105.43306867, 105.82531332, 106.21811355, 106.61136088, 107.00495318, 107.39879444, 107.79279447, 108.1868686, 108.58093746, 108.9749267, 109.36876674, 109.76239256, 110.15574342, 110.54876271, 110.94139766, 111.33359919, 111.72532173, 112.11652296, 112.5071637, 112.89720772, 113.28662156, 113.67537438, 114.06343784, 114.45078591, 114.83739477, 115.22324268, 115.60830984, 115.99257829, 116.37603179, 116.75865571, 117.14043696, 117.52136386, 117.90142609, 118.28061455, 118.65892135, 119.03633969, 119.41286377, 119.78848881, 120.16321089, 120.53702694, 120.90993467, 121.28193256, 121.65301973, 122.02319595, 122.39246162, 122.76081765, 123.1282655, 123.49480708, 123.86044479, 124.2251814, 124.58902011, 124.95196445, 125.3140183, 125.67518585, 126.03547157, 126.3948802, 126.75341674, 127.1110864, 127.46789462, 127.82384703, 128.17894945, 128.53320785, 128.88662837, 129.23921729, 129.59098103, 129.94192612, 130.29205922, 130.64138707, 130.98991652, 131.33765451, 131.68460806, 132.03078426, 132.37619026, 132.72083328, 133.06472059, 133.40785953, 133.75025746, 134.09192179, 134.43285998, 134.77307951, 135.11258789, 135.45139265, 135.78950137, 136.12692162, 136.463661, 136.79972713, 137.13512764, 137.46987014, 137.8039623, 138.13741176, 138.47022616, 138.80241316, 139.13398042, 139.46493557, 139.79528628, 140.12504016, 140.45420487, 140.78278801, 141.11079722, 141.43824008, 141.7651242, 142.09145714, 142.41724648, 142.74249975, 143.06722449, 143.39142821, 143.7151184, 144.03830253, 144.36098805, 144.6831824, 145.00489298, 145.32612716, 145.64689231, 145.96719577, 146.28704483, 146.60644676, 146.92540884, 147.24393826, 147.56204224, 147.87972791, 148.19700243, 148.51387288, 148.83034633, 149.14642982, 149.46213034, 149.77745486, 150.09241031, 150.40700358, 150.72124153, 151.03513098, 151.34867871, 151.66189147, 151.97477597, 152.28733887, 152.5995868, 152.91152634, 153.22316405, 153.53450642, 153.84555993, 154.15633098, 154.46682596, 154.77705121, 155.087013, 155.3967176, 155.7061712, 156.01537995, 156.32434998, 156.63308733, 156.94159804, 157.24988808, 157.55796336, 157.86582977, 158.17349314, 158.48095924, 158.78823382, 159.09532255, 159.40223107, 159.70896496, 160.01552977, 160.32193098, 160.62817402, 160.93426427, 161.24020708, 161.54600772, 161.85167142, 162.15720337, 162.4626087, 162.76789247, 163.07305972, 163.37811541, 163.68306447, 163.98791175, 164.29266208, 164.59732021, 164.90189084, 165.20637864, 165.5107882, 165.81512407, 166.11939074, 166.42359265, 166.72773418, 167.03181966, 167.33585337, 167.63983954, 167.94378232, 168.24768584, 168.55155415, 168.85539126, 169.15920112, 169.46298762, 169.7667546, 170.07050586, 170.37424512, 170.67797606, 170.98170231, 171.28542744, 171.58915495, 171.89288832, 172.19663095, 172.50038618, 172.80415732, 173.10794762, 173.41176025, 173.71559836, 174.01946504, 174.3233633, 174.62729612, 174.93126643, 175.23527708, 175.53933091, 175.84343066, 176.14757905, 176.45177874, 176.75603231, 177.06034234, 177.3647113, 177.66914166, 177.9736358, 178.27819607, 178.58282475, 178.88752409, 179.19229627, 179.49714342, 179.80206765, 180.10707097, 180.41215537, 180.7173228, 181.02257513, 181.32791419, 181.63334178, 181.93885962, 182.24446941, 182.55017279, 182.85597134, 183.1618666, 183.46786007, 183.77395319, 184.08014737, 184.38644395, 184.69284423, 184.99934948, 185.30596091, 185.61267968, 185.91950691, 186.22644368, 186.53349101, 186.84064988, 187.14792125, 187.45530601, 187.762805, 188.07041903, 188.37814887, 188.68599525, 188.99395884, 189.30204027, 189.61024016, 189.91855904, 190.22699743, 190.5355558, 190.84423459, 191.15303419, 191.46195494, 191.77099716, 192.08016112, 192.38944706, 192.69885517, 193.0083856, 193.31803849, 193.6278139, 193.93771189, 194.24773246, 194.55787558, 194.8681412, 195.17852921, 195.48903948, 195.79967184, 196.11042609, 196.42130198, 196.73229925, 197.04341759, 197.35465666, 197.6660161, 197.9774955, 198.28909443, 198.60081241, 198.91264896, 199.22460354, 199.53667561, 199.84886456, 200.16116978, 200.47359063, 200.78612643, 201.09877647, 201.41154002, 201.72441633, 202.0374046, 202.35050402, 202.66371375, 202.97703293, 203.29046065, 203.603996, 203.91763804, 204.23138579, 204.54523827, 204.85919446, 205.17325331, 205.48741377, 205.80167474, 206.11603511, 206.43049377, 206.74504954, 207.05970126, 207.37444773, 207.68928773, 208.00422003, 208.31924336, 208.63435646, 208.94955802, 209.26484673, 209.58022125, 209.89568024, 210.21122232, 210.52684611, 210.84255019, 211.15833316, 211.47419356, 211.79012994, 212.10614084, 212.42222477, 212.73838022, 213.05460568, 213.37089962, 213.68726049, 214.00368673, 214.32017677, 214.63672903, 214.95334191, 215.27001378, 215.58674304, 215.90352804, 216.22036714, 216.53725867, 216.85420097, 217.17119235, 217.48823113, 217.8053156, 218.12244405, 218.43961476, 218.756826, 219.07407603, 219.3913631, 219.70868545, 220.02604132, 220.34342894, 220.66084653, 220.97829229, 221.29576444, 221.61326117, 221.93078068, 222.24832114, 222.56588075, 222.88345767, 223.20105007, 223.51865612, 223.83627397, 224.15390178, 224.4715377, 224.78917986, 225.10682642, 225.42447552, 225.74212527, 226.05977382, 226.37741929, 226.6950598, 227.01269349, 227.33031846, 227.64793284, 227.96553474, 228.28312227, 228.60069355, 228.91824668, 229.23577979, 229.55329097, 229.87077834, 230.18824, 230.50567406, 230.82307863, 231.14045182, 231.45779174, 231.77509648, 232.09236417, 232.40959292, 232.72678082, 233.04392601, 233.36102658, 233.67808066, 233.99508636, 234.31204181, 234.62894511, 234.94579441, 235.26258781, 235.57932346, 235.89599947, 236.21261399, 236.52916515, 236.84565109, 237.16206996, 237.4784199, 237.79469906, 238.11090559, 238.42703766, 238.74309342, 239.05907104, 239.37496869, 239.69078455, 240.00651679, 240.3221636, 240.63772316, 240.95319367, 241.26857332, 241.58386033, 241.89905289, 242.21414922, 242.52914754, 242.84404608, 243.15884305, 243.47353671, 243.78812529, 244.10260703, 244.41698019, 244.73124304, 245.04539382, 245.35943083, 245.67335232, 245.9871566, 246.30084194, 246.61440665, 246.92784902, 247.24116738, 247.55436003, 247.86742531, 248.18036153, 248.49316704, 248.80584019, 249.11837932, 249.4307828, 249.74304899, 250.05517626, 250.367163, 250.67900759, 250.99070843, 251.30226392, 251.61367247, 251.92493251, 252.23604244, 252.54700072, 252.85780578, 253.16845606, 253.47895003, 253.78928614, 254.09946288, 254.40947872, 254.71933214, 255.02902165, 255.33854574, 255.64790293, 255.95709174, 256.26611069, 256.57495832, 256.88363318, 257.19213381, 257.50045877, 257.80860664, 258.11657598, 258.42436539, 258.73197345, 259.03939876, 259.34663994, 259.6536956, 259.96056436, 260.26724485, 260.57373573, 260.88003563, 261.18614322, 261.49205715, 261.79777611, 262.10329878, 262.40862384, 262.71375, 263.01867596, 263.32340044, 263.62792215, 263.93223984, 264.23635224, 264.54025809, 264.84395616, 265.1474452, 265.45072399, 265.75379132, 266.05664595, 266.35928671, 266.66171237, 266.96392177, 267.26591372, 267.56768705, 267.86924059, 268.17057319, 268.4716837, 268.77257098, 269.07323391, 269.37367134, 269.67388218, 269.97386531, 270.27361963, 270.57314405, 270.87243748, 271.17149885, 271.47032708, 271.76892112, 272.06727992, 272.36540241, 272.66328757, 272.96093437, 273.25834178, 273.55550879, 273.85243438, 274.14911756, 274.44555733, 274.74175271, 275.03770271, 275.33340637, 275.62886272, 275.9240708, 276.21902967, 276.51373839, 276.80819601, 277.1024016, 277.39635426, 277.69005306, 277.98349709, 278.27668546, 278.56961728, 278.86229165, 279.1547077, 279.44686455, 279.73876135, 280.03039722, 280.32177133, 280.61288281, 280.90373085, 281.19431459, 281.48463322, 281.77468592, 282.06447188, 282.35399028, 282.64324034, 282.93222125, 283.22093223, 283.5093725, 283.79754128, 284.08543781, 284.37306132, 284.66041107, 284.94748629, 285.23428625, 285.5208102, 285.80705742, 286.09302718, 286.37871877, 286.66413146, 286.94926455, 287.23411733, 287.51868912, 287.80297921, 288.08698693, 288.37071159, 288.65415253, 288.93730906, 289.22018054, 289.50276629, 289.78506568, 290.06707805, 290.34880276, 290.63023918, 290.91138667, 291.19224461, 291.47281238, 291.75308937, 292.03307496, 292.31276854, 292.59216953, 292.87127732, 293.15009132, 293.42861096, 293.70683564, 293.98476479, 294.26239784, 294.53973423, 294.8167734, 295.09351478, 295.36995784, 295.64610201, 295.92194675, 296.19749154, 296.47273582, 296.74767909, 297.0223208, 297.29666045, 297.5706975, 297.84443146, 298.11786182, 298.39098806, 298.66380969, 298.93632623, 299.20853716, 299.48044202, 299.75204031, 300.02333156, 300.29431529, 300.56499104, 300.83535832, 301.10541669, 301.37516568, 301.64460484, 301.91373372, 302.18255186, 302.45105882, 302.71925417, 302.98713746, 303.25470827, 303.52196616, 303.7889107, 304.05554148, 304.32185808, 304.58786007, 304.85354705, 305.11891861, 305.38397434, 305.64871384, 305.91313671, 306.17724255, 306.44103098, 306.7045016, 306.96765403, 307.23048789, 307.49300279, 307.75519835, 308.01707421, 308.27863, 308.53986534, 308.80077986, 309.06137322, 309.32164505, 309.581595, 309.8412227, 310.10052781, 310.35950999, 310.61816889, 310.87650416, 311.13451547, 311.39220248, 311.64956486, 311.90660227, 312.16331439, 312.41970089, 312.67576145, 312.93149574, 313.18690345, 313.44198427, 313.69673787, 313.95116395, 314.2052622, 314.45903232, 314.71247399, 314.96558692, 315.21837081, 315.47082537, 315.72295029, 315.97474528, 316.22621007, 316.47734435, 316.72814784, 316.97862027, 317.22876134, 317.47857078, 317.72804832, 317.97719367, 318.22600657, 318.47448674, 318.72263392, 318.97044784, 319.21792823, 319.46507484, 319.7118874, 319.95836565, 320.20450934, 320.45031821, 320.69579201, 320.94093049, 321.1857334, 321.43020049, 321.67433152, 321.91812624, 322.16158441, 322.40470579, 322.64749015, 322.88993724, 323.13204683, 323.37381869, 323.61525259, 323.85634829, 324.09710558, 324.33752421, 324.57760398, 324.81734465, 325.056746, 325.29580782, 325.53452988, 325.77291196, 326.01095386, 326.24865536, 326.48601625, 326.72303631, 326.95971534, 327.19605313, 327.43204947, 327.66770416, 327.90301699, 328.13798777, 328.37261628, 328.60690234, 328.84084575, 329.0744463, 329.30770381, 329.54061808, 329.77318892, 330.00541613, 330.23729953, 330.46883893, 330.70003415, 330.93088499, 331.16139127, 331.39155281, 331.62136943, 331.85084094, 332.07996717, 332.30874795, 332.53718308, 332.7652724, 332.99301573, 333.2204129, 333.44746374, 333.67416807, 333.90052573, 334.12653654, 334.35220035, 334.57751698, 334.80248626, 335.02710804, 335.25138216, 335.47530844, 335.69888673, 335.92211686, 336.14499869, 336.36753205, 336.58971679, 336.81155275, 337.03303977, 337.25417771, 337.47496641, 337.69540571, 337.91549548, 338.13523556, 338.3546258, 338.57366605, 338.79235617, 339.01069602, 339.22868545, 339.44632431, 339.66361246, 339.88054977, 340.09713609, 340.31337129, 340.52925522, 340.74478774, 340.95996873, 341.17479804, 341.38927554, 341.60340109, 341.81717457, 342.03059584, 342.24366477, 342.45638123, 342.6687451, 342.88075623, 343.09241451, 343.30371981, 343.514672, 343.72527096, 343.93551656, 344.14540868, 344.35494721, 344.564132, 344.77296296, 344.98143995, 345.18956286, 345.39733156, 345.60474595, 345.81180591, 346.01851132, 346.22486206, 346.43085802, 346.63649909, 346.84178516, 347.04671611, 347.25129183, 347.45551222, 347.65937716, 347.86288654, 348.06604027, 348.26883823, 348.47128031, 348.67336641, 348.87509643, 349.07647026, 349.27748779, 349.47814894, 349.67845359, 349.87840164, 350.077993, 350.27722756, 350.47610524, 350.67462591, 350.87278951, 351.07059591, 351.26804504, 351.4651368, 351.66187108, 351.8582478, 352.05426687, 352.2499282, 352.44523168, 352.64017724, 352.83476478, 353.02899422, 353.22286546, 353.41637842, 353.60953301, 353.80232914, 353.99476673, 354.1868457, 354.37856596, 354.56992743, 354.76093002, 354.95157366, 355.14185825, 355.33178373, 355.52135001, 355.71055701, 355.89940466, 356.08789287, 356.27602157, 356.46379068, 356.65120012, 356.83824983, 357.02493973, 357.21126974, 357.39723979, 357.5828498, 357.76809971, 357.95298945, 358.13751894, 358.32168812, 358.50549691, 358.68894525, 358.87203306, 359.05476029, 359.23712687, 359.41913273, 359.6007778, 359.78206202, 359.96298533, 360.14354766, 360.32374895, 360.50358914, 360.68306817, 360.86218597, 361.0409425, 361.21933768, 361.39737146, 361.57504378, 361.75235458, 361.92930381, 362.10589141, 362.28211733, 362.45798151, 362.63348389, 362.80862443, 362.98340307, 363.15781975, 363.33187444, 363.50556706, 363.67889758, 363.85186595, 364.02447211, 364.19671601, 364.36859762, 364.54011688, 364.71127374, 364.88206817, 365.0525001, 365.22256951, 365.39227634, 365.56162055, 365.7306021, 365.89922094, 366.06747704, 366.23537036, 366.40290084, 366.57006846, 366.73687318, 366.90331494, 367.06939373, 367.23510949, 367.4004622, 367.56545181, 367.7300783, 367.89434162, 368.05824174, 368.22177863, 368.38495226, 368.54776259, 368.71020959, 368.87229323, 369.03401347, 369.1953703, 369.35636367, 369.51699357, 369.67725996, 369.83716281, 369.99670209, 370.15587779, 370.31468988, 370.47313832, 370.6312231, 370.78894419, 370.94630156, 371.1032952, 371.25992508, 371.41619119, 371.57209349, 371.72763197, 371.88280661, 372.03761739, 372.19206429, 372.34614729, 372.49986638, 372.65322154, 372.80621275, 372.95883999, 373.11110326, 373.26300253, 373.4145378, 373.56570905, 373.71651626, 373.86695942, 374.01703853, 374.16675357, 374.31610454, 374.46509141, 374.61371418, 374.76197285, 374.90986741, 375.05739784, 375.20456414, 375.35136631, 375.49780434, 375.64387822, 375.78958795, 375.93493353, 376.07991494, 376.2245322, 376.36878529, 376.51267422, 376.65619898, 376.79935958, 376.94215601, 377.08458827, 377.22665637, 377.36836031, 377.50970008, 377.6506757, 377.79128717, 377.93153448, 378.07141766, 378.21093669, 378.35009158, 378.48888236, 378.62730901, 378.76537154, 378.90306998, 379.04040432, 379.17737457, 379.31398074, 379.45022285, 379.58610091, 379.72161492, 379.8567649, 379.99155086, 380.12597281, 380.26003078, 380.39372477, 380.52705479, 380.66002087, 380.79262303, 380.92486126, 381.05673561, 381.18824607, 381.31939267, 381.45017544, 381.58059438, 381.71064953, 381.84034089, 381.96966849, 382.09863236, 382.22723252, 382.35546898, 382.48334177, 382.61085092, 382.73799646, 382.86477839, 382.99119677, 383.11725159, 383.24294291, 383.36827074, 383.49323511, 383.61783604, 383.74207358, 383.86594775, 383.98945857, 384.11260609, 384.23539032, 384.35781131, 384.47986909, 384.60156368, 384.72289513, 384.84386346, 384.96446872, 385.08471093, 385.20459013, 385.32410637, 385.44325967, 385.56205007, 385.68047762, 385.79854234, 385.91624429, 386.0335835, 386.15056, 386.26717385, 386.38342508, 386.49931373, 386.61483985, 386.73000348, 386.84480467, 386.95924345, 387.07331988, 387.18703399, 387.30038583, 387.41337546, 387.52600291, 387.63826824, 387.75017149, 387.86171272, 387.97289196, 388.08370927, 388.19416471, 388.30425831, 388.41399014, 388.52336024, 388.63236867, 388.74101548, 388.84930072, 388.95722445, 389.06478672, 389.17198759, 389.27882711, 389.38530534, 389.49142234, 389.59717816, 389.70257286, 389.8076065, 389.91227913, 390.01659083, 390.12054164, 390.22413164, 390.32736087, 390.4302294, 390.5327373, 390.63488462, 390.73667143, 390.8380978, 390.93916378, 391.03986945, 391.14021486, 391.24020009, 391.3398252, 391.43909025, 391.53799532, 391.63654047, 391.73472577, 391.8325513, 391.93001711, 392.02712329, 392.12386989, 392.220257, 392.31628468, 392.41195301, 392.50726206, 392.6022119, 392.69680261, 392.79103425, 392.88490692, 392.97842068, 393.0715756, 393.16437177, 393.25680926, 393.34888815, 393.44060851, 393.53197043, 393.62297399, 393.71361926, 393.80390633, 393.89383527, 393.98340617, 394.0726191, 394.16147416, 394.24997142, 394.33811097, 394.42589289, 394.51331727, 394.60038418, 394.68709373, 394.77344598, 394.85944103, 394.94507897, 395.03035988, 395.11528385, 395.19985097, 395.28406133, 395.36791502, 395.45141213, 395.53455274, 395.61733695, 395.69976486, 395.78183655, 395.86355212, 395.94491166, 396.02591525, 396.10656301, 396.18685502, 396.26679138, 396.34637218, 396.42559752, 396.5044675, 396.58298221, 396.66114175, 396.73894622, 396.81639572, 396.89349035, 396.9702302, 397.04661539, 397.122646, 397.19832214, 397.27364392, 397.34861142, 397.42322477, 397.49748405, 397.57138939, 397.64494086, 397.7181386, 397.79098269, 397.86347324, 397.93561037, 398.00739418, 398.07882477, 398.14990225, 398.22062673, 398.29099833, 398.36101714, 398.43068329, 398.49999687, 398.56895801, 398.63756681, 398.70582338, 398.77372783, 398.84128029, 398.90848086, 398.97532966, 399.04182679, 399.10797238, 399.17376654, 399.23920939, 399.30430104, 399.36904161, 399.43343122, 399.49746998, 399.56115801, 399.62449544, 399.68748237, 399.75011894, 399.81240525, 399.87434144, 399.93592762, 399.99716391, 400.05805044, 400.11858733, 400.1787747, 400.23861267, 400.29810137, 400.35724093, 400.41603147, 400.47447311, 400.53256598, 400.5903102, 400.64770591, 400.70475324, 400.7614523, 400.81780322, 400.87380615, 400.9294612, 400.9847685, 401.03972819, 401.0943404, 401.14860525, 401.20252288, 401.25609343, 401.30931702, 401.36219378, 401.41472386, 401.46690738, 401.51874448, 401.5702353, 401.62137996, 401.67217861, 401.72263138, 401.77273842, 401.82249985, 401.87191581, 401.92098644, 401.96971189, 402.01809229, 402.06612777, 402.11381849, 402.16116458, 402.20816618, 402.25482343, 402.30113648, 402.34710547, 402.39273054, 402.43801183, 402.48294949, 402.52754367, 402.5717945, 402.61570213, 402.65926671, 402.70248839, 402.74536731, 402.78790361, 402.83009745, 402.87194897, 402.91345833, 402.95462567, 402.99545113, 403.03593488, 403.07607705, 403.11587781, 403.1553373, 403.19445567, 403.23323308, 403.27166967, 403.30976561, 403.34752104, 403.38493612, 403.422011, 403.45874584, 403.49514079, 403.53119601, 403.56691165, 403.60228787, 403.63732483, 403.67202269, 403.7063816, 403.74040172, 403.7740832, 403.80742622, 403.84043093, 403.87309748, 403.90542604, 403.93741678, 403.96906984, 404.0003854, 404.03136361, 404.06200464, 404.09230865, 404.12227581, 404.15190628, 404.18120021, 404.21015779, 404.23877917, 404.26706452, 404.295014, 404.32262779, 404.34990604, 404.37684893, 404.40345662, 404.42972929, 404.45566709, 404.48127021, 404.50653881, 404.53147305, 404.55607312, 404.58033917, 404.60427139, 404.62786995, 404.65113501, 404.67406674, 404.69666533, 404.71893095, 404.74086376, 404.76246395, 404.78373168, 404.80466714, 404.82527049, 404.84554192, 404.8654816, 404.88508971, 404.90436642, 404.92331192, 404.94192637, 404.96020996, 404.97816287, 404.99578528, 405.01307736, 405.0300393, 405.04667128, 405.06297347, 405.07894606, 405.09458924, 405.10990317, 405.12488806, 405.13954407, 405.15387139, 405.1678702, 405.1815407, 405.19488306, 405.20789747, 405.22058412, 405.23294318, 405.24497485, 405.25667932, 405.26805676, 405.27910737, 405.28983134, 405.30022885, 405.31030009, 405.32004525, 405.32946453, 405.3385581, 405.34732616, 405.35576891, 405.36388652, 405.3716792, 405.37914714, 405.38629052, 405.39310954, 405.3996044, 405.40577528, 405.41162238, 405.41714589, 405.42234601, 405.42722294, 405.43177686, 405.43600798, 405.43991649, 405.44350258, 405.44676646, 405.44970832, 405.45232836, 405.45462677, 405.45660376, 405.45825952, 405.45959425, 405.46060816, 405.46130144, 405.46167429, 405.46172691, 405.46145951, 405.46087228, 405.45996544, 405.45873917, 405.45719368, 405.45532917, 405.45314586, 405.45064394, 405.44782361, 405.44468508, 405.44122856, 405.43745425, 405.43336235, 405.42895308, 405.42422664, 405.41918323, 405.41382306, 405.40814634, 405.40215328, 405.39584408, 405.38921895, 405.38227811, 405.37502176, 405.36745012, 405.35956338, 405.35136176, 405.34284548, 405.33401474, 405.32486975, 405.31541074, 405.3056379, 405.29555145, 405.2851516, 405.27443857, 405.26341258, 405.25207383, 405.24042253, 405.22845891, 405.21618318, 405.20359555, 405.19069625, 405.17748547, 405.16396345, 405.1501304, 405.13598654, 405.12153207, 405.10676723, 405.09169223, 405.07630729, 405.06061262, 405.04460845, 405.02829499, 405.01167247, 404.99474111, 404.97750112, 404.95995273, 404.94209616, 404.92393162, 404.90545935, 404.88667956, 404.86759248, 404.84819833, 404.82849733, 404.80848971, 404.78817569, 404.7675555, 404.74662935, 404.72539748, 404.70386011, 404.68201746, 404.65986977, 404.63741726, 404.61466015, 404.59159867, 404.56823305, 404.54456351, 404.5205903, 404.49631362, 404.47173372, 404.44685081, 404.42166514, 404.39617693, 404.3703864, 404.3442938, 404.31789935, 404.29120327, 404.26420581, 404.2369072, 404.20930766, 404.18140743, 404.15320674, 404.12470582, 404.09590491, 404.06680424, 404.03740405, 404.00770456, 403.97770602, 403.94740865, 403.9168127, 403.88591839, 403.85472597, 403.82323567, 403.79144772, 403.75936237, 403.72697985, 403.69430039, 403.66132424, 403.62805163, 403.5944828, 403.56061799, 403.52645744, 403.49200139, 403.45725007, 403.42220373, 403.3868626, 403.35122693, 403.31529696, 403.27907293, 403.24255507, 403.20574364, 403.16863887, 403.131241, 403.09355029, 403.05556696, 403.01729126, 402.97872345, 402.93986375, 402.90071241, 402.86126969, 402.82153582, 402.78151104, 402.74119561, 402.70058977, 402.65969376, 402.61850782, 402.57703222, 402.53526719, 402.49321298, 402.45086983, 402.408238, 402.36531773, 402.32210927, 402.27861287, 402.23482877, 402.19075723, 402.14639849, 402.10175281, 402.05682043, 402.01160161, 401.96609659, 401.92030562, 401.87422896, 401.82786686, 401.78121956, 401.73428732, 401.68707039, 401.63956903, 401.59178348, 401.54371401, 401.49536085, 401.44672427, 401.39780452, 401.34860184, 401.29911651, 401.24934877, 401.19929887, 401.14896707, 401.09835363, 401.0474588, 400.99628284, 400.944826, 400.89308853, 400.84107071, 400.78877277, 400.73619499, 400.68333761, 400.6302009, 400.57678511, 400.5230905, 400.46911733, 400.41486585, 400.36033633, 400.30552903, 400.2504442, 400.1950821, 400.139443, 400.08352716, 400.02733483, 399.97086627, 399.91412175, 399.85710153, 399.79980586, 399.74223502, 399.68438926, 399.62626884, 399.56787403, 399.50920509, 399.45026228, 399.39104587, 399.33155612, 399.27179329, 399.21175764, 399.15144945, 399.09086897, 399.03001648, 398.96889222, 398.90749648, 398.84582951, 398.78389158, 398.72168296, 398.65920391, 398.5964547, 398.5334356, 398.47014687, 398.40658878, 398.34276159, 398.27866558, 398.21430101, 398.14966814, 398.08476726, 398.01959862, 397.9541625, 397.88845916, 397.82248887, 397.75625191, 397.68974854, 397.62297903, 397.55594365, 397.48864267, 397.42107636, 397.353245, 397.28514885, 397.21678818, 397.14816328, 397.07927439, 397.01012181, 396.9407058, 396.87102664, 396.80108459, 396.73087993, 396.66041293, 396.58968386, 396.51869301, 396.44744063, 396.37592702, 396.30415243, 396.23211714, 396.15982143, 396.08726558, 396.01444985, 395.94137453, 395.86803988, 395.79444619, 395.72059372, 395.64648276, 395.57211358, 395.49748646, 395.42260167, 395.34745949, 395.2720602, 395.19640407, 395.12049139, 395.04432242, 394.96789745, 394.89121675, 394.81428061, 394.7370893, 394.6596431, 394.58194228, 394.50398713, 394.42577793, 394.34731496, 394.26859849, 394.1896288, 394.11040618, 394.0309309, 393.95120325, 393.8712235, 393.79099194, 393.71050885, 393.6297745, 393.54878918, 393.46755317, 393.38606676, 393.30433022, 393.22234383, 393.14010788, 393.05762265, 392.97488843, 392.89190549, 392.80867411, 392.72519459, 392.64146721, 392.55749224, 392.47326997, 392.38880069, 392.30408468, 392.21912222, 392.1339136, 392.0484591, 391.962759, 391.8768136, 391.79062318, 391.70418802, 391.6175084, 391.53058462, 391.44341696, 391.3560057, 391.26835113, 391.18045354, 391.09231321, 391.00393043, 390.91530549, 390.82643867, 390.73733026, 390.64798054, 390.55838982, 390.46855836, 390.37848647, 390.28817442, 390.19762251, 390.10683102, 390.01580025, 389.92453048, 389.83302199, 389.74127509, 389.64929005, 389.55706717, 389.46460674, 389.37190904, 389.27897437, 389.18580301, 389.09239526, 388.9987514, 388.90487172, 388.81075653, 388.71640609, 388.62182072, 388.52700069, 388.4319463, 388.33665784, 388.24113561, 388.14537988, 388.04939096, 387.95316913, 387.8567147, 387.76002794, 387.66310915, 387.56595863, 387.46857666, 387.37096354, 387.27311957, 387.17504503, 387.07674021, 386.97820542, 386.87944094, 386.78044707, 386.6812241, 386.58177232, 386.48209204, 386.38218353, 386.2820471, 386.18168305, 386.08109165, 385.98027322, 385.87922804, 385.77795641, 385.67645863, 385.57473498, 385.47278576, 385.37061128, 385.26821182, 385.16558768, 385.06273916, 384.95966654, 384.85637014, 384.75285024, 384.64910714, 384.54514113, 384.44095251, 384.33654159, 384.23190865, 384.12705399, 384.02197791, 383.91668071, 383.81116268, 383.70542411, 383.59946532, 383.49328659, 383.38688823, 383.28027052, 383.17343377, 383.06637828, 382.95910434, 382.85161225, 382.74390232, 382.63597483, 382.52783009, 382.41946839, 382.31089004, 382.20209533, 382.09308456, 381.98385804, 381.87441605, 381.7647589, 381.65488689, 381.54480032, 381.43449949, 381.32398469, 381.21325623, 381.10231441, 380.99115952, 380.87979187, 380.76821175, 380.65641947, 380.54441533, 380.43219963, 380.31977266, 380.20713473, 380.09428614, 379.98122719, 379.86795819, 379.75447942, 379.64079119, 379.52689381, 379.41278758, 379.29847279, 379.18394975, 379.06921876, 378.95428012, 378.83913413, 378.7237811, 378.60822132, 378.4924551, 378.37648274, 378.26030454, 378.14392081, 378.02733185, 377.91053795, 377.79353942, 377.67633657, 377.5589297, 377.44131911, 377.32350509, 377.20548797, 377.08726803, 376.96884558, 376.85022092, 376.73139436, 376.61236621, 376.49313675, 376.3737063, 376.25407517, 376.13424364, 376.01421204, 375.89398065, 375.77354979, 375.65291976, 375.53209086, 375.4110634, 375.28983768, 375.168414, 375.04679267, 374.92497399, 374.80295827, 374.68074581, 374.55833692, 374.4357319, 374.31293105, 374.18993468, 374.06674309, 373.94335659, 373.81977549, 373.69600008, 373.57203068, 373.44786759, 373.3235111, 373.19896154, 373.0742192, 372.94928438, 372.8241574, 372.69883856, 372.57332816, 372.44762651, 372.32173391, 372.19565068, 372.06937711, 371.94291351, 371.81626019, 371.68941745, 371.5623856, 371.43516494, 371.30775578, 371.18015843, 371.05237319, 370.92440037, 370.79624027, 370.6678932, 370.53935946, 370.41063937, 370.28173322, 370.15264133, 370.023364, 369.89390153, 369.76425424, 369.63442242, 369.50440639, 369.37420646, 369.24382292, 369.11325609, 368.98250626, 368.85157376, 368.72045888, 368.58916193, 368.45768322, 368.32602305, 368.19418174, 368.06215958, 367.92995689, 367.79757397, 367.66501113, 367.53226867, 367.39934691, 367.26624614, 367.13296668, 366.99950884, 366.86587291, 366.73205921, 366.59806805, 366.46389972, 366.32955455, 366.19503283, 366.06033488, 365.92546099, 365.79041148, 365.65518666, 365.51978682, 365.38421229, 365.24846336, 365.11254035, 364.97644355, 364.84017328, 364.70372985, 364.56711357, 364.43032473, 364.29336365, 364.15623063, 364.01892599, 363.88145002, 363.74380304, 363.60598536, 363.46799728, 363.32983911, 363.19151115, 363.05301372, 362.91434712, 362.77551166, 362.63650764, 362.49733538, 362.35799519, 362.21848736, 362.0788122, 361.93897004, 361.79896116, 361.65878588, 361.51844451, 361.37793735, 361.23726472, 361.09642691, 360.95542424, 360.81425702, 360.67292554, 360.53143013, 360.38977108, 360.2479487, 360.10596331, 359.96381521, 359.8215047, 359.6790321, 359.53639771, 359.39360184, 359.25064479, 359.10752688, 358.96424841, 358.82080968, 358.67721102, 358.53345271, 358.38953508, 358.24545843, 358.10122306, 357.95682928, 357.81227741, 357.66756774, 357.52270059, 357.37767626, 357.23249505, 357.08715729, 356.94166327, 356.7960133, 356.65020768, 356.50424674, 356.35813076, 356.21186007, 356.06543496, 355.91885574, 355.77212273, 355.62523623, 355.47819653, 355.33100397, 355.18365882, 355.03616142, 354.88851206, 354.74071105, 354.59275869, 354.4446553, 354.29640117, 354.14799663, 353.99944197, 353.85073749, 353.70188352, 353.55288035, 353.40372828, 353.25442764, 353.10497872, 352.95538183, 352.80563727, 352.65574536, 352.50570639, 352.35552069, 352.20518854, 352.05471026, 351.90408616, 351.75331653, 351.6024017, 351.45134195, 351.30013761, 351.14878897, 350.99729634, 350.84566003, 350.69388034, 350.54195758, 350.38989205, 350.23768407, 350.08533393, 349.93284194, 349.78020841, 349.62743365, 349.47451795, 349.32146163, 349.16826499, 349.01492833, 348.86145197, 348.7078362, 348.55408133, 348.40018766, 348.24615551, 348.09198518, 347.93767697, 347.78323118, 347.62864813, 347.47392811, 347.31907144, 347.16407841, 347.00894933, 346.85368451, 346.69828425, 346.54274886, 346.38707863, 346.23127388, 346.07533491, 345.91926202, 345.76305551, 345.6067157, 345.45024288, 345.29363737, 345.13689945, 344.98002945, 344.82302765, 344.66589437, 344.50862992, 344.35123458, 344.19370867, 344.03605249, 343.87826634, 343.72035053, 343.56230536, 343.40413114, 343.24582816, 343.08739673, 342.92883715, 342.77014973, 342.61133477, 342.45239258, 342.29332344, 342.13412768, 341.97480558, 341.81535746, 341.65578362, 341.49608435, 341.33625996, 341.17631075, 341.01623703, 340.8560391, 340.69571725, 340.5352718, 340.37470304, 340.21401127, 340.0531968, 339.89225993, 339.73120096, 339.57002019, 339.40871792, 339.24729446, 339.0857501, 338.92408515, 338.7622999, 338.60039467, 338.43836974, 338.27622542, 338.11396202, 337.95157983, 337.78907914, 337.62646028, 337.46372352, 337.30086918, 337.13789755, 336.97480894, 336.81160364, 336.64828196, 336.48484419, 336.32129063, 336.15762158, 335.99383735, 335.82993823, 335.66592453, 335.50179653, 335.33755454, 335.17319887, 335.0087298, 334.84414764, 334.67945269, 334.51464524, 334.34972559, 334.18469405, 334.01955091, 333.85429646, 333.68893102, 333.52345487, 333.35786831, 333.19217164, 333.02636517, 332.86044918, 332.69442397, 332.52828985, 332.36204711, 332.19569604, 332.02923695, 331.86267013, 331.69599587, 331.52921449, 331.36232626, 331.19533149, 331.02823048, 330.86102352, 330.69371091, 330.52629294, 330.35876992, 330.19114213, 330.02340987, 329.85557344, 329.68763314, 329.51958925, 329.35144208, 329.18319192, 329.01483907, 328.84638382, 328.67782646, 328.5091673, 328.34040662, 328.17154472, 328.00258189, 327.83351844, 327.66435465, 327.49509081, 327.32572723, 327.1562642, 326.986702, 326.81704094, 326.64728131, 326.4774234, 326.3074675, 326.13741391, 325.96726292, 325.79701482, 325.62666991, 325.45622848, 325.28569083, 325.11505723, 324.944328, 324.77350341, 324.60258376, 324.43156935, 324.26046047, 324.0892574, 323.91796044, 323.74656988, 323.57508601, 323.40350912, 323.23183951, 323.06007747, 322.88822328, 322.71627723, 322.54423963, 322.37211075, 322.19989089, 322.02758034, 321.85517939, 321.68268832, 321.51010744, 321.33743702, 321.16467736, 320.99182875, 320.81889148, 320.64586583, 320.47275209, 320.29955056, 320.12626152, 319.95288526, 319.77942207, 319.60587224, 319.43223605, 319.2585138, 319.08470577, 318.91081224, 318.73683352, 318.56276988, 318.38862161, 318.214389, 318.04007234, 317.86567191, 317.691188, 317.5166209, 317.34197089, 317.16723826, 316.9924233, 316.81752629, 316.64254751, 316.46748726, 316.29234582, 316.11712347, 315.9418205, 315.7664372, 315.59097385, 315.41543073, 315.23980813, 315.06410633, 314.88832563, 314.7124663, 314.53652862, 314.36051289, 314.18441938, 314.00824838, 313.83200017, 313.65567504, 313.47927326, 313.30279513, 313.12624092, 312.94961092, 312.77290541, 312.59612467, 312.41926899, 312.24233864, 312.06533392, 311.88825509, 311.71110245, 311.53387627, 311.35657683, 311.17920443, 311.00175933, 310.82424181, 310.64665217, 310.46899068, 310.29125762, 310.11345326, 309.9355779, 309.75763181, 309.57961527, 309.40152856, 309.22337195, 309.04514574, 308.86685019, 308.68848559, 308.51005222, 308.33155034, 308.15298026, 307.97434223, 307.79563654, 307.61686346, 307.43802328, 307.25911628, 307.08014272, 306.90110289, 306.72199706, 306.54282551, 306.36358852, 306.18428637, 306.00491932, 305.82548767, 305.64599167, 305.46643162, 305.28680777, 305.10712042, 304.92736984, 304.74755629, 304.56768006, 304.38774142, 304.20774065, 304.02767802, 303.8475538, 303.66736827, 303.4871217, 303.30681437, 303.12644655, 302.94601851, 302.76553053, 302.58498288, 302.40437583, 302.22370966, 302.04298464, 301.86220104, 301.68135913, 301.50045918, 301.31950148, 301.13848628, 300.95741386, 300.77628449, 300.59509845, 300.413856, 300.23255741, 300.05120296, 299.86979292, 299.68832755, 299.50680712, 299.32523192, 299.1436022, 298.96191823, 298.78018029, 298.59838864, 298.41654355, 298.2346453, 298.05269415, 297.87069036, 297.68863421, 297.50652597, 297.32436589, 297.14215426, 296.95989134, 296.77757739, 296.59521268, 296.41279749, 296.23033206, 296.04781668, 295.86525161, 295.68263712, 295.49997346, 295.31726091, 295.13449974, 294.9516902, 294.76883256, 294.58592709, 294.40297406, 294.21997372, 294.03692634, 293.85383219, 293.67069153, 293.48750462, 293.30427173, 293.12099312, 292.93766906, 292.7542998, 292.57088561, 292.38742676, 292.2039235, 292.0203761, 291.83678481, 291.65314991, 291.46947166, 291.28575031, 291.10198612, 290.91817936, 290.73433029, 290.55043917, 290.36650626, 290.18253181, 289.9985161, 289.81445938, 289.63036191, 289.44622394, 289.26204574, 289.07782758, 288.89356969, 288.70927236, 288.52493582, 288.34056035, 288.1561462, 287.97169362, 287.78720288, 287.60267424, 287.41810794, 287.23350425, 287.04886342, 286.86418572, 286.67947139, 286.4947207, 286.3099339, 286.12511124, 285.94025298, 285.75535938, 285.57043069, 285.38546717, 285.20046907, 285.01543664, 284.83037015, 284.64526984, 284.46013597, 284.27496879, 284.08976856, 283.90453552, 283.71926994, 283.53397207, 283.34864215, 283.16328044, 282.9778872, 282.79246267, 282.60700711, 282.42152076, 282.23600389, 282.05045674, 281.86487955, 281.6792726, 281.49363611, 281.30797035, 281.12227557, 280.93655201, 280.75079992, 280.56501955, 280.37921116, 280.19337499, 280.00751129, 279.82162031, 279.6357023, 279.4497575, 279.26378617, 279.07778855, 278.89176489, 278.70571543, 278.51964043, 278.33354013, 278.14741477, 277.96126462, 277.7750899, 277.58889086, 277.40266776, 277.21642084, 277.03015034, 276.84385651, 276.65753959, 276.47119983, 276.28483747, 276.09845276, 275.91204594, 275.72561725, 275.53916695, 275.35269526, 275.16620244, 274.97968873, 274.79315436, 274.6065996, 274.42002466, 274.2334298, 274.04681527, 273.86018129, 273.67352812, 273.48685599, 273.30016514, 273.11345582, 272.92672826, 272.73998271, 272.55321941, 272.36643859, 272.1796405, 271.99282537, 271.80599345, 271.61914497, 271.43228017, 271.24539929, 271.05850256, 270.87159024, 270.68466255, 270.49771973, 270.31076202, 270.12378965, 269.93680287, 269.7498019, 269.562787, 269.37575838, 269.18871629, 269.00166097, 268.81459265, 268.62751156, 268.44041793, 268.25331202, 268.06619404, 267.87906424, 267.69192284, 267.50477008, 267.3176062, 267.13043143, 266.94324599, 266.75605014, 266.56884408, 266.38162807, 266.19440233, 266.0071671, 265.81992259, 265.63266906, 265.44540672, 265.25813582, 265.07085657, 264.88356922, 264.69627398, 264.5089711, 264.3216608, 264.13434331, 263.94701886, 263.75968768, 263.57234999, 263.38500604, 263.19765604, 263.01030022, 262.82293882, 262.63557205, 262.44820016, 262.26082335, 262.07344187, 261.88605594, 261.69866578, 261.51127163, 261.3238737, 261.13647222, 260.94906743, 260.76165953, 260.57424877, 260.38683536, 260.19941953, 260.01200151, 259.82458151, 259.63715977, 259.4497365, 259.26231192, 259.07488627, 258.88745977, 258.70003263, 258.51260509, 258.32517735, 258.13774965, 257.95032221, 257.76289525, 257.57546898, 257.38804364, 257.20061944, 257.01319659, 256.82577533, 256.63835588, 256.45093844, 256.26352325, 256.07611052, 255.88870047, 255.70129331, 255.51388928, 255.32648858, 255.13909143, 254.95169806, 254.76430868, 254.5769235, 254.38954275, 254.20216664, 254.01479539, 253.82742921, 253.64006832, 253.45271294, 253.26536328, 253.07801956, 252.890682, 252.7033508, 252.51602618, 252.32870836, 252.14139755, 251.95409396, 251.76679782, 251.57950933, 251.3922287, 251.20495615, 251.0176919, 250.83043614, 250.64318911, 250.455951, 250.26872203, 250.08150241, 249.89429236, 249.70709207, 249.51990178, 249.33272167, 249.14555198, 248.95839289, 248.77124464, 248.58410741, 248.39698144, 248.20986691, 248.02276404, 247.83567305, 247.64859413, 247.4615275, 247.27447336, 247.08743193, 246.9004034, 246.71338799, 246.5263859, 246.33939734, 246.15242251, 245.96546163, 245.77851489, 245.59158251, 245.40466468, 245.21776162, 245.03087352, 244.84400059, 244.65714304, 244.47030108, 244.28347489, 244.09666469, 243.90987069, 243.72309307, 243.53633205, 243.34958784, 243.16286062, 242.9761506, 242.78945799, 242.60278299, 242.41612579, 242.2294866, 242.04286562, 241.85626305, 241.66967909, 241.48311394, 241.2965678, 241.11004087, 240.92353334, 240.73704542, 240.55057731, 240.3641292, 240.17770129, 239.99129378, 239.80490687, 239.61854075, 239.43219563, 239.2458717, 239.05956915, 238.87328818, 238.68702899, 238.50079177, 238.31457673, 238.12838404, 237.94221392, 237.75606655, 237.56994214, 237.38384086, 237.19776292, 237.01170852, 236.82567784, 236.63967108, 236.45368842, 236.26773008, 236.08179623, 235.89588707, 235.71000279, 235.52414358, 235.33830963, 235.15250115, 234.9667183, 234.7809613, 234.59523032, 234.40952556, 234.22384721, 234.03819546, 233.85257049, 233.6669725, 233.48140167, 233.2958582, 233.11034226, 232.92485406, 232.73939378, 232.5539616, 232.36855772, 232.18318231, 231.99783558, 231.81251769, 231.62722885, 231.44196923, 231.25673902, 231.07153841, 230.88636759, 230.70122673, 230.51611602, 230.33103565, 230.1459858, 229.96096666, 229.7759784, 229.59102122, 229.4060953, 229.22120081, 229.03633794, 228.85150688, 228.6667078, 228.48194089, 228.29720633, 228.11250431, 227.92783499, 227.74319856, 227.55859521, 227.37402512, 227.18948846, 227.00498541, 226.82051615, 226.63608087, 226.45167974, 226.26731294, 226.08298065, 225.89868305, 225.71442031, 225.53019261, 225.34600014, 225.16184306, 224.97772156, 224.79363581, 224.60958599, 224.42557227, 224.24159483, 224.05765385, 223.8737495, 223.68988196, 223.50605139, 223.32225798, 223.13850191, 222.95478333, 222.77110244, 222.5874594, 222.40385438, 222.22028756, 222.03675911, 221.8532692, 221.66981801, 221.48640571, 221.30303247, 221.11969846, 220.93640385, 220.75314881, 220.56993351, 220.38675814, 220.20362284, 220.0205278, 219.83747318, 219.65445916, 219.4714859, 219.28855357, 219.10566234, 218.92281238, 218.74000385, 218.55723693, 218.37451178, 218.19182857, 218.00918746, 217.82658863, 217.64403224, 217.46151845, 217.27904743, 217.09661935, 216.91423438, 216.73189267, 216.54959439, 216.36733971, 216.1851288, 216.0029618, 215.8208389, 215.63876026, 215.45672602, 215.27473637, 215.09279146, 214.91089146, 214.72903652, 214.54722682, 214.3654625, 214.18374374, 214.00207069, 213.82044351, 213.63886238, 213.45732743, 213.27583885, 213.09439678, 212.91300139, 212.73165283, 212.55035127, 212.36909686, 212.18788976, 212.00673013, 211.82561814, 211.64455392, 211.46353766, 211.28256949, 211.10164958, 210.92077809, 210.73995517, 210.55918097, 210.37845566, 210.19777939, 210.01715232, 209.83657459, 209.65604637, 209.47556781, 209.29513907, 209.11476029, 208.93443163, 208.75415325, 208.57392531, 208.39374794, 208.21362131, 208.03354556, 207.85352086, 207.67354735, 207.49362518, 207.31375451, 207.13393548, 206.95416826, 206.77445298, 206.5947898, 206.41517887, 206.23562034, 206.05611436, 205.87666108, 205.69726064, 205.5179132, 205.33861891, 205.15937791, 204.98019035, 204.80105638, 204.62197615, 204.4429498, 204.26397748, 204.08505934, 203.90619553, 203.72738619, 203.54863146, 203.3699315, 203.19128645, 203.01269645, 202.83416165, 202.65568219, 202.47725822, 202.29888988, 202.12057731, 201.94232067, 201.76412009, 201.58597572, 201.40788769, 201.22985616, 201.05188126, 200.87396314, 200.69610193, 200.51829778, 200.34055084, 200.16286123, 199.98522911, 199.80765462, 199.63013788, 199.45267905, 199.27527826, 199.09793566, 198.92065137, 198.74342555, 198.56625833, 198.38914984, 198.21210023, 198.03510963, 197.85817819, 197.68130604, 197.50449331, 197.32774014, 197.15104668, 196.97441305, 196.79783939, 196.62132584, 196.44487253, 196.26847961, 196.09214719, 195.91587543, 195.73966444, 195.56351438, 195.38742537, 195.21139754, 195.03543103, 194.85952597, 194.6836825, 194.50790075, 194.33218084, 194.15652292, 193.98092711, 193.80539355, 193.62992236, 193.45451369, 193.27916765, 193.10388438, 192.92866401, 192.75350667, 192.5784125, 192.40338161, 192.22841414, 192.05351022, 191.87866998, 191.70389354, 191.52918104, 191.35453259, 191.17994834, 191.00542841, 190.83097292, 190.656582, 190.48225578, 190.30799438, 190.13379793, 189.95966657, 189.7856004, 189.61159956, 189.43766418, 189.26379437, 189.08999027, 188.91625199, 188.74257966, 188.56897342, 188.39543336, 188.22195964, 188.04855235, 187.87521164, 187.70193762, 187.52873041, 187.35559013, 187.18251691, 187.00951087, 186.83657214, 186.66370082, 186.49089704, 186.31816093, 186.1454926, 185.97289218, 185.80035977, 185.62789551, 185.45549951, 185.28317189, 185.11091277, 184.93872227, 184.76660051, 184.5945476, 184.42256366, 184.25064881, 184.07880316, 183.90702685, 183.73531997, 183.56368264, 183.39211499, 183.22061713, 183.04918918, 182.87783124, 182.70654344, 182.53532589, 182.36417871, 182.193102, 182.02209589, 181.85116049, 181.6802959, 181.50950225, 181.33877965, 181.16812821, 180.99754804, 180.82703926, 180.65660198, 180.4862363, 180.31594235, 180.14572023, 179.97557005, 179.80549193, 179.63548597, 179.46555229, 179.295691, 179.12590219, 178.956186, 178.78654252, 178.61697186, 178.44747414, 178.27804946, 178.10869792, 177.93941965, 177.77021474, 177.6010833, 177.43202544, 177.26304127, 177.09413089, 176.92529442, 176.75653195, 176.5878436, 176.41922946, 176.25068965, 176.08222427, 175.91383342, 175.74551722, 175.57727575, 175.40910914, 175.24101748, 175.07300088, 174.90505943, 174.73719325, 174.56940244, 174.40168709, 174.23404732, 174.06648322, 173.8989949, 173.73158246, 173.564246, 173.39698561, 173.22980141, 173.0626935, 172.89566196, 172.72870691, 172.56182845, 172.39502667, 172.22830167, 172.06165355, 171.89508242, 171.72858837, 171.56217149, 171.3958319, 171.22956968, 171.06338493, 170.89727775, 170.73124825, 170.5652965, 170.39942262, 170.2336267, 170.06790884, 169.90226913, 169.73670766, 169.57122454, 169.40581985, 169.2404937, 169.07524618, 168.91007738, 168.7449874, 168.57997633, 168.41504427, 168.2501913, 168.08541753, 167.92072305, 167.75610794, 167.5915723, 167.42711623, 167.26273982, 167.09844315, 166.93422632, 166.77008942, 166.60603255, 166.44205579, 166.27815923, 166.11434297, 165.95060709, 165.78695169, 165.62337685, 165.45988267, 165.29646923, 165.13313662, 164.96988493, 164.80671425, 164.64362468, 164.48061628, 164.31768916, 164.15484341, 163.9920791, 163.82939632, 163.66679517, 163.50427573, 163.34183809, 163.17948233, 163.01720853, 162.85501679, 162.69290718, 162.5308798, 162.36893473, 162.20707206, 162.04529186, 161.88359422, 161.72197923, 161.56044697, 161.39899752, 161.23763097, 161.0763474, 160.91514689, 160.75402953, 160.59299539, 160.43204456, 160.27117712, 160.11039316, 159.94969275, 159.78907597, 159.62854291, 159.46809365, 159.30772826, 159.14744683, 158.98724944, 158.82713617, 158.66710709, 158.50716228, 158.34730183, 158.18752581, 158.02783431, 157.86822739, 157.70870514, 157.54926764, 157.38991496, 157.23064718, 157.07146438, 156.91236663, 156.75335401, 156.5944266, 156.43558447, 156.27682771, 156.11815637, 155.95957055, 155.80107031, 155.64265574, 155.48432689, 155.32608386, 155.16792671, 155.00985552, 154.85187036, 154.69397131, 154.53615844, 154.37843181, 154.22079152, 154.06323761, 153.90577018, 153.74838929, 153.59109502, 153.43388743, 153.27676659, 153.11973259, 152.96278548, 152.80592534, 152.64915225, 152.49246626, 152.33586746, 152.1793559, 152.02293167, 151.86659483, 151.71034544, 151.55418358, 151.39810932, 151.24212273, 151.08622387, 150.93041281, 150.77468961, 150.61905436, 150.46350711, 150.30804793, 150.15267688, 149.99739405, 149.84219948, 149.68709325, 149.53207542, 149.37714607, 149.22230524, 149.06755302, 148.91288946, 148.75831463, 148.6038286, 148.44943142, 148.29512317, 148.1409039, 147.98677368, 147.83273258, 147.67878065, 147.52491797, 147.37114459, 147.21746057, 147.06386598, 146.91036088, 146.75694533, 146.6036194, 146.45038314, 146.29723661, 146.14417989, 145.99121302, 145.83833607, 145.6855491, 145.53285216, 145.38024533, 145.22772866, 145.0753022, 144.92296602, 144.77072018, 144.61856473, 144.46649973, 144.31452525, 144.16264134, 144.01084805, 143.85914545, 143.70753359, 143.55601254, 143.40458234, 143.25324305, 143.10199474, 142.95083745, 142.79977125, 142.64879618, 142.49791231, 142.34711969, 142.19641837, 142.04580842, 141.89528987, 141.7448628, 141.59452726, 141.44428329, 141.29413095, 141.14407031, 140.9941014, 140.84422428, 140.69443901, 140.54474563, 140.39514421, 140.2456348, 140.09621744, 139.94689218, 139.79765909, 139.64851821, 139.49946959, 139.35051328, 139.20164934, 139.05287782, 138.90419876, 138.75561222, 138.60711824, 138.45871688, 138.31040818, 138.1621922, 138.01406899, 137.86603859, 137.71810105, 137.57025642, 137.42250475, 137.27484609, 137.12728048, 136.97980798, 136.83242862, 136.68514247, 136.53794955, 136.39084993, 136.24384365, 136.09693075, 135.95011129, 135.8033853, 135.65675283, 135.51021393, 135.36376865, 135.21741702, 135.0711591, 134.92499493, 134.77892455, 134.632948, 134.48706534, 134.34127661, 134.19558184, 134.04998109, 133.90447439, 133.7590618, 133.61374334, 133.46851907, 133.32338903, 133.17835325, 133.03341179, 132.88856468, 132.74381197, 132.59915369, 132.45458989, 132.31012061, 132.16574589, 132.02146577, 131.87728029, 131.73318949, 131.58919341, 131.44529209, 131.30148558, 131.1577739, 131.0141571, 130.87063522, 130.7272083, 130.58387637, 130.44063947, 130.29749765, 130.15445093, 130.01149937, 129.86864298, 129.72588182, 129.58321592, 129.44064532, 129.29817005, 129.15579015, 129.01350566, 128.8713166, 128.72922303, 128.58722497, 128.44532246, 128.30351553, 128.16180423, 128.02018858, 127.87866862, 127.73724438, 127.5959159, 127.45468322, 127.31354636, 127.17250536, 127.03156025, 126.89071108, 126.74995786, 126.60930064, 126.46873944, 126.3282743, 126.18790526, 126.04763233, 125.90745557, 125.76737498, 125.62739062, 125.48750251, 125.34771068, 125.20801516, 125.06841599, 124.92891319, 124.78950679, 124.65019683, 124.51098333, 124.37186632, 124.23284584, 124.09392191, 123.95509457, 123.81636384, 123.67772974, 123.53919232, 123.40075159, 123.26240759, 123.12416035, 122.98600988, 122.84795623, 122.70999941, 122.57213946, 122.4343764, 122.29671026, 122.15914106, 122.02166883, 121.8842936, 121.7470154, 121.60983425, 121.47275017, 121.3357632, 121.19887335, 121.06208065, 120.92538514, 120.78878682, 120.65228573, 120.5158819, 120.37957533, 120.24336607, 120.10725414, 119.97123955, 119.83532233, 119.6995025, 119.5637801, 119.42815513, 119.29262763, 119.15719761, 119.0218651, 118.88663012, 118.7514927, 118.61645285, 118.4815106, 118.34666596, 118.21191896, 118.07726962, 117.94271797, 117.80826401, 117.67390778, 117.5396493, 117.40548857, 117.27142563, 117.13746049, 117.00359317, 116.8698237, 116.73615208, 116.60257835, 116.46910252, 116.3357246, 116.20244463, 116.0692626, 115.93617855, 115.8031925, 115.67030445, 115.53751443, 115.40482245, 115.27222853, 115.1397327, 115.00733496, 114.87503533, 114.74283383, 114.61073048, 114.47872529, 114.34681828, 114.21500946, 114.08329885, 113.95168646, 113.82017232, 113.68875643, 113.55743881, 113.42621948, 113.29509845, 113.16407573, 113.03315134, 112.90232529, 112.77159761, 112.64096829, 112.51043735, 112.38000482, 112.24967069, 112.11943499, 111.98929772, 111.85925891, 111.72931856, 111.59947668, 111.46973329, 111.34008839, 111.21054201, 111.08109415, 110.95174482, 110.82249404, 110.69334182, 110.56428816, 110.43533308, 110.30647659, 110.1777187, 110.04905942, 109.92049875, 109.79203672, 109.66367333, 109.53540858, 109.4072425, 109.27917508, 109.15120634, 109.02333628, 108.89556492, 108.76789227, 108.64031832, 108.5128431, 108.3854666, 108.25818884, 108.13100982, 108.00392956, 107.87694805, 107.75006531, 107.62328135, 107.49659616, 107.37000976, 107.24352215, 107.11713335, 106.99084335, 106.86465216, 106.73855979, 106.61256625, 106.48667154, 106.36087566, 106.23517862, 106.10958043, 105.98408108, 105.8586806, 105.73337897, 105.60817621, 105.48307232, 105.3580673, 105.23316116, 105.1083539, 104.98364552, 104.85903603, 104.73452544, 104.61011373, 104.48580093, 104.36158703, 104.23747203, 104.11345593, 103.98953874, 103.86572047, 103.7420011, 103.61838066, 103.49485912, 103.37143651, 103.24811281, 103.12488804, 103.00176218, 102.87873525, 102.75580724, 102.63297816, 102.510248, 102.38761676, 102.26508445, 102.14265107, 102.02031661, 101.89808107, 101.77594446, 101.65390677, 101.53196801, 101.41012816, 101.28838724, 101.16674524, 101.04520215, 100.92375798, 100.80241273, 100.68116639, 100.56001896, 100.43897044, 100.31802082, 100.19717011, 100.0764183, 99.95576539, 99.83521138, 99.71475626, 99.59440003, 99.47414268, 99.35398422, 99.23392463, 99.11396393, 98.99410209, 98.87433912, 98.75467501, 98.63510976, 98.51564337, 98.39627582, 98.27700712, 98.15783726, 98.03876623, 97.91979403, 97.80092066, 97.6821461, 97.56347036, 97.44489342, 97.32641528, 97.20803593, 97.08975537, 96.9715736, 96.85349059, 96.73550636, 96.61762088, 96.49983416, 96.38214619, 96.26455695, 96.14706645, 96.02967467, 95.9123816, 95.79518725, 95.67809159, 95.56109463, 95.44419635, 95.32739674, 95.2106958, 95.09409352, 94.97758989, 94.8611849, 94.74487853, 94.62867079, 94.51256166, 94.39655113, 94.28063919, 94.16482583, 94.04911105, 93.93349483, 93.81797716, 93.70255803, 93.58723743, 93.47201535, 93.35689177, 93.2418667, 93.12694011, 93.012112, 92.89738235, 92.78275115, 92.66821839, 92.55378406, 92.43944815, 92.32521064, 92.21107152, 92.09703078, 91.98308841, 91.86924439, 91.75549871, 91.64185136, 91.52830233, 91.4148516, 91.30149916, 91.18824499, 91.07508908, 90.96203142, 90.84907199, 90.73621079, 90.62344779, 90.51078298, 90.39821634, 90.28574787, 90.17337755, 90.06110535, 89.94893128, 89.83685531, 89.72487742, 89.61299761, 89.50121585, 89.38953213, 89.27794644, 89.16645875, 89.05506906, 88.94377735, 88.83258359, 88.72148778, 88.6104899, 88.49958993, 88.38878785, 88.27808365, 88.1674773, 88.0569688, 87.94655813, 87.83624526, 87.72603019, 87.61591288, 87.50589333, 87.39597152, 87.28614742, 87.17642103, 87.06679232, 86.95726127, 86.84782786, 86.73849209, 86.62925392, 86.52011333, 86.41107032, 86.30212486, 86.19327692, 86.0845265, 85.97587357, 85.86731811, 85.75886011, 85.65049953, 85.54223637, 85.4340706, 85.3260022, 85.21803115, 85.11015743, 85.00238103, 84.89470191, 84.78712005, 84.67963545, 84.57224807, 84.46495789, 84.3577649, 84.25066906, 84.14367037, 84.0367688, 83.92996432, 83.82325691, 83.71664656, 83.61013323, 83.50371691, 83.39739758, 83.29117521, 83.18504978, 83.07902126, 82.97308963, 82.86725488, 82.76151697, 82.65587589, 82.55033161, 82.4448841, 82.33953334, 82.23427932, 82.129122, 82.02406136, 81.91909737, 81.81423002, 81.70945928, 81.60478512, 81.50020752, 81.39572645, 81.2913419, 81.18705383, 81.08286221, 80.97876703, 80.87476827, 80.77086588, 80.66705985, 80.56335015, 80.45973677, 80.35621966, 80.2527988, 80.14947418, 80.04624575, 79.94311351, 79.84007741, 79.73713744, 79.63429356, 79.53154575, 79.42889399, 79.32633824, 79.22387848, 79.12151468, 79.01924681, 78.91707486, 78.81499878, 78.71301855, 78.61113415, 78.50934555, 78.40765271, 78.30605561, 78.20455423, 78.10314852, 78.00183848, 77.90062406, 77.79950524, 77.69848199, 77.59755427, 77.49672208, 77.39598536, 77.2953441, 77.19479826, 77.09434782, 76.99399274, 76.893733, 76.79356856, 76.6934994, 76.59352549, 76.4936468, 76.39386329, 76.29417494, 76.19458172, 76.09508359, 75.99568053, 75.8963725, 75.79715947, 75.69804142, 75.59901832, 75.50009012, 75.4012568, 75.30251834, 75.20387469, 75.10532583, 75.00687172, 74.90851234, 74.81024765, 74.71207762, 74.61400221, 74.51602141, 74.41813516, 74.32034345, 74.22264624, 74.1250435, 74.02753519, 73.93012128, 73.83280174, 73.73557654, 73.63844564, 73.54140901, 73.44446663, 73.34761844, 73.25086443, 73.15420455, 73.05763878, 72.96116708, 72.86478942, 72.76850576, 72.67231607, 72.57622032, 72.48021846, 72.38431048, 72.28849633, 72.19277598, 72.09714939, 72.00161653, 71.90617737, 71.81083187, 71.71557999, 71.62042171, 71.52535698, 71.43038578, 5.69928007, 11.39144307, 17.06938673, 22.72603838, 28.35436959, 33.94741076, 39.49826545, 45.00012462, 50.44628049, 55.83014017, 61.145239, 66.38525338, 71.54401339, 76.61551478, 81.59393063, 86.47362243, 91.24915063, 95.91528466, 100.46701238, 104.89954881, 109.20834438, 113.38909242, 117.43773603, 121.35047426, 125.12376761, 128.75434277, 132.23919677, 135.57560027, 138.76110025, 141.79352192, 144.67096995, 147.39182897, 149.9547634, 152.35871653, 154.60290898, 156.68683647, 158.61026693, 160.37323699, 161.97604786, 163.41926059, 164.70369079, 165.83040281, 166.80070336, 167.61613468, 168.27846721, 168.78969187, 169.15201186, 169.3678342, 169.43976081, 169.37057935, 169.16325377, 168.82091457, 168.34684895, 167.74449069, 167.01740987, 166.16930259, 165.2039805, 164.1253603, 162.9374533, 161.64435487, 160.25023404, 158.7593231, 157.17590734, 155.50431493, 153.74890687, 151.91406723, 150.0041935, 148.02368723, 145.97694485, 143.86834884, 141.70225906, 139.48300452, 137.21487535, 134.90211516, 132.54891372, 130.15940001, 127.73763557, 125.28760833, 122.81322668, 120.31831406, 117.80660381, 115.28173447, 112.74724549, 110.20657325, 107.66304754, 105.11988837, 102.58020321, 100.04698452, 97.52310777, 95.01132967, 92.51428692, 90.03449513, 87.57434822, 85.13611803, 82.72195436, 80.33388516, 77.97381717, 75.64353669, 73.34471072, 71.07888829, 68.84750204, 66.65187004, 64.49319777, 62.37258034, 60.29100486, 58.249353, 56.24840368, 54.28883587, 52.37123159, 50.49607892, 48.6637752, 46.87463023, 45.1288696, 43.42663805, 41.76800285, 40.15295726, 38.581424, 37.05325869, 35.56825333, 34.12613977, 32.72659316, 31.36923531, 30.05363814, 28.77932694, 27.5457837, 26.35245033, 25.19873176, 24.08399912, 23.00759265, 21.96882473, 20.96698266, 20.00133142, 19.07111638, 18.17556585, 17.31389356, 16.48530102, 15.68897985, 14.92411391, 14.18988141, 13.48545687, 12.81001299, 12.16272246, 11.54275961, 10.94930195, 10.38153173, 9.83863725, 9.31981416, 8.82426668, 8.35120866, 7.89986462, 7.46947067, 7.05927535, 6.6685404, 6.29654141, 5.94256848, 5.6059267, 5.28593665, 4.98193481, 4.69327385, 4.41932293, 4.15946793, 3.91311161, 3.67967368, 3.45859093, 3.24931719, 3.05132335, 2.86409726, 2.68714365, 2.51998401, 2.36215638, 2.2132152, 2.07273107, 1.94029049, 1.81549564, 1.69796402, 1.58732824, 1.48323563, 1.38534792, 1.29334094, 1.20690421, 1.12574064, 1.0495661, 0.9781091, 0.91111039, 0.84832261, 0.78950986, 0.73444738, 0.68292115, 0.6347275, 0.58967277, 0.54757294, 0.50825321, 0.47154775, 0.43729924, 0.40535861, 0.37558464, 0.34784367, 0.32200926, 0.29796188, 0.2755886, 0.2547828, 0.23544386, 0.21747692, 0.20079255, 0.18530654, 0.17093961, 0.15761721, 0.14526921, 0.13382974, 0.12323695, 0.11343277, 0.10436276, 0.09597588, 0.0882243, 0.08106325, 0.07445084, 0.06834788, 0.06271774, 0.05752622, 0.05274136, 0.04833336, 0.04427443, 0.04053865, 0.0371019, 0.03394168, 0.03103711, 0.02836872, 0.02591845, 0.0236695, 0.02160628, 0.01971433, 0.01798022, 0.01639151, 0.01493668, 0.01360506, 0.01238678, 0.01127269, 0.01025435, 0.00932395, 0.0084743, 0.00769873, 0.00699111, 0.00634577, 0.00575751, 0.00522152, 0.00473338, 0.00428902, 0.00388469, 0.00351695, 0.00318265, 0.00287888, 0.00260298, 0.0023525, 0.00212521, 0.00191905, 0.00173214, 0.00156276, 0.00140934, 0.00127042, 0.00114471, 0.00103099, 0.00092817, 0.00083525, 0.0007513, 0.0006755, 0.00060708, 0.00054536, 0.00048971, 0.00043954, 0.00039435, 0.00035364, 0.00031701, 0.00028404, 0.0002544, 0.00022775, 0.00020381, 0.0001823, 0.00016299, 0.00014567, 0.00013013, 0.0001162, 0.00010371, 0.00009253, 0.00008252, 0.00007356, 0.00006554, 0.00005838, 0.00005197, 0.00004625, 0.00004114, 0.00003658, 0.00003251, 0.00002888, 0.00002564, 0.00002276, 0.00002019, 0.00001791, 0.00001588, 0.00001407, 0.00001246, 0.00001103, 9.76173942e-06, 8.63496584e-06, 7.63499e-06, 6.74793341e-06, 5.96139091e-06, 5.26427953e-06, 4.64670221e-06, 4.09982508e-06, 3.61576696e-06, 3.18749993e-06, 2.80875986e-06, 2.47396609e-06, 2.17814911e-06, 1.91688577e-06, 1.68624101e-06, 1.48271568e-06, 1.30319965e-06, 1.14492992e-06, 1.00545294e-06, 8.82591052e-07, 7.74412299e-07, 6.7920354e-07, 5.95446358e-07, 5.21795555e-07, 4.57059943e-07, 4.00185203e-07, 3.5023859e-07, 3.06395297e-07, 2.67926301e-07, 2.34187537e-07, 2.04610262e-07, 1.78692478e-07, 1.559913e-07, 1.36116182e-07, 1.18722884e-07, 1.03508123e-07, 9.02048259e-08, 7.85779104e-08, 6.84205508e-08, 5.95508638e-08, 5.18089745e-08, 4.50544175e-08, 3.91638372e-08, 3.40289533e-08, 2.95547617e-08, 2.56579451e-08, 2.22654686e-08, 1.93133401e-08, 1.67455162e-08, 1.45129369e-08, 1.25726759e-08, 1.08871897e-08, 9.42365858e-09, 8.15340464e-09, 7.05138081e-09, 6.095721e-09, 5.26734485e-09, 4.54961032e-09, 3.92800873e-09, 3.38989701e-09, 2.92426278e-09, 2.5215184e-09, 2.1733204e-09, 1.87241133e-09, 1.61248123e-09, 1.38804646e-09, 1.19434357e-09, 1.02723666e-09, 8.8313627e-10, 7.5892861e-10, 6.51913749e-10, 5.59751651e-10, 4.80415123e-10, 4.1214878e-10, 3.53433283e-10, 3.02954191e-10, 2.5957484e-10, 2.2231274e-10, 1.90319046e-10, 1.62860705e-10, 1.39304948e-10, 1.19105815e-10, 1.01792456e-10, 8.69589806e-11, 7.42556535e-11, 6.33812587e-11, 5.40764859e-11, 4.61181996e-11, 3.93144789e-11, 3.35003245e-11, 2.85339456e-11, 2.42935501e-11, 2.06745703e-11, 1.75872675e-11, 1.4954663e-11, 1.27107532e-11, 1.07989705e-11, 9.17085539e-12, 7.7849132e-12, 6.60562866e-12, 5.60261787e-12, 4.74989848e-12, 4.02526191e-12, 3.40973373e-12, 2.88710984e-12, 2.44355815e-12, 2.06727663e-12, 1.74819981e-12, 1.47774708e-12, 1.24860692e-12, 1.05455189e-12, 8.90280343e-13, 7.512807e-13, 6.33715475e-13, 5.34321976e-13, 4.50327447e-13, 3.79376536e-13, 3.19469349e-13, 2.68908555e-13, 2.2625425e-13, 1.90285452e-13, 1.59967278e-13, 1.34422963e-13, 1.1291003e-13, 9.48000011e-14, 7.95611286e-14, 6.67437052e-14, 5.59675743e-14, 4.69115155e-14, 3.93042269e-14, 3.29166692e-14, 2.75555666e-14, 2.3057895e-14, 1.92862073e-14, 1.61246714e-14, 1.34757144e-14, 1.12571801e-14, 9.39992385e-15, 7.84577712e-15, 6.54582697e-15, 5.45896122e-15, 4.55063957e-15, 3.79185588e-15, 3.15826211e-15, 2.62942925e-15, 2.18822407e-15, 1.82028372e-15, 1.51357304e-15, 1.25801173e-15, 1.04516058e-15, 8.67957345e-16, 7.20494689e-16, 5.97833483e-16, 4.95845921e-16, 4.11083762e-16, 3.40667716e-16, 2.82194614e-16, 2.33659562e-16, 1.93390662e-16, 1.59994317e-16, 1.32309411e-16, 1.09368951e-16, 9.03679636e-17, 7.46366425e-17, 6.1617894e-17, 5.08485734e-17, 4.19438093e-17, 3.45839147e-17, 2.85034627e-17, 2.34821736e-17, 1.93373152e-17, 1.59173686e-17, 1.30967517e-17, 1.07714247e-17, 8.85523203e-18, 7.27685951e-18, 5.9773033e-18, 4.90776615e-18, 4.02790948e-18, 3.30440161e-18, 2.70971263e-18, 2.22111448e-18, 1.81985152e-18, 1.49045298e-18, 1.2201632e-18, 9.98469712e-19, 8.16712498e-19, 6.67760692e-19, 5.45745105e-19, 4.458371e-19, 3.64065835e-19, 2.97167299e-19, 2.42459658e-19, 1.97740372e-19, 1.61201322e-19, 1.31358824e-19, 1.06995943e-19, 8.71149687e-20, 7.08982771e-20, 5.76761161e-20, 4.69001e-20, 3.81214115e-20, 3.09728826e-20, 2.5154271e-20, 2.04201679e-20, 1.65700703e-20, 1.34402353e-20, 1.08969981e-20, 8.83129447e-21, 7.15417163e-21, 5.79311095e-21, 4.68901742e-21, 3.79375572e-21, 3.06813455e-21, 2.48025863e-21, 2.0041816e-21, 1.61880566e-21, 1.3069829e-21, 1.05478186e-21, 8.50889089e-22, 6.86121179e-22, 5.53026915e-22, 4.45563175e-22, 3.5883095e-22, 2.88860455e-22, 2.32436262e-22, 1.86955083e-22, 1.5031014e-22, 1.20797208e-22, 9.70382898e-23, 7.79196506e-23, 6.25415285e-23, 5.01773385e-23, 4.02405953e-23, 3.22581027e-23, 2.58482352e-23, 2.07033505e-23, 1.65755535e-23, 1.32651789e-23, 1.06114776e-23, 8.48508695e-24, 6.78194741e-24, 5.41838963e-24, 4.32716787e-24, 3.4542595e-24, 2.75628351e-24, 2.19841929e-24, 1.75272946e-24, 1.39680883e-24, 1.11269667e-24, 8.86001258e-25, 7.05195659e-25, 5.61051423e-25, 4.46183449e-25, 3.5468433e-25, 2.81830705e-25, 2.23847568e-25, 1.77719148e-25, 1.41037254e-25, 1.11879687e-25, 8.87128293e-26, 7.03136121e-26, 5.57070528e-26, 4.4116267e-26, 3.49224848e-26, 2.76330821e-26, 2.18560328e-26, 1.72794995e-26, 1.36555378e-26, 1.07870897e-26, 8.51760709e-27, 6.72277776e-27, 5.30392959e-27, 4.18277587e-27, 3.29723036e-27, 2.59807595e-27, 2.04631391e-27, 1.61105563e-27, 1.26784654e-27, 9.97334208e-28, 7.84210443e-28, 6.16371303e-28, 4.84250512e-28, 3.8029066e-28, 2.98523914e-28, 2.34239696e-28, 1.8372141e-28, 1.44037958e-28, 1.12878714e-28, 8.84229644e-29, 6.92366442e-29, 5.41907145e-29, 4.23966629e-29, 3.3155563e-29, 2.59178564e-29, 2.02516165e-29, 1.58175151e-29, 1.23490848e-29, 9.63716384e-30, 7.51764256e-30, 5.86181444e-30, 4.56878191e-30, 3.55948167e-30, 2.77198623e-30, 2.15781077e-30, 1.67901134e-30, 1.30590591e-30, 1.01528539e-30, 7.89009772e-31, 6.12907063e-31, 4.75910046e-31, 3.69379786e-31, 2.86575718e-31, 2.22240736e-31, 1.72276469e-31, 1.33489246e-31, 1.03391449e-31, 8.00462501e-32, 6.19463034e-32, 4.79190098e-32, 3.70525681e-32, 2.86382739e-32, 2.2125516e-32, 1.70866935e-32, 1.31898757e-32, 1.01775076e-32, 7.84982964e-33, 6.05197452e-33, 4.66392994e-33, 3.59273362e-33, 2.76640711e-33, 2.12924309e-33, 1.63814553e-33, 1.25978897e-33, 9.68414341e-34, 7.4411955e-34, 5.71534318e-34, 4.38793323e-34, 3.36740855e-34, 2.58315053e-34, 1.98071381e-34, 1.51814012e-34, 1.16310815e-34, 8.90730782e-35, 6.81853296e-35, 5.21739303e-35, 3.9905641e-35, 3.05093644e-35, 2.33157916e-35, 1.78108771e-35, 1.359999e-35, 1.03803027e-35, 7.91953338e-36, 6.03958809e-36, 4.60397758e-36, 3.50814259e-36, 2.67201833e-36, 2.03432246e-36, 1.54816883e-36, 1.17770092e-36, 8.95508846e-37, 6.80648548e-37, 5.17123343e-37, 3.92720474e-37, 2.9812001e-37, 2.26212656e-37, 1.71577708e-37, 1.3008374e-37, 9.85833032e-38, 7.46795882e-38, 5.65481843e-38, 4.28009707e-38, 3.23822321e-38, 2.44894004e-38, 1.85126136e-38, 1.39886414e-38, 1.05657798e-38, 7.97711395e-39, 6.02016313e-39, 4.54139158e-39, 3.42442667e-39, 2.58110115e-39, 1.94464536e-39, 1.46451572e-39, 1.10246777e-39, 8.29575682e-40, 6.23970946e-40, 4.69127586e-40, 3.52562264e-40, 2.64849364e-40, 1.98875049e-40, 1.49272541e-40, 1.11994788e-40, 8.39912338e-41, 6.29634299e-41, 4.71803399e-41, 3.53388184e-41, 2.64582586e-41, 1.9801075e-41, 1.48127113e-41, 1.10764e-41, 8.27905921e-42, 6.18559717e-42, 4.61955953e-42, 3.44856006e-42, 2.57331716e-42, 1.91940727e-42, 1.43106465e-42, 1.06652164e-42, 7.94508227e-43, 5.91623519e-43, 4.40362949e-43, 3.27638119e-43, 2.43666818e-43, 1.81140964e-43, 1.34603167e-43, 9.99797857e-44, 7.42313654e-44, 5.50910465e-44, 4.08688977e-44, 3.03056188e-44, 2.2463205e-44, 1.66432686e-44, 1.23260481e-44, 9.12488578e-45, 6.75226311e-45, 4.99447244e-45, 3.69273576e-45, 2.72913608e-45, 2.01613914e-45, 1.48879248e-45, 1.09892027e-45, 8.10805269e-46, 5.97978128e-46, 4.40831275e-46, 3.24846253e-46, 2.39277406e-46, 1.76174842e-46, 1.29659535e-46, 9.53857288e-47, 7.01424159e-47, 5.15580418e-47, 3.78817897e-47, 2.78216539e-47, 2.04246105e-47, 1.49879767e-47, 1.09938706e-47, 8.06077173e-48, 5.90773515e-48, 4.32796565e-48, 3.16931196e-48, 2.31987493e-48, 1.69739358e-48, 1.24142057e-48, 9.07556617e-49, 6.63203672e-49, 4.8443836e-49, 3.53710978e-49, 2.58152874e-49, 1.88331863e-49, 1.37337475e-49, 1.0010891e-49, 7.29415229e-50, 5.31245595e-50, 3.86753526e-50, 2.81443775e-50, 2.04723379e-50, 1.48854396e-50, 1.08186811e-50, 7.85968982e-51, 5.70761842e-51, 4.14307592e-51, 3.00614062e-51, 2.18028935e-51, 1.5806562e-51, 1.14545794e-51, 8.29734834e-52, 6.00783432e-52, 4.34825517e-52, 3.14579595e-52, 2.27491163e-52, 1.64443597e-52, 1.18819539e-52, 8.58177682e-53, 6.19562369e-53, 4.47106836e-53, 3.22519556e-53, 2.32551563e-53, 1.67610392e-53, 1.20753879e-53, 8.69600359e-54, 6.25974734e-54, 4.50414511e-54, 3.23956293e-54, 2.32905072e-54, 1.67374754e-54, 1.20231825e-54, 8.63311276e-55, 6.19632048e-55, 4.44548161e-55, 3.18802892e-55, 2.28530504e-55, 1.6375124e-55, 1.1728528e-55, 8.39693744e-56, 6.00920228e-56, 4.29864151e-56, 3.0737188e-56, 2.19692658e-56, 1.56958722e-56, 1.12091808e-56, 8.00167299e-57, 5.70960722e-57, 4.07239765e-57, 2.90343853e-57, 2.06915777e-57, 1.4739851e-57, 1.04956925e-57, 7.47046472e-58, 5.31499256e-58, 3.77986444e-58, 2.687004e-58, 1.90932089e-58, 1.35615105e-58, 9.6284356e-59, 6.83316528e-59, 4.84737538e-59, 3.43724044e-59, 2.43630528e-59, 1.72612418e-59, 1.22244943e-59, 8.65382896e-60, 6.12356388e-60, 4.33130473e-60, 3.06232845e-60, 2.16422966e-60, 1.52888023e-60, 1.07959816e-60, 7.62025231e-61, 5.37644391e-61, 3.79174777e-61, 2.67302065e-61, 1.88357857e-61, 1.3267336e-61, 9.34119137e-62, 6.5741464e-62, 4.62482212e-62, 3.25214019e-62, 2.28592537e-62, 1.60610302e-62, 1.12798499e-62, 7.91866201e-63, 5.55672447e-63, 3.89766483e-63, 2.73280529e-63, 1.91527642e-63, 1.34175372e-63, 9.39577767e-64, 6.57674846e-64, 4.60159414e-64, 3.21828107e-64, 2.24987408e-64, 1.57221175e-64, 1.09820254e-64, 7.66782935e-65, 5.35156765e-65, 3.73343151e-65, 2.60347821e-65, 1.81475624e-65, 1.26444877e-65, 8.80648856e-66, 6.13088127e-66, 4.26640061e-66, 2.96769289e-66, 2.06345442e-66, 1.43413291e-66, 9.96328439e-67, 6.9188554e-67, 4.80269033e-67, 3.33237235e-67, 2.31121882e-67, 1.60231248e-67, 1.11038088e-67, 7.69157616e-68, 5.32570769e-68, 3.68602198e-68, 2.55009951e-68, 1.76349792e-68, 1.21902158e-68, 8.4229932e-69, 5.81755003e-69, 4.01635807e-69, 2.77168162e-69, 1.91193394e-69, 1.31832063e-69, 9.08631605e-70, 6.25998446e-70, 4.31099282e-70, 2.96756317e-70, 2.041932e-70, 1.40443359e-70, 9.65561128e-71, 6.63555071e-71, 4.55819401e-71, 3.12987704e-71, 2.14822805e-71, 1.47384607e-71, 1.01074712e-71, 6.92869646e-72, 4.74765554e-72, 3.25181261e-72, 2.22633474e-72, 1.52361086e-72, 1.04226056e-72, 7.12684306e-73, 4.87120868e-73, 3.32808894e-73, 2.27285518e-73, 1.55155529e-73, 1.05872069e-73, 7.22128024e-74, 4.92340603e-74, 3.35533404e-74, 2.2857279e-74, 1.55643847e-74, 1.0593953e-74, 7.207801e-75, 4.90191973e-75, 3.33233202e-75, 2.26437839e-75, 1.53804273e-75, 1.04425477e-75, 7.0870125e-76, 4.80771373e-76, 3.26011312e-76, 2.20976154e-76, 1.49718967e-76, 1.01397421e-76, 6.86429066e-77, 4.64497197e-77, 3.14187719e-77, 2.12429091e-77, 1.43567934e-77, 9.69883549e-78, 6.54938339e-78, 4.42079031e-78, 2.98275854e-78, 2.01166178e-78, 1.3561587e-78, 9.13870691e-79, 6.15570316e-79, 4.1446635e-79, 2.78945636e-79, 1.87658636e-79, 1.2619328e-79, 8.48247512e-80, 5.69938049e-80, 3.82781906e-80, 2.56976757e-80, 1.72446737e-80, 1.1567375e-80, 7.75592046e-81, 5.19817115e-81, 3.48246293e-81, 2.33206756e-81, 1.56104153e-81, 1.04449529e-81, 6.98581719e-82, 4.67032014e-82, 3.12100735e-82, 2.08478674e-82, 1.39202549e-82, 9.29076437e-83, 6.19832598e-83, 4.13348236e-83, 2.75534811e-83, 1.83592769e-83, 1.22279423e-83, 8.14085282e-84, 5.41757758e-84, 3.6037868e-84, 2.39624796e-84, 1.59266024e-84, 1.0581159e-84, 7.02687226e-85, 4.66454833e-85, 3.09510834e-85, 2.0528671e-85, 1.36102009e-85, 9.01959342e-86, 5.97486517e-86, 3.95628877e-86, 2.61858443e-86, 1.73246275e-86, 1.14572386e-86, 7.57381583e-87, 5.00458708e-87, 3.30552533e-87, 2.18238547e-87, 1.44026088e-87, 9.50100614e-88, 6.26493785e-88, 4.12935928e-88, 2.72061638e-88, 1.79172223e-88, 1.17948601e-88, 7.76128521e-89, 5.10497043e-89, 3.35638335e-89, 2.20581266e-89, 1.44905354e-89, 9.51522329e-90, 6.24557283e-90, 4.0977392e-90, 2.68741722e-90, 1.76175139e-90, 1.15444406e-90, 7.56170822e-91, 4.95091742e-91, 3.24018792e-91, 2.11969544e-91, 1.38610293e-91, 9.06016794e-92, 5.91964641e-92, 3.8661085e-92, 2.52389372e-92, 1.64697438e-92, 1.07428961e-92, 7.00446012e-93, 4.56506236e-93, 2.9739764e-93, 1.9366319e-93, 1.26059449e-93, 8.20205136e-94, 5.33443376e-94, 3.46795082e-94, 2.25359721e-94, 1.46385623e-94, 9.50471978e-95, 6.16877563e-95, 4.00200288e-95, 2.59522242e-95, 1.68225001e-95, 1.0899969e-95, 7.05957821e-96, 4.57036636e-96, 2.95761775e-96, 1.91316244e-96, 1.23703053e-96, 7.99517108e-97, 5.16528011e-97, 3.3356369e-97, 2.1531904e-97, 1.38932827e-97, 8.96078568e-98, 5.77704942e-98, 3.72292985e-98, 2.39818344e-98, 1.54418286e-98, 9.9387973e-99, 6.39422214e-99, 4.11206894e-99, 2.64333275e-99, 1.69848638e-99, 1.09091543e-99, 7.00388299e-100, 4.49474921e-100, 2.88330665e-100, 1.84882152e-100, 1.18499885e-100, 7.59206046e-101, 4.86205844e-101, 3.11242919e-101, 1.99157917e-101, 1.27383876e-101, 8.144232e-102, 5.2048067e-102, 3.32489446e-102, 2.1230974e-102, 1.35512939e-102, 8.64590395e-103, 5.51389946e-103, 3.51500604e-103, 2.23981477e-103, 1.42664832e-103, 9.08323506e-104, 5.78073386e-104, 3.67742815e-104, 2.33842916e-104, 1.48635668e-104, 9.44366693e-105, 5.99759431e-105, 3.80743338e-105, 2.41605237e-105, 1.53249539e-105, 9.7165215e-106, 6.15802234e-106, 3.90113078e-106, 2.47035044e-106, 1.56367117e-106, 9.893526e-107, 6.25713577e-107, 3.95565919e-107, 2.49966014e-107, 1.57892635e-107, 9.96922948e-108, 6.29187556e-108, 3.96933239e-108, 2.50307363e-108, 1.5777878e-108, 9.94128165e-109, 6.26116252e-109, 3.94172563e-109, 2.4804851e-109, 1.56029124e-109, 9.81055402e-110, 6.16595309e-110, 3.87369762e-110, 2.43259627e-110, 1.5269794e-110, 9.58109481e-111, 6.00918977e-111, 3.76734612e-111, 2.36088019e-111, 1.47887408e-111, 9.25992073e-112, 5.79565019e-112, 3.62590053e-112, 2.26750593e-112, 1.41742407e-112, 8.8566606e-113, 5.53170521e-113, 3.45355901e-113, 2.1552297e-113, 1.34443272e-113, 8.3830762e-114, 5.22500348e-114, 3.25528176e-114, 2.02725984e-114, 1.26197015e-114, 7.85249336e-115, 4.88410405e-115, 3.03655443e-115, 1.88710501e-115, 1.17227607e-115, 7.27918183e-116, 4.51808161e-116, 2.80313756e-116, 1.73841551e-116, 1.0776596e-116, 6.67772386e-117, 4.13612969e-117, 2.56081779e-117, 1.58482769e-117, 9.80402164e-118, 6.06241013e-118, 3.74718563e-118, 2.31517564e-118, 1.42982051e-118, 8.82669145e-119, 5.44669694e-119, 3.35959806e-119, 2.07138238e-119, 1.27659188e-119, 7.86434806e-120, 4.8427519e-120, 2.98085301e-120, 1.83403555e-120, 1.12796023e-120, 6.93423685e-121, 4.26110667e-121, 2.61736922e-121, 1.60703904e-121, 9.8629473e-122, 6.0507032e-122, 3.71042656e-122, 2.27436772e-122, 1.39353018e-122, 8.53475239e-123, 5.22497635e-123, 3.19739717e-123, 1.95581467e-123, 1.19585264e-123, 7.30880699e-124, 4.46513069e-124, 2.72672107e-124, 1.6644322e-124, 1.01557117e-124, 6.19403249e-125, 3.77620404e-125, 2.30121017e-125, 1.40176747e-125, 8.53521633e-126, 5.19483728e-126, 3.16044492e-126, 1.92195567e-126, 1.16830805e-126, 7.09888656e-127, 4.31163478e-127, 2.61765593e-127, 1.58855414e-127, 9.63630077e-128, 5.84302222e-128, 3.54147023e-128, 2.14559881e-128, 1.29936843e-128, 7.86565642e-129, 4.75944706e-129, 2.87870325e-129, 1.74042841e-129, 1.05180275e-129, 6.35376735e-130, 3.83660587e-130, 2.31569808e-130, 1.39712594e-130, 8.42573994e-131, 5.07924798e-131, 3.06062172e-131, 1.84348144e-131, 1.10990743e-131, 6.67964866e-132, 4.01827224e-132, 2.4162617e-132, 1.4523372e-132, 8.72589185e-133, 5.24048002e-133, 3.14594547e-133, 1.88777482e-133, 1.1323171e-133, 6.78898458e-134, 4.06874487e-134, 2.43744584e-134, 1.45958157e-134, 8.73656368e-135, 5.22723235e-135, 3.12623661e-135, 1.86892024e-135, 1.11680814e-135, 6.67091274e-136, 3.98300481e-136, 2.37714288e-136, 1.41813843e-136, 8.45669859e-137, 5.04082897e-137, 3.00346074e-137, 1.78879611e-137, 1.06492399e-137, 6.33716868e-138, 3.76956131e-138, 2.24132711e-138, 1.33210533e-138, 7.91390394e-139, 4.69961059e-139, 2.78966377e-139, 1.65523912e-139, 9.81721975e-140, 5.82016335e-140, 3.44905982e-140, 2.04307906e-140, 1.20973016e-140, 7.15996237e-141, 4.23596013e-141, 2.50502394e-141, 1.48078086e-141, 8.74960806e-142, 5.16779528e-142, 3.0509908e-142, 1.80050939e-142, 1.06210824e-142, 6.26269218e-143, 3.69123971e-143, 2.1747149e-143, 1.2807115e-143, 7.53909449e-144, 4.43614735e-144, 2.60922565e-144, 1.53403834e-144, 9.01528975e-145, 5.29592792e-145, 3.10973472e-145, 1.82525489e-145, 1.07088442e-145, 6.2803028e-146, 3.68160735e-146, 2.15731348e-146, 1.26359514e-146, 7.39812293e-147, 4.32966249e-147, 2.53282653e-147, 1.48107058e-147, 8.65695123e-148, 5.05793323e-148, 2.95392945e-148, 1.72443192e-148, 1.00626158e-148, 5.86941261e-149, 3.42213625e-149, 1.99443029e-149, 1.1618748e-149, 6.76579315e-150, 3.93819311e-150, 2.29136465e-150, 1.33263225e-150, 7.74721025e-151, 4.50193558e-151, 2.61500257e-151, 1.51832197e-151, 8.81200116e-152, 5.11215634e-152, 2.96450796e-152, 1.71838324e-152, 9.95649201e-153, 5.76649056e-153, 3.33837973e-153, 1.93187401e-153, 1.11748263e-153, 6.46132633e-154, 3.73440562e-154, 2.1574474e-154, 1.24588472e-154, 7.19174736e-155, 4.14963504e-155, 2.39333945e-155, 1.37980469e-155, 7.95151442e-156, 4.58037467e-156, 2.63737009e-156, 1.5179591e-156, 8.73309095e-157, 5.0222094e-157, 2.8869587e-157, 1.65884286e-157, 9.52771689e-158, 5.47005085e-158, 3.13915532e-158, 1.80074895e-158, 1.03255325e-158, 5.91821404e-159, 3.39068779e-159, 1.94179716e-159, 1.11157519e-159, 6.36052191e-160, 3.63802423e-160, 2.07997132e-160, 1.18868842e-160, 6.79043572e-161, 3.87744977e-161, 2.21316425e-161, 1.26269959e-161, 7.20120806e-162, 4.10515545e-162, 2.33922924e-162, 1.33240082e-162, 7.58605392e-163, 4.3173364e-163, 2.45603631e-163, 1.39660183e-163, 7.93833392e-164, 4.51029604e-164, 2.56153129e-164, 1.45416342e-164, 8.25174303e-165, 4.68055236e-165, 2.6537955e-165, 1.50403081e-165, 8.52049731e-166, 4.82494191e-166, 2.73110356e-166, 1.54526576e-166, 8.73951094e-167, 4.9407174e-167, 2.79197698e-167, 1.57707587e-167, 8.90455615e-168, 5.02563454e-168, 2.83523112e-168, 1.59883986e-168, 9.01239888e-169, 5.07802436e-169, 2.86001357e-169, 1.61012779e-169, 9.06090413e-170, 5.09684779e-170, 2.86583204e-170, 1.61071514e-170, 9.04910629e-171, 5.0817299e-171, 2.85257063e-171, 1.60059029e-171, 8.97724108e-172, 5.03297231e-172, 2.82049371e-172, 1.57995484e-172, 8.84673773e-173, 4.95154323e-173, 2.77023709e-173, 1.54921698e-173, 8.6601717e-174, 4.83904543e-174, 2.70278712e-174, 1.50897807e-174, 8.42118016e-175, 4.69766384e-175, 2.61944846e-175, 1.46001301e-175, 8.13434413e-176, 4.53009493e-176, 2.52180216e-176, 1.40324553e-176, 7.80504248e-177, 4.33946133e-177, 2.41165579e-177, 1.33971917e-177, 7.43928449e-178, 4.12921516e-178, 2.29098797e-178, 1.27056549e-178, 7.04352807e-179, 3.90303454e-179, 2.1618895e-179, 1.19697075e-179, 6.62449135e-180, 3.66471738e-180, 2.02650365e-180, 1.12014242e-180, 6.18896534e-181, 3.41807675e-181, 1.88696794e-181, 1.04127679e-181, 5.74363466e-182, 3.16684189e-182, 1.74535956e-182, 9.61529008e-183, 5.29491299e-183, 2.91456819e-183, 1.60364623e-183, 8.81986365e-184, 4.84879844e-184, 2.66455903e-184, 1.46364421e-184, 8.03645742e-185, 4.41075296e-185, 2.41980171e-185, 1.32698429e-185, 7.27395718e-186, 3.9856087e-186, 2.18291857e-186, 1.19508658e-186, 6.54003639e-187, 3.57750228e-187, 1.95613414e-187, 1.06914426e-187, 5.84107714e-188, 3.18983733e-188, 1.74125787e-188, 9.50115952e-189, 5.18213936e-189, 2.82527371e-189, 1.53968164e-189, 8.38726366e-190, 4.56697488e-190, 2.48574121e-190, 1.35239067e-190, 7.35474098e-191, 3.99808076e-191, 2.1724746e-191, 1.17998589e-191, 6.4064566e-192, 3.47678573e-192, 1.88606619e-192, 1.02271564e-192, 5.54334402e-193, 3.00336234e-193, 1.62653194e-193, 8.80514332e-194, 4.76463052e-194, 2.5771577e-194, 1.39338691e-194, 7.53045865e-195, 4.06808573e-195, 2.19673532e-195, 1.18572599e-195, 6.39749435e-196, 3.45028089e-196, 1.8600215e-196, 1.00230627e-196, 5.39885788e-197, 2.90684795e-197, 1.56445007e-197, 8.41627789e-198, 4.52582126e-198, 2.43272882e-198, 1.30710048e-198, 7.02009872e-199, 3.76874225e-199, 2.0224073e-199, 1.08482525e-199, 5.81660965e-200, 3.11744662e-200, 1.6701178e-200, 8.94363687e-201, 4.78740516e-201, 2.56156384e-201, 1.3700271e-201, 7.32440088e-202, 3.91411903e-202, 2.09081172e-202, 1.11638707e-202, 5.95845478e-203, 3.17886051e-203, 1.6952286e-203, 9.03657893e-204, 4.81502779e-204, 2.56455801e-204, 1.36535389e-204, 7.26602544e-205, 3.86516086e-205, 2.05521476e-205, 1.09236009e-205, 5.80354584e-206, 3.0820522e-206, 1.63608378e-206, 8.68140604e-207, 4.60461768e-207, 2.4412714e-207, 1.29377135e-207, 6.85358774e-208, 3.6290872e-208, 1.92086043e-208, 1.01627958e-208, 5.3746423e-209, 2.84122034e-209, 1.50134066e-209, 7.92998849e-210, 4.1868254e-210, 2.20961254e-210, 1.16564521e-210, 6.14660951e-211, 3.23984212e-211, 1.7069903e-211, 8.98994928e-212, 4.73262849e-212, 2.49038544e-212, 1.30993489e-212, 6.88734492e-213, 3.61970303e-213, 1.90157314e-213, 9.98555278e-214, 5.24143464e-214, 2.750092e-214, 1.44232541e-214, 7.56133143e-215, 3.96234494e-215, 2.07551211e-215, 1.08671897e-215, 5.6875891e-216, 2.97548774e-216, 1.55599108e-216, 8.13345427e-217, 4.24973591e-217, 2.21956488e-217, 1.15875797e-217, 6.04695324e-218, 3.15427444e-218, 1.6446797e-218, 8.57200024e-219, 4.46582816e-219, 2.32563112e-219, 1.21059435e-219, 6.29905562e-220, 3.27620626e-220, 1.70327988e-220, 8.85155944e-221, 4.59803797e-221, 2.3875051e-221, 1.23918188e-221, 6.4290202e-222, 3.33406083e-222, 1.72830839e-222, 8.9554611e-223, 4.6384583e-223, 2.40147657e-223, 1.24280229e-223, 6.42901926e-224, 3.32434741e-224, 1.71825285e-224, 8.87741935e-225, 4.58464162e-225, 2.36669909e-225, 1.22123626e-225, 6.29905396e-226, 3.24765556e-226, 1.67372303e-226, 8.62216276e-227, 4.43984529e-227, 2.28527491e-227, 1.1757854e-227, 6.04695407e-228, 3.10859592e-228, 1.59738967e-228, 8.20496002e-229, 4.21270514e-229, 2.16204462e-229, 1.10914223e-229, 5.6875971e-230, 2.91534131e-230, 1.49371928e-230, 7.65010799e-231, 3.91638287e-231, 2.00411075e-231, 1.0251261e-231, 5.24145503e-232, 2.67883174e-232, 1.36854161e-232, 6.98859025e-233, 3.56730423e-233, 1.82016064e-233, 9.28321245e-234, 4.73266605e-234, 2.4117508e-234, 1.22850804e-234, 6.25521984e-235, 3.18365612e-235, 1.61967817e-235, 8.23664418e-236, 4.18688357e-236, 2.12740642e-236, 1.08051064e-236, 5.48563155e-237, 2.78383328e-237, 1.41214344e-237, 7.16033609e-238, 3.62916743e-238, 1.83865228e-238, 9.31131909e-239, 4.71348162e-239, 2.38501673e-239, 1.2063131e-239, 6.09884598e-240, 3.08215369e-240, 1.55696884e-240, 7.86184642e-241, 3.96815105e-241, 2.0020312e-241, 1.00965382e-241, 5.0897113e-242, 2.56467779e-242, 1.2917887e-242, 6.50382961e-243, 3.27314946e-243, 1.64657503e-243, 8.27973085e-244, 4.16169187e-244, 2.09094511e-244, 1.05010892e-244, 5.27163185e-245, 2.64529923e-245, 1.32685525e-245, 6.65259822e-246, 3.33409563e-246, 1.67025899e-246, 8.3638954e-247, 4.18651235e-247, 2.09466786e-247, 1.04760358e-247, 5.23718342e-248, 2.61708366e-248, 1.30724334e-248, 6.52701001e-249, 3.2575503e-249, 1.62512583e-249, 8.10404543e-250, 4.0395757e-250, 2.01274449e-250, 1.002445e-250, 4.99058516e-251, 2.48348419e-251, 1.23535092e-251, 6.14240283e-252, 3.05284855e-252, 1.51667049e-252, 7.53175576e-253, 3.73869667e-253, 1.85508258e-253, 9.20079334e-254, 4.56148571e-254, 2.2605097e-254, 1.11976127e-254, 5.54451454e-255, 2.74423073e-255, 1.35767786e-255, 6.7141627e-256, 3.31899044e-256, 1.63998228e-256, 8.10011762e-257, 3.99910227e-257, 1.9735708e-257, 9.73558215e-258, 4.80054071e-258, 2.36612347e-258, 1.16574528e-258, 5.74101849e-259, 2.82613719e-259, 1.39064588e-259, 6.84004376e-260, 3.36294857e-260, 1.65272497e-260, 8.11895187e-261, 3.98674413e-261, 1.95684207e-261, 9.60090582e-262, 4.70855512e-262, 2.30824619e-262, 1.13108596e-262, 5.54023411e-263, 2.71256179e-263, 1.32754784e-263, 6.49441059e-264, 3.17576473e-264, 1.55230094e-264, 7.58442287e-265, 3.70414669e-265, 1.80830979e-265, 8.82422375e-266, 4.30426706e-266, 2.09865441e-266, 1.02282578e-266, 4.98289143e-267, 2.42649949e-267, 1.18113083e-267, 5.7469157e-268, 2.795057e-268, 1.35883127e-268, 6.60327554e-269, 3.20754182e-269, 1.55741466e-269, 7.55884098e-270, 3.66712052e-270, 1.77833747e-270, 8.62029639e-271, 4.17685348e-271, 2.02299731e-271, 9.79400662e-272, 4.7396307e-272, 2.29270215e-272, 1.10858704e-272, 5.35810202e-273, 2.58863718e-273, 1.25011629e-273, 6.0346025e-274, 2.91182954e-274, 1.40443696e-274, 6.77107427e-275, 3.26311162e-275, 1.57190143e-275, 7.56898615e-276, 3.64308361e-276, 1.75274845e-276, 8.42925267e-277, 4.05207595e-277, 1.94708589e-277, 9.35215435e-278, 4.49011278e-278, 2.15487389e-278, 1.03372614e-278, 4.9568772e-279, 2.37590926e-279, 1.13833626e-279, 5.45167947e-280, 2.60981117e-280, 1.24884025e-280, 5.9734291e-281, 2.85600898e-281, 1.3649428e-281, 6.52061208e-282, 3.11373253e-282, 1.48625481e-282, 7.09127407e-283, 3.3820054e-283, 1.61229071e-283, 7.68301066e-284, 3.65964155e-284, 1.74246752e-284, 8.29296562e-285, 3.94524581e-285, 1.87610568e-285, 8.91783764e-286, 4.23721844e-286, 2.01243182e-286, 9.55389645e-287, 4.53376404e-287, 2.15058359e-287, 1.01970083e-287, 4.83290492e-288, 2.28961657e-288, 1.08426714e-288, 5.13249895e-289, 2.42851322e-289, 1.14860607e-289, 5.43026186e-290, 2.56619392e-290, 1.21220816e-290, 5.72379361e-291, 2.70152979e-291, 1.27454329e-291, 6.01060865e-292, 2.83335731e-292, 1.33506766e-292, 6.28816944e-293, 2.96049431e-293, 1.39323142e-293, 6.55392279e-294, 3.08175718e-294, 1.44848682e-294, 6.80533817e-295, 3.19597894e-295, 1.50029666e-295, 7.03994733e-296, 3.3020277e-296, 1.54814292e-296, 7.25538433e-297, 3.39882521e-297, 1.59153529e-297, 7.449425e-298, 3.485365e-298, 1.63001956e-298, 7.62002511e-299, 3.56072984e-299, 1.66318547e-299, 7.76535612e-300, 3.62410781e-300, 1.69067401e-300, 7.8838378e-301, 3.67480689e-301, 1.71218387e-301, 7.97416681e-302, 3.71226755e-302, 1.72747695e-302, 8.03534056e-303, 3.73607301e-303, 1.73638273e-303, 8.06667574e-304, 3.74595693e-304, 1.73880147e-304, 8.06782102e-305, 3.74180844e-305, 1.73470602e-305, 8.03876361e-306, 3.72367415e-306, 1.72414236e-306, 7.9798295e-307, 3.6917573e-307, 1.70722873e-307, 7.89167734e-308, 3.64641395e-308, 1.68415345e-308, 7.77528627e-309, 3.58814642e-309, 1.65517137e-309, 7.63193771e-310, 3.51759397e-310, 1.62059927e-310, 7.46319196e-311, 3.43552114e-311, 1.58081002e-311, 7.27085993e-312, 3.34280399e-312, 1.53622596e-312, 7.05697054e-313, 3.24041433e-313, 1.4873112e-313, 6.82373439e-314, 3.12940298e-314, 1.4345657e-314, 6.57350746e-315, 3.01086443e-315, 1.37852633e-315, 6.3086225e-316, 2.88621782e-316, 1.31964647e-316, 6.03193927e-317, 2.7577109e-317, 1.25754726e-317, 5.73363676e-318, 2.60275264e-318, 1.22234805e-318, 5.31738151e-319, 2.66009884e-319, 1.06461265e-319, 5.32602766e-320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.18558426, 0.3711552, 0.55669948, 0.74220379, 0.92765481, 1.11303924, 1.29834376, 1.48355509, 1.66865994, 1.85364505, 2.03849716, 2.22320304, 2.40774945, 2.59212321, 2.77631112, 2.96030003, 3.1440768, 3.32762833, 3.51094153, 3.69400334, 3.87680075, 4.05932075, 4.24155039, 4.42347674, 4.60508691, 4.78636806, 4.96730736, 5.14789205, 5.3281094, 5.50794671, 5.68739136, 5.86643075, 6.04505232, 6.22324359, 6.4009921, 6.57828547, 6.75511136, 6.93145748, 7.1073116, 7.28266157, 7.45749526, 7.63180063, 7.8055657, 7.97877854, 8.1514273, 8.32350018, 8.49498547, 8.66587151, 8.83614672, 9.00579958, 9.17481866, 9.34319259, 9.5109101, 9.67795995, 9.84433103, 10.01001227, 10.17499271, 10.33926146, 10.50280769, 10.6656207, 10.82768983, 10.98900455, 11.14955437, 11.30932893, 11.46831794, 11.6265112, 11.78389861, 11.94047016, 12.09621593, 12.2511261, 12.40519095, 12.55840084, 12.71074625, 12.86221774, 13.01280598, 13.16250175, 13.31129591, 13.45917944, 13.60614342, 13.75217904, 13.89727757, 14.04143042, 14.18462908, 14.32686518, 14.46813041, 14.60841662, 14.74771575, 14.88601983, 15.02332103, 15.15961163, 15.29488402, 15.42913068, 15.56234424, 15.69451743, 15.82564309, 15.95571418, 16.08472379, 16.2126651, 16.33953144, 16.46531623, 16.59001302, 16.71361549, 16.83611743, 16.95751275, 17.07779548, 17.19695977, 17.31499989, 17.43191025, 17.54768537, 17.66231988, 17.77580855, 17.88814627, 17.99932805, 18.10934902, 18.21820445, 18.32588972, 18.43240034, 18.53773193, 18.64188027, 18.74484123, 18.84661083, 18.94718519, 19.04656057, 19.14473337, 19.24170008, 19.33745736, 19.43200195, 19.52533075, 19.61744077, 19.70832915, 19.79799315, 19.88643017, 19.97363772, 20.05961343, 20.14435509, 20.22786057, 20.31012789, 20.3911552, 20.47094076, 20.54948296, 20.62678031, 20.70283146, 20.77763517, 20.85119031, 20.9234959, 20.99455107, 21.06435508, 21.13290729, 21.20020722, 21.26625447, 21.33104879, 21.39459003, 21.45687819, 21.51791336, 21.57769575, 21.63622572, 21.69350372, 21.74953033, 21.80430623, 21.85783224, 21.91010928, 21.9611384, 22.01092075, 22.05945761, 22.10675037, 22.15280051, 22.19760966, 22.24117954, 22.28351199, 22.32460895, 22.36447248, 22.40310474, 22.44050802, 22.4766847, 22.51163726, 22.54536831, 22.57788054, 22.60917678, 22.63925992, 22.66813299, 22.6957991, 22.72226148, 22.74752345, 22.77158843, 22.79445994, 22.81614161, 22.83663714, 22.85595036, 22.87408518, 22.89104559, 22.90683571, 22.92145972, 22.93492191, 22.94722666, 22.95837843, 22.96838177, 22.97724134, 22.98496187, 22.99154817, 22.99700515, 23.0013378, 23.00455119, 23.00665047, 23.00764089, 23.00752776, 23.00631647, 23.0040125, 23.00062141, 22.99614882, 22.99060044, 22.98398204, 22.97629948, 22.96755868, 22.95776564, 22.94692642, 22.93504715, 22.92213404, 22.90819336, 22.89323143, 22.87725466, 22.86026952, 22.84228252, 22.82330025, 22.80332935, 22.78237654, 22.76044857, 22.73755226, 22.7136945, 22.6888822, 22.66312236, 22.636422, 22.60878821, 22.58022814, 22.55074897, 22.52035792, 22.48906229, 22.45686939, 22.4237866, 22.38982132, 22.35498102, 22.3192732, 22.28270538, 22.24528514, 22.2070201, 22.1679179, 22.12798624, 22.08723282, 22.0456654, 22.00329176, 21.96011973, 21.91615714, 21.87141186, 21.82589181, 21.77960489, 21.73255908, 21.68476234, 21.63622268, 21.58694811, 21.53694668, 21.48622646, 21.43479552, 21.38266196, 21.3298339, 21.27631948, 21.22212683, 21.16726412, 21.11173951, 21.0555612, 20.99873737, 20.94127623, 20.88318599, 20.82447486, 20.76515108, 20.70522286, 20.64469844, 20.58358606, 20.52189396, 20.45963038, 20.39680355, 20.33342171, 20.26949311, 20.20502597, 20.14002853, 20.074509, 20.00847562, 19.94193658, 19.87490011, 19.80737439, 19.73936761, 19.67088795, 19.60194358, 19.53254264, 19.46269329, 19.39240364, 19.3216818, 19.25053589, 19.17897396, 19.10700409, 19.03463432, 18.96187268, 18.88872717, 18.81520577, 18.74131646, 18.66706716, 18.5924658, 18.51752027, 18.44223844, 18.36662816, 18.29069724, 18.21445348, 18.13790463, 18.06105844, 17.98392261, 17.90650482, 17.8288127, 17.75085389, 17.67263596, 17.59416646, 17.51545291, 17.43650279, 17.35732356, 17.27792263, 17.19830737, 17.11848514, 17.03846323, 16.95824892, 16.87784944, 16.79727198, 16.71652368, 16.63561168, 16.55454303, 16.47332478, 16.39196391, 16.31046737, 16.22884207, 16.14709487, 16.0652326, 15.98326204, 15.90118991, 15.81902291, 15.73676768, 15.65443082, 15.57201889, 15.48953838, 15.40699576, 15.32439744, 15.24174979, 15.15905912, 15.07633171, 14.99357377, 14.91079148, 14.82799096, 14.74517829, 14.66235948, 14.57954051, 14.4967273, 14.41392573, 14.33114162, 14.24838074, 14.1656488, 14.08295148, 14.00029439, 13.91768309, 13.8351231, 13.75261986, 13.6701788, 13.58780525, 13.50550453, 13.42328187, 13.34114246, 13.25909146, 13.17713393, 13.09527492, 13.01351941, 12.9318723, 12.85033848, 12.76892276, 12.6876299, 12.6064646, 12.52543152, 12.44453526, 12.36378035, 12.28317128, 12.20271249, 12.12240835, 12.04226319, 11.96228127, 11.88246681, 11.80282397, 11.72335685, 11.6440695, 11.56496592, 11.48605004, 11.40732575, 11.32879688, 11.25046721, 11.17234045, 11.09442028, 11.0167103, 10.93921408, 10.86193511, 10.78487685, 10.7080427, 10.631436, 10.55506002, 10.47891802, 10.40301317, 10.32734859, 10.25192737, 10.17675253, 10.10182702, 10.02715378, 9.95273565, 9.87857546, 9.80467596, 9.73103986, 9.65766981, 9.58456842, 9.51173824, 9.43918176, 9.36690144, 9.29489968, 9.22317882, 9.15174117, 9.08058896, 9.0097244, 8.93914964, 8.86886677, 8.79887784, 8.72918486, 8.65978977, 8.59069448, 8.52190085, 8.45341068, 8.38522573, 8.31734771, 8.2497783, 8.18251911, 8.11557172, 8.04893764, 7.98261836, 7.91661532, 7.85092991, 7.78556347, 7.7205173, 7.65579267, 7.59139077, 7.52731279, 7.46355984, 7.40013301, 7.33703334, 7.27426183, 7.21181943, 7.14970706, 7.08792559, 7.02647585, 6.96535864, 6.9045747, 6.84412475, 6.78400945, 6.72422945, 6.66478533, 6.60567764, 6.54690692, 6.48847363, 6.43037821, 6.37262108, 6.3152026, 6.2581231, 6.20138288, 6.14498219, 6.08892127, 6.0332003, 5.97781944, 5.9227788, 5.86807848, 5.81371854, 5.75969898, 5.70601981, 5.65268097, 5.5996824, 5.54702398, 5.49470557, 5.44272702, 5.39108811, 5.33978862, 5.28882828, 5.23820682, 5.18792391, 5.13797921, 5.08837234, 5.03910291, 4.99017047, 4.94157458, 4.89331476, 4.84539048, 4.79780123, 4.75054643, 4.70362551, 4.65703784, 4.6107828, 4.56485972, 4.51926793, 4.47400672, 4.42907535, 4.38447307, 4.34019911, 4.29625268, 4.25263295, 4.20933909, 4.16637024, 4.12372551, 4.08140401, 4.03940481, 3.99772698, 3.95636955, 3.91533155, 3.87461199, 3.83420984, 3.79412408, 3.75435365, 3.7148975, 3.67575454, 3.63692366, 3.59840376, 3.5601937, 3.52229234, 3.48469851, 3.44741104, 3.41042874, 3.3737504, 3.33737481, 3.30130073, 3.26552693, 3.23005213, 3.19487508, 3.15999448, 3.12540905, 3.09111749, 3.05711846, 3.02341065, 2.98999272, 2.95686332, 2.92402109, 2.89146465, 2.85919264, 2.82720367, 2.79549633, 2.76406923, 2.73292096, 2.70205008, 2.67145517, 2.6411348, 2.61108752, 2.58131187, 2.55180641, 2.52256967, 2.49360018, 2.46489646, 2.43645703, 2.4082804, 2.38036508, 2.35270958, 2.32531239, 2.298172, 2.27128691, 2.24465559, 2.21827653, 2.19214822, 2.16626911, 2.14063769, 2.11525243, 2.09011178, 2.06521422, 2.0405582, 2.01614219, 1.99196463, 1.968024, 1.94431874, 1.92084731, 1.89760815, 1.87459973, 1.85182049, 1.82926889, 1.80694337, 1.78484239, 1.7629644, 1.74130784, 1.71987118, 1.69865285, 1.67765133, 1.65686506, 1.6362925, 1.6159321, 1.59578233, 1.57584164, 1.5561085, 1.53658138, 1.51725873, 1.49813903, 1.47922075, 1.46050237, 1.44198236, 1.4236592, 1.40553138, 1.38759737, 1.36985568, 1.35230479, 1.33494321, 1.31776942, 1.30078194, 1.28397928, 1.26735994, 1.25092244, 1.23466531, 1.21858706, 1.20268624, 1.18696137, 1.17141099, 1.15603365, 1.1408279, 1.12579228, 1.11092537, 1.09622572, 1.08169191, 1.0673225, 1.05311609, 1.03907125, 1.02518659, 1.01146069, 0.99789216, 0.98447961, 0.97122167, 0.95811694, 0.94516405, 0.93236166, 0.91970838, 0.90720287, 0.89484378, 0.88262978, 0.87055953, 0.8586317, 0.84684497, 0.83519803, 0.82368958, 0.8123183, 0.80108291, 0.78998213, 0.77901467, 0.76817927, 0.75747465, 0.74689956, 0.73645274, 0.72613297, 0.71593899, 0.70586958, 0.69592351, 0.68609958, 0.67639658, 0.6668133, 0.65734856, 0.64800116, 0.63876994, 0.62965372, 0.62065133, 0.61176163, 0.60298346, 0.5943157, 0.58575719, 0.57730683, 0.56896348, 0.56072605, 0.55259343, 0.54456453, 0.53663825, 0.52881353, 0.52108928, 0.51346445, 0.50593798, 0.49850882, 0.49117593, 0.48393828, 0.47679484, 0.46974459, 0.46278653, 0.45591964, 0.44914295, 0.44245545, 0.43585617, 0.42934415, 0.4229184, 0.41657798, 0.41032194, 0.40414933, 0.39805923, 0.3920507, 0.38612283, 0.3802747, 0.37450542, 0.36881408, 0.36319979, 0.35766168, 0.35219888, 0.3468105, 0.3414957, 0.33625362, 0.33108343, 0.32598427, 0.32095532, 0.31599577, 0.31110479, 0.30628157, 0.30152532, 0.29683523, 0.29221054, 0.28765044, 0.28315418, 0.27872099, 0.27435011, 0.27004078, 0.26579227, 0.26160383, 0.25747474, 0.25340428, 0.24939171, 0.24543635, 0.24153747, 0.23769439, 0.23390642, 0.23017287, 0.22649307, 0.22286635, 0.21929204, 0.21576949, 0.21229805, 0.20887707, 0.20550592, 0.20218397, 0.19891059, 0.19568516, 0.19250708, 0.18937573, 0.18629052, 0.18325085, 0.18025614, 0.17730581, 0.17439928, 0.17153598, 0.16871535, 0.16593684, 0.16319988, 0.16050395, 0.15784849, 0.15523297, 0.15265687, 0.15011966, 0.14762084, 0.14515987, 0.14273627, 0.14034953, 0.13799916, 0.13568467, 0.13340557, 0.13116139, 0.12895165, 0.1267759, 0.12463365, 0.12252447, 0.12044789, 0.11840347, 0.11639077, 0.11440935, 0.11245878, 0.11053864, 0.1086485, 0.10678795, 0.10495657, 0.10315396, 0.10137971, 0.09963343, 0.09791473, 0.09622321, 0.0945585, 0.09292022, 0.09130798, 0.08972142, 0.08816018, 0.08662389, 0.0851122, 0.08362475, 0.0821612, 0.08072121, 0.07930443, 0.07791052, 0.07653916, 0.07519002, 0.07386278, 0.07255712, 0.07127271, 0.07000926, 0.06876645, 0.06754398, 0.06634156, 0.06515888, 0.06399565, 0.06285158, 0.0617264, 0.06061981, 0.05953155, 0.05846134, 0.0574089, 0.05637397, 0.0553563, 0.05435561, 0.05337165, 0.05240417, 0.05145292, 0.05051765, 0.04959812, 0.04869409, 0.04780532, 0.04693159, 0.04607265, 0.04522828, 0.04439825, 0.04358236, 0.04278037, 0.04199207, 0.04121725, 0.0404557, 0.03970721, 0.03897158, 0.03824861, 0.03753809, 0.03683985, 0.03615367, 0.03547937, 0.03481677, 0.03416567, 0.0335259, 0.03289728, 0.03227963, 0.03167276, 0.03107653, 0.03049074, 0.02991523, 0.02934985, 0.02879442, 0.02824879, 0.02771279, 0.02718628, 0.02666909, 0.02616108, 0.0256621, 0.025172, 0.02469063, 0.02421786, 0.02375354, 0.02329753, 0.02284969, 0.0224099, 0.02197802, 0.02155392, 0.02113746, 0.02072853, 0.020327, 0.01993274, 0.01954563, 0.01916556, 0.0187924, 0.01842604, 0.01806637, 0.01771327, 0.01736664, 0.01702636, 0.01669232, 0.01636443, 0.01604257, 0.01572664, 0.01541655, 0.01511219, 0.01481347, 0.01452028, 0.01423254, 0.01395015, 0.01367301, 0.01340105, 0.01313416, 0.01287226, 0.01261527, 0.0123631, 0.01211566, 0.01187288, 0.01163466, 0.01140094, 0.01117164, 0.01094667, 0.01072596, 0.01050943, 0.01029702, 0.01008865, 0.00988424, 0.00968373, 0.00948705, 0.00929414, 0.00910491, 0.00891932, 0.00873728, 0.00855875, 0.00838365, 0.00821193, 0.00804353, 0.00787838, 0.00771643, 0.00755761, 0.00740188, 0.00724918, 0.00709945, 0.00695263, 0.00680869, 0.00666755, 0.00652917, 0.00639351, 0.00626051, 0.00613012, 0.0060023, 0.00587699, 0.00575416, 0.00563375, 0.00551572, 0.00540003, 0.00528663, 0.00517549, 0.00506655, 0.00495979, 0.00485515, 0.0047526, 0.0046521, 0.00455361, 0.00445709, 0.00436251, 0.00426983, 0.00417902, 0.00409003, 0.00400284, 0.00391741, 0.0038337, 0.00375169, 0.00367134, 0.00359263, 0.00351551, 0.00343996, 0.00336595, 0.00329346, 0.00322244, 0.00315287, 0.00308473, 0.00301799, 0.00295261, 0.00288859, 0.00282587, 0.00276445, 0.0027043, 0.00264539, 0.0025877, 0.0025312, 0.00247588, 0.0024217, 0.00236865, 0.00231671, 0.00226585, 0.00221604, 0.00216728, 0.00211954, 0.0020728, 0.00202704, 0.00198224, 0.00193838, 0.00189544, 0.00185341, 0.00181227, 0.00177199, 0.00173257, 0.00169398, 0.00165621, 0.00161924, 0.00158306, 0.00154765, 0.00151299, 0.00147907, 0.00144587, 0.00141339, 0.0013816, 0.00135049, 0.00132005, 0.00129026, 0.00126111, 0.00123259, 0.00120469, 0.00117739, 0.00115068, 0.00112454, 0.00109898, 0.00107396, 0.00104949, 0.00102556, 0.00100214, 0.00097923, 0.00095683, 0.00093491, 0.00091347, 0.0008925, 0.00087199, 0.00085193, 0.00083232, 0.00081313, 0.00079436, 0.00077601, 0.00075807, 0.00074052, 0.00072336, 0.00070658, 0.00069017, 0.00067412, 0.00065844, 0.0006431, 0.0006281, 0.00061344, 0.0005991, 0.00058509, 0.00057139, 0.00055799, 0.0005449, 0.0005321, 0.00051959, 0.00050736, 0.0004954, 0.00048372, 0.0004723, 0.00046113, 0.00045022, 0.00043956, 0.00042914, 0.00041895, 0.000409, 0.00039927, 0.00038977, 0.00038048, 0.00037141, 0.00036254, 0.00035387, 0.0003454, 0.00033713, 0.00032905, 0.00032115, 0.00031344, 0.0003059, 0.00029854, 0.00029134, 0.00028431, 0.00027745, 0.00027074, 0.00026419, 0.0002578, 0.00025155, 0.00024544, 0.00023948, 0.00023366, 0.00022797, 0.00022242, 0.00021699, 0.0002117, 0.00020652, 0.00020147, 0.00019654, 0.00019172, 0.00018702, 0.00018243, 0.00017794, 0.00017356, 0.00016929, 0.00016512, 0.00016104, 0.00015706, 0.00015318, 0.00014939, 0.00014569, 0.00014207, 0.00013855, 0.00013511, 0.00013175, 0.00012847, 0.00012526, 0.00012214, 0.00011909, 0.00011611, 0.00011321, 0.00011037, 0.00010761, 0.00010491, 0.00010227, 0.0000997, 0.00009719, 0.00009475, 0.00009236, 0.00009003, 0.00008775, 0.00008554, 0.00008337, 0.00008126, 0.0000792, 0.00007719, 0.00007523, 0.00007332, 0.00007145, 0.00006963, 0.00006785, 0.00006612, 0.00006443, 0.00006279, 0.00006118, 0.00005961, 0.00005808, 0.00005659, 0.00005514, 0.00005372, 0.00005234, 0.00005099, 0.00004967, 0.00004839, 0.00004714, 0.00004592, 0.00004473, 0.00004358, 0.00004245, 0.00004134, 0.00004027, 0.00003922, 0.0000382, 0.00003721, 0.00003624, 0.00003529, 0.00003437, 0.00003347, 0.00003259, 0.00003174, 0.00003091, 0.0000301, 0.00002931, 0.00002854, 0.00002778, 0.00002705, 0.00002634, 0.00002564, 0.00002497, 0.00002431, 0.00002366, 0.00002304, 0.00002243, 0.00002183, 0.00002125, 0.00002069, 0.00002014, 0.0000196, 0.00001908, 0.00001857, 0.00001807, 0.00001759, 0.00001712, 0.00001666, 0.00001621, 0.00001578, 0.00001536, 0.00001494, 0.00001454, 0.00001415, 0.00001377, 0.0000134, 0.00001304, 0.00001268, 0.00001234, 0.00001201, 0.00001168, 0.00001137, 0.00001106, 0.00001076, 0.00001046, 0.00001018, 9.90226931e-06, 9.63240396e-06, 9.36966232e-06, 9.11386287e-06, 8.86482852e-06, 8.62238654e-06, 8.38636843e-06, 8.15660981e-06, 7.93295039e-06, 7.7152338e-06, 7.50330752e-06, 7.2970228e-06, 7.09623459e-06, 6.90080139e-06, 6.71058523e-06, 6.52545155e-06, 6.34526914e-06, 6.16991004e-06, 5.99924947e-06, 5.83316577e-06, 5.6715403e-06, 5.51425739e-06, 5.36120425e-06, 5.21227092e-06, 5.0673502e-06, 4.92633754e-06, 4.78913106e-06, 4.65563141e-06, 4.52574175e-06, 4.39936766e-06, 4.27641713e-06, 4.15680043e-06, 4.04043014e-06, 3.92722102e-06, 3.81708998e-06, 3.70995607e-06, 3.60574036e-06, 3.50436594e-06, 3.40575785e-06, 3.30984303e-06, 3.21655029e-06, 3.12581025e-06, 3.03755531e-06, 2.95171958e-06, 2.86823886e-06, 2.78705061e-06, 2.70809386e-06, 2.63130924e-06, 2.55663889e-06, 2.48402642e-06, 2.41341691e-06, 2.34475686e-06, 2.27799413e-06, 2.21307794e-06, 2.14995881e-06, 2.08858856e-06, 2.02892024e-06, 1.97090812e-06, 1.91450765e-06, 1.85967546e-06, 1.80636929e-06, 1.75454798e-06, 1.70417143e-06, 1.65520062e-06, 1.60759753e-06, 1.56132512e-06, 1.51634733e-06, 1.47262906e-06, 1.4301361e-06, 1.38883516e-06, 1.34869381e-06, 1.30968049e-06, 1.27176446e-06, 1.23491579e-06, 1.19910532e-06, 1.16430471e-06, 1.13048631e-06, 1.09762325e-06, 1.06568933e-06, 1.03465908e-06, 1.00450769e-06, 9.75210997e-07, 9.46745503e-07, 9.19088322e-07, 8.9221718e-07, 8.66110396e-07, 8.4074687e-07, 8.16106062e-07, 7.92167985e-07, 7.68913185e-07, 7.46322729e-07, 7.24378193e-07, 7.03061646e-07, 6.82355641e-07, 6.62243197e-07, 6.42707794e-07, 6.23733354e-07, 6.05304234e-07, 5.87405215e-07, 5.70021486e-07, 5.5313864e-07, 5.36742658e-07, 5.20819901e-07, 5.05357102e-07, 4.90341353e-07, 4.75760096e-07, 4.61601116e-07, 4.47852532e-07, 4.34502784e-07, 4.21540629e-07, 4.08955132e-07, 3.96735655e-07, 3.84871853e-07, 3.73353664e-07, 3.621713e-07, 3.51315245e-07, 3.40776242e-07, 3.3054529e-07, 3.20613633e-07, 3.10972761e-07, 3.01614394e-07, 2.92530484e-07, 2.83713203e-07, 2.75154942e-07, 2.66848299e-07, 2.58786081e-07, 2.50961292e-07, 2.43367132e-07, 2.35996987e-07, 2.28844431e-07, 2.21903215e-07, 2.15167262e-07, 2.08630668e-07, 2.02287692e-07, 1.96132754e-07, 1.9016043e-07, 1.84365448e-07, 1.78742682e-07, 1.73287153e-07, 1.6799402e-07, 1.62858576e-07, 1.57876251e-07, 1.53042601e-07, 1.48353306e-07, 1.43804169e-07, 1.39391114e-07, 1.35110176e-07, 1.30957505e-07, 1.26929359e-07, 1.23022102e-07, 1.19232201e-07, 1.15556224e-07, 1.11990835e-07, 1.08532796e-07, 1.05178957e-07, 1.01926262e-07, 9.87717376e-08, 9.57124993e-08, 9.27457431e-08, 8.98687454e-08, 8.70788607e-08, 8.43735191e-08, 8.17502248e-08, 7.92065531e-08, 7.67401493e-08, 7.43487264e-08, 7.2030063e-08, 6.97820018e-08, 6.76024478e-08, 6.54893664e-08, 6.34407816e-08, 6.14547747e-08, 5.95294824e-08, 5.76630954e-08, 5.5853857e-08, 5.41000612e-08, 5.24000517e-08, 5.07522202e-08, 4.91550054e-08, 4.76068913e-08, 4.6106406e-08, 4.46521208e-08, 4.32426485e-08, 4.18766423e-08, 4.05527952e-08, 3.92698381e-08, 3.80265391e-08, 3.68217027e-08, 3.56541681e-08, 3.45228089e-08, 3.34265318e-08, 3.23642753e-08, 3.13350097e-08, 3.03377352e-08, 2.93714817e-08, 2.84353078e-08, 2.75282999e-08, 2.66495711e-08, 2.57982613e-08, 2.49735355e-08, 2.41745835e-08, 2.34006193e-08, 2.26508802e-08, 2.1924626e-08, 2.12211388e-08, 2.05397219e-08, 1.98796994e-08, 1.92404156e-08, 1.86212344e-08, 1.80215386e-08, 1.74407296e-08, 1.68782266e-08, 1.63334663e-08, 1.58059023e-08, 1.52950045e-08, 1.48002588e-08, 1.43211665e-08, 1.38572439e-08, 1.34080221e-08, 1.29730459e-08, 1.25518743e-08, 1.21440792e-08, 1.17492458e-08, 1.13669715e-08, 1.09968663e-08, 1.06385515e-08, 1.02916604e-08, 9.95583706e-09, 9.63073653e-09, 9.31602428e-09, 9.01137599e-09, 8.7164772e-09, 8.43102303e-09, 8.15471791e-09, 7.88727529e-09, 7.62841737e-09, 7.37787485e-09, 7.13538667e-09, 6.90069977e-09, 6.67356883e-09, 6.45375607e-09, 6.24103103e-09, 6.0351703e-09, 5.83595735e-09, 5.64318233e-09, 5.45664184e-09, 5.27613876e-09, 5.10148204e-09, 4.93248656e-09, 4.76897288e-09, 4.61076714e-09, 4.45770086e-09, 4.30961078e-09, 4.16633869e-09, 4.02773131e-09, 3.8936401e-09, 3.76392115e-09, 3.63843504e-09, 3.51704666e-09, 3.39962515e-09, 3.28604369e-09, 3.17617945e-09, 3.06991342e-09, 2.96713033e-09, 2.86771849e-09, 2.77156972e-09, 2.67857925e-09, 2.58864557e-09, 2.50167036e-09, 2.4175584e-09, 2.33621747e-09, 2.25755822e-09, 2.18149415e-09, 2.10794147e-09, 2.03681903e-09, 1.96804826e-09, 1.90155304e-09, 1.83725969e-09, 1.77509684e-09, 1.7149954e-09, 1.65688846e-09, 1.60071121e-09, 1.54640095e-09, 1.49389691e-09, 1.44314031e-09, 1.3940742e-09, 1.34664346e-09, 1.30079473e-09, 1.25647634e-09, 1.21363828e-09, 1.17223215e-09, 1.13221106e-09, 1.09352965e-09, 1.05614401e-09, 1.02001164e-09, 9.85091383e-10, 9.51343424e-10, 9.18729218e-10, 8.87211463e-10, 8.56754056e-10, 8.27322055e-10, 7.98881647e-10, 7.71400107e-10, 7.44845769e-10, 7.19187988e-10, 6.94397111e-10, 6.70444443e-10, 6.47302219e-10, 6.24943575e-10, 6.03342515e-10, 5.82473891e-10, 5.62313368e-10, 5.42837404e-10, 5.24023222e-10, 5.05848788e-10, 4.88292785e-10, 4.71334591e-10, 4.54954257e-10, 4.39132485e-10, 4.23850608e-10, 4.09090572e-10, 3.9483491e-10, 3.81066729e-10, 3.67769691e-10, 3.54927992e-10, 3.42526348e-10, 3.30549978e-10, 3.18984584e-10, 3.07816343e-10, 2.97031883e-10, 2.86618277e-10, 2.76563019e-10, 2.66854022e-10, 2.57479593e-10, 2.48428429e-10, 2.39689599e-10, 2.31252535e-10, 2.2310702e-10, 2.15243173e-10, 2.07651443e-10, 2.00322597e-10, 1.93247707e-10, 1.86418142e-10, 1.79825559e-10, 1.73461894e-10, 1.6731935e-10, 1.61390391e-10, 1.55667733e-10, 1.50144333e-10, 1.44813388e-10, 1.39668317e-10, 1.34702765e-10, 1.29910586e-10, 1.25285842e-10, 1.20822793e-10, 1.16515893e-10, 1.12359782e-10, 1.0834928e-10, 1.04479382e-10, 1.00745252e-10, 9.71422143e-11, 9.36657544e-11, 9.03115083e-11, 8.70752601e-11, 8.39529361e-11, 8.09406007e-11, 7.80344515e-11, 7.52308149e-11, 7.25261419e-11, 6.9917004e-11, 6.74000891e-11, 6.49721977e-11, 6.26302392e-11, 6.0371228e-11, 5.81922804e-11, 5.60906108e-11, 5.40635289e-11, 5.21084359e-11, 5.02228222e-11, 4.84042635e-11, 4.66504189e-11, 4.49590274e-11, 4.33279056e-11, 4.17549448e-11, 4.02381087e-11, 3.87754311e-11, 3.73650132e-11, 3.60050215e-11, 3.46936856e-11, 3.34292962e-11, 3.22102027e-11, 3.10348116e-11, 2.99015843e-11, 2.88090354e-11, 2.77557307e-11, 2.67402859e-11, 2.57613642e-11, 2.48176754e-11, 2.39079741e-11, 2.30310577e-11, 2.21857658e-11, 2.1370978e-11, 2.0585613e-11, 1.9828627e-11, 1.90990126e-11, 1.83957975e-11, 1.77180434e-11, 1.70648445e-11, 1.64353268e-11, 1.58286467e-11, 1.52439903e-11, 1.4680572e-11, 1.41376337e-11, 1.36144439e-11, 1.31102968e-11, 1.26245114e-11, 1.21564304e-11, 1.17054198e-11, 1.12708678e-11, 1.08521842e-11, 1.04487994e-11, 1.00601641e-11, 9.68574822e-12, 9.32504042e-12, 8.97754742e-12, 8.64279339e-12, 8.32031928e-12, 8.00968231e-12, 7.71045539e-12, 7.42222653e-12, 7.14459837e-12, 6.87718764e-12, 6.6196247e-12, 6.37155301e-12, 6.13262873e-12, 5.90252025e-12, 5.68090776e-12, 5.46748287e-12, 5.26194815e-12, 5.06401681e-12, 4.87341228e-12, 4.68986789e-12, 4.5131265e-12, 4.34294016e-12, 4.17906981e-12, 4.02128494e-12, 3.86936334e-12, 3.72309072e-12, 3.58226053e-12, 3.44667362e-12, 3.316138e-12, 3.19046858e-12, 3.06948697e-12, 2.95302115e-12, 2.84090536e-12, 2.73297978e-12, 2.62909037e-12, 2.52908866e-12, 2.43283155e-12, 2.34018111e-12, 2.2510044e-12, 2.1651733e-12, 2.08256434e-12, 2.00305852e-12, 1.92654117e-12, 1.85290176e-12, 1.78203382e-12, 1.71383472e-12, 1.64820556e-12, 1.58505108e-12, 1.52427945e-12, 1.46580222e-12, 1.40953415e-12, 1.35539313e-12, 1.30330002e-12, 1.2531786e-12, 1.20495545e-12, 1.1585598e-12, 1.11392351e-12, 1.07098091e-12, 1.02966878e-12, 9.89926165e-13, 9.51694397e-13, 9.14916945e-13, 8.79539359e-13, 8.45509198e-13, 8.12775948e-13, 7.81290963e-13, 7.51007386e-13, 7.21880093e-13, 6.93865627e-13, 6.66922136e-13, 6.41009317e-13, 6.16088359e-13, 5.92121888e-13, 5.69073914e-13, 5.46909785e-13, 5.25596132e-13, 5.05100826e-13, 4.85392934e-13, 4.66442671e-13, 4.4822136e-13, 4.30701394e-13, 4.13856193e-13, 3.97660169e-13, 3.82088688e-13, 3.67118036e-13, 3.52725385e-13, 3.3888876e-13, 3.25587008e-13, 3.12799769e-13, 3.00507444e-13, 2.88691169e-13, 2.77332789e-13, 2.66414828e-13, 2.55920469e-13, 2.45833525e-13, 2.36138417e-13, 2.26820156e-13, 2.17864312e-13, 2.09257004e-13, 2.0098487e-13, 1.93035056e-13, 1.8539519e-13, 1.78053368e-13, 1.70998139e-13, 1.64218481e-13, 1.57703791e-13, 1.51443868e-13, 1.45428897e-13, 1.39649436e-13, 1.340964e-13, 1.28761051e-13, 1.23634979e-13, 1.18710099e-13, 1.13978631e-13, 1.09433089e-13, 1.05066277e-13, 1.00871269e-13, 9.68414063e-14, 9.2970282e-14, 8.92517353e-14, 8.56798404e-14, 8.22488982e-14, 7.89534276e-14, 7.57881574e-14, 7.27480186e-14, 6.98281361e-14, 6.70238222e-14, 6.43305691e-14, 6.1744042e-14, 5.92600729e-14, 5.68746539e-14, 5.45839316e-14, 5.23842008e-14, 5.02718993e-14, 4.8243602e-14, 4.62960161e-14, 4.4425976e-14, 4.26304382e-14, 4.0906477e-14, 3.925128e-14, 3.76621433e-14, 3.6136468e-14, 3.46717559e-14, 3.32656055e-14, 3.19157088e-14, 3.06198472e-14, 2.93758883e-14, 2.81817826e-14, 2.70355605e-14, 2.59353289e-14, 2.48792684e-14, 2.38656307e-14, 2.28927355e-14, 2.19589683e-14, 2.10627774e-14, 2.02026718e-14, 1.93772189e-14, 1.8585042e-14, 1.78248184e-14, 1.70952773e-14, 1.63951974e-14, 1.57234055e-14, 1.50787746e-14, 1.44602216e-14, 1.38667062e-14, 1.3297229e-14, 1.27508297e-14, 1.22265862e-14, 1.17236123e-14, 1.1241057e-14, 1.07781028e-14, 1.03339643e-14, 9.90788745e-15, 9.49914765e-15, 9.10704915e-15, 8.73092366e-15, 8.37012936e-15, 8.02404985e-15, 7.69209315e-15, 7.37369077e-15, 7.06829677e-15, 6.7753869e-15, 6.49445772e-15, 6.22502583e-15, 5.96662703e-15, 5.71881561e-15, 5.48116364e-15, 5.25326019e-15, 5.03471076e-15, 4.82513657e-15, 4.62417398e-15, 4.43147386e-15, 4.24670105e-15, 4.06953378e-15, 3.89966317e-15, 3.73679272e-15, 3.58063779e-15, 3.43092517e-15, 3.28739259e-15, 3.14978834e-15, 3.01787079e-15, 2.89140804e-15, 2.77017751e-15, 2.65396559e-15, 2.54256725e-15, 2.43578573e-15, 2.33343221e-15, 2.23532548e-15, 2.14129164e-15, 2.05116383e-15, 1.9647819e-15, 1.88199222e-15, 1.80264734e-15, 1.72660579e-15, 1.65373185e-15, 1.58389527e-15, 1.5169711e-15, 1.45283946e-15, 1.39138533e-15, 1.33249838e-15, 1.27607275e-15, 1.22200689e-15, 1.17020338e-15, 1.12056879e-15, 1.07301345e-15, 1.0274514e-15, 9.83800156e-16, 9.41980605e-16, 9.01916872e-16, 8.6353618e-16, 8.26768727e-16, 7.91547571e-16, 7.57808508e-16, 7.25489966e-16, 6.94532896e-16, 6.64880672e-16, 6.36478991e-16, 6.09275781e-16, 5.8322111e-16, 5.58267097e-16, 5.34367834e-16, 5.11479299e-16, 4.89559286e-16, 4.68567328e-16, 4.48464624e-16, 4.29213979e-16, 4.10779728e-16, 3.93127683e-16, 3.76225069e-16, 3.60040464e-16, 3.44543748e-16, 3.29706049e-16, 3.15499689e-16, 3.01898138e-16, 2.88875968e-16, 2.76408805e-16, 2.64473287e-16, 2.53047023e-16, 2.42108554e-16, 2.3163731e-16, 2.21613583e-16, 2.1201848e-16, 2.02833899e-16, 1.94042491e-16, 1.85627633e-16, 1.77573393e-16, 1.69864506e-16, 1.62486344e-16, 1.55424893e-16, 1.48666723e-16, 1.42198968e-16, 1.36009298e-16, 1.30085903e-16, 1.24417468e-16, 1.1899315e-16, 1.13802563e-16, 1.0883576e-16, 1.04083206e-16, 9.95357737e-17, 9.51847148e-17, 9.10216518e-17, 8.70385596e-17, 8.32277515e-17, 7.95818648e-17, 7.60938478e-17, 7.27569462e-17, 6.95646916e-17, 6.65108885e-17, 6.35896038e-17, 6.07951554e-17, 5.81221018e-17, 5.55652322e-17, 5.31195566e-17, 5.07802967e-17, 4.85428769e-17, 4.64029161e-17, 4.43562192e-17, 4.23987697e-17, 4.05267216e-17, 3.87363929e-17, 3.70242582e-17, 3.53869426e-17, 3.38212149e-17, 3.23239816e-17, 3.08922816e-17, 2.95232799e-17, 2.82142631e-17, 2.69626332e-17, 2.5765904e-17, 2.46216952e-17, 2.35277287e-17, 2.24818241e-17, 2.14818942e-17, 2.05259415e-17, 1.96120544e-17, 1.87384032e-17, 1.79032369e-17, 1.71048797e-17, 1.6341728e-17, 1.56122472e-17, 1.49149687e-17, 1.42484875e-17, 1.36114588e-17, 1.30025959e-17, 1.24206679e-17, 1.18644968e-17, 1.13329555e-17, 1.08249658e-17, 1.03394961e-17, 9.87555929e-18, 9.43221124e-18, 9.0085486e-18, 8.60370721e-18, 8.21686041e-18, 7.84721742e-18, 7.4940218e-18, 7.15654997e-18, 6.83410984e-18, 6.5260394e-18, 6.23170547e-18, 5.95050243e-18, 5.68185106e-18, 5.42519739e-18, 5.18001163e-18, 4.94578708e-18, 4.7220392e-18, 4.5083046e-18, 4.30414017e-18, 4.10912216e-18, 3.92284538e-18, 3.74492237e-18, 3.57498267e-18, 3.41267204e-18, 3.25765178e-18, 3.10959807e-18, 2.96820127e-18, 2.8331654e-18, 2.70420744e-18, 2.58105686e-18, 2.46345499e-18, 2.35115458e-18, 2.24391928e-18, 2.14152313e-18, 2.04375015e-18, 1.95039388e-18, 1.861257e-18, 1.77615089e-18, 1.69489525e-18, 1.61731779e-18, 1.5432538e-18, 1.47254591e-18, 1.40504368e-18, 1.34060335e-18, 1.27908755e-18, 1.22036498e-18, 1.16431018e-18, 1.11080327e-18, 1.05972968e-18, 1.01097994e-18, 9.64449469e-19, 9.2003831e-19, 8.77650975e-19, 8.37196229e-19, 7.98586902e-19, 7.61739712e-19, 7.26575096e-19, 6.93017041e-19, 6.60992932e-19, 6.304334e-19, 6.01272177e-19, 5.73445961e-19, 5.46894284e-19, 5.21559388e-19, 4.97386102e-19, 4.74321731e-19, 4.52315942e-19, 4.31320663e-19, 4.11289981e-19, 3.92180047e-19, 3.73948981e-19, 3.56556791e-19, 3.39965281e-19, 3.24137979e-19, 3.09040054e-19, 2.94638244e-19, 2.80900792e-19, 2.6779737e-19, 2.55299021e-19, 2.43378096e-19, 2.32008196e-19, 2.21164115e-19, 2.1082179e-19, 2.00958245e-19, 1.91551546e-19, 1.82580752e-19, 1.74025873e-19, 1.65867825e-19, 1.5808839e-19, 1.50670179e-19, 1.43596591e-19, 1.36851781e-19, 1.30420626e-19, 1.24288688e-19, 1.18442189e-19, 1.12867979e-19, 1.07553506e-19, 1.02486792e-19, 9.76564023e-20, 9.30514284e-20, 8.86614579e-20, 8.44765546e-20, 8.04872367e-20, 7.66844563e-20, 7.30595796e-20, 6.96043682e-20, 6.63109613e-20, 6.31718583e-20, 6.01799029e-20, 5.7328267e-20, 5.46104363e-20, 5.20201955e-20, 4.95516152e-20, 4.71990386e-20, 4.49570691e-20, 4.28205589e-20, 4.07845968e-20, 3.88444984e-20, 3.6995795e-20, 3.52342242e-20, 3.35557202e-20, 3.19564051e-20, 3.04325801e-20, 2.89807174e-20, 2.75974524e-20, 2.62795762e-20, 2.50240284e-20, 2.38278904e-20, 2.26883789e-20, 2.16028397e-20, 2.05687416e-20, 1.95836711e-20, 1.86453265e-20, 1.77515133e-20, 1.6900139e-20, 1.60892083e-20, 1.53168188e-20, 1.45811568e-20, 1.38804929e-20, 1.32131785e-20, 1.25776417e-20, 1.19723841e-20, 1.13959771e-20, 1.0847059e-20, 1.03243314e-20, 9.82655699e-21, 9.35255611e-21, 8.90120438e-21, 8.47143003e-21, 8.06221153e-21, 7.67257522e-21, 7.30159308e-21, 6.94838065e-21, 6.61209499e-21, 6.29193275e-21, 5.98712831e-21, 5.69695206e-21, 5.4207087e-21, 5.15773566e-21, 4.90740157e-21, 4.66910479e-21, 4.44227204e-21, 4.22635707e-21, 4.02083942e-21, 3.82522317e-21, 3.63903584e-21, 3.46182728e-21, 3.29316859e-21, 3.13265119e-21, 2.97988582e-21, 2.83450165e-21, 2.69614541e-21, 2.56448059e-21, 2.43918661e-21, 2.31995813e-21, 2.20650428e-21, 2.09854801e-21, 1.99582543e-21, 1.8980852e-21, 1.80508792e-21, 1.71660561e-21, 1.63242111e-21, 1.55232762e-21, 1.47612819e-21, 1.40363528e-21, 1.33467026e-21, 1.26906305e-21, 1.20665168e-21, 1.14728194e-21, 1.09080696e-21, 1.03708691e-21, 9.85988642e-22, 9.37385393e-22, 8.91156462e-22, 8.47186933e-22, 8.053674e-22, 7.65593704e-22, 7.27766683e-22, 6.91791937e-22, 6.57579601e-22, 6.25044126e-22, 5.94104078e-22, 5.64681942e-22, 5.3670393e-22, 5.10099809e-22, 4.84802731e-22, 4.60749067e-22, 4.37878258e-22, 4.16132666e-22, 3.95457437e-22, 3.75800364e-22, 3.57111763e-22, 3.39344353e-22, 3.22453138e-22, 3.06395301e-22, 2.91130097e-22, 2.76618753e-22, 2.62824378e-22, 2.49711868e-22, 2.37247821e-22, 2.25400458e-22, 2.1413954e-22, 2.03436301e-22, 1.93263369e-22, 1.83594706e-22, 1.74405539e-22, 1.65672302e-22, 1.57372575e-22, 1.49485031e-22, 1.41989384e-22, 1.34866335e-22, 1.28097529e-22, 1.21665503e-22, 1.15553652e-22, 1.09746179e-22, 1.0422806e-22, 9.89850053e-23, 9.40034259e-23, 8.92703968e-23, 8.47736265e-23, 8.05014258e-23, 7.64426785e-23, 7.25868138e-23, 6.89237794e-23, 6.54440169e-23, 6.21384371e-23, 5.89983978e-23, 5.60156814e-23, 5.31824748e-23, 5.04913493e-23, 4.7935242e-23, 4.5507438e-23, 4.32015533e-23, 4.10115188e-23, 3.89315646e-23, 3.69562058e-23, 3.50802283e-23, 3.32986756e-23, 3.1606836e-23, 3.00002312e-23, 2.84746041e-23, 2.70259086e-23, 2.56502987e-23, 2.43441192e-23, 2.31038959e-23, 2.19263271e-23, 2.08082747e-23, 1.97467566e-23, 1.87389387e-23, 1.77821275e-23, 1.68737639e-23, 1.60114156e-23, 1.51927716e-23, 1.44156359e-23, 1.36779218e-23, 1.29776466e-23, 1.23129265e-23, 1.16819716e-23, 1.10830814e-23, 1.05146402e-23, 9.97511298e-24, 9.46304159e-24, 8.97704064e-24, 8.51579407e-24, 8.07805167e-24, 7.66262583e-24, 7.26838845e-24, 6.89426792e-24, 6.53924638e-24, 6.20235703e-24, 5.88268158e-24, 5.57934783e-24, 5.29152742e-24, 5.0184336e-24, 4.75931918e-24, 4.51347455e-24, 4.28022582e-24, 4.05893303e-24, 3.84898843e-24, 3.64981494e-24, 3.46086454e-24, 3.28161687e-24, 3.11157783e-24, 2.95027826e-24, 2.79727272e-24, 2.65213824e-24, 2.51447328e-24, 2.38389658e-24, 2.26004619e-24, 2.14257847e-24, 2.03116722e-24, 1.92550274e-24, 1.82529103e-24, 1.73025303e-24, 1.64012382e-24, 1.55465195e-24, 1.47359871e-24, 1.39673755e-24, 1.32385343e-24, 1.25474224e-24, 1.18921028e-24, 1.12707368e-24, 1.06815796e-24, 1.01229753e-24, 9.59335226e-25, 9.09121913e-25, 8.61516065e-25, 8.1638338e-25, 7.73596417e-25, 7.33034246e-25, 6.94582121e-25, 6.58131164e-25, 6.23578069e-25, 5.90824818e-25, 5.59778414e-25, 5.30350626e-25, 5.02457746e-25, 4.76020357e-25, 4.50963121e-25, 4.27214564e-25, 4.04706885e-25, 3.83375767e-25, 3.63160198e-25, 3.44002304e-25, 3.2584719e-25, 3.08642786e-25, 2.92339703e-25, 2.76891099e-25, 2.62252544e-25, 2.48381901e-25, 2.35239207e-25, 2.2278656e-25, 2.10988017e-25, 1.99809491e-25, 1.89218659e-25, 1.79184868e-25, 1.69679049e-25, 1.60673641e-25, 1.52142508e-25, 1.44060869e-25, 1.36405227e-25, 1.29153303e-25, 1.22283974e-25, 1.15777213e-25, 1.09614035e-25, 1.03776438e-25, 9.82473576e-26, 9.30106159e-26, 8.80508767e-26, 8.33536021e-26, 7.89050108e-26, 7.46920394e-26, 7.07023055e-26, 6.69240719e-26, 6.33462138e-26, 5.99581868e-26, 5.6749997e-26, 5.37121725e-26, 5.08357364e-26, 4.81121808e-26, 4.5533443e-26, 4.3091882e-26, 4.0780257e-26, 3.85917061e-26, 3.65197271e-26, 3.45581585e-26, 3.2701162e-26, 3.09432056e-26, 2.92790476e-26, 2.77037214e-26, 2.62125217e-26, 2.48009901e-26, 2.34649029e-26, 2.22002583e-26, 2.10032653e-26, 1.98703325e-26, 1.87980575e-26, 1.77832175e-26, 1.68227593e-26, 1.5913791e-26, 1.50535729e-26, 1.42395105e-26, 1.34691457e-26, 1.27401509e-26, 1.2050321e-26, 1.13975678e-26, 1.07799136e-26, 1.01954853e-26, 9.64250892e-27, 9.11930461e-27, 8.62428147e-27, 8.15593297e-27, 7.7128325e-27, 7.29362915e-27, 6.89704377e-27, 6.52186512e-27, 6.16694634e-27, 5.83120156e-27, 5.51360264e-27, 5.21317616e-27, 4.92900052e-27, 4.66020321e-27, 4.40595819e-27, 4.16548347e-27, 3.93803876e-27, 3.72292326e-27, 3.51947358e-27, 3.32706175e-27, 3.14509336e-27, 2.97300575e-27, 2.81026635e-27, 2.65637109e-27, 2.51084286e-27, 2.37323011e-27, 2.24310547e-27, 2.12006446e-27, 2.00372431e-27, 1.89372274e-27, 1.78971694e-27, 1.6913825e-27, 1.59841242e-27, 1.51051619e-27, 1.42741893e-27, 1.34886053e-27, 1.27459488e-27, 1.20438912e-27, 1.13802291e-27, 1.07528779e-27, 1.01598653e-27, 9.5993255e-28, 9.06949307e-28, 8.56869801e-28, 8.09536043e-28, 7.64798577e-28, 7.22516021e-28, 6.82554636e-28, 6.44787915e-28, 6.09096195e-28, 5.75366289e-28, 5.4349114e-28, 5.13369489e-28, 4.84905565e-28, 4.58008789e-28, 4.32593496e-28, 4.08578668e-28, 3.85887687e-28, 3.64448094e-28, 3.44191368e-28, 3.25052714e-28, 3.06970858e-28, 2.89887861e-28, 2.73748937e-28, 2.58502283e-28, 2.44098918e-28, 2.3049253e-28, 2.17639333e-28, 2.05497929e-28, 1.94029177e-28, 1.83196075e-28, 1.72963641e-28, 1.63298803e-28, 1.541703e-28, 1.45548576e-28, 1.37405696e-28, 1.29715252e-28, 1.22452282e-28, 1.1559319e-28, 1.09115676e-28, 1.02998661e-28, 9.72222217e-29, 9.17675282e-29, 8.66167846e-29, 8.17531721e-29, 7.7160796e-29, 7.2824635e-29, 6.87304941e-29, 6.48649588e-29, 6.12153531e-29, 5.77696987e-29, 5.45166773e-29, 5.14455939e-29, 4.85463435e-29, 4.58093781e-29, 4.32256764e-29, 4.07867155e-29, 3.84844425e-29, 3.631125e-29, 3.42599504e-29, 3.2323754e-29, 3.04962465e-29, 2.87713683e-29, 2.71433957e-29, 2.56069215e-29, 2.41568385e-29, 2.27883223e-29, 2.14968162e-29, 2.02780163e-29, 1.91278573e-29, 1.80424999e-29, 1.7018318e-29, 1.60518868e-29, 1.51399721e-29, 1.42795196e-29, 1.34676447e-29, 1.27016235e-29, 1.19788839e-29, 1.12969969e-29, 1.06536689e-29, 1.00467343e-29, 9.47414812e-30, 8.93397962e-30, 8.42440579e-30, 7.94370545e-30, 7.49025357e-30, 7.06251595e-30, 6.65904419e-30, 6.27847091e-30, 5.91950524e-30, 5.5809286e-30, 5.26159066e-30, 4.96040553e-30, 4.67634821e-30, 4.40845118e-30, 4.15580119e-30, 3.91753627e-30, 3.69284281e-30, 3.48095295e-30, 3.28114194e-30, 3.09272581e-30, 2.91505902e-30, 2.74753239e-30, 2.58957102e-30, 2.44063235e-30, 2.30020444e-30, 2.16780416e-30, 2.04297564e-30, 1.92528872e-30, 1.81433751e-30, 1.70973904e-30, 1.61113196e-30, 1.51817533e-30, 1.43054751e-30, 1.347945e-30, 1.27008152e-30, 1.19668696e-30, 1.1275065e-30, 1.06229976e-30, 1.00083999e-30, 9.42913283e-31, 8.88317855e-31, 8.36863382e-31, 7.88370336e-31, 7.42669383e-31, 6.99600807e-31, 6.59013967e-31, 6.20766786e-31, 5.84725268e-31, 5.50763039e-31, 5.18760917e-31, 4.88606508e-31, 4.60193819e-31, 4.33422898e-31, 4.08199491e-31, 3.84434719e-31, 3.62044774e-31, 3.40950632e-31, 3.21077781e-31, 3.02355966e-31, 2.84718947e-31, 2.68104271e-31, 2.52453057e-31, 2.37709791e-31, 2.23822141e-31, 2.10740767e-31, 1.98419159e-31, 1.86813471e-31, 1.75882371e-31, 1.65586899e-31, 1.55890327e-31, 1.4675804e-31, 1.38157407e-31, 1.30057674e-31, 1.22429854e-31, 1.15246625e-31, 1.08482238e-31, 1.02112426e-31, 9.6114319e-32, 9.04663625e-32, 8.5148245e-32, 8.01408255e-32, 7.54260665e-32, 7.09869711e-32, 6.68075231e-32, 6.28726308e-32, 5.91680741e-32, 5.56804546e-32, 5.23971481e-32, 4.93062604e-32, 4.63965853e-32, 4.36575651e-32, 4.10792533e-32, 3.86522793e-32, 3.63678156e-32, 3.42175462e-32, 3.21936373e-32, 3.02887095e-32, 2.84958117e-32, 2.68083962e-32, 2.52202956e-32, 2.37257009e-32, 2.23191406e-32, 2.09954615e-32, 1.974981e-32, 1.85776149e-32, 1.74745713e-32, 1.64366248e-32, 1.54599575e-32, 1.45409736e-32, 1.36762873e-32, 1.28627103e-32, 1.209724e-32, 1.13770495e-32, 1.06994766e-32, 1.00620151e-32, 9.46230475e-33, 8.8981237e-33, 8.36737988e-33, 7.86810367e-33, 7.39844076e-33, 6.95664542e-33, 6.54107419e-33, 6.15017993e-33, 5.78250622e-33, 5.43668206e-33, 5.11141689e-33, 4.8054959e-33, 4.51777563e-33, 4.2471798e-33, 3.99269536e-33, 3.75336884e-33, 3.52830283e-33, 3.31665275e-33, 3.11762369e-33, 2.9304676e-33, 2.75448046e-33, 2.58899975e-33, 2.433402e-33, 2.28710053e-33, 2.14954326e-33, 2.02021069e-33, 1.89861401e-33, 1.78429328e-33, 1.67681573e-33, 1.57577417e-33, 1.48078552e-33, 1.39148933e-33, 1.3075465e-33, 1.22863801e-33, 1.15446373e-33, 1.08474131e-33, 1.01920515e-33, 9.57605387e-34, 8.99706985e-34, 8.4528886e-34, 7.94143051e-34, 7.46073951e-34, 7.00897571e-34, 6.58440863e-34, 6.18541064e-34, 5.81045097e-34, 5.45808992e-34, 5.12697351e-34, 4.8158284e-34, 4.52345709e-34, 4.24873348e-34, 3.99059859e-34, 3.74805662e-34, 3.52017118e-34, 3.30606179e-34, 3.10490053e-34, 2.91590895e-34, 2.73835512e-34, 2.57155087e-34, 2.4148492e-34, 2.26764179e-34, 2.12935677e-34, 1.99945648e-34, 1.87743548e-34, 1.76281862e-34, 1.65515923e-34, 1.55403743e-34, 1.45905852e-34, 1.3698515e-34, 1.28606765e-34, 1.20737917e-34, 1.13347798e-34, 1.06407451e-34, 9.98896599e-35, 9.37688464e-35, 8.80209709e-35, 8.26234413e-35, 7.7555026e-35, 7.27957726e-35, 6.83269311e-35, 6.41308821e-35, 6.01910689e-35, 5.64919338e-35, 5.30188583e-35, 4.97581064e-35, 4.66967721e-35, 4.38227293e-35, 4.11245848e-35, 3.85916347e-35, 3.62138224e-35, 3.39817002e-35, 3.18863922e-35, 2.99195604e-35, 2.80733718e-35, 2.63404682e-35, 2.47139376e-35, 2.31872875e-35, 2.17544192e-35, 2.04096042e-35, 1.9147462e-35, 1.7962939e-35, 1.68512886e-35, 1.58080531e-35, 1.48290455e-35, 1.39103339e-35, 1.30482255e-35, 1.22392527e-35, 1.14801587e-35, 1.07678854e-35, 1.00995612e-35, 9.47248949e-36, 8.88413812e-36, 8.33212961e-36, 7.81423156e-36, 7.32834796e-36, 6.87251081e-36, 6.44487245e-36, 6.04369817e-36, 5.66735938e-36, 5.31432712e-36, 4.98316606e-36, 4.67252874e-36, 4.38115026e-36, 4.10784323e-36, 3.85149305e-36, 3.61105349e-36, 3.3855425e-36, 3.17403832e-36, 2.97567575e-36, 2.78964276e-36, 2.61517721e-36, 2.4515638e-36, 2.29813122e-36, 2.15424946e-36, 2.01932726e-36, 1.89280977e-36, 1.77417631e-36, 1.66293827e-36, 1.55863716e-36, 1.46084276e-36, 1.36915137e-36, 1.28318419e-36, 1.20258584e-36, 1.12702284e-36, 1.05618232e-36, 9.8977075e-37, 9.27512742e-37, 8.69149932e-37, 8.14439939e-37, 7.63155382e-37, 7.15082957e-37, 6.70022565e-37, 6.27786508e-37, 5.88198718e-37, 5.51094042e-37, 5.16317571e-37, 4.83724006e-37, 4.53177067e-37, 4.24548933e-37, 3.97719725e-37, 3.72577011e-37, 3.49015348e-37, 3.26935849e-37, 3.06245777e-37, 2.86858169e-37, 2.68691471e-37, 2.51669211e-37, 2.3571968e-37, 2.20775636e-37, 2.0677403e-37, 1.93655747e-37, 1.81365356e-37, 1.69850889e-37, 1.59063621e-37, 1.48957869e-37, 1.39490806e-37, 1.30622282e-37, 1.22314656e-37, 1.14532641e-37, 1.07243159e-37, 1.00415203e-37, 9.4019707e-38, 8.80294245e-38, 8.24188176e-38, 7.71639489e-38, 7.22423821e-38, 6.76330883e-38, 6.33163583e-38, 5.92737202e-38, 5.5487862e-38, 5.19425595e-38, 4.86226078e-38, 4.55137583e-38, 4.26026582e-38, 3.9876795e-38, 3.73244435e-38, 3.4934617e-38, 3.26970204e-38, 3.06020077e-38, 2.86405406e-38, 2.68041506e-38, 2.50849037e-38, 2.34753661e-38, 2.19685736e-38, 2.05580015e-38, 1.92375374e-38, 1.80014549e-38, 1.684439e-38, 1.57613175e-38, 1.47475303e-38, 1.37986191e-38, 1.29104536e-38, 1.20791654e-38, 1.13011309e-38, 1.05729561e-38, 9.89146235e-39, 9.25367251e-39, 8.65679828e-39, 8.09822837e-39, 7.57551725e-39, 7.08637469e-39, 6.62865601e-39, 6.20035281e-39, 5.79958438e-39, 5.42458965e-39, 5.07371957e-39, 4.74543007e-39, 4.43827539e-39, 4.15090185e-39, 3.88204202e-39, 3.63050927e-39, 3.39519262e-39, 3.17505195e-39, 2.96911352e-39, 2.77646575e-39, 2.59625525e-39, 2.42768316e-39, 2.27000165e-39, 2.12251072e-39, 1.98455509e-39, 1.85552145e-39, 1.73483568e-39, 1.62196047e-39, 1.51639288e-39, 1.41766219e-39, 1.32532785e-39, 1.23897758e-39, 1.15822549e-39, 1.08271048e-39, 1.01209461e-39, 9.46061644e-40, 8.84315646e-40, 8.26579697e-40, 7.72594672e-40, 7.22118107e-40, 6.7492313e-40, 6.30797465e-40, 5.89542499e-40, 5.50972404e-40, 5.14913322e-40, 4.81202594e-40, 4.49688045e-40, 4.20227313e-40, 3.92687214e-40, 3.6694316e-40, 3.42878603e-40, 3.20384519e-40, 2.99358926e-40, 2.79706432e-40, 2.61337809e-40, 2.44169599e-40, 2.28123741e-40, 2.13127225e-40, 1.99111768e-40, 1.86013506e-40, 1.73772713e-40, 1.6233353e-40, 1.51643723e-40, 1.41654441e-40, 1.32320003e-40, 1.23597692e-40, 1.15447564e-40, 1.07832267e-40, 1.00716877e-40, 9.40687384e-41, 8.78573174e-41, 8.20540666e-41, 7.66322951e-41, 7.15670487e-41, 6.68349974e-41, 6.24143303e-41, 5.82846572e-41, 5.44269164e-41, 5.08232889e-41, 4.74571173e-41, 4.43128308e-41, 4.13758747e-41, 3.86326441e-41, 3.60704227e-41, 3.36773245e-41, 3.14422404e-41, 2.93547874e-41, 2.74052613e-41, 2.55845927e-41, 2.38843057e-41, 2.2296479e-41, 2.08137103e-41, 1.94290818e-41, 1.81361292e-41, 1.69288118e-41, 1.58014851e-41, 1.47488748e-41, 1.37660526e-41, 1.28484138e-41, 1.19916558e-41, 1.1191759e-41, 1.04449676e-41, 9.74777279e-42, 9.09689646e-42, 8.4892761e-42, 7.92205073e-42, 7.39254765e-42, 6.89827017e-42, 6.43688602e-42, 6.00621664e-42, 5.60422702e-42, 5.22901635e-42, 4.87880919e-42, 4.55194725e-42, 4.24688168e-42, 3.9621659e-42, 3.69644887e-42, 3.44846883e-42, 3.2170474e-42, 3.00108412e-42, 2.79955131e-42, 2.61148929e-42, 2.43600188e-42, 2.27225225e-42, 2.11945901e-42, 1.9768925e-42, 1.84387145e-42, 1.71975974e-42, 1.60396347e-42, 1.4959281e-42, 1.39513593e-42, 1.3011036e-42, 1.21337988e-42, 1.1315435e-42, 1.05520119e-42, 9.83985832e-43, 9.17554717e-43, 8.55587939e-43, 7.9778688e-43, 7.43872802e-43, 6.93585532e-43, 6.46682226e-43, 6.02936226e-43, 5.62135984e-43, 5.24084058e-43, 4.8859618e-43, 4.55500375e-43, 4.24636152e-43, 3.95853735e-43, 3.69013355e-43, 3.4398458e-43, 3.206457e-43, 2.98883143e-43, 2.78590932e-43, 2.59670185e-43, 2.42028636e-43, 2.25580198e-43, 2.10244551e-43, 1.95946756e-43, 1.82616899e-43, 1.70189752e-43, 1.58604462e-43, 1.4780426e-43, 1.37736188e-43, 1.28350841e-43, 1.19602136e-43, 1.11447084e-43, 1.03845585e-43, 9.67602358e-44, 9.01561498e-44, 8.4000786e-44, 7.82637943e-44, 7.29168676e-44, 6.79336053e-44, 6.32893856e-44, 5.89612458e-44, 5.49277713e-44, 5.11689919e-44, 4.76662843e-44, 4.44022822e-44, 4.13607917e-44, 3.85267122e-44, 3.58859634e-44, 3.34254165e-44, 3.113283e-44, 2.89967905e-44, 2.70066562e-44, 2.51525057e-44, 2.34250892e-44, 2.18157831e-44, 2.03165479e-44, 1.89198889e-44, 1.76188194e-44, 1.64068264e-44, 1.52778386e-44, 1.42261966e-44, 1.32466254e-44, 1.23342077e-44, 1.14843605e-44, 1.0692812e-44, 9.95558086e-45, 9.26895626e-45, 8.62947983e-45, 8.03392846e-45, 7.47929836e-45, 6.96279026e-45, 6.4817955e-45, 6.03388311e-45, 5.61678781e-45, 5.22839872e-45, 4.86674888e-45, 4.53000554e-45, 4.21646097e-45, 3.92452404e-45, 3.65271223e-45, 3.39964431e-45, 3.16403341e-45, 2.94468062e-45, 2.74046898e-45, 2.55035796e-45, 2.3733782e-45, 2.20862668e-45, 2.0552622e-45, 1.91250119e-45, 1.77961374e-45, 1.65591997e-45, 1.54078661e-45, 1.4336238e-45, 1.33388217e-45, 1.24105003e-45, 1.15465083e-45, 1.07424071e-45, 9.99406346e-46, 9.29762776e-46, 8.64951517e-46, 8.04638729e-46, 7.48513534e-46, 6.96286443e-46, 6.47687894e-46, 6.02466881e-46, 5.60389685e-46, 5.21238692e-46, 4.84811281e-46, 4.50918803e-46, 4.19385617e-46, 3.90048199e-46, 3.62754308e-46, 3.37362215e-46, 3.13739975e-46, 2.91764759e-46, 2.71322224e-46, 2.52305931e-46, 2.34616802e-46, 2.18162609e-46, 2.02857507e-46, 1.88621593e-46, 1.75380495e-46, 1.63064992e-46, 1.51610658e-46, 1.40957533e-46, 1.31049813e-46, 1.21835564e-46, 1.13266456e-46, 1.0529751e-46, 9.78868724e-47, 9.09955931e-47, 8.45874293e-47, 7.86286558e-47, 7.30878917e-47, 6.7935938e-47, 6.31456266e-47, 5.86916793e-47, 5.45505776e-47, 5.07004402e-47, 4.71209096e-47, 4.37930466e-47, 4.06992318e-47, 3.78230741e-47, 3.51493254e-47, 3.26638012e-47, 3.03533068e-47, 2.82055686e-47, 2.62091698e-47, 2.43534913e-47, 2.26286557e-47, 2.10254761e-47, 1.95354077e-47, 1.81505037e-47, 1.68633728e-47, 1.56671414e-47, 1.45554166e-47, 1.35222537e-47, 1.2562124e-47, 1.16698865e-47, 1.08407605e-47, 1.00703004e-47, 9.35437249e-48, 8.68913317e-48, 8.07100855e-48, 7.49667563e-48, 6.96304485e-48, 6.46724368e-48, 6.00660145e-48, 5.57863527e-48, 5.18103682e-48, 4.81166019e-48, 4.46851047e-48, 4.14973314e-48, 3.85360431e-48, 3.57852148e-48, 3.32299507e-48, 3.0856405e-48, 2.86517079e-48, 2.66038974e-48, 2.47018553e-48, 2.2935248e-48, 2.12944717e-48, 1.97706004e-48, 1.83553389e-48, 1.7040978e-48, 1.58203535e-48, 1.46868078e-48, 1.36341542e-48, 1.26566436e-48, 1.17489339e-48, 1.09060612e-48, 1.01234131e-48, 9.39670405e-49, 8.72195214e-49, 8.09545773e-49, 7.51378356e-49, 6.97373615e-49, 6.47234865e-49, 6.00686478e-49, 5.57472397e-49, 5.17354751e-49, 4.80112569e-49, 4.45540584e-49, 4.13448123e-49, 3.83658072e-49, 3.56005917e-49, 3.3033885e-49, 3.06514942e-49, 2.84402368e-49, 2.63878695e-49, 2.44830211e-49, 2.27151311e-49, 2.10743918e-49, 1.95516949e-49, 1.81385821e-49, 1.68271985e-49, 1.56102502e-49, 1.44809639e-49, 1.34330502e-49, 1.24606692e-49, 1.15583983e-49, 1.07212026e-49, 9.94440758e-50, 9.2236728e-50, 8.55496864e-50, 7.93455394e-50, 7.35895544e-50, 6.82494868e-50, 6.32954029e-50, 5.86995144e-50, 5.44360257e-50, 5.04809911e-50, 4.68121833e-50, 4.34089701e-50, 4.02522007e-50, 3.73240994e-50, 3.46081678e-50, 3.20890928e-50, 2.97526622e-50, 2.75856859e-50, 2.55759222e-50, 2.37120106e-50, 2.1983408e-50, 2.03803304e-50, 1.88936986e-50, 1.75150874e-50, 1.62366786e-50, 1.50512179e-50, 1.39519738e-50, 1.29327006e-50, 1.19876032e-50, 1.11113046e-50, 1.02988163e-50, 9.54550987e-51, 8.84709137e-51, 8.19957715e-51, 7.59927152e-51, 7.04274606e-51, 6.52682036e-51, 6.0485441e-51, 5.60518054e-51, 5.19419107e-51, 4.81322097e-51, 4.46008608e-51, 4.13276055e-51, 3.8293654e-51, 3.54815788e-51, 3.28752168e-51, 3.04595777e-51, 2.82207592e-51, 2.61458683e-51, 2.42229487e-51, 2.24409124e-51, 2.07894776e-51, 1.92591095e-51, 1.78409671e-51, 1.65268522e-51, 1.53091634e-51, 1.41808524e-51, 1.31353841e-51, 1.21666994e-51, 1.12691807e-51, 1.04376198e-51, 9.66718796e-52, 8.95340884e-52, 8.29213249e-52, 7.6795118e-52, 7.11198045e-52, 6.58623252e-52, 6.09920354e-52, 5.64805292e-52, 5.23014767e-52, 4.84304727e-52, 4.48448967e-52, 4.15237828e-52, 3.84476993e-52, 3.55986366e-52, 3.2959904e-52, 3.05160328e-52, 2.82526879e-52, 2.61565845e-52, 2.42154117e-52, 2.24177616e-52, 2.07530627e-52, 1.92115193e-52, 1.77840549e-52, 1.6462259e-52, 1.52383392e-52, 1.41050751e-52, 1.30557774e-52, 1.2084248e-52, 1.11847451e-52, 1.03519487e-52, 9.58093066e-53, 8.86712531e-53, 8.2063032e-53, 7.59454631e-53, 7.0282253e-53, 6.50397822e-53, 6.01869098e-53, 5.56947907e-53, 5.15367077e-53, 4.76879144e-53, 4.41254911e-53, 4.08282098e-53, 3.77764104e-53, 3.49518849e-53, 3.23377708e-53, 2.99184521e-53, 2.76794672e-53, 2.56074242e-53, 2.36899219e-53, 2.19154769e-53, 2.02734559e-53, 1.8754013e-53, 1.73480315e-53, 1.60470703e-53, 1.4843314e-53, 1.37295264e-53, 1.26990082e-53, 1.17455569e-53, 1.08634304e-53, 1.00473129e-53, 9.29228302e-54, 8.59378524e-54, 7.94760232e-54, 7.34983051e-54, 6.79685625e-54, 6.2853347e-54, 5.81216987e-54, 5.37449611e-54, 4.96966107e-54, 4.5952099e-54, 4.24887056e-54, 3.9285403e-54, 3.63227306e-54, 3.35826784e-54, 3.10485795e-54, 2.87050102e-54, 2.65376976e-54, 2.45334339e-54, 2.26799976e-54, 2.09660798e-54, 1.93812163e-54, 1.7915725e-54, 1.65606474e-54, 1.53076949e-54, 1.41491989e-54, 1.30780643e-54, 1.20877273e-54, 1.11721151e-54, 1.03256099e-54, 9.54301467e-55, 8.81952172e-55, 8.15068374e-55, 7.53238683e-55, 6.96082561e-55, 6.43248018e-55, 5.94409477e-55, 5.492658e-55, 5.07538459e-55, 4.68969848e-55, 4.33321712e-55, 4.00373703e-55, 3.69922037e-55, 3.41778256e-55, 3.15768075e-55, 2.91730324e-55, 2.69515965e-55, 2.48987177e-55, 2.30016523e-55, 2.12486161e-55, 1.96287134e-55, 1.81318694e-55, 1.67487691e-55, 1.54708001e-55, 1.42899997e-55, 1.31990061e-55, 1.21910133e-55, 1.12597292e-55, 1.03993371e-55, 9.60445946e-56, 8.87012554e-56, 8.19174021e-56, 7.56505589e-56, 6.98614631e-56, 6.4513823e-56, 5.95740939e-56, 5.5011271e-56, 5.07966975e-56, 4.69038879e-56, 4.33083636e-56, 3.99875017e-56, 3.69203946e-56, 3.40877207e-56, 3.14716243e-56, 2.90556047e-56, 2.68244141e-56, 2.47639625e-56, 2.28612302e-56, 2.11041868e-56, 1.94817163e-56, 1.79835477e-56, 1.66001914e-56, 1.53228795e-56, 1.41435113e-56, 1.30546028e-56, 1.20492399e-56, 1.1121035e-56, 1.02640871e-56, 9.47294501e-57, 8.74257306e-57, 8.06831956e-57, 7.44588763e-57, 6.87130824e-57, 6.34091528e-57, 5.85132252e-57, 5.39940233e-57, 4.98226598e-57, 4.59724548e-57, 4.24187676e-57, 3.91388414e-57, 3.61116599e-57, 3.33178143e-57, 3.07393813e-57, 2.83598094e-57, 2.61638144e-57, 2.41372828e-57, 2.22671823e-57, 2.05414794e-57, 1.89490629e-57, 1.74796738e-57, 1.61238399e-57, 1.48728157e-57, 1.3718527e-57, 1.26535194e-57, 1.1670911e-57, 1.07643484e-57, 9.92796642e-58, 9.15635076e-58, 8.4445033e-58, 7.78781032e-58, 7.18201302e-58, 6.6231803e-58, 6.10768365e-58, 5.63217394e-58, 5.19355996e-58, 4.78898866e-58, 4.41582683e-58, 4.07164426e-58, 3.75419811e-58, 3.46141853e-58, 3.19139536e-58, 2.94236584e-58, 2.71270333e-58, 2.50090674e-58, 2.30559096e-58, 2.12547789e-58, 1.95938821e-58, 1.80623377e-58, 1.66501055e-58, 1.53479223e-58, 1.41472413e-58, 1.30401773e-58, 1.20194557e-58, 1.10783651e-58, 1.0210714e-58, 9.41079076e-59, 8.67332642e-59, 7.9934605e-59, 7.36670948e-59, 6.78893765e-59, 6.25633024e-59, 5.76536859e-59, 5.31280723e-59, 4.89565276e-59, 4.51114434e-59, 4.15673565e-59, 3.83007835e-59, 3.52900666e-59, 3.25152326e-59, 2.99578624e-59, 2.760097e-59, 2.54288919e-59, 2.34271844e-59, 2.15825285e-59, 1.98826432e-59, 1.83162044e-59, 1.6872771e-59, 1.5542716e-59, 1.43171634e-59, 1.31879295e-59, 1.21474696e-59, 1.11888279e-59, 1.03055917e-59, 9.49184945e-60, 8.74215129e-60, 8.05147341e-60, 7.41518476e-60, 6.82901644e-60, 6.2890335e-60, 5.79160889e-60, 5.33339947e-60, 4.9113238e-60, 4.52254182e-60, 4.16443592e-60, 3.83459361e-60, 3.5307915e-60, 3.25098054e-60, 2.99327236e-60, 2.75592675e-60, 2.53734004e-60, 2.33603446e-60, 2.15064825e-60, 1.97992661e-60, 1.82271333e-60, 1.67794305e-60, 1.54463415e-60, 1.42188219e-60, 1.30885389e-60, 1.20478149e-60, 1.10895769e-60, 1.02073084e-60, 9.39500603e-61, 8.64713938e-61, 7.95861368e-61, 7.32473568e-61, 6.74118212e-61, 6.20397061e-61, 5.70943289e-61, 5.2541901e-61, 4.83513005e-61, 4.44938624e-61, 4.0943185e-61, 3.76749521e-61, 3.46667688e-61, 3.18980098e-61, 2.93496806e-61, 2.70042886e-61, 2.48457249e-61, 2.2859155e-61, 2.10309186e-61, 1.93484366e-61, 1.78001264e-61, 1.63753226e-61, 1.50642048e-61, 1.3857731e-61, 1.2747576e-61, 1.17260749e-61, 1.07861707e-61, 9.92136621e-62, 9.12568013e-62, 8.39360589e-62, 7.7200742e-62, 7.10041846e-62, 6.53034287e-62, 6.00589304e-62, 5.52342896e-62, 5.07960007e-62, 4.67132236e-62, 4.29575719e-62, 3.95029185e-62, 3.63252163e-62, 3.34023333e-62, 3.07139003e-62, 2.82411714e-62, 2.59668944e-62, 2.38751927e-62, 2.1951456e-62, 2.0182239e-62, 1.85551696e-62, 1.7058863e-62, 1.56828434e-62, 1.44174714e-62, 1.32538778e-62, 1.2183902e-62, 1.12000355e-62, 1.02953703e-62, 9.46355072e-63, 8.69872952e-63, 7.99552728e-63, 7.34899517e-63, 6.75458054e-63, 6.20809533e-63, 5.70568695e-63, 5.24381151e-63, 4.81920916e-63, 4.42888138e-63, 4.07007012e-63, 3.74023857e-63, 3.43705346e-63, 3.1583688e-63, 2.90221087e-63, 2.66676446e-63, 2.45036016e-63, 2.2514627e-63, 2.06866021e-63, 1.90065432e-63, 1.74625105e-63, 1.6043525e-63, 1.47394909e-63, 1.35411247e-63, 1.24398907e-63, 1.14279403e-63, 1.04980571e-63, 9.6436062e-64, 8.85848748e-64, 8.13709253e-64, 7.47426521e-64, 6.86526528e-64, 6.30573498e-64, 5.79166822e-64, 5.31938233e-64, 4.88549202e-64, 4.48688544e-64, 4.12070215e-64, 3.7843129e-64, 3.47530098e-64, 3.1914451e-64, 2.93070364e-64, 2.69120017e-64, 2.47121009e-64, 2.26914844e-64, 2.08355858e-64, 1.91310187e-64, 1.7565481e-64, 1.61276677e-64, 1.48071904e-64, 1.35945026e-64, 1.24808326e-64, 1.14581199e-64, 1.05189584e-64, 9.65654315e-65, 8.86462164e-65, 8.13744924e-65, 7.46974803e-65, 6.85666898e-65, 6.29375721e-65, 5.77692007e-65, 5.30239775e-65, 4.86673634e-65, 4.46676294e-65, 4.09956297e-65, 3.76245913e-65, 3.45299215e-65, 3.16890312e-65, 2.90811719e-65, 2.66872865e-65, 2.44898713e-65, 2.24728503e-65, 2.06214589e-65, 1.89221371e-65, 1.73624319e-65, 1.59309068e-65, 1.46170593e-65, 1.34112449e-65, 1.2304607e-65, 1.12890131e-65, 1.03569952e-65, 9.50169627e-66, 8.71682014e-66, 7.99658574e-66, 7.33568514e-66, 6.72924497e-66, 6.1727909e-66, 5.66221511e-66, 5.19374634e-66, 4.76392239e-66, 4.36956487e-66, 4.00775604e-66, 3.67581744e-66, 3.37129039e-66, 3.09191797e-66, 2.83562852e-66, 2.60052049e-66, 2.3848485e-66, 2.18701057e-66, 2.00553637e-66, 1.83907641e-66, 1.68639217e-66, 1.54634698e-66, 1.4178977e-66, 1.300087e-66, 1.19203637e-66, 1.09293962e-66, 1.00205695e-66, 9.18709503e-67, 8.42274373e-67, 7.72179979e-67, 7.07901869e-67, 6.48958841e-67, 5.94909384e-67, 5.45348418e-67, 4.99904295e-67, 4.58236048e-67, 4.20030865e-67, 3.85001775e-67, 3.52885514e-67, 3.23440576e-67, 2.9644542e-67, 2.71696823e-67, 2.49008371e-67, 2.28209073e-67, 2.09142088e-67, 1.91663557e-67, 1.75641534e-67, 1.60954999e-67, 1.4749296e-67, 1.35153621e-67, 1.23843624e-67, 1.13477351e-67, 1.03976286e-67, 9.52684245e-68, 8.72877379e-68, 7.99736774e-68, 7.32707213e-68, 6.71279586e-68, 6.14987071e-68, 5.63401636e-68, 5.16130822e-68, 4.72814795e-68, 4.33123645e-68, 3.96754902e-68, 3.63431262e-68, 3.32898498e-68, 3.04923546e-68, 2.79292749e-68, 2.55810244e-68, 2.34296487e-68, 2.14586894e-68, 1.96530602e-68, 1.79989324e-68, 1.64836309e-68, 1.50955378e-68, 1.38240046e-68, 1.26592718e-68, 1.15923944e-68, 1.06151748e-68, 9.72009974e-69, 8.90028403e-69, 8.14941781e-69, 7.46171874e-69, 6.83188801e-69, 6.25507002e-69, 5.72681541e-69, 5.24304721e-69, 4.80002969e-69, 4.39433996e-69, 4.0228418e-69, 3.68266173e-69, 3.37116708e-69, 3.08594583e-69, 2.82478821e-69, 2.58566978e-69, 2.36673591e-69, 2.1662876e-69, 1.98276845e-69, 1.81475274e-69, 1.66093445e-69, 1.52011729e-69, 1.39120548e-69, 1.27319531e-69, 1.16516749e-69, 1.06627999e-69, 9.75761616e-70, 8.92906072e-70, 8.17066483e-70, 7.47650431e-70, 6.8411538e-70, 6.25964486e-70, 5.72742759e-70, 5.24033551e-70, 4.79455333e-70, 4.3865874e-70, 4.01323872e-70, 3.67157813e-70, 3.35892361e-70, 3.07281953e-70, 2.81101754e-70, 2.57145915e-70, 2.35225976e-70, 2.15169396e-70, 1.96818218e-70, 1.80027837e-70, 1.64665875e-70, 1.50611149e-70, 1.37752729e-70, 1.25989072e-70, 1.15227228e-70, 1.05382118e-70, 9.63758696e-71, 8.81372038e-71, 8.06008832e-71, 7.37071988e-71, 6.74015039e-71, 6.16337852e-71, 5.63582719e-71, 5.15330764e-71, 4.71198658e-71, 4.30835612e-71, 3.93920622e-71, 3.60159948e-71, 3.29284801e-71, 3.01049237e-71, 2.75228212e-71, 2.5161582e-71, 2.3002366e-71, 2.10279362e-71, 1.9222522e-71, 1.75716949e-71, 1.60622551e-71, 1.46821263e-71, 1.34202611e-71, 1.22665534e-71, 1.12117579e-71, 1.02474179e-71, 9.36579729e-72, 8.55982008e-72, 7.82301373e-72, 7.14945807e-72, 6.53373819e-72, 5.97090151e-72, 5.45641835e-72, 4.98614597e-72, 4.55629558e-72, 4.16340219e-72, 3.80429702e-72, 3.47608224e-72, 3.17610785e-72, 2.9019506e-72, 2.65139458e-72, 2.42241355e-72, 2.21315476e-72, 2.02192413e-72, 1.8471727e-72, 1.68748422e-72, 1.54156385e-72, 1.40822771e-72, 1.28639348e-72, 1.17507165e-72, 1.07335761e-72, 9.80424395e-73, 8.95516003e-73, 8.17941357e-73, 7.47068731e-73, 6.82320666e-73, 6.23169323e-73, 5.69132231e-73, 5.19768399e-73, 4.74674757e-73, 4.33482906e-73, 3.95856144e-73, 3.61486747e-73, 3.30093478e-73, 3.01419317e-73, 2.75229382e-73, 2.51309024e-73, 2.29462091e-73, 2.09509338e-73, 1.91286974e-73, 1.74645333e-73, 1.59447659e-73, 1.45568995e-73, 1.3289517e-73, 1.21321867e-73, 1.10753777e-73, 1.01103824e-73, 9.22924543e-74, 8.42469879e-74, 7.69010279e-74, 7.01939177e-74, 6.40702464e-74, 5.84793964e-74, 5.33751298e-74, 4.87152103e-74, 4.44610581e-74, 4.05774342e-74, 3.70321515e-74, 3.37958118e-74, 3.08415642e-74, 2.81448854e-74, 2.56833783e-74, 2.34365881e-74, 2.13858345e-74, 1.95140579e-74, 1.78056796e-74, 1.62464731e-74, 1.48234472e-74, 1.35247392e-74, 1.23395171e-74, 1.12578902e-74, 1.02708272e-74, 9.37008251e-75, 8.54812733e-75, 7.79808788e-75, 7.11368849e-75, 6.48919966e-75, 5.9193907e-75, 5.39948638e-75, 4.92512741e-75, 4.49233428e-75, 4.09747428e-75, 3.73723134e-75, 3.40857853e-75, 3.10875289e-75, 2.83523248e-75, 2.58571541e-75, 2.3581007e-75, 2.15047079e-75, 1.96107554e-75, 1.7883177e-75, 1.63073954e-75, 1.48701073e-75, 1.35591724e-75, 1.23635115e-75, 1.12730145e-75, 1.02784557e-75, 9.37141675e-76, 8.54421579e-76, 7.78984365e-76, 7.10190485e-76, 6.47456408e-76, 5.90249725e-76, 5.38084683e-76, 4.90518104e-76, 4.47145669e-76, 4.07598514e-76, 3.71540132e-76, 3.38663542e-76, 3.08688704e-76, 2.81360162e-76, 2.56444889e-76, 2.33730327e-76, 2.13022591e-76, 1.94144832e-76, 1.76935746e-76, 1.61248211e-76, 1.46948042e-76, 1.33912858e-76, 1.22031045e-76, 1.11200812e-76, 1.01329328e-76, 9.23319356e-77, 8.41314349e-77, 7.66574252e-77, 6.98457099e-77, 6.36377506e-77, 5.79801695e-77, 5.2824296e-77, 4.81257522e-77, 4.38440758e-77, 3.9942375e-77, 3.63870147e-77, 3.31473294e-77, 3.01953619e-77, 2.75056245e-77, 2.50548817e-77, 2.28219516e-77, 2.07875247e-77, 1.89339992e-77, 1.72453299e-77, 1.57068912e-77, 1.43053517e-77, 1.30285602e-77, 1.18654409e-77, 1.08058993e-77, 9.84073475e-78, 8.96156199e-78, 8.16073879e-78, 7.4313004e-78, 6.76689963e-78, 6.16175219e-78, 5.61058696e-78, 5.10860054e-78, 4.65141584e-78, 4.2350444e-78, 3.8558519e-78, 3.51052684e-78, 3.19605193e-78, 2.90967802e-78, 2.64890032e-78, 2.41143675e-78, 2.19520818e-78, 1.99832042e-78, 1.81904782e-78, 1.65581831e-78, 1.50719979e-78, 1.37188765e-78, 1.24869347e-78, 1.13653474e-78, 1.03442538e-78, 9.41467199e-79, 8.56842102e-79, 7.79804935e-79, 7.09677011e-79, 6.45840197e-79, 5.87731521e-79, 5.34838266e-79, 4.86693491e-79, 4.42871956e-79, 4.02986409e-79, 3.66684199e-79, 3.33644192e-79, 3.03573963e-79, 2.76207233e-79, 2.51301541e-79, 2.28636116e-79, 2.08009941e-79, 1.89239995e-79, 1.72159638e-79, 1.56617155e-79, 1.4247442e-79, 1.29605682e-79, 1.17896459e-79, 1.07242532e-79, 9.75490255e-80, 8.87295722e-80, 8.0705553e-80, 7.34054025e-80, 6.67639785e-80, 6.07219864e-80, 5.52254558e-80, 5.02252636e-80, 4.56766998e-80, 4.15390719e-80, 3.77753447e-80, 3.43518129e-80, 3.12378017e-80, 2.84053957e-80, 2.58291908e-80, 2.34860692e-80, 2.13549937e-80, 1.94168214e-80, 1.76541334e-80, 1.60510796e-80, 1.45932381e-80, 1.32674869e-80, 1.20618867e-80, 1.09655747e-80, 9.96866796e-81, 9.0621749e-81, 8.23791537e-81, 7.48844752e-81, 6.80700127e-81, 6.18741792e-81, 5.624095e-81, 5.11193617e-81, 0.41999638, 0.83999226, 1.25998715, 1.67998054, 2.09997195, 2.51996087, 2.9399468, 3.35992926, 3.77990773, 4.19988173, 4.61985076, 5.03981431, 5.4597719, 5.87972302, 6.29966718, 6.71960388, 7.13953262, 7.55945291, 7.97936425, 8.39926614, 8.81915808, 9.23903958, 9.65891014, 10.07876926, 10.49861645, 10.91845121, 11.33827304, 11.75808144, 12.17787592, 12.59765599, 13.01742113, 13.43717086, 13.85690469, 14.2766221, 14.69632262, 15.11600573, 15.53567095, 15.95531777, 16.3749457, 16.79455424, 17.2141429, 17.63371118, 18.05325859, 18.47278462, 18.89228878, 19.31177058, 19.73122951, 20.15066508, 20.5700768, 20.98946417, 21.40882669, 21.82816387, 22.24747521, 22.66676022, 23.08601839, 23.50524923, 23.92445226, 24.34362696, 24.76277285, 25.18188943, 25.6009762, 26.02003267, 26.43905835, 26.85805273, 27.27701532, 27.69594564, 28.11484317, 28.53370743, 28.95253792, 29.37133415, 29.79009562, 30.20882184, 30.6275123, 31.04616653, 31.46478402, 31.88336427, 32.3019068, 32.7204111, 33.13887669, 33.55730307, 33.97568975, 34.39403623, 34.81234201, 35.23060661, 35.64882952, 36.06701027, 36.48514834, 36.90324325, 37.32129451, 37.73930162, 38.15726408, 38.57518141, 38.99305311, 39.41087868, 39.82865765, 40.2463895, 40.66407375, 41.08170991, 41.49929748, 41.91683597, 42.33432489, 42.75176375, 43.16915205, 43.5864893, 44.00377501, 44.42100869, 44.83818984, 45.25531798, 45.6723926, 46.08941323, 46.50637937, 46.92329052, 47.3401462, 47.75694592, 48.17368918, 48.59037549, 49.00700436, 49.4235753, 49.84008783, 50.25654145, 50.67293566, 51.08926999, 51.50554393, 51.92175701, 52.33790872, 52.75399858, 53.17002611, 53.5859908, 54.00189218, 54.41772975, 54.83350302, 55.2492115, 55.66485471, 56.08043216, 56.49594335, 56.9113878, 57.32676502, 57.74207453, 58.15731583, 58.57248843, 58.98759186, 59.40262561, 59.81758921, 60.23248216, 60.64730399, 61.06205419, 61.47673229, 61.89133779, 62.30587022, 62.72032908, 63.13471388, 63.54902415, 63.9632594, 64.37741913, 64.79150287, 65.20551012, 65.61944041, 66.03329324, 66.44706813, 66.8607646, 67.27438217, 67.68792034, 68.10137863, 68.51475655, 68.92805364, 69.34126939, 69.75440332, 70.16745496, 70.58042381, 70.9933094, 71.40611124, 71.81882885, 72.23146174, 72.64400943, 73.05647145, 73.46884729, 73.8811365, 74.29333857, 74.70545304, 75.11747941, 75.52941721, 75.94126595, 76.35302516, 76.76469435, 77.17627304, 77.58776076, 77.99915701, 78.41046132, 78.82167322, 79.23279221, 79.64381782, 80.05474957, 80.46558698, 80.87632958, 81.28697687, 81.69752839, 82.10798366, 82.51834218, 82.9286035, 83.33876713, 83.74883258, 84.15879939, 84.56866708, 84.97843516, 85.38810317, 85.79767062, 86.20713703, 86.61650194, 87.02576486, 87.43492532, 87.84398284, 88.25293695, 88.66178717, 89.07053302, 89.47917404, 89.88770973, 90.29613964, 90.70446329, 91.11268019, 91.52078988, 91.92879189, 92.33668573, 92.74447094, 93.15214704, 93.55971356, 93.96717003, 94.37451597, 94.78175091, 95.18887439, 95.59588591, 96.00278503, 96.40957125, 96.81624412, 97.22280316, 97.6292479, 98.03557787, 98.4417926, 98.84789162, 99.25387445, 99.65974063, 100.0654897, 100.47112117, 100.87663458, 101.28202947, 101.68730536, 102.09246178, 102.49749827, 102.90241436, 103.30720958, 103.71188346, 104.11643554, 104.52086535, 104.92517243, 105.32935629, 105.73341649, 106.13735255, 106.54116401, 106.9448504, 107.34841126, 107.75184612, 108.15515452, 108.55833599, 108.96139007, 109.36431629, 109.76711419, 110.16978331, 110.57232319, 110.97473335, 111.37701334, 111.7791627, 112.18118096, 112.58306766, 112.98482234, 113.38644454, 113.78793379, 114.18928964, 114.59051162, 114.99159928, 115.39255215, 115.79336978, 116.1940517, 116.59459745, 116.99500658, 117.39527862, 117.79541313, 118.19540963, 118.59526768, 118.99498681, 119.39456656, 119.79400648, 120.19330612, 120.59246501, 120.9914827, 121.39035873, 121.78909265, 122.187684, 122.58613233, 122.98443717, 123.38259809, 123.78061461, 124.17848629, 124.57621267, 124.9737933, 125.37122773, 125.76851551, 126.16565617, 126.56264927, 126.95949435, 127.35619097, 127.75273867, 128.149137, 128.54538551, 128.94148375, 129.33743127, 129.73322762, 130.12887234, 130.52436499, 130.91970512, 131.31489228, 131.70992602, 132.1048059, 132.49953146, 132.89410226, 133.28851784, 133.68277777, 134.0768816, 134.47082887, 134.86461915, 135.25825198, 135.65172692, 136.04504353, 136.43820136, 136.83119996, 137.2240389, 137.61671772, 138.00923599, 138.40159326, 138.79378908, 139.18582301, 139.57769462, 139.96940346, 140.36094908, 140.75233104, 141.14354892, 141.53460225, 141.92549061, 142.31621354, 142.70677062, 143.09716141, 143.48738545, 143.87744232, 144.26733157, 144.65705277, 145.04660548, 145.43598926, 145.82520367, 146.21424828, 146.60312264, 146.99182633, 147.38035891, 147.76871994, 148.15690898, 148.5449256, 148.93276937, 149.32043985, 149.70793661, 150.09525921, 150.48240722, 150.86938021, 151.25617774, 151.64279938, 152.02924471, 152.41551328, 152.80160466, 153.18751844, 153.57325416, 153.95881141, 154.34418976, 154.72938877, 155.11440802, 155.49924707, 155.8839055, 156.26838287, 156.65267878, 157.03679277, 157.42072443, 157.80447333, 158.18803904, 158.57142115, 158.95461921, 159.33763281, 159.72046152, 160.10310491, 160.48556257, 160.86783406, 161.24991897, 161.63181687, 162.01352734, 162.39504995, 162.77638429, 163.15752993, 163.53848644, 163.91925342, 164.29983043, 164.68021706, 165.06041289, 165.44041749, 165.82023046, 166.19985136, 166.57927979, 166.95851532, 167.33755753, 167.71640601, 168.09506034, 168.47352011, 168.85178489, 169.22985427, 169.60772784, 169.98540519, 170.36288588, 170.74016952, 171.11725569, 171.49414397, 171.87083396, 172.24732523, 172.62361738, 172.99970999, 173.37560265, 173.75129495, 174.12678648, 174.50207683, 174.87716559, 175.25205235, 175.62673669, 176.00121822, 176.37549652, 176.74957118, 177.1234418, 177.49710796, 177.87056927, 178.24382531, 178.61687568, 178.98971997, 179.36235778, 179.7347887, 180.10701233, 180.47902826, 180.85083609, 181.22243541, 181.59382583, 181.96500693, 182.33597833, 182.70673961, 183.07729037, 183.44763021, 183.81775874, 184.18767555, 184.55738024, 184.92687241, 185.29615167, 185.66521761, 186.03406984, 186.40270796, 186.77113157, 187.13934027, 187.50733367, 187.87511137, 188.24267298, 188.6100181, 188.97714634, 189.34405729, 189.71075057, 190.07722579, 190.44348255, 190.80952045, 191.17533911, 191.54093813, 191.90631712, 192.27147569, 192.63641345, 193.00113001, 193.36562498, 193.72989797, 194.09394859, 194.45777645, 194.82138116, 195.18476234, 195.5479196, 195.91085255, 196.27356081, 196.63604398, 196.99830169, 197.36033355, 197.72213917, 198.08371817, 198.44507016, 198.80619477, 199.1670916, 199.52776028, 199.88820043, 200.24841166, 200.60839359, 200.96814583, 201.32766802, 201.68695977, 202.0460207, 202.40485043, 202.76344858, 203.12181477, 203.47994864, 203.83784979, 204.19551785, 204.55295245, 204.91015321, 205.26711975, 205.6238517, 205.98034869, 206.33661034, 206.69263627, 207.04842612, 207.4039795, 207.75929606, 208.11437541, 208.46921718, 208.82382101, 209.17818652, 209.53231334, 209.88620111, 210.23984945, 210.59325799, 210.94642637, 211.29935422, 211.65204117, 212.00448686, 212.35669091, 212.70865296, 213.06037265, 213.41184961, 213.76308348, 214.11407389, 214.46482048, 214.81532288, 215.16558073, 215.51559367, 215.86536135, 216.21488338, 216.56415943, 216.91318911, 217.26197209, 217.61050799, 217.95879645, 218.30683712, 218.65462964, 219.00217366, 219.3494688, 219.69651473, 220.04331107, 220.38985749, 220.73615361, 221.08219909, 221.42799357, 221.77353669, 222.11882811, 222.46386747, 222.80865442, 223.15318861, 223.49746968, 223.84149728, 224.18527107, 224.52879069, 224.87205579, 225.21506603, 225.55782106, 225.90032052, 226.24256407, 226.58455136, 226.92628205, 227.26775579, 227.60897223, 227.94993103, 228.29063185, 228.63107433, 228.97125814, 229.31118293, 229.65084837, 229.99025409, 230.32939978, 230.66828508, 231.00690965, 231.34527315, 231.68337525, 232.0212156, 232.35879386, 232.69610971, 233.03316278, 233.36995276, 233.70647931, 234.04274208, 234.37874074, 234.71447496, 235.0499444, 235.38514872, 235.7200876, 236.0547607, 236.38916768, 236.72330822, 237.05718198, 237.39078863, 237.72412784, 238.05719927, 238.39000261, 238.72253751, 239.05480366, 239.38680072, 239.71852836, 240.04998626, 240.38117409, 240.71209152, 241.04273823, 241.37311389, 241.70321818, 242.03305077, 242.36261134, 242.69189957, 243.02091512, 243.34965769, 243.67812695, 244.00632257, 244.33424424, 244.66189164, 244.98926444, 245.31636233, 245.64318498, 245.96973209, 246.29600332, 246.62199838, 246.94771693, 247.27315866, 247.59832326, 247.92321041, 248.24781979, 248.5721511, 248.89620402, 249.21997823, 249.54347343, 249.86668929, 250.18962552, 250.51228179, 250.8346578, 251.15675324, 251.4785678, 251.80010116, 252.12135303, 252.44232309, 252.76301104, 253.08341657, 253.40353937, 253.72337913, 254.04293556, 254.36220834, 254.68119718, 254.99990177, 255.3183218, 255.63645697, 255.95430699, 256.27187155, 256.58915034, 256.90614308, 257.22284945, 257.53926916, 257.85540191, 258.1712474, 258.48680533, 258.80207541, 259.11705735, 259.43175083, 259.74615557, 260.06027128, 260.37409765, 260.68763439, 261.00088122, 261.31383783, 261.62650394, 261.93887925, 262.25096347, 262.56275632, 262.87425749, 263.1854667, 263.49638366, 263.80700809, 264.11733969, 264.42737818, 264.73712326, 265.04657466, 265.35573209, 265.66459525, 265.97316388, 266.28143767, 266.58941636, 266.89709964, 267.20448726, 267.51157891, 267.81837431, 268.1248732, 268.43107528, 268.73698028, 269.04258792, 269.34789791, 269.65290999, 269.95762386, 270.26203926, 270.56615591, 270.86997353, 271.17349185, 271.47671059, 271.77962947, 272.08224823, 272.38456658, 272.68658426, 272.988301, 273.28971652, 273.59083055, 273.89164282, 274.19215305, 274.49236099, 274.79226636, 275.0918689, 275.39116833, 275.69016438, 275.9888568, 276.28724531, 276.58532965, 276.88310956, 277.18058476, 277.47775501, 277.77462002, 278.07117954, 278.36743331, 278.66338106, 278.95902254, 279.25435748, 279.54938562, 279.8441067, 280.13852048, 280.43262667, 280.72642504, 281.01991531, 281.31309724, 281.60597057, 281.89853504, 282.1907904, 282.48273639, 282.77437276, 283.06569926, 283.35671562, 283.64742161, 283.93781697, 284.22790145, 284.51767479, 284.80713675, 285.09628708, 285.38512553, 285.67365185, 285.96186579, 286.24976711, 286.53735556, 286.82463089, 287.11159286, 287.39824123, 287.68457574, 287.97059616, 288.25630224, 288.54169374, 288.82677042, 289.11153204, 289.39597835, 289.68010911, 289.96392409, 290.24742305, 290.53060575, 290.81347194, 291.0960214, 291.37825388, 291.66016915, 291.94176698, 292.22304712, 292.50400935, 292.78465343, 293.06497912, 293.3449862, 293.62467443, 293.90404358, 294.18309342, 294.46182371, 294.74023424, 295.01832476, 295.29609506, 295.57354489, 295.85067404, 296.12748228, 296.40396937, 296.6801351, 296.95597924, 297.23150157, 297.50670186, 297.78157988, 298.05613542, 298.33036824, 298.60427814, 298.87786489, 299.15112826, 299.42406805, 299.69668402, 299.96897595, 300.24094364, 300.51258687, 300.78390541, 301.05489904, 301.32556756, 301.59591075, 301.86592839, 302.13562027, 302.40498618, 302.6740259, 302.94273921, 303.21112591, 303.47918579, 303.74691864, 304.01432424, 304.28140238, 304.54815286, 304.81457547, 305.08067, 305.34643624, 305.61187399, 305.87698304, 306.14176318, 306.40621421, 306.67033593, 306.93412813, 307.19759061, 307.46072316, 307.72352559, 307.98599769, 308.24813926, 308.5099501, 308.77143002, 309.0325788, 309.29339627, 309.55388221, 309.81403642, 310.07385872, 310.33334891, 310.59250679, 310.85133216, 311.10982484, 311.36798462, 311.62581132, 311.88330474, 312.1404647, 312.39729099, 312.65378343, 312.90994183, 313.16576599, 313.42125574, 313.67641088, 313.93123122, 314.18571657, 314.43986676, 314.69368159, 314.94716088, 315.20030444, 315.45311209, 315.70558365, 315.95771893, 316.20951774, 316.46097992, 316.71210527, 316.96289362, 317.21334479, 317.46345859, 317.71323485, 317.96267339, 318.21177403, 318.46053659, 318.70896091, 318.95704679, 319.20479407, 319.45220258, 319.69927213, 319.94600255, 320.19239368, 320.43844534, 320.68415735, 320.92952955, 321.17456176, 321.41925382, 321.66360556, 321.90761681, 322.15128739, 322.39461714, 322.63760591, 322.8802535, 323.12255978, 323.36452456, 323.60614768, 323.84742898, 324.0883683, 324.32896546, 324.56922032, 324.80913271, 325.04870247, 325.28792944, 325.52681345, 325.76535435, 326.00355198, 326.24140618, 326.4789168, 326.71608368, 326.95290666, 327.18938558, 327.42552029, 327.66131065, 327.89675648, 328.13185764, 328.36661399, 328.60102535, 328.83509159, 329.06881255, 329.30218809, 329.53521805, 329.76790228, 330.00024064, 330.23223298, 330.46387915, 330.695179, 330.92613239, 331.15673917, 331.3869992, 331.61691234, 331.84647843, 332.07569734, 332.30456893, 332.53309305, 332.76126956, 332.98909833, 333.2165792, 333.44371205, 333.67049673, 333.8969331, 334.12302103, 334.34876039, 334.57415102, 334.79919281, 335.02388561, 335.24822928, 335.4722237, 335.69586874, 335.91916425, 336.14211011, 336.36470618, 336.58695234, 336.80884844, 337.03039438, 337.25159001, 337.4724352, 337.69292983, 337.91307378, 338.1328669, 338.35230909, 338.57140021, 338.79014013, 339.00852874, 339.22656591, 339.44425151, 339.66158543, 339.87856754, 340.09519771, 340.31147584, 340.5274018, 340.74297547, 340.95819673, 341.17306547, 341.38758155, 341.60174488, 341.81555533, 342.02901278, 342.24211713, 342.45486825, 342.66726603, 342.87931036, 343.09100112, 343.30233821, 343.51332151, 343.72395091, 343.9342263, 344.14414757, 344.35371461, 344.56292731, 344.77178557, 344.98028927, 345.18843831, 345.39623259, 345.60367199, 345.81075642, 346.01748576, 346.22385992, 346.42987879, 346.63554226, 346.84085025, 347.04580264, 347.25039933, 347.45464022, 347.65852522, 347.86205423, 348.06522714, 348.26804386, 348.47050429, 348.67260834, 348.87435591, 349.0757469, 349.27678122, 349.47745877, 349.67777946, 349.87774321, 350.0773499, 350.27659946, 350.4754918, 350.67402681, 350.87220442, 351.07002453, 351.26748705, 351.4645919, 351.66133898, 351.85772822, 352.05375952, 352.24943279, 352.44474796, 352.63970494, 352.83430365, 353.02854399, 353.2224259, 353.41594928, 353.60911405, 353.80192014, 353.99436746, 354.18645593, 354.37818548, 354.56955602, 354.76056749, 354.95121979, 355.14151285, 355.3314466, 355.52102096, 355.71023586, 355.89909122, 356.08758697, 356.27572303, 356.46349933, 356.65091581, 356.83797238, 357.02466898, 357.21100554, 357.39698199, 357.58259825, 357.76785427, 357.95274997, 358.13728528, 358.32146015, 358.50527449, 358.68872825, 358.87182137, 359.05455377, 359.2369254, 359.41893619, 359.60058608, 359.781875, 359.9628029, 360.14336971, 360.32357538, 360.50341985, 360.68290305, 360.86202493, 361.04078543, 361.2191845, 361.39722207, 361.57489809, 361.75221251, 361.92916526, 362.10575631, 362.28198559, 362.45785304, 362.63335863, 362.80850229, 362.98328398, 363.15770364, 363.33176123, 363.50545669, 363.67878997, 363.85176104, 364.02436983, 364.19661631, 364.36850043, 364.54002213, 364.71118139, 364.88197814, 365.05241235, 365.22248397, 365.39219297, 365.56153929, 365.7305229, 365.89914376, 366.06740182, 366.23529704, 366.40282939, 366.56999883, 366.73680532, 366.90324882, 367.06932929, 367.23504671, 367.40040102, 367.5653922, 367.73002021, 367.89428503, 368.0581866, 368.22172491, 368.38489992, 368.5477116, 368.71015991, 368.87224483, 369.03396633, 369.19532438, 369.35631894, 369.51694999, 369.67721751, 369.83712146, 369.99666183, 370.15583857, 370.31465168, 370.47310111, 370.63118686, 370.7889089, 370.94626719, 371.10326173, 371.25989249, 371.41615945, 371.57206258, 371.72760187, 371.8827773, 372.03758885, 372.19203651, 372.34612024, 372.49984004, 372.6531959, 372.80618778, 372.95881569, 373.1110796, 373.2629795, 373.41451537, 373.56568722, 373.71649501, 373.86693874, 374.0170184, 374.16673397, 374.31608546, 374.46507284, 374.61369611, 374.76195526, 374.90985029, 375.05738118, 375.20454793, 375.35135053, 375.49778898, 375.64386328, 375.78957341, 375.93491938, 376.07990117, 376.2245188, 376.36877226, 376.51266154, 376.65618664, 376.79934757, 376.94214433, 377.08457691, 377.22664531, 377.36834955, 377.50968962, 377.65066552, 377.79127727, 377.93152485, 378.07140829, 378.21092757, 378.35008272, 378.48887373, 378.62730062, 378.76536339, 378.90306204, 379.0403966, 379.17736706, 379.31397344, 379.45021575, 379.586094, 379.72160821, 379.85675837, 379.99154451, 380.12596664, 380.26002478, 380.39371893, 380.52704912, 380.66001536, 380.79261766, 380.92485605, 381.05673054, 381.18824114, 381.31938789, 381.45017078, 381.58058986, 381.71064513, 381.84033661, 381.96966434, 382.09862832, 382.22722859, 382.35546516, 382.48333806, 382.61084732, 382.73799295, 382.86477499, 382.99119346, 383.11724838, 383.24293978, 383.3682677, 383.49323215, 383.61783318, 383.7420708, 383.86594504, 383.98945594, 384.11260353, 384.23538784, 384.3578089, 384.47986674, 384.6015614, 384.72289292, 384.84386131, 384.96446663, 385.0847089, 385.20458816, 385.32410445, 385.44325781, 385.56204826, 385.68047586, 385.79854064, 385.91624263, 386.03358189, 386.15055844, 386.26717233, 386.38342361, 386.4993123, 386.61483846, 386.73000214, 386.84480336, 386.95924218, 387.07331864, 387.18703279, 387.30038467, 387.41337433, 387.52600182, 387.63826718, 387.75017046, 387.86171171, 387.97289098, 388.08370833, 388.19416379, 388.30425742, 388.41398927, 388.5233594, 388.63236785, 388.74101469, 388.84929995, 388.9572237, 389.064786, 389.17198689, 389.27882643, 389.38530468, 389.49142169, 389.59717753, 389.70257225, 389.80760591, 389.91227856, 390.01659028, 390.12054111, 390.22413112, 390.32736036, 390.43022891, 390.53273682, 390.63488416, 390.73667099, 390.83809737, 390.93916336, 391.03986904, 391.14021446, 391.2401997, 391.33982482, 391.43908989, 391.53799497, 391.63654013, 391.73472544, 391.83255098, 391.9300168, 392.02712298, 392.1238696, 392.22025671, 392.31628441, 392.41195274, 392.5072618, 392.60221165, 392.69680236, 392.79103402, 392.88490669, 392.97842045, 393.07157538, 393.16437156, 393.25680906, 393.34888795, 393.44060832, 393.53197025, 393.62297381, 393.71361909, 393.80390616, 393.8938351, 393.98340601, 394.07261895, 394.16147401, 394.24997128, 394.33811083, 394.42589276, 394.51331714, 394.60038406, 394.6870936, 394.77344586, 394.85944092, 394.94507886, 395.03035977, 395.11528375, 395.19985087, 395.28406123, 395.36791492, 395.45141203, 395.53455265, 395.61733687, 395.69976478, 395.78183647, 395.86355204, 395.94491158, 396.02591518, 396.10656294, 396.18685495, 396.26679131, 396.34637212, 396.42559746, 396.50446744, 396.58298215, 396.66114169, 396.73894617, 396.81639567, 396.8934903, 396.97023015, 397.04661534, 397.12264595, 397.1983221, 397.27364387, 397.34861138, 397.42322473, 397.49748401, 397.57138935, 397.64494083, 397.71813856, 397.79098265, 397.86347321, 397.93561034, 398.00739414, 398.07882473, 398.14990222, 398.2206267, 398.2909983, 398.36101712, 398.43068326, 398.49999685, 398.56895798, 398.63756678, 398.70582335, 398.77372781, 398.84128027, 398.90848084, 398.97532963, 399.04182677, 399.10797236, 399.17376653, 399.23920937, 399.30430102, 399.3690416, 399.4334312, 399.49746996, 399.561158, 399.62449542, 399.68748236, 399.75011892, 399.81240524, 399.87434143, 399.93592761, 399.9971639, 400.05805043, 400.11858732, 400.17877469, 400.23861266, 400.29810136, 400.35724092, 400.41603146, 400.4744731, 400.53256597, 400.59031019, 400.64770591, 400.70475323, 400.76145229, 400.81780322, 400.87380614, 400.92946119, 400.98476849, 401.03972818, 401.09434039, 401.14860524, 401.20252288, 401.25609342, 401.30931701, 401.36219378, 401.41472385, 401.46690738, 401.51874448, 401.57023529, 401.62137996, 401.67217861, 401.72263138, 401.77273841, 401.82249984, 401.8719158, 401.92098644, 401.96971189, 402.01809228, 402.06612777, 402.11381849, 402.16116458, 402.20816618, 402.25482343, 402.30113648, 402.34710547, 402.39273054, 402.43801183, 402.48294949, 402.52754367, 402.5717945, 402.61570213, 402.65926671, 402.70248839, 402.7453673, 402.78790361, 402.83009745, 402.87194897, 402.91345833, 402.95462566, 402.99545113, 403.03593488, 403.07607705, 403.11587781, 403.1553373, 403.19445567, 403.23323308, 403.27166967, 403.30976561, 403.34752104, 403.38493612, 403.422011, 403.45874584, 403.49514079, 403.53119601, 403.56691165, 403.60228787, 403.63732483, 403.67202269, 403.7063816, 403.74040171, 403.7740832, 403.80742622, 403.84043093, 403.87309748, 403.90542604, 403.93741678, 403.96906984, 404.0003854, 404.03136361, 404.06200464, 404.09230865, 404.12227581, 404.15190628, 404.18120021, 404.21015779, 404.23877917, 404.26706452, 404.295014, 404.32262779, 404.34990604, 404.37684893, 404.40345662, 404.42972929, 404.45566709, 404.48127021, 404.50653881, 404.53147305, 404.55607312, 404.58033917, 404.60427139, 404.62786995, 404.65113501, 404.67406674, 404.69666533, 404.71893095, 404.74086376, 404.76246395, 404.78373168, 404.80466714, 404.82527049, 404.84554192, 404.8654816, 404.88508971, 404.90436642, 404.92331192, 404.94192637, 404.96020996, 404.97816287, 404.99578528, 405.01307736, 405.0300393, 405.04667128, 405.06297347, 405.07894606, 405.09458924, 405.10990317, 405.12488806, 405.13954407, 405.15387139, 405.1678702, 405.1815407, 405.19488306, 405.20789747, 405.22058412, 405.23294318, 405.24497485, 405.25667932, 405.26805676, 405.27910737, 405.28983134, 405.30022885, 405.31030009, 405.32004525, 405.32946453, 405.3385581, 405.34732616, 405.35576891, 405.36388652, 405.3716792, 405.37914714, 405.38629052, 405.39310954, 405.3996044, 405.40577528, 405.41162238, 405.41714589, 405.42234601, 405.42722294, 405.43177686, 405.43600798, 405.43991649, 405.44350258, 405.44676646, 405.44970832, 405.45232836, 405.45462677, 405.45660376, 405.45825952, 405.45959425, 405.46060816, 405.46130144, 405.46167429, 405.46172691, 405.46145951, 405.46087228, 405.45996544, 405.45873917, 405.45719368, 405.45532917, 405.45314586, 405.45064394, 405.44782361, 405.44468508, 405.44122856, 405.43745425, 405.43336235, 405.42895308, 405.42422664, 405.41918323, 405.41382306, 405.40814634, 405.40215328, 405.39584408, 405.38921895, 405.38227811, 405.37502176, 405.36745012, 405.35956338, 405.35136176, 405.34284548, 405.33401474, 405.32486975, 405.31541074, 405.3056379, 405.29555145, 405.2851516, 405.27443857, 405.26341258, 405.25207383, 405.24042253, 405.22845891, 405.21618318, 405.20359555, 405.19069625, 405.17748547, 405.16396345, 405.1501304, 405.13598654, 405.12153207, 405.10676723, 405.09169223, 405.07630729, 405.06061262, 405.04460845, 405.02829499, 405.01167247, 404.99474111, 404.97750112, 404.95995273, 404.94209616, 404.92393162, 404.90545935, 404.88667956, 404.86759248, 404.84819833, 404.82849733, 404.80848971, 404.78817569, 404.7675555, 404.74662935, 404.72539748, 404.70386011, 404.68201746, 404.65986977, 404.63741726, 404.61466015, 404.59159867, 404.56823305, 404.54456351, 404.5205903, 404.49631362, 404.47173372, 404.44685081, 404.42166514, 404.39617693, 404.3703864, 404.3442938, 404.31789935, 404.29120327, 404.26420581, 404.2369072, 404.20930766, 404.18140743, 404.15320674, 404.12470582, 404.09590491, 404.06680424, 404.03740405, 404.00770456, 403.97770602, 403.94740865, 403.9168127, 403.88591839, 403.85472597, 403.82323567, 403.79144772, 403.75936237, 403.72697985, 403.69430039, 403.66132424, 403.62805163, 403.5944828, 403.56061799, 403.52645744, 403.49200139, 403.45725007, 403.42220373, 403.3868626, 403.35122693, 403.31529696, 403.27907293, 403.24255507, 403.20574364, 403.16863887, 403.131241, 403.09355029, 403.05556696, 403.01729126, 402.97872345, 402.93986375, 402.90071241, 402.86126969, 402.82153582, 402.78151104, 402.74119561, 402.70058977, 402.65969376, 402.61850782, 402.57703222, 402.53526719, 402.49321298, 402.45086983, 402.408238, 402.36531773, 402.32210927, 402.27861287, 402.23482877, 402.19075723, 402.14639849, 402.10175281, 402.05682043, 402.01160161, 401.96609659, 401.92030562, 401.87422896, 401.82786686, 401.78121956, 401.73428732, 401.68707039, 401.63956903, 401.59178348, 401.54371401, 401.49536085, 401.44672427, 401.39780452, 401.34860184, 401.29911651, 401.24934877, 401.19929887, 401.14896707, 401.09835363, 401.0474588, 400.99628284, 400.944826, 400.89308853, 400.84107071, 400.78877277, 400.73619499, 400.68333761, 400.6302009, 400.57678511, 400.5230905, 400.46911733, 400.41486585, 400.36033633, 400.30552903, 400.2504442, 400.1950821, 400.139443, 400.08352716, 400.02733483, 399.97086627, 399.91412175, 399.85710153, 399.79980586, 399.74223502, 399.68438926, 399.62626884, 399.56787403, 399.50920509, 399.45026228, 399.39104587, 399.33155612, 399.27179329, 399.21175764, 399.15144945, 399.09086897, 399.03001648, 398.96889222, 398.90749648, 398.84582951, 398.78389158, 398.72168296, 398.65920391, 398.5964547, 398.5334356, 398.47014687, 398.40658878, 398.34276159, 398.27866558, 398.21430101, 398.14966814, 398.08476726, 398.01959862, 397.9541625, 397.88845916, 397.82248887, 397.75625191, 397.68974854, 397.62297903, 397.55594365, 397.48864267, 397.42107636, 397.353245, 397.28514885, 397.21678818, 397.14816328, 397.07927439, 397.01012181, 396.9407058, 396.87102664, 396.80108459, 396.73087993, 396.66041293, 396.58968386, 396.51869301, 396.44744063, 396.37592702, 396.30415243, 396.23211714, 396.15982143, 396.08726558, 396.01444985, 395.94137453, 395.86803988, 395.79444619, 395.72059372, 395.64648276, 395.57211358, 395.49748646, 395.42260167, 395.34745949, 395.2720602, 395.19640407, 395.12049139, 395.04432242, 394.96789745, 394.89121675, 394.81428061, 394.7370893, 394.6596431, 394.58194228, 394.50398713, 394.42577793, 394.34731496, 394.26859849, 394.1896288, 394.11040618, 394.0309309, 393.95120325, 393.8712235, 393.79099194, 393.71050885, 393.6297745, 393.54878918, 393.46755317, 393.38606676, 393.30433022, 393.22234383, 393.14010788, 393.05762265, 392.97488843, 392.89190549, 392.80867411, 392.72519459, 392.64146721, 392.55749224, 392.47326997, 392.38880069, 392.30408468, 392.21912222, 392.1339136, 392.0484591, 391.962759, 391.8768136, 391.79062318, 391.70418802, 391.6175084, 391.53058462, 391.44341696, 391.3560057, 391.26835113, 391.18045354, 391.09231321, 391.00393043, 390.91530549, 390.82643867, 390.73733026, 390.64798054, 390.55838982, 390.46855836, 390.37848647, 390.28817442, 390.19762251, 390.10683102, 390.01580025, 389.92453048, 389.83302199, 389.74127509, 389.64929005, 389.55706717, 389.46460674, 389.37190904, 389.27897437, 389.18580301, 389.09239526, 388.9987514, 388.90487172, 388.81075653, 388.71640609, 388.62182072, 388.52700069, 388.4319463, 388.33665784, 388.24113561, 388.14537988, 388.04939096, 387.95316913, 387.8567147, 387.76002794, 387.66310915, 387.56595863, 387.46857666, 387.37096354, 387.27311957, 387.17504503, 387.07674021, 386.97820542, 386.87944094, 386.78044707, 386.6812241, 386.58177232, 386.48209204, 386.38218353, 386.2820471, 386.18168305, 386.08109165, 385.98027322, 385.87922804, 385.77795641, 385.67645863, 385.57473498, 385.47278576, 385.37061128, 385.26821182, 385.16558768, 385.06273916, 384.95966654, 384.85637014, 384.75285024, 384.64910714, 384.54514113, 384.44095251, 384.33654159, 384.23190865, 384.12705399, 384.02197791, 383.91668071, 383.81116268, 383.70542411, 383.59946532, 383.49328659, 383.38688823, 383.28027052, 383.17343377, 383.06637828, 382.95910434, 382.85161225, 382.74390232, 382.63597483, 382.52783009, 382.41946839, 382.31089004, 382.20209533, 382.09308456, 381.98385804, 381.87441605, 381.7647589, 381.65488689, 381.54480032, 381.43449949, 381.32398469, 381.21325623, 381.10231441, 380.99115952, 380.87979187, 380.76821175, 380.65641947, 380.54441533, 380.43219963, 380.31977266, 380.20713473, 380.09428614, 379.98122719, 379.86795819, 379.75447942, 379.64079119, 379.52689381, 379.41278758, 379.29847279, 379.18394975, 379.06921876, 378.95428012, 378.83913413, 378.7237811, 378.60822132, 378.4924551, 378.37648274, 378.26030454, 378.14392081, 378.02733185, 377.91053795, 377.79353942, 377.67633657, 377.5589297, 377.44131911, 377.32350509, 377.20548797, 377.08726803, 376.96884558, 376.85022092, 376.73139436, 376.61236621, 376.49313675, 376.3737063, 376.25407517, 376.13424364, 376.01421204, 375.89398065, 375.77354979, 375.65291976, 375.53209086, 375.4110634, 375.28983768, 375.168414, 375.04679267, 374.92497399, 374.80295827, 374.68074581, 374.55833692, 374.4357319, 374.31293105, 374.18993468, 374.06674309, 373.94335659, 373.81977549, 373.69600008, 373.57203068, 373.44786759, 373.3235111, 373.19896154, 373.0742192, 372.94928438, 372.8241574, 372.69883856, 372.57332816, 372.44762651, 372.32173391, 372.19565068, 372.06937711, 371.94291351, 371.81626019, 371.68941745, 371.5623856, 371.43516494, 371.30775578, 371.18015843, 371.05237319, 370.92440037, 370.79624027, 370.6678932, 370.53935946, 370.41063937, 370.28173322, 370.15264133, 370.023364, 369.89390153, 369.76425424, 369.63442242, 369.50440639, 369.37420646, 369.24382292, 369.11325609, 368.98250626, 368.85157376, 368.72045888, 368.58916193, 368.45768322, 368.32602305, 368.19418174, 368.06215958, 367.92995689, 367.79757397, 367.66501113, 367.53226867, 367.39934691, 367.26624614, 367.13296668, 366.99950884, 366.86587291, 366.73205921, 366.59806805, 366.46389972, 366.32955455, 366.19503283, 366.06033488, 365.92546099, 365.79041148, 365.65518666, 365.51978682, 365.38421229, 365.24846336, 365.11254035, 364.97644355, 364.84017328, 364.70372985, 364.56711357, 364.43032473, 364.29336365, 364.15623063, 364.01892599, 363.88145002, 363.74380304, 363.60598536, 363.46799728, 363.32983911, 363.19151115, 363.05301372, 362.91434712, 362.77551166, 362.63650764, 362.49733538, 362.35799519, 362.21848736, 362.0788122, 361.93897004, 361.79896116, 361.65878588, 361.51844451, 361.37793735, 361.23726472, 361.09642691, 360.95542424, 360.81425702, 360.67292554, 360.53143013, 360.38977108, 360.2479487, 360.10596331, 359.96381521, 359.8215047, 359.6790321, 359.53639771, 359.39360184, 359.25064479, 359.10752688, 358.96424841, 358.82080968, 358.67721102, 358.53345271, 358.38953508, 358.24545843, 358.10122306, 357.95682928, 357.81227741, 357.66756774, 357.52270059, 357.37767626, 357.23249505, 357.08715729, 356.94166327, 356.7960133, 356.65020768, 356.50424674, 356.35813076, 356.21186007, 356.06543496, 355.91885574, 355.77212273, 355.62523623, 355.47819653, 355.33100397, 355.18365882, 355.03616142, 354.88851206, 354.74071105, 354.59275869, 354.4446553, 354.29640117, 354.14799663, 353.99944197, 353.85073749, 353.70188352, 353.55288035, 353.40372828, 353.25442764, 353.10497872, 352.95538183, 352.80563727, 352.65574536, 352.50570639, 352.35552069, 352.20518854, 352.05471026, 351.90408616, 351.75331653, 351.6024017, 351.45134195, 351.30013761, 351.14878897, 350.99729634, 350.84566003, 350.69388034, 350.54195758, 350.38989205, 350.23768407, 350.08533393, 349.93284194, 349.78020841, 349.62743365, 349.47451795, 349.32146163, 349.16826499, 349.01492833, 348.86145197, 348.7078362, 348.55408133, 348.40018766, 348.24615551, 348.09198518, 347.93767697, 347.78323118, 347.62864813, 347.47392811, 347.31907144, 347.16407841, 347.00894933, 346.85368451, 346.69828425, 346.54274886, 346.38707863, 346.23127388, 346.07533491, 345.91926202, 345.76305551, 345.6067157, 345.45024288, 345.29363737, 345.13689945, 344.98002945, 344.82302765, 344.66589437, 344.50862992, 344.35123458, 344.19370867, 344.03605249, 343.87826634, 343.72035053, 343.56230536, 343.40413114, 343.24582816, 343.08739673, 342.92883715, 342.77014973, 342.61133477, 342.45239258, 342.29332344, 342.13412768, 341.97480558, 341.81535746, 341.65578362, 341.49608435, 341.33625996, 341.17631075, 341.01623703, 340.8560391, 340.69571725, 340.5352718, 340.37470304, 340.21401127, 340.0531968, 339.89225993, 339.73120096, 339.57002019, 339.40871792, 339.24729446, 339.0857501, 338.92408515, 338.7622999, 338.60039467, 338.43836974, 338.27622542, 338.11396202, 337.95157983, 337.78907914, 337.62646028, 337.46372352, 337.30086918, 337.13789755, 336.97480894, 336.81160364, 336.64828196, 336.48484419, 336.32129063, 336.15762158, 335.99383735, 335.82993823, 335.66592453, 335.50179653, 335.33755454, 335.17319887, 335.0087298, 334.84414764, 334.67945269, 334.51464524, 334.34972559, 334.18469405, 334.01955091, 333.85429646, 333.68893102, 333.52345487, 333.35786831, 333.19217164, 333.02636517, 332.86044918, 332.69442397, 332.52828985, 332.36204711, 332.19569604, 332.02923695, 331.86267013, 331.69599587, 331.52921449, 331.36232626, 331.19533149, 331.02823048, 330.86102352, 330.69371091, 330.52629294, 330.35876992, 330.19114213, 330.02340987, 329.85557344, 329.68763314, 329.51958925, 329.35144208, 329.18319192, 329.01483907, 328.84638382, 328.67782646, 328.5091673, 328.34040662, 328.17154472, 328.00258189, 327.83351844, 327.66435465, 327.49509081, 327.32572723, 327.1562642, 326.986702, 326.81704094, 326.64728131, 326.4774234, 326.3074675, 326.13741391, 325.96726292, 325.79701482, 325.62666991, 325.45622848, 325.28569083, 325.11505723, 324.944328, 324.77350341, 324.60258376, 324.43156935, 324.26046047, 324.0892574, 323.91796044, 323.74656988, 323.57508601, 323.40350912, 323.23183951, 323.06007747, 322.88822328, 322.71627723, 322.54423963, 322.37211075, 322.19989089, 322.02758034, 321.85517939, 321.68268832, 321.51010744, 321.33743702, 321.16467736, 320.99182875, 320.81889148, 320.64586583, 320.47275209, 320.29955056, 320.12626152, 319.95288526, 319.77942207, 319.60587224, 319.43223605, 319.2585138, 319.08470577, 318.91081224, 318.73683352, 318.56276988, 318.38862161, 318.214389, 318.04007234, 317.86567191, 317.691188, 317.5166209, 317.34197089, 317.16723826, 316.9924233, 316.81752629, 316.64254751, 316.46748726, 316.29234582, 316.11712347, 315.9418205, 315.7664372, 315.59097385, 315.41543073, 315.23980813, 315.06410633, 314.88832563, 314.7124663, 314.53652862, 314.36051289, 314.18441938, 314.00824838, 313.83200017, 313.65567504, 313.47927326, 313.30279513, 313.12624092, 312.94961092, 312.77290541, 312.59612467, 312.41926899, 312.24233864, 312.06533392, 311.88825509, 311.71110245, 311.53387627, 311.35657683, 311.17920443, 311.00175933, 310.82424181, 310.64665217, 310.46899068, 310.29125762, 310.11345326, 309.9355779, 309.75763181, 309.57961527, 309.40152856, 309.22337195, 309.04514574, 308.86685019, 308.68848559, 308.51005222, 308.33155034, 308.15298026, 307.97434223, 307.79563654, 307.61686346, 307.43802328, 307.25911628, 307.08014272, 306.90110289, 306.72199706, 306.54282551, 306.36358852, 306.18428637, 306.00491932, 305.82548767, 305.64599167, 305.46643162, 305.28680777, 305.10712042, 304.92736984, 304.74755629, 304.56768006, 304.38774142, 304.20774065, 304.02767802, 303.8475538, 303.66736827, 303.4871217, 303.30681437, 303.12644655, 302.94601851, 302.76553053, 302.58498288, 302.40437583, 302.22370966, 302.04298464, 301.86220104, 301.68135913, 301.50045918, 301.31950148, 301.13848628, 300.95741386, 300.77628449, 300.59509845, 300.413856, 300.23255741, 300.05120296, 299.86979292, 299.68832755, 299.50680712, 299.32523192, 299.1436022, 298.96191823, 298.78018029, 298.59838864, 298.41654355, 298.2346453, 298.05269415, 297.87069036, 297.68863421, 297.50652597, 297.32436589, 297.14215426, 296.95989134, 296.77757739, 296.59521268, 296.41279749, 296.23033206, 296.04781668, 295.86525161, 295.68263712, 295.49997346, 295.31726091, 295.13449974, 294.9516902, 294.76883256, 294.58592709, 294.40297406, 294.21997372, 294.03692634, 293.85383219, 293.67069153, 293.48750462, 293.30427173, 293.12099312, 292.93766906, 292.7542998, 292.57088561, 292.38742676, 292.2039235, 292.0203761, 291.83678481, 291.65314991, 291.46947166, 291.28575031, 291.10198612, 290.91817936, 290.73433029, 290.55043917, 290.36650626, 290.18253181, 289.9985161, 289.81445938, 289.63036191, 289.44622394, 289.26204574, 289.07782758, 288.89356969, 288.70927236, 288.52493582, 288.34056035, 288.1561462, 287.97169362, 287.78720288, 287.60267424, 287.41810794, 287.23350425, 287.04886342, 286.86418572, 286.67947139, 286.4947207, 286.3099339, 286.12511124, 285.94025298, 285.75535938, 285.57043069, 285.38546717, 285.20046907, 285.01543664, 284.83037015, 284.64526984, 284.46013597, 284.27496879, 284.08976856, 283.90453552, 283.71926994, 283.53397207, 283.34864215, 283.16328044, 282.9778872, 282.79246267, 282.60700711, 282.42152076, 282.23600389, 282.05045674, 281.86487955, 281.6792726, 281.49363611, 281.30797035, 281.12227557, 280.93655201, 280.75079992, 280.56501955, 280.37921116, 280.19337499, 280.00751129, 279.82162031, 279.6357023, 279.4497575, 279.26378617, 279.07778855, 278.89176489, 278.70571543, 278.51964043, 278.33354013, 278.14741477, 277.96126462, 277.7750899, 277.58889086, 277.40266776, 277.21642084, 277.03015034, 276.84385651, 276.65753959, 276.47119983, 276.28483747, 276.09845276, 275.91204594, 275.72561725, 275.53916695, 275.35269526, 275.16620244, 274.97968873, 274.79315436, 274.6065996, 274.42002466, 274.2334298, 274.04681527, 273.86018129, 273.67352812, 273.48685599, 273.30016514, 273.11345582, 272.92672826, 272.73998271, 272.55321941, 272.36643859, 272.1796405, 271.99282537, 271.80599345, 271.61914497, 271.43228017, 271.24539929, 271.05850256, 270.87159024, 270.68466255, 270.49771973, 270.31076202, 270.12378965, 269.93680287, 269.7498019, 269.562787, 269.37575838, 269.18871629, 269.00166097, 268.81459265, 268.62751156, 268.44041793, 268.25331202, 268.06619404, 267.87906424, 267.69192284, 267.50477008, 267.3176062, 267.13043143, 266.94324599, 266.75605014, 266.56884408, 266.38162807, 266.19440233, 266.0071671, 265.81992259, 265.63266906, 265.44540672, 265.25813582, 265.07085657, 264.88356922, 264.69627398, 264.5089711, 264.3216608, 264.13434331, 263.94701886, 263.75968768, 263.57234999, 263.38500604, 263.19765604, 263.01030022, 262.82293882, 262.63557205, 262.44820016, 262.26082335, 262.07344187, 261.88605594, 261.69866578, 261.51127163, 261.3238737, 261.13647222, 260.94906743, 260.76165953, 260.57424877, 260.38683536, 260.19941953, 260.01200151, 259.82458151, 259.63715977, 259.4497365, 259.26231192, 259.07488627, 258.88745977, 258.70003263, 258.51260509, 258.32517735, 258.13774965, 257.95032221, 257.76289525, 257.57546898, 257.38804364, 257.20061944, 257.01319659, 256.82577533, 256.63835588, 256.45093844, 256.26352325, 256.07611052, 255.88870047, 255.70129331, 255.51388928, 255.32648858, 255.13909143, 254.95169806, 254.76430868, 254.5769235, 254.38954275, 254.20216664, 254.01479539, 253.82742921, 253.64006832, 253.45271294, 253.26536328, 253.07801956, 252.890682, 252.7033508, 252.51602618, 252.32870836, 252.14139755, 251.95409396, 251.76679782, 251.57950933, 251.3922287, 251.20495615, 251.0176919, 250.83043614, 250.64318911, 250.455951, 250.26872203, 250.08150241, 249.89429236, 249.70709207, 249.51990178, 249.33272167, 249.14555198, 248.95839289, 248.77124464, 248.58410741, 248.39698144, 248.20986691, 248.02276404, 247.83567305, 247.64859413, 247.4615275, 247.27447336, 247.08743193, 246.9004034, 246.71338799, 246.5263859, 246.33939734, 246.15242251, 245.96546163, 245.77851489, 245.59158251, 245.40466468, 245.21776162, 245.03087352, 244.84400059, 244.65714304, 244.47030108, 244.28347489, 244.09666469, 243.90987069, 243.72309307, 243.53633205, 243.34958784, 243.16286062, 242.9761506, 242.78945799, 242.60278299, 242.41612579, 242.2294866, 242.04286562, 241.85626305, 241.66967909, 241.48311394, 241.2965678, 241.11004087, 240.92353334, 240.73704542, 240.55057731, 240.3641292, 240.17770129, 239.99129378, 239.80490687, 239.61854075, 239.43219563, 239.2458717, 239.05956915, 238.87328818, 238.68702899, 238.50079177, 238.31457673, 238.12838404, 237.94221392, 237.75606655, 237.56994214, 237.38384086, 237.19776292, 237.01170852, 236.82567784, 236.63967108, 236.45368842, 236.26773008, 236.08179623, 235.89588707, 235.71000279, 235.52414358, 235.33830963, 235.15250115, 234.9667183, 234.7809613, 234.59523032, 234.40952556, 234.22384721, 234.03819546, 233.85257049, 233.6669725, 233.48140167, 233.2958582, 233.11034226, 232.92485406, 232.73939378, 232.5539616, 232.36855772, 232.18318231, 231.99783558, 231.81251769, 231.62722885, 231.44196923, 231.25673902, 231.07153841, 230.88636759, 230.70122673, 230.51611602, 230.33103565, 230.1459858, 229.96096666, 229.7759784, 229.59102122, 229.4060953, 229.22120081, 229.03633794, 228.85150688, 228.6667078, 228.48194089, 228.29720633, 228.11250431, 227.92783499, 227.74319856, 227.55859521, 227.37402512, 227.18948846, 227.00498541, 226.82051615, 226.63608087, 226.45167974, 226.26731294, 226.08298065, 225.89868305, 225.71442031, 225.53019261, 225.34600014, 225.16184306, 224.97772156, 224.79363581, 224.60958599, 224.42557227, 224.24159483, 224.05765385, 223.8737495, 223.68988196, 223.50605139, 223.32225798, 223.13850191, 222.95478333, 222.77110244, 222.5874594, 222.40385438, 222.22028756, 222.03675911, 221.8532692, 221.66981801, 221.48640571, 221.30303247, 221.11969846, 220.93640385, 220.75314881, 220.56993351, 220.38675814, 220.20362284, 220.0205278, 219.83747318, 219.65445916, 219.4714859, 219.28855357, 219.10566234, 218.92281238, 218.74000385, 218.55723693, 218.37451178, 218.19182857, 218.00918746, 217.82658863, 217.64403224, 217.46151845, 217.27904743, 217.09661935, 216.91423438, 216.73189267, 216.54959439, 216.36733971, 216.1851288, 216.0029618, 215.8208389, 215.63876026, 215.45672602, 215.27473637, 215.09279146, 214.91089146, 214.72903652, 214.54722682, 214.3654625, 214.18374374, 214.00207069, 213.82044351, 213.63886238, 213.45732743, 213.27583885, 213.09439678, 212.91300139, 212.73165283, 212.55035127, 212.36909686, 212.18788976, 212.00673013, 211.82561814, 211.64455392, 211.46353766, 211.28256949, 211.10164958, 210.92077809, 210.73995517, 210.55918097, 210.37845566, 210.19777939, 210.01715232, 209.83657459, 209.65604637, 209.47556781, 209.29513907, 209.11476029, 208.93443163, 208.75415325, 208.57392531, 208.39374794, 208.21362131, 208.03354556, 207.85352086, 207.67354735, 207.49362518, 207.31375451, 207.13393548, 206.95416826, 206.77445298, 206.5947898, 206.41517887, 206.23562034, 206.05611436, 205.87666108, 205.69726064, 205.5179132, 205.33861891, 205.15937791, 204.98019035, 204.80105638, 204.62197615, 204.4429498, 204.26397748, 204.08505934, 203.90619553, 203.72738619, 203.54863146, 203.3699315, 203.19128645, 203.01269645, 202.83416165, 202.65568219, 202.47725822, 202.29888988, 202.12057731, 201.94232067, 201.76412009, 201.58597572, 201.40788769, 201.22985616, 201.05188126, 200.87396314, 200.69610193, 200.51829778, 200.34055084, 200.16286123, 199.98522911, 199.80765462, 199.63013788, 199.45267905, 199.27527826, 199.09793566, 198.92065137, 198.74342555, 198.56625833, 198.38914984, 198.21210023, 198.03510963, 197.85817819, 197.68130604, 197.50449331, 197.32774014, 197.15104668, 196.97441305, 196.79783939, 196.62132584, 196.44487253, 196.26847961, 196.09214719, 195.91587543, 195.73966444, 195.56351438, 195.38742537, 195.21139754, 195.03543103, 194.85952597, 194.6836825, 194.50790075, 194.33218084, 194.15652292, 193.98092711, 193.80539355, 193.62992236, 193.45451369, 193.27916765, 193.10388438, 192.92866401, 192.75350667, 192.5784125, 192.40338161, 192.22841414, 192.05351022, 191.87866998, 191.70389354, 191.52918104, 191.35453259, 191.17994834, 191.00542841, 190.83097292, 190.656582, 190.48225578, 190.30799438, 190.13379793, 189.95966657, 189.7856004, 189.61159956, 189.43766418, 189.26379437, 189.08999027, 188.91625199, 188.74257966, 188.56897342, 188.39543336, 188.22195964, 188.04855235, 187.87521164, 187.70193762, 187.52873041, 187.35559013, 187.18251691, 187.00951087, 186.83657214, 186.66370082, 186.49089704, 186.31816093, 186.1454926, 185.97289218, 185.80035977, 185.62789551, 185.45549951, 185.28317189, 185.11091277, 184.93872227, 184.76660051, 184.5945476, 184.42256366, 184.25064881, 184.07880316, 183.90702685, 183.73531997, 183.56368264, 183.39211499, 183.22061713, 183.04918918, 182.87783124, 182.70654344, 182.53532589, 182.36417871, 182.193102, 182.02209589, 181.85116049, 181.6802959, 181.50950225, 181.33877965, 181.16812821, 180.99754804, 180.82703926, 180.65660198, 180.4862363, 180.31594235, 180.14572023, 179.97557005, 179.80549193, 179.63548597, 179.46555229, 179.295691, 179.12590219, 178.956186, 178.78654252, 178.61697186, 178.44747414, 178.27804946, 178.10869792, 177.93941965, 177.77021474, 177.6010833, 177.43202544, 177.26304127, 177.09413089, 176.92529442, 176.75653195, 176.5878436, 176.41922946, 176.25068965, 176.08222427, 175.91383342, 175.74551722, 175.57727575, 175.40910914, 175.24101748, 175.07300088, 174.90505943, 174.73719325, 174.56940244, 174.40168709, 174.23404732, 174.06648322, 173.8989949, 173.73158246, 173.564246, 173.39698561, 173.22980141, 173.0626935, 172.89566196, 172.72870691, 172.56182845, 172.39502667, 172.22830167, 172.06165355, 171.89508242, 171.72858837, 171.56217149, 171.3958319, 171.22956968, 171.06338493, 170.89727775, 170.73124825, 170.5652965, 170.39942262, 170.2336267, 170.06790884, 169.90226913, 169.73670766, 169.57122454, 169.40581985, 169.2404937, 169.07524618, 168.91007738, 168.7449874, 168.57997633, 168.41504427, 168.2501913, 168.08541753, 167.92072305, 167.75610794, 167.5915723, 167.42711623, 167.26273982, 167.09844315, 166.93422632, 166.77008942, 166.60603255, 166.44205579, 166.27815923, 166.11434297, 165.95060709, 165.78695169, 165.62337685, 165.45988267, 165.29646923, 165.13313662, 164.96988493, 164.80671425, 164.64362468, 164.48061628, 164.31768916, 164.15484341, 163.9920791, 163.82939632, 163.66679517, 163.50427573, 163.34183809, 163.17948233, 163.01720853, 162.85501679, 162.69290718, 162.5308798, 162.36893473, 162.20707206, 162.04529186, 161.88359422, 161.72197923, 161.56044697, 161.39899752, 161.23763097, 161.0763474, 160.91514689, 160.75402953, 160.59299539, 160.43204456, 160.27117712, 160.11039316, 159.94969275, 159.78907597, 159.62854291, 159.46809365, 159.30772826, 159.14744683, 158.98724944, 158.82713617, 158.66710709, 158.50716228, 158.34730183, 158.18752581, 158.02783431, 157.86822739, 157.70870514, 157.54926764, 157.38991496, 157.23064718, 157.07146438, 156.91236663, 156.75335401, 156.5944266, 156.43558447, 156.27682771, 156.11815637, 155.95957055, 155.80107031, 155.64265574, 155.48432689, 155.32608386, 155.16792671, 155.00985552, 154.85187036, 154.69397131, 154.53615844, 154.37843181, 154.22079152, 154.06323761, 153.90577018, 153.74838929, 153.59109502, 153.43388743, 153.27676659, 153.11973259, 152.96278548, 152.80592534, 152.64915225, 152.49246626, 152.33586746, 152.1793559, 152.02293167, 151.86659483, 151.71034544, 151.55418358, 151.39810932, 151.24212273, 151.08622387, 150.93041281, 150.77468961, 150.61905436, 150.46350711, 150.30804793, 150.15267688, 149.99739405, 149.84219948, 149.68709325, 149.53207542, 149.37714607, 149.22230524, 149.06755302, 148.91288946, 148.75831463, 148.6038286, 148.44943142, 148.29512317, 148.1409039, 147.98677368, 147.83273258, 147.67878065, 147.52491797, 147.37114459, 147.21746057, 147.06386598, 146.91036088, 146.75694533, 146.6036194, 146.45038314, 146.29723661, 146.14417989, 145.99121302, 145.83833607, 145.6855491, 145.53285216, 145.38024533, 145.22772866, 145.0753022, 144.92296602, 144.77072018, 144.61856473, 144.46649973, 144.31452525, 144.16264134, 144.01084805, 143.85914545, 143.70753359, 143.55601254, 143.40458234, 143.25324305, 143.10199474, 142.95083745, 142.79977125, 142.64879618, 142.49791231, 142.34711969, 142.19641837, 142.04580842, 141.89528987, 141.7448628, 141.59452726, 141.44428329, 141.29413095, 141.14407031, 140.9941014, 140.84422428, 140.69443901, 140.54474563, 140.39514421, 140.2456348, 140.09621744, 139.94689218, 139.79765909, 139.64851821, 139.49946959, 139.35051328, 139.20164934, 139.05287782, 138.90419876, 138.75561222, 138.60711824, 138.45871688, 138.31040818, 138.1621922, 138.01406899, 137.86603859, 137.71810105, 137.57025642, 137.42250475, 137.27484609, 137.12728048, 136.97980798, 136.83242862, 136.68514247, 136.53794955, 136.39084993, 136.24384365, 136.09693075, 135.95011129, 135.8033853, 135.65675283, 135.51021393, 135.36376865, 135.21741702, 135.0711591, 134.92499493, 134.77892455, 134.632948, 134.48706534, 134.34127661, 134.19558184, 134.04998109, 133.90447439, 133.7590618, 133.61374334, 133.46851907, 133.32338903, 133.17835325, 133.03341179, 132.88856468, 132.74381197, 132.59915369, 132.45458989, 132.31012061, 132.16574589, 132.02146577, 131.87728029, 131.73318949, 131.58919341, 131.44529209, 131.30148558, 131.1577739, 131.0141571, 130.87063522, 130.7272083, 130.58387637, 130.44063947, 130.29749765, 130.15445093, 130.01149937, 129.86864298, 129.72588182, 129.58321592, 129.44064532, 129.29817005, 129.15579015, 129.01350566, 128.8713166, 128.72922303, 128.58722497, 128.44532246, 128.30351553, 128.16180423, 128.02018858, 127.87866862, 127.73724438, 127.5959159, 127.45468322, 127.31354636, 127.17250536, 127.03156025, 126.89071108, 126.74995786, 126.60930064, 126.46873944, 126.3282743, 126.18790526, 126.04763233, 125.90745557, 125.76737498, 125.62739062, 125.48750251, 125.34771068, 125.20801516, 125.06841599, 124.92891319, 124.78950679, 124.65019683, 124.51098333, 124.37186632, 124.23284584, 124.09392191, 123.95509457, 123.81636384, 123.67772974, 123.53919232, 123.40075159, 123.26240759, 123.12416035, 122.98600988, 122.84795623, 122.70999941, 122.57213946, 122.4343764, 122.29671026, 122.15914106, 122.02166883, 121.8842936, 121.7470154, 121.60983425, 121.47275017, 121.3357632, 121.19887335, 121.06208065, 120.92538514, 120.78878682, 120.65228573, 120.5158819, 120.37957533, 120.24336607, 120.10725414, 119.97123955, 119.83532233, 119.6995025, 119.5637801, 119.42815513, 119.29262763, 119.15719761, 119.0218651, 118.88663012, 118.7514927, 118.61645285, 118.4815106, 118.34666596, 118.21191896, 118.07726962, 117.94271797, 117.80826401, 117.67390778, 117.5396493, 117.40548857, 117.27142563, 117.13746049, 117.00359317, 116.8698237, 116.73615208, 116.60257835, 116.46910252, 116.3357246, 116.20244463, 116.0692626, 115.93617855, 115.8031925, 115.67030445, 115.53751443, 115.40482245, 115.27222853, 115.1397327, 115.00733496, 114.87503533, 114.74283383, 114.61073048, 114.47872529, 114.34681828, 114.21500946, 114.08329885, 113.95168646, 113.82017232, 113.68875643, 113.55743881, 113.42621948, 113.29509845, 113.16407573, 113.03315134, 112.90232529, 112.77159761, 112.64096829, 112.51043735, 112.38000482, 112.24967069, 112.11943499, 111.98929772, 111.85925891, 111.72931856, 111.59947668, 111.46973329, 111.34008839, 111.21054201, 111.08109415, 110.95174482, 110.82249404, 110.69334182, 110.56428816, 110.43533308, 110.30647659, 110.1777187, 110.04905942, 109.92049875, 109.79203672, 109.66367333, 109.53540858, 109.4072425, 109.27917508, 109.15120634, 109.02333628, 108.89556492, 108.76789227, 108.64031832, 108.5128431, 108.3854666, 108.25818884, 108.13100982, 108.00392956, 107.87694805, 107.75006531, 107.62328135, 107.49659616, 107.37000976, 107.24352215, 107.11713335, 106.99084335, 106.86465216, 106.73855979, 106.61256625, 106.48667154, 106.36087566, 106.23517862, 106.10958043, 105.98408108, 105.8586806, 105.73337897, 105.60817621, 105.48307232, 105.3580673, 105.23316116, 105.1083539, 104.98364552, 104.85903603, 104.73452544, 104.61011373, 104.48580093, 104.36158703, 104.23747203, 104.11345593, 103.98953874, 103.86572047, 103.7420011, 103.61838066, 103.49485912, 103.37143651, 103.24811281, 103.12488804, 103.00176218, 102.87873525, 102.75580724, 102.63297816, 102.510248, 102.38761676, 102.26508445, 102.14265107, 102.02031661, 101.89808107, 101.77594446, 101.65390677, 101.53196801, 101.41012816, 101.28838724, 101.16674524, 101.04520215, 100.92375798, 100.80241273, 100.68116639, 100.56001896, 100.43897044, 100.31802082, 100.19717011, 100.0764183, 99.95576539, 99.83521138, 99.71475626, 99.59440003, 99.47414268, 99.35398422, 99.23392463, 99.11396393, 98.99410209, 98.87433912, 98.75467501, 98.63510976, 98.51564337, 98.39627582, 98.27700712, 98.15783726, 98.03876623, 97.91979403, 97.80092066, 97.6821461, 97.56347036, 97.44489342, 97.32641528, 97.20803593, 97.08975537, 96.9715736, 96.85349059, 96.73550636, 96.61762088, 96.49983416, 96.38214619, 96.26455695, 96.14706645, 96.02967467, 95.9123816, 95.79518725, 95.67809159, 95.56109463, 95.44419635, 95.32739674, 95.2106958, 95.09409352, 94.97758989, 94.8611849, 94.74487853, 94.62867079, 94.51256166, 94.39655113, 94.28063919, 94.16482583, 94.04911105, 93.93349483, 93.81797716, 93.70255803, 93.58723743, 93.47201535, 93.35689177, 93.2418667, 93.12694011, 93.012112, 92.89738235, 92.78275115, 92.66821839, 92.55378406, 92.43944815, 92.32521064, 92.21107152, 92.09703078, 91.98308841, 91.86924439, 91.75549871, 91.64185136, 91.52830233, 91.4148516, 91.30149916, 91.18824499, 91.07508908, 90.96203142, 90.84907199, 90.73621079, 90.62344779, 90.51078298, 90.39821634, 90.28574787, 90.17337755, 90.06110535, 89.94893128, 89.83685531, 89.72487742, 89.61299761, 89.50121585, 89.38953213, 89.27794644, 89.16645875, 89.05506906, 88.94377735, 88.83258359, 88.72148778, 88.6104899, 88.49958993, 88.38878785, 88.27808365, 88.1674773, 88.0569688, 87.94655813, 87.83624526, 87.72603019, 87.61591288, 87.50589333, 87.39597152, 87.28614742, 87.17642103, 87.06679232, 86.95726127, 86.84782786, 86.73849209, 86.62925392, 86.52011333, 86.41107032, 86.30212486, 86.19327692, 86.0845265, 85.97587357, 85.86731811, 85.75886011, 85.65049953, 85.54223637, 85.4340706, 85.3260022, 85.21803115, 85.11015743, 85.00238103, 84.89470191, 84.78712005, 84.67963545, 84.57224807, 84.46495789, 84.3577649, 84.25066906, 84.14367037, 84.0367688, 83.92996432, 83.82325691, 83.71664656, 83.61013323, 83.50371691, 83.39739758, 83.29117521, 83.18504978, 83.07902126, 82.97308963, 82.86725488, 82.76151697, 82.65587589, 82.55033161, 82.4448841, 82.33953334, 82.23427932, 82.129122, 82.02406136, 81.91909737, 81.81423002, 81.70945928, 81.60478512, 81.50020752, 81.39572645, 81.2913419, 81.18705383, 81.08286221, 80.97876703, 80.87476827, 80.77086588, 80.66705985, 80.56335015, 80.45973677, 80.35621966, 80.2527988, 80.14947418, 80.04624575, 79.94311351, 79.84007741, 79.73713744, 79.63429356, 79.53154575, 79.42889399, 79.32633824, 79.22387848, 79.12151468, 79.01924681, 78.91707486, 78.81499878, 78.71301855, 78.61113415, 78.50934555, 78.40765271, 78.30605561, 78.20455423, 78.10314852, 78.00183848, 77.90062406, 77.79950524, 77.69848199, 77.59755427, 77.49672208, 77.39598536, 77.2953441, 77.19479826, 77.09434782, 76.99399274, 76.893733, 76.79356856, 76.6934994, 76.59352549, 76.4936468, 76.39386329, 76.29417494, 76.19458172, 76.09508359, 75.99568053, 75.8963725, 75.79715947, 75.69804142, 75.59901832, 75.50009012, 75.4012568, 75.30251834, 75.20387469, 75.10532583, 75.00687172, 74.90851234, 74.81024765, 74.71207762, 74.61400221, 74.51602141, 74.41813516, 74.32034345, 74.22264624, 74.1250435, 74.02753519, 73.93012128, 73.83280174, 73.73557654, 73.63844564, 73.54140901, 73.44446663, 73.34761844, 73.25086443, 73.15420455, 73.05763878, 72.96116708, 72.86478942, 72.76850576, 72.67231607, 72.57622032, 72.48021846, 72.38431048, 72.28849633, 72.19277598, 72.09714939, 72.00161653, 71.90617737, 71.81083187, 71.71557999, 71.62042171, 71.52535698, 71.43038578] }, { "type": "list", "attributes": {}, "value": [ { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [4000, 12] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["x", "rev.x", "y.c1", "rev.y.c1", "y.c2", "rev.y.c2", "y.c3", "rev.y.c3", "cont.c1", "cont.c2", "cont.c3", "cont.sum"] } ] } }, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4000, 3999, 3998, 3997, 3996, 3995, 3994, 3993, 3992, 3991, 3990, 3989, 3988, 3987, 3986, 3985, 3984, 3983, 3982, 3981, 3980, 3979, 3978, 3977, 3976, 3975, 3974, 3973, 3972, 3971, 3970, 3969, 3968, 3967, 3966, 3965, 3964, 3963, 3962, 3961, 3960, 3959, 3958, 3957, 3956, 3955, 3954, 3953, 3952, 3951, 3950, 3949, 3948, 3947, 3946, 3945, 3944, 3943, 3942, 3941, 3940, 3939, 3938, 3937, 3936, 3935, 3934, 3933, 3932, 3931, 3930, 3929, 3928, 3927, 3926, 3925, 3924, 3923, 3922, 3921, 3920, 3919, 3918, 3917, 3916, 3915, 3914, 3913, 3912, 3911, 3910, 3909, 3908, 3907, 3906, 3905, 3904, 3903, 3902, 3901, 3900, 3899, 3898, 3897, 3896, 3895, 3894, 3893, 3892, 3891, 3890, 3889, 3888, 3887, 3886, 3885, 3884, 3883, 3882, 3881, 3880, 3879, 3878, 3877, 3876, 3875, 3874, 3873, 3872, 3871, 3870, 3869, 3868, 3867, 3866, 3865, 3864, 3863, 3862, 3861, 3860, 3859, 3858, 3857, 3856, 3855, 3854, 3853, 3852, 3851, 3850, 3849, 3848, 3847, 3846, 3845, 3844, 3843, 3842, 3841, 3840, 3839, 3838, 3837, 3836, 3835, 3834, 3833, 3832, 3831, 3830, 3829, 3828, 3827, 3826, 3825, 3824, 3823, 3822, 3821, 3820, 3819, 3818, 3817, 3816, 3815, 3814, 3813, 3812, 3811, 3810, 3809, 3808, 3807, 3806, 3805, 3804, 3803, 3802, 3801, 3800, 3799, 3798, 3797, 3796, 3795, 3794, 3793, 3792, 3791, 3790, 3789, 3788, 3787, 3786, 3785, 3784, 3783, 3782, 3781, 3780, 3779, 3778, 3777, 3776, 3775, 3774, 3773, 3772, 3771, 3770, 3769, 3768, 3767, 3766, 3765, 3764, 3763, 3762, 3761, 3760, 3759, 3758, 3757, 3756, 3755, 3754, 3753, 3752, 3751, 3750, 3749, 3748, 3747, 3746, 3745, 3744, 3743, 3742, 3741, 3740, 3739, 3738, 3737, 3736, 3735, 3734, 3733, 3732, 3731, 3730, 3729, 3728, 3727, 3726, 3725, 3724, 3723, 3722, 3721, 3720, 3719, 3718, 3717, 3716, 3715, 3714, 3713, 3712, 3711, 3710, 3709, 3708, 3707, 3706, 3705, 3704, 3703, 3702, 3701, 3700, 3699, 3698, 3697, 3696, 3695, 3694, 3693, 3692, 3691, 3690, 3689, 3688, 3687, 3686, 3685, 3684, 3683, 3682, 3681, 3680, 3679, 3678, 3677, 3676, 3675, 3674, 3673, 3672, 3671, 3670, 3669, 3668, 3667, 3666, 3665, 3664, 3663, 3662, 3661, 3660, 3659, 3658, 3657, 3656, 3655, 3654, 3653, 3652, 3651, 3650, 3649, 3648, 3647, 3646, 3645, 3644, 3643, 3642, 3641, 3640, 3639, 3638, 3637, 3636, 3635, 3634, 3633, 3632, 3631, 3630, 3629, 3628, 3627, 3626, 3625, 3624, 3623, 3622, 3621, 3620, 3619, 3618, 3617, 3616, 3615, 3614, 3613, 3612, 3611, 3610, 3609, 3608, 3607, 3606, 3605, 3604, 3603, 3602, 3601, 3600, 3599, 3598, 3597, 3596, 3595, 3594, 3593, 3592, 3591, 3590, 3589, 3588, 3587, 3586, 3585, 3584, 3583, 3582, 3581, 3580, 3579, 3578, 3577, 3576, 3575, 3574, 3573, 3572, 3571, 3570, 3569, 3568, 3567, 3566, 3565, 3564, 3563, 3562, 3561, 3560, 3559, 3558, 3557, 3556, 3555, 3554, 3553, 3552, 3551, 3550, 3549, 3548, 3547, 3546, 3545, 3544, 3543, 3542, 3541, 3540, 3539, 3538, 3537, 3536, 3535, 3534, 3533, 3532, 3531, 3530, 3529, 3528, 3527, 3526, 3525, 3524, 3523, 3522, 3521, 3520, 3519, 3518, 3517, 3516, 3515, 3514, 3513, 3512, 3511, 3510, 3509, 3508, 3507, 3506, 3505, 3504, 3503, 3502, 3501, 3500, 3499, 3498, 3497, 3496, 3495, 3494, 3493, 3492, 3491, 3490, 3489, 3488, 3487, 3486, 3485, 3484, 3483, 3482, 3481, 3480, 3479, 3478, 3477, 3476, 3475, 3474, 3473, 3472, 3471, 3470, 3469, 3468, 3467, 3466, 3465, 3464, 3463, 3462, 3461, 3460, 3459, 3458, 3457, 3456, 3455, 3454, 3453, 3452, 3451, 3450, 3449, 3448, 3447, 3446, 3445, 3444, 3443, 3442, 3441, 3440, 3439, 3438, 3437, 3436, 3435, 3434, 3433, 3432, 3431, 3430, 3429, 3428, 3427, 3426, 3425, 3424, 3423, 3422, 3421, 3420, 3419, 3418, 3417, 3416, 3415, 3414, 3413, 3412, 3411, 3410, 3409, 3408, 3407, 3406, 3405, 3404, 3403, 3402, 3401, 3400, 3399, 3398, 3397, 3396, 3395, 3394, 3393, 3392, 3391, 3390, 3389, 3388, 3387, 3386, 3385, 3384, 3383, 3382, 3381, 3380, 3379, 3378, 3377, 3376, 3375, 3374, 3373, 3372, 3371, 3370, 3369, 3368, 3367, 3366, 3365, 3364, 3363, 3362, 3361, 3360, 3359, 3358, 3357, 3356, 3355, 3354, 3353, 3352, 3351, 3350, 3349, 3348, 3347, 3346, 3345, 3344, 3343, 3342, 3341, 3340, 3339, 3338, 3337, 3336, 3335, 3334, 3333, 3332, 3331, 3330, 3329, 3328, 3327, 3326, 3325, 3324, 3323, 3322, 3321, 3320, 3319, 3318, 3317, 3316, 3315, 3314, 3313, 3312, 3311, 3310, 3309, 3308, 3307, 3306, 3305, 3304, 3303, 3302, 3301, 3300, 3299, 3298, 3297, 3296, 3295, 3294, 3293, 3292, 3291, 3290, 3289, 3288, 3287, 3286, 3285, 3284, 3283, 3282, 3281, 3280, 3279, 3278, 3277, 3276, 3275, 3274, 3273, 3272, 3271, 3270, 3269, 3268, 3267, 3266, 3265, 3264, 3263, 3262, 3261, 3260, 3259, 3258, 3257, 3256, 3255, 3254, 3253, 3252, 3251, 3250, 3249, 3248, 3247, 3246, 3245, 3244, 3243, 3242, 3241, 3240, 3239, 3238, 3237, 3236, 3235, 3234, 3233, 3232, 3231, 3230, 3229, 3228, 3227, 3226, 3225, 3224, 3223, 3222, 3221, 3220, 3219, 3218, 3217, 3216, 3215, 3214, 3213, 3212, 3211, 3210, 3209, 3208, 3207, 3206, 3205, 3204, 3203, 3202, 3201, 3200, 3199, 3198, 3197, 3196, 3195, 3194, 3193, 3192, 3191, 3190, 3189, 3188, 3187, 3186, 3185, 3184, 3183, 3182, 3181, 3180, 3179, 3178, 3177, 3176, 3175, 3174, 3173, 3172, 3171, 3170, 3169, 3168, 3167, 3166, 3165, 3164, 3163, 3162, 3161, 3160, 3159, 3158, 3157, 3156, 3155, 3154, 3153, 3152, 3151, 3150, 3149, 3148, 3147, 3146, 3145, 3144, 3143, 3142, 3141, 3140, 3139, 3138, 3137, 3136, 3135, 3134, 3133, 3132, 3131, 3130, 3129, 3128, 3127, 3126, 3125, 3124, 3123, 3122, 3121, 3120, 3119, 3118, 3117, 3116, 3115, 3114, 3113, 3112, 3111, 3110, 3109, 3108, 3107, 3106, 3105, 3104, 3103, 3102, 3101, 3100, 3099, 3098, 3097, 3096, 3095, 3094, 3093, 3092, 3091, 3090, 3089, 3088, 3087, 3086, 3085, 3084, 3083, 3082, 3081, 3080, 3079, 3078, 3077, 3076, 3075, 3074, 3073, 3072, 3071, 3070, 3069, 3068, 3067, 3066, 3065, 3064, 3063, 3062, 3061, 3060, 3059, 3058, 3057, 3056, 3055, 3054, 3053, 3052, 3051, 3050, 3049, 3048, 3047, 3046, 3045, 3044, 3043, 3042, 3041, 3040, 3039, 3038, 3037, 3036, 3035, 3034, 3033, 3032, 3031, 3030, 3029, 3028, 3027, 3026, 3025, 3024, 3023, 3022, 3021, 3020, 3019, 3018, 3017, 3016, 3015, 3014, 3013, 3012, 3011, 3010, 3009, 3008, 3007, 3006, 3005, 3004, 3003, 3002, 3001, 3000, 2999, 2998, 2997, 2996, 2995, 2994, 2993, 2992, 2991, 2990, 2989, 2988, 2987, 2986, 2985, 2984, 2983, 2982, 2981, 2980, 2979, 2978, 2977, 2976, 2975, 2974, 2973, 2972, 2971, 2970, 2969, 2968, 2967, 2966, 2965, 2964, 2963, 2962, 2961, 2960, 2959, 2958, 2957, 2956, 2955, 2954, 2953, 2952, 2951, 2950, 2949, 2948, 2947, 2946, 2945, 2944, 2943, 2942, 2941, 2940, 2939, 2938, 2937, 2936, 2935, 2934, 2933, 2932, 2931, 2930, 2929, 2928, 2927, 2926, 2925, 2924, 2923, 2922, 2921, 2920, 2919, 2918, 2917, 2916, 2915, 2914, 2913, 2912, 2911, 2910, 2909, 2908, 2907, 2906, 2905, 2904, 2903, 2902, 2901, 2900, 2899, 2898, 2897, 2896, 2895, 2894, 2893, 2892, 2891, 2890, 2889, 2888, 2887, 2886, 2885, 2884, 2883, 2882, 2881, 2880, 2879, 2878, 2877, 2876, 2875, 2874, 2873, 2872, 2871, 2870, 2869, 2868, 2867, 2866, 2865, 2864, 2863, 2862, 2861, 2860, 2859, 2858, 2857, 2856, 2855, 2854, 2853, 2852, 2851, 2850, 2849, 2848, 2847, 2846, 2845, 2844, 2843, 2842, 2841, 2840, 2839, 2838, 2837, 2836, 2835, 2834, 2833, 2832, 2831, 2830, 2829, 2828, 2827, 2826, 2825, 2824, 2823, 2822, 2821, 2820, 2819, 2818, 2817, 2816, 2815, 2814, 2813, 2812, 2811, 2810, 2809, 2808, 2807, 2806, 2805, 2804, 2803, 2802, 2801, 2800, 2799, 2798, 2797, 2796, 2795, 2794, 2793, 2792, 2791, 2790, 2789, 2788, 2787, 2786, 2785, 2784, 2783, 2782, 2781, 2780, 2779, 2778, 2777, 2776, 2775, 2774, 2773, 2772, 2771, 2770, 2769, 2768, 2767, 2766, 2765, 2764, 2763, 2762, 2761, 2760, 2759, 2758, 2757, 2756, 2755, 2754, 2753, 2752, 2751, 2750, 2749, 2748, 2747, 2746, 2745, 2744, 2743, 2742, 2741, 2740, 2739, 2738, 2737, 2736, 2735, 2734, 2733, 2732, 2731, 2730, 2729, 2728, 2727, 2726, 2725, 2724, 2723, 2722, 2721, 2720, 2719, 2718, 2717, 2716, 2715, 2714, 2713, 2712, 2711, 2710, 2709, 2708, 2707, 2706, 2705, 2704, 2703, 2702, 2701, 2700, 2699, 2698, 2697, 2696, 2695, 2694, 2693, 2692, 2691, 2690, 2689, 2688, 2687, 2686, 2685, 2684, 2683, 2682, 2681, 2680, 2679, 2678, 2677, 2676, 2675, 2674, 2673, 2672, 2671, 2670, 2669, 2668, 2667, 2666, 2665, 2664, 2663, 2662, 2661, 2660, 2659, 2658, 2657, 2656, 2655, 2654, 2653, 2652, 2651, 2650, 2649, 2648, 2647, 2646, 2645, 2644, 2643, 2642, 2641, 2640, 2639, 2638, 2637, 2636, 2635, 2634, 2633, 2632, 2631, 2630, 2629, 2628, 2627, 2626, 2625, 2624, 2623, 2622, 2621, 2620, 2619, 2618, 2617, 2616, 2615, 2614, 2613, 2612, 2611, 2610, 2609, 2608, 2607, 2606, 2605, 2604, 2603, 2602, 2601, 2600, 2599, 2598, 2597, 2596, 2595, 2594, 2593, 2592, 2591, 2590, 2589, 2588, 2587, 2586, 2585, 2584, 2583, 2582, 2581, 2580, 2579, 2578, 2577, 2576, 2575, 2574, 2573, 2572, 2571, 2570, 2569, 2568, 2567, 2566, 2565, 2564, 2563, 2562, 2561, 2560, 2559, 2558, 2557, 2556, 2555, 2554, 2553, 2552, 2551, 2550, 2549, 2548, 2547, 2546, 2545, 2544, 2543, 2542, 2541, 2540, 2539, 2538, 2537, 2536, 2535, 2534, 2533, 2532, 2531, 2530, 2529, 2528, 2527, 2526, 2525, 2524, 2523, 2522, 2521, 2520, 2519, 2518, 2517, 2516, 2515, 2514, 2513, 2512, 2511, 2510, 2509, 2508, 2507, 2506, 2505, 2504, 2503, 2502, 2501, 2500, 2499, 2498, 2497, 2496, 2495, 2494, 2493, 2492, 2491, 2490, 2489, 2488, 2487, 2486, 2485, 2484, 2483, 2482, 2481, 2480, 2479, 2478, 2477, 2476, 2475, 2474, 2473, 2472, 2471, 2470, 2469, 2468, 2467, 2466, 2465, 2464, 2463, 2462, 2461, 2460, 2459, 2458, 2457, 2456, 2455, 2454, 2453, 2452, 2451, 2450, 2449, 2448, 2447, 2446, 2445, 2444, 2443, 2442, 2441, 2440, 2439, 2438, 2437, 2436, 2435, 2434, 2433, 2432, 2431, 2430, 2429, 2428, 2427, 2426, 2425, 2424, 2423, 2422, 2421, 2420, 2419, 2418, 2417, 2416, 2415, 2414, 2413, 2412, 2411, 2410, 2409, 2408, 2407, 2406, 2405, 2404, 2403, 2402, 2401, 2400, 2399, 2398, 2397, 2396, 2395, 2394, 2393, 2392, 2391, 2390, 2389, 2388, 2387, 2386, 2385, 2384, 2383, 2382, 2381, 2380, 2379, 2378, 2377, 2376, 2375, 2374, 2373, 2372, 2371, 2370, 2369, 2368, 2367, 2366, 2365, 2364, 2363, 2362, 2361, 2360, 2359, 2358, 2357, 2356, 2355, 2354, 2353, 2352, 2351, 2350, 2349, 2348, 2347, 2346, 2345, 2344, 2343, 2342, 2341, 2340, 2339, 2338, 2337, 2336, 2335, 2334, 2333, 2332, 2331, 2330, 2329, 2328, 2327, 2326, 2325, 2324, 2323, 2322, 2321, 2320, 2319, 2318, 2317, 2316, 2315, 2314, 2313, 2312, 2311, 2310, 2309, 2308, 2307, 2306, 2305, 2304, 2303, 2302, 2301, 2300, 2299, 2298, 2297, 2296, 2295, 2294, 2293, 2292, 2291, 2290, 2289, 2288, 2287, 2286, 2285, 2284, 2283, 2282, 2281, 2280, 2279, 2278, 2277, 2276, 2275, 2274, 2273, 2272, 2271, 2270, 2269, 2268, 2267, 2266, 2265, 2264, 2263, 2262, 2261, 2260, 2259, 2258, 2257, 2256, 2255, 2254, 2253, 2252, 2251, 2250, 2249, 2248, 2247, 2246, 2245, 2244, 2243, 2242, 2241, 2240, 2239, 2238, 2237, 2236, 2235, 2234, 2233, 2232, 2231, 2230, 2229, 2228, 2227, 2226, 2225, 2224, 2223, 2222, 2221, 2220, 2219, 2218, 2217, 2216, 2215, 2214, 2213, 2212, 2211, 2210, 2209, 2208, 2207, 2206, 2205, 2204, 2203, 2202, 2201, 2200, 2199, 2198, 2197, 2196, 2195, 2194, 2193, 2192, 2191, 2190, 2189, 2188, 2187, 2186, 2185, 2184, 2183, 2182, 2181, 2180, 2179, 2178, 2177, 2176, 2175, 2174, 2173, 2172, 2171, 2170, 2169, 2168, 2167, 2166, 2165, 2164, 2163, 2162, 2161, 2160, 2159, 2158, 2157, 2156, 2155, 2154, 2153, 2152, 2151, 2150, 2149, 2148, 2147, 2146, 2145, 2144, 2143, 2142, 2141, 2140, 2139, 2138, 2137, 2136, 2135, 2134, 2133, 2132, 2131, 2130, 2129, 2128, 2127, 2126, 2125, 2124, 2123, 2122, 2121, 2120, 2119, 2118, 2117, 2116, 2115, 2114, 2113, 2112, 2111, 2110, 2109, 2108, 2107, 2106, 2105, 2104, 2103, 2102, 2101, 2100, 2099, 2098, 2097, 2096, 2095, 2094, 2093, 2092, 2091, 2090, 2089, 2088, 2087, 2086, 2085, 2084, 2083, 2082, 2081, 2080, 2079, 2078, 2077, 2076, 2075, 2074, 2073, 2072, 2071, 2070, 2069, 2068, 2067, 2066, 2065, 2064, 2063, 2062, 2061, 2060, 2059, 2058, 2057, 2056, 2055, 2054, 2053, 2052, 2051, 2050, 2049, 2048, 2047, 2046, 2045, 2044, 2043, 2042, 2041, 2040, 2039, 2038, 2037, 2036, 2035, 2034, 2033, 2032, 2031, 2030, 2029, 2028, 2027, 2026, 2025, 2024, 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990, 1989, 1988, 1987, 1986, 1985, 1984, 1983, 1982, 1981, 1980, 1979, 1978, 1977, 1976, 1975, 1974, 1973, 1972, 1971, 1970, 1969, 1968, 1967, 1966, 1965, 1964, 1963, 1962, 1961, 1960, 1959, 1958, 1957, 1956, 1955, 1954, 1953, 1952, 1951, 1950, 1949, 1948, 1947, 1946, 1945, 1944, 1943, 1942, 1941, 1940, 1939, 1938, 1937, 1936, 1935, 1934, 1933, 1932, 1931, 1930, 1929, 1928, 1927, 1926, 1925, 1924, 1923, 1922, 1921, 1920, 1919, 1918, 1917, 1916, 1915, 1914, 1913, 1912, 1911, 1910, 1909, 1908, 1907, 1906, 1905, 1904, 1903, 1902, 1901, 1900, 1899, 1898, 1897, 1896, 1895, 1894, 1893, 1892, 1891, 1890, 1889, 1888, 1887, 1886, 1885, 1884, 1883, 1882, 1881, 1880, 1879, 1878, 1877, 1876, 1875, 1874, 1873, 1872, 1871, 1870, 1869, 1868, 1867, 1866, 1865, 1864, 1863, 1862, 1861, 1860, 1859, 1858, 1857, 1856, 1855, 1854, 1853, 1852, 1851, 1850, 1849, 1848, 1847, 1846, 1845, 1844, 1843, 1842, 1841, 1840, 1839, 1838, 1837, 1836, 1835, 1834, 1833, 1832, 1831, 1830, 1829, 1828, 1827, 1826, 1825, 1824, 1823, 1822, 1821, 1820, 1819, 1818, 1817, 1816, 1815, 1814, 1813, 1812, 1811, 1810, 1809, 1808, 1807, 1806, 1805, 1804, 1803, 1802, 1801, 1800, 1799, 1798, 1797, 1796, 1795, 1794, 1793, 1792, 1791, 1790, 1789, 1788, 1787, 1786, 1785, 1784, 1783, 1782, 1781, 1780, 1779, 1778, 1777, 1776, 1775, 1774, 1773, 1772, 1771, 1770, 1769, 1768, 1767, 1766, 1765, 1764, 1763, 1762, 1761, 1760, 1759, 1758, 1757, 1756, 1755, 1754, 1753, 1752, 1751, 1750, 1749, 1748, 1747, 1746, 1745, 1744, 1743, 1742, 1741, 1740, 1739, 1738, 1737, 1736, 1735, 1734, 1733, 1732, 1731, 1730, 1729, 1728, 1727, 1726, 1725, 1724, 1723, 1722, 1721, 1720, 1719, 1718, 1717, 1716, 1715, 1714, 1713, 1712, 1711, 1710, 1709, 1708, 1707, 1706, 1705, 1704, 1703, 1702, 1701, 1700, 1699, 1698, 1697, 1696, 1695, 1694, 1693, 1692, 1691, 1690, 1689, 1688, 1687, 1686, 1685, 1684, 1683, 1682, 1681, 1680, 1679, 1678, 1677, 1676, 1675, 1674, 1673, 1672, 1671, 1670, 1669, 1668, 1667, 1666, 1665, 1664, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653, 1652, 1651, 1650, 1649, 1648, 1647, 1646, 1645, 1644, 1643, 1642, 1641, 1640, 1639, 1638, 1637, 1636, 1635, 1634, 1633, 1632, 1631, 1630, 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1619, 1618, 1617, 1616, 1615, 1614, 1613, 1612, 1611, 1610, 1609, 1608, 1607, 1606, 1605, 1604, 1603, 1602, 1601, 1600, 1599, 1598, 1597, 1596, 1595, 1594, 1593, 1592, 1591, 1590, 1589, 1588, 1587, 1586, 1585, 1584, 1583, 1582, 1581, 1580, 1579, 1578, 1577, 1576, 1575, 1574, 1573, 1572, 1571, 1570, 1569, 1568, 1567, 1566, 1565, 1564, 1563, 1562, 1561, 1560, 1559, 1558, 1557, 1556, 1555, 1554, 1553, 1552, 1551, 1550, 1549, 1548, 1547, 1546, 1545, 1544, 1543, 1542, 1541, 1540, 1539, 1538, 1537, 1536, 1535, 1534, 1533, 1532, 1531, 1530, 1529, 1528, 1527, 1526, 1525, 1524, 1523, 1522, 1521, 1520, 1519, 1518, 1517, 1516, 1515, 1514, 1513, 1512, 1511, 1510, 1509, 1508, 1507, 1506, 1505, 1504, 1503, 1502, 1501, 1500, 1499, 1498, 1497, 1496, 1495, 1494, 1493, 1492, 1491, 1490, 1489, 1488, 1487, 1486, 1485, 1484, 1483, 1482, 1481, 1480, 1479, 1478, 1477, 1476, 1475, 1474, 1473, 1472, 1471, 1470, 1469, 1468, 1467, 1466, 1465, 1464, 1463, 1462, 1461, 1460, 1459, 1458, 1457, 1456, 1455, 1454, 1453, 1452, 1451, 1450, 1449, 1448, 1447, 1446, 1445, 1444, 1443, 1442, 1441, 1440, 1439, 1438, 1437, 1436, 1435, 1434, 1433, 1432, 1431, 1430, 1429, 1428, 1427, 1426, 1425, 1424, 1423, 1422, 1421, 1420, 1419, 1418, 1417, 1416, 1415, 1414, 1413, 1412, 1411, 1410, 1409, 1408, 1407, 1406, 1405, 1404, 1403, 1402, 1401, 1400, 1399, 1398, 1397, 1396, 1395, 1394, 1393, 1392, 1391, 1390, 1389, 1388, 1387, 1386, 1385, 1384, 1383, 1382, 1381, 1380, 1379, 1378, 1377, 1376, 1375, 1374, 1373, 1372, 1371, 1370, 1369, 1368, 1367, 1366, 1365, 1364, 1363, 1362, 1361, 1360, 1359, 1358, 1357, 1356, 1355, 1354, 1353, 1352, 1351, 1350, 1349, 1348, 1347, 1346, 1345, 1344, 1343, 1342, 1341, 1340, 1339, 1338, 1337, 1336, 1335, 1334, 1333, 1332, 1331, 1330, 1329, 1328, 1327, 1326, 1325, 1324, 1323, 1322, 1321, 1320, 1319, 1318, 1317, 1316, 1315, 1314, 1313, 1312, 1311, 1310, 1309, 1308, 1307, 1306, 1305, 1304, 1303, 1302, 1301, 1300, 1299, 1298, 1297, 1296, 1295, 1294, 1293, 1292, 1291, 1290, 1289, 1288, 1287, 1286, 1285, 1284, 1283, 1282, 1281, 1280, 1279, 1278, 1277, 1276, 1275, 1274, 1273, 1272, 1271, 1270, 1269, 1268, 1267, 1266, 1265, 1264, 1263, 1262, 1261, 1260, 1259, 1258, 1257, 1256, 1255, 1254, 1253, 1252, 1251, 1250, 1249, 1248, 1247, 1246, 1245, 1244, 1243, 1242, 1241, 1240, 1239, 1238, 1237, 1236, 1235, 1234, 1233, 1232, 1231, 1230, 1229, 1228, 1227, 1226, 1225, 1224, 1223, 1222, 1221, 1220, 1219, 1218, 1217, 1216, 1215, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1207, 1206, 1205, 1204, 1203, 1202, 1201, 1200, 1199, 1198, 1197, 1196, 1195, 1194, 1193, 1192, 1191, 1190, 1189, 1188, 1187, 1186, 1185, 1184, 1183, 1182, 1181, 1180, 1179, 1178, 1177, 1176, 1175, 1174, 1173, 1172, 1171, 1170, 1169, 1168, 1167, 1166, 1165, 1164, 1163, 1162, 1161, 1160, 1159, 1158, 1157, 1156, 1155, 1154, 1153, 1152, 1151, 1150, 1149, 1148, 1147, 1146, 1145, 1144, 1143, 1142, 1141, 1140, 1139, 1138, 1137, 1136, 1135, 1134, 1133, 1132, 1131, 1130, 1129, 1128, 1127, 1126, 1125, 1124, 1123, 1122, 1121, 1120, 1119, 1118, 1117, 1116, 1115, 1114, 1113, 1112, 1111, 1110, 1109, 1108, 1107, 1106, 1105, 1104, 1103, 1102, 1101, 1100, 1099, 1098, 1097, 1096, 1095, 1094, 1093, 1092, 1091, 1090, 1089, 1088, 1087, 1086, 1085, 1084, 1083, 1082, 1081, 1080, 1079, 1078, 1077, 1076, 1075, 1074, 1073, 1072, 1071, 1070, 1069, 1068, 1067, 1066, 1065, 1064, 1063, 1062, 1061, 1060, 1059, 1058, 1057, 1056, 1055, 1054, 1053, 1052, 1051, 1050, 1049, 1048, 1047, 1046, 1045, 1044, 1043, 1042, 1041, 1040, 1039, 1038, 1037, 1036, 1035, 1034, 1033, 1032, 1031, 1030, 1029, 1028, 1027, 1026, 1025, 1024, 1023, 1022, 1021, 1020, 1019, 1018, 1017, 1016, 1015, 1014, 1013, 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1005, 1004, 1003, 1002, 1001, 1000, 999, 998, 997, 996, 995, 994, 993, 992, 991, 990, 989, 988, 987, 986, 985, 984, 983, 982, 981, 980, 979, 978, 977, 976, 975, 974, 973, 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960, 959, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945, 944, 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928, 927, 926, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911, 910, 909, 908, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894, 893, 892, 891, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 879, 878, 877, 876, 875, 874, 873, 872, 871, 870, 869, 868, 867, 866, 865, 864, 863, 862, 861, 860, 859, 858, 857, 856, 855, 854, 853, 852, 851, 850, 849, 848, 847, 846, 845, 844, 843, 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, 824, 823, 822, 821, 820, 819, 818, 817, 816, 815, 814, 813, 812, 811, 810, 809, 808, 807, 806, 805, 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999998, 99.99999998, 99.99999998, 99.99999997, 99.99999997, 99.99999997, 99.99999996, 99.99999996, 99.99999995, 99.99999994, 99.99999993, 99.99999992, 99.99999991, 99.9999999, 99.99999988, 99.99999987, 99.99999985, 99.99999982, 99.9999998, 99.99999977, 99.99999974, 99.9999997, 99.99999965, 99.9999996, 99.99999955, 99.99999948, 99.99999941, 99.99999933, 99.99999923, 99.99999912, 99.999999, 99.99999886, 99.9999987, 99.99999852, 99.99999832, 99.99999808, 99.99999782, 99.99999752, 99.99999719, 99.9999968, 99.99999637, 99.99999588, 99.99999533, 99.9999947, 99.99999399, 99.99999319, 99.99999229, 99.99999127, 99.99999012, 99.99998883, 99.99998737, 99.99998572, 99.99998387, 99.99998179, 99.99997944, 99.9999768, 99.99997384, 99.9999705, 99.99996676, 99.99996256, 99.99995784, 99.99995255, 99.99994662, 99.99993997, 99.99993253, 99.99992419, 99.99991485, 99.99990441, 99.99989272, 99.99987967, 99.99986508, 99.99984878, 99.99983058, 99.99981028, 99.99978763, 99.99976238, 99.99973423, 99.99970288, 99.99966796, 99.9996291, 99.99958586, 99.99953777, 99.99948431, 99.99942492, 99.99935894, 99.9992857, 99.99920443, 99.99911427, 99.99901431, 99.99890352, 99.9987808, 99.9986449, 99.99849448, 99.99832807, 99.99814403, 99.9979406, 99.99771582, 99.99746756, 99.99719349, 99.99689105, 99.99655747, 99.99618968, 99.99578435, 99.99533785, 99.99484621, 99.9943051, 99.9937098, 99.99305518, 99.99233562, 99.99154503, 99.99067679, 99.98972367, 99.98867785, 99.98753079, 99.98627325, 99.98489519, 99.98338572, 99.98173303, 99.97992433, 99.97794575, 99.9757823, 99.97341772, 99.97083447, 99.96801356, 99.96493448, 99.96157509, 99.95791148, 99.95391787, 99.94956647, 99.94482733, 99.93966818, 99.93405431, 99.92794836, 99.92131017, 99.91409657, 99.90626121, 99.89775433, 99.88852254, 99.87850861, 99.8676512, 99.85588463, 99.84313858, 99.82933787, 99.81440211, 99.7982454, 99.78077606, 99.76189626, 99.74150166, 99.7194811, 99.69571622, 99.67008105, 99.64244165, 99.61265567, 99.58057198, 99.54603022, 99.50886036, 99.46888229, 99.42590534, 99.37972785, 99.33013672, 99.27690693, 99.21980113, 99.15856918, 99.0929477, 99.02265966, 98.94741397, 98.86690509, 98.78081268, 98.68880124, 98.59051985, 98.48560189, 98.37366482, 98.25431008, 98.12712296, 97.9916726, 97.84751203, 97.69417836, 97.531193, 97.35806202, 97.1742766, 96.9793137, 96.77263667, 96.55369626, 96.32193156, 96.07677122, 95.81763485, 95.54393454, 95.25507662, 94.9504636, 94.62949627, 94.29157609, 93.93610769, 93.56250166, 93.17017743, 92.75856648, 92.32711561, 91.87529046, 91.40257919, 90.9084962, 90.39258611, 89.85442772, 89.29363808, 88.70987657, 88.10284898, 87.47231152, 86.81807474, 86.14000735, 85.43803978, 84.71216756, 83.96245441, 83.18903495, 82.3921171, 81.57198398, 80.72899537, 79.86358869, 78.97627939, 78.06766079, 77.13840331, 76.18925314, 75.22103024, 74.23462578, 73.23099893, 72.21117313, 71.1762318, 70.12731346, 69.06560651, 67.9923435, 66.90879509, 65.81626369, 64.7160769, 63.6095808, 62.49813314, 61.3830965, 60.26583159, 59.14769062, 58.03001083, 56.91410843, 55.80127267, 54.69276039, 53.58979096, 52.49354163, 51.40514337, 50.32567721, 49.25617104, 48.19759697, 47.1508692, 46.11684228, 45.09631004, 44.0900048, 43.09859714, 42.12269608, 41.16284956, 40.2195454, 39.29321246, 38.3842222, 37.49289037, 36.61947905, 35.76419875, 34.92721073, 34.10862946, 33.30852507, 32.52692599, 31.7638215, 31.0191644, 30.29287361, 29.58483673, 28.89491263, 28.2229339, 27.56870928, 26.93202598, 26.31265194, 25.71033796, 25.12481976, 24.55581994, 24.00304975, 23.4662109, 22.94499713, 22.43909575, 21.94818901, 21.47195547, 21.01007113, 20.56221061, 20.12804811, 19.70725838, 19.29951754, 18.90450385, 18.52189839, 18.15138569, 17.79265426, 17.44539708, 17.10931204, 16.7841023, 16.46947659, 16.16514955, 15.87084187, 15.58628056, 15.31119907, 15.0453374, 14.78844223, 14.54026696, 14.30057177, 14.06912359, 13.84569619, 13.63007005, 13.42203243, 13.22137727, 13.02790511, 12.84142309, 12.6617448, 12.48869023, 12.32208569, 12.16176368, 12.00756281, 11.85932768, 11.71690879, 11.58016242, 11.44895052, 11.3231406, 11.20260563, 11.0872239, 10.97687897, 10.87145948, 10.77085913, 10.67497653, 10.58371509, 10.49698296, 10.41469291, 10.33676225, 10.26311274, 10.19367048, 10.12836588, 10.06713355, 10.00991223, 9.95664471, 9.9072778, 9.86176223, 9.82005263, 9.78210743, 9.74788886, 9.71736287, 9.6904991, 9.66727086, 9.64765508, 9.63163227, 9.61918655, 9.61030556, 9.60498048, 9.60498048, 9.61030556, 9.61918655, 9.63163227, 9.64765508, 9.66727086, 9.6904991, 9.71736287, 9.74788886, 9.78210743, 9.82005263, 9.86176223, 9.9072778, 9.95664471, 10.00991223, 10.06713355, 10.12836588, 10.19367048, 10.26311274, 10.33676225, 10.41469291, 10.49698296, 10.58371509, 10.67497653, 10.77085913, 10.87145948, 10.97687897, 11.0872239, 11.20260563, 11.3231406, 11.44895052, 11.58016242, 11.71690879, 11.85932768, 12.00756281, 12.16176368, 12.32208569, 12.48869023, 12.6617448, 12.84142309, 13.02790511, 13.22137727, 13.42203243, 13.63007005, 13.84569619, 14.06912359, 14.30057177, 14.54026696, 14.78844223, 15.0453374, 15.31119907, 15.58628056, 15.87084187, 16.16514955, 16.46947659, 16.7841023, 17.10931204, 17.44539708, 17.79265426, 18.15138569, 18.52189839, 18.90450385, 19.29951754, 19.70725838, 20.12804811, 20.56221061, 21.01007113, 21.47195547, 21.94818901, 22.43909575, 22.94499713, 23.4662109, 24.00304975, 24.55581994, 25.12481976, 25.71033796, 26.31265194, 26.93202598, 27.56870928, 28.2229339, 28.89491263, 29.58483673, 30.29287361, 31.0191644, 31.7638215, 32.52692599, 33.30852507, 34.10862946, 34.92721073, 35.76419875, 36.61947905, 37.49289037, 38.3842222, 39.29321246, 40.2195454, 41.16284956, 42.12269608, 43.09859714, 44.0900048, 45.09631004, 46.11684228, 47.1508692, 48.19759697, 49.25617104, 50.32567721, 51.40514337, 52.49354163, 53.58979096, 54.69276039, 55.80127267, 56.91410843, 58.03001083, 59.14769062, 60.26583159, 61.3830965, 62.49813314, 63.6095808, 64.7160769, 65.81626369, 66.90879509, 67.9923435, 69.06560651, 70.12731346, 71.1762318, 72.21117313, 73.23099893, 74.23462578, 75.22103024, 76.18925314, 77.13840331, 78.06766079, 78.97627939, 79.86358869, 80.72899537, 81.57198398, 82.3921171, 83.18903495, 83.96245441, 84.71216756, 85.43803978, 86.14000735, 86.81807474, 87.47231152, 88.10284898, 88.70987657, 89.29363808, 89.85442772, 90.39258611, 90.9084962, 91.40257919, 91.87529046, 92.32711561, 92.75856648, 93.17017743, 93.56250166, 93.93610769, 94.29157609, 94.62949627, 94.9504636, 95.25507662, 95.54393454, 95.81763485, 96.07677122, 96.32193156, 96.55369626, 96.77263667, 96.9793137, 97.1742766, 97.35806202, 97.531193, 97.69417836, 97.84751203, 97.9916726, 98.12712296, 98.25431008, 98.37366482, 98.48560189, 98.59051985, 98.68880124, 98.78081268, 98.86690509, 98.94741397, 99.02265966, 99.0929477, 99.15856918, 99.21980113, 99.27690693, 99.33013672, 99.37972785, 99.42590534, 99.46888229, 99.50886036, 99.54603022, 99.58057198, 99.61265567, 99.64244165, 99.67008105, 99.69571622, 99.7194811, 99.74150166, 99.76189626, 99.78077606, 99.7982454, 99.81440211, 99.82933787, 99.84313858, 99.85588463, 99.8676512, 99.87850861, 99.88852254, 99.89775433, 99.90626121, 99.91409657, 99.92131017, 99.92794836, 99.93405431, 99.93966818, 99.94482733, 99.94956647, 99.95391787, 99.95791148, 99.96157509, 99.96493448, 99.96801356, 99.97083447, 99.97341772, 99.9757823, 99.97794575, 99.97992433, 99.98173303, 99.98338572, 99.98489519, 99.98627325, 99.98753079, 99.98867785, 99.98972367, 99.99067679, 99.99154503, 99.99233562, 99.99305518, 99.9937098, 99.9943051, 99.99484621, 99.99533785, 99.99578435, 99.99618968, 99.99655747, 99.99689105, 99.99719349, 99.99746756, 99.99771582, 99.9979406, 99.99814403, 99.99832807, 99.99849448, 99.9986449, 99.9987808, 99.99890352, 99.99901431, 99.99911427, 99.99920443, 99.9992857, 99.99935894, 99.99942492, 99.99948431, 99.99953777, 99.99958586, 99.9996291, 99.99966796, 99.99970288, 99.99973423, 99.99976238, 99.99978763, 99.99981028, 99.99983058, 99.99984878, 99.99986508, 99.99987967, 99.99989272, 99.99990441, 99.99991485, 99.99992419, 99.99993253, 99.99993997, 99.99994662, 99.99995255, 99.99995784, 99.99996256, 99.99996676, 99.9999705, 99.99997384, 99.9999768, 99.99997944, 99.99998179, 99.99998387, 99.99998572, 99.99998737, 99.99998883, 99.99999012, 99.99999127, 99.99999229, 99.99999319, 99.99999399, 99.9999947, 99.99999533, 99.99999588, 99.99999637, 99.9999968, 99.99999719, 99.99999752, 99.99999782, 99.99999808, 99.99999832, 99.99999852, 99.9999987, 99.99999886, 99.999999, 99.99999912, 99.99999923, 99.99999933, 99.99999941, 99.99999948, 99.99999955, 99.9999996, 99.99999965, 99.9999997, 99.99999974, 99.99999977, 99.9999998, 99.99999982, 99.99999985, 99.99999987, 99.99999988, 99.9999999, 99.99999991, 99.99999992, 99.99999993, 99.99999994, 99.99999995, 99.99999996, 99.99999996, 99.99999997, 99.99999997, 99.99999997, 99.99999998, 99.99999998, 99.99999998, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999991, 99.99999991, 99.99999991, 99.9999999, 99.9999999, 99.9999999, 99.9999999, 99.99999989, 99.99999989, 99.99999989, 99.99999988, 99.99999988, 99.99999987, 99.99999987, 99.99999987, 99.99999986, 99.99999986, 99.99999985, 99.99999985, 99.99999984, 99.99999984, 99.99999983, 99.99999983, 99.99999982, 99.99999982, 99.99999981, 99.99999981, 99.9999998, 99.9999998, 99.99999979, 99.99999978, 99.99999978, 99.99999977, 99.99999976, 99.99999976, 99.99999975, 99.99999974, 99.99999973, 99.99999973, 99.99999972, 99.99999971, 99.9999997, 99.99999969, 99.99999968, 99.99999967, 99.99999966, 99.99999965, 99.99999964, 99.99999963, 99.99999962, 99.99999961, 99.9999996, 99.99999958, 99.99999957, 99.99999956, 99.99999955, 99.99999953, 99.99999952, 99.9999995, 99.99999949, 99.99999947, 99.99999946, 99.99999944, 99.99999942, 99.99999941, 99.99999939, 99.99999937, 99.99999935, 99.99999933, 99.99999931, 99.99999929, 99.99999927, 99.99999925, 99.99999923, 99.99999921, 99.99999918, 99.99999916, 99.99999914, 99.99999911, 99.99999908, 99.99999906, 99.99999903, 99.999999, 99.99999897, 99.99999894, 99.99999891, 99.99999888, 99.99999885, 99.99999881, 99.99999878, 99.99999874, 99.99999871, 99.99999867, 99.99999863, 99.99999859, 99.99999855, 99.99999851, 99.99999847, 99.99999842, 99.99999838, 99.99999833, 99.99999828, 99.99999823, 99.99999818, 99.99999813, 99.99999808, 99.99999802, 99.99999796, 99.99999791, 99.99999785, 99.99999779, 99.99999772, 99.99999766, 99.99999759, 99.99999752, 99.99999745, 99.99999738, 99.9999973, 99.99999723, 99.99999715, 99.99999707, 99.99999699, 99.9999969, 99.99999681, 99.99999672, 99.99999663, 99.99999654, 99.99999644, 99.99999634, 99.99999624, 99.99999613, 99.99999602, 99.99999591, 99.9999958, 99.99999568, 99.99999556, 99.99999543, 99.99999531, 99.99999518, 99.99999504, 99.9999949, 99.99999476, 99.99999462, 99.99999447, 99.99999431, 99.99999416, 99.99999399, 99.99999383, 99.99999366, 99.99999348, 99.9999933, 99.99999312, 99.99999293, 99.99999273, 99.99999253, 99.99999233, 99.99999212, 99.9999919, 99.99999168, 99.99999145, 99.99999122, 99.99999098, 99.99999073, 99.99999048, 99.99999022, 99.99998996, 99.99998968, 99.9999894, 99.99998912, 99.99998882, 99.99998852, 99.99998821, 99.99998789, 99.99998756, 99.99998723, 99.99998688, 99.99998653, 99.99998616, 99.99998579, 99.99998541, 99.99998502, 99.99998462, 99.9999842, 99.99998378, 99.99998335, 99.9999829, 99.99998245, 99.99998198, 99.9999815, 99.99998101, 99.9999805, 99.99997998, 99.99997945, 99.9999789, 99.99997834, 99.99997777, 99.99997718, 99.99997658, 99.99997596, 99.99997533, 99.99997468, 99.99997401, 99.99997333, 99.99997262, 99.9999719, 99.99997117, 99.99997041, 99.99996964, 99.99996884, 99.99996803, 99.99996719, 99.99996633, 99.99996546, 99.99996456, 99.99996363, 99.99996269, 99.99996172, 99.99996073, 99.99995971, 99.99995866, 99.99995759, 99.9999565, 99.99995537, 99.99995422, 99.99995304, 99.99995183, 99.99995059, 99.99994932, 99.99994802, 99.99994668, 99.99994532, 99.99994392, 99.99994248, 99.99994101, 99.9999395, 99.99993796, 99.99993638, 99.99993476, 99.9999331, 99.9999314, 99.99992965, 99.99992787, 99.99992604, 99.99992417, 99.99992225, 99.99992028, 99.99991827, 99.99991621, 99.99991409, 99.99991193, 99.99990972, 99.99990745, 99.99990512, 99.99990274, 99.9999003, 99.99989781, 99.99989525, 99.99989263, 99.99988995, 99.99988721, 99.9998844, 99.99988152, 99.99987857, 99.99987556, 99.99987247, 99.99986931, 99.99986607, 99.99986275, 99.99985936, 99.99985589, 99.99985233, 99.99984869, 99.99984496, 99.99984115, 99.99983724, 99.99983325, 99.99982916, 99.99982497, 99.99982068, 99.9998163, 99.99981181, 99.99980722, 99.99980251, 99.9997977, 99.99979278, 99.99978774, 99.99978259, 99.99977731, 99.99977191, 99.99976639, 99.99976073, 99.99975495, 99.99974903, 99.99974298, 99.99973679, 99.99973045, 99.99972397, 99.99971734, 99.99971055, 99.99970361, 99.99969651, 99.99968925, 99.99968182, 99.99967422, 99.99966645, 99.9996585, 99.99965037, 99.99964206, 99.99963355, 99.99962485, 99.99961596, 99.99960686, 99.99959756, 99.99958804, 99.99957832, 99.99956837, 99.9995582, 99.99954779, 99.99953716, 99.99952628, 99.99951517, 99.9995038, 99.99949218, 99.99948029, 99.99946814, 99.99945573, 99.99944303, 99.99943005, 99.99941678, 99.99940322, 99.99938936, 99.99937519, 99.9993607, 99.9993459, 99.99933077, 99.9993153, 99.99929949, 99.99928334, 99.99926683, 99.99924996, 99.99923271, 99.99921509, 99.99919709, 99.99917869, 99.99915989, 99.99914067, 99.99912104, 99.99910098, 99.99908049, 99.99905955, 99.99903816, 99.9990163, 99.99899397, 99.99897116, 99.99894785, 99.99892404, 99.99889972, 99.99887488, 99.9988495, 99.99882358, 99.9987971, 99.99877005, 99.99874243, 99.99871422, 99.9986854, 99.99865597, 99.99862591, 99.99859522, 99.99856387, 99.99853186, 99.99849917, 99.99846578, 99.9984317, 99.99839689, 99.99836135, 99.99832506, 99.998288, 99.99825017, 99.99821154, 99.99817211, 99.99813185, 99.99809074, 99.99804878, 99.99800595, 99.99796222, 99.99791758, 99.99787201, 99.9978255, 99.99777802, 99.99772956, 99.9976801, 99.99762961, 99.99757809, 99.9975255, 99.99747183, 99.99741706, 99.99736116, 99.99730412, 99.9972459, 99.9971865, 99.99712588, 99.99706403, 99.99700092, 99.99693652, 99.99687081, 99.99680377, 99.99673537, 99.99666559, 99.99659439, 99.99652175, 99.99644765, 99.99637206, 99.99629494, 99.99621627, 99.99613603, 99.99605418, 99.99597068, 99.99588552, 99.99579866, 99.99571006, 99.9956197, 99.99552754, 99.99543355, 99.99533769, 99.99523993, 99.99514024, 99.99503858, 99.99493491, 99.99482919, 99.9947214, 99.99461148, 99.99449941, 99.99438513, 99.99426862, 99.99414982, 99.99402871, 99.99390523, 99.99377934, 99.99365101, 99.99352018, 99.9933868, 99.99325085, 99.99311226, 99.99297099, 99.99282699, 99.99268021, 99.99253061, 99.99237813, 99.99222272, 99.99206432, 99.99190289, 99.99173838, 99.99157072, 99.99139986, 99.99122574, 99.99104831, 99.9908675, 99.99068327, 99.99049554, 99.99030426, 99.99010936, 99.98991078, 99.98970845, 99.98950232, 99.98929231, 99.98907836, 99.98886039, 99.98863835, 99.98841215, 99.98818172, 99.987947, 99.9877079, 99.98746436, 99.98721629, 99.98696363, 99.98670628, 99.98644417, 99.98617722, 99.98590535, 99.98562847, 99.98534649, 99.98505933, 99.98476691, 99.98446913, 99.9841659, 99.98385713, 99.98354273, 99.9832226, 99.98289665, 99.98256478, 99.98222689, 99.98188287, 99.98153264, 99.98117608, 99.98081308, 99.98044355, 99.98006737, 99.97968444, 99.97929463, 99.97889785, 99.97849397, 99.97808288, 99.97766445, 99.97723858, 99.97680513, 99.97636399, 99.97591503, 99.97545812, 99.97499313, 99.97451993, 99.9740384, 99.97354838, 99.97304976, 99.97254238, 99.97202612, 99.97150082, 99.97096634, 99.97042254, 99.96986926, 99.96930636, 99.96873369, 99.96815108, 99.96755838, 99.96695543, 99.96634208, 99.96571815, 99.96508348, 99.9644379, 99.96378124, 99.96311332, 99.96243398, 99.96174304, 99.9610403, 99.9603256, 99.95959874, 99.95885954, 99.95810781, 99.95734334, 99.95656596, 99.95577546, 99.95497164, 99.95415429, 99.95332321, 99.95247819, 99.95161901, 99.95074547, 99.94985735, 99.94895442, 99.94803646, 99.94710325, 99.94615456, 99.94519015, 99.94420979, 99.94321324, 99.94220026, 99.9411706, 99.94012402, 99.93906027, 99.93797909, 99.93688022, 99.93576341, 99.93462839, 99.93347489, 99.93230265, 99.93111138, 99.92990082, 99.92867068, 99.92742067, 99.92615051, 99.9248599, 99.92354856, 99.92221618, 99.92086245, 99.91948708, 99.91808976, 99.91667016, 99.91522798, 99.91376288, 99.91227455, 99.91076265, 99.90922686, 99.90766683, 99.90608223, 99.9044727, 99.9028379, 99.90117748, 99.89949107, 99.89777832, 99.89603886, 99.89427231, 99.89247831, 99.89065647, 99.88880641, 99.88692775, 99.88502008, 99.88308301, 99.88111615, 99.87911908, 99.87709139, 99.87503267, 99.8729425, 99.87082045, 99.8686661, 99.866479, 99.86425872, 99.86200482, 99.85971684, 99.85739434, 99.85503684, 99.8526439, 99.85021503, 99.84774977, 99.84524764, 99.84270814, 99.8401308, 99.83751511, 99.83486058, 99.8321667, 99.82943295, 99.82665883, 99.82384381, 99.82098737, 99.81808896, 99.81514806, 99.81216411, 99.80913657, 99.80606489, 99.8029485, 99.79978684, 99.79657933, 99.79332539, 99.79002445, 99.78667591, 99.78327918, 99.77983365, 99.77633872, 99.77279378, 99.7691982, 99.76555136, 99.76185262, 99.75810136, 99.75429692, 99.75043866, 99.74652592, 99.74255804, 99.73853434, 99.73445416, 99.73031682, 99.72612161, 99.72186786, 99.71755486, 99.7131819, 99.70874827, 99.70425325, 99.69969611, 99.69507612, 99.69039255, 99.68564464, 99.68083165, 99.6759528, 99.67100735, 99.6659945, 99.6609135, 99.65576354, 99.65054384, 99.64525359, 99.639892, 99.63445824, 99.62895149, 99.62337094, 99.61771574, 99.61198506, 99.60617805, 99.60029385, 99.5943316, 99.58829044, 99.58216948, 99.57596785, 99.56968466, 99.563319, 99.55686999, 99.5503367, 99.54371823, 99.53701364, 99.530222, 99.52334238, 99.51637384, 99.50931541, 99.50216615, 99.49492508, 99.48759123, 99.48016362, 99.47264126, 99.46502316, 99.45730832, 99.44949573, 99.44158437, 99.43357323, 99.42546127, 99.41724745, 99.40893074, 99.40051008, 99.39198441, 99.38335268, 99.3746138, 99.36576671, 99.35681032, 99.34774353, 99.33856525, 99.32927438, 99.31986979, 99.31035038, 99.30071502, 99.29096257, 99.2810919, 99.27110185, 99.26099129, 99.25075905, 99.24040397, 99.22992486, 99.21932057, 99.2085899, 99.19773165, 99.18674465, 99.17562767, 99.16437952, 99.15299897, 99.14148481, 99.1298358, 99.11805071, 99.10612831, 99.09406735, 99.08186657, 99.06952472, 99.05704053, 99.04441274, 99.03164007, 99.01872124, 99.00565498, 98.99243997, 98.97907494, 98.96555858, 98.95188958, 98.93806663, 98.92408842, 98.90995362, 98.8956609, 98.88120895, 98.86659641, 98.85182196, 98.83688425, 98.82178192, 98.80651362, 98.79107801, 98.77547371, 98.75969936, 98.74375359, 98.72763504, 98.71134231, 98.69487404, 98.67822883, 98.66140531, 98.64440208, 98.62721775, 98.60985092, 98.59230019, 98.57456417, 98.55664144, 98.53853061, 98.52023026, 98.50173898, 98.48305536, 98.46417799, 98.44510545, 98.42583631, 98.40636917, 98.38670259, 98.36683516, 98.34676546, 98.32649205, 98.30601352, 98.28532845, 98.26443539, 98.24333294, 98.22201966, 98.20049412, 98.17875491, 98.1568006, 98.13462976, 98.11224097, 98.08963281, 98.06680385, 98.04375268, 98.02047788, 97.99697802, 97.97325171, 97.94929751, 97.92511403, 97.90069986, 97.87605359, 97.85117381, 97.82605913, 97.80070816, 97.77511949, 97.74929175, 97.72322354, 97.69691348, 97.67036021, 97.64356234, 97.61651852, 97.58922737, 97.56168754, 97.53389768, 97.50585644, 97.47756249, 97.44901448, 97.4202111, 97.39115101, 97.36183291, 97.33225549, 97.30241744, 97.27231748, 97.24195432, 97.21132668, 97.18043329, 97.14927289, 97.11784423, 97.08614607, 97.05417717, 97.0219363, 96.98942226, 96.95663384, 96.92356984, 96.89022907, 96.85661037, 96.82271257, 96.78853451, 96.75407506, 96.71933309, 96.68430748, 96.64899712, 96.61340092, 96.5775178, 96.54134669, 96.50488655, 96.46813632, 96.43109498, 96.39376152, 96.35613493, 96.31821424, 96.27999847, 96.24148667, 96.20267789, 96.16357122, 96.12416574, 96.08446055, 96.04445479, 96.0041476, 95.96353812, 95.92262553, 95.88140903, 95.83988782, 95.79806112, 95.75592818, 95.71348826, 95.67074065, 95.62768463, 95.58431954, 95.5406447, 95.49665947, 95.45236323, 95.40775537, 95.36283532, 95.31760251, 95.27205639, 95.22619645, 95.18002218, 95.13353311, 95.08672877, 95.03960874, 94.99217261, 94.94441996, 94.89635045, 94.84796373, 94.79925947, 94.75023737, 94.70089715, 94.65123857, 94.6012614, 94.55096543, 94.50035048, 94.44941639, 94.39816304, 94.34659031, 94.29469813, 94.24248644, 94.18995521, 94.13710444, 94.08393414, 94.03044436, 93.97663518, 93.9225067, 93.86805904, 93.81329235, 93.75820681, 93.70280264, 93.64708006, 93.59103933, 93.53468075, 93.47800463, 93.42101131, 93.36370116, 93.30607459, 93.24813203, 93.18987392, 93.13130076, 93.07241305, 93.01321134, 92.95369621, 92.89386824, 92.83372807, 92.77327635, 92.71251378, 92.65144107, 92.59005896, 92.52836822, 92.46636967, 92.40406413, 92.34145247, 92.27853559, 92.21531439, 92.15178984, 92.08796293, 92.02383465, 91.95940605, 91.89467821, 91.82965222, 91.76432922, 91.69871037, 91.63279686, 91.56658991, 91.50009078, 91.43330074, 91.36622111, 91.29885323, 91.23119846, 91.16325822, 91.09503393, 91.02652705, 90.95773908, 90.88867153, 90.81932596, 90.74970394, 90.67980709, 90.60963704, 90.53919546, 90.46848405, 90.39750453, 90.32625867, 90.25474825, 90.18297508, 90.110941, 90.03864789, 89.96609765, 89.8932922, 89.82023351, 89.74692356, 89.67336436, 89.59955796, 89.52550642, 89.45121185, 89.37667636, 89.30190211, 89.22689128, 89.15164607, 89.07616873, 89.0004615, 88.92452668, 88.84836658, 88.77198353, 88.69537991, 88.61855809, 88.54152051, 88.46426959, 88.38680781, 88.30913766, 88.23126165, 88.15318231, 88.07490223, 87.99642397, 87.91775015, 87.83888342, 87.75982641, 87.68058182, 87.60115235, 87.52154071, 87.44174966, 87.36178197, 87.28164041, 87.20132781, 87.12084698, 87.04020079, 86.95939209, 86.87842379, 86.79729877, 86.71601998, 86.63459036, 86.55301286, 86.47129047, 86.38942618, 86.307423, 86.22528396, 86.14301211, 86.06061049, 85.97808218, 85.89543027, 85.81265784, 85.72976801, 85.6467639, 85.56364864, 85.48042535, 85.3970972, 85.31366733, 85.2301389, 85.14651508, 85.06279904, 84.97899395, 84.89510298, 84.81112931, 84.7270761, 84.64294653, 84.55874375, 84.47447092, 84.39013118, 84.30572766, 84.22126349, 84.13674176, 84.05216554, 83.9675379, 83.88286187, 83.79814043, 83.71337655, 83.62857316, 83.54373313, 83.4588593, 83.37395442, 83.28902123, 83.20406235, 83.11908037, 83.03407777, 82.94905694, 82.86402019, 82.77896969, 82.69390753, 82.60883563, 82.5237558, 82.43866966, 82.35357869, 82.26848416, 82.18338716, 82.09828855, 82.01318894, 81.92808871, 81.84298793, 81.75788637, 81.67278349, 81.58767836, 81.5025697, 81.41745578, 81.33233444, 81.24720302, 81.16205833, 81.07689663, 80.99171355, 80.90650406, 80.82126245, 80.73598221, 80.65065602, 80.56527568, 80.47983206, 80.39431499, 80.30871321, 80.2230143, 80.1372046, 80.05126908, 79.96519129, 79.87895325, 79.79253535, 79.7059162, 79.61907256, 79.5319792, 79.44460876, 79.35693162, 79.26891575, 79.18052657, 79.09172675, 79.00247609, 78.91273133, 78.82244593, 78.73156993, 78.64004969, 78.54782772, 78.45484246, 78.36102801, 78.26631393, 78.170625, 78.07388093, 77.9759961, 77.87687932, 77.77643353, 77.67455552, 77.5711356, 77.46605736, 77.35919734, 77.25042472, 77.13960098, 77.02657964, 76.91120593, 76.79331646, 76.67273892, 76.54929179, 76.42278403, 76.29301482, 76.15977327, 76.02283816, 75.88197773, 75.73694947, 75.58749992, 75.43336454, 75.2742676, 75.10992209, 74.94002973, 74.764281, 74.58235521, 74.39392069, 74.19863499, 73.99614521, 73.78608843, 73.56809212, 73.34177479, 73.10674668, 72.86261054, 72.60896258, 72.34539354, 72.0714898, 71.7868348, 71.49101042, 71.18359859, 70.86418308, 70.53235131, 70.18769644, 69.82981949, 69.45833168, 69.07285681, 68.67303382, 68.25851944, 67.82899089, 67.38414875, 66.92371974, 66.44745965, 65.95515624, 65.44663208, 64.92174739, 64.38040277, 63.8225418, 63.24815356, 62.65727484, 62.04999226, 61.42644406, 60.78682159, 60.13137057, 59.46039187, 58.77424204, 58.07333333, 57.3581334, 56.62916452, 55.88700235, 55.13227431, 54.36565749, 53.58787617, 52.79969884, 52.00193499, 51.19543137, 50.38106811, 49.55975437, 48.73242395, 47.90003053, 47.06354292, 46.22394011, 45.38220636, 44.53932626, 43.69627991, 42.85403814, 42.01355798, 41.1757783, 40.34161566, 39.51196052, 38.68767369, 37.86958313, 37.05848112, 36.25512179, 35.460219, 34.6744446, 33.89842705, 33.13275046, 32.37795387, 31.63453098, 30.90293009, 30.18355444, 29.47676275, 28.78287002, 28.10214859, 27.43482932, 26.78110306, 26.14112215, 25.51500212, 24.90282343, 24.30463334, 23.7204478, 23.1502534, 22.59400928, 22.05164911, 21.52308302, 21.0081995, 20.50686727, 20.0189371, 19.54424354, 19.08260666, 18.63383363, 18.1977203, 17.77405267, 17.36260825, 16.96315741, 16.57546457, 16.1992894, 15.83438786, 15.48051317, 15.13741679, 14.80484919, 14.48256068, 14.17030209, 13.8678254, 13.57488435, 13.29123492, 13.01663584, 12.75084897, 12.49363966, 12.24477712, 12.00403465, 11.7711899, 11.54602506, 11.32832706, 11.11788769, 10.91450373, 10.71797699, 10.52811447, 10.34472829, 10.16763582, 9.99665962, 9.83162747, 9.67237231, 9.51873229, 9.37055063, 9.22767565, 9.08996066, 8.95726393, 8.82944858, 8.70638257, 8.58793855, 8.47399382, 8.36443023, 8.2591341, 8.15799614, 8.06091134, 7.96777891, 7.87850216, 7.79298845, 7.71114906, 7.63289915, 7.55815765, 7.48684718, 7.41889396, 7.35422778, 7.29278187, 7.23449283, 7.17930063, 7.12714843, 7.07798263, 7.03175273, 6.98841128, 6.94791387, 6.91021904, 6.87528823, 6.84308574, 6.8135787, 6.78673702, 6.76253332, 6.74094298, 6.721944, 6.70551708, 6.69164551, 6.6803152, 6.67151464, 6.6652349, 6.6614696, 6.6614696, 6.6652349, 6.67151464, 6.6803152, 6.69164551, 6.70551708, 6.721944, 6.74094298, 6.76253332, 6.78673702, 6.8135787, 6.84308574, 6.87528823, 6.91021904, 6.94791387, 6.98841128, 7.03175273, 7.07798263, 7.12714843, 7.17930063, 7.23449283, 7.29278187, 7.35422778, 7.41889396, 7.48684718, 7.55815765, 7.63289915, 7.71114906, 7.79298845, 7.87850216, 7.96777891, 8.06091134, 8.15799614, 8.2591341, 8.36443023, 8.47399382, 8.58793855, 8.70638257, 8.82944858, 8.95726393, 9.08996066, 9.22767565, 9.37055063, 9.51873229, 9.67237231, 9.83162747, 9.99665962, 10.16763582, 10.34472829, 10.52811447, 10.71797699, 10.91450373, 11.11788769, 11.32832706, 11.54602506, 11.7711899, 12.00403465, 12.24477712, 12.49363966, 12.75084897, 13.01663584, 13.29123492, 13.57488435, 13.8678254, 14.17030209, 14.48256068, 14.80484919, 15.13741679, 15.48051317, 15.83438786, 16.1992894, 16.57546457, 16.96315741, 17.36260825, 17.77405267, 18.1977203, 18.63383363, 19.08260666, 19.54424354, 20.0189371, 20.50686727, 21.0081995, 21.52308302, 22.05164911, 22.59400928, 23.1502534, 23.7204478, 24.30463334, 24.90282343, 25.51500212, 26.14112215, 26.78110306, 27.43482932, 28.10214859, 28.78287002, 29.47676275, 30.18355444, 30.90293009, 31.63453098, 32.37795387, 33.13275046, 33.89842705, 34.6744446, 35.460219, 36.25512179, 37.05848112, 37.86958313, 38.68767369, 39.51196052, 40.34161566, 41.1757783, 42.01355798, 42.85403814, 43.69627991, 44.53932626, 45.38220636, 46.22394011, 47.06354292, 47.90003053, 48.73242395, 49.55975437, 50.38106811, 51.19543137, 52.00193499, 52.79969884, 53.58787617, 54.36565749, 55.13227431, 55.88700235, 56.62916452, 57.3581334, 58.07333333, 58.77424204, 59.46039187, 60.13137057, 60.78682159, 61.42644406, 62.04999226, 62.65727484, 63.24815356, 63.8225418, 64.38040277, 64.92174739, 65.44663208, 65.95515624, 66.44745965, 66.92371974, 67.38414875, 67.82899089, 68.25851944, 68.67303382, 69.07285681, 69.45833168, 69.82981949, 70.18769644, 70.53235131, 70.86418308, 71.18359859, 71.49101042, 71.7868348, 72.0714898, 72.34539354, 72.60896258, 72.86261054, 73.10674668, 73.34177479, 73.56809212, 73.78608843, 73.99614521, 74.19863499, 74.39392069, 74.58235521, 74.764281, 74.94002973, 75.10992209, 75.2742676, 75.43336454, 75.58749992, 75.73694947, 75.88197773, 76.02283816, 76.15977327, 76.29301482, 76.42278403, 76.54929179, 76.67273892, 76.79331646, 76.91120593, 77.02657964, 77.13960098, 77.25042472, 77.35919734, 77.46605736, 77.5711356, 77.67455552, 77.77643353, 77.87687932, 77.9759961, 78.07388093, 78.170625, 78.26631393, 78.36102801, 78.45484246, 78.54782772, 78.64004969, 78.73156993, 78.82244593, 78.91273133, 79.00247609, 79.09172675, 79.18052657, 79.26891575, 79.35693162, 79.44460876, 79.5319792, 79.61907256, 79.7059162, 79.79253535, 79.87895325, 79.96519129, 80.05126908, 80.1372046, 80.2230143, 80.30871321, 80.39431499, 80.47983206, 80.56527568, 80.65065602, 80.73598221, 80.82126245, 80.90650406, 80.99171355, 81.07689663, 81.16205833, 81.24720302, 81.33233444, 81.41745578, 81.5025697, 81.58767836, 81.67278349, 81.75788637, 81.84298793, 81.92808871, 82.01318894, 82.09828855, 82.18338716, 82.26848416, 82.35357869, 82.43866966, 82.5237558, 82.60883563, 82.69390753, 82.77896969, 82.86402019, 82.94905694, 83.03407777, 83.11908037, 83.20406235, 83.28902123, 83.37395442, 83.4588593, 83.54373313, 83.62857316, 83.71337655, 83.79814043, 83.88286187, 83.9675379, 84.05216554, 84.13674176, 84.22126349, 84.30572766, 84.39013118, 84.47447092, 84.55874375, 84.64294653, 84.7270761, 84.81112931, 84.89510298, 84.97899395, 85.06279904, 85.14651508, 85.2301389, 85.31366733, 85.3970972, 85.48042535, 85.56364864, 85.6467639, 85.72976801, 85.81265784, 85.89543027, 85.97808218, 86.06061049, 86.14301211, 86.22528396, 86.307423, 86.38942618, 86.47129047, 86.55301286, 86.63459036, 86.71601998, 86.79729877, 86.87842379, 86.95939209, 87.04020079, 87.12084698, 87.20132781, 87.28164041, 87.36178197, 87.44174966, 87.52154071, 87.60115235, 87.68058182, 87.75982641, 87.83888342, 87.91775015, 87.99642397, 88.07490223, 88.15318231, 88.23126165, 88.30913766, 88.38680781, 88.46426959, 88.54152051, 88.61855809, 88.69537991, 88.77198353, 88.84836658, 88.92452668, 89.0004615, 89.07616873, 89.15164607, 89.22689128, 89.30190211, 89.37667636, 89.45121185, 89.52550642, 89.59955796, 89.67336436, 89.74692356, 89.82023351, 89.8932922, 89.96609765, 90.03864789, 90.110941, 90.18297508, 90.25474825, 90.32625867, 90.39750453, 90.46848405, 90.53919546, 90.60963704, 90.67980709, 90.74970394, 90.81932596, 90.88867153, 90.95773908, 91.02652705, 91.09503393, 91.16325822, 91.23119846, 91.29885323, 91.36622111, 91.43330074, 91.50009078, 91.56658991, 91.63279686, 91.69871037, 91.76432922, 91.82965222, 91.89467821, 91.95940605, 92.02383465, 92.08796293, 92.15178984, 92.21531439, 92.27853559, 92.34145247, 92.40406413, 92.46636967, 92.52836822, 92.59005896, 92.65144107, 92.71251378, 92.77327635, 92.83372807, 92.89386824, 92.95369621, 93.01321134, 93.07241305, 93.13130076, 93.18987392, 93.24813203, 93.30607459, 93.36370116, 93.42101131, 93.47800463, 93.53468075, 93.59103933, 93.64708006, 93.70280264, 93.75820681, 93.81329235, 93.86805904, 93.9225067, 93.97663518, 94.03044436, 94.08393414, 94.13710444, 94.18995521, 94.24248644, 94.29469813, 94.34659031, 94.39816304, 94.44941639, 94.50035048, 94.55096543, 94.6012614, 94.65123857, 94.70089715, 94.75023737, 94.79925947, 94.84796373, 94.89635045, 94.94441996, 94.99217261, 95.03960874, 95.08672877, 95.13353311, 95.18002218, 95.22619645, 95.27205639, 95.31760251, 95.36283532, 95.40775537, 95.45236323, 95.49665947, 95.5406447, 95.58431954, 95.62768463, 95.67074065, 95.71348826, 95.75592818, 95.79806112, 95.83988782, 95.88140903, 95.92262553, 95.96353812, 96.0041476, 96.04445479, 96.08446055, 96.12416574, 96.16357122, 96.20267789, 96.24148667, 96.27999847, 96.31821424, 96.35613493, 96.39376152, 96.43109498, 96.46813632, 96.50488655, 96.54134669, 96.5775178, 96.61340092, 96.64899712, 96.68430748, 96.71933309, 96.75407506, 96.78853451, 96.82271257, 96.85661037, 96.89022907, 96.92356984, 96.95663384, 96.98942226, 97.0219363, 97.05417717, 97.08614607, 97.11784423, 97.14927289, 97.18043329, 97.21132668, 97.24195432, 97.27231748, 97.30241744, 97.33225549, 97.36183291, 97.39115101, 97.4202111, 97.44901448, 97.47756249, 97.50585644, 97.53389768, 97.56168754, 97.58922737, 97.61651852, 97.64356234, 97.67036021, 97.69691348, 97.72322354, 97.74929175, 97.77511949, 97.80070816, 97.82605913, 97.85117381, 97.87605359, 97.90069986, 97.92511403, 97.94929751, 97.97325171, 97.99697802, 98.02047788, 98.04375268, 98.06680385, 98.08963281, 98.11224097, 98.13462976, 98.1568006, 98.17875491, 98.20049412, 98.22201966, 98.24333294, 98.26443539, 98.28532845, 98.30601352, 98.32649205, 98.34676546, 98.36683516, 98.38670259, 98.40636917, 98.42583631, 98.44510545, 98.46417799, 98.48305536, 98.50173898, 98.52023026, 98.53853061, 98.55664144, 98.57456417, 98.59230019, 98.60985092, 98.62721775, 98.64440208, 98.66140531, 98.67822883, 98.69487404, 98.71134231, 98.72763504, 98.74375359, 98.75969936, 98.77547371, 98.79107801, 98.80651362, 98.82178192, 98.83688425, 98.85182196, 98.86659641, 98.88120895, 98.8956609, 98.90995362, 98.92408842, 98.93806663, 98.95188958, 98.96555858, 98.97907494, 98.99243997, 99.00565498, 99.01872124, 99.03164007, 99.04441274, 99.05704053, 99.06952472, 99.08186657, 99.09406735, 99.10612831, 99.11805071, 99.1298358, 99.14148481, 99.15299897, 99.16437952, 99.17562767, 99.18674465, 99.19773165, 99.2085899, 99.21932057, 99.22992486, 99.24040397, 99.25075905, 99.26099129, 99.27110185, 99.2810919, 99.29096257, 99.30071502, 99.31035038, 99.31986979, 99.32927438, 99.33856525, 99.34774353, 99.35681032, 99.36576671, 99.3746138, 99.38335268, 99.39198441, 99.40051008, 99.40893074, 99.41724745, 99.42546127, 99.43357323, 99.44158437, 99.44949573, 99.45730832, 99.46502316, 99.47264126, 99.48016362, 99.48759123, 99.49492508, 99.50216615, 99.50931541, 99.51637384, 99.52334238, 99.530222, 99.53701364, 99.54371823, 99.5503367, 99.55686999, 99.563319, 99.56968466, 99.57596785, 99.58216948, 99.58829044, 99.5943316, 99.60029385, 99.60617805, 99.61198506, 99.61771574, 99.62337094, 99.62895149, 99.63445824, 99.639892, 99.64525359, 99.65054384, 99.65576354, 99.6609135, 99.6659945, 99.67100735, 99.6759528, 99.68083165, 99.68564464, 99.69039255, 99.69507612, 99.69969611, 99.70425325, 99.70874827, 99.7131819, 99.71755486, 99.72186786, 99.72612161, 99.73031682, 99.73445416, 99.73853434, 99.74255804, 99.74652592, 99.75043866, 99.75429692, 99.75810136, 99.76185262, 99.76555136, 99.7691982, 99.77279378, 99.77633872, 99.77983365, 99.78327918, 99.78667591, 99.79002445, 99.79332539, 99.79657933, 99.79978684, 99.8029485, 99.80606489, 99.80913657, 99.81216411, 99.81514806, 99.81808896, 99.82098737, 99.82384381, 99.82665883, 99.82943295, 99.8321667, 99.83486058, 99.83751511, 99.8401308, 99.84270814, 99.84524764, 99.84774977, 99.85021503, 99.8526439, 99.85503684, 99.85739434, 99.85971684, 99.86200482, 99.86425872, 99.866479, 99.8686661, 99.87082045, 99.8729425, 99.87503267, 99.87709139, 99.87911908, 99.88111615, 99.88308301, 99.88502008, 99.88692775, 99.88880641, 99.89065647, 99.89247831, 99.89427231, 99.89603886, 99.89777832, 99.89949107, 99.90117748, 99.9028379, 99.9044727, 99.90608223, 99.90766683, 99.90922686, 99.91076265, 99.91227455, 99.91376288, 99.91522798, 99.91667016, 99.91808976, 99.91948708, 99.92086245, 99.92221618, 99.92354856, 99.9248599, 99.92615051, 99.92742067, 99.92867068, 99.92990082, 99.93111138, 99.93230265, 99.93347489, 99.93462839, 99.93576341, 99.93688022, 99.93797909, 99.93906027, 99.94012402, 99.9411706, 99.94220026, 99.94321324, 99.94420979, 99.94519015, 99.94615456, 99.94710325, 99.94803646, 99.94895442, 99.94985735, 99.95074547, 99.95161901, 99.95247819, 99.95332321, 99.95415429, 99.95497164, 99.95577546, 99.95656596, 99.95734334, 99.95810781, 99.95885954, 99.95959874, 99.9603256, 99.9610403, 99.96174304, 99.96243398, 99.96311332, 99.96378124, 99.9644379, 99.96508348, 99.96571815, 99.96634208, 99.96695543, 99.96755838, 99.96815108, 99.96873369, 99.96930636, 99.96986926, 99.97042254, 99.97096634, 99.97150082, 99.97202612, 99.97254238, 99.97304976, 99.97354838, 99.9740384, 99.97451993, 99.97499313, 99.97545812, 99.97591503, 99.97636399, 99.97680513, 99.97723858, 99.97766445, 99.97808288, 99.97849397, 99.97889785, 99.97929463, 99.97968444, 99.98006737, 99.98044355, 99.98081308, 99.98117608, 99.98153264, 99.98188287, 99.98222689, 99.98256478, 99.98289665, 99.9832226, 99.98354273, 99.98385713, 99.9841659, 99.98446913, 99.98476691, 99.98505933, 99.98534649, 99.98562847, 99.98590535, 99.98617722, 99.98644417, 99.98670628, 99.98696363, 99.98721629, 99.98746436, 99.9877079, 99.987947, 99.98818172, 99.98841215, 99.98863835, 99.98886039, 99.98907836, 99.98929231, 99.98950232, 99.98970845, 99.98991078, 99.99010936, 99.99030426, 99.99049554, 99.99068327, 99.9908675, 99.99104831, 99.99122574, 99.99139986, 99.99157072, 99.99173838, 99.99190289, 99.99206432, 99.99222272, 99.99237813, 99.99253061, 99.99268021, 99.99282699, 99.99297099, 99.99311226, 99.99325085, 99.9933868, 99.99352018, 99.99365101, 99.99377934, 99.99390523, 99.99402871, 99.99414982, 99.99426862, 99.99438513, 99.99449941, 99.99461148, 99.9947214, 99.99482919, 99.99493491, 99.99503858, 99.99514024, 99.99523993, 99.99533769, 99.99543355, 99.99552754, 99.9956197, 99.99571006, 99.99579866, 99.99588552, 99.99597068, 99.99605418, 99.99613603, 99.99621627, 99.99629494, 99.99637206, 99.99644765, 99.99652175, 99.99659439, 99.99666559, 99.99673537, 99.99680377, 99.99687081, 99.99693652, 99.99700092, 99.99706403, 99.99712588, 99.9971865, 99.9972459, 99.99730412, 99.99736116, 99.99741706, 99.99747183, 99.9975255, 99.99757809, 99.99762961, 99.9976801, 99.99772956, 99.99777802, 99.9978255, 99.99787201, 99.99791758, 99.99796222, 99.99800595, 99.99804878, 99.99809074, 99.99813185, 99.99817211, 99.99821154, 99.99825017, 99.998288, 99.99832506, 99.99836135, 99.99839689, 99.9984317, 99.99846578, 99.99849917, 99.99853186, 99.99856387, 99.99859522, 99.99862591, 99.99865597, 99.9986854, 99.99871422, 99.99874243, 99.99877005, 99.9987971, 99.99882358, 99.9988495, 99.99887488, 99.99889972, 99.99892404, 99.99894785, 99.99897116, 99.99899397, 99.9990163, 99.99903816, 99.99905955, 99.99908049, 99.99910098, 99.99912104, 99.99914067, 99.99915989, 99.99917869, 99.99919709, 99.99921509, 99.99923271, 99.99924996, 99.99926683, 99.99928334, 99.99929949, 99.9993153, 99.99933077, 99.9993459, 99.9993607, 99.99937519, 99.99938936, 99.99940322, 99.99941678, 99.99943005, 99.99944303, 99.99945573, 99.99946814, 99.99948029, 99.99949218, 99.9995038, 99.99951517, 99.99952628, 99.99953716, 99.99954779, 99.9995582, 99.99956837, 99.99957832, 99.99958804, 99.99959756, 99.99960686, 99.99961596, 99.99962485, 99.99963355, 99.99964206, 99.99965037, 99.9996585, 99.99966645, 99.99967422, 99.99968182, 99.99968925, 99.99969651, 99.99970361, 99.99971055, 99.99971734, 99.99972397, 99.99973045, 99.99973679, 99.99974298, 99.99974903, 99.99975495, 99.99976073, 99.99976639, 99.99977191, 99.99977731, 99.99978259, 99.99978774, 99.99979278, 99.9997977, 99.99980251, 99.99980722, 99.99981181, 99.9998163, 99.99982068, 99.99982497, 99.99982916, 99.99983325, 99.99983724, 99.99984115, 99.99984496, 99.99984869, 99.99985233, 99.99985589, 99.99985936, 99.99986275, 99.99986607, 99.99986931, 99.99987247, 99.99987556, 99.99987857, 99.99988152, 99.9998844, 99.99988721, 99.99988995, 99.99989263, 99.99989525, 99.99989781, 99.9999003, 99.99990274, 99.99990512, 99.99990745, 99.99990972, 99.99991193, 99.99991409, 99.99991621, 99.99991827, 99.99992028, 99.99992225, 99.99992417, 99.99992604, 99.99992787, 99.99992965, 99.9999314, 99.9999331, 99.99993476, 99.99993638, 99.99993796, 99.9999395, 99.99994101, 99.99994248, 99.99994392, 99.99994532, 99.99994668, 99.99994802, 99.99994932, 99.99995059, 99.99995183, 99.99995304, 99.99995422, 99.99995537, 99.9999565, 99.99995759, 99.99995866, 99.99995971, 99.99996073, 99.99996172, 99.99996269, 99.99996363, 99.99996456, 99.99996546, 99.99996633, 99.99996719, 99.99996803, 99.99996884, 99.99996964, 99.99997041, 99.99997117, 99.9999719, 99.99997262, 99.99997333, 99.99997401, 99.99997468, 99.99997533, 99.99997596, 99.99997658, 99.99997718, 99.99997777, 99.99997834, 99.9999789, 99.99997945, 99.99997998, 99.9999805, 99.99998101, 99.9999815, 99.99998198, 99.99998245, 99.9999829, 99.99998335, 99.99998378, 99.9999842, 99.99998462, 99.99998502, 99.99998541, 99.99998579, 99.99998616, 99.99998653, 99.99998688, 99.99998723, 99.99998756, 99.99998789, 99.99998821, 99.99998852, 99.99998882, 99.99998912, 99.9999894, 99.99998968, 99.99998996, 99.99999022, 99.99999048, 99.99999073, 99.99999098, 99.99999122, 99.99999145, 99.99999168, 99.9999919, 99.99999212, 99.99999233, 99.99999253, 99.99999273, 99.99999293, 99.99999312, 99.9999933, 99.99999348, 99.99999366, 99.99999383, 99.99999399, 99.99999416, 99.99999431, 99.99999447, 99.99999462, 99.99999476, 99.9999949, 99.99999504, 99.99999518, 99.99999531, 99.99999543, 99.99999556, 99.99999568, 99.9999958, 99.99999591, 99.99999602, 99.99999613, 99.99999624, 99.99999634, 99.99999644, 99.99999654, 99.99999663, 99.99999672, 99.99999681, 99.9999969, 99.99999699, 99.99999707, 99.99999715, 99.99999723, 99.9999973, 99.99999738, 99.99999745, 99.99999752, 99.99999759, 99.99999766, 99.99999772, 99.99999779, 99.99999785, 99.99999791, 99.99999796, 99.99999802, 99.99999808, 99.99999813, 99.99999818, 99.99999823, 99.99999828, 99.99999833, 99.99999838, 99.99999842, 99.99999847, 99.99999851, 99.99999855, 99.99999859, 99.99999863, 99.99999867, 99.99999871, 99.99999874, 99.99999878, 99.99999881, 99.99999885, 99.99999888, 99.99999891, 99.99999894, 99.99999897, 99.999999, 99.99999903, 99.99999906, 99.99999908, 99.99999911, 99.99999914, 99.99999916, 99.99999918, 99.99999921, 99.99999923, 99.99999925, 99.99999927, 99.99999929, 99.99999931, 99.99999933, 99.99999935, 99.99999937, 99.99999939, 99.99999941, 99.99999942, 99.99999944, 99.99999946, 99.99999947, 99.99999949, 99.9999995, 99.99999952, 99.99999953, 99.99999955, 99.99999956, 99.99999957, 99.99999958, 99.9999996, 99.99999961, 99.99999962, 99.99999963, 99.99999964, 99.99999965, 99.99999966, 99.99999967, 99.99999968, 99.99999969, 99.9999997, 99.99999971, 99.99999972, 99.99999973, 99.99999973, 99.99999974, 99.99999975, 99.99999976, 99.99999976, 99.99999977, 99.99999978, 99.99999978, 99.99999979, 99.9999998, 99.9999998, 99.99999981, 99.99999981, 99.99999982, 99.99999982, 99.99999983, 99.99999983, 99.99999984, 99.99999984, 99.99999985, 99.99999985, 99.99999986, 99.99999986, 99.99999987, 99.99999987, 99.99999987, 99.99999988, 99.99999988, 99.99999989, 99.99999989, 99.99999989, 99.9999999, 99.9999999, 99.9999999, 99.9999999, 99.99999991, 99.99999991, 99.99999991, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90.39501952, 90.38969444, 90.38081345, 90.36836773, 90.35234492, 90.33272914, 90.3095009, 90.28263713, 90.25211114, 90.21789257, 90.17994737, 90.13823777, 90.0927222, 90.04335529, 89.99008777, 89.93286645, 89.87163412, 89.80632952, 89.73688726, 89.66323775, 89.58530709, 89.50301704, 89.41628491, 89.32502347, 89.22914087, 89.12854052, 89.02312103, 88.9127761, 88.79739437, 88.6768594, 88.55104948, 88.41983758, 88.28309121, 88.14067232, 87.99243719, 87.83823632, 87.67791431, 87.51130977, 87.3382552, 87.15857691, 86.97209489, 86.77862273, 86.57796757, 86.36992995, 86.15430381, 85.93087641, 85.69942823, 85.45973304, 85.21155777, 84.9546626, 84.68880093, 84.41371944, 84.12915813, 83.83485045, 83.53052341, 83.2158977, 82.89068796, 82.55460292, 82.20734574, 81.84861431, 81.47810161, 81.09549615, 80.70048246, 80.29274162, 79.87195189, 79.43778939, 78.98992887, 78.52804453, 78.05181099, 77.56090425, 77.05500287, 76.5337891, 75.99695025, 75.44418006, 74.87518024, 74.28966204, 73.68734806, 73.06797402, 72.43129072, 71.7770661, 71.10508737, 70.41516327, 69.70712639, 68.9808356, 68.2361785, 67.47307401, 66.69147493, 65.89137054, 65.07278927, 64.23580125, 63.38052095, 62.50710963, 61.6157778, 60.70678754, 59.7804546, 58.83715044, 57.87730392, 56.90140286, 55.9099952, 54.90368996, 53.88315772, 52.8491308, 51.80240303, 50.74382896, 49.67432279, 48.59485663, 47.50645837, 46.41020904, 45.30723961, 44.19872733, 43.08589157, 41.96998917, 40.85230938, 39.73416841, 38.6169035, 37.50186686, 36.3904192, 35.2839231, 34.18373631, 33.09120491, 32.0076565, 30.93439349, 29.87268654, 28.8237682, 27.78882687, 26.76900107, 25.76537422, 24.77896976, 23.81074686, 22.86159669, 21.93233921, 21.02372061, 20.13641131, 19.27100463, 18.42801602, 17.6078829, 16.81096505, 16.03754559, 15.28783244, 14.56196022, 13.85999265, 13.18192526, 12.52768848, 11.89715102, 11.29012343, 10.70636192, 10.14557228, 9.60741389, 9.0915038, 8.59742081, 8.12470954, 7.67288439, 7.24143352, 6.82982257, 6.43749834, 6.06389231, 5.70842391, 5.37050373, 5.0495364, 4.74492338, 4.45606546, 4.18236515, 3.92322878, 3.67806844, 3.44630374, 3.22736333, 3.0206863, 2.8257234, 2.64193798, 2.468807, 2.30582164, 2.15248797, 2.0083274, 1.87287704, 1.74568992, 1.62633518, 1.51439811, 1.40948015, 1.31119876, 1.21918732, 1.13309491, 1.05258603, 0.97734034, 0.9070523, 0.84143082, 0.78019887, 0.72309307, 0.66986328, 0.62027215, 0.57409466, 0.53111771, 0.49113964, 0.45396978, 0.41942802, 0.38734433, 0.35755835, 0.32991895, 0.30428378, 0.2805189, 0.25849834, 0.23810374, 0.21922394, 0.2017546, 0.18559789, 0.17066213, 0.15686142, 0.14411537, 0.1323488, 0.12149139, 0.11147746, 0.10224567, 0.09373879, 0.08590343, 0.07868983, 0.07205164, 0.06594569, 0.06033182, 0.05517267, 0.05043353, 0.04608213, 0.04208852, 0.03842491, 0.03506552, 0.03198644, 0.02916553, 0.02658228, 0.0242177, 0.02205425, 0.02007567, 0.01826697, 0.01661428, 0.01510481, 0.01372675, 0.01246921, 0.01132215, 0.01027633, 0.00932321, 0.00845497, 0.00766438, 0.00694482, 0.0062902, 0.0056949, 0.00515379, 0.00466215, 0.00421565, 0.00381032, 0.00344253, 0.00310895, 0.00280651, 0.00253244, 0.00228418, 0.0020594, 0.00185597, 0.00167193, 0.00150552, 0.0013551, 0.0012192, 0.00109648, 0.00098569, 0.00088573, 0.00079557, 0.0007143, 0.00064106, 0.00057508, 0.00051569, 0.00046223, 0.00041414, 0.0003709, 0.00033204, 0.00029712, 0.00026577, 0.00023762, 0.00021237, 0.00018972, 0.00016942, 0.00015122, 0.00013492, 0.00012033, 0.00010728, 0.00009559, 0.00008515, 0.00007581, 0.00006747, 0.00006003, 0.00005338, 0.00004745, 0.00004216, 0.00003744, 0.00003324, 0.0000295, 0.00002616, 0.0000232, 0.00002056, 0.00001821, 0.00001613, 0.00001428, 0.00001263, 0.00001117, 9.87758291e-06, 8.72871406e-06, 7.71024271e-06, 6.80775661e-06, 6.00839073e-06, 5.30066647e-06, 4.67434693e-06, 4.12030674e-06, 3.63041509e-06, 3.1974307e-06, 2.81490735e-06, 2.47710929e-06, 2.1789352e-06, 1.91585018e-06, 1.68382454e-06, 1.47927931e-06, 1.29903717e-06, 1.14027868e-06, 1.00050315e-06, 8.77493548e-07, 7.69285265e-07, 6.74138121e-07, 5.9051149e-07, 5.17041968e-07, 4.52523579e-07, 3.95890041e-07, 3.46199087e-07, 3.02618304e-07, 2.64412748e-07, 2.30933807e-07, 2.01609311e-07, 1.75934716e-07, 1.53465379e-07, 1.33809579e-07, 1.1662236e-07, 1.01600151e-07, 8.84758578e-08, 7.70146045e-08, 6.70099354e-08, 5.82804915e-08, 5.06669835e-08, 4.40296049e-08, 3.82456733e-08, 3.32076127e-08, 2.88211197e-08, 2.50035583e-08, 2.16825526e-08, 1.87947791e-08, 1.62847726e-08, 1.41040459e-08, 1.22102222e-08, 1.05662679e-08, 9.13981069e-09, 7.90259946e-09, 6.83000678e-09, 5.90051741e-09, 5.09538722e-09, 4.39825953e-09, 3.79492349e-09, 3.272973e-09, 2.82163626e-09, 2.43150566e-09, 2.09445261e-09, 1.80335746e-09, 1.55206692e-09, 1.33522349e-09, 1.14820864e-09, 9.86958071e-10, 8.48004333e-10, 7.28306304e-10, 6.25249186e-10, 5.36545031e-10, 4.60232741e-10, 3.94607014e-10, 3.38189921e-10, 2.89730906e-10, 2.48107312e-10, 2.12367013e-10, 1.81699988e-10, 1.55409907e-10, 1.32857281e-10, 1.13530518e-10, 9.69748726e-11, 8.27924396e-11, 7.06705805e-11, 6.02824457e-11, 5.14006615e-11, 4.38120651e-11, 3.73319153e-11, 3.1789682e-11, 2.70716782e-11, 2.30357955e-11, 1.95967687e-11, 1.66551217e-11, 1.41540113e-11, 1.20223831e-11, 1.02176045e-11, 8.66862138e-12, 7.36122274e-12, 6.23856522e-12, 5.28643795e-12, 4.47641924e-12, 3.79429821e-12, 3.21165317e-12, 2.71427325e-12, 2.30215846e-12, 1.9468871e-12, 1.64845915e-12, 1.39266376e-12, 1.17950094e-12, 9.9475983e-13, 8.38440428e-13, 7.10542736e-13, 5.96855898e-13, 4.97379915e-13, 4.26325641e-13, 3.55271368e-13, 2.98427949e-13, 2.55795385e-13, 2.13162821e-13, 1.84741111e-13, 1.56319402e-13, 1.27897692e-13, 9.9475983e-14, 8.52651283e-14, 7.10542736e-14, 5.68434189e-14, 5.68434189e-14, 4.26325641e-14, 4.26325641e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.94351088, 2.94507066, 2.94767191, 2.95131708, 2.95600957, 2.96175378, 2.96855509, 2.97641989, 2.98535554, 2.99537042, 3.00647393, 3.01867649, 3.03198957, 3.04642567, 3.06199835, 3.07872227, 3.09661315, 3.11568784, 3.1359643, 3.15746163, 3.18020008, 3.2042011, 3.22948731, 3.25608257, 3.28401196, 3.31330183, 3.34397981, 3.37607484, 3.40961718, 3.44463844, 3.48117161, 3.51925108, 3.55891266, 3.60019358, 3.64313258, 3.68776986, 3.73414714, 3.78230766, 3.83229621, 3.88415916, 3.93794445, 3.99370162, 4.0514818, 4.11133776, 4.17332387, 4.23749613, 4.30391214, 4.37263114, 4.44371394, 4.51722293, 4.59322207, 4.67177684, 4.75295418, 4.83682249, 4.92345154, 5.0129124, 5.10527739, 5.20061996, 5.2990146, 5.40053672, 5.50526255, 5.61326893, 5.7246332, 5.83943298, 5.95774603, 6.07964993, 6.20522195, 6.33453868, 6.46767584, 6.60470789, 6.74570773, 6.89074633, 7.03989234, 7.19321168, 7.35076709, 7.51261765, 7.67881831, 7.84941932, 8.02446574, 8.2039968, 8.38804536, 8.57663723, 8.76979059, 8.9675153, 9.16981222, 9.37667259, 9.58807727, 9.80399612, 10.02438731, 10.24919663, 10.4783569, 10.71178731, 10.94939288, 11.19106388, 11.43667537, 11.68608681, 11.93914164, 12.19566706, 12.45547382, 12.71835617, 12.98409182, 13.25244214, 13.52315238, 13.79595204, 14.07055542, 14.34666226, 14.62395851, 14.90211727, 15.18079987, 15.45965701, 15.73833014, 16.01645285, 16.29365248, 16.56955169, 16.84377024, 17.11592678, 17.38564069, 17.65253398, 17.91623316, 18.17637114, 18.43258913, 18.68453841, 18.93188209, 19.17429681, 19.41147429, 19.64312276, 19.86896828, 20.08875594, 20.30225079, 20.50923879, 20.70952739, 20.90294606, 21.08934665, 21.2686035, 21.44061341, 21.60529551, 21.7625909, 21.91246215, 22.05489272, 22.18988622, 22.31746555, 22.43767198, 22.55056413, 22.6562169, 22.75472033, 22.84617843, 22.93070798, 23.00843736, 23.07950531, 23.14405975, 23.20225664, 23.25425879, 23.30023479, 23.34035794, 23.37480522, 23.40375638, 23.42739301, 23.44589767, 23.45945318, 23.46824182, 23.47244473, 23.47224131, 23.46780863, 23.45932102, 23.44694959, 23.43086189, 23.41122158, 23.38818818, 23.3619168, 23.33255802, 23.30025768, 23.26515682, 23.2273916, 23.18709323, 23.14438799, 23.09939722, 23.05223734, 23.00301993, 22.95185177, 22.89883495, 22.84406693, 22.7876407, 22.72964483, 22.67016367, 22.60927739, 22.54706221, 22.48359047, 22.41893078, 22.35314821, 22.28630437, 22.21845758, 22.14966302, 22.07997286, 22.00943638, 21.93810015, 21.86600811, 21.79320173, 21.71972012, 21.64560017, 21.57087665, 21.49558232, 21.41974806, 21.34340295, 21.26657439, 21.18928819, 21.11156866, 21.03343869, 20.95491987, 20.87603252, 20.7967958, 20.71722777, 20.63734546, 20.55716495, 20.47670141, 20.39596916, 20.31498175, 20.23375199, 20.15229198, 20.07061322, 19.98872658, 19.9066424, 19.82437049, 19.74192018, 19.65930035, 19.57651949, 19.49358566, 19.41050661, 19.32728974, 19.24394212, 19.16047058, 19.07688165, 18.99318164, 18.90937662, 18.82547246, 18.74147483, 18.65738923, 18.57322101, 18.48897533, 18.40465726, 18.32027169, 18.23582343, 18.15131717, 18.0667575, 17.9821489, 17.8974958, 17.81280251, 17.72807331, 17.64331237, 17.55852383, 17.47371176, 17.38888018, 17.30403307, 17.21917434, 17.13430788, 17.04943754, 16.96456713, 16.87970043, 16.79484117, 16.70999308, 16.62515985, 16.54034513, 16.45555257, 16.37078578, 16.28604836, 16.20134388, 16.1166759, 16.03204795, 15.94746355, 15.8629262, 15.77843939, 15.69400657, 15.6096312, 15.52531671, 15.44106653, 15.35688406, 15.27277268, 15.18873577, 15.10477669, 15.02089878, 14.93710537, 14.85339977, 14.76978529, 14.6862652, 14.60284278, 14.51952127, 14.43630392, 14.35319394, 14.27019454, 14.18730892, 14.10454024, 14.02189165, 13.93936631, 13.85696733, 13.77469782, 13.69256087, 13.61055955, 13.5286969, 13.44697597, 13.36539976, 13.28397129, 13.20269352, 13.12156941, 13.0406019, 12.95979391, 12.87914834, 12.79866807, 12.71835596, 12.63821483, 12.55824752, 12.47845681, 12.39884547, 12.31941626, 12.2401719, 12.1611151, 12.08224855, 12.00357489, 11.92509677, 11.84681681, 11.76873758, 11.69086167, 11.61319159, 11.53572989, 11.45847904, 11.38144151, 11.30461975, 11.22801617, 11.15163316, 11.07547309, 10.9995383, 10.9238311, 10.84835377, 10.77310859, 10.69809778, 10.62332354, 10.54878807, 10.4744935, 10.40044197, 10.32663558, 10.25307639, 10.17976644, 10.10670776, 10.03390232, 9.96135208, 9.88905897, 9.8170249, 9.74525173, 9.67374131, 9.60249545, 9.53151594, 9.46080453, 9.39036295, 9.3201929, 9.25029605, 9.18067403, 9.11132846, 9.04226091, 8.97347294, 8.90496607, 8.83674178, 8.76880153, 8.70114677, 8.63377889, 8.56669926, 8.49990922, 8.43341009, 8.36720314, 8.30128963, 8.23567078, 8.17034778, 8.10532179, 8.04059395, 7.97616535, 7.91203707, 7.84821015, 7.78468561, 7.72146441, 7.65854753, 7.59593587, 7.53363033, 7.47163178, 7.40994104, 7.34855893, 7.28748622, 7.22672365, 7.16627193, 7.10613176, 7.04630379, 6.98678866, 6.92758695, 6.86869924, 6.81012608, 6.75186797, 6.69392541, 6.63629884, 6.57898869, 6.52199537, 6.46531925, 6.40896067, 6.35291994, 6.29719736, 6.24179319, 6.18670765, 6.13194096, 6.0774933, 6.02336482, 5.96955564, 5.91606586, 5.86289556, 5.81004479, 5.75751356, 5.70530187, 5.65340969, 5.60183696, 5.55058361, 5.49964952, 5.44903457, 5.3987386, 5.34876143, 5.29910285, 5.24976263, 5.20074053, 5.15203627, 5.10364955, 5.05558004, 5.00782739, 4.96039126, 4.91327123, 4.86646689, 4.81997782, 4.77380355, 4.72794361, 4.68239749, 4.63716468, 4.59224463, 4.54763677, 4.50334053, 4.4593553, 4.41568046, 4.37231537, 4.32925935, 4.28651174, 4.24407182, 4.20193888, 4.16011218, 4.11859097, 4.07737447, 4.03646188, 3.9958524, 3.95554521, 3.91553945, 3.87583426, 3.83642878, 3.79732211, 3.75851333, 3.72000153, 3.68178576, 3.64386507, 3.60623848, 3.56890502, 3.53186368, 3.49511345, 3.45865331, 3.4224822, 3.38659908, 3.35100288, 3.31569252, 3.28066691, 3.24592494, 3.21146549, 3.17728743, 3.14338963, 3.10977093, 3.07643016, 3.04336616, 3.01057774, 2.9780637, 2.94582283, 2.91385393, 2.88215577, 2.85072711, 2.81956671, 2.78867332, 2.75804568, 2.72768252, 2.69758256, 2.66774451, 2.63816709, 2.60884899, 2.5797889, 2.55098552, 2.52243751, 2.49414356, 2.46610232, 2.43831246, 2.41077263, 2.38348148, 2.35643766, 2.32963979, 2.30308652, 2.27677646, 2.25070825, 2.22488051, 2.19929184, 2.17394087, 2.14882619, 2.12394641, 2.09930014, 2.07488597, 2.05070249, 2.02674829, 2.00302198, 1.97952212, 1.95624732, 1.93319615, 1.91036719, 1.88775903, 1.86537024, 1.8431994, 1.82124509, 1.79950588, 1.77798034, 1.75666706, 1.73556461, 1.71467155, 1.69398648, 1.67350795, 1.65323454, 1.63316484, 1.61329741, 1.59363083, 1.57416369, 1.55489455, 1.53582201, 1.51694464, 1.49826102, 1.47976974, 1.46146939, 1.44335856, 1.42543583, 1.40769981, 1.39014908, 1.37278225, 1.35559792, 1.33859469, 1.32177117, 1.30512596, 1.28865769, 1.27236496, 1.25624641, 1.24030064, 1.22452629, 1.20892199, 1.19348638, 1.17821808, 1.16311575, 1.14817804, 1.13340359, 1.11879105, 1.1043391, 1.09004638, 1.07591158, 1.06193337, 1.04811042, 1.03444142, 1.02092506, 1.00756003, 0.99434502, 0.98127876, 0.96835993, 0.95558726, 0.94295947, 0.93047528, 0.91813343, 0.90593265, 0.89387169, 0.88194929, 0.8701642, 0.85851519, 0.84700103, 0.83562048, 0.82437233, 0.81325535, 0.80226835, 0.7914101, 0.78067943, 0.77007514, 0.75959603, 0.74924095, 0.73900871, 0.72889815, 0.7189081, 0.70903743, 0.69928498, 0.68964962, 0.68013021, 0.67072562, 0.66143475, 0.65225647, 0.64318968, 0.63423329, 0.6253862, 0.61664732, 0.60801559, 0.59948992, 0.59106926, 0.58275255, 0.57453873, 0.56642677, 0.55841563, 0.55050427, 0.54269168, 0.53497684, 0.52735874, 0.51983638, 0.51240877, 0.50507492, 0.49783385, 0.49068459, 0.48362616, 0.47665762, 0.469778, 0.46298636, 0.45628177, 0.4496633, 0.44313001, 0.436681, 0.43031534, 0.42403215, 0.41783052, 0.41170956, 0.4056684, 0.39970615, 0.39382195, 0.38801494, 0.38228426, 0.37662906, 0.37104851, 0.36554176, 0.360108, 0.35474641, 0.34945616, 0.34423646, 0.3390865, 0.3340055, 0.32899265, 0.3240472, 0.31916835, 0.31435536, 0.30960745, 0.30492388, 0.30030389, 0.29574675, 0.29125173, 0.2868181, 0.28244514, 0.27813214, 0.27387839, 0.26968318, 0.26554584, 0.26146566, 0.25744196, 0.25347408, 0.24956134, 0.24570308, 0.24189864, 0.23814738, 0.23444864, 0.2308018, 0.22720622, 0.22366128, 0.22016635, 0.21672082, 0.21332409, 0.20997555, 0.20667461, 0.20342067, 0.20021316, 0.1970515, 0.19393511, 0.19086343, 0.18783589, 0.18485194, 0.18191104, 0.17901263, 0.17615619, 0.17334117, 0.17056705, 0.1678333, 0.16513942, 0.16248489, 0.1598692, 0.15729186, 0.15475236, 0.15225023, 0.14978497, 0.1473561, 0.14496316, 0.14260566, 0.14028316, 0.13799518, 0.13574128, 0.133521, 0.1313339, 0.12917955, 0.1270575, 0.12496733, 0.12290861, 0.12088092, 0.11888385, 0.11691699, 0.11497992, 0.11307225, 0.11119359, 0.10934353, 0.10752169, 0.10572769, 0.10396114, 0.10222168, 0.10050893, 0.09882252, 0.0971621, 0.0955273, 0.09391777, 0.09233317, 0.09077314, 0.08923735, 0.08772545, 0.08623712, 0.08477202, 0.08332984, 0.08191024, 0.08051292, 0.07913755, 0.07778382, 0.07645144, 0.0751401, 0.07384949, 0.07257933, 0.07132932, 0.07009918, 0.06888862, 0.06769735, 0.06652511, 0.06537161, 0.06423659, 0.06311978, 0.06202091, 0.06093973, 0.05987598, 0.0588294, 0.05779974, 0.05678676, 0.05579021, 0.05480985, 0.05384544, 0.05289675, 0.05196354, 0.05104558, 0.05014265, 0.04925453, 0.04838099, 0.04752181, 0.04667679, 0.04584571, 0.04502836, 0.04422454, 0.04343404, 0.04265666, 0.04189219, 0.04114046, 0.04040126, 0.0396744, 0.0389597, 0.03825696, 0.03756602, 0.03688668, 0.03621876, 0.0355621, 0.03491652, 0.03428185, 0.03365792, 0.03304457, 0.03244162, 0.03184892, 0.03126631, 0.03069364, 0.03013074, 0.02957746, 0.02903366, 0.02849918, 0.02797388, 0.02745762, 0.02695024, 0.02645162, 0.0259616, 0.02548007, 0.02500687, 0.02454188, 0.02408497, 0.02363601, 0.02319487, 0.02276142, 0.02233555, 0.02191712, 0.02150603, 0.02110215, 0.02070537, 0.02031556, 0.01993263, 0.01955645, 0.01918692, 0.01882392, 0.01846736, 0.01811713, 0.01777311, 0.01743522, 0.01710335, 0.0167774, 0.01645727, 0.01614287, 0.0158341, 0.01553087, 0.01523309, 0.01494067, 0.01465351, 0.01437153, 0.01409465, 0.01382278, 0.01355583, 0.01329372, 0.01303637, 0.01278371, 0.01253564, 0.0122921, 0.012053, 0.01181828, 0.01158785, 0.01136165, 0.01113961, 0.01092164, 0.01070769, 0.01049768, 0.01029155, 0.01008922, 0.00989064, 0.00969574, 0.00950446, 0.00931673, 0.0091325, 0.00895169, 0.00877426, 0.00860014, 0.00842928, 0.00826162, 0.00809711, 0.00793568, 0.00777728, 0.00762187, 0.00746939, 0.00731979, 0.00717301, 0.00702901, 0.00688774, 0.00674915, 0.0066132, 0.00647982, 0.00634899, 0.00622066, 0.00609477, 0.00597129, 0.00585018, 0.00573138, 0.00561487, 0.00550059, 0.00538852, 0.0052786, 0.00517081, 0.00506509, 0.00496142, 0.00485976, 0.00476007, 0.00466231, 0.00456645, 0.00447246, 0.0043803, 0.00428994, 0.00420134, 0.00411448, 0.00402932, 0.00394582, 0.00386397, 0.00378373, 0.00370506, 0.00362794, 0.00355235, 0.00347825, 0.00340561, 0.00333441, 0.00326463, 0.00319623, 0.00312919, 0.00306348, 0.00299908, 0.00293597, 0.00287412, 0.0028135, 0.0027541, 0.00269588, 0.00263884, 0.00258294, 0.00252817, 0.0024745, 0.00242191, 0.00237039, 0.0023199, 0.00227044, 0.00222198, 0.0021745, 0.00212799, 0.00208242, 0.00203778, 0.00199405, 0.00195122, 0.00190926, 0.00186815, 0.00182789, 0.00178846, 0.00174983, 0.001712, 0.00167494, 0.00163865, 0.00160311, 0.0015683, 0.00153422, 0.00150083, 0.00146814, 0.00143613, 0.00140478, 0.00137409, 0.00134403, 0.0013146, 0.00128578, 0.00125757, 0.00122995, 0.0012029, 0.00117642, 0.0011505, 0.00112512, 0.00110028, 0.00107596, 0.00105215, 0.00102884, 0.00100603, 0.0009837, 0.00096184, 0.00094045, 0.00091951, 0.00089902, 0.00087896, 0.00085933, 0.00084011, 0.00082131, 0.00080291, 0.00078491, 0.00076729, 0.00075004, 0.00073317, 0.00071666, 0.00070051, 0.0006847, 0.00066923, 0.0006541, 0.0006393, 0.00062481, 0.00061064, 0.00059678, 0.00058322, 0.00056995, 0.00055697, 0.00054427, 0.00053186, 0.00051971, 0.00050782, 0.0004962, 0.00048483, 0.00047372, 0.00046284, 0.00045221, 0.0004418, 0.00043163, 0.00042168, 0.00041196, 0.00040244, 0.00039314, 0.00038404, 0.00037515, 0.00036645, 0.00035794, 0.00034963, 0.0003415, 0.00033355, 0.00032578, 0.00031818, 0.00031075, 0.00030349, 0.00029639, 0.00028945, 0.00028266, 0.00027603, 0.00026955, 0.00026321, 0.00025702, 0.00025097, 0.00024505, 0.00023927, 0.00023361, 0.00022809, 0.00022269, 0.00021741, 0.00021226, 0.00020722, 0.0002023, 0.00019749, 0.00019278, 0.00018819, 0.0001837, 0.00017932, 0.00017503, 0.00017084, 0.00016675, 0.00016276, 0.00015885, 0.00015504, 0.00015131, 0.00014767, 0.00014411, 0.00014064, 0.00013725, 0.00013393, 0.00013069, 0.00012753, 0.00012444, 0.00012143, 0.00011848, 0.0001156, 0.00011279, 0.00011005, 0.00010737, 0.00010475, 0.00010219, 0.0000997, 0.00009726, 0.00009488, 0.00009255, 0.00009028, 0.00008807, 0.00008591, 0.00008379, 0.00008173, 0.00007972, 0.00007775, 0.00007583, 0.00007396, 0.00007213, 0.00007035, 0.0000686, 0.0000669, 0.00006524, 0.00006362, 0.00006204, 0.0000605, 0.00005899, 0.00005752, 0.00005608, 0.00005468, 0.00005332, 0.00005198, 0.00005068, 0.00004941, 0.00004817, 0.00004696, 0.00004578, 0.00004463, 0.0000435, 0.00004241, 0.00004134, 0.00004029, 0.00003927, 0.00003828, 0.00003731, 0.00003637, 0.00003544, 0.00003454, 0.00003367, 0.00003281, 0.00003197, 0.00003116, 0.00003036, 0.00002959, 0.00002883, 0.0000281, 0.00002738, 0.00002667, 0.00002599, 0.00002532, 0.00002467, 0.00002404, 0.00002342, 0.00002282, 0.00002223, 0.00002166, 0.0000211, 0.00002055, 0.00002002, 0.0000195, 0.00001899, 0.0000185, 0.00001802, 0.00001755, 0.0000171, 0.00001665, 0.00001622, 0.0000158, 0.00001538, 0.00001498, 0.00001459, 0.00001421, 0.00001384, 0.00001347, 0.00001312, 0.00001277, 0.00001244, 0.00001211, 0.00001179, 0.00001148, 0.00001118, 0.00001088, 0.0000106, 0.00001032, 0.00001004, 9.77685214e-06, 9.51762418e-06, 9.2650514e-06, 9.01896892e-06, 8.77921579e-06, 8.5456349e-06, 8.31807286e-06, 8.09637997e-06, 7.88041012e-06, 7.67002066e-06, 7.46507241e-06, 7.26542947e-06, 7.07095924e-06, 6.88153231e-06, 6.69702234e-06, 6.5173061e-06, 6.34226329e-06, 6.1717765e-06, 6.00573119e-06, 5.84401559e-06, 5.68652062e-06, 5.53313984e-06, 5.38376941e-06, 5.23830801e-06, 5.09665678e-06, 4.95871926e-06, 4.82440134e-06, 4.69361123e-06, 4.56625936e-06, 4.44225836e-06, 4.32152298e-06, 4.20397008e-06, 4.08951855e-06, 3.97808927e-06, 3.86960507e-06, 3.76399066e-06, 3.66117264e-06, 3.56107938e-06, 3.46364105e-06, 3.36878952e-06, 3.27645836e-06, 3.18658277e-06, 3.09909957e-06, 3.01394716e-06, 2.93106544e-06, 2.8503958e-06, 2.77188114e-06, 2.69546571e-06, 2.62109521e-06, 2.54871665e-06, 2.4782784e-06, 2.40973013e-06, 2.3430227e-06, 2.27810827e-06, 2.21494018e-06, 2.15347295e-06, 2.09366222e-06, 2.03546475e-06, 1.97883841e-06, 1.92374212e-06, 1.87013583e-06, 1.81798052e-06, 1.76723815e-06, 1.71787161e-06, 1.66984479e-06, 1.62312246e-06, 1.57767028e-06, 1.53345478e-06, 1.49044338e-06, 1.44860429e-06, 1.40790654e-06, 1.36831996e-06, 1.32981515e-06, 1.29236345e-06, 1.25593692e-06, 1.22050839e-06, 1.18605134e-06, 1.15253994e-06, 1.11994902e-06, 1.08825407e-06, 1.05743119e-06, 1.02745715e-06, 9.98309247e-07, 9.69965399e-07, 9.424041e-07, 9.15604403e-07, 8.89545873e-07, 8.64208644e-07, 8.39573332e-07, 8.15621092e-07, 7.92333523e-07, 7.69692733e-07, 7.47681312e-07, 7.26282266e-07, 7.05479053e-07, 6.852556e-07, 6.6559619e-07, 6.46485589e-07, 6.27908904e-07, 6.09851654e-07, 5.92299756e-07, 5.75239469e-07, 5.58657419e-07, 5.42540604e-07, 5.26876349e-07, 5.11652289e-07, 4.96856444e-07, 4.82477105e-07, 4.68502876e-07, 4.54922684e-07, 4.41725732e-07, 4.28901515e-07, 4.16439818e-07, 4.04330663e-07, 3.92564374e-07, 3.81131528e-07, 3.70022931e-07, 3.59229659e-07, 3.48743001e-07, 3.385545e-07, 3.28655915e-07, 3.19039245e-07, 3.09696659e-07, 3.00620584e-07, 2.9180363e-07, 2.83238606e-07, 2.74918506e-07, 2.66836523e-07, 2.58986034e-07, 2.51360603e-07, 2.43953934e-07, 2.36759959e-07, 2.29772695e-07, 2.22986401e-07, 2.16395449e-07, 2.09994369e-07, 2.0377783e-07, 1.97740661e-07, 1.91877845e-07, 1.86184465e-07, 1.80655775e-07, 1.75287113e-07, 1.70074003e-07, 1.65012054e-07, 1.60096988e-07, 1.5532467e-07, 1.50691065e-07, 1.46192235e-07, 1.41824387e-07, 1.37583797e-07, 1.33466855e-07, 1.29470067e-07, 1.25590006e-07, 1.21823362e-07, 1.18166895e-07, 1.14617478e-07, 1.11172071e-07, 1.07827674e-07, 1.04581446e-07, 1.01430544e-07, 9.83722686e-08, 9.54039479e-08, 9.25230239e-08, 8.97269814e-08, 8.70133903e-08, 8.43798773e-08, 8.18241404e-08, 7.93439483e-08, 7.69371269e-08, 7.46015445e-08, 7.2335169e-08, 7.01359966e-08, 6.80020804e-08, 6.59315447e-08, 6.39225419e-08, 6.19732958e-08, 6.00820727e-08, 5.82471955e-08, 5.6467016e-08, 5.47399708e-08, 5.30644968e-08, 5.14390877e-08, 4.98622938e-08, 4.83326943e-08, 4.68489105e-08, 4.5409621e-08, 4.4013504e-08, 4.2659309e-08, 4.13457997e-08, 4.00717965e-08, 3.88361485e-08, 3.76377045e-08, 3.64753845e-08, 3.53481227e-08, 3.42548958e-08, 3.3194695e-08, 3.21665539e-08, 3.11695203e-08, 3.02026848e-08, 2.92651521e-08, 2.83560553e-08, 2.74745418e-08, 2.66198157e-08, 2.57910671e-08, 2.49875285e-08, 2.4208461e-08, 2.34531257e-08, 2.27208261e-08, 2.20108802e-08, 2.13226059e-08, 2.06553779e-08, 2.00085424e-08, 1.93815168e-08, 1.87737044e-08, 1.81845223e-08, 1.76134023e-08, 1.70598327e-08, 1.65232592e-08, 1.60031988e-08, 1.54991397e-08, 1.5010599e-08, 1.45371217e-08, 1.4078239e-08, 1.36335245e-08, 1.32025519e-08, 1.27848949e-08, 1.23801556e-08, 1.19879502e-08, 1.16079093e-08, 1.1239635e-08, 1.08828004e-08, 1.05370361e-08, 1.02020294e-08, 9.8774251e-09, 9.56293889e-09, 9.25824395e-09, 8.96304186e-09, 8.67704841e-09, 8.39997938e-09, 8.13157897e-09, 7.87156296e-09, 7.61967556e-09, 7.37567518e-09, 7.13933446e-09, 6.91038338e-09, 6.6886372e-09, 6.47384013e-09, 6.26580743e-09, 6.06429751e-09, 5.86913984e-09, 5.68013547e-09, 5.49708545e-09, 5.31980504e-09, 5.14812371e-09, 4.9818567e-09, 4.82084772e-09, 4.66494043e-09, 4.51396431e-09, 4.36777725e-09, 4.22622293e-09, 4.08915923e-09, 3.95644406e-09, 3.82794951e-09, 3.70354769e-09, 3.58309649e-09, 3.46648221e-09, 3.35357697e-09, 3.24428129e-09, 3.13846726e-09, 3.03603542e-09, 2.93688629e-09, 2.84090618e-09, 2.7479814e-09, 2.65805511e-09, 2.57099941e-09, 2.48674326e-09, 2.40518716e-09, 2.32624586e-09, 2.24984831e-09, 2.17590923e-09, 2.10434337e-09, 2.03509387e-09, 1.96807548e-09, 1.90321714e-09, 1.84044779e-09, 1.7797106e-09, 1.72093451e-09, 1.66406267e-09, 1.60903824e-09, 1.55579016e-09, 1.50427582e-09, 1.45442414e-09, 1.4061925e-09, 1.35952405e-09, 1.31439037e-09, 1.27070621e-09, 1.22845734e-09, 1.18758692e-09, 1.14803811e-09, 1.10978249e-09, 1.07277742e-09, 1.03699449e-09, 1.00236264e-09, 9.68881864e-10, 9.36481115e-10, 9.0514618e-10, 8.74848638e-10, 8.45545856e-10, 8.171952e-10, 7.89782462e-10, 7.63265007e-10, 7.37628625e-10, 7.12830683e-10, 6.88856971e-10, 6.65664857e-10, 6.43240128e-10, 6.21554364e-10, 6.00593353e-10, 5.80328674e-10, 5.60717694e-10, 5.41774625e-10, 5.23442623e-10, 5.05735898e-10, 4.88611818e-10, 4.72041961e-10, 4.56040539e-10, 4.40564918e-10, 4.25600888e-10, 4.11148449e-10, 3.97164968e-10, 3.83650445e-10, 3.70590669e-10, 3.57957219e-10, 3.45764306e-10, 3.33955086e-10, 3.2255798e-10, 3.11544568e-10, 3.00886427e-10, 2.90597768e-10, 2.8065017e-10, 2.71043632e-10, 2.61749733e-10, 2.52768473e-10, 2.44099851e-10, 2.35715447e-10, 2.2761526e-10, 2.19785079e-10, 2.12224904e-10, 2.04920525e-10, 1.9785773e-10, 1.9103652e-10, 1.84442683e-10, 1.7807622e-10, 1.7192292e-10, 1.65982783e-10, 1.60241598e-10, 1.54685154e-10, 1.49327661e-10, 1.4415491e-10, 1.39152689e-10, 1.34320999e-10, 1.29659838e-10, 1.25154997e-10, 1.20806476e-10, 1.16600063e-10, 1.12535758e-10, 1.08613563e-10, 1.04833475e-10, 1.01167075e-10, 9.76427827e-11, 9.42321776e-11, 9.09352593e-11, 8.77520279e-11, 8.46824832e-11, 8.17124146e-11, 7.88560328e-11, 7.60849161e-11, 7.34132755e-11, 7.08411108e-11, 6.83542112e-11, 6.59525767e-11, 6.36219966e-11, 6.13908924e-11, 5.92166316e-11, 5.71418468e-11, 5.51239054e-11, 5.31770183e-11, 5.13011855e-11, 4.94821961e-11, 4.7734261e-11, 4.60431693e-11, 4.4408921e-11, 4.2845727e-11, 4.13251655e-11, 3.98614475e-11, 3.8440362e-11, 3.707612e-11, 3.57545105e-11, 3.44897444e-11, 3.32534e-11, 3.20738991e-11, 3.09370307e-11, 2.9828584e-11, 2.87627699e-11, 2.77395884e-11, 2.67448286e-11, 2.57927013e-11, 2.48689958e-11, 2.39737119e-11, 2.31210606e-11, 2.22826202e-11, 2.14868123e-11, 2.07194262e-11, 1.99804617e-11, 1.92557081e-11, 1.85593763e-11, 1.78914661e-11, 1.72519776e-11, 1.66267e-11, 1.60298441e-11, 1.54471991e-11, 1.48929757e-11, 1.43529633e-11, 1.38413725e-11, 1.33439926e-11, 1.28608235e-11, 1.23918653e-11, 1.1937118e-11, 1.15107923e-11, 1.10844667e-11, 1.06865627e-11, 1.03028697e-11, 9.91917659e-12, 9.56390522e-12, 9.22284471e-12, 8.8817842e-12, 8.55493454e-12, 8.24229573e-12, 7.94386779e-12, 7.65965069e-12, 7.3754336e-12, 7.10542736e-12, 6.84963197e-12, 6.59383659e-12, 6.35225206e-12, 6.12487838e-12, 5.89750471e-12, 5.68434189e-12, 5.47117907e-12, 5.2722271e-12, 5.07327513e-12, 4.88853402e-12, 4.70379291e-12, 4.53326265e-12, 4.37694325e-12, 4.206413e-12, 4.05009359e-12, 3.90798505e-12, 3.7658765e-12, 3.62376795e-12, 3.48165941e-12, 3.35376171e-12, 3.24007488e-12, 3.11217718e-12, 2.99849034e-12, 2.88480351e-12, 2.78532752e-12, 2.67164069e-12, 2.5721647e-12, 2.48689958e-12, 2.38742359e-12, 2.30215846e-12, 2.21689334e-12, 2.13162821e-12, 2.04636308e-12, 1.97530881e-12, 1.90425453e-12, 1.83320026e-12, 1.76214598e-12, 1.69109171e-12, 1.63424829e-12, 1.57740487e-12, 1.5063506e-12, 1.44950718e-12, 1.40687462e-12, 1.3500312e-12, 1.29318778e-12, 1.25055521e-12, 1.20792265e-12, 1.15107923e-12, 1.10844667e-12, 1.0658141e-12, 1.03739239e-12, 9.9475983e-13, 9.52127266e-13, 9.23705556e-13, 8.81072992e-13, 8.52651283e-13, 8.24229573e-13, 7.81597009e-13, 7.531753e-13, 7.2475359e-13, 6.96331881e-13, 6.67910172e-13, 6.53699317e-13, 6.25277607e-13, 5.96855898e-13, 5.82645043e-13, 5.54223334e-13, 5.40012479e-13, 5.1159077e-13, 4.97379915e-13, 4.68958206e-13, 4.54747351e-13, 4.40536496e-13, 4.26325641e-13, 4.12114787e-13, 3.97903932e-13, 3.83693077e-13, 3.55271368e-13, 3.55271368e-13, 3.41060513e-13, 3.26849658e-13, 3.12638804e-13, 2.98427949e-13, 2.84217094e-13, 2.7000624e-13, 2.7000624e-13, 2.55795385e-13, 2.4158453e-13, 2.4158453e-13, 2.27373675e-13, 2.13162821e-13, 2.13162821e-13, 1.98951966e-13, 1.98951966e-13, 1.84741111e-13, 1.84741111e-13, 1.70530257e-13, 1.70530257e-13, 1.56319402e-13, 1.56319402e-13, 1.42108547e-13, 1.42108547e-13, 1.42108547e-13, 1.27897692e-13, 1.27897692e-13, 1.13686838e-13, 1.13686838e-13, 1.13686838e-13, 1.13686838e-13, 9.9475983e-14, 9.9475983e-14, 9.9475983e-14, 8.52651283e-14, 8.52651283e-14, 8.52651283e-14, 8.52651283e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.6614696, 6.6652349, 6.67151464, 6.6803152, 6.69164551, 6.70551708, 6.721944, 6.74094298, 6.76253332, 6.78673702, 6.8135787, 6.84308574, 6.87528823, 6.91021904, 6.94791387, 6.98841128, 7.03175273, 7.07798263, 7.12714843, 7.17930063, 7.23449283, 7.29278187, 7.35422778, 7.41889396, 7.48684718, 7.55815765, 7.63289915, 7.71114906, 7.79298845, 7.87850216, 7.96777891, 8.06091134, 8.15799614, 8.2591341, 8.36443023, 8.47399382, 8.58793855, 8.70638257, 8.82944858, 8.95726393, 9.08996066, 9.22767565, 9.37055063, 9.51873229, 9.67237231, 9.83162747, 9.99665962, 10.16763582, 10.34472829, 10.52811447, 10.71797699, 10.91450373, 11.11788769, 11.32832706, 11.54602506, 11.7711899, 12.00403465, 12.24477712, 12.49363966, 12.75084897, 13.01663584, 13.29123492, 13.57488435, 13.8678254, 14.17030209, 14.48256068, 14.80484919, 15.13741679, 15.48051317, 15.83438786, 16.1992894, 16.57546457, 16.96315741, 17.36260825, 17.77405267, 18.1977203, 18.63383363, 19.08260666, 19.54424354, 20.0189371, 20.50686727, 21.0081995, 21.52308302, 22.05164911, 22.59400928, 23.1502534, 23.7204478, 24.30463334, 24.90282343, 25.51500212, 26.14112215, 26.78110306, 27.43482932, 28.10214859, 28.78287002, 29.47676275, 30.18355444, 30.90293009, 31.63453098, 32.37795387, 33.13275046, 33.89842705, 34.6744446, 35.460219, 36.25512179, 37.05848112, 37.86958313, 38.68767369, 39.51196052, 40.34161566, 41.1757783, 42.01355798, 42.85403814, 43.69627991, 44.53932626, 45.38220636, 46.22394011, 47.06354292, 47.90003053, 48.73242395, 49.55975437, 50.38106811, 51.19543137, 52.00193499, 52.79969884, 53.58787617, 54.36565749, 55.13227431, 55.88700235, 56.62916452, 57.3581334, 58.07333333, 58.77424204, 59.46039187, 60.13137057, 60.78682159, 61.42644406, 62.04999226, 62.65727484, 63.24815356, 63.8225418, 64.38040277, 64.92174739, 65.44663208, 65.95515624, 66.44745965, 66.92371974, 67.38414875, 67.82899089, 68.25851944, 68.67303382, 69.07285681, 69.45833168, 69.82981949, 70.18769644, 70.53235131, 70.86418308, 71.18359859, 71.49101042, 71.7868348, 72.0714898, 72.34539354, 72.60896258, 72.86261054, 73.10674668, 73.34177479, 73.56809212, 73.78608843, 73.99614521, 74.19863499, 74.39392069, 74.58235521, 74.764281, 74.94002973, 75.10992209, 75.2742676, 75.43336454, 75.58749992, 75.73694947, 75.88197773, 76.02283816, 76.15977327, 76.29301482, 76.42278403, 76.54929179, 76.67273892, 76.79331646, 76.91120593, 77.02657964, 77.13960098, 77.25042472, 77.35919734, 77.46605736, 77.5711356, 77.67455552, 77.77643353, 77.87687932, 77.9759961, 78.07388093, 78.170625, 78.26631393, 78.36102801, 78.45484246, 78.54782772, 78.64004969, 78.73156993, 78.82244593, 78.91273133, 79.00247609, 79.09172675, 79.18052657, 79.26891575, 79.35693162, 79.44460876, 79.5319792, 79.61907256, 79.7059162, 79.79253535, 79.87895325, 79.96519129, 80.05126908, 80.1372046, 80.2230143, 80.30871321, 80.39431499, 80.47983206, 80.56527568, 80.65065602, 80.73598221, 80.82126245, 80.90650406, 80.99171355, 81.07689663, 81.16205833, 81.24720302, 81.33233444, 81.41745578, 81.5025697, 81.58767836, 81.67278349, 81.75788637, 81.84298793, 81.92808871, 82.01318894, 82.09828855, 82.18338716, 82.26848416, 82.35357869, 82.43866966, 82.5237558, 82.60883563, 82.69390753, 82.77896969, 82.86402019, 82.94905694, 83.03407777, 83.11908037, 83.20406235, 83.28902123, 83.37395442, 83.4588593, 83.54373313, 83.62857316, 83.71337655, 83.79814043, 83.88286187, 83.9675379, 84.05216554, 84.13674176, 84.22126349, 84.30572766, 84.39013118, 84.47447092, 84.55874375, 84.64294653, 84.7270761, 84.81112931, 84.89510298, 84.97899395, 85.06279904, 85.14651508, 85.2301389, 85.31366733, 85.3970972, 85.48042535, 85.56364864, 85.6467639, 85.72976801, 85.81265784, 85.89543027, 85.97808218, 86.06061049, 86.14301211, 86.22528396, 86.307423, 86.38942618, 86.47129047, 86.55301286, 86.63459036, 86.71601998, 86.79729877, 86.87842379, 86.95939209, 87.04020079, 87.12084698, 87.20132781, 87.28164041, 87.36178197, 87.44174966, 87.52154071, 87.60115235, 87.68058182, 87.75982641, 87.83888342, 87.91775015, 87.99642397, 88.07490223, 88.15318231, 88.23126165, 88.30913766, 88.38680781, 88.46426959, 88.54152051, 88.61855809, 88.69537991, 88.77198353, 88.84836658, 88.92452668, 89.0004615, 89.07616873, 89.15164607, 89.22689128, 89.30190211, 89.37667636, 89.45121185, 89.52550642, 89.59955796, 89.67336436, 89.74692356, 89.82023351, 89.8932922, 89.96609765, 90.03864789, 90.110941, 90.18297508, 90.25474825, 90.32625867, 90.39750453, 90.46848405, 90.53919546, 90.60963704, 90.67980709, 90.74970394, 90.81932596, 90.88867153, 90.95773908, 91.02652705, 91.09503393, 91.16325822, 91.23119846, 91.29885323, 91.36622111, 91.43330074, 91.50009078, 91.56658991, 91.63279686, 91.69871037, 91.76432922, 91.82965222, 91.89467821, 91.95940605, 92.02383465, 92.08796293, 92.15178984, 92.21531439, 92.27853559, 92.34145247, 92.40406413, 92.46636967, 92.52836822, 92.59005896, 92.65144107, 92.71251378, 92.77327635, 92.83372807, 92.89386824, 92.95369621, 93.01321134, 93.07241305, 93.13130076, 93.18987392, 93.24813203, 93.30607459, 93.36370116, 93.42101131, 93.47800463, 93.53468075, 93.59103933, 93.64708006, 93.70280264, 93.75820681, 93.81329235, 93.86805904, 93.9225067, 93.97663518, 94.03044436, 94.08393414, 94.13710444, 94.18995521, 94.24248644, 94.29469813, 94.34659031, 94.39816304, 94.44941639, 94.50035048, 94.55096543, 94.6012614, 94.65123857, 94.70089715, 94.75023737, 94.79925947, 94.84796373, 94.89635045, 94.94441996, 94.99217261, 95.03960874, 95.08672877, 95.13353311, 95.18002218, 95.22619645, 95.27205639, 95.31760251, 95.36283532, 95.40775537, 95.45236323, 95.49665947, 95.5406447, 95.58431954, 95.62768463, 95.67074065, 95.71348826, 95.75592818, 95.79806112, 95.83988782, 95.88140903, 95.92262553, 95.96353812, 96.0041476, 96.04445479, 96.08446055, 96.12416574, 96.16357122, 96.20267789, 96.24148667, 96.27999847, 96.31821424, 96.35613493, 96.39376152, 96.43109498, 96.46813632, 96.50488655, 96.54134669, 96.5775178, 96.61340092, 96.64899712, 96.68430748, 96.71933309, 96.75407506, 96.78853451, 96.82271257, 96.85661037, 96.89022907, 96.92356984, 96.95663384, 96.98942226, 97.0219363, 97.05417717, 97.08614607, 97.11784423, 97.14927289, 97.18043329, 97.21132668, 97.24195432, 97.27231748, 97.30241744, 97.33225549, 97.36183291, 97.39115101, 97.4202111, 97.44901448, 97.47756249, 97.50585644, 97.53389768, 97.56168754, 97.58922737, 97.61651852, 97.64356234, 97.67036021, 97.69691348, 97.72322354, 97.74929175, 97.77511949, 97.80070816, 97.82605913, 97.85117381, 97.87605359, 97.90069986, 97.92511403, 97.94929751, 97.97325171, 97.99697802, 98.02047788, 98.04375268, 98.06680385, 98.08963281, 98.11224097, 98.13462976, 98.1568006, 98.17875491, 98.20049412, 98.22201966, 98.24333294, 98.26443539, 98.28532845, 98.30601352, 98.32649205, 98.34676546, 98.36683516, 98.38670259, 98.40636917, 98.42583631, 98.44510545, 98.46417799, 98.48305536, 98.50173898, 98.52023026, 98.53853061, 98.55664144, 98.57456417, 98.59230019, 98.60985092, 98.62721775, 98.64440208, 98.66140531, 98.67822883, 98.69487404, 98.71134231, 98.72763504, 98.74375359, 98.75969936, 98.77547371, 98.79107801, 98.80651362, 98.82178192, 98.83688425, 98.85182196, 98.86659641, 98.88120895, 98.8956609, 98.90995362, 98.92408842, 98.93806663, 98.95188958, 98.96555858, 98.97907494, 98.99243997, 99.00565498, 99.01872124, 99.03164007, 99.04441274, 99.05704053, 99.06952472, 99.08186657, 99.09406735, 99.10612831, 99.11805071, 99.1298358, 99.14148481, 99.15299897, 99.16437952, 99.17562767, 99.18674465, 99.19773165, 99.2085899, 99.21932057, 99.22992486, 99.24040397, 99.25075905, 99.26099129, 99.27110185, 99.2810919, 99.29096257, 99.30071502, 99.31035038, 99.31986979, 99.32927438, 99.33856525, 99.34774353, 99.35681032, 99.36576671, 99.3746138, 99.38335268, 99.39198441, 99.40051008, 99.40893074, 99.41724745, 99.42546127, 99.43357323, 99.44158437, 99.44949573, 99.45730832, 99.46502316, 99.47264126, 99.48016362, 99.48759123, 99.49492508, 99.50216615, 99.50931541, 99.51637384, 99.52334238, 99.530222, 99.53701364, 99.54371823, 99.5503367, 99.55686999, 99.563319, 99.56968466, 99.57596785, 99.58216948, 99.58829044, 99.5943316, 99.60029385, 99.60617805, 99.61198506, 99.61771574, 99.62337094, 99.62895149, 99.63445824, 99.639892, 99.64525359, 99.65054384, 99.65576354, 99.6609135, 99.6659945, 99.67100735, 99.6759528, 99.68083165, 99.68564464, 99.69039255, 99.69507612, 99.69969611, 99.70425325, 99.70874827, 99.7131819, 99.71755486, 99.72186786, 99.72612161, 99.73031682, 99.73445416, 99.73853434, 99.74255804, 99.74652592, 99.75043866, 99.75429692, 99.75810136, 99.76185262, 99.76555136, 99.7691982, 99.77279378, 99.77633872, 99.77983365, 99.78327918, 99.78667591, 99.79002445, 99.79332539, 99.79657933, 99.79978684, 99.8029485, 99.80606489, 99.80913657, 99.81216411, 99.81514806, 99.81808896, 99.82098737, 99.82384381, 99.82665883, 99.82943295, 99.8321667, 99.83486058, 99.83751511, 99.8401308, 99.84270814, 99.84524764, 99.84774977, 99.85021503, 99.8526439, 99.85503684, 99.85739434, 99.85971684, 99.86200482, 99.86425872, 99.866479, 99.8686661, 99.87082045, 99.8729425, 99.87503267, 99.87709139, 99.87911908, 99.88111615, 99.88308301, 99.88502008, 99.88692775, 99.88880641, 99.89065647, 99.89247831, 99.89427231, 99.89603886, 99.89777832, 99.89949107, 99.90117748, 99.9028379, 99.9044727, 99.90608223, 99.90766683, 99.90922686, 99.91076265, 99.91227455, 99.91376288, 99.91522798, 99.91667016, 99.91808976, 99.91948708, 99.92086245, 99.92221618, 99.92354856, 99.9248599, 99.92615051, 99.92742067, 99.92867068, 99.92990082, 99.93111138, 99.93230265, 99.93347489, 99.93462839, 99.93576341, 99.93688022, 99.93797909, 99.93906027, 99.94012402, 99.9411706, 99.94220026, 99.94321324, 99.94420979, 99.94519015, 99.94615456, 99.94710325, 99.94803646, 99.94895442, 99.94985735, 99.95074547, 99.95161901, 99.95247819, 99.95332321, 99.95415429, 99.95497164, 99.95577546, 99.95656596, 99.95734334, 99.95810781, 99.95885954, 99.95959874, 99.9603256, 99.9610403, 99.96174304, 99.96243398, 99.96311332, 99.96378124, 99.9644379, 99.96508348, 99.96571815, 99.96634208, 99.96695543, 99.96755838, 99.96815108, 99.96873369, 99.96930636, 99.96986926, 99.97042254, 99.97096634, 99.97150082, 99.97202612, 99.97254238, 99.97304976, 99.97354838, 99.9740384, 99.97451993, 99.97499313, 99.97545812, 99.97591503, 99.97636399, 99.97680513, 99.97723858, 99.97766445, 99.97808288, 99.97849397, 99.97889785, 99.97929463, 99.97968444, 99.98006737, 99.98044355, 99.98081308, 99.98117608, 99.98153264, 99.98188287, 99.98222689, 99.98256478, 99.98289665, 99.9832226, 99.98354273, 99.98385713, 99.9841659, 99.98446913, 99.98476691, 99.98505933, 99.98534649, 99.98562847, 99.98590535, 99.98617722, 99.98644417, 99.98670628, 99.98696363, 99.98721629, 99.98746436, 99.9877079, 99.987947, 99.98818172, 99.98841215, 99.98863835, 99.98886039, 99.98907836, 99.98929231, 99.98950232, 99.98970845, 99.98991078, 99.99010936, 99.99030426, 99.99049554, 99.99068327, 99.9908675, 99.99104831, 99.99122574, 99.99139986, 99.99157072, 99.99173838, 99.99190289, 99.99206432, 99.99222272, 99.99237813, 99.99253061, 99.99268021, 99.99282699, 99.99297099, 99.99311226, 99.99325085, 99.9933868, 99.99352018, 99.99365101, 99.99377934, 99.99390523, 99.99402871, 99.99414982, 99.99426862, 99.99438513, 99.99449941, 99.99461148, 99.9947214, 99.99482919, 99.99493491, 99.99503858, 99.99514024, 99.99523993, 99.99533769, 99.99543355, 99.99552754, 99.9956197, 99.99571006, 99.99579866, 99.99588552, 99.99597068, 99.99605418, 99.99613603, 99.99621627, 99.99629494, 99.99637206, 99.99644765, 99.99652175, 99.99659439, 99.99666559, 99.99673537, 99.99680377, 99.99687081, 99.99693652, 99.99700092, 99.99706403, 99.99712588, 99.9971865, 99.9972459, 99.99730412, 99.99736116, 99.99741706, 99.99747183, 99.9975255, 99.99757809, 99.99762961, 99.9976801, 99.99772956, 99.99777802, 99.9978255, 99.99787201, 99.99791758, 99.99796222, 99.99800595, 99.99804878, 99.99809074, 99.99813185, 99.99817211, 99.99821154, 99.99825017, 99.998288, 99.99832506, 99.99836135, 99.99839689, 99.9984317, 99.99846578, 99.99849917, 99.99853186, 99.99856387, 99.99859522, 99.99862591, 99.99865597, 99.9986854, 99.99871422, 99.99874243, 99.99877005, 99.9987971, 99.99882358, 99.9988495, 99.99887488, 99.99889972, 99.99892404, 99.99894785, 99.99897116, 99.99899397, 99.9990163, 99.99903816, 99.99905955, 99.99908049, 99.99910098, 99.99912104, 99.99914067, 99.99915989, 99.99917869, 99.99919709, 99.99921509, 99.99923271, 99.99924996, 99.99926683, 99.99928334, 99.99929949, 99.9993153, 99.99933077, 99.9993459, 99.9993607, 99.99937519, 99.99938936, 99.99940322, 99.99941678, 99.99943005, 99.99944303, 99.99945573, 99.99946814, 99.99948029, 99.99949218, 99.9995038, 99.99951517, 99.99952628, 99.99953716, 99.99954779, 99.9995582, 99.99956837, 99.99957832, 99.99958804, 99.99959756, 99.99960686, 99.99961596, 99.99962485, 99.99963355, 99.99964206, 99.99965037, 99.9996585, 99.99966645, 99.99967422, 99.99968182, 99.99968925, 99.99969651, 99.99970361, 99.99971055, 99.99971734, 99.99972397, 99.99973045, 99.99973679, 99.99974298, 99.99974903, 99.99975495, 99.99976073, 99.99976639, 99.99977191, 99.99977731, 99.99978259, 99.99978774, 99.99979278, 99.9997977, 99.99980251, 99.99980722, 99.99981181, 99.9998163, 99.99982068, 99.99982497, 99.99982916, 99.99983325, 99.99983724, 99.99984115, 99.99984496, 99.99984869, 99.99985233, 99.99985589, 99.99985936, 99.99986275, 99.99986607, 99.99986931, 99.99987247, 99.99987556, 99.99987857, 99.99988152, 99.9998844, 99.99988721, 99.99988995, 99.99989263, 99.99989525, 99.99989781, 99.9999003, 99.99990274, 99.99990512, 99.99990745, 99.99990972, 99.99991193, 99.99991409, 99.99991621, 99.99991827, 99.99992028, 99.99992225, 99.99992417, 99.99992604, 99.99992787, 99.99992965, 99.9999314, 99.9999331, 99.99993476, 99.99993638, 99.99993796, 99.9999395, 99.99994101, 99.99994248, 99.99994392, 99.99994532, 99.99994668, 99.99994802, 99.99994932, 99.99995059, 99.99995183, 99.99995304, 99.99995422, 99.99995537, 99.9999565, 99.99995759, 99.99995866, 99.99995971, 99.99996073, 99.99996172, 99.99996269, 99.99996363, 99.99996456, 99.99996546, 99.99996633, 99.99996719, 99.99996803, 99.99996884, 99.99996964, 99.99997041, 99.99997117, 99.9999719, 99.99997262, 99.99997333, 99.99997401, 99.99997468, 99.99997533, 99.99997596, 99.99997658, 99.99997718, 99.99997777, 99.99997834, 99.9999789, 99.99997945, 99.99997998, 99.9999805, 99.99998101, 99.9999815, 99.99998198, 99.99998245, 99.9999829, 99.99998335, 99.99998378, 99.9999842, 99.99998462, 99.99998502, 99.99998541, 99.99998579, 99.99998616, 99.99998653, 99.99998688, 99.99998723, 99.99998756, 99.99998789, 99.99998821, 99.99998852, 99.99998882, 99.99998912, 99.9999894, 99.99998968, 99.99998996, 99.99999022, 99.99999048, 99.99999073, 99.99999098, 99.99999122, 99.99999145, 99.99999168, 99.9999919, 99.99999212, 99.99999233, 99.99999253, 99.99999273, 99.99999293, 99.99999312, 99.9999933, 99.99999348, 99.99999366, 99.99999383, 99.99999399, 99.99999416, 99.99999431, 99.99999447, 99.99999462, 99.99999476, 99.9999949, 99.99999504, 99.99999518, 99.99999531, 99.99999543, 99.99999556, 99.99999568, 99.9999958, 99.99999591, 99.99999602, 99.99999613, 99.99999624, 99.99999634, 99.99999644, 99.99999654, 99.99999663, 99.99999672, 99.99999681, 99.9999969, 99.99999699, 99.99999707, 99.99999715, 99.99999723, 99.9999973, 99.99999738, 99.99999745, 99.99999752, 99.99999759, 99.99999766, 99.99999772, 99.99999779, 99.99999785, 99.99999791, 99.99999796, 99.99999802, 99.99999808, 99.99999813, 99.99999818, 99.99999823, 99.99999828, 99.99999833, 99.99999838, 99.99999842, 99.99999847, 99.99999851, 99.99999855, 99.99999859, 99.99999863, 99.99999867, 99.99999871, 99.99999874, 99.99999878, 99.99999881, 99.99999885, 99.99999888, 99.99999891, 99.99999894, 99.99999897, 99.999999, 99.99999903, 99.99999906, 99.99999908, 99.99999911, 99.99999914, 99.99999916, 99.99999918, 99.99999921, 99.99999923, 99.99999925, 99.99999927, 99.99999929, 99.99999931, 99.99999933, 99.99999935, 99.99999937, 99.99999939, 99.99999941, 99.99999942, 99.99999944, 99.99999946, 99.99999947, 99.99999949, 99.9999995, 99.99999952, 99.99999953, 99.99999955, 99.99999956, 99.99999957, 99.99999958, 99.9999996, 99.99999961, 99.99999962, 99.99999963, 99.99999964, 99.99999965, 99.99999966, 99.99999967, 99.99999968, 99.99999969, 99.9999997, 99.99999971, 99.99999972, 99.99999973, 99.99999973, 99.99999974, 99.99999975, 99.99999976, 99.99999976, 99.99999977, 99.99999978, 99.99999978, 99.99999979, 99.9999998, 99.9999998, 99.99999981, 99.99999981, 99.99999982, 99.99999982, 99.99999983, 99.99999983, 99.99999984, 99.99999984, 99.99999985, 99.99999985, 99.99999986, 99.99999986, 99.99999987, 99.99999987, 99.99999987, 99.99999988, 99.99999988, 99.99999989, 99.99999989, 99.99999989, 99.9999999, 99.9999999, 99.9999999, 99.9999999, 99.99999991, 99.99999991, 99.99999991, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_LMCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "component_matrix", "component.contribution.matrix"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ID", "sample_code", "n.components", "Im1", "xm1", "b1", "b1.error", "n01", "n01.error", "cs1", "rel_cs1", "Im2", "xm2", "b2", "b2.error", "n02", "n02.error", "cs2", "rel_cs2", "Im3", "xm3", "b3", "b3.error", "n03", "n03.error", "cs3", "rel_cs3", "Im4", "xm4", "b4", "b4.error", "n04", "n04.error", "cs4", "rel_cs4", "Im5", "xm5", "b5", "b5.error", "n05", "n05.error", "cs5", "rel_cs5", "Im6", "xm6", "b6", "b6.error", "n06", "n06.error", "cs6", "rel_cs6", "Im7", "xm7", "b7", "b7.error", "n07", "n07.error", "cs7", "rel_cs7", "pseudo-R^2"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": [""] }, { "type": "character", "attributes": {}, "value": [""] }, { "type": "double", "attributes": {}, "value": [3] }, { "type": "double", "attributes": {}, "value": [168.29850149] }, { "type": "double", "attributes": {}, "value": [49.46442021] }, { "type": "double", "attributes": {}, "value": [1.63483582] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [13725.2547171] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1.91933367e-17] }, { "type": "double", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [21.02902012] }, { "type": "double", "attributes": {}, "value": [237.95276548] }, { "type": "double", "attributes": {}, "value": [0.07064452] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [8250.05861344] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [8.29382398e-19] }, { "type": "double", "attributes": {}, "value": [0.0432] }, { "type": "double", "attributes": {}, "value": [405.13425297] }, { "type": "double", "attributes": {}, "value": [1592.07687449] }, { "type": "double", "attributes": {}, "value": [0.00157809] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1063433.25746963] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1.85271347e-20] }, { "type": "double", "attributes": {}, "value": [0.001] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [0.9155] } ] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [4000, 5] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["TIME", "SUM", "COMP_ 1", "COMP_ 2", "COMP_ 3"] } ] } }, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 6.17374077, 12.34059872, 18.49370505, 24.62621903, 30.7313419, 36.80233065, 42.8325117, 48.81529433, 54.74418389, 60.61279474, 66.41486287, 72.1442582, 77.79499647, 83.36125076, 88.8373625, 94.21785212, 99.49742909, 104.67100148, 109.73368502, 114.6808115, 119.50793667, 124.21084744, 128.78556857, 133.22836858, 137.53576517, 141.70452985, 145.73169198, 149.61454213, 153.35063471, 156.93779003, 160.3740956, 163.6579068, 166.78784689, 169.76280638, 172.5819417, 175.24467331, 177.75068319, 180.09991162, 182.29255356, 184.32905429, 186.21010465, 187.93663562, 189.50981256, 190.93102883, 192.20189904, 193.3242519, 194.30012262, 195.13174496, 195.821543, 196.37212251, 196.78626215, 197.06690435, 197.217146, 197.24022895, 197.13953041, 196.91855314, 196.58091561, 196.13034209, 195.5706527, 194.90575343, 194.13962628, 193.2763193, 192.31993687, 191.27462996, 190.1445866, 188.93402244, 187.64717157, 186.28827744, 184.86158406, 183.37132744, 181.82172722, 180.21697867, 178.5612449, 176.85864937, 175.11326879, 173.32912623, 171.51018465, 169.66034077, 167.7834192, 165.88316702, 163.96324872, 162.02724138, 160.07863038, 158.12080534, 156.15705649, 154.19057141, 152.22443206, 150.26161224, 148.30497536, 146.35727258, 144.42114121, 142.49910357, 140.59356606, 138.70681859, 136.84103428, 134.99826952, 133.18046422, 131.38944239, 129.62691296, 127.89447083, 126.19359821, 124.52566607, 122.89193592, 121.29356171, 119.73159191, 118.20697177, 116.7205458, 115.27306022, 113.86516575, 112.49742035, 111.17029212, 109.88416232, 108.63932843, 107.43600725, 106.27433812, 105.15438614, 104.07614542, 103.03954237, 102.04443898, 101.0906361, 100.17787675, 99.30584936, 98.47419103, 97.68249071, 96.93029238, 96.21709817, 95.54237142, 94.90553968, 94.30599764, 93.74311004, 93.21621442, 92.72462383, 92.26762952, 91.84450344, 91.4545007, 91.09686198, 90.77081577, 90.47558057, 90.21036701, 89.9743798, 89.76681964, 89.58688508, 89.43377416, 89.30668607, 89.20482266, 89.12738988, 89.07359909, 89.04266836, 89.03382359, 89.04629959, 89.07934108, 89.13220362, 89.20415438, 89.29447296, 89.40245202, 89.52739791, 89.66863119, 89.82548711, 89.99731602, 90.18348371, 90.38337168, 90.59637741, 90.82191449, 91.05941281, 91.30831857, 91.56809439, 91.83821927, 92.11818854, 92.40751382, 92.70572287, 93.01235947, 93.32698327, 93.64916955, 93.97850902, 94.31460761, 94.65708616, 95.00558016, 95.35973949, 95.71922807, 96.08372356, 96.45291702, 96.82651259, 97.20422717, 97.58578998, 97.97094233, 98.35943717, 98.75103876, 99.14552233, 99.5426737, 99.94228895, 100.34417404, 100.74814444, 101.15402485, 101.5616488, 101.97085834, 102.38150368, 102.79344291, 103.20654162, 103.62067265, 104.03571576, 104.45155729, 104.86808996, 105.2852125, 105.70282943, 106.12085078, 106.53919183, 106.95777285, 107.37651889, 107.79535952, 108.21422861, 108.63306414, 109.05180795, 109.47040558, 109.88880604, 110.30696166, 110.72482791, 111.14236321, 111.55952879, 111.9762885, 112.39260873, 112.8084582, 113.22380786, 113.63863076, 114.05290192, 114.46659824, 114.87969835, 115.29218253, 115.70403261, 116.11523188, 116.52576498, 116.93561785, 117.34477762, 117.75323256, 118.16097198, 118.56798618, 118.97426641, 119.37980475, 119.78459414, 120.18862823, 120.59190141, 120.99440872, 121.39614582, 121.79710896, 122.19729491, 122.59670097, 122.99532487, 123.39316483, 123.79021943, 124.18648766, 124.58196886, 124.97666269, 125.37056913, 125.76368845, 126.15602118, 126.54756809, 126.93833021, 127.32830875, 127.71750516, 128.10592106, 128.49355823, 128.88041863, 129.26650438, 129.65181772, 130.03636104, 130.42013685, 130.80314776, 131.18539651, 131.56688592, 131.94761892, 132.32759851, 132.7068278, 133.08530994, 133.46304819, 133.84004584, 134.21630626, 134.5918329, 134.96662922, 135.34069877, 135.71404514, 136.08667195, 136.45858289, 136.82978165, 137.20027201, 137.57005775, 137.93914269, 138.30753069, 138.67522564, 139.04223145, 139.40855207, 139.77419146, 140.13915362, 140.50344255, 140.86706231, 141.23001695, 141.59231053, 141.95394717, 142.31493098, 142.67526607, 143.03495661, 143.39400675, 143.75242066, 144.11020254, 144.46735658, 144.823887, 145.17979801, 145.53509386, 145.88977878, 146.24385704, 146.59733288, 146.95021057, 147.30249441, 147.65418866, 148.00529761, 148.35582557, 148.70577682, 149.05515569, 149.40396646, 149.75221347, 150.09990101, 150.44703342, 150.793615, 151.13965009, 151.48514301, 151.83009807, 152.17451962, 152.51841196, 152.86177942, 153.20462633, 153.54695701, 153.88877578, 154.23008695, 154.57089484, 154.91120377, 155.25101803, 155.59034194, 155.9291798, 156.26753589, 156.60541452, 156.94281997, 157.2797565, 157.61622841, 157.95223995, 158.28779539, 158.62289897, 158.95755495, 159.29176755, 159.625541, 159.95887953, 160.29178734, 160.62426864, 160.95632761, 161.28796843, 161.61919528, 161.95001231, 162.28042367, 162.6104335, 162.94004592, 163.26926504, 163.59809497, 163.92653978, 164.25460356, 164.58229036, 164.90960422, 165.23654919, 165.56312928, 165.88934849, 166.2152108, 166.5407202, 166.86588064, 167.19069606, 167.51517039, 167.83930753, 168.16311139, 168.48658582, 168.80973469, 169.13256185, 169.45507111, 169.77726628, 170.09915115, 170.42072949, 170.74200504, 171.06298153, 171.38366268, 171.70405218, 172.02415371, 172.3439709, 172.66350741, 172.98276683, 173.30175276, 173.62046878, 173.93891843, 174.25710523, 174.57503271, 174.89270434, 175.21012359, 175.5272939, 175.84421869, 176.16090136, 176.47734528, 176.79355381, 177.10953028, 177.42527799, 177.74080023, 178.05610027, 178.37118132, 178.68604662, 179.00069935, 179.31514267, 179.62937973, 179.94341365, 180.25724751, 180.5708844, 180.88432734, 181.19757937, 181.51064348, 181.82352263, 182.13621978, 182.44873784, 182.7610797, 183.07324825, 183.38524631, 183.69707671, 184.00874224, 184.32024567, 184.63158974, 184.94277716, 185.25381063, 185.56469281, 185.87542633, 186.1860138, 186.49645781, 186.80676092, 187.11692566, 187.42695454, 187.73685003, 188.04661459, 188.35625064, 188.66576059, 188.9751468, 189.28441162, 189.59355737, 189.90258635, 190.21150081, 190.52030301, 190.82899514, 191.1375794, 191.44605795, 191.75443291, 192.06270639, 192.37088047, 192.6789572, 192.9869386, 193.29482668, 193.6026234, 193.9103307, 194.21795051, 194.52548471, 194.83293516, 195.14030371, 195.44759215, 195.75480228, 196.06193586, 196.3689946, 196.67598021, 196.98289437, 197.28973873, 197.59651492, 197.90322452, 198.2098691, 198.51645022, 198.82296939, 199.1294281, 199.43582782, 199.74216998, 200.04845599, 200.35468725, 200.66086511, 200.96699092, 201.27306596, 201.57909154, 201.88506891, 202.19099929, 202.4968839, 202.80272392, 203.1085205, 203.41427477, 203.71998783, 204.02566077, 204.33129464, 204.63689047, 204.94244927, 205.24797201, 205.55345965, 205.85891312, 206.16433333, 206.46972116, 206.77507747, 207.08040309, 207.38569883, 207.69096547, 207.99620378, 208.3014145, 208.60659835, 208.911756, 209.21688813, 209.52199539, 209.8270784, 210.13213775, 210.43717402, 210.74218776, 211.04717951, 211.35214976, 211.65709902, 211.96202773, 212.26693635, 212.57182528, 212.87669494, 213.18154568, 213.48637788, 213.79119185, 214.09598792, 214.40076636, 214.70552746, 215.01027145, 215.31499858, 215.61970903, 215.92440301, 216.22908067, 216.53374217, 216.83838762, 217.14301714, 217.44763082, 217.75222871, 218.05681087, 218.36137732, 218.66592808, 218.97046313, 219.27498245, 219.57948599, 219.88397368, 220.18844544, 220.49290117, 220.79734075, 221.10176404, 221.40617088, 221.7105611, 222.01493451, 222.31929091, 222.62363006, 222.92795172, 223.23225564, 223.53654155, 223.84080914, 224.14505811, 224.44928814, 224.75349888, 225.05768999, 225.36186108, 225.66601177, 225.97014167, 226.27425034, 226.57833736, 226.88240229, 227.18644465, 227.49046397, 227.79445976, 228.09843152, 228.40237872, 228.70630083, 229.0101973, 229.31406758, 229.61791109, 229.92172724, 230.22551543, 230.52927505, 230.83300547, 231.13670605, 231.44037614, 231.74401508, 232.04762219, 232.35119678, 232.65473816, 232.95824561, 233.26171841, 233.56515583, 233.86855711, 234.17192151, 234.47524825, 234.77853656, 235.08178565, 235.38499473, 235.68816297, 235.99128956, 236.29437367, 236.59741447, 236.9004111, 237.2033627, 237.50626842, 237.80912736, 238.11193864, 238.41470138, 238.71741466, 239.02007757, 239.32268919, 239.6252486, 239.92775485, 240.230207, 240.5326041, 240.83494519, 241.13722929, 241.43945543, 241.74162263, 242.0437299, 242.34577623, 242.64776063, 242.94968209, 243.25153958, 243.55333209, 243.85505857, 244.156718, 244.45830933, 244.75983152, 245.0612835, 245.36266422, 245.66397262, 245.96520761, 246.26636813, 246.5674531, 246.86846142, 247.16939201, 247.47024377, 247.77101559, 248.07170639, 248.37231503, 248.67284042, 248.97328142, 249.27363693, 249.57390582, 249.87408694, 250.17417918, 250.4741814, 250.77409245, 251.07391119, 251.37363648, 251.67326716, 251.97280209, 252.2722401, 252.57158004, 252.87082076, 253.16996107, 253.46899983, 253.76793586, 254.06676799, 254.36549506, 254.66411588, 254.96262928, 255.26103408, 255.55932911, 255.85751318, 256.15558511, 256.45354372, 256.75138782, 257.04911623, 257.34672776, 257.64422123, 257.94159543, 258.23884919, 258.53598132, 258.83299061, 259.12987589, 259.42663597, 259.72326964, 260.01977571, 260.31615301, 260.61240032, 260.90851647, 261.20450026, 261.50035049, 261.79606598, 262.09164553, 262.38708796, 262.68239207, 262.97755667, 263.27258059, 263.56746262, 263.86220158, 264.15679628, 264.45124555, 264.74554819, 265.03970303, 265.33370888, 265.62756455, 265.92126888, 266.21482069, 266.50821879, 266.80146202, 267.0945492, 267.38747916, 267.68025073, 267.97286274, 268.26531403, 268.55760344, 268.84972979, 269.14169194, 269.43348873, 269.72511899, 270.01658158, 270.30787535, 270.59899915, 270.88995183, 271.18073224, 271.47133926, 271.76177173, 272.05202852, 272.34210851, 272.63201056, 272.92173353, 273.21127632, 273.50063779, 273.78981682, 274.07881231, 274.36762313, 274.65624818, 274.94468635, 275.23293653, 275.52099763, 275.80886855, 276.09654819, 276.38403547, 276.67132929, 276.95842857, 277.24533223, 277.53203919, 277.81854838, 278.10485872, 278.39096916, 278.67687863, 278.96258606, 279.24809041, 279.53339061, 279.81848562, 280.1033744, 280.3880559, 280.67252909, 280.95679293, 281.24084639, 281.52468844, 281.80831807, 282.09173426, 282.37493599, 282.65792224, 282.94069202, 283.22324433, 283.50557815, 283.7876925, 284.06958639, 284.35125884, 284.63270885, 284.91393545, 285.19493767, 285.47571453, 285.75626508, 286.03658835, 286.31668338, 286.59654921, 286.87618491, 287.15558952, 287.43476211, 287.71370174, 287.99240747, 288.27087838, 288.54911354, 288.82711204, 289.10487296, 289.38239539, 289.65967843, 289.93672117, 290.21352271, 290.49008216, 290.76639864, 291.04247125, 291.31829912, 291.59388138, 291.86921714, 292.14430555, 292.41914573, 292.69373684, 292.96807802, 293.24216842, 293.51600718, 293.78959349, 294.06292648, 294.33600534, 294.60882924, 294.88139735, 295.15370886, 295.42576294, 295.6975588, 295.96909562, 296.2403726, 296.51138894, 296.78214386, 297.05263657, 297.32286627, 297.5928322, 297.86253357, 298.13196962, 298.40113958, 298.67004268, 298.93867817, 299.2070453, 299.47514331, 299.74297147, 300.01052903, 300.27781525, 300.5448294, 300.81157076, 301.07803861, 301.34423221, 301.61015087, 301.87579386, 302.14116049, 302.40625004, 302.67106183, 302.93559515, 303.19984932, 303.46382366, 303.72751748, 303.9909301, 304.25406086, 304.51690909, 304.77947411, 305.04175527, 305.30375192, 305.5654634, 305.82688906, 306.08802827, 306.34888037, 306.60944474, 306.86972074, 307.12970775, 307.38940514, 307.64881229, 307.90792859, 308.16675342, 308.42528619, 308.68352627, 308.94147308, 309.19912602, 309.45648449, 309.71354791, 309.9703157, 310.22678727, 310.48296205, 310.73883946, 310.99441893, 311.24969991, 311.50468183, 311.75936413, 312.01374625, 312.26782766, 312.5216078, 312.77508612, 313.0282621, 313.28113519, 313.53370487, 313.7859706, 314.03793187, 314.28958815, 314.54093892, 314.79198367, 315.04272189, 315.29315307, 315.54327672, 315.79309233, 316.04259941, 316.29179746, 316.54068599, 316.78926453, 317.03753258, 317.28548968, 317.53313533, 317.78046908, 318.02749045, 318.27419898, 318.52059421, 318.76667567, 319.01244292, 319.2578955, 319.50303296, 319.74785486, 319.99236075, 320.2365502, 320.48042277, 320.72397803, 320.96721554, 321.21013488, 321.45273563, 321.69501737, 321.93697968, 322.17862215, 322.41994436, 322.66094591, 322.90162639, 323.14198541, 323.38202255, 323.62173743, 323.86112966, 324.10019883, 324.33894458, 324.5773665, 324.81546422, 325.05323737, 325.29068555, 325.52780842, 325.76460558, 326.00107668, 326.23722135, 326.47303923, 326.70852996, 326.94369318, 327.17852854, 327.4130357, 327.64721429, 327.88106398, 328.11458442, 328.34777527, 328.5806362, 328.81316686, 329.04536694, 329.27723609, 329.50877399, 329.73998031, 329.97085474, 330.20139695, 330.43160662, 330.66148345, 330.89102711, 331.1202373, 331.34911371, 331.57765604, 331.80586398, 332.03373723, 332.26127549, 332.48847847, 332.71534588, 332.94187742, 333.16807281, 333.39393175, 333.61945397, 333.84463918, 334.0694871, 334.29399746, 334.51816998, 334.74200438, 334.9655004, 335.18865777, 335.41147621, 335.63395547, 335.85609529, 336.0778954, 336.29935554, 336.52047546, 336.74125491, 336.96169363, 337.18179137, 337.40154789, 337.62096294, 337.84003627, 338.05876764, 338.27715682, 338.49520357, 338.71290764, 338.93026881, 339.14728684, 339.36396151, 339.58029258, 339.79627983, 340.01192303, 340.22722196, 340.4421764, 340.65678614, 340.87105094, 341.08497061, 341.29854492, 341.51177366, 341.72465662, 341.9371936, 342.14938438, 342.36122877, 342.57272656, 342.78387754, 342.99468152, 343.2051383, 343.41524769, 343.62500948, 343.83442349, 344.04348953, 344.25220739, 344.46057691, 344.66859788, 344.87627013, 345.08359348, 345.29056773, 345.49719271, 345.70346824, 345.90939414, 346.11497025, 346.32019637, 346.52507235, 346.72959801, 346.93377318, 347.13759769, 347.34107138, 347.54419408, 347.74696563, 347.94938586, 348.15145462, 348.35317174, 348.55453707, 348.75555046, 348.95621173, 349.15652075, 349.35647736, 349.55608141, 349.75533274, 349.95423122, 350.15277669, 350.35096901, 350.54880803, 350.74629362, 350.94342562, 351.14020391, 351.33662833, 351.53269876, 351.72841506, 351.92377708, 352.1187847, 352.31343779, 352.50773621, 352.70167984, 352.89526854, 353.08850218, 353.28138065, 353.47390381, 353.66607154, 353.85788373, 354.04934023, 354.24044095, 354.43118575, 354.62157452, 354.81160714, 355.0012835, 355.19060347, 355.37956696, 355.56817384, 355.75642401, 355.94431735, 356.13185376, 356.31903312, 356.50585533, 356.69232029, 356.87842789, 357.06417802, 357.24957059, 357.43460549, 357.61928262, 357.80360189, 357.98756319, 358.17116643, 358.35441151, 358.53729833, 358.71982681, 358.90199685, 359.08380835, 359.26526123, 359.4463554, 359.62709076, 359.80746723, 359.98748473, 360.16714316, 360.34644244, 360.52538249, 360.70396322, 360.88218455, 361.06004641, 361.2375487, 361.41469135, 361.59147429, 361.76789743, 361.9439607, 362.11966402, 362.29500732, 362.46999053, 362.64461356, 362.81887636, 362.99277885, 363.16632095, 363.3395026, 363.51232374, 363.68478429, 363.85688419, 364.02862337, 364.20000176, 364.37101931, 364.54167595, 364.71197162, 364.88190626, 365.0514798, 365.22069219, 365.38954337, 365.55803327, 365.72616186, 365.89392905, 366.06133482, 366.22837908, 366.39506181, 366.56138293, 366.7273424, 366.89294017, 367.05817619, 367.22305041, 367.38756277, 367.55171324, 367.71550176, 367.87892829, 368.04199278, 368.20469519, 368.36703547, 368.52901358, 368.69062948, 368.85188312, 369.01277447, 369.17330349, 369.33347013, 369.49327436, 369.65271614, 369.81179543, 369.9705122, 370.12886641, 370.28685802, 370.44448701, 370.60175333, 370.75865696, 370.91519787, 371.07137602, 371.22719138, 371.38264393, 371.53773363, 371.69246046, 371.84682439, 372.00082539, 372.15446344, 372.30773851, 372.46065058, 372.61319962, 372.76538561, 372.91720853, 373.06866836, 373.21976508, 373.37049866, 373.52086908, 373.67087633, 373.8205204, 373.96980125, 374.11871888, 374.26727327, 374.41546441, 374.56329227, 374.71075685, 374.85785813, 375.00459611, 375.15097076, 375.29698207, 375.44263005, 375.58791467, 375.73283592, 375.87739381, 376.02158831, 376.16541944, 376.30888716, 376.45199149, 376.59473242, 376.73710994, 376.87912404, 377.02077474, 377.16206201, 377.30298587, 377.4435463, 377.58374331, 377.72357691, 377.86304708, 378.00215383, 378.14089717, 378.27927709, 378.4172936, 378.55494671, 378.69223641, 378.82916272, 378.96572563, 379.10192517, 379.23776132, 379.37323411, 379.50834353, 379.6430896, 379.77747233, 379.91149173, 380.04514781, 380.17844058, 380.31137005, 380.44393624, 380.57613916, 380.70797882, 380.83945523, 380.97056843, 381.10131841, 381.2317052, 381.36172881, 381.49138926, 381.62068657, 381.74962076, 381.87819185, 382.00639985, 382.1342448, 382.2617267, 382.38884559, 382.51560148, 382.6419944, 382.76802438, 382.89369143, 383.01899558, 383.14393686, 383.26851529, 383.3927309, 383.51658373, 383.64007379, 383.76320111, 383.88596573, 384.00836767, 384.13040696, 384.25208364, 384.37339774, 384.49434929, 384.61493832, 384.73516487, 384.85502896, 384.97453064, 385.09366994, 385.21244689, 385.33086153, 385.4489139, 385.56660404, 385.68393198, 385.80089776, 385.91750143, 386.03374301, 386.14962256, 386.26514011, 386.3802957, 386.49508938, 386.60952119, 386.72359117, 386.83729937, 386.95064583, 387.06363059, 387.1762537, 387.28851521, 387.40041517, 387.51195361, 387.62313059, 387.73394616, 387.84440037, 387.95449326, 388.06422489, 388.1735953, 388.28260455, 388.39125269, 388.49953977, 388.60746584, 388.71503096, 388.82223519, 388.92907857, 389.03556116, 389.14168302, 389.2474442, 389.35284476, 389.45788476, 389.56256426, 389.66688331, 389.77084197, 389.8744403, 389.97767837, 390.08055623, 390.18307394, 390.28523157, 390.38702918, 390.48846683, 390.58954458, 390.6902625, 390.79062066, 390.89061911, 390.99025793, 391.08953718, 391.18845692, 391.28701723, 391.38521817, 391.48305981, 391.58054222, 391.67766546, 391.77442962, 391.87083475, 391.96688093, 392.06256824, 392.15789673, 392.2528665, 392.3474776, 392.44173011, 392.53562411, 392.62915968, 392.72233688, 392.81515579, 392.90761649, 392.99971906, 393.09146357, 393.18285011, 393.27387874, 393.36454955, 393.45486263, 393.54481804, 393.63441587, 393.7236562, 393.81253911, 393.90106469, 393.98923302, 394.07704417, 394.16449824, 394.25159531, 394.33833547, 394.42471879, 394.51074536, 394.59641528, 394.68172863, 394.76668549, 394.85128595, 394.93553011, 395.01941805, 395.10294986, 395.18612563, 395.26894545, 395.35140941, 395.43351761, 395.51527013, 395.59666707, 395.67770853, 395.75839459, 395.83872535, 395.9187009, 395.99832135, 396.07758678, 396.15649729, 396.23505298, 396.31325394, 396.39110028, 396.46859209, 396.54572948, 396.62251253, 396.69894135, 396.77501604, 396.8507367, 396.92610344, 397.00111635, 397.07577553, 397.1500811, 397.22403315, 397.29763178, 397.37087711, 397.44376923, 397.51630825, 397.58849428, 397.66032742, 397.73180779, 397.80293548, 397.87371061, 397.94413328, 398.0142036, 398.08392169, 398.15328765, 398.22230159, 398.29096363, 398.35927387, 398.42723242, 398.49483941, 398.56209494, 398.62899912, 398.69555207, 398.76175391, 398.82760475, 398.89310469, 398.95825387, 399.0230524, 399.08750038, 399.15159795, 399.21534522, 399.2787423, 399.34178931, 399.40448638, 399.46683363, 399.52883116, 399.59047912, 399.6517776, 399.71272675, 399.77332668, 399.8335775, 399.89347936, 399.95303236, 400.01223664, 400.07109231, 400.12959951, 400.18775835, 400.24556897, 400.30303149, 400.36014604, 400.41691275, 400.47333174, 400.52940314, 400.58512708, 400.64050369, 400.6955331, 400.75021544, 400.80455084, 400.85853944, 400.91218136, 400.96547673, 401.0184257, 401.07102838, 401.12328493, 401.17519546, 401.22676012, 401.27797903, 401.32885234, 401.37938019, 401.4295627, 401.47940001, 401.52889227, 401.57803961, 401.62684216, 401.67530007, 401.72341348, 401.77118253, 401.81860735, 401.86568808, 401.91242488, 401.95881787, 402.00486721, 402.05057302, 402.09593547, 402.14095469, 402.18563082, 402.22996401, 402.2739544, 402.31760214, 402.36090738, 402.40387025, 402.44649092, 402.48876951, 402.53070619, 402.5723011, 402.61355439, 402.6544662, 402.6950367, 402.73526601, 402.77515431, 402.81470173, 402.85390843, 402.89277456, 402.93130027, 402.96948571, 403.00733105, 403.04483642, 403.08200199, 403.11882791, 403.15531433, 403.19146141, 403.2272693, 403.26273817, 403.29786816, 403.33265944, 403.36711216, 403.40122648, 403.43500255, 403.46844055, 403.50154062, 403.53430292, 403.56672762, 403.59881487, 403.63056484, 403.66197769, 403.69305358, 403.72379267, 403.75419513, 403.78426111, 403.81399079, 403.84338432, 403.87244187, 403.90116361, 403.92954969, 403.95760029, 403.98531558, 404.01269571, 404.03974086, 404.06645119, 404.09282687, 404.11886806, 404.14457495, 404.1699477, 404.19498647, 404.21969143, 404.24406276, 404.26810064, 404.29180522, 404.31517668, 404.33821519, 404.36092093, 404.38329406, 404.40533477, 404.42704322, 404.4484196, 404.46946406, 404.4901768, 404.51055798, 404.53060778, 404.55032638, 404.56971395, 404.58877067, 404.60749672, 404.62589228, 404.64395752, 404.66169263, 404.67909778, 404.69617315, 404.71291892, 404.72933527, 404.74542239, 404.76118046, 404.77660965, 404.79171015, 404.80648214, 404.8209258, 404.83504132, 404.84882888, 404.86228867, 404.87542087, 404.88822566, 404.90070323, 404.91285377, 404.92467745, 404.93617448, 404.94734503, 404.9581893, 404.96870746, 404.97889971, 404.98876624, 404.99830724, 405.00752289, 405.01641338, 405.02497891, 405.03321967, 405.04113584, 405.04872762, 405.0559952, 405.06293877, 405.06955852, 405.07585465, 405.08182735, 405.08747682, 405.09280324, 405.09780681, 405.10248773, 405.1068462, 405.1108824, 405.11459653, 405.11798879, 405.12105939, 405.1238085, 405.12623634, 405.12834309, 405.13012897, 405.13159416, 405.13273886, 405.13356328, 405.13406762, 405.13425207, 405.13411683, 405.13366211, 405.13288811, 405.13179503, 405.13038307, 405.12865243, 405.12660332, 405.12423594, 405.1215505, 405.11854719, 405.11522622, 405.1115878, 405.10763213, 405.10335942, 405.09876987, 405.09386369, 405.08864108, 405.08310226, 405.07724743, 405.07107679, 405.06459056, 405.05778894, 405.05067215, 405.04324039, 405.03549387, 405.0274328, 405.01905739, 405.01036785, 405.00136439, 404.99204723, 404.98241657, 404.97247264, 404.96221563, 404.95164576, 404.94076325, 404.92956831, 404.91806115, 404.90624199, 404.89411104, 404.88166852, 404.86891464, 404.85584961, 404.84247366, 404.828787, 404.81478984, 404.80048241, 404.78586491, 404.77093758, 404.75570062, 404.74015425, 404.7242987, 404.70813418, 404.69166091, 404.67487911, 404.65778901, 404.64039081, 404.62268475, 404.60467104, 404.5863499, 404.56772157, 404.54878625, 404.52954417, 404.50999556, 404.49014063, 404.46997962, 404.44951274, 404.42874021, 404.40766228, 404.38627915, 404.36459105, 404.34259821, 404.32030086, 404.29769922, 404.27479351, 404.25158397, 404.22807082, 404.20425429, 404.1801346, 404.15571199, 404.13098669, 404.10595891, 404.0806289, 404.05499688, 404.02906308, 404.00282772, 403.97629105, 403.94945329, 403.92231468, 403.89487543, 403.8671358, 403.839096, 403.81075627, 403.78211684, 403.75317795, 403.72393983, 403.69440272, 403.66456683, 403.63443242, 403.60399972, 403.57326896, 403.54224037, 403.51091419, 403.47929066, 403.44737001, 403.41515248, 403.38263831, 403.34982773, 403.31672099, 403.28331831, 403.24961994, 403.21562611, 403.18133706, 403.14675304, 403.11187428, 403.07670102, 403.0412335, 403.00547197, 402.96941665, 402.9330678, 402.89642564, 402.85949044, 402.82226242, 402.78474182, 402.7469289, 402.70882389, 402.67042704, 402.63173858, 402.59275877, 402.55348784, 402.51392604, 402.47407362, 402.43393081, 402.39349787, 402.35277504, 402.31176256, 402.27046068, 402.22886965, 402.18698971, 402.14482111, 402.10236409, 402.05961891, 402.01658581, 401.97326503, 401.92965683, 401.88576146, 401.84157916, 401.79711018, 401.75235477, 401.70731319, 401.66198567, 401.61637248, 401.57047385, 401.52429005, 401.47782132, 401.43106791, 401.38403008, 401.33670807, 401.28910214, 401.24121254, 401.19303953, 401.14458335, 401.09584426, 401.04682251, 400.99751836, 400.94793206, 400.89806386, 400.84791402, 400.79748279, 400.74677043, 400.69577719, 400.64450333, 400.5929491, 400.54111477, 400.48900058, 400.43660679, 400.38393367, 400.33098146, 400.27775042, 400.22424082, 400.17045291, 400.11638694, 400.06204318, 400.00742188, 399.95252331, 399.89734771, 399.84189536, 399.78616652, 399.73016143, 399.67388036, 399.61732358, 399.56049134, 399.5033839, 399.44600153, 399.38834448, 399.33041302, 399.2722074, 399.2137279, 399.15497478, 399.09594829, 399.0366487, 398.97707627, 398.91723127, 398.85711395, 398.79672459, 398.73606345, 398.67513079, 398.61392688, 398.55245197, 398.49070634, 398.42869026, 398.36640398, 398.30384777, 398.2410219, 398.17792664, 398.11456225, 398.050929, 397.98702715, 397.92285697, 397.85841873, 397.7937127, 397.72873915, 397.66349834, 397.59799054, 397.53221602, 397.46617505, 397.3998679, 397.33329483, 397.26645612, 397.19935204, 397.13198286, 397.06434884, 396.99645025, 396.92828738, 396.85986048, 396.79116983, 396.72221571, 396.65299837, 396.5835181, 396.51377516, 396.44376984, 396.37350239, 396.30297309, 396.23218222, 396.16113005, 396.08981685, 396.0182429, 395.94640846, 395.87431382, 395.80195924, 395.72934501, 395.65647139, 395.58333866, 395.5099471, 395.43629697, 395.36238856, 395.28822214, 395.21379799, 395.13911638, 395.0641776, 394.9889819, 394.91352958, 394.83782091, 394.76185616, 394.68563561, 394.60915955, 394.53242824, 394.45544197, 394.37820101, 394.30070564, 394.22295614, 394.14495279, 394.06669587, 393.98818565, 393.90942242, 393.83040645, 393.75113803, 393.67161743, 393.59184494, 393.51182083, 393.43154538, 393.35101888, 393.2702416, 393.18921383, 393.10793585, 393.02640793, 392.94463037, 392.86260343, 392.78032741, 392.69780258, 392.61502924, 392.53200765, 392.4487381, 392.36522088, 392.28145627, 392.19744454, 392.11318599, 392.0286809, 391.94392955, 391.85893223, 391.77368921, 391.68820079, 391.60246724, 391.51648886, 391.43026592, 391.34379871, 391.25708752, 391.17013263, 391.08293433, 390.9954929, 390.90780863, 390.8198818, 390.7317127, 390.64330162, 390.55464884, 390.46575465, 390.37661933, 390.28724318, 390.19762648, 390.10776951, 390.01767256, 389.92733593, 389.8367599, 389.74594475, 389.65489078, 389.56359828, 389.47206752, 389.3802988, 389.28829241, 389.19604864, 389.10356778, 389.01085011, 388.91789592, 388.82470551, 388.73127916, 388.63761717, 388.54371981, 388.4495874, 388.3552202, 388.26061852, 388.16578264, 388.07071285, 387.97540945, 387.87987273, 387.78410297, 387.68810047, 387.59186553, 387.49539842, 387.39869944, 387.30176889, 387.20460706, 387.10721423, 387.00959071, 386.91173677, 386.81365273, 386.71533886, 386.61679546, 386.51802282, 386.41902125, 386.31979102, 386.22033243, 386.12064578, 386.02073136, 385.92058947, 385.82022039, 385.71962442, 385.61880186, 385.517753, 385.41647813, 385.31497755, 385.21325156, 385.11130044, 385.00912449, 384.90672402, 384.8040993, 384.70125064, 384.59817834, 384.49488269, 384.39136398, 384.28762251, 384.18365857, 384.07947247, 383.97506449, 383.87043494, 383.76558412, 383.6605123, 383.5552198, 383.44970692, 383.34397393, 383.23802116, 383.13184888, 383.0254574, 382.91884702, 382.81201803, 382.70497073, 382.59770542, 382.49022239, 382.38252195, 382.27460439, 382.16647, 382.0581191, 381.94955197, 381.84076891, 381.73177023, 381.62255622, 381.51312717, 381.4034834, 381.29362519, 381.18355285, 381.07326668, 380.96276697, 380.85205402, 380.74112814, 380.62998962, 380.51863876, 380.40707586, 380.29530123, 380.18331515, 380.07111794, 379.95870989, 379.8460913, 379.73326248, 379.62022372, 379.50697531, 379.39351758, 379.2798508, 379.16597529, 379.05189135, 378.93759928, 378.82309937, 378.70839192, 378.59347725, 378.47835565, 378.36302742, 378.24749287, 378.13175229, 378.01580599, 377.89965426, 377.78329742, 377.66673576, 377.54996958, 377.43299918, 377.31582488, 377.19844696, 377.08086574, 376.96308151, 376.84509458, 376.72690525, 376.60851382, 376.48992059, 376.37112588, 376.25212997, 376.13293317, 376.01353579, 375.89393813, 375.7741405, 375.65414318, 375.5339465, 375.41355074, 375.29295622, 375.17216324, 375.0511721, 374.92998311, 374.80859657, 374.68701277, 374.56523204, 374.44325466, 374.32108095, 374.1987112, 374.07614573, 373.95338483, 373.83042881, 373.70727798, 373.58393264, 373.46039308, 373.33665963, 373.21273257, 373.08861223, 372.96429889, 372.83979287, 372.71509446, 372.59020398, 372.46512173, 372.33984802, 372.21438314, 372.08872741, 371.96288112, 371.83684459, 371.71061812, 371.58420201, 371.45759657, 371.3308021, 371.20381892, 371.07664731, 370.9492876, 370.82174008, 370.69400507, 370.56608286, 370.43797376, 370.30967808, 370.18119612, 370.05252819, 369.92367459, 369.79463564, 369.66541163, 369.53600287, 369.40640967, 369.27663233, 369.14667116, 369.01652647, 368.88619855, 368.75568773, 368.6249943, 368.49411856, 368.36306084, 368.23182142, 368.10040062, 367.96879875, 367.8370161, 367.705053, 367.57290973, 367.44058662, 367.30808396, 367.17540206, 367.04254124, 366.90950178, 366.77628401, 366.64288823, 366.50931474, 366.37556385, 366.24163587, 366.1075311, 365.97324985, 365.83879244, 365.70415915, 365.56935031, 365.43436621, 365.29920717, 365.16387349, 365.02836548, 364.89268344, 364.75682769, 364.62079852, 364.48459624, 364.34822117, 364.21167361, 364.07495386, 363.93806224, 363.80099905, 363.66376459, 363.52635917, 363.38878311, 363.2510367, 363.11312026, 362.97503409, 362.83677849, 362.69835378, 362.55976027, 362.42099825, 362.28206804, 362.14296994, 362.00370426, 361.86427131, 361.72467139, 361.58490481, 361.44497188, 361.30487291, 361.1646082, 361.02417806, 360.88358279, 360.74282271, 360.60189812, 360.46080932, 360.31955663, 360.17814035, 360.03656079, 359.89481825, 359.75291305, 359.61084548, 359.46861586, 359.3262245, 359.18367169, 359.04095776, 358.89808299, 358.75504771, 358.61185221, 358.46849681, 358.32498181, 358.18130752, 358.03747425, 357.8934823, 357.74933198, 357.60502359, 357.46055745, 357.31593385, 357.17115312, 357.02621554, 356.88112144, 356.73587111, 356.59046487, 356.44490302, 356.29918586, 356.15331371, 356.00728687, 355.86110564, 355.71477034, 355.56828127, 355.42163873, 355.27484304, 355.1278945, 354.98079341, 354.83354009, 354.68613484, 354.53857796, 354.39086976, 354.24301056, 354.09500064, 353.94684033, 353.79852992, 353.65006973, 353.50146006, 353.35270121, 353.2037935, 353.05473722, 352.90553269, 352.75618021, 352.60668008, 352.45703262, 352.30723812, 352.1572969, 352.00720926, 351.8569755, 351.70659593, 351.55607087, 351.4054006, 351.25458545, 351.1036257, 350.95252168, 350.80127368, 350.64988202, 350.49834699, 350.3466689, 350.19484806, 350.04288477, 349.89077934, 349.73853208, 349.58614328, 349.43361325, 349.28094231, 349.12813075, 348.97517887, 348.82208699, 348.66885541, 348.51548443, 348.36197436, 348.20832551, 348.05453817, 347.90061265, 347.74654926, 347.59234831, 347.43801008, 347.2835349, 347.12892307, 346.97417488, 346.81929065, 346.66427068, 346.50911526, 346.35382472, 346.19839934, 346.04283944, 345.88714532, 345.73131728, 345.57535562, 345.41926066, 345.26303269, 345.10667201, 344.95017894, 344.79355377, 344.63679681, 344.47990836, 344.32288872, 344.16573821, 344.00845711, 343.85104574, 343.69350439, 343.53583337, 343.37803299, 343.22010354, 343.06204534, 342.90385867, 342.74554385, 342.58710117, 342.42853095, 342.26983347, 342.11100905, 341.95205799, 341.79298059, 341.63377714, 341.47444796, 341.31499334, 341.15541359, 340.99570901, 340.8358799, 340.67592657, 340.5158493, 340.35564841, 340.1953242, 340.03487697, 339.87430702, 339.71361464, 339.55280015, 339.39186384, 339.23080602, 339.06962698, 338.90832703, 338.74690646, 338.58536558, 338.42370469, 338.26192409, 338.10002408, 337.93800495, 337.77586702, 337.61361057, 337.45123592, 337.28874335, 337.12613317, 336.96340569, 336.80056119, 336.63759998, 336.47452235, 336.31132862, 336.14801907, 335.98459401, 335.82105374, 335.65739855, 335.49362874, 335.32974461, 335.16574647, 335.0016346, 334.83740932, 334.67307091, 334.50861968, 334.34405592, 334.17937993, 334.01459201, 333.84969247, 333.68468158, 333.51955966, 333.35432701, 333.18898391, 333.02353067, 332.85796758, 332.69229495, 332.52651306, 332.36062222, 332.19462272, 332.02851487, 331.86229895, 331.69597526, 331.5295441, 331.36300577, 331.19636057, 331.02960878, 330.86275071, 330.69578665, 330.52871689, 330.36154174, 330.19426149, 330.02687644, 329.85938687, 329.69179309, 329.52409539, 329.35629407, 329.18838942, 329.02038173, 328.85227131, 328.68405844, 328.51574342, 328.34732655, 328.17880812, 328.01018842, 327.84146775, 327.6726464, 327.50372467, 327.33470285, 327.16558123, 326.99636011, 326.82703977, 326.65762053, 326.48810266, 326.31848646, 326.14877222, 325.97896024, 325.80905081, 325.63904422, 325.46894076, 325.29874074, 325.12844443, 324.95805213, 324.78756413, 324.61698073, 324.44630221, 324.27552888, 324.10466101, 323.93369891, 323.76264285, 323.59149314, 323.42025007, 323.24891392, 323.07748499, 322.90596356, 322.73434994, 322.5626444, 322.39084723, 322.21895874, 322.0469792, 321.87490891, 321.70274816, 321.53049724, 321.35815644, 321.18572604, 321.01320633, 320.84059761, 320.66790016, 320.49511428, 320.32224024, 320.14927835, 319.97622888, 319.80309213, 319.62986838, 319.45655792, 319.28316104, 319.10967803, 318.93610918, 318.76245477, 318.58871508, 318.41489042, 318.24098105, 318.06698728, 317.89290939, 317.71874766, 317.54450238, 317.37017383, 317.19576231, 317.02126809, 316.84669148, 316.67203274, 316.49729216, 316.32247004, 316.14756666, 315.97258229, 315.79751723, 315.62237177, 315.44714617, 315.27184074, 315.09645576, 314.9209915, 314.74544826, 314.56982631, 314.39412595, 314.21834745, 314.04249109, 313.86655717, 313.69054596, 313.51445775, 313.33829282, 313.16205146, 312.98573394, 312.80934054, 312.63287156, 312.45632727, 312.27970795, 312.10301389, 311.92624537, 311.74940267, 311.57248607, 311.39549585, 311.21843229, 311.04129568, 310.86408629, 310.6868044, 310.5094503, 310.33202427, 310.15452658, 309.97695752, 309.79931736, 309.62160638, 309.44382488, 309.26597311, 309.08805137, 308.91005992, 308.73199906, 308.55386906, 308.37567019, 308.19740274, 308.01906698, 307.8406632, 307.66219166, 307.48365265, 307.30504645, 307.12637332, 306.94763356, 306.76882743, 306.58995521, 306.41101719, 306.23201362, 306.0529448, 305.873811, 305.69461249, 305.51534955, 305.33602246, 305.15663149, 304.97717691, 304.797659, 304.61807804, 304.4384343, 304.25872806, 304.07895958, 303.89912915, 303.71923704, 303.53928352, 303.35926886, 303.17919334, 302.99905724, 302.81886082, 302.63860435, 302.45828812, 302.2779124, 302.09747745, 301.91698355, 301.73643096, 301.55581998, 301.37515085, 301.19442387, 301.01363929, 300.83279738, 300.65189843, 300.4709427, 300.28993046, 300.10886198, 299.92773754, 299.74655739, 299.56532182, 299.38403109, 299.20268547, 299.02128523, 298.83983064, 298.65832198, 298.4767595, 298.29514347, 298.11347417, 297.93175187, 297.74997682, 297.56814931, 297.38626959, 297.20433794, 297.02235462, 296.8403199, 296.65823405, 296.47609733, 296.29391, 296.11167235, 295.92938463, 295.7470471, 295.56466004, 295.38222371, 295.19973838, 295.01720431, 294.83462176, 294.651991, 294.4693123, 294.28658592, 294.10381212, 293.92099118, 293.73812334, 293.55520888, 293.37224806, 293.18924115, 293.0061884, 292.82309008, 292.63994645, 292.45675778, 292.27352432, 292.09024634, 291.90692411, 291.72355788, 291.54014791, 291.35669447, 291.17319782, 290.98965821, 290.80607592, 290.62245119, 290.4387843, 290.25507549, 290.07132504, 289.88753319, 289.70370022, 289.51982638, 289.33591192, 289.15195712, 288.96796222, 288.78392748, 288.59985317, 288.41573954, 288.23158685, 288.04739536, 287.86316532, 287.678897, 287.49459064, 287.31024652, 287.12586487, 286.94144597, 286.75699007, 286.57249741, 286.38796827, 286.20340289, 286.01880153, 285.83416445, 285.6494919, 285.46478413, 285.28004141, 285.09526398, 284.9104521, 284.72560602, 284.540726, 284.35581229, 284.17086515, 283.98588482, 283.80087157, 283.61582564, 283.43074729, 283.24563676, 283.06049432, 282.87532021, 282.69011468, 282.504878, 282.3196104, 282.13431214, 281.94898347, 281.76362464, 281.5782359, 281.39281751, 281.2073697, 281.02189274, 280.83638688, 280.65085235, 280.46528941, 280.27969831, 280.09407931, 279.90843263, 279.72275855, 279.5370573, 279.35132913, 279.16557428, 278.97979302, 278.79398558, 278.60815221, 278.42229316, 278.23640868, 278.050499, 277.86456439, 277.67860508, 277.49262131, 277.30661335, 277.12058142, 276.93452578, 276.74844667, 276.56234433, 276.37621902, 276.19007097, 276.00390043, 275.81770764, 275.63149284, 275.44525628, 275.25899821, 275.07271886, 274.88641848, 274.70009731, 274.51375559, 274.32739357, 274.14101148, 273.95460958, 273.76818809, 273.58174726, 273.39528733, 273.20880855, 273.02231115, 272.83579537, 272.64926146, 272.46270964, 272.27614018, 272.08955329, 271.90294922, 271.71632822, 271.52969051, 271.34303634, 271.15636595, 270.96967957, 270.78297744, 270.5962598, 270.40952688, 270.22277893, 270.03601618, 269.84923887, 269.66244722, 269.47564149, 269.28882191, 269.1019887, 268.91514211, 268.72828238, 268.54140973, 268.3545244, 268.16762663, 267.98071665, 267.79379469, 267.60686099, 267.41991579, 267.23295931, 267.04599179, 266.85901346, 266.67202455, 266.48502531, 266.29801595, 266.11099671, 265.92396783, 265.73692953, 265.54988205, 265.36282562, 265.17576046, 264.98868681, 264.80160491, 264.61451497, 264.42741723, 264.24031192, 264.05319926, 263.8660795, 263.67895285, 263.49181955, 263.30467982, 263.1175339, 262.930382, 262.74322437, 262.55606121, 262.36889278, 262.18171928, 261.99454095, 261.80735801, 261.62017069, 261.43297922, 261.24578382, 261.05858472, 260.87138214, 260.68417631, 260.49696746, 260.3097558, 260.12254157, 259.93532498, 259.74810626, 259.56088564, 259.37366334, 259.18643957, 258.99921458, 258.81198857, 258.62476176, 258.4375344, 258.25030668, 258.06307885, 257.87585111, 257.68862369, 257.50139681, 257.31417069, 257.12694555, 256.93972162, 256.75249911, 256.56527824, 256.37805923, 256.1908423, 256.00362768, 255.81641557, 255.62920621, 255.4419998, 255.25479656, 255.06759672, 254.88040049, 254.69320809, 254.50601973, 254.31883563, 254.13165602, 253.9444811, 253.75731109, 253.57014621, 253.38298667, 253.1958327, 253.00868449, 252.82154228, 252.63440627, 252.44727669, 252.26015373, 252.07303762, 251.88592857, 251.6988268, 251.51173252, 251.32464593, 251.13756727, 250.95049672, 250.76343452, 250.57638087, 250.38933598, 250.20230006, 250.01527333, 249.828256, 249.64124827, 249.45425037, 249.26726249, 249.08028485, 248.89331766, 248.70636112, 248.51941546, 248.33248087, 248.14555757, 247.95864576, 247.77174565, 247.58485745, 247.39798137, 247.21111762, 247.0242664, 246.83742793, 246.6506024, 246.46379002, 246.276991, 246.09020555, 245.90343388, 245.71667618, 245.52993266, 245.34320353, 245.156489, 244.96978926, 244.78310452, 244.596435, 244.40978088, 244.22314237, 244.03651968, 243.84991302, 243.66332257, 243.47674855, 243.29019116, 243.1036506, 242.91712707, 242.73062078, 242.54413191, 242.35766069, 242.1712073, 241.98477195, 241.79835483, 241.61195616, 241.42557612, 241.23921491, 241.05287275, 240.86654982, 240.68024632, 240.49396246, 240.30769842, 240.12145442, 239.93523064, 239.74902729, 239.56284455, 239.37668264, 239.19054174, 239.00442205, 238.81832377, 238.6322471, 238.44619222, 238.26015934, 238.07414865, 237.88816035, 237.70219462, 237.51625167, 237.33033169, 237.14443487, 236.95856141, 236.7727115, 236.58688533, 236.40108309, 236.21530499, 236.0295512, 235.84382193, 235.65811736, 235.4724377, 235.28678311, 235.10115381, 234.91554998, 234.72997181, 234.54441949, 234.35889321, 234.17339316, 233.98791953, 233.80247251, 233.61705229, 233.43165906, 233.246293, 233.06095431, 232.87564317, 232.69035977, 232.5051043, 232.31987695, 232.13467789, 231.94950733, 231.76436544, 231.57925241, 231.39416843, 231.20911369, 231.02408836, 230.83909264, 230.6541267, 230.46919074, 230.28428494, 230.09940948, 229.91456454, 229.72975032, 229.54496698, 229.36021473, 229.17549373, 228.99080418, 228.80614625, 228.62152012, 228.43692598, 228.25236402, 228.0678344, 227.88333731, 227.69887294, 227.51444146, 227.33004306, 227.14567791, 226.96134619, 226.77704808, 226.59278377, 226.40855342, 226.22435723, 226.04019537, 225.85606801, 225.67197533, 225.48791752, 225.30389474, 225.11990719, 224.93595502, 224.75203843, 224.56815758, 224.38431266, 224.20050383, 224.01673127, 223.83299517, 223.64929569, 223.46563301, 223.2820073, 223.09841874, 222.91486751, 222.73135376, 222.54787769, 222.36443946, 222.18103925, 221.99767722, 221.81435355, 221.63106842, 221.44782199, 221.26461444, 221.08144593, 220.89831665, 220.71522675, 220.53217641, 220.34916581, 220.16619511, 219.98326447, 219.80037408, 219.61752409, 219.43471469, 219.25194603, 219.06921829, 218.88653163, 218.70388623, 218.52128224, 218.33871984, 218.1561992, 217.97372048, 217.79128385, 217.60888947, 217.42653751, 217.24422814, 217.06196152, 216.87973782, 216.6975572, 216.51541984, 216.33332588, 216.1512755, 215.96926886, 215.78730613, 215.60538746, 215.42351303, 215.24168299, 215.0598975, 214.87815674, 214.69646086, 214.51481003, 214.3332044, 214.15164413, 213.9701294, 213.78866036, 213.60723716, 213.42585998, 213.24452896, 213.06324428, 212.88200609, 212.70081455, 212.51966981, 212.33857204, 212.1575214, 211.97651805, 211.79556213, 211.61465382, 211.43379326, 211.25298062, 211.07221605, 210.89149971, 210.71083176, 210.53021235, 210.34964163, 210.16911977, 209.98864691, 209.80822322, 209.62784885, 209.44752395, 209.26724868, 209.08702319, 208.90684763, 208.72672217, 208.54664695, 208.36662212, 208.18664784, 208.00672426, 207.82685154, 207.64702982, 207.46725926, 207.28754, 207.10787221, 206.92825603, 206.74869161, 206.5691791, 206.38971865, 206.21031041, 206.03095454, 205.85165117, 205.67240047, 205.49320258, 205.31405764, 205.13496581, 204.95592723, 204.77694206, 204.59801043, 204.41913251, 204.24030842, 204.06153833, 203.88282237, 203.7041607, 203.52555345, 203.34700079, 203.16850284, 202.99005976, 202.81167168, 202.63333877, 202.45506115, 202.27683898, 202.0986724, 201.92056154, 201.74250657, 201.56450761, 201.38656481, 201.20867832, 201.03084827, 200.85307481, 200.67535808, 200.49769822, 200.32009537, 200.14254968, 199.96506128, 199.78763031, 199.61025693, 199.43294125, 199.25568343, 199.07848361, 198.90134192, 198.7242585, 198.5472335, 198.37026704, 198.19335927, 198.01651033, 197.83972035, 197.66298947, 197.48631783, 197.30970556, 197.13315281, 196.9566597, 196.78022638, 196.60385297, 196.42753962, 196.25128647, 196.07509363, 195.89896126, 195.72288948, 195.54687844, 195.37092825, 195.19503906, 195.019211, 194.84344421, 194.66773881, 194.49209494, 194.31651273, 194.14099232, 193.96553383, 193.7901374, 193.61480316, 193.43953124, 193.26432177, 193.08917488, 192.9140907, 192.73906937, 192.564111, 192.38921574, 192.21438371, 192.03961504, 191.86490986, 191.69026829, 191.51569047, 191.34117652, 191.16672658, 190.99234076, 190.8180192, 190.64376202, 190.46956936, 190.29544133, 190.12137806, 189.94737968, 189.77344631, 189.59957809, 189.42577513, 189.25203756, 189.0783655, 188.90475909, 188.73121843, 188.55774367, 188.38433491, 188.21099229, 188.03771593, 187.86450594, 187.69136246, 187.51828561, 187.3452755, 187.17233226, 186.99945601, 186.82664688, 186.65390497, 186.48123043, 186.30862335, 186.13608387, 185.96361211, 185.79120818, 185.61887221, 185.44660431, 185.2744046, 185.1022732, 184.93021024, 184.75821582, 184.58629007, 184.4144331, 184.24264504, 184.07092599, 183.89927608, 183.72769542, 183.55618414, 183.38474233, 183.21337013, 183.04206765, 182.870835, 182.69967229, 182.52857965, 182.35755719, 182.18660502, 182.01572325, 181.84491201, 181.67417139, 181.50350153, 181.33290253, 181.1623745, 180.99191755, 180.8215318, 180.65121737, 180.48097436, 180.31080288, 180.14070304, 179.97067497, 179.80071876, 179.63083453, 179.46102239, 179.29128244, 179.12161481, 178.95201959, 178.78249691, 178.61304686, 178.44366955, 178.2743651, 178.10513361, 177.9359752, 177.76688996, 177.59787801, 177.42893945, 177.26007439, 177.09128294, 176.92256521, 176.75392129, 176.58535131, 176.41685535, 176.24843354, 176.08008597, 175.91181274, 175.74361397, 175.57548976, 175.40744021, 175.23946543, 175.07156552, 174.90374059, 174.73599073, 174.56831605, 174.40071666, 174.23319265, 174.06574413, 173.8983712, 173.73107397, 173.56385253, 173.39670698, 173.22963743, 173.06264398, 172.89572673, 172.72888578, 172.56212122, 172.39543317, 172.22882171, 172.06228695, 171.89582898, 171.72944792, 171.56314384, 171.39691686, 171.23076707, 171.06469457, 170.89869946, 170.73278183, 170.56694178, 170.40117941, 170.23549481, 170.06988808, 169.90435933, 169.73890863, 169.57353609, 169.40824181, 169.24302588, 169.07788839, 168.91282944, 168.74784913, 168.58294754, 168.41812477, 168.25338092, 168.08871608, 167.92413034, 167.7596238, 167.59519654, 167.43084867, 167.26658026, 167.10239143, 166.93828224, 166.77425281, 166.61030321, 166.44643355, 166.28264391, 166.11893437, 165.95530504, 165.79175601, 165.62828735, 165.46489917, 165.30159154, 165.13836457, 164.97521833, 164.81215292, 164.64916843, 164.48626494, 164.32344255, 164.16070133, 163.99804138, 163.83546278, 163.67296562, 163.51054999, 163.34821598, 163.18596366, 163.02379313, 162.86170447, 162.69969777, 162.53777311, 162.37593058, 162.21417026, 162.05249224, 161.8908966, 161.72938342, 161.5679528, 161.4066048, 161.24533952, 161.08415704, 160.92305744, 160.76204081, 160.60110722, 160.44025676, 160.27948951, 160.11880555, 159.95820497, 159.79768784, 159.63725424, 159.47690427, 159.31663799, 159.15645548, 158.99635684, 158.83634213, 158.67641143, 158.51656483, 158.35680241, 158.19712424, 158.0375304, 157.87802098, 157.71859604, 157.55925566, 157.39999993, 157.24082893, 157.08174272, 156.92274138, 156.763825, 156.60499365, 156.4462474, 156.28758633, 156.12901051, 155.97052003, 155.81211496, 155.65379537, 155.49556134, 155.33741293, 155.17935024, 155.02137332, 154.86348226, 154.70567712, 154.54795799, 154.39032493, 154.23277802, 154.07531732, 153.91794292, 153.76065489, 153.60345329, 153.4463382, 153.28930969, 153.13236783, 152.97551269, 152.81874434, 152.66206286, 152.50546832, 152.34896078, 152.19254031, 152.03620699, 151.87996088, 151.72380205, 151.56773057, 151.41174652, 151.25584996, 151.10004095, 150.94431957, 150.78868588, 150.63313995, 150.47768185, 150.32231165, 150.16702941, 150.0118352, 149.85672909, 149.70171113, 149.54678141, 149.39193998, 149.23718691, 149.08252227, 148.92794611, 148.77345851, 148.61905954, 148.46474924, 148.3105277, 148.15639496, 148.00235111, 147.84839619, 147.69453028, 147.54075343, 147.38706571, 147.23346719, 147.07995792, 146.92653797, 146.77320739, 146.61996626, 146.46681463, 146.31375256, 146.16078011, 146.00789736, 145.85510434, 145.70240114, 145.5497878, 145.39726439, 145.24483096, 145.09248758, 144.9402343, 144.78807119, 144.63599831, 144.4840157, 144.33212344, 144.18032157, 144.02861016, 143.87698927, 143.72545895, 143.57401925, 143.42267025, 143.27141198, 143.12024452, 142.96916791, 142.81818222, 142.66728749, 142.51648379, 142.36577117, 142.21514968, 142.06461939, 141.91418034, 141.76383259, 141.61357619, 141.4634112, 141.31333768, 141.16335568, 141.01346524, 140.86366643, 140.71395929, 140.56434389, 140.41482027, 140.26538848, 140.11604858, 139.96680062, 139.81764465, 139.66858073, 139.5196089, 139.37072921, 139.22194173, 139.07324649, 138.92464355, 138.77613296, 138.62771476, 138.47938902, 138.33115577, 138.18301508, 138.03496698, 137.88701152, 137.73914877, 137.59137875, 137.44370153, 137.29611715, 137.14862566, 137.00122711, 136.85392154, 136.706709, 136.55958954, 136.41256321, 136.26563005, 136.11879011, 135.97204343, 135.82539007, 135.67883006, 135.53236346, 135.38599031, 135.23971065, 135.09352453, 134.94743199, 134.80143309, 134.65552785, 134.50971634, 134.36399858, 134.21837463, 134.07284453, 133.92740833, 133.78206605, 133.63681776, 133.49166349, 133.34660328, 133.20163718, 133.05676523, 132.91198747, 132.76730394, 132.62271468, 132.47821975, 132.33381916, 132.18951298, 132.04530123, 131.90118396, 131.75716121, 131.61323302, 131.46939943, 131.32566048, 131.1820162, 131.03846665, 130.89501184, 130.75165184, 130.60838667, 130.46521637, 130.32214099, 130.17916055, 130.0362751, 129.89348467, 129.75078931, 129.60818905, 129.46568392, 129.32327397, 129.18095922, 129.03873973, 128.89661551, 128.75458662, 128.61265308, 128.47081493, 128.32907221, 128.18742494, 128.04587318, 127.90441694, 127.76305628, 127.62179121, 127.48062177, 127.33954801, 127.19856995, 127.05768762, 126.91690106, 126.77621031, 126.63561539, 126.49511635, 126.3547132, 126.21440599, 126.07419474, 125.9340795, 125.79406028, 125.65413713, 125.51431007, 125.37457913, 125.23494435, 125.09540576, 124.95596339, 124.81661726, 124.67736742, 124.53821388, 124.39915668, 124.26019585, 124.12133142, 123.98256342, 123.84389187, 123.70531681, 123.56683826, 123.42845626, 123.29017083, 123.151982, 123.01388979, 122.87589425, 122.73799538, 122.60019323, 122.46248781, 122.32487916, 122.18736731, 122.04995227, 121.91263407, 121.77541275, 121.63828833, 121.50126083, 121.36433028, 121.2274967, 121.09076012, 120.95412057, 120.81757808, 120.68113265, 120.54478433, 120.40853313, 120.27237908, 120.1363222, 120.00036252, 119.86450005, 119.72873484, 119.59306688, 119.45749622, 119.32202288, 119.18664686, 119.05136821, 118.91618694, 118.78110307, 118.64611662, 118.51122763, 118.3764361, 118.24174206, 118.10714553, 117.97264653, 117.83824509, 117.70394122, 117.56973494, 117.43562628, 117.30161526, 117.16770189, 117.03388619, 116.90016819, 116.7665479, 116.63302535, 116.49960054, 116.36627351, 116.23304427, 116.09991284, 115.96687923, 115.83394347, 115.70110557, 115.56836555, 115.43572343, 115.30317922, 115.17073295, 115.03838463, 114.90613427, 114.7739819, 114.64192753, 114.50997117, 114.37811285, 114.24635258, 114.11469037, 113.98312624, 113.85166021, 113.72029229, 113.58902249, 113.45785084, 113.32677734, 113.19580201, 113.06492487, 112.93414593, 112.8034652, 112.6728827, 112.54239843, 112.41201243, 112.28172469, 112.15153523, 112.02144407, 111.89145121, 111.76155668, 111.63176048, 111.50206262, 111.37246312, 111.24296198, 111.11355923, 110.98425487, 110.85504891, 110.72594137, 110.59693226, 110.46802158, 110.33920935, 110.21049558, 110.08188028, 109.95336346, 109.82494512, 109.69662529, 109.56840396, 109.44028116, 109.31225688, 109.18433114, 109.05650395, 108.92877531, 108.80114524, 108.67361374, 108.54618082, 108.41884649, 108.29161076, 108.16447364, 108.03743512, 107.91049523, 107.78365397, 107.65691134, 107.53026736, 107.40372202, 107.27727534, 107.15092733, 107.02467798, 106.89852731, 106.77247532, 106.64652202, 106.52066742, 106.39491151, 106.26925431, 106.14369581, 106.01823603, 105.89287498, 105.76761264, 105.64244904, 105.51738417, 105.39241803, 105.26755064, 105.142782, 105.01811211, 104.89354097, 104.76906858, 104.64469496, 104.5204201, 104.39624401, 104.27216669, 104.14818814, 104.02430836, 103.90052737, 103.77684515, 103.65326171, 103.52977706, 103.40639119, 103.28310411, 103.15991581, 103.03682631, 102.91383559, 102.79094367, 102.66815054, 102.5454562, 102.42286066, 102.30036391, 102.17796595, 102.05566679, 101.93346642, 101.81136485, 101.68936206, 101.56745807, 101.44565288, 101.32394647, 101.20233885, 101.08083002, 100.95941998, 100.83810872, 100.71689624, 100.59578255, 100.47476764, 100.35385151, 100.23303415, 100.11231556, 99.99169574, 99.8711747, 99.75075241, 99.63042889, 99.51020413, 99.39007812, 99.27005086, 99.15012235, 99.03029259, 98.91056156, 98.79092928, 98.67139572, 98.55196089, 98.43262478, 98.31338739, 98.19424872, 98.07520875, 97.95626749, 97.83742492, 97.71868104, 97.60003586, 97.48148935, 97.36304152, 97.24469235, 97.12644185, 97.00829001, 96.89023682, 96.77228226, 96.65442635, 96.53666907, 96.4190104, 96.30145036, 96.18398892, 96.06662608, 95.94936183, 95.83219617, 95.71512909, 95.59816058, 95.48129062, 95.36451922, 95.24784636, 95.13127204, 95.01479625, 94.89841897, 94.7821402, 94.66595993, 94.54987815, 94.43389485, 94.31801002, 94.20222366, 94.08653574, 93.97094626, 93.85545522, 93.7400626, 93.62476838, 93.50957257, 93.39447514, 93.27947609, 93.16457541, 93.04977309, 92.9350691, 92.82046345, 92.70595613, 92.59154711, 92.47723639, 92.36302395, 92.24890979, 92.13489389, 92.02097624, 91.90715682, 91.79343563, 91.67981264, 91.56628786, 91.45286126, 91.33953283, 91.22630256, 91.11317044, 91.00013644, 90.88720056, 90.77436279, 90.6616231, 90.54898149, 90.43643794, 90.32399244, 90.21164497, 90.09939551, 89.98724406, 89.87519059, 89.7632351, 89.65137756, 89.53961797, 89.4279563, 89.31639254, 89.20492667, 89.09355869, 88.98228857, 88.87111629, 88.76004184, 88.64906521, 88.53818638, 88.42740532, 88.31672203, 88.20613649, 88.09564868, 87.98525858, 87.87496617, 87.76477144, 87.65467438, 87.54467495, 87.43477316, 87.32496896, 87.21526236, 87.10565333, 86.99614185, 86.8867279, 86.77741147, 86.66819254, 86.55907108, 86.45004709, 86.34112053, 86.23229139, 86.12355966, 86.01492531, 85.90638832, 85.79794867, 85.68960634, 85.58136132, 85.47321358, 85.3651631, 85.25720987, 85.14935385, 85.04159504, 84.93393341, 84.82636894, 84.71890161, 84.61153139, 84.50425827, 84.39708223, 84.29000324, 84.18302128, 84.07613634, 83.96934838, 83.86265739, 83.75606335, 83.64956623, 83.54316601, 83.43686266, 83.33065618, 83.22454652, 83.11853368, 83.01261763, 82.90679834, 82.80107579, 82.69544996, 82.58992082, 82.48448836, 82.37915255, 82.27391336, 82.16877077, 82.06372476, 81.9587753, 81.85392237, 81.74916595, 81.644506, 81.53994251, 81.43547545, 81.3311048, 81.22683053, 81.12265262, 81.01857104, 80.91458577, 80.81069677, 80.70690404, 80.60320753, 80.49960723, 80.39610311, 80.29269514, 80.1893833, 80.08616756, 79.98304789, 79.88002428, 79.77709668, 79.67426509, 79.57152946, 79.46888978, 79.36634601, 79.26389813, 79.16154611, 79.05928993, 78.95712955, 78.85506496, 78.75309612, 78.651223, 78.54944558, 78.44776383, 78.34617773, 78.24468723, 78.14329232, 78.04199297, 77.94078915, 77.83968083, 77.73866798, 77.63775058, 77.53692859, 77.43620198, 77.33557074, 77.23503482, 77.13459419, 77.03424884, 76.93399873, 76.83384383, 76.73378411, 76.63381954, 76.53395009, 76.43417573, 76.33449644, 76.23491217, 76.13542291, 76.03602861, 75.93672926, 75.83752482, 75.73841525, 75.63940054, 75.54048064, 75.44165553, 75.34292517, 75.24428954, 75.1457486, 75.04730233, 74.94895068, 74.85069363, 74.75253115, 74.65446321, 74.55648977, 74.4586108, 74.36082627, 74.26313615, 74.1655404, 74.068039, 73.9706319, 73.87331909, 73.77610052, 73.67897616, 73.58194598, 73.48500995, 73.38816803, 73.29142019, 73.19476641, 73.09820663, 73.00174084, 72.90536899, 72.80909106, 72.712907, 72.6168168, 72.5208204, 72.42491779, 72.32910891, 72.23339375, 72.13777227, 72.04224442, 71.94681019, 71.85146952, 71.7562224, 71.66106877, 71.56600862, 71.4710419, 5.60848829, 11.21010196, 16.79798046, 22.36529125, 27.90524378, 33.41110327, 38.87620433, 44.29396445, 49.65789717, 54.96162504, 60.19889225, 65.36357688, 70.44970286, 75.45145142, 80.36317216, 85.17939363, 89.89483345, 94.50440782, 99.00324057, 103.38667159, 107.65026472, 111.78981496, 115.80135509, 119.68116172, 123.42576055, 127.03193111, 130.49671076, 133.81739804, 136.99155533, 140.01701088, 142.89186011, 145.61446632, 148.18346064, 150.59774143, 152.85647298, 154.95908356, 156.90526293, 158.69495915, 160.32837491, 161.80596322, 163.1284226, 164.29669172, 165.31194356, 166.17557908, 166.8892205, 167.45470407, 167.87407252, 168.14956712, 168.2836194, 168.27884257, 168.13802269, 167.86410955, 167.46020738, 166.92956534, 166.2755679, 165.50172506, 164.61166248, 163.60911159, 162.49789964, 161.28193972, 159.96522086, 158.55179814, 157.0457829, 155.45133306, 153.77264353, 152.01393684, 150.17945387, 148.27344486, 146.30016055, 144.26384362, 142.16872039, 140.01899272, 137.81883027, 135.57236304, 133.28367419, 130.95679322, 128.59568949, 126.20426603, 123.78635376, 121.34570599, 118.88599341, 116.41079925, 113.92361497, 111.42783626, 108.92675935, 106.42357776, 103.92137936, 101.42314381, 98.93174031, 96.44992575, 93.98034317, 91.52552053, 89.08786982, 86.66968648, 84.27314914, 81.90031962, 79.55314319, 77.23344921, 74.94295188, 72.68325132, 70.45583489, 68.26207869, 66.10324927, 63.98050557, 61.89490101, 59.84738573, 57.83880905, 55.86992199, 53.94137996, 52.05374557, 50.20749154, 48.40300366, 46.64058388, 44.92045343, 43.24275602, 41.60756105, 40.01486689, 38.46460411, 36.95663883, 35.49077599, 34.0667626, 32.68429104, 31.34300229, 30.04248913, 28.7822993, 27.56193864, 26.38087413, 25.2385369, 24.13432517, 23.06760712, 22.0377237, 21.04399129, 20.08570442, 19.16213824, 18.27255101, 17.41618651, 16.59227625, 15.80004169, 15.03869635, 14.30744779, 13.6054995, 12.93205271, 12.28630813, 11.66746754, 11.0747353, 10.50731983, 9.96443491, 9.44530092, 8.94914604, 8.47520729, 8.02273156, 7.59097646, 7.17921122, 6.78671738, 6.4127895, 6.05673577, 5.71787853, 5.39555474, 5.08911638, 4.79793085, 4.52138116, 4.25886626, 4.00980114, 3.77361701, 3.54976138, 3.33769806, 3.13690721, 2.94688525, 2.76714483, 2.59721469, 2.43663951, 2.28497978, 2.14181156, 2.00672632, 1.87933062, 1.75924591, 1.64610825, 1.53956798, 1.43928944, 1.34495067, 1.25624304, 1.17287093, 1.09455142, 1.02101387, 0.95199965, 0.88726172, 0.82656431, 0.76968254, 0.71640207, 0.66651875, 0.61983826, 0.57617576, 0.53535554, 0.4972107, 0.46158277, 0.42832142, 0.3972841, 0.36833577, 0.34134852, 0.31620132, 0.29277971, 0.27097551, 0.2506865, 0.23181622, 0.21427364, 0.19797295, 0.18283327, 0.16877843, 0.15573676, 0.14364082, 0.13242723, 0.12203641, 0.11241245, 0.10350285, 0.09525839, 0.08763292, 0.0805832, 0.07406875, 0.06805168, 0.06249657, 0.05737029, 0.05264189, 0.04828248, 0.0442651, 0.0405646, 0.03715753, 0.03402205, 0.03113782, 0.02848591, 0.02604871, 0.02380985, 0.02175411, 0.01986738, 0.01813653, 0.01654941, 0.01509473, 0.01376204, 0.01254167, 0.01142464, 0.01040266, 0.00946807, 0.00861378, 0.00783323, 0.00712038, 0.00646965, 0.00587589, 0.00533435, 0.00484066, 0.0043908, 0.00398106, 0.00360801, 0.00326854, 0.00295975, 0.00267899, 0.00242384, 0.00219206, 0.00198161, 0.0017906, 0.00161731, 0.00146018, 0.00131776, 0.00118872, 0.00107186, 0.00096609, 0.00087038, 0.00078383, 0.00070558, 0.00063487, 0.00057101, 0.00051336, 0.00046133, 0.0004144, 0.00037209, 0.00033396, 0.0002996, 0.00026867, 0.00024083, 0.00021579, 0.00019326, 0.00017302, 0.00015483, 0.00013849, 0.00012383, 0.00011067, 0.00009887, 0.00008829, 0.00007881, 0.00007031, 0.00006271, 0.00005591, 0.00004982, 0.00004437, 0.00003951, 0.00003516, 0.00003128, 0.00002782, 0.00002473, 0.00002197, 0.00001951, 0.00001732, 0.00001537, 0.00001363, 0.00001209, 0.00001071, 9.48994295e-06, 8.40347525e-06, 7.43827295e-06, 6.58117119e-06, 5.82039136e-06, 5.14539995e-06, 4.54678135e-06, 4.01612305e-06, 3.5459123e-06, 3.12944294e-06, 2.76073155e-06, 2.43444207e-06, 2.14581788e-06, 1.89062089e-06, 1.66507673e-06, 1.46582554e-06, 1.28987782e-06, 1.13457484e-06, 9.97553128e-07, 8.76712621e-07, 7.70188172e-07, 6.76324032e-07, 5.93651005e-07, 5.2086603e-07, 4.56813915e-07, 4.00471027e-07, 3.50930723e-07, 3.0739034e-07, 2.69139599e-07, 2.3555025e-07, 2.06066856e-07, 1.80198574e-07, 1.57511842e-07, 1.37623863e-07, 1.2019682e-07, 1.0493272e-07, 9.15688221e-08, 7.98735688e-08, 6.96429787e-08, 6.0697443e-08, 5.28788843e-08, 4.60482385e-08, 4.00832227e-08, 3.48763587e-08, 3.03332227e-08, 2.63708972e-08, 2.29166015e-08, 1.9906481e-08, 1.72845378e-08, 1.50016857e-08, 1.30149165e-08, 1.12865644e-08, 9.78365698e-09, 8.47734314e-09, 7.34238949e-09, 6.35673644e-09, 5.50110761e-09, 4.75866621e-09, 4.11471284e-09, 3.55641984e-09, 3.07259797e-09, 2.65349146e-09, 2.29059815e-09, 1.97651172e-09, 1.70478327e-09, 1.46980008e-09, 1.26667934e-09, 1.09117511e-09, 9.39596901e-10, 8.08738428e-10, 6.95815307e-10, 5.98410615e-10, 5.14427323e-10, 4.42046759e-10, 3.79692356e-10, 3.25998029e-10, 2.79780593e-10, 2.40015731e-10, 2.05817051e-10, 1.76417854e-10, 1.51155263e-10, 1.29456416e-10, 1.10826463e-10, 9.48381268e-11, 8.112264e-11, 6.93618734e-11, 5.92815018e-11, 5.06450775e-11, 4.3248889e-11, 3.69175065e-11, 3.14999211e-11, 2.68662028e-11, 2.29046069e-11, 1.95190708e-11, 1.66270497e-11, 1.41576452e-11, 1.20499886e-11, 1.02518454e-11, 8.71840974e-12, 7.41126473e-12, 6.29748609e-12, 5.34886897e-12, 4.54126209e-12, 3.85399417e-12, 3.26938021e-12, 2.77229672e-12, 2.34981628e-12, 1.99089352e-12, 1.68609523e-12, 1.42736855e-12, 1.20784195e-12, 1.02165455e-12, 8.63809609e-13, 7.30048964e-13, 6.16745461e-13, 5.20810775e-13, 4.39616514e-13, 3.7092669e-13, 3.12839967e-13, 2.63740274e-13, 2.22254599e-13, 1.87216946e-13, 1.57637546e-13, 1.32676587e-13, 1.11621806e-13, 9.38693776e-14, 7.89076272e-14, 6.63031545e-14, 5.56890195e-14, 4.67546851e-14, 3.92374607e-14, 3.29152272e-14, 2.76002513e-14, 2.31339312e-14, 1.93823343e-14, 1.62324086e-14, 1.35887688e-14, 1.13709702e-14, 9.51119768e-15, 7.95230782e-15, 6.64617012e-15, 5.55226303e-15, 4.63648572e-15, 3.87015312e-15, 3.22914617e-15, 2.69319381e-15, 2.24526634e-15, 1.87106334e-15, 1.55858139e-15, 1.29774949e-15, 1.08012157e-15, 8.98617385e-16, 7.47304167e-16, 6.21212822e-16, 5.1618318e-16, 4.28733801e-16, 3.559525e-16, 2.9540431e-16, 2.45054156e-16, 2.03201913e-16, 1.68427884e-16, 1.39547059e-16, 1.15570736e-16, 9.56743636e-17, 7.91705753e-17, 6.54866155e-17, 5.41454321e-17, 4.47498562e-17, 3.69693671e-17, 3.05290258e-17, 2.52002264e-17, 2.07929694e-17, 1.71494095e-17, 1.41384701e-17, 1.16513504e-17, 9.59777832e-18, 7.90288719e-18, 6.50461316e-18, 5.35152791e-18, 4.40103431e-18, 3.61786502e-18, 2.97283372e-18, 2.44179691e-18, 2.00479111e-18, 1.64531628e-18, 1.3497407e-18, 1.10680722e-18, 9.07223566e-19, 7.43322652e-19, 6.0878105e-19, 4.98385735e-19, 4.07840931e-19, 3.33608225e-19, 2.72774288e-19, 2.22941471e-19, 1.82137365e-19, 1.48740076e-19, 1.21416502e-19, 9.90713802e-20, 8.0805234e-20, 6.58796922e-20, 5.36888904e-20, 4.37359031e-20, 3.56133296e-20, 2.89873074e-20, 2.35843547e-20, 1.91805453e-20, 1.55926072e-20, 1.26706055e-20, 1.02919306e-20, 8.35636088e-21, 6.7820094e-21, 5.50199835e-21, 4.46173117e-21, 3.61665618e-21, 2.93043395e-21, 2.3734361e-21, 1.9215162e-21, 1.55500383e-21, 1.25788167e-21, 1.01711259e-21, 8.22089686e-22, 6.64186887e-22, 5.36392049e-22, 4.33007389e-22, 3.49405093e-22, 2.81827981e-22, 2.27227007e-22, 1.83128843e-22, 1.47528024e-22, 1.18799134e-22, 9.5625344e-23, 7.69402747e-23, 6.18807329e-23, 4.97482908e-23, 3.99780757e-23, 3.21134243e-23, 2.57853104e-23, 2.0695653e-23, 1.66037784e-23, 1.33154472e-23, 1.06739613e-23, 8.55296183e-24, 6.85059813e-24, 5.48480894e-24, 4.38950527e-24, 3.51148413e-24, 2.80793412e-24, 2.24442033e-24, 1.79325707e-24, 1.43219448e-24, 1.14335878e-24, 9.12397652e-25, 7.27791347e-25, 5.8029753e-25, 4.62504185e-25, 3.68469654e-25, 2.93432967e-25, 2.33580837e-25, 1.85860305e-25, 1.47828174e-25, 1.1753005e-25, 9.34032041e-26, 7.41986111e-26, 5.89183982e-26, 4.67656791e-26, 3.7104341e-26, 2.94268224e-26, 2.33283051e-26, 1.84860525e-26, 1.46428751e-26, 1.15939046e-26, 9.1760184e-27, 7.25938827e-27, 5.74072807e-27, 4.53790218e-27, 3.58562191e-27, 2.83201187e-27, 2.23587162e-27, 1.76449276e-27, 1.39191951e-27, 1.09756335e-27, 8.6509999e-28, 6.81591641e-28, 5.36788803e-28, 4.22575087e-28, 3.3252598e-28, 2.61558316e-28, 2.05651908e-28, 1.61628603e-28, 1.26976971e-28, 9.97132749e-29, 7.8271251e-29, 6.14147731e-29, 4.81686765e-29, 3.77639892e-29, 2.95945888e-29, 2.31829155e-29, 1.81528616e-29, 1.42083435e-29, 1.11163729e-29, 8.69368858e-30, 6.79620341e-30, 5.31067813e-30, 4.14815444e-30, 3.23877801e-30, 2.52771893e-30, 1.97195825e-30, 1.53775799e-30, 1.19866993e-30, 9.3396925e-31, 7.2742278e-31, 5.66320877e-31, 4.40716799e-31, 3.42829355e-31, 2.66573986e-31, 2.07194822e-31, 1.60976102e-31, 1.25015911e-31, 9.70488862e-32, 7.53073223e-32, 5.8412426e-32, 4.52892025e-32, 3.50998693e-32, 2.71917853e-32, 2.10567504e-32, 1.62992035e-32, 1.26113861e-32, 9.75395339e-33, 7.54084381e-33, 5.8274779e-33, 4.50155694e-33, 3.4758921e-33, 2.68281826e-33, 2.06984419e-33, 1.59626684e-33, 1.23053727e-33, 9.48212094e-34, 7.30361138e-34, 5.62330025e-34, 4.32779162e-34, 3.32937617e-34, 2.56024101e-34, 1.96797826e-34, 1.51210242e-34, 1.16135125e-34, 8.9159463e-35, 6.84215286e-35, 5.2485529e-35, 4.02446233e-35, 3.08459138e-35, 2.36324583e-35, 1.80984612e-35, 1.38546608e-35, 1.06016055e-35, 8.1090295e-36, 6.19994197e-36, 4.73835806e-36, 3.61984217e-36, 2.76422192e-36, 2.10997687e-36, 1.6099189e-36, 1.2278684e-36, 9.36097688e-37, 7.13365412e-37, 5.4340603e-37, 4.13769421e-37, 3.14929878e-37, 2.39602241e-37, 1.82217225e-37, 1.38519057e-37, 1.05257044e-37, 7.9949244e-38, 6.07014558e-38, 4.60686416e-38, 3.49488802e-38, 2.65022462e-38, 2.00887848e-38, 1.52211062e-38, 1.1528169e-38, 8.72762391e-39, 6.60470291e-39, 4.99611157e-39, 3.77774421e-39, 2.85531846e-39, 2.15723839e-39, 1.62915842e-39, 1.22984416e-39, 9.28022366e-40, 6.99984459e-40, 5.2776423e-40, 3.97752672e-40, 2.99645572e-40, 2.25644227e-40, 1.69848689e-40, 1.27797331e-40, 9.61176137e-41, 7.22613038e-41, 5.43038005e-41, 4.07921201e-41, 3.06297855e-41, 2.29896975e-41, 1.72482163e-41, 1.29353073e-41, 9.69685604e-42, 7.26619051e-42, 5.44257285e-42, 4.07496012e-42, 3.04974914e-42, 2.28153175e-42, 1.7061239e-42, 1.27531147e-42, 9.52891859e-43, 7.11692884e-43, 5.31328715e-43, 3.9651134e-43, 2.95780541e-43, 2.20549079e-43, 1.64385144e-43, 1.22473338e-43, 9.12099489e-44, 6.78991824e-44, 5.05252595e-44, 3.75815111e-44, 2.79422649e-44, 2.07668514e-44, 1.54277073e-44, 1.14565489e-44, 8.50409147e-45, 6.30991815e-45, 4.6799501e-45, 3.46960804e-45, 2.57123225e-45, 1.90468823e-45, 1.41035419e-45, 1.04388869e-45, 7.72328206e-46, 5.71177788e-46, 4.22242978e-46, 3.12014858e-46, 2.30467573e-46, 1.70163379e-46, 1.25586828e-46, 9.26496548e-47, 6.83227349e-47, 5.03626304e-47, 3.71084911e-47, 2.73312765e-47, 2.01218667e-47, 1.48080664e-47, 1.0893067e-47, 8.00983809e-48, 5.88733892e-48, 4.32549765e-48, 3.17669023e-48, 2.3320368e-48, 1.71126663e-48, 1.25522538e-48, 9.20338298e-49, 6.74520311e-49, 4.94156286e-49, 3.61872329e-49, 2.64891599e-49, 1.9382186e-49, 1.41761759e-49, 1.03642336e-49, 7.57420515e-50, 5.53297493e-50, 4.040193e-50, 2.94894922e-50, 2.15156391e-50, 1.56914467e-50, 1.14391433e-50, 8.33577135e-51, 6.07183372e-51, 4.42095129e-51, 3.21760981e-51, 2.34084583e-51, 1.70229191e-51, 1.23741977e-51, 8.99128702e-52, 6.53053056e-52, 4.7412938e-52, 3.44086052e-52, 2.49608327e-52, 1.80997623e-52, 1.3119234e-52, 9.5053014e-53, 6.88406739e-53, 4.98363404e-53, 3.60635923e-53, 2.60863693e-53, 1.88616685e-53, 1.36322767e-53, 9.8486906e-54, 7.11230572e-54, 5.13409807e-54, 3.70458639e-54, 2.67200409e-54, 1.92644377e-54, 1.38834494e-54, 1.00013876e-54, 7.20186483e-55, 5.18383902e-55, 3.72975136e-55, 2.68244047e-55, 1.92842229e-55, 1.38578556e-55, 9.95432376e-56, 7.14742053e-56, 5.12989827e-56, 3.68035759e-56, 2.63932656e-56, 1.89198675e-56, 1.35570408e-56, 9.71032054e-57, 6.95222925e-57, 4.97549689e-57, 3.55934996e-57, 2.54522852e-57, 1.81930172e-57, 1.29988383e-57, 9.28380946e-58, 6.62780556e-58, 4.72971712e-58, 3.37382414e-58, 2.40564526e-58, 1.71459914e-58, 1.22156193e-58, 8.69941908e-59, 6.19279767e-59, 4.40661802e-59, 3.13433779e-59, 2.22847657e-59, 1.58377042e-59, 1.1251185e-59, 7.9896212e-60, 5.6712135e-60, 4.02390476e-60, 2.8539166e-60, 2.02328356e-60, 1.4338183e-60, 1.01567177e-60, 7.19174921e-61, 5.09023209e-61, 3.6013268e-61, 2.54688526e-61, 1.80043782e-61, 1.27223921e-61, 8.98630857e-62, 6.34476854e-62, 4.47787685e-62, 3.15900574e-62, 2.22766865e-62, 1.57026403e-62, 1.1064115e-62, 7.79260374e-63, 5.48618463e-63, 3.86082539e-63, 2.71588777e-63, 1.90970109e-63, 1.34227312e-63, 9.43057796e-64, 6.62304413e-64, 4.64942142e-64, 3.26258699e-64, 2.28848049e-64, 1.6045537e-64, 1.12456154e-64, 7.87832923e-65, 5.51705048e-65, 3.86190621e-65, 2.70220579e-65, 1.88997933e-65, 1.32134926e-65, 9.2342182e-66, 6.45066636e-66, 4.50433796e-66, 3.14397654e-66, 2.19356026e-66, 1.52982511e-66, 1.06648794e-66, 7.43176652e-67, 5.17666563e-67, 3.60437625e-67, 2.5086038e-67, 1.74524332e-67, 1.21367343e-67, 8.43664277e-68, 5.8621838e-68, 4.07165674e-68, 2.82686353e-68, 1.961826e-68, 1.36093722e-68, 9.43708041e-69, 6.54122644e-69, 4.5321333e-69, 3.13883244e-69, 2.17297913e-69, 1.50371297e-69, 1.04015079e-69, 7.19199923e-70, 4.97078446e-70, 3.43417327e-70, 2.37160003e-70, 1.63712811e-70, 1.12965508e-70, 7.79167864e-71, 5.37202693e-71, 3.70226336e-71, 2.55045941e-71, 1.7562709e-71, 1.20888942e-71, 8.31770728e-72, 5.72061436e-72, 3.93281663e-72, 2.70263072e-72, 1.85648613e-72, 1.27473144e-72, 8.74918658e-73, 6.00258957e-73, 4.1165331e-73, 2.82193216e-73, 1.93367517e-73, 1.32447104e-73, 9.06824844e-74, 6.20620835e-74, 4.24571943e-74, 2.90334223e-74, 1.98457343e-74, 1.35599509e-74, 9.26128103e-75, 6.32275005e-75, 4.31482285e-75, 2.94335016e-75, 2.00697934e-75, 1.36793632e-75, 9.31989175e-76, 6.34713691e-76, 4.32082698e-76, 2.94020694e-76, 1.99991222e-76, 1.35977166e-76, 9.24151243e-77, 6.27830103e-77, 4.26347024e-77, 2.89405217e-77, 1.96368352e-77, 1.33186024e-77, 9.02958597e-78, 6.11926191e-78, 4.14526472e-78, 2.80690377e-78, 1.89987401e-78, 1.2854172e-78, 8.69331551e-79, 5.87690681e-79, 3.97131372e-79, 2.68251166e-79, 1.81121945e-79, 1.22242595e-79, 8.24700162e-80, 5.56149607e-80, 3.74894635e-80, 2.52609019e-80, 1.70141602e-80, 1.14549769e-80, 7.70903401e-81, 5.18594306e-81, 3.48720571e-81, 2.34395588e-81, 1.57486504e-81, 1.05769218e-81, 7.1006367e-82, 4.76493891e-82, 3.19624033e-82, 2.14310557e-82, 1.43638133e-82, 9.62316627e-83, 6.44448588e-83, 4.31400471e-83, 2.88665582e-83, 1.93077404e-83, 1.29089212e-83, 8.62721263e-84, 5.76332501e-84, 3.84855571e-84, 2.56888404e-84, 1.71400973e-84, 1.14315238e-84, 7.62108891e-85, 5.07869336e-85, 3.38305468e-85, 2.25262089e-85, 1.49930248e-85, 9.97499018e-86, 6.63372953e-86, 4.40986313e-86, 2.93031648e-86, 1.94637274e-86, 1.29228876e-86, 8.57660071e-87, 5.6897461e-87, 3.77305081e-87, 2.50100462e-87, 1.65713697e-87, 1.0975502e-87, 7.26628547e-88, 4.80864365e-88, 3.18093511e-88, 2.10333816e-88, 1.39022621e-88, 9.18510071e-89, 6.06602859e-89, 4.00448862e-89, 2.64248029e-89, 1.74300459e-89, 1.14923115e-89, 7.57422728e-90, 4.98989447e-90, 3.28599179e-90, 2.16303563e-90, 1.4232558e-90, 9.36104509e-91, 6.15442951e-91, 4.04457931e-91, 2.65693544e-91, 1.74465973e-91, 1.1451505e-91, 7.51339961e-92, 4.92756661e-92, 3.23035769e-92, 2.11685358e-92, 1.38660614e-92, 9.07898959e-93, 5.94215551e-93, 3.88751975e-93, 2.54227953e-93, 1.66186635e-93, 1.08590289e-93, 7.0926411e-94, 4.63070465e-94, 3.02209619e-94, 1.97147642e-94, 1.28557375e-94, 8.37962361e-95, 5.45976729e-95, 3.55586987e-95, 2.31493976e-95, 1.50645318e-95, 9.79926923e-96, 6.37167846e-96, 4.14129458e-96, 2.69054654e-96, 1.7472981e-96, 1.13426782e-96, 7.36014438e-97, 4.77396433e-97, 3.09523851e-97, 2.00600119e-97, 1.29954215e-97, 8.41534005e-98, 5.44722215e-98, 3.52452523e-98, 2.27954557e-98, 1.47373044e-98, 9.52379305e-99, 6.15210823e-99, 3.97246524e-99, 2.56400205e-99, 1.6542409e-99, 1.06684484e-99, 6.87742554e-100, 4.43172351e-100, 2.85457556e-100, 1.83794519e-100, 1.18289364e-100, 7.60993534e-101, 4.89371152e-101, 3.14570427e-101, 2.02124775e-101, 1.29820518e-101, 8.33468633e-102, 5.34881175e-102, 3.43121159e-102, 2.20018814e-102, 1.41024404e-102, 9.0354724e-103, 5.78668163e-103, 3.70450727e-103, 2.37057363e-103, 1.51634696e-103, 9.6954029e-104, 6.19662586e-104, 3.95882978e-104, 2.52813653e-104, 1.6138247e-104, 1.02975601e-104, 6.56801982e-105, 4.18751829e-105, 2.6687084e-105, 1.7000734e-105, 1.08257095e-105, 6.89076134e-106, 4.38429931e-106, 2.78840163e-106, 1.77268924e-106, 1.12650219e-106, 7.15572459e-107, 4.54357126e-107, 2.88378728e-107, 1.82957935e-107, 1.16027632e-107, 7.35518769e-108, 4.66066881e-108, 2.95205796e-108, 1.86906184e-108, 1.18289069e-108, 7.48320624e-109, 4.73208972e-109, 2.99116508e-109, 1.88994841e-109, 1.19366284e-109, 7.53590751e-110, 4.75566881e-110, 2.9999209e-110, 1.89160375e-110, 1.1922647e-110, 7.51168504e-111, 4.730687e-111, 2.97805848e-111, 1.87397758e-111, 1.17873919e-111, 7.41128e-112, 4.65790775e-112, 2.92624517e-112, 1.83760728e-112, 1.15349804e-112, 7.2377435e-113, 4.53953827e-113, 2.8460488e-113, 1.78359059e-113, 1.11730096e-113, 6.99628258e-114, 4.37911835e-114, 2.73985887e-114, 1.71353064e-114, 1.07121768e-114, 6.69400076e-115, 4.18134457e-115, 2.61076831e-115, 1.62945691e-115, 1.01657542e-115, 6.33955106e-116, 3.95184207e-116, 2.46242398e-116, 1.5337277e-116, 9.54895547e-117, 5.94272527e-117, 3.69689927e-117, 2.29885596e-117, 1.42892056e-117, 8.87823403e-118, 5.5140065e-118, 3.42318319e-118, 2.12429677e-118, 1.31771783e-118, 8.17056024e-119, 5.06411355e-119, 3.13745292e-119, 1.94300172e-119, 1.20279424e-119, 7.44271995e-120, 4.60356419e-120, 2.84628849e-120, 1.75908091e-120, 1.0867131e-120, 6.71067461e-121, 4.14228186e-121, 2.55584965e-121, 1.5763518e-121, 9.71836451e-122, 5.98901515e-122, 3.68926482e-122, 2.27167628e-122, 1.39821915e-122, 8.60253096e-123, 5.29053309e-123, 3.25233162e-123, 1.99853796e-123, 1.22758671e-123, 7.53727132e-124, 4.62592212e-124, 2.83794962e-124, 1.74033656e-124, 1.06680245e-124, 6.53667604e-125, 4.00361326e-125, 2.45114767e-125, 1.50006139e-125, 9.1763673e-126, 5.61118705e-126, 3.42973768e-126, 2.09550772e-126, 1.27979329e-126, 7.81290593e-127, 4.76768512e-127, 2.90820313e-127, 1.7732261e-127, 1.08075113e-127, 6.5842981e-128, 4.00973322e-128, 2.44086454e-128, 1.48523127e-128, 9.0337215e-129, 5.49239191e-129, 3.33794017e-129, 2.02776576e-129, 1.23134353e-129, 7.47416859e-130, 4.53491088e-130, 2.75040617e-130, 1.66742812e-130, 1.01046115e-130, 6.12088661e-131, 3.70622054e-131, 2.24321239e-131, 1.35716217e-131, 8.20758351e-132, 4.96159246e-132, 2.99812049e-132, 1.81092011e-132, 1.09338148e-132, 6.59882112e-133, 3.98091782e-133, 2.40061373e-133, 1.44705013e-133, 8.71900823e-134, 5.25137238e-134, 3.16155515e-134, 1.90261505e-134, 1.14451981e-134, 6.88205153e-135, 4.13651637e-135, 2.48527124e-135, 1.49257122e-135, 8.96021758e-136, 5.37680479e-136, 3.22516699e-136, 1.93375908e-136, 1.15897682e-136, 6.94335481e-137, 4.15801634e-137, 2.48900202e-137, 1.48931489e-137, 8.90779147e-138, 5.32568871e-138, 3.18275889e-138, 1.90131437e-138, 1.13534107e-138, 6.77674265e-139, 4.04331771e-139, 2.41144283e-139, 1.43760079e-139, 8.56686387e-140, 5.10302456e-140, 3.0384751e-140, 1.80844763e-140, 1.07591614e-140, 6.39842585e-141, 3.80355842e-141, 2.26010843e-141, 1.34242704e-141, 7.970294e-142, 4.73020786e-142, 2.8061336e-142, 1.6640206e-142, 9.8635054e-143, 5.84421401e-143, 3.46133132e-143, 2.04919114e-143, 1.21267382e-143, 7.17344503e-144, 4.24163978e-144, 2.50704443e-144, 1.48119595e-144, 8.747526e-145, 5.16392833e-145, 3.0471751e-145, 1.79736738e-145, 1.05973808e-145, 6.24571935e-146, 3.67949852e-146, 2.16679109e-146, 1.2754625e-146, 7.5048253e-147, 4.41403451e-147, 2.59509406e-147, 1.52508036e-147, 8.95889808e-148, 5.26064152e-148, 3.08777087e-148, 1.81164738e-148, 1.06248918e-148, 6.22870285e-149, 3.65000075e-149, 2.13801399e-149, 1.25184448e-149, 7.32676835e-150, 4.28644042e-150, 2.50670583e-150, 1.46531906e-150, 8.56215877e-151, 5.00099712e-151, 2.91979379e-151, 1.70400164e-151, 9.9405425e-152, 5.79658776e-152, 3.37875729e-152, 1.96862877e-152, 1.14654977e-152, 6.67489211e-153, 3.8843454e-153, 2.25950696e-153, 1.31380764e-153, 7.63610924e-154, 4.43644129e-154, 2.57643743e-154, 1.49563877e-154, 8.67872817e-155, 5.03393627e-155, 2.91864717e-155, 1.69152234e-155, 9.79932437e-156, 5.67462005e-156, 3.28473018e-156, 1.90057438e-156, 1.09923943e-156, 6.35509412e-157, 3.67260257e-157, 2.12152493e-157, 1.22502402e-157, 7.070715e-158, 4.07947541e-158, 2.3527055e-158, 1.35629161e-158, 7.81557342e-159, 4.50184855e-159, 2.59204881e-159, 1.49182449e-159, 8.58251467e-160, 4.93552821e-160, 2.83710224e-160, 1.63019141e-160, 9.36320379e-161, 5.37567021e-161, 3.0850558e-161, 1.76976539e-161, 1.01482378e-161, 5.81684965e-162, 3.33278509e-162, 1.90874999e-162, 1.09273047e-162, 6.25315688e-163, 3.57690878e-163, 2.04521361e-163, 1.16893874e-163, 6.67831802e-164, 3.81385969e-164, 2.17713117e-164, 1.24230076e-164, 7.0858373e-165, 4.0399675e-165, 2.30243213e-165, 1.31165034e-165, 7.46915694e-166, 4.25155074e-166, 2.4190532e-166, 1.37583307e-166, 7.82182949e-167, 4.44501485e-167, 2.52499407e-167, 1.43373795e-167, 8.13769626e-168, 4.6169529e-168, 2.61837404e-168, 1.48432911e-168, 8.41106519e-169, 4.7642448e-169, 2.69748734e-169, 1.52667656e-169, 8.636881e-170, 4.88415133e-170, 2.76085479e-170, 1.55998455e-170, 8.8108804e-171, 4.97439873e-171, 2.80726984e-171, 1.58361645e-171, 8.92972594e-172, 5.03325038e-172, 2.8358367e-172, 1.59711498e-172, 8.99111244e-173, 5.05956238e-173, 2.84599913e-173, 1.60021689e-173, 8.99384134e-174, 5.05282055e-174, 2.83755841e-174, 1.59286154e-174, 8.9378596e-175, 5.01315708e-175, 2.81067985e-175, 1.57519285e-175, 8.82426149e-176, 4.94134628e-176, 2.7658874e-176, 1.54755462e-176, 8.65525291e-177, 4.83877942e-177, 2.70404661e-177, 1.5104794e-177, 8.43408024e-178, 4.70741988e-178, 2.62633688e-178, 1.46467145e-178, 8.16492663e-179, 4.5497407e-179, 2.53421404e-179, 1.41098446e-179, 7.85278044e-180, 4.36864716e-180, 2.42936502e-180, 1.35039515e-180, 7.50328172e-181, 4.16738792e-181, 2.31365657e-181, 1.28397377e-181, 7.12255316e-182, 3.94945836e-182, 2.18908019e-182, 1.2128528e-182, 6.71702265e-183, 3.71850031e-183, 2.05769558e-183, 1.13819512e-183, 6.29324458e-184, 3.47820195e-184, 1.9215747e-184, 1.06116287e-184, 5.8577268e-185, 3.23220185e-185, 1.78274872e-185, 9.82888121e-186, 5.41676925e-186, 2.98400043e-186, 1.6431595e-186, 9.04446458e-187, 4.97631998e-187, 2.73688174e-187, 1.50461734e-187, 8.26834122e-188, 4.54185241e-188, 2.49384779e-188, 1.36876587e-188, 7.50949427e-189, 4.11826712e-189, 2.25756693e-189, 1.23705513e-189, 6.7757875e-190, 3.70981967e-190, 2.03033697e-190, 1.11072295e-190, 6.07387249e-191, 3.32007501e-191, 1.81406324e-191, 9.90784614e-192, 5.40914204e-192, 2.95188762e-192, 1.61025092e-192, 8.7803049e-193, 4.78572722e-193, 2.60740556e-193, 1.42001044e-193, 7.73030792e-194, 4.2065335e-194, 2.28809586e-194, 1.24407449e-194, 6.76146585e-195, 3.67331048e-195, 1.99478789e-195, 1.0828246e-195, 5.87545914e-196, 3.18674867e-196, 1.72773099e-196, 9.36325261e-197, 5.07223848e-197, 2.74659671e-197, 1.48666267e-197, 8.04363365e-198, 4.35025222e-198, 2.35179196e-198, 1.2708833e-198, 6.86490854e-199, 3.70668898e-199, 2.00059808e-199, 1.079334e-199, 5.82068607e-200, 3.13772449e-200, 1.69074358e-200, 9.1067413e-201, 4.90309787e-201, 2.6387633e-201, 1.4195563e-201, 7.6335599e-202, 4.10321172e-202, 2.20466724e-202, 1.18408937e-202, 6.35694169e-203, 3.4114129e-203, 1.82996448e-203, 9.81235712e-204, 5.25928064e-204, 2.81774481e-204, 1.50903491e-204, 8.07828609e-205, 4.3227636e-205, 2.31220352e-205, 1.2362689e-205, 6.60727142e-206, 3.52982899e-206, 1.88498327e-206, 1.00619846e-206, 5.36886045e-207, 2.86353766e-207, 1.52667291e-207, 8.13600891e-208, 4.33410222e-208, 2.30785863e-208, 1.22840499e-208, 6.53576245e-209, 3.47594795e-209, 1.84787499e-209, 9.81960982e-210, 5.21600734e-210, 2.7695198e-210, 1.46991789e-210, 7.79837285e-211, 4.13558771e-211, 2.19226372e-211, 1.16163764e-211, 6.15277279e-212, 3.25756732e-212, 1.72400389e-212, 9.12022194e-213, 4.82275159e-213, 2.54921638e-213, 1.34691699e-213, 7.11372842e-214, 3.75557168e-214, 1.98187907e-214, 1.04544351e-214, 5.51247095e-215, 2.90545652e-215, 1.53075177e-215, 8.06153015e-216, 4.24377666e-216, 2.23310879e-216, 1.17459884e-216, 6.1757766e-217, 3.24575633e-217, 1.70514994e-217, 8.95429833e-218, 4.7002707e-218, 2.46624665e-218, 1.29351798e-218, 6.78157799e-219, 3.55395052e-219, 1.86171981e-219, 9.74854023e-220, 5.10254901e-220, 2.66966709e-220, 1.39620555e-220, 7.29900966e-221, 3.81417702e-221, 1.99232452e-221, 1.04025939e-221, 5.42932121e-222, 2.83251199e-222, 1.4771354e-222, 7.70000817e-223, 4.01221682e-223, 2.08977694e-223, 1.08802231e-223, 5.6623668e-224, 2.94564583e-224, 1.53174117e-224, 7.96182406e-225, 4.13677688e-225, 2.14849303e-225, 1.11539356e-225, 5.7882149e-226, 3.0025033e-226, 1.55684248e-226, 8.06915733e-227, 4.18055582e-227, 2.16502144e-227, 1.12076023e-227, 5.79943323e-228, 2.99972006e-228, 1.55095157e-228, 8.01563768e-229, 4.14095255e-229, 2.13837941e-229, 1.1038031e-229, 5.69535484e-230, 2.93746229e-230, 1.51441935e-230, 7.80445053e-231, 4.02032211e-231, 2.07014947e-231, 1.06552807e-231, 5.48214376e-232, 2.8194103e-232, 1.44940074e-232, 7.4480231e-233, 3.82574383e-233, 1.96432387e-233, 1.00816738e-233, 5.17219062e-234, 2.65239831e-234, 1.35964428e-234, 6.96681368e-235, 3.56833344e-235, 1.82691778e-235, 9.34964049e-236, 4.78292049e-236, 2.4457595e-236, 1.25013432e-236, 6.38736807e-237, 3.26219223e-237, 1.66540358e-237, 8.49868592e-238, 4.33517272e-238, 2.21046362e-238, 1.12663354e-238, 5.73989997e-239, 2.92313122e-239, 1.48804012e-239, 7.5718728e-240, 3.85136182e-240, 1.95815774e-240, 9.95183962e-241, 5.05570127e-241, 2.56733052e-241, 1.3031803e-241, 6.61225461e-242, 3.35364412e-242, 1.70022628e-242, 8.61626041e-243, 4.36468847e-243, 2.21009036e-243, 1.11863693e-243, 5.65966363e-244, 2.86229526e-244, 1.44697353e-244, 7.31188051e-245, 3.69334544e-245, 1.86480368e-245, 9.41171249e-246, 4.74817296e-246, 2.39445542e-246, 1.20700571e-246, 6.08182949e-247, 3.06324337e-247, 1.54223697e-247, 7.76145355e-248, 3.9044275e-248, 1.9633332e-248, 9.86854222e-249, 4.95831763e-249, 2.49022181e-249, 1.25015559e-249, 6.2735368e-250, 3.14690172e-250, 1.57788831e-250, 7.90845567e-251, 3.96213674e-251, 1.9842189e-251, 9.93280831e-252, 4.97023444e-252, 2.48601671e-252, 1.24294972e-252, 6.21191394e-253, 3.10327061e-253, 1.54965926e-253, 7.73526385e-254, 3.85954758e-254, 1.92495249e-254, 9.59678983e-255, 4.78249255e-255, 2.38234674e-255, 1.18625482e-255, 5.90436723e-256, 2.93758934e-256, 1.46093589e-256, 7.26262437e-257, 3.60892918e-257, 1.79260865e-257, 8.90051158e-258, 4.41740077e-258, 2.19149755e-258, 1.08676971e-258, 5.38711713e-259, 2.6693017e-259, 1.32209073e-259, 6.54556607e-260, 3.2393324e-260, 1.60245622e-260, 7.92390362e-261, 3.91664807e-261, 1.93513947e-261, 9.55723675e-262, 4.71818291e-262, 2.32830332e-262, 1.14848862e-262, 5.66286474e-263, 2.7910527e-263, 1.37506187e-263, 6.771717e-264, 3.33347893e-264, 1.64028376e-264, 8.06793913e-265, 3.96669305e-265, 1.9494717e-265, 9.57695907e-266, 4.7028452e-266, 2.30842672e-266, 1.13264512e-266, 5.55512689e-267, 2.72343155e-267, 1.33463129e-267, 6.53775285e-268, 3.20123866e-268, 1.56685917e-268, 7.66591915e-269, 3.74904681e-269, 1.83273574e-269, 8.9557342e-270, 4.37446453e-270, 2.13585105e-270, 1.04241196e-270, 5.08545911e-271, 2.47995219e-271, 1.2088678e-271, 5.89028989e-272, 2.86890977e-272, 1.39675254e-272, 6.79742477e-273, 3.30667652e-273, 1.60790865e-273, 7.81543931e-274, 3.79723765e-274, 1.84418516e-274, 8.95289781e-275, 4.34455294e-275, 2.10740944e-275, 1.02182168e-275, 4.95249064e-276, 2.39935537e-276, 1.1619511e-276, 5.62475344e-277, 2.72170775e-277, 1.31644237e-277, 6.36479733e-278, 3.07602363e-278, 1.48599422e-278, 7.17574395e-279, 3.46369077e-279, 1.67122011e-279, 8.06028798e-280, 3.88588396e-280, 1.87262777e-280, 9.02060067e-281, 4.34351993e-281, 2.09059807e-281, 1.00582317e-281, 4.83721165e-282, 2.32536381e-282, 1.1174011e-282, 5.36722306e-283, 2.57698897e-283, 1.23679534e-283, 5.93342542e-284, 2.84534872e-284, 1.3639168e-284, 6.53525627e-285, 3.13011096e-285, 1.49857751e-285, 7.17168248e-286, 3.43071991e-286, 1.6404834e-286, 7.84116845e-287, 3.74638231e-287, 1.78922836e-287, 8.5416509e-288, 4.07605683e-288, 1.94428986e-288, 9.27052138e-289, 4.41844727e-289, 2.10502647e-289, 1.00246176e-289, 4.772e-290, 2.27067734e-290, 1.08002245e-290, 5.13490616e-291, 2.44036399e-291, 1.15930864e-291, 5.50510881e-292, 2.61309448e-292, 1.23984297e-292, 5.88031551e-293, 2.78777001e-293, 1.3210998e-293, 6.25801614e-294, 2.96319412e-294, 1.40250978e-294, 6.63550624e-295, 3.13808423e-295, 1.48346568e-295, 7.00991546e-296, 3.31108575e-296, 1.56332923e-296, 7.37824104e-297, 3.48078823e-297, 1.64143895e-297, 7.73738562e-298, 3.64574358e-298, 1.71711891e-298, 8.08419894e-299, 3.80448597e-299, 1.78968811e-299, 8.41552266e-300, 3.95555299e-300, 1.85847059e-300, 8.72823741e-301, 4.09750774e-301, 1.92280564e-301, 9.01931108e-302, 4.22896137e-302, 1.98205839e-302, 9.28584744e-303, 4.34859556e-303, 2.03563011e-303, 9.52513387e-304, 4.45518441e-304, 2.08296828e-304, 9.73468722e-305, 4.54761534e-305, 2.12357605e-305, 9.91229662e-306, 4.6249084e-306, 2.15702092e-306, 1.00560623e-306, 4.68623352e-307, 2.18294239e-307, 1.01644293e-307, 4.73092539e-308, 2.20105845e-308, 1.02362157e-308, 4.75849544e-309, 2.21117066e-309, 1.02706338e-309, 4.76864074e-310, 2.21316779e-310, 1.02673048e-310, 4.76124955e-311, 2.20702785e-311, 1.02262653e-311, 4.73640334e-312, 2.19281847e-312, 1.01479672e-312, 4.69437527e-313, 2.17069555e-313, 1.00332712e-313, 4.63562814e-314, 2.14089977e-314, 9.88341282e-315, 4.56077876e-315, 2.10375914e-315, 9.69986583e-316, 4.47052711e-316, 2.05943078e-316, 9.4841622e-317, 4.36543312e-317, 2.007365e-317, 9.2250307e-318, 4.27211647e-318, 1.95248814e-318, 8.97559177e-319, 4.22603991e-319, 2.1141069e-319, 1.05759692e-319, 5.290949e-320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.14570407, 0.29140042, 0.43708133, 0.58273909, 0.72836597, 0.87395427, 1.01949627, 1.16498428, 1.31041058, 1.45576748, 1.6010473, 1.74624235, 1.89134496, 2.03634746, 2.1812422, 2.32602151, 2.47067777, 2.61520336, 2.75959064, 2.90383202, 3.04791992, 3.19184674, 3.33560493, 3.47918694, 3.62258524, 3.76579231, 3.90880065, 4.05160278, 4.19419124, 4.33655857, 4.47869736, 4.6206002, 4.76225969, 4.90366849, 5.04481924, 5.18570463, 5.32631737, 5.46665017, 5.6066958, 5.74644702, 5.88589665, 6.02503752, 6.16386247, 6.3023644, 6.44053622, 6.57837086, 6.71586131, 6.85300056, 6.98978164, 7.12619761, 7.26224157, 7.39790665, 7.53318601, 7.66807284, 7.80256036, 7.93664184, 8.07031058, 8.2035599, 8.33638319, 8.46877384, 8.6007253, 8.73223105, 8.8632846, 8.99387953, 9.12400943, 9.25366793, 9.38284872, 9.51154551, 9.63975207, 9.7674622, 9.89466976, 10.02136862, 10.14755272, 10.27321604, 10.3983526, 10.52295648, 10.64702177, 10.77054264, 10.89351329, 11.01592798, 11.137781, 11.2590667, 11.37977948, 11.49991377, 11.61946407, 11.73842493, 11.85679092, 11.9745567, 12.09171696, 12.20826643, 12.32419992, 12.43951227, 12.55419837, 12.66825319, 12.78167171, 12.89444901, 13.00658018, 13.1180604, 13.22888488, 13.3390489, 13.44854778, 13.5573769, 13.66553171, 13.7730077, 13.87980042, 13.98590547, 14.09131853, 14.19603531, 14.30005158, 14.40336319, 14.50596603, 14.60785604, 14.70902924, 14.80948169, 14.90920953, 15.00820893, 15.10647614, 15.20400747, 15.30079927, 15.39684798, 15.49215007, 15.58670208, 15.68050063, 15.77354237, 15.86582403, 15.9573424, 16.04809432, 16.13807669, 16.2272865, 16.31572076, 16.40337657, 16.49025108, 16.57634151, 16.66164514, 16.7461593, 16.82988139, 16.91280887, 16.99493928, 17.07627019, 17.15679926, 17.2365242, 17.31544278, 17.39355285, 17.47085229, 17.54733907, 17.62301121, 17.6978668, 17.77190399, 17.845121, 17.91751608, 17.98908759, 18.05983392, 18.12975353, 18.19884495, 18.26710676, 18.33453761, 18.40113622, 18.46690135, 18.53183184, 18.59592659, 18.65918456, 18.72160477, 18.78318631, 18.84392831, 18.90382999, 18.96289062, 19.02110953, 19.0784861, 19.13501979, 19.19071011, 19.24555664, 19.29955902, 19.35271693, 19.40503014, 19.45649847, 19.50712178, 19.55690003, 19.60583319, 19.65392134, 19.70116458, 19.7475631, 19.79311712, 19.83782694, 19.88169291, 19.92471544, 19.966895, 20.00823211, 20.04872736, 20.08838139, 20.1271949, 20.16516864, 20.20230343, 20.23860013, 20.27405966, 20.30868302, 20.34247123, 20.37542538, 20.40754663, 20.43883618, 20.46929527, 20.49892522, 20.5277274, 20.55570321, 20.58285414, 20.6091817, 20.63468747, 20.65937308, 20.68324021, 20.70629059, 20.728526, 20.74994828, 20.77055931, 20.79036103, 20.80935542, 20.82754451, 20.84493039, 20.8615152, 20.8773011, 20.89229033, 20.90648516, 20.91988792, 20.93250097, 20.94432674, 20.95536768, 20.96562631, 20.97510517, 20.98380687, 20.99173404, 20.99888938, 21.00527561, 21.0108955, 21.01575188, 21.01984761, 21.02318557, 21.02576872, 21.02760003, 21.02868253, 21.02901929, 21.02861341, 21.02746803, 21.02558633, 21.02297154, 21.01962691, 21.01555573, 21.01076135, 21.00524712, 20.99901647, 20.99207282, 20.98441965, 20.97606049, 20.96699886, 20.95723836, 20.94678259, 20.9356352, 20.92379988, 20.91128033, 20.89808029, 20.88420354, 20.86965388, 20.85443514, 20.8385512, 20.82200594, 20.80480328, 20.78694718, 20.76844161, 20.74929057, 20.72949811, 20.70906827, 20.68800515, 20.66631284, 20.64399549, 20.62105726, 20.59750231, 20.57333487, 20.54855916, 20.52317944, 20.49719996, 20.47062504, 20.44345898, 20.41570612, 20.38737082, 20.35845745, 20.32897041, 20.29891412, 20.26829299, 20.23711149, 20.20537408, 20.17308524, 20.14024947, 20.10687129, 20.07295522, 20.03850582, 20.00352763, 19.96802524, 19.93200323, 19.8954662, 19.85841876, 19.82086553, 19.78281116, 19.74426027, 19.70521754, 19.66568763, 19.62567521, 19.58518497, 19.54422161, 19.50278982, 19.46089432, 19.41853981, 19.37573104, 19.33247272, 19.28876959, 19.2446264, 19.20004789, 19.15503882, 19.10960393, 19.06374799, 19.01747576, 18.970792, 18.92370149, 18.87620898, 18.82831927, 18.78003711, 18.73136727, 18.68231454, 18.63288368, 18.58307947, 18.53290668, 18.48237008, 18.43147443, 18.3802245, 18.32862506, 18.27668087, 18.22439668, 18.17177724, 18.1188273, 18.06555162, 18.01195492, 17.95804193, 17.9038174, 17.84928603, 17.79445255, 17.73932165, 17.68389805, 17.62818644, 17.57219149, 17.51591789, 17.4593703, 17.40255338, 17.34547179, 17.28813015, 17.2305331, 17.17268526, 17.11459124, 17.05625562, 16.99768301, 16.93887796, 16.87984503, 16.82058879, 16.76111376, 16.70142447, 16.64152541, 16.5814211, 16.521116, 16.46061459, 16.39992132, 16.33904062, 16.27797691, 16.2167346, 16.15531809, 16.09373173, 16.0319799, 15.97006693, 15.90799714, 15.84577484, 15.78340432, 15.72088985, 15.65823568, 15.59544605, 15.53252517, 15.46947724, 15.40630644, 15.34301693, 15.27961284, 15.21609829, 15.15247739, 15.08875422, 15.02493282, 14.96101725, 14.89701151, 14.83291961, 14.76874551, 14.70449318, 14.64016654, 14.5757695, 14.51130595, 14.44677976, 14.38219477, 14.3175548, 14.25286365, 14.18812508, 14.12334286, 14.05852071, 13.99366233, 13.92877141, 13.86385161, 13.79890654, 13.73393984, 13.66895507, 13.6039558, 13.53894557, 13.47392788, 13.40890623, 13.34388406, 13.27886483, 13.21385194, 13.14884878, 13.0838587, 13.01888505, 12.95393113, 12.88900022, 12.82409558, 12.75922045, 12.69437802, 12.62957149, 12.564804, 12.50007868, 12.43539862, 12.37076692, 12.3061866, 12.2416607, 12.17719221, 12.1127841, 12.0484393, 11.98416073, 11.91995129, 11.85581382, 11.79175117, 11.72776614, 11.66386151, 11.60004003, 11.53630443, 11.47265741, 11.40910163, 11.34563975, 11.28227437, 11.21900809, 11.15584347, 11.09278305, 11.02982932, 10.96698478, 10.90425188, 10.84163304, 10.77913066, 10.71674711, 10.65448474, 10.59234586, 10.53033277, 10.46844772, 10.40669294, 10.34507066, 10.28358305, 10.22223226, 10.16102042, 10.09994962, 10.03902196, 9.97823945, 9.91760414, 9.857118, 9.796783, 9.73660109, 9.67657417, 9.61670412, 9.55699281, 9.49744206, 9.43805369, 9.37882947, 9.31977115, 9.26088045, 9.20215908, 9.14360872, 9.08523099, 9.02702754, 8.96899995, 8.91114979, 8.85347861, 8.79598792, 8.73867922, 8.68155396, 8.6246136, 8.56785955, 8.5112932, 8.45491591, 8.39872902, 8.34273386, 8.2869317, 8.23132381, 8.17591145, 8.12069581, 8.06567809, 8.01085947, 7.95624108, 7.90182404, 7.84760945, 7.79359837, 7.73979187, 7.68619095, 7.63279662, 7.57960985, 7.52663161, 7.47386281, 7.42130437, 7.36895717, 7.31682208, 7.26489992, 7.21319152, 7.16169767, 7.11041914, 7.05935668, 7.00851102, 6.95788287, 6.9074729, 6.85728178, 6.80731015, 6.75755863, 6.70802782, 6.65871829, 6.60963061, 6.5607653, 6.51212288, 6.46370385, 6.41550868, 6.36753782, 6.31979171, 6.27227076, 6.22497537, 6.17790592, 6.13106274, 6.0844462, 6.03805659, 5.99189422, 5.94595937, 5.90025229, 5.85477324, 5.80952243, 5.76450007, 5.71970635, 5.67514144, 5.63080548, 5.58669862, 5.54282098, 5.49917264, 5.45575369, 5.41256421, 5.36960423, 5.3268738, 5.28437292, 5.2421016, 5.20005982, 5.15824754, 5.11666473, 5.07531131, 5.03418721, 4.99329233, 4.95262656, 4.91218978, 4.87198184, 4.8320026, 4.79225189, 4.75272951, 4.71343527, 4.67436897, 4.63553037, 4.59691924, 4.55853532, 4.52037834, 4.48244804, 4.44474411, 4.40726625, 4.37001413, 4.33298744, 4.29618583, 4.25960893, 4.22325639, 4.18712782, 4.15122282, 4.11554101, 4.08008196, 4.04484524, 4.00983042, 3.97503704, 3.94046466, 3.9061128, 3.87198097, 3.83806869, 3.80437545, 3.77090074, 3.73764405, 3.70460483, 3.67178255, 3.63917666, 3.60678658, 3.57461177, 3.54265163, 3.51090558, 3.47937302, 3.44805335, 3.41694595, 3.3860502, 3.35536547, 3.32489112, 3.29462651, 3.26457097, 3.23472386, 3.20508449, 3.1756522, 3.14642629, 3.11740608, 3.08859087, 3.05997995, 3.03157261, 3.00336814, 2.9753658, 2.94756487, 2.91996462, 2.89256428, 2.86536313, 2.8383604, 2.81155533, 2.78494715, 2.7585351, 2.7323184, 2.70629626, 2.6804679, 2.65483253, 2.62938935, 2.60413756, 2.57907636, 2.55420492, 2.52952245, 2.50502812, 2.48072111, 2.45660059, 2.43266573, 2.4089157, 2.38534966, 2.36196677, 2.33876618, 2.31574706, 2.29290854, 2.27024977, 2.24776991, 2.22546808, 2.20334343, 2.18139509, 2.15962219, 2.13802387, 2.11659925, 2.09534747, 2.07426763, 2.05335888, 2.03262032, 2.01205107, 1.99165026, 1.97141699, 1.95135039, 1.93144956, 1.91171362, 1.89214167, 1.87273282, 1.85348619, 1.83440087, 1.81547598, 1.79671063, 1.7781039, 1.75965492, 1.74136278, 1.72322658, 1.70524544, 1.68741845, 1.66974472, 1.65222334, 1.63485342, 1.61763407, 1.60056438, 1.58364347, 1.56687042, 1.55024436, 1.53376437, 1.51742957, 1.50123906, 1.48519195, 1.46928735, 1.45352435, 1.43790208, 1.42241964, 1.40707614, 1.3918707, 1.37680242, 1.36187042, 1.34707381, 1.33241172, 1.31788326, 1.30348755, 1.28922371, 1.27509086, 1.26108814, 1.24721466, 1.23346955, 1.21985194, 1.20636097, 1.19299576, 1.17975546, 1.16663919, 1.15364611, 1.14077535, 1.12802605, 1.11539736, 1.10288843, 1.09049841, 1.07822646, 1.06607172, 1.05403336, 1.04211054, 1.03030241, 1.01860815, 1.00702692, 0.99555789, 0.98420024, 0.97295314, 0.96181578, 0.95078732, 0.93986697, 0.92905389, 0.9183473, 0.90774637, 0.8972503, 0.8868583, 0.87656957, 0.8663833, 0.85629871, 0.84631502, 0.83643143, 0.82664716, 0.81696144, 0.80737348, 0.79788253, 0.7884878, 0.77918853, 0.76998395, 0.76087332, 0.75185587, 0.74293086, 0.73409752, 0.72535513, 0.71670292, 0.70814018, 0.69966615, 0.69128012, 0.68298135, 0.67476911, 0.66664269, 0.65860138, 0.65064444, 0.64277119, 0.6349809, 0.62727288, 0.61964643, 0.61210085, 0.60463545, 0.59724954, 0.58994244, 0.58271347, 0.57556195, 0.5684872, 0.56148857, 0.55456537, 0.54771696, 0.54094267, 0.53424185, 0.52761384, 0.52105801, 0.5145737, 0.50816028, 0.50181712, 0.49554357, 0.48933902, 0.48320284, 0.47713441, 0.4711331, 0.46519832, 0.45932945, 0.45352589, 0.44778703, 0.44211228, 0.43650104, 0.43095273, 0.42546675, 0.42004253, 0.41467949, 0.40937705, 0.40413464, 0.3989517, 0.39382766, 0.38876197, 0.38375406, 0.37880339, 0.3739094, 0.36907156, 0.36428932, 0.35956215, 0.35488951, 0.35027087, 0.34570572, 0.34119351, 0.33673375, 0.33232591, 0.32796949, 0.32366397, 0.31940886, 0.31520365, 0.31104784, 0.30694096, 0.3028825, 0.29887198, 0.29490892, 0.29099285, 0.28712329, 0.28329976, 0.27952181, 0.27578897, 0.27210077, 0.26845677, 0.26485651, 0.26129954, 0.25778542, 0.2543137, 0.25088395, 0.24749572, 0.2441486, 0.24084214, 0.23757594, 0.23434955, 0.23116258, 0.22801459, 0.22490519, 0.22183396, 0.2188005, 0.21580441, 0.2128453, 0.20992275, 0.2070364, 0.20418584, 0.2013707, 0.19859058, 0.19584513, 0.19313395, 0.19045668, 0.18781295, 0.1852024, 0.18262466, 0.18007937, 0.17756619, 0.17508475, 0.1726347, 0.17021571, 0.16782742, 0.1654695, 0.16314161, 0.16084342, 0.15857459, 0.15633479, 0.15412371, 0.15194101, 0.14978639, 0.14765951, 0.14556008, 0.14348778, 0.14144229, 0.13942333, 0.13743057, 0.13546373, 0.13352251, 0.13160662, 0.12971575, 0.12784964, 0.12600798, 0.1241905, 0.12239692, 0.12062695, 0.11888034, 0.11715679, 0.11545605, 0.11377785, 0.11212192, 0.110488, 0.10887583, 0.10728515, 0.10571572, 0.10416728, 0.10263958, 0.10113237, 0.09964541, 0.09817846, 0.09673128, 0.09530363, 0.09389528, 0.092506, 0.09113555, 0.08978371, 0.08845025, 0.08713495, 0.08583759, 0.08455795, 0.08329582, 0.08205098, 0.08082322, 0.07961233, 0.0784181, 0.07724034, 0.07607882, 0.07493336, 0.07380376, 0.07268982, 0.07159134, 0.07050813, 0.06944001, 0.06838678, 0.06734825, 0.06632425, 0.06531459, 0.06431909, 0.06333757, 0.06236985, 0.06141577, 0.06047514, 0.0595478, 0.05863357, 0.0577323, 0.05684381, 0.05596795, 0.05510454, 0.05425343, 0.05341447, 0.05258749, 0.05177234, 0.05096887, 0.05017693, 0.04939637, 0.04862703, 0.04786878, 0.04712147, 0.04638495, 0.04565909, 0.04494375, 0.04423878, 0.04354405, 0.04285943, 0.04218479, 0.04151998, 0.04086488, 0.04021937, 0.03958331, 0.03895658, 0.03833905, 0.03773061, 0.03713113, 0.03654048, 0.03595856, 0.03538525, 0.03482042, 0.03426397, 0.03371577, 0.03317573, 0.03264373, 0.03211965, 0.0316034, 0.03109487, 0.03059394, 0.03010052, 0.02961451, 0.0291358, 0.02866429, 0.02819988, 0.02774248, 0.02729199, 0.02684831, 0.02641135, 0.02598102, 0.02555722, 0.02513986, 0.02472886, 0.02432412, 0.02392556, 0.02353309, 0.02314663, 0.02276609, 0.02239138, 0.02202243, 0.02165916, 0.02130148, 0.02094932, 0.0206026, 0.02026123, 0.01992515, 0.01959428, 0.01926855, 0.01894787, 0.01863219, 0.01832142, 0.0180155, 0.01771436, 0.01741793, 0.01712614, 0.01683892, 0.01655621, 0.01627795, 0.01600406, 0.01573449, 0.01546917, 0.01520805, 0.01495105, 0.01469812, 0.0144492, 0.01420423, 0.01396315, 0.01372592, 0.01349246, 0.01326272, 0.01303665, 0.0128142, 0.01259531, 0.01237993, 0.01216801, 0.01195949, 0.01175432, 0.01155246, 0.01135386, 0.01115846, 0.01096623, 0.0107771, 0.01059104, 0.01040799, 0.01022792, 0.01005078, 0.00987653, 0.00970511, 0.00953649, 0.00937063, 0.00920748, 0.00904701, 0.00888916, 0.00873391, 0.00858121, 0.00843102, 0.00828331, 0.00813804, 0.00799516, 0.00785465, 0.00771646, 0.00758057, 0.00744692, 0.0073155, 0.00718627, 0.00705919, 0.00693422, 0.00681134, 0.00669052, 0.00657172, 0.0064549, 0.00634005, 0.00622712, 0.0061161, 0.00600694, 0.00589961, 0.0057941, 0.00569037, 0.0055884, 0.00548815, 0.0053896, 0.00529272, 0.00519748, 0.00510387, 0.00501185, 0.00492139, 0.00483248, 0.00474509, 0.00465919, 0.00457476, 0.00449178, 0.00441022, 0.00433007, 0.00425129, 0.00417386, 0.00409778, 0.004023, 0.00394952, 0.0038773, 0.00380634, 0.0037366, 0.00366808, 0.00360075, 0.00353458, 0.00346957, 0.00340569, 0.00334293, 0.00328126, 0.00322067, 0.00316114, 0.00310265, 0.00304519, 0.00298874, 0.00293328, 0.00287879, 0.00282527, 0.00277269, 0.00272104, 0.0026703, 0.00262046, 0.0025715, 0.00252341, 0.00247617, 0.00242977, 0.0023842, 0.00233944, 0.00229548, 0.0022523, 0.00220989, 0.00216825, 0.00212734, 0.00208717, 0.00204773, 0.00200899, 0.00197094, 0.00193358, 0.0018969, 0.00186087, 0.0018255, 0.00179077, 0.00175666, 0.00172317, 0.00169029, 0.00165801, 0.00162631, 0.00159519, 0.00156464, 0.00153464, 0.00150519, 0.00147628, 0.0014479, 0.00142003, 0.00139268, 0.00136583, 0.00133947, 0.0013136, 0.0012882, 0.00126327, 0.0012388, 0.00121478, 0.00119121, 0.00116807, 0.00114536, 0.00112307, 0.0011012, 0.00107973, 0.00105866, 0.00103798, 0.00101768, 0.00099777, 0.00097823, 0.00095905, 0.00094023, 0.00092176, 0.00090364, 0.00088586, 0.00086841, 0.00085129, 0.0008345, 0.00081802, 0.00080185, 0.00078598, 0.00077042, 0.00075515, 0.00074016, 0.00072547, 0.00071105, 0.0006969, 0.00068303, 0.00066941, 0.00065606, 0.00064296, 0.00063011, 0.00061751, 0.00060515, 0.00059302, 0.00058113, 0.00056947, 0.00055802, 0.0005468, 0.0005358, 0.000525, 0.00051442, 0.00050404, 0.00049386, 0.00048387, 0.00047408, 0.00046448, 0.00045506, 0.00044583, 0.00043678, 0.0004279, 0.00041919, 0.00041066, 0.00040229, 0.00039408, 0.00038604, 0.00037815, 0.00037042, 0.00036284, 0.0003554, 0.00034812, 0.00034097, 0.00033397, 0.0003271, 0.00032037, 0.00031377, 0.00030731, 0.00030097, 0.00029475, 0.00028866, 0.00028269, 0.00027684, 0.0002711, 0.00026548, 0.00025997, 0.00025457, 0.00024928, 0.00024409, 0.000239, 0.00023402, 0.00022914, 0.00022435, 0.00021967, 0.00021507, 0.00021057, 0.00020616, 0.00020183, 0.0001976, 0.00019345, 0.00018938, 0.00018539, 0.00018149, 0.00017766, 0.00017392, 0.00017024, 0.00016665, 0.00016312, 0.00015967, 0.00015629, 0.00015297, 0.00014973, 0.00014655, 0.00014343, 0.00014038, 0.00013739, 0.00013446, 0.00013159, 0.00012878, 0.00012603, 0.00012334, 0.0001207, 0.00011811, 0.00011558, 0.0001131, 0.00011067, 0.00010829, 0.00010597, 0.00010368, 0.00010145, 0.00009926, 0.00009712, 0.00009502, 0.00009297, 0.00009096, 0.00008899, 0.00008706, 0.00008517, 0.00008332, 0.00008151, 0.00007974, 0.00007801, 0.00007631, 0.00007465, 0.00007302, 0.00007142, 0.00006986, 0.00006833, 0.00006684, 0.00006538, 0.00006394, 0.00006254, 0.00006117, 0.00005982, 0.00005851, 0.00005722, 0.00005596, 0.00005473, 0.00005352, 0.00005234, 0.00005118, 0.00005005, 0.00004894, 0.00004786, 0.0000468, 0.00004576, 0.00004474, 0.00004375, 0.00004277, 0.00004182, 0.00004089, 0.00003998, 0.00003909, 0.00003821, 0.00003736, 0.00003652, 0.00003571, 0.00003491, 0.00003412, 0.00003336, 0.00003261, 0.00003188, 0.00003116, 0.00003046, 0.00002977, 0.0000291, 0.00002845, 0.0000278, 0.00002717, 0.00002656, 0.00002596, 0.00002537, 0.0000248, 0.00002423, 0.00002368, 0.00002315, 0.00002262, 0.0000221, 0.0000216, 0.00002111, 0.00002063, 0.00002016, 0.0000197, 0.00001925, 0.0000188, 0.00001837, 0.00001795, 0.00001754, 0.00001714, 0.00001675, 0.00001636, 0.00001598, 0.00001562, 0.00001526, 0.0000149, 0.00001456, 0.00001422, 0.0000139, 0.00001357, 0.00001326, 0.00001295, 0.00001265, 0.00001236, 0.00001207, 0.00001179, 0.00001152, 0.00001125, 0.00001099, 0.00001073, 0.00001048, 0.00001024, 9.9966753e-06, 9.76296117e-06, 9.53453769e-06, 9.31128931e-06, 9.09310286e-06, 8.8798676e-06, 8.67147508e-06, 8.46781915e-06, 8.2687959e-06, 8.07430358e-06, 7.88424264e-06, 7.69851559e-06, 7.51702702e-06, 7.33968353e-06, 7.16639371e-06, 6.99706808e-06, 6.83161907e-06, 6.66996095e-06, 6.51200984e-06, 6.35768363e-06, 6.20690195e-06, 6.05958617e-06, 5.91565932e-06, 5.77504608e-06, 5.63767273e-06, 5.50346714e-06, 5.37235874e-06, 5.24427844e-06, 5.11915866e-06, 4.99693325e-06, 4.8775375e-06, 4.7609081e-06, 4.64698308e-06, 4.53570182e-06, 4.427005e-06, 4.3208346e-06, 4.21713385e-06, 4.11584718e-06, 4.01692026e-06, 3.92029992e-06, 3.82593415e-06, 3.73377208e-06, 3.64376391e-06, 3.55586097e-06, 3.47001562e-06, 3.38618126e-06, 3.30431233e-06, 3.22436425e-06, 3.1462934e-06, 3.07005713e-06, 2.99561374e-06, 2.92292241e-06, 2.85194324e-06, 2.78263721e-06, 2.71496613e-06, 2.64889267e-06, 2.58438033e-06, 2.5213934e-06, 2.45989696e-06, 2.39985687e-06, 2.34123972e-06, 2.28401288e-06, 2.22814441e-06, 2.17360308e-06, 2.12035836e-06, 2.06838042e-06, 2.01764004e-06, 1.9681087e-06, 1.91975849e-06, 1.87256213e-06, 1.82649294e-06, 1.78152484e-06, 1.73763234e-06, 1.6947905e-06, 1.65297497e-06, 1.61216192e-06, 1.57232806e-06, 1.53345062e-06, 1.49550735e-06, 1.45847649e-06, 1.42233678e-06, 1.38706743e-06, 1.35264812e-06, 1.31905899e-06, 1.28628064e-06, 1.25429408e-06, 1.22308078e-06, 1.19262261e-06, 1.16290185e-06, 1.1339012e-06, 1.10560373e-06, 1.07799291e-06, 1.05105258e-06, 1.02476696e-06, 9.99120595e-07, 9.74098421e-07, 9.49685698e-07, 9.25868027e-07, 9.02631336e-07, 8.79961877e-07, 8.57846215e-07, 8.36271224e-07, 8.15224079e-07, 7.94692248e-07, 7.74663488e-07, 7.55125836e-07, 7.36067606e-07, 7.17477381e-07, 6.99344005e-07, 6.81656582e-07, 6.64404466e-07, 6.47577256e-07, 6.31164794e-07, 6.15157155e-07, 5.99544645e-07, 5.84317794e-07, 5.69467353e-07, 5.54984287e-07, 5.40859769e-07, 5.27085181e-07, 5.13652103e-07, 5.00552312e-07, 4.87777777e-07, 4.75320654e-07, 4.63173282e-07, 4.51328179e-07, 4.3977804e-07, 4.28515728e-07, 4.17534276e-07, 4.06826878e-07, 3.9638689e-07, 3.86207823e-07, 3.7628334e-07, 3.66607253e-07, 3.57173522e-07, 3.47976247e-07, 3.39009669e-07, 3.30268163e-07, 3.21746237e-07, 3.13438532e-07, 3.05339812e-07, 2.97444968e-07, 2.89749009e-07, 2.82247066e-07, 2.74934382e-07, 2.67806316e-07, 2.60858336e-07, 2.54086019e-07, 2.47485045e-07, 2.41051199e-07, 2.34780366e-07, 2.28668529e-07, 2.22711769e-07, 2.16906257e-07, 2.11248259e-07, 2.05734129e-07, 2.00360309e-07, 1.95123325e-07, 1.90019788e-07, 1.85046389e-07, 1.80199902e-07, 1.75477173e-07, 1.7087513e-07, 1.6639077e-07, 1.62021167e-07, 1.57763461e-07, 1.53614865e-07, 1.49572657e-07, 1.45634183e-07, 1.41796851e-07, 1.38058134e-07, 1.34415564e-07, 1.30866736e-07, 1.274093e-07, 1.24040966e-07, 1.20759498e-07, 1.17562716e-07, 1.14448491e-07, 1.11414748e-07, 1.08459461e-07, 1.05580656e-07, 1.02776405e-07, 1.00044827e-07, 9.73840891e-08, 9.47924017e-08, 9.22680197e-08, 8.98092407e-08, 8.74144044e-08, 8.5081891e-08, 8.28101208e-08, 8.05975529e-08, 7.84426844e-08, 7.63440496e-08, 7.43002187e-08, 7.23097976e-08, 7.03714264e-08, 6.84837791e-08, 6.66455622e-08, 6.48555145e-08, 6.31124062e-08, 6.14150377e-08, 5.97622394e-08, 5.81528709e-08, 5.65858198e-08, 5.50600019e-08, 5.35743596e-08, 5.21278618e-08, 5.07195033e-08, 4.93483038e-08, 4.80133076e-08, 4.67135829e-08, 4.54482212e-08, 4.42163369e-08, 4.30170663e-08, 4.18495676e-08, 4.07130203e-08, 3.96066241e-08, 3.85295992e-08, 3.74811852e-08, 3.6460641e-08, 3.5467244e-08, 3.45002901e-08, 3.35590928e-08, 3.26429829e-08, 3.17513082e-08, 3.0883433e-08, 3.00387377e-08, 2.92166184e-08, 2.84164865e-08, 2.76377684e-08, 2.6879905e-08, 2.61423513e-08, 2.54245765e-08, 2.4726063e-08, 2.40463064e-08, 2.33848154e-08, 2.2741111e-08, 2.21147266e-08, 2.15052074e-08, 2.09121102e-08, 2.03350033e-08, 1.97734659e-08, 1.92270881e-08, 1.86954705e-08, 1.81782238e-08, 1.76749689e-08, 1.71853363e-08, 1.67089661e-08, 1.62455077e-08, 1.57946193e-08, 1.53559682e-08, 1.49292301e-08, 1.45140891e-08, 1.41102376e-08, 1.37173757e-08, 1.33352115e-08, 1.29634606e-08, 1.26018458e-08, 1.22500974e-08, 1.19079523e-08, 1.15751546e-08, 1.12514549e-08, 1.09366102e-08, 1.0630384e-08, 1.03325459e-08, 1.00428714e-08, 9.76114196e-09, 9.48714473e-09, 9.22067241e-09, 8.96152312e-09, 8.70950026e-09, 8.46441239e-09, 8.22607305e-09, 7.99430071e-09, 7.76891858e-09, 7.54975452e-09, 7.3366409e-09, 7.12941452e-09, 6.92791645e-09, 6.73199196e-09, 6.54149039e-09, 6.35626506e-09, 6.17617315e-09, 6.00107562e-09, 5.8308371e-09, 5.66532581e-09, 5.50441344e-09, 5.34797509e-09, 5.19588916e-09, 5.04803729e-09, 4.90430425e-09, 4.76457787e-09, 4.62874896e-09, 4.49671125e-09, 4.36836128e-09, 4.24359835e-09, 4.12232445e-09, 4.00444417e-09, 3.88986466e-09, 3.77849556e-09, 3.67024889e-09, 3.56503906e-09, 3.46278274e-09, 3.36339886e-09, 3.26680851e-09, 3.17293489e-09, 3.08170327e-09, 2.99304092e-09, 2.90687708e-09, 2.82314288e-09, 2.7417713e-09, 2.66269714e-09, 2.58585695e-09, 2.51118899e-09, 2.43863318e-09, 2.36813108e-09, 2.29962582e-09, 2.23306206e-09, 2.16838597e-09, 2.10554517e-09, 2.04448871e-09, 1.98516702e-09, 1.92753186e-09, 1.87153632e-09, 1.81713475e-09, 1.76428275e-09, 1.71293712e-09, 1.66305586e-09, 1.61459808e-09, 1.56752404e-09, 1.52179505e-09, 1.47737351e-09, 1.43422282e-09, 1.3923074e-09, 1.35159263e-09, 1.31204486e-09, 1.27363132e-09, 1.23632019e-09, 1.20008049e-09, 1.1648821e-09, 1.13069573e-09, 1.09749289e-09, 1.06524587e-09, 1.03392775e-09, 1.00351231e-09, 9.7397408e-10, 9.45288294e-10, 9.1743086e-10, 8.90378354e-10, 8.64108001e-10, 8.38597656e-10, 8.13825787e-10, 7.89771457e-10, 7.66414313e-10, 7.43734563e-10, 7.21712966e-10, 7.00330816e-10, 6.79569926e-10, 6.59412616e-10, 6.39841697e-10, 6.20840459e-10, 6.02392659e-10, 5.84482505e-10, 5.67094649e-10, 5.50214167e-10, 5.33826557e-10, 5.17917719e-10, 5.02473949e-10, 4.87481927e-10, 4.72928706e-10, 4.58801702e-10, 4.45088684e-10, 4.31777765e-10, 4.18857391e-10, 4.06316333e-10, 3.9414368e-10, 3.82328825e-10, 3.70861463e-10, 3.59731576e-10, 3.48929432e-10, 3.38445571e-10, 3.28270803e-10, 3.18396195e-10, 3.08813069e-10, 2.9951299e-10, 2.90487765e-10, 2.81729431e-10, 2.73230251e-10, 2.64982709e-10, 2.569795e-10, 2.4921353e-10, 2.41677903e-10, 2.34365922e-10, 2.27271079e-10, 2.20387052e-10, 2.13707699e-10, 2.07227055e-10, 2.00939322e-10, 1.94838871e-10, 1.8892023e-10, 1.83178088e-10, 1.77607283e-10, 1.72202801e-10, 1.66959773e-10, 1.61873469e-10, 1.56939294e-10, 1.52152786e-10, 1.47509611e-10, 1.43005559e-10, 1.38636542e-10, 1.34398588e-10, 1.30287842e-10, 1.26300559e-10, 1.224331e-10, 1.18681934e-10, 1.1504363e-10, 1.11514858e-10, 1.08092383e-10, 1.04773063e-10, 1.01553848e-10, 9.84317767e-11, 9.5403973e-11, 9.24676441e-11, 8.96200788e-11, 8.68586442e-11, 8.41807842e-11, 8.1584017e-11, 7.90659328e-11, 7.66241925e-11, 7.42565245e-11, 7.1960724e-11, 6.97346502e-11, 6.7576225e-11, 6.54834308e-11, 6.34543092e-11, 6.14869589e-11, 5.95795344e-11, 5.77302442e-11, 5.59373493e-11, 5.41991617e-11, 5.25140429e-11, 5.08804025e-11, 4.92966969e-11, 4.77614279e-11, 4.62731413e-11, 4.48304258e-11, 4.34319115e-11, 4.2076269e-11, 4.07622081e-11, 3.94884767e-11, 3.82538596e-11, 3.70571776e-11, 3.58972863e-11, 3.47730751e-11, 3.36834664e-11, 3.26274145e-11, 3.16039047e-11, 3.06119522e-11, 2.96506017e-11, 2.87189261e-11, 2.7816026e-11, 2.69410286e-11, 2.60930871e-11, 2.52713799e-11, 2.44751099e-11, 2.37035038e-11, 2.29558113e-11, 2.22313045e-11, 2.15292773e-11, 2.08490446e-11, 2.01899418e-11, 1.95513243e-11, 1.89325667e-11, 1.83330623e-11, 1.77522226e-11, 1.71894769e-11, 1.66442715e-11, 1.61160692e-11, 1.56043492e-11, 1.51086062e-11, 1.46283501e-11, 1.41631057e-11, 1.37124119e-11, 1.32758217e-11, 1.28529013e-11, 1.24432304e-11, 1.2046401e-11, 1.16620176e-11, 1.12896968e-11, 1.09290664e-11, 1.0579766e-11, 1.02414456e-11, 9.91376608e-12, 9.59639861e-12, 9.28902427e-12, 8.99133382e-12, 8.70302744e-12, 8.4238144e-12, 8.15341285e-12, 7.89154948e-12, 7.63795933e-12, 7.39238549e-12, 7.1545789e-12, 6.92429809e-12, 6.70130898e-12, 6.4853846e-12, 6.27630496e-12, 6.07385677e-12, 5.87783328e-12, 5.68803406e-12, 5.50426483e-12, 5.32633727e-12, 5.15406882e-12, 4.98728252e-12, 4.82580688e-12, 4.66947564e-12, 4.51812767e-12, 4.3716068e-12, 4.22976166e-12, 4.09244554e-12, 3.95951625e-12, 3.83083601e-12, 3.70627127e-12, 3.58569259e-12, 3.46897456e-12, 3.35599562e-12, 3.24663799e-12, 3.14078753e-12, 3.03833362e-12, 2.93916909e-12, 2.84319008e-12, 2.75029595e-12, 2.66038919e-12, 2.57337531e-12, 2.48916277e-12, 2.40766287e-12, 2.32878967e-12, 2.2524599e-12, 2.17859288e-12, 2.10711047e-12, 2.03793694e-12, 1.97099894e-12, 1.9062254e-12, 1.84354748e-12, 1.78289847e-12, 1.72421378e-12, 1.66743081e-12, 1.61248894e-12, 1.55932945e-12, 1.50789545e-12, 1.45813185e-12, 1.40998526e-12, 1.36340399e-12, 1.31833798e-12, 1.27473873e-12, 1.23255927e-12, 1.1917541e-12, 1.15227918e-12, 1.11409183e-12, 1.07715072e-12, 1.04141583e-12, 1.00684842e-12, 9.73410937e-13, 9.41067048e-13, 9.09781552e-13, 8.79520367e-13, 8.5025049e-13, 8.21939962e-13, 7.94557838e-13, 7.68074155e-13, 7.42459901e-13, 7.17686984e-13, 6.93728206e-13, 6.70557233e-13, 6.48148568e-13, 6.26477527e-13, 6.05520211e-13, 5.85253483e-13, 5.65654943e-13, 5.46702907e-13, 5.28376382e-13, 5.10655044e-13, 4.93519223e-13, 4.76949872e-13, 4.60928559e-13, 4.45437439e-13, 4.30459238e-13, 4.15977236e-13, 4.01975252e-13, 3.8843762e-13, 3.7534918e-13, 3.62695256e-13, 3.50461647e-13, 3.38634607e-13, 3.27200831e-13, 3.16147444e-13, 3.05461986e-13, 2.95132397e-13, 2.85147008e-13, 2.75494524e-13, 2.66164017e-13, 2.5714491e-13, 2.4842697e-13, 2.40000292e-13, 2.31855295e-13, 2.23982706e-13, 2.16373552e-13, 2.09019152e-13, 2.01911106e-13, 1.95041287e-13, 1.88401832e-13, 1.81985133e-13, 1.75783828e-13, 1.69790796e-13, 1.63999149e-13, 1.5840222e-13, 1.52993561e-13, 1.47766934e-13, 1.42716306e-13, 1.37835837e-13, 1.33119881e-13, 1.28562976e-13, 1.24159837e-13, 1.19905353e-13, 1.1579458e-13, 1.11822736e-13, 1.07985195e-13, 1.04277484e-13, 1.00695274e-13, 9.72343822e-14, 9.38907593e-14, 9.06604907e-14, 8.75397903e-14, 8.45249965e-14, 8.1612568e-14, 7.87990802e-14, 7.60812213e-14, 7.34557887e-14, 7.09196854e-14, 6.84699163e-14, 6.61035857e-14, 6.3817893e-14, 6.16101305e-14, 5.94776799e-14, 5.74180097e-14, 5.54286719e-14, 5.35072998e-14, 5.16516051e-14, 4.98593753e-14, 4.81284713e-14, 4.64568252e-14, 4.48424375e-14, 4.32833752e-14, 4.17777698e-14, 4.03238147e-14, 3.89197636e-14, 3.75639282e-14, 3.62546765e-14, 3.4990431e-14, 3.37696668e-14, 3.25909098e-14, 3.14527352e-14, 3.03537658e-14, 2.92926704e-14, 2.82681623e-14, 2.7278998e-14, 2.63239755e-14, 2.5401933e-14, 2.4511748e-14, 2.36523352e-14, 2.2822646e-14, 2.20216669e-14, 2.12484184e-14, 2.05019542e-14, 1.97813594e-14, 1.90857502e-14, 1.84142725e-14, 1.77661008e-14, 1.71404376e-14, 1.65365122e-14, 1.595358e-14, 1.53909214e-14, 1.48478412e-14, 1.43236676e-14, 1.38177517e-14, 1.33294663e-14, 1.28582056e-14, 1.24033843e-14, 1.19644368e-14, 1.15408169e-14, 1.11319967e-14, 1.07374663e-14, 1.03567332e-14, 9.98932157e-15, 9.63477167e-15, 9.29263948e-15, 8.96249609e-15, 8.64392716e-15, 8.3365325e-15, 8.03992553e-15, 7.75373285e-15, 7.47759382e-15, 7.21116009e-15, 6.95409523e-15, 6.70607428e-15, 6.46678341e-15, 6.23591952e-15, 6.01318988e-15, 5.79831178e-15, 5.5910122e-15, 5.3910275e-15, 5.19810304e-15, 5.01199296e-15, 4.83245981e-15, 4.65927431e-15, 4.49221506e-15, 4.33106828e-15, 4.17562753e-15, 4.02569349e-15, 3.8810737e-15, 3.74158232e-15, 3.60703995e-15, 3.47727334e-15, 3.35211524e-15, 3.23140418e-15, 3.11498425e-15, 3.00270495e-15, 2.89442098e-15, 2.78999206e-15, 2.68928276e-15, 2.59216237e-15, 2.49850468e-15, 2.40818788e-15, 2.32109436e-15, 2.23711062e-15, 2.15612709e-15, 2.078038e-15, 2.00274127e-15, 1.93013836e-15, 1.86013417e-15, 1.79263689e-15, 1.72755795e-15, 1.66481183e-15, 1.60431599e-15, 1.54599081e-15, 1.4897594e-15, 1.4355476e-15, 1.38328381e-15, 1.33289894e-15, 1.28432633e-15, 1.23750164e-15, 1.19236279e-15, 1.14884987e-15, 1.10690508e-15, 1.06647263e-15, 1.02749871e-15, 9.89931371e-16, 9.53720517e-16, 9.18817797e-16, 8.85176563e-16, 8.52751809e-16, 8.21500113e-16, 7.91379581e-16, 7.62349797e-16, 7.34371768e-16, 7.07407877e-16, 6.81421835e-16, 6.56378634e-16, 6.32244502e-16, 6.08986861e-16, 5.86574285e-16, 5.6497646e-16, 5.44164144e-16, 5.24109133e-16, 5.04784218e-16, 4.8616316e-16, 4.68220647e-16, 4.50932265e-16, 4.34274469e-16, 4.18224549e-16, 4.02760602e-16, 3.87861505e-16, 3.73506886e-16, 3.59677096e-16, 3.4635319e-16, 3.33516893e-16, 3.21150586e-16, 3.09237276e-16, 2.97760576e-16, 2.86704685e-16, 2.76054367e-16, 2.65794929e-16, 2.55912205e-16, 2.46392534e-16, 2.37222745e-16, 2.28390139e-16, 2.1988247e-16, 2.11687934e-16, 2.03795148e-16, 1.96193138e-16, 1.88871324e-16, 1.81819507e-16, 1.75027853e-16, 1.68486882e-16, 1.62187455e-16, 1.56120763e-16, 1.50278313e-16, 1.44651917e-16, 1.39233684e-16, 1.34016008e-16, 1.28991555e-16, 1.24153257e-16, 1.19494302e-16, 1.15008123e-16, 1.10688391e-16, 1.06529006e-16, 1.02524087e-16, 9.86679691e-17, 9.49551899e-17, 9.13804862e-17, 8.79387853e-17, 8.46251984e-17, 8.14350145e-17, 7.83636933e-17, 7.54068597e-17, 7.25602974e-17, 6.98199436e-17, 6.71818833e-17, 6.46423439e-17, 6.21976903e-17, 5.98444197e-17, 5.75791572e-17, 5.53986508e-17, 5.32997674e-17, 5.12794881e-17, 4.93349042e-17, 4.74632135e-17, 4.56617161e-17, 4.3927811e-17, 4.22589923e-17, 4.06528458e-17, 3.91070458e-17, 3.76193519e-17, 3.61876058e-17, 3.48097283e-17, 3.34837167e-17, 3.22076417e-17, 3.0979645e-17, 2.97979364e-17, 2.86607917e-17, 2.75665502e-17, 2.65136122e-17, 2.55004369e-17, 2.45255404e-17, 2.35874935e-17, 2.26849196e-17, 2.18164929e-17, 2.09809367e-17, 2.01770213e-17, 1.94035625e-17, 1.865942e-17, 1.79434955e-17, 1.72547314e-17, 1.65921092e-17, 1.59546484e-17, 1.53414045e-17, 1.47514682e-17, 1.41839639e-17, 1.36380485e-17, 1.31129103e-17, 1.26077675e-17, 1.21218677e-17, 1.16544861e-17, 1.12049253e-17, 1.07725134e-17, 1.03566039e-17, 9.95657421e-18, 9.57182495e-18, 9.20177913e-18, 8.84588128e-18, 8.50359666e-18, 8.17441052e-18, 7.85782732e-18, 7.55337005e-18, 7.26057955e-18, 6.97901384e-18, 6.70824749e-18, 6.44787098e-18, 6.19749016e-18, 5.95672566e-18, 5.72521232e-18, 5.5025987e-18, 5.28854654e-18, 5.0827303e-18, 4.88483667e-18, 4.69456411e-18, 4.51162243e-18, 4.33573236e-18, 4.16662515e-18, 4.00404217e-18, 3.84773452e-18, 3.69746272e-18, 3.55299629e-18, 3.41411347e-18, 3.28060086e-18, 3.15225312e-18, 3.0288727e-18, 2.91026947e-18, 2.79626054e-18, 2.68666991e-18, 2.58132825e-18, 2.48007267e-18, 2.38274641e-18, 2.2891987e-18, 2.19928444e-18, 2.11286409e-18, 2.02980337e-18, 1.94997312e-18, 1.87324908e-18, 1.79951171e-18, 1.72864604e-18, 1.66054145e-18, 1.59509155e-18, 1.53219399e-18, 1.47175034e-18, 1.4136659e-18, 1.3578496e-18, 1.30421383e-18, 1.25267435e-18, 1.20315011e-18, 1.15556317e-18, 1.10983859e-18, 1.06590426e-18, 1.02369085e-18, 9.83131686e-19, 9.44162648e-19, 9.06722068e-19, 8.70750646e-19, 8.36191357e-19, 8.02989362e-19, 7.71091931e-19, 7.40448358e-19, 7.11009886e-19, 6.82729634e-19, 6.55562523e-19, 6.29465209e-19, 6.04396017e-19, 5.8031488e-19, 5.57183271e-19, 5.34964151e-19, 5.1362191e-19, 4.93122312e-19, 4.73432442e-19, 4.54520658e-19, 4.36356538e-19, 4.18910841e-19, 4.02155453e-19, 3.86063349e-19, 3.70608551e-19, 3.55766089e-19, 3.41511956e-19, 3.2782308e-19, 3.14677283e-19, 3.02053245e-19, 2.89930479e-19, 2.78289288e-19, 2.67110744e-19, 2.56376654e-19, 2.46069533e-19, 2.36172576e-19, 2.26669631e-19, 2.17545178e-19, 2.08784299e-19, 2.00372659e-19, 1.92296482e-19, 1.84542529e-19, 1.77098078e-19, 1.69950905e-19, 1.63089261e-19, 1.56501859e-19, 1.50177852e-19, 1.44106817e-19, 1.38278741e-19, 1.32684001e-19, 1.27313353e-19, 1.22157913e-19, 1.17209146e-19, 1.12458854e-19, 1.07899159e-19, 1.03522491e-19, 9.93215812e-20, 9.52894426e-20, 9.14193651e-20, 8.77049021e-20, 8.41398605e-20, 8.07182914e-20, 7.74344799e-20, 7.42829366e-20, 7.12583883e-20, 6.835577e-20, 6.55702165e-20, 6.28970546e-20, 6.03317958e-20, 5.78701289e-20, 5.55079132e-20, 5.32411717e-20, 5.10660849e-20, 4.89789842e-20, 4.69763467e-20, 4.50547887e-20, 4.3211061e-20, 4.14420429e-20, 3.97447378e-20, 3.81162679e-20, 3.65538697e-20, 3.50548894e-20, 3.36167789e-20, 3.22370912e-20, 3.09134769e-20, 2.96436797e-20, 2.84255336e-20, 2.72569586e-20, 2.61359576e-20, 2.50606133e-20, 2.40290846e-20, 2.30396041e-20, 2.2090475e-20, 2.1180068e-20, 2.03068192e-20, 1.9469227e-20, 1.86658499e-20, 1.78953042e-20, 1.71562615e-20, 1.64474466e-20, 1.57676353e-20, 1.51156526e-20, 1.44903707e-20, 1.38907068e-20, 1.33156217e-20, 1.27641179e-20, 1.2235238e-20, 1.17280631e-20, 1.12417111e-20, 1.07753355e-20, 1.03281239e-20, 9.89929653e-21, 9.48810503e-21, 9.09383123e-21, 8.71578588e-21, 8.35330754e-21, 8.00576146e-21, 7.67253851e-21, 7.35305415e-21, 7.04674747e-21, 6.75308022e-21, 6.47153591e-21, 6.20161897e-21, 5.94285385e-21, 5.69478427e-21, 5.45697244e-21, 5.22899831e-21, 5.01045884e-21, 4.80096736e-21, 4.60015288e-21, 4.40765947e-21, 4.22314565e-21, 4.04628383e-21, 3.87675971e-21, 3.7142718e-21, 3.55853086e-21, 3.40925942e-21, 3.26619131e-21, 3.12907121e-21, 2.9976542e-21, 2.87170534e-21, 2.75099928e-21, 2.63531986e-21, 2.52445975e-21, 2.41822009e-21, 2.31641014e-21, 2.21884696e-21, 2.12535508e-21, 2.03576622e-21, 1.94991899e-21, 1.8676586e-21, 1.78883661e-21, 1.71331065e-21, 1.64094419e-21, 1.57160633e-21, 1.50517149e-21, 1.44151929e-21, 1.38053427e-21, 1.32210571e-21, 1.26612747e-21, 1.21249775e-21, 1.16111894e-21, 1.11189746e-21, 1.06474356e-21, 1.01957122e-21, 9.76297939e-22, 9.34844627e-22, 8.95135454e-22, 8.57097722e-22, 8.20661732e-22, 7.85760663e-22, 7.52330456e-22, 7.20309701e-22, 6.89639523e-22, 6.60263489e-22, 6.32127495e-22, 6.05179683e-22, 5.7937034e-22, 5.54651812e-22, 5.30978425e-22, 5.08306394e-22, 4.86593755e-22, 4.65800285e-22, 4.45887429e-22, 4.26818236e-22, 4.08557292e-22, 3.91070652e-22, 3.74325786e-22, 3.58291517e-22, 3.42937965e-22, 3.28236496e-22, 3.14159668e-22, 3.00681184e-22, 2.87775843e-22, 2.75419496e-22, 2.63589001e-22, 2.52262183e-22, 2.41417793e-22, 2.31035471e-22, 2.21095708e-22, 2.11579809e-22, 2.02469865e-22, 1.93748712e-22, 1.8539991e-22, 1.77407703e-22, 1.69756999e-22, 1.62433337e-22, 1.55422863e-22, 1.48712305e-22, 1.42288948e-22, 1.3614061e-22, 1.30255622e-22, 1.24622806e-22, 1.19231452e-22, 1.14071303e-22, 1.09132533e-22, 1.04405729e-22, 9.98818754e-23, 9.55523356e-23, 9.1408838e-23, 8.74434595e-23, 8.36486115e-23, 8.00170257e-23, 7.65417406e-23, 7.3216089e-23, 7.00336854e-23, 6.69884144e-23, 6.40744192e-23, 6.12860909e-23, 5.8618058e-23, 5.60651765e-23, 5.36225206e-23, 5.12853729e-23, 4.90492165e-23, 4.69097257e-23, 4.48627587e-23, 4.29043494e-23, 4.10307003e-23, 3.92381751e-23, 3.75232922e-23, 3.58827181e-23, 3.4313261e-23, 3.28118652e-23, 3.13756048e-23, 3.00016788e-23, 2.86874055e-23, 2.74302175e-23, 2.62276569e-23, 2.50773706e-23, 2.39771063e-23, 2.29247074e-23, 2.19181098e-23, 2.09553374e-23, 2.00344989e-23, 1.91537834e-23, 1.8311458e-23, 1.75058636e-23, 1.67354125e-23, 1.59985848e-23, 1.52939257e-23, 1.4620043e-23, 1.3975604e-23, 1.33593334e-23, 1.27700106e-23, 1.22064672e-23, 1.16675853e-23, 1.11522949e-23, 1.0659572e-23, 1.01884368e-23, 9.73795159e-24, 9.30721894e-24, 8.89538018e-24, 8.50161361e-24, 8.12513296e-24, 7.76518586e-24, 7.4210524e-24, 7.09204377e-24, 6.77750085e-24, 6.47679304e-24, 6.18931696e-24, 5.91449533e-24, 5.65177584e-24, 5.40063005e-24, 5.16055242e-24, 4.9310593e-24, 4.71168797e-24, 4.50199578e-24, 4.30155927e-24, 4.10997334e-24, 3.92685047e-24, 3.75181996e-24, 3.5845272e-24, 3.42463299e-24, 3.27181289e-24, 3.12575653e-24, 2.98616707e-24, 2.85276057e-24, 2.72526545e-24, 2.60342195e-24, 2.48698165e-24, 2.37570694e-24, 2.26937057e-24, 2.1677552e-24, 2.07065298e-24, 1.97786512e-24, 1.88920153e-24, 1.80448042e-24, 1.72352792e-24, 1.6461778e-24, 1.57227108e-24, 1.50165572e-24, 1.43418638e-24, 1.36972404e-24, 1.30813579e-24, 1.24929455e-24, 1.19307881e-24, 1.13937237e-24, 1.08806416e-24, 1.03904795e-24, 9.92222208e-25, 9.47489845e-25, 9.04758042e-25, 8.63938061e-25, 8.24945067e-25, 7.87697959e-25, 7.52119204e-25, 7.18134684e-25, 6.85673548e-25, 6.54668064e-25, 6.25053489e-25, 5.96767934e-25, 5.69752242e-25, 5.43949865e-25, 5.19306756e-25, 4.95771251e-25, 4.73293973e-25, 4.51827725e-25, 4.313274e-25, 4.11749885e-25, 3.93053976e-25, 3.75200293e-25, 3.58151201e-25, 3.41870733e-25, 3.26324517e-25, 3.11479703e-25, 2.97304901e-25, 2.83770113e-25, 2.70846674e-25, 2.58507192e-25, 2.4672549e-25, 2.35476558e-25, 2.24736497e-25, 2.14482471e-25, 2.0469266e-25, 1.95346217e-25, 1.86423221e-25, 1.77904642e-25, 1.69772295e-25, 1.62008809e-25, 1.54597586e-25, 1.4752277e-25, 1.40769211e-25, 1.34322437e-25, 1.28168623e-25, 1.22294561e-25, 1.16687635e-25, 1.11335791e-25, 1.06227518e-25, 1.01351816e-25, 9.66981816e-26, 9.22565795e-26, 8.80174252e-26, 8.39715637e-26, 8.01102507e-26, 7.64251344e-26, 7.29082377e-26, 6.9551942e-26, 6.63489707e-26, 6.32923745e-26, 6.03755165e-26, 5.7592058e-26, 5.4935946e-26, 5.24013996e-26, 4.99828984e-26, 4.76751706e-26, 4.54731821e-26, 4.33721255e-26, 4.13674106e-26, 3.94546538e-26, 3.76296699e-26, 3.58884623e-26, 3.4227215e-26, 3.26422844e-26, 3.11301919e-26, 2.96876159e-26, 2.8311385e-26, 2.69984717e-26, 2.57459853e-26, 2.45511661e-26, 2.34113793e-26, 2.23241098e-26, 2.12869563e-26, 2.02976266e-26, 1.93539324e-26, 1.84537848e-26, 1.75951898e-26, 1.67762438e-26, 1.599513e-26, 1.52501141e-26, 1.45395405e-26, 1.38618291e-26, 1.32154717e-26, 1.25990289e-26, 1.20111266e-26, 1.14504536e-26, 1.09157582e-26, 1.0405846e-26, 9.91957704e-27, 9.45586331e-27, 9.01366657e-27, 8.59199594e-27, 8.18990586e-27, 7.80649396e-27, 7.44089914e-27, 7.09229971e-27, 6.75991156e-27, 6.44298648e-27, 6.14081053e-27, 5.85270248e-27, 5.57801233e-27, 5.31611986e-27, 5.06643331e-27, 4.82838808e-27, 4.60144547e-27, 4.38509153e-27, 4.17883592e-27, 3.98221081e-27, 3.7947699e-27, 3.61608741e-27, 3.44575715e-27, 3.2833916e-27, 3.12862113e-27, 2.98109309e-27, 2.84047109e-27, 2.70643426e-27, 2.57867651e-27, 2.45690587e-27, 2.34084385e-27, 2.23022482e-27, 2.1247954e-27, 2.02431393e-27, 1.92854991e-27, 1.8372835e-27, 1.75030503e-27, 1.66741452e-27, 1.58842125e-27, 1.51314335e-27, 1.44140735e-27, 1.37304782e-27, 1.30790701e-27, 1.24583448e-27, 1.18668676e-27, 1.13032705e-27, 1.0766249e-27, 1.02545591e-27, 9.76701463e-28, 9.30248455e-28, 8.85989042e-28, 8.43820393e-28, 8.03644464e-28, 7.65367773e-28, 7.2890119e-28, 6.94159739e-28, 6.61062402e-28, 6.29531936e-28, 5.99494704e-28, 5.70880499e-28, 5.43622396e-28, 5.17656589e-28, 4.92922255e-28, 4.69361411e-28, 4.46918785e-28, 4.25541688e-28, 4.05179896e-28, 3.85785536e-28, 3.67312972e-28, 3.49718709e-28, 3.32961287e-28, 3.17001189e-28, 3.0180075e-28, 2.87324072e-28, 2.73536941e-28, 2.60406748e-28, 2.47902414e-28, 2.35994322e-28, 2.24654243e-28, 2.13855278e-28, 2.03571789e-28, 1.93779348e-28, 1.84454673e-28, 1.75575579e-28, 1.67120925e-28, 1.59070566e-28, 1.51405307e-28, 1.44106857e-28, 1.37157786e-28, 1.3054149e-28, 1.24242144e-28, 1.18244673e-28, 1.12534713e-28, 1.07098579e-28, 1.01923231e-28, 9.69962468e-29, 9.23057924e-29, 8.78405922e-29, 8.35899049e-29, 7.95434975e-29, 7.56916217e-29, 7.2024991e-29, 6.85347592e-29, 6.52124994e-29, 6.20501843e-29, 5.90401676e-29, 5.61751659e-29, 5.34482416e-29, 5.08527865e-29, 4.83825066e-29, 4.60314071e-29, 4.3793778e-29, 4.16641811e-29, 3.9637437e-29, 3.77086127e-29, 3.58730102e-29, 3.41261554e-29, 3.24637872e-29, 3.08818478e-29, 2.93764728e-29, 2.79439823e-29, 2.65808719e-29, 2.52838045e-29, 2.40496024e-29, 2.28752397e-29, 2.17578353e-29, 2.06946455e-29, 1.96830582e-29, 1.87205859e-29, 1.78048604e-29, 1.6933627e-29, 1.61047386e-29, 1.53161513e-29, 1.4565919e-29, 1.38521891e-29, 1.31731978e-29, 1.25272657e-29, 1.19127942e-29, 1.13282616e-29, 1.0772219e-29, 1.02432874e-29, 9.74015394e-30, 9.26156884e-30, 8.80634255e-30, 8.37334273e-30, 7.96149154e-30, 7.56976305e-30, 7.19718076e-30, 6.84281522e-30, 6.50578179e-30, 6.18523849e-30, 5.88038396e-30, 5.59045553e-30, 5.31472732e-30, 5.05250852e-30, 4.80314171e-30, 4.56600122e-30, 4.34049164e-30, 4.12604635e-30, 3.92212616e-30, 3.72821796e-30, 3.54383347e-30, 3.3685081e-30, 3.20179974e-30, 3.0432877e-30, 2.89257171e-30, 2.74927091e-30, 2.61302291e-30, 2.48348291e-30, 2.36032286e-30, 2.24323064e-30, 2.13190929e-30, 2.02607629e-30, 1.92546285e-30, 1.82981327e-30, 1.73888427e-30, 1.65244443e-30, 1.57027359e-30, 1.49216232e-30, 1.41791139e-30, 1.34733127e-30, 1.2802417e-30, 1.21647118e-30, 1.15585661e-30, 1.09824282e-30, 1.04348225e-30, 9.91434523e-31, 9.41966132e-31, 8.94950093e-31, 8.50265633e-31, 8.07797886e-31, 7.67437609e-31, 7.29080904e-31, 6.92628962e-31, 6.57987814e-31, 6.25068097e-31, 5.93784825e-31, 5.64057184e-31, 5.35808322e-31, 5.08965159e-31, 4.83458202e-31, 4.5922137e-31, 4.3619183e-31, 4.14309835e-31, 3.93518577e-31, 3.73764039e-31, 3.54994863e-31, 3.37162219e-31, 3.20219678e-31, 3.04123101e-31, 2.88830521e-31, 2.74302039e-31, 2.60499725e-31, 2.47387516e-31, 2.34931133e-31, 2.23097983e-31, 2.11857087e-31, 2.01178992e-31, 1.91035702e-31, 1.81400604e-31, 1.72248402e-31, 1.63555047e-31, 1.55297685e-31, 1.47454589e-31, 1.40005109e-31, 1.32929618e-31, 1.2620946e-31, 1.19826904e-31, 1.137651e-31, 1.0800803e-31, 1.02540473e-31, 9.73479634e-32, 9.24167525e-32, 8.77337751e-32, 8.3286615e-32, 7.90634727e-32, 7.50531356e-32, 7.12449485e-32, 6.76287862e-32, 6.41950276e-32, 6.09345302e-32, 5.78386071e-32, 5.48990039e-32, 5.21078775e-32, 4.94577761e-32, 4.69416191e-32, 4.45526794e-32, 4.22845653e-32, 4.01312044e-32, 3.80868275e-32, 3.61459534e-32, 3.4303375e-32, 3.25541454e-32, 3.0893565e-32, 2.93171694e-32, 2.78207176e-32, 2.64001807e-32, 2.50517318e-32, 2.37717354e-32, 2.25567384e-32, 2.14034607e-32, 2.03087867e-32, 1.9269757e-32, 1.82835608e-32, 1.73475282e-32, 1.64591236e-32, 1.56159386e-32, 1.48156858e-32, 1.40561929e-32, 1.33353966e-32, 1.26513377e-32, 1.20021553e-32, 1.13860823e-32, 1.08014404e-32, 1.02466361e-32, 9.72015596e-33, 9.22056291e-33, 8.74649232e-33, 8.29664839e-33, 7.86980068e-33, 7.46478085e-33, 7.08047957e-33, 6.71584351e-33, 6.36987256e-33, 6.04161715e-33, 5.73017573e-33, 5.43469233e-33, 5.15435429e-33, 4.88839007e-33, 4.63606719e-33, 4.39669027e-33, 4.16959915e-33, 3.95416712e-33, 3.74979925e-33, 3.55593078e-33, 3.37202558e-33, 3.19757475e-33, 3.0320952e-33, 2.87512839e-33, 2.72623906e-33, 2.58501406e-33, 2.45106127e-33, 2.32400848e-33, 2.20350242e-33, 2.08920779e-33, 1.98080637e-33, 1.87799614e-33, 1.78049045e-33, 1.68801727e-33, 1.60031843e-33, 1.51714891e-33, 1.4382762e-33, 1.36347965e-33, 1.29254988e-33, 1.22528819e-33, 1.16150602e-33, 1.10102445e-33, 1.04367372e-33, 9.89292721e-34, 9.37728603e-34, 8.88836327e-34, 8.42478278e-34, 7.98523886e-34, 7.56849266e-34, 7.1733688e-34, 6.79875214e-34, 6.4435847e-34, 6.10686272e-34, 5.78763396e-34, 5.48499504e-34, 5.19808894e-34, 4.92610263e-34, 4.66826487e-34, 4.42384402e-34, 4.19214607e-34, 3.97251266e-34, 3.76431933e-34, 3.56697372e-34, 3.37991396e-34, 3.20260711e-34, 3.03454769e-34, 2.87525623e-34, 2.72427801e-34, 2.58118171e-34, 2.44555828e-34, 2.31701977e-34, 2.19519824e-34, 2.07974474e-34, 1.97032836e-34, 1.86663527e-34, 1.76836785e-34, 1.67524387e-34, 1.58699569e-34, 1.50336952e-34, 1.42412471e-34, 1.34903303e-34, 1.27787811e-34, 1.21045476e-34, 1.14656843e-34, 1.08603465e-34, 1.0286785e-34, 9.74334172e-35, 9.22844415e-35, 8.74060162e-35, 8.2784008e-35, 7.84050175e-35, 7.42563414e-35, 7.03259365e-35, 6.66023856e-35, 6.30748652e-35, 5.97331147e-35, 5.65674076e-35, 5.35685235e-35, 5.0727722e-35, 4.80367183e-35, 4.54876587e-35, 4.30730994e-35, 4.07859842e-35, 3.86196253e-35, 3.65676835e-35, 3.46241506e-35, 3.2783332e-35, 3.10398305e-35, 2.93885307e-35, 2.78245848e-35, 2.63433982e-35, 2.49406166e-35, 2.36121134e-35, 2.2353978e-35, 2.11625045e-35, 2.00341811e-35, 1.89656796e-35, 1.79538466e-35, 1.69956937e-35, 1.60883893e-35, 1.52292503e-35, 1.44157342e-35, 1.36454321e-35, 1.29160616e-35, 1.22254599e-35, 1.1571578e-35, 1.09524747e-35, 1.03663105e-35, 9.81134291e-36, 9.28592092e-36, 8.7884805e-36, 8.31753987e-36, 7.8716953e-36, 7.44961698e-36, 7.05004516e-36, 6.6717865e-36, 6.31371054e-36, 5.97474645e-36, 5.65387989e-36, 5.35015006e-36, 5.06264685e-36, 4.79050822e-36, 4.53291768e-36, 4.28910187e-36, 4.05832829e-36, 3.8399032e-36, 3.63316953e-36, 3.43750498e-36, 3.25232019e-36, 3.077057e-36, 2.91118679e-36, 2.75420898e-36, 2.60564949e-36, 2.46505938e-36, 2.33201351e-36, 2.2061093e-36, 2.08696553e-36, 1.9742212e-36, 1.8675345e-36, 1.76658176e-36, 1.67105652e-36, 1.58066858e-36, 1.4951432e-36, 1.41422023e-36, 1.33765336e-36, 1.26520941e-36, 1.19666759e-36, 1.13181887e-36, 1.07046537e-36, 1.01241972e-36, 9.57504576e-37, 9.05552027e-37, 8.56403124e-37, 8.09907397e-37, 7.65922407e-37, 7.2431332e-37, 6.849525e-37, 6.47719133e-37, 6.12498858e-37, 5.79183429e-37, 5.47670387e-37, 5.17862755e-37, 4.89668744e-37, 4.63001477e-37, 4.37778729e-37, 4.1392268e-37, 3.91359678e-37, 3.70020018e-37, 3.49837732e-37, 3.3075039e-37, 3.12698911e-37, 2.95627383e-37, 2.79482898e-37, 2.64215386e-37, 2.49777467e-37, 2.36124308e-37, 2.23213484e-37, 2.11004852e-37, 1.99460427e-37, 1.88544268e-37, 1.78222369e-37, 1.68462553e-37, 1.59234377e-37, 1.50509036e-37, 1.42259279e-37, 1.34459323e-37, 1.27084775e-37, 1.20112558e-37, 1.1352084e-37, 1.07288967e-37, 1.013974e-37, 9.58276555e-38, 9.0562248e-38, 8.55846371e-38, 8.08791765e-38, 7.64310659e-38, 7.22263053e-38, 6.82516525e-38, 6.44945817e-38, 6.09432453e-38, 5.75864376e-38, 5.44135595e-38, 5.14145867e-38, 4.85800378e-38, 4.59009461e-38, 4.33688308e-38, 4.09756714e-38, 3.87138828e-38, 3.65762918e-38, 3.45561144e-38, 3.26469355e-38, 3.08426885e-38, 2.91376366e-38, 2.75263549e-38, 2.60037138e-38, 2.45648625e-38, 2.32052145e-38, 2.19204328e-38, 2.07064167e-38, 1.9559289e-38, 1.84753838e-38, 1.74512347e-38, 1.64835648e-38, 1.55692757e-38, 1.47054381e-38, 1.38892826e-38, 1.3118191e-38, 1.23896881e-38, 1.1701434e-38, 1.10512166e-38, 1.04369446e-38, 9.85664148e-39, 9.30843839e-39, 8.79056898e-39, 8.30136354e-39, 7.83924375e-39, 7.40271779e-39, 6.99037553e-39, 6.60088414e-39, 6.23298385e-39, 5.88548399e-39, 5.55725919e-39, 5.24724585e-39, 4.95443872e-39, 4.67788778e-39, 4.41669517e-39, 4.17001236e-39, 3.93703747e-39, 3.71701268e-39, 3.50922187e-39, 3.31298829e-39, 3.12767244e-39, 2.95267003e-39, 2.78741003e-39, 2.63135286e-39, 2.48398867e-39, 2.34483572e-39, 2.21343881e-39, 2.08936787e-39, 1.97221651e-39, 1.86160081e-39, 1.75715801e-39, 1.65854541e-39, 1.5654392e-39, 1.47753348e-39, 1.39453927e-39, 1.31618354e-39, 1.24220837e-39, 1.17237011e-39, 1.10643859e-39, 1.04419638e-39, 9.85438074e-40, 9.29969669e-40, 8.77607893e-40, 8.28179634e-40, 7.81521379e-40, 7.37478679e-40, 6.95905654e-40, 6.56664519e-40, 6.19625136e-40, 5.84664593e-40, 5.51666803e-40, 5.20522129e-40, 4.91127027e-40, 4.63383709e-40, 4.37199824e-40, 4.12488159e-40, 3.89166352e-40, 3.67156627e-40, 3.46385537e-40, 3.26783725e-40, 3.08285699e-40, 2.90829615e-40, 2.74357078e-40, 2.58812947e-40, 2.4414516e-40, 2.30304557e-40, 2.17244721e-40, 2.0492183e-40, 1.93294505e-40, 1.82323682e-40, 1.71972477e-40, 1.6220607e-40, 1.52991586e-40, 1.4429799e-40, 1.36095984e-40, 1.28357907e-40, 1.21057649e-40, 1.14170561e-40, 1.07673375e-40, 1.01544126e-40, 9.57620814e-41, 9.03076705e-41, 8.51624198e-41, 8.03088926e-41, 7.57306305e-41, 7.1412099e-41, 6.73386361e-41, 6.3496403e-41, 5.98723388e-41, 5.64541163e-41, 5.32301016e-41, 5.01893149e-41, 4.73213941e-41, 4.46165603e-41, 4.20655849e-41, 3.96597588e-41, 3.73908637e-41, 3.52511441e-41, 3.32332816e-41, 3.13303704e-41, 2.95358941e-41, 2.78437039e-41, 2.62479979e-41, 2.47433017e-41, 2.33244499e-41, 2.19865688e-41, 2.07250602e-41, 1.95355856e-41, 1.84140518e-41, 1.73565968e-41, 1.63595775e-41, 1.54195565e-41, 1.45332911e-41, 1.36977223e-41, 1.2909964e-41, 1.21672938e-41, 1.14671437e-41, 1.08070909e-41, 1.01848501e-41, 9.59826588e-42, 9.04530469e-42, 8.52404859e-42, 8.03268848e-42, 7.56951797e-42, 7.1329276e-42, 6.72139935e-42, 6.33350146e-42, 5.96788358e-42, 5.62327214e-42, 5.29846601e-42, 4.99233242e-42, 4.70380307e-42, 4.43187047e-42, 4.17558451e-42, 3.93404922e-42, 3.70641968e-42, 3.49189912e-42, 3.28973622e-42, 3.0992225e-42, 2.91968991e-42, 2.75050851e-42, 2.59108434e-42, 2.44085735e-42, 2.29929947e-42, 2.16591282e-42, 2.04022798e-42, 1.92180233e-42, 1.81021862e-42, 1.70508341e-42, 1.60602583e-42, 1.51269619e-42, 1.42476485e-42, 1.34192105e-42, 1.26387182e-42, 1.19034099e-42, 1.12106821e-42, 1.05580808e-42, 9.94329253e-43, 9.36413668e-43, 8.81855778e-43, 8.30461834e-43, 7.82049214e-43, 7.36445788e-43, 6.93489314e-43, 6.53026879e-43, 6.14914359e-43, 5.79015919e-43, 5.45203539e-43, 5.13356567e-43, 4.83361293e-43, 4.55110558e-43, 4.28503373e-43, 4.03444567e-43, 3.79844455e-43, 3.57618521e-43, 3.36687125e-43, 3.16975217e-43, 2.98412079e-43, 2.80931077e-43, 2.64469419e-43, 2.48967944e-43, 2.34370904e-43, 2.20625777e-43, 2.07683074e-43, 1.95496167e-43, 1.84021126e-43, 1.73216561e-43, 1.6304348e-43, 1.53465144e-43, 1.44446945e-43, 1.35956277e-43, 1.27962425e-43, 1.20436451e-43, 1.13351098e-43, 1.06680688e-43, 1.00401032e-43, 9.44893456e-44, 8.89241654e-44, 8.3685275e-44, 7.87536318e-44, 7.41112994e-44, 6.97413835e-44, 6.56279717e-44, 6.1756077e-44, 5.81115837e-44, 5.46811974e-44, 5.14523973e-44, 4.84133914e-44, 4.55530743e-44, 4.28609874e-44, 4.03272813e-44, 3.79426807e-44, 3.5698451e-44, 3.35863668e-44, 3.15986825e-44, 2.97281043e-44, 2.79677644e-44, 2.63111955e-44, 2.47523083e-44, 2.32853689e-44, 2.19049787e-44, 2.06060543e-44, 1.93838098e-44, 1.8233739e-44, 1.71515992e-44, 1.61333963e-44, 1.51753696e-44, 1.42739788e-44, 1.34258908e-44, 1.26279679e-44, 1.18772561e-44, 1.11709746e-44, 1.05065058e-44, 9.88138545e-45, 9.29329384e-45, 8.74004747e-45, 8.21959101e-45, 7.72998979e-45, 7.26942275e-45, 6.83617585e-45, 6.42863576e-45, 6.045284e-45, 5.68469137e-45, 5.34551274e-45, 5.0264821e-45, 4.72640798e-45, 4.44416902e-45, 4.17870991e-45, 3.92903749e-45, 3.69421712e-45, 3.47336925e-45, 3.26566618e-45, 3.07032901e-45, 2.8866248e-45, 2.71386385e-45, 2.55139716e-45, 2.39861406e-45, 2.25493992e-45, 2.11983409e-45, 1.99278783e-45, 1.87332249e-45, 1.76098772e-45, 1.65535979e-45, 1.55604005e-45, 1.46265343e-45, 1.37484708e-45, 1.292289e-45, 1.2146669e-45, 1.14168696e-45, 1.07307278e-45, 1.00856435e-45, 9.47917066e-46, 8.90900835e-46, 8.37299216e-46, 7.86908612e-46, 7.3953751e-46, 6.95005771e-46, 6.53143952e-46, 6.13792678e-46, 5.76802046e-46, 5.42031064e-46, 5.09347121e-46, 4.78625497e-46, 4.4974889e-46, 4.22606979e-46, 3.97096011e-46, 3.73118412e-46, 3.50582417e-46, 3.29401731e-46, 3.094952e-46, 2.9078651e-46, 2.73203895e-46, 2.56679872e-46, 2.41150983e-46, 2.26557558e-46, 2.12843488e-46, 1.99956017e-46, 1.87845537e-46, 1.76465407e-46, 1.65771771e-46, 1.55723396e-46, 1.46281517e-46, 1.37409682e-46, 1.29073627e-46, 1.21241133e-46, 1.13881913e-46, 1.06967494e-46, 1.00471105e-46, 9.4367584e-47, 8.86332731e-47, 8.32459349e-47, 7.81846647e-47, 7.3429812e-47, 6.89629056e-47, 6.47665825e-47, 6.08245224e-47, 5.7121385e-47, 5.36427516e-47, 5.03750698e-47, 4.73056016e-47, 4.44223752e-47, 4.17141383e-47, 3.91703159e-47, 3.67809691e-47, 3.45367572e-47, 3.24289018e-47, 3.04491535e-47, 2.85897594e-47, 2.68434341e-47, 2.5203331e-47, 2.36630166e-47, 2.22164453e-47, 2.08579359e-47, 1.95821504e-47, 1.83840729e-47, 1.72589901e-47, 1.62024736e-47, 1.52103624e-47, 1.42787469e-47, 1.34039539e-47, 1.25825323e-47, 1.18112396e-47, 1.10870294e-47, 1.04070398e-47, 9.76858203e-48, 9.16913014e-48, 8.60631113e-48, 8.07789576e-48, 7.58178986e-48, 7.11602619e-48, 6.6787568e-48, 6.26824578e-48, 5.88286255e-48, 5.52107546e-48, 5.18144581e-48, 4.86262226e-48, 4.56333555e-48, 4.28239351e-48, 4.01867639e-48, 3.77113254e-48, 3.53877421e-48, 3.32067374e-48, 3.11595988e-48, 2.92381443e-48, 2.74346895e-48, 2.5742018e-48, 2.41533529e-48, 2.26623301e-48, 2.12629732e-48, 1.99496702e-48, 1.8717151e-48, 1.75604672e-48, 1.6474972e-48, 1.54563022e-48, 1.45003609e-48, 1.36033014e-48, 1.27615118e-48, 1.19716009e-48, 1.12303846e-48, 1.05348736e-48, 9.88226103e-49, 9.26991202e-49, 8.69535266e-49, 8.15626046e-49, 7.65045505e-49, 7.17588958e-49, 6.73064251e-49, 6.31291e-49, 5.92099874e-49, 5.55331919e-49, 5.20837927e-49, 4.88477837e-49, 4.58120181e-49, 4.29641556e-49, 4.02926132e-49, 3.77865191e-49, 3.54356689e-49, 3.32304851e-49, 3.11619786e-49, 2.92217126e-49, 2.74017692e-49, 2.5694717e-49, 2.4093582e-49, 2.25918191e-49, 2.1183286e-49, 1.98622185e-49, 1.86232074e-49, 1.74611764e-49, 1.63713622e-49, 1.5349295e-49, 1.43907804e-49, 1.34918827e-49, 1.26489089e-49, 1.18583938e-49, 1.11170862e-49, 1.04219353e-49, 9.77007893e-50, 9.15883149e-50, 8.58567338e-50, 8.04824066e-50, 7.54431553e-50, 7.07181728e-50, 6.6287939e-50, 6.2134141e-50, 5.82395994e-50, 5.45881979e-50, 5.1164818e-50, 4.79552774e-50, 4.49462724e-50, 4.21253236e-50, 3.94807248e-50, 3.7001496e-50, 3.46773376e-50, 3.24985892e-50, 3.04561896e-50, 2.85416401e-50, 2.67469694e-50, 2.50647013e-50, 2.34878241e-50, 2.20097614e-50, 2.06243459e-50, 1.93257932e-50, 1.81086791e-50, 1.69679163e-50, 1.58987344e-50, 1.48966596e-50, 1.39574966e-50, 1.30773114e-50, 1.2252415e-50, 1.14793482e-50, 1.07548673e-50, 1.0075931e-50, 9.43968737e-51, 8.84346244e-51, 8.28474905e-51, 7.7611965e-51, 7.27060077e-51, 6.81089548e-51, 6.38014328e-51, 5.97652783e-51, 5.59834629e-51, 5.24400226e-51, 4.91199911e-51, 4.60093384e-51, 4.30949116e-51, 4.03643813e-51, 3.78061892e-51, 3.54095009e-51, 3.31641604e-51, 3.10606476e-51, 2.9090039e-51, 2.72439704e-51, 2.55146018e-51, 2.38945848e-51, 2.23770319e-51, 2.09554877e-51, 1.96239018e-51, 1.83766038e-51, 1.7208279e-51, 1.61139467e-51, 1.50889392e-51, 1.41288818e-51, 1.3229675e-51, 1.23874768e-51, 1.15986872e-51, 1.08599322e-51, 1.01680504e-51, 9.52007935e-52, 8.91324293e-52, 8.34493999e-52, 7.81273315e-52, 7.31433863e-52, 6.84761657e-52, 6.41056199e-52, 6.00129635e-52, 5.61805958e-52, 5.25920268e-52, 4.92318067e-52, 4.60854613e-52, 4.31394301e-52, 4.0381009e-52, 3.77982966e-52, 3.53801435e-52, 3.3116105e-52, 3.09963967e-52, 2.90118531e-52, 2.71538883e-52, 2.54144599e-52, 2.37860343e-52, 2.2261555e-52, 2.08344122e-52, 1.94984149e-52, 1.82477642e-52, 1.70770289e-52, 1.59811219e-52, 1.49552789e-52, 1.39950375e-52, 1.30962187e-52, 1.22549083e-52, 1.1467441e-52, 1.0730384e-52, 1.00405225e-52, 9.39484587e-53, 8.79053497e-53, 8.22494973e-53, 7.69561793e-53, 7.20022459e-53, 6.73660197e-53, 6.30272026e-53, 5.89667885e-53, 5.51669811e-53, 5.16111174e-53, 4.82835957e-53, 4.51698082e-53, 4.22560783e-53, 3.95296009e-53, 3.69783876e-53, 3.45912146e-53, 3.23575739e-53, 3.02676283e-53, 2.83121684e-53, 2.64825726e-53, 2.47707703e-53, 2.3169206e-53, 2.16708073e-53, 2.02689536e-53, 1.89574477e-53, 1.77304887e-53, 1.65826465e-53, 1.55088388e-53, 1.45043082e-53, 1.35646021e-53, 1.26855528e-53, 1.18632596e-53, 1.10940718e-53, 1.03745725e-53, 9.70156386e-54, 9.07205312e-54, 8.48323939e-54, 7.93250145e-54, 7.4173863e-54, 6.93559837e-54, 6.48498945e-54, 6.06354929e-54, 5.66939675e-54, 5.30077156e-54, 4.95602658e-54, 4.63362054e-54, 4.33211128e-54, 4.05014939e-54, 3.78647228e-54, 3.5398986e-54, 3.30932303e-54, 3.09371142e-54, 2.89209624e-54, 2.70357226e-54, 2.52729258e-54, 2.36246489e-54, 2.20834796e-54, 2.06424835e-54, 1.92951735e-54, 1.8035481e-54, 1.68577292e-54, 1.57566075e-54, 1.47271483e-54, 1.37647049e-54, 1.28649306e-54, 1.20237598e-54, 1.12373896e-54, 1.05022629e-54, 9.81505258e-55, 9.17264693e-55, 8.57213545e-55, 8.01079601e-55, 7.48608271e-55, 6.99561452e-55, 6.5371646e-55, 6.10865039e-55, 5.7081243e-55, 5.33376495e-55, 4.98386908e-55, 4.65684388e-55, 4.35119986e-55, 4.06554419e-55, 3.79857444e-55, 3.54907271e-55, 3.31590022e-55, 3.09799214e-55, 2.89435281e-55, 2.70405131e-55, 2.5262172e-55, 2.36003666e-55, 2.20474877e-55, 2.05964216e-55, 1.92405169e-55, 1.79735556e-55, 1.67897243e-55, 1.56835882e-55, 1.46500665e-55, 1.36844096e-55, 1.27821772e-55, 1.19392186e-55, 1.11516537e-55, 1.04158555e-55, 9.72843357e-56, 9.08621881e-56, 8.48624891e-56, 7.92575497e-56, 7.40214893e-56, 6.91301177e-56, 6.45608256e-56, 6.02924811e-56, 5.63053338e-56, 5.25809247e-56, 4.91020024e-56, 4.58524439e-56, 4.28171813e-56, 3.99821332e-56, 3.73341399e-56, 3.48609036e-56, 3.25509322e-56, 3.03934866e-56, 2.83785314e-56, 2.64966892e-56, 2.47391975e-56, 2.30978685e-56, 2.15650517e-56, 2.01335985e-56, 1.87968297e-56, 1.75485044e-56, 1.63827918e-56, 1.52942441e-56, 1.42777715e-56, 1.33286184e-56, 1.24423423e-56, 1.16147925e-56, 1.08420915e-56, 1.01206169e-56, 9.44698444e-57, 8.81803296e-57, 8.23080925e-57, 7.68255464e-57, 7.17069218e-57, 6.69281474e-57, 6.24667382e-57, 5.83016917e-57, 5.44133902e-57, 5.07835101e-57, 4.73949367e-57, 4.42316848e-57, 4.12788241e-57, 3.85224105e-57, 3.59494204e-57, 3.3547691e-57, 3.13058627e-57, 2.9213327e-57, 2.72601767e-57, 2.54371596e-57, 2.37356355e-57, 2.21475359e-57, 2.06653263e-57, 1.92819709e-57, 1.79908996e-57, 1.67859776e-57, 1.56614764e-57, 1.46120471e-57, 1.36326953e-57, 1.27187577e-57, 1.18658803e-57, 1.10699977e-57, 1.03273145e-57, 9.63428697e-58, 8.9876066e-58, 8.38418462e-58, 7.82113736e-58, 7.29577271e-58, 6.80557744e-58, 6.34820535e-58, 5.92146621e-58, 5.52331543e-58, 5.15184442e-58, 4.80527154e-58, 4.48193373e-58, 4.18027863e-58, 3.89885723e-58, 3.63631699e-58, 3.39139551e-58, 3.16291448e-58, 2.94977411e-58, 2.75094794e-58, 2.56547796e-58, 2.39247002e-58, 2.23108966e-58, 2.08055809e-58, 1.94014849e-58, 1.80918257e-58, 1.68702735e-58, 1.57309212e-58, 1.46682563e-58, 1.36771347e-58, 1.27527564e-58, 1.1890642e-58, 1.10866119e-58, 1.03367662e-58, 9.63746557e-59, 8.98531465e-59, 8.37714519e-59, 7.81000115e-59, 7.28112448e-59, 6.78794189e-59, 6.32805258e-59, 5.89921663e-59, 5.49934432e-59, 5.12648609e-59, 4.77882312e-59, 4.45465866e-59, 4.15240983e-59, 3.87059999e-59, 3.60785168e-59, 3.36287993e-59, 3.13448611e-59, 2.92155214e-59, 2.72303508e-59, 2.5379621e-59, 0.41954841, 0.83909633, 1.25864326, 1.67818869, 2.09773214, 2.51727311, 2.93681109, 3.35634561, 3.77587614, 4.19540221, 4.61492332, 5.03443896, 5.45394864, 5.87345187, 6.29294815, 6.71243698, 7.13191786, 7.55139031, 7.97085381, 8.39030789, 8.80975203, 9.22918575, 9.64860854, 10.06801992, 10.48741938, 10.90680643, 11.32618057, 11.7455413, 12.16488814, 12.58422058, 13.00353813, 13.42284029, 13.84212656, 14.26139645, 14.68064947, 15.09988512, 15.51910289, 15.9383023, 16.35748285, 16.77664405, 17.19578539, 17.61490638, 18.03400653, 18.45308534, 18.87214232, 19.29117696, 19.71018878, 20.12917728, 20.54814196, 20.96708233, 21.38599789, 21.80488815, 22.22375261, 22.64259077, 23.06140215, 23.48018624, 23.89894256, 24.3176706, 24.73636987, 25.15503988, 25.57368013, 25.99229012, 26.41086937, 26.82941737, 27.24793364, 27.66641768, 28.08486899, 28.50328707, 28.92167145, 29.34002161, 29.75833707, 30.17661734, 30.59486191, 31.01307029, 31.431242, 31.84937653, 32.2674734, 32.6855321, 33.10355215, 33.52153305, 33.93947431, 34.35737544, 34.77523593, 35.19305531, 35.61083307, 36.02856872, 36.44626177, 36.86391173, 37.2815181, 37.69908039, 38.11659811, 38.53407077, 38.95149787, 39.36887892, 39.78621343, 40.2035009, 40.62074085, 41.03793278, 41.4550762, 41.87217062, 42.28921554, 42.70621048, 43.12315495, 43.54004844, 43.95689048, 44.37368057, 44.79041821, 45.20710292, 45.62373421, 46.04031159, 46.45683456, 46.87330263, 47.28971532, 47.70607213, 48.12237257, 48.53861616, 48.95480239, 49.3709308, 49.78700087, 50.20301213, 50.61896408, 51.03485624, 51.45068811, 51.86645921, 52.28216905, 52.69781713, 53.11340297, 53.52892608, 53.94438597, 54.35978216, 54.77511415, 55.19038145, 55.60558359, 56.02072006, 56.43579039, 56.85079408, 57.26573065, 57.68059961, 58.09540047, 58.51013274, 58.92479594, 59.33938959, 59.75391318, 60.16836625, 60.58274829, 60.99705883, 61.41129738, 61.82546345, 62.23955656, 62.65357621, 63.06752194, 63.48139324, 63.89518963, 64.30891063, 64.72255576, 65.13612452, 65.54961644, 65.96303103, 66.3763678, 66.78962627, 67.20280596, 67.61590638, 68.02892705, 68.44186748, 68.8547272, 69.26750571, 69.68020254, 70.09281719, 70.5053492, 70.91779807, 71.33016332, 71.74244448, 72.15464105, 72.56675256, 72.97877852, 73.39071846, 73.80257189, 74.21433832, 74.62601729, 75.0376083, 75.44911088, 75.86052454, 76.27184881, 76.6830832, 77.09422724, 77.50528045, 77.91624233, 78.32711242, 78.73789024, 79.14857531, 79.55916714, 79.96966526, 80.38006918, 80.79037844, 81.20059255, 81.61071104, 82.02073342, 82.43065922, 82.84048796, 83.25021917, 83.65985236, 84.06938705, 84.47882279, 84.88815907, 85.29739544, 85.70653141, 86.1155665, 86.52450025, 86.93333217, 87.34206179, 87.75068863, 88.15921223, 88.56763209, 88.97594776, 89.38415875, 89.7922646, 90.20026482, 90.60815894, 91.0159465, 91.423627, 91.8312, 92.238665, 92.64602153, 93.05326914, 93.46040733, 93.86743564, 94.27435361, 94.68116074, 95.08785659, 95.49444066, 95.9009125, 96.30727163, 96.71351758, 97.11964988, 97.52566806, 97.93157165, 98.33736018, 98.74303318, 99.14859018, 99.55403071, 99.95935431, 100.36456051, 100.76964883, 101.1746188, 101.57946997, 101.98420186, 102.38881401, 102.79330595, 103.1976772, 103.60192732, 104.00605581, 104.41006223, 104.81394611, 105.21770698, 105.62134437, 106.02485782, 106.42824686, 106.83151103, 107.23464987, 107.63766291, 108.04054968, 108.44330973, 108.84594258, 109.24844778, 109.65082486, 110.05307336, 110.45519282, 110.85718277, 111.25904276, 111.66077231, 112.06237097, 112.46383829, 112.86517378, 113.26637701, 113.6674475, 114.06838479, 114.46918843, 114.86985795, 115.2703929, 115.67079281, 116.07105724, 116.47118571, 116.87117777, 117.27103296, 117.67075083, 118.07033091, 118.46977276, 118.8690759, 119.26823989, 119.66726427, 120.06614858, 120.46489236, 120.86349517, 121.26195654, 121.66027602, 122.05845316, 122.45648749, 122.85437857, 123.25212595, 123.64972916, 124.04718775, 124.44450128, 124.84166928, 125.23869131, 125.63556691, 126.03229564, 126.42887703, 126.82531064, 127.22159602, 127.61773271, 128.01372027, 128.40955824, 128.80524617, 129.20078362, 129.59617013, 129.99140526, 130.38648856, 130.78141958, 131.17619786, 131.57082297, 131.96529445, 132.35961185, 132.75377474, 133.14778266, 133.54163516, 133.93533181, 134.32887215, 134.72225573, 135.11548213, 135.50855087, 135.90146154, 136.29421367, 136.68680682, 137.07924056, 137.47151443, 137.863628, 138.25558082, 138.64737245, 139.03900245, 139.43047037, 139.82177577, 140.21291822, 140.60389727, 140.99471248, 141.3853634, 141.77584961, 142.16617066, 142.55632611, 142.94631552, 143.33613846, 143.72579448, 144.11528315, 144.50460402, 144.89375667, 145.28274065, 145.67155553, 146.06020088, 146.44867624, 146.8369812, 147.22511531, 147.61307814, 148.00086925, 148.38848822, 148.7759346, 149.16320796, 149.55030787, 149.93723389, 150.3239856, 150.71056256, 151.09696433, 151.48319049, 151.86924061, 152.25511425, 152.64081098, 153.02633037, 153.411672, 153.79683543, 154.18182023, 154.56662598, 154.95125224, 155.33569859, 155.7199646, 156.10404984, 156.48795389, 156.87167631, 157.25521669, 157.63857458, 158.02174958, 158.40474125, 158.78754917, 159.17017291, 159.55261206, 159.93486617, 160.31693484, 160.69881763, 161.08051413, 161.46202391, 161.84334656, 162.22448163, 162.60542873, 162.98618742, 163.36675728, 163.7471379, 164.12732885, 164.50732972, 164.88714008, 165.26675951, 165.6461876, 166.02542393, 166.40446808, 166.78331963, 167.16197817, 167.54044328, 167.91871454, 168.29679154, 168.67467385, 169.05236108, 169.42985279, 169.80714858, 170.18424803, 170.56115073, 170.93785626, 171.31436422, 171.69067418, 172.06678574, 172.44269849, 172.81841201, 173.19392589, 173.56923972, 173.9443531, 174.3192656, 174.69397683, 175.06848637, 175.44279381, 175.81689875, 176.19080077, 176.56449947, 176.93799445, 177.31128529, 177.68437159, 178.05725294, 178.42992894, 178.80239918, 179.17466326, 179.54672077, 179.91857131, 180.29021448, 180.66164986, 181.03287706, 181.40389568, 181.77470532, 182.14530556, 182.51569602, 182.88587629, 183.25584596, 183.62560465, 183.99515194, 184.36448745, 184.73361076, 185.10252149, 185.47121924, 185.8397036, 186.20797418, 186.57603059, 186.94387242, 187.31149928, 187.67891078, 188.04610652, 188.4130861, 188.77984914, 189.14639523, 189.51272398, 189.87883501, 190.24472791, 190.6104023, 190.97585778, 191.34109397, 191.70611046, 192.07090688, 192.43548283, 192.79983791, 193.16397175, 193.52788395, 193.89157413, 194.25504189, 194.61828684, 194.98130861, 195.34410681, 195.70668104, 196.06903092, 196.43115607, 196.7930561, 197.15473063, 197.51617927, 197.87740163, 198.23839735, 198.59916602, 198.95970728, 199.32002073, 199.680106, 200.03996271, 200.39959047, 200.7589889, 201.11815763, 201.47709627, 201.83580444, 202.19428178, 202.55252789, 202.91054241, 203.26832495, 203.62587513, 203.98319259, 204.34027694, 204.69712781, 205.05374483, 205.41012762, 205.7662758, 206.122189, 206.47786685, 206.83330898, 207.18851502, 207.54348458, 207.89821731, 208.25271282, 208.60697076, 208.96099074, 209.3147724, 209.66831537, 210.02161929, 210.37468377, 210.72750847, 211.080093, 211.432437, 211.7845401, 212.13640195, 212.48802216, 212.83940039, 213.19053625, 213.5414294, 213.89207946, 214.24248608, 214.59264888, 214.94256751, 215.29224161, 215.64167081, 215.99085475, 216.33979307, 216.68848542, 217.03693143, 217.38513075, 217.73308301, 218.08078785, 218.42824493, 218.77545388, 219.12241434, 219.46912596, 219.81558839, 220.16180126, 220.50776423, 220.85347694, 221.19893903, 221.54415015, 221.88910996, 222.23381809, 222.57827419, 222.92247791, 223.26642891, 223.61012683, 223.95357132, 224.29676203, 224.63969861, 224.98238072, 225.324808, 225.66698011, 226.0088967, 226.35055743, 226.69196194, 227.0331099, 227.37400095, 227.71463475, 228.05501096, 228.39512923, 228.73498922, 229.0745906, 229.413933, 229.7530161, 230.09183955, 230.43040301, 230.76870615, 231.10674861, 231.44453006, 231.78205017, 232.11930859, 232.45630499, 232.79303902, 233.12951036, 233.46571866, 233.80166359, 234.13734481, 234.47276199, 234.80791479, 235.14280289, 235.47742594, 235.81178361, 236.14587558, 236.4797015, 236.81326106, 237.1465539, 237.47957972, 237.81233817, 238.14482892, 238.47705166, 238.80900604, 239.14069174, 239.47210844, 239.8032558, 240.1341335, 240.46474122, 240.79507862, 241.12514539, 241.45494119, 241.78446571, 242.11371863, 242.44269961, 242.77140833, 243.09984448, 243.42800774, 243.75589777, 244.08351427, 244.41085691, 244.73792537, 245.06471933, 245.39123848, 245.7174825, 246.04345106, 246.36914386, 246.69456058, 247.01970089, 247.34456449, 247.66915106, 247.99346029, 248.31749186, 248.64124546, 248.96472078, 249.2879175, 249.61083532, 249.93347392, 250.25583299, 250.57791222, 250.8997113, 251.22122992, 251.54246778, 251.86342457, 252.18409997, 252.50449369, 252.82460541, 253.14443483, 253.46398164, 253.78324555, 254.10222624, 254.4209234, 254.73933675, 255.05746597, 255.37531077, 255.69287083, 256.01014587, 256.32713557, 256.64383965, 256.96025779, 257.27638971, 257.59223509, 257.90779365, 258.22306509, 258.53804911, 258.85274541, 259.16715369, 259.48127367, 259.79510505, 260.10864753, 260.42190081, 260.73486462, 261.04753865, 261.3599226, 261.6720162, 261.98381915, 262.29533116, 262.60655193, 262.91748118, 263.22811862, 263.53846397, 263.84851692, 264.15827721, 264.46774453, 264.77691861, 265.08579915, 265.39438588, 265.7026785, 266.01067674, 266.31838031, 266.62578893, 266.93290231, 267.23972018, 267.54624224, 267.85246823, 268.15839786, 268.46403086, 268.76936693, 269.07440581, 269.37914721, 269.68359086, 269.98773648, 270.2915838, 270.59513254, 270.89838242, 271.20133316, 271.50398451, 271.80633617, 272.10838788, 272.41013937, 272.71159036, 273.01274059, 273.31358977, 273.61413764, 273.91438394, 274.21432839, 274.51397072, 274.81331066, 275.11234795, 275.41108232, 275.70951351, 276.00764124, 276.30546526, 276.60298529, 276.90020108, 277.19711236, 277.49371886, 277.79002033, 278.0860165, 278.38170711, 278.67709189, 278.9721706, 279.26694297, 279.56140874, 279.85556765, 280.14941944, 280.44296386, 280.73620065, 281.02912955, 281.32175031, 281.61406267, 281.90606637, 282.19776117, 282.4891468, 282.78022303, 283.07098958, 283.36144622, 283.65159268, 283.94142873, 284.2309541, 284.52016856, 284.80907184, 285.09766371, 285.3859439, 285.67391219, 285.96156831, 286.24891203, 286.5359431, 286.82266126, 287.10906629, 287.39515793, 287.68093594, 287.96640007, 288.25155009, 288.53638576, 288.82090683, 289.10511305, 289.38900421, 289.67258004, 289.95584031, 290.23878479, 290.52141324, 290.80372542, 291.08572109, 291.36740002, 291.64876197, 291.92980671, 292.210534, 292.49094361, 292.77103531, 293.05080886, 293.33026403, 293.60940059, 293.88821831, 294.16671696, 294.44489631, 294.72275613, 295.00029619, 295.27751627, 295.55441613, 295.83099555, 296.1072543, 296.38319216, 296.6588089, 296.9341043, 297.20907814, 297.48373018, 297.75806022, 298.03206801, 298.30575336, 298.57911602, 298.85215579, 299.12487244, 299.39726575, 299.66933551, 299.9410815, 300.21250349, 300.48360128, 300.75437464, 301.02482336, 301.29494722, 301.56474602, 301.83421953, 302.10336754, 302.37218985, 302.64068623, 302.90885647, 303.17670037, 303.44421772, 303.71140829, 303.9782719, 304.24480831, 304.51101734, 304.77689876, 305.04245238, 305.30767798, 305.57257536, 305.83714432, 306.10138465, 306.36529614, 306.6288786, 306.89213181, 307.15505559, 307.41764971, 307.679914, 307.94184823, 308.20345222, 308.46472577, 308.72566867, 308.98628072, 309.24656174, 309.50651152, 309.76612986, 310.02541657, 310.28437146, 310.54299433, 310.80128498, 311.05924323, 311.31686888, 311.57416173, 311.8311216, 312.08774829, 312.34404161, 312.60000138, 312.8556274, 313.11091949, 313.36587745, 313.6205011, 313.87479026, 314.12874473, 314.38236433, 314.63564888, 314.88859818, 315.14121206, 315.39349033, 315.64543282, 315.89703933, 316.14830968, 316.3992437, 316.6498412, 316.90010201, 317.15002594, 317.39961282, 317.64886246, 317.8977747, 318.14634935, 318.39458623, 318.64248517, 318.89004601, 319.13726855, 319.38415263, 319.63069807, 319.8769047, 320.12277236, 320.36830086, 320.61349003, 320.85833971, 321.10284973, 321.34701991, 321.59085009, 321.83434011, 322.07748978, 322.32029895, 322.56276745, 322.80489511, 323.04668177, 323.28812727, 323.52923144, 323.76999411, 324.01041513, 324.25049433, 324.49023155, 324.72962663, 324.96867941, 325.20738973, 325.44575744, 325.68378236, 325.92146435, 326.15880325, 326.39579889, 326.63245114, 326.86875982, 327.10472478, 327.34034588, 327.57562295, 327.81055584, 328.04514441, 328.27938849, 328.51328794, 328.74684261, 328.98005235, 329.212917, 329.44543642, 329.67761046, 329.90943897, 330.14092181, 330.37205883, 330.60284987, 330.83329481, 331.06339349, 331.29314577, 331.5225515, 331.75161054, 331.98032276, 332.208688, 332.43670613, 332.66437701, 332.89170049, 333.11867644, 333.34530472, 333.57158519, 333.79751771, 334.02310215, 334.24833837, 334.47322623, 334.6977656, 334.92195635, 335.14579833, 335.36929143, 335.5924355, 335.81523041, 336.03767603, 336.25977223, 336.48151888, 336.70291586, 336.92396302, 337.14466025, 337.36500741, 337.58500437, 337.80465102, 338.02394723, 338.24289286, 338.46148779, 338.67973191, 338.89762508, 339.11516719, 339.33235811, 339.54919771, 339.76568589, 339.98182251, 340.19760745, 340.41304061, 340.62812185, 340.84285106, 341.05722813, 341.27125293, 341.48492535, 341.69824527, 341.91121258, 342.12382717, 342.33608891, 342.5479977, 342.75955342, 342.97075596, 343.18160521, 343.39210106, 343.6022434, 343.81203211, 344.02146709, 344.23054823, 344.43927543, 344.64764856, 344.85566754, 345.06333224, 345.27064257, 345.47759842, 345.68419969, 345.89044627, 346.09633806, 346.30187495, 346.50705685, 346.71188365, 346.91635525, 347.12047155, 347.32423246, 347.52763787, 347.73068768, 347.9333818, 348.13572013, 348.33770257, 348.53932903, 348.74059941, 348.94151361, 349.14207155, 349.34227313, 349.54211825, 349.74160683, 349.94073876, 350.13951397, 350.33793236, 350.53599383, 350.73369831, 350.93104569, 351.1280359, 351.32466884, 351.52094444, 351.71686259, 351.91242322, 352.10762624, 352.30247157, 352.49695912, 352.6910888, 352.88486054, 353.07827426, 353.27132987, 353.46402728, 353.65636643, 353.84834723, 354.0399696, 354.23123346, 354.42213874, 354.61268535, 354.80287323, 354.99270228, 355.18217245, 355.37128365, 355.56003581, 355.74842885, 355.9364627, 356.12413729, 356.31145255, 356.49840841, 356.68500478, 356.87124162, 357.05711883, 357.24263637, 357.42779414, 357.6125921, 357.79703017, 357.98110829, 358.16482638, 358.34818438, 358.53118224, 358.71381988, 358.89609723, 359.07801425, 359.25957086, 359.440767, 359.62160261, 359.80207764, 359.98219201, 360.16194568, 360.34133857, 360.52037064, 360.69904183, 360.87735207, 361.05530132, 361.23288951, 361.41011659, 361.58698251, 361.76348721, 361.93963063, 362.11541273, 362.29083346, 362.46589275, 362.64059056, 362.81492684, 362.98890154, 363.16251461, 363.335766, 363.50865566, 363.68118354, 363.8533496, 364.0251538, 364.19659607, 364.36767639, 364.5383947, 364.70875095, 364.87874512, 365.04837715, 365.217647, 365.38655463, 365.5551, 365.72328306, 365.89110379, 366.05856213, 366.22565805, 366.39239151, 366.55876248, 366.72477091, 366.89041677, 367.05570002, 367.22062064, 367.38517857, 367.5493738, 367.71320628, 367.87667599, 368.03978289, 368.20252694, 368.36490813, 368.52692641, 368.68858175, 368.84987414, 369.01080353, 369.17136991, 369.33157323, 369.49141349, 369.65089064, 369.81000466, 369.96875554, 370.12714323, 370.28516773, 370.442829, 370.60012702, 370.75706177, 370.91363323, 371.06984138, 371.22568619, 371.38116765, 371.53628573, 371.69104043, 371.84543171, 371.99945956, 372.15312397, 372.30642491, 372.45936238, 372.61193635, 372.76414681, 372.91599375, 373.06747715, 373.218597, 373.36935329, 373.51974601, 373.66977514, 373.81944067, 373.9687426, 374.11768091, 374.26625559, 374.41446664, 374.56231405, 374.7097978, 374.85691791, 375.00367435, 375.15006712, 375.29609621, 375.44176163, 375.58706337, 375.73200143, 375.87657579, 376.02078647, 376.16463345, 376.30811675, 376.45123635, 376.59399226, 376.73638447, 376.878413, 377.02007783, 377.16137898, 377.30231645, 377.44289024, 377.58310035, 377.72294679, 377.86242957, 378.00154868, 378.14030414, 378.27869596, 378.41672414, 378.55438868, 378.69168961, 378.82862692, 378.96520063, 379.10141075, 379.23725728, 379.37274025, 379.50785966, 379.64261552, 379.77700785, 379.91103667, 380.04470198, 380.1780038, 380.31094215, 380.44351704, 380.5757285, 380.70757653, 380.83906115, 380.97018239, 381.10094026, 381.23133478, 381.36136597, 381.49103385, 381.62033845, 381.74927979, 381.87785788, 382.00607275, 382.13392442, 382.26141293, 382.38853828, 382.51530051, 382.64169965, 382.76773571, 382.89340874, 383.01871874, 383.14366576, 383.26824981, 383.39247094, 383.51632916, 383.63982451, 383.76295702, 383.88572672, 384.00813365, 384.13017782, 384.25185929, 384.37317808, 384.49413422, 384.61472775, 384.73495871, 384.85482713, 384.97433304, 385.09347649, 385.21225751, 385.33067614, 385.44873241, 385.56642638, 385.68375807, 385.80072752, 385.91733478, 386.03357989, 386.14946289, 386.26498382, 386.38014273, 386.49493966, 386.60937465, 386.72344774, 386.83715899, 386.95050844, 387.06349613, 387.17612211, 387.28838643, 387.40028913, 387.51183027, 387.62300989, 387.73382805, 387.84428479, 387.95438016, 388.06411421, 388.173487, 388.28249858, 388.391149, 388.49943832, 388.60736658, 388.71493384, 388.82214016, 388.9289856, 389.0354702, 389.14159403, 389.24735714, 389.35275959, 389.45780144, 389.56248274, 389.66680357, 389.77076396, 389.87436399, 389.97760372, 390.08048321, 390.18300252, 390.28516171, 390.38696084, 390.48839999, 390.58947921, 390.69019856, 390.79055812, 390.89055795, 390.99019811, 391.08947867, 391.1883997, 391.28696127, 391.38516344, 391.48300629, 391.58048988, 391.67761428, 391.77437957, 391.87078581, 391.96683308, 392.06252144, 392.15785098, 392.25282175, 392.34743385, 392.44168734, 392.53558229, 392.62911879, 392.7222969, 392.8151167, 392.90757828, 392.9996817, 393.09142705, 393.1828144, 393.27384383, 393.36451543, 393.45482927, 393.54478543, 393.63438399, 393.72362504, 393.81250865, 393.90103492, 393.98920392, 394.07701573, 394.16447044, 394.25156814, 394.33830891, 394.42469283, 394.51071999, 394.59639049, 394.68170439, 394.76666181, 394.85126281, 394.93550749, 395.01939594, 395.10292826, 395.18610452, 395.26892482, 395.35138926, 395.43349791, 395.51525089, 395.59664827, 395.67769015, 395.75837664, 395.83870781, 395.91868376, 395.9983046, 396.07757042, 396.1564813, 396.23503736, 396.31323869, 396.39108538, 396.46857753, 396.54571525, 396.62249863, 396.69892778, 396.77500278, 396.85072375, 396.92609079, 397.00110399, 397.07576346, 397.15006931, 397.22402163, 397.29762053, 397.37086612, 397.4437585, 397.51629777, 397.58848404, 397.66031743, 397.73179802, 397.80292594, 397.8737013, 397.94412418, 398.01419472, 398.08391302, 398.15327918, 398.22229332, 398.29095555, 398.35926598, 398.42722472, 398.49483189, 398.5620876, 398.62899195, 398.69554508, 398.76174708, 398.82759808, 398.89309818, 398.95824751, 399.02304619, 399.08749432, 399.15159204, 399.21533944, 399.27873666, 399.34178381, 399.40448101, 399.46682838, 399.52882604, 399.59047412, 399.65177273, 399.71272199, 399.77332203, 399.83357297, 399.89347493, 399.95302804, 400.01223242, 400.07108819, 400.12959549, 400.18775443, 400.24556515, 400.30302776, 400.3601424, 400.41690919, 400.47332827, 400.52939975, 400.58512377, 400.64050046, 400.69552995, 400.75021237, 400.80454785, 400.85853652, 400.91217851, 400.96547395, 401.01842298, 401.07102574, 401.12328234, 401.17519294, 401.22675766, 401.27797663, 401.32885, 401.3793779, 401.42956047, 401.47939784, 401.52889015, 401.57803754, 401.62684014, 401.67529811, 401.72341156, 401.77118065, 401.81860552, 401.8656863, 401.91242314, 401.95881618, 402.00486555, 402.05057141, 402.0959339, 402.14095315, 402.18562932, 402.22996255, 402.27395298, 402.31760075, 402.36090603, 402.40386893, 402.44648963, 402.48876826, 402.53070497, 402.57229991, 402.61355323, 402.65446507, 402.69503559, 402.73526493, 402.77515326, 402.8147007, 402.85390743, 402.89277358, 402.93129932, 402.96948479, 403.00733014, 403.04483554, 403.08200113, 403.11882707, 403.15531351, 403.19146061, 403.22726853, 403.26273741, 403.29786743, 403.33265872, 403.36711146, 403.4012258, 403.43500189, 403.4684399, 403.50153998, 403.5343023, 403.56672702, 403.59881429, 403.63056427, 403.66197714, 403.69305304, 403.72379215, 403.75419462, 403.78426061, 403.8139903, 403.84338385, 403.87244141, 403.90116316, 403.92954925, 403.95759987, 403.98531516, 404.0126953, 404.03974046, 404.0664508, 404.09282649, 404.1188677, 404.14457459, 404.16994735, 404.19498613, 404.2196911, 404.24406244, 404.26810032, 404.29180491, 404.31517638, 404.3382149, 404.36092064, 404.38329379, 404.4053345, 404.42704296, 404.44841934, 404.46946381, 404.49017656, 404.51055774, 404.53060755, 404.55032616, 404.56971373, 404.58877046, 404.60749652, 404.62589208, 404.64395733, 404.66169244, 404.67909759, 404.69617297, 404.71291874, 404.7293351, 404.74542223, 404.76118029, 404.77660949, 404.79170999, 404.80648199, 404.82092565, 404.83504118, 404.84882874, 404.86228854, 404.87542074, 404.88822553, 404.9007031, 404.91285364, 404.92467734, 404.93617437, 404.94734492, 404.95818919, 404.96870735, 404.97889961, 404.98876614, 404.99830714, 405.00752279, 405.01641329, 405.02497882, 405.03321958, 405.04113575, 405.04872753, 405.05599512, 405.06293869, 405.06955844, 405.07585458, 405.08182728, 405.08747674, 405.09280317, 405.09780674, 405.10248767, 405.10684613, 405.11088233, 405.11459647, 405.11798874, 405.12105933, 405.12380845, 405.12623628, 405.12834304, 405.13012892, 405.13159411, 405.13273882, 405.13356324, 405.13406757, 405.13425202, 405.13411679, 405.13366207, 405.13288807, 405.13179499, 405.13038303, 405.1286524, 405.12660329, 405.12423591, 405.12155046, 405.11854716, 405.11522619, 405.11158777, 405.1076321, 405.10335939, 405.09876984, 405.09386366, 405.08864106, 405.08310223, 405.0772474, 405.07107677, 405.06459054, 405.05778892, 405.05067213, 405.04324036, 405.03549384, 405.02743277, 405.01905736, 405.01036783, 405.00136437, 404.99204721, 404.98241656, 404.97247262, 404.96221561, 404.95164574, 404.94076323, 404.92956829, 404.91806114, 404.90624197, 404.89411103, 404.8816685, 404.86891462, 404.8558496, 404.84247365, 404.82878698, 404.81478983, 404.80048239, 404.7858649, 404.77093757, 404.75570061, 404.74015424, 404.72429869, 404.70813417, 404.6916609, 404.6748791, 404.657789, 404.6403908, 404.62268474, 404.60467103, 404.5863499, 404.56772156, 404.54878624, 404.52954416, 404.50999555, 404.49014062, 404.46997961, 404.44951273, 404.42874021, 404.40766227, 404.38627914, 404.36459104, 404.34259821, 404.32030085, 404.29769921, 404.2747935, 404.25158396, 404.22807081, 404.20425428, 404.1801346, 404.15571199, 404.13098668, 404.10595891, 404.0806289, 404.05499687, 404.02906307, 404.00282772, 403.97629105, 403.94945329, 403.92231467, 403.89487543, 403.86713579, 403.83909599, 403.81075627, 403.78211684, 403.75317795, 403.72393983, 403.69440271, 403.66456683, 403.63443242, 403.60399972, 403.57326895, 403.54224036, 403.51091419, 403.47929066, 403.44737001, 403.41515248, 403.38263831, 403.34982773, 403.31672099, 403.28331831, 403.24961993, 403.21562611, 403.18133706, 403.14675304, 403.11187428, 403.07670102, 403.0412335, 403.00547196, 402.96941665, 402.93306779, 402.89642564, 402.85949044, 402.82226242, 402.78474182, 402.7469289, 402.70882389, 402.67042704, 402.63173858, 402.59275877, 402.55348784, 402.51392604, 402.47407362, 402.43393081, 402.39349787, 402.35277504, 402.31176256, 402.27046068, 402.22886965, 402.18698971, 402.14482111, 402.10236409, 402.05961891, 402.01658581, 401.97326503, 401.92965683, 401.88576146, 401.84157916, 401.79711018, 401.75235477, 401.70731319, 401.66198567, 401.61637248, 401.57047385, 401.52429005, 401.47782132, 401.43106791, 401.38403008, 401.33670807, 401.28910214, 401.24121254, 401.19303953, 401.14458335, 401.09584426, 401.04682251, 400.99751836, 400.94793205, 400.89806386, 400.84791401, 400.79748279, 400.74677043, 400.69577719, 400.64450333, 400.5929491, 400.54111477, 400.48900058, 400.43660679, 400.38393367, 400.33098146, 400.27775042, 400.22424082, 400.1704529, 400.11638694, 400.06204318, 400.00742188, 399.95252331, 399.89734771, 399.84189536, 399.78616652, 399.73016143, 399.67388036, 399.61732358, 399.56049134, 399.5033839, 399.44600153, 399.38834448, 399.33041302, 399.2722074, 399.2137279, 399.15497478, 399.09594829, 399.0366487, 398.97707627, 398.91723127, 398.85711395, 398.79672459, 398.73606345, 398.67513079, 398.61392688, 398.55245197, 398.49070634, 398.42869026, 398.36640398, 398.30384777, 398.2410219, 398.17792664, 398.11456225, 398.050929, 397.98702715, 397.92285697, 397.85841873, 397.7937127, 397.72873915, 397.66349834, 397.59799054, 397.53221602, 397.46617505, 397.3998679, 397.33329483, 397.26645612, 397.19935204, 397.13198286, 397.06434884, 396.99645025, 396.92828738, 396.85986048, 396.79116983, 396.72221571, 396.65299837, 396.5835181, 396.51377516, 396.44376984, 396.37350239, 396.30297309, 396.23218222, 396.16113005, 396.08981685, 396.0182429, 395.94640846, 395.87431382, 395.80195924, 395.72934501, 395.65647139, 395.58333866, 395.5099471, 395.43629697, 395.36238856, 395.28822214, 395.21379799, 395.13911638, 395.0641776, 394.9889819, 394.91352958, 394.83782091, 394.76185616, 394.68563561, 394.60915955, 394.53242824, 394.45544197, 394.37820101, 394.30070564, 394.22295614, 394.14495279, 394.06669587, 393.98818565, 393.90942242, 393.83040645, 393.75113803, 393.67161743, 393.59184494, 393.51182083, 393.43154538, 393.35101888, 393.2702416, 393.18921383, 393.10793585, 393.02640793, 392.94463037, 392.86260343, 392.78032741, 392.69780258, 392.61502924, 392.53200765, 392.4487381, 392.36522088, 392.28145627, 392.19744454, 392.11318599, 392.0286809, 391.94392955, 391.85893223, 391.77368921, 391.68820079, 391.60246724, 391.51648886, 391.43026592, 391.34379871, 391.25708752, 391.17013263, 391.08293433, 390.9954929, 390.90780863, 390.8198818, 390.7317127, 390.64330162, 390.55464884, 390.46575465, 390.37661933, 390.28724318, 390.19762648, 390.10776951, 390.01767256, 389.92733593, 389.8367599, 389.74594475, 389.65489078, 389.56359828, 389.47206752, 389.3802988, 389.28829241, 389.19604864, 389.10356778, 389.01085011, 388.91789592, 388.82470551, 388.73127916, 388.63761717, 388.54371981, 388.4495874, 388.3552202, 388.26061852, 388.16578264, 388.07071285, 387.97540945, 387.87987273, 387.78410297, 387.68810047, 387.59186553, 387.49539842, 387.39869944, 387.30176889, 387.20460706, 387.10721423, 387.00959071, 386.91173677, 386.81365273, 386.71533886, 386.61679546, 386.51802282, 386.41902125, 386.31979102, 386.22033243, 386.12064578, 386.02073136, 385.92058947, 385.82022039, 385.71962442, 385.61880186, 385.517753, 385.41647813, 385.31497755, 385.21325156, 385.11130044, 385.00912449, 384.90672402, 384.8040993, 384.70125064, 384.59817834, 384.49488269, 384.39136398, 384.28762251, 384.18365857, 384.07947247, 383.97506449, 383.87043494, 383.76558412, 383.6605123, 383.5552198, 383.44970692, 383.34397393, 383.23802116, 383.13184888, 383.0254574, 382.91884702, 382.81201803, 382.70497073, 382.59770542, 382.49022239, 382.38252195, 382.27460439, 382.16647, 382.0581191, 381.94955197, 381.84076891, 381.73177023, 381.62255622, 381.51312717, 381.4034834, 381.29362519, 381.18355285, 381.07326668, 380.96276697, 380.85205402, 380.74112814, 380.62998962, 380.51863876, 380.40707586, 380.29530123, 380.18331515, 380.07111794, 379.95870989, 379.8460913, 379.73326248, 379.62022372, 379.50697531, 379.39351758, 379.2798508, 379.16597529, 379.05189135, 378.93759928, 378.82309937, 378.70839192, 378.59347725, 378.47835565, 378.36302742, 378.24749287, 378.13175229, 378.01580599, 377.89965426, 377.78329742, 377.66673576, 377.54996958, 377.43299918, 377.31582488, 377.19844696, 377.08086574, 376.96308151, 376.84509458, 376.72690525, 376.60851382, 376.48992059, 376.37112588, 376.25212997, 376.13293317, 376.01353579, 375.89393813, 375.7741405, 375.65414318, 375.5339465, 375.41355074, 375.29295622, 375.17216324, 375.0511721, 374.92998311, 374.80859657, 374.68701277, 374.56523204, 374.44325466, 374.32108095, 374.1987112, 374.07614573, 373.95338483, 373.83042881, 373.70727798, 373.58393264, 373.46039308, 373.33665963, 373.21273257, 373.08861223, 372.96429889, 372.83979287, 372.71509446, 372.59020398, 372.46512173, 372.33984802, 372.21438314, 372.08872741, 371.96288112, 371.83684459, 371.71061812, 371.58420201, 371.45759657, 371.3308021, 371.20381892, 371.07664731, 370.9492876, 370.82174008, 370.69400507, 370.56608286, 370.43797376, 370.30967808, 370.18119612, 370.05252819, 369.92367459, 369.79463564, 369.66541163, 369.53600287, 369.40640967, 369.27663233, 369.14667116, 369.01652647, 368.88619855, 368.75568773, 368.6249943, 368.49411856, 368.36306084, 368.23182142, 368.10040062, 367.96879875, 367.8370161, 367.705053, 367.57290973, 367.44058662, 367.30808396, 367.17540206, 367.04254124, 366.90950178, 366.77628401, 366.64288823, 366.50931474, 366.37556385, 366.24163587, 366.1075311, 365.97324985, 365.83879244, 365.70415915, 365.56935031, 365.43436621, 365.29920717, 365.16387349, 365.02836548, 364.89268344, 364.75682769, 364.62079852, 364.48459624, 364.34822117, 364.21167361, 364.07495386, 363.93806224, 363.80099905, 363.66376459, 363.52635917, 363.38878311, 363.2510367, 363.11312026, 362.97503409, 362.83677849, 362.69835378, 362.55976027, 362.42099825, 362.28206804, 362.14296994, 362.00370426, 361.86427131, 361.72467139, 361.58490481, 361.44497188, 361.30487291, 361.1646082, 361.02417806, 360.88358279, 360.74282271, 360.60189812, 360.46080932, 360.31955663, 360.17814035, 360.03656079, 359.89481825, 359.75291305, 359.61084548, 359.46861586, 359.3262245, 359.18367169, 359.04095776, 358.89808299, 358.75504771, 358.61185221, 358.46849681, 358.32498181, 358.18130752, 358.03747425, 357.8934823, 357.74933198, 357.60502359, 357.46055745, 357.31593385, 357.17115312, 357.02621554, 356.88112144, 356.73587111, 356.59046487, 356.44490302, 356.29918586, 356.15331371, 356.00728687, 355.86110564, 355.71477034, 355.56828127, 355.42163873, 355.27484304, 355.1278945, 354.98079341, 354.83354009, 354.68613484, 354.53857796, 354.39086976, 354.24301056, 354.09500064, 353.94684033, 353.79852992, 353.65006973, 353.50146006, 353.35270121, 353.2037935, 353.05473722, 352.90553269, 352.75618021, 352.60668008, 352.45703262, 352.30723812, 352.1572969, 352.00720926, 351.8569755, 351.70659593, 351.55607087, 351.4054006, 351.25458545, 351.1036257, 350.95252168, 350.80127368, 350.64988202, 350.49834699, 350.3466689, 350.19484806, 350.04288477, 349.89077934, 349.73853208, 349.58614328, 349.43361325, 349.28094231, 349.12813075, 348.97517887, 348.82208699, 348.66885541, 348.51548443, 348.36197436, 348.20832551, 348.05453817, 347.90061265, 347.74654926, 347.59234831, 347.43801008, 347.2835349, 347.12892307, 346.97417488, 346.81929065, 346.66427068, 346.50911526, 346.35382472, 346.19839934, 346.04283944, 345.88714532, 345.73131728, 345.57535562, 345.41926066, 345.26303269, 345.10667201, 344.95017894, 344.79355377, 344.63679681, 344.47990836, 344.32288872, 344.16573821, 344.00845711, 343.85104574, 343.69350439, 343.53583337, 343.37803299, 343.22010354, 343.06204534, 342.90385867, 342.74554385, 342.58710117, 342.42853095, 342.26983347, 342.11100905, 341.95205799, 341.79298059, 341.63377714, 341.47444796, 341.31499334, 341.15541359, 340.99570901, 340.8358799, 340.67592657, 340.5158493, 340.35564841, 340.1953242, 340.03487697, 339.87430702, 339.71361464, 339.55280015, 339.39186384, 339.23080602, 339.06962698, 338.90832703, 338.74690646, 338.58536558, 338.42370469, 338.26192409, 338.10002408, 337.93800495, 337.77586702, 337.61361057, 337.45123592, 337.28874335, 337.12613317, 336.96340569, 336.80056119, 336.63759998, 336.47452235, 336.31132862, 336.14801907, 335.98459401, 335.82105374, 335.65739855, 335.49362874, 335.32974461, 335.16574647, 335.0016346, 334.83740932, 334.67307091, 334.50861968, 334.34405592, 334.17937993, 334.01459201, 333.84969247, 333.68468158, 333.51955966, 333.35432701, 333.18898391, 333.02353067, 332.85796758, 332.69229495, 332.52651306, 332.36062222, 332.19462272, 332.02851487, 331.86229895, 331.69597526, 331.5295441, 331.36300577, 331.19636057, 331.02960878, 330.86275071, 330.69578665, 330.52871689, 330.36154174, 330.19426149, 330.02687644, 329.85938687, 329.69179309, 329.52409539, 329.35629407, 329.18838942, 329.02038173, 328.85227131, 328.68405844, 328.51574342, 328.34732655, 328.17880812, 328.01018842, 327.84146775, 327.6726464, 327.50372467, 327.33470285, 327.16558123, 326.99636011, 326.82703977, 326.65762053, 326.48810266, 326.31848646, 326.14877222, 325.97896024, 325.80905081, 325.63904422, 325.46894076, 325.29874074, 325.12844443, 324.95805213, 324.78756413, 324.61698073, 324.44630221, 324.27552888, 324.10466101, 323.93369891, 323.76264285, 323.59149314, 323.42025007, 323.24891392, 323.07748499, 322.90596356, 322.73434994, 322.5626444, 322.39084723, 322.21895874, 322.0469792, 321.87490891, 321.70274816, 321.53049724, 321.35815644, 321.18572604, 321.01320633, 320.84059761, 320.66790016, 320.49511428, 320.32224024, 320.14927835, 319.97622888, 319.80309213, 319.62986838, 319.45655792, 319.28316104, 319.10967803, 318.93610918, 318.76245477, 318.58871508, 318.41489042, 318.24098105, 318.06698728, 317.89290939, 317.71874766, 317.54450238, 317.37017383, 317.19576231, 317.02126809, 316.84669148, 316.67203274, 316.49729216, 316.32247004, 316.14756666, 315.97258229, 315.79751723, 315.62237177, 315.44714617, 315.27184074, 315.09645576, 314.9209915, 314.74544826, 314.56982631, 314.39412595, 314.21834745, 314.04249109, 313.86655717, 313.69054596, 313.51445775, 313.33829282, 313.16205146, 312.98573394, 312.80934054, 312.63287156, 312.45632727, 312.27970795, 312.10301389, 311.92624537, 311.74940267, 311.57248607, 311.39549585, 311.21843229, 311.04129568, 310.86408629, 310.6868044, 310.5094503, 310.33202427, 310.15452658, 309.97695752, 309.79931736, 309.62160638, 309.44382488, 309.26597311, 309.08805137, 308.91005992, 308.73199906, 308.55386906, 308.37567019, 308.19740274, 308.01906698, 307.8406632, 307.66219166, 307.48365265, 307.30504645, 307.12637332, 306.94763356, 306.76882743, 306.58995521, 306.41101719, 306.23201362, 306.0529448, 305.873811, 305.69461249, 305.51534955, 305.33602246, 305.15663149, 304.97717691, 304.797659, 304.61807804, 304.4384343, 304.25872806, 304.07895958, 303.89912915, 303.71923704, 303.53928352, 303.35926886, 303.17919334, 302.99905724, 302.81886082, 302.63860435, 302.45828812, 302.2779124, 302.09747745, 301.91698355, 301.73643096, 301.55581998, 301.37515085, 301.19442387, 301.01363929, 300.83279738, 300.65189843, 300.4709427, 300.28993046, 300.10886198, 299.92773754, 299.74655739, 299.56532182, 299.38403109, 299.20268547, 299.02128523, 298.83983064, 298.65832198, 298.4767595, 298.29514347, 298.11347417, 297.93175187, 297.74997682, 297.56814931, 297.38626959, 297.20433794, 297.02235462, 296.8403199, 296.65823405, 296.47609733, 296.29391, 296.11167235, 295.92938463, 295.7470471, 295.56466004, 295.38222371, 295.19973838, 295.01720431, 294.83462176, 294.651991, 294.4693123, 294.28658592, 294.10381212, 293.92099118, 293.73812334, 293.55520888, 293.37224806, 293.18924115, 293.0061884, 292.82309008, 292.63994645, 292.45675778, 292.27352432, 292.09024634, 291.90692411, 291.72355788, 291.54014791, 291.35669447, 291.17319782, 290.98965821, 290.80607592, 290.62245119, 290.4387843, 290.25507549, 290.07132504, 289.88753319, 289.70370022, 289.51982638, 289.33591192, 289.15195712, 288.96796222, 288.78392748, 288.59985317, 288.41573954, 288.23158685, 288.04739536, 287.86316532, 287.678897, 287.49459064, 287.31024652, 287.12586487, 286.94144597, 286.75699007, 286.57249741, 286.38796827, 286.20340289, 286.01880153, 285.83416445, 285.6494919, 285.46478413, 285.28004141, 285.09526398, 284.9104521, 284.72560602, 284.540726, 284.35581229, 284.17086515, 283.98588482, 283.80087157, 283.61582564, 283.43074729, 283.24563676, 283.06049432, 282.87532021, 282.69011468, 282.504878, 282.3196104, 282.13431214, 281.94898347, 281.76362464, 281.5782359, 281.39281751, 281.2073697, 281.02189274, 280.83638688, 280.65085235, 280.46528941, 280.27969831, 280.09407931, 279.90843263, 279.72275855, 279.5370573, 279.35132913, 279.16557428, 278.97979302, 278.79398558, 278.60815221, 278.42229316, 278.23640868, 278.050499, 277.86456439, 277.67860508, 277.49262131, 277.30661335, 277.12058142, 276.93452578, 276.74844667, 276.56234433, 276.37621902, 276.19007097, 276.00390043, 275.81770764, 275.63149284, 275.44525628, 275.25899821, 275.07271886, 274.88641848, 274.70009731, 274.51375559, 274.32739357, 274.14101148, 273.95460958, 273.76818809, 273.58174726, 273.39528733, 273.20880855, 273.02231115, 272.83579537, 272.64926146, 272.46270964, 272.27614018, 272.08955329, 271.90294922, 271.71632822, 271.52969051, 271.34303634, 271.15636595, 270.96967957, 270.78297744, 270.5962598, 270.40952688, 270.22277893, 270.03601618, 269.84923887, 269.66244722, 269.47564149, 269.28882191, 269.1019887, 268.91514211, 268.72828238, 268.54140973, 268.3545244, 268.16762663, 267.98071665, 267.79379469, 267.60686099, 267.41991579, 267.23295931, 267.04599179, 266.85901346, 266.67202455, 266.48502531, 266.29801595, 266.11099671, 265.92396783, 265.73692953, 265.54988205, 265.36282562, 265.17576046, 264.98868681, 264.80160491, 264.61451497, 264.42741723, 264.24031192, 264.05319926, 263.8660795, 263.67895285, 263.49181955, 263.30467982, 263.1175339, 262.930382, 262.74322437, 262.55606121, 262.36889278, 262.18171928, 261.99454095, 261.80735801, 261.62017069, 261.43297922, 261.24578382, 261.05858472, 260.87138214, 260.68417631, 260.49696746, 260.3097558, 260.12254157, 259.93532498, 259.74810626, 259.56088564, 259.37366334, 259.18643957, 258.99921458, 258.81198857, 258.62476176, 258.4375344, 258.25030668, 258.06307885, 257.87585111, 257.68862369, 257.50139681, 257.31417069, 257.12694555, 256.93972162, 256.75249911, 256.56527824, 256.37805923, 256.1908423, 256.00362768, 255.81641557, 255.62920621, 255.4419998, 255.25479656, 255.06759672, 254.88040049, 254.69320809, 254.50601973, 254.31883563, 254.13165602, 253.9444811, 253.75731109, 253.57014621, 253.38298667, 253.1958327, 253.00868449, 252.82154228, 252.63440627, 252.44727669, 252.26015373, 252.07303762, 251.88592857, 251.6988268, 251.51173252, 251.32464593, 251.13756727, 250.95049672, 250.76343452, 250.57638087, 250.38933598, 250.20230006, 250.01527333, 249.828256, 249.64124827, 249.45425037, 249.26726249, 249.08028485, 248.89331766, 248.70636112, 248.51941546, 248.33248087, 248.14555757, 247.95864576, 247.77174565, 247.58485745, 247.39798137, 247.21111762, 247.0242664, 246.83742793, 246.6506024, 246.46379002, 246.276991, 246.09020555, 245.90343388, 245.71667618, 245.52993266, 245.34320353, 245.156489, 244.96978926, 244.78310452, 244.596435, 244.40978088, 244.22314237, 244.03651968, 243.84991302, 243.66332257, 243.47674855, 243.29019116, 243.1036506, 242.91712707, 242.73062078, 242.54413191, 242.35766069, 242.1712073, 241.98477195, 241.79835483, 241.61195616, 241.42557612, 241.23921491, 241.05287275, 240.86654982, 240.68024632, 240.49396246, 240.30769842, 240.12145442, 239.93523064, 239.74902729, 239.56284455, 239.37668264, 239.19054174, 239.00442205, 238.81832377, 238.6322471, 238.44619222, 238.26015934, 238.07414865, 237.88816035, 237.70219462, 237.51625167, 237.33033169, 237.14443487, 236.95856141, 236.7727115, 236.58688533, 236.40108309, 236.21530499, 236.0295512, 235.84382193, 235.65811736, 235.4724377, 235.28678311, 235.10115381, 234.91554998, 234.72997181, 234.54441949, 234.35889321, 234.17339316, 233.98791953, 233.80247251, 233.61705229, 233.43165906, 233.246293, 233.06095431, 232.87564317, 232.69035977, 232.5051043, 232.31987695, 232.13467789, 231.94950733, 231.76436544, 231.57925241, 231.39416843, 231.20911369, 231.02408836, 230.83909264, 230.6541267, 230.46919074, 230.28428494, 230.09940948, 229.91456454, 229.72975032, 229.54496698, 229.36021473, 229.17549373, 228.99080418, 228.80614625, 228.62152012, 228.43692598, 228.25236402, 228.0678344, 227.88333731, 227.69887294, 227.51444146, 227.33004306, 227.14567791, 226.96134619, 226.77704808, 226.59278377, 226.40855342, 226.22435723, 226.04019537, 225.85606801, 225.67197533, 225.48791752, 225.30389474, 225.11990719, 224.93595502, 224.75203843, 224.56815758, 224.38431266, 224.20050383, 224.01673127, 223.83299517, 223.64929569, 223.46563301, 223.2820073, 223.09841874, 222.91486751, 222.73135376, 222.54787769, 222.36443946, 222.18103925, 221.99767722, 221.81435355, 221.63106842, 221.44782199, 221.26461444, 221.08144593, 220.89831665, 220.71522675, 220.53217641, 220.34916581, 220.16619511, 219.98326447, 219.80037408, 219.61752409, 219.43471469, 219.25194603, 219.06921829, 218.88653163, 218.70388623, 218.52128224, 218.33871984, 218.1561992, 217.97372048, 217.79128385, 217.60888947, 217.42653751, 217.24422814, 217.06196152, 216.87973782, 216.6975572, 216.51541984, 216.33332588, 216.1512755, 215.96926886, 215.78730613, 215.60538746, 215.42351303, 215.24168299, 215.0598975, 214.87815674, 214.69646086, 214.51481003, 214.3332044, 214.15164413, 213.9701294, 213.78866036, 213.60723716, 213.42585998, 213.24452896, 213.06324428, 212.88200609, 212.70081455, 212.51966981, 212.33857204, 212.1575214, 211.97651805, 211.79556213, 211.61465382, 211.43379326, 211.25298062, 211.07221605, 210.89149971, 210.71083176, 210.53021235, 210.34964163, 210.16911977, 209.98864691, 209.80822322, 209.62784885, 209.44752395, 209.26724868, 209.08702319, 208.90684763, 208.72672217, 208.54664695, 208.36662212, 208.18664784, 208.00672426, 207.82685154, 207.64702982, 207.46725926, 207.28754, 207.10787221, 206.92825603, 206.74869161, 206.5691791, 206.38971865, 206.21031041, 206.03095454, 205.85165117, 205.67240047, 205.49320258, 205.31405764, 205.13496581, 204.95592723, 204.77694206, 204.59801043, 204.41913251, 204.24030842, 204.06153833, 203.88282237, 203.7041607, 203.52555345, 203.34700079, 203.16850284, 202.99005976, 202.81167168, 202.63333877, 202.45506115, 202.27683898, 202.0986724, 201.92056154, 201.74250657, 201.56450761, 201.38656481, 201.20867832, 201.03084827, 200.85307481, 200.67535808, 200.49769822, 200.32009537, 200.14254968, 199.96506128, 199.78763031, 199.61025693, 199.43294125, 199.25568343, 199.07848361, 198.90134192, 198.7242585, 198.5472335, 198.37026704, 198.19335927, 198.01651033, 197.83972035, 197.66298947, 197.48631783, 197.30970556, 197.13315281, 196.9566597, 196.78022638, 196.60385297, 196.42753962, 196.25128647, 196.07509363, 195.89896126, 195.72288948, 195.54687844, 195.37092825, 195.19503906, 195.019211, 194.84344421, 194.66773881, 194.49209494, 194.31651273, 194.14099232, 193.96553383, 193.7901374, 193.61480316, 193.43953124, 193.26432177, 193.08917488, 192.9140907, 192.73906937, 192.564111, 192.38921574, 192.21438371, 192.03961504, 191.86490986, 191.69026829, 191.51569047, 191.34117652, 191.16672658, 190.99234076, 190.8180192, 190.64376202, 190.46956936, 190.29544133, 190.12137806, 189.94737968, 189.77344631, 189.59957809, 189.42577513, 189.25203756, 189.0783655, 188.90475909, 188.73121843, 188.55774367, 188.38433491, 188.21099229, 188.03771593, 187.86450594, 187.69136246, 187.51828561, 187.3452755, 187.17233226, 186.99945601, 186.82664688, 186.65390497, 186.48123043, 186.30862335, 186.13608387, 185.96361211, 185.79120818, 185.61887221, 185.44660431, 185.2744046, 185.1022732, 184.93021024, 184.75821582, 184.58629007, 184.4144331, 184.24264504, 184.07092599, 183.89927608, 183.72769542, 183.55618414, 183.38474233, 183.21337013, 183.04206765, 182.870835, 182.69967229, 182.52857965, 182.35755719, 182.18660502, 182.01572325, 181.84491201, 181.67417139, 181.50350153, 181.33290253, 181.1623745, 180.99191755, 180.8215318, 180.65121737, 180.48097436, 180.31080288, 180.14070304, 179.97067497, 179.80071876, 179.63083453, 179.46102239, 179.29128244, 179.12161481, 178.95201959, 178.78249691, 178.61304686, 178.44366955, 178.2743651, 178.10513361, 177.9359752, 177.76688996, 177.59787801, 177.42893945, 177.26007439, 177.09128294, 176.92256521, 176.75392129, 176.58535131, 176.41685535, 176.24843354, 176.08008597, 175.91181274, 175.74361397, 175.57548976, 175.40744021, 175.23946543, 175.07156552, 174.90374059, 174.73599073, 174.56831605, 174.40071666, 174.23319265, 174.06574413, 173.8983712, 173.73107397, 173.56385253, 173.39670698, 173.22963743, 173.06264398, 172.89572673, 172.72888578, 172.56212122, 172.39543317, 172.22882171, 172.06228695, 171.89582898, 171.72944792, 171.56314384, 171.39691686, 171.23076707, 171.06469457, 170.89869946, 170.73278183, 170.56694178, 170.40117941, 170.23549481, 170.06988808, 169.90435933, 169.73890863, 169.57353609, 169.40824181, 169.24302588, 169.07788839, 168.91282944, 168.74784913, 168.58294754, 168.41812477, 168.25338092, 168.08871608, 167.92413034, 167.7596238, 167.59519654, 167.43084867, 167.26658026, 167.10239143, 166.93828224, 166.77425281, 166.61030321, 166.44643355, 166.28264391, 166.11893437, 165.95530504, 165.79175601, 165.62828735, 165.46489917, 165.30159154, 165.13836457, 164.97521833, 164.81215292, 164.64916843, 164.48626494, 164.32344255, 164.16070133, 163.99804138, 163.83546278, 163.67296562, 163.51054999, 163.34821598, 163.18596366, 163.02379313, 162.86170447, 162.69969777, 162.53777311, 162.37593058, 162.21417026, 162.05249224, 161.8908966, 161.72938342, 161.5679528, 161.4066048, 161.24533952, 161.08415704, 160.92305744, 160.76204081, 160.60110722, 160.44025676, 160.27948951, 160.11880555, 159.95820497, 159.79768784, 159.63725424, 159.47690427, 159.31663799, 159.15645548, 158.99635684, 158.83634213, 158.67641143, 158.51656483, 158.35680241, 158.19712424, 158.0375304, 157.87802098, 157.71859604, 157.55925566, 157.39999993, 157.24082893, 157.08174272, 156.92274138, 156.763825, 156.60499365, 156.4462474, 156.28758633, 156.12901051, 155.97052003, 155.81211496, 155.65379537, 155.49556134, 155.33741293, 155.17935024, 155.02137332, 154.86348226, 154.70567712, 154.54795799, 154.39032493, 154.23277802, 154.07531732, 153.91794292, 153.76065489, 153.60345329, 153.4463382, 153.28930969, 153.13236783, 152.97551269, 152.81874434, 152.66206286, 152.50546832, 152.34896078, 152.19254031, 152.03620699, 151.87996088, 151.72380205, 151.56773057, 151.41174652, 151.25584996, 151.10004095, 150.94431957, 150.78868588, 150.63313995, 150.47768185, 150.32231165, 150.16702941, 150.0118352, 149.85672909, 149.70171113, 149.54678141, 149.39193998, 149.23718691, 149.08252227, 148.92794611, 148.77345851, 148.61905954, 148.46474924, 148.3105277, 148.15639496, 148.00235111, 147.84839619, 147.69453028, 147.54075343, 147.38706571, 147.23346719, 147.07995792, 146.92653797, 146.77320739, 146.61996626, 146.46681463, 146.31375256, 146.16078011, 146.00789736, 145.85510434, 145.70240114, 145.5497878, 145.39726439, 145.24483096, 145.09248758, 144.9402343, 144.78807119, 144.63599831, 144.4840157, 144.33212344, 144.18032157, 144.02861016, 143.87698927, 143.72545895, 143.57401925, 143.42267025, 143.27141198, 143.12024452, 142.96916791, 142.81818222, 142.66728749, 142.51648379, 142.36577117, 142.21514968, 142.06461939, 141.91418034, 141.76383259, 141.61357619, 141.4634112, 141.31333768, 141.16335568, 141.01346524, 140.86366643, 140.71395929, 140.56434389, 140.41482027, 140.26538848, 140.11604858, 139.96680062, 139.81764465, 139.66858073, 139.5196089, 139.37072921, 139.22194173, 139.07324649, 138.92464355, 138.77613296, 138.62771476, 138.47938902, 138.33115577, 138.18301508, 138.03496698, 137.88701152, 137.73914877, 137.59137875, 137.44370153, 137.29611715, 137.14862566, 137.00122711, 136.85392154, 136.706709, 136.55958954, 136.41256321, 136.26563005, 136.11879011, 135.97204343, 135.82539007, 135.67883006, 135.53236346, 135.38599031, 135.23971065, 135.09352453, 134.94743199, 134.80143309, 134.65552785, 134.50971634, 134.36399858, 134.21837463, 134.07284453, 133.92740833, 133.78206605, 133.63681776, 133.49166349, 133.34660328, 133.20163718, 133.05676523, 132.91198747, 132.76730394, 132.62271468, 132.47821975, 132.33381916, 132.18951298, 132.04530123, 131.90118396, 131.75716121, 131.61323302, 131.46939943, 131.32566048, 131.1820162, 131.03846665, 130.89501184, 130.75165184, 130.60838667, 130.46521637, 130.32214099, 130.17916055, 130.0362751, 129.89348467, 129.75078931, 129.60818905, 129.46568392, 129.32327397, 129.18095922, 129.03873973, 128.89661551, 128.75458662, 128.61265308, 128.47081493, 128.32907221, 128.18742494, 128.04587318, 127.90441694, 127.76305628, 127.62179121, 127.48062177, 127.33954801, 127.19856995, 127.05768762, 126.91690106, 126.77621031, 126.63561539, 126.49511635, 126.3547132, 126.21440599, 126.07419474, 125.9340795, 125.79406028, 125.65413713, 125.51431007, 125.37457913, 125.23494435, 125.09540576, 124.95596339, 124.81661726, 124.67736742, 124.53821388, 124.39915668, 124.26019585, 124.12133142, 123.98256342, 123.84389187, 123.70531681, 123.56683826, 123.42845626, 123.29017083, 123.151982, 123.01388979, 122.87589425, 122.73799538, 122.60019323, 122.46248781, 122.32487916, 122.18736731, 122.04995227, 121.91263407, 121.77541275, 121.63828833, 121.50126083, 121.36433028, 121.2274967, 121.09076012, 120.95412057, 120.81757808, 120.68113265, 120.54478433, 120.40853313, 120.27237908, 120.1363222, 120.00036252, 119.86450005, 119.72873484, 119.59306688, 119.45749622, 119.32202288, 119.18664686, 119.05136821, 118.91618694, 118.78110307, 118.64611662, 118.51122763, 118.3764361, 118.24174206, 118.10714553, 117.97264653, 117.83824509, 117.70394122, 117.56973494, 117.43562628, 117.30161526, 117.16770189, 117.03388619, 116.90016819, 116.7665479, 116.63302535, 116.49960054, 116.36627351, 116.23304427, 116.09991284, 115.96687923, 115.83394347, 115.70110557, 115.56836555, 115.43572343, 115.30317922, 115.17073295, 115.03838463, 114.90613427, 114.7739819, 114.64192753, 114.50997117, 114.37811285, 114.24635258, 114.11469037, 113.98312624, 113.85166021, 113.72029229, 113.58902249, 113.45785084, 113.32677734, 113.19580201, 113.06492487, 112.93414593, 112.8034652, 112.6728827, 112.54239843, 112.41201243, 112.28172469, 112.15153523, 112.02144407, 111.89145121, 111.76155668, 111.63176048, 111.50206262, 111.37246312, 111.24296198, 111.11355923, 110.98425487, 110.85504891, 110.72594137, 110.59693226, 110.46802158, 110.33920935, 110.21049558, 110.08188028, 109.95336346, 109.82494512, 109.69662529, 109.56840396, 109.44028116, 109.31225688, 109.18433114, 109.05650395, 108.92877531, 108.80114524, 108.67361374, 108.54618082, 108.41884649, 108.29161076, 108.16447364, 108.03743512, 107.91049523, 107.78365397, 107.65691134, 107.53026736, 107.40372202, 107.27727534, 107.15092733, 107.02467798, 106.89852731, 106.77247532, 106.64652202, 106.52066742, 106.39491151, 106.26925431, 106.14369581, 106.01823603, 105.89287498, 105.76761264, 105.64244904, 105.51738417, 105.39241803, 105.26755064, 105.142782, 105.01811211, 104.89354097, 104.76906858, 104.64469496, 104.5204201, 104.39624401, 104.27216669, 104.14818814, 104.02430836, 103.90052737, 103.77684515, 103.65326171, 103.52977706, 103.40639119, 103.28310411, 103.15991581, 103.03682631, 102.91383559, 102.79094367, 102.66815054, 102.5454562, 102.42286066, 102.30036391, 102.17796595, 102.05566679, 101.93346642, 101.81136485, 101.68936206, 101.56745807, 101.44565288, 101.32394647, 101.20233885, 101.08083002, 100.95941998, 100.83810872, 100.71689624, 100.59578255, 100.47476764, 100.35385151, 100.23303415, 100.11231556, 99.99169574, 99.8711747, 99.75075241, 99.63042889, 99.51020413, 99.39007812, 99.27005086, 99.15012235, 99.03029259, 98.91056156, 98.79092928, 98.67139572, 98.55196089, 98.43262478, 98.31338739, 98.19424872, 98.07520875, 97.95626749, 97.83742492, 97.71868104, 97.60003586, 97.48148935, 97.36304152, 97.24469235, 97.12644185, 97.00829001, 96.89023682, 96.77228226, 96.65442635, 96.53666907, 96.4190104, 96.30145036, 96.18398892, 96.06662608, 95.94936183, 95.83219617, 95.71512909, 95.59816058, 95.48129062, 95.36451922, 95.24784636, 95.13127204, 95.01479625, 94.89841897, 94.7821402, 94.66595993, 94.54987815, 94.43389485, 94.31801002, 94.20222366, 94.08653574, 93.97094626, 93.85545522, 93.7400626, 93.62476838, 93.50957257, 93.39447514, 93.27947609, 93.16457541, 93.04977309, 92.9350691, 92.82046345, 92.70595613, 92.59154711, 92.47723639, 92.36302395, 92.24890979, 92.13489389, 92.02097624, 91.90715682, 91.79343563, 91.67981264, 91.56628786, 91.45286126, 91.33953283, 91.22630256, 91.11317044, 91.00013644, 90.88720056, 90.77436279, 90.6616231, 90.54898149, 90.43643794, 90.32399244, 90.21164497, 90.09939551, 89.98724406, 89.87519059, 89.7632351, 89.65137756, 89.53961797, 89.4279563, 89.31639254, 89.20492667, 89.09355869, 88.98228857, 88.87111629, 88.76004184, 88.64906521, 88.53818638, 88.42740532, 88.31672203, 88.20613649, 88.09564868, 87.98525858, 87.87496617, 87.76477144, 87.65467438, 87.54467495, 87.43477316, 87.32496896, 87.21526236, 87.10565333, 86.99614185, 86.8867279, 86.77741147, 86.66819254, 86.55907108, 86.45004709, 86.34112053, 86.23229139, 86.12355966, 86.01492531, 85.90638832, 85.79794867, 85.68960634, 85.58136132, 85.47321358, 85.3651631, 85.25720987, 85.14935385, 85.04159504, 84.93393341, 84.82636894, 84.71890161, 84.61153139, 84.50425827, 84.39708223, 84.29000324, 84.18302128, 84.07613634, 83.96934838, 83.86265739, 83.75606335, 83.64956623, 83.54316601, 83.43686266, 83.33065618, 83.22454652, 83.11853368, 83.01261763, 82.90679834, 82.80107579, 82.69544996, 82.58992082, 82.48448836, 82.37915255, 82.27391336, 82.16877077, 82.06372476, 81.9587753, 81.85392237, 81.74916595, 81.644506, 81.53994251, 81.43547545, 81.3311048, 81.22683053, 81.12265262, 81.01857104, 80.91458577, 80.81069677, 80.70690404, 80.60320753, 80.49960723, 80.39610311, 80.29269514, 80.1893833, 80.08616756, 79.98304789, 79.88002428, 79.77709668, 79.67426509, 79.57152946, 79.46888978, 79.36634601, 79.26389813, 79.16154611, 79.05928993, 78.95712955, 78.85506496, 78.75309612, 78.651223, 78.54944558, 78.44776383, 78.34617773, 78.24468723, 78.14329232, 78.04199297, 77.94078915, 77.83968083, 77.73866798, 77.63775058, 77.53692859, 77.43620198, 77.33557074, 77.23503482, 77.13459419, 77.03424884, 76.93399873, 76.83384383, 76.73378411, 76.63381954, 76.53395009, 76.43417573, 76.33449644, 76.23491217, 76.13542291, 76.03602861, 75.93672926, 75.83752482, 75.73841525, 75.63940054, 75.54048064, 75.44165553, 75.34292517, 75.24428954, 75.1457486, 75.04730233, 74.94895068, 74.85069363, 74.75253115, 74.65446321, 74.55648977, 74.4586108, 74.36082627, 74.26313615, 74.1655404, 74.068039, 73.9706319, 73.87331909, 73.77610052, 73.67897616, 73.58194598, 73.48500995, 73.38816803, 73.29142019, 73.19476641, 73.09820663, 73.00174084, 72.90536899, 72.80909106, 72.712907, 72.6168168, 72.5208204, 72.42491779, 72.32910891, 72.23339375, 72.13777227, 72.04224442, 71.94681019, 71.85146952, 71.7562224, 71.66106877, 71.56600862, 71.4710419] }, { "type": "list", "attributes": {}, "value": [ { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [4000, 12] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["x", "rev.x", "y.c1", "rev.y.c1", "y.c2", "rev.y.c2", "y.c3", "rev.y.c3", "cont.c1", "cont.c2", "cont.c3", "cont.sum"] } ] } }, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4000, 3999, 3998, 3997, 3996, 3995, 3994, 3993, 3992, 3991, 3990, 3989, 3988, 3987, 3986, 3985, 3984, 3983, 3982, 3981, 3980, 3979, 3978, 3977, 3976, 3975, 3974, 3973, 3972, 3971, 3970, 3969, 3968, 3967, 3966, 3965, 3964, 3963, 3962, 3961, 3960, 3959, 3958, 3957, 3956, 3955, 3954, 3953, 3952, 3951, 3950, 3949, 3948, 3947, 3946, 3945, 3944, 3943, 3942, 3941, 3940, 3939, 3938, 3937, 3936, 3935, 3934, 3933, 3932, 3931, 3930, 3929, 3928, 3927, 3926, 3925, 3924, 3923, 3922, 3921, 3920, 3919, 3918, 3917, 3916, 3915, 3914, 3913, 3912, 3911, 3910, 3909, 3908, 3907, 3906, 3905, 3904, 3903, 3902, 3901, 3900, 3899, 3898, 3897, 3896, 3895, 3894, 3893, 3892, 3891, 3890, 3889, 3888, 3887, 3886, 3885, 3884, 3883, 3882, 3881, 3880, 3879, 3878, 3877, 3876, 3875, 3874, 3873, 3872, 3871, 3870, 3869, 3868, 3867, 3866, 3865, 3864, 3863, 3862, 3861, 3860, 3859, 3858, 3857, 3856, 3855, 3854, 3853, 3852, 3851, 3850, 3849, 3848, 3847, 3846, 3845, 3844, 3843, 3842, 3841, 3840, 3839, 3838, 3837, 3836, 3835, 3834, 3833, 3832, 3831, 3830, 3829, 3828, 3827, 3826, 3825, 3824, 3823, 3822, 3821, 3820, 3819, 3818, 3817, 3816, 3815, 3814, 3813, 3812, 3811, 3810, 3809, 3808, 3807, 3806, 3805, 3804, 3803, 3802, 3801, 3800, 3799, 3798, 3797, 3796, 3795, 3794, 3793, 3792, 3791, 3790, 3789, 3788, 3787, 3786, 3785, 3784, 3783, 3782, 3781, 3780, 3779, 3778, 3777, 3776, 3775, 3774, 3773, 3772, 3771, 3770, 3769, 3768, 3767, 3766, 3765, 3764, 3763, 3762, 3761, 3760, 3759, 3758, 3757, 3756, 3755, 3754, 3753, 3752, 3751, 3750, 3749, 3748, 3747, 3746, 3745, 3744, 3743, 3742, 3741, 3740, 3739, 3738, 3737, 3736, 3735, 3734, 3733, 3732, 3731, 3730, 3729, 3728, 3727, 3726, 3725, 3724, 3723, 3722, 3721, 3720, 3719, 3718, 3717, 3716, 3715, 3714, 3713, 3712, 3711, 3710, 3709, 3708, 3707, 3706, 3705, 3704, 3703, 3702, 3701, 3700, 3699, 3698, 3697, 3696, 3695, 3694, 3693, 3692, 3691, 3690, 3689, 3688, 3687, 3686, 3685, 3684, 3683, 3682, 3681, 3680, 3679, 3678, 3677, 3676, 3675, 3674, 3673, 3672, 3671, 3670, 3669, 3668, 3667, 3666, 3665, 3664, 3663, 3662, 3661, 3660, 3659, 3658, 3657, 3656, 3655, 3654, 3653, 3652, 3651, 3650, 3649, 3648, 3647, 3646, 3645, 3644, 3643, 3642, 3641, 3640, 3639, 3638, 3637, 3636, 3635, 3634, 3633, 3632, 3631, 3630, 3629, 3628, 3627, 3626, 3625, 3624, 3623, 3622, 3621, 3620, 3619, 3618, 3617, 3616, 3615, 3614, 3613, 3612, 3611, 3610, 3609, 3608, 3607, 3606, 3605, 3604, 3603, 3602, 3601, 3600, 3599, 3598, 3597, 3596, 3595, 3594, 3593, 3592, 3591, 3590, 3589, 3588, 3587, 3586, 3585, 3584, 3583, 3582, 3581, 3580, 3579, 3578, 3577, 3576, 3575, 3574, 3573, 3572, 3571, 3570, 3569, 3568, 3567, 3566, 3565, 3564, 3563, 3562, 3561, 3560, 3559, 3558, 3557, 3556, 3555, 3554, 3553, 3552, 3551, 3550, 3549, 3548, 3547, 3546, 3545, 3544, 3543, 3542, 3541, 3540, 3539, 3538, 3537, 3536, 3535, 3534, 3533, 3532, 3531, 3530, 3529, 3528, 3527, 3526, 3525, 3524, 3523, 3522, 3521, 3520, 3519, 3518, 3517, 3516, 3515, 3514, 3513, 3512, 3511, 3510, 3509, 3508, 3507, 3506, 3505, 3504, 3503, 3502, 3501, 3500, 3499, 3498, 3497, 3496, 3495, 3494, 3493, 3492, 3491, 3490, 3489, 3488, 3487, 3486, 3485, 3484, 3483, 3482, 3481, 3480, 3479, 3478, 3477, 3476, 3475, 3474, 3473, 3472, 3471, 3470, 3469, 3468, 3467, 3466, 3465, 3464, 3463, 3462, 3461, 3460, 3459, 3458, 3457, 3456, 3455, 3454, 3453, 3452, 3451, 3450, 3449, 3448, 3447, 3446, 3445, 3444, 3443, 3442, 3441, 3440, 3439, 3438, 3437, 3436, 3435, 3434, 3433, 3432, 3431, 3430, 3429, 3428, 3427, 3426, 3425, 3424, 3423, 3422, 3421, 3420, 3419, 3418, 3417, 3416, 3415, 3414, 3413, 3412, 3411, 3410, 3409, 3408, 3407, 3406, 3405, 3404, 3403, 3402, 3401, 3400, 3399, 3398, 3397, 3396, 3395, 3394, 3393, 3392, 3391, 3390, 3389, 3388, 3387, 3386, 3385, 3384, 3383, 3382, 3381, 3380, 3379, 3378, 3377, 3376, 3375, 3374, 3373, 3372, 3371, 3370, 3369, 3368, 3367, 3366, 3365, 3364, 3363, 3362, 3361, 3360, 3359, 3358, 3357, 3356, 3355, 3354, 3353, 3352, 3351, 3350, 3349, 3348, 3347, 3346, 3345, 3344, 3343, 3342, 3341, 3340, 3339, 3338, 3337, 3336, 3335, 3334, 3333, 3332, 3331, 3330, 3329, 3328, 3327, 3326, 3325, 3324, 3323, 3322, 3321, 3320, 3319, 3318, 3317, 3316, 3315, 3314, 3313, 3312, 3311, 3310, 3309, 3308, 3307, 3306, 3305, 3304, 3303, 3302, 3301, 3300, 3299, 3298, 3297, 3296, 3295, 3294, 3293, 3292, 3291, 3290, 3289, 3288, 3287, 3286, 3285, 3284, 3283, 3282, 3281, 3280, 3279, 3278, 3277, 3276, 3275, 3274, 3273, 3272, 3271, 3270, 3269, 3268, 3267, 3266, 3265, 3264, 3263, 3262, 3261, 3260, 3259, 3258, 3257, 3256, 3255, 3254, 3253, 3252, 3251, 3250, 3249, 3248, 3247, 3246, 3245, 3244, 3243, 3242, 3241, 3240, 3239, 3238, 3237, 3236, 3235, 3234, 3233, 3232, 3231, 3230, 3229, 3228, 3227, 3226, 3225, 3224, 3223, 3222, 3221, 3220, 3219, 3218, 3217, 3216, 3215, 3214, 3213, 3212, 3211, 3210, 3209, 3208, 3207, 3206, 3205, 3204, 3203, 3202, 3201, 3200, 3199, 3198, 3197, 3196, 3195, 3194, 3193, 3192, 3191, 3190, 3189, 3188, 3187, 3186, 3185, 3184, 3183, 3182, 3181, 3180, 3179, 3178, 3177, 3176, 3175, 3174, 3173, 3172, 3171, 3170, 3169, 3168, 3167, 3166, 3165, 3164, 3163, 3162, 3161, 3160, 3159, 3158, 3157, 3156, 3155, 3154, 3153, 3152, 3151, 3150, 3149, 3148, 3147, 3146, 3145, 3144, 3143, 3142, 3141, 3140, 3139, 3138, 3137, 3136, 3135, 3134, 3133, 3132, 3131, 3130, 3129, 3128, 3127, 3126, 3125, 3124, 3123, 3122, 3121, 3120, 3119, 3118, 3117, 3116, 3115, 3114, 3113, 3112, 3111, 3110, 3109, 3108, 3107, 3106, 3105, 3104, 3103, 3102, 3101, 3100, 3099, 3098, 3097, 3096, 3095, 3094, 3093, 3092, 3091, 3090, 3089, 3088, 3087, 3086, 3085, 3084, 3083, 3082, 3081, 3080, 3079, 3078, 3077, 3076, 3075, 3074, 3073, 3072, 3071, 3070, 3069, 3068, 3067, 3066, 3065, 3064, 3063, 3062, 3061, 3060, 3059, 3058, 3057, 3056, 3055, 3054, 3053, 3052, 3051, 3050, 3049, 3048, 3047, 3046, 3045, 3044, 3043, 3042, 3041, 3040, 3039, 3038, 3037, 3036, 3035, 3034, 3033, 3032, 3031, 3030, 3029, 3028, 3027, 3026, 3025, 3024, 3023, 3022, 3021, 3020, 3019, 3018, 3017, 3016, 3015, 3014, 3013, 3012, 3011, 3010, 3009, 3008, 3007, 3006, 3005, 3004, 3003, 3002, 3001, 3000, 2999, 2998, 2997, 2996, 2995, 2994, 2993, 2992, 2991, 2990, 2989, 2988, 2987, 2986, 2985, 2984, 2983, 2982, 2981, 2980, 2979, 2978, 2977, 2976, 2975, 2974, 2973, 2972, 2971, 2970, 2969, 2968, 2967, 2966, 2965, 2964, 2963, 2962, 2961, 2960, 2959, 2958, 2957, 2956, 2955, 2954, 2953, 2952, 2951, 2950, 2949, 2948, 2947, 2946, 2945, 2944, 2943, 2942, 2941, 2940, 2939, 2938, 2937, 2936, 2935, 2934, 2933, 2932, 2931, 2930, 2929, 2928, 2927, 2926, 2925, 2924, 2923, 2922, 2921, 2920, 2919, 2918, 2917, 2916, 2915, 2914, 2913, 2912, 2911, 2910, 2909, 2908, 2907, 2906, 2905, 2904, 2903, 2902, 2901, 2900, 2899, 2898, 2897, 2896, 2895, 2894, 2893, 2892, 2891, 2890, 2889, 2888, 2887, 2886, 2885, 2884, 2883, 2882, 2881, 2880, 2879, 2878, 2877, 2876, 2875, 2874, 2873, 2872, 2871, 2870, 2869, 2868, 2867, 2866, 2865, 2864, 2863, 2862, 2861, 2860, 2859, 2858, 2857, 2856, 2855, 2854, 2853, 2852, 2851, 2850, 2849, 2848, 2847, 2846, 2845, 2844, 2843, 2842, 2841, 2840, 2839, 2838, 2837, 2836, 2835, 2834, 2833, 2832, 2831, 2830, 2829, 2828, 2827, 2826, 2825, 2824, 2823, 2822, 2821, 2820, 2819, 2818, 2817, 2816, 2815, 2814, 2813, 2812, 2811, 2810, 2809, 2808, 2807, 2806, 2805, 2804, 2803, 2802, 2801, 2800, 2799, 2798, 2797, 2796, 2795, 2794, 2793, 2792, 2791, 2790, 2789, 2788, 2787, 2786, 2785, 2784, 2783, 2782, 2781, 2780, 2779, 2778, 2777, 2776, 2775, 2774, 2773, 2772, 2771, 2770, 2769, 2768, 2767, 2766, 2765, 2764, 2763, 2762, 2761, 2760, 2759, 2758, 2757, 2756, 2755, 2754, 2753, 2752, 2751, 2750, 2749, 2748, 2747, 2746, 2745, 2744, 2743, 2742, 2741, 2740, 2739, 2738, 2737, 2736, 2735, 2734, 2733, 2732, 2731, 2730, 2729, 2728, 2727, 2726, 2725, 2724, 2723, 2722, 2721, 2720, 2719, 2718, 2717, 2716, 2715, 2714, 2713, 2712, 2711, 2710, 2709, 2708, 2707, 2706, 2705, 2704, 2703, 2702, 2701, 2700, 2699, 2698, 2697, 2696, 2695, 2694, 2693, 2692, 2691, 2690, 2689, 2688, 2687, 2686, 2685, 2684, 2683, 2682, 2681, 2680, 2679, 2678, 2677, 2676, 2675, 2674, 2673, 2672, 2671, 2670, 2669, 2668, 2667, 2666, 2665, 2664, 2663, 2662, 2661, 2660, 2659, 2658, 2657, 2656, 2655, 2654, 2653, 2652, 2651, 2650, 2649, 2648, 2647, 2646, 2645, 2644, 2643, 2642, 2641, 2640, 2639, 2638, 2637, 2636, 2635, 2634, 2633, 2632, 2631, 2630, 2629, 2628, 2627, 2626, 2625, 2624, 2623, 2622, 2621, 2620, 2619, 2618, 2617, 2616, 2615, 2614, 2613, 2612, 2611, 2610, 2609, 2608, 2607, 2606, 2605, 2604, 2603, 2602, 2601, 2600, 2599, 2598, 2597, 2596, 2595, 2594, 2593, 2592, 2591, 2590, 2589, 2588, 2587, 2586, 2585, 2584, 2583, 2582, 2581, 2580, 2579, 2578, 2577, 2576, 2575, 2574, 2573, 2572, 2571, 2570, 2569, 2568, 2567, 2566, 2565, 2564, 2563, 2562, 2561, 2560, 2559, 2558, 2557, 2556, 2555, 2554, 2553, 2552, 2551, 2550, 2549, 2548, 2547, 2546, 2545, 2544, 2543, 2542, 2541, 2540, 2539, 2538, 2537, 2536, 2535, 2534, 2533, 2532, 2531, 2530, 2529, 2528, 2527, 2526, 2525, 2524, 2523, 2522, 2521, 2520, 2519, 2518, 2517, 2516, 2515, 2514, 2513, 2512, 2511, 2510, 2509, 2508, 2507, 2506, 2505, 2504, 2503, 2502, 2501, 2500, 2499, 2498, 2497, 2496, 2495, 2494, 2493, 2492, 2491, 2490, 2489, 2488, 2487, 2486, 2485, 2484, 2483, 2482, 2481, 2480, 2479, 2478, 2477, 2476, 2475, 2474, 2473, 2472, 2471, 2470, 2469, 2468, 2467, 2466, 2465, 2464, 2463, 2462, 2461, 2460, 2459, 2458, 2457, 2456, 2455, 2454, 2453, 2452, 2451, 2450, 2449, 2448, 2447, 2446, 2445, 2444, 2443, 2442, 2441, 2440, 2439, 2438, 2437, 2436, 2435, 2434, 2433, 2432, 2431, 2430, 2429, 2428, 2427, 2426, 2425, 2424, 2423, 2422, 2421, 2420, 2419, 2418, 2417, 2416, 2415, 2414, 2413, 2412, 2411, 2410, 2409, 2408, 2407, 2406, 2405, 2404, 2403, 2402, 2401, 2400, 2399, 2398, 2397, 2396, 2395, 2394, 2393, 2392, 2391, 2390, 2389, 2388, 2387, 2386, 2385, 2384, 2383, 2382, 2381, 2380, 2379, 2378, 2377, 2376, 2375, 2374, 2373, 2372, 2371, 2370, 2369, 2368, 2367, 2366, 2365, 2364, 2363, 2362, 2361, 2360, 2359, 2358, 2357, 2356, 2355, 2354, 2353, 2352, 2351, 2350, 2349, 2348, 2347, 2346, 2345, 2344, 2343, 2342, 2341, 2340, 2339, 2338, 2337, 2336, 2335, 2334, 2333, 2332, 2331, 2330, 2329, 2328, 2327, 2326, 2325, 2324, 2323, 2322, 2321, 2320, 2319, 2318, 2317, 2316, 2315, 2314, 2313, 2312, 2311, 2310, 2309, 2308, 2307, 2306, 2305, 2304, 2303, 2302, 2301, 2300, 2299, 2298, 2297, 2296, 2295, 2294, 2293, 2292, 2291, 2290, 2289, 2288, 2287, 2286, 2285, 2284, 2283, 2282, 2281, 2280, 2279, 2278, 2277, 2276, 2275, 2274, 2273, 2272, 2271, 2270, 2269, 2268, 2267, 2266, 2265, 2264, 2263, 2262, 2261, 2260, 2259, 2258, 2257, 2256, 2255, 2254, 2253, 2252, 2251, 2250, 2249, 2248, 2247, 2246, 2245, 2244, 2243, 2242, 2241, 2240, 2239, 2238, 2237, 2236, 2235, 2234, 2233, 2232, 2231, 2230, 2229, 2228, 2227, 2226, 2225, 2224, 2223, 2222, 2221, 2220, 2219, 2218, 2217, 2216, 2215, 2214, 2213, 2212, 2211, 2210, 2209, 2208, 2207, 2206, 2205, 2204, 2203, 2202, 2201, 2200, 2199, 2198, 2197, 2196, 2195, 2194, 2193, 2192, 2191, 2190, 2189, 2188, 2187, 2186, 2185, 2184, 2183, 2182, 2181, 2180, 2179, 2178, 2177, 2176, 2175, 2174, 2173, 2172, 2171, 2170, 2169, 2168, 2167, 2166, 2165, 2164, 2163, 2162, 2161, 2160, 2159, 2158, 2157, 2156, 2155, 2154, 2153, 2152, 2151, 2150, 2149, 2148, 2147, 2146, 2145, 2144, 2143, 2142, 2141, 2140, 2139, 2138, 2137, 2136, 2135, 2134, 2133, 2132, 2131, 2130, 2129, 2128, 2127, 2126, 2125, 2124, 2123, 2122, 2121, 2120, 2119, 2118, 2117, 2116, 2115, 2114, 2113, 2112, 2111, 2110, 2109, 2108, 2107, 2106, 2105, 2104, 2103, 2102, 2101, 2100, 2099, 2098, 2097, 2096, 2095, 2094, 2093, 2092, 2091, 2090, 2089, 2088, 2087, 2086, 2085, 2084, 2083, 2082, 2081, 2080, 2079, 2078, 2077, 2076, 2075, 2074, 2073, 2072, 2071, 2070, 2069, 2068, 2067, 2066, 2065, 2064, 2063, 2062, 2061, 2060, 2059, 2058, 2057, 2056, 2055, 2054, 2053, 2052, 2051, 2050, 2049, 2048, 2047, 2046, 2045, 2044, 2043, 2042, 2041, 2040, 2039, 2038, 2037, 2036, 2035, 2034, 2033, 2032, 2031, 2030, 2029, 2028, 2027, 2026, 2025, 2024, 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990, 1989, 1988, 1987, 1986, 1985, 1984, 1983, 1982, 1981, 1980, 1979, 1978, 1977, 1976, 1975, 1974, 1973, 1972, 1971, 1970, 1969, 1968, 1967, 1966, 1965, 1964, 1963, 1962, 1961, 1960, 1959, 1958, 1957, 1956, 1955, 1954, 1953, 1952, 1951, 1950, 1949, 1948, 1947, 1946, 1945, 1944, 1943, 1942, 1941, 1940, 1939, 1938, 1937, 1936, 1935, 1934, 1933, 1932, 1931, 1930, 1929, 1928, 1927, 1926, 1925, 1924, 1923, 1922, 1921, 1920, 1919, 1918, 1917, 1916, 1915, 1914, 1913, 1912, 1911, 1910, 1909, 1908, 1907, 1906, 1905, 1904, 1903, 1902, 1901, 1900, 1899, 1898, 1897, 1896, 1895, 1894, 1893, 1892, 1891, 1890, 1889, 1888, 1887, 1886, 1885, 1884, 1883, 1882, 1881, 1880, 1879, 1878, 1877, 1876, 1875, 1874, 1873, 1872, 1871, 1870, 1869, 1868, 1867, 1866, 1865, 1864, 1863, 1862, 1861, 1860, 1859, 1858, 1857, 1856, 1855, 1854, 1853, 1852, 1851, 1850, 1849, 1848, 1847, 1846, 1845, 1844, 1843, 1842, 1841, 1840, 1839, 1838, 1837, 1836, 1835, 1834, 1833, 1832, 1831, 1830, 1829, 1828, 1827, 1826, 1825, 1824, 1823, 1822, 1821, 1820, 1819, 1818, 1817, 1816, 1815, 1814, 1813, 1812, 1811, 1810, 1809, 1808, 1807, 1806, 1805, 1804, 1803, 1802, 1801, 1800, 1799, 1798, 1797, 1796, 1795, 1794, 1793, 1792, 1791, 1790, 1789, 1788, 1787, 1786, 1785, 1784, 1783, 1782, 1781, 1780, 1779, 1778, 1777, 1776, 1775, 1774, 1773, 1772, 1771, 1770, 1769, 1768, 1767, 1766, 1765, 1764, 1763, 1762, 1761, 1760, 1759, 1758, 1757, 1756, 1755, 1754, 1753, 1752, 1751, 1750, 1749, 1748, 1747, 1746, 1745, 1744, 1743, 1742, 1741, 1740, 1739, 1738, 1737, 1736, 1735, 1734, 1733, 1732, 1731, 1730, 1729, 1728, 1727, 1726, 1725, 1724, 1723, 1722, 1721, 1720, 1719, 1718, 1717, 1716, 1715, 1714, 1713, 1712, 1711, 1710, 1709, 1708, 1707, 1706, 1705, 1704, 1703, 1702, 1701, 1700, 1699, 1698, 1697, 1696, 1695, 1694, 1693, 1692, 1691, 1690, 1689, 1688, 1687, 1686, 1685, 1684, 1683, 1682, 1681, 1680, 1679, 1678, 1677, 1676, 1675, 1674, 1673, 1672, 1671, 1670, 1669, 1668, 1667, 1666, 1665, 1664, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653, 1652, 1651, 1650, 1649, 1648, 1647, 1646, 1645, 1644, 1643, 1642, 1641, 1640, 1639, 1638, 1637, 1636, 1635, 1634, 1633, 1632, 1631, 1630, 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1619, 1618, 1617, 1616, 1615, 1614, 1613, 1612, 1611, 1610, 1609, 1608, 1607, 1606, 1605, 1604, 1603, 1602, 1601, 1600, 1599, 1598, 1597, 1596, 1595, 1594, 1593, 1592, 1591, 1590, 1589, 1588, 1587, 1586, 1585, 1584, 1583, 1582, 1581, 1580, 1579, 1578, 1577, 1576, 1575, 1574, 1573, 1572, 1571, 1570, 1569, 1568, 1567, 1566, 1565, 1564, 1563, 1562, 1561, 1560, 1559, 1558, 1557, 1556, 1555, 1554, 1553, 1552, 1551, 1550, 1549, 1548, 1547, 1546, 1545, 1544, 1543, 1542, 1541, 1540, 1539, 1538, 1537, 1536, 1535, 1534, 1533, 1532, 1531, 1530, 1529, 1528, 1527, 1526, 1525, 1524, 1523, 1522, 1521, 1520, 1519, 1518, 1517, 1516, 1515, 1514, 1513, 1512, 1511, 1510, 1509, 1508, 1507, 1506, 1505, 1504, 1503, 1502, 1501, 1500, 1499, 1498, 1497, 1496, 1495, 1494, 1493, 1492, 1491, 1490, 1489, 1488, 1487, 1486, 1485, 1484, 1483, 1482, 1481, 1480, 1479, 1478, 1477, 1476, 1475, 1474, 1473, 1472, 1471, 1470, 1469, 1468, 1467, 1466, 1465, 1464, 1463, 1462, 1461, 1460, 1459, 1458, 1457, 1456, 1455, 1454, 1453, 1452, 1451, 1450, 1449, 1448, 1447, 1446, 1445, 1444, 1443, 1442, 1441, 1440, 1439, 1438, 1437, 1436, 1435, 1434, 1433, 1432, 1431, 1430, 1429, 1428, 1427, 1426, 1425, 1424, 1423, 1422, 1421, 1420, 1419, 1418, 1417, 1416, 1415, 1414, 1413, 1412, 1411, 1410, 1409, 1408, 1407, 1406, 1405, 1404, 1403, 1402, 1401, 1400, 1399, 1398, 1397, 1396, 1395, 1394, 1393, 1392, 1391, 1390, 1389, 1388, 1387, 1386, 1385, 1384, 1383, 1382, 1381, 1380, 1379, 1378, 1377, 1376, 1375, 1374, 1373, 1372, 1371, 1370, 1369, 1368, 1367, 1366, 1365, 1364, 1363, 1362, 1361, 1360, 1359, 1358, 1357, 1356, 1355, 1354, 1353, 1352, 1351, 1350, 1349, 1348, 1347, 1346, 1345, 1344, 1343, 1342, 1341, 1340, 1339, 1338, 1337, 1336, 1335, 1334, 1333, 1332, 1331, 1330, 1329, 1328, 1327, 1326, 1325, 1324, 1323, 1322, 1321, 1320, 1319, 1318, 1317, 1316, 1315, 1314, 1313, 1312, 1311, 1310, 1309, 1308, 1307, 1306, 1305, 1304, 1303, 1302, 1301, 1300, 1299, 1298, 1297, 1296, 1295, 1294, 1293, 1292, 1291, 1290, 1289, 1288, 1287, 1286, 1285, 1284, 1283, 1282, 1281, 1280, 1279, 1278, 1277, 1276, 1275, 1274, 1273, 1272, 1271, 1270, 1269, 1268, 1267, 1266, 1265, 1264, 1263, 1262, 1261, 1260, 1259, 1258, 1257, 1256, 1255, 1254, 1253, 1252, 1251, 1250, 1249, 1248, 1247, 1246, 1245, 1244, 1243, 1242, 1241, 1240, 1239, 1238, 1237, 1236, 1235, 1234, 1233, 1232, 1231, 1230, 1229, 1228, 1227, 1226, 1225, 1224, 1223, 1222, 1221, 1220, 1219, 1218, 1217, 1216, 1215, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1207, 1206, 1205, 1204, 1203, 1202, 1201, 1200, 1199, 1198, 1197, 1196, 1195, 1194, 1193, 1192, 1191, 1190, 1189, 1188, 1187, 1186, 1185, 1184, 1183, 1182, 1181, 1180, 1179, 1178, 1177, 1176, 1175, 1174, 1173, 1172, 1171, 1170, 1169, 1168, 1167, 1166, 1165, 1164, 1163, 1162, 1161, 1160, 1159, 1158, 1157, 1156, 1155, 1154, 1153, 1152, 1151, 1150, 1149, 1148, 1147, 1146, 1145, 1144, 1143, 1142, 1141, 1140, 1139, 1138, 1137, 1136, 1135, 1134, 1133, 1132, 1131, 1130, 1129, 1128, 1127, 1126, 1125, 1124, 1123, 1122, 1121, 1120, 1119, 1118, 1117, 1116, 1115, 1114, 1113, 1112, 1111, 1110, 1109, 1108, 1107, 1106, 1105, 1104, 1103, 1102, 1101, 1100, 1099, 1098, 1097, 1096, 1095, 1094, 1093, 1092, 1091, 1090, 1089, 1088, 1087, 1086, 1085, 1084, 1083, 1082, 1081, 1080, 1079, 1078, 1077, 1076, 1075, 1074, 1073, 1072, 1071, 1070, 1069, 1068, 1067, 1066, 1065, 1064, 1063, 1062, 1061, 1060, 1059, 1058, 1057, 1056, 1055, 1054, 1053, 1052, 1051, 1050, 1049, 1048, 1047, 1046, 1045, 1044, 1043, 1042, 1041, 1040, 1039, 1038, 1037, 1036, 1035, 1034, 1033, 1032, 1031, 1030, 1029, 1028, 1027, 1026, 1025, 1024, 1023, 1022, 1021, 1020, 1019, 1018, 1017, 1016, 1015, 1014, 1013, 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1005, 1004, 1003, 1002, 1001, 1000, 999, 998, 997, 996, 995, 994, 993, 992, 991, 990, 989, 988, 987, 986, 985, 984, 983, 982, 981, 980, 979, 978, 977, 976, 975, 974, 973, 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960, 959, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945, 944, 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928, 927, 926, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911, 910, 909, 908, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894, 893, 892, 891, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 879, 878, 877, 876, 875, 874, 873, 872, 871, 870, 869, 868, 867, 866, 865, 864, 863, 862, 861, 860, 859, 858, 857, 856, 855, 854, 853, 852, 851, 850, 849, 848, 847, 846, 845, 844, 843, 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, 824, 823, 822, 821, 820, 819, 818, 817, 816, 815, 814, 813, 812, 811, 810, 809, 808, 807, 806, 805, 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999998, 99.99999998, 99.99999998, 99.99999997, 99.99999997, 99.99999997, 99.99999996, 99.99999996, 99.99999995, 99.99999994, 99.99999993, 99.99999992, 99.99999991, 99.9999999, 99.99999988, 99.99999987, 99.99999985, 99.99999983, 99.9999998, 99.99999977, 99.99999974, 99.9999997, 99.99999966, 99.99999961, 99.99999956, 99.99999949, 99.99999942, 99.99999934, 99.99999925, 99.99999914, 99.99999903, 99.99999889, 99.99999874, 99.99999856, 99.99999837, 99.99999814, 99.99999789, 99.9999976, 99.99999728, 99.99999691, 99.9999965, 99.99999603, 99.9999955, 99.9999949, 99.99999423, 99.99999346, 99.9999926, 99.99999163, 99.99999054, 99.99998931, 99.99998792, 99.99998636, 99.9999846, 99.99998263, 99.9999804, 99.99997791, 99.9999751, 99.99997195, 99.99996842, 99.99996445, 99.99996, 99.99995502, 99.99994943, 99.99994317, 99.99993617, 99.99992832, 99.99991955, 99.99990975, 99.99989878, 99.99988654, 99.99987286, 99.9998576, 99.99984056, 99.99982156, 99.99980038, 99.99977678, 99.99975048, 99.9997212, 99.99968862, 99.99965237, 99.99961205, 99.99956724, 99.99951745, 99.99946215, 99.99940076, 99.99933263, 99.99925706, 99.99917327, 99.99908041, 99.99897754, 99.99886362, 99.99873752, 99.998598, 99.9984437, 99.99827313, 99.99808464, 99.99787644, 99.99764658, 99.9973929, 99.99711305, 99.99680447, 99.99646435, 99.99608962, 99.99567695, 99.99522268, 99.99472282, 99.99417305, 99.99356863, 99.99290441, 99.99217479, 99.99137366, 99.99049441, 99.98952982, 99.98847205, 99.98731261, 99.98604226, 99.984651, 99.98312796, 99.98146137, 99.9796385, 99.97764554, 99.97546755, 99.97308838, 99.97049058, 99.96765527, 99.96456206, 99.96118897, 99.95751226, 99.95350634, 99.94914363, 99.94439441, 99.9392267, 99.93360608, 99.92749551, 99.92085522, 99.91364245, 99.90581128, 99.89731247, 99.88809318, 99.87809676, 99.86726253, 99.85552554, 99.84281626, 99.82906033, 99.81417829, 99.79808526, 99.78069062, 99.76189771, 99.74160347, 99.71969809, 99.69606465, 99.67057875, 99.64310812, 99.61351221, 99.5816418, 99.54733855, 99.51043459, 99.47075211, 99.42810286, 99.38228775, 99.33309637, 99.28030658, 99.22368401, 99.16298165, 99.0979394, 99.02828366, 98.9537269, 98.87396727, 98.78868824, 98.69755827, 98.60023048, 98.4963424, 98.38551575, 98.26735625, 98.14145355, 98.00738118, 97.86469658, 97.71294121, 97.55164081, 97.38030567, 97.19843111, 97.00549802, 96.80097351, 96.58431181, 96.3549552, 96.11233518, 95.85587377, 95.58498501, 95.29907665, 94.99755201, 94.67981203, 94.3452576, 93.99329198, 93.6233235, 93.23476844, 92.82705412, 92.39962211, 91.95193176, 91.48346372, 90.99372373, 90.48224651, 89.94859967, 89.39238784, 88.81325667, 88.21089695, 87.58504869, 86.935505, 86.26211602, 85.56479255, 84.84350949, 84.09830907, 83.32930366, 82.53667831, 81.72069282, 80.88168337, 80.02006367, 79.13632551, 78.23103886, 77.30485126, 76.35848673, 75.39274394, 74.40849387, 73.4066768, 72.38829878, 71.35442747, 70.30618747, 69.24475522, 68.17135337, 67.08724486, 65.99372666, 64.89212319, 63.78377969, 62.67005538, 61.5523166, 60.43193006, 59.31025609, 58.18864217, 57.06841661, 55.95088261, 54.83731257, 53.72894293, 52.62696927, 51.53254205, 50.44676268, 49.37068023, 48.3052885, 47.25152377, 46.21026289, 45.18232197, 44.16845554, 43.16935608, 42.18565407, 41.21791842, 40.26665723, 39.33231892, 38.41529364, 37.51591496, 36.63446179, 35.77116049, 34.92618713, 34.0996699, 33.29169162, 32.5022923, 31.73147177, 30.97919231, 30.24538129, 29.52993376, 28.83271508, 28.15356341, 27.49229212, 26.84869226, 26.22253477, 25.61357271, 25.02154333, 24.44617009, 23.88716451, 23.34422799, 22.81705342, 22.30532675, 21.80872849, 21.326935, 20.85961976, 20.4064545, 19.96711029, 19.54125844, 19.12857143, 18.72872367, 18.34139224, 17.96625748, 17.60300361, 17.25131923, 16.91089773, 16.58143771, 16.26264332, 15.95422452, 15.65589735, 15.36738411, 15.08841357, 14.81872103, 14.55804849, 14.30614467, 14.0627651, 13.82767209, 13.6006348, 13.38142917, 13.1698379, 12.96565042, 12.76866283, 12.57867782, 12.39550458, 12.21895873, 12.04886224, 11.8850433, 11.72733622, 11.57558137, 11.42962498, 11.28931911, 11.15452151, 11.02509548, 10.90090979, 10.78183855, 10.66776111, 10.55856193, 10.45413047, 10.35436112, 10.25915303, 10.16841008, 10.08204073, 9.99995793, 9.92207905, 9.84832577, 9.778624, 9.71290378, 9.65109925, 9.59314852, 9.53899362, 9.48858044, 9.44185865, 9.39878167, 9.35930656, 9.32339405, 9.2910084, 9.26211742, 9.23669244, 9.2147082, 9.1961429, 9.18097813, 9.16919886, 9.16079342, 9.15575348, 9.15575348, 9.16079342, 9.16919886, 9.18097813, 9.1961429, 9.2147082, 9.23669244, 9.26211742, 9.2910084, 9.32339405, 9.35930656, 9.39878167, 9.44185865, 9.48858044, 9.53899362, 9.59314852, 9.65109925, 9.71290378, 9.778624, 9.84832577, 9.92207905, 9.99995793, 10.08204073, 10.16841008, 10.25915303, 10.35436112, 10.45413047, 10.55856193, 10.66776111, 10.78183855, 10.90090979, 11.02509548, 11.15452151, 11.28931911, 11.42962498, 11.57558137, 11.72733622, 11.8850433, 12.04886224, 12.21895873, 12.39550458, 12.57867782, 12.76866283, 12.96565042, 13.1698379, 13.38142917, 13.6006348, 13.82767209, 14.0627651, 14.30614467, 14.55804849, 14.81872103, 15.08841357, 15.36738411, 15.65589735, 15.95422452, 16.26264332, 16.58143771, 16.91089773, 17.25131923, 17.60300361, 17.96625748, 18.34139224, 18.72872367, 19.12857143, 19.54125844, 19.96711029, 20.4064545, 20.85961976, 21.326935, 21.80872849, 22.30532675, 22.81705342, 23.34422799, 23.88716451, 24.44617009, 25.02154333, 25.61357271, 26.22253477, 26.84869226, 27.49229212, 28.15356341, 28.83271508, 29.52993376, 30.24538129, 30.97919231, 31.73147177, 32.5022923, 33.29169162, 34.0996699, 34.92618713, 35.77116049, 36.63446179, 37.51591496, 38.41529364, 39.33231892, 40.26665723, 41.21791842, 42.18565407, 43.16935608, 44.16845554, 45.18232197, 46.21026289, 47.25152377, 48.3052885, 49.37068023, 50.44676268, 51.53254205, 52.62696927, 53.72894293, 54.83731257, 55.95088261, 57.06841661, 58.18864217, 59.31025609, 60.43193006, 61.5523166, 62.67005538, 63.78377969, 64.89212319, 65.99372666, 67.08724486, 68.17135337, 69.24475522, 70.30618747, 71.35442747, 72.38829878, 73.4066768, 74.40849387, 75.39274394, 76.35848673, 77.30485126, 78.23103886, 79.13632551, 80.02006367, 80.88168337, 81.72069282, 82.53667831, 83.32930366, 84.09830907, 84.84350949, 85.56479255, 86.26211602, 86.935505, 87.58504869, 88.21089695, 88.81325667, 89.39238784, 89.94859967, 90.48224651, 90.99372373, 91.48346372, 91.95193176, 92.39962211, 92.82705412, 93.23476844, 93.6233235, 93.99329198, 94.3452576, 94.67981203, 94.99755201, 95.29907665, 95.58498501, 95.85587377, 96.11233518, 96.3549552, 96.58431181, 96.80097351, 97.00549802, 97.19843111, 97.38030567, 97.55164081, 97.71294121, 97.86469658, 98.00738118, 98.14145355, 98.26735625, 98.38551575, 98.4963424, 98.60023048, 98.69755827, 98.78868824, 98.87396727, 98.9537269, 99.02828366, 99.0979394, 99.16298165, 99.22368401, 99.28030658, 99.33309637, 99.38228775, 99.42810286, 99.47075211, 99.51043459, 99.54733855, 99.5816418, 99.61351221, 99.64310812, 99.67057875, 99.69606465, 99.71969809, 99.74160347, 99.76189771, 99.78069062, 99.79808526, 99.81417829, 99.82906033, 99.84281626, 99.85552554, 99.86726253, 99.87809676, 99.88809318, 99.89731247, 99.90581128, 99.91364245, 99.92085522, 99.92749551, 99.93360608, 99.9392267, 99.94439441, 99.94914363, 99.95350634, 99.95751226, 99.96118897, 99.96456206, 99.96765527, 99.97049058, 99.97308838, 99.97546755, 99.97764554, 99.9796385, 99.98146137, 99.98312796, 99.984651, 99.98604226, 99.98731261, 99.98847205, 99.98952982, 99.99049441, 99.99137366, 99.99217479, 99.99290441, 99.99356863, 99.99417305, 99.99472282, 99.99522268, 99.99567695, 99.99608962, 99.99646435, 99.99680447, 99.99711305, 99.9973929, 99.99764658, 99.99787644, 99.99808464, 99.99827313, 99.9984437, 99.998598, 99.99873752, 99.99886362, 99.99897754, 99.99908041, 99.99917327, 99.99925706, 99.99933263, 99.99940076, 99.99946215, 99.99951745, 99.99956724, 99.99961205, 99.99965237, 99.99968862, 99.9997212, 99.99975048, 99.99977678, 99.99980038, 99.99982156, 99.99984056, 99.9998576, 99.99987286, 99.99988654, 99.99989878, 99.99990975, 99.99991955, 99.99992832, 99.99993617, 99.99994317, 99.99994943, 99.99995502, 99.99996, 99.99996445, 99.99996842, 99.99997195, 99.9999751, 99.99997791, 99.9999804, 99.99998263, 99.9999846, 99.99998636, 99.99998792, 99.99998931, 99.99999054, 99.99999163, 99.9999926, 99.99999346, 99.99999423, 99.9999949, 99.9999955, 99.99999603, 99.9999965, 99.99999691, 99.99999728, 99.9999976, 99.99999789, 99.99999814, 99.99999837, 99.99999856, 99.99999874, 99.99999889, 99.99999903, 99.99999914, 99.99999925, 99.99999934, 99.99999942, 99.99999949, 99.99999956, 99.99999961, 99.99999966, 99.9999997, 99.99999974, 99.99999977, 99.9999998, 99.99999983, 99.99999985, 99.99999987, 99.99999988, 99.9999999, 99.99999991, 99.99999992, 99.99999993, 99.99999994, 99.99999995, 99.99999996, 99.99999996, 99.99999997, 99.99999997, 99.99999997, 99.99999998, 99.99999998, 99.99999998, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999991, 99.99999991, 99.99999991, 99.99999991, 99.9999999, 99.9999999, 99.9999999, 99.9999999, 99.99999989, 99.99999989, 99.99999989, 99.99999989, 99.99999988, 99.99999988, 99.99999988, 99.99999987, 99.99999987, 99.99999987, 99.99999986, 99.99999986, 99.99999986, 99.99999985, 99.99999985, 99.99999984, 99.99999984, 99.99999984, 99.99999983, 99.99999983, 99.99999982, 99.99999982, 99.99999981, 99.99999981, 99.9999998, 99.9999998, 99.99999979, 99.99999979, 99.99999978, 99.99999978, 99.99999977, 99.99999976, 99.99999976, 99.99999975, 99.99999975, 99.99999974, 99.99999973, 99.99999973, 99.99999972, 99.99999971, 99.9999997, 99.9999997, 99.99999969, 99.99999968, 99.99999967, 99.99999966, 99.99999966, 99.99999965, 99.99999964, 99.99999963, 99.99999962, 99.99999961, 99.9999996, 99.99999959, 99.99999958, 99.99999957, 99.99999956, 99.99999955, 99.99999953, 99.99999952, 99.99999951, 99.9999995, 99.99999948, 99.99999947, 99.99999946, 99.99999944, 99.99999943, 99.99999942, 99.9999994, 99.99999939, 99.99999937, 99.99999936, 99.99999934, 99.99999932, 99.99999931, 99.99999929, 99.99999927, 99.99999925, 99.99999923, 99.99999921, 99.9999992, 99.99999918, 99.99999915, 99.99999913, 99.99999911, 99.99999909, 99.99999907, 99.99999904, 99.99999902, 99.999999, 99.99999897, 99.99999895, 99.99999892, 99.99999889, 99.99999887, 99.99999884, 99.99999881, 99.99999878, 99.99999875, 99.99999872, 99.99999869, 99.99999865, 99.99999862, 99.99999859, 99.99999855, 99.99999852, 99.99999848, 99.99999844, 99.99999841, 99.99999837, 99.99999833, 99.99999829, 99.99999825, 99.9999982, 99.99999816, 99.99999811, 99.99999807, 99.99999802, 99.99999797, 99.99999792, 99.99999787, 99.99999782, 99.99999777, 99.99999771, 99.99999766, 99.9999976, 99.99999755, 99.99999749, 99.99999743, 99.99999736, 99.9999973, 99.99999724, 99.99999717, 99.9999971, 99.99999703, 99.99999696, 99.99999689, 99.99999681, 99.99999674, 99.99999666, 99.99999658, 99.9999965, 99.99999641, 99.99999633, 99.99999624, 99.99999615, 99.99999606, 99.99999597, 99.99999587, 99.99999577, 99.99999567, 99.99999557, 99.99999546, 99.99999536, 99.99999525, 99.99999513, 99.99999502, 99.9999949, 99.99999478, 99.99999466, 99.99999453, 99.9999944, 99.99999427, 99.99999414, 99.999994, 99.99999386, 99.99999372, 99.99999357, 99.99999342, 99.99999326, 99.99999311, 99.99999295, 99.99999278, 99.99999261, 99.99999244, 99.99999227, 99.99999209, 99.9999919, 99.99999171, 99.99999152, 99.99999132, 99.99999112, 99.99999092, 99.99999071, 99.99999049, 99.99999027, 99.99999005, 99.99998982, 99.99998959, 99.99998935, 99.9999891, 99.99998885, 99.99998859, 99.99998833, 99.99998806, 99.99998779, 99.99998751, 99.99998723, 99.99998693, 99.99998663, 99.99998633, 99.99998602, 99.9999857, 99.99998537, 99.99998504, 99.9999847, 99.99998435, 99.999984, 99.99998363, 99.99998326, 99.99998288, 99.9999825, 99.9999821, 99.9999817, 99.99998128, 99.99998086, 99.99998043, 99.99997999, 99.99997954, 99.99997908, 99.99997861, 99.99997812, 99.99997763, 99.99997713, 99.99997662, 99.9999761, 99.99997556, 99.99997501, 99.99997446, 99.99997389, 99.9999733, 99.99997271, 99.9999721, 99.99997148, 99.99997085, 99.9999702, 99.99996954, 99.99996886, 99.99996817, 99.99996747, 99.99996675, 99.99996601, 99.99996526, 99.99996449, 99.99996371, 99.99996291, 99.99996209, 99.99996126, 99.99996041, 99.99995954, 99.99995865, 99.99995774, 99.99995682, 99.99995587, 99.99995491, 99.99995392, 99.99995291, 99.99995189, 99.99995084, 99.99994977, 99.99994867, 99.99994756, 99.99994642, 99.99994525, 99.99994406, 99.99994285, 99.99994161, 99.99994035, 99.99993906, 99.99993774, 99.9999364, 99.99993502, 99.99993362, 99.99993219, 99.99993073, 99.99992924, 99.99992772, 99.99992617, 99.99992459, 99.99992297, 99.99992132, 99.99991964, 99.99991792, 99.99991616, 99.99991437, 99.99991255, 99.99991068, 99.99990878, 99.99990684, 99.99990486, 99.99990284, 99.99990077, 99.99989867, 99.99989652, 99.99989433, 99.9998921, 99.99988981, 99.99988749, 99.99988511, 99.99988269, 99.99988022, 99.9998777, 99.99987512, 99.9998725, 99.99986982, 99.99986709, 99.99986431, 99.99986146, 99.99985856, 99.99985561, 99.99985259, 99.99984951, 99.99984638, 99.99984317, 99.99983991, 99.99983658, 99.99983318, 99.99982972, 99.99982618, 99.99982258, 99.9998189, 99.99981516, 99.99981133, 99.99980743, 99.99980346, 99.9997994, 99.99979527, 99.99979105, 99.99978676, 99.99978237, 99.9997779, 99.99977334, 99.9997687, 99.99976396, 99.99975913, 99.9997542, 99.99974918, 99.99974406, 99.99973884, 99.99973351, 99.99972809, 99.99972255, 99.99971691, 99.99971116, 99.9997053, 99.99969933, 99.99969324, 99.99968703, 99.9996807, 99.99967425, 99.99966767, 99.99966097, 99.99965414, 99.99964717, 99.99964008, 99.99963284, 99.99962547, 99.99961795, 99.9996103, 99.99960249, 99.99959454, 99.99958643, 99.99957817, 99.99956975, 99.99956117, 99.99955243, 99.99954352, 99.99953444, 99.99952519, 99.99951576, 99.99950616, 99.99949637, 99.9994864, 99.99947624, 99.99946589, 99.99945534, 99.9994446, 99.99943365, 99.99942249, 99.99941113, 99.99939955, 99.99938776, 99.99937575, 99.99936351, 99.99935104, 99.99933834, 99.9993254, 99.99931222, 99.9992988, 99.99928513, 99.9992712, 99.99925701, 99.99924256, 99.99922785, 99.99921286, 99.99919759, 99.99918204, 99.99916621, 99.99915008, 99.99913365, 99.99911693, 99.9990999, 99.99908255, 99.99906488, 99.9990469, 99.99902858, 99.99900993, 99.99899093, 99.99897159, 99.9989519, 99.99893185, 99.99891144, 99.99889065, 99.99886949, 99.99884794, 99.998826, 99.99880366, 99.99878092, 99.99875777, 99.99873421, 99.99871021, 99.99868579, 99.99866093, 99.99863561, 99.99860985, 99.99858362, 99.99855692, 99.99852975, 99.99850209, 99.99847393, 99.99844528, 99.99841611, 99.99838642, 99.9983562, 99.99832545, 99.99829415, 99.9982623, 99.99822988, 99.99819689, 99.99816332, 99.99812915, 99.99809438, 99.998059, 99.99802299, 99.99798635, 99.99794907, 99.99791114, 99.99787253, 99.99783326, 99.99779329, 99.99775263, 99.99771126, 99.99766916, 99.99762634, 99.99758277, 99.99753844, 99.99749334, 99.99744746, 99.99740078, 99.9973533, 99.99730499, 99.99725585, 99.99720587, 99.99715502, 99.9971033, 99.99705068, 99.99699717, 99.99694273, 99.99688737, 99.99683105, 99.99677377, 99.99671552, 99.99665626, 99.996596, 99.99653472, 99.99647239, 99.996409, 99.99634453, 99.99627897, 99.9962123, 99.99614451, 99.99607557, 99.99600546, 99.99593417, 99.99586168, 99.99578798, 99.99571303, 99.99563682, 99.99555934, 99.99548056, 99.99540046, 99.99531902, 99.99523623, 99.99515205, 99.99506647, 99.99497947, 99.99489102, 99.9948011, 99.99470969, 99.99461676, 99.9945223, 99.99442628, 99.99432867, 99.99422945, 99.9941286, 99.99402609, 99.99392189, 99.99381599, 99.99370834, 99.99359894, 99.99348774, 99.99337473, 99.99325987, 99.99314314, 99.99302451, 99.99290395, 99.99278143, 99.99265692, 99.99253039, 99.99240182, 99.99227116, 99.99213839, 99.99200349, 99.9918664, 99.99172711, 99.99158558, 99.99144178, 99.99129567, 99.99114722, 99.99099639, 99.99084315, 99.99068746, 99.99052929, 99.9903686, 99.99020535, 99.99003951, 99.98987104, 99.98969989, 99.98952604, 99.98934943, 99.98917003, 99.9889878, 99.9888027, 99.98861468, 99.98842371, 99.98822974, 99.98803272, 99.98783262, 99.98762939, 99.98742298, 99.98721334, 99.98700044, 99.98678422, 99.98656463, 99.98634164, 99.98611518, 99.98588521, 99.98565168, 99.98541454, 99.98517374, 99.98492922, 99.98468094, 99.98442883, 99.98417285, 99.98391294, 99.98364904, 99.98338111, 99.98310907, 99.98283288, 99.98255247, 99.98226779, 99.98197878, 99.98168538, 99.98138752, 99.98108514, 99.98077819, 99.98046659, 99.98015028, 99.9798292, 99.97950328, 99.97917246, 99.97883666, 99.97849582, 99.97814987, 99.97779874, 99.97744236, 99.97708065, 99.97671355, 99.97634098, 99.97596286, 99.97557912, 99.97518969, 99.97479448, 99.97439342, 99.97398643, 99.97357343, 99.97315434, 99.97272907, 99.97229755, 99.97185968, 99.97141539, 99.97096459, 99.9705072, 99.97004311, 99.96957225, 99.96909453, 99.96860984, 99.96811812, 99.96761924, 99.96711314, 99.9665997, 99.96607883, 99.96555044, 99.96501443, 99.96447069, 99.96391912, 99.96335963, 99.96279211, 99.96221645, 99.96163256, 99.96104031, 99.96043961, 99.95983035, 99.95921241, 99.95858568, 99.95795005, 99.95730541, 99.95665164, 99.95598862, 99.95531624, 99.95463437, 99.95394289, 99.95324169, 99.95253064, 99.95180961, 99.95107847, 99.95033711, 99.94958539, 99.94882318, 99.94805035, 99.94726676, 99.94647229, 99.94566679, 99.94485012, 99.94402216, 99.94318275, 99.94233176, 99.94146903, 99.94059444, 99.93970782, 99.93880904, 99.93789794, 99.93697436, 99.93603817, 99.9350892, 99.93412729, 99.9331523, 99.93216405, 99.93116239, 99.93014715, 99.92911818, 99.9280753, 99.92701835, 99.92594715, 99.92486154, 99.92376134, 99.92264638, 99.92151648, 99.92037147, 99.91921115, 99.91803536, 99.9168439, 99.9156366, 99.91441326, 99.91317369, 99.9119177, 99.9106451, 99.9093557, 99.90804929, 99.90672568, 99.90538467, 99.90402606, 99.90264963, 99.90125519, 99.89984251, 99.89841141, 99.89696165, 99.89549302, 99.89400532, 99.89249831, 99.89097178, 99.88942551, 99.88785926, 99.88627282, 99.88466595, 99.88303842, 99.88138999, 99.87972043, 99.87802951, 99.87631697, 99.87458259, 99.8728261, 99.87104728, 99.86924586, 99.86742159, 99.86557422, 99.8637035, 99.86180916, 99.85989095, 99.8579486, 99.85598184, 99.85399041, 99.85197403, 99.84993244, 99.84786536, 99.8457725, 99.8436536, 99.84150836, 99.83933651, 99.83713775, 99.83491179, 99.83265835, 99.83037712, 99.82806782, 99.82573013, 99.82336376, 99.82096839, 99.81854374, 99.81608947, 99.81360528, 99.81109086, 99.80854588, 99.80597003, 99.80336298, 99.8007244, 99.79805397, 99.79535136, 99.79261622, 99.78984823, 99.78704704, 99.78421231, 99.78134369, 99.77844084, 99.77550341, 99.77253104, 99.76952338, 99.76648007, 99.76340074, 99.76028503, 99.75713258, 99.75394301, 99.75071595, 99.74745102, 99.74414785, 99.74080605, 99.73742523, 99.73400502, 99.73054502, 99.72704484, 99.72350407, 99.71992233, 99.7162992, 99.71263429, 99.70892718, 99.70517747, 99.70138474, 99.69754857, 99.69366854, 99.68974423, 99.68577522, 99.68176108, 99.67770136, 99.67359565, 99.66944349, 99.66524445, 99.66099809, 99.65670396, 99.6523616, 99.64797057, 99.64353041, 99.63904065, 99.63450084, 99.62991052, 99.6252692, 99.62057643, 99.61583173, 99.61103461, 99.6061846, 99.60128122, 99.59632397, 99.59131237, 99.58624593, 99.58112414, 99.57594651, 99.57071255, 99.56542173, 99.56007355, 99.55466751, 99.54920309, 99.54367976, 99.53809701, 99.53245432, 99.52675116, 99.52098699, 99.5151613, 99.50927353, 99.50332315, 99.49730962, 99.49123239, 99.48509092, 99.47888465, 99.47261303, 99.46627551, 99.45987151, 99.45340049, 99.44686187, 99.44025508, 99.43357956, 99.42683472, 99.42001999, 99.41313478, 99.40617852, 99.39915062, 99.39205048, 99.38487752, 99.37763113, 99.37031073, 99.3629157, 99.35544545, 99.34789937, 99.34027684, 99.33257726, 99.3248, 99.31694446, 99.30901001, 99.30099602, 99.29290188, 99.28472694, 99.27647059, 99.26813217, 99.25971107, 99.25120663, 99.24261822, 99.23394519, 99.22518689, 99.21634267, 99.20741188, 99.19839387, 99.18928797, 99.18009353, 99.17080989, 99.16143637, 99.15197232, 99.14241706, 99.13276992, 99.12303023, 99.11319731, 99.10327048, 99.09324906, 99.08313237, 99.07291972, 99.06261043, 99.0522038, 99.04169915, 99.03109578, 99.02039299, 99.00959009, 98.99868638, 98.98768116, 98.97657373, 98.96536337, 98.95404939, 98.94263107, 98.93110771, 98.91947859, 98.907743, 98.89590023, 98.88394955, 98.87189026, 98.85972163, 98.84744295, 98.83505348, 98.82255251, 98.80993931, 98.79721316, 98.78437332, 98.77141908, 98.7583497, 98.74516446, 98.73186261, 98.71844343, 98.70490619, 98.69125015, 98.67747458, 98.66357874, 98.6495619, 98.63542332, 98.62116226, 98.60677799, 98.59226976, 98.57763685, 98.5628785, 98.54799399, 98.53298256, 98.51784349, 98.50257604, 98.48717946, 98.47165301, 98.45599595, 98.44020755, 98.42428707, 98.40823377, 98.3920469, 98.37572574, 98.35926954, 98.34267757, 98.32594908, 98.30908335, 98.29207964, 98.27493722, 98.25765535, 98.24023329, 98.22267033, 98.20496572, 98.18711874, 98.16912866, 98.15099475, 98.13271629, 98.11429256, 98.09572283, 98.07700638, 98.0581425, 98.03913046, 98.01996955, 98.00065905, 97.98119827, 97.96158648, 97.94182297, 97.92190705, 97.90183801, 97.88161516, 97.86123778, 97.84070519, 97.8200167, 97.79917161, 97.77816923, 97.75700889, 97.73568991, 97.71421159, 97.69257327, 97.67077428, 97.64881395, 97.62669161, 97.60440659, 97.58195825, 97.55934593, 97.53656898, 97.51362674, 97.49051858, 97.46724386, 97.44380194, 97.4201922, 97.396414, 97.37246672, 97.34834975, 97.32406247, 97.29960428, 97.27497456, 97.25017273, 97.22519818, 97.20005034, 97.17472861, 97.14923241, 97.12356118, 97.09771434, 97.07169133, 97.0454916, 97.0191146, 96.99255977, 96.96582658, 96.93891449, 96.91182299, 96.88455153, 96.85709962, 96.82946674, 96.80165239, 96.77365608, 96.7454773, 96.71711559, 96.68857046, 96.65984144, 96.63092808, 96.60182992, 96.57254651, 96.54307741, 96.51342218, 96.48358041, 96.45355166, 96.42333554, 96.39293164, 96.36233956, 96.33155892, 96.30058934, 96.26943044, 96.23808187, 96.20654326, 96.17481428, 96.14289459, 96.11078385, 96.07848175, 96.04598797, 96.01330221, 95.98042418, 95.94735359, 95.91409016, 95.88063364, 95.84698376, 95.81314027, 95.77910294, 95.74487154, 95.71044584, 95.67582564, 95.64101073, 95.60600093, 95.57079606, 95.53539595, 95.49980043, 95.46400936, 95.4280226, 95.39184002, 95.35546149, 95.31888692, 95.2821162, 95.24514925, 95.20798599, 95.17062636, 95.13307029, 95.09531775, 95.05736871, 95.01922315, 94.98088104, 94.94234241, 94.90360725, 94.86467559, 94.82554747, 94.78622293, 94.74670203, 94.70698485, 94.66707146, 94.62696196, 94.58665646, 94.54615506, 94.50545791, 94.46456514, 94.4234769, 94.38219337, 94.34071471, 94.29904112, 94.25717281, 94.21510998, 94.17285287, 94.13040171, 94.08775676, 94.04491828, 94.00188654, 93.95866185, 93.91524449, 93.87163479, 93.82783307, 93.78383968, 93.73965497, 93.69527931, 93.65071307, 93.60595664, 93.56101045, 93.51587489, 93.4705504, 93.42503744, 93.37933645, 93.3334479, 93.28737229, 93.24111011, 93.19466186, 93.14802807, 93.10120929, 93.05420605, 93.00701892, 92.95964848, 92.91209532, 92.86436004, 92.81644325, 92.7683456, 92.72006771, 92.67161025, 92.62297389, 92.5741593, 92.52516719, 92.47599826, 92.42665324, 92.37713287, 92.32743789, 92.27756906, 92.22752717, 92.177313, 92.12692735, 92.07637104, 92.0256449, 91.97474977, 91.92368651, 91.87245598, 91.82105907, 91.76949667, 91.71776969, 91.66587906, 91.61382569, 91.56161055, 91.5092346, 91.45669879, 91.40400413, 91.35115161, 91.29814224, 91.24497704, 91.19165706, 91.13818334, 91.08455695, 91.03077896, 90.97685046, 90.92277255, 90.86854633, 90.81417295, 90.75965353, 90.70498922, 90.65018119, 90.59523061, 90.54013867, 90.48490657, 90.42953551, 90.37402672, 90.31838143, 90.26260089, 90.20668636, 90.1506391, 90.09446041, 90.03815156, 89.98171387, 89.92514865, 89.86845723, 89.81164094, 89.75470113, 89.69763918, 89.64045643, 89.58315429, 89.52573414, 89.46819738, 89.41054543, 89.35277972, 89.29490168, 89.23691275, 89.1788144, 89.12060808, 89.06229528, 89.00387747, 88.94535617, 88.88673287, 88.82800908, 88.76918634, 88.71026618, 88.65125015, 88.59213979, 88.53293666, 88.47364235, 88.41425843, 88.3547865, 88.29522814, 88.23558497, 88.17585859, 88.11605065, 88.05616276, 87.99619657, 87.93615373, 87.87603589, 87.81584472, 87.75558188, 87.69524906, 87.63484795, 87.57438023, 87.51384761, 87.4532518, 87.39259452, 87.33187747, 87.2711024, 87.21027103, 87.14938512, 87.08844639, 87.02745662, 86.96641755, 86.90533095, 86.8441986, 86.78302226, 86.72180371, 86.66054475, 86.59924716, 86.53791274, 86.47654327, 86.41514058, 86.35370646, 86.29224272, 86.23075117, 86.16923364, 86.10769193, 86.04612787, 85.98454329, 85.92294, 85.86131983, 85.7996846, 85.73803614, 85.67637629, 85.61470685, 85.55302965, 85.49134652, 85.42965927, 85.36796971, 85.30627966, 85.24459092, 85.18290529, 85.12122456, 85.05955051, 84.99788492, 84.93622954, 84.87458613, 84.81295642, 84.75134214, 84.68974498, 84.62816663, 84.56660875, 84.50507297, 84.44356092, 84.38207416, 84.32061425, 84.25918269, 84.19778097, 84.13641051, 84.07507269, 84.01376884, 83.95250024, 83.89126808, 83.83007351, 83.76891759, 83.70780131, 83.64672556, 83.58569112, 83.52469868, 83.46374882, 83.40284197, 83.34197844, 83.28115838, 83.22038177, 83.15964844, 83.09895799, 83.03830983, 82.97770314, 82.91713687, 82.85660966, 82.79611989, 82.73566564, 82.67524461, 82.61485417, 82.55449126, 82.49415243, 82.43383374, 82.37353075, 82.31323849, 82.25295141, 82.19266332, 82.13236739, 82.07205602, 82.01172086, 81.95135271, 81.89094148, 81.83047609, 81.76994445, 81.70933332, 81.6486283, 81.5878137, 81.52687244, 81.46578599, 81.40453425, 81.34309545, 81.28144602, 81.21956047, 81.15741128, 81.09496875, 81.03220088, 80.96907317, 80.90554852, 80.84158702, 80.77714582, 80.71217889, 80.64663688, 80.58046689, 80.51361225, 80.44601234, 80.37760234, 80.30831297, 80.23807027, 80.16679534, 80.09440407, 80.02080686, 79.94590832, 79.86960703, 79.79179518, 79.71235829, 79.6311749, 79.54811624, 79.46304589, 79.37581948, 79.28628433, 79.19427915, 79.09963367, 79.00216831, 78.90169391, 78.79801133, 78.69091121, 78.58017363, 78.46556784, 78.34685202, 78.22377302, 78.09606614, 77.96345498, 77.82565128, 77.68235483, 77.53325339, 77.37802274, 77.21632671, 77.04781729, 76.8721349, 76.68890858, 76.49775642, 76.29828602, 76.09009502, 75.8727718, 75.64589628, 75.40904079, 75.16177117, 74.9036479, 74.63422745, 74.35306374, 74.05970974, 73.75371926, 73.43464884, 73.10205985, 72.75552071, 72.3946092, 72.01891506, 71.62804252, 71.22161313, 70.79926857, 70.36067361, 69.9055191, 69.43352506, 68.9444437, 68.43806255, 67.91420742, 67.37274542, 66.81358776, 66.23669249, 65.64206705, 65.02977056, 64.39991587, 63.75267143, 63.08826264, 62.40697303, 61.70914494, 60.99517986, 60.26553828, 59.52073912, 58.76135873, 57.98802934, 57.20143715, 56.40231989, 55.59146396, 54.76970116, 53.93790503, 53.09698681, 52.24789112, 51.3915913, 50.52908459, 49.66138712, 48.78952873, 47.91454781, 47.03748606, 46.1593833, 45.28127243, 44.40417449, 43.52909393, 42.65701411, 41.78889312, 40.92565985, 40.06821042, 39.21740504, 38.37406509, 37.53897076, 36.71285897, 35.89642173, 35.09030485, 34.29510705, 33.51137946, 32.73962537, 31.98030043, 31.23381303, 30.50052505, 29.78075278, 29.07476813, 28.38280001, 27.70503584, 27.04162328, 26.39267201, 25.75825562, 25.1384136, 24.53315333, 23.94245213, 23.36625929, 22.80449816, 22.25706809, 21.72384649, 21.20469073, 20.69944001, 20.20791721, 19.72993059, 19.26527552, 18.81373602, 18.3750863, 17.94909216, 17.53551234, 17.1340998, 16.74460284, 16.36676624, 16.00033223, 15.64504145, 15.30063376, 14.96684909, 14.64342807, 14.33011275, 14.02664712, 13.73277768, 13.44825389, 13.17282855, 12.90625825, 12.64830358, 12.39872951, 12.15730555, 11.92380599, 11.69801009, 11.47970214, 11.26867164, 11.06471339, 10.86762747, 10.67721939, 10.4933, 10.31568558, 10.14419781, 9.97866371, 9.81891564, 9.66479124, 9.51613338, 9.3727901, 9.23461453, 9.10146483, 8.97320408, 8.84970023, 8.73082602, 8.61645882, 8.50648065, 8.40077798, 8.29924171, 8.20176706, 8.10825344, 8.01860443, 7.93272761, 7.85053454, 7.77194062, 7.69686505, 7.62523069, 7.55696405, 7.49199514, 7.43025745, 7.37168784, 7.31622647, 7.26381677, 7.21440533, 7.16794185, 7.12437911, 7.08367287, 7.04578185, 7.01066764, 6.97829472, 6.94863035, 6.92164457, 6.89731014, 6.87560252, 6.85649984, 6.83998286, 6.82603496, 6.81464211, 6.80579286, 6.79947831, 6.79569211, 6.79569211, 6.79947831, 6.80579286, 6.81464211, 6.82603496, 6.83998286, 6.85649984, 6.87560252, 6.89731014, 6.92164457, 6.94863035, 6.97829472, 7.01066764, 7.04578185, 7.08367287, 7.12437911, 7.16794185, 7.21440533, 7.26381677, 7.31622647, 7.37168784, 7.43025745, 7.49199514, 7.55696405, 7.62523069, 7.69686505, 7.77194062, 7.85053454, 7.93272761, 8.01860443, 8.10825344, 8.20176706, 8.29924171, 8.40077798, 8.50648065, 8.61645882, 8.73082602, 8.84970023, 8.97320408, 9.10146483, 9.23461453, 9.3727901, 9.51613338, 9.66479124, 9.81891564, 9.97866371, 10.14419781, 10.31568558, 10.4933, 10.67721939, 10.86762747, 11.06471339, 11.26867164, 11.47970214, 11.69801009, 11.92380599, 12.15730555, 12.39872951, 12.64830358, 12.90625825, 13.17282855, 13.44825389, 13.73277768, 14.02664712, 14.33011275, 14.64342807, 14.96684909, 15.30063376, 15.64504145, 16.00033223, 16.36676624, 16.74460284, 17.1340998, 17.53551234, 17.94909216, 18.3750863, 18.81373602, 19.26527552, 19.72993059, 20.20791721, 20.69944001, 21.20469073, 21.72384649, 22.25706809, 22.80449816, 23.36625929, 23.94245213, 24.53315333, 25.1384136, 25.75825562, 26.39267201, 27.04162328, 27.70503584, 28.38280001, 29.07476813, 29.78075278, 30.50052505, 31.23381303, 31.98030043, 32.73962537, 33.51137946, 34.29510705, 35.09030485, 35.89642173, 36.71285897, 37.53897076, 38.37406509, 39.21740504, 40.06821042, 40.92565985, 41.78889312, 42.65701411, 43.52909393, 44.40417449, 45.28127243, 46.1593833, 47.03748606, 47.91454781, 48.78952873, 49.66138712, 50.52908459, 51.3915913, 52.24789112, 53.09698681, 53.93790503, 54.76970116, 55.59146396, 56.40231989, 57.20143715, 57.98802934, 58.76135873, 59.52073912, 60.26553828, 60.99517986, 61.70914494, 62.40697303, 63.08826264, 63.75267143, 64.39991587, 65.02977056, 65.64206705, 66.23669249, 66.81358776, 67.37274542, 67.91420742, 68.43806255, 68.9444437, 69.43352506, 69.9055191, 70.36067361, 70.79926857, 71.22161313, 71.62804252, 72.01891506, 72.3946092, 72.75552071, 73.10205985, 73.43464884, 73.75371926, 74.05970974, 74.35306374, 74.63422745, 74.9036479, 75.16177117, 75.40904079, 75.64589628, 75.8727718, 76.09009502, 76.29828602, 76.49775642, 76.68890858, 76.8721349, 77.04781729, 77.21632671, 77.37802274, 77.53325339, 77.68235483, 77.82565128, 77.96345498, 78.09606614, 78.22377302, 78.34685202, 78.46556784, 78.58017363, 78.69091121, 78.79801133, 78.90169391, 79.00216831, 79.09963367, 79.19427915, 79.28628433, 79.37581948, 79.46304589, 79.54811624, 79.6311749, 79.71235829, 79.79179518, 79.86960703, 79.94590832, 80.02080686, 80.09440407, 80.16679534, 80.23807027, 80.30831297, 80.37760234, 80.44601234, 80.51361225, 80.58046689, 80.64663688, 80.71217889, 80.77714582, 80.84158702, 80.90554852, 80.96907317, 81.03220088, 81.09496875, 81.15741128, 81.21956047, 81.28144602, 81.34309545, 81.40453425, 81.46578599, 81.52687244, 81.5878137, 81.6486283, 81.70933332, 81.76994445, 81.83047609, 81.89094148, 81.95135271, 82.01172086, 82.07205602, 82.13236739, 82.19266332, 82.25295141, 82.31323849, 82.37353075, 82.43383374, 82.49415243, 82.55449126, 82.61485417, 82.67524461, 82.73566564, 82.79611989, 82.85660966, 82.91713687, 82.97770314, 83.03830983, 83.09895799, 83.15964844, 83.22038177, 83.28115838, 83.34197844, 83.40284197, 83.46374882, 83.52469868, 83.58569112, 83.64672556, 83.70780131, 83.76891759, 83.83007351, 83.89126808, 83.95250024, 84.01376884, 84.07507269, 84.13641051, 84.19778097, 84.25918269, 84.32061425, 84.38207416, 84.44356092, 84.50507297, 84.56660875, 84.62816663, 84.68974498, 84.75134214, 84.81295642, 84.87458613, 84.93622954, 84.99788492, 85.05955051, 85.12122456, 85.18290529, 85.24459092, 85.30627966, 85.36796971, 85.42965927, 85.49134652, 85.55302965, 85.61470685, 85.67637629, 85.73803614, 85.7996846, 85.86131983, 85.92294, 85.98454329, 86.04612787, 86.10769193, 86.16923364, 86.23075117, 86.29224272, 86.35370646, 86.41514058, 86.47654327, 86.53791274, 86.59924716, 86.66054475, 86.72180371, 86.78302226, 86.8441986, 86.90533095, 86.96641755, 87.02745662, 87.08844639, 87.14938512, 87.21027103, 87.2711024, 87.33187747, 87.39259452, 87.4532518, 87.51384761, 87.57438023, 87.63484795, 87.69524906, 87.75558188, 87.81584472, 87.87603589, 87.93615373, 87.99619657, 88.05616276, 88.11605065, 88.17585859, 88.23558497, 88.29522814, 88.3547865, 88.41425843, 88.47364235, 88.53293666, 88.59213979, 88.65125015, 88.71026618, 88.76918634, 88.82800908, 88.88673287, 88.94535617, 89.00387747, 89.06229528, 89.12060808, 89.1788144, 89.23691275, 89.29490168, 89.35277972, 89.41054543, 89.46819738, 89.52573414, 89.58315429, 89.64045643, 89.69763918, 89.75470113, 89.81164094, 89.86845723, 89.92514865, 89.98171387, 90.03815156, 90.09446041, 90.1506391, 90.20668636, 90.26260089, 90.31838143, 90.37402672, 90.42953551, 90.48490657, 90.54013867, 90.59523061, 90.65018119, 90.70498922, 90.75965353, 90.81417295, 90.86854633, 90.92277255, 90.97685046, 91.03077896, 91.08455695, 91.13818334, 91.19165706, 91.24497704, 91.29814224, 91.35115161, 91.40400413, 91.45669879, 91.5092346, 91.56161055, 91.61382569, 91.66587906, 91.71776969, 91.76949667, 91.82105907, 91.87245598, 91.92368651, 91.97474977, 92.0256449, 92.07637104, 92.12692735, 92.177313, 92.22752717, 92.27756906, 92.32743789, 92.37713287, 92.42665324, 92.47599826, 92.52516719, 92.5741593, 92.62297389, 92.67161025, 92.72006771, 92.7683456, 92.81644325, 92.86436004, 92.91209532, 92.95964848, 93.00701892, 93.05420605, 93.10120929, 93.14802807, 93.19466186, 93.24111011, 93.28737229, 93.3334479, 93.37933645, 93.42503744, 93.4705504, 93.51587489, 93.56101045, 93.60595664, 93.65071307, 93.69527931, 93.73965497, 93.78383968, 93.82783307, 93.87163479, 93.91524449, 93.95866185, 94.00188654, 94.04491828, 94.08775676, 94.13040171, 94.17285287, 94.21510998, 94.25717281, 94.29904112, 94.34071471, 94.38219337, 94.4234769, 94.46456514, 94.50545791, 94.54615506, 94.58665646, 94.62696196, 94.66707146, 94.70698485, 94.74670203, 94.78622293, 94.82554747, 94.86467559, 94.90360725, 94.94234241, 94.98088104, 95.01922315, 95.05736871, 95.09531775, 95.13307029, 95.17062636, 95.20798599, 95.24514925, 95.2821162, 95.31888692, 95.35546149, 95.39184002, 95.4280226, 95.46400936, 95.49980043, 95.53539595, 95.57079606, 95.60600093, 95.64101073, 95.67582564, 95.71044584, 95.74487154, 95.77910294, 95.81314027, 95.84698376, 95.88063364, 95.91409016, 95.94735359, 95.98042418, 96.01330221, 96.04598797, 96.07848175, 96.11078385, 96.14289459, 96.17481428, 96.20654326, 96.23808187, 96.26943044, 96.30058934, 96.33155892, 96.36233956, 96.39293164, 96.42333554, 96.45355166, 96.48358041, 96.51342218, 96.54307741, 96.57254651, 96.60182992, 96.63092808, 96.65984144, 96.68857046, 96.71711559, 96.7454773, 96.77365608, 96.80165239, 96.82946674, 96.85709962, 96.88455153, 96.91182299, 96.93891449, 96.96582658, 96.99255977, 97.0191146, 97.0454916, 97.07169133, 97.09771434, 97.12356118, 97.14923241, 97.17472861, 97.20005034, 97.22519818, 97.25017273, 97.27497456, 97.29960428, 97.32406247, 97.34834975, 97.37246672, 97.396414, 97.4201922, 97.44380194, 97.46724386, 97.49051858, 97.51362674, 97.53656898, 97.55934593, 97.58195825, 97.60440659, 97.62669161, 97.64881395, 97.67077428, 97.69257327, 97.71421159, 97.73568991, 97.75700889, 97.77816923, 97.79917161, 97.8200167, 97.84070519, 97.86123778, 97.88161516, 97.90183801, 97.92190705, 97.94182297, 97.96158648, 97.98119827, 98.00065905, 98.01996955, 98.03913046, 98.0581425, 98.07700638, 98.09572283, 98.11429256, 98.13271629, 98.15099475, 98.16912866, 98.18711874, 98.20496572, 98.22267033, 98.24023329, 98.25765535, 98.27493722, 98.29207964, 98.30908335, 98.32594908, 98.34267757, 98.35926954, 98.37572574, 98.3920469, 98.40823377, 98.42428707, 98.44020755, 98.45599595, 98.47165301, 98.48717946, 98.50257604, 98.51784349, 98.53298256, 98.54799399, 98.5628785, 98.57763685, 98.59226976, 98.60677799, 98.62116226, 98.63542332, 98.6495619, 98.66357874, 98.67747458, 98.69125015, 98.70490619, 98.71844343, 98.73186261, 98.74516446, 98.7583497, 98.77141908, 98.78437332, 98.79721316, 98.80993931, 98.82255251, 98.83505348, 98.84744295, 98.85972163, 98.87189026, 98.88394955, 98.89590023, 98.907743, 98.91947859, 98.93110771, 98.94263107, 98.95404939, 98.96536337, 98.97657373, 98.98768116, 98.99868638, 99.00959009, 99.02039299, 99.03109578, 99.04169915, 99.0522038, 99.06261043, 99.07291972, 99.08313237, 99.09324906, 99.10327048, 99.11319731, 99.12303023, 99.13276992, 99.14241706, 99.15197232, 99.16143637, 99.17080989, 99.18009353, 99.18928797, 99.19839387, 99.20741188, 99.21634267, 99.22518689, 99.23394519, 99.24261822, 99.25120663, 99.25971107, 99.26813217, 99.27647059, 99.28472694, 99.29290188, 99.30099602, 99.30901001, 99.31694446, 99.3248, 99.33257726, 99.34027684, 99.34789937, 99.35544545, 99.3629157, 99.37031073, 99.37763113, 99.38487752, 99.39205048, 99.39915062, 99.40617852, 99.41313478, 99.42001999, 99.42683472, 99.43357956, 99.44025508, 99.44686187, 99.45340049, 99.45987151, 99.46627551, 99.47261303, 99.47888465, 99.48509092, 99.49123239, 99.49730962, 99.50332315, 99.50927353, 99.5151613, 99.52098699, 99.52675116, 99.53245432, 99.53809701, 99.54367976, 99.54920309, 99.55466751, 99.56007355, 99.56542173, 99.57071255, 99.57594651, 99.58112414, 99.58624593, 99.59131237, 99.59632397, 99.60128122, 99.6061846, 99.61103461, 99.61583173, 99.62057643, 99.6252692, 99.62991052, 99.63450084, 99.63904065, 99.64353041, 99.64797057, 99.6523616, 99.65670396, 99.66099809, 99.66524445, 99.66944349, 99.67359565, 99.67770136, 99.68176108, 99.68577522, 99.68974423, 99.69366854, 99.69754857, 99.70138474, 99.70517747, 99.70892718, 99.71263429, 99.7162992, 99.71992233, 99.72350407, 99.72704484, 99.73054502, 99.73400502, 99.73742523, 99.74080605, 99.74414785, 99.74745102, 99.75071595, 99.75394301, 99.75713258, 99.76028503, 99.76340074, 99.76648007, 99.76952338, 99.77253104, 99.77550341, 99.77844084, 99.78134369, 99.78421231, 99.78704704, 99.78984823, 99.79261622, 99.79535136, 99.79805397, 99.8007244, 99.80336298, 99.80597003, 99.80854588, 99.81109086, 99.81360528, 99.81608947, 99.81854374, 99.82096839, 99.82336376, 99.82573013, 99.82806782, 99.83037712, 99.83265835, 99.83491179, 99.83713775, 99.83933651, 99.84150836, 99.8436536, 99.8457725, 99.84786536, 99.84993244, 99.85197403, 99.85399041, 99.85598184, 99.8579486, 99.85989095, 99.86180916, 99.8637035, 99.86557422, 99.86742159, 99.86924586, 99.87104728, 99.8728261, 99.87458259, 99.87631697, 99.87802951, 99.87972043, 99.88138999, 99.88303842, 99.88466595, 99.88627282, 99.88785926, 99.88942551, 99.89097178, 99.89249831, 99.89400532, 99.89549302, 99.89696165, 99.89841141, 99.89984251, 99.90125519, 99.90264963, 99.90402606, 99.90538467, 99.90672568, 99.90804929, 99.9093557, 99.9106451, 99.9119177, 99.91317369, 99.91441326, 99.9156366, 99.9168439, 99.91803536, 99.91921115, 99.92037147, 99.92151648, 99.92264638, 99.92376134, 99.92486154, 99.92594715, 99.92701835, 99.9280753, 99.92911818, 99.93014715, 99.93116239, 99.93216405, 99.9331523, 99.93412729, 99.9350892, 99.93603817, 99.93697436, 99.93789794, 99.93880904, 99.93970782, 99.94059444, 99.94146903, 99.94233176, 99.94318275, 99.94402216, 99.94485012, 99.94566679, 99.94647229, 99.94726676, 99.94805035, 99.94882318, 99.94958539, 99.95033711, 99.95107847, 99.95180961, 99.95253064, 99.95324169, 99.95394289, 99.95463437, 99.95531624, 99.95598862, 99.95665164, 99.95730541, 99.95795005, 99.95858568, 99.95921241, 99.95983035, 99.96043961, 99.96104031, 99.96163256, 99.96221645, 99.96279211, 99.96335963, 99.96391912, 99.96447069, 99.96501443, 99.96555044, 99.96607883, 99.9665997, 99.96711314, 99.96761924, 99.96811812, 99.96860984, 99.96909453, 99.96957225, 99.97004311, 99.9705072, 99.97096459, 99.97141539, 99.97185968, 99.97229755, 99.97272907, 99.97315434, 99.97357343, 99.97398643, 99.97439342, 99.97479448, 99.97518969, 99.97557912, 99.97596286, 99.97634098, 99.97671355, 99.97708065, 99.97744236, 99.97779874, 99.97814987, 99.97849582, 99.97883666, 99.97917246, 99.97950328, 99.9798292, 99.98015028, 99.98046659, 99.98077819, 99.98108514, 99.98138752, 99.98168538, 99.98197878, 99.98226779, 99.98255247, 99.98283288, 99.98310907, 99.98338111, 99.98364904, 99.98391294, 99.98417285, 99.98442883, 99.98468094, 99.98492922, 99.98517374, 99.98541454, 99.98565168, 99.98588521, 99.98611518, 99.98634164, 99.98656463, 99.98678422, 99.98700044, 99.98721334, 99.98742298, 99.98762939, 99.98783262, 99.98803272, 99.98822974, 99.98842371, 99.98861468, 99.9888027, 99.9889878, 99.98917003, 99.98934943, 99.98952604, 99.98969989, 99.98987104, 99.99003951, 99.99020535, 99.9903686, 99.99052929, 99.99068746, 99.99084315, 99.99099639, 99.99114722, 99.99129567, 99.99144178, 99.99158558, 99.99172711, 99.9918664, 99.99200349, 99.99213839, 99.99227116, 99.99240182, 99.99253039, 99.99265692, 99.99278143, 99.99290395, 99.99302451, 99.99314314, 99.99325987, 99.99337473, 99.99348774, 99.99359894, 99.99370834, 99.99381599, 99.99392189, 99.99402609, 99.9941286, 99.99422945, 99.99432867, 99.99442628, 99.9945223, 99.99461676, 99.99470969, 99.9948011, 99.99489102, 99.99497947, 99.99506647, 99.99515205, 99.99523623, 99.99531902, 99.99540046, 99.99548056, 99.99555934, 99.99563682, 99.99571303, 99.99578798, 99.99586168, 99.99593417, 99.99600546, 99.99607557, 99.99614451, 99.9962123, 99.99627897, 99.99634453, 99.996409, 99.99647239, 99.99653472, 99.996596, 99.99665626, 99.99671552, 99.99677377, 99.99683105, 99.99688737, 99.99694273, 99.99699717, 99.99705068, 99.9971033, 99.99715502, 99.99720587, 99.99725585, 99.99730499, 99.9973533, 99.99740078, 99.99744746, 99.99749334, 99.99753844, 99.99758277, 99.99762634, 99.99766916, 99.99771126, 99.99775263, 99.99779329, 99.99783326, 99.99787253, 99.99791114, 99.99794907, 99.99798635, 99.99802299, 99.998059, 99.99809438, 99.99812915, 99.99816332, 99.99819689, 99.99822988, 99.9982623, 99.99829415, 99.99832545, 99.9983562, 99.99838642, 99.99841611, 99.99844528, 99.99847393, 99.99850209, 99.99852975, 99.99855692, 99.99858362, 99.99860985, 99.99863561, 99.99866093, 99.99868579, 99.99871021, 99.99873421, 99.99875777, 99.99878092, 99.99880366, 99.998826, 99.99884794, 99.99886949, 99.99889065, 99.99891144, 99.99893185, 99.9989519, 99.99897159, 99.99899093, 99.99900993, 99.99902858, 99.9990469, 99.99906488, 99.99908255, 99.9990999, 99.99911693, 99.99913365, 99.99915008, 99.99916621, 99.99918204, 99.99919759, 99.99921286, 99.99922785, 99.99924256, 99.99925701, 99.9992712, 99.99928513, 99.9992988, 99.99931222, 99.9993254, 99.99933834, 99.99935104, 99.99936351, 99.99937575, 99.99938776, 99.99939955, 99.99941113, 99.99942249, 99.99943365, 99.9994446, 99.99945534, 99.99946589, 99.99947624, 99.9994864, 99.99949637, 99.99950616, 99.99951576, 99.99952519, 99.99953444, 99.99954352, 99.99955243, 99.99956117, 99.99956975, 99.99957817, 99.99958643, 99.99959454, 99.99960249, 99.9996103, 99.99961795, 99.99962547, 99.99963284, 99.99964008, 99.99964717, 99.99965414, 99.99966097, 99.99966767, 99.99967425, 99.9996807, 99.99968703, 99.99969324, 99.99969933, 99.9997053, 99.99971116, 99.99971691, 99.99972255, 99.99972809, 99.99973351, 99.99973884, 99.99974406, 99.99974918, 99.9997542, 99.99975913, 99.99976396, 99.9997687, 99.99977334, 99.9997779, 99.99978237, 99.99978676, 99.99979105, 99.99979527, 99.9997994, 99.99980346, 99.99980743, 99.99981133, 99.99981516, 99.9998189, 99.99982258, 99.99982618, 99.99982972, 99.99983318, 99.99983658, 99.99983991, 99.99984317, 99.99984638, 99.99984951, 99.99985259, 99.99985561, 99.99985856, 99.99986146, 99.99986431, 99.99986709, 99.99986982, 99.9998725, 99.99987512, 99.9998777, 99.99988022, 99.99988269, 99.99988511, 99.99988749, 99.99988981, 99.9998921, 99.99989433, 99.99989652, 99.99989867, 99.99990077, 99.99990284, 99.99990486, 99.99990684, 99.99990878, 99.99991068, 99.99991255, 99.99991437, 99.99991616, 99.99991792, 99.99991964, 99.99992132, 99.99992297, 99.99992459, 99.99992617, 99.99992772, 99.99992924, 99.99993073, 99.99993219, 99.99993362, 99.99993502, 99.9999364, 99.99993774, 99.99993906, 99.99994035, 99.99994161, 99.99994285, 99.99994406, 99.99994525, 99.99994642, 99.99994756, 99.99994867, 99.99994977, 99.99995084, 99.99995189, 99.99995291, 99.99995392, 99.99995491, 99.99995587, 99.99995682, 99.99995774, 99.99995865, 99.99995954, 99.99996041, 99.99996126, 99.99996209, 99.99996291, 99.99996371, 99.99996449, 99.99996526, 99.99996601, 99.99996675, 99.99996747, 99.99996817, 99.99996886, 99.99996954, 99.9999702, 99.99997085, 99.99997148, 99.9999721, 99.99997271, 99.9999733, 99.99997389, 99.99997446, 99.99997501, 99.99997556, 99.9999761, 99.99997662, 99.99997713, 99.99997763, 99.99997812, 99.99997861, 99.99997908, 99.99997954, 99.99997999, 99.99998043, 99.99998086, 99.99998128, 99.9999817, 99.9999821, 99.9999825, 99.99998288, 99.99998326, 99.99998363, 99.999984, 99.99998435, 99.9999847, 99.99998504, 99.99998537, 99.9999857, 99.99998602, 99.99998633, 99.99998663, 99.99998693, 99.99998723, 99.99998751, 99.99998779, 99.99998806, 99.99998833, 99.99998859, 99.99998885, 99.9999891, 99.99998935, 99.99998959, 99.99998982, 99.99999005, 99.99999027, 99.99999049, 99.99999071, 99.99999092, 99.99999112, 99.99999132, 99.99999152, 99.99999171, 99.9999919, 99.99999209, 99.99999227, 99.99999244, 99.99999261, 99.99999278, 99.99999295, 99.99999311, 99.99999326, 99.99999342, 99.99999357, 99.99999372, 99.99999386, 99.999994, 99.99999414, 99.99999427, 99.9999944, 99.99999453, 99.99999466, 99.99999478, 99.9999949, 99.99999502, 99.99999513, 99.99999525, 99.99999536, 99.99999546, 99.99999557, 99.99999567, 99.99999577, 99.99999587, 99.99999597, 99.99999606, 99.99999615, 99.99999624, 99.99999633, 99.99999641, 99.9999965, 99.99999658, 99.99999666, 99.99999674, 99.99999681, 99.99999689, 99.99999696, 99.99999703, 99.9999971, 99.99999717, 99.99999724, 99.9999973, 99.99999736, 99.99999743, 99.99999749, 99.99999755, 99.9999976, 99.99999766, 99.99999771, 99.99999777, 99.99999782, 99.99999787, 99.99999792, 99.99999797, 99.99999802, 99.99999807, 99.99999811, 99.99999816, 99.9999982, 99.99999825, 99.99999829, 99.99999833, 99.99999837, 99.99999841, 99.99999844, 99.99999848, 99.99999852, 99.99999855, 99.99999859, 99.99999862, 99.99999865, 99.99999869, 99.99999872, 99.99999875, 99.99999878, 99.99999881, 99.99999884, 99.99999887, 99.99999889, 99.99999892, 99.99999895, 99.99999897, 99.999999, 99.99999902, 99.99999904, 99.99999907, 99.99999909, 99.99999911, 99.99999913, 99.99999915, 99.99999918, 99.9999992, 99.99999921, 99.99999923, 99.99999925, 99.99999927, 99.99999929, 99.99999931, 99.99999932, 99.99999934, 99.99999936, 99.99999937, 99.99999939, 99.9999994, 99.99999942, 99.99999943, 99.99999944, 99.99999946, 99.99999947, 99.99999948, 99.9999995, 99.99999951, 99.99999952, 99.99999953, 99.99999955, 99.99999956, 99.99999957, 99.99999958, 99.99999959, 99.9999996, 99.99999961, 99.99999962, 99.99999963, 99.99999964, 99.99999965, 99.99999966, 99.99999966, 99.99999967, 99.99999968, 99.99999969, 99.9999997, 99.9999997, 99.99999971, 99.99999972, 99.99999973, 99.99999973, 99.99999974, 99.99999975, 99.99999975, 99.99999976, 99.99999976, 99.99999977, 99.99999978, 99.99999978, 99.99999979, 99.99999979, 99.9999998, 99.9999998, 99.99999981, 99.99999981, 99.99999982, 99.99999982, 99.99999983, 99.99999983, 99.99999984, 99.99999984, 99.99999984, 99.99999985, 99.99999985, 99.99999986, 99.99999986, 99.99999986, 99.99999987, 99.99999987, 99.99999987, 99.99999988, 99.99999988, 99.99999988, 99.99999989, 99.99999989, 99.99999989, 99.99999989, 99.9999999, 99.9999999, 99.9999999, 99.9999999, 99.99999991, 99.99999991, 99.99999991, 99.99999991, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90.84424652, 90.83920658, 90.83080114, 90.81902187, 90.8038571, 90.7852918, 90.76330756, 90.73788258, 90.7089916, 90.67660595, 90.64069344, 90.60121833, 90.55814135, 90.51141956, 90.46100638, 90.40685148, 90.34890075, 90.28709622, 90.221376, 90.15167423, 90.07792095, 90.00004207, 89.91795927, 89.83158992, 89.74084697, 89.64563888, 89.54586953, 89.44143807, 89.33223889, 89.21816145, 89.09909021, 88.97490452, 88.84547849, 88.71068089, 88.57037502, 88.42441863, 88.27266378, 88.1149567, 87.95113776, 87.78104127, 87.60449542, 87.42132218, 87.23133717, 87.03434958, 86.8301621, 86.61857083, 86.3993652, 86.17232791, 85.9372349, 85.69385533, 85.44195151, 85.18127897, 84.91158643, 84.63261589, 84.34410265, 84.04577548, 83.73735668, 83.41856229, 83.08910227, 82.74868077, 82.39699639, 82.03374252, 81.65860776, 81.27127633, 80.87142857, 80.45874156, 80.03288971, 79.5935455, 79.14038024, 78.673065, 78.19127151, 77.69467325, 77.18294658, 76.65577201, 76.11283549, 75.55382991, 74.97845667, 74.38642729, 73.77746523, 73.15130774, 72.50770788, 71.84643659, 71.16728492, 70.47006624, 69.75461871, 69.02080769, 68.26852823, 67.4977077, 66.70830838, 65.9003301, 65.07381287, 64.22883951, 63.36553821, 62.48408504, 61.58470636, 60.66768108, 59.73334277, 58.78208158, 57.81434593, 56.83064392, 55.83154446, 54.81767803, 53.78973711, 52.74847623, 51.6947115, 50.62931977, 49.55323732, 48.46745795, 47.37303073, 46.27105707, 45.16268743, 44.04911739, 42.93158339, 41.81135783, 40.68974391, 39.56806994, 38.4476834, 37.32994462, 36.21622031, 35.10787681, 34.00627334, 32.91275514, 31.82864663, 30.75524478, 29.69381253, 28.64557253, 27.61170122, 26.5933232, 25.59150613, 24.60725606, 23.64151327, 22.69514874, 21.76896114, 20.86367449, 19.97993633, 19.11831663, 18.27930718, 17.46332169, 16.67069634, 15.90169093, 15.15649051, 14.43520745, 13.73788398, 13.064495, 12.41495131, 11.78910305, 11.18674333, 10.60761216, 10.05140033, 9.51775349, 9.00627627, 8.51653628, 8.04806824, 7.60037789, 7.17294588, 6.76523156, 6.3766765, 6.00670802, 5.6547424, 5.32018797, 5.00244799, 4.70092335, 4.41501499, 4.14412623, 3.88766482, 3.6450448, 3.41568819, 3.19902649, 2.99450198, 2.80156889, 2.61969433, 2.44835919, 2.28705879, 2.13530342, 1.99261882, 1.85854645, 1.73264375, 1.61448425, 1.5036576, 1.39976952, 1.30244173, 1.21131176, 1.12603273, 1.0462731, 0.97171634, 0.9020606, 0.83701835, 0.77631599, 0.71969342, 0.66690363, 0.61771225, 0.57189714, 0.52924789, 0.48956541, 0.45266145, 0.4183582, 0.38648779, 0.35689188, 0.32942125, 0.30393535, 0.28030191, 0.25839653, 0.23810229, 0.21930938, 0.20191474, 0.18582171, 0.17093967, 0.15718374, 0.14447446, 0.13273747, 0.12190324, 0.11190682, 0.10268753, 0.09418872, 0.08635755, 0.07914478, 0.07250449, 0.06639392, 0.0607733, 0.05560559, 0.05085637, 0.04649366, 0.04248774, 0.03881103, 0.03543794, 0.03234473, 0.02950942, 0.02691162, 0.02453245, 0.02235446, 0.0203615, 0.01853863, 0.01687204, 0.015349, 0.01395774, 0.01268739, 0.01152795, 0.01047018, 0.00950559, 0.00862634, 0.00782521, 0.00709559, 0.00643137, 0.00582695, 0.00527718, 0.00477732, 0.00432305, 0.00391038, 0.00353565, 0.00319553, 0.00288695, 0.0026071, 0.00235342, 0.00212356, 0.00191536, 0.00172687, 0.0015563, 0.001402, 0.00126248, 0.00113638, 0.00102246, 0.00091959, 0.00082673, 0.00074294, 0.00066737, 0.00059924, 0.00053785, 0.00048255, 0.00043276, 0.00038795, 0.00034763, 0.00031138, 0.0002788, 0.00024952, 0.00022322, 0.00019962, 0.00017844, 0.00015944, 0.0001424, 0.00012714, 0.00011346, 0.00010122, 0.00009025, 0.00008045, 0.00007168, 0.00006383, 0.00005683, 0.00005057, 0.00004498, 0.00004, 0.00003555, 0.00003158, 0.00002805, 0.0000249, 0.00002209, 0.0000196, 0.00001737, 0.0000154, 0.00001364, 0.00001208, 0.00001069, 9.45997017e-06, 8.36674805e-06, 7.39683463e-06, 6.53668285e-06, 5.77419166e-06, 5.0985566e-06, 4.50013513e-06, 3.97032555e-06, 3.50145804e-06, 3.08669678e-06, 2.71995199e-06, 2.39580093e-06, 2.10941695e-06, 1.85650592e-06, 1.63324916e-06, 1.43625228e-06, 1.26249947e-06, 1.10931235e-06, 9.74313352e-07, 8.55392855e-07, 7.50679817e-07, 6.58515489e-07, 5.77430058e-07, 5.06121637e-07, 4.43437628e-07, 3.88358032e-07, 3.39980616e-07, 2.97507626e-07, 2.60234074e-07, 2.27537143e-07, 1.988669e-07, 1.73737988e-07, 1.5172219e-07, 1.32441926e-07, 1.15564376e-07, 1.00796271e-07, 8.78793713e-08, 7.65863746e-08, 6.67172486e-08, 5.80960631e-08, 5.05681754e-08, 4.39976873e-08, 3.82652416e-08, 3.32660335e-08, 2.89081044e-08, 2.51107792e-08, 2.18033307e-08, 1.89237568e-08, 1.64177578e-08, 1.42377701e-08, 1.23421984e-08, 1.06946061e-08, 9.2631609e-09, 8.02000955e-09, 6.94086566e-09, 6.0044556e-09, 5.19224841e-09, 4.48807214e-09, 3.87780119e-09, 3.34912897e-09, 2.89135471e-09, 2.49512766e-09, 2.15231921e-09, 1.85585236e-09, 1.5995596e-09, 1.37809764e-09, 1.18680532e-09, 1.02164677e-09, 8.79111894e-10, 7.56159579e-10, 6.50132392e-10, 5.58742386e-10, 4.8000004e-10, 4.12185841e-10, 3.5380765e-10, 3.03572278e-10, 2.6037128e-10, 2.23224106e-10, 1.91292315e-10, 1.63865366e-10, 1.40303769e-10, 1.20095933e-10, 1.0274448e-10, 8.78657147e-11, 7.5118578e-11, 6.41904307e-11, 5.48254775e-11, 4.68105554e-11, 3.99467126e-11, 3.40776296e-11, 2.90611979e-11, 2.47695198e-11, 2.11031193e-11, 1.79767312e-11, 1.53050905e-11, 1.30313538e-11, 1.10844667e-11, 9.42179668e-12, 8.01492206e-12, 6.80699941e-12, 5.78381787e-12, 4.90274488e-12, 4.16378043e-12, 3.52429197e-12, 2.99849034e-12, 2.54374299e-12, 2.14583906e-12, 1.8189894e-12, 1.53477231e-12, 1.30739863e-12, 1.10844667e-12, 9.37916411e-13, 7.81597009e-13, 6.67910172e-13, 5.68434189e-13, 4.68958206e-13, 3.97903932e-13, 3.41060513e-13, 2.84217094e-13, 2.4158453e-13, 1.98951966e-13, 1.70530257e-13, 1.42108547e-13, 1.13686838e-13, 9.9475983e-14, 8.52651283e-14, 7.10542736e-14, 5.68434189e-14, 5.68434189e-14, 4.26325641e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.36006137, 2.36131511, 2.363406, 2.36633601, 2.37010794, 2.37472534, 2.3801926, 2.38651491, 2.39369826, 2.40174948, 2.41067622, 2.42048695, 2.43119101, 2.4427986, 2.45532075, 2.46876941, 2.4831574, 2.49849846, 2.51480723, 2.5320993, 2.55039121, 2.56970048, 2.59004558, 2.61144603, 2.63392234, 2.65749607, 2.68218985, 2.70802739, 2.7350335, 2.76323413, 2.79265635, 2.82332842, 2.85527979, 2.88854113, 2.92314433, 2.95912254, 2.99651021, 3.03534306, 3.07565816, 3.1174939, 3.16089004, 3.20588772, 3.25252945, 3.30085918, 3.35092226, 3.40276546, 3.45643699, 3.51198651, 3.5694651, 3.62892529, 3.69042102, 3.75400764, 3.81974193, 3.88768198, 3.95788726, 4.03041852, 4.10533777, 4.1827082, 4.26259414, 4.34506098, 4.43017506, 4.51800359, 4.60861456, 4.70207656, 4.79845868, 4.89783037, 5.0002612, 5.10582074, 5.21457831, 5.32660277, 5.44196225, 5.56072391, 5.68295361, 5.80871565, 5.93807236, 6.07108378, 6.2078073, 6.34829719, 6.49260418, 6.64077506, 6.79285211, 6.94887267, 7.10886859, 7.27286567, 7.44088313, 7.61293302, 7.78901965, 7.96913897, 8.15327802, 8.34141428, 8.53351512, 8.72953721, 8.92942595, 9.13311495, 9.34052551, 9.55156614, 9.76613219, 9.98410539, 10.20535364, 10.42973071, 10.65707608, 10.88721492, 11.11995804, 11.35510204, 11.59242953, 11.83170947, 12.0726976, 12.31513701, 12.55875885, 12.80328308, 13.04841945, 13.2938685, 13.53932268, 13.78446768, 14.02898366, 14.27254676, 14.51483054, 14.75550756, 14.99425096, 15.23073607, 15.46464206, 15.69565356, 15.92346225, 16.14776841, 16.36828245, 16.58472632, 16.79683483, 17.00435691, 17.20705671, 17.4047146, 17.597128, 17.78411214, 17.96550058, 18.14114565, 18.31091873, 18.47471035, 18.63243018, 18.78400688, 18.92938778, 19.06853851, 19.20144244, 19.32810006, 19.44852827, 19.56275958, 19.67084126, 19.7728344, 19.86881296, 19.95886278, 20.04308057, 20.1215729, 20.19445516, 20.26185059, 20.32388924, 20.38070705, 20.43244491, 20.47924774, 20.52126365, 20.55864314, 20.59153834, 20.62010229, 20.64448826, 20.6648492, 20.68133711, 20.6941026, 20.70329439, 20.70905892, 20.71154001, 20.71087849, 20.707212, 20.70067469, 20.69139709, 20.67950591, 20.66512392, 20.64836987, 20.62935844, 20.60820016, 20.58500142, 20.55986446, 20.53288742, 20.50416434, 20.47378525, 20.44183622, 20.40839943, 20.37355327, 20.33737245, 20.29992807, 20.26128774, 20.2215157, 20.18067292, 20.13881722, 20.09600341, 20.05228338, 20.00770622, 19.96231836, 19.91616365, 19.86928351, 19.82171704, 19.77350109, 19.72467043, 19.67525779, 19.62529401, 19.57480813, 19.52382744, 19.47237766, 19.42048292, 19.36816595, 19.31544808, 19.26234937, 19.20888866, 19.15508364, 19.10095094, 19.04650615, 18.99176396, 18.93673812, 18.88144157, 18.82588647, 18.77008423, 18.71404561, 18.65778068, 18.60129896, 18.54460938, 18.48772036, 18.43063983, 18.37337528, 18.31593376, 18.25832194, 18.20054613, 18.14261229, 18.08452607, 18.02629282, 17.96791764, 17.90940535, 17.85076057, 17.79198767, 17.73309086, 17.67407412, 17.6149413, 17.55569608, 17.49634198, 17.4368824, 17.37732062, 17.3176598, 17.25790299, 17.19805315, 17.13811316, 17.07808581, 17.0179738, 16.95777979, 16.89750636, 16.83715603, 16.77673128, 16.71623452, 16.65566814, 16.59503447, 16.53433582, 16.47357444, 16.41275259, 16.35187245, 16.29093621, 16.22994602, 16.16890403, 16.10781233, 16.04667304, 15.98548822, 15.92425994, 15.86299025, 15.80168118, 15.74033476, 15.678953, 15.6175379, 15.55609145, 15.49461565, 15.43311246, 15.37158385, 15.3100318, 15.24845824, 15.18686514, 15.12525443, 15.06362805, 15.00198794, 14.94033603, 14.87867422, 14.81700445, 14.75532863, 14.69364866, 14.63196645, 14.5702839, 14.50860291, 14.44692537, 14.38525316, 14.32358817, 14.26193227, 14.20028735, 14.13865528, 14.07703791, 14.01543712, 13.95385475, 13.89229267, 13.83075272, 13.76923675, 13.70774659, 13.64628408, 13.58485105, 13.52344933, 13.46208073, 13.40074707, 13.33945015, 13.27819179, 13.21697377, 13.1557979, 13.09466596, 13.03357973, 12.97254099, 12.9115515, 12.85061303, 12.78972733, 12.72889616, 12.66812127, 12.60740437, 12.54674722, 12.48615153, 12.42561902, 12.36515139, 12.30475036, 12.24441761, 12.18415484, 12.12396372, 12.06384593, 12.00380313, 11.94383698, 11.88394912, 11.82414121, 11.76441486, 11.70477171, 11.64521337, 11.58574145, 11.52635755, 11.46706325, 11.40786014, 11.34874979, 11.28973376, 11.23081361, 11.17199087, 11.1132671, 11.0546438, 10.9961225, 10.9377047, 10.8793919, 10.82118559, 10.76308723, 10.70509831, 10.64722027, 10.58945456, 10.53180261, 10.47426585, 10.4168457, 10.35954356, 10.30236082, 10.24529886, 10.18835906, 10.13154277, 10.07485135, 10.01828613, 9.96184844, 9.90553959, 9.84936089, 9.79331364, 9.73739911, 9.68161857, 9.62597328, 9.57046449, 9.51509343, 9.45986133, 9.40476938, 9.34981881, 9.29501078, 9.24034647, 9.18582705, 9.13145367, 9.07722745, 9.02314954, 8.96922104, 8.91544305, 8.86181666, 8.80834294, 8.75502296, 8.70185776, 8.64884839, 8.59599587, 8.54330121, 8.4907654, 8.43838945, 8.38617431, 8.33412094, 8.28223031, 8.23050333, 8.17894093, 8.12754402, 8.07631349, 8.02525023, 7.9743551, 7.92362896, 7.87307265, 7.822687, 7.77247283, 7.72243094, 7.67256211, 7.62286713, 7.57334676, 7.52400174, 7.47483281, 7.4258407, 7.37702611, 7.32838975, 7.27993229, 7.2316544, 7.18355675, 7.13563996, 7.08790468, 7.04035152, 6.99298108, 6.94579395, 6.89879071, 6.85197193, 6.80533814, 6.75888989, 6.71262771, 6.6665521, 6.62066355, 6.57496256, 6.5294496, 6.48412511, 6.43898955, 6.39404336, 6.34928693, 6.30472069, 6.26034503, 6.21616032, 6.17216693, 6.12836521, 6.08475551, 6.04133815, 5.99811346, 5.95508172, 5.91224324, 5.86959829, 5.82714713, 5.78489002, 5.74282719, 5.70095888, 5.65928529, 5.61780663, 5.5765231, 5.53543486, 5.49454209, 5.45384494, 5.41334354, 5.37303804, 5.33292854, 5.29301515, 5.25329797, 5.21377707, 5.17445253, 5.13532441, 5.09639275, 5.05765759, 5.01911896, 4.98077685, 4.94263129, 4.90468225, 4.86692971, 4.82937364, 4.79201401, 4.75485075, 4.7178838, 4.68111308, 4.64453851, 4.60815998, 4.5719774, 4.53599064, 4.50019957, 4.46460405, 4.42920394, 4.39399907, 4.35898927, 4.32417436, 4.28955416, 4.25512846, 4.22089706, 4.18685973, 4.15301624, 4.11936636, 4.08590984, 4.05264641, 4.01957582, 3.98669779, 3.95401203, 3.92151825, 3.88921615, 3.85710541, 3.82518572, 3.79345674, 3.76191813, 3.73056956, 3.69941066, 3.66844108, 3.63766044, 3.60706836, 3.57666446, 3.54644834, 3.51641959, 3.48657782, 3.45692259, 3.42745349, 3.39817008, 3.36907192, 3.34015856, 3.31142954, 3.28288441, 3.2545227, 3.22634392, 3.19834761, 3.17053326, 3.14290038, 3.11544847, 3.08817701, 3.06108551, 3.03417342, 3.00744023, 2.9808854, 2.9545084, 2.92830867, 2.90228566, 2.87643882, 2.85076759, 2.82527139, 2.79994966, 2.77480182, 2.74982727, 2.72502544, 2.70039572, 2.67593753, 2.65165025, 2.62753328, 2.603586, 2.5798078, 2.55619806, 2.53275614, 2.50948142, 2.48637326, 2.46343102, 2.44065407, 2.41804175, 2.39559341, 2.37330839, 2.35118605, 2.32922572, 2.30742673, 2.28578841, 2.26431009, 2.24299111, 2.22183077, 2.20082839, 2.1799833, 2.15929481, 2.13876222, 2.11838484, 2.09816199, 2.07809295, 2.05817703, 2.03841352, 2.01880173, 1.99934095, 1.98003045, 1.96086954, 1.9418575, 1.92299362, 1.90427717, 1.88570744, 1.86728371, 1.84900525, 1.83087134, 1.81288126, 1.79503428, 1.77732967, 1.75976671, 1.74234465, 1.72506278, 1.70792036, 1.69091665, 1.67405092, 1.65732243, 1.64073046, 1.62427426, 1.6079531, 1.59176623, 1.57571293, 1.55979245, 1.54400405, 1.52834699, 1.51282054, 1.49742396, 1.48215651, 1.46701744, 1.45200601, 1.4371215, 1.42236315, 1.40773024, 1.39322201, 1.37883774, 1.36457668, 1.3504381, 1.33642126, 1.32252542, 1.30874985, 1.29509381, 1.28155657, 1.26813739, 1.25483554, 1.2416503, 1.22858092, 1.21562668, 1.20278684, 1.19006069, 1.17744749, 1.16494652, 1.15255705, 1.14027837, 1.12810974, 1.11605045, 1.10409977, 1.092257, 1.08052141, 1.06889229, 1.05736893, 1.04595061, 1.03463663, 1.02342627, 1.01231884, 1.00131362, 0.99040991, 0.97960701, 0.96890422, 0.95830085, 0.9477962, 0.93738957, 0.92708028, 0.91686763, 0.90675094, 0.89672952, 0.88680269, 0.87696977, 0.86723008, 0.85758294, 0.84802768, 0.83856363, 0.82919011, 0.81990647, 0.81071203, 0.80160613, 0.79258812, 0.78365733, 0.77481311, 0.76605481, 0.75738178, 0.74879337, 0.74028893, 0.73186783, 0.72352941, 0.71527306, 0.70709812, 0.69900398, 0.69098999, 0.68305554, 0.6752, 0.66742274, 0.65972316, 0.65210063, 0.64455455, 0.6370843, 0.62968927, 0.62236887, 0.61512248, 0.60794952, 0.60084938, 0.59382148, 0.58686522, 0.57998001, 0.57316528, 0.56642044, 0.55974492, 0.55313813, 0.54659951, 0.54012849, 0.53372449, 0.52738697, 0.52111535, 0.51490908, 0.50876761, 0.50269038, 0.49667685, 0.49072647, 0.4848387, 0.47901301, 0.47324884, 0.46754568, 0.46190299, 0.45632024, 0.45079691, 0.44533249, 0.43992645, 0.43457827, 0.42928745, 0.42405349, 0.41887586, 0.41375407, 0.40868763, 0.40367603, 0.39871878, 0.3938154, 0.38896539, 0.38416827, 0.37942357, 0.3747308, 0.37008948, 0.36549916, 0.36095935, 0.35646959, 0.35202943, 0.3476384, 0.34329604, 0.33900191, 0.33475555, 0.33055651, 0.32640435, 0.32229864, 0.31823892, 0.31422478, 0.31025577, 0.30633146, 0.30245143, 0.29861526, 0.29482253, 0.29107282, 0.28736571, 0.2837008, 0.28007767, 0.27649593, 0.27295516, 0.26945498, 0.26599498, 0.26257477, 0.25919395, 0.25585215, 0.25254898, 0.24928405, 0.24605699, 0.24286742, 0.23971497, 0.23659926, 0.23351993, 0.23047662, 0.22746896, 0.22449659, 0.22155916, 0.21865631, 0.21578769, 0.21295296, 0.21015177, 0.20738378, 0.20464864, 0.20194603, 0.1992756, 0.19663702, 0.19402997, 0.19145412, 0.18890914, 0.18639472, 0.18391053, 0.18145626, 0.17903161, 0.17663624, 0.17426987, 0.17193218, 0.16962288, 0.16734165, 0.16508821, 0.16286225, 0.16066349, 0.15849164, 0.1563464, 0.1542275, 0.15213464, 0.15006756, 0.14802597, 0.14600959, 0.14401816, 0.1420514, 0.14010905, 0.13819084, 0.1362965, 0.13442578, 0.13257841, 0.13075414, 0.12895272, 0.1271739, 0.12541741, 0.12368303, 0.12197049, 0.12027957, 0.11861001, 0.11696158, 0.11533405, 0.11372718, 0.11214074, 0.11057449, 0.10902822, 0.10750169, 0.10599468, 0.10450698, 0.10303835, 0.10158859, 0.10015749, 0.09874481, 0.09735037, 0.09597394, 0.09461533, 0.09327432, 0.09195071, 0.0906443, 0.0893549, 0.0880823, 0.08682631, 0.08558674, 0.0843634, 0.0831561, 0.08196464, 0.08078885, 0.07962853, 0.07848352, 0.07735362, 0.07623866, 0.07513846, 0.07405285, 0.07298165, 0.0719247, 0.07088182, 0.06985285, 0.06883761, 0.06783595, 0.0668477, 0.06587271, 0.0649108, 0.06396183, 0.06302564, 0.06210206, 0.06119096, 0.06029218, 0.05940556, 0.05853097, 0.05766824, 0.05681725, 0.05597784, 0.05514988, 0.05433321, 0.05352771, 0.05273324, 0.05194965, 0.05117682, 0.05041461, 0.04966289, 0.04892153, 0.04819039, 0.04746936, 0.04675831, 0.04605711, 0.04536563, 0.04468376, 0.04401138, 0.04334836, 0.04269459, 0.04204995, 0.04141432, 0.04078759, 0.04016965, 0.03956039, 0.03895969, 0.03836744, 0.03778355, 0.03720789, 0.03664037, 0.03608088, 0.03552931, 0.03498557, 0.03444956, 0.03392117, 0.0334003, 0.03288686, 0.03238076, 0.03188188, 0.03139016, 0.03090547, 0.03042775, 0.02995689, 0.0294928, 0.02903541, 0.02858461, 0.02814032, 0.02770245, 0.02727093, 0.02684566, 0.02642657, 0.02601357, 0.02560658, 0.02520552, 0.02481031, 0.02442088, 0.02403714, 0.02365902, 0.02328645, 0.02291935, 0.02255764, 0.02220126, 0.02185013, 0.02150418, 0.02116334, 0.02082754, 0.02049672, 0.0201708, 0.01984972, 0.01953341, 0.01922181, 0.01891486, 0.01861248, 0.01831462, 0.01802122, 0.01773221, 0.01744753, 0.01716712, 0.01689093, 0.01661889, 0.01635096, 0.01608706, 0.01582715, 0.01557117, 0.01531906, 0.01507078, 0.01482626, 0.01458546, 0.01434832, 0.01411479, 0.01388482, 0.01365836, 0.01343537, 0.01321578, 0.01299956, 0.01278666, 0.01257702, 0.01237061, 0.01216738, 0.01196728, 0.01177026, 0.01157629, 0.01138532, 0.0111973, 0.0110122, 0.01082997, 0.01065057, 0.01047396, 0.01030011, 0.01012896, 0.00996049, 0.00979465, 0.0096314, 0.00947071, 0.00931254, 0.00915685, 0.00900361, 0.00885278, 0.00870433, 0.00855822, 0.00841442, 0.00827289, 0.0081336, 0.00799651, 0.00786161, 0.00772884, 0.00759818, 0.00746961, 0.00734308, 0.00721857, 0.00709605, 0.00697549, 0.00685686, 0.00674013, 0.00662527, 0.00651226, 0.00640106, 0.00629166, 0.00618401, 0.00607811, 0.00597391, 0.0058714, 0.00577055, 0.00567133, 0.00557372, 0.0054777, 0.00538324, 0.00529031, 0.0051989, 0.00510898, 0.00502053, 0.00493353, 0.00484795, 0.00476377, 0.00468098, 0.00459954, 0.00451944, 0.00444066, 0.00436318, 0.00428697, 0.00421202, 0.00413832, 0.00406583, 0.00399454, 0.00392443, 0.00385549, 0.0037877, 0.00372103, 0.00365547, 0.003591, 0.00352761, 0.00346528, 0.003404, 0.00334374, 0.00328448, 0.00322623, 0.00316895, 0.00311263, 0.00305727, 0.00300283, 0.00294932, 0.0028967, 0.00284498, 0.00279413, 0.00274415, 0.00269501, 0.0026467, 0.00259922, 0.00255254, 0.00250666, 0.00246156, 0.00241723, 0.00237366, 0.00233084, 0.00228874, 0.00224737, 0.00220671, 0.00216674, 0.00212747, 0.00208886, 0.00205093, 0.00201365, 0.00197701, 0.001941, 0.00190562, 0.00187085, 0.00183668, 0.00180311, 0.00177012, 0.0017377, 0.00170585, 0.00167455, 0.0016438, 0.00161358, 0.00158389, 0.00155472, 0.00152607, 0.00149791, 0.00147025, 0.00144308, 0.00141638, 0.00139015, 0.00136439, 0.00133907, 0.00131421, 0.00128979, 0.00126579, 0.00124223, 0.00121908, 0.00119634, 0.001174, 0.00115206, 0.00113051, 0.00110935, 0.00108856, 0.00106815, 0.0010481, 0.00102841, 0.00100907, 0.00099007, 0.00097142, 0.0009531, 0.00093512, 0.00091745, 0.0009001, 0.00088307, 0.00086635, 0.00084992, 0.00083379, 0.00081796, 0.00080241, 0.00078714, 0.00077215, 0.00075744, 0.00074299, 0.0007288, 0.00071487, 0.0007012, 0.00068778, 0.0006746, 0.00066166, 0.00064896, 0.00063649, 0.00062425, 0.00061224, 0.00060045, 0.00058887, 0.00057751, 0.00056635, 0.0005554, 0.00054466, 0.00053411, 0.00052376, 0.0005136, 0.00050363, 0.00049384, 0.00048424, 0.00047481, 0.00046556, 0.00045648, 0.00044757, 0.00043883, 0.00043025, 0.00042183, 0.00041357, 0.00040546, 0.00039751, 0.0003897, 0.00038205, 0.00037453, 0.00036716, 0.00035992, 0.00035283, 0.00034586, 0.00033903, 0.00033233, 0.00032575, 0.0003193, 0.00031297, 0.00030676, 0.00030067, 0.0002947, 0.00028884, 0.00028309, 0.00027745, 0.00027191, 0.00026649, 0.00026116, 0.00025594, 0.00025082, 0.0002458, 0.00024087, 0.00023604, 0.0002313, 0.00022666, 0.0002221, 0.00021763, 0.00021324, 0.00020895, 0.00020473, 0.0002006, 0.00019654, 0.00019257, 0.00018867, 0.00018484, 0.0001811, 0.00017742, 0.00017382, 0.00017028, 0.00016682, 0.00016342, 0.00016009, 0.00015683, 0.00015362, 0.00015049, 0.00014741, 0.00014439, 0.00014144, 0.00013854, 0.00013569, 0.00013291, 0.00013018, 0.0001275, 0.00012488, 0.0001223, 0.00011978, 0.00011731, 0.00011489, 0.00011251, 0.00011019, 0.0001079, 0.00010567, 0.00010348, 0.00010133, 0.00009923, 0.00009716, 0.00009514, 0.00009316, 0.00009122, 0.00008932, 0.00008745, 0.00008563, 0.00008384, 0.00008208, 0.00008036, 0.00007868, 0.00007703, 0.00007541, 0.00007383, 0.00007228, 0.00007076, 0.00006927, 0.00006781, 0.00006638, 0.00006498, 0.0000636, 0.00006226, 0.00006094, 0.00005965, 0.00005839, 0.00005715, 0.00005594, 0.00005475, 0.00005358, 0.00005244, 0.00005133, 0.00005023, 0.00004916, 0.00004811, 0.00004709, 0.00004608, 0.00004509, 0.00004413, 0.00004318, 0.00004226, 0.00004135, 0.00004046, 0.00003959, 0.00003874, 0.00003791, 0.00003709, 0.00003629, 0.00003551, 0.00003474, 0.00003399, 0.00003325, 0.00003253, 0.00003183, 0.00003114, 0.00003046, 0.0000298, 0.00002915, 0.00002852, 0.0000279, 0.00002729, 0.0000267, 0.00002611, 0.00002554, 0.00002499, 0.00002444, 0.0000239, 0.00002338, 0.00002287, 0.00002237, 0.00002188, 0.00002139, 0.00002092, 0.00002046, 0.00002001, 0.00001957, 0.00001914, 0.00001872, 0.0000183, 0.0000179, 0.0000175, 0.00001712, 0.00001674, 0.00001637, 0.000016, 0.00001565, 0.0000153, 0.00001496, 0.00001463, 0.0000143, 0.00001398, 0.00001367, 0.00001337, 0.00001307, 0.00001277, 0.00001249, 0.00001221, 0.00001194, 0.00001167, 0.00001141, 0.00001115, 0.0000109, 0.00001065, 0.00001041, 0.00001018, 9.95046344e-06, 9.72598635e-06, 9.50640919e-06, 9.29162883e-06, 9.08154425e-06, 8.87605644e-06, 8.6750684e-06, 8.47848511e-06, 8.28621347e-06, 8.09816225e-06, 7.9142421e-06, 7.73436548e-06, 7.55844663e-06, 7.38640151e-06, 7.21814786e-06, 7.05360503e-06, 6.89269406e-06, 6.73533759e-06, 6.58145984e-06, 6.43098659e-06, 6.28384514e-06, 6.13996427e-06, 5.99927425e-06, 5.86170677e-06, 5.72719492e-06, 5.59567316e-06, 5.46707732e-06, 5.34134456e-06, 5.21841331e-06, 5.0982233e-06, 4.98071549e-06, 4.86583208e-06, 4.75351645e-06, 4.64371317e-06, 4.53636794e-06, 4.43142763e-06, 4.32884015e-06, 4.22855456e-06, 4.13052096e-06, 4.03469046e-06, 3.94101525e-06, 3.84944848e-06, 3.75994426e-06, 3.67245771e-06, 3.58694487e-06, 3.50336269e-06, 3.42166905e-06, 3.34182269e-06, 3.26378323e-06, 3.18751114e-06, 3.11296772e-06, 3.04011508e-06, 2.96891615e-06, 2.89933462e-06, 2.83133495e-06, 2.7648824e-06, 2.69994287e-06, 2.63648309e-06, 2.5744704e-06, 2.51387293e-06, 2.45465939e-06, 2.39679923e-06, 2.34026251e-06, 2.28501996e-06, 2.2310429e-06, 2.17830328e-06, 2.12677364e-06, 2.07642712e-06, 2.02723746e-06, 1.97917889e-06, 1.93222625e-06, 1.88635492e-06, 1.84154078e-06, 1.79776025e-06, 1.75499025e-06, 1.71320821e-06, 1.672392e-06, 1.63252004e-06, 1.59357116e-06, 1.55552465e-06, 1.51836031e-06, 1.48205828e-06, 1.44659923e-06, 1.41196416e-06, 1.37813454e-06, 1.34509224e-06, 1.31281949e-06, 1.28129894e-06, 1.25051359e-06, 1.22044685e-06, 1.19108245e-06, 1.16240449e-06, 1.13439742e-06, 1.10704606e-06, 1.08033551e-06, 1.05425121e-06, 1.02877895e-06, 1.0039048e-06, 9.79615152e-07, 9.55896695e-07, 9.32736398e-07, 9.10121543e-07, 8.88039651e-07, 8.66478572e-07, 8.45426385e-07, 8.24871449e-07, 8.04802369e-07, 7.85208002e-07, 7.66077477e-07, 7.47400136e-07, 7.29165563e-07, 7.11363583e-07, 6.93984234e-07, 6.77017795e-07, 6.60454759e-07, 6.44285791e-07, 6.28501823e-07, 6.13093945e-07, 5.98053461e-07, 5.83371886e-07, 5.69040907e-07, 5.55052395e-07, 5.41398407e-07, 5.28071183e-07, 5.15063135e-07, 5.02366831e-07, 4.89975037e-07, 4.77880661e-07, 4.6607677e-07, 4.54556584e-07, 4.43313496e-07, 4.32341039e-07, 4.21632876e-07, 4.11182825e-07, 4.0098486e-07, 3.91033069e-07, 3.81321669e-07, 3.71845047e-07, 3.62597675e-07, 3.53574166e-07, 3.44769262e-07, 3.3617782e-07, 3.27794808e-07, 3.19615324e-07, 3.11634551e-07, 3.03847827e-07, 2.96250533e-07, 2.88838223e-07, 2.81606518e-07, 2.74551113e-07, 2.67667872e-07, 2.60952689e-07, 2.54401584e-07, 2.4801065e-07, 2.41776092e-07, 2.35694202e-07, 2.29761326e-07, 2.23973927e-07, 2.18328537e-07, 2.1282176e-07, 2.07450299e-07, 2.02210927e-07, 1.97100462e-07, 1.92115849e-07, 1.87254059e-07, 1.82512153e-07, 1.77887244e-07, 1.73376549e-07, 1.68977323e-07, 1.64686867e-07, 1.6050258e-07, 1.56421905e-07, 1.5244234e-07, 1.48561469e-07, 1.44776891e-07, 1.41086275e-07, 1.37487376e-07, 1.33977977e-07, 1.3055589e-07, 1.2721901e-07, 1.23965279e-07, 1.20792691e-07, 1.17699258e-07, 1.14683061e-07, 1.11742239e-07, 1.08874943e-07, 1.06079383e-07, 1.03353827e-07, 1.00696553e-07, 9.81059145e-08, 9.55802761e-08, 9.31180466e-08, 9.07176769e-08, 8.83776607e-08, 8.60965201e-08, 8.38728056e-08, 8.17051102e-08, 7.95920698e-08, 7.75323485e-08, 7.55246106e-08, 7.35676053e-08, 7.16600539e-08, 6.98007767e-08, 6.79885659e-08, 6.62222561e-08, 6.45007106e-08, 6.28228491e-08, 6.11875777e-08, 5.95938303e-08, 5.80405981e-08, 5.65268863e-08, 5.50516859e-08, 5.3614059e-08, 5.22130819e-08, 5.08478308e-08, 4.95174248e-08, 4.8220997e-08, 4.69576946e-08, 4.57266935e-08, 4.45272121e-08, 4.33584262e-08, 4.22196109e-08, 4.11099847e-08, 4.00288371e-08, 3.89754433e-08, 3.7949107e-08, 3.69491744e-08, 3.59749635e-08, 3.50258347e-08, 3.41011628e-08, 3.32003225e-08, 3.23227169e-08, 3.14677777e-08, 3.06349079e-08, 2.98235818e-08, 2.90332309e-08, 2.82633437e-08, 2.75133942e-08, 2.67828852e-08, 2.60713193e-08, 2.53782133e-08, 2.47031124e-08, 2.40455478e-08, 2.3405093e-08, 2.27813075e-08, 2.21737508e-08, 2.15820393e-08, 2.10057465e-08, 2.04444888e-08, 1.98978825e-08, 1.9365558e-08, 1.88471461e-08, 1.83422912e-08, 1.78506667e-08, 1.7371903e-08, 1.69057017e-08, 1.64517218e-08, 1.60096505e-08, 1.55792037e-08, 1.51600545e-08, 1.4751933e-08, 1.43545549e-08, 1.39676359e-08, 1.35909062e-08, 1.32241098e-08, 1.28670052e-08, 1.25193083e-08, 1.21808057e-08, 1.1851256e-08, 1.15304175e-08, 1.12180629e-08, 1.09139933e-08, 1.06179812e-08, 1.03298134e-08, 1.00493054e-08, 9.7762296e-09, 9.51041557e-09, 9.25167853e-09, 8.99981956e-09, 8.75465389e-09, 8.51603943e-09, 8.28377722e-09, 8.05769673e-09, 7.83767007e-09, 7.62351249e-09, 7.41508188e-09, 7.21222193e-09, 7.01479053e-09, 6.82264556e-09, 6.63564492e-09, 6.45367493e-09, 6.27656505e-09, 6.10423001e-09, 5.9365135e-09, 5.77330184e-09, 5.61449554e-09, 5.45995249e-09, 5.30957323e-09, 5.16324405e-09, 5.0208655e-09, 4.88232388e-09, 4.74751971e-09, 4.61636773e-09, 4.48875426e-09, 4.36459402e-09, 4.24380175e-09, 4.12627799e-09, 4.01193745e-09, 3.90069488e-09, 3.79247922e-09, 3.687191e-09, 3.58477337e-09, 3.48514106e-09, 3.38820882e-09, 3.2939198e-09, 3.20220295e-09, 3.1129872e-09, 3.02620151e-09, 2.94178903e-09, 2.85967872e-09, 2.77981371e-09, 2.70213718e-09, 2.62657807e-09, 2.55307953e-09, 2.48161314e-09, 2.41209364e-09, 2.3444926e-09, 2.27873898e-09, 2.21479013e-09, 2.15258922e-09, 2.09212203e-09, 2.0333033e-09, 1.97610461e-09, 1.92048333e-09, 1.86639681e-09, 1.81380244e-09, 1.76265758e-09, 1.71291958e-09, 1.66457426e-09, 1.61755054e-09, 1.57183422e-09, 1.52738266e-09, 1.48415324e-09, 1.44213175e-09, 1.40127554e-09, 1.3615562e-09, 1.3229311e-09, 1.28538602e-09, 1.24887833e-09, 1.21339383e-09, 1.17888987e-09, 1.14535226e-09, 1.11275256e-09, 1.08106235e-09, 1.05025322e-09, 1.02031095e-09, 9.91192906e-10, 9.62899094e-10, 9.35386879e-10, 9.08656261e-10, 8.82664608e-10, 8.57411919e-10, 8.32855562e-10, 8.08995537e-10, 7.85803422e-10, 7.63265007e-10, 7.41351869e-10, 7.20064008e-10, 6.99373004e-10, 6.79264645e-10, 6.59724719e-10, 6.40739017e-10, 6.22293328e-10, 6.04359229e-10, 5.86922511e-10, 5.69997383e-10, 5.53541213e-10, 5.37554001e-10, 5.22021537e-10, 5.06915399e-10, 4.92249796e-10, 4.77996309e-10, 4.64154937e-10, 4.50697257e-10, 4.37623271e-10, 4.24932978e-10, 4.12583745e-10, 4.00603994e-10, 3.88965304e-10, 3.77639253e-10, 3.66654263e-10, 3.55981911e-10, 3.45607987e-10, 3.35532491e-10, 3.25741212e-10, 3.1623415e-10, 3.06997094e-10, 2.98030045e-10, 2.89318791e-10, 2.80849122e-10, 2.72635248e-10, 2.64648747e-10, 2.56889621e-10, 2.49357868e-10, 2.42039278e-10, 2.3493385e-10, 2.28041586e-10, 2.21334062e-10, 2.14825491e-10, 2.08515871e-10, 2.02376782e-10, 1.96408223e-10, 1.90624405e-10, 1.84996907e-10, 1.79539938e-10, 1.7423929e-10, 1.6909496e-10, 1.64092739e-10, 1.59246838e-10, 1.54528834e-10, 1.49952939e-10, 1.45519152e-10, 1.41199052e-10, 1.37021061e-10, 1.32956757e-10, 1.29006139e-10, 1.25169208e-10, 1.21445964e-10, 1.17836407e-10, 1.14326326e-10, 1.10929932e-10, 1.07618803e-10, 1.0442136e-10, 1.01294972e-10, 9.82822712e-11, 9.53406243e-11, 9.24984533e-11, 8.97273367e-11, 8.70414851e-11, 8.44408987e-11, 8.19113666e-11, 7.94670996e-11, 7.7079676e-11, 7.47633067e-11, 7.25179916e-11, 7.03437308e-11, 6.82263135e-11, 6.61799504e-11, 6.41904307e-11, 6.22577545e-11, 6.03819217e-11, 5.85629323e-11, 5.68007863e-11, 5.50812729e-11, 5.34328137e-11, 5.18127763e-11, 5.02495823e-11, 4.87290208e-11, 4.72510919e-11, 4.58300065e-11, 4.44373427e-11, 4.30873115e-11, 4.17799129e-11, 4.05151468e-11, 3.92930133e-11, 3.80993015e-11, 3.69340114e-11, 3.58113539e-11, 3.47313289e-11, 3.36655148e-11, 3.26423333e-11, 3.16475735e-11, 3.06812353e-11, 2.97575298e-11, 2.88480351e-11, 2.79669621e-11, 2.71143108e-11, 2.62758704e-11, 2.54800625e-11, 2.46984655e-11, 2.39452902e-11, 2.32063257e-11, 2.2495783e-11, 2.1813662e-11, 2.1131541e-11, 2.04920525e-11, 1.98667749e-11, 1.92557081e-11, 1.86588522e-11, 1.80904181e-11, 1.75219839e-11, 1.69819714e-11, 1.64703806e-11, 1.59587898e-11, 1.54614099e-11, 1.49924517e-11, 1.45234935e-11, 1.40687462e-11, 1.36424205e-11, 1.32160949e-11, 1.28039801e-11, 1.24060762e-11, 1.20223831e-11, 1.16529009e-11, 1.12976295e-11, 1.09423581e-11, 1.06012976e-11, 1.0274448e-11, 9.96180916e-12, 9.64917035e-12, 9.3507424e-12, 9.05231445e-12, 8.76809736e-12, 8.49809112e-12, 8.22808488e-12, 7.9722895e-12, 7.73070497e-12, 7.48912043e-12, 7.2475359e-12, 7.02016223e-12, 6.80699941e-12, 6.59383659e-12, 6.38067377e-12, 6.1817218e-12, 5.99698069e-12, 5.81223958e-12, 5.62749847e-12, 5.44275736e-12, 5.2722271e-12, 5.1159077e-12, 4.94537744e-12, 4.78905804e-12, 4.64694949e-12, 4.49063009e-12, 4.34852154e-12, 4.22062385e-12, 4.0785153e-12, 3.95061761e-12, 3.83693077e-12, 3.70903308e-12, 3.59534624e-12, 3.48165941e-12, 3.36797257e-12, 3.26849658e-12, 3.15480975e-12, 3.05533376e-12, 2.95585778e-12, 2.87059265e-12, 2.77111667e-12, 2.68585154e-12, 2.60058641e-12, 2.51532128e-12, 2.44426701e-12, 2.35900188e-12, 2.28794761e-12, 2.21689334e-12, 2.14583906e-12, 2.07478479e-12, 2.00373051e-12, 1.9468871e-12, 1.87583282e-12, 1.8189894e-12, 1.76214598e-12, 1.70530257e-12, 1.64845915e-12, 1.60582658e-12, 1.54898316e-12, 1.49213975e-12, 1.44950718e-12, 1.40687462e-12, 1.36424205e-12, 1.32160949e-12, 1.27897692e-12, 1.23634436e-12, 1.1937118e-12, 1.15107923e-12, 1.12265752e-12, 1.08002496e-12, 1.05160325e-12, 1.00897068e-12, 9.80548975e-13, 9.52127266e-13, 9.23705556e-13, 8.81072992e-13, 8.52651283e-13, 8.24229573e-13, 8.10018719e-13, 7.81597009e-13, 7.531753e-13, 7.2475359e-13, 7.10542736e-13, 6.82121026e-13, 6.53699317e-13, 6.39488462e-13, 6.11066753e-13, 5.96855898e-13, 5.82645043e-13, 5.54223334e-13, 5.40012479e-13, 5.25801624e-13, 5.1159077e-13, 4.8316906e-13, 4.68958206e-13, 4.54747351e-13, 4.40536496e-13, 4.26325641e-13, 4.12114787e-13, 3.97903932e-13, 3.83693077e-13, 3.69482223e-13, 3.69482223e-13, 3.55271368e-13, 3.41060513e-13, 3.26849658e-13, 3.12638804e-13, 3.12638804e-13, 2.98427949e-13, 2.84217094e-13, 2.84217094e-13, 2.7000624e-13, 2.55795385e-13, 2.55795385e-13, 2.4158453e-13, 2.4158453e-13, 2.27373675e-13, 2.13162821e-13, 2.13162821e-13, 1.98951966e-13, 1.98951966e-13, 1.98951966e-13, 1.84741111e-13, 1.84741111e-13, 1.70530257e-13, 1.70530257e-13, 1.56319402e-13, 1.56319402e-13, 1.56319402e-13, 1.42108547e-13, 1.42108547e-13, 1.42108547e-13, 1.27897692e-13, 1.27897692e-13, 1.27897692e-13, 1.13686838e-13, 1.13686838e-13, 1.13686838e-13, 1.13686838e-13, 9.9475983e-14, 9.9475983e-14, 9.9475983e-14, 9.9475983e-14, 8.52651283e-14, 8.52651283e-14, 8.52651283e-14, 8.52651283e-14, 8.52651283e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 7.10542736e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 5.68434189e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 4.26325641e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 2.84217094e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 1.42108547e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.79569211, 6.79947831, 6.80579286, 6.81464211, 6.82603496, 6.83998286, 6.85649984, 6.87560252, 6.89731014, 6.92164457, 6.94863035, 6.97829472, 7.01066764, 7.04578185, 7.08367287, 7.12437911, 7.16794185, 7.21440533, 7.26381677, 7.31622647, 7.37168784, 7.43025745, 7.49199514, 7.55696405, 7.62523069, 7.69686505, 7.77194062, 7.85053454, 7.93272761, 8.01860443, 8.10825344, 8.20176706, 8.29924171, 8.40077798, 8.50648065, 8.61645882, 8.73082602, 8.84970023, 8.97320408, 9.10146483, 9.23461453, 9.3727901, 9.51613338, 9.66479124, 9.81891564, 9.97866371, 10.14419781, 10.31568558, 10.4933, 10.67721939, 10.86762747, 11.06471339, 11.26867164, 11.47970214, 11.69801009, 11.92380599, 12.15730555, 12.39872951, 12.64830358, 12.90625825, 13.17282855, 13.44825389, 13.73277768, 14.02664712, 14.33011275, 14.64342807, 14.96684909, 15.30063376, 15.64504145, 16.00033223, 16.36676624, 16.74460284, 17.1340998, 17.53551234, 17.94909216, 18.3750863, 18.81373602, 19.26527552, 19.72993059, 20.20791721, 20.69944001, 21.20469073, 21.72384649, 22.25706809, 22.80449816, 23.36625929, 23.94245213, 24.53315333, 25.1384136, 25.75825562, 26.39267201, 27.04162328, 27.70503584, 28.38280001, 29.07476813, 29.78075278, 30.50052505, 31.23381303, 31.98030043, 32.73962537, 33.51137946, 34.29510705, 35.09030485, 35.89642173, 36.71285897, 37.53897076, 38.37406509, 39.21740504, 40.06821042, 40.92565985, 41.78889312, 42.65701411, 43.52909393, 44.40417449, 45.28127243, 46.1593833, 47.03748606, 47.91454781, 48.78952873, 49.66138712, 50.52908459, 51.3915913, 52.24789112, 53.09698681, 53.93790503, 54.76970116, 55.59146396, 56.40231989, 57.20143715, 57.98802934, 58.76135873, 59.52073912, 60.26553828, 60.99517986, 61.70914494, 62.40697303, 63.08826264, 63.75267143, 64.39991587, 65.02977056, 65.64206705, 66.23669249, 66.81358776, 67.37274542, 67.91420742, 68.43806255, 68.9444437, 69.43352506, 69.9055191, 70.36067361, 70.79926857, 71.22161313, 71.62804252, 72.01891506, 72.3946092, 72.75552071, 73.10205985, 73.43464884, 73.75371926, 74.05970974, 74.35306374, 74.63422745, 74.9036479, 75.16177117, 75.40904079, 75.64589628, 75.8727718, 76.09009502, 76.29828602, 76.49775642, 76.68890858, 76.8721349, 77.04781729, 77.21632671, 77.37802274, 77.53325339, 77.68235483, 77.82565128, 77.96345498, 78.09606614, 78.22377302, 78.34685202, 78.46556784, 78.58017363, 78.69091121, 78.79801133, 78.90169391, 79.00216831, 79.09963367, 79.19427915, 79.28628433, 79.37581948, 79.46304589, 79.54811624, 79.6311749, 79.71235829, 79.79179518, 79.86960703, 79.94590832, 80.02080686, 80.09440407, 80.16679534, 80.23807027, 80.30831297, 80.37760234, 80.44601234, 80.51361225, 80.58046689, 80.64663688, 80.71217889, 80.77714582, 80.84158702, 80.90554852, 80.96907317, 81.03220088, 81.09496875, 81.15741128, 81.21956047, 81.28144602, 81.34309545, 81.40453425, 81.46578599, 81.52687244, 81.5878137, 81.6486283, 81.70933332, 81.76994445, 81.83047609, 81.89094148, 81.95135271, 82.01172086, 82.07205602, 82.13236739, 82.19266332, 82.25295141, 82.31323849, 82.37353075, 82.43383374, 82.49415243, 82.55449126, 82.61485417, 82.67524461, 82.73566564, 82.79611989, 82.85660966, 82.91713687, 82.97770314, 83.03830983, 83.09895799, 83.15964844, 83.22038177, 83.28115838, 83.34197844, 83.40284197, 83.46374882, 83.52469868, 83.58569112, 83.64672556, 83.70780131, 83.76891759, 83.83007351, 83.89126808, 83.95250024, 84.01376884, 84.07507269, 84.13641051, 84.19778097, 84.25918269, 84.32061425, 84.38207416, 84.44356092, 84.50507297, 84.56660875, 84.62816663, 84.68974498, 84.75134214, 84.81295642, 84.87458613, 84.93622954, 84.99788492, 85.05955051, 85.12122456, 85.18290529, 85.24459092, 85.30627966, 85.36796971, 85.42965927, 85.49134652, 85.55302965, 85.61470685, 85.67637629, 85.73803614, 85.7996846, 85.86131983, 85.92294, 85.98454329, 86.04612787, 86.10769193, 86.16923364, 86.23075117, 86.29224272, 86.35370646, 86.41514058, 86.47654327, 86.53791274, 86.59924716, 86.66054475, 86.72180371, 86.78302226, 86.8441986, 86.90533095, 86.96641755, 87.02745662, 87.08844639, 87.14938512, 87.21027103, 87.2711024, 87.33187747, 87.39259452, 87.4532518, 87.51384761, 87.57438023, 87.63484795, 87.69524906, 87.75558188, 87.81584472, 87.87603589, 87.93615373, 87.99619657, 88.05616276, 88.11605065, 88.17585859, 88.23558497, 88.29522814, 88.3547865, 88.41425843, 88.47364235, 88.53293666, 88.59213979, 88.65125015, 88.71026618, 88.76918634, 88.82800908, 88.88673287, 88.94535617, 89.00387747, 89.06229528, 89.12060808, 89.1788144, 89.23691275, 89.29490168, 89.35277972, 89.41054543, 89.46819738, 89.52573414, 89.58315429, 89.64045643, 89.69763918, 89.75470113, 89.81164094, 89.86845723, 89.92514865, 89.98171387, 90.03815156, 90.09446041, 90.1506391, 90.20668636, 90.26260089, 90.31838143, 90.37402672, 90.42953551, 90.48490657, 90.54013867, 90.59523061, 90.65018119, 90.70498922, 90.75965353, 90.81417295, 90.86854633, 90.92277255, 90.97685046, 91.03077896, 91.08455695, 91.13818334, 91.19165706, 91.24497704, 91.29814224, 91.35115161, 91.40400413, 91.45669879, 91.5092346, 91.56161055, 91.61382569, 91.66587906, 91.71776969, 91.76949667, 91.82105907, 91.87245598, 91.92368651, 91.97474977, 92.0256449, 92.07637104, 92.12692735, 92.177313, 92.22752717, 92.27756906, 92.32743789, 92.37713287, 92.42665324, 92.47599826, 92.52516719, 92.5741593, 92.62297389, 92.67161025, 92.72006771, 92.7683456, 92.81644325, 92.86436004, 92.91209532, 92.95964848, 93.00701892, 93.05420605, 93.10120929, 93.14802807, 93.19466186, 93.24111011, 93.28737229, 93.3334479, 93.37933645, 93.42503744, 93.4705504, 93.51587489, 93.56101045, 93.60595664, 93.65071307, 93.69527931, 93.73965497, 93.78383968, 93.82783307, 93.87163479, 93.91524449, 93.95866185, 94.00188654, 94.04491828, 94.08775676, 94.13040171, 94.17285287, 94.21510998, 94.25717281, 94.29904112, 94.34071471, 94.38219337, 94.4234769, 94.46456514, 94.50545791, 94.54615506, 94.58665646, 94.62696196, 94.66707146, 94.70698485, 94.74670203, 94.78622293, 94.82554747, 94.86467559, 94.90360725, 94.94234241, 94.98088104, 95.01922315, 95.05736871, 95.09531775, 95.13307029, 95.17062636, 95.20798599, 95.24514925, 95.2821162, 95.31888692, 95.35546149, 95.39184002, 95.4280226, 95.46400936, 95.49980043, 95.53539595, 95.57079606, 95.60600093, 95.64101073, 95.67582564, 95.71044584, 95.74487154, 95.77910294, 95.81314027, 95.84698376, 95.88063364, 95.91409016, 95.94735359, 95.98042418, 96.01330221, 96.04598797, 96.07848175, 96.11078385, 96.14289459, 96.17481428, 96.20654326, 96.23808187, 96.26943044, 96.30058934, 96.33155892, 96.36233956, 96.39293164, 96.42333554, 96.45355166, 96.48358041, 96.51342218, 96.54307741, 96.57254651, 96.60182992, 96.63092808, 96.65984144, 96.68857046, 96.71711559, 96.7454773, 96.77365608, 96.80165239, 96.82946674, 96.85709962, 96.88455153, 96.91182299, 96.93891449, 96.96582658, 96.99255977, 97.0191146, 97.0454916, 97.07169133, 97.09771434, 97.12356118, 97.14923241, 97.17472861, 97.20005034, 97.22519818, 97.25017273, 97.27497456, 97.29960428, 97.32406247, 97.34834975, 97.37246672, 97.396414, 97.4201922, 97.44380194, 97.46724386, 97.49051858, 97.51362674, 97.53656898, 97.55934593, 97.58195825, 97.60440659, 97.62669161, 97.64881395, 97.67077428, 97.69257327, 97.71421159, 97.73568991, 97.75700889, 97.77816923, 97.79917161, 97.8200167, 97.84070519, 97.86123778, 97.88161516, 97.90183801, 97.92190705, 97.94182297, 97.96158648, 97.98119827, 98.00065905, 98.01996955, 98.03913046, 98.0581425, 98.07700638, 98.09572283, 98.11429256, 98.13271629, 98.15099475, 98.16912866, 98.18711874, 98.20496572, 98.22267033, 98.24023329, 98.25765535, 98.27493722, 98.29207964, 98.30908335, 98.32594908, 98.34267757, 98.35926954, 98.37572574, 98.3920469, 98.40823377, 98.42428707, 98.44020755, 98.45599595, 98.47165301, 98.48717946, 98.50257604, 98.51784349, 98.53298256, 98.54799399, 98.5628785, 98.57763685, 98.59226976, 98.60677799, 98.62116226, 98.63542332, 98.6495619, 98.66357874, 98.67747458, 98.69125015, 98.70490619, 98.71844343, 98.73186261, 98.74516446, 98.7583497, 98.77141908, 98.78437332, 98.79721316, 98.80993931, 98.82255251, 98.83505348, 98.84744295, 98.85972163, 98.87189026, 98.88394955, 98.89590023, 98.907743, 98.91947859, 98.93110771, 98.94263107, 98.95404939, 98.96536337, 98.97657373, 98.98768116, 98.99868638, 99.00959009, 99.02039299, 99.03109578, 99.04169915, 99.0522038, 99.06261043, 99.07291972, 99.08313237, 99.09324906, 99.10327048, 99.11319731, 99.12303023, 99.13276992, 99.14241706, 99.15197232, 99.16143637, 99.17080989, 99.18009353, 99.18928797, 99.19839387, 99.20741188, 99.21634267, 99.22518689, 99.23394519, 99.24261822, 99.25120663, 99.25971107, 99.26813217, 99.27647059, 99.28472694, 99.29290188, 99.30099602, 99.30901001, 99.31694446, 99.3248, 99.33257726, 99.34027684, 99.34789937, 99.35544545, 99.3629157, 99.37031073, 99.37763113, 99.38487752, 99.39205048, 99.39915062, 99.40617852, 99.41313478, 99.42001999, 99.42683472, 99.43357956, 99.44025508, 99.44686187, 99.45340049, 99.45987151, 99.46627551, 99.47261303, 99.47888465, 99.48509092, 99.49123239, 99.49730962, 99.50332315, 99.50927353, 99.5151613, 99.52098699, 99.52675116, 99.53245432, 99.53809701, 99.54367976, 99.54920309, 99.55466751, 99.56007355, 99.56542173, 99.57071255, 99.57594651, 99.58112414, 99.58624593, 99.59131237, 99.59632397, 99.60128122, 99.6061846, 99.61103461, 99.61583173, 99.62057643, 99.6252692, 99.62991052, 99.63450084, 99.63904065, 99.64353041, 99.64797057, 99.6523616, 99.65670396, 99.66099809, 99.66524445, 99.66944349, 99.67359565, 99.67770136, 99.68176108, 99.68577522, 99.68974423, 99.69366854, 99.69754857, 99.70138474, 99.70517747, 99.70892718, 99.71263429, 99.7162992, 99.71992233, 99.72350407, 99.72704484, 99.73054502, 99.73400502, 99.73742523, 99.74080605, 99.74414785, 99.74745102, 99.75071595, 99.75394301, 99.75713258, 99.76028503, 99.76340074, 99.76648007, 99.76952338, 99.77253104, 99.77550341, 99.77844084, 99.78134369, 99.78421231, 99.78704704, 99.78984823, 99.79261622, 99.79535136, 99.79805397, 99.8007244, 99.80336298, 99.80597003, 99.80854588, 99.81109086, 99.81360528, 99.81608947, 99.81854374, 99.82096839, 99.82336376, 99.82573013, 99.82806782, 99.83037712, 99.83265835, 99.83491179, 99.83713775, 99.83933651, 99.84150836, 99.8436536, 99.8457725, 99.84786536, 99.84993244, 99.85197403, 99.85399041, 99.85598184, 99.8579486, 99.85989095, 99.86180916, 99.8637035, 99.86557422, 99.86742159, 99.86924586, 99.87104728, 99.8728261, 99.87458259, 99.87631697, 99.87802951, 99.87972043, 99.88138999, 99.88303842, 99.88466595, 99.88627282, 99.88785926, 99.88942551, 99.89097178, 99.89249831, 99.89400532, 99.89549302, 99.89696165, 99.89841141, 99.89984251, 99.90125519, 99.90264963, 99.90402606, 99.90538467, 99.90672568, 99.90804929, 99.9093557, 99.9106451, 99.9119177, 99.91317369, 99.91441326, 99.9156366, 99.9168439, 99.91803536, 99.91921115, 99.92037147, 99.92151648, 99.92264638, 99.92376134, 99.92486154, 99.92594715, 99.92701835, 99.9280753, 99.92911818, 99.93014715, 99.93116239, 99.93216405, 99.9331523, 99.93412729, 99.9350892, 99.93603817, 99.93697436, 99.93789794, 99.93880904, 99.93970782, 99.94059444, 99.94146903, 99.94233176, 99.94318275, 99.94402216, 99.94485012, 99.94566679, 99.94647229, 99.94726676, 99.94805035, 99.94882318, 99.94958539, 99.95033711, 99.95107847, 99.95180961, 99.95253064, 99.95324169, 99.95394289, 99.95463437, 99.95531624, 99.95598862, 99.95665164, 99.95730541, 99.95795005, 99.95858568, 99.95921241, 99.95983035, 99.96043961, 99.96104031, 99.96163256, 99.96221645, 99.96279211, 99.96335963, 99.96391912, 99.96447069, 99.96501443, 99.96555044, 99.96607883, 99.9665997, 99.96711314, 99.96761924, 99.96811812, 99.96860984, 99.96909453, 99.96957225, 99.97004311, 99.9705072, 99.97096459, 99.97141539, 99.97185968, 99.97229755, 99.97272907, 99.97315434, 99.97357343, 99.97398643, 99.97439342, 99.97479448, 99.97518969, 99.97557912, 99.97596286, 99.97634098, 99.97671355, 99.97708065, 99.97744236, 99.97779874, 99.97814987, 99.97849582, 99.97883666, 99.97917246, 99.97950328, 99.9798292, 99.98015028, 99.98046659, 99.98077819, 99.98108514, 99.98138752, 99.98168538, 99.98197878, 99.98226779, 99.98255247, 99.98283288, 99.98310907, 99.98338111, 99.98364904, 99.98391294, 99.98417285, 99.98442883, 99.98468094, 99.98492922, 99.98517374, 99.98541454, 99.98565168, 99.98588521, 99.98611518, 99.98634164, 99.98656463, 99.98678422, 99.98700044, 99.98721334, 99.98742298, 99.98762939, 99.98783262, 99.98803272, 99.98822974, 99.98842371, 99.98861468, 99.9888027, 99.9889878, 99.98917003, 99.98934943, 99.98952604, 99.98969989, 99.98987104, 99.99003951, 99.99020535, 99.9903686, 99.99052929, 99.99068746, 99.99084315, 99.99099639, 99.99114722, 99.99129567, 99.99144178, 99.99158558, 99.99172711, 99.9918664, 99.99200349, 99.99213839, 99.99227116, 99.99240182, 99.99253039, 99.99265692, 99.99278143, 99.99290395, 99.99302451, 99.99314314, 99.99325987, 99.99337473, 99.99348774, 99.99359894, 99.99370834, 99.99381599, 99.99392189, 99.99402609, 99.9941286, 99.99422945, 99.99432867, 99.99442628, 99.9945223, 99.99461676, 99.99470969, 99.9948011, 99.99489102, 99.99497947, 99.99506647, 99.99515205, 99.99523623, 99.99531902, 99.99540046, 99.99548056, 99.99555934, 99.99563682, 99.99571303, 99.99578798, 99.99586168, 99.99593417, 99.99600546, 99.99607557, 99.99614451, 99.9962123, 99.99627897, 99.99634453, 99.996409, 99.99647239, 99.99653472, 99.996596, 99.99665626, 99.99671552, 99.99677377, 99.99683105, 99.99688737, 99.99694273, 99.99699717, 99.99705068, 99.9971033, 99.99715502, 99.99720587, 99.99725585, 99.99730499, 99.9973533, 99.99740078, 99.99744746, 99.99749334, 99.99753844, 99.99758277, 99.99762634, 99.99766916, 99.99771126, 99.99775263, 99.99779329, 99.99783326, 99.99787253, 99.99791114, 99.99794907, 99.99798635, 99.99802299, 99.998059, 99.99809438, 99.99812915, 99.99816332, 99.99819689, 99.99822988, 99.9982623, 99.99829415, 99.99832545, 99.9983562, 99.99838642, 99.99841611, 99.99844528, 99.99847393, 99.99850209, 99.99852975, 99.99855692, 99.99858362, 99.99860985, 99.99863561, 99.99866093, 99.99868579, 99.99871021, 99.99873421, 99.99875777, 99.99878092, 99.99880366, 99.998826, 99.99884794, 99.99886949, 99.99889065, 99.99891144, 99.99893185, 99.9989519, 99.99897159, 99.99899093, 99.99900993, 99.99902858, 99.9990469, 99.99906488, 99.99908255, 99.9990999, 99.99911693, 99.99913365, 99.99915008, 99.99916621, 99.99918204, 99.99919759, 99.99921286, 99.99922785, 99.99924256, 99.99925701, 99.9992712, 99.99928513, 99.9992988, 99.99931222, 99.9993254, 99.99933834, 99.99935104, 99.99936351, 99.99937575, 99.99938776, 99.99939955, 99.99941113, 99.99942249, 99.99943365, 99.9994446, 99.99945534, 99.99946589, 99.99947624, 99.9994864, 99.99949637, 99.99950616, 99.99951576, 99.99952519, 99.99953444, 99.99954352, 99.99955243, 99.99956117, 99.99956975, 99.99957817, 99.99958643, 99.99959454, 99.99960249, 99.9996103, 99.99961795, 99.99962547, 99.99963284, 99.99964008, 99.99964717, 99.99965414, 99.99966097, 99.99966767, 99.99967425, 99.9996807, 99.99968703, 99.99969324, 99.99969933, 99.9997053, 99.99971116, 99.99971691, 99.99972255, 99.99972809, 99.99973351, 99.99973884, 99.99974406, 99.99974918, 99.9997542, 99.99975913, 99.99976396, 99.9997687, 99.99977334, 99.9997779, 99.99978237, 99.99978676, 99.99979105, 99.99979527, 99.9997994, 99.99980346, 99.99980743, 99.99981133, 99.99981516, 99.9998189, 99.99982258, 99.99982618, 99.99982972, 99.99983318, 99.99983658, 99.99983991, 99.99984317, 99.99984638, 99.99984951, 99.99985259, 99.99985561, 99.99985856, 99.99986146, 99.99986431, 99.99986709, 99.99986982, 99.9998725, 99.99987512, 99.9998777, 99.99988022, 99.99988269, 99.99988511, 99.99988749, 99.99988981, 99.9998921, 99.99989433, 99.99989652, 99.99989867, 99.99990077, 99.99990284, 99.99990486, 99.99990684, 99.99990878, 99.99991068, 99.99991255, 99.99991437, 99.99991616, 99.99991792, 99.99991964, 99.99992132, 99.99992297, 99.99992459, 99.99992617, 99.99992772, 99.99992924, 99.99993073, 99.99993219, 99.99993362, 99.99993502, 99.9999364, 99.99993774, 99.99993906, 99.99994035, 99.99994161, 99.99994285, 99.99994406, 99.99994525, 99.99994642, 99.99994756, 99.99994867, 99.99994977, 99.99995084, 99.99995189, 99.99995291, 99.99995392, 99.99995491, 99.99995587, 99.99995682, 99.99995774, 99.99995865, 99.99995954, 99.99996041, 99.99996126, 99.99996209, 99.99996291, 99.99996371, 99.99996449, 99.99996526, 99.99996601, 99.99996675, 99.99996747, 99.99996817, 99.99996886, 99.99996954, 99.9999702, 99.99997085, 99.99997148, 99.9999721, 99.99997271, 99.9999733, 99.99997389, 99.99997446, 99.99997501, 99.99997556, 99.9999761, 99.99997662, 99.99997713, 99.99997763, 99.99997812, 99.99997861, 99.99997908, 99.99997954, 99.99997999, 99.99998043, 99.99998086, 99.99998128, 99.9999817, 99.9999821, 99.9999825, 99.99998288, 99.99998326, 99.99998363, 99.999984, 99.99998435, 99.9999847, 99.99998504, 99.99998537, 99.9999857, 99.99998602, 99.99998633, 99.99998663, 99.99998693, 99.99998723, 99.99998751, 99.99998779, 99.99998806, 99.99998833, 99.99998859, 99.99998885, 99.9999891, 99.99998935, 99.99998959, 99.99998982, 99.99999005, 99.99999027, 99.99999049, 99.99999071, 99.99999092, 99.99999112, 99.99999132, 99.99999152, 99.99999171, 99.9999919, 99.99999209, 99.99999227, 99.99999244, 99.99999261, 99.99999278, 99.99999295, 99.99999311, 99.99999326, 99.99999342, 99.99999357, 99.99999372, 99.99999386, 99.999994, 99.99999414, 99.99999427, 99.9999944, 99.99999453, 99.99999466, 99.99999478, 99.9999949, 99.99999502, 99.99999513, 99.99999525, 99.99999536, 99.99999546, 99.99999557, 99.99999567, 99.99999577, 99.99999587, 99.99999597, 99.99999606, 99.99999615, 99.99999624, 99.99999633, 99.99999641, 99.9999965, 99.99999658, 99.99999666, 99.99999674, 99.99999681, 99.99999689, 99.99999696, 99.99999703, 99.9999971, 99.99999717, 99.99999724, 99.9999973, 99.99999736, 99.99999743, 99.99999749, 99.99999755, 99.9999976, 99.99999766, 99.99999771, 99.99999777, 99.99999782, 99.99999787, 99.99999792, 99.99999797, 99.99999802, 99.99999807, 99.99999811, 99.99999816, 99.9999982, 99.99999825, 99.99999829, 99.99999833, 99.99999837, 99.99999841, 99.99999844, 99.99999848, 99.99999852, 99.99999855, 99.99999859, 99.99999862, 99.99999865, 99.99999869, 99.99999872, 99.99999875, 99.99999878, 99.99999881, 99.99999884, 99.99999887, 99.99999889, 99.99999892, 99.99999895, 99.99999897, 99.999999, 99.99999902, 99.99999904, 99.99999907, 99.99999909, 99.99999911, 99.99999913, 99.99999915, 99.99999918, 99.9999992, 99.99999921, 99.99999923, 99.99999925, 99.99999927, 99.99999929, 99.99999931, 99.99999932, 99.99999934, 99.99999936, 99.99999937, 99.99999939, 99.9999994, 99.99999942, 99.99999943, 99.99999944, 99.99999946, 99.99999947, 99.99999948, 99.9999995, 99.99999951, 99.99999952, 99.99999953, 99.99999955, 99.99999956, 99.99999957, 99.99999958, 99.99999959, 99.9999996, 99.99999961, 99.99999962, 99.99999963, 99.99999964, 99.99999965, 99.99999966, 99.99999966, 99.99999967, 99.99999968, 99.99999969, 99.9999997, 99.9999997, 99.99999971, 99.99999972, 99.99999973, 99.99999973, 99.99999974, 99.99999975, 99.99999975, 99.99999976, 99.99999976, 99.99999977, 99.99999978, 99.99999978, 99.99999979, 99.99999979, 99.9999998, 99.9999998, 99.99999981, 99.99999981, 99.99999982, 99.99999982, 99.99999983, 99.99999983, 99.99999984, 99.99999984, 99.99999984, 99.99999985, 99.99999985, 99.99999986, 99.99999986, 99.99999986, 99.99999987, 99.99999987, 99.99999987, 99.99999988, 99.99999988, 99.99999988, 99.99999989, 99.99999989, 99.99999989, 99.99999989, 99.9999999, 99.9999999, 99.9999999, 99.9999999, 99.99999991, 99.99999991, 99.99999991, 99.99999991, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999992, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999993, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999994, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999995, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999996, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999997, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999998, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 99.99999999, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_LMCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "component_matrix", "component.contribution.matrix"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ID", "sample_code", "n.components", "Im1", "xm1", "b1", "b1.error", "n01", "n01.error", "cs1", "rel_cs1", "Im2", "xm2", "b2", "b2.error", "n02", "n02.error", "cs2", "rel_cs2", "Im3", "xm3", "b3", "b3.error", "n03", "n03.error", "cs3", "rel_cs3", "Im4", "xm4", "b4", "b4.error", "n04", "n04.error", "cs4", "rel_cs4", "Im5", "xm5", "b5", "b5.error", "n05", "n05.error", "cs5", "rel_cs5", "Im6", "xm6", "b6", "b6.error", "n06", "n06.error", "cs6", "rel_cs6", "Im7", "xm7", "b7", "b7.error", "n07", "n07.error", "cs7", "rel_cs7", "pseudo-R^2"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": [""] }, { "type": "character", "attributes": {}, "value": [""] }, { "type": "double", "attributes": {}, "value": [3] }, { "type": "double", "attributes": {}, "value": [2.91848113] }, { "type": "double", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [4000] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [4.81176192] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [4.69608909e-14] }, { "type": "double", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [149.3700405] }, { "type": "double", "attributes": {}, "value": [41.20416019] }, { "type": "double", "attributes": {}, "value": [2.35601395] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [10147.33052347] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [2.76601285e-17] }, { "type": "double", "attributes": {}, "value": [0.0006] }, { "type": "double", "attributes": {}, "value": [337.94864773] }, { "type": "double", "attributes": {}, "value": [532.39484221] }, { "type": "double", "attributes": {}, "value": [0.01411212] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [296641.42134401] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [1.65679452e-19] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [-4.0657] } ] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [4000, 5] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["TIME", "SUM", "COMP_ 1", "COMP_ 2", "COMP_ 3"] } ] } }, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 9.94009239, 15.33506044, 21.18296878, 27.98744396, 34.89750926, 41.76164888, 48.56357088, 55.29326587, 61.94102272, 68.49736863, 74.95309532, 81.29928451, 87.52733227, 93.62897216, 99.59629692, 105.42177877, 111.09828825, 116.61911145, 121.9779656, 127.16901305, 132.18687349, 137.02663444, 141.68385998, 146.1545977, 150.43538386, 154.52324678, 158.41570841, 162.11078423, 165.60698131, 168.90329481, 171.9992027, 174.89465897, 177.59008525, 180.08636094, 182.38481197, 184.48719814, 186.39569927, 188.1129001, 189.64177415, 190.98566651, 192.14827577, 193.13363507, 193.9460925, 194.59029075, 195.07114638, 195.39382851, 195.56373727, 195.58648199, 195.46785917, 195.21383054, 194.83050102, 194.32409687, 193.70094408, 192.96744698, 192.13006728, 191.19530354, 190.16967113, 189.05968281, 187.87182991, 186.61256427, 185.2882808, 183.905301, 182.46985714, 180.98807746, 179.46597212, 177.90942019, 176.32415749, 174.71576543, 173.08966083, 171.45108661, 169.80510357, 168.156583, 166.5102004, 164.87042996, 163.2415401, 161.62758987, 160.03242615, 158.45968187, 156.91277485, 155.39490762, 153.90906783, 152.45802952, 151.04435495, 149.67039718, 148.33830316, 147.05001747, 145.80728646, 144.61166302, 143.46451167, 142.36701404, 141.32017482, 140.32482784, 139.38164262, 138.49113094, 137.6536538, 136.86942837, 136.13853516, 135.46092521, 134.83642739, 134.26475565, 133.74551628, 133.27821516, 132.86226492, 132.49699196, 132.18164344, 131.91539406, 131.69735272, 131.52656901, 131.40203951, 131.32271384, 131.28750055, 131.2952728, 131.34487373, 131.43512165, 131.56481499, 131.73273697, 131.93766001, 132.17834994, 132.45356988, 132.76208396, 133.10266071, 133.47407624, 133.87511717, 134.30458334, 134.76129026, 135.24407135, 135.75177995, 136.28329115, 136.83750338, 137.41333984, 138.00974967, 138.62570907, 139.26022211, 139.91232151, 140.58106915, 141.26555651, 141.964905, 142.67826608, 143.40482131, 144.14378237, 144.89439081, 145.65591789, 146.42766419, 147.2089593, 147.99916125, 148.7976561, 149.60385728, 150.41720503, 151.23716569, 152.06323104, 152.89491761, 153.73176584, 154.57333944, 155.41922451, 156.26902881, 157.12238098, 157.97892971, 158.83834297, 159.70030722, 160.56452664, 161.43072236, 162.29863169, 163.16800738, 164.03861689, 164.91024171, 165.7826766, 166.655729, 167.52921829, 168.40297522, 169.27684128, 170.15066808, 171.02431683, 171.89765775, 172.77056958, 173.64293905, 174.51466043, 175.38563502, 176.25577079, 177.12498187, 177.99318824, 178.8603153, 179.72629354, 180.59105817, 181.45454885, 182.31670935, 183.17748728, 184.03683381, 184.89470345, 185.75105376, 186.60584519, 187.45904082, 188.31060619, 189.16050911, 190.00871949, 190.85520919, 191.69995185, 192.54292278, 193.38409881, 194.22345816, 195.06098037, 195.89664616, 196.73043735, 197.56233676, 198.39232814, 199.22039609, 200.04652599, 200.87070393, 201.69291668, 202.51315158, 203.33139655, 204.14763999, 204.96187078, 205.77407821, 206.58425199, 207.39238214, 208.19845905, 209.00247338, 209.80441607, 210.60427832, 211.40205156, 212.19772743, 212.99129775, 213.78275455, 214.57209, 215.35929643, 216.14436631, 216.92729225, 217.70806697, 218.4866833, 219.26313418, 220.03741266, 220.80951185, 221.57942497, 222.34714532, 223.11266627, 223.87598126, 224.63708379, 225.39596744, 226.15262585, 226.90705271, 227.65924178, 228.40918685, 229.15688179, 229.90232051, 230.64549696, 231.38640515, 232.12503913, 232.861393, 233.59546092, 234.32723706, 235.05671565, 235.78389098, 236.50875735, 237.23130913, 237.95154071, 238.66944654, 239.3850211, 240.0982589, 240.80915451, 241.51770254, 242.22389761, 242.92773441, 243.62920767, 244.32831214, 245.02504262, 245.71939394, 246.41136099, 247.10093868, 247.78812196, 248.47290583, 249.15528533, 249.83525552, 250.51281151, 251.18794846, 251.86066156, 252.53094603, 253.19879714, 253.86421019, 254.52718054, 255.18770357, 255.84577469, 256.50138938, 257.15454314, 257.8052315, 258.45345006, 259.09919442, 259.74246025, 260.38324324, 261.02153914, 261.65734373, 262.29065281, 262.92146225, 263.54976794, 264.17556582, 264.79885187, 265.41962209, 266.03787255, 266.65359933, 267.26679858, 267.87746646, 268.48559919, 269.09119302, 269.69424424, 270.29474919, 270.89270424, 271.48810581, 272.08095033, 272.67123432, 273.25895429, 273.84410682, 274.42668853, 275.00669606, 275.58412611, 276.1589754, 276.73124072, 277.30091887, 277.8680067, 278.43250111, 278.99439903, 279.55369743, 280.11039333, 280.66448376, 281.21596584, 281.76483669, 282.31109347, 282.85473342, 283.39575377, 283.93415182, 284.46992491, 285.0030704, 285.53358572, 286.06146831, 286.58671566, 287.10932532, 287.62929485, 288.14662186, 288.66130402, 289.17333902, 289.68272458, 290.18945849, 290.69353855, 291.19496263, 291.69372861, 292.18983443, 292.68327807, 293.17405753, 293.66217088, 294.1476162, 294.63039163, 295.11049535, 295.58792557, 296.06268054, 296.53475856, 297.00415795, 297.4708771, 297.93491442, 298.39626836, 298.85493741, 299.3109201, 299.76421502, 300.21482076, 300.66273599, 301.10795939, 301.5504897, 301.99032568, 302.42746615, 302.86190995, 303.29365598, 303.72270317, 304.14905047, 304.57269691, 304.99364152, 305.4118834, 305.82742166, 306.24025549, 306.65038407, 307.05780665, 307.46252252, 307.86453099, 308.26383143, 308.66042324, 309.05430586, 309.44547876, 309.83394146, 310.21969352, 310.60273453, 310.98306413, 311.36068198, 311.7355878, 312.10778133, 312.47726238, 312.84403075, 313.20808632, 313.56942899, 313.9280587, 314.28397543, 314.6371792, 314.98767007, 315.33544813, 315.68051352, 316.0228664, 316.36250698, 316.69943552, 317.0336523, 317.36515763, 317.69395189, 318.02003546, 318.34340879, 318.66407234, 318.98202663, 319.29727222, 319.60980967, 319.91963962, 320.22676273, 320.53117969, 320.83289124, 321.13189815, 321.42820124, 321.72180134, 322.01269933, 322.30089615, 322.58639274, 322.8691901, 323.14928926, 323.42669128, 323.70139727, 323.97340836, 324.24272573, 324.5093506, 324.7732842, 325.03452782, 325.29308279, 325.54895045, 325.8021322, 326.05262947, 326.30044372, 326.54557644, 326.78802918, 327.02780349, 327.26490099, 327.49932331, 327.73107213, 327.96014917, 328.18655615, 328.41029487, 328.63136714, 328.84977481, 329.06551977, 329.27860392, 329.48902923, 329.69679769, 329.90191131, 330.10437216, 330.30418231, 330.5013439, 330.69585909, 330.88773007, 331.07695906, 331.26354832, 331.44750015, 331.62881688, 331.80750086, 331.98355448, 332.15698018, 332.32778041, 332.49595767, 332.66151448, 332.8244534, 332.98477703, 333.14248797, 333.2975889, 333.4500825, 333.59997149, 333.74725863, 333.89194669, 334.0340385, 334.17353691, 334.31044479, 334.44476506, 334.57650067, 334.70565458, 334.83222982, 334.9562294, 335.07765641, 335.19651394, 335.31280513, 335.42653314, 335.53770115, 335.64631241, 335.75237015, 335.85587766, 335.95683826, 336.05525529, 336.15113213, 336.24447219, 336.33527889, 336.4235557, 336.50930612, 336.59253367, 336.6732419, 336.7514344, 336.82711477, 336.90028666, 336.97095374, 337.0391197, 337.10478827, 337.16796321, 337.2286483, 337.28684735, 337.34256421, 337.39580273, 337.44656683, 337.49486042, 337.54068746, 337.58405192, 337.62495782, 337.66340918, 337.69941008, 337.73296459, 337.76407684, 337.79275096, 337.81899114, 337.84280155, 337.86418644, 337.88315005, 337.89969664, 337.91383053, 337.92555605, 337.93487754, 337.94179939, 337.946326, 337.94846181, 337.94821126, 337.94557885, 337.94056907, 337.93318646, 337.92343558, 337.911321, 337.89684734, 337.88001923, 337.86084131, 337.83931828, 337.81545482, 337.78925568, 337.7607256, 337.72986935, 337.69669174, 337.66119759, 337.62339174, 337.58327906, 337.54086445, 337.49615281, 337.4491491, 337.39985825, 337.34828527, 337.29443516, 337.23831294, 337.17992366, 337.1192724, 337.05636424, 336.99120432, 336.92379775, 336.85414971, 336.78226537, 336.70814993, 336.63180861, 336.55324667, 336.47246936, 336.38948197, 336.3042898, 336.21689819, 336.12731247, 336.03553802, 335.94158021, 335.84544447, 335.74713621, 335.64666088, 335.54402394, 335.43923088, 335.33228721, 335.22319845, 335.11197013, 334.99860783, 334.88311712, 334.76550359, 334.64577287, 334.52393059, 334.3999824, 334.27393397, 334.145791, 334.01555919, 333.88324426, 333.74885195, 333.61238803, 333.47385826, 333.33326845, 333.1906244, 333.04593194, 332.89919692, 332.75042518, 332.59962262, 332.44679511, 332.29194857, 332.13508893, 331.97622212, 331.8153541, 331.65249084, 331.48763833, 331.32080256, 331.15198957, 330.98120537, 330.80845601, 330.63374757, 330.4570861, 330.27847771, 330.09792849, 329.91544457, 329.73103208, 329.54469717, 329.35644599, 329.16628472, 328.97421955, 328.78025668, 328.58440232, 328.3866627, 328.18704405, 327.98555264, 327.78219472, 327.57697658, 327.3699045, 327.16098478, 326.95022374, 326.73762771, 326.52320303, 326.30695603, 326.08889309, 325.86902058, 325.64734487, 325.42387237, 325.19860948, 324.97156262, 324.7427382, 324.51214268, 324.2797825, 324.04566412, 323.809794, 323.57217862, 323.33282448, 323.09173806, 322.84892589, 322.60439447, 322.35815033, 322.1102, 321.86055004, 321.60920699, 321.35617742, 321.10146789, 320.84508499, 320.58703531, 320.32732543, 320.06596197, 319.80295154, 319.53830075, 319.27201623, 319.00410462, 318.73457256, 318.4634267, 318.19067369, 317.91632021, 317.64037292, 317.36283849, 317.08372362, 316.80303499, 316.52077929, 316.23696324, 315.95159354, 315.66467691, 315.37622007, 315.08622974, 314.79471265, 314.50167555, 314.20712517, 313.91106826, 313.61351159, 313.31446189, 313.01392595, 312.71191051, 312.40842237, 312.10346828, 311.79705504, 311.48918942, 311.17987822, 310.86912822, 310.55694623, 310.24333903, 309.92831345, 309.61187627, 309.29403432, 308.9747944, 308.65416332, 308.33214792, 308.008755, 307.6839914, 307.35786393, 307.03037943, 306.70154473, 306.37136665, 306.03985204, 305.70700773, 305.37284055, 305.03735736, 304.70056498, 304.36247027, 304.02308006, 303.6824012, 303.34044053, 302.9972049, 302.65270117, 302.30693617, 301.95991675, 301.61164976, 301.26214206, 300.91140049, 300.55943189, 300.20624312, 299.85184103, 299.49623246, 299.13942426, 298.78142327, 298.42223635, 298.06187034, 297.70033208, 297.33762841, 296.97376618, 296.60875223, 296.2425934, 295.87529652, 295.50686843, 295.13731596, 294.76664595, 294.39486522, 294.02198061, 293.64799893, 293.27292702, 292.89677168, 292.51953975, 292.14123804, 291.76187335, 291.3814525, 290.99998229, 290.61746953, 290.23392102, 289.84934356, 289.46374393, 289.07712892, 288.68950533, 288.30087993, 287.91125951, 287.52065083, 287.12906066, 286.73649578, 286.34296294, 285.9484689, 285.55302041, 285.15662422, 284.75928706, 284.36101569, 283.96181683, 283.56169721, 283.16066354, 282.75872256, 282.35588096, 281.95214546, 281.54752275, 281.14201954, 280.7356425, 280.32839832, 279.92029368, 279.51133525, 279.10152969, 278.69088367, 278.27940382, 277.8670968, 277.45396925, 277.04002779, 276.62527906, 276.20972966, 275.79338622, 275.37625532, 274.95834358, 274.53965758, 274.1202039, 273.69998911, 273.27901978, 272.85730247, 272.43484374, 272.01165011, 271.58772814, 271.16308434, 270.73772523, 270.31165733, 269.88488713, 269.45742114, 269.02926583, 268.60042769, 268.17091317, 267.74072874, 267.30988085, 266.87837594, 266.44622045, 266.01342078, 265.57998337, 265.14591461, 264.7112209, 264.27590861, 263.83998414, 263.40345384, 262.96632407, 262.52860118, 262.09029151, 261.65140137, 261.21193709, 260.77190497, 260.33131131, 259.8901624, 259.4484645, 259.00622389, 258.56344682, 258.12013952, 257.67630825, 257.2319592, 256.78709861, 256.34173266, 255.89586755, 255.44950946, 255.00266454, 254.55533896, 254.10753886, 253.65927037, 253.21053962, 252.76135271, 252.31171574, 251.86163479, 251.41111595, 250.96016527, 250.50878881, 250.0569926, 249.60478266, 249.15216502, 248.69914568, 248.24573062, 247.79192582, 247.33773726, 246.88317087, 246.4282326, 245.97292838, 245.51726412, 245.06124572, 244.60487908, 244.14817006, 243.69112454, 243.23374835, 242.77604735, 242.31802735, 241.85969416, 241.40105358, 240.9421114, 240.48287339, 240.02334529, 239.56353287, 239.10344183, 238.64307792, 238.18244682, 237.72155422, 237.2604058, 236.79900723, 236.33736414, 235.87548218, 235.41336695, 234.95102408, 234.48845914, 234.02567772, 233.56268537, 233.09948766, 232.6360901, 232.17249822, 231.70871753, 231.24475351, 230.78061165, 230.3162974, 229.85181621, 229.38717351, 228.92237472, 228.45742524, 227.99233046, 227.52709576, 227.06172648, 226.59622798, 226.13060557, 225.66486458, 225.1990103, 224.73304801, 224.26698298, 223.80082046, 223.33456569, 222.86822389, 222.40180025, 221.93529999, 221.46872826, 221.00209022, 220.53539103, 220.06863581, 219.60182966, 219.1349777, 218.66808499, 218.2011566, 217.73419758, 217.26721297, 216.80020778, 216.33318702, 215.86615566, 215.39911868, 214.93208103, 214.46504765, 213.99802347, 213.53101337, 213.06402226, 212.59705501, 212.13011647, 211.66321149, 211.19634488, 210.72952145, 210.262746, 209.7960233, 209.32935811, 208.86275517, 208.39621921, 207.92975493, 207.46336702, 206.99706017, 206.53083903, 206.06470824, 205.59867244, 205.13273622, 204.66690418, 204.2011809, 203.73557093, 203.27007882, 202.8047091, 202.33946626, 201.87435481, 201.40937922, 200.94454394, 200.47985341, 200.01531207, 199.55092431, 199.08669453, 198.6226271, 198.15872638, 197.6949967, 197.23144238, 196.76806774, 196.30487706, 195.8418746, 195.37906463, 194.91645138, 194.45403906, 193.99183189, 193.52983404, 193.06804968, 192.60648297, 192.14513802, 191.68401897, 191.22312991, 190.76247492, 190.30205807, 189.84188339, 189.38195493, 188.92227669, 188.46285266, 188.00368683, 187.54478315, 187.08614557, 186.62777801, 186.16968437, 185.71186856, 185.25433444, 184.79708587, 184.34012668, 183.8834607, 183.42709173, 182.97102355, 182.51525994, 182.05980464, 181.60466138, 181.14983389, 180.69532587, 180.24114098, 179.78728291, 179.33375528, 178.88056173, 178.42770588, 177.97519131, 177.52302161, 177.07120032, 176.61973099, 176.16861715, 175.7178623, 175.26746993, 174.81744351, 174.36778649, 173.91850231, 173.46959439, 173.02106614, 172.57292092, 172.12516211, 171.67779307, 171.23081711, 170.78423755, 170.3380577, 169.89228082, 169.44691019, 169.00194904, 168.55740059, 168.11326807, 167.66955466, 167.22626353, 166.78339785, 166.34096075, 165.89895535, 165.45738476, 165.01625206, 164.57556033, 164.13531262, 163.69551196, 163.25616137, 162.81726385, 162.37882238, 161.94083993, 161.50331946, 161.06626388, 160.62967611, 160.19355906, 159.75791559, 159.32274857, 158.88806085, 158.45385525, 158.02013459, 157.58690166, 157.15415922, 156.72191006, 156.29015689, 155.85890245, 155.42814945, 154.99790058, 154.5681585, 154.13892588, 153.71020536, 153.28199955, 152.85431107, 152.42714249, 152.0004964, 151.57437535, 151.14878186, 150.72371848, 150.29918768, 149.87519197, 149.45173382, 149.02881567, 148.60643996, 148.18460911, 147.76332552, 147.34259159, 146.92240967, 146.50278212, 146.08371128, 145.66519946, 145.24724896, 144.82986208, 144.41304107, 143.9967882, 143.5811057, 143.16599578, 142.75146066, 142.3375025, 141.9241235, 141.51132579, 141.09911152, 140.6874828, 140.27644174, 139.86599043, 139.45613094, 139.04686532, 138.63819562, 138.23012385, 137.82265202, 137.41578212, 137.00951612, 136.60385599, 136.19880367, 135.79436107, 135.39053012, 134.98731269, 134.58471068, 134.18272594, 133.78136032, 133.38061565, 132.98049374, 132.58099639, 132.18212539, 131.78388249, 131.38626945, 130.98928801, 130.59293988, 130.19722677, 129.80215037, 129.40771234, 129.01391435, 128.62075803, 128.22824502, 127.83637692, 127.44515533, 127.05458183, 126.66465798, 126.27538532, 125.88676541, 125.49879974, 125.11148983, 124.72483717, 124.33884322, 123.95350944, 123.56883728, 123.18482816, 122.8014835, 122.41880469, 122.03679311, 121.65545014, 121.27477713, 120.89477541, 120.5154463, 120.13679112, 119.75881116, 119.3815077, 119.00488199, 118.6289353, 118.25366885, 117.87908386, 117.50518155, 117.1319631, 116.75942968, 116.38758247, 116.01642261, 115.64595124, 115.27616946, 114.90707839, 114.53867912, 114.17097273, 113.80396028, 113.43764281, 113.07202136, 112.70709695, 112.3428706, 111.97934328, 111.61651598, 111.25438967, 110.89296529, 110.53224378, 110.17222606, 109.81291306, 109.45430565, 109.09640472, 108.73921115, 108.38272579, 108.02694947, 107.67188303, 107.31752729, 106.96388303, 106.61095106, 106.25873215, 105.90722705, 105.55643652, 105.20636129, 104.85700209, 104.50835962, 104.16043457, 103.81322764, 103.46673949, 103.12097078, 102.77592216, 102.43159424, 102.08798766, 101.74510302, 101.40294091, 101.06150191, 100.7207866, 100.38079551, 100.04152921, 99.70298821, 99.36517304, 99.0280842, 98.69172218, 98.35608747, 98.02118054, 97.68700183, 97.35355179, 97.02083087, 96.68883946, 96.35757799, 96.02704685, 95.69724641, 95.36817707, 95.03983916, 94.71223305, 94.38535907, 94.05921754, 93.73380877, 93.40913307, 93.08519073, 92.76198202, 92.43950721, 92.11776656, 91.7967603, 91.47648868, 91.15695191, 90.8381502, 90.52008375, 90.20275275, 89.88615737, 89.57029778, 89.25517413, 88.94078657, 88.62713522, 88.31422021, 88.00204164, 87.69059962, 87.37989423, 87.06992555, 86.76069366, 86.45219859, 86.14444041, 85.83741914, 85.5311348, 85.22558742, 84.920777, 84.61670353, 84.31336698, 84.01076734, 83.70890457, 83.40777862, 83.10738942, 82.80773692, 82.50882103, 82.21064167, 81.91319873, 81.61649211, 81.32052169, 81.02528734, 80.73078893, 80.4370263, 80.1439993, 79.85170776, 79.56015151, 79.26933035, 78.9792441, 78.68989255, 78.40127548, 78.11339267, 77.82624388, 77.53982888, 77.25414741, 76.96919921, 76.68498402, 76.40150154, 76.11875149, 75.83673358, 75.5554475, 75.27489293, 74.99506955, 74.71597702, 74.43761501, 74.15998316, 73.88308111, 73.60690851, 73.33146496, 73.05675008, 72.78276349, 72.50950477, 72.23697352, 71.96516932, 71.69409174, 71.42374035, 71.15411469, 70.88521433, 70.6170388, 70.34958763, 70.08286035, 69.81685646, 69.55157549, 69.28701692, 69.02318025, 68.76006497, 68.49767054, 68.23599645, 67.97504214, 67.71480708, 67.4552907, 67.19649245, 66.93841175, 66.68104804, 66.42440071, 66.16846919, 65.91325288, 65.65875116, 65.40496342, 65.15188904, 64.8995274, 64.64787785, 64.39693976, 64.14671247, 63.89719534, 63.64838769, 63.40028885, 63.15289815, 62.90621491, 62.66023843, 62.41496802, 62.17040296, 61.92654256, 61.68338609, 61.44093283, 61.19918205, 60.95813301, 60.71778497, 60.47813717, 60.23918887, 60.0009393, 59.76338769, 59.52653326, 59.29037524, 59.05491284, 58.82014526, 58.58607171, 58.35269137, 58.12000345, 57.88800711, 57.65670154, 57.42608591, 57.19615939, 56.96692113, 56.73837029, 56.51050601, 56.28332744, 56.05683372, 55.83102397, 55.60589733, 55.38145291, 55.15768982, 54.93460719, 54.71220411, 54.49047968, 54.26943299, 54.04906314, 53.82936921, 53.61035027, 53.3920054, 53.17433368, 52.95733415, 52.74100588, 52.52534792, 52.31035932, 52.09603913, 51.88238638, 51.66940011, 51.45707935, 51.24542312, 51.03443044, 50.82410032, 50.61443179, 50.40542384, 50.19707547, 49.98938569, 49.78235349, 49.57597785, 49.37025777, 49.16519221, 48.96078016, 48.75702058, 48.55391246, 48.35145474, 48.14964638, 47.94848635, 47.7479736, 47.54810706, 47.34888569, 47.15030843, 46.9523742, 46.75508195, 46.55843059, 46.36241906, 46.16704626, 45.97231113, 45.77821258, 45.5847495, 45.39192082, 45.19972542, 45.00816222, 44.8172301, 44.62692796, 44.43725468, 44.24820916, 44.05979027, 43.87199689, 43.6848279, 43.49828217, 43.31235857, 43.12705596, 42.94237321, 42.75830918, 42.57486272, 42.39203269, 42.20981794, 42.02821732, 41.84722967, 41.66685384, 41.48708866, 41.30793297, 41.1293856, 40.95144539, 40.77411116, 40.59738175, 40.42125597, 40.24573264, 40.07081058, 39.89648861, 39.72276554, 39.54964018, 39.37711134, 39.20517783, 39.03383845, 38.863092, 38.69293727, 38.52337308, 38.3543982, 38.18601144, 38.01821158, 37.85099741, 37.68436772, 37.51832129, 37.3528569, 37.18797334, 37.02366938, 36.85994379, 36.69679536, 36.53422285, 36.37222504, 36.21080068, 36.04994856, 35.88966744, 35.72995607, 35.57081322, 35.41223766, 35.25422813, 35.0967834, 34.93990222, 34.78358335, 34.62782553, 34.47262753, 34.31798808, 34.16390594, 34.01037985, 33.85740856, 33.70499081, 33.55312535, 33.40181092, 33.25104625, 33.10083009, 32.95116117, 32.80203823, 32.65346001, 32.50542524, 32.35793266, 32.21098099, 32.06456897, 31.91869533, 31.7733588, 31.6285581, 31.48429197, 31.34055913, 31.1973583, 31.05468822, 30.91254761, 30.77093518, 30.62984967, 30.48928979, 30.34925427, 30.20974183, 30.07075119, 29.93228106, 29.79433016, 29.65689723, 29.51998096, 29.38358008, 29.24769331, 29.11231937, 28.97745696, 28.8431048, 28.70926162, 28.57592612, 28.44309702, 28.31077303, 28.17895287, 28.04763525, 27.91681889, 27.78650249, 27.65668478, 27.52736445, 27.39854024, 27.27021084, 27.14237497, 27.01503135, 26.88817869, 26.76181569, 26.63594108, 26.51055356, 26.38565184, 26.26123464, 26.13730068, 26.01384866, 25.89087729, 25.7683853, 25.64637139, 25.52483427, 25.40377267, 25.28318529, 25.16307085, 25.04342806, 24.92425563, 24.80555229, 24.68731675, 24.56954772, 24.45224392, 24.33540407, 24.21902688, 24.10311107, 23.98765536, 23.87265846, 23.7581191, 23.644036, 23.53040787, 23.41723344, 23.30451142, 23.19224055, 23.08041953, 22.9690471, 22.85812197, 22.74764288, 22.63760855, 22.52801769, 22.41886905, 22.31016135, 22.2018933, 22.09406366, 21.98667113, 21.87971446, 21.77319237, 21.66710361, 21.56144689, 21.45622095, 21.35142454, 21.24705638, 21.14311521, 21.03959977, 20.9365088, 20.83384104, 20.73159523, 20.62977011, 20.52836442, 20.42737691, 20.32680632, 20.2266514, 20.12691089, 20.02758355, 19.92866813, 19.83016337, 19.73206802, 19.63438084, 19.53710059, 19.44022602, 19.34375588, 19.24768893, 19.15202394, 19.05675966, 18.96189486, 18.86742829, 18.77335873, 18.67968493, 18.58640567, 18.49351972, 18.40102584, 18.3089228, 18.21720938, 18.12588436, 18.0349465, 17.94439459, 17.8542274, 17.76444372, 17.67504232, 17.58602198, 17.4973815, 17.40911966, 17.32123524, 17.23372704, 17.14659385, 17.05983445, 16.97344764, 16.88743223, 16.80178699, 16.71651074, 16.63160227, 16.54706039, 16.4628839, 16.3790716, 16.29562231, 16.21253482, 16.12980796, 16.04744052, 15.96543134, 15.88377922, 15.80248297, 15.72154143, 15.64095341, 15.56071773, 15.48083321, 15.40129869, 15.322113, 15.24327495, 15.16478339, 15.08663714, 15.00883505, 14.93137595, 14.85425867, 14.77748207, 14.70104498, 14.62494625, 14.54918473, 14.47375926, 14.3986687, 14.32391189, 14.24948769, 14.17539497, 14.10163257, 14.02819936, 13.9550942, 13.88231595, 13.80986349, 13.73773568, 13.66593138, 13.59444948, 13.52328885, 13.45244836, 13.3819269, 13.31172334, 13.24183656, 13.17226546, 13.10300892, 13.03406582, 12.96543506, 12.89711554, 12.82910614, 12.76140576, 12.69401331, 12.62692769, 12.5601478, 12.49367254, 12.42750083, 12.36163157, 12.29606368, 12.23079608, 12.16582767, 12.10115738, 12.03678412, 11.97270683, 11.90892443, 11.84543584, 11.78224, 11.71933584, 11.65672229, 11.59439829, 11.53236278, 11.4706147, 11.40915299, 11.3479766, 11.28708448, 11.22647557, 11.16614884, 11.10610322, 11.04633769, 10.9868512, 10.92764271, 10.86871119, 10.8100556, 10.75167491, 10.69356809, 10.63573412, 10.57817196, 10.5208806, 10.46385903, 10.40710621, 10.35062113, 10.29440279, 10.23845017, 10.18276226, 10.12733806, 10.07217656, 10.01727676, 9.96263767, 9.90825829, 9.85413761, 9.80027466, 9.74666844, 9.69331796, 9.64022224, 9.5873803, 9.53479115, 9.48245383, 9.43036735, 9.37853074, 9.32694303, 9.27560326, 9.22451045, 9.17366365, 9.12306189, 9.07270421, 9.02258967, 8.9727173, 8.92308615, 8.87369528, 8.82454374, 8.77563059, 8.72695488, 8.67851567, 8.63031203, 8.58234302, 8.53460772, 8.48710519, 8.4398345, 8.39279474, 8.34598497, 8.29940428, 8.25305175, 8.20692647, 8.16102753, 8.11535401, 8.069905, 8.02467961, 7.97967692, 7.93489605, 7.89033608, 7.84599613, 7.80187531, 7.75797271, 7.71428746, 7.67081867, 7.62756545, 7.58452693, 7.54170223, 7.49909046, 7.45669076, 7.41450226, 7.37252409, 7.33075538, 7.28919527, 7.24784289, 7.20669739, 7.16575792, 7.12502361, 7.08449362, 7.0441671, 7.00404319, 6.96412107, 6.92439988, 6.88487879, 6.84555696, 6.80643356, 6.76750774, 6.7287787, 6.69024559, 6.65190759, 6.61376389, 6.57581365, 6.53805607, 6.50049033, 6.46311562, 6.42593112, 6.38893603, 6.35212955, 6.31551087, 6.27907919, 6.24283371, 6.20677364, 6.17089819, 6.13520656, 6.09969797, 6.06437164, 6.02922677, 5.99426258, 5.95947831, 5.92487317, 5.89044639, 5.85619719, 5.82212482, 5.7882285, 5.75450747, 5.72096096, 5.68758823, 5.6543885, 5.62136104, 5.58850507, 5.55581987, 5.52330467, 5.49095874, 5.45878133, 5.4267717, 5.39492911, 5.36325283, 5.33174213, 5.30039627, 5.26921453, 5.23819618, 5.2073405, 5.17664676, 5.14611425, 5.11574226, 5.08553006, 5.05547695, 5.02558222, 4.99584515, 4.96626505, 4.93684122, 4.90757294, 4.87845954, 4.8495003, 4.82069454, 4.79204157, 4.7635407, 4.73519124, 4.70699251, 4.67894383, 4.65104452, 4.6232939, 4.5956913, 4.56823605, 4.54092747, 4.5137649, 4.48674768, 4.45987514, 4.43314662, 4.40656146, 4.38011901, 4.35381861, 4.32765961, 4.30164137, 4.27576323, 4.25002455, 4.22442469, 4.19896301, 4.17363887, 4.14845163, 4.12340067, 4.09848534, 4.07370503, 4.04905911, 4.02454694, 4.00016791, 3.9759214, 3.9518068, 3.92782347, 3.90397082, 3.88024823, 3.8566551, 3.83319081, 3.80985476, 3.78664634, 3.76356497, 3.74061004, 3.71778095, 3.69507712, 3.67249794, 3.65004284, 3.62771122, 3.6055025, 3.5834161, 3.56145143, 3.53960792, 3.51788499, 3.49628206, 3.47479858, 3.45343396, 3.43218763, 3.41105904, 3.39004762, 3.3691528, 3.34837403, 3.32771076, 3.30716241, 3.28672846, 3.26640833, 3.24620149, 3.22610738, 3.20612547, 3.1862552, 3.16649605, 3.14684746, 3.12730891, 3.10787986, 3.08855978, 3.06934814, 3.05024441, 3.03124806, 3.01235857, 2.99357542, 2.97489809, 2.95632605, 2.9378588, 2.91949583, 2.90123661, 2.88308064, 2.86502741, 2.84707641, 2.82922715, 2.81147911, 2.79383181, 2.77628473, 2.75883739, 2.74148929, 2.72423995, 2.70708886, 2.69003554, 2.67307951, 2.65622027, 2.63945736, 2.62279029, 2.60621857, 2.58974174, 2.57335931, 2.55707083, 2.5408758, 2.52477378, 2.50876428, 2.49284685, 2.47702102, 2.46128633, 2.44564232, 2.43008853, 2.41462451, 2.39924981, 2.38396397, 2.36876654, 2.35365707, 2.33863512, 2.32370024, 2.30885199, 2.29408994, 2.27941363, 2.26482264, 2.25031652, 2.23589485, 2.22155719, 2.20730312, 2.1931322, 2.179044, 2.16503811, 2.15111411, 2.13727156, 2.12351005, 2.10982917, 2.09622849, 2.08270761, 2.06926611, 2.05590358, 2.04261961, 2.0294138, 2.01628574, 2.00323503, 1.99026126, 1.97736404, 1.96454296, 1.95179764, 1.93912767, 1.92653266, 1.91401223, 1.90156597, 1.88919351, 1.87689446, 1.86466842, 1.85251503, 1.84043389, 1.82842463, 1.81648687, 1.80462024, 1.79282435, 1.78109884, 1.76944333, 1.75785745, 1.74634084, 1.73489313, 1.72351395, 1.71220294, 1.70095974, 1.68978399, 1.67867533, 1.6676334, 1.65665785, 1.64574832, 1.63490447, 1.62412593, 1.61341237, 1.60276342, 1.59217876, 1.58165803, 1.57120089, 1.560807, 1.55047601, 1.5402076, 1.53000142, 1.51985714, 1.50977442, 1.49975294, 1.48979236, 1.47989235, 1.47005258, 1.46027274, 1.45055249, 1.4408915, 1.43128947, 1.42174606, 1.41226097, 1.40283386, 1.39346444, 1.38415237, 1.37489735, 1.36569907, 1.35655721, 1.34747148, 1.33844155, 1.32946713, 1.32054791, 1.31168358, 1.30287385, 1.29411842, 1.28541698, 1.27676925, 1.26817491, 1.25963368, 1.25114527, 1.24270938, 1.23432573, 1.22599401, 1.21771396, 1.20948527, 1.20130766, 1.19318086, 1.18510457, 1.17707852, 1.16910243, 1.16117602, 1.153299, 1.14547112, 1.13769208, 1.12996162, 1.12227947, 1.11464535, 1.107059, 1.09952015, 1.09202853, 1.08458387, 1.07718592, 1.0698344, 1.06252907, 1.05526965, 1.04805588, 1.04088752, 1.03376431, 1.02668598, 1.01965228, 1.01266297, 1.00571778, 0.99881648, 0.9919588, 0.98514451, 0.97837335, 0.97164508, 0.96495946, 0.95831624, 0.95171518, 0.94515604, 0.93863858, 0.93216256, 0.92572774, 0.9193339, 0.91298078, 0.90666817, 0.90039582, 0.89416351, 0.887971, 0.88181807, 0.87570448, 0.86963002, 0.86359446, 0.85759756, 0.85163911, 0.84571889, 0.83983666, 0.83399223, 0.82818535, 0.82241583, 0.81668343, 0.81098795, 0.80532916, 0.79970687, 0.79412084, 0.78857088, 0.78305676, 0.77757829, 0.77213525, 0.76672744, 0.76135465, 0.75601667, 0.75071331, 0.74544435, 0.7402096, 0.73500886, 0.72984191, 0.72470858, 0.71960865, 0.71454194, 0.70950824, 0.70450736, 0.69953911, 0.6946033, 0.68969972, 0.6848282, 0.67998854, 0.67518055, 0.67040405, 0.66565884, 0.66094475, 0.65626158, 0.65160915, 0.64698729, 0.6423958, 0.63783451, 0.63330323, 0.6288018, 0.62433002, 0.61988772, 0.61547472, 0.61109086, 0.60673595, 0.60240982, 0.59811229, 0.59384321, 0.58960238, 0.58538966, 0.58120485, 0.57704781, 0.57291835, 0.56881632, 0.56474155, 0.56069386, 0.55667311, 0.55267912, 0.54871174, 0.5447708, 0.54085614, 0.5369676, 0.53310503, 0.52926826, 0.52545714, 0.52167151, 0.51791122, 0.51417612, 0.51046604, 0.50678084, 0.50312036, 0.49948445, 0.49587297, 0.49228576, 0.48872268, 0.48518357, 0.48166829, 0.47817669, 0.47470863, 0.47126396, 0.46784254, 0.46444422, 0.46106887, 0.45771633, 0.45438648, 0.45107917, 0.44779425, 0.4445316, 0.44129107, 0.43807253, 0.43487584, 0.43170087, 0.42854747, 0.42541552, 0.42230489, 0.41921543, 0.41614702, 0.41309953, 0.41007283, 0.40706678, 0.40408126, 0.40111614, 0.39817129, 0.39524659, 0.3923419, 0.38945711, 0.38659209, 0.38374671, 0.38092086, 0.3781144, 0.37532722, 0.37255919, 0.3698102, 0.36708013, 0.36436885, 0.36167624, 0.3590022, 0.3563466, 0.35370932, 0.35109025, 0.34848928, 0.34590628, 0.34334115, 0.34079377, 0.33826403, 0.33575182, 0.33325702, 0.33077953, 0.32831923, 0.32587602, 0.32344978, 0.32104041, 0.31864781, 0.31627185, 0.31391244, 0.31156947, 0.30924283, 0.30693243, 0.30463815, 0.3023599, 0.30009757, 0.29785105, 0.29562025, 0.29340507, 0.2912054, 0.28902114, 0.2868522, 0.28469848, 0.28255987, 0.28043629, 0.27832763, 0.2762338, 0.27415469, 0.27209023, 0.2700403, 0.26800482, 0.26598369, 0.26397683, 0.26198413, 0.2600055, 0.25804086, 0.25609011, 0.25415316, 0.25222993, 0.25032031, 0.24842423, 0.24654159, 0.24467231, 0.2428163, 0.24097348, 0.23914375, 0.23732703, 0.23552323, 0.23373228, 0.23195408, 0.23018855, 0.22843562, 0.22669518, 0.22496718, 0.22325151, 0.22154811, 0.21985688, 0.21817775, 0.21651065, 0.21485548, 0.21321217, 0.21158065, 0.20996083, 0.20835263, 0.20675599, 0.20517082, 0.20359704, 0.20203459, 0.20048338, 0.19894334, 0.1974144, 0.19589648, 0.19438951, 0.19289342, 0.19140813, 0.18993357, 0.18846967, 0.18701636, 0.18557357, 0.18414122, 0.18271925, 0.18130759, 0.17990617, 0.17851491, 0.17713376, 0.17576264, 0.17440148, 0.17305023, 0.1717088, 0.17037714, 0.16905519, 0.16774286, 0.16644011, 0.16514686, 0.16386305, 0.16258861, 0.16132349, 0.16006762, 0.15882094, 0.15758338, 0.15635489, 0.1551354, 0.15392484, 0.15272317, 0.15153032, 0.15034622, 0.14917083, 0.14800407, 0.1468459, 0.14569624, 0.14455506, 0.14342227, 0.14229784, 0.1411817, 0.1400738, 0.13897407, 0.13788247, 0.13679893, 0.13572341, 0.13465584, 0.13359617, 0.13254435, 0.13150033, 0.13046404, 0.12943545, 0.12841448, 0.1274011, 0.12639524, 0.12539686, 0.12440591, 0.12342233, 0.12244607, 0.12147708, 0.12051532, 0.11956073, 0.11861326, 0.11767286, 0.11673948, 0.11581308, 0.11489361, 0.11398101, 0.11307524, 0.11217626, 0.11128401, 0.11039844, 0.10951952, 0.1086472, 0.10778142, 0.10692215, 0.10606933, 0.10522293, 0.10438289, 0.10354918, 0.10272174, 0.10190054, 0.10108553, 0.10027667, 0.09947391, 0.09867721, 0.09788653, 0.09710183, 0.09632306, 0.09555019, 0.09478316, 0.09402194, 0.0932665, 0.09251677, 0.09177274, 0.09103435, 0.09030157, 0.08957436, 0.08885267, 0.08813648, 0.08742573, 0.08672039, 0.08602043, 0.0853258, 0.08463646, 0.08395239, 0.08327353, 0.08259986, 0.08193133, 0.08126792, 0.08060958, 0.07995628, 0.07930798, 0.07866464, 0.07802623, 0.07739272, 0.07676407, 0.07614024, 0.07552121, 0.07490693, 0.07429737, 0.0736925, 0.07309228, 0.07249669, 0.07190568, 0.07131922, 0.07073729, 0.07015985, 0.06958686, 0.0690183, 0.06845413, 0.06789432, 0.06733884, 0.06678766, 0.06624074, 0.06569806, 0.06515959, 0.06462529, 0.06409514, 0.0635691, 0.06304714, 0.06252924, 0.06201536, 0.06150548, 0.06099957, 0.06049759, 0.05999952, 0.05950534, 0.059015, 0.0585285, 0.05804578, 0.05756684, 0.05709163, 0.05662014, 0.05615234, 0.0556882, 0.05522769, 0.05477078, 0.05431746, 0.05386768, 0.05342144, 0.05297869, 0.05253942, 0.05210361, 0.05167121, 0.05124222, 0.05081659, 0.05039432, 0.04997538, 0.04955973, 0.04914736, 0.04873824, 0.04833234, 0.04792965, 0.04753014, 0.04713379, 0.04674057, 0.04635046, 0.04596343, 0.04557947, 0.04519855, 0.04482064, 0.04444574, 0.0440738, 0.04370482, 0.04333877, 0.04297562, 0.04261536, 0.04225797, 0.04190341, 0.04155168, 0.04120275, 0.0408566, 0.0405132, 0.04017255, 0.03983461, 0.03949937, 0.03916681, 0.0388369, 0.03850963, 0.03818498, 0.03786292, 0.03754345, 0.03722653, 0.03691215, 0.03660029, 0.03629093, 0.03598405, 0.03567964, 0.03537767, 0.03507813, 0.03478099, 0.03448625, 0.03419388, 0.03390386, 0.03361618, 0.03333081, 0.03304775, 0.03276697, 0.03248845, 0.03221219, 0.03193815, 0.03166633, 0.03139671, 0.03112927, 0.03086399, 0.03060087, 0.03033987, 0.03008099, 0.0298242, 0.02956951, 0.02931687, 0.02906629, 0.02881775, 0.02857122, 0.0283267, 0.02808417, 0.02784361, 0.02760501, 0.02736836, 0.02713363, 0.02690082, 0.02666991, 0.02644088, 0.02621372, 0.02598842, 0.02576496, 0.02554333, 0.02532351, 0.02510549, 0.02488926, 0.0246748, 0.02446209, 0.02425113, 0.0240419, 0.02383439, 0.02362858, 0.02342446, 0.02322202, 0.02302125, 0.02282213, 0.02262464, 0.02242879, 0.02223454, 0.0220419, 0.02185085, 0.02166137, 0.02147346, 0.0212871, 0.02110228, 0.02091898, 0.0207372, 0.02055693, 0.02037815, 0.02020085, 0.02002501, 0.01985064, 0.01967771, 0.01950622, 0.01933615, 0.01916749, 0.01900023, 0.01883436, 0.01866988, 0.01850676, 0.018345, 0.01818458, 0.01802551, 0.01786775, 0.01771132, 0.01755619, 0.01740235, 0.0172498, 0.01709852, 0.01694851, 0.01679975, 0.01665224, 0.01650596, 0.0163609, 0.01621706, 0.01607443, 0.01593299, 0.01579274, 0.01565366, 0.01551576, 0.01537901, 0.01524341, 0.01510895, 0.01497562, 0.01484342, 0.01471233, 0.01458234, 0.01445344, 0.01432564, 0.01419891, 0.01407325, 0.01394865, 0.01382511, 0.0137026, 0.01358114, 0.0134607, 0.01334128, 0.01322287, 0.01310546, 0.01298905, 0.01287363, 0.01275918, 0.0126457, 0.01253319, 0.01242164, 0.01231103, 0.01220136, 0.01209262, 0.01198481, 0.01187792, 0.01177194, 0.01166686, 0.01156267, 0.01145938, 0.01135696, 0.01125542, 0.01115474, 0.01105493, 0.01095597, 0.01085785, 0.01076058, 0.01066413, 0.01056851, 0.01047371, 0.01037973, 0.01028655, 0.01019416, 0.01010257, 0.01001177, 0.00992175, 0.0098325, 0.00974401, 0.00965629, 0.00956932, 0.0094831, 0.00939763, 0.00931289, 0.00922888, 0.00914559, 0.00906302, 0.00898117, 0.00890002, 0.00881957, 0.00873982, 0.00866075, 0.00858237, 0.00850467, 0.00842764, 0.00835128, 0.00827558, 0.00820054, 0.00812615, 0.0080524, 0.00797929, 0.00790682, 0.00783497, 0.00776375, 0.00769315, 0.00762317, 0.00755379, 0.00748502, 0.00741684, 0.00734926, 0.00728227, 0.00721586, 0.00715004, 0.00708478, 0.0070201, 0.00695598, 0.00689243, 0.00682942, 0.00676697, 0.00670507, 0.00664371, 0.00658288, 0.00652259, 0.00646282, 0.00640359, 0.00634487, 0.00628666, 0.00622897, 0.00617178, 0.0061151, 0.00605891, 0.00600322, 0.00594802, 0.00589331, 0.00583907, 0.00578532, 0.00573204, 0.00567923, 0.00562688, 0.005575, 0.00552357, 0.0054726, 0.00542208, 0.00537201, 0.00532238, 0.00527318, 0.00522443, 0.0051761, 0.00512821, 0.00508074, 0.00503369, 0.00498705, 0.00494084, 0.00489503, 0.00484963, 0.00480463, 0.00476003, 0.00471583, 0.00467202, 0.0046286, 0.00458557, 0.00454292, 0.00450066, 0.00445877, 0.00441725, 0.0043761, 0.00433532, 0.00429491, 0.00425486, 0.00421516, 0.00417582, 0.00413683, 0.00409819, 0.0040599, 0.00402195, 0.00398434, 0.00394707, 0.00391013, 0.00387352, 0.00383724, 0.00380129, 0.00376566, 0.00373035, 0.00369536, 0.00366068, 0.00362632, 0.00359227, 0.00355852, 0.00352507, 0.00349193, 0.00345909, 0.00342654, 0.00339429, 0.00336233, 0.00333065, 0.00329927, 0.00326816, 0.00323734, 0.0032068, 0.00317653, 0.00314654, 0.00311682, 0.00308737, 0.00305818, 0.00302927, 0.00300061, 0.00297221, 0.00294407, 0.00291619, 0.00288856, 0.00286119, 0.00283406, 0.00280718, 0.00278054, 0.00275414, 0.00272799, 0.00270208, 0.0026764, 0.00265095, 0.00262574, 0.00260076, 0.00257601, 0.00255148, 0.00252718, 0.00250309, 0.00247923, 0.00245559, 0.00243217, 0.00240896, 0.00238596, 0.00236317, 0.0023406, 0.00231822, 0.00229606, 0.0022741, 0.00225234, 0.00223078, 0.00220942, 0.00218825, 0.00216728, 0.00214651, 0.00212592, 0.00210553, 0.00208532, 0.0020653, 0.00204546, 0.00202581, 0.00200634, 0.00198704, 0.00196793, 0.00194899, 0.00193023, 0.00191164, 0.00189323, 0.00187498, 0.00185691, 0.001839, 0.00182125, 0.00180368, 0.00178626, 0.00176901, 0.00175191, 0.00173498, 0.0017182, 0.00170158, 0.00168512, 0.0016688, 0.00165264, 0.00163663, 0.00162077, 0.00160506, 0.00158949, 0.00157407, 0.00155879, 0.00154366, 0.00152866, 0.00151381, 0.00149909, 0.00148452, 0.00147008, 0.00145577, 0.0014416, 0.00142756, 0.00141365, 0.00139988, 0.00138623, 0.00137271, 0.00135932, 0.00134605, 0.00133291, 0.00131989, 0.00130699, 0.00129422, 0.00128156, 0.00126902, 0.00125661, 0.00124431, 0.00123212, 0.00122005, 0.00120809, 0.00119625, 0.00118452, 0.0011729, 0.00116139, 0.00114998, 0.00113869, 0.0011275, 0.00111642, 0.00110544, 0.00109457, 0.0010838, 0.00107313, 0.00106257, 0.0010521, 0.00104173, 0.00103146, 0.00102129, 0.00101122, 0.00100124, 0.00099135, 0.00098156, 0.00097187, 0.00096226, 0.00095275, 0.00094332, 0.00093399, 0.00092475, 0.00091559, 0.00090652, 0.00089754, 0.00088864, 0.00087983, 0.00087111, 0.00086246, 0.0008539, 0.00084542, 0.00083702, 0.00082871, 0.00082047, 0.00081231, 0.00080423, 0.00079623, 0.0007883, 0.00078045, 0.00077267, 0.00076497, 0.00075735, 0.00074979, 0.00074231, 0.00073491, 0.00072757, 0.0007203, 0.00071311, 0.00070598, 0.00069892, 0.00069193, 0.00068501, 0.00067815, 0.00067136, 0.00066463, 0.00065797, 0.00065138, 0.00064485, 0.00063838, 0.00063197, 0.00062563, 0.00061935, 0.00061313, 0.00060697, 0.00060086, 0.00059482, 0.00058884, 0.00058291, 0.00057704, 0.00057123, 0.00056548, 0.00055978, 0.00055414, 0.00054855, 0.00054301, 0.00053753, 0.00053211, 0.00052673, 0.00052141, 0.00051614, 0.00051092, 0.00050576, 0.00050064, 0.00049557, 0.00049055, 0.00048559, 0.00048067, 0.00047579, 0.00047097, 0.00046619, 0.00046146, 0.00045678, 0.00045214, 0.00044755, 0.000443, 0.0004385, 0.00043404, 0.00042963, 0.00042525, 0.00042093, 0.00041664, 0.0004124, 0.00040819, 0.00040403, 0.00039991, 0.00039583, 0.0003918, 0.0003878, 0.00038384, 0.00037992, 0.00037603, 0.00037219, 0.00036838, 0.00036462, 0.00036089, 0.00035719, 0.00035353, 0.00034991, 0.00034633, 0.00034278, 0.00033926, 0.00033578, 0.00033234, 0.00032892, 0.00032555, 0.0003222, 0.00031889, 0.00031561, 0.00031237, 0.00030916, 0.00030597, 0.00030282, 0.00029971, 0.00029662, 0.00029356, 0.00029054, 0.00028754, 0.00028457, 0.00028164, 0.00027873, 0.00027585, 0.000273, 0.00027018, 0.00026739, 0.00026462, 0.00026189, 0.00025918, 0.00025649, 0.00025384, 0.00025121, 0.00024861, 0.00024603, 0.00024348, 0.00024095, 0.00023845, 0.00023598, 0.00023353, 0.0002311, 0.0002287, 0.00022632, 0.00022397, 0.00022164, 0.00021933, 0.00021705, 0.00021479, 0.00021255, 0.00021034, 0.00020814, 0.00020597, 0.00020383, 0.0002017, 0.00019959, 0.00019751, 0.00019545, 0.0001934, 0.00019138, 0.00018938, 0.0001874, 0.00018544, 0.0001835, 0.00018158, 0.00017968, 0.00017779, 0.00017593, 0.00017409, 0.00017226, 0.00017045, 0.00016866, 0.00016689, 0.00016514, 0.00016341, 0.00016169, 0.00015999, 0.00015831, 0.00015664, 0.00015499, 0.00015336, 0.00015175, 0.00015015, 0.00014856, 0.000147, 0.00014545, 0.00014391, 0.00014239, 0.00014089, 0.0001394, 0.00013793, 0.00013647, 0.00013503, 0.0001336, 0.00013219, 0.00013079, 0.00012941, 0.00012804, 0.00012668, 0.00012534, 0.00012401, 0.00012269, 0.00012139, 0.00012011, 0.00011883, 0.00011757, 0.00011632, 0.00011508, 0.00011386, 0.00011265, 0.00011145, 0.00011027, 0.00010909, 0.00010793, 0.00010678, 0.00010564, 0.00010452, 0.0001034, 0.0001023, 0.00010121, 0.00010013, 0.00009906, 0.000098, 0.00009696, 0.00009592, 0.0000949, 0.00009388, 0.00009288, 0.00009188, 0.0000909, 0.00008993, 0.00008896, 0.00008801, 0.00008707, 0.00008613, 0.00008521, 0.00008429, 0.00008339, 0.00008249, 0.00008161, 0.00008073, 0.00007986, 0.00007901, 0.00007816, 0.00007732, 0.00007648, 0.00007566, 0.00007485, 0.00007404, 0.00007324, 0.00007245, 0.00007167, 0.0000709, 0.00007013, 0.00006938, 0.00006863, 0.00006789, 0.00006715, 0.00006643, 0.00006571, 0.000065, 0.00006429, 0.0000636, 0.00006291, 0.00006223, 0.00006155, 0.00006089, 0.00006023, 0.00005957, 0.00005893, 0.00005829, 0.00005766, 0.00005703, 0.00005641, 0.0000558, 0.00005519, 0.00005459, 0.000054, 0.00005341, 0.00005283, 0.00005225, 0.00005168, 0.00005112, 0.00005056, 0.00005001, 0.00004947, 0.00004893, 0.00004839, 0.00004787, 0.00004734, 0.00004683, 0.00004631, 0.00004581, 0.00004531, 0.00004481, 0.00004432, 0.00004384, 0.00004336, 0.00004288, 0.00004241, 0.00004195, 0.00004149, 0.00004103, 0.00004058, 0.00004014, 0.0000397, 0.00003926, 0.00003883, 0.0000384, 0.00003798, 0.00003756, 0.00003715, 0.00003674, 0.00003634, 0.00003594, 0.00003554, 0.00003515, 0.00003476, 0.00003438, 0.000034, 0.00003363, 0.00003325, 0.00003289, 0.00003252, 0.00003217, 0.00003181, 0.00003146, 0.00003111, 0.00003077, 0.00003043, 0.00003009, 0.00002976, 0.00002943, 0.0000291, 0.00002878, 0.00002846, 0.00002814, 0.00002783, 0.00002752, 0.00002722, 0.00002692, 0.00002662, 0.00002632, 0.00002603, 0.00002574, 0.00002545, 0.00002517, 0.00002489, 0.00002461, 0.00002434, 0.00002407, 0.0000238, 0.00002353, 0.00002327, 0.00002301, 0.00002276, 0.0000225, 0.00002225, 0.000022, 0.00002176, 0.00002151, 0.00002127, 0.00002103, 0.0000208, 0.00002057, 0.00002034, 0.00002011, 0.00001988, 0.00001966, 0.00001944, 0.00001922, 0.00001901, 0.00001879, 0.00001858, 0.00001837, 0.00001817, 0.00001796, 0.00001776, 0.00001756, 0.00001737, 0.00001717, 0.00001698, 0.00001679, 0.0000166, 0.00001641, 0.00001623, 0.00001604, 0.00001586, 0.00001568, 0.00001551, 0.00001533, 0.00001516, 0.00001499, 0.00001482, 0.00001465, 0.00001448, 0.00001432, 0.00001416, 0.000014, 0.00001384, 0.00001368, 0.00001353, 0.00001338, 0.00001322, 0.00001307, 0.00001293, 0.00001278, 0.00001263, 0.00001249, 0.00001235, 0.00001221, 0.00001207, 0.00001193, 0.0000118, 0.00001166, 0.00001153, 0.0000114, 0.00001127, 0.00001114, 0.00001102, 0.00001089, 0.00001077, 0.00001064, 0.00001052, 0.0000104, 0.00001028, 0.00001017, 0.00001005, 9.9353303e-06, 9.82186568e-06, 9.70966174e-06, 9.59870488e-06, 9.48898165e-06, 9.38047874e-06, 9.27318297e-06, 9.16708131e-06, 9.06216086e-06, 8.95840886e-06, 8.85581267e-06, 8.75435981e-06, 8.65403789e-06, 8.55483468e-06, 8.45673807e-06, 8.35973608e-06, 8.26381685e-06, 8.16896865e-06, 8.07517987e-06, 7.98243901e-06, 7.89073472e-06, 7.80005573e-06, 7.71039093e-06, 7.6217293e-06, 7.53405994e-06, 7.44737207e-06, 7.36165502e-06, 7.27689823e-06, 7.19309126e-06, 7.11022377e-06, 7.02828553e-06, 6.94726643e-06, 6.86715645e-06, 6.78794568e-06, 6.70962433e-06, 6.63218269e-06, 6.55561117e-06, 6.47990027e-06, 6.4050406e-06, 6.33102286e-06, 6.25783786e-06, 6.18547649e-06, 6.11392976e-06, 6.04318875e-06, 5.97324465e-06, 5.90408874e-06, 5.8357124e-06, 5.76810707e-06, 5.70126433e-06, 5.63517582e-06, 5.56983326e-06, 5.50522847e-06, 5.44135337e-06, 5.37819995e-06, 5.31576028e-06, 5.25402653e-06, 5.19299095e-06, 5.13264585e-06, 5.07298366e-06, 5.01399686e-06, 4.95567803e-06, 4.89801981e-06, 4.84101493e-06, 4.7846562e-06, 4.7289365e-06, 4.6738488e-06, 4.61938611e-06, 4.56554157e-06, 4.51230833e-06, 4.45967967e-06, 4.4076489e-06, 4.35620943e-06, 4.30535473e-06, 4.25507833e-06, 4.20537384e-06, 4.15623494e-06, 4.10765537e-06, 4.05962895e-06, 4.01214955e-06, 3.96521112e-06, 3.91880766e-06, 3.87293325e-06, 3.82758203e-06, 3.78274819e-06, 3.738426e-06, 3.69460978e-06, 3.65129391e-06, 3.60847284e-06, 3.56614108e-06, 3.52429318e-06, 3.48292378e-06, 3.44202755e-06, 3.40159923e-06, 3.36163362e-06, 3.32212556e-06, 3.28306997e-06, 3.2444618e-06, 3.20629607e-06, 3.16856785e-06, 3.13127226e-06, 3.09440448e-06, 3.05795973e-06, 3.02193331e-06, 2.98632053e-06, 2.95111677e-06, 2.91631748e-06, 2.88191812e-06, 2.84791424e-06, 2.8143014e-06, 2.78107524e-06, 2.74823142e-06, 2.71576567e-06, 2.68367376e-06, 2.65195149e-06, 2.62059473e-06, 2.58959939e-06, 2.55896139e-06, 2.52867675e-06, 2.4987415e-06, 2.46915171e-06, 2.43990351e-06, 2.41099305e-06, 2.38241656e-06, 2.35417027e-06, 2.32625046e-06, 2.29865348e-06, 2.27137569e-06, 2.24441349e-06, 2.21776334e-06, 2.19142172e-06, 2.16538515e-06, 2.1396502e-06, 2.11421346e-06, 2.08907159e-06, 2.06422124e-06, 2.03965913e-06, 2.01538201e-06, 1.99138665e-06, 1.96766989e-06, 1.94422856e-06, 1.92105956e-06, 1.8981598e-06, 1.87552625e-06, 1.85315589e-06, 1.83104573e-06, 1.80919285e-06, 1.78759432e-06, 1.76624726e-06, 1.74514882e-06, 1.72429618e-06, 1.70368656e-06, 1.6833172e-06, 1.66318537e-06, 1.64328838e-06, 1.62362356e-06, 1.60418827e-06, 1.5849799e-06, 1.56599589e-06, 1.54723366e-06, 1.52869071e-06, 1.51036454e-06, 1.49225267e-06, 1.47435268e-06, 1.45666215e-06, 1.43917868e-06, 1.42189993e-06, 1.40482356e-06, 1.38794725e-06, 1.37126873e-06, 1.35478575e-06, 1.33849606e-06, 1.32239746e-06, 1.30648777e-06, 1.29076484e-06, 1.27522651e-06, 1.2598707e-06, 1.24469529e-06, 1.22969825e-06, 1.21487751e-06, 1.20023107e-06, 1.18575692e-06, 1.1714531e-06, 1.15731765e-06, 1.14334863e-06, 1.12954415e-06, 1.11590232e-06, 1.10242126e-06, 1.08909914e-06, 1.07593412e-06, 1.06292441e-06, 1.05006822e-06, 1.03736378e-06, 1.02480935e-06, 1.0124032e-06, 1.00014363e-06, 9.88028953e-07, 9.76057497e-07, 9.64227615e-07, 9.52537674e-07, 9.40986064e-07, 9.29571188e-07, 9.1829147e-07, 9.07145351e-07, 8.9613129e-07, 8.85247761e-07, 8.74493259e-07, 8.63866291e-07, 8.53365386e-07, 8.42989085e-07, 8.32735949e-07, 8.22604552e-07, 8.12593487e-07, 8.0270136e-07, 7.92926795e-07, 7.8326843e-07, 7.73724919e-07, 7.64294932e-07, 7.54977152e-07, 7.45770278e-07, 7.36673024e-07, 7.27684117e-07, 7.18802301e-07, 7.10026332e-07, 7.0135498e-07, 6.92787031e-07, 6.84321281e-07, 6.75956544e-07, 6.67691644e-07, 6.5952542e-07, 6.51456724e-07, 6.4348442e-07, 6.35607387e-07, 6.27824513e-07, 6.20134703e-07, 6.12536871e-07, 6.05029945e-07, 5.97612865e-07, 5.90284582e-07, 5.83044061e-07, 5.75890276e-07, 5.68822215e-07, 5.61838876e-07, 5.54939269e-07, 5.48122416e-07, 5.41387348e-07, 5.3473311e-07, 5.28158754e-07, 5.21663348e-07, 5.15245965e-07, 5.08905692e-07, 5.02641627e-07, 4.96452875e-07, 4.90338553e-07, 4.8429779e-07, 4.78329722e-07, 4.72433495e-07, 4.66608268e-07, 4.60853205e-07, 4.55167484e-07, 4.49550288e-07, 4.44000813e-07, 4.38518263e-07, 4.3310185e-07, 4.27750797e-07, 4.22464334e-07, 4.172417e-07, 4.12082145e-07, 4.06984926e-07, 4.01949307e-07, 3.96974562e-07, 3.92059974e-07, 3.87204834e-07, 3.8240844e-07, 3.77670098e-07, 3.72989124e-07, 3.68364839e-07, 3.63796575e-07, 3.59283668e-07, 3.54825466e-07, 3.5042132e-07, 3.46070592e-07, 3.4177265e-07, 3.37526868e-07, 3.33332629e-07, 3.29189323e-07, 3.25096347e-07, 3.21053103e-07, 3.17059003e-07, 3.13113463e-07, 3.09215908e-07, 3.05365768e-07, 3.01562481e-07, 2.97805489e-07, 2.94094244e-07, 2.90428202e-07, 2.86806826e-07, 2.83229584e-07, 2.79695951e-07, 2.7620541e-07, 2.72757447e-07, 2.69351556e-07, 2.65987235e-07, 2.62663989e-07, 2.59381329e-07, 2.56138772e-07, 2.52935839e-07, 2.49772057e-07, 2.4664696e-07, 2.43560086e-07, 2.40510979e-07, 2.37499187e-07, 2.34524266e-07, 2.31585774e-07, 2.28683276e-07, 2.25816342e-07, 2.22984547e-07, 2.20187469e-07, 2.17424695e-07, 2.14695812e-07, 2.12000416e-07, 2.09338105e-07, 2.06708482e-07, 2.04111157e-07, 2.01545741e-07, 1.99011852e-07, 1.96509112e-07, 1.94037147e-07, 1.91595588e-07, 1.89184069e-07, 1.86802229e-07, 1.84449713e-07, 1.82126168e-07, 1.79831245e-07, 1.775646e-07, 1.75325892e-07, 1.73114787e-07, 1.70930951e-07, 1.68774056e-07, 1.66643777e-07, 1.64539795e-07, 1.62461791e-07, 1.60409453e-07, 1.58382471e-07, 1.5638054e-07, 1.54403357e-07, 1.52450622e-07, 1.50522042e-07, 1.48617324e-07, 1.4673618e-07, 1.44878326e-07, 1.43043478e-07, 1.4123136e-07, 1.39441696e-07, 1.37674215e-07, 1.35928648e-07, 1.34204729e-07, 1.32502197e-07, 1.30820792e-07, 1.29160258e-07, 1.27520343e-07, 1.25900796e-07, 1.2430137e-07, 1.22721821e-07, 1.21161908e-07, 1.19621392e-07, 1.18100037e-07, 1.16597612e-07, 1.15113885e-07, 1.1364863e-07, 1.12201622e-07, 1.10772638e-07, 1.0936146e-07, 1.07967871e-07, 1.06591656e-07, 1.05232605e-07, 1.03890507e-07, 1.02565157e-07, 1.0125635e-07, 9.99638847e-08, 9.86875612e-08, 9.74271828e-08, 9.6182555e-08, 9.49534853e-08, 9.37397839e-08, 9.25412629e-08, 9.13577368e-08, 9.01890224e-08, 8.90349384e-08, 8.78953061e-08, 8.67699484e-08, 8.56586908e-08, 8.45613606e-08, 8.34777872e-08, 8.24078021e-08, 8.13512388e-08, 8.03079328e-08, 7.92777215e-08, 7.82604443e-08, 7.72559425e-08, 7.62640594e-08, 7.528464e-08, 7.43175312e-08, 7.33625819e-08, 7.24196427e-08, 7.14885658e-08, 7.05692055e-08, 6.96614176e-08, 6.87650599e-08, 6.78799915e-08, 6.70060737e-08, 6.6143169e-08, 6.52911417e-08, 6.4449858e-08, 6.36191853e-08, 6.27989929e-08, 6.19891515e-08, 6.11895334e-08, 6.04000124e-08, 5.9620464e-08, 5.88507649e-08, 5.80907937e-08, 5.73404299e-08, 5.6599555e-08, 5.58680516e-08, 5.51458039e-08, 5.44326973e-08, 5.37286187e-08, 5.30334565e-08, 5.23471001e-08, 5.16694406e-08, 5.10003703e-08, 5.03397826e-08, 4.96875725e-08, 4.9043636e-08, 4.84078706e-08, 4.77801748e-08, 4.71604486e-08, 4.65485929e-08, 4.59445101e-08, 4.53481036e-08, 4.4759278e-08, 4.41779391e-08, 4.36039938e-08, 4.30373502e-08, 4.24779174e-08, 4.19256057e-08, 4.13803265e-08, 4.08419921e-08, 4.03105162e-08, 3.97858131e-08, 3.92677987e-08, 3.87563894e-08, 3.82515028e-08, 3.77530578e-08, 3.72609737e-08, 3.67751713e-08, 3.62955722e-08, 3.58220989e-08, 3.53546747e-08, 3.48932243e-08, 3.44376728e-08, 3.39879465e-08, 3.35439726e-08, 3.31056792e-08, 3.2672995e-08, 3.22458499e-08, 3.18241746e-08, 3.14079005e-08, 3.09969599e-08, 3.05912861e-08, 3.01908129e-08, 2.97954752e-08, 2.94052085e-08, 2.90199492e-08, 2.86396345e-08, 2.82642022e-08, 2.78935911e-08, 2.75277406e-08, 2.71665909e-08, 2.68100828e-08, 2.6458158e-08, 2.61107589e-08, 2.57678285e-08, 2.54293106e-08, 2.50951496e-08, 2.47652907e-08, 2.44396797e-08, 2.4118263e-08, 2.38009879e-08, 2.3487802e-08, 2.31786538e-08, 2.28734924e-08, 2.25722674e-08, 2.22749292e-08, 2.19814288e-08, 2.16917175e-08, 2.14057477e-08, 2.11234719e-08, 2.08448435e-08, 2.05698164e-08, 2.0298345e-08, 2.00303843e-08, 1.976589e-08, 1.9504818e-08, 1.92471252e-08, 1.89927686e-08, 1.87417061e-08, 1.84938958e-08, 1.82492965e-08, 1.80078675e-08, 1.77695687e-08, 1.75343602e-08, 1.73022028e-08, 1.70730579e-08, 1.68468871e-08, 1.66236527e-08, 1.64033173e-08, 1.61858441e-08, 1.59711968e-08, 1.57593393e-08, 1.55502362e-08, 1.53438525e-08, 1.51401534e-08, 1.49391049e-08, 1.47406731e-08, 1.45448247e-08, 1.43515269e-08, 1.4160747e-08, 1.3972453e-08, 1.37866132e-08, 1.36031962e-08, 1.34221711e-08, 1.32435075e-08, 1.3067175e-08, 1.2893144e-08, 1.27213851e-08, 1.25518692e-08, 1.23845676e-08, 1.2219452e-08, 1.20564945e-08, 1.18956674e-08, 1.17369434e-08, 1.15802957e-08, 1.14256976e-08, 1.12731229e-08, 1.11225456e-08, 1.09739402e-08, 1.08272814e-08, 1.06825441e-08, 1.05397038e-08, 1.03987361e-08, 1.02596169e-08, 1.01223226e-08, 9.98682963e-09, 9.85311491e-09, 9.72115558e-09, 9.59092906e-09, 9.46241307e-09, 9.33558561e-09, 9.21042496e-09, 9.08690966e-09, 8.96501853e-09, 8.84473065e-09, 8.72602537e-09, 8.6088823e-09, 8.4932813e-09, 8.37920249e-09, 8.26662624e-09, 8.15553317e-09, 8.04590414e-09, 7.93772025e-09, 7.83096284e-09, 7.72561349e-09, 7.62165401e-09, 7.51906644e-09, 7.41783304e-09, 7.31793632e-09, 7.21935897e-09, 7.12208393e-09, 7.02609434e-09, 6.93137357e-09, 6.8379052e-09, 6.74567298e-09, 6.65466092e-09, 6.5648532e-09, 6.47623421e-09, 6.38878853e-09, 6.30250095e-09, 6.21735644e-09, 6.13334016e-09, 6.05043747e-09, 5.96863391e-09, 5.8879152e-09, 5.80826725e-09, 5.72967615e-09, 5.65212814e-09, 5.57560967e-09, 5.50010735e-09, 5.42560796e-09, 5.35209844e-09, 5.2795659e-09, 5.20799763e-09, 5.13738106e-09, 5.0677038e-09, 4.99895359e-09, 4.93111836e-09, 4.86418617e-09, 4.79814525e-09, 4.73298396e-09, 4.66869082e-09, 4.6052545e-09, 4.54266381e-09, 4.48090771e-09, 4.41997528e-09, 4.35985577e-09, 4.30053854e-09, 4.2420131e-09, 4.1842691e-09, 4.1272963e-09, 4.07108463e-09, 4.0156241e-09, 3.96090489e-09, 3.90691728e-09, 3.85365169e-09, 3.80109865e-09, 3.74924882e-09, 3.69809298e-09, 3.64762202e-09, 3.59782696e-09, 3.54869893e-09, 3.50022916e-09, 3.45240902e-09, 3.40522997e-09, 3.35868358e-09, 3.31276154e-09, 3.26745564e-09, 3.22275778e-09, 3.17865996e-09, 3.13515428e-09, 3.09223294e-09, 3.04988827e-09, 3.00811265e-09, 2.9668986e-09, 2.92623871e-09, 2.88612568e-09, 2.8465523e-09, 2.80751146e-09, 2.76899612e-09, 2.73099935e-09, 2.69351431e-09, 2.65653424e-09, 2.62005247e-09, 2.58406243e-09, 2.5485576e-09, 2.51353158e-09, 2.47897805e-09, 2.44489074e-09, 2.41126349e-09, 2.37809021e-09, 2.3453649e-09, 2.31308162e-09, 2.91848113, 1.30240233, 0.16036154, 0.00645667, 0.00008966, 4.3969822e-07, 7.71236126e-10, 4.87495597e-13, 1.11588676e-16, 9.28068508e-21, 2.81112826e-25, 3.10658099e-30, 1.25419124e-35, 1.85170987e-41, 1.00061308e-47, 1.98029746e-54, 1.43615203e-61, 3.81830458e-69, 3.72309183e-77, 1.33179612e-85, 1.74819618e-94, 8.42291061e-104, 1.48984643e-113, 9.6761944e-124, 2.30790828e-134, 2.0218205e-145, 6.50622745e-157, 7.69175171e-169, 3.34096933e-181, 5.33222577e-194, 3.12728362e-207, 6.7403023e-221, 5.33915679e-235, 1.55443479e-249, 1.66342035e-264, 6.54308193e-280, 9.46091177e-296, 5.02888604e-312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.97505314, 11.93955297, 17.88297721, 23.79486561, 29.66485057, 35.48268745, 41.23828437, 46.92173138, 52.52332884, 58.03361504, 63.44339274, 68.74375474, 73.92610819, 78.9821977, 83.90412705, 88.68437955, 93.31583677, 97.79179586, 102.10598509, 106.25257786, 110.22620489, 114.02196475, 117.63543254, 121.06266688, 124.30021506, 127.34511641, 130.19490391, 132.84760401, 135.30173483, 137.5563025, 139.61079598, 141.46518026, 143.11988794, 144.57580941, 145.83428155, 146.89707512, 147.7663809, 148.44479459, 148.93530063, 149.24125505, 149.36636736, 149.31468162, 149.09055683, 148.69864659, 148.14387834, 147.4314321, 146.56671886, 145.55535881, 144.40315933, 143.11609298, 141.70027553, 140.16194406, 138.50743539, 136.74316464, 134.87560434, 132.91126383, 130.85666925, 128.71834414, 126.50279059, 124.21647116, 121.86579152, 119.45708387, 116.99659122, 114.49045248, 111.9446885, 109.36518903, 106.75770055, 104.12781513, 101.48096021, 98.82238934, 96.15717392, 93.49019585, 90.82614121, 88.16949475, 85.52453546, 82.8953329, 80.28574452, 77.69941373, 75.13976886, 72.61002292, 70.11317403, 67.65200667, 65.22909355, 62.84679814, 60.50727782, 58.21248752, 55.964184, 53.76393049, 51.61310185, 49.51289004, 47.46431004, 45.468206, 43.52525769, 41.63598715, 39.80076562, 38.01982049, 36.29324247, 34.6209928, 33.00291049, 31.43871965, 29.92803671, 28.47037765, 27.06516519, 25.7117358, 24.40934669, 23.15718261, 21.95436246, 20.79994584, 19.69293929, 18.63230238, 17.61695361, 16.64577604, 15.7176227, 14.83132179, 13.98568159, 13.17949513, 12.41154465, 11.68060577, 10.98545137, 10.32485534, 9.69759591, 9.1024589, 8.53824061, 8.00375054, 7.49781381, 7.01927347, 6.56699245, 6.13985539, 5.73677027, 5.3566698, 4.99851263, 4.66128441, 4.34399868, 4.04569756, 3.76545233, 3.50236386, 3.25556289, 3.02421022, 2.80749672, 2.60464331, 2.41490082, 2.23754972, 2.07189981, 1.91728982, 1.77308697, 1.6386864, 1.51351067, 1.39700907, 1.288657, 1.18795525, 1.09442934, 1.00762868, 0.92712591, 0.85251604, 0.78341573, 0.71946246, 0.66031375, 0.60564638, 0.55515558, 0.50855428, 0.46557232, 0.4259557, 0.38946584, 0.35587883, 0.32498476, 0.29658697, 0.27050145, 0.2465561, 0.22459015, 0.20445355, 0.18600636, 0.16911816, 0.15366758, 0.13954167, 0.1266355, 0.11485159, 0.10409952, 0.09429546, 0.08536176, 0.07722654, 0.06982333, 0.06309072, 0.05697201, 0.05141487, 0.0463711, 0.04179627, 0.03764951, 0.03389322, 0.03049287, 0.02741674, 0.02463574, 0.02212318, 0.01985464, 0.01780774, 0.01596204, 0.01429884, 0.01280106, 0.01145313, 0.01024084, 0.00915125, 0.00817256, 0.00729407, 0.00650601, 0.00579954, 0.00516661, 0.00459994, 0.00409291, 0.00363954, 0.00323441, 0.00287262, 0.00254973, 0.00226176, 0.00200508, 0.00177645, 0.00157293, 0.00139187, 0.0012309, 0.00108789, 0.0009609, 0.00084822, 0.0007483, 0.00065974, 0.00058131, 0.0005119, 0.0004505, 0.00039622, 0.00034827, 0.00030593, 0.00026858, 0.00023565, 0.00020663, 0.00018107, 0.00015858, 0.00013879, 0.0001214, 0.00010613, 0.00009272, 0.00008096, 0.00007064, 0.0000616, 0.00005369, 0.00004677, 0.00004071, 0.00003541, 0.00003079, 0.00002675, 0.00002323, 0.00002016, 0.00001749, 0.00001516, 0.00001313, 0.00001137, 9.83576696e-06, 8.50503062e-06, 7.34989272e-06, 6.3478059e-06, 5.47903215e-06, 4.72630434e-06, 4.07452693e-06, 3.51051171e-06, 3.02274446e-06, 2.60117916e-06, 2.23705659e-06, 1.92274457e-06, 1.65159738e-06, 1.41783206e-06, 1.21641974e-06, 1.04299022e-06, 8.93748163e-07, 7.65399698e-07, 6.55088013e-07, 5.60337004e-07, 4.79001953e-07, 4.09226393e-07, 3.49404426e-07, 2.98147811e-07, 2.5425725e-07, 2.16697352e-07, 1.84574816e-07, 1.57119432e-07, 1.3366756e-07, 1.13647749e-07, 9.65682567e-08, 8.20062065e-08, 6.95981777e-08, 5.90320501e-08, 5.00399369e-08, 4.23920645e-08, 3.58914781e-08, 3.03694635e-08, 2.56815913e-08, 2.17043014e-08, 1.83319557e-08, 1.54742969e-08, 1.30542591e-08, 1.10060818e-08, 9.2736882e-09, 7.80928941e-09, 6.57218613e-09, 5.52773904e-09, 4.64648547e-09, 3.90338186e-09, 3.27715463e-09, 2.74974421e-09, 2.30582932e-09, 1.93242012e-09, 1.61851044e-09, 1.35478085e-09, 1.13334521e-09, 9.47534496e-10, 7.91712543e-10, 6.61119139e-10, 5.51736445e-10, 4.60175381e-10, 3.83579053e-10, 3.19540719e-10, 2.66034145e-10, 2.2135454e-10, 1.84068464e-10, 1.52971412e-10, 1.27051888e-10, 1.05461016e-10, 8.74868521e-11, 7.25326703e-11, 6.00986345e-11, 4.97663316e-11, 4.11857299e-11, 3.40641881e-11, 2.81572009e-11, 2.32606102e-11, 1.92040549e-11, 1.58454658e-11, 1.30664418e-11, 1.07683695e-11, 8.86916773e-12, 7.30055899e-12, 6.00578407e-12, 4.93768849e-12, 4.05712192e-12, 3.33159998e-12, 2.73418618e-12, 2.2425585e-12, 1.83823049e-12, 1.50590182e-12, 1.2329171e-12, 1.00881527e-12, 8.24954488e-13, 6.74200272e-13, 5.50666264e-13, 4.49498918e-13, 3.66698797e-13, 2.98972328e-13, 2.43608925e-13, 1.98379189e-13, 1.61450636e-13, 1.3131797e-13, 1.06745441e-13, 8.67192079e-14, 7.04080114e-14, 5.71307182e-14, 4.63295559e-14, 3.7548056e-14, 3.0412888e-14, 2.46189072e-14, 1.99168567e-14, 1.61032586e-14, 1.3012109e-14, 1.05080612e-14, 8.4808325e-15, 6.84061876e-15, 5.51433715e-15, 4.44254962e-15, 3.57694548e-15, 2.87828259e-15, 2.31470492e-15, 1.86036838e-15, 1.49431925e-15, 1.19957934e-15, 9.62400241e-16, 7.71655833e-16, 6.18347709e-16, 4.95202781e-16, 3.96346126e-16, 3.17035137e-16, 2.5344366e-16, 2.02486809e-16, 1.61678892e-16, 1.29018269e-16, 1.02894085e-16, 8.20107798e-17, 6.53270151e-17, 5.20063108e-17, 4.13771575e-17, 3.29008141e-17, 2.61453246e-17, 2.07645654e-17, 1.64813615e-17, 1.30738882e-17, 1.03647279e-17, 8.21206761e-18, 6.50262353e-18, 5.14595761e-18, 4.06991472e-18, 3.21696206e-18, 2.54125419e-18, 2.00628131e-18, 1.58298613e-18, 1.24825689e-18, 9.83722087e-19, 7.7478727e-19, 6.09865612e-19, 4.79763764e-19, 3.7719192e-19, 2.96373229e-19, 2.32732603e-19, 1.82648942e-19, 1.43257967e-19, 1.12295436e-19, 8.79725428e-20, 6.88769501e-20, 5.38942469e-20, 4.21456403e-20, 3.29385643e-20, 2.57275509e-20, 2.00832507e-20, 1.56679209e-20, 1.22160425e-20, 9.51900413e-21, 7.41300555e-21, 5.76951059e-21, 4.48771712e-21, 3.48862135e-21, 2.71034183e-21, 2.10443823e-21, 1.63301506e-21, 1.26644433e-21, 9.81575997e-22, 7.60332722e-22, 5.88606926e-22, 4.55395779e-22, 3.52123159e-22, 2.72108522e-22, 2.10151103e-22, 1.62204609e-22, 1.25122871e-22, 9.64611021e-23, 7.43206935e-23, 5.72280981e-23, 4.40403648e-23, 3.38715091e-23, 2.60351594e-23, 1.9999908e-23, 1.5354576e-23, 1.17812058e-23, 9.03407616e-24, 6.92340686e-24, 5.30271238e-24, 4.05899399e-24, 3.10513777e-24, 2.37402603e-24, 1.81397888e-24, 1.38522759e-24, 1.05718794e-24, 8.06353441e-25, 6.14668373e-25, 4.68272315e-25, 3.56531821e-25, 2.71294081e-25, 2.06312032e-25, 1.56801791e-25, 1.19102181e-25, 9.04129524e-26, 6.85936381e-26, 5.20090932e-26, 3.9410958e-26, 2.98467451e-26, 2.25901567e-26, 1.70877075e-26, 1.29178625e-26, 9.75977527e-27, 7.3693858e-27, 5.56115616e-27, 4.19412353e-27, 3.16125612e-27, 2.38133498e-27, 1.7927662e-27, 1.34886715e-27, 1.01427815e-27, 7.62232275e-28, 5.72479557e-28, 4.29709566e-28, 3.22353551e-28, 2.41675319e-28, 1.81081696e-28, 1.35599856e-28, 1.01481371e-28, 7.59024615e-29, 5.67371916e-29, 4.23859827e-29, 3.16460226e-29, 2.36133972e-29, 1.76092265e-29, 1.31239499e-29, 9.7753278e-30, 7.27680245e-30, 5.41367694e-30, 4.0251919e-30, 2.9910478e-30, 2.22127656e-30, 1.6486347e-30, 1.22289387e-30, 9.06558084e-31, 6.71653133e-31, 4.97321235e-31, 3.68020082e-31, 2.72175226e-31, 2.01172326e-31, 1.48603984e-31, 1.09707231e-31, 8.09436225e-32, 5.96860192e-32, 4.39850603e-32, 3.23951782e-32, 2.38450461e-32, 1.75411708e-32, 1.28961956e-32, 9.47561212e-33, 6.95817862e-33, 5.10653735e-33, 3.74541633e-33, 2.74546771e-33, 2.01129252e-33, 1.47257289e-33, 1.07750932e-33, 7.87966846e-34, 5.75887346e-34, 4.2063927e-34, 3.07061089e-34, 2.24017763e-34, 1.63336344e-34, 1.19021636e-34, 8.66785653e-35, 6.30870521e-35, 4.5889305e-35, 3.33599551e-35, 2.42371847e-35, 1.75987422e-35, 1.27709685e-35, 9.26208559e-36, 6.71330695e-36, 4.86303039e-36, 3.52062874e-36, 2.54727745e-36, 1.84193818e-36, 1.33111824e-36, 9.61393115e-37, 6.93949991e-37, 5.00608409e-37, 3.60919969e-37, 2.60055768e-37, 1.87268566e-37, 1.34773993e-37, 9.69371247e-38, 6.96814212e-38, 5.00595221e-38, 3.59417515e-38, 2.57901946e-38, 1.84949366e-38, 1.32554334e-38, 9.49462618e-39, 6.79680285e-39, 4.8626649e-39, 3.47685744e-39, 2.48451888e-39, 1.77435534e-39, 1.26643173e-39, 9.03370401e-40, 6.44010317e-40, 4.58841502e-40, 3.26719807e-40, 2.32504382e-40, 1.65359722e-40, 1.17536091e-40, 8.34940777e-41, 5.92765648e-41, 4.20584548e-41, 2.98240441e-41, 2.11359947e-41, 1.49699997e-41, 1.05965341e-41, 7.49633247e-42, 5.3000113e-42, 3.74496455e-42, 2.64460972e-42, 1.86645893e-42, 1.3164921e-42, 9.28027943e-43, 6.53802881e-43, 4.6033669e-43, 3.23927143e-43, 2.27804387e-43, 1.60110503e-43, 1.12465822e-43, 7.89522129e-44, 5.5392512e-44, 3.88401435e-44, 2.72178369e-44, 1.90620415e-44, 1.33422243e-44, 9.33318966e-45, 6.52491679e-45, 4.55892975e-45, 3.18341942e-45, 2.22161023e-45, 1.54947623e-45, 1.08005289e-45, 7.52398947e-46, 5.23834858e-46, 3.64488367e-46, 2.53463843e-46, 1.76153561e-46, 1.22351673e-46, 8.49320241e-47, 5.8921815e-47, 4.08529894e-47, 2.83083564e-47, 1.96041744e-47, 1.35683037e-47, 9.38524579e-48, 6.48797022e-48, 4.48244686e-48, 3.09502784e-48, 2.13578278e-48, 1.47296599e-48, 1.01524644e-48, 6.99348023e-49, 4.81457941e-49, 3.31258084e-49, 2.27781133e-49, 1.56535249e-49, 1.07510204e-49, 7.37955827e-50, 5.06237359e-50, 3.47073269e-50, 2.37810645e-50, 1.62848804e-50, 1.11450241e-50, 7.62290684e-51, 5.21078768e-51, 3.55983043e-51, 2.43051562e-51, 1.65848174e-51, 1.13100924e-51, 7.70840968e-52, 5.25057188e-52, 3.57430506e-52, 2.43175497e-52, 1.65345052e-52, 1.12358463e-52, 7.63068584e-53, 5.17922241e-53, 3.51324756e-53, 2.38174989e-53, 1.61371473e-53, 1.09269911e-53, 7.39465014e-54, 5.00124227e-54, 3.38050341e-54, 2.28364235e-54, 1.54176445e-54, 1.04028228e-54, 7.01499885e-55, 4.72767101e-55, 3.18427179e-55, 2.14346431e-55, 1.44200122e-55, 9.69523293e-56, 6.51469547e-56, 4.37495153e-56, 2.93626757e-56, 1.96952397e-56, 1.32029256e-56, 8.84549921e-57, 5.92267343e-57, 3.96329589e-57, 2.65056513e-57, 1.77159212e-57, 1.18340194e-57, 7.90030935e-58, 5.27107507e-58, 3.51477551e-58, 2.34228249e-58, 1.55999873e-58, 1.03837091e-58, 6.90755061e-59, 4.59239188e-59, 3.0513857e-59, 2.0262759e-59, 1.34475559e-59, 8.91931389e-60, 5.91238696e-60, 3.91685567e-60, 2.59331698e-60, 1.71599872e-60, 1.13480604e-60, 7.50014469e-61, 4.9540567e-61, 3.27036054e-61, 2.15761339e-61, 1.42263981e-61, 9.37474849e-62, 6.17401431e-62, 4.06367513e-62, 2.67309058e-62, 1.7573235e-62, 1.15460413e-62, 7.5815473e-63, 4.97537644e-63, 3.26315271e-63, 2.13890852e-63, 1.40116856e-63, 9.17343359e-64, 6.00228793e-64, 3.92504912e-64, 2.56517346e-64, 1.67545108e-64, 1.09367968e-64, 7.13496601e-65, 4.6519716e-65, 3.03127671e-65, 1.97404703e-65, 1.28479191e-65, 8.35702077e-66, 5.43267293e-66, 3.52954749e-66, 2.29175346e-66, 1.48716844e-66, 9.64485765e-67, 6.25136543e-67, 4.04946225e-67, 2.62158069e-67, 1.69618224e-67, 1.09679435e-67, 7.08796082e-68, 4.5778423e-68, 2.95490664e-68, 1.90620725e-68, 1.22896607e-68, 7.91868543e-69, 5.09929003e-69, 3.28178227e-69, 2.11082993e-69, 1.35687597e-69, 8.71706924e-70, 5.59685781e-70, 3.59138107e-70, 2.30314958e-70, 1.47613555e-70, 9.45526659e-71, 6.0529176e-71, 3.87256925e-71, 2.4761507e-71, 1.58233489e-71, 1.01056252e-71, 6.45017397e-72, 4.11455739e-72, 2.62312073e-72, 1.67130955e-72, 1.06423852e-72, 6.77274178e-73, 4.30758174e-73, 2.7380792e-73, 1.73940997e-73, 1.10433637e-73, 7.00719608e-74, 4.44355583e-74, 2.81618052e-74, 1.78374931e-74, 1.12914737e-74, 7.1434979e-75, 4.51663193e-75, 2.85405255e-75, 1.8024064e-75, 1.13759314e-75, 7.17570709e-76, 4.52361811e-76, 2.85003808e-76, 1.79456374e-76, 1.12930334e-76, 7.10241165e-77, 4.46420953e-77, 2.80431506e-77, 1.76056696e-77, 1.10464262e-77, 6.92683043e-78, 4.34101042e-78, 2.71888359e-78, 1.70189952e-78, 1.06468401e-78, 6.65657867e-79, 4.15934482e-79, 2.59742075e-79, 1.62107538e-79, 1.01113149e-79, 6.30312026e-80, 3.92687501e-80, 2.44501818e-80, 1.52146035e-80, 9.46199516e-81, 5.88096153e-81, 3.65306577e-81, 2.26782837e-81, 1.40703991e-81, 8.7246134e-82, 5.40666561e-82, 3.34854681e-82, 2.07265388e-82, 1.28215563e-82, 7.92680641e-83, 4.89778044e-83, 3.02443271e-83, 1.86651762e-83, 1.15123456e-83, 7.09641656e-84, 4.37177641e-84, 2.6916609e-84, 1.6562516e-84, 1.01853472e-84, 6.25992218e-85, 3.84508191e-85, 2.3604012e-85, 1.44813693e-85, 8.87926464e-86, 5.4411155e-86, 3.33228751e-86, 2.03957914e-86, 1.24761973e-86, 7.62724134e-87, 4.66011165e-87, 2.84556649e-87, 1.73653978e-87, 1.05911793e-87, 6.45576171e-88, 3.93273108e-88, 2.39433326e-88, 1.45686241e-88, 8.85923186e-89, 5.38415052e-89, 3.27025721e-89, 1.98513583e-89, 1.20432068e-89, 7.30192985e-90, 4.42462808e-90, 2.67953533e-90, 1.6217571e-90, 9.80970014e-91, 5.93019895e-91, 3.58283165e-91, 2.16335181e-91, 1.30548387e-91, 7.87334858e-92, 4.74559928e-92, 2.85868473e-92, 1.72101666e-92, 1.03549381e-92, 6.22663712e-93, 3.7419952e-93, 2.24748353e-93, 1.34906673e-93, 8.09308252e-94, 4.85219372e-94, 2.9074076e-94, 1.74107444e-94, 1.0420112e-94, 6.23262593e-95, 3.72574709e-95, 2.22586752e-95, 1.32901196e-95, 7.93052797e-96, 4.72954052e-96, 2.81889849e-96, 1.67912707e-96, 9.99611702e-97, 5.94733964e-97, 3.53637078e-97, 2.10153434e-97, 1.24812716e-97, 7.40840684e-98, 4.39475291e-98, 2.60548004e-98, 1.54377744e-98, 9.14166452e-99, 5.4101527e-99, 3.19990748e-99, 1.89151145e-99, 1.11743993e-99, 6.59755555e-100, 3.89301057e-100, 2.29578795e-100, 1.35307423e-100, 7.96994153e-101, 4.69172245e-101, 2.7602801e-101, 1.6229968e-101, 9.53730871e-102, 5.60115622e-102, 3.28755632e-102, 1.92846778e-102, 1.13056424e-102, 6.62402218e-103, 3.87875175e-103, 2.26989552e-103, 1.32758833e-103, 7.76005257e-104, 4.53324906e-104, 2.64666014e-104, 1.54429567e-104, 9.00547066e-105, 5.24838952e-105, 3.05695742e-105, 1.77949349e-105, 1.03525445e-105, 6.01923774e-106, 3.497676e-106, 2.0312405e-106, 1.17892671e-106, 6.83842301e-107, 3.96432097e-107, 2.29681149e-107, 1.32992022e-107, 7.69607915e-108, 4.45099553e-108, 2.57269611e-108, 1.486153e-108, 8.57990059e-109, 4.95045015e-109, 2.85463661e-109, 1.64513171e-109, 9.47532736e-110, 5.45420527e-110, 3.1377074e-110, 1.80400241e-110, 1.03658637e-110, 5.9527492e-111, 3.41643678e-111, 1.9596247e-111, 1.1233527e-111, 6.435808e-112, 3.68496816e-112, 2.10866756e-112, 1.20594142e-112, 6.89267857e-113, 3.93725515e-113, 2.24772313e-113, 1.28243627e-113, 7.31261131e-114, 4.16728222e-114, 2.37343346e-114, 1.3509676e-114, 7.68522409e-115, 4.36929999e-115, 2.48262384e-115, 1.40978767e-115, 8.00092548e-116, 4.53806252e-116, 2.57243528e-116, 1.45734432e-116, 8.25132366e-117, 4.66905305e-117, 2.64044868e-117, 1.49234897e-117, 8.42959654e-118, 4.75868465e-118, 2.68479298e-118, 1.51383459e-118, 8.53080047e-119, 4.80446339e-119, 2.70423069e-119, 1.52120005e-119, 8.55209802e-120, 4.8051036e-120, 2.69821523e-120, 1.51423811e-120, 8.49289011e-121, 4.76058789e-121, 2.66691652e-121, 1.49314508e-121, 8.35484404e-122, 4.6721679e-122, 2.61121294e-122, 1.45851162e-122, 8.14181549e-123, 4.54230587e-123, 2.53265045e-123, 1.41129528e-123, 7.85966957e-124, 4.3745607e-124, 2.43337122e-124, 1.35277651e-124, 7.51601261e-125, 4.17342596e-125, 2.31601672e-125, 1.28450097e-125, 7.1198517e-126, 3.94413006e-126, 2.18361102e-126, 1.20821187e-126, 6.68120329e-127, 3.6924111e-127, 2.03943178e-127, 1.12577627e-127, 6.21067453e-128, 3.42427967e-128, 1.88687643e-128, 1.03910987e-128, 5.71904159e-129, 3.14578342e-129, 1.72933115e-129, 9.50104308e-130, 5.21684811e-130, 2.86278596e-130, 1.57004951e-130, 8.60560878e-131, 4.71404403e-131, 2.58077091e-131, 1.41204671e-131, 7.72133606e-132, 4.21968114e-132, 2.30467984e-132, 1.25801367e-132, 6.86284053e-133, 3.74167657e-133, 2.03878943e-133, 1.11025386e-133, 6.04249093e-134, 3.28665043e-134, 1.7866308e-134, 9.70643861e-135, 5.27022073e-135, 2.85983841e-135, 1.55095066e-135, 8.40617188e-136, 4.55346864e-136, 2.46507555e-136, 1.33371157e-136, 7.21169589e-137, 3.89723588e-137, 2.10484337e-137, 1.13612647e-137, 6.1288272e-138, 3.30424225e-138, 1.78036968e-138, 9.58721146e-139, 5.15962609e-139, 2.77515958e-139, 1.49176874e-139, 8.01417558e-140, 4.30288772e-140, 2.30889926e-140, 1.23820847e-140, 6.63630541e-141, 3.55469852e-141, 1.90293081e-141, 1.01809202e-141, 5.44370883e-142, 2.909019e-142, 1.55361013e-142, 8.29242109e-143, 4.42348409e-143, 2.35825851e-143, 1.25649907e-143, 6.69078005e-144, 3.56069812e-144, 1.89381425e-144, 1.00666142e-144, 5.34777709e-145, 2.83927194e-145, 1.50655333e-145, 7.98924707e-146, 4.23419663e-146, 2.24274563e-146, 1.18722448e-146, 6.28101014e-147, 3.32100841e-147, 1.75490772e-147, 9.26792318e-148, 4.89163897e-148, 2.58029998e-148, 1.36028476e-148, 7.16693229e-149, 3.77381497e-149, 1.98596567e-149, 1.04449582e-149, 5.49016647e-150, 2.88408566e-150, 1.51416999e-150, 7.94483623e-151, 4.1661903e-151, 2.18341906e-151, 1.14361259e-151, 5.98638441e-152, 3.13180069e-152, 1.63744782e-152, 8.55627366e-153, 4.4683348e-153, 2.33211836e-153, 1.21646415e-153, 6.3414984e-154, 3.30391073e-154, 1.72031734e-154, 8.95225977e-155, 4.65586771e-155, 2.41998368e-155, 1.25709497e-155, 6.52630838e-156, 3.38618703e-156, 1.75589339e-156, 9.09974447e-157, 4.71307229e-157, 2.43962378e-157, 1.26207588e-157, 6.52517149e-158, 3.37164815e-158, 1.74115093e-158, 8.98616617e-159, 4.63507033e-159, 2.38936263e-159, 1.23098189e-159, 6.33818801e-160, 3.2615379e-160, 1.67734965e-160, 8.6212181e-161, 4.42850891e-161, 2.27347548e-161, 1.16645204e-161, 5.98118675e-162, 3.06514977e-162, 1.5698563e-162, 8.03548258e-163, 4.11062531e-163, 2.10158851e-163, 1.07381964e-163, 5.4835129e-164, 2.79853189e-164, 1.42739943e-164, 7.27620029e-165, 3.70687243e-165, 1.88735894e-165, 9.60384709e-166, 4.88404706e-166, 2.48232313e-166, 1.26090004e-166, 6.40098597e-167, 3.24755836e-167, 1.64668651e-167, 8.34466223e-168, 4.22620415e-168, 2.13912447e-168, 1.08209531e-168, 5.47064899e-169, 2.76411471e-169, 1.39578058e-169, 7.0440449e-170, 3.55280163e-170, 1.79086843e-170, 9.02194723e-171, 4.54235176e-171, 2.28562577e-171, 1.14940575e-171, 5.77677548e-172, 2.90162639e-172, 1.4566036e-172, 7.3077747e-173, 3.66414627e-173, 1.83613386e-173, 9.19559343e-174, 4.60255586e-174, 2.30230184e-174, 1.15098414e-174, 5.75069458e-175, 2.87154188e-175, 1.43302542e-175, 7.14720966e-176, 3.56256698e-176, 1.77473471e-176, 8.8358379e-177, 4.39648834e-177, 2.18629118e-177, 1.08656064e-177, 5.39689327e-178, 2.67903003e-178, 1.32909256e-178, 6.58986875e-179, 3.26544367e-179, 1.61715454e-179, 8.00395696e-180, 3.95914914e-180, 1.95723456e-180, 9.67002917e-181, 4.77481545e-181, 2.356293e-181, 1.16210641e-181, 5.72804466e-182, 2.82169972e-182, 1.38918183e-182, 6.83520102e-183, 3.3611461e-183, 1.65183776e-183, 8.11318335e-184, 3.98253035e-184, 1.95375814e-184, 9.57913752e-185, 4.69381447e-185, 2.2986314e-185, 1.12501071e-185, 5.5028526e-186, 2.69006646e-186, 1.31426229e-186, 6.41719134e-187, 3.13149583e-187, 1.52722349e-187, 7.44384391e-188, 3.62606705e-188, 1.76529915e-188, 8.5890415e-189, 4.17652419e-189, 2.02968766e-189, 9.85796634e-190, 4.78508175e-190, 2.32132156e-190, 1.12544729e-190, 5.45329419e-191, 2.64080667e-191, 1.27808048e-191, 6.18192467e-192, 2.98836148e-192, 1.44373161e-192, 6.97081759e-193, 3.3637591e-193, 1.62222081e-193, 7.81877957e-194, 3.76627378e-194, 1.81312907e-194, 8.72347405e-195, 4.19463469e-195, 2.01577815e-195, 9.68133489e-196, 4.6469893e-196, 2.22921533e-196, 1.0687504e-196, 5.12087862e-197, 2.45220399e-197, 1.17357981e-197, 5.61322673e-198, 2.68322113e-198, 1.28187084e-198, 6.12034627e-199, 2.92046257e-199, 1.39274376e-199, 6.63796137e-200, 3.16185643e-200, 1.50519753e-200, 7.16124903e-201, 3.40508519e-201, 1.61812144e-201, 7.68489916e-202, 3.64761641e-202, 1.73031064e-202, 8.20319287e-203, 3.88674186e-203, 1.84048551e-203, 8.7100979e-204, 4.11962421e-204, 1.9473145e-204, 9.1993793e-205, 4.34335058e-205, 2.04943985e-205, 9.66472279e-206, 4.55499138e-206, 2.14550559e-206, 1.00998675e-206, 4.75166304e-207, 2.23418705e-207, 1.04987443e-207, 4.93059266e-208, 2.31422098e-208, 1.08556158e-208, 5.08918265e-209, 2.38443534e-209, 1.11652127e-209, 5.2250733e-210, 2.44377779e-210, 1.14228633e-210, 5.33620102e-211, 2.49134186e-211, 1.16246105e-211, 5.42085054e-212, 2.52639003e-212, 1.1767313e-212, 5.47769886e-213, 2.5483727e-213, 1.18487265e-213, 5.5058497e-214, 2.55694255e-214, 1.18675626e-214, 5.50485696e-215, 2.55196368e-215, 1.18235226e-215, 5.47473655e-216, 2.53351519e-216, 1.17173053e-216, 5.41596592e-217, 2.50188906e-217, 1.15505887e-217, 5.32947146e-218, 2.45758251e-218, 1.13259861e-218, 5.21660423e-219, 2.40128497e-219, 1.10469774e-219, 5.07910486e-220, 2.33386022e-220, 1.07178199e-220, 4.91905888e-221, 2.25632438e-221, 1.03434401e-221, 4.73884413e-222, 2.16982044e-222, 9.92931116e-223, 4.54107211e-223, 2.07559029e-223, 9.48132023e-224, 4.32852525e-224, 1.9749452e-224, 9.00562997e-225, 4.10409214e-225, 1.86923568e-225, 8.50853872e-226, 3.87070303e-226, 1.75982175e-226, 7.99634399e-227, 3.63126725e-227, 1.64804443e-227, 7.47521306e-228, 3.38861473e-228, 1.53519933e-228, 6.95106437e-229, 3.14544291e-229, 1.42251307e-229, 6.42946271e-230, 2.90427047e-230, 1.31112289e-230, 5.91553052e-231, 2.66739887e-231, 1.20206011e-231, 5.41387687e-232, 2.43688213e-232, 1.09623746e-232, 4.92854486e-233, 2.21450546e-233, 9.944404e-234, 4.46297782e-234, 2.00177224e-234, 8.97322511e-235, 4.02000347e-235, 1.79989951e-235, 8.05404509e-236, 3.60183506e-236, 1.60982086e-236, 7.19076755e-237, 3.21008784e-237, 1.43219631e-237, 6.38604761e-238, 2.84580883e-238, 1.2674279e-238, 5.64137244e-239, 2.50951763e-239, 1.11568013e-239, 4.95716209e-240, 2.20125578e-240, 9.76903961e-241, 4.3328854e-241, 1.92064238e-241, 8.50863281e-242, 3.76718571e-242, 1.66693341e-242, 7.37162858e-243, 3.25801149e-243, 1.4390827e-243, 6.35276612e-244, 2.80274738e-244, 1.23580236e-244, 5.44575448e-245, 2.39834177e-245, 1.05562109e-245, 4.64353823e-246, 2.04142753e-246, 8.9693895e-247, 3.9385447e-247, 1.7284334e-247, 7.58077312e-248, 3.32290807e-248, 1.45568407e-248, 6.37323473e-249, 2.78866712e-249, 1.21948768e-249, 5.32969231e-250, 2.32793493e-250, 1.01621012e-250, 4.43343329e-251, 1.9330399e-251, 8.42336152e-252, 3.66837769e-252, 1.59663861e-252, 6.94517502e-253, 3.01928245e-253, 1.31180195e-253, 5.69608928e-254, 2.47189082e-254, 1.07207647e-254, 4.64693104e-255, 2.01303199e-255, 8.71523511e-256, 3.77095651e-256, 1.63067692e-256, 7.04739009e-257, 3.04391614e-257, 1.31395666e-257, 5.66856832e-258, 2.44404791e-258, 1.05314952e-258, 4.53538684e-259, 1.95201265e-259, 8.39643452e-260, 3.60953429e-260, 1.55078441e-260, 6.65879538e-261, 2.85748462e-261, 1.22550792e-261, 5.25281773e-262, 2.2501555e-262, 9.63333627e-263, 4.12178088e-263, 1.76253224e-263, 7.53239751e-264, 3.21716535e-264, 1.37327504e-264, 5.85848957e-265, 2.49780073e-265, 1.06432413e-265, 4.5324604e-266, 1.92902618e-266, 8.20514424e-267, 3.48801473e-267, 1.48188463e-267, 6.29208343e-268, 2.67004478e-268, 1.13236545e-268, 4.79952958e-269, 2.03308122e-269, 8.60705902e-270, 3.64165524e-270, 1.53987998e-270, 6.50757093e-271, 2.74849497e-271, 1.16015223e-271, 4.89416952e-272, 2.06341714e-272, 8.69438883e-273, 3.66129802e-273, 1.54090229e-273, 6.48125515e-274, 2.72450203e-274, 1.14461426e-274, 4.80590483e-275, 2.01667159e-275, 8.45744524e-276, 3.54476304e-276, 1.48483851e-276, 6.21606056e-277, 2.60072991e-277, 1.08747497e-277, 4.54451234e-278, 1.89801354e-278, 7.92237375e-279, 3.30487738e-279, 1.37784186e-279, 5.74099811e-280, 2.39066892e-280, 9.94936743e-281, 4.13823841e-281, 1.7202024e-281, 7.14640449e-282, 2.96715097e-282, 1.2312201e-282, 5.10594058e-283, 2.11621515e-283, 8.76572595e-284, 3.62877435e-284, 1.50132959e-284, 6.20777731e-285, 2.56531217e-285, 1.05946916e-285, 4.37300956e-286, 1.80391695e-286, 7.43698079e-287, 3.06422596e-287, 1.26179535e-287, 5.19279366e-288, 2.13578346e-288, 8.77924924e-289, 3.60662964e-289, 1.48077722e-289, 6.07605804e-290, 2.49171353e-290, 1.02121766e-290, 4.18294867e-291, 1.712343e-291, 7.00556231e-292, 2.86443683e-292, 1.17052181e-292, 4.78039496e-293, 1.95115631e-293, 7.95910725e-294, 3.24474569e-294, 1.322029e-294, 5.38325948e-295, 2.19075423e-295, 8.91017051e-296, 3.62178266e-296, 1.4713052e-296, 5.97347661e-297, 2.42379329e-297, 9.82896989e-298, 3.98349655e-298, 1.61348488e-298, 6.53144645e-299, 2.64239571e-299, 1.06839133e-299, 4.31724677e-300, 1.74352189e-300, 7.03707134e-301, 2.83857595e-301, 1.14433479e-301, 4.61051775e-302, 1.85648017e-302, 7.4709348e-303, 3.00471716e-303, 1.20774783e-303, 4.85168897e-304, 1.94784168e-304, 7.81552899e-305, 3.13405865e-305, 1.25602962e-305, 5.03079546e-306, 2.01380521e-306, 8.05642333e-307, 3.22115125e-307, 1.28713463e-307, 5.14020992e-308, 2.05154834e-308, 8.18326615e-309, 3.26223782e-309, 1.29971635e-309, 5.17518126e-310, 2.0594278e-310, 8.19052235e-311, 3.25552211e-311, 1.2932239e-311, 5.13417679e-312, 2.03709805e-312, 8.07787403e-313, 3.20129902e-313, 1.26794216e-313, 5.0189943e-314, 1.98553808e-314, 7.85026548e-315, 3.10193977e-315, 1.22498168e-315, 4.83453827e-316, 1.90712106e-316, 7.51652057e-317, 2.96363351e-317, 1.16468614e-317, 4.58679676e-318, 1.82651129e-318, 7.0294672e-319, 2.81355563e-319, 9.38428288e-320, 4.69510583e-320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.04655811, 2.09310515, 3.13963003, 4.18612168, 5.23256903, 6.278961, 7.32528651, 8.37153449, 9.41769388, 10.4637536, 11.50970258, 12.55552976, 13.60122408, 14.64677446, 15.69216986, 16.73739922, 17.78245148, 18.82731559, 19.87198051, 20.9164352, 21.9606686, 23.00466969, 24.04842744, 25.09193082, 26.1351688, 27.17813037, 28.22080451, 29.26318021, 30.30524648, 31.34699231, 32.38840672, 33.42947871, 34.4701973, 35.51055153, 36.55053042, 37.59012302, 38.62931837, 39.66810551, 40.70647353, 41.74441147, 42.78190841, 43.81895345, 44.85553566, 45.89164416, 46.92726803, 47.96239641, 48.99701842, 50.03112318, 51.06469984, 52.09773756, 53.13022549, 54.16215281, 55.1935087, 56.22428234, 57.25446294, 58.28403971, 59.31300188, 60.34133867, 61.36903932, 62.39609311, 63.42248928, 64.44821712, 65.47326592, 66.49762499, 67.52128362, 68.54423116, 69.56645694, 70.5879503, 71.60870062, 72.62869728, 73.64792965, 74.66638715, 75.68405919, 76.70093521, 77.71700465, 78.73225696, 79.74668163, 80.76026814, 81.77300599, 82.7848847, 83.79589381, 84.80602285, 85.8152614, 86.82359904, 87.83102535, 88.83752995, 89.84310246, 90.84773253, 91.85140982, 92.85412401, 93.85586478, 94.85662184, 95.85638493, 96.85514379, 97.85288818, 98.84960788, 99.84529268, 100.83993241, 101.8335169, 102.82603599, 103.81747957, 104.80783751, 105.79709974, 106.78525617, 107.77229675, 108.75821145, 109.74299026, 110.72662317, 111.70910023, 112.69041146, 113.67054695, 114.64949677, 115.62725103, 116.60379986, 117.57913341, 118.55324184, 119.52611536, 120.49774417, 121.4681185, 122.43722862, 123.4050648, 124.37161734, 125.33687656, 126.30083281, 127.26347645, 128.22479788, 129.1847875, 130.14343576, 131.10073311, 132.05667003, 133.01123704, 133.96442465, 134.91622343, 135.86662396, 136.81561682, 137.76319265, 138.70934211, 139.65405586, 140.5973246, 141.53913906, 142.47948999, 143.41836817, 144.35576439, 145.29166948, 146.22607429, 147.1589697, 148.09034661, 149.02019596, 149.94850869, 150.87527579, 151.80048827, 152.72413716, 153.64621353, 154.56670847, 155.48561308, 156.40291852, 157.31861596, 158.23269659, 159.14515164, 160.05597236, 160.96515004, 161.87267599, 162.77854154, 163.68273806, 164.58525695, 165.48608963, 166.38522755, 167.28266219, 168.17838507, 169.07238773, 169.96466172, 170.85519866, 171.74399017, 172.63102791, 173.51630356, 174.39980884, 175.2815355, 176.16147533, 177.03962011, 177.91596171, 178.79049197, 179.66320282, 180.53408616, 181.40313398, 182.27033825, 183.13569101, 183.9991843, 184.86081022, 185.72056089, 186.57842845, 187.43440508, 188.28848301, 189.14065447, 189.99091175, 190.83924714, 191.68565301, 192.53012172, 193.37264567, 194.21321732, 195.05182912, 195.8884736, 196.72314328, 197.55583075, 198.3865286, 199.21522947, 200.04192605, 200.86661102, 201.68927714, 202.50991718, 203.32852393, 204.14509026, 204.95960902, 205.77207313, 206.58247554, 207.39080922, 208.19706718, 209.00124247, 209.80332818, 210.60331742, 211.40120334, 212.19697913, 212.99063801, 213.78217324, 214.5715781, 215.35884594, 216.1439701, 216.92694399, 217.70776104, 218.48641472, 219.26289854, 220.03720603, 220.80933078, 221.5792664, 222.34700653, 223.11254487, 223.87587513, 224.63699107, 225.39588648, 226.15255521, 226.90699111, 227.65918809, 228.40914009, 229.15684108, 229.90228509, 230.64546617, 231.38637839, 232.1250159, 232.86137284, 233.59544343, 234.3272219, 235.05670252, 235.78387961, 236.50874751, 237.23130062, 237.95153336, 238.66944019, 239.38501562, 240.09825417, 240.80915044, 241.51769902, 242.22389459, 242.92773181, 243.62920543, 244.32831022, 245.02504096, 245.71939252, 246.41135977, 247.10093763, 247.78812107, 248.47290507, 249.15528467, 249.83525496, 250.51281103, 251.18794806, 251.86066121, 252.53094573, 253.19879688, 253.86420998, 254.52718036, 255.18770341, 255.84577456, 256.50138927, 257.15454304, 257.80523142, 258.45344999, 259.09919436, 259.7424602, 260.3832432, 261.02153911, 261.6573437, 262.29065278, 262.92146223, 263.54976792, 264.17556581, 264.79885186, 265.41962208, 266.03787254, 266.65359933, 267.26679857, 267.87746645, 268.48559918, 269.09119301, 269.69424424, 270.29474919, 270.89270424, 271.4881058, 272.08095033, 272.67123432, 273.25895429, 273.84410682, 274.42668853, 275.00669606, 275.58412611, 276.1589754, 276.73124072, 277.30091887, 277.8680067, 278.43250111, 278.99439903, 279.55369743, 280.11039333, 280.66448376, 281.21596584, 281.76483669, 282.31109347, 282.85473342, 283.39575377, 283.93415182, 284.46992491, 285.0030704, 285.53358572, 286.06146831, 286.58671566, 287.10932532, 287.62929485, 288.14662186, 288.66130402, 289.17333902, 289.68272458, 290.18945849, 290.69353855, 291.19496263, 291.69372861, 292.18983443, 292.68327807, 293.17405753, 293.66217088, 294.1476162, 294.63039163, 295.11049535, 295.58792557, 296.06268054, 296.53475856, 297.00415795, 297.4708771, 297.93491442, 298.39626836, 298.85493741, 299.3109201, 299.76421502, 300.21482076, 300.66273599, 301.10795939, 301.5504897, 301.99032568, 302.42746615, 302.86190995, 303.29365598, 303.72270317, 304.14905047, 304.57269691, 304.99364152, 305.4118834, 305.82742166, 306.24025549, 306.65038407, 307.05780665, 307.46252252, 307.86453099, 308.26383143, 308.66042324, 309.05430586, 309.44547876, 309.83394146, 310.21969352, 310.60273453, 310.98306413, 311.36068198, 311.7355878, 312.10778133, 312.47726238, 312.84403075, 313.20808632, 313.56942899, 313.9280587, 314.28397543, 314.6371792, 314.98767007, 315.33544813, 315.68051352, 316.0228664, 316.36250698, 316.69943552, 317.0336523, 317.36515763, 317.69395189, 318.02003546, 318.34340879, 318.66407234, 318.98202663, 319.29727222, 319.60980967, 319.91963962, 320.22676273, 320.53117969, 320.83289124, 321.13189815, 321.42820124, 321.72180134, 322.01269933, 322.30089615, 322.58639274, 322.8691901, 323.14928926, 323.42669128, 323.70139727, 323.97340836, 324.24272573, 324.5093506, 324.7732842, 325.03452782, 325.29308279, 325.54895045, 325.8021322, 326.05262947, 326.30044372, 326.54557644, 326.78802918, 327.02780349, 327.26490099, 327.49932331, 327.73107213, 327.96014917, 328.18655615, 328.41029487, 328.63136714, 328.84977481, 329.06551977, 329.27860392, 329.48902923, 329.69679769, 329.90191131, 330.10437216, 330.30418231, 330.5013439, 330.69585909, 330.88773007, 331.07695906, 331.26354832, 331.44750015, 331.62881688, 331.80750086, 331.98355448, 332.15698018, 332.32778041, 332.49595767, 332.66151448, 332.8244534, 332.98477703, 333.14248797, 333.2975889, 333.4500825, 333.59997149, 333.74725863, 333.89194669, 334.0340385, 334.17353691, 334.31044479, 334.44476506, 334.57650067, 334.70565458, 334.83222982, 334.9562294, 335.07765641, 335.19651394, 335.31280513, 335.42653314, 335.53770115, 335.64631241, 335.75237015, 335.85587766, 335.95683826, 336.05525529, 336.15113213, 336.24447219, 336.33527889, 336.4235557, 336.50930612, 336.59253367, 336.6732419, 336.7514344, 336.82711477, 336.90028666, 336.97095374, 337.0391197, 337.10478827, 337.16796321, 337.2286483, 337.28684735, 337.34256421, 337.39580273, 337.44656683, 337.49486042, 337.54068746, 337.58405192, 337.62495782, 337.66340918, 337.69941008, 337.73296459, 337.76407684, 337.79275096, 337.81899114, 337.84280155, 337.86418644, 337.88315005, 337.89969664, 337.91383053, 337.92555605, 337.93487754, 337.94179939, 337.946326, 337.94846181, 337.94821126, 337.94557885, 337.94056907, 337.93318646, 337.92343558, 337.911321, 337.89684734, 337.88001923, 337.86084131, 337.83931828, 337.81545482, 337.78925568, 337.7607256, 337.72986935, 337.69669174, 337.66119759, 337.62339174, 337.58327906, 337.54086445, 337.49615281, 337.4491491, 337.39985825, 337.34828527, 337.29443516, 337.23831294, 337.17992366, 337.1192724, 337.05636424, 336.99120432, 336.92379775, 336.85414971, 336.78226537, 336.70814993, 336.63180861, 336.55324667, 336.47246936, 336.38948197, 336.3042898, 336.21689819, 336.12731247, 336.03553802, 335.94158021, 335.84544447, 335.74713621, 335.64666088, 335.54402394, 335.43923088, 335.33228721, 335.22319845, 335.11197013, 334.99860783, 334.88311712, 334.76550359, 334.64577287, 334.52393059, 334.3999824, 334.27393397, 334.145791, 334.01555919, 333.88324426, 333.74885195, 333.61238803, 333.47385826, 333.33326845, 333.1906244, 333.04593194, 332.89919692, 332.75042518, 332.59962262, 332.44679511, 332.29194857, 332.13508893, 331.97622212, 331.8153541, 331.65249084, 331.48763833, 331.32080256, 331.15198957, 330.98120537, 330.80845601, 330.63374757, 330.4570861, 330.27847771, 330.09792849, 329.91544457, 329.73103208, 329.54469717, 329.35644599, 329.16628472, 328.97421955, 328.78025668, 328.58440232, 328.3866627, 328.18704405, 327.98555264, 327.78219472, 327.57697658, 327.3699045, 327.16098478, 326.95022374, 326.73762771, 326.52320303, 326.30695603, 326.08889309, 325.86902058, 325.64734487, 325.42387237, 325.19860948, 324.97156262, 324.7427382, 324.51214268, 324.2797825, 324.04566412, 323.809794, 323.57217862, 323.33282448, 323.09173806, 322.84892589, 322.60439447, 322.35815033, 322.1102, 321.86055004, 321.60920699, 321.35617742, 321.10146789, 320.84508499, 320.58703531, 320.32732543, 320.06596197, 319.80295154, 319.53830075, 319.27201623, 319.00410462, 318.73457256, 318.4634267, 318.19067369, 317.91632021, 317.64037292, 317.36283849, 317.08372362, 316.80303499, 316.52077929, 316.23696324, 315.95159354, 315.66467691, 315.37622007, 315.08622974, 314.79471265, 314.50167555, 314.20712517, 313.91106826, 313.61351159, 313.31446189, 313.01392595, 312.71191051, 312.40842237, 312.10346828, 311.79705504, 311.48918942, 311.17987822, 310.86912822, 310.55694623, 310.24333903, 309.92831345, 309.61187627, 309.29403432, 308.9747944, 308.65416332, 308.33214792, 308.008755, 307.6839914, 307.35786393, 307.03037943, 306.70154473, 306.37136665, 306.03985204, 305.70700773, 305.37284055, 305.03735736, 304.70056498, 304.36247027, 304.02308006, 303.6824012, 303.34044053, 302.9972049, 302.65270117, 302.30693617, 301.95991675, 301.61164976, 301.26214206, 300.91140049, 300.55943189, 300.20624312, 299.85184103, 299.49623246, 299.13942426, 298.78142327, 298.42223635, 298.06187034, 297.70033208, 297.33762841, 296.97376618, 296.60875223, 296.2425934, 295.87529652, 295.50686843, 295.13731596, 294.76664595, 294.39486522, 294.02198061, 293.64799893, 293.27292702, 292.89677168, 292.51953975, 292.14123804, 291.76187335, 291.3814525, 290.99998229, 290.61746953, 290.23392102, 289.84934356, 289.46374393, 289.07712892, 288.68950533, 288.30087993, 287.91125951, 287.52065083, 287.12906066, 286.73649578, 286.34296294, 285.9484689, 285.55302041, 285.15662422, 284.75928706, 284.36101569, 283.96181683, 283.56169721, 283.16066354, 282.75872256, 282.35588096, 281.95214546, 281.54752275, 281.14201954, 280.7356425, 280.32839832, 279.92029368, 279.51133525, 279.10152969, 278.69088367, 278.27940382, 277.8670968, 277.45396925, 277.04002779, 276.62527906, 276.20972966, 275.79338622, 275.37625532, 274.95834358, 274.53965758, 274.1202039, 273.69998911, 273.27901978, 272.85730247, 272.43484374, 272.01165011, 271.58772814, 271.16308434, 270.73772523, 270.31165733, 269.88488713, 269.45742114, 269.02926583, 268.60042769, 268.17091317, 267.74072874, 267.30988085, 266.87837594, 266.44622045, 266.01342078, 265.57998337, 265.14591461, 264.7112209, 264.27590861, 263.83998414, 263.40345384, 262.96632407, 262.52860118, 262.09029151, 261.65140137, 261.21193709, 260.77190497, 260.33131131, 259.8901624, 259.4484645, 259.00622389, 258.56344682, 258.12013952, 257.67630825, 257.2319592, 256.78709861, 256.34173266, 255.89586755, 255.44950946, 255.00266454, 254.55533896, 254.10753886, 253.65927037, 253.21053962, 252.76135271, 252.31171574, 251.86163479, 251.41111595, 250.96016527, 250.50878881, 250.0569926, 249.60478266, 249.15216502, 248.69914568, 248.24573062, 247.79192582, 247.33773726, 246.88317087, 246.4282326, 245.97292838, 245.51726412, 245.06124572, 244.60487908, 244.14817006, 243.69112454, 243.23374835, 242.77604735, 242.31802735, 241.85969416, 241.40105358, 240.9421114, 240.48287339, 240.02334529, 239.56353287, 239.10344183, 238.64307792, 238.18244682, 237.72155422, 237.2604058, 236.79900723, 236.33736414, 235.87548218, 235.41336695, 234.95102408, 234.48845914, 234.02567772, 233.56268537, 233.09948766, 232.6360901, 232.17249822, 231.70871753, 231.24475351, 230.78061165, 230.3162974, 229.85181621, 229.38717351, 228.92237472, 228.45742524, 227.99233046, 227.52709576, 227.06172648, 226.59622798, 226.13060557, 225.66486458, 225.1990103, 224.73304801, 224.26698298, 223.80082046, 223.33456569, 222.86822389, 222.40180025, 221.93529999, 221.46872826, 221.00209022, 220.53539103, 220.06863581, 219.60182966, 219.1349777, 218.66808499, 218.2011566, 217.73419758, 217.26721297, 216.80020778, 216.33318702, 215.86615566, 215.39911868, 214.93208103, 214.46504765, 213.99802347, 213.53101337, 213.06402226, 212.59705501, 212.13011647, 211.66321149, 211.19634488, 210.72952145, 210.262746, 209.7960233, 209.32935811, 208.86275517, 208.39621921, 207.92975493, 207.46336702, 206.99706017, 206.53083903, 206.06470824, 205.59867244, 205.13273622, 204.66690418, 204.2011809, 203.73557093, 203.27007882, 202.8047091, 202.33946626, 201.87435481, 201.40937922, 200.94454394, 200.47985341, 200.01531207, 199.55092431, 199.08669453, 198.6226271, 198.15872638, 197.6949967, 197.23144238, 196.76806774, 196.30487706, 195.8418746, 195.37906463, 194.91645138, 194.45403906, 193.99183189, 193.52983404, 193.06804968, 192.60648297, 192.14513802, 191.68401897, 191.22312991, 190.76247492, 190.30205807, 189.84188339, 189.38195493, 188.92227669, 188.46285266, 188.00368683, 187.54478315, 187.08614557, 186.62777801, 186.16968437, 185.71186856, 185.25433444, 184.79708587, 184.34012668, 183.8834607, 183.42709173, 182.97102355, 182.51525994, 182.05980464, 181.60466138, 181.14983389, 180.69532587, 180.24114098, 179.78728291, 179.33375528, 178.88056173, 178.42770588, 177.97519131, 177.52302161, 177.07120032, 176.61973099, 176.16861715, 175.7178623, 175.26746993, 174.81744351, 174.36778649, 173.91850231, 173.46959439, 173.02106614, 172.57292092, 172.12516211, 171.67779307, 171.23081711, 170.78423755, 170.3380577, 169.89228082, 169.44691019, 169.00194904, 168.55740059, 168.11326807, 167.66955466, 167.22626353, 166.78339785, 166.34096075, 165.89895535, 165.45738476, 165.01625206, 164.57556033, 164.13531262, 163.69551196, 163.25616137, 162.81726385, 162.37882238, 161.94083993, 161.50331946, 161.06626388, 160.62967611, 160.19355906, 159.75791559, 159.32274857, 158.88806085, 158.45385525, 158.02013459, 157.58690166, 157.15415922, 156.72191006, 156.29015689, 155.85890245, 155.42814945, 154.99790058, 154.5681585, 154.13892588, 153.71020536, 153.28199955, 152.85431107, 152.42714249, 152.0004964, 151.57437535, 151.14878186, 150.72371848, 150.29918768, 149.87519197, 149.45173382, 149.02881567, 148.60643996, 148.18460911, 147.76332552, 147.34259159, 146.92240967, 146.50278212, 146.08371128, 145.66519946, 145.24724896, 144.82986208, 144.41304107, 143.9967882, 143.5811057, 143.16599578, 142.75146066, 142.3375025, 141.9241235, 141.51132579, 141.09911152, 140.6874828, 140.27644174, 139.86599043, 139.45613094, 139.04686532, 138.63819562, 138.23012385, 137.82265202, 137.41578212, 137.00951612, 136.60385599, 136.19880367, 135.79436107, 135.39053012, 134.98731269, 134.58471068, 134.18272594, 133.78136032, 133.38061565, 132.98049374, 132.58099639, 132.18212539, 131.78388249, 131.38626945, 130.98928801, 130.59293988, 130.19722677, 129.80215037, 129.40771234, 129.01391435, 128.62075803, 128.22824502, 127.83637692, 127.44515533, 127.05458183, 126.66465798, 126.27538532, 125.88676541, 125.49879974, 125.11148983, 124.72483717, 124.33884322, 123.95350944, 123.56883728, 123.18482816, 122.8014835, 122.41880469, 122.03679311, 121.65545014, 121.27477713, 120.89477541, 120.5154463, 120.13679112, 119.75881116, 119.3815077, 119.00488199, 118.6289353, 118.25366885, 117.87908386, 117.50518155, 117.1319631, 116.75942968, 116.38758247, 116.01642261, 115.64595124, 115.27616946, 114.90707839, 114.53867912, 114.17097273, 113.80396028, 113.43764281, 113.07202136, 112.70709695, 112.3428706, 111.97934328, 111.61651598, 111.25438967, 110.89296529, 110.53224378, 110.17222606, 109.81291306, 109.45430565, 109.09640472, 108.73921115, 108.38272579, 108.02694947, 107.67188303, 107.31752729, 106.96388303, 106.61095106, 106.25873215, 105.90722705, 105.55643652, 105.20636129, 104.85700209, 104.50835962, 104.16043457, 103.81322764, 103.46673949, 103.12097078, 102.77592216, 102.43159424, 102.08798766, 101.74510302, 101.40294091, 101.06150191, 100.7207866, 100.38079551, 100.04152921, 99.70298821, 99.36517304, 99.0280842, 98.69172218, 98.35608747, 98.02118054, 97.68700183, 97.35355179, 97.02083087, 96.68883946, 96.35757799, 96.02704685, 95.69724641, 95.36817707, 95.03983916, 94.71223305, 94.38535907, 94.05921754, 93.73380877, 93.40913307, 93.08519073, 92.76198202, 92.43950721, 92.11776656, 91.7967603, 91.47648868, 91.15695191, 90.8381502, 90.52008375, 90.20275275, 89.88615737, 89.57029778, 89.25517413, 88.94078657, 88.62713522, 88.31422021, 88.00204164, 87.69059962, 87.37989423, 87.06992555, 86.76069366, 86.45219859, 86.14444041, 85.83741914, 85.5311348, 85.22558742, 84.920777, 84.61670353, 84.31336698, 84.01076734, 83.70890457, 83.40777862, 83.10738942, 82.80773692, 82.50882103, 82.21064167, 81.91319873, 81.61649211, 81.32052169, 81.02528734, 80.73078893, 80.4370263, 80.1439993, 79.85170776, 79.56015151, 79.26933035, 78.9792441, 78.68989255, 78.40127548, 78.11339267, 77.82624388, 77.53982888, 77.25414741, 76.96919921, 76.68498402, 76.40150154, 76.11875149, 75.83673358, 75.5554475, 75.27489293, 74.99506955, 74.71597702, 74.43761501, 74.15998316, 73.88308111, 73.60690851, 73.33146496, 73.05675008, 72.78276349, 72.50950477, 72.23697352, 71.96516932, 71.69409174, 71.42374035, 71.15411469, 70.88521433, 70.6170388, 70.34958763, 70.08286035, 69.81685646, 69.55157549, 69.28701692, 69.02318025, 68.76006497, 68.49767054, 68.23599645, 67.97504214, 67.71480708, 67.4552907, 67.19649245, 66.93841175, 66.68104804, 66.42440071, 66.16846919, 65.91325288, 65.65875116, 65.40496342, 65.15188904, 64.8995274, 64.64787785, 64.39693976, 64.14671247, 63.89719534, 63.64838769, 63.40028885, 63.15289815, 62.90621491, 62.66023843, 62.41496802, 62.17040296, 61.92654256, 61.68338609, 61.44093283, 61.19918205, 60.95813301, 60.71778497, 60.47813717, 60.23918887, 60.0009393, 59.76338769, 59.52653326, 59.29037524, 59.05491284, 58.82014526, 58.58607171, 58.35269137, 58.12000345, 57.88800711, 57.65670154, 57.42608591, 57.19615939, 56.96692113, 56.73837029, 56.51050601, 56.28332744, 56.05683372, 55.83102397, 55.60589733, 55.38145291, 55.15768982, 54.93460719, 54.71220411, 54.49047968, 54.26943299, 54.04906314, 53.82936921, 53.61035027, 53.3920054, 53.17433368, 52.95733415, 52.74100588, 52.52534792, 52.31035932, 52.09603913, 51.88238638, 51.66940011, 51.45707935, 51.24542312, 51.03443044, 50.82410032, 50.61443179, 50.40542384, 50.19707547, 49.98938569, 49.78235349, 49.57597785, 49.37025777, 49.16519221, 48.96078016, 48.75702058, 48.55391246, 48.35145474, 48.14964638, 47.94848635, 47.7479736, 47.54810706, 47.34888569, 47.15030843, 46.9523742, 46.75508195, 46.55843059, 46.36241906, 46.16704626, 45.97231113, 45.77821258, 45.5847495, 45.39192082, 45.19972542, 45.00816222, 44.8172301, 44.62692796, 44.43725468, 44.24820916, 44.05979027, 43.87199689, 43.6848279, 43.49828217, 43.31235857, 43.12705596, 42.94237321, 42.75830918, 42.57486272, 42.39203269, 42.20981794, 42.02821732, 41.84722967, 41.66685384, 41.48708866, 41.30793297, 41.1293856, 40.95144539, 40.77411116, 40.59738175, 40.42125597, 40.24573264, 40.07081058, 39.89648861, 39.72276554, 39.54964018, 39.37711134, 39.20517783, 39.03383845, 38.863092, 38.69293727, 38.52337308, 38.3543982, 38.18601144, 38.01821158, 37.85099741, 37.68436772, 37.51832129, 37.3528569, 37.18797334, 37.02366938, 36.85994379, 36.69679536, 36.53422285, 36.37222504, 36.21080068, 36.04994856, 35.88966744, 35.72995607, 35.57081322, 35.41223766, 35.25422813, 35.0967834, 34.93990222, 34.78358335, 34.62782553, 34.47262753, 34.31798808, 34.16390594, 34.01037985, 33.85740856, 33.70499081, 33.55312535, 33.40181092, 33.25104625, 33.10083009, 32.95116117, 32.80203823, 32.65346001, 32.50542524, 32.35793266, 32.21098099, 32.06456897, 31.91869533, 31.7733588, 31.6285581, 31.48429197, 31.34055913, 31.1973583, 31.05468822, 30.91254761, 30.77093518, 30.62984967, 30.48928979, 30.34925427, 30.20974183, 30.07075119, 29.93228106, 29.79433016, 29.65689723, 29.51998096, 29.38358008, 29.24769331, 29.11231937, 28.97745696, 28.8431048, 28.70926162, 28.57592612, 28.44309702, 28.31077303, 28.17895287, 28.04763525, 27.91681889, 27.78650249, 27.65668478, 27.52736445, 27.39854024, 27.27021084, 27.14237497, 27.01503135, 26.88817869, 26.76181569, 26.63594108, 26.51055356, 26.38565184, 26.26123464, 26.13730068, 26.01384866, 25.89087729, 25.7683853, 25.64637139, 25.52483427, 25.40377267, 25.28318529, 25.16307085, 25.04342806, 24.92425563, 24.80555229, 24.68731675, 24.56954772, 24.45224392, 24.33540407, 24.21902688, 24.10311107, 23.98765536, 23.87265846, 23.7581191, 23.644036, 23.53040787, 23.41723344, 23.30451142, 23.19224055, 23.08041953, 22.9690471, 22.85812197, 22.74764288, 22.63760855, 22.52801769, 22.41886905, 22.31016135, 22.2018933, 22.09406366, 21.98667113, 21.87971446, 21.77319237, 21.66710361, 21.56144689, 21.45622095, 21.35142454, 21.24705638, 21.14311521, 21.03959977, 20.9365088, 20.83384104, 20.73159523, 20.62977011, 20.52836442, 20.42737691, 20.32680632, 20.2266514, 20.12691089, 20.02758355, 19.92866813, 19.83016337, 19.73206802, 19.63438084, 19.53710059, 19.44022602, 19.34375588, 19.24768893, 19.15202394, 19.05675966, 18.96189486, 18.86742829, 18.77335873, 18.67968493, 18.58640567, 18.49351972, 18.40102584, 18.3089228, 18.21720938, 18.12588436, 18.0349465, 17.94439459, 17.8542274, 17.76444372, 17.67504232, 17.58602198, 17.4973815, 17.40911966, 17.32123524, 17.23372704, 17.14659385, 17.05983445, 16.97344764, 16.88743223, 16.80178699, 16.71651074, 16.63160227, 16.54706039, 16.4628839, 16.3790716, 16.29562231, 16.21253482, 16.12980796, 16.04744052, 15.96543134, 15.88377922, 15.80248297, 15.72154143, 15.64095341, 15.56071773, 15.48083321, 15.40129869, 15.322113, 15.24327495, 15.16478339, 15.08663714, 15.00883505, 14.93137595, 14.85425867, 14.77748207, 14.70104498, 14.62494625, 14.54918473, 14.47375926, 14.3986687, 14.32391189, 14.24948769, 14.17539497, 14.10163257, 14.02819936, 13.9550942, 13.88231595, 13.80986349, 13.73773568, 13.66593138, 13.59444948, 13.52328885, 13.45244836, 13.3819269, 13.31172334, 13.24183656, 13.17226546, 13.10300892, 13.03406582, 12.96543506, 12.89711554, 12.82910614, 12.76140576, 12.69401331, 12.62692769, 12.5601478, 12.49367254, 12.42750083, 12.36163157, 12.29606368, 12.23079608, 12.16582767, 12.10115738, 12.03678412, 11.97270683, 11.90892443, 11.84543584, 11.78224, 11.71933584, 11.65672229, 11.59439829, 11.53236278, 11.4706147, 11.40915299, 11.3479766, 11.28708448, 11.22647557, 11.16614884, 11.10610322, 11.04633769, 10.9868512, 10.92764271, 10.86871119, 10.8100556, 10.75167491, 10.69356809, 10.63573412, 10.57817196, 10.5208806, 10.46385903, 10.40710621, 10.35062113, 10.29440279, 10.23845017, 10.18276226, 10.12733806, 10.07217656, 10.01727676, 9.96263767, 9.90825829, 9.85413761, 9.80027466, 9.74666844, 9.69331796, 9.64022224, 9.5873803, 9.53479115, 9.48245383, 9.43036735, 9.37853074, 9.32694303, 9.27560326, 9.22451045, 9.17366365, 9.12306189, 9.07270421, 9.02258967, 8.9727173, 8.92308615, 8.87369528, 8.82454374, 8.77563059, 8.72695488, 8.67851567, 8.63031203, 8.58234302, 8.53460772, 8.48710519, 8.4398345, 8.39279474, 8.34598497, 8.29940428, 8.25305175, 8.20692647, 8.16102753, 8.11535401, 8.069905, 8.02467961, 7.97967692, 7.93489605, 7.89033608, 7.84599613, 7.80187531, 7.75797271, 7.71428746, 7.67081867, 7.62756545, 7.58452693, 7.54170223, 7.49909046, 7.45669076, 7.41450226, 7.37252409, 7.33075538, 7.28919527, 7.24784289, 7.20669739, 7.16575792, 7.12502361, 7.08449362, 7.0441671, 7.00404319, 6.96412107, 6.92439988, 6.88487879, 6.84555696, 6.80643356, 6.76750774, 6.7287787, 6.69024559, 6.65190759, 6.61376389, 6.57581365, 6.53805607, 6.50049033, 6.46311562, 6.42593112, 6.38893603, 6.35212955, 6.31551087, 6.27907919, 6.24283371, 6.20677364, 6.17089819, 6.13520656, 6.09969797, 6.06437164, 6.02922677, 5.99426258, 5.95947831, 5.92487317, 5.89044639, 5.85619719, 5.82212482, 5.7882285, 5.75450747, 5.72096096, 5.68758823, 5.6543885, 5.62136104, 5.58850507, 5.55581987, 5.52330467, 5.49095874, 5.45878133, 5.4267717, 5.39492911, 5.36325283, 5.33174213, 5.30039627, 5.26921453, 5.23819618, 5.2073405, 5.17664676, 5.14611425, 5.11574226, 5.08553006, 5.05547695, 5.02558222, 4.99584515, 4.96626505, 4.93684122, 4.90757294, 4.87845954, 4.8495003, 4.82069454, 4.79204157, 4.7635407, 4.73519124, 4.70699251, 4.67894383, 4.65104452, 4.6232939, 4.5956913, 4.56823605, 4.54092747, 4.5137649, 4.48674768, 4.45987514, 4.43314662, 4.40656146, 4.38011901, 4.35381861, 4.32765961, 4.30164137, 4.27576323, 4.25002455, 4.22442469, 4.19896301, 4.17363887, 4.14845163, 4.12340067, 4.09848534, 4.07370503, 4.04905911, 4.02454694, 4.00016791, 3.9759214, 3.9518068, 3.92782347, 3.90397082, 3.88024823, 3.8566551, 3.83319081, 3.80985476, 3.78664634, 3.76356497, 3.74061004, 3.71778095, 3.69507712, 3.67249794, 3.65004284, 3.62771122, 3.6055025, 3.5834161, 3.56145143, 3.53960792, 3.51788499, 3.49628206, 3.47479858, 3.45343396, 3.43218763, 3.41105904, 3.39004762, 3.3691528, 3.34837403, 3.32771076, 3.30716241, 3.28672846, 3.26640833, 3.24620149, 3.22610738, 3.20612547, 3.1862552, 3.16649605, 3.14684746, 3.12730891, 3.10787986, 3.08855978, 3.06934814, 3.05024441, 3.03124806, 3.01235857, 2.99357542, 2.97489809, 2.95632605, 2.9378588, 2.91949583, 2.90123661, 2.88308064, 2.86502741, 2.84707641, 2.82922715, 2.81147911, 2.79383181, 2.77628473, 2.75883739, 2.74148929, 2.72423995, 2.70708886, 2.69003554, 2.67307951, 2.65622027, 2.63945736, 2.62279029, 2.60621857, 2.58974174, 2.57335931, 2.55707083, 2.5408758, 2.52477378, 2.50876428, 2.49284685, 2.47702102, 2.46128633, 2.44564232, 2.43008853, 2.41462451, 2.39924981, 2.38396397, 2.36876654, 2.35365707, 2.33863512, 2.32370024, 2.30885199, 2.29408994, 2.27941363, 2.26482264, 2.25031652, 2.23589485, 2.22155719, 2.20730312, 2.1931322, 2.179044, 2.16503811, 2.15111411, 2.13727156, 2.12351005, 2.10982917, 2.09622849, 2.08270761, 2.06926611, 2.05590358, 2.04261961, 2.0294138, 2.01628574, 2.00323503, 1.99026126, 1.97736404, 1.96454296, 1.95179764, 1.93912767, 1.92653266, 1.91401223, 1.90156597, 1.88919351, 1.87689446, 1.86466842, 1.85251503, 1.84043389, 1.82842463, 1.81648687, 1.80462024, 1.79282435, 1.78109884, 1.76944333, 1.75785745, 1.74634084, 1.73489313, 1.72351395, 1.71220294, 1.70095974, 1.68978399, 1.67867533, 1.6676334, 1.65665785, 1.64574832, 1.63490447, 1.62412593, 1.61341237, 1.60276342, 1.59217876, 1.58165803, 1.57120089, 1.560807, 1.55047601, 1.5402076, 1.53000142, 1.51985714, 1.50977442, 1.49975294, 1.48979236, 1.47989235, 1.47005258, 1.46027274, 1.45055249, 1.4408915, 1.43128947, 1.42174606, 1.41226097, 1.40283386, 1.39346444, 1.38415237, 1.37489735, 1.36569907, 1.35655721, 1.34747148, 1.33844155, 1.32946713, 1.32054791, 1.31168358, 1.30287385, 1.29411842, 1.28541698, 1.27676925, 1.26817491, 1.25963368, 1.25114527, 1.24270938, 1.23432573, 1.22599401, 1.21771396, 1.20948527, 1.20130766, 1.19318086, 1.18510457, 1.17707852, 1.16910243, 1.16117602, 1.153299, 1.14547112, 1.13769208, 1.12996162, 1.12227947, 1.11464535, 1.107059, 1.09952015, 1.09202853, 1.08458387, 1.07718592, 1.0698344, 1.06252907, 1.05526965, 1.04805588, 1.04088752, 1.03376431, 1.02668598, 1.01965228, 1.01266297, 1.00571778, 0.99881648, 0.9919588, 0.98514451, 0.97837335, 0.97164508, 0.96495946, 0.95831624, 0.95171518, 0.94515604, 0.93863858, 0.93216256, 0.92572774, 0.9193339, 0.91298078, 0.90666817, 0.90039582, 0.89416351, 0.887971, 0.88181807, 0.87570448, 0.86963002, 0.86359446, 0.85759756, 0.85163911, 0.84571889, 0.83983666, 0.83399223, 0.82818535, 0.82241583, 0.81668343, 0.81098795, 0.80532916, 0.79970687, 0.79412084, 0.78857088, 0.78305676, 0.77757829, 0.77213525, 0.76672744, 0.76135465, 0.75601667, 0.75071331, 0.74544435, 0.7402096, 0.73500886, 0.72984191, 0.72470858, 0.71960865, 0.71454194, 0.70950824, 0.70450736, 0.69953911, 0.6946033, 0.68969972, 0.6848282, 0.67998854, 0.67518055, 0.67040405, 0.66565884, 0.66094475, 0.65626158, 0.65160915, 0.64698729, 0.6423958, 0.63783451, 0.63330323, 0.6288018, 0.62433002, 0.61988772, 0.61547472, 0.61109086, 0.60673595, 0.60240982, 0.59811229, 0.59384321, 0.58960238, 0.58538966, 0.58120485, 0.57704781, 0.57291835, 0.56881632, 0.56474155, 0.56069386, 0.55667311, 0.55267912, 0.54871174, 0.5447708, 0.54085614, 0.5369676, 0.53310503, 0.52926826, 0.52545714, 0.52167151, 0.51791122, 0.51417612, 0.51046604, 0.50678084, 0.50312036, 0.49948445, 0.49587297, 0.49228576, 0.48872268, 0.48518357, 0.48166829, 0.47817669, 0.47470863, 0.47126396, 0.46784254, 0.46444422, 0.46106887, 0.45771633, 0.45438648, 0.45107917, 0.44779425, 0.4445316, 0.44129107, 0.43807253, 0.43487584, 0.43170087, 0.42854747, 0.42541552, 0.42230489, 0.41921543, 0.41614702, 0.41309953, 0.41007283, 0.40706678, 0.40408126, 0.40111614, 0.39817129, 0.39524659, 0.3923419, 0.38945711, 0.38659209, 0.38374671, 0.38092086, 0.3781144, 0.37532722, 0.37255919, 0.3698102, 0.36708013, 0.36436885, 0.36167624, 0.3590022, 0.3563466, 0.35370932, 0.35109025, 0.34848928, 0.34590628, 0.34334115, 0.34079377, 0.33826403, 0.33575182, 0.33325702, 0.33077953, 0.32831923, 0.32587602, 0.32344978, 0.32104041, 0.31864781, 0.31627185, 0.31391244, 0.31156947, 0.30924283, 0.30693243, 0.30463815, 0.3023599, 0.30009757, 0.29785105, 0.29562025, 0.29340507, 0.2912054, 0.28902114, 0.2868522, 0.28469848, 0.28255987, 0.28043629, 0.27832763, 0.2762338, 0.27415469, 0.27209023, 0.2700403, 0.26800482, 0.26598369, 0.26397683, 0.26198413, 0.2600055, 0.25804086, 0.25609011, 0.25415316, 0.25222993, 0.25032031, 0.24842423, 0.24654159, 0.24467231, 0.2428163, 0.24097348, 0.23914375, 0.23732703, 0.23552323, 0.23373228, 0.23195408, 0.23018855, 0.22843562, 0.22669518, 0.22496718, 0.22325151, 0.22154811, 0.21985688, 0.21817775, 0.21651065, 0.21485548, 0.21321217, 0.21158065, 0.20996083, 0.20835263, 0.20675599, 0.20517082, 0.20359704, 0.20203459, 0.20048338, 0.19894334, 0.1974144, 0.19589648, 0.19438951, 0.19289342, 0.19140813, 0.18993357, 0.18846967, 0.18701636, 0.18557357, 0.18414122, 0.18271925, 0.18130759, 0.17990617, 0.17851491, 0.17713376, 0.17576264, 0.17440148, 0.17305023, 0.1717088, 0.17037714, 0.16905519, 0.16774286, 0.16644011, 0.16514686, 0.16386305, 0.16258861, 0.16132349, 0.16006762, 0.15882094, 0.15758338, 0.15635489, 0.1551354, 0.15392484, 0.15272317, 0.15153032, 0.15034622, 0.14917083, 0.14800407, 0.1468459, 0.14569624, 0.14455506, 0.14342227, 0.14229784, 0.1411817, 0.1400738, 0.13897407, 0.13788247, 0.13679893, 0.13572341, 0.13465584, 0.13359617, 0.13254435, 0.13150033, 0.13046404, 0.12943545, 0.12841448, 0.1274011, 0.12639524, 0.12539686, 0.12440591, 0.12342233, 0.12244607, 0.12147708, 0.12051532, 0.11956073, 0.11861326, 0.11767286, 0.11673948, 0.11581308, 0.11489361, 0.11398101, 0.11307524, 0.11217626, 0.11128401, 0.11039844, 0.10951952, 0.1086472, 0.10778142, 0.10692215, 0.10606933, 0.10522293, 0.10438289, 0.10354918, 0.10272174, 0.10190054, 0.10108553, 0.10027667, 0.09947391, 0.09867721, 0.09788653, 0.09710183, 0.09632306, 0.09555019, 0.09478316, 0.09402194, 0.0932665, 0.09251677, 0.09177274, 0.09103435, 0.09030157, 0.08957436, 0.08885267, 0.08813648, 0.08742573, 0.08672039, 0.08602043, 0.0853258, 0.08463646, 0.08395239, 0.08327353, 0.08259986, 0.08193133, 0.08126792, 0.08060958, 0.07995628, 0.07930798, 0.07866464, 0.07802623, 0.07739272, 0.07676407, 0.07614024, 0.07552121, 0.07490693, 0.07429737, 0.0736925, 0.07309228, 0.07249669, 0.07190568, 0.07131922, 0.07073729, 0.07015985, 0.06958686, 0.0690183, 0.06845413, 0.06789432, 0.06733884, 0.06678766, 0.06624074, 0.06569806, 0.06515959, 0.06462529, 0.06409514, 0.0635691, 0.06304714, 0.06252924, 0.06201536, 0.06150548, 0.06099957, 0.06049759, 0.05999952, 0.05950534, 0.059015, 0.0585285, 0.05804578, 0.05756684, 0.05709163, 0.05662014, 0.05615234, 0.0556882, 0.05522769, 0.05477078, 0.05431746, 0.05386768, 0.05342144, 0.05297869, 0.05253942, 0.05210361, 0.05167121, 0.05124222, 0.05081659, 0.05039432, 0.04997538, 0.04955973, 0.04914736, 0.04873824, 0.04833234, 0.04792965, 0.04753014, 0.04713379, 0.04674057, 0.04635046, 0.04596343, 0.04557947, 0.04519855, 0.04482064, 0.04444574, 0.0440738, 0.04370482, 0.04333877, 0.04297562, 0.04261536, 0.04225797, 0.04190341, 0.04155168, 0.04120275, 0.0408566, 0.0405132, 0.04017255, 0.03983461, 0.03949937, 0.03916681, 0.0388369, 0.03850963, 0.03818498, 0.03786292, 0.03754345, 0.03722653, 0.03691215, 0.03660029, 0.03629093, 0.03598405, 0.03567964, 0.03537767, 0.03507813, 0.03478099, 0.03448625, 0.03419388, 0.03390386, 0.03361618, 0.03333081, 0.03304775, 0.03276697, 0.03248845, 0.03221219, 0.03193815, 0.03166633, 0.03139671, 0.03112927, 0.03086399, 0.03060087, 0.03033987, 0.03008099, 0.0298242, 0.02956951, 0.02931687, 0.02906629, 0.02881775, 0.02857122, 0.0283267, 0.02808417, 0.02784361, 0.02760501, 0.02736836, 0.02713363, 0.02690082, 0.02666991, 0.02644088, 0.02621372, 0.02598842, 0.02576496, 0.02554333, 0.02532351, 0.02510549, 0.02488926, 0.0246748, 0.02446209, 0.02425113, 0.0240419, 0.02383439, 0.02362858, 0.02342446, 0.02322202, 0.02302125, 0.02282213, 0.02262464, 0.02242879, 0.02223454, 0.0220419, 0.02185085, 0.02166137, 0.02147346, 0.0212871, 0.02110228, 0.02091898, 0.0207372, 0.02055693, 0.02037815, 0.02020085, 0.02002501, 0.01985064, 0.01967771, 0.01950622, 0.01933615, 0.01916749, 0.01900023, 0.01883436, 0.01866988, 0.01850676, 0.018345, 0.01818458, 0.01802551, 0.01786775, 0.01771132, 0.01755619, 0.01740235, 0.0172498, 0.01709852, 0.01694851, 0.01679975, 0.01665224, 0.01650596, 0.0163609, 0.01621706, 0.01607443, 0.01593299, 0.01579274, 0.01565366, 0.01551576, 0.01537901, 0.01524341, 0.01510895, 0.01497562, 0.01484342, 0.01471233, 0.01458234, 0.01445344, 0.01432564, 0.01419891, 0.01407325, 0.01394865, 0.01382511, 0.0137026, 0.01358114, 0.0134607, 0.01334128, 0.01322287, 0.01310546, 0.01298905, 0.01287363, 0.01275918, 0.0126457, 0.01253319, 0.01242164, 0.01231103, 0.01220136, 0.01209262, 0.01198481, 0.01187792, 0.01177194, 0.01166686, 0.01156267, 0.01145938, 0.01135696, 0.01125542, 0.01115474, 0.01105493, 0.01095597, 0.01085785, 0.01076058, 0.01066413, 0.01056851, 0.01047371, 0.01037973, 0.01028655, 0.01019416, 0.01010257, 0.01001177, 0.00992175, 0.0098325, 0.00974401, 0.00965629, 0.00956932, 0.0094831, 0.00939763, 0.00931289, 0.00922888, 0.00914559, 0.00906302, 0.00898117, 0.00890002, 0.00881957, 0.00873982, 0.00866075, 0.00858237, 0.00850467, 0.00842764, 0.00835128, 0.00827558, 0.00820054, 0.00812615, 0.0080524, 0.00797929, 0.00790682, 0.00783497, 0.00776375, 0.00769315, 0.00762317, 0.00755379, 0.00748502, 0.00741684, 0.00734926, 0.00728227, 0.00721586, 0.00715004, 0.00708478, 0.0070201, 0.00695598, 0.00689243, 0.00682942, 0.00676697, 0.00670507, 0.00664371, 0.00658288, 0.00652259, 0.00646282, 0.00640359, 0.00634487, 0.00628666, 0.00622897, 0.00617178, 0.0061151, 0.00605891, 0.00600322, 0.00594802, 0.00589331, 0.00583907, 0.00578532, 0.00573204, 0.00567923, 0.00562688, 0.005575, 0.00552357, 0.0054726, 0.00542208, 0.00537201, 0.00532238, 0.00527318, 0.00522443, 0.0051761, 0.00512821, 0.00508074, 0.00503369, 0.00498705, 0.00494084, 0.00489503, 0.00484963, 0.00480463, 0.00476003, 0.00471583, 0.00467202, 0.0046286, 0.00458557, 0.00454292, 0.00450066, 0.00445877, 0.00441725, 0.0043761, 0.00433532, 0.00429491, 0.00425486, 0.00421516, 0.00417582, 0.00413683, 0.00409819, 0.0040599, 0.00402195, 0.00398434, 0.00394707, 0.00391013, 0.00387352, 0.00383724, 0.00380129, 0.00376566, 0.00373035, 0.00369536, 0.00366068, 0.00362632, 0.00359227, 0.00355852, 0.00352507, 0.00349193, 0.00345909, 0.00342654, 0.00339429, 0.00336233, 0.00333065, 0.00329927, 0.00326816, 0.00323734, 0.0032068, 0.00317653, 0.00314654, 0.00311682, 0.00308737, 0.00305818, 0.00302927, 0.00300061, 0.00297221, 0.00294407, 0.00291619, 0.00288856, 0.00286119, 0.00283406, 0.00280718, 0.00278054, 0.00275414, 0.00272799, 0.00270208, 0.0026764, 0.00265095, 0.00262574, 0.00260076, 0.00257601, 0.00255148, 0.00252718, 0.00250309, 0.00247923, 0.00245559, 0.00243217, 0.00240896, 0.00238596, 0.00236317, 0.0023406, 0.00231822, 0.00229606, 0.0022741, 0.00225234, 0.00223078, 0.00220942, 0.00218825, 0.00216728, 0.00214651, 0.00212592, 0.00210553, 0.00208532, 0.0020653, 0.00204546, 0.00202581, 0.00200634, 0.00198704, 0.00196793, 0.00194899, 0.00193023, 0.00191164, 0.00189323, 0.00187498, 0.00185691, 0.001839, 0.00182125, 0.00180368, 0.00178626, 0.00176901, 0.00175191, 0.00173498, 0.0017182, 0.00170158, 0.00168512, 0.0016688, 0.00165264, 0.00163663, 0.00162077, 0.00160506, 0.00158949, 0.00157407, 0.00155879, 0.00154366, 0.00152866, 0.00151381, 0.00149909, 0.00148452, 0.00147008, 0.00145577, 0.0014416, 0.00142756, 0.00141365, 0.00139988, 0.00138623, 0.00137271, 0.00135932, 0.00134605, 0.00133291, 0.00131989, 0.00130699, 0.00129422, 0.00128156, 0.00126902, 0.00125661, 0.00124431, 0.00123212, 0.00122005, 0.00120809, 0.00119625, 0.00118452, 0.0011729, 0.00116139, 0.00114998, 0.00113869, 0.0011275, 0.00111642, 0.00110544, 0.00109457, 0.0010838, 0.00107313, 0.00106257, 0.0010521, 0.00104173, 0.00103146, 0.00102129, 0.00101122, 0.00100124, 0.00099135, 0.00098156, 0.00097187, 0.00096226, 0.00095275, 0.00094332, 0.00093399, 0.00092475, 0.00091559, 0.00090652, 0.00089754, 0.00088864, 0.00087983, 0.00087111, 0.00086246, 0.0008539, 0.00084542, 0.00083702, 0.00082871, 0.00082047, 0.00081231, 0.00080423, 0.00079623, 0.0007883, 0.00078045, 0.00077267, 0.00076497, 0.00075735, 0.00074979, 0.00074231, 0.00073491, 0.00072757, 0.0007203, 0.00071311, 0.00070598, 0.00069892, 0.00069193, 0.00068501, 0.00067815, 0.00067136, 0.00066463, 0.00065797, 0.00065138, 0.00064485, 0.00063838, 0.00063197, 0.00062563, 0.00061935, 0.00061313, 0.00060697, 0.00060086, 0.00059482, 0.00058884, 0.00058291, 0.00057704, 0.00057123, 0.00056548, 0.00055978, 0.00055414, 0.00054855, 0.00054301, 0.00053753, 0.00053211, 0.00052673, 0.00052141, 0.00051614, 0.00051092, 0.00050576, 0.00050064, 0.00049557, 0.00049055, 0.00048559, 0.00048067, 0.00047579, 0.00047097, 0.00046619, 0.00046146, 0.00045678, 0.00045214, 0.00044755, 0.000443, 0.0004385, 0.00043404, 0.00042963, 0.00042525, 0.00042093, 0.00041664, 0.0004124, 0.00040819, 0.00040403, 0.00039991, 0.00039583, 0.0003918, 0.0003878, 0.00038384, 0.00037992, 0.00037603, 0.00037219, 0.00036838, 0.00036462, 0.00036089, 0.00035719, 0.00035353, 0.00034991, 0.00034633, 0.00034278, 0.00033926, 0.00033578, 0.00033234, 0.00032892, 0.00032555, 0.0003222, 0.00031889, 0.00031561, 0.00031237, 0.00030916, 0.00030597, 0.00030282, 0.00029971, 0.00029662, 0.00029356, 0.00029054, 0.00028754, 0.00028457, 0.00028164, 0.00027873, 0.00027585, 0.000273, 0.00027018, 0.00026739, 0.00026462, 0.00026189, 0.00025918, 0.00025649, 0.00025384, 0.00025121, 0.00024861, 0.00024603, 0.00024348, 0.00024095, 0.00023845, 0.00023598, 0.00023353, 0.0002311, 0.0002287, 0.00022632, 0.00022397, 0.00022164, 0.00021933, 0.00021705, 0.00021479, 0.00021255, 0.00021034, 0.00020814, 0.00020597, 0.00020383, 0.0002017, 0.00019959, 0.00019751, 0.00019545, 0.0001934, 0.00019138, 0.00018938, 0.0001874, 0.00018544, 0.0001835, 0.00018158, 0.00017968, 0.00017779, 0.00017593, 0.00017409, 0.00017226, 0.00017045, 0.00016866, 0.00016689, 0.00016514, 0.00016341, 0.00016169, 0.00015999, 0.00015831, 0.00015664, 0.00015499, 0.00015336, 0.00015175, 0.00015015, 0.00014856, 0.000147, 0.00014545, 0.00014391, 0.00014239, 0.00014089, 0.0001394, 0.00013793, 0.00013647, 0.00013503, 0.0001336, 0.00013219, 0.00013079, 0.00012941, 0.00012804, 0.00012668, 0.00012534, 0.00012401, 0.00012269, 0.00012139, 0.00012011, 0.00011883, 0.00011757, 0.00011632, 0.00011508, 0.00011386, 0.00011265, 0.00011145, 0.00011027, 0.00010909, 0.00010793, 0.00010678, 0.00010564, 0.00010452, 0.0001034, 0.0001023, 0.00010121, 0.00010013, 0.00009906, 0.000098, 0.00009696, 0.00009592, 0.0000949, 0.00009388, 0.00009288, 0.00009188, 0.0000909, 0.00008993, 0.00008896, 0.00008801, 0.00008707, 0.00008613, 0.00008521, 0.00008429, 0.00008339, 0.00008249, 0.00008161, 0.00008073, 0.00007986, 0.00007901, 0.00007816, 0.00007732, 0.00007648, 0.00007566, 0.00007485, 0.00007404, 0.00007324, 0.00007245, 0.00007167, 0.0000709, 0.00007013, 0.00006938, 0.00006863, 0.00006789, 0.00006715, 0.00006643, 0.00006571, 0.000065, 0.00006429, 0.0000636, 0.00006291, 0.00006223, 0.00006155, 0.00006089, 0.00006023, 0.00005957, 0.00005893, 0.00005829, 0.00005766, 0.00005703, 0.00005641, 0.0000558, 0.00005519, 0.00005459, 0.000054, 0.00005341, 0.00005283, 0.00005225, 0.00005168, 0.00005112, 0.00005056, 0.00005001, 0.00004947, 0.00004893, 0.00004839, 0.00004787, 0.00004734, 0.00004683, 0.00004631, 0.00004581, 0.00004531, 0.00004481, 0.00004432, 0.00004384, 0.00004336, 0.00004288, 0.00004241, 0.00004195, 0.00004149, 0.00004103, 0.00004058, 0.00004014, 0.0000397, 0.00003926, 0.00003883, 0.0000384, 0.00003798, 0.00003756, 0.00003715, 0.00003674, 0.00003634, 0.00003594, 0.00003554, 0.00003515, 0.00003476, 0.00003438, 0.000034, 0.00003363, 0.00003325, 0.00003289, 0.00003252, 0.00003217, 0.00003181, 0.00003146, 0.00003111, 0.00003077, 0.00003043, 0.00003009, 0.00002976, 0.00002943, 0.0000291, 0.00002878, 0.00002846, 0.00002814, 0.00002783, 0.00002752, 0.00002722, 0.00002692, 0.00002662, 0.00002632, 0.00002603, 0.00002574, 0.00002545, 0.00002517, 0.00002489, 0.00002461, 0.00002434, 0.00002407, 0.0000238, 0.00002353, 0.00002327, 0.00002301, 0.00002276, 0.0000225, 0.00002225, 0.000022, 0.00002176, 0.00002151, 0.00002127, 0.00002103, 0.0000208, 0.00002057, 0.00002034, 0.00002011, 0.00001988, 0.00001966, 0.00001944, 0.00001922, 0.00001901, 0.00001879, 0.00001858, 0.00001837, 0.00001817, 0.00001796, 0.00001776, 0.00001756, 0.00001737, 0.00001717, 0.00001698, 0.00001679, 0.0000166, 0.00001641, 0.00001623, 0.00001604, 0.00001586, 0.00001568, 0.00001551, 0.00001533, 0.00001516, 0.00001499, 0.00001482, 0.00001465, 0.00001448, 0.00001432, 0.00001416, 0.000014, 0.00001384, 0.00001368, 0.00001353, 0.00001338, 0.00001322, 0.00001307, 0.00001293, 0.00001278, 0.00001263, 0.00001249, 0.00001235, 0.00001221, 0.00001207, 0.00001193, 0.0000118, 0.00001166, 0.00001153, 0.0000114, 0.00001127, 0.00001114, 0.00001102, 0.00001089, 0.00001077, 0.00001064, 0.00001052, 0.0000104, 0.00001028, 0.00001017, 0.00001005, 9.9353303e-06, 9.82186568e-06, 9.70966174e-06, 9.59870488e-06, 9.48898165e-06, 9.38047874e-06, 9.27318297e-06, 9.16708131e-06, 9.06216086e-06, 8.95840886e-06, 8.85581267e-06, 8.75435981e-06, 8.65403789e-06, 8.55483468e-06, 8.45673807e-06, 8.35973608e-06, 8.26381685e-06, 8.16896865e-06, 8.07517987e-06, 7.98243901e-06, 7.89073472e-06, 7.80005573e-06, 7.71039093e-06, 7.6217293e-06, 7.53405994e-06, 7.44737207e-06, 7.36165502e-06, 7.27689823e-06, 7.19309126e-06, 7.11022377e-06, 7.02828553e-06, 6.94726643e-06, 6.86715645e-06, 6.78794568e-06, 6.70962433e-06, 6.63218269e-06, 6.55561117e-06, 6.47990027e-06, 6.4050406e-06, 6.33102286e-06, 6.25783786e-06, 6.18547649e-06, 6.11392976e-06, 6.04318875e-06, 5.97324465e-06, 5.90408874e-06, 5.8357124e-06, 5.76810707e-06, 5.70126433e-06, 5.63517582e-06, 5.56983326e-06, 5.50522847e-06, 5.44135337e-06, 5.37819995e-06, 5.31576028e-06, 5.25402653e-06, 5.19299095e-06, 5.13264585e-06, 5.07298366e-06, 5.01399686e-06, 4.95567803e-06, 4.89801981e-06, 4.84101493e-06, 4.7846562e-06, 4.7289365e-06, 4.6738488e-06, 4.61938611e-06, 4.56554157e-06, 4.51230833e-06, 4.45967967e-06, 4.4076489e-06, 4.35620943e-06, 4.30535473e-06, 4.25507833e-06, 4.20537384e-06, 4.15623494e-06, 4.10765537e-06, 4.05962895e-06, 4.01214955e-06, 3.96521112e-06, 3.91880766e-06, 3.87293325e-06, 3.82758203e-06, 3.78274819e-06, 3.738426e-06, 3.69460978e-06, 3.65129391e-06, 3.60847284e-06, 3.56614108e-06, 3.52429318e-06, 3.48292378e-06, 3.44202755e-06, 3.40159923e-06, 3.36163362e-06, 3.32212556e-06, 3.28306997e-06, 3.2444618e-06, 3.20629607e-06, 3.16856785e-06, 3.13127226e-06, 3.09440448e-06, 3.05795973e-06, 3.02193331e-06, 2.98632053e-06, 2.95111677e-06, 2.91631748e-06, 2.88191812e-06, 2.84791424e-06, 2.8143014e-06, 2.78107524e-06, 2.74823142e-06, 2.71576567e-06, 2.68367376e-06, 2.65195149e-06, 2.62059473e-06, 2.58959939e-06, 2.55896139e-06, 2.52867675e-06, 2.4987415e-06, 2.46915171e-06, 2.43990351e-06, 2.41099305e-06, 2.38241656e-06, 2.35417027e-06, 2.32625046e-06, 2.29865348e-06, 2.27137569e-06, 2.24441349e-06, 2.21776334e-06, 2.19142172e-06, 2.16538515e-06, 2.1396502e-06, 2.11421346e-06, 2.08907159e-06, 2.06422124e-06, 2.03965913e-06, 2.01538201e-06, 1.99138665e-06, 1.96766989e-06, 1.94422856e-06, 1.92105956e-06, 1.8981598e-06, 1.87552625e-06, 1.85315589e-06, 1.83104573e-06, 1.80919285e-06, 1.78759432e-06, 1.76624726e-06, 1.74514882e-06, 1.72429618e-06, 1.70368656e-06, 1.6833172e-06, 1.66318537e-06, 1.64328838e-06, 1.62362356e-06, 1.60418827e-06, 1.5849799e-06, 1.56599589e-06, 1.54723366e-06, 1.52869071e-06, 1.51036454e-06, 1.49225267e-06, 1.47435268e-06, 1.45666215e-06, 1.43917868e-06, 1.42189993e-06, 1.40482356e-06, 1.38794725e-06, 1.37126873e-06, 1.35478575e-06, 1.33849606e-06, 1.32239746e-06, 1.30648777e-06, 1.29076484e-06, 1.27522651e-06, 1.2598707e-06, 1.24469529e-06, 1.22969825e-06, 1.21487751e-06, 1.20023107e-06, 1.18575692e-06, 1.1714531e-06, 1.15731765e-06, 1.14334863e-06, 1.12954415e-06, 1.11590232e-06, 1.10242126e-06, 1.08909914e-06, 1.07593412e-06, 1.06292441e-06, 1.05006822e-06, 1.03736378e-06, 1.02480935e-06, 1.0124032e-06, 1.00014363e-06, 9.88028953e-07, 9.76057497e-07, 9.64227615e-07, 9.52537674e-07, 9.40986064e-07, 9.29571188e-07, 9.1829147e-07, 9.07145351e-07, 8.9613129e-07, 8.85247761e-07, 8.74493259e-07, 8.63866291e-07, 8.53365386e-07, 8.42989085e-07, 8.32735949e-07, 8.22604552e-07, 8.12593487e-07, 8.0270136e-07, 7.92926795e-07, 7.8326843e-07, 7.73724919e-07, 7.64294932e-07, 7.54977152e-07, 7.45770278e-07, 7.36673024e-07, 7.27684117e-07, 7.18802301e-07, 7.10026332e-07, 7.0135498e-07, 6.92787031e-07, 6.84321281e-07, 6.75956544e-07, 6.67691644e-07, 6.5952542e-07, 6.51456724e-07, 6.4348442e-07, 6.35607387e-07, 6.27824513e-07, 6.20134703e-07, 6.12536871e-07, 6.05029945e-07, 5.97612865e-07, 5.90284582e-07, 5.83044061e-07, 5.75890276e-07, 5.68822215e-07, 5.61838876e-07, 5.54939269e-07, 5.48122416e-07, 5.41387348e-07, 5.3473311e-07, 5.28158754e-07, 5.21663348e-07, 5.15245965e-07, 5.08905692e-07, 5.02641627e-07, 4.96452875e-07, 4.90338553e-07, 4.8429779e-07, 4.78329722e-07, 4.72433495e-07, 4.66608268e-07, 4.60853205e-07, 4.55167484e-07, 4.49550288e-07, 4.44000813e-07, 4.38518263e-07, 4.3310185e-07, 4.27750797e-07, 4.22464334e-07, 4.172417e-07, 4.12082145e-07, 4.06984926e-07, 4.01949307e-07, 3.96974562e-07, 3.92059974e-07, 3.87204834e-07, 3.8240844e-07, 3.77670098e-07, 3.72989124e-07, 3.68364839e-07, 3.63796575e-07, 3.59283668e-07, 3.54825466e-07, 3.5042132e-07, 3.46070592e-07, 3.4177265e-07, 3.37526868e-07, 3.33332629e-07, 3.29189323e-07, 3.25096347e-07, 3.21053103e-07, 3.17059003e-07, 3.13113463e-07, 3.09215908e-07, 3.05365768e-07, 3.01562481e-07, 2.97805489e-07, 2.94094244e-07, 2.90428202e-07, 2.86806826e-07, 2.83229584e-07, 2.79695951e-07, 2.7620541e-07, 2.72757447e-07, 2.69351556e-07, 2.65987235e-07, 2.62663989e-07, 2.59381329e-07, 2.56138772e-07, 2.52935839e-07, 2.49772057e-07, 2.4664696e-07, 2.43560086e-07, 2.40510979e-07, 2.37499187e-07, 2.34524266e-07, 2.31585774e-07, 2.28683276e-07, 2.25816342e-07, 2.22984547e-07, 2.20187469e-07, 2.17424695e-07, 2.14695812e-07, 2.12000416e-07, 2.09338105e-07, 2.06708482e-07, 2.04111157e-07, 2.01545741e-07, 1.99011852e-07, 1.96509112e-07, 1.94037147e-07, 1.91595588e-07, 1.89184069e-07, 1.86802229e-07, 1.84449713e-07, 1.82126168e-07, 1.79831245e-07, 1.775646e-07, 1.75325892e-07, 1.73114787e-07, 1.70930951e-07, 1.68774056e-07, 1.66643777e-07, 1.64539795e-07, 1.62461791e-07, 1.60409453e-07, 1.58382471e-07, 1.5638054e-07, 1.54403357e-07, 1.52450622e-07, 1.50522042e-07, 1.48617324e-07, 1.4673618e-07, 1.44878326e-07, 1.43043478e-07, 1.4123136e-07, 1.39441696e-07, 1.37674215e-07, 1.35928648e-07, 1.34204729e-07, 1.32502197e-07, 1.30820792e-07, 1.29160258e-07, 1.27520343e-07, 1.25900796e-07, 1.2430137e-07, 1.22721821e-07, 1.21161908e-07, 1.19621392e-07, 1.18100037e-07, 1.16597612e-07, 1.15113885e-07, 1.1364863e-07, 1.12201622e-07, 1.10772638e-07, 1.0936146e-07, 1.07967871e-07, 1.06591656e-07, 1.05232605e-07, 1.03890507e-07, 1.02565157e-07, 1.0125635e-07, 9.99638847e-08, 9.86875612e-08, 9.74271828e-08, 9.6182555e-08, 9.49534853e-08, 9.37397839e-08, 9.25412629e-08, 9.13577368e-08, 9.01890224e-08, 8.90349384e-08, 8.78953061e-08, 8.67699484e-08, 8.56586908e-08, 8.45613606e-08, 8.34777872e-08, 8.24078021e-08, 8.13512388e-08, 8.03079328e-08, 7.92777215e-08, 7.82604443e-08, 7.72559425e-08, 7.62640594e-08, 7.528464e-08, 7.43175312e-08, 7.33625819e-08, 7.24196427e-08, 7.14885658e-08, 7.05692055e-08, 6.96614176e-08, 6.87650599e-08, 6.78799915e-08, 6.70060737e-08, 6.6143169e-08, 6.52911417e-08, 6.4449858e-08, 6.36191853e-08, 6.27989929e-08, 6.19891515e-08, 6.11895334e-08, 6.04000124e-08, 5.9620464e-08, 5.88507649e-08, 5.80907937e-08, 5.73404299e-08, 5.6599555e-08, 5.58680516e-08, 5.51458039e-08, 5.44326973e-08, 5.37286187e-08, 5.30334565e-08, 5.23471001e-08, 5.16694406e-08, 5.10003703e-08, 5.03397826e-08, 4.96875725e-08, 4.9043636e-08, 4.84078706e-08, 4.77801748e-08, 4.71604486e-08, 4.65485929e-08, 4.59445101e-08, 4.53481036e-08, 4.4759278e-08, 4.41779391e-08, 4.36039938e-08, 4.30373502e-08, 4.24779174e-08, 4.19256057e-08, 4.13803265e-08, 4.08419921e-08, 4.03105162e-08, 3.97858131e-08, 3.92677987e-08, 3.87563894e-08, 3.82515028e-08, 3.77530578e-08, 3.72609737e-08, 3.67751713e-08, 3.62955722e-08, 3.58220989e-08, 3.53546747e-08, 3.48932243e-08, 3.44376728e-08, 3.39879465e-08, 3.35439726e-08, 3.31056792e-08, 3.2672995e-08, 3.22458499e-08, 3.18241746e-08, 3.14079005e-08, 3.09969599e-08, 3.05912861e-08, 3.01908129e-08, 2.97954752e-08, 2.94052085e-08, 2.90199492e-08, 2.86396345e-08, 2.82642022e-08, 2.78935911e-08, 2.75277406e-08, 2.71665909e-08, 2.68100828e-08, 2.6458158e-08, 2.61107589e-08, 2.57678285e-08, 2.54293106e-08, 2.50951496e-08, 2.47652907e-08, 2.44396797e-08, 2.4118263e-08, 2.38009879e-08, 2.3487802e-08, 2.31786538e-08, 2.28734924e-08, 2.25722674e-08, 2.22749292e-08, 2.19814288e-08, 2.16917175e-08, 2.14057477e-08, 2.11234719e-08, 2.08448435e-08, 2.05698164e-08, 2.0298345e-08, 2.00303843e-08, 1.976589e-08, 1.9504818e-08, 1.92471252e-08, 1.89927686e-08, 1.87417061e-08, 1.84938958e-08, 1.82492965e-08, 1.80078675e-08, 1.77695687e-08, 1.75343602e-08, 1.73022028e-08, 1.70730579e-08, 1.68468871e-08, 1.66236527e-08, 1.64033173e-08, 1.61858441e-08, 1.59711968e-08, 1.57593393e-08, 1.55502362e-08, 1.53438525e-08, 1.51401534e-08, 1.49391049e-08, 1.47406731e-08, 1.45448247e-08, 1.43515269e-08, 1.4160747e-08, 1.3972453e-08, 1.37866132e-08, 1.36031962e-08, 1.34221711e-08, 1.32435075e-08, 1.3067175e-08, 1.2893144e-08, 1.27213851e-08, 1.25518692e-08, 1.23845676e-08, 1.2219452e-08, 1.20564945e-08, 1.18956674e-08, 1.17369434e-08, 1.15802957e-08, 1.14256976e-08, 1.12731229e-08, 1.11225456e-08, 1.09739402e-08, 1.08272814e-08, 1.06825441e-08, 1.05397038e-08, 1.03987361e-08, 1.02596169e-08, 1.01223226e-08, 9.98682963e-09, 9.85311491e-09, 9.72115558e-09, 9.59092906e-09, 9.46241307e-09, 9.33558561e-09, 9.21042496e-09, 9.08690966e-09, 8.96501853e-09, 8.84473065e-09, 8.72602537e-09, 8.6088823e-09, 8.4932813e-09, 8.37920249e-09, 8.26662624e-09, 8.15553317e-09, 8.04590414e-09, 7.93772025e-09, 7.83096284e-09, 7.72561349e-09, 7.62165401e-09, 7.51906644e-09, 7.41783304e-09, 7.31793632e-09, 7.21935897e-09, 7.12208393e-09, 7.02609434e-09, 6.93137357e-09, 6.8379052e-09, 6.74567298e-09, 6.65466092e-09, 6.5648532e-09, 6.47623421e-09, 6.38878853e-09, 6.30250095e-09, 6.21735644e-09, 6.13334016e-09, 6.05043747e-09, 5.96863391e-09, 5.8879152e-09, 5.80826725e-09, 5.72967615e-09, 5.65212814e-09, 5.57560967e-09, 5.50010735e-09, 5.42560796e-09, 5.35209844e-09, 5.2795659e-09, 5.20799763e-09, 5.13738106e-09, 5.0677038e-09, 4.99895359e-09, 4.93111836e-09, 4.86418617e-09, 4.79814525e-09, 4.73298396e-09, 4.66869082e-09, 4.6052545e-09, 4.54266381e-09, 4.48090771e-09, 4.41997528e-09, 4.35985577e-09, 4.30053854e-09, 4.2420131e-09, 4.1842691e-09, 4.1272963e-09, 4.07108463e-09, 4.0156241e-09, 3.96090489e-09, 3.90691728e-09, 3.85365169e-09, 3.80109865e-09, 3.74924882e-09, 3.69809298e-09, 3.64762202e-09, 3.59782696e-09, 3.54869893e-09, 3.50022916e-09, 3.45240902e-09, 3.40522997e-09, 3.35868358e-09, 3.31276154e-09, 3.26745564e-09, 3.22275778e-09, 3.17865996e-09, 3.13515428e-09, 3.09223294e-09, 3.04988827e-09, 3.00811265e-09, 2.9668986e-09, 2.92623871e-09, 2.88612568e-09, 2.8465523e-09, 2.80751146e-09, 2.76899612e-09, 2.73099935e-09, 2.69351431e-09, 2.65653424e-09, 2.62005247e-09, 2.58406243e-09, 2.5485576e-09, 2.51353158e-09, 2.47897805e-09, 2.44489074e-09, 2.41126349e-09, 2.37809021e-09, 2.3453649e-09, 2.31308162e-09] }, { "type": "list", "attributes": {}, "value": [ { "type": "logical", "attributes": {}, "value": [null] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_LMCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/analyse_baSAR.md0000644000176200001440000020472514762554470022167 0ustar liggesusers# Full check of analyse_baSAR function { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "mcmc", "models", "input_object", "removed_aliquots"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["DISTRIBUTION", "NB_ALIQUOTS", "N.CHAINS", "N.MCMC", "FIT_METHOD", "CENTRAL", "CENTRAL.SD", "SIGMA", "SIGMA.SD", "CENTRAL_Q_.16", "CENTRAL_Q_.84", "SIGMA_Q_.16", "SIGMA_Q_.84", "CENTRAL_Q_.025", "CENTRAL_Q_.975", "SIGMA_Q_.025", "SIGMA_Q_.975", "DE_FINAL", "DE_FINAL.ERROR"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "character", "attributes": {}, "value": ["cauchy"] }, { "type": "integer", "attributes": {}, "value": [3] }, { "type": "double", "attributes": {}, "value": [3] }, { "type": "double", "attributes": {}, "value": [100] }, { "type": "character", "attributes": {}, "value": ["EXP"] }, { "type": "double", "attributes": {}, "value": [499.762] }, { "type": "double", "attributes": {}, "value": [4.975] }, { "type": "double", "attributes": {}, "value": [0.07] }, { "type": "double", "attributes": {}, "value": [0.065] }, { "type": "double", "attributes": {}, "value": [493.275] }, { "type": "double", "attributes": {}, "value": [505.064] }, { "type": "double", "attributes": {}, "value": [0.035] }, { "type": "double", "attributes": {}, "value": [0.11] }, { "type": "double", "attributes": {}, "value": [493.187] }, { "type": "double", "attributes": {}, "value": [505.377] }, { "type": "double", "attributes": {}, "value": [0.03] }, { "type": "double", "attributes": {}, "value": [0.273] }, { "type": "double", "attributes": {}, "value": [499.762] }, { "type": "double", "attributes": {}, "value": [4.9750001] } ] }, { "type": "list", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["mcmc.list"] } }, "value": [ { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [10, 38] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["D[1]", "D[2]", "D[3]", "Q[1,1]", "Q[2,1]", "Q[3,1]", "Q[4,1]", "Q[5,1]", "Q[6,1]", "Q[7,1]", "Q[1,2]", "Q[2,2]", "Q[3,2]", "Q[4,2]", "Q[5,2]", "Q[6,2]", "Q[7,2]", "Q[1,3]", "Q[2,3]", "Q[3,3]", "Q[4,3]", "Q[5,3]", "Q[6,3]", "Q[7,3]", "a[1]", "a[2]", "a[3]", "b[1]", "b[2]", "b[3]", "c[1]", "c[2]", "c[3]", "central_D", "g[1]", "g[2]", "g[3]", "sigma_D"] } ] }, "mcpar": { "type": "double", "attributes": {}, "value": [210, 300, 10] }, "class": { "type": "character", "attributes": {}, "value": ["mcmc"] } }, "value": [493.83429239, 491.64998579, 491.42437759, 491.61881745, 491.59103687, 491.9151177, 492.60697285, 492.63017515, 493.27005539, 493.46392001, 493.47793088, 492.46848644, 491.30139024, 491.45035967, 491.3478228, 491.86090133, 492.66450305, 493.21216909, 493.19651657, 493.60860172, 495.43266829, 491.87115007, 491.37807383, 491.69173683, 491.30021236, 492.09473846, 492.76607964, 493.90331331, 493.18313524, 493.38024209, 4.94882892, 5.49502097, 5.32116658, 5.05113487, 5.40569008, 5.56553101, 5.44278998, 5.0421477, 4.80242621, 5.14847582, 1.80839941, 1.71493264, 2.01818583, 1.85949357, 1.85650102, 1.58861324, 1.91256789, 2.02038499, 2.14406256, 2.04010737, 3.12124902, 3.43255187, 3.32572772, 3.41923447, 3.40993877, 3.07502807, 3.2181634, 3.70233834, 3.44825569, 3.55529159, 4.17329048, 4.70473377, 4.42275064, 4.48693288, 4.60358739, 4.3786003, 4.37203288, 4.67250509, 4.33700248, 4.59553874, 4.47669526, 5.04150886, 4.75516689, 4.74607306, 4.93250555, 4.79275875, 4.74165489, 4.86676001, 4.55163259, 4.84883906, 1.80839941, 1.71493264, 2.01818583, 1.85949357, 1.85650102, 1.58861324, 1.91256789, 2.02038499, 2.14406256, 2.04010737, 0.23556655, -0.45936659, 0.50109975, -0.2272876, -0.05999983, -0.08364217, 0.45160377, -0.51911421, 0.39363083, 0.01712017, 4.45769807, 5.02593888, 4.36833248, 4.44331315, 4.66959922, 4.25100517, 4.69223537, 4.22106894, 4.31949546, 4.80738, 1.57041053, 1.6913825, 2.04140877, 1.48739553, 1.72316726, 1.65004044, 1.97301638, 1.68274723, 1.7322144, 1.80770746, 3.10935874, 3.183629, 3.40034792, 2.96850946, 3.14163119, 3.27865918, 3.4993372, 3.15704973, 3.24988404, 3.19793051, 4.0538621, 4.30587459, 4.12692263, 3.95282027, 4.12937538, 4.04624717, 4.36862537, 3.95248059, 4.0553571, 4.2068341, 4.25675595, 4.60795481, 4.26029264, 4.18399338, 4.37369374, 4.16791748, 4.54018031, 4.10002132, 4.20195649, 4.46800727, 1.57041053, 1.6913825, 2.04140877, 1.48739553, 1.72316726, 1.65004044, 1.97301638, 1.68274723, 1.7322144, 1.80770746, -0.65332815, -0.17753926, -0.1239538, -0.53590027, -0.15190678, -1.18925522, -0.35234186, -0.65134923, -0.69880645, 0.02250389, 4.63159208, 4.61158355, 4.80192278, 4.28542121, 4.25035121, 4.76009035, 4.52108593, 4.94765634, 4.27370362, 4.54002325, 1.73156462, 1.85171131, 1.61700764, 1.31286591, 1.42006943, 2.34930955, 1.81894765, 1.82918131, 1.61110026, 1.57526211, 2.93739328, 3.22292129, 2.91791467, 2.71056929, 2.7579982, 3.71478848, 3.1587492, 3.13858156, 2.93930839, 3.12478509, 3.90825111, 4.14352616, 3.98148871, 3.70943692, 3.70863917, 4.48171896, 4.06044425, 4.18380302, 3.8267644, 4.1011639, 4.18967608, 4.36220329, 4.29492574, 3.96368038, 3.94907228, 4.63068527, 4.27520605, 4.48398123, 4.03644274, 4.31721695, 1.73156462, 1.85171131, 1.61700764, 1.31286591, 1.42006943, 2.34930955, 1.81894765, 1.82918131, 1.61110026, 1.57526211, 0.29170507, -0.00805553, 0.08013429, -0.50139948, -0.32366649, 0.24834366, 0.00486992, 0.25623174, -0.19645362, -0.62247324, 4.71333087, 5.95441182, 4.82022598, 5.27842816, 5.46573126, 5.64955904, 4.99156865, 5.56126222, 4.40879958, 5.13136117, 5.11102703, 5.20350499, 4.49228636, 4.97921669, 4.82151299, 5.4402604, 5.04457746, 4.87241825, 5.01830198, 4.78488926, 4.33995288, 4.61964264, 4.72188986, 4.78683136, 4.57402704, 4.51174685, 4.51621954, 4.69148839, 4.47016029, 5.16249778, 44.33350574, 39.61453894, 47.62568643, 35.77879583, 41.68913961, 51.28593985, 51.98088952, 29.50893884, 35.58085014, 35.90870509, 31.51908353, 40.45082596, 27.36333096, 34.51831185, 36.54893052, 24.39207833, 29.12766954, 27.60366932, 27.17046516, 38.5475813, 44.65165338, 34.94252227, 45.71409523, 37.77995417, 37.49887256, 28.72033401, 35.04464517, 44.076021, 34.74106913, 32.45444166, 1.56092083, 1.289777, 0.04669554, 0.93719596, 0.58164157, 0.54890445, 0.12779602, 1.085897, 1.40245195, 1.86716673, 0.94142666, 2.28730288, 2.23408527, 0.44672167, 0.95303651, 2.21877649, 2.53163815, 0.81667065, 0.68081291, 1.35781874, 1.44788559, 0.39103909, 2.19939187, 1.36289751, 1.00809841, 1.3408036, 0.04026628, 1.68179695, 2.58257813, 1.37450359, 493.84734402, 492.23790291, 491.3583337, 491.58963059, 491.30716831, 491.96111516, 492.7797146, 493.2022435, 493.25550856, 493.46763204, 0.23556655, -0.45936659, 0.50109975, -0.2272876, -0.05999983, -0.08364217, 0.45160377, -0.51911421, 0.39363083, 0.01712017, -0.65332815, -0.17753926, -0.1239538, -0.53590027, -0.15190678, -1.18925522, -0.35234186, -0.65134923, -0.69880645, 0.02250389, 0.29170507, -0.00805553, 0.08013429, -0.50139948, -0.32366649, 0.24834366, 0.00486992, 0.25623174, -0.19645362, -0.62247324, 0.24195851, 0.07611786, 0.05815557, 0.15427588, 0.17904828, 0.10542296, 0.12846696, 0.26213194, 0.07295238, 0.06560168] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [10, 38] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["D[1]", "D[2]", "D[3]", "Q[1,1]", "Q[2,1]", "Q[3,1]", "Q[4,1]", "Q[5,1]", "Q[6,1]", "Q[7,1]", "Q[1,2]", "Q[2,2]", "Q[3,2]", "Q[4,2]", "Q[5,2]", "Q[6,2]", "Q[7,2]", "Q[1,3]", "Q[2,3]", "Q[3,3]", "Q[4,3]", "Q[5,3]", "Q[6,3]", "Q[7,3]", "a[1]", "a[2]", "a[3]", "b[1]", "b[2]", "b[3]", "c[1]", "c[2]", "c[3]", "central_D", "g[1]", "g[2]", "g[3]", "sigma_D"] } ] }, "mcpar": { "type": "double", "attributes": {}, "value": [210, 300, 10] }, "class": { "type": "character", "attributes": {}, "value": ["mcmc"] } }, "value": [500.0000427, 500.44618212, 500.51480813, 500.30953343, 499.28087612, 498.70979985, 498.79497476, 498.5849471, 498.49128896, 499.08158622, 499.71730933, 500.1441624, 500.36683749, 499.6139696, 498.70647763, 498.6004052, 498.62616026, 498.80405166, 498.46587929, 498.86944922, 499.90182951, 499.51494749, 499.44702805, 497.28158834, 497.92925807, 498.68318413, 498.94886195, 498.65964028, 498.53991504, 499.10813359, 5.48730227, 5.28971173, 5.32197422, 4.87332151, 5.04846079, 5.17112053, 5.41654625, 4.87725246, 5.15704125, 5.46925261, 1.77537092, 1.51351393, 2.10261728, 2.0426489, 1.77488325, 1.70934364, 1.89185439, 1.93158189, 1.85120358, 2.15557638, 3.45355611, 2.89444537, 3.34604928, 3.56267868, 3.19376351, 3.24488557, 3.32511002, 3.48481278, 3.46133842, 3.6501802, 4.70285679, 4.12480097, 4.40978616, 4.4860558, 4.29409932, 4.40973681, 4.50132391, 4.45209775, 4.56780478, 4.76545026, 5.03541704, 4.52232597, 4.73890699, 4.68212924, 4.60035425, 4.72626301, 4.8493699, 4.66333031, 4.8375079, 5.06310062, 1.77537092, 1.51351393, 2.10261728, 2.0426489, 1.77488325, 1.70934364, 1.89185439, 1.93158189, 1.85120358, 2.15557638, -0.3414648, -0.02309256, 0.67934269, -0.16973193, 0.03562221, -0.20217339, 0.20308468, -0.28976537, -0.29714724, 0.27342812, 5.63127675, 5.02153091, 4.78869088, 4.19512313, 5.19208242, 4.65067775, 4.41076914, 5.17696997, 5.32969529, 4.43773241, 1.82240063, 1.77056186, 1.77886416, 1.57865283, 1.82093722, 1.0305465, 1.93846625, 2.01879415, 1.94667135, 1.88489386, 2.92810982, 2.95422322, 3.14670914, 3.09356579, 3.10562151, 2.34794168, 3.28600529, 3.17647214, 3.49592823, 3.33897597, 4.06123539, 4.01210748, 4.15965731, 3.91513802, 4.21603627, 3.52577968, 4.08754985, 4.20616767, 4.63429328, 4.14852574, 4.48533281, 4.35503975, 4.42775877, 4.06843522, 4.56340493, 3.90774544, 4.25374737, 4.53826002, 4.93302242, 4.30419702, 1.82240063, 1.77056186, 1.77886416, 1.57865283, 1.82093722, 1.0305465, 1.93846625, 2.01879415, 1.94667135, 1.88489386, 0.70573601, 0.45631091, 0.04713586, -0.81095162, 0.36095813, -0.43182104, -0.05228231, 0.72908754, -0.02549864, -0.36639789, 4.22946429, 4.35023369, 4.99448866, 4.43555592, 4.80842794, 4.85692202, 4.58916383, 4.5896332, 4.82222673, 4.48054676, 1.77022045, 2.18623907, 1.92496075, 2.02567364, 1.88669493, 1.94975239, 1.86473135, 1.88865554, 1.53650884, 1.49232056, 3.23154682, 3.65903218, 3.50498594, 3.07238593, 3.14189855, 3.2132789, 3.28482394, 3.20696978, 2.98081774, 3.00160038, 3.99019228, 4.23677882, 4.52043654, 3.88251918, 4.12334198, 4.1906246, 4.18280914, 4.11070042, 4.08607419, 3.99491738, 4.12479311, 4.31037932, 4.75016593, 4.1075231, 4.39895625, 4.46188941, 4.38230399, 4.33039368, 4.38927964, 4.22568922, 1.77022045, 2.18623907, 1.92496075, 2.02567364, 1.88669493, 1.94975239, 1.86473135, 1.88865554, 1.53650884, 1.49232056, -0.60759947, -0.74301404, -0.28502864, 0.740857, 0.35689174, 0.39813815, -0.14441851, 0.1266611, -0.25047512, -0.58363325, 5.82878805, 5.31320558, 4.64280769, 5.04305398, 5.01287548, 5.37332146, 5.21356303, 5.16701872, 5.45419367, 5.19584442, 4.92948347, 4.56558551, 4.74157048, 5.00607482, 4.83135059, 5.08292033, 4.4630518, 4.44821925, 5.35520996, 4.80413041, 4.83706379, 5.09324774, 5.27951884, 3.6947265, 4.4515751, 4.45881572, 4.7335834, 4.46297615, 5.07273216, 5.06418226, 39.88909717, 52.72848727, 49.16918558, 31.16897679, 42.24211854, 40.94107398, 45.98385883, 32.03080196, 35.95014938, 40.01823694, 70.07560095, 53.02207875, 39.60563718, 27.74241842, 50.02690074, 53.05677056, 30.47321905, 52.56969243, 39.19048086, 28.46884553, 26.60935017, 21.02902468, 33.19130593, 42.12327624, 42.74846607, 42.08633483, 32.5837871, 35.84225547, 41.44742019, 34.12244948, 1.07383754, 0.27084416, 2.64617224, 1.92885763, 1.34939546, 0.95063787, 1.63893793, 0.28257011, 1.83891255, 0.8774545, 1.3253967, 0.27569029, 0.88032733, 0.810853, 2.38593772, 1.84835949, 2.66482448, 1.76068835, 1.05736449, 0.50147222, 2.39874164, 1.56567525, 0.82279844, 0.83166074, 0.34763521, 2.10564296, 1.01447747, 1.56063755, 1.17023681, 1.87797747, 499.8950786, 500.05000964, 500.99947585, 499.60773124, 499.02424451, 498.71007011, 498.76475218, 498.68090636, 498.50158753, 499.1279233, -0.3414648, -0.02309256, 0.67934269, -0.16973193, 0.03562221, -0.20217339, 0.20308468, -0.28976537, -0.29714724, 0.27342812, 0.70573601, 0.45631091, 0.04713586, -0.81095162, 0.36095813, -0.43182104, -0.05228231, 0.72908754, -0.02549864, -0.36639789, -0.60759947, -0.74301404, -0.28502864, 0.740857, 0.35689174, 0.39813815, -0.14441851, 0.1266611, -0.25047512, -0.58363325, 0.14911222, 0.11448746, 0.10791101, 0.46979898, 0.10712505, 0.10300445, 0.24239377, 0.0693238, 0.14922521, 0.08152477] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [10, 38] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["D[1]", "D[2]", "D[3]", "Q[1,1]", "Q[2,1]", "Q[3,1]", "Q[4,1]", "Q[5,1]", "Q[6,1]", "Q[7,1]", "Q[1,2]", "Q[2,2]", "Q[3,2]", "Q[4,2]", "Q[5,2]", "Q[6,2]", "Q[7,2]", "Q[1,3]", "Q[2,3]", "Q[3,3]", "Q[4,3]", "Q[5,3]", "Q[6,3]", "Q[7,3]", "a[1]", "a[2]", "a[3]", "b[1]", "b[2]", "b[3]", "c[1]", "c[2]", "c[3]", "central_D", "g[1]", "g[2]", "g[3]", "sigma_D"] } ] }, "mcpar": { "type": "double", "attributes": {}, "value": [210, 300, 10] }, "class": { "type": "character", "attributes": {}, "value": ["mcmc"] } }, "value": [505.21542477, 500.46996379, 506.05927619, 505.52335199, 506.25773359, 503.82292408, 504.98689775, 505.86246816, 505.82394179, 504.93280159, 504.38549342, 504.74792854, 505.90884659, 508.92006371, 505.68599329, 508.24728936, 504.84766175, 505.4956644, 504.97005673, 505.06198788, 505.21654618, 504.7422857, 507.43028889, 506.98971567, 505.92708957, 506.29420361, 504.75635901, 505.19246623, 505.23208564, 505.14746645, 4.79997142, 5.09398445, 5.36240225, 5.43691846, 5.16347871, 4.6057365, 4.62020188, 4.95438885, 4.84262501, 5.46087073, 1.74044145, 1.87971587, 1.88296597, 1.57421529, 1.98899567, 2.03386736, 1.73402455, 1.78235001, 1.88899313, 1.60556353, 3.24793742, 3.24694712, 3.43346938, 2.93567199, 3.51755712, 3.28122293, 3.29078232, 3.24519609, 3.19385517, 2.98892251, 4.27005522, 4.32572598, 4.60439025, 4.1800675, 4.58172395, 4.14255592, 4.23060511, 4.31231009, 4.18759485, 4.23797989, 4.51551571, 4.63166923, 4.92100789, 4.5931705, 4.84487886, 4.35363727, 4.4287723, 4.59012565, 4.458779, 4.64729786, 1.74044145, 1.87971587, 1.88296597, 1.57421529, 1.98899567, 2.03386736, 1.73402455, 1.78235001, 1.88899313, 1.60556353, -0.29005074, 0.22390923, -0.0532661, 0.085928, -0.03194179, 0.37522376, -0.54180634, -0.08930453, 0.26908087, 0.08044653, 5.0781187, 5.23817674, 5.10580093, 4.65400871, 4.64936824, 4.69642827, 5.63952252, 5.60802951, 4.67067843, 5.21788956, 1.55477969, 1.92273043, 1.44233274, 1.75164753, 1.6093105, 1.90568551, 1.87597163, 1.39391636, 1.91355912, 1.49071039, 3.27382899, 3.48704733, 2.81929467, 3.14197989, 3.15810695, 3.23227307, 3.26629829, 3.30067368, 3.41614608, 2.98251234, 4.45278456, 4.60082575, 4.02185486, 4.11552534, 4.16654998, 4.16914732, 4.49603164, 4.71898304, 4.31008041, 4.22296457, 4.73952219, 4.88315623, 4.40222742, 4.35781373, 4.39804547, 4.40451694, 4.89028942, 5.09619876, 4.49547319, 4.59524345, 1.55477969, 1.92273043, 1.44233274, 1.75164753, 1.6093105, 1.90568551, 1.87597163, 1.39391636, 1.91355912, 1.49071039, -0.74211434, -0.11312596, -0.11128321, -0.07908151, -0.53717277, 0.16933874, 0.3210549, -1.01260121, -0.30595678, -0.25100928, 4.81637585, 5.13405184, 4.52848263, 4.66611181, 4.68056901, 4.97551002, 4.77471246, 3.92076879, 4.81545726, 4.82772153, 1.65513349, 1.41526466, 1.75377994, 1.90519723, 1.75077148, 1.61612041, 2.1159601, 1.84712796, 2.0906107, 1.76439256, 2.99913621, 3.09184665, 3.29755059, 3.51336675, 3.16769754, 3.21498426, 3.5528675, 3.06846211, 3.51781773, 3.20092312, 4.06006656, 4.34346241, 4.1885873, 4.37694816, 4.14928382, 4.34261905, 4.41794542, 3.71221827, 4.41456956, 4.23049817, 4.36109533, 4.67766329, 4.36712935, 4.53626422, 4.39069492, 4.62549006, 4.59978378, 3.82845816, 4.61236983, 4.49338934, 1.65513349, 1.41526466, 1.75377994, 1.90519723, 1.75077148, 1.61612041, 2.1159601, 1.84712796, 2.0906107, 1.76439256, 0.02797213, -0.69539316, -0.57601758, -0.64937128, -0.12908784, -0.47859652, 0.01123405, -0.11881633, 0.06229118, -0.09650741, 5.09002534, 4.87012202, 5.41568982, 5.35155774, 5.19542549, 4.23051652, 5.16200865, 5.04370441, 4.57356522, 5.38089254, 5.82023758, 5.35131061, 5.21733674, 4.73309491, 5.18654258, 4.52709482, 5.31879403, 6.6206512, 4.97663553, 5.46901515, 4.78844528, 5.82946455, 5.10450039, 5.31548314, 4.80966113, 5.4541131, 4.76347879, 4.03958514, 4.75316686, 4.92423701, 35.36203568, 43.32081968, 40.68497216, 55.23614182, 36.53841881, 36.16711373, 30.96013964, 38.81294595, 41.16634871, 54.00830171, 35.86152644, 37.59815715, 50.91824982, 36.80582033, 33.69585828, 37.20770752, 52.05366606, 39.8450728, 30.47915543, 46.9464398, 43.3497265, 40.04250691, 29.52858058, 27.47831933, 36.31288267, 37.14336391, 30.8683725, 26.99314097, 32.35090244, 37.92152287, 0.77821328, 1.38804204, 0.50496688, 2.23848855, 1.11578235, 3.74024556, 0.16954902, 1.51655303, 0.77492062, 1.55817824, 0.35517045, 1.34209512, 2.56581717, 0.07848622, 0.25322791, 1.76656741, 0.83452806, 0.78140991, 1.44131726, 1.98548157, 0.44061603, 2.97234877, 1.35401568, 1.74244452, 2.5873122, 2.23412515, 0.11446009, 0.4301849, 1.7228336, 1.12483828, 505.22360885, 504.74813929, 505.93556192, 506.07901334, 505.78440499, 506.39325344, 504.9616187, 505.45949169, 505.05993399, 505.1749462, -0.29005074, 0.22390923, -0.0532661, 0.085928, -0.03194179, 0.37522376, -0.54180634, -0.08930453, 0.26908087, 0.08044653, -0.74211434, -0.11312596, -0.11128321, -0.07908151, -0.53717277, 0.16933874, 0.3210549, -1.01260121, -0.30595678, -0.25100928, 0.02797213, -0.69539316, -0.57601758, -0.64937128, -0.12908784, -0.47859652, 0.01123405, -0.11881633, 0.06229118, -0.09650741, 0.09737866, 0.09254188, 0.13828204, 0.24857105, 0.16107165, 0.09342542, 0.20846943, 0.10912645, 0.05878063, 0.06071885] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["cauchy", "normal", "log_normal", "user_defined"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["model {\n\n central_D ~ dunif(lower_centralD,upper_centralD)\n\n precision_D ~ dt(0, pow(0.16*central_D, -2), 1)T(0, )\n sigma_D <- 1/sqrt(precision_D)\n\n for (i in 1:Nb_aliquots) {\n a[i] ~ dnorm(6.5 , 1/(9.2^2) ) T(0, )\n b[i] ~ dnorm(50 , 1/(1000^2) ) T(0, )\n c[i] ~ dnorm(1.002 , 1/(0.9^2) ) T(0, )\n g[i] ~ dnorm(0.5 , 1/(2.5^2) ) I(-a[i], )\n sigma_f[i] ~ dexp (20)\n\n D[i] ~ dt ( central_D , precision_D, 1) # Cauchy distribution\n\n S_y[1,i] <- 1/(sLum[1,i]^2 + sigma_f[i]^2)\n Lum[1,i] ~ dnorm ( Q[1,i] , S_y[1,i])\n Q[1,i] <- GC_Origin * g[i] + LinGC * (c[i] * D[i] ) + ExpoGC * (a[i] * (1 - exp (-D[i] /b[i])) )\n\n for (m in 2:Limited_cycles[i]) {\n S_y[m,i] <- 1/(sLum[m,i]^2 + sigma_f[i]^2)\n Lum[m,i] ~ dnorm( Q[m,i] , S_y[m,i] )\n Q[m,i] <- GC_Origin * g[i] + LinGC * (c[i] * Dose[m,i]) + ExpoGC * (a[i] * (1 - exp (-Dose[m,i]/b[i])) )\n }\n }\n }"] }, { "type": "character", "attributes": {}, "value": ["model {\n central_D ~ dunif(lower_centralD,upper_centralD)\n\n sigma_D ~ dunif(0.01, 1 * central_D)\n\n for (i in 1:Nb_aliquots) {\n a[i] ~ dnorm(6.5 , 1/(9.2^2) ) T(0, )\n b[i] ~ dnorm(50 , 1/(1000^2) ) T(0, )\n c[i] ~ dnorm(1.002 , 1/(0.9^2) ) T(0, )\n g[i] ~ dnorm(0.5 , 1/(2.5^2) ) I(-a[i], )\n sigma_f[i] ~ dexp (20)\n\n D[i] ~ dnorm ( central_D , 1/(sigma_D^2) ) # Normal distribution\n\n S_y[1,i] <- 1/(sLum[1,i]^2 + sigma_f[i]^2)\n Lum[1,i] ~ dnorm ( Q[1,i] , S_y[1,i])\n Q[1,i] <- GC_Origin * g[i] + LinGC * (c[i] * D[i] ) + ExpoGC * (a[i] * (1 - exp (-D[i] /b[i])) )\n\n\n for (m in 2:Limited_cycles[i]) {\n S_y[m,i] <- 1/(sLum[m,i]^2 + sigma_f[i]^2)\n Lum[m,i] ~ dnorm( Q[m,i] , S_y[m,i] )\n Q[m,i] <- GC_Origin * g[i] + LinGC * (c[i] * Dose[m,i]) + ExpoGC * (a[i] * (1 - exp (-Dose[m,i]/b[i])) )\n }\n }\n }"] }, { "type": "character", "attributes": {}, "value": ["model {\n central_D ~ dunif(lower_centralD,upper_centralD)\n\n log_central_D <- log(central_D) - 0.5 * l_sigma_D^2\n l_sigma_D ~ dunif(0.01, 1 * log(central_D))\n sigma_D <- sqrt((exp(l_sigma_D^2) -1) * exp( 2*log_central_D + l_sigma_D^2) )\n\n for (i in 1:Nb_aliquots) {\n a[i] ~ dnorm(6.5 , 1/(9.2^2) ) T(0, )\n b[i] ~ dnorm(50 , 1/(1000^2) ) T(0, )\n c[i] ~ dnorm(1.002 , 1/(0.9^2) ) T(0, )\n g[i] ~ dnorm(0.5 , 1/(2.5^2) ) I(-a[i], )\n sigma_f[i] ~ dexp (20)\n\n log_D[i] ~ dnorm ( log_central_D , 1/(l_sigma_D^2) ) # Log-Normal distribution\n D[i] <- exp(log_D[i])\n\n S_y[1,i] <- 1/(sLum[1,i]^2 + sigma_f[i]^2)\n Lum[1,i] ~ dnorm ( Q[1,i] , S_y[1,i])\n Q[1,i] <- GC_Origin * g[i] + LinGC * (c[i] * D[i] ) + ExpoGC * (a[i] * (1 - exp (-D[i] /b[i])) )\n\n for (m in 2:Limited_cycles[i]) {\n S_y[m,i] <- 1/(sLum[m,i]^2 + sigma_f[i]^2)\n Lum[m,i] ~ dnorm( Q[m,i] , S_y[m,i] )\n Q[m,i] <- GC_Origin * g[i] + LinGC * (c[i] * Dose[m,i]) + ExpoGC * (a[i] * (1 - exp (-Dose[m,i]/b[i])) )\n }\n }\n }"] }, { "type": "NULL" } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["BIN_FILE", "DISC", "GRAIN", "DE", "DE.SD", "D0", "D0.SD", "CYCLES_NB", "DOSE_1", "DOSE_2", "DOSE_3", "DOSE_4", "DOSE_5", "DOSE_6", "DOSE_7", "LxTx_1", "LxTx_2", "LxTx_3", "LxTx_4", "LxTx_5", "LxTx_6", "LxTx_7", "LxTx_1.SD", "LxTx_2.SD", "LxTx_3.SD", "LxTx_4.SD", "LxTx_5.SD", "LxTx_6.SD", "LxTx_7.SD"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3] } }, "value": [ { "type": "integer", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["factor"] }, "levels": { "type": "character", "attributes": {}, "value": ["ExampleData.BINfileData"] } }, "value": [1, 1, 1] }, { "type": "double", "attributes": {}, "value": [1, 2, 3] }, { "type": "double", "attributes": {}, "value": [0, 0, 0] }, { "type": "double", "attributes": {}, "value": [66.87420223, 61.36697826, 56.1276512] }, { "type": "double", "attributes": {}, "value": [3.86057174, 3.3754199, 2.80371771] }, { "type": "double", "attributes": {}, "value": [78.08102497, 82.63209928, 76.97952589] }, { "type": "double", "attributes": {}, "value": [6.50518033, 8.77480427, 7.94490564] }, { "type": "double", "attributes": {}, "value": [7, 7, 7] }, { "type": "double", "attributes": {}, "value": [0, 0, 0] }, { "type": "double", "attributes": {}, "value": [18, 18, 18] }, { "type": "double", "attributes": {}, "value": [42, 42, 42] }, { "type": "double", "attributes": {}, "value": [80, 80, 80] }, { "type": "double", "attributes": {}, "value": [102, 102, 102] }, { "type": "double", "attributes": {}, "value": [18, 18, 18] }, { "type": "double", "attributes": {}, "value": [0, 0, 0] }, { "type": "double", "attributes": {}, "value": [4.37948565, 3.98641071, 3.7039312] }, { "type": "double", "attributes": {}, "value": [1.54998865, 1.55445675, 1.48315768] }, { "type": "double", "attributes": {}, "value": [3.12980702, 2.88138983, 2.84330556] }, { "type": "double", "attributes": {}, "value": [4.81434137, 4.58365905, 4.63685665] }, { "type": "double", "attributes": {}, "value": [5.61399539, 5.55195117, 5.30068449] }, { "type": "double", "attributes": {}, "value": [1.62623382, 1.57290485, 1.63141076] }, { "type": "double", "attributes": {}, "value": [0.01250151, 0.01355479, 0.01743442] }, { "type": "double", "attributes": {}, "value": [0.13124975, 0.13255416, 0.1180387] }, { "type": "double", "attributes": {}, "value": [0.04840481, 0.05586953, 0.05028503] }, { "type": "double", "attributes": {}, "value": [0.09443152, 0.09747981, 0.09125933] }, { "type": "double", "attributes": {}, "value": [0.14306, 0.15348703, 0.14823921] }, { "type": "double", "attributes": {}, "value": [0.16364513, 0.18274342, 0.16566563] }, { "type": "double", "attributes": {}, "value": [0.04935486, 0.05524724, 0.05465552] }, { "type": "double", "attributes": {}, "value": [0.00243738, 0.00338386, 0.00331191] } ] }, { "type": "NULL" } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_baSAR"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "mcmc", "models", "input_object", "removed_aliquots"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["DISTRIBUTION", "NB_ALIQUOTS", "N.CHAINS", "N.MCMC", "FIT_METHOD", "CENTRAL", "CENTRAL.SD", "SIGMA", "SIGMA.SD", "CENTRAL_Q_.16", "CENTRAL_Q_.84", "SIGMA_Q_.16", "SIGMA_Q_.84", "CENTRAL_Q_.025", "CENTRAL_Q_.975", "SIGMA_Q_.025", "SIGMA_Q_.975", "DE_FINAL", "DE_FINAL.ERROR"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "character", "attributes": {}, "value": ["cauchy"] }, { "type": "integer", "attributes": {}, "value": [3] }, { "type": "double", "attributes": {}, "value": [3] }, { "type": "double", "attributes": {}, "value": [100] }, { "type": "character", "attributes": {}, "value": ["EXP"] }, { "type": "double", "attributes": {}, "value": [499.762] }, { "type": "double", "attributes": {}, "value": [4.975] }, { "type": "double", "attributes": {}, "value": [0.07] }, { "type": "double", "attributes": {}, "value": [0.065] }, { "type": "double", "attributes": {}, "value": [493.275] }, { "type": "double", "attributes": {}, "value": [505.064] }, { "type": "double", "attributes": {}, "value": [0.035] }, { "type": "double", "attributes": {}, "value": [0.11] }, { "type": "double", "attributes": {}, "value": [493.187] }, { "type": "double", "attributes": {}, "value": [505.377] }, { "type": "double", "attributes": {}, "value": [0.03] }, { "type": "double", "attributes": {}, "value": [0.273] }, { "type": "double", "attributes": {}, "value": [499.762] }, { "type": "double", "attributes": {}, "value": [4.975] } ] }, { "type": "list", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["mcmc.list"] } }, "value": [ { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [10, 38] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["D[1]", "D[2]", "D[3]", "Q[1,1]", "Q[2,1]", "Q[3,1]", "Q[4,1]", "Q[5,1]", "Q[6,1]", "Q[7,1]", "Q[1,2]", "Q[2,2]", "Q[3,2]", "Q[4,2]", "Q[5,2]", "Q[6,2]", "Q[7,2]", "Q[1,3]", "Q[2,3]", "Q[3,3]", "Q[4,3]", "Q[5,3]", "Q[6,3]", "Q[7,3]", "a[1]", "a[2]", "a[3]", "b[1]", "b[2]", "b[3]", "c[1]", "c[2]", "c[3]", "central_D", "g[1]", "g[2]", "g[3]", "sigma_D"] } ] }, "mcpar": { "type": "double", "attributes": {}, "value": [210, 300, 10] }, "class": { "type": "character", "attributes": {}, "value": ["mcmc"] } }, "value": [493.83429239, 491.64998579, 491.42437759, 491.61881745, 491.59103687, 491.9151177, 492.60697285, 492.63017515, 493.27005539, 493.46392001, 493.47793088, 492.46848644, 491.30139024, 491.45035967, 491.3478228, 491.86090133, 492.66450305, 493.21216909, 493.19651657, 493.60860172, 495.43266829, 491.87115007, 491.37807383, 491.69173683, 491.30021236, 492.09473846, 492.76607964, 493.90331331, 493.18313524, 493.38024209, 4.94882892, 5.49502097, 5.32116658, 5.05113487, 5.40569008, 5.56553101, 5.44278998, 5.0421477, 4.80242621, 5.14847582, 1.80839941, 1.71493264, 2.01818583, 1.85949357, 1.85650102, 1.58861324, 1.91256789, 2.02038499, 2.14406256, 2.04010737, 3.12124902, 3.43255187, 3.32572772, 3.41923447, 3.40993877, 3.07502807, 3.2181634, 3.70233834, 3.44825569, 3.55529159, 4.17329048, 4.70473377, 4.42275064, 4.48693288, 4.60358739, 4.3786003, 4.37203288, 4.67250509, 4.33700248, 4.59553874, 4.47669526, 5.04150886, 4.75516689, 4.74607306, 4.93250555, 4.79275875, 4.74165489, 4.86676001, 4.55163259, 4.84883906, 1.80839941, 1.71493264, 2.01818583, 1.85949357, 1.85650102, 1.58861324, 1.91256789, 2.02038499, 2.14406256, 2.04010737, 0.23556655, -0.45936659, 0.50109975, -0.2272876, -0.05999983, -0.08364217, 0.45160377, -0.51911421, 0.39363083, 0.01712017, 4.45769807, 5.02593888, 4.36833248, 4.44331315, 4.66959922, 4.25100517, 4.69223537, 4.22106894, 4.31949546, 4.80738, 1.57041053, 1.6913825, 2.04140877, 1.48739553, 1.72316726, 1.65004044, 1.97301638, 1.68274723, 1.7322144, 1.80770746, 3.10935874, 3.183629, 3.40034792, 2.96850946, 3.14163119, 3.27865918, 3.4993372, 3.15704973, 3.24988404, 3.19793051, 4.0538621, 4.30587459, 4.12692263, 3.95282027, 4.12937538, 4.04624717, 4.36862537, 3.95248059, 4.0553571, 4.2068341, 4.25675595, 4.60795481, 4.26029264, 4.18399338, 4.37369374, 4.16791748, 4.54018031, 4.10002132, 4.20195649, 4.46800727, 1.57041053, 1.6913825, 2.04140877, 1.48739553, 1.72316726, 1.65004044, 1.97301638, 1.68274723, 1.7322144, 1.80770746, -0.65332815, -0.17753926, -0.1239538, -0.53590027, -0.15190678, -1.18925522, -0.35234186, -0.65134923, -0.69880645, 0.02250389, 4.63159208, 4.61158355, 4.80192278, 4.28542121, 4.25035121, 4.76009035, 4.52108593, 4.94765634, 4.27370362, 4.54002325, 1.73156462, 1.85171131, 1.61700764, 1.31286591, 1.42006943, 2.34930955, 1.81894765, 1.82918131, 1.61110026, 1.57526211, 2.93739328, 3.22292129, 2.91791467, 2.71056929, 2.7579982, 3.71478848, 3.1587492, 3.13858156, 2.93930839, 3.12478509, 3.90825111, 4.14352616, 3.98148871, 3.70943692, 3.70863917, 4.48171896, 4.06044425, 4.18380302, 3.8267644, 4.1011639, 4.18967608, 4.36220329, 4.29492574, 3.96368038, 3.94907228, 4.63068527, 4.27520605, 4.48398123, 4.03644274, 4.31721695, 1.73156462, 1.85171131, 1.61700764, 1.31286591, 1.42006943, 2.34930955, 1.81894765, 1.82918131, 1.61110026, 1.57526211, 0.29170507, -0.00805553, 0.08013429, -0.50139948, -0.32366649, 0.24834366, 0.00486992, 0.25623174, -0.19645362, -0.62247324, 4.71333087, 5.95441182, 4.82022598, 5.27842816, 5.46573126, 5.64955904, 4.99156865, 5.56126222, 4.40879958, 5.13136117, 5.11102703, 5.20350499, 4.49228636, 4.97921669, 4.82151299, 5.4402604, 5.04457746, 4.87241825, 5.01830198, 4.78488926, 4.33995288, 4.61964264, 4.72188986, 4.78683136, 4.57402704, 4.51174685, 4.51621954, 4.69148839, 4.47016029, 5.16249778, 44.33350574, 39.61453894, 47.62568643, 35.77879583, 41.68913961, 51.28593985, 51.98088952, 29.50893884, 35.58085014, 35.90870509, 31.51908353, 40.45082596, 27.36333096, 34.51831185, 36.54893052, 24.39207833, 29.12766954, 27.60366932, 27.17046516, 38.5475813, 44.65165338, 34.94252227, 45.71409523, 37.77995417, 37.49887256, 28.72033401, 35.04464517, 44.076021, 34.74106913, 32.45444166, 1.56092083, 1.289777, 0.04669554, 0.93719596, 0.58164157, 0.54890445, 0.12779602, 1.085897, 1.40245195, 1.86716673, 0.94142666, 2.28730288, 2.23408527, 0.44672167, 0.95303651, 2.21877649, 2.53163815, 0.81667065, 0.68081291, 1.35781874, 1.44788559, 0.39103909, 2.19939187, 1.36289751, 1.00809841, 1.3408036, 0.04026628, 1.68179695, 2.58257813, 1.37450359, 493.84734402, 492.23790291, 491.3583337, 491.58963059, 491.30716831, 491.96111516, 492.7797146, 493.2022435, 493.25550856, 493.46763204, 0.23556655, -0.45936659, 0.50109975, -0.2272876, -0.05999983, -0.08364217, 0.45160377, -0.51911421, 0.39363083, 0.01712017, -0.65332815, -0.17753926, -0.1239538, -0.53590027, -0.15190678, -1.18925522, -0.35234186, -0.65134923, -0.69880645, 0.02250389, 0.29170507, -0.00805553, 0.08013429, -0.50139948, -0.32366649, 0.24834366, 0.00486992, 0.25623174, -0.19645362, -0.62247324, 0.24195851, 0.07611786, 0.05815557, 0.15427588, 0.17904828, 0.10542296, 0.12846696, 0.26213194, 0.07295238, 0.06560168] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [10, 38] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["D[1]", "D[2]", "D[3]", "Q[1,1]", "Q[2,1]", "Q[3,1]", "Q[4,1]", "Q[5,1]", "Q[6,1]", "Q[7,1]", "Q[1,2]", "Q[2,2]", "Q[3,2]", "Q[4,2]", "Q[5,2]", "Q[6,2]", "Q[7,2]", "Q[1,3]", "Q[2,3]", "Q[3,3]", "Q[4,3]", "Q[5,3]", "Q[6,3]", "Q[7,3]", "a[1]", "a[2]", "a[3]", "b[1]", "b[2]", "b[3]", "c[1]", "c[2]", "c[3]", "central_D", "g[1]", "g[2]", "g[3]", "sigma_D"] } ] }, "mcpar": { "type": "double", "attributes": {}, "value": [210, 300, 10] }, "class": { "type": "character", "attributes": {}, "value": ["mcmc"] } }, "value": [500.0000427, 500.44618212, 500.51480813, 500.30953343, 499.28087612, 498.70979985, 498.79497476, 498.5849471, 498.49128896, 499.08158622, 499.71730933, 500.1441624, 500.36683749, 499.6139696, 498.70647763, 498.6004052, 498.62616026, 498.80405166, 498.46587929, 498.86944922, 499.90182951, 499.51494749, 499.44702805, 497.28158834, 497.92925807, 498.68318413, 498.94886195, 498.65964028, 498.53991504, 499.10813359, 5.48730227, 5.28971173, 5.32197422, 4.87332151, 5.04846079, 5.17112053, 5.41654625, 4.87725246, 5.15704125, 5.46925261, 1.77537092, 1.51351393, 2.10261728, 2.0426489, 1.77488325, 1.70934364, 1.89185439, 1.93158189, 1.85120358, 2.15557638, 3.45355611, 2.89444537, 3.34604928, 3.56267868, 3.19376351, 3.24488557, 3.32511002, 3.48481278, 3.46133842, 3.6501802, 4.70285679, 4.12480097, 4.40978616, 4.4860558, 4.29409932, 4.40973681, 4.50132391, 4.45209775, 4.56780478, 4.76545026, 5.03541704, 4.52232597, 4.73890699, 4.68212924, 4.60035425, 4.72626301, 4.8493699, 4.66333031, 4.8375079, 5.06310062, 1.77537092, 1.51351393, 2.10261728, 2.0426489, 1.77488325, 1.70934364, 1.89185439, 1.93158189, 1.85120358, 2.15557638, -0.3414648, -0.02309256, 0.67934269, -0.16973193, 0.03562221, -0.20217339, 0.20308468, -0.28976537, -0.29714724, 0.27342812, 5.63127675, 5.02153091, 4.78869088, 4.19512313, 5.19208242, 4.65067775, 4.41076914, 5.17696997, 5.32969529, 4.43773241, 1.82240063, 1.77056186, 1.77886416, 1.57865283, 1.82093722, 1.0305465, 1.93846625, 2.01879415, 1.94667135, 1.88489386, 2.92810982, 2.95422322, 3.14670914, 3.09356579, 3.10562151, 2.34794168, 3.28600529, 3.17647214, 3.49592823, 3.33897597, 4.06123539, 4.01210748, 4.15965731, 3.91513802, 4.21603627, 3.52577968, 4.08754985, 4.20616767, 4.63429328, 4.14852574, 4.48533281, 4.35503975, 4.42775877, 4.06843522, 4.56340493, 3.90774544, 4.25374737, 4.53826002, 4.93302242, 4.30419702, 1.82240063, 1.77056186, 1.77886416, 1.57865283, 1.82093722, 1.0305465, 1.93846625, 2.01879415, 1.94667135, 1.88489386, 0.70573601, 0.45631091, 0.04713586, -0.81095162, 0.36095813, -0.43182104, -0.05228231, 0.72908754, -0.02549864, -0.36639789, 4.22946429, 4.35023369, 4.99448866, 4.43555592, 4.80842794, 4.85692202, 4.58916383, 4.5896332, 4.82222673, 4.48054676, 1.77022045, 2.18623907, 1.92496075, 2.02567364, 1.88669493, 1.94975239, 1.86473135, 1.88865554, 1.53650884, 1.49232056, 3.23154682, 3.65903218, 3.50498594, 3.07238593, 3.14189855, 3.2132789, 3.28482394, 3.20696978, 2.98081774, 3.00160038, 3.99019228, 4.23677882, 4.52043654, 3.88251918, 4.12334198, 4.1906246, 4.18280914, 4.11070042, 4.08607419, 3.99491738, 4.12479311, 4.31037932, 4.75016593, 4.1075231, 4.39895625, 4.46188941, 4.38230399, 4.33039368, 4.38927964, 4.22568922, 1.77022045, 2.18623907, 1.92496075, 2.02567364, 1.88669493, 1.94975239, 1.86473135, 1.88865554, 1.53650884, 1.49232056, -0.60759947, -0.74301404, -0.28502864, 0.740857, 0.35689174, 0.39813815, -0.14441851, 0.1266611, -0.25047512, -0.58363325, 5.82878805, 5.31320558, 4.64280769, 5.04305398, 5.01287548, 5.37332146, 5.21356303, 5.16701872, 5.45419367, 5.19584442, 4.92948347, 4.56558551, 4.74157048, 5.00607482, 4.83135059, 5.08292033, 4.4630518, 4.44821925, 5.35520996, 4.80413041, 4.83706379, 5.09324774, 5.27951884, 3.6947265, 4.4515751, 4.45881572, 4.7335834, 4.46297615, 5.07273216, 5.06418226, 39.88909717, 52.72848727, 49.16918558, 31.16897679, 42.24211854, 40.94107398, 45.98385883, 32.03080196, 35.95014938, 40.01823694, 70.07560095, 53.02207875, 39.60563718, 27.74241842, 50.02690074, 53.05677056, 30.47321905, 52.56969243, 39.19048086, 28.46884553, 26.60935017, 21.02902468, 33.19130593, 42.12327624, 42.74846607, 42.08633483, 32.5837871, 35.84225547, 41.44742019, 34.12244948, 1.07383754, 0.27084416, 2.64617224, 1.92885763, 1.34939546, 0.95063787, 1.63893793, 0.28257011, 1.83891255, 0.8774545, 1.3253967, 0.27569029, 0.88032733, 0.810853, 2.38593772, 1.84835949, 2.66482448, 1.76068835, 1.05736449, 0.50147222, 2.39874164, 1.56567525, 0.82279844, 0.83166074, 0.34763521, 2.10564296, 1.01447747, 1.56063755, 1.17023681, 1.87797747, 499.8950786, 500.05000964, 500.99947585, 499.60773124, 499.02424451, 498.71007011, 498.76475218, 498.68090636, 498.50158753, 499.1279233, -0.3414648, -0.02309256, 0.67934269, -0.16973193, 0.03562221, -0.20217339, 0.20308468, -0.28976537, -0.29714724, 0.27342812, 0.70573601, 0.45631091, 0.04713586, -0.81095162, 0.36095813, -0.43182104, -0.05228231, 0.72908754, -0.02549864, -0.36639789, -0.60759947, -0.74301404, -0.28502864, 0.740857, 0.35689174, 0.39813815, -0.14441851, 0.1266611, -0.25047512, -0.58363325, 0.14911222, 0.11448746, 0.10791101, 0.46979898, 0.10712505, 0.10300445, 0.24239377, 0.0693238, 0.14922521, 0.08152477] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [10, 38] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["D[1]", "D[2]", "D[3]", "Q[1,1]", "Q[2,1]", "Q[3,1]", "Q[4,1]", "Q[5,1]", "Q[6,1]", "Q[7,1]", "Q[1,2]", "Q[2,2]", "Q[3,2]", "Q[4,2]", "Q[5,2]", "Q[6,2]", "Q[7,2]", "Q[1,3]", "Q[2,3]", "Q[3,3]", "Q[4,3]", "Q[5,3]", "Q[6,3]", "Q[7,3]", "a[1]", "a[2]", "a[3]", "b[1]", "b[2]", "b[3]", "c[1]", "c[2]", "c[3]", "central_D", "g[1]", "g[2]", "g[3]", "sigma_D"] } ] }, "mcpar": { "type": "double", "attributes": {}, "value": [210, 300, 10] }, "class": { "type": "character", "attributes": {}, "value": ["mcmc"] } }, "value": [505.21542477, 500.46996379, 506.05927619, 505.52335199, 506.25773359, 503.82292408, 504.98689775, 505.86246816, 505.82394179, 504.93280159, 504.38549342, 504.74792854, 505.90884659, 508.92006371, 505.68599329, 508.24728936, 504.84766175, 505.4956644, 504.97005673, 505.06198788, 505.21654618, 504.7422857, 507.43028889, 506.98971567, 505.92708957, 506.29420361, 504.75635901, 505.19246623, 505.23208564, 505.14746645, 4.79997142, 5.09398445, 5.36240225, 5.43691846, 5.16347871, 4.6057365, 4.62020188, 4.95438885, 4.84262501, 5.46087073, 1.74044145, 1.87971587, 1.88296597, 1.57421529, 1.98899567, 2.03386736, 1.73402455, 1.78235001, 1.88899313, 1.60556353, 3.24793742, 3.24694712, 3.43346938, 2.93567199, 3.51755712, 3.28122293, 3.29078232, 3.24519609, 3.19385517, 2.98892251, 4.27005522, 4.32572598, 4.60439025, 4.1800675, 4.58172395, 4.14255592, 4.23060511, 4.31231009, 4.18759485, 4.23797989, 4.51551571, 4.63166923, 4.92100789, 4.5931705, 4.84487886, 4.35363727, 4.4287723, 4.59012565, 4.458779, 4.64729786, 1.74044145, 1.87971587, 1.88296597, 1.57421529, 1.98899567, 2.03386736, 1.73402455, 1.78235001, 1.88899313, 1.60556353, -0.29005074, 0.22390923, -0.0532661, 0.085928, -0.03194179, 0.37522376, -0.54180634, -0.08930453, 0.26908087, 0.08044653, 5.0781187, 5.23817674, 5.10580093, 4.65400871, 4.64936824, 4.69642827, 5.63952252, 5.60802951, 4.67067843, 5.21788956, 1.55477969, 1.92273043, 1.44233274, 1.75164753, 1.6093105, 1.90568551, 1.87597163, 1.39391636, 1.91355912, 1.49071039, 3.27382899, 3.48704733, 2.81929467, 3.14197989, 3.15810695, 3.23227307, 3.26629829, 3.30067368, 3.41614608, 2.98251234, 4.45278456, 4.60082575, 4.02185486, 4.11552534, 4.16654998, 4.16914732, 4.49603164, 4.71898304, 4.31008041, 4.22296457, 4.73952219, 4.88315623, 4.40222742, 4.35781373, 4.39804547, 4.40451694, 4.89028942, 5.09619876, 4.49547319, 4.59524345, 1.55477969, 1.92273043, 1.44233274, 1.75164753, 1.6093105, 1.90568551, 1.87597163, 1.39391636, 1.91355912, 1.49071039, -0.74211434, -0.11312596, -0.11128321, -0.07908151, -0.53717277, 0.16933874, 0.3210549, -1.01260121, -0.30595678, -0.25100928, 4.81637585, 5.13405184, 4.52848263, 4.66611181, 4.68056901, 4.97551002, 4.77471246, 3.92076879, 4.81545726, 4.82772153, 1.65513349, 1.41526466, 1.75377994, 1.90519723, 1.75077148, 1.61612041, 2.1159601, 1.84712796, 2.0906107, 1.76439256, 2.99913621, 3.09184665, 3.29755059, 3.51336675, 3.16769754, 3.21498426, 3.5528675, 3.06846211, 3.51781773, 3.20092312, 4.06006656, 4.34346241, 4.1885873, 4.37694816, 4.14928382, 4.34261905, 4.41794542, 3.71221827, 4.41456956, 4.23049817, 4.36109533, 4.67766329, 4.36712935, 4.53626422, 4.39069492, 4.62549006, 4.59978378, 3.82845816, 4.61236983, 4.49338934, 1.65513349, 1.41526466, 1.75377994, 1.90519723, 1.75077148, 1.61612041, 2.1159601, 1.84712796, 2.0906107, 1.76439256, 0.02797213, -0.69539316, -0.57601758, -0.64937128, -0.12908784, -0.47859652, 0.01123405, -0.11881633, 0.06229118, -0.09650741, 5.09002534, 4.87012202, 5.41568982, 5.35155774, 5.19542549, 4.23051652, 5.16200865, 5.04370441, 4.57356522, 5.38089254, 5.82023758, 5.35131061, 5.21733674, 4.73309491, 5.18654258, 4.52709482, 5.31879403, 6.6206512, 4.97663553, 5.46901515, 4.78844528, 5.82946455, 5.10450039, 5.31548314, 4.80966113, 5.4541131, 4.76347879, 4.03958514, 4.75316686, 4.92423701, 35.36203568, 43.32081968, 40.68497216, 55.23614182, 36.53841881, 36.16711373, 30.96013964, 38.81294595, 41.16634871, 54.00830171, 35.86152644, 37.59815715, 50.91824982, 36.80582033, 33.69585828, 37.20770752, 52.05366606, 39.8450728, 30.47915543, 46.9464398, 43.3497265, 40.04250691, 29.52858058, 27.47831933, 36.31288267, 37.14336391, 30.8683725, 26.99314097, 32.35090244, 37.92152287, 0.77821328, 1.38804204, 0.50496688, 2.23848855, 1.11578235, 3.74024556, 0.16954902, 1.51655303, 0.77492062, 1.55817824, 0.35517045, 1.34209512, 2.56581717, 0.07848622, 0.25322791, 1.76656741, 0.83452806, 0.78140991, 1.44131726, 1.98548157, 0.44061603, 2.97234877, 1.35401568, 1.74244452, 2.5873122, 2.23412515, 0.11446009, 0.4301849, 1.7228336, 1.12483828, 505.22360885, 504.74813929, 505.93556192, 506.07901334, 505.78440499, 506.39325344, 504.9616187, 505.45949169, 505.05993399, 505.1749462, -0.29005074, 0.22390923, -0.0532661, 0.085928, -0.03194179, 0.37522376, -0.54180634, -0.08930453, 0.26908087, 0.08044653, -0.74211434, -0.11312596, -0.11128321, -0.07908151, -0.53717277, 0.16933874, 0.3210549, -1.01260121, -0.30595678, -0.25100928, 0.02797213, -0.69539316, -0.57601758, -0.64937128, -0.12908784, -0.47859652, 0.01123405, -0.11881633, 0.06229118, -0.09650741, 0.09737866, 0.09254188, 0.13828204, 0.24857105, 0.16107165, 0.09342542, 0.20846943, 0.10912645, 0.05878063, 0.06071885] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["cauchy", "normal", "log_normal", "user_defined"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["model {\n\n central_D ~ dunif(lower_centralD,upper_centralD)\n\n precision_D ~ dt(0, pow(0.16*central_D, -2), 1)T(0, )\n sigma_D <- 1/sqrt(precision_D)\n\n for (i in 1:Nb_aliquots) {\n a[i] ~ dnorm(6.5 , 1/(9.2^2) ) T(0, )\n b[i] ~ dnorm(50 , 1/(1000^2) ) T(0, )\n c[i] ~ dnorm(1.002 , 1/(0.9^2) ) T(0, )\n g[i] ~ dnorm(0.5 , 1/(2.5^2) ) I(-a[i], )\n sigma_f[i] ~ dexp (20)\n\n D[i] ~ dt ( central_D , precision_D, 1) # Cauchy distribution\n\n S_y[1,i] <- 1/(sLum[1,i]^2 + sigma_f[i]^2)\n Lum[1,i] ~ dnorm ( Q[1,i] , S_y[1,i])\n Q[1,i] <- GC_Origin * g[i] + LinGC * (c[i] * D[i] ) + ExpoGC * (a[i] * (1 - exp (-D[i] /b[i])) )\n\n for (m in 2:Limited_cycles[i]) {\n S_y[m,i] <- 1/(sLum[m,i]^2 + sigma_f[i]^2)\n Lum[m,i] ~ dnorm( Q[m,i] , S_y[m,i] )\n Q[m,i] <- GC_Origin * g[i] + LinGC * (c[i] * Dose[m,i]) + ExpoGC * (a[i] * (1 - exp (-Dose[m,i]/b[i])) )\n }\n }\n }"] }, { "type": "character", "attributes": {}, "value": ["model {\n central_D ~ dunif(lower_centralD,upper_centralD)\n\n sigma_D ~ dunif(0.01, 1 * central_D)\n\n for (i in 1:Nb_aliquots) {\n a[i] ~ dnorm(6.5 , 1/(9.2^2) ) T(0, )\n b[i] ~ dnorm(50 , 1/(1000^2) ) T(0, )\n c[i] ~ dnorm(1.002 , 1/(0.9^2) ) T(0, )\n g[i] ~ dnorm(0.5 , 1/(2.5^2) ) I(-a[i], )\n sigma_f[i] ~ dexp (20)\n\n D[i] ~ dnorm ( central_D , 1/(sigma_D^2) ) # Normal distribution\n\n S_y[1,i] <- 1/(sLum[1,i]^2 + sigma_f[i]^2)\n Lum[1,i] ~ dnorm ( Q[1,i] , S_y[1,i])\n Q[1,i] <- GC_Origin * g[i] + LinGC * (c[i] * D[i] ) + ExpoGC * (a[i] * (1 - exp (-D[i] /b[i])) )\n\n\n for (m in 2:Limited_cycles[i]) {\n S_y[m,i] <- 1/(sLum[m,i]^2 + sigma_f[i]^2)\n Lum[m,i] ~ dnorm( Q[m,i] , S_y[m,i] )\n Q[m,i] <- GC_Origin * g[i] + LinGC * (c[i] * Dose[m,i]) + ExpoGC * (a[i] * (1 - exp (-Dose[m,i]/b[i])) )\n }\n }\n }"] }, { "type": "character", "attributes": {}, "value": ["model {\n central_D ~ dunif(lower_centralD,upper_centralD)\n\n log_central_D <- log(central_D) - 0.5 * l_sigma_D^2\n l_sigma_D ~ dunif(0.01, 1 * log(central_D))\n sigma_D <- sqrt((exp(l_sigma_D^2) -1) * exp( 2*log_central_D + l_sigma_D^2) )\n\n for (i in 1:Nb_aliquots) {\n a[i] ~ dnorm(6.5 , 1/(9.2^2) ) T(0, )\n b[i] ~ dnorm(50 , 1/(1000^2) ) T(0, )\n c[i] ~ dnorm(1.002 , 1/(0.9^2) ) T(0, )\n g[i] ~ dnorm(0.5 , 1/(2.5^2) ) I(-a[i], )\n sigma_f[i] ~ dexp (20)\n\n log_D[i] ~ dnorm ( log_central_D , 1/(l_sigma_D^2) ) # Log-Normal distribution\n D[i] <- exp(log_D[i])\n\n S_y[1,i] <- 1/(sLum[1,i]^2 + sigma_f[i]^2)\n Lum[1,i] ~ dnorm ( Q[1,i] , S_y[1,i])\n Q[1,i] <- GC_Origin * g[i] + LinGC * (c[i] * D[i] ) + ExpoGC * (a[i] * (1 - exp (-D[i] /b[i])) )\n\n for (m in 2:Limited_cycles[i]) {\n S_y[m,i] <- 1/(sLum[m,i]^2 + sigma_f[i]^2)\n Lum[m,i] ~ dnorm( Q[m,i] , S_y[m,i] )\n Q[m,i] <- GC_Origin * g[i] + LinGC * (c[i] * Dose[m,i]) + ExpoGC * (a[i] * (1 - exp (-Dose[m,i]/b[i])) )\n }\n }\n }"] }, { "type": "NULL" } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["BIN_FILE", "DISC", "GRAIN", "DE", "DE.SD", "D0", "D0.SD", "CYCLES_NB", "DOSE_1", "DOSE_2", "DOSE_3", "DOSE_4", "DOSE_5", "DOSE_6", "DOSE_7", "LxTx_1", "LxTx_2", "LxTx_3", "LxTx_4", "LxTx_5", "LxTx_6", "LxTx_7", "LxTx_1.SD", "LxTx_2.SD", "LxTx_3.SD", "LxTx_4.SD", "LxTx_5.SD", "LxTx_6.SD", "LxTx_7.SD"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3] } }, "value": [ { "type": "integer", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["factor"] }, "levels": { "type": "character", "attributes": {}, "value": ["ExampleData.BINfileData"] } }, "value": [1, 1, 1] }, { "type": "double", "attributes": {}, "value": [1, 2, 3] }, { "type": "double", "attributes": {}, "value": [0, 0, 0] }, { "type": "double", "attributes": {}, "value": [66.87420223, 61.36697824, 56.12765121] }, { "type": "double", "attributes": {}, "value": [3.38760636, 3.39565907, 3.13118327] }, { "type": "double", "attributes": {}, "value": [78.08102425, 82.63209875, 76.97952606] }, { "type": "double", "attributes": {}, "value": [6.69584857, 8.96453194, 7.14015777] }, { "type": "double", "attributes": {}, "value": [7, 7, 7] }, { "type": "double", "attributes": {}, "value": [0, 0, 0] }, { "type": "double", "attributes": {}, "value": [18, 18, 18] }, { "type": "double", "attributes": {}, "value": [42, 42, 42] }, { "type": "double", "attributes": {}, "value": [80, 80, 80] }, { "type": "double", "attributes": {}, "value": [102, 102, 102] }, { "type": "double", "attributes": {}, "value": [18, 18, 18] }, { "type": "double", "attributes": {}, "value": [0, 0, 0] }, { "type": "double", "attributes": {}, "value": [4.37948565, 3.98641071, 3.7039312] }, { "type": "double", "attributes": {}, "value": [1.54998865, 1.55445675, 1.48315768] }, { "type": "double", "attributes": {}, "value": [3.12980702, 2.88138983, 2.84330556] }, { "type": "double", "attributes": {}, "value": [4.81434137, 4.58365905, 4.63685665] }, { "type": "double", "attributes": {}, "value": [5.61399539, 5.55195117, 5.30068449] }, { "type": "double", "attributes": {}, "value": [1.62623382, 1.57290485, 1.63141076] }, { "type": "double", "attributes": {}, "value": [0.01250151, 0.01355479, 0.01743442] }, { "type": "double", "attributes": {}, "value": [0.13124975, 0.13255416, 0.1180387] }, { "type": "double", "attributes": {}, "value": [0.04840481, 0.05586953, 0.05028503] }, { "type": "double", "attributes": {}, "value": [0.09443152, 0.09747981, 0.09125933] }, { "type": "double", "attributes": {}, "value": [0.14306, 0.15348703, 0.14823921] }, { "type": "double", "attributes": {}, "value": [0.16364513, 0.18274342, 0.16566563] }, { "type": "double", "attributes": {}, "value": [0.04935486, 0.05524724, 0.05465552] }, { "type": "double", "attributes": {}, "value": [0.00243738, 0.00338386, 0.00331191] } ] }, { "type": "NULL" } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_baSAR"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/analyse_Al2O3C_CrossTalk.md0000644000176200001440000004626414762554470024151 0ustar liggesusers# check functionality { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "data_full", "col.seq"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["POSITION", "AD", "AD_ERROR"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1, 2] }, { "type": "double", "attributes": {}, "value": [-0.00021433, 0.00073101] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["POSITION", "DOSE", "DOSE_ERROR", "STEP", "INTEGRAL", "BACKGROUND", "NET_INTEGRAL", "AD", "AD_ERROR", "AD", "AD_ERROR"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [1, 1, 2, 2] }, { "type": "double", "attributes": {}, "value": [0, 4, 0, 4] }, { "type": "double", "attributes": {}, "value": [0, 0, 0, 0] }, { "type": "character", "attributes": {}, "value": ["NATURAL", "REGENERATED", "NATURAL", "REGENERATED"] }, { "type": "double", "attributes": {}, "value": [44401, 1854749, 52994, 1256584] }, { "type": "double", "attributes": {}, "value": [44498, 44498, 52774, 52774] }, { "type": "double", "attributes": {}, "value": [-97, 1810251, 220, 1203810] }, { "type": "double", "attributes": {}, "value": [-0.00021433, -0.00021433, 0.00073101, 0.00073101] }, { "type": "double", "attributes": {}, "value": ["NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [-0.00021433, -0.00021433, 0.00073101, 0.00073101] }, { "type": "double", "attributes": {}, "value": ["NA", "NA", "NA", "NA"] } ] }, { "type": "character", "attributes": {}, "value": ["#006228", "#A51122"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_Al2O3C_CrossTalk"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "data_full", "col.seq"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["POSITION", "AD", "AD_ERROR"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1, 2] }, { "type": "double", "attributes": {}, "value": [-0.00021433, 0.00073101] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["POSITION", "DOSE", "DOSE_ERROR", "STEP", "INTEGRAL", "BACKGROUND", "NET_INTEGRAL", "AD", "AD_ERROR", "AD", "AD_ERROR"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [1, 1, 2, 2] }, { "type": "double", "attributes": {}, "value": [0, 4, 0, 4] }, { "type": "double", "attributes": {}, "value": [0, 0, 0, 0] }, { "type": "character", "attributes": {}, "value": ["NATURAL", "REGENERATED", "NATURAL", "REGENERATED"] }, { "type": "double", "attributes": {}, "value": [44401, 1854749, 52994, 1256584] }, { "type": "double", "attributes": {}, "value": [44498, 44498, 52774, 52774] }, { "type": "double", "attributes": {}, "value": [-97, 1810251, 220, 1203810] }, { "type": "double", "attributes": {}, "value": [-0.00021433, -0.00021433, 0.00073101, 0.00073101] }, { "type": "double", "attributes": {}, "value": ["NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [-0.00021433, -0.00021433, 0.00073101, 0.00073101] }, { "type": "double", "attributes": {}, "value": ["NA", "NA", "NA", "NA"] } ] }, { "type": "character", "attributes": {}, "value": ["#006228", "#A51122"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_Al2O3C_CrossTalk"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "data_full", "col.seq"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["POSITION", "AD", "AD_ERROR"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1, 2] }, { "type": "double", "attributes": {}, "value": [-0.00035288, 0.00120413] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["POSITION", "DOSE", "DOSE_ERROR", "STEP", "INTEGRAL", "BACKGROUND", "NET_INTEGRAL", "AD", "AD_ERROR", "AD", "AD_ERROR"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [1, 1, 2, 2] }, { "type": "double", "attributes": {}, "value": [0, 6.58729235, 0, 6.58729235] }, { "type": "double", "attributes": {}, "value": [0, 0.05332371, 0, 0.05332371] }, { "type": "character", "attributes": {}, "value": ["NATURAL", "REGENERATED", "NATURAL", "REGENERATED"] }, { "type": "double", "attributes": {}, "value": [44401, 1854749, 52994, 1256584] }, { "type": "double", "attributes": {}, "value": [44498, 44498, 52774, 52774] }, { "type": "double", "attributes": {}, "value": [-97, 1810251, 220, 1203810] }, { "type": "double", "attributes": {}, "value": [-0.00035288, -0.00035288, 0.00120413, 0.00120413] }, { "type": "double", "attributes": {}, "value": [2.66020688e-06, 2.66020688e-06, 9.76997893e-06, 9.76997893e-06] }, { "type": "double", "attributes": {}, "value": [-0.00035288, -0.00035288, 0.00120413, 0.00120413] }, { "type": "double", "attributes": {}, "value": [2.66020688e-06, 2.66020688e-06, 9.76997893e-06, 9.76997893e-06] } ] }, { "type": "character", "attributes": {}, "value": ["#006228", "#A51122"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_Al2O3C_CrossTalk"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "data_full", "col.seq"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["POSITION", "AD", "AD_ERROR"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1, 2] }, { "type": "double", "attributes": {}, "value": [-0.00035297, 0.00120385] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["POSITION", "DOSE", "DOSE_ERROR", "STEP", "INTEGRAL", "BACKGROUND", "NET_INTEGRAL", "AD", "AD_ERROR", "AD", "AD_ERROR"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [1, 1, 2, 2] }, { "type": "double", "attributes": {}, "value": [0, 6.58729235, 0, 6.58729235] }, { "type": "double", "attributes": {}, "value": [0, 0, 0, 0] }, { "type": "character", "attributes": {}, "value": ["NATURAL", "REGENERATED", "NATURAL", "REGENERATED"] }, { "type": "double", "attributes": {}, "value": [44401, 1854749, 52994, 1256584] }, { "type": "double", "attributes": {}, "value": [44498, 44498, 52774, 52774] }, { "type": "double", "attributes": {}, "value": [-97, 1810251, 220, 1203810] }, { "type": "double", "attributes": {}, "value": [-0.00035297, -0.00035297, 0.00120385, 0.00120385] }, { "type": "double", "attributes": {}, "value": [0, 0, 0, 0] }, { "type": "double", "attributes": {}, "value": [-0.00035297, -0.00035297, 0.00120385, 0.00120385] }, { "type": "double", "attributes": {}, "value": [0, 0, 0, 0] } ] }, { "type": "character", "attributes": {}, "value": ["#006228", "#A51122"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_Al2O3C_CrossTalk"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/analyse_IRSAR.RF.md0000644000176200001440000072067214762554470022431 0ustar liggesusers# check class and length of output { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "De.MC", "test_parameters", "slide"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["DE", "DE.ERROR", "DE.LOWER", "DE.UPPER", "DE.STATUS", "RF_NAT.LIM", "RF_REG.LIM", "POSITION", "DATE", "SEQUENCE_NAME"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [623.25] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [600.63] }, { "type": "double", "attributes": {}, "value": [635.8] }, { "type": "character", "attributes": {}, "value": ["OK"] }, { "type": "character", "attributes": {}, "value": ["1:5"] }, { "type": "character", "attributes": {}, "value": ["1:524"] }, { "type": "integer", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] } ] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["POSITION", "PARAMETER", "THRESHOLD", "VALUE", "STATUS", "SEQUENCE_NAME"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": ["NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "character", "attributes": {}, "value": ["curves_ratio", "intersection_ratio", "residuals_slope", "curves_bounds", "dynamic_ratio", "lambda", "beta", "delta.phi"] }, { "type": "double", "attributes": {}, "value": [1.001, "NA", "NA", 716, "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.68456846, 0.00554174, "NA", 635.8, 1.52426091, 0.00021822, 0.54187185, 2103.4] }, { "type": "integer", "attributes": { "levels": { "type": "character", "attributes": {}, "value": ["OK"] }, "class": { "type": "character", "attributes": {}, "value": ["factor"] } }, "value": [1, 1, 1, 1, 1, 1, 1, 1] }, { "type": "logical", "attributes": {}, "value": [null, null, null, null, null, null, null, null] } ] }, { "type": "list", "attributes": {}, "value": [] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_IRSAR.RF"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "De.MC", "test_parameters", "slide"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["DE", "DE.ERROR", "DE.LOWER", "DE.UPPER", "DE.STATUS", "RF_NAT.LIM", "RF_REG.LIM", "POSITION", "DATE", "SEQUENCE_NAME"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [610.17] }, { "type": "integer", "attributes": {}, "value": ["NA"] }, { "type": "integer", "attributes": {}, "value": ["NA"] }, { "type": "integer", "attributes": {}, "value": ["NA"] }, { "type": "character", "attributes": {}, "value": ["OK"] }, { "type": "character", "attributes": {}, "value": ["1:5"] }, { "type": "character", "attributes": {}, "value": ["1:524"] }, { "type": "integer", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] } ] }, { "type": "integer", "attributes": {}, "value": ["NA"] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["POSITION", "PARAMETER", "THRESHOLD", "VALUE", "STATUS", "SEQUENCE_NAME"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": ["NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "character", "attributes": {}, "value": ["curves_ratio", "intersection_ratio", "residuals_slope", "curves_bounds", "dynamic_ratio", "lambda", "beta", "delta.phi"] }, { "type": "double", "attributes": {}, "value": [1.001, "NA", "NA", 716, "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.68456846, 0.00554174, 0.8839291, 617.90055266, 1.52426091, 0.00021724, 0.5406764, 2103.4] }, { "type": "integer", "attributes": { "levels": { "type": "character", "attributes": {}, "value": ["OK"] }, "class": { "type": "character", "attributes": {}, "value": ["factor"] } }, "value": [1, 1, 1, 1, 1, 1, 1, 1] }, { "type": "logical", "attributes": {}, "value": [null, null, null, null, null, null, null, null] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.MC", "residuals", "trend.fit", "RF_nat.slid", "t_n.id", "I_n", "algorithm_error", "vslide_range", "num_slide_windows", "squared_residuals"] } }, "value": [ { "type": "double", "attributes": {}, "value": [610.17] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["1", "2", "3", "4", "5"] } }, "value": [-7.56, -3.69, -7.225, 3.495, -4.03380952] }, { "type": "double", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["(Intercept)", "x"] } }, "value": [-6.50289668, 0.8839291] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [5, 2] } }, "value": [610.16592213, 611.76416561, 613.30559722, 614.56509697, 616.30230918, 1425.94, 1437.8, 1427.1, 1423.15, 1426.23333333] }, { "type": "integer", "attributes": {}, "value": [448] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [3] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [519, 1] } }, "value": [2165729.11528153, 2170010.99286806, 2148614.81779433, 2130362.33419332, 2103922.70797412, 2081966.33563457, 2070571.29879506, 2068890.43401358, 2052636.55049623, 1998589.48776682, 1970409.67304404, 1936709.7958556, 1897883.46066167, 1851883.21675308, 1795795.54451111, 1766709.0998, 1714458.92488889, 1679720.59465556, 1636544.07712222, 1639113.57520284, 1614589.00947456, 1597856.90988971, 1592342.57574549, 1568426.79755223, 1536577.02159383, 1503873.74341358, 1485529.34104501, 1470676.13298755, 1479881.22834712, 1494834.60815857, 1487392.38683309, 1454034.91800132, 1446385.11130234, 1420322.1662, 1405873.81632222, 1379774.79818889, 1391662.46068889, 1353424.13995556, 1324883.65474445, 1275669.80984445, 1259663.45197778, 1226262.16484445, 1222482.62994445, 1223177.47011111, 1212747.31661111, 1198137.25802976, 1187457.06360574, 1156374.38053437, 1132475.83700449, 1134574.24922065, 1141173.19589385, 1131810.37052595, 1115274.85835388, 1118553.01674303, 1100444.88644505, 1046153.81922223, 1023154.15522223, 1016795.88635556, 995187.15864445, 981681.70157778, 977211.04171111, 990575.08894445, 980785.05654445, 980217.14944445, 953542.1481877, 957089.85090386, 951045.21435234, 936577.01871984, 925570.02600569, 934959.23239982, 923412.67135436, 888716.31832406, 863009.20601111, 836620.52961111, 805321.3781, 817113.70325556, 805546.43552222, 811756.12895556, 795391.73128889, 789214.28064445, 748827.61904445, 746116.04717778, 742657.84740286, 740121.21084461, 752825.12436987, 768067.14194966, 767905.60518215, 768151.91042475, 777766.63198333, 761850.31540758, 743847.25488794, 721538.85648272, 707728.67663828, 683059.71264939, 676229.66925402, 669570.76068208, 678335.8006144, 671358.04665076, 669808.858675, 660309.16498889, 652206.43268889, 635601.28604999, 620765.56811597, 624294.84440509, 618821.43177209, 618368.12277108, 613771.98682748, 608034.09883617, 598719.43201329, 591630.25462054, 570846.20187083, 576568.08459963, 577457.15921627, 575324.7063429, 553199.37355704, 562283.52764088, 568440.21277117, 555360.56592269, 539130.51014445, 546687.12561111, 548517.50707476, 521013.34930136, 539292.92188116, 550258.12236398, 546282.36743772, 526246.42890278, 520032.30568203, 505391.01406287, 489015.3468181, 478006.11634941, 479667.90677491, 488789.71425425, 465597.99985556, 459806.65426938, 466029.81543813, 444229.30445498, 433540.29787209, 438408.68756297, 435519.12422222, 423973.79994445, 438854.02101111, 432380.26457775, 433237.00942644, 420778.07168949, 421404.09480399, 418506.98117134, 406119.15614173, 393456.11800941, 396051.79708889, 391720.43984886, 386768.70510577, 384070.97280981, 381517.83747546, 377536.88738894, 369417.26049867, 364856.10246331, 367997.27222493, 371166.59249564, 364440.35814445, 356709.31477778, 359920.49374445, 351515.04161605, 348487.01692007, 350426.09378797, 350619.22359992, 343439.26227212, 338964.9879655, 332707.4687524, 324895.9062451, 326890.86291396, 316300.73645556, 317488.54055556, 312430.24777778, 309480.46304445, 311565.097, 311441.09442222, 303247.77908746, 304075.61650631, 302786.84933078, 287144.90133516, 285508.9576913, 288567.72393684, 283570.41116916, 277481.80771911, 284800.60828554, 278168.60561534, 273328.13481459, 272680.47989186, 270803.05311349, 256442.69594197, 254519.7393642, 240736.93278642, 228867.88854445, 227638.64481111, 237184.52731111, 232786.51702223, 234561.66141513, 232457.18115216, 226341.58494105, 216596.73464105, 210794.92106327, 213437.9005, 225276.90178889, 224869.33482223, 222607.13178512, 215237.9004528, 212338.11708917, 199546.68833563, 187262.95785179, 174662.94304705, 184223.02245854, 183318.06783969, 177373.0631104, 169526.57589827, 181200.06148893, 175524.47198826, 181293.66701113, 178820.81230575, 184921.11637645, 168900.17745322, 168998.02791783, 157311.88173611, 155655.04090278, 156835.23540278, 167949.46753611, 168759.23306945, 163893.88344445, 165201.14683611, 174306.60868179, 170995.15355216, 166347.52263619, 168552.66373063, 157448.90454367, 144848.05855117, 149528.44545252, 151150.48533768, 144481.36060872, 155473.2049685, 147861.18432912, 137117.94719966, 132951.3433005, 138936.54787525, 134043.80323283, 134414.52064327, 139639.214666, 137453.6831155, 131869.2923559, 128093.90195601, 128615.7807322, 126671.58651315, 128354.54274172, 131657.62641765, 130538.39993421, 132939.51993657, 134273.09766283, 126174.82676182, 131451.84594303, 126455.91672215, 121719.80100768, 118129.50604864, 112678.38083315, 99111.36753349, 101076.09726794, 98804.09357501, 92426.34643034, 98104.7475412, 101014.74011389, 94968.54371389, 91444.16806945, 86197.16963611, 81188.04307778, 73532.45101111, 79732.78917778, 82526.35584445, 80823.84854445, 76510.72152149, 81327.20026447, 76781.41881565, 80477.40763213, 79088.23435795, 82253.08813355, 79847.05414651, 81910.54874896, 79376.50249607, 82007.49885082, 83649.80704445, 79974.4996308, 71920.20755897, 67336.77927238, 63460.65751113, 59921.72493725, 60805.50980571, 65887.45801277, 65050.86648584, 69541.51369864, 66750.75814636, 64406.94293349, 53783.35397287, 52569.53675951, 52802.20827366, 55125.51587568, 55130.43677778, 58424.71384445, 61957.99717778, 62378.97138889, 63415.59272222, 62914.65984568, 64507.44728272, 61806.29881092, 61206.09258836, 58592.62726707, 53834.79430186, 54721.87233124, 56335.46572661, 51484.37947914, 51067.56896272, 54713.3767506, 53949.53511281, 48841.11698385, 45353.48746365, 40919.92146253, 37686.24647129, 36602.41522818, 38187.65190394, 38320.21841, 39345.35104602, 38296.42508403, 39295.69851854, 38194.5030482, 36734.13021185, 34151.12600742, 33449.23474479, 30797.67254445, 28508.4603, 28907.31662222, 35445.76694938, 36608.39307531, 34884.53524234, 33929.5940383, 35044.70963729, 29267.13157612, 25749.29935592, 26069.09672222, 25220.68102222, 21854.35535556, 21538.14674444, 23559.24451111, 22137.32701111, 22835.92587778, 23669.83761111, 22550.14564697, 21858.91944225, 22241.73885446, 23200.05573224, 22928.12556659, 23407.29527181, 23770.57401802, 22511.70232253, 18717.30827068, 17801.92071512, 16856.02212624, 15292.86344568, 14994.74663611, 15658.25423611, 12940.10646944, 12541.68564041, 13498.65507408, 13659.3758612, 13952.01984706, 13521.87867837, 13596.6884605, 10591.59230864, 10239.43159753, 8934.63150864, 10122.66785309, 8557.55192222, 9552.78558642, 10673.20861505, 11574.81479956, 9762.10003088, 10149.63155916, 10612.88562863, 9617.68813866, 8464.3190932, 9058.03339017, 7594.32206593, 6697.83675841, 5935.96281235, 5767.80612346, 5027.06063457, 6029.56401235, 6101.87884444, 6497.71504444, 8585.49554444, 9466.81354444, 9441.96304444, 10002.73677778, 8830.11331111, 6525.75347778, 4248.09194444, 4610.09157778, 2903.67088342, 5891.50560901, 7980.48328578, 8132.36659992, 7273.57990194, 9141.70697041, 6920.03004954, 5803.74752024, 5345.21511969, 5990.71880353, 3105.0981027, 4351.37704951, 1847.10855355, 2210.41145309, 3212.40696126, 3649.85737282, 2874.31480009, 2403.37675161, 3436.43883039, 4479.15324444, 4735.45147778, 5253.37397778, 5468.41277778, 4534.42677778, 2348.95344444, 3864.01133146, 1605.22140065, 692.46410822, 932.21760216, 219.82082035, 677.89234444, 1531.16961111, 1377.08601111, 1888.35714444, 1833.73381111, 2750.02564075, 1425.22452291, 2285.38506937, 708.62651887, 1279.48505927, 478.18794444, 627.9820271, 1086.20303552, 513.89916077, 692.6075989, 488.18774006, 151.45696927, 446.51188356, 496.52462166, 324.35033951, 579.82160975, 258.52931111, 1222.62907778, 1513.79358642, 938.54813457, 845.95044568, 1534.97422346, 302.09490123, 398.98444444, 753.54797778, 410.15091111, 1539.93517778, 1444.05176944, 1265.12770278, 1338.1291142, 827.74566235, 780.21234012, 328.8216929, 777.68782954, 927.39900667, 1163.11519731, 1491.57649768, 1569.58427559, 2665.14217778, 3291.0654, 2419.21602222, 1181.61318889, 2481.7968933, 2093.14834178, 1314.21574279, 1265.86749541, 1632.04830652, 1813.99620817, 2178.39992332, 2913.2074944, 2525.72087915, 4018.6256337, 3868.0767034, 4225.95866097, 3143.08385556, 3175.75859383, 4040.14633069, 3944.50738355, 3607.00315325, 3493.3633686, 2725.77358934, 2133.43960751, 2337.37706941, 2723.05406346, 3596.84155615, 3096.04569958, 4381.29825817, 4690.90133797, 4674.17754444, 3976.40927778, 3301.70964444, 3194.87955069, 4667.29876128, 4409.34659722, 5629.05205783, 7017.1841649, 5891.42829299, 5250.23666612, 5913.63921654, 5410.0639428, 5732.48145392, 6811.55880072, 5214.13855388] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_IRSAR.RF"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "De.MC", "test_parameters", "slide"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["DE", "DE.ERROR", "DE.LOWER", "DE.UPPER", "DE.STATUS", "RF_NAT.LIM", "RF_REG.LIM", "POSITION", "DATE", "SEQUENCE_NAME"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [522.18] }, { "type": "double", "attributes": {}, "value": [146.66] }, { "type": "double", "attributes": {}, "value": [505.95] }, { "type": "double", "attributes": {}, "value": [538.47] }, { "type": "character", "attributes": {}, "value": ["OK"] }, { "type": "character", "attributes": {}, "value": ["1:5"] }, { "type": "character", "attributes": {}, "value": ["1:524"] }, { "type": "integer", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] } ] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1000, 10] } }, "value": [204.45, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 204.45, 205.73, 198.03, 198.03, 198.03, 204.45, 204.45, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 204.45, 198.03, 198.03, 202.81, 204.45, 198.03, 198.03, 205.73, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 204.45, 198.03, 198.03, 204.45, 202.81, 204.45, 198.03, 204.45, 204.45, 198.03, 204.45, 202.81, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 199.23, 198.03, 198.03, 198.03, 198.03, 202.81, 198.03, 198.03, 205.73, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 205.73, 198.03, 204.45, 205.73, 198.03, 198.03, 204.45, 204.45, 198.03, 202.81, 204.45, 198.03, 198.03, 198.03, 198.03, 204.45, 204.45, 204.45, 198.03, 204.45, 204.45, 198.03, 202.81, 198.03, 204.45, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 204.45, 204.45, 202.81, 198.03, 198.03, 204.45, 198.03, 198.03, 202.81, 198.03, 202.81, 198.03, 202.81, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 202.81, 204.45, 198.03, 204.45, 204.45, 198.03, 198.03, 204.45, 198.03, 198.03, 204.45, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 204.45, 202.81, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 202.81, 198.03, 198.03, 204.45, 204.45, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 204.45, 198.03, 204.45, 205.73, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 205.73, 198.03, 204.45, 204.45, 198.03, 198.03, 202.81, 204.45, 198.03, 204.45, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 202.81, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 202.81, 205.73, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 205.73, 202.81, 204.45, 202.81, 198.03, 202.81, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 204.45, 202.81, 198.03, 204.45, 198.03, 204.45, 198.03, 198.03, 204.45, 198.03, 204.45, 202.81, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 204.45, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 204.45, 199.23, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 204.45, 204.45, 198.03, 202.81, 199.23, 204.45, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 202.81, 198.03, 202.81, 198.03, 204.45, 198.03, 198.03, 204.45, 198.03, 202.81, 198.03, 198.03, 204.45, 198.03, 205.73, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 204.45, 202.81, 202.81, 198.03, 198.03, 202.81, 198.03, 204.45, 202.81, 204.45, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 205.73, 204.45, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 199.23, 198.03, 205.73, 204.45, 204.45, 198.03, 198.03, 199.23, 198.03, 204.45, 198.03, 204.45, 202.81, 205.73, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 204.45, 198.03, 198.03, 198.03, 202.81, 198.03, 204.45, 199.23, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 202.81, 198.03, 198.03, 198.03, 198.03, 199.23, 204.45, 204.45, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 204.45, 204.45, 202.81, 198.03, 204.45, 198.03, 204.45, 198.03, 201.58, 198.03, 198.03, 198.03, 198.03, 205.73, 204.45, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 202.81, 205.73, 198.03, 204.45, 198.03, 198.03, 205.73, 202.81, 198.03, 198.03, 204.45, 198.03, 198.03, 204.45, 202.81, 204.45, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 205.73, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 204.45, 198.03, 205.73, 198.03, 198.03, 198.03, 204.45, 198.03, 202.81, 202.81, 205.73, 198.03, 204.45, 204.45, 202.81, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 202.81, 204.45, 198.03, 199.23, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 204.45, 198.03, 204.45, 198.03, 198.03, 198.03, 202.81, 204.45, 205.73, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 204.45, 205.73, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 202.81, 198.03, 204.45, 198.03, 198.03, 198.03, 204.45, 202.81, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 205.73, 198.03, 205.73, 202.81, 198.03, 204.45, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 202.81, 204.45, 198.03, 198.03, 198.03, 204.45, 204.45, 198.03, 204.45, 202.81, 202.81, 198.03, 202.81, 198.03, 204.45, 198.03, 205.73, 198.03, 198.03, 202.81, 204.45, 198.03, 198.03, 198.03, 202.81, 204.45, 204.45, 198.03, 198.03, 198.03, 204.45, 198.03, 204.45, 198.03, 198.03, 202.81, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 202.81, 198.03, 198.03, 202.81, 198.03, 204.45, 204.45, 198.03, 198.03, 198.03, 202.81, 198.03, 204.45, 204.45, 204.45, 198.03, 202.81, 204.45, 198.03, 205.73, 204.45, 204.45, 198.03, 198.03, 204.45, 204.45, 202.81, 198.03, 198.03, 204.45, 204.45, 198.03, 198.03, 204.45, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 205.73, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 202.81, 198.03, 204.45, 198.03, 198.03, 198.03, 202.81, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 204.45, 198.03, 198.03, 198.03, 198.03, 204.45, 205.73, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 204.45, 204.45, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 202.81, 198.03, 205.73, 198.03, 202.81, 198.03, 205.73, 204.45, 204.45, 198.03, 204.45, 204.45, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 202.81, 198.03, 198.03, 198.03, 198.03, 202.81, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 202.81, 204.45, 198.03, 204.45, 198.03, 198.03, 205.73, 198.03, 205.73, 204.45, 198.03, 198.03, 198.03, 204.45, 202.81, 198.03, 204.45, 204.45, 204.45, 198.03, 198.03, 204.45, 202.81, 202.81, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 204.45, 204.45, 198.03, 198.03, 198.03, 198.03, 202.81, 199.23, 198.03, 204.45, 198.03, 198.03, 205.73, 198.03, 205.73, 205.73, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 208.63, 198.03, 198.03, 204.45, 202.81, 198.03, 198.03, 198.03, 204.45, 204.45, 198.03, 204.45, 202.81, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 204.45, 198.03, 204.45, 202.81, 204.45, 204.45, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 202.81, 204.45, 198.03, 204.45, 198.03, 198.03, 198.03, 204.45, 198.03, 204.45, 198.03, 204.45, 202.81, 198.03, 202.81, 204.45, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 204.45, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 205.73, 202.81, 198.03, 198.03, 202.81, 198.03, 202.81, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 205.73, 198.03, 198.03, 204.45, 202.81, 204.45, 198.03, 198.03, 204.45, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 205.73, 198.03, 204.45, 198.03, 205.73, 204.45, 204.45, 198.03, 198.03, 198.03, 204.45, 205.73, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 205.73, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 202.81, 198.03, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 204.45, 198.03, 198.03, 198.03, 198.03, 198.03, 204.45, 198.03, 198.03, 204.45, 198.03, 205.73, 212.64, 204.45, 198.03, 198.03, 198.03, 198.03, 205.73, 204.45, 204.45, 198.03, 205.73, 204.45, 204.45, 198.03, 198.03, 131.07, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 139.25, 134.94, 131.07, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 131.07, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 131.07, 137.75, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 137.75, 131.07, 137.75, 131.07, 136.2, 136.2, 136.2, 136.2, 136.2, 131.07, 136.2, 131.07, 136.2, 131.07, 131.07, 136.2, 137.75, 136.2, 131.07, 136.2, 136.2, 136.2, 136.2, 134.94, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 137.75, 136.2, 136.2, 136.2, 134.94, 136.2, 136.2, 136.2, 131.07, 131.07, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 137.75, 137.75, 136.2, 134.94, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 131.07, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 131.07, 137.75, 131.07, 131.07, 137.75, 136.2, 136.2, 136.2, 136.2, 137.75, 131.07, 137.75, 136.2, 136.2, 136.2, 131.07, 136.2, 136.2, 136.2, 137.75, 136.2, 131.07, 136.2, 134.94, 136.2, 136.2, 133.66, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 131.07, 136.2, 136.2, 134.94, 136.2, 136.2, 136.2, 131.07, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 133.66, 137.75, 136.2, 137.75, 136.2, 136.2, 137.75, 136.2, 131.07, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 131.07, 136.2, 136.2, 136.2, 137.75, 137.75, 131.07, 136.2, 136.2, 136.2, 137.75, 136.2, 137.75, 136.2, 137.75, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 131.07, 136.2, 136.2, 137.75, 136.2, 137.75, 137.75, 137.75, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 137.75, 136.2, 137.75, 137.75, 137.75, 136.2, 137.75, 137.75, 131.07, 136.2, 137.75, 137.75, 131.07, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 131.07, 136.2, 136.2, 136.2, 137.75, 136.2, 137.75, 136.2, 131.07, 136.2, 136.2, 131.07, 137.75, 137.75, 136.2, 131.07, 137.75, 136.2, 136.2, 137.75, 136.2, 131.07, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 137.75, 131.07, 136.2, 136.2, 137.75, 136.2, 136.2, 131.07, 136.2, 136.2, 136.2, 137.75, 136.2, 136.2, 131.07, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 131.07, 136.2, 136.2, 136.2, 131.07, 136.2, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 131.07, 136.2, 137.75, 136.2, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 137.75, 136.2, 137.75, 136.2, 136.2, 137.75, 136.2, 131.07, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 137.75, 131.07, 136.2, 131.07, 136.2, 137.75, 137.75, 136.2, 136.2, 133.66, 136.2, 136.2, 131.07, 134.94, 134.94, 134.94, 136.2, 137.75, 137.75, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 137.75, 136.2, 137.75, 136.2, 136.2, 131.07, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 137.75, 136.2, 137.75, 136.2, 136.2, 137.75, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 137.75, 137.75, 136.2, 131.07, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 134.94, 136.2, 136.2, 137.75, 134.94, 136.2, 136.2, 136.2, 131.07, 136.2, 137.75, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 137.75, 134.94, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 137.75, 136.2, 131.07, 136.2, 137.75, 131.07, 136.2, 136.2, 137.75, 136.2, 136.2, 137.75, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 137.75, 131.07, 136.2, 137.75, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 134.94, 137.75, 136.2, 136.2, 137.75, 136.2, 137.75, 136.2, 136.2, 131.07, 131.07, 136.2, 136.2, 137.75, 136.2, 137.75, 136.2, 136.2, 137.75, 136.2, 131.07, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 134.94, 136.2, 136.2, 136.2, 136.2, 136.2, 131.07, 136.2, 134.94, 136.2, 137.75, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 134.94, 131.07, 131.07, 136.2, 137.75, 131.07, 136.2, 131.07, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 131.07, 136.2, 134.94, 137.75, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 137.75, 134.94, 136.2, 137.75, 136.2, 134.94, 136.2, 136.2, 131.07, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 137.75, 136.2, 131.07, 137.75, 137.75, 136.2, 137.75, 131.07, 136.2, 131.07, 134.94, 136.2, 136.2, 137.75, 136.2, 137.75, 136.2, 137.75, 131.07, 136.2, 136.2, 134.94, 136.2, 131.07, 134.94, 136.2, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 134.94, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 137.75, 136.2, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 131.07, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 131.07, 131.07, 136.2, 136.2, 134.94, 136.2, 136.2, 136.2, 136.2, 137.75, 131.07, 136.2, 136.2, 137.75, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 137.75, 137.75, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 139.25, 136.2, 137.75, 136.2, 136.2, 131.07, 131.07, 137.75, 136.2, 131.07, 136.2, 137.75, 136.2, 136.2, 136.2, 137.75, 136.2, 136.2, 137.75, 136.2, 136.2, 137.75, 137.75, 136.2, 136.2, 137.75, 137.75, 136.2, 131.07, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 134.94, 136.2, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 134.94, 137.75, 136.2, 131.07, 136.2, 136.2, 136.2, 136.2, 136.2, 131.07, 137.75, 136.2, 136.2, 136.2, 137.75, 131.07, 136.2, 134.94, 136.2, 136.2, 137.75, 137.75, 136.2, 136.2, 136.2, 137.75, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 139.25, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 131.07, 136.2, 136.2, 136.2, 134.94, 136.2, 131.07, 136.2, 131.07, 136.2, 136.2, 136.2, 136.2, 136.2, 131.07, 136.2, 137.75, 137.75, 139.25, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 131.07, 137.75, 137.75, 131.07, 137.75, 136.2, 137.75, 137.75, 136.2, 136.2, 136.2, 137.75, 136.2, 131.07, 136.2, 136.2, 137.75, 136.2, 134.94, 137.75, 136.2, 137.75, 136.2, 137.75, 136.2, 136.2, 134.94, 136.2, 136.2, 136.2, 136.2, 137.75, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 131.07, 136.2, 136.2, 136.2, 137.75, 137.75, 136.2, 134.94, 137.75, 136.2, 136.2, 137.75, 136.2, 136.2, 131.07, 134.94, 136.2, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 131.07, 137.75, 136.2, 131.07, 137.75, 131.07, 136.2, 136.2, 136.2, 131.07, 131.07, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 131.07, 136.2, 136.2, 136.2, 137.75, 131.07, 136.2, 136.2, 136.2, 136.2, 137.75, 137.75, 136.2, 137.75, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 136.2, 137.75, 136.2, 137.75, 137.75, 136.2, 136.2, 137.75, 137.75, 131.07, 136.2, 136.2, 136.2, 137.75, 137.75, 136.2, 136.2, 137.75, 136.2, 136.2, 137.75, 136.2, 136.2, 136.2, 131.07, 137.75, 136.2, 137.75, 136.2, 136.2, 136.2, 137.75, 136.2, 133.66, 137.75, 136.2, 136.2, 137.75, 136.2, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 134.94, 136.2, 137.75, 136.2, 137.75, 136.2, 136.2, 137.75, 137.75, 137.75, 137.75, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 136.2, 137.75, 137.75, 136.2, 131.07, 136.2, 475.45, 476.73, 476.73, 476.73, 475.45, 476.73, 475.45, 476.73, 475.45, 476.73, 481.79, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 481.79, 476.73, 476.73, 475.45, 476.73, 475.45, 476.73, 476.73, 481.79, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 481.79, 475.45, 475.45, 476.73, 476.73, 475.45, 475.45, 473.78, 475.45, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 481.79, 475.45, 475.45, 476.73, 481.79, 476.73, 481.79, 476.73, 475.45, 475.45, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 475.45, 476.73, 476.73, 481.79, 476.73, 476.73, 476.73, 481.79, 476.73, 476.73, 476.73, 475.45, 475.45, 476.73, 476.73, 476.73, 475.45, 475.45, 476.73, 476.73, 481.79, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 481.79, 481.79, 476.73, 473.78, 476.73, 475.45, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 475.45, 475.45, 476.73, 481.79, 476.73, 481.79, 475.45, 476.73, 476.73, 476.73, 473.78, 476.73, 476.73, 476.73, 475.45, 475.45, 476.73, 476.73, 473.78, 476.73, 476.73, 476.73, 473.78, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 481.79, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 481.79, 476.73, 473.78, 473.78, 476.73, 476.73, 476.73, 475.45, 475.45, 476.73, 476.73, 481.79, 475.45, 476.73, 475.45, 475.45, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 481.79, 476.73, 476.73, 476.73, 475.45, 476.73, 481.79, 475.45, 477.98, 476.73, 476.73, 481.79, 481.79, 473.78, 476.73, 476.73, 481.79, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 475.45, 481.79, 476.73, 476.73, 476.73, 481.79, 475.45, 476.73, 475.45, 476.73, 475.45, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 481.79, 476.73, 473.78, 476.73, 475.45, 476.73, 475.45, 473.78, 476.73, 475.45, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 481.79, 481.79, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 483.33, 476.73, 476.73, 481.79, 476.73, 476.73, 481.79, 475.45, 475.45, 475.45, 481.79, 476.73, 475.45, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 481.79, 481.79, 481.79, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 475.45, 475.45, 476.73, 476.73, 475.45, 481.79, 475.45, 476.73, 476.73, 475.45, 476.73, 475.45, 476.73, 481.79, 473.78, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 475.45, 481.79, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 475.45, 475.45, 476.73, 476.73, 476.73, 476.73, 473.78, 476.73, 467.17, 481.79, 476.73, 476.73, 475.45, 481.79, 476.73, 476.73, 476.73, 476.73, 476.73, 481.79, 476.73, 476.73, 476.73, 476.73, 481.79, 476.73, 477.98, 481.79, 476.73, 476.73, 475.45, 476.73, 476.73, 475.45, 475.45, 475.45, 476.73, 476.73, 476.73, 481.79, 476.73, 476.73, 475.45, 475.45, 476.73, 476.73, 481.79, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 481.79, 473.78, 473.78, 475.45, 476.73, 475.45, 476.73, 476.73, 475.45, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 481.79, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 481.79, 476.73, 476.73, 476.73, 473.78, 475.45, 476.73, 475.45, 476.73, 475.45, 476.73, 475.45, 475.45, 475.45, 475.45, 473.78, 475.45, 473.78, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 473.78, 473.78, 473.78, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 477.98, 476.73, 473.78, 476.73, 476.73, 475.45, 476.73, 475.45, 476.73, 476.73, 476.73, 473.78, 475.45, 467.17, 476.73, 476.73, 476.73, 475.45, 475.45, 475.45, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 481.79, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 481.79, 476.73, 476.73, 475.45, 481.79, 481.79, 481.79, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 473.78, 475.45, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 481.79, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 475.45, 476.73, 475.45, 475.45, 481.79, 476.73, 476.73, 475.45, 475.45, 475.45, 467.17, 476.73, 476.73, 475.45, 476.73, 481.79, 475.45, 476.73, 476.73, 477.98, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 481.79, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 475.45, 475.45, 476.73, 476.73, 476.73, 475.45, 475.45, 476.73, 476.73, 476.73, 481.79, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 475.45, 476.73, 476.73, 473.78, 476.73, 475.45, 476.73, 473.78, 476.73, 476.73, 476.73, 476.73, 476.73, 481.79, 476.73, 476.73, 476.73, 476.73, 475.45, 473.78, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 473.78, 476.73, 475.45, 476.73, 476.73, 475.45, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 481.79, 476.73, 476.73, 475.45, 475.45, 476.73, 475.45, 476.73, 473.78, 476.73, 476.73, 476.73, 475.45, 475.45, 476.73, 476.73, 476.73, 475.45, 473.78, 476.73, 476.73, 475.45, 481.79, 476.73, 475.45, 475.45, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 481.79, 476.73, 475.45, 476.73, 476.73, 477.98, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 475.45, 476.73, 475.45, 476.73, 476.73, 481.79, 476.73, 475.45, 481.79, 476.73, 476.73, 473.78, 475.45, 476.73, 476.73, 475.45, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 473.78, 476.73, 475.45, 476.73, 476.73, 481.79, 481.79, 473.78, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 481.79, 475.45, 475.45, 476.73, 476.73, 475.45, 476.73, 481.79, 476.73, 475.45, 473.78, 481.79, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 475.45, 475.45, 481.79, 476.73, 476.73, 476.73, 476.73, 477.98, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 481.79, 477.98, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 475.45, 476.73, 475.45, 481.79, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 475.45, 476.73, 481.79, 476.73, 481.79, 481.79, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 475.45, 475.45, 476.73, 481.79, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 473.78, 476.73, 475.45, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 473.78, 481.79, 476.73, 476.73, 481.79, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 476.73, 473.78, 476.73, 475.45, 476.73, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 475.45, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 475.45, 475.45, 476.73, 475.45, 475.45, 475.45, 481.79, 481.79, 475.45, 475.45, 476.73, 476.73, 475.45, 476.73, 476.73, 481.79, 476.73, 476.73, 476.73, 481.79, 481.79, 476.73, 476.73, 476.73, 476.73, 476.73, 476.73, 477.98, 476.73, 475.45, 475.45, 476.73, 475.45, 481.79, 476.73, 477.98, 476.73, 476.73, 475.45, 476.73, 476.73, 476.73, 481.79, 441.88, 441.88, 446.2, 440.15, 440.15, 440.15, 440.15, 441.88, 441.88, 441.88, 441.88, 440.15, 440.15, 440.15, 440.15, 441.88, 441.88, 440.15, 441.88, 440.15, 441.88, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 441.88, 440.15, 447.67, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 441.88, 441.88, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 447.67, 440.15, 440.15, 441.88, 440.15, 431.53, 441.88, 441.88, 440.15, 441.88, 440.15, 438.63, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 441.88, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 446.2, 440.15, 446.2, 441.88, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 441.88, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 441.88, 440.15, 440.15, 441.88, 446.2, 432.9, 440.15, 441.88, 440.15, 440.15, 440.15, 447.67, 440.15, 441.88, 432.9, 440.15, 440.15, 441.88, 440.15, 446.2, 441.88, 441.88, 441.88, 440.15, 447.67, 440.15, 446.2, 441.88, 441.88, 440.15, 441.88, 447.67, 441.88, 446.2, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 441.88, 441.88, 446.2, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 447.67, 440.15, 447.67, 441.88, 441.88, 440.15, 440.15, 440.15, 441.88, 440.15, 446.2, 441.88, 441.88, 441.88, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 447.67, 441.88, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 431.53, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 441.88, 440.15, 441.88, 440.15, 441.88, 446.2, 441.88, 441.88, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 447.67, 440.15, 440.15, 440.15, 441.88, 441.88, 440.15, 441.88, 447.67, 440.15, 440.15, 440.15, 446.2, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 441.88, 440.15, 441.88, 441.88, 446.2, 447.67, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 446.2, 441.88, 440.15, 440.15, 440.15, 441.88, 441.88, 440.15, 441.88, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 441.88, 447.67, 440.15, 440.15, 441.88, 446.2, 440.15, 431.53, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 446.2, 440.15, 440.15, 441.88, 447.67, 440.15, 440.15, 446.2, 440.15, 441.88, 441.88, 440.15, 441.88, 440.15, 441.88, 440.15, 440.15, 441.88, 440.15, 441.88, 441.88, 441.88, 441.88, 440.15, 440.15, 441.88, 446.2, 441.88, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 446.2, 447.67, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 431.53, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 447.67, 440.15, 447.67, 440.15, 440.15, 440.15, 441.88, 440.15, 446.2, 441.88, 440.15, 440.15, 441.88, 441.88, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 441.88, 441.88, 440.15, 447.67, 440.15, 447.67, 441.88, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 434.49, 440.15, 441.88, 440.15, 447.67, 440.15, 440.15, 441.88, 440.15, 441.88, 440.15, 447.67, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 441.88, 446.2, 440.15, 438.63, 441.88, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 446.2, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 441.88, 446.2, 446.2, 440.15, 440.15, 446.2, 441.88, 440.15, 441.88, 440.15, 440.15, 441.88, 441.88, 440.15, 446.2, 440.15, 441.88, 440.15, 440.15, 440.15, 441.88, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 441.88, 432.9, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 441.88, 440.15, 446.2, 440.15, 447.67, 441.88, 440.15, 441.88, 440.15, 446.2, 440.15, 440.15, 440.15, 431.53, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 441.88, 441.88, 440.15, 441.88, 440.15, 441.88, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 447.67, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 441.88, 440.15, 441.88, 441.88, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 447.67, 432.9, 446.2, 441.88, 440.15, 440.15, 440.15, 441.88, 446.2, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 438.63, 440.15, 440.15, 446.2, 441.88, 446.2, 440.15, 440.15, 441.88, 446.2, 440.15, 440.15, 441.88, 440.15, 441.88, 441.88, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 441.88, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 431.53, 447.67, 441.88, 440.15, 440.15, 440.15, 446.2, 441.88, 440.15, 446.2, 440.15, 441.88, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 446.2, 440.15, 440.15, 440.15, 441.88, 446.2, 440.15, 440.15, 446.2, 440.15, 446.2, 440.15, 440.15, 441.88, 440.15, 447.67, 440.15, 440.15, 440.15, 446.2, 440.15, 446.2, 446.2, 440.15, 441.88, 440.15, 441.88, 441.88, 441.88, 441.88, 441.88, 440.15, 440.15, 440.15, 441.88, 440.15, 441.88, 440.15, 440.15, 441.88, 440.15, 446.2, 440.15, 441.88, 441.88, 440.15, 441.88, 441.88, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 441.88, 440.15, 440.15, 441.88, 440.15, 441.88, 441.88, 440.15, 441.88, 440.15, 446.2, 440.15, 440.15, 441.88, 440.15, 440.15, 441.88, 440.15, 441.88, 440.15, 440.15, 440.15, 446.2, 440.15, 447.67, 440.15, 440.15, 440.15, 440.15, 434.49, 440.15, 440.15, 440.15, 441.88, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 441.88, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 447.67, 440.15, 440.15, 446.2, 440.15, 441.88, 441.88, 441.88, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 434.49, 440.15, 447.67, 434.49, 431.53, 441.88, 441.88, 446.2, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 447.67, 446.2, 440.15, 441.88, 440.15, 440.15, 441.88, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 441.88, 440.15, 440.15, 441.88, 440.15, 440.15, 446.2, 440.15, 441.88, 440.15, 446.2, 441.88, 440.15, 446.2, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 447.67, 440.15, 446.2, 441.88, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 447.67, 441.88, 441.88, 441.88, 447.67, 440.15, 440.15, 440.15, 446.2, 431.53, 440.15, 441.88, 440.15, 446.2, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 441.88, 446.2, 434.49, 440.15, 440.15, 441.88, 441.88, 446.2, 440.15, 440.15, 440.15, 441.88, 441.88, 441.88, 440.15, 441.88, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 447.67, 440.15, 440.15, 440.15, 447.67, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 441.88, 440.15, 440.15, 440.15, 441.88, 441.88, 441.88, 440.15, 441.88, 440.15, 440.15, 440.15, 434.49, 440.15, 440.15, 440.15, 440.15, 438.63, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 443, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 446.2, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 446.2, 446.2, 440.15, 438.63, 446.2, 446.2, 440.15, 440.15, 438.63, 440.15, 441.88, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 444.88, 446.2, 446.2, 446.2, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 446.2, 440.15, 446.2, 440.15, 446.2, 446.2, 440.15, 446.2, 441.88, 446.2, 446.2, 440.15, 440.15, 438.63, 446.2, 440.15, 447.67, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 446.2, 446.2, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 446.2, 440.15, 446.2, 440.15, 446.2, 440.15, 440.15, 440.15, 447.67, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 438.63, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 447.67, 446.2, 440.15, 446.2, 446.2, 446.2, 440.15, 447.67, 440.15, 441.88, 440.15, 446.2, 440.15, 440.15, 446.2, 440.15, 446.2, 440.15, 446.2, 440.15, 440.15, 446.2, 446.2, 441.88, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 441.88, 446.2, 446.2, 440.15, 440.15, 440.15, 446.2, 447.67, 438.63, 446.2, 446.2, 446.2, 446.2, 440.15, 440.15, 440.15, 438.63, 438.63, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 446.2, 441.88, 440.15, 441.88, 446.2, 440.15, 440.15, 440.15, 438.63, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 446.2, 440.15, 446.2, 440.15, 447.67, 438.63, 440.15, 440.15, 440.15, 446.2, 446.2, 441.88, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 446.2, 438.63, 440.15, 446.2, 440.15, 440.15, 438.63, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 446.2, 440.15, 446.2, 440.15, 457.61, 446.2, 446.2, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 446.2, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 438.63, 440.15, 446.2, 446.2, 446.2, 440.15, 438.63, 440.15, 446.2, 440.15, 446.2, 440.15, 446.2, 441.88, 440.15, 440.15, 441.88, 446.2, 440.15, 438.63, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 447.67, 440.15, 441.88, 440.15, 440.15, 441.88, 440.15, 438.63, 446.2, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 446.2, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 446.2, 446.2, 440.15, 447.67, 440.15, 438.63, 446.2, 440.15, 440.15, 446.2, 438.63, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 438.63, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 441.88, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 446.2, 446.2, 440.15, 446.2, 440.15, 441.88, 440.15, 440.15, 440.15, 441.88, 440.15, 446.2, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 446.2, 446.2, 457.61, 438.63, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 431.53, 440.15, 446.2, 446.2, 440.15, 438.63, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 446.2, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 446.2, 446.2, 440.15, 446.2, 441.88, 457.61, 440.15, 441.88, 446.2, 440.15, 446.2, 446.2, 440.15, 440.15, 446.2, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 441.88, 440.15, 440.15, 441.88, 440.15, 446.2, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 446.2, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 457.61, 446.2, 440.15, 440.15, 441.88, 446.2, 440.15, 440.15, 440.15, 446.2, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 446.2, 441.88, 440.15, 440.15, 440.15, 446.2, 446.2, 446.2, 440.15, 446.2, 441.88, 446.2, 441.88, 446.2, 440.15, 440.15, 440.15, 447.67, 440.15, 440.15, 441.88, 446.2, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 438.63, 440.15, 440.15, 444.88, 446.2, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 438.63, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 447.67, 440.15, 441.88, 440.15, 440.15, 440.15, 446.2, 440.15, 446.2, 446.2, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 446.2, 446.2, 446.2, 447.67, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 441.88, 441.88, 440.15, 440.15, 440.15, 440.15, 446.2, 457.61, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 446.2, 440.15, 446.2, 457.61, 446.2, 440.15, 438.63, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 446.2, 440.15, 446.2, 438.63, 440.15, 446.2, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 438.63, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 446.2, 446.2, 441.88, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 446.2, 440.15, 440.15, 440.15, 457.61, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 438.63, 440.15, 440.15, 440.15, 447.67, 440.15, 440.15, 441.88, 440.15, 446.2, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 441.88, 440.15, 446.2, 446.2, 447.67, 440.15, 441.88, 440.15, 446.2, 446.2, 446.2, 440.15, 446.2, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 441.88, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 447.67, 440.15, 440.15, 440.15, 440.15, 438.63, 440.15, 446.2, 446.2, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 441.88, 446.2, 440.15, 446.2, 440.15, 440.15, 440.15, 446.2, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 440.15, 446.2, 440.15, 440.15, 446.2, 446.2, 446.2, 440.15, 441.88, 440.15, 440.15, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 446.2, 446.2, 440.15, 440.15, 441.88, 440.15, 446.2, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 440.15, 446.2, 441.88, 440.15, 441.88, 440.15, 440.15, 440.15, 440.15, 446.2, 446.2, 440.15, 440.15, 441.88, 440.15, 441.88, 440.15, 446.2, 441.88, 440.15, 446.2, 446.2, 440.15, 431.53, 438.63, 440.15, 446.2, 440.15, 446.2, 440.15, 440.15, 446.2, 440.15, 446.2, 440.15, 440.15, 446.2, 440.15, 447.67, 440.15, 440.15, 440.15, 440.15, 446.2, 446.2, 441.88, 440.15, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 537.22, 509.73, 522.18, 537.22, 522.18, 522.18, 509.73, 509.73, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 509.73, 522.18, 520.99, 522.18, 522.18, 537.22, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 522.18, 522.18, 509.73, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 537.22, 522.18, 506.8, 522.18, 522.18, 537.22, 537.22, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 537.22, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 509.73, 509.73, 522.18, 506.8, 509.73, 522.18, 522.18, 509.73, 537.22, 509.73, 522.18, 509.73, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 537.22, 522.18, 537.22, 509.73, 522.18, 520.99, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 509.73, 522.18, 509.73, 509.73, 537.22, 509.73, 537.22, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 537.22, 522.18, 520.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 520.99, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 537.22, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 520.99, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 537.22, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 537.22, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 509.73, 509.73, 509.73, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 520.99, 537.22, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 537.22, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 537.22, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 509.73, 522.18, 509.73, 522.18, 509.73, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 520.99, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 537.22, 537.22, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 537.22, 509.73, 522.18, 520.99, 522.18, 522.18, 520.99, 520.99, 522.18, 509.73, 509.73, 520.99, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 537.22, 537.22, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 520.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 509.73, 509.73, 537.22, 509.73, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 520.99, 509.73, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 520.99, 522.18, 537.22, 522.18, 522.18, 522.18, 520.99, 509.73, 522.18, 509.73, 520.99, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 509.73, 522.18, 537.22, 522.18, 522.18, 537.22, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 520.99, 522.18, 509.73, 537.22, 522.18, 522.18, 520.99, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 537.22, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 506.8, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 537.22, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 537.22, 522.18, 520.99, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 537.22, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 522.18, 537.22, 522.18, 537.22, 509.73, 509.73, 522.18, 522.18, 509.73, 509.73, 522.18, 537.22, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 537.22, 509.73, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 537.22, 522.18, 522.18, 537.22, 509.73, 522.18, 522.18, 522.18, 520.99, 509.73, 522.18, 509.73, 506.8, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 537.22, 522.18, 522.18, 509.73, 509.73, 537.22, 509.73, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 537.22, 522.18, 509.73, 522.18, 522.18, 509.73, 520.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 537.22, 522.18, 509.73, 522.18, 520.99, 537.22, 509.73, 522.18, 522.18, 520.99, 520.99, 522.18, 522.18, 522.18, 509.73, 522.18, 537.22, 522.18, 509.73, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 506.8, 522.18, 522.18, 520.99, 537.22, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 537.22, 522.18, 537.22, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 537.22, 522.18, 522.18, 537.22, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 537.22, 522.18, 522.18, 537.22, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 509.73, 522.18, 520.99, 522.18, 509.73, 537.22, 522.18, 509.73, 520.99, 537.22, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 509.73, 520.99, 522.18, 520.99, 522.18, 509.73, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 520.99, 522.18, 522.18, 520.99, 509.73, 522.18, 522.18, 506.8, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 537.22, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 537.22, 522.18, 509.73, 522.18, 522.18, 537.22, 520.99, 537.22, 522.18, 537.22, 509.73, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 537.22, 509.73, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 506.8, 522.18, 522.18, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 538.47, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 506.8, 522.18, 538.47, 510.99, 510.99, 522.18, 538.47, 522.18, 510.99, 522.18, 509.73, 522.18, 510.99, 522.18, 522.18, 510.99, 538.47, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 522.18, 506.8, 506.8, 510.99, 522.18, 510.99, 510.99, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 509.73, 510.99, 522.18, 538.47, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 538.47, 522.18, 538.47, 510.99, 509.73, 522.18, 522.18, 510.99, 510.99, 509.73, 522.18, 510.99, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 506.8, 522.18, 509.73, 522.18, 510.99, 522.18, 522.18, 509.73, 510.99, 522.18, 510.99, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 538.47, 522.18, 522.18, 506.8, 510.99, 510.99, 510.99, 538.47, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 510.99, 538.47, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 510.99, 510.99, 522.18, 510.99, 522.18, 538.47, 522.18, 510.99, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 510.99, 510.99, 510.99, 506.8, 538.47, 522.18, 538.47, 510.99, 522.18, 510.99, 510.99, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 509.73, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 509.73, 522.18, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 522.18, 510.99, 509.73, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 538.47, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 509.73, 538.47, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 538.47, 510.99, 522.18, 538.47, 522.18, 522.18, 510.99, 538.47, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 537.22, 538.47, 522.18, 510.99, 538.47, 538.47, 522.18, 538.47, 522.18, 522.18, 510.99, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 538.47, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 510.99, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 538.47, 522.18, 510.99, 510.99, 522.18, 509.73, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 509.73, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 509.73, 510.99, 510.99, 510.99, 522.18, 506.8, 510.99, 522.18, 506.8, 522.18, 522.18, 510.99, 510.99, 510.99, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 538.47, 520.99, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 509.73, 522.18, 522.18, 522.18, 510.99, 538.47, 510.99, 538.47, 510.99, 538.47, 522.18, 522.18, 522.18, 509.73, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 510.99, 538.47, 522.18, 522.18, 522.18, 510.99, 510.99, 509.73, 522.18, 522.18, 538.47, 538.47, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 538.47, 522.18, 510.99, 522.18, 510.99, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 510.99, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 506.8, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 506.8, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 506.8, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 510.99, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 510.99, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 510.99, 538.47, 522.18, 538.47, 522.18, 510.99, 522.18, 522.18, 506.8, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 510.99, 510.99, 522.18, 522.18, 510.99, 522.18, 538.47, 522.18, 510.99, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 510.99, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 509.73, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 506.8, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 520.99, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 522.18, 509.73, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 509.73, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 538.47, 509.73, 509.73, 522.18, 538.47, 538.47, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 520.99, 538.47, 509.73, 509.73, 509.73, 509.73, 509.73, 538.47, 522.18, 522.18, 509.73, 509.73, 522.18, 538.47, 509.73, 509.73, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 509.73, 509.73, 538.47, 522.18, 538.47, 522.18, 509.73, 509.73, 522.18, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 509.73, 509.73, 506.8, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 506.8, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 509.73, 522.18, 506.8, 522.18, 520.99, 522.18, 522.18, 522.18, 509.73, 509.73, 509.73, 522.18, 522.18, 520.99, 522.18, 522.18, 522.18, 522.18, 509.73, 538.47, 522.18, 509.73, 522.18, 509.73, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 506.8, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 509.73, 522.18, 509.73, 509.73, 522.18, 509.73, 509.73, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 509.73, 509.73, 509.73, 509.73, 522.18, 522.18, 509.73, 522.18, 509.73, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 509.73, 522.18, 509.73, 509.73, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 506.8, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 538.47, 520.99, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 509.73, 509.73, 522.18, 522.18, 522.18, 538.47, 509.73, 522.18, 522.18, 509.73, 509.73, 509.73, 522.18, 522.18, 509.73, 509.73, 509.73, 538.47, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 538.47, 509.73, 522.18, 509.73, 538.47, 509.73, 522.18, 509.73, 522.18, 538.47, 522.18, 506.8, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 509.73, 506.8, 506.8, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 522.18, 522.18, 520.99, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 506.8, 509.73, 509.73, 538.47, 509.73, 509.73, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 506.8, 509.73, 522.18, 522.18, 520.99, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 509.73, 509.73, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 538.47, 538.47, 506.8, 522.18, 509.73, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 506.8, 509.73, 522.18, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 509.73, 538.47, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 509.73, 522.18, 509.73, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 506.8, 537.22, 509.73, 522.18, 522.18, 538.47, 509.73, 509.73, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 506.8, 509.73, 522.18, 522.18, 509.73, 509.73, 520.99, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 509.73, 509.73, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 506.8, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 538.47, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 509.73, 509.73, 509.73, 538.47, 522.18, 522.18, 509.73, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 538.47, 522.18, 522.18, 522.18, 520.99, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 506.8, 509.73, 522.18, 509.73, 538.47, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 509.73, 509.73, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 538.47, 509.73, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 506.8, 522.18, 538.47, 522.18, 506.8, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 509.73, 506.8, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 506.8, 522.18, 522.18, 538.47, 522.18, 509.73, 538.47, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 509.73, 522.18, 520.99, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 538.47, 538.47, 509.73, 522.18, 509.73, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 509.73, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 510.99, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 510.99, 522.18, 510.99, 538.47, 522.18, 522.18, 538.47, 522.18, 516.28, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 510.99, 516.28, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 516.28, 510.99, 510.99, 522.18, 516.28, 522.18, 522.18, 522.18, 538.47, 516.28, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 508.49, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 516.28, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 505.31, 510.99, 510.99, 510.99, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 510.99, 510.99, 510.99, 509.73, 516.28, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 538.47, 522.18, 522.18, 510.99, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 508.49, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 516.28, 510.99, 522.18, 522.18, 522.18, 508.49, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 510.99, 538.47, 538.47, 522.18, 538.47, 538.47, 538.47, 510.99, 510.99, 522.18, 510.99, 510.99, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 510.99, 508.49, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 508.49, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 510.99, 510.99, 538.47, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 516.28, 522.18, 522.18, 522.18, 538.47, 522.18, 505.31, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 505.31, 510.99, 538.47, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 510.99, 510.99, 516.28, 522.18, 522.18, 510.99, 510.99, 510.99, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 538.47, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 510.99, 522.18, 510.99, 538.47, 522.18, 510.99, 510.99, 522.18, 522.18, 510.99, 522.18, 516.28, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 510.99, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 510.99, 510.99, 516.28, 522.18, 522.18, 510.99, 510.99, 522.18, 510.99, 516.28, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 510.99, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 510.99, 522.18, 538.47, 522.18, 522.18, 510.99, 538.47, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 538.47, 522.18, 510.99, 538.47, 510.99, 522.18, 522.18, 508.49, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 516.28, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 508.49, 510.99, 510.99, 510.99, 516.28, 516.28, 505.31, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 516.28, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 516.28, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 516.28, 510.99, 538.47, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 505.31, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 516.28, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 510.99, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 516.28, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 509.73, 510.99, 510.99, 510.99, 538.47, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 516.28, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 505.31, 510.99, 522.18, 538.47, 510.99, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 538.47, 522.18, 522.18, 510.99, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 510.99, 510.99, 538.47, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 508.49, 522.18, 538.47, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 508.49, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 516.28, 510.99, 516.28, 522.18, 510.99, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 508.49, 538.47, 510.99, 510.99, 522.18, 522.18, 510.99, 510.99, 510.99, 510.99, 538.47, 510.99, 538.47, 522.18, 538.47, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 510.99, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 516.28, 538.47, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 510.99, 538.47, 522.18, 510.99, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 510.99, 510.99, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 538.47, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 516.28, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 538.47, 510.99, 522.18, 510.99, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 202.81, 204.45, 202.81, 205.73, 205.73, 202.81, 205.73, 204.45, 204.45, 204.45, 204.45, 205.73, 205.73, 205.73, 204.45, 204.45, 202.81, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 205.73, 205.73, 205.73, 204.45, 207.19, 205.73, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 211.27, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 202.81, 205.73, 205.73, 202.81, 204.45, 204.45, 201.58, 204.45, 202.81, 204.45, 205.73, 205.73, 202.81, 204.45, 205.73, 205.73, 205.73, 205.73, 204.45, 204.45, 204.45, 202.81, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 207.19, 205.73, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 205.73, 204.45, 204.45, 205.73, 204.45, 202.81, 204.45, 205.73, 204.45, 205.73, 204.45, 207.19, 204.45, 204.45, 202.81, 205.73, 204.45, 204.45, 204.45, 205.73, 202.81, 204.45, 205.73, 205.73, 207.19, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 202.81, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 207.19, 204.45, 204.45, 204.45, 202.81, 204.45, 204.45, 205.73, 204.45, 205.73, 202.81, 205.73, 204.45, 202.81, 204.45, 204.45, 204.45, 204.45, 202.81, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 205.73, 204.45, 202.81, 204.45, 205.73, 204.45, 204.45, 204.45, 202.81, 204.45, 204.45, 204.45, 204.45, 205.73, 202.81, 202.81, 204.45, 204.45, 204.45, 204.45, 207.19, 205.73, 205.73, 202.81, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 202.81, 204.45, 204.45, 207.19, 205.73, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 202.81, 204.45, 205.73, 202.81, 204.45, 205.73, 205.73, 205.73, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 205.73, 211.27, 204.45, 205.73, 202.81, 205.73, 204.45, 204.45, 204.45, 202.81, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 202.81, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 207.19, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 208.63, 204.45, 205.73, 205.73, 204.45, 205.73, 204.45, 205.73, 204.45, 202.81, 204.45, 205.73, 204.45, 204.45, 204.45, 202.81, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 202.81, 205.73, 204.45, 204.45, 202.81, 205.73, 207.19, 202.81, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 207.19, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 202.81, 204.45, 204.45, 204.45, 202.81, 207.19, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 207.19, 204.45, 204.45, 204.45, 204.45, 207.19, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 202.81, 205.73, 204.45, 204.45, 205.73, 204.45, 202.81, 204.45, 205.73, 207.19, 204.45, 211.27, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 205.73, 204.45, 202.81, 204.45, 207.19, 204.45, 204.45, 207.19, 204.45, 208.63, 204.45, 205.73, 205.73, 204.45, 204.45, 205.73, 202.81, 204.45, 202.81, 205.73, 204.45, 202.81, 212.64, 204.45, 205.73, 204.45, 204.45, 202.81, 204.45, 204.45, 205.73, 204.45, 204.45, 205.73, 204.45, 205.73, 204.45, 205.73, 204.45, 205.73, 204.45, 204.45, 204.45, 207.19, 205.73, 205.73, 205.73, 204.45, 204.45, 204.45, 205.73, 205.73, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 205.73, 204.45, 205.73, 205.73, 204.45, 205.73, 204.45, 204.45, 205.73, 202.81, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 211.27, 204.45, 202.81, 202.81, 207.19, 204.45, 204.45, 208.63, 204.45, 202.81, 204.45, 205.73, 204.45, 202.81, 205.73, 204.45, 208.63, 204.45, 202.81, 202.81, 205.73, 205.73, 204.45, 205.73, 205.73, 205.73, 202.81, 202.81, 204.45, 204.45, 205.73, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 205.73, 205.73, 202.81, 204.45, 207.19, 204.45, 202.81, 205.73, 205.73, 204.45, 204.45, 202.81, 204.45, 205.73, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 202.81, 202.81, 202.81, 204.45, 202.81, 204.45, 205.73, 205.73, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 202.81, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 205.73, 205.73, 204.45, 204.45, 204.45, 205.73, 202.81, 207.19, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 201.58, 204.45, 202.81, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 205.73, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 202.81, 204.45, 205.73, 204.45, 204.45, 204.45, 202.81, 205.73, 202.81, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 202.81, 204.45, 204.45, 205.73, 204.45, 204.45, 205.73, 205.73, 205.73, 204.45, 205.73, 205.73, 204.45, 205.73, 205.73, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 202.81, 204.45, 204.45, 207.19, 202.81, 204.45, 204.45, 204.45, 204.45, 202.81, 204.45, 205.73, 204.45, 202.81, 204.45, 205.73, 204.45, 205.73, 204.45, 202.81, 205.73, 204.45, 205.73, 204.45, 207.19, 207.19, 204.45, 204.45, 204.45, 204.45, 204.45, 207.19, 205.73, 204.45, 204.45, 204.45, 205.73, 204.45, 202.81, 208.63, 204.45, 205.73, 202.81, 204.45, 204.45, 207.19, 205.73, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 205.73, 205.73, 207.19, 204.45, 204.45, 204.45, 205.73, 205.73, 204.45, 202.81, 204.45, 204.45, 202.81, 204.45, 204.45, 204.45, 204.45, 204.45, 202.81, 207.19, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 202.81, 204.45, 205.73, 202.81, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 207.19, 208.63, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 205.73, 204.45, 202.81, 205.73, 204.45, 204.45, 205.73, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 205.73, 207.19, 205.73, 204.45, 204.45, 207.19, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 207.19, 204.45, 204.45, 205.73, 208.63, 208.63, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 211.27, 204.45, 202.81, 204.45, 204.45, 204.45, 202.81, 204.45, 204.45, 204.45, 202.81, 202.81, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 207.19, 202.81, 205.73, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 205.73, 205.73, 205.73, 204.45, 208.63, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 205.73, 208.63, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 202.81, 204.45, 204.45, 202.81, 204.45, 204.45, 204.45, 205.73, 205.73, 204.45, 204.45, 202.81, 204.45, 205.73, 204.45, 204.45, 204.45, 198.03, 204.45, 204.45, 205.73, 202.81, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 205.73, 204.45, 205.73, 204.45, 204.45, 205.73, 204.45, 204.45, 204.45, 204.45, 205.73, 207.19, 207.19, 205.73, 204.45, 204.45, 202.81, 205.73, 204.45, 205.73, 211.27, 204.45, 211.27, 205.73, 202.81, 204.45, 204.45, 202.81, 205.73, 204.45, 204.45, 204.45, 205.73, 204.45, 205.73, 205.73, 204.45, 202.81, 202.81, 204.45, 205.73, 202.81, 204.45, 204.45, 204.45, 204.45, 204.45, 207.19, 205.73, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 207.19, 204.45, 204.45, 204.45, 204.45, 204.45, 204.45, 208.63, 204.45, 204.45, 205.73, 204.45, 204.45, 205.73, 207.19, 204.45, 202.81] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["POSITION", "PARAMETER", "THRESHOLD", "VALUE", "STATUS", "SEQUENCE_NAME"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": ["NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "character", "attributes": {}, "value": ["curves_ratio", "intersection_ratio", "residuals_slope", "curves_bounds", "dynamic_ratio", "lambda", "beta", "delta.phi"] }, { "type": "double", "attributes": {}, "value": [1.001, "NA", "NA", 716, "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.68456846, 0.00554174, 0.12503681, 529.91001912, 1.52426091, 0.00021724, 0.5406764, 2103.4] }, { "type": "integer", "attributes": { "levels": { "type": "character", "attributes": {}, "value": ["OK"] }, "class": { "type": "character", "attributes": {}, "value": ["factor"] } }, "value": [1, 1, 1, 1, 1, 1, 1, 1] }, { "type": "logical", "attributes": {}, "value": [null, null, null, null, null, null, null, null] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.MC", "residuals", "trend.fit", "RF_nat.slid", "t_n.id", "I_n", "algorithm_error", "vslide_range", "num_slide_windows", "squared_residuals"] } }, "value": [ { "type": "double", "attributes": {}, "value": [522.18] }, { "type": "double", "attributes": {}, "value": [522.18, 522.18, 522.18, 533.18, 516.28, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 516.28, 522.18, 538.47, 510.99, 538.47, 538.47, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 506.8, 522.18, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 509.73, 506.8, 538.47, 522.18, 522.18, 516.28, 538.47, 538.47, 538.47, 516.28, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 506.8, 522.18, 516.28, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 538.47, 516.28, 516.28, 516.28, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 516.28, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 509.73, 522.18, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 509.73, 509.73, 538.47, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 516.28, 538.47, 522.18, 538.47, 522.18, 538.47, 538.47, 538.47, 522.18, 516.28, 522.18, 522.18, 509.73, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 516.28, 522.18, 538.47, 522.18, 538.47, 509.73, 522.18, 516.28, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 538.47, 516.28, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 516.28, 522.18, 538.47, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 509.73, 538.47, 522.18, 522.18, 538.47, 538.47, 509.73, 522.18, 509.73, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 509.73, 516.28, 522.18, 522.18, 538.47, 522.18, 510.99, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 538.47, 522.18, 522.18, 516.28, 516.28, 516.28, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 516.28, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 509.73, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 516.28, 516.28, 538.47, 522.18, 522.18, 522.18, 538.47, 516.28, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 510.99, 509.73, 522.18, 538.47, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 522.18, 516.28, 516.28, 522.18, 522.18, 522.18, 516.28, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 509.73, 522.18, 516.28, 506.8, 522.18, 509.73, 538.47, 516.28, 509.73, 522.18, 538.47, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 509.73, 516.28, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 516.28, 516.28, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 516.28, 509.73, 522.18, 516.28, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 522.18, 522.18, 538.47, 516.28, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 538.47, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 506.8, 522.18, 522.18, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 509.73, 522.18, 506.8, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 538.47, 538.47, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 516.28, 538.47, 522.18, 506.8, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 538.47, 522.18, 522.18, 516.28, 506.8, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 516.28, 522.18, 538.47, 522.18, 538.47, 538.47, 538.47, 510.99, 522.18, 538.47, 509.73, 516.28, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 516.28, 510.99, 516.28, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 516.28, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 506.8, 516.28, 522.18, 522.18, 509.73, 522.18, 506.8, 522.18, 522.18, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 516.28, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 509.73, 538.47, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 538.47, 509.73, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 509.73, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 538.47, 516.28, 522.18, 522.18, 522.18, 538.47, 506.8, 538.47, 538.47] }, { "type": "double", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["1", "2", "3", "4", "5"] } }, "value": [-0.16252525, 6.11747475, -2.07070707, -0.61252525, 2.13080808] }, { "type": "double", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["(Intercept)", "x"] } }, "value": [1.4624545, -0.12503681] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [5, 2] } }, "value": [522.17538859, 523.77363207, 525.31506369, 526.57456343, 528.31177564, 1469.48747475, 1481.34747475, 1470.64747475, 1466.69747475, 1469.78080808] }, { "type": "integer", "attributes": {}, "value": [385] }, { "type": "double", "attributes": {}, "value": [43.54747475] }, { "type": "double", "attributes": {}, "value": [93.01145652] }, { "type": "double", "attributes": {}, "value": [-162.45252525, 161.54747475] }, { "type": "double", "attributes": {}, "value": [10] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [519, 1] } }, "value": [1900975.09276957, 1904961.1523359, 1884923.57968641, 1867851.87531772, 1843069.99334095, 1822548.87222148, 1811856.44934381, 1810274.46755222, 1795094.4141918, 1744571.03895958, 1718261.04525588, 1686777.67968136, 1650590.44008338, 1607681.91583606, 1555534.97541003, 1528456.65864504, 1479864.3234107, 1447619.67261171, 1407499.3873208, 1409909.14165609, 1387139.8182443, 1371653.31195239, 1366518.53707191, 1344410.90497966, 1314953.63405952, 1284674.32788376, 1267764.52204779, 1254005.02818113, 1262504.85725522, 1276319.83625858, 1269433.42781751, 1238710.52212991, 1231614.12779455, 1207629.73150969, 1194305.65629857, 1170215.87404403, 1181182.01355413, 1145913.50631575, 1119756.46123932, 1074470.51460194, 1059803.64732114, 1029184.37909689, 1025706.47886356, 1026347.30731305, 1016810.42452012, 1003397.10947351, 993667.33661627, 965223.94218973, 943388.23078106, 945312.42058645, 951357.64433913, 942834.26261657, 927720.31198149, 930700.02101037, 914228.58423427, 864853.54851844, 843907.99166996, 838157.97783359, 818575.6589575, 806263.44536558, 802208.26024638, 814333.36178275, 805470.66901911, 804996.10524571, 780797.13204161, 784021.59540423, 778525.38551939, 765517.24369037, 755508.77528599, 763945.9150012, 753596.75217797, 722207.57813757, 699127.02163729, 675384.08842921, 647248.0846622, 657913.64230261, 647531.30854907, 653085.38283089, 638374.57465917, 632922.81990699, 596694.22957971, 594303.4042181, 591210.85579468, 588968.37535764, 600284.60322633, 613906.26929097, 613793.51513421, 613955.8609041, 622552.11536505, 608330.93575899, 592249.21512711, 572403.99443438, 560092.84747882, 538185.68262798, 532120.53243942, 526181.04147466, 534002.95373022, 527770.28448039, 526415.53868645, 517962.42169251, 510812.78846321, 496140.39677585, 483008.19245391, 486143.78333786, 481326.82080588, 480922.53782507, 476844.94794004, 471817.31193118, 463587.96832186, 457379.59739376, 439152.37624001, 444159.55846886, 444985.90059534, 443145.27641127, 423762.07695875, 431710.32308299, 437169.09457182, 425851.06065263, 411524.25692214, 418020.58083325, 419745.23866216, 395592.30020189, 411581.77597361, 421142.67180997, 417724.48399482, 400169.53822592, 394801.49785304, 382040.53582638, 367780.74297891, 358243.95501527, 359629.45473371, 367611.85419345, 347630.20680833, 342536.40960799, 347886.79682387, 329314.5246286, 319939.24919722, 324144.54119114, 321742.91741068, 311691.91730799, 324448.23146557, 318854.07708691, 319619.41749116, 308923.96441822, 309444.73393003, 306980.54498424, 296441.95604135, 285565.73630633, 287772.04420328, 284132.85110569, 279898.22577673, 277581.89929895, 275407.39995114, 272014.49351731, 265173.43770345, 261286.1797085, 263942.07496507, 266656.03491254, 260931.64027567, 254422.92361607, 257157.96852213, 250122.2904723, 247566.75289192, 249107.89727946, 249348.08065574, 243205.2198385, 239483.41646342, 234251.88905727, 227627.66105054, 229358.68633689, 220447.83326691, 221447.01183156, 217225.20821203, 214777.31697365, 216508.52041068, 216446.00809553, 209617.98474812, 210254.70378313, 209241.44252903, 196308.66687011, 194885.68131298, 197462.45488431, 193379.18656107, 188266.48712898, 194294.49635185, 188850.51644342, 184860.9379255, 184292.68484339, 182802.48052967, 171058.27914615, 169451.08337645, 158373.84835423, 148747.07516051, 147687.34512415, 155569.94371843, 151948.04025782, 153270.54799528, 151556.06002861, 146660.29767609, 138822.476467, 134155.73989932, 136245.9071026, 145863.50340833, 145569.77652247, 143692.42900297, 137791.48542822, 135556.46166054, 125266.74485313, 115687.75497536, 105762.20567741, 113342.79552334, 112793.48728832, 108119.28131997, 101976.2405725, 111069.58601419, 106686.45871533, 111410.9907479, 109282.98008292, 113846.02758797, 101424.76187686, 101635.45360419, 92486.77118046, 91270.33357945, 91978.54876632, 100515.17556632, 101187.00348349, 97456.31539384, 98375.10989662, 105516.0224808, 103118.61179561, 99373.18429378, 100944.31092358, 92789.39424861, 82895.84885809, 86612.33434529, 88041.58345584, 82862.35117133, 90925.9882649, 85365.69943657, 77281.74410039, 73969.5745112, 78685.91920716, 74877.09362362, 75017.63802395, 78928.35748572, 77338.6167231, 73251.5969534, 70270.66861248, 70692.00249978, 69284.60165447, 70568.70212547, 73069.24806443, 72126.7632196, 73835.70229266, 74900.88333205, 68951.44782498, 72911.78976101, 69308.16258278, 65928.15644406, 63064.20367134, 59599.04774878, 49443.20802732, 50763.85957547, 49448.00176806, 44673.89482092, 48586.94372976, 50770.85431244, 46477.13039729, 44052.37791783, 40418.2524542, 37113.81878475, 31879.61354637, 36172.92262212, 38079.03522819, 36949.05213021, 33896.0474262, 37309.14479993, 34238.29870465, 36822.63657204, 35739.49012614, 37754.94770135, 36064.26890174, 37708.13400924, 35864.4473115, 37530.47388847, 38554.34582212, 36193.91106637, 30957.46105964, 27825.47406936, 25551.42293437, 23231.07779484, 23713.20350035, 27036.22467547, 26415.16886683, 29255.55038265, 27480.63058795, 26043.52396237, 19845.28663525, 19181.46565983, 19414.96812347, 21174.89196791, 20804.08101, 22253.65019788, 24586.48849418, 24938.49389721, 25732.47797802, 25138.2941026, 26026.43636792, 24368.54918374, 24006.82546623, 22519.25474345, 19576.40013065, 19980.11735686, 21233.21296628, 18280.84631477, 17826.68503822, 19908.64587661, 19593.3490975, 16538.20717057, 14528.28283555, 12245.95274913, 10464.23190217, 9946.74729716, 10891.32191231, 10772.1107214, 11176.88717124, 10607.96464073, 11304.78085251, 10748.68825086, 9961.10752225, 8593.51167011, 8332.0236398, 7073.40138273, 6027.84354906, 6043.63215411, 9465.5602366, 10196.09262515, 9222.6325467, 8471.55095209, 9280.04618744, 6383.55468071, 4776.90629889, 4745.16166825, 4686.97893795, 3256.76559451, 2930.86257263, 3965.62328879, 3372.16243525, 3477.46336253, 3756.30083323, 3429.11645811, 3068.60815238, 3284.65851899, 3781.79842707, 3573.02042303, 3717.53571095, 3784.58096221, 3506.9011451, 2266.01489123, 1776.07347709, 1848.08801951, 1361.42440966, 1025.40707035, 1285.9041653, 608.56835823, 542.66162204, 1053.68816009, 1354.42393711, 1143.51252903, 775.69257246, 893.94674434, 402.47281471, 583.78167936, 216.29262077, 494.43926825, 208.61624872, 246.41143929, 541.89466831, 1008.08331747, 645.37541747, 207.77409727, 567.89810164, 698.59521018, 303.88305362, 45.04316877, 637.93184453, 571.65741018, 740.29581673, 1291.74139047, 806.92834603, 468.27923895, 498.12331909, 355.50424636, 549.55084737, 560.03377667, 432.97648879, 122.91515141, 962.85136151, 1085.69500293, 1360.71031808, 2135.6918504, 2071.46237408, 1864.29629159, 1631.60107947, 1410.94203671, 651.03832863, 778.07440231, 2509.2242289, 1906.46848749, 2082.3282559, 2849.9815155, 2305.62396741, 2230.69321724, 2908.13033744, 2568.34924311, 2473.7935814, 2902.4728594, 2726.04487253, 3543.07854122, 3554.07274122, 4027.28458778, 4884.35930596, 3096.39695747, 4217.17070697, 6530.53533323, 6234.64115141, 8002.69168428, 8201.01941003, 5983.67141054, 6484.34304589, 7564.30432468, 8024.48469788, 7601.4235403, 7222.98357666, 4619.85600293, 5884.78046757, 5653.06101265, 6709.76114733, 6969.14520895, 6759.29857763, 7151.50297662, 7286.32502515, 6818.75720677, 7395.80399297, 6762.00985559, 5472.0150614, 7091.11386923, 7202.46871665, 8874.40694406, 9614.93871246, 9707.42184446, 9829.52572076, 8873.98154333, 6608.18062313, 7935.63147969, 6993.10635107, 5359.92829855, 6888.21106623, 7338.00447128, 7987.38310091, 10573.87697767, 11754.44128474, 14949.96599585, 15297.39414308, 14788.58312692, 12724.89023979, 12288.46129299, 11770.61055663, 11594.67966698, 11965.09110018, 13237.73819202, 15157.78900892, 16014.73418808, 16891.28443063, 15380.49921808, 17482.74270966, 16306.76581673, 13293.42391269, 14864.72377504, 17994.31538514, 16554.22397134, 15785.41733155, 17207.73495074, 14673.91328031, 15393.9633793, 17808.72420657, 18379.34753929, 20679.10425343, 22540.2840504, 23625.52379922, 21203.38503053, 21821.41752414, 23156.15624886, 23868.47719397, 22193.1442768, 22009.95533839, 20740.1027533, 19134.80776341, 19536.23422195, 20395.78744414, 22881.3663532, 21730.76799159, 24542.4747724, 25022.42249866, 25517.05159484, 23296.98385343, 21680.81844232, 21093.07632837, 24925.60194034, 24785.50611298, 26876.0466443, 30489.46149884, 28179.39485926, 26739.06483426, 28296.70753283, 27607.83052172, 27643.30186735, 30377.63060809, 26316.83120647] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_IRSAR.RF"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "De.MC", "test_parameters", "slide"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["DE", "DE.ERROR", "DE.LOWER", "DE.UPPER", "DE.STATUS", "RF_NAT.LIM", "RF_REG.LIM", "POSITION", "DATE", "SEQUENCE_NAME"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [522.18] }, { "type": "double", "attributes": {}, "value": [90.86] }, { "type": "double", "attributes": {}, "value": [505.4605] }, { "type": "double", "attributes": {}, "value": [538.47] }, { "type": "character", "attributes": {}, "value": ["OK"] }, { "type": "character", "attributes": {}, "value": ["1:5"] }, { "type": "character", "attributes": {}, "value": ["1:524"] }, { "type": "integer", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] } ] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1000, 10] } }, "value": [506.8, 537.22, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 537.22, 522.18, 509.73, 509.73, 537.22, 522.18, 537.22, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 509.73, 520.99, 509.73, 509.73, 537.22, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 509.73, 509.73, 506.8, 509.73, 509.73, 522.18, 509.73, 522.18, 522.18, 506.8, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 537.22, 522.18, 509.73, 522.18, 522.18, 537.22, 522.18, 522.18, 509.73, 537.22, 522.18, 509.73, 537.22, 509.73, 509.73, 520.99, 522.18, 509.73, 509.73, 506.8, 522.18, 522.18, 522.18, 509.73, 537.22, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 509.73, 537.22, 522.18, 522.18, 537.22, 509.73, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 537.22, 509.73, 509.73, 522.18, 522.18, 522.18, 537.22, 522.18, 509.73, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 520.99, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 537.22, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 509.73, 522.18, 522.18, 522.18, 509.73, 537.22, 522.18, 522.18, 509.73, 522.18, 537.22, 509.73, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 537.22, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 537.22, 522.18, 522.18, 522.18, 537.22, 509.73, 537.22, 509.73, 509.73, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 506.8, 509.73, 509.73, 509.73, 520.99, 537.22, 522.18, 509.73, 522.18, 522.18, 509.73, 520.99, 509.73, 522.18, 522.18, 506.8, 537.22, 520.99, 522.18, 510.99, 522.18, 522.18, 520.99, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 509.73, 522.18, 509.73, 537.22, 509.73, 509.73, 509.73, 537.22, 522.18, 537.22, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 537.22, 522.18, 537.22, 522.18, 537.22, 509.73, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 537.22, 520.99, 509.73, 522.18, 506.8, 522.18, 522.18, 509.73, 522.18, 537.22, 522.18, 522.18, 522.18, 520.99, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 520.99, 522.18, 522.18, 509.73, 537.22, 509.73, 506.8, 537.22, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 509.73, 509.73, 520.99, 522.18, 522.18, 522.18, 522.18, 537.22, 537.22, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 509.73, 520.99, 509.73, 522.18, 509.73, 509.73, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 509.73, 509.73, 522.18, 520.99, 522.18, 509.73, 510.99, 522.18, 509.73, 509.73, 509.73, 520.99, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 537.22, 509.73, 522.18, 522.18, 509.73, 537.22, 537.22, 522.18, 522.18, 509.73, 537.22, 522.18, 522.18, 522.18, 520.99, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 520.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 520.99, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 508.49, 522.18, 522.18, 537.22, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 520.99, 509.73, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 520.99, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 537.22, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 537.22, 506.8, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 537.22, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 520.99, 537.22, 522.18, 509.73, 537.22, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 509.73, 509.73, 537.22, 509.73, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 537.22, 509.73, 509.73, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 537.22, 537.22, 522.18, 537.22, 509.73, 522.18, 522.18, 522.18, 522.18, 520.99, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 509.73, 522.18, 522.18, 509.73, 522.18, 509.73, 509.73, 509.73, 522.18, 522.18, 509.73, 537.22, 522.18, 522.18, 522.18, 522.18, 509.73, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 537.22, 537.22, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 537.22, 537.22, 522.18, 537.22, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 537.22, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 509.73, 537.22, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 520.99, 522.18, 509.73, 509.73, 522.18, 506.8, 537.22, 522.18, 509.73, 538.47, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 537.22, 522.18, 537.22, 537.22, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 509.73, 509.73, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 509.73, 520.99, 522.18, 522.18, 537.22, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 537.22, 522.18, 522.18, 522.18, 509.73, 530.49, 522.18, 506.8, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 509.73, 522.18, 522.18, 509.73, 509.73, 509.73, 509.73, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 509.73, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 506.8, 509.73, 483.33, 477.98, 473.78, 477.98, 477.98, 483.33, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 476.73, 473.78, 473.78, 483.33, 473.78, 477.98, 473.78, 473.78, 476.73, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 477.98, 477.98, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 476.73, 473.78, 473.78, 473.78, 473.78, 476.73, 473.78, 476.73, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 483.33, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 472.57, 473.78, 473.78, 473.78, 483.33, 473.78, 483.33, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 483.33, 483.33, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 483.33, 473.78, 473.78, 473.78, 472.57, 473.78, 476.73, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 477.98, 473.78, 483.33, 477.98, 483.33, 473.78, 483.33, 473.78, 473.78, 483.33, 483.33, 473.78, 473.78, 483.33, 473.78, 473.78, 483.33, 473.78, 476.73, 483.33, 473.78, 483.33, 473.78, 473.78, 483.33, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 483.33, 483.33, 473.78, 483.33, 483.33, 476.73, 473.78, 473.78, 476.73, 483.33, 477.98, 483.33, 473.78, 473.78, 476.73, 473.78, 483.33, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 477.98, 477.98, 473.78, 476.73, 477.98, 473.78, 483.33, 473.78, 473.78, 477.98, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 477.98, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 477.98, 473.78, 483.33, 473.78, 473.78, 473.78, 472.57, 477.98, 473.78, 473.78, 473.78, 483.33, 473.78, 483.33, 483.33, 476.73, 473.78, 483.33, 483.33, 483.33, 473.78, 473.78, 483.33, 473.78, 473.78, 483.33, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 483.33, 483.33, 473.78, 473.78, 483.33, 473.78, 476.73, 477.98, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 476.73, 473.78, 473.78, 473.78, 473.78, 483.33, 477.98, 473.78, 477.98, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 483.33, 473.78, 473.78, 476.73, 473.78, 473.78, 477.98, 473.78, 477.98, 473.78, 483.33, 483.33, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 483.33, 473.78, 483.33, 473.78, 483.33, 477.98, 473.78, 477.98, 477.98, 483.33, 483.33, 473.78, 473.78, 483.33, 473.78, 473.78, 476.73, 473.78, 472.57, 473.78, 473.78, 473.78, 483.33, 476.73, 473.78, 476.73, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 483.33, 472.57, 473.78, 473.78, 483.33, 473.78, 477.98, 477.98, 477.98, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 483.33, 473.78, 473.78, 477.98, 473.78, 472.57, 473.78, 473.78, 473.78, 476.73, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 476.73, 473.78, 473.78, 483.33, 473.78, 483.33, 473.78, 473.78, 476.73, 483.33, 483.33, 477.98, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 475.45, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 477.98, 483.33, 473.78, 476.73, 473.78, 473.78, 483.33, 483.33, 473.78, 473.78, 473.78, 477.98, 476.73, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 477.98, 483.33, 473.78, 473.78, 473.78, 483.33, 483.33, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 476.73, 473.78, 483.33, 483.33, 483.33, 473.78, 473.78, 477.98, 477.98, 473.78, 473.78, 473.78, 477.98, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 476.73, 473.78, 476.73, 473.78, 483.33, 473.78, 473.78, 477.98, 483.33, 473.78, 473.78, 483.33, 473.78, 477.98, 473.78, 473.78, 477.98, 477.98, 483.33, 483.33, 483.33, 483.33, 473.78, 476.73, 473.78, 473.78, 483.33, 473.78, 473.78, 483.33, 477.98, 473.78, 473.78, 473.78, 477.98, 473.78, 483.33, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 477.98, 473.78, 477.98, 473.78, 477.98, 483.33, 473.78, 473.78, 473.78, 473.78, 477.98, 472.57, 477.98, 473.78, 473.78, 473.78, 483.33, 483.33, 473.78, 473.78, 473.78, 473.78, 477.98, 476.73, 473.78, 483.33, 483.33, 483.33, 473.78, 477.98, 473.78, 473.78, 483.33, 483.33, 476.73, 477.98, 483.33, 473.78, 473.78, 473.78, 483.33, 483.33, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 483.33, 483.33, 473.78, 473.78, 483.33, 473.78, 477.98, 483.33, 483.33, 483.33, 473.78, 473.78, 473.78, 473.78, 477.98, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 483.33, 473.78, 477.98, 473.78, 483.33, 476.73, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 477.98, 473.78, 473.78, 473.78, 473.78, 477.98, 473.78, 483.33, 483.33, 483.33, 473.78, 473.78, 483.33, 476.73, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 477.98, 477.98, 473.78, 473.78, 473.78, 483.33, 473.78, 477.98, 476.73, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 477.98, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 477.98, 473.78, 473.78, 473.78, 477.98, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 476.73, 473.78, 483.33, 483.33, 473.78, 483.33, 473.78, 477.98, 473.78, 473.78, 476.73, 473.78, 473.78, 473.78, 483.33, 473.78, 483.33, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 483.33, 483.33, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 477.98, 473.78, 483.33, 473.78, 483.33, 473.78, 483.33, 477.98, 473.78, 473.78, 473.78, 483.33, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 483.33, 477.98, 483.33, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 483.33, 483.33, 476.73, 473.78, 477.98, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 476.73, 473.78, 473.78, 483.33, 477.98, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 483.33, 472.57, 473.78, 483.33, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 477.98, 477.98, 473.78, 480.33, 473.78, 473.78, 473.78, 476.73, 481.79, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 483.33, 483.33, 477.98, 473.78, 483.33, 483.33, 473.78, 473.78, 473.78, 477.98, 483.33, 473.78, 477.98, 483.33, 473.78, 473.78, 477.98, 473.78, 476.73, 473.78, 473.78, 473.78, 483.33, 477.98, 473.78, 473.78, 473.78, 473.78, 472.57, 476.73, 473.78, 473.78, 483.33, 473.78, 483.33, 477.98, 473.78, 473.78, 473.78, 473.78, 473.78, 476.73, 483.33, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 476.73, 473.78, 473.78, 477.98, 473.78, 477.98, 473.78, 483.33, 473.78, 476.73, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 483.33, 483.33, 473.78, 473.78, 483.33, 483.33, 483.33, 473.78, 473.78, 473.78, 477.98, 473.78, 483.33, 477.98, 477.98, 483.33, 473.78, 473.78, 473.78, 483.33, 477.98, 477.98, 473.78, 473.78, 472.57, 483.33, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 477.98, 473.78, 473.78, 483.33, 473.78, 483.33, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 483.33, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 483.33, 483.33, 473.78, 483.33, 483.33, 477.98, 473.78, 473.78, 473.78, 473.78, 477.98, 473.78, 473.78, 483.33, 483.33, 483.33, 483.33, 483.33, 483.33, 473.78, 483.33, 483.33, 477.98, 473.78, 477.98, 473.78, 473.78, 473.78, 473.78, 483.33, 477.98, 473.78, 473.78, 473.78, 473.78, 473.78, 473.78, 483.33, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 509.73, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 509.73, 522.18, 538.47, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 509.73, 538.47, 516.28, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 538.47, 538.47, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 509.73, 522.18, 538.47, 538.47, 522.18, 509.73, 522.18, 516.28, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 520.99, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 538.47, 509.73, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 520.99, 509.73, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 516.28, 538.47, 538.47, 522.18, 522.18, 516.28, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 522.18, 516.28, 522.18, 520.99, 522.18, 509.73, 520.99, 509.73, 522.18, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 516.28, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 538.47, 538.47, 538.47, 538.47, 522.18, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 516.28, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 509.73, 522.18, 522.18, 538.47, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 509.73, 538.47, 538.47, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 537.22, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 509.73, 520.99, 522.18, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 509.73, 522.18, 538.47, 509.73, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 516.28, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 509.73, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 538.47, 516.28, 516.28, 538.47, 522.18, 516.28, 522.18, 522.18, 522.18, 538.47, 509.73, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 509.73, 520.99, 538.47, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 522.18, 516.28, 509.73, 538.47, 522.18, 522.18, 509.73, 522.18, 522.18, 509.73, 522.18, 516.28, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 516.28, 522.18, 509.73, 522.18, 516.28, 522.18, 538.47, 522.18, 522.18, 538.47, 516.28, 522.18, 538.47, 538.47, 538.47, 538.47, 516.28, 538.47, 538.47, 522.18, 522.18, 538.47, 516.28, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 520.99, 509.73, 509.73, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 520.99, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 509.73, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 538.47, 538.47, 538.47, 520.99, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 509.73, 522.18, 509.73, 509.73, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 538.47, 509.73, 509.73, 538.47, 522.18, 520.99, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 509.73, 509.73, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 538.47, 509.73, 522.18, 522.18, 538.47, 516.28, 522.18, 522.18, 522.18, 516.28, 522.18, 509.73, 522.18, 522.18, 516.28, 510.99, 522.18, 522.18, 509.73, 538.47, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 516.28, 538.47, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 509.73, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 509.73, 538.47, 522.18, 522.18, 522.18, 520.99, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 516.28, 538.47, 522.18, 522.18, 522.18, 538.47, 537.22, 509.73, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 537.22, 516.28, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 510.99, 522.18, 538.47, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 510.99, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 509.73, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 510.99, 538.47, 510.99, 510.99, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 516.28, 522.18, 510.99, 522.18, 516.28, 508.49, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 510.99, 510.99, 510.99, 538.47, 510.99, 510.99, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 538.47, 516.28, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 509.73, 522.18, 538.47, 510.99, 508.49, 522.18, 538.47, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 538.47, 522.18, 510.99, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 516.28, 522.18, 522.18, 522.18, 538.47, 522.18, 516.28, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 510.99, 522.18, 522.18, 510.99, 516.28, 522.18, 522.18, 510.99, 522.18, 538.47, 522.18, 522.18, 516.28, 510.99, 522.18, 510.99, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 538.47, 510.99, 510.99, 510.99, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 510.99, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 510.99, 522.18, 510.99, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 538.47, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 538.47, 522.18, 510.99, 522.18, 510.99, 522.18, 509.73, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 522.18, 522.18, 522.18, 538.47, 510.99, 516.28, 516.28, 522.18, 510.99, 537.22, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 538.47, 522.18, 510.99, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 510.99, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 510.99, 522.18, 508.49, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 510.99, 522.18, 510.99, 522.18, 516.28, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 510.99, 522.18, 522.18, 516.28, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 509.73, 516.28, 522.18, 522.18, 522.18, 516.28, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 537.22, 522.18, 510.99, 538.47, 522.18, 522.18, 510.99, 538.47, 522.18, 510.99, 510.99, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 509.73, 510.99, 510.99, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 510.99, 510.99, 510.99, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 538.47, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 516.28, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 510.99, 522.18, 522.18, 538.47, 522.18, 510.99, 522.18, 516.28, 522.18, 510.99, 538.47, 510.99, 522.18, 538.47, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 510.99, 522.18, 522.18, 510.99, 538.47, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 516.28, 522.18, 510.99, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 510.99, 538.47, 537.22, 510.99, 510.99, 522.18, 522.18, 538.47, 522.18, 510.99, 522.18, 510.99, 510.99, 522.18, 510.99, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 510.99, 538.47, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 510.99, 538.47, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 516.28, 522.18, 522.18, 510.99, 509.73, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 538.47, 522.18, 522.18, 537.22, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 509.73, 510.99, 538.47, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 537.22, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 538.47, 522.18, 522.18, 510.99, 522.18, 538.47, 538.47, 510.99, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 516.28, 522.18, 510.99, 522.18, 510.99, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 510.99, 538.47, 522.18, 510.99, 522.18, 510.99, 538.47, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 510.99, 538.47, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 510.99, 516.28, 516.28, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 510.99, 522.18, 510.99, 522.18, 522.18, 516.28, 522.18, 510.99, 516.28, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 510.99, 510.99, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 510.99, 516.28, 522.18, 522.18, 509.73, 522.18, 538.47, 538.47, 522.18, 537.22, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 481.79, 481.79, 467.17, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 467.17, 481.79, 476.73, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 467.17, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 467.17, 481.79, 481.79, 481.79, 476.73, 481.79, 475.45, 481.79, 481.79, 481.79, 481.79, 476.73, 476.73, 481.79, 481.79, 481.79, 473.78, 481.79, 481.79, 476.73, 481.79, 481.79, 476.73, 481.79, 476.73, 481.79, 481.79, 481.79, 476.73, 481.79, 476.73, 481.79, 476.73, 476.73, 476.73, 467.17, 481.79, 481.79, 476.73, 481.79, 473.78, 481.79, 476.73, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 475.45, 481.79, 467.17, 476.73, 476.73, 476.73, 481.79, 476.73, 481.79, 481.79, 481.79, 476.73, 476.73, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 476.73, 467.17, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 476.73, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 483.33, 467.17, 481.79, 476.73, 481.79, 481.79, 467.17, 481.79, 481.79, 476.73, 467.17, 481.79, 476.73, 476.73, 481.79, 481.79, 481.79, 467.17, 481.79, 476.73, 481.79, 481.79, 481.79, 467.17, 481.79, 475.45, 476.73, 467.17, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 476.73, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 475.45, 476.73, 476.73, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 467.17, 481.79, 481.79, 467.17, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 476.73, 481.79, 467.17, 481.79, 481.79, 481.79, 481.79, 476.73, 475.45, 483.33, 481.79, 476.73, 475.45, 476.73, 475.45, 481.79, 476.73, 467.17, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 467.17, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 476.73, 476.73, 476.73, 472.57, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 476.73, 481.79, 476.73, 481.79, 481.79, 481.79, 476.73, 467.17, 481.79, 481.79, 481.79, 476.73, 476.73, 481.79, 476.73, 481.79, 481.79, 476.73, 476.73, 481.79, 481.79, 481.79, 481.79, 476.73, 476.73, 481.79, 481.79, 481.79, 481.79, 467.17, 476.73, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 476.73, 481.79, 467.17, 476.73, 476.73, 476.73, 481.79, 481.79, 475.45, 481.79, 481.79, 481.79, 481.79, 475.45, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 467.17, 481.79, 481.79, 481.79, 467.17, 481.79, 476.73, 473.78, 481.79, 481.79, 475.45, 481.79, 481.79, 481.79, 475.45, 475.45, 476.73, 476.73, 481.79, 476.73, 476.73, 467.17, 476.73, 481.79, 481.79, 481.79, 476.73, 481.79, 476.73, 481.79, 481.79, 475.45, 481.79, 481.79, 467.17, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 476.73, 476.73, 476.73, 481.79, 481.79, 467.17, 481.79, 481.79, 481.79, 481.79, 476.73, 476.73, 481.79, 476.73, 481.79, 476.73, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 467.17, 481.79, 476.73, 481.79, 481.79, 467.17, 481.79, 481.79, 476.73, 473.78, 467.17, 476.73, 481.79, 481.79, 481.79, 473.78, 481.79, 476.73, 481.79, 476.73, 481.79, 481.79, 476.73, 481.79, 476.73, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 475.45, 481.79, 476.73, 481.79, 476.73, 481.79, 467.17, 481.79, 467.17, 481.79, 481.79, 481.79, 476.73, 481.79, 467.17, 476.73, 467.17, 481.79, 481.79, 476.73, 481.79, 476.73, 476.73, 481.79, 481.79, 467.17, 481.79, 476.73, 481.79, 481.79, 476.73, 476.73, 481.79, 481.79, 481.79, 481.79, 476.73, 476.73, 476.73, 481.79, 476.73, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 475.45, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 475.45, 475.45, 475.45, 481.79, 476.73, 481.79, 481.79, 467.17, 476.73, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 476.73, 476.73, 481.79, 476.73, 481.79, 481.79, 481.79, 467.17, 476.73, 481.79, 481.79, 481.79, 476.73, 467.17, 467.17, 481.79, 476.73, 481.79, 481.79, 481.79, 476.73, 476.73, 476.73, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 476.73, 473.78, 481.79, 481.79, 481.79, 481.79, 473.78, 481.79, 467.17, 476.73, 476.73, 467.17, 481.79, 473.78, 481.79, 475.45, 476.73, 481.79, 481.79, 481.79, 481.79, 476.73, 467.17, 481.79, 467.17, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 467.17, 481.79, 467.17, 481.79, 481.79, 481.79, 476.73, 476.73, 476.73, 481.79, 475.45, 476.73, 481.79, 476.73, 481.79, 475.45, 481.79, 476.73, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 476.73, 476.73, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 476.73, 476.73, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 476.73, 476.73, 476.73, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 475.45, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 472.57, 476.73, 481.79, 476.73, 475.45, 481.79, 481.79, 481.79, 473.78, 481.79, 481.79, 481.79, 481.79, 476.73, 467.17, 476.73, 481.79, 475.45, 476.73, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 467.17, 481.79, 467.17, 476.73, 481.79, 481.79, 481.79, 476.73, 481.79, 467.17, 467.17, 475.45, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 476.73, 475.45, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 475.45, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 476.73, 467.17, 467.17, 467.17, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 467.17, 481.79, 476.73, 475.45, 481.79, 476.73, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 467.17, 475.45, 481.79, 467.17, 481.79, 481.79, 467.17, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 476.73, 467.17, 481.79, 476.73, 481.79, 467.17, 476.73, 467.17, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 476.73, 481.79, 481.79, 476.73, 481.79, 476.73, 481.79, 481.79, 476.73, 481.79, 467.17, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 475.45, 476.73, 481.79, 481.79, 481.79, 481.79, 476.73, 475.45, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 467.17, 476.73, 476.73, 481.79, 481.79, 481.79, 476.73, 476.73, 481.79, 481.79, 481.79, 467.17, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 483.33, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 476.73, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 476.73, 476.73, 481.79, 481.79, 481.79, 475.45, 467.17, 481.79, 475.45, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 467.17, 481.79, 476.73, 476.73, 467.17, 475.45, 481.79, 481.79, 476.73, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 476.73, 476.73, 481.79, 481.79, 481.79, 467.17, 481.79, 481.79, 467.17, 475.45, 481.79, 467.17, 475.45, 481.79, 481.79, 476.73, 481.79, 467.17, 481.79, 481.79, 473.78, 475.45, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 467.17, 481.79, 467.17, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 475.45, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 481.79, 476.73, 481.79, 481.79, 481.79, 467.17, 481.79, 356.55, 382.49, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 382.49, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 356.55, 356.55, 380.89, 383.97, 383.97, 380.89, 383.97, 383.97, 382.49, 383.97, 383.97, 356.55, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 356.55, 356.55, 383.97, 383.97, 383.97, 382.49, 383.97, 382.49, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 365.79, 383.97, 383.97, 382.49, 383.97, 382.49, 382.49, 383.97, 383.97, 383.97, 382.49, 382.49, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 382.49, 382.49, 377.24, 380.89, 383.97, 356.55, 382.49, 383.97, 377.24, 382.49, 383.97, 382.49, 377.24, 382.49, 365.79, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 356.55, 383.97, 383.97, 382.49, 382.49, 380.89, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 377.24, 383.97, 356.55, 383.97, 382.49, 383.97, 383.97, 383.97, 356.55, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 356.55, 382.49, 383.97, 383.97, 383.97, 356.55, 383.97, 382.49, 383.97, 383.97, 382.49, 382.49, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 382.49, 382.49, 356.55, 383.97, 382.49, 382.49, 382.49, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 382.49, 383.97, 382.49, 382.49, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 382.49, 380.89, 383.97, 383.97, 383.97, 382.49, 382.49, 383.97, 383.97, 382.49, 383.97, 383.97, 377.24, 383.97, 383.97, 382.49, 382.49, 382.49, 383.97, 377.24, 383.97, 383.97, 382.49, 383.97, 356.55, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 382.49, 383.97, 383.97, 383.97, 377.24, 356.55, 383.97, 377.24, 383.97, 383.97, 383.97, 383.97, 356.55, 383.97, 382.49, 383.97, 382.49, 383.97, 382.49, 383.97, 383.97, 383.97, 382.49, 356.55, 383.97, 383.97, 383.97, 383.97, 382.49, 377.24, 382.49, 383.97, 383.97, 380.89, 383.97, 382.49, 383.97, 383.97, 382.49, 382.49, 382.49, 383.97, 383.97, 383.97, 382.49, 382.49, 365.79, 382.49, 383.97, 383.97, 382.49, 356.55, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 356.55, 382.49, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 356.55, 383.97, 383.97, 382.49, 382.49, 382.49, 383.97, 382.49, 382.49, 383.97, 383.97, 382.49, 365.79, 380.89, 383.97, 383.97, 356.55, 377.24, 383.97, 383.97, 383.97, 383.97, 383.97, 380.89, 382.49, 383.97, 356.55, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 356.55, 383.97, 356.55, 356.55, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 382.49, 377.24, 383.97, 383.97, 383.97, 383.97, 356.55, 377.24, 383.97, 382.49, 356.55, 383.97, 382.49, 383.97, 383.97, 383.97, 356.55, 383.97, 356.55, 383.97, 382.49, 383.97, 383.97, 383.97, 356.55, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 382.49, 383.97, 383.97, 383.97, 382.49, 383.97, 380.89, 383.97, 383.97, 356.55, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 356.55, 383.97, 383.97, 356.55, 383.97, 382.49, 383.97, 383.97, 383.97, 377.24, 383.97, 383.97, 383.97, 382.49, 383.97, 382.49, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 377.24, 383.97, 383.97, 382.49, 382.49, 382.49, 383.97, 382.49, 383.97, 382.49, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 356.55, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 356.55, 382.49, 382.49, 383.97, 382.49, 383.97, 383.97, 377.24, 383.97, 383.97, 383.97, 356.55, 382.49, 383.97, 382.49, 377.24, 383.97, 382.49, 382.49, 382.49, 382.49, 382.49, 383.97, 383.97, 365.79, 383.97, 383.97, 382.49, 383.97, 383.97, 356.55, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 382.49, 382.49, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 382.49, 356.55, 382.49, 383.97, 356.55, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 382.49, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 356.55, 383.97, 356.55, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 382.49, 356.55, 383.97, 382.49, 383.97, 383.97, 377.24, 383.97, 383.97, 383.97, 356.55, 383.97, 383.97, 383.97, 377.24, 383.97, 383.97, 383.97, 382.49, 382.49, 383.97, 382.49, 383.97, 356.55, 383.97, 382.49, 356.55, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 356.55, 382.49, 383.97, 383.97, 382.49, 382.49, 383.97, 382.49, 382.49, 383.97, 382.49, 382.49, 383.97, 383.97, 383.97, 356.55, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 382.49, 382.49, 383.97, 382.49, 383.97, 377.24, 382.49, 382.49, 382.49, 383.97, 383.97, 356.55, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 356.55, 383.97, 383.97, 356.55, 383.97, 383.97, 382.49, 380.89, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 356.55, 383.97, 383.97, 382.49, 382.49, 365.79, 383.97, 382.49, 382.49, 383.97, 356.55, 382.49, 382.49, 383.97, 383.97, 383.97, 377.24, 382.49, 383.97, 383.97, 383.97, 382.49, 356.55, 383.97, 382.49, 383.97, 382.49, 382.49, 382.49, 382.49, 356.55, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 382.49, 382.49, 382.49, 380.89, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 382.49, 383.97, 382.49, 383.97, 382.49, 356.55, 382.49, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 382.49, 356.55, 382.49, 383.97, 383.97, 383.97, 383.97, 356.55, 383.97, 382.49, 365.79, 382.49, 382.49, 382.49, 383.97, 383.97, 356.55, 383.97, 383.97, 383.97, 380.89, 383.97, 383.97, 383.97, 356.55, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 356.55, 382.49, 383.97, 383.97, 377.24, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 356.55, 382.49, 383.97, 383.97, 383.97, 383.97, 380.89, 382.49, 383.97, 382.49, 383.97, 383.97, 383.97, 380.89, 382.49, 382.49, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 382.49, 377.24, 382.49, 356.55, 356.55, 383.97, 377.24, 383.97, 382.49, 383.97, 382.49, 382.49, 383.97, 369.46, 356.55, 383.97, 383.97, 383.97, 356.55, 383.97, 382.49, 356.55, 382.49, 356.55, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 356.55, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 380.89, 383.97, 383.97, 356.55, 383.97, 382.49, 377.24, 383.97, 382.49, 383.97, 382.49, 383.97, 383.97, 383.97, 356.55, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 377.24, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 382.49, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 356.55, 383.97, 382.49, 383.97, 356.55, 382.49, 383.97, 383.97, 383.97, 382.49, 383.97, 356.55, 382.49, 383.97, 377.24, 382.49, 383.97, 382.49, 382.49, 383.97, 383.97, 382.49, 382.49, 382.49, 383.97, 383.97, 383.97, 382.49, 382.49, 382.49, 356.55, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 382.49, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 383.97, 383.97, 383.97, 383.97, 383.97, 377.24, 383.97, 383.97, 356.55, 382.49, 383.97, 383.97, 383.97, 382.49, 356.55, 383.97, 383.97, 383.97, 382.49, 382.49, 377.24, 383.97, 383.97, 356.55, 383.97, 383.97, 383.97, 383.97, 382.49, 383.97, 377.24, 365.79, 383.97, 383.97, 383.97, 382.49, 383.97, 377.24, 369.46, 382.49, 382.49, 382.49, 356.55, 383.97, 382.49, 382.49, 383.97, 383.97, 383.97, 382.49, 356.55, 377.24, 538.47, 522.18, 538.47, 516.28, 516.28, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 516.28, 538.47, 538.47, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 538.47, 538.47, 538.47, 516.28, 516.28, 522.18, 522.18, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 538.47, 516.28, 516.28, 538.47, 538.47, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 516.28, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 520.99, 538.47, 522.18, 522.18, 522.18, 538.47, 509.73, 516.28, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 522.18, 538.47, 538.47, 516.28, 522.18, 538.47, 522.18, 520.99, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 538.47, 516.28, 516.28, 522.18, 509.73, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 509.73, 538.47, 516.28, 522.18, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 538.47, 520.99, 522.18, 522.18, 509.73, 538.47, 522.18, 538.47, 522.18, 510.99, 522.18, 538.47, 516.28, 516.28, 522.18, 538.47, 538.47, 522.18, 538.47, 516.28, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 537.22, 516.28, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 516.28, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 516.28, 522.18, 516.28, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 516.28, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 516.28, 538.47, 516.28, 522.18, 538.47, 516.28, 522.18, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 516.28, 522.18, 538.47, 516.28, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 516.28, 538.47, 522.18, 522.18, 522.18, 509.73, 538.47, 538.47, 516.28, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 509.73, 516.28, 509.73, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 538.47, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 516.28, 538.47, 522.18, 522.18, 522.18, 522.18, 516.28, 538.47, 538.47, 516.28, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 516.28, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 537.22, 538.47, 522.18, 522.18, 509.73, 516.28, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 520.99, 509.73, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 538.47, 516.28, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 516.28, 522.18, 509.73, 538.47, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 520.99, 522.18, 522.18, 522.18, 516.28, 522.18, 538.47, 522.18, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 509.73, 516.28, 516.28, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 516.28, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 538.47, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 516.28, 522.18, 538.47, 522.18, 522.18, 509.73, 538.47, 509.73, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 230.66, 228.35, 230.66, 230.66, 228.35, 230.66, 234.66, 230.66, 230.66, 228.35, 232.37, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 228.35, 230.66, 230.66, 229.32, 230.66, 228.35, 230.66, 228.35, 230.66, 228.35, 230.66, 228.35, 239.11, 230.66, 228.35, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 228.35, 232.37, 228.35, 228.35, 230.66, 228.35, 232.37, 234.66, 230.66, 234.66, 230.66, 230.66, 230.66, 234.66, 230.66, 232.37, 228.35, 230.66, 230.66, 230.66, 228.35, 230.66, 228.35, 230.66, 228.35, 230.66, 232.37, 230.66, 230.66, 230.66, 228.35, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 229.32, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 228.35, 230.66, 228.35, 230.66, 230.66, 234.66, 230.66, 230.66, 228.35, 228.35, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 228.35, 228.35, 230.66, 228.35, 229.32, 230.66, 230.66, 232.37, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 232.37, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 228.35, 230.66, 228.35, 228.35, 228.35, 228.35, 228.35, 228.35, 234.66, 230.66, 232.37, 230.66, 230.66, 228.35, 228.35, 228.35, 230.66, 232.37, 230.66, 229.32, 230.66, 230.66, 230.66, 232.37, 230.66, 234.66, 228.35, 230.66, 229.32, 230.66, 230.66, 230.66, 232.37, 228.35, 229.32, 230.66, 230.66, 232.37, 228.35, 230.66, 228.35, 234.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 228.35, 230.66, 228.35, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 234.66, 230.66, 228.35, 230.66, 230.66, 230.66, 232.37, 230.66, 232.37, 230.66, 232.37, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 232.37, 230.66, 228.35, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 232.37, 230.66, 228.35, 232.37, 228.35, 230.66, 230.66, 228.35, 234.66, 230.66, 230.66, 228.35, 228.35, 230.66, 230.66, 228.35, 230.66, 230.66, 228.35, 228.35, 228.35, 230.66, 228.35, 230.66, 234.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 232.37, 229.32, 234.66, 228.35, 230.66, 230.66, 230.66, 228.35, 230.66, 228.35, 230.66, 230.66, 228.35, 230.66, 228.35, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 228.35, 230.66, 230.66, 228.35, 228.35, 230.66, 230.66, 230.66, 228.35, 228.35, 228.35, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 232.37, 230.66, 230.66, 239.11, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 232.37, 228.35, 230.66, 228.35, 234.66, 234.66, 230.66, 230.66, 228.35, 230.66, 230.66, 232.37, 228.35, 230.66, 230.66, 234.66, 230.66, 230.66, 230.66, 228.35, 228.35, 230.66, 232.37, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 232.37, 230.66, 230.66, 234.66, 230.66, 232.37, 230.66, 235.96, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 239.11, 230.66, 230.66, 228.35, 230.66, 228.35, 230.66, 228.35, 230.66, 228.35, 232.37, 230.66, 230.66, 232.37, 230.66, 230.66, 230.66, 230.66, 228.35, 228.35, 232.37, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 229.32, 228.35, 230.66, 234.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 232.37, 230.66, 234.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 232.37, 228.35, 230.66, 228.35, 230.66, 228.35, 228.35, 230.66, 230.66, 230.66, 230.66, 232.37, 228.35, 229.32, 228.35, 228.35, 228.35, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 228.35, 230.66, 230.66, 232.37, 230.66, 230.66, 230.66, 232.37, 230.66, 234.66, 228.35, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 234.66, 230.66, 230.66, 234.66, 230.66, 230.66, 228.35, 228.35, 230.66, 230.66, 232.37, 230.66, 230.66, 230.66, 228.35, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 228.35, 230.66, 228.35, 230.66, 228.35, 228.35, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 228.35, 228.35, 228.35, 228.35, 230.66, 230.66, 230.66, 228.35, 228.35, 230.66, 228.35, 228.35, 228.35, 230.66, 230.66, 228.35, 228.35, 228.35, 230.66, 232.37, 234.66, 228.35, 230.66, 230.66, 230.66, 230.66, 234.66, 230.66, 230.66, 230.66, 230.66, 230.66, 232.37, 230.66, 230.66, 228.35, 232.37, 230.66, 228.35, 230.66, 230.66, 228.35, 228.35, 230.66, 229.32, 228.35, 228.35, 230.66, 228.35, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 232.37, 230.66, 230.66, 228.35, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 232.37, 230.66, 230.66, 228.35, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 228.35, 230.66, 230.66, 232.37, 230.66, 230.66, 228.35, 232.37, 234.66, 228.35, 228.35, 234.66, 230.66, 228.35, 232.37, 230.66, 230.66, 239.11, 230.66, 228.35, 233.42, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 228.35, 228.35, 232.37, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 229.32, 230.66, 228.35, 230.66, 230.66, 230.66, 228.35, 234.66, 228.35, 232.37, 232.37, 230.66, 228.35, 230.66, 228.35, 230.66, 230.66, 230.66, 232.37, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 232.37, 232.37, 230.66, 228.35, 230.66, 230.66, 228.35, 234.66, 230.66, 230.66, 230.66, 235.96, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 232.37, 230.66, 230.66, 230.66, 228.35, 230.66, 228.35, 232.37, 230.66, 230.66, 230.66, 232.37, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 229.32, 228.35, 230.66, 230.66, 228.35, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 232.37, 228.35, 230.66, 228.35, 230.66, 230.66, 230.66, 228.35, 232.37, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 228.35, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 228.35, 230.66, 232.37, 230.66, 228.35, 230.66, 234.66, 230.66, 228.35, 228.35, 228.35, 230.66, 230.66, 230.66, 230.66, 234.66, 230.66, 228.35, 230.66, 228.35, 230.66, 232.37, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 234.66, 228.35, 230.66, 230.66, 228.35, 230.66, 232.37, 232.37, 228.35, 228.35, 232.37, 228.35, 230.66, 230.66, 228.35, 228.35, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 230.66, 232.37, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 229.32, 230.66, 230.66, 234.66, 228.35, 230.66, 228.35, 230.66, 230.66, 230.66, 232.37, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 232.37, 230.66, 230.66, 232.37, 230.66, 230.66, 230.66, 228.35, 232.37, 230.66, 230.66, 230.66, 228.35, 230.66, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 228.35, 230.66, 232.37, 228.35, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 230.66, 232.37, 230.66, 230.66, 228.35, 230.66, 230.66, 228.35, 232.37, 230.66, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 538.47, 538.47, 522.18, 509.73, 538.47, 522.18, 522.18, 509.73, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 510.99, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 509.73, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 509.73, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 516.28, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 509.73, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 509.73, 522.18, 522.18, 538.47, 538.47, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 516.28, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 516.28, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 538.47, 522.18, 538.47, 538.47, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 538.47, 509.73, 509.73, 509.73, 522.18, 522.18, 538.47, 538.47, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 538.47, 516.28, 522.18, 516.28, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 522.18, 538.47, 522.18, 509.73, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 516.28, 509.73, 538.47, 538.47, 509.73, 522.18, 522.18, 522.18, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 538.47, 522.18, 516.28, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 509.73, 516.28, 509.73, 516.28, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 538.47, 509.73, 522.18, 538.47, 538.47, 522.18, 509.73, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 538.47, 509.73, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 506.8, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 509.73, 522.18, 522.18, 522.18, 538.47, 538.47, 509.73, 522.18, 510.99, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 516.28, 522.18, 509.73, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 538.47, 516.28, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 538.47, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 509.73, 522.18, 509.73, 538.47, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 538.47, 538.47, 516.28, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 522.18, 538.47, 522.18, 538.47, 509.73, 522.18, 516.28, 522.18, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 509.73, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 538.47, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 538.47, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 538.47, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 510.99, 538.47, 538.47, 522.18, 509.73, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 509.73, 509.73, 538.47, 522.18, 509.73, 522.18, 522.18, 516.28, 538.47, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 538.47, 522.18, 516.28, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 516.28, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 510.99, 522.18, 522.18, 538.47, 509.73, 538.47, 522.18, 510.99, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 522.18, 509.73, 538.47, 538.47, 522.18, 538.47, 509.73, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 538.47, 522.18, 510.99, 522.18, 538.47, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 510.99, 522.18, 538.47, 522.18, 522.18, 510.99, 522.18, 510.99, 509.73, 538.47, 522.18, 510.99, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 510.99, 538.47, 510.99, 522.18, 522.18, 510.99, 538.47, 520.99, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 520.99, 538.47, 510.99, 510.99, 520.99, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 510.99, 510.99, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 510.99, 538.47, 538.47, 522.18, 510.99, 522.18, 522.18, 510.99, 520.99, 538.47, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 510.99, 538.47, 522.18, 522.18, 510.99, 538.47, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 522.18, 510.99, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 520.99, 522.18, 510.99, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 538.47, 522.18, 520.99, 538.47, 510.99, 510.99, 510.99, 522.18, 538.47, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 510.99, 538.47, 510.99, 510.99, 520.99, 510.99, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 510.99, 537.22, 522.18, 522.18, 510.99, 520.99, 522.18, 538.47, 522.18, 510.99, 522.18, 538.47, 522.18, 510.99, 522.18, 538.47, 510.99, 510.99, 510.99, 520.99, 522.18, 520.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 510.99, 538.47, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 510.99, 522.18, 538.47, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 520.99, 538.47, 522.18, 510.99, 510.99, 538.47, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 522.18, 522.18, 520.99, 538.47, 510.99, 510.99, 516.28, 510.99, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 510.99, 522.18, 510.99, 510.99, 520.99, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 538.47, 522.18, 522.18, 522.18, 510.99, 510.99, 520.99, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 537.22, 520.99, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 510.99, 522.18, 538.47, 522.18, 509.73, 510.99, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 520.99, 510.99, 522.18, 522.18, 538.47, 510.99, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 510.99, 522.18, 510.99, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 510.99, 510.99, 522.18, 522.18, 510.99, 510.99, 522.18, 510.99, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 510.99, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 510.99, 510.99, 510.99, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 510.99, 510.99, 522.18, 510.99, 522.18, 522.18, 520.99, 510.99, 522.18, 522.18, 522.18, 510.99, 510.99, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 510.99, 510.99, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 510.99, 522.18, 510.99, 538.47, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 538.47, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 510.99, 510.99, 520.99, 522.18, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 510.99, 522.18, 510.99, 522.18, 510.99, 520.99, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 510.99, 538.47, 509.73, 522.18, 510.99, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 537.22, 510.99, 522.18, 510.99, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 538.47, 510.99, 538.47, 538.47, 522.18, 522.18, 522.18, 510.99, 510.99, 510.99, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 520.99, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 510.99, 522.18, 538.47, 522.18, 522.18, 510.99, 522.18, 538.47, 522.18, 510.99, 510.99, 538.47, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 520.99, 522.18, 538.47, 510.99, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 520.99, 510.99, 522.18, 522.18, 520.99, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 510.99, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 520.99, 522.18, 510.99, 522.18, 510.99, 510.99, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 510.99, 538.47, 522.18, 522.18, 520.99, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 520.99, 510.99, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 520.99, 522.18, 522.18, 522.18, 538.47, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 520.99, 522.18, 510.99, 522.18, 522.18, 510.99, 510.99, 522.18, 522.18, 522.18, 520.99, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 522.18, 520.99, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 522.18, 510.99, 510.99, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 510.99, 538.47, 522.18, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 510.99, 510.99, 510.99, 522.18, 510.99, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 510.99, 510.99, 538.47, 510.99, 510.99, 522.18, 538.47] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["POSITION", "PARAMETER", "THRESHOLD", "VALUE", "STATUS", "SEQUENCE_NAME"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": ["NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "character", "attributes": {}, "value": ["curves_ratio", "intersection_ratio", "residuals_slope", "curves_bounds", "dynamic_ratio", "lambda", "beta", "delta.phi"] }, { "type": "double", "attributes": {}, "value": [1.001, "NA", "NA", 716, "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.68456846, 0.00554174, 0.12503681, 529.91001912, 1.52426091, 0.00021724, 0.5406764, 2103.4] }, { "type": "integer", "attributes": { "levels": { "type": "character", "attributes": {}, "value": ["OK"] }, "class": { "type": "character", "attributes": {}, "value": ["factor"] } }, "value": [1, 1, 1, 1, 1, 1, 1, 1] }, { "type": "logical", "attributes": {}, "value": [null, null, null, null, null, null, null, null] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.MC", "residuals", "trend.fit", "RF_nat.slid", "t_n.id", "I_n", "algorithm_error", "vslide_range", "num_slide_windows", "squared_residuals"] } }, "value": [ { "type": "double", "attributes": {}, "value": [522.18] }, { "type": "double", "attributes": {}, "value": [522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 516.28, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 516.28, 538.47, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 509.73, 516.28, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 520.99, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 509.73, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 538.47, 516.28, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 506.8, 522.18, 522.18, 516.28, 538.47, 522.18, 538.47, 522.18, 522.18, 516.28, 522.18, 516.28, 522.18, 538.47, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 516.28, 522.18, 522.18, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 506.8, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 516.28, 538.47, 522.18, 522.18, 516.28, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 538.47, 516.28, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 509.73, 522.18, 516.28, 522.18, 522.18, 516.28, 522.18, 538.47, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 538.47, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 509.73, 538.47, 522.18, 538.47, 538.47, 522.18, 516.28, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 516.28, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 538.47, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 538.47, 538.47, 522.18, 516.28, 522.18, 538.47, 506.8, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 538.47, 522.18, 522.18, 516.28, 538.47, 509.73, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 510.99, 538.47, 538.47, 522.18, 520.99, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 538.47, 538.47, 538.47, 538.47, 522.18, 510.99, 510.99, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 516.28, 522.18, 538.47, 522.18, 516.28, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 516.28, 522.18, 522.18, 509.73, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 538.47, 506.8, 522.18, 522.18, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 506.8, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 516.28, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 520.99, 538.47, 522.18, 516.28, 522.18, 538.47, 516.28, 522.18, 516.28, 538.47, 522.18, 538.47, 522.18, 516.28, 522.18, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 538.47, 506.8, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 516.28, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 516.28, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 516.28, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 538.47, 516.28, 538.47, 538.47, 522.18, 522.18, 509.73, 522.18, 522.18, 516.28, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 510.99, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 516.28, 522.18, 522.18, 522.18, 516.28, 509.73, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 516.28, 522.18, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 516.28, 522.18, 538.47, 510.99, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 509.73, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 538.47, 538.47, 516.28, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 538.47, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 516.28, 522.18, 516.28, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 538.47, 538.47, 509.73, 522.18, 516.28, 516.28, 522.18, 509.73, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 516.28, 516.28, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 509.73, 522.18, 538.47, 538.47, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 509.73, 522.18, 522.18, 522.18, 538.47, 538.47, 509.73, 538.47, 522.18, 509.73, 506.8, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 538.47, 522.18, 509.73, 522.18, 516.28, 538.47, 538.47, 506.8, 522.18, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 538.47, 538.47, 522.18, 516.28, 538.47, 506.8, 522.18, 522.18, 522.18, 509.73, 509.73, 522.18, 522.18, 538.47, 538.47, 522.18, 522.18, 516.28, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 522.18, 516.28, 522.18, 522.18, 538.47, 522.18, 516.28, 516.28, 522.18, 538.47, 538.47, 538.47, 522.18, 538.47, 522.18, 522.18, 522.18, 522.18, 522.18] }, { "type": "double", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["1", "2", "3", "4", "5"] } }, "value": [-0.16252525, 6.11747475, -2.07070707, -0.61252525, 2.13080808] }, { "type": "double", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["(Intercept)", "x"] } }, "value": [1.4624545, -0.12503681] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [5, 2] } }, "value": [522.17538859, 523.77363207, 525.31506369, 526.57456343, 528.31177564, 1469.48747475, 1481.34747475, 1470.64747475, 1466.69747475, 1469.78080808] }, { "type": "integer", "attributes": {}, "value": [385] }, { "type": "double", "attributes": {}, "value": [43.54747475] }, { "type": "double", "attributes": {}, "value": [93.01145652] }, { "type": "double", "attributes": {}, "value": [-162.45252525, 161.54747475] }, { "type": "double", "attributes": {}, "value": [10] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [519, 1] } }, "value": [1900975.09276957, 1904961.1523359, 1884923.57968641, 1867851.87531772, 1843069.99334095, 1822548.87222148, 1811856.44934381, 1810274.46755222, 1795094.4141918, 1744571.03895958, 1718261.04525588, 1686777.67968136, 1650590.44008338, 1607681.91583606, 1555534.97541003, 1528456.65864504, 1479864.3234107, 1447619.67261171, 1407499.3873208, 1409909.14165609, 1387139.8182443, 1371653.31195239, 1366518.53707191, 1344410.90497966, 1314953.63405952, 1284674.32788376, 1267764.52204779, 1254005.02818113, 1262504.85725522, 1276319.83625858, 1269433.42781751, 1238710.52212991, 1231614.12779455, 1207629.73150969, 1194305.65629857, 1170215.87404403, 1181182.01355413, 1145913.50631575, 1119756.46123932, 1074470.51460194, 1059803.64732114, 1029184.37909689, 1025706.47886356, 1026347.30731305, 1016810.42452012, 1003397.10947351, 993667.33661627, 965223.94218973, 943388.23078106, 945312.42058645, 951357.64433913, 942834.26261657, 927720.31198149, 930700.02101037, 914228.58423427, 864853.54851844, 843907.99166996, 838157.97783359, 818575.6589575, 806263.44536558, 802208.26024638, 814333.36178275, 805470.66901911, 804996.10524571, 780797.13204161, 784021.59540423, 778525.38551939, 765517.24369037, 755508.77528599, 763945.9150012, 753596.75217797, 722207.57813757, 699127.02163729, 675384.08842921, 647248.0846622, 657913.64230261, 647531.30854907, 653085.38283089, 638374.57465917, 632922.81990699, 596694.22957971, 594303.4042181, 591210.85579468, 588968.37535764, 600284.60322633, 613906.26929097, 613793.51513421, 613955.8609041, 622552.11536505, 608330.93575899, 592249.21512711, 572403.99443438, 560092.84747882, 538185.68262798, 532120.53243942, 526181.04147466, 534002.95373022, 527770.28448039, 526415.53868645, 517962.42169251, 510812.78846321, 496140.39677585, 483008.19245391, 486143.78333786, 481326.82080588, 480922.53782507, 476844.94794004, 471817.31193118, 463587.96832186, 457379.59739376, 439152.37624001, 444159.55846886, 444985.90059534, 443145.27641127, 423762.07695875, 431710.32308299, 437169.09457182, 425851.06065263, 411524.25692214, 418020.58083325, 419745.23866216, 395592.30020189, 411581.77597361, 421142.67180997, 417724.48399482, 400169.53822592, 394801.49785304, 382040.53582638, 367780.74297891, 358243.95501527, 359629.45473371, 367611.85419345, 347630.20680833, 342536.40960799, 347886.79682387, 329314.5246286, 319939.24919722, 324144.54119114, 321742.91741068, 311691.91730799, 324448.23146557, 318854.07708691, 319619.41749116, 308923.96441822, 309444.73393003, 306980.54498424, 296441.95604135, 285565.73630633, 287772.04420328, 284132.85110569, 279898.22577673, 277581.89929895, 275407.39995114, 272014.49351731, 265173.43770345, 261286.1797085, 263942.07496507, 266656.03491254, 260931.64027567, 254422.92361607, 257157.96852213, 250122.2904723, 247566.75289192, 249107.89727946, 249348.08065574, 243205.2198385, 239483.41646342, 234251.88905727, 227627.66105054, 229358.68633689, 220447.83326691, 221447.01183156, 217225.20821203, 214777.31697365, 216508.52041068, 216446.00809553, 209617.98474812, 210254.70378313, 209241.44252903, 196308.66687011, 194885.68131298, 197462.45488431, 193379.18656107, 188266.48712898, 194294.49635185, 188850.51644342, 184860.9379255, 184292.68484339, 182802.48052967, 171058.27914615, 169451.08337645, 158373.84835423, 148747.07516051, 147687.34512415, 155569.94371843, 151948.04025782, 153270.54799528, 151556.06002861, 146660.29767609, 138822.476467, 134155.73989932, 136245.9071026, 145863.50340833, 145569.77652247, 143692.42900297, 137791.48542822, 135556.46166054, 125266.74485313, 115687.75497536, 105762.20567741, 113342.79552334, 112793.48728832, 108119.28131997, 101976.2405725, 111069.58601419, 106686.45871533, 111410.9907479, 109282.98008292, 113846.02758797, 101424.76187686, 101635.45360419, 92486.77118046, 91270.33357945, 91978.54876632, 100515.17556632, 101187.00348349, 97456.31539384, 98375.10989662, 105516.0224808, 103118.61179561, 99373.18429378, 100944.31092358, 92789.39424861, 82895.84885809, 86612.33434529, 88041.58345584, 82862.35117133, 90925.9882649, 85365.69943657, 77281.74410039, 73969.5745112, 78685.91920716, 74877.09362362, 75017.63802395, 78928.35748572, 77338.6167231, 73251.5969534, 70270.66861248, 70692.00249978, 69284.60165447, 70568.70212547, 73069.24806443, 72126.7632196, 73835.70229266, 74900.88333205, 68951.44782498, 72911.78976101, 69308.16258278, 65928.15644406, 63064.20367134, 59599.04774878, 49443.20802732, 50763.85957547, 49448.00176806, 44673.89482092, 48586.94372976, 50770.85431244, 46477.13039729, 44052.37791783, 40418.2524542, 37113.81878475, 31879.61354637, 36172.92262212, 38079.03522819, 36949.05213021, 33896.0474262, 37309.14479993, 34238.29870465, 36822.63657204, 35739.49012614, 37754.94770135, 36064.26890174, 37708.13400924, 35864.4473115, 37530.47388847, 38554.34582212, 36193.91106637, 30957.46105964, 27825.47406936, 25551.42293437, 23231.07779484, 23713.20350035, 27036.22467547, 26415.16886683, 29255.55038265, 27480.63058795, 26043.52396237, 19845.28663525, 19181.46565983, 19414.96812347, 21174.89196791, 20804.08101, 22253.65019788, 24586.48849418, 24938.49389721, 25732.47797802, 25138.2941026, 26026.43636792, 24368.54918374, 24006.82546623, 22519.25474345, 19576.40013065, 19980.11735686, 21233.21296628, 18280.84631477, 17826.68503822, 19908.64587661, 19593.3490975, 16538.20717057, 14528.28283555, 12245.95274913, 10464.23190217, 9946.74729716, 10891.32191231, 10772.1107214, 11176.88717124, 10607.96464073, 11304.78085251, 10748.68825086, 9961.10752225, 8593.51167011, 8332.0236398, 7073.40138273, 6027.84354906, 6043.63215411, 9465.5602366, 10196.09262515, 9222.6325467, 8471.55095209, 9280.04618744, 6383.55468071, 4776.90629889, 4745.16166825, 4686.97893795, 3256.76559451, 2930.86257263, 3965.62328879, 3372.16243525, 3477.46336253, 3756.30083323, 3429.11645811, 3068.60815238, 3284.65851899, 3781.79842707, 3573.02042303, 3717.53571095, 3784.58096221, 3506.9011451, 2266.01489123, 1776.07347709, 1848.08801951, 1361.42440966, 1025.40707035, 1285.9041653, 608.56835823, 542.66162204, 1053.68816009, 1354.42393711, 1143.51252903, 775.69257246, 893.94674434, 402.47281471, 583.78167936, 216.29262077, 494.43926825, 208.61624872, 246.41143929, 541.89466831, 1008.08331747, 645.37541747, 207.77409727, 567.89810164, 698.59521018, 303.88305362, 45.04316877, 637.93184453, 571.65741018, 740.29581673, 1291.74139047, 806.92834603, 468.27923895, 498.12331909, 355.50424636, 549.55084737, 560.03377667, 432.97648879, 122.91515141, 962.85136151, 1085.69500293, 1360.71031808, 2135.6918504, 2071.46237408, 1864.29629159, 1631.60107947, 1410.94203671, 651.03832863, 778.07440231, 2509.2242289, 1906.46848749, 2082.3282559, 2849.9815155, 2305.62396741, 2230.69321724, 2908.13033744, 2568.34924311, 2473.7935814, 2902.4728594, 2726.04487253, 3543.07854122, 3554.07274122, 4027.28458778, 4884.35930596, 3096.39695747, 4217.17070697, 6530.53533323, 6234.64115141, 8002.69168428, 8201.01941003, 5983.67141054, 6484.34304589, 7564.30432468, 8024.48469788, 7601.4235403, 7222.98357666, 4619.85600293, 5884.78046757, 5653.06101265, 6709.76114733, 6969.14520895, 6759.29857763, 7151.50297662, 7286.32502515, 6818.75720677, 7395.80399297, 6762.00985559, 5472.0150614, 7091.11386923, 7202.46871665, 8874.40694406, 9614.93871246, 9707.42184446, 9829.52572076, 8873.98154333, 6608.18062313, 7935.63147969, 6993.10635107, 5359.92829855, 6888.21106623, 7338.00447128, 7987.38310091, 10573.87697767, 11754.44128474, 14949.96599585, 15297.39414308, 14788.58312692, 12724.89023979, 12288.46129299, 11770.61055663, 11594.67966698, 11965.09110018, 13237.73819202, 15157.78900892, 16014.73418808, 16891.28443063, 15380.49921808, 17482.74270966, 16306.76581673, 13293.42391269, 14864.72377504, 17994.31538514, 16554.22397134, 15785.41733155, 17207.73495074, 14673.91328031, 15393.9633793, 17808.72420657, 18379.34753929, 20679.10425343, 22540.2840504, 23625.52379922, 21203.38503053, 21821.41752414, 23156.15624886, 23868.47719397, 22193.1442768, 22009.95533839, 20740.1027533, 19134.80776341, 19536.23422195, 20395.78744414, 22881.3663532, 21730.76799159, 24542.4747724, 25022.42249866, 25517.05159484, 23296.98385343, 21680.81844232, 21093.07632837, 24925.60194034, 24785.50611298, 26876.0466443, 30489.46149884, 28179.39485926, 26739.06483426, 28296.70753283, 27607.83052172, 27643.30186735, 30377.63060809, 26316.83120647] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_IRSAR.RF"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "De.MC", "test_parameters", "slide"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["DE", "DE.ERROR", "DE.LOWER", "DE.UPPER", "DE.STATUS", "RF_NAT.LIM", "RF_REG.LIM", "POSITION", "DATE", "SEQUENCE_NAME"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "character", "attributes": {}, "value": ["OK"] }, { "type": "character", "attributes": {}, "value": ["1:5"] }, { "type": "character", "attributes": {}, "value": ["1:524"] }, { "type": "integer", "attributes": {}, "value": ["NA"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] } ] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["POSITION", "PARAMETER", "THRESHOLD", "VALUE", "STATUS", "SEQUENCE_NAME"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": ["NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "character", "attributes": {}, "value": ["curves_ratio", "intersection_ratio", "residuals_slope", "curves_bounds", "dynamic_ratio", "lambda", "beta", "delta.phi"] }, { "type": "double", "attributes": {}, "value": [1.001, "NA", "NA", 716, "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.68456846, 0.00554174, "NA", "NA", 1.52426091, 0.00021822, 0.54187185, 2103.4] }, { "type": "integer", "attributes": { "levels": { "type": "character", "attributes": {}, "value": ["OK"] }, "class": { "type": "character", "attributes": {}, "value": ["factor"] } }, "value": [1, 1, 1, 1, 1, 1, 1, 1] }, { "type": "logical", "attributes": {}, "value": [null, null, null, null, null, null, null, null] } ] }, { "type": "list", "attributes": {}, "value": [] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_IRSAR.RF"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/calc_AverageDose.md0000644000176200001440000005050714762554470022667 0ustar liggesusers# check class and length of output { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "dstar", "hist"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["AVERAGE_DOSE", "AVERAGE_DOSE.SE", "SIGMA_D", "SIGMA_D.SE", "IC_AVERAGE_DOSE.LEVEL", "IC_AVERAGE_DOSE.LOWER", "IC_AVERAGE_DOSE.UPPER", "IC_SIGMA_D.LEVEL", "IC_SIGMA_D.LOWER", "IC_SIGMA_D.UPPER", "L_MAX"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [65.3597] }, { "type": "double", "attributes": {}, "value": [2.43138495] }, { "type": "double", "attributes": {}, "value": [0.3092] }, { "type": "double", "attributes": {}, "value": [0.04309365] }, { "type": "double", "attributes": {}, "value": [0.95] }, { "type": "double", "attributes": {}, "value": [60.7974] }, { "type": "double", "attributes": {}, "value": [70.0725] }, { "type": "double", "attributes": {}, "value": [0.95] }, { "type": "double", "attributes": {}, "value": [0.2339] }, { "type": "double", "attributes": {}, "value": [0.3958] }, { "type": "double", "attributes": {}, "value": [-19.25095607] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["V1", "V2"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500] } }, "value": [ { "type": "double", "attributes": {}, "value": [66.5876, 66.7955, 70.9804, 63.6395, 67.3952, 67.6182, 66.4566, 68.1005, 62.968, 67.6188, 64.9758, 65.3597, 64.6981, 65.9025, 64.2057, 63.6074, 59.1594, 66.8517, 64.1858, 67.3188, 65.2914, 64.2845, 63.1369, 68.7197, 65.6086, 68.1818, 65.2196, 61.2102, 65.3585, 66.1093, 68.5514, 64.7204, 64.3716, 70.2089, 66.9049, 62.2926, 63.184, 64.5146, 68.8185, 67.2285, 62.4804, 65.4836, 63.271, 69.6381, 60.7974, 66.2588, 69.4847, 63.6991, 66.208, 66.9678, 64.9522, 65.8193, 65.2318, 66.7076, 65.2887, 63.8303, 67.8897, 64.5575, 68.5637, 67.4235, 62.1709, 66.1648, 64.5778, 67.5278, 66.5104, 64.4199, 63.0543, 64.1268, 65.3612, 65.9878, 60.4184, 61.9833, 64.5475, 59.6951, 66.4472, 70.506, 63.7432, 64.0225, 66.7009, 67.2959, 61.6883, 62.9455, 62.564, 62.8823, 63.4147, 58.683, 68.6134, 67.84, 63.1895, 68.9356, 64.8493, 64.1588, 61.5761, 61.0346, 66.5118, 69.5652, 65.7168, 66.1557, 62.6927, 64.0075, 67.4399, 65.5398, 62.8044, 62.8768, 62.4003, 68.1231, 68.488, 66.4076, 70.6174, 63.3713, 68.0816, 64.7939, 64.7028, 67.8259, 67.1416, 70.1138, 68.9846, 64.403, 64.2031, 64.8501, 64.4389, 66.5879, 66.5673, 65.1181, 66.8738, 66.9531, 62.4518, 62.8787, 65.6051, 63.7946, 66.3543, 63.8022, 67.5923, 64.2122, 62.0625, 60.2081, 65.8669, 65.7814, 60.6235, 67.313, 64.7278, 66.7771, 65.9316, 66.1036, 68.0403, 64.853, 66.4307, 67.0735, 64.2899, 69.062, 62.2738, 65.5088, 68.0517, 72.6397, 64.7864, 66.3332, 63.8498, 67.1921, 62.2595, 67.4321, 69.8867, 67.842, 69.4358, 63.4744, 66.4941, 69.601, 65.4057, 66.5138, 64.1101, 68.1981, 67.3082, 63.0646, 63.0427, 62.2646, 63.2332, 64.0339, 67.1204, 63.0088, 67.0372, 64.3574, 64.2077, 62.2577, 63.7428, 69.1994, 62.331, 67.418, 61.722, 67.6091, 66.6218, 61.5994, 66.0446, 67.5587, 66.3621, 65.9893, 61.2415, 64.2092, 66.6927, 62.6289, 69.9659, 63.7168, 63.4067, 65.7539, 69.9292, 65.7032, 66.2052, 64.3413, 68.1296, 67.1364, 65.1915, 65.1839, 68.7532, 69.5821, 62.8018, 66.3763, 62.9687, 67.1331, 64.9499, 63.8307, 64.2285, 63.8426, 67.6958, 65.2854, 61.9038, 63.9311, 68.5107, 64.8253, 58.5602, 64.2901, 63.5468, 63.8168, 62.8391, 66.1393, 68.647, 63.4805, 66.3033, 66.3695, 63.5157, 65.2564, 66.0916, 62.3586, 64.2348, 62.1674, 64.5388, 71.6735, 61.512, 67.0196, 66.0013, 64.9912, 62.5333, 67.8342, 64.3036, 63.2653, 68.4039, 65.4179, 68.3229, 67.8274, 61.4813, 64.5779, 64.6031, 64.4792, 67.4418, 65.4786, 65.1525, 63.5208, 65.6179, 67.4396, 67.537, 63.8451, 68.8084, 64.1716, 65.8697, 65.4128, 65.4337, 65.7463, 62.391, 66.7657, 65.206, 67.1751, 64.6279, 65.6947, 63.7674, 64.3372, 59.79, 62.9629, 68.5584, 64.818, 63.1253, 63.7838, 64.6931, 66.5463, 64.8551, 64.0645, 65.5024, 66.2487, 61.236, 67.2854, 62.6179, 65.8479, 66.9412, 62.7759, 66.879, 64.2398, 67.065, 63.8315, 65.7182, 67.1265, 61.0904, 63.0973, 65.0373, 65.6495, 69.7219, 68.6786, 65.5516, 68.6462, 65.1443, 63.8372, 63.8248, 61.853, 64.8288, 69.5987, 68.8496, 65.1355, 64.6401, 65.11, 66.5843, 69.3308, 64.3865, 64.898, 70.1999, 66.7472, 67.0143, 65.049, 63.7154, 68.2119, 66.2594, 66.4078, 67.3508, 63.4899, 65.8152, 60.8754, 59.1967, 69.9453, 63.0114, 66.3755, 65.092, 70.3479, 62.2057, 65.2765, 65.7903, 68.8156, 64.63, 63.6041, 66.2533, 65.3871, 66.3709, 69.2181, 63.978, 69.9132, 62.7557, 65.4847, 59.365, 63.8279, 64.5753, 65.7019, 64.6396, 67.4839, 60.3704, 62.6999, 67.4379, 64.404, 62.2193, 63.6475, 62.1744, 60.6909, 63.4332, 63.9452, 64.4074, 64.0397, 65.7094, 66.9315, 65.8456, 68.0317, 66.9452, 64.83, 65.0822, 64.5785, 63.3901, 63.1721, 68.1634, 65.0617, 61.9417, 68.5553, 67.9261, 64.76, 64.3094, 61.8738, 66.4547, 60.2737, 67.2808, 68.5068, 62.1896, 69.3745, 65.051, 65.3598, 64.1402, 64.2996, 64.4376, 64.1236, 62.2975, 66.1948, 64.2574, 70.0401, 65.9057, 64.8244, 58.7024, 66.3283, 64.1744, 66.7579, 62.1337, 60.0564, 64.5516, 65.3956, 60.8219, 67.9047, 63.7477, 65.9333, 67.0069, 64.7751, 63.6109, 64.3414, 58.8976, 68.7887, 67.8393, 63.5633, 61.4758, 65.9074, 66.4206, 66.9182, 66.6359, 65.1297, 68.276, 63.6576, 60.9016, 63.4159, 63.163, 64.3098, 67.1499, 64.2515, 62.3714, 64.1076, 70.0725, 67.7231, 63.5631, 69.2962, 63.9432, 69.5512, 68.1035, 67.7094, 65.6703, 68.3016, 62.3318, 65.6217, 64.3027, 64.1706, 66.9435, 66.6356, 65.6742, 69.1282, 64.9748, 67.146, 67.4058, 65.2482, 68.0583, 67.9995, 62.6224, 68.1134, 66.5711, 64.5472, 65.0423, 66.5277, 66.8334, 62.2148, 66.0533, 61.8399, 66.854, 69.0087, 66.9894, 65.6071, 62.1774, 64.2772, 65.3042, 63.1781, 64.4667, 69.1574, 63.1317, 63.802, 69.4682, 63.8207, 65.2897, 67.7302] }, { "type": "double", "attributes": {}, "value": [0.2763, 0.256, 0.3059, 0.3478, 0.2973, 0.2371, 0.319, 0.2714, 0.3484, 0.3342, 0.3388, 0.3295, 0.3479, 0.287, 0.3838, 0.2831, 0.31, 0.2914, 0.2835, 0.3587, 0.3205, 0.3491, 0.2621, 0.3433, 0.2522, 0.2541, 0.3154, 0.3867, 0.3027, 0.2621, 0.2963, 0.2779, 0.2905, 0.2649, 0.2644, 0.3082, 0.304, 0.3134, 0.2391, 0.2754, 0.3508, 0.2598, 0.3564, 0.2571, 0.294, 0.2571, 0.3349, 0.2771, 0.3315, 0.2208, 0.2534, 0.2584, 0.276, 0.3141, 0.2093, 0.2837, 0.2664, 0.2434, 0.3369, 0.2114, 0.3134, 0.3301, 0.2859, 0.2551, 0.3561, 0.3209, 0.2726, 0.2592, 0.333, 0.3, 0.301, 0.2846, 0.3008, 0.2339, 0.3085, 0.2393, 0.3272, 0.3307, 0.2486, 0.3122, 0.2988, 0.2599, 0.3305, 0.2753, 0.2701, 0.3413, 0.3897, 0.2421, 0.2704, 0.235, 0.318, 0.2786, 0.3477, 0.3031, 0.2573, 0.1732, 0.3205, 0.3418, 0.3014, 0.2898, 0.3102, 0.3122, 0.368, 0.3336, 0.3766, 0.2653, 0.3061, 0.2841, 0.2989, 0.3051, 0.2749, 0.3219, 0.1811, 0.2744, 0.3279, 0.282, 0.3456, 0.283, 0.2414, 0.3338, 0.3451, 0.2798, 0.3414, 0.3426, 0.3082, 0.3343, 0.3174, 0.3307, 0.294, 0.3259, 0.2559, 0.381, 0.3307, 0.2819, 0.2877, 0.3223, 0.3272, 0.3065, 0.3129, 0.2637, 0.3644, 0.2491, 0.3316, 0.3075, 0.2784, 0.2804, 0.2973, 0.3237, 0.3312, 0.2777, 0.327, 0.2896, 0.3409, 0.2657, 0.312, 0.3309, 0.2928, 0.2276, 0.3273, 0.2631, 0.3138, 0.2625, 0.3419, 0.3047, 0.3442, 0.2087, 0.2702, 0.2997, 0.3838, 0.2726, 0.3044, 0.3777, 0.3557, 0.2642, 0.2982, 0.3112, 0.2893, 0.378, 0.2574, 0.2886, 0.2685, 0.3938, 0.3039, 0.3059, 0.2664, 0.2444, 0.2955, 0.2498, 0.3141, 0.3264, 0.3267, 0.2817, 0.3177, 0.4008, 0.3947, 0.3354, 0.2632, 0.3643, 0.2801, 0.2708, 0.3259, 0.2824, 0.2928, 0.3086, 0.3453, 0.2972, 0.3113, 0.2671, 0.2523, 0.2926, 0.2419, 0.3117, 0.2996, 0.2813, 0.3487, 0.3315, 0.28, 0.2876, 0.3122, 0.3328, 0.2701, 0.2631, 0.3644, 0.3262, 0.3234, 0.2543, 0.3842, 0.3249, 0.2654, 0.3596, 0.3576, 0.2194, 0.2475, 0.3455, 0.2755, 0.3284, 0.3151, 0.3267, 0.3037, 0.3187, 0.2728, 0.2926, 0.3056, 0.204, 0.4288, 0.3804, 0.313, 0.2414, 0.3152, 0.1844, 0.3229, 0.3118, 0.2405, 0.2608, 0.149, 0.2685, 0.3233, 0.3088, 0.2912, 0.2749, 0.296, 0.382, 0.3837, 0.2693, 0.3579, 0.3043, 0.2867, 0.3652, 0.264, 0.3886, 0.2522, 0.3394, 0.2958, 0.2827, 0.2847, 0.35, 0.3219, 0.27, 0.3315, 0.3205, 0.3799, 0.3497, 0.3946, 0.2882, 0.2931, 0.2454, 0.279, 0.3528, 0.2763, 0.2256, 0.3146, 0.2788, 0.3165, 0.385, 0.3048, 0.2933, 0.337, 0.2872, 0.2968, 0.239, 0.3518, 0.3107, 0.2951, 0.3629, 0.2787, 0.362, 0.3119, 0.3428, 0.363, 0.2694, 0.3027, 0.2492, 0.3163, 0.2782, 0.2699, 0.3539, 0.3002, 0.3207, 0.346, 0.2468, 0.277, 0.3908, 0.2832, 0.3308, 0.2955, 0.3228, 0.3021, 0.3384, 0.268, 0.2923, 0.2932, 0.3041, 0.3526, 0.192, 0.2937, 0.3664, 0.2637, 0.2933, 0.322, 0.4013, 0.3709, 0.2323, 0.3254, 0.2748, 0.3328, 0.2498, 0.322, 0.3651, 0.2505, 0.2308, 0.3541, 0.3164, 0.29, 0.2637, 0.2154, 0.2404, 0.3042, 0.269, 0.381, 0.2861, 0.316, 0.3574, 0.3162, 0.2452, 0.269, 0.2684, 0.2992, 0.3383, 0.3387, 0.2749, 0.3706, 0.3049, 0.3203, 0.3127, 0.3383, 0.2928, 0.3325, 0.3603, 0.245, 0.3558, 0.288, 0.3068, 0.3504, 0.3373, 0.3302, 0.2809, 0.3013, 0.2684, 0.2699, 0.3586, 0.3009, 0.2752, 0.2559, 0.3136, 0.3267, 0.2959, 0.2725, 0.3517, 0.2284, 0.2816, 0.3243, 0.3157, 0.2951, 0.253, 0.2892, 0.308, 0.3253, 0.284, 0.3343, 0.3457, 0.2623, 0.2295, 0.2635, 0.2875, 0.2982, 0.3891, 0.2586, 0.3053, 0.3647, 0.3581, 0.3513, 0.3499, 0.2608, 0.2208, 0.3773, 0.2962, 0.2859, 0.3058, 0.3489, 0.3082, 0.316, 0.2227, 0.2579, 0.3097, 0.3359, 0.3564, 0.3716, 0.3011, 0.271, 0.3577, 0.2686, 0.3073, 0.3672, 0.2578, 0.2403, 0.2897, 0.3056, 0.3805, 0.2834, 0.28, 0.3284, 0.3512, 0.2624, 0.3297, 0.3416, 0.3285, 0.2838, 0.2948, 0.2938, 0.3001, 0.3295, 0.3814, 0.3309, 0.2831, 0.2798, 0.2405, 0.2795, 0.2653, 0.299, 0.2927, 0.2923, 0.2657, 0.2831, 0.2964, 0.3582, 0.2905, 0.2657, 0.3958, 0.3299, 0.3339, 0.2543, 0.3404, 0.2441, 0.3321, 0.277, 0.2523, 0.257, 0.2139, 0.2702, 0.2595, 0.2921, 0.2828, 0.2715, 0.1634, 0.3365, 0.2718, 0.236, 0.3062, 0.3283, 0.2383] } ] }, { "type": "list", "attributes": {}, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["breaks", "counts", "density", "mids", "xname", "equidist"] }, "class": { "type": "character", "attributes": {}, "value": ["histogram"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] }, { "type": "integer", "attributes": {}, "value": [1, 1, 4, 5, 9, 10, 13, 10, 3] }, { "type": "double", "attributes": {}, "value": [0.00178571, 0.00178571, 0.00714286, 0.00892857, 0.01607143, 0.01785714, 0.02321429, 0.01785714, 0.00535714] }, { "type": "double", "attributes": {}, "value": [15, 25, 35, 45, 55, 65, 75, 85, 95] }, { "type": "character", "attributes": {}, "value": ["data_list[[x]]"] }, { "type": "logical", "attributes": {}, "value": [true] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["breaks", "counts", "density", "mids", "xname", "equidist"] }, "class": { "type": "character", "attributes": {}, "value": ["histogram"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73] }, { "type": "integer", "attributes": {}, "value": [4, 5, 11, 18, 43, 63, 87, 74, 68, 54, 38, 24, 9, 1, 1] }, { "type": "double", "attributes": {}, "value": [0.008, 0.01, 0.022, 0.036, 0.086, 0.126, 0.174, 0.148, 0.136, 0.108, 0.076, 0.048, 0.018, 0.002, 0.002] }, { "type": "double", "attributes": {}, "value": [58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5, 70.5, 71.5, 72.5] }, { "type": "character", "attributes": {}, "value": ["data_list[[x]]"] }, { "type": "logical", "attributes": {}, "value": [true] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["breaks", "counts", "density", "mids", "xname", "equidist"] }, "class": { "type": "character", "attributes": {}, "value": ["histogram"] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.14, 0.16, 0.18, 0.2, 0.22, 0.24, 0.26, 0.28, 0.3, 0.32, 0.34, 0.36, 0.38, 0.4, 0.42, 0.44] }, { "type": "integer", "attributes": {}, "value": [1, 2, 3, 7, 17, 48, 82, 87, 80, 78, 51, 21, 20, 2, 1] }, { "type": "double", "attributes": {}, "value": [0.1, 0.2, 0.3, 0.7, 1.7, 4.8, 8.2, 8.7, 8, 7.8, 5.1, 2.1, 2, 0.2, 0.1] }, { "type": "double", "attributes": {}, "value": [0.15, 0.17, 0.19, 0.21, 0.23, 0.25, 0.27, 0.29, 0.31, 0.33, 0.35, 0.37, 0.39, 0.41, 0.43] }, { "type": "character", "attributes": {}, "value": ["data_list[[x]]"] }, { "type": "logical", "attributes": {}, "value": [true] } ] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_AverageDose"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/plot_AbanicoPlot/0000755000176200001440000000000014762554470022420 5ustar liggesusersLuminescence/tests/testthat/_snaps/plot_AbanicoPlot/abanico-expected.svg0000644000176200001440000005664614762554470026355 0ustar liggesusers Standardised estimate D e distribution 0 5 10 15 Precision Relative standard error (%) 20 10 6.7 -2 0 2 20 40 60 80 100 120 D e [Gy] 0 0.016 Density (bw 0.15) n = 62 | in 2 sigma = 41.9 % Luminescence/tests/testthat/_snaps/calc_CentralDose.md0000644000176200001440000033507714762554470022715 0ustar liggesusers# check functionality { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "data", "args", "profile"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["de", "de_err", "OD", "OD_err", "rel_OD", "rel_OD_err", "Lmax"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [65.70928553] }, { "type": "double", "attributes": {}, "value": [3.05344327] }, { "type": "double", "attributes": {}, "value": [22.79495348] }, { "type": "double", "attributes": {}, "value": [2.27273552] }, { "type": "double", "attributes": {}, "value": [34.69061228] }, { "type": "double", "attributes": {}, "value": [3.45877376] }, { "type": "double", "attributes": {}, "value": [31.850459] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ED", "ED_Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [19.7, 26.2, 31.48, 31.95, 36.17, 37.05, 42.58, 47.23, 47.61, 48.1, 48.11, 50.73, 51.51, 52.06, 52.28, 53.6, 53.96, 55.54, 56.84, 58.97, 61.14, 61.58, 63.24, 64.5, 64.58, 64.76, 65.57, 66.43, 66.8, 66.84, 70.68, 71.46, 71.6, 74.12, 74.73, 75.67, 75.75, 76.21, 76.92, 77.5, 79.01, 79.27, 79.78, 82.86, 83.19, 83.87, 85.26, 86.36, 86.58, 88.7, 89.1, 89.52, 89.53, 93.27, 97.77, 98.64, 102.63, 103.57, 106.23, 107.98, 111.46, 119.06] }, { "type": "double", "attributes": {}, "value": [2.14, 2.04, 2.34, 2.34, 2.95, 3.15, 8.22, 3.23, 4.43, 4.43, 3.14, 9.64, 6.76, 5.6, 10.27, 4.69, 3.78, 4.37, 6.87, 4.63, 4.05, 4.76, 5.58, 8.11, 6.91, 7.78, 12.4, 5.82, 8.61, 10.33, 8.87, 9.59, 10.32, 6.33, 10.16, 10.29, 12.47, 5.75, 7.89, 8.78, 7.97, 7.54, 5.4, 10.36, 11.04, 9.9, 9.84, 12.34, 9.5, 14.15, 15.99, 9.74, 10.99, 8.17, 11.92, 6.83, 7.87, 9.18, 21.23, 14.85, 11.63, 14.88] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["log", "sigmab"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [0] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["sig", "llik"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.07020422, 0.07087971, 0.0715552, 0.07223069, 0.07290618, 0.07358167, 0.07425716, 0.07493265, 0.07560814, 0.07628363, 0.07695912, 0.07763461, 0.0783101, 0.07898559, 0.07966108, 0.08033657, 0.08101206, 0.08168755, 0.08236304, 0.08303853, 0.08371401, 0.0843895, 0.08506499, 0.08574048, 0.08641597, 0.08709146, 0.08776695, 0.08844244, 0.08911793, 0.08979342, 0.09046891, 0.0911444, 0.09181989, 0.09249538, 0.09317087, 0.09384636, 0.09452185, 0.09519734, 0.09587283, 0.09654832, 0.09722381, 0.0978993, 0.09857479, 0.09925028, 0.09992577, 0.10060126, 0.10127675, 0.10195223, 0.10262772, 0.10330321, 0.1039787, 0.10465419, 0.10532968, 0.10600517, 0.10668066, 0.10735615, 0.10803164, 0.10870713, 0.10938262, 0.11005811, 0.1107336, 0.11140909, 0.11208458, 0.11276007, 0.11343556, 0.11411105, 0.11478654, 0.11546203, 0.11613752, 0.11681301, 0.1174885, 0.11816399, 0.11883948, 0.11951497, 0.12019045, 0.12086594, 0.12154143, 0.12221692, 0.12289241, 0.1235679, 0.12424339, 0.12491888, 0.12559437, 0.12626986, 0.12694535, 0.12762084, 0.12829633, 0.12897182, 0.12964731, 0.1303228, 0.13099829, 0.13167378, 0.13234927, 0.13302476, 0.13370025, 0.13437574, 0.13505123, 0.13572672, 0.13640221, 0.1370777, 0.13775319, 0.13842867, 0.13910416, 0.13977965, 0.14045514, 0.14113063, 0.14180612, 0.14248161, 0.1431571, 0.14383259, 0.14450808, 0.14518357, 0.14585906, 0.14653455, 0.14721004, 0.14788553, 0.14856102, 0.14923651, 0.149912, 0.15058749, 0.15126298, 0.15193847, 0.15261396, 0.15328945, 0.15396494, 0.15464043, 0.15531592, 0.15599141, 0.15666689, 0.15734238, 0.15801787, 0.15869336, 0.15936885, 0.16004434, 0.16071983, 0.16139532, 0.16207081, 0.1627463, 0.16342179, 0.16409728, 0.16477277, 0.16544826, 0.16612375, 0.16679924, 0.16747473, 0.16815022, 0.16882571, 0.1695012, 0.17017669, 0.17085218, 0.17152767, 0.17220316, 0.17287865, 0.17355414, 0.17422963, 0.17490511, 0.1755806, 0.17625609, 0.17693158, 0.17760707, 0.17828256, 0.17895805, 0.17963354, 0.18030903, 0.18098452, 0.18166001, 0.1823355, 0.18301099, 0.18368648, 0.18436197, 0.18503746, 0.18571295, 0.18638844, 0.18706393, 0.18773942, 0.18841491, 0.1890904, 0.18976589, 0.19044138, 0.19111687, 0.19179236, 0.19246785, 0.19314333, 0.19381882, 0.19449431, 0.1951698, 0.19584529, 0.19652078, 0.19719627, 0.19787176, 0.19854725, 0.19922274, 0.19989823, 0.20057372, 0.20124921, 0.2019247, 0.20260019, 0.20327568, 0.20395117, 0.20462666, 0.20530215, 0.20597764, 0.20665313, 0.20732862, 0.20800411, 0.2086796, 0.20935509, 0.21003058, 0.21070607, 0.21138155, 0.21205704, 0.21273253, 0.21340802, 0.21408351, 0.214759, 0.21543449, 0.21610998, 0.21678547, 0.21746096, 0.21813645, 0.21881194, 0.21948743, 0.22016292, 0.22083841, 0.2215139, 0.22218939, 0.22286488, 0.22354037, 0.22421586, 0.22489135, 0.22556684, 0.22624233, 0.22691782, 0.22759331, 0.2282688, 0.22894429, 0.22961977, 0.23029526, 0.23097075, 0.23164624, 0.23232173, 0.23299722, 0.23367271, 0.2343482, 0.23502369, 0.23569918, 0.23637467, 0.23705016, 0.23772565, 0.23840114, 0.23907663, 0.23975212, 0.24042761, 0.2411031, 0.24177859, 0.24245408, 0.24312957, 0.24380506, 0.24448055, 0.24515604, 0.24583153, 0.24650702, 0.24718251, 0.24785799, 0.24853348, 0.24920897, 0.24988446, 0.25055995, 0.25123544, 0.25191093, 0.25258642, 0.25326191, 0.2539374, 0.25461289, 0.25528838, 0.25596387, 0.25663936, 0.25731485, 0.25799034, 0.25866583, 0.25934132, 0.26001681, 0.2606923, 0.26136779, 0.26204328, 0.26271877, 0.26339426, 0.26406975, 0.26474524, 0.26542073, 0.26609621, 0.2667717, 0.26744719, 0.26812268, 0.26879817, 0.26947366, 0.27014915, 0.27082464, 0.27150013, 0.27217562, 0.27285111, 0.2735266, 0.27420209, 0.27487758, 0.27555307, 0.27622856, 0.27690405, 0.27757954, 0.27825503, 0.27893052, 0.27960601, 0.2802815, 0.28095699, 0.28163248, 0.28230797, 0.28298346, 0.28365895, 0.28433443, 0.28500992, 0.28568541, 0.2863609, 0.28703639, 0.28771188, 0.28838737, 0.28906286, 0.28973835, 0.29041384, 0.29108933, 0.29176482, 0.29244031, 0.2931158, 0.29379129, 0.29446678, 0.29514227, 0.29581776, 0.29649325, 0.29716874, 0.29784423, 0.29851972, 0.29919521, 0.2998707, 0.30054619, 0.30122168, 0.30189717, 0.30257265, 0.30324814, 0.30392363, 0.30459912, 0.30527461, 0.3059501, 0.30662559, 0.30730108, 0.30797657, 0.30865206, 0.30932755, 0.31000304, 0.31067853, 0.31135402, 0.31202951, 0.312705, 0.31338049, 0.31405598, 0.31473147, 0.31540696, 0.31608245, 0.31675794, 0.31743343, 0.31810892, 0.31878441, 0.3194599, 0.32013539, 0.32081087, 0.32148636, 0.32216185, 0.32283734, 0.32351283, 0.32418832, 0.32486381, 0.3255393, 0.32621479, 0.32689028, 0.32756577, 0.32824126, 0.32891675, 0.32959224, 0.33026773, 0.33094322, 0.33161871, 0.3322942, 0.33296969, 0.33364518, 0.33432067, 0.33499616, 0.33567165, 0.33634714, 0.33702263, 0.33769812, 0.33837361, 0.33904909, 0.33972458, 0.34040007, 0.34107556, 0.34175105, 0.34242654, 0.34310203, 0.34377752, 0.34445301, 0.3451285, 0.34580399, 0.34647948, 0.34715497, 0.34783046, 0.34850595, 0.34918144, 0.34985693, 0.35053242, 0.35120791, 0.3518834, 0.35255889, 0.35323438, 0.35390987, 0.35458536, 0.35526085, 0.35593634, 0.35661183, 0.35728731, 0.3579628, 0.35863829, 0.35931378, 0.35998927, 0.36066476, 0.36134025, 0.36201574, 0.36269123, 0.36336672, 0.36404221, 0.3647177, 0.36539319, 0.36606868, 0.36674417, 0.36741966, 0.36809515, 0.36877064, 0.36944613, 0.37012162, 0.37079711, 0.3714726, 0.37214809, 0.37282358, 0.37349907, 0.37417456, 0.37485005, 0.37552553, 0.37620102, 0.37687651, 0.377552, 0.37822749, 0.37890298, 0.37957847, 0.38025396, 0.38092945, 0.38160494, 0.38228043, 0.38295592, 0.38363141, 0.3843069, 0.38498239, 0.38565788, 0.38633337, 0.38700886, 0.38768435, 0.38835984, 0.38903533, 0.38971082, 0.39038631, 0.3910618, 0.39173729, 0.39241278, 0.39308827, 0.39376375, 0.39443924, 0.39511473, 0.39579022, 0.39646571, 0.3971412, 0.39781669, 0.39849218, 0.39916767, 0.39984316, 0.40051865, 0.40119414, 0.40186963, 0.40254512, 0.40322061, 0.4038961, 0.40457159, 0.40524708, 0.40592257, 0.40659806, 0.40727355, 0.40794904, 0.40862453, 0.40930002, 0.40997551, 0.410651, 0.41132649, 0.41200197, 0.41267746, 0.41335295, 0.41402844, 0.41470393, 0.41537942, 0.41605491, 0.4167304, 0.41740589, 0.41808138, 0.41875687, 0.41943236, 0.42010785, 0.42078334, 0.42145883, 0.42213432, 0.42280981, 0.4234853, 0.42416079, 0.42483628, 0.42551177, 0.42618726, 0.42686275, 0.42753824, 0.42821373, 0.42888922, 0.42956471, 0.43024019, 0.43091568, 0.43159117, 0.43226666, 0.43294215, 0.43361764, 0.43429313, 0.43496862, 0.43564411, 0.4363196, 0.43699509, 0.43767058, 0.43834607, 0.43902156, 0.43969705, 0.44037254, 0.44104803, 0.44172352, 0.44239901, 0.4430745, 0.44374999, 0.44442548, 0.44510097, 0.44577646, 0.44645195, 0.44712744, 0.44780293, 0.44847841, 0.4491539, 0.44982939, 0.45050488, 0.45118037, 0.45185586, 0.45253135, 0.45320684, 0.45388233, 0.45455782, 0.45523331, 0.4559088, 0.45658429, 0.45725978, 0.45793527, 0.45861076, 0.45928625, 0.45996174, 0.46063723, 0.46131272, 0.46198821, 0.4626637, 0.46333919, 0.46401468, 0.46469017, 0.46536566, 0.46604115, 0.46671663, 0.46739212, 0.46806761, 0.4687431, 0.46941859, 0.47009408, 0.47076957, 0.47144506, 0.47212055, 0.47279604, 0.47347153, 0.47414702, 0.47482251, 0.475498, 0.47617349, 0.47684898, 0.47752447, 0.47819996, 0.47887545, 0.47955094, 0.48022643, 0.48090192, 0.48157741, 0.4822529, 0.48292839, 0.48360388, 0.48427937, 0.48495485, 0.48563034, 0.48630583, 0.48698132, 0.48765681, 0.4883323, 0.48900779, 0.48968328, 0.49035877, 0.49103426, 0.49170975, 0.49238524, 0.49306073, 0.49373622, 0.49441171, 0.4950872, 0.49576269, 0.49643818, 0.49711367, 0.49778916, 0.49846465, 0.49914014, 0.49981563, 0.50049112, 0.50116661, 0.5018421, 0.50251759, 0.50319307, 0.50386856, 0.50454405, 0.50521954, 0.50589503, 0.50657052, 0.50724601, 0.5079215, 0.50859699, 0.50927248, 0.50994797, 0.51062346, 0.51129895, 0.51197444, 0.51264993, 0.51332542, 0.51400091, 0.5146764, 0.51535189, 0.51602738, 0.51670287, 0.51737836, 0.51805385, 0.51872934, 0.51940483, 0.52008032, 0.52075581, 0.52143129, 0.52210678, 0.52278227, 0.52345776, 0.52413325, 0.52480874, 0.52548423, 0.52615972, 0.52683521, 0.5275107, 0.52818619, 0.52886168, 0.52953717, 0.53021266, 0.53088815, 0.53156364, 0.53223913, 0.53291462, 0.53359011, 0.5342656, 0.53494109, 0.53561658, 0.53629207, 0.53696756, 0.53764305, 0.53831854, 0.53899403, 0.53966951, 0.540345, 0.54102049, 0.54169598, 0.54237147, 0.54304696, 0.54372245, 0.54439794, 0.54507343, 0.54574892, 0.54642441, 0.5470999, 0.54777539, 0.54845088, 0.54912637, 0.54980186, 0.55047735, 0.55115284, 0.55182833, 0.55250382, 0.55317931, 0.5538548, 0.55453029, 0.55520578, 0.55588127, 0.55655676, 0.55723225, 0.55790773, 0.55858322, 0.55925871, 0.5599342, 0.56060969, 0.56128518, 0.56196067, 0.56263616, 0.56331165, 0.56398714, 0.56466263, 0.56533812, 0.56601361, 0.5666891, 0.56736459, 0.56804008, 0.56871557, 0.56939106, 0.57006655, 0.57074204, 0.57141753, 0.57209302, 0.57276851, 0.573444, 0.57411949, 0.57479498, 0.57547047, 0.57614595, 0.57682144, 0.57749693, 0.57817242, 0.57884791, 0.5795234, 0.58019889, 0.58087438, 0.58154987, 0.58222536, 0.58290085, 0.58357634, 0.58425183, 0.58492732, 0.58560281, 0.5862783, 0.58695379, 0.58762928, 0.58830477, 0.58898026, 0.58965575, 0.59033124, 0.59100673, 0.59168222, 0.59235771, 0.5930332, 0.59370869, 0.59438417, 0.59505966, 0.59573515, 0.59641064, 0.59708613, 0.59776162, 0.59843711, 0.5991126, 0.59978809, 0.60046358, 0.60113907, 0.60181456, 0.60249005, 0.60316554, 0.60384103, 0.60451652, 0.60519201, 0.6058675, 0.60654299, 0.60721848, 0.60789397, 0.60856946, 0.60924495, 0.60992044, 0.61059593, 0.61127142, 0.61194691, 0.61262239, 0.61329788, 0.61397337, 0.61464886, 0.61532435, 0.61599984, 0.61667533, 0.61735082, 0.61802631, 0.6187018, 0.61937729, 0.62005278, 0.62072827, 0.62140376, 0.62207925, 0.62275474, 0.62343023, 0.62410572, 0.62478121, 0.6254567, 0.62613219, 0.62680768, 0.62748317, 0.62815866, 0.62883415, 0.62950964, 0.63018513, 0.63086061, 0.6315361, 0.63221159, 0.63288708, 0.63356257, 0.63423806, 0.63491355, 0.63558904, 0.63626453, 0.63694002, 0.63761551, 0.638291, 0.63896649, 0.63964198, 0.64031747, 0.64099296, 0.64166845, 0.64234394, 0.64301943, 0.64369492, 0.64437041, 0.6450459, 0.64572139, 0.64639688, 0.64707237, 0.64774786, 0.64842335, 0.64909883, 0.64977432, 0.65044981, 0.6511253, 0.65180079, 0.65247628, 0.65315177, 0.65382726, 0.65450275, 0.65517824, 0.65585373, 0.65652922, 0.65720471, 0.6578802, 0.65855569, 0.65923118, 0.65990667, 0.66058216, 0.66125765, 0.66193314, 0.66260863, 0.66328412, 0.66395961, 0.6646351, 0.66531059, 0.66598608, 0.66666157, 0.66733705, 0.66801254, 0.66868803, 0.66936352, 0.67003901, 0.6707145, 0.67138999, 0.67206548, 0.67274097, 0.67341646, 0.67409195, 0.67476744, 0.67544293] }, { "type": "double", "attributes": {}, "value": [-183.52771505, -181.71014902, -179.90491159, -178.11211489, -176.3318623, -174.56424867, -172.8093606, -171.06727678, -169.33806818, -167.62179835, -165.91852366, -164.22829359, -162.55115092, -160.88713203, -159.23626709, -157.5985803, -155.97409014, -154.36280955, -152.76474618, -151.17990257, -149.60827637, -148.04986054, -146.50464351, -144.97260941, -143.45373822, -141.94800597, -140.4553849, -138.9758436, -137.50934722, -136.0558576, -134.61533344, -133.18773039, -131.77300128, -130.3710962, -128.98196263, -127.60554561, -126.24178783, -124.89062977, -123.55200981, -122.22586435, -120.91212789, -119.6107332, -118.32161134, -117.04469183, -115.77990271, -114.52717063, -113.28642095, -112.05757782, -110.84056428, -109.63530231, -108.4417129, -107.25971619, -106.08923146, -104.93017724, -103.78247137, -102.64603106, -101.52077296, -100.40661319, -99.30346744, -98.21125097, -97.12987872, -96.05926531, -94.99932513, -93.94997233, -92.91112092, -91.88268478, -90.86457771, -89.85671347, -88.85900581, -87.87136849, -86.89371537, -85.92596036, -84.96801752, -84.01980105, -83.08122533, -82.15220496, -81.23265475, -80.32248978, -79.4216254, -78.52997726, -77.64746133, -76.77399393, -75.90949171, -75.05387172, -74.20705138, -73.36894855, -72.53948148, -71.71856886, -70.90612984, -70.10208402, -69.30635148, -68.51885277, -67.73950896, -66.96824158, -66.20497271, -65.44962492, -64.70212134, -63.9623856, -63.23034189, -62.50591494, -61.78903003, -61.079613, -60.37759025, -59.68288874, -58.99543602, -58.31516018, -57.6419899, -56.97585445, -56.31668366, -55.66440795, -55.01895832, -54.38026635, -53.74826421, -53.12288466, -52.50406103, -51.89172725, -51.28581783, -50.68626786, -50.09301301, -49.50598956, -48.92513434, -48.35038477, -47.78167885, -47.21895516, -46.66215286, -46.11121167, -45.56607188, -45.02667438, -44.49296058, -43.96487248, -43.44235265, -42.9253442, -42.41379079, -41.90763666, -41.40682658, -40.91130586, -40.42102037, -39.9359165, -39.4559412, -38.98104193, -38.51116669, -38.04626401, -37.58628293, -37.13117301, -36.68088433, -36.23536748, -35.79457355, -35.35845413, -34.92696133, -34.50004773, -34.0776664, -33.65977092, -33.24631534, -32.83725417, -32.43254243, -32.03213559, -31.63598958, -31.24406081, -30.85630613, -30.47268285, -30.09314875, -29.71766203, -29.34618134, -28.97866576, -28.61507482, -28.25536848, -27.8995071, -27.54745149, -27.19916286, -26.85460284, -26.51373347, -26.17651719, -25.84291685, -25.51289569, -25.18641734, -24.86344583, -24.54394557, -24.22788135, -23.91521834, -23.60592209, -23.2999585, -22.99729386, -22.69789481, -22.40172835, -22.10876184, -21.81896298, -21.53229983, -21.24874079, -20.9682546, -20.69081032, -20.41637738, -20.14492551, -19.87642477, -19.61084555, -19.34815856, -19.08833482, -18.83134566, -18.57716273, -18.32575797, -18.07710363, -17.83117227, -17.58793673, -17.34737015, -17.10944594, -16.87413784, -16.64141983, -16.41126619, -16.18365146, -15.95855049, -15.73593835, -15.51579043, -15.29808234, -15.08278997, -14.86988949, -14.65935728, -14.45117001, -14.2453046, -14.04173818, -13.84044818, -13.64141222, -13.44460819, -13.25001421, -13.05760864, -12.86737005, -12.67927726, -12.4933093, -12.30944545, -12.12766518, -11.94794819, -11.7702744, -11.59462396, -11.42097718, -11.24931464, -11.07961709, -10.91186549, -10.746041, -10.58212499, -10.42009903, -10.25994486, -10.10164444, -9.94517991, -9.79053359, -9.63768801, -9.48662585, -9.33733002, -9.18978355, -9.04396971, -8.8998719, -8.75747371, -8.61675891, -8.47771142, -8.34031536, -8.20455499, -8.07041474, -7.9378792, -7.80693314, -7.67756147, -7.54974925, -7.42348172, -7.29874426, -7.1755224, -7.05380182, -6.93356836, -6.814808, -6.69750685, -6.5816512, -6.46722744, -6.35422212, -6.24262194, -6.13241373, -6.02358443, -5.91612116, -5.81001113, -5.70524171, -5.60180039, -5.49967478, -5.39885262, -5.2993218, -5.2010703, -5.10408623, -5.00835784, -4.91387348, -4.82062163, -4.72859089, -4.63776995, -4.54814764, -4.45971291, -4.3724548, -4.28636246, -4.20142518, -4.11763231, -4.03497336, -3.95343791, -3.87301566, -3.7936964, -3.71547004, -3.63832658, -3.56225613, -3.48724887, -3.41329513, -3.34038528, -3.26850983, -3.19765937, -3.12782457, -3.05899621, -2.99116515, -2.92432236, -2.85845887, -2.79356583, -2.72963445, -2.66665605, -2.60462202, -2.54352385, -2.48335308, -2.42410139, -2.36576048, -2.30832218, -2.25177837, -2.19612103, -2.14134221, -2.08743402, -2.03438869, -1.98219847, -1.93085574, -1.88035292, -1.83068252, -1.78183711, -1.73380933, -1.68659192, -1.64017765, -1.5945594, -1.54973008, -1.5056827, -1.46241032, -1.41990607, -1.37816315, -1.33717482, -1.29693442, -1.25743533, -1.218671, -1.18063497, -1.14332079, -1.10672213, -1.07083267, -1.03564619, -1.00115649, -0.96735747, -0.93424306, -0.90180725, -0.8700441, -0.83894772, -0.80851227, -0.77873197, -0.7496011, -0.72111398, -0.69326499, -0.66604857, -0.63945922, -0.61349145, -0.58813987, -0.56339912, -0.53926388, -0.5157289, -0.49278897, -0.47043891, -0.44867363, -0.42748805, -0.40687716, -0.38683597, -0.36735957, -0.34844307, -0.33008164, -0.31227049, -0.29500486, -0.27828007, -0.26209143, -0.24643435, -0.23130425, -0.21669659, -0.20260688, -0.18903067, -0.17596356, -0.16340117, -0.15133918, -0.1397733, -0.12869928, -0.1181129, -0.10801, -0.09838644, -0.08923811, -0.08056097, -0.07235099, -0.06460417, -0.05731657, -0.05048428, -0.04410341, -0.03817012, -0.0326806, -0.02763107, -0.02301779, -0.01883705, -0.01508517, -0.01175852, -0.00885348, -0.00636647, -0.00429395, -0.00263241, -0.00137835, -0.00052834, -0.00007895, -0.00002678, -0.00036848, -0.00110072, -0.00222019, -0.00372363, -0.00560778, -0.00786944, -0.01050541, -0.01351255, -0.01688771, -0.0206278, -0.02472974, -0.02919048, -0.034007, -0.03917631, -0.04469542, -0.05056141, -0.05677135, -0.06332236, -0.07021155, -0.0774361, -0.08499318, -0.09288, -0.10109379, -0.10963181, -0.11849134, -0.12766967, -0.13716414, -0.14697209, -0.1570909, -0.16751795, -0.17825067, -0.1892865, -0.20062289, -0.21225733, -0.22418733, -0.2364104, -0.24892409, -0.26172599, -0.27481366, -0.28818472, -0.30183681, -0.31576756, -0.32997466, -0.34445579, -0.35920865, -0.37423099, -0.38952054, -0.40507507, -0.42089237, -0.43697024, -0.45330651, -0.46989902, -0.48674562, -0.5038442, -0.52119264, -0.53878888, -0.55663082, -0.57471643, -0.59304366, -0.6116105, -0.63041495, -0.64945502, -0.66872876, -0.68823419, -0.7079694, -0.72793245, -0.74812146, -0.76853453, -0.78916978, -0.81002537, -0.83109946, -0.85239021, -0.87389582, -0.89561449, -0.91754445, -0.93968392, -0.96203116, -0.98458442, -1.00734199, -1.03030216, -1.05346323, -1.07682353, -1.10038138, -1.12413514, -1.14808316, -1.17222381, -1.19655549, -1.2210766, -1.24578555, -1.27068076, -1.29576068, -1.32102375, -1.34646844, -1.37209323, -1.39789661, -1.42387708, -1.45003314, -1.47636334, -1.5028662, -1.52954028, -1.55638413, -1.58339633, -1.61057546, -1.63792012, -1.66542891, -1.69310046, -1.72093339, -1.74892635, -1.77707797, -1.80538693, -1.8338519, -1.86247157, -1.89124461, -1.92016975, -1.94924569, -1.97847115, -2.00784488, -2.03736562, -2.06703212, -2.09684315, -2.12679749, -2.1568939, -2.1871312, -2.21750819, -2.24802367, -2.27867647, -2.30946542, -2.34038937, -2.37144715, -2.40263764, -2.4339597, -2.46541221, -2.49699404, -2.52870411, -2.5605413, -2.59250454, -2.62459274, -2.65680483, -2.68913975, -2.72159644, -2.75417386, -2.78687097, -2.81968674, -2.85262015, -2.88567019, -2.91883584, -2.95211611, -2.98551001, -3.01901656, -3.05263478, -3.0863637, -3.12020237, -3.15414983, -3.18820514, -3.22236735, -3.25663554, -3.29100879, -3.32548617, -3.36006678, -3.39474972, -3.42953409, -3.464419, -3.49940357, -3.53448692, -3.5696682, -3.60494653, -3.64032106, -3.67579094, -3.71135534, -3.74701341, -3.78276433, -3.81860727, -3.85454142, -3.89056597, -3.92668012, -3.96288306, -3.999174, -4.03555216, -4.07201676, -4.10856703, -4.14520219, -4.18192149, -4.21872417, -4.25560947, -4.29257666, -4.329625, -4.36675374, -4.40396217, -4.44124955, -4.47861518, -4.51605834, -4.55357833, -4.59117444, -4.62884598, -4.66659225, -4.70441258, -4.74230628, -4.78027267, -4.8183111, -4.85642088, -4.89460137, -4.93285191, -4.97117184, -5.00956052, -5.04801732, -5.08654159, -5.12513271, -5.16379005, -5.20251299, -5.2413009, -5.28015319, -5.31906923, -5.35804844, -5.3970902, -5.43619393, -5.47535904, -5.51458494, -5.55387104, -5.59321678, -5.63262158, -5.67208487, -5.71160609, -5.75118467, -5.79082007, -5.83051173, -5.87025911, -5.91006165, -5.94991883, -5.9898301, -6.02979494, -6.06981281, -6.1098832, -6.15000558, -6.19017944, -6.23040427, -6.27067955, -6.31100478, -6.35137947, -6.39180311, -6.43227521, -6.47279529, -6.51336285, -6.55397741, -6.59463849, -6.63534562, -6.67609833, -6.71689614, -6.75773859, -6.79862522, -6.83955557, -6.88052919, -6.92154562, -6.96260442, -7.00370513, -7.04484733, -7.08603056, -7.12725439, -7.1685184, -7.20982214, -7.25116521, -7.29254716, -7.33396759, -7.37542607, -7.41692219, -7.45845554, -7.50002572, -7.54163231, -7.58327492, -7.62495314, -7.66666659, -7.70841486, -7.75019757, -7.79201433, -7.83386475, -7.87574845, -7.91766506, -7.95961419, -8.00159547, -8.04360854, -8.08565302, -8.12772854, -8.16983475, -8.21197129, -8.25413778, -8.29633389, -8.33855926, -8.38081353, -8.42309636, -8.46540741, -8.50774632, -8.55011277, -8.59250641, -8.63492691, -8.67737394, -8.71984716, -8.76234625, -8.80487087, -8.84742072, -8.88999546, -8.93259477, -8.97521835, -9.01786587, -9.06053703, -9.10323151, -9.14594901, -9.18868922, -9.23145184, -9.27423656, -9.3170431, -9.35987114, -9.40272041, -9.44559059, -9.48848141, -9.53139258, -9.5743238, -9.61727481, -9.6602453, -9.70323501, -9.74624365, -9.78927095, -9.83231663, -9.87538043, -9.91846207, -9.96156128, -10.0046778, -10.04781136, -10.0909617, -10.13412856, -10.17731168, -10.22051081, -10.26372568, -10.30695604, -10.35020165, -10.39346225, -10.4367376, -10.48002744, -10.52333154, -10.56664965, -10.60998153, -10.65332694, -10.69668564, -10.7400574, -10.78344198, -10.82683915, -10.87024868, -10.91367035, -10.95710391, -11.00054915, -11.04400584, -11.08747376, -11.13095269, -11.1744424, -11.21794269, -11.26145333, -11.30497411, -11.34850481, -11.39204522, -11.43559514, -11.47915434, -11.52272264, -11.56629981, -11.60988566, -11.65347998, -11.69708257, -11.74069323, -11.78431176, -11.82793797, -11.87157165, -11.91521261, -11.95886067, -12.00251562, -12.04617728, -12.08984546, -12.13351997, -12.17720062, -12.22088723, -12.26457962, -12.30827759, -12.35198098, -12.3956896, -12.43940328, -12.48312183, -12.52684507, -12.57057284, -12.61430497, -12.65804127, -12.70178157, -12.74552572, -12.78927353, -12.83302484, -12.87677949, -12.9205373, -12.96429813, -13.00806179, -13.05182813, -13.095597, -13.13936822, -13.18314165, -13.22691712, -13.27069448, -13.31447358, -13.35825425, -13.40203636, -13.44581974, -13.48960425, -13.53338973, -13.57717604, -13.62096303, -13.66475055, -13.70853847, -13.75232663, -13.79611489, -13.83990311, -13.88369114, -13.92747886, -13.97126612, -14.01505277, -14.05883869, -14.10262374, -14.14640778, -14.19019068, -14.2339723, -14.27775251, -14.32153119, -14.3653082, -14.40908341, -14.45285669, -14.49662791, -14.54039696, -14.58416369, -14.62792799, -14.67168974, -14.71544881, -14.75920507, -14.80295842, -14.84670871, -14.89045585, -14.9341997, -14.97794015, -15.02167708, -15.06541038, -15.10913994, -15.15286562, -15.19658733, -15.24030495, -15.28401837, -15.32772748, -15.37143215, -15.4151323, -15.4588278, -15.50251856, -15.54620445, -15.58988538, -15.63356123, -15.67723192, -15.72089732, -15.76455734, -15.80821187, -15.85186081, -15.89550407, -15.93914153, -15.9827731, -16.02639869, -16.07001818, -16.1136315, -16.15723853, -16.20083918, -16.24443335, -16.28802096, -16.33160191, -16.3751761, -16.41874344, -16.46230384, -16.5058572, -16.54940344, -16.59294247, -16.6364742, -16.67999853, -16.72351539, -16.76702467, -16.8105263, -16.8540202, -16.89750626, -16.94098442, -16.98445458, -17.02791665] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_CentralDose"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "data", "args", "profile"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["de", "de_err", "OD", "OD_err", "rel_OD", "rel_OD_err", "Lmax"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [67.9364412] }, { "type": "double", "attributes": {}, "value": [2.76477876] }, { "type": "double", "attributes": {}, "value": [20.07887308] }, { "type": "double", "attributes": {}, "value": [2.103284] }, { "type": "double", "attributes": {}, "value": [29.55537959] }, { "type": "double", "attributes": {}, "value": [3.32139901] }, { "type": "double", "attributes": {}, "value": [-222.00056157] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ED", "ED_Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [19.7, 26.2, 31.48, 31.95, 36.17, 37.05, 42.58, 47.23, 47.61, 48.1, 48.11, 50.73, 51.51, 52.06, 52.28, 53.6, 53.96, 55.54, 56.84, 58.97, 61.14, 61.58, 63.24, 64.5, 64.58, 64.76, 65.57, 66.43, 66.8, 66.84, 70.68, 71.46, 71.6, 74.12, 74.73, 75.67, 75.75, 76.21, 76.92, 77.5, 79.01, 79.27, 79.78, 82.86, 83.19, 83.87, 85.26, 86.36, 86.58, 88.7, 89.1, 89.52, 89.53, 93.27, 97.77, 98.64, 102.63, 103.57, 106.23, 107.98, 111.46, 119.06] }, { "type": "double", "attributes": {}, "value": [2.14, 2.04, 2.34, 2.34, 2.95, 3.15, 8.22, 3.23, 4.43, 4.43, 3.14, 9.64, 6.76, 5.6, 10.27, 4.69, 3.78, 4.37, 6.87, 4.63, 4.05, 4.76, 5.58, 8.11, 6.91, 7.78, 12.4, 5.82, 8.61, 10.33, 8.87, 9.59, 10.32, 6.33, 10.16, 10.29, 12.47, 5.75, 7.89, 8.78, 7.97, 7.54, 5.4, 10.36, 11.04, 9.9, 9.84, 12.34, 9.5, 14.15, 15.99, 9.74, 10.99, 8.17, 11.92, 6.83, 7.87, 9.18, 21.23, 14.85, 11.63, 14.88] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["log", "sigmab"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [false] }, { "type": "double", "attributes": {}, "value": [0] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["sig", "llik"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.04787712, 0.04846679, 0.04905646, 0.04964613, 0.0502358, 0.05082547, 0.05141514, 0.05200481, 0.05259448, 0.05318415, 0.05377382, 0.05436349, 0.05495316, 0.05554283, 0.0561325, 0.05672217, 0.05731184, 0.05790151, 0.05849118, 0.05908085, 0.05967052, 0.06026019, 0.06084986, 0.06143953, 0.0620292, 0.06261887, 0.06320854, 0.06379821, 0.06438787, 0.06497754, 0.06556721, 0.06615688, 0.06674655, 0.06733622, 0.06792589, 0.06851556, 0.06910523, 0.0696949, 0.07028457, 0.07087424, 0.07146391, 0.07205358, 0.07264325, 0.07323292, 0.07382259, 0.07441226, 0.07500193, 0.0755916, 0.07618127, 0.07677094, 0.07736061, 0.07795028, 0.07853995, 0.07912962, 0.07971929, 0.08030896, 0.08089863, 0.0814883, 0.08207797, 0.08266764, 0.08325731, 0.08384698, 0.08443665, 0.08502632, 0.08561599, 0.08620566, 0.08679533, 0.087385, 0.08797467, 0.08856434, 0.08915401, 0.08974368, 0.09033335, 0.09092302, 0.09151269, 0.09210236, 0.09269203, 0.0932817, 0.09387137, 0.09446104, 0.09505071, 0.09564038, 0.09623005, 0.09681972, 0.09740939, 0.09799906, 0.09858873, 0.0991784, 0.09976807, 0.10035774, 0.10094741, 0.10153708, 0.10212675, 0.10271642, 0.10330609, 0.10389575, 0.10448542, 0.10507509, 0.10566476, 0.10625443, 0.1068441, 0.10743377, 0.10802344, 0.10861311, 0.10920278, 0.10979245, 0.11038212, 0.11097179, 0.11156146, 0.11215113, 0.1127408, 0.11333047, 0.11392014, 0.11450981, 0.11509948, 0.11568915, 0.11627882, 0.11686849, 0.11745816, 0.11804783, 0.1186375, 0.11922717, 0.11981684, 0.12040651, 0.12099618, 0.12158585, 0.12217552, 0.12276519, 0.12335486, 0.12394453, 0.1245342, 0.12512387, 0.12571354, 0.12630321, 0.12689288, 0.12748255, 0.12807222, 0.12866189, 0.12925156, 0.12984123, 0.1304309, 0.13102057, 0.13161024, 0.13219991, 0.13278958, 0.13337925, 0.13396892, 0.13455859, 0.13514826, 0.13573793, 0.1363276, 0.13691727, 0.13750694, 0.13809661, 0.13868628, 0.13927595, 0.13986562, 0.14045529, 0.14104496, 0.14163463, 0.1422243, 0.14281396, 0.14340363, 0.1439933, 0.14458297, 0.14517264, 0.14576231, 0.14635198, 0.14694165, 0.14753132, 0.14812099, 0.14871066, 0.14930033, 0.14989, 0.15047967, 0.15106934, 0.15165901, 0.15224868, 0.15283835, 0.15342802, 0.15401769, 0.15460736, 0.15519703, 0.1557867, 0.15637637, 0.15696604, 0.15755571, 0.15814538, 0.15873505, 0.15932472, 0.15991439, 0.16050406, 0.16109373, 0.1616834, 0.16227307, 0.16286274, 0.16345241, 0.16404208, 0.16463175, 0.16522142, 0.16581109, 0.16640076, 0.16699043, 0.1675801, 0.16816977, 0.16875944, 0.16934911, 0.16993878, 0.17052845, 0.17111812, 0.17170779, 0.17229746, 0.17288713, 0.1734768, 0.17406647, 0.17465614, 0.17524581, 0.17583548, 0.17642515, 0.17701482, 0.17760449, 0.17819416, 0.17878383, 0.1793735, 0.17996317, 0.18055284, 0.18114251, 0.18173218, 0.18232184, 0.18291151, 0.18350118, 0.18409085, 0.18468052, 0.18527019, 0.18585986, 0.18644953, 0.1870392, 0.18762887, 0.18821854, 0.18880821, 0.18939788, 0.18998755, 0.19057722, 0.19116689, 0.19175656, 0.19234623, 0.1929359, 0.19352557, 0.19411524, 0.19470491, 0.19529458, 0.19588425, 0.19647392, 0.19706359, 0.19765326, 0.19824293, 0.1988326, 0.19942227, 0.20001194, 0.20060161, 0.20119128, 0.20178095, 0.20237062, 0.20296029, 0.20354996, 0.20413963, 0.2047293, 0.20531897, 0.20590864, 0.20649831, 0.20708798, 0.20767765, 0.20826732, 0.20885699, 0.20944666, 0.21003633, 0.210626, 0.21121567, 0.21180534, 0.21239501, 0.21298468, 0.21357435, 0.21416402, 0.21475369, 0.21534336, 0.21593303, 0.2165227, 0.21711237, 0.21770204, 0.21829171, 0.21888138, 0.21947105, 0.22006072, 0.22065039, 0.22124005, 0.22182972, 0.22241939, 0.22300906, 0.22359873, 0.2241884, 0.22477807, 0.22536774, 0.22595741, 0.22654708, 0.22713675, 0.22772642, 0.22831609, 0.22890576, 0.22949543, 0.2300851, 0.23067477, 0.23126444, 0.23185411, 0.23244378, 0.23303345, 0.23362312, 0.23421279, 0.23480246, 0.23539213, 0.2359818, 0.23657147, 0.23716114, 0.23775081, 0.23834048, 0.23893015, 0.23951982, 0.24010949, 0.24069916, 0.24128883, 0.2418785, 0.24246817, 0.24305784, 0.24364751, 0.24423718, 0.24482685, 0.24541652, 0.24600619, 0.24659586, 0.24718553, 0.2477752, 0.24836487, 0.24895454, 0.24954421, 0.25013388, 0.25072355, 0.25131322, 0.25190289, 0.25249256, 0.25308223, 0.2536719, 0.25426157, 0.25485124, 0.25544091, 0.25603058, 0.25662025, 0.25720992, 0.25779959, 0.25838926, 0.25897893, 0.2595686, 0.26015827, 0.26074793, 0.2613376, 0.26192727, 0.26251694, 0.26310661, 0.26369628, 0.26428595, 0.26487562, 0.26546529, 0.26605496, 0.26664463, 0.2672343, 0.26782397, 0.26841364, 0.26900331, 0.26959298, 0.27018265, 0.27077232, 0.27136199, 0.27195166, 0.27254133, 0.273131, 0.27372067, 0.27431034, 0.27490001, 0.27548968, 0.27607935, 0.27666902, 0.27725869, 0.27784836, 0.27843803, 0.2790277, 0.27961737, 0.28020704, 0.28079671, 0.28138638, 0.28197605, 0.28256572, 0.28315539, 0.28374506, 0.28433473, 0.2849244, 0.28551407, 0.28610374, 0.28669341, 0.28728308, 0.28787275, 0.28846242, 0.28905209, 0.28964176, 0.29023143, 0.2908211, 0.29141077, 0.29200044, 0.29259011, 0.29317978, 0.29376945, 0.29435912, 0.29494879, 0.29553846, 0.29612813, 0.2967178, 0.29730747, 0.29789714, 0.29848681, 0.29907648, 0.29966614, 0.30025581, 0.30084548, 0.30143515, 0.30202482, 0.30261449, 0.30320416, 0.30379383, 0.3043835, 0.30497317, 0.30556284, 0.30615251, 0.30674218, 0.30733185, 0.30792152, 0.30851119, 0.30910086, 0.30969053, 0.3102802, 0.31086987, 0.31145954, 0.31204921, 0.31263888, 0.31322855, 0.31381822, 0.31440789, 0.31499756, 0.31558723, 0.3161769, 0.31676657, 0.31735624, 0.31794591, 0.31853558, 0.31912525, 0.31971492, 0.32030459, 0.32089426, 0.32148393, 0.3220736, 0.32266327, 0.32325294, 0.32384261, 0.32443228, 0.32502195, 0.32561162, 0.32620129, 0.32679096, 0.32738063, 0.3279703, 0.32855997, 0.32914964, 0.32973931, 0.33032898, 0.33091865, 0.33150832, 0.33209799, 0.33268766, 0.33327733, 0.333867, 0.33445667, 0.33504634, 0.33563601, 0.33622568, 0.33681535, 0.33740502, 0.33799469, 0.33858436, 0.33917402, 0.33976369, 0.34035336, 0.34094303, 0.3415327, 0.34212237, 0.34271204, 0.34330171, 0.34389138, 0.34448105, 0.34507072, 0.34566039, 0.34625006, 0.34683973, 0.3474294, 0.34801907, 0.34860874, 0.34919841, 0.34978808, 0.35037775, 0.35096742, 0.35155709, 0.35214676, 0.35273643, 0.3533261, 0.35391577, 0.35450544, 0.35509511, 0.35568478, 0.35627445, 0.35686412, 0.35745379, 0.35804346, 0.35863313, 0.3592228, 0.35981247, 0.36040214, 0.36099181, 0.36158148, 0.36217115, 0.36276082, 0.36335049, 0.36394016, 0.36452983, 0.3651195, 0.36570917, 0.36629884, 0.36688851, 0.36747818, 0.36806785, 0.36865752, 0.36924719, 0.36983686, 0.37042653, 0.3710162, 0.37160587, 0.37219554, 0.37278521, 0.37337488, 0.37396455, 0.37455422, 0.37514389, 0.37573356, 0.37632323, 0.3769129, 0.37750257, 0.37809223, 0.3786819, 0.37927157, 0.37986124, 0.38045091, 0.38104058, 0.38163025, 0.38221992, 0.38280959, 0.38339926, 0.38398893, 0.3845786, 0.38516827, 0.38575794, 0.38634761, 0.38693728, 0.38752695, 0.38811662, 0.38870629, 0.38929596, 0.38988563, 0.3904753, 0.39106497, 0.39165464, 0.39224431, 0.39283398, 0.39342365, 0.39401332, 0.39460299, 0.39519266, 0.39578233, 0.396372, 0.39696167, 0.39755134, 0.39814101, 0.39873068, 0.39932035, 0.39991002, 0.40049969, 0.40108936, 0.40167903, 0.4022687, 0.40285837, 0.40344804, 0.40403771, 0.40462738, 0.40521705, 0.40580672, 0.40639639, 0.40698606, 0.40757573, 0.4081654, 0.40875507, 0.40934474, 0.40993441, 0.41052408, 0.41111375, 0.41170342, 0.41229309, 0.41288276, 0.41347243, 0.4140621, 0.41465177, 0.41524144, 0.41583111, 0.41642078, 0.41701045, 0.41760011, 0.41818978, 0.41877945, 0.41936912, 0.41995879, 0.42054846, 0.42113813, 0.4217278, 0.42231747, 0.42290714, 0.42349681, 0.42408648, 0.42467615, 0.42526582, 0.42585549, 0.42644516, 0.42703483, 0.4276245, 0.42821417, 0.42880384, 0.42939351, 0.42998318, 0.43057285, 0.43116252, 0.43175219, 0.43234186, 0.43293153, 0.4335212, 0.43411087, 0.43470054, 0.43529021, 0.43587988, 0.43646955, 0.43705922, 0.43764889, 0.43823856, 0.43882823, 0.4394179, 0.44000757, 0.44059724, 0.44118691, 0.44177658, 0.44236625, 0.44295592, 0.44354559, 0.44413526, 0.44472493, 0.4453146, 0.44590427, 0.44649394, 0.44708361, 0.44767328, 0.44826295, 0.44885262, 0.44944229, 0.45003196, 0.45062163, 0.4512113, 0.45180097, 0.45239064, 0.45298031, 0.45356998, 0.45415965, 0.45474932, 0.45533899, 0.45592866, 0.45651832, 0.45710799, 0.45769766, 0.45828733, 0.458877, 0.45946667, 0.46005634, 0.46064601, 0.46123568, 0.46182535, 0.46241502, 0.46300469, 0.46359436, 0.46418403, 0.4647737, 0.46536337, 0.46595304, 0.46654271, 0.46713238, 0.46772205, 0.46831172, 0.46890139, 0.46949106, 0.47008073, 0.4706704, 0.47126007, 0.47184974, 0.47243941, 0.47302908, 0.47361875, 0.47420842, 0.47479809, 0.47538776, 0.47597743, 0.4765671, 0.47715677, 0.47774644, 0.47833611, 0.47892578, 0.47951545, 0.48010512, 0.48069479, 0.48128446, 0.48187413, 0.4824638, 0.48305347, 0.48364314, 0.48423281, 0.48482248, 0.48541215, 0.48600182, 0.48659149, 0.48718116, 0.48777083, 0.4883605, 0.48895017, 0.48953984, 0.49012951, 0.49071918, 0.49130885, 0.49189852, 0.49248819, 0.49307786, 0.49366753, 0.4942572, 0.49484687, 0.49543653, 0.4960262, 0.49661587, 0.49720554, 0.49779521, 0.49838488, 0.49897455, 0.49956422, 0.50015389, 0.50074356, 0.50133323, 0.5019229, 0.50251257, 0.50310224, 0.50369191, 0.50428158, 0.50487125, 0.50546092, 0.50605059, 0.50664026, 0.50722993, 0.5078196, 0.50840927, 0.50899894, 0.50958861, 0.51017828, 0.51076795, 0.51135762, 0.51194729, 0.51253696, 0.51312663, 0.5137163, 0.51430597, 0.51489564, 0.51548531, 0.51607498, 0.51666465, 0.51725432, 0.51784399, 0.51843366, 0.51902333, 0.519613, 0.52020267, 0.52079234, 0.52138201, 0.52197168, 0.52256135, 0.52315102, 0.52374069, 0.52433036, 0.52492003, 0.5255097, 0.52609937, 0.52668904, 0.52727871, 0.52786838, 0.52845805, 0.52904772, 0.52963739, 0.53022706, 0.53081673, 0.5314064, 0.53199607, 0.53258574, 0.53317541, 0.53376508, 0.53435475, 0.53494441, 0.53553408, 0.53612375, 0.53671342, 0.53730309, 0.53789276, 0.53848243, 0.5390721, 0.53966177, 0.54025144, 0.54084111, 0.54143078, 0.54202045, 0.54261012, 0.54319979, 0.54378946, 0.54437913, 0.5449688, 0.54555847, 0.54614814, 0.54673781, 0.54732748, 0.54791715, 0.54850682, 0.54909649, 0.54968616, 0.55027583, 0.5508655, 0.55145517, 0.55204484, 0.55263451, 0.55322418, 0.55381385, 0.55440352, 0.55499319, 0.55558286, 0.55617253, 0.5567622, 0.55735187, 0.55794154, 0.55853121, 0.55912088, 0.55971055, 0.56030022, 0.56088989, 0.56147956, 0.56206923, 0.5626589, 0.56324857, 0.56383824, 0.56442791, 0.56501758, 0.56560725, 0.56619692, 0.56678659, 0.56737626, 0.56796593, 0.5685556, 0.56914527, 0.56973494, 0.57032461, 0.57091428, 0.57150395, 0.57209362, 0.57268329, 0.57327296, 0.57386262, 0.57445229, 0.57504196, 0.57563163, 0.5762213, 0.57681097, 0.57740064, 0.57799031, 0.57857998, 0.57916965, 0.57975932, 0.58034899, 0.58093866, 0.58152833, 0.582118, 0.58270767, 0.58329734, 0.58388701, 0.58447668, 0.58506635, 0.58565602, 0.58624569, 0.58683536, 0.58742503, 0.5880147, 0.58860437, 0.58919404] }, { "type": "double", "attributes": {}, "value": [-207.48708924, -205.01273994, -202.56744233, -200.15100891, -197.76323994, -195.4039246, -193.07284198, -190.76976208, -188.49444675, -186.24665049, -184.0261213, -181.83260139, -179.66582793, -177.52553365, -175.41144745, -173.32329502, -171.2607993, -169.223681, -167.21165906, -165.22445107, -163.26177364, -161.32334277, -159.40887422, -157.51808376, -155.65068751, -153.80640217, -151.98494526, -150.18603537, -148.40939235, -146.65473748, -144.92179367, -143.21028561, -141.51993987, -139.85048511, -138.2016521, -136.57317391, -134.96478595, -133.37622607, -131.80723466, -130.25755467, -128.72693169, -127.21511402, -125.72185268, -124.24690147, -122.790017, -121.3509587, -119.92948887, -118.52537264, -117.13837807, -115.76827606, -114.41484042, -113.07784786, -111.75707796, -110.4523132, -109.16333891, -107.88994329, -106.6319174, -105.38905513, -104.16115316, -102.94801101, -101.74943095, -100.565218, -99.39517992, -98.23912718, -97.09687293, -95.96823297, -94.85302573, -93.75107224, -92.66219611, -91.58622348, -90.522983, -89.47230583, -88.43402554, -87.40797817, -86.39400213, -85.39193817, -84.40162941, -83.42292124, -82.45566133, -81.49969958, -80.55488812, -79.62108122, -78.69813533, -77.78590897, -76.88426279, -75.99305946, -75.1121637, -74.2414422, -73.38076362, -72.52999856, -71.68901952, -70.85770089, -70.03591888, -69.22355154, -68.42047872, -67.62658201, -66.84174476, -66.065852, -65.29879048, -64.54044858, -63.79071633, -63.04948534, -62.31664883, -61.59210155, -60.8757398, -60.16746138, -59.46716557, -58.77475311, -58.09012617, -57.41318835, -56.74384463, -56.08200135, -55.42756622, -54.78044825, -54.14055777, -53.50780639, -52.88210699, -52.26337367, -51.65152177, -51.04646784, -50.44812961, -49.85642596, -49.27127693, -48.69260369, -48.12032852, -47.55437478, -46.99466693, -46.44113047, -45.89369194, -45.35227891, -44.81681997, -44.2872447, -43.76348363, -43.24546828, -42.73313111, -42.22640552, -41.72522581, -41.22952718, -40.73924575, -40.25431848, -39.7746832, -39.30027861, -38.8310442, -38.36692033, -37.90784814, -37.45376956, -37.00462733, -36.56036493, -36.12092662, -35.6862574, -35.25630302, -34.83100993, -34.41032531, -33.99419704, -33.5825737, -33.17540452, -32.77263944, -32.37422904, -31.98012455, -31.59027785, -31.20464144, -30.82316845, -30.44581262, -30.07252828, -29.70327038, -29.33799443, -28.97665653, -28.61921334, -28.26562208, -27.91584052, -27.56982699, -27.22754032, -26.88893989, -26.5539856, -26.22263784, -25.89485754, -25.57060608, -25.24984536, -24.93253775, -24.61864611, -24.30813374, -24.00096443, -23.69710239, -23.39651231, -23.0991593, -22.80500893, -22.51402715, -22.22618039, -21.94143545, -21.65975956, -21.38112036, -21.10548587, -20.83282452, -20.56310512, -20.29629686, -20.0323693, -19.77129238, -19.51303641, -19.25757206, -19.00487033, -18.75490259, -18.50764057, -18.26305632, -18.02112223, -17.78181102, -17.54509573, -17.31094975, -17.07934675, -16.85026075, -16.62366603, -16.39953724, -16.17784926, -15.95857733, -15.74169693, -15.52718387, -15.31501421, -15.10516431, -14.8976108, -14.6923306, -14.48930086, -14.28849904, -14.08990282, -13.89349018, -13.69923933, -13.50712872, -13.31713708, -13.12924337, -12.94342678, -12.75966675, -12.57794296, -12.3982353, -12.22052393, -12.04478919, -11.87101167, -11.69917217, -11.52925171, -11.36123153, -11.19509307, -11.03081799, -10.86838815, -10.70778561, -10.54899264, -10.39199169, -10.23676544, -10.08329672, -9.93156858, -9.78156426, -9.63326715, -9.48666087, -9.34172919, -9.19845608, -9.05682566, -8.91682224, -8.7784303, -8.6416345, -8.50641964, -8.37277072, -8.24067288, -8.11011142, -7.98107181, -7.85353968, -7.72750081, -7.60294112, -7.47984671, -7.3582038, -7.23799877, -7.11921816, -7.00184863, -6.88587699, -6.77129021, -6.65807536, -6.54621969, -6.43571056, -6.32653546, -6.21868203, -6.11213802, -6.00689133, -5.90292997, -5.80024209, -5.69881596, -5.59863996, -5.49970261, -5.40199254, -5.30549849, -5.21020934, -5.11611406, -5.02320175, -4.93146163, -4.84088301, -4.75145531, -4.6631681, -4.57601099, -4.48997376, -4.40504626, -4.32121845, -4.2384804, -4.15682226, -4.07623432, -3.99670692, -3.91823054, -3.84079574, -3.76439316, -3.68901356, -3.61464778, -3.54128675, -3.4689215, -3.39754315, -3.3271429, -3.25771204, -3.18924195, -3.12172411, -3.05515005, -2.98951142, -2.92479994, -2.8610074, -2.79812568, -2.73614675, -2.67506265, -2.6148655, -2.55554749, -2.4971009, -2.43951808, -2.38279145, -2.32691351, -2.27187684, -2.21767407, -2.16429793, -2.1117412, -2.05999674, -2.00905747, -1.9589164, -1.90956658, -1.86100113, -1.81321327, -1.76619625, -1.71994339, -1.67444809, -1.6297038, -1.58570404, -1.54244238, -1.49991247, -1.458108, -1.41702274, -1.3766505, -1.33698516, -1.29802067, -1.25975101, -1.22217023, -1.18527245, -1.14905181, -1.11350255, -1.07861893, -1.04439528, -1.01082598, -0.97790545, -0.94562818, -0.91398871, -0.88298163, -0.85260156, -0.82284319, -0.79370127, -0.76517057, -0.73724593, -0.70992222, -0.68319438, -0.65705738, -0.63150625, -0.60653604, -0.58214187, -0.55831889, -0.53506232, -0.51236739, -0.49022939, -0.46864365, -0.44760555, -0.42711051, -0.40715398, -0.38773146, -0.36883849, -0.35047066, -0.33262357, -0.3152929, -0.29847435, -0.28216364, -0.26635656, -0.25104893, -0.23623658, -0.22191542, -0.20808137, -0.19473039, -0.18185847, -0.16946166, -0.15753603, -0.14607767, -0.13508273, -0.12454737, -0.11446782, -0.1048403, -0.0956611, -0.08692652, -0.07863289, -0.0707766, -0.06335404, -0.05636165, -0.0497959, -0.04365329, -0.03793034, -0.03262361, -0.02772969, -0.0232452, -0.0191668, -0.01549114, -0.01221495, -0.00933496, -0.00684793, -0.00475064, -0.00303993, -0.00171264, -0.00076563, -0.00019582, -1.2554338e-07, -0.0001755, -0.00071894, -0.00162743, -0.00289801, -0.00452774, -0.00651369, -0.00885299, -0.01154275, -0.01458014, -0.01796234, -0.02168655, -0.02574999, -0.03014993, -0.03488364, -0.0399484, -0.04534156, -0.05106044, -0.05710242, -0.06346488, -0.07014524, -0.07714092, -0.08444939, -0.09206811, -0.09999458, -0.10822632, -0.11676087, -0.12559578, -0.13472864, -0.14415705, -0.15387861, -0.16389098, -0.17419182, -0.18477879, -0.1956496, -0.20680196, -0.21823361, -0.22994231, -0.24192582, -0.25418193, -0.26670847, -0.27950325, -0.29256411, -0.30588893, -0.31947558, -0.33332196, -0.34742599, -0.36178559, -0.37639872, -0.39126334, -0.40637744, -0.42173901, -0.43734606, -0.45319664, -0.46928879, -0.48562057, -0.50219005, -0.51899534, -0.53603455, -0.55330579, -0.57080721, -0.58853697, -0.60649323, -0.62467418, -0.64307802, -0.66170296, -0.68054723, -0.69960908, -0.71888676, -0.73837854, -0.75808271, -0.77799756, -0.79812141, -0.81845257, -0.8389894, -0.85973024, -0.88067345, -0.90181742, -0.92316053, -0.9447012, -0.96643782, -0.98836884, -1.0104927, -1.03280784, -1.05531274, -1.07800587, -1.10088572, -1.12395079, -1.14719961, -1.17063068, -1.19424255, -1.21803377, -1.24200289, -1.26614849, -1.29046915, -1.31496347, -1.33963004, -1.36446748, -1.38947442, -1.4146495, -1.43999135, -1.46549865, -1.49117005, -1.51700424, -1.5429999, -1.56915573, -1.59547045, -1.62194277, -1.64857141, -1.67535513, -1.70229266, -1.72938277, -1.75662422, -1.78401579, -1.81155626, -1.83924444, -1.86707912, -1.89505912, -1.92318327, -1.9514504, -1.97985934, -2.00840895, -2.03709809, -2.06592562, -2.09489042, -2.12399137, -2.15322738, -2.18259733, -2.21210015, -2.24173474, -2.27150004, -2.30139498, -2.3314185, -2.36156955, -2.3918471, -2.4222501, -2.45277754, -2.48342839, -2.51420165, -2.54509631, -2.57611137, -2.60724586, -2.63849878, -2.66986917, -2.70135607, -2.7329585, -2.76467553, -2.7965062, -2.82844958, -2.86050475, -2.89267077, -2.92494674, -2.95733174, -2.98982487, -3.02242523, -3.05513194, -3.08794411, -3.12086087, -3.15388135, -3.18700468, -3.22023002, -3.2535565, -3.28698328, -3.32050953, -3.35413442, -3.38785712, -3.42167681, -3.45559268, -3.48960392, -3.52370973, -3.55790931, -3.59220188, -3.62658665, -3.66106284, -3.69562969, -3.73028642, -3.76503228, -3.7998665, -3.83478835, -3.86979707, -3.90489192, -3.94007218, -3.97533711, -4.010686, -4.04611812, -4.08163276, -4.11722922, -4.15290679, -4.18866478, -4.22450249, -4.26041924, -4.29641435, -4.33248714, -4.36863694, -4.40486308, -4.4411649, -4.47754174, -4.51399294, -4.55051787, -4.58711588, -4.62378633, -4.66052858, -4.69734201, -4.734226, -4.77117991, -4.80820314, -4.84529507, -4.8824551, -4.91968262, -4.95697704, -4.99433777, -5.0317642, -5.06925576, -5.10681187, -5.14443195, -5.18211542, -5.21986172, -5.25767027, -5.29554053, -5.33347194, -5.37146393, -5.40951597, -5.4476275, -5.48579799, -5.5240269, -5.5623137, -5.60065785, -5.63905883, -5.67751612, -5.71602919, -5.75459755, -5.79322066, -5.83189804, -5.87062916, -5.90941354, -5.94825067, -5.98714006, -6.02608123, -6.06507368, -6.10411694, -6.14321052, -6.18235395, -6.22154675, -6.26078846, -6.30007861, -6.33941674, -6.37880238, -6.41823509, -6.4577144, -6.49723988, -6.53681106, -6.57642752, -6.6160888, -6.65579447, -6.6955441, -6.73533725, -6.7751735, -6.81505242, -6.85497359, -6.89493659, -6.93494101, -6.97498642, -7.01507243, -7.05519862, -7.09536458, -7.13556992, -7.17581424, -7.21609714, -7.25641822, -7.2967771, -7.33717339, -7.3776067, -7.41807664, -7.45858285, -7.49912494, -7.53970254, -7.58031527, -7.62096276, -7.66164465, -7.70236058, -7.74311018, -7.78389309, -7.82470895, -7.86555741, -7.90643813, -7.94735074, -7.9882949, -8.02927027, -8.07027651, -8.11131327, -8.15238021, -8.19347701, -8.23460333, -8.27575883, -8.3169432, -8.35815609, -8.3993972, -8.44066619, -8.48196275, -8.52328656, -8.56463731, -8.60601468, -8.64741836, -8.68884805, -8.73030343, -8.77178421, -8.81329008, -8.85482073, -8.89637588, -8.93795523, -8.97955848, -9.02118533, -9.06283551, -9.10450872, -9.14620468, -9.1879231, -9.22966369, -9.27142619, -9.31321031, -9.35501577, -9.39684231, -9.43868964, -9.4805575, -9.52244562, -9.56435373, -9.60628157, -9.64822887, -9.69019537, -9.73218081, -9.77418494, -9.81620749, -9.85824822, -9.90030686, -9.94238318, -9.98447691, -10.02658782, -10.06871566, -10.11086017, -10.15302113, -10.19519828, -10.2373914, -10.27960023, -10.32182456, -10.36406413, -10.40631872, -10.4485881, -10.49087204, -10.53317031, -10.57548268, -10.61780893, -10.66014883, -10.70250217, -10.74486872, -10.78724827, -10.82964059, -10.87204547, -10.9144627, -10.95689206, -10.99933334, -11.04178634, -11.08425084, -11.12672663, -11.16921351, -11.21171128, -11.25421974, -11.29673867, -11.33926788, -11.38180718, -11.42435636, -11.46691522, -11.50948358, -11.55206124, -11.59464801, -11.6372437, -11.67984811, -11.72246106, -11.76508236, -11.80771182, -11.85034927, -11.89299451, -11.93564738, -11.97830767, -12.02097522, -12.06364985, -12.10633138, -12.14901964, -12.19171444, -12.23441562, -12.277123, -12.31983642, -12.36255569, -12.40528067, -12.44801116, -12.49074702, -12.53348807, -12.57623415, -12.6189851, -12.66174075, -12.70450095, -12.74726553, -12.79003433, -12.8328072, -12.87558398, -12.91836452, -12.96114866, -13.00393624, -13.04672712, -13.08952115, -13.13231816, -13.17511802, -13.21792058, -13.26072568, -13.30353318, -13.34634295, -13.38915482, -13.43196866, -13.47478433, -13.51760169, -13.56042059, -13.60324089, -13.64606246, -13.68888517, -13.73170886, -13.77453341, -13.81735869, -13.86018455, -13.90301087, -13.94583751, -13.98866435, -14.03149125, -14.07431808, -14.11714471, -14.15997103, -14.20279689, -14.24562218, -14.28844677, -14.33127053, -14.37409335, -14.4169151, -14.45973565, -14.50255489, -14.54537271, -14.58818896, -14.63100356, -14.67381636, -14.71662726, -14.75943614, -14.80224289, -14.84504738, -14.88784952, -14.93064918, -14.97344625, -15.01624063, -15.0590322, -15.10182085, -15.14460647, -15.18738896, -15.23016821, -15.2729441, -15.31571655, -15.35848543, -15.40125065, -15.4440121, -15.48676968, -15.52952329, -15.57227282, -15.61501817, -15.65775925, -15.70049596, -15.74322819, -15.78595585, -15.82867883, -15.87139706, -15.91411041, -15.95681881, -15.99952216, -16.04222036, -16.08491332, -16.12760095, -16.17028315, -16.21295984, -16.25563092, -16.2982963, -16.34095589, -16.38360961, -16.42625736, -16.46889906, -16.51153461, -16.55416395, -16.59678697, -16.63940359, -16.68201373, -16.7246173, -16.76721423, -16.80980442, -16.85238779, -16.89496427, -16.93753377, -16.98009622] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_CentralDose"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "data", "args", "profile"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["de", "de_err", "OD", "OD_err", "rel_OD", "rel_OD_err", "Lmax"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [5.46378046] }, { "type": "double", "attributes": {}, "value": [1.55624921] }, { "type": "double", "attributes": {}, "value": [4.7975743e-17] }, { "type": "double", "attributes": {}, "value": [89360555731167856] }, { "type": "double", "attributes": {}, "value": [8.78068645e-16] }, { "type": "double", "attributes": {}, "value": [1.6355078034545879e+18] }, { "type": "double", "attributes": {}, "value": [-14.64259264] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ED", "ED_Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [2, 3, 4, 5, 6, 7, 8, 9, 10] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [5.18364332, 4.16437139, 6.5952808, 5.32950777, 4.17953162, 5.48742905, 5.73832471, 5.57578135, 4.69461161] }, { "type": "double", "attributes": {}, "value": [5.38984324, 4.37875942, 2.78530011, 6.12493092, 4.95506639, 4.98380974, 5.94383621, 5.8212212, 5.59390132] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["log", "sigmab"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [false] }, { "type": "double", "attributes": {}, "value": [0] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["sig", "llik"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 155373241328185.88, 310746482656371.75, 466119723984557.62, 621492965312743.5, 776866206640929.25, 932239447969115.25, 1087612689297301, 1242985930625487, 1398359171953672.8, 1553732413281858.5, 1709105654610044.2, 1864478895938230.5, 2019852137266416.2, 2175225378594602, 2330598619922788, 2485971861250974, 2641345102579159.5, 2796718343907345.5, 2952091585235531.5, 3107464826563717, 3262838067891903.5, 3418211309220088.5, 3573584550548275, 3728957791876461, 3884331033204646.5, 4039704274532832.5, 4195077515861018.5, 4350450757189204, 4505823998517390, 4661197239845576, 4816570481173762, 4971943722501948, 5127316963830134, 5282690205158319, 5438063446486505, 5593436687814691, 5748809929142877, 5904183170471063, 6059556411799249, 6214929653127434, 6370302894455621, 6525676135783807, 6681049377111993, 6836422618440177, 6991795859768364, 7147169101096550, 7302542342424736, 7457915583752922, 7613288825081108, 7768662066409293, 7924035307737479, 8079408549065665, 8234781790393851, 8390155031722037, 8545528273050223, 8700901514378408, 8856274755706594, 9011647997034780, 9167021238362966, 9322394479691152, 9477767721019338, 9633140962347524, 9788514203675710, 9943887445003896, 10099260686332082, 10254633927660268, 10410007168988452, 10565380410316638, 10720753651644824, 10876126892973010, 11031500134301196, 11186873375629382, 11342246616957568, 11497619858285754, 11652993099613940, 11808366340942126, 11963739582270312, 12119112823598498, 12274486064926682, 12429859306254868, 12585232547583054, 12740605788911242, 12895979030239428, 13051352271567614, 13206725512895800, 13362098754223986, 13517471995552172, 13672845236880354, 13828218478208540, 13983591719536728, 14138964960864914, 14294338202193100, 14449711443521286, 14605084684849472, 14760457926177658, 14915831167505844, 15071204408834030, 15226577650162216, 15381950891490400, 15537324132818586, 15692697374146772, 15848070615474958, 16003443856803144, 16158817098131330, 16314190339459516, 16469563580787702, 16624936822115888, 16780310063444074, 16935683304772260, 17091056546100446, 17246429787428630, 17401803028756816, 17557176270085002, 17712549511413188, 17867922752741374, 18023295994069560, 18178669235397748, 18334042476725932, 18489415718054120, 18644788959382304, 18800162200710492, 18955535442038676, 19110908683366860, 19266281924695048, 19421655166023232, 19577028407351420, 19732401648679604, 19887774890007792, 20043148131335976, 20198521372664164, 20353894613992348, 20509267855320536, 20664641096648720, 20820014337976904, 20975387579305092, 21130760820633276, 21286134061961464, 21441507303289648, 21596880544617836, 21752253785946020, 21907627027274208, 22063000268602392, 22218373509930580, 22373746751258764, 22529119992586952, 22684493233915136, 22839866475243320, 22995239716571508, 23150612957899692, 23305986199227880, 23461359440556064, 23616732681884252, 23772105923212436, 23927479164540624, 24082852405868808, 24238225647196996, 24393598888525184, 24548972129853364, 24704345371181552, 24859718612509736, 25015091853837924, 25170465095166108, 25325838336494296, 25481211577822484, 25636584819150668, 25791958060478856, 25947331301807040, 26102704543135228, 26258077784463408, 26413451025791600, 26568824267119780, 26724197508447972, 26879570749776156, 27034943991104344, 27190317232432528, 27345690473760708, 27501063715088900, 27656436956417080, 27811810197745272, 27967183439073456, 28122556680401644, 28277929921729828, 28433303163058016, 28588676404386200, 28744049645714388, 28899422887042572, 29054796128370752, 29210169369698944, 29365542611027128, 29520915852355316, 29676289093683500, 29831662335011688, 29987035576339872, 30142408817668060, 30297782058996244, 30453155300324432, 30608528541652616, 30763901782980800, 30919275024308988, 31074648265637172, 31230021506965360, 31385394748293544, 31540767989621732, 31696141230949916, 31851514472278104, 32006887713606288, 32162260954934476, 32317634196262660, 32473007437590848, 32628380678919032, 32783753920247216, 32939127161575404, 33094500402903588, 33249873644231776, 33405246885559960, 33560620126888148, 33715993368216332, 33871366609544520, 34026739850872704, 34182113092200892, 34337486333529076, 34492859574857260, 34648232816185448, 34803606057513632, 34958979298841820, 35114352540170004, 35269725781498192, 35425099022826376, 35580472264154564, 35735845505482748, 35891218746810936, 36046591988139120, 36201965229467304, 36357338470795496, 36512711712123672, 36668084953451864, 36823458194780048, 36978831436108240, 37134204677436424, 37289577918764608, 37444951160092792, 37600324401420984, 37755697642749168, 37911070884077352, 38066444125405536, 38221817366733720, 38377190608061912, 38532563849390096, 38687937090718280, 38843310332046464, 38998683573374656, 39154056814702840, 39309430056031024, 39464803297359208, 39620176538687400, 39775549780015584, 39930923021343768, 40086296262671952, 40241669504000136, 40397042745328328, 40552415986656512, 40707789227984696, 40863162469312880, 41018535710641072, 41173908951969256, 41329282193297440, 41484655434625624, 41640028675953808, 41795401917282000, 41950775158610184, 42106148399938368, 42261521641266552, 42416894882594744, 42572268123922928, 42727641365251112, 42883014606579296, 43038387847907488, 43193761089235672, 43349134330563856, 43504507571892040, 43659880813220224, 43815254054548416, 43970627295876600, 44126000537204784, 44281373778532968, 44436747019861160, 44592120261189344, 44747493502517528, 44902866743845712, 45058239985173904, 45213613226502088, 45368986467830272, 45524359709158456, 45679732950486640, 45835106191814832, 45990479433143016, 46145852674471200, 46301225915799384, 46456599157127576, 46611972398455760, 46767345639783944, 46922718881112128, 47078092122440312, 47233465363768504, 47388838605096688, 47544211846424872, 47699585087753056, 47854958329081248, 48010331570409432, 48165704811737616, 48321078053065800, 48476451294393992, 48631824535722176, 48787197777050368, 48942571018378544, 49097944259706728, 49253317501034920, 49408690742363104, 49564063983691296, 49719437225019472, 49874810466347664, 50030183707675848, 50185556949004040, 50340930190332216, 50496303431660408, 50651676672988592, 50807049914316776, 50962423155644968, 51117796396973144, 51273169638301336, 51428542879629520, 51583916120957712, 51739289362285888, 51894662603614080, 52050035844942264, 52205409086270456, 52360782327598640, 52516155568926816, 52671528810255008, 52826902051583200, 52982275292911384, 53137648534239560, 53293021775567744, 53448395016895944, 53603768258224128, 53759141499552312, 53914514740880488, 54069887982208688, 54225261223536872, 54380634464865056, 54536007706193240, 54691380947521416, 54846754188849616, 55002127430177800, 55157500671505984, 55312873912834160, 55468247154162360, 55623620395490544, 55778993636818728, 55934366878146912, 56089740119475088, 56245113360803288, 56400486602131472, 56555859843459656, 56711233084787832, 56866606326116032, 57021979567444216, 57177352808772400, 57332726050100584, 57488099291428776, 57643472532756960, 57798845774085144, 57954219015413328, 58109592256741504, 58264965498069704, 58420338739397888, 58575711980726072, 58731085222054256, 58886458463382448, 59041831704710632, 59197204946038816, 59352578187367000, 59507951428695192, 59663324670023376, 59818697911351560, 59974071152679744, 60129444394007928, 60284817635336120, 60440190876664304, 60595564117992488, 60750937359320672, 60906310600648864, 61061683841977048, 61217057083305232, 61372430324633416, 61527803565961600, 61683176807289792, 61838550048617976, 61993923289946160, 62149296531274344, 62304669772602536, 62460043013930720, 62615416255258904, 62770789496587088, 62926162737915280, 63081535979243464, 63236909220571648, 63392282461899832, 63547655703228016, 63703028944556208, 63858402185884392, 64013775427212576, 64169148668540760, 64324521909868952, 64479895151197136, 64635268392525320, 64790641633853504, 64946014875181696, 65101388116509880, 65256761357838064, 65412134599166248, 65567507840494432, 65722881081822624, 65878254323150808, 66033627564478992, 66189000805807176, 66344374047135368, 66499747288463552, 66655120529791736, 66810493771119920, 66965867012448104, 67121240253776296, 67276613495104480, 67431986736432664, 67587359977760848, 67742733219089040, 67898106460417224, 68053479701745408, 68208852943073592, 68364226184401784, 68519599425729968, 68674972667058152, 68830345908386336, 68985719149714520, 69141092391042712, 69296465632370896, 69451838873699080, 69607212115027264, 69762585356355456, 69917958597683640, 70073331839011824, 70228705080340008, 70384078321668200, 70539451562996384, 70694824804324568, 70850198045652752, 71005571286980936, 71160944528309128, 71316317769637312, 71471691010965496, 71627064252293680, 71782437493621872, 71937810734950056, 72093183976278240, 72248557217606432, 72403930458934608, 72559303700262800, 72714676941590992, 72870050182919168, 73025423424247344, 73180796665575552, 73336169906903728, 73491543148231920, 73646916389560096, 73802289630888288, 73957662872216480, 74113036113544656, 74268409354872848, 74423782596201024, 74579155837529216, 74734529078857408, 74889902320185584, 75045275561513776, 75200648802841968, 75356022044170144, 75511395285498336, 75666768526826512, 75822141768154704, 75977515009482896, 76132888250811072, 76288261492139264, 76443634733467440, 76599007974795632, 76754381216123824, 76909754457452000, 77065127698780192, 77220500940108384, 77375874181436560, 77531247422764752, 77686620664092928, 77841993905421120, 77997367146749312, 78152740388077488, 78308113629405680, 78463486870733856, 78618860112062048, 78774233353390240, 78929606594718416, 79084979836046608, 79240353077374800, 79395726318702976, 79551099560031168, 79706472801359344, 79861846042687536, 80017219284015728, 80172592525343904, 80327965766672096, 80483339008000272, 80638712249328464, 80794085490656656, 80949458731984832, 81104831973313024, 81260205214641216, 81415578455969392, 81570951697297584, 81726324938625760, 81881698179953952, 82037071421282144, 82192444662610320, 82347817903938512, 82503191145266688, 82658564386594880, 82813937627923072, 82969310869251248, 83124684110579440, 83280057351907616, 83435430593235808, 83590803834564000, 83746177075892176, 83901550317220368, 84056923558548560, 84212296799876736, 84367670041204928, 84523043282533104, 84678416523861296, 84833789765189488, 84989163006517664, 85144536247845856, 85299909489174032, 85455282730502224, 85610655971830416, 85766029213158592, 85921402454486784, 86076775695814976, 86232148937143152, 86387522178471344, 86542895419799520, 86698268661127712, 86853641902455904, 87009015143784080, 87164388385112272, 87319761626440448, 87475134867768640, 87630508109096832, 87785881350425008, 87941254591753200, 88096627833081392, 88252001074409568, 88407374315737760, 88562747557065936, 88718120798394128, 88873494039722320, 89028867281050496, 89184240522378688, 89339613763706864, 89494987005035056, 89650360246363248, 89805733487691424, 89961106729019616, 90116479970347808, 90271853211675984, 90427226453004176, 90582599694332352, 90737972935660544, 90893346176988736, 91048719418316912, 91204092659645104, 91359465900973280, 91514839142301472, 91670212383629664, 91825585624957840, 91980958866286032, 92136332107614224, 92291705348942400, 92447078590270592, 92602451831598768, 92757825072926960, 92913198314255152, 93068571555583328, 93223944796911520, 93379318038239696, 93534691279567888, 93690064520896080, 93845437762224256, 94000811003552448, 94156184244880624, 94311557486208816, 94466930727537008, 94622303968865184, 94777677210193376, 94933050451521568, 95088423692849744, 95243796934177936, 95399170175506112, 95554543416834320, 95709916658162496, 95865289899490672, 96020663140818864, 96176036382147040, 96331409623475232, 96486782864803424, 96642156106131600, 96797529347459792, 96952902588787984, 97108275830116160, 97263649071444352, 97419022312772528, 97574395554100736, 97729768795428912, 97885142036757088, 98040515278085280, 98195888519413456, 98351261760741664, 98506635002069840, 98662008243398016, 98817381484726208, 98972754726054400, 99128127967382592, 99283501208710768, 99438874450038944, 99594247691367136, 99749620932695328, 99904994174023504, 1.000603674153517e+17, 1.0021574065667987e+17, 1.0037111389800808e+17, 1.0052648713933626e+17, 1.0068186038066443e+17, 1.0083723362199262e+17, 1.0099260686332082e+17, 1.0114798010464901e+17, 1.0130335334597718e+17, 1.0145872658730536e+17, 1.0161409982863355e+17, 1.0176947306996174e+17, 1.0192484631128994e+17, 1.0208021955261811e+17, 1.0223559279394629e+17, 1.023909660352745e+17, 1.0254633927660267e+17, 1.0270171251793085e+17, 1.0285708575925904e+17, 1.0301245900058723e+17, 1.0316783224191542e+17, 1.033232054832436e+17, 1.0347857872457178e+17, 1.0363395196589997e+17, 1.0378932520722816e+17, 1.0394469844855635e+17, 1.0410007168988453e+17, 1.042554449312127e+17, 1.0441081817254091e+17, 1.0456619141386909e+17, 1.0472156465519728e+17, 1.0487693789652546e+17, 1.0503231113785363e+17, 1.0518768437918184e+17, 1.0534305762051002e+17, 1.0549843086183821e+17, 1.056538041031664e+17, 1.0580917734449456e+17, 1.0596455058582277e+17, 1.0611992382715096e+17, 1.0627529706847912e+17, 1.0643067030980733e+17, 1.0658604355113549e+17, 1.067414167924637e+17, 1.0689679003379189e+17, 1.0705216327512005e+17, 1.0720753651644826e+17, 1.0736290975777642e+17, 1.0751828299910462e+17, 1.0767365624043282e+17, 1.0782902948176098e+17, 1.0798440272308918e+17, 1.0813977596441738e+17, 1.0829514920574555e+17, 1.0845052244707374e+17, 1.086058956884019e+17, 1.0876126892973011e+17, 1.089166421710583e+17, 1.0907201541238648e+17, 1.0922738865371467e+17, 1.0938276189504283e+17, 1.0953813513637104e+17, 1.0969350837769923e+17, 1.0984888161902739e+17, 1.100042548603556e+17, 1.1015962810168379e+17, 1.1031500134301197e+17, 1.1047037458434016e+17, 1.1062574782566832e+17, 1.1078112106699653e+17, 1.1093649430832472e+17, 1.110918675496529e+17, 1.1124724079098109e+17, 1.1140261403230925e+17, 1.1155798727363746e+17, 1.1171336051496565e+17, 1.1186873375629382e+17, 1.1202410699762202e+17, 1.1217948023895018e+17, 1.1233485348027838e+17, 1.1249022672160658e+17, 1.1264559996293475e+17, 1.1280097320426294e+17, 1.1295634644559114e+17, 1.1311171968691931e+17, 1.132670929282475e+17, 1.1342246616957566e+17, 1.1357783941090387e+17, 1.1373321265223206e+17, 1.1388858589356024e+17, 1.1404395913488843e+17, 1.1419933237621659e+17, 1.143547056175448e+17, 1.1451007885887299e+17, 1.1466545210020117e+17, 1.1482082534152936e+17, 1.1497619858285755e+17, 1.1513157182418573e+17, 1.1528694506551392e+17, 1.154423183068421e+17, 1.1559769154817029e+17, 1.1575306478949848e+17, 1.1590843803082666e+17, 1.1606381127215485e+17, 1.1621918451348301e+17, 1.1637455775481122e+17, 1.1652993099613941e+17, 1.1668530423746758e+17, 1.1684067747879578e+17, 1.1699605072012397e+17, 1.1715142396145214e+17, 1.1730679720278034e+17, 1.1746217044410851e+17, 1.176175436854367e+17, 1.177729169267649e+17, 1.1792829016809307e+17, 1.1808366340942126e+17, 1.1823903665074944e+17, 1.1839440989207763e+17, 1.1854978313340582e+17, 1.18705156374734e+17, 1.1886052961606219e+17, 1.1901590285739038e+17, 1.1917127609871856e+17, 1.1932664934004675e+17, 1.1948202258137493e+17, 1.1963739582270312e+17, 1.1979276906403131e+17, 1.1994814230535949e+17, 1.2010351554668768e+17, 1.2025888878801586e+17, 1.2041426202934405e+17, 1.2056963527067224e+17, 1.2072500851200042e+17, 1.2088038175332861e+17, 1.210357549946568e+17, 1.2119112823598498e+17, 1.2134650147731317e+17, 1.2150187471864134e+17, 1.2165724795996954e+17, 1.2181262120129773e+17, 1.219679944426259e+17, 1.221233676839541e+17, 1.2227874092528227e+17, 1.2243411416661046e+17, 1.2258948740793866e+17, 1.2274486064926683e+17, 1.2290023389059502e+17, 1.230556071319232e+17, 1.2321098037325139e+17, 1.2336635361457958e+17, 1.2352172685590776e+17, 1.2367710009723595e+17, 1.2383247333856414e+17, 1.2398784657989232e+17, 1.2414321982122051e+17, 1.2429859306254869e+17, 1.2445396630387688e+17, 1.2460933954520507e+17, 1.2476471278653325e+17, 1.2492008602786144e+17, 1.2507545926918962e+17, 1.2523083251051781e+17, 1.25386205751846e+17, 1.2554157899317418e+17, 1.2569695223450237e+17, 1.2585232547583056e+17, 1.2600769871715874e+17, 1.2616307195848693e+17, 1.263184451998151e+17, 1.264738184411433e+17, 1.2662919168247149e+17, 1.2678456492379966e+17, 1.2693993816512786e+17, 1.2709531140645603e+17, 1.2725068464778422e+17, 1.2740605788911242e+17, 1.2756143113044059e+17, 1.2771680437176878e+17, 1.2787217761309698e+17, 1.2802755085442515e+17, 1.2818292409575334e+17, 1.2833829733708152e+17, 1.2849367057840971e+17, 1.286490438197379e+17, 1.2880441706106608e+17, 1.2895979030239427e+17, 1.2911516354372245e+17, 1.2927053678505064e+17, 1.2942591002637883e+17, 1.2958128326770701e+17, 1.297366565090352e+17, 1.2989202975036339e+17, 1.3004740299169157e+17, 1.3020277623301976e+17, 1.3035814947434794e+17, 1.3051352271567613e+17, 1.3066889595700432e+17, 1.308242691983325e+17, 1.3097964243966069e+17, 1.3113501568098886e+17, 1.3129038892231706e+17, 1.3144576216364525e+17, 1.3160113540497342e+17, 1.3175650864630162e+17, 1.3191188188762981e+17, 1.3206725512895798e+17, 1.3222262837028618e+17, 1.3237800161161435e+17, 1.3253337485294254e+17, 1.3268874809427074e+17, 1.3284412133559891e+17, 1.329994945769271e+17, 1.3315486781825528e+17, 1.3331024105958347e+17, 1.3346561430091166e+17, 1.3362098754223984e+17, 1.3377636078356803e+17, 1.3393173402489621e+17, 1.340871072662244e+17, 1.3424248050755259e+17, 1.3439785374888077e+17, 1.3455322699020896e+17, 1.3470860023153715e+17, 1.3486397347286533e+17, 1.3501934671419352e+17, 1.351747199555217e+17, 1.3533009319684989e+17, 1.3548546643817808e+17, 1.3564083967950626e+17, 1.3579621292083445e+17, 1.3595158616216262e+17, 1.3610695940349082e+17, 1.3626233264481901e+17, 1.3641770588614718e+17, 1.3657307912747538e+17, 1.3672845236880357e+17, 1.3688382561013174e+17, 1.3703919885145994e+17, 1.3719457209278811e+17, 1.373499453341163e+17, 1.375053185754445e+17, 1.3766069181677267e+17, 1.3781606505810086e+17, 1.3797143829942904e+17, 1.3812681154075723e+17, 1.3828218478208542e+17, 1.384375580234136e+17, 1.3859293126474179e+17, 1.3874830450606998e+17, 1.3890367774739816e+17, 1.3905905098872635e+17, 1.3921442423005453e+17, 1.3936979747138272e+17, 1.3952517071271091e+17, 1.3968054395403909e+17, 1.3983591719536728e+17, 1.3999129043669546e+17, 1.4014666367802365e+17, 1.4030203691935184e+17, 1.4045741016068002e+17, 1.4061278340200821e+17, 1.407681566433364e+17, 1.4092352988466458e+17, 1.4107890312599277e+17, 1.4123427636732094e+17, 1.4138964960864914e+17, 1.4154502284997733e+17, 1.417003960913055e+17, 1.418557693326337e+17, 1.4201114257396187e+17, 1.4216651581529006e+17, 1.4232188905661826e+17, 1.4247726229794643e+17, 1.4263263553927462e+17, 1.4278800878060282e+17, 1.4294338202193099e+17, 1.4309875526325918e+17, 1.4325412850458736e+17, 1.4340950174591555e+17, 1.4356487498724374e+17, 1.4372024822857192e+17, 1.4387562146990011e+17, 1.4403099471122829e+17, 1.4418636795255648e+17, 1.4434174119388467e+17, 1.4449711443521286e+17, 1.4465248767654106e+17, 1.4480786091786922e+17, 1.4496323415919741e+17, 1.451186074005256e+17, 1.4527398064185376e+17, 1.4542935388318198e+17, 1.4558472712451018e+17, 1.4574010036583834e+17, 1.4589547360716653e+17, 1.4605084684849469e+17, 1.4620622008982291e+17, 1.463615933311511e+17, 1.4651696657247926e+17, 1.4667233981380746e+17, 1.4682771305513562e+17, 1.4698308629646384e+17, 1.4713845953779203e+17, 1.4729383277912019e+17, 1.4744920602044838e+17, 1.4760457926177658e+17, 1.4775995250310477e+17, 1.4791532574443296e+17, 1.4807069898576112e+17, 1.4822607222708931e+17, 1.483814454684175e+17, 1.485368187097457e+17, 1.4869219195107389e+17, 1.4884756519240205e+17, 1.4900293843373024e+17, 1.4915831167505843e+17, 1.4931368491638662e+17, 1.4946905815771482e+17, 1.4962443139904301e+17, 1.4977980464037117e+17, 1.4993517788169936e+17, 1.5009055112302755e+17, 1.5024592436435574e+17, 1.5040129760568394e+17, 1.505566708470121e+17, 1.5071204408834029e+17, 1.5086741732966848e+17, 1.5102279057099667e+17, 1.5117816381232486e+17, 1.5133353705365302e+17, 1.5148891029498122e+17, 1.5164428353630941e+17, 1.517996567776376e+17, 1.5195503001896579e+17, 1.5211040326029395e+17, 1.5226577650162214e+17, 1.5242114974295034e+17, 1.5257652298427853e+17, 1.5273189622560672e+17, 1.5288726946693488e+17, 1.5304264270826307e+17, 1.5319801594959126e+17, 1.5335338919091946e+17, 1.5350876243224765e+17, 1.5366413567357584e+17, 1.53819508914904e+17, 1.5397488215623219e+17, 1.5413025539756038e+17, 1.5428562863888858e+17, 1.5444100188021677e+17, 1.5459637512154493e+17, 1.5475174836287312e+17, 1.5490712160420131e+17, 1.550624948455295e+17, 1.552178680868577e+17, 1.5537324132818586e+17] }, { "type": "double", "attributes": {}, "value": [0, -294.73233796, -300.97066258, -304.61984856, -307.20898721, -309.21727917, -310.85817318, -312.2455293, -313.44731183, -314.50735915, -315.45560379, -316.31339541, -317.09649781, -317.81688217, -318.48385392, -319.10478977, -319.68563646, -320.23125805, -320.74568378, -321.23228877, -321.69392842, -322.1330399, -322.55172004, -322.9517859, -323.33482243, -323.70222038, -324.0552068, -324.39486975, -324.72217855, -325.03800043, -325.34311439, -325.6382228, -325.92396108, -326.20090601, -326.46958268, -326.73047051, -326.9840084, -327.23059917, -327.47061339, -327.70439277, -327.93225304, -328.15448656, -328.37136452, -328.583139, -328.79004466, -328.99230037, -329.19011053, -329.38366637, -329.57314706, -329.75872064, -329.94054501, -330.11876865, -330.29353142, -330.46496518, -330.63319438, -330.79833662, -330.96050317, -331.11979937, -331.27632505, -331.43017495, -331.58143902, -331.73020273, -331.87654742, -332.02055049, -332.16228571, -332.30182339, -332.43923064, -332.57457153, -332.7079073, -332.8392965, -332.96879514, -333.09645685, -333.22233303, -333.34647293, -333.4689238, -333.58973098, -333.70893802, -333.82658675, -333.9427174, -334.05736863, -334.17057767, -334.28238035, -334.39281118, -334.50190343, -334.60968915, -334.71619927, -334.82146362, -334.92551103, -335.02836929, -335.13006528, -335.23062499, -335.33007352, -335.42843515, -335.5257334, -335.621991, -335.71722998, -335.81147168, -335.90473676, -335.99704527, -336.08841661, -336.17886963, -336.26842261, -336.35709328, -336.44489885, -336.53185605, -336.61798111, -336.7032898, -336.78779747, -336.871519, -336.9544689, -337.03666125, -337.11810977, -337.1988278, -337.27882833, -337.35812399, -337.43672711, -337.51464968, -337.59190337, -337.66849958, -337.7444494, -337.81976364, -337.89445287, -337.96852736, -338.04199716, -338.11487205, -338.18716159, -338.25887512, -338.33002174, -338.40061033, -338.4706496, -338.54014801, -338.60911387, -338.67755526, -338.74548011, -338.81289616, -338.87981096, -338.94623193, -339.01216629, -339.07762112, -339.14260336, -339.20711976, -339.27117697, -339.33478148, -339.39793963, -339.46065765, -339.52294164, -339.58479755, -339.64623124, -339.70724842, -339.76785471, -339.8280556, -339.88785649, -339.94726264, -340.00627925, -340.06491138, -340.12316401, -340.18104202, -340.23855021, -340.29569325, -340.35247578, -340.40890229, -340.46497724, -340.52070497, -340.57608976, -340.63113581, -340.68584722, -340.74022805, -340.79428227, -340.84801377, -340.90142639, -340.95452389, -341.00730997, -341.05978825, -341.11196231, -341.16383565, -341.21541172, -341.26669391, -341.31768555, -341.36838991, -341.41881021, -341.46894962, -341.51881124, -341.56839814, -341.61771333, -341.66675978, -341.71554038, -341.76405802, -341.81231551, -341.86031562, -341.90806109, -341.95555461, -342.00279881, -342.04979631, -342.09654966, -342.14306139, -342.18933398, -342.23536989, -342.28117152, -342.32674123, -342.37208138, -342.41719426, -342.46208213, -342.50674723, -342.55119177, -342.5954179, -342.63942777, -342.68322348, -342.7268071, -342.77018067, -342.81334622, -342.85630573, -342.89906116, -342.94161443, -342.98396745, -343.02612209, -343.06808021, -343.10984363, -343.15141414, -343.19279352, -343.23398353, -343.27498587, -343.31580227, -343.35643439, -343.3968839, -343.43715242, -343.47724158, -343.51715295, -343.55688811, -343.59644862, -343.63583599, -343.67505174, -343.71409735, -343.7529743, -343.79168404, -343.830228, -343.86860758, -343.9068242, -343.94487923, -343.98277402, -344.02050992, -344.05808827, -344.09551036, -344.13277749, -344.16989095, -344.20685198, -344.24366185, -344.28032178, -344.31683299, -344.35319667, -344.38941403, -344.42548622, -344.46141441, -344.49719974, -344.53284336, -344.56834636, -344.60370986, -344.63893496, -344.67402272, -344.70897422, -344.74379051, -344.77847264, -344.81302162, -344.84743849, -344.88172425, -344.91587989, -344.94990639, -344.98380474, -345.01757588, -345.05122078, -345.08474037, -345.11813559, -345.15140735, -345.18455655, -345.21758411, -345.25049091, -345.28327784, -345.31594575, -345.34849551, -345.38092798, -345.41324399, -345.44544439, -345.47752998, -345.5095016, -345.54136004, -345.5731061, -345.60474058, -345.63626425, -345.6676779, -345.69898228, -345.73017815, -345.76126626, -345.79224736, -345.82312218, -345.85389144, -345.88455586, -345.91511616, -345.94557305, -345.97592721, -346.00617934, -346.03633012, -346.06638023, -346.09633034, -346.12618111, -346.15593321, -346.18558727, -346.21514395, -346.24460387, -346.27396769, -346.303236, -346.33240945, -346.36148863, -346.39047417, -346.41936665, -346.44816667, -346.47687483, -346.50549171, -346.53401788, -346.56245392, -346.5908004, -346.61905788, -346.64722692, -346.67530807, -346.70330187, -346.73120887, -346.7590296, -346.7867646, -346.81441439, -346.8419795, -346.86946043, -346.89685771, -346.92417185, -346.95140334, -346.97855268, -347.00562037, -347.03260689, -347.05951274, -347.0863384, -347.11308433, -347.13975102, -347.16633892, -347.19284852, -347.21928025, -347.24563459, -347.27191198, -347.29811287, -347.32423771, -347.35028693, -347.37626098, -347.40216028, -347.42798526, -347.45373635, -347.47941397, -347.50501854, -347.53055047, -347.55601018, -347.58139806, -347.60671453, -347.63195999, -347.65713483, -347.68223945, -347.70727424, -347.73223958, -347.75713586, -347.78196347, -347.80672277, -347.83141414, -347.85603796, -347.88059459, -347.9050844, -347.92950775, -347.95386501, -347.97815652, -348.00238265, -348.02654373, -348.05064013, -348.07467219, -348.09864025, -348.12254464, -348.14638572, -348.1701638, -348.19387923, -348.21753233, -348.24112343, -348.26465286, -348.28812093, -348.31152797, -348.33487428, -348.35816019, -348.38138601, -348.40455205, -348.42765861, -348.450706, -348.47369452, -348.49662446, -348.51949614, -348.54230984, -348.56506586, -348.58776448, -348.610406, -348.63299071, -348.65551888, -348.6779908, -348.70040675, -348.72276701, -348.74507186, -348.76732156, -348.78951639, -348.81165663, -348.83374253, -348.85577436, -348.87775239, -348.89967689, -348.9215481, -348.94336629, -348.96513172, -348.98684464, -349.0085053, -349.03011395, -349.05167085, -349.07317624, -349.09463036, -349.11603346, -349.13738578, -349.15868757, -349.17993905, -349.20114048, -349.22229207, -349.24339408, -349.26444672, -349.28545023, -349.30640484, -349.32731077, -349.34816825, -349.36897751, -349.38973876, -349.41045224, -349.43111815, -349.45173671, -349.47230815, -349.49283267, -349.5133105, -349.53374184, -349.5541269, -349.57446589, -349.59475902, -349.6150065, -349.63520853, -349.65536531, -349.67547705, -349.69554395, -349.7155662, -349.73554401, -349.75547758, -349.77536709, -349.79521274, -349.81501473, -349.83477324, -349.85448848, -349.87416061, -349.89378985, -349.91337636, -349.93292034, -349.95242198, -349.97188144, -349.99129893, -350.01067461, -350.03000866, -350.04930128, -350.06855262, -350.08776287, -350.10693221, -350.1260608, -350.14514883, -350.16419645, -350.18320385, -350.20217119, -350.22109865, -350.23998638, -350.25883455, -350.27764333, -350.29641289, -350.31514339, -350.33383498, -350.35248784, -350.37110212, -350.38967798, -350.40821557, -350.42671507, -350.44517661, -350.46360036, -350.48198648, -350.50033511, -350.51864641, -350.53692052, -350.55515761, -350.57335782, -350.5915213, -350.60964819, -350.62773865, -350.64579282, -350.66381084, -350.68179287, -350.69973903, -350.71764949, -350.73552437, -350.75336382, -350.77116798, -350.78893699, -350.80667099, -350.82437011, -350.84203449, -350.85966427, -350.87725958, -350.89482056, -350.91234735, -350.92984006, -350.94729885, -350.96472383, -350.98211514, -350.99947291, -351.01679726, -351.03408833, -351.05134625, -351.06857113, -351.08576312, -351.10292232, -351.12004887, -351.13714289, -351.15420451, -351.17123384, -351.18823102, -351.20519615, -351.22212936, -351.23903077, -351.25590051, -351.27273868, -351.28954541, -351.30632081, -351.323065, -351.3397781, -351.35646021, -351.37311147, -351.38973197, -351.40632184, -351.42288118, -351.43941011, -351.45590874, -351.47237718, -351.48881554, -351.50522393, -351.52160246, -351.53795124, -351.55427037, -351.57055997, -351.58682014, -351.60305098, -351.61925261, -351.63542512, -351.65156862, -351.66768322, -351.68376901, -351.69982611, -351.71585461, -351.73185461, -351.74782622, -351.76376954, -351.77968466, -351.79557169, -351.81143073, -351.82726186, -351.8430652, -351.85884084, -351.87458888, -351.89030941, -351.90600252, -351.92166832, -351.9373069, -351.95291836, -351.96850278, -351.98406026, -351.99959089, -352.01509477, -352.03057199, -352.04602263, -352.0614468, -352.07684458, -352.09221606, -352.10756134, -352.12288049, -352.13817361, -352.15344079, -352.16868211, -352.18389767, -352.19908755, -352.21425183, -352.22939061, -352.24450396, -352.25959198, -352.27465474, -352.28969234, -352.30470485, -352.31969237, -352.33465497, -352.34959273, -352.36450574, -352.37939408, -352.39425783, -352.40909708, -352.42391189, -352.43870237, -352.45346857, -352.46821059, -352.4829285, -352.49762238, -352.51229231, -352.52693837, -352.54156063, -352.55615917, -352.57073407, -352.58528541, -352.59981326, -352.61431769, -352.62879879, -352.64325663, -352.65769127, -352.6721028, -352.6864913, -352.70085682, -352.71519946, -352.72951927, -352.74381633, -352.75809072, -352.7723425, -352.78657176, -352.80077855, -352.81496295, -352.82912503, -352.84326486, -352.85738251, -352.87147805, -352.88555154, -352.89960307, -352.91363269, -352.92764048, -352.94162649, -352.95559081, -352.96953349, -352.98345461, -352.99735422, -353.01123241, -353.02508922, -353.03892474, -353.05273901, -353.06653212, -353.08030412, -353.09405508, -353.10778506, -353.12149412, -353.13518234, -353.14884977, -353.16249647, -353.17612252, -353.18972796, -353.20331287, -353.2168773, -353.23042132, -353.24394499, -353.25744837, -353.27093152, -353.2843945, -353.29783737, -353.31126019, -353.32466302, -353.33804592, -353.35140896, -353.36475218, -353.37807564, -353.39137941, -353.40466355, -353.41792811, -353.43117314, -353.44439871, -353.45760488, -353.47079169, -353.48395922, -353.4971075, -353.51023661, -353.52334659, -353.5364375, -353.5495094, -353.56256234, -353.57559637, -353.58861156, -353.60160795, -353.6145856, -353.62754457, -353.6404849, -353.65340665, -353.66630988, -353.67919464, -353.69206097, -353.70490894, -353.71773859, -353.73054998, -353.74334316, -353.75611818, -353.76887509, -353.78161395, -353.7943348, -353.8070377, -353.81972269, -353.83238983, -353.84503916, -353.85767074, -353.87028462, -353.88288084, -353.89545946, -353.90802052, -353.92056408, -353.93309018, -353.94559887, -353.95809019, -353.97056421, -353.98302096, -353.99546049, -354.00788285, -354.02028809, -354.03267626, -354.04504739, -354.05740155, -354.06973876, -354.0820591, -354.09436258, -354.10664927, -354.11891921, -354.13117245, -354.14340903, -354.15562899, -354.16783238, -354.18001925, -354.19218963, -354.20434358, -354.21648115, -354.22860236, -354.24070727, -354.25279592, -354.26486836, -354.27692462, -354.28896476, -354.30098881, -354.31299682, -354.32498882, -354.33696487, -354.34892501, -354.36086927, -354.3727977, -354.38471034, -354.39660724, -354.40848843, -354.42035395, -354.43220386, -354.44403818, -354.45585696, -354.46766024, -354.47944806, -354.49122046, -354.50297748, -354.51471917, -354.52644556, -354.53815668, -354.54985259, -354.56153332, -354.57319891, -354.58484939, -354.59648482, -354.60810522, -354.61971064, -354.63130111, -354.64287667, -354.65443737, -354.66598323, -354.67751431, -354.68903062, -354.70053222, -354.71201914, -354.72349142, -354.73494909, -354.74639219, -354.75782077, -354.76923484, -354.78063447, -354.79201967, -354.80339048, -354.81474695, -354.82608911, -354.83741699, -354.84873063, -354.86003007, -354.87131533, -354.88258647, -354.89384351, -354.90508648, -354.91631543, -354.92753038, -354.93873138, -354.94991845, -354.96109164, -354.97225097, -354.98339648, -354.99452821, -355.00564619, -355.01675044, -355.02784102, -355.03891794, -355.04998125, -355.06103098, -355.07206715, -355.08308981, -355.09409899, -355.10509471, -355.11607702, -355.12704594, -355.13800151, -355.14894376, -355.15987273, -355.17078843, -355.18169092, -355.19258021, -355.20345635, -355.21431935, -355.22516926, -355.23600611, -355.24682992, -355.25764074, -355.26843858, -355.27922348, -355.28999548, -355.30075459, -355.31150086, -355.32223432, -355.33295498, -355.3436629, -355.35435809, -355.36504058, -355.37571041, -355.3863676, -355.39701219, -355.40764421, -355.41826368, -355.42887063, -355.4394651, -355.45004711, -355.4606167, -355.47117388, -355.4817187, -355.49225118, -355.50277134, -355.51327922, -355.52377485, -355.53425826, -355.54472946, -355.5551885, -355.56563539, -355.57607018, -355.58649288, -355.59690352, -355.60730213, -355.61768875, -355.62806339, -355.63842608, -355.64877686, -355.65911575, -355.66944277, -355.67975796, -355.69006134, -355.70035293, -355.71063278, -355.72090089, -355.7311573, -355.74140204, -355.75163512, -355.76185659, -355.77206646, -355.78226476, -355.79245152, -355.80262676, -355.81279051, -355.8229428, -355.83308364, -355.84321308, -355.85333112, -355.8634378, -355.87353315, -355.88361719, -355.89368993, -355.90375142, -355.91380167, -355.92384072, -355.93386857, -355.94388527, -355.95389083, -355.96388528, -355.97386864, -355.98384094, -355.9938022, -356.00375245, -356.01369171, -356.02362001, -356.03353736, -356.0434438, -356.05333935, -356.06322403, -356.07309787, -356.08296088, -356.0928131, -356.10265454, -356.11248524, -356.12230521, -356.13211447, -356.14191306, -356.15170099, -356.16147828, -356.17124497, -356.18100107, -356.1907466, -356.20048159, -356.21020607, -356.21992005, -356.22962355, -356.23931661, -356.24899923, -356.25867145, -356.26833329, -356.27798476, -356.2876259, -356.29725672, -356.30687725, -356.3164875, -356.3260875, -356.33567727, -356.34525683, -356.35482621, -356.36438543, -356.3739345, -356.38347345, -356.3930023, -356.40252108, -356.4120298, -356.42152848, -356.43101714, -356.44049582, -356.44996452, -356.45942327, -356.46887209, -356.478311, -356.48774002, -356.49715917, -356.50656848, -356.51596796, -356.52535763, -356.53473752, -356.54410764, -356.55346801, -356.56281866, -356.57215961, -356.58149087, -356.59081247, -356.60012442, -356.60942674, -356.61871946, -356.6280026, -356.63727617, -356.6465402, -356.6557947, -356.66503969, -356.6742752, -356.68350123, -356.69271783, -356.70192499, -356.71112274, -356.7203111, -356.72949009, -356.73865973, -356.74782004, -356.75697103, -356.76611273, -356.77524515, -356.78436831, -356.79348224, -356.80258694, -356.81168245, -356.82076877, -356.82984592, -356.83891393, -356.84797282, -356.85702259, -356.86606328, -356.87509489, -356.88411744, -356.89313097, -356.90213547] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_CentralDose"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/read_SPE2R.md0000644000176200001440000012530014762554470021340 0ustar liggesusers# snapshot tests { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["Spectrum"] }, "curveType": { "type": "character", "attributes": {}, "value": ["measured"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1340, 1] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", "144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159", "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", "176", "177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", "191", "192", "193", "194", "195", "196", "197", "198", "199", "200", "201", "202", "203", "204", "205", "206", "207", "208", "209", "210", "211", "212", "213", "214", "215", "216", "217", "218", "219", "220", "221", "222", "223", "224", "225", "226", "227", "228", "229", "230", "231", "232", "233", "234", "235", "236", "237", "238", "239", "240", "241", "242", "243", "244", "245", "246", "247", "248", "249", "250", "251", "252", "253", "254", "255", "256", "257", "258", "259", "260", "261", "262", "263", "264", "265", "266", "267", "268", "269", "270", "271", "272", "273", "274", "275", "276", "277", "278", "279", "280", "281", "282", "283", "284", "285", "286", "287", "288", "289", "290", "291", "292", "293", "294", "295", "296", "297", "298", "299", "300", "301", "302", "303", "304", "305", "306", "307", "308", "309", "310", "311", "312", "313", "314", "315", "316", "317", "318", "319", "320", "321", "322", "323", "324", "325", "326", "327", "328", "329", "330", "331", "332", "333", "334", "335", "336", "337", "338", "339", "340", "341", "342", "343", "344", "345", "346", "347", "348", "349", "350", "351", "352", "353", "354", "355", "356", "357", "358", "359", "360", "361", "362", "363", "364", "365", "366", "367", "368", "369", "370", "371", "372", "373", "374", "375", "376", "377", "378", "379", "380", "381", "382", "383", "384", "385", "386", "387", "388", "389", "390", "391", "392", "393", "394", "395", "396", "397", "398", "399", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "418", "419", "420", "421", "422", "423", "424", "425", "426", "427", "428", "429", "430", "431", "432", "433", "434", "435", "436", "437", "438", "439", "440", "441", "442", "443", "444", "445", "446", "447", "448", "449", "450", "451", "452", "453", "454", "455", "456", "457", "458", "459", "460", "461", "462", "463", "464", "465", "466", "467", "468", "469", "470", "471", "472", "473", "474", "475", "476", "477", "478", "479", "480", "481", "482", "483", "484", "485", "486", "487", "488", "489", "490", "491", "492", "493", "494", "495", "496", "497", "498", "499", "500", "501", "502", "503", "504", "505", "506", "507", "508", "509", "510", "511", "512", "513", "514", "515", "516", "517", "518", "519", "520", "521", "522", "523", "524", "525", "526", "527", "528", "529", "530", "531", "532", "533", "534", "535", "536", "537", "538", "539", "540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "550", "551", "552", "553", "554", "555", "556", "557", "558", "559", "560", "561", "562", "563", "564", "565", "566", "567", "568", "569", "570", "571", "572", "573", "574", "575", "576", "577", "578", "579", "580", "581", "582", "583", "584", "585", "586", "587", "588", "589", "590", "591", "592", "593", "594", "595", "596", "597", "598", "599", "600", "601", "602", "603", "604", "605", "606", "607", "608", "609", "610", "611", "612", "613", "614", "615", "616", "617", "618", "619", "620", "621", "622", "623", "624", "625", "626", "627", "628", "629", "630", "631", "632", "633", "634", "635", "636", "637", "638", "639", "640", "641", "642", "643", "644", "645", "646", "647", "648", "649", "650", "651", "652", "653", "654", "655", "656", "657", "658", "659", "660", "661", "662", "663", "664", "665", "666", "667", "668", "669", "670", "671", "672", "673", "674", "675", "676", "677", "678", "679", "680", "681", "682", "683", "684", "685", "686", "687", "688", "689", "690", "691", "692", "693", "694", "695", "696", "697", "698", "699", "700", "701", "702", "703", "704", "705", "706", "707", "708", "709", "710", "711", "712", "713", "714", "715", "716", "717", "718", "719", "720", "721", "722", "723", "724", "725", "726", "727", "728", "729", "730", "731", "732", "733", "734", "735", "736", "737", "738", "739", "740", "741", "742", "743", "744", "745", "746", "747", "748", "749", "750", "751", "752", "753", "754", "755", "756", "757", "758", "759", "760", "761", "762", "763", "764", "765", "766", "767", "768", "769", "770", "771", "772", "773", "774", "775", "776", "777", "778", "779", "780", "781", "782", "783", "784", "785", "786", "787", "788", "789", "790", "791", "792", "793", "794", "795", "796", "797", "798", "799", "800", "801", "802", "803", "804", "805", "806", "807", "808", "809", "810", "811", "812", "813", "814", "815", "816", "817", "818", "819", "820", "821", "822", "823", "824", "825", "826", "827", "828", "829", "830", "831", "832", "833", "834", "835", "836", "837", "838", "839", "840", "841", "842", "843", "844", "845", "846", "847", "848", "849", "850", "851", "852", "853", "854", "855", "856", "857", "858", "859", "860", "861", "862", "863", "864", "865", "866", "867", "868", "869", "870", "871", "872", "873", "874", "875", "876", "877", "878", "879", "880", "881", "882", "883", "884", "885", "886", "887", "888", "889", "890", "891", "892", "893", "894", "895", "896", "897", "898", "899", "900", "901", "902", "903", "904", "905", "906", "907", "908", "909", "910", "911", "912", "913", "914", "915", "916", "917", "918", "919", "920", "921", "922", "923", "924", "925", "926", "927", "928", "929", "930", "931", "932", "933", "934", "935", "936", "937", "938", "939", "940", "941", "942", "943", "944", "945", "946", "947", "948", "949", "950", "951", "952", "953", "954", "955", "956", "957", "958", "959", "960", "961", "962", "963", "964", "965", "966", "967", "968", "969", "970", "971", "972", "973", "974", "975", "976", "977", "978", "979", "980", "981", "982", "983", "984", "985", "986", "987", "988", "989", "990", "991", "992", "993", "994", "995", "996", "997", "998", "999", "1000", "1001", "1002", "1003", "1004", "1005", "1006", "1007", "1008", "1009", "1010", "1011", "1012", "1013", "1014", "1015", "1016", "1017", "1018", "1019", "1020", "1021", "1022", "1023", "1024", "1025", "1026", "1027", "1028", "1029", "1030", "1031", "1032", "1033", "1034", "1035", "1036", "1037", "1038", "1039", "1040", "1041", "1042", "1043", "1044", "1045", "1046", "1047", "1048", "1049", "1050", "1051", "1052", "1053", "1054", "1055", "1056", "1057", "1058", "1059", "1060", "1061", "1062", "1063", "1064", "1065", "1066", "1067", "1068", "1069", "1070", "1071", "1072", "1073", "1074", "1075", "1076", "1077", "1078", "1079", "1080", "1081", "1082", "1083", "1084", "1085", "1086", "1087", "1088", "1089", "1090", "1091", "1092", "1093", "1094", "1095", "1096", "1097", "1098", "1099", "1100", "1101", "1102", "1103", "1104", "1105", "1106", "1107", "1108", "1109", "1110", "1111", "1112", "1113", "1114", "1115", "1116", "1117", "1118", "1119", "1120", "1121", "1122", "1123", "1124", "1125", "1126", "1127", "1128", "1129", "1130", "1131", "1132", "1133", "1134", "1135", "1136", "1137", "1138", "1139", "1140", "1141", "1142", "1143", "1144", "1145", "1146", "1147", "1148", "1149", "1150", "1151", "1152", "1153", "1154", "1155", "1156", "1157", "1158", "1159", "1160", "1161", "1162", "1163", "1164", "1165", "1166", "1167", "1168", "1169", "1170", "1171", "1172", "1173", "1174", "1175", "1176", "1177", "1178", "1179", "1180", "1181", "1182", "1183", "1184", "1185", "1186", "1187", "1188", "1189", "1190", "1191", "1192", "1193", "1194", "1195", "1196", "1197", "1198", "1199", "1200", "1201", "1202", "1203", "1204", "1205", "1206", "1207", "1208", "1209", "1210", "1211", "1212", "1213", "1214", "1215", "1216", "1217", "1218", "1219", "1220", "1221", "1222", "1223", "1224", "1225", "1226", "1227", "1228", "1229", "1230", "1231", "1232", "1233", "1234", "1235", "1236", "1237", "1238", "1239", "1240", "1241", "1242", "1243", "1244", "1245", "1246", "1247", "1248", "1249", "1250", "1251", "1252", "1253", "1254", "1255", "1256", "1257", "1258", "1259", "1260", "1261", "1262", "1263", "1264", "1265", "1266", "1267", "1268", "1269", "1270", "1271", "1272", "1273", "1274", "1275", "1276", "1277", "1278", "1279", "1280", "1281", "1282", "1283", "1284", "1285", "1286", "1287", "1288", "1289", "1290", "1291", "1292", "1293", "1294", "1295", "1296", "1297", "1298", "1299", "1300", "1301", "1302", "1303", "1304", "1305", "1306", "1307", "1308", "1309", "1310", "1311", "1312", "1313", "1314", "1315", "1316", "1317", "1318", "1319", "1320", "1321", "1322", "1323", "1324", "1325", "1326", "1327", "1328", "1329", "1330", "1331", "1332", "1333", "1334", "1335", "1336", "1337", "1338", "1339", "1340"] }, { "type": "character", "attributes": {}, "value": ["1"] } ] } }, "value": [57032, 57533, 57944, 58319, 58652, 58599, 58709, 59287, 58892, 58883, 59582, 59261, 59157, 59417, 59458, 59329, 59452, 59513, 59460, 59434, 59483, 59452, 59601, 59686, 59581, 59677, 59643, 59638, 59712, 59638, 59599, 59730, 59732, 59699, 59735, 59670, 59782, 59816, 59773, 59781, 59767, 59707, 59637, 59728, 59851, 59798, 59769, 59752, 59697, 59713, 59818, 59698, 59763, 59697, 59698, 59802, 59856, 59699, 59628, 59801, 59795, 59689, 59662, 59687, 59675, 59724, 59691, 59688, 59713, 59636, 59745, 59718, 59738, 59667, 59619, 59734, 59703, 59739, 59738, 59683, 59739, 59667, 59669, 59677, 59643, 59640, 59709, 59631, 59695, 59646, 59660, 59671, 59612, 59636, 59547, 59688, 59634, 59678, 59627, 59730, 59664, 59689, 59642, 59656, 59678, 59574, 59655, 59705, 59659, 59607, 59713, 59638, 59548, 59632, 59643, 59641, 59661, 59717, 59662, 59595, 59671, 59707, 59662, 59587, 59686, 59632, 59661, 59729, 59652, 59689, 59708, 59678, 59624, 59602, 59591, 59664, 59693, 59718, 59718, 59681, 59601, 59594, 59718, 59655, 59550, 59603, 59677, 59694, 59661, 59707, 59562, 59642, 59622, 59668, 59588, 59651, 59575, 59718, 59611, 59615, 59604, 59654, 59593, 59739, 59507, 59638, 59696, 59569, 59594, 59586, 59674, 59580, 59659, 59611, 59576, 59676, 59665, 59613, 59588, 59620, 59637, 59690, 59696, 59720, 59625, 59623, 59684, 59677, 59735, 59703, 59636, 59678, 59695, 59595, 59658, 59601, 59726, 59632, 59570, 59606, 59516, 59641, 59623, 59661, 59653, 59678, 59640, 59664, 59584, 59669, 59671, 59644, 59686, 59693, 59716, 59607, 59724, 59615, 59598, 59699, 59587, 59651, 59568, 59656, 59558, 59692, 59654, 59623, 59668, 59703, 59664, 59710, 59649, 59637, 59723, 59648, 59681, 59743, 59630, 59751, 59599, 59677, 59693, 59674, 59595, 59602, 59752, 59699, 59685, 59680, 59613, 59639, 59697, 59669, 59555, 59622, 59713, 59638, 59612, 59718, 59692, 59699, 59680, 59688, 59630, 59733, 59668, 59667, 59547, 59754, 59687, 59681, 59731, 59659, 59679, 59722, 59682, 59737, 59758, 59637, 59720, 59738, 59765, 59625, 59664, 59755, 59678, 59727, 59671, 59789, 59800, 59718, 59726, 59718, 59715, 59675, 59684, 59670, 59718, 59714, 59724, 59693, 59640, 59717, 59616, 59688, 59710, 59712, 59710, 59659, 59731, 59699, 59698, 59690, 59671, 59645, 59602, 59660, 59761, 59820, 59656, 59705, 59716, 59717, 59618, 59680, 59692, 59632, 59737, 59722, 59691, 59780, 59711, 59717, 59619, 59798, 59774, 59664, 59792, 59776, 59715, 59790, 59711, 59655, 59800, 59756, 59782, 59711, 59699, 59805, 59738, 59822, 59730, 59728, 59746, 59787, 59702, 59633, 59786, 59746, 59738, 59780, 59720, 59784, 59825, 59781, 59842, 59749, 59772, 59704, 59714, 59759, 59730, 59673, 59820, 59837, 59781, 59781, 59772, 59792, 59779, 59709, 59796, 59702, 59802, 59708, 59796, 59788, 59854, 59866, 59736, 59659, 59836, 59819, 59716, 59784, 59823, 59742, 59771, 59810, 59787, 59784, 59747, 59766, 59758, 59850, 59765, 59820, 59721, 59701, 59817, 59804, 59774, 59824, 59803, 59810, 59826, 59823, 59852, 59813, 59857, 59893, 59817, 59817, 59758, 59781, 59737, 59792, 59834, 59838, 59848, 59911, 59882, 59800, 59802, 59736, 59786, 59891, 59861, 59873, 59856, 59905, 59811, 59827, 59917, 59817, 59824, 59829, 59838, 59828, 59831, 59855, 59866, 59919, 59842, 59861, 59923, 59870, 59867, 59851, 59961, 59902, 59772, 59899, 59864, 59868, 59819, 59858, 59948, 59837, 59913, 59822, 59894, 59839, 59904, 59815, 59899, 60030, 59910, 59947, 59957, 59988, 59861, 59904, 59956, 59839, 59938, 59901, 59922, 59897, 59850, 59939, 59937, 59903, 59873, 60028, 59916, 59945, 59850, 59793, 60051, 59900, 60047, 60024, 59853, 60035, 59958, 59867, 59951, 59942, 59982, 59889, 59986, 59884, 60037, 60001, 59921, 59993, 59949, 60017, 60035, 59955, 60019, 59957, 59954, 59973, 59989, 60040, 60072, 60033, 59987, 59968, 60057, 60079, 60097, 60052, 60051, 60044, 60052, 60048, 60067, 60034, 60078, 60147, 60055, 60107, 60147, 60026, 60054, 60102, 60100, 60032, 60150, 60040, 60021, 60109, 60081, 60112, 60136, 60031, 60065, 60191, 60147, 60067, 60279, 60147, 60172, 60196, 60102, 60169, 60189, 60236, 60035, 60182, 60180, 60075, 60234, 60251, 60162, 60177, 60191, 60218, 60239, 60166, 60173, 60228, 60228, 60238, 60254, 60212, 60335, 60260, 60243, 60205, 60330, 60297, 60269, 60309, 60246, 60321, 60348, 60307, 60370, 60332, 60426, 60420, 60433, 60492, 60411, 60472, 60531, 60446, 60583, 60502, 60602, 60584, 60653, 60648, 60752, 60671, 60763, 60815, 60825, 60962, 60969, 60897, 60994, 61091, 61164, 61095, 61332, 61368, 61490, 61516, 61540, 61672, 61769, 61948, 61959, 62066, 62260, 62427, 62602, 62683, 62926, 63163, 63216, 63404, 63562, 63991, 64143, 64496, 64810, 64928, 65166, 65600, 65886, 66493, 66873, 67192, 67729, 68328, 68882, 69519, 69839, 70782, 71294, 72156, 72897, 73610, 74577, 75483, 76548, 77574, 78478, 79497, 80910, 81933, 83337, 84898, 86418, 87796, 89711, 91497, 93299, 95106, 97006, 99405, 101913, 104339, 106992, 109867, 113395, 116045, 119015, 122393, 126351, 130596, 134639, 139262, 143986, 148235, 153057, 158033, 162968, 169263, 176538, 184322, 191964, 199615, 207479, 215719, 224196, 233439, 243636, 255277, 268192, 282171, 296978, 311260, 326311, 341547, 357528, 375775, 396951, 418404, 443238, 467696, 492454, 518999, 546127, 573786, 605378, 641710, 681045, 723948, 769952, 817596, 863438, 911193, 960957, 1013265, 1069506, 1132180, 1200344, 1271578, 1344965, 1416061, 1482762, 1540503, 1590795, 1637849, 1675230, 1710108, 1741701, 1760936, 1769706, 1761077, 1729531, 1675798, 1604375, 1524259, 1434177, 1345505, 1263918, 1187351, 1117100, 1051816, 990520, 933415, 881962, 836429, 796892, 765405, 740565, 722232, 705274, 691984, 678328, 662839, 646486, 628609, 608716, 588406, 566047, 543533, 519411, 495290, 470217, 445842, 419206, 393433, 369162, 344516, 321643, 300230, 280592, 262042, 245539, 229731, 216030, 202577, 191245, 179788, 170303, 161520, 154071, 147168, 139818, 134210, 129148, 123852, 119376, 115043, 110955, 107377, 104240, 100549, 97773, 95104, 92838, 90176, 88001, 85991, 83898, 82297, 80418, 78777, 77433, 76141, 74784, 73698, 72751, 71864, 71076, 70287, 69578, 68920, 68267, 67873, 67416, 66798, 66410, 66024, 65693, 65310, 65111, 64792, 64639, 64447, 63946, 63864, 63647, 63621, 63394, 63132, 62916, 62887, 62765, 62695, 62493, 62330, 62270, 62189, 61993, 61929, 61899, 61825, 61672, 61701, 61546, 61444, 61484, 61358, 61377, 61292, 61339, 61185, 61104, 61128, 61228, 61011, 61025, 61060, 60910, 60922, 60872, 60875, 60908, 60805, 60755, 60748, 60735, 60758, 60715, 60646, 60671, 60705, 60560, 60655, 60616, 60556, 60620, 60481, 60518, 60609, 60441, 60397, 60538, 60485, 60505, 60437, 60505, 60523, 60384, 60449, 60305, 60364, 60387, 60379, 60394, 60352, 60482, 60286, 60319, 60284, 60343, 60227, 60235, 60220, 60324, 60307, 60299, 60155, 60293, 60189, 60247, 60234, 60165, 60169, 60254, 60289, 60107, 60282, 60161, 60322, 60142, 60142, 60125, 60164, 60258, 60128, 60211, 60141, 60195, 60178, 60155, 60207, 60161, 60104, 60108, 60172, 60035, 60097, 60210, 60010, 60011, 60057, 60162, 60112, 59989, 60073, 60145, 59970, 60059, 60127, 60068, 59945, 60049, 60036, 60086, 60037, 60073, 60072, 60109, 60068, 59985, 60028, 59951, 60055, 60036, 59946, 60001, 60093, 59983, 59885, 60014, 59912, 60010, 59895, 60056, 59927, 59954, 59965, 60071, 59951, 60040, 59997, 59922, 59980, 59939, 59996, 59926, 59987, 59992, 59878, 59984, 59976, 59976, 59973, 59973, 59982, 59922, 59943, 59970, 59923, 59934, 59899, 59972, 59828, 59945, 59885, 59907, 59860, 59955, 60005, 59844, 59875, 59948, 59933, 59915, 59977, 59845, 59908, 59884, 59936, 59997, 59929, 59869, 59942, 59893, 59924, 59872, 59871, 59916, 59957, 59912, 59764, 59849, 59918, 59901, 59794, 59863, 59882, 59879, 59858, 59897, 59838, 59882, 59924, 59840, 59850, 59890, 59870, 59896, 59819, 59911, 59782, 59869, 59778, 59926, 59794, 59898, 59812, 59812, 59890, 59880, 59902, 59814, 59895, 59834, 59899, 59787, 59848, 59893, 59852, 59979, 59787, 59796, 59792, 59788, 59884, 59843, 59821, 59779, 59861, 59774, 59755, 59815, 59755, 59820, 59874, 59739, 59822, 59774, 59725, 59750, 59779, 59816, 59859, 59830, 59827, 59815, 59730, 59802, 59815, 59757, 59768, 59790, 59853, 59839, 59746, 59897, 59797, 59735, 59822, 59772, 59854, 59741, 59837, 59765, 59783, 59802, 59832, 59837, 59775, 59824, 59780, 59759, 59813, 59814, 59750, 59702, 59747, 59731, 59795, 59746, 59803, 59773, 59750, 59744, 59768, 59670, 59684, 59699, 59785, 59738, 59759, 59762, 59840, 59807, 59693, 59790, 59669, 59691, 59784, 59758, 59762, 59857, 59794, 59794, 59785, 59692, 59751, 59761, 59773, 59723, 59735, 59762, 59734, 59762, 59786, 59832, 59732, 59837, 59801, 59764, 59753, 59753, 59794, 59760, 59778, 59799, 59734, 59717, 59822, 59802, 59786, 59853, 59713, 59752, 59799, 59796, 59790, 59662, 59817, 59784, 59776, 59777, 59740, 59780, 59678, 59691, 59740, 59876, 59789, 59649, 59787, 59703, 59728, 59725, 59750, 59700, 59720, 59750, 59890, 59777, 59818, 59767, 59846, 59823, 59796, 59777, 59785, 59826, 59742, 59743, 59876, 59826, 59795, 59843, 59863, 59839, 59859, 59841, 59776, 59951, 59829, 59787, 59768, 59826, 59751, 59825, 59722, 59734, 59838, 59766, 59818, 59737, 59798, 59816, 59850, 59761, 59793, 59773, 59895, 59881, 59784, 59845, 59895, 59854, 59738, 59885, 59814, 59881, 59727, 59762, 59812, 59788, 59913, 59708, 59795, 59814, 59851, 59774, 59735, 59844, 59818, 59838, 59767, 59800, 59828, 59714, 59797, 59842, 59770, 59738, 59797, 59692, 59740, 59748, 59756, 59811, 59744, 59727, 59671, 59742, 59616, 59746, 59829, 59665, 59815, 59677, 59737, 59712, 59677, 59737, 59685, 59671, 59687, 59693, 59696, 59786, 59765, 59654, 59713, 59600, 59676, 59618, 59660] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ControllerVersion", "LogicOutput", "AmpHiCapLowNoise", "xDimDet", "yDimDet", "xdim", "ydim", "VChipXdim", "VChipYdim", "Date", "noscan", "mode", "exp_sec", "DetTemperature", "DetType", "datatype", "scramble", "lnoscan", "lavgexp", "ReadoutTime", "TriggeredModeFlag", "NumFrames", "file_header_ver"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [0] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "integer", "attributes": {}, "value": [0] }, { "type": "integer", "attributes": {}, "value": [1340] }, { "type": "integer", "attributes": {}, "value": [400] }, { "type": "integer", "attributes": {}, "value": [1340] }, { "type": "integer", "attributes": {}, "value": [101] }, { "type": "integer", "attributes": {}, "value": [0] }, { "type": "integer", "attributes": {}, "value": [0] }, { "type": "character", "attributes": {}, "value": ["15Jul2013"] }, { "type": "integer", "attributes": {}, "value": [-1] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [0.005] }, { "type": "double", "attributes": {}, "value": [-70] }, { "type": "integer", "attributes": {}, "value": [99] }, { "type": "integer", "attributes": {}, "value": [3] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "integer", "attributes": {}, "value": [-1] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [89.51599884] }, { "type": "integer", "attributes": {}, "value": [0] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [2.20000005] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["read_SPE2R"] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Spectrum", "package": "Luminescence" } } --- { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1340, 1] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", "144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159", "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", "176", "177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", "191", "192", "193", "194", "195", "196", "197", "198", "199", "200", "201", "202", "203", "204", "205", "206", "207", "208", "209", "210", "211", "212", "213", "214", "215", "216", "217", "218", "219", "220", "221", "222", "223", "224", "225", "226", "227", "228", "229", "230", "231", "232", "233", "234", "235", "236", "237", "238", "239", "240", "241", "242", "243", "244", "245", "246", "247", "248", "249", "250", "251", "252", "253", "254", "255", "256", "257", "258", "259", "260", "261", "262", "263", "264", "265", "266", "267", "268", "269", "270", "271", "272", "273", "274", "275", "276", "277", "278", "279", "280", "281", "282", "283", "284", "285", "286", "287", "288", "289", "290", "291", "292", "293", "294", "295", "296", "297", "298", "299", "300", "301", "302", "303", "304", "305", "306", "307", "308", "309", "310", "311", "312", "313", "314", "315", "316", "317", "318", "319", "320", "321", "322", "323", "324", "325", "326", "327", "328", "329", "330", "331", "332", "333", "334", "335", "336", "337", "338", "339", "340", "341", "342", "343", "344", "345", "346", "347", "348", "349", "350", "351", "352", "353", "354", "355", "356", "357", "358", "359", "360", "361", "362", "363", "364", "365", "366", "367", "368", "369", "370", "371", "372", "373", "374", "375", "376", "377", "378", "379", "380", "381", "382", "383", "384", "385", "386", "387", "388", "389", "390", "391", "392", "393", "394", "395", "396", "397", "398", "399", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "418", "419", "420", "421", "422", "423", "424", "425", "426", "427", "428", "429", "430", "431", "432", "433", "434", "435", "436", "437", "438", "439", "440", "441", "442", "443", "444", "445", "446", "447", "448", "449", "450", "451", "452", "453", "454", "455", "456", "457", "458", "459", "460", "461", "462", "463", "464", "465", "466", "467", "468", "469", "470", "471", "472", "473", "474", "475", "476", "477", "478", "479", "480", "481", "482", "483", "484", "485", "486", "487", "488", "489", "490", "491", "492", "493", "494", "495", "496", "497", "498", "499", "500", "501", "502", "503", "504", "505", "506", "507", "508", "509", "510", "511", "512", "513", "514", "515", "516", "517", "518", "519", "520", "521", "522", "523", "524", "525", "526", "527", "528", "529", "530", "531", "532", "533", "534", "535", "536", "537", "538", "539", "540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "550", "551", "552", "553", "554", "555", "556", "557", "558", "559", "560", "561", "562", "563", "564", "565", "566", "567", "568", "569", "570", "571", "572", "573", "574", "575", "576", "577", "578", "579", "580", "581", "582", "583", "584", "585", "586", "587", "588", "589", "590", "591", "592", "593", "594", "595", "596", "597", "598", "599", "600", "601", "602", "603", "604", "605", "606", "607", "608", "609", "610", "611", "612", "613", "614", "615", "616", "617", "618", "619", "620", "621", "622", "623", "624", "625", "626", "627", "628", "629", "630", "631", "632", "633", "634", "635", "636", "637", "638", "639", "640", "641", "642", "643", "644", "645", "646", "647", "648", "649", "650", "651", "652", "653", "654", "655", "656", "657", "658", "659", "660", "661", "662", "663", "664", "665", "666", "667", "668", "669", "670", "671", "672", "673", "674", "675", "676", "677", "678", "679", "680", "681", "682", "683", "684", "685", "686", "687", "688", "689", "690", "691", "692", "693", "694", "695", "696", "697", "698", "699", "700", "701", "702", "703", "704", "705", "706", "707", "708", "709", "710", "711", "712", "713", "714", "715", "716", "717", "718", "719", "720", "721", "722", "723", "724", "725", "726", "727", "728", "729", "730", "731", "732", "733", "734", "735", "736", "737", "738", "739", "740", "741", "742", "743", "744", "745", "746", "747", "748", "749", "750", "751", "752", "753", "754", "755", "756", "757", "758", "759", "760", "761", "762", "763", "764", "765", "766", "767", "768", "769", "770", "771", "772", "773", "774", "775", "776", "777", "778", "779", "780", "781", "782", "783", "784", "785", "786", "787", "788", "789", "790", "791", "792", "793", "794", "795", "796", "797", "798", "799", "800", "801", "802", "803", "804", "805", "806", "807", "808", "809", "810", "811", "812", "813", "814", "815", "816", "817", "818", "819", "820", "821", "822", "823", "824", "825", "826", "827", "828", "829", "830", "831", "832", "833", "834", "835", "836", "837", "838", "839", "840", "841", "842", "843", "844", "845", "846", "847", "848", "849", "850", "851", "852", "853", "854", "855", "856", "857", "858", "859", "860", "861", "862", "863", "864", "865", "866", "867", "868", "869", "870", "871", "872", "873", "874", "875", "876", "877", "878", "879", "880", "881", "882", "883", "884", "885", "886", "887", "888", "889", "890", "891", "892", "893", "894", "895", "896", "897", "898", "899", "900", "901", "902", "903", "904", "905", "906", "907", "908", "909", "910", "911", "912", "913", "914", "915", "916", "917", "918", "919", "920", "921", "922", "923", "924", "925", "926", "927", "928", "929", "930", "931", "932", "933", "934", "935", "936", "937", "938", "939", "940", "941", "942", "943", "944", "945", "946", "947", "948", "949", "950", "951", "952", "953", "954", "955", "956", "957", "958", "959", "960", "961", "962", "963", "964", "965", "966", "967", "968", "969", "970", "971", "972", "973", "974", "975", "976", "977", "978", "979", "980", "981", "982", "983", "984", "985", "986", "987", "988", "989", "990", "991", "992", "993", "994", "995", "996", "997", "998", "999", "1000", "1001", "1002", "1003", "1004", "1005", "1006", "1007", "1008", "1009", "1010", "1011", "1012", "1013", "1014", "1015", "1016", "1017", "1018", "1019", "1020", "1021", "1022", "1023", "1024", "1025", "1026", "1027", "1028", "1029", "1030", "1031", "1032", "1033", "1034", "1035", "1036", "1037", "1038", "1039", "1040", "1041", "1042", "1043", "1044", "1045", "1046", "1047", "1048", "1049", "1050", "1051", "1052", "1053", "1054", "1055", "1056", "1057", "1058", "1059", "1060", "1061", "1062", "1063", "1064", "1065", "1066", "1067", "1068", "1069", "1070", "1071", "1072", "1073", "1074", "1075", "1076", "1077", "1078", "1079", "1080", "1081", "1082", "1083", "1084", "1085", "1086", "1087", "1088", "1089", "1090", "1091", "1092", "1093", "1094", "1095", "1096", "1097", "1098", "1099", "1100", "1101", "1102", "1103", "1104", "1105", "1106", "1107", "1108", "1109", "1110", "1111", "1112", "1113", "1114", "1115", "1116", "1117", "1118", "1119", "1120", "1121", "1122", "1123", "1124", "1125", "1126", "1127", "1128", "1129", "1130", "1131", "1132", "1133", "1134", "1135", "1136", "1137", "1138", "1139", "1140", "1141", "1142", "1143", "1144", "1145", "1146", "1147", "1148", "1149", "1150", "1151", "1152", "1153", "1154", "1155", "1156", "1157", "1158", "1159", "1160", "1161", "1162", "1163", "1164", "1165", "1166", "1167", "1168", "1169", "1170", "1171", "1172", "1173", "1174", "1175", "1176", "1177", "1178", "1179", "1180", "1181", "1182", "1183", "1184", "1185", "1186", "1187", "1188", "1189", "1190", "1191", "1192", "1193", "1194", "1195", "1196", "1197", "1198", "1199", "1200", "1201", "1202", "1203", "1204", "1205", "1206", "1207", "1208", "1209", "1210", "1211", "1212", "1213", "1214", "1215", "1216", "1217", "1218", "1219", "1220", "1221", "1222", "1223", "1224", "1225", "1226", "1227", "1228", "1229", "1230", "1231", "1232", "1233", "1234", "1235", "1236", "1237", "1238", "1239", "1240", "1241", "1242", "1243", "1244", "1245", "1246", "1247", "1248", "1249", "1250", "1251", "1252", "1253", "1254", "1255", "1256", "1257", "1258", "1259", "1260", "1261", "1262", "1263", "1264", "1265", "1266", "1267", "1268", "1269", "1270", "1271", "1272", "1273", "1274", "1275", "1276", "1277", "1278", "1279", "1280", "1281", "1282", "1283", "1284", "1285", "1286", "1287", "1288", "1289", "1290", "1291", "1292", "1293", "1294", "1295", "1296", "1297", "1298", "1299", "1300", "1301", "1302", "1303", "1304", "1305", "1306", "1307", "1308", "1309", "1310", "1311", "1312", "1313", "1314", "1315", "1316", "1317", "1318", "1319", "1320", "1321", "1322", "1323", "1324", "1325", "1326", "1327", "1328", "1329", "1330", "1331", "1332", "1333", "1334", "1335", "1336", "1337", "1338", "1339", "1340"] }, { "type": "character", "attributes": {}, "value": ["1"] } ] } }, "value": [57032, 57533, 57944, 58319, 58652, 58599, 58709, 59287, 58892, 58883, 59582, 59261, 59157, 59417, 59458, 59329, 59452, 59513, 59460, 59434, 59483, 59452, 59601, 59686, 59581, 59677, 59643, 59638, 59712, 59638, 59599, 59730, 59732, 59699, 59735, 59670, 59782, 59816, 59773, 59781, 59767, 59707, 59637, 59728, 59851, 59798, 59769, 59752, 59697, 59713, 59818, 59698, 59763, 59697, 59698, 59802, 59856, 59699, 59628, 59801, 59795, 59689, 59662, 59687, 59675, 59724, 59691, 59688, 59713, 59636, 59745, 59718, 59738, 59667, 59619, 59734, 59703, 59739, 59738, 59683, 59739, 59667, 59669, 59677, 59643, 59640, 59709, 59631, 59695, 59646, 59660, 59671, 59612, 59636, 59547, 59688, 59634, 59678, 59627, 59730, 59664, 59689, 59642, 59656, 59678, 59574, 59655, 59705, 59659, 59607, 59713, 59638, 59548, 59632, 59643, 59641, 59661, 59717, 59662, 59595, 59671, 59707, 59662, 59587, 59686, 59632, 59661, 59729, 59652, 59689, 59708, 59678, 59624, 59602, 59591, 59664, 59693, 59718, 59718, 59681, 59601, 59594, 59718, 59655, 59550, 59603, 59677, 59694, 59661, 59707, 59562, 59642, 59622, 59668, 59588, 59651, 59575, 59718, 59611, 59615, 59604, 59654, 59593, 59739, 59507, 59638, 59696, 59569, 59594, 59586, 59674, 59580, 59659, 59611, 59576, 59676, 59665, 59613, 59588, 59620, 59637, 59690, 59696, 59720, 59625, 59623, 59684, 59677, 59735, 59703, 59636, 59678, 59695, 59595, 59658, 59601, 59726, 59632, 59570, 59606, 59516, 59641, 59623, 59661, 59653, 59678, 59640, 59664, 59584, 59669, 59671, 59644, 59686, 59693, 59716, 59607, 59724, 59615, 59598, 59699, 59587, 59651, 59568, 59656, 59558, 59692, 59654, 59623, 59668, 59703, 59664, 59710, 59649, 59637, 59723, 59648, 59681, 59743, 59630, 59751, 59599, 59677, 59693, 59674, 59595, 59602, 59752, 59699, 59685, 59680, 59613, 59639, 59697, 59669, 59555, 59622, 59713, 59638, 59612, 59718, 59692, 59699, 59680, 59688, 59630, 59733, 59668, 59667, 59547, 59754, 59687, 59681, 59731, 59659, 59679, 59722, 59682, 59737, 59758, 59637, 59720, 59738, 59765, 59625, 59664, 59755, 59678, 59727, 59671, 59789, 59800, 59718, 59726, 59718, 59715, 59675, 59684, 59670, 59718, 59714, 59724, 59693, 59640, 59717, 59616, 59688, 59710, 59712, 59710, 59659, 59731, 59699, 59698, 59690, 59671, 59645, 59602, 59660, 59761, 59820, 59656, 59705, 59716, 59717, 59618, 59680, 59692, 59632, 59737, 59722, 59691, 59780, 59711, 59717, 59619, 59798, 59774, 59664, 59792, 59776, 59715, 59790, 59711, 59655, 59800, 59756, 59782, 59711, 59699, 59805, 59738, 59822, 59730, 59728, 59746, 59787, 59702, 59633, 59786, 59746, 59738, 59780, 59720, 59784, 59825, 59781, 59842, 59749, 59772, 59704, 59714, 59759, 59730, 59673, 59820, 59837, 59781, 59781, 59772, 59792, 59779, 59709, 59796, 59702, 59802, 59708, 59796, 59788, 59854, 59866, 59736, 59659, 59836, 59819, 59716, 59784, 59823, 59742, 59771, 59810, 59787, 59784, 59747, 59766, 59758, 59850, 59765, 59820, 59721, 59701, 59817, 59804, 59774, 59824, 59803, 59810, 59826, 59823, 59852, 59813, 59857, 59893, 59817, 59817, 59758, 59781, 59737, 59792, 59834, 59838, 59848, 59911, 59882, 59800, 59802, 59736, 59786, 59891, 59861, 59873, 59856, 59905, 59811, 59827, 59917, 59817, 59824, 59829, 59838, 59828, 59831, 59855, 59866, 59919, 59842, 59861, 59923, 59870, 59867, 59851, 59961, 59902, 59772, 59899, 59864, 59868, 59819, 59858, 59948, 59837, 59913, 59822, 59894, 59839, 59904, 59815, 59899, 60030, 59910, 59947, 59957, 59988, 59861, 59904, 59956, 59839, 59938, 59901, 59922, 59897, 59850, 59939, 59937, 59903, 59873, 60028, 59916, 59945, 59850, 59793, 60051, 59900, 60047, 60024, 59853, 60035, 59958, 59867, 59951, 59942, 59982, 59889, 59986, 59884, 60037, 60001, 59921, 59993, 59949, 60017, 60035, 59955, 60019, 59957, 59954, 59973, 59989, 60040, 60072, 60033, 59987, 59968, 60057, 60079, 60097, 60052, 60051, 60044, 60052, 60048, 60067, 60034, 60078, 60147, 60055, 60107, 60147, 60026, 60054, 60102, 60100, 60032, 60150, 60040, 60021, 60109, 60081, 60112, 60136, 60031, 60065, 60191, 60147, 60067, 60279, 60147, 60172, 60196, 60102, 60169, 60189, 60236, 60035, 60182, 60180, 60075, 60234, 60251, 60162, 60177, 60191, 60218, 60239, 60166, 60173, 60228, 60228, 60238, 60254, 60212, 60335, 60260, 60243, 60205, 60330, 60297, 60269, 60309, 60246, 60321, 60348, 60307, 60370, 60332, 60426, 60420, 60433, 60492, 60411, 60472, 60531, 60446, 60583, 60502, 60602, 60584, 60653, 60648, 60752, 60671, 60763, 60815, 60825, 60962, 60969, 60897, 60994, 61091, 61164, 61095, 61332, 61368, 61490, 61516, 61540, 61672, 61769, 61948, 61959, 62066, 62260, 62427, 62602, 62683, 62926, 63163, 63216, 63404, 63562, 63991, 64143, 64496, 64810, 64928, 65166, 65600, 65886, 66493, 66873, 67192, 67729, 68328, 68882, 69519, 69839, 70782, 71294, 72156, 72897, 73610, 74577, 75483, 76548, 77574, 78478, 79497, 80910, 81933, 83337, 84898, 86418, 87796, 89711, 91497, 93299, 95106, 97006, 99405, 101913, 104339, 106992, 109867, 113395, 116045, 119015, 122393, 126351, 130596, 134639, 139262, 143986, 148235, 153057, 158033, 162968, 169263, 176538, 184322, 191964, 199615, 207479, 215719, 224196, 233439, 243636, 255277, 268192, 282171, 296978, 311260, 326311, 341547, 357528, 375775, 396951, 418404, 443238, 467696, 492454, 518999, 546127, 573786, 605378, 641710, 681045, 723948, 769952, 817596, 863438, 911193, 960957, 1013265, 1069506, 1132180, 1200344, 1271578, 1344965, 1416061, 1482762, 1540503, 1590795, 1637849, 1675230, 1710108, 1741701, 1760936, 1769706, 1761077, 1729531, 1675798, 1604375, 1524259, 1434177, 1345505, 1263918, 1187351, 1117100, 1051816, 990520, 933415, 881962, 836429, 796892, 765405, 740565, 722232, 705274, 691984, 678328, 662839, 646486, 628609, 608716, 588406, 566047, 543533, 519411, 495290, 470217, 445842, 419206, 393433, 369162, 344516, 321643, 300230, 280592, 262042, 245539, 229731, 216030, 202577, 191245, 179788, 170303, 161520, 154071, 147168, 139818, 134210, 129148, 123852, 119376, 115043, 110955, 107377, 104240, 100549, 97773, 95104, 92838, 90176, 88001, 85991, 83898, 82297, 80418, 78777, 77433, 76141, 74784, 73698, 72751, 71864, 71076, 70287, 69578, 68920, 68267, 67873, 67416, 66798, 66410, 66024, 65693, 65310, 65111, 64792, 64639, 64447, 63946, 63864, 63647, 63621, 63394, 63132, 62916, 62887, 62765, 62695, 62493, 62330, 62270, 62189, 61993, 61929, 61899, 61825, 61672, 61701, 61546, 61444, 61484, 61358, 61377, 61292, 61339, 61185, 61104, 61128, 61228, 61011, 61025, 61060, 60910, 60922, 60872, 60875, 60908, 60805, 60755, 60748, 60735, 60758, 60715, 60646, 60671, 60705, 60560, 60655, 60616, 60556, 60620, 60481, 60518, 60609, 60441, 60397, 60538, 60485, 60505, 60437, 60505, 60523, 60384, 60449, 60305, 60364, 60387, 60379, 60394, 60352, 60482, 60286, 60319, 60284, 60343, 60227, 60235, 60220, 60324, 60307, 60299, 60155, 60293, 60189, 60247, 60234, 60165, 60169, 60254, 60289, 60107, 60282, 60161, 60322, 60142, 60142, 60125, 60164, 60258, 60128, 60211, 60141, 60195, 60178, 60155, 60207, 60161, 60104, 60108, 60172, 60035, 60097, 60210, 60010, 60011, 60057, 60162, 60112, 59989, 60073, 60145, 59970, 60059, 60127, 60068, 59945, 60049, 60036, 60086, 60037, 60073, 60072, 60109, 60068, 59985, 60028, 59951, 60055, 60036, 59946, 60001, 60093, 59983, 59885, 60014, 59912, 60010, 59895, 60056, 59927, 59954, 59965, 60071, 59951, 60040, 59997, 59922, 59980, 59939, 59996, 59926, 59987, 59992, 59878, 59984, 59976, 59976, 59973, 59973, 59982, 59922, 59943, 59970, 59923, 59934, 59899, 59972, 59828, 59945, 59885, 59907, 59860, 59955, 60005, 59844, 59875, 59948, 59933, 59915, 59977, 59845, 59908, 59884, 59936, 59997, 59929, 59869, 59942, 59893, 59924, 59872, 59871, 59916, 59957, 59912, 59764, 59849, 59918, 59901, 59794, 59863, 59882, 59879, 59858, 59897, 59838, 59882, 59924, 59840, 59850, 59890, 59870, 59896, 59819, 59911, 59782, 59869, 59778, 59926, 59794, 59898, 59812, 59812, 59890, 59880, 59902, 59814, 59895, 59834, 59899, 59787, 59848, 59893, 59852, 59979, 59787, 59796, 59792, 59788, 59884, 59843, 59821, 59779, 59861, 59774, 59755, 59815, 59755, 59820, 59874, 59739, 59822, 59774, 59725, 59750, 59779, 59816, 59859, 59830, 59827, 59815, 59730, 59802, 59815, 59757, 59768, 59790, 59853, 59839, 59746, 59897, 59797, 59735, 59822, 59772, 59854, 59741, 59837, 59765, 59783, 59802, 59832, 59837, 59775, 59824, 59780, 59759, 59813, 59814, 59750, 59702, 59747, 59731, 59795, 59746, 59803, 59773, 59750, 59744, 59768, 59670, 59684, 59699, 59785, 59738, 59759, 59762, 59840, 59807, 59693, 59790, 59669, 59691, 59784, 59758, 59762, 59857, 59794, 59794, 59785, 59692, 59751, 59761, 59773, 59723, 59735, 59762, 59734, 59762, 59786, 59832, 59732, 59837, 59801, 59764, 59753, 59753, 59794, 59760, 59778, 59799, 59734, 59717, 59822, 59802, 59786, 59853, 59713, 59752, 59799, 59796, 59790, 59662, 59817, 59784, 59776, 59777, 59740, 59780, 59678, 59691, 59740, 59876, 59789, 59649, 59787, 59703, 59728, 59725, 59750, 59700, 59720, 59750, 59890, 59777, 59818, 59767, 59846, 59823, 59796, 59777, 59785, 59826, 59742, 59743, 59876, 59826, 59795, 59843, 59863, 59839, 59859, 59841, 59776, 59951, 59829, 59787, 59768, 59826, 59751, 59825, 59722, 59734, 59838, 59766, 59818, 59737, 59798, 59816, 59850, 59761, 59793, 59773, 59895, 59881, 59784, 59845, 59895, 59854, 59738, 59885, 59814, 59881, 59727, 59762, 59812, 59788, 59913, 59708, 59795, 59814, 59851, 59774, 59735, 59844, 59818, 59838, 59767, 59800, 59828, 59714, 59797, 59842, 59770, 59738, 59797, 59692, 59740, 59748, 59756, 59811, 59744, 59727, 59671, 59742, 59616, 59746, 59829, 59665, 59815, 59677, 59737, 59712, 59677, 59737, 59685, 59671, 59687, 59693, 59696, 59786, 59765, 59654, 59713, 59600, 59676, 59618, 59660] } Luminescence/tests/testthat/_snaps/apply_Crosstalk.md0000644000176200001440000000240114762554470022660 0ustar liggesusers# check functionality { "type": "double", "attributes": {}, "value": [1.4, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.4, 1.6, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.6, 1.6, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.6, 1.6, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.6, 1.8, 2, 2, 2, 2, 2, 2, 2, 2, 1.8, 3, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 3.4, 3, 3.2, 3.6, 3.6, 3.6, 3.6, 3.6, 3.6, 3.6, 3.6, 3.2, 3.2, 3.6, 3.6, 3.6, 3.6, 3.6, 3.6, 3.6, 3.6, 3.2, 3.2, 3.6, 3.6, 3.6, 3.6, 3.6, 3.6, 3.6, 3.6, 3.2, 2.8, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 2.8] } --- { "type": "double", "attributes": {}, "value": [3.6, 5.2, 6.8, 8.4, 10, 11.6, 13.2, 14.8, 16.4, 15.8, 17.8, 21.6, 23.4, 25.2, 27, 28.8, 30.6, 32.4, 34.2, 31.8, 33.8, 39.6, 41.4, 43.2, 45, 46.8, 48.6, 50.4, 52.2, 47.8, 49.8, 57.6, 59.4, 61.2, 63, 64.8, 66.6, 68.4, 70.2, 63.8, 65.8, 75.6, 77.4, 79.2, 81, 82.8, 84.6, 86.4, 88.2, 79.8, 81.8, 93.6, 95.4, 97.2, 99, 100.8, 102.6, 104.4, 106.2, 95.8, 97.8, 111.6, 113.4, 115.2, 117, 118.8, 120.6, 122.4, 124.2, 111.8, 113.8, 129.6, 131.4, 133.2, 135, 136.8, 138.6, 140.4, 142.2, 127.8, 129.8, 147.6, 149.4, 151.2, 153, 154.8, 156.6, 158.4, 160.2, 143.8, 125.6, 145.2, 146.8, 148.4, 150, 151.6, 153.2, 154.8, 156.4, 137.8] } Luminescence/tests/testthat/_snaps/calc_OSLLxTxRatio.md0000644000176200001440000011560314762554470022755 0ustar liggesusers# test arguments { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LxTx.table", "calc.parameters"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error", "LxTx", "LxTx.Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [81709] }, { "type": "double", "attributes": {}, "value": [530] }, { "type": "double", "attributes": {}, "value": [7403] }, { "type": "double", "attributes": {}, "value": [513] }, { "type": "double", "attributes": {}, "value": [81179] }, { "type": "double", "attributes": {}, "value": [286.5] }, { "type": "double", "attributes": {}, "value": [6890] }, { "type": "double", "attributes": {}, "value": [88.5] }, { "type": "double", "attributes": {}, "value": [11.8] }, { "type": "double", "attributes": {}, "value": [0.2] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["sigmab.LnLx", "sigmab.TnTx", "k"] } }, "value": [ { "type": "double", "attributes": {}, "value": [296.38095238] }, { "type": "double", "attributes": {}, "value": [330.19047619] }, { "type": "double", "attributes": {}, "value": [8] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_OSLLxTxRatio"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LxTx.table", "calc.parameters"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [81709] }, { "type": "double", "attributes": {}, "value": [530] }, { "type": "double", "attributes": {}, "value": [7403] }, { "type": "double", "attributes": {}, "value": [513] }, { "type": "double", "attributes": {}, "value": [81179] }, { "type": "double", "attributes": {}, "value": [287.92403512] }, { "type": "double", "attributes": {}, "value": [6890] }, { "type": "double", "attributes": {}, "value": [87.0610418] }, { "type": "double", "attributes": {}, "value": [11.78214804] }, { "type": "double", "attributes": {}, "value": [0.1546312] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["sigmab.LnLx", "sigmab.TnTx", "k"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1000] }, { "type": "double", "attributes": {}, "value": [100] }, { "type": "double", "attributes": {}, "value": [8] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_OSLLxTxRatio"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LxTx.table", "calc.parameters"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [81709] }, { "type": "double", "attributes": {}, "value": [530] }, { "type": "double", "attributes": {}, "value": [7403] }, { "type": "double", "attributes": {}, "value": [513] }, { "type": "double", "attributes": {}, "value": [81179] }, { "type": "double", "attributes": {}, "value": [285.96372148] }, { "type": "double", "attributes": {}, "value": [6890] }, { "type": "double", "attributes": {}, "value": [86.41252803] }, { "type": "double", "attributes": {}, "value": [11.78214804] }, { "type": "double", "attributes": {}, "value": [0.1534866] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["sigmab.LnLx", "sigmab.TnTx", "k"] } }, "value": [ { "type": "double", "attributes": {}, "value": [296.38095238] }, { "type": "double", "attributes": {}, "value": [330.19047619] }, { "type": "double", "attributes": {}, "value": [8] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_OSLLxTxRatio"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } # snapshot tests { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LxTx.table", "calc.parameters"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [81709] }, { "type": "double", "attributes": {}, "value": [530] }, { "type": "double", "attributes": {}, "value": [7403] }, { "type": "double", "attributes": {}, "value": [513] }, { "type": "double", "attributes": {}, "value": [81179] }, { "type": "double", "attributes": {}, "value": [286.54611945] }, { "type": "double", "attributes": {}, "value": [6890] }, { "type": "double", "attributes": {}, "value": [88.53580793] }, { "type": "double", "attributes": {}, "value": [11.78214804] }, { "type": "double", "attributes": {}, "value": [0.15700765] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["sigmab.LnLx", "sigmab.TnTx", "k"] } }, "value": [ { "type": "double", "attributes": {}, "value": [296.38095238] }, { "type": "double", "attributes": {}, "value": [330.19047619] }, { "type": "double", "attributes": {}, "value": [8] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_OSLLxTxRatio"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LxTx.table", "calc.parameters"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [7403] }, { "type": "double", "attributes": {}, "value": [513] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [6890] }, { "type": "double", "attributes": {}, "value": [88.53580793] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["sigmab.LnLx", "sigmab.TnTx", "k"] } }, "value": [ { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [330.19047619] }, { "type": "double", "attributes": {}, "value": [8] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_OSLLxTxRatio"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LxTx.table", "calc.parameters"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [81709] }, { "type": "double", "attributes": {}, "value": [530] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [81179] }, { "type": "double", "attributes": {}, "value": [286.54611945] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": ["Inf"] }, { "type": "double", "attributes": {}, "value": ["NaN"] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["sigmab.LnLx", "sigmab.TnTx", "k"] } }, "value": [ { "type": "double", "attributes": {}, "value": [296.38095238] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [8] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_OSLLxTxRatio"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LxTx.table", "calc.parameters"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["sigmab.LnLx", "sigmab.TnTx", "k"] } }, "value": [ { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [8] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_OSLLxTxRatio"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LxTx.table", "calc.parameters"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [-2000] }, { "type": "double", "attributes": {}, "value": [-2000] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["sigmab.LnLx", "sigmab.TnTx", "k"] } }, "value": [ { "type": "double", "attributes": {}, "value": [3000] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [8] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_OSLLxTxRatio"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LxTx.table", "calc.parameters"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [81709] }, { "type": "double", "attributes": {}, "value": [530] }, { "type": "double", "attributes": {}, "value": [-2000] }, { "type": "double", "attributes": {}, "value": [-2000] }, { "type": "double", "attributes": {}, "value": [81179] }, { "type": "double", "attributes": {}, "value": [286.54611945] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": ["Inf"] }, { "type": "double", "attributes": {}, "value": ["NaN"] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["sigmab.LnLx", "sigmab.TnTx", "k"] } }, "value": [ { "type": "double", "attributes": {}, "value": [296.38095238] }, { "type": "double", "attributes": {}, "value": [3000] }, { "type": "double", "attributes": {}, "value": [8] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_OSLLxTxRatio"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LxTx.table", "calc.parameters"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [-2000] }, { "type": "double", "attributes": {}, "value": [-2000] }, { "type": "double", "attributes": {}, "value": [-2000] }, { "type": "double", "attributes": {}, "value": [-2000] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["sigmab.LnLx", "sigmab.TnTx", "k"] } }, "value": [ { "type": "double", "attributes": {}, "value": [3000] }, { "type": "double", "attributes": {}, "value": [3000] }, { "type": "double", "attributes": {}, "value": [8] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_OSLLxTxRatio"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/fit_DoseResponseCurve.md0000644000176200001440000023633314762554470024003 0ustar liggesusers# snapshot tests { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.MC", "Fit.Args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "D01", "D01.ERROR", "D02", "D02.ERROR", "Dc", "n_N", "De.MC", "De.plot", "Fit", "HPDI68_L", "HPDI68_U"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1737.88094437] }, { "type": "double", "attributes": {}, "value": [47.22586057] }, { "type": "double", "attributes": {}, "value": [1766.07421865] }, { "type": "double", "attributes": {}, "value": [70.37433503] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [0.52713521] }, { "type": "double", "attributes": {}, "value": [1756.23503279] }, { "type": "double", "attributes": {}, "value": [1737.88094437] }, { "type": "character", "attributes": {}, "value": ["EXP"] }, { "type": "double", "attributes": {}, "value": [1699.30176636] }, { "type": "double", "attributes": {}, "value": [1719.71740889] } ] }, { "type": "double", "attributes": {}, "value": [1684.85735459, 1763.54183457, 1762.187853, 1850.03438636, 1774.63110596, 1703.33986596, 1793.5411331, 1717.19383989, 1760.88144126, 1752.14151321] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["object", "fit.method", "mode", "fit.force_through_origin", "fit.includingRepeatedRegPoints", "fit.NumberRegPoints", "fit.NumberRegPointsReal", "fit.weights", "fit.bounds", "n.MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Dose", "LxTx", "LxTx.Error", "TnTx"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [0, 450, 1050, 2000, 2550, 450, 0] }, { "type": "double", "attributes": {}, "value": [4.269, 1.532, 3.007, 4.571, 5.259, 1.609, 0.018] }, { "type": "double", "attributes": {}, "value": [0.076, 0.029, 0.054, 0.081, 0.09, 0.029, 0.002] }, { "type": "integer", "attributes": {}, "value": [10778, 11298, 11385, 11603, 13141, 13126, 13940] } ] }, { "type": "character", "attributes": {}, "value": ["EXP"] }, { "type": "character", "attributes": {}, "value": ["interpolation"] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "double", "attributes": {}, "value": [0.05644206, 0.03031148, 0.02020765, 0.01818689, 0.05644206, 0.81840987] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [10] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_DoseResponseCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.MC", "Fit.Args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "D01", "D01.ERROR", "D02", "D02.ERROR", "Dc", "n_N", "De.MC", "De.plot", "Fit", "HPDI68_L", "HPDI68_U"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1811.33104805] }, { "type": "double", "attributes": {}, "value": [40.56920434] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [0.50995774] }, { "type": "double", "attributes": {}, "value": [1839.83430692] }, { "type": "double", "attributes": {}, "value": [1811.33104805] }, { "type": "character", "attributes": {}, "value": ["LIN"] }, { "type": "double", "attributes": {}, "value": [1787.21551381] }, { "type": "double", "attributes": {}, "value": [1882.6877783] } ] }, { "type": "double", "attributes": {}, "value": [1848.89549991, 1846.15066074, 1893.0524396, 1868.55650236, 1796.110008, 1901.66508559, 1788.41533458, 1789.27853976, 1835.17171587, 1831.04728281] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["object", "fit.method", "mode", "fit.force_through_origin", "fit.includingRepeatedRegPoints", "fit.NumberRegPoints", "fit.NumberRegPointsReal", "fit.weights", "fit.bounds", "n.MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Dose", "LxTx", "LxTx.Error", "TnTx"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [0, 450, 1050, 2000, 2550, 450, 0] }, { "type": "double", "attributes": {}, "value": [4.269, 1.532, 3.007, 4.571, 5.259, 1.609, 0.018] }, { "type": "double", "attributes": {}, "value": [0.076, 0.029, 0.054, 0.081, 0.09, 0.029, 0.002] }, { "type": "integer", "attributes": {}, "value": [10778, 11298, 11385, 11603, 13141, 13126, 13940] } ] }, { "type": "character", "attributes": {}, "value": ["LIN"] }, { "type": "character", "attributes": {}, "value": ["interpolation"] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "double", "attributes": {}, "value": [0.05644206, 0.03031148, 0.02020765, 0.01818689, 0.05644206, 0.81840987] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [10] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_DoseResponseCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.MC", "Fit.Args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "D01", "D01.ERROR", "D02", "D02.ERROR", "Dc", "n_N", "De.MC", "De.plot", "Fit", "HPDI68_L", "HPDI68_U"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "character", "attributes": {}, "value": ["LIN"] }, { "type": "double", "attributes": {}, "value": [-0.56341651] }, { "type": "double", "attributes": {}, "value": [0.55674886] } ] }, { "type": "double", "attributes": {}, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["object", "fit.method", "mode", "fit.force_through_origin", "fit.includingRepeatedRegPoints", "fit.NumberRegPoints", "fit.NumberRegPointsReal", "fit.weights", "fit.bounds", "n.MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Dose", "LxTx", "LxTx.Error", "TnTx"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [0, 450, 1050, 2000, 2550, 450, 0] }, { "type": "double", "attributes": {}, "value": [4.269, 1.532, 3.007, 4.571, 5.259, 1.609, 0.018] }, { "type": "double", "attributes": {}, "value": [0.076, 0.029, 0.054, 0.081, 0.09, 0.029, 0.002] }, { "type": "integer", "attributes": {}, "value": [10778, 11298, 11385, 11603, 13141, 13126, 13940] } ] }, { "type": "character", "attributes": {}, "value": ["LIN"] }, { "type": "character", "attributes": {}, "value": ["extrapolation"] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "double", "attributes": {}, "value": [0.02108303, 0.05525209, 0.02967242, 0.01978161, 0.01780345, 0.05525209, 0.8011553] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [10] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_DoseResponseCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.MC", "Fit.Args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "D01", "D01.ERROR", "D02", "D02.ERROR", "Dc", "n_N", "De.MC", "De.plot", "Fit", "HPDI68_L", "HPDI68_U"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1792.84643199] }, { "type": "double", "attributes": {}, "value": [86.47320469] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [0.55451842] }, { "type": "double", "attributes": {}, "value": [1803.21636269] }, { "type": "double", "attributes": {}, "value": [1792.84643199] }, { "type": "character", "attributes": {}, "value": ["EXP+LIN"] }, { "type": "double", "attributes": {}, "value": [1710.77644211] }, { "type": "double", "attributes": {}, "value": [1914.52469575] } ] }, { "type": "double", "attributes": {}, "value": [1914.24507824, 1828.69651439, 1745.45958689, 1778.69354572, 1893.51534248, 1672.1968566, 1796.04640723, 1911.58346408, 1688.02253938, 1803.70429191] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["object", "fit.method", "mode", "fit.force_through_origin", "fit.includingRepeatedRegPoints", "fit.NumberRegPoints", "fit.NumberRegPointsReal", "fit.weights", "fit.bounds", "n.MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Dose", "LxTx", "LxTx.Error", "TnTx"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [0, 450, 1050, 2000, 2550, 450, 0] }, { "type": "double", "attributes": {}, "value": [4.269, 1.532, 3.007, 4.571, 5.259, 1.609, 0.018] }, { "type": "double", "attributes": {}, "value": [0.076, 0.029, 0.054, 0.081, 0.09, 0.029, 0.002] }, { "type": "integer", "attributes": {}, "value": [10778, 11298, 11385, 11603, 13141, 13126, 13940] } ] }, { "type": "character", "attributes": {}, "value": ["EXP+LIN"] }, { "type": "character", "attributes": {}, "value": ["interpolation"] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "double", "attributes": {}, "value": [0.05644206, 0.03031148, 0.02020765, 0.01818689, 0.05644206, 0.81840987] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "double", "attributes": {}, "value": [10] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_DoseResponseCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.MC", "Fit.Args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "D01", "D01.ERROR", "D02", "D02.ERROR", "Dc", "n_N", "De.MC", "De.plot", "Fit", "HPDI68_L", "HPDI68_U"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1787.14784685] }, { "type": "double", "attributes": {}, "value": [39.0205444] }, { "type": "double", "attributes": {}, "value": [3521.17] }, { "type": "double", "attributes": {}, "value": [3591614.20373586] }, { "type": "double", "attributes": {}, "value": [549.02] }, { "type": "double", "attributes": {}, "value": [387.36156052] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [0.55106277] }, { "type": "double", "attributes": {}, "value": [1811.36154986] }, { "type": "double", "attributes": {}, "value": [1787.14784685] }, { "type": "character", "attributes": {}, "value": ["EXP+EXP"] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] } ] }, { "type": "double", "attributes": {}, "value": ["NA", 1824.8371709, "NA", 1830.71377093, 1776.78064125, 1864.234325, 1746.9287764, 1831.20796013, 1804.82820438, "NA"] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["object", "fit.method", "mode", "fit.force_through_origin", "fit.includingRepeatedRegPoints", "fit.NumberRegPoints", "fit.NumberRegPointsReal", "fit.weights", "fit.bounds", "n.MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Dose", "LxTx", "LxTx.Error", "TnTx"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [0, 450, 1050, 2000, 2550, 450, 0] }, { "type": "double", "attributes": {}, "value": [4.269, 1.532, 3.007, 4.571, 5.259, 1.609, 0.018] }, { "type": "double", "attributes": {}, "value": [0.076, 0.029, 0.054, 0.081, 0.09, 0.029, 0.002] }, { "type": "integer", "attributes": {}, "value": [10778, 11298, 11385, 11603, 13141, 13126, 13940] } ] }, { "type": "character", "attributes": {}, "value": ["EXP+EXP"] }, { "type": "character", "attributes": {}, "value": ["interpolation"] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "double", "attributes": {}, "value": [0.05644206, 0.03031148, 0.02020765, 0.01818689, 0.05644206, 0.81840987] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [10] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_DoseResponseCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.MC", "Fit.Args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "D01", "D01.ERROR", "D02", "D02.ERROR", "Dc", "n_N", "De.MC", "De.plot", "Fit", "HPDI68_L", "HPDI68_U"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1666.20445767] }, { "type": "double", "attributes": {}, "value": [56.6268594] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [0.48867007] }, { "type": "double", "attributes": {}, "value": [1654.19502336] }, { "type": "double", "attributes": {}, "value": [1666.20445767] }, { "type": "character", "attributes": {}, "value": ["QDR"] }, { "type": "double", "attributes": {}, "value": [1582.80598467] }, { "type": "double", "attributes": {}, "value": [1664.18544782] } ] }, { "type": "double", "attributes": {}, "value": [1610.90625651, 1571.71222246, 1605.16197247, 1740.38278054, 1618.06265129, 1702.16986024, 1616.05022924, 1701.93514277, 1668.3974487, 1707.17166934] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["object", "fit.method", "mode", "fit.force_through_origin", "fit.includingRepeatedRegPoints", "fit.NumberRegPoints", "fit.NumberRegPointsReal", "fit.weights", "fit.bounds", "n.MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Dose", "LxTx", "LxTx.Error", "TnTx"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [0, 450, 1050, 2000, 2550, 450, 0] }, { "type": "double", "attributes": {}, "value": [4.269, 1.532, 3.007, 4.571, 5.259, 1.609, 0.018] }, { "type": "double", "attributes": {}, "value": [0.076, 0.029, 0.054, 0.081, 0.09, 0.029, 0.002] }, { "type": "integer", "attributes": {}, "value": [10778, 11298, 11385, 11603, 13141, 13126, 13940] } ] }, { "type": "character", "attributes": {}, "value": ["QDR"] }, { "type": "character", "attributes": {}, "value": ["interpolation"] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "double", "attributes": {}, "value": [0.05644206, 0.03031148, 0.02020765, 0.01818689, 0.05644206, 0.81840987] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [10] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_DoseResponseCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.MC", "Fit.Args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "D01", "D01.ERROR", "D02", "D02.ERROR", "Dc", "n_N", "De.MC", "De.plot", "Fit", "HPDI68_L", "HPDI68_U"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1786.19063906] }, { "type": "double", "attributes": {}, "value": [48.55301238] }, { "type": "double", "attributes": {}, "value": [31521.72579394] }, { "type": "double", "attributes": {}, "value": [1172919.42271981] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [0.54991226] }, { "type": "double", "attributes": {}, "value": [1776.80632145] }, { "type": "double", "attributes": {}, "value": [1786.19063906] }, { "type": "character", "attributes": {}, "value": ["GOK"] }, { "type": "double", "attributes": {}, "value": [1709.52405078] }, { "type": "double", "attributes": {}, "value": [1815.21374651] } ] }, { "type": "double", "attributes": {}, "value": [1808.35894275, 1836.22119257, 1727.57455606, 1758.36721033, 1768.18562486, 1868.39982966, 1747.13953135, 1738.69135603, 1722.99453709, 1792.13043382] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["object", "fit.method", "mode", "fit.force_through_origin", "fit.includingRepeatedRegPoints", "fit.NumberRegPoints", "fit.NumberRegPointsReal", "fit.weights", "fit.bounds", "n.MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Dose", "LxTx", "LxTx.Error", "TnTx"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [0, 450, 1050, 2000, 2550, 450, 0] }, { "type": "double", "attributes": {}, "value": [4.269, 1.532, 3.007, 4.571, 5.259, 1.609, 0.018] }, { "type": "double", "attributes": {}, "value": [0.076, 0.029, 0.054, 0.081, 0.09, 0.029, 0.002] }, { "type": "integer", "attributes": {}, "value": [10778, 11298, 11385, 11603, 13141, 13126, 13940] } ] }, { "type": "character", "attributes": {}, "value": ["GOK"] }, { "type": "character", "attributes": {}, "value": ["interpolation"] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "double", "attributes": {}, "value": [0.05644206, 0.03031148, 0.02020765, 0.01818689, 0.05644206, 0.81840987] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [10] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_DoseResponseCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.MC", "Fit.Args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "D01", "D01.ERROR", "D02", "D02.ERROR", "Dc", "n_N", "De.MC", "De.plot", "Fit", "HPDI68_L", "HPDI68_U"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1784.77518933] }, { "type": "double", "attributes": {}, "value": [77.95285537] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [7033.69444514] }, { "type": "double", "attributes": {}, "value": [0.55002393] }, { "type": "double", "attributes": {}, "value": [1753.44276397] }, { "type": "double", "attributes": {}, "value": [1784.77518933] }, { "type": "character", "attributes": {}, "value": ["LambertW"] }, { "type": "double", "attributes": {}, "value": [1699.32043814] }, { "type": "double", "attributes": {}, "value": [1861.38817349] } ] }, { "type": "double", "attributes": {}, "value": [1799.42248907, 1829.68778811, 1776.23866755, 1754.03040759, 1792.50205253, 1781.25824859, 1691.51738922, 1604.2103926, 1847.21826033, 1658.34194408] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["object", "fit.method", "mode", "fit.force_through_origin", "fit.includingRepeatedRegPoints", "fit.NumberRegPoints", "fit.NumberRegPointsReal", "fit.weights", "fit.bounds", "n.MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Dose", "LxTx", "LxTx.Error", "TnTx"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [0, 450, 1050, 2000, 2550, 450, 0] }, { "type": "double", "attributes": {}, "value": [4.269, 1.532, 3.007, 4.571, 5.259, 1.609, 0.018] }, { "type": "double", "attributes": {}, "value": [0.076, 0.029, 0.054, 0.081, 0.09, 0.029, 0.002] }, { "type": "integer", "attributes": {}, "value": [10778, 11298, 11385, 11603, 13141, 13126, 13940] } ] }, { "type": "character", "attributes": {}, "value": ["LambertW"] }, { "type": "character", "attributes": {}, "value": ["interpolation"] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "double", "attributes": {}, "value": [0.05644206, 0.03031148, 0.02020765, 0.01818689, 0.05644206, 0.81840987] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [10] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_DoseResponseCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.MC", "Fit.Args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "D01", "D01.ERROR", "D02", "D02.ERROR", "Dc", "n_N", "De.MC", "De.plot", "Fit", "HPDI68_L", "HPDI68_U"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [38.6899891] }, { "type": "double", "attributes": {}, "value": [1.39886094] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [-0.00030389] }, { "type": "double", "attributes": {}, "value": [38.31783644] }, { "type": "double", "attributes": {}, "value": [-38.6899891] }, { "type": "character", "attributes": {}, "value": ["QDR"] }, { "type": "double", "attributes": {}, "value": [37.35026698] }, { "type": "double", "attributes": {}, "value": [39.61393712] } ] }, { "type": "double", "attributes": {}, "value": [38.69116731, 39.49372174, 38.82570931, 38.85488204, 40.26606975, 37.32510744, 37.96030455, 35.1485078, 38.84913316, 37.76376128] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["object", "fit.method", "mode", "fit.force_through_origin", "fit.includingRepeatedRegPoints", "fit.NumberRegPoints", "fit.NumberRegPointsReal", "fit.weights", "fit.bounds", "n.MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Dose", "LxTx", "LxTx.Error", "TnTx"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [0, 450, 1050, 2000, 2550, 450, 0] }, { "type": "double", "attributes": {}, "value": [4.269, 1.532, 3.007, 4.571, 5.259, 1.609, 0.018] }, { "type": "double", "attributes": {}, "value": [0.076, 0.029, 0.054, 0.081, 0.09, 0.029, 0.002] }, { "type": "integer", "attributes": {}, "value": [10778, 11298, 11385, 11603, 13141, 13126, 13940] } ] }, { "type": "character", "attributes": {}, "value": ["QDR"] }, { "type": "character", "attributes": {}, "value": ["extrapolation"] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "double", "attributes": {}, "value": [0.02108303, 0.05525209, 0.02967242, 0.01978161, 0.01780345, 0.05525209, 0.8011553] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [10] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_DoseResponseCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.MC", "Fit.Args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "D01", "D01.ERROR", "D02", "D02.ERROR", "Dc", "n_N", "De.MC", "De.plot", "Fit", "HPDI68_L", "HPDI68_U"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [4.70773252e-06] }, { "type": "double", "attributes": {}, "value": [0.00001106] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [4.8266576e-18] }, { "type": "double", "attributes": {}, "value": [0.00001188] }, { "type": "double", "attributes": {}, "value": [-4.70773252e-06] }, { "type": "character", "attributes": {}, "value": ["QDR"] }, { "type": "double", "attributes": {}, "value": [-3.75017962e-06] }, { "type": "double", "attributes": {}, "value": [0.00001895] } ] }, { "type": "double", "attributes": {}, "value": [6.38893784e-06, 0.00001699, 0.00003051, 2.77700759e-06, 0.00002978, 8.59208378e-06, 6.50030518e-06, 1.40328309e-06, 0.0000155, 3.59310991e-07] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["object", "fit.method", "mode", "fit.force_through_origin", "fit.includingRepeatedRegPoints", "fit.NumberRegPoints", "fit.NumberRegPointsReal", "fit.weights", "fit.bounds", "n.MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Dose", "LxTx", "LxTx.Error", "TnTx"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [0, 450, 1050, 2000, 2550, 450, 0] }, { "type": "double", "attributes": {}, "value": [4.269, 1.532, 3.007, 4.571, 5.259, 1.609, 0.018] }, { "type": "double", "attributes": {}, "value": [0.076, 0.029, 0.054, 0.081, 0.09, 0.029, 0.002] }, { "type": "integer", "attributes": {}, "value": [10778, 11298, 11385, 11603, 13141, 13126, 13940] } ] }, { "type": "character", "attributes": {}, "value": ["QDR"] }, { "type": "character", "attributes": {}, "value": ["extrapolation"] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "double", "attributes": {}, "value": [0.02108303, 0.05525209, 0.02967242, 0.01978161, 0.01780345, 0.05525209, 0.8011553] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [10] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_DoseResponseCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.MC", "Fit.Args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "D01", "D01.ERROR", "D02", "D02.ERROR", "Dc", "n_N", "De.MC", "De.plot", "Fit", "HPDI68_L", "HPDI68_U"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [79.45855177] }, { "type": "double", "attributes": {}, "value": [1.09105621] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [-0.00091616] }, { "type": "double", "attributes": {}, "value": [79.52740453] }, { "type": "double", "attributes": {}, "value": [-79.45855177] }, { "type": "character", "attributes": {}, "value": ["LIN"] }, { "type": "double", "attributes": {}, "value": [78.67441032] }, { "type": "double", "attributes": {}, "value": [80.8363829] } ] }, { "type": "double", "attributes": {}, "value": [79.81261428, 79.80856481, 80.50743904, 81.13335449, 79.56704355, 77.3350591, 80.16124123, 78.78651318, 78.42661789, 79.73559768] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["object", "fit.method", "mode", "fit.force_through_origin", "fit.includingRepeatedRegPoints", "fit.NumberRegPoints", "fit.NumberRegPointsReal", "fit.weights", "fit.bounds", "n.MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Dose", "LxTx", "LxTx.Error", "TnTx"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [0, 450, 1050, 2000, 2550, 450, 0] }, { "type": "double", "attributes": {}, "value": [4.269, 1.532, 3.007, 4.571, 5.259, 1.609, 0.018] }, { "type": "double", "attributes": {}, "value": [0.076, 0.029, 0.054, 0.081, 0.09, 0.029, 0.002] }, { "type": "integer", "attributes": {}, "value": [10778, 11298, 11385, 11603, 13141, 13126, 13940] } ] }, { "type": "character", "attributes": {}, "value": ["LIN"] }, { "type": "character", "attributes": {}, "value": ["extrapolation"] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "integer", "attributes": {}, "value": [6] }, { "type": "double", "attributes": {}, "value": [0.02108303, 0.05525209, 0.02967242, 0.01978161, 0.01780345, 0.05525209, 0.8011553] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [10] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_DoseResponseCurve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/convert_CW2pX.md0000644000176200001440000166503114762554470022170 0ustar liggesusers# check functionality { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["u", "temp.values...2."] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.63237647, 1.09530818, 1.41403677, 1.67311087, 1.89712941, 2.09735548, 2.28006579, 2.44918354, 2.60735498, 2.75646513, 2.89791304, 3.03277101, 3.16188235, 3.28592453, 3.40545151, 3.52092317, 3.63272625, 3.74118965, 3.8465959, 3.94918979, 4.0491851, 4.14676983, 4.24211032, 4.33535466, 4.42663529, 4.5160713, 4.60377019, 4.68982942, 4.77433765, 4.85737583, 4.93901812, 5.01933262, 5.0983821, 5.17622449, 5.25291348, 5.32849885, 5.40302693, 5.47654088, 5.549081, 5.62068501, 5.69138823, 5.76122383, 5.83022298, 5.89841504, 5.96582769, 6.03248705, 6.09841783, 6.1636434, 6.22818593, 6.29206643, 6.35530487, 6.41792022, 6.47993056, 6.54135307, 6.60220418, 6.66249953, 6.72225409, 6.78148214, 6.84019737, 6.89841286, 6.95614117, 7.01339433, 7.07018387, 7.12652089, 7.18241603, 7.23787952, 7.29292123, 7.34755061, 7.40177681, 7.45560863, 7.50905453, 7.56212272, 7.61482107, 7.66715723, 7.71913855, 7.77077216, 7.82206494, 7.87302356, 7.92365446, 7.97396388, 8.02395788, 8.0736423, 8.12302284, 8.17210499, 8.22089411, 8.26939538, 8.31761384, 8.36555437, 8.41322174, 8.46062054, 8.50775529, 8.55463033, 8.60124991, 8.64761817, 8.69373913, 8.7396167, 8.78525469, 8.83065683, 8.87582672, 8.9207679, 8.96548381, 9.0099778, 9.05425314, 9.09831303, 9.14216058, 9.18579882, 9.22923074, 9.27245922, 9.3154871, 9.35831716, 9.40095208, 9.44339452, 9.48564705, 9.52771221, 9.56959247, 9.61129024, 9.65280788, 9.69414772, 9.73531201, 9.77630298, 9.8171228, 9.85777358, 9.89825742, 9.93857636, 9.97873238, 10.01872746, 10.05856352, 10.09824242, 10.13776603, 10.17713614, 10.21635454, 10.25542296, 10.29434311, 10.33311666, 10.37174527, 10.41023054, 10.44857407, 10.48677739, 10.52484204, 10.56276952, 10.60056131, 10.63821884, 10.67574353, 10.7131368, 10.75039999, 10.78753447, 10.82454156, 10.86142256, 10.89817875, 10.93481138, 10.97132171, 11.00771093, 11.04398026, 11.08013087, 11.11616391, 11.15208052, 11.18788184, 11.22356895, 11.25914295, 11.29460491, 11.32995587, 11.36519687, 11.40032894, 11.43535308, 11.47027027, 11.50508149, 11.53978769, 11.57438983, 11.60888884, 11.64328562, 11.67758109, 11.71177612, 11.74587162, 11.77986842, 11.81376739, 11.84756937, 11.88127518, 11.91488565, 11.94840157, 11.98182373, 12.01515293, 12.04838993, 12.0815355, 12.11459038, 12.14755531, 12.18043103, 12.21321825, 12.24591769, 12.27853004, 12.31105601, 12.34349626, 12.37585149, 12.40812234, 12.44030948, 12.47241356, 12.50443521, 12.53637507, 12.56823377, 12.6000119, 12.6317101, 12.66332895, 12.69486904, 12.72633097, 12.75771531, 12.78902264, 12.82025351, 12.85140848, 12.88248811, 12.91349294, 12.94442351, 12.97528034, 13.00606397, 13.03677491, 13.06741367, 13.09798076, 13.12847668, 13.15890193, 13.18925699, 13.21954235, 13.24975849, 13.27990587, 13.30998497, 13.33999625, 13.36994016, 13.39981716, 13.42962769, 13.4593722, 13.48905112, 13.51866487, 13.5482139, 13.57769863, 13.60711946, 13.63647682, 13.66577111, 13.69500274, 13.72417211, 13.75327961, 13.78232564, 13.81131058, 13.84023482, 13.86909875, 13.89790272, 13.92664712, 13.95533231, 13.98395867, 14.01252654, 14.04103629, 14.06948826, 14.09788282, 14.1262203, 14.15450105, 14.18272541, 14.21089371, 14.23900629, 14.26706347, 14.29506558, 14.32301295, 14.35090589, 14.37874473, 14.40652977, 14.43426133, 14.4619397, 14.48956521, 14.51713815, 14.54465881, 14.5721275, 14.59954451, 14.62691013, 14.65422465, 14.68148834, 14.70870151, 14.73586441, 14.76297734, 14.79004057, 14.81705436, 14.844019, 14.87093474, 14.89780185, 14.9246206, 14.95139124, 14.97811403, 15.00478924, 15.0314171, 15.05799787, 15.08453181, 15.11101916, 15.13746016, 15.16385505, 15.19020408, 15.21650748, 15.2427655, 15.26897835, 15.29514629, 15.32126953, 15.34734831, 15.37338284, 15.39937336, 15.42532009, 15.45122325, 15.47708306, 15.50289973, 15.52867348, 15.55440452, 15.58009307, 15.60573933, 15.63134351, 15.65690582, 15.68242647, 15.70790565, 15.73334357, 15.75874043, 15.78409643, 15.80941175, 15.83468661, 15.85992119, 15.88511567, 15.91027027, 15.93538515, 15.96046052, 15.98549655, 16.01049343, 16.03545135, 16.06037048, 16.08525101, 16.11009311, 16.13489696, 16.15966274, 16.18439063, 16.20908079, 16.2337334, 16.25834862, 16.28292664, 16.30746761, 16.33197171, 16.3564391, 16.38086994, 16.4052644, 16.42962264, 16.45394482, 16.47823109, 16.50248163, 16.52669658, 16.55087611, 16.57502036, 16.5991295, 16.62320366, 16.64724301, 16.6712477, 16.69521788, 16.71915369, 16.74305528, 16.76692279, 16.79075639, 16.81455619, 16.83832236, 16.86205503, 16.88575435, 16.90942045, 16.93305348, 16.95665356, 16.98022085, 17.00375547, 17.02725756, 17.05072726, 17.07416469, 17.09757, 17.12094332, 17.14428476, 17.16759447, 17.19087258, 17.2141192, 17.23733448, 17.26051853, 17.28367148, 17.30679346, 17.32988459, 17.352945, 17.37597479, 17.39897411, 17.42194306, 17.44488177, 17.46779036, 17.49066894, 17.51351764, 17.53633656, 17.55912583, 17.58188556, 17.60461587, 17.62731687, 17.64998867, 17.67263138, 17.69524512, 17.71783, 17.74038613, 17.76291361, 17.78541256, 17.80788309, 17.83032529, 17.85273929, 17.87512517, 17.89748306, 17.91981306, 17.94211526, 17.96438978, 17.98663671, 18.00885615, 18.03104822, 18.05321301, 18.07535062, 18.09746115, 18.1195447, 18.14160136, 18.16363124, 18.18563444, 18.20761105, 18.22956116, 18.25148487, 18.27338228, 18.29525348, 18.31709857, 18.33891763, 18.36071077, 18.38247807, 18.40421962, 18.42593553, 18.44762586, 18.46929073, 18.49093021, 18.5125444, 18.53413338, 18.55569724, 18.57723607, 18.59874996, 18.62023899, 18.64170325, 18.66314282, 18.6845578, 18.70594825, 18.72731428, 18.74865595, 18.76997336, 18.79126659, 18.81253571, 18.83378082, 18.85500199, 18.8761993, 18.89737283, 18.91852267, 18.93964889, 18.96075157, 18.98183079, 19.00288662, 19.02391915, 19.04492846, 19.06591461, 19.08687769, 19.10781777, 19.12873493, 19.14962924, 19.17050078, 19.19134961, 19.21217583, 19.23297949, 19.25376067, 19.27451945, 19.29525589, 19.31597008, 19.33666207, 19.35733194, 19.37797977, 19.39860562, 19.41920956, 19.43979167, 19.460352, 19.48089064, 19.50140764, 19.52190308, 19.54237703, 19.56282955, 19.58326071, 19.60367057, 19.62405921, 19.64442669, 19.66477307, 19.68509842, 19.70540281, 19.7256863, 19.74594895, 19.76619083, 19.786412, 19.80661253, 19.82679248, 19.84695191, 19.86709088, 19.88720946, 19.9073077, 19.92738568, 19.94744345, 19.96748106, 19.98749859, 20.0074961, 20.02747363, 20.04743126, 20.06736904, 20.08728702, 20.10718528, 20.12706387, 20.14692284, 20.16676226, 20.18658218, 20.20638265, 20.22616375, 20.24592552, 20.26566801, 20.2853913, 20.30509542, 20.32478044, 20.34444642, 20.3640934, 20.38372145, 20.40333061, 20.42292095, 20.44249251, 20.46204535, 20.48157953, 20.50109509, 20.5205921, 20.54007059, 20.55953064, 20.57897228, 20.59839557, 20.61780056, 20.63718731, 20.65655586, 20.67590627, 20.69523858, 20.71455286, 20.73384914, 20.75312748, 20.77238792, 20.79163053, 20.81085534, 20.83006241, 20.84925179, 20.86842351, 20.88757765, 20.90671423, 20.92583332, 20.94493495, 20.96401918, 20.98308605, 21.00213561, 21.0211679, 21.04018298, 21.0591809, 21.07816168, 21.0971254, 21.11607208, 21.13500177, 21.15391453, 21.17281039, 21.19168941, 21.21055162, 21.22939707, 21.24822581, 21.26703788, 21.28583332, 21.30461218, 21.3233745, 21.34212033, 21.3608497, 21.37956267, 21.39825927, 21.41693956, 21.43560356, 21.45425133, 21.4728829, 21.49149832, 21.51009763, 21.52868087, 21.54724808, 21.56579931, 21.5843346, 21.60285398, 21.6213575, 21.63984519, 21.65831711, 21.67677328, 21.69521376, 21.71363857, 21.73204776, 21.75044137, 21.76881944, 21.78718201, 21.80552912, 21.8238608, 21.84217709, 21.86047804, 21.87876368, 21.89703405, 21.91528918, 21.93352913, 21.95175392, 21.96996359, 21.98815818, 22.00633772, 22.02450226, 22.04265184, 22.06078648, 22.07890622, 22.09701111, 22.11510118, 22.13317646, 22.15123699, 22.1692828, 22.18731394, 22.20533044, 22.22333233, 22.24131966, 22.25929244, 22.27725073, 22.29519455, 22.31312394, 22.33103894, 22.34893957, 22.36682588, 22.3846979, 22.40255566, 22.42039919, 22.43822854, 22.45604373, 22.4738448, 22.49163178, 22.5094047, 22.5271636, 22.54490852, 22.56263947, 22.58035651, 22.59805965, 22.61574894, 22.6334244, 22.65108607, 22.66873397, 22.68636815, 22.70398864, 22.72159545, 22.73918864, 22.75676822, 22.77433424, 22.79188671, 22.80942568, 22.82695118, 22.84446322, 22.86196186, 22.87944711, 22.89691901, 22.91437758, 22.93182287, 22.94925489, 22.96667368, 22.98407927, 23.00147169, 23.01885097, 23.03621714, 23.05357022, 23.07091026, 23.08823726, 23.10555128, 23.12285233, 23.14014045, 23.15741566, 23.17467799, 23.19192747, 23.20916414, 23.22638801, 23.24359912, 23.26079749, 23.27798316, 23.29515615, 23.31231649, 23.3294642, 23.34659932, 23.36372188, 23.38083189, 23.3979294, 23.41501441, 23.43208697, 23.44914711, 23.46619483, 23.48323019, 23.50025319, 23.51726387, 23.53426226, 23.55124837, 23.56822225, 23.58518391, 23.60213338, 23.61907068, 23.63599585, 23.65290891, 23.66980989, 23.6866988, 23.70357568, 23.72044055, 23.73729344, 23.75413438, 23.77096338, 23.78778048, 23.80458569, 23.82137905, 23.83816058, 23.85493031, 23.87168825, 23.88843444, 23.9051689, 23.92189165, 23.93860272, 23.95530213, 23.9719899, 23.98866607, 24.00533066, 24.02198368, 24.03862517, 24.05525514, 24.07187363, 24.08848065, 24.10507623, 24.12166039, 24.13823316, 24.15479456, 24.1713446, 24.18788333, 24.20441076, 24.2209269, 24.23743179, 24.25392546, 24.27040791, 24.28687917, 24.30333928, 24.31978824, 24.33622608, 24.35265283, 24.36906851, 24.38547313, 24.40186673, 24.41824932, 24.43462093, 24.45098158, 24.46733128, 24.48367007, 24.49999796, 24.51631498, 24.53262114, 24.54891647, 24.565201, 24.58147473, 24.5977377, 24.61398992, 24.63023142, 24.64646222, 24.66268234, 24.67889179, 24.69509061, 24.7112788, 24.7274564, 24.74362342, 24.75977989, 24.77592582, 24.79206123, 24.80818615, 24.82430059, 24.84040459, 24.85649814, 24.87258129, 24.88865404, 24.90471642, 24.92076845, 24.93681014, 24.95284152, 24.96886261, 24.98487342, 25.00087398, 25.01686431, 25.03284442, 25.04881434, 25.06477409, 25.08072367, 25.09666312, 25.11259246, 25.12851169, 25.14442085, 25.16031995, 25.17620901, 25.19208804, 25.20795708, 25.22381613, 25.23966521, 25.25550435, 25.27133356, 25.28715286, 25.30296228, 25.31876182, 25.33455151, 25.35033136, 25.3661014, 25.38186163, 25.39761209, 25.41335279, 25.42908374, 25.44480497, 25.46051649, 25.47621832, 25.49191048, 25.50759299, 25.52326586, 25.53892911, 25.55458276, 25.57022683, 25.58586133, 25.60148628, 25.61710171, 25.63270762, 25.64830404, 25.66389098, 25.67946845, 25.69503649, 25.71059509, 25.72614429, 25.74168409, 25.75721452, 25.77273559, 25.78824732, 25.80374973, 25.81924282, 25.83472663, 25.85020116, 25.86566643, 25.88112246, 25.89656927, 25.91200687, 25.92743528, 25.94285451, 25.95826458, 25.97366551, 25.98905731, 26.00444001, 26.0198136, 26.03517812, 26.05053358, 26.06588, 26.08121738, 26.09654575, 26.11186512, 26.12717551, 26.14247693, 26.1577694, 26.17305294, 26.18832755, 26.20359327, 26.21885009, 26.23409804, 26.24933713, 26.26456739, 26.27978881, 26.29500143, 26.31020524, 26.32540028, 26.34058655, 26.35576408, 26.37093286, 26.38609293, 26.40124429, 26.41638696, 26.43152096, 26.44664629, 26.46176298, 26.47687104, 26.49197048, 26.50706132, 26.52214358, 26.53721726, 26.55228239, 26.56733897, 26.58238703, 26.59742657, 26.61245761, 26.62748017, 26.64249425, 26.65749988, 26.67249707, 26.68748583, 26.70246618, 26.71743813, 26.73240169, 26.74735688, 26.76230371, 26.7772422, 26.79217236, 26.80709421, 26.82200775, 26.83691301, 26.85180999, 26.86669872, 26.88157919, 26.89645144, 26.91131546, 26.92617128, 26.94101891, 26.95585836, 26.97068965, 26.98551278, 27.00032778, 27.01513465, 27.02993341, 27.04472407, 27.05950665, 27.07428115, 27.0890476, 27.10380601, 27.11855638, 27.13329873, 27.14803308, 27.16275943, 27.17747781, 27.19218822, 27.20689067, 27.22158519, 27.23627177, 27.25095044, 27.26562121, 27.28028409, 27.29493909, 27.30958623, 27.32422552, 27.33885696, 27.35348058, 27.36809639, 27.3827044, 27.39730461, 27.41189705, 27.42648173, 27.44105865, 27.45562784, 27.4701893, 27.48474304, 27.49928908, 27.51382743, 27.52835811, 27.54288111, 27.55739647, 27.57190418, 27.58640426, 27.60089672, 27.61538158, 27.62985885, 27.64432853, 27.65879065, 27.6732452, 27.68769221, 27.70213169, 27.71656364, 27.73098808, 27.74540502, 27.75981448, 27.77421646, 27.78861098, 27.80299804, 27.81737766, 27.83174986, 27.84611463, 27.860472, 27.87482197, 27.88916456, 27.90349978, 27.91782764, 27.93214815, 27.94646131, 27.96076716, 27.97506568, 27.98935691, 28.00364083, 28.01791748, 28.03218686, 28.04644897, 28.06070384, 28.07495147, 28.08919187, 28.10342506, 28.11765104, 28.13186983, 28.14608143, 28.16028587, 28.17448314, 28.18867326, 28.20285624, 28.21703209, 28.23120082, 28.24536245, 28.25951698, 28.27366442, 28.28780479, 28.3019381, 28.31606435, 28.33018355, 28.34429572, 28.35840087, 28.37249901, 28.38659014, 28.40067429, 28.41475145, 28.42882164, 28.44288487, 28.45694116, 28.4709905, 28.48503291, 28.49906841, 28.51309699, 28.52711868, 28.54113347, 28.55514139, 28.56914244, 28.58313664, 28.59712398, 28.61110449, 28.62507817, 28.63904503, 28.65300508, 28.66695833, 28.6809048, 28.69484448, 28.7087774, 28.72270356, 28.73662297, 28.75053565, 28.76444159, 28.77834081, 28.79223333, 28.80611914, 28.81999827, 28.83387071, 28.84773648, 28.86159559, 28.87544805, 28.88929386, 28.90313305, 28.91696561, 28.93079156, 28.9446109, 28.95842364, 28.97222981, 28.98602939, 28.99982241, 29.01360888, 29.02738879, 29.04116217, 29.05492901, 29.06868934, 29.08244316, 29.09619047, 29.1099313, 29.12366563, 29.1373935, 29.1511149, 29.16482985, 29.17853835, 29.19224041, 29.20593604, 29.21962525, 29.23330806, 29.24698446, 29.26065447, 29.2743181, 29.28797535, 29.30162623, 29.31527076, 29.32890895, 29.34254079, 29.3561663, 29.36978549, 29.38339837, 29.39700495, 29.41060523, 29.42419922, 29.43778694, 29.45136839, 29.46494358, 29.47851251, 29.49207521, 29.50563167, 29.5191819, 29.53272592, 29.54626372, 29.55979533, 29.57332075, 29.58683998, 29.60035304, 29.61385993, 29.62736067, 29.64085525, 29.6543437, 29.66782601, 29.6813022, 29.69477227, 29.70823623, 29.7216941, 29.73514587, 29.74859156, 29.76203118, 29.77546473, 29.78889223, 29.80231367, 29.81572907, 29.82913844, 29.84254178, 29.85593911, 29.86933042, 29.88271574, 29.89609506, 29.9094684, 29.92283576, 29.93619715, 29.94955258, 29.96290206, 29.9762456, 29.98958319, 30.00291486, 30.0162406, 30.02956044, 30.04287436, 30.05618239, 30.06948453, 30.08278079, 30.09607117, 30.10935569, 30.12263435, 30.13590715, 30.14917412, 30.16243525, 30.17569055, 30.18894003, 30.2021837, 30.21542156, 30.22865363, 30.2418799, 30.2551004, 30.26831512, 30.28152407, 30.29472726, 30.30792471, 30.3211164, 30.33430237, 30.3474826, 30.36065711, 30.3738259, 30.38698899, 30.40014638, 30.41329808, 30.42644409, 30.43958443, 30.45271909, 30.46584809, 30.47897144, 30.49208914, 30.5052012, 30.51830762, 30.53140842, 30.5445036, 30.55759316, 30.57067713, 30.58375549, 30.59682827, 30.60989546, 30.62295707, 30.63601312, 30.64906361, 30.66210854, 30.67514792, 30.68818176, 30.70121007, 30.71423286, 30.72725012, 30.74026187, 30.75326812, 30.76626887, 30.77926412, 30.7922539, 30.80523819, 30.81821702, 30.83119038, 30.84415828, 30.85712073, 30.87007775, 30.88302932, 30.89597547, 30.90891619, 30.9218515, 30.9347814, 30.94770589, 30.96062499, 30.97353871, 30.98644704, 30.99934999, 31.01224758, 31.02513981, 31.03802668, 31.0509082, 31.06378438, 31.07665523, 31.08952074, 31.10238094, 31.11523582, 31.12808539, 31.14092966, 31.15376863, 31.16660232, 31.17943072, 31.19225385, 31.2050717, 31.2178843, 31.23069163, 31.24349372, 31.25629057, 31.26908217, 31.28186855, 31.2946497, 31.30742564, 31.32019636, 31.33296188, 31.3457222, 31.35847732, 31.37122726, 31.38397202, 31.39671161, 31.40944603, 31.42217529, 31.4348994, 31.44761835, 31.46033217, 31.47304084, 31.48574439, 31.49844282, 31.51113613, 31.52382432, 31.53650742, 31.54918541, 31.56185831, 31.57452612, 31.58718886, 31.59984652, 31.61249911, 31.62514664, 31.63778911, 31.65042654, 31.66305892, 31.67568626, 31.68830857, 31.70092585, 31.71353812, 31.72614537, 31.73874761, 31.75134485, 31.7639371, 31.77652435, 31.78910662, 31.80168392, 31.81425624, 31.82682359, 31.83938599, 31.85194343, 31.86449592, 31.87704346, 31.88958607, 31.90212375, 31.91465651, 31.92718434, 31.93970726, 31.95222527, 31.96473838, 31.9772466, 31.98974992, 32.00224836, 32.01474192, 32.0272306, 32.03971442, 32.05219337, 32.06466747, 32.07713672, 32.08960112, 32.10206068, 32.11451541, 32.12696531, 32.13941039, 32.15185065, 32.16428609, 32.17671674, 32.18914258, 32.20156363, 32.21397988, 32.22639136, 32.23879805, 32.25119998, 32.26359713, 32.27598953, 32.28837717, 32.30076005, 32.31313819, 32.3255116, 32.33788026, 32.3502442, 32.36260342, 32.37495792, 32.3873077, 32.39965278, 32.41199315, 32.42432883, 32.43665982, 32.44898612, 32.46130774, 32.47362468, 32.48593696, 32.49824457, 32.51054752, 32.52284582, 32.53513946, 32.54742847, 32.55971284, 32.57199257, 32.58426768, 32.59653816, 32.60880403, 32.62106528, 32.63332193, 32.64557397, 32.65782142, 32.67006428, 32.68230255, 32.69453624, 32.70676536, 32.7189899, 32.73120988, 32.74342529, 32.75563616, 32.76784247, 32.78004423, 32.79224146, 32.80443415, 32.81662231, 32.82880595, 32.84098506, 32.85315967, 32.86532976, 32.87749534, 32.88965643, 32.90181302, 32.91396512, 32.92611274, 32.93825587, 32.95039453, 32.96252873, 32.97465845, 32.98678372, 32.99890453, 33.01102089, 33.0231328, 33.03524027, 33.04734331, 33.05944192, 33.0715361, 33.08362586, 33.0957112, 33.10779213, 33.11986866, 33.13194078, 33.14400851, 33.15607184, 33.16813079, 33.18018535, 33.19223554, 33.20428135, 33.21632279, 33.22835988, 33.2403926, 33.25242096, 33.26444498, 33.27646466, 33.28847999, 33.30049099, 33.31249765, 33.3245, 33.33649802, 33.34849172, 33.36048111, 33.3724662, 33.38444698, 33.39642346, 33.40839565, 33.42036355, 33.43232717, 33.44428651, 33.45624157, 33.46819236, 33.48013889, 33.49208115, 33.50401916, 33.51595292, 33.52788243, 33.53980769, 33.55172872, 33.56364551, 33.57555807, 33.58746641, 33.59937053, 33.61127043, 33.62316612, 33.6350576, 33.64694488, 33.65882797, 33.67070685, 33.68258155, 33.69445207, 33.7063184, 33.71818056, 33.73003854, 33.74189236, 33.75374201, 33.76558751, 33.77742885, 33.78926605, 33.80109909, 33.812928, 33.82475277, 33.83657341, 33.84838992, 33.8602023, 33.87201057, 33.88381472, 33.89561476, 33.90741069, 33.91920253, 33.93099026, 33.9427739, 33.95455345, 33.96632892, 33.9781003, 33.98986761, 34.00163084, 34.01339001, 34.02514511, 34.03689616, 34.04864314, 34.06038608, 34.07212497, 34.08385982, 34.09559062, 34.1073174, 34.11904014, 34.13075885, 34.14247355, 34.15418422, 34.16589089, 34.17759354, 34.18929218, 34.20098683, 34.21267747, 34.22436413, 34.23604679, 34.24772547, 34.25940017, 34.27107089, 34.28273764, 34.29440042, 34.30605923, 34.31771408, 34.32936498, 34.34101192, 34.35265492, 34.36429397, 34.37592908, 34.38756025, 34.39918749, 34.4108108, 34.42243019, 34.43404565, 34.4456572, 34.45726484, 34.46886856, 34.48046838, 34.4920643, 34.50365633, 34.51524446, 34.5268287, 34.53840905, 34.54998553, 34.56155812, 34.57312685, 34.5846917, 34.59625269, 34.60780981, 34.61936308, 34.63091249, 34.64245805, 34.65399977, 34.66553764, 34.67707168, 34.68860187, 34.70012824, 34.71165078, 34.7231695, 34.73468439, 34.74619548, 34.75770274, 34.7692062, 34.78070586, 34.79220171, 34.80369377, 34.81518203, 34.82666651, 34.8381472, 34.8496241, 34.86109723, 34.87256658, 34.88403216, 34.89549398, 34.90695203, 34.91840632, 34.92985686, 34.94130364, 34.95274667, 34.96418596, 34.97562151, 34.98705332, 34.9984814, 35.00990574, 35.02132636, 35.03274326, 35.04415643, 35.05556589, 35.06697164, 35.07837368, 35.08977201, 35.10116665, 35.11255758, 35.12394482, 35.13532837, 35.14670824, 35.15808442, 35.16945692, 35.18082574, 35.1921909, 35.20355238, 35.21491019, 35.22626435, 35.23761485, 35.24896169, 35.26030488, 35.27164442, 35.28298032, 35.29431257, 35.30564119, 35.31696618, 35.32828753, 35.33960526, 35.35091937, 35.36222985, 35.37353672, 35.38483997, 35.39613962, 35.40743566, 35.4187281, 35.43001693, 35.44130218, 35.45258383, 35.46386189, 35.47513636, 35.48640726, 35.49767457, 35.50893831, 35.52019848, 35.53145508, 35.54270811, 35.55395759, 35.5652035, 35.57644586, 35.58768467, 35.59891993, 35.61015164, 35.62137982, 35.63260445, 35.64382555, 35.65504312, 35.66625716, 35.67746768, 35.68867467, 35.69987815, 35.71107811, 35.72227456, 35.73346751, 35.74465694, 35.75584288, 35.76702532, 35.77820426, 35.78937971, 35.80055167, 35.81172015, 35.82288514, 35.83404666, 35.8452047, 35.85635927, 35.86751037, 35.878658, 35.88980217, 35.90094288, 35.91208014, 35.92321394, 35.9343443, 35.9454712, 35.95659467, 35.96771469, 35.97883128, 35.98994443, 36.00105415, 36.01216045, 36.02326332, 36.03436277, 36.0454588, 36.05655142, 36.06764062, 36.07872642, 36.08980881, 36.1008878, 36.11196339, 36.12303559, 36.13410439, 36.1451698, 36.15623183, 36.16729047, 36.17834573, 36.18939762, 36.20044613, 36.21149127, 36.22253304, 36.23357145, 36.2446065, 36.25563818, 36.26666651, 36.27769149, 36.28871312, 36.2997314, 36.31074634, 36.32175794, 36.3327662, 36.34377113, 36.35477273, 36.36577099, 36.37676594, 36.38775756, 36.39874586, 36.40973084, 36.42071251, 36.43169087, 36.44266593, 36.45363768, 36.46460613, 36.47557128, 36.48653313, 36.49749169, 36.50844697, 36.51939895, 36.53034766, 36.54129308, 36.55223523, 36.5631741, 36.5741097, 36.58504203, 36.59597109, 36.60689689, 36.61781943, 36.62873872, 36.63965475, 36.65056753, 36.66147706, 36.67238334, 36.68328638, 36.69418619, 36.70508275, 36.71597609, 36.72686619, 36.73775306, 36.74863671, 36.75951714, 36.77039434, 36.78126833, 36.79213911, 36.80300667, 36.81387103, 36.82473218, 36.83559013, 36.84644488, 36.85729643, 36.86814479, 36.87898995, 36.88983193, 36.90067073, 36.91150634, 36.92233877, 36.93316802, 36.9439941, 36.95481701, 36.96563675, 36.97645332, 36.98726673, 36.99807698, 37.00888407, 37.01968801, 37.03048879, 37.04128642, 37.05208091, 37.06287226, 37.07366046, 37.08444553, 37.09522746, 37.10600625, 37.11678192, 37.12755446, 37.13832387, 37.14909016, 37.15985334, 37.17061339, 37.18137034, 37.19212417, 37.20287489, 37.21362251, 37.22436702, 37.23510843, 37.24584675, 37.25658197, 37.2673141, 37.27804314, 37.28876909, 37.29949195, 37.31021174, 37.32092845, 37.33164207, 37.34235263, 37.35306012, 37.36376453, 37.37446588, 37.38516417, 37.3958594, 37.40655157, 37.41724068, 37.42792674, 37.43860975, 37.44928971, 37.45996663, 37.47064051, 37.48131134, 37.49197914, 37.50264391, 37.51330564, 37.52396434, 37.53462002, 37.54527267, 37.5559223, 37.56656891, 37.57721251, 37.58785309, 37.59849066, 37.60912522, 37.61975678, 37.63038533, 37.64101088, 37.65163343, 37.66225299, 37.67286955, 37.68348312, 37.6940937, 37.7047013, 37.71530591, 37.72590754, 37.7365062, 37.74710188, 37.75769458, 37.76828431, 37.77887108, 37.78945488, 37.80003571, 37.81061359, 37.82118851, 37.83176047, 37.84232947, 37.85289553, 37.86345864, 37.8740188, 37.88457602, 37.89513029, 37.90568163, 37.91623003, 37.9267755, 37.93731804, 37.94785765, 37.95839433, 37.96892809, 37.97945892, 37.98998684, 38.00051184, 38.01103392, 38.0215531, 38.03206936, 38.04258272, 38.05309317, 38.06360072, 38.07410537, 38.08460713, 38.09510598, 38.10560195, 38.11609503, 38.12658521, 38.13707251, 38.14755693, 38.15803847, 38.16851713, 38.17899291, 38.18946583, 38.19993586, 38.21040303, 38.22086734, 38.23132878, 38.24178735, 38.25224307, 38.26269593, 38.27314594, 38.28359309, 38.29403739, 38.30447885, 38.31491746, 38.32535323, 38.33578615, 38.34621624, 38.35664349, 38.36706791, 38.3774895, 38.38790825, 38.39832418, 38.40873729, 38.41914757, 38.42955503, 38.43995968, 38.45036151, 38.46076052, 38.47115673, 38.48155012, 38.49194071, 38.5023285, 38.51271349, 38.52309567, 38.53347506, 38.54385165, 38.55422545, 38.56459646, 38.57496468, 38.58533011, 38.59569276, 38.60605263, 38.61640972, 38.62676404, 38.63711558, 38.64746434, 38.65781034, 38.66815356, 38.67849402, 38.68883172, 38.69916666, 38.70949883, 38.71982825, 38.73015492, 38.74047883, 38.75079999, 38.7611184, 38.77143407, 38.781747, 38.79205718, 38.80236462, 38.81266932, 38.82297129, 38.83327053, 38.84356703, 38.85386081, 38.86415186, 38.87444019, 38.88472579, 38.89500868, 38.90528884, 38.91556629, 38.92584103, 38.93611306, 38.94638237, 38.95664898, 38.96691289, 38.97717409, 38.98743259, 38.99768839, 39.0079415, 39.01819191, 39.02843963, 39.03868466, 39.048927, 39.05916666, 39.06940363, 39.07963792, 39.08986953, 39.10009847, 39.11032472, 39.12054831, 39.13076922, 39.14098747, 39.15120305, 39.16141596, 39.17162621, 39.1818338, 39.19203873, 39.20224101, 39.21244063, 39.2226376, 39.23283191, 39.24302358, 39.25321261, 39.26339899, 39.27358272, 39.28376382, 39.29394228, 39.3041181, 39.31429129, 39.32446185, 39.33462978, 39.34479508, 39.35495776, 39.36511781, 39.37527524, 39.38543005, 39.39558224, 39.40573182, 39.41587878, 39.42602313, 39.43616487, 39.44630401, 39.45644054, 39.46657446, 39.47670579, 39.48683451, 39.49696064, 39.50708417, 39.51720511, 39.52732346, 39.53743922, 39.54755239, 39.55766297, 39.56777098, 39.5778764, 39.58797924, 39.5980795, 39.60817719, 39.6182723, 39.62836484, 39.63845481, 39.64854222, 39.65862706, 39.66870933, 39.67878904, 39.6888662, 39.69894079, 39.70901283, 39.71908232, 39.72914925, 39.73921363, 39.74927547, 39.75933475, 39.7693915, 39.7794457, 39.78949736, 39.79954648, 39.80959306, 39.81963712, 39.82967863, 39.83971762, 39.84975408, 39.85978801, 39.86981941, 39.87984829, 39.88987466, 39.8998985, 39.90991982, 39.91993863, 39.92995492, 39.9399687, 39.94997997, 39.95998874, 39.969995, 39.97999875, 39.99] }, { "type": "double", "attributes": {}, "value": [107.70482966, 143.08301852, 145.36397051, 157.47910311, 155.65095263, 170.24295776, 167.17061495, 166.70861688, 178.97447923, 187.96900233, 201.5277862, 194.44923406, 205.89001354, 201.55971157, 203.01566403, 216.41483277, 207.38969808, 205.34911934, 214.69372452, 218.34605217, 224.78596972, 225.32960326, 216.18956839, 220.50791127, 208.76804598, 217.16441892, 233.46951622, 238.65473549, 234.83676315, 216.20727647, 211.0723173, 213.75152439, 217.62786293, 205.15918532, 231.05463382, 230.24871252, 210.09519568, 219.6642053, 214.52561225, 202.11415471, 226.28925451, 223.01511593, 207.02467197, 206.20115598, 203.18722958, 192.18275821, 218.37795272, 191.12072568, 188.76122404, 193.52942518, 189.91221107, 191.46233626, 186.50662838, 188.43807797, 183.42207655, 174.10132558, 182.72293553, 188.4027671, 169.16617141, 179.23108183, 184.20988999, 164.5052233, 164.95327716, 179.45502717, 170.62503693, 174.83850012, 154.10148626, 170.68953535, 168.61762134, 163.87796907, 148.15313898, 156.76418437, 153.09617765, 149.54695274, 171.79378125, 138.35433307, 147.09159386, 137.02486619, 140.68003667, 126.21953332, 140.45437643, 143.94866118, 141.37594134, 143.25195297, 132.38949258, 139.7877289, 122.71548302, 135.765061, 134.43482596, 139.00044256, 121.90407048, 127.49586581, 119.80235557, 132.3416434, 122.82977261, 118.8885092, 115.77467423, 119.24367809, 131.61703541, 106.18368398, 126.444933, 101.38759718, 112.52722712, 99.87895525, 84.3575207, 112.55417411, 104.31638643, 111.29733498, 113.21147119, 98.5209183, 87.21563445, 93.74912786, 85.15497104, 83.62658131, 94.04475719, 96.61762128, 96.79359741, 92.35984699, 83.01428849, 92.16469678, 82.23896316, 87.01660602, 95.54206964, 77.04322757, 79.10122945, 90.69215659, 74.70350998, 78.280949, 82.38994645, 83.98236874, 79.96296498, 81.80744993, 84.17729922, 73.12508167, 67.69256104, 61.1753983, 70.28423165, 69.49227327, 72.37638313, 63.9207358, 64.67959386, 63.0472084, 56.06166897, 72.8675471, 61.0237759, 84.70332144, 68.48234596, 65.72803849, 67.04055943, 54.68772885, 50.2063484, 62.75964223, 50.5388444, 58.73937843, 53.09295589, 65.53485679, 62.38803825, 49.11539301, 37.72756078, 60.15881083, 42.497959, 53.9981847, 57.30097818, 56.04724189, 45.03206882, 52.0735121, 53.96199796, 45.1514082, 55.73660056, 51.8255774, 49.35011761, 46.8588192, 42.00199152, 39.76699767, 54.65233727, 44.43949501, 38.92090645, 41.11663464, 40.33593927, 41.64724929, 28.24267006, 53.93002746, 36.55578383, 47.56165764, 36.45177887, 51.17060296, 29.01364675, 30.62244983, 51.88976187, 40.32879062, 31.48378642, 39.92210157, 44.3701299, 30.48637983, 37.11470902, 31.26890526, 31.97575038, 33.94271685, 33.08330208, 37.58873473, 33.56621326, 25.39608711, 30.55083204, 29.98812802, 26.22405242, 37.18803218, 28.92289981, 38.01284315, 32.61472336, 26.21901236, 31.14845994, 32.52329075, 32.60008729, 35.61760665, 31.11548318, 35.78404497, 31.26020714, 34.30064334, 33.05712016, 20.87358802, 31.87974403, 22.63263261, 23.35083115, 33.09887663, 31.49744469, 25.85849794, 29.95459179, 19.90132573, 26.70603964, 31.16868415, 20.7111682, 26.88078113, 35.12270848, 28.70529565, 22.60240512, 23.68011691, 25.79384773, 24.81438975, 22.44899194, 23.18819038, 24.62380622, 25.02248052, 21.9399542, 20.58926248, 22.03024246, 23.1264504, 17.55568428, 20.05403428, 26.08760512, 27.19977402, 12.38828549, 21.98872156, 13.85908614, 23.14417126, 24.97360447, 17.5158343, 18.62457298, 18.30198051, 18.69704241, 10.80759923, 13.71597725, 15.5504728, 19.20347477, 9.80151863, 22.54985863, 20.04168574, 14.23811543, 21.94585166, 13.55854744, 19.82496551, 12.87333215, 14.7395493, 11.81333521, 22.93029545, 18.89646843, 14.47653766, 22.3119801, 20.11706176, 14.92835269, 13.83349527, 30.33826548, 15.75896844, 12.40402011, 16.94448373, 14.71109629, 12.09183829, 19.68361911, 27.30176453, 16.71340284, 12.17625005, 15.62774157, 13.7455169, 11.091754, 11.11069808, 14.5836268, 9.99519765, 17.32862719, 10.0289653, 12.7504468, 12.38476264, 10.46707409, 15.92087053, 10.11289116, 14.02559016, 10.14626713, 4.29969439, 10.96257472, 19.21577637, 12.17667105, 17.31100568, 7.0932065, 13.41983692, 10.27868731, 15.04671396, 12.29451255, 18.27245114, 11.93568662, 9.563622, 7.18400323, 9.19395901, 7.20652368, 7.21775755, 7.63058362, 8.84910033, 16.91982772, 10.4903056, 7.67775924, 16.99785962, 10.53853715, 9.33673089, 21.54769885, 12.21524879, 9.37913866, 9.80163344, 3.68111908, 6.55398647, 11.07632255, 9.03855209, 9.46338412, 11.53764618, 14.03061704, 5.37251952, 13.24401189, 7.04614519, 13.28262425, 5.81957618, 8.32570293, 11.67279159, 12.10705973, 5.85316708, 5.86153473, 9.64339145, 13.85583798, 7.14797338, 6.31594987, 5.48153827, 5.9114919, 6.34261832, 11.00923707, 6.78435751, 5.94456344, 12.7560056, 6.81260618, 5.1164973, 10.67402144, 17.10184546, 4.28130616, 6.43071446, 7.29805216, 7.73782712, 3.44368476, 8.18978132, 2.15810434, 22.04219169, 13.41611896, 23.4011945, 6.07504951, 14.3387639, 10.00691184, 11.32709476, 8.72462204, 12.23051088, 4.81113674, 15.32815997, 8.33184283, 7.90358252, 7.91382696, 5.28270544, 6.6118968, 6.17904079, 13.25778798, 3.98242576, 6.2027912, 6.65430838, 11.99296493, 11.56340902, 3.11715883, 5.3504352, 13.39290269, 6.25785828, 7.16078342, 1.34432206, 5.83264562, 9.8828851, 6.29689707, 3.15233791, 5.41066713, 9.93175009, 6.32795471, 8.59844366, 4.07791704, 7.25845516, 7.72147365, 4.5475455, 5.91895333, 7.74950087, 9.58442566, 5.02643674, 5.03245282, 7.3286716, 16.05056557, 8.7235185, 3.2177381, 5.98286709, 5.52916295, 4.15175376, 8.31325914, 10.17255475, 5.09222276, 6.02509962, 10.20818553, 15.33005227, 6.04610526, 8.38120285, 9.32318242, 6.53373342, 6.07399978, 14.50073508, 5.61959918, 5.62600329, 5.63240011, 5.16889053, 9.40862001, 9.89020748, 22.6316603, 7.55236781, 8.50594426, 4.73081337, 8.52497324, 3.79309859, 12.34127533, 3.80152771, 1.90286763, 6.66739181, 4.76767057, 3.81833012, 6.68940857, 7.17506937, 10.05606937, 3.35567655, 6.23874831, 8.16721653, 3.36661306, 9.62928766, 9.63966964, 3.86001618, 3.86416006, 4.83537436, 5.80865175, 2.42285318, 2.91051847, 7.28402459, 9.23621009, 14.11228327, 7.30716078, 9.75314211, 4.39352658, 1.46604479, 10.76224681, 2.44851972, 10.78471499, 7.36086242, 5.40356823, 16.71923692, 7.38375785, 7.88413216, 5.42592021, 5.925266, 6.91989677, 8.41132793, 6.9340479, 3.47055632, 4.46668085, 13.91044123, 1.49191369, 9.95614289, 6.97632907, 1.99524316, 7.98898967, 12.49531045, 5.00312481, 2.50406022, 3.50917776, 4.5162871, 1.50692326, 10.05610667, 7.04623391, 3.52659315, 15.12885391, 6.05748903, 3.03171533, 10.62139132, 4.05019765, 5.57445232, 5.07261598, 7.10856054, 5.08246573, 7.12233683, 9.67536321, 4.07776373, 5.10210818, 6.12840839, 9.20142198, 7.6751858, 3.07300518, 7.68983312, 12.31543412, 4.10904138, 6.68351834, 6.17523549, 6.6961526, 3.60901735, 5.16058697, 3.61580123, 2.58513457, 1.03502068, 3.62595324, 0.51847585, 4.15166341, 6.75271425, 5.71912818, 5.20401484, 14.06380808, 2.60680818, 5.21841048, 5.22320021, 8.88757544, 7.32587313, 4.71378881, 4.71808384, 6.29649994, 3.6762928, 7.35924858, 4.73522498, 9.47900115, 0.52708581, 2.1102401, 9.50460859, 6.34208605, 8.99266184, 4.23562098, 4.23939773, 7.42554945, 9.02474994, 18.06550831, 14.89064918, 12.24241476, 3.19649095, 4.798959, 9.60635574, 10.68309563, 13.36556806, 4.81581229, 7.4978033, 8.04036143, 4.82841365, 6.98043205, 4.83679632, 4.84098221, 2.69175805, 21.01382034, 7.54991724, 8.09614951, 1.0804128, 4.32535284, 10.28149684, 2.70796663, 2.71027423, 1.62754792, 15.20334784, 4.34749643, 8.15845513, 5.44356575, 8.17223631, 3.27164728, 3.27439772, 6.5542917, 4.3731889, 18.05449366, 7.66587839, 2.74009617, 10.96950694, 8.23396621, 7.14202367, 5.49841415, 3.85207212, 2.75375122, 2.75602048, 2.75828788, 6.6253282, 4.42050735, 2.21206313, 4.42774223, 4.98527464, 6.09807729, 5.54821554, 1.11054416, 1.66716672, 11.12344069, 4.45297173, 6.12777589, 5.01767319, 5.02170831, 2.23366231, 7.26522167, 3.35586285, 2.23902955, 6.72244731, 3.36390085, 5.04986389, 2.24616591, 3.3719197, 3.93701982, 10.69464089, 7.32315896, 8.45645481, 7.3346915, 6.21115083, 5.65092764, 10.17963193, 0.5659771, 18.69181896, 1.70058019, 1.13460206, 1.70322495, 1.13636386, 5.68621871, 10.24310648, 3.41700439, 10.8288534, 3.99264766, 4.56653187, 3.42752637, 2.28676788, 1.71638763, 2.86283058, 7.44903497, 9.74846183, 2.29549936, 1.72293126, 4.02321968, 2.87590294, 4.60492142, 8.64074161, 5.18835039, 2.88458493, 17.32050808, 3.46669937, 2.31286345, 1.15729635, 6.36988178, 3.47707097, 13.91863614, 5.80374197, 4.64643921, 6.39358815, 4.07165748, 8.73142654, 8.73786802, 2.3318146, 10.50088411, 4.08667655, 7.59510839, 5.26200268, 1.17018902, 9.95386959, 7.03138394, 1.75912581, 5.86801571, 5.28504805, 5.87653243, 5.88078616, 0.58850368, 10.60071195, 5.89352894, 4.71821634, 7.08241062, 2.95312212, 4.72838127, 7.09764709, 7.69461187, 6.51547104, 5.92737576, 2.96579652, 5.34222658, 7.72202418, 5.34980421, 3.56905934, 1.78579037, 1.19136679, 7.74933952, 7.75479105, 2.38776577, 3.58416121, 10.76001601, 6.58016524, 2.39445889, 7.18838774, 2.39779844, 5.39879957, 3.60170002, 3.00349883, 3.00557954, 5.41378585, 7.82531526, 5.42126346, 8.4388864, 10.25426923, 3.62164038, 1.20804174, 2.4177389, 7.86302784, 1.21052317, 10.90214264, 3.6365239, 12.12999523, 5.46220733, 4.85859048, 6.07735416, 8.5140544, 2.43423117, 10.96143413, 2.43751623, 2.4391571, 4.27139453, 4.2742622, 1.22203656, 9.78283834, 6.11836241, 4.8979585, 3.06326556, 4.90448912, 15.95019129, 8.59426933, 0.6142836, 3.0734527, 4.30568052, 2.4620145, 4.31136834, 8.62841888, 3.70032743, 4.93701261, 5.55778483, 1.85380936, 4.32838697, 3.09372636, 4.33404499, 1.23910607, 5.57960868, 4.34251821, 6.82838976, 9.31748109, 3.10783923, 1.86591007, 6.22371944, 6.22773604, 14.33302511, 4.36503303, 2.49590813, 4.99502128, 5.62300227, 4.37624701, 1.251156, 4.38184324, 5.63739258, 9.40164069, 4.3902242, 4.3930143, 1.25594361, 9.42554827, 10.68905113, 2.51666116, 2.51825046, 1.25991938, 11.97677381, 4.41527164, 10.09839068, 2.52618198, 5.68747192, 4.42635834, 7.59278688, 4.43189129, 3.80113301, 2.53566705, 3.80586668, 1.90411565, 5.08079262, 2.54197077, 2.54354426, 7.63535033, 3.82003248, 2.5482589, 1.27491425, 2.55139715, 10.85010051, 4.4704302, 0.63902433, 8.31240182, 0.63980648, 6.40197206, 15.37410455, 4.48684555, 1.28273589, 5.13406171, 1.2842945, 2.57014619, 1.28585122, 3.21657218, 8.36813937, 6.44091386, 1.28895902, 1.2897348, 3.22627528, 4.51949737, 1.29205935, 9.6962495, 12.28926387, 5.82470873, 1.94272838, 1.29592432, 3.24173984, 4.54113482, 1.94735668, 16.23760034, 5.84900015, 3.90164141, 0, 6.51042214, 5.21140957, 3.25904976, 3.26096741, 1.95773036, 1.9588796, 5.22674179, 10.45960567, 3.27053881, 1.30897989, 1.96461572, 1.96576094, 3.27817581, 5.9041481, 9.18956539, 1.97033514, 3.28579505, 2.63015768, 4.60543728, 2.63319833, 2.63471733, 1.9771766, 10.5510109, 6.59817278, 5.28156925, 1.32114964, 1.98285979, 3.96798894, 3.30854751, 6.62087298, 1.98739463, 6.62842244, 3.97931637, 1.99078899, 4.64781137, 3.32174781, 7.97671029, 4.65571358, 2.66191124, 3.32926734, 1.33245783, 3.99962489, 4.6688542, 8.00824781, 10.0159288, 4.00861787, 3.34238581, 18.72783177, 8.69992369, 2.67839382, 0.6699718, 4.02206965, 0, 16.10617435, 7.38609427, 10.0775314, 6.04986779, 8.7435326, 2.01885337, 9.42651658, 3.36846948, 1.34812995, 2.02330755, 4.72364565, 2.02553097, 13.51094506, 2.70366926, 2.70514869, 2.70662732, 2.70810514, 3.38697769, 4.06658755, 15.59706918, 4.74951466, 6.1098349, 4.07543277, 1.35921369, 1.3599494, 11.56581999, 4.08425884, 7.4918477, 2.72577649, 4.0908659, 7.50395411, 3.41272057, 6.82910383, 3.41638228, 4.10185401, 3.42004008, 2.05312051, 3.42369397, 3.42551946, 4.79828155, 8.91583552, 4.11718809, 0.68656234, 6.86926464, 16.49496957, 2.06296242, 3.44008845, 5.50704838, 4.8212095, 2.06732157, 2.06840992, 4.13899539, 3.45097483, 4.14334307, 7.60011121, 2.76512413, 4.14985606, 10.38006197, 5.53892317, 8.31271769, 3.46543681, 9.7082729, 6.2442772, 10.41253356, 5.55623235, 8.33866796, 5.56199011, 5.56486675, 1.39193548, 8.35592337, 6.27017374, 9.06158254, 5.57922772, 0.69776193, 6.28308199, 6.28630491, 6.98836242, 6.2927458, 4.89686071, 12.5983602, 4.20159652, 0.70062309, 11.91665858, 7.01336558, 7.71862321, 3.5102465, 1.4048108, 7.02761317, 7.73428761, 6.33125352, 3.51913996, 2.81673277, 10.56807319, 4.93425138, 2.82099087, 7.05602203, 3.52978255, 7.76941703, 0.70666459, 14.1403673, 2.82948785, 0, 2.83231451, 2.83372679, 5.67027671, 4.25482384, 4.25693909, 5.67873771, 0.71019441, 16.34256773, 3.55449133, 4.26749961, 2.13480429, 8.54343301, 8.54764679, 2.13796462, 2.8520227, 6.42020675, 3.56853382, 6.42651344, 6.42966447, 2.85902842, 8.58128252, 4.29273886, 5.72644724, 5.01308615, 6.44853828, 8.60223806, 2.86880768, 6.4579545, 1.43579782, 7.18247151, 4.31157134, 8.62731752, 5.7543269, 4.31783058, 5.75988664, 7.20333062, 3.60340063, 7.21027024, 4.32824253, 5.77376256, 2.16620015, 0.72241295, 0.72275902, 2.89241967, 5.78760521, 6.51416599, 4.34484976, 8.6938424, 3.62415971, 3.62588427, 6.52969442, 5.0810633, 8.71452728, 8.71865837, 9.44968646, 4.36345734, 0.72758666, 13.10274477, 5.09791597, 1.45723398, 7.28960113, 8.75163686, 10.21504218, 4.37993104, 7.30330984, 12.42144609, 2.92406182, 5.11950216, 4.39019572, 2.19612289, 5.85905983, 5.86179069, 2.19919511, 30.06964908, 13.94119217, 5.13861376, 8.81313893, 3.67384326, 5.88087121, 2.94179597, 11.77262285, 9.56967317, 5.89174661, 2.94723117, 14.00579489, 7.37486252, 5.16477674, 5.16714862, 6.64652496, 2.95536521, 4.43507807, 0.7395179, 15.53697523, 8.88232649, 2.96212652, 1.48173847, 0, 11.12315968, 2.22564336, 0, 2.97021978, 7.42891629, 1.48645632, 6.69208084, 7.43900764, 8.93084206, 6.70115485, 19.36762185, 0.74524415, 3.72789811, 11.1887241, 2.98500043, 5.97268099, 6.72227992, 4.48352824, 8.97107129, 5.23546584, 8.23083754, 1.49718415, 0.74892605, 17.23297693, 8.24552892, 4.49956237, 3.75130218, 2.25178099, 5.2564872, 3.0050387, 3.75796229, 3.00770038, 3.76128792, 5.26812949, 8.28214335, 4.51952503, 6.0286886, 7.53917832, 12.0679911, 4.52748545, 7.54912229, 6.04194723, 9.82246762, 6.80314785, 6.04988845, 3.02626661, 3.02758841, 3.78613704, 4.54534543, 7.5788759, 6.06573972, 5.30983037, 2.27663035, 12.9065059, 13.67163957, 3.03945876, 3.80096854, 9.88679357, 12.93447236, 8.37297896, 5.33055848, 6.85652995, 10.67030758, 6.09994281, 0.76282074, 3.05259391, 10.68866511, 4.58282124, 3.82065431, 6.11566434, 5.35349559, 9.18134382, 3.06175498, 8.42341905, 2.29827555, 6.13134556, 6.9006996, 4.60242279, 3.83698197, 2.30316655, 16.1290045, 9.22048016, 7.68698721, 5.38316771, 4.61609435, 3.07869609, 12.31998155, 11.55485303, 10.78907322, 7.70972503, 2.31389034, 1.54324185, 3.85972465, 6.1781504, 1.54518507, 17.00415494, 3.09295839, 2.32068878, 0.77388612, 2.32262753, 10.06891731, 1.54970978, 2.32553263, 1.55100013, 4.6549347, 2.32843411, 7.76466822, 10.87504329, 1.55422132, 13.2163504, 11.66630943, 3.11230166, 7.00557061, 3.11487168, 10.12750668, 7.01423908, 4.67808413, 4.68000808, 9.36386248, 3.12256907, 6.24770025, 4.68769598, 2.34480799, 0.78192253, 0, 7.04305695, 4.69728817, 3.91600355, 0.78351993, 3.91919507, 4.70494784, 5.49133761, 11.77193249, 3.14045628, 5.49802756, 5.50025574, 7.07462102, 1.57277411, 6.29363984, 14.95343276, 3.14936178, 3.93828992, 0.7879754, 1.57658536, 3.15443935, 7.1003418, 9.47092522, 3.94780272, 5.52914034, 1.58038742, 5.53357074, 2.37247912, 4.74685508, 2.37437558, 7.12596975, 11.88135269, 7.92405816, 11.09809857, 1.58607342, 10.31357564, 12.69867371, 5.55787482, 7.14867302, 22.24912933, 3.97463199, 17.49529998, 6.36444236, 11.1421738, 3.98091848, 3.98248855, 3.984058, 2.3913761, 20.7334143, 3.98876266, 15.16325265, 5.58865442, 1.59738471, 7.19104845, 6.39454631, 1.59926215, 4.7996624, 6.40205018, 5.60398083, 5.6061669, 8.01193159, 12.82408337, 11.22543997, 3.2085158, 8.02440638, 5.61926544, 4.81838191, 3.21349991, 6.42948945, 7.23597539, 9.65169875, 6.43695259, 2.41478939, 4.8314424, 10.4721615, 8.86447374, 3.22468598, 3.22592648, 2.42037488, 1.61420303, 8.8815241, 5.65404652, 12.12045694, 6.466719, 6.46919335, 1.61791669, 8.90194143, 5.66703439, 8.9087368, 4.05096934, 4.05251227, 6.48648739, 12.16678913, 3.24571004, 4.05867814, 1.62408726, 16.24703024, 4.87595567, 8.1296693, 26.02478285, 7.32223694, 4.8833351, 4.07098185, 5.70152408, 5.70367276, 0.81511723, 0.81542396, 5.71011395, 7.34433352, 6.53074748, 0, 1.63391169, 5.72083315, 2.45270339, 0, 5.72725505, 8.18484868, 5.73153231, 10.64824381, 12.29101368, 1.63941206, 6.56008831, 0.82031593, 6.5649657, 2.46277614, 13.96090888, 0, 2.46551611, 0, 5.75712916, 7.40475912, 6.58443913, 3.29343463, 1.64732462, 5.76776098, 2.47280786, 6.59658084, 0, 4.12589454, 3.30192757, 3.30313906, 6.60870023, 3.30556072, 8.26692721, 4.13497576, 1.65459494, 2.48279904, 4.13950889, 9.11024144, 8.28505646, 19.89137795, 12.4366361, 2.48823187, 4.14856031, 0, 5.81220229, 6.64492579, 5.81641708, 0, 5.82062883, 1.66363816, 4.99271788, 6.65936084, 9.159925, 0, 6.66656664, 10.83707112, 2.50176232, 7.50798525, 5.84164199, 5.00891928, 8.35119366, 5.84793122, 6.68574415, 3.34406873, 0.83631624, 5.85630635, 3.34765615, 2.51163833, 1.67502281, 2.51342979, 13.4097336, 8.38406662, 2.51611461, 0.83900297, 4.19650482, 2.51879655, 4.19948317, 6.72155449, 44.54606984, 6.7263148, 2.52326014, 8.41383968, 6.73344896, 3.36791266, 7.58047597, 2.52771583, 9.27155545, 7.58848775, 9.27808012, 0.84375825, 2.53216369, 5.91045543, 3.37858753, 5.91460021, 6.7619103, 1.69106917, 0.84583028, 5.0767552, 2.53926406, 1.69343347, 1.69402403, 5.93115036, 5.08561362, 3.39158897, 3.39276844, 3.39394751, 2.54634463, 10.18891326, 2.5481117, 2.54899477, 6.79967344, 8.50253334, 2.55164216, 10.21009606, 1.70227038, 8.51428936, 5.96205808, 9.37217741, 3.40923829, 6.82082333, 12.79344238, 10.23827161, 3.41392937, 4.26887641, 15.37322621, 3.41744345, 7.69188152, 0.85494604, 16.24953113, 4.2776541, 5.13493835, 3.42446079, 4.28203619, 2.57009754, 6.85592816, 1.71456552, 9.43331844, 9.43652542, 6.86525913, 8.58448737, 15.4573197, 5.15418678, 6.87457744, 24.06916765, 2.57971195, 14.62331051, 7.74436852, 2.58232785, 7.74959767, 4.30678385, 8.61647033, 8.61937198, 6.03559086, 15.52531026, 7.76526399, 7.76787197, 3.45354626, 5.18205687, 2.59189689, 6.04978512, 2.59363292, 6.05383451, 5.19073559, 5.19246959, 7.79130452, 0.86598931, 4.3313901, 6.93253309, 0.86685515, 0.86714358, 6.93945524, 8.67720136, 6.0760579, 8.68296312, 15.63451661, 2.60661631, 1.73831972, 0.86944752, 8.6973508, 4.35011274, 9.57340914, 5.2235832, 6.09619069, 6.96937178, 0.87145847, 2.6152361, 5.23219304, 6.97855107, 3.490422, 6.98313619, 0.87317845, 4.36732394, 2.62125309, 6.11826023, 5.24593938, 10.49531028, 8.74895057, 5.25108498, 0.87546651, 9.63327307, 7.00830073, 23.66072077, 8.76608299, 3.50757406, 7.89460773, 4.38731833, 1.75549721, 2.63410034, 5.2699092, 3.51441144, 2.63666228, 6.15420332, 1.75891257, 6.15818405, 7.04019823, 0.88030889, 0.8805929, 14.09402925, 0.88116066, 4.40722202, 4.40864027, 7.05609291, 14.99901639, 1.76515692, 4.41430873, 2.64943482, 4.41714023, 3.53484424, 0.88399398, 3.53710726, 7.07647646, 7.07873768, 5.31074863, 4.42703622, 6.19982737, 4.42985958, 4.43127059, 5.31921738, 4.43409126, 3.54840074, 7.09905622, 1.77532756, 7.10356355, 4.44113509, 5.33105102, 4.4439495, 1.77814241, 10.67222911, 4.44816777, 1.77982919, 4.45097774, 8.01428769, 0, 8.01934084, 0, 5.34959387, 3.5675176, 7.13727786, 10.70927972, 0.89272013, 2.67900061, 3.57312074, 7.14848062, 2.68151965, 1.7882392, 4.47199616, 7.15743021, 17.00420641, 2.6857128, 9.85068571, 6.27057254, 1.79215037, 0.89635421, 4.4831657, 4.48455994, 3.58876299, 0.89746942, 0.89774801, 8.08223859, 0, 13.4787488, 1.79772299, 1.7982793, 0.89941772, 9.89665276, 8.09976244, 6.30175992, 6.303704, 2.70242035, 8.10975906, 2.70408543, 0, 18.03832989, 1.80438742, 6.31729587, 3.61099153, 2.70907452, 5.41981029, 7.22862803, 4.51927604, 9.04131829, 6.33085855, 0.90468481, 9.04961181, 5.43142478, 7.24410928, 11.77526706, 0.9060658, 4.53170874, 6.34632326, 9.97582725, 3.62867632, 1.81488938, 9.07720215, 1.81599131, 4.54135508, 5.45127775, 0.90882148, 4.54548296, 0.90937162, 13.6446984, 3.63968568, 7.28156956, 5.46282533, 1.821491, 10.0212203, 2.73388342, 6.38098184, 5.47105868, 0.91211731, 3.6495657, 1.82533092, 8.21645468, 1.82642655, 3.65394825, 5.4825646, 2.74210317, 0, 1.82916278, 7.31883811, 6.40589641, 0, 2.74702321, 1.83189491, 4.58110212, 1.83298662, 6.41736283, 5.50223306, 5.50386892, 11.01100861, 7.34285226, 8.26316041, 4.59200628, 1.83734699, 3.67578262, 9.19217733, 4.59744865, 6.43833154, 5.52020092, 10.12335767, 4.6028846, 4.60424258, 1.84224007, 4.60695735, 0.92166283, 5.53160462, 6.4554371, 7.37981134, 2.76824237, 13.8452762, 9.23289291, 4.61780045, 5.54298486, 8.31691305, 4.62186006, 7.39713995, 16.64843214, 4.6259161, 17.58361584, 10.18295994, 11.11192462, 6.48384609, 7.41226925, 4.63401754, 2.78121984, 3.7093719, 0, 0.92788213, 4.64075793, 7.42736773, 9.28690269, 3.71583798, 3.71691456, 0, 9.297667, 3.72014245, 11.16365338, 4.65286603, 2.79252566, 1.86222098, 0.93137901, 1.86329492, 23.29789578, 1.86436825, 5.59471404, 5.59632287, 6.53091978, 7.4660522, 17.73696423, 12.13929943, 2.80218005, 0.9343277, 12.14973885, 5.60917692, 6.54591187, 1.87079528, 8.4209844, 0.93593215, 7.48959435, 15.91992811, 10.30406684, 4.68500131, 8.4354039, 2.81260159, 1.8756011, 7.50453726, 10.32167061, 4.69300075, 8.4497988, 7.51306273, 8.45459165, 11.27598275, 3.75972524, 10.34217047, 10.34509571, 3.76291641, 12.23293347, 0.94126059, 5.6491573, 10.3597095, 4.71028627, 1.88464532, 11.31105587, 13.19994544, 6.60182899, 1.88676707, 6.60553997, 2.83174058, 9.44178409, 0.94444322, 9.44707954, 24.56928799, 3.78094881, 8.50951544, 0.94576615, 5.67618312, 6.62406367, 6.6259132, 5.68093903, 0.94708724, 5.68410743, 12.31899709, 4.73939505, 16.11842737, 0.94840649, 4.74335059, 6.64253572, 5.69518295, 9.49460567, 18.04475418, 12.34983318, 0, 17.10924258, 40.88339043, 2.85311848, 0.95130239, 9.51565221, 21.89204343, 5.71254394, 8.5711794, 10.47877384, 3.81151307, 4.7657033, 8.58062683, 13.35131321, 17.17069329, 4.77094755, 4.77225771, 12.41127552, 9.54975389, 10.50760926, 2.86649685, 2.86728187, 13.38431115, 4.78141877, 3.82618085, 4.784033, 2.87120375, 6.70130412, 1.91518066, 1.91570287, 4.79056232, 0.95837342, 7.6690745, 12.46563669, 1.91831175, 8.63474897, 2.87903147, 5.75962614, 1.92039631, 0.96045855, 0.96071887, 11.53174945, 5.76743581, 6.73049589, 2.88527836, 3.84807769, 5.77367594, 5.77523492, 15.4047826, 8.66752742, 3.85327289, 0.96357777, 6.74686075, 1.92819332, 2.893068, 4.82307635, 5.78924683, 1.93026721, 10.6193193, 1.93130331, 7.72728463, 9.66169432, 10.63071037, 6.76680851, 3.8677823, 2.90161245, 7.73970127, 5.80632658, 2.9039384, 2.9047133, 0.968496, 14.53131239, 2.90703676, 6.78489194, 1.93905647, 0, 21.34096669, 4.85150845, 12.61727185, 5.82490192, 2.9132236, 2.91399603, 2.91476825, 2.91554027, 5.83262418, 0.97236124, 1.94523674, 6.81012808, 3.89252976, 0.97338937, 1.94729248, 2.92170911, 0, 8.76974784, 14.62009531, 0.97492955, 7.80148805, 10.72986638, 7.80558978, 1.95190996, 2.92863351, 4.88233646, 8.79051013, 5.86187601, 0, 5.86494667, 15.64395037, 3.91201047, 7.82606618, 7.82811087, 13.70277131, 12.72732282, 10.77208241, 5.87721323, 14.69686189, 2.94013794, 5.8818066, 8.82500539, 1.96162229, 7.84852851, 3.92528368, 4.90787855, 6.87281303, 12.76710616, 2.94701904, 4.91297103, 1.96569733, 2.94930917, 4.91678693, 8.85250483, 14.75798765, 5.90471984, 15.74998462, 2.95388411, 4.92440986, 1.97027168, 2.95616893, 10.84207718, 2.95769116, 2.95845198, 1.9728084, 4.93328839, 17.76439961, 10.85880879, 1.97483543, 4.93835467, 5.92754451, 2.96453152, 8.89587175, 3.95473261, 3.95574417, 4.94594436, 1.97888327, 9.89694333, 3.95978787, 0, 1.98090409, 18.82338519, 7.92765488, 3.96483669, 6.94022995, 4.95856802, 2.97589717, 3.96887112, 4.96234886, 14.8908255, 2.97892069, 6.95257755, 8.9412939, 0, 12.92174496, 3.97692771, 8.95035067, 2.98420448, 6.96490326, 2.98571241, 6.96842089, 16.92757767, 6.97193674, 1.992484, 5.97895785, 3.98697554, 2.9909842, 9.97245519, 2.99248872, 6.98422829, 4.98998747, 5.98948817, 7.98798798, 0.9987489, 2.99699775, 4.99624765, 10.99449725, 8.99774916, 14] } ] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["x", "y.t", "x.t", "method"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "na.action": { "type": "integer", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["141", "142", "143", "144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159", "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", "176", "177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", "191", "192", "193", "194", "195", "196", "197", "198", "199", "200", "201", "202", "203", "204", "205", "206", "207", "208", "209", "210", "211", "212", "213", "214", "215", "216", "217", "218", "219", "220", "221", "222", "223", "224", "225", "226", "227", "228", "229", "230", "231", "232", "233", "234", "235", "236", "237", "238", "239", "240", "241", "242", "243", "244", "245", "246", "247", "248", "249", "250", "251", "252", "253", "254", "255", "256", "257", "258", "259", "260", "261", "262", "263", "264", "265", "266", "267", "268", "269", "270", "271", "272", "273", "274", "275", "276", "277", "278", "279", "280", "281", "282", "283", "284", "285", "286", "287", "288", "289", "290", "291", "292", "293", "294", "295", "296", "297", "298", "299", "300", "301", "302", "303", "304", "305", "306", "307", "308", "309", "310", "311", "312", "313", "314", "315", "316", "317", "318", "319", "320", "321", "322", "323", "324", "325", "326", "327", "328", "329", "330", "331", "332", "333", "334", "335", "336", "337", "338", "339", "340", "341", "342", "343", "344", "345", "346", "347", "348", "349", "350", "351", "352", "353", "354", "355", "356", "357", "358", "359", "360", "361", "362", "363", "364", "365", "366", "367", "368", "369", "370", "371", "372", "373", "374", "375", "376", "377", "378", "379", "380", "381", "382", "383", "384", "385", "386", "387", "388", "389", "390", "391", "392", "393", "394", "395", "396", "397", "398", "399", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "418", "419", "420", "421", "422", "423", "424", "425", "426", "427", "428", "429", "430", "431", "432", "433", "434", "435", "436", "437", "438", "439", "440", "441", "442", "443", "444", "445", "446", "447", "448", "449", "450", "451", "452", "453", "454", "455", "456", "457", "458", "459", "460", "461", "462", "463", "464", "465", "466", "467", "468", "469", "470", "471", "472", "473", "474", "475", "476", "477", "478", "479", "480", "481", "482", "483", "484", "485", "486", "487", "488", "489", "490", "491", "492", "493", "494", "495", "496", "497", "498", "499", "500", "501", "502", "503", "504", "505", "506", "507", "508", "509", "510", "511", "512", "513", "514", "515", "516", "517", "518", "519", "520", "521", "522", "523", "524", "525", "526", "527", "528", "529", "530", "531", "532", "533", "534", "535", "536", "537", "538", "539", "540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "550", "551", "552", "553", "554", "555", "556", "557", "558", "559", "560", "561", "562", "563", "564", "565", "566", "567", "568", "569", "570", "571", "572", "573", "574", "575", "576", "577", "578", "579", "580", "581", "582", "583", "584", "585", "586", "587", "588", "589", "590", "591", "592", "593", "594", "595", "596", "597", "598", "599", "600", "601", "602", "603", "604", "605", "606", "607", "608", "609", "610", "611", "612", "613", "614", "615", "616", "617", "618", "619", "620", "621", "622", "623", "624", "625", "626", "627", "628", "629", "630", "631", "632", "633", "634", "635", "636", "637", "638", "639", "640", "641", "642", "643", "644", "645", "646", "647", "648", "649", "650", "651", "652", "653", "654", "655", "656", "657", "658", "659", "660", "661", "662", "663", "664", "665", "666", "667", "668", "669", "670", "671", "672", "673", "674", "675", "676", "677", "678", "679", "680", "681", "682", "683", "684", "685", "686", "687", "688", "689", "690", "691", "692", "693", "694", "695", "696", "697", "698", "699", "700", "701", "702", "703", "704", "705", "706", "707", "708", "709", "710", "711", "712", "713", "714", "715", "716", "717", "718", "719", "720", "721", "722", "723", "724", "725", "726", "727", "728", "729", "730", "731", "732", "733", "734", "735", "736", "737", "738", "739", "740", "741", "742", "743", "744", "745", "746", "747", "748", "749", "750", "751", "752", "753", "754", "755", "756", "757", "758", "759", "760", "761", "762", "763", "764", "765", "766", "767", "768", "769", "770", "771", "772", "773", "774", "775", "776", "777", "778", "779", "780", "781", "782", "783", "784", "785", "786", "787", "788", "789", "790", "791", "792", "793", "794", "795", "796", "797", "798", "799", "800", "801", "802", "803", "804", "805", "806", "807", "808", "809", "810", "811", "812", "813", "814", "815", "816", "817", "818", "819", "820", "821", "822", "823", "824", "825", "826", "827", "828", "829", "830", "831", "832", "833", "834", "835", "836", "837", "838", "839", "840", "841", "842", "843", "844", "845", "846", "847", "848", "849", "850", "851", "852", "853", "854", "855", "856", "857", "858", "859", "860", "861", "862", "863", "864", "865", "866", "867", "868", "869", "870", "871", "872", "873", "874", "875", "876", "877", "878", "879", "880", "881", "882", "883", "884", "885", "886", "887", "888", "889", "890", "891", "892", "893", "894", "895", "896", "897", "898", "899", "900", "901", "902", "903", "904", "905", "906", "907", "908", "909", "910", "911", "912", "913", "914", "915", "916", "917", "918", "919", "920", "921", "922", "923", "924", "925", "926", "927", "928", "929", "930", "931", "932", "933", "934", "935", "936", "937", "938", "939", "940", "941", "942", "943", "944", "945", "946", "947", "948", "949", "950", "951", "952", "953", "954", "955", "956", "957", "958", "959", "960", "961", "962", "963", "964", "965", "966", "967", "968", "969", "970", "971", "972", "973", "974", "975", "976", "977", "978", "979", "980", "981", "982", "983", "984", "985", "986", "987", "988", "989", "990", "991", "992", "993", "994", "995", "996", "997", "998", "999", "1000", "1001", "1002", "1003", "1004", "1005", "1006", "1007", "1008", "1009", "1010", "1011", "1012", "1013", "1014", "1015", "1016", "1017", "1018", "1019", "1020", "1021", "1022", "1023", "1024", "1025", "1026", "1027", "1028", "1029", "1030", "1031", "1032", "1033", "1034", "1035", "1036", "1037", "1038", "1039", "1040", "1041", "1042", "1043", "1044", "1045", "1046", "1047", "1048", "1049", "1050", "1051", "1052", "1053", "1054", "1055", "1056", "1057", "1058", "1059", "1060", "1061", "1062", "1063", "1064", "1065", "1066", "1067", "1068", "1069", "1070", "1071", "1072", "1073", "1074", "1075", "1076", "1077", "1078", "1079", "1080", "1081", "1082", "1083", "1084", "1085", "1086", "1087", "1088", "1089", "1090", "1091", "1092", "1093", "1094", "1095", "1096", "1097", "1098", "1099", "1100", "1101", "1102", "1103", "1104", "1105", "1106", "1107", "1108", "1109", "1110", "1111", "1112", "1113", "1114", "1115", "1116", "1117", "1118", "1119", "1120", "1121", "1122", "1123", "1124", "1125", "1126", "1127", "1128", "1129", "1130", "1131", "1132", "1133", "1134", "1135", "1136", "1137", "1138", "1139", "1140", "1141", "1142", "1143", "1144", "1145", "1146", "1147", "1148", "1149", "1150", "1151", "1152", "1153", "1154", "1155", "1156", "1157", "1158", "1159", "1160", "1161", "1162", "1163", "1164", "1165", "1166", "1167", "1168", "1169", "1170", "1171", "1172", "1173", "1174", "1175", "1176", "1177", "1178", "1179", "1180", "1181", "1182", "1183", "1184", "1185", "1186", "1187", "1188", "1189", "1190", "1191", "1192", "1193", "1194", "1195", "1196", "1197", "1198", "1199", "1200", "1201", "1202", "1203", "1204", "1205", "1206", "1207", "1208", "1209", "1210", "1211", "1212", "1213", "1214", "1215", "1216", "1217", "1218", "1219", "1220", "1221", "1222", "1223", "1224", "1225", "1226", "1227", "1228", "1229", "1230", "1231", "1232", "1233", "1234", "1235", "1236", "1237", "1238", "1239", "1240", "1241", "1242", "1243", "1244", "1245", "1246", "1247", "1248", "1249", "1250", "1251", "1252", "1253", "1254", "1255", "1256", "1257", "1258", "1259", "1260", "1261", "1262", "1263", "1264", "1265", "1266", "1267", "1268", "1269", "1270", "1271", "1272", "1273", "1274", "1275", "1276", "1277", "1278", "1279", "1280", "1281", "1282", "1283", "1284", "1285", "1286", "1287", "1288", "1289", "1290", "1291", "1292", "1293", "1294", "1295", "1296", "1297", "1298", "1299", "1300", "1301", "1302", "1303", "1304", "1305", "1306", "1307", "1308", "1309", "1310", "1311", "1312", "1313", "1314", "1315", "1316", "1317", "1318", "1319", "1320", "1321", "1322", "1323", "1324", "1325", "1326", "1327", "1328", "1329", "1330", "1331", "1332", "1333", "1334", "1335", "1336", "1337", "1338", "1339", "1340", "1341", "1342", "1343", "1344", "1345", "1346", "1347", "1348", "1349", "1350", "1351", "1352", "1353", "1354", "1355", "1356", "1357", "1358", "1359", "1360", "1361", "1362", "1363", "1364", "1365", "1366", "1367", "1368", "1369", "1370", "1371", "1372", "1373", "1374", "1375", "1376", "1377", "1378", "1379", "1380", "1381", "1382", "1383", "1384", "1385", "1386", "1387", "1388", "1389", "1390", "1391", "1392", "1393", "1394", "1395", "1396", "1397", "1398", "1399", "1400", "1401", "1402", "1403", "1404", "1405", "1406", "1407", "1408", "1409", "1410", "1411", "1412", "1413", "1414", "1415", "1416", "1417", "1418", "1419", "1420", "1421", "1422", "1423", "1424", "1425", "1426", "1427", "1428", "1429", "1430", "1431", "1432", "1433", "1434", "1435", "1436", "1437", "1438", "1439", "1440", "1441", "1442", "1443", "1444", "1445", "1446", "1447", "1448", "1449", "1450", "1451", "1452", "1453", "1454", "1455", "1456", "1457", "1458", "1459", "1460", "1461", "1462", "1463", "1464", "1465", "1466", "1467", "1468", "1469", "1470", "1471", "1472", "1473", "1474", "1475", "1476", "1477", "1478", "1479", "1480", "1481", "1482", "1483", "1484", "1485", "1486", "1487", "1488", "1489", "1490", "1491", "1492", "1493", "1494", "1495", "1496", "1497", "1498", "1499", "1500", "1501", "1502", "1503", "1504", "1505", "1506", "1507", "1508", "1509", "1510", "1511", "1512", "1513", "1514", "1515", "1516", "1517", "1518", "1519", "1520", "1521", "1522", "1523", "1524", "1525", "1526", "1527", "1528", "1529", "1530", "1531", "1532", "1533", "1534", "1535", "1536", "1537", "1538", "1539", "1540", "1541", "1542", "1543", "1544", "1545", "1546", "1547", "1548", "1549", "1550", "1551", "1552", "1553", "1554", "1555", "1556", "1557", "1558", "1559", "1560", "1561", "1562", "1563", "1564", "1565", "1566", "1567", "1568", "1569", "1570", "1571", "1572", "1573", "1574", "1575", "1576", "1577", "1578", "1579", "1580", "1581", "1582", "1583", "1584", "1585", "1586", "1587", "1588", "1589", "1590", "1591", "1592", "1593", "1594", "1595", "1596", "1597", "1598", "1599", "1600", "1601", "1602", "1603", "1604", "1605", "1606", "1607", "1608", "1609", "1610", "1611", "1612", "1613", "1614", "1615", "1616", "1617", "1618", "1619", "1620", "1621", "1622", "1623", "1624", "1625", "1626", "1627", "1628", "1629", "1630", "1631", "1632", "1633", "1634", "1635", "1636", "1637", "1638", "1639", "1640", "1641", "1642", "1643", "1644", "1645", "1646", "1647", "1648", "1649", "1650", "1651", "1652", "1653", "1654", "1655", "1656", "1657", "1658", "1659", "1660", "1661", "1662", "1663", "1664", "1665", "1666", "1667", "1668", "1669", "1670", "1671", "1672", "1673", "1674", "1675", "1676", "1677", "1678", "1679", "1680", "1681", "1682", "1683", "1684", "1685", "1686", "1687", "1688", "1689", "1690", "1691", "1692", "1693", "1694", "1695", "1696", "1697", "1698", "1699", "1700", "1701", "1702", "1703", "1704", "1705", "1706", "1707", "1708", "1709", "1710", "1711", "1712", "1713", "1714", "1715", "1716", "1717", "1718", "1719", "1720", "1721", "1722", "1723", "1724", "1725", "1726", "1727", "1728", "1729", "1730", "1731", "1732", "1733", "1734", "1735", "1736", "1737", "1738", "1739", "1740", "1741", "1742", "1743", "1744", "1745", "1746", "1747", "1748", "1749", "1750", "1751", "1752", "1753", "1754", "1755", "1756", "1757", "1758", "1759", "1760", "1761", "1762", "1763", "1764", "1765", "1766", "1767", "1768", "1769", "1770", "1771", "1772", "1773", "1774", "1775", "1776", "1777", "1778", "1779", "1780", "1781", "1782", "1783", "1784", "1785", "1786", "1787", "1788", "1789", "1790", "1791", "1792", "1793", "1794", "1795", "1796", "1797", "1798", "1799", "1800", "1801", "1802", "1803", "1804", "1805", "1806", "1807", "1808", "1809", "1810", "1811", "1812", "1813", "1814", "1815", "1816", "1817", "1818", "1819", "1820", "1821", "1822", "1823", "1824", "1825", "1826", "1827", "1828", "1829", "1830", "1831", "1832", "1833", "1834", "1835", "1836", "1837", "1838", "1839", "1840", "1841", "1842", "1843", "1844", "1845", "1846", "1847", "1848", "1849", "1850", "1851", "1852", "1853", "1854", "1855", "1856", "1857", "1858", "1859", "1860", "1861", "1862", "1863", "1864", "1865", "1866", "1867", "1868", "1869", "1870", "1871", "1872", "1873", "1874", "1875", "1876", "1877", "1878", "1879", "1880", "1881", "1882", "1883", "1884", "1885", "1886", "1887", "1888", "1889", "1890", "1891", "1892", "1893", "1894", "1895", "1896", "1897", "1898", "1899", "1900", "1901", "1902", "1903", "1904", "1905", "1906", "1907", "1908", "1909", "1910", "1911", "1912", "1913", "1914", "1915", "1916", "1917", "1918", "1919", "1920", "1921", "1922", "1923", "1924", "1925", "1926", "1927", "1928", "1929", "1930", "1931", "1932", "1933", "1934", "1935", "1936", "1937", "1938", "1939", "1940", "1941", "1942", "1943", "1944", "1945", "1946", "1947", "1948", "1949", "1950", "1951", "1952", "1953", "1954", "1955", "1956", "1957", "1958", "1959", "1960", "1961", "1962", "1963", "1964", "1965", "1966", "1967", "1968", "1969", "1970", "1971", "1972", "1973", "1974", "1975", "1976", "1977", "1978", "1979", "1980", "1981", "1982", "1983", "1984", "1985", "1986", "1987", "1988", "1989", "1990", "1991", "1992", "1993", "1994", "1995", "1996", "1997", "1998", "1999", "2000"] }, "class": { "type": "character", "attributes": {}, "value": ["exclude"] } }, "value": [141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.005, 0.015, 0.025, 0.035, 0.045, 0.055, 0.065, 0.075, 0.085, 0.095, 0.105, 0.115, 0.125, 0.135, 0.145, 0.155, 0.165, 0.175, 0.185, 0.195, 0.205, 0.215, 0.225, 0.235, 0.245, 0.255, 0.265, 0.275, 0.285, 0.295, 0.305, 0.315, 0.325, 0.335, 0.345, 0.355, 0.365, 0.375, 0.385, 0.395, 0.405, 0.415, 0.425, 0.435, 0.445, 0.455, 0.465, 0.475, 0.485, 0.495, 0.505, 0.515, 0.525, 0.535, 0.545, 0.555, 0.565, 0.575, 0.585, 0.595, 0.605, 0.615, 0.625, 0.635, 0.645, 0.655, 0.665, 0.675, 0.685, 0.695, 0.705, 0.715, 0.725, 0.735, 0.745, 0.755, 0.765, 0.775, 0.785, 0.795, 0.805, 0.815, 0.825, 0.835, 0.845, 0.855, 0.865, 0.875, 0.885, 0.895, 0.905, 0.915, 0.925, 0.935, 0.945, 0.955, 0.965, 0.975, 0.985, 0.995, 1.005, 1.015, 1.025, 1.035, 1.045, 1.055, 1.065, 1.075, 1.085, 1.095, 1.105, 1.115, 1.125, 1.135, 1.145, 1.155, 1.165, 1.175, 1.185, 1.195, 1.205, 1.215, 1.225, 1.235, 1.245, 1.255, 1.265, 1.275, 1.285, 1.295, 1.305, 1.315, 1.325, 1.335, 1.345, 1.355, 1.365, 1.375, 1.385, 1.395] }, { "type": "double", "attributes": {}, "value": [772.56413608, 2197.93201918, 3294.42724273, 3933.53781027, 4145.87725191, 4317.51429712, 4429.46743756, 4807.47136222, 4722.9451253, 5197.51694677, 5596.24507758, 5735.34870648, 6088.52917375, 5998.7608211, 6366.0789029, 6060.21149462, 6709.13956318, 5978.87095917, 6324.51906354, 6135.80659567, 6065.63735652, 5962.77931623, 5376.37417539, 4994.91997561, 5142.31698581, 4887.67004436, 4307.78120981, 3942.84690157, 4043.58638724, 3659.61317972, 3569.89587779, 3185.63218788, 3153.02366982, 2472.78106936, 2480.19957999, 2316.55201222, 2149.65446863, 1823.35362453, 1885.67960319, 1806.11075586, 1413.0384199, 1224.13612599, 865.98910159, 1222.38999246, 947.08873831, 944.15791479, 917.53966829, 744.86358106, 661.16812395, 639.12016717, 586.2675881, 585.47437169, 432.15519344, 486.85815154, 367.75911842, 427.69188107, 242.95792147, 567.64835429, 292.24966224, 189.43407866, 233.7565916, 312.42740817, 322.60524543, 241.76564442, 245.02933292, 157.30882279, 225.67392182, 115.82532076, 87.14624183, 276.50485239, 102.26132723, 212.78284926, 230.66104706, 169.30175239, 58.80858208, 287.25800166, 229.15932689, 92.16355141, 48.88171102, 103.44164997, 162.78325277, 168.82568479, 263.92749828, 106.22936048, 180.52053574, 126.99741066, 196.86979921, 91.25865369, 87.79152522, 161.86039424, 60.62874449, 202.27124581, 82.48960645, 92.7277257, 103.04879088, 155.13390013, 119.86532039, 63.79470236, 191.89642685, 131.54596181, 207.47990086, 61.39874227, 102.5, 75.14063294, 103.43182519, 158.12746141, 150.98098292, 121.13792569, 114.07870456, 141.87209136, 92.15157798, 73.71936838, 193.04220126, 175.2757912, 203.23018433, 153.25971308, 115.56737501, 166.30495628, 239.30053992, 179.44927709, 155.86911282, 179.61314114, 129.91254374, 79.33232939, 24.9, 96.98000742, 177.85968259, 86.49967451, 42.06537038, 62.80194696, 182.27244294, 135.34718956, 142.60177831, 191.74303902, 45.329912, 58.20764691, 187.9124663, 29.98896265, 196.34616088, 90.27192497] }, { "type": "double", "attributes": {}, "value": [0.00025, 0.00225, 0.00625, 0.01225, 0.02025, 0.03025, 0.04225, 0.05625, 0.07225, 0.09025, 0.11025, 0.13225, 0.15625, 0.18225, 0.21025, 0.24025, 0.27225, 0.30625, 0.34225, 0.38025, 0.42025, 0.46225, 0.50625, 0.55225, 0.60025, 0.65025, 0.70225, 0.75625, 0.81225, 0.87025, 0.93025, 0.99225, 1.05625, 1.12225, 1.19025, 1.26025, 1.33225, 1.40625, 1.48225, 1.56025, 1.64025, 1.72225, 1.80625, 1.89225, 1.98025, 2.07025, 2.16225, 2.25625, 2.35225, 2.45025, 2.55025, 2.65225, 2.75625, 2.86225, 2.97025, 3.08025, 3.19225, 3.30625, 3.42225, 3.54025, 3.66025, 3.78225, 3.90625, 4.03225, 4.16025, 4.29025, 4.42225, 4.55625, 4.69225, 4.83025, 4.97025, 5.11225, 5.25625, 5.40225, 5.55025, 5.70025, 5.85225, 6.00625, 6.16225, 6.32025, 6.48025, 6.64225, 6.80625, 6.97225, 7.14025, 7.31025, 7.48225, 7.65625, 7.83225, 8.01025, 8.19025, 8.37225, 8.55625, 8.74225, 8.93025, 9.12025, 9.31225, 9.50625, 9.70225, 9.90025, 10.10025, 10.30225, 10.50625, 10.71225, 10.92025, 11.13025, 11.34225, 11.55625, 11.77225, 11.99025, 12.21025, 12.43225, 12.65625, 12.88225, 13.11025, 13.34025, 13.57225, 13.80625, 14.04225, 14.28025, 14.52025, 14.76225, 15.00625, 15.25225, 15.50025, 15.75025, 16.00225, 16.25625, 16.51225, 16.77025, 17.03025, 17.29225, 17.55625, 17.82225, 18.09025, 18.36025, 18.63225, 18.90625, 19.18225, 19.46025] }, { "type": "character", "attributes": {}, "value": ["extrapolation", "extrapolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation"] } ] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["x", "y.t", "x.t", "method"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "na.action": { "type": "integer", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["141", "142", "143", "144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159", "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", "176", "177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", "191", "192", "193", "194", "195", "196", "197", "198", "199", "200", "201", "202", "203", "204", "205", "206", "207", "208", "209", "210", "211", "212", "213", "214", "215", "216", "217", "218", "219", "220", "221", "222", "223", "224", "225", "226", "227", "228", "229", "230", "231", "232", "233", "234", "235", "236", "237", "238", "239", "240", "241", "242", "243", "244", "245", "246", "247", "248", "249", "250", "251", "252", "253", "254", "255", "256", "257", "258", "259", "260", "261", "262", "263", "264", "265", "266", "267", "268", "269", "270", "271", "272", "273", "274", "275", "276", "277", "278", "279", "280", "281", "282", "283", "284", "285", "286", "287", "288", "289", "290", "291", "292", "293", "294", "295", "296", "297", "298", "299", "300", "301", "302", "303", "304", "305", "306", "307", "308", "309", "310", "311", "312", "313", "314", "315", "316", "317", "318", "319", "320", "321", "322", "323", "324", "325", "326", "327", "328", "329", "330", "331", "332", "333", "334", "335", "336", "337", "338", "339", "340", "341", "342", "343", "344", "345", "346", "347", "348", "349", "350", "351", "352", "353", "354", "355", "356", "357", "358", "359", "360", "361", "362", "363", "364", "365", "366", "367", "368", "369", "370", "371", "372", "373", "374", "375", "376", "377", "378", "379", "380", "381", "382", "383", "384", "385", "386", "387", "388", "389", "390", "391", "392", "393", "394", "395", "396", "397", "398", "399", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "418", "419", "420", "421", "422", "423", "424", "425", "426", "427", "428", "429", "430", "431", "432", "433", "434", "435", "436", "437", "438", "439", "440", "441", "442", "443", "444", "445", "446", "447", "448", "449", "450", "451", "452", "453", "454", "455", "456", "457", "458", "459", "460", "461", "462", "463", "464", "465", "466", "467", "468", "469", "470", "471", "472", "473", "474", "475", "476", "477", "478", "479", "480", "481", "482", "483", "484", "485", "486", "487", "488", "489", "490", "491", "492", "493", "494", "495", "496", "497", "498", "499", "500", "501", "502", "503", "504", "505", "506", "507", "508", "509", "510", "511", "512", "513", "514", "515", "516", "517", "518", "519", "520", "521", "522", "523", "524", "525", "526", "527", "528", "529", "530", "531", "532", "533", "534", "535", "536", "537", "538", "539", "540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "550", "551", "552", "553", "554", "555", "556", "557", "558", "559", "560", "561", "562", "563", "564", "565", "566", "567", "568", "569", "570", "571", "572", "573", "574", "575", "576", "577", "578", "579", "580", "581", "582", "583", "584", "585", "586", "587", "588", "589", "590", "591", "592", "593", "594", "595", "596", "597", "598", "599", "600", "601", "602", "603", "604", "605", "606", "607", "608", "609", "610", "611", "612", "613", "614", "615", "616", "617", "618", "619", "620", "621", "622", "623", "624", "625", "626", "627", "628", "629", "630", "631", "632", "633", "634", "635", "636", "637", "638", "639", "640", "641", "642", "643", "644", "645", "646", "647", "648", "649", "650", "651", "652", "653", "654", "655", "656", "657", "658", "659", "660", "661", "662", "663", "664", "665", "666", "667", "668", "669", "670", "671", "672", "673", "674", "675", "676", "677", "678", "679", "680", "681", "682", "683", "684", "685", "686", "687", "688", "689", "690", "691", "692", "693", "694", "695", "696", "697", "698", "699", "700", "701", "702", "703", "704", "705", "706", "707", "708", "709", "710", "711", "712", "713", "714", "715", "716", "717", "718", "719", "720", "721", "722", "723", "724", "725", "726", "727", "728", "729", "730", "731", "732", "733", "734", "735", "736", "737", "738", "739", "740", "741", "742", "743", "744", "745", "746", "747", "748", "749", "750", "751", "752", "753", "754", "755", "756", "757", "758", "759", "760", "761", "762", "763", "764", "765", "766", "767", "768", "769", "770", "771", "772", "773", "774", "775", "776", "777", "778", "779", "780", "781", "782", "783", "784", "785", "786", "787", "788", "789", "790", "791", "792", "793", "794", "795", "796", "797", "798", "799", "800", "801", "802", "803", "804", "805", "806", "807", "808", "809", "810", "811", "812", "813", "814", "815", "816", "817", "818", "819", "820", "821", "822", "823", "824", "825", "826", "827", "828", "829", "830", "831", "832", "833", "834", "835", "836", "837", "838", "839", "840", "841", "842", "843", "844", "845", "846", "847", "848", "849", "850", "851", "852", "853", "854", "855", "856", "857", "858", "859", "860", "861", "862", "863", "864", "865", "866", "867", "868", "869", "870", "871", "872", "873", "874", "875", "876", "877", "878", "879", "880", "881", "882", "883", "884", "885", "886", "887", "888", "889", "890", "891", "892", "893", "894", "895", "896", "897", "898", "899", "900", "901", "902", "903", "904", "905", "906", "907", "908", "909", "910", "911", "912", "913", "914", "915", "916", "917", "918", "919", "920", "921", "922", "923", "924", "925", "926", "927", "928", "929", "930", "931", "932", "933", "934", "935", "936", "937", "938", "939", "940", "941", "942", "943", "944", "945", "946", "947", "948", "949", "950", "951", "952", "953", "954", "955", "956", "957", "958", "959", "960", "961", "962", "963", "964", "965", "966", "967", "968", "969", "970", "971", "972", "973", "974", "975", "976", "977", "978", "979", "980", "981", "982", "983", "984", "985", "986", "987", "988", "989", "990", "991", "992", "993", "994", "995", "996", "997", "998", "999", "1000", "1001", "1002", "1003", "1004", "1005", "1006", "1007", "1008", "1009", "1010", "1011", "1012", "1013", "1014", "1015", "1016", "1017", "1018", "1019", "1020", "1021", "1022", "1023", "1024", "1025", "1026", "1027", "1028", "1029", "1030", "1031", "1032", "1033", "1034", "1035", "1036", "1037", "1038", "1039", "1040", "1041", "1042", "1043", "1044", "1045", "1046", "1047", "1048", "1049", "1050", "1051", "1052", "1053", "1054", "1055", "1056", "1057", "1058", "1059", "1060", "1061", "1062", "1063", "1064", "1065", "1066", "1067", "1068", "1069", "1070", "1071", "1072", "1073", "1074", "1075", "1076", "1077", "1078", "1079", "1080", "1081", "1082", "1083", "1084", "1085", "1086", "1087", "1088", "1089", "1090", "1091", "1092", "1093", "1094", "1095", "1096", "1097", "1098", "1099", "1100", "1101", "1102", "1103", "1104", "1105", "1106", "1107", "1108", "1109", "1110", "1111", "1112", "1113", "1114", "1115", "1116", "1117", "1118", "1119", "1120", "1121", "1122", "1123", "1124", "1125", "1126", "1127", "1128", "1129", "1130", "1131", "1132", "1133", "1134", "1135", "1136", "1137", "1138", "1139", "1140", "1141", "1142", "1143", "1144", "1145", "1146", "1147", "1148", "1149", "1150", "1151", "1152", "1153", "1154", "1155", "1156", "1157", "1158", "1159", "1160", "1161", "1162", "1163", "1164", "1165", "1166", "1167", "1168", "1169", "1170", "1171", "1172", "1173", "1174", "1175", "1176", "1177", "1178", "1179", "1180", "1181", "1182", "1183", "1184", "1185", "1186", "1187", "1188", "1189", "1190", "1191", "1192", "1193", "1194", "1195", "1196", "1197", "1198", "1199", "1200", "1201", "1202", "1203", "1204", "1205", "1206", "1207", "1208", "1209", "1210", "1211", "1212", "1213", "1214", "1215", "1216", "1217", "1218", "1219", "1220", "1221", "1222", "1223", "1224", "1225", "1226", "1227", "1228", "1229", "1230", "1231", "1232", "1233", "1234", "1235", "1236", "1237", "1238", "1239", "1240", "1241", "1242", "1243", "1244", "1245", "1246", "1247", "1248", "1249", "1250", "1251", "1252", "1253", "1254", "1255", "1256", "1257", "1258", "1259", "1260", "1261", "1262", "1263", "1264", "1265", "1266", "1267", "1268", "1269", "1270", "1271", "1272", "1273", "1274", "1275", "1276", "1277", "1278", "1279", "1280", "1281", "1282", "1283", "1284", "1285", "1286", "1287", "1288", "1289", "1290", "1291", "1292", "1293", "1294", "1295", "1296", "1297", "1298", "1299", "1300", "1301", "1302", "1303", "1304", "1305", "1306", "1307", "1308", "1309", "1310", "1311", "1312", "1313", "1314", "1315", "1316", "1317", "1318", "1319", "1320", "1321", "1322", "1323", "1324", "1325", "1326", "1327", "1328", "1329", "1330", "1331", "1332", "1333", "1334", "1335", "1336", "1337", "1338", "1339", "1340", "1341", "1342", "1343", "1344", "1345", "1346", "1347", "1348", "1349", "1350", "1351", "1352", "1353", "1354", "1355", "1356", "1357", "1358", "1359", "1360", "1361", "1362", "1363", "1364", "1365", "1366", "1367", "1368", "1369", "1370", "1371", "1372", "1373", "1374", "1375", "1376", "1377", "1378", "1379", "1380", "1381", "1382", "1383", "1384", "1385", "1386", "1387", "1388", "1389", "1390", "1391", "1392", "1393", "1394", "1395", "1396", "1397", "1398", "1399", "1400", "1401", "1402", "1403", "1404", "1405", "1406", "1407", "1408", "1409", "1410", "1411", "1412", "1413", "1414", "1415", "1416", "1417", "1418", "1419", "1420", "1421", "1422", "1423", "1424", "1425", "1426", "1427", "1428", "1429", "1430", "1431", "1432", "1433", "1434", "1435", "1436", "1437", "1438", "1439", "1440", "1441", "1442", "1443", "1444", "1445", "1446", "1447", "1448", "1449", "1450", "1451", "1452", "1453", "1454", "1455", "1456", "1457", "1458", "1459", "1460", "1461", "1462", "1463", "1464", "1465", "1466", "1467", "1468", "1469", "1470", "1471", "1472", "1473", "1474", "1475", "1476", "1477", "1478", "1479", "1480", "1481", "1482", "1483", "1484", "1485", "1486", "1487", "1488", "1489", "1490", "1491", "1492", "1493", "1494", "1495", "1496", "1497", "1498", "1499", "1500", "1501", "1502", "1503", "1504", "1505", "1506", "1507", "1508", "1509", "1510", "1511", "1512", "1513", "1514", "1515", "1516", "1517", "1518", "1519", "1520", "1521", "1522", "1523", "1524", "1525", "1526", "1527", "1528", "1529", "1530", "1531", "1532", "1533", "1534", "1535", "1536", "1537", "1538", "1539", "1540", "1541", "1542", "1543", "1544", "1545", "1546", "1547", "1548", "1549", "1550", "1551", "1552", "1553", "1554", "1555", "1556", "1557", "1558", "1559", "1560", "1561", "1562", "1563", "1564", "1565", "1566", "1567", "1568", "1569", "1570", "1571", "1572", "1573", "1574", "1575", "1576", "1577", "1578", "1579", "1580", "1581", "1582", "1583", "1584", "1585", "1586", "1587", "1588", "1589", "1590", "1591", "1592", "1593", "1594", "1595", "1596", "1597", "1598", "1599", "1600", "1601", "1602", "1603", "1604", "1605", "1606", "1607", "1608", "1609", "1610", "1611", "1612", "1613", "1614", "1615", "1616", "1617", "1618", "1619", "1620", "1621", "1622", "1623", "1624", "1625", "1626", "1627", "1628", "1629", "1630", "1631", "1632", "1633", "1634", "1635", "1636", "1637", "1638", "1639", "1640", "1641", "1642", "1643", "1644", "1645", "1646", "1647", "1648", "1649", "1650", "1651", "1652", "1653", "1654", "1655", "1656", "1657", "1658", "1659", "1660", "1661", "1662", "1663", "1664", "1665", "1666", "1667", "1668", "1669", "1670", "1671", "1672", "1673", "1674", "1675", "1676", "1677", "1678", "1679", "1680", "1681", "1682", "1683", "1684", "1685", "1686", "1687", "1688", "1689", "1690", "1691", "1692", "1693", "1694", "1695", "1696", "1697", "1698", "1699", "1700", "1701", "1702", "1703", "1704", "1705", "1706", "1707", "1708", "1709", "1710", "1711", "1712", "1713", "1714", "1715", "1716", "1717", "1718", "1719", "1720", "1721", "1722", "1723", "1724", "1725", "1726", "1727", "1728", "1729", "1730", "1731", "1732", "1733", "1734", "1735", "1736", "1737", "1738", "1739", "1740", "1741", "1742", "1743", "1744", "1745", "1746", "1747", "1748", "1749", "1750", "1751", "1752", "1753", "1754", "1755", "1756", "1757", "1758", "1759", "1760", "1761", "1762", "1763", "1764", "1765", "1766", "1767", "1768", "1769", "1770", "1771", "1772", "1773", "1774", "1775", "1776", "1777", "1778", "1779", "1780", "1781", "1782", "1783", "1784", "1785", "1786", "1787", "1788", "1789", "1790", "1791", "1792", "1793", "1794", "1795", "1796", "1797", "1798", "1799", "1800", "1801", "1802", "1803", "1804", "1805", "1806", "1807", "1808", "1809", "1810", "1811", "1812", "1813", "1814", "1815", "1816", "1817", "1818", "1819", "1820", "1821", "1822", "1823", "1824", "1825", "1826", "1827", "1828", "1829", "1830", "1831", "1832", "1833", "1834", "1835", "1836", "1837", "1838", "1839", "1840", "1841", "1842", "1843", "1844", "1845", "1846", "1847", "1848", "1849", "1850", "1851", "1852", "1853", "1854", "1855", "1856", "1857", "1858", "1859", "1860", "1861", "1862", "1863", "1864", "1865", "1866", "1867", "1868", "1869", "1870", "1871", "1872", "1873", "1874", "1875", "1876", "1877", "1878", "1879", "1880", "1881", "1882", "1883", "1884", "1885", "1886", "1887", "1888", "1889", "1890", "1891", "1892", "1893", "1894", "1895", "1896", "1897", "1898", "1899", "1900", "1901", "1902", "1903", "1904", "1905", "1906", "1907", "1908", "1909", "1910", "1911", "1912", "1913", "1914", "1915", "1916", "1917", "1918", "1919", "1920", "1921", "1922", "1923", "1924", "1925", "1926", "1927", "1928", "1929", "1930", "1931", "1932", "1933", "1934", "1935", "1936", "1937", "1938", "1939", "1940", "1941", "1942", "1943", "1944", "1945", "1946", "1947", "1948", "1949", "1950", "1951", "1952", "1953", "1954", "1955", "1956", "1957", "1958", "1959", "1960", "1961", "1962", "1963", "1964", "1965", "1966", "1967", "1968", "1969", "1970", "1971", "1972", "1973", "1974", "1975", "1976", "1977", "1978", "1979", "1980", "1981", "1982", "1983", "1984", "1985", "1986", "1987", "1988", "1989", "1990", "1991", "1992", "1993", "1994", "1995", "1996", "1997", "1998", "1999", "2000"] }, "class": { "type": "character", "attributes": {}, "value": ["exclude"] } }, "value": [141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.005, 0.015, 0.025, 0.035, 0.045, 0.055, 0.065, 0.075, 0.085, 0.095, 0.105, 0.115, 0.125, 0.135, 0.145, 0.155, 0.165, 0.175, 0.185, 0.195, 0.205, 0.215, 0.225, 0.235, 0.245, 0.255, 0.265, 0.275, 0.285, 0.295, 0.305, 0.315, 0.325, 0.335, 0.345, 0.355, 0.365, 0.375, 0.385, 0.395, 0.405, 0.415, 0.425, 0.435, 0.445, 0.455, 0.465, 0.475, 0.485, 0.495, 0.505, 0.515, 0.525, 0.535, 0.545, 0.555, 0.565, 0.575, 0.585, 0.595, 0.605, 0.615, 0.625, 0.635, 0.645, 0.655, 0.665, 0.675, 0.685, 0.695, 0.705, 0.715, 0.725, 0.735, 0.745, 0.755, 0.765, 0.775, 0.785, 0.795, 0.805, 0.815, 0.825, 0.835, 0.845, 0.855, 0.865, 0.875, 0.885, 0.895, 0.905, 0.915, 0.925, 0.935, 0.945, 0.955, 0.965, 0.975, 0.985, 0.995, 1.005, 1.015, 1.025, 1.035, 1.045, 1.055, 1.065, 1.075, 1.085, 1.095, 1.105, 1.115, 1.125, 1.135, 1.145, 1.155, 1.165, 1.175, 1.185, 1.195, 1.205, 1.215, 1.225, 1.235, 1.245, 1.255, 1.265, 1.275, 1.285, 1.295, 1.305, 1.315, 1.325, 1.335, 1.345, 1.355, 1.365, 1.375, 1.385, 1.395] }, { "type": "double", "attributes": {}, "value": [772.56413608, 2197.93201918, 3294.42724273, 3933.53781027, 4145.87725191, 4317.51429712, 4429.46743756, 4807.47136222, 4722.9451253, 5197.51694677, 5596.24507758, 5735.34870648, 6088.52917375, 5998.7608211, 6366.0789029, 6060.21149462, 6709.13956318, 5978.87095917, 6324.51906354, 6135.80659567, 6065.63735652, 5962.77931623, 5376.37417539, 4994.91997561, 5142.31698581, 4887.67004436, 4307.78120981, 3942.84690157, 4043.58638724, 3659.61317972, 3569.89587779, 3185.63218788, 3153.02366982, 2472.78106936, 2480.19957999, 2316.55201222, 2149.65446863, 1823.35362453, 1885.67960319, 1806.11075586, 1413.0384199, 1224.13612599, 865.98910159, 1222.38999246, 947.08873831, 944.15791479, 917.53966829, 744.86358106, 661.16812395, 639.12016717, 586.2675881, 585.47437169, 432.15519344, 486.85815154, 367.75911842, 427.69188107, 242.95792147, 567.64835429, 292.24966224, 189.43407866, 233.7565916, 312.42740817, 322.60524543, 241.76564442, 245.02933292, 157.30882279, 225.67392182, 115.82532076, 87.14624183, 276.50485239, 102.26132723, 212.78284926, 230.66104706, 169.30175239, 58.80858208, 287.25800166, 229.15932689, 92.16355141, 48.88171102, 103.44164997, 162.78325277, 168.82568479, 263.92749828, 106.22936048, 180.52053574, 126.99741066, 196.86979921, 91.25865369, 87.79152522, 161.86039424, 60.62874449, 202.27124581, 82.48960645, 92.7277257, 103.04879088, 155.13390013, 119.86532039, 63.79470236, 191.89642685, 131.54596181, 207.47990086, 61.39874227, 102.5, 75.14063294, 103.43182519, 158.12746141, 150.98098292, 121.13792569, 114.07870456, 141.87209136, 92.15157798, 73.71936838, 193.04220126, 175.2757912, 203.23018433, 153.25971308, 115.56737501, 166.30495628, 239.30053992, 179.44927709, 155.86911282, 179.61314114, 129.91254374, 79.33232939, 24.9, 96.98000742, 177.85968259, 86.49967451, 42.06537038, 62.80194696, 182.27244294, 135.34718956, 142.60177831, 191.74303902, 45.329912, 58.20764691, 187.9124663, 29.98896265, 196.34616088, 90.27192497] }, { "type": "double", "attributes": {}, "value": [0.00025, 0.00225, 0.00625, 0.01225, 0.02025, 0.03025, 0.04225, 0.05625, 0.07225, 0.09025, 0.11025, 0.13225, 0.15625, 0.18225, 0.21025, 0.24025, 0.27225, 0.30625, 0.34225, 0.38025, 0.42025, 0.46225, 0.50625, 0.55225, 0.60025, 0.65025, 0.70225, 0.75625, 0.81225, 0.87025, 0.93025, 0.99225, 1.05625, 1.12225, 1.19025, 1.26025, 1.33225, 1.40625, 1.48225, 1.56025, 1.64025, 1.72225, 1.80625, 1.89225, 1.98025, 2.07025, 2.16225, 2.25625, 2.35225, 2.45025, 2.55025, 2.65225, 2.75625, 2.86225, 2.97025, 3.08025, 3.19225, 3.30625, 3.42225, 3.54025, 3.66025, 3.78225, 3.90625, 4.03225, 4.16025, 4.29025, 4.42225, 4.55625, 4.69225, 4.83025, 4.97025, 5.11225, 5.25625, 5.40225, 5.55025, 5.70025, 5.85225, 6.00625, 6.16225, 6.32025, 6.48025, 6.64225, 6.80625, 6.97225, 7.14025, 7.31025, 7.48225, 7.65625, 7.83225, 8.01025, 8.19025, 8.37225, 8.55625, 8.74225, 8.93025, 9.12025, 9.31225, 9.50625, 9.70225, 9.90025, 10.10025, 10.30225, 10.50625, 10.71225, 10.92025, 11.13025, 11.34225, 11.55625, 11.77225, 11.99025, 12.21025, 12.43225, 12.65625, 12.88225, 13.11025, 13.34025, 13.57225, 13.80625, 14.04225, 14.28025, 14.52025, 14.76225, 15.00625, 15.25225, 15.50025, 15.75025, 16.00225, 16.25625, 16.51225, 16.77025, 17.03025, 17.29225, 17.55625, 17.82225, 18.09025, 18.36025, 18.63225, 18.90625, 19.18225, 19.46025] }, { "type": "character", "attributes": {}, "value": ["extrapolation", "extrapolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation"] } ] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["x", "y.t", "x.t", "method"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1119, 1120, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1355, 1356, 1357, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1371, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1399, 1400, 1401, 1403, 1404, 1405, 1406, 1407, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1608, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1693, 1694, 1695, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1742, 1743, 1744, 1745, 1746, 1747, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "na.action": { "type": "integer", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["865", "918", "1021", "1118", "1121", "1243", "1354", "1358", "1370", "1372", "1381", "1398", "1402", "1408", "1607", "1609", "1634", "1646", "1692", "1696", "1741", "1748", "1827", "1902", "1919", "1931", "1982", "1996"] }, "class": { "type": "character", "attributes": {}, "value": ["exclude"] } }, "value": [865, 918, 1021, 1118, 1121, 1243, 1354, 1358, 1370, 1372, 1381, 1398, 1402, 1408, 1607, 1609, 1634, 1646, 1692, 1696, 1741, 1748, 1827, 1902, 1919, 1931, 1982, 1996] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.005, 0.015, 0.025, 0.035, 0.045, 0.055, 0.065, 0.075, 0.085, 0.095, 0.105, 0.115, 0.125, 0.135, 0.145, 0.155, 0.165, 0.175, 0.185, 0.195, 0.205, 0.215, 0.225, 0.235, 0.245, 0.255, 0.265, 0.275, 0.285, 0.295, 0.305, 0.315, 0.325, 0.335, 0.345, 0.355, 0.365, 0.375, 0.385, 0.395, 0.405, 0.415, 0.425, 0.435, 0.445, 0.455, 0.465, 0.475, 0.485, 0.495, 0.505, 0.515, 0.525, 0.535, 0.545, 0.555, 0.565, 0.575, 0.585, 0.595, 0.605, 0.615, 0.625, 0.635, 0.645, 0.655, 0.665, 0.675, 0.685, 0.695, 0.705, 0.715, 0.725, 0.735, 0.745, 0.755, 0.765, 0.775, 0.785, 0.795, 0.805, 0.815, 0.825, 0.835, 0.845, 0.855, 0.865, 0.875, 0.885, 0.895, 0.905, 0.915, 0.925, 0.935, 0.945, 0.955, 0.965, 0.975, 0.985, 0.995, 1.005, 1.015, 1.025, 1.035, 1.045, 1.055, 1.065, 1.075, 1.085, 1.095, 1.105, 1.115, 1.125, 1.135, 1.145, 1.155, 1.165, 1.175, 1.185, 1.195, 1.205, 1.215, 1.225, 1.235, 1.245, 1.255, 1.265, 1.275, 1.285, 1.295, 1.305, 1.315, 1.325, 1.335, 1.345, 1.355, 1.365, 1.375, 1.385, 1.395, 1.405, 1.415, 1.425, 1.435, 1.445, 1.455, 1.465, 1.475, 1.485, 1.495, 1.505, 1.515, 1.525, 1.535, 1.545, 1.555, 1.565, 1.575, 1.585, 1.595, 1.605, 1.615, 1.625, 1.635, 1.645, 1.655, 1.665, 1.675, 1.685, 1.695, 1.705, 1.715, 1.725, 1.735, 1.745, 1.755, 1.765, 1.775, 1.785, 1.795, 1.805, 1.815, 1.825, 1.835, 1.845, 1.855, 1.865, 1.875, 1.885, 1.895, 1.905, 1.915, 1.925, 1.935, 1.945, 1.955, 1.965, 1.975, 1.985, 1.995, 2.005, 2.015, 2.025, 2.035, 2.045, 2.055, 2.065, 2.075, 2.085, 2.095, 2.105, 2.115, 2.125, 2.135, 2.145, 2.155, 2.165, 2.175, 2.185, 2.195, 2.205, 2.215, 2.225, 2.235, 2.245, 2.255, 2.265, 2.275, 2.285, 2.295, 2.305, 2.315, 2.325, 2.335, 2.345, 2.355, 2.365, 2.375, 2.385, 2.395, 2.405, 2.415, 2.425, 2.435, 2.445, 2.455, 2.465, 2.475, 2.485, 2.495, 2.505, 2.515, 2.525, 2.535, 2.545, 2.555, 2.565, 2.575, 2.585, 2.595, 2.605, 2.615, 2.625, 2.635, 2.645, 2.655, 2.665, 2.675, 2.685, 2.695, 2.705, 2.715, 2.725, 2.735, 2.745, 2.755, 2.765, 2.775, 2.785, 2.795, 2.805, 2.815, 2.825, 2.835, 2.845, 2.855, 2.865, 2.875, 2.885, 2.895, 2.905, 2.915, 2.925, 2.935, 2.945, 2.955, 2.965, 2.975, 2.985, 2.995, 3.005, 3.015, 3.025, 3.035, 3.045, 3.055, 3.065, 3.075, 3.085, 3.095, 3.105, 3.115, 3.125, 3.135, 3.145, 3.155, 3.165, 3.175, 3.185, 3.195, 3.205, 3.215, 3.225, 3.235, 3.245, 3.255, 3.265, 3.275, 3.285, 3.295, 3.305, 3.315, 3.325, 3.335, 3.345, 3.355, 3.365, 3.375, 3.385, 3.395, 3.405, 3.415, 3.425, 3.435, 3.445, 3.455, 3.465, 3.475, 3.485, 3.495, 3.505, 3.515, 3.525, 3.535, 3.545, 3.555, 3.565, 3.575, 3.585, 3.595, 3.605, 3.615, 3.625, 3.635, 3.645, 3.655, 3.665, 3.675, 3.685, 3.695, 3.705, 3.715, 3.725, 3.735, 3.745, 3.755, 3.765, 3.775, 3.785, 3.795, 3.805, 3.815, 3.825, 3.835, 3.845, 3.855, 3.865, 3.875, 3.885, 3.895, 3.905, 3.915, 3.925, 3.935, 3.945, 3.955, 3.965, 3.975, 3.985, 3.995, 4.005, 4.015, 4.025, 4.035, 4.045, 4.055, 4.065, 4.075, 4.085, 4.095, 4.105, 4.115, 4.125, 4.135, 4.145, 4.155, 4.165, 4.175, 4.185, 4.195, 4.205, 4.215, 4.225, 4.235, 4.245, 4.255, 4.265, 4.275, 4.285, 4.295, 4.305, 4.315, 4.325, 4.335, 4.345, 4.355, 4.365, 4.375, 4.385, 4.395, 4.405, 4.415, 4.425, 4.435, 4.445, 4.455, 4.465, 4.475, 4.485, 4.495, 4.505, 4.515, 4.525, 4.535, 4.545, 4.555, 4.565, 4.575, 4.585, 4.595, 4.605, 4.615, 4.625, 4.635, 4.645, 4.655, 4.665, 4.675, 4.685, 4.695, 4.705, 4.715, 4.725, 4.735, 4.745, 4.755, 4.765, 4.775, 4.785, 4.795, 4.805, 4.815, 4.825, 4.835, 4.845, 4.855, 4.865, 4.875, 4.885, 4.895, 4.905, 4.915, 4.925, 4.935, 4.945, 4.955, 4.965, 4.975, 4.985, 4.995, 5.005, 5.015, 5.025, 5.035, 5.045, 5.055, 5.065, 5.075, 5.085, 5.095, 5.105, 5.115, 5.125, 5.135, 5.145, 5.155, 5.165, 5.175, 5.185, 5.195, 5.205, 5.215, 5.225, 5.235, 5.245, 5.255, 5.265, 5.275, 5.285, 5.295, 5.305, 5.315, 5.325, 5.335, 5.345, 5.355, 5.365, 5.375, 5.385, 5.395, 5.405, 5.415, 5.425, 5.435, 5.445, 5.455, 5.465, 5.475, 5.485, 5.495, 5.505, 5.515, 5.525, 5.535, 5.545, 5.555, 5.565, 5.575, 5.585, 5.595, 5.605, 5.615, 5.625, 5.635, 5.645, 5.655, 5.665, 5.675, 5.685, 5.695, 5.705, 5.715, 5.725, 5.735, 5.745, 5.755, 5.765, 5.775, 5.785, 5.795, 5.805, 5.815, 5.825, 5.835, 5.845, 5.855, 5.865, 5.875, 5.885, 5.895, 5.905, 5.915, 5.925, 5.935, 5.945, 5.955, 5.965, 5.975, 5.985, 5.995, 6.005, 6.015, 6.025, 6.035, 6.045, 6.055, 6.065, 6.075, 6.085, 6.095, 6.105, 6.115, 6.125, 6.135, 6.145, 6.155, 6.165, 6.175, 6.185, 6.195, 6.205, 6.215, 6.225, 6.235, 6.245, 6.255, 6.265, 6.275, 6.285, 6.295, 6.305, 6.315, 6.325, 6.335, 6.345, 6.355, 6.365, 6.375, 6.385, 6.395, 6.405, 6.415, 6.425, 6.435, 6.445, 6.455, 6.465, 6.475, 6.485, 6.495, 6.505, 6.515, 6.525, 6.535, 6.545, 6.555, 6.565, 6.575, 6.585, 6.595, 6.605, 6.615, 6.625, 6.635, 6.645, 6.655, 6.665, 6.675, 6.685, 6.695, 6.705, 6.715, 6.725, 6.735, 6.745, 6.755, 6.765, 6.775, 6.785, 6.795, 6.805, 6.815, 6.825, 6.835, 6.845, 6.855, 6.865, 6.875, 6.885, 6.895, 6.905, 6.915, 6.925, 6.935, 6.945, 6.955, 6.965, 6.975, 6.985, 6.995, 7.005, 7.015, 7.025, 7.035, 7.045, 7.055, 7.065, 7.075, 7.085, 7.095, 7.105, 7.115, 7.125, 7.135, 7.145, 7.155, 7.165, 7.175, 7.185, 7.195, 7.205, 7.215, 7.225, 7.235, 7.245, 7.255, 7.265, 7.275, 7.285, 7.295, 7.305, 7.315, 7.325, 7.335, 7.345, 7.355, 7.365, 7.375, 7.385, 7.395, 7.405, 7.415, 7.425, 7.435, 7.445, 7.455, 7.465, 7.475, 7.485, 7.495, 7.505, 7.515, 7.525, 7.535, 7.545, 7.555, 7.565, 7.575, 7.585, 7.595, 7.605, 7.615, 7.625, 7.635, 7.645, 7.655, 7.665, 7.675, 7.685, 7.695, 7.705, 7.715, 7.725, 7.735, 7.745, 7.755, 7.765, 7.775, 7.785, 7.795, 7.805, 7.815, 7.825, 7.835, 7.845, 7.855, 7.865, 7.875, 7.885, 7.895, 7.905, 7.915, 7.925, 7.935, 7.945, 7.955, 7.965, 7.975, 7.985, 7.995, 8.005, 8.015, 8.025, 8.035, 8.045, 8.055, 8.065, 8.075, 8.085, 8.095, 8.105, 8.115, 8.125, 8.135, 8.145, 8.155, 8.165, 8.175, 8.185, 8.195, 8.205, 8.215, 8.225, 8.235, 8.245, 8.255, 8.265, 8.275, 8.285, 8.295, 8.305, 8.315, 8.325, 8.335, 8.345, 8.355, 8.365, 8.375, 8.385, 8.395, 8.405, 8.415, 8.425, 8.435, 8.445, 8.455, 8.465, 8.475, 8.485, 8.495, 8.505, 8.515, 8.525, 8.535, 8.545, 8.555, 8.565, 8.575, 8.585, 8.595, 8.605, 8.615, 8.625, 8.635, 8.655, 8.665, 8.675, 8.685, 8.695, 8.705, 8.715, 8.725, 8.735, 8.745, 8.755, 8.765, 8.775, 8.785, 8.795, 8.805, 8.815, 8.825, 8.835, 8.845, 8.855, 8.865, 8.875, 8.885, 8.895, 8.905, 8.915, 8.925, 8.935, 8.945, 8.955, 8.965, 8.975, 8.985, 8.995, 9.005, 9.015, 9.025, 9.035, 9.045, 9.055, 9.065, 9.075, 9.085, 9.095, 9.105, 9.115, 9.125, 9.135, 9.145, 9.155, 9.165, 9.185, 9.195, 9.205, 9.215, 9.225, 9.235, 9.245, 9.255, 9.265, 9.275, 9.285, 9.295, 9.305, 9.315, 9.325, 9.335, 9.345, 9.355, 9.365, 9.375, 9.385, 9.395, 9.405, 9.415, 9.425, 9.435, 9.445, 9.455, 9.465, 9.475, 9.485, 9.495, 9.505, 9.515, 9.525, 9.535, 9.545, 9.555, 9.565, 9.575, 9.585, 9.595, 9.605, 9.615, 9.625, 9.635, 9.645, 9.655, 9.665, 9.675, 9.685, 9.695, 9.705, 9.715, 9.725, 9.735, 9.745, 9.755, 9.765, 9.775, 9.785, 9.795, 9.805, 9.815, 9.825, 9.835, 9.845, 9.855, 9.865, 9.875, 9.885, 9.895, 9.905, 9.915, 9.925, 9.935, 9.945, 9.955, 9.965, 9.975, 9.985, 9.995, 10.005, 10.015, 10.025, 10.035, 10.045, 10.055, 10.065, 10.075, 10.085, 10.095, 10.105, 10.115, 10.125, 10.135, 10.145, 10.155, 10.165, 10.175, 10.185, 10.195, 10.215, 10.225, 10.235, 10.245, 10.255, 10.265, 10.275, 10.285, 10.295, 10.305, 10.315, 10.325, 10.335, 10.345, 10.355, 10.365, 10.375, 10.385, 10.395, 10.405, 10.415, 10.425, 10.435, 10.445, 10.455, 10.465, 10.475, 10.485, 10.495, 10.505, 10.515, 10.525, 10.535, 10.545, 10.555, 10.565, 10.575, 10.585, 10.595, 10.605, 10.615, 10.625, 10.635, 10.645, 10.655, 10.665, 10.675, 10.685, 10.695, 10.705, 10.715, 10.725, 10.735, 10.745, 10.755, 10.765, 10.775, 10.785, 10.795, 10.805, 10.815, 10.825, 10.835, 10.845, 10.855, 10.865, 10.875, 10.885, 10.895, 10.905, 10.915, 10.925, 10.935, 10.945, 10.955, 10.965, 10.975, 10.985, 10.995, 11.005, 11.015, 11.025, 11.035, 11.045, 11.055, 11.065, 11.075, 11.085, 11.095, 11.105, 11.115, 11.125, 11.135, 11.145, 11.155, 11.165, 11.185, 11.195, 11.215, 11.225, 11.235, 11.245, 11.255, 11.265, 11.275, 11.285, 11.295, 11.305, 11.315, 11.325, 11.335, 11.345, 11.355, 11.365, 11.375, 11.385, 11.395, 11.405, 11.415, 11.425, 11.435, 11.445, 11.455, 11.465, 11.475, 11.485, 11.495, 11.505, 11.515, 11.525, 11.535, 11.545, 11.555, 11.565, 11.575, 11.585, 11.595, 11.605, 11.615, 11.625, 11.635, 11.645, 11.655, 11.665, 11.675, 11.685, 11.695, 11.705, 11.715, 11.725, 11.735, 11.745, 11.755, 11.765, 11.775, 11.785, 11.795, 11.805, 11.815, 11.825, 11.835, 11.845, 11.855, 11.865, 11.875, 11.885, 11.895, 11.905, 11.915, 11.925, 11.935, 11.945, 11.955, 11.965, 11.975, 11.985, 11.995, 12.005, 12.015, 12.025, 12.035, 12.045, 12.055, 12.065, 12.075, 12.085, 12.095, 12.105, 12.115, 12.125, 12.135, 12.145, 12.155, 12.165, 12.175, 12.185, 12.195, 12.205, 12.215, 12.225, 12.235, 12.245, 12.255, 12.265, 12.275, 12.285, 12.295, 12.305, 12.315, 12.325, 12.335, 12.345, 12.355, 12.365, 12.375, 12.385, 12.395, 12.405, 12.415, 12.435, 12.445, 12.455, 12.465, 12.475, 12.485, 12.495, 12.505, 12.515, 12.525, 12.535, 12.545, 12.555, 12.565, 12.575, 12.585, 12.595, 12.605, 12.615, 12.625, 12.635, 12.645, 12.655, 12.665, 12.675, 12.685, 12.695, 12.705, 12.715, 12.725, 12.735, 12.745, 12.755, 12.765, 12.775, 12.785, 12.795, 12.805, 12.815, 12.825, 12.835, 12.845, 12.855, 12.865, 12.875, 12.885, 12.895, 12.905, 12.915, 12.925, 12.935, 12.945, 12.955, 12.965, 12.975, 12.985, 12.995, 13.005, 13.015, 13.025, 13.035, 13.045, 13.055, 13.065, 13.075, 13.085, 13.095, 13.105, 13.115, 13.125, 13.135, 13.145, 13.155, 13.165, 13.175, 13.185, 13.195, 13.205, 13.215, 13.225, 13.235, 13.245, 13.255, 13.265, 13.275, 13.285, 13.295, 13.305, 13.315, 13.325, 13.335, 13.345, 13.355, 13.365, 13.375, 13.385, 13.395, 13.405, 13.415, 13.425, 13.435, 13.445, 13.455, 13.465, 13.475, 13.485, 13.495, 13.505, 13.515, 13.525, 13.545, 13.555, 13.565, 13.585, 13.595, 13.605, 13.615, 13.625, 13.635, 13.645, 13.655, 13.665, 13.675, 13.685, 13.705, 13.725, 13.735, 13.745, 13.755, 13.765, 13.775, 13.785, 13.795, 13.815, 13.825, 13.835, 13.845, 13.855, 13.865, 13.875, 13.885, 13.895, 13.905, 13.915, 13.925, 13.935, 13.945, 13.955, 13.965, 13.985, 13.995, 14.005, 14.025, 14.035, 14.045, 14.055, 14.065, 14.085, 14.095, 14.105, 14.115, 14.125, 14.135, 14.145, 14.155, 14.165, 14.175, 14.185, 14.195, 14.205, 14.215, 14.225, 14.235, 14.245, 14.255, 14.265, 14.275, 14.285, 14.295, 14.305, 14.315, 14.325, 14.335, 14.345, 14.355, 14.365, 14.375, 14.385, 14.395, 14.405, 14.415, 14.425, 14.435, 14.445, 14.455, 14.465, 14.475, 14.485, 14.495, 14.505, 14.515, 14.525, 14.535, 14.545, 14.555, 14.565, 14.575, 14.585, 14.595, 14.605, 14.615, 14.625, 14.635, 14.645, 14.655, 14.665, 14.675, 14.685, 14.695, 14.705, 14.715, 14.725, 14.735, 14.745, 14.755, 14.765, 14.775, 14.785, 14.795, 14.805, 14.815, 14.825, 14.835, 14.845, 14.855, 14.865, 14.875, 14.885, 14.895, 14.905, 14.915, 14.925, 14.935, 14.945, 14.955, 14.965, 14.975, 14.985, 14.995, 15.005, 15.015, 15.025, 15.035, 15.045, 15.055, 15.065, 15.075, 15.085, 15.095, 15.105, 15.115, 15.125, 15.135, 15.145, 15.155, 15.165, 15.175, 15.185, 15.195, 15.205, 15.215, 15.225, 15.235, 15.245, 15.255, 15.265, 15.275, 15.285, 15.295, 15.305, 15.315, 15.325, 15.335, 15.345, 15.355, 15.365, 15.375, 15.385, 15.395, 15.405, 15.415, 15.425, 15.435, 15.445, 15.455, 15.465, 15.475, 15.485, 15.495, 15.505, 15.515, 15.525, 15.535, 15.545, 15.555, 15.565, 15.575, 15.585, 15.595, 15.605, 15.615, 15.625, 15.635, 15.645, 15.655, 15.665, 15.675, 15.685, 15.695, 15.705, 15.715, 15.725, 15.735, 15.745, 15.755, 15.765, 15.775, 15.785, 15.795, 15.805, 15.815, 15.825, 15.835, 15.845, 15.855, 15.865, 15.875, 15.885, 15.895, 15.905, 15.915, 15.925, 15.935, 15.945, 15.955, 15.965, 15.975, 15.985, 15.995, 16.005, 16.015, 16.025, 16.035, 16.045, 16.055, 16.075, 16.095, 16.105, 16.115, 16.125, 16.135, 16.145, 16.155, 16.165, 16.175, 16.185, 16.195, 16.205, 16.215, 16.225, 16.235, 16.245, 16.255, 16.265, 16.275, 16.285, 16.295, 16.305, 16.315, 16.325, 16.345, 16.355, 16.365, 16.375, 16.385, 16.395, 16.405, 16.415, 16.425, 16.435, 16.445, 16.465, 16.475, 16.485, 16.495, 16.505, 16.515, 16.525, 16.535, 16.545, 16.555, 16.565, 16.575, 16.585, 16.595, 16.605, 16.615, 16.625, 16.635, 16.645, 16.655, 16.665, 16.675, 16.685, 16.695, 16.705, 16.715, 16.725, 16.735, 16.745, 16.755, 16.765, 16.775, 16.785, 16.795, 16.805, 16.815, 16.825, 16.835, 16.845, 16.855, 16.865, 16.875, 16.885, 16.895, 16.905, 16.925, 16.935, 16.945, 16.965, 16.975, 16.985, 16.995, 17.005, 17.015, 17.025, 17.035, 17.045, 17.055, 17.065, 17.075, 17.085, 17.095, 17.105, 17.115, 17.125, 17.135, 17.145, 17.155, 17.165, 17.175, 17.185, 17.195, 17.205, 17.215, 17.225, 17.235, 17.245, 17.255, 17.265, 17.275, 17.285, 17.295, 17.305, 17.315, 17.325, 17.335, 17.345, 17.355, 17.365, 17.375, 17.385, 17.395, 17.415, 17.425, 17.435, 17.445, 17.455, 17.465, 17.485, 17.495, 17.505, 17.515, 17.525, 17.535, 17.545, 17.555, 17.565, 17.575, 17.585, 17.595, 17.605, 17.615, 17.625, 17.635, 17.645, 17.655, 17.665, 17.675, 17.685, 17.695, 17.705, 17.715, 17.725, 17.735, 17.745, 17.755, 17.765, 17.775, 17.785, 17.795, 17.805, 17.815, 17.825, 17.835, 17.845, 17.855, 17.865, 17.875, 17.885, 17.895, 17.905, 17.915, 17.925, 17.935, 17.945, 17.955, 17.965, 17.975, 17.985, 17.995, 18.005, 18.015, 18.025, 18.035, 18.045, 18.055, 18.065, 18.075, 18.085, 18.095, 18.105, 18.115, 18.125, 18.135, 18.145, 18.155, 18.165, 18.175, 18.185, 18.195, 18.205, 18.215, 18.225, 18.235, 18.245, 18.255, 18.275, 18.285, 18.295, 18.305, 18.315, 18.325, 18.335, 18.345, 18.355, 18.365, 18.375, 18.385, 18.395, 18.405, 18.415, 18.425, 18.435, 18.445, 18.455, 18.465, 18.475, 18.485, 18.495, 18.505, 18.515, 18.525, 18.535, 18.545, 18.555, 18.565, 18.575, 18.585, 18.595, 18.605, 18.615, 18.625, 18.635, 18.645, 18.655, 18.665, 18.675, 18.685, 18.695, 18.705, 18.715, 18.725, 18.735, 18.745, 18.755, 18.765, 18.775, 18.785, 18.795, 18.805, 18.815, 18.825, 18.835, 18.845, 18.855, 18.865, 18.875, 18.885, 18.895, 18.905, 18.915, 18.925, 18.935, 18.945, 18.955, 18.965, 18.975, 18.985, 18.995, 19.005, 19.025, 19.035, 19.045, 19.055, 19.065, 19.075, 19.085, 19.095, 19.105, 19.115, 19.125, 19.135, 19.145, 19.155, 19.165, 19.175, 19.195, 19.205, 19.215, 19.225, 19.235, 19.245, 19.255, 19.265, 19.275, 19.285, 19.295, 19.315, 19.325, 19.335, 19.345, 19.355, 19.365, 19.375, 19.385, 19.395, 19.405, 19.415, 19.425, 19.435, 19.445, 19.455, 19.465, 19.475, 19.485, 19.495, 19.505, 19.515, 19.525, 19.535, 19.545, 19.555, 19.565, 19.575, 19.585, 19.595, 19.605, 19.615, 19.625, 19.635, 19.645, 19.655, 19.665, 19.675, 19.685, 19.695, 19.705, 19.715, 19.725, 19.735, 19.745, 19.755, 19.765, 19.775, 19.785, 19.795, 19.805, 19.825, 19.835, 19.845, 19.855, 19.865, 19.875, 19.885, 19.895, 19.905, 19.915, 19.925, 19.935, 19.945, 19.965, 19.975, 19.985, 19.995] }, { "type": "double", "attributes": {}, "value": [1006.93139062, 2255.5945651, 2821.29774492, 2974.51058304, 2898.55355036, 2721.2605914, 2629.02536902, 2584.80953272, 2434.17276468, 2419.66359299, 2404.41611197, 2272.91414509, 2183.75914602, 2197.73415039, 2229.61916748, 2258.15153705, 2307.0620084, 2176.46963112, 2201.07714567, 2150.95355656, 2086.89784338, 2086.86721521, 2116.96986429, 1998.97437176, 1941.00017693, 1970.92477558, 1972.92465847, 1979.95677781, 1970.58478123, 1909.15719444, 1839.28030511, 1817.81648285, 1716.19655492, 1751.6128144, 1842.83808394, 1862.23986547, 1821.98991796, 1695.97880961, 1603.42150395, 1575.91941133, 1577.64133773, 1543.68842808, 1513.09640275, 1630.97201886, 1589.86671476, 1453.60918076, 1498.47389507, 1451.40428005, 1362.17843503, 1460.92872407, 1465.24141571, 1375.02057883, 1324.86791913, 1299.55041313, 1244.40662789, 1266.01753098, 1283.34951397, 1165.47423032, 1153.07228599, 1159.5839904, 1134.18395426, 1129.20397111, 1094.59655566, 1096.13383452, 1059.83988671, 1001.70400534, 1031.1172553, 1056.14081974, 970.81171717, 979.44900845, 1006.59682017, 939.04129585, 895.4610627, 931.7072323, 937.86632017, 918.30665285, 877.30066428, 840.62092342, 886.882833, 866.74800479, 822.88895657, 767.22388289, 793.94441653, 771.30362713, 761.13986958, 847.11795378, 687.47683227, 724.94353022, 674.63412752, 684.42716338, 620.38065417, 665.68511849, 686.87239107, 676.90930371, 676.96263967, 639.28248604, 644.07227705, 600.5438358, 605.40353651, 623.4711359, 628.83342368, 594.61106491, 566.33782465, 561.30939224, 562.03314439, 576.44818539, 541.53866834, 523.17940241, 515.77501152, 537.86585306, 548.07804405, 479.06259045, 527.69376846, 444.20274207, 476.85169723, 420.9500586, 365.45612007, 476.05085574, 440.48265324, 467.11068811, 473.41286427, 414.98566029, 366.52945994, 383.82477311, 355.75666946, 343.89476051, 374.65396722, 390.34474891, 391.76473537, 377.49885361, 344.66426579, 356.16772404, 341.46912341, 338.1350468, 363.81916454, 333.09898784, 306.82653035, 332.22596652, 320.86486143, 296.51674585, 309.85488664, 320.13438622, 316.14918952, 308.63639585, 315.12152294, 304.98172522, 270.19294228, 247.92562267, 238.798959, 262.59129532, 261.88293324, 262.54294476, 237.57775949, 238.08242962, 228.43970349, 212.45029974, 262.01524601, 228.42316556, 304.20867379, 247.82073231, 237.53801485, 241.41439518, 197.25855828, 180.33667944, 220.74916337, 183.00035548, 205.0605885, 189.99550636, 224.13681638, 220.92225781, 179.61573377, 138.86754715, 189.14859118, 160.21781544, 175.77309112, 194.54852534, 194.11770829, 165.42726444, 169.80693089, 181.81755124, 163.97541449, 174.34458319, 180.52248979, 169.93159613, 161.24689167, 148.11025567, 136.52507257, 155.95399598, 164.2661116, 138.47506731, 132.06370828, 134.5592411, 134.5727988, 116.80217474, 118.88926625, 152.41306756, 130.72385963, 141.21005803, 131.73211233, 139.07525047, 94.99961354, 113.68857476, 156.01371896, 121.57267194, 105.96432846, 129.90856078, 131.088169, 99.97657538, 114.09090971, 98.88120698, 101.32317536, 106.16094941, 104.8315921, 116.24695845, 102.58543069, 79.66748044, 94.62820253, 92.45874478, 81.09414747, 114.13132106, 89.32958681, 115.25330853, 100.49638697, 81.14199944, 93.44004186, 98.31858783, 98.71396421, 106.44533364, 95.61474598, 105.35698173, 96.00382363, 101.00756196, 99.51756034, 68.5967027, 86.22754047, 72.94037376, 68.6364791, 89.14479129, 94.22068079, 80.67540404, 84.08894933, 66.54480484, 70.77425872, 86.20001661, 69.96541839, 70.83790767, 91.80447935, 90.12736348, 72.11881274, 66.91493919, 71.45379157, 72.51240913, 67.41427688, 65.28108199, 68.21470446, 70.68784574, 66.7767588, 60.41917418, 60.11058586, 63.59761758, 57.94783098, 52.22501203, 62.64374995, 74.34413707, 56.50697989, 42.69003574, 52.05568669, 45.93938865, 65.89858291, 61.85471672, 49.37051123, 51.16333483, 50.74340094, 44.39357798, 31.54539886, 38.76246558, 44.67956473, 45.20292165, 31.79237754, 59.9396215, 51.08493186, 41.60511456, 54.92798428, 38.77184743, 50.34419183, 35.2467978, 38.59767705, 33.94389469, 60.29325504, 49.41488807, 39.80194188, 59.05516638, 52.72747473, 39.50569513, 37.36583922, 79.51539049, 41.57737071, 32.75671456, 44.3060465, 38.80512238, 31.96421747, 50.21714554, 69.87371277, 45.22237678, 32.57918932, 39.66898283, 36.17133514, 29.47700632, 28.73783398, 36.26927773, 27.27218805, 40.84500299, 28.29967982, 31.32330657, 31.90497686, 27.69817549, 37.18422895, 28.53021413, 33.07491776, 27.90334757, 13.57006767, 21.68159312, 41.65705335, 35.01756635, 39.34180951, 23.4459182, 27.5854685, 28.13314072, 33.175923, 32.98139992, 39.6443025, 34.78210939, 25.88151437, 19.94463873, 20.70459136, 19.71647735, 17.85315603, 18.41770244, 20.47509984, 31.2590213, 32.0635958, 21.79785512, 28.62353812, 32.51473303, 24.23777742, 34.57835367, 39.82303379, 26.20836732, 23.28052953, 15.16698488, 11.57237068, 19.9975804, 24.52469924, 22.24454625, 24.75545504, 30.05176218, 23.09234046, 18.25259226, 25.03665746, 21.27720165, 23.63162613, 15.7340077, 22.25162782, 28.11574252, 22.78242767, 13.89660316, 16.15328033, 25.38840543, 27.11452385, 16.30278618, 14.33238159, 13.15530172, 14.1402129, 16.99898009, 23.06677154, 15.41975556, 16.36440784, 26.17944376, 15.01304881, 13.67743685, 27.00577601, 31.35660324, 10.6038284, 15.18403346, 17.02215109, 16.00789218, 8.87126226, 16.09826653, 6.417813, 48.14470667, 32.42844628, 47.81727335, 14.84919621, 31.98033354, 23.01341644, 25.47954174, 20.15641447, 26.92474274, 11.26665197, 34.38452633, 18.86448067, 17.88155129, 17.88191709, 11.99312629, 14.8260728, 13.93889451, 28.92699963, 9.46680134, 13.57297218, 14.83846695, 25.72103277, 25.91188058, 7.8038238, 11.32434533, 27.10815512, 15.14755118, 15.64748953, 3.69077385, 10.59152486, 20.27477773, 14.89728001, 7.76762801, 10.89981534, 19.66723935, 15.11072924, 17.817507, 10.37205485, 14.12662224, 16.67954791, 11.17780396, 12.1682651, 15.85846651, 19.82392975, 12.8687985, 10.93445259, 14.38991787, 28.06008743, 22.4430823, 9.29468674, 10.75053634, 12.22447855, 9.78888037, 14.3362233, 20.48157023, 13.7931876, 12.20669155, 18.1978886, 28.38802358, 18.15115247, 15.85753564, 19.10737319, 15.97830744, 13.30929758, 21.75215051, 17.58258298, 11.93268204, 11.93287195, 11.35586963, 15.31201508, 20.43533761, 32.8557405, 26.34669878, 16.94457226, 13.1352954, 13.49712056, 11.81496319, 14.43391138, 14.37395061, 5.66084792, 7.29615334, 11.85970876, 8.95598395, 10.31077073, 14.3703922, 17.35366414, 12.85254398, 9.11532374, 14.50541565, 11.63667667, 10.75777743, 19.89532347, 13.78347997, 7.95835666, 8.67596714, 10.66189295, 8.61091657, 5.31785698, 8.29848415, 16.2210183, 21.88122642, 23.07016556, 16.4218513, 15.3408242, 6.30683907, 5.56174359, 13.9171593, 7.74775195, 19.57140667, 13.65964132, 14.99631333, 27.07093672, 15.18406406, 14.44741238, 11.18915053, 12.40274674, 14.59461145, 16.16887829, 11.90818595, 7.3618348, 11.41103784, 17.55261641, 4.36677948, 18.57344733, 11.01601052, 5.11670631, 17.21439199, 21.32701421, 8.89663168, 5.24349507, 7.23285758, 7.65817753, 3.86706932, 19.00466696, 12.79024844, 8.26439634, 26.97291612, 11.10824864, 6.75590851, 19.12461302, 8.18399699, 10.86674987, 10.20311658, 13.62468804, 10.16073011, 14.17138432, 18.13600733, 8.03951653, 10.02086509, 12.09249175, 17.84137382, 14.6917828, 6.03729803, 14.97211723, 23.88705929, 8.02307634, 12.86277732, 11.96513367, 12.91713824, 7.10395806, 9.82593503, 7.07710777, 5.06097509, 2.09421887, 6.45710845, 1.1342444, 6.84469946, 12.45774476, 11.10918221, 10.04376379, 24.42269002, 5.91938064, 9.23598385, 9.95766246, 15.88129555, 14.28678246, 9.50061587, 8.96226901, 11.46572347, 7.55609153, 12.51799614, 9.62435634, 15.96580513, 1.64110375, 3.10983544, 13.58460194, 12.9085751, 15.81379765, 9.27516116, 7.96742812, 12.37571595, 16.22689695, 28.98241497, 29.16182259, 23.99549706, 8.26758915, 8.10894913, 15.04551051, 19.38502054, 23.47520164, 11.80938901, 12.34689416, 14.65391281, 10.37808856, 11.62966241, 10.00221376, 8.96482282, 5.97220384, 20.36215231, 19.35666564, 14.6100522, 3.8821181, 4.9975787, 14.07873768, 7.92203373, 4.98086991, 3.58929576, 12.36989488, 12.66113143, 11.80533628, 11.62358162, 12.77931591, 8.55484764, 5.97747204, 9.04713715, 9.40196737, 18.31458743, 19.96473253, 7.70524011, 10.99352004, 16.93369551, 13.79324621, 11.19720809, 8.1896521, 5.80720687, 4.98174484, 4.98178712, 7.91205652, 9.67140917, 5.56718461, 5.6856932, 8.4619904, 9.91817865, 10.45369791, 4.51716478, 2.42724933, 7.4465132, 12.88581293, 9.26071498, 9.9836194, 8.96825756, 6.20054562, 6.77403646, 9.184781, 5.00286361, 6.42443975, 8.88031998, 7.10129052, 6.38482309, 4.71464654, 6.36827451, 10.4395881, 16.27648633, 13.70605037, 14.14041519, 12.15190355, 10.57432568, 12.41118648, 6.18816345, 3.54854209, 13.93343941, 2.59103773, 2.29546987, 2.60163335, 3.43482797, 12.12230228, 12.51036569, 8.67912273, 13.78275012, 7.27486384, 7.2969949, 5.2882559, 3.65895068, 3.47370093, 6.56547211, 13.98181056, 11.32216306, 3.68507817, 3.75529476, 6.38441818, 5.62924558, 9.35592829, 13.16386245, 7.77044562, 7.65646962, 20.49504067, 5.44857014, 3.41134113, 2.90212249, 9.6229796, 8.00904391, 19.97994977, 9.53137973, 8.48914873, 10.05677098, 8.04487159, 14.95333916, 11.8325701, 5.16760164, 15.31748274, 7.71856374, 12.22800792, 7.12398505, 2.74063724, 16.1193676, 9.86369352, 3.51664783, 9.83420958, 9.09179358, 9.96976533, 7.63725429, 1.3744324, 16.85784816, 9.74620669, 8.29635463, 11.03398117, 5.19515849, 8.24981811, 12.03988223, 12.80244846, 10.89531099, 9.53323988, 5.16457234, 9.15865121, 12.72151097, 8.80669676, 5.81183276, 2.9465104, 2.11977122, 12.96236135, 12.60810715, 4.01926418, 6.07834204, 17.86106156, 10.90906697, 3.9922913, 11.91769037, 4.02459451, 8.8826606, 6.02480177, 5.00559265, 4.98589161, 8.81454893, 12.79723856, 9.10629294, 13.6918984, 16.79372469, 6.32235043, 2.12418986, 3.82162525, 11.99040902, 2.27651522, 15.22049419, 6.52954947, 18.02878367, 9.63104858, 8.06572087, 9.75899788, 13.49325348, 4.55479273, 15.20881125, 4.73952933, 3.98920628, 6.5156689, 6.98119069, 2.35331851, 12.01796301, 10.65497828, 8.24105926, 5.3492492, 7.42294289, 21.5264382, 15.43829578, 1.54789237, 3.78801294, 6.5821031, 4.41087905, 6.29965999, 12.2577559, 7.04295641, 7.54068816, 8.7669082, 3.74803634, 5.84763121, 5.35852052, 6.48882609, 2.63430017, 6.38845938, 7.39829936, 9.86812192, 13.89372745, 6.51339732, 3.39516005, 7.36977274, 9.97476884, 18.4787184, 9.55785538, 4.6358421, 6.60756521, 8.68994064, 7.4927008, 2.85010909, 4.86240934, 8.34036181, 12.85567426, 8.78508997, 6.98277336, 2.94009557, 7.95386162, 16.29723087, 6.35685229, 3.99025765, 2.50797879, 8.93341974, 9.78838722, 12.02767062, 6.44971997, 6.75743806, 7.63387324, 9.86754675, 8.49058802, 6.33373686, 4.63768163, 5.14198476, 3.8914437, 5.48279073, 5.21768638, 3.99057406, 7.75827502, 7.89225248, 4.69876166, 2.64541367, 3.00167299, 9.30565061, 10.12718156, 2.27152521, 4.34019611, 3.01195401, 3.66659352, 16.30849456, 12.04955046, 3.49155763, 4.2740067, 3.74691495, 2.90447237, 2.74935029, 3.25405655, 8.27616586, 11.29911081, 4.3072533, 1.99550405, 3.19627822, 5.92316998, 3.70383825, 5.49185059, 16.83857857, 13.09982667, 5.2374159, 2.45708265, 3.10663259, 5.86182257, 4.66916657, 8.13374535, 15.47086923, 7.44097242, 0, 9.02047906, 6.46575037, 4.98918674, 3.9833593, 2.99353834, 4.57811975, 10.749705, 9.7328054, 3.39017268, 2.3642641, 2.99361651, 3.6917579, 6.33627071, 10.73030836, 7.55556828, 3.66344865, 4.57212164, 4.95882109, 5.63469383, 3.99164239, 3.58194379, 5.5870453, 13.42459651, 9.19820876, 4.83658814, 2.30746594, 3.8265621, 5.61716147, 6.34487985, 6.60397888, 4.50400638, 8.40777876, 4.75753083, 3.95346007, 6.26338429, 6.60753619, 10.09451715, 5.8621747, 4.27759355, 3.7697563, 2.78244833, 6.27018013, 8.19025855, 12.78071863, 11.50061094, 5.68582796, 8.08998398, 22.59736918, 9.4025413, 2.74734752, 1.60725168, 0, 19.63075894, 11.86913196, 13.19040594, 9.82671376, 9.11679486, 4.31402182, 10.98723409, 4.04250624, 2.1879951, 3.61615958, 5.80260661, 4.5072555, 14.19089673, 3.99239703, 3.99241226, 3.99242747, 4.172591, 5.1704703, 7.73775648, 18.37490481, 7.3168376, 8.35063212, 4.93293271, 1.99627396, 2.86917744, 14.27479074, 6.60866746, 9.34879211, 4.25236975, 6.56672353, 9.76706271, 5.51831106, 9.04946548, 5.1180013, 5.84400891, 4.66786121, 3.19611233, 4.99094234, 5.19760408, 7.51271601, 11.88504054, 4.91623119, 1.27627763, 10.92664974, 19.46642784, 3.14577233, 5.21394328, 7.89092905, 6.49620409, 2.99469427, 3.16370246, 5.90725288, 5.05748896, 6.24504538, 10.27650376, 4.09484775, 6.32053929, 14.46230253, 8.15594379, 11.48116344, 5.22865079, 13.72056034, 9.16216188, 14.64879411, 8.08916176, 11.84326961, 7.9863239, 7.75232119, 2.06236372, 11.92896617, 9.02236982, 12.92761888, 7.90949267, 1.00119112, 8.94475492, 8.98488849, 9.97407816, 8.99636572, 7.01538902, 17.65519792, 6.13683048, 1.044754, 15.64729579, 10.15442297, 10.94496465, 5.1460995, 2.07490898, 9.28273429, 10.93132989, 9.07923073, 5.15621238, 4.04588015, 13.80301896, 7.343439, 4.14901767, 9.35049466, 5.25760423, 10.32667577, 1.21341409, 15.49756393, 4.60023113, 0, 3.9936491, 7.44792459, 6.17265965, 5.9905306, 7.73726377, 1.26508165, 15.90870108, 5.99812544, 5.85722135, 3.27036994, 10.00598031, 11.98136168, 3.61879404, 3.8365941, 8.00343447, 5.43968355, 8.23158969, 8.98618801, 4.53102676, 10.06352835, 6.70272767, 7.61713522, 7.14827103, 8.60718667, 11.39449555, 4.85598184, 7.75929476, 2.6345965, 7.38529828, 6.60349038, 10.47656821, 8.65182301, 6.3459103, 7.53460646, 9.53589492, 5.77270817, 8.61706733, 6.68915391, 7.50075601, 3.72433866, 1.27872764, 0.99853736, 2.89814859, 6.78992745, 8.7388824, 6.60558791, 10.11923555, 6.19777579, 4.99278882, 7.74447711, 7.45492227, 10.41950484, 11.98283164, 12.708433, 7.37455798, 1.62486826, 8.12285042, 9.08784938, 2.8397134, 6.32206312, 11.37198795, 13.36877183, 7.68148926, 8.58338483, 14.48289397, 6.18711656, 5.89186686, 6.28351157, 3.71801304, 5.86776613, 7.9889615, 4.1032745, 17.5602595, 24.39546874, 9.7168262, 10.01559965, 6.70000651, 6.81280267, 5.06283229, 9.90527738, 13.95505764, 9.47333465, 5.10537792, 10.87953706, 12.58233443, 7.9568661, 6.99064824, 8.19203445, 5.40109599, 5.14691923, 1.96572935, 6.57609596, 14.85640843, 6.11060366, 2.61711401, 0, 5.69242609, 0, 6.87386256, 3.86808543, 4.82513947, 9.55825185, 11.10207715, 10.14998002, 16.53556635, 4.03222127, 2.49434594, 9.29732326, 7.11955013, 5.88919212, 8.53158593, 7.18010155, 8.78022937, 8.91888534, 8.94512134, 4.35819804, 1.37435202, 5.37109005, 15.49706465, 7.96429033, 5.44276247, 3.81928992, 4.66303143, 5.22877163, 4.4828123, 4.45338644, 4.4770539, 5.92384401, 8.78269639, 8.10543106, 6.91756522, 8.92546694, 12.59309974, 9.88000385, 7.68696118, 8.96439959, 10.09549539, 10.88823977, 8.49917904, 5.75651553, 3.99523215, 4.43441212, 5.43544984, 7.58678806, 9.01615474, 7.51854743, 4.76256007, 6.5439087, 17.41996056, 9.2113505, 4.40928041, 7.59672226, 14.59659882, 14.06119012, 9.0444922, 7.78529446, 10.84593387, 11.04214286, 3.34179767, 1.77916993, 6.70813005, 9.87326774, 5.56351399, 6.04210552, 7.57286409, 8.67262419, 7.75096436, 5.95227567, 6.60897434, 4.3863745, 8.36241102, 7.69718852, 5.59201537, 4.11883088, 6.21129554, 17.03640122, 11.20677938, 8.76570194, 6.61126911, 5.17789009, 6.5629546, 15.6202579, 14.6236543, 12.43236836, 6.57835926, 2.60639233, 2.73171, 5.85647095, 5.01595223, 4.44195141, 12.51065897, 3.63618546, 2.09694305, 1.42331943, 4.78800786, 7.17681074, 2.26923192, 2.64137809, 2.8043804, 4.84838103, 4.31729837, 11.05239346, 7.83439974, 3.75694663, 16.37202685, 10.21777543, 5.04283917, 7.13964227, 5.5685632, 11.72081457, 8.03824742, 5.99383137, 7.23144276, 8.92921565, 4.80306236, 7.41002839, 5.00520475, 2.25878931, 0, 8.12631471, 5.73034124, 3.37262348, 1.47321731, 5.21717708, 6.21611812, 8.35430483, 11.04641462, 4.54000688, 6.99307346, 7.39573968, 6.45710158, 2.70101464, 9.62414294, 13.63804942, 4.18736958, 3.58042018, 1.15097238, 2.29775006, 4.69591433, 9.51383465, 10.11819465, 5.32694061, 5.52247361, 2.52193755, 5.98762194, 3.39687492, 5.29849082, 3.63406203, 9.82114277, 13.98667529, 10.57001916, 10.14641013, 2.70771251, 13.42585639, 14.03755668, 7.27045232, 10.68420025, 21.62711089, 6.20884821, 18.99652509, 8.65173057, 12.12176715, 4.99540234, 4.99541235, 4.67143038, 3.95749223, 21.09968877, 5.8912065, 16.82280167, 6.0295448, 2.37850225, 8.87271713, 6.85561089, 2.25029282, 6.17950944, 7.88363989, 6.99375754, 7.2423496, 10.44914839, 15.7889159, 12.49195104, 4.33098041, 9.6922105, 6.90532387, 5.80317577, 4.21724161, 8.06396651, 9.18166183, 11.65426177, 7.48154094, 3.13532423, 6.29101851, 12.85959465, 10.37132499, 3.99657216, 3.93691352, 2.937559, 2.16593576, 10.77063211, 7.22283451, 14.61773629, 7.9932506, 7.61777825, 2.11109334, 10.84421926, 7.0806693, 10.77881793, 4.99583801, 5.04234983, 8.08036837, 14.69862386, 4.00763216, 4.95143262, 2.03208633, 19.86880062, 6.00215594, 9.99094903, 31.87544631, 9.05138852, 6.01364868, 5.00514391, 6.96489262, 6.9943675, 1.03377017, 0.99919901, 6.69596924, 8.93679292, 8.01940803, 0, 6.69695671, 3.09348946, 0, 9.83484651, 7.11262155, 12.59877979, 14.87759418, 2.22934366, 7.38951668, 1.12998084, 7.03315812, 3.19191401, 15.13799655, 0, 0, 8.81736009, 8.07056418, 4.23485283, 2.12097997, 6.26278458, 3.23706287, 7.29669194, 0, 4.0874806, 3.99703808, 7.43249358, 4.30622825, 9.03549271, 5.40073072, 2.21997561, 2.85882889, 4.70056281, 9.98504503, 10.11178799, 21.46590979, 15.9262407, 3.70386872, 4.66635596, 0, 7.84527006, 7.13015663, 0, 2.41300306, 5.06932347, 7.64540718, 10.45450669, 0, 11.99318978, 3.82949563, 7.46720685, 7.30355846, 6.1588831, 9.13214298, 7.45563675, 7.8035427, 4.53918909, 1.29284337, 4.85101217, 4.44684781, 3.16894373, 2.16320434, 2.76730305, 11.44385846, 10.98927403, 3.83480178, 1.25423337, 3.56867968, 3.33998124, 4.47977067, 7.22257662, 35.04461693, 12.13609568, 3.73126281, 7.61847109, 8.41149429, 4.68833393, 7.44971077, 3.87963344, 8.07997255, 9.43656436, 10.47277043, 1.79341884, 2.2876587, 5.66747722, 4.59971019, 6.07179628, 7.72691247, 2.85682012, 1.19668676, 3.74810149, 3.60149287, 2.22712286, 1.99875355, 4.97930588, 6.25466466, 4.47081115, 3.99753216, 3.99753841, 3.25227824, 8.07755831, 4.46540294, 2.99817248, 6.00462566, 9.35898424, 4.28410315, 7.92648693, 3.42743779, 6.13461506, 7.80117872, 9.56581814, 5.4701879, 6.43913856, 12.30173625, 12.87135946, 5.67576904, 4.65134278, 11.88586448, 6.52553987, 6.89382198, 2.06498913, 7.13314154, 7.81291188, 5.63917528, 4.587215, 4.63048967, 3.57377876, 5.6947335, 3.23904192, 6.04927179, 10.99376809, 8.95212789, 9.22884279, 14.5646024, 8.92109321, 7.2010507, 17.69218541, 6.82458892, 8.9359045, 11.40079182, 4.52632569, 5.94405423, 6.24537986, 7.67207913, 9.99454188, 8.02868279, 12.46892534, 11.79002938, 8.99514035, 5.50621405, 5.10524779, 3.95409899, 4.97938488, 4.22073943, 4.9609028, 6.38603998, 5.99682989, 7.61038036, 2.48497203, 2.55551195, 6.56687498, 2.39907751, 0.99948028, 3.30104138, 9.08519727, 8.15551988, 8.56765142, 13.93865718, 6.55289844, 2.38795456, 1.35655483, 3.6051871, 6.80323202, 7.7276197, 7.87448585, 6.52607903, 7.52597377, 2.57902776, 1.81292145, 4.35924214, 7.00023415, 5.51658012, 5.78633479, 2.64942375, 2.34195812, 3.81826559, 4.67741748, 6.45507173, 8.60228367, 10.91268647, 7.678582, 2.38757663, 3.41082565, 9.3473307, 14.82638321, 16.33503913, 6.30233611, 6.00296873, 6.7087728, 3.16971662, 2.44318413, 4.21915959, 4.91553235, 3.47406372, 4.52753946, 3.81489146, 3.65672297, 7.45986118, 2.96073158, 0.99954558, 3.71557955, 4.32761128, 2.12741265, 4.9977548, 6.21888675, 11.33603767, 6.33724799, 3.04370719, 3.95791219, 3.78245982, 4.51784173, 2.14154324, 1.86074894, 5.44725096, 7.99652488, 7.0418019, 5.5352168, 5.79100002, 6.0429222, 4.99786101, 5.40693316, 5.54581974, 4.54333346, 5.3688764, 4.44783505, 3.5838605, 6.56729451, 5.39261038, 5.56064191, 3.42409269, 4.17258317, 8.38792678, 3.44370597, 2.89595832, 6.33146654, 0, 0, 5.11618053, 5.23930186, 9.35880537, 4.59866087, 1.52380874, 3.34687387, 5.20204456, 5.5217614, 2.57527023, 2.81502966, 5.95136433, 11.00733015, 9.64111726, 4.82022663, 9.33096699, 4.45067779, 1.55867152, 1.7759413, 4.99810493, 4.61951549, 2.45808219, 0.99962474, 2.14214514, 0, 7.54623277, 1.99926194, 1.58310654, 2.23035584, 10.28592748, 8.27939869, 6.9974601, 5.30604802, 4.28362726, 6.31255231, 0, 9.64756864, 2.96450655, 5.87508719, 3.65700446, 3.71367456, 6.55055146, 6.93125491, 6.1636324, 8.98102845, 3.91585459, 1.97777867, 8.60115558, 6.52416109, 9.20779271, 6.20350534, 1.58479591, 5.500082, 7.9500155, 8.28130507, 3.29712354, 3.11905635, 6.42855788, 2.56600673, 5.25089459, 3.70847612, 1.53473698, 3.26620809, 2.03443364, 10.62861793, 4.78310441, 7.42871532, 4.53536902, 3.074722, 7.94174052, 3.70192735, 6.73686455, 3.87008009, 1.39929182, 3.38452692, 2.86265473, 6.30266069, 2.35257447, 4.39446587, 5.11161536, 0, 2.73067557, 7.76308866, 0, 2.74651104, 2.43486103, 4.11196474, 2.60476304, 6.77592191, 5.99825848, 6.91536033, 11.04728689, 8.18964822, 8.00231613, 4.1712919, 2.28960666, 4.77489103, 8.7537791, 5.32800723, 6.79843701, 6.7133206, 9.51304616, 4.99862275, 4.23872003, 2.3537287, 3.76502689, 1.36585102, 6.159761, 7.15907316, 6.78044787, 3.92042656, 14.02844083, 8.93196628, 5.14725311, 6.39713925, 8.20550037, 5.37611253, 9.05401774, 14.83021719, 6.09964002, 17.52701383, 11.13708374, 11.10495842, 7.13165342, 7.4903795, 4.65946028, 3.11864181, 0, 1.23232651, 5.30884472, 8.22636779, 8.92193883, 3.99903586, 0, 8.98445248, 4.53616468, 10.86892204, 4.72348128, 2.86961233, 1.85644979, 1.07541166, 2.59580219, 19.3453236, 2.23061459, 5.99863821, 6.08785042, 7.08670162, 8.6605874, 18.35727512, 11.42019117, 2.72796154, 1.24155679, 12.1934415, 6.07376289, 6.34065684, 2.24480471, 7.6303824, 1.16406355, 8.43981401, 16.49056125, 10.42741794, 5.19565498, 8.38915275, 2.92501854, 2.17315984, 8.14792541, 10.52017617, 5.16154082, 8.94263748, 8.04631197, 9.12554227, 11.39405466, 4.18598479, 10.99784059, 10.54676028, 4.19002522, 11.79997295, 1.06609531, 6.12366094, 10.7229015, 4.86233199, 2.10405357, 12.04697847, 13.75969959, 6.80111745, 2.0529666, 6.88599349, 3.06265028, 9.6482589, 1.03169201, 10.11143376, 25.51606506, 4.02565307, 8.87547618, 1.00777807, 6.00134732, 6.99879114, 6.99879823, 6.00168158, 1.00839287, 5.92854408, 12.91342988, 5.04839727, 16.74763705, 1.04004078, 4.87410467, 6.95760674, 6.01699427, 9.89059059, 18.71803052, 13.12118738, 0, 41.87253188, 3.26762823, 1.03786539, 9.2076037, 22.28742093, 6.32542232, 8.84946023, 10.90376909, 4.18507765, 4.94747428, 8.74588311, 13.69037767, 17.7633113, 5.35667527, 4.99929102, 12.30309557, 10.15543385, 10.93458428, 3.2551359, 2.99958927, 12.63458075, 5.36370533, 4.06254127, 4.9197387, 3.11471862, 6.56527203, 2.20310972, 1.99974171, 4.6421786, 1.14220044, 6.71029618, 12.46517977, 2.35809086, 7.86139498, 3.31733024, 5.62310528, 2.2202513, 1.0694114, 0.99988142, 9.34573169, 6.44031043, 6.88775237, 3.28124439, 3.8775543, 5.73890136, 5.99932849, 14.31976038, 9.61336067, 4.39602534, 1.17812566, 5.54061735, 2.32963557, 2.85301513, 4.68925075, 5.86187444, 2.30412563, 8.80192359, 2.50647968, 6.64091519, 9.70012456, 10.85544996, 7.45493468, 4.32868441, 3.12573236, 6.94012787, 6.25780372, 3.32452285, 2.99972608, 1.18141231, 9.89520817, 3.85174943, 6.12710265, 2.44012392, 0, 6.37553179, 11.09404512, 6.82949247, 3.37333023, 2.99975921, 2.99976195, 2.99976469, 5.30939826, 1.37566132, 1.76553681, 5.57576579, 4.43167089, 1.29225754, 1.7570556, 2.77908658, 0, 13.58611212, 1.69740774, 5.30918842, 10.32428917, 8.52717119, 2.64736984, 2.76160646, 4.50081176, 7.96608991, 6.53083733, 0, 12.96482622, 5.39702157, 6.87841442, 7.99955976, 12.36871635, 13.2159199, 11.42018895, 6.88232863, 12.16970382, 4.34276845, 5.10997423, 8.18731671, 2.84783452, 5.76176508, 4.71859016, 4.73892319, 6.45267399, 11.18017569, 4.29818659, 4.40722165, 2.51168671, 2.71029682, 4.39574031, 7.75256274, 13.16433727, 7.59408296, 12.41175143, 4.64025372, 4.37291955, 2.54717484, 2.69356092, 7.77172061, 4.25526586, 2.99991363, 2.23353017, 3.88929633, 12.64216273, 12.61059634, 3.21905632, 3.86529868, 5.69858009, 3.65328231, 6.57357193, 5.05068808, 3.99992253, 4.68555581, 2.61512522, 6.22645596, 5.24639727, 0, 9.64657033, 10.39489526, 4.93968368, 5.89788965, 5.54551389, 3.51374744, 3.6574955, 4.66286434, 10.61805295, 4.98994891, 5.3474487, 8.30559196, 0, 5.86352788, 6.90838863, 4.30061002] }, { "type": "double", "attributes": {}, "value": [0.00034127, 0.00261455, 0.00634614, 0.01107201, 0.01651949, 0.02251468, 0.02893983, 0.0357115, 0.04276841, 0.05006423, 0.05756306, 0.06523653, 0.07306185, 0.08102039, 0.08909678, 0.09727815, 0.10555363, 0.11391395, 0.12235117, 0.13085838, 0.13942959, 0.14805953, 0.15674357, 0.1654776, 0.17425795, 0.18308136, 0.19194488, 0.20084588, 0.20978196, 0.21875095, 0.22775088, 0.23677993, 0.24583647, 0.25491899, 0.26402608, 0.27315646, 0.28230896, 0.29148247, 0.30067598, 0.30988854, 0.31911927, 0.32836736, 0.33763204, 0.34691259, 0.35620834, 0.36551866, 0.37484296, 0.38418068, 0.39353131, 0.40289435, 0.41226933, 0.42165582, 0.43105339, 0.44046166, 0.44988025, 0.45930881, 0.468747, 0.4781945, 0.48765101, 0.49711624, 0.50658991, 0.51607176, 0.52556155, 0.53505903, 0.54456397, 0.55407616, 0.56359538, 0.57312144, 0.58265414, 0.5921933, 0.60173875, 0.61129031, 0.62084783, 0.63041114, 0.6399801, 0.64955456, 0.65913439, 0.66871945, 0.6783096, 0.68790474, 0.69750474, 0.70710948, 0.71671885, 0.72633274, 0.73595106, 0.74557369, 0.75520056, 0.76483155, 0.77446658, 0.78410557, 0.79374842, 0.80339506, 0.81304541, 0.82269938, 0.83235692, 0.84201793, 0.85168236, 0.86135013, 0.87102118, 0.88069544, 0.89037286, 0.90005337, 0.90973691, 0.91942343, 0.92911287, 0.93880517, 0.94850029, 0.95819817, 0.96789877, 0.97760203, 0.98730791, 0.99701637, 1.00672735, 1.01644081, 1.02615672, 1.03587503, 1.0455957, 1.05531869, 1.06504396, 1.07477148, 1.08450121, 1.09423311, 1.10396715, 1.1137033, 1.12344152, 1.13318177, 1.14292404, 1.15266829, 1.16241448, 1.17216259, 1.18191259, 1.19166445, 1.20141814, 1.21117364, 1.22093092, 1.23068995, 1.24045072, 1.25021319, 1.25997734, 1.26974315, 1.27951059, 1.28927964, 1.29905028, 1.30882249, 1.31859624, 1.32837152, 1.33814831, 1.34792658, 1.35770631, 1.36748749, 1.3772701, 1.38705412, 1.39683952, 1.4066263, 1.41641444, 1.42620391, 1.43599471, 1.44578681, 1.45558019, 1.46537485, 1.47517077, 1.48496793, 1.49476632, 1.50456592, 1.51436671, 1.52416869, 1.53397184, 1.54377615, 1.55358159, 1.56338817, 1.57319586, 1.58300466, 1.59281454, 1.6026255, 1.61243753, 1.62225062, 1.63206474, 1.6418799, 1.65169608, 1.66151326, 1.67133144, 1.68115061, 1.69097075, 1.70079186, 1.71061393, 1.72043693, 1.73026088, 1.74008575, 1.74991153, 1.75973822, 1.7695658, 1.77939428, 1.78922363, 1.79905385, 1.80888493, 1.81871686, 1.82854964, 1.83838325, 1.84821768, 1.85805294, 1.867889, 1.87772587, 1.88756353, 1.89740198, 1.90724121, 1.91708121, 1.92692197, 1.9367635, 1.94660577, 1.95644878, 1.96629253, 1.97613701, 1.98598221, 1.99582813, 2.00567475, 2.01552208, 2.0253701, 2.03521882, 2.04506822, 2.05491829, 2.06476904, 2.07462045, 2.08447252, 2.09432524, 2.10417861, 2.11403263, 2.12388728, 2.13374256, 2.14359847, 2.153455, 2.16331214, 2.17316989, 2.18302825, 2.1928872, 2.20274676, 2.21260689, 2.22246762, 2.23232892, 2.2421908, 2.25205325, 2.26191626, 2.27177984, 2.28164397, 2.29150865, 2.30137388, 2.31123965, 2.32110596, 2.3309728, 2.34084018, 2.35070808, 2.3605765, 2.37044544, 2.38031489, 2.39018485, 2.40005531, 2.40992628, 2.41979775, 2.42966971, 2.43954215, 2.44941509, 2.45928851, 2.4691624, 2.47903678, 2.48891162, 2.49878693, 2.50866271, 2.51853894, 2.52841564, 2.53829279, 2.54817039, 2.55804844, 2.56792693, 2.57780587, 2.58768524, 2.59756505, 2.60744529, 2.61732595, 2.62720705, 2.63708856, 2.6469705, 2.65685285, 2.66673562, 2.6766188, 2.68650238, 2.69638637, 2.70627077, 2.71615556, 2.72604075, 2.73592633, 2.74581231, 2.75569867, 2.76558542, 2.77547255, 2.78536007, 2.79524796, 2.80513623, 2.81502487, 2.82491388, 2.83480326, 2.84469301, 2.85458312, 2.86447359, 2.87436442, 2.8842556, 2.89414714, 2.90403903, 2.91393128, 2.92382386, 2.9337168, 2.94361007, 2.95350369, 2.96339765, 2.97329194, 2.98318656, 2.99308152, 3.00297681, 3.01287243, 3.02276837, 3.03266463, 3.04256122, 3.05245813, 3.06235535, 3.07225289, 3.08215075, 3.09204892, 3.10194739, 3.11184618, 3.12174527, 3.13164467, 3.14154436, 3.15144436, 3.16134466, 3.17124526, 3.18114615, 3.19104734, 3.20094882, 3.21085058, 3.22075264, 3.23065498, 3.24055761, 3.25046053, 3.26036372, 3.27026719, 3.28017095, 3.29007498, 3.29997929, 3.30988387, 3.31978872, 3.32969384, 3.33959923, 3.34950489, 3.35941082, 3.36931701, 3.37922347, 3.38913018, 3.39903716, 3.40894439, 3.41885189, 3.42875964, 3.43866764, 3.4485759, 3.45848441, 3.46839316, 3.47830217, 3.48821143, 3.49812093, 3.50803068, 3.51794067, 3.5278509, 3.53776138, 3.54767209, 3.55758304, 3.56749423, 3.57740566, 3.58731732, 3.59722921, 3.60714134, 3.6170537, 3.62696629, 3.6368791, 3.64679215, 3.65670542, 3.66661891, 3.67653263, 3.68644657, 3.69636073, 3.70627512, 3.71618972, 3.72610454, 3.73601958, 3.74593483, 3.7558503, 3.76576599, 3.77568188, 3.78559799, 3.79551431, 3.80543083, 3.81534757, 3.82526451, 3.83518166, 3.84509902, 3.85501658, 3.86493434, 3.87485231, 3.88477047, 3.89468884, 3.90460741, 3.91452617, 3.92444514, 3.93436429, 3.94428365, 3.9542032, 3.96412294, 3.97404288, 3.98396301, 3.99388332, 4.00380383, 4.01372453, 4.02364542, 4.03356649, 4.04348775, 4.0534092, 4.06333083, 4.07325264, 4.08317464, 4.09309682, 4.10301918, 4.11294172, 4.12286444, 4.13278734, 4.14271041, 4.15263367, 4.1625571, 4.1724807, 4.18240448, 4.19232844, 4.20225256, 4.21217686, 4.22210134, 4.23202598, 4.24195079, 4.25187577, 4.26180092, 4.27172624, 4.28165172, 4.29157737, 4.30150319, 4.31142917, 4.32135531, 4.33128162, 4.34120809, 4.35113473, 4.36106152, 4.37098847, 4.38091559, 4.39084286, 4.40077029, 4.41069788, 4.42062562, 4.43055353, 4.44048158, 4.4504098, 4.46033816, 4.47026668, 4.48019536, 4.49012418, 4.50005316, 4.50998229, 4.51991157, 4.52984099, 4.53977057, 4.5497003, 4.55963017, 4.56956019, 4.57949036, 4.58942067, 4.59935113, 4.60928174, 4.61921248, 4.62914338, 4.63907441, 4.64900559, 4.65893691, 4.66886837, 4.67879997, 4.68873171, 4.69866359, 4.70859561, 4.71852776, 4.72846006, 4.73839249, 4.74832506, 4.75825777, 4.76819061, 4.77812358, 4.78805669, 4.79798994, 4.80792331, 4.81785682, 4.82779047, 4.83772424, 4.84765815, 4.85759219, 4.86752635, 4.87746065, 4.88739508, 4.89732963, 4.90726431, 4.91719913, 4.92713406, 4.93706913, 4.94700432, 4.95693964, 4.96687508, 4.97681065, 4.98674634, 4.99668215, 5.00661809, 5.01655415, 5.02649034, 5.03642664, 5.04636307, 5.05629962, 5.06623629, 5.07617307, 5.08610998, 5.09604701, 5.10598416, 5.11592142, 5.1258588, 5.1357963, 5.14573392, 5.15567165, 5.1656095, 5.17554747, 5.18548555, 5.19542375, 5.20536205, 5.21530048, 5.22523902, 5.23517767, 5.24511643, 5.2550553, 5.26499429, 5.27493339, 5.2848726, 5.29481192, 5.30475135, 5.31469089, 5.32463054, 5.3345703, 5.34451017, 5.35445014, 5.36439023, 5.37433042, 5.38427072, 5.39421112, 5.40415163, 5.41409225, 5.42403298, 5.4339738, 5.44391474, 5.45385577, 5.46379692, 5.47373816, 5.48367951, 5.49362096, 5.50356252, 5.51350417, 5.52344593, 5.53338779, 5.54332976, 5.55327182, 5.56321398, 5.57315624, 5.58309861, 5.59304107, 5.60298363, 5.61292629, 5.62286905, 5.63281191, 5.64275486, 5.65269792, 5.66264107, 5.67258431, 5.68252765, 5.69247109, 5.70241463, 5.71235826, 5.72230198, 5.7322458, 5.74218972, 5.75213373, 5.76207783, 5.77202203, 5.78196632, 5.7919107, 5.80185517, 5.81179974, 5.8217444, 5.83168915, 5.841634, 5.85157893, 5.86152395, 5.87146907, 5.88141427, 5.89135957, 5.90130496, 5.91125043, 5.92119599, 5.93114165, 5.94108739, 5.95103321, 5.96097913, 5.97092514, 5.98087123, 5.99081741, 6.00076367, 6.01071002, 6.02065646, 6.03060299, 6.0405496, 6.05049629, 6.06044307, 6.07038994, 6.08033689, 6.09028392, 6.10023104, 6.11017824, 6.12012552, 6.13007289, 6.14002034, 6.14996788, 6.15991549, 6.16986319, 6.17981097, 6.18975884, 6.19970678, 6.2096548, 6.21960291, 6.2295511, 6.23949936, 6.24944771, 6.25939614, 6.26934464, 6.27929323, 6.2892419, 6.29919064, 6.30913946, 6.31908836, 6.32903734, 6.3389864, 6.34893554, 6.35888475, 6.36883404, 6.37878341, 6.38873285, 6.39868237, 6.40863197, 6.41858164, 6.42853139, 6.43848121, 6.44843111, 6.45838109, 6.46833114, 6.47828126, 6.48823146, 6.49818174, 6.50813208, 6.51808251, 6.528033, 6.53798357, 6.54793421, 6.55788492, 6.56783571, 6.57778657, 6.5877375, 6.59768851, 6.60763959, 6.61759073, 6.62754195, 6.63749324, 6.64744461, 6.65739604, 6.66734754, 6.67729912, 6.68725076, 6.69720247, 6.70715426, 6.71710611, 6.72705803, 6.73701003, 6.74696209, 6.75691422, 6.76686642, 6.77681868, 6.78677102, 6.79672342, 6.80667589, 6.81662843, 6.82658104, 6.83653371, 6.84648646, 6.85643926, 6.86639214, 6.87634508, 6.88629809, 6.89625116, 6.9062043, 6.91615751, 6.92611078, 6.93606411, 6.94601751, 6.95597098, 6.96592451, 6.97587811, 6.98583177, 6.9957855, 7.00573928, 7.01569314, 7.02564705, 7.03560104, 7.04555508, 7.05550919, 7.06546336, 7.07541759, 7.08537189, 7.09532625, 7.10528067, 7.11523515, 7.1251897, 7.1351443, 7.14509897, 7.1550537, 7.16500849, 7.17496335, 7.18491826, 7.19487324, 7.20482827, 7.21478337, 7.22473853, 7.23469374, 7.24464902, 7.25460436, 7.26455976, 7.27451521, 7.28447073, 7.2944263, 7.30438194, 7.31433763, 7.32429338, 7.33424919, 7.34420506, 7.35416099, 7.36411698, 7.37407302, 7.38402912, 7.39398528, 7.4039415, 7.41389777, 7.42385411, 7.4338105, 7.44376694, 7.45372344, 7.46368, 7.47363662, 7.48359329, 7.49355002, 7.50350681, 7.51346365, 7.52342054, 7.5333775, 7.5433345, 7.55329157, 7.56324868, 7.57320586, 7.58316309, 7.59312037, 7.60307771, 7.6130351, 7.62299255, 7.63295005, 7.6429076, 7.65286521, 7.66282287, 7.67278059, 7.68273836, 7.69269619, 7.70265406, 7.71261199, 7.72256998, 7.73252801, 7.7424861, 7.75244424, 7.76240244, 7.77236068, 7.78231898, 7.79227733, 7.80223573, 7.81219419, 7.8221527, 7.83211125, 7.84206986, 7.85202852, 7.86198723, 7.871946, 7.88190481, 7.89186368, 7.90182259, 7.91178156, 7.92174057, 7.93169964, 7.94165876, 7.95161792, 7.96157714, 7.97153641, 7.98149572, 7.99145509, 8.00141451, 8.01137397, 8.02133349, 8.03129305, 8.04125266, 8.05121232, 8.06117203, 8.07113179, 8.0810916, 8.09105145, 8.10101136, 8.11097131, 8.12093131, 8.13089136, 8.14085145, 8.1508116, 8.16077179, 8.17073203, 8.18069231, 8.19065264, 8.20061303, 8.21057345, 8.22053393, 8.23049445, 8.24045502, 8.25041563, 8.26037629, 8.270337, 8.28029775, 8.29025855, 8.3002194, 8.31018029, 8.32014123, 8.33010221, 8.34006324, 8.35002431, 8.35998543, 8.3699466, 8.37990781, 8.38986906, 8.39983036, 8.40979171, 8.4197531, 8.42971453, 8.43967601, 8.44963754, 8.46956072, 8.47952237, 8.48948407, 8.49944582, 8.50940761, 8.51936944, 8.52933131, 8.53929323, 8.5492552, 8.5592172, 8.56917925, 8.57914134, 8.58910348, 8.59906566, 8.60902788, 8.61899014, 8.62895245, 8.6389148, 8.64887719, 8.65883963, 8.6688021, 8.67876462, 8.68872718, 8.69868978, 8.70865243, 8.71861512, 8.72857784, 8.73854061, 8.74850343, 8.75846628, 8.76842917, 8.77839211, 8.78835508, 8.7983181, 8.80828116, 8.81824426, 8.8282074, 8.83817058, 8.8481338, 8.85809707, 8.86806037, 8.87802371, 8.8879871, 8.89795052, 8.90791398, 8.91787749, 8.92784103, 8.93780461, 8.94776824, 8.9577319, 8.9676956, 8.97765934, 8.99758695, 9.00755081, 9.0175147, 9.02747864, 9.03744262, 9.04740663, 9.05737069, 9.06733478, 9.07729891, 9.08726309, 9.09722729, 9.10719154, 9.11715583, 9.12712015, 9.13708451, 9.14704891, 9.15701335, 9.16697783, 9.17694234, 9.18690689, 9.19687148, 9.20683611, 9.21680077, 9.22676548, 9.23673021, 9.24669499, 9.2566598, 9.26662465, 9.27658954, 9.28655447, 9.29651943, 9.30648443, 9.31644946, 9.32641453, 9.33637964, 9.34634479, 9.35630997, 9.36627518, 9.37624044, 9.38620573, 9.39617105, 9.40613642, 9.41610181, 9.42606725, 9.43603272, 9.44599822, 9.45596376, 9.46592934, 9.47589495, 9.4858606, 9.49582628, 9.505792, 9.51575775, 9.52572354, 9.53568937, 9.54565523, 9.55562112, 9.56558705, 9.57555301, 9.58551901, 9.59548504, 9.60545111, 9.61541721, 9.62538335, 9.63534952, 9.64531572, 9.65528196, 9.66524823, 9.67521454, 9.68518088, 9.69514726, 9.70511367, 9.71508011, 9.72504659, 9.7350131, 9.74497964, 9.75494622, 9.76491283, 9.77487947, 9.78484615, 9.79481286, 9.80477961, 9.81474638, 9.82471319, 9.83468004, 9.84464691, 9.85461382, 9.86458077, 9.87454774, 9.88451475, 9.89448179, 9.90444886, 9.91441597, 9.9243831, 9.93435027, 9.94431748, 9.95428471, 9.96425198, 9.97421928, 9.98418661, 9.99415397, 10.00412137, 10.02405625, 10.03402374, 10.04399126, 10.05395882, 10.0639264, 10.07389402, 10.08386167, 10.09382935, 10.10379706, 10.1137648, 10.12373257, 10.13370038, 10.14366821, 10.15363608, 10.16360397, 10.1735719, 10.18353986, 10.19350785, 10.20347587, 10.21344392, 10.223412, 10.23338012, 10.24334826, 10.25331643, 10.26328464, 10.27325287, 10.28322113, 10.29318943, 10.30315775, 10.31312611, 10.32309449, 10.33306291, 10.34303135, 10.35299982, 10.36296833, 10.37293686, 10.38290543, 10.39287402, 10.40284264, 10.41281129, 10.42277997, 10.43274869, 10.44271743, 10.4526862, 10.46265499, 10.47262382, 10.48259268, 10.49256156, 10.50253048, 10.51249942, 10.5224684, 10.5324374, 10.54240643, 10.55237549, 10.56234458, 10.57231369, 10.58228284, 10.59225201, 10.60222122, 10.61219045, 10.62215971, 10.63212899, 10.64209831, 10.65206765, 10.66203702, 10.67200642, 10.68197585, 10.69194531, 10.70191479, 10.71188431, 10.72185385, 10.73182341, 10.74179301, 10.75176263, 10.76173228, 10.77170196, 10.78167167, 10.7916414, 10.80161116, 10.81158095, 10.82155077, 10.83152061, 10.84149048, 10.85146038, 10.8614303, 10.87140026, 10.88137023, 10.89134024, 10.90131027, 10.91128033, 10.92125042, 10.93122053, 10.94119067, 10.95116084, 10.96113103, 10.97110126, 10.99104178, 11.00101208, 11.02095275, 11.03092313, 11.04089354, 11.05086397, 11.06083443, 11.07080491, 11.08077542, 11.09074596, 11.10071652, 11.11068711, 11.12065772, 11.13062836, 11.14059903, 11.15056972, 11.16054044, 11.17051118, 11.18048195, 11.19045275, 11.20042357, 11.21039441, 11.22036528, 11.23033618, 11.2403071, 11.25027805, 11.26024902, 11.27022002, 11.28019104, 11.29016209, 11.30013316, 11.31010426, 11.32007538, 11.33004653, 11.3400177, 11.3499889, 11.35996013, 11.36993137, 11.37990265, 11.38987394, 11.39984527, 11.40981661, 11.41978798, 11.42975938, 11.4397308, 11.44970224, 11.45967371, 11.46964521, 11.47961673, 11.48958827, 11.49955984, 11.50953143, 11.51950304, 11.52947468, 11.53944634, 11.54941803, 11.55938974, 11.56936148, 11.57933324, 11.58930502, 11.59927683, 11.60924866, 11.61922051, 11.62919239, 11.63916429, 11.64913622, 11.65910817, 11.66908014, 11.67905214, 11.68902416, 11.6989962, 11.70896827, 11.71894036, 11.72891247, 11.73888461, 11.74885677, 11.75882896, 11.76880116, 11.77877339, 11.78874565, 11.79871792, 11.80869022, 11.81866254, 11.82863489, 11.83860726, 11.84857965, 11.85855206, 11.8685245, 11.87849696, 11.88846944, 11.89844194, 11.90841447, 11.91838702, 11.92835959, 11.93833219, 11.94830481, 11.95827745, 11.96825011, 11.97822279, 11.9881955, 11.99816823, 12.00814098, 12.01811376, 12.02808655, 12.03805937, 12.04803221, 12.05800508, 12.06797796, 12.07795087, 12.0879238, 12.09789675, 12.10786972, 12.11784272, 12.12781573, 12.13778877, 12.14776183, 12.15773491, 12.16770802, 12.17768114, 12.18765429, 12.19762746, 12.20760065, 12.21757386, 12.23752035, 12.24749363, 12.25746692, 12.26744024, 12.27741358, 12.28738695, 12.29736033, 12.30733373, 12.31730716, 12.32728061, 12.33725407, 12.34722756, 12.35720107, 12.3671746, 12.37714815, 12.38712173, 12.39709532, 12.40706894, 12.41704257, 12.42701623, 12.43698991, 12.4469636, 12.45693732, 12.46691106, 12.47688482, 12.4868586, 12.4968324, 12.50680623, 12.51678007, 12.52675393, 12.53672782, 12.54670172, 12.55667564, 12.56664959, 12.57662355, 12.58659754, 12.59657155, 12.60654557, 12.61651962, 12.62649368, 12.63646777, 12.64644188, 12.656416, 12.66639015, 12.67636432, 12.6863385, 12.69631271, 12.70628694, 12.71626118, 12.72623545, 12.73620974, 12.74618404, 12.75615837, 12.76613272, 12.77610708, 12.78608147, 12.79605587, 12.8060303, 12.81600474, 12.8259792, 12.83595369, 12.84592819, 12.85590271, 12.86587725, 12.87585182, 12.8858264, 12.895801, 12.90577562, 12.91575025, 12.92572491, 12.93569959, 12.94567429, 12.955649, 12.96562374, 12.97559849, 12.98557326, 12.99554805, 13.00552287, 13.0154977, 13.02547254, 13.03544741, 13.0454223, 13.05539721, 13.06537213, 13.07534707, 13.08532204, 13.09529702, 13.10527202, 13.11524704, 13.12522207, 13.13519713, 13.1451722, 13.1551473, 13.16512241, 13.17509754, 13.18507269, 13.19504786, 13.20502304, 13.21499825, 13.22497347, 13.23494871, 13.24492397, 13.25489925, 13.26487455, 13.27484986, 13.28482519, 13.29480055, 13.30477592, 13.3147513, 13.32472671, 13.34467757, 13.35465303, 13.36462851, 13.38457952, 13.39455506, 13.40453061, 13.41450617, 13.42448176, 13.43445736, 13.44443298, 13.45440862, 13.46438428, 13.47435996, 13.48433565, 13.50428709, 13.5242386, 13.53421438, 13.54419018, 13.55416599, 13.56414183, 13.57411768, 13.58409355, 13.59406943, 13.61402126, 13.6239972, 13.63397315, 13.64394912, 13.65392512, 13.66390112, 13.67387715, 13.68385319, 13.69382925, 13.70380533, 13.71378142, 13.72375753, 13.73373366, 13.7437098, 13.75368597, 13.76366214, 13.78361455, 13.79359078, 13.80356703, 13.82351958, 13.83349587, 13.84347219, 13.85344852, 13.86342487, 13.88337761, 13.89335401, 13.90333043, 13.91330686, 13.92328331, 13.93325977, 13.94323625, 13.95321275, 13.96318927, 13.9731658, 13.98314235, 13.99311891, 14.00309549, 14.01307209, 14.0230487, 14.03302533, 14.04300198, 14.05297864, 14.06295532, 14.07293202, 14.08290873, 14.09288546, 14.1028622, 14.11283896, 14.12281574, 14.13279253, 14.14276934, 14.15274616, 14.16272301, 14.17269986, 14.18267674, 14.19265363, 14.20263053, 14.21260745, 14.22258439, 14.23256134, 14.24253831, 14.2525153, 14.2624923, 14.27246931, 14.28244635, 14.2924234, 14.30240046, 14.31237754, 14.32235464, 14.33233175, 14.34230887, 14.35228602, 14.36226318, 14.37224035, 14.38221754, 14.39219474, 14.40217197, 14.4121492, 14.42212645, 14.43210372, 14.442081, 14.4520583, 14.46203562, 14.47201295, 14.48199029, 14.49196765, 14.50194503, 14.51192242, 14.52189982, 14.53187725, 14.54185468, 14.55183213, 14.5618096, 14.57178708, 14.58176458, 14.5917421, 14.60171962, 14.61169717, 14.62167472, 14.6316523, 14.64162989, 14.65160749, 14.66158511, 14.67156274, 14.68154039, 14.69151805, 14.70149573, 14.71147343, 14.72145114, 14.73142886, 14.7414066, 14.75138435, 14.76136212, 14.7713399, 14.7813177, 14.79129551, 14.80127334, 14.81125118, 14.82122904, 14.83120691, 14.84118479, 14.85116269, 14.86114061, 14.87111854, 14.88109648, 14.89107444, 14.90105242, 14.9110304, 14.92100841, 14.93098642, 14.94096445, 14.9509425, 14.96092056, 14.97089864, 14.98087673, 14.99085483, 15.00083295, 15.01081108, 15.02078923, 15.03076739, 15.04074556, 15.05072375, 15.06070196, 15.07068018, 15.08065841, 15.09063666, 15.10061492, 15.11059319, 15.12057148, 15.13054978, 15.1405281, 15.15050643, 15.16048478, 15.17046314, 15.18044151, 15.1904199, 15.2003983, 15.21037672, 15.22035515, 15.23033359, 15.24031205, 15.25029052, 15.260269, 15.2702475, 15.28022602, 15.29020454, 15.30018308, 15.31016164, 15.32014021, 15.33011879, 15.34009739, 15.35007599, 15.36005462, 15.37003326, 15.38001191, 15.38999057, 15.39996925, 15.40994794, 15.41992665, 15.42990536, 15.4398841, 15.44986284, 15.4598416, 15.46982038, 15.47979916, 15.48977796, 15.49975678, 15.5097356, 15.51971444, 15.5296933, 15.53967216, 15.54965104, 15.55962994, 15.56960885, 15.57958777, 15.5895667, 15.59954565, 15.60952461, 15.61950358, 15.62948257, 15.63946157, 15.64944058, 15.65941961, 15.66939865, 15.6793777, 15.68935677, 15.69933585, 15.70931494, 15.71929405, 15.72927317, 15.7392523, 15.74923144, 15.7592106, 15.76918977, 15.77916896, 15.78914815, 15.79912736, 15.80910659, 15.81908582, 15.82906507, 15.83904433, 15.84902361, 15.8689822, 15.88894084, 15.89892017, 15.90889953, 15.91887889, 15.92885827, 15.93883766, 15.94881706, 15.95879648, 15.9687759, 15.97875534, 15.9887348, 15.99871426, 16.00869374, 16.01867323, 16.02865274, 16.03863225, 16.04861178, 16.05859133, 16.06857088, 16.07855045, 16.08853003, 16.09850962, 16.10848922, 16.11846884, 16.13842811, 16.14840776, 16.15838743, 16.16836711, 16.1783468, 16.1883265, 16.19830622, 16.20828595, 16.21826569, 16.22824544, 16.23822521, 16.25818478, 16.26816458, 16.27814439, 16.28812422, 16.29810406, 16.30808391, 16.31806377, 16.32804365, 16.33802353, 16.34800343, 16.35798334, 16.36796327, 16.3779432, 16.38792315, 16.39790311, 16.40788308, 16.41786307, 16.42784306, 16.43782307, 16.44780309, 16.45778312, 16.46776317, 16.47774322, 16.48772329, 16.49770337, 16.50768346, 16.51766357, 16.52764368, 16.53762381, 16.54760395, 16.5575841, 16.56756426, 16.57754444, 16.58752462, 16.59750482, 16.60748503, 16.61746525, 16.62744548, 16.63742573, 16.64740599, 16.65738625, 16.66736653, 16.67734683, 16.68732713, 16.69730744, 16.71726811, 16.72724846, 16.73722882, 16.75718958, 16.76716997, 16.77715038, 16.7871308, 16.79711123, 16.80709167, 16.81707213, 16.82705259, 16.83703307, 16.84701355, 16.85699405, 16.86697456, 16.87695509, 16.88693562, 16.89691616, 16.90689672, 16.91687729, 16.92685787, 16.93683846, 16.94681906, 16.95679967, 16.9667803, 16.97676093, 16.98674158, 16.99672223, 17.0067029, 17.01668358, 17.02666427, 17.03664498, 17.04662569, 17.05660642, 17.06658715, 17.0765679, 17.08654866, 17.09652943, 17.10651021, 17.116491, 17.1264718, 17.13645261, 17.14643344, 17.15641427, 17.16639512, 17.17637598, 17.18635685, 17.20631862, 17.21629952, 17.22628043, 17.23626135, 17.24624229, 17.25622323, 17.27618516, 17.28616613, 17.29614712, 17.30612812, 17.31610913, 17.32609015, 17.33607118, 17.34605223, 17.35603328, 17.36601434, 17.37599542, 17.38597651, 17.3959576, 17.40593871, 17.41591983, 17.42590096, 17.43588209, 17.44586324, 17.4558444, 17.46582558, 17.47580676, 17.48578795, 17.49576915, 17.50575037, 17.51573159, 17.52571283, 17.53569407, 17.54567533, 17.55565659, 17.56563787, 17.57561916, 17.58560046, 17.59558176, 17.60556308, 17.61554441, 17.62552575, 17.6355071, 17.64548846, 17.65546983, 17.66545122, 17.67543261, 17.68541401, 17.69539542, 17.70537685, 17.71535828, 17.72533972, 17.73532118, 17.74530264, 17.75528412, 17.7652656, 17.7752471, 17.7852286, 17.79521012, 17.80519164, 17.81517318, 17.82515473, 17.83513628, 17.84511785, 17.85509943, 17.86508101, 17.87506261, 17.88504422, 17.89502584, 17.90500746, 17.9149891, 17.92497075, 17.93495241, 17.94493408, 17.95491575, 17.96489744, 17.97487914, 17.98486085, 17.99484257, 18.0048243, 18.01480603, 18.02478778, 18.03476954, 18.04475131, 18.06471488, 18.07469667, 18.08467848, 18.0946603, 18.10464213, 18.11462397, 18.12460582, 18.13458767, 18.14456954, 18.15455142, 18.16453331, 18.1745152, 18.18449711, 18.19447903, 18.20446095, 18.21444289, 18.22442484, 18.23440679, 18.24438876, 18.25437073, 18.26435272, 18.27433471, 18.28431672, 18.29429873, 18.30428076, 18.31426279, 18.32424483, 18.33422689, 18.34420895, 18.35419102, 18.3641731, 18.3741552, 18.3841373, 18.39411941, 18.40410153, 18.41408366, 18.4240658, 18.43404795, 18.44403011, 18.45401227, 18.46399445, 18.47397664, 18.48395884, 18.49394104, 18.50392326, 18.51390548, 18.52388772, 18.53386996, 18.54385222, 18.55383448, 18.56381675, 18.57379903, 18.58378133, 18.59376363, 18.60374594, 18.61372826, 18.62371059, 18.63369292, 18.64367527, 18.65365763, 18.66364, 18.67362237, 18.68360476, 18.69358715, 18.70356955, 18.71355197, 18.72353439, 18.73351682, 18.74349926, 18.75348171, 18.76346417, 18.77344664, 18.78342912, 18.7934116, 18.81337661, 18.82335912, 18.83334164, 18.84332418, 18.85330672, 18.86328927, 18.87327183, 18.8832544, 18.89323698, 18.90321956, 18.91320216, 18.92318477, 18.93316738, 18.94315001, 18.95313264, 18.96311528, 18.98308059, 18.99306326, 19.00304594, 19.01302863, 19.02301132, 19.03299403, 19.04297674, 19.05295946, 19.06294219, 19.07292494, 19.08290769, 19.10287321, 19.11285599, 19.12283877, 19.13282157, 19.14280437, 19.15278718, 19.16277, 19.17275283, 19.18273567, 19.19271852, 19.20270137, 19.21268424, 19.22266711, 19.23265, 19.24263289, 19.25261579, 19.2625987, 19.27258161, 19.28256454, 19.29254748, 19.30253042, 19.31251337, 19.32249633, 19.3324793, 19.34246228, 19.35244527, 19.36242827, 19.37241127, 19.38239428, 19.39237731, 19.40236034, 19.41234338, 19.42232642, 19.43230948, 19.44229255, 19.45227562, 19.4622587, 19.47224179, 19.48222489, 19.492208, 19.50219112, 19.51217424, 19.52215738, 19.53214052, 19.54212367, 19.55210683, 19.56209, 19.57207317, 19.58205636, 19.59203955, 19.61200596, 19.62198918, 19.63197241, 19.64195564, 19.65193889, 19.66192214, 19.6719054, 19.68188867, 19.69187195, 19.70185523, 19.71183853, 19.72182183, 19.73180514, 19.75177179, 19.76175513, 19.77173847, 19.78172182] }, { "type": "character", "attributes": {}, "value": ["extrapolation", "extrapolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation"] } ] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["x", "y.t", "x.t", "method"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1115, 1116, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1350, 1351, 1352, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1366, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1394, 1395, 1396, 1398, 1399, 1400, 1401, 1402, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1604, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1689, 1690, 1691, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1738, 1739, 1740, 1741, 1742, 1743, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "na.action": { "type": "integer", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["861", "914", "1017", "1114", "1117", "1239", "1349", "1353", "1365", "1367", "1376", "1393", "1397", "1403", "1603", "1605", "1630", "1642", "1688", "1692", "1737", "1744", "1822", "1897", "1914", "1926", "1977", "1991"] }, "class": { "type": "character", "attributes": {}, "value": ["exclude"] } }, "value": [861, 914, 1017, 1114, 1117, 1239, 1349, 1353, 1365, 1367, 1376, 1393, 1397, 1403, 1603, 1605, 1630, 1642, 1688, 1692, 1737, 1744, 1822, 1897, 1914, 1926, 1977, 1991] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.005, 0.015, 0.025, 0.035, 0.045, 0.055, 0.065, 0.075, 0.085, 0.095, 0.105, 0.115, 0.125, 0.135, 0.145, 0.155, 0.165, 0.175, 0.185, 0.195, 0.205, 0.215, 0.225, 0.235, 0.245, 0.255, 0.265, 0.275, 0.285, 0.295, 0.305, 0.315, 0.325, 0.335, 0.345, 0.355, 0.365, 0.375, 0.385, 0.395, 0.405, 0.415, 0.425, 0.435, 0.445, 0.455, 0.465, 0.475, 0.485, 0.495, 0.505, 0.515, 0.525, 0.535, 0.545, 0.555, 0.565, 0.575, 0.585, 0.595, 0.605, 0.615, 0.625, 0.635, 0.645, 0.655, 0.665, 0.675, 0.685, 0.695, 0.705, 0.715, 0.725, 0.735, 0.745, 0.755, 0.765, 0.775, 0.785, 0.795, 0.805, 0.815, 0.825, 0.835, 0.845, 0.855, 0.865, 0.875, 0.885, 0.895, 0.905, 0.915, 0.925, 0.935, 0.945, 0.955, 0.965, 0.975, 0.985, 0.995, 1.005, 1.015, 1.025, 1.035, 1.045, 1.055, 1.065, 1.075, 1.085, 1.095, 1.105, 1.115, 1.125, 1.135, 1.145, 1.155, 1.165, 1.175, 1.185, 1.195, 1.205, 1.215, 1.225, 1.235, 1.245, 1.255, 1.265, 1.275, 1.285, 1.295, 1.305, 1.315, 1.325, 1.335, 1.345, 1.355, 1.365, 1.375, 1.385, 1.395, 1.405, 1.415, 1.425, 1.435, 1.445, 1.455, 1.465, 1.475, 1.485, 1.495, 1.505, 1.515, 1.525, 1.535, 1.545, 1.555, 1.565, 1.575, 1.585, 1.595, 1.605, 1.615, 1.625, 1.635, 1.645, 1.655, 1.665, 1.675, 1.685, 1.695, 1.705, 1.715, 1.725, 1.735, 1.745, 1.755, 1.765, 1.775, 1.785, 1.795, 1.805, 1.815, 1.825, 1.835, 1.845, 1.855, 1.865, 1.875, 1.885, 1.895, 1.905, 1.915, 1.925, 1.935, 1.945, 1.955, 1.965, 1.975, 1.985, 1.995, 2.005, 2.015, 2.025, 2.035, 2.045, 2.055, 2.065, 2.075, 2.085, 2.095, 2.105, 2.115, 2.125, 2.135, 2.145, 2.155, 2.165, 2.175, 2.185, 2.195, 2.205, 2.215, 2.225, 2.235, 2.245, 2.255, 2.265, 2.275, 2.285, 2.295, 2.305, 2.315, 2.325, 2.335, 2.345, 2.355, 2.365, 2.375, 2.385, 2.395, 2.405, 2.415, 2.425, 2.435, 2.445, 2.455, 2.465, 2.475, 2.485, 2.495, 2.505, 2.515, 2.525, 2.535, 2.545, 2.555, 2.565, 2.575, 2.585, 2.595, 2.605, 2.615, 2.625, 2.635, 2.645, 2.655, 2.665, 2.675, 2.685, 2.695, 2.705, 2.715, 2.725, 2.735, 2.745, 2.755, 2.765, 2.775, 2.785, 2.795, 2.805, 2.815, 2.825, 2.835, 2.845, 2.855, 2.865, 2.875, 2.885, 2.895, 2.905, 2.915, 2.925, 2.935, 2.945, 2.955, 2.965, 2.975, 2.985, 2.995, 3.005, 3.015, 3.025, 3.035, 3.045, 3.055, 3.065, 3.075, 3.085, 3.095, 3.105, 3.115, 3.125, 3.135, 3.145, 3.155, 3.165, 3.175, 3.185, 3.195, 3.205, 3.215, 3.225, 3.235, 3.245, 3.255, 3.265, 3.275, 3.285, 3.295, 3.305, 3.315, 3.325, 3.335, 3.345, 3.355, 3.365, 3.375, 3.385, 3.395, 3.405, 3.415, 3.425, 3.435, 3.445, 3.455, 3.465, 3.475, 3.485, 3.495, 3.505, 3.515, 3.525, 3.535, 3.545, 3.555, 3.565, 3.575, 3.585, 3.595, 3.605, 3.615, 3.625, 3.635, 3.645, 3.655, 3.665, 3.675, 3.685, 3.695, 3.705, 3.715, 3.725, 3.735, 3.745, 3.755, 3.765, 3.775, 3.785, 3.795, 3.805, 3.815, 3.825, 3.835, 3.845, 3.855, 3.865, 3.875, 3.885, 3.895, 3.905, 3.915, 3.925, 3.935, 3.945, 3.955, 3.965, 3.975, 3.985, 3.995, 4.005, 4.015, 4.025, 4.035, 4.045, 4.055, 4.065, 4.075, 4.085, 4.095, 4.105, 4.115, 4.125, 4.135, 4.145, 4.155, 4.165, 4.175, 4.185, 4.195, 4.205, 4.215, 4.225, 4.235, 4.245, 4.255, 4.265, 4.275, 4.285, 4.295, 4.305, 4.315, 4.325, 4.335, 4.345, 4.355, 4.365, 4.375, 4.385, 4.395, 4.405, 4.415, 4.425, 4.435, 4.445, 4.455, 4.465, 4.475, 4.485, 4.495, 4.505, 4.515, 4.525, 4.535, 4.545, 4.555, 4.565, 4.575, 4.585, 4.595, 4.605, 4.615, 4.625, 4.635, 4.645, 4.655, 4.665, 4.675, 4.685, 4.695, 4.705, 4.715, 4.725, 4.735, 4.745, 4.755, 4.765, 4.775, 4.785, 4.795, 4.805, 4.815, 4.825, 4.835, 4.845, 4.855, 4.865, 4.875, 4.885, 4.895, 4.905, 4.915, 4.925, 4.935, 4.945, 4.955, 4.965, 4.975, 4.985, 4.995, 5.005, 5.015, 5.025, 5.035, 5.045, 5.055, 5.065, 5.075, 5.085, 5.095, 5.105, 5.115, 5.125, 5.135, 5.145, 5.155, 5.165, 5.175, 5.185, 5.195, 5.205, 5.215, 5.225, 5.235, 5.245, 5.255, 5.265, 5.275, 5.285, 5.295, 5.305, 5.315, 5.325, 5.335, 5.345, 5.355, 5.365, 5.375, 5.385, 5.395, 5.405, 5.415, 5.425, 5.435, 5.445, 5.455, 5.465, 5.475, 5.485, 5.495, 5.505, 5.515, 5.525, 5.535, 5.545, 5.555, 5.565, 5.575, 5.585, 5.595, 5.605, 5.615, 5.625, 5.635, 5.645, 5.655, 5.665, 5.675, 5.685, 5.695, 5.705, 5.715, 5.725, 5.735, 5.745, 5.755, 5.765, 5.775, 5.785, 5.795, 5.805, 5.815, 5.825, 5.835, 5.845, 5.855, 5.865, 5.875, 5.885, 5.895, 5.905, 5.915, 5.925, 5.935, 5.945, 5.955, 5.965, 5.975, 5.985, 5.995, 6.005, 6.015, 6.025, 6.035, 6.045, 6.055, 6.065, 6.075, 6.085, 6.095, 6.105, 6.115, 6.125, 6.135, 6.145, 6.155, 6.165, 6.175, 6.185, 6.195, 6.205, 6.215, 6.225, 6.235, 6.245, 6.255, 6.265, 6.275, 6.285, 6.295, 6.305, 6.315, 6.325, 6.335, 6.345, 6.355, 6.365, 6.375, 6.385, 6.395, 6.405, 6.415, 6.425, 6.435, 6.445, 6.455, 6.465, 6.475, 6.485, 6.495, 6.505, 6.515, 6.525, 6.535, 6.545, 6.555, 6.565, 6.575, 6.585, 6.595, 6.605, 6.615, 6.625, 6.635, 6.645, 6.655, 6.665, 6.675, 6.685, 6.695, 6.705, 6.715, 6.725, 6.735, 6.745, 6.755, 6.765, 6.775, 6.785, 6.795, 6.805, 6.815, 6.825, 6.835, 6.845, 6.855, 6.865, 6.875, 6.885, 6.895, 6.905, 6.915, 6.925, 6.935, 6.945, 6.955, 6.965, 6.975, 6.985, 6.995, 7.005, 7.015, 7.025, 7.035, 7.045, 7.055, 7.065, 7.075, 7.085, 7.095, 7.105, 7.115, 7.125, 7.135, 7.145, 7.155, 7.165, 7.175, 7.185, 7.195, 7.205, 7.215, 7.225, 7.235, 7.245, 7.255, 7.265, 7.275, 7.285, 7.295, 7.305, 7.315, 7.325, 7.335, 7.345, 7.355, 7.365, 7.375, 7.385, 7.395, 7.405, 7.415, 7.425, 7.435, 7.445, 7.455, 7.465, 7.475, 7.485, 7.495, 7.505, 7.515, 7.525, 7.535, 7.545, 7.555, 7.565, 7.575, 7.585, 7.595, 7.605, 7.615, 7.625, 7.635, 7.645, 7.655, 7.665, 7.675, 7.685, 7.695, 7.705, 7.715, 7.725, 7.735, 7.745, 7.755, 7.765, 7.775, 7.785, 7.795, 7.805, 7.815, 7.825, 7.835, 7.845, 7.855, 7.865, 7.875, 7.885, 7.895, 7.905, 7.915, 7.925, 7.935, 7.945, 7.955, 7.965, 7.975, 7.985, 7.995, 8.005, 8.015, 8.025, 8.035, 8.045, 8.055, 8.065, 8.075, 8.085, 8.095, 8.105, 8.115, 8.125, 8.135, 8.145, 8.155, 8.165, 8.175, 8.185, 8.195, 8.205, 8.215, 8.225, 8.235, 8.245, 8.255, 8.265, 8.275, 8.285, 8.295, 8.305, 8.315, 8.325, 8.335, 8.345, 8.355, 8.365, 8.375, 8.385, 8.395, 8.405, 8.415, 8.425, 8.435, 8.445, 8.455, 8.465, 8.475, 8.485, 8.495, 8.505, 8.515, 8.525, 8.535, 8.545, 8.555, 8.565, 8.575, 8.585, 8.595, 8.615, 8.625, 8.635, 8.645, 8.655, 8.665, 8.675, 8.685, 8.695, 8.705, 8.715, 8.725, 8.735, 8.745, 8.755, 8.765, 8.775, 8.785, 8.795, 8.805, 8.815, 8.825, 8.835, 8.845, 8.855, 8.865, 8.875, 8.885, 8.895, 8.905, 8.915, 8.925, 8.935, 8.945, 8.955, 8.965, 8.975, 8.985, 8.995, 9.005, 9.015, 9.025, 9.035, 9.045, 9.055, 9.065, 9.075, 9.085, 9.095, 9.105, 9.115, 9.125, 9.145, 9.155, 9.165, 9.175, 9.185, 9.195, 9.205, 9.215, 9.225, 9.235, 9.245, 9.255, 9.265, 9.275, 9.285, 9.295, 9.305, 9.315, 9.325, 9.335, 9.345, 9.355, 9.365, 9.375, 9.385, 9.395, 9.405, 9.415, 9.425, 9.435, 9.445, 9.455, 9.465, 9.475, 9.485, 9.495, 9.505, 9.515, 9.525, 9.535, 9.545, 9.555, 9.565, 9.575, 9.585, 9.595, 9.605, 9.615, 9.625, 9.635, 9.645, 9.655, 9.665, 9.675, 9.685, 9.695, 9.705, 9.715, 9.725, 9.735, 9.745, 9.755, 9.765, 9.775, 9.785, 9.795, 9.805, 9.815, 9.825, 9.835, 9.845, 9.855, 9.865, 9.875, 9.885, 9.895, 9.905, 9.915, 9.925, 9.935, 9.945, 9.955, 9.965, 9.975, 9.985, 9.995, 10.005, 10.015, 10.025, 10.035, 10.045, 10.055, 10.065, 10.075, 10.085, 10.095, 10.105, 10.115, 10.125, 10.135, 10.145, 10.155, 10.175, 10.185, 10.195, 10.205, 10.215, 10.225, 10.235, 10.245, 10.255, 10.265, 10.275, 10.285, 10.295, 10.305, 10.315, 10.325, 10.335, 10.345, 10.355, 10.365, 10.375, 10.385, 10.395, 10.405, 10.415, 10.425, 10.435, 10.445, 10.455, 10.465, 10.475, 10.485, 10.495, 10.505, 10.515, 10.525, 10.535, 10.545, 10.555, 10.565, 10.575, 10.585, 10.595, 10.605, 10.615, 10.625, 10.635, 10.645, 10.655, 10.665, 10.675, 10.685, 10.695, 10.705, 10.715, 10.725, 10.735, 10.745, 10.755, 10.765, 10.775, 10.785, 10.795, 10.805, 10.815, 10.825, 10.835, 10.845, 10.855, 10.865, 10.875, 10.885, 10.895, 10.905, 10.915, 10.925, 10.935, 10.945, 10.955, 10.965, 10.975, 10.985, 10.995, 11.005, 11.015, 11.025, 11.035, 11.045, 11.055, 11.065, 11.075, 11.085, 11.095, 11.105, 11.115, 11.125, 11.145, 11.155, 11.175, 11.185, 11.195, 11.205, 11.215, 11.225, 11.235, 11.245, 11.255, 11.265, 11.275, 11.285, 11.295, 11.305, 11.315, 11.325, 11.335, 11.345, 11.355, 11.365, 11.375, 11.385, 11.395, 11.405, 11.415, 11.425, 11.435, 11.445, 11.455, 11.465, 11.475, 11.485, 11.495, 11.505, 11.515, 11.525, 11.535, 11.545, 11.555, 11.565, 11.575, 11.585, 11.595, 11.605, 11.615, 11.625, 11.635, 11.645, 11.655, 11.665, 11.675, 11.685, 11.695, 11.705, 11.715, 11.725, 11.735, 11.745, 11.755, 11.765, 11.775, 11.785, 11.795, 11.805, 11.815, 11.825, 11.835, 11.845, 11.855, 11.865, 11.875, 11.885, 11.895, 11.905, 11.915, 11.925, 11.935, 11.945, 11.955, 11.965, 11.975, 11.985, 11.995, 12.005, 12.015, 12.025, 12.035, 12.045, 12.055, 12.065, 12.075, 12.085, 12.095, 12.105, 12.115, 12.125, 12.135, 12.145, 12.155, 12.165, 12.175, 12.185, 12.195, 12.205, 12.215, 12.225, 12.235, 12.245, 12.255, 12.265, 12.275, 12.285, 12.295, 12.305, 12.315, 12.325, 12.335, 12.345, 12.355, 12.365, 12.375, 12.395, 12.405, 12.415, 12.425, 12.435, 12.445, 12.455, 12.465, 12.475, 12.485, 12.495, 12.505, 12.515, 12.525, 12.535, 12.545, 12.555, 12.565, 12.575, 12.585, 12.595, 12.605, 12.615, 12.625, 12.635, 12.645, 12.655, 12.665, 12.675, 12.685, 12.695, 12.705, 12.715, 12.725, 12.735, 12.745, 12.755, 12.765, 12.775, 12.785, 12.795, 12.805, 12.815, 12.825, 12.835, 12.845, 12.855, 12.865, 12.875, 12.885, 12.895, 12.905, 12.915, 12.925, 12.935, 12.945, 12.955, 12.965, 12.975, 12.985, 12.995, 13.005, 13.015, 13.025, 13.035, 13.045, 13.055, 13.065, 13.075, 13.085, 13.095, 13.105, 13.115, 13.125, 13.135, 13.145, 13.155, 13.165, 13.175, 13.185, 13.195, 13.205, 13.215, 13.225, 13.235, 13.245, 13.255, 13.265, 13.275, 13.285, 13.295, 13.305, 13.315, 13.325, 13.335, 13.345, 13.355, 13.365, 13.375, 13.385, 13.395, 13.405, 13.415, 13.425, 13.435, 13.445, 13.455, 13.465, 13.475, 13.495, 13.505, 13.515, 13.535, 13.545, 13.555, 13.565, 13.575, 13.585, 13.595, 13.605, 13.615, 13.625, 13.635, 13.655, 13.675, 13.685, 13.695, 13.705, 13.715, 13.725, 13.735, 13.745, 13.765, 13.775, 13.785, 13.795, 13.805, 13.815, 13.825, 13.835, 13.845, 13.855, 13.865, 13.875, 13.885, 13.895, 13.905, 13.915, 13.935, 13.945, 13.955, 13.975, 13.985, 13.995, 14.005, 14.015, 14.035, 14.045, 14.055, 14.065, 14.075, 14.085, 14.095, 14.105, 14.115, 14.125, 14.135, 14.145, 14.155, 14.165, 14.175, 14.185, 14.195, 14.205, 14.215, 14.225, 14.235, 14.245, 14.255, 14.265, 14.275, 14.285, 14.295, 14.305, 14.315, 14.325, 14.335, 14.345, 14.355, 14.365, 14.375, 14.385, 14.395, 14.405, 14.415, 14.425, 14.435, 14.445, 14.455, 14.465, 14.475, 14.485, 14.495, 14.505, 14.515, 14.525, 14.535, 14.545, 14.555, 14.565, 14.575, 14.585, 14.595, 14.605, 14.615, 14.625, 14.635, 14.645, 14.655, 14.665, 14.675, 14.685, 14.695, 14.705, 14.715, 14.725, 14.735, 14.745, 14.755, 14.765, 14.775, 14.785, 14.795, 14.805, 14.815, 14.825, 14.835, 14.845, 14.855, 14.865, 14.875, 14.885, 14.895, 14.905, 14.915, 14.925, 14.935, 14.945, 14.955, 14.965, 14.975, 14.985, 14.995, 15.005, 15.015, 15.025, 15.035, 15.045, 15.055, 15.065, 15.075, 15.085, 15.095, 15.105, 15.115, 15.125, 15.135, 15.145, 15.155, 15.165, 15.175, 15.185, 15.195, 15.205, 15.215, 15.225, 15.235, 15.245, 15.255, 15.265, 15.275, 15.285, 15.295, 15.305, 15.315, 15.325, 15.335, 15.345, 15.355, 15.365, 15.375, 15.385, 15.395, 15.405, 15.415, 15.425, 15.435, 15.445, 15.455, 15.465, 15.475, 15.485, 15.495, 15.505, 15.515, 15.525, 15.535, 15.545, 15.555, 15.565, 15.575, 15.585, 15.595, 15.605, 15.615, 15.625, 15.635, 15.645, 15.655, 15.665, 15.675, 15.685, 15.695, 15.705, 15.715, 15.725, 15.735, 15.745, 15.755, 15.765, 15.775, 15.785, 15.795, 15.805, 15.815, 15.825, 15.835, 15.845, 15.855, 15.865, 15.875, 15.885, 15.895, 15.905, 15.915, 15.925, 15.935, 15.945, 15.955, 15.965, 15.975, 15.985, 15.995, 16.005, 16.015, 16.035, 16.055, 16.065, 16.075, 16.085, 16.095, 16.105, 16.115, 16.125, 16.135, 16.145, 16.155, 16.165, 16.175, 16.185, 16.195, 16.205, 16.215, 16.225, 16.235, 16.245, 16.255, 16.265, 16.275, 16.285, 16.305, 16.315, 16.325, 16.335, 16.345, 16.355, 16.365, 16.375, 16.385, 16.395, 16.405, 16.425, 16.435, 16.445, 16.455, 16.465, 16.475, 16.485, 16.495, 16.505, 16.515, 16.525, 16.535, 16.545, 16.555, 16.565, 16.575, 16.585, 16.595, 16.605, 16.615, 16.625, 16.635, 16.645, 16.655, 16.665, 16.675, 16.685, 16.695, 16.705, 16.715, 16.725, 16.735, 16.745, 16.755, 16.765, 16.775, 16.785, 16.795, 16.805, 16.815, 16.825, 16.835, 16.845, 16.855, 16.865, 16.885, 16.895, 16.905, 16.925, 16.935, 16.945, 16.955, 16.965, 16.975, 16.985, 16.995, 17.005, 17.015, 17.025, 17.035, 17.045, 17.055, 17.065, 17.075, 17.085, 17.095, 17.105, 17.115, 17.125, 17.135, 17.145, 17.155, 17.165, 17.175, 17.185, 17.195, 17.205, 17.215, 17.225, 17.235, 17.245, 17.255, 17.265, 17.275, 17.285, 17.295, 17.305, 17.315, 17.325, 17.335, 17.345, 17.355, 17.375, 17.385, 17.395, 17.405, 17.415, 17.425, 17.445, 17.455, 17.465, 17.475, 17.485, 17.495, 17.505, 17.515, 17.525, 17.535, 17.545, 17.555, 17.565, 17.575, 17.585, 17.595, 17.605, 17.615, 17.625, 17.635, 17.645, 17.655, 17.665, 17.675, 17.685, 17.695, 17.705, 17.715, 17.725, 17.735, 17.745, 17.755, 17.765, 17.775, 17.785, 17.795, 17.805, 17.815, 17.825, 17.835, 17.845, 17.855, 17.865, 17.875, 17.885, 17.895, 17.905, 17.915, 17.925, 17.935, 17.945, 17.955, 17.965, 17.975, 17.985, 17.995, 18.005, 18.015, 18.025, 18.035, 18.045, 18.055, 18.065, 18.075, 18.085, 18.095, 18.105, 18.115, 18.125, 18.135, 18.145, 18.155, 18.165, 18.175, 18.185, 18.195, 18.205, 18.225, 18.235, 18.245, 18.255, 18.265, 18.275, 18.285, 18.295, 18.305, 18.315, 18.325, 18.335, 18.345, 18.355, 18.365, 18.375, 18.385, 18.395, 18.405, 18.415, 18.425, 18.435, 18.445, 18.455, 18.465, 18.475, 18.485, 18.495, 18.505, 18.515, 18.525, 18.535, 18.545, 18.555, 18.565, 18.575, 18.585, 18.595, 18.605, 18.615, 18.625, 18.635, 18.645, 18.655, 18.665, 18.675, 18.685, 18.695, 18.705, 18.715, 18.725, 18.735, 18.745, 18.755, 18.765, 18.775, 18.785, 18.795, 18.805, 18.815, 18.825, 18.835, 18.845, 18.855, 18.865, 18.875, 18.885, 18.895, 18.905, 18.915, 18.925, 18.935, 18.945, 18.955, 18.975, 18.985, 18.995, 19.005, 19.015, 19.025, 19.035, 19.045, 19.055, 19.065, 19.075, 19.085, 19.095, 19.105, 19.115, 19.125, 19.145, 19.155, 19.165, 19.175, 19.185, 19.195, 19.205, 19.215, 19.225, 19.235, 19.245, 19.265, 19.275, 19.285, 19.295, 19.305, 19.315, 19.325, 19.335, 19.345, 19.355, 19.365, 19.375, 19.385, 19.395, 19.405, 19.415, 19.425, 19.435, 19.445, 19.455, 19.465, 19.475, 19.485, 19.495, 19.505, 19.515, 19.525, 19.535, 19.545, 19.555, 19.565, 19.575, 19.585, 19.595, 19.605, 19.615, 19.625, 19.635, 19.645, 19.655, 19.665, 19.675, 19.685, 19.695, 19.705, 19.715, 19.725, 19.735, 19.745, 19.755, 19.775, 19.785, 19.795, 19.805, 19.815, 19.825, 19.835, 19.845, 19.855, 19.865, 19.875, 19.885, 19.895, 19.915, 19.925, 19.935, 19.945, 19.955, 19.965, 19.975, 19.985, 19.995] }, { "type": "double", "attributes": {}, "value": [1282.66846665, 2678.84266748, 3176.49281381, 3207.73939841, 3036.25073748, 2806.95035099, 2770.84421878, 2626.56542997, 2530.44268487, 2552.50622896, 2400.64242058, 2290.37492004, 2281.13997597, 2313.51506549, 2338.38259643, 2385.15496558, 2242.19775323, 2274.34577325, 2205.51275019, 2142.27069799, 2157.1254801, 2149.14914652, 2037.6686636, 1991.25958604, 2026.88563361, 2016.86527802, 2030.10524435, 2003.48675891, 1911.72869731, 1878.81677482, 1805.72746911, 1765.72219312, 1826.53140851, 1891.68857877, 1882.93868485, 1804.07842485, 1659.05418516, 1603.80414962, 1601.1835157, 1607.19856169, 1507.21144035, 1632.01873606, 1640.61798744, 1516.60464797, 1504.874291, 1488.38998693, 1410.45651294, 1439.82551474, 1495.37389881, 1423.80165505, 1347.01182871, 1323.90652649, 1278.247265, 1251.47189729, 1335.24130017, 1184.25287137, 1163.75621863, 1178.35598311, 1147.43145083, 1146.37869277, 1109.37248072, 1108.28160687, 1075.24951077, 1018.04515705, 1038.66383644, 1065.47117181, 987.62252243, 986.92611153, 1015.87539416, 951.75356165, 904.27654012, 939.90871673, 946.82931928, 927.05367084, 883.3301276, 850.49605534, 894.27952804, 873.09222498, 825.32810885, 776.3476729, 799.05217221, 776.00520578, 776.64097331, 835.82113296, 697.18823778, 726.05744188, 678.22839642, 687.87957387, 617.22219893, 680.88748385, 694.17983993, 679.44243962, 682.94651386, 634.44511649, 654.74695577, 589.27504389, 621.6158907, 625.96004093, 637.15054405, 580.84787505, 575.51546994, 556.21546975, 579.09955772, 568.84220553, 539.89776515, 522.27426175, 522.67038889, 555.76325694, 518.04448386, 506.72822291, 496.35561795, 460.83970707, 461.6009003, 400.73796279, 403.31554398, 466.31265693, 452.28396086, 472.4737767, 456.3811414, 398.4937579, 370.38607285, 380.1891415, 350.51817253, 352.34195793, 387.32312218, 394.48337096, 390.88640554, 369.1160459, 338.38158374, 366.67829368, 330.23299814, 348.28008846, 377.04186668, 304.743789, 311.54026093, 354.59403641, 294.66203029, 304.01837615, 318.41306794, 324.10601865, 309.81368711, 313.05733333, 320.56182746, 285.35811681, 260.76430672, 236.28237451, 257.09063689, 261.83271554, 268.26460849, 246.65412296, 239.74939704, 235.50291351, 214.97884561, 245.79912577, 238.27506569, 274.79482044, 270.7520443, 242.7653851, 240.84755756, 215.4375773, 187.67078351, 203.22865705, 200.27905977, 194.55080868, 198.54986421, 208.13966604, 226.21997853, 197.20312624, 153.66387052, 160.77732625, 182.19790393, 162.44419421, 191.5601584, 196.57927283, 179.00377458, 162.58246634, 180.58311062, 174.59786878, 163.75045149, 185.61234841, 173.3692758, 164.61370391, 153.83444167, 139.42553167, 142.61708786, 175.27452521, 144.50714105, 130.61003529, 135.88517392, 133.98259448, 130.35570852, 100.44008965, 169.58434046, 122.61640549, 151.78925901, 121.46274821, 160.74370391, 94.14653239, 100.57854758, 166.26553027, 129.29872444, 100.99146899, 127.08383416, 141.01973069, 98.45362893, 116.50890735, 100.05417298, 100.75789095, 106.31211256, 104.18677985, 116.10386865, 106.4108068, 82.25425676, 92.48711484, 93.3452084, 83.07320716, 107.7964263, 93.56879571, 110.51097132, 103.40378371, 84.31516286, 91.27457928, 98.00910107, 99.01745348, 105.43694392, 97.80301208, 103.67508978, 98.10647255, 100.10486483, 100.32108588, 72.91119769, 82.14227521, 76.21791604, 68.6075725, 85.99140062, 95.03010454, 82.63402685, 83.08862761, 69.51490212, 69.01469398, 85.23168967, 72.79430337, 69.46836279, 90.05238246, 91.86597221, 73.67238227, 66.88067766, 71.23033341, 72.91188106, 68.04474432, 65.33732388, 68.16926886, 70.82393749, 67.42255058, 60.7755119, 60.08949286, 63.63924728, 58.74683625, 52.11033661, 62.2558823, 74.44670895, 57.91095999, 42.19610824, 52.72244624, 45.61327373, 65.98844685, 62.30220796, 49.46561843, 51.29959428, 50.86653208, 44.54077854, 31.63446414, 38.87915504, 44.85678525, 45.01023205, 32.21170824, 59.97342546, 50.88507333, 42.08992406, 54.42326378, 39.26185386, 49.81990746, 35.48413654, 38.38669862, 34.88891434, 59.95688996, 48.95713868, 40.69619084, 58.88864143, 52.03788638, 39.42974149, 39.16184141, 76.63498147, 41.05050896, 33.34125784, 44.37248263, 38.41997025, 32.25907266, 52.01966095, 70.97897433, 43.60263834, 31.79517268, 40.61346648, 35.83541383, 28.96462848, 28.80057514, 37.30736186, 26.32424739, 43.27649785, 26.78748587, 32.19815505, 31.86595871, 27.23570729, 39.08262767, 27.11125863, 34.45475166, 26.87674457, 12.22145329, 24.45455736, 44.8698636, 33.03937748, 41.31660138, 20.79698431, 30.19418025, 27.1418978, 35.10683027, 32.07927357, 42.12287802, 32.67406543, 25.06086067, 19.10873803, 21.56573562, 18.99332209, 17.8884096, 18.619568, 21.02561279, 34.95860109, 29.57802209, 20.67593963, 33.00133817, 29.89313316, 23.74956109, 40.39439256, 35.88651503, 24.97516615, 23.51486199, 12.57343976, 12.97377271, 22.21840301, 23.58475716, 22.48722297, 25.81929582, 31.34033694, 18.92430945, 22.11794294, 21.91502482, 24.43139679, 19.77247329, 17.04980316, 24.02320079, 28.38920627, 19.35002637, 13.92149407, 18.14910701, 27.6680635, 23.23553691, 15.85308373, 13.87338573, 13.41680401, 14.40551603, 19.49828949, 20.48213376, 14.93838289, 19.87311113, 22.34409257, 13.96761172, 16.56908824, 30.58368382, 21.80786009, 11.82804368, 15.72732216, 17.31549286, 12.86559192, 11.25905499, 11.1599255, 12.25342534, 41.9535769, 37.98264901, 32.64700174, 19.00679467, 28.86937908, 23.88547949, 23.6383752, 22.28924273, 20.45008288, 15.93549605, 28.66983801, 18.58856089, 17.91014587, 15.8616936, 12.74833215, 14.63298681, 17.25812813, 21.44230036, 10.0848108, 14.18627932, 17.35533401, 26.61626476, 18.77922843, 7.92042764, 14.77243267, 25.13092439, 14.34850176, 11.12902603, 4.0505927, 14.38927456, 20.03931423, 12.21392032, 7.69412546, 13.30627866, 20.25676646, 14.66123023, 16.77446782, 9.79190428, 16.07049814, 15.68598837, 10.3186832, 13.40437735, 17.37714166, 19.34803506, 10.95016364, 11.40301676, 17.25667744, 32.84568443, 17.27380408, 7.34606687, 12.86005754, 11.69580343, 9.39335493, 18.14656771, 21.05757249, 11.04574908, 13.2569765, 22.26154684, 31.82231714, 13.06525953, 17.96596194, 19.78908401, 13.92735057, 13.01782913, 30.83828426, 12.00016694, 11.94898725, 11.94913202, 10.97351859, 19.60329888, 20.87921396, 46.34591993, 16.6996249, 17.82353754, 10.27712331, 17.31457199, 8.39383169, 23.84967656, 8.7044642, 4.2120403, 12.52216146, 10.26926599, 8.14076557, 13.17171466, 14.82948254, 20.13985698, 7.93303497, 11.99996712, 16.36022259, 7.84748695, 17.22432578, 19.92070934, 9.13354216, 7.96845684, 9.612796, 11.59980474, 5.77789088, 5.78913477, 12.67056596, 18.11618771, 26.65564943, 16.99512437, 18.80702389, 10.56397048, 3.76627506, 14.26239892, 6.90721299, 15.68683037, 16.32392208, 11.78984245, 25.81268636, 18.272962, 15.68414341, 12.06114256, 11.6870982, 13.38820682, 16.06990109, 14.71498237, 8.47126145, 8.34611586, 20.06425515, 5.78071602, 11.27476932, 15.55260531, 5.87654252, 10.30380939, 21.59767035, 13.41469784, 6.25980598, 6.23306961, 8.23539773, 4.36140867, 10.28559303, 15.82466881, 8.94121979, 17.62629415, 16.74946086, 7.74045371, 13.04469156, 11.52616049, 9.69148393, 10.34410868, 12.21035879, 11.40452182, 12.17202256, 16.70501792, 11.41501157, 9.0750291, 11.06886864, 15.0752104, 16.17874656, 8.93417287, 9.9633647, 19.38273225, 13.10115242, 10.38006736, 12.40968459, 12.48245523, 9.33501028, 8.41364941, 8.27822072, 5.86502862, 3.11914266, 3.76154118, 2.62514475, 2.80640445, 10.13181605, 11.94168586, 10.46971017, 16.05364132, 12.07296971, 6.90748554, 9.96788413, 12.73700843, 15.50528175, 11.42351387, 8.97138001, 10.19449347, 9.43731207, 9.43627192, 11.53588044, 12.05886396, 5.29499968, 1.77921652, 7.42703118, 15.20096593, 13.77415524, 12.53167508, 7.97529712, 9.9304869, 15.04746409, 22.10330426, 31.4922616, 25.93183271, 13.9421505, 6.93866108, 11.5294064, 18.6343133, 21.57467578, 17.45106724, 10.4489686, 14.28981659, 12.5953515, 10.13821758, 11.48975421, 8.97332666, 7.43775897, 9.52376321, 28.27736066, 14.25747108, 8.12919952, 3.015891, 10.2886266, 12.86185092, 4.98549596, 4.31714173, 5.56162652, 19.81929126, 9.4490497, 13.43164819, 11.08531138, 11.81811407, 5.98292126, 7.10953836, 10.83526189, 11.22063932, 26.86300407, 10.98731016, 6.84467409, 18.69660642, 14.49355762, 12.24815693, 9.24463412, 6.50791644, 4.98616227, 4.98619447, 5.92141654, 11.06916147, 7.00156943, 4.53286889, 8.14949935, 9.29895237, 10.79127103, 7.60400752, 2.13221009, 4.05762046, 17.27891464, 8.37616424, 10.64778721, 8.97594226, 8.00639608, 4.68877892, 11.69707031, 5.67856461, 4.57852018, 11.00184636, 6.27647563, 8.18555572, 4.1712563, 6.08291183, 7.73143841, 18.25670955, 13.14271372, 14.76841625, 12.77979534, 10.8852435, 10.44921885, 14.44121388, 1.28081433, 27.98246831, 2.9158007, 2.04414813, 2.92480465, 2.17104782, 10.26494292, 17.08819713, 6.27642898, 18.25575209, 7.01402297, 7.91143543, 5.92164841, 3.96427647, 3.02144332, 5.06001939, 13.00749437, 16.77140922, 3.9856419, 2.99326151, 6.96248019, 4.99979141, 7.94000686, 14.82772019, 9.06193387, 5.05236566, 28.59041494, 6.27322993, 4.04384129, 2.04627876, 10.24842038, 6.14650872, 22.42083706, 10.43176687, 8.07889639, 10.77231502, 7.18144134, 14.23646336, 14.96473039, 4.39280288, 16.0123796, 7.53048456, 12.317094, 9.27088446, 2.28646628, 13.86684506, 12.38654952, 3.44396622, 8.79466061, 9.08240003, 9.86021263, 9.97714824, 1.31195996, 12.60646228, 10.74398947, 8.2158367, 11.34442334, 5.62187016, 7.47375505, 11.29640934, 12.81918334, 11.25474295, 10.12514853, 5.56396719, 8.16978703, 12.21054412, 9.55164253, 6.41722997, 3.37873709, 2.14508703, 9.23365357, 12.97155539, 4.98401115, 5.5387896, 14.4924668, 12.10466336, 4.8969366, 9.55370746, 5.02131139, 7.56000461, 6.53444439, 5.19266358, 4.98931566, 7.86411342, 11.92347761, 9.78302704, 12.5869184, 16.19367541, 7.70942512, 2.61534042, 3.35783227, 9.63025697, 3.2234767, 10.15736317, 7.99147948, 14.48708849, 11.13725109, 8.2440829, 9.38314674, 12.71766574, 5.68805628, 11.6835185, 6.16778988, 3.9918269, 5.91980268, 6.98575759, 2.9153013, 8.45612183, 11.53948826, 8.55994552, 5.78752185, 6.87311945, 17.75313623, 17.08835082, 2.37480777, 2.92571148, 6.24144618, 4.82384992, 5.77107646, 11.00317356, 8.04088575, 7.21722393, 8.6152086, 4.434497, 5.14653579, 5.64026478, 6.17458155, 3.1743269, 5.12196308, 7.68012127, 9.24681701, 13.29418947, 7.62769572, 3.65313254, 6.22197859, 9.980898, 16.46761981, 11.27059668, 5.00837026, 6.01678727, 8.55807527, 7.75395462, 3.36864753, 4.1241668, 8.075296, 12.03756632, 9.6976504, 6.9869588, 3.44859041, 6.17604751, 16.05411458, 7.60879986, 3.99262486, 2.73056942, 6.80999239, 11.03890999, 10.90886995, 7.59849218, 6.15029517, 7.86393175, 9.2807861, 9.03307044, 6.44860945, 4.85564121, 4.9188421, 4.20176334, 4.93035341, 5.6260346, 3.99286488, 6.91009754, 8.49245852, 4.90380863, 2.84271402, 2.79842144, 8.04507538, 11.07324018, 2.7558645, 3.37692655, 3.86578944, 2.94033821, 15.01361759, 13.53947313, 3.92612878, 3.76316554, 4.25456701, 2.72978926, 2.92656525, 3.00265312, 7.61735091, 11.5646047, 4.94510948, 1.99659703, 2.96235082, 5.76398779, 4.10486797, 4.67049311, 16.53320573, 13.90142302, 5.70788449, 2.53622222, 2.89946607, 5.71890352, 4.97398143, 6.97027597, 16.66255689, 7.6628859, 0, 9.16392677, 6.67735424, 4.991816, 4.12108733, 2.99510954, 4.30335284, 10.29789607, 10.46323049, 3.58637295, 2.30873374, 2.99516879, 3.5857715, 6.13027917, 10.47264343, 8.23100579, 3.56501618, 4.62929569, 4.81778723, 5.80256686, 3.99367489, 3.63537656, 5.15153538, 13.73697172, 9.29976667, 5.15785932, 2.26678342, 3.71297937, 5.66449896, 6.1643407, 6.94541525, 4.29156816, 8.58399659, 4.88937994, 3.83069385, 6.3447817, 6.40569027, 10.29234268, 5.97835105, 4.2480198, 3.88519053, 2.68917098, 6.24373153, 8.06419116, 12.70505723, 11.80395456, 5.71663474, 7.73812076, 23.0495685, 9.68041576, 2.8393297, 1.54443426, 0, 19.94656647, 11.80514371, 13.31904101, 9.76942608, 9.34172379, 4.21476989, 11.1581017, 4.0953005, 2.17771639, 3.58159437, 5.85970435, 4.42353823, 14.41042278, 3.99424668, 3.99425822, 3.99426974, 4.16916252, 5.16825222, 7.69979593, 18.45188381, 7.31602568, 8.35914667, 4.93799956, 1.99718049, 2.8779486, 14.25033384, 6.6234671, 9.31702218, 4.26235117, 6.59175294, 9.72226873, 5.54862399, 9.00269753, 5.12866712, 5.83612996, 4.64449217, 3.21644642, 4.99314619, 5.22314507, 7.58197134, 11.75346329, 4.78094659, 1.32679502, 11.10036903, 18.74506596, 3.17818542, 5.26562825, 7.87233169, 6.38029934, 2.99598529, 3.21692214, 5.88367535, 5.08289365, 6.34685722, 10.00576032, 4.14278575, 6.49049116, 14.20410781, 8.25982153, 11.17842246, 5.4051915, 13.52958296, 9.32426648, 14.34194119, 8.2087956, 11.6764876, 7.98965188, 7.36094465, 2.21056114, 11.79965538, 9.16036248, 12.67817954, 7.25392335, 1.09995665, 8.988543, 9.02548149, 9.94910849, 8.91242498, 7.20131436, 17.41646038, 5.71617219, 1.06853373, 16.78753865, 10.00544686, 10.84561038, 4.93080032, 2.03436655, 9.99604329, 10.97231904, 8.96830118, 4.99225515, 3.99602378, 14.91169954, 7.02352486, 4.01411776, 9.8880653, 5.04057419, 10.84989848, 1.04370266, 18.76881796, 4.14756939, 0, 3.99519469, 7.80935921, 6.0543549, 5.99283512, 7.89815159, 1.09185045, 19.93295939, 5.37116253, 5.93838208, 3.1076362, 11.10620399, 11.98589764, 3.25561055, 3.92440775, 8.53023558, 5.19501585, 8.62974022, 8.98954941, 4.24352188, 11.01735141, 6.33090691, 7.80557484, 7.07073946, 8.79677898, 11.68425887, 4.41597577, 8.33342657, 2.30759248, 8.52764921, 6.30935249, 11.16036873, 8.33985201, 6.18195984, 7.74176981, 9.74111444, 5.40836717, 9.20913959, 6.37092221, 7.71555038, 3.38532737, 1.14806141, 0.99889332, 3.33019691, 7.28363723, 8.84713655, 6.33947222, 10.87235203, 5.66128187, 4.99454377, 8.24210161, 7.2612782, 11.04123671, 11.9870098, 12.82364599, 6.7799919, 1.33483506, 11.18930951, 8.18272046, 2.46817353, 7.58520991, 11.61422146, 13.61144556, 6.96930789, 9.11043718, 15.41370943, 5.22155578, 6.29709513, 6.17137899, 3.42299786, 6.60621189, 7.99164777, 3.64169551, 24.21531321, 22.19211623, 8.58587874, 10.7172358, 6.00354449, 7.23252955, 4.63696287, 11.83220029, 13.59146416, 8.89909213, 4.6662861, 13.34662117, 11.56621819, 7.59221351, 6.99292393, 8.47519, 4.84393499, 5.43913705, 1.54074623, 9.97886579, 13.75972581, 5.25070277, 2.37736217, 0, 4.53614381, 0, 7.8420865, 3.06789037, 6.00230844, 9.70912566, 11.40595985, 9.73241268, 19.34957167, 2.48574005, 3.17282353, 10.96658907, 5.8351745, 6.54315609, 8.68858286, 6.75051789, 9.76988074, 8.20938643, 9.59755906, 3.34264492, 1.23342561, 8.79655016, 13.79690911, 7.23616821, 5.28846709, 3.52041318, 5.34538684, 4.77825941, 4.64948653, 4.2956318, 4.64498764, 6.26261748, 9.46600742, 7.33254216, 7.25918778, 9.26758681, 13.63147461, 8.37608938, 8.38409972, 8.63309461, 10.971475, 10.22580218, 8.33096451, 5.10784044, 3.99639205, 4.61162914, 5.61330908, 8.30168268, 8.67060564, 7.34491903, 4.09760183, 8.92173719, 17.6043577, 7.02939205, 4.59193245, 9.03635984, 15.3313729, 12.98975229, 8.32728396, 8.15627604, 11.77200799, 9.9561453, 2.26960482, 2.30598918, 8.48750712, 8.41977854, 5.37659049, 6.60726437, 7.38484446, 9.61589128, 6.2805359, 7.23333082, 5.1438431, 5.30610056, 8.55851261, 7.11348643, 5.39731946, 3.72639519, 9.1196191, 15.25438695, 10.81116898, 8.16647244, 6.41230859, 4.77460093, 8.67814405, 15.42204276, 14.42441426, 11.61317727, 5.14682337, 2.39940517, 3.29829162, 6.45381483, 3.76689641, 7.30658011, 8.77631439, 3.42509913, 1.66631984, 1.79340579, 6.52409129, 4.83193216, 2.4737233, 2.42361704, 3.54664455, 4.18055414, 5.59324466, 11.88668903, 5.14534473, 5.97721621, 15.93633293, 7.65975217, 6.02372473, 5.97682969, 7.22051631, 10.80922877, 7.34955077, 5.99533109, 8.44152122, 6.98672711, 5.61194134, 6.94760576, 4.28196832, 1.7622625, 0, 7.41009668, 5.49754625, 2.3317262, 2.13417281, 5.44271607, 6.44346605, 9.97335909, 8.12292782, 5.17477208, 6.99475708, 7.84703337, 4.53299326, 3.74749183, 11.81361059, 9.4242142, 4.41681228, 2.43908744, 1.35895406, 2.71417854, 5.70898462, 10.19998697, 8.18899523, 5.7812689, 4.07302819, 3.42377919, 4.86840277, 4.02694526, 4.46953908, 4.7651026, 11.14491427, 12.65295705, 11.49395064, 6.25130054, 4.32167341, 14.14530479, 11.41027765, 7.74674335, 14.2287539, 13.99278249, 9.04127212, 14.69319627, 9.97984126, 9.32066956, 4.99651935, 4.99652691, 4.09690399, 6.90974103, 13.77854516, 8.32932112, 12.98054688, 4.35149736, 3.52362297, 8.60519261, 4.76591346, 3.00499667, 6.66797024, 7.61189127, 6.99527382, 7.9636671, 11.84444299, 15.2395061, 8.9371349, 5.53820822, 8.80822161, 6.62588296, 5.20253691, 5.08844426, 8.32751987, 9.93071464, 10.43738998, 5.72453725, 3.79123151, 7.77937034, 12.28476531, 7.84938101, 3.99740451, 3.63625763, 2.62550658, 3.48047785, 9.49766879, 8.93843246, 12.26128444, 7.99488929, 5.15952161, 3.41393139, 9.54647293, 8.04873536, 8.62021447, 4.99684839, 5.76605547, 9.67098801, 10.07169526, 4.2733229, 3.80588758, 3.94482478, 14.03939782, 6.95918019, 13.99766908, 22.19889105, 8.00985289, 5.69365831, 5.49469148, 6.99572477, 4.06890236, 0.99939202, 1.70590781, 7.49245044, 8.71192042, 0, 2.78762673, 5.595124, 0, 7.67056665, 9.12095064, 8.18941693, 13.4706074, 9.04439288, 2.82266588, 4.78261393, 1.66440927, 6.29699477, 4.55920055, 0, 0, 7.41690627, 8.75374744, 6.82263994, 3.41563109, 2.65038388, 5.78961632, 3.72612023, 0, 4.76189747, 3.99775107, 4.63220741, 6.9090695, 4.84110755, 8.65801325, 4.14035837, 2.17080266, 3.32371068, 5.85023376, 10.78833711, 11.86833495, 21.89147392, 10.99435341, 3.30547785, 0, 7.17169047, 7.80189935, 0, 5.59523086, 2.42690061, 6.30608001, 8.44867339, 0, 8.67397422, 10.18725448, 3.59092567, 8.63561539, 6.82526356, 6.50366991, 9.45031109, 7.14294483, 7.18872892, 3.23946601, 1.33821756, 6.43948644, 3.83299813, 2.82760579, 2.11825282, 3.79783247, 14.97754072, 8.46833261, 2.58259443, 1.24036973, 4.67065465, 3.20544109, 5.30962152, 10.1692421, 41.79058278, 7.08270503, 3.47257348, 9.73059192, 7.36589374, 4.39481213, 7.92841619, 3.47365634, 10.75141854, 9.19588641, 8.4862472, 1.12328115, 3.27623242, 6.60548653, 4.23071091, 7.09005947, 6.98419069, 1.87050692, 1.18320266, 5.62497194, 2.89029677, 1.99905279, 2.2299833, 6.90504527, 5.79677455, 3.99812453, 3.99812925, 3.90865954, 3.33621422, 10.80627669, 2.99861105, 3.21748068, 8.12240822, 9.20516402, 3.28912128, 10.67596201, 2.21344968, 9.77828277, 7.18879109, 10.36655827, 4.15783135, 8.27657051, 14.81670592, 11.33620886, 4.0427953, 5.314698, 16.78153612, 4.14552686, 8.18636935, 1.128589, 18.01503512, 5.03242168, 5.91005855, 4.02914064, 4.91477795, 3.09163548, 7.67677951, 2.096004, 10.99526158, 10.91017459, 8.03721792, 10.12014017, 17.61349669, 6.02805881, 8.15874696, 27.10521842, 3.06542636, 16.87426112, 8.90435525, 3.02413941, 8.96452133, 5.01299309, 9.99584893, 9.99223097, 6.99871619, 17.95347453, 9.02105429, 8.99631373, 4.02203829, 5.97586566, 3.02087566, 6.92494481, 3.034308, 6.90559678, 6.01351153, 5.99759505, 8.92194068, 1.04944353, 4.81024799, 7.90179069, 1.05751172, 0.99960568, 7.50750177, 9.92493808, 7.08174377, 9.87108037, 17.60669725, 3.21335533, 2.03207709, 1.02902221, 9.04417084, 5.15678231, 10.59804715, 6.17611564, 6.94362595, 7.94203754, 1.11665364, 2.8234393, 5.76742055, 7.86440625, 4.16755296, 7.66401157, 1.13950852, 4.50457368, 3.10207066, 6.60655061, 6.06235443, 11.41898545, 10.12969762, 6.22982643, 1.14528185, 9.13069698, 8.20119685, 24.46545597, 10.84842738, 4.31831523, 8.39369692, 5.26098439, 2.16871227, 2.89103245, 5.62742467, 4.1532249, 3.08219604, 6.4466471, 2.26152578, 6.1738318, 7.88949221, 1.23884154, 0.99965495, 11.91000334, 1.3484239, 4.19045416, 4.99829503, 7.58465079, 15.59138528, 2.56206508, 4.48824729, 3.18704325, 4.69959599, 4.10922211, 1.18684383, 3.36067015, 7.32361856, 7.99736045, 6.22681114, 5.11983139, 6.69084257, 5.23038611, 4.99837514, 5.8490293, 5.12720752, 4.12665266, 7.24420741, 2.44205189, 6.53346456, 5.35700079, 5.83736992, 5.13751288, 2.2983849, 9.10890031, 5.72604954, 2.30828163, 4.32334219, 8.1900481, 0, 0, 4.28012752, 7.1122889, 11.19368811, 1.5341436, 2.47752749, 3.80197186, 7.07420942, 3.57311225, 2.15086653, 4.23213899, 7.33787298, 16.18938777, 4.22973583, 8.61566741, 7.62324752, 2.53957949, 1.14235603, 3.65818766, 4.99855911, 4.17859784, 1.31653082, 0.99971465, 5.77698252, 0, 3.02955836, 1.9994387, 1.15580127, 6.63315865, 9.38919332, 7.3845029, 6.99806811, 3.60433774, 7.07777628, 3.81905061, 0, 3.3530819, 5.27223068, 4.54203926, 3.20351278, 5.11231966, 7.48125512, 5.57882965, 8.49377732, 7.61450663, 1.58912468, 5.757216, 6.7849144, 7.45857292, 11.5435905, 1.87754339, 3.35788236, 6.43639396, 9.8212159, 5.15869061, 2.38313228, 6.63506497, 3.02005403, 3.94731986, 5.72159743, 1.59504143, 3.27778617, 1.52834025, 7.31267599, 5.68916419, 6.64124411, 6.48246069, 2.69345258, 6.90899208, 4.28268291, 5.54067501, 6.26038072, 1.64704473, 2.7121665, 2.43049555, 5.87803311, 3.06764708, 3.2798328, 5.33850994, 3.66453755, 0, 5.32503288, 7.27950269, 0, 2.2575826, 3.79459601, 2.63770177, 4.78337633, 6.28766042, 5.99867251, 9.68984156, 9.06816711, 8.6742834, 6.00712945, 2.66627443, 3.21358416, 7.47776535, 6.23353778, 6.28434051, 6.30336803, 9.04319442, 6.45532564, 4.99894956, 2.69862617, 3.69909909, 1.70076898, 3.31173046, 6.64835402, 7.64899298, 4.16990538, 8.71337261, 11.47035469, 6.32873207, 5.63644818, 7.82933815, 6.1214885, 6.79772284, 13.57677145, 7.81654194, 11.89890145, 13.32981961, 11.63446425, 8.47329736, 7.62694913, 5.91404011, 3.60325864, 3.60526523, 0, 2.77905398, 6.73365395, 9.21058799, 5.60873801, 3.99926343, 0, 5.63826824, 7.93552, 6.95821605, 3.64043017, 2.33327083, 1.30290026, 1.5329773, 9.45661806, 5.30449146, 3.9183636, 5.99895878, 6.58989693, 7.59076615, 13.51779983, 15.09850784, 5.36239573, 1.54753431, 4.67051317, 8.17613421, 6.57842541, 3.3141483, 4.89573129, 2.44037445, 3.42759798, 12.48850354, 13.14923919, 6.91662092, 7.05836403, 4.72990631, 2.36707098, 4.4846777, 9.62509095, 6.96284133, 7.02348279, 8.40737799, 8.55985558, 10.61488191, 6.39475202, 7.12895197, 10.99834528, 6.18764747, 7.80429808, 3.04516166, 2.74869895, 8.43907032, 7.06350581, 2.99208137, 5.44275246, 13.07486931, 9.52095979, 3.49356142, 3.99926776, 4.38491345, 5.81964848, 2.82386542, 3.52897706, 16.85193236, 9.37405268, 6.21485132, 2.73415782, 2.6348423, 6.51935486, 6.99907159, 6.44338967, 2.29922035, 2.60245838, 9.05534892, 7.82500635, 9.56013977, 3.80416455, 2.33506802, 5.96655148, 6.45575525, 7.83603283, 13.9738736, 15.59471863, 0, 28.2082749, 10.92199181, 1.70675663, 3.24985395, 15.29778815, 11.60191991, 7.3709449, 9.96162003, 6.5984253, 4.47534791, 6.71677779, 11.22869208, 15.87131513, 9.50665792, 4.99944959, 8.0272974, 11.41785116, 10.479815, 5.80776596, 2.99968081, 6.36907516, 8.47468149, 4.4855826, 4.45645868, 3.90561429, 4.51284514, 3.832967, 1.99979892, 3.09878902, 2.3215555, 2.68644209, 10.06880518, 5.36696739, 4.06264902, 5.37035517, 4.1507715, 3.59082527, 1.44793517, 0.99990743, 3.16098004, 8.71188645, 6.44082374, 4.74346829, 3.42202589, 4.81289081, 5.99947475, 9.36325282, 12.33152409, 6.24191771, 2.14390926, 2.39318616, 3.99743035, 2.39606821, 3.76439433, 5.4203167, 3.69241028, 4.23765794, 5.20248765, 3.66948704, 8.81778188, 10.42270425, 9.04052461, 5.49465884, 3.5330637, 4.57310916, 7.07151714, 4.46173605, 2.99978402, 1.88147862, 3.14629046, 7.60527101, 4.28432348, 4.13923886, 0, 11.88806046, 7.42627475, 9.44742969, 4.5109252, 2.99980901, 2.99981108, 2.99981314, 3.97532643, 2.90441931, 1.32270711, 3.31030082, 5.59271834, 2.29835598, 1.31792426, 2.34920764, 0, 11.00105639, 5.19089425, 2.25245762, 9.05519504, 9.72118718, 4.68055939, 2.33808314, 3.65001555, 6.26105956, 7.71001634, 0, 8.68861677, 9.49683263, 5.18694091, 7.99964295, 9.8530159, 13.61966586, 12.22073008, 8.79778288, 8.39954641, 8.32367501, 3.86246953, 6.95205962, 5.22077414, 3.29769195, 6.2353771, 4.33267052, 5.63776904, 8.7234433, 7.73183774, 3.59277196, 3.62221377, 2.30532881, 3.585729, 6.13438885, 10.74314209, 10.93060978, 8.40829238, 9.01337226, 3.57171671, 3.66064564, 2.29461234, 4.65227782, 7.10468878, 2.99992548, 2.62009653, 2.71255035, 7.64333949, 15.29919734, 6.279953, 2.69995081, 5.3063323, 4.7897424, 4.28120209, 6.92904012, 3.99992906, 4.29591609, 3.73386341, 3.33324558, 7.48506201, 0, 4.04018054, 14.51742149, 6.45389993, 4.75384179, 6.31232729, 4.27634529, 3.27487856, 4.28025747, 6.96916061, 9.24052382, 3.86738893, 7.54525509, 0, 9.18490838, 5.07475834, 6.52852556, 3.83876109, 5.47629236, 3.830639, 9.03188983, 13.19013942] }, { "type": "double", "attributes": {}, "value": [0.00044196, 0.00324991, 0.00767132, 0.01311328, 0.01925951, 0.02592123, 0.03297665, 0.04034264, 0.04795989, 0.0557846, 0.06378353, 0.07193084, 0.08020601, 0.08859255, 0.09707693, 0.10564797, 0.11429629, 0.12301396, 0.13179421, 0.14063121, 0.14951991, 0.15845592, 0.16743537, 0.17645485, 0.18551135, 0.19460216, 0.20372487, 0.21287733, 0.22205759, 0.23126387, 0.24049458, 0.24974826, 0.25902357, 0.26831929, 0.27763432, 0.28696761, 0.29631823, 0.30568528, 0.31506797, 0.32446553, 0.33387727, 0.34330253, 0.35274071, 0.36219123, 0.37165358, 0.38112724, 0.39061176, 0.40010669, 0.40961163, 0.41912618, 0.42864997, 0.43818267, 0.44772394, 0.45727348, 0.46683099, 0.47639619, 0.48596883, 0.49554865, 0.50513542, 0.51472891, 0.5243289, 0.53393519, 0.54354759, 0.5531659, 0.56278995, 0.57241958, 0.58205461, 0.59169489, 0.60134027, 0.61099062, 0.62064578, 0.63030564, 0.63997007, 0.64963893, 0.65931213, 0.66898955, 0.67867107, 0.6883566, 0.69804604, 0.70773929, 0.71743625, 0.72713685, 0.73684099, 0.74654859, 0.75625957, 0.76597385, 0.77569136, 0.78541203, 0.79513578, 0.80486255, 0.81459228, 0.8243249, 0.83406035, 0.84379856, 0.85353949, 0.86328308, 0.87302927, 0.88277801, 0.89252926, 0.90228295, 0.91203904, 0.9217975, 0.93155826, 0.94132129, 0.95108655, 0.96085399, 0.97062357, 0.98039526, 0.99016901, 0.9999448, 1.00972257, 1.01950231, 1.02928397, 1.03906751, 1.04885292, 1.05864015, 1.06842918, 1.07821997, 1.0880125, 1.09780674, 1.10760266, 1.11740023, 1.12719942, 1.13700022, 1.14680259, 1.15660651, 1.16641196, 1.17621891, 1.18602734, 1.19583722, 1.20564854, 1.21546127, 1.2252754, 1.2350909, 1.24490775, 1.25472593, 1.26454542, 1.27436621, 1.28418827, 1.29401159, 1.30383615, 1.31366194, 1.32348892, 1.3333171, 1.34314645, 1.35297696, 1.36280861, 1.37264139, 1.38247527, 1.39231026, 1.40214632, 1.41198345, 1.42182164, 1.43166087, 1.44150112, 1.45134239, 1.46118466, 1.47102792, 1.48087216, 1.49071736, 1.50056351, 1.51041061, 1.52025863, 1.53010757, 1.53995742, 1.54980817, 1.5596598, 1.56951231, 1.57936568, 1.58921991, 1.59907498, 1.60893089, 1.61878762, 1.62864517, 1.63850352, 1.64836268, 1.65822262, 1.66808335, 1.67794484, 1.6878071, 1.69767011, 1.70753387, 1.71739837, 1.7272636, 1.73712955, 1.74699622, 1.75686359, 1.76673167, 1.77660043, 1.78646988, 1.79634001, 1.80621081, 1.81608228, 1.8259544, 1.83582718, 1.84570059, 1.85557465, 1.86544933, 1.87532465, 1.88520058, 1.89507712, 1.90495427, 1.91483202, 1.92471036, 1.9345893, 1.94446882, 1.95434891, 1.96422958, 1.97411081, 1.98399261, 1.99387496, 2.00375787, 2.01364132, 2.02352531, 2.03340983, 2.04329489, 2.05318048, 2.06306658, 2.0729532, 2.08284033, 2.09272797, 2.10261612, 2.11250476, 2.12239389, 2.13228352, 2.14217363, 2.15206422, 2.16195529, 2.17184683, 2.18173883, 2.19163131, 2.20152424, 2.21141763, 2.22131147, 2.23120576, 2.2411005, 2.25099568, 2.2608913, 2.27078734, 2.28068383, 2.29058073, 2.30047806, 2.31037581, 2.32027398, 2.33017256, 2.34007155, 2.34997095, 2.35987075, 2.36977094, 2.37967154, 2.38957253, 2.39947391, 2.40937568, 2.41927783, 2.42918037, 2.43908328, 2.44898657, 2.45889023, 2.46879426, 2.47869866, 2.48860342, 2.49850854, 2.50841402, 2.51831986, 2.52822605, 2.53813259, 2.54803948, 2.55794672, 2.5678543, 2.57776222, 2.58767047, 2.59757907, 2.60748799, 2.61739725, 2.62730683, 2.63721674, 2.64712697, 2.65703753, 2.6669484, 2.67685959, 2.6867711, 2.69668291, 2.70659504, 2.71650747, 2.72642021, 2.73633326, 2.7462466, 2.75616025, 2.76607419, 2.77598842, 2.78590295, 2.79581777, 2.80573288, 2.81564828, 2.82556396, 2.83547993, 2.84539618, 2.85531271, 2.86522951, 2.87514659, 2.88506395, 2.89498158, 2.90489947, 2.91481764, 2.92473607, 2.93465477, 2.94457374, 2.95449296, 2.96441245, 2.97433219, 2.98425219, 2.99417244, 3.00409295, 3.01401371, 3.02393472, 3.03385598, 3.04377749, 3.05369924, 3.06362124, 3.07354348, 3.08346596, 3.09338868, 3.10331164, 3.11323483, 3.12315826, 3.13308193, 3.14300582, 3.15292995, 3.16285431, 3.17277889, 3.18270371, 3.19262874, 3.20255401, 3.21247949, 3.2224052, 3.23233112, 3.24225727, 3.25218363, 3.26211021, 3.272037, 3.28196401, 3.29189123, 3.30181866, 3.3117463, 3.32167415, 3.33160221, 3.34153047, 3.35145894, 3.36138761, 3.37131649, 3.38124557, 3.39117485, 3.40110432, 3.411034, 3.42096387, 3.43089394, 3.44082421, 3.45075467, 3.46068532, 3.47061616, 3.4805472, 3.49047842, 3.50040983, 3.51034143, 3.52027322, 3.53020519, 3.54013735, 3.55006969, 3.56000222, 3.56993492, 3.57986781, 3.58980087, 3.59973412, 3.60966754, 3.61960114, 3.62953491, 3.63946886, 3.64940299, 3.65933728, 3.66927175, 3.67920639, 3.6891412, 3.69907618, 3.70901133, 3.71894665, 3.72888213, 3.73881778, 3.7487536, 3.75868958, 3.76862572, 3.77856203, 3.7884985, 3.79843512, 3.80837191, 3.81830886, 3.82824597, 3.83818323, 3.84812065, 3.85805823, 3.86799597, 3.87793385, 3.8878719, 3.89781009, 3.90774844, 3.91768694, 3.92762559, 3.93756439, 3.94750334, 3.95744244, 3.96738168, 3.97732108, 3.98726062, 3.99720031, 4.00714014, 4.01708011, 4.02702023, 4.0369605, 4.0469009, 4.05684145, 4.06678214, 4.07672296, 4.08666393, 4.09660504, 4.10654628, 4.11648767, 4.12642919, 4.13637085, 4.14631264, 4.15625457, 4.16619663, 4.17613883, 4.18608115, 4.19602362, 4.20596621, 4.21590894, 4.2258518, 4.23579478, 4.2457379, 4.25568115, 4.26562452, 4.27556802, 4.28551165, 4.29545541, 4.30539929, 4.3153433, 4.32528744, 4.3352317, 4.34517608, 4.35512058, 4.36506521, 4.37500997, 4.38495484, 4.39489983, 4.40484495, 4.41479018, 4.42473554, 4.43468101, 4.44462661, 4.45457232, 4.46451815, 4.47446409, 4.48441015, 4.49435633, 4.50430263, 4.51424904, 4.52419556, 4.5341422, 4.54408895, 4.55403582, 4.56398279, 4.57392988, 4.58387709, 4.5938244, 4.60377182, 4.61371936, 4.623667, 4.63361475, 4.64356262, 4.65351059, 4.66345867, 4.67340685, 4.68335515, 4.69330355, 4.70325205, 4.71320067, 4.72314938, 4.73309821, 4.74304713, 4.75299617, 4.7629453, 4.77289454, 4.78284388, 4.79279332, 4.80274287, 4.81269252, 4.82264227, 4.83259212, 4.84254207, 4.85249212, 4.86244227, 4.87239251, 4.88234286, 4.89229331, 4.90224385, 4.91219449, 4.92214523, 4.93209607, 4.942047, 4.95199803, 4.96194915, 4.97190037, 4.98185169, 4.9918031, 5.0017546, 5.0117062, 5.02165789, 5.03160967, 5.04156155, 5.05151352, 5.06146558, 5.07141773, 5.08136998, 5.09132231, 5.10127474, 5.11122725, 5.12117986, 5.13113256, 5.14108534, 5.15103822, 5.16099118, 5.17094423, 5.18089737, 5.1908506, 5.20080391, 5.21075732, 5.2207108, 5.23066438, 5.24061804, 5.25057179, 5.26052562, 5.27047954, 5.28043354, 5.29038762, 5.30034179, 5.31029605, 5.32025039, 5.33020481, 5.34015931, 5.3501139, 5.36006857, 5.37002332, 5.37997815, 5.38993307, 5.39988806, 5.40984314, 5.41979829, 5.42975353, 5.43970885, 5.44966425, 5.45961972, 5.46957528, 5.47953091, 5.48948663, 5.49944242, 5.50939829, 5.51935423, 5.52931026, 5.53926636, 5.54922254, 5.55917879, 5.56913513, 5.57909153, 5.58904802, 5.59900458, 5.60896121, 5.61891792, 5.62887471, 5.63883157, 5.6487885, 5.65874551, 5.66870259, 5.67865974, 5.68861697, 5.69857427, 5.70853165, 5.71848909, 5.72844661, 5.7384042, 5.74836187, 5.7583196, 5.76827741, 5.77823529, 5.78819323, 5.79815125, 5.80810934, 5.8180675, 5.82802573, 5.83798403, 5.84794239, 5.85790083, 5.86785934, 5.87781791, 5.88777656, 5.89773527, 5.90769405, 5.9176529, 5.92761181, 5.93757079, 5.94752984, 5.95748896, 5.96744814, 5.9774074, 5.98736671, 5.99732609, 6.00728554, 6.01724506, 6.02720464, 6.03716428, 6.04712399, 6.05708377, 6.06704361, 6.07700351, 6.08696348, 6.09692351, 6.1068836, 6.11684376, 6.12680399, 6.13676427, 6.14672462, 6.15668503, 6.16664551, 6.17660604, 6.18656664, 6.1965273, 6.20648803, 6.21644881, 6.22640966, 6.23637056, 6.24633153, 6.25629256, 6.26625365, 6.2762148, 6.28617601, 6.29613728, 6.30609861, 6.31606, 6.32602145, 6.33598296, 6.34594453, 6.35590615, 6.36586784, 6.37582958, 6.38579139, 6.39575325, 6.40571517, 6.41567715, 6.42563918, 6.43560127, 6.44556342, 6.45552563, 6.46548789, 6.47545021, 6.48541259, 6.49537503, 6.50533752, 6.51530006, 6.52526267, 6.53522533, 6.54518804, 6.55515081, 6.56511364, 6.57507652, 6.58503945, 6.59500244, 6.60496549, 6.61492859, 6.62489174, 6.63485495, 6.64481821, 6.65478153, 6.6647449, 6.67470832, 6.6846718, 6.69463533, 6.70459891, 6.71456255, 6.72452624, 6.73448998, 6.74445377, 6.75441762, 6.76438152, 6.77434547, 6.78430947, 6.79427353, 6.80423763, 6.81420179, 6.824166, 6.83413026, 6.84409457, 6.85405893, 6.86402335, 6.87398781, 6.88395232, 6.89391689, 6.9038815, 6.91384617, 6.92381088, 6.93377564, 6.94374046, 6.95370532, 6.96367023, 6.97363519, 6.9836002, 6.99356526, 7.00353037, 7.01349553, 7.02346073, 7.03342599, 7.04339129, 7.05335664, 7.06332204, 7.07328748, 7.08325298, 7.09321852, 7.10318411, 7.11314974, 7.12311542, 7.13308115, 7.14304693, 7.15301276, 7.16297863, 7.17294454, 7.18291051, 7.19287652, 7.20284257, 7.21280867, 7.22277482, 7.23274101, 7.24270725, 7.25267354, 7.26263987, 7.27260624, 7.28257266, 7.29253913, 7.30250564, 7.31247219, 7.32243879, 7.33240544, 7.34237213, 7.35233886, 7.36230564, 7.37227246, 7.38223932, 7.39220623, 7.40217319, 7.41214018, 7.42210722, 7.43207431, 7.44204143, 7.4520086, 7.46197582, 7.47194307, 7.48191037, 7.49187771, 7.5018451, 7.51181252, 7.52177999, 7.53174751, 7.54171506, 7.55168265, 7.56165029, 7.57161797, 7.58158569, 7.59155346, 7.60152126, 7.61148911, 7.62145699, 7.63142492, 7.64139289, 7.6513609, 7.66132895, 7.67129704, 7.68126518, 7.69123335, 7.70120156, 7.71116982, 7.72113811, 7.73110644, 7.74107482, 7.75104323, 7.76101169, 7.77098018, 7.78094872, 7.79091729, 7.8008859, 7.81085455, 7.82082324, 7.83079198, 7.84076074, 7.85072955, 7.8606984, 7.87066729, 7.88063621, 7.89060517, 7.90057418, 7.91054322, 7.9205123, 7.93048141, 7.94045057, 7.95041976, 7.96038899, 7.97035826, 7.98032757, 7.99029691, 8.00026629, 8.01023571, 8.02020517, 8.03017466, 8.04014419, 8.05011376, 8.06008336, 8.07005301, 8.08002268, 8.0899924, 8.09996215, 8.10993194, 8.11990176, 8.12987163, 8.13984152, 8.14981146, 8.15978143, 8.16975143, 8.17972148, 8.18969155, 8.19966167, 8.20963182, 8.219602, 8.22957222, 8.23954248, 8.24951277, 8.25948309, 8.26945346, 8.27942385, 8.28939428, 8.29936475, 8.30933525, 8.31930579, 8.32927636, 8.33924697, 8.34921761, 8.35918828, 8.36915899, 8.37912973, 8.38910051, 8.39907132, 8.40904217, 8.41901305, 8.42898396, 8.43895491, 8.44892589, 8.46886795, 8.47883903, 8.48881015, 8.49878129, 8.50875248, 8.51872369, 8.52869494, 8.53866622, 8.54863753, 8.55860888, 8.56858026, 8.57855167, 8.58852312, 8.59849459, 8.6084661, 8.61843765, 8.62840922, 8.63838083, 8.64835247, 8.65832414, 8.66829584, 8.67826758, 8.68823934, 8.69821114, 8.70818297, 8.71815484, 8.72812673, 8.73809866, 8.74807061, 8.7580426, 8.76801462, 8.77798668, 8.78795876, 8.79793087, 8.80790302, 8.81787519, 8.8278474, 8.83781964, 8.84779191, 8.8577642, 8.86773653, 8.87770889, 8.88768129, 8.89765371, 8.90762616, 8.91759864, 8.92757115, 8.9375437, 8.94751627, 8.95748887, 8.9674615, 8.97743417, 8.99737958, 9.00735233, 9.01732512, 9.02729793, 9.03727077, 9.04724364, 9.05721654, 9.06718947, 9.07716242, 9.08713541, 9.09710843, 9.10708147, 9.11705455, 9.12702765, 9.13700079, 9.14697395, 9.15694714, 9.16692036, 9.17689361, 9.18686688, 9.19684019, 9.20681352, 9.21678688, 9.22676027, 9.23673369, 9.24670714, 9.25668061, 9.26665411, 9.27662765, 9.2866012, 9.29657479, 9.30654841, 9.31652205, 9.32649572, 9.33646942, 9.34644314, 9.3564169, 9.36639068, 9.37636448, 9.38633832, 9.39631218, 9.40628607, 9.41625999, 9.42623394, 9.43620791, 9.44618191, 9.45615593, 9.46612999, 9.47610407, 9.48607817, 9.49605231, 9.50602647, 9.51600065, 9.52597487, 9.53594911, 9.54592337, 9.55589767, 9.56587199, 9.57584633, 9.5858207, 9.5957951, 9.60576953, 9.61574398, 9.62571845, 9.63569296, 9.64566749, 9.65564204, 9.66561662, 9.67559123, 9.68556586, 9.69554052, 9.7055152, 9.71548991, 9.72546464, 9.7354394, 9.74541419, 9.755389, 9.76536384, 9.7753387, 9.78531359, 9.7952885, 9.80526344, 9.8152384, 9.82521339, 9.8351884, 9.84516344, 9.8551385, 9.86511359, 9.8750887, 9.88506383, 9.895039, 9.90501418, 9.91498939, 9.92496463, 9.93493989, 9.94491517, 9.95489048, 9.96486581, 9.97484117, 9.98481655, 9.99479196, 10.00476739, 10.02471832, 10.03469382, 10.04466935, 10.0546449, 10.06462047, 10.07459607, 10.08457169, 10.09454734, 10.10452301, 10.1144987, 10.12447442, 10.13445016, 10.14442592, 10.15440171, 10.16437752, 10.17435335, 10.18432921, 10.19430509, 10.20428099, 10.21425692, 10.22423287, 10.23420884, 10.24418484, 10.25416086, 10.2641369, 10.27411296, 10.28408905, 10.29406516, 10.3040413, 10.31401745, 10.32399363, 10.33396983, 10.34394606, 10.35392231, 10.36389858, 10.37387487, 10.38385118, 10.39382752, 10.40380388, 10.41378026, 10.42375666, 10.43373309, 10.44370954, 10.45368601, 10.4636625, 10.47363902, 10.48361555, 10.49359211, 10.50356869, 10.5135453, 10.52352192, 10.53349857, 10.54347523, 10.55345192, 10.56342864, 10.57340537, 10.58338212, 10.5933589, 10.6033357, 10.61331252, 10.62328936, 10.63326622, 10.64324311, 10.65322001, 10.66319694, 10.67317389, 10.68315086, 10.69312785, 10.70310486, 10.71308189, 10.72305894, 10.73303602, 10.74301311, 10.75299023, 10.76296737, 10.77294453, 10.78292171, 10.79289891, 10.80287613, 10.81285337, 10.82283063, 10.83280791, 10.84278522, 10.85276254, 10.86273989, 10.87271725, 10.88269464, 10.89267204, 10.90264947, 10.91262692, 10.92260439, 10.93258187, 10.94255938, 10.95253691, 10.96251446, 10.97249203, 10.99244722, 11.00242485, 11.02238017, 11.03235786, 11.04233557, 11.05231329, 11.06229104, 11.07226881, 11.0822466, 11.09222441, 11.10220223, 11.11218008, 11.12215795, 11.13213583, 11.14211374, 11.15209166, 11.16206961, 11.17204757, 11.18202555, 11.19200356, 11.20198158, 11.21195962, 11.22193768, 11.23191576, 11.24189386, 11.25187198, 11.26185011, 11.27182827, 11.28180645, 11.29178464, 11.30176285, 11.31174109, 11.32171934, 11.33169761, 11.3416759, 11.35165421, 11.36163253, 11.37161088, 11.38158924, 11.39156763, 11.40154603, 11.41152445, 11.42150289, 11.43148134, 11.44145982, 11.45143831, 11.46141683, 11.47139536, 11.48137391, 11.49135248, 11.50133106, 11.51130967, 11.52128829, 11.53126693, 11.54124559, 11.55122427, 11.56120297, 11.57118168, 11.58116042, 11.59113917, 11.60111793, 11.61109672, 11.62107553, 11.63105435, 11.64103319, 11.65101205, 11.66099092, 11.67096982, 11.68094873, 11.69092766, 11.70090661, 11.71088557, 11.72086455, 11.73084355, 11.74082257, 11.75080161, 11.76078066, 11.77075973, 11.78073882, 11.79071793, 11.80069705, 11.81067619, 11.82065535, 11.83063452, 11.84061372, 11.85059293, 11.86057215, 11.8705514, 11.88053066, 11.89050994, 11.90048923, 11.91046855, 11.92044788, 11.93042722, 11.94040659, 11.95038597, 11.96036537, 11.97034478, 11.98032422, 11.99030367, 12.00028313, 12.01026262, 12.02024211, 12.03022163, 12.04020116, 12.05018071, 12.06016028, 12.07013987, 12.08011947, 12.09009908, 12.10007872, 12.11005837, 12.12003803, 12.13001772, 12.13999741, 12.14997713, 12.15995686, 12.16993661, 12.17991638, 12.18989616, 12.19987596, 12.20985577, 12.2198356, 12.23979531, 12.24977519, 12.25975509, 12.269735, 12.27971493, 12.28969487, 12.29967483, 12.30965481, 12.3196348, 12.32961481, 12.33959483, 12.34957487, 12.35955493, 12.369535, 12.37951508, 12.38949519, 12.39947531, 12.40945544, 12.41943559, 12.42941576, 12.43939594, 12.44937614, 12.45935635, 12.46933658, 12.47931683, 12.48929709, 12.49927736, 12.50925766, 12.51923796, 12.52921829, 12.53919862, 12.54917898, 12.55915935, 12.56913973, 12.57912013, 12.58910055, 12.59908098, 12.60906142, 12.61904188, 12.62902236, 12.63900285, 12.64898336, 12.65896388, 12.66894442, 12.67892497, 12.68890554, 12.69888612, 12.70886672, 12.71884733, 12.72882796, 12.7388086, 12.74878926, 12.75876993, 12.76875062, 12.77873132, 12.78871204, 12.79869277, 12.80867352, 12.81865428, 12.82863506, 12.83861585, 12.84859665, 12.85857747, 12.86855831, 12.87853916, 12.88852003, 12.8985009, 12.9084818, 12.91846271, 12.92844363, 12.93842457, 12.94840552, 12.95838649, 12.96836747, 12.97834847, 12.98832948, 12.9983105, 13.00829154, 13.01827259, 13.02825366, 13.03823474, 13.04821584, 13.05819695, 13.06817807, 13.07815921, 13.08814037, 13.09812154, 13.10810272, 13.11808391, 13.12806512, 13.13804635, 13.14802759, 13.15800884, 13.1679901, 13.17797138, 13.18795268, 13.19793399, 13.20791531, 13.21789665, 13.227878, 13.23785936, 13.24784074, 13.25782213, 13.26780354, 13.27778496, 13.28776639, 13.29774784, 13.3077293, 13.31771077, 13.33767376, 13.34765528, 13.35763681, 13.37759991, 13.38758148, 13.39756306, 13.40754466, 13.41752627, 13.42750789, 13.43748953, 13.44747118, 13.45745285, 13.46743453, 13.47741622, 13.49737964, 13.51734312, 13.52732488, 13.53730665, 13.54728843, 13.55727023, 13.56725204, 13.57723387, 13.58721571, 13.60717942, 13.6171613, 13.62714319, 13.63712509, 13.64710701, 13.65708894, 13.66707088, 13.67705284, 13.68703481, 13.69701679, 13.70699878, 13.71698079, 13.72696281, 13.73694485, 13.74692689, 13.75690895, 13.77687311, 13.78685521, 13.79683732, 13.81680158, 13.82678373, 13.83676589, 13.84674807, 13.85673025, 13.87669467, 13.88667689, 13.89665913, 13.90664138, 13.91662364, 13.92660592, 13.93658821, 13.94657051, 13.95655282, 13.96653515, 13.97651749, 13.98649984, 13.9964822, 14.00646458, 14.01644696, 14.02642937, 14.03641178, 14.0463942, 14.05637664, 14.06635909, 14.07634155, 14.08632403, 14.09630651, 14.10628901, 14.11627153, 14.12625405, 14.13623658, 14.14621913, 14.15620169, 14.16618427, 14.17616685, 14.18614945, 14.19613205, 14.20611468, 14.21609731, 14.22607995, 14.23606261, 14.24604528, 14.25602796, 14.26601065, 14.27599336, 14.28597608, 14.2959588, 14.30594154, 14.3159243, 14.32590706, 14.33588984, 14.34587263, 14.35585543, 14.36583824, 14.37582106, 14.3858039, 14.39578675, 14.4057696, 14.41575248, 14.42573536, 14.43571825, 14.44570116, 14.45568408, 14.46566701, 14.47564995, 14.4856329, 14.49561586, 14.50559884, 14.51558183, 14.52556483, 14.53554784, 14.54553086, 14.55551389, 14.56549694, 14.57547999, 14.58546306, 14.59544614, 14.60542923, 14.61541233, 14.62539545, 14.63537857, 14.64536171, 14.65534486, 14.66532802, 14.67531119, 14.68529437, 14.69527756, 14.70526077, 14.71524398, 14.72522721, 14.73521045, 14.7451937, 14.75517696, 14.76516023, 14.77514351, 14.78512681, 14.79511011, 14.80509343, 14.81507676, 14.8250601, 14.83504345, 14.84502681, 14.85501018, 14.86499356, 14.87497696, 14.88496036, 14.89494378, 14.90492721, 14.91491065, 14.92489409, 14.93487755, 14.94486103, 14.95484451, 14.964828, 14.9748115, 14.98479502, 14.99477854, 15.00476208, 15.01474563, 15.02472919, 15.03471275, 15.04469633, 15.05467992, 15.06466353, 15.07464714, 15.08463076, 15.09461439, 15.10459804, 15.11458169, 15.12456536, 15.13454903, 15.14453272, 15.15451642, 15.16450013, 15.17448385, 15.18446757, 15.19445131, 15.20443506, 15.21441883, 15.2244026, 15.23438638, 15.24437017, 15.25435398, 15.26433779, 15.27432161, 15.28430545, 15.29428929, 15.30427315, 15.31425701, 15.32424089, 15.33422478, 15.34420867, 15.35419258, 15.3641765, 15.37416043, 15.38414436, 15.39412831, 15.40411227, 15.41409624, 15.42408022, 15.43406421, 15.44404821, 15.45403222, 15.46401624, 15.47400027, 15.48398431, 15.49396836, 15.50395242, 15.5139365, 15.52392058, 15.53390467, 15.54388877, 15.55387288, 15.563857, 15.57384114, 15.58382528, 15.59380943, 15.60379359, 15.61377777, 15.62376195, 15.63374614, 15.64373034, 15.65371455, 15.66369878, 15.67368301, 15.68366725, 15.6936515, 15.70363576, 15.71362004, 15.72360432, 15.73358861, 15.74357291, 15.75355722, 15.76354154, 15.77352587, 15.78351021, 15.79349457, 15.80347893, 15.8134633, 15.82344768, 15.83343207, 15.84341646, 15.85340087, 15.87336972, 15.89333861, 15.90332306, 15.91330753, 15.92329201, 15.9332765, 15.94326099, 15.9532455, 15.96323001, 15.97321454, 15.98319907, 15.99318362, 16.00316817, 16.01315273, 16.02313731, 16.03312189, 16.04310648, 16.05309108, 16.06307569, 16.07306031, 16.08304494, 16.09302958, 16.10301423, 16.11299889, 16.12298355, 16.14295292, 16.15293761, 16.16292232, 16.17290703, 16.18289175, 16.19287649, 16.20286123, 16.21284598, 16.22283074, 16.23281551, 16.24280029, 16.26276988, 16.27275468, 16.2827395, 16.29272433, 16.30270916, 16.312694, 16.32267886, 16.33266372, 16.34264859, 16.35263347, 16.36261836, 16.37260326, 16.38258817, 16.39257308, 16.40255801, 16.41254295, 16.42252789, 16.43251284, 16.44249781, 16.45248278, 16.46246776, 16.47245275, 16.48243775, 16.49242275, 16.50240777, 16.5123928, 16.52237783, 16.53236287, 16.54234793, 16.55233299, 16.56231806, 16.57230314, 16.58228822, 16.59227332, 16.60225843, 16.61224354, 16.62222866, 16.6322138, 16.64219894, 16.65218409, 16.66216925, 16.67215441, 16.68213959, 16.69212478, 16.70210997, 16.72208038, 16.7320656, 16.74205083, 16.76202132, 16.77200657, 16.78199184, 16.79197711, 16.80196239, 16.81194768, 16.82193298, 16.83191829, 16.8419036, 16.85188893, 16.86187426, 16.8718596, 16.88184495, 16.89183031, 16.90181568, 16.91180105, 16.92178644, 16.93177183, 16.94175723, 16.95174264, 16.96172806, 16.97171349, 16.98169892, 16.99168437, 17.00166982, 17.01165528, 17.02164075, 17.03162623, 17.04161171, 17.05159721, 17.06158271, 17.07156822, 17.08155374, 17.09153927, 17.10152481, 17.11151035, 17.1214959, 17.13148147, 17.14146704, 17.15145261, 17.1614382, 17.1714238, 17.1814094, 17.19139501, 17.21136626, 17.22135189, 17.23133754, 17.24132319, 17.25130885, 17.26129452, 17.28126589, 17.29125158, 17.30123728, 17.31122299, 17.32120871, 17.33119444, 17.34118017, 17.35116591, 17.36115166, 17.37113742, 17.38112319, 17.39110897, 17.40109475, 17.41108054, 17.42106634, 17.43105215, 17.44103796, 17.45102379, 17.46100962, 17.47099546, 17.48098131, 17.49096716, 17.50095303, 17.5109389, 17.52092478, 17.53091067, 17.54089656, 17.55088246, 17.56086838, 17.5708543, 17.58084022, 17.59082616, 17.6008121, 17.61079805, 17.62078401, 17.63076998, 17.64075595, 17.65074194, 17.66072793, 17.67071392, 17.68069993, 17.69068594, 17.70067197, 17.710658, 17.72064403, 17.73063008, 17.74061613, 17.75060219, 17.76058826, 17.77057434, 17.78056042, 17.79054651, 17.80053261, 17.81051872, 17.82050483, 17.83049096, 17.84047709, 17.85046323, 17.86044937, 17.87043552, 17.88042169, 17.89040785, 17.90039403, 17.91038022, 17.92036641, 17.93035261, 17.94033881, 17.95032503, 17.96031125, 17.97029748, 17.98028372, 17.99026996, 18.00025621, 18.01024247, 18.02022874, 18.03021502, 18.0402013, 18.06017389, 18.07016019, 18.0801465, 18.09013282, 18.10011915, 18.11010549, 18.12009183, 18.13007818, 18.14006454, 18.1500509, 18.16003727, 18.17002365, 18.18001004, 18.18999644, 18.19998284, 18.20996925, 18.21995566, 18.22994209, 18.23992852, 18.24991496, 18.2599014, 18.26988786, 18.27987432, 18.28986079, 18.29984726, 18.30983375, 18.31982024, 18.32980673, 18.33979324, 18.34977975, 18.35976627, 18.3697528, 18.37973933, 18.38972587, 18.39971242, 18.40969897, 18.41968554, 18.42967211, 18.43965868, 18.44964527, 18.45963186, 18.46961846, 18.47960506, 18.48959168, 18.4995783, 18.50956493, 18.51955156, 18.5295382, 18.53952485, 18.54951151, 18.55949817, 18.56948484, 18.57947152, 18.5894582, 18.59944489, 18.60943159, 18.6194183, 18.62940501, 18.63939173, 18.64937846, 18.65936519, 18.66935193, 18.67933868, 18.68932543, 18.6993122, 18.70929897, 18.71928574, 18.72927252, 18.73925931, 18.74924611, 18.75923292, 18.76921973, 18.77920654, 18.78919337, 18.80916704, 18.81915388, 18.82914074, 18.8391276, 18.84911446, 18.85910134, 18.86908822, 18.8790751, 18.889062, 18.8990489, 18.90903581, 18.91902272, 18.92900964, 18.93899657, 18.9489835, 18.95897045, 18.97894435, 18.98893131, 18.99891828, 19.00890526, 19.01889224, 19.02887923, 19.03886622, 19.04885323, 19.05884024, 19.06882725, 19.07881428, 19.09878834, 19.10877539, 19.11876244, 19.12874949, 19.13873656, 19.14872363, 19.1587107, 19.16869779, 19.17868488, 19.18867197, 19.19865908, 19.20864619, 19.2186333, 19.22862043, 19.23860756, 19.24859469, 19.25858184, 19.26856899, 19.27855614, 19.28854331, 19.29853048, 19.30851765, 19.31850483, 19.32849202, 19.33847922, 19.34846642, 19.35845363, 19.36844085, 19.37842807, 19.3884153, 19.39840253, 19.40838977, 19.41837702, 19.42836428, 19.43835154, 19.44833881, 19.45832608, 19.46831336, 19.47830065, 19.48828794, 19.49827524, 19.50826255, 19.51824986, 19.52823718, 19.53822451, 19.54821184, 19.55819918, 19.56818652, 19.57817387, 19.58816123, 19.60813597, 19.61812334, 19.62811073, 19.63809812, 19.64808551, 19.65807291, 19.66806032, 19.67804774, 19.68803516, 19.69802259, 19.70801002, 19.71799746, 19.72798491, 19.74795982, 19.75794729, 19.76793476, 19.77792223, 19.78790972, 19.79789721, 19.80788471, 19.81787221, 19.82785972] }, { "type": "character", "attributes": {}, "value": ["extrapolation", "extrapolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation"] } ] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["x", "y.t", "x.t", "method"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1263, 1264, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1506, 1507, 1508, 1509, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1523, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1552, 1553, 1554, 1556, 1557, 1558, 1559, 1560, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1767, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1854, 1855, 1856, 1857, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1905, 1906, 1907, 1908, 1909, 1910, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "na.action": { "type": "integer", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["999", "1054", "1161", "1262", "1265", "1392", "1505", "1510", "1522", "1524", "1533", "1551", "1555", "1561", "1766", "1768", "1794", "1806", "1853", "1858", "1904", "1911", "1991"] }, "class": { "type": "character", "attributes": {}, "value": ["exclude"] } }, "value": [999, 1054, 1161, 1262, 1265, 1392, 1505, 1510, 1522, 1524, 1533, 1551, 1555, 1561, 1766, 1768, 1794, 1806, 1853, 1858, 1904, 1911, 1991] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.005, 0.015, 0.025, 0.035, 0.045, 0.055, 0.065, 0.075, 0.085, 0.095, 0.105, 0.115, 0.125, 0.135, 0.145, 0.155, 0.165, 0.175, 0.185, 0.195, 0.205, 0.215, 0.225, 0.235, 0.245, 0.255, 0.265, 0.275, 0.285, 0.295, 0.305, 0.315, 0.325, 0.335, 0.345, 0.355, 0.365, 0.375, 0.385, 0.395, 0.405, 0.415, 0.425, 0.435, 0.445, 0.455, 0.465, 0.475, 0.485, 0.495, 0.505, 0.515, 0.525, 0.535, 0.545, 0.555, 0.565, 0.575, 0.585, 0.595, 0.605, 0.615, 0.625, 0.635, 0.645, 0.655, 0.665, 0.675, 0.685, 0.695, 0.705, 0.715, 0.725, 0.735, 0.745, 0.755, 0.765, 0.775, 0.785, 0.795, 0.805, 0.815, 0.825, 0.835, 0.845, 0.855, 0.865, 0.875, 0.885, 0.895, 0.905, 0.915, 0.925, 0.935, 0.945, 0.955, 0.965, 0.975, 0.985, 0.995, 1.005, 1.015, 1.025, 1.035, 1.045, 1.055, 1.065, 1.075, 1.085, 1.095, 1.105, 1.115, 1.125, 1.135, 1.145, 1.155, 1.165, 1.175, 1.185, 1.195, 1.205, 1.215, 1.225, 1.235, 1.245, 1.255, 1.265, 1.275, 1.285, 1.295, 1.305, 1.315, 1.325, 1.335, 1.345, 1.355, 1.365, 1.375, 1.385, 1.395, 1.405, 1.415, 1.425, 1.435, 1.445, 1.455, 1.465, 1.475, 1.485, 1.495, 1.505, 1.515, 1.525, 1.535, 1.545, 1.555, 1.565, 1.575, 1.585, 1.595, 1.605, 1.615, 1.625, 1.635, 1.645, 1.655, 1.665, 1.675, 1.685, 1.695, 1.705, 1.715, 1.725, 1.735, 1.745, 1.755, 1.765, 1.775, 1.785, 1.795, 1.805, 1.815, 1.825, 1.835, 1.845, 1.855, 1.865, 1.875, 1.885, 1.895, 1.905, 1.915, 1.925, 1.935, 1.945, 1.955, 1.965, 1.975, 1.985, 1.995, 2.005, 2.015, 2.025, 2.035, 2.045, 2.055, 2.065, 2.075, 2.085, 2.095, 2.105, 2.115, 2.125, 2.135, 2.145, 2.155, 2.165, 2.175, 2.185, 2.195, 2.205, 2.215, 2.225, 2.235, 2.245, 2.255, 2.265, 2.275, 2.285, 2.295, 2.305, 2.315, 2.325, 2.335, 2.345, 2.355, 2.365, 2.375, 2.385, 2.395, 2.405, 2.415, 2.425, 2.435, 2.445, 2.455, 2.465, 2.475, 2.485, 2.495, 2.505, 2.515, 2.525, 2.535, 2.545, 2.555, 2.565, 2.575, 2.585, 2.595, 2.605, 2.615, 2.625, 2.635, 2.645, 2.655, 2.665, 2.675, 2.685, 2.695, 2.705, 2.715, 2.725, 2.735, 2.745, 2.755, 2.765, 2.775, 2.785, 2.795, 2.805, 2.815, 2.825, 2.835, 2.845, 2.855, 2.865, 2.875, 2.885, 2.895, 2.905, 2.915, 2.925, 2.935, 2.945, 2.955, 2.965, 2.975, 2.985, 2.995, 3.005, 3.015, 3.025, 3.035, 3.045, 3.055, 3.065, 3.075, 3.085, 3.095, 3.105, 3.115, 3.125, 3.135, 3.145, 3.155, 3.165, 3.175, 3.185, 3.195, 3.205, 3.215, 3.225, 3.235, 3.245, 3.255, 3.265, 3.275, 3.285, 3.295, 3.305, 3.315, 3.325, 3.335, 3.345, 3.355, 3.365, 3.375, 3.385, 3.395, 3.405, 3.415, 3.425, 3.435, 3.445, 3.455, 3.465, 3.475, 3.485, 3.495, 3.505, 3.515, 3.525, 3.535, 3.545, 3.555, 3.565, 3.575, 3.585, 3.595, 3.605, 3.615, 3.625, 3.635, 3.645, 3.655, 3.665, 3.675, 3.685, 3.695, 3.705, 3.715, 3.725, 3.735, 3.745, 3.755, 3.765, 3.775, 3.785, 3.795, 3.805, 3.815, 3.825, 3.835, 3.845, 3.855, 3.865, 3.875, 3.885, 3.895, 3.905, 3.915, 3.925, 3.935, 3.945, 3.955, 3.965, 3.975, 3.985, 3.995, 4.005, 4.015, 4.025, 4.035, 4.045, 4.055, 4.065, 4.075, 4.085, 4.095, 4.105, 4.115, 4.125, 4.135, 4.145, 4.155, 4.165, 4.175, 4.185, 4.195, 4.205, 4.215, 4.225, 4.235, 4.245, 4.255, 4.265, 4.275, 4.285, 4.295, 4.305, 4.315, 4.325, 4.335, 4.345, 4.355, 4.365, 4.375, 4.385, 4.395, 4.405, 4.415, 4.425, 4.435, 4.445, 4.455, 4.465, 4.475, 4.485, 4.495, 4.505, 4.515, 4.525, 4.535, 4.545, 4.555, 4.565, 4.575, 4.585, 4.595, 4.605, 4.615, 4.625, 4.635, 4.645, 4.655, 4.665, 4.675, 4.685, 4.695, 4.705, 4.715, 4.725, 4.735, 4.745, 4.755, 4.765, 4.775, 4.785, 4.795, 4.805, 4.815, 4.825, 4.835, 4.845, 4.855, 4.865, 4.875, 4.885, 4.895, 4.905, 4.915, 4.925, 4.935, 4.945, 4.955, 4.965, 4.975, 4.985, 4.995, 5.005, 5.015, 5.025, 5.035, 5.045, 5.055, 5.065, 5.075, 5.085, 5.095, 5.105, 5.115, 5.125, 5.135, 5.145, 5.155, 5.165, 5.175, 5.185, 5.195, 5.205, 5.215, 5.225, 5.235, 5.245, 5.255, 5.265, 5.275, 5.285, 5.295, 5.305, 5.315, 5.325, 5.335, 5.345, 5.355, 5.365, 5.375, 5.385, 5.395, 5.405, 5.415, 5.425, 5.435, 5.445, 5.455, 5.465, 5.475, 5.485, 5.495, 5.505, 5.515, 5.525, 5.535, 5.545, 5.555, 5.565, 5.575, 5.585, 5.595, 5.605, 5.615, 5.625, 5.635, 5.645, 5.655, 5.665, 5.675, 5.685, 5.695, 5.705, 5.715, 5.725, 5.735, 5.745, 5.755, 5.765, 5.775, 5.785, 5.795, 5.805, 5.815, 5.825, 5.835, 5.845, 5.855, 5.865, 5.875, 5.885, 5.895, 5.905, 5.915, 5.925, 5.935, 5.945, 5.955, 5.965, 5.975, 5.985, 5.995, 6.005, 6.015, 6.025, 6.035, 6.045, 6.055, 6.065, 6.075, 6.085, 6.095, 6.105, 6.115, 6.125, 6.135, 6.145, 6.155, 6.165, 6.175, 6.185, 6.195, 6.205, 6.215, 6.225, 6.235, 6.245, 6.255, 6.265, 6.275, 6.285, 6.295, 6.305, 6.315, 6.325, 6.335, 6.345, 6.355, 6.365, 6.375, 6.385, 6.395, 6.405, 6.415, 6.425, 6.435, 6.445, 6.455, 6.465, 6.475, 6.485, 6.495, 6.505, 6.515, 6.525, 6.535, 6.545, 6.555, 6.565, 6.575, 6.585, 6.595, 6.605, 6.615, 6.625, 6.635, 6.645, 6.655, 6.665, 6.675, 6.685, 6.695, 6.705, 6.715, 6.725, 6.735, 6.745, 6.755, 6.765, 6.775, 6.785, 6.795, 6.805, 6.815, 6.825, 6.835, 6.845, 6.855, 6.865, 6.875, 6.885, 6.895, 6.905, 6.915, 6.925, 6.935, 6.945, 6.955, 6.965, 6.975, 6.985, 6.995, 7.005, 7.015, 7.025, 7.035, 7.045, 7.055, 7.065, 7.075, 7.085, 7.095, 7.105, 7.115, 7.125, 7.135, 7.145, 7.155, 7.165, 7.175, 7.185, 7.195, 7.205, 7.215, 7.225, 7.235, 7.245, 7.255, 7.265, 7.275, 7.285, 7.295, 7.305, 7.315, 7.325, 7.335, 7.345, 7.355, 7.365, 7.375, 7.385, 7.395, 7.405, 7.415, 7.425, 7.435, 7.445, 7.455, 7.465, 7.475, 7.485, 7.495, 7.505, 7.515, 7.525, 7.535, 7.545, 7.555, 7.565, 7.575, 7.585, 7.595, 7.605, 7.615, 7.625, 7.635, 7.645, 7.655, 7.665, 7.675, 7.685, 7.695, 7.705, 7.715, 7.725, 7.735, 7.745, 7.755, 7.765, 7.775, 7.785, 7.795, 7.805, 7.815, 7.825, 7.835, 7.845, 7.855, 7.865, 7.875, 7.885, 7.895, 7.905, 7.915, 7.925, 7.935, 7.945, 7.955, 7.965, 7.975, 7.985, 7.995, 8.005, 8.015, 8.025, 8.035, 8.045, 8.055, 8.065, 8.075, 8.085, 8.095, 8.105, 8.115, 8.125, 8.135, 8.145, 8.155, 8.165, 8.175, 8.185, 8.195, 8.205, 8.215, 8.225, 8.235, 8.245, 8.255, 8.265, 8.275, 8.285, 8.295, 8.305, 8.315, 8.325, 8.335, 8.345, 8.355, 8.365, 8.375, 8.385, 8.395, 8.405, 8.415, 8.425, 8.435, 8.445, 8.455, 8.465, 8.475, 8.485, 8.495, 8.505, 8.515, 8.525, 8.535, 8.545, 8.555, 8.565, 8.575, 8.585, 8.595, 8.605, 8.615, 8.625, 8.635, 8.645, 8.655, 8.665, 8.675, 8.685, 8.695, 8.705, 8.715, 8.725, 8.735, 8.745, 8.755, 8.765, 8.775, 8.785, 8.795, 8.805, 8.815, 8.825, 8.835, 8.845, 8.855, 8.865, 8.875, 8.885, 8.895, 8.905, 8.915, 8.925, 8.935, 8.945, 8.955, 8.965, 8.975, 8.985, 8.995, 9.005, 9.015, 9.025, 9.035, 9.045, 9.055, 9.065, 9.075, 9.085, 9.095, 9.105, 9.115, 9.125, 9.135, 9.145, 9.155, 9.165, 9.175, 9.185, 9.195, 9.205, 9.215, 9.225, 9.235, 9.245, 9.255, 9.265, 9.275, 9.285, 9.295, 9.305, 9.315, 9.325, 9.335, 9.345, 9.355, 9.365, 9.375, 9.385, 9.395, 9.405, 9.415, 9.425, 9.435, 9.445, 9.455, 9.465, 9.475, 9.485, 9.495, 9.505, 9.515, 9.525, 9.535, 9.545, 9.555, 9.565, 9.575, 9.585, 9.595, 9.605, 9.615, 9.625, 9.635, 9.645, 9.655, 9.665, 9.675, 9.685, 9.695, 9.705, 9.715, 9.725, 9.735, 9.745, 9.755, 9.765, 9.775, 9.785, 9.795, 9.805, 9.815, 9.825, 9.835, 9.845, 9.855, 9.865, 9.875, 9.885, 9.895, 9.905, 9.915, 9.925, 9.935, 9.945, 9.955, 9.965, 9.975, 9.995, 10.005, 10.015, 10.025, 10.035, 10.045, 10.055, 10.065, 10.075, 10.085, 10.095, 10.105, 10.115, 10.125, 10.135, 10.145, 10.155, 10.165, 10.175, 10.185, 10.195, 10.205, 10.215, 10.225, 10.235, 10.245, 10.255, 10.265, 10.275, 10.285, 10.295, 10.305, 10.315, 10.325, 10.335, 10.345, 10.355, 10.365, 10.375, 10.385, 10.395, 10.405, 10.415, 10.425, 10.435, 10.445, 10.455, 10.465, 10.475, 10.485, 10.495, 10.505, 10.515, 10.525, 10.545, 10.555, 10.565, 10.575, 10.585, 10.595, 10.605, 10.615, 10.625, 10.635, 10.645, 10.655, 10.665, 10.675, 10.685, 10.695, 10.705, 10.715, 10.725, 10.735, 10.745, 10.755, 10.765, 10.775, 10.785, 10.795, 10.805, 10.815, 10.825, 10.835, 10.845, 10.855, 10.865, 10.875, 10.885, 10.895, 10.905, 10.915, 10.925, 10.935, 10.945, 10.955, 10.965, 10.975, 10.985, 10.995, 11.005, 11.015, 11.025, 11.035, 11.045, 11.055, 11.065, 11.075, 11.085, 11.095, 11.105, 11.115, 11.125, 11.135, 11.145, 11.155, 11.165, 11.175, 11.185, 11.195, 11.205, 11.215, 11.225, 11.235, 11.245, 11.255, 11.265, 11.275, 11.285, 11.295, 11.305, 11.315, 11.325, 11.335, 11.345, 11.355, 11.365, 11.375, 11.385, 11.395, 11.405, 11.415, 11.425, 11.435, 11.445, 11.455, 11.465, 11.475, 11.485, 11.495, 11.505, 11.515, 11.525, 11.535, 11.545, 11.555, 11.565, 11.575, 11.585, 11.595, 11.615, 11.625, 11.635, 11.645, 11.655, 11.665, 11.675, 11.685, 11.695, 11.705, 11.715, 11.725, 11.735, 11.745, 11.755, 11.765, 11.775, 11.785, 11.795, 11.805, 11.815, 11.825, 11.835, 11.845, 11.855, 11.865, 11.875, 11.885, 11.895, 11.905, 11.915, 11.925, 11.935, 11.945, 11.955, 11.965, 11.975, 11.985, 11.995, 12.005, 12.015, 12.025, 12.035, 12.045, 12.055, 12.065, 12.075, 12.085, 12.095, 12.105, 12.115, 12.125, 12.135, 12.145, 12.155, 12.165, 12.175, 12.185, 12.195, 12.205, 12.215, 12.225, 12.235, 12.245, 12.255, 12.265, 12.275, 12.285, 12.295, 12.305, 12.315, 12.325, 12.335, 12.345, 12.355, 12.365, 12.375, 12.385, 12.395, 12.405, 12.415, 12.425, 12.435, 12.445, 12.455, 12.465, 12.475, 12.485, 12.495, 12.505, 12.515, 12.525, 12.535, 12.545, 12.555, 12.565, 12.575, 12.585, 12.595, 12.605, 12.625, 12.635, 12.655, 12.665, 12.675, 12.685, 12.695, 12.705, 12.715, 12.725, 12.735, 12.745, 12.755, 12.765, 12.775, 12.785, 12.795, 12.805, 12.815, 12.825, 12.835, 12.845, 12.855, 12.865, 12.875, 12.885, 12.895, 12.905, 12.915, 12.925, 12.935, 12.945, 12.955, 12.965, 12.975, 12.985, 12.995, 13.005, 13.015, 13.025, 13.035, 13.045, 13.055, 13.065, 13.075, 13.085, 13.095, 13.105, 13.115, 13.125, 13.135, 13.145, 13.155, 13.165, 13.175, 13.185, 13.195, 13.205, 13.215, 13.225, 13.235, 13.245, 13.255, 13.265, 13.275, 13.285, 13.295, 13.305, 13.315, 13.325, 13.335, 13.345, 13.355, 13.365, 13.375, 13.385, 13.395, 13.405, 13.415, 13.425, 13.435, 13.445, 13.455, 13.465, 13.475, 13.485, 13.495, 13.505, 13.515, 13.525, 13.535, 13.545, 13.555, 13.565, 13.575, 13.585, 13.595, 13.605, 13.615, 13.625, 13.635, 13.645, 13.655, 13.665, 13.675, 13.685, 13.695, 13.705, 13.715, 13.725, 13.735, 13.745, 13.755, 13.765, 13.775, 13.785, 13.795, 13.805, 13.815, 13.825, 13.835, 13.845, 13.855, 13.865, 13.875, 13.885, 13.895, 13.905, 13.925, 13.935, 13.945, 13.955, 13.965, 13.975, 13.985, 13.995, 14.005, 14.015, 14.025, 14.035, 14.045, 14.055, 14.065, 14.075, 14.085, 14.095, 14.105, 14.115, 14.125, 14.135, 14.145, 14.155, 14.165, 14.175, 14.185, 14.195, 14.205, 14.215, 14.225, 14.235, 14.245, 14.255, 14.265, 14.275, 14.285, 14.295, 14.305, 14.315, 14.325, 14.335, 14.345, 14.355, 14.365, 14.375, 14.385, 14.395, 14.405, 14.415, 14.425, 14.435, 14.445, 14.455, 14.465, 14.475, 14.485, 14.495, 14.505, 14.515, 14.525, 14.535, 14.545, 14.555, 14.565, 14.575, 14.585, 14.595, 14.605, 14.615, 14.625, 14.635, 14.645, 14.655, 14.665, 14.675, 14.685, 14.695, 14.705, 14.715, 14.725, 14.735, 14.745, 14.755, 14.765, 14.775, 14.785, 14.795, 14.805, 14.815, 14.825, 14.835, 14.845, 14.855, 14.865, 14.875, 14.885, 14.895, 14.905, 14.915, 14.925, 14.935, 14.945, 14.955, 14.965, 14.975, 14.985, 14.995, 15.005, 15.015, 15.025, 15.035, 15.055, 15.065, 15.075, 15.085, 15.105, 15.115, 15.125, 15.135, 15.145, 15.155, 15.165, 15.175, 15.185, 15.195, 15.205, 15.225, 15.245, 15.255, 15.265, 15.275, 15.285, 15.295, 15.305, 15.315, 15.335, 15.345, 15.355, 15.365, 15.375, 15.385, 15.395, 15.405, 15.415, 15.425, 15.435, 15.445, 15.455, 15.465, 15.475, 15.485, 15.495, 15.515, 15.525, 15.535, 15.555, 15.565, 15.575, 15.585, 15.595, 15.615, 15.625, 15.635, 15.645, 15.655, 15.665, 15.675, 15.685, 15.695, 15.705, 15.715, 15.725, 15.735, 15.745, 15.755, 15.765, 15.775, 15.785, 15.795, 15.805, 15.815, 15.825, 15.835, 15.845, 15.855, 15.865, 15.875, 15.885, 15.895, 15.905, 15.915, 15.925, 15.935, 15.945, 15.955, 15.965, 15.975, 15.985, 15.995, 16.005, 16.015, 16.025, 16.035, 16.045, 16.055, 16.065, 16.075, 16.085, 16.095, 16.105, 16.115, 16.125, 16.135, 16.145, 16.155, 16.165, 16.175, 16.185, 16.195, 16.205, 16.215, 16.225, 16.235, 16.245, 16.255, 16.265, 16.275, 16.285, 16.295, 16.305, 16.315, 16.325, 16.335, 16.345, 16.355, 16.365, 16.375, 16.385, 16.395, 16.405, 16.415, 16.425, 16.435, 16.445, 16.455, 16.465, 16.475, 16.485, 16.495, 16.505, 16.515, 16.525, 16.535, 16.545, 16.555, 16.565, 16.575, 16.585, 16.595, 16.605, 16.615, 16.625, 16.635, 16.645, 16.655, 16.665, 16.675, 16.685, 16.695, 16.705, 16.715, 16.725, 16.735, 16.745, 16.755, 16.765, 16.775, 16.785, 16.795, 16.805, 16.815, 16.825, 16.835, 16.845, 16.855, 16.865, 16.875, 16.885, 16.895, 16.905, 16.915, 16.925, 16.935, 16.945, 16.955, 16.965, 16.975, 16.985, 16.995, 17.005, 17.015, 17.025, 17.035, 17.045, 17.055, 17.065, 17.075, 17.085, 17.095, 17.105, 17.115, 17.125, 17.135, 17.145, 17.155, 17.165, 17.175, 17.185, 17.195, 17.205, 17.215, 17.225, 17.235, 17.245, 17.255, 17.265, 17.275, 17.285, 17.295, 17.305, 17.315, 17.325, 17.335, 17.345, 17.355, 17.365, 17.375, 17.385, 17.395, 17.405, 17.415, 17.425, 17.435, 17.445, 17.455, 17.465, 17.475, 17.485, 17.495, 17.505, 17.515, 17.525, 17.535, 17.545, 17.555, 17.565, 17.575, 17.585, 17.595, 17.605, 17.615, 17.625, 17.635, 17.645, 17.665, 17.685, 17.695, 17.705, 17.715, 17.725, 17.735, 17.745, 17.755, 17.765, 17.775, 17.785, 17.795, 17.805, 17.815, 17.825, 17.835, 17.845, 17.855, 17.865, 17.875, 17.885, 17.895, 17.905, 17.915, 17.925, 17.945, 17.955, 17.965, 17.975, 17.985, 17.995, 18.005, 18.015, 18.025, 18.035, 18.045, 18.065, 18.075, 18.085, 18.095, 18.105, 18.115, 18.125, 18.135, 18.145, 18.155, 18.165, 18.175, 18.185, 18.195, 18.205, 18.215, 18.225, 18.235, 18.245, 18.255, 18.265, 18.275, 18.285, 18.295, 18.305, 18.315, 18.325, 18.335, 18.345, 18.355, 18.365, 18.375, 18.385, 18.395, 18.405, 18.415, 18.425, 18.435, 18.445, 18.455, 18.465, 18.475, 18.485, 18.495, 18.505, 18.515, 18.535, 18.545, 18.555, 18.565, 18.585, 18.595, 18.605, 18.615, 18.625, 18.635, 18.645, 18.655, 18.665, 18.675, 18.685, 18.695, 18.705, 18.715, 18.725, 18.735, 18.745, 18.755, 18.765, 18.775, 18.785, 18.795, 18.805, 18.815, 18.825, 18.835, 18.845, 18.855, 18.865, 18.875, 18.885, 18.895, 18.905, 18.915, 18.925, 18.935, 18.945, 18.955, 18.965, 18.975, 18.985, 18.995, 19.005, 19.015, 19.025, 19.045, 19.055, 19.065, 19.075, 19.085, 19.095, 19.115, 19.125, 19.135, 19.145, 19.155, 19.165, 19.175, 19.185, 19.195, 19.205, 19.215, 19.225, 19.235, 19.245, 19.255, 19.265, 19.275, 19.285, 19.295, 19.305, 19.315, 19.325, 19.335, 19.345, 19.355, 19.365, 19.375, 19.385, 19.395, 19.405, 19.415, 19.425, 19.435, 19.445, 19.455, 19.465, 19.475, 19.485, 19.495, 19.505, 19.515, 19.525, 19.535, 19.545, 19.555, 19.565, 19.575, 19.585, 19.595, 19.605, 19.615, 19.625, 19.635, 19.645, 19.655, 19.665, 19.675, 19.685, 19.695, 19.705, 19.715, 19.725, 19.735, 19.745, 19.755, 19.765, 19.775, 19.785, 19.795, 19.805, 19.815, 19.825, 19.835, 19.845, 19.855, 19.865, 19.875, 19.885, 19.895, 19.915, 19.925, 19.935, 19.945, 19.955, 19.965, 19.975, 19.985, 19.995] }, { "type": "double", "attributes": {}, "value": [78.87398132, 230.82551398, 373.55352147, 505.55501771, 625.66133705, 733.03121759, 827.13561827, 907.73589536, 974.85694923, 1028.75687714, 1069.89454553, 1098.89634109, 1116.52318515, 1125.05789229, 1128.91849067, 1124.43258861, 1112.45181939, 1093.83656963, 1112.29060612, 1127.82473968, 1139.76357412, 1141.75611519, 1129.9565349, 1114.82484133, 1105.24238659, 1131.06723942, 1155.8094712, 1170.17486797, 1154.34133164, 1136.56599635, 1122.83821822, 1113.3044412, 1102.28830862, 1122.7528647, 1146.48213823, 1166.89060256, 1182.62930916, 1198.39078664, 1226.78922467, 1255.33075494, 1241.54227439, 1213.06910958, 1212.02079134, 1236.08674338, 1244.09990378, 1223.6189979, 1207.29439089, 1203.85051609, 1206.82297931, 1237.91518203, 1257.30944908, 1223.09841713, 1193.5042706, 1180.3688251, 1176.17148782, 1196.83316371, 1211.50021075, 1215.33787962, 1223.22545376, 1235.4869822, 1236.56363528, 1231.16582125, 1201.93656159, 1168.68956112, 1175.42933345, 1170.09586433, 1128.21169791, 1116.58083412, 1136.21051965, 1173.20505672, 1216.25450765, 1225.82999207, 1226.32560799, 1208.54899646, 1160.85322701, 1099.16551758, 1077.2202365, 1064.04927856, 1067.10213202, 1072.66349448, 1076.71093097, 1033.31590617, 1040.63640065, 1115.56894251, 1122.2473282, 1099.78403195, 1033.22265194, 1027.5920031, 1048.34089347, 1028.05549746, 995.84249131, 954.08087844, 1019.72039629, 1053.84534966, 1039.42186237, 989.54415015, 955.01474187, 948.5458747, 936.40510398, 914.59770371, 877.68638842, 935.37378678, 952.65541937, 867.40982831, 848.14365983, 846.19917544, 857.30666751, 845.01151952, 838.04413229, 839.5008698, 821.42794516, 814.7904849, 815.49206349, 797.4216405, 770.83537217, 752.03510027, 775.04060508, 791.06906513, 777.51571995, 718.15352632, 740.31425348, 759.86146504, 763.2839345, 701.84750001, 684.11839934, 695.40963638, 736.12356457, 713.76081656, 705.36077847, 705.56855597, 641.93549838, 660.3756038, 687.78862024, 679.4719285, 663.45291663, 627.01105458, 597.19263852, 620.43589503, 612.10414538, 599.68590987, 598.95513061, 661.45024183, 591.16550361, 551.2944413, 569.14024552, 538.26519044, 537.92752368, 524.25720297, 488.41826891, 527.52139969, 544.15849222, 545.36481696, 537.50191581, 541.28031665, 517.11130716, 507.52421969, 519.01234924, 468.84067706, 486.97999325, 503.601039, 501.16519764, 512.65564064, 470.89997189, 457.26470969, 462.65209819, 439.85621523, 469.94788607, 464.50149558, 442.19733331, 430.12843257, 420.26593075, 424.19541221, 443.61442718, 458.5003108, 387.03867361, 426.52054006, 405.68479775, 368.69520283, 396.75572679, 360.51877343, 318.12212448, 329.54667618, 389.28808427, 365.80180901, 380.82986048, 390.03399133, 376.07202247, 336.70726356, 305.04573852, 314.9311314, 307.58976661, 290.1019442, 287.24941777, 314.5630493, 325.1299915, 327.77504992, 323.77124419, 310.57632483, 284.54555004, 297.66979969, 294.04182772, 278.42840986, 290.97257544, 312.90822427, 276.53208409, 258.09307308, 270.22543902, 296.04942867, 252.62373916, 252.8545477, 262.54178508, 270.58354154, 272.54301872, 261.34845832, 263.70590459, 268.84255487, 259.51992182, 233.10211905, 218.43843353, 200.92195358, 212.5766007, 223.59409374, 223.59518267, 229.28568456, 206.70183058, 204.15876706, 201.97024132, 191.82438972, 182.65856752, 226.04513753, 199.23324308, 232.05781642, 242.05907323, 211.31830358, 204.67348832, 207.6139238, 179.53775899, 161.41704237, 168.07574078, 185.29049618, 155.7708912, 176.07752792, 167.85601939, 180.43566616, 196.47724272, 182.33551012, 149.17094126, 119.557631, 155.44932849, 152.87332751, 138.5264047, 163.94808206, 171.94413215, 168.51517217, 144.79578631, 144.58442474, 156.99330355, 155.43046946, 134.40467674, 160.05551396, 156.68287444, 149.00157048, 142.58596869, 134.61308181, 122.90478708, 117.16429469, 146.87844515, 141.54718811, 122.44658634, 114.82542057, 119.10312024, 116.98071008, 119.67159755, 93.73327075, 111.52514115, 136.30538082, 110.06396045, 135.38044026, 107.86191138, 133.04151867, 105.55310388, 84.48813444, 100.29763192, 142.85861501, 115.10101553, 93.06692751, 104.2139816, 118.87130245, 108.42199126, 89.52419223, 102.61928261, 88.50710152, 88.91295079, 92.67011337, 93.319542, 96.19066995, 101.90478057, 91.38503481, 71.85026263, 80.9484603, 83.2463865, 77.28817772, 81.3999347, 96.85941039, 80.6627223, 101.84599855, 92.04120994, 77.24346089, 77.84284819, 85.98809578, 88.28417229, 88.9962278, 95.90051718, 86.17798256, 92.18539136, 89.56835762, 87.20108158, 91.1449627, 83.46230526, 56.00219439, 80.19528939, 66.34922544, 61.3843443, 72.76797327, 86.47431382, 80.44295166, 68.99386876, 78.26071986, 57.21094332, 63.63462174, 76.21257289, 69.64724947, 58.20276547, 72.9695605, 91.77254054, 76.88191944, 62.64118226, 60.55529142, 64.174158, 66.03496589, 62.85642998, 58.29611701, 59.88034455, 62.96746723, 64.19506484, 59.5574263, 54.72843679, 54.06575725, 57.04281026, 57.71563601, 45.28416971, 50.09338679, 61.68832038, 68.03416652, 47.8044363, 38.31258297, 50.28423791, 36.891437, 57.77442444, 62.31324942, 48.5259022, 45.75320622, 46.39671471, 46.28404557, 40.90526119, 27.8743178, 34.30327625, 38.25826875, 45.56318268, 30.90903453, 37.85032872, 53.32601805, 44.96160559, 37.99120661, 52.81888137, 34.48862483, 45.65611889, 36.02683004, 34.27113341, 32.61979946, 36.63359517, 53.63688305, 44.74292612, 35.4645752, 51.93473646, 50.16344953, 40.18274146, 34.79757809, 47.17877574, 59.66154527, 36.31737155, 30.86507649, 40.64937357, 36.15379435, 30.56448034, 39.75511273, 56.22638777, 53.37600353, 36.35496193, 30.59025095, 36.95866074, 32.93189583, 27.24287722, 26.44787355, 31.46177382, 28.34250834, 29.90809313, 34.61561192, 24.92214235, 30.05729659, 29.25187419, 25.19768292, 34.03159698, 27.74705058, 28.47107901, 28.49126937, 17.78688258, 12.49683532, 27.48470148, 44.51358448, 29.57472993, 37.65884657, 21.58559822, 24.06999766, 27.35168647, 27.57650895, 32.94623635, 30.45738333, 41.00783837, 27.97135421, 22.74078143, 17.73734981, 19.40473809, 18.47767084, 16.54607615, 16.85904011, 18.09746977, 22.10668315, 38.01567012, 24.72202138, 18.44844894, 31.16725266, 28.64264503, 22.45701584, 30.18596306, 40.6470684, 26.06966189, 21.31560584, 21.68213953, 8.97248154, 13.31532448, 21.53124986, 21.94358738, 20.78756501, 23.08040311, 27.53914891, 25.30164642, 13.45984553, 29.05785826, 16.43008779, 26.59841604, 16.13476593, 16.24829645, 22.18081461, 26.31548551, 20.88952153, 12.96092126, 13.97047262, 21.72225851, 30.10756641, 17.2649941, 14.31468808, 12.63282097, 12.5764129, 13.41819284, 17.18068515, 20.96599842, 14.46651636, 14.01080668, 27.76796728, 15.71748369, 11.74872428, 18.93350468, 31.20010704, 17.71304116, 11.11299566, 14.56255878, 16.03594132, 14.67923413, 7.8977373, 17.31668217, 5.43098053, 29.25891135, 33.50509112, 40.43380552, 25.0524496, 18.76018889, 27.25432187, 22.07074106, 23.28600977, 19.01700343, 25.82786583, 11.48767539, 25.53528631, 21.3115543, 17.14933502, 16.79242048, 14.11948039, 12.07735309, 13.76264193, 14.76149599, 25.73051656, 8.5933935, 12.47176163, 13.82516561, 21.3449872, 24.64217534, 11.97890927, 8.34515059, 15.65077409, 22.74190988, 13.42736606, 12.64981325, 2.86200981, 10.91674307, 18.9205853, 14.65748467, 8.26267903, 8.95679316, 15.15176882, 17.14774974, 14.46532108, 14.93977185, 9.18916946, 15.05485608, 15.91565775, 9.92653312, 11.59011931, 14.79999396, 18.24646847, 13.78216951, 10.32197758, 11.91938522, 18.98314787, 28.81161542, 15.65125519, 6.76847139, 11.93674846, 11.38145557, 8.96584266, 13.86287156, 19.19544272, 14.15569372, 11.17408703, 14.93622995, 23.34901897, 25.38180034, 12.77149579, 17.02586503, 18.75744533, 13.71550889, 12.41327064, 22.95224352, 15.86686837, 11.29925525, 11.30088127, 10.91756782, 12.52576442, 19.06136988, 22.5025431, 41.66386232, 15.1745241, 16.79710529, 10.39614263, 14.68430266, 9.83088471, 15.19167999, 13.38280371, 5.58550627, 5.88722847, 12.04244038, 9.034081, 8.0634555, 13.25231946, 14.12377327, 19.05028762, 8.21860048, 10.34772137, 14.60189669, 9.71391748, 11.04934735, 18.90229767, 13.93585259, 7.56290549, 7.86933732, 9.62989227, 11.12752532, 4.9616509, 5.5409468, 11.71822176, 16.80324505, 23.54150965, 18.9670332, 16.32009773, 13.67422244, 5.92203764, 4.72181745, 15.983735, 5.51604984, 20.62569367, 14.47877921, 10.83266799, 25.7139249, 17.80848359, 14.82677533, 12.2316625, 10.89216052, 12.14761424, 14.20851515, 15.28665003, 11.56117699, 6.85349005, 9.04850466, 25.87756174, 3.53925901, 13.71045479, 14.50547434, 5.66535008, 8.80943353, 19.27590508, 15.57998077, 7.26665879, 5.27710776, 7.06329596, 7.12004076, 3.40546935, 18.86628421, 13.55525934, 7.25428403, 21.40566915, 14.60720373, 7.23163823, 11.88536839, 12.16712565, 8.75857887, 10.10228433, 10.51683586, 12.34586665, 10.02376755, 13.66581118, 17.90707681, 8.02053812, 9.24599983, 11.01223203, 15.34291456, 15.21061273, 8.35890417, 9.155777, 17.60317393, 15.17658565, 8.82980606, 12.16037067, 11.58632248, 11.70510747, 6.72550983, 9.37217814, 6.96065473, 5.0783715, 2.41410111, 4.43414959, 2.0618258, 2.89911949, 9.56701905, 11.6099392, 10.17477423, 12.33241116, 18.72985566, 5.18838242, 9.54655788, 9.54752225, 15.51398798, 13.77422289, 9.48125562, 8.59621807, 10.33993188, 8.41505518, 9.49554168, 11.02424723, 11.11558226, 7.17720433, 1.3236407, 4.91824557, 16.52387978, 11.60436866, 16.0607347, 8.25900565, 7.65081692, 11.736438, 15.33382734, 25.18207959, 29.15357059, 24.29260235, 12.33144731, 6.65700649, 10.59287925, 17.65568948, 19.86776863, 21.6098813, 8.747408, 13.21796446, 14.26778542, 9.36946655, 11.44583187, 9.60697831, 8.62171707, 6.15079191, 13.6410325, 23.70730114, 13.77200499, 7.63450568, 2.70789397, 8.99410549, 15.5276755, 4.79374288, 4.79417062, 2.98796427, 19.69936384, 9.89491999, 12.16229871, 10.9725395, 12.2576078, 8.77120405, 5.75706387, 7.66377966, 9.99728715, 11.50077779, 26.19544211, 11.42150173, 5.47215036, 19.03047548, 14.53635643, 12.65480664, 10.01107871, 7.27567884, 5.2849466, 4.80290484, 4.80330927, 7.62027431, 9.5509711, 5.81846862, 4.86320372, 7.94339535, 9.03086214, 10.42108267, 8.31536179, 1.94470734, 2.8448369, 16.02873802, 8.8903794, 9.86385383, 9.15884576, 8.65666093, 5.34210025, 7.21953021, 8.67997321, 4.88665351, 5.65251482, 9.45408671, 6.3322823, 7.56858732, 4.01837277, 5.81552376, 6.72198676, 16.93844553, 13.18852191, 14.03969801, 12.99137684, 11.17422449, 9.98640263, 13.38682285, 4.08982817, 4.48032697, 12.79803529, 2.53937093, 2.14102189, 2.66620722, 2.41391653, 10.10267291, 16.96501537, 6.03809211, 16.34692747, 7.90322157, 7.49256828, 6.26510353, 4.42041104, 3.24158485, 3.82345674, 7.67744975, 14.06423406, 9.61856052, 3.52980977, 3.58090921, 6.33063172, 5.13812968, 8.09458043, 14.35245281, 8.87293517, 5.11810109, 21.81205652, 8.20539578, 4.31649332, 2.43171733, 5.45748421, 7.60411202, 11.48607494, 15.82725532, 8.87723687, 8.5574321, 9.4359911, 7.90742078, 14.49197523, 12.86145767, 4.06185546, 16.77085698, 7.305838, 11.5309972, 9.34783444, 2.827109, 8.47102878, 13.1805076, 5.21600273, 5.4241596, 9.20874988, 9.08390146, 9.67063558, 4.91990812, 1.91924887, 15.65602669, 9.40837912, 7.95602714, 11.48817041, 5.02811055, 7.38465793, 10.8993034, 12.36847942, 11.13289098, 9.98170337, 6.29570517, 6.74546687, 10.50631761, 10.65156571, 7.41442605, 4.58096757, 2.58537911, 2.99009083, 12.58929545, 10.90900253, 3.9799639, 5.88484624, 16.62033941, 11.18579469, 4.52576168, 9.24850595, 5.17406669, 6.73990512, 6.76172068, 5.23768401, 4.845738, 6.36572206, 10.14163599, 11.05791129, 9.96553938, 14.23844111, 13.4860343, 4.99632237, 2.0561572, 4.02048845, 12.26250545, 2.24187024, 13.08574073, 7.13076311, 14.55479618, 11.02562996, 8.08355284, 8.87434228, 11.6631782, 7.31868683, 7.52664005, 9.75942098, 3.8818225, 4.54203303, 6.79400054, 5.46123436, 2.49852043, 15.04076855, 9.67459387, 7.83195968, 5.06480443, 7.26307453, 20.04787025, 15.85364388, 2.14821532, 2.74975591, 5.93103096, 5.02096192, 5.10963676, 9.20642159, 9.81615264, 6.41466849, 8.03386025, 6.80381819, 3.38512228, 6.52336229, 4.9791065, 6.62927933, 2.02121691, 7.72215902, 7.03838126, 9.82956212, 13.54504578, 6.68056414, 3.47161426, 6.06247515, 9.72360835, 14.8080124, 13.03882291, 5.43495709, 4.9626784, 8.06100166, 8.22304777, 5.31322336, 2.33912831, 6.97642983, 8.96090174, 14.55295843, 7.10965687, 6.81138214, 2.37124471, 9.59435955, 16.01719983, 6.09085926, 3.89326631, 2.5869615, 6.5578394, 11.34897622, 9.79529306, 9.08810077, 5.12485624, 8.15035212, 7.750691, 10.55706636, 6.67289223, 5.63724409, 3.95733781, 5.81764972, 3.0480152, 6.9918443, 4.35421209, 3.89675158, 8.79214223, 7.2413565, 4.50680885, 2.58525918, 2.83931944, 7.96167836, 11.16925892, 3.1623145, 2.36710041, 5.91762169, 1.72447883, 11.60049363, 19.45329491, 6.01420723, 2.0955581, 7.76584569, 2.07739593, 3.65337407, 2.15353977, 4.090476, 10.07719815, 10.52047154, 3.35700196, 1.95073829, 3.27632753, 5.80496238, 3.7937851, 4.5561792, 15.98187615, 14.54589885, 6.48166295, 2.66842723, 2.30214916, 5.10133786, 6.35998364, 3.16320615, 23.81819343, 9.33176304, 6.11598602, 0, 8.25767611, 5.61388853, 4.88156184, 3.57938791, 2.92921417, 4.84336745, 10.78530846, 9.60851113, 3.47653811, 2.22706515, 2.93003909, 3.29419592, 5.43577953, 9.33216856, 11.93999122, 2.99301892, 4.87048934, 3.95411454, 6.46922471, 4.24149846, 3.90852454, 3.14071187, 9.68326946, 11.42745942, 8.50919157, 3.52774677, 2.42110286, 4.09327305, 5.41790978, 6.39803624, 6.4747811, 4.18822658, 8.60571551, 5.09426928, 3.35181991, 6.59285243, 5.17687644, 11.61304092, 6.94447596, 4.07397149, 4.76251083, 2.27382525, 4.65923842, 6.58224108, 9.97758388, 13.5795811, 8.41221745, 5.29853336, 11.90169955, 19.09227454, 7.70630142, 2.31197876, 1.78139562, 0, 20.11785512, 11.28978149, 13.89207053, 9.01540316, 12.39470028, 3.05575175, 12.26324321, 5.52189108, 2.27132688, 2.70071516, 5.53694389, 3.77637078, 10.24857733, 7.2904539, 3.91690643, 3.91706985, 3.91723299, 4.31716643, 5.25873223, 9.36077187, 15.72853066, 7.31516873, 8.08572323, 4.88203411, 1.95926383, 2.32714097, 16.03927081, 5.92764917, 10.44252678, 4.31998193, 5.55418728, 9.63981857, 5.86590257, 8.11490337, 6.10046087, 5.50689393, 5.27491656, 3.6957511, 3.81315762, 4.90113299, 5.64782495, 8.6696328, 9.84311352, 3.495068, 1.73159305, 11.71719777, 16.86788713, 3.12232236, 5.07484429, 7.81353269, 6.87674586, 3.08640562, 2.94218857, 5.32960648, 5.07323923, 5.64424592, 9.14845881, 5.39754281, 5.08999206, 10.1883335, 10.37575831, 9.66327956, 7.80084746, 7.61716659, 11.5900369, 10.51587316, 12.19578823, 8.71069987, 10.79793513, 7.85096317, 6.56825656, 2.29068053, 11.63060886, 8.8377739, 12.56861195, 8.17769736, 1.27527939, 6.10583021, 8.83532005, 9.55950221, 9.1147754, 7.48011582, 12.35403385, 9.35797323, 2.25199583, 3.98856223, 13.12879629, 10.21240432, 8.07645462, 3.63914206, 3.10828589, 10.05219682, 10.37596044, 8.04743158, 4.78360924, 4.34722964, 14.34906656, 6.91217222, 4.03738167, 9.04820405, 5.38065208, 9.43124293, 1.64227726, 9.13797488, 6.33901637, 0, 3.93095181, 5.70757861, 6.81543456, 5.89705365, 6.64410552, 3.61729414, 2.78682024, 14.49390166, 5.14462395, 5.10139766, 3.72522373, 11.79741564, 10.4609085, 2.98879954, 3.94936361, 8.59752224, 5.14198278, 8.26177546, 8.85020635, 4.61965704, 9.07745164, 7.1616585, 7.17613624, 7.22409949, 8.00371545, 10.39594321, 6.6788385, 5.79751086, 4.58370428, 3.72952532, 8.197163, 7.3527013, 10.55299146, 7.35309452, 6.2465007, 8.15078365, 9.07784658, 5.18683982, 9.6598688, 5.91566794, 7.77436822, 3.20463551, 1.12712445, 0.98418561, 2.97072446, 6.65391147, 8.56849773, 6.73053022, 9.19063861, 6.99614861, 4.92205972, 6.67842439, 7.85430587, 8.73612738, 11.81448185, 12.16130246, 9.98168066, 3.5629446, 1.9867594, 14.6250378, 5.61141859, 2.4081733, 10.00300376, 11.90287457, 13.70311516, 6.07105606, 9.4984342, 15.79411453, 4.88888267, 6.20592017, 6.12091284, 3.55394012, 5.8427116, 7.88110602, 4.30256626, 13.40799416, 26.67655532, 11.35512026, 8.84679953, 8.16330866, 5.90255937, 6.20296925, 6.03404141, 14.91199855, 11.45775879, 6.90441157, 5.00263345, 17.39997284, 9.5925852, 6.89939859, 6.89961022, 8.78409779, 4.19898378, 5.64293774, 1.299492, 11.52227953, 13.46023637, 5.29869515, 2.43946087, 0, 5.82807387, 0, 6.03718375, 4.96309816, 3.53865219, 9.20961403, 10.44084659, 10.93445419, 11.41597061, 13.39153403, 1.2793586, 5.650828, 13.20245418, 4.08053058, 7.90153183, 8.85018028, 6.07539738, 11.03072926, 7.4449087, 10.0180777, 2.84407775, 1.1748558, 9.16033209, 13.81127337, 7.38223971, 5.30837024, 3.70403062, 4.61486619, 5.26080274, 4.36389478, 4.50074126, 4.29231254, 5.52900945, 7.91508298, 9.25298971, 6.32123744, 8.23778475, 10.60498051, 14.10015166, 6.16579224, 9.78011426, 7.91625986, 12.63603556, 9.11311092, 7.99716271, 4.35911586, 3.94934419, 4.70454865, 5.65761461, 8.51740562, 8.49567397, 7.25528195, 4.15502582, 7.88276549, 17.30247708, 8.49284436, 4.37221588, 7.36347221, 14.22402122, 14.447554, 9.44917664, 7.40436602, 9.86780052, 12.36575605, 5.62387849, 1.17856572, 4.42923646, 13.2021743, 5.90742309, 4.95554326, 7.70740274, 6.99941808, 11.0795604, 4.72108382, 8.89784969, 4.01666372, 6.0672659, 8.57902023, 6.81017289, 5.29323857, 3.66188386, 8.65839444, 15.55834511, 10.86790451, 8.43791981, 6.49732659, 5.10031835, 6.30145926, 15.51159125, 14.55879548, 12.81156059, 7.82884136, 2.78147829, 2.21232146, 5.14970591, 7.36280705, 2.05553648, 20.76952357, 4.34122525, 3.04409992, 1.13484696, 2.48616526, 9.64281774, 3.04950612, 2.6626563, 2.23530112, 4.09729444, 3.84020151, 6.05566153, 11.93046858, 5.01078945, 5.61194965, 15.88911797, 8.54819236, 5.3938116, 6.71810085, 5.71659178, 11.61323718, 8.06989192, 5.93552626, 6.68988215, 10.2046809, 4.24989937, 7.7612533, 5.80065592, 2.97110272, 1.02948831, 0, 6.28415782, 5.10783019, 1.38607606, 3.34118967, 5.64362598, 6.6010263, 11.39034051, 6.55917166, 5.48754338, 6.9280543, 7.88487284, 4.32568115, 3.67316969, 11.30467725, 10.44802831, 4.27438128, 3.01156277, 1.1973303, 2.33858044, 4.6798959, 9.36143018, 10.53099255, 5.12570868, 6.35287568, 2.0698869, 6.92304072, 3.05390312, 5.67236209, 3.18534553, 7.68599163, 13.62738631, 10.7501231, 12.80351466, 3.35161584, 7.2851863, 14.77148665, 9.4272815, 8.04968159, 16.84235806, 11.18842347, 10.28356157, 13.68997063, 10.05625822, 9.26049345, 4.9527613, 4.95287703, 4.26804962, 5.18575088, 17.79562021, 6.38993388, 16.08760391, 5.93867983, 2.26991763, 8.8572403, 7.67183935, 2.0088383, 5.66941239, 7.75418756, 7.03860074, 6.93627359, 9.30493696, 14.36730767, 14.33079677, 5.60179806, 7.4647684, 7.83834755, 6.30071384, 4.67871929, 5.83754238, 8.43493666, 10.27701891, 9.87372575, 5.22076959, 3.90510326, 7.85725415, 12.2007865, 8.09624868, 3.96520011, 3.71295633, 2.74716447, 2.61726274, 10.28267438, 7.47392856, 14.28049284, 7.93163594, 7.93181154, 2.07771549, 9.74047997, 7.25841177, 10.27719369, 5.64342606, 4.95803773, 7.1221448, 12.61630863, 5.85437313, 4.60953764, 2.75724908, 8.04379802, 9.91912942, 7.85356512, 17.96530263, 17.29992936, 7.44985094, 5.51886287, 5.6384356, 6.94336653, 3.74866426, 0.9919522, 1.62068305, 7.33881115, 8.7327593, 0, 2.22487063, 6.60445991, 0, 0, 9.68079136, 7.20012735, 11.87979967, 14.53655717, 2.95079209, 5.78061481, 1.70645674, 4.32017801, 4.09261232, 9.09288004, 0, 0, 7.84741069, 8.46834257, 5.92922906, 3.030509, 3.1084651, 5.26967518, 3.97582962, 0, 4.74673353, 3.97072747, 4.36597138, 7.38244547, 4.24908711, 9.64003511, 4.91429531, 2.02318721, 2.91648539, 4.75752141, 9.97775219, 10.06794626, 20.40361764, 16.42815675, 4.38256082, 4.32260588, 0, 7.56643278, 7.32882916, 0, 3.66733786, 3.36321601, 6.77909016, 9.07427329, 0, 9.29980674, 8.40129856, 3.97419043, 8.43500196, 6.7417886, 6.49830043, 9.45497595, 7.05407105, 7.53584081, 3.72912715, 1.0227988, 6.7431325, 4.07886449, 3.04752868, 2.07605284, 2.8173618, 11.96790615, 10.91620885, 3.93622618, 1.32442141, 3.10397422, 3.51538641, 4.14752438, 6.63653726, 24.04690288, 18.44583269, 4.75346636, 5.40262845, 8.96153447, 5.88948584, 5.50913361, 5.94390042, 4.64702393, 10.27068571, 9.46340792, 5.99696387, 1.26579457, 3.50197273, 6.36365708, 4.27397992, 7.0504654, 7.22995524, 1.93578309, 1.00882006, 5.73427106, 3.09200126, 2.05566866, 1.98824653, 5.82087859, 6.12585013, 4.31742724, 3.97679011, 3.97686415, 3.24490867, 7.62563864, 4.86503909, 2.98286956, 5.30592942, 9.0078453, 5.27005675, 5.94480225, 5.16332861, 4.02252963, 8.59803633, 8.25788706, 7.69167614, 4.96007984, 9.53835573, 14.0804979, 9.27901827, 4.1591383, 6.17977652, 14.50433136, 4.35055546, 7.49842407, 1.1557231, 18.36717295, 5.02840304, 5.9271147, 4.08906289, 4.86718436, 3.18340906, 6.82901379, 2.57298592, 7.58515892, 10.9429607, 8.68399379, 9.29743382, 14.72655296, 8.88590467, 7.11143312, 16.44255367, 8.1589124, 7.36223736, 12.37651948, 5.39130027, 4.80119493, 7.06505602, 6.44803901, 9.95061576, 8.89118021, 9.13001196, 14.98603686, 8.95618258, 7.62147976, 4.2645513, 5.41590183, 3.28199752, 6.49541823, 3.12439242, 6.94045428, 5.97573569, 5.97172387, 8.73374255, 1.21676205, 4.10015922, 7.4231931, 1.4419318, 0.99539035, 4.87467264, 9.38292426, 7.73774509, 8.8727047, 14.5747989, 5.9021093, 2.35013621, 1.34842859, 3.40064125, 7.01646371, 7.24525899, 8.3505646, 6.3718971, 7.34194747, 3.757313, 1.43498918, 3.68787791, 6.46688084, 6.71280496, 4.63361412, 5.36870619, 1.29075282, 4.65258449, 3.26310534, 6.88981466, 6.17379994, 11.90932039, 9.97619642, 6.09269582, 1.12193011, 8.72540687, 8.28642918, 22.36108951, 11.90912912, 4.82174887, 7.39885781, 5.81916318, 2.60601587, 2.62296355, 4.68988632, 4.64414053, 3.35866125, 4.82579631, 3.55632524, 3.77081489, 7.43579763, 3.10693551, 0.99618966, 2.99296599, 5.73517963, 1.72358648, 4.98127162, 5.6940253, 9.6701458, 10.38731656, 2.39442852, 4.56151763, 3.21807098, 4.85391408, 3.52467541, 1.08390777, 4.07737287, 7.97144533, 7.97157272, 6.06677514, 5.05433371, 6.73002837, 5.21280267, 4.98262972, 5.77584421, 5.18444098, 4.21061439, 6.59784996, 3.02445538, 5.05647767, 5.89127916, 5.57572408, 5.37159972, 2.98084447, 5.18239566, 7.68259348, 3.21602928, 3.01208636, 6.39018053, 0, 0, 5.32767271, 4.76766115, 8.7557737, 7.22489219, 1.2088895, 3.12091375, 4.335675, 7.27806221, 2.91198017, 2.06571917, 5.01139529, 7.91604512, 18.2458108, 3.40789196, 9.65698413, 7.38587272, 2.41385135, 1.12935787, 3.57347247, 4.98565048, 4.2280619, 1.48746139, 0.99717551, 4.22595195, 0, 4.68774494, 1.99450174, 1.38927527, 3.26553404, 9.98765598, 8.0349801, 6.98128076, 5.03139319, 4.44164372, 6.22865142, 0, 11.1710643, 2.64407511, 6.24977391, 3.79817948, 3.30710764, 6.19052741, 7.64748573, 5.21289338, 9.84479973, 6.84646819, 1.03040384, 9.02681501, 6.20397802, 7.76144539, 12.21355893, 1.46702479, 3.75153914, 6.52101216, 9.88921822, 5.17582501, 2.42899601, 6.05514844, 3.4318761, 3.57554517, 5.57562332, 2.10499201, 2.4447111, 2.12511537, 3.90384022, 7.96545888, 5.45517897, 7.06575771, 3.8676233, 3.75860304, 7.0126108, 3.92104616, 6.67807645, 3.72010065, 1.3904704, 3.44428467, 2.64240578, 7.05903695, 2.19010485, 4.17007479, 5.66045458, 0, 2.00287535, 7.72534634, 7.03373949, 0, 2.10326185, 4.33064853, 2.35658597, 5.39014508, 6.20866723, 5.98942018, 9.82793699, 9.06177868, 8.63413241, 6.18151223, 2.85384876, 2.99318737, 6.6591411, 6.90421658, 5.91845278, 6.49011652, 7.88841831, 7.83597786, 4.99208622, 3.53637746, 2.75276315, 2.96162506, 1.70469311, 6.24808663, 7.22367351, 6.43175823, 4.10063784, 13.98457191, 9.04035188, 5.10110613, 6.21889787, 8.64485769, 5.08862261, 8.08410367, 17.81383566, 5.23464277, 17.45415728, 11.52833684, 11.86605897, 7.53727148, 7.81535665, 5.46242117, 3.34666502, 3.72620708, 0, 2.98909364, 6.79610184, 9.19666863, 5.7406782, 3.99540584, 0, 6.30350605, 6.74761327, 8.07321206, 4.01778132, 2.54751554, 1.54038865, 1.27306803, 4.53343624, 11.73561574, 2.69876825, 5.99414302, 6.20381703, 7.1803574, 9.27712705, 17.95246928, 10.86517624, 2.69599514, 1.1992157, 12.53560929, 6.01399186, 6.98918324, 2.07424898, 8.27911496, 1.19161096, 6.42132021, 15.39544581, 11.76209497, 5.76163775, 7.96816156, 3.86393079, 2.21727595, 5.41353162, 9.97087565, 6.4883817, 7.29417206, 8.36215996, 8.57381082, 10.59258925, 6.60063912, 6.75478662, 10.99354395, 6.84337459, 6.743961, 4.43893825, 2.02393236, 7.49942472, 8.38272489, 3.73057063, 3.38658699, 12.50282638, 11.81208465, 5.31365258, 2.55178917, 6.05830266, 3.57170607, 7.57525833, 1.24590933, 10.69683973, 23.84036164, 4.06859793, 8.97271702, 1.0632245, 5.45718245, 6.91488226, 6.99801332, 6.11676101, 1.31139579, 4.37544523, 11.12865061, 6.19986161, 12.51754843, 2.17629148, 3.08898179, 6.27658521, 6.32988583, 8.26480476, 14.7210567, 15.25509509, 0, 27.9315637, 11.97225193, 1.81827443, 2.69930628, 14.0329118, 13.75789549, 6.93722553, 9.62310494] }, { "type": "double", "attributes": {}, "value": [0.00002483, 0.0002206, 0.00060492, 0.00117068, 0.00191115, 0.00281999, 0.00389118, 0.00511903, 0.00649813, 0.00802335, 0.00968982, 0.01149292, 0.01342822, 0.01549155, 0.01767889, 0.01998643, 0.02241053, 0.0249477, 0.02759463, 0.03034813, 0.03320515, 0.03616278, 0.03921822, 0.0423688, 0.04561194, 0.04894517, 0.05236613, 0.05587253, 0.05946219, 0.06313299, 0.06688291, 0.07070999, 0.07461236, 0.07858819, 0.08263574, 0.08675331, 0.0909393, 0.09519211, 0.09951023, 0.10389219, 0.10833658, 0.11284202, 0.11740718, 0.12203078, 0.12671159, 0.13144838, 0.13624, 0.14108531, 0.14598323, 0.15093268, 0.15593264, 0.1609821, 0.1660801, 0.1712257, 0.17641797, 0.18165603, 0.18693901, 0.19226608, 0.19763642, 0.20304923, 0.20850374, 0.21399921, 0.21953489, 0.22511008, 0.23072409, 0.23637624, 0.24206587, 0.24779234, 0.25355502, 0.25935332, 0.26518663, 0.27105437, 0.27695599, 0.28289092, 0.28885864, 0.29485862, 0.30089035, 0.30695332, 0.31304705, 0.31917106, 0.32532489, 0.33150808, 0.33772018, 0.34396076, 0.3502294, 0.35652568, 0.3628492, 0.36919954, 0.37557634, 0.3819792, 0.38840776, 0.39486164, 0.4013405, 0.40784399, 0.41437175, 0.42092346, 0.42749879, 0.43409741, 0.44071902, 0.44736331, 0.45402996, 0.46071869, 0.4674292, 0.47416122, 0.48091445, 0.48768864, 0.4944835, 0.50129877, 0.50813421, 0.51498954, 0.52186453, 0.52875893, 0.5356725, 0.54260501, 0.54955622, 0.55652591, 0.56351385, 0.57051983, 0.57754363, 0.58458504, 0.59164385, 0.59871987, 0.60581288, 0.6129227, 0.62004913, 0.62719198, 0.63435106, 0.6415262, 0.6487172, 0.6559239, 0.66314611, 0.67038368, 0.67763642, 0.68490417, 0.69218677, 0.69948406, 0.70679588, 0.71412208, 0.7214625, 0.72881699, 0.73618541, 0.7435676, 0.75096343, 0.75837275, 0.76579542, 0.77323131, 0.78068029, 0.78814221, 0.79561695, 0.80310438, 0.81060438, 0.81811681, 0.82564156, 0.8331785, 0.84072751, 0.84828849, 0.8558613, 0.86344583, 0.87104198, 0.87864963, 0.88626868, 0.893899, 0.90154051, 0.90919309, 0.91685663, 0.92453105, 0.93221623, 0.93991208, 0.9476185, 0.95533539, 0.96306266, 0.97080021, 0.97854795, 0.9863058, 0.99407365, 1.00185142, 1.00963903, 1.01743638, 1.0252434, 1.03305999, 1.04088607, 1.04872157, 1.05656639, 1.06442046, 1.07228371, 1.08015605, 1.0880374, 1.09592769, 1.10382685, 1.11173479, 1.11965146, 1.12757677, 1.13551065, 1.14345303, 1.15140385, 1.15936303, 1.16733051, 1.17530621, 1.18329008, 1.19128205, 1.19928204, 1.20729001, 1.21530588, 1.22332959, 1.23136108, 1.2394003, 1.24744717, 1.25550164, 1.26356366, 1.27163315, 1.27971007, 1.28779436, 1.29588596, 1.30398482, 1.31209088, 1.32020408, 1.32832438, 1.33645172, 1.34458605, 1.35272731, 1.36087545, 1.36903043, 1.3771922, 1.38536069, 1.39353587, 1.40171769, 1.40990609, 1.41810104, 1.42630247, 1.43451036, 1.44272464, 1.45094528, 1.45917223, 1.46740544, 1.47564488, 1.48389049, 1.49214223, 1.50040007, 1.50866396, 1.51693385, 1.52520971, 1.5334915, 1.54177917, 1.55007268, 1.558372, 1.56667708, 1.57498789, 1.58330439, 1.59162654, 1.59995429, 1.60828763, 1.61662649, 1.62497086, 1.6333207, 1.64167596, 1.65003661, 1.65840263, 1.66677396, 1.67515058, 1.68353246, 1.69191955, 1.70031183, 1.70870927, 1.71711182, 1.72551946, 1.73393216, 1.74234988, 1.75077259, 1.75920027, 1.76763287, 1.77607036, 1.78451273, 1.79295993, 1.80141195, 1.80986873, 1.81833027, 1.82679653, 1.83526748, 1.84374308, 1.85222333, 1.86070817, 1.8691976, 1.87769157, 1.88619007, 1.89469306, 1.90320052, 1.91171243, 1.92022875, 1.92874946, 1.93727453, 1.94580394, 1.95433766, 1.96287567, 1.97141795, 1.97996446, 1.98851518, 1.99707009, 2.00562917, 2.01419239, 2.02275972, 2.03133115, 2.03990665, 2.04848619, 2.05706976, 2.06565733, 2.07424888, 2.08284438, 2.09144382, 2.10004717, 2.10865441, 2.11726552, 2.12588048, 2.13449927, 2.14312185, 2.15174823, 2.16037836, 2.16901224, 2.17764984, 2.18629115, 2.19493613, 2.20358478, 2.21223707, 2.22089298, 2.2295525, 2.2382156, 2.24688227, 2.25555248, 2.26422622, 2.27290347, 2.2815842, 2.29026841, 2.29895608, 2.30764718, 2.31634169, 2.32503961, 2.33374091, 2.34244557, 2.35115358, 2.35986492, 2.36857957, 2.37729752, 2.38601874, 2.39474323, 2.40347097, 2.41220193, 2.42093611, 2.42967348, 2.43841404, 2.44715775, 2.45590462, 2.46465462, 2.47340774, 2.48216395, 2.49092326, 2.49968563, 2.50845107, 2.51721954, 2.52599104, 2.53476555, 2.54354305, 2.55232354, 2.56110699, 2.5698934, 2.57868275, 2.58747502, 2.5962702, 2.60506827, 2.61386923, 2.62267306, 2.63147974, 2.64028926, 2.64910161, 2.65791678, 2.66673475, 2.6755555, 2.68437903, 2.69320532, 2.70203436, 2.71086613, 2.71970063, 2.72853784, 2.73737775, 2.74622034, 2.7550656, 2.76391353, 2.7727641, 2.78161732, 2.79047315, 2.7993316, 2.80819264, 2.81705628, 2.82592249, 2.83479127, 2.8436626, 2.85253648, 2.86141288, 2.8702918, 2.87917323, 2.88805716, 2.89694358, 2.90583246, 2.91472382, 2.92361762, 2.93251387, 2.94141255, 2.95031364, 2.95921715, 2.96812306, 2.97703136, 2.98594203, 2.99485507, 3.00377048, 3.01268822, 3.02160831, 3.03053072, 3.03945545, 3.04838249, 3.05731183, 3.06624345, 3.07517735, 3.08411352, 3.09305195, 3.10199263, 3.11093555, 3.11988069, 3.12882806, 3.13777764, 3.14672942, 3.1556834, 3.16463956, 3.17359789, 3.18255839, 3.19152104, 3.20048585, 3.20945279, 3.21842186, 3.22739305, 3.23636636, 3.24534177, 3.25431927, 3.26329886, 3.27228053, 3.28126427, 3.29025007, 3.29923793, 3.30822783, 3.31721976, 3.32621372, 3.33520971, 3.3442077, 3.3532077, 3.3622097, 3.37121368, 3.38021965, 3.38922758, 3.39823748, 3.40724934, 3.41626315, 3.42527889, 3.43429658, 3.44331618, 3.45233771, 3.46136115, 3.47038649, 3.47941373, 3.48844285, 3.49747386, 3.50650674, 3.51554149, 3.5245781, 3.53361656, 3.54265687, 3.55169901, 3.56074299, 3.56978879, 3.57883641, 3.58788584, 3.59693707, 3.6059901, 3.61504492, 3.62410152, 3.6331599, 3.64222005, 3.65128197, 3.66034564, 3.66941106, 3.67847822, 3.68754712, 3.69661775, 3.70569011, 3.71476418, 3.72383997, 3.73291746, 3.74199665, 3.75107753, 3.7601601, 3.76924435, 3.77833027, 3.78741786, 3.79650712, 3.80559802, 3.81469058, 3.82378479, 3.83288063, 3.8419781, 3.8510772, 3.86017792, 3.86928025, 3.87838419, 3.88748974, 3.89659688, 3.90570562, 3.91481594, 3.92392784, 3.93304131, 3.94215635, 3.95127296, 3.96039113, 3.96951085, 3.97863211, 3.98775492, 3.99687926, 4.00600513, 4.01513253, 4.02426145, 4.03339189, 4.04252383, 4.05165728, 4.06079223, 4.06992867, 4.0790666, 4.08820602, 4.09734691, 4.10648928, 4.11563311, 4.12477841, 4.13392517, 4.14307338, 4.15222304, 4.16137414, 4.17052668, 4.17968066, 4.18883607, 4.1979929, 4.20715114, 4.21631081, 4.22547188, 4.23463436, 4.24379824, 4.25296352, 4.26213018, 4.27129824, 4.28046767, 4.28963848, 4.29881067, 4.30798422, 4.31715914, 4.32633542, 4.33551305, 4.34469203, 4.35387236, 4.36305403, 4.37223703, 4.38142137, 4.39060704, 4.39979403, 4.40898234, 4.41817197, 4.42736291, 4.43655515, 4.4457487, 4.45494355, 4.46413969, 4.47333712, 4.48253584, 4.49173584, 4.50093712, 4.51013967, 4.51934349, 4.52854858, 4.53775493, 4.54696253, 4.55617139, 4.5653815, 4.57459286, 4.58380546, 4.59301929, 4.60223436, 4.61145066, 4.62066819, 4.62988694, 4.63910691, 4.64832809, 4.65755049, 4.66677409, 4.6759989, 4.6852249, 4.69445211, 4.7036805, 4.71291008, 4.72214085, 4.7313728, 4.74060593, 4.74984024, 4.75907571, 4.76831235, 4.77755016, 4.78678912, 4.79602924, 4.80527052, 4.81451294, 4.82375651, 4.83300122, 4.84224708, 4.85149406, 4.86074218, 4.86999143, 4.87924181, 4.8884933, 4.89774592, 4.90699965, 4.91625449, 4.92551045, 4.9347675, 4.94402566, 4.95328492, 4.96254528, 4.97180673, 4.98106926, 4.99033289, 4.99959759, 5.00886338, 5.01813024, 5.02739817, 5.03666718, 5.04593725, 5.05520839, 5.06448059, 5.07375384, 5.08302815, 5.09230352, 5.10157993, 5.11085738, 5.12013588, 5.12941542, 5.138696, 5.14797761, 5.15726025, 5.16654391, 5.17582861, 5.18511432, 5.19440105, 5.2036888, 5.21297756, 5.22226734, 5.23155812, 5.2408499, 5.25014269, 5.25943647, 5.26873125, 5.27802703, 5.28732379, 5.29662155, 5.30592028, 5.31522, 5.3245207, 5.33382238, 5.34312503, 5.35242865, 5.36173324, 5.37103879, 5.38034531, 5.38965279, 5.39896123, 5.40827062, 5.41758097, 5.42689226, 5.4362045, 5.44551769, 5.45483182, 5.46414689, 5.47346289, 5.48277983, 5.4920977, 5.5014165, 5.51073623, 5.52005688, 5.52937846, 5.53870095, 5.54802436, 5.55734869, 5.56667392, 5.57600007, 5.58532712, 5.59465508, 5.60398394, 5.61331369, 5.62264435, 5.6319759, 5.64130834, 5.65064168, 5.6599759, 5.669311, 5.67864699, 5.68798386, 5.69732161, 5.70666024, 5.71599973, 5.7253401, 5.73468134, 5.74402345, 5.75336642, 5.76271025, 5.77205494, 5.78140049, 5.7907469, 5.80009415, 5.80944226, 5.81879122, 5.82814103, 5.83749168, 5.84684317, 5.8561955, 5.86554867, 5.87490267, 5.88425751, 5.89361318, 5.90296968, 5.91232701, 5.92168516, 5.93104413, 5.94040393, 5.94976454, 5.95912597, 5.96848822, 5.97785127, 5.98721514, 5.99657982, 6.0059453, 6.01531159, 6.02467867, 6.03404656, 6.04341525, 6.05278473, 6.06215501, 6.07152608, 6.08089794, 6.09027059, 6.09964402, 6.10901824, 6.11839324, 6.12776902, 6.13714558, 6.14652291, 6.15590102, 6.1652799, 6.17465955, 6.18403998, 6.19342116, 6.20280312, 6.21218583, 6.22156931, 6.23095355, 6.24033854, 6.24972429, 6.25911079, 6.26849805, 6.27788605, 6.2872748, 6.2966643, 6.30605455, 6.31544553, 6.32483726, 6.33422973, 6.34362293, 6.35301687, 6.36241154, 6.37180695, 6.38120308, 6.39059995, 6.39999754, 6.40939585, 6.41879489, 6.42819465, 6.43759513, 6.44699633, 6.45639824, 6.46580087, 6.47520421, 6.48460826, 6.49401303, 6.5034185, 6.51282467, 6.52223155, 6.53163913, 6.54104742, 6.5504564, 6.55986608, 6.56927646, 6.57868753, 6.5880993, 6.59751175, 6.6069249, 6.61633873, 6.62575325, 6.63516846, 6.64458434, 6.65400091, 6.66341816, 6.67283609, 6.68225469, 6.69167397, 6.70109393, 6.71051455, 6.71993585, 6.72935782, 6.73878045, 6.74820375, 6.75762771, 6.76705234, 6.77647762, 6.78590357, 6.79533018, 6.80475744, 6.81418536, 6.82361393, 6.83304315, 6.84247303, 6.85190355, 6.86133472, 6.87076654, 6.880199, 6.88963211, 6.89906586, 6.90850025, 6.91793527, 6.92737094, 6.93680724, 6.94624418, 6.95568175, 6.96511995, 6.97455878, 6.98399825, 6.99343834, 7.00287905, 7.01232039, 7.02176236, 7.03120494, 7.04064815, 7.05009198, 7.05953642, 7.06898148, 7.07842716, 7.08787345, 7.09732035, 7.10676786, 7.11621599, 7.12566472, 7.13511406, 7.144564, 7.15401455, 7.16346571, 7.17291746, 7.18236981, 7.19182277, 7.20127632, 7.21073047, 7.22018521, 7.22964055, 7.23909648, 7.248553, 7.25801011, 7.26746781, 7.2769261, 7.28638498, 7.29584444, 7.30530448, 7.31476511, 7.32422631, 7.3336881, 7.34315046, 7.35261341, 7.36207693, 7.37154102, 7.38100569, 7.39047093, 7.39993674, 7.40940312, 7.41887007, 7.42833759, 7.43780568, 7.44727433, 7.45674354, 7.46621332, 7.47568366, 7.48515456, 7.49462602, 7.50409803, 7.51357061, 7.52304374, 7.53251742, 7.54199166, 7.55146645, 7.56094179, 7.57041768, 7.57989412, 7.58937111, 7.59884864, 7.60832672, 7.61780534, 7.62728451, 7.63676422, 7.64624447, 7.65572526, 7.66520659, 7.67468845, 7.68417085, 7.69365379, 7.70313726, 7.71262127, 7.7221058, 7.73159087, 7.74107646, 7.75056259, 7.76004924, 7.76953642, 7.77902413, 7.78851236, 7.79800111, 7.80749038, 7.81698018, 7.8264705, 7.83596133, 7.84545268, 7.85494455, 7.86443694, 7.87392984, 7.88342325, 7.89291718, 7.90241162, 7.91190657, 7.92140203, 7.930898, 7.94039447, 7.94989145, 7.95938894, 7.96888693, 7.97838543, 7.98788443, 7.99738393, 8.00688393, 8.01638443, 8.02588542, 8.03538692, 8.04488891, 8.0543914, 8.06389438, 8.07339786, 8.08290182, 8.09240628, 8.10191123, 8.11141667, 8.1209226, 8.13042902, 8.13993592, 8.14944331, 8.15895119, 8.16845954, 8.17796838, 8.18747771, 8.19698751, 8.2064978, 8.21600856, 8.2255198, 8.23503152, 8.24454371, 8.25405638, 8.26356953, 8.27308315, 8.28259724, 8.2921118, 8.30162684, 8.31114234, 8.32065831, 8.33017475, 8.33969166, 8.34920904, 8.35872688, 8.36824518, 8.37776395, 8.38728318, 8.39680287, 8.40632303, 8.41584364, 8.42536471, 8.43488624, 8.44440823, 8.45393068, 8.47297693, 8.48250074, 8.49202501, 8.50154972, 8.51107489, 8.5206005, 8.53012657, 8.53965308, 8.54918005, 8.55870746, 8.56823531, 8.57776362, 8.58729236, 8.59682155, 8.60635119, 8.61588126, 8.62541178, 8.63494273, 8.64447413, 8.65400597, 8.66353824, 8.67307095, 8.6826041, 8.69213768, 8.70167169, 8.71120614, 8.72074103, 8.73027634, 8.73981209, 8.74934827, 8.75888488, 8.76842191, 8.77795938, 8.78749727, 8.79703559, 8.80657434, 8.81611351, 8.8256531, 8.83519312, 8.84473356, 8.85427443, 8.86381571, 8.87335741, 8.88289954, 8.89244208, 8.90198504, 8.91152842, 8.92107222, 8.93061643, 8.94016106, 8.9497061, 8.95925155, 8.96879742, 8.9783437, 8.99743749, 9.006985, 9.01653292, 9.02608125, 9.03562999, 9.04517913, 9.05472868, 9.06427864, 9.073829, 9.08337976, 9.09293093, 9.1024825, 9.11203447, 9.12158684, 9.13113961, 9.14069278, 9.15024636, 9.15980033, 9.16935469, 9.17890946, 9.18846462, 9.19802017, 9.20757612, 9.21713247, 9.2266892, 9.23624633, 9.24580386, 9.25536177, 9.26492007, 9.27447877, 9.28403785, 9.29359732, 9.30315718, 9.31271743, 9.32227806, 9.33183908, 9.34140048, 9.35096227, 9.36052444, 9.370087, 9.37964993, 9.38921325, 9.39877695, 9.40834103, 9.41790549, 9.42747033, 9.43703555, 9.44660114, 9.45616712, 9.46573346, 9.47530019, 9.48486729, 9.49443476, 9.50400261, 9.51357083, 9.52313942, 9.53270839, 9.54227773, 9.55184743, 9.56141751, 9.57098796, 9.58055877, 9.59012996, 9.59970151, 9.60927343, 9.61884571, 9.62841836, 9.63799137, 9.64756475, 9.6571385, 9.6667126, 9.67628707, 9.6858619, 9.69543709, 9.70501264, 9.71458855, 9.72416482, 9.73374145, 9.74331844, 9.75289579, 9.76247349, 9.77205155, 9.78162996, 9.79120873, 9.80078786, 9.81036734, 9.81994717, 9.82952735, 9.83910789, 9.84868878, 9.85827002, 9.86785161, 9.87743355, 9.88701584, 9.89659848, 9.90618146, 9.91576479, 9.92534848, 9.9349325, 9.94451687, 9.95410159, 9.96368665, 9.97327206, 9.98285781, 9.9924439, 10.00203034, 10.02120423, 10.03079169, 10.04037949, 10.04996763, 10.05955611, 10.06914492, 10.07873408, 10.08832357, 10.09791339, 10.10750356, 10.11709406, 10.12668489, 10.13627606, 10.14586756, 10.1554594, 10.16505157, 10.17464407, 10.18423691, 10.19383007, 10.20342357, 10.21301739, 10.22261155, 10.23220603, 10.24180085, 10.25139599, 10.26099146, 10.27058726, 10.28018338, 10.28977983, 10.2993766, 10.3089737, 10.31857112, 10.32816887, 10.33776694, 10.34736534, 10.35696405, 10.36656309, 10.37616245, 10.38576213, 10.39536213, 10.40496245, 10.41456309, 10.42416404, 10.43376532, 10.44336691, 10.45296882, 10.46257105, 10.4721736, 10.48177645, 10.49137963, 10.50098312, 10.51058692, 10.52019104, 10.52979547, 10.53940021, 10.54900527, 10.55861063, 10.56821631, 10.5778223, 10.5874286, 10.59703521, 10.60664213, 10.61624936, 10.62585689, 10.63546473, 10.64507288, 10.65468134, 10.66429011, 10.67389917, 10.68350855, 10.69311823, 10.70272821, 10.7123385, 10.72194909, 10.73155999, 10.74117119, 10.75078269, 10.76039449, 10.77000659, 10.77961899, 10.7892317, 10.7988447, 10.808458, 10.8180716, 10.8276855, 10.8372997, 10.8469142, 10.85652899, 10.86614408, 10.87575946, 10.88537514, 10.89499112, 10.90460739, 10.91422395, 10.92384081, 10.93345796, 10.9430754, 10.95269314, 10.96231117, 10.97192949, 10.99116701, 11.0007862, 11.02002545, 11.02964551, 11.03926586, 11.0488865, 11.05850742, 11.06812864, 11.07775014, 11.08737192, 11.09699399, 11.10661635, 11.11623899, 11.12586192, 11.13548513, 11.14510862, 11.1547324, 11.16435646, 11.1739808, 11.18360542, 11.19323033, 11.20285552, 11.21248099, 11.22210673, 11.23173276, 11.24135907, 11.25098566, 11.26061252, 11.27023967, 11.27986709, 11.28949479, 11.29912276, 11.30875102, 11.31837955, 11.32800835, 11.33763743, 11.34726679, 11.35689642, 11.36652632, 11.3761565, 11.38578695, 11.39541767, 11.40504867, 11.41467994, 11.42431148, 11.43394329, 11.44357537, 11.45320772, 11.46284035, 11.47247324, 11.4821064, 11.49173983, 11.50137353, 11.5110075, 11.52064174, 11.53027624, 11.53991101, 11.54954604, 11.55918135, 11.56881692, 11.57845275, 11.58808885, 11.59772521, 11.60736184, 11.61699873, 11.62663589, 11.63627331, 11.64591099, 11.65554893, 11.66518714, 11.6748256, 11.68446433, 11.69410332, 11.70374257, 11.71338208, 11.72302185, 11.73266188, 11.74230217, 11.75194271, 11.76158352, 11.77122458, 11.7808659, 11.79050748, 11.80014931, 11.8097914, 11.81943375, 11.82907635, 11.83871921, 11.84836232, 11.85800568, 11.8676493, 11.87729318, 11.88693731, 11.89658169, 11.90622632, 11.91587121, 11.92551635, 11.93516174, 11.94480738, 11.95445327, 11.96409941, 11.97374581, 11.98339245, 11.99303934, 12.00268648, 12.01233388, 12.02198151, 12.0316294, 12.04127754, 12.05092592, 12.06057455, 12.07022343, 12.07987255, 12.08952192, 12.09917153, 12.10882139, 12.1184715, 12.12812185, 12.13777244, 12.14742328, 12.15707436, 12.16672569, 12.17637725, 12.18602906, 12.19568112, 12.20533341, 12.21498595, 12.22463873, 12.243945, 12.2535985, 12.26325224, 12.27290622, 12.28256044, 12.2922149, 12.30186959, 12.31152453, 12.3211797, 12.33083511, 12.34049076, 12.35014664, 12.35980276, 12.36945912, 12.37911571, 12.38877254, 12.39842961, 12.40808691, 12.41774444, 12.42740221, 12.43706021, 12.44671845, 12.45637692, 12.46603562, 12.47569456, 12.48535373, 12.49501313, 12.50467276, 12.51433262, 12.52399272, 12.53365304, 12.5433136, 12.55297439, 12.56263541, 12.57229665, 12.58195813, 12.59161983, 12.60128177, 12.61094393, 12.62060632, 12.63026894, 12.63993178, 12.64959486, 12.65925816, 12.66892168, 12.67858543, 12.68824941, 12.69791362, 12.70757805, 12.7172427, 12.72690758, 12.73657268, 12.74623801, 12.75590356, 12.76556934, 12.77523534, 12.78490156, 12.794568, 12.80423467, 12.81390156, 12.82356867, 12.833236, 12.84290355, 12.85257133, 12.86223932, 12.87190754, 12.88157597, 12.89124463, 12.9009135, 12.9105826, 12.92025191, 12.92992144, 12.93959119, 12.94926115, 12.95893134, 12.96860174, 12.97827236, 12.9879432, 12.99761425, 13.00728552, 13.016957, 13.0266287, 13.03630062, 13.04597275, 13.0556451, 13.06531766, 13.07499043, 13.08466342, 13.09433662, 13.10401004, 13.11368367, 13.12335751, 13.13303157, 13.14270583, 13.15238031, 13.162055, 13.17172991, 13.18140502, 13.19108034, 13.20075588, 13.21043162, 13.22010758, 13.22978375, 13.23946012, 13.24913671, 13.2588135, 13.2684905, 13.27816771, 13.28784513, 13.29752276, 13.3072006, 13.31687864, 13.33623534, 13.34591401, 13.35559288, 13.36527195, 13.38463072, 13.39431041, 13.40399031, 13.41367041, 13.42335072, 13.43303123, 13.44271195, 13.45239287, 13.46207399, 13.47175531, 13.48143684, 13.50080051, 13.52016498, 13.52984752, 13.53953026, 13.54921321, 13.55889635, 13.56857969, 13.57826324, 13.58794698, 13.60731507, 13.61699941, 13.62668396, 13.6363687, 13.64605364, 13.65573878, 13.66542411, 13.67510965, 13.68479538, 13.69448131, 13.70416744, 13.71385376, 13.72354028, 13.733227, 13.74291391, 13.75260102, 13.76228832, 13.78166352, 13.79135141, 13.80103949, 13.82041625, 13.83010491, 13.83979377, 13.84948283, 13.85917208, 13.87855115, 13.88824098, 13.897931, 13.90762121, 13.91731161, 13.9270022, 13.93669299, 13.94638397, 13.95607513, 13.96576649, 13.97545804, 13.98514978, 13.99484171, 14.00453383, 14.01422613, 14.02391863, 14.03361132, 14.04330419, 14.05299725, 14.06269051, 14.07238394, 14.08207757, 14.09177139, 14.10146539, 14.11115958, 14.12085396, 14.13054852, 14.14024327, 14.1499382, 14.15963333, 14.16932863, 14.17902413, 14.18871981, 14.19841567, 14.20811172, 14.21780795, 14.22750437, 14.23720097, 14.24689776, 14.25659473, 14.26629188, 14.27598922, 14.28568674, 14.29538444, 14.30508232, 14.31478039, 14.32447864, 14.33417707, 14.34387569, 14.35357448, 14.36327346, 14.37297262, 14.38267195, 14.39237147, 14.40207117, 14.41177105, 14.42147111, 14.43117135, 14.44087177, 14.45057237, 14.46027315, 14.46997411, 14.47967524, 14.48937656, 14.49907805, 14.50877972, 14.51848157, 14.52818359, 14.5378858, 14.54758818, 14.55729074, 14.56699347, 14.57669638, 14.58639947, 14.59610274, 14.60580618, 14.61550979, 14.62521358, 14.63491755, 14.64462169, 14.65432601, 14.6640305, 14.67373517, 14.68344001, 14.69314502, 14.70285021, 14.71255557, 14.72226111, 14.73196682, 14.7416727, 14.75137876, 14.76108498, 14.77079138, 14.78049796, 14.7902047, 14.79991162, 14.80961871, 14.81932597, 14.8290334, 14.838741, 14.84844877, 14.85815672, 14.86786483, 14.87757312, 14.88728157, 14.8969902, 14.90669899, 14.91640795, 14.92611709, 14.93582639, 14.94553586, 14.9552455, 14.96495531, 14.97466529, 14.98437543, 14.99408574, 15.00379622, 15.01350687, 15.02321769, 15.03292867, 15.04263982, 15.05235114, 15.06206262, 15.07177427, 15.08148609, 15.09119807, 15.10091021, 15.11062253, 15.12033501, 15.13004765, 15.13976046, 15.14947343, 15.15918657, 15.16889987, 15.17861334, 15.18832697, 15.19804077, 15.20775472, 15.21746885, 15.22718313, 15.23689758, 15.24661219, 15.25632697, 15.26604191, 15.275757, 15.28547227, 15.29518769, 15.30490328, 15.31461902, 15.32433493, 15.334051, 15.34376724, 15.35348363, 15.36320018, 15.3729169, 15.38263377, 15.3923508, 15.402068, 15.41178535, 15.42150287, 15.43122054, 15.44093837, 15.45065637, 15.46037452, 15.47009283, 15.47981129, 15.48952992, 15.49924871, 15.50896765, 15.51868675, 15.52840601, 15.53812543, 15.547845, 15.55756473, 15.56728462, 15.57700466, 15.58672487, 15.59644522, 15.60616574, 15.61588641, 15.62560723, 15.63532822, 15.64504935, 15.65477065, 15.6644921, 15.6742137, 15.68393546, 15.69365737, 15.70337944, 15.71310166, 15.72282404, 15.73254657, 15.74226925, 15.75199209, 15.76171508, 15.77143823, 15.78116153, 15.79088498, 15.80060858, 15.81033234, 15.82005625, 15.82978031, 15.83950452, 15.84922889, 15.86867808, 15.88812787, 15.89785299, 15.90757827, 15.91730369, 15.92702927, 15.936755, 15.94648087, 15.9562069, 15.96593308, 15.97565941, 15.98538588, 15.99511251, 16.00483929, 16.01456621, 16.02429329, 16.03402051, 16.04374788, 16.0534754, 16.06320307, 16.07293089, 16.08265885, 16.09238697, 16.10211523, 16.11184363, 16.12157219, 16.14102974, 16.15075874, 16.16048789, 16.17021718, 16.17994661, 16.1896762, 16.19940593, 16.2091358, 16.21886582, 16.22859599, 16.2383263, 16.25778737, 16.26751811, 16.27724901, 16.28698005, 16.29671123, 16.30644256, 16.31617403, 16.32590564, 16.3356374, 16.34536931, 16.35510135, 16.36483354, 16.37456588, 16.38429836, 16.39403098, 16.40376374, 16.41349665, 16.42322969, 16.43296288, 16.44269622, 16.45242969, 16.46216331, 16.47189707, 16.48163097, 16.49136501, 16.5010992, 16.51083352, 16.52056799, 16.5303026, 16.54003734, 16.54977223, 16.55950726, 16.56924243, 16.57897774, 16.58871319, 16.59844878, 16.60818451, 16.61792038, 16.62765639, 16.63739254, 16.64712882, 16.65686525, 16.66660181, 16.67633852, 16.68607536, 16.69581234, 16.71528671, 16.72502411, 16.73476164, 16.74449931, 16.76397507, 16.77371315, 16.78345137, 16.79318973, 16.80292822, 16.81266685, 16.82240562, 16.83214452, 16.84188356, 16.85162274, 16.86136205, 16.8711015, 16.88084108, 16.8905808, 16.90032065, 16.91006064, 16.91980077, 16.92954103, 16.93928142, 16.94902195, 16.95876261, 16.96850341, 16.97824434, 16.98798541, 16.99772661, 17.00746795, 17.01720942, 17.02695102, 17.03669275, 17.04643462, 17.05617662, 17.06591876, 17.07566103, 17.08540343, 17.09514596, 17.10488863, 17.11463143, 17.12437436, 17.13411742, 17.14386061, 17.15360394, 17.1633474, 17.17309099, 17.18283471, 17.19257856, 17.21206666, 17.22181091, 17.23155528, 17.24129979, 17.25104443, 17.26078919, 17.28027912, 17.29002428, 17.29976957, 17.30951498, 17.31926053, 17.32900621, 17.33875201, 17.34849795, 17.35824401, 17.3679902, 17.37773653, 17.38748298, 17.39722956, 17.40697626, 17.4167231, 17.42647006, 17.43621715, 17.44596437, 17.45571172, 17.46545919, 17.4752068, 17.48495453, 17.49470238, 17.50445037, 17.51419848, 17.52394672, 17.53369508, 17.54344357, 17.55319219, 17.56294093, 17.5726898, 17.5824388, 17.59218792, 17.60193717, 17.61168654, 17.62143604, 17.63118566, 17.64093541, 17.65068529, 17.66043529, 17.67018541, 17.67993566, 17.68968604, 17.69943654, 17.70918716, 17.71893791, 17.72868878, 17.73843978, 17.7481909, 17.75794214, 17.76769351, 17.777445, 17.78719661, 17.79694835, 17.80670021, 17.8164522, 17.8262043, 17.83595653, 17.84570889, 17.85546136, 17.86521396, 17.87496668, 17.88471952, 17.89447248, 17.90422557, 17.91397878, 17.92373211, 17.93348556, 17.94323913, 17.95299283, 17.96274665, 17.97250058, 17.98225464, 17.99200882, 18.00176312, 18.01151754, 18.02127208, 18.03102674, 18.04078152, 18.06029145, 18.07004659, 18.07980185, 18.08955723, 18.09931273, 18.10906835, 18.11882409, 18.12857995, 18.13833593] }, { "type": "character", "attributes": {}, "value": ["extrapolation", "extrapolation", "extrapolation", "extrapolation", "extrapolation", "extrapolation", "extrapolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation"] } ] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["x", "y.t", "x.t", "method"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "na.action": { "type": "integer", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["75", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", "144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159", "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", "176", "177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", "191", "192", "193", "194", "195", "196", "197", "198", "199", "200", "201", "202", "203", "204", "205", "206", "207", "208", "209", "210", "211", "212", "213", "214", "215", "216", "217", "218", "219", "220", "221", "222", "223", "224", "225", "226", "227", "228", "229", "230", "231", "232", "233", "234", "235", "236", "237", "238", "239", "240", "241", "242", "243", "244", "245", "246", "247", "248", "249", "250", "251", "252", "253", "254", "255", "256", "257", "258", "259", "260", "261", "262", "263", "264", "265", "266", "267", "268", "269", "270", "271", "272", "273", "274", "275", "276", "277", "278", "279", "280", "281", "282", "283", "284", "285", "286", "287", "288", "289", "290", "291", "292", "293", "294", "295", "296", "297", "298", "299", "300", "301", "302", "303", "304", "305", "306", "307", "308", "309", "310", "311", "312", "313", "314", "315", "316", "317", "318", "319", "320", "321", "322", "323", "324", "325", "326", "327", "328", "329", "330", "331", "332", "333", "334", "335", "336", "337", "338", "339", "340", "341", "342", "343", "344", "345", "346", "347", "348", "349", "350", "351", "352", "353", "354", "355", "356", "357", "358", "359", "360", "361", "362", "363", "364", "365", "366", "367", "368", "369", "370", "371", "372", "373", "374", "375", "376", "377", "378", "379", "380", "381", "382", "383", "384", "385", "386", "387", "388", "389", "390", "391", "392", "393", "394", "395", "396", "397", "398", "399", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "418", "419", "420", "421", "422", "423", "424", "425", "426", "427", "428", "429", "430", "431", "432", "433", "434", "435", "436", "437", "438", "439", "440", "441", "442", "443", "444", "445", "446", "447", "448", "449", "450", "451", "452", "453", "454", "455", "456", "457", "458", "459", "460", "461", "462", "463", "464", "465", "466", "467", "468", "469", "470", "471", "472", "473", "474", "475", "476", "477", "478", "479", "480", "481", "482", "483", "484", "485", "486", "487", "488", "489", "490", "491", "492", "493", "494", "495", "496", "497", "498", "499", "500", "501", "502", "503", "504", "505", "506", "507", "508", "509", "510", "511", "512", "513", "514", "515", "516", "517", "518", "519", "520", "521", "522", "523", "524", "525", "526", "527", "528", "529", "530", "531", "532", "533", "534", "535", "536", "537", "538", "539", "540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "550", "551", "552", "553", "554", "555", "556", "557", "558", "559", "560", "561", "562", "563", "564", "565", "566", "567", "568", "569", "570", "571", "572", "573", "574", "575", "576", "577", "578", "579", "580", "581", "582", "583", "584", "585", "586", "587", "588", "589", "590", "591", "592", "593", "594", "595", "596", "597", "598", "599", "600", "601", "602", "603", "604", "605", "606", "607", "608", "609", "610", "611", "612", "613", "614", "615", "616", "617", "618", "619", "620", "621", "622", "623", "624", "625", "626", "627", "628", "629", "630", "631", "632", "633", "634", "635", "636", "637", "638", "639", "640", "641", "642", "643", "644", "645", "646", "647", "648", "649", "650", "651", "652", "653", "654", "655", "656", "657", "658", "659", "660", "661", "662", "663", "664", "665", "666", "667", "668", "669", "670", "671", "672", "673", "674", "675", "676", "677", "678", "679", "680", "681", "682", "683", "684", "685", "686", "687", "688", "689", "690", "691", "692", "693", "694", "695", "696", "697", "698", "699", "700", "701", "702", "703", "704", "705", "706", "707", "708", "709", "710", "711", "712", "713", "714", "715", "716", "717", "718", "719", "720", "721", "722", "723", "724", "725", "726", "727", "728", "729", "730", "731", "732", "733", "734", "735", "736", "737", "738", "739", "740", "741", "742", "743", "744", "745", "746", "747", "748", "749", "750", "751", "752", "753", "754", "755", "756", "757", "758", "759", "760", "761", "762", "763", "764", "765", "766", "767", "768", "769", "770", "771", "772", "773", "774", "775", "776", "777", "778", "779", "780", "781", "782", "783", "784", "785", "786", "787", "788", "789", "790", "791", "792", "793", "794", "795", "796", "797", "798", "799", "800", "801", "802", "803", "804", "805", "806", "807", "808", "809", "810", "811", "812", "813", "814", "815", "816", "817", "818", "819", "820", "821", "822", "823", "824", "825", "826", "827", "828", "829", "830", "831", "832", "833", "834", "835", "836", "837", "838", "839", "840", "841", "842", "843", "844", "845", "846", "847", "848", "849", "850", "851", "852", "853", "854", "855", "856", "857", "858", "859", "860", "861", "862", "863", "864", "865", "866", "867", "868", "869", "870", "871", "872", "873", "874", "875", "876", "877", "878", "879", "880", "881", "882", "883", "884", "885", "886", "887", "888", "889", "890", "891", "892", "893", "894", "895", "896", "897", "898", "899", "900", "901", "902", "903", "904", "905", "906", "907", "908", "909", "910", "911", "912", "913", "914", "915", "916", "917", "918", "919", "920", "921", "922", "923", "924", "925", "926", "927", "928", "929", "930", "931", "932", "933", "934", "935", "936", "937", "938", "939", "940", "941", "942", "943", "944", "945", "946", "947", "948", "949", "950", "951", "952", "953", "954", "955", "956", "957", "958", "959", "960", "961", "962", "963", "964", "965", "966", "967", "968", "969", "970", "971", "972", "973", "974", "975", "976", "977", "978", "979", "980", "981", "982", "983", "984", "985", "986", "987", "988", "989", "990", "991", "992", "993", "994", "995", "996", "997", "998", "999", "1000", "1001", "1002", "1003", "1004", "1005", "1006", "1007", "1008", "1009", "1010", "1011", "1012", "1013", "1014", "1015", "1016", "1017", "1018", "1019", "1020", "1021", "1022", "1023", "1024", "1025", "1026", "1027", "1028", "1029", "1030", "1031", "1032", "1033", "1034", "1035", "1036", "1037", "1038", "1039", "1040", "1041", "1042", "1043", "1044", "1045", "1046", "1047", "1048", "1049", "1050", "1051", "1052", "1053", "1054", "1055", "1056", "1057", "1058", "1059", "1060", "1061", "1062", "1063", "1064", "1065", "1066", "1067", "1068", "1069", "1070", "1071", "1072", "1073", "1074", "1075", "1076", "1077", "1078", "1079", "1080", "1081", "1082", "1083", "1084", "1085", "1086", "1087", "1088", "1089", "1090", "1091", "1092", "1093", "1094", "1095", "1096", "1097", "1098", "1099", "1100", "1101", "1102", "1103", "1104", "1105", "1106", "1107", "1108", "1109", "1110", "1111", "1112", "1113", "1114", "1115", "1116", "1117", "1118", "1119", "1120", "1121", "1122", "1123", "1124", "1125", "1126", "1127", "1128", "1129", "1130", "1131", "1132", "1133", "1134", "1135", "1136", "1137", "1138", "1139", "1140", "1141", "1142", "1143", "1144", "1145", "1146", "1147", "1148", "1149", "1150", "1151", "1152", "1153", "1154", "1155", "1156", "1157", "1158", "1159", "1160", "1161", "1162", "1163", "1164", "1165", "1166", "1167", "1168", "1169", "1170", "1171", "1172", "1173", "1174", "1175", "1176", "1177", "1178", "1179", "1180", "1181", "1182", "1183", "1184", "1185", "1186", "1187", "1188", "1189", "1190", "1191", "1192", "1193", "1194", "1195", "1196", "1197", "1198", "1199", "1200", "1201", "1202", "1203", "1204", "1205", "1206", "1207", "1208", "1209", "1210", "1211", "1212", "1213", "1214", "1215", "1216", "1217", "1218", "1219", "1220", "1221", "1222", "1223", "1224", "1225", "1226", "1227", "1228", "1229", "1230", "1231", "1232", "1233", "1234", "1235", "1236", "1237", "1238", "1239", "1240", "1241", "1242", "1243", "1244", "1245", "1246", "1247", "1248", "1249", "1250", "1251", "1252", "1253", "1254", "1255", "1256", "1257", "1258", "1259", "1260", "1261", "1262", "1263", "1264", "1265", "1266", "1267", "1268", "1269", "1270", "1271", "1272", "1273", "1274", "1275", "1276", "1277", "1278", "1279", "1280", "1281", "1282", "1283", "1284", "1285", "1286", "1287", "1288", "1289", "1290", "1291", "1292", "1293", "1294", "1295", "1296", "1297", "1298", "1299", "1300", "1301", "1302", "1303", "1304", "1305", "1306", "1307", "1308", "1309", "1310", "1311", "1312", "1313", "1314", "1315", "1316", "1317", "1318", "1319", "1320", "1321", "1322", "1323", "1324", "1325", "1326", "1327", "1328", "1329", "1330", "1331", "1332", "1333", "1334", "1335", "1336", "1337", "1338", "1339", "1340", "1341", "1342", "1343", "1344", "1345", "1346", "1347", "1348", "1349", "1350", "1351", "1352", "1353", "1354", "1355", "1356", "1357", "1358", "1359", "1360", "1361", "1362", "1363", "1364", "1365", "1366", "1367", "1368", "1369", "1370", "1371", "1372", "1373", "1374", "1375", "1376", "1377", "1378", "1379", "1380", "1381", "1382", "1383", "1384", "1385", "1386", "1387", "1388", "1389", "1390", "1391", "1392", "1393", "1394", "1395", "1396", "1397", "1398", "1399", "1400", "1401", "1402", "1403", "1404", "1405", "1406", "1407", "1408", "1409", "1410", "1411", "1412", "1413", "1414", "1415", "1416", "1417", "1418", "1419", "1420", "1421", "1422", "1423", "1424", "1425", "1426", "1427", "1428", "1429", "1430", "1431", "1432", "1433", "1434", "1435", "1436", "1437", "1438", "1439", "1440", "1441", "1442", "1443", "1444", "1445", "1446", "1447", "1448", "1449", "1450", "1451", "1452", "1453", "1454", "1455", "1456", "1457", "1458", "1459", "1460", "1461", "1462", "1463", "1464", "1465", "1466", "1467", "1468", "1469", "1470", "1471", "1472", "1473", "1474", "1475", "1476", "1477", "1478", "1479", "1480", "1481", "1482", "1483", "1484", "1485", "1486", "1487", "1488", "1489", "1490", "1491", "1492", "1493", "1494", "1495", "1496", "1497", "1498", "1499", "1500", "1501", "1502", "1503", "1504", "1505", "1506", "1507", "1508", "1509", "1510", "1511", "1512", "1513", "1514", "1515", "1516", "1517", "1518", "1519", "1520", "1521", "1522", "1523", "1524", "1525", "1526", "1527", "1528", "1529", "1530", "1531", "1532", "1533", "1534", "1535", "1536", "1537", "1538", "1539", "1540", "1541", "1542", "1543", "1544", "1545", "1546", "1547", "1548", "1549", "1550", "1551", "1552", "1553", "1554", "1555", "1556", "1557", "1558", "1559", "1560", "1561", "1562", "1563", "1564", "1565", "1566", "1567", "1568", "1569", "1570", "1571", "1572", "1573", "1574", "1575", "1576", "1577", "1578", "1579", "1580", "1581", "1582", "1583", "1584", "1585", "1586", "1587", "1588", "1589", "1590", "1591", "1592", "1593", "1594", "1595", "1596", "1597", "1598", "1599", "1600", "1601", "1602", "1603", "1604", "1605", "1606", "1607", "1608", "1609", "1610", "1611", "1612", "1613", "1614", "1615", "1616", "1617", "1618", "1619", "1620", "1621", "1622", "1623", "1624", "1625", "1626", "1627", "1628", "1629", "1630", "1631", "1632", "1633", "1634", "1635", "1636", "1637", "1638", "1639", "1640", "1641", "1642", "1643", "1644", "1645", "1646", "1647", "1648", "1649", "1650", "1651", "1652", "1653", "1654", "1655", "1656", "1657", "1658", "1659", "1660", "1661", "1662", "1663", "1664", "1665", "1666", "1667", "1668", "1669", "1670", "1671", "1672", "1673", "1674", "1675", "1676", "1677", "1678", "1679", "1680", "1681", "1682", "1683", "1684", "1685", "1686", "1687", "1688", "1689", "1690", "1691", "1692", "1693", "1694", "1695", "1696", "1697", "1698", "1699", "1700", "1701", "1702", "1703", "1704", "1705", "1706", "1707", "1708", "1709", "1710", "1711", "1712", "1713", "1714", "1715", "1716", "1717", "1718", "1719", "1720", "1721", "1722", "1723", "1724", "1725", "1726", "1727", "1728", "1729", "1730", "1731", "1732", "1733", "1734", "1735", "1736", "1737", "1738", "1739", "1740", "1741", "1742", "1743", "1744", "1745", "1746", "1747", "1748", "1749", "1750", "1751", "1752", "1753", "1754", "1755", "1756", "1757", "1758", "1759", "1760", "1761", "1762", "1763", "1764", "1765", "1766", "1767", "1768", "1769", "1770", "1771", "1772", "1773", "1774", "1775", "1776", "1777", "1778", "1779", "1780", "1781", "1782", "1783", "1784", "1785", "1786", "1787", "1788", "1789", "1790", "1791", "1792", "1793", "1794", "1795", "1796", "1797", "1798", "1799", "1800", "1801", "1802", "1803", "1804", "1805", "1806", "1807", "1808", "1809", "1810", "1811", "1812", "1813", "1814", "1815", "1816", "1817", "1818", "1819", "1820", "1821", "1822", "1823", "1824", "1825", "1826", "1827", "1828", "1829", "1830", "1831", "1832", "1833", "1834", "1835", "1836", "1837", "1838", "1839", "1840", "1841", "1842", "1843", "1844", "1845", "1846", "1847", "1848", "1849", "1850", "1851", "1852", "1853", "1854", "1855", "1856", "1857", "1858", "1859", "1860", "1861", "1862", "1863", "1864", "1865", "1866", "1867", "1868", "1869", "1870", "1871", "1872", "1873", "1874", "1875", "1876", "1877", "1878", "1879", "1880", "1881", "1882", "1883", "1884", "1885", "1886", "1887", "1888", "1889", "1890", "1891", "1892", "1893", "1894", "1895", "1896", "1897", "1898", "1899", "1900", "1901", "1902", "1903", "1904", "1905", "1906", "1907", "1908", "1909", "1910", "1911", "1912", "1913", "1914", "1915", "1916", "1917", "1918", "1919", "1920", "1921", "1922", "1923", "1924", "1925", "1926", "1927", "1928", "1929", "1930", "1931", "1932", "1933", "1934", "1935", "1936", "1937", "1938", "1939", "1940", "1941", "1942", "1943", "1944", "1945", "1946", "1947", "1948", "1949", "1950", "1951", "1952", "1953", "1954", "1955", "1956", "1957", "1958", "1959", "1960", "1961", "1962", "1963", "1964", "1965", "1966", "1967", "1968", "1969", "1970", "1971", "1972", "1973", "1974", "1975", "1976", "1977", "1978", "1979", "1980", "1981", "1982", "1983", "1984", "1985", "1986", "1987", "1988", "1989", "1990", "1991", "1992", "1993", "1994", "1995", "1996", "1997", "1998", "1999", "2000"] }, "class": { "type": "character", "attributes": {}, "value": ["exclude"] } }, "value": [75, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.005, 0.015, 0.025, 0.035, 0.045, 0.055, 0.065, 0.075, 0.085, 0.095, 0.105, 0.115, 0.125, 0.135, 0.145, 0.155, 0.165, 0.175, 0.185, 0.195, 0.205, 0.215, 0.225, 0.235, 0.245, 0.255, 0.265, 0.275, 0.285, 0.295, 0.305, 0.315, 0.325, 0.335, 0.345, 0.355, 0.365, 0.375, 0.385, 0.395, 0.405, 0.415, 0.425, 0.435, 0.445, 0.455, 0.465, 0.475, 0.485, 0.495, 0.505, 0.515, 0.525, 0.535, 0.545, 0.555, 0.565, 0.575, 0.585, 0.595, 0.605, 0.615, 0.625, 0.635, 0.645, 0.655, 0.665, 0.675, 0.685, 0.695, 0.705, 0.715, 0.725, 0.735, 0.755, 0.765, 0.775, 0.785, 0.795, 0.805, 0.815, 0.825, 0.835] }, { "type": "double", "attributes": {}, "value": [19.44046917, 174.46212887, 479.39594032, 917.24578096, 1452.9324428, 2030.70967675, 2577.37961852, 3012.49557775, 3310.65469067, 3594.90356105, 3950.30973251, 4312.6970756, 4577.70482255, 4990.20268091, 5808.43783112, 6247.68203197, 6585.11658139, 6763.28011623, 7500.1533634, 7201.70854243, 8088.98557727, 7531.6278516, 7981.266323, 7749.49144122, 7331.05962795, 6890.97843573, 6568.39886346, 6689.66359296, 5802.29561859, 5823.48886447, 5240.92031326, 3866.48379728, 4116.99297659, 3965.52969536, 3183.65624619, 2721.37915237, 2616.80019535, 2030.53593534, 1620.77656033, 1768.26141209, 1141.14468771, 1149.09236406, 905.56679513, 988.65633218, 612.27734299, 712.30151798, 282.65483969, 332.41112914, 498.34893442, 376.97707529, 320.2149585, 221.71945044, 318.24232903, 179.70128941, 380.02644063, 575.0452262, 425.37649212, 582.73431835, 266.17783954, 366.04848877, 338.55764409, 378.225, 241.90555903, 320.34662957, 1075.65689241, 142.88624109, 343.33591477, 333.91837438, 151.17619193, 425.37207038, 315.64163149, 223.37809137, 178.21675463, 476.20342053, 123.35445723, 198.38126797, 699.44135436, 502.85006552, 0, 388.815, 870.7593158, 511.29027871, 145.78055986] }, { "type": "double", "attributes": {}, "value": [4.16666667e-06, 0.0001125, 0.00052083, 0.00142917, 0.0030375, 0.00554583, 0.00915417, 0.0140625, 0.02047083, 0.02857917, 0.0385875, 0.05069583, 0.06510417, 0.0820125, 0.10162083, 0.12412917, 0.1497375, 0.17864583, 0.21105417, 0.2471625, 0.28717083, 0.33127917, 0.3796875, 0.43259583, 0.49020417, 0.5527125, 0.62032083, 0.69322917, 0.7716375, 0.85574583, 0.94575417, 1.0418625, 1.14427083, 1.25317917, 1.3687875, 1.49129583, 1.62090417, 1.7578125, 1.90222083, 2.05432917, 2.2143375, 2.38244583, 2.55885417, 2.7437625, 2.93737083, 3.13987917, 3.3514875, 3.57239583, 3.80280417, 4.0429125, 4.29292083, 4.55302917, 4.8234375, 5.10434583, 5.39595417, 5.6984625, 6.01207083, 6.33697917, 6.6733875, 7.02149583, 7.38150417, 7.7536125, 8.13802083, 8.53492917, 8.9445375, 9.36704583, 9.80265417, 10.2515625, 10.71397083, 11.19007917, 11.6800875, 12.18419583, 12.70260417, 13.2355125, 14.34562917, 14.9232375, 15.51614583, 16.12455417, 16.7486625, 17.38867083, 18.04477917, 18.7171875, 19.40609583] }, { "type": "character", "attributes": {}, "value": ["extrapolation", "extrapolation", "extrapolation", "extrapolation", "extrapolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation", "interpolation"] } ] } Luminescence/tests/testthat/_snaps/merge_RLum.Data.Spectrum.md0000644000176200001440000722777114762554470024247 0ustar liggesusers# snapshot tests { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (Spectrometer)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1024, 24] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["296.5", "297.055", "297.61", "298.164", "298.719", "299.273", "299.827", "300.382", "300.936", "301.489", "302.043", "302.597", "303.15", "303.703", "304.256", "304.809", "305.362", "305.915", "306.467", "307.02", "307.572", "308.124", "308.676", "309.228", "309.78", "310.332", "310.883", "311.435", "311.986", "312.537", "313.088", "313.639", "314.189", "314.74", "315.29", "315.841", "316.391", "316.941", "317.491", "318.04", "318.59", "319.139", "319.689", "320.238", "320.787", "321.336", "321.885", "322.433", "322.982", "323.53", "324.079", "324.627", "325.175", "325.723", "326.271", "326.818", "327.366", "327.913", "328.46", "329.007", "329.554", "330.101", "330.648", "331.195", "331.741", "332.287", "332.834", "333.38", "333.926", "334.472", "335.017", "335.563", "336.108", "336.654", "337.199", "337.744", "338.289", "338.834", "339.378", "339.923", "340.467", "341.012", "341.556", "342.1", "342.644", "343.188", "343.731", "344.275", "344.818", "345.362", "345.905", "346.448", "346.991", "347.534", "348.076", "348.619", "349.161", "349.704", "350.246", "350.788", "351.33", "351.872", "352.414", "352.955", "353.497", "354.038", "354.579", "355.12", "355.661", "356.202", "356.743", "357.284", "357.824", "358.364", "358.905", "359.445", "359.985", "360.525", "361.065", "361.604", "362.144", "362.683", "363.223", "363.762", "364.301", "364.84", "365.379", "365.917", "366.456", "366.995", "367.533", "368.071", "368.609", "369.147", "369.685", "370.223", "370.761", "371.298", "371.836", "372.373", "372.91", "373.447", "373.984", "374.521", "375.058", "375.595", "376.131", "376.668", "377.204", "377.74", "378.276", "378.812", "379.348", "379.884", "380.419", "380.955", "381.49", "382.026", "382.561", "383.096", "383.631", "384.166", "384.7", "385.235", "385.77", "386.304", "386.838", "387.372", "387.907", "388.441", "388.974", "389.508", "390.042", "390.575", "391.109", "391.642", "392.175", "392.708", "393.241", "393.774", "394.307", "394.84", "395.372", "395.905", "396.437", "396.969", "397.501", "398.033", "398.565", "399.097", "399.629", "400.16", "400.692", "401.223", "401.755", "402.286", "402.817", "403.348", "403.879", "404.409", "404.94", "405.471", "406.001", "406.531", "407.062", "407.592", "408.122", "408.652", "409.181", "409.711", "410.241", "410.77", "411.3", "411.829", "412.358", "412.887", "413.416", "413.945", "414.474", "415.003", "415.531", "416.06", "416.588", "417.117", "417.645", "418.173", "418.701", "419.229", "419.757", "420.284", "420.812", "421.34", "421.867", "422.394", "422.921", "423.449", "423.976", "424.503", "425.029", "425.556", "426.083", "426.609", "427.136", "427.662", "428.188", "428.714", "429.24", "429.766", "430.292", "430.818", "431.344", "431.869", "432.395", "432.92", "433.445", "433.971", "434.496", "435.021", "435.546", "436.071", "436.595", "437.12", "437.644", "438.169", "438.693", "439.218", "439.742", "440.266", "440.79", "441.314", "441.837", "442.361", "442.885", "443.408", "443.932", "444.455", "444.978", "445.502", "446.025", "446.548", "447.071", "447.593", "448.116", "448.639", "449.161", "449.684", "450.206", "450.728", "451.251", "451.773", "452.295", "452.817", "453.338", "453.86", "454.382", "454.903", "455.425", "455.946", "456.468", "456.989", "457.51", "458.031", "458.552", "459.073", "459.594", "460.114", "460.635", "461.156", "461.676", "462.196", "462.717", "463.237", "463.757", "464.277", "464.797", "465.317", "465.837", "466.356", "466.876", "467.396", "467.915", "468.434", "468.954", "469.473", "469.992", "470.511", "471.03", "471.549", "472.068", "472.586", "473.105", "473.624", "474.142", "474.661", "475.179", "475.697", "476.215", "476.733", "477.251", "477.769", "478.287", "478.805", "479.323", "479.84", "480.358", "480.875", "481.393", "481.91", "482.427", "482.944", "483.461", "483.978", "484.495", "485.012", "485.529", "486.045", "486.562", "487.079", "487.595", "488.111", "488.628", "489.144", "489.66", "490.176", "490.692", "491.208", "491.724", "492.24", "492.755", "493.271", "493.787", "494.302", "494.817", "495.333", "495.848", "496.363", "496.878", "497.393", "497.908", "498.423", "498.938", "499.453", "499.968", "500.482", "500.997", "501.511", "502.026", "502.54", "503.054", "503.568", "504.083", "504.597", "505.111", "505.625", "506.138", "506.652", "507.166", "507.679", "508.193", "508.707", "509.22", "509.733", "510.247", "510.76", "511.273", "511.786", "512.299", "512.812", "513.325", "513.838", "514.351", "514.863", "515.376", "515.889", "516.401", "516.913", "517.426", "517.938", "518.45", "518.963", "519.475", "519.987", "520.499", "521.011", "521.522", "522.034", "522.546", "523.058", "523.569", "524.081", "524.592", "525.104", "525.615", "526.126", "526.637", "527.149", "527.66", "528.171", "528.682", "529.193", "529.704", "530.214", "530.725", "531.236", "531.746", "532.257", "532.767", "533.278", "533.788", "534.298", "534.809", "535.319", "535.829", "536.339", "536.849", "537.359", "537.869", "538.379", "538.889", "539.398", "539.908", "540.418", "540.927", "541.437", "541.946", "542.456", "542.965", "543.474", "543.983", "544.493", "545.002", "545.511", "546.02", "546.529", "547.038", "547.546", "548.055", "548.564", "549.073", "549.581", "550.09", "550.598", "551.107", "551.615", "552.123", "552.632", "553.14", "553.648", "554.156", "554.664", "555.172", "555.68", "556.188", "556.696", "557.204", "557.712", "558.22", "558.727", "559.235", "559.742", "560.25", "560.757", "561.265", "561.772", "562.28", "562.787", "563.294", "563.801", "564.308", "564.815", "565.323", "565.83", "566.336", "566.843", "567.35", "567.857", "568.364", "568.87", "569.377", "569.884", "570.39", "570.897", "571.403", "571.91", "572.416", "572.922", "573.429", "573.935", "574.441", "574.947", "575.453", "575.959", "576.465", "576.971", "577.477", "577.983", "578.489", "578.995", "579.501", "580.006", "580.512", "581.018", "581.523", "582.029", "582.534", "583.04", "583.545", "584.05", "584.556", "585.061", "585.566", "586.071", "586.577", "587.082", "587.587", "588.092", "588.597", "589.102", "589.607", "590.112", "590.616", "591.121", "591.626", "592.131", "592.635", "593.14", "593.645", "594.149", "594.654", "595.158", "595.663", "596.167", "596.672", "597.176", "597.68", "598.185", "598.689", "599.193", "599.697", "600.201", "600.705", "601.209", "601.713", "602.217", "602.721", "603.225", "603.729", "604.233", "604.737", "605.241", "605.744", "606.248", "606.752", "607.255", "607.759", "608.263", "608.766", "609.27", "609.773", "610.277", "610.78", "611.283", "611.787", "612.29", "612.793", "613.297", "613.8", "614.303", "614.806", "615.309", "615.812", "616.316", "616.819", "617.322", "617.825", "618.328", "618.83", "619.333", "619.836", "620.339", "620.842", "621.345", "621.847", "622.35", "622.853", "623.355", "623.858", "624.361", "624.863", "625.366", "625.868", "626.371", "626.873", "627.376", "627.878", "628.381", "628.883", "629.385", "629.888", "630.39", "630.892", "631.395", "631.897", "632.399", "632.901", "633.403", "633.905", "634.408", "634.91", "635.412", "635.914", "636.416", "636.918", "637.42", "637.922", "638.424", "638.925", "639.427", "639.929", "640.431", "640.933", "641.435", "641.936", "642.438", "642.94", "643.442", "643.943", "644.445", "644.947", "645.448", "645.95", "646.451", "646.953", "647.455", "647.956", "648.458", "648.959", "649.461", "649.962", "650.464", "650.965", "651.466", "651.968", "652.469", "652.97", "653.472", "653.973", "654.474", "654.976", "655.477", "655.978", "656.48", "656.981", "657.482", "657.983", "658.484", "658.985", "659.487", "659.988", "660.489", "660.99", "661.491", "661.992", "662.493", "662.994", "663.495", "663.996", "664.497", "664.998", "665.499", "666", "666.501", "667.002", "667.503", "668.004", "668.505", "669.006", "669.507", "670.008", "670.509", "671.009", "671.51", "672.011", "672.512", "673.013", "673.514", "674.014", "674.515", "675.016", "675.517", "676.018", "676.518", "677.019", "677.52", "678.02", "678.521", "679.022", "679.523", "680.023", "680.524", "681.025", "681.525", "682.026", "682.527", "683.027", "683.528", "684.029", "684.529", "685.03", "685.531", "686.031", "686.532", "687.032", "687.533", "688.034", "688.534", "689.035", "689.536", "690.036", "690.537", "691.037", "691.538", "692.038", "692.539", "693.04", "693.54", "694.041", "694.541", "695.042", "695.542", "696.043", "696.544", "697.044", "697.545", "698.045", "698.546", "699.046", "699.547", "700.047", "700.548", "701.049", "701.549", "702.05", "702.55", "703.051", "703.551", "704.052", "704.552", "705.053", "705.554", "706.054", "706.555", "707.055", "707.556", "708.056", "708.557", "709.058", "709.558", "710.059", "710.559", "711.06", "711.561", "712.061", "712.562", "713.062", "713.563", "714.064", "714.564", "715.065", "715.566", "716.066", "716.567", "717.068", "717.568", "718.069", "718.57", "719.07", "719.571", "720.072", "720.572", "721.073", "721.574", "722.074", "722.575", "723.076", "723.577", "724.077", "724.578", "725.079", "725.58", "726.081", "726.581", "727.082", "727.583", "728.084", "728.585", "729.086", "729.586", "730.087", "730.588", "731.089", "731.59", "732.091", "732.592", "733.093", "733.594", "734.095", "734.596", "735.097", "735.598", "736.099", "736.6", "737.101", "737.602", "738.103", "738.604", "739.105", "739.606", "740.107", "740.609", "741.11", "741.611", "742.112", "742.613", "743.114", "743.616", "744.117", "744.618", "745.119", "745.621", "746.122", "746.623", "747.125", "747.626", "748.128", "748.629", "749.13", "749.632", "750.133", "750.635", "751.136", "751.638", "752.139", "752.641", "753.142", "753.644", "754.145", "754.647", "755.149", "755.65", "756.152", "756.654", "757.155", "757.657", "758.159", "758.661", "759.163", "759.664", "760.166", "760.668", "761.17", "761.672", "762.174", "762.676", "763.178", "763.68", "764.182", "764.684", "765.186", "765.688", "766.19", "766.692", "767.194", "767.697", "768.199", "768.701", "769.203", "769.706", "770.208", "770.71", "771.213", "771.715", "772.217", "772.72", "773.222", "773.725", "774.227", "774.73", "775.232", "775.735", "776.238", "776.74", "777.243", "777.746", "778.248", "778.751", "779.254", "779.757", "780.26", "780.763", "781.266", "781.768", "782.271", "782.774", "783.277", "783.781", "784.284", "784.787", "785.29", "785.793", "786.296", "786.799", "787.303", "787.806", "788.309", "788.813", "789.316", "789.82", "790.323", "790.827", "791.33", "791.834", "792.337", "792.841", "793.345", "793.848", "794.352", "794.856", "795.359", "795.863", "796.367", "796.871", "797.375", "797.879", "798.383", "798.887", "799.391", "799.895", "800.399", "800.904", "801.408", "801.912", "802.416", "802.921", "803.425", "803.929", "804.434", "804.938", "805.443", "805.947", "806.452", "806.957", "807.461", "807.966", "808.471", "808.975", "809.48", "809.985", "810.49", "810.995", "811.5", "812.005", "812.51", "813.015", "813.52", "814.026", "814.531", "815.036", "815.541", "816.047", "816.552", "817.057", "817.563", "818.068", "818.574", "819.08", "819.585", "820.091", "820.597", "821.102", "821.608", "822.114", "822.62", "823.126"] }, { "type": "character", "attributes": {}, "value": ["0.029", "20.027", "40.025", "60.026", "80.025", "100.023", "120.022", "140.022", "160.02", "180.019", "200.02", "220.018", "240.017", "260.016", "280.015", "300.014", "320.014", "340.014", "360.012", "380.012", "400.01", "420.009", "440.008", "460.007"] } ] } }, "value": [555, 555, 555, 554, 554, 554, 554, 555, 555, 557, 559, 560, 560, 560, 560, 560, 561, 561, 561, 561, 561, 565, 565, 564, 564, 564, 562, 562, 564, 567, 567, 567, 567, 567, 567, 567, 564, 564, 563, 563, 563, 566, 566, 566, 566, 566, 565, 564, 564, 564, 564, 563, 563, 563, 563, 565, 565, 565, 565, 565, 565, 564, 564, 564, 565, 566, 568, 568, 568, 568, 564, 564, 566, 567, 567, 567, 566, 566, 566, 565, 565, 566, 567, 568, 568, 568, 568, 567, 567, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 565, 565, 564, 564, 564, 564, 564, 564, 566, 566, 566, 567, 567, 567, 567, 566, 564, 564, 563, 563, 563, 565, 565, 565, 565, 566, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 565, 565, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 569, 569, 568, 566, 566, 566, 566, 566, 566, 569, 569, 569, 569, 569, 569, 569, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 562, 562, 562, 562, 564, 564, 564, 568, 568, 568, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 564, 564, 563, 563, 563, 564, 565, 565, 565, 564, 564, 564, 565, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 568, 568, 571, 571, 571, 567, 567, 567, 567, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 563, 563, 563, 563, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 570, 570, 570, 569, 569, 568, 565, 563, 563, 563, 563, 565, 566, 566, 566, 565, 563, 563, 563, 565, 565, 565, 565, 564, 564, 566, 566, 566, 568, 568, 568, 572, 572, 572, 568, 568, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 565, 565, 565, 564, 564, 564, 564, 564, 563, 563, 563, 563, 563, 562, 562, 562, 562, 563, 563, 564, 568, 568, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 562, 562, 562, 567, 567, 567, 567, 565, 565, 565, 566, 566, 566, 566, 566, 566, 568, 568, 568, 568, 566, 565, 565, 565, 565, 567, 567, 567, 566, 566, 566, 569, 569, 569, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 568, 568, 568, 564, 563, 563, 564, 566, 567, 567, 567, 565, 565, 565, 565, 565, 565, 565, 565, 565, 563, 563, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 563, 563, 563, 563, 563, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 569, 569, 569, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 565, 564, 564, 564, 566, 566, 566, 566, 562, 562, 562, 565, 565, 567, 570, 570, 569, 566, 564, 564, 564, 566, 569, 569, 567, 567, 564, 564, 564, 567, 568, 568, 568, 568, 568, 568, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 563, 563, 563, 565, 567, 567, 567, 567, 566, 566, 566, 564, 564, 564, 566, 568, 568, 568, 568, 567, 565, 565, 567, 569, 569, 569, 569, 569, 569, 569, 569, 569, 565, 564, 564, 567, 569, 569, 569, 569, 569, 569, 569, 569, 566, 566, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 566, 566, 567, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 563, 563, 564, 566, 566, 566, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 560, 560, 563, 564, 564, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 564, 564, 564, 567, 567, 567, 562, 562, 562, 563, 563, 563, 565, 565, 565, 564, 564, 564, 565, 565, 565, 562, 562, 562, 566, 566, 568, 568, 568, 568, 568, 568, 567, 567, 566, 566, 564, 564, 564, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 564, 564, 562, 562, 562, 564, 566, 566, 566, 562, 562, 562, 562, 567, 567, 567, 567, 567, 566, 565, 565, 565, 565, 566, 566, 566, 566, 568, 568, 568, 568, 568, 566, 566, 566, 566, 566, 566, 564, 564, 564, 563, 563, 568, 568, 568, 565, 565, 565, 564, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 564, 564, 564, 565, 568, 568, 568, 567, 567, 565, 564, 564, 564, 564, 565, 568, 568, 568, 568, 568, 568, 568, 568, 567, 566, 566, 565, 565, 565, 565, 565, 565, 567, 567, 567, 565, 565, 565, 565, 569, 569, 569, 569, 565, 564, 564, 565, 565, 565, 565, 566, 566, 565, 565, 565, 568, 568, 568, 567, 567, 567, 567, 568, 568, 568, 565, 565, 567, 567, 567, 567, 567, 564, 564, 564, 564, 567, 567, 567, 566, 563, 563, 563, 565, 565, 565, 569, 569, 569, 569, 567, 567, 567, 567, 567, 568, 569, 569, 569, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 562, 562, 562, 563, 566, 566, 566, 567, 571, 571, 571, 568, 565, 565, 565, 566, 566, 566, 567, 567, 567, 567, 565, 565, 565, 563, 563, 563, 563, 565, 567, 567, 561, 561, 562, 565, 565, 565, 565, 565, 565, 564, 562, 562, 562, 565, 565, 565, 565, 564, 563, 563, 563, 563, 563, 563, 563, 563, 563, 564, 564, 564, 566, 566, 566, 566, 566, 566, 565, 565, 565, 556, 556, 556, 555, 555, 555, 555, 558, 562, 562.5, 562.5, 563, 563, 563, 563, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 565, 565, 565, 565, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 567, 567, 567, 566, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 566, 566, 566, 566, 566, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 564, 564, 564, 564, 564, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 564, 564, 564, 566, 567, 567, 567, 561, 560, 555, 555, 555, 555, 557, 557, 560, 560, 560, 560, 560, 560, 560, 561, 561, 562, 563, 564, 564, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 568, 568, 568, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 565, 565, 565, 566, 566, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 571, 571, 571, 571, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 567, 567, 567, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 569, 569, 569, 569, 569, 569, 569, 569, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 569, 569, 569, 569, 568, 568, 568, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 569, 569, 570, 570, 569, 569, 566, 565, 563, 568, 568, 564, 557, 556, 556, 556, 557, 562, 562, 562, 562, 562, 562, 564, 564, 564, 565, 566, 566, 568, 568, 569, 570, 570, 570, 570, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 573, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 577, 577, 577, 577, 576, 576, 576, 578, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 587, 587, 587, 588, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 584, 584, 584, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 580, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 571, 571, 571, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 574, 575, 575, 575, 576, 576, 576, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 577, 577, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 571, 572, 572, 572, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 573, 573, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 576, 603, 603, 603, 603, 573, 573, 571, 571, 569, 569, 569, 567, 567, 567, 568, 570, 571, 574, 575, 576, 578, 578, 578, 578, 574, 574, 574, 574, 577, 577, 577, 575, 575, 575, 575, 577, 577, 577, 577, 577, 576, 576, 576, 577, 577, 578, 580, 580, 577, 577, 577, 577, 577, 577, 577, 577, 580, 580, 580, 580, 580, 580, 580, 579, 577, 577, 577, 580, 580, 580, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 586, 586, 583, 583, 587, 587, 587, 587, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 590, 591, 592, 592, 590, 590, 590, 590, 590, 592, 592, 592, 592, 596, 596, 597, 597, 597, 597, 592, 592, 600, 602, 604, 604, 604, 604, 604, 605, 608, 610, 611, 611, 612, 612, 613, 613, 613, 613, 614, 615, 615, 615, 615, 615, 615, 616, 617, 618, 618, 618, 618, 619, 619, 620, 620, 622, 622, 623, 623, 624, 624, 626, 627, 628, 628, 629, 629, 629, 631, 631, 631, 632, 632, 632, 633, 633, 634, 634, 634, 634, 634, 634, 636, 637, 637, 637, 637, 637, 637, 637, 638, 638, 640, 640, 641, 641, 642, 642, 643, 644, 644, 644, 645, 647, 647, 647, 648, 648, 648, 649, 650, 650, 650, 650, 650, 650, 650, 651, 651, 652, 652, 653, 653, 653, 653, 653, 654, 654, 654, 654, 653, 653, 653, 653, 653, 653, 653, 653, 652, 652, 652, 651, 651, 651, 651, 651, 651, 650, 649, 649, 649, 649, 649, 650, 650, 650, 650, 650, 649, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 646, 646, 646, 646, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 644, 644, 644, 644, 644, 644, 642, 642, 640, 640, 640, 640, 638, 637, 637, 637, 637, 637, 637, 637, 636, 636, 636, 636, 636, 635, 635, 635, 633, 633, 632, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 632, 633, 633, 633, 633, 633, 632, 632, 632, 632, 633, 633, 633, 632, 632, 632, 631, 631, 630, 630, 630, 630, 630, 631, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 634, 634, 635, 635, 635, 635, 634, 634, 634, 634, 634, 637, 637, 637, 637, 639, 639, 639, 641, 641, 641, 641, 641, 642, 642, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 645, 645, 645, 645, 645, 645, 645, 646, 646, 646, 646, 648, 650, 650, 650, 648, 648, 648, 648, 648, 648, 649, 649, 649, 649, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 647, 647, 646, 646, 646, 646, 646, 646, 645, 645, 645, 646, 646, 646, 644, 644, 644, 643, 642, 640, 640, 640, 640, 639, 639, 639, 639, 639, 639, 638, 638, 638, 637, 637, 637, 637, 636, 636, 636, 636, 635, 635, 634, 634, 632, 631, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 626, 626, 626, 626, 625, 625, 625, 624, 624, 623, 623, 623, 623, 622, 620, 620, 620, 620, 619, 618, 618, 618, 617, 615, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 612, 612, 611, 611, 610, 609, 609, 609, 609, 609, 608, 604, 604, 604, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 598, 598, 598, 598, 598, 598, 599, 599, 598, 598, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 595, 595, 595, 596, 597, 599, 599, 599, 599, 599, 597, 594, 594, 594, 596, 596, 596, 596, 596, 596, 594, 594, 594, 594, 594, 594, 593, 593, 593, 592, 592, 592, 594, 594, 594, 594, 592, 592, 592, 594, 594, 595, 595, 596, 596, 596, 592, 592, 592, 592, 593, 594, 594, 594, 594, 591, 591, 591, 591, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 596, 599, 600, 600, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 599, 599, 601, 601, 600, 600, 600, 600, 601, 601, 601, 601, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 603, 603, 604, 604, 604, 604, 604, 604, 604, 605, 606, 608, 608, 608, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 608, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 599, 599, 598, 598, 598, 599, 600, 602, 602, 601, 599, 598, 598, 599, 599, 599, 599, 599, 598, 598, 596, 596, 596, 598, 598, 598, 597, 597, 596, 596, 596, 595, 595, 595, 595, 597, 597, 597, 597, 593, 592, 592, 592, 590, 590, 590, 590, 592, 592, 592, 592, 593, 593, 593, 591, 590, 589, 589, 589, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 589, 589, 587, 586, 586, 586, 586, 586, 588, 588, 588, 588, 588, 580, 580, 580, 581, 583, 583, 583, 583, 583, 583, 583, 583, 583, 590, 590, 590, 585, 585, 585, 582, 582, 582, 583, 583, 583, 583, 583, 586, 586, 586, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 582, 580, 580, 580, 580, 582, 582, 582, 582, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 581, 581, 582, 582, 582, 582, 582, 582, 583, 583, 583, 583, 583, 584, 584, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 587, 587, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 591, 591, 591, 591, 591, 592, 592, 593, 593, 593, 593, 593, 593, 594, 594, 594, 596, 596, 596, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 600, 600, 601, 601, 601, 601, 603, 603, 605, 606, 606, 606, 606, 607, 607, 608, 608, 610, 613, 613, 613, 613, 617, 617, 619, 620, 621, 621, 622, 623, 623, 623, 623, 624, 626, 627, 628, 628, 629, 629, 630, 630, 631, 631, 634, 634, 635, 635, 635, 635, 636, 637, 637, 639, 639, 644, 646, 646, 646, 648, 649, 649, 649, 650, 650, 650, 651, 652, 652, 653, 653, 654, 654, 655, 655, 659, 659, 659, 660, 661, 661, 661, 662, 663, 663, 663, 664, 664, 664, 665, 665, 667, 668, 668, 669, 670, 670, 672, 673, 673, 673, 674, 674, 675, 675, 676, 678, 679, 680, 680, 680, 680, 680, 680, 680, 680, 680, 681, 681, 681, 681, 681, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 679, 679, 679, 679, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 677, 677, 677, 677, 677, 677, 677, 677, 676, 676, 676, 676, 676, 675, 675, 674, 674, 673, 673, 673, 673, 673, 673, 671, 671, 671, 671, 670, 670, 670, 670, 670, 669, 669, 669, 669, 669, 669, 668, 668, 666, 666, 666, 666, 665, 665, 664, 664, 663, 663, 662, 662, 662, 662, 662, 661, 661, 661, 660, 659, 659, 659, 658, 658, 658, 658, 658, 657, 657, 656, 656, 656, 656, 656, 655, 655, 655, 655, 654, 654, 654, 654, 654, 655, 655, 655, 655, 655, 655, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 656, 656, 656, 656, 656, 657, 657, 657, 657, 657, 659, 659, 659, 659, 661, 661, 661, 662, 663, 663, 664, 665, 665, 665, 665, 666, 666, 666, 666, 666, 666, 666, 667, 667, 669, 670, 670, 670, 670, 670, 670, 670, 671, 674, 674, 674, 674, 674, 674, 674, 675, 675, 676, 676, 676, 678, 679, 679, 679, 679, 679, 679, 680, 680, 681, 681, 681, 681, 681, 681, 682, 682, 682, 683, 684, 685, 685, 685, 685, 685, 685, 687, 687, 688, 688, 688, 688, 688, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 686, 686, 686, 686, 686, 685, 685, 684, 682, 682, 682, 682, 682, 681, 681, 681, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 679, 678, 678, 678, 677, 675, 675, 675, 673, 673, 673, 672, 671, 670, 668, 668, 668, 667, 666, 666, 665, 664, 663, 662, 661, 660, 657, 657, 657, 657, 657, 657, 656, 655, 655, 653, 652, 651, 651, 651, 650, 648, 648, 647, 647, 646, 646, 646, 645, 645, 644, 644, 644, 644, 643, 643, 643, 642, 640, 640, 640, 640, 639, 638, 638, 636, 636, 636, 635, 634, 633, 631, 631, 631, 631, 630, 630, 630, 630, 629, 628, 628, 627, 627, 627, 627, 627, 626, 625, 624, 624, 624, 624, 623, 623, 623, 621, 621, 621, 621, 620, 620, 620, 618, 618, 617, 617, 616, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 616, 616, 615, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 611, 611, 611, 611, 611, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 610, 611, 611, 611, 611, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 613, 613, 614, 614, 614, 614, 614, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 617, 617, 617, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 614, 614, 614, 613, 613, 613, 613, 613, 613, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 613, 613, 613, 613, 613, 613, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 610, 610, 609, 609, 609, 609, 608, 608, 608, 608, 608, 607, 607, 606, 606, 606, 606, 606, 605, 605, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 600, 600, 600, 600, 600, 600, 600, 600, 600, 598, 598, 598, 598, 597, 597, 597, 597, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 595, 595, 595, 594, 594, 594, 594, 594, 592, 591, 591, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 573, 574, 575, 576, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 581, 581, 581, 582, 582, 582, 582, 582, 581, 581, 581, 581, 584, 584, 584, 584, 584, 584, 586, 586, 586, 586, 586, 585, 585, 585, 585, 586, 586, 586, 582, 582, 582, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 593, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 596, 596, 596, 596, 596, 596, 596, 597, 597, 597, 597, 597, 597, 598, 598, 598, 599, 600, 600, 600, 601, 604, 605, 605, 605, 606, 607, 607, 609, 609, 609, 610, 610, 610, 611, 613, 614, 614, 614, 614, 614, 615, 616, 617, 617, 620, 621, 621, 624, 625, 625, 625, 627, 627, 627, 627, 627, 627, 628, 628, 630, 630, 630, 630, 631, 631, 631, 631, 632, 632, 632, 633, 633, 634, 635, 638, 638, 639, 639, 639, 640, 640, 641, 642, 643, 643, 644, 644, 644, 645, 645, 645, 647, 647, 650, 651, 651, 651, 652, 652, 652, 652, 652, 653, 653, 653, 653, 653, 653, 653, 653, 654, 654, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 654, 654, 654, 654, 654, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 650, 650, 650, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 646, 646, 646, 646, 646, 646, 646, 646, 645, 645, 644, 644, 643, 643, 643, 642, 642, 642, 642, 642, 642, 642, 642, 641, 641, 641, 641, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 637, 637, 637, 637, 636, 636, 636, 637, 637, 637, 636, 636, 636, 635, 635, 635, 636, 636, 636, 635, 635, 635, 636, 636, 636, 635, 635, 635, 635, 635, 635, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 638, 638, 638, 640, 640, 640, 640, 641, 641, 641, 641, 641, 641, 641, 642, 642, 643, 643, 643, 644, 644, 644, 644, 645, 645, 646, 647, 648, 648, 648, 649, 650, 651, 651, 652, 652, 652, 654, 654, 655, 655, 655, 655, 656, 656, 656, 658, 658, 658, 659, 659, 659, 660, 660, 660, 660, 662, 662, 664, 664, 665, 665, 665, 666, 666, 666, 666, 667, 667, 667, 667, 669, 669, 669, 670, 670, 671, 672, 674, 674, 674, 675, 675, 675, 676, 676, 676, 676, 676, 676, 676, 676, 676, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 672, 672, 672, 672, 671, 671, 671, 670, 668, 668, 668, 668, 667, 665, 665, 665, 664, 664, 664, 663, 662, 662, 662, 662, 659, 659, 659, 658, 657, 657, 655, 655, 655, 654, 654, 654, 653, 652, 650, 650, 650, 650, 649, 648, 648, 647, 647, 646, 644, 644, 643, 642, 642, 641, 641, 641, 641, 640, 639, 638, 638, 635, 635, 635, 635, 634, 634, 634, 634, 633, 633, 632, 631, 628, 628, 628, 627, 627, 627, 626, 626, 626, 625, 625, 625, 621, 621, 621, 621, 621, 620, 620, 619, 619, 619, 619, 619, 619, 618, 618, 617, 617, 617, 615, 615, 615, 615, 614, 614, 614, 614, 613, 613, 613, 613, 613, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 610, 609, 609, 609, 609, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 605, 605, 605, 605, 605, 604, 603, 603, 603, 603, 602, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 597, 597, 597, 597, 597, 597, 597, 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 594, 594, 594, 593, 593, 593, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 592, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 585, 583, 583, 583, 583, 583, 581, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 581, 580, 580, 579, 579, 579, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 580, 579, 579, 580, 581, 581, 582, 582, 582, 580, 580, 581, 581, 581, 581, 579, 578, 578, 578, 577, 577, 577, 577, 577, 574, 574, 573, 572, 571, 571, 571, 576, 576, 576, 574, 574, 575, 579, 580, 580, 580, 580, 580, 583, 583, 583, 580, 580, 580, 581, 584, 584, 584, 584, 584, 583, 583, 583, 583, 579, 578, 578, 580, 583, 583, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 582, 582, 582, 585, 585, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 584, 583, 583, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 589, 589, 589, 590, 590, 591, 591, 593, 593, 593, 593, 593, 594, 594, 595, 595, 595, 597, 597, 598, 598, 598, 598, 598, 599, 599, 599, 599, 600, 601, 601, 602, 602, 602, 602, 603, 603, 605, 605, 608, 608, 610, 613, 613, 613, 613, 613, 613, 613, 613, 614, 614, 614, 614, 614, 614, 614, 615, 615, 615, 617, 617, 617, 617, 619, 619, 619, 620, 620, 620, 620, 620, 623, 623, 623, 623, 624, 625, 625, 625, 626, 626, 626, 626, 627, 627, 627, 629, 629, 629, 629, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 633, 633, 633, 634, 634, 635, 636, 636, 636, 636, 636, 636, 636, 636, 636, 635, 634, 634, 634, 633, 633, 633, 633, 633, 633, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 628, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 625, 625, 623, 622, 622, 622, 622, 622, 622, 622, 622, 621, 621, 621, 620, 620, 620, 620, 620, 620, 620, 620, 620, 619, 619, 618, 617, 617, 617, 617, 617, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 616, 616, 616, 616, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 617, 617, 617, 617, 617, 617, 617, 617, 619, 620, 620, 622, 622, 622, 622, 622, 622, 622, 623, 623, 623, 625, 626, 626, 627, 627, 627, 628, 629, 629, 629, 629, 630, 630, 631, 631, 631, 632, 632, 634, 634, 635, 637, 638, 638, 638, 638, 638, 639, 640, 640, 640, 640, 641, 642, 642, 642, 642, 642, 643, 643, 643, 644, 644, 644, 645, 645, 646, 646, 646, 646, 647, 647, 647, 648, 648, 648, 649, 649, 649, 649, 651, 651, 651, 651, 651, 653, 653, 653, 653, 653, 653, 653, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 654, 654, 654, 654, 654, 653, 653, 653, 652, 652, 652, 652, 651, 651, 651, 651, 651, 650, 650, 649, 649, 649, 649, 649, 649, 648, 647, 647, 647, 646, 646, 645, 645, 644, 643, 643, 641, 638, 638, 638, 636, 636, 636, 636, 636, 636, 636, 635, 635, 635, 635, 635, 635, 635, 634, 632, 632, 632, 632, 632, 632, 632, 631, 630, 629, 629, 627, 626, 626, 626, 625, 625, 625, 625, 625, 625, 624, 624, 623, 621, 621, 621, 620, 619, 619, 619, 619, 617, 617, 617, 616, 616, 614, 613, 611, 611, 611, 611, 611, 611, 610, 609, 609, 607, 606, 606, 605, 605, 605, 605, 605, 605, 604, 603, 603, 603, 603, 602, 602, 602, 602, 603, 603, 603, 603, 603, 603, 603, 602, 601, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 599, 599, 599, 599, 599, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 593, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 590, 590, 590, 590, 590, 590, 592, 592, 592, 592, 590, 590, 590, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 590, 590, 590, 589, 589, 589, 589, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 583, 583, 585, 585, 585, 585, 585, 585, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 582, 577, 577, 577, 582, 582, 582, 582, 582, 580, 580, 580, 580, 580, 582, 582, 582, 580, 579, 579, 580, 580, 580, 580, 581, 582, 582, 582, 580, 580, 580, 580, 580, 581, 581, 581, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 578, 578, 579, 580, 580, 578, 578, 578, 578, 578, 578, 578, 578, 578, 580, 580, 575, 575, 575, 575, 576, 576, 576, 580, 583, 583, 583, 579, 579, 577, 575, 575, 575, 579, 579, 579, 579, 574, 574, 574, 576, 578, 578, 578, 578, 578, 577, 577, 577, 577, 578, 578, 578, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 577, 578, 578, 578, 578, 570, 570, 573, 573, 573, 572, 572, 572, 574, 574, 574, 574, 572, 572, 572, 575, 578, 578, 578, 575, 575, 575, 575, 580, 580, 580, 580, 580, 580, 581, 585, 585, 585, 585, 585, 583, 582, 580, 580, 583, 586, 586, 586, 585, 585, 585, 585, 583, 583, 582, 582, 582, 586, 586, 586, 585, 584, 584, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 590, 590, 590, 586, 584, 584, 582, 582, 582, 588, 588, 588, 588, 588, 587, 587, 587, 587, 588, 588, 588, 586, 586, 584, 584, 584, 585, 585, 585, 585, 585, 585, 584, 583, 583, 583, 583, 587, 590, 590, 590, 584, 584, 584, 584, 584, 588, 588, 584, 584, 587, 588, 588, 588, 588, 588, 588, 588, 588, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 596, 596, 596, 598, 598, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 601, 602, 604, 604, 604, 605, 605, 605, 605, 606, 606, 607, 607, 607, 607, 607, 607, 607, 608, 608, 608, 609, 609, 610, 610, 612, 612, 613, 613, 613, 614, 615, 615, 615, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 618, 618, 618, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 613, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 611, 610, 610, 610, 610, 610, 610, 610, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 605, 605, 605, 604, 604, 604, 604, 603, 603, 603, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 600, 599, 599, 599, 599, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, 601, 601, 601, 601, 601, 601, 601, 602, 602, 603, 604, 604, 604, 605, 605, 605, 606, 606, 606, 606, 607, 607, 607, 610, 611, 611, 611, 611, 611, 612, 613, 613, 613, 613, 613, 613, 614, 614, 614, 615, 615, 616, 616, 616, 616, 616, 616, 617, 617, 618, 618, 618, 620, 620, 620, 620, 621, 622, 623, 623, 623, 623, 623, 624, 624, 625, 625, 626, 626, 628, 628, 628, 628, 628, 628, 629, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 632, 632, 632, 632, 634, 634, 634, 634, 634, 634, 634, 634, 634, 636, 636, 636, 636, 636, 636, 636, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 635, 635, 635, 635, 633, 633, 632, 632, 632, 632, 632, 633, 633, 633, 633, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 631, 631, 630, 629, 629, 629, 629, 629, 628, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 626, 626, 626, 625, 625, 625, 625, 625, 625, 624, 623, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 621, 621, 621, 621, 621, 621, 620, 620, 620, 620, 620, 619, 616, 615, 614, 614, 614, 613, 613, 613, 612, 612, 612, 612, 611, 611, 611, 610, 608, 608, 608, 608, 608, 608, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 602, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 598, 598, 598, 598, 598, 598, 596, 596, 596, 595, 595, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 592, 591, 591, 591, 591, 589, 588, 588, 590, 591, 591, 589, 588, 588, 587, 587, 588, 588, 588, 588, 588, 586, 586, 586, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 586, 586, 586, 588, 588, 588, 587, 587, 587, 586, 586, 586, 586, 586, 587, 587, 587, 583, 583, 583, 583, 585, 585, 585, 582, 582, 582, 584, 586, 586, 586, 585, 584, 583, 583, 581, 581, 581, 580, 580, 579, 579, 579, 582, 582, 582, 582, 583, 583, 583, 583, 583, 584, 584, 585, 585, 586, 586, 586, 582, 582, 582, 583, 585, 585, 583, 578, 578, 578, 583, 583, 583, 583, 583, 579, 579, 579, 579, 579, 581, 583, 583, 583, 581, 581, 581, 578, 578, 578, 580, 580, 580, 580, 580, 580, 579, 579, 579, 580, 582, 582, 580, 577, 575, 575, 575, 575, 575, 575, 575, 576, 576, 579, 579, 579, 579, 579, 579, 579, 577, 577, 577, 577, 578, 578, 578, 574, 574, 574, 576, 576, 577, 577, 577, 578, 578, 578, 578, 579, 579, 579, 579, 579, 578, 573, 573, 580, 580, 573, 573, 573, 573, 573, 578, 578, 578, 576, 573, 573, 573, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 576, 578, 578, 575, 573, 573, 573, 574, 577, 577, 577, 574, 572, 572, 572, 572, 572, 572, 574, 574, 574, 574, 575, 575, 575, 574, 573, 573, 574, 574, 574, 574, 574, 575, 575, 575, 573, 573, 573, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 572, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 577, 577, 574, 574, 573, 572, 572, 571, 571, 571, 573, 573, 574, 574, 574, 574, 574, 574, 574, 571, 571, 564, 564, 564, 564, 566, 566, 566, 571, 571, 571, 572, 572, 572, 572, 572, 573, 574, 574, 574, 574, 574, 576, 576, 577, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 583, 583, 583, 583, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 586, 586, 586, 586, 588, 588, 588, 588, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 593, 593, 593, 593, 593, 593, 594, 594, 594, 595, 595, 595, 595, 596, 596, 596, 597, 597, 598, 598, 599, 599, 599, 600, 601, 601, 601, 601, 601, 601, 601, 601, 602, 602, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 598, 597, 597, 597, 597, 597, 597, 597, 597, 596, 596, 596, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 588, 589, 589, 589, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 596, 596, 596, 598, 598, 598, 598, 598, 598, 598, 600, 600, 600, 601, 601, 602, 602, 602, 602, 602, 602, 603, 603, 604, 605, 605, 606, 606, 607, 607, 607, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 611, 611, 613, 613, 614, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 618, 618, 618, 618, 618, 619, 619, 620, 621, 621, 621, 621, 621, 621, 621, 623, 623, 623, 623, 624, 624, 624, 625, 625, 625, 625, 625, 625, 626, 626, 626, 626, 626, 626, 627, 628, 628, 628, 628, 628, 628, 628, 628, 628, 629, 629, 629, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 630, 630, 630, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 633, 633, 633, 633, 633, 633, 633, 633, 633, 632, 632, 632, 632, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 633, 633, 633, 633, 633, 633, 633, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 630, 628, 628, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 626, 626, 625, 625, 625, 625, 625, 625, 625, 624, 624, 624, 623, 623, 623, 623, 623, 623, 622, 620, 620, 620, 619, 619, 619, 619, 619, 618, 618, 618, 618, 618, 618, 618, 618, 618, 617, 616, 616, 615, 615, 613, 613, 613, 613, 612, 611, 611, 611, 611, 611, 610, 610, 610, 610, 609, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 607, 606, 606, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 602, 602, 602, 602, 601, 601, 599, 599, 598, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 587, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 584, 584, 584, 584, 582, 582, 582, 582, 581, 581, 581, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 574, 574, 574, 574, 573, 573, 575, 576, 576, 576, 576, 562, 562, 562, 562, 563, 563, 563, 563, 565, 566, 566, 566, 566, 567, 567, 570, 570, 570, 568, 568, 568, 572, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 577, 581, 581, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 581, 581, 580, 580, 580, 580, 580, 578, 578, 578, 579, 579, 580, 580, 580, 580, 581, 581, 584, 584, 584, 583, 581, 581, 581, 581, 580, 580, 580, 580, 579, 579, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 578, 578, 578, 578, 578, 576, 576, 576, 576, 576, 580, 580, 580, 579, 575, 575, 575, 575, 575, 576, 576, 578, 578, 582, 582, 582, 582, 582, 581, 581, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 583, 583, 583, 581, 579, 579, 581, 583, 585, 585, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 588, 585, 585, 585, 585, 585, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 589, 589, 589, 586, 586, 586, 587, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 587, 587, 587, 587, 587, 587, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 586, 586, 586, 586, 585, 585, 585, 585, 584, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 585, 585, 585, 582, 582, 582, 583, 583, 583, 583, 585, 585, 585, 585, 580, 580, 580, 580, 580, 580, 579, 579, 579, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 582, 582, 582, 581, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 582, 582, 582, 582, 578, 576, 576, 576, 576, 575, 575, 575, 575, 579, 581, 581, 579, 574, 574, 574, 578, 579, 581, 581, 580, 580, 580, 578, 578, 577, 577, 577, 577, 576, 576, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 574, 574, 583, 583, 580, 580, 580, 580, 577, 577, 577, 578, 580, 581, 581, 582, 582, 584, 586, 586, 584, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 593, 593, 595, 595, 596, 596, 596, 596, 596, 597, 597, 597, 597, 598, 599, 600, 600, 600, 600, 600, 600, 600, 601, 601, 603, 603, 603, 603, 603, 604, 604, 604, 604, 604, 605, 605, 605, 607, 607, 607, 608, 609, 609, 609, 609, 610, 610, 610, 610, 611, 612, 612, 612, 612, 612, 613, 613, 613, 613, 613, 614, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 617, 617, 617, 619, 620, 620, 622, 622, 623, 623, 623, 624, 624, 624, 624, 624, 625, 625, 625, 625, 626, 626, 626, 626, 627, 627, 627, 628, 628, 628, 628, 628, 628, 628, 628, 629, 629, 629, 630, 630, 630, 630, 630, 631, 631, 631, 632, 632, 632, 632, 632, 633, 633, 634, 635, 635, 635, 636, 636, 636, 636, 637, 638, 638, 638, 639, 639, 640, 640, 640, 640, 640, 640, 641, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 644, 644, 646, 646, 646, 646, 646, 646, 646, 647, 647, 647, 647, 647, 647, 647, 647, 648, 648, 648, 648, 648, 648, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 650, 648, 648, 647, 647, 646, 646, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 643, 643, 642, 641, 640, 640, 640, 640, 639, 639, 638, 638, 635, 634, 634, 634, 634, 634, 633, 633, 633, 632, 632, 632, 629, 629, 629, 628, 628, 628, 628, 628, 628, 628, 627, 627, 627, 626, 625, 625, 625, 624, 624, 624, 624, 621, 621, 620, 620, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 618, 618, 617, 617, 617, 616, 616, 616, 615, 614, 614, 614, 614, 613, 612, 612, 611, 611, 611, 611, 611, 610, 610, 610, 610, 608, 608, 607, 607, 607, 605, 605, 605, 604, 603, 603, 602, 601, 601, 601, 600, 600, 600, 600, 600, 600, 599, 598, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 597, 596, 596, 595, 595, 595, 594, 594, 592, 592, 592, 591, 590, 590, 590, 590, 590, 586, 586, 586, 590, 590, 590, 590, 589, 588, 588, 588, 588, 588, 588, 587, 587, 587, 586, 586, 585, 582, 580, 580, 585, 585, 586, 584, 584, 582, 582, 582, 582, 582, 582, 580, 580, 580, 580, 580, 580, 581, 583, 583, 583, 584, 584, 583, 580, 578, 576, 576, 578, 580, 580, 580, 580, 580, 579, 579, 579, 579, 581, 581, 583, 583, 583, 579, 578, 577, 577, 577, 579, 581, 581, 580, 580, 580, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 577, 577, 577, 578, 578, 578, 578, 578, 575, 575, 575, 575, 576, 576, 576, 574, 574, 574, 575, 575, 575, 575, 575, 576, 576, 576, 576, 575, 575, 575, 575, 575, 573, 573, 573, 573, 573, 571, 570, 570, 571, 572, 575, 575, 575, 575, 575, 575, 575, 575, 575, 578, 578, 578, 578, 578, 578, 574, 574, 574, 573, 570, 570, 570, 571, 571, 572, 572, 572, 572, 577, 577, 577, 575, 574, 574, 574, 574, 574, 575, 575, 577, 577, 577, 577, 577, 573, 572, 572, 572, 572, 574, 576, 576, 576, 578, 578, 576, 575, 574, 561, 561, 557, 557, 557, 560, 560, 560, 560, 562.5, 564, 565, 565, 566, 566, 567, 568, 568, 569, 569, 570, 570, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 576, 576, 576, 576, 576, 577, 577, 577, 577, 576, 576, 576, 576, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 576, 576, 576, 576, 576, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 583, 583, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 578, 578, 576, 576, 576, 576, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 583, 583, 583, 584, 584, 584, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 589, 589, 589, 589, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 592, 592, 593, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 596, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 603, 603, 603, 603, 602, 602, 602, 602, 603, 604, 604, 605, 605, 605, 605, 605, 606, 606, 606, 607, 607, 607, 607, 608, 608, 608, 609, 609, 609, 609, 609, 609, 610, 610, 610, 610, 610, 610, 610, 610, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, 617, 618, 618, 618, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 615, 614, 612, 612, 612, 612, 612, 612, 612, 612, 611, 611, 610, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 606, 606, 606, 605, 605, 605, 605, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 603, 603, 603, 603, 602, 602, 601, 599, 599, 599, 598, 597, 597, 597, 598, 598, 598, 597, 597, 596, 596, 594, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 592, 592, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 584, 584, 584, 584, 583, 583, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 580, 580, 580, 581, 581, 581, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 578, 579, 579, 579, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 576, 576, 577, 577, 577, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 583, 583, 583, 583, 584, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 589, 589, 591, 591, 591, 589, 589, 589, 591, 591, 591, 593, 593, 591, 589, 589, 562, 562, 562, 562, 562, 563, 563, 563, 563.5, 563.5, 564, 564, 564, 564, 564, 566, 566, 566, 567, 567, 568, 569, 569, 569, 569, 569, 570, 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 580, 580, 580, 580, 580, 579, 579, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 575, 575, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, 573, 574, 574, 574, 574, 574, 574, 574, 574, 573, 571, 571, 571, 571, 571, 571, 572, 572, 572, 571, 571, 570, 570, 570, 570, 570, 570, 571, 571, 571, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 578, 578, 579, 579, 579, 580, 580, 580, 580, 580, 580, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 589, 589, 589, 590, 590, 590, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 585, 585, 585, 585, 584, 584, 583, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 584, 583, 582, 582, 582, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 586, 587, 587, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 593, 593, 593, 593, 595, 596, 596, 596, 596, 596, 596, 596, 597, 597, 598, 599, 599, 599, 599, 599, 599, 600, 600, 601, 601, 601, 601, 602, 603, 603, 604, 604, 604, 605, 605, 605, 606, 607, 607, 607, 608, 608, 610, 610, 610, 610, 611, 611, 611, 611, 612, 612, 612, 613, 613, 614, 615, 615, 615, 615, 615, 617, 618, 619, 620, 620, 623, 624, 624, 624, 624, 625, 625, 625, 625, 628, 628, 628, 628, 628, 629, 629, 629, 629, 634, 634, 635, 637, 638, 639, 641, 641, 643, 643, 644, 644, 648, 648, 648, 644, 644, 644, 648, 649, 649, 566, 565, 561, 559, 559, 563, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 568, 569, 569, 569, 569, 571, 571, 571, 568, 567, 567, 567, 569, 570, 573, 573, 573, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 575, 575, 575, 575, 575, 577, 577, 573, 573, 573, 573, 573, 573, 570, 570, 570, 573, 575, 576, 576, 576, 577, 577, 577, 577, 577, 575, 572, 572, 572, 572, 573, 575, 575, 578, 578, 578, 576, 576, 576, 576, 577, 577, 577, 574, 573, 573, 573, 573, 573, 573, 573, 573, 577, 577, 577, 577, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 574, 574, 574, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 575, 577, 577, 577, 577, 577, 577, 579, 579, 579, 579, 579, 579, 579, 582, 582, 582, 581, 579, 578, 578, 578, 578, 579, 580, 580, 580, 580, 582, 582, 582, 581, 581, 581, 581, 581, 582, 582, 582, 581, 579, 579, 578, 578, 578, 577, 577, 577, 580, 581, 582, 582, 582, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 576, 576, 576, 579, 579, 579, 576, 576, 576, 576, 578, 578, 578, 578, 578, 578, 578, 576, 576, 580, 580, 579, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 573, 573, 573, 573, 573, 577, 577, 577, 577, 577, 575, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 576, 576, 576, 576, 576, 575, 575, 575, 575, 575, 576, 576, 574, 574, 574, 574, 573, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 575, 576, 576, 576, 576, 576, 570, 570, 570, 576, 576, 576, 576, 576, 576, 576, 576, 572, 570, 570, 570, 570, 574, 574, 574, 574, 573, 573, 573, 574, 575, 575, 575, 575, 573, 573, 573, 573, 573, 574, 574, 574, 569, 569, 569, 569, 569, 569, 573, 575, 576, 576, 576, 576, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 572, 572, 574, 574, 574, 572, 572, 572, 572, 572, 572, 572, 574, 574, 574, 574, 575, 575, 576, 576, 576, 576, 572, 572, 572, 574, 574, 574, 575, 575, 575, 577, 577, 577, 577, 575, 575, 575, 573, 573, 573, 573, 576, 576, 576, 576, 574, 574, 574, 575, 575, 575, 575, 575, 575, 578, 578, 578, 578, 576, 576, 576, 574, 574, 574, 574, 575, 582, 582, 582, 574, 572, 572, 574, 574, 576, 576, 576, 576, 576, 576, 576, 576, 576, 574, 572, 572, 573, 577, 577, 577, 577, 578, 579, 579, 579, 579, 580, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 574, 574, 581, 581, 581, 581, 581, 582, 584, 584, 581, 581, 581, 581, 581, 581, 579, 579, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 587, 587, 587, 587, 586, 586, 585, 585, 582, 582, 582, 585, 585, 585, 585, 585, 585, 588, 588, 588, 588, 586, 584, 584, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 589, 589, 589, 589, 589, 593, 593, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 589, 589, 589, 589, 590, 591, 592, 592, 589, 589, 589, 589, 591, 592, 592, 592, 592, 592, 593, 594, 594, 592, 590, 590, 590, 587, 587, 589, 592, 592, 592, 592, 593, 593, 593, 593, 593, 593, 592, 592, 592, 589, 589, 589, 589, 589, 592, 594, 594, 594, 593, 592, 592, 592, 592, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 589, 589, 589, 593, 593, 593, 593, 591, 591, 591, 593, 593, 593, 593, 594, 594, 594, 594, 592, 592, 592, 589, 589, 589, 589, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 591, 591, 590, 590, 590, 590, 589, 589, 589, 589, 589, 595, 595, 593, 588, 588, 589, 589, 589, 589, 592, 592, 592, 592, 592, 592, 593, 593, 593, 592, 590, 590, 589, 589, 585, 585, 585, 591, 591, 591, 591, 591, 591, 589, 588, 588, 588, 588, 588, 588, 588, 590, 592, 592, 592, 592, 591, 587, 587, 587, 587, 588, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 589, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 593, 595, 595, 595, 595, 593, 593, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 597, 597, 597, 598, 598, 596, 596, 594, 593, 593, 593, 597, 597, 597, 597, 601, 601, 601, 601, 601, 601, 601, 601, 601, 603, 603, 603, 603, 603, 603, 606, 606, 606, 606, 609, 609, 609, 609, 609, 609, 609, 609, 611, 613, 613, 613, 613, 613, 614, 615, 619, 619, 619, 619, 620, 620, 620, 620, 620, 622, 623, 623, 624, 624, 625, 625, 626, 626, 627, 627, 627, 628, 628, 629, 629, 630, 632, 633, 633, 633, 634, 637, 638, 639, 639, 640, 641, 642, 643, 644, 645, 645, 645, 646, 646, 648, 648, 649, 652, 652, 652, 654, 654, 656, 656, 656, 657, 658, 661, 662, 662, 664, 664, 664, 664, 664, 666, 667, 667, 668, 669, 670, 671, 672, 675, 677, 679, 681, 682, 683, 683, 687, 687, 690, 690, 694, 696, 696, 696, 698, 699, 700, 700, 701, 704, 704, 707, 707, 709, 710, 711, 713, 717, 720, 721, 721, 727, 730, 730, 732, 733, 738, 738, 746, 746, 746, 747, 751, 752, 753, 754, 757, 757, 758, 758, 759, 760, 760, 760, 762, 764, 765, 767, 773, 773, 780, 780, 782, 783, 785, 787, 788, 790, 799, 801, 809, 809, 809, 806, 806, 806, 825, 825, 825, 825, 571, 571, 567, 567, 567, 567, 568, 569, 569, 569, 569, 569, 569, 573, 575, 576, 576, 576, 576, 574, 574, 574, 578, 578, 578, 576, 576, 576, 577, 579, 579, 579, 579, 577, 577, 577, 577, 578, 578, 578, 574, 574, 574, 577, 579, 579, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 580, 580, 581, 590, 609, 671, 671, 671, 601, 601, 580, 580, 580, 580, 580, 580, 579, 579, 577, 577, 575, 575, 575, 576, 577, 580, 582, 582, 582, 581, 581, 580, 580, 578, 578, 578, 578, 578, 579, 580, 580, 580, 580, 580, 578, 578, 579, 580, 580, 581, 581, 581, 581, 579, 578, 578, 578, 578, 578, 578, 578, 576, 576, 578, 578, 578, 578, 580, 581, 581, 581, 580, 578, 577, 577, 579, 580, 581, 581, 581, 580, 580, 580, 580, 580, 581, 582, 582, 582, 582, 582, 582, 584, 584, 584, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 580, 580, 580, 582, 584, 586, 586, 586, 583, 582, 582, 582, 584, 584, 584, 587, 587, 587, 583, 583, 583, 581, 581, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 585, 585, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 579, 579, 579, 579, 579, 582, 582, 582, 582, 582, 582, 581, 581, 581, 584, 584, 584, 584, 581, 581, 581, 583, 583, 586, 586, 586, 584, 583, 583, 583, 583, 583, 581, 581, 581, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 582, 582, 582, 582, 584, 584, 584, 578, 576, 576, 576, 576, 580, 580, 580, 577, 577, 577, 577, 578, 580, 582, 582, 580, 579, 579, 580, 581, 581, 581, 581, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 577, 577, 577, 577, 576, 576, 579, 579, 582, 582, 582, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 581, 581, 581, 581, 581, 580, 577, 577, 577, 577, 582, 582, 582, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 581, 583, 583, 578, 578, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 579, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 580, 580, 580, 580, 584, 584, 584, 584, 583, 582, 582, 582, 585, 585, 585, 585, 585, 583, 581, 581, 581, 581, 582, 582, 580, 580, 580, 580, 579, 579, 579, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 583, 583, 581, 581, 583, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 579, 579, 579, 581, 582, 583, 583, 583, 582, 582, 582, 582, 582, 582, 584, 584, 582, 582, 581, 581, 580, 580, 580, 583, 584, 584, 586, 586, 586, 588, 588, 592, 592, 592, 586, 585, 585, 587, 590, 591, 591, 590, 589, 589, 587, 587, 583, 582, 584, 588, 590, 590, 593, 593, 593, 587, 587, 587, 588, 588, 588, 587, 587, 587, 587, 587, 587, 588, 590, 590, 590, 590, 590, 590, 592, 592, 592, 592, 592, 592, 592, 591, 589, 589, 589, 592, 592, 594, 594, 592, 592, 592, 592, 593, 594, 594, 594, 594, 594, 594, 594, 594, 594, 601, 602, 602, 602, 599, 599, 599, 599, 596, 596, 596, 601, 601, 601, 601, 597, 597, 596, 596, 596, 601, 601, 601, 600, 599, 599, 602, 605, 605, 605, 605, 604, 603, 603, 603, 603, 606, 608, 608, 608, 606, 600, 599, 599, 601, 603, 603, 603, 603, 603, 603, 603, 603, 603, 605, 605, 607, 610, 610, 610, 609, 609, 609, 603, 603, 603, 603, 604, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 606, 608, 608, 608, 608, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 608, 609, 609, 607, 606, 606, 606, 606, 607, 608, 609, 613, 613, 609, 609, 609, 609, 609, 609, 608, 607, 606, 606, 609, 609, 609, 609, 609, 609, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 610, 610, 610, 607, 607, 608, 608, 608, 608, 610, 613, 613, 616, 616, 616, 616, 614, 614, 614, 614, 610, 610, 610, 614, 614, 614, 614, 615, 615, 615, 615, 615, 615, 613, 612, 612, 612, 612, 615, 615, 615, 614, 616, 616, 620, 620, 621, 620, 620, 620, 620, 621, 621, 621, 621, 620, 619, 619, 619, 619, 619, 621, 621, 623, 623, 624, 624, 624, 624, 624, 624, 624, 625, 625, 625, 625, 624, 624, 624, 624, 625, 625, 625, 625, 631, 633, 633, 633, 633, 629, 629, 630, 630, 630, 630, 630, 635, 636, 636, 636, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 648, 648, 648, 648, 648, 647, 647, 647, 647, 647, 650, 650, 650, 650, 652, 657, 661, 661, 661, 656, 656, 656, 666, 669, 670, 670, 670, 668, 668, 683, 683, 683, 683, 680, 680, 680, 680, 685, 685, 685, 689, 689, 689, 689, 694, 698, 701, 701, 701, 702, 702, 702, 702, 706, 713, 714, 714, 714, 714, 714, 718, 718, 718, 723, 723, 723, 723, 731, 733, 737, 742, 742, 742, 742, 749, 755, 755, 755, 758, 762, 762, 765, 766, 768, 768, 768, 768, 773, 773, 773, 773, 786, 791, 791, 793, 799, 801, 804, 804, 805, 810, 810, 812, 817, 824, 824, 830, 830, 831, 835, 842, 844, 854, 854, 855, 861, 862, 863, 869, 873, 874, 875, 875, 875, 876, 885, 890, 892, 894, 899, 911, 916, 917, 918, 926, 926, 937, 938, 943, 944, 957, 958, 962, 962, 962, 962, 964, 974, 975, 981, 984, 989, 998, 1002, 1008, 1010, 1018, 1020, 1021, 1025, 1028, 1029, 1042, 1045, 1046, 1051, 1059, 1063, 1066, 1078, 1085, 1086, 1096, 1098, 1112, 1114, 1115, 1119, 1121, 1126, 1139, 1142, 1157, 1164, 1165, 1169, 1171, 1195, 1197, 1199, 1199, 1209, 1210, 1225, 1225, 1227, 1242, 1242, 1242, 1245, 1254, 1254, 1264, 1286, 1286, 1286, 1299, 1305, 1324, 1326, 1330, 587, 586, 583, 581, 580, 580, 583, 586, 586, 586, 586, 586, 584, 584, 584, 588, 588, 588, 590, 590, 590, 590, 593, 593, 594, 594, 596, 596, 596, 598, 602, 603, 599, 591, 591, 591, 591, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 588, 588, 588, 588, 589, 589, 589, 588, 588, 587, 587, 587, 588, 588, 588, 588, 587, 587, 587, 591, 591, 591, 589, 589, 589, 589, 589, 595, 595, 587, 587, 591, 591, 591, 591, 591, 593, 593, 593, 593, 593, 593, 590, 589, 589, 589, 594, 594, 594, 594, 593, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 589, 589, 589, 595, 595, 595, 594, 594, 594, 594, 591, 591, 591, 591, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 592, 592, 593, 593, 593, 590, 590, 590, 590, 592, 593, 593, 593, 593, 593, 592, 590, 590, 596, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 592, 592, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 595, 594, 594, 593, 593, 592, 592, 592, 594, 594, 594, 594, 594, 596, 596, 596, 596, 596, 596, 593, 593, 593, 603, 603, 598, 598, 598, 595, 595, 595, 595, 593, 593, 594, 594, 594, 594, 594, 595, 598, 598, 598, 597, 597, 597, 597, 597, 596, 596, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 594, 594, 595, 594, 592, 592, 592, 592, 594, 594, 594, 594, 597, 597, 597, 594, 592, 592, 592, 592, 596, 596, 596, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 595, 595, 596, 596, 598, 598, 596, 594, 594, 594, 594, 594, 594, 595, 600, 600, 596, 595, 594, 593, 591, 591, 592, 593, 593, 593, 593, 593, 593, 593, 593, 592, 592, 592, 592, 593, 593, 596, 596, 595, 595, 595, 595, 595, 594, 594, 594, 597, 597, 597, 596, 596, 596, 594, 593, 593, 593, 594, 594, 594, 594, 595, 596, 596, 596, 596, 596, 597, 597, 597, 597, 596, 596, 596, 596, 596, 595, 593, 593, 593, 593, 593, 594, 596, 596, 596, 596, 596, 596, 596, 596, 594, 594, 594, 594, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 597, 596, 596, 596, 598, 598, 598, 598, 598, 596, 594, 594, 597, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 600, 600, 597, 597, 597, 597, 597, 597, 597, 600, 602, 602, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 602, 602, 599, 599, 599, 604, 604, 604, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 600, 600, 600, 601, 605, 605, 605, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 607, 607, 607, 607, 606, 606, 606, 607, 607, 607, 607, 607, 607, 605, 605, 605, 605, 607, 607, 607, 607, 608, 608, 608, 609, 609, 611, 612, 612, 612, 607, 607, 607, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 610, 610, 610, 610, 610, 613, 613, 613, 613, 614, 614, 614, 614, 614, 615, 615, 615, 615, 615, 615, 614, 613, 613, 615, 617, 620, 620, 618, 616, 614, 614, 617, 622, 622, 618, 616, 616, 616, 617, 618, 618, 620, 620, 623, 623, 623, 623, 623, 623, 624, 698, 803, 859, 747, 635, 635, 623, 623, 623, 623, 624, 626, 626, 626, 626, 624, 621, 621, 621, 620, 620, 620, 625, 625, 625, 625, 625, 625, 623, 623, 623, 623, 625, 630, 630, 630, 629, 629, 629, 629, 625, 625, 627, 629, 629, 631, 631, 628, 626, 626, 626, 626, 626, 628, 628, 630, 630, 631, 631, 631, 631, 633, 633, 633, 633, 632, 631, 631, 635, 637, 637, 637, 637, 637, 639, 639, 641, 642, 642, 638, 638, 633, 633, 633, 633, 634, 638, 638, 638, 638, 643, 643, 643, 643, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 641, 641, 641, 645, 645, 645, 645, 645, 645, 649, 649, 649, 649, 649, 649, 649, 649, 649, 651, 653, 653, 656, 662, 663, 662, 656, 656, 656, 656, 660, 660, 660, 662, 663, 663, 658, 654, 654, 654, 666, 666, 666, 662, 662, 662, 662, 662, 662, 667, 667, 667, 667, 670, 670, 670, 670, 673, 675, 676, 676, 676, 676, 676, 676, 679, 679, 681, 686, 686, 686, 686, 686, 691, 691, 691, 688, 688, 688, 693, 693, 699, 699, 699, 699, 700, 703, 706, 708, 712, 712, 713, 713, 717, 717, 718, 718, 718, 721, 732, 732, 732, 732, 733, 733, 733, 733, 737, 737, 731, 731, 731, 731, 742, 742, 742, 746, 746, 752, 755, 757, 760, 763, 764, 764, 764, 768, 768, 775, 779, 779, 779, 780, 780, 782, 786, 787, 788, 791, 799, 799, 802, 802, 807, 807, 808, 811, 811, 816, 816, 826, 826, 826, 830, 833, 842, 847, 849, 856, 858, 858, 861, 861, 863, 872, 877, 881, 883, 883, 887, 905, 905, 907, 912, 925, 925, 925, 926, 926, 931, 952, 952, 955, 956, 963, 966, 966, 977, 991, 992, 996, 996, 1005, 1016, 1017, 1017, 1019, 1019, 1040, 1040, 1046, 1046, 1047, 1063, 1063, 1063, 1078, 1087, 1088, 1112, 1116, 1122, 1122, 1122, 1123, 1142, 1147, 1148, 1155, 1164, 1175, 1186, 1192, 1192, 1201, 1208, 1208, 1215, 1232, 1241, 1244, 1256, 1261, 1270, 1272, 1279, 1282, 1292, 1312, 1322, 1339, 1339, 1339, 1339, 1342, 1346, 1372, 1382, 1388, 1389, 1404, 1414, 1418, 1429, 1446, 1450, 1457, 1457, 1480, 1491, 1499, 1499, 1519, 1540, 1549, 1551, 1560, 1561, 1601, 1606, 1606, 1606, 1627, 1632, 1633, 1671, 1677, 1682, 1702, 1727, 1727, 1732, 1734, 1734, 1761, 1788, 1794, 1798, 1822, 1831, 1843, 1848, 1851, 1871, 1907, 1907, 1907, 1918, 1939, 1959, 1966, 1966, 1990, 2014, 2030, 2050, 2052, 2055, 2080, 2103, 2110, 2142, 2143, 2179, 2242, 2242, 2244, 2244, 2244, 2247, 2273, 2288, 2307, 2318, 2344, 2353, 2357, 2377, 2406, 2418, 2453, 2456, 2471, 2507, 2518, 2523, 2571, 2573, 2579, 2609, 2625, 2644, 2670, 2690, 2690, 623, 623, 623, 621, 613, 613, 613, 613, 615, 615, 619, 622, 622, 622, 622, 622, 619, 619, 619, 618, 618, 618, 619, 619, 619, 619, 621, 621, 621, 621, 622, 622, 622, 622, 621, 621, 619, 619, 617, 617, 617, 617, 615, 615, 615, 615, 620, 621, 623, 623, 623, 622, 621, 621, 619, 619, 619, 619, 619, 619, 620, 620, 620, 620, 620, 620, 620, 622, 622, 622, 618, 618, 618, 617, 617, 619, 619, 619, 619, 618, 618, 618, 618, 618, 621, 621, 615, 615, 614, 614, 614, 618, 618, 619, 619, 619, 619, 619, 619, 619, 619, 619, 618, 618, 618, 618, 618, 618, 619, 621, 622, 622, 622, 622, 621, 620, 620, 620, 620, 620, 620, 620, 618, 618, 618, 618, 620, 620, 620, 619, 619, 619, 619, 621, 625, 625, 621, 619, 619, 617, 617, 617, 617, 622, 627, 627, 625, 625, 625, 618, 618, 617, 619, 620, 622, 624, 624, 625, 626, 626, 626, 622, 622, 622, 622, 622, 622, 622, 622, 622, 623, 623, 623, 627, 627, 627, 627, 626, 626, 626, 626, 626, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 624, 624, 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 625, 628, 628, 628, 628, 628, 628, 627, 627, 627, 627, 627, 627, 627, 627, 628, 628, 628, 629, 629, 629, 629, 629, 631, 631, 626, 626, 626, 626, 630, 630, 626, 624, 624, 624, 625, 625, 625, 625, 625, 625, 625, 625, 628, 628, 628, 628, 625, 625, 633, 633, 633, 628, 628, 628, 628, 628, 628, 631, 631, 629, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 625, 625, 625, 627, 629, 631, 633, 633, 636, 636, 637, 635, 633, 633, 630, 625, 625, 625, 625, 625, 625, 625, 630, 631, 631, 631, 631, 631, 631, 630, 630, 631, 631, 631, 631, 631, 631, 628, 628, 628, 631, 635, 635, 633, 631, 629, 628, 628, 628, 628, 628, 628, 628, 632, 632, 635, 635, 635, 631, 631, 630, 630, 630, 630, 630, 630, 636, 638, 638, 638, 638, 635, 635, 634, 634, 634, 634, 634, 636, 636, 633, 633, 635, 635, 635, 635, 636, 637, 637, 637, 637, 634, 634, 634, 637, 637, 637, 636, 636, 636, 636, 636, 636, 636, 635, 635, 635, 635, 635, 636, 638, 638, 638, 638, 638, 634, 631, 631, 639, 639, 639, 639, 639, 639, 641, 641, 641, 641, 641, 644, 644, 644, 644, 642, 641, 641, 641, 641, 642, 642, 642, 642, 638, 637, 637, 640, 647, 647, 647, 647, 640, 640, 640, 640, 642, 645, 645, 645, 645, 645, 645, 643, 643, 643, 644, 644, 645, 645, 645, 645, 651, 653, 653, 646, 646, 646, 646, 646, 648, 650, 650, 650, 650, 650, 650, 652, 654, 654, 654, 652, 652, 651, 651, 651, 655, 655, 655, 655, 650, 650, 650, 650, 650, 653, 653, 653, 653, 653, 653, 653, 653, 653, 654, 654, 655, 655, 655, 655, 658, 658, 658, 658, 661, 667, 667, 662, 655, 655, 655, 655, 660, 661, 661, 661, 661, 660, 660, 660, 659, 659, 659, 659, 659, 664, 664, 664, 664, 663, 663, 663, 663, 661, 661, 661, 673, 675, 672, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 669, 669, 669, 671, 671, 671, 671, 675, 675, 675, 675, 669, 669, 669, 669, 673, 676, 677, 677, 677, 677, 677, 677, 679, 681, 681, 681, 681, 680, 679, 679, 679, 679, 679, 679, 679, 680, 683, 684, 685, 686, 688, 712, 712, 712, 712, 686, 686, 686, 686, 686, 692, 692, 694, 694, 691, 691, 691, 691, 691, 691, 687, 687, 687, 687, 694, 694, 694, 694, 694, 696, 699, 699, 699, 699, 694, 694, 700, 705, 705, 703, 697, 697, 697, 697, 710, 710, 709, 708, 708, 708, 708, 712, 720, 725, 724, 714, 714, 714, 716, 723, 723, 715, 715, 715, 715, 716, 719, 719, 720, 723, 727, 738, 738, 738, 725, 725, 725, 726, 730, 730, 731, 731, 734, 735, 735, 735, 736, 742, 742, 744, 744, 744, 744, 748, 748, 748, 748, 748, 751, 751, 754, 757, 757, 763, 763, 763, 763, 763, 770, 770, 770, 772, 773, 780, 780, 780, 780, 781, 784, 793, 793, 797, 797, 797, 799, 799, 799, 800, 810, 811, 811, 811, 813, 819, 822, 825, 831, 836, 851, 851, 832, 832, 852, 852, 852, 852, 852, 855, 855, 856, 862, 863, 865, 867, 873, 878, 879, 880, 884, 896, 896, 898, 910, 911, 918, 922, 932, 941, 941, 941, 941, 941, 941, 942, 944, 953, 953, 956, 962, 968, 972, 973, 975, 983, 985, 987, 995, 995, 1002, 1009, 1014, 1014, 1018, 1019, 1024, 1036, 1044, 1046, 1052, 1064, 1068, 1071, 1072, 1077, 1086, 1087, 1098, 1098, 1103, 1107, 1118, 1129, 1129, 1129, 1130, 1130, 1150, 1163, 1164, 1166, 1166, 1185, 1196, 1210, 1212, 1214, 1214, 1214, 1232, 1243, 1246, 1260, 1266, 1268, 1268, 1268, 1281, 1297, 1309, 1321, 1328, 1342, 1342, 1362, 1366, 1396, 1406, 1406, 1409, 1415, 1447, 1447, 1454, 1457, 1469, 1491, 1494, 1511, 1539, 1544, 1555, 1559, 1591, 1611, 1611, 1623, 1637, 1659, 1670, 1679, 1692, 1696, 1704, 1733, 1760, 1762, 1780, 1791, 1794, 1813, 1831, 1847, 1864, 1872, 1889, 1924, 1926, 1941, 1960, 1963, 1987, 2010, 2016, 2029, 2042, 2071, 2084, 2103, 2118, 2127, 2173, 2173, 2175, 2221, 2233, 2244, 2276, 2276, 2289, 2325, 2357, 2365, 2387, 2396, 2419, 2426, 2456, 2474, 2498, 2516, 2539, 2568, 2580, 2621, 2633, 2644, 2658, 2658, 2691, 2736, 2765, 2792, 2809, 2832, 2852, 2866, 2898, 2924, 2980, 2991, 3002, 3002, 3019, 3063, 3081, 3112, 3153, 3176, 3195, 3208, 3256, 3265, 3290, 3336, 3375, 3396, 3411, 3476, 3476, 3477, 3542, 3581, 3609, 3609, 3622, 3703, 3706, 3760, 3763, 3799, 3835, 3869, 3897, 3944, 3967, 3972, 3973, 4075, 4087, 4115, 4147, 4165, 4219, 4258, 4259, 4333, 4393, 4413, 4423, 4494, 4517, 4518, 4556, 4613, 4685, 4716, 4778, 4786, 4820, 4887, 4892, 4938, 4990, 5020, 5080, 5107, 5191, 5203, 5263, 5267, 5300, 5379, 5426, 5457, 5478, 5551, 5584, 5638, 5746, 5832, 5832, 5871, 5871, 5940, 5969, 5988, 6103, 6128, 6138, 690, 686, 684, 684, 684, 684, 684, 687, 687, 687, 687, 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 687, 687, 687, 687, 687, 687, 684, 684, 684, 684, 687, 687, 687, 687, 687, 687, 687, 690, 690, 690, 690, 686, 682, 681, 681, 681, 684, 684, 684, 684, 684, 684, 684, 684, 687, 687, 687, 687, 685, 685, 681, 681, 680, 680, 680, 683, 683, 683, 682, 682, 682, 682, 683, 685, 685, 685, 681, 681, 681, 681, 679, 679, 679, 679, 679, 679, 679, 679, 679, 680, 680, 680, 679, 679, 679, 679, 681, 682, 682, 686, 688, 688, 688, 681, 681, 681, 681, 681, 683, 683, 683, 683, 683, 685, 685, 685, 677, 677, 677, 677, 679, 679, 679, 684, 685, 685, 685, 685, 685, 686, 686, 686, 686, 686, 686, 686, 685, 685, 685, 685, 685, 685, 685, 685, 686, 686, 686, 687, 687, 687, 687, 687, 689, 689, 689, 689, 689, 689, 688, 683, 683, 683, 683, 683, 686, 686, 689, 690, 690, 690, 690, 690, 687, 687, 689, 689, 692, 692, 692, 692, 692, 691, 689, 689, 691, 691, 691, 691, 691, 693, 693, 693, 693, 693, 695, 698, 698, 698, 697, 695, 695, 695, 695, 694, 694, 694, 696, 696, 696, 694, 694, 694, 694, 695, 695, 695, 695, 695, 690, 690, 697, 697, 697, 697, 698, 698, 699, 699, 699, 699, 699, 696, 696, 696, 696, 696, 702, 702, 702, 702, 701, 701, 701, 701, 701, 701, 701, 699, 697, 697, 697, 697, 697, 697, 698, 698, 698, 698, 698, 704, 704, 704, 704, 704, 704, 704, 700, 700, 700, 700, 700, 698, 698, 698, 700, 703, 703, 706, 706, 706, 706, 710, 710, 706, 706, 706, 706, 705, 704, 704, 704, 704, 704, 704, 710, 710, 704, 703, 703, 703, 703, 703, 705, 705, 705, 712, 712, 712, 711, 711, 706, 706, 709, 709, 706, 706, 709, 709, 707, 707, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 705, 705, 706, 709, 710, 711, 711, 711, 711, 711, 711, 711, 707, 707, 714, 715, 715, 715, 715, 715, 714, 714, 714, 714, 715, 715, 715, 717, 717, 717, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 715, 715, 715, 716, 719, 719, 717, 717, 717, 717, 723, 724, 735, 735, 722, 722, 722, 722, 725, 726, 726, 726, 724, 722, 722, 722, 728, 729, 729, 729, 729, 729, 729, 729, 729, 730, 733, 733, 733, 733, 733, 733, 732, 732, 732, 732, 731, 731, 731, 731, 731, 731, 733, 733, 733, 733, 734, 737, 737, 737, 737, 732, 732, 732, 732, 735, 745, 745, 747, 747, 747, 740, 740, 740, 740, 750, 750, 750, 747, 747, 746, 746, 746, 746, 736, 736, 739, 744, 744, 745, 745, 746, 748, 753, 753, 749, 747, 744, 743, 743, 746, 751, 751, 753, 753, 755, 755, 755, 755, 755, 755, 755, 755, 760, 760, 760, 757, 757, 762, 762, 762, 762, 762, 762, 760, 760, 760, 760, 760, 760, 760, 759, 759, 759, 763, 765, 766, 766, 766, 766, 766, 766, 766, 766, 774, 774, 774, 774, 774, 774, 772, 772, 772, 772, 772, 772, 772, 776, 776, 776, 776, 780, 780, 780, 778, 776, 776, 776, 776, 780, 780, 780, 786, 787, 787, 794, 795, 795, 795, 788, 788, 788, 788, 788, 788, 794, 798, 798, 806, 806, 806, 805, 796, 796, 796, 798, 800, 801, 801, 801, 799, 799, 799, 806, 809, 809, 809, 813, 813, 813, 815, 815, 815, 812, 812, 812, 818, 819, 821, 821, 822, 822, 823, 823, 823, 829, 837, 837, 834, 830, 830, 829, 829, 829, 832, 841, 841, 841, 841, 845, 845, 846, 846, 846, 845, 845, 846, 853, 853, 855, 856, 861, 863, 863, 863, 863, 863, 866, 866, 866, 876, 877, 881, 883, 883, 883, 881, 881, 881, 895, 895, 895, 895, 897, 901, 906, 906, 907, 909, 917, 920, 921, 926, 931, 933, 933, 937, 938, 938, 940, 944, 948, 948, 948, 948, 959, 963, 964, 964, 972, 974, 975, 978, 978, 980, 981, 993, 994, 1002, 1002, 1005, 1005, 1008, 1009, 1011, 1012, 1023, 1035, 1039, 1039, 1044, 1044, 1054, 1054, 1063, 1063, 1063, 1068, 1069, 1082, 1085, 1085, 1085, 1094, 1105, 1118, 1128, 1128, 1134, 1134, 1135, 1150, 1155, 1155, 1165, 1169, 1169, 1170, 1198, 1206, 1206, 1205, 1205, 1205, 1232, 1232, 1232, 1241, 1241, 1249, 1267, 1269, 1274, 1286, 1288, 1315, 1315, 1326, 1326, 1341, 1342, 1347, 1354, 1356, 1366, 1374, 1408, 1408, 1419, 1420, 1426, 1450, 1450, 1456, 1456, 1479, 1488, 1494, 1502, 1513, 1523, 1543, 1545, 1545, 1556, 1569, 1592, 1593, 1604, 1631, 1639, 1660, 1665, 1678, 1691, 1701, 1739, 1739, 1739, 1750, 1767, 1778, 1794, 1804, 1806, 1817, 1824, 1850, 1866, 1875, 1905, 1914, 1919, 1930, 1930, 1947, 1991, 1996, 2000, 2033, 2046, 2071, 2071, 2073, 2083, 2136, 2150, 2163, 2181, 2183, 2202, 2227, 2237, 2244, 2254, 2312, 2312, 2350, 2360, 2389, 2391, 2391, 2450, 2477, 2481, 2519, 2527, 2558, 2593, 2597, 2635, 2663, 2673, 2704, 2709, 2774, 2777, 2812, 2828, 2886, 2903, 2927, 2939, 2990, 3064, 3069, 3071, 3117, 3153, 3197, 3244, 3261, 3284, 3325, 3363, 3423, 3468, 3486, 3500, 3551, 3596, 3627, 3682, 3692, 3719, 3780, 3785, 3850, 3907, 3913, 3970, 4009, 4061, 4121, 4180, 4180, 4199, 4199, 4259, 4339, 4378, 4404, 4423, 4516, 4542, 4580, 4582, 4686, 4704, 4773, 4775, 4849, 4892, 4944, 4964, 5008, 5118, 5128, 5168, 5175, 5267, 5356, 5358, 5420, 5489, 5529, 5562, 5618, 5672, 5727, 5789, 5813, 5872, 5941, 5971, 6009, 6097, 6098, 6263, 6269, 6346, 6408, 6431, 6450, 6616, 7069, 7069, 7069, 6952, 6952, 6952, 6987, 7055, 7114, 7231, 7242, 7296, 7309, 7366, 7538, 7577, 7629, 7706, 7784, 7810, 7864, 7942, 7963, 8077, 8195, 8280, 8353, 8418, 8424, 8516, 8563, 8692, 8769, 8856, 8929, 9014, 9063, 9122, 9138, 9282, 9387, 9455, 9564, 9631, 9709, 9851, 9852, 9905, 10031, 10156, 10228, 10330, 10381, 10451, 10606, 10647, 10661, 10878, 10886, 11042, 11177, 11279, 11291, 11403, 11488, 11617, 11714, 11869, 11955, 12029, 12089, 12288, 12338, 12414, 12526, 12678, 12708, 12790, 12950, 13142, 13240, 13256, 13403, 13556, 13563, 13719, 13911, 13964, 14027, 14112, 14255, 14419, 828, 828, 851, 851, 826, 826, 826, 825, 825, 825, 829, 829, 829, 829, 818, 818, 818, 818, 820, 820, 820, 820, 818, 817, 817, 817, 816, 816, 816, 824, 824, 823, 823, 823, 823, 821, 818, 818, 818, 818, 818, 817, 813, 813, 813, 813, 813, 815, 815, 815, 815, 814, 812, 808, 808, 808, 812, 812, 812, 812, 807, 807, 807, 807, 808, 808, 808, 808, 808, 808, 815, 830, 830, 814, 806, 804, 800, 800, 799, 799, 799, 799, 809, 809, 809, 806, 806, 806, 806, 808, 808, 808, 807, 800, 800, 800, 802, 805, 805, 805, 805, 804, 804, 804, 804, 808, 811, 811, 810, 810, 810, 810, 810, 810, 812, 813, 812, 812, 812, 812, 811, 811, 811, 811, 811, 817, 819, 819, 817, 813, 812, 812, 813, 814, 814, 814, 814, 815, 816, 817, 817, 817, 817, 817, 817, 817, 817, 819, 819, 819, 819, 813, 813, 813, 816, 821, 821, 821, 819, 819, 819, 819, 819, 816, 816, 816, 819, 820, 820, 822, 826, 826, 827, 827, 827, 828, 828, 828, 826, 826, 826, 826, 832, 832, 832, 831, 821, 821, 830, 830, 830, 828, 827, 826, 826, 826, 833, 833, 833, 833, 838, 838, 840, 846, 846, 844, 833, 833, 828, 828, 828, 833, 835, 836, 836, 836, 836, 834, 834, 834, 834, 839, 839, 840, 840, 840, 843, 843, 843, 842, 842, 842, 842, 846, 846, 846, 846, 836, 836, 836, 836, 837, 837, 837, 837, 837, 837, 837, 843, 847, 848, 848, 848, 848, 848, 848, 848, 849, 854, 854, 854, 852, 848, 848, 848, 849, 855, 855, 855, 854, 852, 848, 848, 848, 850, 850, 850, 850, 852, 852, 854, 854, 854, 854, 854, 854, 856, 856, 856, 859, 859, 859, 859, 859, 851, 851, 851, 851, 860, 865, 865, 865, 865, 858, 858, 859, 862, 862, 862, 863, 863, 863, 853, 853, 853, 853, 862, 862, 862, 862, 862, 864, 867, 867, 866, 866, 866, 865, 865, 865, 867, 867, 867, 875, 1101, 1101, 869, 869, 867, 867, 861, 861, 863, 868, 870, 872, 872, 872, 876, 876, 876, 876, 878, 878, 878, 875, 875, 875, 875, 879, 880, 880, 880, 880, 880, 875, 875, 875, 873, 873, 885, 885, 885, 885, 885, 885, 885, 885, 888, 888, 888, 888, 881, 881, 881, 884, 891, 894, 908, 908, 897, 897, 897, 897, 897, 897, 896, 896, 898, 898, 898, 899, 899, 899, 896, 896, 896, 898, 906, 906, 906, 910, 915, 915, 915, 913, 911, 911, 913, 917, 917, 917, 918, 918, 918, 918, 919, 919, 919, 925, 926, 926, 926, 928, 928, 928, 928, 924, 924, 924, 926, 939, 939, 933, 931, 931, 931, 932, 934, 938, 940, 940, 940, 940, 940, 945, 945, 945, 945, 945, 945, 949, 949, 949, 949, 949, 949, 950, 955, 965, 965, 965, 965, 965, 960, 960, 960, 971, 971, 971, 963, 963, 963, 965, 965, 966, 966, 966, 966, 968, 971, 973, 973, 972, 968, 968, 968, 979, 979, 978, 978, 978, 978, 987, 987, 989, 989, 989, 983, 983, 983, 983, 984, 984, 985, 985, 989, 994, 997, 998, 998, 998, 1005, 1005, 1005, 1003, 1003, 1003, 1006, 1006, 1006, 1010, 1012, 1012, 1013, 1013, 1015, 1015, 1015, 1015, 1019, 1024, 1024, 1025, 1028, 1032, 1032, 1032, 1032, 1032, 1033, 1033, 1033, 1038, 1047, 1047, 1046, 1047, 1047, 1047, 1052, 1052, 1056, 1056, 1056, 1056, 1056, 1056, 1075, 1075, 1075, 1074, 1074, 1074, 1084, 1084, 1090, 1090, 1090, 1089, 1089, 1089, 1093, 1101, 1132, 1132, 1109, 1109, 1109, 1147, 1147, 1146, 1112, 1112, 1112, 1119, 1130, 1132, 1132, 1136, 1134, 1142, 1142, 1142, 1142, 1144, 1160, 1160, 1164, 1172, 1172, 1172, 1165, 1164, 1173, 1177, 1180, 1180, 1186, 1197, 1197, 1202, 1202, 1214, 1214, 1218, 1228, 1228, 1229, 1229, 1230, 1240, 1245, 1258, 1289, 1293, 1293, 1293, 1293, 1289, 1289, 1289, 1289, 1292, 1298, 1310, 1310, 1317, 1324, 1338, 1342, 1342, 1346, 1346, 1355, 1355, 1374, 1374, 1374, 1387, 1389, 1405, 1405, 1405, 1429, 1431, 1440, 1440, 1440, 1459, 1471, 1475, 1482, 1486, 1489, 1502, 1529, 1529, 1529, 1542, 1634, 1634, 1589, 1589, 1589, 1589, 1603, 1609, 1620, 1633, 1644, 1644, 1670, 1673, 1695, 1696, 1704, 1704, 1731, 1733, 1763, 1763, 1777, 1787, 1791, 1809, 1814, 1828, 1858, 1859, 1877, 1893, 1898, 1900, 1917, 1933, 1969, 1970, 1990, 1992, 2027, 2055, 2111, 2114, 2114, 2114, 2114, 2114, 2147, 2159, 2163, 2189, 2189, 2219, 2242, 2256, 2284, 2288, 2301, 2356, 2367, 2389, 2441, 2441, 2453, 2453, 2478, 2490, 2519, 2533, 2567, 2583, 2589, 2630, 2644, 2645, 2674, 2733, 2748, 2772, 2780, 2812, 2872, 2877, 2894, 2932, 2944, 2964, 2993, 3040, 3096, 3113, 3125, 3130, 3161, 3204, 3217, 3275, 3307, 3317, 3352, 3382, 3400, 3464, 3498, 3508, 3558, 3586, 3590, 3637, 3672, 3742, 3821, 3821, 3833, 3833, 3895, 3924, 3928, 3989, 4025, 4058, 4112, 4143, 4153, 4202, 4251, 4288, 4355, 4394, 4394, 4462, 4469, 4471, 4536, 4592, 4645, 4701, 4731, 4797, 4806, 4888, 4915, 4943, 4977, 5057, 5102, 5161, 5223, 5255, 5292, 5386, 5399, 5505, 5534, 5615, 5674, 5741, 5762, 5856, 5920, 6016, 6049, 6124, 6200, 6296, 6307, 6417, 6476, 6581, 6711, 6733, 6831, 6890, 6921, 7033, 7180, 7234, 7295, 7372, 7478, 7593, 7718, 7752, 7886, 7968, 8047, 8084, 8253, 8307, 8386, 8445, 8500, 8652, 8776, 8816, 8949, 9010, 9118, 9198, 9329, 9394, 9527, 9614, 9666, 9797, 9875, 9983, 10008, 10197, 10270, 10428, 10503, 10672, 10681, 10821, 10940, 11021, 11157, 11186, 11416, 11501, 11560, 11756, 11768, 11907, 12090, 12233, 12242, 12459, 12513, 12606, 12863, 12863, 12959, 13173, 13233, 13316, 13502, 13593, 13704, 13790, 13963, 14031, 14263, 14380, 14504, 14684, 14778, 15165, 15165, 15301, 15466, 15474, 15719, 15775, 15929, 15991, 16132, 16339, 16516, 16732, 16898, 16914, 17090, 17178, 17284, 17664, 17755, 17893, 18094, 18227, 18344, 18474, 18650, 18733, 19017, 19122, 19352, 19459, 19711, 19818, 19932, 20133, 20253, 20571, 20693, 20915, 21093, 21157, 21249, 21437, 21640, 21852, 22113, 22635, 22748, 22748, 22823, 22868, 23171, 23470, 23651, 23827, 24001, 24257, 24399, 24566, 24845, 25078, 25414, 25582, 25787, 25913, 26151, 26376, 26543, 26767, 26968, 27204, 27457, 27670, 27859, 28141, 28388, 28439, 28752, 29112, 29291, 29522, 29819, 30054, 30322, 30510, 30797, 30962, 31063, 31353, 31610, 31912, 32174, 32509, 32750, 33016, 1128, 1110, 1100, 1100, 1095, 1095, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1092, 1092, 1092, 1092, 1091, 1078, 1077, 1077, 1082, 1082, 1082, 1078, 1078, 1078, 1080, 1080, 1080, 1080, 1080, 1078, 1079, 1077, 1077, 1074, 1068, 1068, 1068, 1086, 1102, 1102, 1081, 1068, 1068, 1068, 1068, 1073, 1147, 1167, 1167, 1095, 1059, 1057, 1057, 1057, 1060, 1060, 1060, 1060, 1057, 1053, 1053, 1053, 1051, 1051, 1051, 1051, 1049, 1049, 1049, 1049, 1047, 1047, 1047, 1047, 1045, 1045, 1045, 1045, 1044, 1044, 1044, 1044, 1048, 1048, 1048, 1043, 1043, 1043, 1041, 1041, 1041, 1041, 1045, 1049, 1051, 1051, 1050, 1050, 1046, 1042, 1041, 1041, 1041, 1041, 1047, 1047, 1047, 1047, 1047, 1056, 1057, 1057, 1057, 1057, 1057, 1048, 1048, 1060, 1060, 1048, 1048, 1056, 1059, 1059, 1059, 1059, 1065, 1065, 1065, 1065, 1062, 1062, 1062, 1062, 1062, 1062, 1063, 1063, 1063, 1063, 1062, 1062, 1062, 1062, 1066, 1067, 1070, 1070, 1074, 1074, 1074, 1070, 1070, 1070, 1077, 1081, 1081, 1081, 1081, 1077, 1077, 1077, 1083, 1083, 1084, 1084, 1084, 1080, 1080, 1080, 1086, 1090, 1090, 1090, 1090, 1090, 1091, 1091, 1093, 1093, 1093, 1092, 1090, 1090, 1090, 1100, 1101, 1101, 1101, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1100, 1103, 1108, 1110, 1110, 1107, 1107, 1107, 1107, 1111, 1111, 1111, 1112, 1112, 1109, 1105, 1105, 1107, 1111, 1115, 1115, 1115, 1115, 1119, 1119, 1119, 1119, 1116, 1113, 1113, 1116, 1124, 1126, 1129, 1129, 1129, 1129, 1129, 1129, 1122, 1122, 1122, 1120, 1120, 1120, 1129, 1130, 1130, 1130, 1137, 1137, 1127, 1127, 1129, 1130, 1136, 1141, 1141, 1141, 1142, 1142, 1142, 1141, 1140, 1140, 1138, 1138, 1138, 1138, 1138, 1144, 1144, 1144, 1144, 1150, 1150, 1147, 1146, 1146, 1146, 1146, 1152, 1158, 1158, 1158, 1158, 1158, 1158, 1156, 1156, 1156, 1156, 1154, 1154, 1154, 1159, 1162, 1162, 1162, 1162, 1162, 1159, 1159, 1156, 1156, 1156, 1162, 1162, 1162, 1162, 1166, 1172, 1172, 1172, 1171, 1169, 1169, 1170, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1175, 1175, 1175, 1175, 1176, 1176, 1177, 1177, 1177, 1177, 1177, 1178, 1178, 1178, 1179, 1180, 1180, 1180, 1180, 1180, 1183, 1187, 1187, 1187, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1198, 1198, 1198, 1200, 1204, 1204, 1200, 1199, 1199, 1199, 1199, 1206, 1206, 1206, 1206, 1208, 1208, 1208, 1212, 1220, 1230, 1230, 1210, 1210, 1210, 1210, 1216, 1216, 1216, 1216, 1216, 1221, 1224, 1224, 1224, 1227, 1231, 1231, 1231, 1231, 1231, 1233, 1233, 1234, 1239, 1239, 1243, 1250, 1251, 1251, 1255, 1255, 1255, 1255, 1257, 1258, 1259, 1259, 1259, 1275, 1275, 1275, 1273, 1269, 1269, 1269, 1269, 1278, 1280, 1282, 1282, 1282, 1299, 1299, 1299, 1299, 1296, 1296, 1296, 1296, 1308, 1308, 1313, 1314, 1318, 1318, 1318, 1319, 1319, 1319, 1317, 1315, 1315, 1316, 1316, 1316, 1320, 1320, 1320, 1320, 1342, 1342, 1340, 1340, 1341, 1343, 1345, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1367, 1373, 1373, 1376, 1376, 1376, 1376, 1378, 1380, 1385, 1385, 1385, 1385, 1398, 1398, 1400, 1400, 1400, 1400, 1400, 1400, 1398, 1394, 1394, 1399, 1414, 1428, 1428, 1436, 1436, 1436, 1436, 1436, 1438, 1441, 1441, 1448, 1448, 1455, 1458, 1458, 1458, 1458, 1458, 1461, 1463, 1474, 1474, 1474, 1474, 1474, 1484, 1492, 1492, 1492, 1495, 1501, 1505, 1505, 1505, 1505, 1505, 1505, 1513, 1514, 1516, 1527, 1529, 1543, 1547, 1551, 1551, 1551, 1562, 1562, 1562, 1571, 1573, 1574, 1580, 1586, 1588, 1588, 1594, 1595, 1608, 1610, 1612, 1626, 1627, 1629, 1629, 1629, 1629, 1646, 1646, 1655, 1666, 1666, 1671, 1674, 1683, 1683, 1683, 1683, 1698, 1704, 1705, 1709, 1710, 1710, 1737, 1741, 1741, 1752, 1759, 1760, 1768, 1787, 1793, 1797, 1797, 1817, 1818, 1819, 1822, 1837, 1845, 1850, 1850, 1850, 1880, 1887, 1891, 1900, 1900, 1903, 1908, 1923, 1931, 1948, 1955, 1973, 1992, 1993, 1995, 2001, 2001, 2034, 2047, 2076, 2083, 2083, 2089, 2094, 2100, 2130, 2160, 2160, 2184, 2184, 2184, 2204, 2205, 2205, 2218, 2247, 2261, 2269, 2273, 2306, 2317, 2319, 2338, 2371, 2388, 2394, 2402, 2421, 2438, 2467, 2467, 2486, 2517, 2547, 2549, 2555, 2567, 2612, 2612, 2627, 2627, 2668, 2705, 2722, 2729, 2742, 2769, 2783, 2822, 2831, 2869, 2871, 2896, 2916, 2934, 2993, 3010, 3013, 3054, 3082, 3090, 3125, 3152, 3187, 3210, 3224, 3236, 3251, 3298, 3320, 3363, 3395, 3424, 3460, 3483, 3534, 3549, 3566, 3634, 3675, 3705, 3734, 3746, 3776, 3805, 3830, 3881, 3893, 3956, 3973, 4027, 4028, 4121, 4165, 4207, 4221, 4243, 4310, 4369, 4379, 4439, 4488, 4546, 4573, 4580, 4611, 4684, 4775, 4776, 4841, 4877, 4949, 4991, 5054, 5086, 5129, 5183, 5231, 5295, 5340, 5393, 5469, 5480, 5575, 5638, 5683, 5741, 5765, 5855, 5895, 5975, 6025, 6159, 6175, 6259, 6288, 6375, 6395, 6509, 6589, 6593, 6704, 6796, 6840, 6913, 6977, 7039, 7108, 7186, 7272, 7357, 7388, 7520, 7557, 7651, 7752, 7818, 7901, 7964, 8227, 8227, 8313, 8313, 8417, 8477, 8528, 8666, 8742, 8826, 8862, 8996, 9037, 9077, 9235, 9280, 9442, 9460, 9546, 9631, 9748, 9850, 9960, 10005, 10197, 10335, 10428, 10428, 10579, 10679, 10706, 10915, 10971, 11087, 11184, 11268, 11464, 11544, 11725, 11815, 11950, 12013, 12213, 12318, 12458, 12648, 12785, 12867, 13057, 13207, 13362, 13443, 13609, 13809, 13969, 14212, 14375, 14566, 14706, 14982, 15115, 15282, 15522, 15700, 15973, 16113, 16184, 16534, 16651, 16934, 17006, 17381, 17564, 17695, 17900, 18103, 18362, 18561, 18755, 18864, 19122, 19394, 19530, 19789, 19984, 20250, 20374, 20496, 20701, 21017, 21314, 21380, 21688, 21825, 22053, 22280, 22553, 22765, 23048, 23203, 23451, 23612, 23841, 24163, 24402, 24675, 24849, 25240, 25436, 25568, 25897, 26159, 26484, 26630, 26894, 27079, 27406, 27556, 27878, 28136, 28399, 28706, 28864, 29164, 29377, 29671, 30071, 30297, 30594, 30905, 31124, 31395, 31604, 31858, 32236, 32624, 33033, 33260, 33459, 33678, 33919, 34317, 34633, 35133, 35387, 35758, 35896, 36141, 36499, 36908, 37266, 37794, 38078, 38166, 38513, 38817, 39220, 39698, 40054, 40420, 40750, 40964, 41240, 41606, 41927, 42415, 42612, 43225, 43456, 43794, 44030, 44334, 44829, 45115, 45537, 46061, 46667, 46836, 47302, 47406, 47690, 48030, 48588, 48888, 50178, 50184, 50548, 50664, 51076, 51283, 51911, 52389, 52911, 53395, 53808, 53994, 54470, 54877, 55414, 55813, 56408, 57003, 57484, 57835, 58209, 58802, 59002, 59588, 60062, 60470, 61322, 61640, 61998, 62586, 62926, 63174, 63589, 63756, 64176, 64529, 64657, 64657, 64806, 64933, 65028, 65219, 65254, 65254, 65257, 65257, 65261, 65261, 65261, 65261, 1612, 1600, 1594, 1592, 1591, 1591, 1591, 1589, 1581, 1581, 1575, 1575, 1567, 1566, 1566, 1557, 1557, 1557, 1557, 1558, 1564, 1564, 1562, 1560, 1558, 1557, 1553, 1553, 1549, 1549, 1549, 1549, 1551, 1551, 1535, 1535, 1534, 1534, 1534, 1525, 1525, 1525, 1525, 1525, 1525, 1523, 1523, 1523, 1523, 1523, 1524, 1526, 1526, 1526, 1535, 1535, 1518, 1517, 1508, 1503, 1503, 1503, 1505, 1505, 1507, 1507, 1507, 1507, 1507, 1507, 1501, 1501, 1501, 1501, 1505, 1505, 1679, 1679, 1679, 1482, 1482, 1482, 1487, 1487, 1490, 1490, 1490, 1497, 1497, 1496, 1496, 1498, 1499, 1499, 1499, 1501, 1501, 1498, 1491, 1488, 1488, 1488, 1488, 1488, 1488, 1489, 1493, 1493, 1493, 1493, 1493, 1493, 1502, 1503, 1503, 1503, 1506, 1506, 1489, 1489, 1489, 1496, 1509, 1515, 1515, 1511, 1509, 1505, 1503, 1503, 1512, 1519, 1519, 1519, 1519, 1521, 1521, 1521, 1522, 1523, 1523, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1532, 1534, 1534, 1534, 1534, 1534, 1545, 1545, 1545, 1545, 1547, 1562, 1562, 1562, 1562, 1562, 1555, 1553, 1553, 1553, 1558, 1569, 1569, 1569, 1569, 1566, 1566, 1559, 1559, 1571, 1571, 1571, 1571, 1574, 1588, 1590, 1607, 1607, 1607, 1583, 1583, 1583, 1583, 1592, 1610, 1611, 1692, 1692, 1642, 1618, 1616, 1603, 1601, 1601, 1601, 1601, 1610, 1610, 1613, 1613, 1610, 1610, 1617, 1617, 1614, 1614, 1625, 1625, 1625, 1622, 1622, 1622, 1619, 1619, 1619, 1619, 1620, 1620, 1627, 1641, 1641, 1641, 1638, 1635, 1625, 1620, 1620, 1626, 1637, 1637, 1649, 1649, 1649, 1646, 1646, 1644, 1644, 1647, 1654, 1659, 1660, 1660, 1660, 1654, 1654, 1654, 1660, 1660, 1662, 1662, 1664, 1664, 1670, 1670, 1670, 1670, 1669, 1669, 1669, 1670, 1670, 1676, 1676, 1678, 1685, 1685, 1686, 1687, 1688, 1688, 1688, 1688, 1683, 1681, 1681, 1683, 1687, 1690, 1690, 1690, 1690, 1695, 1695, 1697, 1699, 1699, 1708, 1708, 1708, 1712, 1731, 1733, 1731, 1727, 1723, 1723, 1719, 1719, 1719, 1722, 1722, 1722, 1721, 1721, 1715, 1715, 1715, 1718, 1732, 1736, 1736, 1745, 1745, 1745, 1744, 1744, 1740, 1732, 1732, 1732, 1732, 1741, 1744, 1750, 1750, 1747, 1747, 1747, 1747, 1744, 1744, 1744, 1748, 1766, 1770, 1770, 1770, 1763, 1758, 1758, 1758, 1770, 1780, 1780, 1780, 1780, 1776, 1776, 1776, 1776, 1776, 1782, 1782, 1783, 1783, 1785, 1785, 1784, 1780, 1780, 1787, 1841, 1841, 1837, 1821, 1805, 1805, 1800, 1790, 1790, 1803, 1812, 1818, 1826, 1828, 1828, 1829, 1831, 1833, 1833, 1835, 1839, 1853, 1853, 1835, 1835, 1851, 1855, 1855, 1857, 1859, 1860, 1867, 1867, 1867, 1867, 1870, 1872, 1874, 1890, 1891, 1896, 1897, 1897, 1897, 1897, 1904, 1908, 1922, 1927, 1927, 1927, 1927, 1928, 1936, 1939, 1953, 1953, 1954, 1954, 1954, 1959, 1963, 1964, 1968, 1970, 1975, 1975, 1984, 1989, 1998, 1998, 2002, 2002, 2009, 2009, 2017, 2017, 2017, 2017, 2035, 2035, 2035, 2036, 2036, 2045, 2048, 2057, 2065, 2065, 2065, 2065, 2073, 2084, 2085, 2098, 2114, 2114, 2106, 2106, 2115, 2121, 2124, 2135, 2394, 2394, 2394, 2394, 2334, 2200, 2133, 2133, 2133, 2134, 2162, 2163, 2168, 2168, 2168, 2172, 2172, 2172, 2201, 2207, 2207, 2211, 2211, 2211, 2205, 2205, 2209, 2219, 2245, 2251, 2251, 2251, 2251, 2260, 2260, 2260, 2268, 2279, 2279, 2279, 2279, 2282, 2301, 2308, 2308, 2308, 2329, 2329, 2329, 2329, 2331, 2353, 2353, 2377, 2381, 2391, 2391, 2392, 2392, 2392, 2392, 2396, 2422, 2471, 2569, 2569, 2484, 2483, 2456, 2456, 2456, 2483, 2510, 2510, 2510, 2510, 2513, 2521, 2530, 2535, 2541, 2552, 2554, 2584, 2599, 2601, 2625, 2625, 2625, 2625, 2627, 2631, 2671, 2671, 2674, 2688, 2698, 2707, 2715, 2715, 2749, 2769, 2769, 2774, 2808, 2821, 2821, 2846, 2864, 2864, 2867, 2883, 2908, 2924, 2927, 2927, 2927, 2963, 2994, 2998, 3007, 3019, 3021, 3074, 3074, 3078, 3089, 3108, 3138, 3146, 3167, 3174, 3206, 3237, 3246, 3249, 3271, 3273, 3313, 3326, 3349, 3373, 3378, 3393, 3422, 3457, 3468, 3469, 3505, 3528, 3573, 3592, 3605, 3669, 3672, 3723, 3752, 3754, 3780, 3804, 3810, 3842, 3865, 3906, 3943, 3958, 3983, 4026, 4050, 4081, 4121, 4159, 4191, 4209, 4238, 4300, 4329, 4349, 4359, 4376, 4465, 4503, 4504, 4600, 4603, 4604, 4695, 4722, 4722, 4805, 4826, 4917, 4923, 4972, 4979, 5043, 5082, 5169, 5176, 5211, 5268, 5284, 5381, 5427, 5483, 5510, 5566, 5627, 5692, 5724, 5813, 5854, 5890, 5922, 5979, 6064, 6134, 6151, 6243, 6319, 6337, 6435, 6478, 6517, 6628, 6682, 6737, 6797, 6864, 6902, 7026, 7073, 7136, 7261, 7310, 7389, 7504, 7511, 7644, 7676, 7706, 7824, 7911, 8027, 8134, 8218, 8344, 8445, 8445, 8531, 8534, 8714, 8808, 8890, 9002, 9108, 9133, 9247, 9380, 9454, 9532, 9630, 9705, 10103, 10103, 10103, 10292, 10308, 10432, 10492, 10683, 10828, 10886, 10972, 11147, 11229, 11353, 11491, 11681, 11752, 11852, 12027, 12086, 12286, 12460, 12602, 12729, 12843, 13004, 13036, 13246, 13424, 13532, 13655, 13811, 13981, 14156, 14305, 14475, 14591, 14788, 14898, 15063, 15261, 15429, 15539, 15699, 16022, 16103, 16314, 16427, 16594, 16754, 17032, 17123, 17298, 17562, 17693, 17890, 18096, 18226, 18377, 18727, 18799, 18952, 19130, 19358, 19516, 19705, 19912, 20138, 20361, 20544, 20695, 20936, 21038, 21289, 21641, 21644, 21960, 22132, 22355, 22609, 22783, 23050, 23273, 23539, 23738, 23964, 24221, 24416, 24757, 25005, 25321, 25528, 25688, 26113, 26313, 26520, 26905, 27198, 27465, 27774, 28110, 28380, 28739, 29152, 29540, 29744, 30208, 30434, 30830, 31293, 31650, 32095, 32467, 32884, 33199, 33728, 34005, 34610, 34946, 35440, 35859, 36202, 36692, 37153, 37599, 38125, 38965, 39221, 39366, 39842, 40243, 40769, 41211, 41504, 42094, 42366, 42986, 43377, 43857, 44404, 44910, 45168, 45790, 46247, 46739, 47287, 47598, 48309, 48607, 49150, 49634, 50181, 50567, 51151, 51477, 52065, 52589, 53194, 53579, 54134, 54500, 55071, 55676, 56223, 56767, 57257, 57822, 58460, 58685, 59498, 60025, 60564, 60964, 61466, 62166, 62672, 63139, 63412, 63793, 64132, 64401, 64554, 64697, 64814, 64992, 65107, 65222, 65232, 65263, 65263, 65263, 65272, 65276, 65276, 65276, 65276, 65276, 65276, 65288, 65288, 65288, 65288, 65289, 65290, 65290, 65313, 65315, 65315, 65322, 65322, 65322, 65324, 65329, 65329, 65329, 65329, 65329, 65329, 65329, 65343, 65344, 65344, 65344, 65344, 65343, 65343, 65343, 65342, 65342, 65346, 65356, 65356, 65356, 65356, 65356, 65356, 65356, 65352, 65351, 65348, 65348, 65348, 65348, 65348, 65340, 65340, 65340, 65309, 65300, 65293, 65293, 65293, 65293, 65306, 65319, 65323, 65327, 65340, 65340, 65338, 65338, 65338, 65304, 65304, 65299, 65299, 65299, 65291, 65291, 65291, 65291, 65291, 65291, 65285, 65282, 65280, 65280, 65280, 65272, 65272, 65275, 65283, 65287, 65287, 65282, 65267, 65267, 65267, 2490, 2490, 2490, 2490, 2490, 2479, 2467, 2462, 2459, 2458, 2444, 2444, 2444, 2437, 2437, 2436, 2434, 2421, 2421, 2421, 2421, 2414, 2406, 2406, 2401, 2401, 2401, 2386, 2386, 2386, 2387, 2387, 2387, 2377, 2364, 2364, 2364, 2361, 2361, 2358, 2348, 2348, 2354, 2354, 2354, 2354, 2340, 2340, 2340, 2333, 2322, 2322, 2322, 2328, 2328, 2328, 2318, 2313, 2313, 2313, 2313, 2307, 2307, 2307, 2307, 2307, 2307, 2297, 2297, 2297, 2297, 2297, 2281, 2281, 2282, 2288, 2288, 2288, 2288, 2288, 2289, 2290, 2294, 2298, 2296, 2285, 2278, 2278, 2278, 2278, 2282, 2282, 2283, 2283, 2292, 2292, 2292, 2292, 2292, 2306, 2306, 2306, 2306, 2298, 2298, 2298, 2318, 2318, 2318, 2318, 2321, 2321, 2321, 2321, 2316, 2316, 2316, 2324, 2324, 2324, 2324, 2320, 2320, 2323, 2332, 2336, 2338, 2338, 2343, 2344, 2344, 2344, 2341, 2341, 2341, 2347, 2347, 2347, 2353, 2353, 2365, 2365, 2372, 2381, 2381, 2386, 2392, 2392, 2388, 2381, 2374, 2374, 2382, 2386, 2390, 2390, 2394, 2397, 2397, 2397, 2405, 2411, 2415, 2419, 2419, 2417, 2416, 2416, 2416, 2416, 2416, 2419, 2427, 2427, 2435, 2435, 2435, 2438, 2439, 2454, 2455, 2455, 2455, 2455, 2455, 2458, 2464, 2465, 2468, 2470, 2470, 2470, 2489, 2491, 2499, 2499, 2499, 2499, 2499, 2496, 2496, 2496, 2504, 2504, 2504, 2507, 2507, 2507, 2521, 2521, 2521, 2520, 2520, 2520, 2524, 2539, 2539, 2539, 2539, 2536, 2535, 2534, 2534, 2534, 2542, 2542, 2542, 2560, 2560, 2560, 2560, 2560, 2560, 2557, 2557, 2558, 2558, 2565, 2565, 2584, 2584, 2584, 2586, 2589, 2598, 2598, 2608, 2608, 2608, 2608, 2608, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2618, 2624, 2624, 2626, 2640, 2644, 2637, 2637, 2637, 2637, 2637, 2645, 2645, 2656, 2656, 2656, 2658, 2675, 2694, 2694, 2677, 2677, 2677, 2677, 2681, 2681, 2681, 2697, 2697, 2697, 2685, 2685, 2685, 2698, 2702, 2702, 2700, 2697, 2697, 2703, 2703, 2704, 2711, 2711, 2711, 2711, 2717, 2717, 2719, 2719, 2719, 2727, 2731, 2756, 2756, 2756, 2758, 2759, 2760, 2760, 2760, 2760, 2759, 2757, 2757, 2757, 2757, 2757, 2757, 2769, 2769, 2769, 2769, 2773, 2773, 2773, 2773, 2772, 2772, 2781, 2830, 2920, 2920, 2835, 2791, 2791, 2791, 2791, 2807, 2814, 2814, 2829, 2832, 2832, 2832, 2832, 2832, 2839, 2839, 2834, 2833, 2833, 2833, 2835, 2839, 2840, 2849, 2861, 2861, 2861, 2861, 2864, 2866, 2868, 2870, 2873, 2873, 2890, 2890, 2898, 2904, 2904, 2904, 2915, 2928, 2928, 2929, 2929, 2941, 2941, 2941, 2941, 2951, 2966, 2966, 2978, 2986, 2986, 2987, 3001, 3015, 3018, 3024, 3026, 3023, 3028, 3031, 3035, 3056, 3060, 3060, 3073, 3082, 3082, 3092, 3106, 3106, 3111, 3111, 3114, 3136, 3138, 3139, 3141, 3141, 3141, 3149, 3181, 3181, 3181, 3181, 3188, 3191, 3213, 3213, 3213, 3230, 3231, 3231, 3248, 3260, 3271, 3279, 3293, 3303, 3303, 3303, 3303, 3303, 3303, 3328, 3350, 3354, 3378, 3378, 3387, 3387, 3387, 3391, 3387, 3397, 3420, 3424, 3424, 3428, 3428, 3434, 3463, 3466, 3474, 3482, 3504, 3505, 3505, 3516, 3516, 3527, 3556, 3561, 3563, 3568, 3577, 3577, 3590, 3598, 3622, 3622, 3625, 3626, 3626, 3626, 3645, 3651, 3657, 3678, 3691, 3691, 3703, 3703, 3714, 3743, 3763, 3763, 3783, 3783, 3791, 3798, 3798, 3798, 3824, 3844, 3851, 3872, 3897, 3897, 3897, 3919, 3930, 3951, 3951, 3973, 3984, 3989, 3998, 4002, 4027, 4037, 4058, 4067, 4086, 4092, 4092, 4092, 4161, 4161, 4172, 4173, 4196, 4211, 4222, 4231, 4236, 4281, 4284, 4314, 4314, 4314, 4378, 4378, 4386, 4437, 4442, 4446, 4446, 4488, 4520, 4532, 4532, 4549, 4578, 4642, 4644, 4701, 4703, 4703, 4727, 4737, 4778, 4807, 4828, 4840, 4897, 4897, 4904, 4947, 4986, 5008, 5029, 5064, 5089, 5134, 5164, 5191, 5229, 5239, 5260, 5283, 5323, 5371, 5377, 5458, 5467, 5503, 5528, 5537, 5601, 5647, 5654, 5702, 5741, 5794, 5823, 5860, 5912, 5936, 5964, 6014, 6032, 6072, 6197, 6202, 6252, 6253, 6372, 6377, 6398, 6436, 6505, 6589, 6606, 6667, 6721, 6781, 6805, 6884, 6971, 6980, 7004, 7111, 7154, 7211, 7273, 7330, 7435, 7466, 7471, 7574, 7683, 7747, 7844, 7849, 7978, 8029, 8086, 8253, 8286, 8333, 8385, 8438, 8520, 8628, 8684, 8773, 8871, 8983, 9084, 9105, 9311, 9336, 9429, 9472, 9605, 9679, 9810, 9897, 9999, 10098, 10150, 10297, 10379, 10498, 10551, 10671, 10762, 10855, 10958, 11097, 11193, 11350, 11502, 11598, 11631, 11774, 11944, 12038, 12194, 12400, 12428, 12497, 12737, 12848, 13018, 13134, 13296, 13437, 13526, 13691, 13809, 13966, 14194, 14257, 14494, 14567, 14801, 14939, 15133, 15246, 15478, 15630, 15798, 15986, 16134, 16301, 16421, 16669, 16824, 17088, 17147, 17444, 17543, 17879, 17963, 18191, 18363, 18583, 18845, 19035, 19358, 19481, 19537, 19886, 20130, 20298, 20483, 20704, 21015, 21171, 21444, 21706, 21898, 22217, 22430, 22750, 22790, 23182, 23441, 23636, 24008, 24203, 24524, 24673, 24978, 25313, 25577, 25903, 26164, 26439, 26760, 27086, 27405, 27597, 27949, 28235, 28592, 28976, 29202, 29604, 29773, 30281, 30597, 30948, 31278, 31723, 31955, 32216, 32669, 32898, 33389, 33640, 34041, 34427, 34774, 35090, 35514, 35996, 36294, 36638, 37095, 37522, 37896, 38233, 38640, 39166, 39514, 39839, 40286, 40672, 41168, 41389, 42008, 42402, 42775, 43174, 43694, 43922, 44395, 44941, 45259, 45723, 46030, 46650, 47005, 47413, 47898, 48267, 48766, 49446, 49841, 50379, 50871, 51408, 51925, 52436, 52930, 53531, 54116, 54569, 55124, 55753, 56387, 56805, 57517, 57972, 58530, 59556, 59838, 60826, 61274, 62094, 62702, 63330, 63657, 64007, 64512, 64687, 64868, 65072, 65276, 65281, 65288, 65302, 65303, 65303, 65303, 65303, 65310, 65314, 65319, 65320, 65320, 65330, 65346, 65346, 65346, 65346, 65345, 65336, 65336, 65356, 65359, 65359, 65359, 65367, 65367, 65375, 65375, 65375, 65375, 65371, 65371, 65371, 65389, 65389, 65389, 65389, 65378, 65378, 65368, 65366, 65366, 65366, 65357, 65349, 65346, 65314, 65311, 65311, 65313, 65314, 65322, 65355, 65361, 65361, 65342, 65342, 65342, 65336, 65309, 65309, 65308, 65298, 65285, 65273, 65273, 65273, 65273, 65273, 65273, 65275, 65275, 65277, 65288, 65292, 65292, 65282, 65278, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65268, 65277, 65277, 65286, 65286, 65286, 65271, 65271, 65271, 65282, 65282, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65300, 65300, 65300, 65300, 65285, 65285, 65285, 65285, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65281, 65281, 65281, 65281, 65281, 65281, 65294, 65294, 65294, 65294, 65294, 65294, 65292, 65292, 65292, 65292, 65280, 65275, 65275, 65275, 65283, 65283, 65283, 65301, 65301, 65301, 65301, 65298, 65293, 65293, 65293, 65291, 65291, 65291, 65292, 65292, 65292, 65292, 65316, 65316, 65290, 65288, 65288, 65288, 4157, 4056, 3990, 3990, 3990, 3994, 3994, 3994, 3951, 3942, 3938, 3924, 3924, 3924, 3915, 3915, 3905, 3905, 3905, 3888, 3878, 3877, 3877, 3872, 3861, 3861, 3850, 3832, 3826, 3824, 3824, 3827, 3827, 3822, 3822, 3822, 3798, 3798, 3790, 3776, 3776, 3776, 3776, 3783, 3783, 3776, 3776, 3776, 3776, 3765, 3765, 3756, 3747, 3736, 3736, 3736, 3730, 3730, 3730, 3715, 3715, 3715, 3716, 3716, 3716, 3715, 3715, 3699, 3699, 3699, 3699, 3692, 3691, 3691, 3691, 3684, 3684, 3683, 3678, 3678, 3678, 3666, 3662, 3662, 3668, 3673, 3673, 3673, 3673, 3667, 3667, 3667, 3667, 3667, 3676, 3688, 3688, 3688, 3688, 3688, 3688, 3690, 3690, 3690, 3690, 3690, 3690, 3709, 3709, 3709, 3709, 3709, 3709, 3726, 3726, 3726, 3729, 3731, 3738, 3738, 3738, 3751, 3751, 3753, 3762, 3762, 3762, 3762, 3762, 3763, 3763, 3784, 3784, 3786, 3786, 3786, 3786, 3786, 3796, 3796, 3796, 3796, 3796, 3807, 3809, 3821, 3824, 3824, 3824, 3836, 3836, 3836, 3836, 3848, 3868, 3869, 3871, 3871, 3871, 3876, 3876, 3888, 3888, 3888, 3907, 3923, 3936, 3942, 3945, 3946, 3948, 3949, 3948, 3948, 3948, 3948, 3962, 3967, 3967, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 4009, 4024, 4024, 4024, 4024, 4025, 4025, 4025, 4047, 4047, 4043, 4044, 4044, 4046, 4055, 4055, 4068, 4082, 4082, 4082, 4082, 4082, 4098, 4112, 4112, 4106, 4106, 4106, 4110, 4118, 4150, 4150, 4150, 4137, 4137, 4137, 4140, 4157, 4172, 4174, 4174, 4174, 4207, 4207, 4181, 4181, 4181, 4191, 4205, 4209, 4209, 4209, 4209, 4224, 4229, 4232, 4235, 4238, 4244, 4244, 4259, 4259, 4259, 4246, 4246, 4246, 4246, 4262, 4272, 4273, 4274, 4276, 4276, 4276, 4276, 4276, 4295, 4312, 4312, 4312, 4312, 4312, 4302, 4302, 4322, 4322, 4322, 4344, 4349, 4357, 4357, 4359, 4359, 4359, 4378, 4379, 4379, 4379, 4400, 4400, 4400, 4391, 4391, 4391, 4394, 4402, 4417, 4418, 4423, 4423, 4433, 4453, 4453, 4453, 4453, 4453, 4453, 4455, 4456, 4456, 4459, 4477, 4491, 4494, 4494, 4494, 4494, 4494, 4494, 4494, 4516, 4516, 4516, 4515, 4515, 4517, 4517, 4525, 4525, 4545, 4545, 4553, 4553, 4564, 4564, 4567, 4567, 4567, 4572, 4575, 4580, 4580, 4586, 4586, 4586, 4586, 4601, 4603, 4607, 4607, 4626, 4638, 4638, 4638, 4638, 4641, 4654, 4654, 4654, 4654, 4654, 4654, 4654, 4658, 4660, 4660, 4665, 4685, 4685, 4701, 4701, 4702, 4725, 4731, 4734, 4734, 4734, 4736, 4746, 4746, 4746, 4764, 4764, 4769, 4790, 4812, 4812, 4812, 4849, 4849, 4862, 4862, 4863, 4869, 4869, 4873, 4873, 4873, 4873, 4928, 4930, 4930, 4967, 4997, 5015, 5016, 5016, 5036, 5036, 5037, 5063, 5063, 5081, 5115, 5115, 5115, 5115, 5159, 5159, 5159, 5159, 5166, 5207, 5241, 5241, 5254, 5261, 5261, 5266, 5275, 5295, 5325, 5352, 5356, 5350, 5379, 5399, 5409, 5422, 5438, 5459, 5459, 5459, 5465, 5470, 5502, 5525, 5531, 5531, 5560, 5600, 5615, 5622, 5629, 5639, 5639, 5669, 5684, 5710, 5716, 5716, 5716, 5746, 5788, 5792, 5800, 5826, 5826, 5828, 5860, 5882, 5882, 5891, 5894, 5948, 5973, 5973, 5982, 5988, 6001, 6039, 6061, 6062, 6067, 6092, 6101, 6123, 6134, 6164, 6208, 6209, 6209, 6222, 6260, 6290, 6300, 6304, 6316, 6350, 6371, 6403, 6403, 6409, 6450, 6459, 6469, 6497, 6551, 6571, 6578, 6586, 6625, 6648, 6684, 6691, 6703, 6730, 6739, 6806, 6813, 6835, 6842, 6898, 6901, 6957, 6990, 7022, 7037, 7041, 7140, 7168, 7168, 7177, 7192, 7249, 7275, 7313, 7350, 7391, 7391, 7446, 7485, 7510, 7561, 7580, 7613, 7644, 7727, 7740, 7764, 7776, 7818, 7899, 7950, 7979, 8013, 8042, 8112, 8187, 8208, 8223, 8292, 8331, 8485, 8485, 8485, 8526, 8556, 8630, 8691, 8723, 8797, 8827, 8904, 8944, 9036, 9135, 9157, 9183, 9260, 9323, 9365, 9423, 9495, 9604, 9641, 9736, 9815, 9882, 9978, 9992, 10046, 10088, 10223, 10276, 10318, 10415, 10539, 10595, 10659, 10706, 10848, 10933, 11033, 11103, 11170, 11298, 11385, 11397, 11494, 11578, 11777, 11857, 11934, 11997, 12079, 12167, 12368, 12468, 12817, 12817, 12899, 12899, 12993, 13137, 13209, 13369, 13479, 13585, 13713, 13878, 13988, 14172, 14231, 14432, 14536, 14744, 14806, 14946, 15084, 15199, 15365, 15599, 15683, 15959, 15959, 16189, 16342, 16566, 16673, 16813, 17064, 17207, 17436, 17610, 17794, 17998, 18129, 18349, 18525, 18719, 18870, 19121, 19188, 19429, 19720, 19930, 20124, 20326, 20591, 20796, 20950, 21205, 21488, 21620, 21925, 22103, 22377, 22575, 22887, 23129, 23316, 23588, 23754, 24056, 24360, 24560, 24850, 25199, 25481, 25703, 26066, 26302, 26565, 26821, 27123, 27535, 27741, 28071, 28378, 28746, 29262, 29636, 29673, 30049, 30318, 30940, 30996, 31371, 31841, 32091, 32389, 32886, 33236, 33750, 33929, 34422, 34782, 35257, 35578, 36042, 36266, 36787, 37220, 37706, 38095, 38517, 39003, 39302, 39804, 40311, 40692, 41203, 41757, 42033, 42733, 43208, 43559, 44171, 44601, 45060, 45592, 46068, 46681, 47262, 47646, 48184, 48889, 49358, 50060, 50584, 51056, 51621, 52055, 52592, 53377, 54010, 54775, 55973, 55973, 56237, 57175, 57682, 58445, 58992, 59502, 60256, 61042, 61566, 62153, 62801, 63374, 63727, 64104, 64439, 64637, 64868, 64977, 65189, 65281, 65281, 65286, 65291, 65291, 65293, 65298, 65302, 65302, 65318, 65318, 65318, 65318, 65318, 65321, 65321, 65321, 65321, 65321, 65322, 65338, 65338, 65342, 65342, 65343, 65343, 65355, 65359, 65359, 65359, 65365, 65368, 65368, 65368, 65373, 65373, 65373, 65373, 65376, 65376, 65376, 65376, 65376, 65376, 65366, 65366, 65366, 65366, 65366, 65328, 65326, 65326, 65326, 65337, 65341, 65345, 65380, 65380, 65380, 65363, 65340, 65340, 65340, 65301, 65296, 65295, 65290, 65288, 65288, 65284, 65284, 65284, 65284, 65284, 65284, 65271, 65265, 65262, 65262, 65262, 65274, 65274, 65274, 65274, 65266, 65264, 65264, 65264, 65279, 65279, 65279, 65280, 65280, 65280, 65280, 65291, 65291, 65291, 65291, 65286, 65286, 65286, 65286, 65286, 65283, 65283, 65283, 65283, 65283, 65297, 65297, 65297, 65297, 65291, 65268, 65268, 65268, 65282, 65282, 65296, 65296, 65296, 65296, 65296, 65296, 65292, 65292, 65290, 65287, 65287, 65287, 65285, 65284, 65284, 65282, 65271, 65271, 65279, 65285, 65285, 65288, 65299, 65299, 65299, 65299, 65299, 65295, 65290, 65285, 65275, 65275, 65275, 65296, 65296, 65296, 65296, 65296, 65293, 65288, 65278, 65278, 65278, 65278, 65282, 65283, 65283, 65283, 65289, 65289, 65289, 65289, 65291, 65293, 65293, 65294, 65294, 65298, 65299, 65299, 65301, 65303, 65303, 65303, 65302, 65302, 65296, 65289, 65289, 65289, 65289, 65299, 65301, 65296, 65296, 65296, 65296, 65296, 65296, 65313, 65313, 65313, 65301, 65301, 65301, 65301, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65311, 65311, 65311, 65311, 65311, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65307, 65307, 65307, 65298, 65298, 65298, 65298, 65298, 6574, 6438, 6370, 6370, 6364, 6361, 6357, 6342, 6317, 6316, 6276, 6269, 6258, 6253, 6224, 6224, 6224, 6208, 6202, 6169, 6162, 6162, 6162, 6162, 6144, 6123, 6116, 6102, 6097, 6097, 6097, 6097, 6084, 6077, 6062, 6062, 6018, 6017, 6017, 6020, 6020, 6020, 6012, 6012, 6004, 5996, 5985, 5985, 5985, 5957, 5954, 5954, 5954, 5940, 5940, 5940, 5940, 5942, 5942, 5942, 5942, 5942, 5925, 5905, 5905, 5889, 5889, 5883, 5883, 5883, 5883, 5892, 5886, 5868, 5868, 5868, 5856, 5856, 5856, 5856, 5856, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5852, 5852, 5852, 5863, 5881, 5884, 5884, 5885, 5885, 5885, 5894, 5913, 5913, 5913, 5913, 5915, 5917, 5918, 5944, 5944, 5944, 5949, 5949, 5981, 5997, 5981, 5973, 5969, 5958, 5958, 5958, 5959, 6008, 6008, 6008, 6014, 6014, 6020, 6020, 6027, 6027, 6028, 6045, 6045, 6049, 6049, 6049, 6049, 6076, 6076, 6076, 6079, 6079, 6079, 6093, 6094, 6094, 6094, 6156, 6167, 6195, 6195, 6195, 6195, 6195, 6195, 6195, 6218, 6218, 6237, 6237, 6237, 6237, 6253, 6269, 6269, 6282, 6305, 6305, 6305, 6314, 6318, 6318, 6318, 6318, 6337, 6365, 6365, 6365, 6388, 6401, 6420, 6420, 6420, 6420, 6454, 6454, 6454, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6489, 6496, 6520, 6520, 6529, 6547, 6550, 6550, 6550, 6564, 6570, 6596, 6638, 6642, 6634, 6622, 6622, 6641, 6653, 6659, 6662, 6674, 6674, 6674, 6674, 6702, 6702, 6702, 6702, 6702, 6712, 6715, 6715, 6716, 6716, 6716, 6716, 6756, 6756, 6756, 6756, 6759, 6808, 6808, 6808, 6808, 6832, 6838, 6838, 6838, 6838, 6839, 6855, 6855, 6855, 6883, 6885, 6901, 6903, 6905, 6933, 6935, 6939, 6942, 6945, 6942, 6942, 6942, 6942, 6946, 6946, 6946, 6973, 6999, 6999, 6997, 6997, 6997, 6996, 6996, 6996, 7014, 7020, 7028, 7036, 7036, 7075, 7075, 7075, 7075, 7075, 7075, 7078, 7123, 7123, 7143, 7143, 7143, 7143, 7143, 7172, 7172, 7140, 7140, 7153, 7156, 7178, 7198, 7202, 7202, 7214, 7214, 7219, 7219, 7219, 7219, 7219, 7238, 7238, 7238, 7255, 7255, 7255, 7305, 7328, 7328, 7328, 7326, 7326, 7326, 7361, 7361, 7367, 7378, 7385, 7385, 7385, 7385, 7391, 7391, 7391, 7391, 7435, 7435, 7435, 7468, 7468, 7482, 7483, 7483, 7483, 7487, 7487, 7487, 7488, 7489, 7519, 7521, 7521, 7521, 7560, 7570, 7606, 7606, 7606, 7609, 7609, 7609, 7616, 7616, 7634, 7638, 7638, 7670, 7687, 7691, 7715, 7715, 7719, 7733, 7760, 7762, 7762, 7762, 7800, 7820, 7870, 7870, 7870, 7882, 7895, 7895, 7913, 7982, 7982, 7982, 8007, 8024, 8047, 8052, 8078, 8078, 8110, 8110, 8151, 8179, 8187, 8197, 8222, 8247, 8247, 8247, 8349, 8386, 8389, 8389, 8389, 8437, 8447, 8450, 8476, 8510, 8551, 8578, 8610, 8615, 8615, 8615, 8686, 8686, 8749, 8749, 8784, 8809, 8821, 8821, 8902, 8912, 8921, 8950, 8950, 9025, 9025, 9040, 9040, 9110, 9127, 9173, 9187, 9241, 9251, 9290, 9291, 9352, 9359, 9359, 9378, 9419, 9446, 9455, 9499, 9501, 9519, 9587, 9669, 9669, 9669, 9715, 9727, 9802, 9809, 9815, 9880, 9907, 9913, 9979, 9990, 10006, 10091, 10091, 10102, 10102, 10137, 10194, 10229, 10281, 10378, 10378, 10386, 10440, 10473, 10526, 10526, 10559, 10559, 10641, 10688, 10749, 10780, 10823, 10886, 10891, 10915, 10926, 11011, 11057, 11143, 11153, 11193, 11247, 11282, 11308, 11384, 11418, 11522, 11529, 11595, 11643, 11661, 11701, 11728, 11810, 11916, 11981, 11988, 12085, 12115, 12181, 12246, 12294, 12405, 12475, 12525, 12562, 12593, 12725, 12786, 12869, 12891, 12921, 13022, 13182, 13200, 13263, 13291, 13303, 13497, 13530, 13649, 13743, 13859, 13884, 13955, 14050, 14071, 14226, 14306, 14391, 14597, 14604, 14714, 14765, 14921, 14967, 15127, 15264, 15320, 15472, 15564, 15656, 15683, 15892, 15953, 16122, 16313, 16473, 16590, 16723, 16788, 16848, 17116, 17163, 17273, 17449, 17537, 17698, 17813, 18072, 18129, 18332, 18422, 18689, 18733, 18886, 19027, 19208, 19389, 19556, 19694, 19869, 19986, 20172, 20311, 20544, 20709, 20984, 21055, 21266, 21418, 21652, 21876, 22092, 22255, 22468, 22800, 22900, 23095, 23371, 23540, 23846, 24064, 24601, 24686, 24686, 24988, 25177, 25626, 25759, 26014, 26239, 26435, 26763, 27079, 27404, 27681, 27924, 28156, 28459, 28876, 29059, 29361, 29821, 29946, 30305, 30612, 31263, 31299, 31683, 31882, 32388, 32617, 33028, 33394, 33831, 34218, 34536, 34816, 35351, 35710, 36088, 36416, 36899, 37332, 37758, 38125, 38665, 38912, 39546, 39946, 40342, 40791, 41160, 41586, 42135, 42699, 43152, 43615, 44173, 44512, 45184, 45680, 46067, 46667, 47120, 47632, 48252, 48725, 49386, 49725, 50516, 51041, 51597, 52141, 52913, 53172, 54151, 54679, 55124, 55632, 56461, 57107, 57828, 58447, 59014, 59720, 60524, 61376, 61896, 62522, 63076, 63609, 64016, 64335, 64593, 64815, 64991, 65183, 65290, 65293, 65293, 65293, 65303, 65303, 65304, 65304, 65311, 65317, 65325, 65325, 65325, 65325, 65325, 65325, 65333, 65333, 65333, 65349, 65362, 65362, 65362, 65378, 65378, 65378, 65379, 65382, 65382, 65382, 65395, 65395, 65395, 65395, 65399, 65404, 65405, 65405, 65404, 65390, 65385, 65385, 65377, 65352, 65343, 65343, 65350, 65350, 65350, 65375, 65384, 65386, 65377, 65375, 65374, 65346, 65312, 65312, 65301, 65298, 65298, 65296, 65296, 65296, 65281, 65278, 65270, 65262, 65262, 65262, 65270, 65278, 65290, 65290, 65290, 65285, 65285, 65279, 65279, 65275, 65275, 65267, 65267, 65267, 65267, 65278, 65278, 65287, 65287, 65287, 65287, 65287, 65296, 65296, 65296, 65277, 65277, 65277, 65272, 65272, 65272, 65272, 65272, 65272, 65288, 65288, 65288, 65285, 65285, 65270, 65270, 65280, 65288, 65288, 65288, 65288, 65288, 65288, 65283, 65283, 65283, 65283, 65283, 65283, 65291, 65291, 65290, 65286, 65286, 65286, 65286, 65294, 65294, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65296, 65296, 65296, 65293, 65293, 65293, 65298, 65298, 65298, 65298, 65295, 65295, 65295, 65295, 65295, 65291, 65291, 65291, 65291, 65291, 65291, 65291, 65300, 65300, 65316, 65316, 65316, 65283, 65283, 65305, 65307, 65307, 65307, 65307, 65307, 65307, 65307, 65307, 65305, 65305, 65303, 65303, 65303, 65303, 65303, 65291, 65291, 65291, 65291, 65297, 65306, 65306, 65295, 65295, 65295, 65295, 65319, 65320, 65320, 65304, 65296, 65296, 65309, 65317, 65319, 65319, 65319, 65319, 65319, 65311, 65307, 65305, 65294, 65294, 65294, 65294, 65305, 65307, 65307, 65308, 65323, 65328, 65328, 65328, 65328, 65323, 65318, 65316, 65312, 65312, 65300, 65300, 65300, 65300, 65300, 65312, 65322, 65322, 65322, 65322, 65313, 65313, 65313, 65313, 65313, 65308, 65308, 65308, 65308, 65320, 65320, 65320, 65320, 65320, 65320, 65332, 65332, 65326, 65326, 65326, 65326, 65323, 65323, 65323, 65323, 65323, 65323, 65315, 65315, 65315, 65315, 65315, 65327, 65327, 65327, 65327, 65327, 65334, 65337, 65337] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Spectrum"] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Spectrum", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (Spectrometer)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1024, 24] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["296.5", "297.055", "297.61", "298.164", "298.719", "299.273", "299.827", "300.382", "300.936", "301.489", "302.043", "302.597", "303.15", "303.703", "304.256", "304.809", "305.362", "305.915", "306.467", "307.02", "307.572", "308.124", "308.676", "309.228", "309.78", "310.332", "310.883", "311.435", "311.986", "312.537", "313.088", "313.639", "314.189", "314.74", "315.29", "315.841", "316.391", "316.941", "317.491", "318.04", "318.59", "319.139", "319.689", "320.238", "320.787", "321.336", "321.885", "322.433", "322.982", "323.53", "324.079", "324.627", "325.175", "325.723", "326.271", "326.818", "327.366", "327.913", "328.46", "329.007", "329.554", "330.101", "330.648", "331.195", "331.741", "332.287", "332.834", "333.38", "333.926", "334.472", "335.017", "335.563", "336.108", "336.654", "337.199", "337.744", "338.289", "338.834", "339.378", "339.923", "340.467", "341.012", "341.556", "342.1", "342.644", "343.188", "343.731", "344.275", "344.818", "345.362", "345.905", "346.448", "346.991", "347.534", "348.076", "348.619", "349.161", "349.704", "350.246", "350.788", "351.33", "351.872", "352.414", "352.955", "353.497", "354.038", "354.579", "355.12", "355.661", "356.202", "356.743", "357.284", "357.824", "358.364", "358.905", "359.445", "359.985", "360.525", "361.065", "361.604", "362.144", "362.683", "363.223", "363.762", "364.301", "364.84", "365.379", "365.917", "366.456", "366.995", "367.533", "368.071", "368.609", "369.147", "369.685", "370.223", "370.761", "371.298", "371.836", "372.373", "372.91", "373.447", "373.984", "374.521", "375.058", "375.595", "376.131", "376.668", "377.204", "377.74", "378.276", "378.812", "379.348", "379.884", "380.419", "380.955", "381.49", "382.026", "382.561", "383.096", "383.631", "384.166", "384.7", "385.235", "385.77", "386.304", "386.838", "387.372", "387.907", "388.441", "388.974", "389.508", "390.042", "390.575", "391.109", "391.642", "392.175", "392.708", "393.241", "393.774", "394.307", "394.84", "395.372", "395.905", "396.437", "396.969", "397.501", "398.033", "398.565", "399.097", "399.629", "400.16", "400.692", "401.223", "401.755", "402.286", "402.817", "403.348", "403.879", "404.409", "404.94", "405.471", "406.001", "406.531", "407.062", "407.592", "408.122", "408.652", "409.181", "409.711", "410.241", "410.77", "411.3", "411.829", "412.358", "412.887", "413.416", "413.945", "414.474", "415.003", "415.531", "416.06", "416.588", "417.117", "417.645", "418.173", "418.701", "419.229", "419.757", "420.284", "420.812", "421.34", "421.867", "422.394", "422.921", "423.449", "423.976", "424.503", "425.029", "425.556", "426.083", "426.609", "427.136", "427.662", "428.188", "428.714", "429.24", "429.766", "430.292", "430.818", "431.344", "431.869", "432.395", "432.92", "433.445", "433.971", "434.496", "435.021", "435.546", "436.071", "436.595", "437.12", "437.644", "438.169", "438.693", "439.218", "439.742", "440.266", "440.79", "441.314", "441.837", "442.361", "442.885", "443.408", "443.932", "444.455", "444.978", "445.502", "446.025", "446.548", "447.071", "447.593", "448.116", "448.639", "449.161", "449.684", "450.206", "450.728", "451.251", "451.773", "452.295", "452.817", "453.338", "453.86", "454.382", "454.903", "455.425", "455.946", "456.468", "456.989", "457.51", "458.031", "458.552", "459.073", "459.594", "460.114", "460.635", "461.156", "461.676", "462.196", "462.717", "463.237", "463.757", "464.277", "464.797", "465.317", "465.837", "466.356", "466.876", "467.396", "467.915", "468.434", "468.954", "469.473", "469.992", "470.511", "471.03", "471.549", "472.068", "472.586", "473.105", "473.624", "474.142", "474.661", "475.179", "475.697", "476.215", "476.733", "477.251", "477.769", "478.287", "478.805", "479.323", "479.84", "480.358", "480.875", "481.393", "481.91", "482.427", "482.944", "483.461", "483.978", "484.495", "485.012", "485.529", "486.045", "486.562", "487.079", "487.595", "488.111", "488.628", "489.144", "489.66", "490.176", "490.692", "491.208", "491.724", "492.24", "492.755", "493.271", "493.787", "494.302", "494.817", "495.333", "495.848", "496.363", "496.878", "497.393", "497.908", "498.423", "498.938", "499.453", "499.968", "500.482", "500.997", "501.511", "502.026", "502.54", "503.054", "503.568", "504.083", "504.597", "505.111", "505.625", "506.138", "506.652", "507.166", "507.679", "508.193", "508.707", "509.22", "509.733", "510.247", "510.76", "511.273", "511.786", "512.299", "512.812", "513.325", "513.838", "514.351", "514.863", "515.376", "515.889", "516.401", "516.913", "517.426", "517.938", "518.45", "518.963", "519.475", "519.987", "520.499", "521.011", "521.522", "522.034", "522.546", "523.058", "523.569", "524.081", "524.592", "525.104", "525.615", "526.126", "526.637", "527.149", "527.66", "528.171", "528.682", "529.193", "529.704", "530.214", "530.725", "531.236", "531.746", "532.257", "532.767", "533.278", "533.788", "534.298", "534.809", "535.319", "535.829", "536.339", "536.849", "537.359", "537.869", "538.379", "538.889", "539.398", "539.908", "540.418", "540.927", "541.437", "541.946", "542.456", "542.965", "543.474", "543.983", "544.493", "545.002", "545.511", "546.02", "546.529", "547.038", "547.546", "548.055", "548.564", "549.073", "549.581", "550.09", "550.598", "551.107", "551.615", "552.123", "552.632", "553.14", "553.648", "554.156", "554.664", "555.172", "555.68", "556.188", "556.696", "557.204", "557.712", "558.22", "558.727", "559.235", "559.742", "560.25", "560.757", "561.265", "561.772", "562.28", "562.787", "563.294", "563.801", "564.308", "564.815", "565.323", "565.83", "566.336", "566.843", "567.35", "567.857", "568.364", "568.87", "569.377", "569.884", "570.39", "570.897", "571.403", "571.91", "572.416", "572.922", "573.429", "573.935", "574.441", "574.947", "575.453", "575.959", "576.465", "576.971", "577.477", "577.983", "578.489", "578.995", "579.501", "580.006", "580.512", "581.018", "581.523", "582.029", "582.534", "583.04", "583.545", "584.05", "584.556", "585.061", "585.566", "586.071", "586.577", "587.082", "587.587", "588.092", "588.597", "589.102", "589.607", "590.112", "590.616", "591.121", "591.626", "592.131", "592.635", "593.14", "593.645", "594.149", "594.654", "595.158", "595.663", "596.167", "596.672", "597.176", "597.68", "598.185", "598.689", "599.193", "599.697", "600.201", "600.705", "601.209", "601.713", "602.217", "602.721", "603.225", "603.729", "604.233", "604.737", "605.241", "605.744", "606.248", "606.752", "607.255", "607.759", "608.263", "608.766", "609.27", "609.773", "610.277", "610.78", "611.283", "611.787", "612.29", "612.793", "613.297", "613.8", "614.303", "614.806", "615.309", "615.812", "616.316", "616.819", "617.322", "617.825", "618.328", "618.83", "619.333", "619.836", "620.339", "620.842", "621.345", "621.847", "622.35", "622.853", "623.355", "623.858", "624.361", "624.863", "625.366", "625.868", "626.371", "626.873", "627.376", "627.878", "628.381", "628.883", "629.385", "629.888", "630.39", "630.892", "631.395", "631.897", "632.399", "632.901", "633.403", "633.905", "634.408", "634.91", "635.412", "635.914", "636.416", "636.918", "637.42", "637.922", "638.424", "638.925", "639.427", "639.929", "640.431", "640.933", "641.435", "641.936", "642.438", "642.94", "643.442", "643.943", "644.445", "644.947", "645.448", "645.95", "646.451", "646.953", "647.455", "647.956", "648.458", "648.959", "649.461", "649.962", "650.464", "650.965", "651.466", "651.968", "652.469", "652.97", "653.472", "653.973", "654.474", "654.976", "655.477", "655.978", "656.48", "656.981", "657.482", "657.983", "658.484", "658.985", "659.487", "659.988", "660.489", "660.99", "661.491", "661.992", "662.493", "662.994", "663.495", "663.996", "664.497", "664.998", "665.499", "666", "666.501", "667.002", "667.503", "668.004", "668.505", "669.006", "669.507", "670.008", "670.509", "671.009", "671.51", "672.011", "672.512", "673.013", "673.514", "674.014", "674.515", "675.016", "675.517", "676.018", "676.518", "677.019", "677.52", "678.02", "678.521", "679.022", "679.523", "680.023", "680.524", "681.025", "681.525", "682.026", "682.527", "683.027", "683.528", "684.029", "684.529", "685.03", "685.531", "686.031", "686.532", "687.032", "687.533", "688.034", "688.534", "689.035", "689.536", "690.036", "690.537", "691.037", "691.538", "692.038", "692.539", "693.04", "693.54", "694.041", "694.541", "695.042", "695.542", "696.043", "696.544", "697.044", "697.545", "698.045", "698.546", "699.046", "699.547", "700.047", "700.548", "701.049", "701.549", "702.05", "702.55", "703.051", "703.551", "704.052", "704.552", "705.053", "705.554", "706.054", "706.555", "707.055", "707.556", "708.056", "708.557", "709.058", "709.558", "710.059", "710.559", "711.06", "711.561", "712.061", "712.562", "713.062", "713.563", "714.064", "714.564", "715.065", "715.566", "716.066", "716.567", "717.068", "717.568", "718.069", "718.57", "719.07", "719.571", "720.072", "720.572", "721.073", "721.574", "722.074", "722.575", "723.076", "723.577", "724.077", "724.578", "725.079", "725.58", "726.081", "726.581", "727.082", "727.583", "728.084", "728.585", "729.086", "729.586", "730.087", "730.588", "731.089", "731.59", "732.091", "732.592", "733.093", "733.594", "734.095", "734.596", "735.097", "735.598", "736.099", "736.6", "737.101", "737.602", "738.103", "738.604", "739.105", "739.606", "740.107", "740.609", "741.11", "741.611", "742.112", "742.613", "743.114", "743.616", "744.117", "744.618", "745.119", "745.621", "746.122", "746.623", "747.125", "747.626", "748.128", "748.629", "749.13", "749.632", "750.133", "750.635", "751.136", "751.638", "752.139", "752.641", "753.142", "753.644", "754.145", "754.647", "755.149", "755.65", "756.152", "756.654", "757.155", "757.657", "758.159", "758.661", "759.163", "759.664", "760.166", "760.668", "761.17", "761.672", "762.174", "762.676", "763.178", "763.68", "764.182", "764.684", "765.186", "765.688", "766.19", "766.692", "767.194", "767.697", "768.199", "768.701", "769.203", "769.706", "770.208", "770.71", "771.213", "771.715", "772.217", "772.72", "773.222", "773.725", "774.227", "774.73", "775.232", "775.735", "776.238", "776.74", "777.243", "777.746", "778.248", "778.751", "779.254", "779.757", "780.26", "780.763", "781.266", "781.768", "782.271", "782.774", "783.277", "783.781", "784.284", "784.787", "785.29", "785.793", "786.296", "786.799", "787.303", "787.806", "788.309", "788.813", "789.316", "789.82", "790.323", "790.827", "791.33", "791.834", "792.337", "792.841", "793.345", "793.848", "794.352", "794.856", "795.359", "795.863", "796.367", "796.871", "797.375", "797.879", "798.383", "798.887", "799.391", "799.895", "800.399", "800.904", "801.408", "801.912", "802.416", "802.921", "803.425", "803.929", "804.434", "804.938", "805.443", "805.947", "806.452", "806.957", "807.461", "807.966", "808.471", "808.975", "809.48", "809.985", "810.49", "810.995", "811.5", "812.005", "812.51", "813.015", "813.52", "814.026", "814.531", "815.036", "815.541", "816.047", "816.552", "817.057", "817.563", "818.068", "818.574", "819.08", "819.585", "820.091", "820.597", "821.102", "821.608", "822.114", "822.62", "823.126"] }, { "type": "character", "attributes": {}, "value": ["0.029", "20.027", "40.025", "60.026", "80.025", "100.023", "120.022", "140.022", "160.02", "180.019", "200.02", "220.018", "240.017", "260.016", "280.015", "300.014", "320.014", "340.014", "360.012", "380.012", "400.01", "420.009", "440.008", "460.007"] } ] } }, "value": [1110, 1110, 1110, 1108, 1108, 1108, 1108, 1110, 1110, 1114, 1118, 1120, 1120, 1120, 1120, 1120, 1122, 1122, 1122, 1122, 1122, 1130, 1130, 1128, 1128, 1128, 1124, 1124, 1128, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1128, 1128, 1126, 1126, 1126, 1132, 1132, 1132, 1132, 1132, 1130, 1128, 1128, 1128, 1128, 1126, 1126, 1126, 1126, 1130, 1130, 1130, 1130, 1130, 1130, 1128, 1128, 1128, 1130, 1132, 1136, 1136, 1136, 1136, 1128, 1128, 1132, 1134, 1134, 1134, 1132, 1132, 1132, 1130, 1130, 1132, 1134, 1136, 1136, 1136, 1136, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1130, 1130, 1128, 1128, 1128, 1128, 1128, 1128, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1132, 1128, 1128, 1126, 1126, 1126, 1130, 1130, 1130, 1130, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1138, 1138, 1136, 1132, 1132, 1132, 1132, 1132, 1132, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1124, 1124, 1124, 1124, 1128, 1128, 1128, 1136, 1136, 1136, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1130, 1130, 1130, 1128, 1128, 1126, 1126, 1126, 1128, 1130, 1130, 1130, 1128, 1128, 1128, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1132, 1136, 1136, 1142, 1142, 1142, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1126, 1126, 1126, 1126, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1140, 1140, 1140, 1138, 1138, 1136, 1130, 1126, 1126, 1126, 1126, 1130, 1132, 1132, 1132, 1130, 1126, 1126, 1126, 1130, 1130, 1130, 1130, 1128, 1128, 1132, 1132, 1132, 1136, 1136, 1136, 1144, 1144, 1144, 1136, 1136, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1130, 1130, 1130, 1128, 1128, 1128, 1128, 1128, 1126, 1126, 1126, 1126, 1126, 1124, 1124, 1124, 1124, 1126, 1126, 1128, 1136, 1136, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1124, 1124, 1124, 1134, 1134, 1134, 1134, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1136, 1136, 1136, 1136, 1132, 1130, 1130, 1130, 1130, 1134, 1134, 1134, 1132, 1132, 1132, 1138, 1138, 1138, 1134, 1134, 1134, 1134, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1136, 1136, 1136, 1128, 1126, 1126, 1128, 1132, 1134, 1134, 1134, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1126, 1126, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1126, 1126, 1126, 1126, 1126, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1138, 1138, 1138, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1128, 1128, 1128, 1132, 1132, 1132, 1132, 1124, 1124, 1124, 1130, 1130, 1134, 1140, 1140, 1138, 1132, 1128, 1128, 1128, 1132, 1138, 1138, 1134, 1134, 1128, 1128, 1128, 1134, 1136, 1136, 1136, 1136, 1136, 1136, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1132, 1132, 1126, 1126, 1126, 1130, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1128, 1128, 1128, 1132, 1136, 1136, 1136, 1136, 1134, 1130, 1130, 1134, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1130, 1128, 1128, 1134, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1132, 1132, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1130, 1130, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1130, 1130, 1128, 1128, 1128, 1128, 1128, 1130, 1130, 1130, 1130, 1130, 1126, 1126, 1128, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1128, 1128, 1128, 1128, 1128, 1120, 1120, 1126, 1128, 1128, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1128, 1128, 1128, 1134, 1134, 1134, 1124, 1124, 1124, 1126, 1126, 1126, 1130, 1130, 1130, 1128, 1128, 1128, 1130, 1130, 1130, 1124, 1124, 1124, 1132, 1132, 1136, 1136, 1136, 1136, 1136, 1136, 1134, 1134, 1132, 1132, 1128, 1128, 1128, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1128, 1128, 1128, 1128, 1128, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1130, 1128, 1128, 1124, 1124, 1124, 1128, 1132, 1132, 1132, 1124, 1124, 1124, 1124, 1134, 1134, 1134, 1134, 1134, 1132, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1136, 1136, 1136, 1136, 1136, 1132, 1132, 1132, 1132, 1132, 1132, 1128, 1128, 1128, 1126, 1126, 1136, 1136, 1136, 1130, 1130, 1130, 1128, 1130, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1128, 1128, 1128, 1130, 1136, 1136, 1136, 1134, 1134, 1130, 1128, 1128, 1128, 1128, 1130, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1134, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1134, 1134, 1134, 1130, 1130, 1130, 1130, 1138, 1138, 1138, 1138, 1130, 1128, 1128, 1130, 1130, 1130, 1130, 1132, 1132, 1130, 1130, 1130, 1136, 1136, 1136, 1134, 1134, 1134, 1134, 1136, 1136, 1136, 1130, 1130, 1134, 1134, 1134, 1134, 1134, 1128, 1128, 1128, 1128, 1134, 1134, 1134, 1132, 1126, 1126, 1126, 1130, 1130, 1130, 1138, 1138, 1138, 1138, 1134, 1134, 1134, 1134, 1134, 1136, 1138, 1138, 1138, 1134, 1134, 1134, 1134, 1134, 1130, 1130, 1130, 1130, 1130, 1130, 1134, 1134, 1134, 1134, 1132, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1124, 1124, 1124, 1126, 1132, 1132, 1132, 1134, 1142, 1142, 1142, 1136, 1130, 1130, 1130, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1130, 1130, 1130, 1126, 1126, 1126, 1126, 1130, 1134, 1134, 1122, 1122, 1124, 1130, 1130, 1130, 1130, 1130, 1130, 1128, 1124, 1124, 1124, 1130, 1130, 1130, 1130, 1128, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1128, 1128, 1128, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1112, 1112, 1112, 1110, 1110, 1110, 1110, 1116, 1124, 1125, 1125, 1126, 1126, 1126, 1126, 1128, 1128, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1136, 1136, 1136, 1136, 1136, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1128, 1128, 1128, 1128, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1136, 1136, 1136, 1136, 1136, 1136, 1134, 1134, 1134, 1132, 1130, 1130, 1130, 1130, 1130, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1128, 1128, 1128, 1128, 1128, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1128, 1128, 1128, 1132, 1134, 1134, 1134, 1122, 1120, 1110, 1110, 1110, 1110, 1114, 1114, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1122, 1122, 1124, 1126, 1128, 1128, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1136, 1136, 1136, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1136, 1136, 1136, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1130, 1130, 1130, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1136, 1136, 1136, 1136, 1134, 1134, 1134, 1134, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1134, 1134, 1134, 1136, 1136, 1136, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1140, 1140, 1140, 1140, 1140, 1140, 1138, 1138, 1138, 1138, 1138, 1140, 1140, 1140, 1140, 1140, 1140, 1142, 1142, 1142, 1142, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1136, 1136, 1136, 1136, 1136, 1134, 1134, 1134, 1136, 1136, 1136, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1136, 1136, 1136, 1136, 1136, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1134, 1134, 1134, 1134, 1134, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1136, 1136, 1136, 1136, 1136, 1138, 1138, 1138, 1138, 1136, 1136, 1136, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1132, 1132, 1132, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1132, 1132, 1132, 1132, 1132, 1132, 1138, 1138, 1140, 1140, 1138, 1138, 1132, 1130, 1126, 1136, 1136, 1128, 1114, 1112, 1112, 1112, 1114, 1124, 1124, 1124, 1124, 1124, 1124, 1128, 1128, 1128, 1130, 1132, 1132, 1136, 1136, 1138, 1140, 1140, 1140, 1140, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1142, 1142, 1142, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1136, 1136, 1136, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1140, 1140, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1146, 1148, 1148, 1148, 1148, 1148, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1152, 1152, 1152, 1154, 1154, 1154, 1154, 1152, 1152, 1152, 1156, 1156, 1156, 1156, 1156, 1156, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1168, 1168, 1168, 1168, 1168, 1168, 1172, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1176, 1174, 1174, 1174, 1176, 1176, 1176, 1176, 1176, 1176, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1170, 1170, 1170, 1172, 1172, 1172, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1168, 1168, 1168, 1168, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1170, 1170, 1170, 1170, 1170, 1172, 1172, 1172, 1172, 1172, 1172, 1174, 1174, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1172, 1172, 1172, 1172, 1172, 1172, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1172, 1172, 1172, 1172, 1174, 1174, 1174, 1174, 1174, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1168, 1168, 1168, 1166, 1166, 1166, 1166, 1164, 1164, 1164, 1164, 1164, 1164, 1162, 1162, 1162, 1162, 1162, 1160, 1160, 1160, 1160, 1162, 1162, 1162, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1158, 1158, 1158, 1158, 1156, 1156, 1156, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1152, 1152, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1148, 1148, 1148, 1148, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1144, 1144, 1142, 1142, 1142, 1144, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1148, 1148, 1148, 1148, 1146, 1146, 1146, 1146, 1146, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1146, 1146, 1148, 1150, 1150, 1150, 1152, 1152, 1152, 1152, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1152, 1152, 1152, 1152, 1154, 1154, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1158, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1162, 1162, 1162, 1162, 1162, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1142, 1142, 1142, 1142, 1142, 1142, 1144, 1144, 1144, 1142, 1142, 1142, 1142, 1142, 1142, 1144, 1144, 1144, 1144, 1144, 1146, 1146, 1148, 1148, 1148, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1152, 1206, 1206, 1206, 1206, 1146, 1146, 1142, 1142, 1138, 1138, 1138, 1134, 1134, 1134, 1136, 1140, 1142, 1148, 1150, 1152, 1156, 1156, 1156, 1156, 1148, 1148, 1148, 1148, 1154, 1154, 1154, 1150, 1150, 1150, 1150, 1154, 1154, 1154, 1154, 1154, 1152, 1152, 1152, 1154, 1154, 1156, 1160, 1160, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1158, 1154, 1154, 1154, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1162, 1162, 1162, 1162, 1162, 1172, 1172, 1166, 1166, 1174, 1174, 1174, 1174, 1174, 1174, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1178, 1180, 1182, 1184, 1184, 1180, 1180, 1180, 1180, 1180, 1184, 1184, 1184, 1184, 1192, 1192, 1194, 1194, 1194, 1194, 1184, 1184, 1200, 1204, 1208, 1208, 1208, 1208, 1208, 1210, 1216, 1220, 1222, 1222, 1224, 1224, 1226, 1226, 1226, 1226, 1228, 1230, 1230, 1230, 1230, 1230, 1230, 1232, 1234, 1236, 1236, 1236, 1236, 1238, 1238, 1240, 1240, 1244, 1244, 1246, 1246, 1248, 1248, 1252, 1254, 1256, 1256, 1258, 1258, 1258, 1262, 1262, 1262, 1264, 1264, 1264, 1266, 1266, 1268, 1268, 1268, 1268, 1268, 1268, 1272, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1276, 1276, 1280, 1280, 1282, 1282, 1284, 1284, 1286, 1288, 1288, 1288, 1290, 1294, 1294, 1294, 1296, 1296, 1296, 1298, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1302, 1302, 1304, 1304, 1306, 1306, 1306, 1306, 1306, 1308, 1308, 1308, 1308, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1304, 1304, 1304, 1302, 1302, 1302, 1302, 1302, 1302, 1300, 1298, 1298, 1298, 1298, 1298, 1300, 1300, 1300, 1300, 1300, 1298, 1298, 1298, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1292, 1292, 1292, 1292, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1288, 1288, 1288, 1288, 1288, 1288, 1284, 1284, 1280, 1280, 1280, 1280, 1276, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1272, 1272, 1272, 1272, 1272, 1270, 1270, 1270, 1266, 1266, 1264, 1264, 1264, 1264, 1264, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1264, 1264, 1264, 1264, 1266, 1266, 1266, 1266, 1266, 1264, 1264, 1264, 1264, 1266, 1266, 1266, 1264, 1264, 1264, 1262, 1262, 1260, 1260, 1260, 1260, 1260, 1262, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1268, 1268, 1270, 1270, 1270, 1270, 1268, 1268, 1268, 1268, 1268, 1274, 1274, 1274, 1274, 1278, 1278, 1278, 1282, 1282, 1282, 1282, 1282, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1286, 1286, 1286, 1286, 1286, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1292, 1292, 1292, 1292, 1296, 1300, 1300, 1300, 1296, 1296, 1296, 1296, 1296, 1296, 1298, 1298, 1298, 1298, 1298, 1298, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1294, 1294, 1294, 1292, 1292, 1292, 1292, 1292, 1292, 1290, 1290, 1290, 1292, 1292, 1292, 1288, 1288, 1288, 1286, 1284, 1280, 1280, 1280, 1280, 1278, 1278, 1278, 1278, 1278, 1278, 1276, 1276, 1276, 1274, 1274, 1274, 1274, 1272, 1272, 1272, 1272, 1270, 1270, 1268, 1268, 1264, 1262, 1260, 1260, 1260, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1252, 1252, 1252, 1252, 1250, 1250, 1250, 1248, 1248, 1246, 1246, 1246, 1246, 1244, 1240, 1240, 1240, 1240, 1238, 1236, 1236, 1236, 1234, 1230, 1230, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1226, 1224, 1224, 1222, 1222, 1220, 1218, 1218, 1218, 1218, 1218, 1216, 1208, 1208, 1208, 1204, 1204, 1204, 1204, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1196, 1196, 1196, 1196, 1196, 1196, 1198, 1198, 1196, 1196, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1196, 1196, 1196, 1196, 1190, 1190, 1190, 1192, 1194, 1198, 1198, 1198, 1198, 1198, 1194, 1188, 1188, 1188, 1192, 1192, 1192, 1192, 1192, 1192, 1188, 1188, 1188, 1188, 1188, 1188, 1186, 1186, 1186, 1184, 1184, 1184, 1188, 1188, 1188, 1188, 1184, 1184, 1184, 1188, 1188, 1190, 1190, 1192, 1192, 1192, 1184, 1184, 1184, 1184, 1186, 1188, 1188, 1188, 1188, 1182, 1182, 1182, 1182, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1190, 1190, 1190, 1192, 1198, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1198, 1198, 1198, 1198, 1198, 1198, 1202, 1202, 1200, 1200, 1200, 1200, 1202, 1202, 1202, 1202, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1204, 1204, 1206, 1206, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1210, 1212, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1216, 1216, 1216, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1216, 1216, 1216, 1216, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1206, 1206, 1206, 1206, 1206, 1206, 1204, 1204, 1198, 1198, 1196, 1196, 1196, 1198, 1200, 1204, 1204, 1202, 1198, 1196, 1196, 1198, 1198, 1198, 1198, 1198, 1196, 1196, 1192, 1192, 1192, 1196, 1196, 1196, 1194, 1194, 1192, 1192, 1192, 1190, 1190, 1190, 1190, 1194, 1194, 1194, 1194, 1186, 1184, 1184, 1184, 1180, 1180, 1180, 1180, 1184, 1184, 1184, 1184, 1186, 1186, 1186, 1182, 1180, 1178, 1178, 1178, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1180, 1178, 1178, 1174, 1172, 1172, 1172, 1172, 1172, 1176, 1176, 1176, 1176, 1176, 1160, 1160, 1160, 1162, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1180, 1180, 1180, 1170, 1170, 1170, 1164, 1164, 1164, 1166, 1166, 1166, 1166, 1166, 1172, 1172, 1172, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1160, 1160, 1160, 1160, 1164, 1164, 1164, 1164, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1160, 1160, 1160, 1160, 1162, 1162, 1164, 1164, 1164, 1164, 1164, 1164, 1166, 1166, 1166, 1166, 1166, 1168, 1168, 1170, 1170, 1170, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1174, 1174, 1176, 1176, 1176, 1176, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1180, 1180, 1182, 1182, 1182, 1182, 1182, 1184, 1184, 1186, 1186, 1186, 1186, 1186, 1186, 1188, 1188, 1188, 1192, 1192, 1192, 1196, 1196, 1196, 1196, 1196, 1198, 1198, 1198, 1198, 1198, 1200, 1200, 1202, 1202, 1202, 1202, 1206, 1206, 1210, 1212, 1212, 1212, 1212, 1214, 1214, 1216, 1216, 1220, 1226, 1226, 1226, 1226, 1234, 1234, 1238, 1240, 1242, 1242, 1244, 1246, 1246, 1246, 1246, 1248, 1252, 1254, 1256, 1256, 1258, 1258, 1260, 1260, 1262, 1262, 1268, 1268, 1270, 1270, 1270, 1270, 1272, 1274, 1274, 1278, 1278, 1288, 1292, 1292, 1292, 1296, 1298, 1298, 1298, 1300, 1300, 1300, 1302, 1304, 1304, 1306, 1306, 1308, 1308, 1310, 1310, 1318, 1318, 1318, 1320, 1322, 1322, 1322, 1324, 1326, 1326, 1326, 1328, 1328, 1328, 1330, 1330, 1334, 1336, 1336, 1338, 1340, 1340, 1344, 1346, 1346, 1346, 1348, 1348, 1350, 1350, 1352, 1356, 1358, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1362, 1362, 1362, 1362, 1362, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1358, 1358, 1358, 1358, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1352, 1352, 1352, 1352, 1352, 1350, 1350, 1348, 1348, 1346, 1346, 1346, 1346, 1346, 1346, 1342, 1342, 1342, 1342, 1340, 1340, 1340, 1340, 1340, 1338, 1338, 1338, 1338, 1338, 1338, 1336, 1336, 1332, 1332, 1332, 1332, 1330, 1330, 1328, 1328, 1326, 1326, 1324, 1324, 1324, 1324, 1324, 1322, 1322, 1322, 1320, 1318, 1318, 1318, 1316, 1316, 1316, 1316, 1316, 1314, 1314, 1312, 1312, 1312, 1312, 1312, 1310, 1310, 1310, 1310, 1308, 1308, 1308, 1308, 1308, 1310, 1310, 1310, 1310, 1310, 1310, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1312, 1312, 1312, 1312, 1312, 1314, 1314, 1314, 1314, 1314, 1318, 1318, 1318, 1318, 1322, 1322, 1322, 1324, 1326, 1326, 1328, 1330, 1330, 1330, 1330, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1334, 1334, 1338, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1342, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1350, 1350, 1352, 1352, 1352, 1356, 1358, 1358, 1358, 1358, 1358, 1358, 1360, 1360, 1362, 1362, 1362, 1362, 1362, 1362, 1364, 1364, 1364, 1366, 1368, 1370, 1370, 1370, 1370, 1370, 1370, 1374, 1374, 1376, 1376, 1376, 1376, 1376, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1372, 1372, 1372, 1372, 1372, 1370, 1370, 1368, 1364, 1364, 1364, 1364, 1364, 1362, 1362, 1362, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1358, 1356, 1356, 1356, 1354, 1350, 1350, 1350, 1346, 1346, 1346, 1344, 1342, 1340, 1336, 1336, 1336, 1334, 1332, 1332, 1330, 1328, 1326, 1324, 1322, 1320, 1314, 1314, 1314, 1314, 1314, 1314, 1312, 1310, 1310, 1306, 1304, 1302, 1302, 1302, 1300, 1296, 1296, 1294, 1294, 1292, 1292, 1292, 1290, 1290, 1288, 1288, 1288, 1288, 1286, 1286, 1286, 1284, 1280, 1280, 1280, 1280, 1278, 1276, 1276, 1272, 1272, 1272, 1270, 1268, 1266, 1262, 1262, 1262, 1262, 1260, 1260, 1260, 1260, 1258, 1256, 1256, 1254, 1254, 1254, 1254, 1254, 1252, 1250, 1248, 1248, 1248, 1248, 1246, 1246, 1246, 1242, 1242, 1242, 1242, 1240, 1240, 1240, 1236, 1236, 1234, 1234, 1232, 1230, 1230, 1230, 1230, 1230, 1230, 1232, 1232, 1232, 1232, 1232, 1232, 1230, 1230, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1226, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1222, 1218, 1218, 1218, 1218, 1216, 1216, 1216, 1218, 1218, 1218, 1218, 1216, 1216, 1216, 1218, 1218, 1218, 1218, 1222, 1222, 1222, 1222, 1222, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1220, 1220, 1220, 1222, 1222, 1222, 1222, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1226, 1226, 1228, 1228, 1228, 1228, 1228, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1234, 1234, 1234, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1228, 1228, 1228, 1226, 1226, 1226, 1226, 1226, 1226, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1222, 1220, 1220, 1218, 1218, 1218, 1218, 1216, 1216, 1216, 1216, 1216, 1214, 1214, 1212, 1212, 1212, 1212, 1212, 1210, 1210, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1206, 1206, 1206, 1206, 1206, 1206, 1204, 1204, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1196, 1196, 1196, 1196, 1194, 1194, 1194, 1194, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1190, 1190, 1190, 1190, 1190, 1190, 1188, 1188, 1188, 1188, 1188, 1184, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1178, 1178, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1174, 1174, 1174, 1174, 1174, 1174, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1174, 1174, 1174, 1174, 1174, 1146, 1148, 1150, 1152, 1156, 1156, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1162, 1162, 1162, 1164, 1164, 1164, 1164, 1164, 1162, 1162, 1162, 1162, 1168, 1168, 1168, 1168, 1168, 1168, 1172, 1172, 1172, 1172, 1172, 1170, 1170, 1170, 1170, 1172, 1172, 1172, 1164, 1164, 1164, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1172, 1172, 1172, 1172, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1176, 1176, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1184, 1184, 1184, 1184, 1186, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1194, 1194, 1194, 1194, 1194, 1194, 1196, 1196, 1196, 1198, 1200, 1200, 1200, 1202, 1208, 1210, 1210, 1210, 1212, 1214, 1214, 1218, 1218, 1218, 1220, 1220, 1220, 1222, 1226, 1228, 1228, 1228, 1228, 1228, 1230, 1232, 1234, 1234, 1240, 1242, 1242, 1248, 1250, 1250, 1250, 1254, 1254, 1254, 1254, 1254, 1254, 1256, 1256, 1260, 1260, 1260, 1260, 1262, 1262, 1262, 1262, 1264, 1264, 1264, 1266, 1266, 1268, 1270, 1276, 1276, 1278, 1278, 1278, 1280, 1280, 1282, 1284, 1286, 1286, 1288, 1288, 1288, 1290, 1290, 1290, 1294, 1294, 1300, 1302, 1302, 1302, 1304, 1304, 1304, 1304, 1304, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1308, 1308, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1308, 1308, 1308, 1308, 1308, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1300, 1300, 1300, 1298, 1298, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1294, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1290, 1290, 1288, 1288, 1286, 1286, 1286, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1282, 1282, 1282, 1282, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1274, 1274, 1274, 1274, 1272, 1272, 1272, 1274, 1274, 1274, 1272, 1272, 1272, 1270, 1270, 1270, 1272, 1272, 1272, 1270, 1270, 1270, 1272, 1272, 1272, 1270, 1270, 1270, 1270, 1270, 1270, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1276, 1276, 1276, 1280, 1280, 1280, 1280, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1284, 1284, 1286, 1286, 1286, 1288, 1288, 1288, 1288, 1290, 1290, 1292, 1294, 1296, 1296, 1296, 1298, 1300, 1302, 1302, 1304, 1304, 1304, 1308, 1308, 1310, 1310, 1310, 1310, 1312, 1312, 1312, 1316, 1316, 1316, 1318, 1318, 1318, 1320, 1320, 1320, 1320, 1324, 1324, 1328, 1328, 1330, 1330, 1330, 1332, 1332, 1332, 1332, 1334, 1334, 1334, 1334, 1338, 1338, 1338, 1340, 1340, 1342, 1344, 1348, 1348, 1348, 1350, 1350, 1350, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1344, 1344, 1344, 1344, 1342, 1342, 1342, 1340, 1336, 1336, 1336, 1336, 1334, 1330, 1330, 1330, 1328, 1328, 1328, 1326, 1324, 1324, 1324, 1324, 1318, 1318, 1318, 1316, 1314, 1314, 1310, 1310, 1310, 1308, 1308, 1308, 1306, 1304, 1300, 1300, 1300, 1300, 1298, 1296, 1296, 1294, 1294, 1292, 1288, 1288, 1286, 1284, 1284, 1282, 1282, 1282, 1282, 1280, 1278, 1276, 1276, 1270, 1270, 1270, 1270, 1268, 1268, 1268, 1268, 1266, 1266, 1264, 1262, 1256, 1256, 1256, 1254, 1254, 1254, 1252, 1252, 1252, 1250, 1250, 1250, 1242, 1242, 1242, 1242, 1242, 1240, 1240, 1238, 1238, 1238, 1238, 1238, 1238, 1236, 1236, 1234, 1234, 1234, 1230, 1230, 1230, 1230, 1228, 1228, 1228, 1228, 1226, 1226, 1226, 1226, 1226, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1220, 1220, 1220, 1218, 1218, 1218, 1218, 1214, 1214, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1210, 1210, 1210, 1210, 1210, 1208, 1206, 1206, 1206, 1206, 1204, 1202, 1202, 1202, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1202, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1204, 1204, 1204, 1204, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1190, 1190, 1190, 1190, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1188, 1188, 1188, 1186, 1186, 1186, 1188, 1188, 1188, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1184, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1180, 1180, 1180, 1182, 1182, 1182, 1182, 1182, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1182, 1182, 1182, 1182, 1182, 1178, 1178, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1172, 1170, 1166, 1166, 1166, 1166, 1166, 1162, 1160, 1160, 1160, 1160, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1162, 1160, 1160, 1158, 1158, 1158, 1162, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1160, 1158, 1158, 1160, 1162, 1162, 1164, 1164, 1164, 1160, 1160, 1162, 1162, 1162, 1162, 1158, 1156, 1156, 1156, 1154, 1154, 1154, 1154, 1154, 1148, 1148, 1146, 1144, 1142, 1142, 1142, 1152, 1152, 1152, 1148, 1148, 1150, 1158, 1160, 1160, 1160, 1160, 1160, 1166, 1166, 1166, 1160, 1160, 1160, 1162, 1168, 1168, 1168, 1168, 1168, 1166, 1166, 1166, 1166, 1158, 1156, 1156, 1160, 1166, 1166, 1168, 1168, 1168, 1168, 1168, 1168, 1170, 1170, 1170, 1170, 1164, 1164, 1164, 1170, 1170, 1172, 1172, 1172, 1172, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1168, 1166, 1166, 1166, 1166, 1166, 1168, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1174, 1174, 1174, 1174, 1174, 1178, 1178, 1178, 1180, 1180, 1182, 1182, 1186, 1186, 1186, 1186, 1186, 1188, 1188, 1190, 1190, 1190, 1194, 1194, 1196, 1196, 1196, 1196, 1196, 1198, 1198, 1198, 1198, 1200, 1202, 1202, 1204, 1204, 1204, 1204, 1206, 1206, 1210, 1210, 1216, 1216, 1220, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1230, 1230, 1230, 1234, 1234, 1234, 1234, 1238, 1238, 1238, 1240, 1240, 1240, 1240, 1240, 1246, 1246, 1246, 1246, 1248, 1250, 1250, 1250, 1252, 1252, 1252, 1252, 1254, 1254, 1254, 1258, 1258, 1258, 1258, 1260, 1260, 1260, 1260, 1260, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1264, 1264, 1264, 1266, 1266, 1266, 1268, 1268, 1270, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1270, 1268, 1268, 1268, 1266, 1266, 1266, 1266, 1266, 1266, 1264, 1264, 1264, 1264, 1262, 1262, 1262, 1262, 1262, 1262, 1260, 1260, 1260, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1256, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1252, 1252, 1252, 1250, 1250, 1246, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1242, 1242, 1242, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1238, 1238, 1236, 1234, 1234, 1234, 1234, 1234, 1232, 1232, 1232, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1232, 1232, 1232, 1232, 1232, 1232, 1230, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1238, 1240, 1240, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1246, 1246, 1246, 1250, 1252, 1252, 1254, 1254, 1254, 1256, 1258, 1258, 1258, 1258, 1260, 1260, 1262, 1262, 1262, 1264, 1264, 1268, 1268, 1270, 1274, 1276, 1276, 1276, 1276, 1276, 1278, 1280, 1280, 1280, 1280, 1282, 1284, 1284, 1284, 1284, 1284, 1286, 1286, 1286, 1288, 1288, 1288, 1290, 1290, 1292, 1292, 1292, 1292, 1294, 1294, 1294, 1296, 1296, 1296, 1298, 1298, 1298, 1298, 1302, 1302, 1302, 1302, 1302, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1308, 1308, 1308, 1308, 1308, 1306, 1306, 1306, 1304, 1304, 1304, 1304, 1302, 1302, 1302, 1302, 1302, 1300, 1300, 1298, 1298, 1298, 1298, 1298, 1298, 1296, 1294, 1294, 1294, 1292, 1292, 1290, 1290, 1288, 1286, 1286, 1282, 1276, 1276, 1276, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1268, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1262, 1260, 1258, 1258, 1254, 1252, 1252, 1252, 1250, 1250, 1250, 1250, 1250, 1250, 1248, 1248, 1246, 1242, 1242, 1242, 1240, 1238, 1238, 1238, 1238, 1234, 1234, 1234, 1232, 1232, 1228, 1226, 1222, 1222, 1222, 1222, 1222, 1222, 1220, 1218, 1218, 1214, 1212, 1212, 1210, 1210, 1210, 1210, 1210, 1210, 1208, 1206, 1206, 1206, 1206, 1204, 1204, 1204, 1204, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1204, 1202, 1200, 1200, 1200, 1200, 1200, 1200, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1194, 1194, 1194, 1194, 1192, 1192, 1192, 1190, 1190, 1190, 1190, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1186, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1182, 1182, 1182, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1180, 1180, 1180, 1180, 1180, 1180, 1184, 1184, 1184, 1184, 1180, 1180, 1180, 1178, 1178, 1178, 1178, 1178, 1178, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1182, 1182, 1182, 1182, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1178, 1178, 1178, 1180, 1180, 1180, 1178, 1178, 1178, 1178, 1176, 1176, 1176, 1176, 1176, 1178, 1178, 1178, 1178, 1178, 1176, 1176, 1176, 1176, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1170, 1170, 1170, 1170, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1170, 1170, 1166, 1166, 1170, 1170, 1170, 1170, 1170, 1170, 1168, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1164, 1154, 1154, 1154, 1164, 1164, 1164, 1164, 1164, 1160, 1160, 1160, 1160, 1160, 1164, 1164, 1164, 1160, 1158, 1158, 1160, 1160, 1160, 1160, 1162, 1164, 1164, 1164, 1160, 1160, 1160, 1160, 1160, 1162, 1162, 1162, 1158, 1158, 1158, 1158, 1156, 1156, 1156, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1156, 1156, 1158, 1160, 1160, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1160, 1160, 1150, 1150, 1150, 1150, 1152, 1152, 1152, 1160, 1166, 1166, 1166, 1158, 1158, 1154, 1150, 1150, 1150, 1158, 1158, 1158, 1158, 1148, 1148, 1148, 1152, 1156, 1156, 1156, 1156, 1156, 1154, 1154, 1154, 1154, 1156, 1156, 1156, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1154, 1156, 1156, 1156, 1156, 1140, 1140, 1146, 1146, 1146, 1144, 1144, 1144, 1148, 1148, 1148, 1148, 1144, 1144, 1144, 1150, 1156, 1156, 1156, 1150, 1150, 1150, 1150, 1160, 1160, 1160, 1160, 1160, 1160, 1162, 1170, 1170, 1170, 1170, 1170, 1166, 1164, 1160, 1160, 1166, 1172, 1172, 1172, 1170, 1170, 1170, 1170, 1166, 1166, 1164, 1164, 1164, 1172, 1172, 1172, 1170, 1168, 1168, 1166, 1166, 1166, 1168, 1172, 1172, 1172, 1172, 1172, 1172, 1180, 1180, 1180, 1172, 1168, 1168, 1164, 1164, 1164, 1176, 1176, 1176, 1176, 1176, 1174, 1174, 1174, 1174, 1176, 1176, 1176, 1172, 1172, 1168, 1168, 1168, 1170, 1170, 1170, 1170, 1170, 1170, 1168, 1166, 1166, 1166, 1166, 1174, 1180, 1180, 1180, 1168, 1168, 1168, 1168, 1168, 1176, 1176, 1168, 1168, 1174, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1182, 1192, 1192, 1192, 1196, 1196, 1198, 1198, 1198, 1198, 1198, 1198, 1200, 1200, 1200, 1200, 1200, 1202, 1204, 1208, 1208, 1208, 1210, 1210, 1210, 1210, 1212, 1212, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1216, 1216, 1216, 1218, 1218, 1220, 1220, 1224, 1224, 1226, 1226, 1226, 1228, 1230, 1230, 1230, 1232, 1232, 1232, 1232, 1232, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1236, 1236, 1236, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1232, 1232, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1226, 1226, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1222, 1222, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1218, 1218, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1214, 1214, 1214, 1214, 1214, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1210, 1210, 1210, 1208, 1208, 1208, 1208, 1206, 1206, 1206, 1204, 1204, 1204, 1204, 1204, 1204, 1202, 1202, 1202, 1202, 1202, 1204, 1204, 1204, 1204, 1204, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1200, 1198, 1198, 1198, 1198, 1196, 1196, 1196, 1196, 1196, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1200, 1200, 1200, 1200, 1200, 1200, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1204, 1204, 1206, 1208, 1208, 1208, 1210, 1210, 1210, 1212, 1212, 1212, 1212, 1214, 1214, 1214, 1220, 1222, 1222, 1222, 1222, 1222, 1224, 1226, 1226, 1226, 1226, 1226, 1226, 1228, 1228, 1228, 1230, 1230, 1232, 1232, 1232, 1232, 1232, 1232, 1234, 1234, 1236, 1236, 1236, 1240, 1240, 1240, 1240, 1242, 1244, 1246, 1246, 1246, 1246, 1246, 1248, 1248, 1250, 1250, 1252, 1252, 1256, 1256, 1256, 1256, 1256, 1256, 1258, 1260, 1260, 1260, 1260, 1260, 1260, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1270, 1270, 1270, 1270, 1266, 1266, 1264, 1264, 1264, 1264, 1264, 1266, 1266, 1266, 1266, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1262, 1262, 1260, 1258, 1258, 1258, 1258, 1258, 1256, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1252, 1252, 1252, 1252, 1252, 1252, 1250, 1250, 1250, 1250, 1250, 1250, 1248, 1246, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1242, 1242, 1242, 1242, 1242, 1242, 1240, 1240, 1240, 1240, 1240, 1238, 1232, 1230, 1228, 1228, 1228, 1226, 1226, 1226, 1224, 1224, 1224, 1224, 1222, 1222, 1222, 1220, 1216, 1216, 1216, 1216, 1216, 1216, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1206, 1206, 1204, 1202, 1202, 1202, 1202, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1198, 1198, 1198, 1198, 1196, 1196, 1196, 1196, 1196, 1196, 1192, 1192, 1192, 1190, 1190, 1188, 1188, 1188, 1188, 1188, 1188, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1184, 1182, 1182, 1182, 1182, 1178, 1176, 1176, 1180, 1182, 1182, 1178, 1176, 1176, 1174, 1174, 1176, 1176, 1176, 1176, 1176, 1172, 1172, 1172, 1178, 1178, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1172, 1172, 1172, 1176, 1176, 1176, 1174, 1174, 1174, 1172, 1172, 1172, 1172, 1172, 1174, 1174, 1174, 1166, 1166, 1166, 1166, 1170, 1170, 1170, 1164, 1164, 1164, 1168, 1172, 1172, 1172, 1170, 1168, 1166, 1166, 1162, 1162, 1162, 1160, 1160, 1158, 1158, 1158, 1164, 1164, 1164, 1164, 1166, 1166, 1166, 1166, 1166, 1168, 1168, 1170, 1170, 1172, 1172, 1172, 1164, 1164, 1164, 1166, 1170, 1170, 1166, 1156, 1156, 1156, 1166, 1166, 1166, 1166, 1166, 1158, 1158, 1158, 1158, 1158, 1162, 1166, 1166, 1166, 1162, 1162, 1162, 1156, 1156, 1156, 1160, 1160, 1160, 1160, 1160, 1160, 1158, 1158, 1158, 1160, 1164, 1164, 1160, 1154, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1152, 1152, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1154, 1154, 1154, 1154, 1156, 1156, 1156, 1148, 1148, 1148, 1152, 1152, 1154, 1154, 1154, 1156, 1156, 1156, 1156, 1158, 1158, 1158, 1158, 1158, 1156, 1146, 1146, 1160, 1160, 1146, 1146, 1146, 1146, 1146, 1156, 1156, 1156, 1152, 1146, 1146, 1146, 1150, 1150, 1150, 1150, 1150, 1150, 1148, 1148, 1148, 1148, 1152, 1156, 1156, 1150, 1146, 1146, 1146, 1148, 1154, 1154, 1154, 1148, 1144, 1144, 1144, 1144, 1144, 1144, 1148, 1148, 1148, 1148, 1150, 1150, 1150, 1148, 1146, 1146, 1148, 1148, 1148, 1148, 1148, 1150, 1150, 1150, 1146, 1146, 1146, 1148, 1148, 1148, 1148, 1148, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1144, 1142, 1142, 1142, 1142, 1142, 1144, 1144, 1144, 1144, 1144, 1144, 1150, 1150, 1150, 1150, 1150, 1154, 1154, 1148, 1148, 1146, 1144, 1144, 1142, 1142, 1142, 1146, 1146, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1142, 1142, 1128, 1128, 1128, 1128, 1132, 1132, 1132, 1142, 1142, 1142, 1144, 1144, 1144, 1144, 1144, 1146, 1148, 1148, 1148, 1148, 1148, 1152, 1152, 1154, 1156, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1164, 1164, 1164, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1164, 1164, 1164, 1166, 1166, 1166, 1166, 1168, 1168, 1168, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1168, 1168, 1168, 1168, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1172, 1172, 1172, 1172, 1176, 1176, 1176, 1176, 1178, 1178, 1178, 1178, 1178, 1180, 1180, 1180, 1180, 1180, 1186, 1186, 1186, 1186, 1186, 1186, 1188, 1188, 1188, 1190, 1190, 1190, 1190, 1192, 1192, 1192, 1194, 1194, 1196, 1196, 1198, 1198, 1198, 1200, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1204, 1204, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1196, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1192, 1192, 1192, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1188, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1182, 1182, 1182, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1176, 1176, 1176, 1176, 1176, 1178, 1178, 1178, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1176, 1176, 1178, 1178, 1178, 1178, 1180, 1180, 1180, 1180, 1180, 1180, 1182, 1182, 1182, 1182, 1184, 1184, 1184, 1184, 1184, 1184, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1190, 1190, 1190, 1190, 1192, 1192, 1192, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1200, 1200, 1200, 1202, 1202, 1204, 1204, 1204, 1204, 1204, 1204, 1206, 1206, 1208, 1210, 1210, 1212, 1212, 1214, 1214, 1214, 1216, 1216, 1216, 1216, 1218, 1218, 1218, 1218, 1218, 1218, 1222, 1222, 1226, 1226, 1228, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1232, 1232, 1232, 1232, 1232, 1234, 1234, 1234, 1234, 1234, 1234, 1236, 1236, 1236, 1236, 1236, 1238, 1238, 1240, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1246, 1246, 1246, 1246, 1248, 1248, 1248, 1250, 1250, 1250, 1250, 1250, 1250, 1252, 1252, 1252, 1252, 1252, 1252, 1254, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1258, 1258, 1258, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1260, 1260, 1260, 1260, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1262, 1262, 1262, 1262, 1262, 1262, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1264, 1264, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1260, 1260, 1260, 1260, 1260, 1256, 1256, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1252, 1252, 1252, 1252, 1252, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1248, 1248, 1248, 1246, 1246, 1246, 1246, 1246, 1246, 1244, 1240, 1240, 1240, 1238, 1238, 1238, 1238, 1238, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1234, 1232, 1232, 1230, 1230, 1226, 1226, 1226, 1226, 1224, 1222, 1222, 1222, 1222, 1222, 1220, 1220, 1220, 1220, 1218, 1218, 1218, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1214, 1212, 1212, 1208, 1208, 1206, 1206, 1206, 1206, 1206, 1206, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1202, 1202, 1198, 1198, 1196, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1190, 1190, 1190, 1188, 1188, 1188, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1182, 1182, 1182, 1182, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1174, 1172, 1172, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1168, 1168, 1168, 1168, 1164, 1164, 1164, 1164, 1162, 1162, 1162, 1160, 1160, 1160, 1160, 1160, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1160, 1160, 1160, 1158, 1158, 1158, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1154, 1154, 1154, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1150, 1150, 1150, 1150, 1150, 1150, 1148, 1148, 1148, 1148, 1148, 1148, 1150, 1150, 1150, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1148, 1148, 1148, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1148, 1148, 1148, 1148, 1148, 1146, 1146, 1146, 1146, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1146, 1148, 1148, 1148, 1148, 1146, 1146, 1150, 1152, 1152, 1152, 1152, 1124, 1124, 1124, 1124, 1126, 1126, 1126, 1126, 1130, 1132, 1132, 1132, 1132, 1134, 1134, 1140, 1140, 1140, 1136, 1136, 1136, 1144, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1150, 1150, 1154, 1162, 1162, 1158, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1162, 1162, 1160, 1160, 1160, 1160, 1160, 1156, 1156, 1156, 1158, 1158, 1160, 1160, 1160, 1160, 1162, 1162, 1168, 1168, 1168, 1166, 1162, 1162, 1162, 1162, 1160, 1160, 1160, 1160, 1158, 1158, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1156, 1156, 1156, 1156, 1156, 1152, 1152, 1152, 1152, 1152, 1160, 1160, 1160, 1158, 1150, 1150, 1150, 1150, 1150, 1152, 1152, 1156, 1156, 1164, 1164, 1164, 1164, 1164, 1162, 1162, 1160, 1160, 1160, 1160, 1160, 1160, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1166, 1166, 1166, 1162, 1158, 1158, 1162, 1166, 1170, 1170, 1172, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1176, 1176, 1176, 1170, 1170, 1170, 1170, 1170, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1178, 1180, 1180, 1180, 1180, 1180, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1180, 1180, 1180, 1180, 1180, 1180, 1178, 1178, 1178, 1172, 1172, 1172, 1174, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1178, 1178, 1178, 1178, 1174, 1174, 1174, 1174, 1174, 1174, 1172, 1172, 1172, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1170, 1170, 1170, 1172, 1172, 1172, 1172, 1170, 1170, 1170, 1170, 1168, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1164, 1170, 1170, 1170, 1164, 1164, 1164, 1166, 1166, 1166, 1166, 1170, 1170, 1170, 1170, 1160, 1160, 1160, 1160, 1160, 1160, 1158, 1158, 1158, 1160, 1160, 1160, 1162, 1162, 1162, 1162, 1162, 1160, 1160, 1160, 1164, 1164, 1164, 1162, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1162, 1162, 1164, 1164, 1164, 1164, 1156, 1152, 1152, 1152, 1152, 1150, 1150, 1150, 1150, 1158, 1162, 1162, 1158, 1148, 1148, 1148, 1156, 1158, 1162, 1162, 1160, 1160, 1160, 1156, 1156, 1154, 1154, 1154, 1154, 1152, 1152, 1158, 1158, 1158, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1154, 1154, 1154, 1154, 1148, 1148, 1166, 1166, 1160, 1160, 1160, 1160, 1154, 1154, 1154, 1156, 1160, 1162, 1162, 1164, 1164, 1168, 1172, 1172, 1168, 1164, 1164, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1168, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1174, 1174, 1174, 1180, 1180, 1180, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1186, 1186, 1190, 1190, 1192, 1192, 1192, 1192, 1192, 1194, 1194, 1194, 1194, 1196, 1198, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1202, 1202, 1206, 1206, 1206, 1206, 1206, 1208, 1208, 1208, 1208, 1208, 1210, 1210, 1210, 1214, 1214, 1214, 1216, 1218, 1218, 1218, 1218, 1220, 1220, 1220, 1220, 1222, 1224, 1224, 1224, 1224, 1224, 1226, 1226, 1226, 1226, 1226, 1228, 1230, 1230, 1230, 1230, 1230, 1230, 1232, 1232, 1232, 1232, 1234, 1234, 1234, 1238, 1240, 1240, 1244, 1244, 1246, 1246, 1246, 1248, 1248, 1248, 1248, 1248, 1250, 1250, 1250, 1250, 1252, 1252, 1252, 1252, 1254, 1254, 1254, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1258, 1258, 1258, 1260, 1260, 1260, 1260, 1260, 1262, 1262, 1262, 1264, 1264, 1264, 1264, 1264, 1266, 1266, 1268, 1270, 1270, 1270, 1272, 1272, 1272, 1272, 1274, 1276, 1276, 1276, 1278, 1278, 1280, 1280, 1280, 1280, 1280, 1280, 1282, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1286, 1286, 1286, 1286, 1286, 1288, 1288, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1296, 1296, 1296, 1296, 1296, 1296, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1300, 1296, 1296, 1294, 1294, 1292, 1292, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1286, 1286, 1284, 1282, 1280, 1280, 1280, 1280, 1278, 1278, 1276, 1276, 1270, 1268, 1268, 1268, 1268, 1268, 1266, 1266, 1266, 1264, 1264, 1264, 1258, 1258, 1258, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1254, 1254, 1254, 1252, 1250, 1250, 1250, 1248, 1248, 1248, 1248, 1242, 1242, 1240, 1240, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1236, 1236, 1234, 1234, 1234, 1232, 1232, 1232, 1230, 1228, 1228, 1228, 1228, 1226, 1224, 1224, 1222, 1222, 1222, 1222, 1222, 1220, 1220, 1220, 1220, 1216, 1216, 1214, 1214, 1214, 1210, 1210, 1210, 1208, 1206, 1206, 1204, 1202, 1202, 1202, 1200, 1200, 1200, 1200, 1200, 1200, 1198, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1194, 1194, 1194, 1194, 1194, 1192, 1192, 1190, 1190, 1190, 1188, 1188, 1184, 1184, 1184, 1182, 1180, 1180, 1180, 1180, 1180, 1172, 1172, 1172, 1180, 1180, 1180, 1180, 1178, 1176, 1176, 1176, 1176, 1176, 1176, 1174, 1174, 1174, 1172, 1172, 1170, 1164, 1160, 1160, 1170, 1170, 1172, 1168, 1168, 1164, 1164, 1164, 1164, 1164, 1164, 1160, 1160, 1160, 1160, 1160, 1160, 1162, 1166, 1166, 1166, 1168, 1168, 1166, 1160, 1156, 1152, 1152, 1156, 1160, 1160, 1160, 1160, 1160, 1158, 1158, 1158, 1158, 1162, 1162, 1166, 1166, 1166, 1158, 1156, 1154, 1154, 1154, 1158, 1162, 1162, 1160, 1160, 1160, 1154, 1154, 1154, 1154, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1154, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1150, 1150, 1150, 1154, 1154, 1154, 1154, 1152, 1152, 1152, 1152, 1152, 1152, 1154, 1154, 1154, 1156, 1156, 1156, 1156, 1156, 1150, 1150, 1150, 1150, 1152, 1152, 1152, 1148, 1148, 1148, 1150, 1150, 1150, 1150, 1150, 1152, 1152, 1152, 1152, 1150, 1150, 1150, 1150, 1150, 1146, 1146, 1146, 1146, 1146, 1142, 1140, 1140, 1142, 1144, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1156, 1156, 1156, 1156, 1156, 1156, 1148, 1148, 1148, 1146, 1140, 1140, 1140, 1142, 1142, 1144, 1144, 1144, 1144, 1154, 1154, 1154, 1150, 1148, 1148, 1148, 1148, 1148, 1150, 1150, 1154, 1154, 1154, 1154, 1154, 1146, 1144, 1144, 1144, 1144, 1148, 1152, 1152, 1152, 1156, 1156, 1152, 1150, 1148, 1122, 1122, 1114, 1114, 1114, 1120, 1120, 1120, 1120, 1125, 1128, 1130, 1130, 1132, 1132, 1134, 1136, 1136, 1138, 1138, 1140, 1140, 1142, 1142, 1142, 1142, 1142, 1142, 1144, 1144, 1144, 1144, 1146, 1146, 1146, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1150, 1150, 1152, 1152, 1152, 1152, 1152, 1154, 1154, 1154, 1154, 1152, 1152, 1152, 1152, 1154, 1154, 1154, 1154, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1152, 1152, 1152, 1152, 1152, 1154, 1154, 1154, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1150, 1150, 1150, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1154, 1154, 1156, 1156, 1156, 1156, 1156, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1160, 1160, 1162, 1162, 1162, 1162, 1164, 1164, 1164, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1170, 1170, 1170, 1170, 1170, 1172, 1172, 1172, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1172, 1172, 1172, 1172, 1172, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1166, 1166, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1160, 1160, 1160, 1158, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1154, 1154, 1154, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1152, 1152, 1152, 1152, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1148, 1148, 1148, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1150, 1150, 1150, 1150, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1150, 1150, 1150, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1154, 1154, 1156, 1156, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1160, 1160, 1160, 1160, 1160, 1162, 1162, 1162, 1162, 1162, 1164, 1164, 1164, 1166, 1166, 1166, 1166, 1166, 1164, 1164, 1164, 1164, 1164, 1164, 1166, 1166, 1166, 1168, 1168, 1168, 1172, 1172, 1172, 1172, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1176, 1178, 1178, 1178, 1178, 1180, 1180, 1180, 1180, 1180, 1182, 1182, 1182, 1182, 1182, 1184, 1184, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1192, 1194, 1194, 1194, 1194, 1196, 1196, 1196, 1196, 1196, 1196, 1198, 1198, 1198, 1198, 1198, 1198, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1202, 1204, 1204, 1206, 1206, 1206, 1206, 1204, 1204, 1204, 1204, 1206, 1208, 1208, 1210, 1210, 1210, 1210, 1210, 1212, 1212, 1212, 1214, 1214, 1214, 1214, 1216, 1216, 1216, 1218, 1218, 1218, 1218, 1218, 1218, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1232, 1232, 1232, 1232, 1232, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1236, 1236, 1236, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1232, 1232, 1230, 1228, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1222, 1222, 1220, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1212, 1212, 1212, 1210, 1210, 1210, 1210, 1208, 1208, 1208, 1208, 1208, 1208, 1206, 1206, 1206, 1206, 1206, 1204, 1204, 1204, 1204, 1204, 1206, 1206, 1206, 1206, 1204, 1204, 1202, 1198, 1198, 1198, 1196, 1194, 1194, 1194, 1196, 1196, 1196, 1194, 1194, 1192, 1192, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1184, 1184, 1182, 1182, 1182, 1182, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1168, 1168, 1168, 1168, 1166, 1166, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1162, 1160, 1160, 1160, 1162, 1162, 1162, 1160, 1160, 1160, 1160, 1160, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1160, 1160, 1160, 1160, 1160, 1160, 1158, 1158, 1158, 1158, 1156, 1156, 1156, 1156, 1158, 1158, 1158, 1156, 1156, 1156, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1156, 1156, 1156, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1152, 1152, 1152, 1152, 1152, 1154, 1154, 1154, 1156, 1156, 1156, 1156, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1160, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1166, 1166, 1166, 1166, 1168, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1172, 1172, 1172, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1178, 1178, 1182, 1182, 1182, 1178, 1178, 1178, 1182, 1182, 1182, 1186, 1186, 1182, 1178, 1178, 1124, 1124, 1124, 1124, 1124, 1126, 1126, 1126, 1127, 1127, 1128, 1128, 1128, 1128, 1128, 1132, 1132, 1132, 1134, 1134, 1136, 1138, 1138, 1138, 1138, 1138, 1140, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1154, 1154, 1156, 1156, 1158, 1158, 1158, 1158, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1162, 1162, 1162, 1162, 1162, 1160, 1160, 1160, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1162, 1162, 1162, 1162, 1160, 1160, 1160, 1160, 1160, 1158, 1158, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1154, 1154, 1154, 1154, 1154, 1150, 1150, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1150, 1150, 1150, 1150, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1146, 1146, 1146, 1146, 1148, 1148, 1148, 1148, 1148, 1148, 1146, 1146, 1146, 1146, 1146, 1146, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1144, 1144, 1146, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1146, 1142, 1142, 1142, 1142, 1142, 1142, 1144, 1144, 1144, 1142, 1142, 1140, 1140, 1140, 1140, 1140, 1140, 1142, 1142, 1142, 1144, 1144, 1144, 1144, 1144, 1144, 1142, 1142, 1142, 1142, 1144, 1144, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1150, 1150, 1150, 1150, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1156, 1156, 1158, 1158, 1158, 1160, 1160, 1160, 1160, 1160, 1160, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1172, 1172, 1172, 1172, 1172, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1176, 1176, 1178, 1178, 1178, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1180, 1180, 1180, 1180, 1180, 1178, 1178, 1178, 1180, 1180, 1180, 1178, 1178, 1178, 1178, 1178, 1178, 1180, 1180, 1180, 1180, 1182, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1182, 1182, 1182, 1182, 1182, 1180, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1176, 1174, 1174, 1174, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1168, 1168, 1166, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1166, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1168, 1166, 1164, 1164, 1164, 1162, 1162, 1162, 1162, 1162, 1162, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1162, 1162, 1162, 1162, 1162, 1160, 1160, 1160, 1160, 1160, 1160, 1162, 1162, 1162, 1162, 1162, 1162, 1160, 1160, 1160, 1160, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1160, 1160, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1170, 1170, 1170, 1170, 1172, 1174, 1174, 1176, 1176, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1180, 1180, 1180, 1180, 1180, 1180, 1182, 1182, 1182, 1182, 1182, 1184, 1184, 1184, 1184, 1184, 1184, 1186, 1186, 1186, 1186, 1190, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1194, 1194, 1196, 1198, 1198, 1198, 1198, 1198, 1198, 1200, 1200, 1202, 1202, 1202, 1202, 1204, 1206, 1206, 1208, 1208, 1208, 1210, 1210, 1210, 1212, 1214, 1214, 1214, 1216, 1216, 1220, 1220, 1220, 1220, 1222, 1222, 1222, 1222, 1224, 1224, 1224, 1226, 1226, 1228, 1230, 1230, 1230, 1230, 1230, 1234, 1236, 1238, 1240, 1240, 1246, 1248, 1248, 1248, 1248, 1250, 1250, 1250, 1250, 1256, 1256, 1256, 1256, 1256, 1258, 1258, 1258, 1258, 1268, 1268, 1270, 1274, 1276, 1278, 1282, 1282, 1286, 1286, 1288, 1288, 1296, 1296, 1296, 1288, 1288, 1288, 1296, 1298, 1298, 1132, 1130, 1122, 1118, 1118, 1126, 1134, 1134, 1134, 1134, 1134, 1130, 1130, 1130, 1130, 1130, 1136, 1138, 1138, 1138, 1138, 1142, 1142, 1142, 1136, 1134, 1134, 1134, 1138, 1140, 1146, 1146, 1146, 1148, 1148, 1148, 1148, 1148, 1150, 1150, 1150, 1150, 1152, 1152, 1152, 1150, 1150, 1150, 1150, 1150, 1154, 1154, 1146, 1146, 1146, 1146, 1146, 1146, 1140, 1140, 1140, 1146, 1150, 1152, 1152, 1152, 1154, 1154, 1154, 1154, 1154, 1150, 1144, 1144, 1144, 1144, 1146, 1150, 1150, 1156, 1156, 1156, 1152, 1152, 1152, 1152, 1154, 1154, 1154, 1148, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1154, 1154, 1154, 1154, 1148, 1148, 1148, 1148, 1148, 1148, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1144, 1144, 1144, 1148, 1148, 1148, 1150, 1150, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1150, 1150, 1150, 1150, 1154, 1154, 1154, 1154, 1154, 1154, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1164, 1164, 1164, 1162, 1158, 1156, 1156, 1156, 1156, 1158, 1160, 1160, 1160, 1160, 1164, 1164, 1164, 1162, 1162, 1162, 1162, 1162, 1164, 1164, 1164, 1162, 1158, 1158, 1156, 1156, 1156, 1154, 1154, 1154, 1160, 1162, 1164, 1164, 1164, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1156, 1156, 1156, 1156, 1152, 1152, 1152, 1158, 1158, 1158, 1152, 1152, 1152, 1152, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1152, 1152, 1160, 1160, 1158, 1154, 1154, 1154, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1146, 1146, 1146, 1146, 1146, 1154, 1154, 1154, 1154, 1154, 1150, 1146, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1152, 1152, 1152, 1152, 1152, 1150, 1150, 1150, 1150, 1150, 1152, 1152, 1148, 1148, 1148, 1148, 1146, 1144, 1144, 1144, 1144, 1144, 1142, 1142, 1142, 1142, 1142, 1146, 1146, 1146, 1146, 1146, 1146, 1148, 1148, 1148, 1148, 1148, 1148, 1150, 1152, 1152, 1152, 1152, 1152, 1140, 1140, 1140, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1144, 1140, 1140, 1140, 1140, 1148, 1148, 1148, 1148, 1146, 1146, 1146, 1148, 1150, 1150, 1150, 1150, 1146, 1146, 1146, 1146, 1146, 1148, 1148, 1148, 1138, 1138, 1138, 1138, 1138, 1138, 1146, 1150, 1152, 1152, 1152, 1152, 1144, 1144, 1144, 1144, 1144, 1144, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1146, 1144, 1144, 1148, 1148, 1148, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1148, 1148, 1148, 1148, 1150, 1150, 1152, 1152, 1152, 1152, 1144, 1144, 1144, 1148, 1148, 1148, 1150, 1150, 1150, 1154, 1154, 1154, 1154, 1150, 1150, 1150, 1146, 1146, 1146, 1146, 1152, 1152, 1152, 1152, 1148, 1148, 1148, 1150, 1150, 1150, 1150, 1150, 1150, 1156, 1156, 1156, 1156, 1152, 1152, 1152, 1148, 1148, 1148, 1148, 1150, 1164, 1164, 1164, 1148, 1144, 1144, 1148, 1148, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1148, 1144, 1144, 1146, 1154, 1154, 1154, 1154, 1156, 1158, 1158, 1158, 1158, 1160, 1160, 1160, 1160, 1162, 1162, 1162, 1162, 1162, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1148, 1148, 1162, 1162, 1162, 1162, 1162, 1164, 1168, 1168, 1162, 1162, 1162, 1162, 1162, 1162, 1158, 1158, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1174, 1174, 1174, 1174, 1172, 1172, 1170, 1170, 1164, 1164, 1164, 1170, 1170, 1170, 1170, 1170, 1170, 1176, 1176, 1176, 1176, 1172, 1168, 1168, 1172, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1176, 1178, 1178, 1178, 1178, 1178, 1186, 1186, 1172, 1172, 1172, 1172, 1172, 1172, 1174, 1174, 1174, 1174, 1174, 1178, 1178, 1178, 1178, 1180, 1182, 1184, 1184, 1178, 1178, 1178, 1178, 1182, 1184, 1184, 1184, 1184, 1184, 1186, 1188, 1188, 1184, 1180, 1180, 1180, 1174, 1174, 1178, 1184, 1184, 1184, 1184, 1186, 1186, 1186, 1186, 1186, 1186, 1184, 1184, 1184, 1178, 1178, 1178, 1178, 1178, 1184, 1188, 1188, 1188, 1186, 1184, 1184, 1184, 1184, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1178, 1178, 1178, 1186, 1186, 1186, 1186, 1182, 1182, 1182, 1186, 1186, 1186, 1186, 1188, 1188, 1188, 1188, 1184, 1184, 1184, 1178, 1178, 1178, 1178, 1182, 1182, 1182, 1182, 1184, 1184, 1184, 1184, 1184, 1184, 1182, 1182, 1180, 1180, 1180, 1180, 1178, 1178, 1178, 1178, 1178, 1190, 1190, 1186, 1176, 1176, 1178, 1178, 1178, 1178, 1184, 1184, 1184, 1184, 1184, 1184, 1186, 1186, 1186, 1184, 1180, 1180, 1178, 1178, 1170, 1170, 1170, 1182, 1182, 1182, 1182, 1182, 1182, 1178, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1180, 1184, 1184, 1184, 1184, 1182, 1174, 1174, 1174, 1174, 1176, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1176, 1176, 1176, 1176, 1178, 1180, 1180, 1180, 1180, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1184, 1184, 1184, 1184, 1186, 1190, 1190, 1190, 1190, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1194, 1194, 1194, 1196, 1196, 1192, 1192, 1188, 1186, 1186, 1186, 1194, 1194, 1194, 1194, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1206, 1206, 1206, 1206, 1206, 1206, 1212, 1212, 1212, 1212, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1222, 1226, 1226, 1226, 1226, 1226, 1228, 1230, 1238, 1238, 1238, 1238, 1240, 1240, 1240, 1240, 1240, 1244, 1246, 1246, 1248, 1248, 1250, 1250, 1252, 1252, 1254, 1254, 1254, 1256, 1256, 1258, 1258, 1260, 1264, 1266, 1266, 1266, 1268, 1274, 1276, 1278, 1278, 1280, 1282, 1284, 1286, 1288, 1290, 1290, 1290, 1292, 1292, 1296, 1296, 1298, 1304, 1304, 1304, 1308, 1308, 1312, 1312, 1312, 1314, 1316, 1322, 1324, 1324, 1328, 1328, 1328, 1328, 1328, 1332, 1334, 1334, 1336, 1338, 1340, 1342, 1344, 1350, 1354, 1358, 1362, 1364, 1366, 1366, 1374, 1374, 1380, 1380, 1388, 1392, 1392, 1392, 1396, 1398, 1400, 1400, 1402, 1408, 1408, 1414, 1414, 1418, 1420, 1422, 1426, 1434, 1440, 1442, 1442, 1454, 1460, 1460, 1464, 1466, 1476, 1476, 1492, 1492, 1492, 1494, 1502, 1504, 1506, 1508, 1514, 1514, 1516, 1516, 1518, 1520, 1520, 1520, 1524, 1528, 1530, 1534, 1546, 1546, 1560, 1560, 1564, 1566, 1570, 1574, 1576, 1580, 1598, 1602, 1618, 1618, 1618, 1612, 1612, 1612, 1650, 1650, 1650, 1650, 1142, 1142, 1134, 1134, 1134, 1134, 1136, 1138, 1138, 1138, 1138, 1138, 1138, 1146, 1150, 1152, 1152, 1152, 1152, 1148, 1148, 1148, 1156, 1156, 1156, 1152, 1152, 1152, 1154, 1158, 1158, 1158, 1158, 1154, 1154, 1154, 1154, 1156, 1156, 1156, 1148, 1148, 1148, 1154, 1158, 1158, 1160, 1160, 1160, 1160, 1158, 1158, 1158, 1158, 1156, 1156, 1156, 1160, 1160, 1162, 1180, 1218, 1342, 1342, 1342, 1202, 1202, 1160, 1160, 1160, 1160, 1160, 1160, 1158, 1158, 1154, 1154, 1150, 1150, 1150, 1152, 1154, 1160, 1164, 1164, 1164, 1162, 1162, 1160, 1160, 1156, 1156, 1156, 1156, 1156, 1158, 1160, 1160, 1160, 1160, 1160, 1156, 1156, 1158, 1160, 1160, 1162, 1162, 1162, 1162, 1158, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1152, 1152, 1156, 1156, 1156, 1156, 1160, 1162, 1162, 1162, 1160, 1156, 1154, 1154, 1158, 1160, 1162, 1162, 1162, 1160, 1160, 1160, 1160, 1160, 1162, 1164, 1164, 1164, 1164, 1164, 1164, 1168, 1168, 1168, 1160, 1160, 1160, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1164, 1164, 1160, 1160, 1160, 1164, 1168, 1172, 1172, 1172, 1166, 1164, 1164, 1164, 1168, 1168, 1168, 1174, 1174, 1174, 1166, 1166, 1166, 1162, 1162, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1170, 1170, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1160, 1160, 1158, 1158, 1158, 1158, 1158, 1164, 1164, 1164, 1164, 1164, 1164, 1162, 1162, 1162, 1168, 1168, 1168, 1168, 1162, 1162, 1162, 1166, 1166, 1172, 1172, 1172, 1168, 1166, 1166, 1166, 1166, 1166, 1162, 1162, 1162, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1160, 1160, 1160, 1160, 1160, 1164, 1164, 1164, 1164, 1168, 1168, 1168, 1156, 1152, 1152, 1152, 1152, 1160, 1160, 1160, 1154, 1154, 1154, 1154, 1156, 1160, 1164, 1164, 1160, 1158, 1158, 1160, 1162, 1162, 1162, 1162, 1160, 1160, 1160, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1156, 1154, 1154, 1154, 1154, 1152, 1152, 1158, 1158, 1164, 1164, 1164, 1160, 1160, 1160, 1160, 1160, 1160, 1158, 1158, 1158, 1158, 1162, 1162, 1162, 1162, 1162, 1160, 1154, 1154, 1154, 1154, 1164, 1164, 1164, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1160, 1162, 1166, 1166, 1156, 1156, 1164, 1164, 1164, 1164, 1164, 1164, 1162, 1162, 1162, 1162, 1162, 1160, 1160, 1160, 1158, 1156, 1156, 1156, 1156, 1156, 1158, 1158, 1158, 1158, 1158, 1160, 1160, 1160, 1160, 1168, 1168, 1168, 1168, 1166, 1164, 1164, 1164, 1170, 1170, 1170, 1170, 1170, 1166, 1162, 1162, 1162, 1162, 1164, 1164, 1160, 1160, 1160, 1160, 1158, 1158, 1158, 1160, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1164, 1164, 1166, 1166, 1162, 1162, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1164, 1164, 1164, 1164, 1164, 1158, 1158, 1158, 1162, 1164, 1166, 1166, 1166, 1164, 1164, 1164, 1164, 1164, 1164, 1168, 1168, 1164, 1164, 1162, 1162, 1160, 1160, 1160, 1166, 1168, 1168, 1172, 1172, 1172, 1176, 1176, 1184, 1184, 1184, 1172, 1170, 1170, 1174, 1180, 1182, 1182, 1180, 1178, 1178, 1174, 1174, 1166, 1164, 1168, 1176, 1180, 1180, 1186, 1186, 1186, 1174, 1174, 1174, 1176, 1176, 1176, 1174, 1174, 1174, 1174, 1174, 1174, 1176, 1180, 1180, 1180, 1180, 1180, 1180, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1182, 1178, 1178, 1178, 1184, 1184, 1188, 1188, 1184, 1184, 1184, 1184, 1186, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1202, 1204, 1204, 1204, 1198, 1198, 1198, 1198, 1192, 1192, 1192, 1202, 1202, 1202, 1202, 1194, 1194, 1192, 1192, 1192, 1202, 1202, 1202, 1200, 1198, 1198, 1204, 1210, 1210, 1210, 1210, 1208, 1206, 1206, 1206, 1206, 1212, 1216, 1216, 1216, 1212, 1200, 1198, 1198, 1202, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1210, 1210, 1214, 1220, 1220, 1220, 1218, 1218, 1218, 1206, 1206, 1206, 1206, 1208, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1212, 1216, 1216, 1216, 1216, 1214, 1214, 1214, 1214, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1216, 1218, 1218, 1214, 1212, 1212, 1212, 1212, 1214, 1216, 1218, 1226, 1226, 1218, 1218, 1218, 1218, 1218, 1218, 1216, 1214, 1212, 1212, 1218, 1218, 1218, 1218, 1218, 1218, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1220, 1220, 1216, 1216, 1216, 1216, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1220, 1220, 1220, 1214, 1214, 1216, 1216, 1216, 1216, 1220, 1226, 1226, 1232, 1232, 1232, 1232, 1228, 1228, 1228, 1228, 1220, 1220, 1220, 1228, 1228, 1228, 1228, 1230, 1230, 1230, 1230, 1230, 1230, 1226, 1224, 1224, 1224, 1224, 1230, 1230, 1230, 1228, 1232, 1232, 1240, 1240, 1242, 1240, 1240, 1240, 1240, 1242, 1242, 1242, 1242, 1240, 1238, 1238, 1238, 1238, 1238, 1242, 1242, 1246, 1246, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1250, 1250, 1250, 1250, 1248, 1248, 1248, 1248, 1250, 1250, 1250, 1250, 1262, 1266, 1266, 1266, 1266, 1258, 1258, 1260, 1260, 1260, 1260, 1260, 1270, 1272, 1272, 1272, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1290, 1296, 1296, 1296, 1296, 1296, 1294, 1294, 1294, 1294, 1294, 1300, 1300, 1300, 1300, 1304, 1314, 1322, 1322, 1322, 1312, 1312, 1312, 1332, 1338, 1340, 1340, 1340, 1336, 1336, 1366, 1366, 1366, 1366, 1360, 1360, 1360, 1360, 1370, 1370, 1370, 1378, 1378, 1378, 1378, 1388, 1396, 1402, 1402, 1402, 1404, 1404, 1404, 1404, 1412, 1426, 1428, 1428, 1428, 1428, 1428, 1436, 1436, 1436, 1446, 1446, 1446, 1446, 1462, 1466, 1474, 1484, 1484, 1484, 1484, 1498, 1510, 1510, 1510, 1516, 1524, 1524, 1530, 1532, 1536, 1536, 1536, 1536, 1546, 1546, 1546, 1546, 1572, 1582, 1582, 1586, 1598, 1602, 1608, 1608, 1610, 1620, 1620, 1624, 1634, 1648, 1648, 1660, 1660, 1662, 1670, 1684, 1688, 1708, 1708, 1710, 1722, 1724, 1726, 1738, 1746, 1748, 1750, 1750, 1750, 1752, 1770, 1780, 1784, 1788, 1798, 1822, 1832, 1834, 1836, 1852, 1852, 1874, 1876, 1886, 1888, 1914, 1916, 1924, 1924, 1924, 1924, 1928, 1948, 1950, 1962, 1968, 1978, 1996, 2004, 2016, 2020, 2036, 2040, 2042, 2050, 2056, 2058, 2084, 2090, 2092, 2102, 2118, 2126, 2132, 2156, 2170, 2172, 2192, 2196, 2224, 2228, 2230, 2238, 2242, 2252, 2278, 2284, 2314, 2328, 2330, 2338, 2342, 2390, 2394, 2398, 2398, 2418, 2420, 2450, 2450, 2454, 2484, 2484, 2484, 2490, 2508, 2508, 2528, 2572, 2572, 2572, 2598, 2610, 2648, 2652, 2660, 1174, 1172, 1166, 1162, 1160, 1160, 1166, 1172, 1172, 1172, 1172, 1172, 1168, 1168, 1168, 1176, 1176, 1176, 1180, 1180, 1180, 1180, 1186, 1186, 1188, 1188, 1192, 1192, 1192, 1196, 1204, 1206, 1198, 1182, 1182, 1182, 1182, 1180, 1180, 1180, 1180, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1180, 1180, 1180, 1180, 1176, 1176, 1176, 1176, 1178, 1178, 1178, 1176, 1176, 1174, 1174, 1174, 1176, 1176, 1176, 1176, 1174, 1174, 1174, 1182, 1182, 1182, 1178, 1178, 1178, 1178, 1178, 1190, 1190, 1174, 1174, 1182, 1182, 1182, 1182, 1182, 1186, 1186, 1186, 1186, 1186, 1186, 1180, 1178, 1178, 1178, 1188, 1188, 1188, 1188, 1186, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1180, 1178, 1178, 1178, 1190, 1190, 1190, 1188, 1188, 1188, 1188, 1182, 1182, 1182, 1182, 1186, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1184, 1184, 1186, 1186, 1186, 1180, 1180, 1180, 1180, 1184, 1186, 1186, 1186, 1186, 1186, 1184, 1180, 1180, 1192, 1192, 1192, 1192, 1190, 1190, 1190, 1190, 1188, 1188, 1188, 1184, 1184, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1194, 1194, 1194, 1190, 1188, 1188, 1186, 1186, 1184, 1184, 1184, 1188, 1188, 1188, 1188, 1188, 1192, 1192, 1192, 1192, 1192, 1192, 1186, 1186, 1186, 1206, 1206, 1196, 1196, 1196, 1190, 1190, 1190, 1190, 1186, 1186, 1188, 1188, 1188, 1188, 1188, 1190, 1196, 1196, 1196, 1194, 1194, 1194, 1194, 1194, 1192, 1192, 1192, 1192, 1192, 1190, 1190, 1190, 1190, 1188, 1188, 1188, 1188, 1188, 1190, 1188, 1184, 1184, 1184, 1184, 1188, 1188, 1188, 1188, 1194, 1194, 1194, 1188, 1184, 1184, 1184, 1184, 1192, 1192, 1192, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1190, 1190, 1192, 1192, 1196, 1196, 1192, 1188, 1188, 1188, 1188, 1188, 1188, 1190, 1200, 1200, 1192, 1190, 1188, 1186, 1182, 1182, 1184, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1184, 1184, 1184, 1184, 1186, 1186, 1192, 1192, 1190, 1190, 1190, 1190, 1190, 1188, 1188, 1188, 1194, 1194, 1194, 1192, 1192, 1192, 1188, 1186, 1186, 1186, 1188, 1188, 1188, 1188, 1190, 1192, 1192, 1192, 1192, 1192, 1194, 1194, 1194, 1194, 1192, 1192, 1192, 1192, 1192, 1190, 1186, 1186, 1186, 1186, 1186, 1188, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1188, 1188, 1188, 1188, 1194, 1194, 1194, 1194, 1194, 1194, 1196, 1196, 1196, 1196, 1196, 1196, 1194, 1192, 1192, 1192, 1196, 1196, 1196, 1196, 1196, 1192, 1188, 1188, 1194, 1194, 1194, 1194, 1194, 1196, 1196, 1196, 1196, 1196, 1196, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1196, 1196, 1196, 1196, 1200, 1200, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1200, 1204, 1204, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1202, 1204, 1204, 1204, 1204, 1198, 1198, 1198, 1208, 1208, 1208, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1200, 1200, 1200, 1202, 1210, 1210, 1210, 1214, 1214, 1214, 1214, 1214, 1212, 1212, 1212, 1212, 1212, 1212, 1214, 1214, 1214, 1214, 1212, 1212, 1212, 1214, 1214, 1214, 1214, 1214, 1214, 1210, 1210, 1210, 1210, 1214, 1214, 1214, 1214, 1216, 1216, 1216, 1218, 1218, 1222, 1224, 1224, 1224, 1214, 1214, 1214, 1216, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1220, 1220, 1220, 1220, 1220, 1226, 1226, 1226, 1226, 1228, 1228, 1228, 1228, 1228, 1230, 1230, 1230, 1230, 1230, 1230, 1228, 1226, 1226, 1230, 1234, 1240, 1240, 1236, 1232, 1228, 1228, 1234, 1244, 1244, 1236, 1232, 1232, 1232, 1234, 1236, 1236, 1240, 1240, 1246, 1246, 1246, 1246, 1246, 1246, 1248, 1396, 1606, 1718, 1494, 1270, 1270, 1246, 1246, 1246, 1246, 1248, 1252, 1252, 1252, 1252, 1248, 1242, 1242, 1242, 1240, 1240, 1240, 1250, 1250, 1250, 1250, 1250, 1250, 1246, 1246, 1246, 1246, 1250, 1260, 1260, 1260, 1258, 1258, 1258, 1258, 1250, 1250, 1254, 1258, 1258, 1262, 1262, 1256, 1252, 1252, 1252, 1252, 1252, 1256, 1256, 1260, 1260, 1262, 1262, 1262, 1262, 1266, 1266, 1266, 1266, 1264, 1262, 1262, 1270, 1274, 1274, 1274, 1274, 1274, 1278, 1278, 1282, 1284, 1284, 1276, 1276, 1266, 1266, 1266, 1266, 1268, 1276, 1276, 1276, 1276, 1286, 1286, 1286, 1286, 1284, 1284, 1284, 1284, 1284, 1284, 1286, 1286, 1286, 1286, 1286, 1282, 1282, 1282, 1290, 1290, 1290, 1290, 1290, 1290, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1302, 1306, 1306, 1312, 1324, 1326, 1324, 1312, 1312, 1312, 1312, 1320, 1320, 1320, 1324, 1326, 1326, 1316, 1308, 1308, 1308, 1332, 1332, 1332, 1324, 1324, 1324, 1324, 1324, 1324, 1334, 1334, 1334, 1334, 1340, 1340, 1340, 1340, 1346, 1350, 1352, 1352, 1352, 1352, 1352, 1352, 1358, 1358, 1362, 1372, 1372, 1372, 1372, 1372, 1382, 1382, 1382, 1376, 1376, 1376, 1386, 1386, 1398, 1398, 1398, 1398, 1400, 1406, 1412, 1416, 1424, 1424, 1426, 1426, 1434, 1434, 1436, 1436, 1436, 1442, 1464, 1464, 1464, 1464, 1466, 1466, 1466, 1466, 1474, 1474, 1462, 1462, 1462, 1462, 1484, 1484, 1484, 1492, 1492, 1504, 1510, 1514, 1520, 1526, 1528, 1528, 1528, 1536, 1536, 1550, 1558, 1558, 1558, 1560, 1560, 1564, 1572, 1574, 1576, 1582, 1598, 1598, 1604, 1604, 1614, 1614, 1616, 1622, 1622, 1632, 1632, 1652, 1652, 1652, 1660, 1666, 1684, 1694, 1698, 1712, 1716, 1716, 1722, 1722, 1726, 1744, 1754, 1762, 1766, 1766, 1774, 1810, 1810, 1814, 1824, 1850, 1850, 1850, 1852, 1852, 1862, 1904, 1904, 1910, 1912, 1926, 1932, 1932, 1954, 1982, 1984, 1992, 1992, 2010, 2032, 2034, 2034, 2038, 2038, 2080, 2080, 2092, 2092, 2094, 2126, 2126, 2126, 2156, 2174, 2176, 2224, 2232, 2244, 2244, 2244, 2246, 2284, 2294, 2296, 2310, 2328, 2350, 2372, 2384, 2384, 2402, 2416, 2416, 2430, 2464, 2482, 2488, 2512, 2522, 2540, 2544, 2558, 2564, 2584, 2624, 2644, 2678, 2678, 2678, 2678, 2684, 2692, 2744, 2764, 2776, 2778, 2808, 2828, 2836, 2858, 2892, 2900, 2914, 2914, 2960, 2982, 2998, 2998, 3038, 3080, 3098, 3102, 3120, 3122, 3202, 3212, 3212, 3212, 3254, 3264, 3266, 3342, 3354, 3364, 3404, 3454, 3454, 3464, 3468, 3468, 3522, 3576, 3588, 3596, 3644, 3662, 3686, 3696, 3702, 3742, 3814, 3814, 3814, 3836, 3878, 3918, 3932, 3932, 3980, 4028, 4060, 4100, 4104, 4110, 4160, 4206, 4220, 4284, 4286, 4358, 4484, 4484, 4488, 4488, 4488, 4494, 4546, 4576, 4614, 4636, 4688, 4706, 4714, 4754, 4812, 4836, 4906, 4912, 4942, 5014, 5036, 5046, 5142, 5146, 5158, 5218, 5250, 5288, 5340, 5380, 5380, 1246, 1246, 1246, 1242, 1226, 1226, 1226, 1226, 1230, 1230, 1238, 1244, 1244, 1244, 1244, 1244, 1238, 1238, 1238, 1236, 1236, 1236, 1238, 1238, 1238, 1238, 1242, 1242, 1242, 1242, 1244, 1244, 1244, 1244, 1242, 1242, 1238, 1238, 1234, 1234, 1234, 1234, 1230, 1230, 1230, 1230, 1240, 1242, 1246, 1246, 1246, 1244, 1242, 1242, 1238, 1238, 1238, 1238, 1238, 1238, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1244, 1244, 1244, 1236, 1236, 1236, 1234, 1234, 1238, 1238, 1238, 1238, 1236, 1236, 1236, 1236, 1236, 1242, 1242, 1230, 1230, 1228, 1228, 1228, 1236, 1236, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1236, 1236, 1236, 1236, 1236, 1236, 1238, 1242, 1244, 1244, 1244, 1244, 1242, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1236, 1236, 1236, 1236, 1240, 1240, 1240, 1238, 1238, 1238, 1238, 1242, 1250, 1250, 1242, 1238, 1238, 1234, 1234, 1234, 1234, 1244, 1254, 1254, 1250, 1250, 1250, 1236, 1236, 1234, 1238, 1240, 1244, 1248, 1248, 1250, 1252, 1252, 1252, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1246, 1246, 1246, 1254, 1254, 1254, 1254, 1252, 1252, 1252, 1252, 1252, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1248, 1248, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1250, 1256, 1256, 1256, 1256, 1256, 1256, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1256, 1256, 1256, 1258, 1258, 1258, 1258, 1258, 1262, 1262, 1252, 1252, 1252, 1252, 1260, 1260, 1252, 1248, 1248, 1248, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1256, 1256, 1256, 1256, 1250, 1250, 1266, 1266, 1266, 1256, 1256, 1256, 1256, 1256, 1256, 1262, 1262, 1258, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1250, 1250, 1250, 1254, 1258, 1262, 1266, 1266, 1272, 1272, 1274, 1270, 1266, 1266, 1260, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1260, 1262, 1262, 1262, 1262, 1262, 1262, 1260, 1260, 1262, 1262, 1262, 1262, 1262, 1262, 1256, 1256, 1256, 1262, 1270, 1270, 1266, 1262, 1258, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1264, 1264, 1270, 1270, 1270, 1262, 1262, 1260, 1260, 1260, 1260, 1260, 1260, 1272, 1276, 1276, 1276, 1276, 1270, 1270, 1268, 1268, 1268, 1268, 1268, 1272, 1272, 1266, 1266, 1270, 1270, 1270, 1270, 1272, 1274, 1274, 1274, 1274, 1268, 1268, 1268, 1274, 1274, 1274, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1270, 1270, 1270, 1270, 1270, 1272, 1276, 1276, 1276, 1276, 1276, 1268, 1262, 1262, 1278, 1278, 1278, 1278, 1278, 1278, 1282, 1282, 1282, 1282, 1282, 1288, 1288, 1288, 1288, 1284, 1282, 1282, 1282, 1282, 1284, 1284, 1284, 1284, 1276, 1274, 1274, 1280, 1294, 1294, 1294, 1294, 1280, 1280, 1280, 1280, 1284, 1290, 1290, 1290, 1290, 1290, 1290, 1286, 1286, 1286, 1288, 1288, 1290, 1290, 1290, 1290, 1302, 1306, 1306, 1292, 1292, 1292, 1292, 1292, 1296, 1300, 1300, 1300, 1300, 1300, 1300, 1304, 1308, 1308, 1308, 1304, 1304, 1302, 1302, 1302, 1310, 1310, 1310, 1310, 1300, 1300, 1300, 1300, 1300, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1308, 1308, 1310, 1310, 1310, 1310, 1316, 1316, 1316, 1316, 1322, 1334, 1334, 1324, 1310, 1310, 1310, 1310, 1320, 1322, 1322, 1322, 1322, 1320, 1320, 1320, 1318, 1318, 1318, 1318, 1318, 1328, 1328, 1328, 1328, 1326, 1326, 1326, 1326, 1322, 1322, 1322, 1346, 1350, 1344, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1338, 1338, 1338, 1342, 1342, 1342, 1342, 1350, 1350, 1350, 1350, 1338, 1338, 1338, 1338, 1346, 1352, 1354, 1354, 1354, 1354, 1354, 1354, 1358, 1362, 1362, 1362, 1362, 1360, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1360, 1366, 1368, 1370, 1372, 1376, 1424, 1424, 1424, 1424, 1372, 1372, 1372, 1372, 1372, 1384, 1384, 1388, 1388, 1382, 1382, 1382, 1382, 1382, 1382, 1374, 1374, 1374, 1374, 1388, 1388, 1388, 1388, 1388, 1392, 1398, 1398, 1398, 1398, 1388, 1388, 1400, 1410, 1410, 1406, 1394, 1394, 1394, 1394, 1420, 1420, 1418, 1416, 1416, 1416, 1416, 1424, 1440, 1450, 1448, 1428, 1428, 1428, 1432, 1446, 1446, 1430, 1430, 1430, 1430, 1432, 1438, 1438, 1440, 1446, 1454, 1476, 1476, 1476, 1450, 1450, 1450, 1452, 1460, 1460, 1462, 1462, 1468, 1470, 1470, 1470, 1472, 1484, 1484, 1488, 1488, 1488, 1488, 1496, 1496, 1496, 1496, 1496, 1502, 1502, 1508, 1514, 1514, 1526, 1526, 1526, 1526, 1526, 1540, 1540, 1540, 1544, 1546, 1560, 1560, 1560, 1560, 1562, 1568, 1586, 1586, 1594, 1594, 1594, 1598, 1598, 1598, 1600, 1620, 1622, 1622, 1622, 1626, 1638, 1644, 1650, 1662, 1672, 1702, 1702, 1664, 1664, 1704, 1704, 1704, 1704, 1704, 1710, 1710, 1712, 1724, 1726, 1730, 1734, 1746, 1756, 1758, 1760, 1768, 1792, 1792, 1796, 1820, 1822, 1836, 1844, 1864, 1882, 1882, 1882, 1882, 1882, 1882, 1884, 1888, 1906, 1906, 1912, 1924, 1936, 1944, 1946, 1950, 1966, 1970, 1974, 1990, 1990, 2004, 2018, 2028, 2028, 2036, 2038, 2048, 2072, 2088, 2092, 2104, 2128, 2136, 2142, 2144, 2154, 2172, 2174, 2196, 2196, 2206, 2214, 2236, 2258, 2258, 2258, 2260, 2260, 2300, 2326, 2328, 2332, 2332, 2370, 2392, 2420, 2424, 2428, 2428, 2428, 2464, 2486, 2492, 2520, 2532, 2536, 2536, 2536, 2562, 2594, 2618, 2642, 2656, 2684, 2684, 2724, 2732, 2792, 2812, 2812, 2818, 2830, 2894, 2894, 2908, 2914, 2938, 2982, 2988, 3022, 3078, 3088, 3110, 3118, 3182, 3222, 3222, 3246, 3274, 3318, 3340, 3358, 3384, 3392, 3408, 3466, 3520, 3524, 3560, 3582, 3588, 3626, 3662, 3694, 3728, 3744, 3778, 3848, 3852, 3882, 3920, 3926, 3974, 4020, 4032, 4058, 4084, 4142, 4168, 4206, 4236, 4254, 4346, 4346, 4350, 4442, 4466, 4488, 4552, 4552, 4578, 4650, 4714, 4730, 4774, 4792, 4838, 4852, 4912, 4948, 4996, 5032, 5078, 5136, 5160, 5242, 5266, 5288, 5316, 5316, 5382, 5472, 5530, 5584, 5618, 5664, 5704, 5732, 5796, 5848, 5960, 5982, 6004, 6004, 6038, 6126, 6162, 6224, 6306, 6352, 6390, 6416, 6512, 6530, 6580, 6672, 6750, 6792, 6822, 6952, 6952, 6954, 7084, 7162, 7218, 7218, 7244, 7406, 7412, 7520, 7526, 7598, 7670, 7738, 7794, 7888, 7934, 7944, 7946, 8150, 8174, 8230, 8294, 8330, 8438, 8516, 8518, 8666, 8786, 8826, 8846, 8988, 9034, 9036, 9112, 9226, 9370, 9432, 9556, 9572, 9640, 9774, 9784, 9876, 9980, 10040, 10160, 10214, 10382, 10406, 10526, 10534, 10600, 10758, 10852, 10914, 10956, 11102, 11168, 11276, 11492, 11664, 11664, 11742, 11742, 11880, 11938, 11976, 12206, 12256, 12276, 1380, 1372, 1368, 1368, 1368, 1368, 1368, 1374, 1374, 1374, 1374, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1374, 1374, 1374, 1374, 1374, 1374, 1368, 1368, 1368, 1368, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1380, 1380, 1380, 1380, 1372, 1364, 1362, 1362, 1362, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1374, 1374, 1374, 1374, 1370, 1370, 1362, 1362, 1360, 1360, 1360, 1366, 1366, 1366, 1364, 1364, 1364, 1364, 1366, 1370, 1370, 1370, 1362, 1362, 1362, 1362, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1360, 1360, 1360, 1358, 1358, 1358, 1358, 1362, 1364, 1364, 1372, 1376, 1376, 1376, 1362, 1362, 1362, 1362, 1362, 1366, 1366, 1366, 1366, 1366, 1370, 1370, 1370, 1354, 1354, 1354, 1354, 1358, 1358, 1358, 1368, 1370, 1370, 1370, 1370, 1370, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1372, 1372, 1372, 1374, 1374, 1374, 1374, 1374, 1378, 1378, 1378, 1378, 1378, 1378, 1376, 1366, 1366, 1366, 1366, 1366, 1372, 1372, 1378, 1380, 1380, 1380, 1380, 1380, 1374, 1374, 1378, 1378, 1384, 1384, 1384, 1384, 1384, 1382, 1378, 1378, 1382, 1382, 1382, 1382, 1382, 1386, 1386, 1386, 1386, 1386, 1390, 1396, 1396, 1396, 1394, 1390, 1390, 1390, 1390, 1388, 1388, 1388, 1392, 1392, 1392, 1388, 1388, 1388, 1388, 1390, 1390, 1390, 1390, 1390, 1380, 1380, 1394, 1394, 1394, 1394, 1396, 1396, 1398, 1398, 1398, 1398, 1398, 1392, 1392, 1392, 1392, 1392, 1404, 1404, 1404, 1404, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1398, 1394, 1394, 1394, 1394, 1394, 1394, 1396, 1396, 1396, 1396, 1396, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1400, 1400, 1400, 1400, 1400, 1396, 1396, 1396, 1400, 1406, 1406, 1412, 1412, 1412, 1412, 1420, 1420, 1412, 1412, 1412, 1412, 1410, 1408, 1408, 1408, 1408, 1408, 1408, 1420, 1420, 1408, 1406, 1406, 1406, 1406, 1406, 1410, 1410, 1410, 1424, 1424, 1424, 1422, 1422, 1412, 1412, 1418, 1418, 1412, 1412, 1418, 1418, 1414, 1414, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1410, 1410, 1412, 1418, 1420, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1414, 1414, 1428, 1430, 1430, 1430, 1430, 1430, 1428, 1428, 1428, 1428, 1430, 1430, 1430, 1434, 1434, 1434, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1430, 1430, 1430, 1432, 1438, 1438, 1434, 1434, 1434, 1434, 1446, 1448, 1470, 1470, 1444, 1444, 1444, 1444, 1450, 1452, 1452, 1452, 1448, 1444, 1444, 1444, 1456, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1460, 1466, 1466, 1466, 1466, 1466, 1466, 1464, 1464, 1464, 1464, 1462, 1462, 1462, 1462, 1462, 1462, 1466, 1466, 1466, 1466, 1468, 1474, 1474, 1474, 1474, 1464, 1464, 1464, 1464, 1470, 1490, 1490, 1494, 1494, 1494, 1480, 1480, 1480, 1480, 1500, 1500, 1500, 1494, 1494, 1492, 1492, 1492, 1492, 1472, 1472, 1478, 1488, 1488, 1490, 1490, 1492, 1496, 1506, 1506, 1498, 1494, 1488, 1486, 1486, 1492, 1502, 1502, 1506, 1506, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1520, 1520, 1520, 1514, 1514, 1524, 1524, 1524, 1524, 1524, 1524, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1518, 1518, 1518, 1526, 1530, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1548, 1548, 1548, 1548, 1548, 1548, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1552, 1552, 1552, 1552, 1560, 1560, 1560, 1556, 1552, 1552, 1552, 1552, 1560, 1560, 1560, 1572, 1574, 1574, 1588, 1590, 1590, 1590, 1576, 1576, 1576, 1576, 1576, 1576, 1588, 1596, 1596, 1612, 1612, 1612, 1610, 1592, 1592, 1592, 1596, 1600, 1602, 1602, 1602, 1598, 1598, 1598, 1612, 1618, 1618, 1618, 1626, 1626, 1626, 1630, 1630, 1630, 1624, 1624, 1624, 1636, 1638, 1642, 1642, 1644, 1644, 1646, 1646, 1646, 1658, 1674, 1674, 1668, 1660, 1660, 1658, 1658, 1658, 1664, 1682, 1682, 1682, 1682, 1690, 1690, 1692, 1692, 1692, 1690, 1690, 1692, 1706, 1706, 1710, 1712, 1722, 1726, 1726, 1726, 1726, 1726, 1732, 1732, 1732, 1752, 1754, 1762, 1766, 1766, 1766, 1762, 1762, 1762, 1790, 1790, 1790, 1790, 1794, 1802, 1812, 1812, 1814, 1818, 1834, 1840, 1842, 1852, 1862, 1866, 1866, 1874, 1876, 1876, 1880, 1888, 1896, 1896, 1896, 1896, 1918, 1926, 1928, 1928, 1944, 1948, 1950, 1956, 1956, 1960, 1962, 1986, 1988, 2004, 2004, 2010, 2010, 2016, 2018, 2022, 2024, 2046, 2070, 2078, 2078, 2088, 2088, 2108, 2108, 2126, 2126, 2126, 2136, 2138, 2164, 2170, 2170, 2170, 2188, 2210, 2236, 2256, 2256, 2268, 2268, 2270, 2300, 2310, 2310, 2330, 2338, 2338, 2340, 2396, 2412, 2412, 2410, 2410, 2410, 2464, 2464, 2464, 2482, 2482, 2498, 2534, 2538, 2548, 2572, 2576, 2630, 2630, 2652, 2652, 2682, 2684, 2694, 2708, 2712, 2732, 2748, 2816, 2816, 2838, 2840, 2852, 2900, 2900, 2912, 2912, 2958, 2976, 2988, 3004, 3026, 3046, 3086, 3090, 3090, 3112, 3138, 3184, 3186, 3208, 3262, 3278, 3320, 3330, 3356, 3382, 3402, 3478, 3478, 3478, 3500, 3534, 3556, 3588, 3608, 3612, 3634, 3648, 3700, 3732, 3750, 3810, 3828, 3838, 3860, 3860, 3894, 3982, 3992, 4000, 4066, 4092, 4142, 4142, 4146, 4166, 4272, 4300, 4326, 4362, 4366, 4404, 4454, 4474, 4488, 4508, 4624, 4624, 4700, 4720, 4778, 4782, 4782, 4900, 4954, 4962, 5038, 5054, 5116, 5186, 5194, 5270, 5326, 5346, 5408, 5418, 5548, 5554, 5624, 5656, 5772, 5806, 5854, 5878, 5980, 6128, 6138, 6142, 6234, 6306, 6394, 6488, 6522, 6568, 6650, 6726, 6846, 6936, 6972, 7000, 7102, 7192, 7254, 7364, 7384, 7438, 7560, 7570, 7700, 7814, 7826, 7940, 8018, 8122, 8242, 8360, 8360, 8398, 8398, 8518, 8678, 8756, 8808, 8846, 9032, 9084, 9160, 9164, 9372, 9408, 9546, 9550, 9698, 9784, 9888, 9928, 10016, 10236, 10256, 10336, 10350, 10534, 10712, 10716, 10840, 10978, 11058, 11124, 11236, 11344, 11454, 11578, 11626, 11744, 11882, 11942, 12018, 12194, 12196, 12526, 12538, 12692, 12816, 12862, 12900, 13232, 14138, 14138, 14138, 13904, 13904, 13904, 13974, 14110, 14228, 14462, 14484, 14592, 14618, 14732, 15076, 15154, 15258, 15412, 15568, 15620, 15728, 15884, 15926, 16154, 16390, 16560, 16706, 16836, 16848, 17032, 17126, 17384, 17538, 17712, 17858, 18028, 18126, 18244, 18276, 18564, 18774, 18910, 19128, 19262, 19418, 19702, 19704, 19810, 20062, 20312, 20456, 20660, 20762, 20902, 21212, 21294, 21322, 21756, 21772, 22084, 22354, 22558, 22582, 22806, 22976, 23234, 23428, 23738, 23910, 24058, 24178, 24576, 24676, 24828, 25052, 25356, 25416, 25580, 25900, 26284, 26480, 26512, 26806, 27112, 27126, 27438, 27822, 27928, 28054, 28224, 28510, 28838, 1656, 1656, 1702, 1702, 1652, 1652, 1652, 1650, 1650, 1650, 1658, 1658, 1658, 1658, 1636, 1636, 1636, 1636, 1640, 1640, 1640, 1640, 1636, 1634, 1634, 1634, 1632, 1632, 1632, 1648, 1648, 1646, 1646, 1646, 1646, 1642, 1636, 1636, 1636, 1636, 1636, 1634, 1626, 1626, 1626, 1626, 1626, 1630, 1630, 1630, 1630, 1628, 1624, 1616, 1616, 1616, 1624, 1624, 1624, 1624, 1614, 1614, 1614, 1614, 1616, 1616, 1616, 1616, 1616, 1616, 1630, 1660, 1660, 1628, 1612, 1608, 1600, 1600, 1598, 1598, 1598, 1598, 1618, 1618, 1618, 1612, 1612, 1612, 1612, 1616, 1616, 1616, 1614, 1600, 1600, 1600, 1604, 1610, 1610, 1610, 1610, 1608, 1608, 1608, 1608, 1616, 1622, 1622, 1620, 1620, 1620, 1620, 1620, 1620, 1624, 1626, 1624, 1624, 1624, 1624, 1622, 1622, 1622, 1622, 1622, 1634, 1638, 1638, 1634, 1626, 1624, 1624, 1626, 1628, 1628, 1628, 1628, 1630, 1632, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1638, 1638, 1638, 1638, 1626, 1626, 1626, 1632, 1642, 1642, 1642, 1638, 1638, 1638, 1638, 1638, 1632, 1632, 1632, 1638, 1640, 1640, 1644, 1652, 1652, 1654, 1654, 1654, 1656, 1656, 1656, 1652, 1652, 1652, 1652, 1664, 1664, 1664, 1662, 1642, 1642, 1660, 1660, 1660, 1656, 1654, 1652, 1652, 1652, 1666, 1666, 1666, 1666, 1676, 1676, 1680, 1692, 1692, 1688, 1666, 1666, 1656, 1656, 1656, 1666, 1670, 1672, 1672, 1672, 1672, 1668, 1668, 1668, 1668, 1678, 1678, 1680, 1680, 1680, 1686, 1686, 1686, 1684, 1684, 1684, 1684, 1692, 1692, 1692, 1692, 1672, 1672, 1672, 1672, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1686, 1694, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1698, 1708, 1708, 1708, 1704, 1696, 1696, 1696, 1698, 1710, 1710, 1710, 1708, 1704, 1696, 1696, 1696, 1700, 1700, 1700, 1700, 1704, 1704, 1708, 1708, 1708, 1708, 1708, 1708, 1712, 1712, 1712, 1718, 1718, 1718, 1718, 1718, 1702, 1702, 1702, 1702, 1720, 1730, 1730, 1730, 1730, 1716, 1716, 1718, 1724, 1724, 1724, 1726, 1726, 1726, 1706, 1706, 1706, 1706, 1724, 1724, 1724, 1724, 1724, 1728, 1734, 1734, 1732, 1732, 1732, 1730, 1730, 1730, 1734, 1734, 1734, 1750, 2202, 2202, 1738, 1738, 1734, 1734, 1722, 1722, 1726, 1736, 1740, 1744, 1744, 1744, 1752, 1752, 1752, 1752, 1756, 1756, 1756, 1750, 1750, 1750, 1750, 1758, 1760, 1760, 1760, 1760, 1760, 1750, 1750, 1750, 1746, 1746, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1776, 1776, 1776, 1776, 1762, 1762, 1762, 1768, 1782, 1788, 1816, 1816, 1794, 1794, 1794, 1794, 1794, 1794, 1792, 1792, 1796, 1796, 1796, 1798, 1798, 1798, 1792, 1792, 1792, 1796, 1812, 1812, 1812, 1820, 1830, 1830, 1830, 1826, 1822, 1822, 1826, 1834, 1834, 1834, 1836, 1836, 1836, 1836, 1838, 1838, 1838, 1850, 1852, 1852, 1852, 1856, 1856, 1856, 1856, 1848, 1848, 1848, 1852, 1878, 1878, 1866, 1862, 1862, 1862, 1864, 1868, 1876, 1880, 1880, 1880, 1880, 1880, 1890, 1890, 1890, 1890, 1890, 1890, 1898, 1898, 1898, 1898, 1898, 1898, 1900, 1910, 1930, 1930, 1930, 1930, 1930, 1920, 1920, 1920, 1942, 1942, 1942, 1926, 1926, 1926, 1930, 1930, 1932, 1932, 1932, 1932, 1936, 1942, 1946, 1946, 1944, 1936, 1936, 1936, 1958, 1958, 1956, 1956, 1956, 1956, 1974, 1974, 1978, 1978, 1978, 1966, 1966, 1966, 1966, 1968, 1968, 1970, 1970, 1978, 1988, 1994, 1996, 1996, 1996, 2010, 2010, 2010, 2006, 2006, 2006, 2012, 2012, 2012, 2020, 2024, 2024, 2026, 2026, 2030, 2030, 2030, 2030, 2038, 2048, 2048, 2050, 2056, 2064, 2064, 2064, 2064, 2064, 2066, 2066, 2066, 2076, 2094, 2094, 2092, 2094, 2094, 2094, 2104, 2104, 2112, 2112, 2112, 2112, 2112, 2112, 2150, 2150, 2150, 2148, 2148, 2148, 2168, 2168, 2180, 2180, 2180, 2178, 2178, 2178, 2186, 2202, 2264, 2264, 2218, 2218, 2218, 2294, 2294, 2292, 2224, 2224, 2224, 2238, 2260, 2264, 2264, 2272, 2268, 2284, 2284, 2284, 2284, 2288, 2320, 2320, 2328, 2344, 2344, 2344, 2330, 2328, 2346, 2354, 2360, 2360, 2372, 2394, 2394, 2404, 2404, 2428, 2428, 2436, 2456, 2456, 2458, 2458, 2460, 2480, 2490, 2516, 2578, 2586, 2586, 2586, 2586, 2578, 2578, 2578, 2578, 2584, 2596, 2620, 2620, 2634, 2648, 2676, 2684, 2684, 2692, 2692, 2710, 2710, 2748, 2748, 2748, 2774, 2778, 2810, 2810, 2810, 2858, 2862, 2880, 2880, 2880, 2918, 2942, 2950, 2964, 2972, 2978, 3004, 3058, 3058, 3058, 3084, 3268, 3268, 3178, 3178, 3178, 3178, 3206, 3218, 3240, 3266, 3288, 3288, 3340, 3346, 3390, 3392, 3408, 3408, 3462, 3466, 3526, 3526, 3554, 3574, 3582, 3618, 3628, 3656, 3716, 3718, 3754, 3786, 3796, 3800, 3834, 3866, 3938, 3940, 3980, 3984, 4054, 4110, 4222, 4228, 4228, 4228, 4228, 4228, 4294, 4318, 4326, 4378, 4378, 4438, 4484, 4512, 4568, 4576, 4602, 4712, 4734, 4778, 4882, 4882, 4906, 4906, 4956, 4980, 5038, 5066, 5134, 5166, 5178, 5260, 5288, 5290, 5348, 5466, 5496, 5544, 5560, 5624, 5744, 5754, 5788, 5864, 5888, 5928, 5986, 6080, 6192, 6226, 6250, 6260, 6322, 6408, 6434, 6550, 6614, 6634, 6704, 6764, 6800, 6928, 6996, 7016, 7116, 7172, 7180, 7274, 7344, 7484, 7642, 7642, 7666, 7666, 7790, 7848, 7856, 7978, 8050, 8116, 8224, 8286, 8306, 8404, 8502, 8576, 8710, 8788, 8788, 8924, 8938, 8942, 9072, 9184, 9290, 9402, 9462, 9594, 9612, 9776, 9830, 9886, 9954, 10114, 10204, 10322, 10446, 10510, 10584, 10772, 10798, 11010, 11068, 11230, 11348, 11482, 11524, 11712, 11840, 12032, 12098, 12248, 12400, 12592, 12614, 12834, 12952, 13162, 13422, 13466, 13662, 13780, 13842, 14066, 14360, 14468, 14590, 14744, 14956, 15186, 15436, 15504, 15772, 15936, 16094, 16168, 16506, 16614, 16772, 16890, 17000, 17304, 17552, 17632, 17898, 18020, 18236, 18396, 18658, 18788, 19054, 19228, 19332, 19594, 19750, 19966, 20016, 20394, 20540, 20856, 21006, 21344, 21362, 21642, 21880, 22042, 22314, 22372, 22832, 23002, 23120, 23512, 23536, 23814, 24180, 24466, 24484, 24918, 25026, 25212, 25726, 25726, 25918, 26346, 26466, 26632, 27004, 27186, 27408, 27580, 27926, 28062, 28526, 28760, 29008, 29368, 29556, 30330, 30330, 30602, 30932, 30948, 31438, 31550, 31858, 31982, 32264, 32678, 33032, 33464, 33796, 33828, 34180, 34356, 34568, 35328, 35510, 35786, 36188, 36454, 36688, 36948, 37300, 37466, 38034, 38244, 38704, 38918, 39422, 39636, 39864, 40266, 40506, 41142, 41386, 41830, 42186, 42314, 42498, 42874, 43280, 43704, 44226, 45270, 45496, 45496, 45646, 45736, 46342, 46940, 47302, 47654, 48002, 48514, 48798, 49132, 49690, 50156, 50828, 51164, 51574, 51826, 52302, 52752, 53086, 53534, 53936, 54408, 54914, 55340, 55718, 56282, 56776, 56878, 57504, 58224, 58582, 59044, 59638, 60108, 60644, 61020, 61594, 61924, 62126, 62706, 63220, 63824, 64348, 65018, 65500, 66032, 2256, 2220, 2200, 2200, 2190, 2190, 2194, 2194, 2194, 2194, 2194, 2194, 2194, 2194, 2184, 2184, 2184, 2184, 2182, 2156, 2154, 2154, 2164, 2164, 2164, 2156, 2156, 2156, 2160, 2160, 2160, 2160, 2160, 2156, 2158, 2154, 2154, 2148, 2136, 2136, 2136, 2172, 2204, 2204, 2162, 2136, 2136, 2136, 2136, 2146, 2294, 2334, 2334, 2190, 2118, 2114, 2114, 2114, 2120, 2120, 2120, 2120, 2114, 2106, 2106, 2106, 2102, 2102, 2102, 2102, 2098, 2098, 2098, 2098, 2094, 2094, 2094, 2094, 2090, 2090, 2090, 2090, 2088, 2088, 2088, 2088, 2096, 2096, 2096, 2086, 2086, 2086, 2082, 2082, 2082, 2082, 2090, 2098, 2102, 2102, 2100, 2100, 2092, 2084, 2082, 2082, 2082, 2082, 2094, 2094, 2094, 2094, 2094, 2112, 2114, 2114, 2114, 2114, 2114, 2096, 2096, 2120, 2120, 2096, 2096, 2112, 2118, 2118, 2118, 2118, 2130, 2130, 2130, 2130, 2124, 2124, 2124, 2124, 2124, 2124, 2126, 2126, 2126, 2126, 2124, 2124, 2124, 2124, 2132, 2134, 2140, 2140, 2148, 2148, 2148, 2140, 2140, 2140, 2154, 2162, 2162, 2162, 2162, 2154, 2154, 2154, 2166, 2166, 2168, 2168, 2168, 2160, 2160, 2160, 2172, 2180, 2180, 2180, 2180, 2180, 2182, 2182, 2186, 2186, 2186, 2184, 2180, 2180, 2180, 2200, 2202, 2202, 2202, 2198, 2198, 2198, 2198, 2198, 2198, 2198, 2198, 2198, 2200, 2206, 2216, 2220, 2220, 2214, 2214, 2214, 2214, 2222, 2222, 2222, 2224, 2224, 2218, 2210, 2210, 2214, 2222, 2230, 2230, 2230, 2230, 2238, 2238, 2238, 2238, 2232, 2226, 2226, 2232, 2248, 2252, 2258, 2258, 2258, 2258, 2258, 2258, 2244, 2244, 2244, 2240, 2240, 2240, 2258, 2260, 2260, 2260, 2274, 2274, 2254, 2254, 2258, 2260, 2272, 2282, 2282, 2282, 2284, 2284, 2284, 2282, 2280, 2280, 2276, 2276, 2276, 2276, 2276, 2288, 2288, 2288, 2288, 2300, 2300, 2294, 2292, 2292, 2292, 2292, 2304, 2316, 2316, 2316, 2316, 2316, 2316, 2312, 2312, 2312, 2312, 2308, 2308, 2308, 2318, 2324, 2324, 2324, 2324, 2324, 2318, 2318, 2312, 2312, 2312, 2324, 2324, 2324, 2324, 2332, 2344, 2344, 2344, 2342, 2338, 2338, 2340, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2350, 2350, 2350, 2350, 2352, 2352, 2354, 2354, 2354, 2354, 2354, 2356, 2356, 2356, 2358, 2360, 2360, 2360, 2360, 2360, 2366, 2374, 2374, 2374, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2396, 2396, 2396, 2400, 2408, 2408, 2400, 2398, 2398, 2398, 2398, 2412, 2412, 2412, 2412, 2416, 2416, 2416, 2424, 2440, 2460, 2460, 2420, 2420, 2420, 2420, 2432, 2432, 2432, 2432, 2432, 2442, 2448, 2448, 2448, 2454, 2462, 2462, 2462, 2462, 2462, 2466, 2466, 2468, 2478, 2478, 2486, 2500, 2502, 2502, 2510, 2510, 2510, 2510, 2514, 2516, 2518, 2518, 2518, 2550, 2550, 2550, 2546, 2538, 2538, 2538, 2538, 2556, 2560, 2564, 2564, 2564, 2598, 2598, 2598, 2598, 2592, 2592, 2592, 2592, 2616, 2616, 2626, 2628, 2636, 2636, 2636, 2638, 2638, 2638, 2634, 2630, 2630, 2632, 2632, 2632, 2640, 2640, 2640, 2640, 2684, 2684, 2680, 2680, 2682, 2686, 2690, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2730, 2730, 2730, 2730, 2730, 2730, 2730, 2734, 2746, 2746, 2752, 2752, 2752, 2752, 2756, 2760, 2770, 2770, 2770, 2770, 2796, 2796, 2800, 2800, 2800, 2800, 2800, 2800, 2796, 2788, 2788, 2798, 2828, 2856, 2856, 2872, 2872, 2872, 2872, 2872, 2876, 2882, 2882, 2896, 2896, 2910, 2916, 2916, 2916, 2916, 2916, 2922, 2926, 2948, 2948, 2948, 2948, 2948, 2968, 2984, 2984, 2984, 2990, 3002, 3010, 3010, 3010, 3010, 3010, 3010, 3026, 3028, 3032, 3054, 3058, 3086, 3094, 3102, 3102, 3102, 3124, 3124, 3124, 3142, 3146, 3148, 3160, 3172, 3176, 3176, 3188, 3190, 3216, 3220, 3224, 3252, 3254, 3258, 3258, 3258, 3258, 3292, 3292, 3310, 3332, 3332, 3342, 3348, 3366, 3366, 3366, 3366, 3396, 3408, 3410, 3418, 3420, 3420, 3474, 3482, 3482, 3504, 3518, 3520, 3536, 3574, 3586, 3594, 3594, 3634, 3636, 3638, 3644, 3674, 3690, 3700, 3700, 3700, 3760, 3774, 3782, 3800, 3800, 3806, 3816, 3846, 3862, 3896, 3910, 3946, 3984, 3986, 3990, 4002, 4002, 4068, 4094, 4152, 4166, 4166, 4178, 4188, 4200, 4260, 4320, 4320, 4368, 4368, 4368, 4408, 4410, 4410, 4436, 4494, 4522, 4538, 4546, 4612, 4634, 4638, 4676, 4742, 4776, 4788, 4804, 4842, 4876, 4934, 4934, 4972, 5034, 5094, 5098, 5110, 5134, 5224, 5224, 5254, 5254, 5336, 5410, 5444, 5458, 5484, 5538, 5566, 5644, 5662, 5738, 5742, 5792, 5832, 5868, 5986, 6020, 6026, 6108, 6164, 6180, 6250, 6304, 6374, 6420, 6448, 6472, 6502, 6596, 6640, 6726, 6790, 6848, 6920, 6966, 7068, 7098, 7132, 7268, 7350, 7410, 7468, 7492, 7552, 7610, 7660, 7762, 7786, 7912, 7946, 8054, 8056, 8242, 8330, 8414, 8442, 8486, 8620, 8738, 8758, 8878, 8976, 9092, 9146, 9160, 9222, 9368, 9550, 9552, 9682, 9754, 9898, 9982, 10108, 10172, 10258, 10366, 10462, 10590, 10680, 10786, 10938, 10960, 11150, 11276, 11366, 11482, 11530, 11710, 11790, 11950, 12050, 12318, 12350, 12518, 12576, 12750, 12790, 13018, 13178, 13186, 13408, 13592, 13680, 13826, 13954, 14078, 14216, 14372, 14544, 14714, 14776, 15040, 15114, 15302, 15504, 15636, 15802, 15928, 16454, 16454, 16626, 16626, 16834, 16954, 17056, 17332, 17484, 17652, 17724, 17992, 18074, 18154, 18470, 18560, 18884, 18920, 19092, 19262, 19496, 19700, 19920, 20010, 20394, 20670, 20856, 20856, 21158, 21358, 21412, 21830, 21942, 22174, 22368, 22536, 22928, 23088, 23450, 23630, 23900, 24026, 24426, 24636, 24916, 25296, 25570, 25734, 26114, 26414, 26724, 26886, 27218, 27618, 27938, 28424, 28750, 29132, 29412, 29964, 30230, 30564, 31044, 31400, 31946, 32226, 32368, 33068, 33302, 33868, 34012, 34762, 35128, 35390, 35800, 36206, 36724, 37122, 37510, 37728, 38244, 38788, 39060, 39578, 39968, 40500, 40748, 40992, 41402, 42034, 42628, 42760, 43376, 43650, 44106, 44560, 45106, 45530, 46096, 46406, 46902, 47224, 47682, 48326, 48804, 49350, 49698, 50480, 50872, 51136, 51794, 52318, 52968, 53260, 53788, 54158, 54812, 55112, 55756, 56272, 56798, 57412, 57728, 58328, 58754, 59342, 60142, 60594, 61188, 61810, 62248, 62790, 63208, 63716, 64472, 65248, 66066, 66520, 66918, 67356, 67838, 68634, 69266, 70266, 70774, 71516, 71792, 72282, 72998, 73816, 74532, 75588, 76156, 76332, 77026, 77634, 78440, 79396, 80108, 80840, 81500, 81928, 82480, 83212, 83854, 84830, 85224, 86450, 86912, 87588, 88060, 88668, 89658, 90230, 91074, 92122, 93334, 93672, 94604, 94812, 95380, 96060, 97176, 97776, 100356, 100368, 101096, 101328, 102152, 102566, 103822, 104778, 105822, 106790, 107616, 107988, 108940, 109754, 110828, 111626, 112816, 114006, 114968, 115670, 116418, 117604, 118004, 119176, 120124, 120940, 122644, 123280, 123996, 125172, 125852, 126348, 127178, 127512, 128352, 129058, 129314, 129314, 129612, 129866, 130056, 130438, 130508, 130508, 130514, 130514, 130522, 130522, 130522, 130522, 3224, 3200, 3188, 3184, 3182, 3182, 3182, 3178, 3162, 3162, 3150, 3150, 3134, 3132, 3132, 3114, 3114, 3114, 3114, 3116, 3128, 3128, 3124, 3120, 3116, 3114, 3106, 3106, 3098, 3098, 3098, 3098, 3102, 3102, 3070, 3070, 3068, 3068, 3068, 3050, 3050, 3050, 3050, 3050, 3050, 3046, 3046, 3046, 3046, 3046, 3048, 3052, 3052, 3052, 3070, 3070, 3036, 3034, 3016, 3006, 3006, 3006, 3010, 3010, 3014, 3014, 3014, 3014, 3014, 3014, 3002, 3002, 3002, 3002, 3010, 3010, 3358, 3358, 3358, 2964, 2964, 2964, 2974, 2974, 2980, 2980, 2980, 2994, 2994, 2992, 2992, 2996, 2998, 2998, 2998, 3002, 3002, 2996, 2982, 2976, 2976, 2976, 2976, 2976, 2976, 2978, 2986, 2986, 2986, 2986, 2986, 2986, 3004, 3006, 3006, 3006, 3012, 3012, 2978, 2978, 2978, 2992, 3018, 3030, 3030, 3022, 3018, 3010, 3006, 3006, 3024, 3038, 3038, 3038, 3038, 3042, 3042, 3042, 3044, 3046, 3046, 3062, 3062, 3062, 3062, 3062, 3062, 3062, 3062, 3064, 3068, 3068, 3068, 3068, 3068, 3090, 3090, 3090, 3090, 3094, 3124, 3124, 3124, 3124, 3124, 3110, 3106, 3106, 3106, 3116, 3138, 3138, 3138, 3138, 3132, 3132, 3118, 3118, 3142, 3142, 3142, 3142, 3148, 3176, 3180, 3214, 3214, 3214, 3166, 3166, 3166, 3166, 3184, 3220, 3222, 3384, 3384, 3284, 3236, 3232, 3206, 3202, 3202, 3202, 3202, 3220, 3220, 3226, 3226, 3220, 3220, 3234, 3234, 3228, 3228, 3250, 3250, 3250, 3244, 3244, 3244, 3238, 3238, 3238, 3238, 3240, 3240, 3254, 3282, 3282, 3282, 3276, 3270, 3250, 3240, 3240, 3252, 3274, 3274, 3298, 3298, 3298, 3292, 3292, 3288, 3288, 3294, 3308, 3318, 3320, 3320, 3320, 3308, 3308, 3308, 3320, 3320, 3324, 3324, 3328, 3328, 3340, 3340, 3340, 3340, 3338, 3338, 3338, 3340, 3340, 3352, 3352, 3356, 3370, 3370, 3372, 3374, 3376, 3376, 3376, 3376, 3366, 3362, 3362, 3366, 3374, 3380, 3380, 3380, 3380, 3390, 3390, 3394, 3398, 3398, 3416, 3416, 3416, 3424, 3462, 3466, 3462, 3454, 3446, 3446, 3438, 3438, 3438, 3444, 3444, 3444, 3442, 3442, 3430, 3430, 3430, 3436, 3464, 3472, 3472, 3490, 3490, 3490, 3488, 3488, 3480, 3464, 3464, 3464, 3464, 3482, 3488, 3500, 3500, 3494, 3494, 3494, 3494, 3488, 3488, 3488, 3496, 3532, 3540, 3540, 3540, 3526, 3516, 3516, 3516, 3540, 3560, 3560, 3560, 3560, 3552, 3552, 3552, 3552, 3552, 3564, 3564, 3566, 3566, 3570, 3570, 3568, 3560, 3560, 3574, 3682, 3682, 3674, 3642, 3610, 3610, 3600, 3580, 3580, 3606, 3624, 3636, 3652, 3656, 3656, 3658, 3662, 3666, 3666, 3670, 3678, 3706, 3706, 3670, 3670, 3702, 3710, 3710, 3714, 3718, 3720, 3734, 3734, 3734, 3734, 3740, 3744, 3748, 3780, 3782, 3792, 3794, 3794, 3794, 3794, 3808, 3816, 3844, 3854, 3854, 3854, 3854, 3856, 3872, 3878, 3906, 3906, 3908, 3908, 3908, 3918, 3926, 3928, 3936, 3940, 3950, 3950, 3968, 3978, 3996, 3996, 4004, 4004, 4018, 4018, 4034, 4034, 4034, 4034, 4070, 4070, 4070, 4072, 4072, 4090, 4096, 4114, 4130, 4130, 4130, 4130, 4146, 4168, 4170, 4196, 4228, 4228, 4212, 4212, 4230, 4242, 4248, 4270, 4788, 4788, 4788, 4788, 4668, 4400, 4266, 4266, 4266, 4268, 4324, 4326, 4336, 4336, 4336, 4344, 4344, 4344, 4402, 4414, 4414, 4422, 4422, 4422, 4410, 4410, 4418, 4438, 4490, 4502, 4502, 4502, 4502, 4520, 4520, 4520, 4536, 4558, 4558, 4558, 4558, 4564, 4602, 4616, 4616, 4616, 4658, 4658, 4658, 4658, 4662, 4706, 4706, 4754, 4762, 4782, 4782, 4784, 4784, 4784, 4784, 4792, 4844, 4942, 5138, 5138, 4968, 4966, 4912, 4912, 4912, 4966, 5020, 5020, 5020, 5020, 5026, 5042, 5060, 5070, 5082, 5104, 5108, 5168, 5198, 5202, 5250, 5250, 5250, 5250, 5254, 5262, 5342, 5342, 5348, 5376, 5396, 5414, 5430, 5430, 5498, 5538, 5538, 5548, 5616, 5642, 5642, 5692, 5728, 5728, 5734, 5766, 5816, 5848, 5854, 5854, 5854, 5926, 5988, 5996, 6014, 6038, 6042, 6148, 6148, 6156, 6178, 6216, 6276, 6292, 6334, 6348, 6412, 6474, 6492, 6498, 6542, 6546, 6626, 6652, 6698, 6746, 6756, 6786, 6844, 6914, 6936, 6938, 7010, 7056, 7146, 7184, 7210, 7338, 7344, 7446, 7504, 7508, 7560, 7608, 7620, 7684, 7730, 7812, 7886, 7916, 7966, 8052, 8100, 8162, 8242, 8318, 8382, 8418, 8476, 8600, 8658, 8698, 8718, 8752, 8930, 9006, 9008, 9200, 9206, 9208, 9390, 9444, 9444, 9610, 9652, 9834, 9846, 9944, 9958, 10086, 10164, 10338, 10352, 10422, 10536, 10568, 10762, 10854, 10966, 11020, 11132, 11254, 11384, 11448, 11626, 11708, 11780, 11844, 11958, 12128, 12268, 12302, 12486, 12638, 12674, 12870, 12956, 13034, 13256, 13364, 13474, 13594, 13728, 13804, 14052, 14146, 14272, 14522, 14620, 14778, 15008, 15022, 15288, 15352, 15412, 15648, 15822, 16054, 16268, 16436, 16688, 16890, 16890, 17062, 17068, 17428, 17616, 17780, 18004, 18216, 18266, 18494, 18760, 18908, 19064, 19260, 19410, 20206, 20206, 20206, 20584, 20616, 20864, 20984, 21366, 21656, 21772, 21944, 22294, 22458, 22706, 22982, 23362, 23504, 23704, 24054, 24172, 24572, 24920, 25204, 25458, 25686, 26008, 26072, 26492, 26848, 27064, 27310, 27622, 27962, 28312, 28610, 28950, 29182, 29576, 29796, 30126, 30522, 30858, 31078, 31398, 32044, 32206, 32628, 32854, 33188, 33508, 34064, 34246, 34596, 35124, 35386, 35780, 36192, 36452, 36754, 37454, 37598, 37904, 38260, 38716, 39032, 39410, 39824, 40276, 40722, 41088, 41390, 41872, 42076, 42578, 43282, 43288, 43920, 44264, 44710, 45218, 45566, 46100, 46546, 47078, 47476, 47928, 48442, 48832, 49514, 50010, 50642, 51056, 51376, 52226, 52626, 53040, 53810, 54396, 54930, 55548, 56220, 56760, 57478, 58304, 59080, 59488, 60416, 60868, 61660, 62586, 63300, 64190, 64934, 65768, 66398, 67456, 68010, 69220, 69892, 70880, 71718, 72404, 73384, 74306, 75198, 76250, 77930, 78442, 78732, 79684, 80486, 81538, 82422, 83008, 84188, 84732, 85972, 86754, 87714, 88808, 89820, 90336, 91580, 92494, 93478, 94574, 95196, 96618, 97214, 98300, 99268, 100362, 101134, 102302, 102954, 104130, 105178, 106388, 107158, 108268, 109000, 110142, 111352, 112446, 113534, 114514, 115644, 116920, 117370, 118996, 120050, 121128, 121928, 122932, 124332, 125344, 126278, 126824, 127586, 128264, 128802, 129108, 129394, 129628, 129984, 130214, 130444, 130464, 130526, 130526, 130526, 130544, 130552, 130552, 130552, 130552, 130552, 130552, 130576, 130576, 130576, 130576, 130578, 130580, 130580, 130626, 130630, 130630, 130644, 130644, 130644, 130648, 130658, 130658, 130658, 130658, 130658, 130658, 130658, 130686, 130688, 130688, 130688, 130688, 130686, 130686, 130686, 130684, 130684, 130692, 130712, 130712, 130712, 130712, 130712, 130712, 130712, 130704, 130702, 130696, 130696, 130696, 130696, 130696, 130680, 130680, 130680, 130618, 130600, 130586, 130586, 130586, 130586, 130612, 130638, 130646, 130654, 130680, 130680, 130676, 130676, 130676, 130608, 130608, 130598, 130598, 130598, 130582, 130582, 130582, 130582, 130582, 130582, 130570, 130564, 130560, 130560, 130560, 130544, 130544, 130550, 130566, 130574, 130574, 130564, 130534, 130534, 130534, 4980, 4980, 4980, 4980, 4980, 4958, 4934, 4924, 4918, 4916, 4888, 4888, 4888, 4874, 4874, 4872, 4868, 4842, 4842, 4842, 4842, 4828, 4812, 4812, 4802, 4802, 4802, 4772, 4772, 4772, 4774, 4774, 4774, 4754, 4728, 4728, 4728, 4722, 4722, 4716, 4696, 4696, 4708, 4708, 4708, 4708, 4680, 4680, 4680, 4666, 4644, 4644, 4644, 4656, 4656, 4656, 4636, 4626, 4626, 4626, 4626, 4614, 4614, 4614, 4614, 4614, 4614, 4594, 4594, 4594, 4594, 4594, 4562, 4562, 4564, 4576, 4576, 4576, 4576, 4576, 4578, 4580, 4588, 4596, 4592, 4570, 4556, 4556, 4556, 4556, 4564, 4564, 4566, 4566, 4584, 4584, 4584, 4584, 4584, 4612, 4612, 4612, 4612, 4596, 4596, 4596, 4636, 4636, 4636, 4636, 4642, 4642, 4642, 4642, 4632, 4632, 4632, 4648, 4648, 4648, 4648, 4640, 4640, 4646, 4664, 4672, 4676, 4676, 4686, 4688, 4688, 4688, 4682, 4682, 4682, 4694, 4694, 4694, 4706, 4706, 4730, 4730, 4744, 4762, 4762, 4772, 4784, 4784, 4776, 4762, 4748, 4748, 4764, 4772, 4780, 4780, 4788, 4794, 4794, 4794, 4810, 4822, 4830, 4838, 4838, 4834, 4832, 4832, 4832, 4832, 4832, 4838, 4854, 4854, 4870, 4870, 4870, 4876, 4878, 4908, 4910, 4910, 4910, 4910, 4910, 4916, 4928, 4930, 4936, 4940, 4940, 4940, 4978, 4982, 4998, 4998, 4998, 4998, 4998, 4992, 4992, 4992, 5008, 5008, 5008, 5014, 5014, 5014, 5042, 5042, 5042, 5040, 5040, 5040, 5048, 5078, 5078, 5078, 5078, 5072, 5070, 5068, 5068, 5068, 5084, 5084, 5084, 5120, 5120, 5120, 5120, 5120, 5120, 5114, 5114, 5116, 5116, 5130, 5130, 5168, 5168, 5168, 5172, 5178, 5196, 5196, 5216, 5216, 5216, 5216, 5216, 5224, 5224, 5224, 5224, 5224, 5224, 5224, 5224, 5224, 5236, 5248, 5248, 5252, 5280, 5288, 5274, 5274, 5274, 5274, 5274, 5290, 5290, 5312, 5312, 5312, 5316, 5350, 5388, 5388, 5354, 5354, 5354, 5354, 5362, 5362, 5362, 5394, 5394, 5394, 5370, 5370, 5370, 5396, 5404, 5404, 5400, 5394, 5394, 5406, 5406, 5408, 5422, 5422, 5422, 5422, 5434, 5434, 5438, 5438, 5438, 5454, 5462, 5512, 5512, 5512, 5516, 5518, 5520, 5520, 5520, 5520, 5518, 5514, 5514, 5514, 5514, 5514, 5514, 5538, 5538, 5538, 5538, 5546, 5546, 5546, 5546, 5544, 5544, 5562, 5660, 5840, 5840, 5670, 5582, 5582, 5582, 5582, 5614, 5628, 5628, 5658, 5664, 5664, 5664, 5664, 5664, 5678, 5678, 5668, 5666, 5666, 5666, 5670, 5678, 5680, 5698, 5722, 5722, 5722, 5722, 5728, 5732, 5736, 5740, 5746, 5746, 5780, 5780, 5796, 5808, 5808, 5808, 5830, 5856, 5856, 5858, 5858, 5882, 5882, 5882, 5882, 5902, 5932, 5932, 5956, 5972, 5972, 5974, 6002, 6030, 6036, 6048, 6052, 6046, 6056, 6062, 6070, 6112, 6120, 6120, 6146, 6164, 6164, 6184, 6212, 6212, 6222, 6222, 6228, 6272, 6276, 6278, 6282, 6282, 6282, 6298, 6362, 6362, 6362, 6362, 6376, 6382, 6426, 6426, 6426, 6460, 6462, 6462, 6496, 6520, 6542, 6558, 6586, 6606, 6606, 6606, 6606, 6606, 6606, 6656, 6700, 6708, 6756, 6756, 6774, 6774, 6774, 6782, 6774, 6794, 6840, 6848, 6848, 6856, 6856, 6868, 6926, 6932, 6948, 6964, 7008, 7010, 7010, 7032, 7032, 7054, 7112, 7122, 7126, 7136, 7154, 7154, 7180, 7196, 7244, 7244, 7250, 7252, 7252, 7252, 7290, 7302, 7314, 7356, 7382, 7382, 7406, 7406, 7428, 7486, 7526, 7526, 7566, 7566, 7582, 7596, 7596, 7596, 7648, 7688, 7702, 7744, 7794, 7794, 7794, 7838, 7860, 7902, 7902, 7946, 7968, 7978, 7996, 8004, 8054, 8074, 8116, 8134, 8172, 8184, 8184, 8184, 8322, 8322, 8344, 8346, 8392, 8422, 8444, 8462, 8472, 8562, 8568, 8628, 8628, 8628, 8756, 8756, 8772, 8874, 8884, 8892, 8892, 8976, 9040, 9064, 9064, 9098, 9156, 9284, 9288, 9402, 9406, 9406, 9454, 9474, 9556, 9614, 9656, 9680, 9794, 9794, 9808, 9894, 9972, 10016, 10058, 10128, 10178, 10268, 10328, 10382, 10458, 10478, 10520, 10566, 10646, 10742, 10754, 10916, 10934, 11006, 11056, 11074, 11202, 11294, 11308, 11404, 11482, 11588, 11646, 11720, 11824, 11872, 11928, 12028, 12064, 12144, 12394, 12404, 12504, 12506, 12744, 12754, 12796, 12872, 13010, 13178, 13212, 13334, 13442, 13562, 13610, 13768, 13942, 13960, 14008, 14222, 14308, 14422, 14546, 14660, 14870, 14932, 14942, 15148, 15366, 15494, 15688, 15698, 15956, 16058, 16172, 16506, 16572, 16666, 16770, 16876, 17040, 17256, 17368, 17546, 17742, 17966, 18168, 18210, 18622, 18672, 18858, 18944, 19210, 19358, 19620, 19794, 19998, 20196, 20300, 20594, 20758, 20996, 21102, 21342, 21524, 21710, 21916, 22194, 22386, 22700, 23004, 23196, 23262, 23548, 23888, 24076, 24388, 24800, 24856, 24994, 25474, 25696, 26036, 26268, 26592, 26874, 27052, 27382, 27618, 27932, 28388, 28514, 28988, 29134, 29602, 29878, 30266, 30492, 30956, 31260, 31596, 31972, 32268, 32602, 32842, 33338, 33648, 34176, 34294, 34888, 35086, 35758, 35926, 36382, 36726, 37166, 37690, 38070, 38716, 38962, 39074, 39772, 40260, 40596, 40966, 41408, 42030, 42342, 42888, 43412, 43796, 44434, 44860, 45500, 45580, 46364, 46882, 47272, 48016, 48406, 49048, 49346, 49956, 50626, 51154, 51806, 52328, 52878, 53520, 54172, 54810, 55194, 55898, 56470, 57184, 57952, 58404, 59208, 59546, 60562, 61194, 61896, 62556, 63446, 63910, 64432, 65338, 65796, 66778, 67280, 68082, 68854, 69548, 70180, 71028, 71992, 72588, 73276, 74190, 75044, 75792, 76466, 77280, 78332, 79028, 79678, 80572, 81344, 82336, 82778, 84016, 84804, 85550, 86348, 87388, 87844, 88790, 89882, 90518, 91446, 92060, 93300, 94010, 94826, 95796, 96534, 97532, 98892, 99682, 100758, 101742, 102816, 103850, 104872, 105860, 107062, 108232, 109138, 110248, 111506, 112774, 113610, 115034, 115944, 117060, 119112, 119676, 121652, 122548, 124188, 125404, 126660, 127314, 128014, 129024, 129374, 129736, 130144, 130552, 130562, 130576, 130604, 130606, 130606, 130606, 130606, 130620, 130628, 130638, 130640, 130640, 130660, 130692, 130692, 130692, 130692, 130690, 130672, 130672, 130712, 130718, 130718, 130718, 130734, 130734, 130750, 130750, 130750, 130750, 130742, 130742, 130742, 130778, 130778, 130778, 130778, 130756, 130756, 130736, 130732, 130732, 130732, 130714, 130698, 130692, 130628, 130622, 130622, 130626, 130628, 130644, 130710, 130722, 130722, 130684, 130684, 130684, 130672, 130618, 130618, 130616, 130596, 130570, 130546, 130546, 130546, 130546, 130546, 130546, 130550, 130550, 130554, 130576, 130584, 130584, 130564, 130556, 130530, 130530, 130530, 130530, 130530, 130530, 130530, 130530, 130530, 130536, 130554, 130554, 130572, 130572, 130572, 130542, 130542, 130542, 130564, 130564, 130574, 130574, 130574, 130574, 130574, 130574, 130574, 130600, 130600, 130600, 130600, 130570, 130570, 130570, 130570, 130574, 130574, 130574, 130574, 130574, 130574, 130574, 130574, 130574, 130574, 130586, 130586, 130586, 130586, 130586, 130586, 130586, 130586, 130586, 130562, 130562, 130562, 130562, 130562, 130562, 130588, 130588, 130588, 130588, 130588, 130588, 130584, 130584, 130584, 130584, 130560, 130550, 130550, 130550, 130566, 130566, 130566, 130602, 130602, 130602, 130602, 130596, 130586, 130586, 130586, 130582, 130582, 130582, 130584, 130584, 130584, 130584, 130632, 130632, 130580, 130576, 130576, 130576, 8314, 8112, 7980, 7980, 7980, 7988, 7988, 7988, 7902, 7884, 7876, 7848, 7848, 7848, 7830, 7830, 7810, 7810, 7810, 7776, 7756, 7754, 7754, 7744, 7722, 7722, 7700, 7664, 7652, 7648, 7648, 7654, 7654, 7644, 7644, 7644, 7596, 7596, 7580, 7552, 7552, 7552, 7552, 7566, 7566, 7552, 7552, 7552, 7552, 7530, 7530, 7512, 7494, 7472, 7472, 7472, 7460, 7460, 7460, 7430, 7430, 7430, 7432, 7432, 7432, 7430, 7430, 7398, 7398, 7398, 7398, 7384, 7382, 7382, 7382, 7368, 7368, 7366, 7356, 7356, 7356, 7332, 7324, 7324, 7336, 7346, 7346, 7346, 7346, 7334, 7334, 7334, 7334, 7334, 7352, 7376, 7376, 7376, 7376, 7376, 7376, 7380, 7380, 7380, 7380, 7380, 7380, 7418, 7418, 7418, 7418, 7418, 7418, 7452, 7452, 7452, 7458, 7462, 7476, 7476, 7476, 7502, 7502, 7506, 7524, 7524, 7524, 7524, 7524, 7526, 7526, 7568, 7568, 7572, 7572, 7572, 7572, 7572, 7592, 7592, 7592, 7592, 7592, 7614, 7618, 7642, 7648, 7648, 7648, 7672, 7672, 7672, 7672, 7696, 7736, 7738, 7742, 7742, 7742, 7752, 7752, 7776, 7776, 7776, 7814, 7846, 7872, 7884, 7890, 7892, 7896, 7898, 7896, 7896, 7896, 7896, 7924, 7934, 7934, 7952, 7952, 7952, 7952, 7952, 7952, 7952, 7952, 8018, 8048, 8048, 8048, 8048, 8050, 8050, 8050, 8094, 8094, 8086, 8088, 8088, 8092, 8110, 8110, 8136, 8164, 8164, 8164, 8164, 8164, 8196, 8224, 8224, 8212, 8212, 8212, 8220, 8236, 8300, 8300, 8300, 8274, 8274, 8274, 8280, 8314, 8344, 8348, 8348, 8348, 8414, 8414, 8362, 8362, 8362, 8382, 8410, 8418, 8418, 8418, 8418, 8448, 8458, 8464, 8470, 8476, 8488, 8488, 8518, 8518, 8518, 8492, 8492, 8492, 8492, 8524, 8544, 8546, 8548, 8552, 8552, 8552, 8552, 8552, 8590, 8624, 8624, 8624, 8624, 8624, 8604, 8604, 8644, 8644, 8644, 8688, 8698, 8714, 8714, 8718, 8718, 8718, 8756, 8758, 8758, 8758, 8800, 8800, 8800, 8782, 8782, 8782, 8788, 8804, 8834, 8836, 8846, 8846, 8866, 8906, 8906, 8906, 8906, 8906, 8906, 8910, 8912, 8912, 8918, 8954, 8982, 8988, 8988, 8988, 8988, 8988, 8988, 8988, 9032, 9032, 9032, 9030, 9030, 9034, 9034, 9050, 9050, 9090, 9090, 9106, 9106, 9128, 9128, 9134, 9134, 9134, 9144, 9150, 9160, 9160, 9172, 9172, 9172, 9172, 9202, 9206, 9214, 9214, 9252, 9276, 9276, 9276, 9276, 9282, 9308, 9308, 9308, 9308, 9308, 9308, 9308, 9316, 9320, 9320, 9330, 9370, 9370, 9402, 9402, 9404, 9450, 9462, 9468, 9468, 9468, 9472, 9492, 9492, 9492, 9528, 9528, 9538, 9580, 9624, 9624, 9624, 9698, 9698, 9724, 9724, 9726, 9738, 9738, 9746, 9746, 9746, 9746, 9856, 9860, 9860, 9934, 9994, 10030, 10032, 10032, 10072, 10072, 10074, 10126, 10126, 10162, 10230, 10230, 10230, 10230, 10318, 10318, 10318, 10318, 10332, 10414, 10482, 10482, 10508, 10522, 10522, 10532, 10550, 10590, 10650, 10704, 10712, 10700, 10758, 10798, 10818, 10844, 10876, 10918, 10918, 10918, 10930, 10940, 11004, 11050, 11062, 11062, 11120, 11200, 11230, 11244, 11258, 11278, 11278, 11338, 11368, 11420, 11432, 11432, 11432, 11492, 11576, 11584, 11600, 11652, 11652, 11656, 11720, 11764, 11764, 11782, 11788, 11896, 11946, 11946, 11964, 11976, 12002, 12078, 12122, 12124, 12134, 12184, 12202, 12246, 12268, 12328, 12416, 12418, 12418, 12444, 12520, 12580, 12600, 12608, 12632, 12700, 12742, 12806, 12806, 12818, 12900, 12918, 12938, 12994, 13102, 13142, 13156, 13172, 13250, 13296, 13368, 13382, 13406, 13460, 13478, 13612, 13626, 13670, 13684, 13796, 13802, 13914, 13980, 14044, 14074, 14082, 14280, 14336, 14336, 14354, 14384, 14498, 14550, 14626, 14700, 14782, 14782, 14892, 14970, 15020, 15122, 15160, 15226, 15288, 15454, 15480, 15528, 15552, 15636, 15798, 15900, 15958, 16026, 16084, 16224, 16374, 16416, 16446, 16584, 16662, 16970, 16970, 16970, 17052, 17112, 17260, 17382, 17446, 17594, 17654, 17808, 17888, 18072, 18270, 18314, 18366, 18520, 18646, 18730, 18846, 18990, 19208, 19282, 19472, 19630, 19764, 19956, 19984, 20092, 20176, 20446, 20552, 20636, 20830, 21078, 21190, 21318, 21412, 21696, 21866, 22066, 22206, 22340, 22596, 22770, 22794, 22988, 23156, 23554, 23714, 23868, 23994, 24158, 24334, 24736, 24936, 25634, 25634, 25798, 25798, 25986, 26274, 26418, 26738, 26958, 27170, 27426, 27756, 27976, 28344, 28462, 28864, 29072, 29488, 29612, 29892, 30168, 30398, 30730, 31198, 31366, 31918, 31918, 32378, 32684, 33132, 33346, 33626, 34128, 34414, 34872, 35220, 35588, 35996, 36258, 36698, 37050, 37438, 37740, 38242, 38376, 38858, 39440, 39860, 40248, 40652, 41182, 41592, 41900, 42410, 42976, 43240, 43850, 44206, 44754, 45150, 45774, 46258, 46632, 47176, 47508, 48112, 48720, 49120, 49700, 50398, 50962, 51406, 52132, 52604, 53130, 53642, 54246, 55070, 55482, 56142, 56756, 57492, 58524, 59272, 59346, 60098, 60636, 61880, 61992, 62742, 63682, 64182, 64778, 65772, 66472, 67500, 67858, 68844, 69564, 70514, 71156, 72084, 72532, 73574, 74440, 75412, 76190, 77034, 78006, 78604, 79608, 80622, 81384, 82406, 83514, 84066, 85466, 86416, 87118, 88342, 89202, 90120, 91184, 92136, 93362, 94524, 95292, 96368, 97778, 98716, 100120, 101168, 102112, 103242, 104110, 105184, 106754, 108020, 109550, 111946, 111946, 112474, 114350, 115364, 116890, 117984, 119004, 120512, 122084, 123132, 124306, 125602, 126748, 127454, 128208, 128878, 129274, 129736, 129954, 130378, 130562, 130562, 130572, 130582, 130582, 130586, 130596, 130604, 130604, 130636, 130636, 130636, 130636, 130636, 130642, 130642, 130642, 130642, 130642, 130644, 130676, 130676, 130684, 130684, 130686, 130686, 130710, 130718, 130718, 130718, 130730, 130736, 130736, 130736, 130746, 130746, 130746, 130746, 130752, 130752, 130752, 130752, 130752, 130752, 130732, 130732, 130732, 130732, 130732, 130656, 130652, 130652, 130652, 130674, 130682, 130690, 130760, 130760, 130760, 130726, 130680, 130680, 130680, 130602, 130592, 130590, 130580, 130576, 130576, 130568, 130568, 130568, 130568, 130568, 130568, 130542, 130530, 130524, 130524, 130524, 130548, 130548, 130548, 130548, 130532, 130528, 130528, 130528, 130558, 130558, 130558, 130560, 130560, 130560, 130560, 130582, 130582, 130582, 130582, 130572, 130572, 130572, 130572, 130572, 130566, 130566, 130566, 130566, 130566, 130594, 130594, 130594, 130594, 130582, 130536, 130536, 130536, 130564, 130564, 130592, 130592, 130592, 130592, 130592, 130592, 130584, 130584, 130580, 130574, 130574, 130574, 130570, 130568, 130568, 130564, 130542, 130542, 130558, 130570, 130570, 130576, 130598, 130598, 130598, 130598, 130598, 130590, 130580, 130570, 130550, 130550, 130550, 130592, 130592, 130592, 130592, 130592, 130586, 130576, 130556, 130556, 130556, 130556, 130564, 130566, 130566, 130566, 130578, 130578, 130578, 130578, 130582, 130586, 130586, 130588, 130588, 130596, 130598, 130598, 130602, 130606, 130606, 130606, 130604, 130604, 130592, 130578, 130578, 130578, 130578, 130598, 130602, 130592, 130592, 130592, 130592, 130592, 130592, 130626, 130626, 130626, 130602, 130602, 130602, 130602, 130622, 130622, 130622, 130622, 130622, 130622, 130622, 130622, 130622, 130606, 130606, 130606, 130606, 130606, 130606, 130606, 130606, 130606, 130606, 130606, 130606, 130622, 130622, 130622, 130622, 130622, 130616, 130616, 130616, 130616, 130616, 130616, 130616, 130616, 130616, 130614, 130614, 130614, 130596, 130596, 130596, 130596, 130596, 13148, 12876, 12740, 12740, 12728, 12722, 12714, 12684, 12634, 12632, 12552, 12538, 12516, 12506, 12448, 12448, 12448, 12416, 12404, 12338, 12324, 12324, 12324, 12324, 12288, 12246, 12232, 12204, 12194, 12194, 12194, 12194, 12168, 12154, 12124, 12124, 12036, 12034, 12034, 12040, 12040, 12040, 12024, 12024, 12008, 11992, 11970, 11970, 11970, 11914, 11908, 11908, 11908, 11880, 11880, 11880, 11880, 11884, 11884, 11884, 11884, 11884, 11850, 11810, 11810, 11778, 11778, 11766, 11766, 11766, 11766, 11784, 11772, 11736, 11736, 11736, 11712, 11712, 11712, 11712, 11712, 11706, 11706, 11706, 11706, 11706, 11706, 11706, 11706, 11706, 11706, 11704, 11704, 11704, 11726, 11762, 11768, 11768, 11770, 11770, 11770, 11788, 11826, 11826, 11826, 11826, 11830, 11834, 11836, 11888, 11888, 11888, 11898, 11898, 11962, 11994, 11962, 11946, 11938, 11916, 11916, 11916, 11918, 12016, 12016, 12016, 12028, 12028, 12040, 12040, 12054, 12054, 12056, 12090, 12090, 12098, 12098, 12098, 12098, 12152, 12152, 12152, 12158, 12158, 12158, 12186, 12188, 12188, 12188, 12312, 12334, 12390, 12390, 12390, 12390, 12390, 12390, 12390, 12436, 12436, 12474, 12474, 12474, 12474, 12506, 12538, 12538, 12564, 12610, 12610, 12610, 12628, 12636, 12636, 12636, 12636, 12674, 12730, 12730, 12730, 12776, 12802, 12840, 12840, 12840, 12840, 12908, 12908, 12908, 12948, 12948, 12948, 12948, 12948, 12948, 12948, 12948, 12948, 12978, 12992, 13040, 13040, 13058, 13094, 13100, 13100, 13100, 13128, 13140, 13192, 13276, 13284, 13268, 13244, 13244, 13282, 13306, 13318, 13324, 13348, 13348, 13348, 13348, 13404, 13404, 13404, 13404, 13404, 13424, 13430, 13430, 13432, 13432, 13432, 13432, 13512, 13512, 13512, 13512, 13518, 13616, 13616, 13616, 13616, 13664, 13676, 13676, 13676, 13676, 13678, 13710, 13710, 13710, 13766, 13770, 13802, 13806, 13810, 13866, 13870, 13878, 13884, 13890, 13884, 13884, 13884, 13884, 13892, 13892, 13892, 13946, 13998, 13998, 13994, 13994, 13994, 13992, 13992, 13992, 14028, 14040, 14056, 14072, 14072, 14150, 14150, 14150, 14150, 14150, 14150, 14156, 14246, 14246, 14286, 14286, 14286, 14286, 14286, 14344, 14344, 14280, 14280, 14306, 14312, 14356, 14396, 14404, 14404, 14428, 14428, 14438, 14438, 14438, 14438, 14438, 14476, 14476, 14476, 14510, 14510, 14510, 14610, 14656, 14656, 14656, 14652, 14652, 14652, 14722, 14722, 14734, 14756, 14770, 14770, 14770, 14770, 14782, 14782, 14782, 14782, 14870, 14870, 14870, 14936, 14936, 14964, 14966, 14966, 14966, 14974, 14974, 14974, 14976, 14978, 15038, 15042, 15042, 15042, 15120, 15140, 15212, 15212, 15212, 15218, 15218, 15218, 15232, 15232, 15268, 15276, 15276, 15340, 15374, 15382, 15430, 15430, 15438, 15466, 15520, 15524, 15524, 15524, 15600, 15640, 15740, 15740, 15740, 15764, 15790, 15790, 15826, 15964, 15964, 15964, 16014, 16048, 16094, 16104, 16156, 16156, 16220, 16220, 16302, 16358, 16374, 16394, 16444, 16494, 16494, 16494, 16698, 16772, 16778, 16778, 16778, 16874, 16894, 16900, 16952, 17020, 17102, 17156, 17220, 17230, 17230, 17230, 17372, 17372, 17498, 17498, 17568, 17618, 17642, 17642, 17804, 17824, 17842, 17900, 17900, 18050, 18050, 18080, 18080, 18220, 18254, 18346, 18374, 18482, 18502, 18580, 18582, 18704, 18718, 18718, 18756, 18838, 18892, 18910, 18998, 19002, 19038, 19174, 19338, 19338, 19338, 19430, 19454, 19604, 19618, 19630, 19760, 19814, 19826, 19958, 19980, 20012, 20182, 20182, 20204, 20204, 20274, 20388, 20458, 20562, 20756, 20756, 20772, 20880, 20946, 21052, 21052, 21118, 21118, 21282, 21376, 21498, 21560, 21646, 21772, 21782, 21830, 21852, 22022, 22114, 22286, 22306, 22386, 22494, 22564, 22616, 22768, 22836, 23044, 23058, 23190, 23286, 23322, 23402, 23456, 23620, 23832, 23962, 23976, 24170, 24230, 24362, 24492, 24588, 24810, 24950, 25050, 25124, 25186, 25450, 25572, 25738, 25782, 25842, 26044, 26364, 26400, 26526, 26582, 26606, 26994, 27060, 27298, 27486, 27718, 27768, 27910, 28100, 28142, 28452, 28612, 28782, 29194, 29208, 29428, 29530, 29842, 29934, 30254, 30528, 30640, 30944, 31128, 31312, 31366, 31784, 31906, 32244, 32626, 32946, 33180, 33446, 33576, 33696, 34232, 34326, 34546, 34898, 35074, 35396, 35626, 36144, 36258, 36664, 36844, 37378, 37466, 37772, 38054, 38416, 38778, 39112, 39388, 39738, 39972, 40344, 40622, 41088, 41418, 41968, 42110, 42532, 42836, 43304, 43752, 44184, 44510, 44936, 45600, 45800, 46190, 46742, 47080, 47692, 48128, 49202, 49372, 49372, 49976, 50354, 51252, 51518, 52028, 52478, 52870, 53526, 54158, 54808, 55362, 55848, 56312, 56918, 57752, 58118, 58722, 59642, 59892, 60610, 61224, 62526, 62598, 63366, 63764, 64776, 65234, 66056, 66788, 67662, 68436, 69072, 69632, 70702, 71420, 72176, 72832, 73798, 74664, 75516, 76250, 77330, 77824, 79092, 79892, 80684, 81582, 82320, 83172, 84270, 85398, 86304, 87230, 88346, 89024, 90368, 91360, 92134, 93334, 94240, 95264, 96504, 97450, 98772, 99450, 101032, 102082, 103194, 104282, 105826, 106344, 108302, 109358, 110248, 111264, 112922, 114214, 115656, 116894, 118028, 119440, 121048, 122752, 123792, 125044, 126152, 127218, 128032, 128670, 129186, 129630, 129982, 130366, 130580, 130586, 130586, 130586, 130606, 130606, 130608, 130608, 130622, 130634, 130650, 130650, 130650, 130650, 130650, 130650, 130666, 130666, 130666, 130698, 130724, 130724, 130724, 130756, 130756, 130756, 130758, 130764, 130764, 130764, 130790, 130790, 130790, 130790, 130798, 130808, 130810, 130810, 130808, 130780, 130770, 130770, 130754, 130704, 130686, 130686, 130700, 130700, 130700, 130750, 130768, 130772, 130754, 130750, 130748, 130692, 130624, 130624, 130602, 130596, 130596, 130592, 130592, 130592, 130562, 130556, 130540, 130524, 130524, 130524, 130540, 130556, 130580, 130580, 130580, 130570, 130570, 130558, 130558, 130550, 130550, 130534, 130534, 130534, 130534, 130556, 130556, 130574, 130574, 130574, 130574, 130574, 130592, 130592, 130592, 130554, 130554, 130554, 130544, 130544, 130544, 130544, 130544, 130544, 130576, 130576, 130576, 130570, 130570, 130540, 130540, 130560, 130576, 130576, 130576, 130576, 130576, 130576, 130566, 130566, 130566, 130566, 130566, 130566, 130582, 130582, 130580, 130572, 130572, 130572, 130572, 130588, 130588, 130594, 130594, 130594, 130594, 130594, 130594, 130594, 130594, 130594, 130594, 130594, 130594, 130594, 130594, 130594, 130594, 130594, 130594, 130600, 130600, 130600, 130600, 130600, 130600, 130600, 130600, 130600, 130600, 130600, 130600, 130600, 130600, 130600, 130600, 130600, 130600, 130592, 130592, 130592, 130586, 130586, 130586, 130596, 130596, 130596, 130596, 130590, 130590, 130590, 130590, 130590, 130582, 130582, 130582, 130582, 130582, 130582, 130582, 130600, 130600, 130632, 130632, 130632, 130566, 130566, 130610, 130614, 130614, 130614, 130614, 130614, 130614, 130614, 130614, 130610, 130610, 130606, 130606, 130606, 130606, 130606, 130582, 130582, 130582, 130582, 130594, 130612, 130612, 130590, 130590, 130590, 130590, 130638, 130640, 130640, 130608, 130592, 130592, 130618, 130634, 130638, 130638, 130638, 130638, 130638, 130622, 130614, 130610, 130588, 130588, 130588, 130588, 130610, 130614, 130614, 130616, 130646, 130656, 130656, 130656, 130656, 130646, 130636, 130632, 130624, 130624, 130600, 130600, 130600, 130600, 130600, 130624, 130644, 130644, 130644, 130644, 130626, 130626, 130626, 130626, 130626, 130616, 130616, 130616, 130616, 130640, 130640, 130640, 130640, 130640, 130640, 130664, 130664, 130652, 130652, 130652, 130652, 130646, 130646, 130646, 130646, 130646, 130646, 130630, 130630, 130630, 130630, 130630, 130654, 130654, 130654, 130654, 130654, 130668, 130674, 130674] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Spectrum"] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Spectrum", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (Spectrometer)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1024, 24] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["296.5", "297.055", "297.61", "298.164", "298.719", "299.273", "299.827", "300.382", "300.936", "301.489", "302.043", "302.597", "303.15", "303.703", "304.256", "304.809", "305.362", "305.915", "306.467", "307.02", "307.572", "308.124", "308.676", "309.228", "309.78", "310.332", "310.883", "311.435", "311.986", "312.537", "313.088", "313.639", "314.189", "314.74", "315.29", "315.841", "316.391", "316.941", "317.491", "318.04", "318.59", "319.139", "319.689", "320.238", "320.787", "321.336", "321.885", "322.433", "322.982", "323.53", "324.079", "324.627", "325.175", "325.723", "326.271", "326.818", "327.366", "327.913", "328.46", "329.007", "329.554", "330.101", "330.648", "331.195", "331.741", "332.287", "332.834", "333.38", "333.926", "334.472", "335.017", "335.563", "336.108", "336.654", "337.199", "337.744", "338.289", "338.834", "339.378", "339.923", "340.467", "341.012", "341.556", "342.1", "342.644", "343.188", "343.731", "344.275", "344.818", "345.362", "345.905", "346.448", "346.991", "347.534", "348.076", "348.619", "349.161", "349.704", "350.246", "350.788", "351.33", "351.872", "352.414", "352.955", "353.497", "354.038", "354.579", "355.12", "355.661", "356.202", "356.743", "357.284", "357.824", "358.364", "358.905", "359.445", "359.985", "360.525", "361.065", "361.604", "362.144", "362.683", "363.223", "363.762", "364.301", "364.84", "365.379", "365.917", "366.456", "366.995", "367.533", "368.071", "368.609", "369.147", "369.685", "370.223", "370.761", "371.298", "371.836", "372.373", "372.91", "373.447", "373.984", "374.521", "375.058", "375.595", "376.131", "376.668", "377.204", "377.74", "378.276", "378.812", "379.348", "379.884", "380.419", "380.955", "381.49", "382.026", "382.561", "383.096", "383.631", "384.166", "384.7", "385.235", "385.77", "386.304", "386.838", "387.372", "387.907", "388.441", "388.974", "389.508", "390.042", "390.575", "391.109", "391.642", "392.175", "392.708", "393.241", "393.774", "394.307", "394.84", "395.372", "395.905", "396.437", "396.969", "397.501", "398.033", "398.565", "399.097", "399.629", "400.16", "400.692", "401.223", "401.755", "402.286", "402.817", "403.348", "403.879", "404.409", "404.94", "405.471", "406.001", "406.531", "407.062", "407.592", "408.122", "408.652", "409.181", "409.711", "410.241", "410.77", "411.3", "411.829", "412.358", "412.887", "413.416", "413.945", "414.474", "415.003", "415.531", "416.06", "416.588", "417.117", "417.645", "418.173", "418.701", "419.229", "419.757", "420.284", "420.812", "421.34", "421.867", "422.394", "422.921", "423.449", "423.976", "424.503", "425.029", "425.556", "426.083", "426.609", "427.136", "427.662", "428.188", "428.714", "429.24", "429.766", "430.292", "430.818", "431.344", "431.869", "432.395", "432.92", "433.445", "433.971", "434.496", "435.021", "435.546", "436.071", "436.595", "437.12", "437.644", "438.169", "438.693", "439.218", "439.742", "440.266", "440.79", "441.314", "441.837", "442.361", "442.885", "443.408", "443.932", "444.455", "444.978", "445.502", "446.025", "446.548", "447.071", "447.593", "448.116", "448.639", "449.161", "449.684", "450.206", "450.728", "451.251", "451.773", "452.295", "452.817", "453.338", "453.86", "454.382", "454.903", "455.425", "455.946", "456.468", "456.989", "457.51", "458.031", "458.552", "459.073", "459.594", "460.114", "460.635", "461.156", "461.676", "462.196", "462.717", "463.237", "463.757", "464.277", "464.797", "465.317", "465.837", "466.356", "466.876", "467.396", "467.915", "468.434", "468.954", "469.473", "469.992", "470.511", "471.03", "471.549", "472.068", "472.586", "473.105", "473.624", "474.142", "474.661", "475.179", "475.697", "476.215", "476.733", "477.251", "477.769", "478.287", "478.805", "479.323", "479.84", "480.358", "480.875", "481.393", "481.91", "482.427", "482.944", "483.461", "483.978", "484.495", "485.012", "485.529", "486.045", "486.562", "487.079", "487.595", "488.111", "488.628", "489.144", "489.66", "490.176", "490.692", "491.208", "491.724", "492.24", "492.755", "493.271", "493.787", "494.302", "494.817", "495.333", "495.848", "496.363", "496.878", "497.393", "497.908", "498.423", "498.938", "499.453", "499.968", "500.482", "500.997", "501.511", "502.026", "502.54", "503.054", "503.568", "504.083", "504.597", "505.111", "505.625", "506.138", "506.652", "507.166", "507.679", "508.193", "508.707", "509.22", "509.733", "510.247", "510.76", "511.273", "511.786", "512.299", "512.812", "513.325", "513.838", "514.351", "514.863", "515.376", "515.889", "516.401", "516.913", "517.426", "517.938", "518.45", "518.963", "519.475", "519.987", "520.499", "521.011", "521.522", "522.034", "522.546", "523.058", "523.569", "524.081", "524.592", "525.104", "525.615", "526.126", "526.637", "527.149", "527.66", "528.171", "528.682", "529.193", "529.704", "530.214", "530.725", "531.236", "531.746", "532.257", "532.767", "533.278", "533.788", "534.298", "534.809", "535.319", "535.829", "536.339", "536.849", "537.359", "537.869", "538.379", "538.889", "539.398", "539.908", "540.418", "540.927", "541.437", "541.946", "542.456", "542.965", "543.474", "543.983", "544.493", "545.002", "545.511", "546.02", "546.529", "547.038", "547.546", "548.055", "548.564", "549.073", "549.581", "550.09", "550.598", "551.107", "551.615", "552.123", "552.632", "553.14", "553.648", "554.156", "554.664", "555.172", "555.68", "556.188", "556.696", "557.204", "557.712", "558.22", "558.727", "559.235", "559.742", "560.25", "560.757", "561.265", "561.772", "562.28", "562.787", "563.294", "563.801", "564.308", "564.815", "565.323", "565.83", "566.336", "566.843", "567.35", "567.857", "568.364", "568.87", "569.377", "569.884", "570.39", "570.897", "571.403", "571.91", "572.416", "572.922", "573.429", "573.935", "574.441", "574.947", "575.453", "575.959", "576.465", "576.971", "577.477", "577.983", "578.489", "578.995", "579.501", "580.006", "580.512", "581.018", "581.523", "582.029", "582.534", "583.04", "583.545", "584.05", "584.556", "585.061", "585.566", "586.071", "586.577", "587.082", "587.587", "588.092", "588.597", "589.102", "589.607", "590.112", "590.616", "591.121", "591.626", "592.131", "592.635", "593.14", "593.645", "594.149", "594.654", "595.158", "595.663", "596.167", "596.672", "597.176", "597.68", "598.185", "598.689", "599.193", "599.697", "600.201", "600.705", "601.209", "601.713", "602.217", "602.721", "603.225", "603.729", "604.233", "604.737", "605.241", "605.744", "606.248", "606.752", "607.255", "607.759", "608.263", "608.766", "609.27", "609.773", "610.277", "610.78", "611.283", "611.787", "612.29", "612.793", "613.297", "613.8", "614.303", "614.806", "615.309", "615.812", "616.316", "616.819", "617.322", "617.825", "618.328", "618.83", "619.333", "619.836", "620.339", "620.842", "621.345", "621.847", "622.35", "622.853", "623.355", "623.858", "624.361", "624.863", "625.366", "625.868", "626.371", "626.873", "627.376", "627.878", "628.381", "628.883", "629.385", "629.888", "630.39", "630.892", "631.395", "631.897", "632.399", "632.901", "633.403", "633.905", "634.408", "634.91", "635.412", "635.914", "636.416", "636.918", "637.42", "637.922", "638.424", "638.925", "639.427", "639.929", "640.431", "640.933", "641.435", "641.936", "642.438", "642.94", "643.442", "643.943", "644.445", "644.947", "645.448", "645.95", "646.451", "646.953", "647.455", "647.956", "648.458", "648.959", "649.461", "649.962", "650.464", "650.965", "651.466", "651.968", "652.469", "652.97", "653.472", "653.973", "654.474", "654.976", "655.477", "655.978", "656.48", "656.981", "657.482", "657.983", "658.484", "658.985", "659.487", "659.988", "660.489", "660.99", "661.491", "661.992", "662.493", "662.994", "663.495", "663.996", "664.497", "664.998", "665.499", "666", "666.501", "667.002", "667.503", "668.004", "668.505", "669.006", "669.507", "670.008", "670.509", "671.009", "671.51", "672.011", "672.512", "673.013", "673.514", "674.014", "674.515", "675.016", "675.517", "676.018", "676.518", "677.019", "677.52", "678.02", "678.521", "679.022", "679.523", "680.023", "680.524", "681.025", "681.525", "682.026", "682.527", "683.027", "683.528", "684.029", "684.529", "685.03", "685.531", "686.031", "686.532", "687.032", "687.533", "688.034", "688.534", "689.035", "689.536", "690.036", "690.537", "691.037", "691.538", "692.038", "692.539", "693.04", "693.54", "694.041", "694.541", "695.042", "695.542", "696.043", "696.544", "697.044", "697.545", "698.045", "698.546", "699.046", "699.547", "700.047", "700.548", "701.049", "701.549", "702.05", "702.55", "703.051", "703.551", "704.052", "704.552", "705.053", "705.554", "706.054", "706.555", "707.055", "707.556", "708.056", "708.557", "709.058", "709.558", "710.059", "710.559", "711.06", "711.561", "712.061", "712.562", "713.062", "713.563", "714.064", "714.564", "715.065", "715.566", "716.066", "716.567", "717.068", "717.568", "718.069", "718.57", "719.07", "719.571", "720.072", "720.572", "721.073", "721.574", "722.074", "722.575", "723.076", "723.577", "724.077", "724.578", "725.079", "725.58", "726.081", "726.581", "727.082", "727.583", "728.084", "728.585", "729.086", "729.586", "730.087", "730.588", "731.089", "731.59", "732.091", "732.592", "733.093", "733.594", "734.095", "734.596", "735.097", "735.598", "736.099", "736.6", "737.101", "737.602", "738.103", "738.604", "739.105", "739.606", "740.107", "740.609", "741.11", "741.611", "742.112", "742.613", "743.114", "743.616", "744.117", "744.618", "745.119", "745.621", "746.122", "746.623", "747.125", "747.626", "748.128", "748.629", "749.13", "749.632", "750.133", "750.635", "751.136", "751.638", "752.139", "752.641", "753.142", "753.644", "754.145", "754.647", "755.149", "755.65", "756.152", "756.654", "757.155", "757.657", "758.159", "758.661", "759.163", "759.664", "760.166", "760.668", "761.17", "761.672", "762.174", "762.676", "763.178", "763.68", "764.182", "764.684", "765.186", "765.688", "766.19", "766.692", "767.194", "767.697", "768.199", "768.701", "769.203", "769.706", "770.208", "770.71", "771.213", "771.715", "772.217", "772.72", "773.222", "773.725", "774.227", "774.73", "775.232", "775.735", "776.238", "776.74", "777.243", "777.746", "778.248", "778.751", "779.254", "779.757", "780.26", "780.763", "781.266", "781.768", "782.271", "782.774", "783.277", "783.781", "784.284", "784.787", "785.29", "785.793", "786.296", "786.799", "787.303", "787.806", "788.309", "788.813", "789.316", "789.82", "790.323", "790.827", "791.33", "791.834", "792.337", "792.841", "793.345", "793.848", "794.352", "794.856", "795.359", "795.863", "796.367", "796.871", "797.375", "797.879", "798.383", "798.887", "799.391", "799.895", "800.399", "800.904", "801.408", "801.912", "802.416", "802.921", "803.425", "803.929", "804.434", "804.938", "805.443", "805.947", "806.452", "806.957", "807.461", "807.966", "808.471", "808.975", "809.48", "809.985", "810.49", "810.995", "811.5", "812.005", "812.51", "813.015", "813.52", "814.026", "814.531", "815.036", "815.541", "816.047", "816.552", "817.057", "817.563", "818.068", "818.574", "819.08", "819.585", "820.091", "820.597", "821.102", "821.608", "822.114", "822.62", "823.126"] }, { "type": "character", "attributes": {}, "value": ["0.029", "20.027", "40.025", "60.026", "80.025", "100.023", "120.022", "140.022", "160.02", "180.019", "200.02", "220.018", "240.017", "260.016", "280.015", "300.014", "320.014", "340.014", "360.012", "380.012", "400.01", "420.009", "440.008", "460.007"] } ] } }, "value": [555, 555, 555, 554, 554, 554, 554, 555, 555, 557, 559, 560, 560, 560, 560, 560, 561, 561, 561, 561, 561, 565, 565, 564, 564, 564, 562, 562, 564, 567, 567, 567, 567, 567, 567, 567, 564, 564, 563, 563, 563, 566, 566, 566, 566, 566, 565, 564, 564, 564, 564, 563, 563, 563, 563, 565, 565, 565, 565, 565, 565, 564, 564, 564, 565, 566, 568, 568, 568, 568, 564, 564, 566, 567, 567, 567, 566, 566, 566, 565, 565, 566, 567, 568, 568, 568, 568, 567, 567, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 565, 565, 564, 564, 564, 564, 564, 564, 566, 566, 566, 567, 567, 567, 567, 566, 564, 564, 563, 563, 563, 565, 565, 565, 565, 566, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 565, 565, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 569, 569, 568, 566, 566, 566, 566, 566, 566, 569, 569, 569, 569, 569, 569, 569, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 562, 562, 562, 562, 564, 564, 564, 568, 568, 568, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 564, 564, 563, 563, 563, 564, 565, 565, 565, 564, 564, 564, 565, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 568, 568, 571, 571, 571, 567, 567, 567, 567, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 563, 563, 563, 563, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 570, 570, 570, 569, 569, 568, 565, 563, 563, 563, 563, 565, 566, 566, 566, 565, 563, 563, 563, 565, 565, 565, 565, 564, 564, 566, 566, 566, 568, 568, 568, 572, 572, 572, 568, 568, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 565, 565, 565, 564, 564, 564, 564, 564, 563, 563, 563, 563, 563, 562, 562, 562, 562, 563, 563, 564, 568, 568, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 562, 562, 562, 567, 567, 567, 567, 565, 565, 565, 566, 566, 566, 566, 566, 566, 568, 568, 568, 568, 566, 565, 565, 565, 565, 567, 567, 567, 566, 566, 566, 569, 569, 569, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 568, 568, 568, 564, 563, 563, 564, 566, 567, 567, 567, 565, 565, 565, 565, 565, 565, 565, 565, 565, 563, 563, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 563, 563, 563, 563, 563, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 569, 569, 569, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 565, 564, 564, 564, 566, 566, 566, 566, 562, 562, 562, 565, 565, 567, 570, 570, 569, 566, 564, 564, 564, 566, 569, 569, 567, 567, 564, 564, 564, 567, 568, 568, 568, 568, 568, 568, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 563, 563, 563, 565, 567, 567, 567, 567, 566, 566, 566, 564, 564, 564, 566, 568, 568, 568, 568, 567, 565, 565, 567, 569, 569, 569, 569, 569, 569, 569, 569, 569, 565, 564, 564, 567, 569, 569, 569, 569, 569, 569, 569, 569, 566, 566, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 566, 566, 567, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 563, 563, 564, 566, 566, 566, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 560, 560, 563, 564, 564, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 564, 564, 564, 567, 567, 567, 562, 562, 562, 563, 563, 563, 565, 565, 565, 564, 564, 564, 565, 565, 565, 562, 562, 562, 566, 566, 568, 568, 568, 568, 568, 568, 567, 567, 566, 566, 564, 564, 564, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 564, 564, 562, 562, 562, 564, 566, 566, 566, 562, 562, 562, 562, 567, 567, 567, 567, 567, 566, 565, 565, 565, 565, 566, 566, 566, 566, 568, 568, 568, 568, 568, 566, 566, 566, 566, 566, 566, 564, 564, 564, 563, 563, 568, 568, 568, 565, 565, 565, 564, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 564, 564, 564, 565, 568, 568, 568, 567, 567, 565, 564, 564, 564, 564, 565, 568, 568, 568, 568, 568, 568, 568, 568, 567, 566, 566, 565, 565, 565, 565, 565, 565, 567, 567, 567, 565, 565, 565, 565, 569, 569, 569, 569, 565, 564, 564, 565, 565, 565, 565, 566, 566, 565, 565, 565, 568, 568, 568, 567, 567, 567, 567, 568, 568, 568, 565, 565, 567, 567, 567, 567, 567, 564, 564, 564, 564, 567, 567, 567, 566, 563, 563, 563, 565, 565, 565, 569, 569, 569, 569, 567, 567, 567, 567, 567, 568, 569, 569, 569, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 562, 562, 562, 563, 566, 566, 566, 567, 571, 571, 571, 568, 565, 565, 565, 566, 566, 566, 567, 567, 567, 567, 565, 565, 565, 563, 563, 563, 563, 565, 567, 567, 561, 561, 562, 565, 565, 565, 565, 565, 565, 564, 562, 562, 562, 565, 565, 565, 565, 564, 563, 563, 563, 563, 563, 563, 563, 563, 563, 564, 564, 564, 566, 566, 566, 566, 566, 566, 565, 565, 565, 556, 556, 556, 555, 555, 555, 555, 558, 562, 562.5, 562.5, 563, 563, 563, 563, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 565, 565, 565, 565, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 567, 567, 567, 566, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 566, 566, 566, 566, 566, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 564, 564, 564, 564, 564, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 564, 564, 564, 566, 567, 567, 567, 561, 560, 555, 555, 555, 555, 557, 557, 560, 560, 560, 560, 560, 560, 560, 561, 561, 562, 563, 564, 564, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 568, 568, 568, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 565, 565, 565, 566, 566, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 571, 571, 571, 571, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 567, 567, 567, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 569, 569, 569, 569, 569, 569, 569, 569, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 569, 569, 569, 569, 568, 568, 568, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 569, 569, 570, 570, 569, 569, 566, 565, 563, 568, 568, 564, 557, 556, 556, 556, 557, 562, 562, 562, 562, 562, 562, 564, 564, 564, 565, 566, 566, 568, 568, 569, 570, 570, 570, 570, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 573, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 577, 577, 577, 577, 576, 576, 576, 578, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 587, 587, 587, 588, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 584, 584, 584, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 580, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 571, 571, 571, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 574, 575, 575, 575, 576, 576, 576, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 577, 577, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 571, 572, 572, 572, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 573, 573, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 576, 603, 603, 603, 603, 573, 573, 571, 571, 569, 569, 569, 567, 567, 567, 568, 570, 571, 574, 575, 576, 578, 578, 578, 578, 574, 574, 574, 574, 577, 577, 577, 575, 575, 575, 575, 577, 577, 577, 577, 577, 576, 576, 576, 577, 577, 578, 580, 580, 577, 577, 577, 577, 577, 577, 577, 577, 580, 580, 580, 580, 580, 580, 580, 579, 577, 577, 577, 580, 580, 580, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 586, 586, 583, 583, 587, 587, 587, 587, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 590, 591, 592, 592, 590, 590, 590, 590, 590, 592, 592, 592, 592, 596, 596, 597, 597, 597, 597, 592, 592, 600, 602, 604, 604, 604, 604, 604, 605, 608, 610, 611, 611, 612, 612, 613, 613, 613, 613, 614, 615, 615, 615, 615, 615, 615, 616, 617, 618, 618, 618, 618, 619, 619, 620, 620, 622, 622, 623, 623, 624, 624, 626, 627, 628, 628, 629, 629, 629, 631, 631, 631, 632, 632, 632, 633, 633, 634, 634, 634, 634, 634, 634, 636, 637, 637, 637, 637, 637, 637, 637, 638, 638, 640, 640, 641, 641, 642, 642, 643, 644, 644, 644, 645, 647, 647, 647, 648, 648, 648, 649, 650, 650, 650, 650, 650, 650, 650, 651, 651, 652, 652, 653, 653, 653, 653, 653, 654, 654, 654, 654, 653, 653, 653, 653, 653, 653, 653, 653, 652, 652, 652, 651, 651, 651, 651, 651, 651, 650, 649, 649, 649, 649, 649, 650, 650, 650, 650, 650, 649, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 646, 646, 646, 646, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 644, 644, 644, 644, 644, 644, 642, 642, 640, 640, 640, 640, 638, 637, 637, 637, 637, 637, 637, 637, 636, 636, 636, 636, 636, 635, 635, 635, 633, 633, 632, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 632, 633, 633, 633, 633, 633, 632, 632, 632, 632, 633, 633, 633, 632, 632, 632, 631, 631, 630, 630, 630, 630, 630, 631, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 634, 634, 635, 635, 635, 635, 634, 634, 634, 634, 634, 637, 637, 637, 637, 639, 639, 639, 641, 641, 641, 641, 641, 642, 642, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 645, 645, 645, 645, 645, 645, 645, 646, 646, 646, 646, 648, 650, 650, 650, 648, 648, 648, 648, 648, 648, 649, 649, 649, 649, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 647, 647, 646, 646, 646, 646, 646, 646, 645, 645, 645, 646, 646, 646, 644, 644, 644, 643, 642, 640, 640, 640, 640, 639, 639, 639, 639, 639, 639, 638, 638, 638, 637, 637, 637, 637, 636, 636, 636, 636, 635, 635, 634, 634, 632, 631, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 626, 626, 626, 626, 625, 625, 625, 624, 624, 623, 623, 623, 623, 622, 620, 620, 620, 620, 619, 618, 618, 618, 617, 615, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 612, 612, 611, 611, 610, 609, 609, 609, 609, 609, 608, 604, 604, 604, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 598, 598, 598, 598, 598, 598, 599, 599, 598, 598, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 595, 595, 595, 596, 597, 599, 599, 599, 599, 599, 597, 594, 594, 594, 596, 596, 596, 596, 596, 596, 594, 594, 594, 594, 594, 594, 593, 593, 593, 592, 592, 592, 594, 594, 594, 594, 592, 592, 592, 594, 594, 595, 595, 596, 596, 596, 592, 592, 592, 592, 593, 594, 594, 594, 594, 591, 591, 591, 591, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 596, 599, 600, 600, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 599, 599, 601, 601, 600, 600, 600, 600, 601, 601, 601, 601, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 603, 603, 604, 604, 604, 604, 604, 604, 604, 605, 606, 608, 608, 608, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 608, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 599, 599, 598, 598, 598, 599, 600, 602, 602, 601, 599, 598, 598, 599, 599, 599, 599, 599, 598, 598, 596, 596, 596, 598, 598, 598, 597, 597, 596, 596, 596, 595, 595, 595, 595, 597, 597, 597, 597, 593, 592, 592, 592, 590, 590, 590, 590, 592, 592, 592, 592, 593, 593, 593, 591, 590, 589, 589, 589, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 589, 589, 587, 586, 586, 586, 586, 586, 588, 588, 588, 588, 588, 580, 580, 580, 581, 583, 583, 583, 583, 583, 583, 583, 583, 583, 590, 590, 590, 585, 585, 585, 582, 582, 582, 583, 583, 583, 583, 583, 586, 586, 586, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 582, 580, 580, 580, 580, 582, 582, 582, 582, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 581, 581, 582, 582, 582, 582, 582, 582, 583, 583, 583, 583, 583, 584, 584, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 587, 587, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 591, 591, 591, 591, 591, 592, 592, 593, 593, 593, 593, 593, 593, 594, 594, 594, 596, 596, 596, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 600, 600, 601, 601, 601, 601, 603, 603, 605, 606, 606, 606, 606, 607, 607, 608, 608, 610, 613, 613, 613, 613, 617, 617, 619, 620, 621, 621, 622, 623, 623, 623, 623, 624, 626, 627, 628, 628, 629, 629, 630, 630, 631, 631, 634, 634, 635, 635, 635, 635, 636, 637, 637, 639, 639, 644, 646, 646, 646, 648, 649, 649, 649, 650, 650, 650, 651, 652, 652, 653, 653, 654, 654, 655, 655, 659, 659, 659, 660, 661, 661, 661, 662, 663, 663, 663, 664, 664, 664, 665, 665, 667, 668, 668, 669, 670, 670, 672, 673, 673, 673, 674, 674, 675, 675, 676, 678, 679, 680, 680, 680, 680, 680, 680, 680, 680, 680, 681, 681, 681, 681, 681, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 679, 679, 679, 679, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 677, 677, 677, 677, 677, 677, 677, 677, 676, 676, 676, 676, 676, 675, 675, 674, 674, 673, 673, 673, 673, 673, 673, 671, 671, 671, 671, 670, 670, 670, 670, 670, 669, 669, 669, 669, 669, 669, 668, 668, 666, 666, 666, 666, 665, 665, 664, 664, 663, 663, 662, 662, 662, 662, 662, 661, 661, 661, 660, 659, 659, 659, 658, 658, 658, 658, 658, 657, 657, 656, 656, 656, 656, 656, 655, 655, 655, 655, 654, 654, 654, 654, 654, 655, 655, 655, 655, 655, 655, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 656, 656, 656, 656, 656, 657, 657, 657, 657, 657, 659, 659, 659, 659, 661, 661, 661, 662, 663, 663, 664, 665, 665, 665, 665, 666, 666, 666, 666, 666, 666, 666, 667, 667, 669, 670, 670, 670, 670, 670, 670, 670, 671, 674, 674, 674, 674, 674, 674, 674, 675, 675, 676, 676, 676, 678, 679, 679, 679, 679, 679, 679, 680, 680, 681, 681, 681, 681, 681, 681, 682, 682, 682, 683, 684, 685, 685, 685, 685, 685, 685, 687, 687, 688, 688, 688, 688, 688, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 686, 686, 686, 686, 686, 685, 685, 684, 682, 682, 682, 682, 682, 681, 681, 681, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 679, 678, 678, 678, 677, 675, 675, 675, 673, 673, 673, 672, 671, 670, 668, 668, 668, 667, 666, 666, 665, 664, 663, 662, 661, 660, 657, 657, 657, 657, 657, 657, 656, 655, 655, 653, 652, 651, 651, 651, 650, 648, 648, 647, 647, 646, 646, 646, 645, 645, 644, 644, 644, 644, 643, 643, 643, 642, 640, 640, 640, 640, 639, 638, 638, 636, 636, 636, 635, 634, 633, 631, 631, 631, 631, 630, 630, 630, 630, 629, 628, 628, 627, 627, 627, 627, 627, 626, 625, 624, 624, 624, 624, 623, 623, 623, 621, 621, 621, 621, 620, 620, 620, 618, 618, 617, 617, 616, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 616, 616, 615, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 611, 611, 611, 611, 611, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 610, 611, 611, 611, 611, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 613, 613, 614, 614, 614, 614, 614, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 617, 617, 617, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 614, 614, 614, 613, 613, 613, 613, 613, 613, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 613, 613, 613, 613, 613, 613, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 610, 610, 609, 609, 609, 609, 608, 608, 608, 608, 608, 607, 607, 606, 606, 606, 606, 606, 605, 605, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 600, 600, 600, 600, 600, 600, 600, 600, 600, 598, 598, 598, 598, 597, 597, 597, 597, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 595, 595, 595, 594, 594, 594, 594, 594, 592, 591, 591, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 573, 574, 575, 576, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 581, 581, 581, 582, 582, 582, 582, 582, 581, 581, 581, 581, 584, 584, 584, 584, 584, 584, 586, 586, 586, 586, 586, 585, 585, 585, 585, 586, 586, 586, 582, 582, 582, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 593, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 596, 596, 596, 596, 596, 596, 596, 597, 597, 597, 597, 597, 597, 598, 598, 598, 599, 600, 600, 600, 601, 604, 605, 605, 605, 606, 607, 607, 609, 609, 609, 610, 610, 610, 611, 613, 614, 614, 614, 614, 614, 615, 616, 617, 617, 620, 621, 621, 624, 625, 625, 625, 627, 627, 627, 627, 627, 627, 628, 628, 630, 630, 630, 630, 631, 631, 631, 631, 632, 632, 632, 633, 633, 634, 635, 638, 638, 639, 639, 639, 640, 640, 641, 642, 643, 643, 644, 644, 644, 645, 645, 645, 647, 647, 650, 651, 651, 651, 652, 652, 652, 652, 652, 653, 653, 653, 653, 653, 653, 653, 653, 654, 654, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 654, 654, 654, 654, 654, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 650, 650, 650, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 646, 646, 646, 646, 646, 646, 646, 646, 645, 645, 644, 644, 643, 643, 643, 642, 642, 642, 642, 642, 642, 642, 642, 641, 641, 641, 641, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 637, 637, 637, 637, 636, 636, 636, 637, 637, 637, 636, 636, 636, 635, 635, 635, 636, 636, 636, 635, 635, 635, 636, 636, 636, 635, 635, 635, 635, 635, 635, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 638, 638, 638, 640, 640, 640, 640, 641, 641, 641, 641, 641, 641, 641, 642, 642, 643, 643, 643, 644, 644, 644, 644, 645, 645, 646, 647, 648, 648, 648, 649, 650, 651, 651, 652, 652, 652, 654, 654, 655, 655, 655, 655, 656, 656, 656, 658, 658, 658, 659, 659, 659, 660, 660, 660, 660, 662, 662, 664, 664, 665, 665, 665, 666, 666, 666, 666, 667, 667, 667, 667, 669, 669, 669, 670, 670, 671, 672, 674, 674, 674, 675, 675, 675, 676, 676, 676, 676, 676, 676, 676, 676, 676, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 672, 672, 672, 672, 671, 671, 671, 670, 668, 668, 668, 668, 667, 665, 665, 665, 664, 664, 664, 663, 662, 662, 662, 662, 659, 659, 659, 658, 657, 657, 655, 655, 655, 654, 654, 654, 653, 652, 650, 650, 650, 650, 649, 648, 648, 647, 647, 646, 644, 644, 643, 642, 642, 641, 641, 641, 641, 640, 639, 638, 638, 635, 635, 635, 635, 634, 634, 634, 634, 633, 633, 632, 631, 628, 628, 628, 627, 627, 627, 626, 626, 626, 625, 625, 625, 621, 621, 621, 621, 621, 620, 620, 619, 619, 619, 619, 619, 619, 618, 618, 617, 617, 617, 615, 615, 615, 615, 614, 614, 614, 614, 613, 613, 613, 613, 613, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 610, 609, 609, 609, 609, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 605, 605, 605, 605, 605, 604, 603, 603, 603, 603, 602, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 597, 597, 597, 597, 597, 597, 597, 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 594, 594, 594, 593, 593, 593, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 592, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 585, 583, 583, 583, 583, 583, 581, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 581, 580, 580, 579, 579, 579, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 580, 579, 579, 580, 581, 581, 582, 582, 582, 580, 580, 581, 581, 581, 581, 579, 578, 578, 578, 577, 577, 577, 577, 577, 574, 574, 573, 572, 571, 571, 571, 576, 576, 576, 574, 574, 575, 579, 580, 580, 580, 580, 580, 583, 583, 583, 580, 580, 580, 581, 584, 584, 584, 584, 584, 583, 583, 583, 583, 579, 578, 578, 580, 583, 583, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 582, 582, 582, 585, 585, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 584, 583, 583, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 589, 589, 589, 590, 590, 591, 591, 593, 593, 593, 593, 593, 594, 594, 595, 595, 595, 597, 597, 598, 598, 598, 598, 598, 599, 599, 599, 599, 600, 601, 601, 602, 602, 602, 602, 603, 603, 605, 605, 608, 608, 610, 613, 613, 613, 613, 613, 613, 613, 613, 614, 614, 614, 614, 614, 614, 614, 615, 615, 615, 617, 617, 617, 617, 619, 619, 619, 620, 620, 620, 620, 620, 623, 623, 623, 623, 624, 625, 625, 625, 626, 626, 626, 626, 627, 627, 627, 629, 629, 629, 629, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 633, 633, 633, 634, 634, 635, 636, 636, 636, 636, 636, 636, 636, 636, 636, 635, 634, 634, 634, 633, 633, 633, 633, 633, 633, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 628, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 625, 625, 623, 622, 622, 622, 622, 622, 622, 622, 622, 621, 621, 621, 620, 620, 620, 620, 620, 620, 620, 620, 620, 619, 619, 618, 617, 617, 617, 617, 617, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 616, 616, 616, 616, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 617, 617, 617, 617, 617, 617, 617, 617, 619, 620, 620, 622, 622, 622, 622, 622, 622, 622, 623, 623, 623, 625, 626, 626, 627, 627, 627, 628, 629, 629, 629, 629, 630, 630, 631, 631, 631, 632, 632, 634, 634, 635, 637, 638, 638, 638, 638, 638, 639, 640, 640, 640, 640, 641, 642, 642, 642, 642, 642, 643, 643, 643, 644, 644, 644, 645, 645, 646, 646, 646, 646, 647, 647, 647, 648, 648, 648, 649, 649, 649, 649, 651, 651, 651, 651, 651, 653, 653, 653, 653, 653, 653, 653, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 654, 654, 654, 654, 654, 653, 653, 653, 652, 652, 652, 652, 651, 651, 651, 651, 651, 650, 650, 649, 649, 649, 649, 649, 649, 648, 647, 647, 647, 646, 646, 645, 645, 644, 643, 643, 641, 638, 638, 638, 636, 636, 636, 636, 636, 636, 636, 635, 635, 635, 635, 635, 635, 635, 634, 632, 632, 632, 632, 632, 632, 632, 631, 630, 629, 629, 627, 626, 626, 626, 625, 625, 625, 625, 625, 625, 624, 624, 623, 621, 621, 621, 620, 619, 619, 619, 619, 617, 617, 617, 616, 616, 614, 613, 611, 611, 611, 611, 611, 611, 610, 609, 609, 607, 606, 606, 605, 605, 605, 605, 605, 605, 604, 603, 603, 603, 603, 602, 602, 602, 602, 603, 603, 603, 603, 603, 603, 603, 602, 601, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 599, 599, 599, 599, 599, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 593, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 590, 590, 590, 590, 590, 590, 592, 592, 592, 592, 590, 590, 590, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 590, 590, 590, 589, 589, 589, 589, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 583, 583, 585, 585, 585, 585, 585, 585, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 582, 577, 577, 577, 582, 582, 582, 582, 582, 580, 580, 580, 580, 580, 582, 582, 582, 580, 579, 579, 580, 580, 580, 580, 581, 582, 582, 582, 580, 580, 580, 580, 580, 581, 581, 581, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 578, 578, 579, 580, 580, 578, 578, 578, 578, 578, 578, 578, 578, 578, 580, 580, 575, 575, 575, 575, 576, 576, 576, 580, 583, 583, 583, 579, 579, 577, 575, 575, 575, 579, 579, 579, 579, 574, 574, 574, 576, 578, 578, 578, 578, 578, 577, 577, 577, 577, 578, 578, 578, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 577, 578, 578, 578, 578, 570, 570, 573, 573, 573, 572, 572, 572, 574, 574, 574, 574, 572, 572, 572, 575, 578, 578, 578, 575, 575, 575, 575, 580, 580, 580, 580, 580, 580, 581, 585, 585, 585, 585, 585, 583, 582, 580, 580, 583, 586, 586, 586, 585, 585, 585, 585, 583, 583, 582, 582, 582, 586, 586, 586, 585, 584, 584, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 590, 590, 590, 586, 584, 584, 582, 582, 582, 588, 588, 588, 588, 588, 587, 587, 587, 587, 588, 588, 588, 586, 586, 584, 584, 584, 585, 585, 585, 585, 585, 585, 584, 583, 583, 583, 583, 587, 590, 590, 590, 584, 584, 584, 584, 584, 588, 588, 584, 584, 587, 588, 588, 588, 588, 588, 588, 588, 588, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 596, 596, 596, 598, 598, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 601, 602, 604, 604, 604, 605, 605, 605, 605, 606, 606, 607, 607, 607, 607, 607, 607, 607, 608, 608, 608, 609, 609, 610, 610, 612, 612, 613, 613, 613, 614, 615, 615, 615, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 618, 618, 618, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 613, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 611, 610, 610, 610, 610, 610, 610, 610, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 605, 605, 605, 604, 604, 604, 604, 603, 603, 603, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 600, 599, 599, 599, 599, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, 601, 601, 601, 601, 601, 601, 601, 602, 602, 603, 604, 604, 604, 605, 605, 605, 606, 606, 606, 606, 607, 607, 607, 610, 611, 611, 611, 611, 611, 612, 613, 613, 613, 613, 613, 613, 614, 614, 614, 615, 615, 616, 616, 616, 616, 616, 616, 617, 617, 618, 618, 618, 620, 620, 620, 620, 621, 622, 623, 623, 623, 623, 623, 624, 624, 625, 625, 626, 626, 628, 628, 628, 628, 628, 628, 629, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 632, 632, 632, 632, 634, 634, 634, 634, 634, 634, 634, 634, 634, 636, 636, 636, 636, 636, 636, 636, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 635, 635, 635, 635, 633, 633, 632, 632, 632, 632, 632, 633, 633, 633, 633, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 631, 631, 630, 629, 629, 629, 629, 629, 628, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 626, 626, 626, 625, 625, 625, 625, 625, 625, 624, 623, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 621, 621, 621, 621, 621, 621, 620, 620, 620, 620, 620, 619, 616, 615, 614, 614, 614, 613, 613, 613, 612, 612, 612, 612, 611, 611, 611, 610, 608, 608, 608, 608, 608, 608, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 602, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 598, 598, 598, 598, 598, 598, 596, 596, 596, 595, 595, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 592, 591, 591, 591, 591, 589, 588, 588, 590, 591, 591, 589, 588, 588, 587, 587, 588, 588, 588, 588, 588, 586, 586, 586, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 586, 586, 586, 588, 588, 588, 587, 587, 587, 586, 586, 586, 586, 586, 587, 587, 587, 583, 583, 583, 583, 585, 585, 585, 582, 582, 582, 584, 586, 586, 586, 585, 584, 583, 583, 581, 581, 581, 580, 580, 579, 579, 579, 582, 582, 582, 582, 583, 583, 583, 583, 583, 584, 584, 585, 585, 586, 586, 586, 582, 582, 582, 583, 585, 585, 583, 578, 578, 578, 583, 583, 583, 583, 583, 579, 579, 579, 579, 579, 581, 583, 583, 583, 581, 581, 581, 578, 578, 578, 580, 580, 580, 580, 580, 580, 579, 579, 579, 580, 582, 582, 580, 577, 575, 575, 575, 575, 575, 575, 575, 576, 576, 579, 579, 579, 579, 579, 579, 579, 577, 577, 577, 577, 578, 578, 578, 574, 574, 574, 576, 576, 577, 577, 577, 578, 578, 578, 578, 579, 579, 579, 579, 579, 578, 573, 573, 580, 580, 573, 573, 573, 573, 573, 578, 578, 578, 576, 573, 573, 573, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 576, 578, 578, 575, 573, 573, 573, 574, 577, 577, 577, 574, 572, 572, 572, 572, 572, 572, 574, 574, 574, 574, 575, 575, 575, 574, 573, 573, 574, 574, 574, 574, 574, 575, 575, 575, 573, 573, 573, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 572, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 577, 577, 574, 574, 573, 572, 572, 571, 571, 571, 573, 573, 574, 574, 574, 574, 574, 574, 574, 571, 571, 564, 564, 564, 564, 566, 566, 566, 571, 571, 571, 572, 572, 572, 572, 572, 573, 574, 574, 574, 574, 574, 576, 576, 577, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 583, 583, 583, 583, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 586, 586, 586, 586, 588, 588, 588, 588, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 593, 593, 593, 593, 593, 593, 594, 594, 594, 595, 595, 595, 595, 596, 596, 596, 597, 597, 598, 598, 599, 599, 599, 600, 601, 601, 601, 601, 601, 601, 601, 601, 602, 602, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 598, 597, 597, 597, 597, 597, 597, 597, 597, 596, 596, 596, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 588, 589, 589, 589, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 596, 596, 596, 598, 598, 598, 598, 598, 598, 598, 600, 600, 600, 601, 601, 602, 602, 602, 602, 602, 602, 603, 603, 604, 605, 605, 606, 606, 607, 607, 607, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 611, 611, 613, 613, 614, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 618, 618, 618, 618, 618, 619, 619, 620, 621, 621, 621, 621, 621, 621, 621, 623, 623, 623, 623, 624, 624, 624, 625, 625, 625, 625, 625, 625, 626, 626, 626, 626, 626, 626, 627, 628, 628, 628, 628, 628, 628, 628, 628, 628, 629, 629, 629, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 630, 630, 630, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 633, 633, 633, 633, 633, 633, 633, 633, 633, 632, 632, 632, 632, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 633, 633, 633, 633, 633, 633, 633, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 630, 628, 628, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 626, 626, 625, 625, 625, 625, 625, 625, 625, 624, 624, 624, 623, 623, 623, 623, 623, 623, 622, 620, 620, 620, 619, 619, 619, 619, 619, 618, 618, 618, 618, 618, 618, 618, 618, 618, 617, 616, 616, 615, 615, 613, 613, 613, 613, 612, 611, 611, 611, 611, 611, 610, 610, 610, 610, 609, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 607, 606, 606, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 602, 602, 602, 602, 601, 601, 599, 599, 598, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 587, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 584, 584, 584, 584, 582, 582, 582, 582, 581, 581, 581, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 574, 574, 574, 574, 573, 573, 575, 576, 576, 576, 576, 562, 562, 562, 562, 563, 563, 563, 563, 565, 566, 566, 566, 566, 567, 567, 570, 570, 570, 568, 568, 568, 572, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 577, 581, 581, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 581, 581, 580, 580, 580, 580, 580, 578, 578, 578, 579, 579, 580, 580, 580, 580, 581, 581, 584, 584, 584, 583, 581, 581, 581, 581, 580, 580, 580, 580, 579, 579, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 578, 578, 578, 578, 578, 576, 576, 576, 576, 576, 580, 580, 580, 579, 575, 575, 575, 575, 575, 576, 576, 578, 578, 582, 582, 582, 582, 582, 581, 581, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 583, 583, 583, 581, 579, 579, 581, 583, 585, 585, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 588, 585, 585, 585, 585, 585, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 589, 589, 589, 586, 586, 586, 587, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 587, 587, 587, 587, 587, 587, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 586, 586, 586, 586, 585, 585, 585, 585, 584, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 585, 585, 585, 582, 582, 582, 583, 583, 583, 583, 585, 585, 585, 585, 580, 580, 580, 580, 580, 580, 579, 579, 579, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 582, 582, 582, 581, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 582, 582, 582, 582, 578, 576, 576, 576, 576, 575, 575, 575, 575, 579, 581, 581, 579, 574, 574, 574, 578, 579, 581, 581, 580, 580, 580, 578, 578, 577, 577, 577, 577, 576, 576, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 574, 574, 583, 583, 580, 580, 580, 580, 577, 577, 577, 578, 580, 581, 581, 582, 582, 584, 586, 586, 584, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 593, 593, 595, 595, 596, 596, 596, 596, 596, 597, 597, 597, 597, 598, 599, 600, 600, 600, 600, 600, 600, 600, 601, 601, 603, 603, 603, 603, 603, 604, 604, 604, 604, 604, 605, 605, 605, 607, 607, 607, 608, 609, 609, 609, 609, 610, 610, 610, 610, 611, 612, 612, 612, 612, 612, 613, 613, 613, 613, 613, 614, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 617, 617, 617, 619, 620, 620, 622, 622, 623, 623, 623, 624, 624, 624, 624, 624, 625, 625, 625, 625, 626, 626, 626, 626, 627, 627, 627, 628, 628, 628, 628, 628, 628, 628, 628, 629, 629, 629, 630, 630, 630, 630, 630, 631, 631, 631, 632, 632, 632, 632, 632, 633, 633, 634, 635, 635, 635, 636, 636, 636, 636, 637, 638, 638, 638, 639, 639, 640, 640, 640, 640, 640, 640, 641, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 644, 644, 646, 646, 646, 646, 646, 646, 646, 647, 647, 647, 647, 647, 647, 647, 647, 648, 648, 648, 648, 648, 648, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 650, 648, 648, 647, 647, 646, 646, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 643, 643, 642, 641, 640, 640, 640, 640, 639, 639, 638, 638, 635, 634, 634, 634, 634, 634, 633, 633, 633, 632, 632, 632, 629, 629, 629, 628, 628, 628, 628, 628, 628, 628, 627, 627, 627, 626, 625, 625, 625, 624, 624, 624, 624, 621, 621, 620, 620, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 618, 618, 617, 617, 617, 616, 616, 616, 615, 614, 614, 614, 614, 613, 612, 612, 611, 611, 611, 611, 611, 610, 610, 610, 610, 608, 608, 607, 607, 607, 605, 605, 605, 604, 603, 603, 602, 601, 601, 601, 600, 600, 600, 600, 600, 600, 599, 598, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 597, 596, 596, 595, 595, 595, 594, 594, 592, 592, 592, 591, 590, 590, 590, 590, 590, 586, 586, 586, 590, 590, 590, 590, 589, 588, 588, 588, 588, 588, 588, 587, 587, 587, 586, 586, 585, 582, 580, 580, 585, 585, 586, 584, 584, 582, 582, 582, 582, 582, 582, 580, 580, 580, 580, 580, 580, 581, 583, 583, 583, 584, 584, 583, 580, 578, 576, 576, 578, 580, 580, 580, 580, 580, 579, 579, 579, 579, 581, 581, 583, 583, 583, 579, 578, 577, 577, 577, 579, 581, 581, 580, 580, 580, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 577, 577, 577, 578, 578, 578, 578, 578, 575, 575, 575, 575, 576, 576, 576, 574, 574, 574, 575, 575, 575, 575, 575, 576, 576, 576, 576, 575, 575, 575, 575, 575, 573, 573, 573, 573, 573, 571, 570, 570, 571, 572, 575, 575, 575, 575, 575, 575, 575, 575, 575, 578, 578, 578, 578, 578, 578, 574, 574, 574, 573, 570, 570, 570, 571, 571, 572, 572, 572, 572, 577, 577, 577, 575, 574, 574, 574, 574, 574, 575, 575, 577, 577, 577, 577, 577, 573, 572, 572, 572, 572, 574, 576, 576, 576, 578, 578, 576, 575, 574, 561, 561, 557, 557, 557, 560, 560, 560, 560, 562.5, 564, 565, 565, 566, 566, 567, 568, 568, 569, 569, 570, 570, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 576, 576, 576, 576, 576, 577, 577, 577, 577, 576, 576, 576, 576, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 576, 576, 576, 576, 576, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 583, 583, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 578, 578, 576, 576, 576, 576, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 583, 583, 583, 584, 584, 584, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 589, 589, 589, 589, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 592, 592, 593, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 596, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 603, 603, 603, 603, 602, 602, 602, 602, 603, 604, 604, 605, 605, 605, 605, 605, 606, 606, 606, 607, 607, 607, 607, 608, 608, 608, 609, 609, 609, 609, 609, 609, 610, 610, 610, 610, 610, 610, 610, 610, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, 617, 618, 618, 618, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 615, 614, 612, 612, 612, 612, 612, 612, 612, 612, 611, 611, 610, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 606, 606, 606, 605, 605, 605, 605, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 603, 603, 603, 603, 602, 602, 601, 599, 599, 599, 598, 597, 597, 597, 598, 598, 598, 597, 597, 596, 596, 594, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 592, 592, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 584, 584, 584, 584, 583, 583, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 580, 580, 580, 581, 581, 581, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 578, 579, 579, 579, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 576, 576, 577, 577, 577, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 583, 583, 583, 583, 584, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 589, 589, 591, 591, 591, 589, 589, 589, 591, 591, 591, 593, 593, 591, 589, 589, 562, 562, 562, 562, 562, 563, 563, 563, 563.5, 563.5, 564, 564, 564, 564, 564, 566, 566, 566, 567, 567, 568, 569, 569, 569, 569, 569, 570, 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 580, 580, 580, 580, 580, 579, 579, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 575, 575, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, 573, 574, 574, 574, 574, 574, 574, 574, 574, 573, 571, 571, 571, 571, 571, 571, 572, 572, 572, 571, 571, 570, 570, 570, 570, 570, 570, 571, 571, 571, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 578, 578, 579, 579, 579, 580, 580, 580, 580, 580, 580, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 589, 589, 589, 590, 590, 590, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 585, 585, 585, 585, 584, 584, 583, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 584, 583, 582, 582, 582, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 586, 587, 587, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 593, 593, 593, 593, 595, 596, 596, 596, 596, 596, 596, 596, 597, 597, 598, 599, 599, 599, 599, 599, 599, 600, 600, 601, 601, 601, 601, 602, 603, 603, 604, 604, 604, 605, 605, 605, 606, 607, 607, 607, 608, 608, 610, 610, 610, 610, 611, 611, 611, 611, 612, 612, 612, 613, 613, 614, 615, 615, 615, 615, 615, 617, 618, 619, 620, 620, 623, 624, 624, 624, 624, 625, 625, 625, 625, 628, 628, 628, 628, 628, 629, 629, 629, 629, 634, 634, 635, 637, 638, 639, 641, 641, 643, 643, 644, 644, 648, 648, 648, 644, 644, 644, 648, 649, 649, 566, 565, 561, 559, 559, 563, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 568, 569, 569, 569, 569, 571, 571, 571, 568, 567, 567, 567, 569, 570, 573, 573, 573, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 575, 575, 575, 575, 575, 577, 577, 573, 573, 573, 573, 573, 573, 570, 570, 570, 573, 575, 576, 576, 576, 577, 577, 577, 577, 577, 575, 572, 572, 572, 572, 573, 575, 575, 578, 578, 578, 576, 576, 576, 576, 577, 577, 577, 574, 573, 573, 573, 573, 573, 573, 573, 573, 577, 577, 577, 577, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 574, 574, 574, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 575, 577, 577, 577, 577, 577, 577, 579, 579, 579, 579, 579, 579, 579, 582, 582, 582, 581, 579, 578, 578, 578, 578, 579, 580, 580, 580, 580, 582, 582, 582, 581, 581, 581, 581, 581, 582, 582, 582, 581, 579, 579, 578, 578, 578, 577, 577, 577, 580, 581, 582, 582, 582, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 576, 576, 576, 579, 579, 579, 576, 576, 576, 576, 578, 578, 578, 578, 578, 578, 578, 576, 576, 580, 580, 579, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 573, 573, 573, 573, 573, 577, 577, 577, 577, 577, 575, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 576, 576, 576, 576, 576, 575, 575, 575, 575, 575, 576, 576, 574, 574, 574, 574, 573, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 575, 576, 576, 576, 576, 576, 570, 570, 570, 576, 576, 576, 576, 576, 576, 576, 576, 572, 570, 570, 570, 570, 574, 574, 574, 574, 573, 573, 573, 574, 575, 575, 575, 575, 573, 573, 573, 573, 573, 574, 574, 574, 569, 569, 569, 569, 569, 569, 573, 575, 576, 576, 576, 576, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 572, 572, 574, 574, 574, 572, 572, 572, 572, 572, 572, 572, 574, 574, 574, 574, 575, 575, 576, 576, 576, 576, 572, 572, 572, 574, 574, 574, 575, 575, 575, 577, 577, 577, 577, 575, 575, 575, 573, 573, 573, 573, 576, 576, 576, 576, 574, 574, 574, 575, 575, 575, 575, 575, 575, 578, 578, 578, 578, 576, 576, 576, 574, 574, 574, 574, 575, 582, 582, 582, 574, 572, 572, 574, 574, 576, 576, 576, 576, 576, 576, 576, 576, 576, 574, 572, 572, 573, 577, 577, 577, 577, 578, 579, 579, 579, 579, 580, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 574, 574, 581, 581, 581, 581, 581, 582, 584, 584, 581, 581, 581, 581, 581, 581, 579, 579, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 587, 587, 587, 587, 586, 586, 585, 585, 582, 582, 582, 585, 585, 585, 585, 585, 585, 588, 588, 588, 588, 586, 584, 584, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 589, 589, 589, 589, 589, 593, 593, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 589, 589, 589, 589, 590, 591, 592, 592, 589, 589, 589, 589, 591, 592, 592, 592, 592, 592, 593, 594, 594, 592, 590, 590, 590, 587, 587, 589, 592, 592, 592, 592, 593, 593, 593, 593, 593, 593, 592, 592, 592, 589, 589, 589, 589, 589, 592, 594, 594, 594, 593, 592, 592, 592, 592, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 589, 589, 589, 593, 593, 593, 593, 591, 591, 591, 593, 593, 593, 593, 594, 594, 594, 594, 592, 592, 592, 589, 589, 589, 589, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 591, 591, 590, 590, 590, 590, 589, 589, 589, 589, 589, 595, 595, 593, 588, 588, 589, 589, 589, 589, 592, 592, 592, 592, 592, 592, 593, 593, 593, 592, 590, 590, 589, 589, 585, 585, 585, 591, 591, 591, 591, 591, 591, 589, 588, 588, 588, 588, 588, 588, 588, 590, 592, 592, 592, 592, 591, 587, 587, 587, 587, 588, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 589, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 593, 595, 595, 595, 595, 593, 593, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 597, 597, 597, 598, 598, 596, 596, 594, 593, 593, 593, 597, 597, 597, 597, 601, 601, 601, 601, 601, 601, 601, 601, 601, 603, 603, 603, 603, 603, 603, 606, 606, 606, 606, 609, 609, 609, 609, 609, 609, 609, 609, 611, 613, 613, 613, 613, 613, 614, 615, 619, 619, 619, 619, 620, 620, 620, 620, 620, 622, 623, 623, 624, 624, 625, 625, 626, 626, 627, 627, 627, 628, 628, 629, 629, 630, 632, 633, 633, 633, 634, 637, 638, 639, 639, 640, 641, 642, 643, 644, 645, 645, 645, 646, 646, 648, 648, 649, 652, 652, 652, 654, 654, 656, 656, 656, 657, 658, 661, 662, 662, 664, 664, 664, 664, 664, 666, 667, 667, 668, 669, 670, 671, 672, 675, 677, 679, 681, 682, 683, 683, 687, 687, 690, 690, 694, 696, 696, 696, 698, 699, 700, 700, 701, 704, 704, 707, 707, 709, 710, 711, 713, 717, 720, 721, 721, 727, 730, 730, 732, 733, 738, 738, 746, 746, 746, 747, 751, 752, 753, 754, 757, 757, 758, 758, 759, 760, 760, 760, 762, 764, 765, 767, 773, 773, 780, 780, 782, 783, 785, 787, 788, 790, 799, 801, 809, 809, 809, 806, 806, 806, 825, 825, 825, 825, 571, 571, 567, 567, 567, 567, 568, 569, 569, 569, 569, 569, 569, 573, 575, 576, 576, 576, 576, 574, 574, 574, 578, 578, 578, 576, 576, 576, 577, 579, 579, 579, 579, 577, 577, 577, 577, 578, 578, 578, 574, 574, 574, 577, 579, 579, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 580, 580, 581, 590, 609, 671, 671, 671, 601, 601, 580, 580, 580, 580, 580, 580, 579, 579, 577, 577, 575, 575, 575, 576, 577, 580, 582, 582, 582, 581, 581, 580, 580, 578, 578, 578, 578, 578, 579, 580, 580, 580, 580, 580, 578, 578, 579, 580, 580, 581, 581, 581, 581, 579, 578, 578, 578, 578, 578, 578, 578, 576, 576, 578, 578, 578, 578, 580, 581, 581, 581, 580, 578, 577, 577, 579, 580, 581, 581, 581, 580, 580, 580, 580, 580, 581, 582, 582, 582, 582, 582, 582, 584, 584, 584, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 580, 580, 580, 582, 584, 586, 586, 586, 583, 582, 582, 582, 584, 584, 584, 587, 587, 587, 583, 583, 583, 581, 581, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 585, 585, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 579, 579, 579, 579, 579, 582, 582, 582, 582, 582, 582, 581, 581, 581, 584, 584, 584, 584, 581, 581, 581, 583, 583, 586, 586, 586, 584, 583, 583, 583, 583, 583, 581, 581, 581, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 582, 582, 582, 582, 584, 584, 584, 578, 576, 576, 576, 576, 580, 580, 580, 577, 577, 577, 577, 578, 580, 582, 582, 580, 579, 579, 580, 581, 581, 581, 581, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 577, 577, 577, 577, 576, 576, 579, 579, 582, 582, 582, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 581, 581, 581, 581, 581, 580, 577, 577, 577, 577, 582, 582, 582, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 581, 583, 583, 578, 578, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 579, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 580, 580, 580, 580, 584, 584, 584, 584, 583, 582, 582, 582, 585, 585, 585, 585, 585, 583, 581, 581, 581, 581, 582, 582, 580, 580, 580, 580, 579, 579, 579, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 583, 583, 581, 581, 583, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 579, 579, 579, 581, 582, 583, 583, 583, 582, 582, 582, 582, 582, 582, 584, 584, 582, 582, 581, 581, 580, 580, 580, 583, 584, 584, 586, 586, 586, 588, 588, 592, 592, 592, 586, 585, 585, 587, 590, 591, 591, 590, 589, 589, 587, 587, 583, 582, 584, 588, 590, 590, 593, 593, 593, 587, 587, 587, 588, 588, 588, 587, 587, 587, 587, 587, 587, 588, 590, 590, 590, 590, 590, 590, 592, 592, 592, 592, 592, 592, 592, 591, 589, 589, 589, 592, 592, 594, 594, 592, 592, 592, 592, 593, 594, 594, 594, 594, 594, 594, 594, 594, 594, 601, 602, 602, 602, 599, 599, 599, 599, 596, 596, 596, 601, 601, 601, 601, 597, 597, 596, 596, 596, 601, 601, 601, 600, 599, 599, 602, 605, 605, 605, 605, 604, 603, 603, 603, 603, 606, 608, 608, 608, 606, 600, 599, 599, 601, 603, 603, 603, 603, 603, 603, 603, 603, 603, 605, 605, 607, 610, 610, 610, 609, 609, 609, 603, 603, 603, 603, 604, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 606, 608, 608, 608, 608, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 608, 609, 609, 607, 606, 606, 606, 606, 607, 608, 609, 613, 613, 609, 609, 609, 609, 609, 609, 608, 607, 606, 606, 609, 609, 609, 609, 609, 609, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 610, 610, 610, 607, 607, 608, 608, 608, 608, 610, 613, 613, 616, 616, 616, 616, 614, 614, 614, 614, 610, 610, 610, 614, 614, 614, 614, 615, 615, 615, 615, 615, 615, 613, 612, 612, 612, 612, 615, 615, 615, 614, 616, 616, 620, 620, 621, 620, 620, 620, 620, 621, 621, 621, 621, 620, 619, 619, 619, 619, 619, 621, 621, 623, 623, 624, 624, 624, 624, 624, 624, 624, 625, 625, 625, 625, 624, 624, 624, 624, 625, 625, 625, 625, 631, 633, 633, 633, 633, 629, 629, 630, 630, 630, 630, 630, 635, 636, 636, 636, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 648, 648, 648, 648, 648, 647, 647, 647, 647, 647, 650, 650, 650, 650, 652, 657, 661, 661, 661, 656, 656, 656, 666, 669, 670, 670, 670, 668, 668, 683, 683, 683, 683, 680, 680, 680, 680, 685, 685, 685, 689, 689, 689, 689, 694, 698, 701, 701, 701, 702, 702, 702, 702, 706, 713, 714, 714, 714, 714, 714, 718, 718, 718, 723, 723, 723, 723, 731, 733, 737, 742, 742, 742, 742, 749, 755, 755, 755, 758, 762, 762, 765, 766, 768, 768, 768, 768, 773, 773, 773, 773, 786, 791, 791, 793, 799, 801, 804, 804, 805, 810, 810, 812, 817, 824, 824, 830, 830, 831, 835, 842, 844, 854, 854, 855, 861, 862, 863, 869, 873, 874, 875, 875, 875, 876, 885, 890, 892, 894, 899, 911, 916, 917, 918, 926, 926, 937, 938, 943, 944, 957, 958, 962, 962, 962, 962, 964, 974, 975, 981, 984, 989, 998, 1002, 1008, 1010, 1018, 1020, 1021, 1025, 1028, 1029, 1042, 1045, 1046, 1051, 1059, 1063, 1066, 1078, 1085, 1086, 1096, 1098, 1112, 1114, 1115, 1119, 1121, 1126, 1139, 1142, 1157, 1164, 1165, 1169, 1171, 1195, 1197, 1199, 1199, 1209, 1210, 1225, 1225, 1227, 1242, 1242, 1242, 1245, 1254, 1254, 1264, 1286, 1286, 1286, 1299, 1305, 1324, 1326, 1330, 587, 586, 583, 581, 580, 580, 583, 586, 586, 586, 586, 586, 584, 584, 584, 588, 588, 588, 590, 590, 590, 590, 593, 593, 594, 594, 596, 596, 596, 598, 602, 603, 599, 591, 591, 591, 591, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 588, 588, 588, 588, 589, 589, 589, 588, 588, 587, 587, 587, 588, 588, 588, 588, 587, 587, 587, 591, 591, 591, 589, 589, 589, 589, 589, 595, 595, 587, 587, 591, 591, 591, 591, 591, 593, 593, 593, 593, 593, 593, 590, 589, 589, 589, 594, 594, 594, 594, 593, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 589, 589, 589, 595, 595, 595, 594, 594, 594, 594, 591, 591, 591, 591, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 592, 592, 593, 593, 593, 590, 590, 590, 590, 592, 593, 593, 593, 593, 593, 592, 590, 590, 596, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 592, 592, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 595, 594, 594, 593, 593, 592, 592, 592, 594, 594, 594, 594, 594, 596, 596, 596, 596, 596, 596, 593, 593, 593, 603, 603, 598, 598, 598, 595, 595, 595, 595, 593, 593, 594, 594, 594, 594, 594, 595, 598, 598, 598, 597, 597, 597, 597, 597, 596, 596, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 594, 594, 595, 594, 592, 592, 592, 592, 594, 594, 594, 594, 597, 597, 597, 594, 592, 592, 592, 592, 596, 596, 596, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 595, 595, 596, 596, 598, 598, 596, 594, 594, 594, 594, 594, 594, 595, 600, 600, 596, 595, 594, 593, 591, 591, 592, 593, 593, 593, 593, 593, 593, 593, 593, 592, 592, 592, 592, 593, 593, 596, 596, 595, 595, 595, 595, 595, 594, 594, 594, 597, 597, 597, 596, 596, 596, 594, 593, 593, 593, 594, 594, 594, 594, 595, 596, 596, 596, 596, 596, 597, 597, 597, 597, 596, 596, 596, 596, 596, 595, 593, 593, 593, 593, 593, 594, 596, 596, 596, 596, 596, 596, 596, 596, 594, 594, 594, 594, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 597, 596, 596, 596, 598, 598, 598, 598, 598, 596, 594, 594, 597, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 600, 600, 597, 597, 597, 597, 597, 597, 597, 600, 602, 602, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 602, 602, 599, 599, 599, 604, 604, 604, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 600, 600, 600, 601, 605, 605, 605, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 607, 607, 607, 607, 606, 606, 606, 607, 607, 607, 607, 607, 607, 605, 605, 605, 605, 607, 607, 607, 607, 608, 608, 608, 609, 609, 611, 612, 612, 612, 607, 607, 607, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 610, 610, 610, 610, 610, 613, 613, 613, 613, 614, 614, 614, 614, 614, 615, 615, 615, 615, 615, 615, 614, 613, 613, 615, 617, 620, 620, 618, 616, 614, 614, 617, 622, 622, 618, 616, 616, 616, 617, 618, 618, 620, 620, 623, 623, 623, 623, 623, 623, 624, 698, 803, 859, 747, 635, 635, 623, 623, 623, 623, 624, 626, 626, 626, 626, 624, 621, 621, 621, 620, 620, 620, 625, 625, 625, 625, 625, 625, 623, 623, 623, 623, 625, 630, 630, 630, 629, 629, 629, 629, 625, 625, 627, 629, 629, 631, 631, 628, 626, 626, 626, 626, 626, 628, 628, 630, 630, 631, 631, 631, 631, 633, 633, 633, 633, 632, 631, 631, 635, 637, 637, 637, 637, 637, 639, 639, 641, 642, 642, 638, 638, 633, 633, 633, 633, 634, 638, 638, 638, 638, 643, 643, 643, 643, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 641, 641, 641, 645, 645, 645, 645, 645, 645, 649, 649, 649, 649, 649, 649, 649, 649, 649, 651, 653, 653, 656, 662, 663, 662, 656, 656, 656, 656, 660, 660, 660, 662, 663, 663, 658, 654, 654, 654, 666, 666, 666, 662, 662, 662, 662, 662, 662, 667, 667, 667, 667, 670, 670, 670, 670, 673, 675, 676, 676, 676, 676, 676, 676, 679, 679, 681, 686, 686, 686, 686, 686, 691, 691, 691, 688, 688, 688, 693, 693, 699, 699, 699, 699, 700, 703, 706, 708, 712, 712, 713, 713, 717, 717, 718, 718, 718, 721, 732, 732, 732, 732, 733, 733, 733, 733, 737, 737, 731, 731, 731, 731, 742, 742, 742, 746, 746, 752, 755, 757, 760, 763, 764, 764, 764, 768, 768, 775, 779, 779, 779, 780, 780, 782, 786, 787, 788, 791, 799, 799, 802, 802, 807, 807, 808, 811, 811, 816, 816, 826, 826, 826, 830, 833, 842, 847, 849, 856, 858, 858, 861, 861, 863, 872, 877, 881, 883, 883, 887, 905, 905, 907, 912, 925, 925, 925, 926, 926, 931, 952, 952, 955, 956, 963, 966, 966, 977, 991, 992, 996, 996, 1005, 1016, 1017, 1017, 1019, 1019, 1040, 1040, 1046, 1046, 1047, 1063, 1063, 1063, 1078, 1087, 1088, 1112, 1116, 1122, 1122, 1122, 1123, 1142, 1147, 1148, 1155, 1164, 1175, 1186, 1192, 1192, 1201, 1208, 1208, 1215, 1232, 1241, 1244, 1256, 1261, 1270, 1272, 1279, 1282, 1292, 1312, 1322, 1339, 1339, 1339, 1339, 1342, 1346, 1372, 1382, 1388, 1389, 1404, 1414, 1418, 1429, 1446, 1450, 1457, 1457, 1480, 1491, 1499, 1499, 1519, 1540, 1549, 1551, 1560, 1561, 1601, 1606, 1606, 1606, 1627, 1632, 1633, 1671, 1677, 1682, 1702, 1727, 1727, 1732, 1734, 1734, 1761, 1788, 1794, 1798, 1822, 1831, 1843, 1848, 1851, 1871, 1907, 1907, 1907, 1918, 1939, 1959, 1966, 1966, 1990, 2014, 2030, 2050, 2052, 2055, 2080, 2103, 2110, 2142, 2143, 2179, 2242, 2242, 2244, 2244, 2244, 2247, 2273, 2288, 2307, 2318, 2344, 2353, 2357, 2377, 2406, 2418, 2453, 2456, 2471, 2507, 2518, 2523, 2571, 2573, 2579, 2609, 2625, 2644, 2670, 2690, 2690, 623, 623, 623, 621, 613, 613, 613, 613, 615, 615, 619, 622, 622, 622, 622, 622, 619, 619, 619, 618, 618, 618, 619, 619, 619, 619, 621, 621, 621, 621, 622, 622, 622, 622, 621, 621, 619, 619, 617, 617, 617, 617, 615, 615, 615, 615, 620, 621, 623, 623, 623, 622, 621, 621, 619, 619, 619, 619, 619, 619, 620, 620, 620, 620, 620, 620, 620, 622, 622, 622, 618, 618, 618, 617, 617, 619, 619, 619, 619, 618, 618, 618, 618, 618, 621, 621, 615, 615, 614, 614, 614, 618, 618, 619, 619, 619, 619, 619, 619, 619, 619, 619, 618, 618, 618, 618, 618, 618, 619, 621, 622, 622, 622, 622, 621, 620, 620, 620, 620, 620, 620, 620, 618, 618, 618, 618, 620, 620, 620, 619, 619, 619, 619, 621, 625, 625, 621, 619, 619, 617, 617, 617, 617, 622, 627, 627, 625, 625, 625, 618, 618, 617, 619, 620, 622, 624, 624, 625, 626, 626, 626, 622, 622, 622, 622, 622, 622, 622, 622, 622, 623, 623, 623, 627, 627, 627, 627, 626, 626, 626, 626, 626, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 624, 624, 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 625, 628, 628, 628, 628, 628, 628, 627, 627, 627, 627, 627, 627, 627, 627, 628, 628, 628, 629, 629, 629, 629, 629, 631, 631, 626, 626, 626, 626, 630, 630, 626, 624, 624, 624, 625, 625, 625, 625, 625, 625, 625, 625, 628, 628, 628, 628, 625, 625, 633, 633, 633, 628, 628, 628, 628, 628, 628, 631, 631, 629, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 625, 625, 625, 627, 629, 631, 633, 633, 636, 636, 637, 635, 633, 633, 630, 625, 625, 625, 625, 625, 625, 625, 630, 631, 631, 631, 631, 631, 631, 630, 630, 631, 631, 631, 631, 631, 631, 628, 628, 628, 631, 635, 635, 633, 631, 629, 628, 628, 628, 628, 628, 628, 628, 632, 632, 635, 635, 635, 631, 631, 630, 630, 630, 630, 630, 630, 636, 638, 638, 638, 638, 635, 635, 634, 634, 634, 634, 634, 636, 636, 633, 633, 635, 635, 635, 635, 636, 637, 637, 637, 637, 634, 634, 634, 637, 637, 637, 636, 636, 636, 636, 636, 636, 636, 635, 635, 635, 635, 635, 636, 638, 638, 638, 638, 638, 634, 631, 631, 639, 639, 639, 639, 639, 639, 641, 641, 641, 641, 641, 644, 644, 644, 644, 642, 641, 641, 641, 641, 642, 642, 642, 642, 638, 637, 637, 640, 647, 647, 647, 647, 640, 640, 640, 640, 642, 645, 645, 645, 645, 645, 645, 643, 643, 643, 644, 644, 645, 645, 645, 645, 651, 653, 653, 646, 646, 646, 646, 646, 648, 650, 650, 650, 650, 650, 650, 652, 654, 654, 654, 652, 652, 651, 651, 651, 655, 655, 655, 655, 650, 650, 650, 650, 650, 653, 653, 653, 653, 653, 653, 653, 653, 653, 654, 654, 655, 655, 655, 655, 658, 658, 658, 658, 661, 667, 667, 662, 655, 655, 655, 655, 660, 661, 661, 661, 661, 660, 660, 660, 659, 659, 659, 659, 659, 664, 664, 664, 664, 663, 663, 663, 663, 661, 661, 661, 673, 675, 672, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 669, 669, 669, 671, 671, 671, 671, 675, 675, 675, 675, 669, 669, 669, 669, 673, 676, 677, 677, 677, 677, 677, 677, 679, 681, 681, 681, 681, 680, 679, 679, 679, 679, 679, 679, 679, 680, 683, 684, 685, 686, 688, 712, 712, 712, 712, 686, 686, 686, 686, 686, 692, 692, 694, 694, 691, 691, 691, 691, 691, 691, 687, 687, 687, 687, 694, 694, 694, 694, 694, 696, 699, 699, 699, 699, 694, 694, 700, 705, 705, 703, 697, 697, 697, 697, 710, 710, 709, 708, 708, 708, 708, 712, 720, 725, 724, 714, 714, 714, 716, 723, 723, 715, 715, 715, 715, 716, 719, 719, 720, 723, 727, 738, 738, 738, 725, 725, 725, 726, 730, 730, 731, 731, 734, 735, 735, 735, 736, 742, 742, 744, 744, 744, 744, 748, 748, 748, 748, 748, 751, 751, 754, 757, 757, 763, 763, 763, 763, 763, 770, 770, 770, 772, 773, 780, 780, 780, 780, 781, 784, 793, 793, 797, 797, 797, 799, 799, 799, 800, 810, 811, 811, 811, 813, 819, 822, 825, 831, 836, 851, 851, 832, 832, 852, 852, 852, 852, 852, 855, 855, 856, 862, 863, 865, 867, 873, 878, 879, 880, 884, 896, 896, 898, 910, 911, 918, 922, 932, 941, 941, 941, 941, 941, 941, 942, 944, 953, 953, 956, 962, 968, 972, 973, 975, 983, 985, 987, 995, 995, 1002, 1009, 1014, 1014, 1018, 1019, 1024, 1036, 1044, 1046, 1052, 1064, 1068, 1071, 1072, 1077, 1086, 1087, 1098, 1098, 1103, 1107, 1118, 1129, 1129, 1129, 1130, 1130, 1150, 1163, 1164, 1166, 1166, 1185, 1196, 1210, 1212, 1214, 1214, 1214, 1232, 1243, 1246, 1260, 1266, 1268, 1268, 1268, 1281, 1297, 1309, 1321, 1328, 1342, 1342, 1362, 1366, 1396, 1406, 1406, 1409, 1415, 1447, 1447, 1454, 1457, 1469, 1491, 1494, 1511, 1539, 1544, 1555, 1559, 1591, 1611, 1611, 1623, 1637, 1659, 1670, 1679, 1692, 1696, 1704, 1733, 1760, 1762, 1780, 1791, 1794, 1813, 1831, 1847, 1864, 1872, 1889, 1924, 1926, 1941, 1960, 1963, 1987, 2010, 2016, 2029, 2042, 2071, 2084, 2103, 2118, 2127, 2173, 2173, 2175, 2221, 2233, 2244, 2276, 2276, 2289, 2325, 2357, 2365, 2387, 2396, 2419, 2426, 2456, 2474, 2498, 2516, 2539, 2568, 2580, 2621, 2633, 2644, 2658, 2658, 2691, 2736, 2765, 2792, 2809, 2832, 2852, 2866, 2898, 2924, 2980, 2991, 3002, 3002, 3019, 3063, 3081, 3112, 3153, 3176, 3195, 3208, 3256, 3265, 3290, 3336, 3375, 3396, 3411, 3476, 3476, 3477, 3542, 3581, 3609, 3609, 3622, 3703, 3706, 3760, 3763, 3799, 3835, 3869, 3897, 3944, 3967, 3972, 3973, 4075, 4087, 4115, 4147, 4165, 4219, 4258, 4259, 4333, 4393, 4413, 4423, 4494, 4517, 4518, 4556, 4613, 4685, 4716, 4778, 4786, 4820, 4887, 4892, 4938, 4990, 5020, 5080, 5107, 5191, 5203, 5263, 5267, 5300, 5379, 5426, 5457, 5478, 5551, 5584, 5638, 5746, 5832, 5832, 5871, 5871, 5940, 5969, 5988, 6103, 6128, 6138, 690, 686, 684, 684, 684, 684, 684, 687, 687, 687, 687, 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 687, 687, 687, 687, 687, 687, 684, 684, 684, 684, 687, 687, 687, 687, 687, 687, 687, 690, 690, 690, 690, 686, 682, 681, 681, 681, 684, 684, 684, 684, 684, 684, 684, 684, 687, 687, 687, 687, 685, 685, 681, 681, 680, 680, 680, 683, 683, 683, 682, 682, 682, 682, 683, 685, 685, 685, 681, 681, 681, 681, 679, 679, 679, 679, 679, 679, 679, 679, 679, 680, 680, 680, 679, 679, 679, 679, 681, 682, 682, 686, 688, 688, 688, 681, 681, 681, 681, 681, 683, 683, 683, 683, 683, 685, 685, 685, 677, 677, 677, 677, 679, 679, 679, 684, 685, 685, 685, 685, 685, 686, 686, 686, 686, 686, 686, 686, 685, 685, 685, 685, 685, 685, 685, 685, 686, 686, 686, 687, 687, 687, 687, 687, 689, 689, 689, 689, 689, 689, 688, 683, 683, 683, 683, 683, 686, 686, 689, 690, 690, 690, 690, 690, 687, 687, 689, 689, 692, 692, 692, 692, 692, 691, 689, 689, 691, 691, 691, 691, 691, 693, 693, 693, 693, 693, 695, 698, 698, 698, 697, 695, 695, 695, 695, 694, 694, 694, 696, 696, 696, 694, 694, 694, 694, 695, 695, 695, 695, 695, 690, 690, 697, 697, 697, 697, 698, 698, 699, 699, 699, 699, 699, 696, 696, 696, 696, 696, 702, 702, 702, 702, 701, 701, 701, 701, 701, 701, 701, 699, 697, 697, 697, 697, 697, 697, 698, 698, 698, 698, 698, 704, 704, 704, 704, 704, 704, 704, 700, 700, 700, 700, 700, 698, 698, 698, 700, 703, 703, 706, 706, 706, 706, 710, 710, 706, 706, 706, 706, 705, 704, 704, 704, 704, 704, 704, 710, 710, 704, 703, 703, 703, 703, 703, 705, 705, 705, 712, 712, 712, 711, 711, 706, 706, 709, 709, 706, 706, 709, 709, 707, 707, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 705, 705, 706, 709, 710, 711, 711, 711, 711, 711, 711, 711, 707, 707, 714, 715, 715, 715, 715, 715, 714, 714, 714, 714, 715, 715, 715, 717, 717, 717, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 715, 715, 715, 716, 719, 719, 717, 717, 717, 717, 723, 724, 735, 735, 722, 722, 722, 722, 725, 726, 726, 726, 724, 722, 722, 722, 728, 729, 729, 729, 729, 729, 729, 729, 729, 730, 733, 733, 733, 733, 733, 733, 732, 732, 732, 732, 731, 731, 731, 731, 731, 731, 733, 733, 733, 733, 734, 737, 737, 737, 737, 732, 732, 732, 732, 735, 745, 745, 747, 747, 747, 740, 740, 740, 740, 750, 750, 750, 747, 747, 746, 746, 746, 746, 736, 736, 739, 744, 744, 745, 745, 746, 748, 753, 753, 749, 747, 744, 743, 743, 746, 751, 751, 753, 753, 755, 755, 755, 755, 755, 755, 755, 755, 760, 760, 760, 757, 757, 762, 762, 762, 762, 762, 762, 760, 760, 760, 760, 760, 760, 760, 759, 759, 759, 763, 765, 766, 766, 766, 766, 766, 766, 766, 766, 774, 774, 774, 774, 774, 774, 772, 772, 772, 772, 772, 772, 772, 776, 776, 776, 776, 780, 780, 780, 778, 776, 776, 776, 776, 780, 780, 780, 786, 787, 787, 794, 795, 795, 795, 788, 788, 788, 788, 788, 788, 794, 798, 798, 806, 806, 806, 805, 796, 796, 796, 798, 800, 801, 801, 801, 799, 799, 799, 806, 809, 809, 809, 813, 813, 813, 815, 815, 815, 812, 812, 812, 818, 819, 821, 821, 822, 822, 823, 823, 823, 829, 837, 837, 834, 830, 830, 829, 829, 829, 832, 841, 841, 841, 841, 845, 845, 846, 846, 846, 845, 845, 846, 853, 853, 855, 856, 861, 863, 863, 863, 863, 863, 866, 866, 866, 876, 877, 881, 883, 883, 883, 881, 881, 881, 895, 895, 895, 895, 897, 901, 906, 906, 907, 909, 917, 920, 921, 926, 931, 933, 933, 937, 938, 938, 940, 944, 948, 948, 948, 948, 959, 963, 964, 964, 972, 974, 975, 978, 978, 980, 981, 993, 994, 1002, 1002, 1005, 1005, 1008, 1009, 1011, 1012, 1023, 1035, 1039, 1039, 1044, 1044, 1054, 1054, 1063, 1063, 1063, 1068, 1069, 1082, 1085, 1085, 1085, 1094, 1105, 1118, 1128, 1128, 1134, 1134, 1135, 1150, 1155, 1155, 1165, 1169, 1169, 1170, 1198, 1206, 1206, 1205, 1205, 1205, 1232, 1232, 1232, 1241, 1241, 1249, 1267, 1269, 1274, 1286, 1288, 1315, 1315, 1326, 1326, 1341, 1342, 1347, 1354, 1356, 1366, 1374, 1408, 1408, 1419, 1420, 1426, 1450, 1450, 1456, 1456, 1479, 1488, 1494, 1502, 1513, 1523, 1543, 1545, 1545, 1556, 1569, 1592, 1593, 1604, 1631, 1639, 1660, 1665, 1678, 1691, 1701, 1739, 1739, 1739, 1750, 1767, 1778, 1794, 1804, 1806, 1817, 1824, 1850, 1866, 1875, 1905, 1914, 1919, 1930, 1930, 1947, 1991, 1996, 2000, 2033, 2046, 2071, 2071, 2073, 2083, 2136, 2150, 2163, 2181, 2183, 2202, 2227, 2237, 2244, 2254, 2312, 2312, 2350, 2360, 2389, 2391, 2391, 2450, 2477, 2481, 2519, 2527, 2558, 2593, 2597, 2635, 2663, 2673, 2704, 2709, 2774, 2777, 2812, 2828, 2886, 2903, 2927, 2939, 2990, 3064, 3069, 3071, 3117, 3153, 3197, 3244, 3261, 3284, 3325, 3363, 3423, 3468, 3486, 3500, 3551, 3596, 3627, 3682, 3692, 3719, 3780, 3785, 3850, 3907, 3913, 3970, 4009, 4061, 4121, 4180, 4180, 4199, 4199, 4259, 4339, 4378, 4404, 4423, 4516, 4542, 4580, 4582, 4686, 4704, 4773, 4775, 4849, 4892, 4944, 4964, 5008, 5118, 5128, 5168, 5175, 5267, 5356, 5358, 5420, 5489, 5529, 5562, 5618, 5672, 5727, 5789, 5813, 5872, 5941, 5971, 6009, 6097, 6098, 6263, 6269, 6346, 6408, 6431, 6450, 6616, 7069, 7069, 7069, 6952, 6952, 6952, 6987, 7055, 7114, 7231, 7242, 7296, 7309, 7366, 7538, 7577, 7629, 7706, 7784, 7810, 7864, 7942, 7963, 8077, 8195, 8280, 8353, 8418, 8424, 8516, 8563, 8692, 8769, 8856, 8929, 9014, 9063, 9122, 9138, 9282, 9387, 9455, 9564, 9631, 9709, 9851, 9852, 9905, 10031, 10156, 10228, 10330, 10381, 10451, 10606, 10647, 10661, 10878, 10886, 11042, 11177, 11279, 11291, 11403, 11488, 11617, 11714, 11869, 11955, 12029, 12089, 12288, 12338, 12414, 12526, 12678, 12708, 12790, 12950, 13142, 13240, 13256, 13403, 13556, 13563, 13719, 13911, 13964, 14027, 14112, 14255, 14419, 828, 828, 851, 851, 826, 826, 826, 825, 825, 825, 829, 829, 829, 829, 818, 818, 818, 818, 820, 820, 820, 820, 818, 817, 817, 817, 816, 816, 816, 824, 824, 823, 823, 823, 823, 821, 818, 818, 818, 818, 818, 817, 813, 813, 813, 813, 813, 815, 815, 815, 815, 814, 812, 808, 808, 808, 812, 812, 812, 812, 807, 807, 807, 807, 808, 808, 808, 808, 808, 808, 815, 830, 830, 814, 806, 804, 800, 800, 799, 799, 799, 799, 809, 809, 809, 806, 806, 806, 806, 808, 808, 808, 807, 800, 800, 800, 802, 805, 805, 805, 805, 804, 804, 804, 804, 808, 811, 811, 810, 810, 810, 810, 810, 810, 812, 813, 812, 812, 812, 812, 811, 811, 811, 811, 811, 817, 819, 819, 817, 813, 812, 812, 813, 814, 814, 814, 814, 815, 816, 817, 817, 817, 817, 817, 817, 817, 817, 819, 819, 819, 819, 813, 813, 813, 816, 821, 821, 821, 819, 819, 819, 819, 819, 816, 816, 816, 819, 820, 820, 822, 826, 826, 827, 827, 827, 828, 828, 828, 826, 826, 826, 826, 832, 832, 832, 831, 821, 821, 830, 830, 830, 828, 827, 826, 826, 826, 833, 833, 833, 833, 838, 838, 840, 846, 846, 844, 833, 833, 828, 828, 828, 833, 835, 836, 836, 836, 836, 834, 834, 834, 834, 839, 839, 840, 840, 840, 843, 843, 843, 842, 842, 842, 842, 846, 846, 846, 846, 836, 836, 836, 836, 837, 837, 837, 837, 837, 837, 837, 843, 847, 848, 848, 848, 848, 848, 848, 848, 849, 854, 854, 854, 852, 848, 848, 848, 849, 855, 855, 855, 854, 852, 848, 848, 848, 850, 850, 850, 850, 852, 852, 854, 854, 854, 854, 854, 854, 856, 856, 856, 859, 859, 859, 859, 859, 851, 851, 851, 851, 860, 865, 865, 865, 865, 858, 858, 859, 862, 862, 862, 863, 863, 863, 853, 853, 853, 853, 862, 862, 862, 862, 862, 864, 867, 867, 866, 866, 866, 865, 865, 865, 867, 867, 867, 875, 1101, 1101, 869, 869, 867, 867, 861, 861, 863, 868, 870, 872, 872, 872, 876, 876, 876, 876, 878, 878, 878, 875, 875, 875, 875, 879, 880, 880, 880, 880, 880, 875, 875, 875, 873, 873, 885, 885, 885, 885, 885, 885, 885, 885, 888, 888, 888, 888, 881, 881, 881, 884, 891, 894, 908, 908, 897, 897, 897, 897, 897, 897, 896, 896, 898, 898, 898, 899, 899, 899, 896, 896, 896, 898, 906, 906, 906, 910, 915, 915, 915, 913, 911, 911, 913, 917, 917, 917, 918, 918, 918, 918, 919, 919, 919, 925, 926, 926, 926, 928, 928, 928, 928, 924, 924, 924, 926, 939, 939, 933, 931, 931, 931, 932, 934, 938, 940, 940, 940, 940, 940, 945, 945, 945, 945, 945, 945, 949, 949, 949, 949, 949, 949, 950, 955, 965, 965, 965, 965, 965, 960, 960, 960, 971, 971, 971, 963, 963, 963, 965, 965, 966, 966, 966, 966, 968, 971, 973, 973, 972, 968, 968, 968, 979, 979, 978, 978, 978, 978, 987, 987, 989, 989, 989, 983, 983, 983, 983, 984, 984, 985, 985, 989, 994, 997, 998, 998, 998, 1005, 1005, 1005, 1003, 1003, 1003, 1006, 1006, 1006, 1010, 1012, 1012, 1013, 1013, 1015, 1015, 1015, 1015, 1019, 1024, 1024, 1025, 1028, 1032, 1032, 1032, 1032, 1032, 1033, 1033, 1033, 1038, 1047, 1047, 1046, 1047, 1047, 1047, 1052, 1052, 1056, 1056, 1056, 1056, 1056, 1056, 1075, 1075, 1075, 1074, 1074, 1074, 1084, 1084, 1090, 1090, 1090, 1089, 1089, 1089, 1093, 1101, 1132, 1132, 1109, 1109, 1109, 1147, 1147, 1146, 1112, 1112, 1112, 1119, 1130, 1132, 1132, 1136, 1134, 1142, 1142, 1142, 1142, 1144, 1160, 1160, 1164, 1172, 1172, 1172, 1165, 1164, 1173, 1177, 1180, 1180, 1186, 1197, 1197, 1202, 1202, 1214, 1214, 1218, 1228, 1228, 1229, 1229, 1230, 1240, 1245, 1258, 1289, 1293, 1293, 1293, 1293, 1289, 1289, 1289, 1289, 1292, 1298, 1310, 1310, 1317, 1324, 1338, 1342, 1342, 1346, 1346, 1355, 1355, 1374, 1374, 1374, 1387, 1389, 1405, 1405, 1405, 1429, 1431, 1440, 1440, 1440, 1459, 1471, 1475, 1482, 1486, 1489, 1502, 1529, 1529, 1529, 1542, 1634, 1634, 1589, 1589, 1589, 1589, 1603, 1609, 1620, 1633, 1644, 1644, 1670, 1673, 1695, 1696, 1704, 1704, 1731, 1733, 1763, 1763, 1777, 1787, 1791, 1809, 1814, 1828, 1858, 1859, 1877, 1893, 1898, 1900, 1917, 1933, 1969, 1970, 1990, 1992, 2027, 2055, 2111, 2114, 2114, 2114, 2114, 2114, 2147, 2159, 2163, 2189, 2189, 2219, 2242, 2256, 2284, 2288, 2301, 2356, 2367, 2389, 2441, 2441, 2453, 2453, 2478, 2490, 2519, 2533, 2567, 2583, 2589, 2630, 2644, 2645, 2674, 2733, 2748, 2772, 2780, 2812, 2872, 2877, 2894, 2932, 2944, 2964, 2993, 3040, 3096, 3113, 3125, 3130, 3161, 3204, 3217, 3275, 3307, 3317, 3352, 3382, 3400, 3464, 3498, 3508, 3558, 3586, 3590, 3637, 3672, 3742, 3821, 3821, 3833, 3833, 3895, 3924, 3928, 3989, 4025, 4058, 4112, 4143, 4153, 4202, 4251, 4288, 4355, 4394, 4394, 4462, 4469, 4471, 4536, 4592, 4645, 4701, 4731, 4797, 4806, 4888, 4915, 4943, 4977, 5057, 5102, 5161, 5223, 5255, 5292, 5386, 5399, 5505, 5534, 5615, 5674, 5741, 5762, 5856, 5920, 6016, 6049, 6124, 6200, 6296, 6307, 6417, 6476, 6581, 6711, 6733, 6831, 6890, 6921, 7033, 7180, 7234, 7295, 7372, 7478, 7593, 7718, 7752, 7886, 7968, 8047, 8084, 8253, 8307, 8386, 8445, 8500, 8652, 8776, 8816, 8949, 9010, 9118, 9198, 9329, 9394, 9527, 9614, 9666, 9797, 9875, 9983, 10008, 10197, 10270, 10428, 10503, 10672, 10681, 10821, 10940, 11021, 11157, 11186, 11416, 11501, 11560, 11756, 11768, 11907, 12090, 12233, 12242, 12459, 12513, 12606, 12863, 12863, 12959, 13173, 13233, 13316, 13502, 13593, 13704, 13790, 13963, 14031, 14263, 14380, 14504, 14684, 14778, 15165, 15165, 15301, 15466, 15474, 15719, 15775, 15929, 15991, 16132, 16339, 16516, 16732, 16898, 16914, 17090, 17178, 17284, 17664, 17755, 17893, 18094, 18227, 18344, 18474, 18650, 18733, 19017, 19122, 19352, 19459, 19711, 19818, 19932, 20133, 20253, 20571, 20693, 20915, 21093, 21157, 21249, 21437, 21640, 21852, 22113, 22635, 22748, 22748, 22823, 22868, 23171, 23470, 23651, 23827, 24001, 24257, 24399, 24566, 24845, 25078, 25414, 25582, 25787, 25913, 26151, 26376, 26543, 26767, 26968, 27204, 27457, 27670, 27859, 28141, 28388, 28439, 28752, 29112, 29291, 29522, 29819, 30054, 30322, 30510, 30797, 30962, 31063, 31353, 31610, 31912, 32174, 32509, 32750, 33016, 1128, 1110, 1100, 1100, 1095, 1095, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1092, 1092, 1092, 1092, 1091, 1078, 1077, 1077, 1082, 1082, 1082, 1078, 1078, 1078, 1080, 1080, 1080, 1080, 1080, 1078, 1079, 1077, 1077, 1074, 1068, 1068, 1068, 1086, 1102, 1102, 1081, 1068, 1068, 1068, 1068, 1073, 1147, 1167, 1167, 1095, 1059, 1057, 1057, 1057, 1060, 1060, 1060, 1060, 1057, 1053, 1053, 1053, 1051, 1051, 1051, 1051, 1049, 1049, 1049, 1049, 1047, 1047, 1047, 1047, 1045, 1045, 1045, 1045, 1044, 1044, 1044, 1044, 1048, 1048, 1048, 1043, 1043, 1043, 1041, 1041, 1041, 1041, 1045, 1049, 1051, 1051, 1050, 1050, 1046, 1042, 1041, 1041, 1041, 1041, 1047, 1047, 1047, 1047, 1047, 1056, 1057, 1057, 1057, 1057, 1057, 1048, 1048, 1060, 1060, 1048, 1048, 1056, 1059, 1059, 1059, 1059, 1065, 1065, 1065, 1065, 1062, 1062, 1062, 1062, 1062, 1062, 1063, 1063, 1063, 1063, 1062, 1062, 1062, 1062, 1066, 1067, 1070, 1070, 1074, 1074, 1074, 1070, 1070, 1070, 1077, 1081, 1081, 1081, 1081, 1077, 1077, 1077, 1083, 1083, 1084, 1084, 1084, 1080, 1080, 1080, 1086, 1090, 1090, 1090, 1090, 1090, 1091, 1091, 1093, 1093, 1093, 1092, 1090, 1090, 1090, 1100, 1101, 1101, 1101, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1100, 1103, 1108, 1110, 1110, 1107, 1107, 1107, 1107, 1111, 1111, 1111, 1112, 1112, 1109, 1105, 1105, 1107, 1111, 1115, 1115, 1115, 1115, 1119, 1119, 1119, 1119, 1116, 1113, 1113, 1116, 1124, 1126, 1129, 1129, 1129, 1129, 1129, 1129, 1122, 1122, 1122, 1120, 1120, 1120, 1129, 1130, 1130, 1130, 1137, 1137, 1127, 1127, 1129, 1130, 1136, 1141, 1141, 1141, 1142, 1142, 1142, 1141, 1140, 1140, 1138, 1138, 1138, 1138, 1138, 1144, 1144, 1144, 1144, 1150, 1150, 1147, 1146, 1146, 1146, 1146, 1152, 1158, 1158, 1158, 1158, 1158, 1158, 1156, 1156, 1156, 1156, 1154, 1154, 1154, 1159, 1162, 1162, 1162, 1162, 1162, 1159, 1159, 1156, 1156, 1156, 1162, 1162, 1162, 1162, 1166, 1172, 1172, 1172, 1171, 1169, 1169, 1170, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1175, 1175, 1175, 1175, 1176, 1176, 1177, 1177, 1177, 1177, 1177, 1178, 1178, 1178, 1179, 1180, 1180, 1180, 1180, 1180, 1183, 1187, 1187, 1187, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1198, 1198, 1198, 1200, 1204, 1204, 1200, 1199, 1199, 1199, 1199, 1206, 1206, 1206, 1206, 1208, 1208, 1208, 1212, 1220, 1230, 1230, 1210, 1210, 1210, 1210, 1216, 1216, 1216, 1216, 1216, 1221, 1224, 1224, 1224, 1227, 1231, 1231, 1231, 1231, 1231, 1233, 1233, 1234, 1239, 1239, 1243, 1250, 1251, 1251, 1255, 1255, 1255, 1255, 1257, 1258, 1259, 1259, 1259, 1275, 1275, 1275, 1273, 1269, 1269, 1269, 1269, 1278, 1280, 1282, 1282, 1282, 1299, 1299, 1299, 1299, 1296, 1296, 1296, 1296, 1308, 1308, 1313, 1314, 1318, 1318, 1318, 1319, 1319, 1319, 1317, 1315, 1315, 1316, 1316, 1316, 1320, 1320, 1320, 1320, 1342, 1342, 1340, 1340, 1341, 1343, 1345, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1367, 1373, 1373, 1376, 1376, 1376, 1376, 1378, 1380, 1385, 1385, 1385, 1385, 1398, 1398, 1400, 1400, 1400, 1400, 1400, 1400, 1398, 1394, 1394, 1399, 1414, 1428, 1428, 1436, 1436, 1436, 1436, 1436, 1438, 1441, 1441, 1448, 1448, 1455, 1458, 1458, 1458, 1458, 1458, 1461, 1463, 1474, 1474, 1474, 1474, 1474, 1484, 1492, 1492, 1492, 1495, 1501, 1505, 1505, 1505, 1505, 1505, 1505, 1513, 1514, 1516, 1527, 1529, 1543, 1547, 1551, 1551, 1551, 1562, 1562, 1562, 1571, 1573, 1574, 1580, 1586, 1588, 1588, 1594, 1595, 1608, 1610, 1612, 1626, 1627, 1629, 1629, 1629, 1629, 1646, 1646, 1655, 1666, 1666, 1671, 1674, 1683, 1683, 1683, 1683, 1698, 1704, 1705, 1709, 1710, 1710, 1737, 1741, 1741, 1752, 1759, 1760, 1768, 1787, 1793, 1797, 1797, 1817, 1818, 1819, 1822, 1837, 1845, 1850, 1850, 1850, 1880, 1887, 1891, 1900, 1900, 1903, 1908, 1923, 1931, 1948, 1955, 1973, 1992, 1993, 1995, 2001, 2001, 2034, 2047, 2076, 2083, 2083, 2089, 2094, 2100, 2130, 2160, 2160, 2184, 2184, 2184, 2204, 2205, 2205, 2218, 2247, 2261, 2269, 2273, 2306, 2317, 2319, 2338, 2371, 2388, 2394, 2402, 2421, 2438, 2467, 2467, 2486, 2517, 2547, 2549, 2555, 2567, 2612, 2612, 2627, 2627, 2668, 2705, 2722, 2729, 2742, 2769, 2783, 2822, 2831, 2869, 2871, 2896, 2916, 2934, 2993, 3010, 3013, 3054, 3082, 3090, 3125, 3152, 3187, 3210, 3224, 3236, 3251, 3298, 3320, 3363, 3395, 3424, 3460, 3483, 3534, 3549, 3566, 3634, 3675, 3705, 3734, 3746, 3776, 3805, 3830, 3881, 3893, 3956, 3973, 4027, 4028, 4121, 4165, 4207, 4221, 4243, 4310, 4369, 4379, 4439, 4488, 4546, 4573, 4580, 4611, 4684, 4775, 4776, 4841, 4877, 4949, 4991, 5054, 5086, 5129, 5183, 5231, 5295, 5340, 5393, 5469, 5480, 5575, 5638, 5683, 5741, 5765, 5855, 5895, 5975, 6025, 6159, 6175, 6259, 6288, 6375, 6395, 6509, 6589, 6593, 6704, 6796, 6840, 6913, 6977, 7039, 7108, 7186, 7272, 7357, 7388, 7520, 7557, 7651, 7752, 7818, 7901, 7964, 8227, 8227, 8313, 8313, 8417, 8477, 8528, 8666, 8742, 8826, 8862, 8996, 9037, 9077, 9235, 9280, 9442, 9460, 9546, 9631, 9748, 9850, 9960, 10005, 10197, 10335, 10428, 10428, 10579, 10679, 10706, 10915, 10971, 11087, 11184, 11268, 11464, 11544, 11725, 11815, 11950, 12013, 12213, 12318, 12458, 12648, 12785, 12867, 13057, 13207, 13362, 13443, 13609, 13809, 13969, 14212, 14375, 14566, 14706, 14982, 15115, 15282, 15522, 15700, 15973, 16113, 16184, 16534, 16651, 16934, 17006, 17381, 17564, 17695, 17900, 18103, 18362, 18561, 18755, 18864, 19122, 19394, 19530, 19789, 19984, 20250, 20374, 20496, 20701, 21017, 21314, 21380, 21688, 21825, 22053, 22280, 22553, 22765, 23048, 23203, 23451, 23612, 23841, 24163, 24402, 24675, 24849, 25240, 25436, 25568, 25897, 26159, 26484, 26630, 26894, 27079, 27406, 27556, 27878, 28136, 28399, 28706, 28864, 29164, 29377, 29671, 30071, 30297, 30594, 30905, 31124, 31395, 31604, 31858, 32236, 32624, 33033, 33260, 33459, 33678, 33919, 34317, 34633, 35133, 35387, 35758, 35896, 36141, 36499, 36908, 37266, 37794, 38078, 38166, 38513, 38817, 39220, 39698, 40054, 40420, 40750, 40964, 41240, 41606, 41927, 42415, 42612, 43225, 43456, 43794, 44030, 44334, 44829, 45115, 45537, 46061, 46667, 46836, 47302, 47406, 47690, 48030, 48588, 48888, 50178, 50184, 50548, 50664, 51076, 51283, 51911, 52389, 52911, 53395, 53808, 53994, 54470, 54877, 55414, 55813, 56408, 57003, 57484, 57835, 58209, 58802, 59002, 59588, 60062, 60470, 61322, 61640, 61998, 62586, 62926, 63174, 63589, 63756, 64176, 64529, 64657, 64657, 64806, 64933, 65028, 65219, 65254, 65254, 65257, 65257, 65261, 65261, 65261, 65261, 1612, 1600, 1594, 1592, 1591, 1591, 1591, 1589, 1581, 1581, 1575, 1575, 1567, 1566, 1566, 1557, 1557, 1557, 1557, 1558, 1564, 1564, 1562, 1560, 1558, 1557, 1553, 1553, 1549, 1549, 1549, 1549, 1551, 1551, 1535, 1535, 1534, 1534, 1534, 1525, 1525, 1525, 1525, 1525, 1525, 1523, 1523, 1523, 1523, 1523, 1524, 1526, 1526, 1526, 1535, 1535, 1518, 1517, 1508, 1503, 1503, 1503, 1505, 1505, 1507, 1507, 1507, 1507, 1507, 1507, 1501, 1501, 1501, 1501, 1505, 1505, 1679, 1679, 1679, 1482, 1482, 1482, 1487, 1487, 1490, 1490, 1490, 1497, 1497, 1496, 1496, 1498, 1499, 1499, 1499, 1501, 1501, 1498, 1491, 1488, 1488, 1488, 1488, 1488, 1488, 1489, 1493, 1493, 1493, 1493, 1493, 1493, 1502, 1503, 1503, 1503, 1506, 1506, 1489, 1489, 1489, 1496, 1509, 1515, 1515, 1511, 1509, 1505, 1503, 1503, 1512, 1519, 1519, 1519, 1519, 1521, 1521, 1521, 1522, 1523, 1523, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1532, 1534, 1534, 1534, 1534, 1534, 1545, 1545, 1545, 1545, 1547, 1562, 1562, 1562, 1562, 1562, 1555, 1553, 1553, 1553, 1558, 1569, 1569, 1569, 1569, 1566, 1566, 1559, 1559, 1571, 1571, 1571, 1571, 1574, 1588, 1590, 1607, 1607, 1607, 1583, 1583, 1583, 1583, 1592, 1610, 1611, 1692, 1692, 1642, 1618, 1616, 1603, 1601, 1601, 1601, 1601, 1610, 1610, 1613, 1613, 1610, 1610, 1617, 1617, 1614, 1614, 1625, 1625, 1625, 1622, 1622, 1622, 1619, 1619, 1619, 1619, 1620, 1620, 1627, 1641, 1641, 1641, 1638, 1635, 1625, 1620, 1620, 1626, 1637, 1637, 1649, 1649, 1649, 1646, 1646, 1644, 1644, 1647, 1654, 1659, 1660, 1660, 1660, 1654, 1654, 1654, 1660, 1660, 1662, 1662, 1664, 1664, 1670, 1670, 1670, 1670, 1669, 1669, 1669, 1670, 1670, 1676, 1676, 1678, 1685, 1685, 1686, 1687, 1688, 1688, 1688, 1688, 1683, 1681, 1681, 1683, 1687, 1690, 1690, 1690, 1690, 1695, 1695, 1697, 1699, 1699, 1708, 1708, 1708, 1712, 1731, 1733, 1731, 1727, 1723, 1723, 1719, 1719, 1719, 1722, 1722, 1722, 1721, 1721, 1715, 1715, 1715, 1718, 1732, 1736, 1736, 1745, 1745, 1745, 1744, 1744, 1740, 1732, 1732, 1732, 1732, 1741, 1744, 1750, 1750, 1747, 1747, 1747, 1747, 1744, 1744, 1744, 1748, 1766, 1770, 1770, 1770, 1763, 1758, 1758, 1758, 1770, 1780, 1780, 1780, 1780, 1776, 1776, 1776, 1776, 1776, 1782, 1782, 1783, 1783, 1785, 1785, 1784, 1780, 1780, 1787, 1841, 1841, 1837, 1821, 1805, 1805, 1800, 1790, 1790, 1803, 1812, 1818, 1826, 1828, 1828, 1829, 1831, 1833, 1833, 1835, 1839, 1853, 1853, 1835, 1835, 1851, 1855, 1855, 1857, 1859, 1860, 1867, 1867, 1867, 1867, 1870, 1872, 1874, 1890, 1891, 1896, 1897, 1897, 1897, 1897, 1904, 1908, 1922, 1927, 1927, 1927, 1927, 1928, 1936, 1939, 1953, 1953, 1954, 1954, 1954, 1959, 1963, 1964, 1968, 1970, 1975, 1975, 1984, 1989, 1998, 1998, 2002, 2002, 2009, 2009, 2017, 2017, 2017, 2017, 2035, 2035, 2035, 2036, 2036, 2045, 2048, 2057, 2065, 2065, 2065, 2065, 2073, 2084, 2085, 2098, 2114, 2114, 2106, 2106, 2115, 2121, 2124, 2135, 2394, 2394, 2394, 2394, 2334, 2200, 2133, 2133, 2133, 2134, 2162, 2163, 2168, 2168, 2168, 2172, 2172, 2172, 2201, 2207, 2207, 2211, 2211, 2211, 2205, 2205, 2209, 2219, 2245, 2251, 2251, 2251, 2251, 2260, 2260, 2260, 2268, 2279, 2279, 2279, 2279, 2282, 2301, 2308, 2308, 2308, 2329, 2329, 2329, 2329, 2331, 2353, 2353, 2377, 2381, 2391, 2391, 2392, 2392, 2392, 2392, 2396, 2422, 2471, 2569, 2569, 2484, 2483, 2456, 2456, 2456, 2483, 2510, 2510, 2510, 2510, 2513, 2521, 2530, 2535, 2541, 2552, 2554, 2584, 2599, 2601, 2625, 2625, 2625, 2625, 2627, 2631, 2671, 2671, 2674, 2688, 2698, 2707, 2715, 2715, 2749, 2769, 2769, 2774, 2808, 2821, 2821, 2846, 2864, 2864, 2867, 2883, 2908, 2924, 2927, 2927, 2927, 2963, 2994, 2998, 3007, 3019, 3021, 3074, 3074, 3078, 3089, 3108, 3138, 3146, 3167, 3174, 3206, 3237, 3246, 3249, 3271, 3273, 3313, 3326, 3349, 3373, 3378, 3393, 3422, 3457, 3468, 3469, 3505, 3528, 3573, 3592, 3605, 3669, 3672, 3723, 3752, 3754, 3780, 3804, 3810, 3842, 3865, 3906, 3943, 3958, 3983, 4026, 4050, 4081, 4121, 4159, 4191, 4209, 4238, 4300, 4329, 4349, 4359, 4376, 4465, 4503, 4504, 4600, 4603, 4604, 4695, 4722, 4722, 4805, 4826, 4917, 4923, 4972, 4979, 5043, 5082, 5169, 5176, 5211, 5268, 5284, 5381, 5427, 5483, 5510, 5566, 5627, 5692, 5724, 5813, 5854, 5890, 5922, 5979, 6064, 6134, 6151, 6243, 6319, 6337, 6435, 6478, 6517, 6628, 6682, 6737, 6797, 6864, 6902, 7026, 7073, 7136, 7261, 7310, 7389, 7504, 7511, 7644, 7676, 7706, 7824, 7911, 8027, 8134, 8218, 8344, 8445, 8445, 8531, 8534, 8714, 8808, 8890, 9002, 9108, 9133, 9247, 9380, 9454, 9532, 9630, 9705, 10103, 10103, 10103, 10292, 10308, 10432, 10492, 10683, 10828, 10886, 10972, 11147, 11229, 11353, 11491, 11681, 11752, 11852, 12027, 12086, 12286, 12460, 12602, 12729, 12843, 13004, 13036, 13246, 13424, 13532, 13655, 13811, 13981, 14156, 14305, 14475, 14591, 14788, 14898, 15063, 15261, 15429, 15539, 15699, 16022, 16103, 16314, 16427, 16594, 16754, 17032, 17123, 17298, 17562, 17693, 17890, 18096, 18226, 18377, 18727, 18799, 18952, 19130, 19358, 19516, 19705, 19912, 20138, 20361, 20544, 20695, 20936, 21038, 21289, 21641, 21644, 21960, 22132, 22355, 22609, 22783, 23050, 23273, 23539, 23738, 23964, 24221, 24416, 24757, 25005, 25321, 25528, 25688, 26113, 26313, 26520, 26905, 27198, 27465, 27774, 28110, 28380, 28739, 29152, 29540, 29744, 30208, 30434, 30830, 31293, 31650, 32095, 32467, 32884, 33199, 33728, 34005, 34610, 34946, 35440, 35859, 36202, 36692, 37153, 37599, 38125, 38965, 39221, 39366, 39842, 40243, 40769, 41211, 41504, 42094, 42366, 42986, 43377, 43857, 44404, 44910, 45168, 45790, 46247, 46739, 47287, 47598, 48309, 48607, 49150, 49634, 50181, 50567, 51151, 51477, 52065, 52589, 53194, 53579, 54134, 54500, 55071, 55676, 56223, 56767, 57257, 57822, 58460, 58685, 59498, 60025, 60564, 60964, 61466, 62166, 62672, 63139, 63412, 63793, 64132, 64401, 64554, 64697, 64814, 64992, 65107, 65222, 65232, 65263, 65263, 65263, 65272, 65276, 65276, 65276, 65276, 65276, 65276, 65288, 65288, 65288, 65288, 65289, 65290, 65290, 65313, 65315, 65315, 65322, 65322, 65322, 65324, 65329, 65329, 65329, 65329, 65329, 65329, 65329, 65343, 65344, 65344, 65344, 65344, 65343, 65343, 65343, 65342, 65342, 65346, 65356, 65356, 65356, 65356, 65356, 65356, 65356, 65352, 65351, 65348, 65348, 65348, 65348, 65348, 65340, 65340, 65340, 65309, 65300, 65293, 65293, 65293, 65293, 65306, 65319, 65323, 65327, 65340, 65340, 65338, 65338, 65338, 65304, 65304, 65299, 65299, 65299, 65291, 65291, 65291, 65291, 65291, 65291, 65285, 65282, 65280, 65280, 65280, 65272, 65272, 65275, 65283, 65287, 65287, 65282, 65267, 65267, 65267, 2490, 2490, 2490, 2490, 2490, 2479, 2467, 2462, 2459, 2458, 2444, 2444, 2444, 2437, 2437, 2436, 2434, 2421, 2421, 2421, 2421, 2414, 2406, 2406, 2401, 2401, 2401, 2386, 2386, 2386, 2387, 2387, 2387, 2377, 2364, 2364, 2364, 2361, 2361, 2358, 2348, 2348, 2354, 2354, 2354, 2354, 2340, 2340, 2340, 2333, 2322, 2322, 2322, 2328, 2328, 2328, 2318, 2313, 2313, 2313, 2313, 2307, 2307, 2307, 2307, 2307, 2307, 2297, 2297, 2297, 2297, 2297, 2281, 2281, 2282, 2288, 2288, 2288, 2288, 2288, 2289, 2290, 2294, 2298, 2296, 2285, 2278, 2278, 2278, 2278, 2282, 2282, 2283, 2283, 2292, 2292, 2292, 2292, 2292, 2306, 2306, 2306, 2306, 2298, 2298, 2298, 2318, 2318, 2318, 2318, 2321, 2321, 2321, 2321, 2316, 2316, 2316, 2324, 2324, 2324, 2324, 2320, 2320, 2323, 2332, 2336, 2338, 2338, 2343, 2344, 2344, 2344, 2341, 2341, 2341, 2347, 2347, 2347, 2353, 2353, 2365, 2365, 2372, 2381, 2381, 2386, 2392, 2392, 2388, 2381, 2374, 2374, 2382, 2386, 2390, 2390, 2394, 2397, 2397, 2397, 2405, 2411, 2415, 2419, 2419, 2417, 2416, 2416, 2416, 2416, 2416, 2419, 2427, 2427, 2435, 2435, 2435, 2438, 2439, 2454, 2455, 2455, 2455, 2455, 2455, 2458, 2464, 2465, 2468, 2470, 2470, 2470, 2489, 2491, 2499, 2499, 2499, 2499, 2499, 2496, 2496, 2496, 2504, 2504, 2504, 2507, 2507, 2507, 2521, 2521, 2521, 2520, 2520, 2520, 2524, 2539, 2539, 2539, 2539, 2536, 2535, 2534, 2534, 2534, 2542, 2542, 2542, 2560, 2560, 2560, 2560, 2560, 2560, 2557, 2557, 2558, 2558, 2565, 2565, 2584, 2584, 2584, 2586, 2589, 2598, 2598, 2608, 2608, 2608, 2608, 2608, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2618, 2624, 2624, 2626, 2640, 2644, 2637, 2637, 2637, 2637, 2637, 2645, 2645, 2656, 2656, 2656, 2658, 2675, 2694, 2694, 2677, 2677, 2677, 2677, 2681, 2681, 2681, 2697, 2697, 2697, 2685, 2685, 2685, 2698, 2702, 2702, 2700, 2697, 2697, 2703, 2703, 2704, 2711, 2711, 2711, 2711, 2717, 2717, 2719, 2719, 2719, 2727, 2731, 2756, 2756, 2756, 2758, 2759, 2760, 2760, 2760, 2760, 2759, 2757, 2757, 2757, 2757, 2757, 2757, 2769, 2769, 2769, 2769, 2773, 2773, 2773, 2773, 2772, 2772, 2781, 2830, 2920, 2920, 2835, 2791, 2791, 2791, 2791, 2807, 2814, 2814, 2829, 2832, 2832, 2832, 2832, 2832, 2839, 2839, 2834, 2833, 2833, 2833, 2835, 2839, 2840, 2849, 2861, 2861, 2861, 2861, 2864, 2866, 2868, 2870, 2873, 2873, 2890, 2890, 2898, 2904, 2904, 2904, 2915, 2928, 2928, 2929, 2929, 2941, 2941, 2941, 2941, 2951, 2966, 2966, 2978, 2986, 2986, 2987, 3001, 3015, 3018, 3024, 3026, 3023, 3028, 3031, 3035, 3056, 3060, 3060, 3073, 3082, 3082, 3092, 3106, 3106, 3111, 3111, 3114, 3136, 3138, 3139, 3141, 3141, 3141, 3149, 3181, 3181, 3181, 3181, 3188, 3191, 3213, 3213, 3213, 3230, 3231, 3231, 3248, 3260, 3271, 3279, 3293, 3303, 3303, 3303, 3303, 3303, 3303, 3328, 3350, 3354, 3378, 3378, 3387, 3387, 3387, 3391, 3387, 3397, 3420, 3424, 3424, 3428, 3428, 3434, 3463, 3466, 3474, 3482, 3504, 3505, 3505, 3516, 3516, 3527, 3556, 3561, 3563, 3568, 3577, 3577, 3590, 3598, 3622, 3622, 3625, 3626, 3626, 3626, 3645, 3651, 3657, 3678, 3691, 3691, 3703, 3703, 3714, 3743, 3763, 3763, 3783, 3783, 3791, 3798, 3798, 3798, 3824, 3844, 3851, 3872, 3897, 3897, 3897, 3919, 3930, 3951, 3951, 3973, 3984, 3989, 3998, 4002, 4027, 4037, 4058, 4067, 4086, 4092, 4092, 4092, 4161, 4161, 4172, 4173, 4196, 4211, 4222, 4231, 4236, 4281, 4284, 4314, 4314, 4314, 4378, 4378, 4386, 4437, 4442, 4446, 4446, 4488, 4520, 4532, 4532, 4549, 4578, 4642, 4644, 4701, 4703, 4703, 4727, 4737, 4778, 4807, 4828, 4840, 4897, 4897, 4904, 4947, 4986, 5008, 5029, 5064, 5089, 5134, 5164, 5191, 5229, 5239, 5260, 5283, 5323, 5371, 5377, 5458, 5467, 5503, 5528, 5537, 5601, 5647, 5654, 5702, 5741, 5794, 5823, 5860, 5912, 5936, 5964, 6014, 6032, 6072, 6197, 6202, 6252, 6253, 6372, 6377, 6398, 6436, 6505, 6589, 6606, 6667, 6721, 6781, 6805, 6884, 6971, 6980, 7004, 7111, 7154, 7211, 7273, 7330, 7435, 7466, 7471, 7574, 7683, 7747, 7844, 7849, 7978, 8029, 8086, 8253, 8286, 8333, 8385, 8438, 8520, 8628, 8684, 8773, 8871, 8983, 9084, 9105, 9311, 9336, 9429, 9472, 9605, 9679, 9810, 9897, 9999, 10098, 10150, 10297, 10379, 10498, 10551, 10671, 10762, 10855, 10958, 11097, 11193, 11350, 11502, 11598, 11631, 11774, 11944, 12038, 12194, 12400, 12428, 12497, 12737, 12848, 13018, 13134, 13296, 13437, 13526, 13691, 13809, 13966, 14194, 14257, 14494, 14567, 14801, 14939, 15133, 15246, 15478, 15630, 15798, 15986, 16134, 16301, 16421, 16669, 16824, 17088, 17147, 17444, 17543, 17879, 17963, 18191, 18363, 18583, 18845, 19035, 19358, 19481, 19537, 19886, 20130, 20298, 20483, 20704, 21015, 21171, 21444, 21706, 21898, 22217, 22430, 22750, 22790, 23182, 23441, 23636, 24008, 24203, 24524, 24673, 24978, 25313, 25577, 25903, 26164, 26439, 26760, 27086, 27405, 27597, 27949, 28235, 28592, 28976, 29202, 29604, 29773, 30281, 30597, 30948, 31278, 31723, 31955, 32216, 32669, 32898, 33389, 33640, 34041, 34427, 34774, 35090, 35514, 35996, 36294, 36638, 37095, 37522, 37896, 38233, 38640, 39166, 39514, 39839, 40286, 40672, 41168, 41389, 42008, 42402, 42775, 43174, 43694, 43922, 44395, 44941, 45259, 45723, 46030, 46650, 47005, 47413, 47898, 48267, 48766, 49446, 49841, 50379, 50871, 51408, 51925, 52436, 52930, 53531, 54116, 54569, 55124, 55753, 56387, 56805, 57517, 57972, 58530, 59556, 59838, 60826, 61274, 62094, 62702, 63330, 63657, 64007, 64512, 64687, 64868, 65072, 65276, 65281, 65288, 65302, 65303, 65303, 65303, 65303, 65310, 65314, 65319, 65320, 65320, 65330, 65346, 65346, 65346, 65346, 65345, 65336, 65336, 65356, 65359, 65359, 65359, 65367, 65367, 65375, 65375, 65375, 65375, 65371, 65371, 65371, 65389, 65389, 65389, 65389, 65378, 65378, 65368, 65366, 65366, 65366, 65357, 65349, 65346, 65314, 65311, 65311, 65313, 65314, 65322, 65355, 65361, 65361, 65342, 65342, 65342, 65336, 65309, 65309, 65308, 65298, 65285, 65273, 65273, 65273, 65273, 65273, 65273, 65275, 65275, 65277, 65288, 65292, 65292, 65282, 65278, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65268, 65277, 65277, 65286, 65286, 65286, 65271, 65271, 65271, 65282, 65282, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65300, 65300, 65300, 65300, 65285, 65285, 65285, 65285, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65281, 65281, 65281, 65281, 65281, 65281, 65294, 65294, 65294, 65294, 65294, 65294, 65292, 65292, 65292, 65292, 65280, 65275, 65275, 65275, 65283, 65283, 65283, 65301, 65301, 65301, 65301, 65298, 65293, 65293, 65293, 65291, 65291, 65291, 65292, 65292, 65292, 65292, 65316, 65316, 65290, 65288, 65288, 65288, 4157, 4056, 3990, 3990, 3990, 3994, 3994, 3994, 3951, 3942, 3938, 3924, 3924, 3924, 3915, 3915, 3905, 3905, 3905, 3888, 3878, 3877, 3877, 3872, 3861, 3861, 3850, 3832, 3826, 3824, 3824, 3827, 3827, 3822, 3822, 3822, 3798, 3798, 3790, 3776, 3776, 3776, 3776, 3783, 3783, 3776, 3776, 3776, 3776, 3765, 3765, 3756, 3747, 3736, 3736, 3736, 3730, 3730, 3730, 3715, 3715, 3715, 3716, 3716, 3716, 3715, 3715, 3699, 3699, 3699, 3699, 3692, 3691, 3691, 3691, 3684, 3684, 3683, 3678, 3678, 3678, 3666, 3662, 3662, 3668, 3673, 3673, 3673, 3673, 3667, 3667, 3667, 3667, 3667, 3676, 3688, 3688, 3688, 3688, 3688, 3688, 3690, 3690, 3690, 3690, 3690, 3690, 3709, 3709, 3709, 3709, 3709, 3709, 3726, 3726, 3726, 3729, 3731, 3738, 3738, 3738, 3751, 3751, 3753, 3762, 3762, 3762, 3762, 3762, 3763, 3763, 3784, 3784, 3786, 3786, 3786, 3786, 3786, 3796, 3796, 3796, 3796, 3796, 3807, 3809, 3821, 3824, 3824, 3824, 3836, 3836, 3836, 3836, 3848, 3868, 3869, 3871, 3871, 3871, 3876, 3876, 3888, 3888, 3888, 3907, 3923, 3936, 3942, 3945, 3946, 3948, 3949, 3948, 3948, 3948, 3948, 3962, 3967, 3967, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 4009, 4024, 4024, 4024, 4024, 4025, 4025, 4025, 4047, 4047, 4043, 4044, 4044, 4046, 4055, 4055, 4068, 4082, 4082, 4082, 4082, 4082, 4098, 4112, 4112, 4106, 4106, 4106, 4110, 4118, 4150, 4150, 4150, 4137, 4137, 4137, 4140, 4157, 4172, 4174, 4174, 4174, 4207, 4207, 4181, 4181, 4181, 4191, 4205, 4209, 4209, 4209, 4209, 4224, 4229, 4232, 4235, 4238, 4244, 4244, 4259, 4259, 4259, 4246, 4246, 4246, 4246, 4262, 4272, 4273, 4274, 4276, 4276, 4276, 4276, 4276, 4295, 4312, 4312, 4312, 4312, 4312, 4302, 4302, 4322, 4322, 4322, 4344, 4349, 4357, 4357, 4359, 4359, 4359, 4378, 4379, 4379, 4379, 4400, 4400, 4400, 4391, 4391, 4391, 4394, 4402, 4417, 4418, 4423, 4423, 4433, 4453, 4453, 4453, 4453, 4453, 4453, 4455, 4456, 4456, 4459, 4477, 4491, 4494, 4494, 4494, 4494, 4494, 4494, 4494, 4516, 4516, 4516, 4515, 4515, 4517, 4517, 4525, 4525, 4545, 4545, 4553, 4553, 4564, 4564, 4567, 4567, 4567, 4572, 4575, 4580, 4580, 4586, 4586, 4586, 4586, 4601, 4603, 4607, 4607, 4626, 4638, 4638, 4638, 4638, 4641, 4654, 4654, 4654, 4654, 4654, 4654, 4654, 4658, 4660, 4660, 4665, 4685, 4685, 4701, 4701, 4702, 4725, 4731, 4734, 4734, 4734, 4736, 4746, 4746, 4746, 4764, 4764, 4769, 4790, 4812, 4812, 4812, 4849, 4849, 4862, 4862, 4863, 4869, 4869, 4873, 4873, 4873, 4873, 4928, 4930, 4930, 4967, 4997, 5015, 5016, 5016, 5036, 5036, 5037, 5063, 5063, 5081, 5115, 5115, 5115, 5115, 5159, 5159, 5159, 5159, 5166, 5207, 5241, 5241, 5254, 5261, 5261, 5266, 5275, 5295, 5325, 5352, 5356, 5350, 5379, 5399, 5409, 5422, 5438, 5459, 5459, 5459, 5465, 5470, 5502, 5525, 5531, 5531, 5560, 5600, 5615, 5622, 5629, 5639, 5639, 5669, 5684, 5710, 5716, 5716, 5716, 5746, 5788, 5792, 5800, 5826, 5826, 5828, 5860, 5882, 5882, 5891, 5894, 5948, 5973, 5973, 5982, 5988, 6001, 6039, 6061, 6062, 6067, 6092, 6101, 6123, 6134, 6164, 6208, 6209, 6209, 6222, 6260, 6290, 6300, 6304, 6316, 6350, 6371, 6403, 6403, 6409, 6450, 6459, 6469, 6497, 6551, 6571, 6578, 6586, 6625, 6648, 6684, 6691, 6703, 6730, 6739, 6806, 6813, 6835, 6842, 6898, 6901, 6957, 6990, 7022, 7037, 7041, 7140, 7168, 7168, 7177, 7192, 7249, 7275, 7313, 7350, 7391, 7391, 7446, 7485, 7510, 7561, 7580, 7613, 7644, 7727, 7740, 7764, 7776, 7818, 7899, 7950, 7979, 8013, 8042, 8112, 8187, 8208, 8223, 8292, 8331, 8485, 8485, 8485, 8526, 8556, 8630, 8691, 8723, 8797, 8827, 8904, 8944, 9036, 9135, 9157, 9183, 9260, 9323, 9365, 9423, 9495, 9604, 9641, 9736, 9815, 9882, 9978, 9992, 10046, 10088, 10223, 10276, 10318, 10415, 10539, 10595, 10659, 10706, 10848, 10933, 11033, 11103, 11170, 11298, 11385, 11397, 11494, 11578, 11777, 11857, 11934, 11997, 12079, 12167, 12368, 12468, 12817, 12817, 12899, 12899, 12993, 13137, 13209, 13369, 13479, 13585, 13713, 13878, 13988, 14172, 14231, 14432, 14536, 14744, 14806, 14946, 15084, 15199, 15365, 15599, 15683, 15959, 15959, 16189, 16342, 16566, 16673, 16813, 17064, 17207, 17436, 17610, 17794, 17998, 18129, 18349, 18525, 18719, 18870, 19121, 19188, 19429, 19720, 19930, 20124, 20326, 20591, 20796, 20950, 21205, 21488, 21620, 21925, 22103, 22377, 22575, 22887, 23129, 23316, 23588, 23754, 24056, 24360, 24560, 24850, 25199, 25481, 25703, 26066, 26302, 26565, 26821, 27123, 27535, 27741, 28071, 28378, 28746, 29262, 29636, 29673, 30049, 30318, 30940, 30996, 31371, 31841, 32091, 32389, 32886, 33236, 33750, 33929, 34422, 34782, 35257, 35578, 36042, 36266, 36787, 37220, 37706, 38095, 38517, 39003, 39302, 39804, 40311, 40692, 41203, 41757, 42033, 42733, 43208, 43559, 44171, 44601, 45060, 45592, 46068, 46681, 47262, 47646, 48184, 48889, 49358, 50060, 50584, 51056, 51621, 52055, 52592, 53377, 54010, 54775, 55973, 55973, 56237, 57175, 57682, 58445, 58992, 59502, 60256, 61042, 61566, 62153, 62801, 63374, 63727, 64104, 64439, 64637, 64868, 64977, 65189, 65281, 65281, 65286, 65291, 65291, 65293, 65298, 65302, 65302, 65318, 65318, 65318, 65318, 65318, 65321, 65321, 65321, 65321, 65321, 65322, 65338, 65338, 65342, 65342, 65343, 65343, 65355, 65359, 65359, 65359, 65365, 65368, 65368, 65368, 65373, 65373, 65373, 65373, 65376, 65376, 65376, 65376, 65376, 65376, 65366, 65366, 65366, 65366, 65366, 65328, 65326, 65326, 65326, 65337, 65341, 65345, 65380, 65380, 65380, 65363, 65340, 65340, 65340, 65301, 65296, 65295, 65290, 65288, 65288, 65284, 65284, 65284, 65284, 65284, 65284, 65271, 65265, 65262, 65262, 65262, 65274, 65274, 65274, 65274, 65266, 65264, 65264, 65264, 65279, 65279, 65279, 65280, 65280, 65280, 65280, 65291, 65291, 65291, 65291, 65286, 65286, 65286, 65286, 65286, 65283, 65283, 65283, 65283, 65283, 65297, 65297, 65297, 65297, 65291, 65268, 65268, 65268, 65282, 65282, 65296, 65296, 65296, 65296, 65296, 65296, 65292, 65292, 65290, 65287, 65287, 65287, 65285, 65284, 65284, 65282, 65271, 65271, 65279, 65285, 65285, 65288, 65299, 65299, 65299, 65299, 65299, 65295, 65290, 65285, 65275, 65275, 65275, 65296, 65296, 65296, 65296, 65296, 65293, 65288, 65278, 65278, 65278, 65278, 65282, 65283, 65283, 65283, 65289, 65289, 65289, 65289, 65291, 65293, 65293, 65294, 65294, 65298, 65299, 65299, 65301, 65303, 65303, 65303, 65302, 65302, 65296, 65289, 65289, 65289, 65289, 65299, 65301, 65296, 65296, 65296, 65296, 65296, 65296, 65313, 65313, 65313, 65301, 65301, 65301, 65301, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65311, 65311, 65311, 65311, 65311, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65307, 65307, 65307, 65298, 65298, 65298, 65298, 65298, 6574, 6438, 6370, 6370, 6364, 6361, 6357, 6342, 6317, 6316, 6276, 6269, 6258, 6253, 6224, 6224, 6224, 6208, 6202, 6169, 6162, 6162, 6162, 6162, 6144, 6123, 6116, 6102, 6097, 6097, 6097, 6097, 6084, 6077, 6062, 6062, 6018, 6017, 6017, 6020, 6020, 6020, 6012, 6012, 6004, 5996, 5985, 5985, 5985, 5957, 5954, 5954, 5954, 5940, 5940, 5940, 5940, 5942, 5942, 5942, 5942, 5942, 5925, 5905, 5905, 5889, 5889, 5883, 5883, 5883, 5883, 5892, 5886, 5868, 5868, 5868, 5856, 5856, 5856, 5856, 5856, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5852, 5852, 5852, 5863, 5881, 5884, 5884, 5885, 5885, 5885, 5894, 5913, 5913, 5913, 5913, 5915, 5917, 5918, 5944, 5944, 5944, 5949, 5949, 5981, 5997, 5981, 5973, 5969, 5958, 5958, 5958, 5959, 6008, 6008, 6008, 6014, 6014, 6020, 6020, 6027, 6027, 6028, 6045, 6045, 6049, 6049, 6049, 6049, 6076, 6076, 6076, 6079, 6079, 6079, 6093, 6094, 6094, 6094, 6156, 6167, 6195, 6195, 6195, 6195, 6195, 6195, 6195, 6218, 6218, 6237, 6237, 6237, 6237, 6253, 6269, 6269, 6282, 6305, 6305, 6305, 6314, 6318, 6318, 6318, 6318, 6337, 6365, 6365, 6365, 6388, 6401, 6420, 6420, 6420, 6420, 6454, 6454, 6454, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6489, 6496, 6520, 6520, 6529, 6547, 6550, 6550, 6550, 6564, 6570, 6596, 6638, 6642, 6634, 6622, 6622, 6641, 6653, 6659, 6662, 6674, 6674, 6674, 6674, 6702, 6702, 6702, 6702, 6702, 6712, 6715, 6715, 6716, 6716, 6716, 6716, 6756, 6756, 6756, 6756, 6759, 6808, 6808, 6808, 6808, 6832, 6838, 6838, 6838, 6838, 6839, 6855, 6855, 6855, 6883, 6885, 6901, 6903, 6905, 6933, 6935, 6939, 6942, 6945, 6942, 6942, 6942, 6942, 6946, 6946, 6946, 6973, 6999, 6999, 6997, 6997, 6997, 6996, 6996, 6996, 7014, 7020, 7028, 7036, 7036, 7075, 7075, 7075, 7075, 7075, 7075, 7078, 7123, 7123, 7143, 7143, 7143, 7143, 7143, 7172, 7172, 7140, 7140, 7153, 7156, 7178, 7198, 7202, 7202, 7214, 7214, 7219, 7219, 7219, 7219, 7219, 7238, 7238, 7238, 7255, 7255, 7255, 7305, 7328, 7328, 7328, 7326, 7326, 7326, 7361, 7361, 7367, 7378, 7385, 7385, 7385, 7385, 7391, 7391, 7391, 7391, 7435, 7435, 7435, 7468, 7468, 7482, 7483, 7483, 7483, 7487, 7487, 7487, 7488, 7489, 7519, 7521, 7521, 7521, 7560, 7570, 7606, 7606, 7606, 7609, 7609, 7609, 7616, 7616, 7634, 7638, 7638, 7670, 7687, 7691, 7715, 7715, 7719, 7733, 7760, 7762, 7762, 7762, 7800, 7820, 7870, 7870, 7870, 7882, 7895, 7895, 7913, 7982, 7982, 7982, 8007, 8024, 8047, 8052, 8078, 8078, 8110, 8110, 8151, 8179, 8187, 8197, 8222, 8247, 8247, 8247, 8349, 8386, 8389, 8389, 8389, 8437, 8447, 8450, 8476, 8510, 8551, 8578, 8610, 8615, 8615, 8615, 8686, 8686, 8749, 8749, 8784, 8809, 8821, 8821, 8902, 8912, 8921, 8950, 8950, 9025, 9025, 9040, 9040, 9110, 9127, 9173, 9187, 9241, 9251, 9290, 9291, 9352, 9359, 9359, 9378, 9419, 9446, 9455, 9499, 9501, 9519, 9587, 9669, 9669, 9669, 9715, 9727, 9802, 9809, 9815, 9880, 9907, 9913, 9979, 9990, 10006, 10091, 10091, 10102, 10102, 10137, 10194, 10229, 10281, 10378, 10378, 10386, 10440, 10473, 10526, 10526, 10559, 10559, 10641, 10688, 10749, 10780, 10823, 10886, 10891, 10915, 10926, 11011, 11057, 11143, 11153, 11193, 11247, 11282, 11308, 11384, 11418, 11522, 11529, 11595, 11643, 11661, 11701, 11728, 11810, 11916, 11981, 11988, 12085, 12115, 12181, 12246, 12294, 12405, 12475, 12525, 12562, 12593, 12725, 12786, 12869, 12891, 12921, 13022, 13182, 13200, 13263, 13291, 13303, 13497, 13530, 13649, 13743, 13859, 13884, 13955, 14050, 14071, 14226, 14306, 14391, 14597, 14604, 14714, 14765, 14921, 14967, 15127, 15264, 15320, 15472, 15564, 15656, 15683, 15892, 15953, 16122, 16313, 16473, 16590, 16723, 16788, 16848, 17116, 17163, 17273, 17449, 17537, 17698, 17813, 18072, 18129, 18332, 18422, 18689, 18733, 18886, 19027, 19208, 19389, 19556, 19694, 19869, 19986, 20172, 20311, 20544, 20709, 20984, 21055, 21266, 21418, 21652, 21876, 22092, 22255, 22468, 22800, 22900, 23095, 23371, 23540, 23846, 24064, 24601, 24686, 24686, 24988, 25177, 25626, 25759, 26014, 26239, 26435, 26763, 27079, 27404, 27681, 27924, 28156, 28459, 28876, 29059, 29361, 29821, 29946, 30305, 30612, 31263, 31299, 31683, 31882, 32388, 32617, 33028, 33394, 33831, 34218, 34536, 34816, 35351, 35710, 36088, 36416, 36899, 37332, 37758, 38125, 38665, 38912, 39546, 39946, 40342, 40791, 41160, 41586, 42135, 42699, 43152, 43615, 44173, 44512, 45184, 45680, 46067, 46667, 47120, 47632, 48252, 48725, 49386, 49725, 50516, 51041, 51597, 52141, 52913, 53172, 54151, 54679, 55124, 55632, 56461, 57107, 57828, 58447, 59014, 59720, 60524, 61376, 61896, 62522, 63076, 63609, 64016, 64335, 64593, 64815, 64991, 65183, 65290, 65293, 65293, 65293, 65303, 65303, 65304, 65304, 65311, 65317, 65325, 65325, 65325, 65325, 65325, 65325, 65333, 65333, 65333, 65349, 65362, 65362, 65362, 65378, 65378, 65378, 65379, 65382, 65382, 65382, 65395, 65395, 65395, 65395, 65399, 65404, 65405, 65405, 65404, 65390, 65385, 65385, 65377, 65352, 65343, 65343, 65350, 65350, 65350, 65375, 65384, 65386, 65377, 65375, 65374, 65346, 65312, 65312, 65301, 65298, 65298, 65296, 65296, 65296, 65281, 65278, 65270, 65262, 65262, 65262, 65270, 65278, 65290, 65290, 65290, 65285, 65285, 65279, 65279, 65275, 65275, 65267, 65267, 65267, 65267, 65278, 65278, 65287, 65287, 65287, 65287, 65287, 65296, 65296, 65296, 65277, 65277, 65277, 65272, 65272, 65272, 65272, 65272, 65272, 65288, 65288, 65288, 65285, 65285, 65270, 65270, 65280, 65288, 65288, 65288, 65288, 65288, 65288, 65283, 65283, 65283, 65283, 65283, 65283, 65291, 65291, 65290, 65286, 65286, 65286, 65286, 65294, 65294, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65296, 65296, 65296, 65293, 65293, 65293, 65298, 65298, 65298, 65298, 65295, 65295, 65295, 65295, 65295, 65291, 65291, 65291, 65291, 65291, 65291, 65291, 65300, 65300, 65316, 65316, 65316, 65283, 65283, 65305, 65307, 65307, 65307, 65307, 65307, 65307, 65307, 65307, 65305, 65305, 65303, 65303, 65303, 65303, 65303, 65291, 65291, 65291, 65291, 65297, 65306, 65306, 65295, 65295, 65295, 65295, 65319, 65320, 65320, 65304, 65296, 65296, 65309, 65317, 65319, 65319, 65319, 65319, 65319, 65311, 65307, 65305, 65294, 65294, 65294, 65294, 65305, 65307, 65307, 65308, 65323, 65328, 65328, 65328, 65328, 65323, 65318, 65316, 65312, 65312, 65300, 65300, 65300, 65300, 65300, 65312, 65322, 65322, 65322, 65322, 65313, 65313, 65313, 65313, 65313, 65308, 65308, 65308, 65308, 65320, 65320, 65320, 65320, 65320, 65320, 65332, 65332, 65326, 65326, 65326, 65326, 65323, 65323, 65323, 65323, 65323, 65323, 65315, 65315, 65315, 65315, 65315, 65327, 65327, 65327, 65327, 65327, 65334, 65337, 65337] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Spectrum"] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Spectrum", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (Spectrometer)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1024, 24] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["296.5", "297.055", "297.61", "298.164", "298.719", "299.273", "299.827", "300.382", "300.936", "301.489", "302.043", "302.597", "303.15", "303.703", "304.256", "304.809", "305.362", "305.915", "306.467", "307.02", "307.572", "308.124", "308.676", "309.228", "309.78", "310.332", "310.883", "311.435", "311.986", "312.537", "313.088", "313.639", "314.189", "314.74", "315.29", "315.841", "316.391", "316.941", "317.491", "318.04", "318.59", "319.139", "319.689", "320.238", "320.787", "321.336", "321.885", "322.433", "322.982", "323.53", "324.079", "324.627", "325.175", "325.723", "326.271", "326.818", "327.366", "327.913", "328.46", "329.007", "329.554", "330.101", "330.648", "331.195", "331.741", "332.287", "332.834", "333.38", "333.926", "334.472", "335.017", "335.563", "336.108", "336.654", "337.199", "337.744", "338.289", "338.834", "339.378", "339.923", "340.467", "341.012", "341.556", "342.1", "342.644", "343.188", "343.731", "344.275", "344.818", "345.362", "345.905", "346.448", "346.991", "347.534", "348.076", "348.619", "349.161", "349.704", "350.246", "350.788", "351.33", "351.872", "352.414", "352.955", "353.497", "354.038", "354.579", "355.12", "355.661", "356.202", "356.743", "357.284", "357.824", "358.364", "358.905", "359.445", "359.985", "360.525", "361.065", "361.604", "362.144", "362.683", "363.223", "363.762", "364.301", "364.84", "365.379", "365.917", "366.456", "366.995", "367.533", "368.071", "368.609", "369.147", "369.685", "370.223", "370.761", "371.298", "371.836", "372.373", "372.91", "373.447", "373.984", "374.521", "375.058", "375.595", "376.131", "376.668", "377.204", "377.74", "378.276", "378.812", "379.348", "379.884", "380.419", "380.955", "381.49", "382.026", "382.561", "383.096", "383.631", "384.166", "384.7", "385.235", "385.77", "386.304", "386.838", "387.372", "387.907", "388.441", "388.974", "389.508", "390.042", "390.575", "391.109", "391.642", "392.175", "392.708", "393.241", "393.774", "394.307", "394.84", "395.372", "395.905", "396.437", "396.969", "397.501", "398.033", "398.565", "399.097", "399.629", "400.16", "400.692", "401.223", "401.755", "402.286", "402.817", "403.348", "403.879", "404.409", "404.94", "405.471", "406.001", "406.531", "407.062", "407.592", "408.122", "408.652", "409.181", "409.711", "410.241", "410.77", "411.3", "411.829", "412.358", "412.887", "413.416", "413.945", "414.474", "415.003", "415.531", "416.06", "416.588", "417.117", "417.645", "418.173", "418.701", "419.229", "419.757", "420.284", "420.812", "421.34", "421.867", "422.394", "422.921", "423.449", "423.976", "424.503", "425.029", "425.556", "426.083", "426.609", "427.136", "427.662", "428.188", "428.714", "429.24", "429.766", "430.292", "430.818", "431.344", "431.869", "432.395", "432.92", "433.445", "433.971", "434.496", "435.021", "435.546", "436.071", "436.595", "437.12", "437.644", "438.169", "438.693", "439.218", "439.742", "440.266", "440.79", "441.314", "441.837", "442.361", "442.885", "443.408", "443.932", "444.455", "444.978", "445.502", "446.025", "446.548", "447.071", "447.593", "448.116", "448.639", "449.161", "449.684", "450.206", "450.728", "451.251", "451.773", "452.295", "452.817", "453.338", "453.86", "454.382", "454.903", "455.425", "455.946", "456.468", "456.989", "457.51", "458.031", "458.552", "459.073", "459.594", "460.114", "460.635", "461.156", "461.676", "462.196", "462.717", "463.237", "463.757", "464.277", "464.797", "465.317", "465.837", "466.356", "466.876", "467.396", "467.915", "468.434", "468.954", "469.473", "469.992", "470.511", "471.03", "471.549", "472.068", "472.586", "473.105", "473.624", "474.142", "474.661", "475.179", "475.697", "476.215", "476.733", "477.251", "477.769", "478.287", "478.805", "479.323", "479.84", "480.358", "480.875", "481.393", "481.91", "482.427", "482.944", "483.461", "483.978", "484.495", "485.012", "485.529", "486.045", "486.562", "487.079", "487.595", "488.111", "488.628", "489.144", "489.66", "490.176", "490.692", "491.208", "491.724", "492.24", "492.755", "493.271", "493.787", "494.302", "494.817", "495.333", "495.848", "496.363", "496.878", "497.393", "497.908", "498.423", "498.938", "499.453", "499.968", "500.482", "500.997", "501.511", "502.026", "502.54", "503.054", "503.568", "504.083", "504.597", "505.111", "505.625", "506.138", "506.652", "507.166", "507.679", "508.193", "508.707", "509.22", "509.733", "510.247", "510.76", "511.273", "511.786", "512.299", "512.812", "513.325", "513.838", "514.351", "514.863", "515.376", "515.889", "516.401", "516.913", "517.426", "517.938", "518.45", "518.963", "519.475", "519.987", "520.499", "521.011", "521.522", "522.034", "522.546", "523.058", "523.569", "524.081", "524.592", "525.104", "525.615", "526.126", "526.637", "527.149", "527.66", "528.171", "528.682", "529.193", "529.704", "530.214", "530.725", "531.236", "531.746", "532.257", "532.767", "533.278", "533.788", "534.298", "534.809", "535.319", "535.829", "536.339", "536.849", "537.359", "537.869", "538.379", "538.889", "539.398", "539.908", "540.418", "540.927", "541.437", "541.946", "542.456", "542.965", "543.474", "543.983", "544.493", "545.002", "545.511", "546.02", "546.529", "547.038", "547.546", "548.055", "548.564", "549.073", "549.581", "550.09", "550.598", "551.107", "551.615", "552.123", "552.632", "553.14", "553.648", "554.156", "554.664", "555.172", "555.68", "556.188", "556.696", "557.204", "557.712", "558.22", "558.727", "559.235", "559.742", "560.25", "560.757", "561.265", "561.772", "562.28", "562.787", "563.294", "563.801", "564.308", "564.815", "565.323", "565.83", "566.336", "566.843", "567.35", "567.857", "568.364", "568.87", "569.377", "569.884", "570.39", "570.897", "571.403", "571.91", "572.416", "572.922", "573.429", "573.935", "574.441", "574.947", "575.453", "575.959", "576.465", "576.971", "577.477", "577.983", "578.489", "578.995", "579.501", "580.006", "580.512", "581.018", "581.523", "582.029", "582.534", "583.04", "583.545", "584.05", "584.556", "585.061", "585.566", "586.071", "586.577", "587.082", "587.587", "588.092", "588.597", "589.102", "589.607", "590.112", "590.616", "591.121", "591.626", "592.131", "592.635", "593.14", "593.645", "594.149", "594.654", "595.158", "595.663", "596.167", "596.672", "597.176", "597.68", "598.185", "598.689", "599.193", "599.697", "600.201", "600.705", "601.209", "601.713", "602.217", "602.721", "603.225", "603.729", "604.233", "604.737", "605.241", "605.744", "606.248", "606.752", "607.255", "607.759", "608.263", "608.766", "609.27", "609.773", "610.277", "610.78", "611.283", "611.787", "612.29", "612.793", "613.297", "613.8", "614.303", "614.806", "615.309", "615.812", "616.316", "616.819", "617.322", "617.825", "618.328", "618.83", "619.333", "619.836", "620.339", "620.842", "621.345", "621.847", "622.35", "622.853", "623.355", "623.858", "624.361", "624.863", "625.366", "625.868", "626.371", "626.873", "627.376", "627.878", "628.381", "628.883", "629.385", "629.888", "630.39", "630.892", "631.395", "631.897", "632.399", "632.901", "633.403", "633.905", "634.408", "634.91", "635.412", "635.914", "636.416", "636.918", "637.42", "637.922", "638.424", "638.925", "639.427", "639.929", "640.431", "640.933", "641.435", "641.936", "642.438", "642.94", "643.442", "643.943", "644.445", "644.947", "645.448", "645.95", "646.451", "646.953", "647.455", "647.956", "648.458", "648.959", "649.461", "649.962", "650.464", "650.965", "651.466", "651.968", "652.469", "652.97", "653.472", "653.973", "654.474", "654.976", "655.477", "655.978", "656.48", "656.981", "657.482", "657.983", "658.484", "658.985", "659.487", "659.988", "660.489", "660.99", "661.491", "661.992", "662.493", "662.994", "663.495", "663.996", "664.497", "664.998", "665.499", "666", "666.501", "667.002", "667.503", "668.004", "668.505", "669.006", "669.507", "670.008", "670.509", "671.009", "671.51", "672.011", "672.512", "673.013", "673.514", "674.014", "674.515", "675.016", "675.517", "676.018", "676.518", "677.019", "677.52", "678.02", "678.521", "679.022", "679.523", "680.023", "680.524", "681.025", "681.525", "682.026", "682.527", "683.027", "683.528", "684.029", "684.529", "685.03", "685.531", "686.031", "686.532", "687.032", "687.533", "688.034", "688.534", "689.035", "689.536", "690.036", "690.537", "691.037", "691.538", "692.038", "692.539", "693.04", "693.54", "694.041", "694.541", "695.042", "695.542", "696.043", "696.544", "697.044", "697.545", "698.045", "698.546", "699.046", "699.547", "700.047", "700.548", "701.049", "701.549", "702.05", "702.55", "703.051", "703.551", "704.052", "704.552", "705.053", "705.554", "706.054", "706.555", "707.055", "707.556", "708.056", "708.557", "709.058", "709.558", "710.059", "710.559", "711.06", "711.561", "712.061", "712.562", "713.062", "713.563", "714.064", "714.564", "715.065", "715.566", "716.066", "716.567", "717.068", "717.568", "718.069", "718.57", "719.07", "719.571", "720.072", "720.572", "721.073", "721.574", "722.074", "722.575", "723.076", "723.577", "724.077", "724.578", "725.079", "725.58", "726.081", "726.581", "727.082", "727.583", "728.084", "728.585", "729.086", "729.586", "730.087", "730.588", "731.089", "731.59", "732.091", "732.592", "733.093", "733.594", "734.095", "734.596", "735.097", "735.598", "736.099", "736.6", "737.101", "737.602", "738.103", "738.604", "739.105", "739.606", "740.107", "740.609", "741.11", "741.611", "742.112", "742.613", "743.114", "743.616", "744.117", "744.618", "745.119", "745.621", "746.122", "746.623", "747.125", "747.626", "748.128", "748.629", "749.13", "749.632", "750.133", "750.635", "751.136", "751.638", "752.139", "752.641", "753.142", "753.644", "754.145", "754.647", "755.149", "755.65", "756.152", "756.654", "757.155", "757.657", "758.159", "758.661", "759.163", "759.664", "760.166", "760.668", "761.17", "761.672", "762.174", "762.676", "763.178", "763.68", "764.182", "764.684", "765.186", "765.688", "766.19", "766.692", "767.194", "767.697", "768.199", "768.701", "769.203", "769.706", "770.208", "770.71", "771.213", "771.715", "772.217", "772.72", "773.222", "773.725", "774.227", "774.73", "775.232", "775.735", "776.238", "776.74", "777.243", "777.746", "778.248", "778.751", "779.254", "779.757", "780.26", "780.763", "781.266", "781.768", "782.271", "782.774", "783.277", "783.781", "784.284", "784.787", "785.29", "785.793", "786.296", "786.799", "787.303", "787.806", "788.309", "788.813", "789.316", "789.82", "790.323", "790.827", "791.33", "791.834", "792.337", "792.841", "793.345", "793.848", "794.352", "794.856", "795.359", "795.863", "796.367", "796.871", "797.375", "797.879", "798.383", "798.887", "799.391", "799.895", "800.399", "800.904", "801.408", "801.912", "802.416", "802.921", "803.425", "803.929", "804.434", "804.938", "805.443", "805.947", "806.452", "806.957", "807.461", "807.966", "808.471", "808.975", "809.48", "809.985", "810.49", "810.995", "811.5", "812.005", "812.51", "813.015", "813.52", "814.026", "814.531", "815.036", "815.541", "816.047", "816.552", "817.057", "817.563", "818.068", "818.574", "819.08", "819.585", "820.091", "820.597", "821.102", "821.608", "822.114", "822.62", "823.126"] }, { "type": "character", "attributes": {}, "value": ["0.029", "20.027", "40.025", "60.026", "80.025", "100.023", "120.022", "140.022", "160.02", "180.019", "200.02", "220.018", "240.017", "260.016", "280.015", "300.014", "320.014", "340.014", "360.012", "380.012", "400.01", "420.009", "440.008", "460.007"] } ] } }, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Spectrum"] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Spectrum", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (Spectrometer)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1024, 24] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["296.5", "297.055", "297.61", "298.164", "298.719", "299.273", "299.827", "300.382", "300.936", "301.489", "302.043", "302.597", "303.15", "303.703", "304.256", "304.809", "305.362", "305.915", "306.467", "307.02", "307.572", "308.124", "308.676", "309.228", "309.78", "310.332", "310.883", "311.435", "311.986", "312.537", "313.088", "313.639", "314.189", "314.74", "315.29", "315.841", "316.391", "316.941", "317.491", "318.04", "318.59", "319.139", "319.689", "320.238", "320.787", "321.336", "321.885", "322.433", "322.982", "323.53", "324.079", "324.627", "325.175", "325.723", "326.271", "326.818", "327.366", "327.913", "328.46", "329.007", "329.554", "330.101", "330.648", "331.195", "331.741", "332.287", "332.834", "333.38", "333.926", "334.472", "335.017", "335.563", "336.108", "336.654", "337.199", "337.744", "338.289", "338.834", "339.378", "339.923", "340.467", "341.012", "341.556", "342.1", "342.644", "343.188", "343.731", "344.275", "344.818", "345.362", "345.905", "346.448", "346.991", "347.534", "348.076", "348.619", "349.161", "349.704", "350.246", "350.788", "351.33", "351.872", "352.414", "352.955", "353.497", "354.038", "354.579", "355.12", "355.661", "356.202", "356.743", "357.284", "357.824", "358.364", "358.905", "359.445", "359.985", "360.525", "361.065", "361.604", "362.144", "362.683", "363.223", "363.762", "364.301", "364.84", "365.379", "365.917", "366.456", "366.995", "367.533", "368.071", "368.609", "369.147", "369.685", "370.223", "370.761", "371.298", "371.836", "372.373", "372.91", "373.447", "373.984", "374.521", "375.058", "375.595", "376.131", "376.668", "377.204", "377.74", "378.276", "378.812", "379.348", "379.884", "380.419", "380.955", "381.49", "382.026", "382.561", "383.096", "383.631", "384.166", "384.7", "385.235", "385.77", "386.304", "386.838", "387.372", "387.907", "388.441", "388.974", "389.508", "390.042", "390.575", "391.109", "391.642", "392.175", "392.708", "393.241", "393.774", "394.307", "394.84", "395.372", "395.905", "396.437", "396.969", "397.501", "398.033", "398.565", "399.097", "399.629", "400.16", "400.692", "401.223", "401.755", "402.286", "402.817", "403.348", "403.879", "404.409", "404.94", "405.471", "406.001", "406.531", "407.062", "407.592", "408.122", "408.652", "409.181", "409.711", "410.241", "410.77", "411.3", "411.829", "412.358", "412.887", "413.416", "413.945", "414.474", "415.003", "415.531", "416.06", "416.588", "417.117", "417.645", "418.173", "418.701", "419.229", "419.757", "420.284", "420.812", "421.34", "421.867", "422.394", "422.921", "423.449", "423.976", "424.503", "425.029", "425.556", "426.083", "426.609", "427.136", "427.662", "428.188", "428.714", "429.24", "429.766", "430.292", "430.818", "431.344", "431.869", "432.395", "432.92", "433.445", "433.971", "434.496", "435.021", "435.546", "436.071", "436.595", "437.12", "437.644", "438.169", "438.693", "439.218", "439.742", "440.266", "440.79", "441.314", "441.837", "442.361", "442.885", "443.408", "443.932", "444.455", "444.978", "445.502", "446.025", "446.548", "447.071", "447.593", "448.116", "448.639", "449.161", "449.684", "450.206", "450.728", "451.251", "451.773", "452.295", "452.817", "453.338", "453.86", "454.382", "454.903", "455.425", "455.946", "456.468", "456.989", "457.51", "458.031", "458.552", "459.073", "459.594", "460.114", "460.635", "461.156", "461.676", "462.196", "462.717", "463.237", "463.757", "464.277", "464.797", "465.317", "465.837", "466.356", "466.876", "467.396", "467.915", "468.434", "468.954", "469.473", "469.992", "470.511", "471.03", "471.549", "472.068", "472.586", "473.105", "473.624", "474.142", "474.661", "475.179", "475.697", "476.215", "476.733", "477.251", "477.769", "478.287", "478.805", "479.323", "479.84", "480.358", "480.875", "481.393", "481.91", "482.427", "482.944", "483.461", "483.978", "484.495", "485.012", "485.529", "486.045", "486.562", "487.079", "487.595", "488.111", "488.628", "489.144", "489.66", "490.176", "490.692", "491.208", "491.724", "492.24", "492.755", "493.271", "493.787", "494.302", "494.817", "495.333", "495.848", "496.363", "496.878", "497.393", "497.908", "498.423", "498.938", "499.453", "499.968", "500.482", "500.997", "501.511", "502.026", "502.54", "503.054", "503.568", "504.083", "504.597", "505.111", "505.625", "506.138", "506.652", "507.166", "507.679", "508.193", "508.707", "509.22", "509.733", "510.247", "510.76", "511.273", "511.786", "512.299", "512.812", "513.325", "513.838", "514.351", "514.863", "515.376", "515.889", "516.401", "516.913", "517.426", "517.938", "518.45", "518.963", "519.475", "519.987", "520.499", "521.011", "521.522", "522.034", "522.546", "523.058", "523.569", "524.081", "524.592", "525.104", "525.615", "526.126", "526.637", "527.149", "527.66", "528.171", "528.682", "529.193", "529.704", "530.214", "530.725", "531.236", "531.746", "532.257", "532.767", "533.278", "533.788", "534.298", "534.809", "535.319", "535.829", "536.339", "536.849", "537.359", "537.869", "538.379", "538.889", "539.398", "539.908", "540.418", "540.927", "541.437", "541.946", "542.456", "542.965", "543.474", "543.983", "544.493", "545.002", "545.511", "546.02", "546.529", "547.038", "547.546", "548.055", "548.564", "549.073", "549.581", "550.09", "550.598", "551.107", "551.615", "552.123", "552.632", "553.14", "553.648", "554.156", "554.664", "555.172", "555.68", "556.188", "556.696", "557.204", "557.712", "558.22", "558.727", "559.235", "559.742", "560.25", "560.757", "561.265", "561.772", "562.28", "562.787", "563.294", "563.801", "564.308", "564.815", "565.323", "565.83", "566.336", "566.843", "567.35", "567.857", "568.364", "568.87", "569.377", "569.884", "570.39", "570.897", "571.403", "571.91", "572.416", "572.922", "573.429", "573.935", "574.441", "574.947", "575.453", "575.959", "576.465", "576.971", "577.477", "577.983", "578.489", "578.995", "579.501", "580.006", "580.512", "581.018", "581.523", "582.029", "582.534", "583.04", "583.545", "584.05", "584.556", "585.061", "585.566", "586.071", "586.577", "587.082", "587.587", "588.092", "588.597", "589.102", "589.607", "590.112", "590.616", "591.121", "591.626", "592.131", "592.635", "593.14", "593.645", "594.149", "594.654", "595.158", "595.663", "596.167", "596.672", "597.176", "597.68", "598.185", "598.689", "599.193", "599.697", "600.201", "600.705", "601.209", "601.713", "602.217", "602.721", "603.225", "603.729", "604.233", "604.737", "605.241", "605.744", "606.248", "606.752", "607.255", "607.759", "608.263", "608.766", "609.27", "609.773", "610.277", "610.78", "611.283", "611.787", "612.29", "612.793", "613.297", "613.8", "614.303", "614.806", "615.309", "615.812", "616.316", "616.819", "617.322", "617.825", "618.328", "618.83", "619.333", "619.836", "620.339", "620.842", "621.345", "621.847", "622.35", "622.853", "623.355", "623.858", "624.361", "624.863", "625.366", "625.868", "626.371", "626.873", "627.376", "627.878", "628.381", "628.883", "629.385", "629.888", "630.39", "630.892", "631.395", "631.897", "632.399", "632.901", "633.403", "633.905", "634.408", "634.91", "635.412", "635.914", "636.416", "636.918", "637.42", "637.922", "638.424", "638.925", "639.427", "639.929", "640.431", "640.933", "641.435", "641.936", "642.438", "642.94", "643.442", "643.943", "644.445", "644.947", "645.448", "645.95", "646.451", "646.953", "647.455", "647.956", "648.458", "648.959", "649.461", "649.962", "650.464", "650.965", "651.466", "651.968", "652.469", "652.97", "653.472", "653.973", "654.474", "654.976", "655.477", "655.978", "656.48", "656.981", "657.482", "657.983", "658.484", "658.985", "659.487", "659.988", "660.489", "660.99", "661.491", "661.992", "662.493", "662.994", "663.495", "663.996", "664.497", "664.998", "665.499", "666", "666.501", "667.002", "667.503", "668.004", "668.505", "669.006", "669.507", "670.008", "670.509", "671.009", "671.51", "672.011", "672.512", "673.013", "673.514", "674.014", "674.515", "675.016", "675.517", "676.018", "676.518", "677.019", "677.52", "678.02", "678.521", "679.022", "679.523", "680.023", "680.524", "681.025", "681.525", "682.026", "682.527", "683.027", "683.528", "684.029", "684.529", "685.03", "685.531", "686.031", "686.532", "687.032", "687.533", "688.034", "688.534", "689.035", "689.536", "690.036", "690.537", "691.037", "691.538", "692.038", "692.539", "693.04", "693.54", "694.041", "694.541", "695.042", "695.542", "696.043", "696.544", "697.044", "697.545", "698.045", "698.546", "699.046", "699.547", "700.047", "700.548", "701.049", "701.549", "702.05", "702.55", "703.051", "703.551", "704.052", "704.552", "705.053", "705.554", "706.054", "706.555", "707.055", "707.556", "708.056", "708.557", "709.058", "709.558", "710.059", "710.559", "711.06", "711.561", "712.061", "712.562", "713.062", "713.563", "714.064", "714.564", "715.065", "715.566", "716.066", "716.567", "717.068", "717.568", "718.069", "718.57", "719.07", "719.571", "720.072", "720.572", "721.073", "721.574", "722.074", "722.575", "723.076", "723.577", "724.077", "724.578", "725.079", "725.58", "726.081", "726.581", "727.082", "727.583", "728.084", "728.585", "729.086", "729.586", "730.087", "730.588", "731.089", "731.59", "732.091", "732.592", "733.093", "733.594", "734.095", "734.596", "735.097", "735.598", "736.099", "736.6", "737.101", "737.602", "738.103", "738.604", "739.105", "739.606", "740.107", "740.609", "741.11", "741.611", "742.112", "742.613", "743.114", "743.616", "744.117", "744.618", "745.119", "745.621", "746.122", "746.623", "747.125", "747.626", "748.128", "748.629", "749.13", "749.632", "750.133", "750.635", "751.136", "751.638", "752.139", "752.641", "753.142", "753.644", "754.145", "754.647", "755.149", "755.65", "756.152", "756.654", "757.155", "757.657", "758.159", "758.661", "759.163", "759.664", "760.166", "760.668", "761.17", "761.672", "762.174", "762.676", "763.178", "763.68", "764.182", "764.684", "765.186", "765.688", "766.19", "766.692", "767.194", "767.697", "768.199", "768.701", "769.203", "769.706", "770.208", "770.71", "771.213", "771.715", "772.217", "772.72", "773.222", "773.725", "774.227", "774.73", "775.232", "775.735", "776.238", "776.74", "777.243", "777.746", "778.248", "778.751", "779.254", "779.757", "780.26", "780.763", "781.266", "781.768", "782.271", "782.774", "783.277", "783.781", "784.284", "784.787", "785.29", "785.793", "786.296", "786.799", "787.303", "787.806", "788.309", "788.813", "789.316", "789.82", "790.323", "790.827", "791.33", "791.834", "792.337", "792.841", "793.345", "793.848", "794.352", "794.856", "795.359", "795.863", "796.367", "796.871", "797.375", "797.879", "798.383", "798.887", "799.391", "799.895", "800.399", "800.904", "801.408", "801.912", "802.416", "802.921", "803.425", "803.929", "804.434", "804.938", "805.443", "805.947", "806.452", "806.957", "807.461", "807.966", "808.471", "808.975", "809.48", "809.985", "810.49", "810.995", "811.5", "812.005", "812.51", "813.015", "813.52", "814.026", "814.531", "815.036", "815.541", "816.047", "816.552", "817.057", "817.563", "818.068", "818.574", "819.08", "819.585", "820.091", "820.597", "821.102", "821.608", "822.114", "822.62", "823.126"] }, { "type": "character", "attributes": {}, "value": ["0.029", "20.027", "40.025", "60.026", "80.025", "100.023", "120.022", "140.022", "160.02", "180.019", "200.02", "220.018", "240.017", "260.016", "280.015", "300.014", "320.014", "340.014", "360.012", "380.012", "400.01", "420.009", "440.008", "460.007"] } ] } }, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Spectrum"] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Spectrum", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (Spectrometer)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1024, 24] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["296.5", "297.055", "297.61", "298.164", "298.719", "299.273", "299.827", "300.382", "300.936", "301.489", "302.043", "302.597", "303.15", "303.703", "304.256", "304.809", "305.362", "305.915", "306.467", "307.02", "307.572", "308.124", "308.676", "309.228", "309.78", "310.332", "310.883", "311.435", "311.986", "312.537", "313.088", "313.639", "314.189", "314.74", "315.29", "315.841", "316.391", "316.941", "317.491", "318.04", "318.59", "319.139", "319.689", "320.238", "320.787", "321.336", "321.885", "322.433", "322.982", "323.53", "324.079", "324.627", "325.175", "325.723", "326.271", "326.818", "327.366", "327.913", "328.46", "329.007", "329.554", "330.101", "330.648", "331.195", "331.741", "332.287", "332.834", "333.38", "333.926", "334.472", "335.017", "335.563", "336.108", "336.654", "337.199", "337.744", "338.289", "338.834", "339.378", "339.923", "340.467", "341.012", "341.556", "342.1", "342.644", "343.188", "343.731", "344.275", "344.818", "345.362", "345.905", "346.448", "346.991", "347.534", "348.076", "348.619", "349.161", "349.704", "350.246", "350.788", "351.33", "351.872", "352.414", "352.955", "353.497", "354.038", "354.579", "355.12", "355.661", "356.202", "356.743", "357.284", "357.824", "358.364", "358.905", "359.445", "359.985", "360.525", "361.065", "361.604", "362.144", "362.683", "363.223", "363.762", "364.301", "364.84", "365.379", "365.917", "366.456", "366.995", "367.533", "368.071", "368.609", "369.147", "369.685", "370.223", "370.761", "371.298", "371.836", "372.373", "372.91", "373.447", "373.984", "374.521", "375.058", "375.595", "376.131", "376.668", "377.204", "377.74", "378.276", "378.812", "379.348", "379.884", "380.419", "380.955", "381.49", "382.026", "382.561", "383.096", "383.631", "384.166", "384.7", "385.235", "385.77", "386.304", "386.838", "387.372", "387.907", "388.441", "388.974", "389.508", "390.042", "390.575", "391.109", "391.642", "392.175", "392.708", "393.241", "393.774", "394.307", "394.84", "395.372", "395.905", "396.437", "396.969", "397.501", "398.033", "398.565", "399.097", "399.629", "400.16", "400.692", "401.223", "401.755", "402.286", "402.817", "403.348", "403.879", "404.409", "404.94", "405.471", "406.001", "406.531", "407.062", "407.592", "408.122", "408.652", "409.181", "409.711", "410.241", "410.77", "411.3", "411.829", "412.358", "412.887", "413.416", "413.945", "414.474", "415.003", "415.531", "416.06", "416.588", "417.117", "417.645", "418.173", "418.701", "419.229", "419.757", "420.284", "420.812", "421.34", "421.867", "422.394", "422.921", "423.449", "423.976", "424.503", "425.029", "425.556", "426.083", "426.609", "427.136", "427.662", "428.188", "428.714", "429.24", "429.766", "430.292", "430.818", "431.344", "431.869", "432.395", "432.92", "433.445", "433.971", "434.496", "435.021", "435.546", "436.071", "436.595", "437.12", "437.644", "438.169", "438.693", "439.218", "439.742", "440.266", "440.79", "441.314", "441.837", "442.361", "442.885", "443.408", "443.932", "444.455", "444.978", "445.502", "446.025", "446.548", "447.071", "447.593", "448.116", "448.639", "449.161", "449.684", "450.206", "450.728", "451.251", "451.773", "452.295", "452.817", "453.338", "453.86", "454.382", "454.903", "455.425", "455.946", "456.468", "456.989", "457.51", "458.031", "458.552", "459.073", "459.594", "460.114", "460.635", "461.156", "461.676", "462.196", "462.717", "463.237", "463.757", "464.277", "464.797", "465.317", "465.837", "466.356", "466.876", "467.396", "467.915", "468.434", "468.954", "469.473", "469.992", "470.511", "471.03", "471.549", "472.068", "472.586", "473.105", "473.624", "474.142", "474.661", "475.179", "475.697", "476.215", "476.733", "477.251", "477.769", "478.287", "478.805", "479.323", "479.84", "480.358", "480.875", "481.393", "481.91", "482.427", "482.944", "483.461", "483.978", "484.495", "485.012", "485.529", "486.045", "486.562", "487.079", "487.595", "488.111", "488.628", "489.144", "489.66", "490.176", "490.692", "491.208", "491.724", "492.24", "492.755", "493.271", "493.787", "494.302", "494.817", "495.333", "495.848", "496.363", "496.878", "497.393", "497.908", "498.423", "498.938", "499.453", "499.968", "500.482", "500.997", "501.511", "502.026", "502.54", "503.054", "503.568", "504.083", "504.597", "505.111", "505.625", "506.138", "506.652", "507.166", "507.679", "508.193", "508.707", "509.22", "509.733", "510.247", "510.76", "511.273", "511.786", "512.299", "512.812", "513.325", "513.838", "514.351", "514.863", "515.376", "515.889", "516.401", "516.913", "517.426", "517.938", "518.45", "518.963", "519.475", "519.987", "520.499", "521.011", "521.522", "522.034", "522.546", "523.058", "523.569", "524.081", "524.592", "525.104", "525.615", "526.126", "526.637", "527.149", "527.66", "528.171", "528.682", "529.193", "529.704", "530.214", "530.725", "531.236", "531.746", "532.257", "532.767", "533.278", "533.788", "534.298", "534.809", "535.319", "535.829", "536.339", "536.849", "537.359", "537.869", "538.379", "538.889", "539.398", "539.908", "540.418", "540.927", "541.437", "541.946", "542.456", "542.965", "543.474", "543.983", "544.493", "545.002", "545.511", "546.02", "546.529", "547.038", "547.546", "548.055", "548.564", "549.073", "549.581", "550.09", "550.598", "551.107", "551.615", "552.123", "552.632", "553.14", "553.648", "554.156", "554.664", "555.172", "555.68", "556.188", "556.696", "557.204", "557.712", "558.22", "558.727", "559.235", "559.742", "560.25", "560.757", "561.265", "561.772", "562.28", "562.787", "563.294", "563.801", "564.308", "564.815", "565.323", "565.83", "566.336", "566.843", "567.35", "567.857", "568.364", "568.87", "569.377", "569.884", "570.39", "570.897", "571.403", "571.91", "572.416", "572.922", "573.429", "573.935", "574.441", "574.947", "575.453", "575.959", "576.465", "576.971", "577.477", "577.983", "578.489", "578.995", "579.501", "580.006", "580.512", "581.018", "581.523", "582.029", "582.534", "583.04", "583.545", "584.05", "584.556", "585.061", "585.566", "586.071", "586.577", "587.082", "587.587", "588.092", "588.597", "589.102", "589.607", "590.112", "590.616", "591.121", "591.626", "592.131", "592.635", "593.14", "593.645", "594.149", "594.654", "595.158", "595.663", "596.167", "596.672", "597.176", "597.68", "598.185", "598.689", "599.193", "599.697", "600.201", "600.705", "601.209", "601.713", "602.217", "602.721", "603.225", "603.729", "604.233", "604.737", "605.241", "605.744", "606.248", "606.752", "607.255", "607.759", "608.263", "608.766", "609.27", "609.773", "610.277", "610.78", "611.283", "611.787", "612.29", "612.793", "613.297", "613.8", "614.303", "614.806", "615.309", "615.812", "616.316", "616.819", "617.322", "617.825", "618.328", "618.83", "619.333", "619.836", "620.339", "620.842", "621.345", "621.847", "622.35", "622.853", "623.355", "623.858", "624.361", "624.863", "625.366", "625.868", "626.371", "626.873", "627.376", "627.878", "628.381", "628.883", "629.385", "629.888", "630.39", "630.892", "631.395", "631.897", "632.399", "632.901", "633.403", "633.905", "634.408", "634.91", "635.412", "635.914", "636.416", "636.918", "637.42", "637.922", "638.424", "638.925", "639.427", "639.929", "640.431", "640.933", "641.435", "641.936", "642.438", "642.94", "643.442", "643.943", "644.445", "644.947", "645.448", "645.95", "646.451", "646.953", "647.455", "647.956", "648.458", "648.959", "649.461", "649.962", "650.464", "650.965", "651.466", "651.968", "652.469", "652.97", "653.472", "653.973", "654.474", "654.976", "655.477", "655.978", "656.48", "656.981", "657.482", "657.983", "658.484", "658.985", "659.487", "659.988", "660.489", "660.99", "661.491", "661.992", "662.493", "662.994", "663.495", "663.996", "664.497", "664.998", "665.499", "666", "666.501", "667.002", "667.503", "668.004", "668.505", "669.006", "669.507", "670.008", "670.509", "671.009", "671.51", "672.011", "672.512", "673.013", "673.514", "674.014", "674.515", "675.016", "675.517", "676.018", "676.518", "677.019", "677.52", "678.02", "678.521", "679.022", "679.523", "680.023", "680.524", "681.025", "681.525", "682.026", "682.527", "683.027", "683.528", "684.029", "684.529", "685.03", "685.531", "686.031", "686.532", "687.032", "687.533", "688.034", "688.534", "689.035", "689.536", "690.036", "690.537", "691.037", "691.538", "692.038", "692.539", "693.04", "693.54", "694.041", "694.541", "695.042", "695.542", "696.043", "696.544", "697.044", "697.545", "698.045", "698.546", "699.046", "699.547", "700.047", "700.548", "701.049", "701.549", "702.05", "702.55", "703.051", "703.551", "704.052", "704.552", "705.053", "705.554", "706.054", "706.555", "707.055", "707.556", "708.056", "708.557", "709.058", "709.558", "710.059", "710.559", "711.06", "711.561", "712.061", "712.562", "713.062", "713.563", "714.064", "714.564", "715.065", "715.566", "716.066", "716.567", "717.068", "717.568", "718.069", "718.57", "719.07", "719.571", "720.072", "720.572", "721.073", "721.574", "722.074", "722.575", "723.076", "723.577", "724.077", "724.578", "725.079", "725.58", "726.081", "726.581", "727.082", "727.583", "728.084", "728.585", "729.086", "729.586", "730.087", "730.588", "731.089", "731.59", "732.091", "732.592", "733.093", "733.594", "734.095", "734.596", "735.097", "735.598", "736.099", "736.6", "737.101", "737.602", "738.103", "738.604", "739.105", "739.606", "740.107", "740.609", "741.11", "741.611", "742.112", "742.613", "743.114", "743.616", "744.117", "744.618", "745.119", "745.621", "746.122", "746.623", "747.125", "747.626", "748.128", "748.629", "749.13", "749.632", "750.133", "750.635", "751.136", "751.638", "752.139", "752.641", "753.142", "753.644", "754.145", "754.647", "755.149", "755.65", "756.152", "756.654", "757.155", "757.657", "758.159", "758.661", "759.163", "759.664", "760.166", "760.668", "761.17", "761.672", "762.174", "762.676", "763.178", "763.68", "764.182", "764.684", "765.186", "765.688", "766.19", "766.692", "767.194", "767.697", "768.199", "768.701", "769.203", "769.706", "770.208", "770.71", "771.213", "771.715", "772.217", "772.72", "773.222", "773.725", "774.227", "774.73", "775.232", "775.735", "776.238", "776.74", "777.243", "777.746", "778.248", "778.751", "779.254", "779.757", "780.26", "780.763", "781.266", "781.768", "782.271", "782.774", "783.277", "783.781", "784.284", "784.787", "785.29", "785.793", "786.296", "786.799", "787.303", "787.806", "788.309", "788.813", "789.316", "789.82", "790.323", "790.827", "791.33", "791.834", "792.337", "792.841", "793.345", "793.848", "794.352", "794.856", "795.359", "795.863", "796.367", "796.871", "797.375", "797.879", "798.383", "798.887", "799.391", "799.895", "800.399", "800.904", "801.408", "801.912", "802.416", "802.921", "803.425", "803.929", "804.434", "804.938", "805.443", "805.947", "806.452", "806.957", "807.461", "807.966", "808.471", "808.975", "809.48", "809.985", "810.49", "810.995", "811.5", "812.005", "812.51", "813.015", "813.52", "814.026", "814.531", "815.036", "815.541", "816.047", "816.552", "817.057", "817.563", "818.068", "818.574", "819.08", "819.585", "820.091", "820.597", "821.102", "821.608", "822.114", "822.62", "823.126"] }, { "type": "character", "attributes": {}, "value": ["0.029", "20.027", "40.025", "60.026", "80.025", "100.023", "120.022", "140.022", "160.02", "180.019", "200.02", "220.018", "240.017", "260.016", "280.015", "300.014", "320.014", "340.014", "360.012", "380.012", "400.01", "420.009", "440.008", "460.007"] } ] } }, "value": [555, 555, 555, 554, 554, 554, 554, 555, 555, 557, 559, 560, 560, 560, 560, 560, 561, 561, 561, 561, 561, 565, 565, 564, 564, 564, 562, 562, 564, 567, 567, 567, 567, 567, 567, 567, 564, 564, 563, 563, 563, 566, 566, 566, 566, 566, 565, 564, 564, 564, 564, 563, 563, 563, 563, 565, 565, 565, 565, 565, 565, 564, 564, 564, 565, 566, 568, 568, 568, 568, 564, 564, 566, 567, 567, 567, 566, 566, 566, 565, 565, 566, 567, 568, 568, 568, 568, 567, 567, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 565, 565, 564, 564, 564, 564, 564, 564, 566, 566, 566, 567, 567, 567, 567, 566, 564, 564, 563, 563, 563, 565, 565, 565, 565, 566, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 565, 565, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 569, 569, 568, 566, 566, 566, 566, 566, 566, 569, 569, 569, 569, 569, 569, 569, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 562, 562, 562, 562, 564, 564, 564, 568, 568, 568, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 564, 564, 563, 563, 563, 564, 565, 565, 565, 564, 564, 564, 565, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 568, 568, 571, 571, 571, 567, 567, 567, 567, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 563, 563, 563, 563, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 570, 570, 570, 569, 569, 568, 565, 563, 563, 563, 563, 565, 566, 566, 566, 565, 563, 563, 563, 565, 565, 565, 565, 564, 564, 566, 566, 566, 568, 568, 568, 572, 572, 572, 568, 568, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 565, 565, 565, 564, 564, 564, 564, 564, 563, 563, 563, 563, 563, 562, 562, 562, 562, 563, 563, 564, 568, 568, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 562, 562, 562, 567, 567, 567, 567, 565, 565, 565, 566, 566, 566, 566, 566, 566, 568, 568, 568, 568, 566, 565, 565, 565, 565, 567, 567, 567, 566, 566, 566, 569, 569, 569, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 568, 568, 568, 564, 563, 563, 564, 566, 567, 567, 567, 565, 565, 565, 565, 565, 565, 565, 565, 565, 563, 563, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 563, 563, 563, 563, 563, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 569, 569, 569, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 565, 564, 564, 564, 566, 566, 566, 566, 562, 562, 562, 565, 565, 567, 570, 570, 569, 566, 564, 564, 564, 566, 569, 569, 567, 567, 564, 564, 564, 567, 568, 568, 568, 568, 568, 568, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 563, 563, 563, 565, 567, 567, 567, 567, 566, 566, 566, 564, 564, 564, 566, 568, 568, 568, 568, 567, 565, 565, 567, 569, 569, 569, 569, 569, 569, 569, 569, 569, 565, 564, 564, 567, 569, 569, 569, 569, 569, 569, 569, 569, 566, 566, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 566, 566, 567, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 563, 563, 564, 566, 566, 566, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 560, 560, 563, 564, 564, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 564, 564, 564, 567, 567, 567, 562, 562, 562, 563, 563, 563, 565, 565, 565, 564, 564, 564, 565, 565, 565, 562, 562, 562, 566, 566, 568, 568, 568, 568, 568, 568, 567, 567, 566, 566, 564, 564, 564, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 564, 564, 562, 562, 562, 564, 566, 566, 566, 562, 562, 562, 562, 567, 567, 567, 567, 567, 566, 565, 565, 565, 565, 566, 566, 566, 566, 568, 568, 568, 568, 568, 566, 566, 566, 566, 566, 566, 564, 564, 564, 563, 563, 568, 568, 568, 565, 565, 565, 564, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 564, 564, 564, 565, 568, 568, 568, 567, 567, 565, 564, 564, 564, 564, 565, 568, 568, 568, 568, 568, 568, 568, 568, 567, 566, 566, 565, 565, 565, 565, 565, 565, 567, 567, 567, 565, 565, 565, 565, 569, 569, 569, 569, 565, 564, 564, 565, 565, 565, 565, 566, 566, 565, 565, 565, 568, 568, 568, 567, 567, 567, 567, 568, 568, 568, 565, 565, 567, 567, 567, 567, 567, 564, 564, 564, 564, 567, 567, 567, 566, 563, 563, 563, 565, 565, 565, 569, 569, 569, 569, 567, 567, 567, 567, 567, 568, 569, 569, 569, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 562, 562, 562, 563, 566, 566, 566, 567, 571, 571, 571, 568, 565, 565, 565, 566, 566, 566, 567, 567, 567, 567, 565, 565, 565, 563, 563, 563, 563, 565, 567, 567, 561, 561, 562, 565, 565, 565, 565, 565, 565, 564, 562, 562, 562, 565, 565, 565, 565, 564, 563, 563, 563, 563, 563, 563, 563, 563, 563, 564, 564, 564, 566, 566, 566, 566, 566, 566, 565, 565, 565, 556, 556, 556, 555, 555, 555, 555, 558, 562, 562.5, 562.5, 563, 563, 563, 563, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 565, 565, 565, 565, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 567, 567, 567, 566, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 566, 566, 566, 566, 566, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 564, 564, 564, 564, 564, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 564, 564, 564, 566, 567, 567, 567, 561, 560, 555, 555, 555, 555, 557, 557, 560, 560, 560, 560, 560, 560, 560, 561, 561, 562, 563, 564, 564, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 568, 568, 568, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 565, 565, 565, 566, 566, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 571, 571, 571, 571, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 567, 567, 567, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 569, 569, 569, 569, 569, 569, 569, 569, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 569, 569, 569, 569, 568, 568, 568, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 569, 569, 570, 570, 569, 569, 566, 565, 563, 568, 568, 564, 557, 556, 556, 556, 557, 562, 562, 562, 562, 562, 562, 564, 564, 564, 565, 566, 566, 568, 568, 569, 570, 570, 570, 570, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 573, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 577, 577, 577, 577, 576, 576, 576, 578, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 587, 587, 587, 588, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 584, 584, 584, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 580, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 571, 571, 571, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 574, 575, 575, 575, 576, 576, 576, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 577, 577, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 571, 572, 572, 572, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 573, 573, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 576, 603, 603, 603, 603, 573, 573, 571, 571, 569, 569, 569, 567, 567, 567, 568, 570, 571, 574, 575, 576, 578, 578, 578, 578, 574, 574, 574, 574, 577, 577, 577, 575, 575, 575, 575, 577, 577, 577, 577, 577, 576, 576, 576, 577, 577, 578, 580, 580, 577, 577, 577, 577, 577, 577, 577, 577, 580, 580, 580, 580, 580, 580, 580, 579, 577, 577, 577, 580, 580, 580, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 586, 586, 583, 583, 587, 587, 587, 587, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 590, 591, 592, 592, 590, 590, 590, 590, 590, 592, 592, 592, 592, 596, 596, 597, 597, 597, 597, 592, 592, 600, 602, 604, 604, 604, 604, 604, 605, 608, 610, 611, 611, 612, 612, 613, 613, 613, 613, 614, 615, 615, 615, 615, 615, 615, 616, 617, 618, 618, 618, 618, 619, 619, 620, 620, 622, 622, 623, 623, 624, 624, 626, 627, 628, 628, 629, 629, 629, 631, 631, 631, 632, 632, 632, 633, 633, 634, 634, 634, 634, 634, 634, 636, 637, 637, 637, 637, 637, 637, 637, 638, 638, 640, 640, 641, 641, 642, 642, 643, 644, 644, 644, 645, 647, 647, 647, 648, 648, 648, 649, 650, 650, 650, 650, 650, 650, 650, 651, 651, 652, 652, 653, 653, 653, 653, 653, 654, 654, 654, 654, 653, 653, 653, 653, 653, 653, 653, 653, 652, 652, 652, 651, 651, 651, 651, 651, 651, 650, 649, 649, 649, 649, 649, 650, 650, 650, 650, 650, 649, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 646, 646, 646, 646, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 644, 644, 644, 644, 644, 644, 642, 642, 640, 640, 640, 640, 638, 637, 637, 637, 637, 637, 637, 637, 636, 636, 636, 636, 636, 635, 635, 635, 633, 633, 632, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 632, 633, 633, 633, 633, 633, 632, 632, 632, 632, 633, 633, 633, 632, 632, 632, 631, 631, 630, 630, 630, 630, 630, 631, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 634, 634, 635, 635, 635, 635, 634, 634, 634, 634, 634, 637, 637, 637, 637, 639, 639, 639, 641, 641, 641, 641, 641, 642, 642, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 645, 645, 645, 645, 645, 645, 645, 646, 646, 646, 646, 648, 650, 650, 650, 648, 648, 648, 648, 648, 648, 649, 649, 649, 649, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 647, 647, 646, 646, 646, 646, 646, 646, 645, 645, 645, 646, 646, 646, 644, 644, 644, 643, 642, 640, 640, 640, 640, 639, 639, 639, 639, 639, 639, 638, 638, 638, 637, 637, 637, 637, 636, 636, 636, 636, 635, 635, 634, 634, 632, 631, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 626, 626, 626, 626, 625, 625, 625, 624, 624, 623, 623, 623, 623, 622, 620, 620, 620, 620, 619, 618, 618, 618, 617, 615, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 612, 612, 611, 611, 610, 609, 609, 609, 609, 609, 608, 604, 604, 604, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 598, 598, 598, 598, 598, 598, 599, 599, 598, 598, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 595, 595, 595, 596, 597, 599, 599, 599, 599, 599, 597, 594, 594, 594, 596, 596, 596, 596, 596, 596, 594, 594, 594, 594, 594, 594, 593, 593, 593, 592, 592, 592, 594, 594, 594, 594, 592, 592, 592, 594, 594, 595, 595, 596, 596, 596, 592, 592, 592, 592, 593, 594, 594, 594, 594, 591, 591, 591, 591, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 596, 599, 600, 600, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 599, 599, 601, 601, 600, 600, 600, 600, 601, 601, 601, 601, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 603, 603, 604, 604, 604, 604, 604, 604, 604, 605, 606, 608, 608, 608, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 608, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 599, 599, 598, 598, 598, 599, 600, 602, 602, 601, 599, 598, 598, 599, 599, 599, 599, 599, 598, 598, 596, 596, 596, 598, 598, 598, 597, 597, 596, 596, 596, 595, 595, 595, 595, 597, 597, 597, 597, 593, 592, 592, 592, 590, 590, 590, 590, 592, 592, 592, 592, 593, 593, 593, 591, 590, 589, 589, 589, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 589, 589, 587, 586, 586, 586, 586, 586, 588, 588, 588, 588, 588, 580, 580, 580, 581, 583, 583, 583, 583, 583, 583, 583, 583, 583, 590, 590, 590, 585, 585, 585, 582, 582, 582, 583, 583, 583, 583, 583, 586, 586, 586, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 582, 580, 580, 580, 580, 582, 582, 582, 582, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 581, 581, 582, 582, 582, 582, 582, 582, 583, 583, 583, 583, 583, 584, 584, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 587, 587, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 591, 591, 591, 591, 591, 592, 592, 593, 593, 593, 593, 593, 593, 594, 594, 594, 596, 596, 596, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 600, 600, 601, 601, 601, 601, 603, 603, 605, 606, 606, 606, 606, 607, 607, 608, 608, 610, 613, 613, 613, 613, 617, 617, 619, 620, 621, 621, 622, 623, 623, 623, 623, 624, 626, 627, 628, 628, 629, 629, 630, 630, 631, 631, 634, 634, 635, 635, 635, 635, 636, 637, 637, 639, 639, 644, 646, 646, 646, 648, 649, 649, 649, 650, 650, 650, 651, 652, 652, 653, 653, 654, 654, 655, 655, 659, 659, 659, 660, 661, 661, 661, 662, 663, 663, 663, 664, 664, 664, 665, 665, 667, 668, 668, 669, 670, 670, 672, 673, 673, 673, 674, 674, 675, 675, 676, 678, 679, 680, 680, 680, 680, 680, 680, 680, 680, 680, 681, 681, 681, 681, 681, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 679, 679, 679, 679, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 677, 677, 677, 677, 677, 677, 677, 677, 676, 676, 676, 676, 676, 675, 675, 674, 674, 673, 673, 673, 673, 673, 673, 671, 671, 671, 671, 670, 670, 670, 670, 670, 669, 669, 669, 669, 669, 669, 668, 668, 666, 666, 666, 666, 665, 665, 664, 664, 663, 663, 662, 662, 662, 662, 662, 661, 661, 661, 660, 659, 659, 659, 658, 658, 658, 658, 658, 657, 657, 656, 656, 656, 656, 656, 655, 655, 655, 655, 654, 654, 654, 654, 654, 655, 655, 655, 655, 655, 655, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 656, 656, 656, 656, 656, 657, 657, 657, 657, 657, 659, 659, 659, 659, 661, 661, 661, 662, 663, 663, 664, 665, 665, 665, 665, 666, 666, 666, 666, 666, 666, 666, 667, 667, 669, 670, 670, 670, 670, 670, 670, 670, 671, 674, 674, 674, 674, 674, 674, 674, 675, 675, 676, 676, 676, 678, 679, 679, 679, 679, 679, 679, 680, 680, 681, 681, 681, 681, 681, 681, 682, 682, 682, 683, 684, 685, 685, 685, 685, 685, 685, 687, 687, 688, 688, 688, 688, 688, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 686, 686, 686, 686, 686, 685, 685, 684, 682, 682, 682, 682, 682, 681, 681, 681, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 679, 678, 678, 678, 677, 675, 675, 675, 673, 673, 673, 672, 671, 670, 668, 668, 668, 667, 666, 666, 665, 664, 663, 662, 661, 660, 657, 657, 657, 657, 657, 657, 656, 655, 655, 653, 652, 651, 651, 651, 650, 648, 648, 647, 647, 646, 646, 646, 645, 645, 644, 644, 644, 644, 643, 643, 643, 642, 640, 640, 640, 640, 639, 638, 638, 636, 636, 636, 635, 634, 633, 631, 631, 631, 631, 630, 630, 630, 630, 629, 628, 628, 627, 627, 627, 627, 627, 626, 625, 624, 624, 624, 624, 623, 623, 623, 621, 621, 621, 621, 620, 620, 620, 618, 618, 617, 617, 616, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 616, 616, 615, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 611, 611, 611, 611, 611, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 610, 611, 611, 611, 611, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 613, 613, 614, 614, 614, 614, 614, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 617, 617, 617, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 614, 614, 614, 613, 613, 613, 613, 613, 613, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 613, 613, 613, 613, 613, 613, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 610, 610, 609, 609, 609, 609, 608, 608, 608, 608, 608, 607, 607, 606, 606, 606, 606, 606, 605, 605, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 600, 600, 600, 600, 600, 600, 600, 600, 600, 598, 598, 598, 598, 597, 597, 597, 597, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 595, 595, 595, 594, 594, 594, 594, 594, 592, 591, 591, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 573, 574, 575, 576, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 581, 581, 581, 582, 582, 582, 582, 582, 581, 581, 581, 581, 584, 584, 584, 584, 584, 584, 586, 586, 586, 586, 586, 585, 585, 585, 585, 586, 586, 586, 582, 582, 582, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 593, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 596, 596, 596, 596, 596, 596, 596, 597, 597, 597, 597, 597, 597, 598, 598, 598, 599, 600, 600, 600, 601, 604, 605, 605, 605, 606, 607, 607, 609, 609, 609, 610, 610, 610, 611, 613, 614, 614, 614, 614, 614, 615, 616, 617, 617, 620, 621, 621, 624, 625, 625, 625, 627, 627, 627, 627, 627, 627, 628, 628, 630, 630, 630, 630, 631, 631, 631, 631, 632, 632, 632, 633, 633, 634, 635, 638, 638, 639, 639, 639, 640, 640, 641, 642, 643, 643, 644, 644, 644, 645, 645, 645, 647, 647, 650, 651, 651, 651, 652, 652, 652, 652, 652, 653, 653, 653, 653, 653, 653, 653, 653, 654, 654, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 654, 654, 654, 654, 654, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 650, 650, 650, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 646, 646, 646, 646, 646, 646, 646, 646, 645, 645, 644, 644, 643, 643, 643, 642, 642, 642, 642, 642, 642, 642, 642, 641, 641, 641, 641, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 637, 637, 637, 637, 636, 636, 636, 637, 637, 637, 636, 636, 636, 635, 635, 635, 636, 636, 636, 635, 635, 635, 636, 636, 636, 635, 635, 635, 635, 635, 635, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 638, 638, 638, 640, 640, 640, 640, 641, 641, 641, 641, 641, 641, 641, 642, 642, 643, 643, 643, 644, 644, 644, 644, 645, 645, 646, 647, 648, 648, 648, 649, 650, 651, 651, 652, 652, 652, 654, 654, 655, 655, 655, 655, 656, 656, 656, 658, 658, 658, 659, 659, 659, 660, 660, 660, 660, 662, 662, 664, 664, 665, 665, 665, 666, 666, 666, 666, 667, 667, 667, 667, 669, 669, 669, 670, 670, 671, 672, 674, 674, 674, 675, 675, 675, 676, 676, 676, 676, 676, 676, 676, 676, 676, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 672, 672, 672, 672, 671, 671, 671, 670, 668, 668, 668, 668, 667, 665, 665, 665, 664, 664, 664, 663, 662, 662, 662, 662, 659, 659, 659, 658, 657, 657, 655, 655, 655, 654, 654, 654, 653, 652, 650, 650, 650, 650, 649, 648, 648, 647, 647, 646, 644, 644, 643, 642, 642, 641, 641, 641, 641, 640, 639, 638, 638, 635, 635, 635, 635, 634, 634, 634, 634, 633, 633, 632, 631, 628, 628, 628, 627, 627, 627, 626, 626, 626, 625, 625, 625, 621, 621, 621, 621, 621, 620, 620, 619, 619, 619, 619, 619, 619, 618, 618, 617, 617, 617, 615, 615, 615, 615, 614, 614, 614, 614, 613, 613, 613, 613, 613, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 610, 609, 609, 609, 609, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 605, 605, 605, 605, 605, 604, 603, 603, 603, 603, 602, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 597, 597, 597, 597, 597, 597, 597, 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 594, 594, 594, 593, 593, 593, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 592, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 585, 583, 583, 583, 583, 583, 581, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 581, 580, 580, 579, 579, 579, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 580, 579, 579, 580, 581, 581, 582, 582, 582, 580, 580, 581, 581, 581, 581, 579, 578, 578, 578, 577, 577, 577, 577, 577, 574, 574, 573, 572, 571, 571, 571, 576, 576, 576, 574, 574, 575, 579, 580, 580, 580, 580, 580, 583, 583, 583, 580, 580, 580, 581, 584, 584, 584, 584, 584, 583, 583, 583, 583, 579, 578, 578, 580, 583, 583, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 582, 582, 582, 585, 585, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 584, 583, 583, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 589, 589, 589, 590, 590, 591, 591, 593, 593, 593, 593, 593, 594, 594, 595, 595, 595, 597, 597, 598, 598, 598, 598, 598, 599, 599, 599, 599, 600, 601, 601, 602, 602, 602, 602, 603, 603, 605, 605, 608, 608, 610, 613, 613, 613, 613, 613, 613, 613, 613, 614, 614, 614, 614, 614, 614, 614, 615, 615, 615, 617, 617, 617, 617, 619, 619, 619, 620, 620, 620, 620, 620, 623, 623, 623, 623, 624, 625, 625, 625, 626, 626, 626, 626, 627, 627, 627, 629, 629, 629, 629, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 633, 633, 633, 634, 634, 635, 636, 636, 636, 636, 636, 636, 636, 636, 636, 635, 634, 634, 634, 633, 633, 633, 633, 633, 633, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 628, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 625, 625, 623, 622, 622, 622, 622, 622, 622, 622, 622, 621, 621, 621, 620, 620, 620, 620, 620, 620, 620, 620, 620, 619, 619, 618, 617, 617, 617, 617, 617, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 616, 616, 616, 616, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 617, 617, 617, 617, 617, 617, 617, 617, 619, 620, 620, 622, 622, 622, 622, 622, 622, 622, 623, 623, 623, 625, 626, 626, 627, 627, 627, 628, 629, 629, 629, 629, 630, 630, 631, 631, 631, 632, 632, 634, 634, 635, 637, 638, 638, 638, 638, 638, 639, 640, 640, 640, 640, 641, 642, 642, 642, 642, 642, 643, 643, 643, 644, 644, 644, 645, 645, 646, 646, 646, 646, 647, 647, 647, 648, 648, 648, 649, 649, 649, 649, 651, 651, 651, 651, 651, 653, 653, 653, 653, 653, 653, 653, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 654, 654, 654, 654, 654, 653, 653, 653, 652, 652, 652, 652, 651, 651, 651, 651, 651, 650, 650, 649, 649, 649, 649, 649, 649, 648, 647, 647, 647, 646, 646, 645, 645, 644, 643, 643, 641, 638, 638, 638, 636, 636, 636, 636, 636, 636, 636, 635, 635, 635, 635, 635, 635, 635, 634, 632, 632, 632, 632, 632, 632, 632, 631, 630, 629, 629, 627, 626, 626, 626, 625, 625, 625, 625, 625, 625, 624, 624, 623, 621, 621, 621, 620, 619, 619, 619, 619, 617, 617, 617, 616, 616, 614, 613, 611, 611, 611, 611, 611, 611, 610, 609, 609, 607, 606, 606, 605, 605, 605, 605, 605, 605, 604, 603, 603, 603, 603, 602, 602, 602, 602, 603, 603, 603, 603, 603, 603, 603, 602, 601, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 599, 599, 599, 599, 599, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 593, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 590, 590, 590, 590, 590, 590, 592, 592, 592, 592, 590, 590, 590, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 590, 590, 590, 589, 589, 589, 589, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 583, 583, 585, 585, 585, 585, 585, 585, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 582, 577, 577, 577, 582, 582, 582, 582, 582, 580, 580, 580, 580, 580, 582, 582, 582, 580, 579, 579, 580, 580, 580, 580, 581, 582, 582, 582, 580, 580, 580, 580, 580, 581, 581, 581, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 578, 578, 579, 580, 580, 578, 578, 578, 578, 578, 578, 578, 578, 578, 580, 580, 575, 575, 575, 575, 576, 576, 576, 580, 583, 583, 583, 579, 579, 577, 575, 575, 575, 579, 579, 579, 579, 574, 574, 574, 576, 578, 578, 578, 578, 578, 577, 577, 577, 577, 578, 578, 578, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 577, 578, 578, 578, 578, 570, 570, 573, 573, 573, 572, 572, 572, 574, 574, 574, 574, 572, 572, 572, 575, 578, 578, 578, 575, 575, 575, 575, 580, 580, 580, 580, 580, 580, 581, 585, 585, 585, 585, 585, 583, 582, 580, 580, 583, 586, 586, 586, 585, 585, 585, 585, 583, 583, 582, 582, 582, 586, 586, 586, 585, 584, 584, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 590, 590, 590, 586, 584, 584, 582, 582, 582, 588, 588, 588, 588, 588, 587, 587, 587, 587, 588, 588, 588, 586, 586, 584, 584, 584, 585, 585, 585, 585, 585, 585, 584, 583, 583, 583, 583, 587, 590, 590, 590, 584, 584, 584, 584, 584, 588, 588, 584, 584, 587, 588, 588, 588, 588, 588, 588, 588, 588, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 596, 596, 596, 598, 598, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 601, 602, 604, 604, 604, 605, 605, 605, 605, 606, 606, 607, 607, 607, 607, 607, 607, 607, 608, 608, 608, 609, 609, 610, 610, 612, 612, 613, 613, 613, 614, 615, 615, 615, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 618, 618, 618, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 613, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 611, 610, 610, 610, 610, 610, 610, 610, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 605, 605, 605, 604, 604, 604, 604, 603, 603, 603, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 600, 599, 599, 599, 599, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, 601, 601, 601, 601, 601, 601, 601, 602, 602, 603, 604, 604, 604, 605, 605, 605, 606, 606, 606, 606, 607, 607, 607, 610, 611, 611, 611, 611, 611, 612, 613, 613, 613, 613, 613, 613, 614, 614, 614, 615, 615, 616, 616, 616, 616, 616, 616, 617, 617, 618, 618, 618, 620, 620, 620, 620, 621, 622, 623, 623, 623, 623, 623, 624, 624, 625, 625, 626, 626, 628, 628, 628, 628, 628, 628, 629, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 632, 632, 632, 632, 634, 634, 634, 634, 634, 634, 634, 634, 634, 636, 636, 636, 636, 636, 636, 636, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 635, 635, 635, 635, 633, 633, 632, 632, 632, 632, 632, 633, 633, 633, 633, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 631, 631, 630, 629, 629, 629, 629, 629, 628, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 626, 626, 626, 625, 625, 625, 625, 625, 625, 624, 623, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 621, 621, 621, 621, 621, 621, 620, 620, 620, 620, 620, 619, 616, 615, 614, 614, 614, 613, 613, 613, 612, 612, 612, 612, 611, 611, 611, 610, 608, 608, 608, 608, 608, 608, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 602, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 598, 598, 598, 598, 598, 598, 596, 596, 596, 595, 595, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 592, 591, 591, 591, 591, 589, 588, 588, 590, 591, 591, 589, 588, 588, 587, 587, 588, 588, 588, 588, 588, 586, 586, 586, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 586, 586, 586, 588, 588, 588, 587, 587, 587, 586, 586, 586, 586, 586, 587, 587, 587, 583, 583, 583, 583, 585, 585, 585, 582, 582, 582, 584, 586, 586, 586, 585, 584, 583, 583, 581, 581, 581, 580, 580, 579, 579, 579, 582, 582, 582, 582, 583, 583, 583, 583, 583, 584, 584, 585, 585, 586, 586, 586, 582, 582, 582, 583, 585, 585, 583, 578, 578, 578, 583, 583, 583, 583, 583, 579, 579, 579, 579, 579, 581, 583, 583, 583, 581, 581, 581, 578, 578, 578, 580, 580, 580, 580, 580, 580, 579, 579, 579, 580, 582, 582, 580, 577, 575, 575, 575, 575, 575, 575, 575, 576, 576, 579, 579, 579, 579, 579, 579, 579, 577, 577, 577, 577, 578, 578, 578, 574, 574, 574, 576, 576, 577, 577, 577, 578, 578, 578, 578, 579, 579, 579, 579, 579, 578, 573, 573, 580, 580, 573, 573, 573, 573, 573, 578, 578, 578, 576, 573, 573, 573, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 576, 578, 578, 575, 573, 573, 573, 574, 577, 577, 577, 574, 572, 572, 572, 572, 572, 572, 574, 574, 574, 574, 575, 575, 575, 574, 573, 573, 574, 574, 574, 574, 574, 575, 575, 575, 573, 573, 573, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 572, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 577, 577, 574, 574, 573, 572, 572, 571, 571, 571, 573, 573, 574, 574, 574, 574, 574, 574, 574, 571, 571, 564, 564, 564, 564, 566, 566, 566, 571, 571, 571, 572, 572, 572, 572, 572, 573, 574, 574, 574, 574, 574, 576, 576, 577, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 583, 583, 583, 583, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 586, 586, 586, 586, 588, 588, 588, 588, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 593, 593, 593, 593, 593, 593, 594, 594, 594, 595, 595, 595, 595, 596, 596, 596, 597, 597, 598, 598, 599, 599, 599, 600, 601, 601, 601, 601, 601, 601, 601, 601, 602, 602, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 598, 597, 597, 597, 597, 597, 597, 597, 597, 596, 596, 596, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 588, 589, 589, 589, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 596, 596, 596, 598, 598, 598, 598, 598, 598, 598, 600, 600, 600, 601, 601, 602, 602, 602, 602, 602, 602, 603, 603, 604, 605, 605, 606, 606, 607, 607, 607, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 611, 611, 613, 613, 614, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 618, 618, 618, 618, 618, 619, 619, 620, 621, 621, 621, 621, 621, 621, 621, 623, 623, 623, 623, 624, 624, 624, 625, 625, 625, 625, 625, 625, 626, 626, 626, 626, 626, 626, 627, 628, 628, 628, 628, 628, 628, 628, 628, 628, 629, 629, 629, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 630, 630, 630, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 633, 633, 633, 633, 633, 633, 633, 633, 633, 632, 632, 632, 632, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 633, 633, 633, 633, 633, 633, 633, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 630, 628, 628, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 626, 626, 625, 625, 625, 625, 625, 625, 625, 624, 624, 624, 623, 623, 623, 623, 623, 623, 622, 620, 620, 620, 619, 619, 619, 619, 619, 618, 618, 618, 618, 618, 618, 618, 618, 618, 617, 616, 616, 615, 615, 613, 613, 613, 613, 612, 611, 611, 611, 611, 611, 610, 610, 610, 610, 609, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 607, 606, 606, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 602, 602, 602, 602, 601, 601, 599, 599, 598, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 587, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 584, 584, 584, 584, 582, 582, 582, 582, 581, 581, 581, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 574, 574, 574, 574, 573, 573, 575, 576, 576, 576, 576, 562, 562, 562, 562, 563, 563, 563, 563, 565, 566, 566, 566, 566, 567, 567, 570, 570, 570, 568, 568, 568, 572, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 577, 581, 581, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 581, 581, 580, 580, 580, 580, 580, 578, 578, 578, 579, 579, 580, 580, 580, 580, 581, 581, 584, 584, 584, 583, 581, 581, 581, 581, 580, 580, 580, 580, 579, 579, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 578, 578, 578, 578, 578, 576, 576, 576, 576, 576, 580, 580, 580, 579, 575, 575, 575, 575, 575, 576, 576, 578, 578, 582, 582, 582, 582, 582, 581, 581, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 583, 583, 583, 581, 579, 579, 581, 583, 585, 585, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 588, 585, 585, 585, 585, 585, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 589, 589, 589, 586, 586, 586, 587, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 587, 587, 587, 587, 587, 587, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 586, 586, 586, 586, 585, 585, 585, 585, 584, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 585, 585, 585, 582, 582, 582, 583, 583, 583, 583, 585, 585, 585, 585, 580, 580, 580, 580, 580, 580, 579, 579, 579, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 582, 582, 582, 581, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 582, 582, 582, 582, 578, 576, 576, 576, 576, 575, 575, 575, 575, 579, 581, 581, 579, 574, 574, 574, 578, 579, 581, 581, 580, 580, 580, 578, 578, 577, 577, 577, 577, 576, 576, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 574, 574, 583, 583, 580, 580, 580, 580, 577, 577, 577, 578, 580, 581, 581, 582, 582, 584, 586, 586, 584, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 593, 593, 595, 595, 596, 596, 596, 596, 596, 597, 597, 597, 597, 598, 599, 600, 600, 600, 600, 600, 600, 600, 601, 601, 603, 603, 603, 603, 603, 604, 604, 604, 604, 604, 605, 605, 605, 607, 607, 607, 608, 609, 609, 609, 609, 610, 610, 610, 610, 611, 612, 612, 612, 612, 612, 613, 613, 613, 613, 613, 614, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 617, 617, 617, 619, 620, 620, 622, 622, 623, 623, 623, 624, 624, 624, 624, 624, 625, 625, 625, 625, 626, 626, 626, 626, 627, 627, 627, 628, 628, 628, 628, 628, 628, 628, 628, 629, 629, 629, 630, 630, 630, 630, 630, 631, 631, 631, 632, 632, 632, 632, 632, 633, 633, 634, 635, 635, 635, 636, 636, 636, 636, 637, 638, 638, 638, 639, 639, 640, 640, 640, 640, 640, 640, 641, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 644, 644, 646, 646, 646, 646, 646, 646, 646, 647, 647, 647, 647, 647, 647, 647, 647, 648, 648, 648, 648, 648, 648, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 650, 648, 648, 647, 647, 646, 646, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 643, 643, 642, 641, 640, 640, 640, 640, 639, 639, 638, 638, 635, 634, 634, 634, 634, 634, 633, 633, 633, 632, 632, 632, 629, 629, 629, 628, 628, 628, 628, 628, 628, 628, 627, 627, 627, 626, 625, 625, 625, 624, 624, 624, 624, 621, 621, 620, 620, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 618, 618, 617, 617, 617, 616, 616, 616, 615, 614, 614, 614, 614, 613, 612, 612, 611, 611, 611, 611, 611, 610, 610, 610, 610, 608, 608, 607, 607, 607, 605, 605, 605, 604, 603, 603, 602, 601, 601, 601, 600, 600, 600, 600, 600, 600, 599, 598, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 597, 596, 596, 595, 595, 595, 594, 594, 592, 592, 592, 591, 590, 590, 590, 590, 590, 586, 586, 586, 590, 590, 590, 590, 589, 588, 588, 588, 588, 588, 588, 587, 587, 587, 586, 586, 585, 582, 580, 580, 585, 585, 586, 584, 584, 582, 582, 582, 582, 582, 582, 580, 580, 580, 580, 580, 580, 581, 583, 583, 583, 584, 584, 583, 580, 578, 576, 576, 578, 580, 580, 580, 580, 580, 579, 579, 579, 579, 581, 581, 583, 583, 583, 579, 578, 577, 577, 577, 579, 581, 581, 580, 580, 580, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 577, 577, 577, 578, 578, 578, 578, 578, 575, 575, 575, 575, 576, 576, 576, 574, 574, 574, 575, 575, 575, 575, 575, 576, 576, 576, 576, 575, 575, 575, 575, 575, 573, 573, 573, 573, 573, 571, 570, 570, 571, 572, 575, 575, 575, 575, 575, 575, 575, 575, 575, 578, 578, 578, 578, 578, 578, 574, 574, 574, 573, 570, 570, 570, 571, 571, 572, 572, 572, 572, 577, 577, 577, 575, 574, 574, 574, 574, 574, 575, 575, 577, 577, 577, 577, 577, 573, 572, 572, 572, 572, 574, 576, 576, 576, 578, 578, 576, 575, 574, 561, 561, 557, 557, 557, 560, 560, 560, 560, 562.5, 564, 565, 565, 566, 566, 567, 568, 568, 569, 569, 570, 570, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 576, 576, 576, 576, 576, 577, 577, 577, 577, 576, 576, 576, 576, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 576, 576, 576, 576, 576, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 583, 583, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 578, 578, 576, 576, 576, 576, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 583, 583, 583, 584, 584, 584, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 589, 589, 589, 589, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 592, 592, 593, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 596, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 603, 603, 603, 603, 602, 602, 602, 602, 603, 604, 604, 605, 605, 605, 605, 605, 606, 606, 606, 607, 607, 607, 607, 608, 608, 608, 609, 609, 609, 609, 609, 609, 610, 610, 610, 610, 610, 610, 610, 610, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, 617, 618, 618, 618, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 615, 614, 612, 612, 612, 612, 612, 612, 612, 612, 611, 611, 610, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 606, 606, 606, 605, 605, 605, 605, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 603, 603, 603, 603, 602, 602, 601, 599, 599, 599, 598, 597, 597, 597, 598, 598, 598, 597, 597, 596, 596, 594, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 592, 592, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 584, 584, 584, 584, 583, 583, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 580, 580, 580, 581, 581, 581, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 578, 579, 579, 579, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 576, 576, 577, 577, 577, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 583, 583, 583, 583, 584, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 589, 589, 591, 591, 591, 589, 589, 589, 591, 591, 591, 593, 593, 591, 589, 589, 562, 562, 562, 562, 562, 563, 563, 563, 563.5, 563.5, 564, 564, 564, 564, 564, 566, 566, 566, 567, 567, 568, 569, 569, 569, 569, 569, 570, 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 580, 580, 580, 580, 580, 579, 579, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 575, 575, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, 573, 574, 574, 574, 574, 574, 574, 574, 574, 573, 571, 571, 571, 571, 571, 571, 572, 572, 572, 571, 571, 570, 570, 570, 570, 570, 570, 571, 571, 571, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 578, 578, 579, 579, 579, 580, 580, 580, 580, 580, 580, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 589, 589, 589, 590, 590, 590, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 585, 585, 585, 585, 584, 584, 583, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 584, 583, 582, 582, 582, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 586, 587, 587, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 593, 593, 593, 593, 595, 596, 596, 596, 596, 596, 596, 596, 597, 597, 598, 599, 599, 599, 599, 599, 599, 600, 600, 601, 601, 601, 601, 602, 603, 603, 604, 604, 604, 605, 605, 605, 606, 607, 607, 607, 608, 608, 610, 610, 610, 610, 611, 611, 611, 611, 612, 612, 612, 613, 613, 614, 615, 615, 615, 615, 615, 617, 618, 619, 620, 620, 623, 624, 624, 624, 624, 625, 625, 625, 625, 628, 628, 628, 628, 628, 629, 629, 629, 629, 634, 634, 635, 637, 638, 639, 641, 641, 643, 643, 644, 644, 648, 648, 648, 644, 644, 644, 648, 649, 649, 566, 565, 561, 559, 559, 563, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 568, 569, 569, 569, 569, 571, 571, 571, 568, 567, 567, 567, 569, 570, 573, 573, 573, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 575, 575, 575, 575, 575, 577, 577, 573, 573, 573, 573, 573, 573, 570, 570, 570, 573, 575, 576, 576, 576, 577, 577, 577, 577, 577, 575, 572, 572, 572, 572, 573, 575, 575, 578, 578, 578, 576, 576, 576, 576, 577, 577, 577, 574, 573, 573, 573, 573, 573, 573, 573, 573, 577, 577, 577, 577, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 574, 574, 574, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 575, 577, 577, 577, 577, 577, 577, 579, 579, 579, 579, 579, 579, 579, 582, 582, 582, 581, 579, 578, 578, 578, 578, 579, 580, 580, 580, 580, 582, 582, 582, 581, 581, 581, 581, 581, 582, 582, 582, 581, 579, 579, 578, 578, 578, 577, 577, 577, 580, 581, 582, 582, 582, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 576, 576, 576, 579, 579, 579, 576, 576, 576, 576, 578, 578, 578, 578, 578, 578, 578, 576, 576, 580, 580, 579, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 573, 573, 573, 573, 573, 577, 577, 577, 577, 577, 575, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 576, 576, 576, 576, 576, 575, 575, 575, 575, 575, 576, 576, 574, 574, 574, 574, 573, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 575, 576, 576, 576, 576, 576, 570, 570, 570, 576, 576, 576, 576, 576, 576, 576, 576, 572, 570, 570, 570, 570, 574, 574, 574, 574, 573, 573, 573, 574, 575, 575, 575, 575, 573, 573, 573, 573, 573, 574, 574, 574, 569, 569, 569, 569, 569, 569, 573, 575, 576, 576, 576, 576, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 572, 572, 574, 574, 574, 572, 572, 572, 572, 572, 572, 572, 574, 574, 574, 574, 575, 575, 576, 576, 576, 576, 572, 572, 572, 574, 574, 574, 575, 575, 575, 577, 577, 577, 577, 575, 575, 575, 573, 573, 573, 573, 576, 576, 576, 576, 574, 574, 574, 575, 575, 575, 575, 575, 575, 578, 578, 578, 578, 576, 576, 576, 574, 574, 574, 574, 575, 582, 582, 582, 574, 572, 572, 574, 574, 576, 576, 576, 576, 576, 576, 576, 576, 576, 574, 572, 572, 573, 577, 577, 577, 577, 578, 579, 579, 579, 579, 580, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 574, 574, 581, 581, 581, 581, 581, 582, 584, 584, 581, 581, 581, 581, 581, 581, 579, 579, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 587, 587, 587, 587, 586, 586, 585, 585, 582, 582, 582, 585, 585, 585, 585, 585, 585, 588, 588, 588, 588, 586, 584, 584, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 589, 589, 589, 589, 589, 593, 593, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 589, 589, 589, 589, 590, 591, 592, 592, 589, 589, 589, 589, 591, 592, 592, 592, 592, 592, 593, 594, 594, 592, 590, 590, 590, 587, 587, 589, 592, 592, 592, 592, 593, 593, 593, 593, 593, 593, 592, 592, 592, 589, 589, 589, 589, 589, 592, 594, 594, 594, 593, 592, 592, 592, 592, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 589, 589, 589, 593, 593, 593, 593, 591, 591, 591, 593, 593, 593, 593, 594, 594, 594, 594, 592, 592, 592, 589, 589, 589, 589, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 591, 591, 590, 590, 590, 590, 589, 589, 589, 589, 589, 595, 595, 593, 588, 588, 589, 589, 589, 589, 592, 592, 592, 592, 592, 592, 593, 593, 593, 592, 590, 590, 589, 589, 585, 585, 585, 591, 591, 591, 591, 591, 591, 589, 588, 588, 588, 588, 588, 588, 588, 590, 592, 592, 592, 592, 591, 587, 587, 587, 587, 588, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 589, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 593, 595, 595, 595, 595, 593, 593, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 597, 597, 597, 598, 598, 596, 596, 594, 593, 593, 593, 597, 597, 597, 597, 601, 601, 601, 601, 601, 601, 601, 601, 601, 603, 603, 603, 603, 603, 603, 606, 606, 606, 606, 609, 609, 609, 609, 609, 609, 609, 609, 611, 613, 613, 613, 613, 613, 614, 615, 619, 619, 619, 619, 620, 620, 620, 620, 620, 622, 623, 623, 624, 624, 625, 625, 626, 626, 627, 627, 627, 628, 628, 629, 629, 630, 632, 633, 633, 633, 634, 637, 638, 639, 639, 640, 641, 642, 643, 644, 645, 645, 645, 646, 646, 648, 648, 649, 652, 652, 652, 654, 654, 656, 656, 656, 657, 658, 661, 662, 662, 664, 664, 664, 664, 664, 666, 667, 667, 668, 669, 670, 671, 672, 675, 677, 679, 681, 682, 683, 683, 687, 687, 690, 690, 694, 696, 696, 696, 698, 699, 700, 700, 701, 704, 704, 707, 707, 709, 710, 711, 713, 717, 720, 721, 721, 727, 730, 730, 732, 733, 738, 738, 746, 746, 746, 747, 751, 752, 753, 754, 757, 757, 758, 758, 759, 760, 760, 760, 762, 764, 765, 767, 773, 773, 780, 780, 782, 783, 785, 787, 788, 790, 799, 801, 809, 809, 809, 806, 806, 806, 825, 825, 825, 825, 571, 571, 567, 567, 567, 567, 568, 569, 569, 569, 569, 569, 569, 573, 575, 576, 576, 576, 576, 574, 574, 574, 578, 578, 578, 576, 576, 576, 577, 579, 579, 579, 579, 577, 577, 577, 577, 578, 578, 578, 574, 574, 574, 577, 579, 579, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 580, 580, 581, 590, 609, 671, 671, 671, 601, 601, 580, 580, 580, 580, 580, 580, 579, 579, 577, 577, 575, 575, 575, 576, 577, 580, 582, 582, 582, 581, 581, 580, 580, 578, 578, 578, 578, 578, 579, 580, 580, 580, 580, 580, 578, 578, 579, 580, 580, 581, 581, 581, 581, 579, 578, 578, 578, 578, 578, 578, 578, 576, 576, 578, 578, 578, 578, 580, 581, 581, 581, 580, 578, 577, 577, 579, 580, 581, 581, 581, 580, 580, 580, 580, 580, 581, 582, 582, 582, 582, 582, 582, 584, 584, 584, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 580, 580, 580, 582, 584, 586, 586, 586, 583, 582, 582, 582, 584, 584, 584, 587, 587, 587, 583, 583, 583, 581, 581, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 585, 585, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 579, 579, 579, 579, 579, 582, 582, 582, 582, 582, 582, 581, 581, 581, 584, 584, 584, 584, 581, 581, 581, 583, 583, 586, 586, 586, 584, 583, 583, 583, 583, 583, 581, 581, 581, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 582, 582, 582, 582, 584, 584, 584, 578, 576, 576, 576, 576, 580, 580, 580, 577, 577, 577, 577, 578, 580, 582, 582, 580, 579, 579, 580, 581, 581, 581, 581, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 577, 577, 577, 577, 576, 576, 579, 579, 582, 582, 582, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 581, 581, 581, 581, 581, 580, 577, 577, 577, 577, 582, 582, 582, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 581, 583, 583, 578, 578, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 579, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 580, 580, 580, 580, 584, 584, 584, 584, 583, 582, 582, 582, 585, 585, 585, 585, 585, 583, 581, 581, 581, 581, 582, 582, 580, 580, 580, 580, 579, 579, 579, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 583, 583, 581, 581, 583, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 579, 579, 579, 581, 582, 583, 583, 583, 582, 582, 582, 582, 582, 582, 584, 584, 582, 582, 581, 581, 580, 580, 580, 583, 584, 584, 586, 586, 586, 588, 588, 592, 592, 592, 586, 585, 585, 587, 590, 591, 591, 590, 589, 589, 587, 587, 583, 582, 584, 588, 590, 590, 593, 593, 593, 587, 587, 587, 588, 588, 588, 587, 587, 587, 587, 587, 587, 588, 590, 590, 590, 590, 590, 590, 592, 592, 592, 592, 592, 592, 592, 591, 589, 589, 589, 592, 592, 594, 594, 592, 592, 592, 592, 593, 594, 594, 594, 594, 594, 594, 594, 594, 594, 601, 602, 602, 602, 599, 599, 599, 599, 596, 596, 596, 601, 601, 601, 601, 597, 597, 596, 596, 596, 601, 601, 601, 600, 599, 599, 602, 605, 605, 605, 605, 604, 603, 603, 603, 603, 606, 608, 608, 608, 606, 600, 599, 599, 601, 603, 603, 603, 603, 603, 603, 603, 603, 603, 605, 605, 607, 610, 610, 610, 609, 609, 609, 603, 603, 603, 603, 604, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 606, 608, 608, 608, 608, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 608, 609, 609, 607, 606, 606, 606, 606, 607, 608, 609, 613, 613, 609, 609, 609, 609, 609, 609, 608, 607, 606, 606, 609, 609, 609, 609, 609, 609, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 610, 610, 610, 607, 607, 608, 608, 608, 608, 610, 613, 613, 616, 616, 616, 616, 614, 614, 614, 614, 610, 610, 610, 614, 614, 614, 614, 615, 615, 615, 615, 615, 615, 613, 612, 612, 612, 612, 615, 615, 615, 614, 616, 616, 620, 620, 621, 620, 620, 620, 620, 621, 621, 621, 621, 620, 619, 619, 619, 619, 619, 621, 621, 623, 623, 624, 624, 624, 624, 624, 624, 624, 625, 625, 625, 625, 624, 624, 624, 624, 625, 625, 625, 625, 631, 633, 633, 633, 633, 629, 629, 630, 630, 630, 630, 630, 635, 636, 636, 636, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 648, 648, 648, 648, 648, 647, 647, 647, 647, 647, 650, 650, 650, 650, 652, 657, 661, 661, 661, 656, 656, 656, 666, 669, 670, 670, 670, 668, 668, 683, 683, 683, 683, 680, 680, 680, 680, 685, 685, 685, 689, 689, 689, 689, 694, 698, 701, 701, 701, 702, 702, 702, 702, 706, 713, 714, 714, 714, 714, 714, 718, 718, 718, 723, 723, 723, 723, 731, 733, 737, 742, 742, 742, 742, 749, 755, 755, 755, 758, 762, 762, 765, 766, 768, 768, 768, 768, 773, 773, 773, 773, 786, 791, 791, 793, 799, 801, 804, 804, 805, 810, 810, 812, 817, 824, 824, 830, 830, 831, 835, 842, 844, 854, 854, 855, 861, 862, 863, 869, 873, 874, 875, 875, 875, 876, 885, 890, 892, 894, 899, 911, 916, 917, 918, 926, 926, 937, 938, 943, 944, 957, 958, 962, 962, 962, 962, 964, 974, 975, 981, 984, 989, 998, 1002, 1008, 1010, 1018, 1020, 1021, 1025, 1028, 1029, 1042, 1045, 1046, 1051, 1059, 1063, 1066, 1078, 1085, 1086, 1096, 1098, 1112, 1114, 1115, 1119, 1121, 1126, 1139, 1142, 1157, 1164, 1165, 1169, 1171, 1195, 1197, 1199, 1199, 1209, 1210, 1225, 1225, 1227, 1242, 1242, 1242, 1245, 1254, 1254, 1264, 1286, 1286, 1286, 1299, 1305, 1324, 1326, 1330, 587, 586, 583, 581, 580, 580, 583, 586, 586, 586, 586, 586, 584, 584, 584, 588, 588, 588, 590, 590, 590, 590, 593, 593, 594, 594, 596, 596, 596, 598, 602, 603, 599, 591, 591, 591, 591, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 588, 588, 588, 588, 589, 589, 589, 588, 588, 587, 587, 587, 588, 588, 588, 588, 587, 587, 587, 591, 591, 591, 589, 589, 589, 589, 589, 595, 595, 587, 587, 591, 591, 591, 591, 591, 593, 593, 593, 593, 593, 593, 590, 589, 589, 589, 594, 594, 594, 594, 593, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 589, 589, 589, 595, 595, 595, 594, 594, 594, 594, 591, 591, 591, 591, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 592, 592, 593, 593, 593, 590, 590, 590, 590, 592, 593, 593, 593, 593, 593, 592, 590, 590, 596, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 592, 592, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 595, 594, 594, 593, 593, 592, 592, 592, 594, 594, 594, 594, 594, 596, 596, 596, 596, 596, 596, 593, 593, 593, 603, 603, 598, 598, 598, 595, 595, 595, 595, 593, 593, 594, 594, 594, 594, 594, 595, 598, 598, 598, 597, 597, 597, 597, 597, 596, 596, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 594, 594, 595, 594, 592, 592, 592, 592, 594, 594, 594, 594, 597, 597, 597, 594, 592, 592, 592, 592, 596, 596, 596, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 595, 595, 596, 596, 598, 598, 596, 594, 594, 594, 594, 594, 594, 595, 600, 600, 596, 595, 594, 593, 591, 591, 592, 593, 593, 593, 593, 593, 593, 593, 593, 592, 592, 592, 592, 593, 593, 596, 596, 595, 595, 595, 595, 595, 594, 594, 594, 597, 597, 597, 596, 596, 596, 594, 593, 593, 593, 594, 594, 594, 594, 595, 596, 596, 596, 596, 596, 597, 597, 597, 597, 596, 596, 596, 596, 596, 595, 593, 593, 593, 593, 593, 594, 596, 596, 596, 596, 596, 596, 596, 596, 594, 594, 594, 594, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 597, 596, 596, 596, 598, 598, 598, 598, 598, 596, 594, 594, 597, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 600, 600, 597, 597, 597, 597, 597, 597, 597, 600, 602, 602, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 602, 602, 599, 599, 599, 604, 604, 604, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 600, 600, 600, 601, 605, 605, 605, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 607, 607, 607, 607, 606, 606, 606, 607, 607, 607, 607, 607, 607, 605, 605, 605, 605, 607, 607, 607, 607, 608, 608, 608, 609, 609, 611, 612, 612, 612, 607, 607, 607, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 610, 610, 610, 610, 610, 613, 613, 613, 613, 614, 614, 614, 614, 614, 615, 615, 615, 615, 615, 615, 614, 613, 613, 615, 617, 620, 620, 618, 616, 614, 614, 617, 622, 622, 618, 616, 616, 616, 617, 618, 618, 620, 620, 623, 623, 623, 623, 623, 623, 624, 698, 803, 859, 747, 635, 635, 623, 623, 623, 623, 624, 626, 626, 626, 626, 624, 621, 621, 621, 620, 620, 620, 625, 625, 625, 625, 625, 625, 623, 623, 623, 623, 625, 630, 630, 630, 629, 629, 629, 629, 625, 625, 627, 629, 629, 631, 631, 628, 626, 626, 626, 626, 626, 628, 628, 630, 630, 631, 631, 631, 631, 633, 633, 633, 633, 632, 631, 631, 635, 637, 637, 637, 637, 637, 639, 639, 641, 642, 642, 638, 638, 633, 633, 633, 633, 634, 638, 638, 638, 638, 643, 643, 643, 643, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 641, 641, 641, 645, 645, 645, 645, 645, 645, 649, 649, 649, 649, 649, 649, 649, 649, 649, 651, 653, 653, 656, 662, 663, 662, 656, 656, 656, 656, 660, 660, 660, 662, 663, 663, 658, 654, 654, 654, 666, 666, 666, 662, 662, 662, 662, 662, 662, 667, 667, 667, 667, 670, 670, 670, 670, 673, 675, 676, 676, 676, 676, 676, 676, 679, 679, 681, 686, 686, 686, 686, 686, 691, 691, 691, 688, 688, 688, 693, 693, 699, 699, 699, 699, 700, 703, 706, 708, 712, 712, 713, 713, 717, 717, 718, 718, 718, 721, 732, 732, 732, 732, 733, 733, 733, 733, 737, 737, 731, 731, 731, 731, 742, 742, 742, 746, 746, 752, 755, 757, 760, 763, 764, 764, 764, 768, 768, 775, 779, 779, 779, 780, 780, 782, 786, 787, 788, 791, 799, 799, 802, 802, 807, 807, 808, 811, 811, 816, 816, 826, 826, 826, 830, 833, 842, 847, 849, 856, 858, 858, 861, 861, 863, 872, 877, 881, 883, 883, 887, 905, 905, 907, 912, 925, 925, 925, 926, 926, 931, 952, 952, 955, 956, 963, 966, 966, 977, 991, 992, 996, 996, 1005, 1016, 1017, 1017, 1019, 1019, 1040, 1040, 1046, 1046, 1047, 1063, 1063, 1063, 1078, 1087, 1088, 1112, 1116, 1122, 1122, 1122, 1123, 1142, 1147, 1148, 1155, 1164, 1175, 1186, 1192, 1192, 1201, 1208, 1208, 1215, 1232, 1241, 1244, 1256, 1261, 1270, 1272, 1279, 1282, 1292, 1312, 1322, 1339, 1339, 1339, 1339, 1342, 1346, 1372, 1382, 1388, 1389, 1404, 1414, 1418, 1429, 1446, 1450, 1457, 1457, 1480, 1491, 1499, 1499, 1519, 1540, 1549, 1551, 1560, 1561, 1601, 1606, 1606, 1606, 1627, 1632, 1633, 1671, 1677, 1682, 1702, 1727, 1727, 1732, 1734, 1734, 1761, 1788, 1794, 1798, 1822, 1831, 1843, 1848, 1851, 1871, 1907, 1907, 1907, 1918, 1939, 1959, 1966, 1966, 1990, 2014, 2030, 2050, 2052, 2055, 2080, 2103, 2110, 2142, 2143, 2179, 2242, 2242, 2244, 2244, 2244, 2247, 2273, 2288, 2307, 2318, 2344, 2353, 2357, 2377, 2406, 2418, 2453, 2456, 2471, 2507, 2518, 2523, 2571, 2573, 2579, 2609, 2625, 2644, 2670, 2690, 2690, 623, 623, 623, 621, 613, 613, 613, 613, 615, 615, 619, 622, 622, 622, 622, 622, 619, 619, 619, 618, 618, 618, 619, 619, 619, 619, 621, 621, 621, 621, 622, 622, 622, 622, 621, 621, 619, 619, 617, 617, 617, 617, 615, 615, 615, 615, 620, 621, 623, 623, 623, 622, 621, 621, 619, 619, 619, 619, 619, 619, 620, 620, 620, 620, 620, 620, 620, 622, 622, 622, 618, 618, 618, 617, 617, 619, 619, 619, 619, 618, 618, 618, 618, 618, 621, 621, 615, 615, 614, 614, 614, 618, 618, 619, 619, 619, 619, 619, 619, 619, 619, 619, 618, 618, 618, 618, 618, 618, 619, 621, 622, 622, 622, 622, 621, 620, 620, 620, 620, 620, 620, 620, 618, 618, 618, 618, 620, 620, 620, 619, 619, 619, 619, 621, 625, 625, 621, 619, 619, 617, 617, 617, 617, 622, 627, 627, 625, 625, 625, 618, 618, 617, 619, 620, 622, 624, 624, 625, 626, 626, 626, 622, 622, 622, 622, 622, 622, 622, 622, 622, 623, 623, 623, 627, 627, 627, 627, 626, 626, 626, 626, 626, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 624, 624, 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 625, 628, 628, 628, 628, 628, 628, 627, 627, 627, 627, 627, 627, 627, 627, 628, 628, 628, 629, 629, 629, 629, 629, 631, 631, 626, 626, 626, 626, 630, 630, 626, 624, 624, 624, 625, 625, 625, 625, 625, 625, 625, 625, 628, 628, 628, 628, 625, 625, 633, 633, 633, 628, 628, 628, 628, 628, 628, 631, 631, 629, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 625, 625, 625, 627, 629, 631, 633, 633, 636, 636, 637, 635, 633, 633, 630, 625, 625, 625, 625, 625, 625, 625, 630, 631, 631, 631, 631, 631, 631, 630, 630, 631, 631, 631, 631, 631, 631, 628, 628, 628, 631, 635, 635, 633, 631, 629, 628, 628, 628, 628, 628, 628, 628, 632, 632, 635, 635, 635, 631, 631, 630, 630, 630, 630, 630, 630, 636, 638, 638, 638, 638, 635, 635, 634, 634, 634, 634, 634, 636, 636, 633, 633, 635, 635, 635, 635, 636, 637, 637, 637, 637, 634, 634, 634, 637, 637, 637, 636, 636, 636, 636, 636, 636, 636, 635, 635, 635, 635, 635, 636, 638, 638, 638, 638, 638, 634, 631, 631, 639, 639, 639, 639, 639, 639, 641, 641, 641, 641, 641, 644, 644, 644, 644, 642, 641, 641, 641, 641, 642, 642, 642, 642, 638, 637, 637, 640, 647, 647, 647, 647, 640, 640, 640, 640, 642, 645, 645, 645, 645, 645, 645, 643, 643, 643, 644, 644, 645, 645, 645, 645, 651, 653, 653, 646, 646, 646, 646, 646, 648, 650, 650, 650, 650, 650, 650, 652, 654, 654, 654, 652, 652, 651, 651, 651, 655, 655, 655, 655, 650, 650, 650, 650, 650, 653, 653, 653, 653, 653, 653, 653, 653, 653, 654, 654, 655, 655, 655, 655, 658, 658, 658, 658, 661, 667, 667, 662, 655, 655, 655, 655, 660, 661, 661, 661, 661, 660, 660, 660, 659, 659, 659, 659, 659, 664, 664, 664, 664, 663, 663, 663, 663, 661, 661, 661, 673, 675, 672, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 669, 669, 669, 671, 671, 671, 671, 675, 675, 675, 675, 669, 669, 669, 669, 673, 676, 677, 677, 677, 677, 677, 677, 679, 681, 681, 681, 681, 680, 679, 679, 679, 679, 679, 679, 679, 680, 683, 684, 685, 686, 688, 712, 712, 712, 712, 686, 686, 686, 686, 686, 692, 692, 694, 694, 691, 691, 691, 691, 691, 691, 687, 687, 687, 687, 694, 694, 694, 694, 694, 696, 699, 699, 699, 699, 694, 694, 700, 705, 705, 703, 697, 697, 697, 697, 710, 710, 709, 708, 708, 708, 708, 712, 720, 725, 724, 714, 714, 714, 716, 723, 723, 715, 715, 715, 715, 716, 719, 719, 720, 723, 727, 738, 738, 738, 725, 725, 725, 726, 730, 730, 731, 731, 734, 735, 735, 735, 736, 742, 742, 744, 744, 744, 744, 748, 748, 748, 748, 748, 751, 751, 754, 757, 757, 763, 763, 763, 763, 763, 770, 770, 770, 772, 773, 780, 780, 780, 780, 781, 784, 793, 793, 797, 797, 797, 799, 799, 799, 800, 810, 811, 811, 811, 813, 819, 822, 825, 831, 836, 851, 851, 832, 832, 852, 852, 852, 852, 852, 855, 855, 856, 862, 863, 865, 867, 873, 878, 879, 880, 884, 896, 896, 898, 910, 911, 918, 922, 932, 941, 941, 941, 941, 941, 941, 942, 944, 953, 953, 956, 962, 968, 972, 973, 975, 983, 985, 987, 995, 995, 1002, 1009, 1014, 1014, 1018, 1019, 1024, 1036, 1044, 1046, 1052, 1064, 1068, 1071, 1072, 1077, 1086, 1087, 1098, 1098, 1103, 1107, 1118, 1129, 1129, 1129, 1130, 1130, 1150, 1163, 1164, 1166, 1166, 1185, 1196, 1210, 1212, 1214, 1214, 1214, 1232, 1243, 1246, 1260, 1266, 1268, 1268, 1268, 1281, 1297, 1309, 1321, 1328, 1342, 1342, 1362, 1366, 1396, 1406, 1406, 1409, 1415, 1447, 1447, 1454, 1457, 1469, 1491, 1494, 1511, 1539, 1544, 1555, 1559, 1591, 1611, 1611, 1623, 1637, 1659, 1670, 1679, 1692, 1696, 1704, 1733, 1760, 1762, 1780, 1791, 1794, 1813, 1831, 1847, 1864, 1872, 1889, 1924, 1926, 1941, 1960, 1963, 1987, 2010, 2016, 2029, 2042, 2071, 2084, 2103, 2118, 2127, 2173, 2173, 2175, 2221, 2233, 2244, 2276, 2276, 2289, 2325, 2357, 2365, 2387, 2396, 2419, 2426, 2456, 2474, 2498, 2516, 2539, 2568, 2580, 2621, 2633, 2644, 2658, 2658, 2691, 2736, 2765, 2792, 2809, 2832, 2852, 2866, 2898, 2924, 2980, 2991, 3002, 3002, 3019, 3063, 3081, 3112, 3153, 3176, 3195, 3208, 3256, 3265, 3290, 3336, 3375, 3396, 3411, 3476, 3476, 3477, 3542, 3581, 3609, 3609, 3622, 3703, 3706, 3760, 3763, 3799, 3835, 3869, 3897, 3944, 3967, 3972, 3973, 4075, 4087, 4115, 4147, 4165, 4219, 4258, 4259, 4333, 4393, 4413, 4423, 4494, 4517, 4518, 4556, 4613, 4685, 4716, 4778, 4786, 4820, 4887, 4892, 4938, 4990, 5020, 5080, 5107, 5191, 5203, 5263, 5267, 5300, 5379, 5426, 5457, 5478, 5551, 5584, 5638, 5746, 5832, 5832, 5871, 5871, 5940, 5969, 5988, 6103, 6128, 6138, 690, 686, 684, 684, 684, 684, 684, 687, 687, 687, 687, 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 687, 687, 687, 687, 687, 687, 684, 684, 684, 684, 687, 687, 687, 687, 687, 687, 687, 690, 690, 690, 690, 686, 682, 681, 681, 681, 684, 684, 684, 684, 684, 684, 684, 684, 687, 687, 687, 687, 685, 685, 681, 681, 680, 680, 680, 683, 683, 683, 682, 682, 682, 682, 683, 685, 685, 685, 681, 681, 681, 681, 679, 679, 679, 679, 679, 679, 679, 679, 679, 680, 680, 680, 679, 679, 679, 679, 681, 682, 682, 686, 688, 688, 688, 681, 681, 681, 681, 681, 683, 683, 683, 683, 683, 685, 685, 685, 677, 677, 677, 677, 679, 679, 679, 684, 685, 685, 685, 685, 685, 686, 686, 686, 686, 686, 686, 686, 685, 685, 685, 685, 685, 685, 685, 685, 686, 686, 686, 687, 687, 687, 687, 687, 689, 689, 689, 689, 689, 689, 688, 683, 683, 683, 683, 683, 686, 686, 689, 690, 690, 690, 690, 690, 687, 687, 689, 689, 692, 692, 692, 692, 692, 691, 689, 689, 691, 691, 691, 691, 691, 693, 693, 693, 693, 693, 695, 698, 698, 698, 697, 695, 695, 695, 695, 694, 694, 694, 696, 696, 696, 694, 694, 694, 694, 695, 695, 695, 695, 695, 690, 690, 697, 697, 697, 697, 698, 698, 699, 699, 699, 699, 699, 696, 696, 696, 696, 696, 702, 702, 702, 702, 701, 701, 701, 701, 701, 701, 701, 699, 697, 697, 697, 697, 697, 697, 698, 698, 698, 698, 698, 704, 704, 704, 704, 704, 704, 704, 700, 700, 700, 700, 700, 698, 698, 698, 700, 703, 703, 706, 706, 706, 706, 710, 710, 706, 706, 706, 706, 705, 704, 704, 704, 704, 704, 704, 710, 710, 704, 703, 703, 703, 703, 703, 705, 705, 705, 712, 712, 712, 711, 711, 706, 706, 709, 709, 706, 706, 709, 709, 707, 707, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 705, 705, 706, 709, 710, 711, 711, 711, 711, 711, 711, 711, 707, 707, 714, 715, 715, 715, 715, 715, 714, 714, 714, 714, 715, 715, 715, 717, 717, 717, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 715, 715, 715, 716, 719, 719, 717, 717, 717, 717, 723, 724, 735, 735, 722, 722, 722, 722, 725, 726, 726, 726, 724, 722, 722, 722, 728, 729, 729, 729, 729, 729, 729, 729, 729, 730, 733, 733, 733, 733, 733, 733, 732, 732, 732, 732, 731, 731, 731, 731, 731, 731, 733, 733, 733, 733, 734, 737, 737, 737, 737, 732, 732, 732, 732, 735, 745, 745, 747, 747, 747, 740, 740, 740, 740, 750, 750, 750, 747, 747, 746, 746, 746, 746, 736, 736, 739, 744, 744, 745, 745, 746, 748, 753, 753, 749, 747, 744, 743, 743, 746, 751, 751, 753, 753, 755, 755, 755, 755, 755, 755, 755, 755, 760, 760, 760, 757, 757, 762, 762, 762, 762, 762, 762, 760, 760, 760, 760, 760, 760, 760, 759, 759, 759, 763, 765, 766, 766, 766, 766, 766, 766, 766, 766, 774, 774, 774, 774, 774, 774, 772, 772, 772, 772, 772, 772, 772, 776, 776, 776, 776, 780, 780, 780, 778, 776, 776, 776, 776, 780, 780, 780, 786, 787, 787, 794, 795, 795, 795, 788, 788, 788, 788, 788, 788, 794, 798, 798, 806, 806, 806, 805, 796, 796, 796, 798, 800, 801, 801, 801, 799, 799, 799, 806, 809, 809, 809, 813, 813, 813, 815, 815, 815, 812, 812, 812, 818, 819, 821, 821, 822, 822, 823, 823, 823, 829, 837, 837, 834, 830, 830, 829, 829, 829, 832, 841, 841, 841, 841, 845, 845, 846, 846, 846, 845, 845, 846, 853, 853, 855, 856, 861, 863, 863, 863, 863, 863, 866, 866, 866, 876, 877, 881, 883, 883, 883, 881, 881, 881, 895, 895, 895, 895, 897, 901, 906, 906, 907, 909, 917, 920, 921, 926, 931, 933, 933, 937, 938, 938, 940, 944, 948, 948, 948, 948, 959, 963, 964, 964, 972, 974, 975, 978, 978, 980, 981, 993, 994, 1002, 1002, 1005, 1005, 1008, 1009, 1011, 1012, 1023, 1035, 1039, 1039, 1044, 1044, 1054, 1054, 1063, 1063, 1063, 1068, 1069, 1082, 1085, 1085, 1085, 1094, 1105, 1118, 1128, 1128, 1134, 1134, 1135, 1150, 1155, 1155, 1165, 1169, 1169, 1170, 1198, 1206, 1206, 1205, 1205, 1205, 1232, 1232, 1232, 1241, 1241, 1249, 1267, 1269, 1274, 1286, 1288, 1315, 1315, 1326, 1326, 1341, 1342, 1347, 1354, 1356, 1366, 1374, 1408, 1408, 1419, 1420, 1426, 1450, 1450, 1456, 1456, 1479, 1488, 1494, 1502, 1513, 1523, 1543, 1545, 1545, 1556, 1569, 1592, 1593, 1604, 1631, 1639, 1660, 1665, 1678, 1691, 1701, 1739, 1739, 1739, 1750, 1767, 1778, 1794, 1804, 1806, 1817, 1824, 1850, 1866, 1875, 1905, 1914, 1919, 1930, 1930, 1947, 1991, 1996, 2000, 2033, 2046, 2071, 2071, 2073, 2083, 2136, 2150, 2163, 2181, 2183, 2202, 2227, 2237, 2244, 2254, 2312, 2312, 2350, 2360, 2389, 2391, 2391, 2450, 2477, 2481, 2519, 2527, 2558, 2593, 2597, 2635, 2663, 2673, 2704, 2709, 2774, 2777, 2812, 2828, 2886, 2903, 2927, 2939, 2990, 3064, 3069, 3071, 3117, 3153, 3197, 3244, 3261, 3284, 3325, 3363, 3423, 3468, 3486, 3500, 3551, 3596, 3627, 3682, 3692, 3719, 3780, 3785, 3850, 3907, 3913, 3970, 4009, 4061, 4121, 4180, 4180, 4199, 4199, 4259, 4339, 4378, 4404, 4423, 4516, 4542, 4580, 4582, 4686, 4704, 4773, 4775, 4849, 4892, 4944, 4964, 5008, 5118, 5128, 5168, 5175, 5267, 5356, 5358, 5420, 5489, 5529, 5562, 5618, 5672, 5727, 5789, 5813, 5872, 5941, 5971, 6009, 6097, 6098, 6263, 6269, 6346, 6408, 6431, 6450, 6616, 7069, 7069, 7069, 6952, 6952, 6952, 6987, 7055, 7114, 7231, 7242, 7296, 7309, 7366, 7538, 7577, 7629, 7706, 7784, 7810, 7864, 7942, 7963, 8077, 8195, 8280, 8353, 8418, 8424, 8516, 8563, 8692, 8769, 8856, 8929, 9014, 9063, 9122, 9138, 9282, 9387, 9455, 9564, 9631, 9709, 9851, 9852, 9905, 10031, 10156, 10228, 10330, 10381, 10451, 10606, 10647, 10661, 10878, 10886, 11042, 11177, 11279, 11291, 11403, 11488, 11617, 11714, 11869, 11955, 12029, 12089, 12288, 12338, 12414, 12526, 12678, 12708, 12790, 12950, 13142, 13240, 13256, 13403, 13556, 13563, 13719, 13911, 13964, 14027, 14112, 14255, 14419, 828, 828, 851, 851, 826, 826, 826, 825, 825, 825, 829, 829, 829, 829, 818, 818, 818, 818, 820, 820, 820, 820, 818, 817, 817, 817, 816, 816, 816, 824, 824, 823, 823, 823, 823, 821, 818, 818, 818, 818, 818, 817, 813, 813, 813, 813, 813, 815, 815, 815, 815, 814, 812, 808, 808, 808, 812, 812, 812, 812, 807, 807, 807, 807, 808, 808, 808, 808, 808, 808, 815, 830, 830, 814, 806, 804, 800, 800, 799, 799, 799, 799, 809, 809, 809, 806, 806, 806, 806, 808, 808, 808, 807, 800, 800, 800, 802, 805, 805, 805, 805, 804, 804, 804, 804, 808, 811, 811, 810, 810, 810, 810, 810, 810, 812, 813, 812, 812, 812, 812, 811, 811, 811, 811, 811, 817, 819, 819, 817, 813, 812, 812, 813, 814, 814, 814, 814, 815, 816, 817, 817, 817, 817, 817, 817, 817, 817, 819, 819, 819, 819, 813, 813, 813, 816, 821, 821, 821, 819, 819, 819, 819, 819, 816, 816, 816, 819, 820, 820, 822, 826, 826, 827, 827, 827, 828, 828, 828, 826, 826, 826, 826, 832, 832, 832, 831, 821, 821, 830, 830, 830, 828, 827, 826, 826, 826, 833, 833, 833, 833, 838, 838, 840, 846, 846, 844, 833, 833, 828, 828, 828, 833, 835, 836, 836, 836, 836, 834, 834, 834, 834, 839, 839, 840, 840, 840, 843, 843, 843, 842, 842, 842, 842, 846, 846, 846, 846, 836, 836, 836, 836, 837, 837, 837, 837, 837, 837, 837, 843, 847, 848, 848, 848, 848, 848, 848, 848, 849, 854, 854, 854, 852, 848, 848, 848, 849, 855, 855, 855, 854, 852, 848, 848, 848, 850, 850, 850, 850, 852, 852, 854, 854, 854, 854, 854, 854, 856, 856, 856, 859, 859, 859, 859, 859, 851, 851, 851, 851, 860, 865, 865, 865, 865, 858, 858, 859, 862, 862, 862, 863, 863, 863, 853, 853, 853, 853, 862, 862, 862, 862, 862, 864, 867, 867, 866, 866, 866, 865, 865, 865, 867, 867, 867, 875, 1101, 1101, 869, 869, 867, 867, 861, 861, 863, 868, 870, 872, 872, 872, 876, 876, 876, 876, 878, 878, 878, 875, 875, 875, 875, 879, 880, 880, 880, 880, 880, 875, 875, 875, 873, 873, 885, 885, 885, 885, 885, 885, 885, 885, 888, 888, 888, 888, 881, 881, 881, 884, 891, 894, 908, 908, 897, 897, 897, 897, 897, 897, 896, 896, 898, 898, 898, 899, 899, 899, 896, 896, 896, 898, 906, 906, 906, 910, 915, 915, 915, 913, 911, 911, 913, 917, 917, 917, 918, 918, 918, 918, 919, 919, 919, 925, 926, 926, 926, 928, 928, 928, 928, 924, 924, 924, 926, 939, 939, 933, 931, 931, 931, 932, 934, 938, 940, 940, 940, 940, 940, 945, 945, 945, 945, 945, 945, 949, 949, 949, 949, 949, 949, 950, 955, 965, 965, 965, 965, 965, 960, 960, 960, 971, 971, 971, 963, 963, 963, 965, 965, 966, 966, 966, 966, 968, 971, 973, 973, 972, 968, 968, 968, 979, 979, 978, 978, 978, 978, 987, 987, 989, 989, 989, 983, 983, 983, 983, 984, 984, 985, 985, 989, 994, 997, 998, 998, 998, 1005, 1005, 1005, 1003, 1003, 1003, 1006, 1006, 1006, 1010, 1012, 1012, 1013, 1013, 1015, 1015, 1015, 1015, 1019, 1024, 1024, 1025, 1028, 1032, 1032, 1032, 1032, 1032, 1033, 1033, 1033, 1038, 1047, 1047, 1046, 1047, 1047, 1047, 1052, 1052, 1056, 1056, 1056, 1056, 1056, 1056, 1075, 1075, 1075, 1074, 1074, 1074, 1084, 1084, 1090, 1090, 1090, 1089, 1089, 1089, 1093, 1101, 1132, 1132, 1109, 1109, 1109, 1147, 1147, 1146, 1112, 1112, 1112, 1119, 1130, 1132, 1132, 1136, 1134, 1142, 1142, 1142, 1142, 1144, 1160, 1160, 1164, 1172, 1172, 1172, 1165, 1164, 1173, 1177, 1180, 1180, 1186, 1197, 1197, 1202, 1202, 1214, 1214, 1218, 1228, 1228, 1229, 1229, 1230, 1240, 1245, 1258, 1289, 1293, 1293, 1293, 1293, 1289, 1289, 1289, 1289, 1292, 1298, 1310, 1310, 1317, 1324, 1338, 1342, 1342, 1346, 1346, 1355, 1355, 1374, 1374, 1374, 1387, 1389, 1405, 1405, 1405, 1429, 1431, 1440, 1440, 1440, 1459, 1471, 1475, 1482, 1486, 1489, 1502, 1529, 1529, 1529, 1542, 1634, 1634, 1589, 1589, 1589, 1589, 1603, 1609, 1620, 1633, 1644, 1644, 1670, 1673, 1695, 1696, 1704, 1704, 1731, 1733, 1763, 1763, 1777, 1787, 1791, 1809, 1814, 1828, 1858, 1859, 1877, 1893, 1898, 1900, 1917, 1933, 1969, 1970, 1990, 1992, 2027, 2055, 2111, 2114, 2114, 2114, 2114, 2114, 2147, 2159, 2163, 2189, 2189, 2219, 2242, 2256, 2284, 2288, 2301, 2356, 2367, 2389, 2441, 2441, 2453, 2453, 2478, 2490, 2519, 2533, 2567, 2583, 2589, 2630, 2644, 2645, 2674, 2733, 2748, 2772, 2780, 2812, 2872, 2877, 2894, 2932, 2944, 2964, 2993, 3040, 3096, 3113, 3125, 3130, 3161, 3204, 3217, 3275, 3307, 3317, 3352, 3382, 3400, 3464, 3498, 3508, 3558, 3586, 3590, 3637, 3672, 3742, 3821, 3821, 3833, 3833, 3895, 3924, 3928, 3989, 4025, 4058, 4112, 4143, 4153, 4202, 4251, 4288, 4355, 4394, 4394, 4462, 4469, 4471, 4536, 4592, 4645, 4701, 4731, 4797, 4806, 4888, 4915, 4943, 4977, 5057, 5102, 5161, 5223, 5255, 5292, 5386, 5399, 5505, 5534, 5615, 5674, 5741, 5762, 5856, 5920, 6016, 6049, 6124, 6200, 6296, 6307, 6417, 6476, 6581, 6711, 6733, 6831, 6890, 6921, 7033, 7180, 7234, 7295, 7372, 7478, 7593, 7718, 7752, 7886, 7968, 8047, 8084, 8253, 8307, 8386, 8445, 8500, 8652, 8776, 8816, 8949, 9010, 9118, 9198, 9329, 9394, 9527, 9614, 9666, 9797, 9875, 9983, 10008, 10197, 10270, 10428, 10503, 10672, 10681, 10821, 10940, 11021, 11157, 11186, 11416, 11501, 11560, 11756, 11768, 11907, 12090, 12233, 12242, 12459, 12513, 12606, 12863, 12863, 12959, 13173, 13233, 13316, 13502, 13593, 13704, 13790, 13963, 14031, 14263, 14380, 14504, 14684, 14778, 15165, 15165, 15301, 15466, 15474, 15719, 15775, 15929, 15991, 16132, 16339, 16516, 16732, 16898, 16914, 17090, 17178, 17284, 17664, 17755, 17893, 18094, 18227, 18344, 18474, 18650, 18733, 19017, 19122, 19352, 19459, 19711, 19818, 19932, 20133, 20253, 20571, 20693, 20915, 21093, 21157, 21249, 21437, 21640, 21852, 22113, 22635, 22748, 22748, 22823, 22868, 23171, 23470, 23651, 23827, 24001, 24257, 24399, 24566, 24845, 25078, 25414, 25582, 25787, 25913, 26151, 26376, 26543, 26767, 26968, 27204, 27457, 27670, 27859, 28141, 28388, 28439, 28752, 29112, 29291, 29522, 29819, 30054, 30322, 30510, 30797, 30962, 31063, 31353, 31610, 31912, 32174, 32509, 32750, 33016, 1128, 1110, 1100, 1100, 1095, 1095, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1092, 1092, 1092, 1092, 1091, 1078, 1077, 1077, 1082, 1082, 1082, 1078, 1078, 1078, 1080, 1080, 1080, 1080, 1080, 1078, 1079, 1077, 1077, 1074, 1068, 1068, 1068, 1086, 1102, 1102, 1081, 1068, 1068, 1068, 1068, 1073, 1147, 1167, 1167, 1095, 1059, 1057, 1057, 1057, 1060, 1060, 1060, 1060, 1057, 1053, 1053, 1053, 1051, 1051, 1051, 1051, 1049, 1049, 1049, 1049, 1047, 1047, 1047, 1047, 1045, 1045, 1045, 1045, 1044, 1044, 1044, 1044, 1048, 1048, 1048, 1043, 1043, 1043, 1041, 1041, 1041, 1041, 1045, 1049, 1051, 1051, 1050, 1050, 1046, 1042, 1041, 1041, 1041, 1041, 1047, 1047, 1047, 1047, 1047, 1056, 1057, 1057, 1057, 1057, 1057, 1048, 1048, 1060, 1060, 1048, 1048, 1056, 1059, 1059, 1059, 1059, 1065, 1065, 1065, 1065, 1062, 1062, 1062, 1062, 1062, 1062, 1063, 1063, 1063, 1063, 1062, 1062, 1062, 1062, 1066, 1067, 1070, 1070, 1074, 1074, 1074, 1070, 1070, 1070, 1077, 1081, 1081, 1081, 1081, 1077, 1077, 1077, 1083, 1083, 1084, 1084, 1084, 1080, 1080, 1080, 1086, 1090, 1090, 1090, 1090, 1090, 1091, 1091, 1093, 1093, 1093, 1092, 1090, 1090, 1090, 1100, 1101, 1101, 1101, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1100, 1103, 1108, 1110, 1110, 1107, 1107, 1107, 1107, 1111, 1111, 1111, 1112, 1112, 1109, 1105, 1105, 1107, 1111, 1115, 1115, 1115, 1115, 1119, 1119, 1119, 1119, 1116, 1113, 1113, 1116, 1124, 1126, 1129, 1129, 1129, 1129, 1129, 1129, 1122, 1122, 1122, 1120, 1120, 1120, 1129, 1130, 1130, 1130, 1137, 1137, 1127, 1127, 1129, 1130, 1136, 1141, 1141, 1141, 1142, 1142, 1142, 1141, 1140, 1140, 1138, 1138, 1138, 1138, 1138, 1144, 1144, 1144, 1144, 1150, 1150, 1147, 1146, 1146, 1146, 1146, 1152, 1158, 1158, 1158, 1158, 1158, 1158, 1156, 1156, 1156, 1156, 1154, 1154, 1154, 1159, 1162, 1162, 1162, 1162, 1162, 1159, 1159, 1156, 1156, 1156, 1162, 1162, 1162, 1162, 1166, 1172, 1172, 1172, 1171, 1169, 1169, 1170, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1175, 1175, 1175, 1175, 1176, 1176, 1177, 1177, 1177, 1177, 1177, 1178, 1178, 1178, 1179, 1180, 1180, 1180, 1180, 1180, 1183, 1187, 1187, 1187, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1198, 1198, 1198, 1200, 1204, 1204, 1200, 1199, 1199, 1199, 1199, 1206, 1206, 1206, 1206, 1208, 1208, 1208, 1212, 1220, 1230, 1230, 1210, 1210, 1210, 1210, 1216, 1216, 1216, 1216, 1216, 1221, 1224, 1224, 1224, 1227, 1231, 1231, 1231, 1231, 1231, 1233, 1233, 1234, 1239, 1239, 1243, 1250, 1251, 1251, 1255, 1255, 1255, 1255, 1257, 1258, 1259, 1259, 1259, 1275, 1275, 1275, 1273, 1269, 1269, 1269, 1269, 1278, 1280, 1282, 1282, 1282, 1299, 1299, 1299, 1299, 1296, 1296, 1296, 1296, 1308, 1308, 1313, 1314, 1318, 1318, 1318, 1319, 1319, 1319, 1317, 1315, 1315, 1316, 1316, 1316, 1320, 1320, 1320, 1320, 1342, 1342, 1340, 1340, 1341, 1343, 1345, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1367, 1373, 1373, 1376, 1376, 1376, 1376, 1378, 1380, 1385, 1385, 1385, 1385, 1398, 1398, 1400, 1400, 1400, 1400, 1400, 1400, 1398, 1394, 1394, 1399, 1414, 1428, 1428, 1436, 1436, 1436, 1436, 1436, 1438, 1441, 1441, 1448, 1448, 1455, 1458, 1458, 1458, 1458, 1458, 1461, 1463, 1474, 1474, 1474, 1474, 1474, 1484, 1492, 1492, 1492, 1495, 1501, 1505, 1505, 1505, 1505, 1505, 1505, 1513, 1514, 1516, 1527, 1529, 1543, 1547, 1551, 1551, 1551, 1562, 1562, 1562, 1571, 1573, 1574, 1580, 1586, 1588, 1588, 1594, 1595, 1608, 1610, 1612, 1626, 1627, 1629, 1629, 1629, 1629, 1646, 1646, 1655, 1666, 1666, 1671, 1674, 1683, 1683, 1683, 1683, 1698, 1704, 1705, 1709, 1710, 1710, 1737, 1741, 1741, 1752, 1759, 1760, 1768, 1787, 1793, 1797, 1797, 1817, 1818, 1819, 1822, 1837, 1845, 1850, 1850, 1850, 1880, 1887, 1891, 1900, 1900, 1903, 1908, 1923, 1931, 1948, 1955, 1973, 1992, 1993, 1995, 2001, 2001, 2034, 2047, 2076, 2083, 2083, 2089, 2094, 2100, 2130, 2160, 2160, 2184, 2184, 2184, 2204, 2205, 2205, 2218, 2247, 2261, 2269, 2273, 2306, 2317, 2319, 2338, 2371, 2388, 2394, 2402, 2421, 2438, 2467, 2467, 2486, 2517, 2547, 2549, 2555, 2567, 2612, 2612, 2627, 2627, 2668, 2705, 2722, 2729, 2742, 2769, 2783, 2822, 2831, 2869, 2871, 2896, 2916, 2934, 2993, 3010, 3013, 3054, 3082, 3090, 3125, 3152, 3187, 3210, 3224, 3236, 3251, 3298, 3320, 3363, 3395, 3424, 3460, 3483, 3534, 3549, 3566, 3634, 3675, 3705, 3734, 3746, 3776, 3805, 3830, 3881, 3893, 3956, 3973, 4027, 4028, 4121, 4165, 4207, 4221, 4243, 4310, 4369, 4379, 4439, 4488, 4546, 4573, 4580, 4611, 4684, 4775, 4776, 4841, 4877, 4949, 4991, 5054, 5086, 5129, 5183, 5231, 5295, 5340, 5393, 5469, 5480, 5575, 5638, 5683, 5741, 5765, 5855, 5895, 5975, 6025, 6159, 6175, 6259, 6288, 6375, 6395, 6509, 6589, 6593, 6704, 6796, 6840, 6913, 6977, 7039, 7108, 7186, 7272, 7357, 7388, 7520, 7557, 7651, 7752, 7818, 7901, 7964, 8227, 8227, 8313, 8313, 8417, 8477, 8528, 8666, 8742, 8826, 8862, 8996, 9037, 9077, 9235, 9280, 9442, 9460, 9546, 9631, 9748, 9850, 9960, 10005, 10197, 10335, 10428, 10428, 10579, 10679, 10706, 10915, 10971, 11087, 11184, 11268, 11464, 11544, 11725, 11815, 11950, 12013, 12213, 12318, 12458, 12648, 12785, 12867, 13057, 13207, 13362, 13443, 13609, 13809, 13969, 14212, 14375, 14566, 14706, 14982, 15115, 15282, 15522, 15700, 15973, 16113, 16184, 16534, 16651, 16934, 17006, 17381, 17564, 17695, 17900, 18103, 18362, 18561, 18755, 18864, 19122, 19394, 19530, 19789, 19984, 20250, 20374, 20496, 20701, 21017, 21314, 21380, 21688, 21825, 22053, 22280, 22553, 22765, 23048, 23203, 23451, 23612, 23841, 24163, 24402, 24675, 24849, 25240, 25436, 25568, 25897, 26159, 26484, 26630, 26894, 27079, 27406, 27556, 27878, 28136, 28399, 28706, 28864, 29164, 29377, 29671, 30071, 30297, 30594, 30905, 31124, 31395, 31604, 31858, 32236, 32624, 33033, 33260, 33459, 33678, 33919, 34317, 34633, 35133, 35387, 35758, 35896, 36141, 36499, 36908, 37266, 37794, 38078, 38166, 38513, 38817, 39220, 39698, 40054, 40420, 40750, 40964, 41240, 41606, 41927, 42415, 42612, 43225, 43456, 43794, 44030, 44334, 44829, 45115, 45537, 46061, 46667, 46836, 47302, 47406, 47690, 48030, 48588, 48888, 50178, 50184, 50548, 50664, 51076, 51283, 51911, 52389, 52911, 53395, 53808, 53994, 54470, 54877, 55414, 55813, 56408, 57003, 57484, 57835, 58209, 58802, 59002, 59588, 60062, 60470, 61322, 61640, 61998, 62586, 62926, 63174, 63589, 63756, 64176, 64529, 64657, 64657, 64806, 64933, 65028, 65219, 65254, 65254, 65257, 65257, 65261, 65261, 65261, 65261, 1612, 1600, 1594, 1592, 1591, 1591, 1591, 1589, 1581, 1581, 1575, 1575, 1567, 1566, 1566, 1557, 1557, 1557, 1557, 1558, 1564, 1564, 1562, 1560, 1558, 1557, 1553, 1553, 1549, 1549, 1549, 1549, 1551, 1551, 1535, 1535, 1534, 1534, 1534, 1525, 1525, 1525, 1525, 1525, 1525, 1523, 1523, 1523, 1523, 1523, 1524, 1526, 1526, 1526, 1535, 1535, 1518, 1517, 1508, 1503, 1503, 1503, 1505, 1505, 1507, 1507, 1507, 1507, 1507, 1507, 1501, 1501, 1501, 1501, 1505, 1505, 1679, 1679, 1679, 1482, 1482, 1482, 1487, 1487, 1490, 1490, 1490, 1497, 1497, 1496, 1496, 1498, 1499, 1499, 1499, 1501, 1501, 1498, 1491, 1488, 1488, 1488, 1488, 1488, 1488, 1489, 1493, 1493, 1493, 1493, 1493, 1493, 1502, 1503, 1503, 1503, 1506, 1506, 1489, 1489, 1489, 1496, 1509, 1515, 1515, 1511, 1509, 1505, 1503, 1503, 1512, 1519, 1519, 1519, 1519, 1521, 1521, 1521, 1522, 1523, 1523, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1532, 1534, 1534, 1534, 1534, 1534, 1545, 1545, 1545, 1545, 1547, 1562, 1562, 1562, 1562, 1562, 1555, 1553, 1553, 1553, 1558, 1569, 1569, 1569, 1569, 1566, 1566, 1559, 1559, 1571, 1571, 1571, 1571, 1574, 1588, 1590, 1607, 1607, 1607, 1583, 1583, 1583, 1583, 1592, 1610, 1611, 1692, 1692, 1642, 1618, 1616, 1603, 1601, 1601, 1601, 1601, 1610, 1610, 1613, 1613, 1610, 1610, 1617, 1617, 1614, 1614, 1625, 1625, 1625, 1622, 1622, 1622, 1619, 1619, 1619, 1619, 1620, 1620, 1627, 1641, 1641, 1641, 1638, 1635, 1625, 1620, 1620, 1626, 1637, 1637, 1649, 1649, 1649, 1646, 1646, 1644, 1644, 1647, 1654, 1659, 1660, 1660, 1660, 1654, 1654, 1654, 1660, 1660, 1662, 1662, 1664, 1664, 1670, 1670, 1670, 1670, 1669, 1669, 1669, 1670, 1670, 1676, 1676, 1678, 1685, 1685, 1686, 1687, 1688, 1688, 1688, 1688, 1683, 1681, 1681, 1683, 1687, 1690, 1690, 1690, 1690, 1695, 1695, 1697, 1699, 1699, 1708, 1708, 1708, 1712, 1731, 1733, 1731, 1727, 1723, 1723, 1719, 1719, 1719, 1722, 1722, 1722, 1721, 1721, 1715, 1715, 1715, 1718, 1732, 1736, 1736, 1745, 1745, 1745, 1744, 1744, 1740, 1732, 1732, 1732, 1732, 1741, 1744, 1750, 1750, 1747, 1747, 1747, 1747, 1744, 1744, 1744, 1748, 1766, 1770, 1770, 1770, 1763, 1758, 1758, 1758, 1770, 1780, 1780, 1780, 1780, 1776, 1776, 1776, 1776, 1776, 1782, 1782, 1783, 1783, 1785, 1785, 1784, 1780, 1780, 1787, 1841, 1841, 1837, 1821, 1805, 1805, 1800, 1790, 1790, 1803, 1812, 1818, 1826, 1828, 1828, 1829, 1831, 1833, 1833, 1835, 1839, 1853, 1853, 1835, 1835, 1851, 1855, 1855, 1857, 1859, 1860, 1867, 1867, 1867, 1867, 1870, 1872, 1874, 1890, 1891, 1896, 1897, 1897, 1897, 1897, 1904, 1908, 1922, 1927, 1927, 1927, 1927, 1928, 1936, 1939, 1953, 1953, 1954, 1954, 1954, 1959, 1963, 1964, 1968, 1970, 1975, 1975, 1984, 1989, 1998, 1998, 2002, 2002, 2009, 2009, 2017, 2017, 2017, 2017, 2035, 2035, 2035, 2036, 2036, 2045, 2048, 2057, 2065, 2065, 2065, 2065, 2073, 2084, 2085, 2098, 2114, 2114, 2106, 2106, 2115, 2121, 2124, 2135, 2394, 2394, 2394, 2394, 2334, 2200, 2133, 2133, 2133, 2134, 2162, 2163, 2168, 2168, 2168, 2172, 2172, 2172, 2201, 2207, 2207, 2211, 2211, 2211, 2205, 2205, 2209, 2219, 2245, 2251, 2251, 2251, 2251, 2260, 2260, 2260, 2268, 2279, 2279, 2279, 2279, 2282, 2301, 2308, 2308, 2308, 2329, 2329, 2329, 2329, 2331, 2353, 2353, 2377, 2381, 2391, 2391, 2392, 2392, 2392, 2392, 2396, 2422, 2471, 2569, 2569, 2484, 2483, 2456, 2456, 2456, 2483, 2510, 2510, 2510, 2510, 2513, 2521, 2530, 2535, 2541, 2552, 2554, 2584, 2599, 2601, 2625, 2625, 2625, 2625, 2627, 2631, 2671, 2671, 2674, 2688, 2698, 2707, 2715, 2715, 2749, 2769, 2769, 2774, 2808, 2821, 2821, 2846, 2864, 2864, 2867, 2883, 2908, 2924, 2927, 2927, 2927, 2963, 2994, 2998, 3007, 3019, 3021, 3074, 3074, 3078, 3089, 3108, 3138, 3146, 3167, 3174, 3206, 3237, 3246, 3249, 3271, 3273, 3313, 3326, 3349, 3373, 3378, 3393, 3422, 3457, 3468, 3469, 3505, 3528, 3573, 3592, 3605, 3669, 3672, 3723, 3752, 3754, 3780, 3804, 3810, 3842, 3865, 3906, 3943, 3958, 3983, 4026, 4050, 4081, 4121, 4159, 4191, 4209, 4238, 4300, 4329, 4349, 4359, 4376, 4465, 4503, 4504, 4600, 4603, 4604, 4695, 4722, 4722, 4805, 4826, 4917, 4923, 4972, 4979, 5043, 5082, 5169, 5176, 5211, 5268, 5284, 5381, 5427, 5483, 5510, 5566, 5627, 5692, 5724, 5813, 5854, 5890, 5922, 5979, 6064, 6134, 6151, 6243, 6319, 6337, 6435, 6478, 6517, 6628, 6682, 6737, 6797, 6864, 6902, 7026, 7073, 7136, 7261, 7310, 7389, 7504, 7511, 7644, 7676, 7706, 7824, 7911, 8027, 8134, 8218, 8344, 8445, 8445, 8531, 8534, 8714, 8808, 8890, 9002, 9108, 9133, 9247, 9380, 9454, 9532, 9630, 9705, 10103, 10103, 10103, 10292, 10308, 10432, 10492, 10683, 10828, 10886, 10972, 11147, 11229, 11353, 11491, 11681, 11752, 11852, 12027, 12086, 12286, 12460, 12602, 12729, 12843, 13004, 13036, 13246, 13424, 13532, 13655, 13811, 13981, 14156, 14305, 14475, 14591, 14788, 14898, 15063, 15261, 15429, 15539, 15699, 16022, 16103, 16314, 16427, 16594, 16754, 17032, 17123, 17298, 17562, 17693, 17890, 18096, 18226, 18377, 18727, 18799, 18952, 19130, 19358, 19516, 19705, 19912, 20138, 20361, 20544, 20695, 20936, 21038, 21289, 21641, 21644, 21960, 22132, 22355, 22609, 22783, 23050, 23273, 23539, 23738, 23964, 24221, 24416, 24757, 25005, 25321, 25528, 25688, 26113, 26313, 26520, 26905, 27198, 27465, 27774, 28110, 28380, 28739, 29152, 29540, 29744, 30208, 30434, 30830, 31293, 31650, 32095, 32467, 32884, 33199, 33728, 34005, 34610, 34946, 35440, 35859, 36202, 36692, 37153, 37599, 38125, 38965, 39221, 39366, 39842, 40243, 40769, 41211, 41504, 42094, 42366, 42986, 43377, 43857, 44404, 44910, 45168, 45790, 46247, 46739, 47287, 47598, 48309, 48607, 49150, 49634, 50181, 50567, 51151, 51477, 52065, 52589, 53194, 53579, 54134, 54500, 55071, 55676, 56223, 56767, 57257, 57822, 58460, 58685, 59498, 60025, 60564, 60964, 61466, 62166, 62672, 63139, 63412, 63793, 64132, 64401, 64554, 64697, 64814, 64992, 65107, 65222, 65232, 65263, 65263, 65263, 65272, 65276, 65276, 65276, 65276, 65276, 65276, 65288, 65288, 65288, 65288, 65289, 65290, 65290, 65313, 65315, 65315, 65322, 65322, 65322, 65324, 65329, 65329, 65329, 65329, 65329, 65329, 65329, 65343, 65344, 65344, 65344, 65344, 65343, 65343, 65343, 65342, 65342, 65346, 65356, 65356, 65356, 65356, 65356, 65356, 65356, 65352, 65351, 65348, 65348, 65348, 65348, 65348, 65340, 65340, 65340, 65309, 65300, 65293, 65293, 65293, 65293, 65306, 65319, 65323, 65327, 65340, 65340, 65338, 65338, 65338, 65304, 65304, 65299, 65299, 65299, 65291, 65291, 65291, 65291, 65291, 65291, 65285, 65282, 65280, 65280, 65280, 65272, 65272, 65275, 65283, 65287, 65287, 65282, 65267, 65267, 65267, 2490, 2490, 2490, 2490, 2490, 2479, 2467, 2462, 2459, 2458, 2444, 2444, 2444, 2437, 2437, 2436, 2434, 2421, 2421, 2421, 2421, 2414, 2406, 2406, 2401, 2401, 2401, 2386, 2386, 2386, 2387, 2387, 2387, 2377, 2364, 2364, 2364, 2361, 2361, 2358, 2348, 2348, 2354, 2354, 2354, 2354, 2340, 2340, 2340, 2333, 2322, 2322, 2322, 2328, 2328, 2328, 2318, 2313, 2313, 2313, 2313, 2307, 2307, 2307, 2307, 2307, 2307, 2297, 2297, 2297, 2297, 2297, 2281, 2281, 2282, 2288, 2288, 2288, 2288, 2288, 2289, 2290, 2294, 2298, 2296, 2285, 2278, 2278, 2278, 2278, 2282, 2282, 2283, 2283, 2292, 2292, 2292, 2292, 2292, 2306, 2306, 2306, 2306, 2298, 2298, 2298, 2318, 2318, 2318, 2318, 2321, 2321, 2321, 2321, 2316, 2316, 2316, 2324, 2324, 2324, 2324, 2320, 2320, 2323, 2332, 2336, 2338, 2338, 2343, 2344, 2344, 2344, 2341, 2341, 2341, 2347, 2347, 2347, 2353, 2353, 2365, 2365, 2372, 2381, 2381, 2386, 2392, 2392, 2388, 2381, 2374, 2374, 2382, 2386, 2390, 2390, 2394, 2397, 2397, 2397, 2405, 2411, 2415, 2419, 2419, 2417, 2416, 2416, 2416, 2416, 2416, 2419, 2427, 2427, 2435, 2435, 2435, 2438, 2439, 2454, 2455, 2455, 2455, 2455, 2455, 2458, 2464, 2465, 2468, 2470, 2470, 2470, 2489, 2491, 2499, 2499, 2499, 2499, 2499, 2496, 2496, 2496, 2504, 2504, 2504, 2507, 2507, 2507, 2521, 2521, 2521, 2520, 2520, 2520, 2524, 2539, 2539, 2539, 2539, 2536, 2535, 2534, 2534, 2534, 2542, 2542, 2542, 2560, 2560, 2560, 2560, 2560, 2560, 2557, 2557, 2558, 2558, 2565, 2565, 2584, 2584, 2584, 2586, 2589, 2598, 2598, 2608, 2608, 2608, 2608, 2608, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2618, 2624, 2624, 2626, 2640, 2644, 2637, 2637, 2637, 2637, 2637, 2645, 2645, 2656, 2656, 2656, 2658, 2675, 2694, 2694, 2677, 2677, 2677, 2677, 2681, 2681, 2681, 2697, 2697, 2697, 2685, 2685, 2685, 2698, 2702, 2702, 2700, 2697, 2697, 2703, 2703, 2704, 2711, 2711, 2711, 2711, 2717, 2717, 2719, 2719, 2719, 2727, 2731, 2756, 2756, 2756, 2758, 2759, 2760, 2760, 2760, 2760, 2759, 2757, 2757, 2757, 2757, 2757, 2757, 2769, 2769, 2769, 2769, 2773, 2773, 2773, 2773, 2772, 2772, 2781, 2830, 2920, 2920, 2835, 2791, 2791, 2791, 2791, 2807, 2814, 2814, 2829, 2832, 2832, 2832, 2832, 2832, 2839, 2839, 2834, 2833, 2833, 2833, 2835, 2839, 2840, 2849, 2861, 2861, 2861, 2861, 2864, 2866, 2868, 2870, 2873, 2873, 2890, 2890, 2898, 2904, 2904, 2904, 2915, 2928, 2928, 2929, 2929, 2941, 2941, 2941, 2941, 2951, 2966, 2966, 2978, 2986, 2986, 2987, 3001, 3015, 3018, 3024, 3026, 3023, 3028, 3031, 3035, 3056, 3060, 3060, 3073, 3082, 3082, 3092, 3106, 3106, 3111, 3111, 3114, 3136, 3138, 3139, 3141, 3141, 3141, 3149, 3181, 3181, 3181, 3181, 3188, 3191, 3213, 3213, 3213, 3230, 3231, 3231, 3248, 3260, 3271, 3279, 3293, 3303, 3303, 3303, 3303, 3303, 3303, 3328, 3350, 3354, 3378, 3378, 3387, 3387, 3387, 3391, 3387, 3397, 3420, 3424, 3424, 3428, 3428, 3434, 3463, 3466, 3474, 3482, 3504, 3505, 3505, 3516, 3516, 3527, 3556, 3561, 3563, 3568, 3577, 3577, 3590, 3598, 3622, 3622, 3625, 3626, 3626, 3626, 3645, 3651, 3657, 3678, 3691, 3691, 3703, 3703, 3714, 3743, 3763, 3763, 3783, 3783, 3791, 3798, 3798, 3798, 3824, 3844, 3851, 3872, 3897, 3897, 3897, 3919, 3930, 3951, 3951, 3973, 3984, 3989, 3998, 4002, 4027, 4037, 4058, 4067, 4086, 4092, 4092, 4092, 4161, 4161, 4172, 4173, 4196, 4211, 4222, 4231, 4236, 4281, 4284, 4314, 4314, 4314, 4378, 4378, 4386, 4437, 4442, 4446, 4446, 4488, 4520, 4532, 4532, 4549, 4578, 4642, 4644, 4701, 4703, 4703, 4727, 4737, 4778, 4807, 4828, 4840, 4897, 4897, 4904, 4947, 4986, 5008, 5029, 5064, 5089, 5134, 5164, 5191, 5229, 5239, 5260, 5283, 5323, 5371, 5377, 5458, 5467, 5503, 5528, 5537, 5601, 5647, 5654, 5702, 5741, 5794, 5823, 5860, 5912, 5936, 5964, 6014, 6032, 6072, 6197, 6202, 6252, 6253, 6372, 6377, 6398, 6436, 6505, 6589, 6606, 6667, 6721, 6781, 6805, 6884, 6971, 6980, 7004, 7111, 7154, 7211, 7273, 7330, 7435, 7466, 7471, 7574, 7683, 7747, 7844, 7849, 7978, 8029, 8086, 8253, 8286, 8333, 8385, 8438, 8520, 8628, 8684, 8773, 8871, 8983, 9084, 9105, 9311, 9336, 9429, 9472, 9605, 9679, 9810, 9897, 9999, 10098, 10150, 10297, 10379, 10498, 10551, 10671, 10762, 10855, 10958, 11097, 11193, 11350, 11502, 11598, 11631, 11774, 11944, 12038, 12194, 12400, 12428, 12497, 12737, 12848, 13018, 13134, 13296, 13437, 13526, 13691, 13809, 13966, 14194, 14257, 14494, 14567, 14801, 14939, 15133, 15246, 15478, 15630, 15798, 15986, 16134, 16301, 16421, 16669, 16824, 17088, 17147, 17444, 17543, 17879, 17963, 18191, 18363, 18583, 18845, 19035, 19358, 19481, 19537, 19886, 20130, 20298, 20483, 20704, 21015, 21171, 21444, 21706, 21898, 22217, 22430, 22750, 22790, 23182, 23441, 23636, 24008, 24203, 24524, 24673, 24978, 25313, 25577, 25903, 26164, 26439, 26760, 27086, 27405, 27597, 27949, 28235, 28592, 28976, 29202, 29604, 29773, 30281, 30597, 30948, 31278, 31723, 31955, 32216, 32669, 32898, 33389, 33640, 34041, 34427, 34774, 35090, 35514, 35996, 36294, 36638, 37095, 37522, 37896, 38233, 38640, 39166, 39514, 39839, 40286, 40672, 41168, 41389, 42008, 42402, 42775, 43174, 43694, 43922, 44395, 44941, 45259, 45723, 46030, 46650, 47005, 47413, 47898, 48267, 48766, 49446, 49841, 50379, 50871, 51408, 51925, 52436, 52930, 53531, 54116, 54569, 55124, 55753, 56387, 56805, 57517, 57972, 58530, 59556, 59838, 60826, 61274, 62094, 62702, 63330, 63657, 64007, 64512, 64687, 64868, 65072, 65276, 65281, 65288, 65302, 65303, 65303, 65303, 65303, 65310, 65314, 65319, 65320, 65320, 65330, 65346, 65346, 65346, 65346, 65345, 65336, 65336, 65356, 65359, 65359, 65359, 65367, 65367, 65375, 65375, 65375, 65375, 65371, 65371, 65371, 65389, 65389, 65389, 65389, 65378, 65378, 65368, 65366, 65366, 65366, 65357, 65349, 65346, 65314, 65311, 65311, 65313, 65314, 65322, 65355, 65361, 65361, 65342, 65342, 65342, 65336, 65309, 65309, 65308, 65298, 65285, 65273, 65273, 65273, 65273, 65273, 65273, 65275, 65275, 65277, 65288, 65292, 65292, 65282, 65278, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65268, 65277, 65277, 65286, 65286, 65286, 65271, 65271, 65271, 65282, 65282, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65300, 65300, 65300, 65300, 65285, 65285, 65285, 65285, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65281, 65281, 65281, 65281, 65281, 65281, 65294, 65294, 65294, 65294, 65294, 65294, 65292, 65292, 65292, 65292, 65280, 65275, 65275, 65275, 65283, 65283, 65283, 65301, 65301, 65301, 65301, 65298, 65293, 65293, 65293, 65291, 65291, 65291, 65292, 65292, 65292, 65292, 65316, 65316, 65290, 65288, 65288, 65288, 4157, 4056, 3990, 3990, 3990, 3994, 3994, 3994, 3951, 3942, 3938, 3924, 3924, 3924, 3915, 3915, 3905, 3905, 3905, 3888, 3878, 3877, 3877, 3872, 3861, 3861, 3850, 3832, 3826, 3824, 3824, 3827, 3827, 3822, 3822, 3822, 3798, 3798, 3790, 3776, 3776, 3776, 3776, 3783, 3783, 3776, 3776, 3776, 3776, 3765, 3765, 3756, 3747, 3736, 3736, 3736, 3730, 3730, 3730, 3715, 3715, 3715, 3716, 3716, 3716, 3715, 3715, 3699, 3699, 3699, 3699, 3692, 3691, 3691, 3691, 3684, 3684, 3683, 3678, 3678, 3678, 3666, 3662, 3662, 3668, 3673, 3673, 3673, 3673, 3667, 3667, 3667, 3667, 3667, 3676, 3688, 3688, 3688, 3688, 3688, 3688, 3690, 3690, 3690, 3690, 3690, 3690, 3709, 3709, 3709, 3709, 3709, 3709, 3726, 3726, 3726, 3729, 3731, 3738, 3738, 3738, 3751, 3751, 3753, 3762, 3762, 3762, 3762, 3762, 3763, 3763, 3784, 3784, 3786, 3786, 3786, 3786, 3786, 3796, 3796, 3796, 3796, 3796, 3807, 3809, 3821, 3824, 3824, 3824, 3836, 3836, 3836, 3836, 3848, 3868, 3869, 3871, 3871, 3871, 3876, 3876, 3888, 3888, 3888, 3907, 3923, 3936, 3942, 3945, 3946, 3948, 3949, 3948, 3948, 3948, 3948, 3962, 3967, 3967, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 4009, 4024, 4024, 4024, 4024, 4025, 4025, 4025, 4047, 4047, 4043, 4044, 4044, 4046, 4055, 4055, 4068, 4082, 4082, 4082, 4082, 4082, 4098, 4112, 4112, 4106, 4106, 4106, 4110, 4118, 4150, 4150, 4150, 4137, 4137, 4137, 4140, 4157, 4172, 4174, 4174, 4174, 4207, 4207, 4181, 4181, 4181, 4191, 4205, 4209, 4209, 4209, 4209, 4224, 4229, 4232, 4235, 4238, 4244, 4244, 4259, 4259, 4259, 4246, 4246, 4246, 4246, 4262, 4272, 4273, 4274, 4276, 4276, 4276, 4276, 4276, 4295, 4312, 4312, 4312, 4312, 4312, 4302, 4302, 4322, 4322, 4322, 4344, 4349, 4357, 4357, 4359, 4359, 4359, 4378, 4379, 4379, 4379, 4400, 4400, 4400, 4391, 4391, 4391, 4394, 4402, 4417, 4418, 4423, 4423, 4433, 4453, 4453, 4453, 4453, 4453, 4453, 4455, 4456, 4456, 4459, 4477, 4491, 4494, 4494, 4494, 4494, 4494, 4494, 4494, 4516, 4516, 4516, 4515, 4515, 4517, 4517, 4525, 4525, 4545, 4545, 4553, 4553, 4564, 4564, 4567, 4567, 4567, 4572, 4575, 4580, 4580, 4586, 4586, 4586, 4586, 4601, 4603, 4607, 4607, 4626, 4638, 4638, 4638, 4638, 4641, 4654, 4654, 4654, 4654, 4654, 4654, 4654, 4658, 4660, 4660, 4665, 4685, 4685, 4701, 4701, 4702, 4725, 4731, 4734, 4734, 4734, 4736, 4746, 4746, 4746, 4764, 4764, 4769, 4790, 4812, 4812, 4812, 4849, 4849, 4862, 4862, 4863, 4869, 4869, 4873, 4873, 4873, 4873, 4928, 4930, 4930, 4967, 4997, 5015, 5016, 5016, 5036, 5036, 5037, 5063, 5063, 5081, 5115, 5115, 5115, 5115, 5159, 5159, 5159, 5159, 5166, 5207, 5241, 5241, 5254, 5261, 5261, 5266, 5275, 5295, 5325, 5352, 5356, 5350, 5379, 5399, 5409, 5422, 5438, 5459, 5459, 5459, 5465, 5470, 5502, 5525, 5531, 5531, 5560, 5600, 5615, 5622, 5629, 5639, 5639, 5669, 5684, 5710, 5716, 5716, 5716, 5746, 5788, 5792, 5800, 5826, 5826, 5828, 5860, 5882, 5882, 5891, 5894, 5948, 5973, 5973, 5982, 5988, 6001, 6039, 6061, 6062, 6067, 6092, 6101, 6123, 6134, 6164, 6208, 6209, 6209, 6222, 6260, 6290, 6300, 6304, 6316, 6350, 6371, 6403, 6403, 6409, 6450, 6459, 6469, 6497, 6551, 6571, 6578, 6586, 6625, 6648, 6684, 6691, 6703, 6730, 6739, 6806, 6813, 6835, 6842, 6898, 6901, 6957, 6990, 7022, 7037, 7041, 7140, 7168, 7168, 7177, 7192, 7249, 7275, 7313, 7350, 7391, 7391, 7446, 7485, 7510, 7561, 7580, 7613, 7644, 7727, 7740, 7764, 7776, 7818, 7899, 7950, 7979, 8013, 8042, 8112, 8187, 8208, 8223, 8292, 8331, 8485, 8485, 8485, 8526, 8556, 8630, 8691, 8723, 8797, 8827, 8904, 8944, 9036, 9135, 9157, 9183, 9260, 9323, 9365, 9423, 9495, 9604, 9641, 9736, 9815, 9882, 9978, 9992, 10046, 10088, 10223, 10276, 10318, 10415, 10539, 10595, 10659, 10706, 10848, 10933, 11033, 11103, 11170, 11298, 11385, 11397, 11494, 11578, 11777, 11857, 11934, 11997, 12079, 12167, 12368, 12468, 12817, 12817, 12899, 12899, 12993, 13137, 13209, 13369, 13479, 13585, 13713, 13878, 13988, 14172, 14231, 14432, 14536, 14744, 14806, 14946, 15084, 15199, 15365, 15599, 15683, 15959, 15959, 16189, 16342, 16566, 16673, 16813, 17064, 17207, 17436, 17610, 17794, 17998, 18129, 18349, 18525, 18719, 18870, 19121, 19188, 19429, 19720, 19930, 20124, 20326, 20591, 20796, 20950, 21205, 21488, 21620, 21925, 22103, 22377, 22575, 22887, 23129, 23316, 23588, 23754, 24056, 24360, 24560, 24850, 25199, 25481, 25703, 26066, 26302, 26565, 26821, 27123, 27535, 27741, 28071, 28378, 28746, 29262, 29636, 29673, 30049, 30318, 30940, 30996, 31371, 31841, 32091, 32389, 32886, 33236, 33750, 33929, 34422, 34782, 35257, 35578, 36042, 36266, 36787, 37220, 37706, 38095, 38517, 39003, 39302, 39804, 40311, 40692, 41203, 41757, 42033, 42733, 43208, 43559, 44171, 44601, 45060, 45592, 46068, 46681, 47262, 47646, 48184, 48889, 49358, 50060, 50584, 51056, 51621, 52055, 52592, 53377, 54010, 54775, 55973, 55973, 56237, 57175, 57682, 58445, 58992, 59502, 60256, 61042, 61566, 62153, 62801, 63374, 63727, 64104, 64439, 64637, 64868, 64977, 65189, 65281, 65281, 65286, 65291, 65291, 65293, 65298, 65302, 65302, 65318, 65318, 65318, 65318, 65318, 65321, 65321, 65321, 65321, 65321, 65322, 65338, 65338, 65342, 65342, 65343, 65343, 65355, 65359, 65359, 65359, 65365, 65368, 65368, 65368, 65373, 65373, 65373, 65373, 65376, 65376, 65376, 65376, 65376, 65376, 65366, 65366, 65366, 65366, 65366, 65328, 65326, 65326, 65326, 65337, 65341, 65345, 65380, 65380, 65380, 65363, 65340, 65340, 65340, 65301, 65296, 65295, 65290, 65288, 65288, 65284, 65284, 65284, 65284, 65284, 65284, 65271, 65265, 65262, 65262, 65262, 65274, 65274, 65274, 65274, 65266, 65264, 65264, 65264, 65279, 65279, 65279, 65280, 65280, 65280, 65280, 65291, 65291, 65291, 65291, 65286, 65286, 65286, 65286, 65286, 65283, 65283, 65283, 65283, 65283, 65297, 65297, 65297, 65297, 65291, 65268, 65268, 65268, 65282, 65282, 65296, 65296, 65296, 65296, 65296, 65296, 65292, 65292, 65290, 65287, 65287, 65287, 65285, 65284, 65284, 65282, 65271, 65271, 65279, 65285, 65285, 65288, 65299, 65299, 65299, 65299, 65299, 65295, 65290, 65285, 65275, 65275, 65275, 65296, 65296, 65296, 65296, 65296, 65293, 65288, 65278, 65278, 65278, 65278, 65282, 65283, 65283, 65283, 65289, 65289, 65289, 65289, 65291, 65293, 65293, 65294, 65294, 65298, 65299, 65299, 65301, 65303, 65303, 65303, 65302, 65302, 65296, 65289, 65289, 65289, 65289, 65299, 65301, 65296, 65296, 65296, 65296, 65296, 65296, 65313, 65313, 65313, 65301, 65301, 65301, 65301, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65311, 65311, 65311, 65311, 65311, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65307, 65307, 65307, 65298, 65298, 65298, 65298, 65298, 6574, 6438, 6370, 6370, 6364, 6361, 6357, 6342, 6317, 6316, 6276, 6269, 6258, 6253, 6224, 6224, 6224, 6208, 6202, 6169, 6162, 6162, 6162, 6162, 6144, 6123, 6116, 6102, 6097, 6097, 6097, 6097, 6084, 6077, 6062, 6062, 6018, 6017, 6017, 6020, 6020, 6020, 6012, 6012, 6004, 5996, 5985, 5985, 5985, 5957, 5954, 5954, 5954, 5940, 5940, 5940, 5940, 5942, 5942, 5942, 5942, 5942, 5925, 5905, 5905, 5889, 5889, 5883, 5883, 5883, 5883, 5892, 5886, 5868, 5868, 5868, 5856, 5856, 5856, 5856, 5856, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5852, 5852, 5852, 5863, 5881, 5884, 5884, 5885, 5885, 5885, 5894, 5913, 5913, 5913, 5913, 5915, 5917, 5918, 5944, 5944, 5944, 5949, 5949, 5981, 5997, 5981, 5973, 5969, 5958, 5958, 5958, 5959, 6008, 6008, 6008, 6014, 6014, 6020, 6020, 6027, 6027, 6028, 6045, 6045, 6049, 6049, 6049, 6049, 6076, 6076, 6076, 6079, 6079, 6079, 6093, 6094, 6094, 6094, 6156, 6167, 6195, 6195, 6195, 6195, 6195, 6195, 6195, 6218, 6218, 6237, 6237, 6237, 6237, 6253, 6269, 6269, 6282, 6305, 6305, 6305, 6314, 6318, 6318, 6318, 6318, 6337, 6365, 6365, 6365, 6388, 6401, 6420, 6420, 6420, 6420, 6454, 6454, 6454, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6489, 6496, 6520, 6520, 6529, 6547, 6550, 6550, 6550, 6564, 6570, 6596, 6638, 6642, 6634, 6622, 6622, 6641, 6653, 6659, 6662, 6674, 6674, 6674, 6674, 6702, 6702, 6702, 6702, 6702, 6712, 6715, 6715, 6716, 6716, 6716, 6716, 6756, 6756, 6756, 6756, 6759, 6808, 6808, 6808, 6808, 6832, 6838, 6838, 6838, 6838, 6839, 6855, 6855, 6855, 6883, 6885, 6901, 6903, 6905, 6933, 6935, 6939, 6942, 6945, 6942, 6942, 6942, 6942, 6946, 6946, 6946, 6973, 6999, 6999, 6997, 6997, 6997, 6996, 6996, 6996, 7014, 7020, 7028, 7036, 7036, 7075, 7075, 7075, 7075, 7075, 7075, 7078, 7123, 7123, 7143, 7143, 7143, 7143, 7143, 7172, 7172, 7140, 7140, 7153, 7156, 7178, 7198, 7202, 7202, 7214, 7214, 7219, 7219, 7219, 7219, 7219, 7238, 7238, 7238, 7255, 7255, 7255, 7305, 7328, 7328, 7328, 7326, 7326, 7326, 7361, 7361, 7367, 7378, 7385, 7385, 7385, 7385, 7391, 7391, 7391, 7391, 7435, 7435, 7435, 7468, 7468, 7482, 7483, 7483, 7483, 7487, 7487, 7487, 7488, 7489, 7519, 7521, 7521, 7521, 7560, 7570, 7606, 7606, 7606, 7609, 7609, 7609, 7616, 7616, 7634, 7638, 7638, 7670, 7687, 7691, 7715, 7715, 7719, 7733, 7760, 7762, 7762, 7762, 7800, 7820, 7870, 7870, 7870, 7882, 7895, 7895, 7913, 7982, 7982, 7982, 8007, 8024, 8047, 8052, 8078, 8078, 8110, 8110, 8151, 8179, 8187, 8197, 8222, 8247, 8247, 8247, 8349, 8386, 8389, 8389, 8389, 8437, 8447, 8450, 8476, 8510, 8551, 8578, 8610, 8615, 8615, 8615, 8686, 8686, 8749, 8749, 8784, 8809, 8821, 8821, 8902, 8912, 8921, 8950, 8950, 9025, 9025, 9040, 9040, 9110, 9127, 9173, 9187, 9241, 9251, 9290, 9291, 9352, 9359, 9359, 9378, 9419, 9446, 9455, 9499, 9501, 9519, 9587, 9669, 9669, 9669, 9715, 9727, 9802, 9809, 9815, 9880, 9907, 9913, 9979, 9990, 10006, 10091, 10091, 10102, 10102, 10137, 10194, 10229, 10281, 10378, 10378, 10386, 10440, 10473, 10526, 10526, 10559, 10559, 10641, 10688, 10749, 10780, 10823, 10886, 10891, 10915, 10926, 11011, 11057, 11143, 11153, 11193, 11247, 11282, 11308, 11384, 11418, 11522, 11529, 11595, 11643, 11661, 11701, 11728, 11810, 11916, 11981, 11988, 12085, 12115, 12181, 12246, 12294, 12405, 12475, 12525, 12562, 12593, 12725, 12786, 12869, 12891, 12921, 13022, 13182, 13200, 13263, 13291, 13303, 13497, 13530, 13649, 13743, 13859, 13884, 13955, 14050, 14071, 14226, 14306, 14391, 14597, 14604, 14714, 14765, 14921, 14967, 15127, 15264, 15320, 15472, 15564, 15656, 15683, 15892, 15953, 16122, 16313, 16473, 16590, 16723, 16788, 16848, 17116, 17163, 17273, 17449, 17537, 17698, 17813, 18072, 18129, 18332, 18422, 18689, 18733, 18886, 19027, 19208, 19389, 19556, 19694, 19869, 19986, 20172, 20311, 20544, 20709, 20984, 21055, 21266, 21418, 21652, 21876, 22092, 22255, 22468, 22800, 22900, 23095, 23371, 23540, 23846, 24064, 24601, 24686, 24686, 24988, 25177, 25626, 25759, 26014, 26239, 26435, 26763, 27079, 27404, 27681, 27924, 28156, 28459, 28876, 29059, 29361, 29821, 29946, 30305, 30612, 31263, 31299, 31683, 31882, 32388, 32617, 33028, 33394, 33831, 34218, 34536, 34816, 35351, 35710, 36088, 36416, 36899, 37332, 37758, 38125, 38665, 38912, 39546, 39946, 40342, 40791, 41160, 41586, 42135, 42699, 43152, 43615, 44173, 44512, 45184, 45680, 46067, 46667, 47120, 47632, 48252, 48725, 49386, 49725, 50516, 51041, 51597, 52141, 52913, 53172, 54151, 54679, 55124, 55632, 56461, 57107, 57828, 58447, 59014, 59720, 60524, 61376, 61896, 62522, 63076, 63609, 64016, 64335, 64593, 64815, 64991, 65183, 65290, 65293, 65293, 65293, 65303, 65303, 65304, 65304, 65311, 65317, 65325, 65325, 65325, 65325, 65325, 65325, 65333, 65333, 65333, 65349, 65362, 65362, 65362, 65378, 65378, 65378, 65379, 65382, 65382, 65382, 65395, 65395, 65395, 65395, 65399, 65404, 65405, 65405, 65404, 65390, 65385, 65385, 65377, 65352, 65343, 65343, 65350, 65350, 65350, 65375, 65384, 65386, 65377, 65375, 65374, 65346, 65312, 65312, 65301, 65298, 65298, 65296, 65296, 65296, 65281, 65278, 65270, 65262, 65262, 65262, 65270, 65278, 65290, 65290, 65290, 65285, 65285, 65279, 65279, 65275, 65275, 65267, 65267, 65267, 65267, 65278, 65278, 65287, 65287, 65287, 65287, 65287, 65296, 65296, 65296, 65277, 65277, 65277, 65272, 65272, 65272, 65272, 65272, 65272, 65288, 65288, 65288, 65285, 65285, 65270, 65270, 65280, 65288, 65288, 65288, 65288, 65288, 65288, 65283, 65283, 65283, 65283, 65283, 65283, 65291, 65291, 65290, 65286, 65286, 65286, 65286, 65294, 65294, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65296, 65296, 65296, 65293, 65293, 65293, 65298, 65298, 65298, 65298, 65295, 65295, 65295, 65295, 65295, 65291, 65291, 65291, 65291, 65291, 65291, 65291, 65300, 65300, 65316, 65316, 65316, 65283, 65283, 65305, 65307, 65307, 65307, 65307, 65307, 65307, 65307, 65307, 65305, 65305, 65303, 65303, 65303, 65303, 65303, 65291, 65291, 65291, 65291, 65297, 65306, 65306, 65295, 65295, 65295, 65295, 65319, 65320, 65320, 65304, 65296, 65296, 65309, 65317, 65319, 65319, 65319, 65319, 65319, 65311, 65307, 65305, 65294, 65294, 65294, 65294, 65305, 65307, 65307, 65308, 65323, 65328, 65328, 65328, 65328, 65323, 65318, 65316, 65312, 65312, 65300, 65300, 65300, 65300, 65300, 65312, 65322, 65322, 65322, 65322, 65313, 65313, 65313, 65313, 65313, 65308, 65308, 65308, 65308, 65320, 65320, 65320, 65320, 65320, 65320, 65332, 65332, 65326, 65326, 65326, 65326, 65323, 65323, 65323, 65323, 65323, 65323, 65315, 65315, 65315, 65315, 65315, 65327, 65327, 65327, 65327, 65327, 65334, 65337, 65337] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Spectrum"] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Spectrum", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (Spectrometer)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1024, 24] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["296.5", "297.055", "297.61", "298.164", "298.719", "299.273", "299.827", "300.382", "300.936", "301.489", "302.043", "302.597", "303.15", "303.703", "304.256", "304.809", "305.362", "305.915", "306.467", "307.02", "307.572", "308.124", "308.676", "309.228", "309.78", "310.332", "310.883", "311.435", "311.986", "312.537", "313.088", "313.639", "314.189", "314.74", "315.29", "315.841", "316.391", "316.941", "317.491", "318.04", "318.59", "319.139", "319.689", "320.238", "320.787", "321.336", "321.885", "322.433", "322.982", "323.53", "324.079", "324.627", "325.175", "325.723", "326.271", "326.818", "327.366", "327.913", "328.46", "329.007", "329.554", "330.101", "330.648", "331.195", "331.741", "332.287", "332.834", "333.38", "333.926", "334.472", "335.017", "335.563", "336.108", "336.654", "337.199", "337.744", "338.289", "338.834", "339.378", "339.923", "340.467", "341.012", "341.556", "342.1", "342.644", "343.188", "343.731", "344.275", "344.818", "345.362", "345.905", "346.448", "346.991", "347.534", "348.076", "348.619", "349.161", "349.704", "350.246", "350.788", "351.33", "351.872", "352.414", "352.955", "353.497", "354.038", "354.579", "355.12", "355.661", "356.202", "356.743", "357.284", "357.824", "358.364", "358.905", "359.445", "359.985", "360.525", "361.065", "361.604", "362.144", "362.683", "363.223", "363.762", "364.301", "364.84", "365.379", "365.917", "366.456", "366.995", "367.533", "368.071", "368.609", "369.147", "369.685", "370.223", "370.761", "371.298", "371.836", "372.373", "372.91", "373.447", "373.984", "374.521", "375.058", "375.595", "376.131", "376.668", "377.204", "377.74", "378.276", "378.812", "379.348", "379.884", "380.419", "380.955", "381.49", "382.026", "382.561", "383.096", "383.631", "384.166", "384.7", "385.235", "385.77", "386.304", "386.838", "387.372", "387.907", "388.441", "388.974", "389.508", "390.042", "390.575", "391.109", "391.642", "392.175", "392.708", "393.241", "393.774", "394.307", "394.84", "395.372", "395.905", "396.437", "396.969", "397.501", "398.033", "398.565", "399.097", "399.629", "400.16", "400.692", "401.223", "401.755", "402.286", "402.817", "403.348", "403.879", "404.409", "404.94", "405.471", "406.001", "406.531", "407.062", "407.592", "408.122", "408.652", "409.181", "409.711", "410.241", "410.77", "411.3", "411.829", "412.358", "412.887", "413.416", "413.945", "414.474", "415.003", "415.531", "416.06", "416.588", "417.117", "417.645", "418.173", "418.701", "419.229", "419.757", "420.284", "420.812", "421.34", "421.867", "422.394", "422.921", "423.449", "423.976", "424.503", "425.029", "425.556", "426.083", "426.609", "427.136", "427.662", "428.188", "428.714", "429.24", "429.766", "430.292", "430.818", "431.344", "431.869", "432.395", "432.92", "433.445", "433.971", "434.496", "435.021", "435.546", "436.071", "436.595", "437.12", "437.644", "438.169", "438.693", "439.218", "439.742", "440.266", "440.79", "441.314", "441.837", "442.361", "442.885", "443.408", "443.932", "444.455", "444.978", "445.502", "446.025", "446.548", "447.071", "447.593", "448.116", "448.639", "449.161", "449.684", "450.206", "450.728", "451.251", "451.773", "452.295", "452.817", "453.338", "453.86", "454.382", "454.903", "455.425", "455.946", "456.468", "456.989", "457.51", "458.031", "458.552", "459.073", "459.594", "460.114", "460.635", "461.156", "461.676", "462.196", "462.717", "463.237", "463.757", "464.277", "464.797", "465.317", "465.837", "466.356", "466.876", "467.396", "467.915", "468.434", "468.954", "469.473", "469.992", "470.511", "471.03", "471.549", "472.068", "472.586", "473.105", "473.624", "474.142", "474.661", "475.179", "475.697", "476.215", "476.733", "477.251", "477.769", "478.287", "478.805", "479.323", "479.84", "480.358", "480.875", "481.393", "481.91", "482.427", "482.944", "483.461", "483.978", "484.495", "485.012", "485.529", "486.045", "486.562", "487.079", "487.595", "488.111", "488.628", "489.144", "489.66", "490.176", "490.692", "491.208", "491.724", "492.24", "492.755", "493.271", "493.787", "494.302", "494.817", "495.333", "495.848", "496.363", "496.878", "497.393", "497.908", "498.423", "498.938", "499.453", "499.968", "500.482", "500.997", "501.511", "502.026", "502.54", "503.054", "503.568", "504.083", "504.597", "505.111", "505.625", "506.138", "506.652", "507.166", "507.679", "508.193", "508.707", "509.22", "509.733", "510.247", "510.76", "511.273", "511.786", "512.299", "512.812", "513.325", "513.838", "514.351", "514.863", "515.376", "515.889", "516.401", "516.913", "517.426", "517.938", "518.45", "518.963", "519.475", "519.987", "520.499", "521.011", "521.522", "522.034", "522.546", "523.058", "523.569", "524.081", "524.592", "525.104", "525.615", "526.126", "526.637", "527.149", "527.66", "528.171", "528.682", "529.193", "529.704", "530.214", "530.725", "531.236", "531.746", "532.257", "532.767", "533.278", "533.788", "534.298", "534.809", "535.319", "535.829", "536.339", "536.849", "537.359", "537.869", "538.379", "538.889", "539.398", "539.908", "540.418", "540.927", "541.437", "541.946", "542.456", "542.965", "543.474", "543.983", "544.493", "545.002", "545.511", "546.02", "546.529", "547.038", "547.546", "548.055", "548.564", "549.073", "549.581", "550.09", "550.598", "551.107", "551.615", "552.123", "552.632", "553.14", "553.648", "554.156", "554.664", "555.172", "555.68", "556.188", "556.696", "557.204", "557.712", "558.22", "558.727", "559.235", "559.742", "560.25", "560.757", "561.265", "561.772", "562.28", "562.787", "563.294", "563.801", "564.308", "564.815", "565.323", "565.83", "566.336", "566.843", "567.35", "567.857", "568.364", "568.87", "569.377", "569.884", "570.39", "570.897", "571.403", "571.91", "572.416", "572.922", "573.429", "573.935", "574.441", "574.947", "575.453", "575.959", "576.465", "576.971", "577.477", "577.983", "578.489", "578.995", "579.501", "580.006", "580.512", "581.018", "581.523", "582.029", "582.534", "583.04", "583.545", "584.05", "584.556", "585.061", "585.566", "586.071", "586.577", "587.082", "587.587", "588.092", "588.597", "589.102", "589.607", "590.112", "590.616", "591.121", "591.626", "592.131", "592.635", "593.14", "593.645", "594.149", "594.654", "595.158", "595.663", "596.167", "596.672", "597.176", "597.68", "598.185", "598.689", "599.193", "599.697", "600.201", "600.705", "601.209", "601.713", "602.217", "602.721", "603.225", "603.729", "604.233", "604.737", "605.241", "605.744", "606.248", "606.752", "607.255", "607.759", "608.263", "608.766", "609.27", "609.773", "610.277", "610.78", "611.283", "611.787", "612.29", "612.793", "613.297", "613.8", "614.303", "614.806", "615.309", "615.812", "616.316", "616.819", "617.322", "617.825", "618.328", "618.83", "619.333", "619.836", "620.339", "620.842", "621.345", "621.847", "622.35", "622.853", "623.355", "623.858", "624.361", "624.863", "625.366", "625.868", "626.371", "626.873", "627.376", "627.878", "628.381", "628.883", "629.385", "629.888", "630.39", "630.892", "631.395", "631.897", "632.399", "632.901", "633.403", "633.905", "634.408", "634.91", "635.412", "635.914", "636.416", "636.918", "637.42", "637.922", "638.424", "638.925", "639.427", "639.929", "640.431", "640.933", "641.435", "641.936", "642.438", "642.94", "643.442", "643.943", "644.445", "644.947", "645.448", "645.95", "646.451", "646.953", "647.455", "647.956", "648.458", "648.959", "649.461", "649.962", "650.464", "650.965", "651.466", "651.968", "652.469", "652.97", "653.472", "653.973", "654.474", "654.976", "655.477", "655.978", "656.48", "656.981", "657.482", "657.983", "658.484", "658.985", "659.487", "659.988", "660.489", "660.99", "661.491", "661.992", "662.493", "662.994", "663.495", "663.996", "664.497", "664.998", "665.499", "666", "666.501", "667.002", "667.503", "668.004", "668.505", "669.006", "669.507", "670.008", "670.509", "671.009", "671.51", "672.011", "672.512", "673.013", "673.514", "674.014", "674.515", "675.016", "675.517", "676.018", "676.518", "677.019", "677.52", "678.02", "678.521", "679.022", "679.523", "680.023", "680.524", "681.025", "681.525", "682.026", "682.527", "683.027", "683.528", "684.029", "684.529", "685.03", "685.531", "686.031", "686.532", "687.032", "687.533", "688.034", "688.534", "689.035", "689.536", "690.036", "690.537", "691.037", "691.538", "692.038", "692.539", "693.04", "693.54", "694.041", "694.541", "695.042", "695.542", "696.043", "696.544", "697.044", "697.545", "698.045", "698.546", "699.046", "699.547", "700.047", "700.548", "701.049", "701.549", "702.05", "702.55", "703.051", "703.551", "704.052", "704.552", "705.053", "705.554", "706.054", "706.555", "707.055", "707.556", "708.056", "708.557", "709.058", "709.558", "710.059", "710.559", "711.06", "711.561", "712.061", "712.562", "713.062", "713.563", "714.064", "714.564", "715.065", "715.566", "716.066", "716.567", "717.068", "717.568", "718.069", "718.57", "719.07", "719.571", "720.072", "720.572", "721.073", "721.574", "722.074", "722.575", "723.076", "723.577", "724.077", "724.578", "725.079", "725.58", "726.081", "726.581", "727.082", "727.583", "728.084", "728.585", "729.086", "729.586", "730.087", "730.588", "731.089", "731.59", "732.091", "732.592", "733.093", "733.594", "734.095", "734.596", "735.097", "735.598", "736.099", "736.6", "737.101", "737.602", "738.103", "738.604", "739.105", "739.606", "740.107", "740.609", "741.11", "741.611", "742.112", "742.613", "743.114", "743.616", "744.117", "744.618", "745.119", "745.621", "746.122", "746.623", "747.125", "747.626", "748.128", "748.629", "749.13", "749.632", "750.133", "750.635", "751.136", "751.638", "752.139", "752.641", "753.142", "753.644", "754.145", "754.647", "755.149", "755.65", "756.152", "756.654", "757.155", "757.657", "758.159", "758.661", "759.163", "759.664", "760.166", "760.668", "761.17", "761.672", "762.174", "762.676", "763.178", "763.68", "764.182", "764.684", "765.186", "765.688", "766.19", "766.692", "767.194", "767.697", "768.199", "768.701", "769.203", "769.706", "770.208", "770.71", "771.213", "771.715", "772.217", "772.72", "773.222", "773.725", "774.227", "774.73", "775.232", "775.735", "776.238", "776.74", "777.243", "777.746", "778.248", "778.751", "779.254", "779.757", "780.26", "780.763", "781.266", "781.768", "782.271", "782.774", "783.277", "783.781", "784.284", "784.787", "785.29", "785.793", "786.296", "786.799", "787.303", "787.806", "788.309", "788.813", "789.316", "789.82", "790.323", "790.827", "791.33", "791.834", "792.337", "792.841", "793.345", "793.848", "794.352", "794.856", "795.359", "795.863", "796.367", "796.871", "797.375", "797.879", "798.383", "798.887", "799.391", "799.895", "800.399", "800.904", "801.408", "801.912", "802.416", "802.921", "803.425", "803.929", "804.434", "804.938", "805.443", "805.947", "806.452", "806.957", "807.461", "807.966", "808.471", "808.975", "809.48", "809.985", "810.49", "810.995", "811.5", "812.005", "812.51", "813.015", "813.52", "814.026", "814.531", "815.036", "815.541", "816.047", "816.552", "817.057", "817.563", "818.068", "818.574", "819.08", "819.585", "820.091", "820.597", "821.102", "821.608", "822.114", "822.62", "823.126"] }, { "type": "character", "attributes": {}, "value": ["0.029", "20.027", "40.025", "60.026", "80.025", "100.023", "120.022", "140.022", "160.02", "180.019", "200.02", "220.018", "240.017", "260.016", "280.015", "300.014", "320.014", "340.014", "360.012", "380.012", "400.01", "420.009", "440.008", "460.007"] } ] } }, "value": [555, 555, 555, 554, 554, 554, 554, 555, 555, 557, 559, 560, 560, 560, 560, 560, 561, 561, 561, 561, 561, 565, 565, 564, 564, 564, 562, 562, 564, 567, 567, 567, 567, 567, 567, 567, 564, 564, 563, 563, 563, 566, 566, 566, 566, 566, 565, 564, 564, 564, 564, 563, 563, 563, 563, 565, 565, 565, 565, 565, 565, 564, 564, 564, 565, 566, 568, 568, 568, 568, 564, 564, 566, 567, 567, 567, 566, 566, 566, 565, 565, 566, 567, 568, 568, 568, 568, 567, 567, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 565, 565, 564, 564, 564, 564, 564, 564, 566, 566, 566, 567, 567, 567, 567, 566, 564, 564, 563, 563, 563, 565, 565, 565, 565, 566, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 565, 565, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 569, 569, 568, 566, 566, 566, 566, 566, 566, 569, 569, 569, 569, 569, 569, 569, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 562, 562, 562, 562, 564, 564, 564, 568, 568, 568, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 564, 564, 563, 563, 563, 564, 565, 565, 565, 564, 564, 564, 565, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 568, 568, 571, 571, 571, 567, 567, 567, 567, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 563, 563, 563, 563, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 570, 570, 570, 569, 569, 568, 565, 563, 563, 563, 563, 565, 566, 566, 566, 565, 563, 563, 563, 565, 565, 565, 565, 564, 564, 566, 566, 566, 568, 568, 568, 572, 572, 572, 568, 568, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 565, 565, 565, 564, 564, 564, 564, 564, 563, 563, 563, 563, 563, 562, 562, 562, 562, 563, 563, 564, 568, 568, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 562, 562, 562, 567, 567, 567, 567, 565, 565, 565, 566, 566, 566, 566, 566, 566, 568, 568, 568, 568, 566, 565, 565, 565, 565, 567, 567, 567, 566, 566, 566, 569, 569, 569, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 568, 568, 568, 564, 563, 563, 564, 566, 567, 567, 567, 565, 565, 565, 565, 565, 565, 565, 565, 565, 563, 563, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 563, 563, 563, 563, 563, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 569, 569, 569, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 565, 564, 564, 564, 566, 566, 566, 566, 562, 562, 562, 565, 565, 567, 570, 570, 569, 566, 564, 564, 564, 566, 569, 569, 567, 567, 564, 564, 564, 567, 568, 568, 568, 568, 568, 568, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 563, 563, 563, 565, 567, 567, 567, 567, 566, 566, 566, 564, 564, 564, 566, 568, 568, 568, 568, 567, 565, 565, 567, 569, 569, 569, 569, 569, 569, 569, 569, 569, 565, 564, 564, 567, 569, 569, 569, 569, 569, 569, 569, 569, 566, 566, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 566, 566, 567, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 563, 563, 564, 566, 566, 566, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 560, 560, 563, 564, 564, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 564, 564, 564, 567, 567, 567, 562, 562, 562, 563, 563, 563, 565, 565, 565, 564, 564, 564, 565, 565, 565, 562, 562, 562, 566, 566, 568, 568, 568, 568, 568, 568, 567, 567, 566, 566, 564, 564, 564, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 564, 564, 562, 562, 562, 564, 566, 566, 566, 562, 562, 562, 562, 567, 567, 567, 567, 567, 566, 565, 565, 565, 565, 566, 566, 566, 566, 568, 568, 568, 568, 568, 566, 566, 566, 566, 566, 566, 564, 564, 564, 563, 563, 568, 568, 568, 565, 565, 565, 564, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 564, 564, 564, 565, 568, 568, 568, 567, 567, 565, 564, 564, 564, 564, 565, 568, 568, 568, 568, 568, 568, 568, 568, 567, 566, 566, 565, 565, 565, 565, 565, 565, 567, 567, 567, 565, 565, 565, 565, 569, 569, 569, 569, 565, 564, 564, 565, 565, 565, 565, 566, 566, 565, 565, 565, 568, 568, 568, 567, 567, 567, 567, 568, 568, 568, 565, 565, 567, 567, 567, 567, 567, 564, 564, 564, 564, 567, 567, 567, 566, 563, 563, 563, 565, 565, 565, 569, 569, 569, 569, 567, 567, 567, 567, 567, 568, 569, 569, 569, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 562, 562, 562, 563, 566, 566, 566, 567, 571, 571, 571, 568, 565, 565, 565, 566, 566, 566, 567, 567, 567, 567, 565, 565, 565, 563, 563, 563, 563, 565, 567, 567, 561, 561, 562, 565, 565, 565, 565, 565, 565, 564, 562, 562, 562, 565, 565, 565, 565, 564, 563, 563, 563, 563, 563, 563, 563, 563, 563, 564, 564, 564, 566, 566, 566, 566, 566, 566, 565, 565, 565, 556, 556, 556, 555, 555, 555, 555, 558, 562, 562.5, 562.5, 563, 563, 563, 563, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 565, 565, 565, 565, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 567, 567, 567, 566, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 566, 566, 566, 566, 566, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 564, 564, 564, 564, 564, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 564, 564, 564, 566, 567, 567, 567, 561, 560, 555, 555, 555, 555, 557, 557, 560, 560, 560, 560, 560, 560, 560, 561, 561, 562, 563, 564, 564, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 568, 568, 568, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 565, 565, 565, 566, 566, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 571, 571, 571, 571, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 567, 567, 567, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 569, 569, 569, 569, 569, 569, 569, 569, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 569, 569, 569, 569, 568, 568, 568, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 569, 569, 570, 570, 569, 569, 566, 565, 563, 568, 568, 564, 557, 556, 556, 556, 557, 562, 562, 562, 562, 562, 562, 564, 564, 564, 565, 566, 566, 568, 568, 569, 570, 570, 570, 570, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 573, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 577, 577, 577, 577, 576, 576, 576, 578, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 587, 587, 587, 588, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 584, 584, 584, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 580, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 571, 571, 571, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 574, 575, 575, 575, 576, 576, 576, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 577, 577, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 571, 572, 572, 572, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 573, 573, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 576, 603, 603, 603, 603, 573, 573, 571, 571, 569, 569, 569, 567, 567, 567, 568, 570, 571, 574, 575, 576, 578, 578, 578, 578, 574, 574, 574, 574, 577, 577, 577, 575, 575, 575, 575, 577, 577, 577, 577, 577, 576, 576, 576, 577, 577, 578, 580, 580, 577, 577, 577, 577, 577, 577, 577, 577, 580, 580, 580, 580, 580, 580, 580, 579, 577, 577, 577, 580, 580, 580, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 586, 586, 583, 583, 587, 587, 587, 587, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 590, 591, 592, 592, 590, 590, 590, 590, 590, 592, 592, 592, 592, 596, 596, 597, 597, 597, 597, 592, 592, 600, 602, 604, 604, 604, 604, 604, 605, 608, 610, 611, 611, 612, 612, 613, 613, 613, 613, 614, 615, 615, 615, 615, 615, 615, 616, 617, 618, 618, 618, 618, 619, 619, 620, 620, 622, 622, 623, 623, 624, 624, 626, 627, 628, 628, 629, 629, 629, 631, 631, 631, 632, 632, 632, 633, 633, 634, 634, 634, 634, 634, 634, 636, 637, 637, 637, 637, 637, 637, 637, 638, 638, 640, 640, 641, 641, 642, 642, 643, 644, 644, 644, 645, 647, 647, 647, 648, 648, 648, 649, 650, 650, 650, 650, 650, 650, 650, 651, 651, 652, 652, 653, 653, 653, 653, 653, 654, 654, 654, 654, 653, 653, 653, 653, 653, 653, 653, 653, 652, 652, 652, 651, 651, 651, 651, 651, 651, 650, 649, 649, 649, 649, 649, 650, 650, 650, 650, 650, 649, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 646, 646, 646, 646, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 644, 644, 644, 644, 644, 644, 642, 642, 640, 640, 640, 640, 638, 637, 637, 637, 637, 637, 637, 637, 636, 636, 636, 636, 636, 635, 635, 635, 633, 633, 632, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 632, 633, 633, 633, 633, 633, 632, 632, 632, 632, 633, 633, 633, 632, 632, 632, 631, 631, 630, 630, 630, 630, 630, 631, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 634, 634, 635, 635, 635, 635, 634, 634, 634, 634, 634, 637, 637, 637, 637, 639, 639, 639, 641, 641, 641, 641, 641, 642, 642, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 645, 645, 645, 645, 645, 645, 645, 646, 646, 646, 646, 648, 650, 650, 650, 648, 648, 648, 648, 648, 648, 649, 649, 649, 649, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 647, 647, 646, 646, 646, 646, 646, 646, 645, 645, 645, 646, 646, 646, 644, 644, 644, 643, 642, 640, 640, 640, 640, 639, 639, 639, 639, 639, 639, 638, 638, 638, 637, 637, 637, 637, 636, 636, 636, 636, 635, 635, 634, 634, 632, 631, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 626, 626, 626, 626, 625, 625, 625, 624, 624, 623, 623, 623, 623, 622, 620, 620, 620, 620, 619, 618, 618, 618, 617, 615, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 612, 612, 611, 611, 610, 609, 609, 609, 609, 609, 608, 604, 604, 604, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 598, 598, 598, 598, 598, 598, 599, 599, 598, 598, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 595, 595, 595, 596, 597, 599, 599, 599, 599, 599, 597, 594, 594, 594, 596, 596, 596, 596, 596, 596, 594, 594, 594, 594, 594, 594, 593, 593, 593, 592, 592, 592, 594, 594, 594, 594, 592, 592, 592, 594, 594, 595, 595, 596, 596, 596, 592, 592, 592, 592, 593, 594, 594, 594, 594, 591, 591, 591, 591, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 596, 599, 600, 600, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 599, 599, 601, 601, 600, 600, 600, 600, 601, 601, 601, 601, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 603, 603, 604, 604, 604, 604, 604, 604, 604, 605, 606, 608, 608, 608, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 608, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 599, 599, 598, 598, 598, 599, 600, 602, 602, 601, 599, 598, 598, 599, 599, 599, 599, 599, 598, 598, 596, 596, 596, 598, 598, 598, 597, 597, 596, 596, 596, 595, 595, 595, 595, 597, 597, 597, 597, 593, 592, 592, 592, 590, 590, 590, 590, 592, 592, 592, 592, 593, 593, 593, 591, 590, 589, 589, 589, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 589, 589, 587, 586, 586, 586, 586, 586, 588, 588, 588, 588, 588, 580, 580, 580, 581, 583, 583, 583, 583, 583, 583, 583, 583, 583, 590, 590, 590, 585, 585, 585, 582, 582, 582, 583, 583, 583, 583, 583, 586, 586, 586, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 582, 580, 580, 580, 580, 582, 582, 582, 582, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 581, 581, 582, 582, 582, 582, 582, 582, 583, 583, 583, 583, 583, 584, 584, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 587, 587, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 591, 591, 591, 591, 591, 592, 592, 593, 593, 593, 593, 593, 593, 594, 594, 594, 596, 596, 596, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 600, 600, 601, 601, 601, 601, 603, 603, 605, 606, 606, 606, 606, 607, 607, 608, 608, 610, 613, 613, 613, 613, 617, 617, 619, 620, 621, 621, 622, 623, 623, 623, 623, 624, 626, 627, 628, 628, 629, 629, 630, 630, 631, 631, 634, 634, 635, 635, 635, 635, 636, 637, 637, 639, 639, 644, 646, 646, 646, 648, 649, 649, 649, 650, 650, 650, 651, 652, 652, 653, 653, 654, 654, 655, 655, 659, 659, 659, 660, 661, 661, 661, 662, 663, 663, 663, 664, 664, 664, 665, 665, 667, 668, 668, 669, 670, 670, 672, 673, 673, 673, 674, 674, 675, 675, 676, 678, 679, 680, 680, 680, 680, 680, 680, 680, 680, 680, 681, 681, 681, 681, 681, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 679, 679, 679, 679, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 677, 677, 677, 677, 677, 677, 677, 677, 676, 676, 676, 676, 676, 675, 675, 674, 674, 673, 673, 673, 673, 673, 673, 671, 671, 671, 671, 670, 670, 670, 670, 670, 669, 669, 669, 669, 669, 669, 668, 668, 666, 666, 666, 666, 665, 665, 664, 664, 663, 663, 662, 662, 662, 662, 662, 661, 661, 661, 660, 659, 659, 659, 658, 658, 658, 658, 658, 657, 657, 656, 656, 656, 656, 656, 655, 655, 655, 655, 654, 654, 654, 654, 654, 655, 655, 655, 655, 655, 655, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 656, 656, 656, 656, 656, 657, 657, 657, 657, 657, 659, 659, 659, 659, 661, 661, 661, 662, 663, 663, 664, 665, 665, 665, 665, 666, 666, 666, 666, 666, 666, 666, 667, 667, 669, 670, 670, 670, 670, 670, 670, 670, 671, 674, 674, 674, 674, 674, 674, 674, 675, 675, 676, 676, 676, 678, 679, 679, 679, 679, 679, 679, 680, 680, 681, 681, 681, 681, 681, 681, 682, 682, 682, 683, 684, 685, 685, 685, 685, 685, 685, 687, 687, 688, 688, 688, 688, 688, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 686, 686, 686, 686, 686, 685, 685, 684, 682, 682, 682, 682, 682, 681, 681, 681, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 679, 678, 678, 678, 677, 675, 675, 675, 673, 673, 673, 672, 671, 670, 668, 668, 668, 667, 666, 666, 665, 664, 663, 662, 661, 660, 657, 657, 657, 657, 657, 657, 656, 655, 655, 653, 652, 651, 651, 651, 650, 648, 648, 647, 647, 646, 646, 646, 645, 645, 644, 644, 644, 644, 643, 643, 643, 642, 640, 640, 640, 640, 639, 638, 638, 636, 636, 636, 635, 634, 633, 631, 631, 631, 631, 630, 630, 630, 630, 629, 628, 628, 627, 627, 627, 627, 627, 626, 625, 624, 624, 624, 624, 623, 623, 623, 621, 621, 621, 621, 620, 620, 620, 618, 618, 617, 617, 616, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 616, 616, 615, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 611, 611, 611, 611, 611, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 610, 611, 611, 611, 611, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 613, 613, 614, 614, 614, 614, 614, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 617, 617, 617, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 614, 614, 614, 613, 613, 613, 613, 613, 613, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 613, 613, 613, 613, 613, 613, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 610, 610, 609, 609, 609, 609, 608, 608, 608, 608, 608, 607, 607, 606, 606, 606, 606, 606, 605, 605, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 600, 600, 600, 600, 600, 600, 600, 600, 600, 598, 598, 598, 598, 597, 597, 597, 597, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 595, 595, 595, 594, 594, 594, 594, 594, 592, 591, 591, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 573, 574, 575, 576, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 581, 581, 581, 582, 582, 582, 582, 582, 581, 581, 581, 581, 584, 584, 584, 584, 584, 584, 586, 586, 586, 586, 586, 585, 585, 585, 585, 586, 586, 586, 582, 582, 582, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 593, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 596, 596, 596, 596, 596, 596, 596, 597, 597, 597, 597, 597, 597, 598, 598, 598, 599, 600, 600, 600, 601, 604, 605, 605, 605, 606, 607, 607, 609, 609, 609, 610, 610, 610, 611, 613, 614, 614, 614, 614, 614, 615, 616, 617, 617, 620, 621, 621, 624, 625, 625, 625, 627, 627, 627, 627, 627, 627, 628, 628, 630, 630, 630, 630, 631, 631, 631, 631, 632, 632, 632, 633, 633, 634, 635, 638, 638, 639, 639, 639, 640, 640, 641, 642, 643, 643, 644, 644, 644, 645, 645, 645, 647, 647, 650, 651, 651, 651, 652, 652, 652, 652, 652, 653, 653, 653, 653, 653, 653, 653, 653, 654, 654, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 654, 654, 654, 654, 654, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 650, 650, 650, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 646, 646, 646, 646, 646, 646, 646, 646, 645, 645, 644, 644, 643, 643, 643, 642, 642, 642, 642, 642, 642, 642, 642, 641, 641, 641, 641, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 637, 637, 637, 637, 636, 636, 636, 637, 637, 637, 636, 636, 636, 635, 635, 635, 636, 636, 636, 635, 635, 635, 636, 636, 636, 635, 635, 635, 635, 635, 635, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 638, 638, 638, 640, 640, 640, 640, 641, 641, 641, 641, 641, 641, 641, 642, 642, 643, 643, 643, 644, 644, 644, 644, 645, 645, 646, 647, 648, 648, 648, 649, 650, 651, 651, 652, 652, 652, 654, 654, 655, 655, 655, 655, 656, 656, 656, 658, 658, 658, 659, 659, 659, 660, 660, 660, 660, 662, 662, 664, 664, 665, 665, 665, 666, 666, 666, 666, 667, 667, 667, 667, 669, 669, 669, 670, 670, 671, 672, 674, 674, 674, 675, 675, 675, 676, 676, 676, 676, 676, 676, 676, 676, 676, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 672, 672, 672, 672, 671, 671, 671, 670, 668, 668, 668, 668, 667, 665, 665, 665, 664, 664, 664, 663, 662, 662, 662, 662, 659, 659, 659, 658, 657, 657, 655, 655, 655, 654, 654, 654, 653, 652, 650, 650, 650, 650, 649, 648, 648, 647, 647, 646, 644, 644, 643, 642, 642, 641, 641, 641, 641, 640, 639, 638, 638, 635, 635, 635, 635, 634, 634, 634, 634, 633, 633, 632, 631, 628, 628, 628, 627, 627, 627, 626, 626, 626, 625, 625, 625, 621, 621, 621, 621, 621, 620, 620, 619, 619, 619, 619, 619, 619, 618, 618, 617, 617, 617, 615, 615, 615, 615, 614, 614, 614, 614, 613, 613, 613, 613, 613, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 610, 609, 609, 609, 609, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 605, 605, 605, 605, 605, 604, 603, 603, 603, 603, 602, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 597, 597, 597, 597, 597, 597, 597, 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 594, 594, 594, 593, 593, 593, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 592, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 585, 583, 583, 583, 583, 583, 581, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 581, 580, 580, 579, 579, 579, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 580, 579, 579, 580, 581, 581, 582, 582, 582, 580, 580, 581, 581, 581, 581, 579, 578, 578, 578, 577, 577, 577, 577, 577, 574, 574, 573, 572, 571, 571, 571, 576, 576, 576, 574, 574, 575, 579, 580, 580, 580, 580, 580, 583, 583, 583, 580, 580, 580, 581, 584, 584, 584, 584, 584, 583, 583, 583, 583, 579, 578, 578, 580, 583, 583, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 582, 582, 582, 585, 585, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 584, 583, 583, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 589, 589, 589, 590, 590, 591, 591, 593, 593, 593, 593, 593, 594, 594, 595, 595, 595, 597, 597, 598, 598, 598, 598, 598, 599, 599, 599, 599, 600, 601, 601, 602, 602, 602, 602, 603, 603, 605, 605, 608, 608, 610, 613, 613, 613, 613, 613, 613, 613, 613, 614, 614, 614, 614, 614, 614, 614, 615, 615, 615, 617, 617, 617, 617, 619, 619, 619, 620, 620, 620, 620, 620, 623, 623, 623, 623, 624, 625, 625, 625, 626, 626, 626, 626, 627, 627, 627, 629, 629, 629, 629, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 633, 633, 633, 634, 634, 635, 636, 636, 636, 636, 636, 636, 636, 636, 636, 635, 634, 634, 634, 633, 633, 633, 633, 633, 633, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 628, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 625, 625, 623, 622, 622, 622, 622, 622, 622, 622, 622, 621, 621, 621, 620, 620, 620, 620, 620, 620, 620, 620, 620, 619, 619, 618, 617, 617, 617, 617, 617, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 616, 616, 616, 616, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 617, 617, 617, 617, 617, 617, 617, 617, 619, 620, 620, 622, 622, 622, 622, 622, 622, 622, 623, 623, 623, 625, 626, 626, 627, 627, 627, 628, 629, 629, 629, 629, 630, 630, 631, 631, 631, 632, 632, 634, 634, 635, 637, 638, 638, 638, 638, 638, 639, 640, 640, 640, 640, 641, 642, 642, 642, 642, 642, 643, 643, 643, 644, 644, 644, 645, 645, 646, 646, 646, 646, 647, 647, 647, 648, 648, 648, 649, 649, 649, 649, 651, 651, 651, 651, 651, 653, 653, 653, 653, 653, 653, 653, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 654, 654, 654, 654, 654, 653, 653, 653, 652, 652, 652, 652, 651, 651, 651, 651, 651, 650, 650, 649, 649, 649, 649, 649, 649, 648, 647, 647, 647, 646, 646, 645, 645, 644, 643, 643, 641, 638, 638, 638, 636, 636, 636, 636, 636, 636, 636, 635, 635, 635, 635, 635, 635, 635, 634, 632, 632, 632, 632, 632, 632, 632, 631, 630, 629, 629, 627, 626, 626, 626, 625, 625, 625, 625, 625, 625, 624, 624, 623, 621, 621, 621, 620, 619, 619, 619, 619, 617, 617, 617, 616, 616, 614, 613, 611, 611, 611, 611, 611, 611, 610, 609, 609, 607, 606, 606, 605, 605, 605, 605, 605, 605, 604, 603, 603, 603, 603, 602, 602, 602, 602, 603, 603, 603, 603, 603, 603, 603, 602, 601, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 599, 599, 599, 599, 599, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 593, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 590, 590, 590, 590, 590, 590, 592, 592, 592, 592, 590, 590, 590, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 590, 590, 590, 589, 589, 589, 589, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 583, 583, 585, 585, 585, 585, 585, 585, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 582, 577, 577, 577, 582, 582, 582, 582, 582, 580, 580, 580, 580, 580, 582, 582, 582, 580, 579, 579, 580, 580, 580, 580, 581, 582, 582, 582, 580, 580, 580, 580, 580, 581, 581, 581, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 578, 578, 579, 580, 580, 578, 578, 578, 578, 578, 578, 578, 578, 578, 580, 580, 575, 575, 575, 575, 576, 576, 576, 580, 583, 583, 583, 579, 579, 577, 575, 575, 575, 579, 579, 579, 579, 574, 574, 574, 576, 578, 578, 578, 578, 578, 577, 577, 577, 577, 578, 578, 578, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 577, 578, 578, 578, 578, 570, 570, 573, 573, 573, 572, 572, 572, 574, 574, 574, 574, 572, 572, 572, 575, 578, 578, 578, 575, 575, 575, 575, 580, 580, 580, 580, 580, 580, 581, 585, 585, 585, 585, 585, 583, 582, 580, 580, 583, 586, 586, 586, 585, 585, 585, 585, 583, 583, 582, 582, 582, 586, 586, 586, 585, 584, 584, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 590, 590, 590, 586, 584, 584, 582, 582, 582, 588, 588, 588, 588, 588, 587, 587, 587, 587, 588, 588, 588, 586, 586, 584, 584, 584, 585, 585, 585, 585, 585, 585, 584, 583, 583, 583, 583, 587, 590, 590, 590, 584, 584, 584, 584, 584, 588, 588, 584, 584, 587, 588, 588, 588, 588, 588, 588, 588, 588, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 596, 596, 596, 598, 598, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 601, 602, 604, 604, 604, 605, 605, 605, 605, 606, 606, 607, 607, 607, 607, 607, 607, 607, 608, 608, 608, 609, 609, 610, 610, 612, 612, 613, 613, 613, 614, 615, 615, 615, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 618, 618, 618, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 613, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 611, 610, 610, 610, 610, 610, 610, 610, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 605, 605, 605, 604, 604, 604, 604, 603, 603, 603, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 600, 599, 599, 599, 599, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, 601, 601, 601, 601, 601, 601, 601, 602, 602, 603, 604, 604, 604, 605, 605, 605, 606, 606, 606, 606, 607, 607, 607, 610, 611, 611, 611, 611, 611, 612, 613, 613, 613, 613, 613, 613, 614, 614, 614, 615, 615, 616, 616, 616, 616, 616, 616, 617, 617, 618, 618, 618, 620, 620, 620, 620, 621, 622, 623, 623, 623, 623, 623, 624, 624, 625, 625, 626, 626, 628, 628, 628, 628, 628, 628, 629, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 632, 632, 632, 632, 634, 634, 634, 634, 634, 634, 634, 634, 634, 636, 636, 636, 636, 636, 636, 636, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 635, 635, 635, 635, 633, 633, 632, 632, 632, 632, 632, 633, 633, 633, 633, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 631, 631, 630, 629, 629, 629, 629, 629, 628, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 626, 626, 626, 625, 625, 625, 625, 625, 625, 624, 623, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 621, 621, 621, 621, 621, 621, 620, 620, 620, 620, 620, 619, 616, 615, 614, 614, 614, 613, 613, 613, 612, 612, 612, 612, 611, 611, 611, 610, 608, 608, 608, 608, 608, 608, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 602, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 598, 598, 598, 598, 598, 598, 596, 596, 596, 595, 595, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 592, 591, 591, 591, 591, 589, 588, 588, 590, 591, 591, 589, 588, 588, 587, 587, 588, 588, 588, 588, 588, 586, 586, 586, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 586, 586, 586, 588, 588, 588, 587, 587, 587, 586, 586, 586, 586, 586, 587, 587, 587, 583, 583, 583, 583, 585, 585, 585, 582, 582, 582, 584, 586, 586, 586, 585, 584, 583, 583, 581, 581, 581, 580, 580, 579, 579, 579, 582, 582, 582, 582, 583, 583, 583, 583, 583, 584, 584, 585, 585, 586, 586, 586, 582, 582, 582, 583, 585, 585, 583, 578, 578, 578, 583, 583, 583, 583, 583, 579, 579, 579, 579, 579, 581, 583, 583, 583, 581, 581, 581, 578, 578, 578, 580, 580, 580, 580, 580, 580, 579, 579, 579, 580, 582, 582, 580, 577, 575, 575, 575, 575, 575, 575, 575, 576, 576, 579, 579, 579, 579, 579, 579, 579, 577, 577, 577, 577, 578, 578, 578, 574, 574, 574, 576, 576, 577, 577, 577, 578, 578, 578, 578, 579, 579, 579, 579, 579, 578, 573, 573, 580, 580, 573, 573, 573, 573, 573, 578, 578, 578, 576, 573, 573, 573, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 576, 578, 578, 575, 573, 573, 573, 574, 577, 577, 577, 574, 572, 572, 572, 572, 572, 572, 574, 574, 574, 574, 575, 575, 575, 574, 573, 573, 574, 574, 574, 574, 574, 575, 575, 575, 573, 573, 573, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 572, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 577, 577, 574, 574, 573, 572, 572, 571, 571, 571, 573, 573, 574, 574, 574, 574, 574, 574, 574, 571, 571, 564, 564, 564, 564, 566, 566, 566, 571, 571, 571, 572, 572, 572, 572, 572, 573, 574, 574, 574, 574, 574, 576, 576, 577, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 583, 583, 583, 583, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 586, 586, 586, 586, 588, 588, 588, 588, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 593, 593, 593, 593, 593, 593, 594, 594, 594, 595, 595, 595, 595, 596, 596, 596, 597, 597, 598, 598, 599, 599, 599, 600, 601, 601, 601, 601, 601, 601, 601, 601, 602, 602, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 598, 597, 597, 597, 597, 597, 597, 597, 597, 596, 596, 596, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 588, 589, 589, 589, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 596, 596, 596, 598, 598, 598, 598, 598, 598, 598, 600, 600, 600, 601, 601, 602, 602, 602, 602, 602, 602, 603, 603, 604, 605, 605, 606, 606, 607, 607, 607, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 611, 611, 613, 613, 614, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 618, 618, 618, 618, 618, 619, 619, 620, 621, 621, 621, 621, 621, 621, 621, 623, 623, 623, 623, 624, 624, 624, 625, 625, 625, 625, 625, 625, 626, 626, 626, 626, 626, 626, 627, 628, 628, 628, 628, 628, 628, 628, 628, 628, 629, 629, 629, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 630, 630, 630, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 633, 633, 633, 633, 633, 633, 633, 633, 633, 632, 632, 632, 632, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 633, 633, 633, 633, 633, 633, 633, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 630, 628, 628, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 626, 626, 625, 625, 625, 625, 625, 625, 625, 624, 624, 624, 623, 623, 623, 623, 623, 623, 622, 620, 620, 620, 619, 619, 619, 619, 619, 618, 618, 618, 618, 618, 618, 618, 618, 618, 617, 616, 616, 615, 615, 613, 613, 613, 613, 612, 611, 611, 611, 611, 611, 610, 610, 610, 610, 609, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 607, 606, 606, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 602, 602, 602, 602, 601, 601, 599, 599, 598, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 587, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 584, 584, 584, 584, 582, 582, 582, 582, 581, 581, 581, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 574, 574, 574, 574, 573, 573, 575, 576, 576, 576, 576, 562, 562, 562, 562, 563, 563, 563, 563, 565, 566, 566, 566, 566, 567, 567, 570, 570, 570, 568, 568, 568, 572, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 577, 581, 581, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 581, 581, 580, 580, 580, 580, 580, 578, 578, 578, 579, 579, 580, 580, 580, 580, 581, 581, 584, 584, 584, 583, 581, 581, 581, 581, 580, 580, 580, 580, 579, 579, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 578, 578, 578, 578, 578, 576, 576, 576, 576, 576, 580, 580, 580, 579, 575, 575, 575, 575, 575, 576, 576, 578, 578, 582, 582, 582, 582, 582, 581, 581, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 583, 583, 583, 581, 579, 579, 581, 583, 585, 585, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 588, 585, 585, 585, 585, 585, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 589, 589, 589, 586, 586, 586, 587, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 587, 587, 587, 587, 587, 587, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 586, 586, 586, 586, 585, 585, 585, 585, 584, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 585, 585, 585, 582, 582, 582, 583, 583, 583, 583, 585, 585, 585, 585, 580, 580, 580, 580, 580, 580, 579, 579, 579, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 582, 582, 582, 581, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 582, 582, 582, 582, 578, 576, 576, 576, 576, 575, 575, 575, 575, 579, 581, 581, 579, 574, 574, 574, 578, 579, 581, 581, 580, 580, 580, 578, 578, 577, 577, 577, 577, 576, 576, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 574, 574, 583, 583, 580, 580, 580, 580, 577, 577, 577, 578, 580, 581, 581, 582, 582, 584, 586, 586, 584, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 593, 593, 595, 595, 596, 596, 596, 596, 596, 597, 597, 597, 597, 598, 599, 600, 600, 600, 600, 600, 600, 600, 601, 601, 603, 603, 603, 603, 603, 604, 604, 604, 604, 604, 605, 605, 605, 607, 607, 607, 608, 609, 609, 609, 609, 610, 610, 610, 610, 611, 612, 612, 612, 612, 612, 613, 613, 613, 613, 613, 614, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 617, 617, 617, 619, 620, 620, 622, 622, 623, 623, 623, 624, 624, 624, 624, 624, 625, 625, 625, 625, 626, 626, 626, 626, 627, 627, 627, 628, 628, 628, 628, 628, 628, 628, 628, 629, 629, 629, 630, 630, 630, 630, 630, 631, 631, 631, 632, 632, 632, 632, 632, 633, 633, 634, 635, 635, 635, 636, 636, 636, 636, 637, 638, 638, 638, 639, 639, 640, 640, 640, 640, 640, 640, 641, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 644, 644, 646, 646, 646, 646, 646, 646, 646, 647, 647, 647, 647, 647, 647, 647, 647, 648, 648, 648, 648, 648, 648, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 650, 648, 648, 647, 647, 646, 646, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 643, 643, 642, 641, 640, 640, 640, 640, 639, 639, 638, 638, 635, 634, 634, 634, 634, 634, 633, 633, 633, 632, 632, 632, 629, 629, 629, 628, 628, 628, 628, 628, 628, 628, 627, 627, 627, 626, 625, 625, 625, 624, 624, 624, 624, 621, 621, 620, 620, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 618, 618, 617, 617, 617, 616, 616, 616, 615, 614, 614, 614, 614, 613, 612, 612, 611, 611, 611, 611, 611, 610, 610, 610, 610, 608, 608, 607, 607, 607, 605, 605, 605, 604, 603, 603, 602, 601, 601, 601, 600, 600, 600, 600, 600, 600, 599, 598, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 597, 596, 596, 595, 595, 595, 594, 594, 592, 592, 592, 591, 590, 590, 590, 590, 590, 586, 586, 586, 590, 590, 590, 590, 589, 588, 588, 588, 588, 588, 588, 587, 587, 587, 586, 586, 585, 582, 580, 580, 585, 585, 586, 584, 584, 582, 582, 582, 582, 582, 582, 580, 580, 580, 580, 580, 580, 581, 583, 583, 583, 584, 584, 583, 580, 578, 576, 576, 578, 580, 580, 580, 580, 580, 579, 579, 579, 579, 581, 581, 583, 583, 583, 579, 578, 577, 577, 577, 579, 581, 581, 580, 580, 580, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 577, 577, 577, 578, 578, 578, 578, 578, 575, 575, 575, 575, 576, 576, 576, 574, 574, 574, 575, 575, 575, 575, 575, 576, 576, 576, 576, 575, 575, 575, 575, 575, 573, 573, 573, 573, 573, 571, 570, 570, 571, 572, 575, 575, 575, 575, 575, 575, 575, 575, 575, 578, 578, 578, 578, 578, 578, 574, 574, 574, 573, 570, 570, 570, 571, 571, 572, 572, 572, 572, 577, 577, 577, 575, 574, 574, 574, 574, 574, 575, 575, 577, 577, 577, 577, 577, 573, 572, 572, 572, 572, 574, 576, 576, 576, 578, 578, 576, 575, 574, 561, 561, 557, 557, 557, 560, 560, 560, 560, 562.5, 564, 565, 565, 566, 566, 567, 568, 568, 569, 569, 570, 570, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 576, 576, 576, 576, 576, 577, 577, 577, 577, 576, 576, 576, 576, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 576, 576, 576, 576, 576, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 583, 583, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 578, 578, 576, 576, 576, 576, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 583, 583, 583, 584, 584, 584, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 589, 589, 589, 589, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 592, 592, 593, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 596, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 603, 603, 603, 603, 602, 602, 602, 602, 603, 604, 604, 605, 605, 605, 605, 605, 606, 606, 606, 607, 607, 607, 607, 608, 608, 608, 609, 609, 609, 609, 609, 609, 610, 610, 610, 610, 610, 610, 610, 610, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, 617, 618, 618, 618, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 615, 614, 612, 612, 612, 612, 612, 612, 612, 612, 611, 611, 610, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 606, 606, 606, 605, 605, 605, 605, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 603, 603, 603, 603, 602, 602, 601, 599, 599, 599, 598, 597, 597, 597, 598, 598, 598, 597, 597, 596, 596, 594, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 592, 592, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 584, 584, 584, 584, 583, 583, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 580, 580, 580, 581, 581, 581, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 578, 579, 579, 579, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 576, 576, 577, 577, 577, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 583, 583, 583, 583, 584, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 589, 589, 591, 591, 591, 589, 589, 589, 591, 591, 591, 593, 593, 591, 589, 589, 562, 562, 562, 562, 562, 563, 563, 563, 563.5, 563.5, 564, 564, 564, 564, 564, 566, 566, 566, 567, 567, 568, 569, 569, 569, 569, 569, 570, 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 580, 580, 580, 580, 580, 579, 579, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 575, 575, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, 573, 574, 574, 574, 574, 574, 574, 574, 574, 573, 571, 571, 571, 571, 571, 571, 572, 572, 572, 571, 571, 570, 570, 570, 570, 570, 570, 571, 571, 571, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 578, 578, 579, 579, 579, 580, 580, 580, 580, 580, 580, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 589, 589, 589, 590, 590, 590, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 585, 585, 585, 585, 584, 584, 583, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 584, 583, 582, 582, 582, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 586, 587, 587, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 593, 593, 593, 593, 595, 596, 596, 596, 596, 596, 596, 596, 597, 597, 598, 599, 599, 599, 599, 599, 599, 600, 600, 601, 601, 601, 601, 602, 603, 603, 604, 604, 604, 605, 605, 605, 606, 607, 607, 607, 608, 608, 610, 610, 610, 610, 611, 611, 611, 611, 612, 612, 612, 613, 613, 614, 615, 615, 615, 615, 615, 617, 618, 619, 620, 620, 623, 624, 624, 624, 624, 625, 625, 625, 625, 628, 628, 628, 628, 628, 629, 629, 629, 629, 634, 634, 635, 637, 638, 639, 641, 641, 643, 643, 644, 644, 648, 648, 648, 644, 644, 644, 648, 649, 649, 566, 565, 561, 559, 559, 563, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 568, 569, 569, 569, 569, 571, 571, 571, 568, 567, 567, 567, 569, 570, 573, 573, 573, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 575, 575, 575, 575, 575, 577, 577, 573, 573, 573, 573, 573, 573, 570, 570, 570, 573, 575, 576, 576, 576, 577, 577, 577, 577, 577, 575, 572, 572, 572, 572, 573, 575, 575, 578, 578, 578, 576, 576, 576, 576, 577, 577, 577, 574, 573, 573, 573, 573, 573, 573, 573, 573, 577, 577, 577, 577, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 574, 574, 574, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 575, 577, 577, 577, 577, 577, 577, 579, 579, 579, 579, 579, 579, 579, 582, 582, 582, 581, 579, 578, 578, 578, 578, 579, 580, 580, 580, 580, 582, 582, 582, 581, 581, 581, 581, 581, 582, 582, 582, 581, 579, 579, 578, 578, 578, 577, 577, 577, 580, 581, 582, 582, 582, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 576, 576, 576, 579, 579, 579, 576, 576, 576, 576, 578, 578, 578, 578, 578, 578, 578, 576, 576, 580, 580, 579, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 573, 573, 573, 573, 573, 577, 577, 577, 577, 577, 575, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 576, 576, 576, 576, 576, 575, 575, 575, 575, 575, 576, 576, 574, 574, 574, 574, 573, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 575, 576, 576, 576, 576, 576, 570, 570, 570, 576, 576, 576, 576, 576, 576, 576, 576, 572, 570, 570, 570, 570, 574, 574, 574, 574, 573, 573, 573, 574, 575, 575, 575, 575, 573, 573, 573, 573, 573, 574, 574, 574, 569, 569, 569, 569, 569, 569, 573, 575, 576, 576, 576, 576, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 572, 572, 574, 574, 574, 572, 572, 572, 572, 572, 572, 572, 574, 574, 574, 574, 575, 575, 576, 576, 576, 576, 572, 572, 572, 574, 574, 574, 575, 575, 575, 577, 577, 577, 577, 575, 575, 575, 573, 573, 573, 573, 576, 576, 576, 576, 574, 574, 574, 575, 575, 575, 575, 575, 575, 578, 578, 578, 578, 576, 576, 576, 574, 574, 574, 574, 575, 582, 582, 582, 574, 572, 572, 574, 574, 576, 576, 576, 576, 576, 576, 576, 576, 576, 574, 572, 572, 573, 577, 577, 577, 577, 578, 579, 579, 579, 579, 580, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 574, 574, 581, 581, 581, 581, 581, 582, 584, 584, 581, 581, 581, 581, 581, 581, 579, 579, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 587, 587, 587, 587, 586, 586, 585, 585, 582, 582, 582, 585, 585, 585, 585, 585, 585, 588, 588, 588, 588, 586, 584, 584, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 589, 589, 589, 589, 589, 593, 593, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 589, 589, 589, 589, 590, 591, 592, 592, 589, 589, 589, 589, 591, 592, 592, 592, 592, 592, 593, 594, 594, 592, 590, 590, 590, 587, 587, 589, 592, 592, 592, 592, 593, 593, 593, 593, 593, 593, 592, 592, 592, 589, 589, 589, 589, 589, 592, 594, 594, 594, 593, 592, 592, 592, 592, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 589, 589, 589, 593, 593, 593, 593, 591, 591, 591, 593, 593, 593, 593, 594, 594, 594, 594, 592, 592, 592, 589, 589, 589, 589, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 591, 591, 590, 590, 590, 590, 589, 589, 589, 589, 589, 595, 595, 593, 588, 588, 589, 589, 589, 589, 592, 592, 592, 592, 592, 592, 593, 593, 593, 592, 590, 590, 589, 589, 585, 585, 585, 591, 591, 591, 591, 591, 591, 589, 588, 588, 588, 588, 588, 588, 588, 590, 592, 592, 592, 592, 591, 587, 587, 587, 587, 588, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 589, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 593, 595, 595, 595, 595, 593, 593, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 597, 597, 597, 598, 598, 596, 596, 594, 593, 593, 593, 597, 597, 597, 597, 601, 601, 601, 601, 601, 601, 601, 601, 601, 603, 603, 603, 603, 603, 603, 606, 606, 606, 606, 609, 609, 609, 609, 609, 609, 609, 609, 611, 613, 613, 613, 613, 613, 614, 615, 619, 619, 619, 619, 620, 620, 620, 620, 620, 622, 623, 623, 624, 624, 625, 625, 626, 626, 627, 627, 627, 628, 628, 629, 629, 630, 632, 633, 633, 633, 634, 637, 638, 639, 639, 640, 641, 642, 643, 644, 645, 645, 645, 646, 646, 648, 648, 649, 652, 652, 652, 654, 654, 656, 656, 656, 657, 658, 661, 662, 662, 664, 664, 664, 664, 664, 666, 667, 667, 668, 669, 670, 671, 672, 675, 677, 679, 681, 682, 683, 683, 687, 687, 690, 690, 694, 696, 696, 696, 698, 699, 700, 700, 701, 704, 704, 707, 707, 709, 710, 711, 713, 717, 720, 721, 721, 727, 730, 730, 732, 733, 738, 738, 746, 746, 746, 747, 751, 752, 753, 754, 757, 757, 758, 758, 759, 760, 760, 760, 762, 764, 765, 767, 773, 773, 780, 780, 782, 783, 785, 787, 788, 790, 799, 801, 809, 809, 809, 806, 806, 806, 825, 825, 825, 825, 571, 571, 567, 567, 567, 567, 568, 569, 569, 569, 569, 569, 569, 573, 575, 576, 576, 576, 576, 574, 574, 574, 578, 578, 578, 576, 576, 576, 577, 579, 579, 579, 579, 577, 577, 577, 577, 578, 578, 578, 574, 574, 574, 577, 579, 579, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 580, 580, 581, 590, 609, 671, 671, 671, 601, 601, 580, 580, 580, 580, 580, 580, 579, 579, 577, 577, 575, 575, 575, 576, 577, 580, 582, 582, 582, 581, 581, 580, 580, 578, 578, 578, 578, 578, 579, 580, 580, 580, 580, 580, 578, 578, 579, 580, 580, 581, 581, 581, 581, 579, 578, 578, 578, 578, 578, 578, 578, 576, 576, 578, 578, 578, 578, 580, 581, 581, 581, 580, 578, 577, 577, 579, 580, 581, 581, 581, 580, 580, 580, 580, 580, 581, 582, 582, 582, 582, 582, 582, 584, 584, 584, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 580, 580, 580, 582, 584, 586, 586, 586, 583, 582, 582, 582, 584, 584, 584, 587, 587, 587, 583, 583, 583, 581, 581, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 585, 585, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 579, 579, 579, 579, 579, 582, 582, 582, 582, 582, 582, 581, 581, 581, 584, 584, 584, 584, 581, 581, 581, 583, 583, 586, 586, 586, 584, 583, 583, 583, 583, 583, 581, 581, 581, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 582, 582, 582, 582, 584, 584, 584, 578, 576, 576, 576, 576, 580, 580, 580, 577, 577, 577, 577, 578, 580, 582, 582, 580, 579, 579, 580, 581, 581, 581, 581, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 577, 577, 577, 577, 576, 576, 579, 579, 582, 582, 582, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 581, 581, 581, 581, 581, 580, 577, 577, 577, 577, 582, 582, 582, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 581, 583, 583, 578, 578, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 579, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 580, 580, 580, 580, 584, 584, 584, 584, 583, 582, 582, 582, 585, 585, 585, 585, 585, 583, 581, 581, 581, 581, 582, 582, 580, 580, 580, 580, 579, 579, 579, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 583, 583, 581, 581, 583, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 579, 579, 579, 581, 582, 583, 583, 583, 582, 582, 582, 582, 582, 582, 584, 584, 582, 582, 581, 581, 580, 580, 580, 583, 584, 584, 586, 586, 586, 588, 588, 592, 592, 592, 586, 585, 585, 587, 590, 591, 591, 590, 589, 589, 587, 587, 583, 582, 584, 588, 590, 590, 593, 593, 593, 587, 587, 587, 588, 588, 588, 587, 587, 587, 587, 587, 587, 588, 590, 590, 590, 590, 590, 590, 592, 592, 592, 592, 592, 592, 592, 591, 589, 589, 589, 592, 592, 594, 594, 592, 592, 592, 592, 593, 594, 594, 594, 594, 594, 594, 594, 594, 594, 601, 602, 602, 602, 599, 599, 599, 599, 596, 596, 596, 601, 601, 601, 601, 597, 597, 596, 596, 596, 601, 601, 601, 600, 599, 599, 602, 605, 605, 605, 605, 604, 603, 603, 603, 603, 606, 608, 608, 608, 606, 600, 599, 599, 601, 603, 603, 603, 603, 603, 603, 603, 603, 603, 605, 605, 607, 610, 610, 610, 609, 609, 609, 603, 603, 603, 603, 604, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 606, 608, 608, 608, 608, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 608, 609, 609, 607, 606, 606, 606, 606, 607, 608, 609, 613, 613, 609, 609, 609, 609, 609, 609, 608, 607, 606, 606, 609, 609, 609, 609, 609, 609, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 610, 610, 610, 607, 607, 608, 608, 608, 608, 610, 613, 613, 616, 616, 616, 616, 614, 614, 614, 614, 610, 610, 610, 614, 614, 614, 614, 615, 615, 615, 615, 615, 615, 613, 612, 612, 612, 612, 615, 615, 615, 614, 616, 616, 620, 620, 621, 620, 620, 620, 620, 621, 621, 621, 621, 620, 619, 619, 619, 619, 619, 621, 621, 623, 623, 624, 624, 624, 624, 624, 624, 624, 625, 625, 625, 625, 624, 624, 624, 624, 625, 625, 625, 625, 631, 633, 633, 633, 633, 629, 629, 630, 630, 630, 630, 630, 635, 636, 636, 636, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 648, 648, 648, 648, 648, 647, 647, 647, 647, 647, 650, 650, 650, 650, 652, 657, 661, 661, 661, 656, 656, 656, 666, 669, 670, 670, 670, 668, 668, 683, 683, 683, 683, 680, 680, 680, 680, 685, 685, 685, 689, 689, 689, 689, 694, 698, 701, 701, 701, 702, 702, 702, 702, 706, 713, 714, 714, 714, 714, 714, 718, 718, 718, 723, 723, 723, 723, 731, 733, 737, 742, 742, 742, 742, 749, 755, 755, 755, 758, 762, 762, 765, 766, 768, 768, 768, 768, 773, 773, 773, 773, 786, 791, 791, 793, 799, 801, 804, 804, 805, 810, 810, 812, 817, 824, 824, 830, 830, 831, 835, 842, 844, 854, 854, 855, 861, 862, 863, 869, 873, 874, 875, 875, 875, 876, 885, 890, 892, 894, 899, 911, 916, 917, 918, 926, 926, 937, 938, 943, 944, 957, 958, 962, 962, 962, 962, 964, 974, 975, 981, 984, 989, 998, 1002, 1008, 1010, 1018, 1020, 1021, 1025, 1028, 1029, 1042, 1045, 1046, 1051, 1059, 1063, 1066, 1078, 1085, 1086, 1096, 1098, 1112, 1114, 1115, 1119, 1121, 1126, 1139, 1142, 1157, 1164, 1165, 1169, 1171, 1195, 1197, 1199, 1199, 1209, 1210, 1225, 1225, 1227, 1242, 1242, 1242, 1245, 1254, 1254, 1264, 1286, 1286, 1286, 1299, 1305, 1324, 1326, 1330, 587, 586, 583, 581, 580, 580, 583, 586, 586, 586, 586, 586, 584, 584, 584, 588, 588, 588, 590, 590, 590, 590, 593, 593, 594, 594, 596, 596, 596, 598, 602, 603, 599, 591, 591, 591, 591, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 588, 588, 588, 588, 589, 589, 589, 588, 588, 587, 587, 587, 588, 588, 588, 588, 587, 587, 587, 591, 591, 591, 589, 589, 589, 589, 589, 595, 595, 587, 587, 591, 591, 591, 591, 591, 593, 593, 593, 593, 593, 593, 590, 589, 589, 589, 594, 594, 594, 594, 593, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 589, 589, 589, 595, 595, 595, 594, 594, 594, 594, 591, 591, 591, 591, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 592, 592, 593, 593, 593, 590, 590, 590, 590, 592, 593, 593, 593, 593, 593, 592, 590, 590, 596, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 592, 592, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 595, 594, 594, 593, 593, 592, 592, 592, 594, 594, 594, 594, 594, 596, 596, 596, 596, 596, 596, 593, 593, 593, 603, 603, 598, 598, 598, 595, 595, 595, 595, 593, 593, 594, 594, 594, 594, 594, 595, 598, 598, 598, 597, 597, 597, 597, 597, 596, 596, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 594, 594, 595, 594, 592, 592, 592, 592, 594, 594, 594, 594, 597, 597, 597, 594, 592, 592, 592, 592, 596, 596, 596, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 595, 595, 596, 596, 598, 598, 596, 594, 594, 594, 594, 594, 594, 595, 600, 600, 596, 595, 594, 593, 591, 591, 592, 593, 593, 593, 593, 593, 593, 593, 593, 592, 592, 592, 592, 593, 593, 596, 596, 595, 595, 595, 595, 595, 594, 594, 594, 597, 597, 597, 596, 596, 596, 594, 593, 593, 593, 594, 594, 594, 594, 595, 596, 596, 596, 596, 596, 597, 597, 597, 597, 596, 596, 596, 596, 596, 595, 593, 593, 593, 593, 593, 594, 596, 596, 596, 596, 596, 596, 596, 596, 594, 594, 594, 594, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 597, 596, 596, 596, 598, 598, 598, 598, 598, 596, 594, 594, 597, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 600, 600, 597, 597, 597, 597, 597, 597, 597, 600, 602, 602, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 602, 602, 599, 599, 599, 604, 604, 604, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 600, 600, 600, 601, 605, 605, 605, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 607, 607, 607, 607, 606, 606, 606, 607, 607, 607, 607, 607, 607, 605, 605, 605, 605, 607, 607, 607, 607, 608, 608, 608, 609, 609, 611, 612, 612, 612, 607, 607, 607, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 610, 610, 610, 610, 610, 613, 613, 613, 613, 614, 614, 614, 614, 614, 615, 615, 615, 615, 615, 615, 614, 613, 613, 615, 617, 620, 620, 618, 616, 614, 614, 617, 622, 622, 618, 616, 616, 616, 617, 618, 618, 620, 620, 623, 623, 623, 623, 623, 623, 624, 698, 803, 859, 747, 635, 635, 623, 623, 623, 623, 624, 626, 626, 626, 626, 624, 621, 621, 621, 620, 620, 620, 625, 625, 625, 625, 625, 625, 623, 623, 623, 623, 625, 630, 630, 630, 629, 629, 629, 629, 625, 625, 627, 629, 629, 631, 631, 628, 626, 626, 626, 626, 626, 628, 628, 630, 630, 631, 631, 631, 631, 633, 633, 633, 633, 632, 631, 631, 635, 637, 637, 637, 637, 637, 639, 639, 641, 642, 642, 638, 638, 633, 633, 633, 633, 634, 638, 638, 638, 638, 643, 643, 643, 643, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 641, 641, 641, 645, 645, 645, 645, 645, 645, 649, 649, 649, 649, 649, 649, 649, 649, 649, 651, 653, 653, 656, 662, 663, 662, 656, 656, 656, 656, 660, 660, 660, 662, 663, 663, 658, 654, 654, 654, 666, 666, 666, 662, 662, 662, 662, 662, 662, 667, 667, 667, 667, 670, 670, 670, 670, 673, 675, 676, 676, 676, 676, 676, 676, 679, 679, 681, 686, 686, 686, 686, 686, 691, 691, 691, 688, 688, 688, 693, 693, 699, 699, 699, 699, 700, 703, 706, 708, 712, 712, 713, 713, 717, 717, 718, 718, 718, 721, 732, 732, 732, 732, 733, 733, 733, 733, 737, 737, 731, 731, 731, 731, 742, 742, 742, 746, 746, 752, 755, 757, 760, 763, 764, 764, 764, 768, 768, 775, 779, 779, 779, 780, 780, 782, 786, 787, 788, 791, 799, 799, 802, 802, 807, 807, 808, 811, 811, 816, 816, 826, 826, 826, 830, 833, 842, 847, 849, 856, 858, 858, 861, 861, 863, 872, 877, 881, 883, 883, 887, 905, 905, 907, 912, 925, 925, 925, 926, 926, 931, 952, 952, 955, 956, 963, 966, 966, 977, 991, 992, 996, 996, 1005, 1016, 1017, 1017, 1019, 1019, 1040, 1040, 1046, 1046, 1047, 1063, 1063, 1063, 1078, 1087, 1088, 1112, 1116, 1122, 1122, 1122, 1123, 1142, 1147, 1148, 1155, 1164, 1175, 1186, 1192, 1192, 1201, 1208, 1208, 1215, 1232, 1241, 1244, 1256, 1261, 1270, 1272, 1279, 1282, 1292, 1312, 1322, 1339, 1339, 1339, 1339, 1342, 1346, 1372, 1382, 1388, 1389, 1404, 1414, 1418, 1429, 1446, 1450, 1457, 1457, 1480, 1491, 1499, 1499, 1519, 1540, 1549, 1551, 1560, 1561, 1601, 1606, 1606, 1606, 1627, 1632, 1633, 1671, 1677, 1682, 1702, 1727, 1727, 1732, 1734, 1734, 1761, 1788, 1794, 1798, 1822, 1831, 1843, 1848, 1851, 1871, 1907, 1907, 1907, 1918, 1939, 1959, 1966, 1966, 1990, 2014, 2030, 2050, 2052, 2055, 2080, 2103, 2110, 2142, 2143, 2179, 2242, 2242, 2244, 2244, 2244, 2247, 2273, 2288, 2307, 2318, 2344, 2353, 2357, 2377, 2406, 2418, 2453, 2456, 2471, 2507, 2518, 2523, 2571, 2573, 2579, 2609, 2625, 2644, 2670, 2690, 2690, 623, 623, 623, 621, 613, 613, 613, 613, 615, 615, 619, 622, 622, 622, 622, 622, 619, 619, 619, 618, 618, 618, 619, 619, 619, 619, 621, 621, 621, 621, 622, 622, 622, 622, 621, 621, 619, 619, 617, 617, 617, 617, 615, 615, 615, 615, 620, 621, 623, 623, 623, 622, 621, 621, 619, 619, 619, 619, 619, 619, 620, 620, 620, 620, 620, 620, 620, 622, 622, 622, 618, 618, 618, 617, 617, 619, 619, 619, 619, 618, 618, 618, 618, 618, 621, 621, 615, 615, 614, 614, 614, 618, 618, 619, 619, 619, 619, 619, 619, 619, 619, 619, 618, 618, 618, 618, 618, 618, 619, 621, 622, 622, 622, 622, 621, 620, 620, 620, 620, 620, 620, 620, 618, 618, 618, 618, 620, 620, 620, 619, 619, 619, 619, 621, 625, 625, 621, 619, 619, 617, 617, 617, 617, 622, 627, 627, 625, 625, 625, 618, 618, 617, 619, 620, 622, 624, 624, 625, 626, 626, 626, 622, 622, 622, 622, 622, 622, 622, 622, 622, 623, 623, 623, 627, 627, 627, 627, 626, 626, 626, 626, 626, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 624, 624, 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 625, 628, 628, 628, 628, 628, 628, 627, 627, 627, 627, 627, 627, 627, 627, 628, 628, 628, 629, 629, 629, 629, 629, 631, 631, 626, 626, 626, 626, 630, 630, 626, 624, 624, 624, 625, 625, 625, 625, 625, 625, 625, 625, 628, 628, 628, 628, 625, 625, 633, 633, 633, 628, 628, 628, 628, 628, 628, 631, 631, 629, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 625, 625, 625, 627, 629, 631, 633, 633, 636, 636, 637, 635, 633, 633, 630, 625, 625, 625, 625, 625, 625, 625, 630, 631, 631, 631, 631, 631, 631, 630, 630, 631, 631, 631, 631, 631, 631, 628, 628, 628, 631, 635, 635, 633, 631, 629, 628, 628, 628, 628, 628, 628, 628, 632, 632, 635, 635, 635, 631, 631, 630, 630, 630, 630, 630, 630, 636, 638, 638, 638, 638, 635, 635, 634, 634, 634, 634, 634, 636, 636, 633, 633, 635, 635, 635, 635, 636, 637, 637, 637, 637, 634, 634, 634, 637, 637, 637, 636, 636, 636, 636, 636, 636, 636, 635, 635, 635, 635, 635, 636, 638, 638, 638, 638, 638, 634, 631, 631, 639, 639, 639, 639, 639, 639, 641, 641, 641, 641, 641, 644, 644, 644, 644, 642, 641, 641, 641, 641, 642, 642, 642, 642, 638, 637, 637, 640, 647, 647, 647, 647, 640, 640, 640, 640, 642, 645, 645, 645, 645, 645, 645, 643, 643, 643, 644, 644, 645, 645, 645, 645, 651, 653, 653, 646, 646, 646, 646, 646, 648, 650, 650, 650, 650, 650, 650, 652, 654, 654, 654, 652, 652, 651, 651, 651, 655, 655, 655, 655, 650, 650, 650, 650, 650, 653, 653, 653, 653, 653, 653, 653, 653, 653, 654, 654, 655, 655, 655, 655, 658, 658, 658, 658, 661, 667, 667, 662, 655, 655, 655, 655, 660, 661, 661, 661, 661, 660, 660, 660, 659, 659, 659, 659, 659, 664, 664, 664, 664, 663, 663, 663, 663, 661, 661, 661, 673, 675, 672, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 669, 669, 669, 671, 671, 671, 671, 675, 675, 675, 675, 669, 669, 669, 669, 673, 676, 677, 677, 677, 677, 677, 677, 679, 681, 681, 681, 681, 680, 679, 679, 679, 679, 679, 679, 679, 680, 683, 684, 685, 686, 688, 712, 712, 712, 712, 686, 686, 686, 686, 686, 692, 692, 694, 694, 691, 691, 691, 691, 691, 691, 687, 687, 687, 687, 694, 694, 694, 694, 694, 696, 699, 699, 699, 699, 694, 694, 700, 705, 705, 703, 697, 697, 697, 697, 710, 710, 709, 708, 708, 708, 708, 712, 720, 725, 724, 714, 714, 714, 716, 723, 723, 715, 715, 715, 715, 716, 719, 719, 720, 723, 727, 738, 738, 738, 725, 725, 725, 726, 730, 730, 731, 731, 734, 735, 735, 735, 736, 742, 742, 744, 744, 744, 744, 748, 748, 748, 748, 748, 751, 751, 754, 757, 757, 763, 763, 763, 763, 763, 770, 770, 770, 772, 773, 780, 780, 780, 780, 781, 784, 793, 793, 797, 797, 797, 799, 799, 799, 800, 810, 811, 811, 811, 813, 819, 822, 825, 831, 836, 851, 851, 832, 832, 852, 852, 852, 852, 852, 855, 855, 856, 862, 863, 865, 867, 873, 878, 879, 880, 884, 896, 896, 898, 910, 911, 918, 922, 932, 941, 941, 941, 941, 941, 941, 942, 944, 953, 953, 956, 962, 968, 972, 973, 975, 983, 985, 987, 995, 995, 1002, 1009, 1014, 1014, 1018, 1019, 1024, 1036, 1044, 1046, 1052, 1064, 1068, 1071, 1072, 1077, 1086, 1087, 1098, 1098, 1103, 1107, 1118, 1129, 1129, 1129, 1130, 1130, 1150, 1163, 1164, 1166, 1166, 1185, 1196, 1210, 1212, 1214, 1214, 1214, 1232, 1243, 1246, 1260, 1266, 1268, 1268, 1268, 1281, 1297, 1309, 1321, 1328, 1342, 1342, 1362, 1366, 1396, 1406, 1406, 1409, 1415, 1447, 1447, 1454, 1457, 1469, 1491, 1494, 1511, 1539, 1544, 1555, 1559, 1591, 1611, 1611, 1623, 1637, 1659, 1670, 1679, 1692, 1696, 1704, 1733, 1760, 1762, 1780, 1791, 1794, 1813, 1831, 1847, 1864, 1872, 1889, 1924, 1926, 1941, 1960, 1963, 1987, 2010, 2016, 2029, 2042, 2071, 2084, 2103, 2118, 2127, 2173, 2173, 2175, 2221, 2233, 2244, 2276, 2276, 2289, 2325, 2357, 2365, 2387, 2396, 2419, 2426, 2456, 2474, 2498, 2516, 2539, 2568, 2580, 2621, 2633, 2644, 2658, 2658, 2691, 2736, 2765, 2792, 2809, 2832, 2852, 2866, 2898, 2924, 2980, 2991, 3002, 3002, 3019, 3063, 3081, 3112, 3153, 3176, 3195, 3208, 3256, 3265, 3290, 3336, 3375, 3396, 3411, 3476, 3476, 3477, 3542, 3581, 3609, 3609, 3622, 3703, 3706, 3760, 3763, 3799, 3835, 3869, 3897, 3944, 3967, 3972, 3973, 4075, 4087, 4115, 4147, 4165, 4219, 4258, 4259, 4333, 4393, 4413, 4423, 4494, 4517, 4518, 4556, 4613, 4685, 4716, 4778, 4786, 4820, 4887, 4892, 4938, 4990, 5020, 5080, 5107, 5191, 5203, 5263, 5267, 5300, 5379, 5426, 5457, 5478, 5551, 5584, 5638, 5746, 5832, 5832, 5871, 5871, 5940, 5969, 5988, 6103, 6128, 6138, 690, 686, 684, 684, 684, 684, 684, 687, 687, 687, 687, 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 687, 687, 687, 687, 687, 687, 684, 684, 684, 684, 687, 687, 687, 687, 687, 687, 687, 690, 690, 690, 690, 686, 682, 681, 681, 681, 684, 684, 684, 684, 684, 684, 684, 684, 687, 687, 687, 687, 685, 685, 681, 681, 680, 680, 680, 683, 683, 683, 682, 682, 682, 682, 683, 685, 685, 685, 681, 681, 681, 681, 679, 679, 679, 679, 679, 679, 679, 679, 679, 680, 680, 680, 679, 679, 679, 679, 681, 682, 682, 686, 688, 688, 688, 681, 681, 681, 681, 681, 683, 683, 683, 683, 683, 685, 685, 685, 677, 677, 677, 677, 679, 679, 679, 684, 685, 685, 685, 685, 685, 686, 686, 686, 686, 686, 686, 686, 685, 685, 685, 685, 685, 685, 685, 685, 686, 686, 686, 687, 687, 687, 687, 687, 689, 689, 689, 689, 689, 689, 688, 683, 683, 683, 683, 683, 686, 686, 689, 690, 690, 690, 690, 690, 687, 687, 689, 689, 692, 692, 692, 692, 692, 691, 689, 689, 691, 691, 691, 691, 691, 693, 693, 693, 693, 693, 695, 698, 698, 698, 697, 695, 695, 695, 695, 694, 694, 694, 696, 696, 696, 694, 694, 694, 694, 695, 695, 695, 695, 695, 690, 690, 697, 697, 697, 697, 698, 698, 699, 699, 699, 699, 699, 696, 696, 696, 696, 696, 702, 702, 702, 702, 701, 701, 701, 701, 701, 701, 701, 699, 697, 697, 697, 697, 697, 697, 698, 698, 698, 698, 698, 704, 704, 704, 704, 704, 704, 704, 700, 700, 700, 700, 700, 698, 698, 698, 700, 703, 703, 706, 706, 706, 706, 710, 710, 706, 706, 706, 706, 705, 704, 704, 704, 704, 704, 704, 710, 710, 704, 703, 703, 703, 703, 703, 705, 705, 705, 712, 712, 712, 711, 711, 706, 706, 709, 709, 706, 706, 709, 709, 707, 707, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 705, 705, 706, 709, 710, 711, 711, 711, 711, 711, 711, 711, 707, 707, 714, 715, 715, 715, 715, 715, 714, 714, 714, 714, 715, 715, 715, 717, 717, 717, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 715, 715, 715, 716, 719, 719, 717, 717, 717, 717, 723, 724, 735, 735, 722, 722, 722, 722, 725, 726, 726, 726, 724, 722, 722, 722, 728, 729, 729, 729, 729, 729, 729, 729, 729, 730, 733, 733, 733, 733, 733, 733, 732, 732, 732, 732, 731, 731, 731, 731, 731, 731, 733, 733, 733, 733, 734, 737, 737, 737, 737, 732, 732, 732, 732, 735, 745, 745, 747, 747, 747, 740, 740, 740, 740, 750, 750, 750, 747, 747, 746, 746, 746, 746, 736, 736, 739, 744, 744, 745, 745, 746, 748, 753, 753, 749, 747, 744, 743, 743, 746, 751, 751, 753, 753, 755, 755, 755, 755, 755, 755, 755, 755, 760, 760, 760, 757, 757, 762, 762, 762, 762, 762, 762, 760, 760, 760, 760, 760, 760, 760, 759, 759, 759, 763, 765, 766, 766, 766, 766, 766, 766, 766, 766, 774, 774, 774, 774, 774, 774, 772, 772, 772, 772, 772, 772, 772, 776, 776, 776, 776, 780, 780, 780, 778, 776, 776, 776, 776, 780, 780, 780, 786, 787, 787, 794, 795, 795, 795, 788, 788, 788, 788, 788, 788, 794, 798, 798, 806, 806, 806, 805, 796, 796, 796, 798, 800, 801, 801, 801, 799, 799, 799, 806, 809, 809, 809, 813, 813, 813, 815, 815, 815, 812, 812, 812, 818, 819, 821, 821, 822, 822, 823, 823, 823, 829, 837, 837, 834, 830, 830, 829, 829, 829, 832, 841, 841, 841, 841, 845, 845, 846, 846, 846, 845, 845, 846, 853, 853, 855, 856, 861, 863, 863, 863, 863, 863, 866, 866, 866, 876, 877, 881, 883, 883, 883, 881, 881, 881, 895, 895, 895, 895, 897, 901, 906, 906, 907, 909, 917, 920, 921, 926, 931, 933, 933, 937, 938, 938, 940, 944, 948, 948, 948, 948, 959, 963, 964, 964, 972, 974, 975, 978, 978, 980, 981, 993, 994, 1002, 1002, 1005, 1005, 1008, 1009, 1011, 1012, 1023, 1035, 1039, 1039, 1044, 1044, 1054, 1054, 1063, 1063, 1063, 1068, 1069, 1082, 1085, 1085, 1085, 1094, 1105, 1118, 1128, 1128, 1134, 1134, 1135, 1150, 1155, 1155, 1165, 1169, 1169, 1170, 1198, 1206, 1206, 1205, 1205, 1205, 1232, 1232, 1232, 1241, 1241, 1249, 1267, 1269, 1274, 1286, 1288, 1315, 1315, 1326, 1326, 1341, 1342, 1347, 1354, 1356, 1366, 1374, 1408, 1408, 1419, 1420, 1426, 1450, 1450, 1456, 1456, 1479, 1488, 1494, 1502, 1513, 1523, 1543, 1545, 1545, 1556, 1569, 1592, 1593, 1604, 1631, 1639, 1660, 1665, 1678, 1691, 1701, 1739, 1739, 1739, 1750, 1767, 1778, 1794, 1804, 1806, 1817, 1824, 1850, 1866, 1875, 1905, 1914, 1919, 1930, 1930, 1947, 1991, 1996, 2000, 2033, 2046, 2071, 2071, 2073, 2083, 2136, 2150, 2163, 2181, 2183, 2202, 2227, 2237, 2244, 2254, 2312, 2312, 2350, 2360, 2389, 2391, 2391, 2450, 2477, 2481, 2519, 2527, 2558, 2593, 2597, 2635, 2663, 2673, 2704, 2709, 2774, 2777, 2812, 2828, 2886, 2903, 2927, 2939, 2990, 3064, 3069, 3071, 3117, 3153, 3197, 3244, 3261, 3284, 3325, 3363, 3423, 3468, 3486, 3500, 3551, 3596, 3627, 3682, 3692, 3719, 3780, 3785, 3850, 3907, 3913, 3970, 4009, 4061, 4121, 4180, 4180, 4199, 4199, 4259, 4339, 4378, 4404, 4423, 4516, 4542, 4580, 4582, 4686, 4704, 4773, 4775, 4849, 4892, 4944, 4964, 5008, 5118, 5128, 5168, 5175, 5267, 5356, 5358, 5420, 5489, 5529, 5562, 5618, 5672, 5727, 5789, 5813, 5872, 5941, 5971, 6009, 6097, 6098, 6263, 6269, 6346, 6408, 6431, 6450, 6616, 7069, 7069, 7069, 6952, 6952, 6952, 6987, 7055, 7114, 7231, 7242, 7296, 7309, 7366, 7538, 7577, 7629, 7706, 7784, 7810, 7864, 7942, 7963, 8077, 8195, 8280, 8353, 8418, 8424, 8516, 8563, 8692, 8769, 8856, 8929, 9014, 9063, 9122, 9138, 9282, 9387, 9455, 9564, 9631, 9709, 9851, 9852, 9905, 10031, 10156, 10228, 10330, 10381, 10451, 10606, 10647, 10661, 10878, 10886, 11042, 11177, 11279, 11291, 11403, 11488, 11617, 11714, 11869, 11955, 12029, 12089, 12288, 12338, 12414, 12526, 12678, 12708, 12790, 12950, 13142, 13240, 13256, 13403, 13556, 13563, 13719, 13911, 13964, 14027, 14112, 14255, 14419, 828, 828, 851, 851, 826, 826, 826, 825, 825, 825, 829, 829, 829, 829, 818, 818, 818, 818, 820, 820, 820, 820, 818, 817, 817, 817, 816, 816, 816, 824, 824, 823, 823, 823, 823, 821, 818, 818, 818, 818, 818, 817, 813, 813, 813, 813, 813, 815, 815, 815, 815, 814, 812, 808, 808, 808, 812, 812, 812, 812, 807, 807, 807, 807, 808, 808, 808, 808, 808, 808, 815, 830, 830, 814, 806, 804, 800, 800, 799, 799, 799, 799, 809, 809, 809, 806, 806, 806, 806, 808, 808, 808, 807, 800, 800, 800, 802, 805, 805, 805, 805, 804, 804, 804, 804, 808, 811, 811, 810, 810, 810, 810, 810, 810, 812, 813, 812, 812, 812, 812, 811, 811, 811, 811, 811, 817, 819, 819, 817, 813, 812, 812, 813, 814, 814, 814, 814, 815, 816, 817, 817, 817, 817, 817, 817, 817, 817, 819, 819, 819, 819, 813, 813, 813, 816, 821, 821, 821, 819, 819, 819, 819, 819, 816, 816, 816, 819, 820, 820, 822, 826, 826, 827, 827, 827, 828, 828, 828, 826, 826, 826, 826, 832, 832, 832, 831, 821, 821, 830, 830, 830, 828, 827, 826, 826, 826, 833, 833, 833, 833, 838, 838, 840, 846, 846, 844, 833, 833, 828, 828, 828, 833, 835, 836, 836, 836, 836, 834, 834, 834, 834, 839, 839, 840, 840, 840, 843, 843, 843, 842, 842, 842, 842, 846, 846, 846, 846, 836, 836, 836, 836, 837, 837, 837, 837, 837, 837, 837, 843, 847, 848, 848, 848, 848, 848, 848, 848, 849, 854, 854, 854, 852, 848, 848, 848, 849, 855, 855, 855, 854, 852, 848, 848, 848, 850, 850, 850, 850, 852, 852, 854, 854, 854, 854, 854, 854, 856, 856, 856, 859, 859, 859, 859, 859, 851, 851, 851, 851, 860, 865, 865, 865, 865, 858, 858, 859, 862, 862, 862, 863, 863, 863, 853, 853, 853, 853, 862, 862, 862, 862, 862, 864, 867, 867, 866, 866, 866, 865, 865, 865, 867, 867, 867, 875, 1101, 1101, 869, 869, 867, 867, 861, 861, 863, 868, 870, 872, 872, 872, 876, 876, 876, 876, 878, 878, 878, 875, 875, 875, 875, 879, 880, 880, 880, 880, 880, 875, 875, 875, 873, 873, 885, 885, 885, 885, 885, 885, 885, 885, 888, 888, 888, 888, 881, 881, 881, 884, 891, 894, 908, 908, 897, 897, 897, 897, 897, 897, 896, 896, 898, 898, 898, 899, 899, 899, 896, 896, 896, 898, 906, 906, 906, 910, 915, 915, 915, 913, 911, 911, 913, 917, 917, 917, 918, 918, 918, 918, 919, 919, 919, 925, 926, 926, 926, 928, 928, 928, 928, 924, 924, 924, 926, 939, 939, 933, 931, 931, 931, 932, 934, 938, 940, 940, 940, 940, 940, 945, 945, 945, 945, 945, 945, 949, 949, 949, 949, 949, 949, 950, 955, 965, 965, 965, 965, 965, 960, 960, 960, 971, 971, 971, 963, 963, 963, 965, 965, 966, 966, 966, 966, 968, 971, 973, 973, 972, 968, 968, 968, 979, 979, 978, 978, 978, 978, 987, 987, 989, 989, 989, 983, 983, 983, 983, 984, 984, 985, 985, 989, 994, 997, 998, 998, 998, 1005, 1005, 1005, 1003, 1003, 1003, 1006, 1006, 1006, 1010, 1012, 1012, 1013, 1013, 1015, 1015, 1015, 1015, 1019, 1024, 1024, 1025, 1028, 1032, 1032, 1032, 1032, 1032, 1033, 1033, 1033, 1038, 1047, 1047, 1046, 1047, 1047, 1047, 1052, 1052, 1056, 1056, 1056, 1056, 1056, 1056, 1075, 1075, 1075, 1074, 1074, 1074, 1084, 1084, 1090, 1090, 1090, 1089, 1089, 1089, 1093, 1101, 1132, 1132, 1109, 1109, 1109, 1147, 1147, 1146, 1112, 1112, 1112, 1119, 1130, 1132, 1132, 1136, 1134, 1142, 1142, 1142, 1142, 1144, 1160, 1160, 1164, 1172, 1172, 1172, 1165, 1164, 1173, 1177, 1180, 1180, 1186, 1197, 1197, 1202, 1202, 1214, 1214, 1218, 1228, 1228, 1229, 1229, 1230, 1240, 1245, 1258, 1289, 1293, 1293, 1293, 1293, 1289, 1289, 1289, 1289, 1292, 1298, 1310, 1310, 1317, 1324, 1338, 1342, 1342, 1346, 1346, 1355, 1355, 1374, 1374, 1374, 1387, 1389, 1405, 1405, 1405, 1429, 1431, 1440, 1440, 1440, 1459, 1471, 1475, 1482, 1486, 1489, 1502, 1529, 1529, 1529, 1542, 1634, 1634, 1589, 1589, 1589, 1589, 1603, 1609, 1620, 1633, 1644, 1644, 1670, 1673, 1695, 1696, 1704, 1704, 1731, 1733, 1763, 1763, 1777, 1787, 1791, 1809, 1814, 1828, 1858, 1859, 1877, 1893, 1898, 1900, 1917, 1933, 1969, 1970, 1990, 1992, 2027, 2055, 2111, 2114, 2114, 2114, 2114, 2114, 2147, 2159, 2163, 2189, 2189, 2219, 2242, 2256, 2284, 2288, 2301, 2356, 2367, 2389, 2441, 2441, 2453, 2453, 2478, 2490, 2519, 2533, 2567, 2583, 2589, 2630, 2644, 2645, 2674, 2733, 2748, 2772, 2780, 2812, 2872, 2877, 2894, 2932, 2944, 2964, 2993, 3040, 3096, 3113, 3125, 3130, 3161, 3204, 3217, 3275, 3307, 3317, 3352, 3382, 3400, 3464, 3498, 3508, 3558, 3586, 3590, 3637, 3672, 3742, 3821, 3821, 3833, 3833, 3895, 3924, 3928, 3989, 4025, 4058, 4112, 4143, 4153, 4202, 4251, 4288, 4355, 4394, 4394, 4462, 4469, 4471, 4536, 4592, 4645, 4701, 4731, 4797, 4806, 4888, 4915, 4943, 4977, 5057, 5102, 5161, 5223, 5255, 5292, 5386, 5399, 5505, 5534, 5615, 5674, 5741, 5762, 5856, 5920, 6016, 6049, 6124, 6200, 6296, 6307, 6417, 6476, 6581, 6711, 6733, 6831, 6890, 6921, 7033, 7180, 7234, 7295, 7372, 7478, 7593, 7718, 7752, 7886, 7968, 8047, 8084, 8253, 8307, 8386, 8445, 8500, 8652, 8776, 8816, 8949, 9010, 9118, 9198, 9329, 9394, 9527, 9614, 9666, 9797, 9875, 9983, 10008, 10197, 10270, 10428, 10503, 10672, 10681, 10821, 10940, 11021, 11157, 11186, 11416, 11501, 11560, 11756, 11768, 11907, 12090, 12233, 12242, 12459, 12513, 12606, 12863, 12863, 12959, 13173, 13233, 13316, 13502, 13593, 13704, 13790, 13963, 14031, 14263, 14380, 14504, 14684, 14778, 15165, 15165, 15301, 15466, 15474, 15719, 15775, 15929, 15991, 16132, 16339, 16516, 16732, 16898, 16914, 17090, 17178, 17284, 17664, 17755, 17893, 18094, 18227, 18344, 18474, 18650, 18733, 19017, 19122, 19352, 19459, 19711, 19818, 19932, 20133, 20253, 20571, 20693, 20915, 21093, 21157, 21249, 21437, 21640, 21852, 22113, 22635, 22748, 22748, 22823, 22868, 23171, 23470, 23651, 23827, 24001, 24257, 24399, 24566, 24845, 25078, 25414, 25582, 25787, 25913, 26151, 26376, 26543, 26767, 26968, 27204, 27457, 27670, 27859, 28141, 28388, 28439, 28752, 29112, 29291, 29522, 29819, 30054, 30322, 30510, 30797, 30962, 31063, 31353, 31610, 31912, 32174, 32509, 32750, 33016, 1128, 1110, 1100, 1100, 1095, 1095, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1092, 1092, 1092, 1092, 1091, 1078, 1077, 1077, 1082, 1082, 1082, 1078, 1078, 1078, 1080, 1080, 1080, 1080, 1080, 1078, 1079, 1077, 1077, 1074, 1068, 1068, 1068, 1086, 1102, 1102, 1081, 1068, 1068, 1068, 1068, 1073, 1147, 1167, 1167, 1095, 1059, 1057, 1057, 1057, 1060, 1060, 1060, 1060, 1057, 1053, 1053, 1053, 1051, 1051, 1051, 1051, 1049, 1049, 1049, 1049, 1047, 1047, 1047, 1047, 1045, 1045, 1045, 1045, 1044, 1044, 1044, 1044, 1048, 1048, 1048, 1043, 1043, 1043, 1041, 1041, 1041, 1041, 1045, 1049, 1051, 1051, 1050, 1050, 1046, 1042, 1041, 1041, 1041, 1041, 1047, 1047, 1047, 1047, 1047, 1056, 1057, 1057, 1057, 1057, 1057, 1048, 1048, 1060, 1060, 1048, 1048, 1056, 1059, 1059, 1059, 1059, 1065, 1065, 1065, 1065, 1062, 1062, 1062, 1062, 1062, 1062, 1063, 1063, 1063, 1063, 1062, 1062, 1062, 1062, 1066, 1067, 1070, 1070, 1074, 1074, 1074, 1070, 1070, 1070, 1077, 1081, 1081, 1081, 1081, 1077, 1077, 1077, 1083, 1083, 1084, 1084, 1084, 1080, 1080, 1080, 1086, 1090, 1090, 1090, 1090, 1090, 1091, 1091, 1093, 1093, 1093, 1092, 1090, 1090, 1090, 1100, 1101, 1101, 1101, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1100, 1103, 1108, 1110, 1110, 1107, 1107, 1107, 1107, 1111, 1111, 1111, 1112, 1112, 1109, 1105, 1105, 1107, 1111, 1115, 1115, 1115, 1115, 1119, 1119, 1119, 1119, 1116, 1113, 1113, 1116, 1124, 1126, 1129, 1129, 1129, 1129, 1129, 1129, 1122, 1122, 1122, 1120, 1120, 1120, 1129, 1130, 1130, 1130, 1137, 1137, 1127, 1127, 1129, 1130, 1136, 1141, 1141, 1141, 1142, 1142, 1142, 1141, 1140, 1140, 1138, 1138, 1138, 1138, 1138, 1144, 1144, 1144, 1144, 1150, 1150, 1147, 1146, 1146, 1146, 1146, 1152, 1158, 1158, 1158, 1158, 1158, 1158, 1156, 1156, 1156, 1156, 1154, 1154, 1154, 1159, 1162, 1162, 1162, 1162, 1162, 1159, 1159, 1156, 1156, 1156, 1162, 1162, 1162, 1162, 1166, 1172, 1172, 1172, 1171, 1169, 1169, 1170, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1175, 1175, 1175, 1175, 1176, 1176, 1177, 1177, 1177, 1177, 1177, 1178, 1178, 1178, 1179, 1180, 1180, 1180, 1180, 1180, 1183, 1187, 1187, 1187, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1198, 1198, 1198, 1200, 1204, 1204, 1200, 1199, 1199, 1199, 1199, 1206, 1206, 1206, 1206, 1208, 1208, 1208, 1212, 1220, 1230, 1230, 1210, 1210, 1210, 1210, 1216, 1216, 1216, 1216, 1216, 1221, 1224, 1224, 1224, 1227, 1231, 1231, 1231, 1231, 1231, 1233, 1233, 1234, 1239, 1239, 1243, 1250, 1251, 1251, 1255, 1255, 1255, 1255, 1257, 1258, 1259, 1259, 1259, 1275, 1275, 1275, 1273, 1269, 1269, 1269, 1269, 1278, 1280, 1282, 1282, 1282, 1299, 1299, 1299, 1299, 1296, 1296, 1296, 1296, 1308, 1308, 1313, 1314, 1318, 1318, 1318, 1319, 1319, 1319, 1317, 1315, 1315, 1316, 1316, 1316, 1320, 1320, 1320, 1320, 1342, 1342, 1340, 1340, 1341, 1343, 1345, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1367, 1373, 1373, 1376, 1376, 1376, 1376, 1378, 1380, 1385, 1385, 1385, 1385, 1398, 1398, 1400, 1400, 1400, 1400, 1400, 1400, 1398, 1394, 1394, 1399, 1414, 1428, 1428, 1436, 1436, 1436, 1436, 1436, 1438, 1441, 1441, 1448, 1448, 1455, 1458, 1458, 1458, 1458, 1458, 1461, 1463, 1474, 1474, 1474, 1474, 1474, 1484, 1492, 1492, 1492, 1495, 1501, 1505, 1505, 1505, 1505, 1505, 1505, 1513, 1514, 1516, 1527, 1529, 1543, 1547, 1551, 1551, 1551, 1562, 1562, 1562, 1571, 1573, 1574, 1580, 1586, 1588, 1588, 1594, 1595, 1608, 1610, 1612, 1626, 1627, 1629, 1629, 1629, 1629, 1646, 1646, 1655, 1666, 1666, 1671, 1674, 1683, 1683, 1683, 1683, 1698, 1704, 1705, 1709, 1710, 1710, 1737, 1741, 1741, 1752, 1759, 1760, 1768, 1787, 1793, 1797, 1797, 1817, 1818, 1819, 1822, 1837, 1845, 1850, 1850, 1850, 1880, 1887, 1891, 1900, 1900, 1903, 1908, 1923, 1931, 1948, 1955, 1973, 1992, 1993, 1995, 2001, 2001, 2034, 2047, 2076, 2083, 2083, 2089, 2094, 2100, 2130, 2160, 2160, 2184, 2184, 2184, 2204, 2205, 2205, 2218, 2247, 2261, 2269, 2273, 2306, 2317, 2319, 2338, 2371, 2388, 2394, 2402, 2421, 2438, 2467, 2467, 2486, 2517, 2547, 2549, 2555, 2567, 2612, 2612, 2627, 2627, 2668, 2705, 2722, 2729, 2742, 2769, 2783, 2822, 2831, 2869, 2871, 2896, 2916, 2934, 2993, 3010, 3013, 3054, 3082, 3090, 3125, 3152, 3187, 3210, 3224, 3236, 3251, 3298, 3320, 3363, 3395, 3424, 3460, 3483, 3534, 3549, 3566, 3634, 3675, 3705, 3734, 3746, 3776, 3805, 3830, 3881, 3893, 3956, 3973, 4027, 4028, 4121, 4165, 4207, 4221, 4243, 4310, 4369, 4379, 4439, 4488, 4546, 4573, 4580, 4611, 4684, 4775, 4776, 4841, 4877, 4949, 4991, 5054, 5086, 5129, 5183, 5231, 5295, 5340, 5393, 5469, 5480, 5575, 5638, 5683, 5741, 5765, 5855, 5895, 5975, 6025, 6159, 6175, 6259, 6288, 6375, 6395, 6509, 6589, 6593, 6704, 6796, 6840, 6913, 6977, 7039, 7108, 7186, 7272, 7357, 7388, 7520, 7557, 7651, 7752, 7818, 7901, 7964, 8227, 8227, 8313, 8313, 8417, 8477, 8528, 8666, 8742, 8826, 8862, 8996, 9037, 9077, 9235, 9280, 9442, 9460, 9546, 9631, 9748, 9850, 9960, 10005, 10197, 10335, 10428, 10428, 10579, 10679, 10706, 10915, 10971, 11087, 11184, 11268, 11464, 11544, 11725, 11815, 11950, 12013, 12213, 12318, 12458, 12648, 12785, 12867, 13057, 13207, 13362, 13443, 13609, 13809, 13969, 14212, 14375, 14566, 14706, 14982, 15115, 15282, 15522, 15700, 15973, 16113, 16184, 16534, 16651, 16934, 17006, 17381, 17564, 17695, 17900, 18103, 18362, 18561, 18755, 18864, 19122, 19394, 19530, 19789, 19984, 20250, 20374, 20496, 20701, 21017, 21314, 21380, 21688, 21825, 22053, 22280, 22553, 22765, 23048, 23203, 23451, 23612, 23841, 24163, 24402, 24675, 24849, 25240, 25436, 25568, 25897, 26159, 26484, 26630, 26894, 27079, 27406, 27556, 27878, 28136, 28399, 28706, 28864, 29164, 29377, 29671, 30071, 30297, 30594, 30905, 31124, 31395, 31604, 31858, 32236, 32624, 33033, 33260, 33459, 33678, 33919, 34317, 34633, 35133, 35387, 35758, 35896, 36141, 36499, 36908, 37266, 37794, 38078, 38166, 38513, 38817, 39220, 39698, 40054, 40420, 40750, 40964, 41240, 41606, 41927, 42415, 42612, 43225, 43456, 43794, 44030, 44334, 44829, 45115, 45537, 46061, 46667, 46836, 47302, 47406, 47690, 48030, 48588, 48888, 50178, 50184, 50548, 50664, 51076, 51283, 51911, 52389, 52911, 53395, 53808, 53994, 54470, 54877, 55414, 55813, 56408, 57003, 57484, 57835, 58209, 58802, 59002, 59588, 60062, 60470, 61322, 61640, 61998, 62586, 62926, 63174, 63589, 63756, 64176, 64529, 64657, 64657, 64806, 64933, 65028, 65219, 65254, 65254, 65257, 65257, 65261, 65261, 65261, 65261, 1612, 1600, 1594, 1592, 1591, 1591, 1591, 1589, 1581, 1581, 1575, 1575, 1567, 1566, 1566, 1557, 1557, 1557, 1557, 1558, 1564, 1564, 1562, 1560, 1558, 1557, 1553, 1553, 1549, 1549, 1549, 1549, 1551, 1551, 1535, 1535, 1534, 1534, 1534, 1525, 1525, 1525, 1525, 1525, 1525, 1523, 1523, 1523, 1523, 1523, 1524, 1526, 1526, 1526, 1535, 1535, 1518, 1517, 1508, 1503, 1503, 1503, 1505, 1505, 1507, 1507, 1507, 1507, 1507, 1507, 1501, 1501, 1501, 1501, 1505, 1505, 1679, 1679, 1679, 1482, 1482, 1482, 1487, 1487, 1490, 1490, 1490, 1497, 1497, 1496, 1496, 1498, 1499, 1499, 1499, 1501, 1501, 1498, 1491, 1488, 1488, 1488, 1488, 1488, 1488, 1489, 1493, 1493, 1493, 1493, 1493, 1493, 1502, 1503, 1503, 1503, 1506, 1506, 1489, 1489, 1489, 1496, 1509, 1515, 1515, 1511, 1509, 1505, 1503, 1503, 1512, 1519, 1519, 1519, 1519, 1521, 1521, 1521, 1522, 1523, 1523, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1532, 1534, 1534, 1534, 1534, 1534, 1545, 1545, 1545, 1545, 1547, 1562, 1562, 1562, 1562, 1562, 1555, 1553, 1553, 1553, 1558, 1569, 1569, 1569, 1569, 1566, 1566, 1559, 1559, 1571, 1571, 1571, 1571, 1574, 1588, 1590, 1607, 1607, 1607, 1583, 1583, 1583, 1583, 1592, 1610, 1611, 1692, 1692, 1642, 1618, 1616, 1603, 1601, 1601, 1601, 1601, 1610, 1610, 1613, 1613, 1610, 1610, 1617, 1617, 1614, 1614, 1625, 1625, 1625, 1622, 1622, 1622, 1619, 1619, 1619, 1619, 1620, 1620, 1627, 1641, 1641, 1641, 1638, 1635, 1625, 1620, 1620, 1626, 1637, 1637, 1649, 1649, 1649, 1646, 1646, 1644, 1644, 1647, 1654, 1659, 1660, 1660, 1660, 1654, 1654, 1654, 1660, 1660, 1662, 1662, 1664, 1664, 1670, 1670, 1670, 1670, 1669, 1669, 1669, 1670, 1670, 1676, 1676, 1678, 1685, 1685, 1686, 1687, 1688, 1688, 1688, 1688, 1683, 1681, 1681, 1683, 1687, 1690, 1690, 1690, 1690, 1695, 1695, 1697, 1699, 1699, 1708, 1708, 1708, 1712, 1731, 1733, 1731, 1727, 1723, 1723, 1719, 1719, 1719, 1722, 1722, 1722, 1721, 1721, 1715, 1715, 1715, 1718, 1732, 1736, 1736, 1745, 1745, 1745, 1744, 1744, 1740, 1732, 1732, 1732, 1732, 1741, 1744, 1750, 1750, 1747, 1747, 1747, 1747, 1744, 1744, 1744, 1748, 1766, 1770, 1770, 1770, 1763, 1758, 1758, 1758, 1770, 1780, 1780, 1780, 1780, 1776, 1776, 1776, 1776, 1776, 1782, 1782, 1783, 1783, 1785, 1785, 1784, 1780, 1780, 1787, 1841, 1841, 1837, 1821, 1805, 1805, 1800, 1790, 1790, 1803, 1812, 1818, 1826, 1828, 1828, 1829, 1831, 1833, 1833, 1835, 1839, 1853, 1853, 1835, 1835, 1851, 1855, 1855, 1857, 1859, 1860, 1867, 1867, 1867, 1867, 1870, 1872, 1874, 1890, 1891, 1896, 1897, 1897, 1897, 1897, 1904, 1908, 1922, 1927, 1927, 1927, 1927, 1928, 1936, 1939, 1953, 1953, 1954, 1954, 1954, 1959, 1963, 1964, 1968, 1970, 1975, 1975, 1984, 1989, 1998, 1998, 2002, 2002, 2009, 2009, 2017, 2017, 2017, 2017, 2035, 2035, 2035, 2036, 2036, 2045, 2048, 2057, 2065, 2065, 2065, 2065, 2073, 2084, 2085, 2098, 2114, 2114, 2106, 2106, 2115, 2121, 2124, 2135, 2394, 2394, 2394, 2394, 2334, 2200, 2133, 2133, 2133, 2134, 2162, 2163, 2168, 2168, 2168, 2172, 2172, 2172, 2201, 2207, 2207, 2211, 2211, 2211, 2205, 2205, 2209, 2219, 2245, 2251, 2251, 2251, 2251, 2260, 2260, 2260, 2268, 2279, 2279, 2279, 2279, 2282, 2301, 2308, 2308, 2308, 2329, 2329, 2329, 2329, 2331, 2353, 2353, 2377, 2381, 2391, 2391, 2392, 2392, 2392, 2392, 2396, 2422, 2471, 2569, 2569, 2484, 2483, 2456, 2456, 2456, 2483, 2510, 2510, 2510, 2510, 2513, 2521, 2530, 2535, 2541, 2552, 2554, 2584, 2599, 2601, 2625, 2625, 2625, 2625, 2627, 2631, 2671, 2671, 2674, 2688, 2698, 2707, 2715, 2715, 2749, 2769, 2769, 2774, 2808, 2821, 2821, 2846, 2864, 2864, 2867, 2883, 2908, 2924, 2927, 2927, 2927, 2963, 2994, 2998, 3007, 3019, 3021, 3074, 3074, 3078, 3089, 3108, 3138, 3146, 3167, 3174, 3206, 3237, 3246, 3249, 3271, 3273, 3313, 3326, 3349, 3373, 3378, 3393, 3422, 3457, 3468, 3469, 3505, 3528, 3573, 3592, 3605, 3669, 3672, 3723, 3752, 3754, 3780, 3804, 3810, 3842, 3865, 3906, 3943, 3958, 3983, 4026, 4050, 4081, 4121, 4159, 4191, 4209, 4238, 4300, 4329, 4349, 4359, 4376, 4465, 4503, 4504, 4600, 4603, 4604, 4695, 4722, 4722, 4805, 4826, 4917, 4923, 4972, 4979, 5043, 5082, 5169, 5176, 5211, 5268, 5284, 5381, 5427, 5483, 5510, 5566, 5627, 5692, 5724, 5813, 5854, 5890, 5922, 5979, 6064, 6134, 6151, 6243, 6319, 6337, 6435, 6478, 6517, 6628, 6682, 6737, 6797, 6864, 6902, 7026, 7073, 7136, 7261, 7310, 7389, 7504, 7511, 7644, 7676, 7706, 7824, 7911, 8027, 8134, 8218, 8344, 8445, 8445, 8531, 8534, 8714, 8808, 8890, 9002, 9108, 9133, 9247, 9380, 9454, 9532, 9630, 9705, 10103, 10103, 10103, 10292, 10308, 10432, 10492, 10683, 10828, 10886, 10972, 11147, 11229, 11353, 11491, 11681, 11752, 11852, 12027, 12086, 12286, 12460, 12602, 12729, 12843, 13004, 13036, 13246, 13424, 13532, 13655, 13811, 13981, 14156, 14305, 14475, 14591, 14788, 14898, 15063, 15261, 15429, 15539, 15699, 16022, 16103, 16314, 16427, 16594, 16754, 17032, 17123, 17298, 17562, 17693, 17890, 18096, 18226, 18377, 18727, 18799, 18952, 19130, 19358, 19516, 19705, 19912, 20138, 20361, 20544, 20695, 20936, 21038, 21289, 21641, 21644, 21960, 22132, 22355, 22609, 22783, 23050, 23273, 23539, 23738, 23964, 24221, 24416, 24757, 25005, 25321, 25528, 25688, 26113, 26313, 26520, 26905, 27198, 27465, 27774, 28110, 28380, 28739, 29152, 29540, 29744, 30208, 30434, 30830, 31293, 31650, 32095, 32467, 32884, 33199, 33728, 34005, 34610, 34946, 35440, 35859, 36202, 36692, 37153, 37599, 38125, 38965, 39221, 39366, 39842, 40243, 40769, 41211, 41504, 42094, 42366, 42986, 43377, 43857, 44404, 44910, 45168, 45790, 46247, 46739, 47287, 47598, 48309, 48607, 49150, 49634, 50181, 50567, 51151, 51477, 52065, 52589, 53194, 53579, 54134, 54500, 55071, 55676, 56223, 56767, 57257, 57822, 58460, 58685, 59498, 60025, 60564, 60964, 61466, 62166, 62672, 63139, 63412, 63793, 64132, 64401, 64554, 64697, 64814, 64992, 65107, 65222, 65232, 65263, 65263, 65263, 65272, 65276, 65276, 65276, 65276, 65276, 65276, 65288, 65288, 65288, 65288, 65289, 65290, 65290, 65313, 65315, 65315, 65322, 65322, 65322, 65324, 65329, 65329, 65329, 65329, 65329, 65329, 65329, 65343, 65344, 65344, 65344, 65344, 65343, 65343, 65343, 65342, 65342, 65346, 65356, 65356, 65356, 65356, 65356, 65356, 65356, 65352, 65351, 65348, 65348, 65348, 65348, 65348, 65340, 65340, 65340, 65309, 65300, 65293, 65293, 65293, 65293, 65306, 65319, 65323, 65327, 65340, 65340, 65338, 65338, 65338, 65304, 65304, 65299, 65299, 65299, 65291, 65291, 65291, 65291, 65291, 65291, 65285, 65282, 65280, 65280, 65280, 65272, 65272, 65275, 65283, 65287, 65287, 65282, 65267, 65267, 65267, 2490, 2490, 2490, 2490, 2490, 2479, 2467, 2462, 2459, 2458, 2444, 2444, 2444, 2437, 2437, 2436, 2434, 2421, 2421, 2421, 2421, 2414, 2406, 2406, 2401, 2401, 2401, 2386, 2386, 2386, 2387, 2387, 2387, 2377, 2364, 2364, 2364, 2361, 2361, 2358, 2348, 2348, 2354, 2354, 2354, 2354, 2340, 2340, 2340, 2333, 2322, 2322, 2322, 2328, 2328, 2328, 2318, 2313, 2313, 2313, 2313, 2307, 2307, 2307, 2307, 2307, 2307, 2297, 2297, 2297, 2297, 2297, 2281, 2281, 2282, 2288, 2288, 2288, 2288, 2288, 2289, 2290, 2294, 2298, 2296, 2285, 2278, 2278, 2278, 2278, 2282, 2282, 2283, 2283, 2292, 2292, 2292, 2292, 2292, 2306, 2306, 2306, 2306, 2298, 2298, 2298, 2318, 2318, 2318, 2318, 2321, 2321, 2321, 2321, 2316, 2316, 2316, 2324, 2324, 2324, 2324, 2320, 2320, 2323, 2332, 2336, 2338, 2338, 2343, 2344, 2344, 2344, 2341, 2341, 2341, 2347, 2347, 2347, 2353, 2353, 2365, 2365, 2372, 2381, 2381, 2386, 2392, 2392, 2388, 2381, 2374, 2374, 2382, 2386, 2390, 2390, 2394, 2397, 2397, 2397, 2405, 2411, 2415, 2419, 2419, 2417, 2416, 2416, 2416, 2416, 2416, 2419, 2427, 2427, 2435, 2435, 2435, 2438, 2439, 2454, 2455, 2455, 2455, 2455, 2455, 2458, 2464, 2465, 2468, 2470, 2470, 2470, 2489, 2491, 2499, 2499, 2499, 2499, 2499, 2496, 2496, 2496, 2504, 2504, 2504, 2507, 2507, 2507, 2521, 2521, 2521, 2520, 2520, 2520, 2524, 2539, 2539, 2539, 2539, 2536, 2535, 2534, 2534, 2534, 2542, 2542, 2542, 2560, 2560, 2560, 2560, 2560, 2560, 2557, 2557, 2558, 2558, 2565, 2565, 2584, 2584, 2584, 2586, 2589, 2598, 2598, 2608, 2608, 2608, 2608, 2608, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2618, 2624, 2624, 2626, 2640, 2644, 2637, 2637, 2637, 2637, 2637, 2645, 2645, 2656, 2656, 2656, 2658, 2675, 2694, 2694, 2677, 2677, 2677, 2677, 2681, 2681, 2681, 2697, 2697, 2697, 2685, 2685, 2685, 2698, 2702, 2702, 2700, 2697, 2697, 2703, 2703, 2704, 2711, 2711, 2711, 2711, 2717, 2717, 2719, 2719, 2719, 2727, 2731, 2756, 2756, 2756, 2758, 2759, 2760, 2760, 2760, 2760, 2759, 2757, 2757, 2757, 2757, 2757, 2757, 2769, 2769, 2769, 2769, 2773, 2773, 2773, 2773, 2772, 2772, 2781, 2830, 2920, 2920, 2835, 2791, 2791, 2791, 2791, 2807, 2814, 2814, 2829, 2832, 2832, 2832, 2832, 2832, 2839, 2839, 2834, 2833, 2833, 2833, 2835, 2839, 2840, 2849, 2861, 2861, 2861, 2861, 2864, 2866, 2868, 2870, 2873, 2873, 2890, 2890, 2898, 2904, 2904, 2904, 2915, 2928, 2928, 2929, 2929, 2941, 2941, 2941, 2941, 2951, 2966, 2966, 2978, 2986, 2986, 2987, 3001, 3015, 3018, 3024, 3026, 3023, 3028, 3031, 3035, 3056, 3060, 3060, 3073, 3082, 3082, 3092, 3106, 3106, 3111, 3111, 3114, 3136, 3138, 3139, 3141, 3141, 3141, 3149, 3181, 3181, 3181, 3181, 3188, 3191, 3213, 3213, 3213, 3230, 3231, 3231, 3248, 3260, 3271, 3279, 3293, 3303, 3303, 3303, 3303, 3303, 3303, 3328, 3350, 3354, 3378, 3378, 3387, 3387, 3387, 3391, 3387, 3397, 3420, 3424, 3424, 3428, 3428, 3434, 3463, 3466, 3474, 3482, 3504, 3505, 3505, 3516, 3516, 3527, 3556, 3561, 3563, 3568, 3577, 3577, 3590, 3598, 3622, 3622, 3625, 3626, 3626, 3626, 3645, 3651, 3657, 3678, 3691, 3691, 3703, 3703, 3714, 3743, 3763, 3763, 3783, 3783, 3791, 3798, 3798, 3798, 3824, 3844, 3851, 3872, 3897, 3897, 3897, 3919, 3930, 3951, 3951, 3973, 3984, 3989, 3998, 4002, 4027, 4037, 4058, 4067, 4086, 4092, 4092, 4092, 4161, 4161, 4172, 4173, 4196, 4211, 4222, 4231, 4236, 4281, 4284, 4314, 4314, 4314, 4378, 4378, 4386, 4437, 4442, 4446, 4446, 4488, 4520, 4532, 4532, 4549, 4578, 4642, 4644, 4701, 4703, 4703, 4727, 4737, 4778, 4807, 4828, 4840, 4897, 4897, 4904, 4947, 4986, 5008, 5029, 5064, 5089, 5134, 5164, 5191, 5229, 5239, 5260, 5283, 5323, 5371, 5377, 5458, 5467, 5503, 5528, 5537, 5601, 5647, 5654, 5702, 5741, 5794, 5823, 5860, 5912, 5936, 5964, 6014, 6032, 6072, 6197, 6202, 6252, 6253, 6372, 6377, 6398, 6436, 6505, 6589, 6606, 6667, 6721, 6781, 6805, 6884, 6971, 6980, 7004, 7111, 7154, 7211, 7273, 7330, 7435, 7466, 7471, 7574, 7683, 7747, 7844, 7849, 7978, 8029, 8086, 8253, 8286, 8333, 8385, 8438, 8520, 8628, 8684, 8773, 8871, 8983, 9084, 9105, 9311, 9336, 9429, 9472, 9605, 9679, 9810, 9897, 9999, 10098, 10150, 10297, 10379, 10498, 10551, 10671, 10762, 10855, 10958, 11097, 11193, 11350, 11502, 11598, 11631, 11774, 11944, 12038, 12194, 12400, 12428, 12497, 12737, 12848, 13018, 13134, 13296, 13437, 13526, 13691, 13809, 13966, 14194, 14257, 14494, 14567, 14801, 14939, 15133, 15246, 15478, 15630, 15798, 15986, 16134, 16301, 16421, 16669, 16824, 17088, 17147, 17444, 17543, 17879, 17963, 18191, 18363, 18583, 18845, 19035, 19358, 19481, 19537, 19886, 20130, 20298, 20483, 20704, 21015, 21171, 21444, 21706, 21898, 22217, 22430, 22750, 22790, 23182, 23441, 23636, 24008, 24203, 24524, 24673, 24978, 25313, 25577, 25903, 26164, 26439, 26760, 27086, 27405, 27597, 27949, 28235, 28592, 28976, 29202, 29604, 29773, 30281, 30597, 30948, 31278, 31723, 31955, 32216, 32669, 32898, 33389, 33640, 34041, 34427, 34774, 35090, 35514, 35996, 36294, 36638, 37095, 37522, 37896, 38233, 38640, 39166, 39514, 39839, 40286, 40672, 41168, 41389, 42008, 42402, 42775, 43174, 43694, 43922, 44395, 44941, 45259, 45723, 46030, 46650, 47005, 47413, 47898, 48267, 48766, 49446, 49841, 50379, 50871, 51408, 51925, 52436, 52930, 53531, 54116, 54569, 55124, 55753, 56387, 56805, 57517, 57972, 58530, 59556, 59838, 60826, 61274, 62094, 62702, 63330, 63657, 64007, 64512, 64687, 64868, 65072, 65276, 65281, 65288, 65302, 65303, 65303, 65303, 65303, 65310, 65314, 65319, 65320, 65320, 65330, 65346, 65346, 65346, 65346, 65345, 65336, 65336, 65356, 65359, 65359, 65359, 65367, 65367, 65375, 65375, 65375, 65375, 65371, 65371, 65371, 65389, 65389, 65389, 65389, 65378, 65378, 65368, 65366, 65366, 65366, 65357, 65349, 65346, 65314, 65311, 65311, 65313, 65314, 65322, 65355, 65361, 65361, 65342, 65342, 65342, 65336, 65309, 65309, 65308, 65298, 65285, 65273, 65273, 65273, 65273, 65273, 65273, 65275, 65275, 65277, 65288, 65292, 65292, 65282, 65278, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65268, 65277, 65277, 65286, 65286, 65286, 65271, 65271, 65271, 65282, 65282, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65300, 65300, 65300, 65300, 65285, 65285, 65285, 65285, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65281, 65281, 65281, 65281, 65281, 65281, 65294, 65294, 65294, 65294, 65294, 65294, 65292, 65292, 65292, 65292, 65280, 65275, 65275, 65275, 65283, 65283, 65283, 65301, 65301, 65301, 65301, 65298, 65293, 65293, 65293, 65291, 65291, 65291, 65292, 65292, 65292, 65292, 65316, 65316, 65290, 65288, 65288, 65288, 4157, 4056, 3990, 3990, 3990, 3994, 3994, 3994, 3951, 3942, 3938, 3924, 3924, 3924, 3915, 3915, 3905, 3905, 3905, 3888, 3878, 3877, 3877, 3872, 3861, 3861, 3850, 3832, 3826, 3824, 3824, 3827, 3827, 3822, 3822, 3822, 3798, 3798, 3790, 3776, 3776, 3776, 3776, 3783, 3783, 3776, 3776, 3776, 3776, 3765, 3765, 3756, 3747, 3736, 3736, 3736, 3730, 3730, 3730, 3715, 3715, 3715, 3716, 3716, 3716, 3715, 3715, 3699, 3699, 3699, 3699, 3692, 3691, 3691, 3691, 3684, 3684, 3683, 3678, 3678, 3678, 3666, 3662, 3662, 3668, 3673, 3673, 3673, 3673, 3667, 3667, 3667, 3667, 3667, 3676, 3688, 3688, 3688, 3688, 3688, 3688, 3690, 3690, 3690, 3690, 3690, 3690, 3709, 3709, 3709, 3709, 3709, 3709, 3726, 3726, 3726, 3729, 3731, 3738, 3738, 3738, 3751, 3751, 3753, 3762, 3762, 3762, 3762, 3762, 3763, 3763, 3784, 3784, 3786, 3786, 3786, 3786, 3786, 3796, 3796, 3796, 3796, 3796, 3807, 3809, 3821, 3824, 3824, 3824, 3836, 3836, 3836, 3836, 3848, 3868, 3869, 3871, 3871, 3871, 3876, 3876, 3888, 3888, 3888, 3907, 3923, 3936, 3942, 3945, 3946, 3948, 3949, 3948, 3948, 3948, 3948, 3962, 3967, 3967, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 4009, 4024, 4024, 4024, 4024, 4025, 4025, 4025, 4047, 4047, 4043, 4044, 4044, 4046, 4055, 4055, 4068, 4082, 4082, 4082, 4082, 4082, 4098, 4112, 4112, 4106, 4106, 4106, 4110, 4118, 4150, 4150, 4150, 4137, 4137, 4137, 4140, 4157, 4172, 4174, 4174, 4174, 4207, 4207, 4181, 4181, 4181, 4191, 4205, 4209, 4209, 4209, 4209, 4224, 4229, 4232, 4235, 4238, 4244, 4244, 4259, 4259, 4259, 4246, 4246, 4246, 4246, 4262, 4272, 4273, 4274, 4276, 4276, 4276, 4276, 4276, 4295, 4312, 4312, 4312, 4312, 4312, 4302, 4302, 4322, 4322, 4322, 4344, 4349, 4357, 4357, 4359, 4359, 4359, 4378, 4379, 4379, 4379, 4400, 4400, 4400, 4391, 4391, 4391, 4394, 4402, 4417, 4418, 4423, 4423, 4433, 4453, 4453, 4453, 4453, 4453, 4453, 4455, 4456, 4456, 4459, 4477, 4491, 4494, 4494, 4494, 4494, 4494, 4494, 4494, 4516, 4516, 4516, 4515, 4515, 4517, 4517, 4525, 4525, 4545, 4545, 4553, 4553, 4564, 4564, 4567, 4567, 4567, 4572, 4575, 4580, 4580, 4586, 4586, 4586, 4586, 4601, 4603, 4607, 4607, 4626, 4638, 4638, 4638, 4638, 4641, 4654, 4654, 4654, 4654, 4654, 4654, 4654, 4658, 4660, 4660, 4665, 4685, 4685, 4701, 4701, 4702, 4725, 4731, 4734, 4734, 4734, 4736, 4746, 4746, 4746, 4764, 4764, 4769, 4790, 4812, 4812, 4812, 4849, 4849, 4862, 4862, 4863, 4869, 4869, 4873, 4873, 4873, 4873, 4928, 4930, 4930, 4967, 4997, 5015, 5016, 5016, 5036, 5036, 5037, 5063, 5063, 5081, 5115, 5115, 5115, 5115, 5159, 5159, 5159, 5159, 5166, 5207, 5241, 5241, 5254, 5261, 5261, 5266, 5275, 5295, 5325, 5352, 5356, 5350, 5379, 5399, 5409, 5422, 5438, 5459, 5459, 5459, 5465, 5470, 5502, 5525, 5531, 5531, 5560, 5600, 5615, 5622, 5629, 5639, 5639, 5669, 5684, 5710, 5716, 5716, 5716, 5746, 5788, 5792, 5800, 5826, 5826, 5828, 5860, 5882, 5882, 5891, 5894, 5948, 5973, 5973, 5982, 5988, 6001, 6039, 6061, 6062, 6067, 6092, 6101, 6123, 6134, 6164, 6208, 6209, 6209, 6222, 6260, 6290, 6300, 6304, 6316, 6350, 6371, 6403, 6403, 6409, 6450, 6459, 6469, 6497, 6551, 6571, 6578, 6586, 6625, 6648, 6684, 6691, 6703, 6730, 6739, 6806, 6813, 6835, 6842, 6898, 6901, 6957, 6990, 7022, 7037, 7041, 7140, 7168, 7168, 7177, 7192, 7249, 7275, 7313, 7350, 7391, 7391, 7446, 7485, 7510, 7561, 7580, 7613, 7644, 7727, 7740, 7764, 7776, 7818, 7899, 7950, 7979, 8013, 8042, 8112, 8187, 8208, 8223, 8292, 8331, 8485, 8485, 8485, 8526, 8556, 8630, 8691, 8723, 8797, 8827, 8904, 8944, 9036, 9135, 9157, 9183, 9260, 9323, 9365, 9423, 9495, 9604, 9641, 9736, 9815, 9882, 9978, 9992, 10046, 10088, 10223, 10276, 10318, 10415, 10539, 10595, 10659, 10706, 10848, 10933, 11033, 11103, 11170, 11298, 11385, 11397, 11494, 11578, 11777, 11857, 11934, 11997, 12079, 12167, 12368, 12468, 12817, 12817, 12899, 12899, 12993, 13137, 13209, 13369, 13479, 13585, 13713, 13878, 13988, 14172, 14231, 14432, 14536, 14744, 14806, 14946, 15084, 15199, 15365, 15599, 15683, 15959, 15959, 16189, 16342, 16566, 16673, 16813, 17064, 17207, 17436, 17610, 17794, 17998, 18129, 18349, 18525, 18719, 18870, 19121, 19188, 19429, 19720, 19930, 20124, 20326, 20591, 20796, 20950, 21205, 21488, 21620, 21925, 22103, 22377, 22575, 22887, 23129, 23316, 23588, 23754, 24056, 24360, 24560, 24850, 25199, 25481, 25703, 26066, 26302, 26565, 26821, 27123, 27535, 27741, 28071, 28378, 28746, 29262, 29636, 29673, 30049, 30318, 30940, 30996, 31371, 31841, 32091, 32389, 32886, 33236, 33750, 33929, 34422, 34782, 35257, 35578, 36042, 36266, 36787, 37220, 37706, 38095, 38517, 39003, 39302, 39804, 40311, 40692, 41203, 41757, 42033, 42733, 43208, 43559, 44171, 44601, 45060, 45592, 46068, 46681, 47262, 47646, 48184, 48889, 49358, 50060, 50584, 51056, 51621, 52055, 52592, 53377, 54010, 54775, 55973, 55973, 56237, 57175, 57682, 58445, 58992, 59502, 60256, 61042, 61566, 62153, 62801, 63374, 63727, 64104, 64439, 64637, 64868, 64977, 65189, 65281, 65281, 65286, 65291, 65291, 65293, 65298, 65302, 65302, 65318, 65318, 65318, 65318, 65318, 65321, 65321, 65321, 65321, 65321, 65322, 65338, 65338, 65342, 65342, 65343, 65343, 65355, 65359, 65359, 65359, 65365, 65368, 65368, 65368, 65373, 65373, 65373, 65373, 65376, 65376, 65376, 65376, 65376, 65376, 65366, 65366, 65366, 65366, 65366, 65328, 65326, 65326, 65326, 65337, 65341, 65345, 65380, 65380, 65380, 65363, 65340, 65340, 65340, 65301, 65296, 65295, 65290, 65288, 65288, 65284, 65284, 65284, 65284, 65284, 65284, 65271, 65265, 65262, 65262, 65262, 65274, 65274, 65274, 65274, 65266, 65264, 65264, 65264, 65279, 65279, 65279, 65280, 65280, 65280, 65280, 65291, 65291, 65291, 65291, 65286, 65286, 65286, 65286, 65286, 65283, 65283, 65283, 65283, 65283, 65297, 65297, 65297, 65297, 65291, 65268, 65268, 65268, 65282, 65282, 65296, 65296, 65296, 65296, 65296, 65296, 65292, 65292, 65290, 65287, 65287, 65287, 65285, 65284, 65284, 65282, 65271, 65271, 65279, 65285, 65285, 65288, 65299, 65299, 65299, 65299, 65299, 65295, 65290, 65285, 65275, 65275, 65275, 65296, 65296, 65296, 65296, 65296, 65293, 65288, 65278, 65278, 65278, 65278, 65282, 65283, 65283, 65283, 65289, 65289, 65289, 65289, 65291, 65293, 65293, 65294, 65294, 65298, 65299, 65299, 65301, 65303, 65303, 65303, 65302, 65302, 65296, 65289, 65289, 65289, 65289, 65299, 65301, 65296, 65296, 65296, 65296, 65296, 65296, 65313, 65313, 65313, 65301, 65301, 65301, 65301, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65311, 65311, 65311, 65311, 65311, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65307, 65307, 65307, 65298, 65298, 65298, 65298, 65298, 6574, 6438, 6370, 6370, 6364, 6361, 6357, 6342, 6317, 6316, 6276, 6269, 6258, 6253, 6224, 6224, 6224, 6208, 6202, 6169, 6162, 6162, 6162, 6162, 6144, 6123, 6116, 6102, 6097, 6097, 6097, 6097, 6084, 6077, 6062, 6062, 6018, 6017, 6017, 6020, 6020, 6020, 6012, 6012, 6004, 5996, 5985, 5985, 5985, 5957, 5954, 5954, 5954, 5940, 5940, 5940, 5940, 5942, 5942, 5942, 5942, 5942, 5925, 5905, 5905, 5889, 5889, 5883, 5883, 5883, 5883, 5892, 5886, 5868, 5868, 5868, 5856, 5856, 5856, 5856, 5856, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5852, 5852, 5852, 5863, 5881, 5884, 5884, 5885, 5885, 5885, 5894, 5913, 5913, 5913, 5913, 5915, 5917, 5918, 5944, 5944, 5944, 5949, 5949, 5981, 5997, 5981, 5973, 5969, 5958, 5958, 5958, 5959, 6008, 6008, 6008, 6014, 6014, 6020, 6020, 6027, 6027, 6028, 6045, 6045, 6049, 6049, 6049, 6049, 6076, 6076, 6076, 6079, 6079, 6079, 6093, 6094, 6094, 6094, 6156, 6167, 6195, 6195, 6195, 6195, 6195, 6195, 6195, 6218, 6218, 6237, 6237, 6237, 6237, 6253, 6269, 6269, 6282, 6305, 6305, 6305, 6314, 6318, 6318, 6318, 6318, 6337, 6365, 6365, 6365, 6388, 6401, 6420, 6420, 6420, 6420, 6454, 6454, 6454, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6489, 6496, 6520, 6520, 6529, 6547, 6550, 6550, 6550, 6564, 6570, 6596, 6638, 6642, 6634, 6622, 6622, 6641, 6653, 6659, 6662, 6674, 6674, 6674, 6674, 6702, 6702, 6702, 6702, 6702, 6712, 6715, 6715, 6716, 6716, 6716, 6716, 6756, 6756, 6756, 6756, 6759, 6808, 6808, 6808, 6808, 6832, 6838, 6838, 6838, 6838, 6839, 6855, 6855, 6855, 6883, 6885, 6901, 6903, 6905, 6933, 6935, 6939, 6942, 6945, 6942, 6942, 6942, 6942, 6946, 6946, 6946, 6973, 6999, 6999, 6997, 6997, 6997, 6996, 6996, 6996, 7014, 7020, 7028, 7036, 7036, 7075, 7075, 7075, 7075, 7075, 7075, 7078, 7123, 7123, 7143, 7143, 7143, 7143, 7143, 7172, 7172, 7140, 7140, 7153, 7156, 7178, 7198, 7202, 7202, 7214, 7214, 7219, 7219, 7219, 7219, 7219, 7238, 7238, 7238, 7255, 7255, 7255, 7305, 7328, 7328, 7328, 7326, 7326, 7326, 7361, 7361, 7367, 7378, 7385, 7385, 7385, 7385, 7391, 7391, 7391, 7391, 7435, 7435, 7435, 7468, 7468, 7482, 7483, 7483, 7483, 7487, 7487, 7487, 7488, 7489, 7519, 7521, 7521, 7521, 7560, 7570, 7606, 7606, 7606, 7609, 7609, 7609, 7616, 7616, 7634, 7638, 7638, 7670, 7687, 7691, 7715, 7715, 7719, 7733, 7760, 7762, 7762, 7762, 7800, 7820, 7870, 7870, 7870, 7882, 7895, 7895, 7913, 7982, 7982, 7982, 8007, 8024, 8047, 8052, 8078, 8078, 8110, 8110, 8151, 8179, 8187, 8197, 8222, 8247, 8247, 8247, 8349, 8386, 8389, 8389, 8389, 8437, 8447, 8450, 8476, 8510, 8551, 8578, 8610, 8615, 8615, 8615, 8686, 8686, 8749, 8749, 8784, 8809, 8821, 8821, 8902, 8912, 8921, 8950, 8950, 9025, 9025, 9040, 9040, 9110, 9127, 9173, 9187, 9241, 9251, 9290, 9291, 9352, 9359, 9359, 9378, 9419, 9446, 9455, 9499, 9501, 9519, 9587, 9669, 9669, 9669, 9715, 9727, 9802, 9809, 9815, 9880, 9907, 9913, 9979, 9990, 10006, 10091, 10091, 10102, 10102, 10137, 10194, 10229, 10281, 10378, 10378, 10386, 10440, 10473, 10526, 10526, 10559, 10559, 10641, 10688, 10749, 10780, 10823, 10886, 10891, 10915, 10926, 11011, 11057, 11143, 11153, 11193, 11247, 11282, 11308, 11384, 11418, 11522, 11529, 11595, 11643, 11661, 11701, 11728, 11810, 11916, 11981, 11988, 12085, 12115, 12181, 12246, 12294, 12405, 12475, 12525, 12562, 12593, 12725, 12786, 12869, 12891, 12921, 13022, 13182, 13200, 13263, 13291, 13303, 13497, 13530, 13649, 13743, 13859, 13884, 13955, 14050, 14071, 14226, 14306, 14391, 14597, 14604, 14714, 14765, 14921, 14967, 15127, 15264, 15320, 15472, 15564, 15656, 15683, 15892, 15953, 16122, 16313, 16473, 16590, 16723, 16788, 16848, 17116, 17163, 17273, 17449, 17537, 17698, 17813, 18072, 18129, 18332, 18422, 18689, 18733, 18886, 19027, 19208, 19389, 19556, 19694, 19869, 19986, 20172, 20311, 20544, 20709, 20984, 21055, 21266, 21418, 21652, 21876, 22092, 22255, 22468, 22800, 22900, 23095, 23371, 23540, 23846, 24064, 24601, 24686, 24686, 24988, 25177, 25626, 25759, 26014, 26239, 26435, 26763, 27079, 27404, 27681, 27924, 28156, 28459, 28876, 29059, 29361, 29821, 29946, 30305, 30612, 31263, 31299, 31683, 31882, 32388, 32617, 33028, 33394, 33831, 34218, 34536, 34816, 35351, 35710, 36088, 36416, 36899, 37332, 37758, 38125, 38665, 38912, 39546, 39946, 40342, 40791, 41160, 41586, 42135, 42699, 43152, 43615, 44173, 44512, 45184, 45680, 46067, 46667, 47120, 47632, 48252, 48725, 49386, 49725, 50516, 51041, 51597, 52141, 52913, 53172, 54151, 54679, 55124, 55632, 56461, 57107, 57828, 58447, 59014, 59720, 60524, 61376, 61896, 62522, 63076, 63609, 64016, 64335, 64593, 64815, 64991, 65183, 65290, 65293, 65293, 65293, 65303, 65303, 65304, 65304, 65311, 65317, 65325, 65325, 65325, 65325, 65325, 65325, 65333, 65333, 65333, 65349, 65362, 65362, 65362, 65378, 65378, 65378, 65379, 65382, 65382, 65382, 65395, 65395, 65395, 65395, 65399, 65404, 65405, 65405, 65404, 65390, 65385, 65385, 65377, 65352, 65343, 65343, 65350, 65350, 65350, 65375, 65384, 65386, 65377, 65375, 65374, 65346, 65312, 65312, 65301, 65298, 65298, 65296, 65296, 65296, 65281, 65278, 65270, 65262, 65262, 65262, 65270, 65278, 65290, 65290, 65290, 65285, 65285, 65279, 65279, 65275, 65275, 65267, 65267, 65267, 65267, 65278, 65278, 65287, 65287, 65287, 65287, 65287, 65296, 65296, 65296, 65277, 65277, 65277, 65272, 65272, 65272, 65272, 65272, 65272, 65288, 65288, 65288, 65285, 65285, 65270, 65270, 65280, 65288, 65288, 65288, 65288, 65288, 65288, 65283, 65283, 65283, 65283, 65283, 65283, 65291, 65291, 65290, 65286, 65286, 65286, 65286, 65294, 65294, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65296, 65296, 65296, 65293, 65293, 65293, 65298, 65298, 65298, 65298, 65295, 65295, 65295, 65295, 65295, 65291, 65291, 65291, 65291, 65291, 65291, 65291, 65300, 65300, 65316, 65316, 65316, 65283, 65283, 65305, 65307, 65307, 65307, 65307, 65307, 65307, 65307, 65307, 65305, 65305, 65303, 65303, 65303, 65303, 65303, 65291, 65291, 65291, 65291, 65297, 65306, 65306, 65295, 65295, 65295, 65295, 65319, 65320, 65320, 65304, 65296, 65296, 65309, 65317, 65319, 65319, 65319, 65319, 65319, 65311, 65307, 65305, 65294, 65294, 65294, 65294, 65305, 65307, 65307, 65308, 65323, 65328, 65328, 65328, 65328, 65323, 65318, 65316, 65312, 65312, 65300, 65300, 65300, 65300, 65300, 65312, 65322, 65322, 65322, 65322, 65313, 65313, 65313, 65313, 65313, 65308, 65308, 65308, 65308, 65320, 65320, 65320, 65320, 65320, 65320, 65332, 65332, 65326, 65326, 65326, 65326, 65323, 65323, 65323, 65323, 65323, 65323, 65315, 65315, 65315, 65315, 65315, 65327, 65327, 65327, 65327, 65327, 65334, 65337, 65337] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Spectrum"] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Spectrum", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (Spectrometer)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1024, 24] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["296.5", "297.055", "297.61", "298.164", "298.719", "299.273", "299.827", "300.382", "300.936", "301.489", "302.043", "302.597", "303.15", "303.703", "304.256", "304.809", "305.362", "305.915", "306.467", "307.02", "307.572", "308.124", "308.676", "309.228", "309.78", "310.332", "310.883", "311.435", "311.986", "312.537", "313.088", "313.639", "314.189", "314.74", "315.29", "315.841", "316.391", "316.941", "317.491", "318.04", "318.59", "319.139", "319.689", "320.238", "320.787", "321.336", "321.885", "322.433", "322.982", "323.53", "324.079", "324.627", "325.175", "325.723", "326.271", "326.818", "327.366", "327.913", "328.46", "329.007", "329.554", "330.101", "330.648", "331.195", "331.741", "332.287", "332.834", "333.38", "333.926", "334.472", "335.017", "335.563", "336.108", "336.654", "337.199", "337.744", "338.289", "338.834", "339.378", "339.923", "340.467", "341.012", "341.556", "342.1", "342.644", "343.188", "343.731", "344.275", "344.818", "345.362", "345.905", "346.448", "346.991", "347.534", "348.076", "348.619", "349.161", "349.704", "350.246", "350.788", "351.33", "351.872", "352.414", "352.955", "353.497", "354.038", "354.579", "355.12", "355.661", "356.202", "356.743", "357.284", "357.824", "358.364", "358.905", "359.445", "359.985", "360.525", "361.065", "361.604", "362.144", "362.683", "363.223", "363.762", "364.301", "364.84", "365.379", "365.917", "366.456", "366.995", "367.533", "368.071", "368.609", "369.147", "369.685", "370.223", "370.761", "371.298", "371.836", "372.373", "372.91", "373.447", "373.984", "374.521", "375.058", "375.595", "376.131", "376.668", "377.204", "377.74", "378.276", "378.812", "379.348", "379.884", "380.419", "380.955", "381.49", "382.026", "382.561", "383.096", "383.631", "384.166", "384.7", "385.235", "385.77", "386.304", "386.838", "387.372", "387.907", "388.441", "388.974", "389.508", "390.042", "390.575", "391.109", "391.642", "392.175", "392.708", "393.241", "393.774", "394.307", "394.84", "395.372", "395.905", "396.437", "396.969", "397.501", "398.033", "398.565", "399.097", "399.629", "400.16", "400.692", "401.223", "401.755", "402.286", "402.817", "403.348", "403.879", "404.409", "404.94", "405.471", "406.001", "406.531", "407.062", "407.592", "408.122", "408.652", "409.181", "409.711", "410.241", "410.77", "411.3", "411.829", "412.358", "412.887", "413.416", "413.945", "414.474", "415.003", "415.531", "416.06", "416.588", "417.117", "417.645", "418.173", "418.701", "419.229", "419.757", "420.284", "420.812", "421.34", "421.867", "422.394", "422.921", "423.449", "423.976", "424.503", "425.029", "425.556", "426.083", "426.609", "427.136", "427.662", "428.188", "428.714", "429.24", "429.766", "430.292", "430.818", "431.344", "431.869", "432.395", "432.92", "433.445", "433.971", "434.496", "435.021", "435.546", "436.071", "436.595", "437.12", "437.644", "438.169", "438.693", "439.218", "439.742", "440.266", "440.79", "441.314", "441.837", "442.361", "442.885", "443.408", "443.932", "444.455", "444.978", "445.502", "446.025", "446.548", "447.071", "447.593", "448.116", "448.639", "449.161", "449.684", "450.206", "450.728", "451.251", "451.773", "452.295", "452.817", "453.338", "453.86", "454.382", "454.903", "455.425", "455.946", "456.468", "456.989", "457.51", "458.031", "458.552", "459.073", "459.594", "460.114", "460.635", "461.156", "461.676", "462.196", "462.717", "463.237", "463.757", "464.277", "464.797", "465.317", "465.837", "466.356", "466.876", "467.396", "467.915", "468.434", "468.954", "469.473", "469.992", "470.511", "471.03", "471.549", "472.068", "472.586", "473.105", "473.624", "474.142", "474.661", "475.179", "475.697", "476.215", "476.733", "477.251", "477.769", "478.287", "478.805", "479.323", "479.84", "480.358", "480.875", "481.393", "481.91", "482.427", "482.944", "483.461", "483.978", "484.495", "485.012", "485.529", "486.045", "486.562", "487.079", "487.595", "488.111", "488.628", "489.144", "489.66", "490.176", "490.692", "491.208", "491.724", "492.24", "492.755", "493.271", "493.787", "494.302", "494.817", "495.333", "495.848", "496.363", "496.878", "497.393", "497.908", "498.423", "498.938", "499.453", "499.968", "500.482", "500.997", "501.511", "502.026", "502.54", "503.054", "503.568", "504.083", "504.597", "505.111", "505.625", "506.138", "506.652", "507.166", "507.679", "508.193", "508.707", "509.22", "509.733", "510.247", "510.76", "511.273", "511.786", "512.299", "512.812", "513.325", "513.838", "514.351", "514.863", "515.376", "515.889", "516.401", "516.913", "517.426", "517.938", "518.45", "518.963", "519.475", "519.987", "520.499", "521.011", "521.522", "522.034", "522.546", "523.058", "523.569", "524.081", "524.592", "525.104", "525.615", "526.126", "526.637", "527.149", "527.66", "528.171", "528.682", "529.193", "529.704", "530.214", "530.725", "531.236", "531.746", "532.257", "532.767", "533.278", "533.788", "534.298", "534.809", "535.319", "535.829", "536.339", "536.849", "537.359", "537.869", "538.379", "538.889", "539.398", "539.908", "540.418", "540.927", "541.437", "541.946", "542.456", "542.965", "543.474", "543.983", "544.493", "545.002", "545.511", "546.02", "546.529", "547.038", "547.546", "548.055", "548.564", "549.073", "549.581", "550.09", "550.598", "551.107", "551.615", "552.123", "552.632", "553.14", "553.648", "554.156", "554.664", "555.172", "555.68", "556.188", "556.696", "557.204", "557.712", "558.22", "558.727", "559.235", "559.742", "560.25", "560.757", "561.265", "561.772", "562.28", "562.787", "563.294", "563.801", "564.308", "564.815", "565.323", "565.83", "566.336", "566.843", "567.35", "567.857", "568.364", "568.87", "569.377", "569.884", "570.39", "570.897", "571.403", "571.91", "572.416", "572.922", "573.429", "573.935", "574.441", "574.947", "575.453", "575.959", "576.465", "576.971", "577.477", "577.983", "578.489", "578.995", "579.501", "580.006", "580.512", "581.018", "581.523", "582.029", "582.534", "583.04", "583.545", "584.05", "584.556", "585.061", "585.566", "586.071", "586.577", "587.082", "587.587", "588.092", "588.597", "589.102", "589.607", "590.112", "590.616", "591.121", "591.626", "592.131", "592.635", "593.14", "593.645", "594.149", "594.654", "595.158", "595.663", "596.167", "596.672", "597.176", "597.68", "598.185", "598.689", "599.193", "599.697", "600.201", "600.705", "601.209", "601.713", "602.217", "602.721", "603.225", "603.729", "604.233", "604.737", "605.241", "605.744", "606.248", "606.752", "607.255", "607.759", "608.263", "608.766", "609.27", "609.773", "610.277", "610.78", "611.283", "611.787", "612.29", "612.793", "613.297", "613.8", "614.303", "614.806", "615.309", "615.812", "616.316", "616.819", "617.322", "617.825", "618.328", "618.83", "619.333", "619.836", "620.339", "620.842", "621.345", "621.847", "622.35", "622.853", "623.355", "623.858", "624.361", "624.863", "625.366", "625.868", "626.371", "626.873", "627.376", "627.878", "628.381", "628.883", "629.385", "629.888", "630.39", "630.892", "631.395", "631.897", "632.399", "632.901", "633.403", "633.905", "634.408", "634.91", "635.412", "635.914", "636.416", "636.918", "637.42", "637.922", "638.424", "638.925", "639.427", "639.929", "640.431", "640.933", "641.435", "641.936", "642.438", "642.94", "643.442", "643.943", "644.445", "644.947", "645.448", "645.95", "646.451", "646.953", "647.455", "647.956", "648.458", "648.959", "649.461", "649.962", "650.464", "650.965", "651.466", "651.968", "652.469", "652.97", "653.472", "653.973", "654.474", "654.976", "655.477", "655.978", "656.48", "656.981", "657.482", "657.983", "658.484", "658.985", "659.487", "659.988", "660.489", "660.99", "661.491", "661.992", "662.493", "662.994", "663.495", "663.996", "664.497", "664.998", "665.499", "666", "666.501", "667.002", "667.503", "668.004", "668.505", "669.006", "669.507", "670.008", "670.509", "671.009", "671.51", "672.011", "672.512", "673.013", "673.514", "674.014", "674.515", "675.016", "675.517", "676.018", "676.518", "677.019", "677.52", "678.02", "678.521", "679.022", "679.523", "680.023", "680.524", "681.025", "681.525", "682.026", "682.527", "683.027", "683.528", "684.029", "684.529", "685.03", "685.531", "686.031", "686.532", "687.032", "687.533", "688.034", "688.534", "689.035", "689.536", "690.036", "690.537", "691.037", "691.538", "692.038", "692.539", "693.04", "693.54", "694.041", "694.541", "695.042", "695.542", "696.043", "696.544", "697.044", "697.545", "698.045", "698.546", "699.046", "699.547", "700.047", "700.548", "701.049", "701.549", "702.05", "702.55", "703.051", "703.551", "704.052", "704.552", "705.053", "705.554", "706.054", "706.555", "707.055", "707.556", "708.056", "708.557", "709.058", "709.558", "710.059", "710.559", "711.06", "711.561", "712.061", "712.562", "713.062", "713.563", "714.064", "714.564", "715.065", "715.566", "716.066", "716.567", "717.068", "717.568", "718.069", "718.57", "719.07", "719.571", "720.072", "720.572", "721.073", "721.574", "722.074", "722.575", "723.076", "723.577", "724.077", "724.578", "725.079", "725.58", "726.081", "726.581", "727.082", "727.583", "728.084", "728.585", "729.086", "729.586", "730.087", "730.588", "731.089", "731.59", "732.091", "732.592", "733.093", "733.594", "734.095", "734.596", "735.097", "735.598", "736.099", "736.6", "737.101", "737.602", "738.103", "738.604", "739.105", "739.606", "740.107", "740.609", "741.11", "741.611", "742.112", "742.613", "743.114", "743.616", "744.117", "744.618", "745.119", "745.621", "746.122", "746.623", "747.125", "747.626", "748.128", "748.629", "749.13", "749.632", "750.133", "750.635", "751.136", "751.638", "752.139", "752.641", "753.142", "753.644", "754.145", "754.647", "755.149", "755.65", "756.152", "756.654", "757.155", "757.657", "758.159", "758.661", "759.163", "759.664", "760.166", "760.668", "761.17", "761.672", "762.174", "762.676", "763.178", "763.68", "764.182", "764.684", "765.186", "765.688", "766.19", "766.692", "767.194", "767.697", "768.199", "768.701", "769.203", "769.706", "770.208", "770.71", "771.213", "771.715", "772.217", "772.72", "773.222", "773.725", "774.227", "774.73", "775.232", "775.735", "776.238", "776.74", "777.243", "777.746", "778.248", "778.751", "779.254", "779.757", "780.26", "780.763", "781.266", "781.768", "782.271", "782.774", "783.277", "783.781", "784.284", "784.787", "785.29", "785.793", "786.296", "786.799", "787.303", "787.806", "788.309", "788.813", "789.316", "789.82", "790.323", "790.827", "791.33", "791.834", "792.337", "792.841", "793.345", "793.848", "794.352", "794.856", "795.359", "795.863", "796.367", "796.871", "797.375", "797.879", "798.383", "798.887", "799.391", "799.895", "800.399", "800.904", "801.408", "801.912", "802.416", "802.921", "803.425", "803.929", "804.434", "804.938", "805.443", "805.947", "806.452", "806.957", "807.461", "807.966", "808.471", "808.975", "809.48", "809.985", "810.49", "810.995", "811.5", "812.005", "812.51", "813.015", "813.52", "814.026", "814.531", "815.036", "815.541", "816.047", "816.552", "817.057", "817.563", "818.068", "818.574", "819.08", "819.585", "820.091", "820.597", "821.102", "821.608", "822.114", "822.62", "823.126"] }, { "type": "character", "attributes": {}, "value": ["0.029", "20.027", "40.025", "60.026", "80.025", "100.023", "120.022", "140.022", "160.02", "180.019", "200.02", "220.018", "240.017", "260.016", "280.015", "300.014", "320.014", "340.014", "360.012", "380.012", "400.01", "420.009", "440.008", "460.007"] } ] } }, "value": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Spectrum"] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Spectrum", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (Spectrometer)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1024, 48] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["296.5", "297.055", "297.61", "298.164", "298.719", "299.273", "299.827", "300.382", "300.936", "301.489", "302.043", "302.597", "303.15", "303.703", "304.256", "304.809", "305.362", "305.915", "306.467", "307.02", "307.572", "308.124", "308.676", "309.228", "309.78", "310.332", "310.883", "311.435", "311.986", "312.537", "313.088", "313.639", "314.189", "314.74", "315.29", "315.841", "316.391", "316.941", "317.491", "318.04", "318.59", "319.139", "319.689", "320.238", "320.787", "321.336", "321.885", "322.433", "322.982", "323.53", "324.079", "324.627", "325.175", "325.723", "326.271", "326.818", "327.366", "327.913", "328.46", "329.007", "329.554", "330.101", "330.648", "331.195", "331.741", "332.287", "332.834", "333.38", "333.926", "334.472", "335.017", "335.563", "336.108", "336.654", "337.199", "337.744", "338.289", "338.834", "339.378", "339.923", "340.467", "341.012", "341.556", "342.1", "342.644", "343.188", "343.731", "344.275", "344.818", "345.362", "345.905", "346.448", "346.991", "347.534", "348.076", "348.619", "349.161", "349.704", "350.246", "350.788", "351.33", "351.872", "352.414", "352.955", "353.497", "354.038", "354.579", "355.12", "355.661", "356.202", "356.743", "357.284", "357.824", "358.364", "358.905", "359.445", "359.985", "360.525", "361.065", "361.604", "362.144", "362.683", "363.223", "363.762", "364.301", "364.84", "365.379", "365.917", "366.456", "366.995", "367.533", "368.071", "368.609", "369.147", "369.685", "370.223", "370.761", "371.298", "371.836", "372.373", "372.91", "373.447", "373.984", "374.521", "375.058", "375.595", "376.131", "376.668", "377.204", "377.74", "378.276", "378.812", "379.348", "379.884", "380.419", "380.955", "381.49", "382.026", "382.561", "383.096", "383.631", "384.166", "384.7", "385.235", "385.77", "386.304", "386.838", "387.372", "387.907", "388.441", "388.974", "389.508", "390.042", "390.575", "391.109", "391.642", "392.175", "392.708", "393.241", "393.774", "394.307", "394.84", "395.372", "395.905", "396.437", "396.969", "397.501", "398.033", "398.565", "399.097", "399.629", "400.16", "400.692", "401.223", "401.755", "402.286", "402.817", "403.348", "403.879", "404.409", "404.94", "405.471", "406.001", "406.531", "407.062", "407.592", "408.122", "408.652", "409.181", "409.711", "410.241", "410.77", "411.3", "411.829", "412.358", "412.887", "413.416", "413.945", "414.474", "415.003", "415.531", "416.06", "416.588", "417.117", "417.645", "418.173", "418.701", "419.229", "419.757", "420.284", "420.812", "421.34", "421.867", "422.394", "422.921", "423.449", "423.976", "424.503", "425.029", "425.556", "426.083", "426.609", "427.136", "427.662", "428.188", "428.714", "429.24", "429.766", "430.292", "430.818", "431.344", "431.869", "432.395", "432.92", "433.445", "433.971", "434.496", "435.021", "435.546", "436.071", "436.595", "437.12", "437.644", "438.169", "438.693", "439.218", "439.742", "440.266", "440.79", "441.314", "441.837", "442.361", "442.885", "443.408", "443.932", "444.455", "444.978", "445.502", "446.025", "446.548", "447.071", "447.593", "448.116", "448.639", "449.161", "449.684", "450.206", "450.728", "451.251", "451.773", "452.295", "452.817", "453.338", "453.86", "454.382", "454.903", "455.425", "455.946", "456.468", "456.989", "457.51", "458.031", "458.552", "459.073", "459.594", "460.114", "460.635", "461.156", "461.676", "462.196", "462.717", "463.237", "463.757", "464.277", "464.797", "465.317", "465.837", "466.356", "466.876", "467.396", "467.915", "468.434", "468.954", "469.473", "469.992", "470.511", "471.03", "471.549", "472.068", "472.586", "473.105", "473.624", "474.142", "474.661", "475.179", "475.697", "476.215", "476.733", "477.251", "477.769", "478.287", "478.805", "479.323", "479.84", "480.358", "480.875", "481.393", "481.91", "482.427", "482.944", "483.461", "483.978", "484.495", "485.012", "485.529", "486.045", "486.562", "487.079", "487.595", "488.111", "488.628", "489.144", "489.66", "490.176", "490.692", "491.208", "491.724", "492.24", "492.755", "493.271", "493.787", "494.302", "494.817", "495.333", "495.848", "496.363", "496.878", "497.393", "497.908", "498.423", "498.938", "499.453", "499.968", "500.482", "500.997", "501.511", "502.026", "502.54", "503.054", "503.568", "504.083", "504.597", "505.111", "505.625", "506.138", "506.652", "507.166", "507.679", "508.193", "508.707", "509.22", "509.733", "510.247", "510.76", "511.273", "511.786", "512.299", "512.812", "513.325", "513.838", "514.351", "514.863", "515.376", "515.889", "516.401", "516.913", "517.426", "517.938", "518.45", "518.963", "519.475", "519.987", "520.499", "521.011", "521.522", "522.034", "522.546", "523.058", "523.569", "524.081", "524.592", "525.104", "525.615", "526.126", "526.637", "527.149", "527.66", "528.171", "528.682", "529.193", "529.704", "530.214", "530.725", "531.236", "531.746", "532.257", "532.767", "533.278", "533.788", "534.298", "534.809", "535.319", "535.829", "536.339", "536.849", "537.359", "537.869", "538.379", "538.889", "539.398", "539.908", "540.418", "540.927", "541.437", "541.946", "542.456", "542.965", "543.474", "543.983", "544.493", "545.002", "545.511", "546.02", "546.529", "547.038", "547.546", "548.055", "548.564", "549.073", "549.581", "550.09", "550.598", "551.107", "551.615", "552.123", "552.632", "553.14", "553.648", "554.156", "554.664", "555.172", "555.68", "556.188", "556.696", "557.204", "557.712", "558.22", "558.727", "559.235", "559.742", "560.25", "560.757", "561.265", "561.772", "562.28", "562.787", "563.294", "563.801", "564.308", "564.815", "565.323", "565.83", "566.336", "566.843", "567.35", "567.857", "568.364", "568.87", "569.377", "569.884", "570.39", "570.897", "571.403", "571.91", "572.416", "572.922", "573.429", "573.935", "574.441", "574.947", "575.453", "575.959", "576.465", "576.971", "577.477", "577.983", "578.489", "578.995", "579.501", "580.006", "580.512", "581.018", "581.523", "582.029", "582.534", "583.04", "583.545", "584.05", "584.556", "585.061", "585.566", "586.071", "586.577", "587.082", "587.587", "588.092", "588.597", "589.102", "589.607", "590.112", "590.616", "591.121", "591.626", "592.131", "592.635", "593.14", "593.645", "594.149", "594.654", "595.158", "595.663", "596.167", "596.672", "597.176", "597.68", "598.185", "598.689", "599.193", "599.697", "600.201", "600.705", "601.209", "601.713", "602.217", "602.721", "603.225", "603.729", "604.233", "604.737", "605.241", "605.744", "606.248", "606.752", "607.255", "607.759", "608.263", "608.766", "609.27", "609.773", "610.277", "610.78", "611.283", "611.787", "612.29", "612.793", "613.297", "613.8", "614.303", "614.806", "615.309", "615.812", "616.316", "616.819", "617.322", "617.825", "618.328", "618.83", "619.333", "619.836", "620.339", "620.842", "621.345", "621.847", "622.35", "622.853", "623.355", "623.858", "624.361", "624.863", "625.366", "625.868", "626.371", "626.873", "627.376", "627.878", "628.381", "628.883", "629.385", "629.888", "630.39", "630.892", "631.395", "631.897", "632.399", "632.901", "633.403", "633.905", "634.408", "634.91", "635.412", "635.914", "636.416", "636.918", "637.42", "637.922", "638.424", "638.925", "639.427", "639.929", "640.431", "640.933", "641.435", "641.936", "642.438", "642.94", "643.442", "643.943", "644.445", "644.947", "645.448", "645.95", "646.451", "646.953", "647.455", "647.956", "648.458", "648.959", "649.461", "649.962", "650.464", "650.965", "651.466", "651.968", "652.469", "652.97", "653.472", "653.973", "654.474", "654.976", "655.477", "655.978", "656.48", "656.981", "657.482", "657.983", "658.484", "658.985", "659.487", "659.988", "660.489", "660.99", "661.491", "661.992", "662.493", "662.994", "663.495", "663.996", "664.497", "664.998", "665.499", "666", "666.501", "667.002", "667.503", "668.004", "668.505", "669.006", "669.507", "670.008", "670.509", "671.009", "671.51", "672.011", "672.512", "673.013", "673.514", "674.014", "674.515", "675.016", "675.517", "676.018", "676.518", "677.019", "677.52", "678.02", "678.521", "679.022", "679.523", "680.023", "680.524", "681.025", "681.525", "682.026", "682.527", "683.027", "683.528", "684.029", "684.529", "685.03", "685.531", "686.031", "686.532", "687.032", "687.533", "688.034", "688.534", "689.035", "689.536", "690.036", "690.537", "691.037", "691.538", "692.038", "692.539", "693.04", "693.54", "694.041", "694.541", "695.042", "695.542", "696.043", "696.544", "697.044", "697.545", "698.045", "698.546", "699.046", "699.547", "700.047", "700.548", "701.049", "701.549", "702.05", "702.55", "703.051", "703.551", "704.052", "704.552", "705.053", "705.554", "706.054", "706.555", "707.055", "707.556", "708.056", "708.557", "709.058", "709.558", "710.059", "710.559", "711.06", "711.561", "712.061", "712.562", "713.062", "713.563", "714.064", "714.564", "715.065", "715.566", "716.066", "716.567", "717.068", "717.568", "718.069", "718.57", "719.07", "719.571", "720.072", "720.572", "721.073", "721.574", "722.074", "722.575", "723.076", "723.577", "724.077", "724.578", "725.079", "725.58", "726.081", "726.581", "727.082", "727.583", "728.084", "728.585", "729.086", "729.586", "730.087", "730.588", "731.089", "731.59", "732.091", "732.592", "733.093", "733.594", "734.095", "734.596", "735.097", "735.598", "736.099", "736.6", "737.101", "737.602", "738.103", "738.604", "739.105", "739.606", "740.107", "740.609", "741.11", "741.611", "742.112", "742.613", "743.114", "743.616", "744.117", "744.618", "745.119", "745.621", "746.122", "746.623", "747.125", "747.626", "748.128", "748.629", "749.13", "749.632", "750.133", "750.635", "751.136", "751.638", "752.139", "752.641", "753.142", "753.644", "754.145", "754.647", "755.149", "755.65", "756.152", "756.654", "757.155", "757.657", "758.159", "758.661", "759.163", "759.664", "760.166", "760.668", "761.17", "761.672", "762.174", "762.676", "763.178", "763.68", "764.182", "764.684", "765.186", "765.688", "766.19", "766.692", "767.194", "767.697", "768.199", "768.701", "769.203", "769.706", "770.208", "770.71", "771.213", "771.715", "772.217", "772.72", "773.222", "773.725", "774.227", "774.73", "775.232", "775.735", "776.238", "776.74", "777.243", "777.746", "778.248", "778.751", "779.254", "779.757", "780.26", "780.763", "781.266", "781.768", "782.271", "782.774", "783.277", "783.781", "784.284", "784.787", "785.29", "785.793", "786.296", "786.799", "787.303", "787.806", "788.309", "788.813", "789.316", "789.82", "790.323", "790.827", "791.33", "791.834", "792.337", "792.841", "793.345", "793.848", "794.352", "794.856", "795.359", "795.863", "796.367", "796.871", "797.375", "797.879", "798.383", "798.887", "799.391", "799.895", "800.399", "800.904", "801.408", "801.912", "802.416", "802.921", "803.425", "803.929", "804.434", "804.938", "805.443", "805.947", "806.452", "806.957", "807.461", "807.966", "808.471", "808.975", "809.48", "809.985", "810.49", "810.995", "811.5", "812.005", "812.51", "813.015", "813.52", "814.026", "814.531", "815.036", "815.541", "816.047", "816.552", "817.057", "817.563", "818.068", "818.574", "819.08", "819.585", "820.091", "820.597", "821.102", "821.608", "822.114", "822.62", "823.126"] }, { "type": "character", "attributes": {}, "value": ["0.029", "20.027", "40.025", "60.026", "80.025", "100.023", "120.022", "140.022", "160.02", "180.019", "200.02", "220.018", "240.017", "260.016", "280.015", "300.014", "320.014", "340.014", "360.012", "380.012", "400.01", "420.009", "440.008", "460.007", "0.029", "20.027", "40.025", "60.026", "80.025", "100.023", "120.022", "140.022", "160.02", "180.019", "200.02", "220.018", "240.017", "260.016", "280.015", "300.014", "320.014", "340.014", "360.012", "380.012", "400.01", "420.009", "440.008", "460.007"] } ] } }, "value": [555, 555, 555, 554, 554, 554, 554, 555, 555, 557, 559, 560, 560, 560, 560, 560, 561, 561, 561, 561, 561, 565, 565, 564, 564, 564, 562, 562, 564, 567, 567, 567, 567, 567, 567, 567, 564, 564, 563, 563, 563, 566, 566, 566, 566, 566, 565, 564, 564, 564, 564, 563, 563, 563, 563, 565, 565, 565, 565, 565, 565, 564, 564, 564, 565, 566, 568, 568, 568, 568, 564, 564, 566, 567, 567, 567, 566, 566, 566, 565, 565, 566, 567, 568, 568, 568, 568, 567, 567, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 565, 565, 564, 564, 564, 564, 564, 564, 566, 566, 566, 567, 567, 567, 567, 566, 564, 564, 563, 563, 563, 565, 565, 565, 565, 566, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 565, 565, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 569, 569, 568, 566, 566, 566, 566, 566, 566, 569, 569, 569, 569, 569, 569, 569, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 562, 562, 562, 562, 564, 564, 564, 568, 568, 568, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 564, 564, 563, 563, 563, 564, 565, 565, 565, 564, 564, 564, 565, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 568, 568, 571, 571, 571, 567, 567, 567, 567, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 563, 563, 563, 563, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 570, 570, 570, 569, 569, 568, 565, 563, 563, 563, 563, 565, 566, 566, 566, 565, 563, 563, 563, 565, 565, 565, 565, 564, 564, 566, 566, 566, 568, 568, 568, 572, 572, 572, 568, 568, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 565, 565, 565, 564, 564, 564, 564, 564, 563, 563, 563, 563, 563, 562, 562, 562, 562, 563, 563, 564, 568, 568, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 562, 562, 562, 567, 567, 567, 567, 565, 565, 565, 566, 566, 566, 566, 566, 566, 568, 568, 568, 568, 566, 565, 565, 565, 565, 567, 567, 567, 566, 566, 566, 569, 569, 569, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 568, 568, 568, 564, 563, 563, 564, 566, 567, 567, 567, 565, 565, 565, 565, 565, 565, 565, 565, 565, 563, 563, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 563, 563, 563, 563, 563, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 569, 569, 569, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 565, 564, 564, 564, 566, 566, 566, 566, 562, 562, 562, 565, 565, 567, 570, 570, 569, 566, 564, 564, 564, 566, 569, 569, 567, 567, 564, 564, 564, 567, 568, 568, 568, 568, 568, 568, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 563, 563, 563, 565, 567, 567, 567, 567, 566, 566, 566, 564, 564, 564, 566, 568, 568, 568, 568, 567, 565, 565, 567, 569, 569, 569, 569, 569, 569, 569, 569, 569, 565, 564, 564, 567, 569, 569, 569, 569, 569, 569, 569, 569, 566, 566, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 566, 566, 567, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 563, 563, 564, 566, 566, 566, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 560, 560, 563, 564, 564, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 564, 564, 564, 567, 567, 567, 562, 562, 562, 563, 563, 563, 565, 565, 565, 564, 564, 564, 565, 565, 565, 562, 562, 562, 566, 566, 568, 568, 568, 568, 568, 568, 567, 567, 566, 566, 564, 564, 564, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 564, 564, 562, 562, 562, 564, 566, 566, 566, 562, 562, 562, 562, 567, 567, 567, 567, 567, 566, 565, 565, 565, 565, 566, 566, 566, 566, 568, 568, 568, 568, 568, 566, 566, 566, 566, 566, 566, 564, 564, 564, 563, 563, 568, 568, 568, 565, 565, 565, 564, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 564, 564, 564, 565, 568, 568, 568, 567, 567, 565, 564, 564, 564, 564, 565, 568, 568, 568, 568, 568, 568, 568, 568, 567, 566, 566, 565, 565, 565, 565, 565, 565, 567, 567, 567, 565, 565, 565, 565, 569, 569, 569, 569, 565, 564, 564, 565, 565, 565, 565, 566, 566, 565, 565, 565, 568, 568, 568, 567, 567, 567, 567, 568, 568, 568, 565, 565, 567, 567, 567, 567, 567, 564, 564, 564, 564, 567, 567, 567, 566, 563, 563, 563, 565, 565, 565, 569, 569, 569, 569, 567, 567, 567, 567, 567, 568, 569, 569, 569, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 562, 562, 562, 563, 566, 566, 566, 567, 571, 571, 571, 568, 565, 565, 565, 566, 566, 566, 567, 567, 567, 567, 565, 565, 565, 563, 563, 563, 563, 565, 567, 567, 561, 561, 562, 565, 565, 565, 565, 565, 565, 564, 562, 562, 562, 565, 565, 565, 565, 564, 563, 563, 563, 563, 563, 563, 563, 563, 563, 564, 564, 564, 566, 566, 566, 566, 566, 566, 565, 565, 565, 556, 556, 556, 555, 555, 555, 555, 558, 562, 562.5, 562.5, 563, 563, 563, 563, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 565, 565, 565, 565, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 567, 567, 567, 566, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 566, 566, 566, 566, 566, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 564, 564, 564, 564, 564, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 564, 564, 564, 566, 567, 567, 567, 561, 560, 555, 555, 555, 555, 557, 557, 560, 560, 560, 560, 560, 560, 560, 561, 561, 562, 563, 564, 564, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 568, 568, 568, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 565, 565, 565, 566, 566, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 571, 571, 571, 571, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 567, 567, 567, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 569, 569, 569, 569, 569, 569, 569, 569, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 569, 569, 569, 569, 568, 568, 568, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 569, 569, 570, 570, 569, 569, 566, 565, 563, 568, 568, 564, 557, 556, 556, 556, 557, 562, 562, 562, 562, 562, 562, 564, 564, 564, 565, 566, 566, 568, 568, 569, 570, 570, 570, 570, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 573, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 577, 577, 577, 577, 576, 576, 576, 578, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 587, 587, 587, 588, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 584, 584, 584, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 580, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 571, 571, 571, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 574, 575, 575, 575, 576, 576, 576, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 577, 577, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 571, 572, 572, 572, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 573, 573, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 576, 603, 603, 603, 603, 573, 573, 571, 571, 569, 569, 569, 567, 567, 567, 568, 570, 571, 574, 575, 576, 578, 578, 578, 578, 574, 574, 574, 574, 577, 577, 577, 575, 575, 575, 575, 577, 577, 577, 577, 577, 576, 576, 576, 577, 577, 578, 580, 580, 577, 577, 577, 577, 577, 577, 577, 577, 580, 580, 580, 580, 580, 580, 580, 579, 577, 577, 577, 580, 580, 580, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 586, 586, 583, 583, 587, 587, 587, 587, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 590, 591, 592, 592, 590, 590, 590, 590, 590, 592, 592, 592, 592, 596, 596, 597, 597, 597, 597, 592, 592, 600, 602, 604, 604, 604, 604, 604, 605, 608, 610, 611, 611, 612, 612, 613, 613, 613, 613, 614, 615, 615, 615, 615, 615, 615, 616, 617, 618, 618, 618, 618, 619, 619, 620, 620, 622, 622, 623, 623, 624, 624, 626, 627, 628, 628, 629, 629, 629, 631, 631, 631, 632, 632, 632, 633, 633, 634, 634, 634, 634, 634, 634, 636, 637, 637, 637, 637, 637, 637, 637, 638, 638, 640, 640, 641, 641, 642, 642, 643, 644, 644, 644, 645, 647, 647, 647, 648, 648, 648, 649, 650, 650, 650, 650, 650, 650, 650, 651, 651, 652, 652, 653, 653, 653, 653, 653, 654, 654, 654, 654, 653, 653, 653, 653, 653, 653, 653, 653, 652, 652, 652, 651, 651, 651, 651, 651, 651, 650, 649, 649, 649, 649, 649, 650, 650, 650, 650, 650, 649, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 646, 646, 646, 646, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 644, 644, 644, 644, 644, 644, 642, 642, 640, 640, 640, 640, 638, 637, 637, 637, 637, 637, 637, 637, 636, 636, 636, 636, 636, 635, 635, 635, 633, 633, 632, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 632, 633, 633, 633, 633, 633, 632, 632, 632, 632, 633, 633, 633, 632, 632, 632, 631, 631, 630, 630, 630, 630, 630, 631, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 634, 634, 635, 635, 635, 635, 634, 634, 634, 634, 634, 637, 637, 637, 637, 639, 639, 639, 641, 641, 641, 641, 641, 642, 642, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 645, 645, 645, 645, 645, 645, 645, 646, 646, 646, 646, 648, 650, 650, 650, 648, 648, 648, 648, 648, 648, 649, 649, 649, 649, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 647, 647, 646, 646, 646, 646, 646, 646, 645, 645, 645, 646, 646, 646, 644, 644, 644, 643, 642, 640, 640, 640, 640, 639, 639, 639, 639, 639, 639, 638, 638, 638, 637, 637, 637, 637, 636, 636, 636, 636, 635, 635, 634, 634, 632, 631, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 626, 626, 626, 626, 625, 625, 625, 624, 624, 623, 623, 623, 623, 622, 620, 620, 620, 620, 619, 618, 618, 618, 617, 615, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 612, 612, 611, 611, 610, 609, 609, 609, 609, 609, 608, 604, 604, 604, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 598, 598, 598, 598, 598, 598, 599, 599, 598, 598, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 595, 595, 595, 596, 597, 599, 599, 599, 599, 599, 597, 594, 594, 594, 596, 596, 596, 596, 596, 596, 594, 594, 594, 594, 594, 594, 593, 593, 593, 592, 592, 592, 594, 594, 594, 594, 592, 592, 592, 594, 594, 595, 595, 596, 596, 596, 592, 592, 592, 592, 593, 594, 594, 594, 594, 591, 591, 591, 591, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 596, 599, 600, 600, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 599, 599, 601, 601, 600, 600, 600, 600, 601, 601, 601, 601, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 603, 603, 604, 604, 604, 604, 604, 604, 604, 605, 606, 608, 608, 608, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 608, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 599, 599, 598, 598, 598, 599, 600, 602, 602, 601, 599, 598, 598, 599, 599, 599, 599, 599, 598, 598, 596, 596, 596, 598, 598, 598, 597, 597, 596, 596, 596, 595, 595, 595, 595, 597, 597, 597, 597, 593, 592, 592, 592, 590, 590, 590, 590, 592, 592, 592, 592, 593, 593, 593, 591, 590, 589, 589, 589, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 589, 589, 587, 586, 586, 586, 586, 586, 588, 588, 588, 588, 588, 580, 580, 580, 581, 583, 583, 583, 583, 583, 583, 583, 583, 583, 590, 590, 590, 585, 585, 585, 582, 582, 582, 583, 583, 583, 583, 583, 586, 586, 586, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 582, 580, 580, 580, 580, 582, 582, 582, 582, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 581, 581, 582, 582, 582, 582, 582, 582, 583, 583, 583, 583, 583, 584, 584, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 587, 587, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 591, 591, 591, 591, 591, 592, 592, 593, 593, 593, 593, 593, 593, 594, 594, 594, 596, 596, 596, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 600, 600, 601, 601, 601, 601, 603, 603, 605, 606, 606, 606, 606, 607, 607, 608, 608, 610, 613, 613, 613, 613, 617, 617, 619, 620, 621, 621, 622, 623, 623, 623, 623, 624, 626, 627, 628, 628, 629, 629, 630, 630, 631, 631, 634, 634, 635, 635, 635, 635, 636, 637, 637, 639, 639, 644, 646, 646, 646, 648, 649, 649, 649, 650, 650, 650, 651, 652, 652, 653, 653, 654, 654, 655, 655, 659, 659, 659, 660, 661, 661, 661, 662, 663, 663, 663, 664, 664, 664, 665, 665, 667, 668, 668, 669, 670, 670, 672, 673, 673, 673, 674, 674, 675, 675, 676, 678, 679, 680, 680, 680, 680, 680, 680, 680, 680, 680, 681, 681, 681, 681, 681, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 679, 679, 679, 679, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 677, 677, 677, 677, 677, 677, 677, 677, 676, 676, 676, 676, 676, 675, 675, 674, 674, 673, 673, 673, 673, 673, 673, 671, 671, 671, 671, 670, 670, 670, 670, 670, 669, 669, 669, 669, 669, 669, 668, 668, 666, 666, 666, 666, 665, 665, 664, 664, 663, 663, 662, 662, 662, 662, 662, 661, 661, 661, 660, 659, 659, 659, 658, 658, 658, 658, 658, 657, 657, 656, 656, 656, 656, 656, 655, 655, 655, 655, 654, 654, 654, 654, 654, 655, 655, 655, 655, 655, 655, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 656, 656, 656, 656, 656, 657, 657, 657, 657, 657, 659, 659, 659, 659, 661, 661, 661, 662, 663, 663, 664, 665, 665, 665, 665, 666, 666, 666, 666, 666, 666, 666, 667, 667, 669, 670, 670, 670, 670, 670, 670, 670, 671, 674, 674, 674, 674, 674, 674, 674, 675, 675, 676, 676, 676, 678, 679, 679, 679, 679, 679, 679, 680, 680, 681, 681, 681, 681, 681, 681, 682, 682, 682, 683, 684, 685, 685, 685, 685, 685, 685, 687, 687, 688, 688, 688, 688, 688, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 686, 686, 686, 686, 686, 685, 685, 684, 682, 682, 682, 682, 682, 681, 681, 681, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 679, 678, 678, 678, 677, 675, 675, 675, 673, 673, 673, 672, 671, 670, 668, 668, 668, 667, 666, 666, 665, 664, 663, 662, 661, 660, 657, 657, 657, 657, 657, 657, 656, 655, 655, 653, 652, 651, 651, 651, 650, 648, 648, 647, 647, 646, 646, 646, 645, 645, 644, 644, 644, 644, 643, 643, 643, 642, 640, 640, 640, 640, 639, 638, 638, 636, 636, 636, 635, 634, 633, 631, 631, 631, 631, 630, 630, 630, 630, 629, 628, 628, 627, 627, 627, 627, 627, 626, 625, 624, 624, 624, 624, 623, 623, 623, 621, 621, 621, 621, 620, 620, 620, 618, 618, 617, 617, 616, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 616, 616, 615, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 611, 611, 611, 611, 611, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 610, 611, 611, 611, 611, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 613, 613, 614, 614, 614, 614, 614, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 617, 617, 617, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 614, 614, 614, 613, 613, 613, 613, 613, 613, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 613, 613, 613, 613, 613, 613, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 610, 610, 609, 609, 609, 609, 608, 608, 608, 608, 608, 607, 607, 606, 606, 606, 606, 606, 605, 605, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 600, 600, 600, 600, 600, 600, 600, 600, 600, 598, 598, 598, 598, 597, 597, 597, 597, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 595, 595, 595, 594, 594, 594, 594, 594, 592, 591, 591, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 573, 574, 575, 576, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 581, 581, 581, 582, 582, 582, 582, 582, 581, 581, 581, 581, 584, 584, 584, 584, 584, 584, 586, 586, 586, 586, 586, 585, 585, 585, 585, 586, 586, 586, 582, 582, 582, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 593, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 596, 596, 596, 596, 596, 596, 596, 597, 597, 597, 597, 597, 597, 598, 598, 598, 599, 600, 600, 600, 601, 604, 605, 605, 605, 606, 607, 607, 609, 609, 609, 610, 610, 610, 611, 613, 614, 614, 614, 614, 614, 615, 616, 617, 617, 620, 621, 621, 624, 625, 625, 625, 627, 627, 627, 627, 627, 627, 628, 628, 630, 630, 630, 630, 631, 631, 631, 631, 632, 632, 632, 633, 633, 634, 635, 638, 638, 639, 639, 639, 640, 640, 641, 642, 643, 643, 644, 644, 644, 645, 645, 645, 647, 647, 650, 651, 651, 651, 652, 652, 652, 652, 652, 653, 653, 653, 653, 653, 653, 653, 653, 654, 654, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 654, 654, 654, 654, 654, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 650, 650, 650, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 646, 646, 646, 646, 646, 646, 646, 646, 645, 645, 644, 644, 643, 643, 643, 642, 642, 642, 642, 642, 642, 642, 642, 641, 641, 641, 641, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 637, 637, 637, 637, 636, 636, 636, 637, 637, 637, 636, 636, 636, 635, 635, 635, 636, 636, 636, 635, 635, 635, 636, 636, 636, 635, 635, 635, 635, 635, 635, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 638, 638, 638, 640, 640, 640, 640, 641, 641, 641, 641, 641, 641, 641, 642, 642, 643, 643, 643, 644, 644, 644, 644, 645, 645, 646, 647, 648, 648, 648, 649, 650, 651, 651, 652, 652, 652, 654, 654, 655, 655, 655, 655, 656, 656, 656, 658, 658, 658, 659, 659, 659, 660, 660, 660, 660, 662, 662, 664, 664, 665, 665, 665, 666, 666, 666, 666, 667, 667, 667, 667, 669, 669, 669, 670, 670, 671, 672, 674, 674, 674, 675, 675, 675, 676, 676, 676, 676, 676, 676, 676, 676, 676, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 672, 672, 672, 672, 671, 671, 671, 670, 668, 668, 668, 668, 667, 665, 665, 665, 664, 664, 664, 663, 662, 662, 662, 662, 659, 659, 659, 658, 657, 657, 655, 655, 655, 654, 654, 654, 653, 652, 650, 650, 650, 650, 649, 648, 648, 647, 647, 646, 644, 644, 643, 642, 642, 641, 641, 641, 641, 640, 639, 638, 638, 635, 635, 635, 635, 634, 634, 634, 634, 633, 633, 632, 631, 628, 628, 628, 627, 627, 627, 626, 626, 626, 625, 625, 625, 621, 621, 621, 621, 621, 620, 620, 619, 619, 619, 619, 619, 619, 618, 618, 617, 617, 617, 615, 615, 615, 615, 614, 614, 614, 614, 613, 613, 613, 613, 613, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 610, 609, 609, 609, 609, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 605, 605, 605, 605, 605, 604, 603, 603, 603, 603, 602, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 597, 597, 597, 597, 597, 597, 597, 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 594, 594, 594, 593, 593, 593, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 592, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 585, 583, 583, 583, 583, 583, 581, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 581, 580, 580, 579, 579, 579, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 580, 579, 579, 580, 581, 581, 582, 582, 582, 580, 580, 581, 581, 581, 581, 579, 578, 578, 578, 577, 577, 577, 577, 577, 574, 574, 573, 572, 571, 571, 571, 576, 576, 576, 574, 574, 575, 579, 580, 580, 580, 580, 580, 583, 583, 583, 580, 580, 580, 581, 584, 584, 584, 584, 584, 583, 583, 583, 583, 579, 578, 578, 580, 583, 583, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 582, 582, 582, 585, 585, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 584, 583, 583, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 589, 589, 589, 590, 590, 591, 591, 593, 593, 593, 593, 593, 594, 594, 595, 595, 595, 597, 597, 598, 598, 598, 598, 598, 599, 599, 599, 599, 600, 601, 601, 602, 602, 602, 602, 603, 603, 605, 605, 608, 608, 610, 613, 613, 613, 613, 613, 613, 613, 613, 614, 614, 614, 614, 614, 614, 614, 615, 615, 615, 617, 617, 617, 617, 619, 619, 619, 620, 620, 620, 620, 620, 623, 623, 623, 623, 624, 625, 625, 625, 626, 626, 626, 626, 627, 627, 627, 629, 629, 629, 629, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 633, 633, 633, 634, 634, 635, 636, 636, 636, 636, 636, 636, 636, 636, 636, 635, 634, 634, 634, 633, 633, 633, 633, 633, 633, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 628, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 625, 625, 623, 622, 622, 622, 622, 622, 622, 622, 622, 621, 621, 621, 620, 620, 620, 620, 620, 620, 620, 620, 620, 619, 619, 618, 617, 617, 617, 617, 617, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 616, 616, 616, 616, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 617, 617, 617, 617, 617, 617, 617, 617, 619, 620, 620, 622, 622, 622, 622, 622, 622, 622, 623, 623, 623, 625, 626, 626, 627, 627, 627, 628, 629, 629, 629, 629, 630, 630, 631, 631, 631, 632, 632, 634, 634, 635, 637, 638, 638, 638, 638, 638, 639, 640, 640, 640, 640, 641, 642, 642, 642, 642, 642, 643, 643, 643, 644, 644, 644, 645, 645, 646, 646, 646, 646, 647, 647, 647, 648, 648, 648, 649, 649, 649, 649, 651, 651, 651, 651, 651, 653, 653, 653, 653, 653, 653, 653, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 654, 654, 654, 654, 654, 653, 653, 653, 652, 652, 652, 652, 651, 651, 651, 651, 651, 650, 650, 649, 649, 649, 649, 649, 649, 648, 647, 647, 647, 646, 646, 645, 645, 644, 643, 643, 641, 638, 638, 638, 636, 636, 636, 636, 636, 636, 636, 635, 635, 635, 635, 635, 635, 635, 634, 632, 632, 632, 632, 632, 632, 632, 631, 630, 629, 629, 627, 626, 626, 626, 625, 625, 625, 625, 625, 625, 624, 624, 623, 621, 621, 621, 620, 619, 619, 619, 619, 617, 617, 617, 616, 616, 614, 613, 611, 611, 611, 611, 611, 611, 610, 609, 609, 607, 606, 606, 605, 605, 605, 605, 605, 605, 604, 603, 603, 603, 603, 602, 602, 602, 602, 603, 603, 603, 603, 603, 603, 603, 602, 601, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 599, 599, 599, 599, 599, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 593, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 590, 590, 590, 590, 590, 590, 592, 592, 592, 592, 590, 590, 590, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 590, 590, 590, 589, 589, 589, 589, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 583, 583, 585, 585, 585, 585, 585, 585, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 582, 577, 577, 577, 582, 582, 582, 582, 582, 580, 580, 580, 580, 580, 582, 582, 582, 580, 579, 579, 580, 580, 580, 580, 581, 582, 582, 582, 580, 580, 580, 580, 580, 581, 581, 581, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 578, 578, 579, 580, 580, 578, 578, 578, 578, 578, 578, 578, 578, 578, 580, 580, 575, 575, 575, 575, 576, 576, 576, 580, 583, 583, 583, 579, 579, 577, 575, 575, 575, 579, 579, 579, 579, 574, 574, 574, 576, 578, 578, 578, 578, 578, 577, 577, 577, 577, 578, 578, 578, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 577, 578, 578, 578, 578, 570, 570, 573, 573, 573, 572, 572, 572, 574, 574, 574, 574, 572, 572, 572, 575, 578, 578, 578, 575, 575, 575, 575, 580, 580, 580, 580, 580, 580, 581, 585, 585, 585, 585, 585, 583, 582, 580, 580, 583, 586, 586, 586, 585, 585, 585, 585, 583, 583, 582, 582, 582, 586, 586, 586, 585, 584, 584, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 590, 590, 590, 586, 584, 584, 582, 582, 582, 588, 588, 588, 588, 588, 587, 587, 587, 587, 588, 588, 588, 586, 586, 584, 584, 584, 585, 585, 585, 585, 585, 585, 584, 583, 583, 583, 583, 587, 590, 590, 590, 584, 584, 584, 584, 584, 588, 588, 584, 584, 587, 588, 588, 588, 588, 588, 588, 588, 588, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 596, 596, 596, 598, 598, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 601, 602, 604, 604, 604, 605, 605, 605, 605, 606, 606, 607, 607, 607, 607, 607, 607, 607, 608, 608, 608, 609, 609, 610, 610, 612, 612, 613, 613, 613, 614, 615, 615, 615, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 618, 618, 618, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 613, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 611, 610, 610, 610, 610, 610, 610, 610, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 605, 605, 605, 604, 604, 604, 604, 603, 603, 603, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 600, 599, 599, 599, 599, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, 601, 601, 601, 601, 601, 601, 601, 602, 602, 603, 604, 604, 604, 605, 605, 605, 606, 606, 606, 606, 607, 607, 607, 610, 611, 611, 611, 611, 611, 612, 613, 613, 613, 613, 613, 613, 614, 614, 614, 615, 615, 616, 616, 616, 616, 616, 616, 617, 617, 618, 618, 618, 620, 620, 620, 620, 621, 622, 623, 623, 623, 623, 623, 624, 624, 625, 625, 626, 626, 628, 628, 628, 628, 628, 628, 629, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 632, 632, 632, 632, 634, 634, 634, 634, 634, 634, 634, 634, 634, 636, 636, 636, 636, 636, 636, 636, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 635, 635, 635, 635, 633, 633, 632, 632, 632, 632, 632, 633, 633, 633, 633, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 631, 631, 630, 629, 629, 629, 629, 629, 628, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 626, 626, 626, 625, 625, 625, 625, 625, 625, 624, 623, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 621, 621, 621, 621, 621, 621, 620, 620, 620, 620, 620, 619, 616, 615, 614, 614, 614, 613, 613, 613, 612, 612, 612, 612, 611, 611, 611, 610, 608, 608, 608, 608, 608, 608, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 602, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 598, 598, 598, 598, 598, 598, 596, 596, 596, 595, 595, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 592, 591, 591, 591, 591, 589, 588, 588, 590, 591, 591, 589, 588, 588, 587, 587, 588, 588, 588, 588, 588, 586, 586, 586, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 586, 586, 586, 588, 588, 588, 587, 587, 587, 586, 586, 586, 586, 586, 587, 587, 587, 583, 583, 583, 583, 585, 585, 585, 582, 582, 582, 584, 586, 586, 586, 585, 584, 583, 583, 581, 581, 581, 580, 580, 579, 579, 579, 582, 582, 582, 582, 583, 583, 583, 583, 583, 584, 584, 585, 585, 586, 586, 586, 582, 582, 582, 583, 585, 585, 583, 578, 578, 578, 583, 583, 583, 583, 583, 579, 579, 579, 579, 579, 581, 583, 583, 583, 581, 581, 581, 578, 578, 578, 580, 580, 580, 580, 580, 580, 579, 579, 579, 580, 582, 582, 580, 577, 575, 575, 575, 575, 575, 575, 575, 576, 576, 579, 579, 579, 579, 579, 579, 579, 577, 577, 577, 577, 578, 578, 578, 574, 574, 574, 576, 576, 577, 577, 577, 578, 578, 578, 578, 579, 579, 579, 579, 579, 578, 573, 573, 580, 580, 573, 573, 573, 573, 573, 578, 578, 578, 576, 573, 573, 573, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 576, 578, 578, 575, 573, 573, 573, 574, 577, 577, 577, 574, 572, 572, 572, 572, 572, 572, 574, 574, 574, 574, 575, 575, 575, 574, 573, 573, 574, 574, 574, 574, 574, 575, 575, 575, 573, 573, 573, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 572, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 577, 577, 574, 574, 573, 572, 572, 571, 571, 571, 573, 573, 574, 574, 574, 574, 574, 574, 574, 571, 571, 564, 564, 564, 564, 566, 566, 566, 571, 571, 571, 572, 572, 572, 572, 572, 573, 574, 574, 574, 574, 574, 576, 576, 577, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 583, 583, 583, 583, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 586, 586, 586, 586, 588, 588, 588, 588, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 593, 593, 593, 593, 593, 593, 594, 594, 594, 595, 595, 595, 595, 596, 596, 596, 597, 597, 598, 598, 599, 599, 599, 600, 601, 601, 601, 601, 601, 601, 601, 601, 602, 602, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 598, 597, 597, 597, 597, 597, 597, 597, 597, 596, 596, 596, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 588, 589, 589, 589, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 596, 596, 596, 598, 598, 598, 598, 598, 598, 598, 600, 600, 600, 601, 601, 602, 602, 602, 602, 602, 602, 603, 603, 604, 605, 605, 606, 606, 607, 607, 607, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 611, 611, 613, 613, 614, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 618, 618, 618, 618, 618, 619, 619, 620, 621, 621, 621, 621, 621, 621, 621, 623, 623, 623, 623, 624, 624, 624, 625, 625, 625, 625, 625, 625, 626, 626, 626, 626, 626, 626, 627, 628, 628, 628, 628, 628, 628, 628, 628, 628, 629, 629, 629, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 630, 630, 630, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 633, 633, 633, 633, 633, 633, 633, 633, 633, 632, 632, 632, 632, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 633, 633, 633, 633, 633, 633, 633, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 630, 628, 628, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 626, 626, 625, 625, 625, 625, 625, 625, 625, 624, 624, 624, 623, 623, 623, 623, 623, 623, 622, 620, 620, 620, 619, 619, 619, 619, 619, 618, 618, 618, 618, 618, 618, 618, 618, 618, 617, 616, 616, 615, 615, 613, 613, 613, 613, 612, 611, 611, 611, 611, 611, 610, 610, 610, 610, 609, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 607, 606, 606, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 602, 602, 602, 602, 601, 601, 599, 599, 598, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 587, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 584, 584, 584, 584, 582, 582, 582, 582, 581, 581, 581, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 574, 574, 574, 574, 573, 573, 575, 576, 576, 576, 576, 562, 562, 562, 562, 563, 563, 563, 563, 565, 566, 566, 566, 566, 567, 567, 570, 570, 570, 568, 568, 568, 572, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 577, 581, 581, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 581, 581, 580, 580, 580, 580, 580, 578, 578, 578, 579, 579, 580, 580, 580, 580, 581, 581, 584, 584, 584, 583, 581, 581, 581, 581, 580, 580, 580, 580, 579, 579, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 578, 578, 578, 578, 578, 576, 576, 576, 576, 576, 580, 580, 580, 579, 575, 575, 575, 575, 575, 576, 576, 578, 578, 582, 582, 582, 582, 582, 581, 581, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 583, 583, 583, 581, 579, 579, 581, 583, 585, 585, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 588, 585, 585, 585, 585, 585, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 589, 589, 589, 586, 586, 586, 587, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 587, 587, 587, 587, 587, 587, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 586, 586, 586, 586, 585, 585, 585, 585, 584, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 585, 585, 585, 582, 582, 582, 583, 583, 583, 583, 585, 585, 585, 585, 580, 580, 580, 580, 580, 580, 579, 579, 579, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 582, 582, 582, 581, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 582, 582, 582, 582, 578, 576, 576, 576, 576, 575, 575, 575, 575, 579, 581, 581, 579, 574, 574, 574, 578, 579, 581, 581, 580, 580, 580, 578, 578, 577, 577, 577, 577, 576, 576, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 574, 574, 583, 583, 580, 580, 580, 580, 577, 577, 577, 578, 580, 581, 581, 582, 582, 584, 586, 586, 584, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 593, 593, 595, 595, 596, 596, 596, 596, 596, 597, 597, 597, 597, 598, 599, 600, 600, 600, 600, 600, 600, 600, 601, 601, 603, 603, 603, 603, 603, 604, 604, 604, 604, 604, 605, 605, 605, 607, 607, 607, 608, 609, 609, 609, 609, 610, 610, 610, 610, 611, 612, 612, 612, 612, 612, 613, 613, 613, 613, 613, 614, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 617, 617, 617, 619, 620, 620, 622, 622, 623, 623, 623, 624, 624, 624, 624, 624, 625, 625, 625, 625, 626, 626, 626, 626, 627, 627, 627, 628, 628, 628, 628, 628, 628, 628, 628, 629, 629, 629, 630, 630, 630, 630, 630, 631, 631, 631, 632, 632, 632, 632, 632, 633, 633, 634, 635, 635, 635, 636, 636, 636, 636, 637, 638, 638, 638, 639, 639, 640, 640, 640, 640, 640, 640, 641, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 644, 644, 646, 646, 646, 646, 646, 646, 646, 647, 647, 647, 647, 647, 647, 647, 647, 648, 648, 648, 648, 648, 648, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 650, 648, 648, 647, 647, 646, 646, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 643, 643, 642, 641, 640, 640, 640, 640, 639, 639, 638, 638, 635, 634, 634, 634, 634, 634, 633, 633, 633, 632, 632, 632, 629, 629, 629, 628, 628, 628, 628, 628, 628, 628, 627, 627, 627, 626, 625, 625, 625, 624, 624, 624, 624, 621, 621, 620, 620, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 618, 618, 617, 617, 617, 616, 616, 616, 615, 614, 614, 614, 614, 613, 612, 612, 611, 611, 611, 611, 611, 610, 610, 610, 610, 608, 608, 607, 607, 607, 605, 605, 605, 604, 603, 603, 602, 601, 601, 601, 600, 600, 600, 600, 600, 600, 599, 598, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 597, 596, 596, 595, 595, 595, 594, 594, 592, 592, 592, 591, 590, 590, 590, 590, 590, 586, 586, 586, 590, 590, 590, 590, 589, 588, 588, 588, 588, 588, 588, 587, 587, 587, 586, 586, 585, 582, 580, 580, 585, 585, 586, 584, 584, 582, 582, 582, 582, 582, 582, 580, 580, 580, 580, 580, 580, 581, 583, 583, 583, 584, 584, 583, 580, 578, 576, 576, 578, 580, 580, 580, 580, 580, 579, 579, 579, 579, 581, 581, 583, 583, 583, 579, 578, 577, 577, 577, 579, 581, 581, 580, 580, 580, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 577, 577, 577, 578, 578, 578, 578, 578, 575, 575, 575, 575, 576, 576, 576, 574, 574, 574, 575, 575, 575, 575, 575, 576, 576, 576, 576, 575, 575, 575, 575, 575, 573, 573, 573, 573, 573, 571, 570, 570, 571, 572, 575, 575, 575, 575, 575, 575, 575, 575, 575, 578, 578, 578, 578, 578, 578, 574, 574, 574, 573, 570, 570, 570, 571, 571, 572, 572, 572, 572, 577, 577, 577, 575, 574, 574, 574, 574, 574, 575, 575, 577, 577, 577, 577, 577, 573, 572, 572, 572, 572, 574, 576, 576, 576, 578, 578, 576, 575, 574, 561, 561, 557, 557, 557, 560, 560, 560, 560, 562.5, 564, 565, 565, 566, 566, 567, 568, 568, 569, 569, 570, 570, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 576, 576, 576, 576, 576, 577, 577, 577, 577, 576, 576, 576, 576, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 576, 576, 576, 576, 576, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 583, 583, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 578, 578, 576, 576, 576, 576, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 583, 583, 583, 584, 584, 584, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 589, 589, 589, 589, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 592, 592, 593, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 596, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 603, 603, 603, 603, 602, 602, 602, 602, 603, 604, 604, 605, 605, 605, 605, 605, 606, 606, 606, 607, 607, 607, 607, 608, 608, 608, 609, 609, 609, 609, 609, 609, 610, 610, 610, 610, 610, 610, 610, 610, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, 617, 618, 618, 618, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 615, 614, 612, 612, 612, 612, 612, 612, 612, 612, 611, 611, 610, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 606, 606, 606, 605, 605, 605, 605, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 603, 603, 603, 603, 602, 602, 601, 599, 599, 599, 598, 597, 597, 597, 598, 598, 598, 597, 597, 596, 596, 594, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 592, 592, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 584, 584, 584, 584, 583, 583, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 580, 580, 580, 581, 581, 581, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 578, 579, 579, 579, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 576, 576, 577, 577, 577, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 583, 583, 583, 583, 584, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 589, 589, 591, 591, 591, 589, 589, 589, 591, 591, 591, 593, 593, 591, 589, 589, 562, 562, 562, 562, 562, 563, 563, 563, 563.5, 563.5, 564, 564, 564, 564, 564, 566, 566, 566, 567, 567, 568, 569, 569, 569, 569, 569, 570, 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 580, 580, 580, 580, 580, 579, 579, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 575, 575, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, 573, 574, 574, 574, 574, 574, 574, 574, 574, 573, 571, 571, 571, 571, 571, 571, 572, 572, 572, 571, 571, 570, 570, 570, 570, 570, 570, 571, 571, 571, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 578, 578, 579, 579, 579, 580, 580, 580, 580, 580, 580, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 589, 589, 589, 590, 590, 590, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 585, 585, 585, 585, 584, 584, 583, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 584, 583, 582, 582, 582, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 586, 587, 587, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 593, 593, 593, 593, 595, 596, 596, 596, 596, 596, 596, 596, 597, 597, 598, 599, 599, 599, 599, 599, 599, 600, 600, 601, 601, 601, 601, 602, 603, 603, 604, 604, 604, 605, 605, 605, 606, 607, 607, 607, 608, 608, 610, 610, 610, 610, 611, 611, 611, 611, 612, 612, 612, 613, 613, 614, 615, 615, 615, 615, 615, 617, 618, 619, 620, 620, 623, 624, 624, 624, 624, 625, 625, 625, 625, 628, 628, 628, 628, 628, 629, 629, 629, 629, 634, 634, 635, 637, 638, 639, 641, 641, 643, 643, 644, 644, 648, 648, 648, 644, 644, 644, 648, 649, 649, 566, 565, 561, 559, 559, 563, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 568, 569, 569, 569, 569, 571, 571, 571, 568, 567, 567, 567, 569, 570, 573, 573, 573, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 575, 575, 575, 575, 575, 577, 577, 573, 573, 573, 573, 573, 573, 570, 570, 570, 573, 575, 576, 576, 576, 577, 577, 577, 577, 577, 575, 572, 572, 572, 572, 573, 575, 575, 578, 578, 578, 576, 576, 576, 576, 577, 577, 577, 574, 573, 573, 573, 573, 573, 573, 573, 573, 577, 577, 577, 577, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 574, 574, 574, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 575, 577, 577, 577, 577, 577, 577, 579, 579, 579, 579, 579, 579, 579, 582, 582, 582, 581, 579, 578, 578, 578, 578, 579, 580, 580, 580, 580, 582, 582, 582, 581, 581, 581, 581, 581, 582, 582, 582, 581, 579, 579, 578, 578, 578, 577, 577, 577, 580, 581, 582, 582, 582, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 576, 576, 576, 579, 579, 579, 576, 576, 576, 576, 578, 578, 578, 578, 578, 578, 578, 576, 576, 580, 580, 579, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 573, 573, 573, 573, 573, 577, 577, 577, 577, 577, 575, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 576, 576, 576, 576, 576, 575, 575, 575, 575, 575, 576, 576, 574, 574, 574, 574, 573, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 575, 576, 576, 576, 576, 576, 570, 570, 570, 576, 576, 576, 576, 576, 576, 576, 576, 572, 570, 570, 570, 570, 574, 574, 574, 574, 573, 573, 573, 574, 575, 575, 575, 575, 573, 573, 573, 573, 573, 574, 574, 574, 569, 569, 569, 569, 569, 569, 573, 575, 576, 576, 576, 576, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 572, 572, 574, 574, 574, 572, 572, 572, 572, 572, 572, 572, 574, 574, 574, 574, 575, 575, 576, 576, 576, 576, 572, 572, 572, 574, 574, 574, 575, 575, 575, 577, 577, 577, 577, 575, 575, 575, 573, 573, 573, 573, 576, 576, 576, 576, 574, 574, 574, 575, 575, 575, 575, 575, 575, 578, 578, 578, 578, 576, 576, 576, 574, 574, 574, 574, 575, 582, 582, 582, 574, 572, 572, 574, 574, 576, 576, 576, 576, 576, 576, 576, 576, 576, 574, 572, 572, 573, 577, 577, 577, 577, 578, 579, 579, 579, 579, 580, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 574, 574, 581, 581, 581, 581, 581, 582, 584, 584, 581, 581, 581, 581, 581, 581, 579, 579, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 587, 587, 587, 587, 586, 586, 585, 585, 582, 582, 582, 585, 585, 585, 585, 585, 585, 588, 588, 588, 588, 586, 584, 584, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 589, 589, 589, 589, 589, 593, 593, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 589, 589, 589, 589, 590, 591, 592, 592, 589, 589, 589, 589, 591, 592, 592, 592, 592, 592, 593, 594, 594, 592, 590, 590, 590, 587, 587, 589, 592, 592, 592, 592, 593, 593, 593, 593, 593, 593, 592, 592, 592, 589, 589, 589, 589, 589, 592, 594, 594, 594, 593, 592, 592, 592, 592, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 589, 589, 589, 593, 593, 593, 593, 591, 591, 591, 593, 593, 593, 593, 594, 594, 594, 594, 592, 592, 592, 589, 589, 589, 589, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 591, 591, 590, 590, 590, 590, 589, 589, 589, 589, 589, 595, 595, 593, 588, 588, 589, 589, 589, 589, 592, 592, 592, 592, 592, 592, 593, 593, 593, 592, 590, 590, 589, 589, 585, 585, 585, 591, 591, 591, 591, 591, 591, 589, 588, 588, 588, 588, 588, 588, 588, 590, 592, 592, 592, 592, 591, 587, 587, 587, 587, 588, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 589, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 593, 595, 595, 595, 595, 593, 593, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 597, 597, 597, 598, 598, 596, 596, 594, 593, 593, 593, 597, 597, 597, 597, 601, 601, 601, 601, 601, 601, 601, 601, 601, 603, 603, 603, 603, 603, 603, 606, 606, 606, 606, 609, 609, 609, 609, 609, 609, 609, 609, 611, 613, 613, 613, 613, 613, 614, 615, 619, 619, 619, 619, 620, 620, 620, 620, 620, 622, 623, 623, 624, 624, 625, 625, 626, 626, 627, 627, 627, 628, 628, 629, 629, 630, 632, 633, 633, 633, 634, 637, 638, 639, 639, 640, 641, 642, 643, 644, 645, 645, 645, 646, 646, 648, 648, 649, 652, 652, 652, 654, 654, 656, 656, 656, 657, 658, 661, 662, 662, 664, 664, 664, 664, 664, 666, 667, 667, 668, 669, 670, 671, 672, 675, 677, 679, 681, 682, 683, 683, 687, 687, 690, 690, 694, 696, 696, 696, 698, 699, 700, 700, 701, 704, 704, 707, 707, 709, 710, 711, 713, 717, 720, 721, 721, 727, 730, 730, 732, 733, 738, 738, 746, 746, 746, 747, 751, 752, 753, 754, 757, 757, 758, 758, 759, 760, 760, 760, 762, 764, 765, 767, 773, 773, 780, 780, 782, 783, 785, 787, 788, 790, 799, 801, 809, 809, 809, 806, 806, 806, 825, 825, 825, 825, 571, 571, 567, 567, 567, 567, 568, 569, 569, 569, 569, 569, 569, 573, 575, 576, 576, 576, 576, 574, 574, 574, 578, 578, 578, 576, 576, 576, 577, 579, 579, 579, 579, 577, 577, 577, 577, 578, 578, 578, 574, 574, 574, 577, 579, 579, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 580, 580, 581, 590, 609, 671, 671, 671, 601, 601, 580, 580, 580, 580, 580, 580, 579, 579, 577, 577, 575, 575, 575, 576, 577, 580, 582, 582, 582, 581, 581, 580, 580, 578, 578, 578, 578, 578, 579, 580, 580, 580, 580, 580, 578, 578, 579, 580, 580, 581, 581, 581, 581, 579, 578, 578, 578, 578, 578, 578, 578, 576, 576, 578, 578, 578, 578, 580, 581, 581, 581, 580, 578, 577, 577, 579, 580, 581, 581, 581, 580, 580, 580, 580, 580, 581, 582, 582, 582, 582, 582, 582, 584, 584, 584, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 580, 580, 580, 582, 584, 586, 586, 586, 583, 582, 582, 582, 584, 584, 584, 587, 587, 587, 583, 583, 583, 581, 581, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 585, 585, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 579, 579, 579, 579, 579, 582, 582, 582, 582, 582, 582, 581, 581, 581, 584, 584, 584, 584, 581, 581, 581, 583, 583, 586, 586, 586, 584, 583, 583, 583, 583, 583, 581, 581, 581, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 582, 582, 582, 582, 584, 584, 584, 578, 576, 576, 576, 576, 580, 580, 580, 577, 577, 577, 577, 578, 580, 582, 582, 580, 579, 579, 580, 581, 581, 581, 581, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 577, 577, 577, 577, 576, 576, 579, 579, 582, 582, 582, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 581, 581, 581, 581, 581, 580, 577, 577, 577, 577, 582, 582, 582, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 581, 583, 583, 578, 578, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 579, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 580, 580, 580, 580, 584, 584, 584, 584, 583, 582, 582, 582, 585, 585, 585, 585, 585, 583, 581, 581, 581, 581, 582, 582, 580, 580, 580, 580, 579, 579, 579, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 583, 583, 581, 581, 583, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 579, 579, 579, 581, 582, 583, 583, 583, 582, 582, 582, 582, 582, 582, 584, 584, 582, 582, 581, 581, 580, 580, 580, 583, 584, 584, 586, 586, 586, 588, 588, 592, 592, 592, 586, 585, 585, 587, 590, 591, 591, 590, 589, 589, 587, 587, 583, 582, 584, 588, 590, 590, 593, 593, 593, 587, 587, 587, 588, 588, 588, 587, 587, 587, 587, 587, 587, 588, 590, 590, 590, 590, 590, 590, 592, 592, 592, 592, 592, 592, 592, 591, 589, 589, 589, 592, 592, 594, 594, 592, 592, 592, 592, 593, 594, 594, 594, 594, 594, 594, 594, 594, 594, 601, 602, 602, 602, 599, 599, 599, 599, 596, 596, 596, 601, 601, 601, 601, 597, 597, 596, 596, 596, 601, 601, 601, 600, 599, 599, 602, 605, 605, 605, 605, 604, 603, 603, 603, 603, 606, 608, 608, 608, 606, 600, 599, 599, 601, 603, 603, 603, 603, 603, 603, 603, 603, 603, 605, 605, 607, 610, 610, 610, 609, 609, 609, 603, 603, 603, 603, 604, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 606, 608, 608, 608, 608, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 608, 609, 609, 607, 606, 606, 606, 606, 607, 608, 609, 613, 613, 609, 609, 609, 609, 609, 609, 608, 607, 606, 606, 609, 609, 609, 609, 609, 609, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 610, 610, 610, 607, 607, 608, 608, 608, 608, 610, 613, 613, 616, 616, 616, 616, 614, 614, 614, 614, 610, 610, 610, 614, 614, 614, 614, 615, 615, 615, 615, 615, 615, 613, 612, 612, 612, 612, 615, 615, 615, 614, 616, 616, 620, 620, 621, 620, 620, 620, 620, 621, 621, 621, 621, 620, 619, 619, 619, 619, 619, 621, 621, 623, 623, 624, 624, 624, 624, 624, 624, 624, 625, 625, 625, 625, 624, 624, 624, 624, 625, 625, 625, 625, 631, 633, 633, 633, 633, 629, 629, 630, 630, 630, 630, 630, 635, 636, 636, 636, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 648, 648, 648, 648, 648, 647, 647, 647, 647, 647, 650, 650, 650, 650, 652, 657, 661, 661, 661, 656, 656, 656, 666, 669, 670, 670, 670, 668, 668, 683, 683, 683, 683, 680, 680, 680, 680, 685, 685, 685, 689, 689, 689, 689, 694, 698, 701, 701, 701, 702, 702, 702, 702, 706, 713, 714, 714, 714, 714, 714, 718, 718, 718, 723, 723, 723, 723, 731, 733, 737, 742, 742, 742, 742, 749, 755, 755, 755, 758, 762, 762, 765, 766, 768, 768, 768, 768, 773, 773, 773, 773, 786, 791, 791, 793, 799, 801, 804, 804, 805, 810, 810, 812, 817, 824, 824, 830, 830, 831, 835, 842, 844, 854, 854, 855, 861, 862, 863, 869, 873, 874, 875, 875, 875, 876, 885, 890, 892, 894, 899, 911, 916, 917, 918, 926, 926, 937, 938, 943, 944, 957, 958, 962, 962, 962, 962, 964, 974, 975, 981, 984, 989, 998, 1002, 1008, 1010, 1018, 1020, 1021, 1025, 1028, 1029, 1042, 1045, 1046, 1051, 1059, 1063, 1066, 1078, 1085, 1086, 1096, 1098, 1112, 1114, 1115, 1119, 1121, 1126, 1139, 1142, 1157, 1164, 1165, 1169, 1171, 1195, 1197, 1199, 1199, 1209, 1210, 1225, 1225, 1227, 1242, 1242, 1242, 1245, 1254, 1254, 1264, 1286, 1286, 1286, 1299, 1305, 1324, 1326, 1330, 587, 586, 583, 581, 580, 580, 583, 586, 586, 586, 586, 586, 584, 584, 584, 588, 588, 588, 590, 590, 590, 590, 593, 593, 594, 594, 596, 596, 596, 598, 602, 603, 599, 591, 591, 591, 591, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 588, 588, 588, 588, 589, 589, 589, 588, 588, 587, 587, 587, 588, 588, 588, 588, 587, 587, 587, 591, 591, 591, 589, 589, 589, 589, 589, 595, 595, 587, 587, 591, 591, 591, 591, 591, 593, 593, 593, 593, 593, 593, 590, 589, 589, 589, 594, 594, 594, 594, 593, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 589, 589, 589, 595, 595, 595, 594, 594, 594, 594, 591, 591, 591, 591, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 592, 592, 593, 593, 593, 590, 590, 590, 590, 592, 593, 593, 593, 593, 593, 592, 590, 590, 596, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 592, 592, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 595, 594, 594, 593, 593, 592, 592, 592, 594, 594, 594, 594, 594, 596, 596, 596, 596, 596, 596, 593, 593, 593, 603, 603, 598, 598, 598, 595, 595, 595, 595, 593, 593, 594, 594, 594, 594, 594, 595, 598, 598, 598, 597, 597, 597, 597, 597, 596, 596, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 594, 594, 595, 594, 592, 592, 592, 592, 594, 594, 594, 594, 597, 597, 597, 594, 592, 592, 592, 592, 596, 596, 596, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 595, 595, 596, 596, 598, 598, 596, 594, 594, 594, 594, 594, 594, 595, 600, 600, 596, 595, 594, 593, 591, 591, 592, 593, 593, 593, 593, 593, 593, 593, 593, 592, 592, 592, 592, 593, 593, 596, 596, 595, 595, 595, 595, 595, 594, 594, 594, 597, 597, 597, 596, 596, 596, 594, 593, 593, 593, 594, 594, 594, 594, 595, 596, 596, 596, 596, 596, 597, 597, 597, 597, 596, 596, 596, 596, 596, 595, 593, 593, 593, 593, 593, 594, 596, 596, 596, 596, 596, 596, 596, 596, 594, 594, 594, 594, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 597, 596, 596, 596, 598, 598, 598, 598, 598, 596, 594, 594, 597, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 600, 600, 597, 597, 597, 597, 597, 597, 597, 600, 602, 602, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 602, 602, 599, 599, 599, 604, 604, 604, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 600, 600, 600, 601, 605, 605, 605, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 607, 607, 607, 607, 606, 606, 606, 607, 607, 607, 607, 607, 607, 605, 605, 605, 605, 607, 607, 607, 607, 608, 608, 608, 609, 609, 611, 612, 612, 612, 607, 607, 607, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 610, 610, 610, 610, 610, 613, 613, 613, 613, 614, 614, 614, 614, 614, 615, 615, 615, 615, 615, 615, 614, 613, 613, 615, 617, 620, 620, 618, 616, 614, 614, 617, 622, 622, 618, 616, 616, 616, 617, 618, 618, 620, 620, 623, 623, 623, 623, 623, 623, 624, 698, 803, 859, 747, 635, 635, 623, 623, 623, 623, 624, 626, 626, 626, 626, 624, 621, 621, 621, 620, 620, 620, 625, 625, 625, 625, 625, 625, 623, 623, 623, 623, 625, 630, 630, 630, 629, 629, 629, 629, 625, 625, 627, 629, 629, 631, 631, 628, 626, 626, 626, 626, 626, 628, 628, 630, 630, 631, 631, 631, 631, 633, 633, 633, 633, 632, 631, 631, 635, 637, 637, 637, 637, 637, 639, 639, 641, 642, 642, 638, 638, 633, 633, 633, 633, 634, 638, 638, 638, 638, 643, 643, 643, 643, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 641, 641, 641, 645, 645, 645, 645, 645, 645, 649, 649, 649, 649, 649, 649, 649, 649, 649, 651, 653, 653, 656, 662, 663, 662, 656, 656, 656, 656, 660, 660, 660, 662, 663, 663, 658, 654, 654, 654, 666, 666, 666, 662, 662, 662, 662, 662, 662, 667, 667, 667, 667, 670, 670, 670, 670, 673, 675, 676, 676, 676, 676, 676, 676, 679, 679, 681, 686, 686, 686, 686, 686, 691, 691, 691, 688, 688, 688, 693, 693, 699, 699, 699, 699, 700, 703, 706, 708, 712, 712, 713, 713, 717, 717, 718, 718, 718, 721, 732, 732, 732, 732, 733, 733, 733, 733, 737, 737, 731, 731, 731, 731, 742, 742, 742, 746, 746, 752, 755, 757, 760, 763, 764, 764, 764, 768, 768, 775, 779, 779, 779, 780, 780, 782, 786, 787, 788, 791, 799, 799, 802, 802, 807, 807, 808, 811, 811, 816, 816, 826, 826, 826, 830, 833, 842, 847, 849, 856, 858, 858, 861, 861, 863, 872, 877, 881, 883, 883, 887, 905, 905, 907, 912, 925, 925, 925, 926, 926, 931, 952, 952, 955, 956, 963, 966, 966, 977, 991, 992, 996, 996, 1005, 1016, 1017, 1017, 1019, 1019, 1040, 1040, 1046, 1046, 1047, 1063, 1063, 1063, 1078, 1087, 1088, 1112, 1116, 1122, 1122, 1122, 1123, 1142, 1147, 1148, 1155, 1164, 1175, 1186, 1192, 1192, 1201, 1208, 1208, 1215, 1232, 1241, 1244, 1256, 1261, 1270, 1272, 1279, 1282, 1292, 1312, 1322, 1339, 1339, 1339, 1339, 1342, 1346, 1372, 1382, 1388, 1389, 1404, 1414, 1418, 1429, 1446, 1450, 1457, 1457, 1480, 1491, 1499, 1499, 1519, 1540, 1549, 1551, 1560, 1561, 1601, 1606, 1606, 1606, 1627, 1632, 1633, 1671, 1677, 1682, 1702, 1727, 1727, 1732, 1734, 1734, 1761, 1788, 1794, 1798, 1822, 1831, 1843, 1848, 1851, 1871, 1907, 1907, 1907, 1918, 1939, 1959, 1966, 1966, 1990, 2014, 2030, 2050, 2052, 2055, 2080, 2103, 2110, 2142, 2143, 2179, 2242, 2242, 2244, 2244, 2244, 2247, 2273, 2288, 2307, 2318, 2344, 2353, 2357, 2377, 2406, 2418, 2453, 2456, 2471, 2507, 2518, 2523, 2571, 2573, 2579, 2609, 2625, 2644, 2670, 2690, 2690, 623, 623, 623, 621, 613, 613, 613, 613, 615, 615, 619, 622, 622, 622, 622, 622, 619, 619, 619, 618, 618, 618, 619, 619, 619, 619, 621, 621, 621, 621, 622, 622, 622, 622, 621, 621, 619, 619, 617, 617, 617, 617, 615, 615, 615, 615, 620, 621, 623, 623, 623, 622, 621, 621, 619, 619, 619, 619, 619, 619, 620, 620, 620, 620, 620, 620, 620, 622, 622, 622, 618, 618, 618, 617, 617, 619, 619, 619, 619, 618, 618, 618, 618, 618, 621, 621, 615, 615, 614, 614, 614, 618, 618, 619, 619, 619, 619, 619, 619, 619, 619, 619, 618, 618, 618, 618, 618, 618, 619, 621, 622, 622, 622, 622, 621, 620, 620, 620, 620, 620, 620, 620, 618, 618, 618, 618, 620, 620, 620, 619, 619, 619, 619, 621, 625, 625, 621, 619, 619, 617, 617, 617, 617, 622, 627, 627, 625, 625, 625, 618, 618, 617, 619, 620, 622, 624, 624, 625, 626, 626, 626, 622, 622, 622, 622, 622, 622, 622, 622, 622, 623, 623, 623, 627, 627, 627, 627, 626, 626, 626, 626, 626, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 624, 624, 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 625, 628, 628, 628, 628, 628, 628, 627, 627, 627, 627, 627, 627, 627, 627, 628, 628, 628, 629, 629, 629, 629, 629, 631, 631, 626, 626, 626, 626, 630, 630, 626, 624, 624, 624, 625, 625, 625, 625, 625, 625, 625, 625, 628, 628, 628, 628, 625, 625, 633, 633, 633, 628, 628, 628, 628, 628, 628, 631, 631, 629, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 625, 625, 625, 627, 629, 631, 633, 633, 636, 636, 637, 635, 633, 633, 630, 625, 625, 625, 625, 625, 625, 625, 630, 631, 631, 631, 631, 631, 631, 630, 630, 631, 631, 631, 631, 631, 631, 628, 628, 628, 631, 635, 635, 633, 631, 629, 628, 628, 628, 628, 628, 628, 628, 632, 632, 635, 635, 635, 631, 631, 630, 630, 630, 630, 630, 630, 636, 638, 638, 638, 638, 635, 635, 634, 634, 634, 634, 634, 636, 636, 633, 633, 635, 635, 635, 635, 636, 637, 637, 637, 637, 634, 634, 634, 637, 637, 637, 636, 636, 636, 636, 636, 636, 636, 635, 635, 635, 635, 635, 636, 638, 638, 638, 638, 638, 634, 631, 631, 639, 639, 639, 639, 639, 639, 641, 641, 641, 641, 641, 644, 644, 644, 644, 642, 641, 641, 641, 641, 642, 642, 642, 642, 638, 637, 637, 640, 647, 647, 647, 647, 640, 640, 640, 640, 642, 645, 645, 645, 645, 645, 645, 643, 643, 643, 644, 644, 645, 645, 645, 645, 651, 653, 653, 646, 646, 646, 646, 646, 648, 650, 650, 650, 650, 650, 650, 652, 654, 654, 654, 652, 652, 651, 651, 651, 655, 655, 655, 655, 650, 650, 650, 650, 650, 653, 653, 653, 653, 653, 653, 653, 653, 653, 654, 654, 655, 655, 655, 655, 658, 658, 658, 658, 661, 667, 667, 662, 655, 655, 655, 655, 660, 661, 661, 661, 661, 660, 660, 660, 659, 659, 659, 659, 659, 664, 664, 664, 664, 663, 663, 663, 663, 661, 661, 661, 673, 675, 672, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 669, 669, 669, 671, 671, 671, 671, 675, 675, 675, 675, 669, 669, 669, 669, 673, 676, 677, 677, 677, 677, 677, 677, 679, 681, 681, 681, 681, 680, 679, 679, 679, 679, 679, 679, 679, 680, 683, 684, 685, 686, 688, 712, 712, 712, 712, 686, 686, 686, 686, 686, 692, 692, 694, 694, 691, 691, 691, 691, 691, 691, 687, 687, 687, 687, 694, 694, 694, 694, 694, 696, 699, 699, 699, 699, 694, 694, 700, 705, 705, 703, 697, 697, 697, 697, 710, 710, 709, 708, 708, 708, 708, 712, 720, 725, 724, 714, 714, 714, 716, 723, 723, 715, 715, 715, 715, 716, 719, 719, 720, 723, 727, 738, 738, 738, 725, 725, 725, 726, 730, 730, 731, 731, 734, 735, 735, 735, 736, 742, 742, 744, 744, 744, 744, 748, 748, 748, 748, 748, 751, 751, 754, 757, 757, 763, 763, 763, 763, 763, 770, 770, 770, 772, 773, 780, 780, 780, 780, 781, 784, 793, 793, 797, 797, 797, 799, 799, 799, 800, 810, 811, 811, 811, 813, 819, 822, 825, 831, 836, 851, 851, 832, 832, 852, 852, 852, 852, 852, 855, 855, 856, 862, 863, 865, 867, 873, 878, 879, 880, 884, 896, 896, 898, 910, 911, 918, 922, 932, 941, 941, 941, 941, 941, 941, 942, 944, 953, 953, 956, 962, 968, 972, 973, 975, 983, 985, 987, 995, 995, 1002, 1009, 1014, 1014, 1018, 1019, 1024, 1036, 1044, 1046, 1052, 1064, 1068, 1071, 1072, 1077, 1086, 1087, 1098, 1098, 1103, 1107, 1118, 1129, 1129, 1129, 1130, 1130, 1150, 1163, 1164, 1166, 1166, 1185, 1196, 1210, 1212, 1214, 1214, 1214, 1232, 1243, 1246, 1260, 1266, 1268, 1268, 1268, 1281, 1297, 1309, 1321, 1328, 1342, 1342, 1362, 1366, 1396, 1406, 1406, 1409, 1415, 1447, 1447, 1454, 1457, 1469, 1491, 1494, 1511, 1539, 1544, 1555, 1559, 1591, 1611, 1611, 1623, 1637, 1659, 1670, 1679, 1692, 1696, 1704, 1733, 1760, 1762, 1780, 1791, 1794, 1813, 1831, 1847, 1864, 1872, 1889, 1924, 1926, 1941, 1960, 1963, 1987, 2010, 2016, 2029, 2042, 2071, 2084, 2103, 2118, 2127, 2173, 2173, 2175, 2221, 2233, 2244, 2276, 2276, 2289, 2325, 2357, 2365, 2387, 2396, 2419, 2426, 2456, 2474, 2498, 2516, 2539, 2568, 2580, 2621, 2633, 2644, 2658, 2658, 2691, 2736, 2765, 2792, 2809, 2832, 2852, 2866, 2898, 2924, 2980, 2991, 3002, 3002, 3019, 3063, 3081, 3112, 3153, 3176, 3195, 3208, 3256, 3265, 3290, 3336, 3375, 3396, 3411, 3476, 3476, 3477, 3542, 3581, 3609, 3609, 3622, 3703, 3706, 3760, 3763, 3799, 3835, 3869, 3897, 3944, 3967, 3972, 3973, 4075, 4087, 4115, 4147, 4165, 4219, 4258, 4259, 4333, 4393, 4413, 4423, 4494, 4517, 4518, 4556, 4613, 4685, 4716, 4778, 4786, 4820, 4887, 4892, 4938, 4990, 5020, 5080, 5107, 5191, 5203, 5263, 5267, 5300, 5379, 5426, 5457, 5478, 5551, 5584, 5638, 5746, 5832, 5832, 5871, 5871, 5940, 5969, 5988, 6103, 6128, 6138, 690, 686, 684, 684, 684, 684, 684, 687, 687, 687, 687, 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 687, 687, 687, 687, 687, 687, 684, 684, 684, 684, 687, 687, 687, 687, 687, 687, 687, 690, 690, 690, 690, 686, 682, 681, 681, 681, 684, 684, 684, 684, 684, 684, 684, 684, 687, 687, 687, 687, 685, 685, 681, 681, 680, 680, 680, 683, 683, 683, 682, 682, 682, 682, 683, 685, 685, 685, 681, 681, 681, 681, 679, 679, 679, 679, 679, 679, 679, 679, 679, 680, 680, 680, 679, 679, 679, 679, 681, 682, 682, 686, 688, 688, 688, 681, 681, 681, 681, 681, 683, 683, 683, 683, 683, 685, 685, 685, 677, 677, 677, 677, 679, 679, 679, 684, 685, 685, 685, 685, 685, 686, 686, 686, 686, 686, 686, 686, 685, 685, 685, 685, 685, 685, 685, 685, 686, 686, 686, 687, 687, 687, 687, 687, 689, 689, 689, 689, 689, 689, 688, 683, 683, 683, 683, 683, 686, 686, 689, 690, 690, 690, 690, 690, 687, 687, 689, 689, 692, 692, 692, 692, 692, 691, 689, 689, 691, 691, 691, 691, 691, 693, 693, 693, 693, 693, 695, 698, 698, 698, 697, 695, 695, 695, 695, 694, 694, 694, 696, 696, 696, 694, 694, 694, 694, 695, 695, 695, 695, 695, 690, 690, 697, 697, 697, 697, 698, 698, 699, 699, 699, 699, 699, 696, 696, 696, 696, 696, 702, 702, 702, 702, 701, 701, 701, 701, 701, 701, 701, 699, 697, 697, 697, 697, 697, 697, 698, 698, 698, 698, 698, 704, 704, 704, 704, 704, 704, 704, 700, 700, 700, 700, 700, 698, 698, 698, 700, 703, 703, 706, 706, 706, 706, 710, 710, 706, 706, 706, 706, 705, 704, 704, 704, 704, 704, 704, 710, 710, 704, 703, 703, 703, 703, 703, 705, 705, 705, 712, 712, 712, 711, 711, 706, 706, 709, 709, 706, 706, 709, 709, 707, 707, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 705, 705, 706, 709, 710, 711, 711, 711, 711, 711, 711, 711, 707, 707, 714, 715, 715, 715, 715, 715, 714, 714, 714, 714, 715, 715, 715, 717, 717, 717, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 715, 715, 715, 716, 719, 719, 717, 717, 717, 717, 723, 724, 735, 735, 722, 722, 722, 722, 725, 726, 726, 726, 724, 722, 722, 722, 728, 729, 729, 729, 729, 729, 729, 729, 729, 730, 733, 733, 733, 733, 733, 733, 732, 732, 732, 732, 731, 731, 731, 731, 731, 731, 733, 733, 733, 733, 734, 737, 737, 737, 737, 732, 732, 732, 732, 735, 745, 745, 747, 747, 747, 740, 740, 740, 740, 750, 750, 750, 747, 747, 746, 746, 746, 746, 736, 736, 739, 744, 744, 745, 745, 746, 748, 753, 753, 749, 747, 744, 743, 743, 746, 751, 751, 753, 753, 755, 755, 755, 755, 755, 755, 755, 755, 760, 760, 760, 757, 757, 762, 762, 762, 762, 762, 762, 760, 760, 760, 760, 760, 760, 760, 759, 759, 759, 763, 765, 766, 766, 766, 766, 766, 766, 766, 766, 774, 774, 774, 774, 774, 774, 772, 772, 772, 772, 772, 772, 772, 776, 776, 776, 776, 780, 780, 780, 778, 776, 776, 776, 776, 780, 780, 780, 786, 787, 787, 794, 795, 795, 795, 788, 788, 788, 788, 788, 788, 794, 798, 798, 806, 806, 806, 805, 796, 796, 796, 798, 800, 801, 801, 801, 799, 799, 799, 806, 809, 809, 809, 813, 813, 813, 815, 815, 815, 812, 812, 812, 818, 819, 821, 821, 822, 822, 823, 823, 823, 829, 837, 837, 834, 830, 830, 829, 829, 829, 832, 841, 841, 841, 841, 845, 845, 846, 846, 846, 845, 845, 846, 853, 853, 855, 856, 861, 863, 863, 863, 863, 863, 866, 866, 866, 876, 877, 881, 883, 883, 883, 881, 881, 881, 895, 895, 895, 895, 897, 901, 906, 906, 907, 909, 917, 920, 921, 926, 931, 933, 933, 937, 938, 938, 940, 944, 948, 948, 948, 948, 959, 963, 964, 964, 972, 974, 975, 978, 978, 980, 981, 993, 994, 1002, 1002, 1005, 1005, 1008, 1009, 1011, 1012, 1023, 1035, 1039, 1039, 1044, 1044, 1054, 1054, 1063, 1063, 1063, 1068, 1069, 1082, 1085, 1085, 1085, 1094, 1105, 1118, 1128, 1128, 1134, 1134, 1135, 1150, 1155, 1155, 1165, 1169, 1169, 1170, 1198, 1206, 1206, 1205, 1205, 1205, 1232, 1232, 1232, 1241, 1241, 1249, 1267, 1269, 1274, 1286, 1288, 1315, 1315, 1326, 1326, 1341, 1342, 1347, 1354, 1356, 1366, 1374, 1408, 1408, 1419, 1420, 1426, 1450, 1450, 1456, 1456, 1479, 1488, 1494, 1502, 1513, 1523, 1543, 1545, 1545, 1556, 1569, 1592, 1593, 1604, 1631, 1639, 1660, 1665, 1678, 1691, 1701, 1739, 1739, 1739, 1750, 1767, 1778, 1794, 1804, 1806, 1817, 1824, 1850, 1866, 1875, 1905, 1914, 1919, 1930, 1930, 1947, 1991, 1996, 2000, 2033, 2046, 2071, 2071, 2073, 2083, 2136, 2150, 2163, 2181, 2183, 2202, 2227, 2237, 2244, 2254, 2312, 2312, 2350, 2360, 2389, 2391, 2391, 2450, 2477, 2481, 2519, 2527, 2558, 2593, 2597, 2635, 2663, 2673, 2704, 2709, 2774, 2777, 2812, 2828, 2886, 2903, 2927, 2939, 2990, 3064, 3069, 3071, 3117, 3153, 3197, 3244, 3261, 3284, 3325, 3363, 3423, 3468, 3486, 3500, 3551, 3596, 3627, 3682, 3692, 3719, 3780, 3785, 3850, 3907, 3913, 3970, 4009, 4061, 4121, 4180, 4180, 4199, 4199, 4259, 4339, 4378, 4404, 4423, 4516, 4542, 4580, 4582, 4686, 4704, 4773, 4775, 4849, 4892, 4944, 4964, 5008, 5118, 5128, 5168, 5175, 5267, 5356, 5358, 5420, 5489, 5529, 5562, 5618, 5672, 5727, 5789, 5813, 5872, 5941, 5971, 6009, 6097, 6098, 6263, 6269, 6346, 6408, 6431, 6450, 6616, 7069, 7069, 7069, 6952, 6952, 6952, 6987, 7055, 7114, 7231, 7242, 7296, 7309, 7366, 7538, 7577, 7629, 7706, 7784, 7810, 7864, 7942, 7963, 8077, 8195, 8280, 8353, 8418, 8424, 8516, 8563, 8692, 8769, 8856, 8929, 9014, 9063, 9122, 9138, 9282, 9387, 9455, 9564, 9631, 9709, 9851, 9852, 9905, 10031, 10156, 10228, 10330, 10381, 10451, 10606, 10647, 10661, 10878, 10886, 11042, 11177, 11279, 11291, 11403, 11488, 11617, 11714, 11869, 11955, 12029, 12089, 12288, 12338, 12414, 12526, 12678, 12708, 12790, 12950, 13142, 13240, 13256, 13403, 13556, 13563, 13719, 13911, 13964, 14027, 14112, 14255, 14419, 828, 828, 851, 851, 826, 826, 826, 825, 825, 825, 829, 829, 829, 829, 818, 818, 818, 818, 820, 820, 820, 820, 818, 817, 817, 817, 816, 816, 816, 824, 824, 823, 823, 823, 823, 821, 818, 818, 818, 818, 818, 817, 813, 813, 813, 813, 813, 815, 815, 815, 815, 814, 812, 808, 808, 808, 812, 812, 812, 812, 807, 807, 807, 807, 808, 808, 808, 808, 808, 808, 815, 830, 830, 814, 806, 804, 800, 800, 799, 799, 799, 799, 809, 809, 809, 806, 806, 806, 806, 808, 808, 808, 807, 800, 800, 800, 802, 805, 805, 805, 805, 804, 804, 804, 804, 808, 811, 811, 810, 810, 810, 810, 810, 810, 812, 813, 812, 812, 812, 812, 811, 811, 811, 811, 811, 817, 819, 819, 817, 813, 812, 812, 813, 814, 814, 814, 814, 815, 816, 817, 817, 817, 817, 817, 817, 817, 817, 819, 819, 819, 819, 813, 813, 813, 816, 821, 821, 821, 819, 819, 819, 819, 819, 816, 816, 816, 819, 820, 820, 822, 826, 826, 827, 827, 827, 828, 828, 828, 826, 826, 826, 826, 832, 832, 832, 831, 821, 821, 830, 830, 830, 828, 827, 826, 826, 826, 833, 833, 833, 833, 838, 838, 840, 846, 846, 844, 833, 833, 828, 828, 828, 833, 835, 836, 836, 836, 836, 834, 834, 834, 834, 839, 839, 840, 840, 840, 843, 843, 843, 842, 842, 842, 842, 846, 846, 846, 846, 836, 836, 836, 836, 837, 837, 837, 837, 837, 837, 837, 843, 847, 848, 848, 848, 848, 848, 848, 848, 849, 854, 854, 854, 852, 848, 848, 848, 849, 855, 855, 855, 854, 852, 848, 848, 848, 850, 850, 850, 850, 852, 852, 854, 854, 854, 854, 854, 854, 856, 856, 856, 859, 859, 859, 859, 859, 851, 851, 851, 851, 860, 865, 865, 865, 865, 858, 858, 859, 862, 862, 862, 863, 863, 863, 853, 853, 853, 853, 862, 862, 862, 862, 862, 864, 867, 867, 866, 866, 866, 865, 865, 865, 867, 867, 867, 875, 1101, 1101, 869, 869, 867, 867, 861, 861, 863, 868, 870, 872, 872, 872, 876, 876, 876, 876, 878, 878, 878, 875, 875, 875, 875, 879, 880, 880, 880, 880, 880, 875, 875, 875, 873, 873, 885, 885, 885, 885, 885, 885, 885, 885, 888, 888, 888, 888, 881, 881, 881, 884, 891, 894, 908, 908, 897, 897, 897, 897, 897, 897, 896, 896, 898, 898, 898, 899, 899, 899, 896, 896, 896, 898, 906, 906, 906, 910, 915, 915, 915, 913, 911, 911, 913, 917, 917, 917, 918, 918, 918, 918, 919, 919, 919, 925, 926, 926, 926, 928, 928, 928, 928, 924, 924, 924, 926, 939, 939, 933, 931, 931, 931, 932, 934, 938, 940, 940, 940, 940, 940, 945, 945, 945, 945, 945, 945, 949, 949, 949, 949, 949, 949, 950, 955, 965, 965, 965, 965, 965, 960, 960, 960, 971, 971, 971, 963, 963, 963, 965, 965, 966, 966, 966, 966, 968, 971, 973, 973, 972, 968, 968, 968, 979, 979, 978, 978, 978, 978, 987, 987, 989, 989, 989, 983, 983, 983, 983, 984, 984, 985, 985, 989, 994, 997, 998, 998, 998, 1005, 1005, 1005, 1003, 1003, 1003, 1006, 1006, 1006, 1010, 1012, 1012, 1013, 1013, 1015, 1015, 1015, 1015, 1019, 1024, 1024, 1025, 1028, 1032, 1032, 1032, 1032, 1032, 1033, 1033, 1033, 1038, 1047, 1047, 1046, 1047, 1047, 1047, 1052, 1052, 1056, 1056, 1056, 1056, 1056, 1056, 1075, 1075, 1075, 1074, 1074, 1074, 1084, 1084, 1090, 1090, 1090, 1089, 1089, 1089, 1093, 1101, 1132, 1132, 1109, 1109, 1109, 1147, 1147, 1146, 1112, 1112, 1112, 1119, 1130, 1132, 1132, 1136, 1134, 1142, 1142, 1142, 1142, 1144, 1160, 1160, 1164, 1172, 1172, 1172, 1165, 1164, 1173, 1177, 1180, 1180, 1186, 1197, 1197, 1202, 1202, 1214, 1214, 1218, 1228, 1228, 1229, 1229, 1230, 1240, 1245, 1258, 1289, 1293, 1293, 1293, 1293, 1289, 1289, 1289, 1289, 1292, 1298, 1310, 1310, 1317, 1324, 1338, 1342, 1342, 1346, 1346, 1355, 1355, 1374, 1374, 1374, 1387, 1389, 1405, 1405, 1405, 1429, 1431, 1440, 1440, 1440, 1459, 1471, 1475, 1482, 1486, 1489, 1502, 1529, 1529, 1529, 1542, 1634, 1634, 1589, 1589, 1589, 1589, 1603, 1609, 1620, 1633, 1644, 1644, 1670, 1673, 1695, 1696, 1704, 1704, 1731, 1733, 1763, 1763, 1777, 1787, 1791, 1809, 1814, 1828, 1858, 1859, 1877, 1893, 1898, 1900, 1917, 1933, 1969, 1970, 1990, 1992, 2027, 2055, 2111, 2114, 2114, 2114, 2114, 2114, 2147, 2159, 2163, 2189, 2189, 2219, 2242, 2256, 2284, 2288, 2301, 2356, 2367, 2389, 2441, 2441, 2453, 2453, 2478, 2490, 2519, 2533, 2567, 2583, 2589, 2630, 2644, 2645, 2674, 2733, 2748, 2772, 2780, 2812, 2872, 2877, 2894, 2932, 2944, 2964, 2993, 3040, 3096, 3113, 3125, 3130, 3161, 3204, 3217, 3275, 3307, 3317, 3352, 3382, 3400, 3464, 3498, 3508, 3558, 3586, 3590, 3637, 3672, 3742, 3821, 3821, 3833, 3833, 3895, 3924, 3928, 3989, 4025, 4058, 4112, 4143, 4153, 4202, 4251, 4288, 4355, 4394, 4394, 4462, 4469, 4471, 4536, 4592, 4645, 4701, 4731, 4797, 4806, 4888, 4915, 4943, 4977, 5057, 5102, 5161, 5223, 5255, 5292, 5386, 5399, 5505, 5534, 5615, 5674, 5741, 5762, 5856, 5920, 6016, 6049, 6124, 6200, 6296, 6307, 6417, 6476, 6581, 6711, 6733, 6831, 6890, 6921, 7033, 7180, 7234, 7295, 7372, 7478, 7593, 7718, 7752, 7886, 7968, 8047, 8084, 8253, 8307, 8386, 8445, 8500, 8652, 8776, 8816, 8949, 9010, 9118, 9198, 9329, 9394, 9527, 9614, 9666, 9797, 9875, 9983, 10008, 10197, 10270, 10428, 10503, 10672, 10681, 10821, 10940, 11021, 11157, 11186, 11416, 11501, 11560, 11756, 11768, 11907, 12090, 12233, 12242, 12459, 12513, 12606, 12863, 12863, 12959, 13173, 13233, 13316, 13502, 13593, 13704, 13790, 13963, 14031, 14263, 14380, 14504, 14684, 14778, 15165, 15165, 15301, 15466, 15474, 15719, 15775, 15929, 15991, 16132, 16339, 16516, 16732, 16898, 16914, 17090, 17178, 17284, 17664, 17755, 17893, 18094, 18227, 18344, 18474, 18650, 18733, 19017, 19122, 19352, 19459, 19711, 19818, 19932, 20133, 20253, 20571, 20693, 20915, 21093, 21157, 21249, 21437, 21640, 21852, 22113, 22635, 22748, 22748, 22823, 22868, 23171, 23470, 23651, 23827, 24001, 24257, 24399, 24566, 24845, 25078, 25414, 25582, 25787, 25913, 26151, 26376, 26543, 26767, 26968, 27204, 27457, 27670, 27859, 28141, 28388, 28439, 28752, 29112, 29291, 29522, 29819, 30054, 30322, 30510, 30797, 30962, 31063, 31353, 31610, 31912, 32174, 32509, 32750, 33016, 1128, 1110, 1100, 1100, 1095, 1095, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1092, 1092, 1092, 1092, 1091, 1078, 1077, 1077, 1082, 1082, 1082, 1078, 1078, 1078, 1080, 1080, 1080, 1080, 1080, 1078, 1079, 1077, 1077, 1074, 1068, 1068, 1068, 1086, 1102, 1102, 1081, 1068, 1068, 1068, 1068, 1073, 1147, 1167, 1167, 1095, 1059, 1057, 1057, 1057, 1060, 1060, 1060, 1060, 1057, 1053, 1053, 1053, 1051, 1051, 1051, 1051, 1049, 1049, 1049, 1049, 1047, 1047, 1047, 1047, 1045, 1045, 1045, 1045, 1044, 1044, 1044, 1044, 1048, 1048, 1048, 1043, 1043, 1043, 1041, 1041, 1041, 1041, 1045, 1049, 1051, 1051, 1050, 1050, 1046, 1042, 1041, 1041, 1041, 1041, 1047, 1047, 1047, 1047, 1047, 1056, 1057, 1057, 1057, 1057, 1057, 1048, 1048, 1060, 1060, 1048, 1048, 1056, 1059, 1059, 1059, 1059, 1065, 1065, 1065, 1065, 1062, 1062, 1062, 1062, 1062, 1062, 1063, 1063, 1063, 1063, 1062, 1062, 1062, 1062, 1066, 1067, 1070, 1070, 1074, 1074, 1074, 1070, 1070, 1070, 1077, 1081, 1081, 1081, 1081, 1077, 1077, 1077, 1083, 1083, 1084, 1084, 1084, 1080, 1080, 1080, 1086, 1090, 1090, 1090, 1090, 1090, 1091, 1091, 1093, 1093, 1093, 1092, 1090, 1090, 1090, 1100, 1101, 1101, 1101, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1100, 1103, 1108, 1110, 1110, 1107, 1107, 1107, 1107, 1111, 1111, 1111, 1112, 1112, 1109, 1105, 1105, 1107, 1111, 1115, 1115, 1115, 1115, 1119, 1119, 1119, 1119, 1116, 1113, 1113, 1116, 1124, 1126, 1129, 1129, 1129, 1129, 1129, 1129, 1122, 1122, 1122, 1120, 1120, 1120, 1129, 1130, 1130, 1130, 1137, 1137, 1127, 1127, 1129, 1130, 1136, 1141, 1141, 1141, 1142, 1142, 1142, 1141, 1140, 1140, 1138, 1138, 1138, 1138, 1138, 1144, 1144, 1144, 1144, 1150, 1150, 1147, 1146, 1146, 1146, 1146, 1152, 1158, 1158, 1158, 1158, 1158, 1158, 1156, 1156, 1156, 1156, 1154, 1154, 1154, 1159, 1162, 1162, 1162, 1162, 1162, 1159, 1159, 1156, 1156, 1156, 1162, 1162, 1162, 1162, 1166, 1172, 1172, 1172, 1171, 1169, 1169, 1170, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1175, 1175, 1175, 1175, 1176, 1176, 1177, 1177, 1177, 1177, 1177, 1178, 1178, 1178, 1179, 1180, 1180, 1180, 1180, 1180, 1183, 1187, 1187, 1187, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1198, 1198, 1198, 1200, 1204, 1204, 1200, 1199, 1199, 1199, 1199, 1206, 1206, 1206, 1206, 1208, 1208, 1208, 1212, 1220, 1230, 1230, 1210, 1210, 1210, 1210, 1216, 1216, 1216, 1216, 1216, 1221, 1224, 1224, 1224, 1227, 1231, 1231, 1231, 1231, 1231, 1233, 1233, 1234, 1239, 1239, 1243, 1250, 1251, 1251, 1255, 1255, 1255, 1255, 1257, 1258, 1259, 1259, 1259, 1275, 1275, 1275, 1273, 1269, 1269, 1269, 1269, 1278, 1280, 1282, 1282, 1282, 1299, 1299, 1299, 1299, 1296, 1296, 1296, 1296, 1308, 1308, 1313, 1314, 1318, 1318, 1318, 1319, 1319, 1319, 1317, 1315, 1315, 1316, 1316, 1316, 1320, 1320, 1320, 1320, 1342, 1342, 1340, 1340, 1341, 1343, 1345, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1367, 1373, 1373, 1376, 1376, 1376, 1376, 1378, 1380, 1385, 1385, 1385, 1385, 1398, 1398, 1400, 1400, 1400, 1400, 1400, 1400, 1398, 1394, 1394, 1399, 1414, 1428, 1428, 1436, 1436, 1436, 1436, 1436, 1438, 1441, 1441, 1448, 1448, 1455, 1458, 1458, 1458, 1458, 1458, 1461, 1463, 1474, 1474, 1474, 1474, 1474, 1484, 1492, 1492, 1492, 1495, 1501, 1505, 1505, 1505, 1505, 1505, 1505, 1513, 1514, 1516, 1527, 1529, 1543, 1547, 1551, 1551, 1551, 1562, 1562, 1562, 1571, 1573, 1574, 1580, 1586, 1588, 1588, 1594, 1595, 1608, 1610, 1612, 1626, 1627, 1629, 1629, 1629, 1629, 1646, 1646, 1655, 1666, 1666, 1671, 1674, 1683, 1683, 1683, 1683, 1698, 1704, 1705, 1709, 1710, 1710, 1737, 1741, 1741, 1752, 1759, 1760, 1768, 1787, 1793, 1797, 1797, 1817, 1818, 1819, 1822, 1837, 1845, 1850, 1850, 1850, 1880, 1887, 1891, 1900, 1900, 1903, 1908, 1923, 1931, 1948, 1955, 1973, 1992, 1993, 1995, 2001, 2001, 2034, 2047, 2076, 2083, 2083, 2089, 2094, 2100, 2130, 2160, 2160, 2184, 2184, 2184, 2204, 2205, 2205, 2218, 2247, 2261, 2269, 2273, 2306, 2317, 2319, 2338, 2371, 2388, 2394, 2402, 2421, 2438, 2467, 2467, 2486, 2517, 2547, 2549, 2555, 2567, 2612, 2612, 2627, 2627, 2668, 2705, 2722, 2729, 2742, 2769, 2783, 2822, 2831, 2869, 2871, 2896, 2916, 2934, 2993, 3010, 3013, 3054, 3082, 3090, 3125, 3152, 3187, 3210, 3224, 3236, 3251, 3298, 3320, 3363, 3395, 3424, 3460, 3483, 3534, 3549, 3566, 3634, 3675, 3705, 3734, 3746, 3776, 3805, 3830, 3881, 3893, 3956, 3973, 4027, 4028, 4121, 4165, 4207, 4221, 4243, 4310, 4369, 4379, 4439, 4488, 4546, 4573, 4580, 4611, 4684, 4775, 4776, 4841, 4877, 4949, 4991, 5054, 5086, 5129, 5183, 5231, 5295, 5340, 5393, 5469, 5480, 5575, 5638, 5683, 5741, 5765, 5855, 5895, 5975, 6025, 6159, 6175, 6259, 6288, 6375, 6395, 6509, 6589, 6593, 6704, 6796, 6840, 6913, 6977, 7039, 7108, 7186, 7272, 7357, 7388, 7520, 7557, 7651, 7752, 7818, 7901, 7964, 8227, 8227, 8313, 8313, 8417, 8477, 8528, 8666, 8742, 8826, 8862, 8996, 9037, 9077, 9235, 9280, 9442, 9460, 9546, 9631, 9748, 9850, 9960, 10005, 10197, 10335, 10428, 10428, 10579, 10679, 10706, 10915, 10971, 11087, 11184, 11268, 11464, 11544, 11725, 11815, 11950, 12013, 12213, 12318, 12458, 12648, 12785, 12867, 13057, 13207, 13362, 13443, 13609, 13809, 13969, 14212, 14375, 14566, 14706, 14982, 15115, 15282, 15522, 15700, 15973, 16113, 16184, 16534, 16651, 16934, 17006, 17381, 17564, 17695, 17900, 18103, 18362, 18561, 18755, 18864, 19122, 19394, 19530, 19789, 19984, 20250, 20374, 20496, 20701, 21017, 21314, 21380, 21688, 21825, 22053, 22280, 22553, 22765, 23048, 23203, 23451, 23612, 23841, 24163, 24402, 24675, 24849, 25240, 25436, 25568, 25897, 26159, 26484, 26630, 26894, 27079, 27406, 27556, 27878, 28136, 28399, 28706, 28864, 29164, 29377, 29671, 30071, 30297, 30594, 30905, 31124, 31395, 31604, 31858, 32236, 32624, 33033, 33260, 33459, 33678, 33919, 34317, 34633, 35133, 35387, 35758, 35896, 36141, 36499, 36908, 37266, 37794, 38078, 38166, 38513, 38817, 39220, 39698, 40054, 40420, 40750, 40964, 41240, 41606, 41927, 42415, 42612, 43225, 43456, 43794, 44030, 44334, 44829, 45115, 45537, 46061, 46667, 46836, 47302, 47406, 47690, 48030, 48588, 48888, 50178, 50184, 50548, 50664, 51076, 51283, 51911, 52389, 52911, 53395, 53808, 53994, 54470, 54877, 55414, 55813, 56408, 57003, 57484, 57835, 58209, 58802, 59002, 59588, 60062, 60470, 61322, 61640, 61998, 62586, 62926, 63174, 63589, 63756, 64176, 64529, 64657, 64657, 64806, 64933, 65028, 65219, 65254, 65254, 65257, 65257, 65261, 65261, 65261, 65261, 1612, 1600, 1594, 1592, 1591, 1591, 1591, 1589, 1581, 1581, 1575, 1575, 1567, 1566, 1566, 1557, 1557, 1557, 1557, 1558, 1564, 1564, 1562, 1560, 1558, 1557, 1553, 1553, 1549, 1549, 1549, 1549, 1551, 1551, 1535, 1535, 1534, 1534, 1534, 1525, 1525, 1525, 1525, 1525, 1525, 1523, 1523, 1523, 1523, 1523, 1524, 1526, 1526, 1526, 1535, 1535, 1518, 1517, 1508, 1503, 1503, 1503, 1505, 1505, 1507, 1507, 1507, 1507, 1507, 1507, 1501, 1501, 1501, 1501, 1505, 1505, 1679, 1679, 1679, 1482, 1482, 1482, 1487, 1487, 1490, 1490, 1490, 1497, 1497, 1496, 1496, 1498, 1499, 1499, 1499, 1501, 1501, 1498, 1491, 1488, 1488, 1488, 1488, 1488, 1488, 1489, 1493, 1493, 1493, 1493, 1493, 1493, 1502, 1503, 1503, 1503, 1506, 1506, 1489, 1489, 1489, 1496, 1509, 1515, 1515, 1511, 1509, 1505, 1503, 1503, 1512, 1519, 1519, 1519, 1519, 1521, 1521, 1521, 1522, 1523, 1523, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1532, 1534, 1534, 1534, 1534, 1534, 1545, 1545, 1545, 1545, 1547, 1562, 1562, 1562, 1562, 1562, 1555, 1553, 1553, 1553, 1558, 1569, 1569, 1569, 1569, 1566, 1566, 1559, 1559, 1571, 1571, 1571, 1571, 1574, 1588, 1590, 1607, 1607, 1607, 1583, 1583, 1583, 1583, 1592, 1610, 1611, 1692, 1692, 1642, 1618, 1616, 1603, 1601, 1601, 1601, 1601, 1610, 1610, 1613, 1613, 1610, 1610, 1617, 1617, 1614, 1614, 1625, 1625, 1625, 1622, 1622, 1622, 1619, 1619, 1619, 1619, 1620, 1620, 1627, 1641, 1641, 1641, 1638, 1635, 1625, 1620, 1620, 1626, 1637, 1637, 1649, 1649, 1649, 1646, 1646, 1644, 1644, 1647, 1654, 1659, 1660, 1660, 1660, 1654, 1654, 1654, 1660, 1660, 1662, 1662, 1664, 1664, 1670, 1670, 1670, 1670, 1669, 1669, 1669, 1670, 1670, 1676, 1676, 1678, 1685, 1685, 1686, 1687, 1688, 1688, 1688, 1688, 1683, 1681, 1681, 1683, 1687, 1690, 1690, 1690, 1690, 1695, 1695, 1697, 1699, 1699, 1708, 1708, 1708, 1712, 1731, 1733, 1731, 1727, 1723, 1723, 1719, 1719, 1719, 1722, 1722, 1722, 1721, 1721, 1715, 1715, 1715, 1718, 1732, 1736, 1736, 1745, 1745, 1745, 1744, 1744, 1740, 1732, 1732, 1732, 1732, 1741, 1744, 1750, 1750, 1747, 1747, 1747, 1747, 1744, 1744, 1744, 1748, 1766, 1770, 1770, 1770, 1763, 1758, 1758, 1758, 1770, 1780, 1780, 1780, 1780, 1776, 1776, 1776, 1776, 1776, 1782, 1782, 1783, 1783, 1785, 1785, 1784, 1780, 1780, 1787, 1841, 1841, 1837, 1821, 1805, 1805, 1800, 1790, 1790, 1803, 1812, 1818, 1826, 1828, 1828, 1829, 1831, 1833, 1833, 1835, 1839, 1853, 1853, 1835, 1835, 1851, 1855, 1855, 1857, 1859, 1860, 1867, 1867, 1867, 1867, 1870, 1872, 1874, 1890, 1891, 1896, 1897, 1897, 1897, 1897, 1904, 1908, 1922, 1927, 1927, 1927, 1927, 1928, 1936, 1939, 1953, 1953, 1954, 1954, 1954, 1959, 1963, 1964, 1968, 1970, 1975, 1975, 1984, 1989, 1998, 1998, 2002, 2002, 2009, 2009, 2017, 2017, 2017, 2017, 2035, 2035, 2035, 2036, 2036, 2045, 2048, 2057, 2065, 2065, 2065, 2065, 2073, 2084, 2085, 2098, 2114, 2114, 2106, 2106, 2115, 2121, 2124, 2135, 2394, 2394, 2394, 2394, 2334, 2200, 2133, 2133, 2133, 2134, 2162, 2163, 2168, 2168, 2168, 2172, 2172, 2172, 2201, 2207, 2207, 2211, 2211, 2211, 2205, 2205, 2209, 2219, 2245, 2251, 2251, 2251, 2251, 2260, 2260, 2260, 2268, 2279, 2279, 2279, 2279, 2282, 2301, 2308, 2308, 2308, 2329, 2329, 2329, 2329, 2331, 2353, 2353, 2377, 2381, 2391, 2391, 2392, 2392, 2392, 2392, 2396, 2422, 2471, 2569, 2569, 2484, 2483, 2456, 2456, 2456, 2483, 2510, 2510, 2510, 2510, 2513, 2521, 2530, 2535, 2541, 2552, 2554, 2584, 2599, 2601, 2625, 2625, 2625, 2625, 2627, 2631, 2671, 2671, 2674, 2688, 2698, 2707, 2715, 2715, 2749, 2769, 2769, 2774, 2808, 2821, 2821, 2846, 2864, 2864, 2867, 2883, 2908, 2924, 2927, 2927, 2927, 2963, 2994, 2998, 3007, 3019, 3021, 3074, 3074, 3078, 3089, 3108, 3138, 3146, 3167, 3174, 3206, 3237, 3246, 3249, 3271, 3273, 3313, 3326, 3349, 3373, 3378, 3393, 3422, 3457, 3468, 3469, 3505, 3528, 3573, 3592, 3605, 3669, 3672, 3723, 3752, 3754, 3780, 3804, 3810, 3842, 3865, 3906, 3943, 3958, 3983, 4026, 4050, 4081, 4121, 4159, 4191, 4209, 4238, 4300, 4329, 4349, 4359, 4376, 4465, 4503, 4504, 4600, 4603, 4604, 4695, 4722, 4722, 4805, 4826, 4917, 4923, 4972, 4979, 5043, 5082, 5169, 5176, 5211, 5268, 5284, 5381, 5427, 5483, 5510, 5566, 5627, 5692, 5724, 5813, 5854, 5890, 5922, 5979, 6064, 6134, 6151, 6243, 6319, 6337, 6435, 6478, 6517, 6628, 6682, 6737, 6797, 6864, 6902, 7026, 7073, 7136, 7261, 7310, 7389, 7504, 7511, 7644, 7676, 7706, 7824, 7911, 8027, 8134, 8218, 8344, 8445, 8445, 8531, 8534, 8714, 8808, 8890, 9002, 9108, 9133, 9247, 9380, 9454, 9532, 9630, 9705, 10103, 10103, 10103, 10292, 10308, 10432, 10492, 10683, 10828, 10886, 10972, 11147, 11229, 11353, 11491, 11681, 11752, 11852, 12027, 12086, 12286, 12460, 12602, 12729, 12843, 13004, 13036, 13246, 13424, 13532, 13655, 13811, 13981, 14156, 14305, 14475, 14591, 14788, 14898, 15063, 15261, 15429, 15539, 15699, 16022, 16103, 16314, 16427, 16594, 16754, 17032, 17123, 17298, 17562, 17693, 17890, 18096, 18226, 18377, 18727, 18799, 18952, 19130, 19358, 19516, 19705, 19912, 20138, 20361, 20544, 20695, 20936, 21038, 21289, 21641, 21644, 21960, 22132, 22355, 22609, 22783, 23050, 23273, 23539, 23738, 23964, 24221, 24416, 24757, 25005, 25321, 25528, 25688, 26113, 26313, 26520, 26905, 27198, 27465, 27774, 28110, 28380, 28739, 29152, 29540, 29744, 30208, 30434, 30830, 31293, 31650, 32095, 32467, 32884, 33199, 33728, 34005, 34610, 34946, 35440, 35859, 36202, 36692, 37153, 37599, 38125, 38965, 39221, 39366, 39842, 40243, 40769, 41211, 41504, 42094, 42366, 42986, 43377, 43857, 44404, 44910, 45168, 45790, 46247, 46739, 47287, 47598, 48309, 48607, 49150, 49634, 50181, 50567, 51151, 51477, 52065, 52589, 53194, 53579, 54134, 54500, 55071, 55676, 56223, 56767, 57257, 57822, 58460, 58685, 59498, 60025, 60564, 60964, 61466, 62166, 62672, 63139, 63412, 63793, 64132, 64401, 64554, 64697, 64814, 64992, 65107, 65222, 65232, 65263, 65263, 65263, 65272, 65276, 65276, 65276, 65276, 65276, 65276, 65288, 65288, 65288, 65288, 65289, 65290, 65290, 65313, 65315, 65315, 65322, 65322, 65322, 65324, 65329, 65329, 65329, 65329, 65329, 65329, 65329, 65343, 65344, 65344, 65344, 65344, 65343, 65343, 65343, 65342, 65342, 65346, 65356, 65356, 65356, 65356, 65356, 65356, 65356, 65352, 65351, 65348, 65348, 65348, 65348, 65348, 65340, 65340, 65340, 65309, 65300, 65293, 65293, 65293, 65293, 65306, 65319, 65323, 65327, 65340, 65340, 65338, 65338, 65338, 65304, 65304, 65299, 65299, 65299, 65291, 65291, 65291, 65291, 65291, 65291, 65285, 65282, 65280, 65280, 65280, 65272, 65272, 65275, 65283, 65287, 65287, 65282, 65267, 65267, 65267, 2490, 2490, 2490, 2490, 2490, 2479, 2467, 2462, 2459, 2458, 2444, 2444, 2444, 2437, 2437, 2436, 2434, 2421, 2421, 2421, 2421, 2414, 2406, 2406, 2401, 2401, 2401, 2386, 2386, 2386, 2387, 2387, 2387, 2377, 2364, 2364, 2364, 2361, 2361, 2358, 2348, 2348, 2354, 2354, 2354, 2354, 2340, 2340, 2340, 2333, 2322, 2322, 2322, 2328, 2328, 2328, 2318, 2313, 2313, 2313, 2313, 2307, 2307, 2307, 2307, 2307, 2307, 2297, 2297, 2297, 2297, 2297, 2281, 2281, 2282, 2288, 2288, 2288, 2288, 2288, 2289, 2290, 2294, 2298, 2296, 2285, 2278, 2278, 2278, 2278, 2282, 2282, 2283, 2283, 2292, 2292, 2292, 2292, 2292, 2306, 2306, 2306, 2306, 2298, 2298, 2298, 2318, 2318, 2318, 2318, 2321, 2321, 2321, 2321, 2316, 2316, 2316, 2324, 2324, 2324, 2324, 2320, 2320, 2323, 2332, 2336, 2338, 2338, 2343, 2344, 2344, 2344, 2341, 2341, 2341, 2347, 2347, 2347, 2353, 2353, 2365, 2365, 2372, 2381, 2381, 2386, 2392, 2392, 2388, 2381, 2374, 2374, 2382, 2386, 2390, 2390, 2394, 2397, 2397, 2397, 2405, 2411, 2415, 2419, 2419, 2417, 2416, 2416, 2416, 2416, 2416, 2419, 2427, 2427, 2435, 2435, 2435, 2438, 2439, 2454, 2455, 2455, 2455, 2455, 2455, 2458, 2464, 2465, 2468, 2470, 2470, 2470, 2489, 2491, 2499, 2499, 2499, 2499, 2499, 2496, 2496, 2496, 2504, 2504, 2504, 2507, 2507, 2507, 2521, 2521, 2521, 2520, 2520, 2520, 2524, 2539, 2539, 2539, 2539, 2536, 2535, 2534, 2534, 2534, 2542, 2542, 2542, 2560, 2560, 2560, 2560, 2560, 2560, 2557, 2557, 2558, 2558, 2565, 2565, 2584, 2584, 2584, 2586, 2589, 2598, 2598, 2608, 2608, 2608, 2608, 2608, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2618, 2624, 2624, 2626, 2640, 2644, 2637, 2637, 2637, 2637, 2637, 2645, 2645, 2656, 2656, 2656, 2658, 2675, 2694, 2694, 2677, 2677, 2677, 2677, 2681, 2681, 2681, 2697, 2697, 2697, 2685, 2685, 2685, 2698, 2702, 2702, 2700, 2697, 2697, 2703, 2703, 2704, 2711, 2711, 2711, 2711, 2717, 2717, 2719, 2719, 2719, 2727, 2731, 2756, 2756, 2756, 2758, 2759, 2760, 2760, 2760, 2760, 2759, 2757, 2757, 2757, 2757, 2757, 2757, 2769, 2769, 2769, 2769, 2773, 2773, 2773, 2773, 2772, 2772, 2781, 2830, 2920, 2920, 2835, 2791, 2791, 2791, 2791, 2807, 2814, 2814, 2829, 2832, 2832, 2832, 2832, 2832, 2839, 2839, 2834, 2833, 2833, 2833, 2835, 2839, 2840, 2849, 2861, 2861, 2861, 2861, 2864, 2866, 2868, 2870, 2873, 2873, 2890, 2890, 2898, 2904, 2904, 2904, 2915, 2928, 2928, 2929, 2929, 2941, 2941, 2941, 2941, 2951, 2966, 2966, 2978, 2986, 2986, 2987, 3001, 3015, 3018, 3024, 3026, 3023, 3028, 3031, 3035, 3056, 3060, 3060, 3073, 3082, 3082, 3092, 3106, 3106, 3111, 3111, 3114, 3136, 3138, 3139, 3141, 3141, 3141, 3149, 3181, 3181, 3181, 3181, 3188, 3191, 3213, 3213, 3213, 3230, 3231, 3231, 3248, 3260, 3271, 3279, 3293, 3303, 3303, 3303, 3303, 3303, 3303, 3328, 3350, 3354, 3378, 3378, 3387, 3387, 3387, 3391, 3387, 3397, 3420, 3424, 3424, 3428, 3428, 3434, 3463, 3466, 3474, 3482, 3504, 3505, 3505, 3516, 3516, 3527, 3556, 3561, 3563, 3568, 3577, 3577, 3590, 3598, 3622, 3622, 3625, 3626, 3626, 3626, 3645, 3651, 3657, 3678, 3691, 3691, 3703, 3703, 3714, 3743, 3763, 3763, 3783, 3783, 3791, 3798, 3798, 3798, 3824, 3844, 3851, 3872, 3897, 3897, 3897, 3919, 3930, 3951, 3951, 3973, 3984, 3989, 3998, 4002, 4027, 4037, 4058, 4067, 4086, 4092, 4092, 4092, 4161, 4161, 4172, 4173, 4196, 4211, 4222, 4231, 4236, 4281, 4284, 4314, 4314, 4314, 4378, 4378, 4386, 4437, 4442, 4446, 4446, 4488, 4520, 4532, 4532, 4549, 4578, 4642, 4644, 4701, 4703, 4703, 4727, 4737, 4778, 4807, 4828, 4840, 4897, 4897, 4904, 4947, 4986, 5008, 5029, 5064, 5089, 5134, 5164, 5191, 5229, 5239, 5260, 5283, 5323, 5371, 5377, 5458, 5467, 5503, 5528, 5537, 5601, 5647, 5654, 5702, 5741, 5794, 5823, 5860, 5912, 5936, 5964, 6014, 6032, 6072, 6197, 6202, 6252, 6253, 6372, 6377, 6398, 6436, 6505, 6589, 6606, 6667, 6721, 6781, 6805, 6884, 6971, 6980, 7004, 7111, 7154, 7211, 7273, 7330, 7435, 7466, 7471, 7574, 7683, 7747, 7844, 7849, 7978, 8029, 8086, 8253, 8286, 8333, 8385, 8438, 8520, 8628, 8684, 8773, 8871, 8983, 9084, 9105, 9311, 9336, 9429, 9472, 9605, 9679, 9810, 9897, 9999, 10098, 10150, 10297, 10379, 10498, 10551, 10671, 10762, 10855, 10958, 11097, 11193, 11350, 11502, 11598, 11631, 11774, 11944, 12038, 12194, 12400, 12428, 12497, 12737, 12848, 13018, 13134, 13296, 13437, 13526, 13691, 13809, 13966, 14194, 14257, 14494, 14567, 14801, 14939, 15133, 15246, 15478, 15630, 15798, 15986, 16134, 16301, 16421, 16669, 16824, 17088, 17147, 17444, 17543, 17879, 17963, 18191, 18363, 18583, 18845, 19035, 19358, 19481, 19537, 19886, 20130, 20298, 20483, 20704, 21015, 21171, 21444, 21706, 21898, 22217, 22430, 22750, 22790, 23182, 23441, 23636, 24008, 24203, 24524, 24673, 24978, 25313, 25577, 25903, 26164, 26439, 26760, 27086, 27405, 27597, 27949, 28235, 28592, 28976, 29202, 29604, 29773, 30281, 30597, 30948, 31278, 31723, 31955, 32216, 32669, 32898, 33389, 33640, 34041, 34427, 34774, 35090, 35514, 35996, 36294, 36638, 37095, 37522, 37896, 38233, 38640, 39166, 39514, 39839, 40286, 40672, 41168, 41389, 42008, 42402, 42775, 43174, 43694, 43922, 44395, 44941, 45259, 45723, 46030, 46650, 47005, 47413, 47898, 48267, 48766, 49446, 49841, 50379, 50871, 51408, 51925, 52436, 52930, 53531, 54116, 54569, 55124, 55753, 56387, 56805, 57517, 57972, 58530, 59556, 59838, 60826, 61274, 62094, 62702, 63330, 63657, 64007, 64512, 64687, 64868, 65072, 65276, 65281, 65288, 65302, 65303, 65303, 65303, 65303, 65310, 65314, 65319, 65320, 65320, 65330, 65346, 65346, 65346, 65346, 65345, 65336, 65336, 65356, 65359, 65359, 65359, 65367, 65367, 65375, 65375, 65375, 65375, 65371, 65371, 65371, 65389, 65389, 65389, 65389, 65378, 65378, 65368, 65366, 65366, 65366, 65357, 65349, 65346, 65314, 65311, 65311, 65313, 65314, 65322, 65355, 65361, 65361, 65342, 65342, 65342, 65336, 65309, 65309, 65308, 65298, 65285, 65273, 65273, 65273, 65273, 65273, 65273, 65275, 65275, 65277, 65288, 65292, 65292, 65282, 65278, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65268, 65277, 65277, 65286, 65286, 65286, 65271, 65271, 65271, 65282, 65282, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65300, 65300, 65300, 65300, 65285, 65285, 65285, 65285, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65281, 65281, 65281, 65281, 65281, 65281, 65294, 65294, 65294, 65294, 65294, 65294, 65292, 65292, 65292, 65292, 65280, 65275, 65275, 65275, 65283, 65283, 65283, 65301, 65301, 65301, 65301, 65298, 65293, 65293, 65293, 65291, 65291, 65291, 65292, 65292, 65292, 65292, 65316, 65316, 65290, 65288, 65288, 65288, 4157, 4056, 3990, 3990, 3990, 3994, 3994, 3994, 3951, 3942, 3938, 3924, 3924, 3924, 3915, 3915, 3905, 3905, 3905, 3888, 3878, 3877, 3877, 3872, 3861, 3861, 3850, 3832, 3826, 3824, 3824, 3827, 3827, 3822, 3822, 3822, 3798, 3798, 3790, 3776, 3776, 3776, 3776, 3783, 3783, 3776, 3776, 3776, 3776, 3765, 3765, 3756, 3747, 3736, 3736, 3736, 3730, 3730, 3730, 3715, 3715, 3715, 3716, 3716, 3716, 3715, 3715, 3699, 3699, 3699, 3699, 3692, 3691, 3691, 3691, 3684, 3684, 3683, 3678, 3678, 3678, 3666, 3662, 3662, 3668, 3673, 3673, 3673, 3673, 3667, 3667, 3667, 3667, 3667, 3676, 3688, 3688, 3688, 3688, 3688, 3688, 3690, 3690, 3690, 3690, 3690, 3690, 3709, 3709, 3709, 3709, 3709, 3709, 3726, 3726, 3726, 3729, 3731, 3738, 3738, 3738, 3751, 3751, 3753, 3762, 3762, 3762, 3762, 3762, 3763, 3763, 3784, 3784, 3786, 3786, 3786, 3786, 3786, 3796, 3796, 3796, 3796, 3796, 3807, 3809, 3821, 3824, 3824, 3824, 3836, 3836, 3836, 3836, 3848, 3868, 3869, 3871, 3871, 3871, 3876, 3876, 3888, 3888, 3888, 3907, 3923, 3936, 3942, 3945, 3946, 3948, 3949, 3948, 3948, 3948, 3948, 3962, 3967, 3967, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 4009, 4024, 4024, 4024, 4024, 4025, 4025, 4025, 4047, 4047, 4043, 4044, 4044, 4046, 4055, 4055, 4068, 4082, 4082, 4082, 4082, 4082, 4098, 4112, 4112, 4106, 4106, 4106, 4110, 4118, 4150, 4150, 4150, 4137, 4137, 4137, 4140, 4157, 4172, 4174, 4174, 4174, 4207, 4207, 4181, 4181, 4181, 4191, 4205, 4209, 4209, 4209, 4209, 4224, 4229, 4232, 4235, 4238, 4244, 4244, 4259, 4259, 4259, 4246, 4246, 4246, 4246, 4262, 4272, 4273, 4274, 4276, 4276, 4276, 4276, 4276, 4295, 4312, 4312, 4312, 4312, 4312, 4302, 4302, 4322, 4322, 4322, 4344, 4349, 4357, 4357, 4359, 4359, 4359, 4378, 4379, 4379, 4379, 4400, 4400, 4400, 4391, 4391, 4391, 4394, 4402, 4417, 4418, 4423, 4423, 4433, 4453, 4453, 4453, 4453, 4453, 4453, 4455, 4456, 4456, 4459, 4477, 4491, 4494, 4494, 4494, 4494, 4494, 4494, 4494, 4516, 4516, 4516, 4515, 4515, 4517, 4517, 4525, 4525, 4545, 4545, 4553, 4553, 4564, 4564, 4567, 4567, 4567, 4572, 4575, 4580, 4580, 4586, 4586, 4586, 4586, 4601, 4603, 4607, 4607, 4626, 4638, 4638, 4638, 4638, 4641, 4654, 4654, 4654, 4654, 4654, 4654, 4654, 4658, 4660, 4660, 4665, 4685, 4685, 4701, 4701, 4702, 4725, 4731, 4734, 4734, 4734, 4736, 4746, 4746, 4746, 4764, 4764, 4769, 4790, 4812, 4812, 4812, 4849, 4849, 4862, 4862, 4863, 4869, 4869, 4873, 4873, 4873, 4873, 4928, 4930, 4930, 4967, 4997, 5015, 5016, 5016, 5036, 5036, 5037, 5063, 5063, 5081, 5115, 5115, 5115, 5115, 5159, 5159, 5159, 5159, 5166, 5207, 5241, 5241, 5254, 5261, 5261, 5266, 5275, 5295, 5325, 5352, 5356, 5350, 5379, 5399, 5409, 5422, 5438, 5459, 5459, 5459, 5465, 5470, 5502, 5525, 5531, 5531, 5560, 5600, 5615, 5622, 5629, 5639, 5639, 5669, 5684, 5710, 5716, 5716, 5716, 5746, 5788, 5792, 5800, 5826, 5826, 5828, 5860, 5882, 5882, 5891, 5894, 5948, 5973, 5973, 5982, 5988, 6001, 6039, 6061, 6062, 6067, 6092, 6101, 6123, 6134, 6164, 6208, 6209, 6209, 6222, 6260, 6290, 6300, 6304, 6316, 6350, 6371, 6403, 6403, 6409, 6450, 6459, 6469, 6497, 6551, 6571, 6578, 6586, 6625, 6648, 6684, 6691, 6703, 6730, 6739, 6806, 6813, 6835, 6842, 6898, 6901, 6957, 6990, 7022, 7037, 7041, 7140, 7168, 7168, 7177, 7192, 7249, 7275, 7313, 7350, 7391, 7391, 7446, 7485, 7510, 7561, 7580, 7613, 7644, 7727, 7740, 7764, 7776, 7818, 7899, 7950, 7979, 8013, 8042, 8112, 8187, 8208, 8223, 8292, 8331, 8485, 8485, 8485, 8526, 8556, 8630, 8691, 8723, 8797, 8827, 8904, 8944, 9036, 9135, 9157, 9183, 9260, 9323, 9365, 9423, 9495, 9604, 9641, 9736, 9815, 9882, 9978, 9992, 10046, 10088, 10223, 10276, 10318, 10415, 10539, 10595, 10659, 10706, 10848, 10933, 11033, 11103, 11170, 11298, 11385, 11397, 11494, 11578, 11777, 11857, 11934, 11997, 12079, 12167, 12368, 12468, 12817, 12817, 12899, 12899, 12993, 13137, 13209, 13369, 13479, 13585, 13713, 13878, 13988, 14172, 14231, 14432, 14536, 14744, 14806, 14946, 15084, 15199, 15365, 15599, 15683, 15959, 15959, 16189, 16342, 16566, 16673, 16813, 17064, 17207, 17436, 17610, 17794, 17998, 18129, 18349, 18525, 18719, 18870, 19121, 19188, 19429, 19720, 19930, 20124, 20326, 20591, 20796, 20950, 21205, 21488, 21620, 21925, 22103, 22377, 22575, 22887, 23129, 23316, 23588, 23754, 24056, 24360, 24560, 24850, 25199, 25481, 25703, 26066, 26302, 26565, 26821, 27123, 27535, 27741, 28071, 28378, 28746, 29262, 29636, 29673, 30049, 30318, 30940, 30996, 31371, 31841, 32091, 32389, 32886, 33236, 33750, 33929, 34422, 34782, 35257, 35578, 36042, 36266, 36787, 37220, 37706, 38095, 38517, 39003, 39302, 39804, 40311, 40692, 41203, 41757, 42033, 42733, 43208, 43559, 44171, 44601, 45060, 45592, 46068, 46681, 47262, 47646, 48184, 48889, 49358, 50060, 50584, 51056, 51621, 52055, 52592, 53377, 54010, 54775, 55973, 55973, 56237, 57175, 57682, 58445, 58992, 59502, 60256, 61042, 61566, 62153, 62801, 63374, 63727, 64104, 64439, 64637, 64868, 64977, 65189, 65281, 65281, 65286, 65291, 65291, 65293, 65298, 65302, 65302, 65318, 65318, 65318, 65318, 65318, 65321, 65321, 65321, 65321, 65321, 65322, 65338, 65338, 65342, 65342, 65343, 65343, 65355, 65359, 65359, 65359, 65365, 65368, 65368, 65368, 65373, 65373, 65373, 65373, 65376, 65376, 65376, 65376, 65376, 65376, 65366, 65366, 65366, 65366, 65366, 65328, 65326, 65326, 65326, 65337, 65341, 65345, 65380, 65380, 65380, 65363, 65340, 65340, 65340, 65301, 65296, 65295, 65290, 65288, 65288, 65284, 65284, 65284, 65284, 65284, 65284, 65271, 65265, 65262, 65262, 65262, 65274, 65274, 65274, 65274, 65266, 65264, 65264, 65264, 65279, 65279, 65279, 65280, 65280, 65280, 65280, 65291, 65291, 65291, 65291, 65286, 65286, 65286, 65286, 65286, 65283, 65283, 65283, 65283, 65283, 65297, 65297, 65297, 65297, 65291, 65268, 65268, 65268, 65282, 65282, 65296, 65296, 65296, 65296, 65296, 65296, 65292, 65292, 65290, 65287, 65287, 65287, 65285, 65284, 65284, 65282, 65271, 65271, 65279, 65285, 65285, 65288, 65299, 65299, 65299, 65299, 65299, 65295, 65290, 65285, 65275, 65275, 65275, 65296, 65296, 65296, 65296, 65296, 65293, 65288, 65278, 65278, 65278, 65278, 65282, 65283, 65283, 65283, 65289, 65289, 65289, 65289, 65291, 65293, 65293, 65294, 65294, 65298, 65299, 65299, 65301, 65303, 65303, 65303, 65302, 65302, 65296, 65289, 65289, 65289, 65289, 65299, 65301, 65296, 65296, 65296, 65296, 65296, 65296, 65313, 65313, 65313, 65301, 65301, 65301, 65301, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65311, 65311, 65311, 65311, 65311, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65307, 65307, 65307, 65298, 65298, 65298, 65298, 65298, 6574, 6438, 6370, 6370, 6364, 6361, 6357, 6342, 6317, 6316, 6276, 6269, 6258, 6253, 6224, 6224, 6224, 6208, 6202, 6169, 6162, 6162, 6162, 6162, 6144, 6123, 6116, 6102, 6097, 6097, 6097, 6097, 6084, 6077, 6062, 6062, 6018, 6017, 6017, 6020, 6020, 6020, 6012, 6012, 6004, 5996, 5985, 5985, 5985, 5957, 5954, 5954, 5954, 5940, 5940, 5940, 5940, 5942, 5942, 5942, 5942, 5942, 5925, 5905, 5905, 5889, 5889, 5883, 5883, 5883, 5883, 5892, 5886, 5868, 5868, 5868, 5856, 5856, 5856, 5856, 5856, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5852, 5852, 5852, 5863, 5881, 5884, 5884, 5885, 5885, 5885, 5894, 5913, 5913, 5913, 5913, 5915, 5917, 5918, 5944, 5944, 5944, 5949, 5949, 5981, 5997, 5981, 5973, 5969, 5958, 5958, 5958, 5959, 6008, 6008, 6008, 6014, 6014, 6020, 6020, 6027, 6027, 6028, 6045, 6045, 6049, 6049, 6049, 6049, 6076, 6076, 6076, 6079, 6079, 6079, 6093, 6094, 6094, 6094, 6156, 6167, 6195, 6195, 6195, 6195, 6195, 6195, 6195, 6218, 6218, 6237, 6237, 6237, 6237, 6253, 6269, 6269, 6282, 6305, 6305, 6305, 6314, 6318, 6318, 6318, 6318, 6337, 6365, 6365, 6365, 6388, 6401, 6420, 6420, 6420, 6420, 6454, 6454, 6454, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6489, 6496, 6520, 6520, 6529, 6547, 6550, 6550, 6550, 6564, 6570, 6596, 6638, 6642, 6634, 6622, 6622, 6641, 6653, 6659, 6662, 6674, 6674, 6674, 6674, 6702, 6702, 6702, 6702, 6702, 6712, 6715, 6715, 6716, 6716, 6716, 6716, 6756, 6756, 6756, 6756, 6759, 6808, 6808, 6808, 6808, 6832, 6838, 6838, 6838, 6838, 6839, 6855, 6855, 6855, 6883, 6885, 6901, 6903, 6905, 6933, 6935, 6939, 6942, 6945, 6942, 6942, 6942, 6942, 6946, 6946, 6946, 6973, 6999, 6999, 6997, 6997, 6997, 6996, 6996, 6996, 7014, 7020, 7028, 7036, 7036, 7075, 7075, 7075, 7075, 7075, 7075, 7078, 7123, 7123, 7143, 7143, 7143, 7143, 7143, 7172, 7172, 7140, 7140, 7153, 7156, 7178, 7198, 7202, 7202, 7214, 7214, 7219, 7219, 7219, 7219, 7219, 7238, 7238, 7238, 7255, 7255, 7255, 7305, 7328, 7328, 7328, 7326, 7326, 7326, 7361, 7361, 7367, 7378, 7385, 7385, 7385, 7385, 7391, 7391, 7391, 7391, 7435, 7435, 7435, 7468, 7468, 7482, 7483, 7483, 7483, 7487, 7487, 7487, 7488, 7489, 7519, 7521, 7521, 7521, 7560, 7570, 7606, 7606, 7606, 7609, 7609, 7609, 7616, 7616, 7634, 7638, 7638, 7670, 7687, 7691, 7715, 7715, 7719, 7733, 7760, 7762, 7762, 7762, 7800, 7820, 7870, 7870, 7870, 7882, 7895, 7895, 7913, 7982, 7982, 7982, 8007, 8024, 8047, 8052, 8078, 8078, 8110, 8110, 8151, 8179, 8187, 8197, 8222, 8247, 8247, 8247, 8349, 8386, 8389, 8389, 8389, 8437, 8447, 8450, 8476, 8510, 8551, 8578, 8610, 8615, 8615, 8615, 8686, 8686, 8749, 8749, 8784, 8809, 8821, 8821, 8902, 8912, 8921, 8950, 8950, 9025, 9025, 9040, 9040, 9110, 9127, 9173, 9187, 9241, 9251, 9290, 9291, 9352, 9359, 9359, 9378, 9419, 9446, 9455, 9499, 9501, 9519, 9587, 9669, 9669, 9669, 9715, 9727, 9802, 9809, 9815, 9880, 9907, 9913, 9979, 9990, 10006, 10091, 10091, 10102, 10102, 10137, 10194, 10229, 10281, 10378, 10378, 10386, 10440, 10473, 10526, 10526, 10559, 10559, 10641, 10688, 10749, 10780, 10823, 10886, 10891, 10915, 10926, 11011, 11057, 11143, 11153, 11193, 11247, 11282, 11308, 11384, 11418, 11522, 11529, 11595, 11643, 11661, 11701, 11728, 11810, 11916, 11981, 11988, 12085, 12115, 12181, 12246, 12294, 12405, 12475, 12525, 12562, 12593, 12725, 12786, 12869, 12891, 12921, 13022, 13182, 13200, 13263, 13291, 13303, 13497, 13530, 13649, 13743, 13859, 13884, 13955, 14050, 14071, 14226, 14306, 14391, 14597, 14604, 14714, 14765, 14921, 14967, 15127, 15264, 15320, 15472, 15564, 15656, 15683, 15892, 15953, 16122, 16313, 16473, 16590, 16723, 16788, 16848, 17116, 17163, 17273, 17449, 17537, 17698, 17813, 18072, 18129, 18332, 18422, 18689, 18733, 18886, 19027, 19208, 19389, 19556, 19694, 19869, 19986, 20172, 20311, 20544, 20709, 20984, 21055, 21266, 21418, 21652, 21876, 22092, 22255, 22468, 22800, 22900, 23095, 23371, 23540, 23846, 24064, 24601, 24686, 24686, 24988, 25177, 25626, 25759, 26014, 26239, 26435, 26763, 27079, 27404, 27681, 27924, 28156, 28459, 28876, 29059, 29361, 29821, 29946, 30305, 30612, 31263, 31299, 31683, 31882, 32388, 32617, 33028, 33394, 33831, 34218, 34536, 34816, 35351, 35710, 36088, 36416, 36899, 37332, 37758, 38125, 38665, 38912, 39546, 39946, 40342, 40791, 41160, 41586, 42135, 42699, 43152, 43615, 44173, 44512, 45184, 45680, 46067, 46667, 47120, 47632, 48252, 48725, 49386, 49725, 50516, 51041, 51597, 52141, 52913, 53172, 54151, 54679, 55124, 55632, 56461, 57107, 57828, 58447, 59014, 59720, 60524, 61376, 61896, 62522, 63076, 63609, 64016, 64335, 64593, 64815, 64991, 65183, 65290, 65293, 65293, 65293, 65303, 65303, 65304, 65304, 65311, 65317, 65325, 65325, 65325, 65325, 65325, 65325, 65333, 65333, 65333, 65349, 65362, 65362, 65362, 65378, 65378, 65378, 65379, 65382, 65382, 65382, 65395, 65395, 65395, 65395, 65399, 65404, 65405, 65405, 65404, 65390, 65385, 65385, 65377, 65352, 65343, 65343, 65350, 65350, 65350, 65375, 65384, 65386, 65377, 65375, 65374, 65346, 65312, 65312, 65301, 65298, 65298, 65296, 65296, 65296, 65281, 65278, 65270, 65262, 65262, 65262, 65270, 65278, 65290, 65290, 65290, 65285, 65285, 65279, 65279, 65275, 65275, 65267, 65267, 65267, 65267, 65278, 65278, 65287, 65287, 65287, 65287, 65287, 65296, 65296, 65296, 65277, 65277, 65277, 65272, 65272, 65272, 65272, 65272, 65272, 65288, 65288, 65288, 65285, 65285, 65270, 65270, 65280, 65288, 65288, 65288, 65288, 65288, 65288, 65283, 65283, 65283, 65283, 65283, 65283, 65291, 65291, 65290, 65286, 65286, 65286, 65286, 65294, 65294, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65296, 65296, 65296, 65293, 65293, 65293, 65298, 65298, 65298, 65298, 65295, 65295, 65295, 65295, 65295, 65291, 65291, 65291, 65291, 65291, 65291, 65291, 65300, 65300, 65316, 65316, 65316, 65283, 65283, 65305, 65307, 65307, 65307, 65307, 65307, 65307, 65307, 65307, 65305, 65305, 65303, 65303, 65303, 65303, 65303, 65291, 65291, 65291, 65291, 65297, 65306, 65306, 65295, 65295, 65295, 65295, 65319, 65320, 65320, 65304, 65296, 65296, 65309, 65317, 65319, 65319, 65319, 65319, 65319, 65311, 65307, 65305, 65294, 65294, 65294, 65294, 65305, 65307, 65307, 65308, 65323, 65328, 65328, 65328, 65328, 65323, 65318, 65316, 65312, 65312, 65300, 65300, 65300, 65300, 65300, 65312, 65322, 65322, 65322, 65322, 65313, 65313, 65313, 65313, 65313, 65308, 65308, 65308, 65308, 65320, 65320, 65320, 65320, 65320, 65320, 65332, 65332, 65326, 65326, 65326, 65326, 65323, 65323, 65323, 65323, 65323, 65323, 65315, 65315, 65315, 65315, 65315, 65327, 65327, 65327, 65327, 65327, 65334, 65337, 65337, 555, 555, 555, 554, 554, 554, 554, 555, 555, 557, 559, 560, 560, 560, 560, 560, 561, 561, 561, 561, 561, 565, 565, 564, 564, 564, 562, 562, 564, 567, 567, 567, 567, 567, 567, 567, 564, 564, 563, 563, 563, 566, 566, 566, 566, 566, 565, 564, 564, 564, 564, 563, 563, 563, 563, 565, 565, 565, 565, 565, 565, 564, 564, 564, 565, 566, 568, 568, 568, 568, 564, 564, 566, 567, 567, 567, 566, 566, 566, 565, 565, 566, 567, 568, 568, 568, 568, 567, 567, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 565, 565, 564, 564, 564, 564, 564, 564, 566, 566, 566, 567, 567, 567, 567, 566, 564, 564, 563, 563, 563, 565, 565, 565, 565, 566, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 565, 565, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 569, 569, 568, 566, 566, 566, 566, 566, 566, 569, 569, 569, 569, 569, 569, 569, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 562, 562, 562, 562, 564, 564, 564, 568, 568, 568, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 564, 564, 563, 563, 563, 564, 565, 565, 565, 564, 564, 564, 565, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 568, 568, 571, 571, 571, 567, 567, 567, 567, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 563, 563, 563, 563, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 570, 570, 570, 569, 569, 568, 565, 563, 563, 563, 563, 565, 566, 566, 566, 565, 563, 563, 563, 565, 565, 565, 565, 564, 564, 566, 566, 566, 568, 568, 568, 572, 572, 572, 568, 568, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 565, 565, 565, 564, 564, 564, 564, 564, 563, 563, 563, 563, 563, 562, 562, 562, 562, 563, 563, 564, 568, 568, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 562, 562, 562, 567, 567, 567, 567, 565, 565, 565, 566, 566, 566, 566, 566, 566, 568, 568, 568, 568, 566, 565, 565, 565, 565, 567, 567, 567, 566, 566, 566, 569, 569, 569, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 568, 568, 568, 564, 563, 563, 564, 566, 567, 567, 567, 565, 565, 565, 565, 565, 565, 565, 565, 565, 563, 563, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 563, 563, 563, 563, 563, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 569, 569, 569, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 565, 564, 564, 564, 566, 566, 566, 566, 562, 562, 562, 565, 565, 567, 570, 570, 569, 566, 564, 564, 564, 566, 569, 569, 567, 567, 564, 564, 564, 567, 568, 568, 568, 568, 568, 568, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 563, 563, 563, 565, 567, 567, 567, 567, 566, 566, 566, 564, 564, 564, 566, 568, 568, 568, 568, 567, 565, 565, 567, 569, 569, 569, 569, 569, 569, 569, 569, 569, 565, 564, 564, 567, 569, 569, 569, 569, 569, 569, 569, 569, 566, 566, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 566, 566, 567, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 563, 563, 564, 566, 566, 566, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 560, 560, 563, 564, 564, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 564, 564, 564, 567, 567, 567, 562, 562, 562, 563, 563, 563, 565, 565, 565, 564, 564, 564, 565, 565, 565, 562, 562, 562, 566, 566, 568, 568, 568, 568, 568, 568, 567, 567, 566, 566, 564, 564, 564, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 564, 564, 562, 562, 562, 564, 566, 566, 566, 562, 562, 562, 562, 567, 567, 567, 567, 567, 566, 565, 565, 565, 565, 566, 566, 566, 566, 568, 568, 568, 568, 568, 566, 566, 566, 566, 566, 566, 564, 564, 564, 563, 563, 568, 568, 568, 565, 565, 565, 564, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 564, 564, 564, 565, 568, 568, 568, 567, 567, 565, 564, 564, 564, 564, 565, 568, 568, 568, 568, 568, 568, 568, 568, 567, 566, 566, 565, 565, 565, 565, 565, 565, 567, 567, 567, 565, 565, 565, 565, 569, 569, 569, 569, 565, 564, 564, 565, 565, 565, 565, 566, 566, 565, 565, 565, 568, 568, 568, 567, 567, 567, 567, 568, 568, 568, 565, 565, 567, 567, 567, 567, 567, 564, 564, 564, 564, 567, 567, 567, 566, 563, 563, 563, 565, 565, 565, 569, 569, 569, 569, 567, 567, 567, 567, 567, 568, 569, 569, 569, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 562, 562, 562, 563, 566, 566, 566, 567, 571, 571, 571, 568, 565, 565, 565, 566, 566, 566, 567, 567, 567, 567, 565, 565, 565, 563, 563, 563, 563, 565, 567, 567, 561, 561, 562, 565, 565, 565, 565, 565, 565, 564, 562, 562, 562, 565, 565, 565, 565, 564, 563, 563, 563, 563, 563, 563, 563, 563, 563, 564, 564, 564, 566, 566, 566, 566, 566, 566, 565, 565, 565, 556, 556, 556, 555, 555, 555, 555, 558, 562, 562.5, 562.5, 563, 563, 563, 563, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 565, 565, 565, 565, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 567, 567, 567, 566, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 566, 566, 566, 566, 566, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 564, 564, 564, 564, 564, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 564, 564, 564, 566, 567, 567, 567, 561, 560, 555, 555, 555, 555, 557, 557, 560, 560, 560, 560, 560, 560, 560, 561, 561, 562, 563, 564, 564, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 568, 568, 568, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 565, 565, 565, 566, 566, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 571, 571, 571, 571, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 567, 567, 567, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 569, 569, 569, 569, 569, 569, 569, 569, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 569, 569, 569, 569, 568, 568, 568, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 564, 564, 564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 566, 566, 566, 565, 565, 565, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, 567, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 566, 566, 569, 569, 570, 570, 569, 569, 566, 565, 563, 568, 568, 564, 557, 556, 556, 556, 557, 562, 562, 562, 562, 562, 562, 564, 564, 564, 565, 566, 566, 568, 568, 569, 570, 570, 570, 570, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 573, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 577, 577, 577, 577, 576, 576, 576, 578, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 587, 587, 587, 588, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 584, 584, 584, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 580, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 571, 571, 571, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 574, 575, 575, 575, 576, 576, 576, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 577, 577, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 571, 572, 572, 572, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 573, 573, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 576, 603, 603, 603, 603, 573, 573, 571, 571, 569, 569, 569, 567, 567, 567, 568, 570, 571, 574, 575, 576, 578, 578, 578, 578, 574, 574, 574, 574, 577, 577, 577, 575, 575, 575, 575, 577, 577, 577, 577, 577, 576, 576, 576, 577, 577, 578, 580, 580, 577, 577, 577, 577, 577, 577, 577, 577, 580, 580, 580, 580, 580, 580, 580, 579, 577, 577, 577, 580, 580, 580, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 586, 586, 583, 583, 587, 587, 587, 587, 587, 587, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 590, 591, 592, 592, 590, 590, 590, 590, 590, 592, 592, 592, 592, 596, 596, 597, 597, 597, 597, 592, 592, 600, 602, 604, 604, 604, 604, 604, 605, 608, 610, 611, 611, 612, 612, 613, 613, 613, 613, 614, 615, 615, 615, 615, 615, 615, 616, 617, 618, 618, 618, 618, 619, 619, 620, 620, 622, 622, 623, 623, 624, 624, 626, 627, 628, 628, 629, 629, 629, 631, 631, 631, 632, 632, 632, 633, 633, 634, 634, 634, 634, 634, 634, 636, 637, 637, 637, 637, 637, 637, 637, 638, 638, 640, 640, 641, 641, 642, 642, 643, 644, 644, 644, 645, 647, 647, 647, 648, 648, 648, 649, 650, 650, 650, 650, 650, 650, 650, 651, 651, 652, 652, 653, 653, 653, 653, 653, 654, 654, 654, 654, 653, 653, 653, 653, 653, 653, 653, 653, 652, 652, 652, 651, 651, 651, 651, 651, 651, 650, 649, 649, 649, 649, 649, 650, 650, 650, 650, 650, 649, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, 646, 646, 646, 646, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 644, 644, 644, 644, 644, 644, 642, 642, 640, 640, 640, 640, 638, 637, 637, 637, 637, 637, 637, 637, 636, 636, 636, 636, 636, 635, 635, 635, 633, 633, 632, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 632, 633, 633, 633, 633, 633, 632, 632, 632, 632, 633, 633, 633, 632, 632, 632, 631, 631, 630, 630, 630, 630, 630, 631, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 634, 634, 635, 635, 635, 635, 634, 634, 634, 634, 634, 637, 637, 637, 637, 639, 639, 639, 641, 641, 641, 641, 641, 642, 642, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 645, 645, 645, 645, 645, 645, 645, 646, 646, 646, 646, 648, 650, 650, 650, 648, 648, 648, 648, 648, 648, 649, 649, 649, 649, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 647, 647, 646, 646, 646, 646, 646, 646, 645, 645, 645, 646, 646, 646, 644, 644, 644, 643, 642, 640, 640, 640, 640, 639, 639, 639, 639, 639, 639, 638, 638, 638, 637, 637, 637, 637, 636, 636, 636, 636, 635, 635, 634, 634, 632, 631, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 626, 626, 626, 626, 625, 625, 625, 624, 624, 623, 623, 623, 623, 622, 620, 620, 620, 620, 619, 618, 618, 618, 617, 615, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 612, 612, 611, 611, 610, 609, 609, 609, 609, 609, 608, 604, 604, 604, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 598, 598, 598, 598, 598, 598, 599, 599, 598, 598, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 595, 595, 595, 596, 597, 599, 599, 599, 599, 599, 597, 594, 594, 594, 596, 596, 596, 596, 596, 596, 594, 594, 594, 594, 594, 594, 593, 593, 593, 592, 592, 592, 594, 594, 594, 594, 592, 592, 592, 594, 594, 595, 595, 596, 596, 596, 592, 592, 592, 592, 593, 594, 594, 594, 594, 591, 591, 591, 591, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 596, 599, 600, 600, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 599, 599, 601, 601, 600, 600, 600, 600, 601, 601, 601, 601, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 603, 603, 604, 604, 604, 604, 604, 604, 604, 605, 606, 608, 608, 608, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 608, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 599, 599, 598, 598, 598, 599, 600, 602, 602, 601, 599, 598, 598, 599, 599, 599, 599, 599, 598, 598, 596, 596, 596, 598, 598, 598, 597, 597, 596, 596, 596, 595, 595, 595, 595, 597, 597, 597, 597, 593, 592, 592, 592, 590, 590, 590, 590, 592, 592, 592, 592, 593, 593, 593, 591, 590, 589, 589, 589, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 589, 589, 587, 586, 586, 586, 586, 586, 588, 588, 588, 588, 588, 580, 580, 580, 581, 583, 583, 583, 583, 583, 583, 583, 583, 583, 590, 590, 590, 585, 585, 585, 582, 582, 582, 583, 583, 583, 583, 583, 586, 586, 586, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 582, 580, 580, 580, 580, 582, 582, 582, 582, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 581, 581, 582, 582, 582, 582, 582, 582, 583, 583, 583, 583, 583, 584, 584, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 587, 587, 588, 588, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 591, 591, 591, 591, 591, 592, 592, 593, 593, 593, 593, 593, 593, 594, 594, 594, 596, 596, 596, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 600, 600, 601, 601, 601, 601, 603, 603, 605, 606, 606, 606, 606, 607, 607, 608, 608, 610, 613, 613, 613, 613, 617, 617, 619, 620, 621, 621, 622, 623, 623, 623, 623, 624, 626, 627, 628, 628, 629, 629, 630, 630, 631, 631, 634, 634, 635, 635, 635, 635, 636, 637, 637, 639, 639, 644, 646, 646, 646, 648, 649, 649, 649, 650, 650, 650, 651, 652, 652, 653, 653, 654, 654, 655, 655, 659, 659, 659, 660, 661, 661, 661, 662, 663, 663, 663, 664, 664, 664, 665, 665, 667, 668, 668, 669, 670, 670, 672, 673, 673, 673, 674, 674, 675, 675, 676, 678, 679, 680, 680, 680, 680, 680, 680, 680, 680, 680, 681, 681, 681, 681, 681, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 679, 679, 679, 679, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 678, 677, 677, 677, 677, 677, 677, 677, 677, 676, 676, 676, 676, 676, 675, 675, 674, 674, 673, 673, 673, 673, 673, 673, 671, 671, 671, 671, 670, 670, 670, 670, 670, 669, 669, 669, 669, 669, 669, 668, 668, 666, 666, 666, 666, 665, 665, 664, 664, 663, 663, 662, 662, 662, 662, 662, 661, 661, 661, 660, 659, 659, 659, 658, 658, 658, 658, 658, 657, 657, 656, 656, 656, 656, 656, 655, 655, 655, 655, 654, 654, 654, 654, 654, 655, 655, 655, 655, 655, 655, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 656, 656, 656, 656, 656, 657, 657, 657, 657, 657, 659, 659, 659, 659, 661, 661, 661, 662, 663, 663, 664, 665, 665, 665, 665, 666, 666, 666, 666, 666, 666, 666, 667, 667, 669, 670, 670, 670, 670, 670, 670, 670, 671, 674, 674, 674, 674, 674, 674, 674, 675, 675, 676, 676, 676, 678, 679, 679, 679, 679, 679, 679, 680, 680, 681, 681, 681, 681, 681, 681, 682, 682, 682, 683, 684, 685, 685, 685, 685, 685, 685, 687, 687, 688, 688, 688, 688, 688, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, 686, 686, 686, 686, 686, 685, 685, 684, 682, 682, 682, 682, 682, 681, 681, 681, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 679, 678, 678, 678, 677, 675, 675, 675, 673, 673, 673, 672, 671, 670, 668, 668, 668, 667, 666, 666, 665, 664, 663, 662, 661, 660, 657, 657, 657, 657, 657, 657, 656, 655, 655, 653, 652, 651, 651, 651, 650, 648, 648, 647, 647, 646, 646, 646, 645, 645, 644, 644, 644, 644, 643, 643, 643, 642, 640, 640, 640, 640, 639, 638, 638, 636, 636, 636, 635, 634, 633, 631, 631, 631, 631, 630, 630, 630, 630, 629, 628, 628, 627, 627, 627, 627, 627, 626, 625, 624, 624, 624, 624, 623, 623, 623, 621, 621, 621, 621, 620, 620, 620, 618, 618, 617, 617, 616, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 616, 616, 615, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 608, 608, 608, 609, 609, 609, 609, 611, 611, 611, 611, 611, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 610, 611, 611, 611, 611, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 613, 613, 614, 614, 614, 614, 614, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 617, 617, 617, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 614, 614, 614, 613, 613, 613, 613, 613, 613, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 613, 613, 613, 613, 613, 613, 613, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 610, 610, 609, 609, 609, 609, 608, 608, 608, 608, 608, 607, 607, 606, 606, 606, 606, 606, 605, 605, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 600, 600, 600, 600, 600, 600, 600, 600, 600, 598, 598, 598, 598, 597, 597, 597, 597, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 595, 595, 595, 594, 594, 594, 594, 594, 592, 591, 591, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 573, 574, 575, 576, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 581, 581, 581, 582, 582, 582, 582, 582, 581, 581, 581, 581, 584, 584, 584, 584, 584, 584, 586, 586, 586, 586, 586, 585, 585, 585, 585, 586, 586, 586, 582, 582, 582, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 593, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 596, 596, 596, 596, 596, 596, 596, 597, 597, 597, 597, 597, 597, 598, 598, 598, 599, 600, 600, 600, 601, 604, 605, 605, 605, 606, 607, 607, 609, 609, 609, 610, 610, 610, 611, 613, 614, 614, 614, 614, 614, 615, 616, 617, 617, 620, 621, 621, 624, 625, 625, 625, 627, 627, 627, 627, 627, 627, 628, 628, 630, 630, 630, 630, 631, 631, 631, 631, 632, 632, 632, 633, 633, 634, 635, 638, 638, 639, 639, 639, 640, 640, 641, 642, 643, 643, 644, 644, 644, 645, 645, 645, 647, 647, 650, 651, 651, 651, 652, 652, 652, 652, 652, 653, 653, 653, 653, 653, 653, 653, 653, 654, 654, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 654, 654, 654, 654, 654, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 650, 650, 650, 649, 649, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 647, 646, 646, 646, 646, 646, 646, 646, 646, 645, 645, 644, 644, 643, 643, 643, 642, 642, 642, 642, 642, 642, 642, 642, 641, 641, 641, 641, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 637, 637, 637, 637, 636, 636, 636, 637, 637, 637, 636, 636, 636, 635, 635, 635, 636, 636, 636, 635, 635, 635, 636, 636, 636, 635, 635, 635, 635, 635, 635, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 638, 638, 638, 640, 640, 640, 640, 641, 641, 641, 641, 641, 641, 641, 642, 642, 643, 643, 643, 644, 644, 644, 644, 645, 645, 646, 647, 648, 648, 648, 649, 650, 651, 651, 652, 652, 652, 654, 654, 655, 655, 655, 655, 656, 656, 656, 658, 658, 658, 659, 659, 659, 660, 660, 660, 660, 662, 662, 664, 664, 665, 665, 665, 666, 666, 666, 666, 667, 667, 667, 667, 669, 669, 669, 670, 670, 671, 672, 674, 674, 674, 675, 675, 675, 676, 676, 676, 676, 676, 676, 676, 676, 676, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 675, 672, 672, 672, 672, 671, 671, 671, 670, 668, 668, 668, 668, 667, 665, 665, 665, 664, 664, 664, 663, 662, 662, 662, 662, 659, 659, 659, 658, 657, 657, 655, 655, 655, 654, 654, 654, 653, 652, 650, 650, 650, 650, 649, 648, 648, 647, 647, 646, 644, 644, 643, 642, 642, 641, 641, 641, 641, 640, 639, 638, 638, 635, 635, 635, 635, 634, 634, 634, 634, 633, 633, 632, 631, 628, 628, 628, 627, 627, 627, 626, 626, 626, 625, 625, 625, 621, 621, 621, 621, 621, 620, 620, 619, 619, 619, 619, 619, 619, 618, 618, 617, 617, 617, 615, 615, 615, 615, 614, 614, 614, 614, 613, 613, 613, 613, 613, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 610, 609, 609, 609, 609, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 605, 605, 605, 605, 605, 604, 603, 603, 603, 603, 602, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 597, 597, 597, 597, 597, 597, 597, 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 594, 594, 594, 593, 593, 593, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 592, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 589, 589, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 585, 583, 583, 583, 583, 583, 581, 580, 580, 580, 580, 582, 582, 582, 582, 582, 582, 582, 582, 581, 580, 580, 579, 579, 579, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 580, 579, 579, 580, 581, 581, 582, 582, 582, 580, 580, 581, 581, 581, 581, 579, 578, 578, 578, 577, 577, 577, 577, 577, 574, 574, 573, 572, 571, 571, 571, 576, 576, 576, 574, 574, 575, 579, 580, 580, 580, 580, 580, 583, 583, 583, 580, 580, 580, 581, 584, 584, 584, 584, 584, 583, 583, 583, 583, 579, 578, 578, 580, 583, 583, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 582, 582, 582, 585, 585, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 584, 583, 583, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 589, 589, 589, 590, 590, 591, 591, 593, 593, 593, 593, 593, 594, 594, 595, 595, 595, 597, 597, 598, 598, 598, 598, 598, 599, 599, 599, 599, 600, 601, 601, 602, 602, 602, 602, 603, 603, 605, 605, 608, 608, 610, 613, 613, 613, 613, 613, 613, 613, 613, 614, 614, 614, 614, 614, 614, 614, 615, 615, 615, 617, 617, 617, 617, 619, 619, 619, 620, 620, 620, 620, 620, 623, 623, 623, 623, 624, 625, 625, 625, 626, 626, 626, 626, 627, 627, 627, 629, 629, 629, 629, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 633, 633, 633, 634, 634, 635, 636, 636, 636, 636, 636, 636, 636, 636, 636, 635, 634, 634, 634, 633, 633, 633, 633, 633, 633, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 628, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 625, 625, 623, 622, 622, 622, 622, 622, 622, 622, 622, 621, 621, 621, 620, 620, 620, 620, 620, 620, 620, 620, 620, 619, 619, 618, 617, 617, 617, 617, 617, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 616, 616, 616, 616, 615, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 617, 617, 617, 617, 617, 617, 617, 617, 619, 620, 620, 622, 622, 622, 622, 622, 622, 622, 623, 623, 623, 625, 626, 626, 627, 627, 627, 628, 629, 629, 629, 629, 630, 630, 631, 631, 631, 632, 632, 634, 634, 635, 637, 638, 638, 638, 638, 638, 639, 640, 640, 640, 640, 641, 642, 642, 642, 642, 642, 643, 643, 643, 644, 644, 644, 645, 645, 646, 646, 646, 646, 647, 647, 647, 648, 648, 648, 649, 649, 649, 649, 651, 651, 651, 651, 651, 653, 653, 653, 653, 653, 653, 653, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 654, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, 654, 654, 654, 654, 654, 653, 653, 653, 652, 652, 652, 652, 651, 651, 651, 651, 651, 650, 650, 649, 649, 649, 649, 649, 649, 648, 647, 647, 647, 646, 646, 645, 645, 644, 643, 643, 641, 638, 638, 638, 636, 636, 636, 636, 636, 636, 636, 635, 635, 635, 635, 635, 635, 635, 634, 632, 632, 632, 632, 632, 632, 632, 631, 630, 629, 629, 627, 626, 626, 626, 625, 625, 625, 625, 625, 625, 624, 624, 623, 621, 621, 621, 620, 619, 619, 619, 619, 617, 617, 617, 616, 616, 614, 613, 611, 611, 611, 611, 611, 611, 610, 609, 609, 607, 606, 606, 605, 605, 605, 605, 605, 605, 604, 603, 603, 603, 603, 602, 602, 602, 602, 603, 603, 603, 603, 603, 603, 603, 602, 601, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 599, 599, 599, 599, 599, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 593, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 590, 590, 590, 590, 590, 590, 592, 592, 592, 592, 590, 590, 590, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 590, 590, 590, 589, 589, 589, 589, 588, 588, 588, 588, 588, 589, 589, 589, 589, 589, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 583, 583, 585, 585, 585, 585, 585, 585, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 582, 577, 577, 577, 582, 582, 582, 582, 582, 580, 580, 580, 580, 580, 582, 582, 582, 580, 579, 579, 580, 580, 580, 580, 581, 582, 582, 582, 580, 580, 580, 580, 580, 581, 581, 581, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 578, 578, 579, 580, 580, 578, 578, 578, 578, 578, 578, 578, 578, 578, 580, 580, 575, 575, 575, 575, 576, 576, 576, 580, 583, 583, 583, 579, 579, 577, 575, 575, 575, 579, 579, 579, 579, 574, 574, 574, 576, 578, 578, 578, 578, 578, 577, 577, 577, 577, 578, 578, 578, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 577, 578, 578, 578, 578, 570, 570, 573, 573, 573, 572, 572, 572, 574, 574, 574, 574, 572, 572, 572, 575, 578, 578, 578, 575, 575, 575, 575, 580, 580, 580, 580, 580, 580, 581, 585, 585, 585, 585, 585, 583, 582, 580, 580, 583, 586, 586, 586, 585, 585, 585, 585, 583, 583, 582, 582, 582, 586, 586, 586, 585, 584, 584, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 590, 590, 590, 586, 584, 584, 582, 582, 582, 588, 588, 588, 588, 588, 587, 587, 587, 587, 588, 588, 588, 586, 586, 584, 584, 584, 585, 585, 585, 585, 585, 585, 584, 583, 583, 583, 583, 587, 590, 590, 590, 584, 584, 584, 584, 584, 588, 588, 584, 584, 587, 588, 588, 588, 588, 588, 588, 588, 588, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 591, 596, 596, 596, 598, 598, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 601, 602, 604, 604, 604, 605, 605, 605, 605, 606, 606, 607, 607, 607, 607, 607, 607, 607, 608, 608, 608, 609, 609, 610, 610, 612, 612, 613, 613, 613, 614, 615, 615, 615, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 618, 618, 618, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 613, 613, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 611, 611, 610, 610, 610, 610, 610, 610, 610, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 606, 605, 605, 605, 604, 604, 604, 604, 603, 603, 603, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 600, 599, 599, 599, 599, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, 601, 601, 601, 601, 601, 601, 601, 602, 602, 603, 604, 604, 604, 605, 605, 605, 606, 606, 606, 606, 607, 607, 607, 610, 611, 611, 611, 611, 611, 612, 613, 613, 613, 613, 613, 613, 614, 614, 614, 615, 615, 616, 616, 616, 616, 616, 616, 617, 617, 618, 618, 618, 620, 620, 620, 620, 621, 622, 623, 623, 623, 623, 623, 624, 624, 625, 625, 626, 626, 628, 628, 628, 628, 628, 628, 629, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 632, 632, 632, 632, 632, 632, 632, 634, 634, 634, 634, 634, 634, 634, 634, 634, 636, 636, 636, 636, 636, 636, 636, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 635, 635, 635, 635, 633, 633, 632, 632, 632, 632, 632, 633, 633, 633, 633, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 631, 631, 630, 629, 629, 629, 629, 629, 628, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 626, 626, 626, 625, 625, 625, 625, 625, 625, 624, 623, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 621, 621, 621, 621, 621, 621, 620, 620, 620, 620, 620, 619, 616, 615, 614, 614, 614, 613, 613, 613, 612, 612, 612, 612, 611, 611, 611, 610, 608, 608, 608, 608, 608, 608, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 606, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 603, 603, 602, 601, 601, 601, 601, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 599, 599, 599, 599, 598, 598, 598, 598, 598, 598, 596, 596, 596, 595, 595, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 592, 591, 591, 591, 591, 589, 588, 588, 590, 591, 591, 589, 588, 588, 587, 587, 588, 588, 588, 588, 588, 586, 586, 586, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 586, 586, 586, 588, 588, 588, 587, 587, 587, 586, 586, 586, 586, 586, 587, 587, 587, 583, 583, 583, 583, 585, 585, 585, 582, 582, 582, 584, 586, 586, 586, 585, 584, 583, 583, 581, 581, 581, 580, 580, 579, 579, 579, 582, 582, 582, 582, 583, 583, 583, 583, 583, 584, 584, 585, 585, 586, 586, 586, 582, 582, 582, 583, 585, 585, 583, 578, 578, 578, 583, 583, 583, 583, 583, 579, 579, 579, 579, 579, 581, 583, 583, 583, 581, 581, 581, 578, 578, 578, 580, 580, 580, 580, 580, 580, 579, 579, 579, 580, 582, 582, 580, 577, 575, 575, 575, 575, 575, 575, 575, 576, 576, 579, 579, 579, 579, 579, 579, 579, 577, 577, 577, 577, 578, 578, 578, 574, 574, 574, 576, 576, 577, 577, 577, 578, 578, 578, 578, 579, 579, 579, 579, 579, 578, 573, 573, 580, 580, 573, 573, 573, 573, 573, 578, 578, 578, 576, 573, 573, 573, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 576, 578, 578, 575, 573, 573, 573, 574, 577, 577, 577, 574, 572, 572, 572, 572, 572, 572, 574, 574, 574, 574, 575, 575, 575, 574, 573, 573, 574, 574, 574, 574, 574, 575, 575, 575, 573, 573, 573, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 572, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 577, 577, 574, 574, 573, 572, 572, 571, 571, 571, 573, 573, 574, 574, 574, 574, 574, 574, 574, 571, 571, 564, 564, 564, 564, 566, 566, 566, 571, 571, 571, 572, 572, 572, 572, 572, 573, 574, 574, 574, 574, 574, 576, 576, 577, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 583, 583, 583, 583, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 586, 586, 586, 586, 588, 588, 588, 588, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 593, 593, 593, 593, 593, 593, 594, 594, 594, 595, 595, 595, 595, 596, 596, 596, 597, 597, 598, 598, 599, 599, 599, 600, 601, 601, 601, 601, 601, 601, 601, 601, 602, 602, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 598, 597, 597, 597, 597, 597, 597, 597, 597, 596, 596, 596, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 594, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 588, 589, 589, 589, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 596, 596, 596, 598, 598, 598, 598, 598, 598, 598, 600, 600, 600, 601, 601, 602, 602, 602, 602, 602, 602, 603, 603, 604, 605, 605, 606, 606, 607, 607, 607, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 611, 611, 613, 613, 614, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 618, 618, 618, 618, 618, 619, 619, 620, 621, 621, 621, 621, 621, 621, 621, 623, 623, 623, 623, 624, 624, 624, 625, 625, 625, 625, 625, 625, 626, 626, 626, 626, 626, 626, 627, 628, 628, 628, 628, 628, 628, 628, 628, 628, 629, 629, 629, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 630, 630, 630, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 633, 633, 633, 633, 633, 633, 633, 633, 633, 632, 632, 632, 632, 632, 632, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, 631, 633, 633, 633, 633, 633, 633, 633, 632, 632, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 630, 630, 630, 630, 630, 628, 628, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 626, 626, 626, 626, 626, 625, 625, 625, 625, 625, 625, 625, 624, 624, 624, 623, 623, 623, 623, 623, 623, 622, 620, 620, 620, 619, 619, 619, 619, 619, 618, 618, 618, 618, 618, 618, 618, 618, 618, 617, 616, 616, 615, 615, 613, 613, 613, 613, 612, 611, 611, 611, 611, 611, 610, 610, 610, 610, 609, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 607, 606, 606, 604, 604, 603, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 602, 602, 602, 602, 601, 601, 599, 599, 598, 596, 596, 596, 596, 596, 596, 596, 596, 595, 595, 595, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 590, 590, 587, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 584, 584, 584, 584, 582, 582, 582, 582, 581, 581, 581, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 574, 574, 574, 574, 573, 573, 575, 576, 576, 576, 576, 562, 562, 562, 562, 563, 563, 563, 563, 565, 566, 566, 566, 566, 567, 567, 570, 570, 570, 568, 568, 568, 572, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 577, 581, 581, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 581, 581, 580, 580, 580, 580, 580, 578, 578, 578, 579, 579, 580, 580, 580, 580, 581, 581, 584, 584, 584, 583, 581, 581, 581, 581, 580, 580, 580, 580, 579, 579, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 578, 578, 578, 578, 578, 576, 576, 576, 576, 576, 580, 580, 580, 579, 575, 575, 575, 575, 575, 576, 576, 578, 578, 582, 582, 582, 582, 582, 581, 581, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 583, 583, 583, 581, 579, 579, 581, 583, 585, 585, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 588, 585, 585, 585, 585, 585, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 589, 589, 589, 586, 586, 586, 587, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 589, 589, 589, 589, 587, 587, 587, 587, 587, 587, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 586, 586, 586, 586, 585, 585, 585, 585, 584, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 585, 585, 585, 582, 582, 582, 583, 583, 583, 583, 585, 585, 585, 585, 580, 580, 580, 580, 580, 580, 579, 579, 579, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 582, 582, 582, 581, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 582, 582, 582, 582, 578, 576, 576, 576, 576, 575, 575, 575, 575, 579, 581, 581, 579, 574, 574, 574, 578, 579, 581, 581, 580, 580, 580, 578, 578, 577, 577, 577, 577, 576, 576, 579, 579, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 574, 574, 583, 583, 580, 580, 580, 580, 577, 577, 577, 578, 580, 581, 581, 582, 582, 584, 586, 586, 584, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 592, 593, 593, 595, 595, 596, 596, 596, 596, 596, 597, 597, 597, 597, 598, 599, 600, 600, 600, 600, 600, 600, 600, 601, 601, 603, 603, 603, 603, 603, 604, 604, 604, 604, 604, 605, 605, 605, 607, 607, 607, 608, 609, 609, 609, 609, 610, 610, 610, 610, 611, 612, 612, 612, 612, 612, 613, 613, 613, 613, 613, 614, 615, 615, 615, 615, 615, 615, 616, 616, 616, 616, 617, 617, 617, 619, 620, 620, 622, 622, 623, 623, 623, 624, 624, 624, 624, 624, 625, 625, 625, 625, 626, 626, 626, 626, 627, 627, 627, 628, 628, 628, 628, 628, 628, 628, 628, 629, 629, 629, 630, 630, 630, 630, 630, 631, 631, 631, 632, 632, 632, 632, 632, 633, 633, 634, 635, 635, 635, 636, 636, 636, 636, 637, 638, 638, 638, 639, 639, 640, 640, 640, 640, 640, 640, 641, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 644, 644, 646, 646, 646, 646, 646, 646, 646, 647, 647, 647, 647, 647, 647, 647, 647, 648, 648, 648, 648, 648, 648, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 650, 648, 648, 647, 647, 646, 646, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 643, 643, 642, 641, 640, 640, 640, 640, 639, 639, 638, 638, 635, 634, 634, 634, 634, 634, 633, 633, 633, 632, 632, 632, 629, 629, 629, 628, 628, 628, 628, 628, 628, 628, 627, 627, 627, 626, 625, 625, 625, 624, 624, 624, 624, 621, 621, 620, 620, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 618, 618, 617, 617, 617, 616, 616, 616, 615, 614, 614, 614, 614, 613, 612, 612, 611, 611, 611, 611, 611, 610, 610, 610, 610, 608, 608, 607, 607, 607, 605, 605, 605, 604, 603, 603, 602, 601, 601, 601, 600, 600, 600, 600, 600, 600, 599, 598, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 597, 596, 596, 595, 595, 595, 594, 594, 592, 592, 592, 591, 590, 590, 590, 590, 590, 586, 586, 586, 590, 590, 590, 590, 589, 588, 588, 588, 588, 588, 588, 587, 587, 587, 586, 586, 585, 582, 580, 580, 585, 585, 586, 584, 584, 582, 582, 582, 582, 582, 582, 580, 580, 580, 580, 580, 580, 581, 583, 583, 583, 584, 584, 583, 580, 578, 576, 576, 578, 580, 580, 580, 580, 580, 579, 579, 579, 579, 581, 581, 583, 583, 583, 579, 578, 577, 577, 577, 579, 581, 581, 580, 580, 580, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 577, 577, 577, 578, 578, 578, 578, 578, 575, 575, 575, 575, 576, 576, 576, 574, 574, 574, 575, 575, 575, 575, 575, 576, 576, 576, 576, 575, 575, 575, 575, 575, 573, 573, 573, 573, 573, 571, 570, 570, 571, 572, 575, 575, 575, 575, 575, 575, 575, 575, 575, 578, 578, 578, 578, 578, 578, 574, 574, 574, 573, 570, 570, 570, 571, 571, 572, 572, 572, 572, 577, 577, 577, 575, 574, 574, 574, 574, 574, 575, 575, 577, 577, 577, 577, 577, 573, 572, 572, 572, 572, 574, 576, 576, 576, 578, 578, 576, 575, 574, 561, 561, 557, 557, 557, 560, 560, 560, 560, 562.5, 564, 565, 565, 566, 566, 567, 568, 568, 569, 569, 570, 570, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 576, 576, 576, 576, 576, 577, 577, 577, 577, 576, 576, 576, 576, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 576, 576, 576, 576, 576, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 583, 583, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 579, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 578, 578, 578, 578, 578, 578, 578, 578, 578, 576, 576, 576, 576, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 582, 582, 582, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, 583, 583, 583, 584, 584, 584, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 589, 589, 589, 589, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 592, 592, 593, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 596, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 603, 603, 603, 603, 602, 602, 602, 602, 603, 604, 604, 605, 605, 605, 605, 605, 606, 606, 606, 607, 607, 607, 607, 608, 608, 608, 609, 609, 609, 609, 609, 609, 610, 610, 610, 610, 610, 610, 610, 610, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 616, 616, 616, 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, 617, 618, 618, 618, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, 616, 616, 615, 614, 612, 612, 612, 612, 612, 612, 612, 612, 611, 611, 610, 609, 609, 609, 609, 609, 609, 609, 609, 609, 608, 608, 608, 608, 608, 608, 608, 608, 606, 606, 606, 605, 605, 605, 605, 604, 604, 604, 604, 604, 604, 603, 603, 603, 603, 603, 602, 602, 602, 602, 602, 603, 603, 603, 603, 602, 602, 601, 599, 599, 599, 598, 597, 597, 597, 598, 598, 598, 597, 597, 596, 596, 594, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 592, 592, 591, 591, 591, 591, 590, 590, 590, 590, 590, 590, 590, 588, 588, 588, 588, 588, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 584, 584, 584, 584, 583, 583, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 580, 580, 580, 581, 581, 581, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 578, 579, 579, 579, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 576, 576, 577, 577, 577, 578, 578, 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 583, 583, 583, 583, 584, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 589, 589, 591, 591, 591, 589, 589, 589, 591, 591, 591, 593, 593, 591, 589, 589, 562, 562, 562, 562, 562, 563, 563, 563, 563.5, 563.5, 564, 564, 564, 564, 564, 566, 566, 566, 567, 567, 568, 569, 569, 569, 569, 569, 570, 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 578, 578, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 580, 580, 580, 580, 580, 579, 579, 578, 578, 578, 578, 578, 578, 578, 577, 577, 577, 577, 577, 575, 575, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, 573, 574, 574, 574, 574, 574, 574, 574, 574, 573, 571, 571, 571, 571, 571, 571, 572, 572, 572, 571, 571, 570, 570, 570, 570, 570, 570, 571, 571, 571, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 578, 578, 579, 579, 579, 580, 580, 580, 580, 580, 580, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 589, 589, 589, 590, 590, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 590, 589, 589, 589, 590, 590, 590, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 591, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 591, 591, 591, 591, 591, 590, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 588, 587, 587, 587, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 585, 585, 585, 585, 585, 585, 585, 584, 584, 583, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 584, 583, 582, 582, 582, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 581, 581, 581, 581, 581, 581, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 583, 583, 583, 583, 583, 583, 583, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 585, 585, 585, 585, 586, 587, 587, 588, 588, 589, 589, 589, 589, 589, 589, 589, 589, 589, 590, 590, 590, 590, 590, 590, 591, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 593, 593, 593, 593, 595, 596, 596, 596, 596, 596, 596, 596, 597, 597, 598, 599, 599, 599, 599, 599, 599, 600, 600, 601, 601, 601, 601, 602, 603, 603, 604, 604, 604, 605, 605, 605, 606, 607, 607, 607, 608, 608, 610, 610, 610, 610, 611, 611, 611, 611, 612, 612, 612, 613, 613, 614, 615, 615, 615, 615, 615, 617, 618, 619, 620, 620, 623, 624, 624, 624, 624, 625, 625, 625, 625, 628, 628, 628, 628, 628, 629, 629, 629, 629, 634, 634, 635, 637, 638, 639, 641, 641, 643, 643, 644, 644, 648, 648, 648, 644, 644, 644, 648, 649, 649, 566, 565, 561, 559, 559, 563, 567, 567, 567, 567, 567, 565, 565, 565, 565, 565, 568, 569, 569, 569, 569, 571, 571, 571, 568, 567, 567, 567, 569, 570, 573, 573, 573, 574, 574, 574, 574, 574, 575, 575, 575, 575, 576, 576, 576, 575, 575, 575, 575, 575, 577, 577, 573, 573, 573, 573, 573, 573, 570, 570, 570, 573, 575, 576, 576, 576, 577, 577, 577, 577, 577, 575, 572, 572, 572, 572, 573, 575, 575, 578, 578, 578, 576, 576, 576, 576, 577, 577, 577, 574, 573, 573, 573, 573, 573, 573, 573, 573, 577, 577, 577, 577, 574, 574, 574, 574, 574, 574, 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, 574, 574, 574, 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 575, 575, 575, 575, 577, 577, 577, 577, 577, 577, 579, 579, 579, 579, 579, 579, 579, 582, 582, 582, 581, 579, 578, 578, 578, 578, 579, 580, 580, 580, 580, 582, 582, 582, 581, 581, 581, 581, 581, 582, 582, 582, 581, 579, 579, 578, 578, 578, 577, 577, 577, 580, 581, 582, 582, 582, 580, 580, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 578, 578, 578, 578, 576, 576, 576, 579, 579, 579, 576, 576, 576, 576, 578, 578, 578, 578, 578, 578, 578, 576, 576, 580, 580, 579, 577, 577, 577, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 573, 573, 573, 573, 573, 577, 577, 577, 577, 577, 575, 573, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 576, 576, 576, 576, 576, 575, 575, 575, 575, 575, 576, 576, 574, 574, 574, 574, 573, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 573, 573, 573, 573, 573, 573, 574, 574, 574, 574, 574, 574, 575, 576, 576, 576, 576, 576, 570, 570, 570, 576, 576, 576, 576, 576, 576, 576, 576, 572, 570, 570, 570, 570, 574, 574, 574, 574, 573, 573, 573, 574, 575, 575, 575, 575, 573, 573, 573, 573, 573, 574, 574, 574, 569, 569, 569, 569, 569, 569, 573, 575, 576, 576, 576, 576, 572, 572, 572, 572, 572, 572, 575, 575, 575, 575, 575, 575, 575, 575, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, 572, 572, 574, 574, 574, 572, 572, 572, 572, 572, 572, 572, 574, 574, 574, 574, 575, 575, 576, 576, 576, 576, 572, 572, 572, 574, 574, 574, 575, 575, 575, 577, 577, 577, 577, 575, 575, 575, 573, 573, 573, 573, 576, 576, 576, 576, 574, 574, 574, 575, 575, 575, 575, 575, 575, 578, 578, 578, 578, 576, 576, 576, 574, 574, 574, 574, 575, 582, 582, 582, 574, 572, 572, 574, 574, 576, 576, 576, 576, 576, 576, 576, 576, 576, 574, 572, 572, 573, 577, 577, 577, 577, 578, 579, 579, 579, 579, 580, 580, 580, 580, 581, 581, 581, 581, 581, 580, 580, 580, 580, 580, 580, 580, 580, 574, 574, 581, 581, 581, 581, 581, 582, 584, 584, 581, 581, 581, 581, 581, 581, 579, 579, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 587, 587, 587, 587, 586, 586, 585, 585, 582, 582, 582, 585, 585, 585, 585, 585, 585, 588, 588, 588, 588, 586, 584, 584, 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 589, 589, 589, 589, 589, 593, 593, 586, 586, 586, 586, 586, 586, 587, 587, 587, 587, 587, 589, 589, 589, 589, 590, 591, 592, 592, 589, 589, 589, 589, 591, 592, 592, 592, 592, 592, 593, 594, 594, 592, 590, 590, 590, 587, 587, 589, 592, 592, 592, 592, 593, 593, 593, 593, 593, 593, 592, 592, 592, 589, 589, 589, 589, 589, 592, 594, 594, 594, 593, 592, 592, 592, 592, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 593, 593, 593, 593, 593, 593, 593, 593, 589, 589, 589, 593, 593, 593, 593, 591, 591, 591, 593, 593, 593, 593, 594, 594, 594, 594, 592, 592, 592, 589, 589, 589, 589, 591, 591, 591, 591, 592, 592, 592, 592, 592, 592, 591, 591, 590, 590, 590, 590, 589, 589, 589, 589, 589, 595, 595, 593, 588, 588, 589, 589, 589, 589, 592, 592, 592, 592, 592, 592, 593, 593, 593, 592, 590, 590, 589, 589, 585, 585, 585, 591, 591, 591, 591, 591, 591, 589, 588, 588, 588, 588, 588, 588, 588, 590, 592, 592, 592, 592, 591, 587, 587, 587, 587, 588, 589, 589, 589, 589, 589, 589, 589, 588, 588, 588, 588, 589, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 592, 592, 592, 592, 593, 595, 595, 595, 595, 593, 593, 593, 593, 593, 593, 593, 593, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 597, 597, 597, 598, 598, 596, 596, 594, 593, 593, 593, 597, 597, 597, 597, 601, 601, 601, 601, 601, 601, 601, 601, 601, 603, 603, 603, 603, 603, 603, 606, 606, 606, 606, 609, 609, 609, 609, 609, 609, 609, 609, 611, 613, 613, 613, 613, 613, 614, 615, 619, 619, 619, 619, 620, 620, 620, 620, 620, 622, 623, 623, 624, 624, 625, 625, 626, 626, 627, 627, 627, 628, 628, 629, 629, 630, 632, 633, 633, 633, 634, 637, 638, 639, 639, 640, 641, 642, 643, 644, 645, 645, 645, 646, 646, 648, 648, 649, 652, 652, 652, 654, 654, 656, 656, 656, 657, 658, 661, 662, 662, 664, 664, 664, 664, 664, 666, 667, 667, 668, 669, 670, 671, 672, 675, 677, 679, 681, 682, 683, 683, 687, 687, 690, 690, 694, 696, 696, 696, 698, 699, 700, 700, 701, 704, 704, 707, 707, 709, 710, 711, 713, 717, 720, 721, 721, 727, 730, 730, 732, 733, 738, 738, 746, 746, 746, 747, 751, 752, 753, 754, 757, 757, 758, 758, 759, 760, 760, 760, 762, 764, 765, 767, 773, 773, 780, 780, 782, 783, 785, 787, 788, 790, 799, 801, 809, 809, 809, 806, 806, 806, 825, 825, 825, 825, 571, 571, 567, 567, 567, 567, 568, 569, 569, 569, 569, 569, 569, 573, 575, 576, 576, 576, 576, 574, 574, 574, 578, 578, 578, 576, 576, 576, 577, 579, 579, 579, 579, 577, 577, 577, 577, 578, 578, 578, 574, 574, 574, 577, 579, 579, 580, 580, 580, 580, 579, 579, 579, 579, 578, 578, 578, 580, 580, 581, 590, 609, 671, 671, 671, 601, 601, 580, 580, 580, 580, 580, 580, 579, 579, 577, 577, 575, 575, 575, 576, 577, 580, 582, 582, 582, 581, 581, 580, 580, 578, 578, 578, 578, 578, 579, 580, 580, 580, 580, 580, 578, 578, 579, 580, 580, 581, 581, 581, 581, 579, 578, 578, 578, 578, 578, 578, 578, 576, 576, 578, 578, 578, 578, 580, 581, 581, 581, 580, 578, 577, 577, 579, 580, 581, 581, 581, 580, 580, 580, 580, 580, 581, 582, 582, 582, 582, 582, 582, 584, 584, 584, 580, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 580, 580, 580, 582, 584, 586, 586, 586, 583, 582, 582, 582, 584, 584, 584, 587, 587, 587, 583, 583, 583, 581, 581, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 585, 585, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 579, 579, 579, 579, 579, 582, 582, 582, 582, 582, 582, 581, 581, 581, 584, 584, 584, 584, 581, 581, 581, 583, 583, 586, 586, 586, 584, 583, 583, 583, 583, 583, 581, 581, 581, 579, 579, 579, 579, 579, 579, 579, 580, 580, 580, 580, 580, 582, 582, 582, 582, 584, 584, 584, 578, 576, 576, 576, 576, 580, 580, 580, 577, 577, 577, 577, 578, 580, 582, 582, 580, 579, 579, 580, 581, 581, 581, 581, 580, 580, 580, 579, 579, 579, 579, 579, 579, 579, 579, 579, 578, 577, 577, 577, 577, 576, 576, 579, 579, 582, 582, 582, 580, 580, 580, 580, 580, 580, 579, 579, 579, 579, 581, 581, 581, 581, 581, 580, 577, 577, 577, 577, 582, 582, 582, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 580, 581, 583, 583, 578, 578, 582, 582, 582, 582, 582, 582, 581, 581, 581, 581, 581, 580, 580, 580, 579, 578, 578, 578, 578, 578, 579, 579, 579, 579, 579, 580, 580, 580, 580, 584, 584, 584, 584, 583, 582, 582, 582, 585, 585, 585, 585, 585, 583, 581, 581, 581, 581, 582, 582, 580, 580, 580, 580, 579, 579, 579, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 582, 583, 583, 581, 581, 583, 583, 583, 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, 579, 579, 579, 581, 582, 583, 583, 583, 582, 582, 582, 582, 582, 582, 584, 584, 582, 582, 581, 581, 580, 580, 580, 583, 584, 584, 586, 586, 586, 588, 588, 592, 592, 592, 586, 585, 585, 587, 590, 591, 591, 590, 589, 589, 587, 587, 583, 582, 584, 588, 590, 590, 593, 593, 593, 587, 587, 587, 588, 588, 588, 587, 587, 587, 587, 587, 587, 588, 590, 590, 590, 590, 590, 590, 592, 592, 592, 592, 592, 592, 592, 591, 589, 589, 589, 592, 592, 594, 594, 592, 592, 592, 592, 593, 594, 594, 594, 594, 594, 594, 594, 594, 594, 601, 602, 602, 602, 599, 599, 599, 599, 596, 596, 596, 601, 601, 601, 601, 597, 597, 596, 596, 596, 601, 601, 601, 600, 599, 599, 602, 605, 605, 605, 605, 604, 603, 603, 603, 603, 606, 608, 608, 608, 606, 600, 599, 599, 601, 603, 603, 603, 603, 603, 603, 603, 603, 603, 605, 605, 607, 610, 610, 610, 609, 609, 609, 603, 603, 603, 603, 604, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 606, 608, 608, 608, 608, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 606, 608, 609, 609, 607, 606, 606, 606, 606, 607, 608, 609, 613, 613, 609, 609, 609, 609, 609, 609, 608, 607, 606, 606, 609, 609, 609, 609, 609, 609, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 610, 610, 608, 608, 608, 608, 609, 609, 609, 609, 609, 609, 609, 610, 610, 610, 607, 607, 608, 608, 608, 608, 610, 613, 613, 616, 616, 616, 616, 614, 614, 614, 614, 610, 610, 610, 614, 614, 614, 614, 615, 615, 615, 615, 615, 615, 613, 612, 612, 612, 612, 615, 615, 615, 614, 616, 616, 620, 620, 621, 620, 620, 620, 620, 621, 621, 621, 621, 620, 619, 619, 619, 619, 619, 621, 621, 623, 623, 624, 624, 624, 624, 624, 624, 624, 625, 625, 625, 625, 624, 624, 624, 624, 625, 625, 625, 625, 631, 633, 633, 633, 633, 629, 629, 630, 630, 630, 630, 630, 635, 636, 636, 636, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 648, 648, 648, 648, 648, 647, 647, 647, 647, 647, 650, 650, 650, 650, 652, 657, 661, 661, 661, 656, 656, 656, 666, 669, 670, 670, 670, 668, 668, 683, 683, 683, 683, 680, 680, 680, 680, 685, 685, 685, 689, 689, 689, 689, 694, 698, 701, 701, 701, 702, 702, 702, 702, 706, 713, 714, 714, 714, 714, 714, 718, 718, 718, 723, 723, 723, 723, 731, 733, 737, 742, 742, 742, 742, 749, 755, 755, 755, 758, 762, 762, 765, 766, 768, 768, 768, 768, 773, 773, 773, 773, 786, 791, 791, 793, 799, 801, 804, 804, 805, 810, 810, 812, 817, 824, 824, 830, 830, 831, 835, 842, 844, 854, 854, 855, 861, 862, 863, 869, 873, 874, 875, 875, 875, 876, 885, 890, 892, 894, 899, 911, 916, 917, 918, 926, 926, 937, 938, 943, 944, 957, 958, 962, 962, 962, 962, 964, 974, 975, 981, 984, 989, 998, 1002, 1008, 1010, 1018, 1020, 1021, 1025, 1028, 1029, 1042, 1045, 1046, 1051, 1059, 1063, 1066, 1078, 1085, 1086, 1096, 1098, 1112, 1114, 1115, 1119, 1121, 1126, 1139, 1142, 1157, 1164, 1165, 1169, 1171, 1195, 1197, 1199, 1199, 1209, 1210, 1225, 1225, 1227, 1242, 1242, 1242, 1245, 1254, 1254, 1264, 1286, 1286, 1286, 1299, 1305, 1324, 1326, 1330, 587, 586, 583, 581, 580, 580, 583, 586, 586, 586, 586, 586, 584, 584, 584, 588, 588, 588, 590, 590, 590, 590, 593, 593, 594, 594, 596, 596, 596, 598, 602, 603, 599, 591, 591, 591, 591, 590, 590, 590, 590, 591, 591, 591, 591, 591, 591, 591, 590, 590, 590, 590, 588, 588, 588, 588, 589, 589, 589, 588, 588, 587, 587, 587, 588, 588, 588, 588, 587, 587, 587, 591, 591, 591, 589, 589, 589, 589, 589, 595, 595, 587, 587, 591, 591, 591, 591, 591, 593, 593, 593, 593, 593, 593, 590, 589, 589, 589, 594, 594, 594, 594, 593, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 590, 589, 589, 589, 595, 595, 595, 594, 594, 594, 594, 591, 591, 591, 591, 593, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 592, 592, 593, 593, 593, 590, 590, 590, 590, 592, 593, 593, 593, 593, 593, 592, 590, 590, 596, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 592, 592, 598, 598, 598, 598, 598, 598, 598, 597, 597, 597, 595, 594, 594, 593, 593, 592, 592, 592, 594, 594, 594, 594, 594, 596, 596, 596, 596, 596, 596, 593, 593, 593, 603, 603, 598, 598, 598, 595, 595, 595, 595, 593, 593, 594, 594, 594, 594, 594, 595, 598, 598, 598, 597, 597, 597, 597, 597, 596, 596, 596, 596, 596, 595, 595, 595, 595, 594, 594, 594, 594, 594, 595, 594, 592, 592, 592, 592, 594, 594, 594, 594, 597, 597, 597, 594, 592, 592, 592, 592, 596, 596, 596, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 595, 595, 596, 596, 598, 598, 596, 594, 594, 594, 594, 594, 594, 595, 600, 600, 596, 595, 594, 593, 591, 591, 592, 593, 593, 593, 593, 593, 593, 593, 593, 592, 592, 592, 592, 593, 593, 596, 596, 595, 595, 595, 595, 595, 594, 594, 594, 597, 597, 597, 596, 596, 596, 594, 593, 593, 593, 594, 594, 594, 594, 595, 596, 596, 596, 596, 596, 597, 597, 597, 597, 596, 596, 596, 596, 596, 595, 593, 593, 593, 593, 593, 594, 596, 596, 596, 596, 596, 596, 596, 596, 594, 594, 594, 594, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 597, 596, 596, 596, 598, 598, 598, 598, 598, 596, 594, 594, 597, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 597, 597, 597, 597, 597, 597, 597, 597, 598, 598, 598, 598, 600, 600, 597, 597, 597, 597, 597, 597, 597, 600, 602, 602, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 601, 602, 602, 602, 602, 599, 599, 599, 604, 604, 604, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 600, 600, 600, 601, 605, 605, 605, 607, 607, 607, 607, 607, 606, 606, 606, 606, 606, 606, 607, 607, 607, 607, 606, 606, 606, 607, 607, 607, 607, 607, 607, 605, 605, 605, 605, 607, 607, 607, 607, 608, 608, 608, 609, 609, 611, 612, 612, 612, 607, 607, 607, 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 610, 610, 610, 610, 610, 613, 613, 613, 613, 614, 614, 614, 614, 614, 615, 615, 615, 615, 615, 615, 614, 613, 613, 615, 617, 620, 620, 618, 616, 614, 614, 617, 622, 622, 618, 616, 616, 616, 617, 618, 618, 620, 620, 623, 623, 623, 623, 623, 623, 624, 698, 803, 859, 747, 635, 635, 623, 623, 623, 623, 624, 626, 626, 626, 626, 624, 621, 621, 621, 620, 620, 620, 625, 625, 625, 625, 625, 625, 623, 623, 623, 623, 625, 630, 630, 630, 629, 629, 629, 629, 625, 625, 627, 629, 629, 631, 631, 628, 626, 626, 626, 626, 626, 628, 628, 630, 630, 631, 631, 631, 631, 633, 633, 633, 633, 632, 631, 631, 635, 637, 637, 637, 637, 637, 639, 639, 641, 642, 642, 638, 638, 633, 633, 633, 633, 634, 638, 638, 638, 638, 643, 643, 643, 643, 642, 642, 642, 642, 642, 642, 643, 643, 643, 643, 643, 641, 641, 641, 645, 645, 645, 645, 645, 645, 649, 649, 649, 649, 649, 649, 649, 649, 649, 651, 653, 653, 656, 662, 663, 662, 656, 656, 656, 656, 660, 660, 660, 662, 663, 663, 658, 654, 654, 654, 666, 666, 666, 662, 662, 662, 662, 662, 662, 667, 667, 667, 667, 670, 670, 670, 670, 673, 675, 676, 676, 676, 676, 676, 676, 679, 679, 681, 686, 686, 686, 686, 686, 691, 691, 691, 688, 688, 688, 693, 693, 699, 699, 699, 699, 700, 703, 706, 708, 712, 712, 713, 713, 717, 717, 718, 718, 718, 721, 732, 732, 732, 732, 733, 733, 733, 733, 737, 737, 731, 731, 731, 731, 742, 742, 742, 746, 746, 752, 755, 757, 760, 763, 764, 764, 764, 768, 768, 775, 779, 779, 779, 780, 780, 782, 786, 787, 788, 791, 799, 799, 802, 802, 807, 807, 808, 811, 811, 816, 816, 826, 826, 826, 830, 833, 842, 847, 849, 856, 858, 858, 861, 861, 863, 872, 877, 881, 883, 883, 887, 905, 905, 907, 912, 925, 925, 925, 926, 926, 931, 952, 952, 955, 956, 963, 966, 966, 977, 991, 992, 996, 996, 1005, 1016, 1017, 1017, 1019, 1019, 1040, 1040, 1046, 1046, 1047, 1063, 1063, 1063, 1078, 1087, 1088, 1112, 1116, 1122, 1122, 1122, 1123, 1142, 1147, 1148, 1155, 1164, 1175, 1186, 1192, 1192, 1201, 1208, 1208, 1215, 1232, 1241, 1244, 1256, 1261, 1270, 1272, 1279, 1282, 1292, 1312, 1322, 1339, 1339, 1339, 1339, 1342, 1346, 1372, 1382, 1388, 1389, 1404, 1414, 1418, 1429, 1446, 1450, 1457, 1457, 1480, 1491, 1499, 1499, 1519, 1540, 1549, 1551, 1560, 1561, 1601, 1606, 1606, 1606, 1627, 1632, 1633, 1671, 1677, 1682, 1702, 1727, 1727, 1732, 1734, 1734, 1761, 1788, 1794, 1798, 1822, 1831, 1843, 1848, 1851, 1871, 1907, 1907, 1907, 1918, 1939, 1959, 1966, 1966, 1990, 2014, 2030, 2050, 2052, 2055, 2080, 2103, 2110, 2142, 2143, 2179, 2242, 2242, 2244, 2244, 2244, 2247, 2273, 2288, 2307, 2318, 2344, 2353, 2357, 2377, 2406, 2418, 2453, 2456, 2471, 2507, 2518, 2523, 2571, 2573, 2579, 2609, 2625, 2644, 2670, 2690, 2690, 623, 623, 623, 621, 613, 613, 613, 613, 615, 615, 619, 622, 622, 622, 622, 622, 619, 619, 619, 618, 618, 618, 619, 619, 619, 619, 621, 621, 621, 621, 622, 622, 622, 622, 621, 621, 619, 619, 617, 617, 617, 617, 615, 615, 615, 615, 620, 621, 623, 623, 623, 622, 621, 621, 619, 619, 619, 619, 619, 619, 620, 620, 620, 620, 620, 620, 620, 622, 622, 622, 618, 618, 618, 617, 617, 619, 619, 619, 619, 618, 618, 618, 618, 618, 621, 621, 615, 615, 614, 614, 614, 618, 618, 619, 619, 619, 619, 619, 619, 619, 619, 619, 618, 618, 618, 618, 618, 618, 619, 621, 622, 622, 622, 622, 621, 620, 620, 620, 620, 620, 620, 620, 618, 618, 618, 618, 620, 620, 620, 619, 619, 619, 619, 621, 625, 625, 621, 619, 619, 617, 617, 617, 617, 622, 627, 627, 625, 625, 625, 618, 618, 617, 619, 620, 622, 624, 624, 625, 626, 626, 626, 622, 622, 622, 622, 622, 622, 622, 622, 622, 623, 623, 623, 627, 627, 627, 627, 626, 626, 626, 626, 626, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 624, 624, 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 625, 628, 628, 628, 628, 628, 628, 627, 627, 627, 627, 627, 627, 627, 627, 628, 628, 628, 629, 629, 629, 629, 629, 631, 631, 626, 626, 626, 626, 630, 630, 626, 624, 624, 624, 625, 625, 625, 625, 625, 625, 625, 625, 628, 628, 628, 628, 625, 625, 633, 633, 633, 628, 628, 628, 628, 628, 628, 631, 631, 629, 626, 626, 626, 626, 626, 626, 626, 626, 626, 626, 625, 625, 625, 627, 629, 631, 633, 633, 636, 636, 637, 635, 633, 633, 630, 625, 625, 625, 625, 625, 625, 625, 630, 631, 631, 631, 631, 631, 631, 630, 630, 631, 631, 631, 631, 631, 631, 628, 628, 628, 631, 635, 635, 633, 631, 629, 628, 628, 628, 628, 628, 628, 628, 632, 632, 635, 635, 635, 631, 631, 630, 630, 630, 630, 630, 630, 636, 638, 638, 638, 638, 635, 635, 634, 634, 634, 634, 634, 636, 636, 633, 633, 635, 635, 635, 635, 636, 637, 637, 637, 637, 634, 634, 634, 637, 637, 637, 636, 636, 636, 636, 636, 636, 636, 635, 635, 635, 635, 635, 636, 638, 638, 638, 638, 638, 634, 631, 631, 639, 639, 639, 639, 639, 639, 641, 641, 641, 641, 641, 644, 644, 644, 644, 642, 641, 641, 641, 641, 642, 642, 642, 642, 638, 637, 637, 640, 647, 647, 647, 647, 640, 640, 640, 640, 642, 645, 645, 645, 645, 645, 645, 643, 643, 643, 644, 644, 645, 645, 645, 645, 651, 653, 653, 646, 646, 646, 646, 646, 648, 650, 650, 650, 650, 650, 650, 652, 654, 654, 654, 652, 652, 651, 651, 651, 655, 655, 655, 655, 650, 650, 650, 650, 650, 653, 653, 653, 653, 653, 653, 653, 653, 653, 654, 654, 655, 655, 655, 655, 658, 658, 658, 658, 661, 667, 667, 662, 655, 655, 655, 655, 660, 661, 661, 661, 661, 660, 660, 660, 659, 659, 659, 659, 659, 664, 664, 664, 664, 663, 663, 663, 663, 661, 661, 661, 673, 675, 672, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 669, 669, 669, 671, 671, 671, 671, 675, 675, 675, 675, 669, 669, 669, 669, 673, 676, 677, 677, 677, 677, 677, 677, 679, 681, 681, 681, 681, 680, 679, 679, 679, 679, 679, 679, 679, 680, 683, 684, 685, 686, 688, 712, 712, 712, 712, 686, 686, 686, 686, 686, 692, 692, 694, 694, 691, 691, 691, 691, 691, 691, 687, 687, 687, 687, 694, 694, 694, 694, 694, 696, 699, 699, 699, 699, 694, 694, 700, 705, 705, 703, 697, 697, 697, 697, 710, 710, 709, 708, 708, 708, 708, 712, 720, 725, 724, 714, 714, 714, 716, 723, 723, 715, 715, 715, 715, 716, 719, 719, 720, 723, 727, 738, 738, 738, 725, 725, 725, 726, 730, 730, 731, 731, 734, 735, 735, 735, 736, 742, 742, 744, 744, 744, 744, 748, 748, 748, 748, 748, 751, 751, 754, 757, 757, 763, 763, 763, 763, 763, 770, 770, 770, 772, 773, 780, 780, 780, 780, 781, 784, 793, 793, 797, 797, 797, 799, 799, 799, 800, 810, 811, 811, 811, 813, 819, 822, 825, 831, 836, 851, 851, 832, 832, 852, 852, 852, 852, 852, 855, 855, 856, 862, 863, 865, 867, 873, 878, 879, 880, 884, 896, 896, 898, 910, 911, 918, 922, 932, 941, 941, 941, 941, 941, 941, 942, 944, 953, 953, 956, 962, 968, 972, 973, 975, 983, 985, 987, 995, 995, 1002, 1009, 1014, 1014, 1018, 1019, 1024, 1036, 1044, 1046, 1052, 1064, 1068, 1071, 1072, 1077, 1086, 1087, 1098, 1098, 1103, 1107, 1118, 1129, 1129, 1129, 1130, 1130, 1150, 1163, 1164, 1166, 1166, 1185, 1196, 1210, 1212, 1214, 1214, 1214, 1232, 1243, 1246, 1260, 1266, 1268, 1268, 1268, 1281, 1297, 1309, 1321, 1328, 1342, 1342, 1362, 1366, 1396, 1406, 1406, 1409, 1415, 1447, 1447, 1454, 1457, 1469, 1491, 1494, 1511, 1539, 1544, 1555, 1559, 1591, 1611, 1611, 1623, 1637, 1659, 1670, 1679, 1692, 1696, 1704, 1733, 1760, 1762, 1780, 1791, 1794, 1813, 1831, 1847, 1864, 1872, 1889, 1924, 1926, 1941, 1960, 1963, 1987, 2010, 2016, 2029, 2042, 2071, 2084, 2103, 2118, 2127, 2173, 2173, 2175, 2221, 2233, 2244, 2276, 2276, 2289, 2325, 2357, 2365, 2387, 2396, 2419, 2426, 2456, 2474, 2498, 2516, 2539, 2568, 2580, 2621, 2633, 2644, 2658, 2658, 2691, 2736, 2765, 2792, 2809, 2832, 2852, 2866, 2898, 2924, 2980, 2991, 3002, 3002, 3019, 3063, 3081, 3112, 3153, 3176, 3195, 3208, 3256, 3265, 3290, 3336, 3375, 3396, 3411, 3476, 3476, 3477, 3542, 3581, 3609, 3609, 3622, 3703, 3706, 3760, 3763, 3799, 3835, 3869, 3897, 3944, 3967, 3972, 3973, 4075, 4087, 4115, 4147, 4165, 4219, 4258, 4259, 4333, 4393, 4413, 4423, 4494, 4517, 4518, 4556, 4613, 4685, 4716, 4778, 4786, 4820, 4887, 4892, 4938, 4990, 5020, 5080, 5107, 5191, 5203, 5263, 5267, 5300, 5379, 5426, 5457, 5478, 5551, 5584, 5638, 5746, 5832, 5832, 5871, 5871, 5940, 5969, 5988, 6103, 6128, 6138, 690, 686, 684, 684, 684, 684, 684, 687, 687, 687, 687, 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 687, 687, 687, 687, 687, 687, 684, 684, 684, 684, 687, 687, 687, 687, 687, 687, 687, 690, 690, 690, 690, 686, 682, 681, 681, 681, 684, 684, 684, 684, 684, 684, 684, 684, 687, 687, 687, 687, 685, 685, 681, 681, 680, 680, 680, 683, 683, 683, 682, 682, 682, 682, 683, 685, 685, 685, 681, 681, 681, 681, 679, 679, 679, 679, 679, 679, 679, 679, 679, 680, 680, 680, 679, 679, 679, 679, 681, 682, 682, 686, 688, 688, 688, 681, 681, 681, 681, 681, 683, 683, 683, 683, 683, 685, 685, 685, 677, 677, 677, 677, 679, 679, 679, 684, 685, 685, 685, 685, 685, 686, 686, 686, 686, 686, 686, 686, 685, 685, 685, 685, 685, 685, 685, 685, 686, 686, 686, 687, 687, 687, 687, 687, 689, 689, 689, 689, 689, 689, 688, 683, 683, 683, 683, 683, 686, 686, 689, 690, 690, 690, 690, 690, 687, 687, 689, 689, 692, 692, 692, 692, 692, 691, 689, 689, 691, 691, 691, 691, 691, 693, 693, 693, 693, 693, 695, 698, 698, 698, 697, 695, 695, 695, 695, 694, 694, 694, 696, 696, 696, 694, 694, 694, 694, 695, 695, 695, 695, 695, 690, 690, 697, 697, 697, 697, 698, 698, 699, 699, 699, 699, 699, 696, 696, 696, 696, 696, 702, 702, 702, 702, 701, 701, 701, 701, 701, 701, 701, 699, 697, 697, 697, 697, 697, 697, 698, 698, 698, 698, 698, 704, 704, 704, 704, 704, 704, 704, 700, 700, 700, 700, 700, 698, 698, 698, 700, 703, 703, 706, 706, 706, 706, 710, 710, 706, 706, 706, 706, 705, 704, 704, 704, 704, 704, 704, 710, 710, 704, 703, 703, 703, 703, 703, 705, 705, 705, 712, 712, 712, 711, 711, 706, 706, 709, 709, 706, 706, 709, 709, 707, 707, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 705, 705, 706, 709, 710, 711, 711, 711, 711, 711, 711, 711, 707, 707, 714, 715, 715, 715, 715, 715, 714, 714, 714, 714, 715, 715, 715, 717, 717, 717, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 715, 715, 715, 716, 719, 719, 717, 717, 717, 717, 723, 724, 735, 735, 722, 722, 722, 722, 725, 726, 726, 726, 724, 722, 722, 722, 728, 729, 729, 729, 729, 729, 729, 729, 729, 730, 733, 733, 733, 733, 733, 733, 732, 732, 732, 732, 731, 731, 731, 731, 731, 731, 733, 733, 733, 733, 734, 737, 737, 737, 737, 732, 732, 732, 732, 735, 745, 745, 747, 747, 747, 740, 740, 740, 740, 750, 750, 750, 747, 747, 746, 746, 746, 746, 736, 736, 739, 744, 744, 745, 745, 746, 748, 753, 753, 749, 747, 744, 743, 743, 746, 751, 751, 753, 753, 755, 755, 755, 755, 755, 755, 755, 755, 760, 760, 760, 757, 757, 762, 762, 762, 762, 762, 762, 760, 760, 760, 760, 760, 760, 760, 759, 759, 759, 763, 765, 766, 766, 766, 766, 766, 766, 766, 766, 774, 774, 774, 774, 774, 774, 772, 772, 772, 772, 772, 772, 772, 776, 776, 776, 776, 780, 780, 780, 778, 776, 776, 776, 776, 780, 780, 780, 786, 787, 787, 794, 795, 795, 795, 788, 788, 788, 788, 788, 788, 794, 798, 798, 806, 806, 806, 805, 796, 796, 796, 798, 800, 801, 801, 801, 799, 799, 799, 806, 809, 809, 809, 813, 813, 813, 815, 815, 815, 812, 812, 812, 818, 819, 821, 821, 822, 822, 823, 823, 823, 829, 837, 837, 834, 830, 830, 829, 829, 829, 832, 841, 841, 841, 841, 845, 845, 846, 846, 846, 845, 845, 846, 853, 853, 855, 856, 861, 863, 863, 863, 863, 863, 866, 866, 866, 876, 877, 881, 883, 883, 883, 881, 881, 881, 895, 895, 895, 895, 897, 901, 906, 906, 907, 909, 917, 920, 921, 926, 931, 933, 933, 937, 938, 938, 940, 944, 948, 948, 948, 948, 959, 963, 964, 964, 972, 974, 975, 978, 978, 980, 981, 993, 994, 1002, 1002, 1005, 1005, 1008, 1009, 1011, 1012, 1023, 1035, 1039, 1039, 1044, 1044, 1054, 1054, 1063, 1063, 1063, 1068, 1069, 1082, 1085, 1085, 1085, 1094, 1105, 1118, 1128, 1128, 1134, 1134, 1135, 1150, 1155, 1155, 1165, 1169, 1169, 1170, 1198, 1206, 1206, 1205, 1205, 1205, 1232, 1232, 1232, 1241, 1241, 1249, 1267, 1269, 1274, 1286, 1288, 1315, 1315, 1326, 1326, 1341, 1342, 1347, 1354, 1356, 1366, 1374, 1408, 1408, 1419, 1420, 1426, 1450, 1450, 1456, 1456, 1479, 1488, 1494, 1502, 1513, 1523, 1543, 1545, 1545, 1556, 1569, 1592, 1593, 1604, 1631, 1639, 1660, 1665, 1678, 1691, 1701, 1739, 1739, 1739, 1750, 1767, 1778, 1794, 1804, 1806, 1817, 1824, 1850, 1866, 1875, 1905, 1914, 1919, 1930, 1930, 1947, 1991, 1996, 2000, 2033, 2046, 2071, 2071, 2073, 2083, 2136, 2150, 2163, 2181, 2183, 2202, 2227, 2237, 2244, 2254, 2312, 2312, 2350, 2360, 2389, 2391, 2391, 2450, 2477, 2481, 2519, 2527, 2558, 2593, 2597, 2635, 2663, 2673, 2704, 2709, 2774, 2777, 2812, 2828, 2886, 2903, 2927, 2939, 2990, 3064, 3069, 3071, 3117, 3153, 3197, 3244, 3261, 3284, 3325, 3363, 3423, 3468, 3486, 3500, 3551, 3596, 3627, 3682, 3692, 3719, 3780, 3785, 3850, 3907, 3913, 3970, 4009, 4061, 4121, 4180, 4180, 4199, 4199, 4259, 4339, 4378, 4404, 4423, 4516, 4542, 4580, 4582, 4686, 4704, 4773, 4775, 4849, 4892, 4944, 4964, 5008, 5118, 5128, 5168, 5175, 5267, 5356, 5358, 5420, 5489, 5529, 5562, 5618, 5672, 5727, 5789, 5813, 5872, 5941, 5971, 6009, 6097, 6098, 6263, 6269, 6346, 6408, 6431, 6450, 6616, 7069, 7069, 7069, 6952, 6952, 6952, 6987, 7055, 7114, 7231, 7242, 7296, 7309, 7366, 7538, 7577, 7629, 7706, 7784, 7810, 7864, 7942, 7963, 8077, 8195, 8280, 8353, 8418, 8424, 8516, 8563, 8692, 8769, 8856, 8929, 9014, 9063, 9122, 9138, 9282, 9387, 9455, 9564, 9631, 9709, 9851, 9852, 9905, 10031, 10156, 10228, 10330, 10381, 10451, 10606, 10647, 10661, 10878, 10886, 11042, 11177, 11279, 11291, 11403, 11488, 11617, 11714, 11869, 11955, 12029, 12089, 12288, 12338, 12414, 12526, 12678, 12708, 12790, 12950, 13142, 13240, 13256, 13403, 13556, 13563, 13719, 13911, 13964, 14027, 14112, 14255, 14419, 828, 828, 851, 851, 826, 826, 826, 825, 825, 825, 829, 829, 829, 829, 818, 818, 818, 818, 820, 820, 820, 820, 818, 817, 817, 817, 816, 816, 816, 824, 824, 823, 823, 823, 823, 821, 818, 818, 818, 818, 818, 817, 813, 813, 813, 813, 813, 815, 815, 815, 815, 814, 812, 808, 808, 808, 812, 812, 812, 812, 807, 807, 807, 807, 808, 808, 808, 808, 808, 808, 815, 830, 830, 814, 806, 804, 800, 800, 799, 799, 799, 799, 809, 809, 809, 806, 806, 806, 806, 808, 808, 808, 807, 800, 800, 800, 802, 805, 805, 805, 805, 804, 804, 804, 804, 808, 811, 811, 810, 810, 810, 810, 810, 810, 812, 813, 812, 812, 812, 812, 811, 811, 811, 811, 811, 817, 819, 819, 817, 813, 812, 812, 813, 814, 814, 814, 814, 815, 816, 817, 817, 817, 817, 817, 817, 817, 817, 819, 819, 819, 819, 813, 813, 813, 816, 821, 821, 821, 819, 819, 819, 819, 819, 816, 816, 816, 819, 820, 820, 822, 826, 826, 827, 827, 827, 828, 828, 828, 826, 826, 826, 826, 832, 832, 832, 831, 821, 821, 830, 830, 830, 828, 827, 826, 826, 826, 833, 833, 833, 833, 838, 838, 840, 846, 846, 844, 833, 833, 828, 828, 828, 833, 835, 836, 836, 836, 836, 834, 834, 834, 834, 839, 839, 840, 840, 840, 843, 843, 843, 842, 842, 842, 842, 846, 846, 846, 846, 836, 836, 836, 836, 837, 837, 837, 837, 837, 837, 837, 843, 847, 848, 848, 848, 848, 848, 848, 848, 849, 854, 854, 854, 852, 848, 848, 848, 849, 855, 855, 855, 854, 852, 848, 848, 848, 850, 850, 850, 850, 852, 852, 854, 854, 854, 854, 854, 854, 856, 856, 856, 859, 859, 859, 859, 859, 851, 851, 851, 851, 860, 865, 865, 865, 865, 858, 858, 859, 862, 862, 862, 863, 863, 863, 853, 853, 853, 853, 862, 862, 862, 862, 862, 864, 867, 867, 866, 866, 866, 865, 865, 865, 867, 867, 867, 875, 1101, 1101, 869, 869, 867, 867, 861, 861, 863, 868, 870, 872, 872, 872, 876, 876, 876, 876, 878, 878, 878, 875, 875, 875, 875, 879, 880, 880, 880, 880, 880, 875, 875, 875, 873, 873, 885, 885, 885, 885, 885, 885, 885, 885, 888, 888, 888, 888, 881, 881, 881, 884, 891, 894, 908, 908, 897, 897, 897, 897, 897, 897, 896, 896, 898, 898, 898, 899, 899, 899, 896, 896, 896, 898, 906, 906, 906, 910, 915, 915, 915, 913, 911, 911, 913, 917, 917, 917, 918, 918, 918, 918, 919, 919, 919, 925, 926, 926, 926, 928, 928, 928, 928, 924, 924, 924, 926, 939, 939, 933, 931, 931, 931, 932, 934, 938, 940, 940, 940, 940, 940, 945, 945, 945, 945, 945, 945, 949, 949, 949, 949, 949, 949, 950, 955, 965, 965, 965, 965, 965, 960, 960, 960, 971, 971, 971, 963, 963, 963, 965, 965, 966, 966, 966, 966, 968, 971, 973, 973, 972, 968, 968, 968, 979, 979, 978, 978, 978, 978, 987, 987, 989, 989, 989, 983, 983, 983, 983, 984, 984, 985, 985, 989, 994, 997, 998, 998, 998, 1005, 1005, 1005, 1003, 1003, 1003, 1006, 1006, 1006, 1010, 1012, 1012, 1013, 1013, 1015, 1015, 1015, 1015, 1019, 1024, 1024, 1025, 1028, 1032, 1032, 1032, 1032, 1032, 1033, 1033, 1033, 1038, 1047, 1047, 1046, 1047, 1047, 1047, 1052, 1052, 1056, 1056, 1056, 1056, 1056, 1056, 1075, 1075, 1075, 1074, 1074, 1074, 1084, 1084, 1090, 1090, 1090, 1089, 1089, 1089, 1093, 1101, 1132, 1132, 1109, 1109, 1109, 1147, 1147, 1146, 1112, 1112, 1112, 1119, 1130, 1132, 1132, 1136, 1134, 1142, 1142, 1142, 1142, 1144, 1160, 1160, 1164, 1172, 1172, 1172, 1165, 1164, 1173, 1177, 1180, 1180, 1186, 1197, 1197, 1202, 1202, 1214, 1214, 1218, 1228, 1228, 1229, 1229, 1230, 1240, 1245, 1258, 1289, 1293, 1293, 1293, 1293, 1289, 1289, 1289, 1289, 1292, 1298, 1310, 1310, 1317, 1324, 1338, 1342, 1342, 1346, 1346, 1355, 1355, 1374, 1374, 1374, 1387, 1389, 1405, 1405, 1405, 1429, 1431, 1440, 1440, 1440, 1459, 1471, 1475, 1482, 1486, 1489, 1502, 1529, 1529, 1529, 1542, 1634, 1634, 1589, 1589, 1589, 1589, 1603, 1609, 1620, 1633, 1644, 1644, 1670, 1673, 1695, 1696, 1704, 1704, 1731, 1733, 1763, 1763, 1777, 1787, 1791, 1809, 1814, 1828, 1858, 1859, 1877, 1893, 1898, 1900, 1917, 1933, 1969, 1970, 1990, 1992, 2027, 2055, 2111, 2114, 2114, 2114, 2114, 2114, 2147, 2159, 2163, 2189, 2189, 2219, 2242, 2256, 2284, 2288, 2301, 2356, 2367, 2389, 2441, 2441, 2453, 2453, 2478, 2490, 2519, 2533, 2567, 2583, 2589, 2630, 2644, 2645, 2674, 2733, 2748, 2772, 2780, 2812, 2872, 2877, 2894, 2932, 2944, 2964, 2993, 3040, 3096, 3113, 3125, 3130, 3161, 3204, 3217, 3275, 3307, 3317, 3352, 3382, 3400, 3464, 3498, 3508, 3558, 3586, 3590, 3637, 3672, 3742, 3821, 3821, 3833, 3833, 3895, 3924, 3928, 3989, 4025, 4058, 4112, 4143, 4153, 4202, 4251, 4288, 4355, 4394, 4394, 4462, 4469, 4471, 4536, 4592, 4645, 4701, 4731, 4797, 4806, 4888, 4915, 4943, 4977, 5057, 5102, 5161, 5223, 5255, 5292, 5386, 5399, 5505, 5534, 5615, 5674, 5741, 5762, 5856, 5920, 6016, 6049, 6124, 6200, 6296, 6307, 6417, 6476, 6581, 6711, 6733, 6831, 6890, 6921, 7033, 7180, 7234, 7295, 7372, 7478, 7593, 7718, 7752, 7886, 7968, 8047, 8084, 8253, 8307, 8386, 8445, 8500, 8652, 8776, 8816, 8949, 9010, 9118, 9198, 9329, 9394, 9527, 9614, 9666, 9797, 9875, 9983, 10008, 10197, 10270, 10428, 10503, 10672, 10681, 10821, 10940, 11021, 11157, 11186, 11416, 11501, 11560, 11756, 11768, 11907, 12090, 12233, 12242, 12459, 12513, 12606, 12863, 12863, 12959, 13173, 13233, 13316, 13502, 13593, 13704, 13790, 13963, 14031, 14263, 14380, 14504, 14684, 14778, 15165, 15165, 15301, 15466, 15474, 15719, 15775, 15929, 15991, 16132, 16339, 16516, 16732, 16898, 16914, 17090, 17178, 17284, 17664, 17755, 17893, 18094, 18227, 18344, 18474, 18650, 18733, 19017, 19122, 19352, 19459, 19711, 19818, 19932, 20133, 20253, 20571, 20693, 20915, 21093, 21157, 21249, 21437, 21640, 21852, 22113, 22635, 22748, 22748, 22823, 22868, 23171, 23470, 23651, 23827, 24001, 24257, 24399, 24566, 24845, 25078, 25414, 25582, 25787, 25913, 26151, 26376, 26543, 26767, 26968, 27204, 27457, 27670, 27859, 28141, 28388, 28439, 28752, 29112, 29291, 29522, 29819, 30054, 30322, 30510, 30797, 30962, 31063, 31353, 31610, 31912, 32174, 32509, 32750, 33016, 1128, 1110, 1100, 1100, 1095, 1095, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1092, 1092, 1092, 1092, 1091, 1078, 1077, 1077, 1082, 1082, 1082, 1078, 1078, 1078, 1080, 1080, 1080, 1080, 1080, 1078, 1079, 1077, 1077, 1074, 1068, 1068, 1068, 1086, 1102, 1102, 1081, 1068, 1068, 1068, 1068, 1073, 1147, 1167, 1167, 1095, 1059, 1057, 1057, 1057, 1060, 1060, 1060, 1060, 1057, 1053, 1053, 1053, 1051, 1051, 1051, 1051, 1049, 1049, 1049, 1049, 1047, 1047, 1047, 1047, 1045, 1045, 1045, 1045, 1044, 1044, 1044, 1044, 1048, 1048, 1048, 1043, 1043, 1043, 1041, 1041, 1041, 1041, 1045, 1049, 1051, 1051, 1050, 1050, 1046, 1042, 1041, 1041, 1041, 1041, 1047, 1047, 1047, 1047, 1047, 1056, 1057, 1057, 1057, 1057, 1057, 1048, 1048, 1060, 1060, 1048, 1048, 1056, 1059, 1059, 1059, 1059, 1065, 1065, 1065, 1065, 1062, 1062, 1062, 1062, 1062, 1062, 1063, 1063, 1063, 1063, 1062, 1062, 1062, 1062, 1066, 1067, 1070, 1070, 1074, 1074, 1074, 1070, 1070, 1070, 1077, 1081, 1081, 1081, 1081, 1077, 1077, 1077, 1083, 1083, 1084, 1084, 1084, 1080, 1080, 1080, 1086, 1090, 1090, 1090, 1090, 1090, 1091, 1091, 1093, 1093, 1093, 1092, 1090, 1090, 1090, 1100, 1101, 1101, 1101, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1100, 1103, 1108, 1110, 1110, 1107, 1107, 1107, 1107, 1111, 1111, 1111, 1112, 1112, 1109, 1105, 1105, 1107, 1111, 1115, 1115, 1115, 1115, 1119, 1119, 1119, 1119, 1116, 1113, 1113, 1116, 1124, 1126, 1129, 1129, 1129, 1129, 1129, 1129, 1122, 1122, 1122, 1120, 1120, 1120, 1129, 1130, 1130, 1130, 1137, 1137, 1127, 1127, 1129, 1130, 1136, 1141, 1141, 1141, 1142, 1142, 1142, 1141, 1140, 1140, 1138, 1138, 1138, 1138, 1138, 1144, 1144, 1144, 1144, 1150, 1150, 1147, 1146, 1146, 1146, 1146, 1152, 1158, 1158, 1158, 1158, 1158, 1158, 1156, 1156, 1156, 1156, 1154, 1154, 1154, 1159, 1162, 1162, 1162, 1162, 1162, 1159, 1159, 1156, 1156, 1156, 1162, 1162, 1162, 1162, 1166, 1172, 1172, 1172, 1171, 1169, 1169, 1170, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1175, 1175, 1175, 1175, 1176, 1176, 1177, 1177, 1177, 1177, 1177, 1178, 1178, 1178, 1179, 1180, 1180, 1180, 1180, 1180, 1183, 1187, 1187, 1187, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1198, 1198, 1198, 1200, 1204, 1204, 1200, 1199, 1199, 1199, 1199, 1206, 1206, 1206, 1206, 1208, 1208, 1208, 1212, 1220, 1230, 1230, 1210, 1210, 1210, 1210, 1216, 1216, 1216, 1216, 1216, 1221, 1224, 1224, 1224, 1227, 1231, 1231, 1231, 1231, 1231, 1233, 1233, 1234, 1239, 1239, 1243, 1250, 1251, 1251, 1255, 1255, 1255, 1255, 1257, 1258, 1259, 1259, 1259, 1275, 1275, 1275, 1273, 1269, 1269, 1269, 1269, 1278, 1280, 1282, 1282, 1282, 1299, 1299, 1299, 1299, 1296, 1296, 1296, 1296, 1308, 1308, 1313, 1314, 1318, 1318, 1318, 1319, 1319, 1319, 1317, 1315, 1315, 1316, 1316, 1316, 1320, 1320, 1320, 1320, 1342, 1342, 1340, 1340, 1341, 1343, 1345, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1367, 1373, 1373, 1376, 1376, 1376, 1376, 1378, 1380, 1385, 1385, 1385, 1385, 1398, 1398, 1400, 1400, 1400, 1400, 1400, 1400, 1398, 1394, 1394, 1399, 1414, 1428, 1428, 1436, 1436, 1436, 1436, 1436, 1438, 1441, 1441, 1448, 1448, 1455, 1458, 1458, 1458, 1458, 1458, 1461, 1463, 1474, 1474, 1474, 1474, 1474, 1484, 1492, 1492, 1492, 1495, 1501, 1505, 1505, 1505, 1505, 1505, 1505, 1513, 1514, 1516, 1527, 1529, 1543, 1547, 1551, 1551, 1551, 1562, 1562, 1562, 1571, 1573, 1574, 1580, 1586, 1588, 1588, 1594, 1595, 1608, 1610, 1612, 1626, 1627, 1629, 1629, 1629, 1629, 1646, 1646, 1655, 1666, 1666, 1671, 1674, 1683, 1683, 1683, 1683, 1698, 1704, 1705, 1709, 1710, 1710, 1737, 1741, 1741, 1752, 1759, 1760, 1768, 1787, 1793, 1797, 1797, 1817, 1818, 1819, 1822, 1837, 1845, 1850, 1850, 1850, 1880, 1887, 1891, 1900, 1900, 1903, 1908, 1923, 1931, 1948, 1955, 1973, 1992, 1993, 1995, 2001, 2001, 2034, 2047, 2076, 2083, 2083, 2089, 2094, 2100, 2130, 2160, 2160, 2184, 2184, 2184, 2204, 2205, 2205, 2218, 2247, 2261, 2269, 2273, 2306, 2317, 2319, 2338, 2371, 2388, 2394, 2402, 2421, 2438, 2467, 2467, 2486, 2517, 2547, 2549, 2555, 2567, 2612, 2612, 2627, 2627, 2668, 2705, 2722, 2729, 2742, 2769, 2783, 2822, 2831, 2869, 2871, 2896, 2916, 2934, 2993, 3010, 3013, 3054, 3082, 3090, 3125, 3152, 3187, 3210, 3224, 3236, 3251, 3298, 3320, 3363, 3395, 3424, 3460, 3483, 3534, 3549, 3566, 3634, 3675, 3705, 3734, 3746, 3776, 3805, 3830, 3881, 3893, 3956, 3973, 4027, 4028, 4121, 4165, 4207, 4221, 4243, 4310, 4369, 4379, 4439, 4488, 4546, 4573, 4580, 4611, 4684, 4775, 4776, 4841, 4877, 4949, 4991, 5054, 5086, 5129, 5183, 5231, 5295, 5340, 5393, 5469, 5480, 5575, 5638, 5683, 5741, 5765, 5855, 5895, 5975, 6025, 6159, 6175, 6259, 6288, 6375, 6395, 6509, 6589, 6593, 6704, 6796, 6840, 6913, 6977, 7039, 7108, 7186, 7272, 7357, 7388, 7520, 7557, 7651, 7752, 7818, 7901, 7964, 8227, 8227, 8313, 8313, 8417, 8477, 8528, 8666, 8742, 8826, 8862, 8996, 9037, 9077, 9235, 9280, 9442, 9460, 9546, 9631, 9748, 9850, 9960, 10005, 10197, 10335, 10428, 10428, 10579, 10679, 10706, 10915, 10971, 11087, 11184, 11268, 11464, 11544, 11725, 11815, 11950, 12013, 12213, 12318, 12458, 12648, 12785, 12867, 13057, 13207, 13362, 13443, 13609, 13809, 13969, 14212, 14375, 14566, 14706, 14982, 15115, 15282, 15522, 15700, 15973, 16113, 16184, 16534, 16651, 16934, 17006, 17381, 17564, 17695, 17900, 18103, 18362, 18561, 18755, 18864, 19122, 19394, 19530, 19789, 19984, 20250, 20374, 20496, 20701, 21017, 21314, 21380, 21688, 21825, 22053, 22280, 22553, 22765, 23048, 23203, 23451, 23612, 23841, 24163, 24402, 24675, 24849, 25240, 25436, 25568, 25897, 26159, 26484, 26630, 26894, 27079, 27406, 27556, 27878, 28136, 28399, 28706, 28864, 29164, 29377, 29671, 30071, 30297, 30594, 30905, 31124, 31395, 31604, 31858, 32236, 32624, 33033, 33260, 33459, 33678, 33919, 34317, 34633, 35133, 35387, 35758, 35896, 36141, 36499, 36908, 37266, 37794, 38078, 38166, 38513, 38817, 39220, 39698, 40054, 40420, 40750, 40964, 41240, 41606, 41927, 42415, 42612, 43225, 43456, 43794, 44030, 44334, 44829, 45115, 45537, 46061, 46667, 46836, 47302, 47406, 47690, 48030, 48588, 48888, 50178, 50184, 50548, 50664, 51076, 51283, 51911, 52389, 52911, 53395, 53808, 53994, 54470, 54877, 55414, 55813, 56408, 57003, 57484, 57835, 58209, 58802, 59002, 59588, 60062, 60470, 61322, 61640, 61998, 62586, 62926, 63174, 63589, 63756, 64176, 64529, 64657, 64657, 64806, 64933, 65028, 65219, 65254, 65254, 65257, 65257, 65261, 65261, 65261, 65261, 1612, 1600, 1594, 1592, 1591, 1591, 1591, 1589, 1581, 1581, 1575, 1575, 1567, 1566, 1566, 1557, 1557, 1557, 1557, 1558, 1564, 1564, 1562, 1560, 1558, 1557, 1553, 1553, 1549, 1549, 1549, 1549, 1551, 1551, 1535, 1535, 1534, 1534, 1534, 1525, 1525, 1525, 1525, 1525, 1525, 1523, 1523, 1523, 1523, 1523, 1524, 1526, 1526, 1526, 1535, 1535, 1518, 1517, 1508, 1503, 1503, 1503, 1505, 1505, 1507, 1507, 1507, 1507, 1507, 1507, 1501, 1501, 1501, 1501, 1505, 1505, 1679, 1679, 1679, 1482, 1482, 1482, 1487, 1487, 1490, 1490, 1490, 1497, 1497, 1496, 1496, 1498, 1499, 1499, 1499, 1501, 1501, 1498, 1491, 1488, 1488, 1488, 1488, 1488, 1488, 1489, 1493, 1493, 1493, 1493, 1493, 1493, 1502, 1503, 1503, 1503, 1506, 1506, 1489, 1489, 1489, 1496, 1509, 1515, 1515, 1511, 1509, 1505, 1503, 1503, 1512, 1519, 1519, 1519, 1519, 1521, 1521, 1521, 1522, 1523, 1523, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1532, 1534, 1534, 1534, 1534, 1534, 1545, 1545, 1545, 1545, 1547, 1562, 1562, 1562, 1562, 1562, 1555, 1553, 1553, 1553, 1558, 1569, 1569, 1569, 1569, 1566, 1566, 1559, 1559, 1571, 1571, 1571, 1571, 1574, 1588, 1590, 1607, 1607, 1607, 1583, 1583, 1583, 1583, 1592, 1610, 1611, 1692, 1692, 1642, 1618, 1616, 1603, 1601, 1601, 1601, 1601, 1610, 1610, 1613, 1613, 1610, 1610, 1617, 1617, 1614, 1614, 1625, 1625, 1625, 1622, 1622, 1622, 1619, 1619, 1619, 1619, 1620, 1620, 1627, 1641, 1641, 1641, 1638, 1635, 1625, 1620, 1620, 1626, 1637, 1637, 1649, 1649, 1649, 1646, 1646, 1644, 1644, 1647, 1654, 1659, 1660, 1660, 1660, 1654, 1654, 1654, 1660, 1660, 1662, 1662, 1664, 1664, 1670, 1670, 1670, 1670, 1669, 1669, 1669, 1670, 1670, 1676, 1676, 1678, 1685, 1685, 1686, 1687, 1688, 1688, 1688, 1688, 1683, 1681, 1681, 1683, 1687, 1690, 1690, 1690, 1690, 1695, 1695, 1697, 1699, 1699, 1708, 1708, 1708, 1712, 1731, 1733, 1731, 1727, 1723, 1723, 1719, 1719, 1719, 1722, 1722, 1722, 1721, 1721, 1715, 1715, 1715, 1718, 1732, 1736, 1736, 1745, 1745, 1745, 1744, 1744, 1740, 1732, 1732, 1732, 1732, 1741, 1744, 1750, 1750, 1747, 1747, 1747, 1747, 1744, 1744, 1744, 1748, 1766, 1770, 1770, 1770, 1763, 1758, 1758, 1758, 1770, 1780, 1780, 1780, 1780, 1776, 1776, 1776, 1776, 1776, 1782, 1782, 1783, 1783, 1785, 1785, 1784, 1780, 1780, 1787, 1841, 1841, 1837, 1821, 1805, 1805, 1800, 1790, 1790, 1803, 1812, 1818, 1826, 1828, 1828, 1829, 1831, 1833, 1833, 1835, 1839, 1853, 1853, 1835, 1835, 1851, 1855, 1855, 1857, 1859, 1860, 1867, 1867, 1867, 1867, 1870, 1872, 1874, 1890, 1891, 1896, 1897, 1897, 1897, 1897, 1904, 1908, 1922, 1927, 1927, 1927, 1927, 1928, 1936, 1939, 1953, 1953, 1954, 1954, 1954, 1959, 1963, 1964, 1968, 1970, 1975, 1975, 1984, 1989, 1998, 1998, 2002, 2002, 2009, 2009, 2017, 2017, 2017, 2017, 2035, 2035, 2035, 2036, 2036, 2045, 2048, 2057, 2065, 2065, 2065, 2065, 2073, 2084, 2085, 2098, 2114, 2114, 2106, 2106, 2115, 2121, 2124, 2135, 2394, 2394, 2394, 2394, 2334, 2200, 2133, 2133, 2133, 2134, 2162, 2163, 2168, 2168, 2168, 2172, 2172, 2172, 2201, 2207, 2207, 2211, 2211, 2211, 2205, 2205, 2209, 2219, 2245, 2251, 2251, 2251, 2251, 2260, 2260, 2260, 2268, 2279, 2279, 2279, 2279, 2282, 2301, 2308, 2308, 2308, 2329, 2329, 2329, 2329, 2331, 2353, 2353, 2377, 2381, 2391, 2391, 2392, 2392, 2392, 2392, 2396, 2422, 2471, 2569, 2569, 2484, 2483, 2456, 2456, 2456, 2483, 2510, 2510, 2510, 2510, 2513, 2521, 2530, 2535, 2541, 2552, 2554, 2584, 2599, 2601, 2625, 2625, 2625, 2625, 2627, 2631, 2671, 2671, 2674, 2688, 2698, 2707, 2715, 2715, 2749, 2769, 2769, 2774, 2808, 2821, 2821, 2846, 2864, 2864, 2867, 2883, 2908, 2924, 2927, 2927, 2927, 2963, 2994, 2998, 3007, 3019, 3021, 3074, 3074, 3078, 3089, 3108, 3138, 3146, 3167, 3174, 3206, 3237, 3246, 3249, 3271, 3273, 3313, 3326, 3349, 3373, 3378, 3393, 3422, 3457, 3468, 3469, 3505, 3528, 3573, 3592, 3605, 3669, 3672, 3723, 3752, 3754, 3780, 3804, 3810, 3842, 3865, 3906, 3943, 3958, 3983, 4026, 4050, 4081, 4121, 4159, 4191, 4209, 4238, 4300, 4329, 4349, 4359, 4376, 4465, 4503, 4504, 4600, 4603, 4604, 4695, 4722, 4722, 4805, 4826, 4917, 4923, 4972, 4979, 5043, 5082, 5169, 5176, 5211, 5268, 5284, 5381, 5427, 5483, 5510, 5566, 5627, 5692, 5724, 5813, 5854, 5890, 5922, 5979, 6064, 6134, 6151, 6243, 6319, 6337, 6435, 6478, 6517, 6628, 6682, 6737, 6797, 6864, 6902, 7026, 7073, 7136, 7261, 7310, 7389, 7504, 7511, 7644, 7676, 7706, 7824, 7911, 8027, 8134, 8218, 8344, 8445, 8445, 8531, 8534, 8714, 8808, 8890, 9002, 9108, 9133, 9247, 9380, 9454, 9532, 9630, 9705, 10103, 10103, 10103, 10292, 10308, 10432, 10492, 10683, 10828, 10886, 10972, 11147, 11229, 11353, 11491, 11681, 11752, 11852, 12027, 12086, 12286, 12460, 12602, 12729, 12843, 13004, 13036, 13246, 13424, 13532, 13655, 13811, 13981, 14156, 14305, 14475, 14591, 14788, 14898, 15063, 15261, 15429, 15539, 15699, 16022, 16103, 16314, 16427, 16594, 16754, 17032, 17123, 17298, 17562, 17693, 17890, 18096, 18226, 18377, 18727, 18799, 18952, 19130, 19358, 19516, 19705, 19912, 20138, 20361, 20544, 20695, 20936, 21038, 21289, 21641, 21644, 21960, 22132, 22355, 22609, 22783, 23050, 23273, 23539, 23738, 23964, 24221, 24416, 24757, 25005, 25321, 25528, 25688, 26113, 26313, 26520, 26905, 27198, 27465, 27774, 28110, 28380, 28739, 29152, 29540, 29744, 30208, 30434, 30830, 31293, 31650, 32095, 32467, 32884, 33199, 33728, 34005, 34610, 34946, 35440, 35859, 36202, 36692, 37153, 37599, 38125, 38965, 39221, 39366, 39842, 40243, 40769, 41211, 41504, 42094, 42366, 42986, 43377, 43857, 44404, 44910, 45168, 45790, 46247, 46739, 47287, 47598, 48309, 48607, 49150, 49634, 50181, 50567, 51151, 51477, 52065, 52589, 53194, 53579, 54134, 54500, 55071, 55676, 56223, 56767, 57257, 57822, 58460, 58685, 59498, 60025, 60564, 60964, 61466, 62166, 62672, 63139, 63412, 63793, 64132, 64401, 64554, 64697, 64814, 64992, 65107, 65222, 65232, 65263, 65263, 65263, 65272, 65276, 65276, 65276, 65276, 65276, 65276, 65288, 65288, 65288, 65288, 65289, 65290, 65290, 65313, 65315, 65315, 65322, 65322, 65322, 65324, 65329, 65329, 65329, 65329, 65329, 65329, 65329, 65343, 65344, 65344, 65344, 65344, 65343, 65343, 65343, 65342, 65342, 65346, 65356, 65356, 65356, 65356, 65356, 65356, 65356, 65352, 65351, 65348, 65348, 65348, 65348, 65348, 65340, 65340, 65340, 65309, 65300, 65293, 65293, 65293, 65293, 65306, 65319, 65323, 65327, 65340, 65340, 65338, 65338, 65338, 65304, 65304, 65299, 65299, 65299, 65291, 65291, 65291, 65291, 65291, 65291, 65285, 65282, 65280, 65280, 65280, 65272, 65272, 65275, 65283, 65287, 65287, 65282, 65267, 65267, 65267, 2490, 2490, 2490, 2490, 2490, 2479, 2467, 2462, 2459, 2458, 2444, 2444, 2444, 2437, 2437, 2436, 2434, 2421, 2421, 2421, 2421, 2414, 2406, 2406, 2401, 2401, 2401, 2386, 2386, 2386, 2387, 2387, 2387, 2377, 2364, 2364, 2364, 2361, 2361, 2358, 2348, 2348, 2354, 2354, 2354, 2354, 2340, 2340, 2340, 2333, 2322, 2322, 2322, 2328, 2328, 2328, 2318, 2313, 2313, 2313, 2313, 2307, 2307, 2307, 2307, 2307, 2307, 2297, 2297, 2297, 2297, 2297, 2281, 2281, 2282, 2288, 2288, 2288, 2288, 2288, 2289, 2290, 2294, 2298, 2296, 2285, 2278, 2278, 2278, 2278, 2282, 2282, 2283, 2283, 2292, 2292, 2292, 2292, 2292, 2306, 2306, 2306, 2306, 2298, 2298, 2298, 2318, 2318, 2318, 2318, 2321, 2321, 2321, 2321, 2316, 2316, 2316, 2324, 2324, 2324, 2324, 2320, 2320, 2323, 2332, 2336, 2338, 2338, 2343, 2344, 2344, 2344, 2341, 2341, 2341, 2347, 2347, 2347, 2353, 2353, 2365, 2365, 2372, 2381, 2381, 2386, 2392, 2392, 2388, 2381, 2374, 2374, 2382, 2386, 2390, 2390, 2394, 2397, 2397, 2397, 2405, 2411, 2415, 2419, 2419, 2417, 2416, 2416, 2416, 2416, 2416, 2419, 2427, 2427, 2435, 2435, 2435, 2438, 2439, 2454, 2455, 2455, 2455, 2455, 2455, 2458, 2464, 2465, 2468, 2470, 2470, 2470, 2489, 2491, 2499, 2499, 2499, 2499, 2499, 2496, 2496, 2496, 2504, 2504, 2504, 2507, 2507, 2507, 2521, 2521, 2521, 2520, 2520, 2520, 2524, 2539, 2539, 2539, 2539, 2536, 2535, 2534, 2534, 2534, 2542, 2542, 2542, 2560, 2560, 2560, 2560, 2560, 2560, 2557, 2557, 2558, 2558, 2565, 2565, 2584, 2584, 2584, 2586, 2589, 2598, 2598, 2608, 2608, 2608, 2608, 2608, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2612, 2618, 2624, 2624, 2626, 2640, 2644, 2637, 2637, 2637, 2637, 2637, 2645, 2645, 2656, 2656, 2656, 2658, 2675, 2694, 2694, 2677, 2677, 2677, 2677, 2681, 2681, 2681, 2697, 2697, 2697, 2685, 2685, 2685, 2698, 2702, 2702, 2700, 2697, 2697, 2703, 2703, 2704, 2711, 2711, 2711, 2711, 2717, 2717, 2719, 2719, 2719, 2727, 2731, 2756, 2756, 2756, 2758, 2759, 2760, 2760, 2760, 2760, 2759, 2757, 2757, 2757, 2757, 2757, 2757, 2769, 2769, 2769, 2769, 2773, 2773, 2773, 2773, 2772, 2772, 2781, 2830, 2920, 2920, 2835, 2791, 2791, 2791, 2791, 2807, 2814, 2814, 2829, 2832, 2832, 2832, 2832, 2832, 2839, 2839, 2834, 2833, 2833, 2833, 2835, 2839, 2840, 2849, 2861, 2861, 2861, 2861, 2864, 2866, 2868, 2870, 2873, 2873, 2890, 2890, 2898, 2904, 2904, 2904, 2915, 2928, 2928, 2929, 2929, 2941, 2941, 2941, 2941, 2951, 2966, 2966, 2978, 2986, 2986, 2987, 3001, 3015, 3018, 3024, 3026, 3023, 3028, 3031, 3035, 3056, 3060, 3060, 3073, 3082, 3082, 3092, 3106, 3106, 3111, 3111, 3114, 3136, 3138, 3139, 3141, 3141, 3141, 3149, 3181, 3181, 3181, 3181, 3188, 3191, 3213, 3213, 3213, 3230, 3231, 3231, 3248, 3260, 3271, 3279, 3293, 3303, 3303, 3303, 3303, 3303, 3303, 3328, 3350, 3354, 3378, 3378, 3387, 3387, 3387, 3391, 3387, 3397, 3420, 3424, 3424, 3428, 3428, 3434, 3463, 3466, 3474, 3482, 3504, 3505, 3505, 3516, 3516, 3527, 3556, 3561, 3563, 3568, 3577, 3577, 3590, 3598, 3622, 3622, 3625, 3626, 3626, 3626, 3645, 3651, 3657, 3678, 3691, 3691, 3703, 3703, 3714, 3743, 3763, 3763, 3783, 3783, 3791, 3798, 3798, 3798, 3824, 3844, 3851, 3872, 3897, 3897, 3897, 3919, 3930, 3951, 3951, 3973, 3984, 3989, 3998, 4002, 4027, 4037, 4058, 4067, 4086, 4092, 4092, 4092, 4161, 4161, 4172, 4173, 4196, 4211, 4222, 4231, 4236, 4281, 4284, 4314, 4314, 4314, 4378, 4378, 4386, 4437, 4442, 4446, 4446, 4488, 4520, 4532, 4532, 4549, 4578, 4642, 4644, 4701, 4703, 4703, 4727, 4737, 4778, 4807, 4828, 4840, 4897, 4897, 4904, 4947, 4986, 5008, 5029, 5064, 5089, 5134, 5164, 5191, 5229, 5239, 5260, 5283, 5323, 5371, 5377, 5458, 5467, 5503, 5528, 5537, 5601, 5647, 5654, 5702, 5741, 5794, 5823, 5860, 5912, 5936, 5964, 6014, 6032, 6072, 6197, 6202, 6252, 6253, 6372, 6377, 6398, 6436, 6505, 6589, 6606, 6667, 6721, 6781, 6805, 6884, 6971, 6980, 7004, 7111, 7154, 7211, 7273, 7330, 7435, 7466, 7471, 7574, 7683, 7747, 7844, 7849, 7978, 8029, 8086, 8253, 8286, 8333, 8385, 8438, 8520, 8628, 8684, 8773, 8871, 8983, 9084, 9105, 9311, 9336, 9429, 9472, 9605, 9679, 9810, 9897, 9999, 10098, 10150, 10297, 10379, 10498, 10551, 10671, 10762, 10855, 10958, 11097, 11193, 11350, 11502, 11598, 11631, 11774, 11944, 12038, 12194, 12400, 12428, 12497, 12737, 12848, 13018, 13134, 13296, 13437, 13526, 13691, 13809, 13966, 14194, 14257, 14494, 14567, 14801, 14939, 15133, 15246, 15478, 15630, 15798, 15986, 16134, 16301, 16421, 16669, 16824, 17088, 17147, 17444, 17543, 17879, 17963, 18191, 18363, 18583, 18845, 19035, 19358, 19481, 19537, 19886, 20130, 20298, 20483, 20704, 21015, 21171, 21444, 21706, 21898, 22217, 22430, 22750, 22790, 23182, 23441, 23636, 24008, 24203, 24524, 24673, 24978, 25313, 25577, 25903, 26164, 26439, 26760, 27086, 27405, 27597, 27949, 28235, 28592, 28976, 29202, 29604, 29773, 30281, 30597, 30948, 31278, 31723, 31955, 32216, 32669, 32898, 33389, 33640, 34041, 34427, 34774, 35090, 35514, 35996, 36294, 36638, 37095, 37522, 37896, 38233, 38640, 39166, 39514, 39839, 40286, 40672, 41168, 41389, 42008, 42402, 42775, 43174, 43694, 43922, 44395, 44941, 45259, 45723, 46030, 46650, 47005, 47413, 47898, 48267, 48766, 49446, 49841, 50379, 50871, 51408, 51925, 52436, 52930, 53531, 54116, 54569, 55124, 55753, 56387, 56805, 57517, 57972, 58530, 59556, 59838, 60826, 61274, 62094, 62702, 63330, 63657, 64007, 64512, 64687, 64868, 65072, 65276, 65281, 65288, 65302, 65303, 65303, 65303, 65303, 65310, 65314, 65319, 65320, 65320, 65330, 65346, 65346, 65346, 65346, 65345, 65336, 65336, 65356, 65359, 65359, 65359, 65367, 65367, 65375, 65375, 65375, 65375, 65371, 65371, 65371, 65389, 65389, 65389, 65389, 65378, 65378, 65368, 65366, 65366, 65366, 65357, 65349, 65346, 65314, 65311, 65311, 65313, 65314, 65322, 65355, 65361, 65361, 65342, 65342, 65342, 65336, 65309, 65309, 65308, 65298, 65285, 65273, 65273, 65273, 65273, 65273, 65273, 65275, 65275, 65277, 65288, 65292, 65292, 65282, 65278, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65265, 65268, 65277, 65277, 65286, 65286, 65286, 65271, 65271, 65271, 65282, 65282, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65300, 65300, 65300, 65300, 65285, 65285, 65285, 65285, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65287, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65293, 65281, 65281, 65281, 65281, 65281, 65281, 65294, 65294, 65294, 65294, 65294, 65294, 65292, 65292, 65292, 65292, 65280, 65275, 65275, 65275, 65283, 65283, 65283, 65301, 65301, 65301, 65301, 65298, 65293, 65293, 65293, 65291, 65291, 65291, 65292, 65292, 65292, 65292, 65316, 65316, 65290, 65288, 65288, 65288, 4157, 4056, 3990, 3990, 3990, 3994, 3994, 3994, 3951, 3942, 3938, 3924, 3924, 3924, 3915, 3915, 3905, 3905, 3905, 3888, 3878, 3877, 3877, 3872, 3861, 3861, 3850, 3832, 3826, 3824, 3824, 3827, 3827, 3822, 3822, 3822, 3798, 3798, 3790, 3776, 3776, 3776, 3776, 3783, 3783, 3776, 3776, 3776, 3776, 3765, 3765, 3756, 3747, 3736, 3736, 3736, 3730, 3730, 3730, 3715, 3715, 3715, 3716, 3716, 3716, 3715, 3715, 3699, 3699, 3699, 3699, 3692, 3691, 3691, 3691, 3684, 3684, 3683, 3678, 3678, 3678, 3666, 3662, 3662, 3668, 3673, 3673, 3673, 3673, 3667, 3667, 3667, 3667, 3667, 3676, 3688, 3688, 3688, 3688, 3688, 3688, 3690, 3690, 3690, 3690, 3690, 3690, 3709, 3709, 3709, 3709, 3709, 3709, 3726, 3726, 3726, 3729, 3731, 3738, 3738, 3738, 3751, 3751, 3753, 3762, 3762, 3762, 3762, 3762, 3763, 3763, 3784, 3784, 3786, 3786, 3786, 3786, 3786, 3796, 3796, 3796, 3796, 3796, 3807, 3809, 3821, 3824, 3824, 3824, 3836, 3836, 3836, 3836, 3848, 3868, 3869, 3871, 3871, 3871, 3876, 3876, 3888, 3888, 3888, 3907, 3923, 3936, 3942, 3945, 3946, 3948, 3949, 3948, 3948, 3948, 3948, 3962, 3967, 3967, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 4009, 4024, 4024, 4024, 4024, 4025, 4025, 4025, 4047, 4047, 4043, 4044, 4044, 4046, 4055, 4055, 4068, 4082, 4082, 4082, 4082, 4082, 4098, 4112, 4112, 4106, 4106, 4106, 4110, 4118, 4150, 4150, 4150, 4137, 4137, 4137, 4140, 4157, 4172, 4174, 4174, 4174, 4207, 4207, 4181, 4181, 4181, 4191, 4205, 4209, 4209, 4209, 4209, 4224, 4229, 4232, 4235, 4238, 4244, 4244, 4259, 4259, 4259, 4246, 4246, 4246, 4246, 4262, 4272, 4273, 4274, 4276, 4276, 4276, 4276, 4276, 4295, 4312, 4312, 4312, 4312, 4312, 4302, 4302, 4322, 4322, 4322, 4344, 4349, 4357, 4357, 4359, 4359, 4359, 4378, 4379, 4379, 4379, 4400, 4400, 4400, 4391, 4391, 4391, 4394, 4402, 4417, 4418, 4423, 4423, 4433, 4453, 4453, 4453, 4453, 4453, 4453, 4455, 4456, 4456, 4459, 4477, 4491, 4494, 4494, 4494, 4494, 4494, 4494, 4494, 4516, 4516, 4516, 4515, 4515, 4517, 4517, 4525, 4525, 4545, 4545, 4553, 4553, 4564, 4564, 4567, 4567, 4567, 4572, 4575, 4580, 4580, 4586, 4586, 4586, 4586, 4601, 4603, 4607, 4607, 4626, 4638, 4638, 4638, 4638, 4641, 4654, 4654, 4654, 4654, 4654, 4654, 4654, 4658, 4660, 4660, 4665, 4685, 4685, 4701, 4701, 4702, 4725, 4731, 4734, 4734, 4734, 4736, 4746, 4746, 4746, 4764, 4764, 4769, 4790, 4812, 4812, 4812, 4849, 4849, 4862, 4862, 4863, 4869, 4869, 4873, 4873, 4873, 4873, 4928, 4930, 4930, 4967, 4997, 5015, 5016, 5016, 5036, 5036, 5037, 5063, 5063, 5081, 5115, 5115, 5115, 5115, 5159, 5159, 5159, 5159, 5166, 5207, 5241, 5241, 5254, 5261, 5261, 5266, 5275, 5295, 5325, 5352, 5356, 5350, 5379, 5399, 5409, 5422, 5438, 5459, 5459, 5459, 5465, 5470, 5502, 5525, 5531, 5531, 5560, 5600, 5615, 5622, 5629, 5639, 5639, 5669, 5684, 5710, 5716, 5716, 5716, 5746, 5788, 5792, 5800, 5826, 5826, 5828, 5860, 5882, 5882, 5891, 5894, 5948, 5973, 5973, 5982, 5988, 6001, 6039, 6061, 6062, 6067, 6092, 6101, 6123, 6134, 6164, 6208, 6209, 6209, 6222, 6260, 6290, 6300, 6304, 6316, 6350, 6371, 6403, 6403, 6409, 6450, 6459, 6469, 6497, 6551, 6571, 6578, 6586, 6625, 6648, 6684, 6691, 6703, 6730, 6739, 6806, 6813, 6835, 6842, 6898, 6901, 6957, 6990, 7022, 7037, 7041, 7140, 7168, 7168, 7177, 7192, 7249, 7275, 7313, 7350, 7391, 7391, 7446, 7485, 7510, 7561, 7580, 7613, 7644, 7727, 7740, 7764, 7776, 7818, 7899, 7950, 7979, 8013, 8042, 8112, 8187, 8208, 8223, 8292, 8331, 8485, 8485, 8485, 8526, 8556, 8630, 8691, 8723, 8797, 8827, 8904, 8944, 9036, 9135, 9157, 9183, 9260, 9323, 9365, 9423, 9495, 9604, 9641, 9736, 9815, 9882, 9978, 9992, 10046, 10088, 10223, 10276, 10318, 10415, 10539, 10595, 10659, 10706, 10848, 10933, 11033, 11103, 11170, 11298, 11385, 11397, 11494, 11578, 11777, 11857, 11934, 11997, 12079, 12167, 12368, 12468, 12817, 12817, 12899, 12899, 12993, 13137, 13209, 13369, 13479, 13585, 13713, 13878, 13988, 14172, 14231, 14432, 14536, 14744, 14806, 14946, 15084, 15199, 15365, 15599, 15683, 15959, 15959, 16189, 16342, 16566, 16673, 16813, 17064, 17207, 17436, 17610, 17794, 17998, 18129, 18349, 18525, 18719, 18870, 19121, 19188, 19429, 19720, 19930, 20124, 20326, 20591, 20796, 20950, 21205, 21488, 21620, 21925, 22103, 22377, 22575, 22887, 23129, 23316, 23588, 23754, 24056, 24360, 24560, 24850, 25199, 25481, 25703, 26066, 26302, 26565, 26821, 27123, 27535, 27741, 28071, 28378, 28746, 29262, 29636, 29673, 30049, 30318, 30940, 30996, 31371, 31841, 32091, 32389, 32886, 33236, 33750, 33929, 34422, 34782, 35257, 35578, 36042, 36266, 36787, 37220, 37706, 38095, 38517, 39003, 39302, 39804, 40311, 40692, 41203, 41757, 42033, 42733, 43208, 43559, 44171, 44601, 45060, 45592, 46068, 46681, 47262, 47646, 48184, 48889, 49358, 50060, 50584, 51056, 51621, 52055, 52592, 53377, 54010, 54775, 55973, 55973, 56237, 57175, 57682, 58445, 58992, 59502, 60256, 61042, 61566, 62153, 62801, 63374, 63727, 64104, 64439, 64637, 64868, 64977, 65189, 65281, 65281, 65286, 65291, 65291, 65293, 65298, 65302, 65302, 65318, 65318, 65318, 65318, 65318, 65321, 65321, 65321, 65321, 65321, 65322, 65338, 65338, 65342, 65342, 65343, 65343, 65355, 65359, 65359, 65359, 65365, 65368, 65368, 65368, 65373, 65373, 65373, 65373, 65376, 65376, 65376, 65376, 65376, 65376, 65366, 65366, 65366, 65366, 65366, 65328, 65326, 65326, 65326, 65337, 65341, 65345, 65380, 65380, 65380, 65363, 65340, 65340, 65340, 65301, 65296, 65295, 65290, 65288, 65288, 65284, 65284, 65284, 65284, 65284, 65284, 65271, 65265, 65262, 65262, 65262, 65274, 65274, 65274, 65274, 65266, 65264, 65264, 65264, 65279, 65279, 65279, 65280, 65280, 65280, 65280, 65291, 65291, 65291, 65291, 65286, 65286, 65286, 65286, 65286, 65283, 65283, 65283, 65283, 65283, 65297, 65297, 65297, 65297, 65291, 65268, 65268, 65268, 65282, 65282, 65296, 65296, 65296, 65296, 65296, 65296, 65292, 65292, 65290, 65287, 65287, 65287, 65285, 65284, 65284, 65282, 65271, 65271, 65279, 65285, 65285, 65288, 65299, 65299, 65299, 65299, 65299, 65295, 65290, 65285, 65275, 65275, 65275, 65296, 65296, 65296, 65296, 65296, 65293, 65288, 65278, 65278, 65278, 65278, 65282, 65283, 65283, 65283, 65289, 65289, 65289, 65289, 65291, 65293, 65293, 65294, 65294, 65298, 65299, 65299, 65301, 65303, 65303, 65303, 65302, 65302, 65296, 65289, 65289, 65289, 65289, 65299, 65301, 65296, 65296, 65296, 65296, 65296, 65296, 65313, 65313, 65313, 65301, 65301, 65301, 65301, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65311, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65303, 65311, 65311, 65311, 65311, 65311, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65308, 65307, 65307, 65307, 65298, 65298, 65298, 65298, 65298, 6574, 6438, 6370, 6370, 6364, 6361, 6357, 6342, 6317, 6316, 6276, 6269, 6258, 6253, 6224, 6224, 6224, 6208, 6202, 6169, 6162, 6162, 6162, 6162, 6144, 6123, 6116, 6102, 6097, 6097, 6097, 6097, 6084, 6077, 6062, 6062, 6018, 6017, 6017, 6020, 6020, 6020, 6012, 6012, 6004, 5996, 5985, 5985, 5985, 5957, 5954, 5954, 5954, 5940, 5940, 5940, 5940, 5942, 5942, 5942, 5942, 5942, 5925, 5905, 5905, 5889, 5889, 5883, 5883, 5883, 5883, 5892, 5886, 5868, 5868, 5868, 5856, 5856, 5856, 5856, 5856, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5852, 5852, 5852, 5863, 5881, 5884, 5884, 5885, 5885, 5885, 5894, 5913, 5913, 5913, 5913, 5915, 5917, 5918, 5944, 5944, 5944, 5949, 5949, 5981, 5997, 5981, 5973, 5969, 5958, 5958, 5958, 5959, 6008, 6008, 6008, 6014, 6014, 6020, 6020, 6027, 6027, 6028, 6045, 6045, 6049, 6049, 6049, 6049, 6076, 6076, 6076, 6079, 6079, 6079, 6093, 6094, 6094, 6094, 6156, 6167, 6195, 6195, 6195, 6195, 6195, 6195, 6195, 6218, 6218, 6237, 6237, 6237, 6237, 6253, 6269, 6269, 6282, 6305, 6305, 6305, 6314, 6318, 6318, 6318, 6318, 6337, 6365, 6365, 6365, 6388, 6401, 6420, 6420, 6420, 6420, 6454, 6454, 6454, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6489, 6496, 6520, 6520, 6529, 6547, 6550, 6550, 6550, 6564, 6570, 6596, 6638, 6642, 6634, 6622, 6622, 6641, 6653, 6659, 6662, 6674, 6674, 6674, 6674, 6702, 6702, 6702, 6702, 6702, 6712, 6715, 6715, 6716, 6716, 6716, 6716, 6756, 6756, 6756, 6756, 6759, 6808, 6808, 6808, 6808, 6832, 6838, 6838, 6838, 6838, 6839, 6855, 6855, 6855, 6883, 6885, 6901, 6903, 6905, 6933, 6935, 6939, 6942, 6945, 6942, 6942, 6942, 6942, 6946, 6946, 6946, 6973, 6999, 6999, 6997, 6997, 6997, 6996, 6996, 6996, 7014, 7020, 7028, 7036, 7036, 7075, 7075, 7075, 7075, 7075, 7075, 7078, 7123, 7123, 7143, 7143, 7143, 7143, 7143, 7172, 7172, 7140, 7140, 7153, 7156, 7178, 7198, 7202, 7202, 7214, 7214, 7219, 7219, 7219, 7219, 7219, 7238, 7238, 7238, 7255, 7255, 7255, 7305, 7328, 7328, 7328, 7326, 7326, 7326, 7361, 7361, 7367, 7378, 7385, 7385, 7385, 7385, 7391, 7391, 7391, 7391, 7435, 7435, 7435, 7468, 7468, 7482, 7483, 7483, 7483, 7487, 7487, 7487, 7488, 7489, 7519, 7521, 7521, 7521, 7560, 7570, 7606, 7606, 7606, 7609, 7609, 7609, 7616, 7616, 7634, 7638, 7638, 7670, 7687, 7691, 7715, 7715, 7719, 7733, 7760, 7762, 7762, 7762, 7800, 7820, 7870, 7870, 7870, 7882, 7895, 7895, 7913, 7982, 7982, 7982, 8007, 8024, 8047, 8052, 8078, 8078, 8110, 8110, 8151, 8179, 8187, 8197, 8222, 8247, 8247, 8247, 8349, 8386, 8389, 8389, 8389, 8437, 8447, 8450, 8476, 8510, 8551, 8578, 8610, 8615, 8615, 8615, 8686, 8686, 8749, 8749, 8784, 8809, 8821, 8821, 8902, 8912, 8921, 8950, 8950, 9025, 9025, 9040, 9040, 9110, 9127, 9173, 9187, 9241, 9251, 9290, 9291, 9352, 9359, 9359, 9378, 9419, 9446, 9455, 9499, 9501, 9519, 9587, 9669, 9669, 9669, 9715, 9727, 9802, 9809, 9815, 9880, 9907, 9913, 9979, 9990, 10006, 10091, 10091, 10102, 10102, 10137, 10194, 10229, 10281, 10378, 10378, 10386, 10440, 10473, 10526, 10526, 10559, 10559, 10641, 10688, 10749, 10780, 10823, 10886, 10891, 10915, 10926, 11011, 11057, 11143, 11153, 11193, 11247, 11282, 11308, 11384, 11418, 11522, 11529, 11595, 11643, 11661, 11701, 11728, 11810, 11916, 11981, 11988, 12085, 12115, 12181, 12246, 12294, 12405, 12475, 12525, 12562, 12593, 12725, 12786, 12869, 12891, 12921, 13022, 13182, 13200, 13263, 13291, 13303, 13497, 13530, 13649, 13743, 13859, 13884, 13955, 14050, 14071, 14226, 14306, 14391, 14597, 14604, 14714, 14765, 14921, 14967, 15127, 15264, 15320, 15472, 15564, 15656, 15683, 15892, 15953, 16122, 16313, 16473, 16590, 16723, 16788, 16848, 17116, 17163, 17273, 17449, 17537, 17698, 17813, 18072, 18129, 18332, 18422, 18689, 18733, 18886, 19027, 19208, 19389, 19556, 19694, 19869, 19986, 20172, 20311, 20544, 20709, 20984, 21055, 21266, 21418, 21652, 21876, 22092, 22255, 22468, 22800, 22900, 23095, 23371, 23540, 23846, 24064, 24601, 24686, 24686, 24988, 25177, 25626, 25759, 26014, 26239, 26435, 26763, 27079, 27404, 27681, 27924, 28156, 28459, 28876, 29059, 29361, 29821, 29946, 30305, 30612, 31263, 31299, 31683, 31882, 32388, 32617, 33028, 33394, 33831, 34218, 34536, 34816, 35351, 35710, 36088, 36416, 36899, 37332, 37758, 38125, 38665, 38912, 39546, 39946, 40342, 40791, 41160, 41586, 42135, 42699, 43152, 43615, 44173, 44512, 45184, 45680, 46067, 46667, 47120, 47632, 48252, 48725, 49386, 49725, 50516, 51041, 51597, 52141, 52913, 53172, 54151, 54679, 55124, 55632, 56461, 57107, 57828, 58447, 59014, 59720, 60524, 61376, 61896, 62522, 63076, 63609, 64016, 64335, 64593, 64815, 64991, 65183, 65290, 65293, 65293, 65293, 65303, 65303, 65304, 65304, 65311, 65317, 65325, 65325, 65325, 65325, 65325, 65325, 65333, 65333, 65333, 65349, 65362, 65362, 65362, 65378, 65378, 65378, 65379, 65382, 65382, 65382, 65395, 65395, 65395, 65395, 65399, 65404, 65405, 65405, 65404, 65390, 65385, 65385, 65377, 65352, 65343, 65343, 65350, 65350, 65350, 65375, 65384, 65386, 65377, 65375, 65374, 65346, 65312, 65312, 65301, 65298, 65298, 65296, 65296, 65296, 65281, 65278, 65270, 65262, 65262, 65262, 65270, 65278, 65290, 65290, 65290, 65285, 65285, 65279, 65279, 65275, 65275, 65267, 65267, 65267, 65267, 65278, 65278, 65287, 65287, 65287, 65287, 65287, 65296, 65296, 65296, 65277, 65277, 65277, 65272, 65272, 65272, 65272, 65272, 65272, 65288, 65288, 65288, 65285, 65285, 65270, 65270, 65280, 65288, 65288, 65288, 65288, 65288, 65288, 65283, 65283, 65283, 65283, 65283, 65283, 65291, 65291, 65290, 65286, 65286, 65286, 65286, 65294, 65294, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65297, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65300, 65296, 65296, 65296, 65293, 65293, 65293, 65298, 65298, 65298, 65298, 65295, 65295, 65295, 65295, 65295, 65291, 65291, 65291, 65291, 65291, 65291, 65291, 65300, 65300, 65316, 65316, 65316, 65283, 65283, 65305, 65307, 65307, 65307, 65307, 65307, 65307, 65307, 65307, 65305, 65305, 65303, 65303, 65303, 65303, 65303, 65291, 65291, 65291, 65291, 65297, 65306, 65306, 65295, 65295, 65295, 65295, 65319, 65320, 65320, 65304, 65296, 65296, 65309, 65317, 65319, 65319, 65319, 65319, 65319, 65311, 65307, 65305, 65294, 65294, 65294, 65294, 65305, 65307, 65307, 65308, 65323, 65328, 65328, 65328, 65328, 65323, 65318, 65316, 65312, 65312, 65300, 65300, 65300, 65300, 65300, 65312, 65322, 65322, 65322, 65322, 65313, 65313, 65313, 65313, 65313, 65308, 65308, 65308, 65308, 65320, 65320, 65320, 65320, 65320, 65320, 65332, 65332, 65326, 65326, 65326, 65326, 65323, 65323, 65323, 65323, 65323, 65323, 65315, 65315, 65315, 65315, 65315, 65327, 65327, 65327, 65327, 65327, 65334, 65337, 65337] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Spectrum"] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Spectrum", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (Spectrometer)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1024, 24] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["296.5", "297.055", "297.61", "298.164", "298.719", "299.273", "299.827", "300.382", "300.936", "301.489", "302.043", "302.597", "303.15", "303.703", "304.256", "304.809", "305.362", "305.915", "306.467", "307.02", "307.572", "308.124", "308.676", "309.228", "309.78", "310.332", "310.883", "311.435", "311.986", "312.537", "313.088", "313.639", "314.189", "314.74", "315.29", "315.841", "316.391", "316.941", "317.491", "318.04", "318.59", "319.139", "319.689", "320.238", "320.787", "321.336", "321.885", "322.433", "322.982", "323.53", "324.079", "324.627", "325.175", "325.723", "326.271", "326.818", "327.366", "327.913", "328.46", "329.007", "329.554", "330.101", "330.648", "331.195", "331.741", "332.287", "332.834", "333.38", "333.926", "334.472", "335.017", "335.563", "336.108", "336.654", "337.199", "337.744", "338.289", "338.834", "339.378", "339.923", "340.467", "341.012", "341.556", "342.1", "342.644", "343.188", "343.731", "344.275", "344.818", "345.362", "345.905", "346.448", "346.991", "347.534", "348.076", "348.619", "349.161", "349.704", "350.246", "350.788", "351.33", "351.872", "352.414", "352.955", "353.497", "354.038", "354.579", "355.12", "355.661", "356.202", "356.743", "357.284", "357.824", "358.364", "358.905", "359.445", "359.985", "360.525", "361.065", "361.604", "362.144", "362.683", "363.223", "363.762", "364.301", "364.84", "365.379", "365.917", "366.456", "366.995", "367.533", "368.071", "368.609", "369.147", "369.685", "370.223", "370.761", "371.298", "371.836", "372.373", "372.91", "373.447", "373.984", "374.521", "375.058", "375.595", "376.131", "376.668", "377.204", "377.74", "378.276", "378.812", "379.348", "379.884", "380.419", "380.955", "381.49", "382.026", "382.561", "383.096", "383.631", "384.166", "384.7", "385.235", "385.77", "386.304", "386.838", "387.372", "387.907", "388.441", "388.974", "389.508", "390.042", "390.575", "391.109", "391.642", "392.175", "392.708", "393.241", "393.774", "394.307", "394.84", "395.372", "395.905", "396.437", "396.969", "397.501", "398.033", "398.565", "399.097", "399.629", "400.16", "400.692", "401.223", "401.755", "402.286", "402.817", "403.348", "403.879", "404.409", "404.94", "405.471", "406.001", "406.531", "407.062", "407.592", "408.122", "408.652", "409.181", "409.711", "410.241", "410.77", "411.3", "411.829", "412.358", "412.887", "413.416", "413.945", "414.474", "415.003", "415.531", "416.06", "416.588", "417.117", "417.645", "418.173", "418.701", "419.229", "419.757", "420.284", "420.812", "421.34", "421.867", "422.394", "422.921", "423.449", "423.976", "424.503", "425.029", "425.556", "426.083", "426.609", "427.136", "427.662", "428.188", "428.714", "429.24", "429.766", "430.292", "430.818", "431.344", "431.869", "432.395", "432.92", "433.445", "433.971", "434.496", "435.021", "435.546", "436.071", "436.595", "437.12", "437.644", "438.169", "438.693", "439.218", "439.742", "440.266", "440.79", "441.314", "441.837", "442.361", "442.885", "443.408", "443.932", "444.455", "444.978", "445.502", "446.025", "446.548", "447.071", "447.593", "448.116", "448.639", "449.161", "449.684", "450.206", "450.728", "451.251", "451.773", "452.295", "452.817", "453.338", "453.86", "454.382", "454.903", "455.425", "455.946", "456.468", "456.989", "457.51", "458.031", "458.552", "459.073", "459.594", "460.114", "460.635", "461.156", "461.676", "462.196", "462.717", "463.237", "463.757", "464.277", "464.797", "465.317", "465.837", "466.356", "466.876", "467.396", "467.915", "468.434", "468.954", "469.473", "469.992", "470.511", "471.03", "471.549", "472.068", "472.586", "473.105", "473.624", "474.142", "474.661", "475.179", "475.697", "476.215", "476.733", "477.251", "477.769", "478.287", "478.805", "479.323", "479.84", "480.358", "480.875", "481.393", "481.91", "482.427", "482.944", "483.461", "483.978", "484.495", "485.012", "485.529", "486.045", "486.562", "487.079", "487.595", "488.111", "488.628", "489.144", "489.66", "490.176", "490.692", "491.208", "491.724", "492.24", "492.755", "493.271", "493.787", "494.302", "494.817", "495.333", "495.848", "496.363", "496.878", "497.393", "497.908", "498.423", "498.938", "499.453", "499.968", "500.482", "500.997", "501.511", "502.026", "502.54", "503.054", "503.568", "504.083", "504.597", "505.111", "505.625", "506.138", "506.652", "507.166", "507.679", "508.193", "508.707", "509.22", "509.733", "510.247", "510.76", "511.273", "511.786", "512.299", "512.812", "513.325", "513.838", "514.351", "514.863", "515.376", "515.889", "516.401", "516.913", "517.426", "517.938", "518.45", "518.963", "519.475", "519.987", "520.499", "521.011", "521.522", "522.034", "522.546", "523.058", "523.569", "524.081", "524.592", "525.104", "525.615", "526.126", "526.637", "527.149", "527.66", "528.171", "528.682", "529.193", "529.704", "530.214", "530.725", "531.236", "531.746", "532.257", "532.767", "533.278", "533.788", "534.298", "534.809", "535.319", "535.829", "536.339", "536.849", "537.359", "537.869", "538.379", "538.889", "539.398", "539.908", "540.418", "540.927", "541.437", "541.946", "542.456", "542.965", "543.474", "543.983", "544.493", "545.002", "545.511", "546.02", "546.529", "547.038", "547.546", "548.055", "548.564", "549.073", "549.581", "550.09", "550.598", "551.107", "551.615", "552.123", "552.632", "553.14", "553.648", "554.156", "554.664", "555.172", "555.68", "556.188", "556.696", "557.204", "557.712", "558.22", "558.727", "559.235", "559.742", "560.25", "560.757", "561.265", "561.772", "562.28", "562.787", "563.294", "563.801", "564.308", "564.815", "565.323", "565.83", "566.336", "566.843", "567.35", "567.857", "568.364", "568.87", "569.377", "569.884", "570.39", "570.897", "571.403", "571.91", "572.416", "572.922", "573.429", "573.935", "574.441", "574.947", "575.453", "575.959", "576.465", "576.971", "577.477", "577.983", "578.489", "578.995", "579.501", "580.006", "580.512", "581.018", "581.523", "582.029", "582.534", "583.04", "583.545", "584.05", "584.556", "585.061", "585.566", "586.071", "586.577", "587.082", "587.587", "588.092", "588.597", "589.102", "589.607", "590.112", "590.616", "591.121", "591.626", "592.131", "592.635", "593.14", "593.645", "594.149", "594.654", "595.158", "595.663", "596.167", "596.672", "597.176", "597.68", "598.185", "598.689", "599.193", "599.697", "600.201", "600.705", "601.209", "601.713", "602.217", "602.721", "603.225", "603.729", "604.233", "604.737", "605.241", "605.744", "606.248", "606.752", "607.255", "607.759", "608.263", "608.766", "609.27", "609.773", "610.277", "610.78", "611.283", "611.787", "612.29", "612.793", "613.297", "613.8", "614.303", "614.806", "615.309", "615.812", "616.316", "616.819", "617.322", "617.825", "618.328", "618.83", "619.333", "619.836", "620.339", "620.842", "621.345", "621.847", "622.35", "622.853", "623.355", "623.858", "624.361", "624.863", "625.366", "625.868", "626.371", "626.873", "627.376", "627.878", "628.381", "628.883", "629.385", "629.888", "630.39", "630.892", "631.395", "631.897", "632.399", "632.901", "633.403", "633.905", "634.408", "634.91", "635.412", "635.914", "636.416", "636.918", "637.42", "637.922", "638.424", "638.925", "639.427", "639.929", "640.431", "640.933", "641.435", "641.936", "642.438", "642.94", "643.442", "643.943", "644.445", "644.947", "645.448", "645.95", "646.451", "646.953", "647.455", "647.956", "648.458", "648.959", "649.461", "649.962", "650.464", "650.965", "651.466", "651.968", "652.469", "652.97", "653.472", "653.973", "654.474", "654.976", "655.477", "655.978", "656.48", "656.981", "657.482", "657.983", "658.484", "658.985", "659.487", "659.988", "660.489", "660.99", "661.491", "661.992", "662.493", "662.994", "663.495", "663.996", "664.497", "664.998", "665.499", "666", "666.501", "667.002", "667.503", "668.004", "668.505", "669.006", "669.507", "670.008", "670.509", "671.009", "671.51", "672.011", "672.512", "673.013", "673.514", "674.014", "674.515", "675.016", "675.517", "676.018", "676.518", "677.019", "677.52", "678.02", "678.521", "679.022", "679.523", "680.023", "680.524", "681.025", "681.525", "682.026", "682.527", "683.027", "683.528", "684.029", "684.529", "685.03", "685.531", "686.031", "686.532", "687.032", "687.533", "688.034", "688.534", "689.035", "689.536", "690.036", "690.537", "691.037", "691.538", "692.038", "692.539", "693.04", "693.54", "694.041", "694.541", "695.042", "695.542", "696.043", "696.544", "697.044", "697.545", "698.045", "698.546", "699.046", "699.547", "700.047", "700.548", "701.049", "701.549", "702.05", "702.55", "703.051", "703.551", "704.052", "704.552", "705.053", "705.554", "706.054", "706.555", "707.055", "707.556", "708.056", "708.557", "709.058", "709.558", "710.059", "710.559", "711.06", "711.561", "712.061", "712.562", "713.062", "713.563", "714.064", "714.564", "715.065", "715.566", "716.066", "716.567", "717.068", "717.568", "718.069", "718.57", "719.07", "719.571", "720.072", "720.572", "721.073", "721.574", "722.074", "722.575", "723.076", "723.577", "724.077", "724.578", "725.079", "725.58", "726.081", "726.581", "727.082", "727.583", "728.084", "728.585", "729.086", "729.586", "730.087", "730.588", "731.089", "731.59", "732.091", "732.592", "733.093", "733.594", "734.095", "734.596", "735.097", "735.598", "736.099", "736.6", "737.101", "737.602", "738.103", "738.604", "739.105", "739.606", "740.107", "740.609", "741.11", "741.611", "742.112", "742.613", "743.114", "743.616", "744.117", "744.618", "745.119", "745.621", "746.122", "746.623", "747.125", "747.626", "748.128", "748.629", "749.13", "749.632", "750.133", "750.635", "751.136", "751.638", "752.139", "752.641", "753.142", "753.644", "754.145", "754.647", "755.149", "755.65", "756.152", "756.654", "757.155", "757.657", "758.159", "758.661", "759.163", "759.664", "760.166", "760.668", "761.17", "761.672", "762.174", "762.676", "763.178", "763.68", "764.182", "764.684", "765.186", "765.688", "766.19", "766.692", "767.194", "767.697", "768.199", "768.701", "769.203", "769.706", "770.208", "770.71", "771.213", "771.715", "772.217", "772.72", "773.222", "773.725", "774.227", "774.73", "775.232", "775.735", "776.238", "776.74", "777.243", "777.746", "778.248", "778.751", "779.254", "779.757", "780.26", "780.763", "781.266", "781.768", "782.271", "782.774", "783.277", "783.781", "784.284", "784.787", "785.29", "785.793", "786.296", "786.799", "787.303", "787.806", "788.309", "788.813", "789.316", "789.82", "790.323", "790.827", "791.33", "791.834", "792.337", "792.841", "793.345", "793.848", "794.352", "794.856", "795.359", "795.863", "796.367", "796.871", "797.375", "797.879", "798.383", "798.887", "799.391", "799.895", "800.399", "800.904", "801.408", "801.912", "802.416", "802.921", "803.425", "803.929", "804.434", "804.938", "805.443", "805.947", "806.452", "806.957", "807.461", "807.966", "808.471", "808.975", "809.48", "809.985", "810.49", "810.995", "811.5", "812.005", "812.51", "813.015", "813.52", "814.026", "814.531", "815.036", "815.541", "816.047", "816.552", "817.057", "817.563", "818.068", "818.574", "819.08", "819.585", "820.091", "820.597", "821.102", "821.608", "822.114", "822.62", "823.126"] }, { "type": "character", "attributes": {}, "value": ["0.029", "20.027", "40.025", "60.026", "80.025", "100.023", "120.022", "140.022", "160.02", "180.019", "200.02", "220.018", "240.017", "260.016", "280.015", "300.014", "320.014", "340.014", "360.012", "380.012", "400.01", "420.009", "440.008", "460.007"] } ] } }, "value": [308025, 308025, 308025, 306916, 306916, 306916, 306916, 308025, 308025, 310249, 312481, 313600, 313600, 313600, 313600, 313600, 314721, 314721, 314721, 314721, 314721, 319225, 319225, 318096, 318096, 318096, 315844, 315844, 318096, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 318096, 318096, 316969, 316969, 316969, 320356, 320356, 320356, 320356, 320356, 319225, 318096, 318096, 318096, 318096, 316969, 316969, 316969, 316969, 319225, 319225, 319225, 319225, 319225, 319225, 318096, 318096, 318096, 319225, 320356, 322624, 322624, 322624, 322624, 318096, 318096, 320356, 321489, 321489, 321489, 320356, 320356, 320356, 319225, 319225, 320356, 321489, 322624, 322624, 322624, 322624, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 319225, 319225, 318096, 318096, 318096, 318096, 318096, 318096, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 320356, 318096, 318096, 316969, 316969, 316969, 319225, 319225, 319225, 319225, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 323761, 323761, 322624, 320356, 320356, 320356, 320356, 320356, 320356, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 315844, 315844, 315844, 315844, 318096, 318096, 318096, 322624, 322624, 322624, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 319225, 319225, 319225, 318096, 318096, 316969, 316969, 316969, 318096, 319225, 319225, 319225, 318096, 318096, 318096, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 320356, 322624, 322624, 326041, 326041, 326041, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 316969, 316969, 316969, 316969, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 324900, 324900, 324900, 323761, 323761, 322624, 319225, 316969, 316969, 316969, 316969, 319225, 320356, 320356, 320356, 319225, 316969, 316969, 316969, 319225, 319225, 319225, 319225, 318096, 318096, 320356, 320356, 320356, 322624, 322624, 322624, 327184, 327184, 327184, 322624, 322624, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 319225, 319225, 319225, 318096, 318096, 318096, 318096, 318096, 316969, 316969, 316969, 316969, 316969, 315844, 315844, 315844, 315844, 316969, 316969, 318096, 322624, 322624, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 315844, 315844, 315844, 321489, 321489, 321489, 321489, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 322624, 322624, 322624, 322624, 320356, 319225, 319225, 319225, 319225, 321489, 321489, 321489, 320356, 320356, 320356, 323761, 323761, 323761, 321489, 321489, 321489, 321489, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 322624, 322624, 322624, 318096, 316969, 316969, 318096, 320356, 321489, 321489, 321489, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 316969, 316969, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 316969, 316969, 316969, 316969, 316969, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 323761, 323761, 323761, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 318096, 318096, 318096, 320356, 320356, 320356, 320356, 315844, 315844, 315844, 319225, 319225, 321489, 324900, 324900, 323761, 320356, 318096, 318096, 318096, 320356, 323761, 323761, 321489, 321489, 318096, 318096, 318096, 321489, 322624, 322624, 322624, 322624, 322624, 322624, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 320356, 320356, 316969, 316969, 316969, 319225, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 318096, 318096, 318096, 320356, 322624, 322624, 322624, 322624, 321489, 319225, 319225, 321489, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 319225, 318096, 318096, 321489, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 320356, 320356, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 319225, 319225, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 319225, 319225, 318096, 318096, 318096, 318096, 318096, 319225, 319225, 319225, 319225, 319225, 316969, 316969, 318096, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 318096, 318096, 318096, 318096, 318096, 313600, 313600, 316969, 318096, 318096, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 318096, 318096, 318096, 321489, 321489, 321489, 315844, 315844, 315844, 316969, 316969, 316969, 319225, 319225, 319225, 318096, 318096, 318096, 319225, 319225, 319225, 315844, 315844, 315844, 320356, 320356, 322624, 322624, 322624, 322624, 322624, 322624, 321489, 321489, 320356, 320356, 318096, 318096, 318096, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 318096, 318096, 318096, 318096, 318096, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 319225, 318096, 318096, 315844, 315844, 315844, 318096, 320356, 320356, 320356, 315844, 315844, 315844, 315844, 321489, 321489, 321489, 321489, 321489, 320356, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 322624, 322624, 322624, 322624, 322624, 320356, 320356, 320356, 320356, 320356, 320356, 318096, 318096, 318096, 316969, 316969, 322624, 322624, 322624, 319225, 319225, 319225, 318096, 319225, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 318096, 318096, 318096, 319225, 322624, 322624, 322624, 321489, 321489, 319225, 318096, 318096, 318096, 318096, 319225, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 321489, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 321489, 321489, 321489, 319225, 319225, 319225, 319225, 323761, 323761, 323761, 323761, 319225, 318096, 318096, 319225, 319225, 319225, 319225, 320356, 320356, 319225, 319225, 319225, 322624, 322624, 322624, 321489, 321489, 321489, 321489, 322624, 322624, 322624, 319225, 319225, 321489, 321489, 321489, 321489, 321489, 318096, 318096, 318096, 318096, 321489, 321489, 321489, 320356, 316969, 316969, 316969, 319225, 319225, 319225, 323761, 323761, 323761, 323761, 321489, 321489, 321489, 321489, 321489, 322624, 323761, 323761, 323761, 321489, 321489, 321489, 321489, 321489, 319225, 319225, 319225, 319225, 319225, 319225, 321489, 321489, 321489, 321489, 320356, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 315844, 315844, 315844, 316969, 320356, 320356, 320356, 321489, 326041, 326041, 326041, 322624, 319225, 319225, 319225, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 319225, 319225, 319225, 316969, 316969, 316969, 316969, 319225, 321489, 321489, 314721, 314721, 315844, 319225, 319225, 319225, 319225, 319225, 319225, 318096, 315844, 315844, 315844, 319225, 319225, 319225, 319225, 318096, 316969, 316969, 316969, 316969, 316969, 316969, 316969, 316969, 316969, 318096, 318096, 318096, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 309136, 309136, 309136, 308025, 308025, 308025, 308025, 311364, 315844, 316406.25, 316406.25, 316969, 316969, 316969, 316969, 318096, 318096, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 322624, 322624, 322624, 322624, 322624, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 318096, 318096, 318096, 318096, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 322624, 322624, 322624, 322624, 322624, 322624, 321489, 321489, 321489, 320356, 319225, 319225, 319225, 319225, 319225, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 318096, 318096, 318096, 318096, 318096, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 318096, 318096, 318096, 320356, 321489, 321489, 321489, 314721, 313600, 308025, 308025, 308025, 308025, 310249, 310249, 313600, 313600, 313600, 313600, 313600, 313600, 313600, 314721, 314721, 315844, 316969, 318096, 318096, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 322624, 322624, 322624, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 322624, 322624, 322624, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 319225, 319225, 319225, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 322624, 322624, 322624, 322624, 321489, 321489, 321489, 321489, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 321489, 321489, 321489, 322624, 322624, 322624, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 324900, 324900, 324900, 324900, 324900, 324900, 323761, 323761, 323761, 323761, 323761, 324900, 324900, 324900, 324900, 324900, 324900, 326041, 326041, 326041, 326041, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 322624, 322624, 322624, 322624, 322624, 321489, 321489, 321489, 322624, 322624, 322624, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 322624, 322624, 322624, 322624, 322624, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 321489, 321489, 321489, 321489, 321489, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 322624, 322624, 322624, 322624, 322624, 323761, 323761, 323761, 323761, 322624, 322624, 322624, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 318096, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 320356, 320356, 320356, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 321489, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 320356, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 319225, 320356, 320356, 320356, 320356, 320356, 320356, 323761, 323761, 324900, 324900, 323761, 323761, 320356, 319225, 316969, 322624, 322624, 318096, 310249, 309136, 309136, 309136, 310249, 315844, 315844, 315844, 315844, 315844, 315844, 318096, 318096, 318096, 319225, 320356, 320356, 322624, 322624, 323761, 324900, 324900, 324900, 324900, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 326041, 326041, 326041, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 322624, 322624, 322624, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 322624, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 323761, 324900, 324900, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 328329, 329476, 329476, 329476, 329476, 329476, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 331776, 331776, 331776, 332929, 332929, 332929, 332929, 331776, 331776, 331776, 334084, 334084, 334084, 334084, 334084, 334084, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 341056, 341056, 341056, 341056, 341056, 341056, 343396, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 345744, 344569, 344569, 344569, 345744, 345744, 345744, 345744, 345744, 345744, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 342225, 342225, 342225, 343396, 343396, 343396, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 341056, 341056, 341056, 341056, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 342225, 342225, 342225, 342225, 342225, 343396, 343396, 343396, 343396, 343396, 343396, 344569, 344569, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 343396, 343396, 343396, 343396, 343396, 343396, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 343396, 343396, 343396, 343396, 344569, 344569, 344569, 344569, 344569, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 341056, 341056, 341056, 339889, 339889, 339889, 339889, 338724, 338724, 338724, 338724, 338724, 338724, 337561, 337561, 337561, 337561, 337561, 336400, 336400, 336400, 336400, 337561, 337561, 337561, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 335241, 335241, 335241, 335241, 334084, 334084, 334084, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 331776, 331776, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 329476, 329476, 329476, 329476, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 327184, 327184, 326041, 326041, 326041, 327184, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 329476, 329476, 329476, 329476, 328329, 328329, 328329, 328329, 328329, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 328329, 328329, 329476, 330625, 330625, 330625, 331776, 331776, 331776, 331776, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 331776, 331776, 331776, 331776, 332929, 332929, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 335241, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 337561, 337561, 337561, 337561, 337561, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 326041, 326041, 326041, 326041, 326041, 326041, 327184, 327184, 327184, 326041, 326041, 326041, 326041, 326041, 326041, 327184, 327184, 327184, 327184, 327184, 328329, 328329, 329476, 329476, 329476, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 331776, 363609, 363609, 363609, 363609, 328329, 328329, 326041, 326041, 323761, 323761, 323761, 321489, 321489, 321489, 322624, 324900, 326041, 329476, 330625, 331776, 334084, 334084, 334084, 334084, 329476, 329476, 329476, 329476, 332929, 332929, 332929, 330625, 330625, 330625, 330625, 332929, 332929, 332929, 332929, 332929, 331776, 331776, 331776, 332929, 332929, 334084, 336400, 336400, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 335241, 332929, 332929, 332929, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 337561, 337561, 337561, 337561, 337561, 343396, 343396, 339889, 339889, 344569, 344569, 344569, 344569, 344569, 344569, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 346921, 348100, 349281, 350464, 350464, 348100, 348100, 348100, 348100, 348100, 350464, 350464, 350464, 350464, 355216, 355216, 356409, 356409, 356409, 356409, 350464, 350464, 360000, 362404, 364816, 364816, 364816, 364816, 364816, 366025, 369664, 372100, 373321, 373321, 374544, 374544, 375769, 375769, 375769, 375769, 376996, 378225, 378225, 378225, 378225, 378225, 378225, 379456, 380689, 381924, 381924, 381924, 381924, 383161, 383161, 384400, 384400, 386884, 386884, 388129, 388129, 389376, 389376, 391876, 393129, 394384, 394384, 395641, 395641, 395641, 398161, 398161, 398161, 399424, 399424, 399424, 400689, 400689, 401956, 401956, 401956, 401956, 401956, 401956, 404496, 405769, 405769, 405769, 405769, 405769, 405769, 405769, 407044, 407044, 409600, 409600, 410881, 410881, 412164, 412164, 413449, 414736, 414736, 414736, 416025, 418609, 418609, 418609, 419904, 419904, 419904, 421201, 422500, 422500, 422500, 422500, 422500, 422500, 422500, 423801, 423801, 425104, 425104, 426409, 426409, 426409, 426409, 426409, 427716, 427716, 427716, 427716, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 425104, 425104, 425104, 423801, 423801, 423801, 423801, 423801, 423801, 422500, 421201, 421201, 421201, 421201, 421201, 422500, 422500, 422500, 422500, 422500, 421201, 421201, 421201, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 418609, 418609, 418609, 418609, 418609, 418609, 418609, 418609, 418609, 418609, 418609, 418609, 418609, 417316, 417316, 417316, 417316, 416025, 416025, 416025, 416025, 416025, 416025, 416025, 416025, 416025, 416025, 416025, 416025, 416025, 416025, 416025, 414736, 414736, 414736, 414736, 414736, 414736, 412164, 412164, 409600, 409600, 409600, 409600, 407044, 405769, 405769, 405769, 405769, 405769, 405769, 405769, 404496, 404496, 404496, 404496, 404496, 403225, 403225, 403225, 400689, 400689, 399424, 399424, 399424, 399424, 399424, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 399424, 399424, 399424, 399424, 400689, 400689, 400689, 400689, 400689, 399424, 399424, 399424, 399424, 400689, 400689, 400689, 399424, 399424, 399424, 398161, 398161, 396900, 396900, 396900, 396900, 396900, 398161, 400689, 400689, 400689, 400689, 400689, 400689, 400689, 400689, 400689, 400689, 400689, 400689, 400689, 400689, 400689, 400689, 400689, 401956, 401956, 403225, 403225, 403225, 403225, 401956, 401956, 401956, 401956, 401956, 405769, 405769, 405769, 405769, 408321, 408321, 408321, 410881, 410881, 410881, 410881, 410881, 412164, 412164, 412164, 412164, 412164, 412164, 412164, 412164, 413449, 413449, 413449, 413449, 413449, 414736, 414736, 414736, 414736, 414736, 414736, 414736, 414736, 414736, 414736, 414736, 414736, 416025, 416025, 416025, 416025, 416025, 416025, 416025, 417316, 417316, 417316, 417316, 419904, 422500, 422500, 422500, 419904, 419904, 419904, 419904, 419904, 419904, 421201, 421201, 421201, 421201, 421201, 421201, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 418609, 418609, 418609, 417316, 417316, 417316, 417316, 417316, 417316, 416025, 416025, 416025, 417316, 417316, 417316, 414736, 414736, 414736, 413449, 412164, 409600, 409600, 409600, 409600, 408321, 408321, 408321, 408321, 408321, 408321, 407044, 407044, 407044, 405769, 405769, 405769, 405769, 404496, 404496, 404496, 404496, 403225, 403225, 401956, 401956, 399424, 398161, 396900, 396900, 396900, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 391876, 391876, 391876, 391876, 390625, 390625, 390625, 389376, 389376, 388129, 388129, 388129, 388129, 386884, 384400, 384400, 384400, 384400, 383161, 381924, 381924, 381924, 380689, 378225, 378225, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 375769, 374544, 374544, 373321, 373321, 372100, 370881, 370881, 370881, 370881, 370881, 369664, 364816, 364816, 364816, 362404, 362404, 362404, 362404, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 357604, 357604, 357604, 357604, 357604, 357604, 358801, 358801, 357604, 357604, 356409, 356409, 356409, 356409, 356409, 356409, 356409, 356409, 356409, 356409, 357604, 357604, 357604, 357604, 354025, 354025, 354025, 355216, 356409, 358801, 358801, 358801, 358801, 358801, 356409, 352836, 352836, 352836, 355216, 355216, 355216, 355216, 355216, 355216, 352836, 352836, 352836, 352836, 352836, 352836, 351649, 351649, 351649, 350464, 350464, 350464, 352836, 352836, 352836, 352836, 350464, 350464, 350464, 352836, 352836, 354025, 354025, 355216, 355216, 355216, 350464, 350464, 350464, 350464, 351649, 352836, 352836, 352836, 352836, 349281, 349281, 349281, 349281, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 355216, 355216, 355216, 355216, 355216, 355216, 355216, 354025, 354025, 354025, 355216, 358801, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 358801, 358801, 358801, 358801, 358801, 358801, 361201, 361201, 360000, 360000, 360000, 360000, 361201, 361201, 361201, 361201, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 362404, 362404, 363609, 363609, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 366025, 367236, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 369664, 369664, 369664, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 369664, 369664, 369664, 369664, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 363609, 363609, 363609, 363609, 363609, 363609, 362404, 362404, 358801, 358801, 357604, 357604, 357604, 358801, 360000, 362404, 362404, 361201, 358801, 357604, 357604, 358801, 358801, 358801, 358801, 358801, 357604, 357604, 355216, 355216, 355216, 357604, 357604, 357604, 356409, 356409, 355216, 355216, 355216, 354025, 354025, 354025, 354025, 356409, 356409, 356409, 356409, 351649, 350464, 350464, 350464, 348100, 348100, 348100, 348100, 350464, 350464, 350464, 350464, 351649, 351649, 351649, 349281, 348100, 346921, 346921, 346921, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 348100, 346921, 346921, 344569, 343396, 343396, 343396, 343396, 343396, 345744, 345744, 345744, 345744, 345744, 336400, 336400, 336400, 337561, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 348100, 348100, 348100, 342225, 342225, 342225, 338724, 338724, 338724, 339889, 339889, 339889, 339889, 339889, 343396, 343396, 343396, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 336400, 336400, 336400, 336400, 338724, 338724, 338724, 338724, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 336400, 336400, 336400, 336400, 337561, 337561, 338724, 338724, 338724, 338724, 338724, 338724, 339889, 339889, 339889, 339889, 339889, 341056, 341056, 342225, 342225, 342225, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 344569, 344569, 345744, 345744, 345744, 345744, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 348100, 348100, 349281, 349281, 349281, 349281, 349281, 350464, 350464, 351649, 351649, 351649, 351649, 351649, 351649, 352836, 352836, 352836, 355216, 355216, 355216, 357604, 357604, 357604, 357604, 357604, 358801, 358801, 358801, 358801, 358801, 360000, 360000, 361201, 361201, 361201, 361201, 363609, 363609, 366025, 367236, 367236, 367236, 367236, 368449, 368449, 369664, 369664, 372100, 375769, 375769, 375769, 375769, 380689, 380689, 383161, 384400, 385641, 385641, 386884, 388129, 388129, 388129, 388129, 389376, 391876, 393129, 394384, 394384, 395641, 395641, 396900, 396900, 398161, 398161, 401956, 401956, 403225, 403225, 403225, 403225, 404496, 405769, 405769, 408321, 408321, 414736, 417316, 417316, 417316, 419904, 421201, 421201, 421201, 422500, 422500, 422500, 423801, 425104, 425104, 426409, 426409, 427716, 427716, 429025, 429025, 434281, 434281, 434281, 435600, 436921, 436921, 436921, 438244, 439569, 439569, 439569, 440896, 440896, 440896, 442225, 442225, 444889, 446224, 446224, 447561, 448900, 448900, 451584, 452929, 452929, 452929, 454276, 454276, 455625, 455625, 456976, 459684, 461041, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 463761, 463761, 463761, 463761, 463761, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 461041, 461041, 461041, 461041, 459684, 459684, 459684, 459684, 459684, 459684, 459684, 459684, 459684, 459684, 459684, 459684, 459684, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 456976, 456976, 456976, 456976, 456976, 455625, 455625, 454276, 454276, 452929, 452929, 452929, 452929, 452929, 452929, 450241, 450241, 450241, 450241, 448900, 448900, 448900, 448900, 448900, 447561, 447561, 447561, 447561, 447561, 447561, 446224, 446224, 443556, 443556, 443556, 443556, 442225, 442225, 440896, 440896, 439569, 439569, 438244, 438244, 438244, 438244, 438244, 436921, 436921, 436921, 435600, 434281, 434281, 434281, 432964, 432964, 432964, 432964, 432964, 431649, 431649, 430336, 430336, 430336, 430336, 430336, 429025, 429025, 429025, 429025, 427716, 427716, 427716, 427716, 427716, 429025, 429025, 429025, 429025, 429025, 429025, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 430336, 430336, 430336, 430336, 430336, 431649, 431649, 431649, 431649, 431649, 434281, 434281, 434281, 434281, 436921, 436921, 436921, 438244, 439569, 439569, 440896, 442225, 442225, 442225, 442225, 443556, 443556, 443556, 443556, 443556, 443556, 443556, 444889, 444889, 447561, 448900, 448900, 448900, 448900, 448900, 448900, 448900, 450241, 454276, 454276, 454276, 454276, 454276, 454276, 454276, 455625, 455625, 456976, 456976, 456976, 459684, 461041, 461041, 461041, 461041, 461041, 461041, 462400, 462400, 463761, 463761, 463761, 463761, 463761, 463761, 465124, 465124, 465124, 466489, 467856, 469225, 469225, 469225, 469225, 469225, 469225, 471969, 471969, 473344, 473344, 473344, 473344, 473344, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 470596, 470596, 470596, 470596, 470596, 469225, 469225, 467856, 465124, 465124, 465124, 465124, 465124, 463761, 463761, 463761, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 462400, 461041, 459684, 459684, 459684, 458329, 455625, 455625, 455625, 452929, 452929, 452929, 451584, 450241, 448900, 446224, 446224, 446224, 444889, 443556, 443556, 442225, 440896, 439569, 438244, 436921, 435600, 431649, 431649, 431649, 431649, 431649, 431649, 430336, 429025, 429025, 426409, 425104, 423801, 423801, 423801, 422500, 419904, 419904, 418609, 418609, 417316, 417316, 417316, 416025, 416025, 414736, 414736, 414736, 414736, 413449, 413449, 413449, 412164, 409600, 409600, 409600, 409600, 408321, 407044, 407044, 404496, 404496, 404496, 403225, 401956, 400689, 398161, 398161, 398161, 398161, 396900, 396900, 396900, 396900, 395641, 394384, 394384, 393129, 393129, 393129, 393129, 393129, 391876, 390625, 389376, 389376, 389376, 389376, 388129, 388129, 388129, 385641, 385641, 385641, 385641, 384400, 384400, 384400, 381924, 381924, 380689, 380689, 379456, 378225, 378225, 378225, 378225, 378225, 378225, 379456, 379456, 379456, 379456, 379456, 379456, 378225, 378225, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 375769, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 373321, 370881, 370881, 370881, 370881, 369664, 369664, 369664, 370881, 370881, 370881, 370881, 369664, 369664, 369664, 370881, 370881, 370881, 370881, 373321, 373321, 373321, 373321, 373321, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 372100, 372100, 372100, 373321, 373321, 373321, 373321, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 375769, 375769, 376996, 376996, 376996, 376996, 376996, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 380689, 380689, 380689, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 379456, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 376996, 376996, 376996, 375769, 375769, 375769, 375769, 375769, 375769, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 375769, 375769, 375769, 375769, 375769, 375769, 375769, 375769, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 373321, 372100, 372100, 370881, 370881, 370881, 370881, 369664, 369664, 369664, 369664, 369664, 368449, 368449, 367236, 367236, 367236, 367236, 367236, 366025, 366025, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 363609, 363609, 363609, 363609, 363609, 363609, 362404, 362404, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 357604, 357604, 357604, 357604, 356409, 356409, 356409, 356409, 355216, 355216, 355216, 355216, 355216, 355216, 355216, 355216, 354025, 354025, 354025, 354025, 354025, 354025, 352836, 352836, 352836, 352836, 352836, 350464, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 346921, 346921, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 344569, 344569, 344569, 344569, 344569, 344569, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 344569, 344569, 344569, 344569, 344569, 328329, 329476, 330625, 331776, 334084, 334084, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 337561, 337561, 337561, 338724, 338724, 338724, 338724, 338724, 337561, 337561, 337561, 337561, 341056, 341056, 341056, 341056, 341056, 341056, 343396, 343396, 343396, 343396, 343396, 342225, 342225, 342225, 342225, 343396, 343396, 343396, 338724, 338724, 338724, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 343396, 343396, 343396, 343396, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 345744, 345744, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 350464, 350464, 350464, 350464, 351649, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 355216, 355216, 355216, 355216, 355216, 355216, 355216, 356409, 356409, 356409, 356409, 356409, 356409, 357604, 357604, 357604, 358801, 360000, 360000, 360000, 361201, 364816, 366025, 366025, 366025, 367236, 368449, 368449, 370881, 370881, 370881, 372100, 372100, 372100, 373321, 375769, 376996, 376996, 376996, 376996, 376996, 378225, 379456, 380689, 380689, 384400, 385641, 385641, 389376, 390625, 390625, 390625, 393129, 393129, 393129, 393129, 393129, 393129, 394384, 394384, 396900, 396900, 396900, 396900, 398161, 398161, 398161, 398161, 399424, 399424, 399424, 400689, 400689, 401956, 403225, 407044, 407044, 408321, 408321, 408321, 409600, 409600, 410881, 412164, 413449, 413449, 414736, 414736, 414736, 416025, 416025, 416025, 418609, 418609, 422500, 423801, 423801, 423801, 425104, 425104, 425104, 425104, 425104, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 427716, 427716, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 429025, 427716, 427716, 427716, 427716, 427716, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 422500, 422500, 422500, 421201, 421201, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 419904, 418609, 417316, 417316, 417316, 417316, 417316, 417316, 417316, 417316, 416025, 416025, 414736, 414736, 413449, 413449, 413449, 412164, 412164, 412164, 412164, 412164, 412164, 412164, 412164, 410881, 410881, 410881, 410881, 408321, 408321, 408321, 408321, 408321, 408321, 408321, 408321, 408321, 408321, 405769, 405769, 405769, 405769, 404496, 404496, 404496, 405769, 405769, 405769, 404496, 404496, 404496, 403225, 403225, 403225, 404496, 404496, 404496, 403225, 403225, 403225, 404496, 404496, 404496, 403225, 403225, 403225, 403225, 403225, 403225, 404496, 404496, 404496, 404496, 404496, 404496, 404496, 404496, 404496, 404496, 404496, 404496, 407044, 407044, 407044, 409600, 409600, 409600, 409600, 410881, 410881, 410881, 410881, 410881, 410881, 410881, 412164, 412164, 413449, 413449, 413449, 414736, 414736, 414736, 414736, 416025, 416025, 417316, 418609, 419904, 419904, 419904, 421201, 422500, 423801, 423801, 425104, 425104, 425104, 427716, 427716, 429025, 429025, 429025, 429025, 430336, 430336, 430336, 432964, 432964, 432964, 434281, 434281, 434281, 435600, 435600, 435600, 435600, 438244, 438244, 440896, 440896, 442225, 442225, 442225, 443556, 443556, 443556, 443556, 444889, 444889, 444889, 444889, 447561, 447561, 447561, 448900, 448900, 450241, 451584, 454276, 454276, 454276, 455625, 455625, 455625, 456976, 456976, 456976, 456976, 456976, 456976, 456976, 456976, 456976, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 458329, 455625, 455625, 455625, 455625, 455625, 455625, 455625, 455625, 455625, 455625, 455625, 455625, 455625, 455625, 455625, 455625, 455625, 455625, 451584, 451584, 451584, 451584, 450241, 450241, 450241, 448900, 446224, 446224, 446224, 446224, 444889, 442225, 442225, 442225, 440896, 440896, 440896, 439569, 438244, 438244, 438244, 438244, 434281, 434281, 434281, 432964, 431649, 431649, 429025, 429025, 429025, 427716, 427716, 427716, 426409, 425104, 422500, 422500, 422500, 422500, 421201, 419904, 419904, 418609, 418609, 417316, 414736, 414736, 413449, 412164, 412164, 410881, 410881, 410881, 410881, 409600, 408321, 407044, 407044, 403225, 403225, 403225, 403225, 401956, 401956, 401956, 401956, 400689, 400689, 399424, 398161, 394384, 394384, 394384, 393129, 393129, 393129, 391876, 391876, 391876, 390625, 390625, 390625, 385641, 385641, 385641, 385641, 385641, 384400, 384400, 383161, 383161, 383161, 383161, 383161, 383161, 381924, 381924, 380689, 380689, 380689, 378225, 378225, 378225, 378225, 376996, 376996, 376996, 376996, 375769, 375769, 375769, 375769, 375769, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 372100, 372100, 372100, 370881, 370881, 370881, 370881, 368449, 368449, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 366025, 366025, 366025, 366025, 366025, 364816, 363609, 363609, 363609, 363609, 362404, 361201, 361201, 361201, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 361201, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 362404, 362404, 362404, 362404, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 356409, 356409, 356409, 356409, 356409, 356409, 356409, 354025, 354025, 354025, 354025, 355216, 355216, 355216, 355216, 355216, 355216, 355216, 355216, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 352836, 352836, 352836, 351649, 351649, 351649, 352836, 352836, 352836, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 350464, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 348100, 348100, 348100, 349281, 349281, 349281, 349281, 349281, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 349281, 349281, 349281, 349281, 349281, 346921, 346921, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 343396, 342225, 339889, 339889, 339889, 339889, 339889, 337561, 336400, 336400, 336400, 336400, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 337561, 336400, 336400, 335241, 335241, 335241, 337561, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 336400, 335241, 335241, 336400, 337561, 337561, 338724, 338724, 338724, 336400, 336400, 337561, 337561, 337561, 337561, 335241, 334084, 334084, 334084, 332929, 332929, 332929, 332929, 332929, 329476, 329476, 328329, 327184, 326041, 326041, 326041, 331776, 331776, 331776, 329476, 329476, 330625, 335241, 336400, 336400, 336400, 336400, 336400, 339889, 339889, 339889, 336400, 336400, 336400, 337561, 341056, 341056, 341056, 341056, 341056, 339889, 339889, 339889, 339889, 335241, 334084, 334084, 336400, 339889, 339889, 341056, 341056, 341056, 341056, 341056, 341056, 342225, 342225, 342225, 342225, 338724, 338724, 338724, 342225, 342225, 343396, 343396, 343396, 343396, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 341056, 339889, 339889, 339889, 339889, 339889, 341056, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 344569, 344569, 344569, 344569, 344569, 346921, 346921, 346921, 348100, 348100, 349281, 349281, 351649, 351649, 351649, 351649, 351649, 352836, 352836, 354025, 354025, 354025, 356409, 356409, 357604, 357604, 357604, 357604, 357604, 358801, 358801, 358801, 358801, 360000, 361201, 361201, 362404, 362404, 362404, 362404, 363609, 363609, 366025, 366025, 369664, 369664, 372100, 375769, 375769, 375769, 375769, 375769, 375769, 375769, 375769, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 378225, 378225, 378225, 380689, 380689, 380689, 380689, 383161, 383161, 383161, 384400, 384400, 384400, 384400, 384400, 388129, 388129, 388129, 388129, 389376, 390625, 390625, 390625, 391876, 391876, 391876, 391876, 393129, 393129, 393129, 395641, 395641, 395641, 395641, 396900, 396900, 396900, 396900, 396900, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 399424, 399424, 399424, 400689, 400689, 400689, 401956, 401956, 403225, 404496, 404496, 404496, 404496, 404496, 404496, 404496, 404496, 404496, 403225, 401956, 401956, 401956, 400689, 400689, 400689, 400689, 400689, 400689, 399424, 399424, 399424, 399424, 398161, 398161, 398161, 398161, 398161, 398161, 396900, 396900, 396900, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 394384, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 391876, 391876, 391876, 390625, 390625, 388129, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 385641, 385641, 385641, 384400, 384400, 384400, 384400, 384400, 384400, 384400, 384400, 384400, 383161, 383161, 381924, 380689, 380689, 380689, 380689, 380689, 379456, 379456, 379456, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 379456, 379456, 379456, 379456, 379456, 379456, 378225, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 383161, 384400, 384400, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 388129, 388129, 388129, 390625, 391876, 391876, 393129, 393129, 393129, 394384, 395641, 395641, 395641, 395641, 396900, 396900, 398161, 398161, 398161, 399424, 399424, 401956, 401956, 403225, 405769, 407044, 407044, 407044, 407044, 407044, 408321, 409600, 409600, 409600, 409600, 410881, 412164, 412164, 412164, 412164, 412164, 413449, 413449, 413449, 414736, 414736, 414736, 416025, 416025, 417316, 417316, 417316, 417316, 418609, 418609, 418609, 419904, 419904, 419904, 421201, 421201, 421201, 421201, 423801, 423801, 423801, 423801, 423801, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 427716, 430336, 430336, 430336, 430336, 430336, 430336, 430336, 430336, 430336, 430336, 430336, 430336, 430336, 430336, 430336, 427716, 427716, 427716, 427716, 427716, 426409, 426409, 426409, 425104, 425104, 425104, 425104, 423801, 423801, 423801, 423801, 423801, 422500, 422500, 421201, 421201, 421201, 421201, 421201, 421201, 419904, 418609, 418609, 418609, 417316, 417316, 416025, 416025, 414736, 413449, 413449, 410881, 407044, 407044, 407044, 404496, 404496, 404496, 404496, 404496, 404496, 404496, 403225, 403225, 403225, 403225, 403225, 403225, 403225, 401956, 399424, 399424, 399424, 399424, 399424, 399424, 399424, 398161, 396900, 395641, 395641, 393129, 391876, 391876, 391876, 390625, 390625, 390625, 390625, 390625, 390625, 389376, 389376, 388129, 385641, 385641, 385641, 384400, 383161, 383161, 383161, 383161, 380689, 380689, 380689, 379456, 379456, 376996, 375769, 373321, 373321, 373321, 373321, 373321, 373321, 372100, 370881, 370881, 368449, 367236, 367236, 366025, 366025, 366025, 366025, 366025, 366025, 364816, 363609, 363609, 363609, 363609, 362404, 362404, 362404, 362404, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 362404, 361201, 360000, 360000, 360000, 360000, 360000, 360000, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 357604, 357604, 357604, 357604, 357604, 357604, 357604, 357604, 357604, 357604, 357604, 357604, 356409, 356409, 356409, 356409, 355216, 355216, 355216, 354025, 354025, 354025, 354025, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 351649, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 349281, 349281, 349281, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 348100, 348100, 348100, 348100, 348100, 348100, 350464, 350464, 350464, 350464, 348100, 348100, 348100, 346921, 346921, 346921, 346921, 346921, 346921, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 349281, 349281, 349281, 349281, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 346921, 346921, 346921, 348100, 348100, 348100, 346921, 346921, 346921, 346921, 345744, 345744, 345744, 345744, 345744, 346921, 346921, 346921, 346921, 346921, 345744, 345744, 345744, 345744, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 342225, 342225, 342225, 342225, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 342225, 342225, 339889, 339889, 342225, 342225, 342225, 342225, 342225, 342225, 341056, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 338724, 332929, 332929, 332929, 338724, 338724, 338724, 338724, 338724, 336400, 336400, 336400, 336400, 336400, 338724, 338724, 338724, 336400, 335241, 335241, 336400, 336400, 336400, 336400, 337561, 338724, 338724, 338724, 336400, 336400, 336400, 336400, 336400, 337561, 337561, 337561, 335241, 335241, 335241, 335241, 334084, 334084, 334084, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 334084, 334084, 335241, 336400, 336400, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 336400, 336400, 330625, 330625, 330625, 330625, 331776, 331776, 331776, 336400, 339889, 339889, 339889, 335241, 335241, 332929, 330625, 330625, 330625, 335241, 335241, 335241, 335241, 329476, 329476, 329476, 331776, 334084, 334084, 334084, 334084, 334084, 332929, 332929, 332929, 332929, 334084, 334084, 334084, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 332929, 334084, 334084, 334084, 334084, 324900, 324900, 328329, 328329, 328329, 327184, 327184, 327184, 329476, 329476, 329476, 329476, 327184, 327184, 327184, 330625, 334084, 334084, 334084, 330625, 330625, 330625, 330625, 336400, 336400, 336400, 336400, 336400, 336400, 337561, 342225, 342225, 342225, 342225, 342225, 339889, 338724, 336400, 336400, 339889, 343396, 343396, 343396, 342225, 342225, 342225, 342225, 339889, 339889, 338724, 338724, 338724, 343396, 343396, 343396, 342225, 341056, 341056, 339889, 339889, 339889, 341056, 343396, 343396, 343396, 343396, 343396, 343396, 348100, 348100, 348100, 343396, 341056, 341056, 338724, 338724, 338724, 345744, 345744, 345744, 345744, 345744, 344569, 344569, 344569, 344569, 345744, 345744, 345744, 343396, 343396, 341056, 341056, 341056, 342225, 342225, 342225, 342225, 342225, 342225, 341056, 339889, 339889, 339889, 339889, 344569, 348100, 348100, 348100, 341056, 341056, 341056, 341056, 341056, 345744, 345744, 341056, 341056, 344569, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 349281, 355216, 355216, 355216, 357604, 357604, 358801, 358801, 358801, 358801, 358801, 358801, 360000, 360000, 360000, 360000, 360000, 361201, 362404, 364816, 364816, 364816, 366025, 366025, 366025, 366025, 367236, 367236, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 369664, 369664, 369664, 370881, 370881, 372100, 372100, 374544, 374544, 375769, 375769, 375769, 376996, 378225, 378225, 378225, 379456, 379456, 379456, 379456, 379456, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 381924, 381924, 381924, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 379456, 379456, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 375769, 375769, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 373321, 373321, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 370881, 370881, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 368449, 368449, 368449, 368449, 368449, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 366025, 366025, 366025, 364816, 364816, 364816, 364816, 363609, 363609, 363609, 362404, 362404, 362404, 362404, 362404, 362404, 361201, 361201, 361201, 361201, 361201, 362404, 362404, 362404, 362404, 362404, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 360000, 358801, 358801, 358801, 358801, 357604, 357604, 357604, 357604, 357604, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 358801, 360000, 360000, 360000, 360000, 360000, 360000, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 362404, 362404, 363609, 364816, 364816, 364816, 366025, 366025, 366025, 367236, 367236, 367236, 367236, 368449, 368449, 368449, 372100, 373321, 373321, 373321, 373321, 373321, 374544, 375769, 375769, 375769, 375769, 375769, 375769, 376996, 376996, 376996, 378225, 378225, 379456, 379456, 379456, 379456, 379456, 379456, 380689, 380689, 381924, 381924, 381924, 384400, 384400, 384400, 384400, 385641, 386884, 388129, 388129, 388129, 388129, 388129, 389376, 389376, 390625, 390625, 391876, 391876, 394384, 394384, 394384, 394384, 394384, 394384, 395641, 396900, 396900, 396900, 396900, 396900, 396900, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 399424, 399424, 399424, 399424, 399424, 399424, 399424, 401956, 401956, 401956, 401956, 401956, 401956, 401956, 401956, 401956, 404496, 404496, 404496, 404496, 404496, 404496, 404496, 401956, 401956, 401956, 401956, 401956, 401956, 401956, 401956, 401956, 401956, 401956, 403225, 403225, 403225, 403225, 400689, 400689, 399424, 399424, 399424, 399424, 399424, 400689, 400689, 400689, 400689, 399424, 399424, 399424, 399424, 399424, 399424, 399424, 399424, 399424, 399424, 399424, 399424, 399424, 398161, 398161, 396900, 395641, 395641, 395641, 395641, 395641, 394384, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 391876, 391876, 391876, 391876, 391876, 391876, 390625, 390625, 390625, 390625, 390625, 390625, 389376, 388129, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 385641, 385641, 385641, 385641, 385641, 385641, 384400, 384400, 384400, 384400, 384400, 383161, 379456, 378225, 376996, 376996, 376996, 375769, 375769, 375769, 374544, 374544, 374544, 374544, 373321, 373321, 373321, 372100, 369664, 369664, 369664, 369664, 369664, 369664, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 368449, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 364816, 363609, 363609, 362404, 361201, 361201, 361201, 361201, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 358801, 358801, 358801, 358801, 357604, 357604, 357604, 357604, 357604, 357604, 355216, 355216, 355216, 354025, 354025, 352836, 352836, 352836, 352836, 352836, 352836, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 350464, 349281, 349281, 349281, 349281, 346921, 345744, 345744, 348100, 349281, 349281, 346921, 345744, 345744, 344569, 344569, 345744, 345744, 345744, 345744, 345744, 343396, 343396, 343396, 346921, 346921, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 343396, 343396, 343396, 345744, 345744, 345744, 344569, 344569, 344569, 343396, 343396, 343396, 343396, 343396, 344569, 344569, 344569, 339889, 339889, 339889, 339889, 342225, 342225, 342225, 338724, 338724, 338724, 341056, 343396, 343396, 343396, 342225, 341056, 339889, 339889, 337561, 337561, 337561, 336400, 336400, 335241, 335241, 335241, 338724, 338724, 338724, 338724, 339889, 339889, 339889, 339889, 339889, 341056, 341056, 342225, 342225, 343396, 343396, 343396, 338724, 338724, 338724, 339889, 342225, 342225, 339889, 334084, 334084, 334084, 339889, 339889, 339889, 339889, 339889, 335241, 335241, 335241, 335241, 335241, 337561, 339889, 339889, 339889, 337561, 337561, 337561, 334084, 334084, 334084, 336400, 336400, 336400, 336400, 336400, 336400, 335241, 335241, 335241, 336400, 338724, 338724, 336400, 332929, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 331776, 331776, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 332929, 332929, 332929, 332929, 334084, 334084, 334084, 329476, 329476, 329476, 331776, 331776, 332929, 332929, 332929, 334084, 334084, 334084, 334084, 335241, 335241, 335241, 335241, 335241, 334084, 328329, 328329, 336400, 336400, 328329, 328329, 328329, 328329, 328329, 334084, 334084, 334084, 331776, 328329, 328329, 328329, 330625, 330625, 330625, 330625, 330625, 330625, 329476, 329476, 329476, 329476, 331776, 334084, 334084, 330625, 328329, 328329, 328329, 329476, 332929, 332929, 332929, 329476, 327184, 327184, 327184, 327184, 327184, 327184, 329476, 329476, 329476, 329476, 330625, 330625, 330625, 329476, 328329, 328329, 329476, 329476, 329476, 329476, 329476, 330625, 330625, 330625, 328329, 328329, 328329, 329476, 329476, 329476, 329476, 329476, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 327184, 326041, 326041, 326041, 326041, 326041, 327184, 327184, 327184, 327184, 327184, 327184, 330625, 330625, 330625, 330625, 330625, 332929, 332929, 329476, 329476, 328329, 327184, 327184, 326041, 326041, 326041, 328329, 328329, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 326041, 326041, 318096, 318096, 318096, 318096, 320356, 320356, 320356, 326041, 326041, 326041, 327184, 327184, 327184, 327184, 327184, 328329, 329476, 329476, 329476, 329476, 329476, 331776, 331776, 332929, 334084, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 338724, 338724, 338724, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 338724, 338724, 338724, 339889, 339889, 339889, 339889, 341056, 341056, 341056, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 341056, 341056, 341056, 341056, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 343396, 343396, 343396, 343396, 345744, 345744, 345744, 345744, 346921, 346921, 346921, 346921, 346921, 348100, 348100, 348100, 348100, 348100, 351649, 351649, 351649, 351649, 351649, 351649, 352836, 352836, 352836, 354025, 354025, 354025, 354025, 355216, 355216, 355216, 356409, 356409, 357604, 357604, 358801, 358801, 358801, 360000, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 362404, 362404, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 357604, 356409, 356409, 356409, 356409, 356409, 356409, 356409, 356409, 355216, 355216, 355216, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 352836, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 349281, 349281, 349281, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 345744, 345744, 345744, 345744, 345744, 346921, 346921, 346921, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 345744, 345744, 346921, 346921, 346921, 346921, 348100, 348100, 348100, 348100, 348100, 348100, 349281, 349281, 349281, 349281, 350464, 350464, 350464, 350464, 350464, 350464, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 354025, 354025, 354025, 354025, 355216, 355216, 355216, 357604, 357604, 357604, 357604, 357604, 357604, 357604, 360000, 360000, 360000, 361201, 361201, 362404, 362404, 362404, 362404, 362404, 362404, 363609, 363609, 364816, 366025, 366025, 367236, 367236, 368449, 368449, 368449, 369664, 369664, 369664, 369664, 370881, 370881, 370881, 370881, 370881, 370881, 373321, 373321, 375769, 375769, 376996, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 378225, 379456, 379456, 379456, 379456, 379456, 380689, 380689, 380689, 380689, 380689, 380689, 381924, 381924, 381924, 381924, 381924, 383161, 383161, 384400, 385641, 385641, 385641, 385641, 385641, 385641, 385641, 388129, 388129, 388129, 388129, 389376, 389376, 389376, 390625, 390625, 390625, 390625, 390625, 390625, 391876, 391876, 391876, 391876, 391876, 391876, 393129, 394384, 394384, 394384, 394384, 394384, 394384, 394384, 394384, 394384, 395641, 395641, 395641, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 396900, 396900, 396900, 396900, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 395641, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 400689, 400689, 400689, 400689, 400689, 400689, 400689, 400689, 400689, 399424, 399424, 399424, 399424, 399424, 399424, 399424, 399424, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 396900, 398161, 398161, 398161, 398161, 398161, 398161, 400689, 400689, 400689, 400689, 400689, 400689, 400689, 399424, 399424, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 398161, 396900, 396900, 396900, 396900, 396900, 394384, 394384, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 391876, 391876, 391876, 391876, 391876, 390625, 390625, 390625, 390625, 390625, 390625, 390625, 389376, 389376, 389376, 388129, 388129, 388129, 388129, 388129, 388129, 386884, 384400, 384400, 384400, 383161, 383161, 383161, 383161, 383161, 381924, 381924, 381924, 381924, 381924, 381924, 381924, 381924, 381924, 380689, 379456, 379456, 378225, 378225, 375769, 375769, 375769, 375769, 374544, 373321, 373321, 373321, 373321, 373321, 372100, 372100, 372100, 372100, 370881, 370881, 370881, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 368449, 367236, 367236, 364816, 364816, 363609, 363609, 363609, 363609, 363609, 363609, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 362404, 361201, 361201, 358801, 358801, 357604, 355216, 355216, 355216, 355216, 355216, 355216, 355216, 355216, 354025, 354025, 354025, 352836, 352836, 352836, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 349281, 349281, 349281, 349281, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 344569, 343396, 343396, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 341056, 341056, 341056, 341056, 338724, 338724, 338724, 338724, 337561, 337561, 337561, 336400, 336400, 336400, 336400, 336400, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 336400, 336400, 336400, 335241, 335241, 335241, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 332929, 332929, 332929, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 330625, 330625, 330625, 330625, 330625, 330625, 329476, 329476, 329476, 329476, 329476, 329476, 330625, 330625, 330625, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 329476, 329476, 329476, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 329476, 329476, 329476, 329476, 329476, 328329, 328329, 328329, 328329, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 328329, 329476, 329476, 329476, 329476, 328329, 328329, 330625, 331776, 331776, 331776, 331776, 315844, 315844, 315844, 315844, 316969, 316969, 316969, 316969, 319225, 320356, 320356, 320356, 320356, 321489, 321489, 324900, 324900, 324900, 322624, 322624, 322624, 327184, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 330625, 330625, 332929, 337561, 337561, 335241, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 337561, 337561, 336400, 336400, 336400, 336400, 336400, 334084, 334084, 334084, 335241, 335241, 336400, 336400, 336400, 336400, 337561, 337561, 341056, 341056, 341056, 339889, 337561, 337561, 337561, 337561, 336400, 336400, 336400, 336400, 335241, 335241, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 334084, 334084, 334084, 334084, 334084, 331776, 331776, 331776, 331776, 331776, 336400, 336400, 336400, 335241, 330625, 330625, 330625, 330625, 330625, 331776, 331776, 334084, 334084, 338724, 338724, 338724, 338724, 338724, 337561, 337561, 336400, 336400, 336400, 336400, 336400, 336400, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 339889, 339889, 339889, 337561, 335241, 335241, 337561, 339889, 342225, 342225, 343396, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 345744, 345744, 345744, 342225, 342225, 342225, 342225, 342225, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 346921, 348100, 348100, 348100, 348100, 348100, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 348100, 348100, 348100, 348100, 348100, 348100, 346921, 346921, 346921, 343396, 343396, 343396, 344569, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 346921, 346921, 346921, 346921, 344569, 344569, 344569, 344569, 344569, 344569, 343396, 343396, 343396, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 342225, 342225, 342225, 343396, 343396, 343396, 343396, 342225, 342225, 342225, 342225, 341056, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 338724, 342225, 342225, 342225, 338724, 338724, 338724, 339889, 339889, 339889, 339889, 342225, 342225, 342225, 342225, 336400, 336400, 336400, 336400, 336400, 336400, 335241, 335241, 335241, 336400, 336400, 336400, 337561, 337561, 337561, 337561, 337561, 336400, 336400, 336400, 338724, 338724, 338724, 337561, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 337561, 337561, 338724, 338724, 338724, 338724, 334084, 331776, 331776, 331776, 331776, 330625, 330625, 330625, 330625, 335241, 337561, 337561, 335241, 329476, 329476, 329476, 334084, 335241, 337561, 337561, 336400, 336400, 336400, 334084, 334084, 332929, 332929, 332929, 332929, 331776, 331776, 335241, 335241, 335241, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 332929, 332929, 332929, 332929, 329476, 329476, 339889, 339889, 336400, 336400, 336400, 336400, 332929, 332929, 332929, 334084, 336400, 337561, 337561, 338724, 338724, 341056, 343396, 343396, 341056, 338724, 338724, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 341056, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 344569, 344569, 344569, 348100, 348100, 348100, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 351649, 351649, 354025, 354025, 355216, 355216, 355216, 355216, 355216, 356409, 356409, 356409, 356409, 357604, 358801, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 361201, 361201, 363609, 363609, 363609, 363609, 363609, 364816, 364816, 364816, 364816, 364816, 366025, 366025, 366025, 368449, 368449, 368449, 369664, 370881, 370881, 370881, 370881, 372100, 372100, 372100, 372100, 373321, 374544, 374544, 374544, 374544, 374544, 375769, 375769, 375769, 375769, 375769, 376996, 378225, 378225, 378225, 378225, 378225, 378225, 379456, 379456, 379456, 379456, 380689, 380689, 380689, 383161, 384400, 384400, 386884, 386884, 388129, 388129, 388129, 389376, 389376, 389376, 389376, 389376, 390625, 390625, 390625, 390625, 391876, 391876, 391876, 391876, 393129, 393129, 393129, 394384, 394384, 394384, 394384, 394384, 394384, 394384, 394384, 395641, 395641, 395641, 396900, 396900, 396900, 396900, 396900, 398161, 398161, 398161, 399424, 399424, 399424, 399424, 399424, 400689, 400689, 401956, 403225, 403225, 403225, 404496, 404496, 404496, 404496, 405769, 407044, 407044, 407044, 408321, 408321, 409600, 409600, 409600, 409600, 409600, 409600, 410881, 412164, 412164, 412164, 412164, 412164, 412164, 412164, 412164, 412164, 412164, 413449, 413449, 413449, 413449, 413449, 414736, 414736, 417316, 417316, 417316, 417316, 417316, 417316, 417316, 418609, 418609, 418609, 418609, 418609, 418609, 418609, 418609, 419904, 419904, 419904, 419904, 419904, 419904, 422500, 422500, 422500, 422500, 422500, 422500, 422500, 422500, 422500, 422500, 422500, 422500, 422500, 422500, 422500, 422500, 422500, 422500, 422500, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 423801, 422500, 419904, 419904, 418609, 418609, 417316, 417316, 414736, 414736, 414736, 414736, 414736, 414736, 414736, 414736, 414736, 414736, 414736, 414736, 414736, 413449, 413449, 412164, 410881, 409600, 409600, 409600, 409600, 408321, 408321, 407044, 407044, 403225, 401956, 401956, 401956, 401956, 401956, 400689, 400689, 400689, 399424, 399424, 399424, 395641, 395641, 395641, 394384, 394384, 394384, 394384, 394384, 394384, 394384, 393129, 393129, 393129, 391876, 390625, 390625, 390625, 389376, 389376, 389376, 389376, 385641, 385641, 384400, 384400, 383161, 383161, 383161, 383161, 383161, 383161, 383161, 383161, 383161, 383161, 381924, 381924, 380689, 380689, 380689, 379456, 379456, 379456, 378225, 376996, 376996, 376996, 376996, 375769, 374544, 374544, 373321, 373321, 373321, 373321, 373321, 372100, 372100, 372100, 372100, 369664, 369664, 368449, 368449, 368449, 366025, 366025, 366025, 364816, 363609, 363609, 362404, 361201, 361201, 361201, 360000, 360000, 360000, 360000, 360000, 360000, 358801, 357604, 357604, 357604, 357604, 357604, 357604, 357604, 357604, 356409, 356409, 356409, 356409, 356409, 355216, 355216, 354025, 354025, 354025, 352836, 352836, 350464, 350464, 350464, 349281, 348100, 348100, 348100, 348100, 348100, 343396, 343396, 343396, 348100, 348100, 348100, 348100, 346921, 345744, 345744, 345744, 345744, 345744, 345744, 344569, 344569, 344569, 343396, 343396, 342225, 338724, 336400, 336400, 342225, 342225, 343396, 341056, 341056, 338724, 338724, 338724, 338724, 338724, 338724, 336400, 336400, 336400, 336400, 336400, 336400, 337561, 339889, 339889, 339889, 341056, 341056, 339889, 336400, 334084, 331776, 331776, 334084, 336400, 336400, 336400, 336400, 336400, 335241, 335241, 335241, 335241, 337561, 337561, 339889, 339889, 339889, 335241, 334084, 332929, 332929, 332929, 335241, 337561, 337561, 336400, 336400, 336400, 332929, 332929, 332929, 332929, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 332929, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 330625, 330625, 330625, 332929, 332929, 332929, 332929, 331776, 331776, 331776, 331776, 331776, 331776, 332929, 332929, 332929, 334084, 334084, 334084, 334084, 334084, 330625, 330625, 330625, 330625, 331776, 331776, 331776, 329476, 329476, 329476, 330625, 330625, 330625, 330625, 330625, 331776, 331776, 331776, 331776, 330625, 330625, 330625, 330625, 330625, 328329, 328329, 328329, 328329, 328329, 326041, 324900, 324900, 326041, 327184, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 334084, 334084, 334084, 334084, 334084, 334084, 329476, 329476, 329476, 328329, 324900, 324900, 324900, 326041, 326041, 327184, 327184, 327184, 327184, 332929, 332929, 332929, 330625, 329476, 329476, 329476, 329476, 329476, 330625, 330625, 332929, 332929, 332929, 332929, 332929, 328329, 327184, 327184, 327184, 327184, 329476, 331776, 331776, 331776, 334084, 334084, 331776, 330625, 329476, 314721, 314721, 310249, 310249, 310249, 313600, 313600, 313600, 313600, 316406.25, 318096, 319225, 319225, 320356, 320356, 321489, 322624, 322624, 323761, 323761, 324900, 324900, 326041, 326041, 326041, 326041, 326041, 326041, 327184, 327184, 327184, 327184, 328329, 328329, 328329, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 330625, 330625, 331776, 331776, 331776, 331776, 331776, 332929, 332929, 332929, 332929, 331776, 331776, 331776, 331776, 332929, 332929, 332929, 332929, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 331776, 331776, 331776, 331776, 331776, 332929, 332929, 332929, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 330625, 330625, 330625, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 332929, 332929, 334084, 334084, 334084, 334084, 334084, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 336400, 336400, 337561, 337561, 337561, 337561, 338724, 338724, 338724, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 342225, 342225, 342225, 342225, 342225, 343396, 343396, 343396, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 343396, 343396, 343396, 343396, 343396, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 339889, 339889, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 336400, 336400, 336400, 335241, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 332929, 332929, 332929, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 331776, 331776, 331776, 331776, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 329476, 329476, 329476, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 330625, 330625, 330625, 330625, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 330625, 330625, 330625, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 332929, 332929, 334084, 334084, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 336400, 336400, 336400, 336400, 336400, 337561, 337561, 337561, 337561, 337561, 338724, 338724, 338724, 339889, 339889, 339889, 339889, 339889, 338724, 338724, 338724, 338724, 338724, 338724, 339889, 339889, 339889, 341056, 341056, 341056, 343396, 343396, 343396, 343396, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 345744, 346921, 346921, 346921, 346921, 348100, 348100, 348100, 348100, 348100, 349281, 349281, 349281, 349281, 349281, 350464, 350464, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 355216, 356409, 356409, 356409, 356409, 357604, 357604, 357604, 357604, 357604, 357604, 358801, 358801, 358801, 358801, 358801, 358801, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 361201, 362404, 362404, 363609, 363609, 363609, 363609, 362404, 362404, 362404, 362404, 363609, 364816, 364816, 366025, 366025, 366025, 366025, 366025, 367236, 367236, 367236, 368449, 368449, 368449, 368449, 369664, 369664, 369664, 370881, 370881, 370881, 370881, 370881, 370881, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 372100, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 376996, 379456, 379456, 379456, 379456, 379456, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 381924, 381924, 381924, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 380689, 379456, 379456, 378225, 376996, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 374544, 373321, 373321, 372100, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 369664, 367236, 367236, 367236, 366025, 366025, 366025, 366025, 364816, 364816, 364816, 364816, 364816, 364816, 363609, 363609, 363609, 363609, 363609, 362404, 362404, 362404, 362404, 362404, 363609, 363609, 363609, 363609, 362404, 362404, 361201, 358801, 358801, 358801, 357604, 356409, 356409, 356409, 357604, 357604, 357604, 356409, 356409, 355216, 355216, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 350464, 350464, 349281, 349281, 349281, 349281, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 341056, 341056, 341056, 341056, 339889, 339889, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 337561, 336400, 336400, 336400, 337561, 337561, 337561, 336400, 336400, 336400, 336400, 336400, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 336400, 336400, 336400, 336400, 336400, 336400, 335241, 335241, 335241, 335241, 334084, 334084, 334084, 334084, 335241, 335241, 335241, 334084, 334084, 334084, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 334084, 334084, 334084, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 331776, 331776, 331776, 331776, 331776, 332929, 332929, 332929, 334084, 334084, 334084, 334084, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 336400, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 339889, 339889, 339889, 339889, 341056, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 343396, 343396, 343396, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 346921, 346921, 349281, 349281, 349281, 346921, 346921, 346921, 349281, 349281, 349281, 351649, 351649, 349281, 346921, 346921, 315844, 315844, 315844, 315844, 315844, 316969, 316969, 316969, 317532.25, 317532.25, 318096, 318096, 318096, 318096, 318096, 320356, 320356, 320356, 321489, 321489, 322624, 323761, 323761, 323761, 323761, 323761, 324900, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 332929, 332929, 334084, 334084, 335241, 335241, 335241, 335241, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 337561, 337561, 337561, 337561, 337561, 336400, 336400, 336400, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 337561, 337561, 337561, 337561, 336400, 336400, 336400, 336400, 336400, 335241, 335241, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 332929, 332929, 332929, 332929, 332929, 330625, 330625, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 330625, 330625, 330625, 330625, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 328329, 328329, 328329, 328329, 329476, 329476, 329476, 329476, 329476, 329476, 328329, 328329, 328329, 328329, 328329, 328329, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 324900, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 326041, 327184, 327184, 328329, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 328329, 326041, 326041, 326041, 326041, 326041, 326041, 327184, 327184, 327184, 326041, 326041, 324900, 324900, 324900, 324900, 324900, 324900, 326041, 326041, 326041, 327184, 327184, 327184, 327184, 327184, 327184, 326041, 326041, 326041, 326041, 327184, 327184, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 330625, 330625, 330625, 330625, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 332929, 334084, 334084, 335241, 335241, 335241, 336400, 336400, 336400, 336400, 336400, 336400, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 343396, 343396, 343396, 343396, 343396, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 345744, 345744, 346921, 346921, 346921, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 348100, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 348100, 348100, 348100, 348100, 348100, 346921, 346921, 346921, 348100, 348100, 348100, 346921, 346921, 346921, 346921, 346921, 346921, 348100, 348100, 348100, 348100, 349281, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 349281, 349281, 349281, 349281, 349281, 348100, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 345744, 344569, 344569, 344569, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 343396, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 341056, 341056, 339889, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 338724, 339889, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 342225, 341056, 339889, 338724, 338724, 338724, 337561, 337561, 337561, 337561, 337561, 337561, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 337561, 337561, 337561, 337561, 337561, 336400, 336400, 336400, 336400, 336400, 336400, 337561, 337561, 337561, 337561, 337561, 337561, 336400, 336400, 336400, 336400, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 336400, 336400, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 341056, 342225, 342225, 342225, 342225, 343396, 344569, 344569, 345744, 345744, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 348100, 348100, 348100, 348100, 348100, 348100, 349281, 349281, 349281, 349281, 349281, 350464, 350464, 350464, 350464, 350464, 350464, 351649, 351649, 351649, 351649, 354025, 355216, 355216, 355216, 355216, 355216, 355216, 355216, 356409, 356409, 357604, 358801, 358801, 358801, 358801, 358801, 358801, 360000, 360000, 361201, 361201, 361201, 361201, 362404, 363609, 363609, 364816, 364816, 364816, 366025, 366025, 366025, 367236, 368449, 368449, 368449, 369664, 369664, 372100, 372100, 372100, 372100, 373321, 373321, 373321, 373321, 374544, 374544, 374544, 375769, 375769, 376996, 378225, 378225, 378225, 378225, 378225, 380689, 381924, 383161, 384400, 384400, 388129, 389376, 389376, 389376, 389376, 390625, 390625, 390625, 390625, 394384, 394384, 394384, 394384, 394384, 395641, 395641, 395641, 395641, 401956, 401956, 403225, 405769, 407044, 408321, 410881, 410881, 413449, 413449, 414736, 414736, 419904, 419904, 419904, 414736, 414736, 414736, 419904, 421201, 421201, 320356, 319225, 314721, 312481, 312481, 316969, 321489, 321489, 321489, 321489, 321489, 319225, 319225, 319225, 319225, 319225, 322624, 323761, 323761, 323761, 323761, 326041, 326041, 326041, 322624, 321489, 321489, 321489, 323761, 324900, 328329, 328329, 328329, 329476, 329476, 329476, 329476, 329476, 330625, 330625, 330625, 330625, 331776, 331776, 331776, 330625, 330625, 330625, 330625, 330625, 332929, 332929, 328329, 328329, 328329, 328329, 328329, 328329, 324900, 324900, 324900, 328329, 330625, 331776, 331776, 331776, 332929, 332929, 332929, 332929, 332929, 330625, 327184, 327184, 327184, 327184, 328329, 330625, 330625, 334084, 334084, 334084, 331776, 331776, 331776, 331776, 332929, 332929, 332929, 329476, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 332929, 332929, 332929, 332929, 329476, 329476, 329476, 329476, 329476, 329476, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 328329, 327184, 327184, 327184, 329476, 329476, 329476, 330625, 330625, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 330625, 330625, 330625, 330625, 332929, 332929, 332929, 332929, 332929, 332929, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 338724, 338724, 338724, 337561, 335241, 334084, 334084, 334084, 334084, 335241, 336400, 336400, 336400, 336400, 338724, 338724, 338724, 337561, 337561, 337561, 337561, 337561, 338724, 338724, 338724, 337561, 335241, 335241, 334084, 334084, 334084, 332929, 332929, 332929, 336400, 337561, 338724, 338724, 338724, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 334084, 334084, 334084, 334084, 331776, 331776, 331776, 335241, 335241, 335241, 331776, 331776, 331776, 331776, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 331776, 331776, 336400, 336400, 335241, 332929, 332929, 332929, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 328329, 328329, 328329, 328329, 328329, 332929, 332929, 332929, 332929, 332929, 330625, 328329, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 331776, 331776, 331776, 331776, 331776, 330625, 330625, 330625, 330625, 330625, 331776, 331776, 329476, 329476, 329476, 329476, 328329, 327184, 327184, 327184, 327184, 327184, 326041, 326041, 326041, 326041, 326041, 328329, 328329, 328329, 328329, 328329, 328329, 329476, 329476, 329476, 329476, 329476, 329476, 330625, 331776, 331776, 331776, 331776, 331776, 324900, 324900, 324900, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 327184, 324900, 324900, 324900, 324900, 329476, 329476, 329476, 329476, 328329, 328329, 328329, 329476, 330625, 330625, 330625, 330625, 328329, 328329, 328329, 328329, 328329, 329476, 329476, 329476, 323761, 323761, 323761, 323761, 323761, 323761, 328329, 330625, 331776, 331776, 331776, 331776, 327184, 327184, 327184, 327184, 327184, 327184, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 330625, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 329476, 328329, 327184, 327184, 329476, 329476, 329476, 327184, 327184, 327184, 327184, 327184, 327184, 327184, 329476, 329476, 329476, 329476, 330625, 330625, 331776, 331776, 331776, 331776, 327184, 327184, 327184, 329476, 329476, 329476, 330625, 330625, 330625, 332929, 332929, 332929, 332929, 330625, 330625, 330625, 328329, 328329, 328329, 328329, 331776, 331776, 331776, 331776, 329476, 329476, 329476, 330625, 330625, 330625, 330625, 330625, 330625, 334084, 334084, 334084, 334084, 331776, 331776, 331776, 329476, 329476, 329476, 329476, 330625, 338724, 338724, 338724, 329476, 327184, 327184, 329476, 329476, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 331776, 329476, 327184, 327184, 328329, 332929, 332929, 332929, 332929, 334084, 335241, 335241, 335241, 335241, 336400, 336400, 336400, 336400, 337561, 337561, 337561, 337561, 337561, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 336400, 329476, 329476, 337561, 337561, 337561, 337561, 337561, 338724, 341056, 341056, 337561, 337561, 337561, 337561, 337561, 337561, 335241, 335241, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 344569, 344569, 344569, 344569, 343396, 343396, 342225, 342225, 338724, 338724, 338724, 342225, 342225, 342225, 342225, 342225, 342225, 345744, 345744, 345744, 345744, 343396, 341056, 341056, 343396, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 344569, 345744, 346921, 346921, 346921, 346921, 346921, 351649, 351649, 343396, 343396, 343396, 343396, 343396, 343396, 344569, 344569, 344569, 344569, 344569, 346921, 346921, 346921, 346921, 348100, 349281, 350464, 350464, 346921, 346921, 346921, 346921, 349281, 350464, 350464, 350464, 350464, 350464, 351649, 352836, 352836, 350464, 348100, 348100, 348100, 344569, 344569, 346921, 350464, 350464, 350464, 350464, 351649, 351649, 351649, 351649, 351649, 351649, 350464, 350464, 350464, 346921, 346921, 346921, 346921, 346921, 350464, 352836, 352836, 352836, 351649, 350464, 350464, 350464, 350464, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 346921, 346921, 346921, 351649, 351649, 351649, 351649, 349281, 349281, 349281, 351649, 351649, 351649, 351649, 352836, 352836, 352836, 352836, 350464, 350464, 350464, 346921, 346921, 346921, 346921, 349281, 349281, 349281, 349281, 350464, 350464, 350464, 350464, 350464, 350464, 349281, 349281, 348100, 348100, 348100, 348100, 346921, 346921, 346921, 346921, 346921, 354025, 354025, 351649, 345744, 345744, 346921, 346921, 346921, 346921, 350464, 350464, 350464, 350464, 350464, 350464, 351649, 351649, 351649, 350464, 348100, 348100, 346921, 346921, 342225, 342225, 342225, 349281, 349281, 349281, 349281, 349281, 349281, 346921, 345744, 345744, 345744, 345744, 345744, 345744, 345744, 348100, 350464, 350464, 350464, 350464, 349281, 344569, 344569, 344569, 344569, 345744, 346921, 346921, 346921, 346921, 346921, 346921, 346921, 345744, 345744, 345744, 345744, 346921, 348100, 348100, 348100, 348100, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 350464, 350464, 350464, 350464, 351649, 354025, 354025, 354025, 354025, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 356409, 356409, 356409, 357604, 357604, 355216, 355216, 352836, 351649, 351649, 351649, 356409, 356409, 356409, 356409, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 361201, 363609, 363609, 363609, 363609, 363609, 363609, 367236, 367236, 367236, 367236, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 373321, 375769, 375769, 375769, 375769, 375769, 376996, 378225, 383161, 383161, 383161, 383161, 384400, 384400, 384400, 384400, 384400, 386884, 388129, 388129, 389376, 389376, 390625, 390625, 391876, 391876, 393129, 393129, 393129, 394384, 394384, 395641, 395641, 396900, 399424, 400689, 400689, 400689, 401956, 405769, 407044, 408321, 408321, 409600, 410881, 412164, 413449, 414736, 416025, 416025, 416025, 417316, 417316, 419904, 419904, 421201, 425104, 425104, 425104, 427716, 427716, 430336, 430336, 430336, 431649, 432964, 436921, 438244, 438244, 440896, 440896, 440896, 440896, 440896, 443556, 444889, 444889, 446224, 447561, 448900, 450241, 451584, 455625, 458329, 461041, 463761, 465124, 466489, 466489, 471969, 471969, 476100, 476100, 481636, 484416, 484416, 484416, 487204, 488601, 490000, 490000, 491401, 495616, 495616, 499849, 499849, 502681, 504100, 505521, 508369, 514089, 518400, 519841, 519841, 528529, 532900, 532900, 535824, 537289, 544644, 544644, 556516, 556516, 556516, 558009, 564001, 565504, 567009, 568516, 573049, 573049, 574564, 574564, 576081, 577600, 577600, 577600, 580644, 583696, 585225, 588289, 597529, 597529, 608400, 608400, 611524, 613089, 616225, 619369, 620944, 624100, 638401, 641601, 654481, 654481, 654481, 649636, 649636, 649636, 680625, 680625, 680625, 680625, 326041, 326041, 321489, 321489, 321489, 321489, 322624, 323761, 323761, 323761, 323761, 323761, 323761, 328329, 330625, 331776, 331776, 331776, 331776, 329476, 329476, 329476, 334084, 334084, 334084, 331776, 331776, 331776, 332929, 335241, 335241, 335241, 335241, 332929, 332929, 332929, 332929, 334084, 334084, 334084, 329476, 329476, 329476, 332929, 335241, 335241, 336400, 336400, 336400, 336400, 335241, 335241, 335241, 335241, 334084, 334084, 334084, 336400, 336400, 337561, 348100, 370881, 450241, 450241, 450241, 361201, 361201, 336400, 336400, 336400, 336400, 336400, 336400, 335241, 335241, 332929, 332929, 330625, 330625, 330625, 331776, 332929, 336400, 338724, 338724, 338724, 337561, 337561, 336400, 336400, 334084, 334084, 334084, 334084, 334084, 335241, 336400, 336400, 336400, 336400, 336400, 334084, 334084, 335241, 336400, 336400, 337561, 337561, 337561, 337561, 335241, 334084, 334084, 334084, 334084, 334084, 334084, 334084, 331776, 331776, 334084, 334084, 334084, 334084, 336400, 337561, 337561, 337561, 336400, 334084, 332929, 332929, 335241, 336400, 337561, 337561, 337561, 336400, 336400, 336400, 336400, 336400, 337561, 338724, 338724, 338724, 338724, 338724, 338724, 341056, 341056, 341056, 336400, 336400, 336400, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 338724, 338724, 336400, 336400, 336400, 338724, 341056, 343396, 343396, 343396, 339889, 338724, 338724, 338724, 341056, 341056, 341056, 344569, 344569, 344569, 339889, 339889, 339889, 337561, 337561, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 342225, 342225, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 336400, 336400, 335241, 335241, 335241, 335241, 335241, 338724, 338724, 338724, 338724, 338724, 338724, 337561, 337561, 337561, 341056, 341056, 341056, 341056, 337561, 337561, 337561, 339889, 339889, 343396, 343396, 343396, 341056, 339889, 339889, 339889, 339889, 339889, 337561, 337561, 337561, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 336400, 336400, 336400, 336400, 336400, 338724, 338724, 338724, 338724, 341056, 341056, 341056, 334084, 331776, 331776, 331776, 331776, 336400, 336400, 336400, 332929, 332929, 332929, 332929, 334084, 336400, 338724, 338724, 336400, 335241, 335241, 336400, 337561, 337561, 337561, 337561, 336400, 336400, 336400, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 334084, 332929, 332929, 332929, 332929, 331776, 331776, 335241, 335241, 338724, 338724, 338724, 336400, 336400, 336400, 336400, 336400, 336400, 335241, 335241, 335241, 335241, 337561, 337561, 337561, 337561, 337561, 336400, 332929, 332929, 332929, 332929, 338724, 338724, 338724, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 335241, 336400, 337561, 339889, 339889, 334084, 334084, 338724, 338724, 338724, 338724, 338724, 338724, 337561, 337561, 337561, 337561, 337561, 336400, 336400, 336400, 335241, 334084, 334084, 334084, 334084, 334084, 335241, 335241, 335241, 335241, 335241, 336400, 336400, 336400, 336400, 341056, 341056, 341056, 341056, 339889, 338724, 338724, 338724, 342225, 342225, 342225, 342225, 342225, 339889, 337561, 337561, 337561, 337561, 338724, 338724, 336400, 336400, 336400, 336400, 335241, 335241, 335241, 336400, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 337561, 338724, 338724, 339889, 339889, 337561, 337561, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 339889, 338724, 338724, 338724, 338724, 338724, 335241, 335241, 335241, 337561, 338724, 339889, 339889, 339889, 338724, 338724, 338724, 338724, 338724, 338724, 341056, 341056, 338724, 338724, 337561, 337561, 336400, 336400, 336400, 339889, 341056, 341056, 343396, 343396, 343396, 345744, 345744, 350464, 350464, 350464, 343396, 342225, 342225, 344569, 348100, 349281, 349281, 348100, 346921, 346921, 344569, 344569, 339889, 338724, 341056, 345744, 348100, 348100, 351649, 351649, 351649, 344569, 344569, 344569, 345744, 345744, 345744, 344569, 344569, 344569, 344569, 344569, 344569, 345744, 348100, 348100, 348100, 348100, 348100, 348100, 350464, 350464, 350464, 350464, 350464, 350464, 350464, 349281, 346921, 346921, 346921, 350464, 350464, 352836, 352836, 350464, 350464, 350464, 350464, 351649, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 361201, 362404, 362404, 362404, 358801, 358801, 358801, 358801, 355216, 355216, 355216, 361201, 361201, 361201, 361201, 356409, 356409, 355216, 355216, 355216, 361201, 361201, 361201, 360000, 358801, 358801, 362404, 366025, 366025, 366025, 366025, 364816, 363609, 363609, 363609, 363609, 367236, 369664, 369664, 369664, 367236, 360000, 358801, 358801, 361201, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 366025, 366025, 368449, 372100, 372100, 372100, 370881, 370881, 370881, 363609, 363609, 363609, 363609, 364816, 366025, 366025, 366025, 366025, 366025, 366025, 366025, 366025, 366025, 366025, 366025, 366025, 367236, 369664, 369664, 369664, 369664, 368449, 368449, 368449, 368449, 367236, 367236, 367236, 367236, 367236, 367236, 367236, 369664, 370881, 370881, 368449, 367236, 367236, 367236, 367236, 368449, 369664, 370881, 375769, 375769, 370881, 370881, 370881, 370881, 370881, 370881, 369664, 368449, 367236, 367236, 370881, 370881, 370881, 370881, 370881, 370881, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 373321, 372100, 372100, 369664, 369664, 369664, 369664, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 372100, 372100, 372100, 368449, 368449, 369664, 369664, 369664, 369664, 372100, 375769, 375769, 379456, 379456, 379456, 379456, 376996, 376996, 376996, 376996, 372100, 372100, 372100, 376996, 376996, 376996, 376996, 378225, 378225, 378225, 378225, 378225, 378225, 375769, 374544, 374544, 374544, 374544, 378225, 378225, 378225, 376996, 379456, 379456, 384400, 384400, 385641, 384400, 384400, 384400, 384400, 385641, 385641, 385641, 385641, 384400, 383161, 383161, 383161, 383161, 383161, 385641, 385641, 388129, 388129, 389376, 389376, 389376, 389376, 389376, 389376, 389376, 390625, 390625, 390625, 390625, 389376, 389376, 389376, 389376, 390625, 390625, 390625, 390625, 398161, 400689, 400689, 400689, 400689, 395641, 395641, 396900, 396900, 396900, 396900, 396900, 403225, 404496, 404496, 404496, 412164, 412164, 412164, 412164, 412164, 412164, 412164, 412164, 412164, 412164, 416025, 419904, 419904, 419904, 419904, 419904, 418609, 418609, 418609, 418609, 418609, 422500, 422500, 422500, 422500, 425104, 431649, 436921, 436921, 436921, 430336, 430336, 430336, 443556, 447561, 448900, 448900, 448900, 446224, 446224, 466489, 466489, 466489, 466489, 462400, 462400, 462400, 462400, 469225, 469225, 469225, 474721, 474721, 474721, 474721, 481636, 487204, 491401, 491401, 491401, 492804, 492804, 492804, 492804, 498436, 508369, 509796, 509796, 509796, 509796, 509796, 515524, 515524, 515524, 522729, 522729, 522729, 522729, 534361, 537289, 543169, 550564, 550564, 550564, 550564, 561001, 570025, 570025, 570025, 574564, 580644, 580644, 585225, 586756, 589824, 589824, 589824, 589824, 597529, 597529, 597529, 597529, 617796, 625681, 625681, 628849, 638401, 641601, 646416, 646416, 648025, 656100, 656100, 659344, 667489, 678976, 678976, 688900, 688900, 690561, 697225, 708964, 712336, 729316, 729316, 731025, 741321, 743044, 744769, 755161, 762129, 763876, 765625, 765625, 765625, 767376, 783225, 792100, 795664, 799236, 808201, 829921, 839056, 840889, 842724, 857476, 857476, 877969, 879844, 889249, 891136, 915849, 917764, 925444, 925444, 925444, 925444, 929296, 948676, 950625, 962361, 968256, 978121, 996004, 1004004, 1016064, 1020100, 1036324, 1040400, 1042441, 1050625, 1056784, 1058841, 1085764, 1092025, 1094116, 1104601, 1121481, 1129969, 1136356, 1162084, 1177225, 1179396, 1201216, 1205604, 1236544, 1240996, 1243225, 1252161, 1256641, 1267876, 1297321, 1304164, 1338649, 1354896, 1357225, 1366561, 1371241, 1428025, 1432809, 1437601, 1437601, 1461681, 1464100, 1500625, 1500625, 1505529, 1542564, 1542564, 1542564, 1550025, 1572516, 1572516, 1597696, 1653796, 1653796, 1653796, 1687401, 1703025, 1752976, 1758276, 1768900, 344569, 343396, 339889, 337561, 336400, 336400, 339889, 343396, 343396, 343396, 343396, 343396, 341056, 341056, 341056, 345744, 345744, 345744, 348100, 348100, 348100, 348100, 351649, 351649, 352836, 352836, 355216, 355216, 355216, 357604, 362404, 363609, 358801, 349281, 349281, 349281, 349281, 348100, 348100, 348100, 348100, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 348100, 348100, 348100, 348100, 345744, 345744, 345744, 345744, 346921, 346921, 346921, 345744, 345744, 344569, 344569, 344569, 345744, 345744, 345744, 345744, 344569, 344569, 344569, 349281, 349281, 349281, 346921, 346921, 346921, 346921, 346921, 354025, 354025, 344569, 344569, 349281, 349281, 349281, 349281, 349281, 351649, 351649, 351649, 351649, 351649, 351649, 348100, 346921, 346921, 346921, 352836, 352836, 352836, 352836, 351649, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 349281, 348100, 346921, 346921, 346921, 354025, 354025, 354025, 352836, 352836, 352836, 352836, 349281, 349281, 349281, 349281, 351649, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 354025, 350464, 350464, 351649, 351649, 351649, 348100, 348100, 348100, 348100, 350464, 351649, 351649, 351649, 351649, 351649, 350464, 348100, 348100, 355216, 355216, 355216, 355216, 354025, 354025, 354025, 354025, 352836, 352836, 352836, 350464, 350464, 357604, 357604, 357604, 357604, 357604, 357604, 357604, 356409, 356409, 356409, 354025, 352836, 352836, 351649, 351649, 350464, 350464, 350464, 352836, 352836, 352836, 352836, 352836, 355216, 355216, 355216, 355216, 355216, 355216, 351649, 351649, 351649, 363609, 363609, 357604, 357604, 357604, 354025, 354025, 354025, 354025, 351649, 351649, 352836, 352836, 352836, 352836, 352836, 354025, 357604, 357604, 357604, 356409, 356409, 356409, 356409, 356409, 355216, 355216, 355216, 355216, 355216, 354025, 354025, 354025, 354025, 352836, 352836, 352836, 352836, 352836, 354025, 352836, 350464, 350464, 350464, 350464, 352836, 352836, 352836, 352836, 356409, 356409, 356409, 352836, 350464, 350464, 350464, 350464, 355216, 355216, 355216, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 352836, 354025, 354025, 355216, 355216, 357604, 357604, 355216, 352836, 352836, 352836, 352836, 352836, 352836, 354025, 360000, 360000, 355216, 354025, 352836, 351649, 349281, 349281, 350464, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 351649, 350464, 350464, 350464, 350464, 351649, 351649, 355216, 355216, 354025, 354025, 354025, 354025, 354025, 352836, 352836, 352836, 356409, 356409, 356409, 355216, 355216, 355216, 352836, 351649, 351649, 351649, 352836, 352836, 352836, 352836, 354025, 355216, 355216, 355216, 355216, 355216, 356409, 356409, 356409, 356409, 355216, 355216, 355216, 355216, 355216, 354025, 351649, 351649, 351649, 351649, 351649, 352836, 355216, 355216, 355216, 355216, 355216, 355216, 355216, 355216, 352836, 352836, 352836, 352836, 356409, 356409, 356409, 356409, 356409, 356409, 357604, 357604, 357604, 357604, 357604, 357604, 356409, 355216, 355216, 355216, 357604, 357604, 357604, 357604, 357604, 355216, 352836, 352836, 356409, 356409, 356409, 356409, 356409, 357604, 357604, 357604, 357604, 357604, 357604, 356409, 356409, 356409, 356409, 356409, 356409, 356409, 356409, 357604, 357604, 357604, 357604, 360000, 360000, 356409, 356409, 356409, 356409, 356409, 356409, 356409, 360000, 362404, 362404, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 360000, 361201, 362404, 362404, 362404, 362404, 358801, 358801, 358801, 364816, 364816, 364816, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 363609, 360000, 360000, 360000, 361201, 366025, 366025, 366025, 368449, 368449, 368449, 368449, 368449, 367236, 367236, 367236, 367236, 367236, 367236, 368449, 368449, 368449, 368449, 367236, 367236, 367236, 368449, 368449, 368449, 368449, 368449, 368449, 366025, 366025, 366025, 366025, 368449, 368449, 368449, 368449, 369664, 369664, 369664, 370881, 370881, 373321, 374544, 374544, 374544, 368449, 368449, 368449, 369664, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 370881, 372100, 372100, 372100, 372100, 372100, 375769, 375769, 375769, 375769, 376996, 376996, 376996, 376996, 376996, 378225, 378225, 378225, 378225, 378225, 378225, 376996, 375769, 375769, 378225, 380689, 384400, 384400, 381924, 379456, 376996, 376996, 380689, 386884, 386884, 381924, 379456, 379456, 379456, 380689, 381924, 381924, 384400, 384400, 388129, 388129, 388129, 388129, 388129, 388129, 389376, 487204, 644809, 737881, 558009, 403225, 403225, 388129, 388129, 388129, 388129, 389376, 391876, 391876, 391876, 391876, 389376, 385641, 385641, 385641, 384400, 384400, 384400, 390625, 390625, 390625, 390625, 390625, 390625, 388129, 388129, 388129, 388129, 390625, 396900, 396900, 396900, 395641, 395641, 395641, 395641, 390625, 390625, 393129, 395641, 395641, 398161, 398161, 394384, 391876, 391876, 391876, 391876, 391876, 394384, 394384, 396900, 396900, 398161, 398161, 398161, 398161, 400689, 400689, 400689, 400689, 399424, 398161, 398161, 403225, 405769, 405769, 405769, 405769, 405769, 408321, 408321, 410881, 412164, 412164, 407044, 407044, 400689, 400689, 400689, 400689, 401956, 407044, 407044, 407044, 407044, 413449, 413449, 413449, 413449, 412164, 412164, 412164, 412164, 412164, 412164, 413449, 413449, 413449, 413449, 413449, 410881, 410881, 410881, 416025, 416025, 416025, 416025, 416025, 416025, 421201, 421201, 421201, 421201, 421201, 421201, 421201, 421201, 421201, 423801, 426409, 426409, 430336, 438244, 439569, 438244, 430336, 430336, 430336, 430336, 435600, 435600, 435600, 438244, 439569, 439569, 432964, 427716, 427716, 427716, 443556, 443556, 443556, 438244, 438244, 438244, 438244, 438244, 438244, 444889, 444889, 444889, 444889, 448900, 448900, 448900, 448900, 452929, 455625, 456976, 456976, 456976, 456976, 456976, 456976, 461041, 461041, 463761, 470596, 470596, 470596, 470596, 470596, 477481, 477481, 477481, 473344, 473344, 473344, 480249, 480249, 488601, 488601, 488601, 488601, 490000, 494209, 498436, 501264, 506944, 506944, 508369, 508369, 514089, 514089, 515524, 515524, 515524, 519841, 535824, 535824, 535824, 535824, 537289, 537289, 537289, 537289, 543169, 543169, 534361, 534361, 534361, 534361, 550564, 550564, 550564, 556516, 556516, 565504, 570025, 573049, 577600, 582169, 583696, 583696, 583696, 589824, 589824, 600625, 606841, 606841, 606841, 608400, 608400, 611524, 617796, 619369, 620944, 625681, 638401, 638401, 643204, 643204, 651249, 651249, 652864, 657721, 657721, 665856, 665856, 682276, 682276, 682276, 688900, 693889, 708964, 717409, 720801, 732736, 736164, 736164, 741321, 741321, 744769, 760384, 769129, 776161, 779689, 779689, 786769, 819025, 819025, 822649, 831744, 855625, 855625, 855625, 857476, 857476, 866761, 906304, 906304, 912025, 913936, 927369, 933156, 933156, 954529, 982081, 984064, 992016, 992016, 1010025, 1032256, 1034289, 1034289, 1038361, 1038361, 1081600, 1081600, 1094116, 1094116, 1096209, 1129969, 1129969, 1129969, 1162084, 1181569, 1183744, 1236544, 1245456, 1258884, 1258884, 1258884, 1261129, 1304164, 1315609, 1317904, 1334025, 1354896, 1380625, 1406596, 1420864, 1420864, 1442401, 1459264, 1459264, 1476225, 1517824, 1540081, 1547536, 1577536, 1590121, 1612900, 1617984, 1635841, 1643524, 1669264, 1721344, 1747684, 1792921, 1792921, 1792921, 1792921, 1800964, 1811716, 1882384, 1909924, 1926544, 1929321, 1971216, 1999396, 2010724, 2042041, 2090916, 2102500, 2122849, 2122849, 2190400, 2223081, 2247001, 2247001, 2307361, 2371600, 2399401, 2405601, 2433600, 2436721, 2563201, 2579236, 2579236, 2579236, 2647129, 2663424, 2666689, 2792241, 2812329, 2829124, 2896804, 2982529, 2982529, 2999824, 3006756, 3006756, 3101121, 3196944, 3218436, 3232804, 3319684, 3352561, 3396649, 3415104, 3426201, 3500641, 3636649, 3636649, 3636649, 3678724, 3759721, 3837681, 3865156, 3865156, 3960100, 4056196, 4120900, 4202500, 4210704, 4223025, 4326400, 4422609, 4452100, 4588164, 4592449, 4748041, 5026564, 5026564, 5035536, 5035536, 5035536, 5049009, 5166529, 5234944, 5322249, 5373124, 5494336, 5536609, 5555449, 5650129, 5788836, 5846724, 6017209, 6031936, 6105841, 6285049, 6340324, 6365529, 6610041, 6620329, 6651241, 6806881, 6890625, 6990736, 7128900, 7236100, 7236100, 388129, 388129, 388129, 385641, 375769, 375769, 375769, 375769, 378225, 378225, 383161, 386884, 386884, 386884, 386884, 386884, 383161, 383161, 383161, 381924, 381924, 381924, 383161, 383161, 383161, 383161, 385641, 385641, 385641, 385641, 386884, 386884, 386884, 386884, 385641, 385641, 383161, 383161, 380689, 380689, 380689, 380689, 378225, 378225, 378225, 378225, 384400, 385641, 388129, 388129, 388129, 386884, 385641, 385641, 383161, 383161, 383161, 383161, 383161, 383161, 384400, 384400, 384400, 384400, 384400, 384400, 384400, 386884, 386884, 386884, 381924, 381924, 381924, 380689, 380689, 383161, 383161, 383161, 383161, 381924, 381924, 381924, 381924, 381924, 385641, 385641, 378225, 378225, 376996, 376996, 376996, 381924, 381924, 383161, 383161, 383161, 383161, 383161, 383161, 383161, 383161, 383161, 381924, 381924, 381924, 381924, 381924, 381924, 383161, 385641, 386884, 386884, 386884, 386884, 385641, 384400, 384400, 384400, 384400, 384400, 384400, 384400, 381924, 381924, 381924, 381924, 384400, 384400, 384400, 383161, 383161, 383161, 383161, 385641, 390625, 390625, 385641, 383161, 383161, 380689, 380689, 380689, 380689, 386884, 393129, 393129, 390625, 390625, 390625, 381924, 381924, 380689, 383161, 384400, 386884, 389376, 389376, 390625, 391876, 391876, 391876, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 388129, 388129, 388129, 393129, 393129, 393129, 393129, 391876, 391876, 391876, 391876, 391876, 388129, 388129, 388129, 388129, 388129, 388129, 388129, 388129, 388129, 388129, 389376, 389376, 390625, 390625, 390625, 390625, 390625, 390625, 390625, 390625, 390625, 390625, 390625, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 386884, 390625, 394384, 394384, 394384, 394384, 394384, 394384, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 393129, 394384, 394384, 394384, 395641, 395641, 395641, 395641, 395641, 398161, 398161, 391876, 391876, 391876, 391876, 396900, 396900, 391876, 389376, 389376, 389376, 390625, 390625, 390625, 390625, 390625, 390625, 390625, 390625, 394384, 394384, 394384, 394384, 390625, 390625, 400689, 400689, 400689, 394384, 394384, 394384, 394384, 394384, 394384, 398161, 398161, 395641, 391876, 391876, 391876, 391876, 391876, 391876, 391876, 391876, 391876, 391876, 390625, 390625, 390625, 393129, 395641, 398161, 400689, 400689, 404496, 404496, 405769, 403225, 400689, 400689, 396900, 390625, 390625, 390625, 390625, 390625, 390625, 390625, 396900, 398161, 398161, 398161, 398161, 398161, 398161, 396900, 396900, 398161, 398161, 398161, 398161, 398161, 398161, 394384, 394384, 394384, 398161, 403225, 403225, 400689, 398161, 395641, 394384, 394384, 394384, 394384, 394384, 394384, 394384, 399424, 399424, 403225, 403225, 403225, 398161, 398161, 396900, 396900, 396900, 396900, 396900, 396900, 404496, 407044, 407044, 407044, 407044, 403225, 403225, 401956, 401956, 401956, 401956, 401956, 404496, 404496, 400689, 400689, 403225, 403225, 403225, 403225, 404496, 405769, 405769, 405769, 405769, 401956, 401956, 401956, 405769, 405769, 405769, 404496, 404496, 404496, 404496, 404496, 404496, 404496, 403225, 403225, 403225, 403225, 403225, 404496, 407044, 407044, 407044, 407044, 407044, 401956, 398161, 398161, 408321, 408321, 408321, 408321, 408321, 408321, 410881, 410881, 410881, 410881, 410881, 414736, 414736, 414736, 414736, 412164, 410881, 410881, 410881, 410881, 412164, 412164, 412164, 412164, 407044, 405769, 405769, 409600, 418609, 418609, 418609, 418609, 409600, 409600, 409600, 409600, 412164, 416025, 416025, 416025, 416025, 416025, 416025, 413449, 413449, 413449, 414736, 414736, 416025, 416025, 416025, 416025, 423801, 426409, 426409, 417316, 417316, 417316, 417316, 417316, 419904, 422500, 422500, 422500, 422500, 422500, 422500, 425104, 427716, 427716, 427716, 425104, 425104, 423801, 423801, 423801, 429025, 429025, 429025, 429025, 422500, 422500, 422500, 422500, 422500, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 426409, 427716, 427716, 429025, 429025, 429025, 429025, 432964, 432964, 432964, 432964, 436921, 444889, 444889, 438244, 429025, 429025, 429025, 429025, 435600, 436921, 436921, 436921, 436921, 435600, 435600, 435600, 434281, 434281, 434281, 434281, 434281, 440896, 440896, 440896, 440896, 439569, 439569, 439569, 439569, 436921, 436921, 436921, 452929, 455625, 451584, 443556, 443556, 443556, 443556, 443556, 443556, 443556, 443556, 443556, 443556, 447561, 447561, 447561, 450241, 450241, 450241, 450241, 455625, 455625, 455625, 455625, 447561, 447561, 447561, 447561, 452929, 456976, 458329, 458329, 458329, 458329, 458329, 458329, 461041, 463761, 463761, 463761, 463761, 462400, 461041, 461041, 461041, 461041, 461041, 461041, 461041, 462400, 466489, 467856, 469225, 470596, 473344, 506944, 506944, 506944, 506944, 470596, 470596, 470596, 470596, 470596, 478864, 478864, 481636, 481636, 477481, 477481, 477481, 477481, 477481, 477481, 471969, 471969, 471969, 471969, 481636, 481636, 481636, 481636, 481636, 484416, 488601, 488601, 488601, 488601, 481636, 481636, 490000, 497025, 497025, 494209, 485809, 485809, 485809, 485809, 504100, 504100, 502681, 501264, 501264, 501264, 501264, 506944, 518400, 525625, 524176, 509796, 509796, 509796, 512656, 522729, 522729, 511225, 511225, 511225, 511225, 512656, 516961, 516961, 518400, 522729, 528529, 544644, 544644, 544644, 525625, 525625, 525625, 527076, 532900, 532900, 534361, 534361, 538756, 540225, 540225, 540225, 541696, 550564, 550564, 553536, 553536, 553536, 553536, 559504, 559504, 559504, 559504, 559504, 564001, 564001, 568516, 573049, 573049, 582169, 582169, 582169, 582169, 582169, 592900, 592900, 592900, 595984, 597529, 608400, 608400, 608400, 608400, 609961, 614656, 628849, 628849, 635209, 635209, 635209, 638401, 638401, 638401, 640000, 656100, 657721, 657721, 657721, 660969, 670761, 675684, 680625, 690561, 698896, 724201, 724201, 692224, 692224, 725904, 725904, 725904, 725904, 725904, 731025, 731025, 732736, 743044, 744769, 748225, 751689, 762129, 770884, 772641, 774400, 781456, 802816, 802816, 806404, 828100, 829921, 842724, 850084, 868624, 885481, 885481, 885481, 885481, 885481, 885481, 887364, 891136, 908209, 908209, 913936, 925444, 937024, 944784, 946729, 950625, 966289, 970225, 974169, 990025, 990025, 1004004, 1018081, 1028196, 1028196, 1036324, 1038361, 1048576, 1073296, 1089936, 1094116, 1106704, 1132096, 1140624, 1147041, 1149184, 1159929, 1179396, 1181569, 1205604, 1205604, 1216609, 1225449, 1249924, 1274641, 1274641, 1274641, 1276900, 1276900, 1322500, 1352569, 1354896, 1359556, 1359556, 1404225, 1430416, 1464100, 1468944, 1473796, 1473796, 1473796, 1517824, 1545049, 1552516, 1587600, 1602756, 1607824, 1607824, 1607824, 1640961, 1682209, 1713481, 1745041, 1763584, 1800964, 1800964, 1855044, 1865956, 1948816, 1976836, 1976836, 1985281, 2002225, 2093809, 2093809, 2114116, 2122849, 2157961, 2223081, 2232036, 2283121, 2368521, 2383936, 2418025, 2430481, 2531281, 2595321, 2595321, 2634129, 2679769, 2752281, 2788900, 2819041, 2862864, 2876416, 2903616, 3003289, 3097600, 3104644, 3168400, 3207681, 3218436, 3286969, 3352561, 3411409, 3474496, 3504384, 3568321, 3701776, 3709476, 3767481, 3841600, 3853369, 3948169, 4040100, 4064256, 4116841, 4169764, 4289041, 4343056, 4422609, 4485924, 4524129, 4721929, 4721929, 4730625, 4932841, 4986289, 5035536, 5180176, 5180176, 5239521, 5405625, 5555449, 5593225, 5697769, 5740816, 5851561, 5885476, 6031936, 6120676, 6240004, 6330256, 6446521, 6594624, 6656400, 6869641, 6932689, 6990736, 7064964, 7064964, 7241481, 7485696, 7645225, 7795264, 7890481, 8020224, 8133904, 8213956, 8398404, 8549776, 8880400, 8946081, 9012004, 9012004, 9114361, 9381969, 9492561, 9684544, 9941409, 10086976, 10208025, 10291264, 10601536, 10660225, 10824100, 11128896, 11390625, 11532816, 11634921, 12082576, 12082576, 12089529, 12545764, 12823561, 13024881, 13024881, 13118884, 13712209, 13734436, 14137600, 14160169, 14432401, 14707225, 14969161, 15186609, 15555136, 15737089, 15776784, 15784729, 16605625, 16703569, 16933225, 17197609, 17347225, 17799961, 18130564, 18139081, 18774889, 19298449, 19474569, 19562929, 20196036, 20403289, 20412324, 20757136, 21279769, 21949225, 22240656, 22829284, 22905796, 23232400, 23882769, 23931664, 24383844, 24900100, 25200400, 25806400, 26081449, 26946481, 27071209, 27699169, 27741289, 28090000, 28933641, 29441476, 29778849, 30008484, 30813601, 31181056, 31787044, 33016516, 34012224, 34012224, 34468641, 34468641, 35283600, 35628961, 35856144, 37246609, 37552384, 37675044, 476100, 470596, 467856, 467856, 467856, 467856, 467856, 471969, 471969, 471969, 471969, 470596, 470596, 470596, 470596, 470596, 470596, 470596, 470596, 470596, 470596, 471969, 471969, 471969, 471969, 471969, 471969, 467856, 467856, 467856, 467856, 471969, 471969, 471969, 471969, 471969, 471969, 471969, 476100, 476100, 476100, 476100, 470596, 465124, 463761, 463761, 463761, 467856, 467856, 467856, 467856, 467856, 467856, 467856, 467856, 471969, 471969, 471969, 471969, 469225, 469225, 463761, 463761, 462400, 462400, 462400, 466489, 466489, 466489, 465124, 465124, 465124, 465124, 466489, 469225, 469225, 469225, 463761, 463761, 463761, 463761, 461041, 461041, 461041, 461041, 461041, 461041, 461041, 461041, 461041, 462400, 462400, 462400, 461041, 461041, 461041, 461041, 463761, 465124, 465124, 470596, 473344, 473344, 473344, 463761, 463761, 463761, 463761, 463761, 466489, 466489, 466489, 466489, 466489, 469225, 469225, 469225, 458329, 458329, 458329, 458329, 461041, 461041, 461041, 467856, 469225, 469225, 469225, 469225, 469225, 470596, 470596, 470596, 470596, 470596, 470596, 470596, 469225, 469225, 469225, 469225, 469225, 469225, 469225, 469225, 470596, 470596, 470596, 471969, 471969, 471969, 471969, 471969, 474721, 474721, 474721, 474721, 474721, 474721, 473344, 466489, 466489, 466489, 466489, 466489, 470596, 470596, 474721, 476100, 476100, 476100, 476100, 476100, 471969, 471969, 474721, 474721, 478864, 478864, 478864, 478864, 478864, 477481, 474721, 474721, 477481, 477481, 477481, 477481, 477481, 480249, 480249, 480249, 480249, 480249, 483025, 487204, 487204, 487204, 485809, 483025, 483025, 483025, 483025, 481636, 481636, 481636, 484416, 484416, 484416, 481636, 481636, 481636, 481636, 483025, 483025, 483025, 483025, 483025, 476100, 476100, 485809, 485809, 485809, 485809, 487204, 487204, 488601, 488601, 488601, 488601, 488601, 484416, 484416, 484416, 484416, 484416, 492804, 492804, 492804, 492804, 491401, 491401, 491401, 491401, 491401, 491401, 491401, 488601, 485809, 485809, 485809, 485809, 485809, 485809, 487204, 487204, 487204, 487204, 487204, 495616, 495616, 495616, 495616, 495616, 495616, 495616, 490000, 490000, 490000, 490000, 490000, 487204, 487204, 487204, 490000, 494209, 494209, 498436, 498436, 498436, 498436, 504100, 504100, 498436, 498436, 498436, 498436, 497025, 495616, 495616, 495616, 495616, 495616, 495616, 504100, 504100, 495616, 494209, 494209, 494209, 494209, 494209, 497025, 497025, 497025, 506944, 506944, 506944, 505521, 505521, 498436, 498436, 502681, 502681, 498436, 498436, 502681, 502681, 499849, 499849, 502681, 502681, 502681, 502681, 502681, 502681, 502681, 502681, 502681, 502681, 502681, 502681, 502681, 502681, 497025, 497025, 498436, 502681, 504100, 505521, 505521, 505521, 505521, 505521, 505521, 505521, 499849, 499849, 509796, 511225, 511225, 511225, 511225, 511225, 509796, 509796, 509796, 509796, 511225, 511225, 511225, 514089, 514089, 514089, 512656, 512656, 512656, 512656, 512656, 512656, 512656, 512656, 512656, 512656, 512656, 512656, 511225, 511225, 511225, 512656, 516961, 516961, 514089, 514089, 514089, 514089, 522729, 524176, 540225, 540225, 521284, 521284, 521284, 521284, 525625, 527076, 527076, 527076, 524176, 521284, 521284, 521284, 529984, 531441, 531441, 531441, 531441, 531441, 531441, 531441, 531441, 532900, 537289, 537289, 537289, 537289, 537289, 537289, 535824, 535824, 535824, 535824, 534361, 534361, 534361, 534361, 534361, 534361, 537289, 537289, 537289, 537289, 538756, 543169, 543169, 543169, 543169, 535824, 535824, 535824, 535824, 540225, 555025, 555025, 558009, 558009, 558009, 547600, 547600, 547600, 547600, 562500, 562500, 562500, 558009, 558009, 556516, 556516, 556516, 556516, 541696, 541696, 546121, 553536, 553536, 555025, 555025, 556516, 559504, 567009, 567009, 561001, 558009, 553536, 552049, 552049, 556516, 564001, 564001, 567009, 567009, 570025, 570025, 570025, 570025, 570025, 570025, 570025, 570025, 577600, 577600, 577600, 573049, 573049, 580644, 580644, 580644, 580644, 580644, 580644, 577600, 577600, 577600, 577600, 577600, 577600, 577600, 576081, 576081, 576081, 582169, 585225, 586756, 586756, 586756, 586756, 586756, 586756, 586756, 586756, 599076, 599076, 599076, 599076, 599076, 599076, 595984, 595984, 595984, 595984, 595984, 595984, 595984, 602176, 602176, 602176, 602176, 608400, 608400, 608400, 605284, 602176, 602176, 602176, 602176, 608400, 608400, 608400, 617796, 619369, 619369, 630436, 632025, 632025, 632025, 620944, 620944, 620944, 620944, 620944, 620944, 630436, 636804, 636804, 649636, 649636, 649636, 648025, 633616, 633616, 633616, 636804, 640000, 641601, 641601, 641601, 638401, 638401, 638401, 649636, 654481, 654481, 654481, 660969, 660969, 660969, 664225, 664225, 664225, 659344, 659344, 659344, 669124, 670761, 674041, 674041, 675684, 675684, 677329, 677329, 677329, 687241, 700569, 700569, 695556, 688900, 688900, 687241, 687241, 687241, 692224, 707281, 707281, 707281, 707281, 714025, 714025, 715716, 715716, 715716, 714025, 714025, 715716, 727609, 727609, 731025, 732736, 741321, 744769, 744769, 744769, 744769, 744769, 749956, 749956, 749956, 767376, 769129, 776161, 779689, 779689, 779689, 776161, 776161, 776161, 801025, 801025, 801025, 801025, 804609, 811801, 820836, 820836, 822649, 826281, 840889, 846400, 848241, 857476, 866761, 870489, 870489, 877969, 879844, 879844, 883600, 891136, 898704, 898704, 898704, 898704, 919681, 927369, 929296, 929296, 944784, 948676, 950625, 956484, 956484, 960400, 962361, 986049, 988036, 1004004, 1004004, 1010025, 1010025, 1016064, 1018081, 1022121, 1024144, 1046529, 1071225, 1079521, 1079521, 1089936, 1089936, 1110916, 1110916, 1129969, 1129969, 1129969, 1140624, 1142761, 1170724, 1177225, 1177225, 1177225, 1196836, 1221025, 1249924, 1272384, 1272384, 1285956, 1285956, 1288225, 1322500, 1334025, 1334025, 1357225, 1366561, 1366561, 1368900, 1435204, 1454436, 1454436, 1452025, 1452025, 1452025, 1517824, 1517824, 1517824, 1540081, 1540081, 1560001, 1605289, 1610361, 1623076, 1653796, 1658944, 1729225, 1729225, 1758276, 1758276, 1798281, 1800964, 1814409, 1833316, 1838736, 1865956, 1887876, 1982464, 1982464, 2013561, 2016400, 2033476, 2102500, 2102500, 2119936, 2119936, 2187441, 2214144, 2232036, 2256004, 2289169, 2319529, 2380849, 2387025, 2387025, 2421136, 2461761, 2534464, 2537649, 2572816, 2660161, 2686321, 2755600, 2772225, 2815684, 2859481, 2893401, 3024121, 3024121, 3024121, 3062500, 3122289, 3161284, 3218436, 3254416, 3261636, 3301489, 3326976, 3422500, 3481956, 3515625, 3629025, 3663396, 3682561, 3724900, 3724900, 3790809, 3964081, 3984016, 4000000, 4133089, 4186116, 4289041, 4289041, 4297329, 4338889, 4562496, 4622500, 4678569, 4756761, 4765489, 4848804, 4959529, 5004169, 5035536, 5080516, 5345344, 5345344, 5522500, 5569600, 5707321, 5716881, 5716881, 6002500, 6135529, 6155361, 6345361, 6385729, 6543364, 6723649, 6744409, 6943225, 7091569, 7144929, 7311616, 7338681, 7695076, 7711729, 7907344, 7997584, 8328996, 8427409, 8567329, 8637721, 8940100, 9388096, 9418761, 9431041, 9715689, 9941409, 10220809, 10523536, 10634121, 10784656, 11055625, 11309769, 11716929, 12027024, 12152196, 12250000, 12609601, 12931216, 13155129, 13557124, 13630864, 13830961, 14288400, 14326225, 14822500, 15264649, 15311569, 15760900, 16072081, 16491721, 16982641, 17472400, 17472400, 17631601, 17631601, 18139081, 18826921, 19166884, 19395216, 19562929, 20394256, 20629764, 20976400, 20994724, 21958596, 22127616, 22781529, 22800625, 23512801, 23931664, 24443136, 24641296, 25080064, 26193924, 26296384, 26708224, 26780625, 27741289, 28686736, 28708164, 29376400, 30129121, 30569841, 30935844, 31561924, 32171584, 32798529, 33512521, 33790969, 34480384, 35295481, 35652841, 36108081, 37173409, 37185604, 39225169, 39300361, 40271716, 41062464, 41357761, 41602500, 43771456, 49970761, 49970761, 49970761, 48330304, 48330304, 48330304, 48818169, 49773025, 50608996, 52287361, 52446564, 53231616, 53421481, 54257956, 56821444, 57410929, 58201641, 59382436, 60590656, 60996100, 61842496, 63075364, 63409369, 65237929, 67158025, 68558400, 69772609, 70862724, 70963776, 72522256, 73324969, 75550864, 76895361, 78428736, 79727041, 81252196, 82137969, 83210884, 83503044, 86155524, 88115769, 89397025, 91470096, 92756161, 94264681, 97042201, 97061904, 98109025, 100620961, 103144336, 104611984, 106708900, 107765161, 109223401, 112487236, 113358609, 113656921, 118330884, 118504996, 121925764, 124925329, 127215841, 127486681, 130028409, 131974144, 134954689, 137217796, 140873161, 142922025, 144696841, 146143921, 150994944, 152226244, 154107396, 156900676, 160731684, 161493264, 163584100, 167702500, 172712164, 175297600, 175721536, 179640409, 183765136, 183954969, 188210961, 193515921, 194993296, 196756729, 199148544, 203205025, 207907561, 685584, 685584, 724201, 724201, 682276, 682276, 682276, 680625, 680625, 680625, 687241, 687241, 687241, 687241, 669124, 669124, 669124, 669124, 672400, 672400, 672400, 672400, 669124, 667489, 667489, 667489, 665856, 665856, 665856, 678976, 678976, 677329, 677329, 677329, 677329, 674041, 669124, 669124, 669124, 669124, 669124, 667489, 660969, 660969, 660969, 660969, 660969, 664225, 664225, 664225, 664225, 662596, 659344, 652864, 652864, 652864, 659344, 659344, 659344, 659344, 651249, 651249, 651249, 651249, 652864, 652864, 652864, 652864, 652864, 652864, 664225, 688900, 688900, 662596, 649636, 646416, 640000, 640000, 638401, 638401, 638401, 638401, 654481, 654481, 654481, 649636, 649636, 649636, 649636, 652864, 652864, 652864, 651249, 640000, 640000, 640000, 643204, 648025, 648025, 648025, 648025, 646416, 646416, 646416, 646416, 652864, 657721, 657721, 656100, 656100, 656100, 656100, 656100, 656100, 659344, 660969, 659344, 659344, 659344, 659344, 657721, 657721, 657721, 657721, 657721, 667489, 670761, 670761, 667489, 660969, 659344, 659344, 660969, 662596, 662596, 662596, 662596, 664225, 665856, 667489, 667489, 667489, 667489, 667489, 667489, 667489, 667489, 670761, 670761, 670761, 670761, 660969, 660969, 660969, 665856, 674041, 674041, 674041, 670761, 670761, 670761, 670761, 670761, 665856, 665856, 665856, 670761, 672400, 672400, 675684, 682276, 682276, 683929, 683929, 683929, 685584, 685584, 685584, 682276, 682276, 682276, 682276, 692224, 692224, 692224, 690561, 674041, 674041, 688900, 688900, 688900, 685584, 683929, 682276, 682276, 682276, 693889, 693889, 693889, 693889, 702244, 702244, 705600, 715716, 715716, 712336, 693889, 693889, 685584, 685584, 685584, 693889, 697225, 698896, 698896, 698896, 698896, 695556, 695556, 695556, 695556, 703921, 703921, 705600, 705600, 705600, 710649, 710649, 710649, 708964, 708964, 708964, 708964, 715716, 715716, 715716, 715716, 698896, 698896, 698896, 698896, 700569, 700569, 700569, 700569, 700569, 700569, 700569, 710649, 717409, 719104, 719104, 719104, 719104, 719104, 719104, 719104, 720801, 729316, 729316, 729316, 725904, 719104, 719104, 719104, 720801, 731025, 731025, 731025, 729316, 725904, 719104, 719104, 719104, 722500, 722500, 722500, 722500, 725904, 725904, 729316, 729316, 729316, 729316, 729316, 729316, 732736, 732736, 732736, 737881, 737881, 737881, 737881, 737881, 724201, 724201, 724201, 724201, 739600, 748225, 748225, 748225, 748225, 736164, 736164, 737881, 743044, 743044, 743044, 744769, 744769, 744769, 727609, 727609, 727609, 727609, 743044, 743044, 743044, 743044, 743044, 746496, 751689, 751689, 749956, 749956, 749956, 748225, 748225, 748225, 751689, 751689, 751689, 765625, 1212201, 1212201, 755161, 755161, 751689, 751689, 741321, 741321, 744769, 753424, 756900, 760384, 760384, 760384, 767376, 767376, 767376, 767376, 770884, 770884, 770884, 765625, 765625, 765625, 765625, 772641, 774400, 774400, 774400, 774400, 774400, 765625, 765625, 765625, 762129, 762129, 783225, 783225, 783225, 783225, 783225, 783225, 783225, 783225, 788544, 788544, 788544, 788544, 776161, 776161, 776161, 781456, 793881, 799236, 824464, 824464, 804609, 804609, 804609, 804609, 804609, 804609, 802816, 802816, 806404, 806404, 806404, 808201, 808201, 808201, 802816, 802816, 802816, 806404, 820836, 820836, 820836, 828100, 837225, 837225, 837225, 833569, 829921, 829921, 833569, 840889, 840889, 840889, 842724, 842724, 842724, 842724, 844561, 844561, 844561, 855625, 857476, 857476, 857476, 861184, 861184, 861184, 861184, 853776, 853776, 853776, 857476, 881721, 881721, 870489, 866761, 866761, 866761, 868624, 872356, 879844, 883600, 883600, 883600, 883600, 883600, 893025, 893025, 893025, 893025, 893025, 893025, 900601, 900601, 900601, 900601, 900601, 900601, 902500, 912025, 931225, 931225, 931225, 931225, 931225, 921600, 921600, 921600, 942841, 942841, 942841, 927369, 927369, 927369, 931225, 931225, 933156, 933156, 933156, 933156, 937024, 942841, 946729, 946729, 944784, 937024, 937024, 937024, 958441, 958441, 956484, 956484, 956484, 956484, 974169, 974169, 978121, 978121, 978121, 966289, 966289, 966289, 966289, 968256, 968256, 970225, 970225, 978121, 988036, 994009, 996004, 996004, 996004, 1010025, 1010025, 1010025, 1006009, 1006009, 1006009, 1012036, 1012036, 1012036, 1020100, 1024144, 1024144, 1026169, 1026169, 1030225, 1030225, 1030225, 1030225, 1038361, 1048576, 1048576, 1050625, 1056784, 1065024, 1065024, 1065024, 1065024, 1065024, 1067089, 1067089, 1067089, 1077444, 1096209, 1096209, 1094116, 1096209, 1096209, 1096209, 1106704, 1106704, 1115136, 1115136, 1115136, 1115136, 1115136, 1115136, 1155625, 1155625, 1155625, 1153476, 1153476, 1153476, 1175056, 1175056, 1188100, 1188100, 1188100, 1185921, 1185921, 1185921, 1194649, 1212201, 1281424, 1281424, 1229881, 1229881, 1229881, 1315609, 1315609, 1313316, 1236544, 1236544, 1236544, 1252161, 1276900, 1281424, 1281424, 1290496, 1285956, 1304164, 1304164, 1304164, 1304164, 1308736, 1345600, 1345600, 1354896, 1373584, 1373584, 1373584, 1357225, 1354896, 1375929, 1385329, 1392400, 1392400, 1406596, 1432809, 1432809, 1444804, 1444804, 1473796, 1473796, 1483524, 1507984, 1507984, 1510441, 1510441, 1512900, 1537600, 1550025, 1582564, 1661521, 1671849, 1671849, 1671849, 1671849, 1661521, 1661521, 1661521, 1661521, 1669264, 1684804, 1716100, 1716100, 1734489, 1752976, 1790244, 1800964, 1800964, 1811716, 1811716, 1836025, 1836025, 1887876, 1887876, 1887876, 1923769, 1929321, 1974025, 1974025, 1974025, 2042041, 2047761, 2073600, 2073600, 2073600, 2128681, 2163841, 2175625, 2196324, 2208196, 2217121, 2256004, 2337841, 2337841, 2337841, 2377764, 2669956, 2669956, 2524921, 2524921, 2524921, 2524921, 2569609, 2588881, 2624400, 2666689, 2702736, 2702736, 2788900, 2798929, 2873025, 2876416, 2903616, 2903616, 2996361, 3003289, 3108169, 3108169, 3157729, 3193369, 3207681, 3272481, 3290596, 3341584, 3452164, 3455881, 3523129, 3583449, 3602404, 3610000, 3674889, 3736489, 3876961, 3880900, 3960100, 3968064, 4108729, 4223025, 4456321, 4468996, 4468996, 4468996, 4468996, 4468996, 4609609, 4661281, 4678569, 4791721, 4791721, 4923961, 5026564, 5089536, 5216656, 5234944, 5294601, 5550736, 5602689, 5707321, 5958481, 5958481, 6017209, 6017209, 6140484, 6200100, 6345361, 6416089, 6589489, 6671889, 6702921, 6916900, 6990736, 6996025, 7150276, 7469289, 7551504, 7683984, 7728400, 7907344, 8248384, 8277129, 8375236, 8596624, 8667136, 8785296, 8958049, 9241600, 9585216, 9690769, 9765625, 9796900, 9991921, 10265616, 10349089, 10725625, 10936249, 11002489, 11235904, 11437924, 11560000, 11999296, 12236004, 12306064, 12659364, 12859396, 12888100, 13227769, 13483584, 14002564, 14600041, 14600041, 14691889, 14691889, 15171025, 15397776, 15429184, 15912121, 16200625, 16467364, 16908544, 17164449, 17247409, 17656804, 18071001, 18386944, 18966025, 19307236, 19307236, 19909444, 19971961, 19989841, 20575296, 21086464, 21576025, 22099401, 22382361, 23011209, 23097636, 23892544, 24157225, 24433249, 24770529, 25573249, 26030404, 26635921, 27279729, 27615025, 28005264, 29008996, 29149201, 30305025, 30625156, 31528225, 32194276, 32959081, 33200644, 34292736, 35046400, 36192256, 36590401, 37503376, 38440000, 39639616, 39778249, 41177889, 41938576, 43309561, 45037521, 45333289, 46662561, 47472100, 47900241, 49463089, 51552400, 52330756, 53217025, 54346384, 55920484, 57653649, 59567524, 60093504, 62188996, 63489024, 64754209, 65351056, 68112009, 69006249, 70324996, 71318025, 72250000, 74857104, 77018176, 77721856, 80084601, 81180100, 83137924, 84603204, 87030241, 88247236, 90763729, 92428996, 93431556, 95981209, 97515625, 99660289, 100160064, 103978809, 105472900, 108743184, 110313009, 113891584, 114083761, 117094041, 119683600, 121462441, 124478649, 125126596, 130325056, 132273001, 133633600, 138203536, 138485824, 141776649, 146168100, 149646289, 149866564, 155226681, 156575169, 158911236, 165456769, 165456769, 167935681, 173527929, 175112289, 177315856, 182304004, 184769649, 187799616, 190164100, 194965369, 196868961, 203433169, 206784400, 210366016, 215619856, 218389284, 229977225, 229977225, 234120601, 239197156, 239444676, 247086961, 248850625, 253733041, 255712081, 260241424, 266962921, 272778256, 279959824, 285542404, 286083396, 292068100, 295083684, 298736656, 312016896, 315240025, 320159449, 327392836, 332223529, 336502336, 341288676, 347822500, 350925289, 361646289, 365650884, 374499904, 378652681, 388523521, 392753124, 397284624, 405337689, 410184009, 423166041, 428200249, 437437225, 444914649, 447618649, 451520001, 459544969, 468289600, 477509904, 488984769, 512343225, 517471504, 517471504, 520889329, 522945424, 536895241, 550840900, 559369801, 567725929, 576048001, 588402049, 595311201, 603488356, 617274025, 628906084, 645871396, 654438724, 664969369, 671483569, 683874801, 695693376, 704530849, 716472289, 727273024, 740057616, 753886849, 765628900, 776123881, 791915881, 805878544, 808776721, 826677504, 847508544, 857962681, 871548484, 889172761, 903242916, 919423684, 930860100, 948455209, 958645444, 964909969, 983010609, 999192100, 1018375744, 1035166276, 1056835081, 1072562500, 1090056256, 1272384, 1232100, 1210000, 1210000, 1199025, 1199025, 1203409, 1203409, 1203409, 1203409, 1203409, 1203409, 1203409, 1203409, 1192464, 1192464, 1192464, 1192464, 1190281, 1162084, 1159929, 1159929, 1170724, 1170724, 1170724, 1162084, 1162084, 1162084, 1166400, 1166400, 1166400, 1166400, 1166400, 1162084, 1164241, 1159929, 1159929, 1153476, 1140624, 1140624, 1140624, 1179396, 1214404, 1214404, 1168561, 1140624, 1140624, 1140624, 1140624, 1151329, 1315609, 1361889, 1361889, 1199025, 1121481, 1117249, 1117249, 1117249, 1123600, 1123600, 1123600, 1123600, 1117249, 1108809, 1108809, 1108809, 1104601, 1104601, 1104601, 1104601, 1100401, 1100401, 1100401, 1100401, 1096209, 1096209, 1096209, 1096209, 1092025, 1092025, 1092025, 1092025, 1089936, 1089936, 1089936, 1089936, 1098304, 1098304, 1098304, 1087849, 1087849, 1087849, 1083681, 1083681, 1083681, 1083681, 1092025, 1100401, 1104601, 1104601, 1102500, 1102500, 1094116, 1085764, 1083681, 1083681, 1083681, 1083681, 1096209, 1096209, 1096209, 1096209, 1096209, 1115136, 1117249, 1117249, 1117249, 1117249, 1117249, 1098304, 1098304, 1123600, 1123600, 1098304, 1098304, 1115136, 1121481, 1121481, 1121481, 1121481, 1134225, 1134225, 1134225, 1134225, 1127844, 1127844, 1127844, 1127844, 1127844, 1127844, 1129969, 1129969, 1129969, 1129969, 1127844, 1127844, 1127844, 1127844, 1136356, 1138489, 1144900, 1144900, 1153476, 1153476, 1153476, 1144900, 1144900, 1144900, 1159929, 1168561, 1168561, 1168561, 1168561, 1159929, 1159929, 1159929, 1172889, 1172889, 1175056, 1175056, 1175056, 1166400, 1166400, 1166400, 1179396, 1188100, 1188100, 1188100, 1188100, 1188100, 1190281, 1190281, 1194649, 1194649, 1194649, 1192464, 1188100, 1188100, 1188100, 1210000, 1212201, 1212201, 1212201, 1207801, 1207801, 1207801, 1207801, 1207801, 1207801, 1207801, 1207801, 1207801, 1210000, 1216609, 1227664, 1232100, 1232100, 1225449, 1225449, 1225449, 1225449, 1234321, 1234321, 1234321, 1236544, 1236544, 1229881, 1221025, 1221025, 1225449, 1234321, 1243225, 1243225, 1243225, 1243225, 1252161, 1252161, 1252161, 1252161, 1245456, 1238769, 1238769, 1245456, 1263376, 1267876, 1274641, 1274641, 1274641, 1274641, 1274641, 1274641, 1258884, 1258884, 1258884, 1254400, 1254400, 1254400, 1274641, 1276900, 1276900, 1276900, 1292769, 1292769, 1270129, 1270129, 1274641, 1276900, 1290496, 1301881, 1301881, 1301881, 1304164, 1304164, 1304164, 1301881, 1299600, 1299600, 1295044, 1295044, 1295044, 1295044, 1295044, 1308736, 1308736, 1308736, 1308736, 1322500, 1322500, 1315609, 1313316, 1313316, 1313316, 1313316, 1327104, 1340964, 1340964, 1340964, 1340964, 1340964, 1340964, 1336336, 1336336, 1336336, 1336336, 1331716, 1331716, 1331716, 1343281, 1350244, 1350244, 1350244, 1350244, 1350244, 1343281, 1343281, 1336336, 1336336, 1336336, 1350244, 1350244, 1350244, 1350244, 1359556, 1373584, 1373584, 1373584, 1371241, 1366561, 1366561, 1368900, 1371241, 1371241, 1371241, 1371241, 1371241, 1371241, 1371241, 1380625, 1380625, 1380625, 1380625, 1382976, 1382976, 1385329, 1385329, 1385329, 1385329, 1385329, 1387684, 1387684, 1387684, 1390041, 1392400, 1392400, 1392400, 1392400, 1392400, 1399489, 1408969, 1408969, 1408969, 1432809, 1432809, 1432809, 1432809, 1432809, 1432809, 1432809, 1435204, 1435204, 1435204, 1440000, 1449616, 1449616, 1440000, 1437601, 1437601, 1437601, 1437601, 1454436, 1454436, 1454436, 1454436, 1459264, 1459264, 1459264, 1468944, 1488400, 1512900, 1512900, 1464100, 1464100, 1464100, 1464100, 1478656, 1478656, 1478656, 1478656, 1478656, 1490841, 1498176, 1498176, 1498176, 1505529, 1515361, 1515361, 1515361, 1515361, 1515361, 1520289, 1520289, 1522756, 1535121, 1535121, 1545049, 1562500, 1565001, 1565001, 1575025, 1575025, 1575025, 1575025, 1580049, 1582564, 1585081, 1585081, 1585081, 1625625, 1625625, 1625625, 1620529, 1610361, 1610361, 1610361, 1610361, 1633284, 1638400, 1643524, 1643524, 1643524, 1687401, 1687401, 1687401, 1687401, 1679616, 1679616, 1679616, 1679616, 1710864, 1710864, 1723969, 1726596, 1737124, 1737124, 1737124, 1739761, 1739761, 1739761, 1734489, 1729225, 1729225, 1731856, 1731856, 1731856, 1742400, 1742400, 1742400, 1742400, 1800964, 1800964, 1795600, 1795600, 1798281, 1803649, 1809025, 1827904, 1827904, 1827904, 1827904, 1827904, 1827904, 1827904, 1827904, 1863225, 1863225, 1863225, 1863225, 1863225, 1863225, 1863225, 1868689, 1885129, 1885129, 1893376, 1893376, 1893376, 1893376, 1898884, 1904400, 1918225, 1918225, 1918225, 1918225, 1954404, 1954404, 1960000, 1960000, 1960000, 1960000, 1960000, 1960000, 1954404, 1943236, 1943236, 1957201, 1999396, 2039184, 2039184, 2062096, 2062096, 2062096, 2062096, 2062096, 2067844, 2076481, 2076481, 2096704, 2096704, 2117025, 2125764, 2125764, 2125764, 2125764, 2125764, 2134521, 2140369, 2172676, 2172676, 2172676, 2172676, 2172676, 2202256, 2226064, 2226064, 2226064, 2235025, 2253001, 2265025, 2265025, 2265025, 2265025, 2265025, 2265025, 2289169, 2292196, 2298256, 2331729, 2337841, 2380849, 2393209, 2405601, 2405601, 2405601, 2439844, 2439844, 2439844, 2468041, 2474329, 2477476, 2496400, 2515396, 2521744, 2521744, 2540836, 2544025, 2585664, 2592100, 2598544, 2643876, 2647129, 2653641, 2653641, 2653641, 2653641, 2709316, 2709316, 2739025, 2775556, 2775556, 2792241, 2802276, 2832489, 2832489, 2832489, 2832489, 2883204, 2903616, 2907025, 2920681, 2924100, 2924100, 3017169, 3031081, 3031081, 3069504, 3094081, 3097600, 3125824, 3193369, 3214849, 3229209, 3229209, 3301489, 3305124, 3308761, 3319684, 3374569, 3404025, 3422500, 3422500, 3422500, 3534400, 3560769, 3575881, 3610000, 3610000, 3621409, 3640464, 3697929, 3728761, 3794704, 3822025, 3892729, 3968064, 3972049, 3980025, 4004001, 4004001, 4137156, 4190209, 4309776, 4338889, 4338889, 4363921, 4384836, 4410000, 4536900, 4665600, 4665600, 4769856, 4769856, 4769856, 4857616, 4862025, 4862025, 4919524, 5049009, 5112121, 5148361, 5166529, 5317636, 5368489, 5377761, 5466244, 5621641, 5702544, 5731236, 5769604, 5861241, 5943844, 6086089, 6086089, 6180196, 6335289, 6487209, 6497401, 6528025, 6589489, 6822544, 6822544, 6901129, 6901129, 7118224, 7317025, 7409284, 7447441, 7518564, 7667361, 7745089, 7963684, 8014561, 8231161, 8242641, 8386816, 8503056, 8608356, 8958049, 9060100, 9078169, 9326916, 9498724, 9548100, 9765625, 9935104, 10156969, 10304100, 10394176, 10471696, 10569001, 10876804, 11022400, 11309769, 11526025, 11723776, 11971600, 12131289, 12489156, 12595401, 12716356, 13205956, 13505625, 13727025, 13942756, 14032516, 14258176, 14478025, 14668900, 15062161, 15155449, 15649936, 15784729, 16216729, 16224784, 16982641, 17347225, 17698849, 17816841, 18003049, 18576100, 19088161, 19175641, 19704721, 20142144, 20666116, 20912329, 20976400, 21261321, 21939856, 22800625, 22810176, 23435281, 23785129, 24492601, 24910081, 25542916, 25867396, 26306641, 26863489, 27363361, 28037025, 28515600, 29084449, 29909961, 30030400, 31080625, 31787044, 32296489, 32959081, 33235225, 34281025, 34751025, 35700625, 36300625, 37933281, 38130625, 39175081, 39538944, 40640625, 40896025, 42367081, 43414921, 43467649, 44943616, 46185616, 46785600, 47789569, 48678529, 49547521, 50523664, 51638596, 52881984, 54125449, 54582544, 56550400, 57108249, 58537801, 60093504, 61121124, 62425801, 63425296, 67683529, 67683529, 69105969, 69105969, 70845889, 71859529, 72726784, 75099556, 76422564, 77898276, 78535044, 80928016, 81667369, 82391929, 85285225, 86118400, 89151364, 89491600, 91126116, 92756161, 95023504, 97022500, 99201600, 100100025, 103978809, 106812225, 108743184, 108743184, 111915241, 114041041, 114618436, 119137225, 120362841, 122921569, 125081856, 126967824, 131423296, 133263936, 137475625, 139594225, 142802500, 144312169, 149157369, 151733124, 155201764, 159971904, 163456225, 165559689, 170485249, 174424849, 178543044, 180714249, 185204881, 190688481, 195132961, 201980944, 206640625, 212168356, 216266436, 224460324, 228463225, 233539524, 240932484, 246490000, 255136729, 259628769, 261921856, 273373156, 277255801, 286760356, 289204036, 302099161, 308494096, 313113025, 320410000, 327718609, 337163044, 344510721, 351750025, 355850496, 365650884, 376127236, 381420900, 391604521, 399360256, 410062500, 415099876, 420086016, 428531401, 441714289, 454286596, 457104400, 470369344, 476330625, 486334809, 496398400, 508637809, 518245225, 531210304, 538379209, 549949401, 557526544, 568393281, 583850569, 595457604, 608855625, 617472801, 637057600, 646990096, 653722624, 670654609, 684293281, 701402256, 709156900, 723287236, 733272241, 751088836, 759333136, 777182884, 791634496, 806503201, 824034436, 833130496, 850538896, 863008129, 880368241, 904265041, 917908209, 935992836, 955119025, 968703376, 985646025, 998812816, 1014932164, 1039159696, 1064325376, 1091179089, 1106227600, 1119504681, 1134207684, 1150498561, 1177656489, 1199444689, 1234327689, 1252239769, 1278634564, 1288522816, 1306171881, 1332177001, 1362200464, 1388754756, 1428386436, 1449934084, 1456643556, 1483251169, 1506759489, 1538208400, 1575931204, 1604322916, 1633776400, 1660562500, 1678049296, 1700737600, 1731059236, 1757873329, 1799032225, 1815782544, 1868400625, 1888423936, 1917914436, 1938640900, 1965503556, 2009639241, 2035363225, 2073618369, 2121615721, 2177808889, 2193610896, 2237479204, 2247328836, 2274336100, 2306880900, 2360793744, 2390036544, 2517831684, 2518433856, 2555100304, 2566840896, 2608757776, 2629946089, 2694751921, 2744607321, 2799573921, 2851026025, 2895300864, 2915352036, 2966980900, 3011485129, 3070711396, 3115090969, 3181862464, 3249342009, 3304410256, 3344887225, 3388287681, 3457675204, 3481236004, 3550729744, 3607443844, 3656620900, 3760387684, 3799489600, 3843752004, 3917007396, 3959681476, 3990954276, 4043560921, 4064827536, 4118558976, 4163991841, 4180527649, 4180527649, 4199817636, 4216294489, 4228640784, 4253517961, 4258084516, 4258084516, 4258476049, 4258476049, 4258998121, 4258998121, 4258998121, 4258998121, 2598544, 2560000, 2540836, 2534464, 2531281, 2531281, 2531281, 2524921, 2499561, 2499561, 2480625, 2480625, 2455489, 2452356, 2452356, 2424249, 2424249, 2424249, 2424249, 2427364, 2446096, 2446096, 2439844, 2433600, 2427364, 2424249, 2411809, 2411809, 2399401, 2399401, 2399401, 2399401, 2405601, 2405601, 2356225, 2356225, 2353156, 2353156, 2353156, 2325625, 2325625, 2325625, 2325625, 2325625, 2325625, 2319529, 2319529, 2319529, 2319529, 2319529, 2322576, 2328676, 2328676, 2328676, 2356225, 2356225, 2304324, 2301289, 2274064, 2259009, 2259009, 2259009, 2265025, 2265025, 2271049, 2271049, 2271049, 2271049, 2271049, 2271049, 2253001, 2253001, 2253001, 2253001, 2265025, 2265025, 2819041, 2819041, 2819041, 2196324, 2196324, 2196324, 2211169, 2211169, 2220100, 2220100, 2220100, 2241009, 2241009, 2238016, 2238016, 2244004, 2247001, 2247001, 2247001, 2253001, 2253001, 2244004, 2223081, 2214144, 2214144, 2214144, 2214144, 2214144, 2214144, 2217121, 2229049, 2229049, 2229049, 2229049, 2229049, 2229049, 2256004, 2259009, 2259009, 2259009, 2268036, 2268036, 2217121, 2217121, 2217121, 2238016, 2277081, 2295225, 2295225, 2283121, 2277081, 2265025, 2259009, 2259009, 2286144, 2307361, 2307361, 2307361, 2307361, 2313441, 2313441, 2313441, 2316484, 2319529, 2319529, 2343961, 2343961, 2343961, 2343961, 2343961, 2343961, 2343961, 2343961, 2347024, 2353156, 2353156, 2353156, 2353156, 2353156, 2387025, 2387025, 2387025, 2387025, 2393209, 2439844, 2439844, 2439844, 2439844, 2439844, 2418025, 2411809, 2411809, 2411809, 2427364, 2461761, 2461761, 2461761, 2461761, 2452356, 2452356, 2430481, 2430481, 2468041, 2468041, 2468041, 2468041, 2477476, 2521744, 2528100, 2582449, 2582449, 2582449, 2505889, 2505889, 2505889, 2505889, 2534464, 2592100, 2595321, 2862864, 2862864, 2696164, 2617924, 2611456, 2569609, 2563201, 2563201, 2563201, 2563201, 2592100, 2592100, 2601769, 2601769, 2592100, 2592100, 2614689, 2614689, 2604996, 2604996, 2640625, 2640625, 2640625, 2630884, 2630884, 2630884, 2621161, 2621161, 2621161, 2621161, 2624400, 2624400, 2647129, 2692881, 2692881, 2692881, 2683044, 2673225, 2640625, 2624400, 2624400, 2643876, 2679769, 2679769, 2719201, 2719201, 2719201, 2709316, 2709316, 2702736, 2702736, 2712609, 2735716, 2752281, 2755600, 2755600, 2755600, 2735716, 2735716, 2735716, 2755600, 2755600, 2762244, 2762244, 2768896, 2768896, 2788900, 2788900, 2788900, 2788900, 2785561, 2785561, 2785561, 2788900, 2788900, 2808976, 2808976, 2815684, 2839225, 2839225, 2842596, 2845969, 2849344, 2849344, 2849344, 2849344, 2832489, 2825761, 2825761, 2832489, 2845969, 2856100, 2856100, 2856100, 2856100, 2873025, 2873025, 2879809, 2886601, 2886601, 2917264, 2917264, 2917264, 2930944, 2996361, 3003289, 2996361, 2982529, 2968729, 2968729, 2954961, 2954961, 2954961, 2965284, 2965284, 2965284, 2961841, 2961841, 2941225, 2941225, 2941225, 2951524, 2999824, 3013696, 3013696, 3045025, 3045025, 3045025, 3041536, 3041536, 3027600, 2999824, 2999824, 2999824, 2999824, 3031081, 3041536, 3062500, 3062500, 3052009, 3052009, 3052009, 3052009, 3041536, 3041536, 3041536, 3055504, 3118756, 3132900, 3132900, 3132900, 3108169, 3090564, 3090564, 3090564, 3132900, 3168400, 3168400, 3168400, 3168400, 3154176, 3154176, 3154176, 3154176, 3154176, 3175524, 3175524, 3179089, 3179089, 3186225, 3186225, 3182656, 3168400, 3168400, 3193369, 3389281, 3389281, 3374569, 3316041, 3258025, 3258025, 3240000, 3204100, 3204100, 3250809, 3283344, 3305124, 3334276, 3341584, 3341584, 3345241, 3352561, 3359889, 3359889, 3367225, 3381921, 3433609, 3433609, 3367225, 3367225, 3426201, 3441025, 3441025, 3448449, 3455881, 3459600, 3485689, 3485689, 3485689, 3485689, 3496900, 3504384, 3511876, 3572100, 3575881, 3594816, 3598609, 3598609, 3598609, 3598609, 3625216, 3640464, 3694084, 3713329, 3713329, 3713329, 3713329, 3717184, 3748096, 3759721, 3814209, 3814209, 3818116, 3818116, 3818116, 3837681, 3853369, 3857296, 3873024, 3880900, 3900625, 3900625, 3936256, 3956121, 3992004, 3992004, 4008004, 4008004, 4036081, 4036081, 4068289, 4068289, 4068289, 4068289, 4141225, 4141225, 4141225, 4145296, 4145296, 4182025, 4194304, 4231249, 4264225, 4264225, 4264225, 4264225, 4297329, 4343056, 4347225, 4401604, 4468996, 4468996, 4435236, 4435236, 4473225, 4498641, 4511376, 4558225, 5731236, 5731236, 5731236, 5731236, 5447556, 4840000, 4549689, 4549689, 4549689, 4553956, 4674244, 4678569, 4700224, 4700224, 4700224, 4717584, 4717584, 4717584, 4844401, 4870849, 4870849, 4888521, 4888521, 4888521, 4862025, 4862025, 4879681, 4923961, 5040025, 5067001, 5067001, 5067001, 5067001, 5107600, 5107600, 5107600, 5143824, 5193841, 5193841, 5193841, 5193841, 5207524, 5294601, 5326864, 5326864, 5326864, 5424241, 5424241, 5424241, 5424241, 5433561, 5536609, 5536609, 5650129, 5669161, 5716881, 5716881, 5721664, 5721664, 5721664, 5721664, 5740816, 5866084, 6105841, 6599761, 6599761, 6170256, 6165289, 6031936, 6031936, 6031936, 6165289, 6300100, 6300100, 6300100, 6300100, 6315169, 6355441, 6400900, 6426225, 6456681, 6512704, 6522916, 6677056, 6754801, 6765201, 6890625, 6890625, 6890625, 6890625, 6901129, 6922161, 7134241, 7134241, 7150276, 7225344, 7279204, 7327849, 7371225, 7371225, 7557001, 7667361, 7667361, 7695076, 7884864, 7958041, 7958041, 8099716, 8202496, 8202496, 8219689, 8311689, 8456464, 8549776, 8567329, 8567329, 8567329, 8779369, 8964036, 8988004, 9042049, 9114361, 9126441, 9449476, 9449476, 9474084, 9541921, 9659664, 9847044, 9897316, 10029889, 10074276, 10278436, 10478169, 10536516, 10556001, 10699441, 10712529, 10975969, 11062276, 11215801, 11377129, 11410884, 11512449, 11710084, 11950849, 12027024, 12033961, 12285025, 12446784, 12766329, 12902464, 12996025, 13461561, 13483584, 13860729, 14077504, 14092516, 14288400, 14470416, 14516100, 14760964, 14938225, 15256836, 15547249, 15665764, 15864289, 16208676, 16402500, 16654561, 16982641, 17297281, 17564481, 17715681, 17960644, 18490000, 18740241, 18913801, 19000881, 19149376, 19936225, 20277009, 20286016, 21160000, 21187609, 21196816, 22043025, 22297284, 22297284, 23088025, 23290276, 24176889, 24235929, 24720784, 24790441, 25431849, 25826724, 26718561, 26790976, 27154521, 27751824, 27920656, 28955161, 29452329, 30063289, 30360100, 30980356, 31663129, 32398864, 32764176, 33790969, 34269316, 34692100, 35070084, 35748441, 36772096, 37625956, 37834801, 38975049, 39929761, 40157569, 41409225, 41964484, 42471289, 43930384, 44649124, 45387169, 46199209, 47114496, 47637604, 49364676, 50027329, 50922496, 52722121, 53436100, 54597321, 56310016, 56415121, 58430736, 58920976, 59382436, 61214976, 62583921, 64432729, 66161956, 67535524, 69622336, 71318025, 71318025, 72777961, 72829156, 75933796, 77580864, 79032100, 81036004, 82955664, 83411689, 85507009, 87984400, 89378116, 90859024, 92736900, 94187025, 102070609, 102070609, 102070609, 105925264, 106254864, 108826624, 110082064, 114126489, 117245584, 118504996, 120384784, 124255609, 126090441, 128890609, 132043081, 136445761, 138109504, 140469904, 144648729, 146071396, 150945796, 155251600, 158810404, 162027441, 164942649, 169104016, 169937296, 175456516, 180203776, 183115024, 186459025, 190743721, 195468361, 200392336, 204633025, 209525625, 212897281, 218684944, 221950404, 226893969, 232898121, 238054041, 241460521, 246458601, 256704484, 259306609, 266146596, 269846329, 275360836, 280696516, 290089024, 293197129, 299220804, 308423844, 313042249, 320052100, 327465216, 332187076, 337714129, 350700529, 353402401, 359178304, 365956900, 374732164, 380874256, 388287025, 396487744, 405539044, 414570321, 422055936, 428283025, 438316096, 442597444, 453221521, 468332881, 468462736, 482241600, 489825424, 499746025, 511166881, 519065089, 531302500, 541632529, 554084521, 563492644, 574273296, 586656841, 596141056, 612909049, 625250025, 641153041, 651678784, 659873344, 681888769, 692373969, 703310400, 723879025, 739731204, 754326225, 771395076, 790172100, 805424400, 825930121, 849839104, 872611600, 884705536, 912523264, 926228356, 950488900, 979251849, 1001722500, 1030089025, 1054106089, 1081357456, 1102173601, 1137577984, 1156340025, 1197852100, 1221222916, 1255993600, 1285867881, 1310584804, 1346302864, 1380345409, 1413684801, 1453515625, 1518271225, 1538286841, 1549681956, 1587384964, 1619499049, 1662111361, 1698346521, 1722582016, 1771904836, 1794877956, 1847796196, 1881564129, 1923436449, 1971715216, 2016908100, 2040148224, 2096724100, 2138785009, 2184534121, 2236060369, 2265569604, 2333759481, 2362640449, 2415722500, 2463533956, 2518132761, 2557021489, 2616424801, 2649881529, 2710764225, 2765602921, 2829601636, 2870709241, 2930489956, 2970250000, 3032815041, 3099816976, 3161025729, 3222492289, 3278364049, 3343383684, 3417571600, 3443929225, 3540012004, 3603000625, 3667998096, 3716609296, 3778069156, 3864611556, 3927779584, 3986533321, 4021081744, 4069546849, 4112913424, 4147488801, 4167218916, 4185701809, 4200854596, 4223960064, 4238921449, 4253909284, 4255213824, 4259259169, 4259259169, 4259259169, 4260433984, 4260956176, 4260956176, 4260956176, 4260956176, 4260956176, 4260956176, 4262522944, 4262522944, 4262522944, 4262522944, 4262653521, 4262784100, 4262784100, 4265787969, 4266049225, 4266049225, 4266963684, 4266963684, 4266963684, 4267224976, 4267878241, 4267878241, 4267878241, 4267878241, 4267878241, 4267878241, 4267878241, 4269707649, 4269838336, 4269838336, 4269838336, 4269838336, 4269707649, 4269707649, 4269707649, 4269576964, 4269576964, 4270099716, 4271406736, 4271406736, 4271406736, 4271406736, 4271406736, 4271406736, 4271406736, 4270883904, 4270753201, 4270361104, 4270361104, 4270361104, 4270361104, 4270361104, 4269315600, 4269315600, 4269315600, 4265265481, 4264090000, 4263175849, 4263175849, 4263175849, 4263175849, 4264873636, 4266571761, 4267094329, 4267616929, 4269315600, 4269315600, 4269054244, 4269054244, 4269054244, 4264612416, 4264612416, 4263959401, 4263959401, 4263959401, 4262914681, 4262914681, 4262914681, 4262914681, 4262914681, 4262914681, 4262131225, 4261739524, 4261478400, 4261478400, 4261478400, 4260433984, 4260433984, 4260825625, 4261870089, 4262392369, 4262392369, 4261739524, 4259781289, 4259781289, 4259781289, 6200100, 6200100, 6200100, 6200100, 6200100, 6145441, 6086089, 6061444, 6046681, 6041764, 5973136, 5973136, 5973136, 5938969, 5938969, 5934096, 5924356, 5861241, 5861241, 5861241, 5861241, 5827396, 5788836, 5788836, 5764801, 5764801, 5764801, 5692996, 5692996, 5692996, 5697769, 5697769, 5697769, 5650129, 5588496, 5588496, 5588496, 5574321, 5574321, 5560164, 5513104, 5513104, 5541316, 5541316, 5541316, 5541316, 5475600, 5475600, 5475600, 5442889, 5391684, 5391684, 5391684, 5419584, 5419584, 5419584, 5373124, 5349969, 5349969, 5349969, 5349969, 5322249, 5322249, 5322249, 5322249, 5322249, 5322249, 5276209, 5276209, 5276209, 5276209, 5276209, 5202961, 5202961, 5207524, 5234944, 5234944, 5234944, 5234944, 5234944, 5239521, 5244100, 5262436, 5280804, 5271616, 5221225, 5189284, 5189284, 5189284, 5189284, 5207524, 5207524, 5212089, 5212089, 5253264, 5253264, 5253264, 5253264, 5253264, 5317636, 5317636, 5317636, 5317636, 5280804, 5280804, 5280804, 5373124, 5373124, 5373124, 5373124, 5387041, 5387041, 5387041, 5387041, 5363856, 5363856, 5363856, 5400976, 5400976, 5400976, 5400976, 5382400, 5382400, 5396329, 5438224, 5456896, 5466244, 5466244, 5489649, 5494336, 5494336, 5494336, 5480281, 5480281, 5480281, 5508409, 5508409, 5508409, 5536609, 5536609, 5593225, 5593225, 5626384, 5669161, 5669161, 5692996, 5721664, 5721664, 5702544, 5669161, 5635876, 5635876, 5673924, 5692996, 5712100, 5712100, 5731236, 5745609, 5745609, 5745609, 5784025, 5812921, 5832225, 5851561, 5851561, 5841889, 5837056, 5837056, 5837056, 5837056, 5837056, 5851561, 5890329, 5890329, 5929225, 5929225, 5929225, 5943844, 5948721, 6022116, 6027025, 6027025, 6027025, 6027025, 6027025, 6041764, 6071296, 6076225, 6091024, 6100900, 6100900, 6100900, 6195121, 6205081, 6245001, 6245001, 6245001, 6245001, 6245001, 6230016, 6230016, 6230016, 6270016, 6270016, 6270016, 6285049, 6285049, 6285049, 6355441, 6355441, 6355441, 6350400, 6350400, 6350400, 6370576, 6446521, 6446521, 6446521, 6446521, 6431296, 6426225, 6421156, 6421156, 6421156, 6461764, 6461764, 6461764, 6553600, 6553600, 6553600, 6553600, 6553600, 6553600, 6538249, 6538249, 6543364, 6543364, 6579225, 6579225, 6677056, 6677056, 6677056, 6687396, 6702921, 6749604, 6749604, 6801664, 6801664, 6801664, 6801664, 6801664, 6822544, 6822544, 6822544, 6822544, 6822544, 6822544, 6822544, 6822544, 6822544, 6853924, 6885376, 6885376, 6895876, 6969600, 6990736, 6953769, 6953769, 6953769, 6953769, 6953769, 6996025, 6996025, 7054336, 7054336, 7054336, 7064964, 7155625, 7257636, 7257636, 7166329, 7166329, 7166329, 7166329, 7187761, 7187761, 7187761, 7273809, 7273809, 7273809, 7209225, 7209225, 7209225, 7279204, 7300804, 7300804, 7290000, 7273809, 7273809, 7306209, 7306209, 7311616, 7349521, 7349521, 7349521, 7349521, 7382089, 7382089, 7392961, 7392961, 7392961, 7436529, 7458361, 7595536, 7595536, 7595536, 7606564, 7612081, 7617600, 7617600, 7617600, 7617600, 7612081, 7601049, 7601049, 7601049, 7601049, 7601049, 7601049, 7667361, 7667361, 7667361, 7667361, 7689529, 7689529, 7689529, 7689529, 7683984, 7683984, 7733961, 8008900, 8526400, 8526400, 8037225, 7789681, 7789681, 7789681, 7789681, 7879249, 7918596, 7918596, 8003241, 8020224, 8020224, 8020224, 8020224, 8020224, 8059921, 8059921, 8031556, 8025889, 8025889, 8025889, 8037225, 8059921, 8065600, 8116801, 8185321, 8185321, 8185321, 8185321, 8202496, 8213956, 8225424, 8236900, 8254129, 8254129, 8352100, 8352100, 8398404, 8433216, 8433216, 8433216, 8497225, 8573184, 8573184, 8579041, 8579041, 8649481, 8649481, 8649481, 8649481, 8708401, 8797156, 8797156, 8868484, 8916196, 8916196, 8922169, 9006001, 9090225, 9108324, 9144576, 9156676, 9138529, 9168784, 9186961, 9211225, 9339136, 9363600, 9363600, 9443329, 9498724, 9498724, 9560464, 9647236, 9647236, 9678321, 9678321, 9696996, 9834496, 9847044, 9853321, 9865881, 9865881, 9865881, 9916201, 10118761, 10118761, 10118761, 10118761, 10163344, 10182481, 10323369, 10323369, 10323369, 10432900, 10439361, 10439361, 10549504, 10627600, 10699441, 10751841, 10843849, 10909809, 10909809, 10909809, 10909809, 10909809, 10909809, 11075584, 11222500, 11249316, 11410884, 11410884, 11471769, 11471769, 11471769, 11498881, 11471769, 11539609, 11696400, 11723776, 11723776, 11751184, 11751184, 11792356, 11992369, 12013156, 12068676, 12124324, 12278016, 12285025, 12285025, 12362256, 12362256, 12439729, 12645136, 12680721, 12694969, 12730624, 12794929, 12794929, 12888100, 12945604, 13118884, 13118884, 13140625, 13147876, 13147876, 13147876, 13286025, 13329801, 13373649, 13527684, 13623481, 13623481, 13712209, 13712209, 13793796, 14010049, 14160169, 14160169, 14311089, 14311089, 14371681, 14424804, 14424804, 14424804, 14622976, 14776336, 14830201, 14992384, 15186609, 15186609, 15186609, 15358561, 15444900, 15610401, 15610401, 15784729, 15872256, 15912121, 15984004, 16016004, 16216729, 16297369, 16467364, 16540489, 16695396, 16744464, 16744464, 16744464, 17313921, 17313921, 17405584, 17413929, 17606416, 17732521, 17825284, 17901361, 17943696, 18326961, 18352656, 18610596, 18610596, 18610596, 19166884, 19166884, 19236996, 19686969, 19731364, 19766916, 19766916, 20142144, 20430400, 20539024, 20539024, 20693401, 20958084, 21548164, 21566736, 22099401, 22118209, 22118209, 22344529, 22439169, 22829284, 23107249, 23309584, 23425600, 23980609, 23980609, 24049216, 24472809, 24860196, 25080064, 25290841, 25644096, 25897921, 26357956, 26666896, 26946481, 27342441, 27447121, 27667600, 27910089, 28334329, 28847641, 28912129, 29789764, 29888089, 30283009, 30558784, 30658369, 31371201, 31888609, 31967716, 32512804, 32959081, 33570436, 33907329, 34339600, 34951744, 35236096, 35569296, 36168196, 36385024, 36869184, 38402809, 38464804, 39087504, 39100009, 40602384, 40666129, 40934404, 41422096, 42315025, 43414921, 43639236, 44448889, 45171841, 45981961, 46308025, 47389456, 48594841, 48720400, 49056016, 50566321, 51179716, 51998521, 52896529, 53728900, 55279225, 55741156, 55815841, 57365476, 59028489, 60016009, 61528336, 61606801, 63648484, 64464841, 65383396, 68112009, 68657796, 69438889, 70308225, 71199844, 72590400, 74442384, 75411856, 76965529, 78694641, 80694289, 82519056, 82901025, 86694721, 87160896, 88906041, 89718784, 92256025, 93683041, 96236100, 97950609, 99980001, 101969604, 103022500, 106028209, 107723641, 110208004, 111323601, 113870241, 115820644, 117831025, 120077764, 123143409, 125283249, 128822500, 132296004, 134513604, 135280161, 138627076, 142659136, 144913444, 148693636, 153760000, 154455184, 156175009, 162231169, 165071104, 169468324, 172501956, 176783616, 180552969, 182952676, 187443481, 190688481, 195049156, 201469636, 203262049, 210076036, 212197489, 219069601, 223173721, 229007689, 232440516, 239568484, 244296900, 249576804, 255552196, 260305956, 265722601, 269649241, 277855561, 283046976, 291999744, 294019609, 304293136, 307756849, 319658641, 322669369, 330912481, 337199769, 345327889, 355134025, 362331225, 374732164, 379509361, 381694369, 395452996, 405216900, 412008804, 419553289, 428655616, 441630225, 448211241, 459845136, 471150436, 479522404, 493595089, 503104900, 517562500, 519384100, 537405124, 549480481, 558660496, 576384064, 585785209, 601426576, 608756929, 623900484, 640747969, 654182929, 670965409, 684554896, 699020721, 716097600, 733651396, 751034025, 761594409, 781146601, 797215225, 817502464, 839608576, 852756804, 876396816, 886431529, 916938961, 936176409, 957778704, 978313284, 1006348729, 1021122025, 1037870656, 1067263561, 1082278404, 1114825321, 1131649600, 1158789681, 1185218329, 1209231076, 1231308100, 1261244196, 1295712016, 1317254436, 1342343044, 1376039025, 1407900484, 1436106816, 1461762289, 1493049600, 1533975556, 1561356196, 1587145921, 1622961796, 1654211584, 1694804224, 1713049321, 1764672064, 1797929604, 1829700625, 1863994276, 1909165636, 1929142084, 1970916025, 2019693481, 2048377081, 2090592729, 2118760900, 2176222500, 2209470025, 2247992569, 2294218404, 2329703289, 2378122756, 2444906916, 2484125281, 2538043641, 2587858641, 2642782464, 2696205625, 2749534096, 2801584900, 2865567961, 2928541456, 2977775761, 3038655376, 3108397009, 3179493769, 3226808025, 3308205289, 3360752784, 3425760900, 3546917136, 3580586244, 3699802276, 3754503076, 3855664836, 3931540804, 4010688900, 4052213649, 4096896049, 4161798144, 4184407969, 4207857424, 4234365184, 4260956176, 4261608961, 4262522944, 4264351204, 4264481809, 4264481809, 4264481809, 4264481809, 4265396100, 4265918596, 4266571761, 4266702400, 4266702400, 4268008900, 4270099716, 4270099716, 4270099716, 4270099716, 4269969025, 4268792896, 4268792896, 4271406736, 4271798881, 4271798881, 4271798881, 4272844689, 4272844689, 4273890625, 4273890625, 4273890625, 4273890625, 4273367641, 4273367641, 4273367641, 4275721321, 4275721321, 4275721321, 4275721321, 4274282884, 4274282884, 4272975424, 4272713956, 4272713956, 4272713956, 4271537449, 4270491801, 4270099716, 4265918596, 4265526721, 4265526721, 4265787969, 4265918596, 4266963684, 4271276025, 4272060321, 4272060321, 4269576964, 4269576964, 4269576964, 4268792896, 4265265481, 4265265481, 4265134864, 4263828804, 4262131225, 4260564529, 4260564529, 4260564529, 4260564529, 4260564529, 4260564529, 4260825625, 4260825625, 4261086729, 4262522944, 4263045264, 4263045264, 4261739524, 4261217284, 4259520225, 4259520225, 4259520225, 4259520225, 4259520225, 4259520225, 4259520225, 4259520225, 4259520225, 4259911824, 4261086729, 4261086729, 4262261796, 4262261796, 4262261796, 4260303441, 4260303441, 4260303441, 4261739524, 4261739524, 4262392369, 4262392369, 4262392369, 4262392369, 4262392369, 4262392369, 4262392369, 4264090000, 4264090000, 4264090000, 4264090000, 4262131225, 4262131225, 4262131225, 4262131225, 4262392369, 4262392369, 4262392369, 4262392369, 4262392369, 4262392369, 4262392369, 4262392369, 4262392369, 4262392369, 4263175849, 4263175849, 4263175849, 4263175849, 4263175849, 4263175849, 4263175849, 4263175849, 4263175849, 4261608961, 4261608961, 4261608961, 4261608961, 4261608961, 4261608961, 4263306436, 4263306436, 4263306436, 4263306436, 4263306436, 4263306436, 4263045264, 4263045264, 4263045264, 4263045264, 4261478400, 4260825625, 4260825625, 4260825625, 4261870089, 4261870089, 4261870089, 4264220601, 4264220601, 4264220601, 4264220601, 4263828804, 4263175849, 4263175849, 4263175849, 4262914681, 4262914681, 4262914681, 4263045264, 4263045264, 4263045264, 4263045264, 4266179856, 4266179856, 4262784100, 4262522944, 4262522944, 4262522944, 17280649, 16451136, 15920100, 15920100, 15920100, 15952036, 15952036, 15952036, 15610401, 15539364, 15507844, 15397776, 15397776, 15397776, 15327225, 15327225, 15249025, 15249025, 15249025, 15116544, 15038884, 15031129, 15031129, 14992384, 14907321, 14907321, 14822500, 14684224, 14638276, 14622976, 14622976, 14645929, 14645929, 14607684, 14607684, 14607684, 14424804, 14424804, 14364100, 14258176, 14258176, 14258176, 14258176, 14311089, 14311089, 14258176, 14258176, 14258176, 14258176, 14175225, 14175225, 14107536, 14040009, 13957696, 13957696, 13957696, 13912900, 13912900, 13912900, 13801225, 13801225, 13801225, 13808656, 13808656, 13808656, 13801225, 13801225, 13682601, 13682601, 13682601, 13682601, 13630864, 13623481, 13623481, 13623481, 13571856, 13571856, 13564489, 13527684, 13527684, 13527684, 13439556, 13410244, 13410244, 13454224, 13490929, 13490929, 13490929, 13490929, 13446889, 13446889, 13446889, 13446889, 13446889, 13512976, 13601344, 13601344, 13601344, 13601344, 13601344, 13601344, 13616100, 13616100, 13616100, 13616100, 13616100, 13616100, 13756681, 13756681, 13756681, 13756681, 13756681, 13756681, 13883076, 13883076, 13883076, 13905441, 13920361, 13972644, 13972644, 13972644, 14070001, 14070001, 14085009, 14152644, 14152644, 14152644, 14152644, 14152644, 14160169, 14160169, 14318656, 14318656, 14333796, 14333796, 14333796, 14333796, 14333796, 14409616, 14409616, 14409616, 14409616, 14409616, 14493249, 14508481, 14600041, 14622976, 14622976, 14622976, 14714896, 14714896, 14714896, 14714896, 14807104, 14961424, 14969161, 14984641, 14984641, 14984641, 15023376, 15023376, 15116544, 15116544, 15116544, 15264649, 15389929, 15492096, 15539364, 15563025, 15570916, 15586704, 15594601, 15586704, 15586704, 15586704, 15586704, 15697444, 15737089, 15737089, 15808576, 15808576, 15808576, 15808576, 15808576, 15808576, 15808576, 15808576, 16072081, 16192576, 16192576, 16192576, 16192576, 16200625, 16200625, 16200625, 16378209, 16378209, 16345849, 16353936, 16353936, 16370116, 16443025, 16443025, 16548624, 16662724, 16662724, 16662724, 16662724, 16662724, 16793604, 16908544, 16908544, 16859236, 16859236, 16859236, 16892100, 16957924, 17222500, 17222500, 17222500, 17114769, 17114769, 17114769, 17139600, 17280649, 17405584, 17422276, 17422276, 17422276, 17698849, 17698849, 17480761, 17480761, 17480761, 17564481, 17682025, 17715681, 17715681, 17715681, 17715681, 17842176, 17884441, 17909824, 17935225, 17960644, 18011536, 18011536, 18139081, 18139081, 18139081, 18028516, 18028516, 18028516, 18028516, 18164644, 18249984, 18258529, 18267076, 18284176, 18284176, 18284176, 18284176, 18284176, 18447025, 18593344, 18593344, 18593344, 18593344, 18593344, 18507204, 18507204, 18679684, 18679684, 18679684, 18870336, 18913801, 18983449, 18983449, 19000881, 19000881, 19000881, 19166884, 19175641, 19175641, 19175641, 19360000, 19360000, 19360000, 19280881, 19280881, 19280881, 19307236, 19377604, 19509889, 19518724, 19562929, 19562929, 19651489, 19829209, 19829209, 19829209, 19829209, 19829209, 19829209, 19847025, 19855936, 19855936, 19882681, 20043529, 20169081, 20196036, 20196036, 20196036, 20196036, 20196036, 20196036, 20196036, 20394256, 20394256, 20394256, 20385225, 20385225, 20403289, 20403289, 20475625, 20475625, 20657025, 20657025, 20729809, 20729809, 20830096, 20830096, 20857489, 20857489, 20857489, 20903184, 20930625, 20976400, 20976400, 21031396, 21031396, 21031396, 21031396, 21169201, 21187609, 21224449, 21224449, 21399876, 21511044, 21511044, 21511044, 21511044, 21538881, 21659716, 21659716, 21659716, 21659716, 21659716, 21659716, 21659716, 21696964, 21715600, 21715600, 21762225, 21949225, 21949225, 22099401, 22099401, 22108804, 22325625, 22382361, 22410756, 22410756, 22410756, 22429696, 22524516, 22524516, 22524516, 22695696, 22695696, 22743361, 22944100, 23155344, 23155344, 23155344, 23512801, 23512801, 23639044, 23639044, 23648769, 23707161, 23707161, 23746129, 23746129, 23746129, 23746129, 24285184, 24304900, 24304900, 24671089, 24970009, 25150225, 25160256, 25160256, 25361296, 25361296, 25371369, 25633969, 25633969, 25816561, 26163225, 26163225, 26163225, 26163225, 26615281, 26615281, 26615281, 26615281, 26687556, 27112849, 27468081, 27468081, 27604516, 27678121, 27678121, 27730756, 27825625, 28037025, 28355625, 28643904, 28686736, 28622500, 28933641, 29149201, 29257281, 29398084, 29571844, 29800681, 29800681, 29800681, 29866225, 29920900, 30272004, 30525625, 30591961, 30591961, 30913600, 31360000, 31528225, 31606884, 31685641, 31798321, 31798321, 32137561, 32307856, 32604100, 32672656, 32672656, 32672656, 33016516, 33500944, 33547264, 33640000, 33942276, 33942276, 33965584, 34339600, 34597924, 34597924, 34703881, 34739236, 35378704, 35676729, 35676729, 35784324, 35856144, 36012001, 36469521, 36735721, 36747844, 36808489, 37112464, 37222201, 37491129, 37625956, 37994896, 38539264, 38551681, 38551681, 38713284, 39187600, 39564100, 39690000, 39740416, 39891856, 40322500, 40589641, 40998409, 40998409, 41075281, 41602500, 41718681, 41847961, 42211009, 42915601, 43178041, 43270084, 43375396, 43890625, 44195904, 44675856, 44769481, 44930209, 45292900, 45414121, 46321636, 46416969, 46717225, 46812964, 47582404, 47623801, 48399849, 48860100, 49308484, 49519369, 49575681, 50979600, 51380224, 51380224, 51509329, 51724864, 52548001, 52925625, 53479969, 54022500, 54626881, 54626881, 55442916, 56025225, 56400100, 57168721, 57456400, 57957769, 58430736, 59706529, 59907600, 60279696, 60466176, 61121124, 62394201, 63202500, 63664441, 64208169, 64673764, 65804544, 67026969, 67371264, 67617729, 68757264, 69405561, 71995225, 71995225, 71995225, 72692676, 73205136, 74476900, 75533481, 76090729, 77387209, 77915929, 79281216, 79995136, 81649296, 83448225, 83850649, 84327489, 85747600, 86918329, 87703225, 88792929, 90155025, 92236816, 92948881, 94789696, 96334225, 97653924, 99560484, 99840064, 100922116, 101767744, 104509729, 105596176, 106461124, 108472225, 111070521, 112254025, 113614281, 114618436, 117679104, 119530489, 121727089, 123276609, 124768900, 127644804, 129618225, 129891609, 132112036, 134050084, 138697729, 140588449, 142420356, 143928009, 145902241, 148035889, 152967424, 155451024, 164275489, 164275489, 166384201, 166384201, 168818049, 172580769, 174477681, 178730161, 181683441, 184552225, 188046369, 192598884, 195664144, 200845584, 202521361, 208282624, 211295296, 217385536, 219217636, 223382916, 227527056, 231009601, 236083225, 243328801, 245956489, 254689681, 254689681, 262083721, 267060964, 274432356, 277988929, 282676969, 291180096, 296080849, 304014096, 310112100, 316626436, 323928004, 328660641, 336685801, 343175625, 350400961, 356076900, 365612641, 368179344, 377486041, 388878400, 397204900, 404975376, 413146276, 423989281, 432473616, 438902500, 449652025, 461734144, 467424400, 480705625, 488542609, 500730129, 509630625, 523814769, 534950641, 543635856, 556393744, 564252516, 578691136, 593409600, 603193600, 617522500, 634989601, 649281361, 660644209, 679436356, 691795204, 705699225, 719366041, 735657129, 758176225, 769563081, 787981041, 805310884, 826332516, 856264644, 878292496, 880486929, 902942401, 919181124, 957283600, 960752016, 984139641, 1013849281, 1029832281, 1049047321, 1081488996, 1104631696, 1139062500, 1151177041, 1184874084, 1209787524, 1243056049, 1265794084, 1299025764, 1315222756, 1353283369, 1385328400, 1421742436, 1451229025, 1483559289, 1521234009, 1544647204, 1584358416, 1624976721, 1655838864, 1697687209, 1743647049, 1766773089, 1826109289, 1866931264, 1897386481, 1951077241, 1989249201, 2030403600, 2078630464, 2122260624, 2179115761, 2233696644, 2270141316, 2321697856, 2390134321, 2436212164, 2506003600, 2558741056, 2606715136, 2664727641, 2709723025, 2765918464, 2849104129, 2917080100, 3000300625, 3132976729, 3132976729, 3162600169, 3268980625, 3327213124, 3415818025, 3480056064, 3540488004, 3630785536, 3726125764, 3790372356, 3862995409, 3943965601, 4016263876, 4061130529, 4109322816, 4152384721, 4177941769, 4207857424, 4222010529, 4249605721, 4261608961, 4261608961, 4262261796, 4262914681, 4262914681, 4263175849, 4263828804, 4264351204, 4264351204, 4266441124, 4266441124, 4266441124, 4266441124, 4266441124, 4266833041, 4266833041, 4266833041, 4266833041, 4266833041, 4266963684, 4269054244, 4269054244, 4269576964, 4269576964, 4269707649, 4269707649, 4271276025, 4271798881, 4271798881, 4271798881, 4272583225, 4272975424, 4272975424, 4272975424, 4273629129, 4273629129, 4273629129, 4273629129, 4274021376, 4274021376, 4274021376, 4274021376, 4274021376, 4274021376, 4272713956, 4272713956, 4272713956, 4272713956, 4272713956, 4267747584, 4267486276, 4267486276, 4267486276, 4268923569, 4269446281, 4269969025, 4274544400, 4274544400, 4274544400, 4272321769, 4269315600, 4269315600, 4269315600, 4264220601, 4263567616, 4263437025, 4262784100, 4262522944, 4262522944, 4262000656, 4262000656, 4262000656, 4262000656, 4262000656, 4262000656, 4260303441, 4259520225, 4259128644, 4259128644, 4259128644, 4260695076, 4260695076, 4260695076, 4260695076, 4259650756, 4259389696, 4259389696, 4259389696, 4261347841, 4261347841, 4261347841, 4261478400, 4261478400, 4261478400, 4261478400, 4262914681, 4262914681, 4262914681, 4262914681, 4262261796, 4262261796, 4262261796, 4262261796, 4262261796, 4261870089, 4261870089, 4261870089, 4261870089, 4261870089, 4263698209, 4263698209, 4263698209, 4263698209, 4262914681, 4259911824, 4259911824, 4259911824, 4261739524, 4261739524, 4263567616, 4263567616, 4263567616, 4263567616, 4263567616, 4263567616, 4263045264, 4263045264, 4262784100, 4262392369, 4262392369, 4262392369, 4262131225, 4262000656, 4262000656, 4261739524, 4260303441, 4260303441, 4261347841, 4262131225, 4262131225, 4262522944, 4263959401, 4263959401, 4263959401, 4263959401, 4263959401, 4263437025, 4262784100, 4262131225, 4260825625, 4260825625, 4260825625, 4263567616, 4263567616, 4263567616, 4263567616, 4263567616, 4263175849, 4262522944, 4261217284, 4261217284, 4261217284, 4261217284, 4261739524, 4261870089, 4261870089, 4261870089, 4262653521, 4262653521, 4262653521, 4262653521, 4262914681, 4263175849, 4263175849, 4263306436, 4263306436, 4263828804, 4263959401, 4263959401, 4264220601, 4264481809, 4264481809, 4264481809, 4264351204, 4264351204, 4263567616, 4262653521, 4262653521, 4262653521, 4262653521, 4263959401, 4264220601, 4263567616, 4263567616, 4263567616, 4263567616, 4263567616, 4263567616, 4265787969, 4265787969, 4265787969, 4264220601, 4264220601, 4264220601, 4264220601, 4265526721, 4265526721, 4265526721, 4265526721, 4265526721, 4265526721, 4265526721, 4265526721, 4265526721, 4264481809, 4264481809, 4264481809, 4264481809, 4264481809, 4264481809, 4264481809, 4264481809, 4264481809, 4264481809, 4264481809, 4264481809, 4265526721, 4265526721, 4265526721, 4265526721, 4265526721, 4265134864, 4265134864, 4265134864, 4265134864, 4265134864, 4265134864, 4265134864, 4265134864, 4265134864, 4265004249, 4265004249, 4265004249, 4263828804, 4263828804, 4263828804, 4263828804, 4263828804, 43217476, 41447844, 40576900, 40576900, 40500496, 40462321, 40411449, 40220964, 39904489, 39891856, 39388176, 39300361, 39162564, 39100009, 38738176, 38738176, 38738176, 38539264, 38464804, 38056561, 37970244, 37970244, 37970244, 37970244, 37748736, 37491129, 37405456, 37234404, 37173409, 37173409, 37173409, 37173409, 37015056, 36929929, 36747844, 36747844, 36216324, 36204289, 36204289, 36240400, 36240400, 36240400, 36144144, 36144144, 36048016, 35952016, 35820225, 35820225, 35820225, 35485849, 35450116, 35450116, 35450116, 35283600, 35283600, 35283600, 35283600, 35307364, 35307364, 35307364, 35307364, 35307364, 35105625, 34869025, 34869025, 34680321, 34680321, 34609689, 34609689, 34609689, 34609689, 34715664, 34644996, 34433424, 34433424, 34433424, 34292736, 34292736, 34292736, 34292736, 34292736, 34257609, 34257609, 34257609, 34257609, 34257609, 34257609, 34257609, 34257609, 34257609, 34257609, 34245904, 34245904, 34245904, 34374769, 34586161, 34621456, 34621456, 34633225, 34633225, 34633225, 34739236, 34963569, 34963569, 34963569, 34963569, 34987225, 35010889, 35022724, 35331136, 35331136, 35331136, 35390601, 35390601, 35772361, 35964009, 35772361, 35676729, 35628961, 35497764, 35497764, 35497764, 35509681, 36096064, 36096064, 36096064, 36168196, 36168196, 36240400, 36240400, 36324729, 36324729, 36336784, 36542025, 36542025, 36590401, 36590401, 36590401, 36590401, 36917776, 36917776, 36917776, 36954241, 36954241, 36954241, 37124649, 37136836, 37136836, 37136836, 37896336, 38031889, 38378025, 38378025, 38378025, 38378025, 38378025, 38378025, 38378025, 38663524, 38663524, 38900169, 38900169, 38900169, 38900169, 39100009, 39300361, 39300361, 39463524, 39753025, 39753025, 39753025, 39866596, 39917124, 39917124, 39917124, 39917124, 40157569, 40513225, 40513225, 40513225, 40806544, 40972801, 41216400, 41216400, 41216400, 41216400, 41654116, 41654116, 41654116, 41912676, 41912676, 41912676, 41912676, 41912676, 41912676, 41912676, 41912676, 41912676, 42107121, 42198016, 42510400, 42510400, 42627841, 42863209, 42902500, 42902500, 42902500, 43086096, 43164900, 43507216, 44063044, 44116164, 44009956, 43850884, 43850884, 44102881, 44262409, 44342281, 44382244, 44542276, 44542276, 44542276, 44542276, 44916804, 44916804, 44916804, 44916804, 44916804, 45050944, 45091225, 45091225, 45104656, 45104656, 45104656, 45104656, 45643536, 45643536, 45643536, 45643536, 45684081, 46348864, 46348864, 46348864, 46348864, 46676224, 46758244, 46758244, 46758244, 46758244, 46771921, 46991025, 46991025, 46991025, 47375689, 47403225, 47623801, 47651409, 47679025, 48066489, 48094225, 48149721, 48191364, 48233025, 48191364, 48191364, 48191364, 48191364, 48246916, 48246916, 48246916, 48622729, 48986001, 48986001, 48958009, 48958009, 48958009, 48944016, 48944016, 48944016, 49196196, 49280400, 49392784, 49505296, 49505296, 50055625, 50055625, 50055625, 50055625, 50055625, 50055625, 50098084, 50737129, 50737129, 51022449, 51022449, 51022449, 51022449, 51022449, 51437584, 51437584, 50979600, 50979600, 51165409, 51208336, 51523684, 51811204, 51868804, 51868804, 52041796, 52041796, 52113961, 52113961, 52113961, 52113961, 52113961, 52388644, 52388644, 52388644, 52635025, 52635025, 52635025, 53363025, 53699584, 53699584, 53699584, 53670276, 53670276, 53670276, 54184321, 54184321, 54272689, 54434884, 54538225, 54538225, 54538225, 54538225, 54626881, 54626881, 54626881, 54626881, 55279225, 55279225, 55279225, 55771024, 55771024, 55980324, 55995289, 55995289, 55995289, 56055169, 56055169, 56055169, 56070144, 56085121, 56535361, 56565441, 56565441, 56565441, 57153600, 57304900, 57851236, 57851236, 57851236, 57896881, 57896881, 57896881, 58003456, 58003456, 58277956, 58339044, 58339044, 58828900, 59089969, 59151481, 59521225, 59521225, 59582961, 59799289, 60217600, 60248644, 60248644, 60248644, 60840000, 61152400, 61936900, 61936900, 61936900, 62125924, 62331025, 62331025, 62615569, 63712324, 63712324, 63712324, 64112049, 64384576, 64754209, 64834704, 65254084, 65254084, 65772100, 65772100, 66438801, 66896041, 67026969, 67190809, 67601284, 68013009, 68013009, 68013009, 69705801, 70324996, 70375321, 70375321, 70375321, 71182969, 71351809, 71402500, 71842576, 72420100, 73119601, 73582084, 74132100, 74218225, 74218225, 74218225, 75446596, 75446596, 76545001, 76545001, 77158656, 77598481, 77810041, 77810041, 79245604, 79423744, 79584241, 80102500, 80102500, 81450625, 81450625, 81721600, 81721600, 82992100, 83302129, 84143929, 84400969, 85396081, 85581001, 86304100, 86322681, 87459904, 87590881, 87590881, 87946884, 88717561, 89226916, 89397025, 90231001, 90269001, 90611361, 91910569, 93489561, 93489561, 93489561, 94381225, 94614529, 96079204, 96216481, 96334225, 97614400, 98148649, 98267569, 99580441, 99800100, 100120036, 101828281, 101828281, 102050404, 102050404, 102758769, 103917636, 104632441, 105698961, 107702884, 107702884, 107868996, 108993600, 109683729, 110796676, 110796676, 111492481, 111492481, 113230881, 114233344, 115541001, 116208400, 117137329, 118504996, 118613881, 119137225, 119377476, 121242121, 122257249, 124166449, 124389409, 125283249, 126495009, 127283524, 127870864, 129595456, 130370724, 132756484, 132917841, 134444025, 135559449, 135978921, 136913401, 137545984, 139476100, 141991056, 143544361, 143712144, 146047225, 146773225, 148376761, 149964516, 151142436, 153884025, 155625625, 156875625, 157803844, 158583649, 161925625, 163481796, 165611161, 166177881, 166952241, 169572484, 173765124, 174240000, 175907169, 176650681, 176969809, 182169009, 183060900, 186295201, 188870049, 192071881, 192765456, 194742025, 197402500, 197993041, 202379076, 204661636, 207100881, 213072409, 213276816, 216501796, 218005225, 222636241, 224011089, 228826129, 232989696, 234702400, 239382784, 242238096, 245110336, 245956489, 252555664, 254498209, 259918884, 266113969, 271359729, 275228100, 279658729, 281836944, 283855104, 292957456, 294568569, 298356529, 304467601, 307546369, 313219204, 317302969, 326597184, 328660641, 336062224, 339370084, 349278721, 350925289, 356680996, 362026729, 368947264, 375933321, 382437136, 387853636, 394777161, 399440196, 406909584, 412536721, 422055936, 428862681, 440328256, 443313025, 452242756, 458730724, 468809104, 478559376, 488056464, 495285025, 504811024, 519840000, 524410000, 533379025, 546203641, 554131600, 568631716, 579076096, 605209201, 609398596, 609398596, 624400144, 633881329, 656691876, 663526081, 676728196, 688485121, 698809225, 716258169, 733272241, 750979216, 766237761, 779749776, 792760336, 809914681, 833823376, 844425481, 862068321, 889292041, 896762916, 918393025, 937094544, 977375169, 979627401, 1003812489, 1016461924, 1048982544, 1063868689, 1090848784, 1115159236, 1144536561, 1170871524, 1192735296, 1212153856, 1249693201, 1275204100, 1302343744, 1326125056, 1361536201, 1393678224, 1425666564, 1453515625, 1494982225, 1514143744, 1563886116, 1595682916, 1627476964, 1663905681, 1694145600, 1729395396, 1775358225, 1823204601, 1862095104, 1902268225, 1951253929, 1981318144, 2041593856, 2086662400, 2122168489, 2177808889, 2220294400, 2268807424, 2328255504, 2374125625, 2438976996, 2472575625, 2551866256, 2605183681, 2662250409, 2718683881, 2799785569, 2827261584, 2932330801, 2989793041, 3038655376, 3094919424, 3187844521, 3261209449, 3344077584, 3416051809, 3482652196, 3566478400, 3663154576, 3767013376, 3831114816, 3909000484, 3978581776, 4046104881, 4098048256, 4138992225, 4172255649, 4200984225, 4223830081, 4248823489, 4262784100, 4263175849, 4263175849, 4263175849, 4264481809, 4264481809, 4264612416, 4264612416, 4265526721, 4266310489, 4267355625, 4267355625, 4267355625, 4267355625, 4267355625, 4267355625, 4268400889, 4268400889, 4268400889, 4270491801, 4272191044, 4272191044, 4272191044, 4274282884, 4274282884, 4274282884, 4274413641, 4274805924, 4274805924, 4274805924, 4276506025, 4276506025, 4276506025, 4276506025, 4277029201, 4277683216, 4277814025, 4277814025, 4277683216, 4275852100, 4275198225, 4275198225, 4274152129, 4270883904, 4269707649, 4269707649, 4270622500, 4270622500, 4270622500, 4273890625, 4275067456, 4275328996, 4274152129, 4273890625, 4273759876, 4270099716, 4265657344, 4265657344, 4264220601, 4263828804, 4263828804, 4263567616, 4263567616, 4263567616, 4261608961, 4261217284, 4260172900, 4259128644, 4259128644, 4259128644, 4260172900, 4261217284, 4262784100, 4262784100, 4262784100, 4262131225, 4262131225, 4261347841, 4261347841, 4260825625, 4260825625, 4259781289, 4259781289, 4259781289, 4259781289, 4261217284, 4261217284, 4262392369, 4262392369, 4262392369, 4262392369, 4262392369, 4263567616, 4263567616, 4263567616, 4261086729, 4261086729, 4261086729, 4260433984, 4260433984, 4260433984, 4260433984, 4260433984, 4260433984, 4262522944, 4262522944, 4262522944, 4262131225, 4262131225, 4260172900, 4260172900, 4261478400, 4262522944, 4262522944, 4262522944, 4262522944, 4262522944, 4262522944, 4261870089, 4261870089, 4261870089, 4261870089, 4261870089, 4261870089, 4262914681, 4262914681, 4262784100, 4262261796, 4262261796, 4262261796, 4262261796, 4263306436, 4263306436, 4263698209, 4263698209, 4263698209, 4263698209, 4263698209, 4263698209, 4263698209, 4263698209, 4263698209, 4263698209, 4263698209, 4263698209, 4263698209, 4263698209, 4263698209, 4263698209, 4263698209, 4263698209, 4264090000, 4264090000, 4264090000, 4264090000, 4264090000, 4264090000, 4264090000, 4264090000, 4264090000, 4264090000, 4264090000, 4264090000, 4264090000, 4264090000, 4264090000, 4264090000, 4264090000, 4264090000, 4263567616, 4263567616, 4263567616, 4263175849, 4263175849, 4263175849, 4263828804, 4263828804, 4263828804, 4263828804, 4263437025, 4263437025, 4263437025, 4263437025, 4263437025, 4262914681, 4262914681, 4262914681, 4262914681, 4262914681, 4262914681, 4262914681, 4264090000, 4264090000, 4266179856, 4266179856, 4266179856, 4261870089, 4261870089, 4264743025, 4265004249, 4265004249, 4265004249, 4265004249, 4265004249, 4265004249, 4265004249, 4265004249, 4264743025, 4264743025, 4264481809, 4264481809, 4264481809, 4264481809, 4264481809, 4262914681, 4262914681, 4262914681, 4262914681, 4263698209, 4264873636, 4264873636, 4263437025, 4263437025, 4263437025, 4263437025, 4266571761, 4266702400, 4266702400, 4264612416, 4263567616, 4263567616, 4265265481, 4266310489, 4266571761, 4266571761, 4266571761, 4266571761, 4266571761, 4265526721, 4265004249, 4264743025, 4263306436, 4263306436, 4263306436, 4263306436, 4264743025, 4265004249, 4265004249, 4265134864, 4267094329, 4267747584, 4267747584, 4267747584, 4267747584, 4267094329, 4266441124, 4266179856, 4265657344, 4265657344, 4264090000, 4264090000, 4264090000, 4264090000, 4264090000, 4265657344, 4266963684, 4266963684, 4266963684, 4266963684, 4265787969, 4265787969, 4265787969, 4265787969, 4265787969, 4265134864, 4265134864, 4265134864, 4265134864, 4266702400, 4266702400, 4266702400, 4266702400, 4266702400, 4266702400, 4268270224, 4268270224, 4267486276, 4267486276, 4267486276, 4267486276, 4267094329, 4267094329, 4267094329, 4267094329, 4267094329, 4267094329, 4266049225, 4266049225, 4266049225, 4266049225, 4266049225, 4267616929, 4267616929, 4267616929, 4267616929, 4267616929, 4268531556, 4268923569, 4268923569] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Spectrum"] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Spectrum", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (Spectrometer)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1024, 24] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["296.5", "297.055", "297.61", "298.164", "298.719", "299.273", "299.827", "300.382", "300.936", "301.489", "302.043", "302.597", "303.15", "303.703", "304.256", "304.809", "305.362", "305.915", "306.467", "307.02", "307.572", "308.124", "308.676", "309.228", "309.78", "310.332", "310.883", "311.435", "311.986", "312.537", "313.088", "313.639", "314.189", "314.74", "315.29", "315.841", "316.391", "316.941", "317.491", "318.04", "318.59", "319.139", "319.689", "320.238", "320.787", "321.336", "321.885", "322.433", "322.982", "323.53", "324.079", "324.627", "325.175", "325.723", "326.271", "326.818", "327.366", "327.913", "328.46", "329.007", "329.554", "330.101", "330.648", "331.195", "331.741", "332.287", "332.834", "333.38", "333.926", "334.472", "335.017", "335.563", "336.108", "336.654", "337.199", "337.744", "338.289", "338.834", "339.378", "339.923", "340.467", "341.012", "341.556", "342.1", "342.644", "343.188", "343.731", "344.275", "344.818", "345.362", "345.905", "346.448", "346.991", "347.534", "348.076", "348.619", "349.161", "349.704", "350.246", "350.788", "351.33", "351.872", "352.414", "352.955", "353.497", "354.038", "354.579", "355.12", "355.661", "356.202", "356.743", "357.284", "357.824", "358.364", "358.905", "359.445", "359.985", "360.525", "361.065", "361.604", "362.144", "362.683", "363.223", "363.762", "364.301", "364.84", "365.379", "365.917", "366.456", "366.995", "367.533", "368.071", "368.609", "369.147", "369.685", "370.223", "370.761", "371.298", "371.836", "372.373", "372.91", "373.447", "373.984", "374.521", "375.058", "375.595", "376.131", "376.668", "377.204", "377.74", "378.276", "378.812", "379.348", "379.884", "380.419", "380.955", "381.49", "382.026", "382.561", "383.096", "383.631", "384.166", "384.7", "385.235", "385.77", "386.304", "386.838", "387.372", "387.907", "388.441", "388.974", "389.508", "390.042", "390.575", "391.109", "391.642", "392.175", "392.708", "393.241", "393.774", "394.307", "394.84", "395.372", "395.905", "396.437", "396.969", "397.501", "398.033", "398.565", "399.097", "399.629", "400.16", "400.692", "401.223", "401.755", "402.286", "402.817", "403.348", "403.879", "404.409", "404.94", "405.471", "406.001", "406.531", "407.062", "407.592", "408.122", "408.652", "409.181", "409.711", "410.241", "410.77", "411.3", "411.829", "412.358", "412.887", "413.416", "413.945", "414.474", "415.003", "415.531", "416.06", "416.588", "417.117", "417.645", "418.173", "418.701", "419.229", "419.757", "420.284", "420.812", "421.34", "421.867", "422.394", "422.921", "423.449", "423.976", "424.503", "425.029", "425.556", "426.083", "426.609", "427.136", "427.662", "428.188", "428.714", "429.24", "429.766", "430.292", "430.818", "431.344", "431.869", "432.395", "432.92", "433.445", "433.971", "434.496", "435.021", "435.546", "436.071", "436.595", "437.12", "437.644", "438.169", "438.693", "439.218", "439.742", "440.266", "440.79", "441.314", "441.837", "442.361", "442.885", "443.408", "443.932", "444.455", "444.978", "445.502", "446.025", "446.548", "447.071", "447.593", "448.116", "448.639", "449.161", "449.684", "450.206", "450.728", "451.251", "451.773", "452.295", "452.817", "453.338", "453.86", "454.382", "454.903", "455.425", "455.946", "456.468", "456.989", "457.51", "458.031", "458.552", "459.073", "459.594", "460.114", "460.635", "461.156", "461.676", "462.196", "462.717", "463.237", "463.757", "464.277", "464.797", "465.317", "465.837", "466.356", "466.876", "467.396", "467.915", "468.434", "468.954", "469.473", "469.992", "470.511", "471.03", "471.549", "472.068", "472.586", "473.105", "473.624", "474.142", "474.661", "475.179", "475.697", "476.215", "476.733", "477.251", "477.769", "478.287", "478.805", "479.323", "479.84", "480.358", "480.875", "481.393", "481.91", "482.427", "482.944", "483.461", "483.978", "484.495", "485.012", "485.529", "486.045", "486.562", "487.079", "487.595", "488.111", "488.628", "489.144", "489.66", "490.176", "490.692", "491.208", "491.724", "492.24", "492.755", "493.271", "493.787", "494.302", "494.817", "495.333", "495.848", "496.363", "496.878", "497.393", "497.908", "498.423", "498.938", "499.453", "499.968", "500.482", "500.997", "501.511", "502.026", "502.54", "503.054", "503.568", "504.083", "504.597", "505.111", "505.625", "506.138", "506.652", "507.166", "507.679", "508.193", "508.707", "509.22", "509.733", "510.247", "510.76", "511.273", "511.786", "512.299", "512.812", "513.325", "513.838", "514.351", "514.863", "515.376", "515.889", "516.401", "516.913", "517.426", "517.938", "518.45", "518.963", "519.475", "519.987", "520.499", "521.011", "521.522", "522.034", "522.546", "523.058", "523.569", "524.081", "524.592", "525.104", "525.615", "526.126", "526.637", "527.149", "527.66", "528.171", "528.682", "529.193", "529.704", "530.214", "530.725", "531.236", "531.746", "532.257", "532.767", "533.278", "533.788", "534.298", "534.809", "535.319", "535.829", "536.339", "536.849", "537.359", "537.869", "538.379", "538.889", "539.398", "539.908", "540.418", "540.927", "541.437", "541.946", "542.456", "542.965", "543.474", "543.983", "544.493", "545.002", "545.511", "546.02", "546.529", "547.038", "547.546", "548.055", "548.564", "549.073", "549.581", "550.09", "550.598", "551.107", "551.615", "552.123", "552.632", "553.14", "553.648", "554.156", "554.664", "555.172", "555.68", "556.188", "556.696", "557.204", "557.712", "558.22", "558.727", "559.235", "559.742", "560.25", "560.757", "561.265", "561.772", "562.28", "562.787", "563.294", "563.801", "564.308", "564.815", "565.323", "565.83", "566.336", "566.843", "567.35", "567.857", "568.364", "568.87", "569.377", "569.884", "570.39", "570.897", "571.403", "571.91", "572.416", "572.922", "573.429", "573.935", "574.441", "574.947", "575.453", "575.959", "576.465", "576.971", "577.477", "577.983", "578.489", "578.995", "579.501", "580.006", "580.512", "581.018", "581.523", "582.029", "582.534", "583.04", "583.545", "584.05", "584.556", "585.061", "585.566", "586.071", "586.577", "587.082", "587.587", "588.092", "588.597", "589.102", "589.607", "590.112", "590.616", "591.121", "591.626", "592.131", "592.635", "593.14", "593.645", "594.149", "594.654", "595.158", "595.663", "596.167", "596.672", "597.176", "597.68", "598.185", "598.689", "599.193", "599.697", "600.201", "600.705", "601.209", "601.713", "602.217", "602.721", "603.225", "603.729", "604.233", "604.737", "605.241", "605.744", "606.248", "606.752", "607.255", "607.759", "608.263", "608.766", "609.27", "609.773", "610.277", "610.78", "611.283", "611.787", "612.29", "612.793", "613.297", "613.8", "614.303", "614.806", "615.309", "615.812", "616.316", "616.819", "617.322", "617.825", "618.328", "618.83", "619.333", "619.836", "620.339", "620.842", "621.345", "621.847", "622.35", "622.853", "623.355", "623.858", "624.361", "624.863", "625.366", "625.868", "626.371", "626.873", "627.376", "627.878", "628.381", "628.883", "629.385", "629.888", "630.39", "630.892", "631.395", "631.897", "632.399", "632.901", "633.403", "633.905", "634.408", "634.91", "635.412", "635.914", "636.416", "636.918", "637.42", "637.922", "638.424", "638.925", "639.427", "639.929", "640.431", "640.933", "641.435", "641.936", "642.438", "642.94", "643.442", "643.943", "644.445", "644.947", "645.448", "645.95", "646.451", "646.953", "647.455", "647.956", "648.458", "648.959", "649.461", "649.962", "650.464", "650.965", "651.466", "651.968", "652.469", "652.97", "653.472", "653.973", "654.474", "654.976", "655.477", "655.978", "656.48", "656.981", "657.482", "657.983", "658.484", "658.985", "659.487", "659.988", "660.489", "660.99", "661.491", "661.992", "662.493", "662.994", "663.495", "663.996", "664.497", "664.998", "665.499", "666", "666.501", "667.002", "667.503", "668.004", "668.505", "669.006", "669.507", "670.008", "670.509", "671.009", "671.51", "672.011", "672.512", "673.013", "673.514", "674.014", "674.515", "675.016", "675.517", "676.018", "676.518", "677.019", "677.52", "678.02", "678.521", "679.022", "679.523", "680.023", "680.524", "681.025", "681.525", "682.026", "682.527", "683.027", "683.528", "684.029", "684.529", "685.03", "685.531", "686.031", "686.532", "687.032", "687.533", "688.034", "688.534", "689.035", "689.536", "690.036", "690.537", "691.037", "691.538", "692.038", "692.539", "693.04", "693.54", "694.041", "694.541", "695.042", "695.542", "696.043", "696.544", "697.044", "697.545", "698.045", "698.546", "699.046", "699.547", "700.047", "700.548", "701.049", "701.549", "702.05", "702.55", "703.051", "703.551", "704.052", "704.552", "705.053", "705.554", "706.054", "706.555", "707.055", "707.556", "708.056", "708.557", "709.058", "709.558", "710.059", "710.559", "711.06", "711.561", "712.061", "712.562", "713.062", "713.563", "714.064", "714.564", "715.065", "715.566", "716.066", "716.567", "717.068", "717.568", "718.069", "718.57", "719.07", "719.571", "720.072", "720.572", "721.073", "721.574", "722.074", "722.575", "723.076", "723.577", "724.077", "724.578", "725.079", "725.58", "726.081", "726.581", "727.082", "727.583", "728.084", "728.585", "729.086", "729.586", "730.087", "730.588", "731.089", "731.59", "732.091", "732.592", "733.093", "733.594", "734.095", "734.596", "735.097", "735.598", "736.099", "736.6", "737.101", "737.602", "738.103", "738.604", "739.105", "739.606", "740.107", "740.609", "741.11", "741.611", "742.112", "742.613", "743.114", "743.616", "744.117", "744.618", "745.119", "745.621", "746.122", "746.623", "747.125", "747.626", "748.128", "748.629", "749.13", "749.632", "750.133", "750.635", "751.136", "751.638", "752.139", "752.641", "753.142", "753.644", "754.145", "754.647", "755.149", "755.65", "756.152", "756.654", "757.155", "757.657", "758.159", "758.661", "759.163", "759.664", "760.166", "760.668", "761.17", "761.672", "762.174", "762.676", "763.178", "763.68", "764.182", "764.684", "765.186", "765.688", "766.19", "766.692", "767.194", "767.697", "768.199", "768.701", "769.203", "769.706", "770.208", "770.71", "771.213", "771.715", "772.217", "772.72", "773.222", "773.725", "774.227", "774.73", "775.232", "775.735", "776.238", "776.74", "777.243", "777.746", "778.248", "778.751", "779.254", "779.757", "780.26", "780.763", "781.266", "781.768", "782.271", "782.774", "783.277", "783.781", "784.284", "784.787", "785.29", "785.793", "786.296", "786.799", "787.303", "787.806", "788.309", "788.813", "789.316", "789.82", "790.323", "790.827", "791.33", "791.834", "792.337", "792.841", "793.345", "793.848", "794.352", "794.856", "795.359", "795.863", "796.367", "796.871", "797.375", "797.879", "798.383", "798.887", "799.391", "799.895", "800.399", "800.904", "801.408", "801.912", "802.416", "802.921", "803.425", "803.929", "804.434", "804.938", "805.443", "805.947", "806.452", "806.957", "807.461", "807.966", "808.471", "808.975", "809.48", "809.985", "810.49", "810.995", "811.5", "812.005", "812.51", "813.015", "813.52", "814.026", "814.531", "815.036", "815.541", "816.047", "816.552", "817.057", "817.563", "818.068", "818.574", "819.08", "819.585", "820.091", "820.597", "821.102", "821.608", "822.114", "822.62", "823.126"] }, { "type": "character", "attributes": {}, "value": ["0.029", "20.027", "40.025", "60.026", "80.025", "100.023", "120.022", "140.022", "160.02", "180.019", "200.02", "220.018", "240.017", "260.016", "280.015", "300.014", "320.014", "340.014", "360.012", "380.012", "400.01", "420.009", "440.008", "460.007"] } ] } }, "value": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Spectrum"] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Spectrum", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (Spectrometer)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1024, 24] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["296.5", "297.055", "297.61", "298.164", "298.719", "299.273", "299.827", "300.382", "300.936", "301.489", "302.043", "302.597", "303.15", "303.703", "304.256", "304.809", "305.362", "305.915", "306.467", "307.02", "307.572", "308.124", "308.676", "309.228", "309.78", "310.332", "310.883", "311.435", "311.986", "312.537", "313.088", "313.639", "314.189", "314.74", "315.29", "315.841", "316.391", "316.941", "317.491", "318.04", "318.59", "319.139", "319.689", "320.238", "320.787", "321.336", "321.885", "322.433", "322.982", "323.53", "324.079", "324.627", "325.175", "325.723", "326.271", "326.818", "327.366", "327.913", "328.46", "329.007", "329.554", "330.101", "330.648", "331.195", "331.741", "332.287", "332.834", "333.38", "333.926", "334.472", "335.017", "335.563", "336.108", "336.654", "337.199", "337.744", "338.289", "338.834", "339.378", "339.923", "340.467", "341.012", "341.556", "342.1", "342.644", "343.188", "343.731", "344.275", "344.818", "345.362", "345.905", "346.448", "346.991", "347.534", "348.076", "348.619", "349.161", "349.704", "350.246", "350.788", "351.33", "351.872", "352.414", "352.955", "353.497", "354.038", "354.579", "355.12", "355.661", "356.202", "356.743", "357.284", "357.824", "358.364", "358.905", "359.445", "359.985", "360.525", "361.065", "361.604", "362.144", "362.683", "363.223", "363.762", "364.301", "364.84", "365.379", "365.917", "366.456", "366.995", "367.533", "368.071", "368.609", "369.147", "369.685", "370.223", "370.761", "371.298", "371.836", "372.373", "372.91", "373.447", "373.984", "374.521", "375.058", "375.595", "376.131", "376.668", "377.204", "377.74", "378.276", "378.812", "379.348", "379.884", "380.419", "380.955", "381.49", "382.026", "382.561", "383.096", "383.631", "384.166", "384.7", "385.235", "385.77", "386.304", "386.838", "387.372", "387.907", "388.441", "388.974", "389.508", "390.042", "390.575", "391.109", "391.642", "392.175", "392.708", "393.241", "393.774", "394.307", "394.84", "395.372", "395.905", "396.437", "396.969", "397.501", "398.033", "398.565", "399.097", "399.629", "400.16", "400.692", "401.223", "401.755", "402.286", "402.817", "403.348", "403.879", "404.409", "404.94", "405.471", "406.001", "406.531", "407.062", "407.592", "408.122", "408.652", "409.181", "409.711", "410.241", "410.77", "411.3", "411.829", "412.358", "412.887", "413.416", "413.945", "414.474", "415.003", "415.531", "416.06", "416.588", "417.117", "417.645", "418.173", "418.701", "419.229", "419.757", "420.284", "420.812", "421.34", "421.867", "422.394", "422.921", "423.449", "423.976", "424.503", "425.029", "425.556", "426.083", "426.609", "427.136", "427.662", "428.188", "428.714", "429.24", "429.766", "430.292", "430.818", "431.344", "431.869", "432.395", "432.92", "433.445", "433.971", "434.496", "435.021", "435.546", "436.071", "436.595", "437.12", "437.644", "438.169", "438.693", "439.218", "439.742", "440.266", "440.79", "441.314", "441.837", "442.361", "442.885", "443.408", "443.932", "444.455", "444.978", "445.502", "446.025", "446.548", "447.071", "447.593", "448.116", "448.639", "449.161", "449.684", "450.206", "450.728", "451.251", "451.773", "452.295", "452.817", "453.338", "453.86", "454.382", "454.903", "455.425", "455.946", "456.468", "456.989", "457.51", "458.031", "458.552", "459.073", "459.594", "460.114", "460.635", "461.156", "461.676", "462.196", "462.717", "463.237", "463.757", "464.277", "464.797", "465.317", "465.837", "466.356", "466.876", "467.396", "467.915", "468.434", "468.954", "469.473", "469.992", "470.511", "471.03", "471.549", "472.068", "472.586", "473.105", "473.624", "474.142", "474.661", "475.179", "475.697", "476.215", "476.733", "477.251", "477.769", "478.287", "478.805", "479.323", "479.84", "480.358", "480.875", "481.393", "481.91", "482.427", "482.944", "483.461", "483.978", "484.495", "485.012", "485.529", "486.045", "486.562", "487.079", "487.595", "488.111", "488.628", "489.144", "489.66", "490.176", "490.692", "491.208", "491.724", "492.24", "492.755", "493.271", "493.787", "494.302", "494.817", "495.333", "495.848", "496.363", "496.878", "497.393", "497.908", "498.423", "498.938", "499.453", "499.968", "500.482", "500.997", "501.511", "502.026", "502.54", "503.054", "503.568", "504.083", "504.597", "505.111", "505.625", "506.138", "506.652", "507.166", "507.679", "508.193", "508.707", "509.22", "509.733", "510.247", "510.76", "511.273", "511.786", "512.299", "512.812", "513.325", "513.838", "514.351", "514.863", "515.376", "515.889", "516.401", "516.913", "517.426", "517.938", "518.45", "518.963", "519.475", "519.987", "520.499", "521.011", "521.522", "522.034", "522.546", "523.058", "523.569", "524.081", "524.592", "525.104", "525.615", "526.126", "526.637", "527.149", "527.66", "528.171", "528.682", "529.193", "529.704", "530.214", "530.725", "531.236", "531.746", "532.257", "532.767", "533.278", "533.788", "534.298", "534.809", "535.319", "535.829", "536.339", "536.849", "537.359", "537.869", "538.379", "538.889", "539.398", "539.908", "540.418", "540.927", "541.437", "541.946", "542.456", "542.965", "543.474", "543.983", "544.493", "545.002", "545.511", "546.02", "546.529", "547.038", "547.546", "548.055", "548.564", "549.073", "549.581", "550.09", "550.598", "551.107", "551.615", "552.123", "552.632", "553.14", "553.648", "554.156", "554.664", "555.172", "555.68", "556.188", "556.696", "557.204", "557.712", "558.22", "558.727", "559.235", "559.742", "560.25", "560.757", "561.265", "561.772", "562.28", "562.787", "563.294", "563.801", "564.308", "564.815", "565.323", "565.83", "566.336", "566.843", "567.35", "567.857", "568.364", "568.87", "569.377", "569.884", "570.39", "570.897", "571.403", "571.91", "572.416", "572.922", "573.429", "573.935", "574.441", "574.947", "575.453", "575.959", "576.465", "576.971", "577.477", "577.983", "578.489", "578.995", "579.501", "580.006", "580.512", "581.018", "581.523", "582.029", "582.534", "583.04", "583.545", "584.05", "584.556", "585.061", "585.566", "586.071", "586.577", "587.082", "587.587", "588.092", "588.597", "589.102", "589.607", "590.112", "590.616", "591.121", "591.626", "592.131", "592.635", "593.14", "593.645", "594.149", "594.654", "595.158", "595.663", "596.167", "596.672", "597.176", "597.68", "598.185", "598.689", "599.193", "599.697", "600.201", "600.705", "601.209", "601.713", "602.217", "602.721", "603.225", "603.729", "604.233", "604.737", "605.241", "605.744", "606.248", "606.752", "607.255", "607.759", "608.263", "608.766", "609.27", "609.773", "610.277", "610.78", "611.283", "611.787", "612.29", "612.793", "613.297", "613.8", "614.303", "614.806", "615.309", "615.812", "616.316", "616.819", "617.322", "617.825", "618.328", "618.83", "619.333", "619.836", "620.339", "620.842", "621.345", "621.847", "622.35", "622.853", "623.355", "623.858", "624.361", "624.863", "625.366", "625.868", "626.371", "626.873", "627.376", "627.878", "628.381", "628.883", "629.385", "629.888", "630.39", "630.892", "631.395", "631.897", "632.399", "632.901", "633.403", "633.905", "634.408", "634.91", "635.412", "635.914", "636.416", "636.918", "637.42", "637.922", "638.424", "638.925", "639.427", "639.929", "640.431", "640.933", "641.435", "641.936", "642.438", "642.94", "643.442", "643.943", "644.445", "644.947", "645.448", "645.95", "646.451", "646.953", "647.455", "647.956", "648.458", "648.959", "649.461", "649.962", "650.464", "650.965", "651.466", "651.968", "652.469", "652.97", "653.472", "653.973", "654.474", "654.976", "655.477", "655.978", "656.48", "656.981", "657.482", "657.983", "658.484", "658.985", "659.487", "659.988", "660.489", "660.99", "661.491", "661.992", "662.493", "662.994", "663.495", "663.996", "664.497", "664.998", "665.499", "666", "666.501", "667.002", "667.503", "668.004", "668.505", "669.006", "669.507", "670.008", "670.509", "671.009", "671.51", "672.011", "672.512", "673.013", "673.514", "674.014", "674.515", "675.016", "675.517", "676.018", "676.518", "677.019", "677.52", "678.02", "678.521", "679.022", "679.523", "680.023", "680.524", "681.025", "681.525", "682.026", "682.527", "683.027", "683.528", "684.029", "684.529", "685.03", "685.531", "686.031", "686.532", "687.032", "687.533", "688.034", "688.534", "689.035", "689.536", "690.036", "690.537", "691.037", "691.538", "692.038", "692.539", "693.04", "693.54", "694.041", "694.541", "695.042", "695.542", "696.043", "696.544", "697.044", "697.545", "698.045", "698.546", "699.046", "699.547", "700.047", "700.548", "701.049", "701.549", "702.05", "702.55", "703.051", "703.551", "704.052", "704.552", "705.053", "705.554", "706.054", "706.555", "707.055", "707.556", "708.056", "708.557", "709.058", "709.558", "710.059", "710.559", "711.06", "711.561", "712.061", "712.562", "713.062", "713.563", "714.064", "714.564", "715.065", "715.566", "716.066", "716.567", "717.068", "717.568", "718.069", "718.57", "719.07", "719.571", "720.072", "720.572", "721.073", "721.574", "722.074", "722.575", "723.076", "723.577", "724.077", "724.578", "725.079", "725.58", "726.081", "726.581", "727.082", "727.583", "728.084", "728.585", "729.086", "729.586", "730.087", "730.588", "731.089", "731.59", "732.091", "732.592", "733.093", "733.594", "734.095", "734.596", "735.097", "735.598", "736.099", "736.6", "737.101", "737.602", "738.103", "738.604", "739.105", "739.606", "740.107", "740.609", "741.11", "741.611", "742.112", "742.613", "743.114", "743.616", "744.117", "744.618", "745.119", "745.621", "746.122", "746.623", "747.125", "747.626", "748.128", "748.629", "749.13", "749.632", "750.133", "750.635", "751.136", "751.638", "752.139", "752.641", "753.142", "753.644", "754.145", "754.647", "755.149", "755.65", "756.152", "756.654", "757.155", "757.657", "758.159", "758.661", "759.163", "759.664", "760.166", "760.668", "761.17", "761.672", "762.174", "762.676", "763.178", "763.68", "764.182", "764.684", "765.186", "765.688", "766.19", "766.692", "767.194", "767.697", "768.199", "768.701", "769.203", "769.706", "770.208", "770.71", "771.213", "771.715", "772.217", "772.72", "773.222", "773.725", "774.227", "774.73", "775.232", "775.735", "776.238", "776.74", "777.243", "777.746", "778.248", "778.751", "779.254", "779.757", "780.26", "780.763", "781.266", "781.768", "782.271", "782.774", "783.277", "783.781", "784.284", "784.787", "785.29", "785.793", "786.296", "786.799", "787.303", "787.806", "788.309", "788.813", "789.316", "789.82", "790.323", "790.827", "791.33", "791.834", "792.337", "792.841", "793.345", "793.848", "794.352", "794.856", "795.359", "795.863", "796.367", "796.871", "797.375", "797.879", "798.383", "798.887", "799.391", "799.895", "800.399", "800.904", "801.408", "801.912", "802.416", "802.921", "803.425", "803.929", "804.434", "804.938", "805.443", "805.947", "806.452", "806.957", "807.461", "807.966", "808.471", "808.975", "809.48", "809.985", "810.49", "810.995", "811.5", "812.005", "812.51", "813.015", "813.52", "814.026", "814.531", "815.036", "815.541", "816.047", "816.552", "817.057", "817.563", "818.068", "818.574", "819.08", "819.585", "820.091", "820.597", "821.102", "821.608", "822.114", "822.62", "823.126"] }, { "type": "character", "attributes": {}, "value": ["0.029", "20.027", "40.025", "60.026", "80.025", "100.023", "120.022", "140.022", "160.02", "180.019", "200.02", "220.018", "240.017", "260.016", "280.015", "300.014", "320.014", "340.014", "360.012", "380.012", "400.01", "420.009", "440.008", "460.007"] } ] } }, "value": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "duration", "calibration", "cameraType", "integrationTime", "channelTime", "CCD_temperature", "wavelengthTable"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["300327151736257"] }, { "type": "character", "attributes": {}, "value": ["20140327151736"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["Spectrometer"] }, { "type": "character", "attributes": {}, "value": ["t [s]; wavelength [nm]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["475"] }, { "type": "character", "attributes": {}, "value": ["wavelength(x) = 3E-08*x^3 + -7E-05*x^2 + 0.555*x + 296.5"] }, { "type": "character", "attributes": {}, "value": ["DU920P_BU"] }, { "type": "character", "attributes": {}, "value": ["19"] }, { "type": "character", "attributes": {}, "value": ["20"] }, { "type": "character", "attributes": {}, "value": ["-79"] }, { "type": "character", "attributes": {}, "value": ["296.500;297.055;297.610;298.164;298.719;299.273;299.827;300.382;300.936;301.489;302.043;302.597;303.150;303.703;304.256;304.809;305.362;305.915;306.467;307.020;307.572;308.124;308.676;309.228;309.780;310.332;310.883;311.435;311.986;312.537;313.088;313.639;314.189;314.740;315.290;315.841;316.391;316.941;317.491;318.040;318.590;319.139;319.689;320.238;320.787;321.336;321.885;322.433;322.982;323.530;324.079;324.627;325.175;325.723;326.271;326.818;327.366;327.913;328.460;329.007;329.554;330.101;330.648;331.195;331.741;332.287;332.834;333.380;333.926;334.472;335.017;335.563;336.108;336.654;337.199;337.744;338.289;338.834;339.378;339.923;340.467;341.012;341.556;342.100;342.644;343.188;343.731;344.275;344.818;345.362;345.905;346.448;346.991;347.534;348.076;348.619;349.161;349.704;350.246;350.788;351.330;351.872;352.414;352.955;353.497;354.038;354.579;355.120;355.661;356.202;356.743;357.284;357.824;358.364;358.905;359.445;359.985;360.525;361.065;361.604;362.144;362.683;363.223;363.762;364.301;364.840;365.379;365.917;366.456;366.995;367.533;368.071;368.609;369.147;369.685;370.223;370.761;371.298;371.836;372.373;372.910;373.447;373.984;374.521;375.058;375.595;376.131;376.668;377.204;377.740;378.276;378.812;379.348;379.884;380.419;380.955;381.490;382.026;382.561;383.096;383.631;384.166;384.700;385.235;385.770;386.304;386.838;387.372;387.907;388.441;388.974;389.508;390.042;390.575;391.109;391.642;392.175;392.708;393.241;393.774;394.307;394.840;395.372;395.905;396.437;396.969;397.501;398.033;398.565;399.097;399.629;400.160;400.692;401.223;401.755;402.286;402.817;403.348;403.879;404.409;404.940;405.471;406.001;406.531;407.062;407.592;408.122;408.652;409.181;409.711;410.241;410.770;411.300;411.829;412.358;412.887;413.416;413.945;414.474;415.003;415.531;416.060;416.588;417.117;417.645;418.173;418.701;419.229;419.757;420.284;420.812;421.340;421.867;422.394;422.921;423.449;423.976;424.503;425.029;425.556;426.083;426.609;427.136;427.662;428.188;428.714;429.240;429.766;430.292;430.818;431.344;431.869;432.395;432.920;433.445;433.971;434.496;435.021;435.546;436.071;436.595;437.120;437.644;438.169;438.693;439.218;439.742;440.266;440.790;441.314;441.837;442.361;442.885;443.408;443.932;444.455;444.978;445.502;446.025;446.548;447.071;447.593;448.116;448.639;449.161;449.684;450.206;450.728;451.251;451.773;452.295;452.817;453.338;453.860;454.382;454.903;455.425;455.946;456.468;456.989;457.510;458.031;458.552;459.073;459.594;460.114;460.635;461.156;461.676;462.196;462.717;463.237;463.757;464.277;464.797;465.317;465.837;466.356;466.876;467.396;467.915;468.434;468.954;469.473;469.992;470.511;471.030;471.549;472.068;472.586;473.105;473.624;474.142;474.661;475.179;475.697;476.215;476.733;477.251;477.769;478.287;478.805;479.323;479.840;480.358;480.875;481.393;481.910;482.427;482.944;483.461;483.978;484.495;485.012;485.529;486.045;486.562;487.079;487.595;488.111;488.628;489.144;489.660;490.176;490.692;491.208;491.724;492.240;492.755;493.271;493.787;494.302;494.817;495.333;495.848;496.363;496.878;497.393;497.908;498.423;498.938;499.453;499.968;500.482;500.997;501.511;502.026;502.540;503.054;503.568;504.083;504.597;505.111;505.625;506.138;506.652;507.166;507.679;508.193;508.707;509.220;509.733;510.247;510.760;511.273;511.786;512.299;512.812;513.325;513.838;514.351;514.863;515.376;515.889;516.401;516.913;517.426;517.938;518.450;518.963;519.475;519.987;520.499;521.011;521.522;522.034;522.546;523.058;523.569;524.081;524.592;525.104;525.615;526.126;526.637;527.149;527.660;528.171;528.682;529.193;529.704;530.214;530.725;531.236;531.746;532.257;532.767;533.278;533.788;534.298;534.809;535.319;535.829;536.339;536.849;537.359;537.869;538.379;538.889;539.398;539.908;540.418;540.927;541.437;541.946;542.456;542.965;543.474;543.983;544.493;545.002;545.511;546.020;546.529;547.038;547.546;548.055;548.564;549.073;549.581;550.090;550.598;551.107;551.615;552.123;552.632;553.140;553.648;554.156;554.664;555.172;555.680;556.188;556.696;557.204;557.712;558.220;558.727;559.235;559.742;560.250;560.757;561.265;561.772;562.280;562.787;563.294;563.801;564.308;564.815;565.323;565.830;566.336;566.843;567.350;567.857;568.364;568.870;569.377;569.884;570.390;570.897;571.403;571.910;572.416;572.922;573.429;573.935;574.441;574.947;575.453;575.959;576.465;576.971;577.477;577.983;578.489;578.995;579.501;580.006;580.512;581.018;581.523;582.029;582.534;583.040;583.545;584.050;584.556;585.061;585.566;586.071;586.577;587.082;587.587;588.092;588.597;589.102;589.607;590.112;590.616;591.121;591.626;592.131;592.635;593.140;593.645;594.149;594.654;595.158;595.663;596.167;596.672;597.176;597.680;598.185;598.689;599.193;599.697;600.201;600.705;601.209;601.713;602.217;602.721;603.225;603.729;604.233;604.737;605.241;605.744;606.248;606.752;607.255;607.759;608.263;608.766;609.270;609.773;610.277;610.780;611.283;611.787;612.290;612.793;613.297;613.800;614.303;614.806;615.309;615.812;616.316;616.819;617.322;617.825;618.328;618.830;619.333;619.836;620.339;620.842;621.345;621.847;622.350;622.853;623.355;623.858;624.361;624.863;625.366;625.868;626.371;626.873;627.376;627.878;628.381;628.883;629.385;629.888;630.390;630.892;631.395;631.897;632.399;632.901;633.403;633.905;634.408;634.910;635.412;635.914;636.416;636.918;637.420;637.922;638.424;638.925;639.427;639.929;640.431;640.933;641.435;641.936;642.438;642.940;643.442;643.943;644.445;644.947;645.448;645.950;646.451;646.953;647.455;647.956;648.458;648.959;649.461;649.962;650.464;650.965;651.466;651.968;652.469;652.970;653.472;653.973;654.474;654.976;655.477;655.978;656.480;656.981;657.482;657.983;658.484;658.985;659.487;659.988;660.489;660.990;661.491;661.992;662.493;662.994;663.495;663.996;664.497;664.998;665.499;666.000;666.501;667.002;667.503;668.004;668.505;669.006;669.507;670.008;670.509;671.009;671.510;672.011;672.512;673.013;673.514;674.014;674.515;675.016;675.517;676.018;676.518;677.019;677.520;678.020;678.521;679.022;679.523;680.023;680.524;681.025;681.525;682.026;682.527;683.027;683.528;684.029;684.529;685.030;685.531;686.031;686.532;687.032;687.533;688.034;688.534;689.035;689.536;690.036;690.537;691.037;691.538;692.038;692.539;693.040;693.540;694.041;694.541;695.042;695.542;696.043;696.544;697.044;697.545;698.045;698.546;699.046;699.547;700.047;700.548;701.049;701.549;702.050;702.550;703.051;703.551;704.052;704.552;705.053;705.554;706.054;706.555;707.055;707.556;708.056;708.557;709.058;709.558;710.059;710.559;711.060;711.561;712.061;712.562;713.062;713.563;714.064;714.564;715.065;715.566;716.066;716.567;717.068;717.568;718.069;718.570;719.070;719.571;720.072;720.572;721.073;721.574;722.074;722.575;723.076;723.577;724.077;724.578;725.079;725.580;726.081;726.581;727.082;727.583;728.084;728.585;729.086;729.586;730.087;730.588;731.089;731.590;732.091;732.592;733.093;733.594;734.095;734.596;735.097;735.598;736.099;736.600;737.101;737.602;738.103;738.604;739.105;739.606;740.107;740.609;741.110;741.611;742.112;742.613;743.114;743.616;744.117;744.618;745.119;745.621;746.122;746.623;747.125;747.626;748.128;748.629;749.130;749.632;750.133;750.635;751.136;751.638;752.139;752.641;753.142;753.644;754.145;754.647;755.149;755.650;756.152;756.654;757.155;757.657;758.159;758.661;759.163;759.664;760.166;760.668;761.170;761.672;762.174;762.676;763.178;763.680;764.182;764.684;765.186;765.688;766.190;766.692;767.194;767.697;768.199;768.701;769.203;769.706;770.208;770.710;771.213;771.715;772.217;772.720;773.222;773.725;774.227;774.730;775.232;775.735;776.238;776.740;777.243;777.746;778.248;778.751;779.254;779.757;780.260;780.763;781.266;781.768;782.271;782.774;783.277;783.781;784.284;784.787;785.290;785.793;786.296;786.799;787.303;787.806;788.309;788.813;789.316;789.820;790.323;790.827;791.330;791.834;792.337;792.841;793.345;793.848;794.352;794.856;795.359;795.863;796.367;796.871;797.375;797.879;798.383;798.887;799.391;799.895;800.399;800.904;801.408;801.912;802.416;802.921;803.425;803.929;804.434;804.938;805.443;805.947;806.452;806.957;807.461;807.966;808.471;808.975;809.480;809.985;810.490;810.995;811.500;812.005;812.510;813.015;813.520;814.026;814.531;815.036;815.541;816.047;816.552;817.057;817.563;818.068;818.574;819.080;819.585;820.091;820.597;821.102;821.608;822.114;822.620;823.126"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Spectrum"] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Spectrum", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/analyse_SAR.TL.md0000644000176200001440000012104414762554470022172 0ustar liggesusers# Test examples { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "LnLxTnTx.table", "rejection.criteria"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "RC.Status"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "character", "attributes": {}, "value": ["OK", "OK"] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Name", "Repeated", "Dose", "LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "net_LnLx", "net_LnLx.Error", "net_TnTx", "net_TnTx.Error", "LxTx", "LxTx.Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["Natural", "R1", "R2", "R3", "R4", "R5", "R6", "Natural", "R1", "R2", "R3", "R4", "R5", "R6"] }, { "type": "logical", "attributes": {}, "value": [false, false, false, false, false, false, false, false, false, false, false, false, false, false] }, { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7] }, { "type": "double", "attributes": {}, "value": [582, 2325, 6078, 10815, 16099, 52, 6046, 582, 2325, 6078, 10815, 16099, 52, 6046] }, { "type": "double", "attributes": {}, "value": [63, 65, 62, 77, 66, 51, 49, 63, 65, 62, 77, 66, 51, 49] }, { "type": "double", "attributes": {}, "value": [2224, 2508, 2502, 2637, 2687, 2519, 2612, 2224, 2508, 2502, 2637, 2687, 2519, 2612] }, { "type": "double", "attributes": {}, "value": [80, 55, 55, 37, 61, 69, 54, 80, 55, 55, 37, 61, 69, 54] }, { "type": "double", "attributes": {}, "value": [519, 2260, 6016, 10738, 16033, 1, 5997, 519, 2260, 6016, 10738, 16033, 1, 5997] }, { "type": "double", "attributes": {}, "value": [99.02862112, 245.85558854, 480.2851737, 3944.37019033, 858.86689566, 0.2495671, 432.70605783, 99.02862112, 245.85558854, 480.2851737, 3944.37019033, 858.86689566, 0.2495671, 432.70605783] }, { "type": "double", "attributes": {}, "value": [2144, 2453, 2447, 2600, 2626, 2450, 2558, 2144, 2453, 2447, 2600, 2626, 2450, 2558] }, { "type": "double", "attributes": {}, "value": [322.15784951, 315.36962441, 220.21876464, 1987.54338496, 152.20183667, 451.9334645, 167.47955058, 322.15784951, 315.36962441, 220.21876464, 1987.54338496, 152.20183667, 451.9334645, 167.47955058] }, { "type": "double", "attributes": {}, "value": [0.2420709, 0.92132083, 2.45852064, 4.13, 6.10548363, 0.00040816, 2.3444097, 0.2420709, 0.92132083, 2.45852064, 4.13, 6.10548363, 0.00040816, 2.3444097] }, { "type": "double", "attributes": {}, "value": [0.08256234, 0.21867599, 0.41753067, 4.67420168, 0.68093401, 0.00017715, 0.32265314, 0.08256234, 0.21867599, 0.41753067, 4.67420168, 0.68093401, 0.00017715, 0.32265314] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["criterion", "value", "threshold", "status"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["recycling ratio", "recuperation rate", "recycling ratio", "recuperation rate"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA", "NA", "NA"] }, { "type": "character", "attributes": {}, "value": ["± 0.1", "0.1", "± 0.1", "0.1"] }, { "type": "character", "attributes": {}, "value": [null, null, null, null] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_SAR.TL"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["info", "info"] } }, "value": [ { "type": "language", "attributes": { "srcref": { "type": "integer", "attributes": { "srcfile": { "type": "environment", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["srcfilecopy", "srcfile"] } }, "value": {} }, "class": { "type": "character", "attributes": {}, "value": ["srcref"] } }, "value": [136, 7, 147, 7, 7, 7, 136, 147] } }, "value": ["analyse_SAR.TL(object = o, object.background = object.background, ", " signal.integral.min = signal.integral.min, signal.integral.max = signal.integral.max, ", " integral_input = integral_input, sequence.structure = sequence.structure, ", " rejection.criteria = rejection.criteria, dose.points = dose.points, ", " log = log, ...)"] }, { "type": "language", "attributes": { "srcref": { "type": "integer", "attributes": { "srcfile": { "type": "environment", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["srcfilecopy", "srcfile"] } }, "value": {} }, "class": { "type": "character", "attributes": {}, "value": ["srcref"] } }, "value": [136, 7, 147, 7, 7, 7, 136, 147] } }, "value": ["analyse_SAR.TL(object = o, object.background = object.background, ", " signal.integral.min = signal.integral.min, signal.integral.max = signal.integral.max, ", " integral_input = integral_input, sequence.structure = sequence.structure, ", " rejection.criteria = rejection.criteria, dose.points = dose.points, ", " log = log, ...)"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "LnLxTnTx.table", "rejection.criteria"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "RC.Status"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "integer", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": ["NA"] }, { "type": "character", "attributes": {}, "value": ["OK"] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Name", "Repeated", "Dose", "LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "net_LnLx", "net_LnLx.Error", "net_TnTx", "net_TnTx.Error", "LxTx", "LxTx.Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["Natural", "R1", "R2", "R3", "R4", "R5", "R6"] }, { "type": "logical", "attributes": {}, "value": [false, false, false, false, false, false, false] }, { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, { "type": "double", "attributes": {}, "value": [143976, 46982, 116969, 202244, 288938, 1072, 104093] }, { "type": "double", "attributes": {}, "value": [1264, 945, 1448, 1930, 2688, 906, 1573] }, { "type": "double", "attributes": {}, "value": [46845, 46693, 48323, 48617, 47368, 44496, 44685] }, { "type": "double", "attributes": {}, "value": [970, 960, 1145, 1312, 1490, 1040, 1127] }, { "type": "double", "attributes": {}, "value": [142712, 46037, 115521, 200314, 286250, 166, 102520] }, { "type": "double", "attributes": {}, "value": [23471.76514974, 516.71547437, 17093.06753332, 45355.24022785, 90210.69966717, 17.36079828, 20554.16013632] }, { "type": "double", "attributes": {}, "value": [45875, 45733, 47178, 47305, 45878, 43456, 43558] }, { "type": "double", "attributes": {}, "value": [9831.88240676, 505.28303788, 8827.98669696, 15756.02600879, 26083.14939525, 3959.18877496, 12188.88207632] }, { "type": "double", "attributes": {}, "value": [3.11088828, 1.00664728, 2.44862012, 4.23452066, 6.23937399, 0.00381996, 2.35364342] }, { "type": "double", "attributes": {}, "value": [1.17836846, 0.02242051, 0.82049797, 2.36918841, 5.51360616, 0.00074753, 1.13050283] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["criterion", "value", "threshold", "status"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["recycling ratio", "recuperation rate"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "character", "attributes": {}, "value": ["± 0.1", "0.1"] }, { "type": "character", "attributes": {}, "value": [null, null] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_SAR.TL"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["info"] } }, "value": [ { "type": "language", "attributes": { "srcref": { "type": "integer", "attributes": { "srcfile": { "type": "environment", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["srcfilecopy", "srcfile"] } }, "value": {} }, "class": { "type": "character", "attributes": {}, "value": ["srcref"] } }, "value": [136, 7, 147, 7, 7, 7, 136, 147] } }, "value": ["analyse_SAR.TL(object = o, object.background = object.background, ", " signal.integral.min = signal.integral.min, signal.integral.max = signal.integral.max, ", " integral_input = integral_input, sequence.structure = sequence.structure, ", " rejection.criteria = rejection.criteria, dose.points = dose.points, ", " log = log, ...)"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "LnLxTnTx.table", "rejection.criteria"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "RC.Status"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "integer", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "character", "attributes": {}, "value": ["FAILED"] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Name", "Repeated", "Dose", "LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "net_LnLx", "net_LnLx.Error", "net_TnTx", "net_TnTx.Error", "LxTx", "LxTx.Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["Natural", "R1", "R2", "R3", "R4", "R0", "R6"] }, { "type": "logical", "attributes": {}, "value": [false, false, false, false, false, false, true] }, { "type": "double", "attributes": {}, "value": [0, 136, 317, 544, 815, 0, 317] }, { "type": "double", "attributes": {}, "value": [23, 75, 130, 148, 196, 27, 131] }, { "type": "logical", "attributes": {}, "value": [null, null, null, null, null, null, null] }, { "type": "double", "attributes": {}, "value": [99, 98, 97, 85, 80, 76, 90] }, { "type": "logical", "attributes": {}, "value": [null, null, null, null, null, null, null] }, { "type": "logical", "attributes": {}, "value": [null, null, null, null, null, null, null] }, { "type": "logical", "attributes": {}, "value": [null, null, null, null, null, null, null] }, { "type": "logical", "attributes": {}, "value": [null, null, null, null, null, null, null] }, { "type": "logical", "attributes": {}, "value": [null, null, null, null, null, null, null] }, { "type": "double", "attributes": {}, "value": [0.23232323, 0.76530612, 1.34020619, 1.74117647, 2.45, 0.35526316, 1.45555556] }, { "type": "logical", "attributes": {}, "value": [null, null, null, null, null, null, null] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["criterion", "value", "threshold", "status"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] } }, "value": [ { "type": "character", "attributes": {}, "value": ["R6/R2", "recuperation rate"] }, { "type": "double", "attributes": {}, "value": [1.08606838, 1.5292] }, { "type": "character", "attributes": {}, "value": ["± 0.1", "0.1"] }, { "type": "character", "attributes": {}, "value": ["OK", "FAILED"] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_SAR.TL"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["info"] } }, "value": [ { "type": "language", "attributes": { "srcref": { "type": "integer", "attributes": { "srcfile": { "type": "environment", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["srcfilecopy", "srcfile"] } }, "value": {} }, "class": { "type": "character", "attributes": {}, "value": ["srcref"] } }, "value": [6, 3, 6, 30, 3, 30, 6, 6] } }, "value": ["analyse_SAR.TL(object, signal.integral.min = 2, signal.integral.max = 3, ", " sequence.structure = c(\"SIGNAL\", \"EXCLUDE\"))"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } # regression tests { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "LnLxTnTx.table", "rejection.criteria"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "RC.Status"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "integer", "attributes": {}, "value": ["NA"] }, { "type": "double", "attributes": {}, "value": [29.59178565] }, { "type": "character", "attributes": {}, "value": ["OK"] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Name", "Repeated", "Dose", "LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "net_LnLx", "net_LnLx.Error", "net_TnTx", "net_TnTx.Error", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] } }, "value": [ { "type": "character", "attributes": {}, "value": ["Natural", "R1", "R2", "R3", "R4", "R0", "R6"] }, { "type": "logical", "attributes": {}, "value": [false, false, false, false, false, false, true] }, { "type": "double", "attributes": {}, "value": [0, 136, 317, 544, 815, 0, 317] }, { "type": "double", "attributes": {}, "value": [23, 75, 130, 148, 196, 27, 131] }, { "type": "double", "attributes": {}, "value": [25, 16, 14, 17, 18, 19, 14] }, { "type": "double", "attributes": {}, "value": [99, 98, 97, 85, 80, 76, 90] }, { "type": "double", "attributes": {}, "value": [13, 13, 19, 16, 11, 8, 17] }, { "type": "double", "attributes": {}, "value": [-2, 59, 116, 131, 178, 8, 117] }, { "type": "double", "attributes": {}, "value": [0.67882251, 7.82236877, 29.29442379, 5.44888167, 48.94750274, 3.27502088, 17.72817716] }, { "type": "double", "attributes": {}, "value": [86, 85, 78, 69, 69, 68, 73] }, { "type": "double", "attributes": {}, "value": [56.13339986, 13.87017148, 14.51429709, 3.04939799, 31.04841594, 66.11448404, 9.10919912] }, { "type": "double", "attributes": {}, "value": [-0.02325581, 0.69411765, 1.48717949, 1.89855072, 2.57971014, 0.11764706, 1.60273973] }, { "type": "double", "attributes": {}, "value": [0.00728611, 0.20529294, 0.65230498, 0.16287418, 1.87019444, 0.16254699, 0.44284729] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["criterion", "value", "threshold", "status"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] } }, "value": [ { "type": "character", "attributes": {}, "value": ["R6/R2", "recuperation rate"] }, { "type": "double", "attributes": {}, "value": [1.0777043, -5.0588] }, { "type": "character", "attributes": {}, "value": ["± 0.1", "0.1"] }, { "type": "character", "attributes": {}, "value": ["OK", "OK"] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_SAR.TL"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["info"] } }, "value": [ { "type": "language", "attributes": { "srcref": { "type": "integer", "attributes": { "srcfile": { "type": "environment", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["srcfilecopy", "srcfile"] } }, "value": {} }, "class": { "type": "character", "attributes": {}, "value": ["srcref"] } }, "value": [6, 3, 6, 30, 3, 30, 6, 6] } }, "value": ["analyse_SAR.TL(object, sequence.structure = c(\"SIGNAL\", \"BACKGROUND\"), ", " signal.integral.min = 2, signal.integral.max = 3)"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "LnLxTnTx.table", "rejection.criteria"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["temp.GC", "RC.Status"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "logical", "attributes": {}, "value": [null] }, { "type": "character", "attributes": {}, "value": ["FAILED"] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Name", "Repeated", "Dose", "LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "net_LnLx", "net_LnLx.Error", "net_TnTx", "net_TnTx.Error", "LxTx", "LxTx.Error"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] } }, "value": [ { "type": "character", "attributes": {}, "value": ["Natural", "R1", "R2", "R3", "R4", "R5", "R6"] }, { "type": "logical", "attributes": {}, "value": [false, true, true, true, true, true, true] }, { "type": "double", "attributes": {}, "value": [2, 2, 2, 2, 2, 2, 2] }, { "type": "double", "attributes": {}, "value": [143976, 46982, 116969, 202244, 288938, 1072, 104093] }, { "type": "double", "attributes": {}, "value": [1264, 945, 1448, 1930, 2688, 906, 1573] }, { "type": "double", "attributes": {}, "value": [46845, 46693, 48323, 48617, 47368, 44496, 44685] }, { "type": "double", "attributes": {}, "value": [970, 960, 1145, 1312, 1490, 1040, 1127] }, { "type": "double", "attributes": {}, "value": [142712, 46037, 115521, 200314, 286250, 166, 102520] }, { "type": "double", "attributes": {}, "value": [23471.76514974, 516.71547437, 17093.06753332, 45355.24022785, 90210.69966717, 17.36079828, 20554.16013632] }, { "type": "double", "attributes": {}, "value": [45875, 45733, 47178, 47305, 45878, 43456, 43558] }, { "type": "double", "attributes": {}, "value": [9831.88240676, 505.28303788, 8827.98669696, 15756.02600879, 26083.14939525, 3959.18877496, 12188.88207632] }, { "type": "double", "attributes": {}, "value": [3.11088828, 1.00664728, 2.44862012, 4.23452066, 6.23937399, 0.00381996, 2.35364342] }, { "type": "double", "attributes": {}, "value": [1.17836846, 0.02242051, 0.82049797, 2.36918841, 5.51360616, 0.00074753, 1.13050283] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["criterion", "value", "threshold", "status"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["R1/Natural", "R2/Natural", "R3/Natural", "R4/Natural", "R5/Natural", "R6/Natural", "recuperation rate"] }, { "type": "double", "attributes": {}, "value": [0.32358837, 0.78711284, 1.36119342, 2.00565672, 0.00122793, 0.75658243, "NA"] }, { "type": "character", "attributes": {}, "value": ["± 0.1", "± 0.1", "± 0.1", "± 0.1", "± 0.1", "± 0.1", "0.1"] }, { "type": "character", "attributes": {}, "value": ["FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", null] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_SAR.TL"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["info"] } }, "value": [ { "type": "language", "attributes": { "srcref": { "type": "integer", "attributes": { "srcfile": { "type": "environment", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["srcfilecopy", "srcfile"] } }, "value": {} }, "class": { "type": "character", "attributes": {}, "value": ["srcref"] } }, "value": [6, 3, 6, 30, 3, 30, 6, 6] } }, "value": ["analyse_SAR.TL(object, dose.points = 2, signal.integral.min = 210, ", " signal.integral.max = 220, sequence.structure = c(\"SIGNAL\", ", " \"BACKGROUND\"))"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/calc_CommonDose.md0000644000176200001440000002513314762554470022542 0ustar liggesusers# snapshot tests { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "data", "args", "call"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["de", "de_err"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [65.94015794] }, { "type": "double", "attributes": {}, "value": [6.35835471] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ED", "ED_Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [19.7, 26.2, 31.48, 31.95, 36.17, 37.05, 42.58, 47.23, 47.61, 48.1, 48.11, 50.73, 51.51, 52.06, 52.28, 53.6, 53.96, 55.54, 56.84, 58.97, 61.14, 61.58, 63.24, 64.5, 64.58, 64.76, 65.57, 66.43, 66.8, 66.84, 70.68, 71.46, 71.6, 74.12, 74.73, 75.67, 75.75, 76.21, 76.92, 77.5, 79.01, 79.27, 79.78, 82.86, 83.19, 83.87, 85.26, 86.36, 86.58, 88.7, 89.1, 89.52, 89.53, 93.27, 97.77, 98.64, 102.63, 103.57, 106.23, 107.98, 111.46, 119.06] }, { "type": "double", "attributes": {}, "value": [2.14, 2.04, 2.34, 2.34, 2.95, 3.15, 8.22, 3.23, 4.43, 4.43, 3.14, 9.64, 6.76, 5.6, 10.27, 4.69, 3.78, 4.37, 6.87, 4.63, 4.05, 4.76, 5.58, 8.11, 6.91, 7.78, 12.4, 5.82, 8.61, 10.33, 8.87, 9.59, 10.32, 6.33, 10.16, 10.29, 12.47, 5.75, 7.89, 8.78, 7.97, 7.54, 5.4, 10.36, 11.04, 9.9, 9.84, 12.34, 9.5, 14.15, 15.99, 9.74, 10.99, 8.17, 11.92, 6.83, 7.87, 9.18, 21.23, 14.85, 11.63, 14.88] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["log", "sigmab"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [0.75] } ] }, { "type": "language", "attributes": { "srcref": { "type": "integer", "attributes": { "srcfile": { "type": "environment", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["srcfilecopy", "srcfile"] } }, "value": {} }, "class": { "type": "character", "attributes": {}, "value": ["srcref"] } }, "value": [7, 3, 7, 30, 3, 30, 7, 7] } }, "value": ["calc_CommonDose(ExampleData.DeValues$CA1, sigmab = 0.75, plot = FALSE, ", " verbose = FALSE)"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_CommonDose"] }, "info": { "type": "list", "attributes": {}, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "data", "args", "call"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["de", "de_err"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [48.04649762] }, { "type": "double", "attributes": {}, "value": [0.66218646] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ED", "ED_Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [19.7, 26.2, 31.48, 31.95, 36.17, 37.05, 42.58, 47.23, 47.61, 48.1, 48.11, 50.73, 51.51, 52.06, 52.28, 53.6, 53.96, 55.54, 56.84, 58.97, 61.14, 61.58, 63.24, 64.5, 64.58, 64.76, 65.57, 66.43, 66.8, 66.84, 70.68, 71.46, 71.6, 74.12, 74.73, 75.67, 75.75, 76.21, 76.92, 77.5, 79.01, 79.27, 79.78, 82.86, 83.19, 83.87, 85.26, 86.36, 86.58, 88.7, 89.1, 89.52, 89.53, 93.27, 97.77, 98.64, 102.63, 103.57, 106.23, 107.98, 111.46, 119.06] }, { "type": "double", "attributes": {}, "value": [2.14, 2.04, 2.34, 2.34, 2.95, 3.15, 8.22, 3.23, 4.43, 4.43, 3.14, 9.64, 6.76, 5.6, 10.27, 4.69, 3.78, 4.37, 6.87, 4.63, 4.05, 4.76, 5.58, 8.11, 6.91, 7.78, 12.4, 5.82, 8.61, 10.33, 8.87, 9.59, 10.32, 6.33, 10.16, 10.29, 12.47, 5.75, 7.89, 8.78, 7.97, 7.54, 5.4, 10.36, 11.04, 9.9, 9.84, 12.34, 9.5, 14.15, 15.99, 9.74, 10.99, 8.17, 11.92, 6.83, 7.87, 9.18, 21.23, 14.85, 11.63, 14.88] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["log", "sigmab"] } }, "value": [ { "type": "logical", "attributes": {}, "value": [false] }, { "type": "double", "attributes": {}, "value": [0.25] } ] }, { "type": "language", "attributes": { "srcref": { "type": "integer", "attributes": { "srcfile": { "type": "environment", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["srcfilecopy", "srcfile"] } }, "value": {} }, "class": { "type": "character", "attributes": {}, "value": ["srcref"] } }, "value": [7, 3, 7, 30, 3, 30, 7, 7] } }, "value": ["calc_CommonDose(ExampleData.DeValues$CA1, sigmab = 0.25, log = FALSE, ", " plot = FALSE, verbose = FALSE)"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_CommonDose"] }, "info": { "type": "list", "attributes": {}, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/calc_Statistics.md0000644000176200001440000002211214762554470022623 0ustar liggesusers# snapshot tests { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["weighted", "unweighted", "MCM"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["n", "mean", "median", "sd.abs", "sd.rel", "se.abs", "se.rel", "skewness", "kurtosis"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [25] }, { "type": "double", "attributes": {}, "value": [2896.03575033] }, { "type": "double", "attributes": {}, "value": [2884.46] }, { "type": "double", "attributes": {}, "value": [240.22283329] }, { "type": "double", "attributes": {}, "value": [8.29488494] }, { "type": "double", "attributes": {}, "value": [48.04456666] }, { "type": "double", "attributes": {}, "value": [1.65897699] }, { "type": "double", "attributes": {}, "value": [1.3420176] }, { "type": "double", "attributes": {}, "value": [4.38791306] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["n", "mean", "median", "sd.abs", "sd.rel", "se.abs", "se.rel", "skewness", "kurtosis"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [25] }, { "type": "double", "attributes": {}, "value": [2950.818] }, { "type": "double", "attributes": {}, "value": [2884.46] }, { "type": "double", "attributes": {}, "value": [281.64331703] }, { "type": "double", "attributes": {}, "value": [9.54458449] }, { "type": "double", "attributes": {}, "value": [56.32866341] }, { "type": "double", "attributes": {}, "value": [1.9089169] }, { "type": "double", "attributes": {}, "value": [1.3420176] }, { "type": "double", "attributes": {}, "value": [4.38791306] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["n", "mean", "median", "sd.abs", "sd.rel", "se.abs", "se.rel", "skewness", "kurtosis"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [25] }, { "type": "double", "attributes": {}, "value": [2950.99163849] }, { "type": "double", "attributes": {}, "value": [2885.62163499] }, { "type": "double", "attributes": {}, "value": [295.07370778] }, { "type": "double", "attributes": {}, "value": [9.99913737] }, { "type": "double", "attributes": {}, "value": [59.01474156] }, { "type": "double", "attributes": {}, "value": [1.99982747] }, { "type": "double", "attributes": {}, "value": [1.28608195] }, { "type": "double", "attributes": {}, "value": [4.75709665] } ] } ] } --- { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["weighted", "unweighted", "MCM"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["n", "mean", "median", "sd.abs", "sd.rel", "se.abs", "se.rel", "skewness", "kurtosis"] } }, "value": [ { "type": "double", "attributes": {}, "value": [25] }, { "type": "double", "attributes": {}, "value": [2896.04] }, { "type": "double", "attributes": {}, "value": [2884.46] }, { "type": "double", "attributes": {}, "value": [240.22] }, { "type": "double", "attributes": {}, "value": [8.29] }, { "type": "double", "attributes": {}, "value": [48.04] }, { "type": "double", "attributes": {}, "value": [1.66] }, { "type": "double", "attributes": {}, "value": [1.34] }, { "type": "double", "attributes": {}, "value": [4.39] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["n", "mean", "median", "sd.abs", "sd.rel", "se.abs", "se.rel", "skewness", "kurtosis"] } }, "value": [ { "type": "double", "attributes": {}, "value": [25] }, { "type": "double", "attributes": {}, "value": [2950.82] }, { "type": "double", "attributes": {}, "value": [2884.46] }, { "type": "double", "attributes": {}, "value": [281.64] }, { "type": "double", "attributes": {}, "value": [9.54] }, { "type": "double", "attributes": {}, "value": [56.33] }, { "type": "double", "attributes": {}, "value": [1.91] }, { "type": "double", "attributes": {}, "value": [1.34] }, { "type": "double", "attributes": {}, "value": [4.39] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["n", "mean", "median", "sd.abs", "sd.rel", "se.abs", "se.rel", "skewness", "kurtosis"] } }, "value": [ { "type": "double", "attributes": {}, "value": [25] }, { "type": "double", "attributes": {}, "value": [2950.32] }, { "type": "double", "attributes": {}, "value": [2885.34] }, { "type": "double", "attributes": {}, "value": [295.7] }, { "type": "double", "attributes": {}, "value": [10.02] }, { "type": "double", "attributes": {}, "value": [59.14] }, { "type": "double", "attributes": {}, "value": [2] }, { "type": "double", "attributes": {}, "value": [1.28] }, { "type": "double", "attributes": {}, "value": [4.7] } ] } ] } Luminescence/tests/testthat/_snaps/analyse_SAR.CWOSL.md0000644000176200001440000005315714762554470022553 0ustar liggesusers# tests class elements { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "LnLxTnTx.table", "rejection.criteria"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "D01", "D01.ERROR", "D02", "D02.ERROR", "Dc", "n_N", "De.MC", "De.plot", "Fit", "HPDI68_L", "HPDI68_U", "HPDI95_L", "HPDI95_U", "RC.Status", "signal.range", "background.range", "signal.range.Tx", "background.range.Tx", "ALQ", "POS", "GRAIN"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1668.25051746] }, { "type": "double", "attributes": {}, "value": [47.4271594] }, { "type": "double", "attributes": {}, "value": [1982.75659674] }, { "type": "double", "attributes": {}, "value": [93.51781948] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "double", "attributes": {}, "value": [0.48546963] }, { "type": "double", "attributes": {}, "value": [1674.83051133] }, { "type": "double", "attributes": {}, "value": [1668.25051746] }, { "type": "character", "attributes": {}, "value": ["EXP"] }, { "type": "double", "attributes": {}, "value": [1622.73102714] }, { "type": "double", "attributes": {}, "value": [1726.35370158] }, { "type": "double", "attributes": {}, "value": [1580.77337983] }, { "type": "double", "attributes": {}, "value": [1770.85423661] }, { "type": "character", "attributes": {}, "value": ["OK"] }, { "type": "character", "attributes": {}, "value": ["1 : 2"] }, { "type": "character", "attributes": {}, "value": ["900 : 1000"] }, { "type": "character", "attributes": {}, "value": ["NA : NA"] }, { "type": "character", "attributes": {}, "value": ["NA : NA"] }, { "type": "double", "attributes": {}, "value": [1] }, { "type": "integer", "attributes": {}, "value": [1] }, { "type": "integer", "attributes": {}, "value": [0] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Name", "Repeated", "Dose", "LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error", "LxTx", "LxTx.Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["Natural", "R1", "R2", "R3", "R4", "R5", "R0"] }, { "type": "logical", "attributes": {}, "value": [false, false, false, false, false, true, false] }, { "type": "double", "attributes": {}, "value": [0, 450, 1050, 2000, 2550, 450, 0] }, { "type": "double", "attributes": {}, "value": [20391, 7591, 15150, 23700, 31094, 9376, 192] }, { "type": "double", "attributes": {}, "value": [60.15841584, 65.7029703, 96.17821782, 118.4950495, 155.92079208, 122.37623762, 94.3960396] }, { "type": "double", "attributes": {}, "value": [4771, 4977, 4960, 5064, 5715, 5860, 6107] }, { "type": "double", "attributes": {}, "value": [73.5049505, 81.56435644, 101.92079208, 121.06930693, 145.84158416, 127.6039604, 117.64356436] }, { "type": "double", "attributes": {}, "value": [20330.84158416, 7525.2970297, 15053.82178218, 23581.5049505, 30938.07920792, 9253.62376238, 97.6039604] }, { "type": "double", "attributes": {}, "value": [143.03414718, 87.39498432, 123.18401629, 154.46827844, 176.39563676, 97.54911666, 14.86509288] }, { "type": "double", "attributes": {}, "value": [4697.4950495, 4895.43564356, 4858.07920792, 4942.93069307, 5569.15841584, 5732.3960396, 5989.35643564] }, { "type": "double", "attributes": {}, "value": [69.24881953, 71.06915956, 71.66840482, 72.07167521, 75.88225924, 77.37975808, 78.87190162] }, { "type": "double", "attributes": {}, "value": [4.32801767, 1.53720681, 3.09871888, 4.77075371, 5.55525214, 1.61426805, 0.01629624] }, { "type": "double", "attributes": {}, "value": [0.07069549, 0.02857837, 0.0522751, 0.07625841, 0.08205253, 0.02764795, 0.00249118] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Criteria", "Value", "Threshold", "Status"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["Recycling ratio (R5/R1)", "Recuperation rate (Natural) 1", "Testdose error", "Palaeodose error", "De > max. dose point"] }, { "type": "double", "attributes": {}, "value": [1.0501, 0.0038, 0.01474165, 0.02843, 1668.25051746] }, { "type": "double", "attributes": {}, "value": [0.1, 0.1, 0.1, 0.1, 2550] }, { "type": "character", "attributes": {}, "value": ["OK", "OK", "OK", "OK", "OK"] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_SAR.CWOSL"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "LnLxTnTx.table", "rejection.criteria"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["De", "De.Error", "D01", "D01.ERROR", "D02", "D02.ERROR", "Dc", "n_N", "De.MC", "De.plot", "Fit", "HPDI68_L", "HPDI68_U", "HPDI95_L", "HPDI95_U", "RC.Status", "signal.range", "background.range", "signal.range.Tx", "background.range.Tx", "ALQ", "POS", "GRAIN"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1768.62308496, 1660.6965308] }, { "type": "double", "attributes": {}, "value": [36.70200559, 44.3495029] }, { "type": "logical", "attributes": {}, "value": [null, null] }, { "type": "logical", "attributes": {}, "value": [null, null] }, { "type": "logical", "attributes": {}, "value": [null, null] }, { "type": "logical", "attributes": {}, "value": [null, null] }, { "type": "logical", "attributes": {}, "value": [null, null] }, { "type": "double", "attributes": {}, "value": [0.48705666, 0.43085924] }, { "type": "double", "attributes": {}, "value": [1770.23018623, 1669.32980118] }, { "type": "double", "attributes": {}, "value": [1768.62308496, 1660.6965308] }, { "type": "character", "attributes": {}, "value": ["LIN", "LIN"] }, { "type": "double", "attributes": {}, "value": [1732.81368584, 1629.62032513] }, { "type": "double", "attributes": {}, "value": [1810.93110784, 1719.09131534] }, { "type": "double", "attributes": {}, "value": [1694.00062711, 1565.71247498] }, { "type": "double", "attributes": {}, "value": [1844.33981662, 1752.32339741] }, { "type": "character", "attributes": {}, "value": ["OK", "OK"] }, { "type": "character", "attributes": {}, "value": ["1 : 2", "1 : 2"] }, { "type": "character", "attributes": {}, "value": ["900 : 1000", "900 : 1000"] }, { "type": "character", "attributes": {}, "value": ["NA : NA", "NA : NA"] }, { "type": "character", "attributes": {}, "value": ["NA : NA", "NA : NA"] }, { "type": "integer", "attributes": {}, "value": [1, 2] }, { "type": "integer", "attributes": {}, "value": [1, 2] }, { "type": "integer", "attributes": {}, "value": [0, 0] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Name", "Repeated", "Dose", "LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error", "LxTx", "LxTx.Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["Natural", "R1", "R2", "R3", "R4", "R5", "R0", "Natural", "R1", "R2", "R3", "R4", "R5", "R0"] }, { "type": "logical", "attributes": {}, "value": [false, false, false, false, false, true, false, false, false, false, false, false, true, false] }, { "type": "double", "attributes": {}, "value": [0, 450, 1050, 2000, 2550, 450, 0, 0, 450, 1050, 2000, 2550, 450, 0] }, { "type": "double", "attributes": {}, "value": [20391, 7591, 15150, 23700, 31094, 9376, 192, 10693, 3987, 7766, 11730, 15009, 4445, 89] }, { "type": "double", "attributes": {}, "value": [60.15841584, 65.7029703, 96.17821782, 118.4950495, 155.92079208, 122.37623762, 94.3960396, 30.95049505, 31.74257426, 42.61386139, 53.68316832, 69.10891089, 52.75247525, 41.64356436] }, { "type": "double", "attributes": {}, "value": [4771, 4977, 4960, 5064, 5715, 5860, 6107, 2738, 2602, 2751, 2620, 2785, 2860, 2969] }, { "type": "double", "attributes": {}, "value": [73.5049505, 81.56435644, 101.92079208, 121.06930693, 145.84158416, 127.6039604, 117.64356436, 32.53465347, 33.12871287, 44.95049505, 50.03960396, 62.57425743, 52.93069307, 45.88118812] }, { "type": "double", "attributes": {}, "value": [20330.84158416, 7525.2970297, 15053.82178218, 23581.5049505, 30938.07920792, 9253.62376238, 97.6039604, 10662.04950495, 3955.25742574, 7723.38613861, 11676.31683168, 14939.89108911, 4392.24752475, 47.35643564] }, { "type": "double", "attributes": {}, "value": [143.03414718, 87.39498432, 123.18401629, 154.46827844, 176.39563676, 97.54911666, 14.86509288, 103.68088605, 63.97455036, 88.24156552, 108.40852033, 122.74057191, 66.8161548, 10.63681705] }, { "type": "double", "attributes": {}, "value": [4697.4950495, 4895.43564356, 4858.07920792, 4942.93069307, 5569.15841584, 5732.3960396, 5989.35643564, 2705.46534653, 2568.87128713, 2706.04950495, 2569.96039604, 2722.42574257, 2807.06930693, 2923.11881188] }, { "type": "double", "attributes": {}, "value": [69.24881953, 71.06915956, 71.66840482, 72.07167521, 75.88225924, 77.37975808, 78.87190162, 52.87145759, 51.57060047, 53.11637252, 51.88217561, 52.86735235, 53.7204695, 54.90405407] }, { "type": "double", "attributes": {}, "value": [4.32801767, 1.53720681, 3.09871888, 4.77075371, 5.55525214, 1.61426805, 0.01629624, 3.94092998, 1.53968688, 2.85411857, 4.54338396, 5.48771298, 1.56470933, 0.01620065] }, { "type": "double", "attributes": {}, "value": [0.07069549, 0.02857837, 0.0522751, 0.07625841, 0.08205253, 0.02764795, 0.00249118, 0.08602336, 0.03969377, 0.06482206, 0.10095661, 0.11571167, 0.03825259, 0.00365156] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Criteria", "Value", "Threshold", "Status"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["Recycling ratio (R5/R1)", "Recuperation rate (Natural) 1", "Testdose error", "Palaeodose error", "De > max. dose point", "Recycling ratio (R5/R1)", "Recuperation rate (Natural) 1", "Testdose error", "Palaeodose error", "De > max. dose point"] }, { "type": "double", "attributes": {}, "value": [1.0501, 0.0038, 0.01474165, 0.02075, 1768.62308496, 1.0163, 0.0041, 0.01954246, 0.02671, 1660.6965308] }, { "type": "double", "attributes": {}, "value": [0.1, 0.1, 0.1, 0.1, 2550, 0.1, 0.1, 0.1, 0.1, 2550] }, { "type": "character", "attributes": {}, "value": ["OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK"] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["analyse_SAR.CWOSL"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/calc_AliquotSize.md0000644000176200001440000100621014762554470022744 0ustar liggesusers# snapshot tests { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["grain.size", "sample.diameter", "packing.density", "n.grains", "grains.counted"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [115] }, { "type": "double", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [0.65] }, { "type": "double", "attributes": {}, "value": [49] }, { "type": "logical", "attributes": {}, "value": [null] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["estimates", "statistics", "kde", "t.test", "quantile"] } }, "value": [ { "type": "double", "attributes": {}, "value": [53.3650765, 68.87726349, 37.43149665, 22.85982945, 64.87137324, 36.89226595, 49.95911864, 27.03446803, 45.28700464, 51.63631858, 101.48848699, 51.19397711, 39.64279234, 18.11650009, 32.69945146, 40.29116341, 42.21817065, 58.29519862, 88.22861836, 67.89129238] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["n", "mean", "median", "sd.abs", "sd.rel", "se.abs", "se.rel", "skewness", "kurtosis"] } }, "value": [ { "type": "integer", "attributes": {}, "value": [20] }, { "type": "double", "attributes": {}, "value": [49.91399333] }, { "type": "double", "attributes": {}, "value": [47.62306164] }, { "type": "double", "attributes": {}, "value": [20.88583391] }, { "type": "double", "attributes": {}, "value": [41.84364448] }, { "type": "double", "attributes": {}, "value": [4.67021444] }, { "type": "double", "attributes": {}, "value": [9.35652335] }, { "type": "double", "attributes": {}, "value": [0.73721032] }, { "type": "double", "attributes": {}, "value": [3.02589505] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["x", "y", "bw", "n", "call", "data.name", "has.na"] }, "class": { "type": "character", "attributes": {}, "value": ["density"] } }, "value": [ { "type": "double", "attributes": {}, "value": [-6.94334404, -6.92999354, -6.91664304, -6.90329253, -6.88994203, -6.87659153, -6.86324103, -6.84989052, -6.83654002, -6.82318952, -6.80983902, -6.79648851, -6.78313801, -6.76978751, -6.75643701, -6.7430865, -6.729736, -6.7163855, -6.703035, -6.68968449, -6.67633399, -6.66298349, -6.64963299, -6.63628248, -6.62293198, -6.60958148, -6.59623098, -6.58288047, -6.56952997, -6.55617947, -6.54282897, -6.52947846, -6.51612796, -6.50277746, -6.48942695, -6.47607645, -6.46272595, -6.44937545, -6.43602494, -6.42267444, -6.40932394, -6.39597344, -6.38262293, -6.36927243, -6.35592193, -6.34257143, -6.32922092, -6.31587042, -6.30251992, -6.28916942, -6.27581891, -6.26246841, -6.24911791, -6.23576741, -6.2224169, -6.2090664, -6.1957159, -6.1823654, -6.16901489, -6.15566439, -6.14231389, -6.12896339, -6.11561288, -6.10226238, -6.08891188, -6.07556138, -6.06221087, -6.04886037, -6.03550987, -6.02215937, -6.00880886, -5.99545836, -5.98210786, -5.96875735, -5.95540685, -5.94205635, -5.92870585, -5.91535534, -5.90200484, -5.88865434, -5.87530384, -5.86195333, -5.84860283, -5.83525233, -5.82190183, -5.80855132, -5.79520082, -5.78185032, -5.76849982, -5.75514931, -5.74179881, -5.72844831, -5.71509781, -5.7017473, -5.6883968, -5.6750463, -5.6616958, -5.64834529, -5.63499479, -5.62164429, -5.60829379, -5.59494328, -5.58159278, -5.56824228, -5.55489178, -5.54154127, -5.52819077, -5.51484027, -5.50148976, -5.48813926, -5.47478876, -5.46143826, -5.44808775, -5.43473725, -5.42138675, -5.40803625, -5.39468574, -5.38133524, -5.36798474, -5.35463424, -5.34128373, -5.32793323, -5.31458273, -5.30123223, -5.28788172, -5.27453122, -5.26118072, -5.24783022, -5.23447971, -5.22112921, -5.20777871, -5.19442821, -5.1810777, -5.1677272, -5.1543767, -5.1410262, -5.12767569, -5.11432519, -5.10097469, -5.08762419, -5.07427368, -5.06092318, -5.04757268, -5.03422218, -5.02087167, -5.00752117, -4.99417067, -4.98082016, -4.96746966, -4.95411916, -4.94076866, -4.92741815, -4.91406765, -4.90071715, -4.88736665, -4.87401614, -4.86066564, -4.84731514, -4.83396464, -4.82061413, -4.80726363, -4.79391313, -4.78056263, -4.76721212, -4.75386162, -4.74051112, -4.72716062, -4.71381011, -4.70045961, -4.68710911, -4.67375861, -4.6604081, -4.6470576, -4.6337071, -4.6203566, -4.60700609, -4.59365559, -4.58030509, -4.56695459, -4.55360408, -4.54025358, -4.52690308, -4.51355257, -4.50020207, -4.48685157, -4.47350107, -4.46015056, -4.44680006, -4.43344956, -4.42009906, -4.40674855, -4.39339805, -4.38004755, -4.36669705, -4.35334654, -4.33999604, -4.32664554, -4.31329504, -4.29994453, -4.28659403, -4.27324353, -4.25989303, -4.24654252, -4.23319202, -4.21984152, -4.20649102, -4.19314051, -4.17979001, -4.16643951, -4.15308901, -4.1397385, -4.126388, -4.1130375, -4.099687, -4.08633649, -4.07298599, -4.05963549, -4.04628499, -4.03293448, -4.01958398, -4.00623348, -3.99288297, -3.97953247, -3.96618197, -3.95283147, -3.93948096, -3.92613046, -3.91277996, -3.89942946, -3.88607895, -3.87272845, -3.85937795, -3.84602745, -3.83267694, -3.81932644, -3.80597594, -3.79262544, -3.77927493, -3.76592443, -3.75257393, -3.73922343, -3.72587292, -3.71252242, -3.69917192, -3.68582142, -3.67247091, -3.65912041, -3.64576991, -3.63241941, -3.6190689, -3.6057184, -3.5923679, -3.5790174, -3.56566689, -3.55231639, -3.53896589, -3.52561539, -3.51226488, -3.49891438, -3.48556388, -3.47221337, -3.45886287, -3.44551237, -3.43216187, -3.41881136, -3.40546086, -3.39211036, -3.37875986, -3.36540935, -3.35205885, -3.33870835, -3.32535785, -3.31200734, -3.29865684, -3.28530634, -3.27195584, -3.25860533, -3.24525483, -3.23190433, -3.21855383, -3.20520332, -3.19185282, -3.17850232, -3.16515182, -3.15180131, -3.13845081, -3.12510031, -3.11174981, -3.0983993, -3.0850488, -3.0716983, -3.0583478, -3.04499729, -3.03164679, -3.01829629, -3.00494578, -2.99159528, -2.97824478, -2.96489428, -2.95154377, -2.93819327, -2.92484277, -2.91149227, -2.89814176, -2.88479126, -2.87144076, -2.85809026, -2.84473975, -2.83138925, -2.81803875, -2.80468825, -2.79133774, -2.77798724, -2.76463674, -2.75128624, -2.73793573, -2.72458523, -2.71123473, -2.69788423, -2.68453372, -2.67118322, -2.65783272, -2.64448222, -2.63113171, -2.61778121, -2.60443071, -2.59108021, -2.5777297, -2.5643792, -2.5510287, -2.5376782, -2.52432769, -2.51097719, -2.49762669, -2.48427618, -2.47092568, -2.45757518, -2.44422468, -2.43087417, -2.41752367, -2.40417317, -2.39082267, -2.37747216, -2.36412166, -2.35077116, -2.33742066, -2.32407015, -2.31071965, -2.29736915, -2.28401865, -2.27066814, -2.25731764, -2.24396714, -2.23061664, -2.21726613, -2.20391563, -2.19056513, -2.17721463, -2.16386412, -2.15051362, -2.13716312, -2.12381262, -2.11046211, -2.09711161, -2.08376111, -2.07041061, -2.0570601, -2.0437096, -2.0303591, -2.0170086, -2.00365809, -1.99030759, -1.97695709, -1.96360658, -1.95025608, -1.93690558, -1.92355508, -1.91020457, -1.89685407, -1.88350357, -1.87015307, -1.85680256, -1.84345206, -1.83010156, -1.81675106, -1.80340055, -1.79005005, -1.77669955, -1.76334905, -1.74999854, -1.73664804, -1.72329754, -1.70994704, -1.69659653, -1.68324603, -1.66989553, -1.65654503, -1.64319452, -1.62984402, -1.61649352, -1.60314302, -1.58979251, -1.57644201, -1.56309151, -1.54974101, -1.5363905, -1.52304, -1.5096895, -1.49633899, -1.48298849, -1.46963799, -1.45628749, -1.44293698, -1.42958648, -1.41623598, -1.40288548, -1.38953497, -1.37618447, -1.36283397, -1.34948347, -1.33613296, -1.32278246, -1.30943196, -1.29608146, -1.28273095, -1.26938045, -1.25602995, -1.24267945, -1.22932894, -1.21597844, -1.20262794, -1.18927744, -1.17592693, -1.16257643, -1.14922593, -1.13587543, -1.12252492, -1.10917442, -1.09582392, -1.08247342, -1.06912291, -1.05577241, -1.04242191, -1.02907141, -1.0157209, -1.0023704, -0.9890199, -0.97566939, -0.96231889, -0.94896839, -0.93561789, -0.92226738, -0.90891688, -0.89556638, -0.88221588, -0.86886537, -0.85551487, -0.84216437, -0.82881387, -0.81546336, -0.80211286, -0.78876236, -0.77541186, -0.76206135, -0.74871085, -0.73536035, -0.72200985, -0.70865934, -0.69530884, -0.68195834, -0.66860784, -0.65525733, -0.64190683, -0.62855633, -0.61520583, -0.60185532, -0.58850482, -0.57515432, -0.56180382, -0.54845331, -0.53510281, -0.52175231, -0.50840181, -0.4950513, -0.4817008, -0.4683503, -0.45499979, -0.44164929, -0.42829879, -0.41494829, -0.40159778, -0.38824728, -0.37489678, -0.36154628, -0.34819577, -0.33484527, -0.32149477, -0.30814427, -0.29479376, -0.28144326, -0.26809276, -0.25474226, -0.24139175, -0.22804125, -0.21469075, -0.20134025, -0.18798974, -0.17463924, -0.16128874, -0.14793824, -0.13458773, -0.12123723, -0.10788673, -0.09453623, -0.08118572, -0.06783522, -0.05448472, -0.04113422, -0.02778371, -0.01443321, -0.00108271, 0.0122678, 0.0256183, 0.0389688, 0.0523193, 0.06566981, 0.07902031, 0.09237081, 0.10572131, 0.11907182, 0.13242232, 0.14577282, 0.15912332, 0.17247383, 0.18582433, 0.19917483, 0.21252533, 0.22587584, 0.23922634, 0.25257684, 0.26592734, 0.27927785, 0.29262835, 0.30597885, 0.31932935, 0.33267986, 0.34603036, 0.35938086, 0.37273136, 0.38608187, 0.39943237, 0.41278287, 0.42613337, 0.43948388, 0.45283438, 0.46618488, 0.47953538, 0.49288589, 0.50623639, 0.51958689, 0.5329374, 0.5462879, 0.5596384, 0.5729889, 0.58633941, 0.59968991, 0.61304041, 0.62639091, 0.63974142, 0.65309192, 0.66644242, 0.67979292, 0.69314343, 0.70649393, 0.71984443, 0.73319493, 0.74654544, 0.75989594, 0.77324644, 0.78659694, 0.79994745, 0.81329795, 0.82664845, 0.83999895, 0.85334946, 0.86669996, 0.88005046, 0.89340096, 0.90675147, 0.92010197, 0.93345247, 0.94680297, 0.96015348, 0.97350398, 0.98685448, 1.00020499, 1.01355549, 1.02690599, 1.04025649, 1.053607, 1.0669575, 1.080308, 1.0936585, 1.10700901, 1.12035951, 1.13371001, 1.14706051, 1.16041102, 1.17376152, 1.18711202, 1.20046252, 1.21381303, 1.22716353, 1.24051403, 1.25386453, 1.26721504, 1.28056554, 1.29391604, 1.30726654, 1.32061705, 1.33396755, 1.34731805, 1.36066855, 1.37401906, 1.38736956, 1.40072006, 1.41407056, 1.42742107, 1.44077157, 1.45412207, 1.46747257, 1.48082308, 1.49417358, 1.50752408, 1.52087459, 1.53422509, 1.54757559, 1.56092609, 1.5742766, 1.5876271, 1.6009776, 1.6143281, 1.62767861, 1.64102911, 1.65437961, 1.66773011, 1.68108062, 1.69443112, 1.70778162, 1.72113212, 1.73448263, 1.74783313, 1.76118363, 1.77453413, 1.78788464, 1.80123514, 1.81458564, 1.82793614, 1.84128665, 1.85463715, 1.86798765, 1.88133815, 1.89468866, 1.90803916, 1.92138966, 1.93474016, 1.94809067, 1.96144117, 1.97479167, 1.98814217, 2.00149268, 2.01484318, 2.02819368, 2.04154419, 2.05489469, 2.06824519, 2.08159569, 2.0949462, 2.1082967, 2.1216472, 2.1349977, 2.14834821, 2.16169871, 2.17504921, 2.18839971, 2.20175022, 2.21510072, 2.22845122, 2.24180172, 2.25515223, 2.26850273, 2.28185323, 2.29520373, 2.30855424, 2.32190474, 2.33525524, 2.34860574, 2.36195625, 2.37530675, 2.38865725, 2.40200775, 2.41535826, 2.42870876, 2.44205926, 2.45540976, 2.46876027, 2.48211077, 2.49546127, 2.50881178, 2.52216228, 2.53551278, 2.54886328, 2.56221379, 2.57556429, 2.58891479, 2.60226529, 2.6156158, 2.6289663, 2.6423168, 2.6556673, 2.66901781, 2.68236831, 2.69571881, 2.70906931, 2.72241982, 2.73577032, 2.74912082, 2.76247132, 2.77582183, 2.78917233, 2.80252283, 2.81587333, 2.82922384, 2.84257434, 2.85592484, 2.86927534, 2.88262585, 2.89597635, 2.90932685, 2.92267735, 2.93602786, 2.94937836, 2.96272886, 2.97607936, 2.98942987, 3.00278037, 3.01613087, 3.02948138, 3.04283188, 3.05618238, 3.06953288, 3.08288339, 3.09623389, 3.10958439, 3.12293489, 3.1362854, 3.1496359, 3.1629864, 3.1763369, 3.18968741, 3.20303791, 3.21638841, 3.22973891, 3.24308942, 3.25643992, 3.26979042, 3.28314092, 3.29649143, 3.30984193, 3.32319243, 3.33654293, 3.34989344, 3.36324394, 3.37659444, 3.38994494, 3.40329545, 3.41664595, 3.42999645, 3.44334695, 3.45669746, 3.47004796, 3.48339846, 3.49674896, 3.51009947, 3.52344997, 3.53680047, 3.55015098, 3.56350148, 3.57685198, 3.59020248, 3.60355299, 3.61690349, 3.63025399, 3.64360449, 3.656955, 3.6703055, 3.683656, 3.6970065, 3.71035701, 3.72370751, 3.73705801, 3.75040851, 3.76375902, 3.77710952, 3.79046002, 3.80381052, 3.81716103, 3.83051153, 3.84386203, 3.85721253, 3.87056304, 3.88391354, 3.89726404, 3.91061454, 3.92396505, 3.93731555, 3.95066605, 3.96401655, 3.97736706, 3.99071756, 4.00406806, 4.01741857, 4.03076907, 4.04411957, 4.05747007, 4.07082058, 4.08417108, 4.09752158, 4.11087208, 4.12422259, 4.13757309, 4.15092359, 4.16427409, 4.1776246, 4.1909751, 4.2043256, 4.2176761, 4.23102661, 4.24437711, 4.25772761, 4.27107811, 4.28442862, 4.29777912, 4.31112962, 4.32448012, 4.33783063, 4.35118113, 4.36453163, 4.37788213, 4.39123264, 4.40458314, 4.41793364, 4.43128414, 4.44463465, 4.45798515, 4.47133565, 4.48468615, 4.49803666, 4.51138716, 4.52473766, 4.53808817, 4.55143867, 4.56478917, 4.57813967, 4.59149018, 4.60484068, 4.61819118, 4.63154168, 4.64489219, 4.65824269, 4.67159319, 4.68494369, 4.6982942, 4.7116447, 4.7249952, 4.7383457, 4.75169621, 4.76504671, 4.77839721, 4.79174771, 4.80509822, 4.81844872, 4.83179922, 4.84514972, 4.85850023, 4.87185073, 4.88520123, 4.89855173, 4.91190224, 4.92525274, 4.93860324, 4.95195374, 4.96530425, 4.97865475, 4.99200525, 5.00535575, 5.01870626, 5.03205676, 5.04540726, 5.05875777, 5.07210827, 5.08545877, 5.09880927, 5.11215978, 5.12551028, 5.13886078, 5.15221128, 5.16556179, 5.17891229, 5.19226279, 5.20561329, 5.2189638, 5.2323143, 5.2456648, 5.2590153, 5.27236581, 5.28571631, 5.29906681, 5.31241731, 5.32576782, 5.33911832, 5.35246882, 5.36581932, 5.37916983, 5.39252033, 5.40587083, 5.41922133, 5.43257184, 5.44592234, 5.45927284, 5.47262334, 5.48597385, 5.49932435, 5.51267485, 5.52602536, 5.53937586, 5.55272636, 5.56607686, 5.57942737, 5.59277787, 5.60612837, 5.61947887, 5.63282938, 5.64617988, 5.65953038, 5.67288088, 5.68623139, 5.69958189, 5.71293239, 5.72628289, 5.7396334, 5.7529839, 5.7663344, 5.7796849, 5.79303541, 5.80638591, 5.81973641, 5.83308691, 5.84643742, 5.85978792, 5.87313842, 5.88648892, 5.89983943, 5.91318993, 5.92654043, 5.93989093, 5.95324144, 5.96659194, 5.97994244, 5.99329294, 6.00664345, 6.01999395, 6.03334445, 6.04669496, 6.06004546, 6.07339596, 6.08674646, 6.10009697, 6.11344747, 6.12679797, 6.14014847, 6.15349898, 6.16684948, 6.18019998, 6.19355048, 6.20690099, 6.22025149, 6.23360199, 6.24695249, 6.260303, 6.2736535, 6.287004, 6.3003545, 6.31370501, 6.32705551, 6.34040601, 6.35375651, 6.36710702, 6.38045752, 6.39380802, 6.40715852, 6.42050903, 6.43385953, 6.44721003, 6.46056053, 6.47391104, 6.48726154, 6.50061204, 6.51396255, 6.52731305, 6.54066355, 6.55401405, 6.56736456, 6.58071506, 6.59406556, 6.60741606, 6.62076657, 6.63411707, 6.64746757, 6.66081807, 6.67416858, 6.68751908, 6.70086958, 6.71422008, 6.72757059, 6.74092109, 6.75427159, 6.76762209, 6.7809726, 6.7943231, 6.8076736, 6.8210241, 6.83437461, 6.84772511, 6.86107561, 6.87442611, 6.88777662, 6.90112712, 6.91447762, 6.92782812, 6.94117863, 6.95452913, 6.96787963, 6.98123013, 6.99458064, 7.00793114, 7.02128164, 7.03463215, 7.04798265, 7.06133315, 7.07468365, 7.08803416, 7.10138466, 7.11473516, 7.12808566, 7.14143617, 7.15478667, 7.16813717, 7.18148767, 7.19483818, 7.20818868, 7.22153918, 7.23488968, 7.24824019, 7.26159069, 7.27494119, 7.28829169, 7.3016422, 7.3149927, 7.3283432, 7.3416937, 7.35504421, 7.36839471, 7.38174521, 7.39509571, 7.40844622, 7.42179672, 7.43514722, 7.44849772, 7.46184823, 7.47519873, 7.48854923, 7.50189973, 7.51525024, 7.52860074, 7.54195124, 7.55530175, 7.56865225, 7.58200275, 7.59535325, 7.60870376, 7.62205426, 7.63540476, 7.64875526, 7.66210577, 7.67545627, 7.68880677, 7.70215727, 7.71550778, 7.72885828, 7.74220878, 7.75555928, 7.76890979, 7.78226029, 7.79561079, 7.80896129, 7.8223118, 7.8356623, 7.8490128, 7.8623633, 7.87571381, 7.88906431, 7.90241481, 7.91576531, 7.92911582, 7.94246632, 7.95581682, 7.96916732, 7.98251783, 7.99586833, 8.00921883, 8.02256934, 8.03591984, 8.04927034, 8.06262084, 8.07597135, 8.08932185, 8.10267235, 8.11602285, 8.12937336, 8.14272386, 8.15607436, 8.16942486, 8.18277537, 8.19612587, 8.20947637, 8.22282687, 8.23617738, 8.24952788, 8.26287838, 8.27622888, 8.28957939, 8.30292989, 8.31628039, 8.32963089, 8.3429814, 8.3563319, 8.3696824, 8.3830329, 8.39638341, 8.40973391, 8.42308441, 8.43643491, 8.44978542, 8.46313592, 8.47648642, 8.48983692, 8.50318743, 8.51653793, 8.52988843, 8.54323894, 8.55658944, 8.56993994, 8.58329044, 8.59664095, 8.60999145, 8.62334195, 8.63669245, 8.65004296, 8.66339346, 8.67674396, 8.69009446, 8.70344497, 8.71679547, 8.73014597, 8.74349647, 8.75684698, 8.77019748, 8.78354798, 8.79689848, 8.81024899, 8.82359949, 8.83694999, 8.85030049, 8.863651, 8.8770015, 8.890352, 8.9037025, 8.91705301, 8.93040351, 8.94375401, 8.95710451, 8.97045502, 8.98380552, 8.99715602, 9.01050652, 9.02385703, 9.03720753, 9.05055803, 9.06390854, 9.07725904, 9.09060954, 9.10396004, 9.11731055, 9.13066105, 9.14401155, 9.15736205, 9.17071256, 9.18406306, 9.19741356, 9.21076406, 9.22411457, 9.23746507, 9.25081557, 9.26416607, 9.27751658, 9.29086708, 9.30421758, 9.31756808, 9.33091859, 9.34426909, 9.35761959, 9.37097009, 9.3843206, 9.3976711, 9.4110216, 9.4243721, 9.43772261, 9.45107311, 9.46442361, 9.47777411, 9.49112462, 9.50447512, 9.51782562, 9.53117613, 9.54452663, 9.55787713, 9.57122763, 9.58457814, 9.59792864, 9.61127914, 9.62462964, 9.63798015, 9.65133065, 9.66468115, 9.67803165, 9.69138216, 9.70473266, 9.71808316, 9.73143366, 9.74478417, 9.75813467, 9.77148517, 9.78483567, 9.79818618, 9.81153668, 9.82488718, 9.83823768, 9.85158819, 9.86493869, 9.87828919, 9.89163969, 9.9049902, 9.9183407, 9.9316912, 9.9450417, 9.95839221, 9.97174271, 9.98509321, 9.99844371, 10.01179422, 10.02514472, 10.03849522, 10.05184573, 10.06519623, 10.07854673, 10.09189723, 10.10524774, 10.11859824, 10.13194874, 10.14529924, 10.15864975, 10.17200025, 10.18535075, 10.19870125, 10.21205176, 10.22540226, 10.23875276, 10.25210326, 10.26545377, 10.27880427, 10.29215477, 10.30550527, 10.31885578, 10.33220628, 10.34555678, 10.35890728, 10.37225779, 10.38560829, 10.39895879, 10.41230929, 10.4256598, 10.4390103, 10.4523608, 10.4657113, 10.47906181, 10.49241231, 10.50576281, 10.51911332, 10.53246382, 10.54581432, 10.55916482, 10.57251533, 10.58586583, 10.59921633, 10.61256683, 10.62591734, 10.63926784, 10.65261834, 10.66596884, 10.67931935, 10.69266985, 10.70602035, 10.71937085, 10.73272136, 10.74607186, 10.75942236, 10.77277286, 10.78612337, 10.79947387, 10.81282437, 10.82617487, 10.83952538, 10.85287588, 10.86622638, 10.87957688, 10.89292739, 10.90627789, 10.91962839, 10.93297889, 10.9463294, 10.9596799, 10.9730304, 10.9863809, 10.99973141, 11.01308191, 11.02643241, 11.03978292, 11.05313342, 11.06648392, 11.07983442, 11.09318493, 11.10653543, 11.11988593, 11.13323643, 11.14658694, 11.15993744, 11.17328794, 11.18663844, 11.19998895, 11.21333945, 11.22668995, 11.24004045, 11.25339096, 11.26674146, 11.28009196, 11.29344246, 11.30679297, 11.32014347, 11.33349397, 11.34684447, 11.36019498, 11.37354548, 11.38689598, 11.40024648, 11.41359699, 11.42694749, 11.44029799, 11.45364849, 11.466999, 11.4803495, 11.4937, 11.5070505, 11.52040101, 11.53375151, 11.54710201, 11.56045252, 11.57380302, 11.58715352, 11.60050402, 11.61385453, 11.62720503, 11.64055553, 11.65390603, 11.66725654, 11.68060704, 11.69395754, 11.70730804, 11.72065855, 11.73400905, 11.74735955, 11.76071005, 11.77406056, 11.78741106, 11.80076156, 11.81411206, 11.82746257, 11.84081307, 11.85416357, 11.86751407, 11.88086458, 11.89421508, 11.90756558, 11.92091608, 11.93426659, 11.94761709, 11.96096759, 11.97431809, 11.9876686, 12.0010191, 12.0143696, 12.02772011, 12.04107061, 12.05442111, 12.06777161, 12.08112212, 12.09447262, 12.10782312, 12.12117362, 12.13452413, 12.14787463, 12.16122513, 12.17457563, 12.18792614, 12.20127664, 12.21462714, 12.22797764, 12.24132815, 12.25467865, 12.26802915, 12.28137965, 12.29473016, 12.30808066, 12.32143116, 12.33478166, 12.34813217, 12.36148267, 12.37483317, 12.38818367, 12.40153418, 12.41488468, 12.42823518, 12.44158568, 12.45493619, 12.46828669, 12.48163719, 12.49498769, 12.5083382, 12.5216887, 12.5350392, 12.54838971, 12.56174021, 12.57509071, 12.58844121, 12.60179172, 12.61514222, 12.62849272, 12.64184322, 12.65519373, 12.66854423, 12.68189473, 12.69524523, 12.70859574, 12.72194624, 12.73529674, 12.74864724, 12.76199775, 12.77534825, 12.78869875, 12.80204925, 12.81539976, 12.82875026, 12.84210076, 12.85545126, 12.86880177, 12.88215227, 12.89550277, 12.90885327, 12.92220378, 12.93555428, 12.94890478, 12.96225528, 12.97560579, 12.98895629, 13.00230679, 13.01565729, 13.0290078, 13.0423583, 13.0557088, 13.06905931, 13.08240981, 13.09576031, 13.10911081, 13.12246132, 13.13581182, 13.14916232, 13.16251282, 13.17586333, 13.18921383, 13.20256433, 13.21591483, 13.22926534, 13.24261584, 13.25596634, 13.26931684, 13.28266735, 13.29601785, 13.30936835, 13.32271885, 13.33606936, 13.34941986, 13.36277036, 13.37612086, 13.38947137, 13.40282187, 13.41617237, 13.42952287, 13.44287338, 13.45622388, 13.46957438, 13.48292488, 13.49627539, 13.50962589, 13.52297639, 13.5363269, 13.5496774, 13.5630279, 13.5763784, 13.58972891, 13.60307941, 13.61642991, 13.62978041, 13.64313092, 13.65648142, 13.66983192, 13.68318242, 13.69653293, 13.70988343, 13.72323393, 13.73658443, 13.74993494, 13.76328544, 13.77663594, 13.78998644, 13.80333695, 13.81668745, 13.83003795, 13.84338845, 13.85673896, 13.87008946, 13.88343996, 13.89679046, 13.91014097, 13.92349147, 13.93684197, 13.95019247, 13.96354298, 13.97689348, 13.99024398, 14.00359448, 14.01694499, 14.03029549, 14.04364599, 14.0569965, 14.070347, 14.0836975, 14.097048, 14.11039851, 14.12374901, 14.13709951, 14.15045001, 14.16380052, 14.17715102, 14.19050152, 14.20385202, 14.21720253, 14.23055303, 14.24390353, 14.25725403, 14.27060454, 14.28395504, 14.29730554, 14.31065604, 14.32400655, 14.33735705, 14.35070755, 14.36405805, 14.37740856, 14.39075906, 14.40410956, 14.41746006, 14.43081057, 14.44416107, 14.45751157, 14.47086207, 14.48421258, 14.49756308, 14.51091358, 14.52426408, 14.53761459, 14.55096509, 14.56431559, 14.5776661, 14.5910166, 14.6043671, 14.6177176, 14.63106811, 14.64441861, 14.65776911, 14.67111961, 14.68447012, 14.69782062, 14.71117112, 14.72452162, 14.73787213, 14.75122263, 14.76457313, 14.77792363, 14.79127414, 14.80462464, 14.81797514, 14.83132564, 14.84467615, 14.85802665, 14.87137715, 14.88472765, 14.89807816, 14.91142866, 14.92477916, 14.93812966, 14.95148017, 14.96483067, 14.97818117, 14.99153167, 15.00488218, 15.01823268, 15.03158318, 15.04493369, 15.05828419, 15.07163469, 15.08498519, 15.0983357, 15.1116862, 15.1250367, 15.1383872, 15.15173771, 15.16508821, 15.17843871, 15.19178921, 15.20513972, 15.21849022, 15.23184072, 15.24519122, 15.25854173, 15.27189223, 15.28524273, 15.29859323, 15.31194374, 15.32529424, 15.33864474, 15.35199524, 15.36534575, 15.37869625, 15.39204675, 15.40539725, 15.41874776, 15.43209826, 15.44544876, 15.45879926, 15.47214977, 15.48550027, 15.49885077, 15.51220127, 15.52555178, 15.53890228, 15.55225278, 15.56560329, 15.57895379, 15.59230429, 15.60565479, 15.6190053, 15.6323558, 15.6457063, 15.6590568, 15.67240731, 15.68575781, 15.69910831, 15.71245881, 15.72580932, 15.73915982, 15.75251032, 15.76586082, 15.77921133, 15.79256183, 15.80591233, 15.81926283, 15.83261334, 15.84596384, 15.85931434, 15.87266484, 15.88601535, 15.89936585, 15.91271635, 15.92606685, 15.93941736, 15.95276786, 15.96611836, 15.97946886, 15.99281937, 16.00616987, 16.01952037, 16.03287088, 16.04622138, 16.05957188, 16.07292238, 16.08627289, 16.09962339, 16.11297389, 16.12632439, 16.1396749, 16.1530254, 16.1663759, 16.1797264, 16.19307691, 16.20642741, 16.21977791, 16.23312841, 16.24647892, 16.25982942, 16.27317992, 16.28653042, 16.29988093, 16.31323143, 16.32658193, 16.33993243, 16.35328294, 16.36663344, 16.37998394, 16.39333444, 16.40668495, 16.42003545, 16.43338595, 16.44673645, 16.46008696, 16.47343746, 16.48678796, 16.50013846, 16.51348897, 16.52683947, 16.54018997, 16.55354048, 16.56689098, 16.58024148, 16.59359198, 16.60694249, 16.62029299, 16.63364349, 16.64699399, 16.6603445, 16.673695, 16.6870455, 16.700396, 16.71374651, 16.72709701, 16.74044751, 16.75379801, 16.76714852, 16.78049902, 16.79384952, 16.80720002, 16.82055053, 16.83390103, 16.84725153, 16.86060203, 16.87395254, 16.88730304, 16.90065354, 16.91400404, 16.92735455, 16.94070505, 16.95405555, 16.96740605, 16.98075656, 16.99410706, 17.00745756, 17.02080806, 17.03415857, 17.04750907, 17.06085957, 17.07421008, 17.08756058, 17.10091108, 17.11426158, 17.12761209, 17.14096259, 17.15431309, 17.16766359, 17.1810141, 17.1943646, 17.2077151, 17.2210656, 17.23441611, 17.24776661, 17.26111711, 17.27446761, 17.28781812, 17.30116862, 17.31451912, 17.32786962, 17.34122013, 17.35457063, 17.36792113, 17.38127163, 17.39462214, 17.40797264, 17.42132314, 17.43467364, 17.44802415, 17.46137465, 17.47472515, 17.48807565, 17.50142616, 17.51477666, 17.52812716, 17.54147767, 17.55482817, 17.56817867, 17.58152917, 17.59487968, 17.60823018, 17.62158068, 17.63493118, 17.64828169, 17.66163219, 17.67498269, 17.68833319, 17.7016837, 17.7150342, 17.7283847, 17.7417352, 17.75508571, 17.76843621, 17.78178671, 17.79513721, 17.80848772, 17.82183822, 17.83518872, 17.84853922, 17.86188973, 17.87524023, 17.88859073, 17.90194123, 17.91529174, 17.92864224, 17.94199274, 17.95534324, 17.96869375, 17.98204425, 17.99539475, 18.00874525, 18.02209576, 18.03544626, 18.04879676, 18.06214727, 18.07549777, 18.08884827, 18.10219877, 18.11554928, 18.12889978, 18.14225028, 18.15560078, 18.16895129, 18.18230179, 18.19565229, 18.20900279, 18.2223533, 18.2357038, 18.2490543, 18.2624048, 18.27575531, 18.28910581, 18.30245631, 18.31580681, 18.32915732, 18.34250782, 18.35585832, 18.36920882, 18.38255933, 18.39590983, 18.40926033, 18.42261083, 18.43596134, 18.44931184, 18.46266234, 18.47601284, 18.48936335, 18.50271385, 18.51606435, 18.52941485, 18.54276536, 18.55611586, 18.56946636, 18.58281687, 18.59616737, 18.60951787, 18.62286837, 18.63621888, 18.64956938, 18.66291988, 18.67627038, 18.68962089, 18.70297139, 18.71632189, 18.72967239, 18.7430229, 18.7563734, 18.7697239, 18.7830744, 18.79642491, 18.80977541, 18.82312591, 18.83647641, 18.84982692, 18.86317742, 18.87652792, 18.88987842, 18.90322893, 18.91657943, 18.92992993, 18.94328043, 18.95663094, 18.96998144, 18.98333194, 18.99668244, 19.01003295, 19.02338345, 19.03673395, 19.05008446, 19.06343496, 19.07678546, 19.09013596, 19.10348647, 19.11683697, 19.13018747, 19.14353797, 19.15688848, 19.17023898, 19.18358948, 19.19693998, 19.21029049, 19.22364099, 19.23699149, 19.25034199, 19.2636925, 19.277043, 19.2903935, 19.303744, 19.31709451, 19.33044501, 19.34379551, 19.35714601, 19.37049652, 19.38384702, 19.39719752, 19.41054802, 19.42389853, 19.43724903, 19.45059953, 19.46395003, 19.47730054, 19.49065104, 19.50400154, 19.51735204, 19.53070255, 19.54405305, 19.55740355, 19.57075406, 19.58410456, 19.59745506, 19.61080556, 19.62415607, 19.63750657, 19.65085707, 19.66420757, 19.67755808, 19.69090858, 19.70425908, 19.71760958, 19.73096009, 19.74431059, 19.75766109, 19.77101159, 19.7843621, 19.7977126, 19.8110631, 19.8244136, 19.83776411, 19.85111461, 19.86446511, 19.87781561, 19.89116612, 19.90451662, 19.91786712, 19.93121762, 19.94456813, 19.95791863, 19.97126913, 19.98461963, 19.99797014, 20.01132064, 20.02467114, 20.03802164, 20.05137215, 20.06472265, 20.07807315, 20.09142366, 20.10477416, 20.11812466, 20.13147516, 20.14482567, 20.15817617, 20.17152667, 20.18487717, 20.19822768, 20.21157818, 20.22492868, 20.23827918, 20.25162969, 20.26498019, 20.27833069, 20.29168119, 20.3050317, 20.3183822, 20.3317327, 20.3450832, 20.35843371, 20.37178421, 20.38513471, 20.39848521, 20.41183572, 20.42518622, 20.43853672, 20.45188722, 20.46523773, 20.47858823, 20.49193873, 20.50528923, 20.51863974, 20.53199024, 20.54534074, 20.55869125, 20.57204175, 20.58539225, 20.59874275, 20.61209326, 20.62544376, 20.63879426, 20.65214476, 20.66549527, 20.67884577, 20.69219627, 20.70554677, 20.71889728, 20.73224778, 20.74559828, 20.75894878, 20.77229929, 20.78564979, 20.79900029, 20.81235079, 20.8257013, 20.8390518, 20.8524023, 20.8657528, 20.87910331, 20.89245381, 20.90580431, 20.91915481, 20.93250532, 20.94585582, 20.95920632, 20.97255682, 20.98590733, 20.99925783, 21.01260833, 21.02595883, 21.03930934, 21.05265984, 21.06601034, 21.07936085, 21.09271135, 21.10606185, 21.11941235, 21.13276286, 21.14611336, 21.15946386, 21.17281436, 21.18616487, 21.19951537, 21.21286587, 21.22621637, 21.23956688, 21.25291738, 21.26626788, 21.27961838, 21.29296889, 21.30631939, 21.31966989, 21.33302039, 21.3463709, 21.3597214, 21.3730719, 21.3864224, 21.39977291, 21.41312341, 21.42647391, 21.43982441, 21.45317492, 21.46652542, 21.47987592, 21.49322642, 21.50657693, 21.51992743, 21.53327793, 21.54662844, 21.55997894, 21.57332944, 21.58667994, 21.60003045, 21.61338095, 21.62673145, 21.64008195, 21.65343246, 21.66678296, 21.68013346, 21.69348396, 21.70683447, 21.72018497, 21.73353547, 21.74688597, 21.76023648, 21.77358698, 21.78693748, 21.80028798, 21.81363849, 21.82698899, 21.84033949, 21.85368999, 21.8670405, 21.880391, 21.8937415, 21.907092, 21.92044251, 21.93379301, 21.94714351, 21.96049401, 21.97384452, 21.98719502, 22.00054552, 22.01389602, 22.02724653, 22.04059703, 22.05394753, 22.06729804, 22.08064854, 22.09399904, 22.10734954, 22.12070005, 22.13405055, 22.14740105, 22.16075155, 22.17410206, 22.18745256, 22.20080306, 22.21415356, 22.22750407, 22.24085457, 22.25420507, 22.26755557, 22.28090608, 22.29425658, 22.30760708, 22.32095758, 22.33430809, 22.34765859, 22.36100909, 22.37435959, 22.3877101, 22.4010606, 22.4144111, 22.4277616, 22.44111211, 22.45446261, 22.46781311, 22.48116361, 22.49451412, 22.50786462, 22.52121512, 22.53456562, 22.54791613, 22.56126663, 22.57461713, 22.58796764, 22.60131814, 22.61466864, 22.62801914, 22.64136965, 22.65472015, 22.66807065, 22.68142115, 22.69477166, 22.70812216, 22.72147266, 22.73482316, 22.74817367, 22.76152417, 22.77487467, 22.78822517, 22.80157568, 22.81492618, 22.82827668, 22.84162718, 22.85497769, 22.86832819, 22.88167869, 22.89502919, 22.9083797, 22.9217302, 22.9350807, 22.9484312, 22.96178171, 22.97513221, 22.98848271, 23.00183321, 23.01518372, 23.02853422, 23.04188472, 23.05523523, 23.06858573, 23.08193623, 23.09528673, 23.10863724, 23.12198774, 23.13533824, 23.14868874, 23.16203925, 23.17538975, 23.18874025, 23.20209075, 23.21544126, 23.22879176, 23.24214226, 23.25549276, 23.26884327, 23.28219377, 23.29554427, 23.30889477, 23.32224528, 23.33559578, 23.34894628, 23.36229678, 23.37564729, 23.38899779, 23.40234829, 23.41569879, 23.4290493, 23.4423998, 23.4557503, 23.4691008, 23.48245131, 23.49580181, 23.50915231, 23.52250281, 23.53585332, 23.54920382, 23.56255432, 23.57590483, 23.58925533, 23.60260583, 23.61595633, 23.62930684, 23.64265734, 23.65600784, 23.66935834, 23.68270885, 23.69605935, 23.70940985, 23.72276035, 23.73611086, 23.74946136, 23.76281186, 23.77616236, 23.78951287, 23.80286337, 23.81621387, 23.82956437, 23.84291488, 23.85626538, 23.86961588, 23.88296638, 23.89631689, 23.90966739, 23.92301789, 23.93636839, 23.9497189, 23.9630694, 23.9764199, 23.9897704, 24.00312091, 24.01647141, 24.02982191, 24.04317241, 24.05652292, 24.06987342, 24.08322392, 24.09657443, 24.10992493, 24.12327543, 24.13662593, 24.14997644, 24.16332694, 24.17667744, 24.19002794, 24.20337845, 24.21672895, 24.23007945, 24.24342995, 24.25678046, 24.27013096, 24.28348146, 24.29683196, 24.31018247, 24.32353297, 24.33688347, 24.35023397, 24.36358448, 24.37693498, 24.39028548, 24.40363598, 24.41698649, 24.43033699, 24.44368749, 24.45703799, 24.4703885, 24.483739, 24.4970895, 24.51044, 24.52379051, 24.53714101, 24.55049151, 24.56384202, 24.57719252, 24.59054302, 24.60389352, 24.61724403, 24.63059453, 24.64394503, 24.65729553, 24.67064604, 24.68399654, 24.69734704, 24.71069754, 24.72404805, 24.73739855, 24.75074905, 24.76409955, 24.77745006, 24.79080056, 24.80415106, 24.81750156, 24.83085207, 24.84420257, 24.85755307, 24.87090357, 24.88425408, 24.89760458, 24.91095508, 24.92430558, 24.93765609, 24.95100659, 24.96435709, 24.97770759, 24.9910581, 25.0044086, 25.0177591, 25.0311096, 25.04446011, 25.05781061, 25.07116111, 25.08451162, 25.09786212, 25.11121262, 25.12456312, 25.13791363, 25.15126413, 25.16461463, 25.17796513, 25.19131564, 25.20466614, 25.21801664, 25.23136714, 25.24471765, 25.25806815, 25.27141865, 25.28476915, 25.29811966, 25.31147016, 25.32482066, 25.33817116, 25.35152167, 25.36487217, 25.37822267, 25.39157317, 25.40492368, 25.41827418, 25.43162468, 25.44497518, 25.45832569, 25.47167619, 25.48502669, 25.49837719, 25.5117277, 25.5250782, 25.5384287, 25.55177921, 25.56512971, 25.57848021, 25.59183071, 25.60518122, 25.61853172, 25.63188222, 25.64523272, 25.65858323, 25.67193373, 25.68528423, 25.69863473, 25.71198524, 25.72533574, 25.73868624, 25.75203674, 25.76538725, 25.77873775, 25.79208825, 25.80543875, 25.81878926, 25.83213976, 25.84549026, 25.85884076, 25.87219127, 25.88554177, 25.89889227, 25.91224277, 25.92559328, 25.93894378, 25.95229428, 25.96564478, 25.97899529, 25.99234579, 26.00569629, 26.01904679, 26.0323973, 26.0457478, 26.0590983, 26.07244881, 26.08579931, 26.09914981, 26.11250031, 26.12585082, 26.13920132, 26.15255182, 26.16590232, 26.17925283, 26.19260333, 26.20595383, 26.21930433, 26.23265484, 26.24600534, 26.25935584, 26.27270634, 26.28605685, 26.29940735, 26.31275785, 26.32610835, 26.33945886, 26.35280936, 26.36615986, 26.37951036, 26.39286087, 26.40621137, 26.41956187, 26.43291237, 26.44626288, 26.45961338, 26.47296388, 26.48631438, 26.49966489, 26.51301539, 26.52636589, 26.53971639, 26.5530669, 26.5664174, 26.5797679, 26.59311841, 26.60646891, 26.61981941, 26.63316991, 26.64652042, 26.65987092, 26.67322142, 26.68657192, 26.69992243, 26.71327293, 26.72662343, 26.73997393, 26.75332444, 26.76667494, 26.78002544, 26.79337594, 26.80672645, 26.82007695, 26.83342745, 26.84677795, 26.86012846, 26.87347896, 26.88682946, 26.90017996, 26.91353047, 26.92688097, 26.94023147, 26.95358197, 26.96693248, 26.98028298, 26.99363348, 27.00698398, 27.02033449, 27.03368499, 27.04703549, 27.060386, 27.0737365, 27.087087, 27.1004375, 27.11378801, 27.12713851, 27.14048901, 27.15383951, 27.16719002, 27.18054052, 27.19389102, 27.20724152, 27.22059203, 27.23394253, 27.24729303, 27.26064353, 27.27399404, 27.28734454, 27.30069504, 27.31404554, 27.32739605, 27.34074655, 27.35409705, 27.36744755, 27.38079806, 27.39414856, 27.40749906, 27.42084956, 27.43420007, 27.44755057, 27.46090107, 27.47425157, 27.48760208, 27.50095258, 27.51430308, 27.52765358, 27.54100409, 27.55435459, 27.56770509, 27.5810556, 27.5944061, 27.6077566, 27.6211071, 27.63445761, 27.64780811, 27.66115861, 27.67450911, 27.68785962, 27.70121012, 27.71456062, 27.72791112, 27.74126163, 27.75461213, 27.76796263, 27.78131313, 27.79466364, 27.80801414, 27.82136464, 27.83471514, 27.84806565, 27.86141615, 27.87476665, 27.88811715, 27.90146766, 27.91481816, 27.92816866, 27.94151916, 27.95486967, 27.96822017, 27.98157067, 27.99492117, 28.00827168, 28.02162218, 28.03497268, 28.04832318, 28.06167369, 28.07502419, 28.08837469, 28.1017252, 28.1150757, 28.1284262, 28.1417767, 28.15512721, 28.16847771, 28.18182821, 28.19517871, 28.20852922, 28.22187972, 28.23523022, 28.24858072, 28.26193123, 28.27528173, 28.28863223, 28.30198273, 28.31533324, 28.32868374, 28.34203424, 28.35538474, 28.36873525, 28.38208575, 28.39543625, 28.40878675, 28.42213726, 28.43548776, 28.44883826, 28.46218876, 28.47553927, 28.48888977, 28.50224027, 28.51559077, 28.52894128, 28.54229178, 28.55564228, 28.56899279, 28.58234329, 28.59569379, 28.60904429, 28.6223948, 28.6357453, 28.6490958, 28.6624463, 28.67579681, 28.68914731, 28.70249781, 28.71584831, 28.72919882, 28.74254932, 28.75589982, 28.76925032, 28.78260083, 28.79595133, 28.80930183, 28.82265233, 28.83600284, 28.84935334, 28.86270384, 28.87605434, 28.88940485, 28.90275535, 28.91610585, 28.92945635, 28.94280686, 28.95615736, 28.96950786, 28.98285836, 28.99620887, 29.00955937, 29.02290987, 29.03626037, 29.04961088, 29.06296138, 29.07631188, 29.08966239, 29.10301289, 29.11636339, 29.12971389, 29.1430644, 29.1564149, 29.1697654, 29.1831159, 29.19646641, 29.20981691, 29.22316741, 29.23651791, 29.24986842, 29.26321892, 29.27656942, 29.28991992, 29.30327043, 29.31662093, 29.32997143, 29.34332193, 29.35667244, 29.37002294, 29.38337344, 29.39672394, 29.41007445, 29.42342495, 29.43677545, 29.45012595, 29.46347646, 29.47682696, 29.49017746, 29.50352796, 29.51687847, 29.53022897, 29.54357947, 29.55692997, 29.57028048, 29.58363098, 29.59698148, 29.61033199, 29.62368249, 29.63703299, 29.65038349, 29.663734, 29.6770845, 29.690435, 29.7037855, 29.71713601, 29.73048651, 29.74383701, 29.75718751, 29.77053802, 29.78388852, 29.79723902, 29.81058952, 29.82394003, 29.83729053, 29.85064103, 29.86399153, 29.87734204, 29.89069254, 29.90404304, 29.91739354, 29.93074405, 29.94409455, 29.95744505, 29.97079555, 29.98414606, 29.99749656, 30.01084706, 30.02419756, 30.03754807, 30.05089857, 30.06424907, 30.07759958, 30.09095008, 30.10430058, 30.11765108, 30.13100159, 30.14435209, 30.15770259, 30.17105309, 30.1844036, 30.1977541, 30.2111046, 30.2244551, 30.23780561, 30.25115611, 30.26450661, 30.27785711, 30.29120762, 30.30455812, 30.31790862, 30.33125912, 30.34460963, 30.35796013, 30.37131063, 30.38466113, 30.39801164, 30.41136214, 30.42471264, 30.43806314, 30.45141365, 30.46476415, 30.47811465, 30.49146515, 30.50481566, 30.51816616, 30.53151666, 30.54486716, 30.55821767, 30.57156817, 30.58491867, 30.59826918, 30.61161968, 30.62497018, 30.63832068, 30.65167119, 30.66502169, 30.67837219, 30.69172269, 30.7050732, 30.7184237, 30.7317742, 30.7451247, 30.75847521, 30.77182571, 30.78517621, 30.79852671, 30.81187722, 30.82522772, 30.83857822, 30.85192872, 30.86527923, 30.87862973, 30.89198023, 30.90533073, 30.91868124, 30.93203174, 30.94538224, 30.95873274, 30.97208325, 30.98543375, 30.99878425, 31.01213475, 31.02548526, 31.03883576, 31.05218626, 31.06553677, 31.07888727, 31.09223777, 31.10558827, 31.11893878, 31.13228928, 31.14563978, 31.15899028, 31.17234079, 31.18569129, 31.19904179, 31.21239229, 31.2257428, 31.2390933, 31.2524438, 31.2657943, 31.27914481, 31.29249531, 31.30584581, 31.31919631, 31.33254682, 31.34589732, 31.35924782, 31.37259832, 31.38594883, 31.39929933, 31.41264983, 31.42600033, 31.43935084, 31.45270134, 31.46605184, 31.47940234, 31.49275285, 31.50610335, 31.51945385, 31.53280435, 31.54615486, 31.55950536, 31.57285586, 31.58620637, 31.59955687, 31.61290737, 31.62625787, 31.63960838, 31.65295888, 31.66630938, 31.67965988, 31.69301039, 31.70636089, 31.71971139, 31.73306189, 31.7464124, 31.7597629, 31.7731134, 31.7864639, 31.79981441, 31.81316491, 31.82651541, 31.83986591, 31.85321642, 31.86656692, 31.87991742, 31.89326792, 31.90661843, 31.91996893, 31.93331943, 31.94666993, 31.96002044, 31.97337094, 31.98672144, 32.00007194, 32.01342245, 32.02677295, 32.04012345, 32.05347395, 32.06682446, 32.08017496, 32.09352546, 32.10687597, 32.12022647, 32.13357697, 32.14692747, 32.16027798, 32.17362848, 32.18697898, 32.20032948, 32.21367999, 32.22703049, 32.24038099, 32.25373149, 32.267082, 32.2804325, 32.293783, 32.3071335, 32.32048401, 32.33383451, 32.34718501, 32.36053551, 32.37388602, 32.38723652, 32.40058702, 32.41393752, 32.42728803, 32.44063853, 32.45398903, 32.46733953, 32.48069004, 32.49404054, 32.50739104, 32.52074154, 32.53409205, 32.54744255, 32.56079305, 32.57414356, 32.58749406, 32.60084456, 32.61419506, 32.62754557, 32.64089607, 32.65424657, 32.66759707, 32.68094758, 32.69429808, 32.70764858, 32.72099908, 32.73434959, 32.74770009, 32.76105059, 32.77440109, 32.7877516, 32.8011021, 32.8144526, 32.8278031, 32.84115361, 32.85450411, 32.86785461, 32.88120511, 32.89455562, 32.90790612, 32.92125662, 32.93460712, 32.94795763, 32.96130813, 32.97465863, 32.98800913, 33.00135964, 33.01471014, 33.02806064, 33.04141114, 33.05476165, 33.06811215, 33.08146265, 33.09481316, 33.10816366, 33.12151416, 33.13486466, 33.14821517, 33.16156567, 33.17491617, 33.18826667, 33.20161718, 33.21496768, 33.22831818, 33.24166868, 33.25501919, 33.26836969, 33.28172019, 33.29507069, 33.3084212, 33.3217717, 33.3351222, 33.3484727, 33.36182321, 33.37517371, 33.38852421, 33.40187471, 33.41522522, 33.42857572, 33.44192622, 33.45527672, 33.46862723, 33.48197773, 33.49532823, 33.50867873, 33.52202924, 33.53537974, 33.54873024, 33.56208074, 33.57543125, 33.58878175, 33.60213225, 33.61548276, 33.62883326, 33.64218376, 33.65553426, 33.66888477, 33.68223527, 33.69558577, 33.70893627, 33.72228678, 33.73563728, 33.74898778, 33.76233828, 33.77568879, 33.78903929, 33.80238979, 33.81574029, 33.8290908, 33.8424413, 33.8557918, 33.8691423, 33.88249281, 33.89584331, 33.90919381, 33.92254431, 33.93589482, 33.94924532, 33.96259582, 33.97594632, 33.98929683, 34.00264733, 34.01599783, 34.02934833, 34.04269884, 34.05604934, 34.06939984, 34.08275035, 34.09610085, 34.10945135, 34.12280185, 34.13615236, 34.14950286, 34.16285336, 34.17620386, 34.18955437, 34.20290487, 34.21625537, 34.22960587, 34.24295638, 34.25630688, 34.26965738, 34.28300788, 34.29635839, 34.30970889, 34.32305939, 34.33640989, 34.3497604, 34.3631109, 34.3764614, 34.3898119, 34.40316241, 34.41651291, 34.42986341, 34.44321391, 34.45656442, 34.46991492, 34.48326542, 34.49661592, 34.50996643, 34.52331693, 34.53666743, 34.55001793, 34.56336844, 34.57671894, 34.59006944, 34.60341995, 34.61677045, 34.63012095, 34.64347145, 34.65682196, 34.67017246, 34.68352296, 34.69687346, 34.71022397, 34.72357447, 34.73692497, 34.75027547, 34.76362598, 34.77697648, 34.79032698, 34.80367748, 34.81702799, 34.83037849, 34.84372899, 34.85707949, 34.87043, 34.8837805, 34.897131, 34.9104815, 34.92383201, 34.93718251, 34.95053301, 34.96388351, 34.97723402, 34.99058452, 35.00393502, 35.01728552, 35.03063603, 35.04398653, 35.05733703, 35.07068753, 35.08403804, 35.09738854, 35.11073904, 35.12408955, 35.13744005, 35.15079055, 35.16414105, 35.17749156, 35.19084206, 35.20419256, 35.21754306, 35.23089357, 35.24424407, 35.25759457, 35.27094507, 35.28429558, 35.29764608, 35.31099658, 35.32434708, 35.33769759, 35.35104809, 35.36439859, 35.37774909, 35.3910996, 35.4044501, 35.4178006, 35.4311511, 35.44450161, 35.45785211, 35.47120261, 35.48455311, 35.49790362, 35.51125412, 35.52460462, 35.53795512, 35.55130563, 35.56465613, 35.57800663, 35.59135714, 35.60470764, 35.61805814, 35.63140864, 35.64475915, 35.65810965, 35.67146015, 35.68481065, 35.69816116, 35.71151166, 35.72486216, 35.73821266, 35.75156317, 35.76491367, 35.77826417, 35.79161467, 35.80496518, 35.81831568, 35.83166618, 35.84501668, 35.85836719, 35.87171769, 35.88506819, 35.89841869, 35.9117692, 35.9251197, 35.9384702, 35.9518207, 35.96517121, 35.97852171, 35.99187221, 36.00522271, 36.01857322, 36.03192372, 36.04527422, 36.05862472, 36.07197523, 36.08532573, 36.09867623, 36.11202674, 36.12537724, 36.13872774, 36.15207824, 36.16542875, 36.17877925, 36.19212975, 36.20548025, 36.21883076, 36.23218126, 36.24553176, 36.25888226, 36.27223277, 36.28558327, 36.29893377, 36.31228427, 36.32563478, 36.33898528, 36.35233578, 36.36568628, 36.37903679, 36.39238729, 36.40573779, 36.41908829, 36.4324388, 36.4457893, 36.4591398, 36.4724903, 36.48584081, 36.49919131, 36.51254181, 36.52589231, 36.53924282, 36.55259332, 36.56594382, 36.57929433, 36.59264483, 36.60599533, 36.61934583, 36.63269634, 36.64604684, 36.65939734, 36.67274784, 36.68609835, 36.69944885, 36.71279935, 36.72614985, 36.73950036, 36.75285086, 36.76620136, 36.77955186, 36.79290237, 36.80625287, 36.81960337, 36.83295387, 36.84630438, 36.85965488, 36.87300538, 36.88635588, 36.89970639, 36.91305689, 36.92640739, 36.93975789, 36.9531084, 36.9664589, 36.9798094, 36.9931599, 37.00651041, 37.01986091, 37.03321141, 37.04656191, 37.05991242, 37.07326292, 37.08661342, 37.09996393, 37.11331443, 37.12666493, 37.14001543, 37.15336594, 37.16671644, 37.18006694, 37.19341744, 37.20676795, 37.22011845, 37.23346895, 37.24681945, 37.26016996, 37.27352046, 37.28687096, 37.30022146, 37.31357197, 37.32692247, 37.34027297, 37.35362347, 37.36697398, 37.38032448, 37.39367498, 37.40702548, 37.42037599, 37.43372649, 37.44707699, 37.46042749, 37.473778, 37.4871285, 37.500479, 37.5138295, 37.52718001, 37.54053051, 37.55388101, 37.56723151, 37.58058202, 37.59393252, 37.60728302, 37.62063353, 37.63398403, 37.64733453, 37.66068503, 37.67403554, 37.68738604, 37.70073654, 37.71408704, 37.72743755, 37.74078805, 37.75413855, 37.76748905, 37.78083956, 37.79419006, 37.80754056, 37.82089106, 37.83424157, 37.84759207, 37.86094257, 37.87429307, 37.88764358, 37.90099408, 37.91434458, 37.92769508, 37.94104559, 37.95439609, 37.96774659, 37.98109709, 37.9944476, 38.0077981, 38.0211486, 38.0344991, 38.04784961, 38.06120011, 38.07455061, 38.08790112, 38.10125162, 38.11460212, 38.12795262, 38.14130313, 38.15465363, 38.16800413, 38.18135463, 38.19470514, 38.20805564, 38.22140614, 38.23475664, 38.24810715, 38.26145765, 38.27480815, 38.28815865, 38.30150916, 38.31485966, 38.32821016, 38.34156066, 38.35491117, 38.36826167, 38.38161217, 38.39496267, 38.40831318, 38.42166368, 38.43501418, 38.44836468, 38.46171519, 38.47506569, 38.48841619, 38.50176669, 38.5151172, 38.5284677, 38.5418182, 38.5551687, 38.56851921, 38.58186971, 38.59522021, 38.60857072, 38.62192122, 38.63527172, 38.64862222, 38.66197273, 38.67532323, 38.68867373, 38.70202423, 38.71537474, 38.72872524, 38.74207574, 38.75542624, 38.76877675, 38.78212725, 38.79547775, 38.80882825, 38.82217876, 38.83552926, 38.84887976, 38.86223026, 38.87558077, 38.88893127, 38.90228177, 38.91563227, 38.92898278, 38.94233328, 38.95568378, 38.96903428, 38.98238479, 38.99573529, 39.00908579, 39.02243629, 39.0357868, 39.0491373, 39.0624878, 39.0758383, 39.08918881, 39.10253931, 39.11588981, 39.12924032, 39.14259082, 39.15594132, 39.16929182, 39.18264233, 39.19599283, 39.20934333, 39.22269383, 39.23604434, 39.24939484, 39.26274534, 39.27609584, 39.28944635, 39.30279685, 39.31614735, 39.32949785, 39.34284836, 39.35619886, 39.36954936, 39.38289986, 39.39625037, 39.40960087, 39.42295137, 39.43630187, 39.44965238, 39.46300288, 39.47635338, 39.48970388, 39.50305439, 39.51640489, 39.52975539, 39.54310589, 39.5564564, 39.5698069, 39.5831574, 39.59650791, 39.60985841, 39.62320891, 39.63655941, 39.64990992, 39.66326042, 39.67661092, 39.68996142, 39.70331193, 39.71666243, 39.73001293, 39.74336343, 39.75671394, 39.77006444, 39.78341494, 39.79676544, 39.81011595, 39.82346645, 39.83681695, 39.85016745, 39.86351796, 39.87686846, 39.89021896, 39.90356946, 39.91691997, 39.93027047, 39.94362097, 39.95697147, 39.97032198, 39.98367248, 39.99702298, 40.01037348, 40.02372399, 40.03707449, 40.05042499, 40.06377549, 40.077126, 40.0904765, 40.103827, 40.11717751, 40.13052801, 40.14387851, 40.15722901, 40.17057952, 40.18393002, 40.19728052, 40.21063102, 40.22398153, 40.23733203, 40.25068253, 40.26403303, 40.27738354, 40.29073404, 40.30408454, 40.31743504, 40.33078555, 40.34413605, 40.35748655, 40.37083705, 40.38418756, 40.39753806, 40.41088856, 40.42423906, 40.43758957, 40.45094007, 40.46429057, 40.47764107, 40.49099158, 40.50434208, 40.51769258, 40.53104308, 40.54439359, 40.55774409, 40.57109459, 40.5844451, 40.5977956, 40.6111461, 40.6244966, 40.63784711, 40.65119761, 40.66454811, 40.67789861, 40.69124912, 40.70459962, 40.71795012, 40.73130062, 40.74465113, 40.75800163, 40.77135213, 40.78470263, 40.79805314, 40.81140364, 40.82475414, 40.83810464, 40.85145515, 40.86480565, 40.87815615, 40.89150665, 40.90485716, 40.91820766, 40.93155816, 40.94490866, 40.95825917, 40.97160967, 40.98496017, 40.99831067, 41.01166118, 41.02501168, 41.03836218, 41.05171268, 41.06506319, 41.07841369, 41.09176419, 41.1051147, 41.1184652, 41.1318157, 41.1451662, 41.15851671, 41.17186721, 41.18521771, 41.19856821, 41.21191872, 41.22526922, 41.23861972, 41.25197022, 41.26532073, 41.27867123, 41.29202173, 41.30537223, 41.31872274, 41.33207324, 41.34542374, 41.35877424, 41.37212475, 41.38547525, 41.39882575, 41.41217625, 41.42552676, 41.43887726, 41.45222776, 41.46557826, 41.47892877, 41.49227927, 41.50562977, 41.51898027, 41.53233078, 41.54568128, 41.55903178, 41.57238228, 41.58573279, 41.59908329, 41.61243379, 41.6257843, 41.6391348, 41.6524853, 41.6658358, 41.67918631, 41.69253681, 41.70588731, 41.71923781, 41.73258832, 41.74593882, 41.75928932, 41.77263982, 41.78599033, 41.79934083, 41.81269133, 41.82604183, 41.83939234, 41.85274284, 41.86609334, 41.87944384, 41.89279435, 41.90614485, 41.91949535, 41.93284585, 41.94619636, 41.95954686, 41.97289736, 41.98624786, 41.99959837, 42.01294887, 42.02629937, 42.03964987, 42.05300038, 42.06635088, 42.07970138, 42.09305189, 42.10640239, 42.11975289, 42.13310339, 42.1464539, 42.1598044, 42.1731549, 42.1865054, 42.19985591, 42.21320641, 42.22655691, 42.23990741, 42.25325792, 42.26660842, 42.27995892, 42.29330942, 42.30665993, 42.32001043, 42.33336093, 42.34671143, 42.36006194, 42.37341244, 42.38676294, 42.40011344, 42.41346395, 42.42681445, 42.44016495, 42.45351545, 42.46686596, 42.48021646, 42.49356696, 42.50691746, 42.52026797, 42.53361847, 42.54696897, 42.56031947, 42.57366998, 42.58702048, 42.60037098, 42.61372149, 42.62707199, 42.64042249, 42.65377299, 42.6671235, 42.680474, 42.6938245, 42.707175, 42.72052551, 42.73387601, 42.74722651, 42.76057701, 42.77392752, 42.78727802, 42.80062852, 42.81397902, 42.82732953, 42.84068003, 42.85403053, 42.86738103, 42.88073154, 42.89408204, 42.90743254, 42.92078304, 42.93413355, 42.94748405, 42.96083455, 42.97418505, 42.98753556, 43.00088606, 43.01423656, 43.02758706, 43.04093757, 43.05428807, 43.06763857, 43.08098907, 43.09433958, 43.10769008, 43.12104058, 43.13439109, 43.14774159, 43.16109209, 43.17444259, 43.1877931, 43.2011436, 43.2144941, 43.2278446, 43.24119511, 43.25454561, 43.26789611, 43.28124661, 43.29459712, 43.30794762, 43.32129812, 43.33464862, 43.34799913, 43.36134963, 43.37470013, 43.38805063, 43.40140114, 43.41475164, 43.42810214, 43.44145264, 43.45480315, 43.46815365, 43.48150415, 43.49485465, 43.50820516, 43.52155566, 43.53490616, 43.54825666, 43.56160717, 43.57495767, 43.58830817, 43.60165868, 43.61500918, 43.62835968, 43.64171018, 43.65506069, 43.66841119, 43.68176169, 43.69511219, 43.7084627, 43.7218132, 43.7351637, 43.7485142, 43.76186471, 43.77521521, 43.78856571, 43.80191621, 43.81526672, 43.82861722, 43.84196772, 43.85531822, 43.86866873, 43.88201923, 43.89536973, 43.90872023, 43.92207074, 43.93542124, 43.94877174, 43.96212224, 43.97547275, 43.98882325, 44.00217375, 44.01552425, 44.02887476, 44.04222526, 44.05557576, 44.06892626, 44.08227677, 44.09562727, 44.10897777, 44.12232828, 44.13567878, 44.14902928, 44.16237978, 44.17573029, 44.18908079, 44.20243129, 44.21578179, 44.2291323, 44.2424828, 44.2558333, 44.2691838, 44.28253431, 44.29588481, 44.30923531, 44.32258581, 44.33593632, 44.34928682, 44.36263732, 44.37598782, 44.38933833, 44.40268883, 44.41603933, 44.42938983, 44.44274034, 44.45609084, 44.46944134, 44.48279184, 44.49614235, 44.50949285, 44.52284335, 44.53619385, 44.54954436, 44.56289486, 44.57624536, 44.58959586, 44.60294637, 44.61629687, 44.62964737, 44.64299788, 44.65634838, 44.66969888, 44.68304938, 44.69639989, 44.70975039, 44.72310089, 44.73645139, 44.7498019, 44.7631524, 44.7765029, 44.7898534, 44.80320391, 44.81655441, 44.82990491, 44.84325541, 44.85660592, 44.86995642, 44.88330692, 44.89665742, 44.91000793, 44.92335843, 44.93670893, 44.95005943, 44.96340994, 44.97676044, 44.99011094, 45.00346144, 45.01681195, 45.03016245, 45.04351295, 45.05686345, 45.07021396, 45.08356446, 45.09691496, 45.11026547, 45.12361597, 45.13696647, 45.15031697, 45.16366748, 45.17701798, 45.19036848, 45.20371898, 45.21706949, 45.23041999, 45.24377049, 45.25712099, 45.2704715, 45.283822, 45.2971725, 45.310523, 45.32387351, 45.33722401, 45.35057451, 45.36392501, 45.37727552, 45.39062602, 45.40397652, 45.41732702, 45.43067753, 45.44402803, 45.45737853, 45.47072903, 45.48407954, 45.49743004, 45.51078054, 45.52413104, 45.53748155, 45.55083205, 45.56418255, 45.57753305, 45.59088356, 45.60423406, 45.61758456, 45.63093507, 45.64428557, 45.65763607, 45.67098657, 45.68433708, 45.69768758, 45.71103808, 45.72438858, 45.73773909, 45.75108959, 45.76444009, 45.77779059, 45.7911411, 45.8044916, 45.8178421, 45.8311926, 45.84454311, 45.85789361, 45.87124411, 45.88459461, 45.89794512, 45.91129562, 45.92464612, 45.93799662, 45.95134713, 45.96469763, 45.97804813, 45.99139863, 46.00474914, 46.01809964, 46.03145014, 46.04480064, 46.05815115, 46.07150165, 46.08485215, 46.09820266, 46.11155316, 46.12490366, 46.13825416, 46.15160467, 46.16495517, 46.17830567, 46.19165617, 46.20500668, 46.21835718, 46.23170768, 46.24505818, 46.25840869, 46.27175919, 46.28510969, 46.29846019, 46.3118107, 46.3251612, 46.3385117, 46.3518622, 46.36521271, 46.37856321, 46.39191371, 46.40526421, 46.41861472, 46.43196522, 46.44531572, 46.45866622, 46.47201673, 46.48536723, 46.49871773, 46.51206823, 46.52541874, 46.53876924, 46.55211974, 46.56547024, 46.57882075, 46.59217125, 46.60552175, 46.61887226, 46.63222276, 46.64557326, 46.65892376, 46.67227427, 46.68562477, 46.69897527, 46.71232577, 46.72567628, 46.73902678, 46.75237728, 46.76572778, 46.77907829, 46.79242879, 46.80577929, 46.81912979, 46.8324803, 46.8458308, 46.8591813, 46.8725318, 46.88588231, 46.89923281, 46.91258331, 46.92593381, 46.93928432, 46.95263482, 46.96598532, 46.97933582, 46.99268633, 47.00603683, 47.01938733, 47.03273783, 47.04608834, 47.05943884, 47.07278934, 47.08613984, 47.09949035, 47.11284085, 47.12619135, 47.13954186, 47.15289236, 47.16624286, 47.17959336, 47.19294387, 47.20629437, 47.21964487, 47.23299537, 47.24634588, 47.25969638, 47.27304688, 47.28639738, 47.29974789, 47.31309839, 47.32644889, 47.33979939, 47.3531499, 47.3665004, 47.3798509, 47.3932014, 47.40655191, 47.41990241, 47.43325291, 47.44660341, 47.45995392, 47.47330442, 47.48665492, 47.50000542, 47.51335593, 47.52670643, 47.54005693, 47.55340743, 47.56675794, 47.58010844, 47.59345894, 47.60680945, 47.62015995, 47.63351045, 47.64686095, 47.66021146, 47.67356196, 47.68691246, 47.70026296, 47.71361347, 47.72696397, 47.74031447, 47.75366497, 47.76701548, 47.78036598, 47.79371648, 47.80706698, 47.82041749, 47.83376799, 47.84711849, 47.86046899, 47.8738195, 47.88717, 47.9005205, 47.913871, 47.92722151, 47.94057201, 47.95392251, 47.96727301, 47.98062352, 47.99397402, 48.00732452, 48.02067502, 48.03402553, 48.04737603, 48.06072653, 48.07407703, 48.08742754, 48.10077804, 48.11412854, 48.12747905, 48.14082955, 48.15418005, 48.16753055, 48.18088106, 48.19423156, 48.20758206, 48.22093256, 48.23428307, 48.24763357, 48.26098407, 48.27433457, 48.28768508, 48.30103558, 48.31438608, 48.32773658, 48.34108709, 48.35443759, 48.36778809, 48.38113859, 48.3944891, 48.4078396, 48.4211901, 48.4345406, 48.44789111, 48.46124161, 48.47459211, 48.48794261, 48.50129312, 48.51464362, 48.52799412, 48.54134462, 48.55469513, 48.56804563, 48.58139613, 48.59474663, 48.60809714, 48.62144764, 48.63479814, 48.64814865, 48.66149915, 48.67484965, 48.68820015, 48.70155066, 48.71490116, 48.72825166, 48.74160216, 48.75495267, 48.76830317, 48.78165367, 48.79500417, 48.80835468, 48.82170518, 48.83505568, 48.84840618, 48.86175669, 48.87510719, 48.88845769, 48.90180819, 48.9151587, 48.9285092, 48.9418597, 48.9552102, 48.96856071, 48.98191121, 48.99526171, 49.00861221, 49.02196272, 49.03531322, 49.04866372, 49.06201422, 49.07536473, 49.08871523, 49.10206573, 49.11541624, 49.12876674, 49.14211724, 49.15546774, 49.16881825, 49.18216875, 49.19551925, 49.20886975, 49.22222026, 49.23557076, 49.24892126, 49.26227176, 49.27562227, 49.28897277, 49.30232327, 49.31567377, 49.32902428, 49.34237478, 49.35572528, 49.36907578, 49.38242629, 49.39577679, 49.40912729, 49.42247779, 49.4358283, 49.4491788, 49.4625293, 49.4758798, 49.48923031, 49.50258081, 49.51593131, 49.52928181, 49.54263232, 49.55598282, 49.56933332, 49.58268382, 49.59603433, 49.60938483, 49.62273533, 49.63608584, 49.64943634, 49.66278684, 49.67613734, 49.68948785, 49.70283835, 49.71618885, 49.72953935, 49.74288986, 49.75624036, 49.76959086, 49.78294136, 49.79629187, 49.80964237, 49.82299287, 49.83634337, 49.84969388, 49.86304438, 49.87639488, 49.88974538, 49.90309589, 49.91644639, 49.92979689, 49.94314739, 49.9564979, 49.9698484, 49.9831989, 49.9965494, 50.00989991, 50.02325041, 50.03660091, 50.04995141, 50.06330192, 50.07665242, 50.09000292, 50.10335342, 50.11670393, 50.13005443, 50.14340493, 50.15675544, 50.17010594, 50.18345644, 50.19680694, 50.21015745, 50.22350795, 50.23685845, 50.25020895, 50.26355946, 50.27690996, 50.29026046, 50.30361096, 50.31696147, 50.33031197, 50.34366247, 50.35701297, 50.37036348, 50.38371398, 50.39706448, 50.41041498, 50.42376549, 50.43711599, 50.45046649, 50.46381699, 50.4771675, 50.490518, 50.5038685, 50.517219, 50.53056951, 50.54392001, 50.55727051, 50.57062101, 50.58397152, 50.59732202, 50.61067252, 50.62402303, 50.63737353, 50.65072403, 50.66407453, 50.67742504, 50.69077554, 50.70412604, 50.71747654, 50.73082705, 50.74417755, 50.75752805, 50.77087855, 50.78422906, 50.79757956, 50.81093006, 50.82428056, 50.83763107, 50.85098157, 50.86433207, 50.87768257, 50.89103308, 50.90438358, 50.91773408, 50.93108458, 50.94443509, 50.95778559, 50.97113609, 50.98448659, 50.9978371, 51.0111876, 51.0245381, 51.0378886, 51.05123911, 51.06458961, 51.07794011, 51.09129061, 51.10464112, 51.11799162, 51.13134212, 51.14469263, 51.15804313, 51.17139363, 51.18474413, 51.19809464, 51.21144514, 51.22479564, 51.23814614, 51.25149665, 51.26484715, 51.27819765, 51.29154815, 51.30489866, 51.31824916, 51.33159966, 51.34495016, 51.35830067, 51.37165117, 51.38500167, 51.39835217, 51.41170268, 51.42505318, 51.43840368, 51.45175418, 51.46510469, 51.47845519, 51.49180569, 51.50515619, 51.5185067, 51.5318572, 51.5452077, 51.5585582, 51.57190871, 51.58525921, 51.59860971, 51.61196022, 51.62531072, 51.63866122, 51.65201172, 51.66536223, 51.67871273, 51.69206323, 51.70541373, 51.71876424, 51.73211474, 51.74546524, 51.75881574, 51.77216625, 51.78551675, 51.79886725, 51.81221775, 51.82556826, 51.83891876, 51.85226926, 51.86561976, 51.87897027, 51.89232077, 51.90567127, 51.91902177, 51.93237228, 51.94572278, 51.95907328, 51.97242378, 51.98577429, 51.99912479, 52.01247529, 52.02582579, 52.0391763, 52.0525268, 52.0658773, 52.0792278, 52.09257831, 52.10592881, 52.11927931, 52.13262982, 52.14598032, 52.15933082, 52.17268132, 52.18603183, 52.19938233, 52.21273283, 52.22608333, 52.23943384, 52.25278434, 52.26613484, 52.27948534, 52.29283585, 52.30618635, 52.31953685, 52.33288735, 52.34623786, 52.35958836, 52.37293886, 52.38628936, 52.39963987, 52.41299037, 52.42634087, 52.43969137, 52.45304188, 52.46639238, 52.47974288, 52.49309338, 52.50644389, 52.51979439, 52.53314489, 52.54649539, 52.5598459, 52.5731964, 52.5865469, 52.5998974, 52.61324791, 52.62659841, 52.63994891, 52.65329942, 52.66664992, 52.68000042, 52.69335092, 52.70670143, 52.72005193, 52.73340243, 52.74675293, 52.76010344, 52.77345394, 52.78680444, 52.80015494, 52.81350545, 52.82685595, 52.84020645, 52.85355695, 52.86690746, 52.88025796, 52.89360846, 52.90695896, 52.92030947, 52.93365997, 52.94701047, 52.96036097, 52.97371148, 52.98706198, 53.00041248, 53.01376298, 53.02711349, 53.04046399, 53.05381449, 53.06716499, 53.0805155, 53.093866, 53.1072165, 53.12056701, 53.13391751, 53.14726801, 53.16061851, 53.17396902, 53.18731952, 53.20067002, 53.21402052, 53.22737103, 53.24072153, 53.25407203, 53.26742253, 53.28077304, 53.29412354, 53.30747404, 53.32082454, 53.33417505, 53.34752555, 53.36087605, 53.37422655, 53.38757706, 53.40092756, 53.41427806, 53.42762856, 53.44097907, 53.45432957, 53.46768007, 53.48103057, 53.49438108, 53.50773158, 53.52108208, 53.53443258, 53.54778309, 53.56113359, 53.57448409, 53.58783459, 53.6011851, 53.6145356, 53.6278861, 53.64123661, 53.65458711, 53.66793761, 53.68128811, 53.69463862, 53.70798912, 53.72133962, 53.73469012, 53.74804063, 53.76139113, 53.77474163, 53.78809213, 53.80144264, 53.81479314, 53.82814364, 53.84149414, 53.85484465, 53.86819515, 53.88154565, 53.89489615, 53.90824666, 53.92159716, 53.93494766, 53.94829816, 53.96164867, 53.97499917, 53.98834967, 54.00170017, 54.01505068, 54.02840118, 54.04175168, 54.05510218, 54.06845269, 54.08180319, 54.09515369, 54.10850419, 54.1218547, 54.1352052, 54.1485557, 54.16190621, 54.17525671, 54.18860721, 54.20195771, 54.21530822, 54.22865872, 54.24200922, 54.25535972, 54.26871023, 54.28206073, 54.29541123, 54.30876173, 54.32211224, 54.33546274, 54.34881324, 54.36216374, 54.37551425, 54.38886475, 54.40221525, 54.41556575, 54.42891626, 54.44226676, 54.45561726, 54.46896776, 54.48231827, 54.49566877, 54.50901927, 54.52236977, 54.53572028, 54.54907078, 54.56242128, 54.57577178, 54.58912229, 54.60247279, 54.61582329, 54.6291738, 54.6425243, 54.6558748, 54.6692253, 54.68257581, 54.69592631, 54.70927681, 54.72262731, 54.73597782, 54.74932832, 54.76267882, 54.77602932, 54.78937983, 54.80273033, 54.81608083, 54.82943133, 54.84278184, 54.85613234, 54.86948284, 54.88283334, 54.89618385, 54.90953435, 54.92288485, 54.93623535, 54.94958586, 54.96293636, 54.97628686, 54.98963736, 55.00298787, 55.01633837, 55.02968887, 55.04303937, 55.05638988, 55.06974038, 55.08309088, 55.09644138, 55.10979189, 55.12314239, 55.13649289, 55.1498434, 55.1631939, 55.1765444, 55.1898949, 55.20324541, 55.21659591, 55.22994641, 55.24329691, 55.25664742, 55.26999792, 55.28334842, 55.29669892, 55.31004943, 55.32339993, 55.33675043, 55.35010093, 55.36345144, 55.37680194, 55.39015244, 55.40350294, 55.41685345, 55.43020395, 55.44355445, 55.45690495, 55.47025546, 55.48360596, 55.49695646, 55.51030696, 55.52365747, 55.53700797, 55.55035847, 55.56370897, 55.57705948, 55.59040998, 55.60376048, 55.61711099, 55.63046149, 55.64381199, 55.65716249, 55.670513, 55.6838635, 55.697214, 55.7105645, 55.72391501, 55.73726551, 55.75061601, 55.76396651, 55.77731702, 55.79066752, 55.80401802, 55.81736852, 55.83071903, 55.84406953, 55.85742003, 55.87077053, 55.88412104, 55.89747154, 55.91082204, 55.92417254, 55.93752305, 55.95087355, 55.96422405, 55.97757455, 55.99092506, 56.00427556, 56.01762606, 56.03097656, 56.04432707, 56.05767757, 56.07102807, 56.08437857, 56.09772908, 56.11107958, 56.12443008, 56.13778059, 56.15113109, 56.16448159, 56.17783209, 56.1911826, 56.2045331, 56.2178836, 56.2312341, 56.24458461, 56.25793511, 56.27128561, 56.28463611, 56.29798662, 56.31133712, 56.32468762, 56.33803812, 56.35138863, 56.36473913, 56.37808963, 56.39144013, 56.40479064, 56.41814114, 56.43149164, 56.44484214, 56.45819265, 56.47154315, 56.48489365, 56.49824415, 56.51159466, 56.52494516, 56.53829566, 56.55164616, 56.56499667, 56.57834717, 56.59169767, 56.60504817, 56.61839868, 56.63174918, 56.64509968, 56.65845019, 56.67180069, 56.68515119, 56.69850169, 56.7118522, 56.7252027, 56.7385532, 56.7519037, 56.76525421, 56.77860471, 56.79195521, 56.80530571, 56.81865622, 56.83200672, 56.84535722, 56.85870772, 56.87205823, 56.88540873, 56.89875923, 56.91210973, 56.92546024, 56.93881074, 56.95216124, 56.96551174, 56.97886225, 56.99221275, 57.00556325, 57.01891375, 57.03226426, 57.04561476, 57.05896526, 57.07231576, 57.08566627, 57.09901677, 57.11236727, 57.12571778, 57.13906828, 57.15241878, 57.16576928, 57.17911979, 57.19247029, 57.20582079, 57.21917129, 57.2325218, 57.2458723, 57.2592228, 57.2725733, 57.28592381, 57.29927431, 57.31262481, 57.32597531, 57.33932582, 57.35267632, 57.36602682, 57.37937732, 57.39272783, 57.40607833, 57.41942883, 57.43277933, 57.44612984, 57.45948034, 57.47283084, 57.48618134, 57.49953185, 57.51288235, 57.52623285, 57.53958335, 57.55293386, 57.56628436, 57.57963486, 57.59298536, 57.60633587, 57.61968637, 57.63303687, 57.64638738, 57.65973788, 57.67308838, 57.68643888, 57.69978939, 57.71313989, 57.72649039, 57.73984089, 57.7531914, 57.7665419, 57.7798924, 57.7932429, 57.80659341, 57.81994391, 57.83329441, 57.84664491, 57.85999542, 57.87334592, 57.88669642, 57.90004692, 57.91339743, 57.92674793, 57.94009843, 57.95344893, 57.96679944, 57.98014994, 57.99350044, 58.00685094, 58.02020145, 58.03355195, 58.04690245, 58.06025295, 58.07360346, 58.08695396, 58.10030446, 58.11365496, 58.12700547, 58.14035597, 58.15370647, 58.16705698, 58.18040748, 58.19375798, 58.20710848, 58.22045899, 58.23380949, 58.24715999, 58.26051049, 58.273861, 58.2872115, 58.300562, 58.3139125, 58.32726301, 58.34061351, 58.35396401, 58.36731451, 58.38066502, 58.39401552, 58.40736602, 58.42071652, 58.43406703, 58.44741753, 58.46076803, 58.47411853, 58.48746904, 58.50081954, 58.51417004, 58.52752054, 58.54087105, 58.55422155, 58.56757205, 58.58092255, 58.59427306, 58.60762356, 58.62097406, 58.63432457, 58.64767507, 58.66102557, 58.67437607, 58.68772658, 58.70107708, 58.71442758, 58.72777808, 58.74112859, 58.75447909, 58.76782959, 58.78118009, 58.7945306, 58.8078811, 58.8212316, 58.8345821, 58.84793261, 58.86128311, 58.87463361, 58.88798411, 58.90133462, 58.91468512, 58.92803562, 58.94138612, 58.95473663, 58.96808713, 58.98143763, 58.99478813, 59.00813864, 59.02148914, 59.03483964, 59.04819014, 59.06154065, 59.07489115, 59.08824165, 59.10159215, 59.11494266, 59.12829316, 59.14164366, 59.15499417, 59.16834467, 59.18169517, 59.19504567, 59.20839618, 59.22174668, 59.23509718, 59.24844768, 59.26179819, 59.27514869, 59.28849919, 59.30184969, 59.3152002, 59.3285507, 59.3419012, 59.3552517, 59.36860221, 59.38195271, 59.39530321, 59.40865371, 59.42200422, 59.43535472, 59.44870522, 59.46205572, 59.47540623, 59.48875673, 59.50210723, 59.51545773, 59.52880824, 59.54215874, 59.55550924, 59.56885974, 59.58221025, 59.59556075, 59.60891125, 59.62226175, 59.63561226, 59.64896276, 59.66231326, 59.67566377, 59.68901427, 59.70236477, 59.71571527, 59.72906578, 59.74241628, 59.75576678, 59.76911728, 59.78246779, 59.79581829, 59.80916879, 59.82251929, 59.8358698, 59.8492203, 59.8625708, 59.8759213, 59.88927181, 59.90262231, 59.91597281, 59.92932331, 59.94267382, 59.95602432, 59.96937482, 59.98272532, 59.99607583, 60.00942633, 60.02277683, 60.03612733, 60.04947784, 60.06282834, 60.07617884, 60.08952934, 60.10287985, 60.11623035, 60.12958085, 60.14293136, 60.15628186, 60.16963236, 60.18298286, 60.19633337, 60.20968387, 60.22303437, 60.23638487, 60.24973538, 60.26308588, 60.27643638, 60.28978688, 60.30313739, 60.31648789, 60.32983839, 60.34318889, 60.3565394, 60.3698899, 60.3832404, 60.3965909, 60.40994141, 60.42329191, 60.43664241, 60.44999291, 60.46334342, 60.47669392, 60.49004442, 60.50339492, 60.51674543, 60.53009593, 60.54344643, 60.55679693, 60.57014744, 60.58349794, 60.59684844, 60.61019894, 60.62354945, 60.63689995, 60.65025045, 60.66360096, 60.67695146, 60.69030196, 60.70365246, 60.71700297, 60.73035347, 60.74370397, 60.75705447, 60.77040498, 60.78375548, 60.79710598, 60.81045648, 60.82380699, 60.83715749, 60.85050799, 60.86385849, 60.877209, 60.8905595, 60.90391, 60.9172605, 60.93061101, 60.94396151, 60.95731201, 60.97066251, 60.98401302, 60.99736352, 61.01071402, 61.02406452, 61.03741503, 61.05076553, 61.06411603, 61.07746653, 61.09081704, 61.10416754, 61.11751804, 61.13086855, 61.14421905, 61.15756955, 61.17092005, 61.18427056, 61.19762106, 61.21097156, 61.22432206, 61.23767257, 61.25102307, 61.26437357, 61.27772407, 61.29107458, 61.30442508, 61.31777558, 61.33112608, 61.34447659, 61.35782709, 61.37117759, 61.38452809, 61.3978786, 61.4112291, 61.4245796, 61.4379301, 61.45128061, 61.46463111, 61.47798161, 61.49133211, 61.50468262, 61.51803312, 61.53138362, 61.54473412, 61.55808463, 61.57143513, 61.58478563, 61.59813613, 61.61148664, 61.62483714, 61.63818764, 61.65153815, 61.66488865, 61.67823915, 61.69158965, 61.70494016, 61.71829066, 61.73164116, 61.74499166, 61.75834217, 61.77169267, 61.78504317, 61.79839367, 61.81174418, 61.82509468, 61.83844518, 61.85179568, 61.86514619, 61.87849669, 61.89184719, 61.90519769, 61.9185482, 61.9318987, 61.9452492, 61.9585997, 61.97195021, 61.98530071, 61.99865121, 62.01200171, 62.02535222, 62.03870272, 62.05205322, 62.06540372, 62.07875423, 62.09210473, 62.10545523, 62.11880573, 62.13215624, 62.14550674, 62.15885724, 62.17220775, 62.18555825, 62.19890875, 62.21225925, 62.22560976, 62.23896026, 62.25231076, 62.26566126, 62.27901177, 62.29236227, 62.30571277, 62.31906327, 62.33241378, 62.34576428, 62.35911478, 62.37246528, 62.38581579, 62.39916629, 62.41251679, 62.42586729, 62.4392178, 62.4525683, 62.4659188, 62.4792693, 62.49261981, 62.50597031, 62.51932081, 62.53267131, 62.54602182, 62.55937232, 62.57272282, 62.58607332, 62.59942383, 62.61277433, 62.62612483, 62.63947534, 62.65282584, 62.66617634, 62.67952684, 62.69287735, 62.70622785, 62.71957835, 62.73292885, 62.74627936, 62.75962986, 62.77298036, 62.78633086, 62.79968137, 62.81303187, 62.82638237, 62.83973287, 62.85308338, 62.86643388, 62.87978438, 62.89313488, 62.90648539, 62.91983589, 62.93318639, 62.94653689, 62.9598874, 62.9732379, 62.9865884, 62.9999389, 63.01328941, 63.02663991, 63.03999041, 63.05334091, 63.06669142, 63.08004192, 63.09339242, 63.10674292, 63.12009343, 63.13344393, 63.14679443, 63.16014494, 63.17349544, 63.18684594, 63.20019644, 63.21354695, 63.22689745, 63.24024795, 63.25359845, 63.26694896, 63.28029946, 63.29364996, 63.30700046, 63.32035097, 63.33370147, 63.34705197, 63.36040247, 63.37375298, 63.38710348, 63.40045398, 63.41380448, 63.42715499, 63.44050549, 63.45385599, 63.46720649, 63.480557, 63.4939075, 63.507258, 63.5206085, 63.53395901, 63.54730951, 63.56066001, 63.57401051, 63.58736102, 63.60071152, 63.61406202, 63.62741252, 63.64076303, 63.65411353, 63.66746403, 63.68081454, 63.69416504, 63.70751554, 63.72086604, 63.73421655, 63.74756705, 63.76091755, 63.77426805, 63.78761856, 63.80096906, 63.81431956, 63.82767006, 63.84102057, 63.85437107, 63.86772157, 63.88107207, 63.89442258, 63.90777308, 63.92112358, 63.93447408, 63.94782459, 63.96117509, 63.97452559, 63.98787609, 64.0012266, 64.0145771, 64.0279276, 64.0412781, 64.05462861, 64.06797911, 64.08132961, 64.09468011, 64.10803062, 64.12138112, 64.13473162, 64.14808213, 64.16143263, 64.17478313, 64.18813363, 64.20148414, 64.21483464, 64.22818514, 64.24153564, 64.25488615, 64.26823665, 64.28158715, 64.29493765, 64.30828816, 64.32163866, 64.33498916, 64.34833966, 64.36169017, 64.37504067, 64.38839117, 64.40174167, 64.41509218, 64.42844268, 64.44179318, 64.45514368, 64.46849419, 64.48184469, 64.49519519, 64.50854569, 64.5218962, 64.5352467, 64.5485972, 64.5619477, 64.57529821, 64.58864871, 64.60199921, 64.61534971, 64.62870022, 64.64205072, 64.65540122, 64.66875173, 64.68210223, 64.69545273, 64.70880323, 64.72215374, 64.73550424, 64.74885474, 64.76220524, 64.77555575, 64.78890625, 64.80225675, 64.81560725, 64.82895776, 64.84230826, 64.85565876, 64.86900926, 64.88235977, 64.89571027, 64.90906077, 64.92241127, 64.93576178, 64.94911228, 64.96246278, 64.97581328, 64.98916379, 65.00251429, 65.01586479, 65.02921529, 65.0425658, 65.0559163, 65.0692668, 65.0826173, 65.09596781, 65.10931831, 65.12266881, 65.13601931, 65.14936982, 65.16272032, 65.17607082, 65.18942133, 65.20277183, 65.21612233, 65.22947283, 65.24282334, 65.25617384, 65.26952434, 65.28287484, 65.29622535, 65.30957585, 65.32292635, 65.33627685, 65.34962736, 65.36297786, 65.37632836, 65.38967886, 65.40302937, 65.41637987, 65.42973037, 65.44308087, 65.45643138, 65.46978188, 65.48313238, 65.49648288, 65.50983339, 65.52318389, 65.53653439, 65.54988489, 65.5632354, 65.5765859, 65.5899364, 65.6032869, 65.61663741, 65.62998791, 65.64333841, 65.65668892, 65.67003942, 65.68338992, 65.69674042, 65.71009093, 65.72344143, 65.73679193, 65.75014243, 65.76349294, 65.77684344, 65.79019394, 65.80354444, 65.81689495, 65.83024545, 65.84359595, 65.85694645, 65.87029696, 65.88364746, 65.89699796, 65.91034846, 65.92369897, 65.93704947, 65.95039997, 65.96375047, 65.97710098, 65.99045148, 66.00380198, 66.01715248, 66.03050299, 66.04385349, 66.05720399, 66.07055449, 66.083905, 66.0972555, 66.110606, 66.1239565, 66.13730701, 66.15065751, 66.16400801, 66.17735852, 66.19070902, 66.20405952, 66.21741002, 66.23076053, 66.24411103, 66.25746153, 66.27081203, 66.28416254, 66.29751304, 66.31086354, 66.32421404, 66.33756455, 66.35091505, 66.36426555, 66.37761605, 66.39096656, 66.40431706, 66.41766756, 66.43101806, 66.44436857, 66.45771907, 66.47106957, 66.48442007, 66.49777058, 66.51112108, 66.52447158, 66.53782208, 66.55117259, 66.56452309, 66.57787359, 66.59122409, 66.6045746, 66.6179251, 66.6312756, 66.64462611, 66.65797661, 66.67132711, 66.68467761, 66.69802812, 66.71137862, 66.72472912, 66.73807962, 66.75143013, 66.76478063, 66.77813113, 66.79148163, 66.80483214, 66.81818264, 66.83153314, 66.84488364, 66.85823415, 66.87158465, 66.88493515, 66.89828565, 66.91163616, 66.92498666, 66.93833716, 66.95168766, 66.96503817, 66.97838867, 66.99173917, 67.00508967, 67.01844018, 67.03179068, 67.04514118, 67.05849168, 67.07184219, 67.08519269, 67.09854319, 67.11189369, 67.1252442, 67.1385947, 67.1519452, 67.16529571, 67.17864621, 67.19199671, 67.20534721, 67.21869772, 67.23204822, 67.24539872, 67.25874922, 67.27209973, 67.28545023, 67.29880073, 67.31215123, 67.32550174, 67.33885224, 67.35220274, 67.36555324, 67.37890375, 67.39225425, 67.40560475, 67.41895525, 67.43230576, 67.44565626, 67.45900676, 67.47235726, 67.48570777, 67.49905827, 67.51240877, 67.52575927, 67.53910978, 67.55246028, 67.56581078, 67.57916128, 67.59251179, 67.60586229, 67.61921279, 67.63256329, 67.6459138, 67.6592643, 67.6726148, 67.68596531, 67.69931581, 67.71266631, 67.72601681, 67.73936732, 67.75271782, 67.76606832, 67.77941882, 67.79276933, 67.80611983, 67.81947033, 67.83282083, 67.84617134, 67.85952184, 67.87287234, 67.88622284, 67.89957335, 67.91292385, 67.92627435, 67.93962485, 67.95297536, 67.96632586, 67.97967636, 67.99302686, 68.00637737, 68.01972787, 68.03307837, 68.04642887, 68.05977938, 68.07312988, 68.08648038, 68.09983088, 68.11318139, 68.12653189, 68.13988239, 68.1532329, 68.1665834, 68.1799339, 68.1932844, 68.20663491, 68.21998541, 68.23333591, 68.24668641, 68.26003692, 68.27338742, 68.28673792, 68.30008842, 68.31343893, 68.32678943, 68.34013993, 68.35349043, 68.36684094, 68.38019144, 68.39354194, 68.40689244, 68.42024295, 68.43359345, 68.44694395, 68.46029445, 68.47364496, 68.48699546, 68.50034596, 68.51369646, 68.52704697, 68.54039747, 68.55374797, 68.56709847, 68.58044898, 68.59379948, 68.60714998, 68.62050048, 68.63385099, 68.64720149, 68.66055199, 68.6739025, 68.687253, 68.7006035, 68.713954, 68.72730451, 68.74065501, 68.75400551, 68.76735601, 68.78070652, 68.79405702, 68.80740752, 68.82075802, 68.83410853, 68.84745903, 68.86080953, 68.87416003, 68.88751054, 68.90086104, 68.91421154, 68.92756204, 68.94091255, 68.95426305, 68.96761355, 68.98096405, 68.99431456, 69.00766506, 69.02101556, 69.03436606, 69.04771657, 69.06106707, 69.07441757, 69.08776807, 69.10111858, 69.11446908, 69.12781958, 69.14117008, 69.15452059, 69.16787109, 69.18122159, 69.1945721, 69.2079226, 69.2212731, 69.2346236, 69.24797411, 69.26132461, 69.27467511, 69.28802561, 69.30137612, 69.31472662, 69.32807712, 69.34142762, 69.35477813, 69.36812863, 69.38147913, 69.39482963, 69.40818014, 69.42153064, 69.43488114, 69.44823164, 69.46158215, 69.47493265, 69.48828315, 69.50163365, 69.51498416, 69.52833466, 69.54168516, 69.55503566, 69.56838617, 69.58173667, 69.59508717, 69.60843767, 69.62178818, 69.63513868, 69.64848918, 69.66183969, 69.67519019, 69.68854069, 69.70189119, 69.7152417, 69.7285922, 69.7419427, 69.7552932, 69.76864371, 69.78199421, 69.79534471, 69.80869521, 69.82204572, 69.83539622, 69.84874672, 69.86209722, 69.87544773, 69.88879823, 69.90214873, 69.91549923, 69.92884974, 69.94220024, 69.95555074, 69.96890124, 69.98225175, 69.99560225, 70.00895275, 70.02230325, 70.03565376, 70.04900426, 70.06235476, 70.07570526, 70.08905577, 70.10240627, 70.11575677, 70.12910727, 70.14245778, 70.15580828, 70.16915878, 70.18250929, 70.19585979, 70.20921029, 70.22256079, 70.2359113, 70.2492618, 70.2626123, 70.2759628, 70.28931331, 70.30266381, 70.31601431, 70.32936481, 70.34271532, 70.35606582, 70.36941632, 70.38276682, 70.39611733, 70.40946783, 70.42281833, 70.43616883, 70.44951934, 70.46286984, 70.47622034, 70.48957084, 70.50292135, 70.51627185, 70.52962235, 70.54297285, 70.55632336, 70.56967386, 70.58302436, 70.59637486, 70.60972537, 70.62307587, 70.63642637, 70.64977688, 70.66312738, 70.67647788, 70.68982838, 70.70317889, 70.71652939, 70.72987989, 70.74323039, 70.7565809, 70.7699314, 70.7832819, 70.7966324, 70.80998291, 70.82333341, 70.83668391, 70.85003441, 70.86338492, 70.87673542, 70.89008592, 70.90343642, 70.91678693, 70.93013743, 70.94348793, 70.95683843, 70.97018894, 70.98353944, 70.99688994, 71.01024044, 71.02359095, 71.03694145, 71.05029195, 71.06364245, 71.07699296, 71.09034346, 71.10369396, 71.11704446, 71.13039497, 71.14374547, 71.15709597, 71.17044648, 71.18379698, 71.19714748, 71.21049798, 71.22384849, 71.23719899, 71.25054949, 71.26389999, 71.2772505, 71.290601, 71.3039515, 71.317302, 71.33065251, 71.34400301, 71.35735351, 71.37070401, 71.38405452, 71.39740502, 71.41075552, 71.42410602, 71.43745653, 71.45080703, 71.46415753, 71.47750803, 71.49085854, 71.50420904, 71.51755954, 71.53091004, 71.54426055, 71.55761105, 71.57096155, 71.58431205, 71.59766256, 71.61101306, 71.62436356, 71.63771406, 71.65106457, 71.66441507, 71.67776557, 71.69111608, 71.70446658, 71.71781708, 71.73116758, 71.74451809, 71.75786859, 71.77121909, 71.78456959, 71.7979201, 71.8112706, 71.8246211, 71.8379716, 71.85132211, 71.86467261, 71.87802311, 71.89137361, 71.90472412, 71.91807462, 71.93142512, 71.94477562, 71.95812613, 71.97147663, 71.98482713, 71.99817763, 72.01152814, 72.02487864, 72.03822914, 72.05157964, 72.06493015, 72.07828065, 72.09163115, 72.10498165, 72.11833216, 72.13168266, 72.14503316, 72.15838367, 72.17173417, 72.18508467, 72.19843517, 72.21178568, 72.22513618, 72.23848668, 72.25183718, 72.26518769, 72.27853819, 72.29188869, 72.30523919, 72.3185897, 72.3319402, 72.3452907, 72.3586412, 72.37199171, 72.38534221, 72.39869271, 72.41204321, 72.42539372, 72.43874422, 72.45209472, 72.46544522, 72.47879573, 72.49214623, 72.50549673, 72.51884723, 72.53219774, 72.54554824, 72.55889874, 72.57224924, 72.58559975, 72.59895025, 72.61230075, 72.62565125, 72.63900176, 72.65235226, 72.66570276, 72.67905327, 72.69240377, 72.70575427, 72.71910477, 72.73245528, 72.74580578, 72.75915628, 72.77250678, 72.78585729, 72.79920779, 72.81255829, 72.82590879, 72.8392593, 72.8526098, 72.8659603, 72.8793108, 72.89266131, 72.90601181, 72.91936231, 72.93271281, 72.94606332, 72.95941382, 72.97276432, 72.98611482, 72.99946533, 73.01281583, 73.02616633, 73.03951683, 73.05286734, 73.06621784, 73.07956834, 73.09291884, 73.10626935, 73.11961985, 73.13297035, 73.14632085, 73.15967136, 73.17302186, 73.18637236, 73.19972287, 73.21307337, 73.22642387, 73.23977437, 73.25312488, 73.26647538, 73.27982588, 73.29317638, 73.30652689, 73.31987739, 73.33322789, 73.34657839, 73.3599289, 73.3732794, 73.3866299, 73.3999804, 73.41333091, 73.42668141, 73.44003191, 73.45338241, 73.46673292, 73.48008342, 73.49343392, 73.50678442, 73.52013493, 73.53348543, 73.54683593, 73.56018643, 73.57353694, 73.58688744, 73.60023794, 73.61358844, 73.62693895, 73.64028945, 73.65363995, 73.66699046, 73.68034096, 73.69369146, 73.70704196, 73.72039247, 73.73374297, 73.74709347, 73.76044397, 73.77379448, 73.78714498, 73.80049548, 73.81384598, 73.82719649, 73.84054699, 73.85389749, 73.86724799, 73.8805985, 73.893949, 73.9072995, 73.92065, 73.93400051, 73.94735101, 73.96070151, 73.97405201, 73.98740252, 74.00075302, 74.01410352, 74.02745402, 74.04080453, 74.05415503, 74.06750553, 74.08085603, 74.09420654, 74.10755704, 74.12090754, 74.13425804, 74.14760855, 74.16095905, 74.17430955, 74.18766006, 74.20101056, 74.21436106, 74.22771156, 74.24106207, 74.25441257, 74.26776307, 74.28111357, 74.29446408, 74.30781458, 74.32116508, 74.33451558, 74.34786609, 74.36121659, 74.37456709, 74.38791759, 74.4012681, 74.4146186, 74.4279691, 74.4413196, 74.45467011, 74.46802061, 74.48137111, 74.49472161, 74.50807212, 74.52142262, 74.53477312, 74.54812362, 74.56147413, 74.57482463, 74.58817513, 74.60152563, 74.61487614, 74.62822664, 74.64157714, 74.65492764, 74.66827815, 74.68162865, 74.69497915, 74.70832966, 74.72168016, 74.73503066, 74.74838116, 74.76173167, 74.77508217, 74.78843267, 74.80178317, 74.81513368, 74.82848418, 74.84183468, 74.85518518, 74.86853569, 74.88188619, 74.89523669, 74.90858719, 74.9219377, 74.9352882, 74.9486387, 74.9619892, 74.97533971, 74.98869021, 75.00204071, 75.01539121, 75.02874172, 75.04209222, 75.05544272, 75.06879322, 75.08214373, 75.09549423, 75.10884473, 75.12219523, 75.13554574, 75.14889624, 75.16224674, 75.17559725, 75.18894775, 75.20229825, 75.21564875, 75.22899926, 75.24234976, 75.25570026, 75.26905076, 75.28240127, 75.29575177, 75.30910227, 75.32245277, 75.33580328, 75.34915378, 75.36250428, 75.37585478, 75.38920529, 75.40255579, 75.41590629, 75.42925679, 75.4426073, 75.4559578, 75.4693083, 75.4826588, 75.49600931, 75.50935981, 75.52271031, 75.53606081, 75.54941132, 75.56276182, 75.57611232, 75.58946282, 75.60281333, 75.61616383, 75.62951433, 75.64286483, 75.65621534, 75.66956584, 75.68291634, 75.69626685, 75.70961735, 75.72296785, 75.73631835, 75.74966886, 75.76301936, 75.77636986, 75.78972036, 75.80307087, 75.81642137, 75.82977187, 75.84312237, 75.85647288, 75.86982338, 75.88317388, 75.89652438, 75.90987489, 75.92322539, 75.93657589, 75.94992639, 75.9632769, 75.9766274, 75.9899779, 76.0033284, 76.01667891, 76.03002941, 76.04337991, 76.05673041, 76.07008092, 76.08343142, 76.09678192, 76.11013242, 76.12348293, 76.13683343, 76.15018393, 76.16353444, 76.17688494, 76.19023544, 76.20358594, 76.21693645, 76.23028695, 76.24363745, 76.25698795, 76.27033846, 76.28368896, 76.29703946, 76.31038996, 76.32374047, 76.33709097, 76.35044147, 76.36379197, 76.37714248, 76.39049298, 76.40384348, 76.41719398, 76.43054449, 76.44389499, 76.45724549, 76.47059599, 76.4839465, 76.497297, 76.5106475, 76.523998, 76.53734851, 76.55069901, 76.56404951, 76.57740001, 76.59075052, 76.60410102, 76.61745152, 76.63080202, 76.64415253, 76.65750303, 76.67085353, 76.68420404, 76.69755454, 76.71090504, 76.72425554, 76.73760605, 76.75095655, 76.76430705, 76.77765755, 76.79100806, 76.80435856, 76.81770906, 76.83105956, 76.84441007, 76.85776057, 76.87111107, 76.88446157, 76.89781208, 76.91116258, 76.92451308, 76.93786358, 76.95121409, 76.96456459, 76.97791509, 76.99126559, 77.0046161, 77.0179666, 77.0313171, 77.0446676, 77.05801811, 77.07136861, 77.08471911, 77.09806961, 77.11142012, 77.12477062, 77.13812112, 77.15147162, 77.16482213, 77.17817263, 77.19152313, 77.20487364, 77.21822414, 77.23157464, 77.24492514, 77.25827565, 77.27162615, 77.28497665, 77.29832715, 77.31167766, 77.32502816, 77.33837866, 77.35172916, 77.36507967, 77.37843017, 77.39178067, 77.40513117, 77.41848168, 77.43183218, 77.44518268, 77.45853318, 77.47188369, 77.48523419, 77.49858469, 77.51193519, 77.5252857, 77.5386362, 77.5519867, 77.5653372, 77.57868771, 77.59203821, 77.60538871, 77.61873921, 77.63208972, 77.64544022, 77.65879072, 77.67214123, 77.68549173, 77.69884223, 77.71219273, 77.72554324, 77.73889374, 77.75224424, 77.76559474, 77.77894525, 77.79229575, 77.80564625, 77.81899675, 77.83234726, 77.84569776, 77.85904826, 77.87239876, 77.88574927, 77.89909977, 77.91245027, 77.92580077, 77.93915128, 77.95250178, 77.96585228, 77.97920278, 77.99255329, 78.00590379, 78.01925429, 78.03260479, 78.0459553, 78.0593058, 78.0726563, 78.0860068, 78.09935731, 78.11270781, 78.12605831, 78.13940881, 78.15275932, 78.16610982, 78.17946032, 78.19281083, 78.20616133, 78.21951183, 78.23286233, 78.24621284, 78.25956334, 78.27291384, 78.28626434, 78.29961485, 78.31296535, 78.32631585, 78.33966635, 78.35301686, 78.36636736, 78.37971786, 78.39306836, 78.40641887, 78.41976937, 78.43311987, 78.44647037, 78.45982088, 78.47317138, 78.48652188, 78.49987238, 78.51322289, 78.52657339, 78.53992389, 78.55327439, 78.5666249, 78.5799754, 78.5933259, 78.6066764, 78.62002691, 78.63337741, 78.64672791, 78.66007841, 78.67342892, 78.68677942, 78.70012992, 78.71348043, 78.72683093, 78.74018143, 78.75353193, 78.76688244, 78.78023294, 78.79358344, 78.80693394, 78.82028445, 78.83363495, 78.84698545, 78.86033595, 78.87368646, 78.88703696, 78.90038746, 78.91373796, 78.92708847, 78.94043897, 78.95378947, 78.96713997, 78.98049048, 78.99384098, 79.00719148, 79.02054198, 79.03389249, 79.04724299, 79.06059349, 79.07394399, 79.0872945, 79.100645, 79.1139955, 79.127346, 79.14069651, 79.15404701, 79.16739751, 79.18074802, 79.19409852, 79.20744902, 79.22079952, 79.23415003, 79.24750053, 79.26085103, 79.27420153, 79.28755204, 79.30090254, 79.31425304, 79.32760354, 79.34095405, 79.35430455, 79.36765505, 79.38100555, 79.39435606, 79.40770656, 79.42105706, 79.43440756, 79.44775807, 79.46110857, 79.47445907, 79.48780957, 79.50116008, 79.51451058, 79.52786108, 79.54121158, 79.55456209, 79.56791259, 79.58126309, 79.59461359, 79.6079641, 79.6213146, 79.6346651, 79.6480156, 79.66136611, 79.67471661, 79.68806711, 79.70141762, 79.71476812, 79.72811862, 79.74146912, 79.75481963, 79.76817013, 79.78152063, 79.79487113, 79.80822164, 79.82157214, 79.83492264, 79.84827314, 79.86162365, 79.87497415, 79.88832465, 79.90167515, 79.91502566, 79.92837616, 79.94172666, 79.95507716, 79.96842767, 79.98177817, 79.99512867, 80.00847917, 80.02182968, 80.03518018, 80.04853068, 80.06188118, 80.07523169, 80.08858219, 80.10193269, 80.11528319, 80.1286337, 80.1419842, 80.1553347, 80.1686852, 80.18203571, 80.19538621, 80.20873671, 80.22208722, 80.23543772, 80.24878822, 80.26213872, 80.27548923, 80.28883973, 80.30219023, 80.31554073, 80.32889124, 80.34224174, 80.35559224, 80.36894274, 80.38229325, 80.39564375, 80.40899425, 80.42234475, 80.43569526, 80.44904576, 80.46239626, 80.47574676, 80.48909727, 80.50244777, 80.51579827, 80.52914877, 80.54249928, 80.55584978, 80.56920028, 80.58255078, 80.59590129, 80.60925179, 80.62260229, 80.63595279, 80.6493033, 80.6626538, 80.6760043, 80.68935481, 80.70270531, 80.71605581, 80.72940631, 80.74275682, 80.75610732, 80.76945782, 80.78280832, 80.79615883, 80.80950933, 80.82285983, 80.83621033, 80.84956084, 80.86291134, 80.87626184, 80.88961234, 80.90296285, 80.91631335, 80.92966385, 80.94301435, 80.95636486, 80.96971536, 80.98306586, 80.99641636, 81.00976687, 81.02311737, 81.03646787, 81.04981837, 81.06316888, 81.07651938, 81.08986988, 81.10322038, 81.11657089, 81.12992139, 81.14327189, 81.15662239, 81.1699729, 81.1833234, 81.1966739, 81.21002441, 81.22337491, 81.23672541, 81.25007591, 81.26342642, 81.27677692, 81.29012742, 81.30347792, 81.31682843, 81.33017893, 81.34352943, 81.35687993, 81.37023044, 81.38358094, 81.39693144, 81.41028194, 81.42363245, 81.43698295, 81.45033345, 81.46368395, 81.47703446, 81.49038496, 81.50373546, 81.51708596, 81.53043647, 81.54378697, 81.55713747, 81.57048797, 81.58383848, 81.59718898, 81.61053948, 81.62388998, 81.63724049, 81.65059099, 81.66394149, 81.677292, 81.6906425, 81.703993, 81.7173435, 81.73069401, 81.74404451, 81.75739501, 81.77074551, 81.78409602, 81.79744652, 81.81079702, 81.82414752, 81.83749803, 81.85084853, 81.86419903, 81.87754953, 81.89090004, 81.90425054, 81.91760104, 81.93095154, 81.94430205, 81.95765255, 81.97100305, 81.98435355, 81.99770406, 82.01105456, 82.02440506, 82.03775556, 82.05110607, 82.06445657, 82.07780707, 82.09115757, 82.10450808, 82.11785858, 82.13120908, 82.14455958, 82.15791009, 82.17126059, 82.18461109, 82.1979616, 82.2113121, 82.2246626, 82.2380131, 82.25136361, 82.26471411, 82.27806461, 82.29141511, 82.30476562, 82.31811612, 82.33146662, 82.34481712, 82.35816763, 82.37151813, 82.38486863, 82.39821913, 82.41156964, 82.42492014, 82.43827064, 82.45162114, 82.46497165, 82.47832215, 82.49167265, 82.50502315, 82.51837366, 82.53172416, 82.54507466, 82.55842516, 82.57177567, 82.58512617, 82.59847667, 82.61182717, 82.62517768, 82.63852818, 82.65187868, 82.66522918, 82.67857969, 82.69193019, 82.70528069, 82.7186312, 82.7319817, 82.7453322, 82.7586827, 82.77203321, 82.78538371, 82.79873421, 82.81208471, 82.82543522, 82.83878572, 82.85213622, 82.86548672, 82.87883723, 82.89218773, 82.90553823, 82.91888873, 82.93223924, 82.94558974, 82.95894024, 82.97229074, 82.98564125, 82.99899175, 83.01234225, 83.02569275, 83.03904326, 83.05239376, 83.06574426, 83.07909476, 83.09244527, 83.10579577, 83.11914627, 83.13249677, 83.14584728, 83.15919778, 83.17254828, 83.18589879, 83.19924929, 83.21259979, 83.22595029, 83.2393008, 83.2526513, 83.2660018, 83.2793523, 83.29270281, 83.30605331, 83.31940381, 83.33275431, 83.34610482, 83.35945532, 83.37280582, 83.38615632, 83.39950683, 83.41285733, 83.42620783, 83.43955833, 83.45290884, 83.46625934, 83.47960984, 83.49296034, 83.50631085, 83.51966135, 83.53301185, 83.54636235, 83.55971286, 83.57306336, 83.58641386, 83.59976436, 83.61311487, 83.62646537, 83.63981587, 83.65316637, 83.66651688, 83.67986738, 83.69321788, 83.70656839, 83.71991889, 83.73326939, 83.74661989, 83.7599704, 83.7733209, 83.7866714, 83.8000219, 83.81337241, 83.82672291, 83.84007341, 83.85342391, 83.86677442, 83.88012492, 83.89347542, 83.90682592, 83.92017643, 83.93352693, 83.94687743, 83.96022793, 83.97357844, 83.98692894, 84.00027944, 84.01362994, 84.02698045, 84.04033095, 84.05368145, 84.06703195, 84.08038246, 84.09373296, 84.10708346, 84.12043396, 84.13378447, 84.14713497, 84.16048547, 84.17383597, 84.18718648, 84.20053698, 84.21388748, 84.22723799, 84.24058849, 84.25393899, 84.26728949, 84.28064, 84.2939905, 84.307341, 84.3206915, 84.33404201, 84.34739251, 84.36074301, 84.37409351, 84.38744402, 84.40079452, 84.41414502, 84.42749552, 84.44084603, 84.45419653, 84.46754703, 84.48089753, 84.49424804, 84.50759854, 84.52094904, 84.53429954, 84.54765005, 84.56100055, 84.57435105, 84.58770155, 84.60105206, 84.61440256, 84.62775306, 84.64110356, 84.65445407, 84.66780457, 84.68115507, 84.69450558, 84.70785608, 84.72120658, 84.73455708, 84.74790759, 84.76125809, 84.77460859, 84.78795909, 84.8013096, 84.8146601, 84.8280106, 84.8413611, 84.85471161, 84.86806211, 84.88141261, 84.89476311, 84.90811362, 84.92146412, 84.93481462, 84.94816512, 84.96151563, 84.97486613, 84.98821663, 85.00156713, 85.01491764, 85.02826814, 85.04161864, 85.05496914, 85.06831965, 85.08167015, 85.09502065, 85.10837115, 85.12172166, 85.13507216, 85.14842266, 85.16177316, 85.17512367, 85.18847417, 85.20182467, 85.21517518, 85.22852568, 85.24187618, 85.25522668, 85.26857719, 85.28192769, 85.29527819, 85.30862869, 85.3219792, 85.3353297, 85.3486802, 85.3620307, 85.37538121, 85.38873171, 85.40208221, 85.41543271, 85.42878322, 85.44213372, 85.45548422, 85.46883472, 85.48218523, 85.49553573, 85.50888623, 85.52223673, 85.53558724, 85.54893774, 85.56228824, 85.57563874, 85.58898925, 85.60233975, 85.61569025, 85.62904075, 85.64239126, 85.65574176, 85.66909226, 85.68244277, 85.69579327, 85.70914377, 85.72249427, 85.73584478, 85.74919528, 85.76254578, 85.77589628, 85.78924679, 85.80259729, 85.81594779, 85.82929829, 85.8426488, 85.8559993, 85.8693498, 85.8827003, 85.89605081, 85.90940131, 85.92275181, 85.93610231, 85.94945282, 85.96280332, 85.97615382, 85.98950432, 86.00285483, 86.01620533, 86.02955583, 86.04290633, 86.05625684, 86.06960734, 86.08295784, 86.09630834, 86.10965885, 86.12300935, 86.13635985, 86.14971035, 86.16306086, 86.17641136, 86.18976186, 86.20311237, 86.21646287, 86.22981337, 86.24316387, 86.25651438, 86.26986488, 86.28321538, 86.29656588, 86.30991639, 86.32326689, 86.33661739, 86.34996789, 86.3633184, 86.3766689, 86.3900194, 86.4033699, 86.41672041, 86.43007091, 86.44342141, 86.45677191, 86.47012242, 86.48347292, 86.49682342, 86.51017392, 86.52352443, 86.53687493, 86.55022543, 86.56357593, 86.57692644, 86.59027694, 86.60362744, 86.61697794, 86.63032845, 86.64367895, 86.65702945, 86.67037995, 86.68373046, 86.69708096, 86.71043146, 86.72378197, 86.73713247, 86.75048297, 86.76383347, 86.77718398, 86.79053448, 86.80388498, 86.81723548, 86.83058599, 86.84393649, 86.85728699, 86.87063749, 86.883988, 86.8973385, 86.910689, 86.9240395, 86.93739001, 86.95074051, 86.96409101, 86.97744151, 86.99079202, 87.00414252, 87.01749302, 87.03084352, 87.04419403, 87.05754453, 87.07089503, 87.08424553, 87.09759604, 87.11094654, 87.12429704, 87.13764754, 87.15099805, 87.16434855, 87.17769905, 87.19104956, 87.20440006, 87.21775056, 87.23110106, 87.24445157, 87.25780207, 87.27115257, 87.28450307, 87.29785358, 87.31120408, 87.32455458, 87.33790508, 87.35125559, 87.36460609, 87.37795659, 87.39130709, 87.4046576, 87.4180081, 87.4313586, 87.4447091, 87.45805961, 87.47141011, 87.48476061, 87.49811111, 87.51146162, 87.52481212, 87.53816262, 87.55151312, 87.56486363, 87.57821413, 87.59156463, 87.60491513, 87.61826564, 87.63161614, 87.64496664, 87.65831714, 87.67166765, 87.68501815, 87.69836865, 87.71171916, 87.72506966, 87.73842016, 87.75177066, 87.76512117, 87.77847167, 87.79182217, 87.80517267, 87.81852318, 87.83187368, 87.84522418, 87.85857468, 87.87192519, 87.88527569, 87.89862619, 87.91197669, 87.9253272, 87.9386777, 87.9520282, 87.9653787, 87.97872921, 87.99207971, 88.00543021, 88.01878071, 88.03213122, 88.04548172, 88.05883222, 88.07218272, 88.08553323, 88.09888373, 88.11223423, 88.12558473, 88.13893524, 88.15228574, 88.16563624, 88.17898674, 88.19233725, 88.20568775, 88.21903825, 88.23238876, 88.24573926, 88.25908976, 88.27244026, 88.28579077, 88.29914127, 88.31249177, 88.32584227, 88.33919278, 88.35254328, 88.36589378, 88.37924428, 88.39259479, 88.40594529, 88.41929579, 88.43264629, 88.4459968, 88.4593473, 88.4726978, 88.4860483, 88.49939881, 88.51274931, 88.52609981, 88.53945031, 88.55280082, 88.56615132, 88.57950182, 88.59285232, 88.60620283, 88.61955333, 88.63290383, 88.64625433, 88.65960484, 88.67295534, 88.68630584, 88.69965635, 88.71300685, 88.72635735, 88.73970785, 88.75305836, 88.76640886, 88.77975936, 88.79310986, 88.80646037, 88.81981087, 88.83316137, 88.84651187, 88.85986238, 88.87321288, 88.88656338, 88.89991388, 88.91326439, 88.92661489, 88.93996539, 88.95331589, 88.9666664, 88.9800169, 88.9933674, 89.0067179, 89.02006841, 89.03341891, 89.04676941, 89.06011991, 89.07347042, 89.08682092, 89.10017142, 89.11352192, 89.12687243, 89.14022293, 89.15357343, 89.16692393, 89.18027444, 89.19362494, 89.20697544, 89.22032595, 89.23367645, 89.24702695, 89.26037745, 89.27372796, 89.28707846, 89.30042896, 89.31377946, 89.32712997, 89.34048047, 89.35383097, 89.36718147, 89.38053198, 89.39388248, 89.40723298, 89.42058348, 89.43393399, 89.44728449, 89.46063499, 89.47398549, 89.487336, 89.5006865, 89.514037, 89.5273875, 89.54073801, 89.55408851, 89.56743901, 89.58078951, 89.59414002, 89.60749052, 89.62084102, 89.63419152, 89.64754203, 89.66089253, 89.67424303, 89.68759353, 89.70094404, 89.71429454, 89.72764504, 89.74099555, 89.75434605, 89.76769655, 89.78104705, 89.79439756, 89.80774806, 89.82109856, 89.83444906, 89.84779957, 89.86115007, 89.87450057, 89.88785107, 89.90120158, 89.91455208, 89.92790258, 89.94125308, 89.95460359, 89.96795409, 89.98130459, 89.99465509, 90.0080056, 90.0213561, 90.0347066, 90.0480571, 90.06140761, 90.07475811, 90.08810861, 90.10145911, 90.11480962, 90.12816012, 90.14151062, 90.15486112, 90.16821163, 90.18156213, 90.19491263, 90.20826314, 90.22161364, 90.23496414, 90.24831464, 90.26166515, 90.27501565, 90.28836615, 90.30171665, 90.31506716, 90.32841766, 90.34176816, 90.35511866, 90.36846917, 90.38181967, 90.39517017, 90.40852067, 90.42187118, 90.43522168, 90.44857218, 90.46192268, 90.47527319, 90.48862369, 90.50197419, 90.51532469, 90.5286752, 90.5420257, 90.5553762, 90.5687267, 90.58207721, 90.59542771, 90.60877821, 90.62212871, 90.63547922, 90.64882972, 90.66218022, 90.67553072, 90.68888123, 90.70223173, 90.71558223, 90.72893274, 90.74228324, 90.75563374, 90.76898424, 90.78233475, 90.79568525, 90.80903575, 90.82238625, 90.83573676, 90.84908726, 90.86243776, 90.87578826, 90.88913877, 90.90248927, 90.91583977, 90.92919027, 90.94254078, 90.95589128, 90.96924178, 90.98259228, 90.99594279, 91.00929329, 91.02264379, 91.03599429, 91.0493448, 91.0626953, 91.0760458, 91.0893963, 91.10274681, 91.11609731, 91.12944781, 91.14279831, 91.15614882, 91.16949932, 91.18284982, 91.19620033, 91.20955083, 91.22290133, 91.23625183, 91.24960234, 91.26295284, 91.27630334, 91.28965384, 91.30300435, 91.31635485, 91.32970535, 91.34305585, 91.35640636, 91.36975686, 91.38310736, 91.39645786, 91.40980837, 91.42315887, 91.43650937, 91.44985987, 91.46321038, 91.47656088, 91.48991138, 91.50326188, 91.51661239, 91.52996289, 91.54331339, 91.55666389, 91.5700144, 91.5833649, 91.5967154, 91.6100659, 91.62341641, 91.63676691, 91.65011741, 91.66346791, 91.67681842, 91.69016892, 91.70351942, 91.71686993, 91.73022043, 91.74357093, 91.75692143, 91.77027194, 91.78362244, 91.79697294, 91.81032344, 91.82367395, 91.83702445, 91.85037495, 91.86372545, 91.87707596, 91.89042646, 91.90377696, 91.91712746, 91.93047797, 91.94382847, 91.95717897, 91.97052947, 91.98387998, 91.99723048, 92.01058098, 92.02393148, 92.03728199, 92.05063249, 92.06398299, 92.07733349, 92.090684, 92.1040345, 92.117385, 92.1307355, 92.14408601, 92.15743651, 92.17078701, 92.18413751, 92.19748802, 92.21083852, 92.22418902, 92.23753953, 92.25089003, 92.26424053, 92.27759103, 92.29094154, 92.30429204, 92.31764254, 92.33099304, 92.34434355, 92.35769405, 92.37104455, 92.38439505, 92.39774556, 92.41109606, 92.42444656, 92.43779706, 92.45114757, 92.46449807, 92.47784857, 92.49119907, 92.50454958, 92.51790008, 92.53125058, 92.54460108, 92.55795159, 92.57130209, 92.58465259, 92.59800309, 92.6113536, 92.6247041, 92.6380546, 92.6514051, 92.66475561, 92.67810611, 92.69145661, 92.70480712, 92.71815762, 92.73150812, 92.74485862, 92.75820913, 92.77155963, 92.78491013, 92.79826063, 92.81161114, 92.82496164, 92.83831214, 92.85166264, 92.86501315, 92.87836365, 92.89171415, 92.90506465, 92.91841516, 92.93176566, 92.94511616, 92.95846666, 92.97181717, 92.98516767, 92.99851817, 93.01186867, 93.02521918, 93.03856968, 93.05192018, 93.06527068, 93.07862119, 93.09197169, 93.10532219, 93.11867269, 93.1320232, 93.1453737, 93.1587242, 93.1720747, 93.18542521, 93.19877571, 93.21212621, 93.22547672, 93.23882722, 93.25217772, 93.26552822, 93.27887873, 93.29222923, 93.30557973, 93.31893023, 93.33228074, 93.34563124, 93.35898174, 93.37233224, 93.38568275, 93.39903325, 93.41238375, 93.42573425, 93.43908476, 93.45243526, 93.46578576, 93.47913626, 93.49248677, 93.50583727, 93.51918777, 93.53253827, 93.54588878, 93.55923928, 93.57258978, 93.58594028, 93.59929079, 93.61264129, 93.62599179, 93.63934229, 93.6526928, 93.6660433, 93.6793938, 93.6927443, 93.70609481, 93.71944531, 93.73279581, 93.74614632, 93.75949682, 93.77284732, 93.78619782, 93.79954833, 93.81289883, 93.82624933, 93.83959983, 93.85295034, 93.86630084, 93.87965134, 93.89300184, 93.90635235, 93.91970285, 93.93305335, 93.94640385, 93.95975436, 93.97310486, 93.98645536, 93.99980586, 94.01315637, 94.02650687, 94.03985737, 94.05320787, 94.06655838, 94.07990888, 94.09325938, 94.10660988, 94.11996039, 94.13331089, 94.14666139, 94.16001189, 94.1733624, 94.1867129, 94.2000634, 94.21341391, 94.22676441, 94.24011491, 94.25346541, 94.26681592, 94.28016642, 94.29351692, 94.30686742, 94.32021793, 94.33356843, 94.34691893, 94.36026943, 94.37361994, 94.38697044, 94.40032094, 94.41367144, 94.42702195, 94.44037245, 94.45372295, 94.46707345, 94.48042396, 94.49377446, 94.50712496, 94.52047546, 94.53382597, 94.54717647, 94.56052697, 94.57387747, 94.58722798, 94.60057848, 94.61392898, 94.62727948, 94.64062999, 94.65398049, 94.66733099, 94.68068149, 94.694032, 94.7073825, 94.720733, 94.73408351, 94.74743401, 94.76078451, 94.77413501, 94.78748552, 94.80083602, 94.81418652, 94.82753702, 94.84088753, 94.85423803, 94.86758853, 94.88093903, 94.89428954, 94.90764004, 94.92099054, 94.93434104, 94.94769155, 94.96104205, 94.97439255, 94.98774305, 95.00109356, 95.01444406, 95.02779456, 95.04114506, 95.05449557, 95.06784607, 95.08119657, 95.09454707, 95.10789758, 95.12124808, 95.13459858, 95.14794908, 95.16129959, 95.17465009, 95.18800059, 95.20135109, 95.2147016, 95.2280521, 95.2414026, 95.25475311, 95.26810361, 95.28145411, 95.29480461, 95.30815512, 95.32150562, 95.33485612, 95.34820662, 95.36155713, 95.37490763, 95.38825813, 95.40160863, 95.41495914, 95.42830964, 95.44166014, 95.45501064, 95.46836115, 95.48171165, 95.49506215, 95.50841265, 95.52176316, 95.53511366, 95.54846416, 95.56181466, 95.57516517, 95.58851567, 95.60186617, 95.61521667, 95.62856718, 95.64191768, 95.65526818, 95.66861868, 95.68196919, 95.69531969, 95.70867019, 95.7220207, 95.7353712, 95.7487217, 95.7620722, 95.77542271, 95.78877321, 95.80212371, 95.81547421, 95.82882472, 95.84217522, 95.85552572, 95.86887622, 95.88222673, 95.89557723, 95.90892773, 95.92227823, 95.93562874, 95.94897924, 95.96232974, 95.97568024, 95.98903075, 96.00238125, 96.01573175, 96.02908225, 96.04243276, 96.05578326, 96.06913376, 96.08248426, 96.09583477, 96.10918527, 96.12253577, 96.13588627, 96.14923678, 96.16258728, 96.17593778, 96.18928828, 96.20263879, 96.21598929, 96.22933979, 96.2426903, 96.2560408, 96.2693913, 96.2827418, 96.29609231, 96.30944281, 96.32279331, 96.33614381, 96.34949432, 96.36284482, 96.37619532, 96.38954582, 96.40289633, 96.41624683, 96.42959733, 96.44294783, 96.45629834, 96.46964884, 96.48299934, 96.49634984, 96.50970035, 96.52305085, 96.53640135, 96.54975185, 96.56310236, 96.57645286, 96.58980336, 96.60315386, 96.61650437, 96.62985487, 96.64320537, 96.65655587, 96.66990638, 96.68325688, 96.69660738, 96.70995789, 96.72330839, 96.73665889, 96.75000939, 96.7633599, 96.7767104, 96.7900609, 96.8034114, 96.81676191, 96.83011241, 96.84346291, 96.85681341, 96.87016392, 96.88351442, 96.89686492, 96.91021542, 96.92356593, 96.93691643, 96.95026693, 96.96361743, 96.97696794, 96.99031844, 97.00366894, 97.01701944, 97.03036995, 97.04372045, 97.05707095, 97.07042145, 97.08377196, 97.09712246, 97.11047296, 97.12382346, 97.13717397, 97.15052447, 97.16387497, 97.17722547, 97.19057598, 97.20392648, 97.21727698, 97.23062749, 97.24397799, 97.25732849, 97.27067899, 97.2840295, 97.29738, 97.3107305, 97.324081, 97.33743151, 97.35078201, 97.36413251, 97.37748301, 97.39083352, 97.40418402, 97.41753452, 97.43088502, 97.44423553, 97.45758603, 97.47093653, 97.48428703, 97.49763754, 97.51098804, 97.52433854, 97.53768904, 97.55103955, 97.56439005, 97.57774055, 97.59109105, 97.60444156, 97.61779206, 97.63114256, 97.64449306, 97.65784357, 97.67119407, 97.68454457, 97.69789507, 97.71124558, 97.72459608, 97.73794658, 97.75129709, 97.76464759, 97.77799809, 97.79134859, 97.8046991, 97.8180496, 97.8314001, 97.8447506, 97.85810111, 97.87145161, 97.88480211, 97.89815261, 97.91150312, 97.92485362, 97.93820412, 97.95155462, 97.96490513, 97.97825563, 97.99160613, 98.00495663, 98.01830714, 98.03165764, 98.04500814, 98.05835864, 98.07170915, 98.08505965, 98.09841015, 98.11176065, 98.12511116, 98.13846166, 98.15181216, 98.16516266, 98.17851317, 98.19186367, 98.20521417, 98.21856468, 98.23191518, 98.24526568, 98.25861618, 98.27196669, 98.28531719, 98.29866769, 98.31201819, 98.3253687, 98.3387192, 98.3520697, 98.3654202, 98.37877071, 98.39212121, 98.40547171, 98.41882221, 98.43217272, 98.44552322, 98.45887372, 98.47222422, 98.48557473, 98.49892523, 98.51227573, 98.52562623, 98.53897674, 98.55232724, 98.56567774, 98.57902824, 98.59237875, 98.60572925, 98.61907975, 98.63243025, 98.64578076, 98.65913126, 98.67248176, 98.68583226, 98.69918277, 98.71253327, 98.72588377, 98.73923428, 98.75258478, 98.76593528, 98.77928578, 98.79263629, 98.80598679, 98.81933729, 98.83268779, 98.8460383, 98.8593888, 98.8727393, 98.8860898, 98.89944031, 98.91279081, 98.92614131, 98.93949181, 98.95284232, 98.96619282, 98.97954332, 98.99289382, 99.00624433, 99.01959483, 99.03294533, 99.04629583, 99.05964634, 99.07299684, 99.08634734, 99.09969784, 99.11304835, 99.12639885, 99.13974935, 99.15309985, 99.16645036, 99.17980086, 99.19315136, 99.20650186, 99.21985237, 99.23320287, 99.24655337, 99.25990388, 99.27325438, 99.28660488, 99.29995538, 99.31330589, 99.32665639, 99.34000689, 99.35335739, 99.3667079, 99.3800584, 99.3934089, 99.4067594, 99.42010991, 99.43346041, 99.44681091, 99.46016141, 99.47351192, 99.48686242, 99.50021292, 99.51356342, 99.52691393, 99.54026443, 99.55361493, 99.56696543, 99.58031594, 99.59366644, 99.60701694, 99.62036744, 99.63371795, 99.64706845, 99.66041895, 99.67376945, 99.68711996, 99.70047046, 99.71382096, 99.72717147, 99.74052197, 99.75387247, 99.76722297, 99.78057348, 99.79392398, 99.80727448, 99.82062498, 99.83397549, 99.84732599, 99.86067649, 99.87402699, 99.8873775, 99.900728, 99.9140785, 99.927429, 99.94077951, 99.95413001, 99.96748051, 99.98083101, 99.99418152, 100.00753202, 100.02088252, 100.03423302, 100.04758353, 100.06093403, 100.07428453, 100.08763503, 100.10098554, 100.11433604, 100.12768654, 100.14103704, 100.15438755, 100.16773805, 100.18108855, 100.19443905, 100.20778956, 100.22114006, 100.23449056, 100.24784107, 100.26119157, 100.27454207, 100.28789257, 100.30124308, 100.31459358, 100.32794408, 100.34129458, 100.35464509, 100.36799559, 100.38134609, 100.39469659, 100.4080471, 100.4213976, 100.4347481, 100.4480986, 100.46144911, 100.47479961, 100.48815011, 100.50150061, 100.51485112, 100.52820162, 100.54155212, 100.55490262, 100.56825313, 100.58160363, 100.59495413, 100.60830463, 100.62165514, 100.63500564, 100.64835614, 100.66170664, 100.67505715, 100.68840765, 100.70175815, 100.71510866, 100.72845916, 100.74180966, 100.75516016, 100.76851067, 100.78186117, 100.79521167, 100.80856217, 100.82191268, 100.83526318, 100.84861368, 100.86196418, 100.87531469, 100.88866519, 100.90201569, 100.91536619, 100.9287167, 100.9420672, 100.9554177, 100.9687682, 100.98211871, 100.99546921, 101.00881971, 101.02217021, 101.03552072, 101.04887122, 101.06222172, 101.07557222, 101.08892273, 101.10227323, 101.11562373, 101.12897423, 101.14232474, 101.15567524, 101.16902574, 101.18237624, 101.19572675, 101.20907725, 101.22242775, 101.23577826, 101.24912876, 101.26247926, 101.27582976, 101.28918027, 101.30253077, 101.31588127, 101.32923177, 101.34258228, 101.35593278, 101.36928328, 101.38263378, 101.39598429, 101.40933479, 101.42268529, 101.43603579, 101.4493863, 101.4627368, 101.4760873, 101.4894378, 101.50278831, 101.51613881, 101.52948931, 101.54283981, 101.55619032, 101.56954082, 101.58289132, 101.59624182, 101.60959233, 101.62294283, 101.63629333, 101.64964383, 101.66299434, 101.67634484, 101.68969534, 101.70304584, 101.71639635, 101.72974685, 101.74309735, 101.75644786, 101.76979836, 101.78314886, 101.79649936, 101.80984987, 101.82320037, 101.83655087, 101.84990137, 101.86325188, 101.87660238, 101.88995288, 101.90330338, 101.91665389, 101.93000439, 101.94335489, 101.95670539, 101.9700559, 101.9834064, 101.9967569, 102.0101074, 102.02345791, 102.03680841, 102.05015891, 102.06350941, 102.07685992, 102.09021042, 102.10356092, 102.11691142, 102.13026193, 102.14361243, 102.15696293, 102.17031343, 102.18366394, 102.19701444, 102.21036494, 102.22371545, 102.23706595, 102.25041645, 102.26376695, 102.27711746, 102.29046796, 102.30381846, 102.31716896, 102.33051947, 102.34386997, 102.35722047, 102.37057097, 102.38392148, 102.39727198, 102.41062248, 102.42397298, 102.43732349, 102.45067399, 102.46402449, 102.47737499, 102.4907255, 102.504076, 102.5174265, 102.530777, 102.54412751, 102.55747801, 102.57082851, 102.58417901, 102.59752952, 102.61088002, 102.62423052, 102.63758102, 102.65093153, 102.66428203, 102.67763253, 102.69098303, 102.70433354, 102.71768404, 102.73103454, 102.74438505, 102.75773555, 102.77108605, 102.78443655, 102.79778706, 102.81113756, 102.82448806, 102.83783856, 102.85118907, 102.86453957, 102.87789007, 102.89124057, 102.90459108, 102.91794158, 102.93129208, 102.94464258, 102.95799309, 102.97134359, 102.98469409, 102.99804459, 103.0113951, 103.0247456, 103.0380961, 103.0514466, 103.06479711, 103.07814761, 103.09149811, 103.10484861, 103.11819912, 103.13154962, 103.14490012, 103.15825062, 103.17160113, 103.18495163, 103.19830213, 103.21165263, 103.22500314, 103.23835364, 103.25170414, 103.26505465, 103.27840515, 103.29175565, 103.30510615, 103.31845666, 103.33180716, 103.34515766, 103.35850816, 103.37185867, 103.38520917, 103.39855967, 103.41191017, 103.42526068, 103.43861118, 103.45196168, 103.46531218, 103.47866269, 103.49201319, 103.50536369, 103.51871419, 103.5320647, 103.5454152, 103.5587657, 103.5721162, 103.58546671, 103.59881721, 103.61216771, 103.62551821, 103.63886872, 103.65221922, 103.66556972, 103.67892022, 103.69227073, 103.70562123, 103.71897173, 103.73232224, 103.74567274, 103.75902324, 103.77237374, 103.78572425, 103.79907475, 103.81242525, 103.82577575, 103.83912626, 103.85247676, 103.86582726, 103.87917776, 103.89252827, 103.90587877, 103.91922927, 103.93257977, 103.94593028, 103.95928078, 103.97263128, 103.98598178, 103.99933229, 104.01268279, 104.02603329, 104.03938379, 104.0527343, 104.0660848, 104.0794353, 104.0927858, 104.10613631, 104.11948681, 104.13283731, 104.14618781, 104.15953832, 104.17288882, 104.18623932, 104.19958982, 104.21294033, 104.22629083, 104.23964133, 104.25299184, 104.26634234, 104.27969284, 104.29304334, 104.30639385, 104.31974435, 104.33309485, 104.34644535, 104.35979586, 104.37314636, 104.38649686, 104.39984736, 104.41319787, 104.42654837, 104.43989887, 104.45324937, 104.46659988, 104.47995038, 104.49330088, 104.50665138, 104.52000189, 104.53335239, 104.54670289, 104.56005339, 104.5734039, 104.5867544, 104.6001049, 104.6134554, 104.62680591, 104.64015641, 104.65350691, 104.66685741, 104.68020792, 104.69355842, 104.70690892, 104.72025942, 104.73360993, 104.74696043, 104.76031093, 104.77366144, 104.78701194, 104.80036244, 104.81371294, 104.82706345, 104.84041395, 104.85376445, 104.86711495, 104.88046546, 104.89381596, 104.90716646, 104.92051696, 104.93386747, 104.94721797, 104.96056847, 104.97391897, 104.98726948, 105.00061998, 105.01397048, 105.02732098, 105.04067149, 105.05402199, 105.06737249, 105.08072299, 105.0940735, 105.107424, 105.1207745, 105.134125, 105.14747551, 105.16082601, 105.17417651, 105.18752701, 105.20087752, 105.21422802, 105.22757852, 105.24092903, 105.25427953, 105.26763003, 105.28098053, 105.29433104, 105.30768154, 105.32103204, 105.33438254, 105.34773305, 105.36108355, 105.37443405, 105.38778455, 105.40113506, 105.41448556, 105.42783606, 105.44118656, 105.45453707, 105.46788757, 105.48123807, 105.49458857, 105.50793908, 105.52128958, 105.53464008, 105.54799058, 105.56134109, 105.57469159, 105.58804209, 105.60139259, 105.6147431, 105.6280936, 105.6414441, 105.6547946, 105.66814511, 105.68149561, 105.69484611, 105.70819661, 105.72154712, 105.73489762, 105.74824812, 105.76159863, 105.77494913, 105.78829963, 105.80165013, 105.81500064, 105.82835114, 105.84170164, 105.85505214, 105.86840265, 105.88175315, 105.89510365, 105.90845415, 105.92180466, 105.93515516, 105.94850566, 105.96185616, 105.97520667, 105.98855717, 106.00190767, 106.01525817, 106.02860868, 106.04195918, 106.05530968, 106.06866018, 106.08201069, 106.09536119, 106.10871169, 106.12206219, 106.1354127, 106.1487632, 106.1621137, 106.1754642, 106.18881471, 106.20216521, 106.21551571, 106.22886622, 106.24221672, 106.25556722, 106.26891772, 106.28226823, 106.29561873, 106.30896923, 106.32231973, 106.33567024, 106.34902074, 106.36237124, 106.37572174, 106.38907225, 106.40242275, 106.41577325, 106.42912375, 106.44247426, 106.45582476, 106.46917526, 106.48252576, 106.49587627, 106.50922677, 106.52257727, 106.53592777, 106.54927828, 106.56262878, 106.57597928, 106.58932978, 106.60268029, 106.61603079, 106.62938129, 106.64273179, 106.6560823, 106.6694328, 106.6827833, 106.6961338, 106.70948431, 106.72283481, 106.73618531, 106.74953582, 106.76288632, 106.77623682, 106.78958732, 106.80293783, 106.81628833, 106.82963883, 106.84298933, 106.85633984, 106.86969034, 106.88304084, 106.89639134, 106.90974185, 106.92309235, 106.93644285, 106.94979335, 106.96314386, 106.97649436, 106.98984486, 107.00319536, 107.01654587, 107.02989637, 107.04324687, 107.05659737, 107.06994788, 107.08329838, 107.09664888, 107.10999938, 107.12334989, 107.13670039, 107.15005089, 107.16340139, 107.1767519, 107.1901024, 107.2034529, 107.2168034, 107.23015391, 107.24350441, 107.25685491, 107.27020542, 107.28355592, 107.29690642, 107.31025692, 107.32360743, 107.33695793, 107.35030843, 107.36365893, 107.37700944, 107.39035994, 107.40371044, 107.41706094, 107.43041145, 107.44376195, 107.45711245, 107.47046295, 107.48381346, 107.49716396, 107.51051446, 107.52386496, 107.53721547, 107.55056597, 107.56391647, 107.57726697, 107.59061748, 107.60396798, 107.61731848, 107.63066898, 107.64401949, 107.65736999, 107.67072049, 107.68407099, 107.6974215, 107.710772, 107.7241225, 107.73747301, 107.75082351, 107.76417401, 107.77752451, 107.79087502, 107.80422552, 107.81757602, 107.83092652, 107.84427703, 107.85762753, 107.87097803, 107.88432853, 107.89767904, 107.91102954, 107.92438004, 107.93773054, 107.95108105, 107.96443155, 107.97778205, 107.99113255, 108.00448306, 108.01783356, 108.03118406, 108.04453456, 108.05788507, 108.07123557, 108.08458607, 108.09793657, 108.11128708, 108.12463758, 108.13798808, 108.15133858, 108.16468909, 108.17803959, 108.19139009, 108.20474059, 108.2180911, 108.2314416, 108.2447921, 108.25814261, 108.27149311, 108.28484361, 108.29819411, 108.31154462, 108.32489512, 108.33824562, 108.35159612, 108.36494663, 108.37829713, 108.39164763, 108.40499813, 108.41834864, 108.43169914, 108.44504964, 108.45840014, 108.47175065, 108.48510115, 108.49845165, 108.51180215, 108.52515266, 108.53850316, 108.55185366, 108.56520416, 108.57855467, 108.59190517, 108.60525567, 108.61860617, 108.63195668, 108.64530718, 108.65865768, 108.67200818, 108.68535869, 108.69870919, 108.71205969, 108.72541019, 108.7387607, 108.7521112, 108.7654617, 108.77881221, 108.79216271, 108.80551321, 108.81886371, 108.83221422, 108.84556472, 108.85891522, 108.87226572, 108.88561623, 108.89896673, 108.91231723, 108.92566773, 108.93901824, 108.95236874, 108.96571924, 108.97906974, 108.99242025, 109.00577075, 109.01912125, 109.03247175, 109.04582226, 109.05917276, 109.07252326, 109.08587376, 109.09922427, 109.11257477, 109.12592527, 109.13927577, 109.15262628, 109.16597678, 109.17932728, 109.19267778, 109.20602829, 109.21937879, 109.23272929, 109.2460798, 109.2594303, 109.2727808, 109.2861313, 109.29948181, 109.31283231, 109.32618281, 109.33953331, 109.35288382, 109.36623432, 109.37958482, 109.39293532, 109.40628583, 109.41963633, 109.43298683, 109.44633733, 109.45968784, 109.47303834, 109.48638884, 109.49973934, 109.51308985, 109.52644035, 109.53979085, 109.55314135, 109.56649186, 109.57984236, 109.59319286, 109.60654336, 109.61989387, 109.63324437, 109.64659487, 109.65994537, 109.67329588, 109.68664638, 109.69999688, 109.71334738, 109.72669789, 109.74004839, 109.75339889, 109.7667494, 109.7800999, 109.7934504, 109.8068009, 109.82015141, 109.83350191, 109.84685241, 109.86020291, 109.87355342, 109.88690392, 109.90025442, 109.91360492, 109.92695543, 109.94030593, 109.95365643, 109.96700693, 109.98035744, 109.99370794, 110.00705844, 110.02040894, 110.03375945, 110.04710995, 110.06046045, 110.07381095, 110.08716146, 110.10051196, 110.11386246, 110.12721296, 110.14056347, 110.15391397, 110.16726447, 110.18061497, 110.19396548, 110.20731598, 110.22066648, 110.23401698, 110.24736749, 110.26071799, 110.27406849, 110.287419, 110.3007695, 110.31412, 110.3274705, 110.34082101, 110.35417151, 110.36752201, 110.38087251, 110.39422302, 110.40757352, 110.42092402, 110.43427452, 110.44762503, 110.46097553, 110.47432603, 110.48767653, 110.50102704, 110.51437754, 110.52772804, 110.54107854, 110.55442905, 110.56777955, 110.58113005, 110.59448055, 110.60783106, 110.62118156, 110.63453206, 110.64788256, 110.66123307, 110.67458357, 110.68793407, 110.70128457, 110.71463508, 110.72798558, 110.74133608, 110.75468659, 110.76803709, 110.78138759, 110.79473809, 110.8080886, 110.8214391, 110.8347896, 110.8481401, 110.86149061, 110.87484111, 110.88819161, 110.90154211, 110.91489262, 110.92824312, 110.94159362, 110.95494412, 110.96829463, 110.98164513, 110.99499563, 111.00834613, 111.02169664, 111.03504714, 111.04839764, 111.06174814, 111.07509865, 111.08844915, 111.10179965, 111.11515015, 111.12850066, 111.14185116, 111.15520166, 111.16855216, 111.18190267, 111.19525317, 111.20860367, 111.22195417, 111.23530468, 111.24865518, 111.26200568, 111.27535619, 111.28870669, 111.30205719, 111.31540769, 111.3287582, 111.3421087, 111.3554592, 111.3688097, 111.38216021, 111.39551071, 111.40886121, 111.42221171, 111.43556222, 111.44891272, 111.46226322, 111.47561372, 111.48896423, 111.50231473, 111.51566523, 111.52901573, 111.54236624, 111.55571674, 111.56906724, 111.58241774, 111.59576825, 111.60911875, 111.62246925, 111.63581975, 111.64917026, 111.66252076, 111.67587126, 111.68922176, 111.70257227, 111.71592277, 111.72927327, 111.74262378, 111.75597428, 111.76932478, 111.78267528, 111.79602579, 111.80937629, 111.82272679, 111.83607729, 111.8494278, 111.8627783, 111.8761288, 111.8894793, 111.90282981, 111.91618031, 111.92953081, 111.94288131, 111.95623182, 111.96958232, 111.98293282, 111.99628332, 112.00963383, 112.02298433, 112.03633483, 112.04968533, 112.06303584, 112.07638634, 112.08973684, 112.10308734, 112.11643785, 112.12978835, 112.14313885, 112.15648935, 112.16983986, 112.18319036, 112.19654086, 112.20989136, 112.22324187, 112.23659237, 112.24994287, 112.26329338, 112.27664388, 112.28999438, 112.30334488, 112.31669539, 112.33004589, 112.34339639, 112.35674689, 112.3700974, 112.3834479, 112.3967984, 112.4101489, 112.42349941, 112.43684991, 112.45020041, 112.46355091, 112.47690142, 112.49025192, 112.50360242, 112.51695292, 112.53030343, 112.54365393, 112.55700443, 112.57035493, 112.58370544, 112.59705594, 112.61040644, 112.62375694, 112.63710745, 112.65045795, 112.66380845, 112.67715895, 112.69050946, 112.70385996, 112.71721046, 112.73056096, 112.74391147, 112.75726197, 112.77061247, 112.78396298, 112.79731348, 112.81066398, 112.82401448, 112.83736499, 112.85071549, 112.86406599, 112.87741649, 112.890767, 112.9041175, 112.917468, 112.9308185, 112.94416901, 112.95751951, 112.97087001, 112.98422051, 112.99757102, 113.01092152, 113.02427202, 113.03762252, 113.05097303, 113.06432353, 113.07767403, 113.09102453, 113.10437504, 113.11772554, 113.13107604, 113.14442654, 113.15777705, 113.17112755, 113.18447805, 113.19782855, 113.21117906, 113.22452956, 113.23788006, 113.25123057, 113.26458107, 113.27793157, 113.29128207, 113.30463258, 113.31798308, 113.33133358, 113.34468408, 113.35803459, 113.37138509, 113.38473559, 113.39808609, 113.4114366, 113.4247871, 113.4381376, 113.4514881, 113.46483861, 113.47818911, 113.49153961, 113.50489011, 113.51824062, 113.53159112, 113.54494162, 113.55829212, 113.57164263, 113.58499313, 113.59834363, 113.61169413, 113.62504464, 113.63839514, 113.65174564, 113.66509614, 113.67844665, 113.69179715, 113.70514765, 113.71849815, 113.73184866, 113.74519916, 113.75854966, 113.77190017, 113.78525067, 113.79860117, 113.81195167, 113.82530218, 113.83865268, 113.85200318, 113.86535368, 113.87870419, 113.89205469, 113.90540519, 113.91875569, 113.9321062, 113.9454567, 113.9588072, 113.9721577, 113.98550821, 113.99885871, 114.01220921, 114.02555971, 114.03891022, 114.05226072, 114.06561122, 114.07896172, 114.09231223, 114.10566273, 114.11901323, 114.13236373, 114.14571424, 114.15906474, 114.17241524, 114.18576574, 114.19911625, 114.21246675, 114.22581725, 114.23916775, 114.25251826, 114.26586876, 114.27921926, 114.29256977, 114.30592027, 114.31927077, 114.33262127, 114.34597178, 114.35932228, 114.37267278, 114.38602328, 114.39937379, 114.41272429, 114.42607479, 114.43942529, 114.4527758, 114.4661263, 114.4794768, 114.4928273, 114.50617781, 114.51952831, 114.53287881, 114.54622931, 114.55957982, 114.57293032, 114.58628082, 114.59963132, 114.61298183, 114.62633233, 114.63968283, 114.65303333, 114.66638384, 114.67973434, 114.69308484, 114.70643534, 114.71978585, 114.73313635, 114.74648685, 114.75983736, 114.77318786, 114.78653836, 114.79988886, 114.81323937, 114.82658987, 114.83994037, 114.85329087, 114.86664138, 114.87999188, 114.89334238, 114.90669288, 114.92004339, 114.93339389, 114.94674439, 114.96009489, 114.9734454, 114.9867959, 115.0001464, 115.0134969, 115.02684741, 115.04019791, 115.05354841, 115.06689891, 115.08024942, 115.09359992, 115.10695042, 115.12030092, 115.13365143, 115.14700193, 115.16035243, 115.17370293, 115.18705344, 115.20040394, 115.21375444, 115.22710494, 115.24045545, 115.25380595, 115.26715645, 115.28050696, 115.29385746, 115.30720796, 115.32055846, 115.33390897, 115.34725947, 115.36060997, 115.37396047, 115.38731098, 115.40066148, 115.41401198, 115.42736248, 115.44071299, 115.45406349, 115.46741399, 115.48076449, 115.494115, 115.5074655, 115.520816, 115.5341665, 115.54751701, 115.56086751, 115.57421801, 115.58756851, 115.60091902, 115.61426952, 115.62762002, 115.64097052, 115.65432103, 115.66767153, 115.68102203, 115.69437253, 115.70772304, 115.72107354, 115.73442404, 115.74777455, 115.76112505, 115.77447555, 115.78782605, 115.80117656, 115.81452706, 115.82787756, 115.84122806, 115.85457857, 115.86792907, 115.88127957, 115.89463007, 115.90798058, 115.92133108, 115.93468158, 115.94803208, 115.96138259, 115.97473309, 115.98808359, 116.00143409, 116.0147846, 116.0281351, 116.0414856, 116.0548361, 116.06818661, 116.08153711, 116.09488761, 116.10823811, 116.12158862, 116.13493912, 116.14828962, 116.16164012, 116.17499063, 116.18834113, 116.20169163, 116.21504213, 116.22839264, 116.24174314, 116.25509364, 116.26844415, 116.28179465, 116.29514515, 116.30849565, 116.32184616, 116.33519666, 116.34854716, 116.36189766, 116.37524817, 116.38859867, 116.40194917, 116.41529967, 116.42865018, 116.44200068, 116.45535118, 116.46870168, 116.48205219, 116.49540269, 116.50875319, 116.52210369, 116.5354542, 116.5488047, 116.5621552, 116.5755057, 116.58885621, 116.60220671, 116.61555721, 116.62890771, 116.64225822, 116.65560872, 116.66895922, 116.68230972, 116.69566023, 116.70901073, 116.72236123, 116.73571173, 116.74906224, 116.76241274, 116.77576324, 116.78911375, 116.80246425, 116.81581475, 116.82916525, 116.84251576, 116.85586626, 116.86921676, 116.88256726, 116.89591777, 116.90926827, 116.92261877, 116.93596927, 116.94931978, 116.96267028, 116.97602078, 116.98937128, 117.00272179, 117.01607229, 117.02942279, 117.04277329, 117.0561238, 117.0694743, 117.0828248, 117.0961753, 117.10952581, 117.12287631, 117.13622681, 117.14957731, 117.16292782, 117.17627832, 117.18962882, 117.20297932, 117.21632983, 117.22968033, 117.24303083, 117.25638134, 117.26973184, 117.28308234, 117.29643284, 117.30978335, 117.32313385, 117.33648435, 117.34983485, 117.36318536, 117.37653586, 117.38988636, 117.40323686, 117.41658737, 117.42993787, 117.44328837, 117.45663887, 117.46998938, 117.48333988, 117.49669038, 117.51004088, 117.52339139, 117.53674189, 117.55009239, 117.56344289, 117.5767934, 117.5901439, 117.6034944, 117.6168449, 117.63019541, 117.64354591, 117.65689641, 117.67024691, 117.68359742, 117.69694792, 117.71029842, 117.72364892, 117.73699943, 117.75034993, 117.76370043, 117.77705094, 117.79040144, 117.80375194, 117.81710244, 117.83045295, 117.84380345, 117.85715395, 117.87050445, 117.88385496, 117.89720546, 117.91055596, 117.92390646, 117.93725697, 117.95060747, 117.96395797, 117.97730847, 117.99065898, 118.00400948, 118.01735998, 118.03071048, 118.04406099, 118.05741149, 118.07076199, 118.08411249, 118.097463, 118.1108135, 118.124164, 118.1375145, 118.15086501, 118.16421551, 118.17756601, 118.19091651, 118.20426702, 118.21761752, 118.23096802, 118.24431852, 118.25766903, 118.27101953, 118.28437003, 118.29772054, 118.31107104, 118.32442154, 118.33777204, 118.35112255, 118.36447305, 118.37782355, 118.39117405, 118.40452456, 118.41787506, 118.43122556, 118.44457606, 118.45792657, 118.47127707, 118.48462757, 118.49797807, 118.51132858, 118.52467908, 118.53802958, 118.55138008, 118.56473059, 118.57808109, 118.59143159, 118.60478209, 118.6181326, 118.6314831, 118.6448336, 118.6581841, 118.67153461, 118.68488511, 118.69823561, 118.71158611, 118.72493662, 118.73828712, 118.75163762, 118.76498813, 118.77833863, 118.79168913, 118.80503963, 118.81839014, 118.83174064, 118.84509114, 118.85844164, 118.87179215, 118.88514265, 118.89849315, 118.91184365, 118.92519416, 118.93854466, 118.95189516, 118.96524566, 118.97859617, 118.99194667, 119.00529717, 119.01864767, 119.03199818, 119.04534868, 119.05869918, 119.07204968, 119.08540019, 119.09875069, 119.11210119, 119.12545169, 119.1388022, 119.1521527, 119.1655032, 119.1788537, 119.19220421, 119.20555471, 119.21890521, 119.23225571, 119.24560622, 119.25895672, 119.27230722, 119.28565773, 119.29900823, 119.31235873, 119.32570923, 119.33905974, 119.35241024, 119.36576074, 119.37911124, 119.39246175, 119.40581225, 119.41916275, 119.43251325, 119.44586376, 119.45921426, 119.47256476, 119.48591526, 119.49926577, 119.51261627, 119.52596677, 119.53931727, 119.55266778, 119.56601828, 119.57936878, 119.59271928, 119.60606979, 119.61942029, 119.63277079, 119.64612129, 119.6594718, 119.6728223, 119.6861728, 119.6995233, 119.71287381, 119.72622431, 119.73957481, 119.75292531, 119.76627582, 119.77962632, 119.79297682, 119.80632733, 119.81967783, 119.83302833, 119.84637883, 119.85972934, 119.87307984, 119.88643034, 119.89978084, 119.91313135, 119.92648185, 119.93983235, 119.95318285, 119.96653336, 119.97988386, 119.99323436, 120.00658486, 120.01993537, 120.03328587, 120.04663637, 120.05998687, 120.07333738, 120.08668788, 120.10003838, 120.11338888, 120.12673939, 120.14008989, 120.15344039, 120.16679089, 120.1801414, 120.1934919, 120.2068424, 120.2201929, 120.23354341, 120.24689391, 120.26024441, 120.27359492, 120.28694542, 120.30029592, 120.31364642, 120.32699693, 120.34034743, 120.35369793, 120.36704843, 120.38039894, 120.39374944, 120.40709994, 120.42045044, 120.43380095, 120.44715145, 120.46050195, 120.47385245, 120.48720296, 120.50055346, 120.51390396, 120.52725446, 120.54060497, 120.55395547, 120.56730597, 120.58065647, 120.59400698, 120.60735748, 120.62070798, 120.63405848, 120.64740899, 120.66075949, 120.67410999, 120.68746049, 120.700811, 120.7141615, 120.727512, 120.7408625, 120.75421301, 120.76756351, 120.78091401, 120.79426452, 120.80761502, 120.82096552, 120.83431602, 120.84766653, 120.86101703, 120.87436753, 120.88771803, 120.90106854, 120.91441904, 120.92776954, 120.94112004, 120.95447055, 120.96782105, 120.98117155, 120.99452205, 121.00787256, 121.02122306, 121.03457356, 121.04792406, 121.06127457, 121.07462507, 121.08797557, 121.10132607, 121.11467658, 121.12802708, 121.14137758, 121.15472808, 121.16807859, 121.18142909, 121.19477959, 121.20813009, 121.2214806, 121.2348311, 121.2481816, 121.26153211, 121.27488261, 121.28823311, 121.30158361, 121.31493412, 121.32828462, 121.34163512, 121.35498562, 121.36833613, 121.38168663, 121.39503713, 121.40838763, 121.42173814, 121.43508864, 121.44843914, 121.46178964, 121.47514015, 121.48849065, 121.50184115, 121.51519165, 121.52854216, 121.54189266, 121.55524316, 121.56859366, 121.58194417, 121.59529467, 121.60864517, 121.62199567, 121.63534618, 121.64869668, 121.66204718, 121.67539768, 121.68874819, 121.70209869, 121.71544919, 121.72879969, 121.7421502, 121.7555007, 121.7688512, 121.78220171, 121.79555221, 121.80890271, 121.82225321, 121.83560372, 121.84895422, 121.86230472, 121.87565522, 121.88900573, 121.90235623, 121.91570673, 121.92905723, 121.94240774, 121.95575824, 121.96910874, 121.98245924, 121.99580975, 122.00916025, 122.02251075, 122.03586125, 122.04921176, 122.06256226, 122.07591276, 122.08926326, 122.10261377, 122.11596427, 122.12931477, 122.14266527, 122.15601578, 122.16936628, 122.18271678, 122.19606728, 122.20941779, 122.22276829, 122.23611879, 122.24946929, 122.2628198, 122.2761703, 122.2895208, 122.30287131, 122.31622181, 122.32957231, 122.34292281, 122.35627332, 122.36962382, 122.38297432, 122.39632482, 122.40967533, 122.42302583, 122.43637633, 122.44972683, 122.46307734, 122.47642784, 122.48977834, 122.50312884, 122.51647935, 122.52982985, 122.54318035, 122.55653085, 122.56988136, 122.58323186, 122.59658236, 122.60993286, 122.62328337, 122.63663387, 122.64998437, 122.66333487, 122.67668538, 122.69003588, 122.70338638, 122.71673688, 122.73008739, 122.74343789, 122.75678839, 122.7701389, 122.7834894, 122.7968399, 122.8101904, 122.82354091, 122.83689141, 122.85024191, 122.86359241, 122.87694292, 122.89029342, 122.90364392, 122.91699442, 122.93034493, 122.94369543, 122.95704593, 122.97039643, 122.98374694, 122.99709744, 123.01044794, 123.02379844, 123.03714895, 123.05049945, 123.06384995, 123.07720045, 123.09055096, 123.10390146, 123.11725196, 123.13060246, 123.14395297, 123.15730347, 123.17065397, 123.18400447, 123.19735498, 123.21070548, 123.22405598, 123.23740648, 123.25075699, 123.26410749, 123.27745799, 123.2908085, 123.304159, 123.3175095, 123.33086, 123.34421051, 123.35756101, 123.37091151, 123.38426201, 123.39761252, 123.41096302, 123.42431352, 123.43766402, 123.45101453, 123.46436503, 123.47771553, 123.49106603, 123.50441654, 123.51776704, 123.53111754, 123.54446804, 123.55781855, 123.57116905, 123.58451955, 123.59787005, 123.61122056, 123.62457106, 123.63792156, 123.65127206, 123.66462257, 123.67797307, 123.69132357, 123.70467407, 123.71802458, 123.73137508, 123.74472558, 123.75807608, 123.77142659, 123.78477709, 123.79812759, 123.8114781, 123.8248286, 123.8381791, 123.8515296, 123.86488011, 123.87823061, 123.89158111, 123.90493161, 123.91828212, 123.93163262, 123.94498312, 123.95833362, 123.97168413, 123.98503463, 123.99838513, 124.01173563, 124.02508614, 124.03843664, 124.05178714, 124.06513764, 124.07848815, 124.09183865, 124.10518915, 124.11853965, 124.13189016, 124.14524066, 124.15859116, 124.17194166, 124.18529217, 124.19864267, 124.21199317, 124.22534367, 124.23869418, 124.25204468, 124.26539518, 124.27874569, 124.29209619, 124.30544669, 124.31879719, 124.3321477, 124.3454982, 124.3588487, 124.3721992, 124.38554971, 124.39890021, 124.41225071, 124.42560121, 124.43895172, 124.45230222, 124.46565272, 124.47900322, 124.49235373, 124.50570423, 124.51905473, 124.53240523, 124.54575574, 124.55910624, 124.57245674, 124.58580724, 124.59915775, 124.61250825, 124.62585875, 124.63920925, 124.65255976, 124.66591026, 124.67926076, 124.69261126, 124.70596177, 124.71931227, 124.73266277, 124.74601327, 124.75936378, 124.77271428, 124.78606478, 124.79941529, 124.81276579, 124.82611629, 124.83946679, 124.8528173, 124.8661678, 124.8795183, 124.8928688, 124.90621931, 124.91956981, 124.93292031, 124.94627081, 124.95962132, 124.97297182, 124.98632232, 124.99967282, 125.01302333, 125.02637383, 125.03972433, 125.05307483, 125.06642534, 125.07977584, 125.09312634, 125.10647684, 125.11982735, 125.13317785, 125.14652835, 125.15987885, 125.17322936, 125.18657986, 125.19993036, 125.21328086, 125.22663137, 125.23998187, 125.25333237, 125.26668287, 125.28003338, 125.29338388, 125.30673438, 125.32008489, 125.33343539, 125.34678589, 125.36013639, 125.3734869, 125.3868374, 125.4001879, 125.4135384, 125.42688891, 125.44023941, 125.45358991, 125.46694041, 125.48029092, 125.49364142, 125.50699192, 125.52034242, 125.53369293, 125.54704343, 125.56039393, 125.57374443, 125.58709494, 125.60044544, 125.61379594, 125.62714644, 125.64049695, 125.65384745, 125.66719795, 125.68054845, 125.69389896, 125.70724946, 125.72059996, 125.73395046, 125.74730097, 125.76065147, 125.77400197, 125.78735248, 125.80070298, 125.81405348, 125.82740398, 125.84075449, 125.85410499, 125.86745549, 125.88080599, 125.8941565, 125.907507, 125.9208575, 125.934208, 125.94755851, 125.96090901, 125.97425951, 125.98761001, 126.00096052, 126.01431102, 126.02766152, 126.04101202, 126.05436253, 126.06771303, 126.08106353, 126.09441403, 126.10776454, 126.12111504, 126.13446554, 126.14781604, 126.16116655, 126.17451705, 126.18786755, 126.20121805, 126.21456856, 126.22791906, 126.24126956, 126.25462006, 126.26797057, 126.28132107, 126.29467157, 126.30802208, 126.32137258, 126.33472308, 126.34807358, 126.36142409, 126.37477459, 126.38812509, 126.40147559, 126.4148261, 126.4281766, 126.4415271, 126.4548776, 126.46822811, 126.48157861, 126.49492911, 126.50827961, 126.52163012, 126.53498062, 126.54833112] }, { "type": "double", "attributes": {}, "value": [0.00003128, 0.00003144, 0.00003159, 0.00003175, 0.00003191, 0.00003207, 0.00003223, 0.00003238, 0.00003254, 0.00003271, 0.00003287, 0.00003303, 0.00003319, 0.00003336, 0.00003352, 0.00003369, 0.00003385, 0.00003402, 0.00003419, 0.00003435, 0.00003452, 0.00003469, 0.00003486, 0.00003503, 0.00003521, 0.00003538, 0.00003555, 0.00003573, 0.0000359, 0.00003608, 0.00003625, 0.00003643, 0.00003661, 0.00003679, 0.00003697, 0.00003715, 0.00003733, 0.00003751, 0.00003769, 0.00003788, 0.00003806, 0.00003825, 0.00003843, 0.00003862, 0.00003881, 0.00003899, 0.00003918, 0.00003937, 0.00003957, 0.00003976, 0.00003995, 0.00004014, 0.00004034, 0.00004053, 0.00004073, 0.00004092, 0.00004112, 0.00004132, 0.00004152, 0.00004172, 0.00004192, 0.00004212, 0.00004233, 0.00004253, 0.00004273, 0.00004294, 0.00004315, 0.00004335, 0.00004356, 0.00004377, 0.00004398, 0.00004419, 0.0000444, 0.00004462, 0.00004483, 0.00004504, 0.00004526, 0.00004548, 0.00004569, 0.00004591, 0.00004613, 0.00004635, 0.00004657, 0.00004679, 0.00004702, 0.00004724, 0.00004746, 0.00004769, 0.00004792, 0.00004814, 0.00004837, 0.0000486, 0.00004883, 0.00004906, 0.0000493, 0.00004953, 0.00004976, 0.00005, 0.00005024, 0.00005047, 0.00005071, 0.00005095, 0.00005119, 0.00005143, 0.00005167, 0.00005192, 0.00005216, 0.00005241, 0.00005265, 0.0000529, 0.00005315, 0.0000534, 0.00005365, 0.0000539, 0.00005416, 0.00005441, 0.00005466, 0.00005492, 0.00005518, 0.00005544, 0.0000557, 0.00005596, 0.00005622, 0.00005648, 0.00005674, 0.00005701, 0.00005727, 0.00005754, 0.00005781, 0.00005808, 0.00005835, 0.00005862, 0.00005889, 0.00005916, 0.00005944, 0.00005971, 0.00005999, 0.00006027, 0.00006055, 0.00006083, 0.00006111, 0.00006139, 0.00006168, 0.00006196, 0.00006225, 0.00006253, 0.00006282, 0.00006311, 0.0000634, 0.0000637, 0.00006399, 0.00006428, 0.00006458, 0.00006488, 0.00006517, 0.00006547, 0.00006577, 0.00006608, 0.00006638, 0.00006668, 0.00006699, 0.00006729, 0.0000676, 0.00006791, 0.00006822, 0.00006853, 0.00006885, 0.00006916, 0.00006948, 0.00006979, 0.00007011, 0.00007043, 0.00007075, 0.00007107, 0.0000714, 0.00007172, 0.00007205, 0.00007237, 0.0000727, 0.00007303, 0.00007336, 0.00007369, 0.00007403, 0.00007436, 0.0000747, 0.00007504, 0.00007538, 0.00007572, 0.00007606, 0.0000764, 0.00007674, 0.00007709, 0.00007744, 0.00007779, 0.00007814, 0.00007849, 0.00007884, 0.00007919, 0.00007955, 0.00007991, 0.00008026, 0.00008062, 0.00008099, 0.00008135, 0.00008171, 0.00008208, 0.00008244, 0.00008281, 0.00008318, 0.00008355, 0.00008393, 0.0000843, 0.00008468, 0.00008505, 0.00008543, 0.00008581, 0.00008619, 0.00008658, 0.00008696, 0.00008735, 0.00008773, 0.00008812, 0.00008851, 0.00008891, 0.0000893, 0.0000897, 0.00009009, 0.00009049, 0.00009089, 0.00009129, 0.00009169, 0.0000921, 0.0000925, 0.00009291, 0.00009332, 0.00009373, 0.00009414, 0.00009456, 0.00009497, 0.00009539, 0.00009581, 0.00009623, 0.00009665, 0.00009707, 0.0000975, 0.00009793, 0.00009836, 0.00009879, 0.00009922, 0.00009965, 0.00010009, 0.00010052, 0.00010096, 0.0001014, 0.00010184, 0.00010229, 0.00010273, 0.00010318, 0.00010363, 0.00010408, 0.00010453, 0.00010498, 0.00010544, 0.00010589, 0.00010635, 0.00010681, 0.00010728, 0.00010774, 0.00010821, 0.00010867, 0.00010914, 0.00010961, 0.00011009, 0.00011056, 0.00011104, 0.00011151, 0.00011199, 0.00011248, 0.00011296, 0.00011345, 0.00011393, 0.00011442, 0.00011491, 0.00011541, 0.0001159, 0.0001164, 0.00011689, 0.00011739, 0.0001179, 0.0001184, 0.00011891, 0.00011941, 0.00011992, 0.00012043, 0.00012095, 0.00012146, 0.00012198, 0.0001225, 0.00012302, 0.00012354, 0.00012407, 0.00012459, 0.00012512, 0.00012565, 0.00012618, 0.00012672, 0.00012726, 0.00012779, 0.00012833, 0.00012888, 0.00012942, 0.00012997, 0.00013052, 0.00013107, 0.00013162, 0.00013217, 0.00013273, 0.00013329, 0.00013385, 0.00013441, 0.00013497, 0.00013554, 0.00013611, 0.00013668, 0.00013725, 0.00013783, 0.00013841, 0.00013898, 0.00013957, 0.00014015, 0.00014073, 0.00014132, 0.00014191, 0.0001425, 0.0001431, 0.00014369, 0.00014429, 0.00014489, 0.00014549, 0.0001461, 0.0001467, 0.00014731, 0.00014792, 0.00014854, 0.00014915, 0.00014977, 0.00015039, 0.00015101, 0.00015164, 0.00015226, 0.00015289, 0.00015352, 0.00015416, 0.00015479, 0.00015543, 0.00015607, 0.00015671, 0.00015736, 0.000158, 0.00015865, 0.0001593, 0.00015996, 0.00016061, 0.00016127, 0.00016193, 0.0001626, 0.00016326, 0.00016393, 0.0001646, 0.00016527, 0.00016595, 0.00016662, 0.0001673, 0.00016798, 0.00016867, 0.00016935, 0.00017004, 0.00017074, 0.00017143, 0.00017213, 0.00017282, 0.00017353, 0.00017423, 0.00017493, 0.00017564, 0.00017635, 0.00017707, 0.00017778, 0.0001785, 0.00017922, 0.00017995, 0.00018067, 0.0001814, 0.00018213, 0.00018286, 0.0001836, 0.00018434, 0.00018508, 0.00018582, 0.00018657, 0.00018732, 0.00018807, 0.00018882, 0.00018958, 0.00019034, 0.0001911, 0.00019186, 0.00019263, 0.0001934, 0.00019417, 0.00019494, 0.00019572, 0.0001965, 0.00019728, 0.00019807, 0.00019886, 0.00019965, 0.00020044, 0.00020124, 0.00020203, 0.00020284, 0.00020364, 0.00020445, 0.00020526, 0.00020607, 0.00020688, 0.0002077, 0.00020852, 0.00020934, 0.00021017, 0.000211, 0.00021183, 0.00021266, 0.0002135, 0.00021434, 0.00021518, 0.00021603, 0.00021688, 0.00021773, 0.00021858, 0.00021944, 0.0002203, 0.00022116, 0.00022202, 0.00022289, 0.00022376, 0.00022464, 0.00022551, 0.00022639, 0.00022727, 0.00022816, 0.00022905, 0.00022994, 0.00023083, 0.00023173, 0.00023263, 0.00023353, 0.00023444, 0.00023535, 0.00023626, 0.00023718, 0.00023809, 0.00023901, 0.00023994, 0.00024087, 0.0002418, 0.00024273, 0.00024366, 0.0002446, 0.00024555, 0.00024649, 0.00024744, 0.00024839, 0.00024934, 0.0002503, 0.00025126, 0.00025223, 0.00025319, 0.00025416, 0.00025514, 0.00025611, 0.00025709, 0.00025807, 0.00025906, 0.00026005, 0.00026104, 0.00026204, 0.00026303, 0.00026404, 0.00026504, 0.00026605, 0.00026706, 0.00026807, 0.00026909, 0.00027011, 0.00027114, 0.00027216, 0.00027319, 0.00027423, 0.00027526, 0.00027631, 0.00027735, 0.0002784, 0.00027945, 0.0002805, 0.00028156, 0.00028262, 0.00028368, 0.00028475, 0.00028582, 0.00028689, 0.00028797, 0.00028905, 0.00029013, 0.00029122, 0.00029231, 0.00029341, 0.0002945, 0.0002956, 0.00029671, 0.00029782, 0.00029893, 0.00030004, 0.00030116, 0.00030228, 0.00030341, 0.00030453, 0.00030567, 0.0003068, 0.00030794, 0.00030908, 0.00031023, 0.00031138, 0.00031253, 0.00031369, 0.00031485, 0.00031601, 0.00031718, 0.00031835, 0.00031953, 0.00032071, 0.00032189, 0.00032307, 0.00032426, 0.00032546, 0.00032665, 0.00032785, 0.00032906, 0.00033026, 0.00033147, 0.00033269, 0.00033391, 0.00033513, 0.00033635, 0.00033758, 0.00033882, 0.00034005, 0.00034129, 0.00034254, 0.00034379, 0.00034504, 0.0003463, 0.00034755, 0.00034882, 0.00035009, 0.00035136, 0.00035263, 0.00035391, 0.00035519, 0.00035648, 0.00035777, 0.00035906, 0.00036036, 0.00036166, 0.00036297, 0.00036427, 0.00036559, 0.00036691, 0.00036823, 0.00036955, 0.00037088, 0.00037221, 0.00037355, 0.00037489, 0.00037623, 0.00037758, 0.00037894, 0.00038029, 0.00038165, 0.00038302, 0.00038439, 0.00038576, 0.00038713, 0.00038851, 0.0003899, 0.00039129, 0.00039268, 0.00039408, 0.00039548, 0.00039688, 0.00039829, 0.0003997, 0.00040112, 0.00040254, 0.00040397, 0.0004054, 0.00040683, 0.00040827, 0.00040971, 0.00041116, 0.00041261, 0.00041406, 0.00041552, 0.00041698, 0.00041845, 0.00041992, 0.0004214, 0.00042288, 0.00042436, 0.00042585, 0.00042734, 0.00042884, 0.00043034, 0.00043184, 0.00043335, 0.00043487, 0.00043638, 0.00043791, 0.00043943, 0.00044096, 0.0004425, 0.00044404, 0.00044558, 0.00044713, 0.00044868, 0.00045024, 0.0004518, 0.00045337, 0.00045494, 0.00045651, 0.00045809, 0.00045968, 0.00046126, 0.00046286, 0.00046445, 0.00046605, 0.00046766, 0.00046927, 0.00047088, 0.0004725, 0.00047413, 0.00047576, 0.00047739, 0.00047903, 0.00048067, 0.00048231, 0.00048396, 0.00048562, 0.00048728, 0.00048894, 0.00049061, 0.00049229, 0.00049396, 0.00049565, 0.00049734, 0.00049903, 0.00050072, 0.00050242, 0.00050413, 0.00050584, 0.00050756, 0.00050928, 0.000511, 0.00051273, 0.00051447, 0.0005162, 0.00051795, 0.0005197, 0.00052145, 0.00052321, 0.00052497, 0.00052674, 0.00052851, 0.00053028, 0.00053207, 0.00053385, 0.00053564, 0.00053744, 0.00053924, 0.00054104, 0.00054285, 0.00054467, 0.00054649, 0.00054831, 0.00055014, 0.00055198, 0.00055382, 0.00055566, 0.00055751, 0.00055936, 0.00056122, 0.00056309, 0.00056496, 0.00056683, 0.00056871, 0.00057059, 0.00057248, 0.00057437, 0.00057627, 0.00057818, 0.00058009, 0.000582, 0.00058392, 0.00058584, 0.00058777, 0.0005897, 0.00059164, 0.00059359, 0.00059553, 0.00059749, 0.00059945, 0.00060141, 0.00060338, 0.00060535, 0.00060733, 0.00060932, 0.00061131, 0.0006133, 0.0006153, 0.0006173, 0.00061931, 0.00062133, 0.00062335, 0.00062538, 0.00062741, 0.00062944, 0.00063148, 0.00063353, 0.00063558, 0.00063764, 0.0006397, 0.00064177, 0.00064384, 0.00064592, 0.000648, 0.00065009, 0.00065218, 0.00065428, 0.00065638, 0.00065849, 0.00066061, 0.00066273, 0.00066485, 0.00066698, 0.00066912, 0.00067126, 0.00067341, 0.00067556, 0.00067772, 0.00067988, 0.00068205, 0.00068422, 0.0006864, 0.00068858, 0.00069077, 0.00069297, 0.00069517, 0.00069737, 0.00069959, 0.0007018, 0.00070403, 0.00070625, 0.00070849, 0.00071073, 0.00071297, 0.00071522, 0.00071747, 0.00071974, 0.000722, 0.00072427, 0.00072655, 0.00072883, 0.00073112, 0.00073342, 0.00073572, 0.00073802, 0.00074033, 0.00074265, 0.00074497, 0.0007473, 0.00074963, 0.00075197, 0.00075432, 0.00075667, 0.00075902, 0.00076138, 0.00076375, 0.00076612, 0.0007685, 0.00077089, 0.00077328, 0.00077567, 0.00077807, 0.00078048, 0.00078289, 0.00078531, 0.00078774, 0.00079017, 0.0007926, 0.00079504, 0.00079749, 0.00079994, 0.0008024, 0.00080487, 0.00080734, 0.00080981, 0.00081229, 0.00081478, 0.00081727, 0.00081977, 0.00082228, 0.00082479, 0.00082731, 0.00082983, 0.00083236, 0.00083489, 0.00083743, 0.00083998, 0.00084253, 0.00084509, 0.00084765, 0.00085022, 0.0008528, 0.00085538, 0.00085797, 0.00086056, 0.00086316, 0.00086577, 0.00086838, 0.000871, 0.00087362, 0.00087625, 0.00087888, 0.00088153, 0.00088417, 0.00088683, 0.00088949, 0.00089215, 0.00089482, 0.0008975, 0.00090018, 0.00090287, 0.00090557, 0.00090827, 0.00091098, 0.00091369, 0.00091641, 0.00091914, 0.00092187, 0.00092461, 0.00092735, 0.0009301, 0.00093286, 0.00093562, 0.00093839, 0.00094117, 0.00094395, 0.00094674, 0.00094953, 0.00095233, 0.00095514, 0.00095795, 0.00096077, 0.00096359, 0.00096642, 0.00096926, 0.0009721, 0.00097495, 0.00097781, 0.00098067, 0.00098353, 0.00098641, 0.00098929, 0.00099218, 0.00099507, 0.00099797, 0.00100087, 0.00100379, 0.0010067, 0.00100963, 0.00101256, 0.0010155, 0.00101844, 0.00102139, 0.00102434, 0.00102731, 0.00103027, 0.00103325, 0.00103623, 0.00103922, 0.00104221, 0.00104521, 0.00104822, 0.00105123, 0.00105425, 0.00105728, 0.00106031, 0.00106335, 0.00106639, 0.00106945, 0.0010725, 0.00107557, 0.00107864, 0.00108172, 0.0010848, 0.00108789, 0.00109099, 0.00109409, 0.0010972, 0.00110031, 0.00110344, 0.00110656, 0.0011097, 0.00111284, 0.00111599, 0.00111914, 0.00112231, 0.00112547, 0.00112865, 0.00113183, 0.00113502, 0.00113821, 0.00114141, 0.00114462, 0.00114783, 0.00115105, 0.00115428, 0.00115751, 0.00116075, 0.001164, 0.00116725, 0.00117051, 0.00117378, 0.00117705, 0.00118033, 0.00118361, 0.00118691, 0.0011902, 0.00119351, 0.00119682, 0.00120014, 0.00120347, 0.0012068, 0.00121014, 0.00121348, 0.00121684, 0.00122019, 0.00122356, 0.00122693, 0.00123031, 0.0012337, 0.00123709, 0.00124049, 0.00124389, 0.0012473, 0.00125072, 0.00125415, 0.00125758, 0.00126102, 0.00126446, 0.00126792, 0.00127138, 0.00127484, 0.00127831, 0.00128179, 0.00128528, 0.00128877, 0.00129227, 0.00129578, 0.00129929, 0.00130281, 0.00130634, 0.00130987, 0.00131341, 0.00131696, 0.00132051, 0.00132407, 0.00132764, 0.00133121, 0.00133479, 0.00133838, 0.00134197, 0.00134557, 0.00134918, 0.0013528, 0.00135642, 0.00136005, 0.00136368, 0.00136732, 0.00137097, 0.00137463, 0.00137829, 0.00138196, 0.00138564, 0.00138932, 0.00139301, 0.00139671, 0.00140041, 0.00140412, 0.00140784, 0.00141156, 0.00141529, 0.00141903, 0.00142277, 0.00142653, 0.00143028, 0.00143405, 0.00143782, 0.0014416, 0.00144539, 0.00144918, 0.00145298, 0.00145679, 0.0014606, 0.00146442, 0.00146825, 0.00147208, 0.00147592, 0.00147977, 0.00148363, 0.00148749, 0.00149136, 0.00149523, 0.00149912, 0.00150301, 0.0015069, 0.00151081, 0.00151472, 0.00151863, 0.00152256, 0.00152649, 0.00153043, 0.00153437, 0.00153833, 0.00154228, 0.00154625, 0.00155022, 0.0015542, 0.00155819, 0.00156218, 0.00156618, 0.00157019, 0.00157421, 0.00157823, 0.00158226, 0.00158629, 0.00159034, 0.00159439, 0.00159844, 0.00160251, 0.00160658, 0.00161066, 0.00161474, 0.00161883, 0.00162293, 0.00162704, 0.00163115, 0.00163527, 0.00163939, 0.00164353, 0.00164767, 0.00165182, 0.00165597, 0.00166013, 0.0016643, 0.00166848, 0.00167266, 0.00167685, 0.00168105, 0.00168525, 0.00168946, 0.00169368, 0.0016979, 0.00170213, 0.00170637, 0.00171062, 0.00171487, 0.00171913, 0.0017234, 0.00172767, 0.00173195, 0.00173624, 0.00174054, 0.00174484, 0.00174915, 0.00175346, 0.00175779, 0.00176212, 0.00176645, 0.0017708, 0.00177515, 0.00177951, 0.00178387, 0.00178824, 0.00179262, 0.00179701, 0.0018014, 0.0018058, 0.00181021, 0.00181463, 0.00181905, 0.00182348, 0.00182791, 0.00183235, 0.0018368, 0.00184126, 0.00184572, 0.0018502, 0.00185467, 0.00185916, 0.00186365, 0.00186815, 0.00187265, 0.00187717, 0.00188169, 0.00188621, 0.00189075, 0.00189529, 0.00189984, 0.00190439, 0.00190895, 0.00191352, 0.0019181, 0.00192268, 0.00192727, 0.00193187, 0.00193647, 0.00194109, 0.0019457, 0.00195033, 0.00195496, 0.0019596, 0.00196425, 0.0019689, 0.00197356, 0.00197823, 0.0019829, 0.00198758, 0.00199227, 0.00199697, 0.00200167, 0.00200638, 0.0020111, 0.00201582, 0.00202055, 0.00202529, 0.00203003, 0.00203479, 0.00203954, 0.00204431, 0.00204908, 0.00205386, 0.00205865, 0.00206344, 0.00206824, 0.00207305, 0.00207786, 0.00208269, 0.00208751, 0.00209235, 0.00209719, 0.00210204, 0.0021069, 0.00211176, 0.00211663, 0.00212151, 0.00212639, 0.00213128, 0.00213618, 0.00214109, 0.002146, 0.00215092, 0.00215585, 0.00216078, 0.00216572, 0.00217066, 0.00217562, 0.00218058, 0.00218555, 0.00219052, 0.0021955, 0.00220049, 0.00220549, 0.00221049, 0.0022155, 0.00222052, 0.00222554, 0.00223057, 0.0022356, 0.00224065, 0.0022457, 0.00225076, 0.00225582, 0.00226089, 0.00226597, 0.00227106, 0.00227615, 0.00228125, 0.00228635, 0.00229147, 0.00229659, 0.00230171, 0.00230685, 0.00231199, 0.00231713, 0.00232229, 0.00232745, 0.00233262, 0.00233779, 0.00234297, 0.00234816, 0.00235335, 0.00235856, 0.00236376, 0.00236898, 0.0023742, 0.00237943, 0.00238467, 0.00238991, 0.00239516, 0.00240042, 0.00240568, 0.00241095, 0.00241623, 0.00242151, 0.0024268, 0.0024321, 0.0024374, 0.00244271, 0.00244803, 0.00245335, 0.00245868, 0.00246402, 0.00246937, 0.00247472, 0.00248008, 0.00248544, 0.00249081, 0.00249619, 0.00250157, 0.00250697, 0.00251236, 0.00251777, 0.00252318, 0.0025286, 0.00253402, 0.00253946, 0.00254489, 0.00255034, 0.00255579, 0.00256125, 0.00256671, 0.00257219, 0.00257766, 0.00258315, 0.00258864, 0.00259414, 0.00259964, 0.00260516, 0.00261067, 0.0026162, 0.00262173, 0.00262727, 0.00263281, 0.00263836, 0.00264392, 0.00264949, 0.00265506, 0.00266063, 0.00266622, 0.00267181, 0.00267741, 0.00268301, 0.00268862, 0.00269424, 0.00269986, 0.00270549, 0.00271113, 0.00271677, 0.00272242, 0.00272808, 0.00273374, 0.00273941, 0.00274508, 0.00275076, 0.00275645, 0.00276215, 0.00276785, 0.00277356, 0.00277927, 0.00278499, 0.00279072, 0.00279645, 0.00280219, 0.00280794, 0.00281369, 0.00281945, 0.00282521, 0.00283099, 0.00283676, 0.00284255, 0.00284834, 0.00285414, 0.00285994, 0.00286575, 0.00287157, 0.00287739, 0.00288322, 0.00288905, 0.0028949, 0.00290074, 0.0029066, 0.00291246, 0.00291833, 0.0029242, 0.00293008, 0.00293596, 0.00294186, 0.00294775, 0.00295366, 0.00295957, 0.00296549, 0.00297141, 0.00297734, 0.00298327, 0.00298922, 0.00299516, 0.00300112, 0.00300708, 0.00301305, 0.00301902, 0.003025, 0.00303098, 0.00303697, 0.00304297, 0.00304897, 0.00305498, 0.003061, 0.00306702, 0.00307305, 0.00307908, 0.00308512, 0.00309117, 0.00309722, 0.00310328, 0.00310934, 0.00311541, 0.00312149, 0.00312757, 0.00313366, 0.00313975, 0.00314585, 0.00315196, 0.00315807, 0.00316419, 0.00317031, 0.00317644, 0.00318258, 0.00318872, 0.00319487, 0.00320102, 0.00320718, 0.00321335, 0.00321952, 0.0032257, 0.00323188, 0.00323807, 0.00324426, 0.00325046, 0.00325667, 0.00326288, 0.0032691, 0.00327533, 0.00328156, 0.00328779, 0.00329403, 0.00330028, 0.00330653, 0.00331279, 0.00331906, 0.00332533, 0.0033316, 0.00333789, 0.00334417, 0.00335047, 0.00335677, 0.00336307, 0.00336938, 0.0033757, 0.00338202, 0.00338835, 0.00339468, 0.00340102, 0.00340736, 0.00341371, 0.00342007, 0.00342643, 0.00343279, 0.00343917, 0.00344555, 0.00345193, 0.00345832, 0.00346471, 0.00347111, 0.00347752, 0.00348393, 0.00349035, 0.00349677, 0.00350319, 0.00350963, 0.00351607, 0.00352251, 0.00352896, 0.00353541, 0.00354188, 0.00354834, 0.00355481, 0.00356129, 0.00356777, 0.00357426, 0.00358075, 0.00358725, 0.00359375, 0.00360026, 0.00360677, 0.00361329, 0.00361982, 0.00362635, 0.00363288, 0.00363942, 0.00364597, 0.00365252, 0.00365908, 0.00366564, 0.00367221, 0.00367878, 0.00368535, 0.00369194, 0.00369852, 0.00370512, 0.00371171, 0.00371832, 0.00372493, 0.00373154, 0.00373816, 0.00374478, 0.00375141, 0.00375804, 0.00376468, 0.00377133, 0.00377798, 0.00378463, 0.00379129, 0.00379795, 0.00380462, 0.0038113, 0.00381798, 0.00382466, 0.00383135, 0.00383804, 0.00384474, 0.00385145, 0.00385815, 0.00386487, 0.00387159, 0.00387831, 0.00388504, 0.00389177, 0.00389851, 0.00390525, 0.003912, 0.00391876, 0.00392551, 0.00393228, 0.00393904, 0.00394582, 0.00395259, 0.00395937, 0.00396616, 0.00397295, 0.00397975, 0.00398655, 0.00399335, 0.00400016, 0.00400698, 0.0040138, 0.00402062, 0.00402745, 0.00403428, 0.00404112, 0.00404797, 0.00405481, 0.00406166, 0.00406852, 0.00407538, 0.00408225, 0.00408912, 0.00409599, 0.00410287, 0.00410976, 0.00411664, 0.00412354, 0.00413043, 0.00413734, 0.00414424, 0.00415115, 0.00415807, 0.00416499, 0.00417191, 0.00417884, 0.00418577, 0.00419271, 0.00419965, 0.0042066, 0.00421355, 0.0042205, 0.00422746, 0.00423443, 0.00424139, 0.00424837, 0.00425534, 0.00426232, 0.00426931, 0.0042763, 0.00428329, 0.00429029, 0.00429729, 0.0043043, 0.00431131, 0.00431832, 0.00432534, 0.00433236, 0.00433939, 0.00434642, 0.00435346, 0.0043605, 0.00436754, 0.00437459, 0.00438164, 0.00438869, 0.00439575, 0.00440282, 0.00440989, 0.00441696, 0.00442403, 0.00443111, 0.0044382, 0.00444529, 0.00445238, 0.00445947, 0.00446657, 0.00447368, 0.00448078, 0.0044879, 0.00449501, 0.00450213, 0.00450925, 0.00451638, 0.00452351, 0.00453065, 0.00453778, 0.00454493, 0.00455207, 0.00455922, 0.00456638, 0.00457353, 0.0045807, 0.00458786, 0.00459503, 0.0046022, 0.00460938, 0.00461656, 0.00462374, 0.00463093, 0.00463812, 0.00464531, 0.00465251, 0.00465971, 0.00466692, 0.00467413, 0.00468134, 0.00468856, 0.00469578, 0.004703, 0.00471023, 0.00471746, 0.00472469, 0.00473193, 0.00473917, 0.00474642, 0.00475366, 0.00476091, 0.00476817, 0.00477543, 0.00478269, 0.00478995, 0.00479722, 0.0048045, 0.00481177, 0.00481905, 0.00482633, 0.00483362, 0.00484091, 0.0048482, 0.00485549, 0.00486279, 0.00487009, 0.0048774, 0.00488471, 0.00489202, 0.00489933, 0.00490665, 0.00491397, 0.0049213, 0.00492863, 0.00493596, 0.00494329, 0.00495063, 0.00495797, 0.00496531, 0.00497266, 0.00498001, 0.00498736, 0.00499472, 0.00500208, 0.00500944, 0.00501681, 0.00502418, 0.00503155, 0.00503892, 0.0050463, 0.00505368, 0.00506106, 0.00506845, 0.00507584, 0.00508323, 0.00509063, 0.00509802, 0.00510543, 0.00511283, 0.00512024, 0.00512765, 0.00513506, 0.00514248, 0.00514989, 0.00515732, 0.00516474, 0.00517217, 0.0051796, 0.00518703, 0.00519446, 0.0052019, 0.00520934, 0.00521679, 0.00522423, 0.00523168, 0.00523913, 0.00524659, 0.00525405, 0.00526151, 0.00526897, 0.00527643, 0.0052839, 0.00529137, 0.00529885, 0.00530632, 0.0053138, 0.00532128, 0.00532876, 0.00533625, 0.00534374, 0.00535123, 0.00535872, 0.00536622, 0.00537372, 0.00538122, 0.00538873, 0.00539623, 0.00540374, 0.00541125, 0.00541877, 0.00542628, 0.0054338, 0.00544132, 0.00544884, 0.00545637, 0.0054639, 0.00547143, 0.00547896, 0.0054865, 0.00549404, 0.00550158, 0.00550912, 0.00551666, 0.00552421, 0.00553176, 0.00553931, 0.00554686, 0.00555442, 0.00556198, 0.00556954, 0.0055771, 0.00558467, 0.00559223, 0.0055998, 0.00560738, 0.00561495, 0.00562253, 0.0056301, 0.00563768, 0.00564527, 0.00565285, 0.00566044, 0.00566803, 0.00567562, 0.00568321, 0.00569081, 0.0056984, 0.005706, 0.0057136, 0.00572121, 0.00572881, 0.00573642, 0.00574403, 0.00575164, 0.00575925, 0.00576687, 0.00577448, 0.0057821, 0.00578972, 0.00579735, 0.00580497, 0.0058126, 0.00582023, 0.00582786, 0.00583549, 0.00584313, 0.00585076, 0.0058584, 0.00586604, 0.00587368, 0.00588133, 0.00588897, 0.00589662, 0.00590427, 0.00591192, 0.00591957, 0.00592723, 0.00593488, 0.00594254, 0.0059502, 0.00595786, 0.00596552, 0.00597319, 0.00598085, 0.00598852, 0.00599619, 0.00600386, 0.00601154, 0.00601921, 0.00602689, 0.00603457, 0.00604225, 0.00604993, 0.00605761, 0.0060653, 0.00607298, 0.00608067, 0.00608836, 0.00609605, 0.00610374, 0.00611144, 0.00611913, 0.00612683, 0.00613453, 0.00614223, 0.00614993, 0.00615763, 0.00616534, 0.00617305, 0.00618075, 0.00618846, 0.00619617, 0.00620388, 0.0062116, 0.00621931, 0.00622703, 0.00623475, 0.00624247, 0.00625019, 0.00625791, 0.00626563, 0.00627336, 0.00628108, 0.00628881, 0.00629654, 0.00630427, 0.006312, 0.00631973, 0.00632747, 0.0063352, 0.00634294, 0.00635068, 0.00635842, 0.00636616, 0.0063739, 0.00638164, 0.00638939, 0.00639713, 0.00640488, 0.00641263, 0.00642038, 0.00642813, 0.00643588, 0.00644363, 0.00645139, 0.00645914, 0.0064669, 0.00647465, 0.00648241, 0.00649017, 0.00649793, 0.0065057, 0.00651346, 0.00652122, 0.00652899, 0.00653676, 0.00654453, 0.00655229, 0.00656006, 0.00656784, 0.00657561, 0.00658338, 0.00659116, 0.00659893, 0.00660671, 0.00661448, 0.00662226, 0.00663004, 0.00663782, 0.00664561, 0.00665339, 0.00666117, 0.00666896, 0.00667674, 0.00668453, 0.00669232, 0.0067001, 0.00670789, 0.00671568, 0.00672348, 0.00673127, 0.00673906, 0.00674686, 0.00675465, 0.00676245, 0.00677025, 0.00677804, 0.00678584, 0.00679364, 0.00680144, 0.00680924, 0.00681705, 0.00682485, 0.00683265, 0.00684046, 0.00684827, 0.00685607, 0.00686388, 0.00687169, 0.0068795, 0.00688731, 0.00689512, 0.00690293, 0.00691074, 0.00691856, 0.00692637, 0.00693419, 0.006942, 0.00694982, 0.00695764, 0.00696546, 0.00697327, 0.00698109, 0.00698892, 0.00699674, 0.00700456, 0.00701238, 0.00702021, 0.00702803, 0.00703585, 0.00704368, 0.00705151, 0.00705933, 0.00706716, 0.00707499, 0.00708282, 0.00709065, 0.00709848, 0.00710631, 0.00711415, 0.00712198, 0.00712981, 0.00713765, 0.00714548, 0.00715332, 0.00716115, 0.00716899, 0.00717683, 0.00718467, 0.00719251, 0.00720035, 0.00720819, 0.00721603, 0.00722387, 0.00723171, 0.00723956, 0.0072474, 0.00725524, 0.00726309, 0.00727093, 0.00727878, 0.00728663, 0.00729447, 0.00730232, 0.00731017, 0.00731802, 0.00732587, 0.00733372, 0.00734157, 0.00734942, 0.00735727, 0.00736513, 0.00737298, 0.00738083, 0.00738869, 0.00739654, 0.0074044, 0.00741226, 0.00742011, 0.00742797, 0.00743583, 0.00744369, 0.00745154, 0.0074594, 0.00746726, 0.00747512, 0.00748299, 0.00749085, 0.00749871, 0.00750657, 0.00751444, 0.0075223, 0.00753016, 0.00753803, 0.00754589, 0.00755376, 0.00756163, 0.00756949, 0.00757736, 0.00758523, 0.0075931, 0.00760097, 0.00760884, 0.00761671, 0.00762458, 0.00763245, 0.00764032, 0.00764819, 0.00765607, 0.00766394, 0.00767181, 0.00767969, 0.00768756, 0.00769544, 0.00770331, 0.00771119, 0.00771907, 0.00772694, 0.00773482, 0.0077427, 0.00775058, 0.00775846, 0.00776634, 0.00777422, 0.0077821, 0.00778998, 0.00779786, 0.00780574, 0.00781362, 0.00782151, 0.00782939, 0.00783728, 0.00784516, 0.00785305, 0.00786093, 0.00786882, 0.0078767, 0.00788459, 0.00789248, 0.00790037, 0.00790825, 0.00791614, 0.00792403, 0.00793192, 0.00793981, 0.0079477, 0.0079556, 0.00796349, 0.00797138, 0.00797927, 0.00798717, 0.00799506, 0.00800296, 0.00801085, 0.00801875, 0.00802664, 0.00803454, 0.00804243, 0.00805033, 0.00805823, 0.00806613, 0.00807403, 0.00808193, 0.00808983, 0.00809773, 0.00810563, 0.00811353, 0.00812143, 0.00812933, 0.00813724, 0.00814514, 0.00815304, 0.00816095, 0.00816885, 0.00817676, 0.00818466, 0.00819257, 0.00820048, 0.00820838, 0.00821629, 0.0082242, 0.00823211, 0.00824002, 0.00824793, 0.00825584, 0.00826375, 0.00827166, 0.00827957, 0.00828749, 0.0082954, 0.00830331, 0.00831123, 0.00831914, 0.00832706, 0.00833498, 0.00834289, 0.00835081, 0.00835873, 0.00836664, 0.00837456, 0.00838248, 0.0083904, 0.00839832, 0.00840624, 0.00841417, 0.00842209, 0.00843001, 0.00843793, 0.00844586, 0.00845378, 0.00846171, 0.00846963, 0.00847756, 0.00848549, 0.00849341, 0.00850134, 0.00850927, 0.0085172, 0.00852513, 0.00853306, 0.00854099, 0.00854892, 0.00855686, 0.00856479, 0.00857272, 0.00858066, 0.00858859, 0.00859653, 0.00860446, 0.0086124, 0.00862034, 0.00862828, 0.00863622, 0.00864416, 0.0086521, 0.00866004, 0.00866798, 0.00867592, 0.00868386, 0.00869181, 0.00869975, 0.0087077, 0.00871564, 0.00872359, 0.00873153, 0.00873948, 0.00874743, 0.00875538, 0.00876333, 0.00877128, 0.00877923, 0.00878718, 0.00879514, 0.00880309, 0.00881105, 0.008819, 0.00882696, 0.00883491, 0.00884287, 0.00885083, 0.00885879, 0.00886675, 0.00887471, 0.00888267, 0.00889063, 0.00889859, 0.00890656, 0.00891452, 0.00892249, 0.00893045, 0.00893842, 0.00894639, 0.00895436, 0.00896233, 0.0089703, 0.00897827, 0.00898624, 0.00899421, 0.00900219, 0.00901016, 0.00901814, 0.00902611, 0.00903409, 0.00904207, 0.00905005, 0.00905803, 0.00906601, 0.00907399, 0.00908197, 0.00908995, 0.00909794, 0.00910592, 0.00911391, 0.0091219, 0.00912989, 0.00913787, 0.00914586, 0.00915386, 0.00916185, 0.00916984, 0.00917783, 0.00918583, 0.00919383, 0.00920182, 0.00920982, 0.00921782, 0.00922582, 0.00923382, 0.00924182, 0.00924982, 0.00925783, 0.00926583, 0.00927384, 0.00928185, 0.00928986, 0.00929786, 0.00930587, 0.00931389, 0.0093219, 0.00932991, 0.00933793, 0.00934594, 0.00935396, 0.00936198, 0.00937, 0.00937802, 0.00938604, 0.00939406, 0.00940209, 0.00941011, 0.00941814, 0.00942616, 0.00943419, 0.00944222, 0.00945025, 0.00945828, 0.00946632, 0.00947435, 0.00948239, 0.00949042, 0.00949846, 0.0095065, 0.00951454, 0.00952258, 0.00953063, 0.00953867, 0.00954672, 0.00955476, 0.00956281, 0.00957086, 0.00957891, 0.00958696, 0.00959502, 0.00960307, 0.00961113, 0.00961918, 0.00962724, 0.0096353, 0.00964336, 0.00965143, 0.00965949, 0.00966755, 0.00967562, 0.00968369, 0.00969176, 0.00969983, 0.0097079, 0.00971598, 0.00972405, 0.00973213, 0.0097402, 0.00974828, 0.00975636, 0.00976445, 0.00977253, 0.00978062, 0.0097887, 0.00979679, 0.00980488, 0.00981297, 0.00982106, 0.00982916, 0.00983725, 0.00984535, 0.00985345, 0.00986155, 0.00986965, 0.00987775, 0.00988586, 0.00989396, 0.00990207, 0.00991018, 0.00991829, 0.00992641, 0.00993452, 0.00994264, 0.00995075, 0.00995887, 0.00996699, 0.00997512, 0.00998324, 0.00999137, 0.00999949, 0.01000762, 0.01001575, 0.01002388, 0.01003202, 0.01004015, 0.01004829, 0.01005643, 0.01006457, 0.01007271, 0.01008086, 0.01008901, 0.01009715, 0.0101053, 0.01011345, 0.01012161, 0.01012976, 0.01013792, 0.01014608, 0.01015424, 0.0101624, 0.01017056, 0.01017873, 0.0101869, 0.01019507, 0.01020324, 0.01021141, 0.01021958, 0.01022776, 0.01023594, 0.01024412, 0.0102523, 0.01026049, 0.01026867, 0.01027686, 0.01028505, 0.01029324, 0.01030144, 0.01030963, 0.01031783, 0.01032603, 0.01033423, 0.01034244, 0.01035064, 0.01035885, 0.01036706, 0.01037527, 0.01038348, 0.0103917, 0.01039992, 0.01040814, 0.01041636, 0.01042458, 0.01043281, 0.01044104, 0.01044927, 0.0104575, 0.01046573, 0.01047397, 0.01048221, 0.01049045, 0.01049869, 0.01050693, 0.01051518, 0.01052343, 0.01053168, 0.01053993, 0.01054819, 0.01055645, 0.0105647, 0.01057297, 0.01058123, 0.0105895, 0.01059776, 0.01060604, 0.01061431, 0.01062258, 0.01063086, 0.01063914, 0.01064742, 0.0106557, 0.01066399, 0.01067228, 0.01068057, 0.01068886, 0.01069716, 0.01070545, 0.01071375, 0.01072206, 0.01073036, 0.01073867, 0.01074698, 0.01075529, 0.0107636, 0.01077192, 0.01078024, 0.01078856, 0.01079688, 0.0108052, 0.01081353, 0.01082186, 0.01083019, 0.01083853, 0.01084687, 0.01085521, 0.01086355, 0.01087189, 0.01088024, 0.01088859, 0.01089694, 0.0109053, 0.01091365, 0.01092201, 0.01093037, 0.01093874, 0.0109471, 0.01095547, 0.01096384, 0.01097222, 0.01098059, 0.01098897, 0.01099736, 0.01100574, 0.01101413, 0.01102252, 0.01103091, 0.0110393, 0.0110477, 0.0110561, 0.0110645, 0.0110729, 0.01108131, 0.01108972, 0.01109813, 0.01110655, 0.01111497, 0.01112339, 0.01113181, 0.01114023, 0.01114866, 0.01115709, 0.01116553, 0.01117396, 0.0111824, 0.01119084, 0.01119928, 0.01120773, 0.01121618, 0.01122463, 0.01123309, 0.01124154, 0.01125, 0.01125847, 0.01126693, 0.0112754, 0.01128387, 0.01129234, 0.01130082, 0.0113093, 0.01131778, 0.01132626, 0.01133475, 0.01134324, 0.01135173, 0.01136023, 0.01136873, 0.01137723, 0.01138573, 0.01139424, 0.01140275, 0.01141126, 0.01141977, 0.01142829, 0.01143681, 0.01144534, 0.01145386, 0.01146239, 0.01147092, 0.01147946, 0.011488, 0.01149654, 0.01150508, 0.01151362, 0.01152217, 0.01153073, 0.01153928, 0.01154784, 0.0115564, 0.01156496, 0.01157353, 0.01158209, 0.01159067, 0.01159924, 0.01160782, 0.0116164, 0.01162498, 0.01163357, 0.01164216, 0.01165075, 0.01165935, 0.01166794, 0.01167654, 0.01168515, 0.01169375, 0.01170236, 0.01171098, 0.01171959, 0.01172821, 0.01173683, 0.01174546, 0.01175408, 0.01176271, 0.01177135, 0.01177998, 0.01178862, 0.01179727, 0.01180591, 0.01181456, 0.01182321, 0.01183186, 0.01184052, 0.01184918, 0.01185784, 0.01186651, 0.01187518, 0.01188385, 0.01189253, 0.01190121, 0.01190989, 0.01191857, 0.01192726, 0.01193595, 0.01194464, 0.01195334, 0.01196204, 0.01197074, 0.01197944, 0.01198815, 0.01199686, 0.01200558, 0.0120143, 0.01202302, 0.01203174, 0.01204047, 0.0120492, 0.01205793, 0.01206666, 0.0120754, 0.01208415, 0.01209289, 0.01210164, 0.01211039, 0.01211914, 0.0121279, 0.01213666, 0.01214542, 0.01215419, 0.01216296, 0.01217173, 0.01218051, 0.01218929, 0.01219807, 0.01220685, 0.01221564, 0.01222443, 0.01223322, 0.01224202, 0.01225082, 0.01225963, 0.01226843, 0.01227724, 0.01228605, 0.01229487, 0.01230369, 0.01231251, 0.01232133, 0.01233016, 0.01233899, 0.01234783, 0.01235666, 0.0123655, 0.01237435, 0.01238319, 0.01239204, 0.01240089, 0.01240975, 0.01241861, 0.01242747, 0.01243633, 0.0124452, 0.01245407, 0.01246295, 0.01247182, 0.0124807, 0.01248959, 0.01249847, 0.01250736, 0.01251625, 0.01252515, 0.01253405, 0.01254295, 0.01255185, 0.01256076, 0.01256967, 0.01257858, 0.0125875, 0.01259642, 0.01260534, 0.01261427, 0.0126232, 0.01263213, 0.01264106, 0.01265, 0.01265894, 0.01266789, 0.01267684, 0.01268579, 0.01269474, 0.01270369, 0.01271265, 0.01272162, 0.01273058, 0.01273955, 0.01274852, 0.0127575, 0.01276647, 0.01277545, 0.01278444, 0.01279342, 0.01280241, 0.0128114, 0.0128204, 0.0128294, 0.0128384, 0.0128474, 0.01285641, 0.01286542, 0.01287443, 0.01288345, 0.01289247, 0.01290149, 0.01291052, 0.01291954, 0.01292857, 0.01293761, 0.01294665, 0.01295568, 0.01296473, 0.01297377, 0.01298282, 0.01299187, 0.01300093, 0.01300998, 0.01301904, 0.01302811, 0.01303717, 0.01304624, 0.01305531, 0.01306439, 0.01307347, 0.01308255, 0.01309163, 0.01310072, 0.0131098, 0.0131189, 0.01312799, 0.01313709, 0.01314619, 0.01315529, 0.0131644, 0.01317351, 0.01318262, 0.01319173, 0.01320085, 0.01320997, 0.01321909, 0.01322822, 0.01323735, 0.01324648, 0.01325561, 0.01326475, 0.01327389, 0.01328303, 0.01329217, 0.01330132, 0.01331047, 0.01331962, 0.01332878, 0.01333794, 0.0133471, 0.01335626, 0.01336543, 0.0133746, 0.01338377, 0.01339294, 0.01340212, 0.0134113, 0.01342048, 0.01342967, 0.01343886, 0.01344805, 0.01345724, 0.01346643, 0.01347563, 0.01348483, 0.01349403, 0.01350324, 0.01351245, 0.01352166, 0.01353087, 0.01354009, 0.01354931, 0.01355853, 0.01356775, 0.01357698, 0.01358621, 0.01359544, 0.01360467, 0.0136139, 0.01362314, 0.01363238, 0.01364163, 0.01365087, 0.01366012, 0.01366937, 0.01367862, 0.01368788, 0.01369714, 0.0137064, 0.01371566, 0.01372492, 0.01373419, 0.01374346, 0.01375273, 0.013762, 0.01377128, 0.01378056, 0.01378984, 0.01379912, 0.01380841, 0.01381769, 0.01382698, 0.01383627, 0.01384557, 0.01385486, 0.01386416, 0.01387346, 0.01388277, 0.01389207, 0.01390138, 0.01391069, 0.01392, 0.01392931, 0.01393863, 0.01394795, 0.01395727, 0.01396659, 0.01397591, 0.01398524, 0.01399456, 0.01400389, 0.01401323, 0.01402256, 0.0140319, 0.01404123, 0.01405057, 0.01405991, 0.01406926, 0.0140786, 0.01408795, 0.0140973, 0.01410665, 0.014116, 0.01412536, 0.01413472, 0.01414407, 0.01415344, 0.0141628, 0.01417216, 0.01418153, 0.01419089, 0.01420026, 0.01420963, 0.01421901, 0.01422838, 0.01423776, 0.01424714, 0.01425651, 0.0142659, 0.01427528, 0.01428466, 0.01429405, 0.01430344, 0.01431283, 0.01432222, 0.01433161, 0.014341, 0.0143504, 0.01435979, 0.01436919, 0.01437859, 0.01438799, 0.0143974, 0.0144068, 0.01441621, 0.01442561, 0.01443502, 0.01444443, 0.01445384, 0.01446325, 0.01447267, 0.01448208, 0.0144915, 0.01450092, 0.01451034, 0.01451976, 0.01452918, 0.0145386, 0.01454802, 0.01455745, 0.01456687, 0.0145763, 0.01458573, 0.01459516, 0.01460459, 0.01461402, 0.01462345, 0.01463289, 0.01464232, 0.01465176, 0.0146612, 0.01467063, 0.01468007, 0.01468951, 0.01469895, 0.01470839, 0.01471784, 0.01472728, 0.01473672, 0.01474617, 0.01475562, 0.01476506, 0.01477451, 0.01478396, 0.01479341, 0.01480286, 0.01481231, 0.01482176, 0.01483121, 0.01484066, 0.01485012, 0.01485957, 0.01486903, 0.01487848, 0.01488794, 0.01489739, 0.01490685, 0.01491631, 0.01492576, 0.01493522, 0.01494468, 0.01495414, 0.0149636, 0.01497306, 0.01498252, 0.01499198, 0.01500144, 0.01501091, 0.01502037, 0.01502983, 0.01503929, 0.01504875, 0.01505822, 0.01506768, 0.01507714, 0.01508661, 0.01509607, 0.01510554, 0.015115, 0.01512446, 0.01513393, 0.01514339, 0.01515286, 0.01516232, 0.01517178, 0.01518125, 0.01519071, 0.01520018, 0.01520964, 0.01521911, 0.01522857, 0.01523803, 0.0152475, 0.01525696, 0.01526642, 0.01527589, 0.01528535, 0.01529481, 0.01530427, 0.01531374, 0.0153232, 0.01533266, 0.01534212, 0.01535158, 0.01536104, 0.0153705, 0.01537996, 0.01538942, 0.01539888, 0.01540833, 0.01541779, 0.01542725, 0.0154367, 0.01544616, 0.01545561, 0.01546507, 0.01547452, 0.01548397, 0.01549343, 0.01550288, 0.01551233, 0.01552178, 0.01553123, 0.01554067, 0.01555012, 0.01555957, 0.01556901, 0.01557846, 0.0155879, 0.01559734, 0.01560679, 0.01561623, 0.01562567, 0.0156351, 0.01564454, 0.01565398, 0.01566341, 0.01567285, 0.01568228, 0.01569171, 0.01570114, 0.01571057, 0.01572, 0.01572943, 0.01573885, 0.01574828, 0.0157577, 0.01576712, 0.01577654, 0.01578596, 0.01579538, 0.01580479, 0.01581421, 0.01582362, 0.01583303, 0.01584244, 0.01585185, 0.01586126, 0.01587066, 0.01588006, 0.01588946, 0.01589886, 0.01590826, 0.01591766, 0.01592705, 0.01593645, 0.01594584, 0.01595523, 0.01596461, 0.015974, 0.01598338, 0.01599276, 0.01600214, 0.01601152, 0.01602089, 0.01603027, 0.01603964, 0.01604901, 0.01605837, 0.01606774, 0.0160771, 0.01608646, 0.01609582, 0.01610518, 0.01611453, 0.01612388, 0.01613323, 0.01614258, 0.01615192, 0.01616126, 0.0161706, 0.01617994, 0.01618928, 0.01619861, 0.01620794, 0.01621726, 0.01622659, 0.01623591, 0.01624523, 0.01625455, 0.01626386, 0.01627317, 0.01628248, 0.01629179, 0.01630109, 0.01631039, 0.01631969, 0.01632898, 0.01633827, 0.01634756, 0.01635685, 0.01636613, 0.01637541, 0.01638469, 0.01639396, 0.01640323, 0.0164125, 0.01642176, 0.01643102, 0.01644028, 0.01644954, 0.01645879, 0.01646804, 0.01647728, 0.01648652, 0.01649576, 0.016505, 0.01651423, 0.01652346, 0.01653268, 0.0165419, 0.01655112, 0.01656034, 0.01656955, 0.01657875, 0.01658796, 0.01659716, 0.01660635, 0.01661555, 0.01662474, 0.01663392, 0.0166431, 0.01665228, 0.01666146, 0.01667063, 0.01667979, 0.01668896, 0.01669811, 0.01670727, 0.01671642, 0.01672557, 0.01673471, 0.01674385, 0.01675298, 0.01676211, 0.01677124, 0.01678036, 0.01678948, 0.01679859, 0.0168077, 0.01681681, 0.01682591, 0.01683501, 0.0168441, 0.01685319, 0.01686227, 0.01687135, 0.01688042, 0.01688949, 0.01689856, 0.01690762, 0.01691668, 0.01692573, 0.01693478, 0.01694382, 0.01695286, 0.01696189, 0.01697092, 0.01697995, 0.01698896, 0.01699798, 0.01700699, 0.01701599, 0.01702499, 0.01703399, 0.01704298, 0.01705196, 0.01706094, 0.01706992, 0.01707889, 0.01708785, 0.01709681, 0.01710577, 0.01711472, 0.01712366, 0.0171326, 0.01714153, 0.01715046, 0.01715938, 0.0171683, 0.01717722, 0.01718612, 0.01719502, 0.01720392, 0.01721281, 0.0172217, 0.01723058, 0.01723945, 0.01724832, 0.01725718, 0.01726604, 0.01727489, 0.01728374, 0.01729258, 0.01730141, 0.01731024, 0.01731906, 0.01732788, 0.01733669, 0.0173455, 0.0173543, 0.01736309, 0.01737188, 0.01738066, 0.01738944, 0.01739821, 0.01740697, 0.01741573, 0.01742448, 0.01743322, 0.01744196, 0.01745069, 0.01745942, 0.01746814, 0.01747686, 0.01748556, 0.01749426, 0.01750296, 0.01751165, 0.01752033, 0.01752901, 0.01753767, 0.01754634, 0.01755499, 0.01756364, 0.01757229, 0.01758092, 0.01758955, 0.01759817, 0.01760679, 0.0176154, 0.017624, 0.0176326, 0.01764119, 0.01764977, 0.01765835, 0.01766691, 0.01767548, 0.01768403, 0.01769258, 0.01770112, 0.01770965, 0.01771818, 0.0177267, 0.01773521, 0.01774372, 0.01775221, 0.01776071, 0.01776919, 0.01777766, 0.01778613, 0.0177946, 0.01780305, 0.0178115, 0.01781994, 0.01782837, 0.01783679, 0.01784521, 0.01785362, 0.01786202, 0.01787042, 0.01787881, 0.01788718, 0.01789556, 0.01790392, 0.01791228, 0.01792063, 0.01792897, 0.0179373, 0.01794563, 0.01795394, 0.01796225, 0.01797056, 0.01797885, 0.01798714, 0.01799542, 0.01800369, 0.01801195, 0.0180202, 0.01802845, 0.01803669, 0.01804492, 0.01805314, 0.01806135, 0.01806956, 0.01807775, 0.01808594, 0.01809412, 0.0181023, 0.01811046, 0.01811862, 0.01812676, 0.0181349, 0.01814303, 0.01815115, 0.01815927, 0.01816737, 0.01817547, 0.01818356, 0.01819164, 0.01819971, 0.01820777, 0.01821582, 0.01822387, 0.0182319, 0.01823993, 0.01824795, 0.01825596, 0.01826396, 0.01827195, 0.01827993, 0.01828791, 0.01829587, 0.01830383, 0.01831178, 0.01831971, 0.01832764, 0.01833556, 0.01834348, 0.01835138, 0.01835927, 0.01836715, 0.01837503, 0.01838289, 0.01839075, 0.0183986, 0.01840643, 0.01841426, 0.01842208, 0.01842989, 0.01843769, 0.01844548, 0.01845326, 0.01846103, 0.0184688, 0.01847655, 0.01848429, 0.01849203, 0.01849975, 0.01850746, 0.01851517, 0.01852286, 0.01853055, 0.01853823, 0.01854589, 0.01855355, 0.01856119, 0.01856883, 0.01857646, 0.01858407, 0.01859168, 0.01859928, 0.01860686, 0.01861444, 0.01862201, 0.01862957, 0.01863711, 0.01864465, 0.01865218, 0.01865969, 0.0186672, 0.0186747, 0.01868218, 0.01868966, 0.01869713, 0.01870458, 0.01871203, 0.01871946, 0.01872689, 0.0187343, 0.01874171, 0.0187491, 0.01875648, 0.01876386, 0.01877122, 0.01877857, 0.01878591, 0.01879324, 0.01880056, 0.01880787, 0.01881517, 0.01882246, 0.01882974, 0.01883701, 0.01884426, 0.01885151, 0.01885874, 0.01886597, 0.01887318, 0.01888038, 0.01888758, 0.01889476, 0.01890193, 0.01890909, 0.01891623, 0.01892337, 0.0189305, 0.01893761, 0.01894472, 0.01895181, 0.01895889, 0.01896597, 0.01897303, 0.01898007, 0.01898711, 0.01899414, 0.01900115, 0.01900816, 0.01901515, 0.01902213, 0.0190291, 0.01903606, 0.01904301, 0.01904995, 0.01905687, 0.01906379, 0.01907069, 0.01907758, 0.01908446, 0.01909133, 0.01909819, 0.01910503, 0.01911186, 0.01911869, 0.0191255, 0.01913229, 0.01913908, 0.01914586, 0.01915262, 0.01915937, 0.01916611, 0.01917284, 0.01917956, 0.01918627, 0.01919296, 0.01919964, 0.01920631, 0.01921297, 0.01921961, 0.01922625, 0.01923287, 0.01923948, 0.01924608, 0.01925267, 0.01925924, 0.0192658, 0.01927235, 0.01927889, 0.01928542, 0.01929193, 0.01929844, 0.01930493, 0.01931141, 0.01931787, 0.01932432, 0.01933077, 0.01933719, 0.01934361, 0.01935002, 0.01935641, 0.01936279, 0.01936916, 0.01937551, 0.01938186, 0.01938819, 0.01939451, 0.01940081, 0.0194071, 0.01941339, 0.01941965, 0.01942591, 0.01943215, 0.01943839, 0.01944461, 0.01945081, 0.019457, 0.01946319, 0.01946935, 0.01947551, 0.01948165, 0.01948778, 0.0194939, 0.01950001, 0.0195061, 0.01951218, 0.01951825, 0.0195243, 0.01953034, 0.01953637, 0.01954238, 0.01954839, 0.01955438, 0.01956035, 0.01956632, 0.01957227, 0.01957821, 0.01958413, 0.01959005, 0.01959595, 0.01960183, 0.01960771, 0.01961357, 0.01961941, 0.01962525, 0.01963107, 0.01963688, 0.01964268, 0.01964846, 0.01965423, 0.01965998, 0.01966572, 0.01967145, 0.01967717, 0.01968287, 0.01968856, 0.01969424, 0.0196999, 0.01970555, 0.01971119, 0.01971681, 0.01972242, 0.01972802, 0.0197336, 0.01973917, 0.01974473, 0.01975028, 0.01975581, 0.01976132, 0.01976683, 0.01977232, 0.01977779, 0.01978325, 0.0197887, 0.01979414, 0.01979956, 0.01980497, 0.01981037, 0.01981575, 0.01982112, 0.01982647, 0.01983181, 0.01983714, 0.01984245, 0.01984775, 0.01985304, 0.01985831, 0.01986357, 0.01986881, 0.01987405, 0.01987926, 0.01988447, 0.01988966, 0.01989483, 0.0199, 0.01990515, 0.01991028, 0.0199154, 0.01992051, 0.0199256, 0.01993068, 0.01993575, 0.0199408, 0.01994584, 0.01995086, 0.01995587, 0.01996087, 0.01996585, 0.01997082, 0.01997578, 0.01998072, 0.01998564, 0.01999056, 0.01999546, 0.02000034, 0.02000521, 0.02001007, 0.02001491, 0.02001974, 0.02002455, 0.02002935, 0.02003414, 0.02003891, 0.02004367, 0.02004841, 0.02005314, 0.02005785, 0.02006256, 0.02006724, 0.02007191, 0.02007657, 0.02008122, 0.02008585, 0.02009046, 0.02009507, 0.02009965, 0.02010423, 0.02010878, 0.02011333, 0.02011786, 0.02012238, 0.02012688, 0.02013136, 0.02013584, 0.0201403, 0.02014474, 0.02014917, 0.02015359, 0.02015799, 0.02016237, 0.02016675, 0.0201711, 0.02017545, 0.02017978, 0.02018409, 0.02018839, 0.02019268, 0.02019695, 0.02020121, 0.02020545, 0.02020967, 0.02021389, 0.02021809, 0.02022227, 0.02022644, 0.0202306, 0.02023474, 0.02023886, 0.02024298, 0.02024707, 0.02025115, 0.02025522, 0.02025928, 0.02026331, 0.02026734, 0.02027135, 0.02027534, 0.02027932, 0.02028329, 0.02028724, 0.02029118, 0.0202951, 0.020299, 0.0203029, 0.02030677, 0.02031064, 0.02031449, 0.02031832, 0.02032214, 0.02032594, 0.02032973, 0.02033351, 0.02033727, 0.02034101, 0.02034474, 0.02034846, 0.02035216, 0.02035585, 0.02035952, 0.02036318, 0.02036682, 0.02037044, 0.02037406, 0.02037765, 0.02038124, 0.0203848, 0.02038836, 0.0203919, 0.02039542, 0.02039893, 0.02040242, 0.0204059, 0.02040937, 0.02041281, 0.02041625, 0.02041967, 0.02042307, 0.02042646, 0.02042984, 0.0204332, 0.02043654, 0.02043987, 0.02044319, 0.02044649, 0.02044978, 0.02045305, 0.0204563, 0.02045954, 0.02046277, 0.02046598, 0.02046918, 0.02047236, 0.02047553, 0.02047868, 0.02048181, 0.02048493, 0.02048804, 0.02049113, 0.02049421, 0.02049727, 0.02050032, 0.02050335, 0.02050637, 0.02050937, 0.02051235, 0.02051533, 0.02051828, 0.02052122, 0.02052415, 0.02052706, 0.02052996, 0.02053284, 0.02053571, 0.02053856, 0.0205414, 0.02054422, 0.02054703, 0.02054982, 0.0205526, 0.02055536, 0.0205581, 0.02056084, 0.02056355, 0.02056625, 0.02056894, 0.02057161, 0.02057427, 0.02057691, 0.02057954, 0.02058215, 0.02058475, 0.02058733, 0.02058989, 0.02059245, 0.02059498, 0.0205975, 0.02060001, 0.0206025, 0.02060498, 0.02060744, 0.02060988, 0.02061232, 0.02061473, 0.02061713, 0.02061952, 0.02062189, 0.02062425, 0.02062659, 0.02062891, 0.02063122, 0.02063352, 0.0206358, 0.02063806, 0.02064031, 0.02064255, 0.02064477, 0.02064698, 0.02064917, 0.02065134, 0.0206535, 0.02065565, 0.02065778, 0.02065989, 0.02066199, 0.02066408, 0.02066615, 0.0206682, 0.02067024, 0.02067227, 0.02067428, 0.02067627, 0.02067825, 0.02068021, 0.02068216, 0.0206841, 0.02068602, 0.02068792, 0.02068981, 0.02069169, 0.02069354, 0.02069539, 0.02069722, 0.02069903, 0.02070083, 0.02070261, 0.02070438, 0.02070614, 0.02070788, 0.0207096, 0.02071131, 0.020713, 0.02071468, 0.02071635, 0.02071799, 0.02071963, 0.02072125, 0.02072285, 0.02072444, 0.02072601, 0.02072757, 0.02072912, 0.02073064, 0.02073216, 0.02073366, 0.02073514, 0.02073661, 0.02073806, 0.0207395, 0.02074092, 0.02074233, 0.02074373, 0.02074511, 0.02074647, 0.02074782, 0.02074915, 0.02075047, 0.02075178, 0.02075306, 0.02075434, 0.0207556, 0.02075684, 0.02075807, 0.02075929, 0.02076049, 0.02076167, 0.02076284, 0.02076399, 0.02076513, 0.02076626, 0.02076737, 0.02076846, 0.02076954, 0.02077061, 0.02077166, 0.0207727, 0.02077372, 0.02077472, 0.02077571, 0.02077669, 0.02077765, 0.02077859, 0.02077953, 0.02078044, 0.02078134, 0.02078223, 0.0207831, 0.02078396, 0.0207848, 0.02078563, 0.02078644, 0.02078724, 0.02078802, 0.02078879, 0.02078954, 0.02079028, 0.02079101, 0.02079172, 0.02079241, 0.02079309, 0.02079375, 0.0207944, 0.02079504, 0.02079566, 0.02079626, 0.02079685, 0.02079743, 0.02079799, 0.02079854, 0.02079907, 0.02079959, 0.02080009, 0.02080058, 0.02080105, 0.02080151, 0.02080195, 0.02080238, 0.02080279, 0.02080319, 0.02080358, 0.02080395, 0.0208043, 0.02080464, 0.02080497, 0.02080528, 0.02080558, 0.02080586, 0.02080613, 0.02080638, 0.02080662, 0.02080684, 0.02080705, 0.02080725, 0.02080743, 0.02080759, 0.02080774, 0.02080788, 0.020808, 0.02080811, 0.0208082, 0.02080828, 0.02080834, 0.02080839, 0.02080843, 0.02080845, 0.02080845, 0.02080844, 0.02080842, 0.02080838, 0.02080833, 0.02080826, 0.02080818, 0.02080809, 0.02080798, 0.02080785, 0.02080771, 0.02080756, 0.02080739, 0.02080721, 0.02080701, 0.0208068, 0.02080658, 0.02080634, 0.02080608, 0.02080581, 0.02080553, 0.02080523, 0.02080492, 0.02080459, 0.02080425, 0.0208039, 0.02080353, 0.02080315, 0.02080275, 0.02080234, 0.02080191, 0.02080147, 0.02080102, 0.02080055, 0.02080007, 0.02079957, 0.02079906, 0.02079853, 0.02079799, 0.02079744, 0.02079687, 0.02079629, 0.02079569, 0.02079508, 0.02079445, 0.02079381, 0.02079316, 0.02079249, 0.02079181, 0.02079112, 0.02079041, 0.02078968, 0.02078895, 0.02078819, 0.02078743, 0.02078665, 0.02078585, 0.02078504, 0.02078422, 0.02078339, 0.02078254, 0.02078167, 0.02078079, 0.0207799, 0.02077899, 0.02077807, 0.02077714, 0.02077619, 0.02077523, 0.02077425, 0.02077326, 0.02077226, 0.02077124, 0.02077021, 0.02076916, 0.02076811, 0.02076703, 0.02076594, 0.02076484, 0.02076373, 0.0207626, 0.02076146, 0.0207603, 0.02075913, 0.02075795, 0.02075675, 0.02075554, 0.02075431, 0.02075307, 0.02075182, 0.02075055, 0.02074927, 0.02074798, 0.02074667, 0.02074535, 0.02074402, 0.02074267, 0.02074131, 0.02073993, 0.02073854, 0.02073714, 0.02073572, 0.02073429, 0.02073285, 0.02073139, 0.02072992, 0.02072843, 0.02072693, 0.02072542, 0.0207239, 0.02072236, 0.02072081, 0.02071924, 0.02071766, 0.02071607, 0.02071446, 0.02071284, 0.02071121, 0.02070956, 0.0207079, 0.02070623, 0.02070454, 0.02070284, 0.02070113, 0.0206994, 0.02069766, 0.02069591, 0.02069414, 0.02069236, 0.02069057, 0.02068876, 0.02068694, 0.0206851, 0.02068326, 0.0206814, 0.02067952, 0.02067764, 0.02067574, 0.02067382, 0.0206719, 0.02066996, 0.020668, 0.02066604, 0.02066406, 0.02066207, 0.02066006, 0.02065804, 0.02065601, 0.02065397, 0.02065191, 0.02064984, 0.02064776, 0.02064566, 0.02064355, 0.02064142, 0.02063929, 0.02063714, 0.02063498, 0.0206328, 0.02063062, 0.02062841, 0.0206262, 0.02062397, 0.02062173, 0.02061948, 0.02061721, 0.02061494, 0.02061264, 0.02061034, 0.02060802, 0.02060569, 0.02060335, 0.02060099, 0.02059863, 0.02059624, 0.02059385, 0.02059144, 0.02058902, 0.02058659, 0.02058415, 0.02058169, 0.02057922, 0.02057673, 0.02057424, 0.02057173, 0.02056921, 0.02056667, 0.02056413, 0.02056157, 0.020559, 0.02055641, 0.02055382, 0.02055121, 0.02054858, 0.02054595, 0.0205433, 0.02054064, 0.02053797, 0.02053529, 0.02053259, 0.02052988, 0.02052716, 0.02052442, 0.02052168, 0.02051892, 0.02051614, 0.02051336, 0.02051056, 0.02050775, 0.02050493, 0.0205021, 0.02049925, 0.02049639, 0.02049352, 0.02049064, 0.02048774, 0.02048484, 0.02048192, 0.02047898, 0.02047604, 0.02047308, 0.02047011, 0.02046713, 0.02046414, 0.02046114, 0.02045812, 0.02045509, 0.02045205, 0.02044899, 0.02044593, 0.02044285, 0.02043976, 0.02043666, 0.02043354, 0.02043042, 0.02042728, 0.02042413, 0.02042097, 0.02041779, 0.0204146, 0.02041141, 0.0204082, 0.02040497, 0.02040174, 0.02039849, 0.02039524, 0.02039197, 0.02038869, 0.02038539, 0.02038209, 0.02037877, 0.02037544, 0.0203721, 0.02036875, 0.02036538, 0.02036201, 0.02035862, 0.02035522, 0.02035181, 0.02034839, 0.02034495, 0.02034151, 0.02033805, 0.02033458, 0.0203311, 0.02032761, 0.0203241, 0.02032059, 0.02031706, 0.02031352, 0.02030997, 0.02030641, 0.02030283, 0.02029925, 0.02029565, 0.02029204, 0.02028842, 0.02028479, 0.02028115, 0.0202775, 0.02027383, 0.02027016, 0.02026647, 0.02026277, 0.02025906, 0.02025533, 0.0202516, 0.02024786, 0.0202441, 0.02024034, 0.02023656, 0.02023277, 0.02022897, 0.02022515, 0.02022133, 0.02021749, 0.02021365, 0.02020979, 0.02020592, 0.02020205, 0.02019816, 0.02019425, 0.02019034, 0.02018642, 0.02018248, 0.02017854, 0.02017458, 0.02017061, 0.02016663, 0.02016264, 0.02015864, 0.02015463, 0.02015061, 0.02014658, 0.02014253, 0.02013848, 0.02013441, 0.02013033, 0.02012625, 0.02012215, 0.02011804, 0.02011392, 0.02010979, 0.02010564, 0.02010149, 0.02009733, 0.02009315, 0.02008897, 0.02008477, 0.02008057, 0.02007635, 0.02007212, 0.02006788, 0.02006364, 0.02005938, 0.02005511, 0.02005082, 0.02004653, 0.02004223, 0.02003792, 0.0200336, 0.02002926, 0.02002492, 0.02002057, 0.0200162, 0.02001183, 0.02000744, 0.02000304, 0.01999864, 0.01999422, 0.01998979, 0.01998535, 0.01998091, 0.01997645, 0.01997198, 0.0199675, 0.01996301, 0.01995851, 0.019954, 0.01994948, 0.01994495, 0.01994041, 0.01993586, 0.0199313, 0.01992673, 0.01992215, 0.01991756, 0.01991296, 0.01990835, 0.01990372, 0.01989909, 0.01989445, 0.0198898, 0.01988514, 0.01988047, 0.01987578, 0.01987109, 0.01986639, 0.01986168, 0.01985696, 0.01985223, 0.01984749, 0.01984274, 0.01983797, 0.0198332, 0.01982842, 0.01982363, 0.01981883, 0.01981402, 0.0198092, 0.01980437, 0.01979953, 0.01979469, 0.01978983, 0.01978496, 0.01978008, 0.01977519, 0.0197703, 0.01976539, 0.01976047, 0.01975555, 0.01975061, 0.01974567, 0.01974071, 0.01973575, 0.01973077, 0.01972579, 0.0197208, 0.0197158, 0.01971079, 0.01970577, 0.01970073, 0.01969569, 0.01969065, 0.01968559, 0.01968052, 0.01967544, 0.01967036, 0.01966526, 0.01966016, 0.01965504, 0.01964992, 0.01964479, 0.01963964, 0.01963449, 0.01962933, 0.01962416, 0.01961898, 0.0196138, 0.0196086, 0.01960339, 0.01959818, 0.01959295, 0.01958772, 0.01958248, 0.01957723, 0.01957197, 0.0195667, 0.01956142, 0.01955613, 0.01955084, 0.01954553, 0.01954022, 0.0195349, 0.01952957, 0.01952423, 0.01951888, 0.01951352, 0.01950815, 0.01950278, 0.01949739, 0.019492, 0.0194866, 0.01948119, 0.01947577, 0.01947034, 0.0194649, 0.01945946, 0.019454, 0.01944854, 0.01944307, 0.01943759, 0.0194321, 0.01942661, 0.0194211, 0.01941559, 0.01941007, 0.01940454, 0.019399, 0.01939345, 0.01938789, 0.01938233, 0.01937676, 0.01937118, 0.01936559, 0.01935999, 0.01935438, 0.01934877, 0.01934315, 0.01933752, 0.01933188, 0.01932623, 0.01932058, 0.01931491, 0.01930924, 0.01930356, 0.01929787, 0.01929218, 0.01928647, 0.01928076, 0.01927504, 0.01926931, 0.01926357, 0.01925783, 0.01925208, 0.01924632, 0.01924055, 0.01923477, 0.01922899, 0.0192232, 0.01921739, 0.01921159, 0.01920577, 0.01919995, 0.01919412, 0.01918828, 0.01918243, 0.01917658, 0.01917071, 0.01916484, 0.01915896, 0.01915308, 0.01914718, 0.01914128, 0.01913537, 0.01912946, 0.01912353, 0.0191176, 0.01911166, 0.01910572, 0.01909976, 0.0190938, 0.01908783, 0.01908185, 0.01907587, 0.01906988, 0.01906388, 0.01905787, 0.01905186, 0.01904584, 0.01903981, 0.01903377, 0.01902773, 0.01902168, 0.01901562, 0.01900956, 0.01900348, 0.01899741, 0.01899132, 0.01898523, 0.01897912, 0.01897302, 0.0189669, 0.01896078, 0.01895465, 0.01894851, 0.01894237, 0.01893622, 0.01893006, 0.01892389, 0.01891772, 0.01891154, 0.01890536, 0.01889916, 0.01889296, 0.01888676, 0.01888054, 0.01887432, 0.0188681, 0.01886186, 0.01885562, 0.01884938, 0.01884312, 0.01883686, 0.01883059, 0.01882432, 0.01881804, 0.01881175, 0.01880545, 0.01879915, 0.01879284, 0.01878653, 0.01878021, 0.01877388, 0.01876755, 0.01876121, 0.01875486, 0.01874851, 0.01874215, 0.01873578, 0.01872941, 0.01872303, 0.01871664, 0.01871025, 0.01870385, 0.01869745, 0.01869103, 0.01868462, 0.01867819, 0.01867176, 0.01866533, 0.01865888, 0.01865243, 0.01864598, 0.01863952, 0.01863305, 0.01862658, 0.0186201, 0.01861361, 0.01860712, 0.01860062, 0.01859412, 0.01858761, 0.01858109, 0.01857457, 0.01856804, 0.01856151, 0.01855497, 0.01854842, 0.01854187, 0.01853531, 0.01852875, 0.01852218, 0.01851561, 0.01850903, 0.01850244, 0.01849585, 0.01848925, 0.01848265, 0.01847604, 0.01846942, 0.0184628, 0.01845617, 0.01844954, 0.0184429, 0.01843626, 0.01842961, 0.01842296, 0.0184163, 0.01840963, 0.01840296, 0.01839629, 0.0183896, 0.01838292, 0.01837622, 0.01836953, 0.01836282, 0.01835611, 0.0183494, 0.01834268, 0.01833595, 0.01832922, 0.01832249, 0.01831575, 0.018309, 0.01830225, 0.01829549, 0.01828873, 0.01828197, 0.0182752, 0.01826842, 0.01826164, 0.01825485, 0.01824806, 0.01824126, 0.01823446, 0.01822765, 0.01822084, 0.01821402, 0.0182072, 0.01820037, 0.01819354, 0.0181867, 0.01817986, 0.01817302, 0.01816616, 0.01815931, 0.01815245, 0.01814558, 0.01813871, 0.01813184, 0.01812496, 0.01811807, 0.01811118, 0.01810429, 0.01809739, 0.01809049, 0.01808358, 0.01807667, 0.01806975, 0.01806283, 0.0180559, 0.01804897, 0.01804204, 0.0180351, 0.01802815, 0.01802121, 0.01801425, 0.0180073, 0.01800033, 0.01799337, 0.0179864, 0.01797942, 0.01797245, 0.01796546, 0.01795848, 0.01795148, 0.01794449, 0.01793749, 0.01793048, 0.01792348, 0.01791646, 0.01790945, 0.01790243, 0.0178954, 0.01788837, 0.01788134, 0.0178743, 0.01786726, 0.01786022, 0.01785317, 0.01784612, 0.01783906, 0.017832, 0.01782494, 0.01781787, 0.01781079, 0.01780372, 0.01779664, 0.01778955, 0.01778247, 0.01777538, 0.01776828, 0.01776118, 0.01775408, 0.01774697, 0.01773986, 0.01773275, 0.01772563, 0.01771851, 0.01771139, 0.01770426, 0.01769713, 0.01769, 0.01768286, 0.01767572, 0.01766857, 0.01766142, 0.01765427, 0.01764711, 0.01763995, 0.01763279, 0.01762563, 0.01761846, 0.01761128, 0.01760411, 0.01759693, 0.01758975, 0.01758256, 0.01757537, 0.01756818, 0.01756099, 0.01755379, 0.01754659, 0.01753938, 0.01753217, 0.01752496, 0.01751775, 0.01751053, 0.01750331, 0.01749609, 0.01748886, 0.01748163, 0.0174744, 0.01746717, 0.01745993, 0.01745269, 0.01744544, 0.0174382, 0.01743095, 0.0174237, 0.01741644, 0.01740918, 0.01740192, 0.01739466, 0.01738739, 0.01738012, 0.01737285, 0.01736558, 0.0173583, 0.01735102, 0.01734374, 0.01733645, 0.01732916, 0.01732187, 0.01731458, 0.01730729, 0.01729999, 0.01729269, 0.01728539, 0.01727808, 0.01727077, 0.01726346, 0.01725615, 0.01724884, 0.01724152, 0.0172342, 0.01722688, 0.01721955, 0.01721222, 0.0172049, 0.01719756, 0.01719023, 0.01718289, 0.01717556, 0.01716822, 0.01716087, 0.01715353, 0.01714618, 0.01713883, 0.01713148, 0.01712413, 0.01711678, 0.01710942, 0.01710206, 0.0170947, 0.01708733, 0.01707997, 0.0170726, 0.01706523, 0.01705786, 0.01705049, 0.01704311, 0.01703574, 0.01702836, 0.01702098, 0.01701359, 0.01700621, 0.01699882, 0.01699144, 0.01698405, 0.01697666, 0.01696926, 0.01696187, 0.01695447, 0.01694707, 0.01693967, 0.01693227, 0.01692487, 0.01691746, 0.01691006, 0.01690265, 0.01689524, 0.01688783, 0.01688042, 0.016873, 0.01686559, 0.01685817, 0.01685075, 0.01684333, 0.01683591, 0.01682849, 0.01682107, 0.01681364, 0.01680621, 0.01679878, 0.01679136, 0.01678392, 0.01677649, 0.01676906, 0.01676162, 0.01675419, 0.01674675, 0.01673931, 0.01673187, 0.01672443, 0.01671699, 0.01670955, 0.01670211, 0.01669466, 0.01668721, 0.01667977, 0.01667232, 0.01666487, 0.01665742, 0.01664997, 0.01664252, 0.01663506, 0.01662761, 0.01662015, 0.0166127, 0.01660524, 0.01659778, 0.01659032, 0.01658286, 0.0165754, 0.01656794, 0.01656048, 0.01655302, 0.01654555, 0.01653809, 0.01653062, 0.01652316, 0.01651569, 0.01650822, 0.01650075, 0.01649328, 0.01648581, 0.01647834, 0.01647087, 0.0164634, 0.01645593, 0.01644846, 0.01644098, 0.01643351, 0.01642603, 0.01641856, 0.01641108, 0.01640361, 0.01639613, 0.01638866, 0.01638118, 0.0163737, 0.01636622, 0.01635874, 0.01635126, 0.01634378, 0.01633631, 0.01632882, 0.01632134, 0.01631386, 0.01630638, 0.0162989, 0.01629142, 0.01628394, 0.01627646, 0.01626897, 0.01626149, 0.01625401, 0.01624652, 0.01623904, 0.01623156, 0.01622407, 0.01621659, 0.01620911, 0.01620162, 0.01619414, 0.01618665, 0.01617917, 0.01617169, 0.0161642, 0.01615672, 0.01614923, 0.01614175, 0.01613426, 0.01612678, 0.0161193, 0.01611181, 0.01610433, 0.01609684, 0.01608936, 0.01608188, 0.01607439, 0.01606691, 0.01605942, 0.01605194, 0.01604446, 0.01603697, 0.01602949, 0.01602201, 0.01601453, 0.01600704, 0.01599956, 0.01599208, 0.0159846, 0.01597712, 0.01596964, 0.01596216, 0.01595468, 0.0159472, 0.01593972, 0.01593224, 0.01592476, 0.01591728, 0.0159098, 0.01590233, 0.01589485, 0.01588737, 0.0158799, 0.01587242, 0.01586494, 0.01585747, 0.01584999, 0.01584252, 0.01583505, 0.01582757, 0.0158201, 0.01581263, 0.01580516, 0.01579769, 0.01579022, 0.01578275, 0.01577528, 0.01576781, 0.01576034, 0.01575288, 0.01574541, 0.01573794, 0.01573048, 0.01572301, 0.01571555, 0.01570809, 0.01570062, 0.01569316, 0.0156857, 0.01567824, 0.01567078, 0.01566332, 0.01565587, 0.01564841, 0.01564095, 0.0156335, 0.01562604, 0.01561859, 0.01561113, 0.01560368, 0.01559623, 0.01558878, 0.01558133, 0.01557388, 0.01556643, 0.01555899, 0.01555154, 0.0155441, 0.01553665, 0.01552921, 0.01552177, 0.01551432, 0.01550688, 0.01549944, 0.01549201, 0.01548457, 0.01547713, 0.0154697, 0.01546226, 0.01545483, 0.0154474, 0.01543996, 0.01543253, 0.01542511, 0.01541768, 0.01541025, 0.01540282, 0.0153954, 0.01538797, 0.01538055, 0.01537313, 0.01536571, 0.01535829, 0.01535087, 0.01534346, 0.01533604, 0.01532862, 0.01532121, 0.0153138, 0.01530639, 0.01529898, 0.01529157, 0.01528416, 0.01527676, 0.01526935, 0.01526195, 0.01525454, 0.01524714, 0.01523974, 0.01523234, 0.01522495, 0.01521755, 0.01521015, 0.01520276, 0.01519537, 0.01518798, 0.01518059, 0.0151732, 0.01516581, 0.01515843, 0.01515104, 0.01514366, 0.01513628, 0.0151289, 0.01512152, 0.01511414, 0.01510676, 0.01509939, 0.01509201, 0.01508464, 0.01507727, 0.0150699, 0.01506253, 0.01505517, 0.0150478, 0.01504044, 0.01503308, 0.01502572, 0.01501836, 0.015011, 0.01500364, 0.01499629, 0.01498893, 0.01498158, 0.01497423, 0.01496688, 0.01495953, 0.01495219, 0.01494484, 0.0149375, 0.01493016, 0.01492282, 0.01491548, 0.01490814, 0.01490081, 0.01489347, 0.01488614, 0.01487881, 0.01487148, 0.01486415, 0.01485682, 0.0148495, 0.01484218, 0.01483485, 0.01482753, 0.01482022, 0.0148129, 0.01480558, 0.01479827, 0.01479096, 0.01478365, 0.01477634, 0.01476903, 0.01476172, 0.01475442, 0.01474712, 0.01473981, 0.01473251, 0.01472522, 0.01471792, 0.01471063, 0.01470333, 0.01469604, 0.01468875, 0.01468146, 0.01467418, 0.01466689, 0.01465961, 0.01465233, 0.01464505, 0.01463777, 0.01463049, 0.01462321, 0.01461594, 0.01460867, 0.0146014, 0.01459413, 0.01458686, 0.0145796, 0.01457233, 0.01456507, 0.01455781, 0.01455055, 0.0145433, 0.01453604, 0.01452879, 0.01452153, 0.01451428, 0.01450703, 0.01449979, 0.01449254, 0.0144853, 0.01447806, 0.01447082, 0.01446358, 0.01445634, 0.0144491, 0.01444187, 0.01443464, 0.01442741, 0.01442018, 0.01441295, 0.01440573, 0.0143985, 0.01439128, 0.01438406, 0.01437684, 0.01436962, 0.01436241, 0.01435519, 0.01434798, 0.01434077, 0.01433356, 0.01432636, 0.01431915, 0.01431195, 0.01430474, 0.01429754, 0.01429035, 0.01428315, 0.01427595, 0.01426876, 0.01426157, 0.01425438, 0.01424719, 0.01424, 0.01423282, 0.01422563, 0.01421845, 0.01421127, 0.01420409, 0.01419691, 0.01418974, 0.01418256, 0.01417539, 0.01416822, 0.01416105, 0.01415388, 0.01414672, 0.01413955, 0.01413239, 0.01412523, 0.01411807, 0.01411091, 0.01410376, 0.0140966, 0.01408945, 0.0140823, 0.01407515, 0.014068, 0.01406086, 0.01405371, 0.01404657, 0.01403943, 0.01403229, 0.01402515, 0.01401801, 0.01401088, 0.01400374, 0.01399661, 0.01398948, 0.01398235, 0.01397523, 0.0139681, 0.01396098, 0.01395385, 0.01394673, 0.01393961, 0.01393249, 0.01392538, 0.01391826, 0.01391115, 0.01390404, 0.01389693, 0.01388982, 0.01388271, 0.01387561, 0.0138685, 0.0138614, 0.0138543, 0.0138472, 0.0138401, 0.01383301, 0.01382591, 0.01381882, 0.01381172, 0.01380463, 0.01379754, 0.01379046, 0.01378337, 0.01377629, 0.0137692, 0.01376212, 0.01375504, 0.01374796, 0.01374088, 0.01373381, 0.01372673, 0.01371966, 0.01371259, 0.01370552, 0.01369845, 0.01369138, 0.01368431, 0.01367725, 0.01367018, 0.01366312, 0.01365606, 0.013649, 0.01364194, 0.01363489, 0.01362783, 0.01362078, 0.01361372, 0.01360667, 0.01359962, 0.01359257, 0.01358553, 0.01357848, 0.01357144, 0.01356439, 0.01355735, 0.01355031, 0.01354327, 0.01353623, 0.01352919, 0.01352216, 0.01351512, 0.01350809, 0.01350106, 0.01349402, 0.01348699, 0.01347997, 0.01347294, 0.01346591, 0.01345889, 0.01345186, 0.01344484, 0.01343782, 0.0134308, 0.01342378, 0.01341676, 0.01340974, 0.01340273, 0.01339571, 0.0133887, 0.01338168, 0.01337467, 0.01336766, 0.01336065, 0.01335364, 0.01334664, 0.01333963, 0.01333263, 0.01332562, 0.01331862, 0.01331162, 0.01330462, 0.01329762, 0.01329062, 0.01328362, 0.01327662, 0.01326963, 0.01326263, 0.01325564, 0.01324864, 0.01324165, 0.01323466, 0.01322767, 0.01322068, 0.01321369, 0.0132067, 0.01319972, 0.01319273, 0.01318575, 0.01317876, 0.01317178, 0.0131648, 0.01315781, 0.01315083, 0.01314385, 0.01313687, 0.0131299, 0.01312292, 0.01311594, 0.01310897, 0.01310199, 0.01309502, 0.01308804, 0.01308107, 0.0130741, 0.01306713, 0.01306016, 0.01305318, 0.01304622, 0.01303925, 0.01303228, 0.01302531, 0.01301834, 0.01301138, 0.01300441, 0.01299745, 0.01299048, 0.01298352, 0.01297656, 0.0129696, 0.01296263, 0.01295567, 0.01294871, 0.01294175, 0.01293479, 0.01292783, 0.01292088, 0.01291392, 0.01290696, 0.0129, 0.01289305, 0.01288609, 0.01287913, 0.01287218, 0.01286523, 0.01285827, 0.01285132, 0.01284436, 0.01283741, 0.01283046, 0.01282351, 0.01281655, 0.0128096, 0.01280265, 0.0127957, 0.01278875, 0.0127818, 0.01277485, 0.0127679, 0.01276095, 0.012754, 0.01274705, 0.01274011, 0.01273316, 0.01272621, 0.01271926, 0.01271231, 0.01270537, 0.01269842, 0.01269147, 0.01268453, 0.01267758, 0.01267063, 0.01266369, 0.01265674, 0.0126498, 0.01264285, 0.0126359, 0.01262896, 0.01262201, 0.01261507, 0.01260812, 0.01260118, 0.01259423, 0.01258729, 0.01258034, 0.0125734, 0.01256645, 0.0125595, 0.01255256, 0.01254561, 0.01253867, 0.01253172, 0.01252478, 0.01251783, 0.01251089, 0.01250394, 0.01249699, 0.01249005, 0.0124831, 0.01247616, 0.01246921, 0.01246226, 0.01245532, 0.01244837, 0.01244142, 0.01243447, 0.01242753, 0.01242058, 0.01241363, 0.01240668, 0.01239973, 0.01239278, 0.01238583, 0.01237888, 0.01237193, 0.01236498, 0.01235803, 0.01235108, 0.01234413, 0.01233718, 0.01233023, 0.01232328, 0.01231632, 0.01230937, 0.01230242, 0.01229546, 0.01228851, 0.01228155, 0.0122746, 0.01226764, 0.01226068, 0.01225373, 0.01224677, 0.01223981, 0.01223285, 0.0122259, 0.01221894, 0.01221198, 0.01220501, 0.01219805, 0.01219109, 0.01218413, 0.01217717, 0.0121702, 0.01216324, 0.01215627, 0.01214931, 0.01214234, 0.01213537, 0.01212841, 0.01212144, 0.01211447, 0.0121075, 0.01210053, 0.01209356, 0.01208658, 0.01207961, 0.01207264, 0.01206566, 0.01205869, 0.01205171, 0.01204473, 0.01203776, 0.01203078, 0.0120238, 0.01201682, 0.01200984, 0.01200285, 0.01199587, 0.01198889, 0.0119819, 0.01197492, 0.01196793, 0.01196094, 0.01195395, 0.01194696, 0.01193997, 0.01193298, 0.01192599, 0.01191899, 0.011912, 0.011905, 0.01189801, 0.01189101, 0.01188401, 0.01187701, 0.01187001, 0.01186301, 0.011856, 0.011849, 0.01184199, 0.01183498, 0.01182798, 0.01182097, 0.01181396, 0.01180695, 0.01179993, 0.01179292, 0.0117859, 0.01177889, 0.01177187, 0.01176485, 0.01175783, 0.01175081, 0.01174379, 0.01173676, 0.01172974, 0.01172271, 0.01171568, 0.01170865, 0.01170162, 0.01169459, 0.01168756, 0.01168052, 0.01167348, 0.01166645, 0.01165941, 0.01165237, 0.01164533, 0.01163828, 0.01163124, 0.01162419, 0.01161714, 0.0116101, 0.01160305, 0.01159599, 0.01158894, 0.01158188, 0.01157483, 0.01156777, 0.01156071, 0.01155365, 0.01154659, 0.01153952, 0.01153246, 0.01152539, 0.01151832, 0.01151125, 0.01150418, 0.0114971, 0.01149003, 0.01148295, 0.01147587, 0.01146879, 0.01146171, 0.01145463, 0.01144754, 0.01144045, 0.01143336, 0.01142627, 0.01141918, 0.01141209, 0.01140499, 0.01139789, 0.0113908, 0.01138369, 0.01137659, 0.01136949, 0.01136238, 0.01135527, 0.01134816, 0.01134105, 0.01133394, 0.01132682, 0.0113197, 0.01131259, 0.01130546, 0.01129834, 0.01129122, 0.01128409, 0.01127696, 0.01126983, 0.0112627, 0.01125557, 0.01124843, 0.01124129, 0.01123415, 0.01122701, 0.01121987, 0.01121272, 0.01120557, 0.01119842, 0.01119127, 0.01118412, 0.01117696, 0.0111698, 0.01116264, 0.01115548, 0.01114832, 0.01114115, 0.01113399, 0.01112682, 0.01111964, 0.01111247, 0.01110529, 0.01109812, 0.01109094, 0.01108375, 0.01107657, 0.01106938, 0.01106219, 0.011055, 0.01104781, 0.01104062, 0.01103342, 0.01102622, 0.01101902, 0.01101182, 0.01100461, 0.0109974, 0.01099019, 0.01098298, 0.01097577, 0.01096855, 0.01096133, 0.01095411, 0.01094689, 0.01093966, 0.01093243, 0.01092521, 0.01091797, 0.01091074, 0.0109035, 0.01089626, 0.01088902, 0.01088178, 0.01087454, 0.01086729, 0.01086004, 0.01085279, 0.01084553, 0.01083827, 0.01083102, 0.01082375, 0.01081649, 0.01080922, 0.01080196, 0.01079469, 0.01078741, 0.01078014, 0.01077286, 0.01076558, 0.0107583, 0.01075101, 0.01074373, 0.01073644, 0.01072915, 0.01072185, 0.01071456, 0.01070726, 0.01069996, 0.01069265, 0.01068535, 0.01067804, 0.01067073, 0.01066342, 0.0106561, 0.01064879, 0.01064147, 0.01063414, 0.01062682, 0.01061949, 0.01061216, 0.01060483, 0.0105975, 0.01059016, 0.01058282, 0.01057548, 0.01056813, 0.01056079, 0.01055344, 0.01054609, 0.01053873, 0.01053138, 0.01052402, 0.01051666, 0.01050929, 0.01050193, 0.01049456, 0.01048719, 0.01047982, 0.01047244, 0.01046506, 0.01045768, 0.0104503, 0.01044291, 0.01043552, 0.01042813, 0.01042074, 0.01041335, 0.01040595, 0.01039855, 0.01039115, 0.01038374, 0.01037633, 0.01036892, 0.01036151, 0.01035409, 0.01034668, 0.01033926, 0.01033183, 0.01032441, 0.01031698, 0.01030955, 0.01030212, 0.01029468, 0.01028725, 0.01027981, 0.01027236, 0.01026492, 0.01025747, 0.01025002, 0.01024257, 0.01023512, 0.01022766, 0.0102202, 0.01021274, 0.01020527, 0.01019781, 0.01019034, 0.01018286, 0.01017539, 0.01016791, 0.01016043, 0.01015295, 0.01014547, 0.01013798, 0.01013049, 0.010123, 0.0101155, 0.01010801, 0.01010051, 0.01009301, 0.0100855, 0.010078, 0.01007049, 0.01006298, 0.01005546, 0.01004795, 0.01004043, 0.01003291, 0.01002538, 0.01001786, 0.01001033, 0.0100028, 0.00999526, 0.00998773, 0.00998019, 0.00997265, 0.00996511, 0.00995756, 0.00995001, 0.00994246, 0.00993491, 0.00992736, 0.0099198, 0.00991224, 0.00990468, 0.00989711, 0.00988955, 0.00988198, 0.0098744, 0.00986683, 0.00985925, 0.00985168, 0.00984409, 0.00983651, 0.00982892, 0.00982134, 0.00981375, 0.00980615, 0.00979856, 0.00979096, 0.00978336, 0.00977576, 0.00976815, 0.00976055, 0.00975294, 0.00974533, 0.00973771, 0.0097301, 0.00972248, 0.00971486, 0.00970724, 0.00969961, 0.00969198, 0.00968435, 0.00967672, 0.00966909, 0.00966145, 0.00965381, 0.00964617, 0.00963853, 0.00963089, 0.00962324, 0.00961559, 0.00960794, 0.00960028, 0.00959263, 0.00958497, 0.00957731, 0.00956965, 0.00956198, 0.00955431, 0.00954664, 0.00953897, 0.0095313, 0.00952362, 0.00951595, 0.00950827, 0.00950059, 0.0094929, 0.00948522, 0.00947753, 0.00946984, 0.00946215, 0.00945445, 0.00944676, 0.00943906, 0.00943136, 0.00942366, 0.00941595, 0.00940824, 0.00940054, 0.00939283, 0.00938511, 0.0093774, 0.00936968, 0.00936197, 0.00935425, 0.00934652, 0.0093388, 0.00933107, 0.00932335, 0.00931562, 0.00930789, 0.00930015, 0.00929242, 0.00928468, 0.00927694, 0.0092692, 0.00926146, 0.00925371, 0.00924597, 0.00923822, 0.00923047, 0.00922272, 0.00921497, 0.00920721, 0.00919945, 0.0091917, 0.00918394, 0.00917617, 0.00916841, 0.00916064, 0.00915288, 0.00914511, 0.00913734, 0.00912957, 0.00912179, 0.00911402, 0.00910624, 0.00909846, 0.00909068, 0.0090829, 0.00907512, 0.00906733, 0.00905955, 0.00905176, 0.00904397, 0.00903618, 0.00902839, 0.00902059, 0.0090128, 0.009005, 0.0089972, 0.0089894, 0.0089816, 0.0089738, 0.008966, 0.00895819, 0.00895038, 0.00894258, 0.00893477, 0.00892696, 0.00891914, 0.00891133, 0.00890352, 0.0088957, 0.00888788, 0.00888006, 0.00887224, 0.00886442, 0.0088566, 0.00884878, 0.00884095, 0.00883313, 0.0088253, 0.00881747, 0.00880964, 0.00880181, 0.00879398, 0.00878615, 0.00877832, 0.00877048, 0.00876265, 0.00875481, 0.00874697, 0.00873913, 0.00873129, 0.00872345, 0.00871561, 0.00870777, 0.00869992, 0.00869208, 0.00868423, 0.00867639, 0.00866854, 0.00866069, 0.00865284, 0.00864499, 0.00863714, 0.00862929, 0.00862144, 0.00861359, 0.00860573, 0.00859788, 0.00859002, 0.00858217, 0.00857431, 0.00856646, 0.0085586, 0.00855074, 0.00854288, 0.00853502, 0.00852716, 0.0085193, 0.00851144, 0.00850358, 0.00849571, 0.00848785, 0.00847999, 0.00847212, 0.00846426, 0.0084564, 0.00844853, 0.00844066, 0.0084328, 0.00842493, 0.00841707, 0.0084092, 0.00840133, 0.00839346, 0.0083856, 0.00837773, 0.00836986, 0.00836199, 0.00835412, 0.00834625, 0.00833838, 0.00833051, 0.00832264, 0.00831477, 0.0083069, 0.00829903, 0.00829116, 0.00828329, 0.00827542, 0.00826755, 0.00825968, 0.00825181, 0.00824394, 0.00823607, 0.0082282, 0.00822033, 0.00821246, 0.00820459, 0.00819672, 0.00818885, 0.00818098, 0.00817311, 0.00816525, 0.00815738, 0.00814951, 0.00814164, 0.00813377, 0.00812591, 0.00811804, 0.00811017, 0.0081023, 0.00809444, 0.00808657, 0.00807871, 0.00807084, 0.00806298, 0.00805512, 0.00804725, 0.00803939, 0.00803153, 0.00802367, 0.0080158, 0.00800794, 0.00800008, 0.00799222, 0.00798437, 0.00797651, 0.00796865, 0.00796079, 0.00795294, 0.00794508, 0.00793723, 0.00792938, 0.00792152, 0.00791367, 0.00790582, 0.00789797, 0.00789012, 0.00788227, 0.00787443, 0.00786658, 0.00785874, 0.00785089, 0.00784305, 0.00783521, 0.00782737, 0.00781953, 0.00781169, 0.00780385, 0.00779601, 0.00778818, 0.00778034, 0.00777251, 0.00776468, 0.00775685, 0.00774902, 0.00774119, 0.00773336, 0.00772554, 0.00771771, 0.00770989, 0.00770207, 0.00769425, 0.00768643, 0.00767862, 0.0076708, 0.00766299, 0.00765518, 0.00764737, 0.00763956, 0.00763175, 0.00762394, 0.00761614, 0.00760834, 0.00760054, 0.00759274, 0.00758494, 0.00757714, 0.00756935, 0.00756156, 0.00755377, 0.00754598, 0.00753819, 0.00753041, 0.00752263, 0.00751485, 0.00750707, 0.00749929, 0.00749151, 0.00748374, 0.00747597, 0.0074682, 0.00746044, 0.00745267, 0.00744491, 0.00743715, 0.00742939, 0.00742164, 0.00741388, 0.00740613, 0.00739838, 0.00739063, 0.00738289, 0.00737515, 0.00736741, 0.00735967, 0.00735194, 0.0073442, 0.00733647, 0.00732875, 0.00732102, 0.0073133, 0.00730558, 0.00729786, 0.00729015, 0.00728243, 0.00727472, 0.00726702, 0.00725931, 0.00725161, 0.00724391, 0.00723621, 0.00722852, 0.00722083, 0.00721314, 0.00720546, 0.00719778, 0.0071901, 0.00718242, 0.00717475, 0.00716708, 0.00715941, 0.00715174, 0.00714408, 0.00713643, 0.00712877, 0.00712112, 0.00711347, 0.00710582, 0.00709818, 0.00709054, 0.0070829, 0.00707527, 0.00706764, 0.00706001, 0.00705239, 0.00704477, 0.00703715, 0.00702954, 0.00702193, 0.00701432, 0.00700672, 0.00699912, 0.00699153, 0.00698393, 0.00697634, 0.00696876, 0.00696118, 0.0069536, 0.00694602, 0.00693845, 0.00693089, 0.00692332, 0.00691576, 0.00690821, 0.00690065, 0.00689311, 0.00688556, 0.00687802, 0.00687048, 0.00686295, 0.00685542, 0.00684789, 0.00684037, 0.00683286, 0.00682534, 0.00681783, 0.00681033, 0.00680283, 0.00679533, 0.00678784, 0.00678035, 0.00677286, 0.00676538, 0.00675791, 0.00675043, 0.00674297, 0.0067355, 0.00672804, 0.00672059, 0.00671314, 0.00670569, 0.00669825, 0.00669081, 0.00668338, 0.00667595, 0.00666853, 0.00666111, 0.0066537, 0.00664629, 0.00663888, 0.00663148, 0.00662408, 0.00661669, 0.0066093, 0.00660192, 0.00659454, 0.00658717, 0.0065798, 0.00657244, 0.00656508, 0.00655773, 0.00655038, 0.00654304, 0.0065357, 0.00652836, 0.00652103, 0.00651371, 0.00650639, 0.00649908, 0.00649177, 0.00648446, 0.00647717, 0.00646987, 0.00646258, 0.0064553, 0.00644802, 0.00644075, 0.00643348, 0.00642622, 0.00641896, 0.00641171, 0.00640446, 0.00639722, 0.00638999, 0.00638276, 0.00637553, 0.00636831, 0.0063611, 0.00635389, 0.00634669, 0.00633949, 0.0063323, 0.00632511, 0.00631793, 0.00631076, 0.00630359, 0.00629642, 0.00628927, 0.00628211, 0.00627497, 0.00626783, 0.00626069, 0.00625356, 0.00624644, 0.00623932, 0.00623221, 0.00622511, 0.00621801, 0.00621091, 0.00620382, 0.00619674, 0.00618967, 0.0061826, 0.00617553, 0.00616848, 0.00616142, 0.00615438, 0.00614734, 0.00614031, 0.00613328, 0.00612626, 0.00611924, 0.00611224, 0.00610523, 0.00609824, 0.00609125, 0.00608427, 0.00607729, 0.00607032, 0.00606336, 0.0060564, 0.00604945, 0.0060425, 0.00603557, 0.00602863, 0.00602171, 0.00601479, 0.00600788, 0.00600097, 0.00599408, 0.00598718, 0.0059803, 0.00597342, 0.00596655, 0.00595968, 0.00595282, 0.00594597, 0.00593913, 0.00593229, 0.00592546, 0.00591864, 0.00591182, 0.00590501, 0.0058982, 0.00589141, 0.00588462, 0.00587783, 0.00587106, 0.00586429, 0.00585753, 0.00585077, 0.00584403, 0.00583729, 0.00583055, 0.00582383, 0.00581711, 0.0058104, 0.00580369, 0.00579699, 0.0057903, 0.00578362, 0.00577695, 0.00577028, 0.00576362, 0.00575696, 0.00575032, 0.00574368, 0.00573705, 0.00573042, 0.00572381, 0.0057172, 0.0057106, 0.005704, 0.00569741, 0.00569084, 0.00568426, 0.0056777, 0.00567114, 0.0056646, 0.00565805, 0.00565152, 0.005645, 0.00563848, 0.00563197, 0.00562546, 0.00561897, 0.00561248, 0.005606, 0.00559953, 0.00559307, 0.00558661, 0.00558017, 0.00557373, 0.00556729, 0.00556087, 0.00555445, 0.00554804, 0.00554164, 0.00553525, 0.00552887, 0.00552249, 0.00551612, 0.00550976, 0.00550341, 0.00549707, 0.00549073, 0.0054844, 0.00547808, 0.00547177, 0.00546547, 0.00545917, 0.00545289, 0.00544661, 0.00544034, 0.00543408, 0.00542782, 0.00542158, 0.00541534, 0.00540911, 0.00540289, 0.00539668, 0.00539048, 0.00538428, 0.00537809, 0.00537192, 0.00536575, 0.00535959, 0.00535343, 0.00534729, 0.00534115, 0.00533502, 0.00532891, 0.0053228, 0.0053167, 0.0053106, 0.00530452, 0.00529844, 0.00529238, 0.00528632, 0.00528027, 0.00527423, 0.00526819, 0.00526217, 0.00525616, 0.00525015, 0.00524415, 0.00523817, 0.00523219, 0.00522622, 0.00522025, 0.0052143, 0.00520836, 0.00520242, 0.0051965, 0.00519058, 0.00518467, 0.00517877, 0.00517288, 0.005167, 0.00516113, 0.00515526, 0.00514941, 0.00514356, 0.00513773, 0.0051319, 0.00512608, 0.00512027, 0.00511447, 0.00510868, 0.0051029, 0.00509713, 0.00509136, 0.00508561, 0.00507986, 0.00507413, 0.0050684, 0.00506268, 0.00505698, 0.00505128, 0.00504559, 0.00503991, 0.00503424, 0.00502857, 0.00502292, 0.00501728, 0.00501164, 0.00500602, 0.0050004, 0.0049948, 0.0049892, 0.00498362, 0.00497804, 0.00497247, 0.00496691, 0.00496136, 0.00495582, 0.00495029, 0.00494477, 0.00493926, 0.00493376, 0.00492827, 0.00492279, 0.00491731, 0.00491185, 0.00490639, 0.00490095, 0.00489552, 0.00489009, 0.00488468, 0.00487927, 0.00487387, 0.00486849, 0.00486311, 0.00485774, 0.00485239, 0.00484704, 0.0048417, 0.00483637, 0.00483105, 0.00482574, 0.00482044, 0.00481516, 0.00480988, 0.00480461, 0.00479935, 0.0047941, 0.00478886, 0.00478362, 0.0047784, 0.00477319, 0.00476799, 0.0047628, 0.00475762, 0.00475245, 0.00474729, 0.00474213, 0.00473699, 0.00473186, 0.00472674, 0.00472163, 0.00471652, 0.00471143, 0.00470635, 0.00470128, 0.00469622, 0.00469116, 0.00468612, 0.00468109, 0.00467606, 0.00467105, 0.00466605, 0.00466106, 0.00465608, 0.0046511, 0.00464614, 0.00464119, 0.00463625, 0.00463132, 0.00462639, 0.00462148, 0.00461658, 0.00461169, 0.00460681, 0.00460193, 0.00459707, 0.00459222, 0.00458738, 0.00458255, 0.00457773, 0.00457292, 0.00456812, 0.00456333, 0.00455855, 0.00455378, 0.00454902, 0.00454427, 0.00453953, 0.0045348, 0.00453008, 0.00452537, 0.00452067, 0.00451598, 0.00451131, 0.00450664, 0.00450198, 0.00449733, 0.0044927, 0.00448807, 0.00448345, 0.00447885, 0.00447425, 0.00446966, 0.00446509, 0.00446052, 0.00445597, 0.00445142, 0.00444689, 0.00444237, 0.00443785, 0.00443335, 0.00442885, 0.00442437, 0.0044199, 0.00441544, 0.00441098, 0.00440654, 0.00440211, 0.00439769, 0.00439328, 0.00438888, 0.00438449, 0.00438011, 0.00437574, 0.00437138, 0.00436703, 0.00436269, 0.00435837, 0.00435405, 0.00434974, 0.00434545, 0.00434116, 0.00433688, 0.00433262, 0.00432836, 0.00432412, 0.00431988, 0.00431566, 0.00431145, 0.00430724, 0.00430305, 0.00429887, 0.0042947, 0.00429053, 0.00428638, 0.00428224, 0.00427811, 0.00427399, 0.00426988, 0.00426578, 0.00426169, 0.00425761, 0.00425355, 0.00424949, 0.00424544, 0.0042414, 0.00423738, 0.00423336, 0.00422936, 0.00422536, 0.00422138, 0.0042174, 0.00421344, 0.00420948, 0.00420554, 0.00420161, 0.00419769, 0.00419377, 0.00418987, 0.00418598, 0.0041821, 0.00417823, 0.00417437, 0.00417052, 0.00416668, 0.00416285, 0.00415903, 0.00415523, 0.00415143, 0.00414764, 0.00414386, 0.0041401, 0.00413634, 0.0041326, 0.00412886, 0.00412514, 0.00412142, 0.00411772, 0.00411402, 0.00411034, 0.00410667, 0.004103, 0.00409935, 0.00409571, 0.00409208, 0.00408846, 0.00408485, 0.00408125, 0.00407765, 0.00407407, 0.00407051, 0.00406695, 0.0040634, 0.00405986, 0.00405633, 0.00405281, 0.00404931, 0.00404581, 0.00404232, 0.00403885, 0.00403538, 0.00403192, 0.00402848, 0.00402504, 0.00402162, 0.0040182, 0.0040148, 0.0040114, 0.00400802, 0.00400465, 0.00400128, 0.00399793, 0.00399459, 0.00399125, 0.00398793, 0.00398462, 0.00398132, 0.00397803, 0.00397475, 0.00397147, 0.00396821, 0.00396496, 0.00396172, 0.00395849, 0.00395527, 0.00395206, 0.00394886, 0.00394567, 0.00394249, 0.00393933, 0.00393617, 0.00393302, 0.00392988, 0.00392675, 0.00392363, 0.00392052, 0.00391742, 0.00391434, 0.00391126, 0.00390819, 0.00390513, 0.00390209, 0.00389905, 0.00389602, 0.003893, 0.00389, 0.003887, 0.00388401, 0.00388103, 0.00387807, 0.00387511, 0.00387216, 0.00386923, 0.0038663, 0.00386338, 0.00386048, 0.00385758, 0.00385469, 0.00385181, 0.00384895, 0.00384609, 0.00384324, 0.00384041, 0.00383758, 0.00383476, 0.00383195, 0.00382916, 0.00382637, 0.00382359, 0.00382082, 0.00381806, 0.00381532, 0.00381258, 0.00380985, 0.00380713, 0.00380442, 0.00380172, 0.00379903, 0.00379635, 0.00379368, 0.00379102, 0.00378838, 0.00378574, 0.0037831, 0.00378048, 0.00377787, 0.00377527, 0.00377268, 0.0037701, 0.00376753, 0.00376496, 0.00376241, 0.00375987, 0.00375733, 0.00375481, 0.0037523, 0.00374979, 0.0037473, 0.00374481, 0.00374233, 0.00373987, 0.00373741, 0.00373496, 0.00373253, 0.0037301, 0.00372768, 0.00372527, 0.00372287, 0.00372048, 0.0037181, 0.00371573, 0.00371337, 0.00371102, 0.00370867, 0.00370634, 0.00370402, 0.0037017, 0.0036994, 0.0036971, 0.00369482, 0.00369254, 0.00369027, 0.00368801, 0.00368576, 0.00368353, 0.0036813, 0.00367907, 0.00367686, 0.00367466, 0.00367247, 0.00367028, 0.00366811, 0.00366594, 0.00366379, 0.00366164, 0.0036595, 0.00365737, 0.00365525, 0.00365314, 0.00365104, 0.00364895, 0.00364687, 0.00364479, 0.00364273, 0.00364067, 0.00363863, 0.00363659, 0.00363456, 0.00363254, 0.00363053, 0.00362853, 0.00362653, 0.00362455, 0.00362258, 0.00362061, 0.00361865, 0.00361671, 0.00361477, 0.00361284, 0.00361091, 0.003609, 0.0036071, 0.0036052, 0.00360332, 0.00360144, 0.00359957, 0.00359771, 0.00359586, 0.00359402, 0.00359219, 0.00359036, 0.00358855, 0.00358674, 0.00358494, 0.00358315, 0.00358137, 0.00357959, 0.00357783, 0.00357608, 0.00357433, 0.00357259, 0.00357086, 0.00356914, 0.00356743, 0.00356572, 0.00356403, 0.00356234, 0.00356066, 0.00355899, 0.00355733, 0.00355567, 0.00355403, 0.00355239, 0.00355077, 0.00354915, 0.00354753, 0.00354593, 0.00354434, 0.00354275, 0.00354117, 0.0035396, 0.00353804, 0.00353649, 0.00353494, 0.0035334, 0.00353187, 0.00353035, 0.00352884, 0.00352734, 0.00352584, 0.00352435, 0.00352287, 0.0035214, 0.00351994, 0.00351848, 0.00351703, 0.00351559, 0.00351416, 0.00351274, 0.00351132, 0.00350991, 0.00350851, 0.00350712, 0.00350574, 0.00350436, 0.00350299, 0.00350163, 0.00350028, 0.00349894, 0.0034976, 0.00349627, 0.00349495, 0.00349363, 0.00349233, 0.00349103, 0.00348974, 0.00348846, 0.00348718, 0.00348591, 0.00348465, 0.0034834, 0.00348216, 0.00348092, 0.00347969, 0.00347847, 0.00347726, 0.00347605, 0.00347485, 0.00347366, 0.00347247, 0.0034713, 0.00347013, 0.00346897, 0.00346781, 0.00346666, 0.00346552, 0.00346439, 0.00346327, 0.00346215, 0.00346104, 0.00345994, 0.00345884, 0.00345775, 0.00345667, 0.0034556, 0.00345453, 0.00345347, 0.00345242, 0.00345137, 0.00345033, 0.0034493, 0.00344828, 0.00344726, 0.00344625, 0.00344525, 0.00344425, 0.00344327, 0.00344228, 0.00344131, 0.00344034, 0.00343938, 0.00343843, 0.00343748, 0.00343654, 0.00343561, 0.00343468, 0.00343376, 0.00343285, 0.00343194, 0.00343104, 0.00343015, 0.00342926, 0.00342839, 0.00342751, 0.00342665, 0.00342579, 0.00342494, 0.00342409, 0.00342325, 0.00342242, 0.00342159, 0.00342078, 0.00341996, 0.00341916, 0.00341836, 0.00341756, 0.00341678, 0.003416, 0.00341522, 0.00341446, 0.0034137, 0.00341294, 0.00341219, 0.00341145, 0.00341072, 0.00340999, 0.00340926, 0.00340855, 0.00340784, 0.00340713, 0.00340644, 0.00340574, 0.00340506, 0.00340438, 0.00340371, 0.00340304, 0.00340238, 0.00340172, 0.00340108, 0.00340043, 0.0033998, 0.00339917, 0.00339854, 0.00339792, 0.00339731, 0.0033967, 0.0033961, 0.00339551, 0.00339492, 0.00339434, 0.00339376, 0.00339319, 0.00339262, 0.00339206, 0.00339151, 0.00339096, 0.00339042, 0.00338988, 0.00338935, 0.00338883, 0.00338831, 0.00338779, 0.00338729, 0.00338678, 0.00338629, 0.0033858, 0.00338531, 0.00338483, 0.00338436, 0.00338389, 0.00338342, 0.00338296, 0.00338251, 0.00338206, 0.00338162, 0.00338119, 0.00338075, 0.00338033, 0.00337991, 0.00337949, 0.00337908, 0.00337868, 0.00337828, 0.00337789, 0.0033775, 0.00337711, 0.00337674, 0.00337636, 0.00337599, 0.00337563, 0.00337527, 0.00337492, 0.00337457, 0.00337423, 0.00337389, 0.00337356, 0.00337323, 0.00337291, 0.0033726, 0.00337228, 0.00337198, 0.00337167, 0.00337138, 0.00337108, 0.00337079, 0.00337051, 0.00337023, 0.00336996, 0.00336969, 0.00336943, 0.00336917, 0.00336891, 0.00336867, 0.00336842, 0.00336818, 0.00336794, 0.00336771, 0.00336749, 0.00336727, 0.00336705, 0.00336684, 0.00336663, 0.00336643, 0.00336623, 0.00336603, 0.00336584, 0.00336566, 0.00336548, 0.0033653, 0.00336513, 0.00336496, 0.0033648, 0.00336464, 0.00336448, 0.00336433, 0.00336419, 0.00336405, 0.00336391, 0.00336377, 0.00336365, 0.00336352, 0.0033634, 0.00336328, 0.00336317, 0.00336306, 0.00336296, 0.00336286, 0.00336276, 0.00336267, 0.00336259, 0.0033625, 0.00336242, 0.00336235, 0.00336228, 0.00336221, 0.00336214, 0.00336209, 0.00336203, 0.00336198, 0.00336193, 0.00336189, 0.00336184, 0.00336181, 0.00336178, 0.00336175, 0.00336172, 0.0033617, 0.00336168, 0.00336167, 0.00336166, 0.00336165, 0.00336165, 0.00336165, 0.00336165, 0.00336166, 0.00336167, 0.00336169, 0.00336171, 0.00336173, 0.00336176, 0.00336178, 0.00336182, 0.00336185, 0.00336189, 0.00336194, 0.00336198, 0.00336203, 0.00336209, 0.00336214, 0.0033622, 0.00336227, 0.00336233, 0.0033624, 0.00336248, 0.00336255, 0.00336263, 0.00336272, 0.0033628, 0.00336289, 0.00336299, 0.00336308, 0.00336318, 0.00336328, 0.00336339, 0.0033635, 0.00336361, 0.00336372, 0.00336384, 0.00336396, 0.00336408, 0.00336421, 0.00336434, 0.00336447, 0.00336461, 0.00336474, 0.00336489, 0.00336503, 0.00336518, 0.00336533, 0.00336548, 0.00336564, 0.00336579, 0.00336595, 0.00336612, 0.00336629, 0.00336645, 0.00336663, 0.0033668, 0.00336698, 0.00336716, 0.00336734, 0.00336753, 0.00336772, 0.00336791, 0.0033681, 0.0033683, 0.00336849, 0.0033687, 0.0033689, 0.00336911, 0.00336931, 0.00336953, 0.00336974, 0.00336996, 0.00337017, 0.00337039, 0.00337062, 0.00337084, 0.00337107, 0.0033713, 0.00337154, 0.00337177, 0.00337201, 0.00337225, 0.00337249, 0.00337273, 0.00337298, 0.00337323, 0.00337348, 0.00337373, 0.00337399, 0.00337425, 0.00337451, 0.00337477, 0.00337503, 0.0033753, 0.00337557, 0.00337584, 0.00337611, 0.00337638, 0.00337666, 0.00337694, 0.00337722, 0.0033775, 0.00337778, 0.00337807, 0.00337836, 0.00337865, 0.00337894, 0.00337924, 0.00337953, 0.00337983, 0.00338013, 0.00338043, 0.00338073, 0.00338104, 0.00338135, 0.00338165, 0.00338196, 0.00338228, 0.00338259, 0.00338291, 0.00338322, 0.00338354, 0.00338386, 0.00338419, 0.00338451, 0.00338483, 0.00338516, 0.00338549, 0.00338582, 0.00338615, 0.00338649, 0.00338682, 0.00338716, 0.0033875, 0.00338784, 0.00338818, 0.00338852, 0.00338886, 0.00338921, 0.00338956, 0.0033899, 0.00339025, 0.00339061, 0.00339096, 0.00339131, 0.00339167, 0.00339202, 0.00339238, 0.00339274, 0.0033931, 0.00339346, 0.00339383, 0.00339419, 0.00339456, 0.00339492, 0.00339529, 0.00339566, 0.00339603, 0.0033964, 0.00339678, 0.00339715, 0.00339752, 0.0033979, 0.00339828, 0.00339866, 0.00339904, 0.00339942, 0.0033998, 0.00340018, 0.00340056, 0.00340095, 0.00340133, 0.00340172, 0.00340211, 0.0034025, 0.00340289, 0.00340328, 0.00340367, 0.00340406, 0.00340445, 0.00340485, 0.00340524, 0.00340564, 0.00340603, 0.00340643, 0.00340683, 0.00340723, 0.00340763, 0.00340803, 0.00340843, 0.00340883, 0.00340923, 0.00340964, 0.00341004, 0.00341045, 0.00341085, 0.00341126, 0.00341167, 0.00341207, 0.00341248, 0.00341289, 0.0034133, 0.00341371, 0.00341412, 0.00341453, 0.00341495, 0.00341536, 0.00341577, 0.00341619, 0.0034166, 0.00341701, 0.00341743, 0.00341785, 0.00341826, 0.00341868, 0.0034191, 0.00341951, 0.00341993, 0.00342035, 0.00342077, 0.00342119, 0.00342161, 0.00342203, 0.00342245, 0.00342287, 0.00342329, 0.00342371, 0.00342413, 0.00342455, 0.00342498, 0.0034254, 0.00342582, 0.00342625, 0.00342667, 0.00342709, 0.00342752, 0.00342794, 0.00342837, 0.00342879, 0.00342921, 0.00342964, 0.00343006, 0.00343049, 0.00343092, 0.00343134, 0.00343177, 0.00343219, 0.00343262, 0.00343304, 0.00343347, 0.0034339, 0.00343432, 0.00343475, 0.00343517, 0.0034356, 0.00343603, 0.00343645, 0.00343688, 0.00343731, 0.00343773, 0.00343816, 0.00343858, 0.00343901, 0.00343944, 0.00343986, 0.00344029, 0.00344071, 0.00344114, 0.00344156, 0.00344199, 0.00344242, 0.00344284, 0.00344327, 0.00344369, 0.00344412, 0.00344454, 0.00344496, 0.00344539, 0.00344581, 0.00344624, 0.00344666, 0.00344708, 0.0034475, 0.00344793, 0.00344835, 0.00344877, 0.00344919, 0.00344962, 0.00345004, 0.00345046, 0.00345088, 0.0034513, 0.00345172, 0.00345214, 0.00345256, 0.00345298, 0.00345339, 0.00345381, 0.00345423, 0.00345465, 0.00345506, 0.00345548, 0.0034559, 0.00345631, 0.00345673, 0.00345714, 0.00345756, 0.00345797, 0.00345838, 0.00345879, 0.00345921, 0.00345962, 0.00346003, 0.00346044, 0.00346085, 0.00346126, 0.00346167, 0.00346208, 0.00346248, 0.00346289, 0.0034633, 0.0034637, 0.00346411, 0.00346451, 0.00346492, 0.00346532, 0.00346572, 0.00346613, 0.00346653, 0.00346693, 0.00346733, 0.00346773, 0.00346813, 0.00346853, 0.00346892, 0.00346932, 0.00346972, 0.00347011, 0.00347051, 0.0034709, 0.00347129, 0.00347168, 0.00347208, 0.00347247, 0.00347286, 0.00347325, 0.00347363, 0.00347402, 0.00347441, 0.00347479, 0.00347518, 0.00347556, 0.00347595, 0.00347633, 0.00347671, 0.00347709, 0.00347747, 0.00347785, 0.00347823, 0.00347861, 0.00347898, 0.00347936, 0.00347973, 0.0034801, 0.00348048, 0.00348085, 0.00348122, 0.00348159, 0.00348196, 0.00348233, 0.00348269, 0.00348306, 0.00348342, 0.00348379, 0.00348415, 0.00348451, 0.00348487, 0.00348523, 0.00348559, 0.00348595, 0.0034863, 0.00348666, 0.00348701, 0.00348737, 0.00348772, 0.00348807, 0.00348842, 0.00348877, 0.00348912, 0.00348946, 0.00348981, 0.00349015, 0.0034905, 0.00349084, 0.00349118, 0.00349152, 0.00349186, 0.0034922, 0.00349253, 0.00349287, 0.0034932, 0.00349354, 0.00349387, 0.0034942, 0.00349453, 0.00349486, 0.00349518, 0.00349551, 0.00349583, 0.00349616, 0.00349648, 0.0034968, 0.00349712, 0.00349744, 0.00349775, 0.00349807, 0.00349838, 0.00349869, 0.00349901, 0.00349932, 0.00349963, 0.00349993, 0.00350024, 0.00350054, 0.00350085, 0.00350115, 0.00350145, 0.00350175, 0.00350205, 0.00350235, 0.00350264, 0.00350294, 0.00350323, 0.00350352, 0.00350381, 0.0035041, 0.00350439, 0.00350467, 0.00350496, 0.00350524, 0.00350552, 0.0035058, 0.00350608, 0.00350636, 0.00350663, 0.00350691, 0.00350718, 0.00350745, 0.00350772, 0.00350799, 0.00350826, 0.00350852, 0.00350879, 0.00350905, 0.00350931, 0.00350957, 0.00350983, 0.00351008, 0.00351034, 0.00351059, 0.00351084, 0.00351109, 0.00351134, 0.00351159, 0.00351183, 0.00351208, 0.00351232, 0.00351256, 0.0035128, 0.00351304, 0.00351328, 0.00351351, 0.00351374, 0.00351397, 0.0035142, 0.00351443, 0.00351466, 0.00351488, 0.00351511, 0.00351533, 0.00351555, 0.00351577, 0.00351598, 0.0035162, 0.00351641, 0.00351662, 0.00351683, 0.00351704, 0.00351725, 0.00351745, 0.00351766, 0.00351786, 0.00351806, 0.00351826, 0.00351845, 0.00351865, 0.00351884, 0.00351903, 0.00351922, 0.00351941, 0.00351959, 0.00351978, 0.00351996, 0.00352014, 0.00352032, 0.0035205, 0.00352067, 0.00352085, 0.00352102, 0.00352119, 0.00352136, 0.00352152, 0.00352169, 0.00352185, 0.00352201, 0.00352217, 0.00352233, 0.00352249, 0.00352264, 0.00352279, 0.00352294, 0.00352309, 0.00352324, 0.00352338, 0.00352353, 0.00352367, 0.00352381, 0.00352394, 0.00352408, 0.00352421, 0.00352434, 0.00352447, 0.0035246, 0.00352473, 0.00352485, 0.00352497, 0.00352509, 0.00352521, 0.00352533, 0.00352544, 0.00352556, 0.00352567, 0.00352578, 0.00352588, 0.00352599, 0.00352609, 0.00352619, 0.00352629, 0.00352639, 0.00352648, 0.00352658, 0.00352667, 0.00352676, 0.00352685, 0.00352693, 0.00352701, 0.0035271, 0.00352718, 0.00352725, 0.00352733, 0.0035274, 0.00352747, 0.00352754, 0.00352761, 0.00352768, 0.00352774, 0.0035278, 0.00352786, 0.00352792, 0.00352797, 0.00352803, 0.00352808, 0.00352813, 0.00352817, 0.00352822, 0.00352826, 0.0035283, 0.00352834, 0.00352838, 0.00352841, 0.00352844, 0.00352847, 0.0035285, 0.00352853, 0.00352855, 0.00352858, 0.0035286, 0.00352861, 0.00352863, 0.00352864, 0.00352865, 0.00352866, 0.00352867, 0.00352868, 0.00352868, 0.00352868, 0.00352868, 0.00352868, 0.00352867, 0.00352866, 0.00352865, 0.00352864, 0.00352863, 0.00352861, 0.00352859, 0.00352857, 0.00352855, 0.00352852, 0.00352849, 0.00352846, 0.00352843, 0.0035284, 0.00352836, 0.00352832, 0.00352828, 0.00352824, 0.0035282, 0.00352815, 0.0035281, 0.00352805, 0.00352799, 0.00352794, 0.00352788, 0.00352782, 0.00352776, 0.00352769, 0.00352762, 0.00352755, 0.00352748, 0.00352741, 0.00352733, 0.00352725, 0.00352717, 0.00352709, 0.003527, 0.00352691, 0.00352682, 0.00352673, 0.00352664, 0.00352654, 0.00352644, 0.00352634, 0.00352623, 0.00352613, 0.00352602, 0.00352591, 0.0035258, 0.00352568, 0.00352556, 0.00352544, 0.00352532, 0.00352519, 0.00352507, 0.00352494, 0.0035248, 0.00352467, 0.00352453, 0.00352439, 0.00352425, 0.00352411, 0.00352396, 0.00352381, 0.00352366, 0.00352351, 0.00352335, 0.00352319, 0.00352303, 0.00352287, 0.00352271, 0.00352254, 0.00352237, 0.00352219, 0.00352202, 0.00352184, 0.00352166, 0.00352148, 0.00352129, 0.00352111, 0.00352092, 0.00352072, 0.00352053, 0.00352033, 0.00352013, 0.00351993, 0.00351973, 0.00351952, 0.00351931, 0.0035191, 0.00351888, 0.00351867, 0.00351845, 0.00351823, 0.003518, 0.00351778, 0.00351755, 0.00351731, 0.00351708, 0.00351684, 0.0035166, 0.00351636, 0.00351612, 0.00351587, 0.00351562, 0.00351537, 0.00351511, 0.00351486, 0.0035146, 0.00351434, 0.00351407, 0.0035138, 0.00351353, 0.00351326, 0.00351299, 0.00351271, 0.00351243, 0.00351215, 0.00351186, 0.00351157, 0.00351128, 0.00351099, 0.00351069, 0.0035104, 0.0035101, 0.00350979, 0.00350949, 0.00350918, 0.00350887, 0.00350855, 0.00350824, 0.00350792, 0.0035076, 0.00350727, 0.00350695, 0.00350662, 0.00350628, 0.00350595, 0.00350561, 0.00350527, 0.00350493, 0.00350458, 0.00350424, 0.00350389, 0.00350353, 0.00350318, 0.00350282, 0.00350246, 0.00350209, 0.00350173, 0.00350136, 0.00350099, 0.00350061, 0.00350023, 0.00349985, 0.00349947, 0.00349908, 0.0034987, 0.00349831, 0.00349791, 0.00349752, 0.00349712, 0.00349672, 0.00349631, 0.0034959, 0.00349549, 0.00349508, 0.00349467, 0.00349425, 0.00349383, 0.0034934, 0.00349298, 0.00349255, 0.00349212, 0.00349168, 0.00349124, 0.0034908, 0.00349036, 0.00348991, 0.00348947, 0.00348901, 0.00348856, 0.0034881, 0.00348764, 0.00348718, 0.00348672, 0.00348625, 0.00348578, 0.0034853, 0.00348483, 0.00348435, 0.00348387, 0.00348338, 0.00348289, 0.0034824, 0.00348191, 0.00348141, 0.00348092, 0.00348041, 0.00347991, 0.0034794, 0.00347889, 0.00347838, 0.00347786, 0.00347734, 0.00347682, 0.0034763, 0.00347577, 0.00347524, 0.0034747, 0.00347417, 0.00347363, 0.00347309, 0.00347254, 0.003472, 0.00347144, 0.00347089, 0.00347033, 0.00346978, 0.00346921, 0.00346865, 0.00346808, 0.00346751, 0.00346694, 0.00346636, 0.00346578, 0.0034652, 0.00346461, 0.00346402, 0.00346343, 0.00346284, 0.00346224, 0.00346164, 0.00346104, 0.00346043, 0.00345982, 0.00345921, 0.00345859, 0.00345798, 0.00345736, 0.00345673, 0.0034561, 0.00345547, 0.00345484, 0.00345421, 0.00345357, 0.00345293, 0.00345228, 0.00345163, 0.00345098, 0.00345033, 0.00344967, 0.00344901, 0.00344835, 0.00344768, 0.00344701, 0.00344634, 0.00344567, 0.00344499, 0.00344431, 0.00344363, 0.00344294, 0.00344225, 0.00344156, 0.00344086, 0.00344016, 0.00343946, 0.00343875, 0.00343805, 0.00343733, 0.00343662, 0.0034359, 0.00343518, 0.00343446, 0.00343373, 0.003433, 0.00343227, 0.00343153, 0.00343079, 0.00343005, 0.00342931, 0.00342856, 0.00342781, 0.00342705, 0.0034263, 0.00342554, 0.00342477, 0.003424, 0.00342323, 0.00342246, 0.00342169, 0.00342091, 0.00342012, 0.00341934, 0.00341855, 0.00341776, 0.00341696, 0.00341617, 0.00341536, 0.00341456, 0.00341375, 0.00341294, 0.00341213, 0.00341131, 0.00341049, 0.00340967, 0.00340884, 0.00340801, 0.00340718, 0.00340634, 0.00340551, 0.00340466, 0.00340382, 0.00340297, 0.00340212, 0.00340126, 0.0034004, 0.00339954, 0.00339868, 0.00339781, 0.00339694, 0.00339607, 0.00339519, 0.00339431, 0.00339343, 0.00339254, 0.00339165, 0.00339075, 0.00338986, 0.00338896, 0.00338806, 0.00338715, 0.00338624, 0.00338533, 0.00338441, 0.00338349, 0.00338257, 0.00338164, 0.00338072, 0.00337978, 0.00337885, 0.00337791, 0.00337697, 0.00337602, 0.00337508, 0.00337412, 0.00337317, 0.00337221, 0.00337125, 0.00337029, 0.00336932, 0.00336835, 0.00336737, 0.00336639, 0.00336541, 0.00336443, 0.00336344, 0.00336245, 0.00336146, 0.00336046, 0.00335946, 0.00335845, 0.00335745, 0.00335644, 0.00335542, 0.00335441, 0.00335339, 0.00335236, 0.00335133, 0.0033503, 0.00334927, 0.00334823, 0.00334719, 0.00334615, 0.0033451, 0.00334405, 0.003343, 0.00334194, 0.00334088, 0.00333982, 0.00333875, 0.00333768, 0.00333661, 0.00333553, 0.00333445, 0.00333337, 0.00333228, 0.00333119, 0.0033301, 0.003329, 0.0033279, 0.0033268, 0.00332569, 0.00332458, 0.00332346, 0.00332235, 0.00332123, 0.0033201, 0.00331898, 0.00331785, 0.00331671, 0.00331558, 0.00331443, 0.00331329, 0.00331214, 0.00331099, 0.00330984, 0.00330868, 0.00330752, 0.00330636, 0.00330519, 0.00330402, 0.00330284, 0.00330166, 0.00330048, 0.0032993, 0.00329811, 0.00329692, 0.00329572, 0.00329453, 0.00329333, 0.00329212, 0.00329091, 0.0032897, 0.00328849, 0.00328727, 0.00328604, 0.00328482, 0.00328359, 0.00328236, 0.00328112, 0.00327988, 0.00327864, 0.0032774, 0.00327615, 0.00327489, 0.00327364, 0.00327238, 0.00327112, 0.00326985, 0.00326858, 0.00326731, 0.00326603, 0.00326475, 0.00326347, 0.00326218, 0.00326089, 0.0032596, 0.0032583, 0.003257, 0.00325569, 0.00325439, 0.00325308, 0.00325176, 0.00325044, 0.00324912, 0.0032478, 0.00324647, 0.00324514, 0.0032438, 0.00324246, 0.00324112, 0.00323978, 0.00323843, 0.00323708, 0.00323572, 0.00323436, 0.003233, 0.00323163, 0.00323026, 0.00322889, 0.00322752, 0.00322614, 0.00322475, 0.00322337, 0.00322198, 0.00322058, 0.00321919, 0.00321779, 0.00321638, 0.00321497, 0.00321356, 0.00321215, 0.00321073, 0.00320931, 0.00320789, 0.00320646, 0.00320503, 0.00320359, 0.00320215, 0.00320071, 0.00319927, 0.00319782, 0.00319637, 0.00319491, 0.00319345, 0.00319199, 0.00319052, 0.00318905, 0.00318758, 0.0031861, 0.00318462, 0.00318314, 0.00318165, 0.00318016, 0.00317867, 0.00317717, 0.00317567, 0.00317417, 0.00317266, 0.00317115, 0.00316964, 0.00316812, 0.0031666, 0.00316507, 0.00316354, 0.00316201, 0.00316048, 0.00315894, 0.0031574, 0.00315585, 0.0031543, 0.00315275, 0.0031512, 0.00314964, 0.00314807, 0.00314651, 0.00314494, 0.00314336, 0.00314179, 0.00314021, 0.00313863, 0.00313704, 0.00313545, 0.00313386, 0.00313226, 0.00313066, 0.00312905, 0.00312745, 0.00312584, 0.00312422, 0.0031226, 0.00312098, 0.00311936, 0.00311773, 0.0031161, 0.00311446, 0.00311283, 0.00311118, 0.00310954, 0.00310789, 0.00310624, 0.00310458, 0.00310292, 0.00310126, 0.0030996, 0.00309793, 0.00309625, 0.00309458, 0.0030929, 0.00309122, 0.00308953, 0.00308784, 0.00308615, 0.00308445, 0.00308275, 0.00308105, 0.00307934, 0.00307763, 0.00307592, 0.0030742, 0.00307248, 0.00307076, 0.00306903, 0.0030673, 0.00306557, 0.00306383, 0.00306209, 0.00306035, 0.0030586, 0.00305685, 0.00305509, 0.00305334, 0.00305158, 0.00304981, 0.00304804, 0.00304627, 0.0030445, 0.00304272, 0.00304094, 0.00303916, 0.00303737, 0.00303558, 0.00303378, 0.00303199, 0.00303018, 0.00302838, 0.00302657, 0.00302476, 0.00302295, 0.00302113, 0.00301931, 0.00301748, 0.00301565, 0.00301382, 0.00301199, 0.00301015, 0.00300831, 0.00300646, 0.00300462, 0.00300277, 0.00300091, 0.00299905, 0.00299719, 0.00299533, 0.00299346, 0.00299159, 0.00298971, 0.00298784, 0.00298596, 0.00298407, 0.00298218, 0.00298029, 0.0029784, 0.0029765, 0.0029746, 0.0029727, 0.00297079, 0.00296888, 0.00296697, 0.00296505, 0.00296313, 0.00296121, 0.00295928, 0.00295735, 0.00295542, 0.00295348, 0.00295154, 0.0029496, 0.00294765, 0.0029457, 0.00294375, 0.00294179, 0.00293983, 0.00293787, 0.0029359, 0.00293394, 0.00293196, 0.00292999, 0.00292801, 0.00292603, 0.00292404, 0.00292206, 0.00292007, 0.00291807, 0.00291607, 0.00291407, 0.00291207, 0.00291006, 0.00290805, 0.00290604, 0.00290402, 0.002902, 0.00289998, 0.00289795, 0.00289592, 0.00289389, 0.00289186, 0.00288982, 0.00288778, 0.00288573, 0.00288368, 0.00288163, 0.00287958, 0.00287752, 0.00287546, 0.0028734, 0.00287133, 0.00286926, 0.00286719, 0.00286511, 0.00286303, 0.00286095, 0.00285887, 0.00285678, 0.00285469, 0.00285259, 0.0028505, 0.0028484, 0.00284629, 0.00284419, 0.00284208, 0.00283997, 0.00283785, 0.00283573, 0.00283361, 0.00283149, 0.00282936, 0.00282723, 0.00282509, 0.00282296, 0.00282082, 0.00281868, 0.00281653, 0.00281438, 0.00281223, 0.00281008, 0.00280792, 0.00280576, 0.0028036, 0.00280143, 0.00279926, 0.00279709, 0.00279491, 0.00279274, 0.00279056, 0.00278837, 0.00278619, 0.002784, 0.0027818, 0.00277961, 0.00277741, 0.00277521, 0.00277301, 0.0027708, 0.00276859, 0.00276638, 0.00276416, 0.00276194, 0.00275972, 0.0027575, 0.00275527, 0.00275304, 0.00275081, 0.00274857, 0.00274634, 0.0027441, 0.00274185, 0.00273961, 0.00273736, 0.0027351, 0.00273285, 0.00273059, 0.00272833, 0.00272607, 0.0027238, 0.00272153, 0.00271926, 0.00271699, 0.00271471, 0.00271243, 0.00271015, 0.00270787, 0.00270558, 0.00270329, 0.002701, 0.0026987, 0.0026964, 0.0026941, 0.0026918, 0.00268949, 0.00268718, 0.00268487, 0.00268255, 0.00268024, 0.00267792, 0.0026756, 0.00267327, 0.00267094, 0.00266861, 0.00266628, 0.00266395, 0.00266161, 0.00265927, 0.00265692, 0.00265458, 0.00265223, 0.00264988, 0.00264753, 0.00264517, 0.00264281, 0.00264045, 0.00263809, 0.00263572, 0.00263335, 0.00263098, 0.00262861, 0.00262623, 0.00262386, 0.00262147, 0.00261909, 0.00261671, 0.00261432, 0.00261193, 0.00260953, 0.00260714, 0.00260474, 0.00260234, 0.00259994, 0.00259753, 0.00259512, 0.00259271, 0.0025903, 0.00258789, 0.00258547, 0.00258305, 0.00258063, 0.0025782, 0.00257578, 0.00257335, 0.00257092, 0.00256848, 0.00256605, 0.00256361, 0.00256117, 0.00255873, 0.00255628, 0.00255384, 0.00255139, 0.00254893, 0.00254648, 0.00254402, 0.00254156, 0.0025391, 0.00253664, 0.00253418, 0.00253171, 0.00252924, 0.00252677, 0.00252429, 0.00252182, 0.00251934, 0.00251686, 0.00251437, 0.00251189, 0.0025094, 0.00250691, 0.00250442, 0.00250193, 0.00249943, 0.00249694, 0.00249444, 0.00249193, 0.00248943, 0.00248693, 0.00248442, 0.00248191, 0.0024794, 0.00247688, 0.00247437, 0.00247185, 0.00246933, 0.0024668, 0.00246428, 0.00246175, 0.00245923, 0.0024567, 0.00245416, 0.00245163, 0.00244909, 0.00244656, 0.00244402, 0.00244147, 0.00243893, 0.00243639, 0.00243384, 0.00243129, 0.00242874, 0.00242618, 0.00242363, 0.00242107, 0.00241851, 0.00241595, 0.00241339, 0.00241083, 0.00240826, 0.00240569, 0.00240312, 0.00240055, 0.00239798, 0.0023954, 0.00239283, 0.00239025, 0.00238767, 0.00238509, 0.0023825, 0.00237992, 0.00237733, 0.00237474, 0.00237215, 0.00236956, 0.00236696, 0.00236437, 0.00236177, 0.00235917, 0.00235657, 0.00235397, 0.00235137, 0.00234876, 0.00234615, 0.00234354, 0.00234093, 0.00233832, 0.00233571, 0.00233309, 0.00233048, 0.00232786, 0.00232524, 0.00232262, 0.00232, 0.00231737, 0.00231475, 0.00231212, 0.00230949, 0.00230686, 0.00230423, 0.0023016, 0.00229896, 0.00229633, 0.00229369, 0.00229105, 0.00228841, 0.00228577, 0.00228312, 0.00228048, 0.00227783, 0.00227519, 0.00227254, 0.00226989, 0.00226724, 0.00226459, 0.00226193, 0.00225928, 0.00225662, 0.00225396, 0.0022513, 0.00224864, 0.00224598, 0.00224332, 0.00224065, 0.00223799, 0.00223532, 0.00223266, 0.00222999, 0.00222732, 0.00222464, 0.00222197, 0.0022193, 0.00221662, 0.00221395, 0.00221127, 0.00220859, 0.00220591, 0.00220323, 0.00220055, 0.00219787, 0.00219518, 0.0021925, 0.00218981, 0.00218713, 0.00218444, 0.00218175, 0.00217906, 0.00217637, 0.00217367, 0.00217098, 0.00216829, 0.00216559, 0.0021629, 0.0021602, 0.0021575, 0.0021548, 0.0021521, 0.0021494, 0.0021467, 0.002144, 0.00214129, 0.00213859, 0.00213588, 0.00213318, 0.00213047, 0.00212776, 0.00212505, 0.00212234, 0.00211963, 0.00211692, 0.00211421, 0.0021115, 0.00210878, 0.00210607, 0.00210335, 0.00210064, 0.00209792, 0.0020952, 0.00209248, 0.00208977, 0.00208705, 0.00208433, 0.0020816, 0.00207888, 0.00207616, 0.00207344, 0.00207071, 0.00206799, 0.00206526, 0.00206254, 0.00205981, 0.00205709, 0.00205436, 0.00205163, 0.0020489, 0.00204617, 0.00204344, 0.00204071, 0.00203798, 0.00203525, 0.00203252, 0.00202979, 0.00202706, 0.00202432, 0.00202159, 0.00201885, 0.00201612, 0.00201338, 0.00201065, 0.00200791, 0.00200518, 0.00200244, 0.0019997, 0.00199697, 0.00199423, 0.00199149, 0.00198875, 0.00198601, 0.00198327, 0.00198053, 0.00197779, 0.00197505, 0.00197231, 0.00196957, 0.00196683, 0.00196409, 0.00196135, 0.00195861, 0.00195586, 0.00195312, 0.00195038, 0.00194764, 0.00194489, 0.00194215, 0.00193941, 0.00193666, 0.00193392, 0.00193118, 0.00192843, 0.00192569, 0.00192294, 0.0019202, 0.00191745, 0.00191471, 0.00191197, 0.00190922, 0.00190648, 0.00190373, 0.00190099, 0.00189824, 0.0018955, 0.00189275, 0.00189001, 0.00188726, 0.00188452, 0.00188177, 0.00187903, 0.00187628, 0.00187354, 0.00187079, 0.00186805, 0.0018653, 0.00186256, 0.00185981, 0.00185707, 0.00185433, 0.00185158, 0.00184884, 0.00184609, 0.00184335, 0.00184061, 0.00183786, 0.00183512, 0.00183238, 0.00182964, 0.00182689, 0.00182415, 0.00182141, 0.00181867, 0.00181593, 0.00181319, 0.00181044, 0.0018077, 0.00180496, 0.00180222, 0.00179948, 0.00179675, 0.00179401, 0.00179127, 0.00178853, 0.00178579, 0.00178305, 0.00178032, 0.00177758, 0.00177484, 0.00177211, 0.00176937, 0.00176664, 0.0017639, 0.00176117, 0.00175843, 0.0017557, 0.00175297, 0.00175024, 0.0017475, 0.00174477, 0.00174204, 0.00173931, 0.00173658, 0.00173385, 0.00173112, 0.00172839, 0.00172567, 0.00172294, 0.00172021, 0.00171749, 0.00171476, 0.00171204, 0.00170931, 0.00170659, 0.00170387, 0.00170115, 0.00169842, 0.0016957, 0.00169298, 0.00169026, 0.00168755, 0.00168483, 0.00168211, 0.00167939, 0.00167668, 0.00167396, 0.00167125, 0.00166854, 0.00166582, 0.00166311, 0.0016604, 0.00165769, 0.00165498, 0.00165227, 0.00164956, 0.00164686, 0.00164415, 0.00164145, 0.00163874, 0.00163604, 0.00163333, 0.00163063, 0.00162793, 0.00162523, 0.00162253, 0.00161983, 0.00161714, 0.00161444, 0.00161175, 0.00160905, 0.00160636, 0.00160367, 0.00160097, 0.00159828, 0.00159559, 0.00159291, 0.00159022, 0.00158753, 0.00158485, 0.00158216, 0.00157948, 0.0015768, 0.00157412, 0.00157144, 0.00156876, 0.00156608, 0.0015634, 0.00156073, 0.00155805, 0.00155538, 0.00155271, 0.00155004, 0.00154737, 0.0015447, 0.00154203, 0.00153937, 0.0015367, 0.00153404, 0.00153137, 0.00152871, 0.00152605, 0.00152339, 0.00152074, 0.00151808, 0.00151543, 0.00151277, 0.00151012, 0.00150747, 0.00150482, 0.00150217, 0.00149952, 0.00149688, 0.00149423, 0.00149159, 0.00148895, 0.00148631, 0.00148367, 0.00148103, 0.00147839, 0.00147576, 0.00147312, 0.00147049, 0.00146786, 0.00146523, 0.0014626, 0.00145998, 0.00145735, 0.00145473, 0.00145211, 0.00144949, 0.00144687, 0.00144425, 0.00144163, 0.00143902, 0.00143641, 0.00143379, 0.00143118, 0.00142858, 0.00142597, 0.00142336, 0.00142076, 0.00141816, 0.00141556, 0.00141296, 0.00141036, 0.00140776, 0.00140517, 0.00140258, 0.00139999, 0.0013974, 0.00139481, 0.00139222, 0.00138964, 0.00138705, 0.00138447, 0.00138189, 0.00137932, 0.00137674, 0.00137417, 0.00137159, 0.00136902, 0.00136645, 0.00136389, 0.00136132, 0.00135876, 0.00135619, 0.00135363, 0.00135107, 0.00134852, 0.00134596, 0.00134341, 0.00134086, 0.00133831, 0.00133576, 0.00133321, 0.00133067, 0.00132813, 0.00132559, 0.00132305, 0.00132051, 0.00131797, 0.00131544, 0.00131291, 0.00131038, 0.00130785, 0.00130533, 0.0013028, 0.00130028, 0.00129776, 0.00129524, 0.00129273, 0.00129021, 0.0012877, 0.00128519, 0.00128268, 0.00128018, 0.00127767, 0.00127517, 0.00127267, 0.00127017, 0.00126768, 0.00126518, 0.00126269, 0.0012602, 0.00125771, 0.00125522, 0.00125274, 0.00125026, 0.00124778, 0.0012453, 0.00124282, 0.00124035, 0.00123788, 0.00123541, 0.00123294, 0.00123048, 0.00122801, 0.00122555, 0.00122309, 0.00122063, 0.00121818, 0.00121573, 0.00121328, 0.00121083, 0.00120838, 0.00120594, 0.0012035, 0.00120106, 0.00119862, 0.00119618, 0.00119375, 0.00119132, 0.00118889, 0.00118646, 0.00118404, 0.00118162, 0.0011792, 0.00117678, 0.00117436, 0.00117195, 0.00116954, 0.00116713, 0.00116472, 0.00116232, 0.00115992, 0.00115752, 0.00115512, 0.00115273, 0.00115033, 0.00114794, 0.00114555, 0.00114317, 0.00114078, 0.0011384, 0.00113602, 0.00113365, 0.00113127, 0.0011289, 0.00112653, 0.00112417, 0.0011218, 0.00111944, 0.00111708, 0.00111472, 0.00111237, 0.00111001, 0.00110766, 0.00110531, 0.00110297, 0.00110063, 0.00109828, 0.00109595, 0.00109361, 0.00109128, 0.00108895, 0.00108662, 0.00108429, 0.00108197, 0.00107965, 0.00107733, 0.00107501, 0.0010727, 0.00107039, 0.00106808, 0.00106577, 0.00106347, 0.00106117, 0.00105887, 0.00105657, 0.00105428, 0.00105199, 0.0010497, 0.00104741, 0.00104513, 0.00104285, 0.00104057, 0.00103829, 0.00103602, 0.00103375, 0.00103148, 0.00102921, 0.00102695, 0.00102469, 0.00102243, 0.00102017, 0.00101792, 0.00101567, 0.00101342, 0.00101118, 0.00100894, 0.0010067, 0.00100446, 0.00100222, 0.00099999, 0.00099776, 0.00099553, 0.00099331, 0.00099109, 0.00098887, 0.00098665, 0.00098444, 0.00098223, 0.00098002, 0.00097781, 0.00097561, 0.00097341, 0.00097121, 0.00096902, 0.00096683, 0.00096464, 0.00096245, 0.00096027, 0.00095808, 0.0009559, 0.00095373, 0.00095156, 0.00094938, 0.00094722, 0.00094505, 0.00094289, 0.00094073, 0.00093857, 0.00093642, 0.00093427, 0.00093212, 0.00092997, 0.00092783, 0.00092569, 0.00092355, 0.00092141, 0.00091928, 0.00091715, 0.00091502, 0.0009129, 0.00091078, 0.00090866, 0.00090654, 0.00090443, 0.00090232, 0.00090021, 0.00089811, 0.00089601, 0.00089391, 0.00089181, 0.00088972, 0.00088763, 0.00088554, 0.00088345, 0.00088137, 0.00087929, 0.00087722, 0.00087514, 0.00087307, 0.000871, 0.00086894, 0.00086687, 0.00086482, 0.00086276, 0.0008607, 0.00085865, 0.00085661, 0.00085456, 0.00085252, 0.00085048, 0.00084844, 0.00084641, 0.00084438, 0.00084235, 0.00084032, 0.0008383, 0.00083628, 0.00083426, 0.00083225, 0.00083024, 0.00082823, 0.00082623, 0.00082422, 0.00082222, 0.00082023, 0.00081823, 0.00081624, 0.00081425, 0.00081227, 0.00081029, 0.00080831, 0.00080633, 0.00080436, 0.00080239, 0.00080042, 0.00079846, 0.00079649, 0.00079454, 0.00079258, 0.00079063, 0.00078868, 0.00078673, 0.00078479, 0.00078284, 0.00078091, 0.00077897, 0.00077704, 0.00077511, 0.00077318, 0.00077126, 0.00076934, 0.00076742, 0.00076551, 0.00076359, 0.00076168, 0.00075978, 0.00075788, 0.00075598, 0.00075408, 0.00075218, 0.00075029, 0.0007484, 0.00074652, 0.00074464, 0.00074276, 0.00074088, 0.00073901, 0.00073714, 0.00073527, 0.00073341, 0.00073154, 0.00072969, 0.00072783, 0.00072598, 0.00072413, 0.00072228, 0.00072044, 0.0007186, 0.00071676, 0.00071492, 0.00071309, 0.00071126, 0.00070944, 0.00070761, 0.00070579, 0.00070398, 0.00070216, 0.00070035, 0.00069854, 0.00069674, 0.00069494, 0.00069314, 0.00069134, 0.00068955, 0.00068776, 0.00068597, 0.00068419, 0.00068241, 0.00068063, 0.00067885, 0.00067708, 0.00067531, 0.00067355, 0.00067178, 0.00067002, 0.00066827, 0.00066651, 0.00066476, 0.00066301, 0.00066127, 0.00065953, 0.00065779, 0.00065605, 0.00065432, 0.00065259, 0.00065086, 0.00064914, 0.00064741, 0.0006457, 0.00064398, 0.00064227, 0.00064056, 0.00063885, 0.00063715, 0.00063545, 0.00063375, 0.00063206, 0.00063037, 0.00062868, 0.00062699, 0.00062531, 0.00062363, 0.00062196, 0.00062028, 0.00061861, 0.00061695, 0.00061528, 0.00061362, 0.00061196, 0.00061031, 0.00060866, 0.00060701, 0.00060536, 0.00060372, 0.00060208, 0.00060044, 0.00059881, 0.00059717, 0.00059555, 0.00059392, 0.0005923, 0.00059068, 0.00058906, 0.00058745, 0.00058584, 0.00058423, 0.00058263, 0.00058103, 0.00057943, 0.00057783, 0.00057624, 0.00057465, 0.00057307, 0.00057148, 0.0005699, 0.00056832, 0.00056675, 0.00056518, 0.00056361, 0.00056205, 0.00056048, 0.00055892, 0.00055737, 0.00055581, 0.00055426, 0.00055272, 0.00055117, 0.00054963, 0.00054809, 0.00054655, 0.00054502, 0.00054349, 0.00054197, 0.00054044, 0.00053892, 0.0005374, 0.00053589, 0.00053438, 0.00053287, 0.00053136, 0.00052986, 0.00052836, 0.00052686, 0.00052537, 0.00052388, 0.00052239, 0.0005209, 0.00051942, 0.00051794, 0.00051646, 0.00051499, 0.00051352, 0.00051205, 0.00051059, 0.00050913, 0.00050767, 0.00050621, 0.00050476, 0.00050331, 0.00050186, 0.00050042, 0.00049898, 0.00049754, 0.0004961, 0.00049467, 0.00049324, 0.00049182, 0.00049039, 0.00048897, 0.00048755, 0.00048614, 0.00048473, 0.00048332, 0.00048191, 0.00048051, 0.00047911, 0.00047771, 0.00047632, 0.00047493, 0.00047354, 0.00047215, 0.00047077, 0.00046939, 0.00046801, 0.00046664, 0.00046527, 0.0004639, 0.00046253, 0.00046117, 0.00045981, 0.00045845, 0.0004571, 0.00045575, 0.0004544, 0.00045306, 0.00045171, 0.00045037, 0.00044904, 0.0004477, 0.00044637, 0.00044504, 0.00044372, 0.0004424, 0.00044108, 0.00043976, 0.00043845, 0.00043714, 0.00043583, 0.00043452, 0.00043322, 0.00043192, 0.00043062, 0.00042933, 0.00042804, 0.00042675, 0.00042546, 0.00042418, 0.0004229, 0.00042163, 0.00042035, 0.00041908, 0.00041781, 0.00041655, 0.00041528, 0.00041402, 0.00041277, 0.00041151, 0.00041026, 0.00040901, 0.00040777, 0.00040652, 0.00040528, 0.00040404, 0.00040281, 0.00040158, 0.00040035, 0.00039912, 0.0003979, 0.00039668, 0.00039546, 0.00039424, 0.00039303, 0.00039182, 0.00039061, 0.00038941, 0.00038821, 0.00038701, 0.00038581, 0.00038462, 0.00038343, 0.00038224, 0.00038105, 0.00037987, 0.00037869, 0.00037752, 0.00037634, 0.00037517, 0.000374, 0.00037283, 0.00037167, 0.00037051, 0.00036935, 0.0003682, 0.00036705, 0.0003659, 0.00036475, 0.0003636, 0.00036246, 0.00036132, 0.00036019, 0.00035905, 0.00035792, 0.00035679, 0.00035567, 0.00035455, 0.00035343, 0.00035231, 0.00035119, 0.00035008, 0.00034897, 0.00034786, 0.00034676, 0.00034566, 0.00034456, 0.00034346, 0.00034237, 0.00034128, 0.00034019, 0.0003391, 0.00033802, 0.00033694, 0.00033586, 0.00033479, 0.00033371, 0.00033264, 0.00033158, 0.00033051, 0.00032945, 0.00032839, 0.00032733, 0.00032628, 0.00032523, 0.00032418, 0.00032313, 0.00032209, 0.00032104, 0.00032, 0.00031897, 0.00031793, 0.0003169, 0.00031587, 0.00031485, 0.00031382, 0.0003128, 0.00031179, 0.00031077, 0.00030976, 0.00030874, 0.00030774, 0.00030673, 0.00030573, 0.00030473, 0.00030373, 0.00030273, 0.00030174, 0.00030075, 0.00029976, 0.00029877, 0.00029779, 0.00029681, 0.00029583, 0.00029486, 0.00029388, 0.00029291, 0.00029194, 0.00029098, 0.00029002, 0.00028905, 0.0002881, 0.00028714, 0.00028619, 0.00028524, 0.00028429, 0.00028334, 0.0002824, 0.00028146, 0.00028052, 0.00027958, 0.00027865, 0.00027772, 0.00027679, 0.00027586, 0.00027494, 0.00027401, 0.0002731, 0.00027218, 0.00027126, 0.00027035, 0.00026944, 0.00026853, 0.00026763, 0.00026673, 0.00026583, 0.00026493, 0.00026403, 0.00026314, 0.00026225, 0.00026136, 0.00026047, 0.00025959, 0.00025871, 0.00025783, 0.00025695, 0.00025608, 0.00025521, 0.00025434, 0.00025347, 0.00025261, 0.00025174, 0.00025088, 0.00025003, 0.00024917, 0.00024832, 0.00024747, 0.00024662, 0.00024577, 0.00024493, 0.00024408, 0.00024324, 0.00024241, 0.00024157, 0.00024074, 0.00023991, 0.00023908, 0.00023826, 0.00023743, 0.00023661, 0.00023579, 0.00023497, 0.00023416, 0.00023335, 0.00023254, 0.00023173, 0.00023092, 0.00023012, 0.00022932, 0.00022852, 0.00022772, 0.00022693, 0.00022614, 0.00022535, 0.00022456, 0.00022377, 0.00022299, 0.00022221, 0.00022143, 0.00022065, 0.00021988, 0.0002191, 0.00021833, 0.00021756, 0.0002168, 0.00021603, 0.00021527, 0.00021451, 0.00021375, 0.000213, 0.00021225, 0.00021149, 0.00021075, 0.00021, 0.00020925, 0.00020851, 0.00020777, 0.00020703, 0.0002063, 0.00020556, 0.00020483, 0.0002041, 0.00020337, 0.00020265, 0.00020192, 0.0002012, 0.00020048, 0.00019976, 0.00019905, 0.00019833, 0.00019762, 0.00019691, 0.00019621, 0.0001955, 0.0001948, 0.0001941, 0.0001934, 0.0001927, 0.00019201, 0.00019131, 0.00019062, 0.00018993, 0.00018925, 0.00018856, 0.00018788, 0.0001872, 0.00018652, 0.00018584, 0.00018517, 0.00018449, 0.00018382, 0.00018315, 0.00018249, 0.00018182, 0.00018116, 0.0001805, 0.00017984, 0.00017918, 0.00017853, 0.00017787, 0.00017722, 0.00017657, 0.00017593, 0.00017528, 0.00017464, 0.000174, 0.00017336, 0.00017272, 0.00017208, 0.00017145, 0.00017082, 0.00017019, 0.00016956, 0.00016893, 0.00016831, 0.00016768, 0.00016706, 0.00016645, 0.00016583, 0.00016521, 0.0001646, 0.00016399, 0.00016338, 0.00016277, 0.00016217, 0.00016156, 0.00016096, 0.00016036, 0.00015976, 0.00015916, 0.00015857, 0.00015798, 0.00015739, 0.0001568, 0.00015621, 0.00015562, 0.00015504, 0.00015446, 0.00015388, 0.0001533, 0.00015272, 0.00015215, 0.00015157, 0.000151, 0.00015043, 0.00014987, 0.0001493, 0.00014874, 0.00014817, 0.00014761, 0.00014705, 0.0001465, 0.00014594, 0.00014539, 0.00014484, 0.00014429, 0.00014374, 0.00014319, 0.00014265, 0.0001421, 0.00014156, 0.00014102, 0.00014048, 0.00013995, 0.00013941, 0.00013888, 0.00013835, 0.00013782, 0.00013729, 0.00013676, 0.00013624, 0.00013571, 0.00013519, 0.00013467, 0.00013416, 0.00013364, 0.00013312, 0.00013261, 0.0001321, 0.00013159, 0.00013108, 0.00013058, 0.00013007, 0.00012957, 0.00012907, 0.00012857, 0.00012807, 0.00012757, 0.00012708, 0.00012658, 0.00012609, 0.0001256, 0.00012511, 0.00012462, 0.00012414, 0.00012365, 0.00012317, 0.00012269, 0.00012221, 0.00012173, 0.00012126, 0.00012078, 0.00012031, 0.00011984, 0.00011937, 0.0001189, 0.00011843, 0.00011797, 0.0001175, 0.00011704, 0.00011658, 0.00011612, 0.00011566, 0.00011521, 0.00011475, 0.0001143, 0.00011385, 0.0001134, 0.00011295, 0.0001125, 0.00011206, 0.00011161, 0.00011117, 0.00011073, 0.00011029, 0.00010985, 0.00010941, 0.00010898, 0.00010854, 0.00010811, 0.00010768, 0.00010725, 0.00010682, 0.0001064, 0.00010597, 0.00010555, 0.00010512, 0.0001047, 0.00010428, 0.00010387, 0.00010345, 0.00010303, 0.00010262, 0.00010221, 0.0001018, 0.00010139, 0.00010098, 0.00010057, 0.00010017, 0.00009976, 0.00009936, 0.00009896, 0.00009856, 0.00009816, 0.00009776, 0.00009737, 0.00009697, 0.00009658, 0.00009619, 0.0000958, 0.00009541, 0.00009502, 0.00009463, 0.00009425, 0.00009386, 0.00009348, 0.0000931, 0.00009272, 0.00009234, 0.00009196, 0.00009159, 0.00009121, 0.00009084, 0.00009047, 0.0000901, 0.00008973, 0.00008936, 0.00008899, 0.00008863, 0.00008826, 0.0000879, 0.00008754, 0.00008718, 0.00008682, 0.00008646, 0.0000861, 0.00008575, 0.0000854, 0.00008504, 0.00008469, 0.00008434, 0.00008399, 0.00008364, 0.0000833, 0.00008295, 0.00008261, 0.00008226, 0.00008192, 0.00008158, 0.00008124, 0.0000809, 0.00008057, 0.00008023, 0.0000799, 0.00007956, 0.00007923, 0.0000789, 0.00007857, 0.00007824, 0.00007791, 0.00007759, 0.00007726, 0.00007694, 0.00007662, 0.00007629, 0.00007597, 0.00007565, 0.00007534, 0.00007502, 0.0000747, 0.00007439, 0.00007407, 0.00007376, 0.00007345, 0.00007314, 0.00007283, 0.00007252, 0.00007222, 0.00007191, 0.00007161, 0.0000713, 0.000071, 0.0000707, 0.0000704, 0.0000701, 0.0000698, 0.00006951, 0.00006921, 0.00006891, 0.00006862, 0.00006833, 0.00006804, 0.00006775, 0.00006746, 0.00006717, 0.00006688, 0.0000666, 0.00006631, 0.00006603, 0.00006574, 0.00006546, 0.00006518, 0.0000649, 0.00006462, 0.00006434, 0.00006407, 0.00006379, 0.00006352, 0.00006324, 0.00006297, 0.0000627, 0.00006243, 0.00006216, 0.00006189, 0.00006162, 0.00006136, 0.00006109, 0.00006083, 0.00006056, 0.0000603, 0.00006004, 0.00005978, 0.00005952, 0.00005926, 0.000059, 0.00005874, 0.00005849, 0.00005823, 0.00005798, 0.00005773, 0.00005748, 0.00005722, 0.00005697, 0.00005673, 0.00005648, 0.00005623, 0.00005598, 0.00005574, 0.00005549, 0.00005525, 0.00005501, 0.00005477, 0.00005453, 0.00005429, 0.00005405, 0.00005381, 0.00005357, 0.00005334, 0.0000531, 0.00005287, 0.00005263, 0.0000524, 0.00005217, 0.00005194, 0.00005171, 0.00005148, 0.00005125, 0.00005102, 0.0000508, 0.00005057, 0.00005035, 0.00005012, 0.0000499, 0.00004968, 0.00004946, 0.00004924, 0.00004902, 0.0000488, 0.00004858, 0.00004837, 0.00004815, 0.00004794, 0.00004772, 0.00004751, 0.0000473, 0.00004708, 0.00004687, 0.00004666, 0.00004645, 0.00004624, 0.00004604, 0.00004583, 0.00004562, 0.00004542, 0.00004521, 0.00004501, 0.00004481, 0.00004461, 0.0000444, 0.0000442, 0.00004401, 0.00004381, 0.00004361, 0.00004341, 0.00004321, 0.00004302, 0.00004282, 0.00004263, 0.00004244, 0.00004224, 0.00004205, 0.00004186, 0.00004167, 0.00004148, 0.00004129, 0.0000411, 0.00004092, 0.00004073, 0.00004054, 0.00004036, 0.00004018, 0.00003999, 0.00003981, 0.00003963, 0.00003945, 0.00003927, 0.00003909, 0.00003891, 0.00003873, 0.00003855, 0.00003837, 0.0000382, 0.00003802, 0.00003785, 0.00003767, 0.0000375, 0.00003733, 0.00003715, 0.00003698, 0.00003681, 0.00003664, 0.00003647, 0.0000363, 0.00003614, 0.00003597, 0.0000358, 0.00003564, 0.00003547, 0.00003531, 0.00003514, 0.00003498, 0.00003482, 0.00003466, 0.0000345, 0.00003433, 0.00003417, 0.00003402, 0.00003386, 0.0000337, 0.00003354, 0.00003339, 0.00003323, 0.00003307, 0.00003292, 0.00003277, 0.00003261, 0.00003246, 0.00003231, 0.00003216, 0.00003201, 0.00003186, 0.00003171, 0.00003156, 0.00003141, 0.00003126, 0.00003111, 0.00003097, 0.00003082, 0.00003068, 0.00003053, 0.00003039, 0.00003024, 0.0000301, 0.00002996, 0.00002982, 0.00002968, 0.00002954, 0.0000294, 0.00002926, 0.00002912, 0.00002898, 0.00002884, 0.00002871, 0.00002857, 0.00002843, 0.0000283, 0.00002816, 0.00002803, 0.0000279, 0.00002776, 0.00002763, 0.0000275, 0.00002737, 0.00002724, 0.00002711, 0.00002698, 0.00002685, 0.00002672, 0.00002659] }, { "type": "double", "attributes": {}, "value": [8.35328138] }, { "type": "integer", "attributes": {}, "value": [20] }, { "type": "language", "attributes": {}, "value": ["density.default(x = MC.n, n = 10000)"] }, { "type": "character", "attributes": {}, "value": ["MC.n"] }, { "type": "logical", "attributes": {}, "value": [false] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["statistic", "parameter", "p.value", "conf.int", "estimate", "null.value", "stderr", "alternative", "method", "data.name"] }, "class": { "type": "character", "attributes": {}, "value": ["htest"] } }, "value": [ { "type": "double", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["t"] } }, "value": [10.6877305] }, { "type": "double", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["df"] } }, "value": [19] }, { "type": "double", "attributes": {}, "value": [1.7840091e-09] }, { "type": "double", "attributes": { "conf.level": { "type": "double", "attributes": {}, "value": [0.95] } }, "value": [40.13912217, 59.68886449] }, { "type": "double", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["mean of x"] } }, "value": [49.91399333] }, { "type": "double", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["mean"] } }, "value": [0] }, { "type": "double", "attributes": {}, "value": [4.67021444] }, { "type": "character", "attributes": {}, "value": ["two.sided"] }, { "type": "character", "attributes": {}, "value": ["One Sample t-test"] }, { "type": "character", "attributes": {}, "value": ["MC.n"] } ] }, { "type": "double", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["5%", "95%"] } }, "value": [22.62266298, 88.89161179] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_AliquotSize"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["grain.size", "sample.diameter", "MC.iter", "plot", "verbose"] } }, "value": [ { "type": "language", "attributes": {}, "value": ["c(80, 150)"] }, { "type": "double", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [20] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "logical", "attributes": {}, "value": [true] } ] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "MC"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["grain.size", "sample.diameter", "packing.density", "n.grains", "grains.counted"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [150, 150, 150] }, { "type": "double", "attributes": {}, "value": [8, 8, 8] }, { "type": "double", "attributes": {}, "value": [0.88769531, 0.8128125, 1.0125] }, { "type": "double", "attributes": {}, "value": ["NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [2525, 2312, 2880] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["estimates", "statistics", "kde", "t.test", "quantile"] } }, "value": [ { "type": "NULL" }, { "type": "NULL" }, { "type": "NULL" }, { "type": "NULL" }, { "type": "NULL" } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_AliquotSize"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["args"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["grain.size", "sample.diameter", "grains.counted", "MC.iter", "plot", "verbose"] } }, "value": [ { "type": "language", "attributes": {}, "value": ["c(100, 200)"] }, { "type": "double", "attributes": {}, "value": [8] }, { "type": "language", "attributes": {}, "value": ["c(2525, 2312, 2880)"] }, { "type": "double", "attributes": {}, "value": [20] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "logical", "attributes": {}, "value": [false] } ] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/merge_RLum.Data.Curve.md0000644000176200001440000072001714762554470023511 0ustar liggesusers# snapshot tests { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1180, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["", "temp.matrix"] } ] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, 35, 32.5, 34, 31.5, 35, 29.5, 29.5, 35, 40, 34.5, 32.5, 34.5, 29.5, 39.5, 31.5, 36.5, 35.5, 31, 33, 30.5, 34, 33, 39.5, 34, 27, 33, 31.5, 26.5, 38, 26.5, 28.5, 39, 35.5, 32.5, 19.5, 36, 31, 33.5, 35.5, 32, 32.5, 30.5, 36, 36.5, 34, 33, 39, 34, 27, 37, 34, 37.5, 31.5, 31, 29.5, 32, 40, 36, 45, 36.5, 33, 33, 27, 30.5, 44.5, 31, 27.5, 37, 27, 40, 27, 30.5, 34.5, 29, 32.5, 31, 26.5, 37.5, 36, 39, 34, 32, 37, 31, 32, 29.5, 32.5, 27, 38, 29, 35.5, 36.5, 34, 33, 26.5, 30.5, 31, 29.5, 24.5, 35.5, 27, 35, 26.5, 27.5, 29, 29, 22.5, 31, 27, 30.5, 35, 25.5, 30, 34, 27.5, 25, 35.5, 28.5, 29, 29.5, 40, 30, 42.5, 35, 23.5, 32, 33.5, 31, 37.5, 31, 30, 41, 28.5, 27.5, 37, 29, 30.5, 33.5, 28.5, 34, 36.5, 28.5, 32.5, 31, 38.5, 40, 36.5, 38, 38.5, 30.5, 43, 34.5, 42.5, 44.5, 35.5, 40.5, 43.5, 33, 45, 41.5, 40, 38.5, 40.5, 39, 41, 40.5, 42, 35, 40, 40.5, 44.5, 38.5, 45.5, 39.5, 38.5, 53.5, 43.5, 48, 55, 45, 59, 48, 47.5, 60, 55, 56, 54, 65.5, 63, 57.5, 61.5, 50.5, 49.5, 60.5, 71, 72.5, 64, 63.5, 59.5, 73, 70.5, 72.5, 68, 72.5, 86, 78.5, 71.5, 75, 94.5, 76.5, 82, 88, 93.5, 85, 76.5, 78, 79, 89, 109, 83.5, 99, 98, 107.5, 84, 107.5, 112.5, 107.5, 126, 101, 113, 117.5, 126.5, 129, 116, 133, 131, 132, 124.5, 124.5, 145, 134.5, 133.5, 134, 138.5, 158.5, 148.5, 149, 151, 170, 151.5, 153, 153, 167.5, 172.5, 157.5, 190.5, 182.5, 179, 181, 194.5, 204.5, 203, 215.5, 176.5, 200.5, 213, 229.5, 216.5, 225.5, 225, 240.5, 241, 257, 237, 275.5, 246, 260, 282.5, 261.5, 276.5, 291.5, 300.5, 307, 290.5, 298, 326, 303.5, 304.5, 324, 302.5, 330.5, 342, 329, 353, 365, 344, 353.5, 372.5, 373, 396.5, 390.5, 375.5, 401, 422.5, 393.5, 375.5, 424, 439, 430, 444, 497.5, 455, 480, 500, 465, 503, 526, 491, 497.5, 522, 508, 547, 491, 518.5, 548.5, 559, 541, 573, 567.5, 582, 596, 601.5, 604.5, 601.5, 611.5, 627.5, 645.5, 645, 641, 633, 674.5, 654.5, 666.5, 678, 693, 704.5, 693, 684, 694.5, 674, 735.5, 703.5, 718, 748, 740, 750, 730, 730, 787, 766, 781, 752.5, 734.5, 733, 773.5, 795, 745, 783.5, 771, 772, 759.5, 769.5, 781.5, 801.5, 771.5, 725.5, 773.5, 757, 786, 744, 738.5, 764.5, 755.5, 721.5, 730, 721, 726, 731, 709.5, 710, 702, 709, 698, 704.5, 639.5, 666, 677.5, 688, 633.5, 675.5, 619.5, 622.5, 614, 615, 581.5, 562.5, 605.5, 560.5, 556.5, 572, 541, 546, 515, 499, 502, 471.5, 477.5, 446, 453.5, 440, 434, 394, 406, 385.5, 364, 363.5, 345, 335.5, 336, 308.5, 304.5, 307, 287.5, 252, 261.5, 251, 264, 225.5, 230, 192.5, 211.5, 198.5, 180, 158, 181.5, 172, 172, 145.5, 143, 145, 134, 134, 130, 119, 114, 108.5, 95, 88.5, 84.5, 87.5, 81, 92, 80.5, 68.5, 68, 79, 56, 58, 63, 58.5, 54, 57, 49, 52, 54, 42.5, 42, 41.5, 55, 43.5, 33, 43.5, 32, 37.5, 40.5, 39, 38.5, 30, 45, 34, 43, 42.5, 37.5, 39.5, 33, 35.5, 40, 39.5, 32, 36, 29.5, 29, 35.5, 32.5, 36, 37.5, 29, 27.5, 29.5, 31.5, 37.5, 32, 37, 33.5, 29, 30.5, 39, 26.5, 33.5, 36.5, 33, 30.5, 25, 28.5, 17.5, 36, 27, 32.5, 34.5, 30, 26.5, 29.5, 39.5, 24.5, 27, 33.5, 30, 29, 34.5, 41.5, 38, 33.5, 30.5, 26.5, 26, 27, 39, 32.5, 23, 29, 24, 34, 37.5, 33, 24, 28, 33, 33.5, 23.5, 36, 32, 28, 30.5, 29.5, 24, 28, 26, 31, 33.5, 25, 24.5, 18, 23.5, 26.5, 27, 26.5, 22.5, 27, 28, 27.5, 26, 25.5, 32, 29.5, 25, 24.5, 30, 19.5, 29, 28, 25, 23.5, 24.5, 17.5, 23, 31.5, 25, 29, 25, 25, 31, 29, 22, 21, 27.5, 28, 19, 24, 17, 32.5, 18, 28.5, 25, 24.5, 35, 23.5, 27.5, 25.5, 31, 21, 25.5, 22.5, 25, 24, 22, 26.5, 27, 18, 19, 23, 23, 22.5, 24, 28.5, 21.5, 20, 23.5, 27.5, 26.5, 23.5, 23, 24, 26.5, 17.5, 27.5, 30.5, 22, 29.5, 27.5, 26.5, 26, 32, 28.5, 24, 31.5, 25.5, 18.5, 20, 23, 27, 30, 21, 29, 28, 22, 24.5, 17.5, 28, 30.5, 23, 30.5, 26.5, 28.5, 26.5, 28, 31.5, 17, 20.5, 27, 18, 24.5, 28.5, 31, 18.5, 24.5, 25, 21.5, 30, 25, 14, 28.5, 24, 24, 31, 28, 29, 24.5, 24.5, 25.5, 30.5, 25, 24, 26, 27.5, 21.5, 26.5, 19, 29, 37.5, 23.5, 28, 18, 22, 25, 22.5, 26.5, 27.5, 24, 32.5, 24, 23, 39, 23, 34, 34, 23, 29, 25.5, 25.5, 24, 29, 23, 24, 25.5, 39, 22.5, 28.5, 32.5, 30, 32.5, 25.5, 32, 35, 28, 33, 37.5, 32, 31.5, 34.5, 44.5, 36, 35, 26, 26, 21, 32.5, 30, 31, 44.5, 27.5, 33.5, 33, 34, 40, 38.5, 32, 38.5, 41, 32, 29, 38.5, 34.5, 32, 40, 36, 32, 35.5, 39, 37, 40.5, 35, 44, 45, 41, 34, 37.5, 35.5, 35.5, 40, 35.5, 45, 40, 48.5, 44.5, 39.5, 36, 38, 44, 36.5, 45, 33.5, 40.5, 38.5, 39.5, 45, 42.5, 41, 35.5, 45, 41.5, 47, 40, 42, 52, 47.5, 37.5, 40, 44, 50, 47, 38.5, 49.5, 43, 35, 45.5, 50, 41, 49.5, 51.5, 52, 56.5, 54.5, 49, 42, 51, 50.5, 40.5, 46, 52.5, 38.5, 52.5, 46, 40.5, 45, 58, 57, 47.5, 48.5, 48.5, 57.5, 51, 46, 51, 51, 47.5, 45.5, 43.5, 53, 41, 51, 51.5, 51.5, 53, 54.5, 49.5, 62.5, 51, 52.5, 49, 48, 47, 54.5, 57.5, 59, 46.5, 50, 50, 54.5, 58.5, 47, 47.5, 49.5, 57, 54, 44, 49, 41.5, 51, 54, 56.5, 38, 51.5, 59.5, 62, 48.5, 51, 51, 47.5, 58, 51.5, 47.5, 38, 44, 52.5, 41, 52.5, 44, 42, 35, 50, 38, 57, 41.5, 45.5, 48, 41, 42, 43, 43.5, 41.5, 40.5, 45, 33, 42.5, 46, 43, 45, 42, 50.5, 49, 37, 43, 30.5, 35.5, 38.5, 37.5, 40, 38, 47.5, 44.5, 38, 37, 47.5, 40, 34.5, 43, 45.5, 39.5, 38.5, 32.5, 41.5, 33.5, 32, 33.5, 34, 40.5, 25.5, 35, 36, 34.5, 27.5, 37.5, 34.5, 31, 33.5, 28.5, 30.5, 33, 30.5, 25, 28.5, 35.5, 30, 25.5, 29.5, 30, 27.5, 29.5, 33.5, 38, 33.5, 24, 31, 35.5, 29.5, 26, 34.5, 25.5, 30, 28, 28.5, 30.5, 30.5, 22, 31, 25.5, 34, 26, 22, 23, 27, 23.5, 26.5, 26, 28, 29.5, 26, 29.5, 27, 30.5, 24, 23.5, 29.5, 35, 26, 17.5, 32.5, 28, 28, 33.5, 26.5, 23, 16, 26, 29.5, 23, 29, 25.5, 21.5, 23.5, 26, 25.5, 20, 24, 23.5, 23, 22.5, 28.5, 22.5, 29, 22, 26.5, 30, 22.5, 19.5, 24.5, 26.5, 26.5, 27, 19.5, 22, 23, 28, 39.5, 30, 24.5, 25.5, 28, 26.5, 27, 21.5, 25, 31.5, 28.5, 32, 21.5, 20, 24, 32, 23, 25, 23.5, 22.5, 19.5, 26.5, 18.5, 22, 25.5, 26, 25.5, 24, 22.5, 24.5, 20.5, 23.5, 25.5, 23.5, 18, 30, 19.5, 27, 23.5, 25.5, 21, 32.5, 26, 34, 24.5, 20, 26, 27.5, 24, 33, 31.5, 26, 20.5, 25.5, 27.5, 23.5, 29, 26.5, 22, 32, 30.5, 23, 16, 29, 26, 25, 34, 23, 30.5, 28, 24.5, 26.5, 30, 29, 27.5, 28.5, 21.5, 34, 31.5, 35, 27.5, 23.5, 26.5, 26.5, 32.5, 25, 27.5, 32.5, 31, 28, 32.5, 26.5, 31, 30.5, 21.5, 30.5, 23, 25.5, 32.5, 19.5, 24, 21.5, 27, 31, 21.5, 30.5, 22, 27, 21.5, 28, 21.5, 21, 23, 33, 19, 22, 32, 29.5, 27.5, 25.5, 23.5, 29, 31.5, 25, 25.5, 28, 24.5] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Curve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1180, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["", "temp.matrix"] } ] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, 70, 65, 68, 63, 70, 59, 59, 70, 80, 69, 65, 69, 59, 79, 63, 73, 71, 62, 66, 61, 68, 66, 79, 68, 54, 66, 63, 53, 76, 53, 57, 78, 71, 65, 39, 72, 62, 67, 71, 64, 65, 61, 72, 73, 68, 66, 78, 68, 54, 74, 68, 75, 63, 62, 59, 64, 80, 72, 90, 73, 66, 66, 54, 61, 89, 62, 55, 74, 54, 80, 54, 61, 69, 58, 65, 62, 53, 75, 72, 78, 68, 64, 74, 62, 64, 59, 65, 54, 76, 58, 71, 73, 68, 66, 53, 61, 62, 59, 49, 71, 54, 70, 53, 55, 58, 58, 45, 62, 54, 61, 70, 51, 60, 68, 55, 50, 71, 57, 58, 59, 80, 60, 85, 70, 47, 64, 67, 62, 75, 62, 60, 82, 57, 55, 74, 58, 61, 67, 57, 68, 73, 57, 65, 62, 77, 80, 73, 76, 77, 61, 86, 69, 85, 89, 71, 81, 87, 66, 90, 83, 80, 77, 81, 78, 82, 81, 84, 70, 80, 81, 89, 77, 91, 79, 77, 107, 87, 96, 110, 90, 118, 96, 95, 120, 110, 112, 108, 131, 126, 115, 123, 101, 99, 121, 142, 145, 128, 127, 119, 146, 141, 145, 136, 145, 172, 157, 143, 150, 189, 153, 164, 176, 187, 170, 153, 156, 158, 178, 218, 167, 198, 196, 215, 168, 215, 225, 215, 252, 202, 226, 235, 253, 258, 232, 266, 262, 264, 249, 249, 290, 269, 267, 268, 277, 317, 297, 298, 302, 340, 303, 306, 306, 335, 345, 315, 381, 365, 358, 362, 389, 409, 406, 431, 353, 401, 426, 459, 433, 451, 450, 481, 482, 514, 474, 551, 492, 520, 565, 523, 553, 583, 601, 614, 581, 596, 652, 607, 609, 648, 605, 661, 684, 658, 706, 730, 688, 707, 745, 746, 793, 781, 751, 802, 845, 787, 751, 848, 878, 860, 888, 995, 910, 960, 1000, 930, 1006, 1052, 982, 995, 1044, 1016, 1094, 982, 1037, 1097, 1118, 1082, 1146, 1135, 1164, 1192, 1203, 1209, 1203, 1223, 1255, 1291, 1290, 1282, 1266, 1349, 1309, 1333, 1356, 1386, 1409, 1386, 1368, 1389, 1348, 1471, 1407, 1436, 1496, 1480, 1500, 1460, 1460, 1574, 1532, 1562, 1505, 1469, 1466, 1547, 1590, 1490, 1567, 1542, 1544, 1519, 1539, 1563, 1603, 1543, 1451, 1547, 1514, 1572, 1488, 1477, 1529, 1511, 1443, 1460, 1442, 1452, 1462, 1419, 1420, 1404, 1418, 1396, 1409, 1279, 1332, 1355, 1376, 1267, 1351, 1239, 1245, 1228, 1230, 1163, 1125, 1211, 1121, 1113, 1144, 1082, 1092, 1030, 998, 1004, 943, 955, 892, 907, 880, 868, 788, 812, 771, 728, 727, 690, 671, 672, 617, 609, 614, 575, 504, 523, 502, 528, 451, 460, 385, 423, 397, 360, 316, 363, 344, 344, 291, 286, 290, 268, 268, 260, 238, 228, 217, 190, 177, 169, 175, 162, 184, 161, 137, 136, 158, 112, 116, 126, 117, 108, 114, 98, 104, 108, 85, 84, 83, 110, 87, 66, 87, 64, 75, 81, 78, 77, 60, 90, 68, 86, 85, 75, 79, 66, 71, 80, 79, 64, 72, 59, 58, 71, 65, 72, 75, 58, 55, 59, 63, 75, 64, 74, 67, 58, 61, 78, 53, 67, 73, 66, 61, 50, 57, 35, 72, 54, 65, 69, 60, 53, 59, 79, 49, 54, 67, 60, 58, 69, 83, 76, 67, 61, 53, 52, 54, 78, 65, 46, 58, 48, 68, 75, 66, 48, 56, 66, 67, 47, 72, 64, 56, 61, 59, 48, 56, 52, 62, 67, 50, 49, 36, 47, 53, 54, 53, 45, 54, 56, 55, 52, 51, 64, 59, 50, 49, 60, 39, 58, 56, 50, 47, 49, 35, 46, 63, 50, 58, 50, 50, 62, 58, 44, 42, 55, 56, 38, 48, 34, 65, 36, 57, 50, 49, 70, 47, 55, 51, 62, 42, 51, 45, 50, 48, 44, 53, 54, 36, 38, 46, 46, 45, 48, 57, 43, 40, 47, 55, 53, 47, 46, 48, 53, 35, 55, 61, 44, 59, 55, 53, 52, 64, 57, 48, 63, 51, 37, 40, 46, 54, 60, 42, 58, 56, 44, 49, 35, 56, 61, 46, 61, 53, 57, 53, 56, 63, 34, 41, 54, 36, 49, 57, 62, 37, 49, 50, 43, 60, 50, 28, 57, 48, 48, 62, 56, 58, 49, 49, 51, 61, 50, 48, 52, 55, 43, 53, 38, 58, 75, 47, 56, 36, 44, 50, 45, 53, 55, 48, 65, 48, 46, 78, 46, 68, 68, 46, 58, 51, 51, 48, 58, 46, 48, 51, 78, 45, 57, 65, 60, 65, 51, 64, 70, 56, 66, 75, 64, 63, 69, 89, 72, 70, 52, 52, 42, 65, 60, 62, 89, 55, 67, 66, 68, 80, 77, 64, 77, 82, 64, 58, 77, 69, 64, 80, 72, 64, 71, 78, 74, 81, 70, 88, 90, 82, 68, 75, 71, 71, 80, 71, 90, 80, 97, 89, 79, 72, 76, 88, 73, 90, 67, 81, 77, 79, 90, 85, 82, 71, 90, 83, 94, 80, 84, 104, 95, 75, 80, 88, 100, 94, 77, 99, 86, 70, 91, 100, 82, 99, 103, 104, 113, 109, 98, 84, 102, 101, 81, 92, 105, 77, 105, 92, 81, 90, 116, 114, 95, 97, 97, 115, 102, 92, 102, 102, 95, 91, 87, 106, 82, 102, 103, 103, 106, 109, 99, 125, 102, 105, 98, 96, 94, 109, 115, 118, 93, 100, 100, 109, 117, 94, 95, 99, 114, 108, 88, 98, 83, 102, 108, 113, 76, 103, 119, 124, 97, 102, 102, 95, 116, 103, 95, 76, 88, 105, 82, 105, 88, 84, 70, 100, 76, 114, 83, 91, 96, 82, 84, 86, 87, 83, 81, 90, 66, 85, 92, 86, 90, 84, 101, 98, 74, 86, 61, 71, 77, 75, 80, 76, 95, 89, 76, 74, 95, 80, 69, 86, 91, 79, 77, 65, 83, 67, 64, 67, 68, 81, 51, 70, 72, 69, 55, 75, 69, 62, 67, 57, 61, 66, 61, 50, 57, 71, 60, 51, 59, 60, 55, 59, 67, 76, 67, 48, 62, 71, 59, 52, 69, 51, 60, 56, 57, 61, 61, 44, 62, 51, 68, 52, 44, 46, 54, 47, 53, 52, 56, 59, 52, 59, 54, 61, 48, 47, 59, 70, 52, 35, 65, 56, 56, 67, 53, 46, 32, 52, 59, 46, 58, 51, 43, 47, 52, 51, 40, 48, 47, 46, 45, 57, 45, 58, 44, 53, 60, 45, 39, 49, 53, 53, 54, 39, 44, 46, 56, 79, 60, 49, 51, 56, 53, 54, 43, 50, 63, 57, 64, 43, 40, 48, 64, 46, 50, 47, 45, 39, 53, 37, 44, 51, 52, 51, 48, 45, 49, 41, 47, 51, 47, 36, 60, 39, 54, 47, 51, 42, 65, 52, 68, 49, 40, 52, 55, 48, 66, 63, 52, 41, 51, 55, 47, 58, 53, 44, 64, 61, 46, 32, 58, 52, 50, 68, 46, 61, 56, 49, 53, 60, 58, 55, 57, 43, 68, 63, 70, 55, 47, 53, 53, 65, 50, 55, 65, 62, 56, 65, 53, 62, 61, 43, 61, 46, 51, 65, 39, 48, 43, 54, 62, 43, 61, 44, 54, 43, 56, 43, 42, 46, 66, 38, 44, 64, 59, 55, 51, 47, 58, 63, 50, 51, 56, 49] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Curve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220404225880"] }, { "type": "character", "attributes": {}, "value": ["20140222040423"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1180, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["", "temp.matrix"] } ] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, 35, 32.5, 34, 31.5, 35, 29.5, 29.5, 35, 40, 34.5, 32.5, 34.5, 29.5, 39.5, 31.5, 36.5, 35.5, 31, 33, 30.5, 34, 33, 39.5, 34, 27, 33, 31.5, 26.5, 38, 26.5, 28.5, 39, 35.5, 32.5, 19.5, 36, 31, 33.5, 35.5, 32, 32.5, 30.5, 36, 36.5, 34, 33, 39, 34, 27, 37, 34, 37.5, 31.5, 31, 29.5, 32, 40, 36, 45, 36.5, 33, 33, 27, 30.5, 44.5, 31, 27.5, 37, 27, 40, 27, 30.5, 34.5, 29, 32.5, 31, 26.5, 37.5, 36, 39, 34, 32, 37, 31, 32, 29.5, 32.5, 27, 38, 29, 35.5, 36.5, 34, 33, 26.5, 30.5, 31, 29.5, 24.5, 35.5, 27, 35, 26.5, 27.5, 29, 29, 22.5, 31, 27, 30.5, 35, 25.5, 30, 34, 27.5, 25, 35.5, 28.5, 29, 29.5, 40, 30, 42.5, 35, 23.5, 32, 33.5, 31, 37.5, 31, 30, 41, 28.5, 27.5, 37, 29, 30.5, 33.5, 28.5, 34, 36.5, 28.5, 32.5, 31, 38.5, 40, 36.5, 38, 38.5, 30.5, 43, 34.5, 42.5, 44.5, 35.5, 40.5, 43.5, 33, 45, 41.5, 40, 38.5, 40.5, 39, 41, 40.5, 42, 35, 40, 40.5, 44.5, 38.5, 45.5, 39.5, 38.5, 53.5, 43.5, 48, 55, 45, 59, 48, 47.5, 60, 55, 56, 54, 65.5, 63, 57.5, 61.5, 50.5, 49.5, 60.5, 71, 72.5, 64, 63.5, 59.5, 73, 70.5, 72.5, 68, 72.5, 86, 78.5, 71.5, 75, 94.5, 76.5, 82, 88, 93.5, 85, 76.5, 78, 79, 89, 109, 83.5, 99, 98, 107.5, 84, 107.5, 112.5, 107.5, 126, 101, 113, 117.5, 126.5, 129, 116, 133, 131, 132, 124.5, 124.5, 145, 134.5, 133.5, 134, 138.5, 158.5, 148.5, 149, 151, 170, 151.5, 153, 153, 167.5, 172.5, 157.5, 190.5, 182.5, 179, 181, 194.5, 204.5, 203, 215.5, 176.5, 200.5, 213, 229.5, 216.5, 225.5, 225, 240.5, 241, 257, 237, 275.5, 246, 260, 282.5, 261.5, 276.5, 291.5, 300.5, 307, 290.5, 298, 326, 303.5, 304.5, 324, 302.5, 330.5, 342, 329, 353, 365, 344, 353.5, 372.5, 373, 396.5, 390.5, 375.5, 401, 422.5, 393.5, 375.5, 424, 439, 430, 444, 497.5, 455, 480, 500, 465, 503, 526, 491, 497.5, 522, 508, 547, 491, 518.5, 548.5, 559, 541, 573, 567.5, 582, 596, 601.5, 604.5, 601.5, 611.5, 627.5, 645.5, 645, 641, 633, 674.5, 654.5, 666.5, 678, 693, 704.5, 693, 684, 694.5, 674, 735.5, 703.5, 718, 748, 740, 750, 730, 730, 787, 766, 781, 752.5, 734.5, 733, 773.5, 795, 745, 783.5, 771, 772, 759.5, 769.5, 781.5, 801.5, 771.5, 725.5, 773.5, 757, 786, 744, 738.5, 764.5, 755.5, 721.5, 730, 721, 726, 731, 709.5, 710, 702, 709, 698, 704.5, 639.5, 666, 677.5, 688, 633.5, 675.5, 619.5, 622.5, 614, 615, 581.5, 562.5, 605.5, 560.5, 556.5, 572, 541, 546, 515, 499, 502, 471.5, 477.5, 446, 453.5, 440, 434, 394, 406, 385.5, 364, 363.5, 345, 335.5, 336, 308.5, 304.5, 307, 287.5, 252, 261.5, 251, 264, 225.5, 230, 192.5, 211.5, 198.5, 180, 158, 181.5, 172, 172, 145.5, 143, 145, 134, 134, 130, 119, 114, 108.5, 95, 88.5, 84.5, 87.5, 81, 92, 80.5, 68.5, 68, 79, 56, 58, 63, 58.5, 54, 57, 49, 52, 54, 42.5, 42, 41.5, 55, 43.5, 33, 43.5, 32, 37.5, 40.5, 39, 38.5, 30, 45, 34, 43, 42.5, 37.5, 39.5, 33, 35.5, 40, 39.5, 32, 36, 29.5, 29, 35.5, 32.5, 36, 37.5, 29, 27.5, 29.5, 31.5, 37.5, 32, 37, 33.5, 29, 30.5, 39, 26.5, 33.5, 36.5, 33, 30.5, 25, 28.5, 17.5, 36, 27, 32.5, 34.5, 30, 26.5, 29.5, 39.5, 24.5, 27, 33.5, 30, 29, 34.5, 41.5, 38, 33.5, 30.5, 26.5, 26, 27, 39, 32.5, 23, 29, 24, 34, 37.5, 33, 24, 28, 33, 33.5, 23.5, 36, 32, 28, 30.5, 29.5, 24, 28, 26, 31, 33.5, 25, 24.5, 18, 23.5, 26.5, 27, 26.5, 22.5, 27, 28, 27.5, 26, 25.5, 32, 29.5, 25, 24.5, 30, 19.5, 29, 28, 25, 23.5, 24.5, 17.5, 23, 31.5, 25, 29, 25, 25, 31, 29, 22, 21, 27.5, 28, 19, 24, 17, 32.5, 18, 28.5, 25, 24.5, 35, 23.5, 27.5, 25.5, 31, 21, 25.5, 22.5, 25, 24, 22, 26.5, 27, 18, 19, 23, 23, 22.5, 24, 28.5, 21.5, 20, 23.5, 27.5, 26.5, 23.5, 23, 24, 26.5, 17.5, 27.5, 30.5, 22, 29.5, 27.5, 26.5, 26, 32, 28.5, 24, 31.5, 25.5, 18.5, 20, 23, 27, 30, 21, 29, 28, 22, 24.5, 17.5, 28, 30.5, 23, 30.5, 26.5, 28.5, 26.5, 28, 31.5, 17, 20.5, 27, 18, 24.5, 28.5, 31, 18.5, 24.5, 25, 21.5, 30, 25, 14, 28.5, 24, 24, 31, 28, 29, 24.5, 24.5, 25.5, 30.5, 25, 24, 26, 27.5, 21.5, 26.5, 19, 29, 37.5, 23.5, 28, 18, 22, 25, 22.5, 26.5, 27.5, 24, 32.5, 24, 23, 39, 23, 34, 34, 23, 29, 25.5, 25.5, 24, 29, 23, 24, 25.5, 39, 22.5, 28.5, 32.5, 30, 32.5, 25.5, 32, 35, 28, 33, 37.5, 32, 31.5, 34.5, 44.5, 36, 35, 26, 26, 21, 32.5, 30, 31, 44.5, 27.5, 33.5, 33, 34, 40, 38.5, 32, 38.5, 41, 32, 29, 38.5, 34.5, 32, 40, 36, 32, 35.5, 39, 37, 40.5, 35, 44, 45, 41, 34, 37.5, 35.5, 35.5, 40, 35.5, 45, 40, 48.5, 44.5, 39.5, 36, 38, 44, 36.5, 45, 33.5, 40.5, 38.5, 39.5, 45, 42.5, 41, 35.5, 45, 41.5, 47, 40, 42, 52, 47.5, 37.5, 40, 44, 50, 47, 38.5, 49.5, 43, 35, 45.5, 50, 41, 49.5, 51.5, 52, 56.5, 54.5, 49, 42, 51, 50.5, 40.5, 46, 52.5, 38.5, 52.5, 46, 40.5, 45, 58, 57, 47.5, 48.5, 48.5, 57.5, 51, 46, 51, 51, 47.5, 45.5, 43.5, 53, 41, 51, 51.5, 51.5, 53, 54.5, 49.5, 62.5, 51, 52.5, 49, 48, 47, 54.5, 57.5, 59, 46.5, 50, 50, 54.5, 58.5, 47, 47.5, 49.5, 57, 54, 44, 49, 41.5, 51, 54, 56.5, 38, 51.5, 59.5, 62, 48.5, 51, 51, 47.5, 58, 51.5, 47.5, 38, 44, 52.5, 41, 52.5, 44, 42, 35, 50, 38, 57, 41.5, 45.5, 48, 41, 42, 43, 43.5, 41.5, 40.5, 45, 33, 42.5, 46, 43, 45, 42, 50.5, 49, 37, 43, 30.5, 35.5, 38.5, 37.5, 40, 38, 47.5, 44.5, 38, 37, 47.5, 40, 34.5, 43, 45.5, 39.5, 38.5, 32.5, 41.5, 33.5, 32, 33.5, 34, 40.5, 25.5, 35, 36, 34.5, 27.5, 37.5, 34.5, 31, 33.5, 28.5, 30.5, 33, 30.5, 25, 28.5, 35.5, 30, 25.5, 29.5, 30, 27.5, 29.5, 33.5, 38, 33.5, 24, 31, 35.5, 29.5, 26, 34.5, 25.5, 30, 28, 28.5, 30.5, 30.5, 22, 31, 25.5, 34, 26, 22, 23, 27, 23.5, 26.5, 26, 28, 29.5, 26, 29.5, 27, 30.5, 24, 23.5, 29.5, 35, 26, 17.5, 32.5, 28, 28, 33.5, 26.5, 23, 16, 26, 29.5, 23, 29, 25.5, 21.5, 23.5, 26, 25.5, 20, 24, 23.5, 23, 22.5, 28.5, 22.5, 29, 22, 26.5, 30, 22.5, 19.5, 24.5, 26.5, 26.5, 27, 19.5, 22, 23, 28, 39.5, 30, 24.5, 25.5, 28, 26.5, 27, 21.5, 25, 31.5, 28.5, 32, 21.5, 20, 24, 32, 23, 25, 23.5, 22.5, 19.5, 26.5, 18.5, 22, 25.5, 26, 25.5, 24, 22.5, 24.5, 20.5, 23.5, 25.5, 23.5, 18, 30, 19.5, 27, 23.5, 25.5, 21, 32.5, 26, 34, 24.5, 20, 26, 27.5, 24, 33, 31.5, 26, 20.5, 25.5, 27.5, 23.5, 29, 26.5, 22, 32, 30.5, 23, 16, 29, 26, 25, 34, 23, 30.5, 28, 24.5, 26.5, 30, 29, 27.5, 28.5, 21.5, 34, 31.5, 35, 27.5, 23.5, 26.5, 26.5, 32.5, 25, 27.5, 32.5, 31, 28, 32.5, 26.5, 31, 30.5, 21.5, 30.5, 23, 25.5, 32.5, 19.5, 24, 21.5, 27, 31, 21.5, 30.5, 22, 27, 21.5, 28, 21.5, 21, 23, 33, 19, 22, 32, 29.5, 27.5, 25.5, 23.5, 29, 31.5, 25, 25.5, 28, 24.5] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Curve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220404225880"] }, { "type": "character", "attributes": {}, "value": ["20140222040423"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1180, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["", "temp.matrix"] } ] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, 36.76955262, 36.06244584, 38.18376618, 31.81980515, 21.21320344, 24.74873734, 23.33452378, 25.45584412, 42.42640687, 33.23401872, 27.57716447, 30.40559159, 27.57716447, 51.61879503, 27.57716447, 26.1629509, 34.64823228, 28.28427125, 29.69848481, 30.40559159, 33.9411255, 46.66904756, 34.64823228, 28.28427125, 18.38477631, 26.87005769, 24.74873734, 27.57716447, 28.28427125, 14.8492424, 26.1629509, 35.35533906, 36.06244584, 31.81980515, 20.50609665, 35.35533906, 19.79898987, 21.92031022, 34.64823228, 39.59797975, 30.40559159, 26.1629509, 21.21320344, 41.71930009, 22.627417, 35.35533906, 28.28427125, 35.35533906, 18.38477631, 21.21320344, 31.11269837, 24.74873734, 21.92031022, 16.97056275, 27.57716447, 19.79898987, 28.28427125, 25.45584412, 43.84062043, 38.89087297, 33.9411255, 22.627417, 1.41421356, 26.1629509, 44.54772721, 29.69848481, 21.92031022, 41.01219331, 21.21320344, 33.9411255, 25.45584412, 27.57716447, 23.33452378, 33.9411255, 33.23401872, 35.35533906, 26.1629509, 28.99137803, 25.45584412, 29.69848481, 32.52691193, 31.11269837, 29.69848481, 28.28427125, 25.45584412, 27.57716447, 31.81980515, 26.87005769, 32.52691193, 31.11269837, 34.64823228, 36.06244584, 25.45584412, 32.52691193, 17.67766953, 24.74873734, 28.28427125, 27.57716447, 23.33452378, 36.06244584, 25.45584412, 35.35533906, 19.09188309, 21.92031022, 19.79898987, 24.04163056, 23.33452378, 25.45584412, 24.04163056, 21.92031022, 29.69848481, 23.33452378, 36.76955262, 28.28427125, 17.67766953, 35.35533906, 23.33452378, 23.33452378, 26.87005769, 36.06244584, 33.9411255, 26.87005769, 33.23401872, 24.04163056, 28.99137803, 26.87005769, 26.1629509, 38.18376618, 34.64823228, 43.84062043, 28.28427125, 39.59797975, 23.33452378, 26.1629509, 35.35533906, 29.69848481, 28.99137803, 27.57716447, 20.50609665, 26.87005769, 34.64823228, 30.40559159, 26.1629509, 32.52691193, 23.33452378, 39.59797975, 31.81980515, 26.87005769, 36.06244584, 30.40559159, 33.9411255, 30.40559159, 40.30508653, 30.40559159, 28.99137803, 43.13351365, 40.30508653, 18.38477631, 36.76955262, 43.13351365, 41.01219331, 44.54772721, 44.54772721, 55.15432893, 43.84062043, 43.13351365, 48.08326112, 29.69848481, 42.42640687, 47.37615434, 48.7903679, 43.13351365, 51.61879503, 43.13351365, 40.30508653, 44.54772721, 41.71930009, 52.32590181, 53.74011537, 43.84062043, 72.12489168, 56.56854249, 45.96194078, 72.12489168, 59.39696962, 65.05382387, 59.39696962, 79.90306627, 60.81118318, 67.17514421, 74.24621202, 61.51828996, 58.68986284, 53.03300859, 77.78174593, 78.48885271, 74.95331881, 71.4177849, 60.1040764, 69.29646456, 79.90306627, 75.66042559, 80.61017306, 89.80256121, 103.23759005, 78.48885271, 86.97413409, 89.09545443, 102.53048327, 101.11626971, 100.40916293, 101.82337649, 108.18733752, 104.65180362, 85.55992052, 94.75230868, 98.99494937, 107.48023074, 137.17871555, 108.18733752, 121.62236636, 118.79393924, 122.32947315, 107.48023074, 146.37110371, 135.05739521, 125.15790027, 166.87720036, 124.45079349, 140.00714267, 150.61374439, 159.09902577, 161.22034611, 145.66399692, 166.87720036, 172.53405461, 162.63455967, 161.92745289, 153.44217152, 193.74725805, 178.89801564, 164.75588002, 178.19090886, 185.96908345, 197.28279195, 190.21172414, 186.67619023, 203.64675298, 220.61731573, 197.28279195, 200.81832586, 200.81832586, 215.66756826, 228.39549032, 197.28279195, 239.70919882, 239.70919882, 237.58787848, 237.58787848, 255.26554801, 275.06453788, 260.21529548, 286.37824638, 236.8807717, 272.23611076, 291.32799385, 297.69195488, 279.30717857, 304.76302269, 282.84271247, 321.73358544, 323.85490578, 352.13917703, 315.36962441, 364.15999231, 321.02647866, 359.21024484, 383.95898218, 357.0889245, 359.91735162, 386.78740931, 409.41482631, 414.36457378, 382.54476862, 404.46507884, 436.99199077, 416.48589412, 430.62802974, 445.47727215, 417.90010768, 460.32651455, 472.34732983, 449.71991283, 469.51890271, 466.69047558, 473.76154339, 482.95393155, 498.51028074, 513.35952314, 538.10826048, 533.8656198, 518.30927061, 547.30064864, 583.36309448, 538.10826048, 509.82398924, 599.62655045, 609.52604538, 599.62655045, 608.11183182, 676.7011896, 605.2834047, 661.85194719, 685.89357775, 646.295598, 695.79307269, 725.4915575, 678.82250994, 693.67175234, 719.83470325, 697.20728625, 763.67532368, 671.75144213, 726.19866428, 765.79664403, 774.98903218, 743.87633381, 796.20223562, 789.83827459, 801.85908987, 823.0722933, 832.26468146, 843.57838996, 819.5367594, 843.57838996, 864.79159339, 897.31850533, 890.9545443, 896.61139854, 892.36875786, 941.15912576, 905.8037867, 928.4312037, 941.86623254, 963.07943598, 983.58553263, 957.42258173, 950.35151391, 960.95811563, 930.55252404, 1021.76929881, 972.27182413, 994.19213435, 1035.20432766, 1035.20432766, 1043.68960903, 1008.33426997, 1006.92005641, 1100.25815153, 1071.97388028, 1081.87337522, 1040.15407513, 1011.86980388, 1023.89061916, 1085.40890912, 1103.08657865, 1047.93224972, 1085.40890912, 1081.87337522, 1079.04494809, 1062.78149212, 1075.50941418, 1091.06576337, 1116.52160749, 1065.60991925, 1011.86980388, 1078.33784131, 1055.00331753, 1088.94444303, 1030.96168697, 1031.66879375, 1065.60991925, 1052.88199719, 1000.55609538, 1019.64797847, 1001.26320216, 1013.99112422, 1019.64797847, 983.58553263, 994.19213435, 978.63578516, 982.87842585, 958.83679529, 980.75710551, 884.59058326, 930.55252404, 938.33069863, 960.25100885, 883.1763697, 945.40176645, 846.40681708, 857.72052558, 852.77077811, 842.87128317, 802.56619665, 787.00984746, 840.74996283, 777.11035252, 777.11035252, 784.88852712, 745.29054737, 749.53318806, 717.00627612, 694.37885913, 690.13621844, 645.58849122, 662.55905397, 620.83975388, 625.78950135, 606.69761826, 603.86919113, 557.20014357, 560.0285707, 531.03719267, 493.56053327, 498.51028074, 466.69047558, 461.74072811, 458.20519421, 416.48589412, 420.72853481, 425.67828227, 385.37319575, 340.82546853, 354.26049737, 342.23968209, 367.69552622, 311.8340905, 309.71277016, 253.85133445, 284.96403282, 265.16504294, 234.75945135, 209.30360723, 238.29498526, 229.1025971, 227.68838354, 198.69700551, 185.26197667, 183.84776311, 172.53405461, 179.60512242, 162.63455967, 147.07821049, 140.00714267, 123.74368671, 103.23759005, 112.42997821, 103.94469683, 102.53048327, 100.40916293, 107.48023074, 95.45941546, 84.14570696, 79.19595949, 104.65180362, 66.46803743, 65.05382387, 80.61017306, 65.76093065, 52.32590181, 59.39696962, 53.74011537, 65.05382387, 55.15432893, 48.7903679, 53.74011537, 40.30508653, 49.49747468, 45.96194078, 31.11269837, 48.7903679, 33.9411255, 37.4766594, 28.99137803, 41.01219331, 38.89087297, 28.28427125, 45.254834, 21.21320344, 38.18376618, 36.06244584, 38.89087297, 33.23401872, 28.28427125, 37.4766594, 35.35533906, 36.06244584, 33.9411255, 35.35533906, 20.50609665, 22.627417, 20.50609665, 33.23401872, 29.69848481, 31.81980515, 29.69848481, 20.50609665, 26.1629509, 26.1629509, 37.4766594, 24.04163056, 36.76955262, 27.57716447, 19.79898987, 28.99137803, 19.79898987, 19.09188309, 27.57716447, 31.81980515, 26.87005769, 23.33452378, 29.69848481, 21.92031022, 10.60660172, 24.04163056, 21.21320344, 34.64823228, 33.23401872, 29.69848481, 23.33452378, 27.57716447, 41.71930009, 23.33452378, 24.04163056, 30.40559159, 28.28427125, 24.04163056, 23.33452378, 40.30508653, 36.76955262, 36.06244584, 27.57716447, 26.1629509, 21.21320344, 26.87005769, 33.9411255, 20.50609665, 21.21320344, 18.38477631, 22.627417, 26.87005769, 30.40559159, 22.627417, 25.45584412, 19.79898987, 18.38477631, 28.99137803, 20.50609665, 32.52691193, 32.52691193, 25.45584412, 31.81980515, 19.09188309, 18.38477631, 33.9411255, 28.28427125, 21.21320344, 21.92031022, 15.55634919, 13.43502884, 18.38477631, 24.74873734, 16.26345597, 15.55634919, 14.8492424, 23.33452378, 29.69848481, 32.52691193, 14.8492424, 26.87005769, 19.09188309, 15.55634919, 10.60660172, 18.38477631, 17.67766953, 21.21320344, 6.36396103, 16.97056275, 18.38477631, 15.55634919, 21.92031022, 17.67766953, 13.43502884, 19.79898987, 21.92031022, 15.55634919, 28.28427125, 8.48528137, 19.79898987, 7.07106781, 5.65685425, 14.14213562, 21.21320344, 10.60660172, 16.97056275, 18.38477631, 12.72792206, 24.04163056, 23.33452378, 15.55634919, 21.92031022, 9.89949494, 14.8492424, 7.07106781, 17.67766953, 12.02081528, 20.50609665, 14.14213562, 14.14213562, 21.92031022, 10.60660172, 25.45584412, 15.55634919, 14.14213562, 19.09188309, 16.97056275, 16.97056275, 5.65685425, 11.3137085, 8.48528137, 14.8492424, 16.97056275, 26.1629509, 10.60660172, 11.3137085, 20.50609665, 14.8492424, 6.36396103, 16.26345597, 18.38477631, 8.48528137, 0.70710678, 4.94974747, 13.43502884, 13.43502884, 5.65685425, 12.02081528, 9.19238816, 13.43502884, 14.14213562, 7.07106781, 0.70710678, 7.07106781, 12.02081528, 19.09188309, 2.12132034, 9.89949494, 7.07106781, 9.89949494, 15.55634919, 2.82842712, 9.89949494, 16.97056275, 8.48528137, 4.94974747, 6.36396103, 5.65685425, 7.77817459, 7.07106781, 12.02081528, 7.77817459, 7.77817459, 4.94974747, 12.72792206, 9.19238816, 2.82842712, 4.94974747, 11.3137085, 2.82842712, 3.53553391, 6.36396103, 7.07106781, 9.19238816, 2.12132034, 5.65685425, 3.53553391, 5.65685425, 14.14213562, 2.82842712, 6.36396103, 5.65685425, 11.3137085, 5.65685425, 2.82842712, 8.48528137, 4.94974747, 0.70710678, 3.53553391, 7.77817459, 8.48528137, 8.48528137, 14.14213562, 6.36396103, 12.02081528, 3.53553391, 2.82842712, 16.97056275, 0.70710678, 7.77817459, 19.79898987, 7.07106781, 5.65685425, 1.41421356, 12.02081528, 3.53553391, 4.94974747, 2.82842712, 0.70710678, 7.07106781, 1.41421356, 8.48528137, 7.07106781, 1.41421356, 7.07106781, 1.41421356, 7.07106781, 4.94974747, 0.70710678, 2.82842712, 7.07106781, 0, 8.48528137, 2.12132034, 18.38477631, 6.36396103, 0.70710678, 0.70710678, 7.07106781, 3.53553391, 6.36396103, 4.24264069, 8.48528137, 0, 9.89949494, 0.70710678, 4.24264069, 2.12132034, 4.94974747, 6.36396103, 1.41421356, 4.24264069, 0, 7.07106781, 2.82842712, 9.19238816, 0, 9.89949494, 7.77817459, 2.12132034, 3.53553391, 2.82842712, 11.3137085, 15.55634919, 0.70710678, 1.41421356, 4.94974747, 5.65685425, 9.89949494, 1.41421356, 10.60660172, 6.36396103, 19.79898987, 7.07106781, 5.65685425, 5.65685425, 2.12132034, 12.72792206, 7.07106781, 9.19238816, 1.41421356, 18.38477631, 7.07106781, 12.72792206, 9.89949494, 9.19238816, 4.94974747, 2.12132034, 9.89949494, 13.43502884, 9.89949494, 7.07106781, 16.26345597, 2.12132034, 6.36396103, 0, 7.07106781, 14.14213562, 6.36396103, 18.38477631, 19.09188309, 17.67766953, 2.12132034, 17.67766953, 2.82842712, 10.60660172, 24.04163056, 3.53553391, 1.41421356, 6.36396103, 5.65685425, 19.79898987, 14.14213562, 9.89949494, 19.09188309, 7.77817459, 14.14213562, 5.65685425, 9.89949494, 1.41421356, 17.67766953, 19.09188309, 7.07106781, 14.14213562, 20.50609665, 12.72792206, 14.14213562, 9.19238816, 3.53553391, 11.3137085, 19.09188309, 9.19238816, 19.79898987, 9.89949494, 5.65685425, 12.02081528, 14.8492424, 16.97056275, 13.43502884, 16.26345597, 9.19238816, 12.72792206, 17.67766953, 18.38477631, 21.21320344, 18.38477631, 16.26345597, 17.67766953, 3.53553391, 24.74873734, 9.89949494, 19.79898987, 14.14213562, 12.72792206, 20.50609665, 23.33452378, 4.94974747, 1.41421356, 11.3137085, 12.72792206, 24.74873734, 17.67766953, 7.07106781, 9.19238816, 21.92031022, 13.43502884, 15.55634919, 17.67766953, 18.38477631, 12.72792206, 14.14213562, 20.50609665, 17.67766953, 16.97056275, 9.19238816, 9.89949494, 9.89949494, 3.53553391, 33.23401872, 15.55634919, 9.19238816, 17.67766953, 9.89949494, 15.55634919, 11.3137085, 8.48528137, 6.36396103, 21.21320344, 8.48528137, 6.36396103, 15.55634919, 23.33452378, 3.53553391, 7.07106781, 16.26345597, 26.87005769, 4.24264069, 13.43502884, 18.38477631, 12.02081528, 14.8492424, 9.89949494, 1.41421356, 0.70710678, 11.3137085, 19.09188309, 8.48528137, 22.627417, 11.3137085, 18.38477631, 5.65685425, 18.38477631, 14.8492424, 3.53553391, 16.97056275, 16.97056275, 14.14213562, 9.89949494, 17.67766953, 0.70710678, 17.67766953, 12.72792206, 2.82842712, 20.50609665, 0, 14.14213562, 7.07106781, 2.82842712, 14.8492424, 22.627417, 18.38477631, 9.89949494, 12.02081528, 7.77817459, 14.8492424, 7.77817459, 11.3137085, 18.38477631, 12.02081528, 9.19238816, 5.65685425, 12.72792206, 23.33452378, 12.72792206, 20.50609665, 5.65685425, 12.02081528, 2.12132034, 14.8492424, 9.19238816, 6.36396103, 6.36396103, 5.65685425, 3.53553391, 5.65685425, 26.1629509, 12.02081528, 9.89949494, 2.82842712, 7.77817459, 9.19238816, 12.02081528, 3.53553391, 5.65685425, 14.8492424, 7.77817459, 0.70710678, 15.55634919, 2.12132034, 2.82842712, 7.77817459, 13.43502884, 4.24264069, 7.77817459, 4.94974747, 12.72792206, 0.70710678, 3.53553391, 12.02081528, 8.48528137, 4.94974747, 0, 5.65685425, 4.94974747, 3.53553391, 0, 0.70710678, 0.70710678, 7.07106781, 1.41421356, 7.77817459, 4.94974747, 3.53553391, 14.14213562, 1.41421356, 13.43502884, 14.14213562, 8.48528137, 11.3137085, 5.65685425, 4.24264069, 9.19238816, 2.12132034, 1.41421356, 5.65685425, 12.02081528, 1.41421356, 9.19238816, 0, 9.19238816, 4.24264069, 4.94974747, 0.70710678, 15.55634919, 0, 6.36396103, 16.26345597, 8.48528137, 1.41421356, 10.60660172, 13.43502884, 1.41421356, 7.07106781, 0, 2.12132034, 8.48528137, 15.55634919, 2.12132034, 0.70710678, 2.12132034, 7.07106781, 3.53553391, 5.65685425, 5.65685425, 4.94974747, 8.48528137, 14.8492424, 4.94974747, 3.53553391, 2.82842712, 8.48528137, 4.94974747, 2.82842712, 10.60660172, 3.53553391, 7.77817459, 4.94974747, 10.60660172, 0, 9.19238816, 4.24264069, 11.3137085, 8.48528137, 14.8492424, 5.65685425, 0.70710678, 2.12132034, 4.24264069, 6.36396103, 5.65685425, 0.70710678, 12.72792206, 16.26345597, 2.12132034, 16.97056275, 2.12132034, 2.82842712, 4.24264069, 15.55634919, 1.41421356, 2.82842712, 0.70710678, 3.53553391, 10.60660172, 3.53553391, 7.77817459, 12.72792206, 0.70710678, 8.48528137, 2.12132034, 4.24264069, 4.94974747, 9.19238816, 9.19238816, 4.94974747, 10.60660172, 3.53553391, 2.82842712, 9.89949494, 12.02081528, 5.65685425, 6.36396103, 13.43502884, 9.89949494, 2.12132034, 1.41421356, 8.48528137, 2.12132034, 1.41421356, 8.48528137, 4.94974747, 5.65685425, 19.79898987, 9.19238816, 2.82842712, 0.70710678, 3.53553391, 4.94974747, 0.70710678, 9.89949494, 3.53553391, 0, 8.48528137, 0.70710678, 2.82842712, 2.82842712, 5.65685425, 8.48528137, 8.48528137, 12.72792206, 8.48528137, 6.36396103, 4.24264069, 2.12132034, 13.43502884, 4.24264069, 1.41421356, 10.60660172, 4.94974747, 3.53553391, 12.72792206, 13.43502884, 2.82842712, 2.12132034, 0.70710678, 10.60660172, 20.50609665, 0.70710678, 0, 7.77817459, 3.53553391, 4.24264069, 5.65685425, 9.19238816, 13.43502884, 1.41421356, 2.12132034, 0.70710678, 4.94974747, 9.89949494, 19.09188309, 3.53553391, 6.36396103, 4.24264069, 2.12132034, 2.82842712, 11.3137085, 3.53553391, 3.53553391, 1.41421356, 1.41421356, 2.12132034, 12.72792206, 2.12132034, 1.41421356, 4.24264069, 4.24264069, 7.07106781, 1.41421356, 0, 6.36396103, 6.36396103, 0.70710678, 0.70710678, 2.82842712, 4.94974747, 11.3137085, 0.70710678, 7.07106781, 3.53553391] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Curve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220404225880"] }, { "type": "character", "attributes": {}, "value": ["20140222040423"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1180, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["", "temp.matrix"] } ] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, 1352, 1300.5, 1458, 1012.5, 450, 612.5, 544.5, 648, 1800, 1104.5, 760.5, 924.5, 760.5, 2664.5, 760.5, 684.5, 1200.5, 800, 882, 924.5, 1152, 2178, 1200.5, 800, 338, 722, 612.5, 760.5, 800, 220.5, 684.5, 1250, 1300.5, 1012.5, 420.5, 1250, 392, 480.5, 1200.5, 1568, 924.5, 684.5, 450, 1740.5, 512, 1250, 800, 1250, 338, 450, 968, 612.5, 480.5, 288, 760.5, 392, 800, 648, 1922, 1512.5, 1152, 512, 2, 684.5, 1984.5, 882, 480.5, 1682, 450, 1152, 648, 760.5, 544.5, 1152, 1104.5, 1250, 684.5, 840.5, 648, 882, 1058, 968, 882, 800, 648, 760.5, 1012.5, 722, 1058, 968, 1200.5, 1300.5, 648, 1058, 312.5, 612.5, 800, 760.5, 544.5, 1300.5, 648, 1250, 364.5, 480.5, 392, 578, 544.5, 648, 578, 480.5, 882, 544.5, 1352, 800, 312.5, 1250, 544.5, 544.5, 722, 1300.5, 1152, 722, 1104.5, 578, 840.5, 722, 684.5, 1458, 1200.5, 1922, 800, 1568, 544.5, 684.5, 1250, 882, 840.5, 760.5, 420.5, 722, 1200.5, 924.5, 684.5, 1058, 544.5, 1568, 1012.5, 722, 1300.5, 924.5, 1152, 924.5, 1624.5, 924.5, 840.5, 1860.5, 1624.5, 338, 1352, 1860.5, 1682, 1984.5, 1984.5, 3042, 1922, 1860.5, 2312, 882, 1800, 2244.5, 2380.5, 1860.5, 2664.5, 1860.5, 1624.5, 1984.5, 1740.5, 2738, 2888, 1922, 5202, 3200, 2112.5, 5202, 3528, 4232, 3528, 6384.5, 3698, 4512.5, 5512.5, 3784.5, 3444.5, 2812.5, 6050, 6160.5, 5618, 5100.5, 3612.5, 4802, 6384.5, 5724.5, 6498, 8064.5, 10658, 6160.5, 7564.5, 7938, 10512.5, 10224.5, 10082, 10368, 11704.5, 10952, 7320.5, 8978, 9800, 11552, 18818, 11704.5, 14792, 14112, 14964.5, 11552, 21424.5, 18240.5, 15664.5, 27848, 15488, 19602, 22684.5, 25312.5, 25992, 21218, 27848, 29768, 26450, 26220.5, 23544.5, 37538, 32004.5, 27144.5, 31752, 34584.5, 38920.5, 36180.5, 34848, 41472, 48672, 38920.5, 40328, 40328, 46512.5, 52164.5, 38920.5, 57460.5, 57460.5, 56448, 56448, 65160.5, 75660.5, 67712, 82012.5, 56112.5, 74112.5, 84872, 88620.5, 78012.5, 92880.5, 80000, 103512.5, 104882, 124002, 99458, 132612.5, 103058, 129032, 147424.5, 127512.5, 129540.5, 149604.5, 167620.5, 171698, 146340.5, 163592, 190962, 173460.5, 185440.5, 198450, 174640.5, 211900.5, 223112, 202248, 220448, 217800, 224450, 233244.5, 248512.5, 263538, 289560.5, 285012.5, 268644.5, 299538, 340312.5, 289560.5, 259920.5, 359552, 371522, 359552, 369800, 457924.5, 366368, 438048, 470450, 417698, 484128, 526338, 460800, 481180.5, 518162, 486098, 583200, 451250, 527364.5, 586444.5, 600608, 553352, 633938, 623844.5, 642978, 677448, 692664.5, 711624.5, 671640.5, 711624.5, 747864.5, 805180.5, 793800, 803912, 796322, 885780.5, 820480.5, 861984.5, 887112, 927522, 967440.5, 916658, 903168, 923440.5, 865928, 1044012.5, 945312.5, 988418, 1071648, 1071648, 1089288, 1016738, 1013888, 1210568, 1149128, 1170450, 1081920.5, 1023880.5, 1048352, 1178112.5, 1216800, 1098162, 1178112.5, 1170450, 1164338, 1129504.5, 1156720.5, 1190424.5, 1246620.5, 1135524.5, 1023880.5, 1162812.5, 1113032, 1185800, 1062882, 1064340.5, 1135524.5, 1108560.5, 1001112.5, 1039682, 1002528, 1028178, 1039682, 967440.5, 988418, 957728, 966050, 919368, 961884.5, 782500.5, 865928, 880464.5, 922082, 780000.5, 893784.5, 716404.5, 735684.5, 727218, 710432, 644112.5, 619384.5, 706860.5, 603900.5, 603900.5, 616050, 555458, 561800, 514098, 482162, 476288, 416784.5, 438984.5, 385442, 391612.5, 368082, 364658, 310472, 313632, 282000.5, 243602, 248512.5, 217800, 213204.5, 209952, 173460.5, 177012.5, 181202, 148512.5, 116162, 125500.5, 117128, 135200, 97240.5, 95922, 64440.5, 81204.5, 70312.5, 55112, 43808, 56784.5, 52488, 51842, 39480.5, 34322, 33800, 29768, 32258, 26450, 21632, 19602, 15312.5, 10658, 12640.5, 10804.5, 10512.5, 10082, 11552, 9112.5, 7080.5, 6272, 10952, 4418, 4232, 6498, 4324.5, 2738, 3528, 2888, 4232, 3042, 2380.5, 2888, 1624.5, 2450, 2112.5, 968, 2380.5, 1152, 1404.5, 840.5, 1682, 1512.5, 800, 2048, 450, 1458, 1300.5, 1512.5, 1104.5, 800, 1404.5, 1250, 1300.5, 1152, 1250, 420.5, 512, 420.5, 1104.5, 882, 1012.5, 882, 420.5, 684.5, 684.5, 1404.5, 578, 1352, 760.5, 392, 840.5, 392, 364.5, 760.5, 1012.5, 722, 544.5, 882, 480.5, 112.5, 578, 450, 1200.5, 1104.5, 882, 544.5, 760.5, 1740.5, 544.5, 578, 924.5, 800, 578, 544.5, 1624.5, 1352, 1300.5, 760.5, 684.5, 450, 722, 1152, 420.5, 450, 338, 512, 722, 924.5, 512, 648, 392, 338, 840.5, 420.5, 1058, 1058, 648, 1012.5, 364.5, 338, 1152, 800, 450, 480.5, 242, 180.5, 338, 612.5, 264.5, 242, 220.5, 544.5, 882, 1058, 220.5, 722, 364.5, 242, 112.5, 338, 312.5, 450, 40.5, 288, 338, 242, 480.5, 312.5, 180.5, 392, 480.5, 242, 800, 72, 392, 50, 32, 200, 450, 112.5, 288, 338, 162, 578, 544.5, 242, 480.5, 98, 220.5, 50, 312.5, 144.5, 420.5, 200, 200, 480.5, 112.5, 648, 242, 200, 364.5, 288, 288, 32, 128, 72, 220.5, 288, 684.5, 112.5, 128, 420.5, 220.5, 40.5, 264.5, 338, 72, 0.5, 24.5, 180.5, 180.5, 32, 144.5, 84.5, 180.5, 200, 50, 0.5, 50, 144.5, 364.5, 4.5, 98, 50, 98, 242, 8, 98, 288, 72, 24.5, 40.5, 32, 60.5, 50, 144.5, 60.5, 60.5, 24.5, 162, 84.5, 8, 24.5, 128, 8, 12.5, 40.5, 50, 84.5, 4.5, 32, 12.5, 32, 200, 8, 40.5, 32, 128, 32, 8, 72, 24.5, 0.5, 12.5, 60.5, 72, 72, 200, 40.5, 144.5, 12.5, 8, 288, 0.5, 60.5, 392, 50, 32, 2, 144.5, 12.5, 24.5, 8, 0.5, 50, 2, 72, 50, 2, 50, 2, 50, 24.5, 0.5, 8, 50, 0, 72, 4.5, 338, 40.5, 0.5, 0.5, 50, 12.5, 40.5, 18, 72, 0, 98, 0.5, 18, 4.5, 24.5, 40.5, 2, 18, 0, 50, 8, 84.5, 0, 98, 60.5, 4.5, 12.5, 8, 128, 242, 0.5, 2, 24.5, 32, 98, 2, 112.5, 40.5, 392, 50, 32, 32, 4.5, 162, 50, 84.5, 2, 338, 50, 162, 98, 84.5, 24.5, 4.5, 98, 180.5, 98, 50, 264.5, 4.5, 40.5, 0, 50, 200, 40.5, 338, 364.5, 312.5, 4.5, 312.5, 8, 112.5, 578, 12.5, 2, 40.5, 32, 392, 200, 98, 364.5, 60.5, 200, 32, 98, 2, 312.5, 364.5, 50, 200, 420.5, 162, 200, 84.5, 12.5, 128, 364.5, 84.5, 392, 98, 32, 144.5, 220.5, 288, 180.5, 264.5, 84.5, 162, 312.5, 338, 450, 338, 264.5, 312.5, 12.5, 612.5, 98, 392, 200, 162, 420.5, 544.5, 24.5, 2, 128, 162, 612.5, 312.5, 50, 84.5, 480.5, 180.5, 242, 312.5, 338, 162, 200, 420.5, 312.5, 288, 84.5, 98, 98, 12.5, 1104.5, 242, 84.5, 312.5, 98, 242, 128, 72, 40.5, 450, 72, 40.5, 242, 544.5, 12.5, 50, 264.5, 722, 18, 180.5, 338, 144.5, 220.5, 98, 2, 0.5, 128, 364.5, 72, 512, 128, 338, 32, 338, 220.5, 12.5, 288, 288, 200, 98, 312.5, 0.5, 312.5, 162, 8, 420.5, 0, 200, 50, 8, 220.5, 512, 338, 98, 144.5, 60.5, 220.5, 60.5, 128, 338, 144.5, 84.5, 32, 162, 544.5, 162, 420.5, 32, 144.5, 4.5, 220.5, 84.5, 40.5, 40.5, 32, 12.5, 32, 684.5, 144.5, 98, 8, 60.5, 84.5, 144.5, 12.5, 32, 220.5, 60.5, 0.5, 242, 4.5, 8, 60.5, 180.5, 18, 60.5, 24.5, 162, 0.5, 12.5, 144.5, 72, 24.5, 0, 32, 24.5, 12.5, 0, 0.5, 0.5, 50, 2, 60.5, 24.5, 12.5, 200, 2, 180.5, 200, 72, 128, 32, 18, 84.5, 4.5, 2, 32, 144.5, 2, 84.5, 0, 84.5, 18, 24.5, 0.5, 242, 0, 40.5, 264.5, 72, 2, 112.5, 180.5, 2, 50, 0, 4.5, 72, 242, 4.5, 0.5, 4.5, 50, 12.5, 32, 32, 24.5, 72, 220.5, 24.5, 12.5, 8, 72, 24.5, 8, 112.5, 12.5, 60.5, 24.5, 112.5, 0, 84.5, 18, 128, 72, 220.5, 32, 0.5, 4.5, 18, 40.5, 32, 0.5, 162, 264.5, 4.5, 288, 4.5, 8, 18, 242, 2, 8, 0.5, 12.5, 112.5, 12.5, 60.5, 162, 0.5, 72, 4.5, 18, 24.5, 84.5, 84.5, 24.5, 112.5, 12.5, 8, 98, 144.5, 32, 40.5, 180.5, 98, 4.5, 2, 72, 4.5, 2, 72, 24.5, 32, 392, 84.5, 8, 0.5, 12.5, 24.5, 0.5, 98, 12.5, 0, 72, 0.5, 8, 8, 32, 72, 72, 162, 72, 40.5, 18, 4.5, 180.5, 18, 2, 112.5, 24.5, 12.5, 162, 180.5, 8, 4.5, 0.5, 112.5, 420.5, 0.5, 0, 60.5, 12.5, 18, 32, 84.5, 180.5, 2, 4.5, 0.5, 24.5, 98, 364.5, 12.5, 40.5, 18, 4.5, 8, 128, 12.5, 12.5, 2, 2, 4.5, 162, 4.5, 2, 18, 18, 50, 2, 0, 40.5, 40.5, 0.5, 0.5, 8, 24.5, 128, 0.5, 50, 12.5] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Curve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220404225880"] }, { "type": "character", "attributes": {}, "value": ["20140222040423"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1180, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["", "temp.matrix"] } ] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, 61, 58, 61, 54, 50, 47, 46, 53, 70, 58, 52, 56, 49, 76, 51, 55, 60, 51, 54, 52, 58, 66, 64, 54, 40, 52, 49, 46, 58, 37, 47, 64, 61, 55, 34, 61, 45, 49, 60, 60, 54, 49, 51, 66, 50, 58, 59, 59, 40, 52, 56, 55, 47, 43, 49, 46, 60, 54, 76, 64, 57, 49, 28, 49, 76, 52, 43, 66, 42, 64, 45, 50, 51, 53, 56, 56, 45, 58, 54, 60, 57, 54, 58, 51, 50, 49, 55, 46, 61, 51, 60, 62, 52, 56, 39, 48, 51, 49, 41, 61, 45, 60, 40, 43, 43, 46, 39, 49, 44, 46, 56, 42, 56, 54, 40, 50, 52, 45, 48, 55, 64, 49, 66, 52, 44, 51, 52, 58, 62, 62, 50, 69, 45, 46, 62, 50, 51, 53, 43, 53, 61, 50, 51, 54, 55, 68, 59, 57, 64, 52, 67, 56, 71, 66, 56, 71, 72, 46, 71, 72, 69, 70, 72, 78, 72, 71, 76, 56, 70, 74, 79, 69, 82, 70, 67, 85, 73, 85, 93, 76, 110, 88, 80, 111, 97, 102, 96, 122, 106, 105, 114, 94, 91, 98, 126, 128, 117, 114, 102, 122, 127, 126, 125, 136, 159, 134, 133, 138, 167, 148, 153, 160, 170, 159, 137, 145, 149, 165, 206, 160, 185, 182, 194, 160, 211, 208, 196, 244, 189, 212, 224, 239, 243, 219, 251, 253, 247, 239, 233, 282, 261, 250, 260, 270, 298, 283, 281, 295, 326, 291, 295, 295, 320, 334, 297, 360, 352, 347, 349, 375, 399, 387, 418, 344, 393, 419, 440, 414, 441, 425, 468, 470, 506, 460, 533, 473, 514, 554, 514, 531, 565, 590, 600, 561, 584, 635, 598, 609, 639, 598, 656, 676, 647, 685, 695, 679, 695, 725, 736, 777, 768, 742, 788, 835, 774, 736, 848, 870, 854, 874, 976, 883, 948, 985, 922, 995, 1039, 971, 988, 1031, 1001, 1087, 966, 1032, 1090, 1107, 1067, 1136, 1126, 1149, 1178, 1190, 1201, 1181, 1208, 1239, 1280, 1275, 1275, 1264, 1340, 1295, 1323, 1344, 1374, 1400, 1370, 1356, 1374, 1332, 1458, 1391, 1421, 1480, 1472, 1488, 1443, 1442, 1565, 1524, 1546, 1488, 1450, 1457, 1541, 1575, 1486, 1551, 1536, 1535, 1511, 1530, 1553, 1591, 1525, 1441, 1536, 1503, 1556, 1473, 1468, 1518, 1500, 1429, 1451, 1429, 1443, 1452, 1405, 1413, 1394, 1404, 1376, 1398, 1265, 1324, 1341, 1367, 1258, 1344, 1218, 1229, 1217, 1211, 1149, 1119, 1200, 1110, 1106, 1127, 1068, 1076, 1022, 990, 990, 928, 946, 885, 896, 869, 861, 788, 802, 761, 713, 716, 675, 662, 660, 603, 602, 608, 560, 493, 512, 493, 524, 446, 449, 372, 413, 386, 346, 306, 350, 334, 333, 286, 274, 275, 256, 261, 245, 223, 213, 196, 168, 168, 158, 160, 152, 168, 148, 128, 124, 153, 103, 104, 120, 105, 91, 99, 87, 98, 93, 77, 80, 70, 90, 76, 55, 78, 56, 64, 61, 68, 66, 50, 77, 49, 70, 68, 65, 63, 53, 62, 65, 65, 56, 61, 44, 45, 50, 56, 57, 60, 50, 42, 48, 50, 64, 49, 63, 53, 43, 51, 53, 40, 53, 59, 52, 47, 46, 44, 25, 53, 42, 57, 58, 51, 43, 49, 69, 41, 44, 55, 50, 46, 51, 70, 64, 59, 50, 45, 41, 46, 63, 47, 38, 42, 40, 53, 59, 49, 42, 42, 46, 54, 38, 59, 55, 46, 53, 43, 37, 52, 46, 46, 49, 36, 34, 31, 41, 38, 38, 37, 39, 48, 51, 38, 45, 39, 43, 37, 38, 37, 45, 24, 41, 41, 36, 39, 37, 27, 37, 47, 36, 49, 31, 39, 36, 33, 32, 36, 35, 40, 32, 33, 34, 49, 29, 44, 32, 35, 40, 36, 36, 40, 41, 31, 41, 30, 43, 35, 32, 40, 39, 30, 23, 31, 29, 33, 36, 47, 29, 28, 38, 38, 31, 35, 36, 30, 27, 21, 37, 40, 26, 38, 34, 36, 36, 37, 29, 29, 40, 39, 20, 27, 28, 34, 41, 23, 36, 40, 28, 28, 22, 32, 36, 28, 39, 32, 34, 30, 37, 38, 19, 24, 35, 20, 27, 33, 36, 25, 26, 29, 24, 34, 35, 16, 33, 28, 32, 35, 30, 35, 28, 25, 28, 36, 31, 30, 36, 32, 30, 29, 21, 41, 38, 29, 42, 23, 26, 26, 31, 29, 31, 26, 33, 29, 24, 45, 28, 35, 39, 24, 34, 29, 26, 26, 34, 23, 30, 27, 52, 27, 29, 33, 35, 35, 30, 35, 41, 28, 40, 38, 35, 33, 38, 49, 37, 38, 26, 31, 23, 39, 30, 38, 50, 29, 36, 35, 42, 51, 39, 33, 42, 45, 39, 30, 46, 39, 46, 45, 40, 36, 37, 48, 42, 47, 36, 57, 50, 50, 41, 44, 39, 37, 47, 45, 52, 45, 60, 46, 44, 36, 43, 54, 41, 58, 47, 53, 40, 52, 47, 50, 58, 38, 46, 46, 51, 54, 52, 59, 61, 43, 50, 48, 57, 48, 51, 63, 48, 45, 60, 59, 51, 56, 54, 60, 70, 61, 63, 49, 55, 59, 51, 58, 62, 50, 59, 55, 53, 58, 73, 70, 59, 61, 51, 75, 58, 60, 61, 60, 62, 62, 47, 54, 49, 60, 69, 64, 58, 61, 65, 72, 62, 65, 62, 57, 57, 69, 70, 71, 53, 57, 57, 57, 82, 58, 54, 62, 64, 65, 52, 55, 46, 66, 60, 61, 49, 68, 62, 67, 60, 70, 54, 57, 71, 60, 58, 45, 45, 53, 49, 66, 50, 58, 43, 63, 42, 70, 52, 48, 60, 53, 52, 50, 56, 42, 53, 54, 35, 57, 46, 53, 50, 44, 61, 65, 50, 50, 39, 41, 49, 43, 48, 51, 56, 51, 42, 46, 64, 49, 49, 47, 54, 41, 49, 39, 46, 38, 36, 36, 38, 59, 34, 42, 38, 40, 34, 46, 37, 35, 44, 34, 31, 44, 32, 27, 34, 45, 33, 31, 33, 39, 28, 32, 42, 44, 37, 24, 35, 39, 32, 26, 35, 26, 35, 29, 34, 34, 33, 32, 32, 35, 44, 32, 30, 27, 30, 30, 28, 27, 32, 38, 27, 36, 27, 37, 27, 27, 30, 46, 26, 22, 44, 34, 29, 41, 36, 24, 21, 26, 31, 29, 40, 27, 22, 25, 31, 28, 24, 28, 27, 29, 33, 32, 25, 31, 28, 30, 32, 30, 22, 30, 30, 34, 27, 26, 25, 31, 34, 50, 34, 25, 27, 31, 31, 31, 22, 34, 43, 30, 44, 23, 22, 27, 43, 24, 27, 24, 25, 27, 29, 24, 31, 26, 32, 27, 27, 26, 31, 27, 27, 33, 26, 20, 37, 28, 31, 28, 35, 28, 34, 27, 40, 26, 21, 32, 31, 28, 47, 38, 28, 21, 28, 31, 24, 36, 29, 22, 38, 31, 25, 18, 33, 32, 31, 43, 29, 35, 31, 26, 36, 33, 30, 35, 32, 24, 43, 41, 37, 29, 24, 34, 41, 33, 25, 33, 35, 34, 32, 39, 36, 32, 32, 22, 34, 30, 39, 35, 24, 27, 23, 29, 39, 24, 33, 23, 28, 23, 37, 23, 22, 26, 36, 24, 23, 32, 34, 32, 26, 24, 31, 35, 33, 26, 33, 27] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Curve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220404225880"] }, { "type": "character", "attributes": {}, "value": ["20140222040423"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1180, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["", "temp.matrix"] } ] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, 9, 7, 7, 9, 20, 12, 13, 17, 10, 11, 13, 13, 10, 3, 12, 18, 11, 11, 12, 9, 10, 0, 15, 14, 14, 14, 14, 7, 18, 16, 10, 14, 10, 10, 5, 11, 17, 18, 11, 4, 11, 12, 21, 7, 18, 8, 19, 9, 14, 22, 12, 20, 16, 19, 10, 18, 20, 18, 14, 9, 9, 17, 26, 12, 13, 10, 12, 8, 12, 16, 9, 11, 18, 5, 9, 6, 8, 17, 18, 18, 11, 10, 16, 11, 14, 10, 10, 8, 15, 7, 11, 11, 16, 10, 14, 13, 11, 10, 8, 10, 9, 10, 13, 12, 15, 12, 6, 13, 10, 15, 14, 9, 4, 14, 15, 0, 19, 12, 10, 4, 16, 11, 19, 18, 3, 13, 15, 4, 13, 0, 10, 13, 12, 9, 12, 8, 10, 14, 14, 15, 12, 7, 14, 8, 22, 12, 14, 19, 13, 9, 19, 13, 14, 23, 15, 10, 15, 20, 19, 11, 11, 7, 9, 0, 10, 10, 8, 14, 10, 7, 10, 8, 9, 9, 10, 22, 14, 11, 17, 14, 8, 8, 15, 9, 13, 10, 12, 9, 20, 10, 9, 7, 8, 23, 16, 17, 11, 13, 17, 24, 14, 19, 11, 9, 13, 23, 10, 12, 22, 5, 11, 16, 17, 11, 16, 11, 9, 13, 12, 7, 13, 14, 21, 8, 4, 17, 19, 8, 13, 14, 11, 14, 15, 13, 15, 9, 17, 10, 16, 8, 8, 17, 8, 7, 19, 14, 17, 7, 14, 12, 11, 11, 15, 11, 18, 21, 13, 11, 13, 14, 10, 19, 13, 9, 8, 7, 19, 19, 10, 25, 13, 12, 8, 14, 18, 19, 6, 11, 9, 22, 18, 11, 14, 20, 12, 17, 9, 0, 9, 7, 5, 8, 11, 21, 35, 9, 12, 20, 10, 16, 13, 9, 14, 10, 13, 15, 0, 8, 6, 14, 19, 27, 12, 15, 8, 11, 13, 11, 7, 13, 15, 7, 16, 5, 7, 11, 15, 10, 9, 15, 14, 13, 8, 22, 15, 16, 11, 15, 7, 2, 9, 14, 10, 12, 12, 9, 16, 12, 15, 16, 13, 16, 15, 16, 8, 12, 17, 18, 9, 8, 16, 17, 19, 9, 6, 15, 4, 16, 6, 9, 8, 9, 10, 12, 18, 10, 11, 11, 16, 15, 9, 11, 11, 14, 9, 13, 9, 10, 14, 7, 10, 14, 20, 11, 14, 8, 14, 9, 9, 7, 21, 16, 11, 19, 14, 6, 11, 11, 7, 17, 14, 16, 8, 8, 14, 15, 9, 7, 11, 11, 7, 0, 10, 10, 15, 11, 15, 9, 12, 14, 7, 6, 15, 11, 11, 9, 4, 5, 11, 13, 10, 11, 14, 10, 13, 10, 11, 5, 12, 15, 12, 7, 15, 15, 15, 21, 22, 9, 11, 15, 10, 16, 13, 9, 12, 5, 9, 12, 6, 12, 17, 15, 11, 6, 15, 8, 4, 13, 20, 11, 11, 9, 8, 11, 20, 10, 11, 10, 13, 19, 16, 17, 10, 16, 13, 9, 15, 14, 8, 11, 15, 13, 21, 9, 15, 15, 8, 13, 11, 13, 11, 15, 11, 14, 15, 10, 25, 13, 14, 14, 14, 14, 4, 13, 10, 19, 12, 8, 11, 9, 10, 10, 10, 8, 10, 12, 10, 12, 18, 13, 12, 8, 11, 8, 11, 8, 15, 18, 8, 16, 8, 15, 16, 17, 6, 14, 20, 13, 9, 13, 9, 10, 8, 16, 11, 4, 6, 16, 18, 14, 15, 5, 6, 15, 16, 16, 6, 6, 5, 17, 7, 12, 21, 22, 12, 12, 15, 15, 17, 15, 14, 8, 12, 8, 9, 16, 14, 9, 19, 11, 26, 25, 12, 6, 20, 16, 6, 15, 0, 16, 7, 13, 18, 14, 30, 11, 19, 11, 21, 11, 10, 15, 7, 13, 12, 13, 15, 6, 15, 15, 17, 12, 12, 10, 14, 12, 9, 17, 22, 12, 10, 18, 26, 14, 18, 21, 18, 21, 21, 17, 16, 27, 28, 19, 23, 12, 17, 13, 18, 20, 19, 19, 22, 16, 16, 21, 13, 24, 25, 18, 22, 21, 23, 23, 19, 25, 15, 17, 19, 16, 22, 24, 26, 12, 23, 21, 19, 26, 15, 12, 24, 20, 16, 27, 26, 23, 21, 24, 23, 25, 19, 18, 16, 23, 13, 24, 17, 17, 37, 18, 14, 13, 18, 24, 14, 24, 24, 22, 32, 19, 22, 33, 18, 33, 29, 22, 24, 22, 25, 22, 24, 23, 18, 24, 26, 18, 28, 32, 25, 30, 21, 29, 29, 28, 26, 37, 29, 30, 31, 40, 35, 32, 26, 21, 19, 26, 30, 24, 39, 26, 31, 31, 26, 29, 38, 31, 35, 37, 25, 28, 31, 30, 18, 35, 32, 28, 34, 30, 32, 34, 34, 31, 40, 32, 27, 31, 32, 34, 33, 26, 38, 35, 37, 43, 35, 36, 33, 34, 32, 32, 20, 28, 37, 27, 43, 35, 24, 33, 44, 37, 43, 26, 32, 45, 34, 32, 30, 40, 43, 46, 26, 36, 38, 25, 31, 41, 31, 43, 49, 44, 43, 48, 35, 35, 47, 42, 30, 34, 43, 27, 46, 37, 28, 32, 43, 44, 36, 36, 46, 40, 44, 32, 41, 42, 33, 29, 40, 52, 33, 42, 34, 39, 48, 48, 34, 53, 40, 40, 36, 39, 37, 40, 45, 47, 40, 43, 43, 52, 35, 36, 41, 37, 50, 43, 36, 43, 37, 36, 48, 52, 27, 35, 57, 57, 37, 32, 48, 38, 45, 43, 37, 31, 43, 52, 33, 39, 38, 26, 27, 37, 34, 44, 31, 43, 36, 29, 32, 36, 31, 41, 28, 36, 31, 28, 46, 33, 40, 40, 40, 33, 24, 36, 22, 30, 28, 32, 32, 25, 39, 38, 34, 28, 31, 31, 20, 39, 37, 38, 28, 26, 37, 29, 28, 31, 30, 22, 17, 28, 34, 29, 21, 29, 32, 27, 23, 23, 30, 22, 29, 23, 23, 26, 27, 20, 26, 21, 27, 27, 25, 32, 30, 24, 27, 32, 27, 26, 34, 25, 25, 27, 23, 27, 28, 12, 30, 16, 24, 20, 14, 19, 24, 17, 25, 25, 24, 21, 25, 23, 27, 24, 21, 20, 29, 24, 26, 13, 21, 22, 27, 26, 17, 22, 11, 26, 28, 17, 18, 24, 21, 22, 21, 23, 16, 20, 20, 17, 12, 25, 20, 27, 16, 23, 28, 15, 17, 19, 23, 19, 27, 13, 19, 15, 22, 29, 26, 24, 24, 25, 22, 23, 21, 16, 20, 27, 20, 20, 18, 21, 21, 22, 23, 23, 20, 12, 24, 13, 13, 25, 20, 24, 21, 19, 18, 14, 20, 18, 21, 16, 23, 11, 23, 19, 16, 14, 31, 25, 28, 23, 19, 20, 24, 20, 19, 25, 24, 20, 23, 24, 23, 22, 24, 22, 26, 30, 21, 14, 25, 20, 19, 25, 17, 26, 25, 23, 17, 27, 28, 20, 25, 19, 25, 22, 33, 26, 23, 19, 12, 32, 25, 22, 30, 28, 24, 26, 17, 30, 29, 21, 27, 16, 12, 30, 15, 21, 20, 25, 23, 19, 28, 21, 26, 20, 19, 20, 20, 20, 30, 14, 21, 32, 25, 23, 25, 23, 27, 28, 17, 25, 23, 22] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Curve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220404225880"] }, { "type": "character", "attributes": {}, "value": ["20140222040423"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1180, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["", "temp.matrix"] } ] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, -52, -51, -54, -45, -30, -35, -33, -36, -60, -47, -39, -43, -39, -73, -39, -37, -49, -40, -42, -43, -48, -66, -49, -40, -26, -38, -35, -39, -40, -21, -37, -50, -51, -45, -29, -50, -28, -31, -49, -56, -43, -37, -30, -59, -32, -50, -40, -50, -26, -30, -44, -35, -31, -24, -39, -28, -40, -36, -62, -55, -48, -32, -2, -37, -63, -42, -31, -58, -30, -48, -36, -39, -33, -48, -47, -50, -37, -41, -36, -42, -46, -44, -42, -40, -36, -39, -45, -38, -46, -44, -49, -51, -36, -46, -25, -35, -40, -39, -33, -51, -36, -50, -27, -31, -28, -34, -33, -36, -34, -31, -42, -33, -52, -40, -25, -50, -33, -33, -38, -51, -48, -38, -47, -34, -41, -38, -37, -54, -49, -62, -40, -56, -33, -37, -50, -42, -41, -39, -29, -38, -49, -43, -37, -46, -33, -56, -45, -38, -51, -43, -48, -43, -57, -43, -41, -61, -57, -26, -52, -61, -58, -63, -63, -78, -62, -61, -68, -42, -60, -67, -69, -61, -73, -61, -57, -63, -59, -74, -76, -62, -102, -80, -65, -102, -84, -92, -84, -113, -86, -95, -105, -87, -83, -75, -110, -111, -106, -101, -85, -98, -113, -107, -114, -127, -146, -111, -123, -126, -145, -143, -142, -144, -153, -148, -121, -134, -140, -152, -194, -153, -172, -168, -173, -152, -207, -191, -177, -236, -176, -198, -213, -225, -228, -206, -236, -244, -230, -229, -217, -274, -253, -233, -252, -263, -279, -269, -264, -288, -312, -279, -284, -284, -305, -323, -279, -339, -339, -336, -336, -361, -389, -368, -405, -335, -385, -412, -421, -395, -431, -400, -455, -458, -498, -446, -515, -454, -508, -543, -505, -509, -547, -579, -586, -541, -572, -618, -589, -609, -630, -591, -651, -668, -636, -664, -660, -670, -683, -705, -726, -761, -755, -733, -774, -825, -761, -721, -848, -862, -848, -860, -957, -856, -936, -970, -914, -984, -1026, -960, -981, -1018, -986, -1080, -950, -1027, -1083, -1096, -1052, -1126, -1117, -1134, -1164, -1177, -1193, -1159, -1193, -1223, -1269, -1260, -1268, -1262, -1331, -1281, -1313, -1332, -1362, -1391, -1354, -1344, -1359, -1316, -1445, -1375, -1406, -1464, -1464, -1476, -1426, -1424, -1556, -1516, -1530, -1471, -1431, -1448, -1535, -1560, -1482, -1535, -1530, -1526, -1503, -1521, -1543, -1579, -1507, -1431, -1525, -1492, -1540, -1458, -1459, -1507, -1489, -1415, -1442, -1416, -1434, -1442, -1391, -1406, -1384, -1390, -1356, -1387, -1251, -1316, -1327, -1358, -1249, -1337, -1197, -1213, -1206, -1192, -1135, -1113, -1189, -1099, -1099, -1110, -1054, -1060, -1014, -982, -976, -913, -937, -878, -885, -858, -854, -788, -792, -751, -698, -705, -660, -653, -648, -589, -595, -602, -545, -482, -501, -484, -520, -441, -438, -359, -403, -375, -332, -296, -337, -324, -322, -281, -262, -260, -244, -254, -230, -208, -198, -175, -146, -159, -147, -145, -142, -152, -135, -119, -112, -148, -94, -92, -114, -93, -74, -84, -76, -92, -78, -69, -76, -57, -70, -65, -44, -69, -48, -53, -41, -58, -55, -40, -64, -30, -54, -51, -55, -47, -40, -53, -50, -51, -48, -50, -29, -32, -29, -47, -42, -45, -42, -29, -37, -37, -53, -34, -52, -39, -28, -41, -28, -27, -39, -45, -38, -33, -42, -31, -15, -34, -30, -49, -47, -42, -33, -39, -59, -33, -34, -43, -40, -34, -33, -57, -52, -51, -39, -37, -30, -38, -48, -29, -30, -26, -32, -38, -43, -32, -36, -28, -26, -41, -29, -46, -46, -36, -45, -27, -26, -48, -40, -30, -31, -22, -19, -26, -35, -23, -22, -21, -33, -42, -46, -21, -38, -27, -22, -15, -26, -25, -30, -9, -24, -26, -22, -31, -25, -19, -28, -31, -22, -40, -12, -28, -10, -8, -20, -30, -15, -24, -26, -18, -34, -33, -22, -31, -14, -21, -10, -25, -17, -29, -20, -20, -31, -15, -36, -22, -20, -27, -24, -24, -8, -16, -12, -21, -24, -37, -15, -16, -29, -21, -9, -23, -26, -12, 1, -7, -19, -19, -8, -17, -13, -19, -20, -10, 1, -10, -17, -27, -3, -14, -10, -14, -22, -4, -14, -24, -12, -7, -9, -8, -11, -10, -17, -11, -11, -7, -18, -13, -4, -7, -16, -4, -5, -9, -10, -13, 3, -8, -5, -8, -20, 4, -9, 8, -16, -8, 4, -12, 7, -1, 5, -11, 12, -12, -20, -9, -17, -5, -4, -24, 1, -11, 28, -10, -8, -2, 17, 5, 7, -4, 1, 10, 2, -12, 10, -2, 10, 2, 10, 7, -1, -4, -10, 0, 12, -3, 26, 9, 1, -1, 10, 5, 9, 6, 12, 0, 14, -1, 6, -3, -7, 9, -2, 6, 0, 10, 4, 13, 0, -14, -11, 3, -5, 4, 16, 22, -1, 2, 7, -8, 14, 2, 15, 9, 28, 10, 8, 8, -3, 18, 10, 13, 2, 26, 10, -18, 14, 13, 7, 3, 14, 19, 14, 10, 23, 3, 9, 0, 10, 20, 9, 26, 27, 25, 3, 25, 4, -15, 34, 5, -2, 9, 8, 28, 20, 14, 27, 11, 20, 8, 14, 2, 25, 27, 10, 20, 29, 18, 20, 13, 5, 16, 27, 13, 28, 14, 8, 17, 21, 24, 19, 23, 13, 18, 25, 26, 30, 26, 23, 25, -5, 35, 14, 28, 20, 18, 29, 33, 7, 2, 16, 18, 35, 25, 10, 13, 31, 19, 22, 25, 26, 18, 20, 29, 25, 24, 13, 14, 14, 5, 47, 22, 13, 25, 14, 22, 16, 12, 9, 30, 12, 9, 22, 33, -5, 10, 23, 38, 6, 19, 26, 17, 21, 14, 2, 1, 16, 27, 12, 32, 16, 26, 8, 26, 21, 5, 24, 24, 20, 14, 25, 1, 25, 18, 4, 29, 0, 20, 10, 4, 21, 32, 26, 14, 17, 11, 21, 11, 16, 26, 17, 13, 8, 18, 33, 18, 29, -8, 17, 3, 21, 13, 9, 9, 8, 5, 8, 37, 17, 14, 4, 11, 13, 17, 5, 8, 21, 11, -1, 22, 3, -4, 11, 19, -6, 11, 7, 18, -1, 5, 17, 12, 7, 0, 8, 7, -5, 0, -1, -1, 10, -2, 11, 7, 5, 20, -2, 19, 20, -12, 16, 8, 6, 13, -3, -2, 8, 17, 2, 13, 0, 13, 6, 7, -1, 22, 0, -9, 23, 12, 2, 15, 19, 2, 10, 0, -3, 12, 22, 3, 1, 3, 10, -5, 8, 8, 7, 12, 21, 7, -5, 4, 12, 7, 4, 15, 5, 11, 7, -15, 0, -13, 6, 16, 12, 21, 8, -1, 3, 6, 9, 8, -1, 18, 23, -3, 24, 3, 4, 6, 22, -2, 4, 1, 5, 15, 5, 11, 18, -1, 12, 3, 6, 7, 13, 13, 7, 15, -5, -4, 14, 17, 8, 9, 19, 14, 3, 2, 12, -3, -2, 12, 7, 8, 28, 13, 4, -1, 5, 7, 1, 14, 5, 0, 12, 1, -4, -4, 8, 12, 12, 18, 12, -9, 6, 3, 19, 6, 2, 15, 7, 5, 18, 19, -4, -3, 1, 15, 29, 1, 0, 11, 5, 6, 8, 13, -19, 2, -3, 1, 7, 14, 27, 5, 9, -6, 3, 4, 16, 5, 5, 2, 2, -3, 18, 3, -2, -6, 6, 10, -2, 0, 9, 9, -1, 1, -4, 7, 16, 1, 10, 5] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Curve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220404225880"] }, { "type": "character", "attributes": {}, "value": ["20140222040423"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1180, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["", "temp.matrix"] } ] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, 549, 406, 427, 486, 1000, 564, 598, 901, 700, 638, 676, 728, 490, 228, 612, 990, 660, 561, 648, 468, 580, 0, 960, 756, 560, 728, 686, 322, 1044, 592, 470, 896, 610, 550, 170, 671, 765, 882, 660, 240, 594, 588, 1071, 462, 900, 464, 1121, 531, 560, 1144, 672, 1100, 752, 817, 490, 828, 1200, 972, 1064, 576, 513, 833, 728, 588, 988, 520, 516, 528, 504, 1024, 405, 550, 918, 265, 504, 336, 360, 986, 972, 1080, 627, 540, 928, 561, 700, 490, 550, 368, 915, 357, 660, 682, 832, 560, 546, 624, 561, 490, 328, 610, 405, 600, 520, 516, 645, 552, 234, 637, 440, 690, 784, 378, 224, 756, 600, 0, 988, 540, 480, 220, 1024, 539, 1254, 936, 132, 663, 780, 232, 806, 0, 500, 897, 540, 414, 744, 400, 510, 742, 602, 795, 732, 350, 714, 432, 1210, 816, 826, 1083, 832, 468, 1273, 728, 994, 1518, 840, 710, 1080, 920, 1349, 792, 759, 490, 648, 0, 720, 710, 608, 784, 700, 518, 790, 552, 738, 630, 670, 1870, 1022, 935, 1581, 1064, 880, 704, 1200, 999, 1261, 1020, 1152, 1098, 2120, 1050, 1026, 658, 728, 2254, 2016, 2176, 1287, 1482, 1734, 2928, 1778, 2394, 1375, 1224, 2067, 3082, 1330, 1656, 3674, 740, 1683, 2560, 2890, 1749, 2192, 1595, 1341, 2145, 2472, 1120, 2405, 2548, 4074, 1280, 844, 3536, 3724, 1952, 2457, 2968, 2464, 3346, 3645, 2847, 3765, 2277, 4199, 2390, 3728, 2256, 2088, 4250, 2080, 1890, 5662, 3962, 4777, 2065, 4564, 3492, 3245, 3245, 4800, 3674, 5346, 7560, 4576, 3817, 4537, 5250, 3990, 7353, 5434, 3096, 3144, 2933, 8360, 7866, 4410, 10625, 6084, 5640, 4048, 6440, 9594, 8987, 3084, 6094, 4626, 11682, 10170, 6490, 8400, 11220, 7008, 10795, 5382, 0, 5751, 4186, 3280, 5408, 7117, 14385, 24325, 6111, 8340, 14500, 7360, 12432, 9984, 6678, 11032, 8350, 10062, 11040, 0, 6960, 5124, 12236, 18544, 23841, 11376, 14775, 7376, 10945, 13507, 10681, 6916, 13403, 15015, 7609, 15456, 5160, 7630, 12177, 16005, 11360, 10134, 17235, 16492, 15470, 9608, 25982, 18120, 19824, 14080, 19125, 8925, 2528, 12060, 18130, 13230, 16128, 16488, 12600, 21920, 16272, 20610, 21312, 18954, 22256, 21315, 23680, 11776, 17856, 24531, 25956, 14085, 12192, 24736, 25296, 27550, 13113, 9246, 23625, 5944, 24816, 9216, 13815, 12088, 13770, 15530, 19092, 27450, 14410, 16896, 16533, 24896, 22095, 13212, 16698, 16500, 20006, 13059, 18577, 12987, 14520, 19670, 9891, 13940, 19656, 27520, 15378, 17710, 10592, 18774, 12303, 11322, 9408, 25578, 19664, 13387, 23009, 16086, 6714, 13200, 12210, 7742, 19159, 14952, 17216, 8176, 7920, 13860, 13920, 8514, 6195, 9856, 9559, 6027, 0, 8020, 7610, 10695, 7876, 10125, 5958, 7920, 8442, 4214, 3648, 8400, 5423, 5632, 4437, 2096, 2230, 4939, 4836, 4130, 4246, 4844, 3060, 4550, 3340, 3663, 1430, 3288, 4125, 3072, 1827, 3675, 3345, 3195, 4116, 3696, 1512, 1738, 2400, 1520, 2688, 1924, 1152, 1488, 765, 927, 1248, 720, 1260, 1547, 1485, 957, 588, 1395, 616, 320, 910, 1800, 836, 605, 702, 448, 704, 1220, 680, 726, 500, 1001, 931, 1120, 1156, 650, 1008, 689, 558, 975, 910, 448, 671, 660, 585, 1050, 504, 855, 900, 400, 546, 528, 650, 704, 735, 693, 742, 645, 510, 1325, 520, 742, 826, 728, 658, 184, 572, 250, 1007, 504, 456, 638, 459, 430, 490, 690, 328, 440, 660, 500, 552, 918, 910, 768, 472, 550, 360, 451, 368, 945, 846, 304, 672, 320, 795, 944, 833, 252, 588, 920, 702, 342, 767, 495, 460, 424, 688, 407, 208, 276, 736, 882, 504, 510, 155, 246, 570, 608, 592, 234, 288, 255, 646, 315, 468, 903, 814, 456, 444, 675, 360, 697, 615, 504, 312, 444, 216, 333, 752, 504, 441, 589, 429, 936, 825, 384, 216, 700, 640, 192, 495, 0, 784, 203, 572, 576, 490, 1200, 396, 684, 440, 861, 341, 410, 450, 301, 455, 384, 520, 585, 180, 345, 465, 493, 396, 432, 470, 406, 336, 342, 646, 682, 420, 360, 540, 702, 294, 666, 840, 468, 798, 714, 612, 576, 999, 812, 551, 920, 468, 340, 351, 504, 680, 779, 437, 792, 640, 448, 588, 286, 768, 900, 504, 858, 672, 782, 690, 703, 950, 285, 408, 665, 320, 594, 792, 936, 300, 598, 609, 456, 884, 525, 192, 792, 560, 512, 945, 780, 805, 588, 600, 644, 900, 589, 540, 576, 736, 390, 696, 357, 697, 1406, 522, 588, 299, 468, 624, 434, 696, 744, 572, 1056, 551, 528, 1485, 504, 1155, 1131, 528, 816, 638, 650, 572, 816, 529, 540, 648, 1352, 486, 812, 1056, 875, 1050, 630, 1015, 1189, 784, 1040, 1406, 1015, 990, 1178, 1960, 1295, 1216, 676, 651, 437, 1014, 900, 912, 1950, 754, 1116, 1085, 1092, 1479, 1482, 1023, 1470, 1665, 975, 840, 1426, 1170, 828, 1575, 1280, 1008, 1258, 1440, 1344, 1598, 1224, 1767, 2000, 1600, 1107, 1364, 1248, 1258, 1551, 1170, 1976, 1575, 2220, 1978, 1540, 1296, 1419, 1836, 1312, 1856, 940, 1484, 1480, 1404, 2021, 1750, 1392, 1254, 2024, 1702, 2193, 1404, 1664, 2655, 2074, 1376, 1500, 1920, 2451, 2208, 1326, 2268, 1824, 1125, 1860, 2419, 1581, 2408, 2646, 2640, 3010, 2928, 2205, 1715, 2585, 2478, 1530, 1972, 2666, 1350, 2714, 2035, 1484, 1856, 3139, 3080, 2124, 2196, 2346, 3000, 2552, 1920, 2501, 2520, 2046, 1798, 1880, 2808, 1617, 2520, 2346, 2496, 2784, 2928, 2210, 3816, 2480, 2600, 2232, 2223, 2109, 2760, 3150, 3337, 2120, 2451, 2451, 2964, 2870, 2088, 2214, 2294, 3200, 2795, 1872, 2365, 1702, 2376, 2880, 3172, 1323, 2380, 3534, 3819, 2220, 2240, 2592, 2166, 3195, 2580, 2146, 1395, 1935, 2756, 1617, 2574, 1900, 1508, 1161, 2331, 1428, 3080, 1612, 2064, 2160, 1537, 1664, 1800, 1736, 1722, 1484, 1944, 1085, 1596, 2116, 1749, 2000, 1760, 2440, 2145, 1200, 1800, 858, 1230, 1372, 1376, 1536, 1275, 2184, 1938, 1428, 1288, 1984, 1519, 980, 1833, 1998, 1558, 1372, 1014, 1702, 1102, 1008, 1116, 1140, 1298, 578, 1176, 1292, 1160, 714, 1334, 1184, 945, 1012, 782, 930, 968, 928, 621, 782, 1170, 891, 620, 858, 819, 756, 864, 1050, 1408, 1110, 576, 945, 1248, 864, 676, 1190, 650, 875, 783, 782, 918, 924, 384, 960, 560, 1056, 640, 420, 513, 720, 510, 700, 675, 768, 798, 675, 828, 729, 888, 567, 540, 870, 1104, 676, 286, 924, 748, 783, 1066, 612, 528, 231, 676, 868, 493, 720, 648, 462, 550, 651, 644, 384, 560, 540, 493, 396, 800, 500, 837, 448, 690, 896, 450, 374, 570, 690, 646, 729, 338, 475, 465, 748, 1450, 884, 600, 648, 775, 682, 713, 462, 544, 860, 810, 880, 460, 396, 567, 903, 528, 621, 552, 500, 324, 696, 312, 403, 650, 640, 648, 567, 494, 558, 378, 540, 594, 546, 320, 851, 308, 713, 532, 560, 392, 1054, 675, 1120, 598, 399, 640, 744, 560, 893, 950, 672, 420, 644, 744, 552, 792, 696, 484, 988, 930, 525, 252, 825, 640, 589, 1075, 493, 910, 775, 598, 612, 891, 840, 700, 800, 456, 1075, 902, 1221, 754, 552, 646, 492, 1056, 625, 726, 1050, 952, 768, 1014, 612, 960, 928, 462, 918, 480, 468, 1050, 360, 567, 460, 725, 897, 456, 924, 483, 728, 460, 703, 460, 440, 520, 1080, 336, 483, 1024, 850, 736, 650, 552, 837, 980, 561, 650, 759, 594] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Curve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220404225880"] }, { "type": "character", "attributes": {}, "value": ["20140222040423"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1180, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["", "temp.matrix"] } ] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, 0.14754098, 0.12068966, 0.1147541, 0.16666667, 0.4, 0.25531915, 0.2826087, 0.32075472, 0.14285714, 0.18965517, 0.25, 0.23214286, 0.20408163, 0.03947368, 0.23529412, 0.32727273, 0.18333333, 0.21568627, 0.22222222, 0.17307692, 0.17241379, 0, 0.234375, 0.25925926, 0.35, 0.26923077, 0.28571429, 0.15217391, 0.31034483, 0.43243243, 0.21276596, 0.21875, 0.16393443, 0.18181818, 0.14705882, 0.18032787, 0.37777778, 0.36734694, 0.18333333, 0.06666667, 0.2037037, 0.24489796, 0.41176471, 0.10606061, 0.36, 0.13793103, 0.3220339, 0.15254237, 0.35, 0.42307692, 0.21428571, 0.36363636, 0.34042553, 0.44186047, 0.20408163, 0.39130435, 0.33333333, 0.33333333, 0.18421053, 0.140625, 0.15789474, 0.34693878, 0.92857143, 0.24489796, 0.17105263, 0.19230769, 0.27906977, 0.12121212, 0.28571429, 0.25, 0.2, 0.22, 0.35294118, 0.09433962, 0.16071429, 0.10714286, 0.17777778, 0.29310345, 0.33333333, 0.3, 0.19298246, 0.18518519, 0.27586207, 0.21568627, 0.28, 0.20408163, 0.18181818, 0.17391304, 0.24590164, 0.1372549, 0.18333333, 0.17741935, 0.30769231, 0.17857143, 0.35897436, 0.27083333, 0.21568627, 0.20408163, 0.19512195, 0.16393443, 0.2, 0.16666667, 0.325, 0.27906977, 0.34883721, 0.26086957, 0.15384615, 0.26530612, 0.22727273, 0.32608696, 0.25, 0.21428571, 0.07142857, 0.25925926, 0.375, 0, 0.36538462, 0.26666667, 0.20833333, 0.07272727, 0.25, 0.2244898, 0.28787879, 0.34615385, 0.06818182, 0.25490196, 0.28846154, 0.06896552, 0.20967742, 0, 0.2, 0.1884058, 0.26666667, 0.19565217, 0.19354839, 0.16, 0.19607843, 0.26415094, 0.3255814, 0.28301887, 0.19672131, 0.14, 0.2745098, 0.14814815, 0.4, 0.17647059, 0.23728814, 0.33333333, 0.203125, 0.17307692, 0.28358209, 0.23214286, 0.1971831, 0.34848485, 0.26785714, 0.14084507, 0.20833333, 0.43478261, 0.26760563, 0.15277778, 0.15942029, 0.1, 0.125, 0, 0.13888889, 0.14084507, 0.10526316, 0.25, 0.14285714, 0.09459459, 0.12658228, 0.11594203, 0.1097561, 0.12857143, 0.14925373, 0.25882353, 0.19178082, 0.12941176, 0.1827957, 0.18421053, 0.07272727, 0.09090909, 0.1875, 0.08108108, 0.13402062, 0.09803922, 0.125, 0.07377049, 0.18867925, 0.0952381, 0.07894737, 0.07446809, 0.08791209, 0.23469388, 0.12698413, 0.1328125, 0.09401709, 0.11403509, 0.16666667, 0.19672131, 0.11023622, 0.15079365, 0.088, 0.06617647, 0.08176101, 0.17164179, 0.07518797, 0.08695652, 0.13173653, 0.03378378, 0.07189542, 0.1, 0.1, 0.06918239, 0.11678832, 0.07586207, 0.06040268, 0.07878788, 0.05825243, 0.04375, 0.07027027, 0.07692308, 0.10824742, 0.05, 0.01895735, 0.08173077, 0.09693878, 0.03278689, 0.06878307, 0.06603774, 0.04910714, 0.05857741, 0.0617284, 0.05936073, 0.05976096, 0.03557312, 0.06882591, 0.041841, 0.06866953, 0.02836879, 0.03065134, 0.068, 0.03076923, 0.02592593, 0.06375839, 0.04946996, 0.06049822, 0.02372881, 0.04294479, 0.04123711, 0.03728814, 0.03728814, 0.046875, 0.03293413, 0.06060606, 0.05833333, 0.03693182, 0.03170029, 0.03724928, 0.03733333, 0.02506266, 0.04909561, 0.03110048, 0.02616279, 0.02035623, 0.01670644, 0.04318182, 0.04589372, 0.02267574, 0.05882353, 0.02777778, 0.02553191, 0.01581028, 0.03043478, 0.03377111, 0.04016913, 0.01167315, 0.0198556, 0.01750973, 0.04143126, 0.03185841, 0.01864407, 0.02333333, 0.03565062, 0.02054795, 0.02677165, 0.01505017, 0, 0.01408451, 0.01170569, 0.00762195, 0.01183432, 0.01700155, 0.03065693, 0.05035971, 0.01325479, 0.01726619, 0.02758621, 0.01358696, 0.02059202, 0.01692708, 0.01212938, 0.0177665, 0.01197605, 0.01679587, 0.02038043, 0, 0.0091954, 0.00702576, 0.01601831, 0.01946721, 0.03057758, 0.01265823, 0.01522843, 0.00867679, 0.01105528, 0.01251203, 0.01132853, 0.00708502, 0.01260912, 0.01498501, 0.00643974, 0.01656315, 0.00484496, 0.00642202, 0.00993677, 0.01405811, 0.00880282, 0.0079929, 0.01305483, 0.01188455, 0.01092437, 0.00666112, 0.01862828, 0.01241722, 0.01291364, 0.00859375, 0.01176471, 0.0054902, 0.00158228, 0.00671642, 0.01081081, 0.00755858, 0.00892857, 0.00873362, 0.00642857, 0.01167883, 0.00884956, 0.01091703, 0.01201201, 0.00891632, 0.01150252, 0.01055595, 0.01081081, 0.00543478, 0.00806452, 0.01178101, 0.01248266, 0.0057508, 0.00524934, 0.01034929, 0.01142473, 0.01310345, 0.00617708, 0.00389358, 0.00952381, 0.00269179, 0.01031593, 0.00390625, 0.00586319, 0.00529451, 0.00588235, 0.00643915, 0.00754243, 0.01180328, 0.00693963, 0.00716146, 0.0073187, 0.01028278, 0.0101833, 0.00613079, 0.00724638, 0.00733333, 0.00979706, 0.00620262, 0.00909727, 0.00623701, 0.00688705, 0.00996441, 0.004954, 0.0071736, 0.00997151, 0.01453488, 0.00786838, 0.01106719, 0.0060423, 0.01043997, 0.00658376, 0.00715421, 0.00520833, 0.01724138, 0.01301871, 0.00903862, 0.01568951, 0.01218451, 0.00536193, 0.00916667, 0.00990991, 0.00632911, 0.01508429, 0.01310861, 0.01486989, 0.00782779, 0.00808081, 0.01414141, 0.01616379, 0.00951374, 0.0079096, 0.01227679, 0.01265823, 0.00813008, 0, 0.01246883, 0.0131406, 0.02103787, 0.01536313, 0.02222222, 0.01359517, 0.01818182, 0.02321725, 0.01162791, 0.00986842, 0.02678571, 0.02231237, 0.02148438, 0.01825558, 0.00763359, 0.01121076, 0.02449889, 0.03494624, 0.02421308, 0.02849741, 0.04046243, 0.03267974, 0.03714286, 0.02994012, 0.03303303, 0.01748252, 0.04379562, 0.05454545, 0.046875, 0.02681992, 0.06122449, 0.06726457, 0.07042254, 0.10714286, 0.13095238, 0.05357143, 0.06962025, 0.09375, 0.06578947, 0.0952381, 0.08783784, 0.0703125, 0.09677419, 0.03267974, 0.08737864, 0.11538462, 0.05, 0.11428571, 0.18681319, 0.15151515, 0.12643678, 0.06122449, 0.16129032, 0.1038961, 0.05, 0.18571429, 0.22222222, 0.14473684, 0.2, 0.11538462, 0.14285714, 0.171875, 0.32786885, 0.14705882, 0.16666667, 0.2, 0.16883117, 0.3877551, 0.22857143, 0.25, 0.15384615, 0.25396825, 0.24528302, 0.14516129, 0.23076923, 0.21538462, 0.14285714, 0.18032787, 0.34090909, 0.28888889, 0.42, 0.16071429, 0.26315789, 0.25, 0.16, 0.30952381, 0.22916667, 0.26, 0.171875, 0.30612245, 0.17460317, 0.26415094, 0.34883721, 0.19607843, 0.47169811, 0.325, 0.26415094, 0.23728814, 0.26923077, 0.29787234, 0.08695652, 0.29545455, 0.4, 0.35849057, 0.28571429, 0.14035088, 0.18965517, 0.17647059, 0.23255814, 0.20408163, 0.14492754, 0.19512195, 0.22727273, 0.21818182, 0.2, 0.26086957, 0.35294118, 0.18571429, 0.1875, 0.13559322, 0.22, 0.17777778, 0.26829268, 0.17391304, 0.23809524, 0.38297872, 0.21052632, 0.38095238, 0.2, 0.28301887, 0.27118644, 0.34693878, 0.14285714, 0.33333333, 0.43478261, 0.24074074, 0.23684211, 0.22033898, 0.16363636, 0.2173913, 0.1509434, 0.37209302, 0.2972973, 0.07692308, 0.13043478, 0.34782609, 0.36734694, 0.38888889, 0.44117647, 0.16129032, 0.14634146, 0.39473684, 0.42105263, 0.43243243, 0.15384615, 0.125, 0.09803922, 0.44736842, 0.15555556, 0.30769231, 0.48837209, 0.59459459, 0.31578947, 0.32432432, 0.33333333, 0.625, 0.41463415, 0.36585366, 0.38888889, 0.20512821, 0.32432432, 0.2962963, 0.24324324, 0.34042553, 0.38888889, 0.18367347, 0.61290323, 0.28205128, 0.72222222, 0.75757576, 0.375, 0.16666667, 0.57142857, 0.4, 0.1875, 0.45454545, 0, 0.32653061, 0.24137931, 0.29545455, 0.5625, 0.4, 0.75, 0.30555556, 0.52777778, 0.275, 0.51219512, 0.35483871, 0.24390244, 0.5, 0.1627907, 0.37142857, 0.375, 0.325, 0.38461538, 0.2, 0.65217391, 0.48387097, 0.5862069, 0.36363636, 0.33333333, 0.21276596, 0.48275862, 0.42857143, 0.23684211, 0.44736842, 0.70967742, 0.34285714, 0.27777778, 0.6, 1.03846154, 0.66666667, 0.48648649, 0.525, 0.69230769, 0.55263158, 0.61764706, 0.47222222, 0.44444444, 0.72972973, 1.03571429, 0.65517241, 0.575, 0.30769231, 0.85, 0.48148148, 0.64285714, 0.58823529, 0.46341463, 0.82608696, 0.61111111, 0.4, 0.57142857, 0.75, 0.59090909, 0.75, 0.69444444, 0.64285714, 0.56410256, 0.65625, 0.67647059, 0.76666667, 0.51351351, 0.65789474, 0.78947368, 0.70833333, 0.54285714, 0.8, 0.81481481, 0.72727273, 0.72222222, 0.48, 1.13043478, 0.72413793, 0.79166667, 0.76470588, 0.42857143, 1.33333333, 0.72727273, 1.4, 0.5, 0.77142857, 1.15384615, 0.65714286, 1.33333333, 0.96, 1.2173913, 0.69444444, 1.63157895, 0.6, 0.44444444, 0.71875, 0.43333333, 0.82758621, 0.80952381, 0.41463415, 1.02702703, 0.62068966, 3, 0.56521739, 0.69230769, 0.92307692, 2.21428571, 1.20833333, 1.29166667, 0.84615385, 1.03125, 1.52631579, 1.09090909, 0.73333333, 1.55555556, 0.94285714, 1.34482759, 1.09090909, 1.41666667, 1.31818182, 0.96153846, 0.84615385, 0.70588235, 1, 1.66666667, 0.88888889, 2, 1.5, 1.03571429, 0.96969697, 1.4, 1.16666667, 1.42857143, 1.20689655, 1.4137931, 1, 1.53846154, 0.97368421, 1.20689655, 0.90909091, 0.81578947, 1.225, 0.94594595, 1.1875, 1, 1.47619048, 1.21052632, 1.5, 1, 0.63157895, 0.78, 1.11538462, 0.86111111, 1.12903226, 1.61538462, 1.75862069, 0.97435897, 1.06451613, 1.2, 0.82222222, 1.56, 1.07142857, 1.48387097, 1.3, 2.55555556, 1.28571429, 1.25, 1.28571429, 0.91891892, 1.6, 1.3125, 1.38235294, 1.05882353, 1.83870968, 1.25, 0.64, 1.51851852, 1.41935484, 1.21875, 1.08823529, 1.42424242, 1.73076923, 1.36842105, 1.28571429, 1.62162162, 1.06976744, 1.25714286, 1, 1.3030303, 1.58823529, 1.28125, 1.8125, 2.35, 1.89285714, 1.08108108, 1.92592593, 1.09302326, 0.7, 2.41666667, 1.15151515, 0.95652174, 1.24324324, 1.18604651, 2.07692308, 1.625, 1.31111111, 1.79411765, 1.34375, 1.66666667, 1.2, 1.3255814, 1.04347826, 1.96153846, 1.75, 1.26315789, 1.8, 1.93548387, 1.43902439, 1.64516129, 1.30232558, 1.10204082, 1.36363636, 1.62790698, 1.27083333, 1.8, 1.4, 1.17021277, 1.4047619, 1.7, 1.70588235, 1.44186047, 1.85185185, 1.2826087, 1.48648649, 1.89285714, 1.8125, 1.69767442, 1.59090909, 1.63888889, 1.69444444, 0.90196078, 1.875, 1.31818182, 1.875, 1.48780488, 1.42857143, 1.87878788, 2.13793103, 1.175, 1.03846154, 1.48484848, 1.42857143, 2.02941176, 1.64102564, 1.20833333, 1.27083333, 1.91176471, 1.35849057, 1.55, 1.625, 1.72222222, 1.46153846, 1.54054054, 1.725, 1.55555556, 1.5106383, 1.325, 1.3255814, 1.3255814, 1.09615385, 2.34285714, 1.61111111, 1.31707317, 1.67567568, 1.28, 1.51162791, 1.44444444, 1.27906977, 1.24324324, 1.83333333, 1.25, 1.17307692, 1.81481481, 1.94285714, 0.91935484, 1.1754386, 1.62162162, 2.1875, 1.125, 1.5, 1.57777778, 1.39534884, 1.56756757, 1.4516129, 1.04651163, 1.01923077, 1.48484848, 1.69230769, 1.31578947, 2.23076923, 1.59259259, 1.7027027, 1.23529412, 1.59090909, 1.67741935, 1.11627907, 1.66666667, 1.82758621, 1.625, 1.38888889, 1.80645161, 1.02439024, 1.89285714, 1.5, 1.12903226, 2.03571429, 1, 1.60606061, 1.25, 1.1, 1.525, 1.96969697, 2.08333333, 1.38888889, 1.77272727, 1.36666667, 1.75, 1.34375, 1.5, 2.04, 1.43589744, 1.34210526, 1.23529412, 1.64285714, 2.06451613, 1.58064516, 2.45, 0.82978723, 1.45945946, 1.07894737, 1.75, 1.5, 1.24324324, 1.31034483, 1.28571429, 1.16129032, 1.26666667, 2.68181818, 2, 1.5, 1.11764706, 1.37931034, 1.61904762, 1.5862069, 1.15625, 1.2962963, 1.91304348, 1.47826087, 0.96774194, 2, 1.10344828, 0.85185185, 1.47826087, 1.73076923, 0.81818182, 1.55, 1.26923077, 1.85714286, 0.96428571, 1.18518519, 1.68, 1.375, 1.23333333, 1, 1.2962963, 1.21875, 0.84375, 1, 0.97142857, 0.96153846, 1.4, 0.93103448, 1.47826087, 1.25925926, 1.17857143, 2.66666667, 0.9375, 2.1875, 1.83333333, 0.625, 2.14285714, 1.42105263, 1.25, 1.76470588, 0.89285714, 0.92592593, 1.33333333, 1.80952381, 1.08, 1.56521739, 1, 1.54166667, 1.28571429, 1.35, 0.96666667, 1.91666667, 1, 0.59090909, 2.0952381, 1.54545455, 1.07407407, 1.57692308, 2.11764706, 1.09090909, 1.90909091, 1, 0.90322581, 1.70588235, 2.22222222, 1.125, 1.04761905, 1.13636364, 1.47619048, 0.82142857, 1.5, 1.4, 1.35, 1.70588235, 2.75, 1.28, 0.8, 1.14814815, 1.75, 1.30434783, 1.14285714, 2, 1.29411765, 1.57894737, 1.30434783, 0.55882353, 1, 0.5, 1.31578947, 2.06666667, 1.54545455, 1.72413793, 1.30769231, 0.96, 1.125, 1.24, 1.40909091, 1.34782609, 0.95454545, 2.125, 2.15, 0.9, 2.2, 1.15, 1.22222222, 1.28571429, 2.04761905, 0.91666667, 1.17391304, 1.04347826, 1.25, 2.25, 1.20833333, 1.84615385, 2.38461538, 0.96153846, 1.6, 1.125, 1.28571429, 1.36842105, 1.72222222, 1.92857143, 1.35, 1.83333333, 0.80769231, 0.8, 1.60869565, 2.54545455, 1.34782609, 1.47368421, 2.1875, 2, 1.09677419, 1.08, 1.42857143, 0.88461538, 0.9047619, 1.6, 1.29166667, 1.4, 2.47368421, 1.52, 1.16666667, 0.95238095, 1.2173913, 1.29166667, 1.04347826, 1.63636364, 1.20833333, 1, 1.46153846, 1.03333333, 0.84, 0.77777778, 1.32, 1.6, 1.63157895, 1.72, 1.70588235, 0.74285714, 1.24, 1.13043478, 2.11764706, 1.22222222, 1.07142857, 1.75, 1.28, 1.26315789, 1.72, 1.86363636, 0.89189189, 0.89655172, 1.04347826, 1.78947368, 3.41666667, 1.03125, 1, 1.5, 1.16666667, 1.21428571, 1.33333333, 1.5, 0.47222222, 1.06666667, 0.90625, 1.04761905, 1.25925926, 1.875, 3.25, 1.16666667, 1.6, 0.77777778, 1.15, 1.16, 1.69565217, 1.26315789, 1.17857143, 1.0952381, 1.07692308, 0.86956522, 1.94736842, 1.15, 0.90909091, 0.76923077, 1.2, 1.71428571, 0.91304348, 1, 1.36, 1.39130435, 0.96153846, 1.04347826, 0.87096774, 1.25, 1.94117647, 1.04, 1.43478261, 1.22727273] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Curve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220404225880"] }, { "type": "character", "attributes": {}, "value": ["20140222040423"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1180, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["", "temp.matrix"] } ] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, 0.14754098, 0.12068966, 0.1147541, 0.16666667, 0.4, 0.25531915, 0.2826087, 0.32075472, 0.14285714, 0, 0, 0, 0.20408163, 0.03947368, 0.23529412, 0.32727273, 0.18333333, 0.21568627, 0.22222222, 0.17307692, 0.17241379, 0, 0.234375, 0.25925926, 0.35, 0.26923077, 0.28571429, 0.15217391, 0.31034483, 0.43243243, 0.21276596, 0.21875, 0.16393443, 0.18181818, 0.14705882, 0.18032787, 0.37777778, 0.36734694, 0.18333333, 0.06666667, 0.2037037, 0.24489796, 0.41176471, 0.10606061, 0.36, 0.13793103, 0.3220339, 0.15254237, 0.35, 0.42307692, 0.21428571, 0.36363636, 0.34042553, 0.44186047, 0.20408163, 0.39130435, 0.33333333, 0.33333333, 0.18421053, 0.140625, 0.15789474, 0.34693878, 0.92857143, 0.24489796, 0.17105263, 0.19230769, 0.27906977, 0.12121212, 0.28571429, 0.25, 0.2, 0.22, 0.35294118, 0.09433962, 0.16071429, 0.10714286, 0.17777778, 0.29310345, 0.33333333, 0.3, 0.19298246, 0.18518519, 0.27586207, 0.21568627, 0.28, 0.20408163, 0.18181818, 0.17391304, 0.24590164, 0.1372549, 0.18333333, 0.17741935, 0.30769231, 0.17857143, 0.35897436, 0.27083333, 0.21568627, 0.20408163, 0.19512195, 0.16393443, 0.2, 0.16666667, 0.325, 0.27906977, 0.34883721, 0.26086957, 0.15384615, 0.26530612, 0.22727273, 0.32608696, 0.25, 0.21428571, 0.07142857, 0.25925926, 0.375, 0, 0.36538462, 0.26666667, 0.20833333, 0.07272727, 0.25, 0.2244898, 0.28787879, 0.34615385, 0.06818182, 0.25490196, 0.28846154, 0.06896552, 0.20967742, 0, 0.2, 0.1884058, 0.26666667, 0.19565217, 0.19354839, 0.16, 0.19607843, 0.26415094, 0.3255814, 0.28301887, 0.19672131, 0.14, 0.2745098, 0.14814815, 0.4, 0.17647059, 0.23728814, 0.33333333, 0.203125, 0.17307692, 0.28358209, 0.23214286, 0.1971831, 0.34848485, 0.26785714, 0.14084507, 0.20833333, 0.43478261, 0.26760563, 0.15277778, 0.15942029, 0.1, 0.125, 0, 0.13888889, 0.14084507, 0.10526316, 0.25, 0.14285714, 0.09459459, 0.12658228, 0.11594203, 0.1097561, 0.12857143, 0.14925373, 0.25882353, 0.19178082, 0.12941176, 0.1827957, 0.18421053, 0.07272727, 0.09090909, 0.1875, 0.08108108, 0.13402062, 0.09803922, 0.125, 0.07377049, 0.18867925, 0.0952381, 0.07894737, 0.07446809, 0.08791209, 0.23469388, 0.12698413, 0.1328125, 0.09401709, 0.11403509, 0.16666667, 0.19672131, 0.11023622, 0.15079365, 0.088, 0.06617647, 0.08176101, 0.17164179, 0.07518797, 0.08695652, 0.13173653, 0.03378378, 0.07189542, 0.1, 0.1, 0.06918239, 0.11678832, 0.07586207, 0.06040268, 0.07878788, 0.05825243, 0.04375, 0.07027027, 0.07692308, 0.10824742, 0.05, 0.01895735, 0.08173077, 0.09693878, 0.03278689, 0.06878307, 0.06603774, 0.04910714, 0.05857741, 0.0617284, 0.05936073, 0.05976096, 0.03557312, 0.06882591, 0.041841, 0.06866953, 0.02836879, 0.03065134, 0.068, 0.03076923, 0.02592593, 0.06375839, 0.04946996, 0.06049822, 0.02372881, 0.04294479, 0.04123711, 0.03728814, 0.03728814, 0.046875, 0.03293413, 0.06060606, 0.05833333, 0.03693182, 0.03170029, 0.03724928, 0.03733333, 0.02506266, 0.04909561, 0.03110048, 0.02616279, 0.02035623, 0.01670644, 0.04318182, 0.04589372, 0.02267574, 0.05882353, 0.02777778, 0.02553191, 0.01581028, 0.03043478, 0.03377111, 0.04016913, 0.01167315, 0.0198556, 0.01750973, 0.04143126, 0.03185841, 0.01864407, 0.02333333, 0.03565062, 0.02054795, 0.02677165, 0.01505017, 0, 0.01408451, 0.01170569, 0.00762195, 0.01183432, 0.01700155, 0.03065693, 0.05035971, 0.01325479, 0.01726619, 0.02758621, 0.01358696, 0.02059202, 0.01692708, 0.01212938, 0.0177665, 0.01197605, 0.01679587, 0.02038043, 0, 0.0091954, 0.00702576, 0.01601831, 0.01946721, 0.03057758, 0.01265823, 0.01522843, 0.00867679, 0.01105528, 0.01251203, 0.01132853, 0.00708502, 0.01260912, 0.01498501, 0.00643974, 0.01656315, 0.00484496, 0.00642202, 0.00993677, 0.01405811, 0.00880282, 0.0079929, 0.01305483, 0.01188455, 0.01092437, 0.00666112, 0.01862828, 0.01241722, 0.01291364, 0.00859375, 0.01176471, 0.0054902, 0.00158228, 0.00671642, 0.01081081, 0.00755858, 0.00892857, 0.00873362, 0.00642857, 0.01167883, 0.00884956, 0.01091703, 0.01201201, 0.00891632, 0.01150252, 0.01055595, 0.01081081, 0.00543478, 0.00806452, 0.01178101, 0.01248266, 0.0057508, 0.00524934, 0.01034929, 0.01142473, 0.01310345, 0.00617708, 0.00389358, 0.00952381, 0.00269179, 0.01031593, 0.00390625, 0.00586319, 0.00529451, 0.00588235, 0.00643915, 0.00754243, 0.01180328, 0.00693963, 0.00716146, 0.0073187, 0.01028278, 0.0101833, 0.00613079, 0.00724638, 0.00733333, 0.00979706, 0.00620262, 0.00909727, 0.00623701, 0.00688705, 0.00996441, 0.004954, 0.0071736, 0.00997151, 0.01453488, 0.00786838, 0.01106719, 0.0060423, 0.01043997, 0.00658376, 0.00715421, 0.00520833, 0.01724138, 0.01301871, 0.00903862, 0.01568951, 0.01218451, 0.00536193, 0.00916667, 0.00990991, 0.00632911, 0.01508429, 0.01310861, 0.01486989, 0.00782779, 0.00808081, 0.01414141, 0.01616379, 0.00951374, 0.0079096, 0.01227679, 0.01265823, 0.00813008, 0, 0.01246883, 0.0131406, 0.02103787, 0.01536313, 0.02222222, 0.01359517, 0.01818182, 0.02321725, 0.01162791, 0.00986842, 0.02678571, 0.02231237, 0.02148438, 0.01825558, 0.00763359, 0.01121076, 0.02449889, 0.03494624, 0.02421308, 0.02849741, 0.04046243, 0.03267974, 0.03714286, 0.02994012, 0.03303303, 0.01748252, 0.04379562, 0.05454545, 0.046875, 0.02681992, 0.06122449, 0.06726457, 0.07042254, 0.10714286, 0.13095238, 0.05357143, 0.06962025, 0.09375, 0.06578947, 0.0952381, 0.08783784, 0.0703125, 0.09677419, 0.03267974, 0.08737864, 0.11538462, 0.05, 0.11428571, 0.18681319, 0.15151515, 0.12643678, 0.06122449, 0.16129032, 0.1038961, 0.05, 0.18571429, 0.22222222, 0.14473684, 0.2, 0.11538462, 0.14285714, 0.171875, 0.32786885, 0.14705882, 0.16666667, 0.2, 0.16883117, 0.3877551, 0.22857143, 0.25, 0.15384615, 0.25396825, 0.24528302, 0.14516129, 0.23076923, 0.21538462, 0.14285714, 0.18032787, 0.34090909, 0.28888889, 0.42, 0.16071429, 0.26315789, 0.25, 0.16, 0.30952381, 0.22916667, 0.26, 0.171875, 0.30612245, 0.17460317, 0.26415094, 0.34883721, 0.19607843, 0.47169811, 0.325, 0.26415094, 0.23728814, 0.26923077, 0.29787234, 0.08695652, 0.29545455, 0.4, 0.35849057, 0.28571429, 0.14035088, 0.18965517, 0.17647059, 0.23255814, 0.20408163, 0.14492754, 0.19512195, 0.22727273, 0.21818182, 0.2, 0.26086957, 0.35294118, 0.18571429, 0.1875, 0.13559322, 0.22, 0.17777778, 0.26829268, 0.17391304, 0.23809524, 0.38297872, 0.21052632, 0.38095238, 0.2, 0.28301887, 0.27118644, 0.34693878, 0.14285714, 0.33333333, 0.43478261, 0.24074074, 0.23684211, 0.22033898, 0.16363636, 0.2173913, 0.1509434, 0.37209302, 0.2972973, 0.07692308, 0.13043478, 0.34782609, 0.36734694, 0.38888889, 0.44117647, 0.16129032, 0.14634146, 0.39473684, 0.42105263, 0.43243243, 0.15384615, 0.125, 0.09803922, 0.44736842, 0.15555556, 0.30769231, 0.48837209, 0.59459459, 0.31578947, 0.32432432, 0.33333333, 0.625, 0.41463415, 0.36585366, 0.38888889, 0.20512821, 0.32432432, 0.2962963, 0.24324324, 0.34042553, 0.38888889, 0.18367347, 0.61290323, 0.28205128, 0.72222222, 0.75757576, 0.375, 0.16666667, 0.57142857, 0.4, 0.1875, 0.45454545, 0, 0.32653061, 0.24137931, 0.29545455, 0.5625, 0.4, 0.75, 0.30555556, 0.52777778, 0.275, 0.51219512, 0.35483871, 0.24390244, 0.5, 0.1627907, 0.37142857, 0.375, 0.325, 0.38461538, 0.2, 0.65217391, 0.48387097, 0.5862069, 0.36363636, 0.33333333, 0.21276596, 0.48275862, 0.42857143, 0.23684211, 0.44736842, 0.70967742, 0.34285714, 0.27777778, 0.6, 1.03846154, 0.66666667, 0.48648649, 0.525, 0.69230769, 0.55263158, 0.61764706, 0.47222222, 0.44444444, 0.72972973, 1.03571429, 0.65517241, 0.575, 0.30769231, 0.85, 0.48148148, 0.64285714, 0.58823529, 0.46341463, 0.82608696, 0.61111111, 0.4, 0.57142857, 0.75, 0.59090909, 0.75, 0.69444444, 0.64285714, 0.56410256, 0.65625, 0.67647059, 0.76666667, 0.51351351, 0.65789474, 0.78947368, 0.70833333, 0.54285714, 0.8, 0.81481481, 0.72727273, 0.72222222, 0.48, 1.13043478, 0.72413793, 0.79166667, 0.76470588, 0.42857143, 1.33333333, 0.72727273, 1.4, 0.5, 0.77142857, 1.15384615, 0.65714286, 1.33333333, 0.96, 1.2173913, 0.69444444, 1.63157895, 0.6, 0.44444444, 0.71875, 0.43333333, 0.82758621, 0.80952381, 0.41463415, 1.02702703, 0.62068966, 3, 0.56521739, 0.69230769, 0.92307692, 2.21428571, 1.20833333, 1.29166667, 0.84615385, 1.03125, 1.52631579, 1.09090909, 0.73333333, 1.55555556, 0.94285714, 1.34482759, 1.09090909, 1.41666667, 1.31818182, 0.96153846, 0.84615385, 0.70588235, 1, 1.66666667, 0.88888889, 2, 1.5, 1.03571429, 0.96969697, 1.4, 1.16666667, 1.42857143, 1.20689655, 1.4137931, 1, 1.53846154, 0.97368421, 1.20689655, 0.90909091, 0.81578947, 1.225, 0.94594595, 1.1875, 1, 1.47619048, 1.21052632, 1.5, 1, 0.63157895, 0.78, 1.11538462, 0.86111111, 1.12903226, 1.61538462, 1.75862069, 0.97435897, 1.06451613, 1.2, 0.82222222, 1.56, 1.07142857, 1.48387097, 1.3, 2.55555556, 1.28571429, 1.25, 1.28571429, 0.91891892, 1.6, 1.3125, 1.38235294, 1.05882353, 1.83870968, 1.25, 0.64, 1.51851852, 1.41935484, 1.21875, 1.08823529, 1.42424242, 1.73076923, 1.36842105, 1.28571429, 1.62162162, 1.06976744, 1.25714286, 1, 1.3030303, 1.58823529, 1.28125, 1.8125, 2.35, 1.89285714, 1.08108108, 1.92592593, 1.09302326, 0.7, 2.41666667, 1.15151515, 0.95652174, 1.24324324, 1.18604651, 2.07692308, 1.625, 1.31111111, 1.79411765, 1.34375, 1.66666667, 1.2, 1.3255814, 1.04347826, 1.96153846, 1.75, 1.26315789, 1.8, 1.93548387, 1.43902439, 1.64516129, 1.30232558, 1.10204082, 1.36363636, 1.62790698, 1.27083333, 1.8, 1.4, 1.17021277, 1.4047619, 1.7, 1.70588235, 1.44186047, 1.85185185, 1.2826087, 1.48648649, 1.89285714, 1.8125, 1.69767442, 1.59090909, 1.63888889, 1.69444444, 0.90196078, 1.875, 1.31818182, 1.875, 1.48780488, 1.42857143, 1.87878788, 2.13793103, 1.175, 1.03846154, 1.48484848, 1.42857143, 2.02941176, 1.64102564, 1.20833333, 1.27083333, 1.91176471, 1.35849057, 1.55, 1.625, 1.72222222, 1.46153846, 1.54054054, 1.725, 1.55555556, 1.5106383, 1.325, 1.3255814, 1.3255814, 1.09615385, 2.34285714, 1.61111111, 1.31707317, 1.67567568, 1.28, 1.51162791, 1.44444444, 1.27906977, 1.24324324, 1.83333333, 1.25, 1.17307692, 1.81481481, 1.94285714, 0.91935484, 1.1754386, 1.62162162, 2.1875, 1.125, 1.5, 1.57777778, 1.39534884, 1.56756757, 1.4516129, 1.04651163, 1.01923077, 1.48484848, 1.69230769, 1.31578947, 2.23076923, 1.59259259, 1.7027027, 1.23529412, 1.59090909, 1.67741935, 1.11627907, 1.66666667, 1.82758621, 1.625, 1.38888889, 1.80645161, 1.02439024, 1.89285714, 1.5, 1.12903226, 2.03571429, 1, 1.60606061, 1.25, 1.1, 1.525, 1.96969697, 2.08333333, 1.38888889, 1.77272727, 1.36666667, 1.75, 1.34375, 1.5, 2.04, 1.43589744, 1.34210526, 1.23529412, 1.64285714, 2.06451613, 1.58064516, 2.45, 0.82978723, 1.45945946, 1.07894737, 1.75, 1.5, 1.24324324, 1.31034483, 1.28571429, 1.16129032, 1.26666667, 2.68181818, 2, 1.5, 1.11764706, 1.37931034, 1.61904762, 1.5862069, 1.15625, 1.2962963, 1.91304348, 1.47826087, 0.96774194, 2, 1.10344828, 0.85185185, 1.47826087, 1.73076923, 0.81818182, 1.55, 1.26923077, 1.85714286, 0.96428571, 1.18518519, 1.68, 1.375, 1.23333333, 1, 1.2962963, 1.21875, 0.84375, 1, 0.97142857, 0.96153846, 1.4, 0.93103448, 1.47826087, 1.25925926, 1.17857143, 2.66666667, 0.9375, 2.1875, 1.83333333, 0.625, 2.14285714, 1.42105263, 1.25, 1.76470588, 0.89285714, 0.92592593, 1.33333333, 1.80952381, 1.08, 1.56521739, 1, 1.54166667, 1.28571429, 1.35, 0.96666667, 1.91666667, 1, 0.59090909, 2.0952381, 1.54545455, 1.07407407, 1.57692308, 2.11764706, 1.09090909, 1.90909091, 1, 0.90322581, 1.70588235, 2.22222222, 1.125, 1.04761905, 1.13636364, 1.47619048, 0.82142857, 1.5, 1.4, 1.35, 1.70588235, 2.75, 1.28, 0.8, 1.14814815, 1.75, 1.30434783, 1.14285714, 2, 1.29411765, 1.57894737, 1.30434783, 0.55882353, 1, 0.5, 1.31578947, 2.06666667, 1.54545455, 1.72413793, 1.30769231, 0.96, 1.125, 1.24, 1.40909091, 1.34782609, 0.95454545, 2.125, 2.15, 0.9, 2.2, 1.15, 1.22222222, 1.28571429, 2.04761905, 0.91666667, 1.17391304, 1.04347826, 1.25, 2.25, 1.20833333, 1.84615385, 2.38461538, 0.96153846, 1.6, 1.125, 1.28571429, 1.36842105, 1.72222222, 1.92857143, 1.35, 1.83333333, 0.80769231, 0.8, 1.60869565, 2.54545455, 1.34782609, 1.47368421, 2.1875, 2, 1.09677419, 1.08, 1.42857143, 0.88461538, 0.9047619, 1.6, 1.29166667, 1.4, 2.47368421, 1.52, 1.16666667, 0.95238095, 1.2173913, 1.29166667, 1.04347826, 1.63636364, 1.20833333, 1, 1.46153846, 1.03333333, 0.84, 0.77777778, 1.32, 1.6, 1.63157895, 1.72, 1.70588235, 0.74285714, 1.24, 1.13043478, 2.11764706, 1.22222222, 1.07142857, 1.75, 1.28, 1.26315789, 1.72, 1.86363636, 0.89189189, 0.89655172, 1.04347826, 1.78947368, 3.41666667, 1.03125, 1, 1.5, 1.16666667, 1.21428571, 1.33333333, 1.5, 0.47222222, 1.06666667, 0.90625, 1.04761905, 1.25925926, 1.875, 3.25, 1.16666667, 1.6, 0.77777778, 1.15, 1.16, 1.69565217, 1.26315789, 1.17857143, 1.0952381, 1.07692308, 0.86956522, 1.94736842, 1.15, 0.90909091, 0.76923077, 1.2, 1.71428571, 0.91304348, 1, 1.36, 1.39130435, 0.96153846, 1.04347826, 0.87096774, 1.25, 1.94117647, 1.04, 1.43478261, 1.22727273] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Curve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220404225880"] }, { "type": "character", "attributes": {}, "value": ["20140222040423"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "recordType": { "type": "character", "attributes": {}, "value": ["TL (UVVIS)"] }, "curveType": { "type": "character", "attributes": {}, "value": ["merged"] }, "data": { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [2360, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["newx", "temp.matrix"] } ] } }, "value": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 11, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 12, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7, 12.8, 12.9, 13, 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14, 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15, 15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16, 16.1, 16.2, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8, 16.9, 17, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, 17.7, 17.8, 17.9, 18, 18.1, 18.2, 18.3, 18.4, 18.5, 18.6, 18.7, 18.8, 18.9, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 19.6, 19.7, 19.8, 19.9, 20, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.9, 60, 60.1, 60.2, 60.3, 60.4, 60.5, 60.6, 60.7, 60.8, 60.9, 61, 61.1, 61.2, 61.3, 61.4, 61.5, 61.6, 61.7, 61.8, 61.9, 62, 62.1, 62.2, 62.3, 62.4, 62.5, 62.6, 62.7, 62.8, 62.9, 63, 63.1, 63.2, 63.3, 63.4, 63.5, 63.6, 63.7, 63.8, 63.9, 64, 64.1, 64.2, 64.3, 64.4, 64.5, 64.6, 64.7, 64.8, 64.9, 65, 65.1, 65.2, 65.3, 65.4, 65.5, 65.6, 65.7, 65.8, 65.9, 66, 66.1, 66.2, 66.3, 66.4, 66.5, 66.6, 66.7, 66.8, 66.9, 67, 67.1, 67.2, 67.3, 67.4, 67.5, 67.6, 67.7, 67.8, 67.9, 68, 68.1, 68.2, 68.3, 68.4, 68.5, 68.6, 68.7, 68.8, 68.9, 69, 69.1, 69.2, 69.3, 69.4, 69.5, 69.6, 69.7, 69.8, 69.9, 70, 70.1, 70.2, 70.3, 70.4, 70.5, 70.6, 70.7, 70.8, 70.9, 71, 71.1, 71.2, 71.3, 71.4, 71.5, 71.6, 71.7, 71.8, 71.9, 72, 72.1, 72.2, 72.3, 72.4, 72.5, 72.6, 72.7, 72.8, 72.9, 73, 73.1, 73.2, 73.3, 73.4, 73.5, 73.6, 73.7, 73.8, 73.9, 74, 74.1, 74.2, 74.3, 74.4, 74.5, 74.6, 74.7, 74.8, 74.9, 75, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.7, 75.8, 75.9, 76, 76.1, 76.2, 76.3, 76.4, 76.5, 76.6, 76.7, 76.8, 76.9, 77, 77.1, 77.2, 77.3, 77.4, 77.5, 77.6, 77.7, 77.8, 77.9, 78, 78.1, 78.2, 78.3, 78.4, 78.5, 78.6, 78.7, 78.8, 78.9, 79, 79.1, 79.2, 79.3, 79.4, 79.5, 79.6, 79.7, 79.8, 79.9, 80, 80.1, 80.2, 80.3, 80.4, 80.5, 80.6, 80.7, 80.8, 80.9, 81, 81.1, 81.2, 81.3, 81.4, 81.5, 81.6, 81.7, 81.8, 81.9, 82, 82.1, 82.2, 82.3, 82.4, 82.5, 82.6, 82.7, 82.8, 82.9, 83, 83.1, 83.2, 83.3, 83.4, 83.5, 83.6, 83.7, 83.8, 83.9, 84, 84.1, 84.2, 84.3, 84.4, 84.5, 84.6, 84.7, 84.8, 84.9, 85, 85.1, 85.2, 85.3, 85.4, 85.5, 85.6, 85.7, 85.8, 85.9, 86, 86.1, 86.2, 86.3, 86.4, 86.5, 86.6, 86.7, 86.8, 86.9, 87, 87.1, 87.2, 87.3, 87.4, 87.5, 87.6, 87.7, 87.8, 87.9, 88, 88.1, 88.2, 88.3, 88.4, 88.5, 88.6, 88.7, 88.8, 88.9, 89, 89.1, 89.2, 89.3, 89.4, 89.5, 89.6, 89.7, 89.8, 89.9, 90, 90.1, 90.2, 90.3, 90.4, 90.5, 90.6, 90.7, 90.8, 90.9, 91, 91.1, 91.2, 91.3, 91.4, 91.5, 91.6, 91.7, 91.8, 91.9, 92, 92.1, 92.2, 92.3, 92.4, 92.5, 92.6, 92.7, 92.8, 92.9, 93, 93.1, 93.2, 93.3, 93.4, 93.5, 93.6, 93.7, 93.8, 93.9, 94, 94.1, 94.2, 94.3, 94.4, 94.5, 94.6, 94.7, 94.8, 94.9, 95, 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.7, 95.8, 95.9, 96, 96.1, 96.2, 96.3, 96.4, 96.5, 96.6, 96.7, 96.8, 96.9, 97, 97.1, 97.2, 97.3, 97.4, 97.5, 97.6, 97.7, 97.8, 97.9, 98, 98.1, 98.2, 98.3, 98.4, 98.5, 98.6, 98.7, 98.8, 98.9, 99, 99.1, 99.2, 99.3, 99.4, 99.5, 99.6, 99.7, 99.8, 99.9, 100, 100.1, 100.2, 100.3, 100.4, 100.5, 100.6, 100.7, 100.8, 100.9, 101, 101.1, 101.2, 101.3, 101.4, 101.5, 101.6, 101.7, 101.8, 101.9, 102, 102.1, 102.2, 102.3, 102.4, 102.5, 102.6, 102.7, 102.8, 102.9, 103, 103.1, 103.2, 103.3, 103.4, 103.5, 103.6, 103.7, 103.8, 103.9, 104, 104.1, 104.2, 104.3, 104.4, 104.5, 104.6, 104.7, 104.8, 104.9, 105, 105.1, 105.2, 105.3, 105.4, 105.5, 105.6, 105.7, 105.8, 105.9, 106, 106.1, 106.2, 106.3, 106.4, 106.5, 106.6, 106.7, 106.8, 106.9, 107, 107.1, 107.2, 107.3, 107.4, 107.5, 107.6, 107.7, 107.8, 107.9, 108, 108.1, 108.2, 108.3, 108.4, 108.5, 108.6, 108.7, 108.8, 108.9, 109, 109.1, 109.2, 109.3, 109.4, 109.5, 109.6, 109.7, 109.8, 109.9, 110, 110.1, 110.2, 110.3, 110.4, 110.5, 110.6, 110.7, 110.8, 110.9, 111, 111.1, 111.2, 111.3, 111.4, 111.5, 111.6, 111.7, 111.8, 111.9, 112, 112.1, 112.2, 112.3, 112.4, 112.5, 112.6, 112.7, 112.8, 112.9, 113, 113.1, 113.2, 113.3, 113.4, 113.5, 113.6, 113.7, 113.8, 113.9, 114, 114.1, 114.2, 114.3, 114.4, 114.5, 114.6, 114.7, 114.8, 114.9, 115, 115.1, 115.2, 115.3, 115.4, 115.5, 115.6, 115.7, 115.8, 115.9, 116, 116.1, 116.2, 116.3, 116.4, 116.5, 116.6, 116.7, 116.8, 116.9, 117, 117.1, 117.2, 117.3, 117.4, 117.5, 117.6, 117.7, 117.8, 117.9, 118, 118.1, 118.2, 118.3, 118.4, 118.5, 118.6, 118.7, 118.8, 118.9, 119, 119.1, 119.2, 119.3, 119.4, 119.5, 119.6, 119.7, 119.8, 119.9, 120, 120.1, 120.2, 120.3, 120.4, 120.5, 120.6, 120.7, 120.8, 120.9, 121, 121.1, 121.2, 121.3, 121.4, 121.5, 121.6, 121.7, 121.8, 121.9, 122, 122.1, 122.2, 122.3, 122.4, 122.5, 122.6, 122.7, 122.8, 122.9, 123, 123.1, 123.2, 123.3, 123.4, 123.5, 123.6, 123.7, 123.8, 123.9, 124, 124.1, 124.2, 124.3, 124.4, 124.5, 124.6, 124.7, 124.8, 124.9, 125, 125.1, 125.2, 125.3, 125.4, 125.5, 125.6, 125.7, 125.8, 125.9, 126, 126.1, 126.2, 126.3, 126.4, 126.5, 126.6, 126.7, 126.8, 126.9, 127, 127.1, 127.2, 127.3, 127.4, 127.5, 127.6, 127.7, 127.8, 127.9, 128, 128.1, 128.2, 128.3, 128.4, 128.5, 128.6, 128.7, 128.8, 128.9, 129, 129.1, 129.2, 129.3, 129.4, 129.5, 129.6, 129.7, 129.8, 129.9, 130, 130.1, 130.2, 130.3, 130.4, 130.5, 130.6, 130.7, 130.8, 130.9, 131, 131.1, 131.2, 131.3, 131.4, 131.5, 131.6, 131.7, 131.8, 131.9, 132, 132.1, 132.2, 132.3, 132.4, 132.5, 132.6, 132.7, 132.8, 132.9, 133, 133.1, 133.2, 133.3, 133.4, 133.5, 133.6, 133.7, 133.8, 133.9, 134, 134.1, 134.2, 134.3, 134.4, 134.5, 134.6, 134.7, 134.8, 134.9, 135, 135.1, 135.2, 135.3, 135.4, 135.5, 135.6, 135.7, 135.8, 135.9, 136, 136.1, 136.2, 136.3, 136.4, 136.5, 136.6, 136.7, 136.8, 136.9, 137, 137.1, 137.2, 137.3, 137.4, 137.5, 137.6, 137.7, 137.8, 137.9, 138, 138.1, 138.2, 138.3, 138.4, 138.5, 138.6, 138.7, 138.8, 138.9, 139, 139.1, 139.2, 139.3, 139.4, 139.5, 139.6, 139.7, 139.8, 139.9, 140, 140.1, 140.2, 140.3, 140.4, 140.5, 140.6, 140.7, 140.8, 140.9, 141, 141.1, 141.2, 141.3, 141.4, 141.5, 141.6, 141.7, 141.8, 141.9, 142, 142.1, 142.2, 142.3, 142.4, 142.5, 142.6, 142.7, 142.8, 142.9, 143, 143.1, 143.2, 143.3, 143.4, 143.5, 143.6, 143.7, 143.8, 143.9, 144, 144.1, 144.2, 144.3, 144.4, 144.5, 144.6, 144.7, 144.8, 144.9, 145, 145.1, 145.2, 145.3, 145.4, 145.5, 145.6, 145.7, 145.8, 145.9, 146, 146.1, 146.2, 146.3, 146.4, 146.5, 146.6, 146.7, 146.8, 146.9, 147, 147.1, 147.2, 147.3, 147.4, 147.5, 147.6, 147.7, 147.8, 147.9, 148, 148.1, 148.2, 148.3, 148.4, 148.5, 148.6, 148.7, 148.8, 148.9, 149, 149.1, 149.2, 149.3, 149.4, 149.5, 149.6, 149.7, 149.8, 149.9, 150, 150.1, 150.2, 150.3, 150.4, 150.5, 150.6, 150.7, 150.8, 150.9, 151, 151.1, 151.2, 151.3, 151.4, 151.5, 151.6, 151.7, 151.8, 151.9, 152, 152.1, 152.2, 152.3, 152.4, 152.5, 152.6, 152.7, 152.8, 152.9, 153, 153.1, 153.2, 153.3, 153.4, 153.5, 153.6, 153.7, 153.8, 153.9, 154, 154.1, 154.2, 154.3, 154.4, 154.5, 154.6, 154.7, 154.8, 154.9, 155, 155.1, 155.2, 155.3, 155.4, 155.5, 155.6, 155.7, 155.8, 155.9, 156, 156.1, 156.2, 156.3, 156.4, 156.5, 156.6, 156.7, 156.8, 156.9, 157, 157.1, 157.2, 157.3, 157.4, 157.5, 157.6, 157.7, 157.8, 157.9, 158, 158.1, 158.2, 158.3, 158.4, 158.5, 158.6, 158.7, 158.8, 158.9, 159, 159.1, 159.2, 159.3, 159.4, 159.5, 159.6, 159.7, 159.8, 159.9, 160, 160.1, 160.2, 160.3, 160.4, 160.5, 160.6, 160.7, 160.8, 160.9, 161, 161.1, 161.2, 161.3, 161.4, 161.5, 161.6, 161.7, 161.8, 161.9, 162, 162.1, 162.2, 162.3, 162.4, 162.5, 162.6, 162.7, 162.8, 162.9, 163, 163.1, 163.2, 163.3, 163.4, 163.5, 163.6, 163.7, 163.8, 163.9, 164, 164.1, 164.2, 164.3, 164.4, 164.5, 164.6, 164.7, 164.8, 164.9, 165, 165.1, 165.2, 165.3, 165.4, 165.5, 165.6, 165.7, 165.8, 165.9, 166, 166.1, 166.2, 166.3, 166.4, 166.5, 166.6, 166.7, 166.8, 166.9, 167, 167.1, 167.2, 167.3, 167.4, 167.5, 167.6, 167.7, 167.8, 167.9, 168, 168.1, 168.2, 168.3, 168.4, 168.5, 168.6, 168.7, 168.8, 168.9, 169, 169.1, 169.2, 169.3, 169.4, 169.5, 169.6, 169.7, 169.8, 169.9, 170, 170.1, 170.2, 170.3, 170.4, 170.5, 170.6, 170.7, 170.8, 170.9, 171, 171.1, 171.2, 171.3, 171.4, 171.5, 171.6, 171.7, 171.8, 171.9, 172, 172.1, 172.2, 172.3, 172.4, 172.5, 172.6, 172.7, 172.8, 172.9, 173, 173.1, 173.2, 173.3, 173.4, 173.5, 173.6, 173.7, 173.8, 173.9, 174, 174.1, 174.2, 174.3, 174.4, 174.5, 174.6, 174.7, 174.8, 174.9, 175, 175.1, 175.2, 175.3, 175.4, 175.5, 175.6, 175.7, 175.8, 175.9, 176, 176.1, 176.2, 176.3, 176.4, 176.5, 176.6, 176.7, 176.8, 176.9, 177, 177.1, 177.2, 177.3, 177.4, 177.5, 177.6, 177.7, 177.8, 177.9, 178, 178.1, 178.2, 178.3, 178.4, 178.5, 178.6, 178.7, 178.8, 178.9, 179, 179.1, 179.2, 179.3, 179.4, 179.5, 179.6, 179.7, 179.8, 179.9, 180, 180.1, 180.2, 180.3, 180.4, 180.5, 180.6, 180.7, 180.8, 180.9, 181, 181.1, 181.2, 181.3, 181.4, 181.5, 181.6, 181.7, 181.8, 181.9, 182, 182.1, 182.2, 182.3, 182.4, 182.5, 182.6, 182.7, 182.8, 182.9, 183, 183.1, 183.2, 183.3, 183.4, 183.5, 183.6, 183.7, 183.8, 183.9, 184, 184.1, 184.2, 184.3, 184.4, 184.5, 184.6, 184.7, 184.8, 184.9, 185, 185.1, 185.2, 185.3, 185.4, 185.5, 185.6, 185.7, 185.8, 185.9, 186, 186.1, 186.2, 186.3, 186.4, 186.5, 186.6, 186.7, 186.8, 186.9, 187, 187.1, 187.2, 187.3, 187.4, 187.5, 187.6, 187.7, 187.8, 187.9, 188, 188.1, 188.2, 188.3, 188.4, 188.5, 188.6, 188.7, 188.8, 188.9, 189, 189.1, 189.2, 189.3, 189.4, 189.5, 189.6, 189.7, 189.8, 189.9, 190, 190.1, 190.2, 190.3, 190.4, 190.5, 190.6, 190.7, 190.8, 190.9, 191, 191.1, 191.2, 191.3, 191.4, 191.5, 191.6, 191.7, 191.8, 191.9, 192, 192.1, 192.2, 192.3, 192.4, 192.5, 192.6, 192.7, 192.8, 192.9, 193, 193.1, 193.2, 193.3, 193.4, 193.5, 193.6, 193.7, 193.8, 193.9, 194, 194.1, 194.2, 194.3, 194.4, 194.5, 194.6, 194.7, 194.8, 194.9, 195, 195.1, 195.2, 195.3, 195.4, 195.5, 195.6, 195.7, 195.8, 195.9, 196, 196.1, 196.2, 196.3, 196.4, 196.5, 196.6, 196.7, 196.8, 196.9, 197, 197.1, 197.2, 197.3, 197.4, 197.5, 197.6, 197.7, 197.8, 197.9, 198, 198.1, 198.2, 198.3, 198.4, 198.5, 198.6, 198.7, 198.8, 198.9, 199, 199.1, 199.2, 199.3, 199.4, 199.5, 199.6, 199.7, 199.8, 199.9, 200, 200.1, 200.2, 200.3, 200.4, 200.5, 200.6, 200.7, 200.8, 200.9, 201, 201.1, 201.2, 201.3, 201.4, 201.5, 201.6, 201.7, 201.8, 201.9, 202, 202.1, 202.2, 202.3, 202.4, 202.5, 202.6, 202.7, 202.8, 202.9, 203, 203.1, 203.2, 203.3, 203.4, 203.5, 203.6, 203.7, 203.8, 203.9, 204, 204.1, 204.2, 204.3, 204.4, 204.5, 204.6, 204.7, 204.8, 204.9, 205, 205.1, 205.2, 205.3, 205.4, 205.5, 205.6, 205.7, 205.8, 205.9, 206, 206.1, 206.2, 206.3, 206.4, 206.5, 206.6, 206.7, 206.8, 206.9, 207, 207.1, 207.2, 207.3, 207.4, 207.5, 207.6, 207.7, 207.8, 207.9, 208, 208.1, 208.2, 208.3, 208.4, 208.5, 208.6, 208.7, 208.8, 208.9, 209, 209.1, 209.2, 209.3, 209.4, 209.5, 209.6, 209.7, 209.8, 209.9, 210, 210.1, 210.2, 210.3, 210.4, 210.5, 210.6, 210.7, 210.8, 210.9, 211, 211.1, 211.2, 211.3, 211.4, 211.5, 211.6, 211.7, 211.8, 211.9, 212, 212.1, 212.2, 212.3, 212.4, 212.5, 212.6, 212.7, 212.8, 212.9, 213, 213.1, 213.2, 213.3, 213.4, 213.5, 213.6, 213.7, 213.8, 213.9, 214, 214.1, 214.2, 214.3, 214.4, 214.5, 214.6, 214.7, 214.8, 214.9, 215, 215.1, 215.2, 215.3, 215.4, 215.5, 215.6, 215.7, 215.8, 215.9, 216, 216.1, 216.2, 216.3, 216.4, 216.5, 216.6, 216.7, 216.8, 216.9, 217, 217.1, 217.2, 217.3, 217.4, 217.5, 217.6, 217.7, 217.8, 217.9, 218, 218.1, 218.2, 218.3, 218.4, 218.5, 218.6, 218.7, 218.8, 218.9, 219, 219.1, 219.2, 219.3, 219.4, 219.5, 219.6, 219.7, 219.8, 219.9, 220, 220.1, 220.2, 220.3, 220.4, 220.5, 220.6, 220.7, 220.8, 220.9, 221, 221.1, 221.2, 221.3, 221.4, 221.5, 221.6, 221.7, 221.8, 221.9, 222, 222.1, 222.2, 222.3, 222.4, 222.5, 222.6, 222.7, 222.8, 222.9, 223, 223.1, 223.2, 223.3, 223.4, 223.5, 223.6, 223.7, 223.8, 223.9, 224, 224.1, 224.2, 224.3, 224.4, 224.5, 224.6, 224.7, 224.8, 224.9, 225, 225.1, 225.2, 225.3, 225.4, 225.5, 225.6, 225.7, 225.8, 225.9, 226, 226.1, 226.2, 226.3, 226.4, 226.5, 226.6, 226.7, 226.8, 226.9, 227, 227.1, 227.2, 227.3, 227.4, 227.5, 227.6, 227.7, 227.8, 227.9, 228, 228.1, 228.2, 228.3, 228.4, 228.5, 228.6, 228.7, 228.8, 228.9, 229, 229.1, 229.2, 229.3, 229.4, 229.5, 229.6, 229.7, 229.8, 229.9, 230, 230.1, 230.2, 230.3, 230.4, 230.5, 230.6, 230.7, 230.8, 230.9, 231, 231.1, 231.2, 231.3, 231.4, 231.5, 231.6, 231.7, 231.8, 231.9, 232, 232.1, 232.2, 232.3, 232.4, 232.5, 232.6, 232.7, 232.8, 232.9, 233, 233.1, 233.2, 233.3, 233.4, 233.5, 233.6, 233.7, 233.8, 233.9, 234, 234.1, 234.2, 234.3, 234.4, 234.5, 234.6, 234.7, 234.8, 234.9, 235, 235.1, 235.2, 235.3, 235.4, 235.5, 235.6, 235.7, 235.8, 235.9, 236, 9, 7, 7, 9, 20, 12, 13, 17, 10, 11, 13, 13, 10, 3, 12, 18, 11, 11, 12, 9, 10, 0, 15, 14, 14, 14, 14, 7, 18, 16, 10, 14, 10, 10, 5, 11, 17, 18, 11, 4, 11, 12, 21, 7, 18, 8, 19, 9, 14, 22, 12, 20, 16, 19, 10, 18, 20, 18, 14, 9, 9, 17, 26, 12, 13, 10, 12, 8, 12, 16, 9, 11, 18, 5, 9, 6, 8, 17, 18, 18, 11, 10, 16, 11, 14, 10, 10, 8, 15, 7, 11, 11, 16, 10, 14, 13, 11, 10, 8, 10, 9, 10, 13, 12, 15, 12, 6, 13, 10, 15, 14, 9, 4, 14, 15, 0, 19, 12, 10, 4, 16, 11, 19, 18, 3, 13, 15, 4, 13, 0, 10, 13, 12, 9, 12, 8, 10, 14, 14, 15, 12, 7, 14, 8, 22, 12, 14, 19, 13, 9, 19, 13, 14, 23, 15, 10, 15, 20, 19, 11, 11, 7, 9, 0, 10, 10, 8, 14, 10, 7, 10, 8, 9, 9, 10, 22, 14, 11, 17, 14, 8, 8, 15, 9, 13, 10, 12, 9, 20, 10, 9, 7, 8, 23, 16, 17, 11, 13, 17, 24, 14, 19, 11, 9, 13, 23, 10, 12, 22, 5, 11, 16, 17, 11, 16, 11, 9, 13, 12, 7, 13, 14, 21, 8, 4, 17, 19, 8, 13, 14, 11, 14, 15, 13, 15, 9, 17, 10, 16, 8, 8, 17, 8, 7, 19, 14, 17, 7, 14, 12, 11, 11, 15, 11, 18, 21, 13, 11, 13, 14, 10, 19, 13, 9, 8, 7, 19, 19, 10, 25, 13, 12, 8, 14, 18, 19, 6, 11, 9, 22, 18, 11, 14, 20, 12, 17, 9, 0, 9, 7, 5, 8, 11, 21, 35, 9, 12, 20, 10, 16, 13, 9, 14, 10, 13, 15, 0, 8, 6, 14, 19, 27, 12, 15, 8, 11, 13, 11, 7, 13, 15, 7, 16, 5, 7, 11, 15, 10, 9, 15, 14, 13, 8, 22, 15, 16, 11, 15, 7, 2, 9, 14, 10, 12, 12, 9, 16, 12, 15, 16, 13, 16, 15, 16, 8, 12, 17, 18, 9, 8, 16, 17, 19, 9, 6, 15, 4, 16, 6, 9, 8, 9, 10, 12, 18, 10, 11, 11, 16, 15, 9, 11, 11, 14, 9, 13, 9, 10, 14, 7, 10, 14, 20, 11, 14, 8, 14, 9, 9, 7, 21, 16, 11, 19, 14, 6, 11, 11, 7, 17, 14, 16, 8, 8, 14, 15, 9, 7, 11, 11, 7, 0, 10, 10, 15, 11, 15, 9, 12, 14, 7, 6, 15, 11, 11, 9, 4, 5, 11, 13, 10, 11, 14, 10, 13, 10, 11, 5, 12, 15, 12, 7, 15, 15, 15, 21, 22, 9, 11, 15, 10, 16, 13, 9, 12, 5, 9, 12, 6, 12, 17, 15, 11, 6, 15, 8, 4, 13, 20, 11, 11, 9, 8, 11, 20, 10, 11, 10, 13, 19, 16, 17, 10, 16, 13, 9, 15, 14, 8, 11, 15, 13, 21, 9, 15, 15, 8, 13, 11, 13, 11, 15, 11, 14, 15, 10, 25, 13, 14, 14, 14, 14, 4, 13, 10, 19, 12, 8, 11, 9, 10, 10, 10, 8, 10, 12, 10, 12, 18, 13, 12, 8, 11, 8, 11, 8, 15, 18, 8, 16, 8, 15, 16, 17, 6, 14, 20, 13, 9, 13, 9, 10, 8, 16, 11, 4, 6, 16, 18, 14, 15, 5, 6, 15, 16, 16, 6, 6, 5, 17, 7, 12, 21, 22, 12, 12, 15, 15, 17, 15, 14, 8, 12, 8, 9, 16, 14, 9, 19, 11, 26, 25, 12, 6, 20, 16, 6, 15, 0, 16, 7, 13, 18, 14, 30, 11, 19, 11, 21, 11, 10, 15, 7, 13, 12, 13, 15, 6, 15, 15, 17, 12, 12, 10, 14, 12, 9, 17, 22, 12, 10, 18, 27, 14, 18, 21, 18, 21, 21, 17, 16, 27, 29, 19, 23, 12, 17, 13, 18, 20, 19, 19, 22, 16, 16, 21, 13, 24, 25, 18, 22, 21, 23, 23, 19, 25, 15, 17, 19, 16, 22, 24, 26, 12, 26, 21, 19, 26, 15, 16, 24, 28, 16, 27, 30, 23, 28, 24, 28, 25, 31, 18, 16, 23, 13, 24, 17, 17, 38, 18, 42, 13, 18, 24, 31, 29, 31, 22, 33, 29, 24, 33, 28, 33, 39, 24, 34, 29, 25, 22, 24, 23, 30, 24, 52, 27, 29, 32, 35, 35, 30, 35, 41, 28, 40, 37, 35, 30, 31, 49, 35, 38, 26, 31, 23, 39, 30, 24, 39, 29, 31, 35, 42, 51, 38, 33, 42, 37, 39, 30, 46, 39, 46, 45, 40, 36, 34, 48, 42, 47, 36, 57, 50, 32, 41, 44, 39, 37, 47, 45, 52, 45, 60, 46, 44, 36, 43, 54, 41, 58, 47, 53, 40, 52, 47, 35, 58, 38, 44, 46, 51, 54, 52, 59, 61, 43, 50, 48, 57, 48, 51, 63, 48, 45, 60, 59, 51, 56, 54, 60, 70, 61, 63, 49, 55, 59, 51, 58, 62, 50, 59, 55, 53, 58, 73, 70, 59, 61, 46, 75, 58, 60, 61, 60, 62, 62, 47, 54, 49, 60, 69, 64, 58, 61, 65, 72, 62, 65, 62, 57, 57, 69, 70, 71, 53, 57, 57, 57, 82, 58, 54, 62, 64, 65, 52, 55, 46, 66, 60, 61, 49, 68, 57, 67, 60, 70, 54, 57, 71, 60, 58, 45, 45, 53, 49, 66, 50, 58, 43, 63, 42, 70, 52, 48, 60, 53, 52, 50, 56, 42, 53, 54, 35, 57, 46, 53, 50, 44, 61, 65, 50, 50, 39, 41, 49, 43, 48, 51, 56, 51, 42, 46, 64, 49, 49, 39, 54, 41, 49, 39, 46, 38, 36, 36, 38, 59, 34, 42, 38, 40, 34, 46, 37, 35, 44, 34, 30, 44, 32, 23, 34, 45, 27, 31, 33, 39, 27, 32, 42, 44, 37, 24, 35, 39, 27, 26, 34, 25, 35, 27, 34, 34, 33, 32, 30, 35, 44, 20, 30, 27, 30, 30, 25, 25, 32, 38, 27, 36, 27, 37, 27, 27, 29, 46, 26, 13, 44, 34, 29, 41, 36, 24, 21, 26, 28, 29, 40, 27, 22, 25, 31, 23, 24, 28, 27, 29, 33, 32, 20, 31, 28, 30, 32, 30, 22, 30, 30, 19, 27, 13, 25, 31, 34, 50, 34, 24, 27, 31, 31, 31, 21, 34, 43, 27, 44, 23, 22, 27, 43, 22, 27, 24, 25, 27, 29, 24, 31, 25, 32, 27, 27, 26, 31, 27, 27, 33, 21, 16, 37, 28, 31, 28, 35, 28, 34, 27, 40, 23, 19, 32, 31, 28, 47, 38, 28, 20, 28, 31, 24, 36, 29, 22, 38, 31, 21, 14, 33, 32, 31, 43, 29, 26, 31, 26, 36, 33, 30, 35, 32, 24, 43, 41, 33, 26, 24, 34, 41, 33, 25, 33, 35, 34, 32, 39, 17, 32, 29, 22, 34, 30, 39, 35, 24, 21, 23, 29, 39, 24, 33, 23, 28, 20, 37, 23, 20, 20, 36, 24, 21, 32, 34, 32, 25, 24, 27, 35, 33, 26, 33, 27, 61, 58, 61, 54, 50, 47, 46, 53, 70, 58, 52, 56, 49, 76, 51, 55, 60, 51, 54, 52, 58, 66, 64, 54, 40, 52, 49, 46, 58, 37, 47, 64, 61, 55, 34, 61, 45, 49, 60, 60, 54, 49, 51, 66, 50, 58, 59, 59, 40, 52, 56, 55, 47, 43, 49, 46, 60, 54, 76, 64, 57, 49, 28, 49, 76, 52, 43, 66, 42, 64, 45, 50, 51, 53, 56, 56, 45, 58, 54, 60, 57, 54, 58, 51, 50, 49, 55, 46, 61, 51, 60, 62, 52, 56, 39, 48, 51, 49, 41, 61, 45, 60, 40, 43, 43, 46, 39, 49, 44, 46, 56, 42, 56, 54, 40, 50, 52, 45, 48, 55, 64, 49, 66, 52, 44, 51, 52, 58, 62, 62, 50, 69, 45, 46, 62, 50, 51, 53, 43, 53, 61, 50, 51, 54, 55, 68, 59, 57, 64, 52, 67, 56, 71, 66, 56, 71, 72, 46, 71, 72, 69, 70, 72, 78, 72, 71, 76, 56, 70, 74, 79, 69, 82, 70, 67, 85, 73, 85, 93, 76, 110, 88, 80, 111, 97, 102, 96, 122, 106, 105, 114, 94, 91, 98, 126, 128, 117, 114, 102, 122, 127, 126, 125, 136, 159, 134, 133, 138, 167, 148, 153, 160, 170, 159, 137, 145, 149, 165, 206, 160, 185, 182, 194, 160, 211, 208, 196, 244, 189, 212, 224, 239, 243, 219, 251, 253, 247, 239, 233, 282, 261, 250, 260, 270, 298, 283, 281, 295, 326, 291, 295, 295, 320, 334, 297, 360, 352, 347, 349, 375, 399, 387, 418, 344, 393, 419, 440, 414, 441, 425, 468, 470, 506, 460, 533, 473, 514, 554, 514, 531, 565, 590, 600, 561, 584, 635, 598, 609, 639, 598, 656, 676, 647, 685, 695, 679, 695, 725, 736, 777, 768, 742, 788, 835, 774, 736, 848, 870, 854, 874, 976, 883, 948, 985, 922, 995, 1039, 971, 988, 1031, 1001, 1087, 966, 1032, 1090, 1107, 1067, 1136, 1126, 1149, 1178, 1190, 1201, 1181, 1208, 1239, 1280, 1275, 1275, 1264, 1340, 1295, 1323, 1344, 1374, 1400, 1370, 1356, 1374, 1332, 1458, 1391, 1421, 1480, 1472, 1488, 1443, 1442, 1565, 1524, 1546, 1488, 1450, 1457, 1541, 1575, 1486, 1551, 1536, 1535, 1511, 1530, 1553, 1591, 1525, 1441, 1536, 1503, 1556, 1473, 1468, 1518, 1500, 1429, 1451, 1429, 1443, 1452, 1405, 1413, 1394, 1404, 1376, 1398, 1265, 1324, 1341, 1367, 1258, 1344, 1218, 1229, 1217, 1211, 1149, 1119, 1200, 1110, 1106, 1127, 1068, 1076, 1022, 990, 990, 928, 946, 885, 896, 869, 861, 788, 802, 761, 713, 716, 675, 662, 660, 603, 602, 608, 560, 493, 512, 493, 524, 446, 449, 372, 413, 386, 346, 306, 350, 334, 333, 286, 274, 275, 256, 261, 245, 223, 213, 196, 168, 168, 158, 160, 152, 168, 148, 128, 124, 153, 103, 104, 120, 105, 91, 99, 87, 98, 93, 77, 80, 70, 90, 76, 55, 78, 56, 64, 61, 68, 66, 50, 77, 49, 70, 68, 65, 63, 53, 62, 65, 65, 56, 61, 44, 45, 50, 56, 57, 60, 50, 42, 48, 50, 64, 49, 63, 53, 43, 51, 53, 40, 53, 59, 52, 47, 46, 44, 25, 53, 42, 57, 58, 51, 43, 49, 69, 41, 44, 55, 50, 46, 51, 70, 64, 59, 50, 45, 41, 46, 63, 47, 38, 42, 40, 53, 59, 49, 42, 42, 46, 54, 38, 59, 55, 46, 53, 43, 37, 52, 46, 46, 49, 36, 34, 31, 41, 38, 38, 37, 39, 48, 51, 38, 45, 39, 43, 37, 38, 37, 45, 24, 41, 41, 36, 39, 37, 27, 37, 47, 36, 49, 31, 39, 36, 33, 32, 36, 35, 40, 32, 33, 34, 49, 29, 44, 32, 35, 40, 36, 36, 40, 41, 31, 41, 30, 43, 35, 32, 40, 39, 30, 23, 31, 29, 33, 36, 47, 29, 28, 38, 38, 31, 35, 36, 30, 26, 21, 37, 40, 26, 38, 34, 36, 36, 37, 28, 29, 40, 39, 20, 27, 28, 34, 41, 23, 36, 40, 28, 28, 22, 32, 36, 28, 39, 32, 34, 30, 37, 38, 19, 24, 35, 20, 27, 33, 36, 25, 23, 29, 24, 34, 35, 12, 33, 20, 32, 35, 26, 35, 21, 25, 23, 36, 19, 30, 36, 32, 30, 29, 21, 41, 37, 29, 14, 23, 26, 26, 14, 24, 24, 26, 32, 19, 22, 45, 18, 35, 29, 22, 24, 22, 26, 26, 34, 23, 18, 27, 26, 18, 28, 33, 25, 30, 21, 29, 29, 28, 26, 38, 29, 33, 38, 40, 37, 32, 26, 21, 19, 26, 30, 38, 50, 26, 36, 31, 26, 29, 39, 31, 35, 45, 25, 28, 31, 30, 18, 35, 32, 28, 37, 30, 32, 34, 34, 31, 40, 50, 27, 31, 32, 34, 33, 26, 38, 35, 37, 43, 35, 36, 33, 34, 32, 32, 20, 28, 37, 27, 43, 50, 24, 33, 46, 37, 43, 26, 32, 45, 34, 32, 30, 40, 43, 46, 26, 36, 38, 25, 31, 41, 31, 43, 49, 44, 43, 48, 35, 35, 47, 42, 30, 34, 43, 27, 46, 37, 28, 32, 43, 44, 36, 36, 51, 40, 44, 32, 41, 42, 33, 29, 40, 52, 33, 42, 34, 39, 48, 48, 34, 53, 40, 40, 36, 39, 37, 40, 45, 47, 40, 43, 43, 52, 35, 36, 41, 37, 50, 43, 36, 43, 37, 36, 48, 52, 27, 35, 62, 57, 37, 32, 48, 38, 45, 43, 37, 31, 43, 52, 33, 39, 38, 26, 27, 37, 34, 44, 31, 43, 36, 29, 32, 36, 31, 41, 28, 36, 31, 28, 46, 33, 40, 40, 40, 33, 24, 36, 22, 30, 28, 32, 32, 25, 39, 38, 34, 28, 31, 31, 20, 47, 37, 38, 28, 26, 37, 29, 28, 31, 30, 22, 17, 28, 34, 29, 21, 29, 32, 27, 23, 23, 31, 22, 29, 27, 23, 26, 33, 20, 26, 21, 28, 27, 25, 32, 30, 24, 27, 32, 32, 26, 35, 26, 25, 29, 23, 27, 28, 12, 32, 16, 24, 32, 14, 19, 24, 17, 28, 27, 24, 21, 25, 23, 27, 24, 21, 20, 30, 24, 26, 22, 21, 22, 27, 26, 17, 22, 11, 26, 31, 17, 18, 24, 21, 22, 21, 28, 16, 20, 20, 17, 12, 25, 25, 27, 16, 23, 28, 15, 17, 19, 23, 34, 27, 26, 19, 15, 22, 29, 26, 25, 24, 25, 22, 23, 22, 16, 20, 30, 20, 20, 18, 21, 21, 24, 23, 23, 20, 12, 24, 13, 13, 26, 20, 24, 21, 19, 18, 14, 20, 18, 26, 20, 23, 11, 23, 19, 16, 14, 31, 25, 28, 26, 21, 20, 24, 20, 19, 25, 24, 21, 23, 24, 23, 22, 24, 22, 26, 30, 25, 18, 25, 20, 19, 25, 17, 35, 25, 23, 17, 27, 28, 20, 25, 19, 25, 22, 37, 29, 23, 19, 12, 32, 25, 22, 30, 28, 24, 26, 36, 30, 32, 21, 27, 16, 12, 30, 15, 27, 20, 25, 23, 19, 28, 21, 26, 23, 19, 20, 22, 26, 30, 14, 23, 32, 25, 23, 26, 23, 31, 28, 17, 25, 23, 22] }, "originator": { "type": "character", "attributes": {}, "value": ["merge_RLum.Data.Curve"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration", "state", "parentID", "startDate", "curveType", "detector", "curveDescripter", "offset", "interval", "duration"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220351125856"] }, { "type": "character", "attributes": {}, "value": ["20140222035112"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] }, { "type": "character", "attributes": {}, "value": ["finished"] }, { "type": "character", "attributes": {}, "value": ["3002220404225880"] }, { "type": "character", "attributes": {}, "value": ["20140222040423"] }, { "type": "character", "attributes": {}, "value": ["measured"] }, { "type": "character", "attributes": {}, "value": ["UVVIS"] }, { "type": "character", "attributes": {}, "value": ["t [s]; cts [1/ch]"] }, { "type": "character", "attributes": {}, "value": ["0"] }, { "type": "character", "attributes": {}, "value": ["0.1"] }, { "type": "character", "attributes": {}, "value": ["118"] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Data.Curve", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/read_BIN2R.md0000644000176200001440000022200014762554470021314 0ustar liggesusers# test the import of various BIN-file versions { "type": "S4", "attributes": { "METADATA": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ID", "SEL", "VERSION", "LENGTH", "PREVIOUS", "NPOINTS", "RECTYPE", "RUN", "SET", "POSITION", "GRAIN", "GRAINNUMBER", "CURVENO", "XCOORD", "YCOORD", "SAMPLE", "COMMENT", "SYSTEMID", "FNAME", "USER", "TIME", "DATE", "DTYPE", "BL_TIME", "BL_UNIT", "NORM1", "NORM2", "NORM3", "BG", "SHIFT", "TAG", "LTYPE", "LIGHTSOURCE", "LPOWER", "LIGHTPOWER", "LOW", "HIGH", "RATE", "TEMPERATURE", "MEASTEMP", "AN_TEMP", "AN_TIME", "TOLDELAY", "TOLON", "TOLOFF", "IRR_TIME", "IRR_TYPE", "IRR_UNIT", "IRR_DOSERATE", "IRR_DOSERATEERR", "TIMESINCEIRR", "TIMETICK", "ONTIME", "OFFTIME", "STIMPERIOD", "GATE_ENABLED", "ENABLE_FLAGS", "GATE_START", "GATE_STOP", "PTENABLED", "DTENABLED", "DEADTIME", "MAXLPOWER", "XRF_ACQTIME", "XRF_HV", "XRF_CURR", "XRF_DEADTIMEF", "DETECTOR_ID", "LOWERFILTER_ID", "UPPERFILTER_ID", "ENOISEFACTOR", "MARKPOS_X1", "MARKPOS_Y1", "MARKPOS_X2", "MARKPOS_Y2", "MARKPOS_X3", "MARKPOS_Y3", "EXTR_START", "EXTR_END", "SEQUENCE"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1, 2] }, { "type": "logical", "attributes": {}, "value": [true, true] }, { "type": "double", "attributes": {}, "value": [4, 4] }, { "type": "integer", "attributes": {}, "value": [1272, 1272] }, { "type": "integer", "attributes": {}, "value": [0, 1272] }, { "type": "integer", "attributes": {}, "value": [250, 250] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [1, 1] }, { "type": "integer", "attributes": {}, "value": [2, 2] }, { "type": "integer", "attributes": {}, "value": [1, 2] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "character", "attributes": {}, "value": ["BT 607", "BT 607"] }, { "type": "character", "attributes": {}, "value": ["Main Measurement Middle Grain SachsenLoesse", "Main Measurement Middle Grain SachsenLoesse"] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "character", "attributes": {}, "value": ["", ""] }, { "type": "character", "attributes": {}, "value": ["Default", "Default"] }, { "type": "character", "attributes": {}, "value": ["19:14:32", "19:16:11"] }, { "type": "character", "attributes": {}, "value": ["060920", "060920"] }, { "type": "character", "attributes": {}, "value": ["Natural", "Natural"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [1, 1] }, { "type": "character", "attributes": {}, "value": ["TL", "TL"] }, { "type": "character", "attributes": {}, "value": ["None", "None"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [221, 221] }, { "type": "double", "attributes": {}, "value": [5, 5] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": [220, 220] }, { "type": "double", "attributes": {}, "value": [10, 10] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "integer", "attributes": {}, "value": ["NA", "NA"] }, { "type": "integer", "attributes": {}, "value": ["NA", "NA"] }, { "type": "integer", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "character", "attributes": {}, "value": ["20100906", "20100906"] } ] }, "DATA": { "type": "list", "attributes": {}, "value": [ { "type": "integer", "attributes": {}, "value": [2, 0, 13, 1, 1, 5, 6, 12, 12, 0, 2, 4, 2, 4, 6, 6, 4, 8, 6, 8, 3, 2, 8, 1, 4, 3, 6, 8, 3, 1, 3, 1, 1, 1, 12, 5, 1, 10, 0, 0, 2, 2, 2, 1, 12, 1, 3, 4, 2, 6, 4, 1, 3, 6, 6, 5, 5, 0, 0, 5, 2, 2, 0, 2, 2, 3, 15, 4, 0, 7, 4, 4, 0, 3, 14, 4, 7, 7, 4, 4, 2, 4, 1, 8, 3, 1, 3, 2, 5, 2, 17, 12, 5, 4, 3, 3, 18, 3, 12, 2, 4, 5, 7, 4, 4, 2, 8, 7, 1, 9, 5, 9, 5, 13, 0, 10, 1, 1, 1, 2, 6, 6, 9, 4, 12, 8, 1, 8, 2, 7, 6, 7, 1, 2, 5, 1, 6, 0, 11, 5, 1, 3, 13, 11, 1, 3, 5, 6, 5, 2, 5, 0, 16, 5, 10, 1, 3, 17, 4, 7, 10, 10, 4, 6, 3, 8, 4, 9, 5, 7, 6, 5, 8, 10, 8, 3, 7, 11, 4, 21, 14, 3, 4, 20, 9, 11, 8, 11, 14, 13, 12, 11, 25, 7, 9, 10, 18, 9, 15, 11, 19, 24, 29, 18, 27, 26, 25, 21, 17, 24, 32, 22, 25, 29, 35, 25, 27, 45, 43, 43, 44, 53, 51, 42, 56, 40, 49, 45, 85, 66, 72, 67, 83, 88, 90, 78, 81, 74, 108, 87, 110, 99, 123, 127, 144, 108, 120, 129, 131, 72] }, { "type": "integer", "attributes": {}, "value": [4, 2, 3, 0, 20, 4, 4, 2, 3, 12, 3, 6, 6, 15, 8, 3, 1, 5, 5, 8, 1, 6, 8, 6, 5, 20, 12, 4, 4, 8, 2, 5, 11, 3, 5, 6, 1, 4, 11, 5, 9, 5, 4, 6, 5, 5, 1, 1, 4, 7, 1, 12, 6, 4, 1, 0, 2, 5, 5, 10, 11, 4, 3, 9, 3, 2, 7, 2, 7, 11, 8, 2, 0, 6, 6, 8, 0, 8, 2, 8, 8, 5, 10, 4, 1, 24, 7, 4, 7, 5, 6, 5, 17, 1, 3, 1, 2, 4, 5, 6, 26, 4, 7, 8, 11, 5, 6, 2, 6, 6, 5, 14, 3, 10, 2, 18, 2, 0, 2, 1, 10, 10, 2, 11, 7, 0, 2, 16, 0, 13, 6, 10, 0, 3, 6, 6, 15, 3, 2, 10, 4, 3, 6, 2, 11, 5, 2, 7, 3, 6, 2, 1, 6, 4, 0, 1, 3, 5, 4, 8, 7, 6, 10, 6, 2, 7, 3, 7, 3, 4, 10, 7, 4, 12, 6, 6, 16, 11, 6, 6, 1, 8, 8, 11, 5, 10, 6, 17, 3, 6, 10, 8, 11, 10, 8, 15, 14, 11, 14, 10, 9, 12, 11, 12, 8, 19, 16, 41, 13, 22, 20, 39, 15, 27, 27, 24, 25, 32, 26, 20, 30, 27, 37, 38, 29, 31, 35, 42, 49, 41, 36, 60, 51, 43, 41, 48, 49, 55, 75, 53, 76, 67, 59, 61, 88, 76, 95, 85, 101, 41] } ] }, ".RESERVED": { "type": "list", "attributes": {}, "value": [ { "type": "list", "attributes": {}, "value": [ { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=" }, { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAA==" } ] }, { "type": "list", "attributes": {}, "value": [ { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=" }, { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAA==" } ] } ] } }, "value": { "class": "Risoe.BINfileData", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "METADATA": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ID", "SEL", "VERSION", "LENGTH", "PREVIOUS", "NPOINTS", "RECTYPE", "RUN", "SET", "POSITION", "GRAIN", "GRAINNUMBER", "CURVENO", "XCOORD", "YCOORD", "SAMPLE", "COMMENT", "SYSTEMID", "FNAME", "USER", "TIME", "DATE", "DTYPE", "BL_TIME", "BL_UNIT", "NORM1", "NORM2", "NORM3", "BG", "SHIFT", "TAG", "LTYPE", "LIGHTSOURCE", "LPOWER", "LIGHTPOWER", "LOW", "HIGH", "RATE", "TEMPERATURE", "MEASTEMP", "AN_TEMP", "AN_TIME", "TOLDELAY", "TOLON", "TOLOFF", "IRR_TIME", "IRR_TYPE", "IRR_UNIT", "IRR_DOSERATE", "IRR_DOSERATEERR", "TIMESINCEIRR", "TIMETICK", "ONTIME", "OFFTIME", "STIMPERIOD", "GATE_ENABLED", "ENABLE_FLAGS", "GATE_START", "GATE_STOP", "PTENABLED", "DTENABLED", "DEADTIME", "MAXLPOWER", "XRF_ACQTIME", "XRF_HV", "XRF_CURR", "XRF_DEADTIMEF", "DETECTOR_ID", "LOWERFILTER_ID", "UPPERFILTER_ID", "ENOISEFACTOR", "MARKPOS_X1", "MARKPOS_Y1", "MARKPOS_X2", "MARKPOS_Y2", "MARKPOS_X3", "MARKPOS_Y3", "EXTR_START", "EXTR_END", "SEQUENCE"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1, 2] }, { "type": "logical", "attributes": {}, "value": [true, true] }, { "type": "double", "attributes": {}, "value": [5, 5] }, { "type": "integer", "attributes": {}, "value": [1423, 1423] }, { "type": "integer", "attributes": {}, "value": [0, 1423] }, { "type": "integer", "attributes": {}, "value": [250, 250] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [1, 1] }, { "type": "integer", "attributes": {}, "value": [2, 2] }, { "type": "integer", "attributes": {}, "value": [1, 2] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "character", "attributes": {}, "value": ["BT 607", "BT 607"] }, { "type": "character", "attributes": {}, "value": ["Main Measurement Middle Grain SachsenLoesse", "Main Measurement Middle Grain SachsenLoesse"] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "character", "attributes": {}, "value": ["ExampleData.BINfileData", "ExampleData.BINfileData"] }, { "type": "character", "attributes": {}, "value": ["Default", "Default"] }, { "type": "character", "attributes": {}, "value": ["19:14:32", "19:16:11"] }, { "type": "character", "attributes": {}, "value": ["060920", "060920"] }, { "type": "character", "attributes": {}, "value": ["Natural", "Natural"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [1, 1] }, { "type": "character", "attributes": {}, "value": ["TL", "TL"] }, { "type": "character", "attributes": {}, "value": ["None", "None"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [221, 221] }, { "type": "double", "attributes": {}, "value": [5, 5] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [220, 220] }, { "type": "double", "attributes": {}, "value": [10, 10] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": ["NA", "NA"] }, { "type": "integer", "attributes": {}, "value": ["NA", "NA"] }, { "type": "integer", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "character", "attributes": {}, "value": ["", ""] } ] }, "DATA": { "type": "list", "attributes": {}, "value": [ { "type": "integer", "attributes": {}, "value": [2, 0, 13, 1, 1, 5, 6, 12, 12, 0, 2, 4, 2, 4, 6, 6, 4, 8, 6, 8, 3, 2, 8, 1, 4, 3, 6, 8, 3, 1, 3, 1, 1, 1, 12, 5, 1, 10, 0, 0, 2, 2, 2, 1, 12, 1, 3, 4, 2, 6, 4, 1, 3, 6, 6, 5, 5, 0, 0, 5, 2, 2, 0, 2, 2, 3, 15, 4, 0, 7, 4, 4, 0, 3, 14, 4, 7, 7, 4, 4, 2, 4, 1, 8, 3, 1, 3, 2, 5, 2, 17, 12, 5, 4, 3, 3, 18, 3, 12, 2, 4, 5, 7, 4, 4, 2, 8, 7, 1, 9, 5, 9, 5, 13, 0, 10, 1, 1, 1, 2, 6, 6, 9, 4, 12, 8, 1, 8, 2, 7, 6, 7, 1, 2, 5, 1, 6, 0, 11, 5, 1, 3, 13, 11, 1, 3, 5, 6, 5, 2, 5, 0, 16, 5, 10, 1, 3, 17, 4, 7, 10, 10, 4, 6, 3, 8, 4, 9, 5, 7, 6, 5, 8, 10, 8, 3, 7, 11, 4, 21, 14, 3, 4, 20, 9, 11, 8, 11, 14, 13, 12, 11, 25, 7, 9, 10, 18, 9, 15, 11, 19, 24, 29, 18, 27, 26, 25, 21, 17, 24, 32, 22, 25, 29, 35, 25, 27, 45, 43, 43, 44, 53, 51, 42, 56, 40, 49, 45, 85, 66, 72, 67, 83, 88, 90, 78, 81, 74, 108, 87, 110, 99, 123, 127, 144, 108, 120, 129, 131, 72] }, { "type": "integer", "attributes": {}, "value": [4, 2, 3, 0, 20, 4, 4, 2, 3, 12, 3, 6, 6, 15, 8, 3, 1, 5, 5, 8, 1, 6, 8, 6, 5, 20, 12, 4, 4, 8, 2, 5, 11, 3, 5, 6, 1, 4, 11, 5, 9, 5, 4, 6, 5, 5, 1, 1, 4, 7, 1, 12, 6, 4, 1, 0, 2, 5, 5, 10, 11, 4, 3, 9, 3, 2, 7, 2, 7, 11, 8, 2, 0, 6, 6, 8, 0, 8, 2, 8, 8, 5, 10, 4, 1, 24, 7, 4, 7, 5, 6, 5, 17, 1, 3, 1, 2, 4, 5, 6, 26, 4, 7, 8, 11, 5, 6, 2, 6, 6, 5, 14, 3, 10, 2, 18, 2, 0, 2, 1, 10, 10, 2, 11, 7, 0, 2, 16, 0, 13, 6, 10, 0, 3, 6, 6, 15, 3, 2, 10, 4, 3, 6, 2, 11, 5, 2, 7, 3, 6, 2, 1, 6, 4, 0, 1, 3, 5, 4, 8, 7, 6, 10, 6, 2, 7, 3, 7, 3, 4, 10, 7, 4, 12, 6, 6, 16, 11, 6, 6, 1, 8, 8, 11, 5, 10, 6, 17, 3, 6, 10, 8, 11, 10, 8, 15, 14, 11, 14, 10, 9, 12, 11, 12, 8, 19, 16, 41, 13, 22, 20, 39, 15, 27, 27, 24, 25, 32, 26, 20, 30, 27, 37, 38, 29, 31, 35, 42, 49, 41, 36, 60, 51, 43, 41, 48, 49, 55, 75, 53, 76, 67, 59, 61, 88, 76, 95, 85, 101, 41] } ] }, ".RESERVED": { "type": "list", "attributes": {}, "value": [ { "type": "list", "attributes": {}, "value": [ { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=" }, { "type": "raw", "attributes": {}, "value": "AAAAAA==" } ] }, { "type": "list", "attributes": {}, "value": [ { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=" }, { "type": "raw", "attributes": {}, "value": "AAAAAA==" } ] } ] } }, "value": { "class": "Risoe.BINfileData", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "METADATA": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ID", "SEL", "VERSION", "LENGTH", "PREVIOUS", "NPOINTS", "RECTYPE", "RUN", "SET", "POSITION", "GRAIN", "GRAINNUMBER", "CURVENO", "XCOORD", "YCOORD", "SAMPLE", "COMMENT", "SYSTEMID", "FNAME", "USER", "TIME", "DATE", "DTYPE", "BL_TIME", "BL_UNIT", "NORM1", "NORM2", "NORM3", "BG", "SHIFT", "TAG", "LTYPE", "LIGHTSOURCE", "LPOWER", "LIGHTPOWER", "LOW", "HIGH", "RATE", "TEMPERATURE", "MEASTEMP", "AN_TEMP", "AN_TIME", "TOLDELAY", "TOLON", "TOLOFF", "IRR_TIME", "IRR_TYPE", "IRR_UNIT", "IRR_DOSERATE", "IRR_DOSERATEERR", "TIMESINCEIRR", "TIMETICK", "ONTIME", "OFFTIME", "STIMPERIOD", "GATE_ENABLED", "ENABLE_FLAGS", "GATE_START", "GATE_STOP", "PTENABLED", "DTENABLED", "DEADTIME", "MAXLPOWER", "XRF_ACQTIME", "XRF_HV", "XRF_CURR", "XRF_DEADTIMEF", "DETECTOR_ID", "LOWERFILTER_ID", "UPPERFILTER_ID", "ENOISEFACTOR", "MARKPOS_X1", "MARKPOS_Y1", "MARKPOS_X2", "MARKPOS_Y2", "MARKPOS_X3", "MARKPOS_Y3", "EXTR_START", "EXTR_END", "SEQUENCE"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1, 2] }, { "type": "logical", "attributes": {}, "value": [true, true] }, { "type": "double", "attributes": {}, "value": [6, 6] }, { "type": "integer", "attributes": {}, "value": [1447, 1447] }, { "type": "integer", "attributes": {}, "value": [0, 1447] }, { "type": "integer", "attributes": {}, "value": [250, 250] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [1, 1] }, { "type": "integer", "attributes": {}, "value": [2, 2] }, { "type": "integer", "attributes": {}, "value": [1, 2] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "character", "attributes": {}, "value": ["BT 607", "BT 607"] }, { "type": "character", "attributes": {}, "value": ["Main Measurement Middle Grain SachsenLoesse", "Main Measurement Middle Grain SachsenLoesse"] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "character", "attributes": {}, "value": ["ExampleData.BINfileData", "ExampleData.BINfileData"] }, { "type": "character", "attributes": {}, "value": ["Default", "Default"] }, { "type": "character", "attributes": {}, "value": ["19:14:32", "19:16:11"] }, { "type": "character", "attributes": {}, "value": ["060920", "060920"] }, { "type": "character", "attributes": {}, "value": ["Natural", "Natural"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [1, 1] }, { "type": "character", "attributes": {}, "value": ["TL", "TL"] }, { "type": "character", "attributes": {}, "value": ["None", "None"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [221, 221] }, { "type": "double", "attributes": {}, "value": [5, 5] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [220, 220] }, { "type": "double", "attributes": {}, "value": [10, 10] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": ["NA", "NA"] }, { "type": "integer", "attributes": {}, "value": ["NA", "NA"] }, { "type": "integer", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "character", "attributes": {}, "value": ["", ""] } ] }, "DATA": { "type": "list", "attributes": {}, "value": [ { "type": "integer", "attributes": {}, "value": [2, 0, 13, 1, 1, 5, 6, 12, 12, 0, 2, 4, 2, 4, 6, 6, 4, 8, 6, 8, 3, 2, 8, 1, 4, 3, 6, 8, 3, 1, 3, 1, 1, 1, 12, 5, 1, 10, 0, 0, 2, 2, 2, 1, 12, 1, 3, 4, 2, 6, 4, 1, 3, 6, 6, 5, 5, 0, 0, 5, 2, 2, 0, 2, 2, 3, 15, 4, 0, 7, 4, 4, 0, 3, 14, 4, 7, 7, 4, 4, 2, 4, 1, 8, 3, 1, 3, 2, 5, 2, 17, 12, 5, 4, 3, 3, 18, 3, 12, 2, 4, 5, 7, 4, 4, 2, 8, 7, 1, 9, 5, 9, 5, 13, 0, 10, 1, 1, 1, 2, 6, 6, 9, 4, 12, 8, 1, 8, 2, 7, 6, 7, 1, 2, 5, 1, 6, 0, 11, 5, 1, 3, 13, 11, 1, 3, 5, 6, 5, 2, 5, 0, 16, 5, 10, 1, 3, 17, 4, 7, 10, 10, 4, 6, 3, 8, 4, 9, 5, 7, 6, 5, 8, 10, 8, 3, 7, 11, 4, 21, 14, 3, 4, 20, 9, 11, 8, 11, 14, 13, 12, 11, 25, 7, 9, 10, 18, 9, 15, 11, 19, 24, 29, 18, 27, 26, 25, 21, 17, 24, 32, 22, 25, 29, 35, 25, 27, 45, 43, 43, 44, 53, 51, 42, 56, 40, 49, 45, 85, 66, 72, 67, 83, 88, 90, 78, 81, 74, 108, 87, 110, 99, 123, 127, 144, 108, 120, 129, 131, 72] }, { "type": "integer", "attributes": {}, "value": [4, 2, 3, 0, 20, 4, 4, 2, 3, 12, 3, 6, 6, 15, 8, 3, 1, 5, 5, 8, 1, 6, 8, 6, 5, 20, 12, 4, 4, 8, 2, 5, 11, 3, 5, 6, 1, 4, 11, 5, 9, 5, 4, 6, 5, 5, 1, 1, 4, 7, 1, 12, 6, 4, 1, 0, 2, 5, 5, 10, 11, 4, 3, 9, 3, 2, 7, 2, 7, 11, 8, 2, 0, 6, 6, 8, 0, 8, 2, 8, 8, 5, 10, 4, 1, 24, 7, 4, 7, 5, 6, 5, 17, 1, 3, 1, 2, 4, 5, 6, 26, 4, 7, 8, 11, 5, 6, 2, 6, 6, 5, 14, 3, 10, 2, 18, 2, 0, 2, 1, 10, 10, 2, 11, 7, 0, 2, 16, 0, 13, 6, 10, 0, 3, 6, 6, 15, 3, 2, 10, 4, 3, 6, 2, 11, 5, 2, 7, 3, 6, 2, 1, 6, 4, 0, 1, 3, 5, 4, 8, 7, 6, 10, 6, 2, 7, 3, 7, 3, 4, 10, 7, 4, 12, 6, 6, 16, 11, 6, 6, 1, 8, 8, 11, 5, 10, 6, 17, 3, 6, 10, 8, 11, 10, 8, 15, 14, 11, 14, 10, 9, 12, 11, 12, 8, 19, 16, 41, 13, 22, 20, 39, 15, 27, 27, 24, 25, 32, 26, 20, 30, 27, 37, 38, 29, 31, 35, 42, 49, 41, 36, 60, 51, 43, 41, 48, 49, 55, 75, 53, 76, 67, 59, 61, 88, 76, 95, 85, 101, 41] } ] }, ".RESERVED": { "type": "list", "attributes": {}, "value": [ { "type": "list", "attributes": {}, "value": [ { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=" }, { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, { "type": "list", "attributes": {}, "value": [ { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=" }, { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] } ] } }, "value": { "class": "Risoe.BINfileData", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "METADATA": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ID", "SEL", "VERSION", "LENGTH", "PREVIOUS", "NPOINTS", "RECTYPE", "RUN", "SET", "POSITION", "GRAIN", "GRAINNUMBER", "CURVENO", "XCOORD", "YCOORD", "SAMPLE", "COMMENT", "SYSTEMID", "FNAME", "USER", "TIME", "DATE", "DTYPE", "BL_TIME", "BL_UNIT", "NORM1", "NORM2", "NORM3", "BG", "SHIFT", "TAG", "LTYPE", "LIGHTSOURCE", "LPOWER", "LIGHTPOWER", "LOW", "HIGH", "RATE", "TEMPERATURE", "MEASTEMP", "AN_TEMP", "AN_TIME", "TOLDELAY", "TOLON", "TOLOFF", "IRR_TIME", "IRR_TYPE", "IRR_UNIT", "IRR_DOSERATE", "IRR_DOSERATEERR", "TIMESINCEIRR", "TIMETICK", "ONTIME", "OFFTIME", "STIMPERIOD", "GATE_ENABLED", "ENABLE_FLAGS", "GATE_START", "GATE_STOP", "PTENABLED", "DTENABLED", "DEADTIME", "MAXLPOWER", "XRF_ACQTIME", "XRF_HV", "XRF_CURR", "XRF_DEADTIMEF", "DETECTOR_ID", "LOWERFILTER_ID", "UPPERFILTER_ID", "ENOISEFACTOR", "MARKPOS_X1", "MARKPOS_Y1", "MARKPOS_X2", "MARKPOS_Y2", "MARKPOS_X3", "MARKPOS_Y3", "EXTR_START", "EXTR_END", "SEQUENCE"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1, 2] }, { "type": "logical", "attributes": {}, "value": [true, true] }, { "type": "double", "attributes": {}, "value": [7, 7] }, { "type": "integer", "attributes": {}, "value": [1447, 1447] }, { "type": "integer", "attributes": {}, "value": [0, 1447] }, { "type": "integer", "attributes": {}, "value": [250, 250] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [1, 1] }, { "type": "integer", "attributes": {}, "value": [2, 2] }, { "type": "integer", "attributes": {}, "value": [1, 2] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "character", "attributes": {}, "value": ["BT 607", "BT 607"] }, { "type": "character", "attributes": {}, "value": ["Main Measurement Middle Grain SachsenLoesse", "Main Measurement Middle Grain SachsenLoesse"] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "character", "attributes": {}, "value": ["ExampleData.BINfileData", "ExampleData.BINfileData"] }, { "type": "character", "attributes": {}, "value": ["Default", "Default"] }, { "type": "character", "attributes": {}, "value": ["19:14:32", "19:16:11"] }, { "type": "character", "attributes": {}, "value": ["060920", "060920"] }, { "type": "character", "attributes": {}, "value": ["Natural", "Natural"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [1, 1] }, { "type": "character", "attributes": {}, "value": ["TL", "TL"] }, { "type": "character", "attributes": {}, "value": ["None", "None"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [221, 221] }, { "type": "double", "attributes": {}, "value": [5, 5] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [220, 220] }, { "type": "double", "attributes": {}, "value": [10, 10] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "character", "attributes": {}, "value": ["", ""] } ] }, "DATA": { "type": "list", "attributes": {}, "value": [ { "type": "integer", "attributes": {}, "value": [2, 0, 13, 1, 1, 5, 6, 12, 12, 0, 2, 4, 2, 4, 6, 6, 4, 8, 6, 8, 3, 2, 8, 1, 4, 3, 6, 8, 3, 1, 3, 1, 1, 1, 12, 5, 1, 10, 0, 0, 2, 2, 2, 1, 12, 1, 3, 4, 2, 6, 4, 1, 3, 6, 6, 5, 5, 0, 0, 5, 2, 2, 0, 2, 2, 3, 15, 4, 0, 7, 4, 4, 0, 3, 14, 4, 7, 7, 4, 4, 2, 4, 1, 8, 3, 1, 3, 2, 5, 2, 17, 12, 5, 4, 3, 3, 18, 3, 12, 2, 4, 5, 7, 4, 4, 2, 8, 7, 1, 9, 5, 9, 5, 13, 0, 10, 1, 1, 1, 2, 6, 6, 9, 4, 12, 8, 1, 8, 2, 7, 6, 7, 1, 2, 5, 1, 6, 0, 11, 5, 1, 3, 13, 11, 1, 3, 5, 6, 5, 2, 5, 0, 16, 5, 10, 1, 3, 17, 4, 7, 10, 10, 4, 6, 3, 8, 4, 9, 5, 7, 6, 5, 8, 10, 8, 3, 7, 11, 4, 21, 14, 3, 4, 20, 9, 11, 8, 11, 14, 13, 12, 11, 25, 7, 9, 10, 18, 9, 15, 11, 19, 24, 29, 18, 27, 26, 25, 21, 17, 24, 32, 22, 25, 29, 35, 25, 27, 45, 43, 43, 44, 53, 51, 42, 56, 40, 49, 45, 85, 66, 72, 67, 83, 88, 90, 78, 81, 74, 108, 87, 110, 99, 123, 127, 144, 108, 120, 129, 131, 72] }, { "type": "integer", "attributes": {}, "value": [4, 2, 3, 0, 20, 4, 4, 2, 3, 12, 3, 6, 6, 15, 8, 3, 1, 5, 5, 8, 1, 6, 8, 6, 5, 20, 12, 4, 4, 8, 2, 5, 11, 3, 5, 6, 1, 4, 11, 5, 9, 5, 4, 6, 5, 5, 1, 1, 4, 7, 1, 12, 6, 4, 1, 0, 2, 5, 5, 10, 11, 4, 3, 9, 3, 2, 7, 2, 7, 11, 8, 2, 0, 6, 6, 8, 0, 8, 2, 8, 8, 5, 10, 4, 1, 24, 7, 4, 7, 5, 6, 5, 17, 1, 3, 1, 2, 4, 5, 6, 26, 4, 7, 8, 11, 5, 6, 2, 6, 6, 5, 14, 3, 10, 2, 18, 2, 0, 2, 1, 10, 10, 2, 11, 7, 0, 2, 16, 0, 13, 6, 10, 0, 3, 6, 6, 15, 3, 2, 10, 4, 3, 6, 2, 11, 5, 2, 7, 3, 6, 2, 1, 6, 4, 0, 1, 3, 5, 4, 8, 7, 6, 10, 6, 2, 7, 3, 7, 3, 4, 10, 7, 4, 12, 6, 6, 16, 11, 6, 6, 1, 8, 8, 11, 5, 10, 6, 17, 3, 6, 10, 8, 11, 10, 8, 15, 14, 11, 14, 10, 9, 12, 11, 12, 8, 19, 16, 41, 13, 22, 20, 39, 15, 27, 27, 24, 25, 32, 26, 20, 30, 27, 37, 38, 29, 31, 35, 42, 49, 41, 36, 60, 51, 43, 41, 48, 49, 55, 75, 53, 76, 67, 59, 61, 88, 76, 95, 85, 101, 41] } ] }, ".RESERVED": { "type": "list", "attributes": {}, "value": [ { "type": "list", "attributes": {}, "value": [ { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=" }, { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAA" } ] }, { "type": "list", "attributes": {}, "value": [ { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=" }, { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAA" } ] } ] } }, "value": { "class": "Risoe.BINfileData", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "METADATA": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["ID", "SEL", "VERSION", "LENGTH", "PREVIOUS", "NPOINTS", "RECTYPE", "RUN", "SET", "POSITION", "GRAIN", "GRAINNUMBER", "CURVENO", "XCOORD", "YCOORD", "SAMPLE", "COMMENT", "SYSTEMID", "FNAME", "USER", "TIME", "DATE", "DTYPE", "BL_TIME", "BL_UNIT", "NORM1", "NORM2", "NORM3", "BG", "SHIFT", "TAG", "LTYPE", "LIGHTSOURCE", "LPOWER", "LIGHTPOWER", "LOW", "HIGH", "RATE", "TEMPERATURE", "MEASTEMP", "AN_TEMP", "AN_TIME", "TOLDELAY", "TOLON", "TOLOFF", "IRR_TIME", "IRR_TYPE", "IRR_UNIT", "IRR_DOSERATE", "IRR_DOSERATEERR", "TIMESINCEIRR", "TIMETICK", "ONTIME", "OFFTIME", "STIMPERIOD", "GATE_ENABLED", "ENABLE_FLAGS", "GATE_START", "GATE_STOP", "PTENABLED", "DTENABLED", "DEADTIME", "MAXLPOWER", "XRF_ACQTIME", "XRF_HV", "XRF_CURR", "XRF_DEADTIMEF", "DETECTOR_ID", "LOWERFILTER_ID", "UPPERFILTER_ID", "ENOISEFACTOR", "MARKPOS_X1", "MARKPOS_Y1", "MARKPOS_X2", "MARKPOS_Y2", "MARKPOS_X3", "MARKPOS_Y3", "EXTR_START", "EXTR_END", "SEQUENCE"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1, 2] }, { "type": "logical", "attributes": {}, "value": [true, true] }, { "type": "double", "attributes": {}, "value": [8, 8] }, { "type": "integer", "attributes": {}, "value": [1507, 1507] }, { "type": "integer", "attributes": {}, "value": [0, 1507] }, { "type": "integer", "attributes": {}, "value": [250, 250] }, { "type": "integer", "attributes": {}, "value": [1, 1] }, { "type": "integer", "attributes": {}, "value": [1, 1] }, { "type": "integer", "attributes": {}, "value": [2, 2] }, { "type": "integer", "attributes": {}, "value": [1, 2] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "character", "attributes": {}, "value": ["BT 607", "BT 607"] }, { "type": "character", "attributes": {}, "value": ["Main Measurement Middle Grain SachsenLoesse", "Main Measurement Middle Grain SachsenLoesse"] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "character", "attributes": {}, "value": ["ExampleData.BINfileData", "ExampleData.BINfileData"] }, { "type": "character", "attributes": {}, "value": ["Default", "Default"] }, { "type": "character", "attributes": {}, "value": ["19:14:32", "19:16:11"] }, { "type": "character", "attributes": {}, "value": ["060920", "060920"] }, { "type": "character", "attributes": {}, "value": ["Natural", "Natural"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [1, 1] }, { "type": "character", "attributes": {}, "value": ["TL", "TL"] }, { "type": "character", "attributes": {}, "value": ["None", "None"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [221, 221] }, { "type": "double", "attributes": {}, "value": [5, 5] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [220, 220] }, { "type": "double", "attributes": {}, "value": [10, 10] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": ["NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": ["NA", "NA"] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "integer", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "double", "attributes": {}, "value": [0, 0] }, { "type": "character", "attributes": {}, "value": ["", ""] } ] }, "DATA": { "type": "list", "attributes": {}, "value": [ { "type": "integer", "attributes": {}, "value": [2, 0, 13, 1, 1, 5, 6, 12, 12, 0, 2, 4, 2, 4, 6, 6, 4, 8, 6, 8, 3, 2, 8, 1, 4, 3, 6, 8, 3, 1, 3, 1, 1, 1, 12, 5, 1, 10, 0, 0, 2, 2, 2, 1, 12, 1, 3, 4, 2, 6, 4, 1, 3, 6, 6, 5, 5, 0, 0, 5, 2, 2, 0, 2, 2, 3, 15, 4, 0, 7, 4, 4, 0, 3, 14, 4, 7, 7, 4, 4, 2, 4, 1, 8, 3, 1, 3, 2, 5, 2, 17, 12, 5, 4, 3, 3, 18, 3, 12, 2, 4, 5, 7, 4, 4, 2, 8, 7, 1, 9, 5, 9, 5, 13, 0, 10, 1, 1, 1, 2, 6, 6, 9, 4, 12, 8, 1, 8, 2, 7, 6, 7, 1, 2, 5, 1, 6, 0, 11, 5, 1, 3, 13, 11, 1, 3, 5, 6, 5, 2, 5, 0, 16, 5, 10, 1, 3, 17, 4, 7, 10, 10, 4, 6, 3, 8, 4, 9, 5, 7, 6, 5, 8, 10, 8, 3, 7, 11, 4, 21, 14, 3, 4, 20, 9, 11, 8, 11, 14, 13, 12, 11, 25, 7, 9, 10, 18, 9, 15, 11, 19, 24, 29, 18, 27, 26, 25, 21, 17, 24, 32, 22, 25, 29, 35, 25, 27, 45, 43, 43, 44, 53, 51, 42, 56, 40, 49, 45, 85, 66, 72, 67, 83, 88, 90, 78, 81, 74, 108, 87, 110, 99, 123, 127, 144, 108, 120, 129, 131, 72] }, { "type": "integer", "attributes": {}, "value": [4, 2, 3, 0, 20, 4, 4, 2, 3, 12, 3, 6, 6, 15, 8, 3, 1, 5, 5, 8, 1, 6, 8, 6, 5, 20, 12, 4, 4, 8, 2, 5, 11, 3, 5, 6, 1, 4, 11, 5, 9, 5, 4, 6, 5, 5, 1, 1, 4, 7, 1, 12, 6, 4, 1, 0, 2, 5, 5, 10, 11, 4, 3, 9, 3, 2, 7, 2, 7, 11, 8, 2, 0, 6, 6, 8, 0, 8, 2, 8, 8, 5, 10, 4, 1, 24, 7, 4, 7, 5, 6, 5, 17, 1, 3, 1, 2, 4, 5, 6, 26, 4, 7, 8, 11, 5, 6, 2, 6, 6, 5, 14, 3, 10, 2, 18, 2, 0, 2, 1, 10, 10, 2, 11, 7, 0, 2, 16, 0, 13, 6, 10, 0, 3, 6, 6, 15, 3, 2, 10, 4, 3, 6, 2, 11, 5, 2, 7, 3, 6, 2, 1, 6, 4, 0, 1, 3, 5, 4, 8, 7, 6, 10, 6, 2, 7, 3, 7, 3, 4, 10, 7, 4, 12, 6, 6, 16, 11, 6, 6, 1, 8, 8, 11, 5, 10, 6, 17, 3, 6, 10, 8, 11, 10, 8, 15, 14, 11, 14, 10, 9, 12, 11, 12, 8, 19, 16, 41, 13, 22, 20, 39, 15, 27, 27, 24, 25, 32, 26, 20, 30, 27, 37, 38, 29, 31, 35, 42, 49, 41, 36, 60, 51, 43, 41, 48, 49, 55, 75, 53, 76, 67, 59, 61, 88, 76, 95, 85, 101, 41] } ] }, ".RESERVED": { "type": "list", "attributes": {}, "value": [ { "type": "list", "attributes": {}, "value": [ { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=" }, { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, { "type": "list", "attributes": {}, "value": [ { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=" }, { "type": "raw", "attributes": {}, "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] } ] } }, "value": { "class": "Risoe.BINfileData", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/internals_Thermochronometry.md0000644000176200001440000006352214762554470025330 0ustar liggesusers# check functionality { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["DRC", "ITL", "FAD"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["SAMPLE", "ALQ", "TIME", "LxTx", "LxTx_ERROR"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225"] }, { "type": "double", "attributes": {}, "value": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3] }, { "type": "double", "attributes": {}, "value": [1000, 0, 250, 500, 1000, 2000, 0, 250, 1000, 0, 250, 500, 1000, 2000, 0, 250, 1000, 0, 250, 500, 1000, 2000, 0, 250, 1000, 0, 250, 500, 1000, 2000, 0, 250, 1000, 0, 250, 500, 1000, 2000, 0, 250, 1000, 0, 250, 500, 1000, 2000, 0, 250, 1000, 0, 250, 500, 1000, 2000, 0, 250, 1000, 0, 250, 500, 1000, 2000, 0, 250, 1000, 0, 250, 500, 1000, 2000, 0, 250, 1000, 0, 250, 500, 1000, 2000, 0, 250, 1000, 0, 250, 500, 1000, 2000, 0, 250, 1000, 0, 250, 500, 1000, 2000, 0, 250] }, { "type": "double", "attributes": {}, "value": [0.71898356, 0.00074738, 0.28699552, 0.48206278, 0.73766816, 1, 0.00074738, 0.28849028, 0.71898356, 0.00074738, 0.28699552, 0.48206278, 0.73766816, 1, 0.00074738, 0.28849028, 0.71898356, 0.00074738, 0.28699552, 0.48206278, 0.73766816, 1, 0.00074738, 0.28849028, 0.70351391, 0, 0.27379209, 0.46412884, 0.7181552, 1, 0, 0.27672035, 0.70351391, 0, 0.27379209, 0.46412884, 0.7181552, 1, 0, 0.27672035, 0.70351391, 0, 0.27379209, 0.46412884, 0.7181552, 1, 0, 0.27672035, 0.71898356, 0.00074738, 0.28699552, 0.48206278, 0.73766816, 1, 0.00074738, 0.28849028, 0.71898356, 0.00074738, 0.28699552, 0.48206278, 0.73766816, 1, 0.00074738, 0.28849028, 0.71898356, 0.00074738, 0.28699552, 0.48206278, 0.73766816, 1, 0.00074738, 0.28849028, 0.71898356, 0.00074738, 0.28699552, 0.48206278, 0.73766816, 1, 0.00074738, 0.28849028, 0.71898356, 0.00074738, 0.28699552, 0.48206278, 0.73766816, 1, 0.00074738, 0.28849028, 0.71898356, 0.00074738, 0.28699552, 0.48206278, 0.73766816, 1, 0.00074738, 0.28849028] }, { "type": "logical", "attributes": {}, "value": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["SAMPLE", "TEMP", "TIME", "LxTx", "LxTx_ERROR"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225"] }, { "type": "double", "attributes": {}, "value": [170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 350, 350, 350, 350, 350, 350, 350, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 350, 350, 350, 350, 350, 350, 350, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 350, 350, 350, 350, 350, 350, 350, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 350, 350, 350, 350, 350, 350, 350] }, { "type": "double", "attributes": {}, "value": [10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10, 20, 40, 80, 160, 320, 640] }, { "type": "double", "attributes": {}, "value": [0.97339322, 0.98386403, 1, 0.99152209, 0.99464295, 0.9872961, 0.98744622, 0.9766143, 0.96756072, 0.96823341, 0.92895003, 0.97235047, 1, 0.9778254, 0.97501378, 0.96119234, 0.981172, 0.9750637, 0.9151985, 0.91785297, 0.88968195, 0.81472045, 0.99081942, 1, 0.98754776, 0.98206522, 0.97587814, 0.96151979, 0.930968, 0.88711898, 0.82675477, 0.75756007, 0.65622808, 0.99625427, 1, 0.98095925, 0.9662479, 0.92972479, 0.89906871, 0.83374562, 0.76094226, 0.66135025, 0.54436944, 0.3928403, 1, 0.96721373, 0.95430168, 0.88736602, 0.84425106, 0.77028059, 0.66467348, 0.54498208, 0.40850487, 0.26919096, 0.14648289, 1, 0.88838357, 0.77043963, 0.6189388, 0.43298567, 0.25840068, 0.13724546, 0.05931543, 0.02460711, 0.00832094, 0.00251724, 1, 0.70024166, 0.40642038, 0.19086221, 0.07183932, 0.02307756, 0.00641233, 0.97606121, 0.97705446, 1, 0.99224629, 0.99187004, 0.99259437, 0.98974884, 0.97812182, 0.96620391, 0.96896612, 0.92656592, 0.97667938, 1, 0.97139539, 0.97898641, 0.96576297, 0.98126316, 0.96974798, 0.93701978, 0.91255395, 0.87443478, 0.78727998, 0.99366428, 1, 0.98865288, 0.98944199, 0.96980976, 0.96110351, 0.92697415, 0.86607258, 0.80152455, 0.71137557, 0.58733995, 0.99903231, 1, 0.98233969, 0.96412057, 0.92445889, 0.87832718, 0.79916621, 0.70638291, 0.58385111, 0.44938491, 0.29536567, 1, 0.96239379, 0.94712758, 0.86866435, 0.80883722, 0.71101764, 0.58809367, 0.44865647, 0.30722885, 0.17905495, 0.08322257, 1, 0.85415439, 0.70726901, 0.51501916, 0.31791022, 0.16227188, 0.0729443, 0.02658628, 0.00932105, 0.00263896, 0.00067328, 1, 0.61575274, 0.30009208, 0.11458569, 0.0345843, 0.00884066, 0.0020834, 0.97339322, 0.98386403, 1, 0.99152209, 0.99464295, 0.9872961, 0.98744622, 0.9766143, 0.96756072, 0.96823341, 0.92895003, 0.97235047, 1, 0.9778254, 0.97501378, 0.96119234, 0.981172, 0.9750637, 0.9151985, 0.91785297, 0.88968195, 0.81472045, 0.99081942, 1, 0.98754776, 0.98206522, 0.97587814, 0.96151979, 0.930968, 0.88711898, 0.82675477, 0.75756007, 0.65622808, 0.99625427, 1, 0.98095925, 0.9662479, 0.92972479, 0.89906871, 0.83374562, 0.76094226, 0.66135025, 0.54436944, 0.3928403, 1, 0.96721373, 0.95430168, 0.88736602, 0.84425106, 0.77028059, 0.66467348, 0.54498208, 0.40850487, 0.26919096, 0.14648289, 1, 0.88838357, 0.77043963, 0.6189388, 0.43298567, 0.25840068, 0.13724546, 0.05931543, 0.02460711, 0.00832094, 0.00251724, 1, 0.70024166, 0.40642038, 0.19086221, 0.07183932, 0.02307756, 0.00641233, 0.97339322, 0.98386403, 1, 0.99152209, 0.99464295, 0.9872961, 0.98744622, 0.9766143, 0.96756072, 0.96823341, 0.92895003, 0.97235047, 1, 0.9778254, 0.97501378, 0.96119234, 0.981172, 0.9750637, 0.9151985, 0.91785297, 0.88968195, 0.81472045, 0.99081942, 1, 0.98754776, 0.98206522, 0.97587814, 0.96151979, 0.930968, 0.88711898, 0.82675477, 0.75756007, 0.65622808, 0.99625427, 1, 0.98095925, 0.9662479, 0.92972479, 0.89906871, 0.83374562, 0.76094226, 0.66135025, 0.54436944, 0.3928403, 1, 0.96721373, 0.95430168, 0.88736602, 0.84425106, 0.77028059, 0.66467348, 0.54498208, 0.40850487, 0.26919096, 0.14648289, 1, 0.88838357, 0.77043963, 0.6189388, 0.43298567, 0.25840068, 0.13724546, 0.05931543, 0.02460711, 0.00832094, 0.00251724, 1, 0.70024166, 0.40642038, 0.19086221, 0.07183932, 0.02307756, 0.00641233] }, { "type": "logical", "attributes": {}, "value": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["SAMPLE", "ALQ", "TIME", "LxTx", "LxTx_ERROR"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR50", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR100", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR150", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225", "CLBR_IR225"] }, { "type": "integer", "attributes": {}, "value": [1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 2, 3] }, { "type": "double", "attributes": {}, "value": [15026.4, 21056.4, 33098.4, 57175.2, 968.4, "NA", "NA", 14860.8, 20890.8, 32932.8, 57013.2, 792, "NA", "NA", 15026.4, 21056.4, 33098.4, 57175.2, 968.4, "NA", "NA", 15026.4, 21056.4, 33098.4, 57175.2, 968.4, "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.99178645, 1, 0.99691992, 0.99794661, 0.99897331, "NA", "NA", 0.98972251, 0.99691675, 0.9938335, 0.99486125, 1, "NA", "NA", 0.99178645, 1, 0.99691992, 0.99794661, 0.99897331, "NA", "NA", 0.99178645, 1, 0.99691992, 0.99794661, 0.99897331, "NA", "NA"] }, { "type": "logical", "attributes": {}, "value": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": [".import_ThermochronometryData"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["sample_names", "Ddot_DRC", "nat_Ddot"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["CLBR_IR50", "CLBR_IR100", "CLBR_IR150", "CLBR_IR225"] }, { "type": "list", "attributes": {}, "value": [ { "type": "double", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Ddot", "Ddot", "Ddot"] } }, "value": [0.1, 0.1, 0.1] }, { "type": "double", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Ddot", "Ddot", "Ddot"] } }, "value": [0.1, 0.1, 0.1] }, { "type": "double", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Ddot", "Ddot", "Ddot"] } }, "value": [0.1, 0.1, 0.1] }, { "type": "double", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Ddot", "Ddot", "Ddot"] } }, "value": [0.1, 0.1, 0.1] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["CLBR_IR50.natDdot", "CLBR_IR100.natDdot", "CLBR_IR150.natDdot", "CLBR_IR225.natDdot"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1.26839168e-10, 1.5854896e-11] }, { "type": "double", "attributes": {}, "value": [1.26839168e-10, 1.5854896e-11] }, { "type": "double", "attributes": {}, "value": [1.26839168e-10, 1.5854896e-11] }, { "type": "double", "attributes": {}, "value": [1.26839168e-10, 1.5854896e-11] } ] } ] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/calc_CobbleDoseRate.md0000644000176200001440000015675714762554470023335 0ustar liggesusers# snapshot tests { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["DataIndividual", "DataComponent", "input"] } }, "value": [ { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [14, 25] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["Distance.", "K Beta cobble", "SE", "Th Beta cobble", "SE", "U Beta cobble", "SE", "K Gamma cobble", "SE", "Th Gamma cobble", "SE", "U Gamma cobble", "SE", "K Beta sed.", "SE", "Th Beta sed.", "SE", "U Beta sed.", "SE", "K Gamma sed.", "SE", "Th Gamma sed.", "SE", "U Gamma sed.", "SE"] } ] } }, "value": [0, 0.4, 0.8, 1.2, 1.6, 2, 3, 5, 10, 20, 30, 40, 50, 59.4, 3.6165815, 4.60267543, 4.82094953, 4.86926499, 4.87995972, 4.88232703, 4.88298449, 4.88299999, 4.883, 4.883, 4.883, 4.883, 4.883, 4.28717434, 0.12168089, 0.05048373, 0.04577469, 0.0458881, 0.04597221, 0.04599369, 0.04599985, 0.046, 0.046, 0.046, 0.046, 0.046, 0.046, 0.07346904, 0.22876524, 0.27594346, 0.29125129, 0.29720708, 0.2995243, 0.30042585, 0.30094579, 0.30099952, 0.301, 0.301, 0.301, 0.301, 0.301, 0.26082942, 0.00784378, 0.00570617, 0.00583564, 0.00592885, 0.00597125, 0.00598863, 0.00599892, 0.00599999, 0.006, 0.006, 0.006, 0.006, 0.006, 0.00574169, 0.39997058, 0.48954753, 0.51670495, 0.52727104, 0.53138197, 0.53298141, 0.53390382, 0.53399914, 0.534, 0.534, 0.534, 0.534, 0.534, 0.46273392, 0.01525853, 0.01221833, 0.01262253, 0.01284266, 0.01293724, 0.01297531, 0.01299766, 0.01299998, 0.013, 0.013, 0.013, 0.013, 0.013, 0.0121218, 0.22936668, 0.28233734, 0.3178796, 0.34172776, 0.3577294, 0.36846618, 0.38228716, 0.38926383, 0.39035455, 0.39036204, 0.39036204, 0.39036204, 0.39035088, 0.2584853, 0.00480342, 0.00387469, 0.00348403, 0.00336896, 0.00336664, 0.00338446, 0.00348026, 0.00353699, 0.00354678, 0.00354685, 0.00354685, 0.00354685, 0.00354675, 0.00398918, 0.09267836, 0.11408179, 0.12844307, 0.1380792, 0.14454486, 0.14888318, 0.15446771, 0.15728672, 0.15772744, 0.15773047, 0.15773047, 0.15773047, 0.15772596, 0.10444409, 0.00253758, 0.00254956, 0.00266731, 0.00279013, 0.00288977, 0.00296082, 0.00306609, 0.00312079, 0.00312951, 0.00312957, 0.00312957, 0.00312957, 0.00312948, 0.00244786, 0.06681178, 0.0822415, 0.09259454, 0.09954122, 0.10420231, 0.10732981, 0.11135569, 0.11338792, 0.11370563, 0.11370781, 0.11370781, 0.11370781, 0.11370456, 0.07529369, 0.00203199, 0.00213631, 0.00228043, 0.00240472, 0.00249866, 0.00256424, 0.00265694, 0.00270468, 0.00271224, 0.0027123, 0.0027123, 0.0027123, 0.00271222, 0.00202678, 0.22978636, 0.05086373, 0.0112588, 0.00249216, 0.00055165, 0.00012211, 2.81483961e-06, 1.49579907e-09, 0, 0, 0, 0, 3.59874732e-17, 0.10811008, 0.0224903, 0.00497828, 0.00110195, 0.00024392, 0.00005399, 0.00001029, 2.75501954e-07, 1.46401082e-10, 0, 0, 0, 0, 6.98966293e-18, 0.01168449, 0.02855793, 0.00990607, 0.00385414, 0.00149952, 0.00058342, 0.00022699, 0.00002143, 1.91073603e-07, 1.43392203e-12, 0, 0, 0, 3.68552783e-12, 0.01588139, 0.00269956, 0.00068635, 0.00026704, 0.0001039, 0.00004042, 0.00001387, 1.48495056e-06, 1.32385994e-08, 9.93494235e-14, 0, 0, 0, 2.93090136e-13, 0.00110117, 0.03940565, 0.01306936, 0.00508488, 0.00197836, 0.00076972, 0.00029947, 0.00002828, 2.52088703e-07, 1.8918131e-12, 0, 0, 0, 4.86241907e-12, 0.02095276, 0.00412705, 0.00109008, 0.00042411, 0.00016501, 0.0000642, 0.00002298, 2.35844619e-06, 2.10259689e-08, 1.57790119e-13, 0, 0, 0, 4.47776686e-13, 0.00178175, 0.22787149, 0.22690494, 0.22595292, 0.22501536, 0.2240922, 0.22318338, 0.2209737, 0.21681867, 0.20793584, 0.19634539, 0.19263496, 0.19665566, 0.20856884, 0.22738639, 0.00779077, 0.00775772, 0.00772517, 0.00769311, 0.00766154, 0.00763039, 0.0075549, 0.00741281, 0.00710905, 0.0067127, 0.00658581, 0.0067233, 0.0071307, 0.0077741, 0.20060481, 0.19975392, 0.19891582, 0.19809044, 0.19727775, 0.19647767, 0.1945324, 0.19087455, 0.18305463, 0.17285107, 0.16958463, 0.17312421, 0.18361188, 0.20017777, 0.00649234, 0.0064648, 0.00643767, 0.00641095, 0.00638464, 0.00635867, 0.00629577, 0.00617736, 0.00592422, 0.00559392, 0.00548818, 0.00560275, 0.00594226, 0.00647844, 0.10711907, 0.10666472, 0.10621718, 0.10577645, 0.10534249, 0.10491526, 0.10387652, 0.1019233, 0.09774762, 0.09229911, 0.0905549, 0.09244497, 0.09804518, 0.10689104, 0.00584295, 0.00581816, 0.00579375, 0.00576971, 0.00574603, 0.00572271, 0.00566606, 0.00555951, 0.00533173, 0.00503451, 0.00493936, 0.00504246, 0.00534796, 0.00583048] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [14, 9] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["Distance", "Total Cobble Beta", "SE", "Total Cobble Gamma", "SE", "Total Beta Sed.", "SE", "Total Gamma Sed.", "SE"] } ] } }, "value": [0, 0.4, 0.8, 1.2, 1.6, 2, 3, 5, 10, 20, 30, 40, 50, 59.4, 4.24531732, 5.36816642, 5.62890577, 5.69374311, 5.710866, 5.71573429, 5.7178341, 5.71799865, 5.718, 5.718, 5.718, 5.718, 5.718, 5.01073767, 0.26042149, 0.18368536, 0.18570131, 0.18711659, 0.18758529, 0.18773107, 0.18779839, 0.18780377, 0.18780382, 0.18780382, 0.18780382, 0.18780382, 0.18780382, 0.19175411, 0.38885683, 0.47866063, 0.53891721, 0.57934818, 0.60647657, 0.62467917, 0.64811056, 0.65993847, 0.66178762, 0.66180032, 0.66180032, 0.66180032, 0.66178139, 0.43822307, 0.01787579, 0.0176687, 0.01833838, 0.01911951, 0.01977567, 0.02024815, 0.0209629, 0.02133577, 0.02139538, 0.02139579, 0.02139579, 0.02139579, 0.02139518, 0.01704041, 0.29774994, 0.07383916, 0.02019782, 0.00597005, 0.00190478, 0.00064857, 0.00005252, 4.44658105e-07, 3.32573513e-12, 0, 0, 0, 8.54798289e-12, 0.14494424, 0.05112649, 0.01078574, 0.00295031, 0.00087205, 0.00027823, 0.00008386, 7.67216049e-06, 6.49515561e-08, 0, 0, 0, 0, 1.95910939e-12, 0.02232332, 0.53559537, 0.53332358, 0.53108592, 0.52888225, 0.52671243, 0.52457631, 0.51938262, 0.50961652, 0.48873808, 0.46149557, 0.45277449, 0.46222484, 0.4902259, 0.5344552, 0.03859121, 0.0384275, 0.03826625, 0.03810745, 0.03795109, 0.0377969, 0.03742288, 0.03671911, 0.03521455, 0.03325136, 0.03262289, 0.03330388, 0.03532177, 0.03850877] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Distance", "DistanceError", "Thickness", "ThicknessError", "Mineral", "Cobble_K", "C_K_SE", "Cobble_Th", "Cobble_Th_SE", "Cobble_U", "Cobble_U_SE", "GrainSize", "Density", "CobbleDiameter", "Sed_K", "Sed_K_SE", "Sed_Th", "Sed_Th_SE", "Sed_U", "Sed_U_SE", "GrainSize_Sed", "Density_Sed", "WaterContent", "WaterContent_SE"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 0.4, 0.8, 1.2, 1.6, 2, 3, 5, 10, 20, 30, 40, 50, 59.4] }, { "type": "double", "attributes": {}, "value": [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05] }, { "type": "double", "attributes": {}, "value": [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4] }, { "type": "double", "attributes": {}, "value": [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05] }, { "type": "character", "attributes": {}, "value": ["FS", "", "", "", "", "", "", "", "", "", "", "", "", ""] }, { "type": "double", "attributes": {}, "value": [7.51, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.07, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [15.78, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.32, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [4.88, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.12, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [500, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [2.7, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [6, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [2.13, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.07, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [9.76, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.32, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [2.24, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.12, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [60, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [1.6, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [45, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [10, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_CobbleDoseRate"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["DataIndividual", "DataComponent", "input"] } }, "value": [ { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [14, 25] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["Distance.", "K Beta cobble", "SE", "Th Beta cobble", "SE", "U Beta cobble", "SE", "K Gamma cobble", "SE", "Th Gamma cobble", "SE", "U Gamma cobble", "SE", "K Beta sed.", "SE", "Th Beta sed.", "SE", "U Beta sed.", "SE", "K Gamma sed.", "SE", "Th Gamma sed.", "SE", "U Gamma sed.", "SE"] } ] } }, "value": [0, 0.4, 0.8, 1.2, 1.6, 2, 3, 5, 10, 20, 30, 40, 50, 59.4, 3.86914228, 4.92409921, 5.15761629, 5.20930582, 5.22074741, 5.22328003, 5.2239834, 5.22399999, 5.224, 5.224, 5.224, 5.224, 5.224, 4.58656538, 0.1350169, 0.07067726, 0.06839782, 0.06881926, 0.06895769, 0.06899051, 0.06899978, 0.069, 0.069, 0.069, 0.069, 0.069, 0.069, 0.08933663, 0.23104529, 0.27869373, 0.29415413, 0.30016928, 0.30250959, 0.30342013, 0.30394525, 0.30399951, 0.304, 0.304, 0.304, 0.304, 0.304, 0.26342905, 0.01116801, 0.01110739, 0.01162666, 0.01185106, 0.01194151, 0.01197715, 0.01199784, 0.01199998, 0.012, 0.012, 0.012, 0.012, 0.012, 0.01068563, 0.38948446, 0.47671295, 0.50315838, 0.51344746, 0.51745061, 0.51900811, 0.51990635, 0.51999917, 0.52, 0.52, 0.52, 0.52, 0.52, 0.45060232, 0.01603427, 0.01399918, 0.01455001, 0.0148163, 0.01492726, 0.01497147, 0.0149973, 0.01499998, 0.015, 0.015, 0.015, 0.015, 0.015, 0.01370954, 0.22826337, 0.28097922, 0.31635052, 0.34008396, 0.35600863, 0.36669377, 0.38044826, 0.38739137, 0.38847684, 0.3884843, 0.3884843, 0.3884843, 0.38847319, 0.25724192, 0.00550746, 0.005119, 0.00513716, 0.00527695, 0.00542422, 0.00553625, 0.0057251, 0.00582551, 0.00584176, 0.00584187, 0.00584187, 0.00584187, 0.0058417, 0.00502608, 0.09463981, 0.11649622, 0.13116144, 0.14100151, 0.14760401, 0.15203415, 0.15773687, 0.16061554, 0.16106559, 0.16106868, 0.16106868, 0.16106868, 0.16106407, 0.10665454, 0.00265254, 0.00269538, 0.00283476, 0.00297168, 0.00308049, 0.00315761, 0.00327038, 0.00332884, 0.00333815, 0.00333821, 0.00333821, 0.00333821, 0.00333812, 0.00257998, 0.06705696, 0.08254331, 0.09293434, 0.09990651, 0.1045847, 0.10772368, 0.11176434, 0.11380402, 0.1141229, 0.11412509, 0.11412509, 0.11412509, 0.11412182, 0.07556999, 0.00213224, 0.00227682, 0.00244583, 0.00258543, 0.00268901, 0.00276091, 0.00286122, 0.00291273, 0.00292088, 0.00292093, 0.00292093, 0.00292093, 0.00292085, 0.00215166, 0.24586622, 0.05442304, 0.01204666, 0.00266656, 0.00059025, 0.00013065, 3.01181484e-06, 1.60047124e-09, 0, 0, 0, 0, 3.85057839e-17, 0.11567535, 0.02414947, 0.00534554, 0.00118325, 0.00026191, 0.00005798, 0.00001106, 2.95826431e-07, 1.5720146e-10, 0, 0, 0, 0, 7.48552662e-18, 0.01253852, 0.02879791, 0.00998932, 0.00388653, 0.00151213, 0.00058832, 0.0002289, 0.00002161, 1.92679263e-07, 1.4459718e-12, 0, 0, 0, 3.71649865e-12, 0.01601485, 0.00292351, 0.00078469, 0.0003053, 0.00011878, 0.00004621, 0.00001635, 1.69772927e-06, 1.51355596e-08, 1.13585301e-13, 0, 0, 0, 3.26000676e-13, 0.00125875, 0.03840169, 0.01273638, 0.00495532, 0.00192796, 0.00075011, 0.00029184, 0.00002756, 2.45666061e-07, 1.84361404e-12, 0, 0, 0, 4.73853578e-12, 0.02041893, 0.00405368, 0.00107551, 0.00041845, 0.0001628, 0.00006334, 0.00002272, 2.32693531e-06, 2.07450437e-08, 1.55681916e-13, 0, 0, 0, 4.40824084e-13, 0.00175713, 0.22657307, 0.22561204, 0.22466544, 0.22373322, 0.22281532, 0.22191168, 0.21971459, 0.21558323, 0.20675102, 0.19522661, 0.19153733, 0.19553511, 0.20738041, 0.22609075, 0.00779077, 0.00775772, 0.00772516, 0.0076931, 0.00766154, 0.00763038, 0.0075549, 0.00741281, 0.00710905, 0.0067127, 0.00658581, 0.0067233, 0.0071307, 0.0077741, 0.20450005, 0.20363264, 0.20277826, 0.20193686, 0.20110838, 0.20029277, 0.19830973, 0.19458085, 0.18660909, 0.1762074, 0.17287753, 0.17648585, 0.18717716, 0.20406471, 0.00714153, 0.00711123, 0.00708139, 0.007052, 0.00702307, 0.00699451, 0.00692531, 0.00679507, 0.00651663, 0.0061533, 0.00603699, 0.00616302, 0.00653647, 0.00712625, 0.10776828, 0.10731117, 0.10686092, 0.10641752, 0.10598092, 0.10555111, 0.10450608, 0.10254102, 0.09834003, 0.0928585, 0.09110372, 0.09300524, 0.09863939, 0.10753886, 0.00584295, 0.00581816, 0.00579375, 0.00576971, 0.00574603, 0.00572271, 0.00566606, 0.00555952, 0.00533173, 0.00503451, 0.00493936, 0.00504246, 0.00534796, 0.00583048] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [14, 9] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["Distance", "Total Cobble Beta", "SE", "Total Cobble Gamma", "SE", "Total Beta Sed.", "SE", "Total Gamma Sed.", "SE"] } ] } }, "value": [0, 0.4, 0.8, 1.2, 1.6, 2, 3, 5, 10, 20, 30, 40, 50, 59.4, 4.48967203, 5.67950589, 5.95492879, 6.02292255, 6.04070761, 6.04570827, 6.047835, 6.04799867, 6.048, 6.048, 6.048, 6.048, 6.048, 5.30059674, 0.32527584, 0.29274646, 0.30214237, 0.30509501, 0.30593141, 0.30617498, 0.30628155, 0.30628983, 0.3062899, 0.3062899, 0.3062899, 0.3062899, 0.3062899, 0.28791903, 0.38996014, 0.48001875, 0.54044629, 0.58099198, 0.60819734, 0.62645159, 0.64994947, 0.66181093, 0.66366533, 0.66367806, 0.66367806, 0.66367806, 0.66365908, 0.43946645, 0.0190194, 0.01936849, 0.02039024, 0.02138366, 0.0221702, 0.02272707, 0.02353947, 0.02396038, 0.02402736, 0.02402782, 0.02402782, 0.02402782, 0.02402713, 0.01852853, 0.31306582, 0.07714874, 0.02088851, 0.00610664, 0.00192868, 0.00065139, 0.00005218, 4.39945796e-07, 3.28958584e-12, 0, 0, 0, 8.45507294e-12, 0.15210913, 0.05520659, 0.01168719, 0.00316438, 0.00092509, 0.00029217, 0.0000882, 7.90473949e-06, 6.66470032e-08, 0, 0, 0, 0, 1.9673301e-12, 0.0242099, 0.53884141, 0.53655584, 0.53430462, 0.5320876, 0.52990462, 0.52775556, 0.52253039, 0.51270511, 0.49170013, 0.46429251, 0.45551858, 0.4650262, 0.49319697, 0.53769432, 0.03938132, 0.03921426, 0.0390497, 0.03888765, 0.03872809, 0.03857076, 0.03818907, 0.0374709, 0.03593554, 0.03393216, 0.03329082, 0.03398576, 0.03604495, 0.0392972] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Distance", "DistanceError", "Thickness", "ThicknessError", "Mineral", "Cobble_K", "C_K_SE", "Cobble_Th", "Cobble_Th_SE", "Cobble_U", "Cobble_U_SE", "GrainSize", "Density", "CobbleDiameter", "Sed_K", "Sed_K_SE", "Sed_Th", "Sed_Th_SE", "Sed_U", "Sed_U_SE", "GrainSize_Sed", "Density_Sed", "WaterContent", "WaterContent_SE"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 0.4, 0.8, 1.2, 1.6, 2, 3, 5, 10, 20, 30, 40, 50, 59.4] }, { "type": "double", "attributes": {}, "value": [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05] }, { "type": "double", "attributes": {}, "value": [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4] }, { "type": "double", "attributes": {}, "value": [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05] }, { "type": "character", "attributes": {}, "value": ["FS", "", "", "", "", "", "", "", "", "", "", "", "", ""] }, { "type": "double", "attributes": {}, "value": [7.51, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.07, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [15.78, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.32, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [4.88, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.12, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [500, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [2.7, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [6, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [2.13, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.07, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [9.76, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.32, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [2.24, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.12, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [60, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [1.6, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [45, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [10, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_CobbleDoseRate"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["DataIndividual", "DataComponent", "input"] } }, "value": [ { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [14, 25] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["Distance.", "K Beta cobble", "SE", "Th Beta cobble", "SE", "U Beta cobble", "SE", "K Gamma cobble", "SE", "Th Gamma cobble", "SE", "U Gamma cobble", "SE", "K Beta sed.", "SE", "Th Beta sed.", "SE", "U Beta sed.", "SE", "K Gamma sed.", "SE", "Th Gamma sed.", "SE", "U Gamma sed.", "SE"] } ] } }, "value": [0, 0.4, 0.8, 1.2, 1.6, 2, 3, 5, 10, 20, 30, 40, 50, 59.4, 3.62917251, 4.61869949, 4.8377335, 4.88621717, 4.89694914, 4.89932469, 4.89998443, 4.89999999, 4.9, 4.9, 4.9, 4.9, 4.9, 4.30209999, 0.12644194, 0.06566932, 0.06344721, 0.06383264, 0.06396077, 0.0639912, 0.0639998, 0.064, 0.064, 0.064, 0.064, 0.064, 0.064, 0.08336817, 0.22724521, 0.27410995, 0.28931607, 0.29523229, 0.2975341, 0.29842967, 0.29894615, 0.29899952, 0.299, 0.299, 0.299, 0.299, 0.299, 0.25909633, 0.01049208, 0.01019644, 0.01065989, 0.01086379, 0.01094643, 0.01097906, 0.01099802, 0.01099998, 0.011, 0.011, 0.011, 0.011, 0.011, 0.00983436, 0.39997058, 0.48954753, 0.51670495, 0.52727104, 0.53138197, 0.53298141, 0.53390382, 0.53399914, 0.534, 0.534, 0.534, 0.534, 0.534, 0.46273392, 0.01525853, 0.01221833, 0.01262253, 0.01284266, 0.01293724, 0.01297531, 0.01299766, 0.01299998, 0.013, 0.013, 0.013, 0.013, 0.013, 0.0121218, 0.22997964, 0.28309185, 0.31872909, 0.34264098, 0.35868538, 0.36945086, 0.38330877, 0.39030409, 0.39139772, 0.39140523, 0.39140523, 0.39140523, 0.39139404, 0.25917607, 0.00654792, 0.00670162, 0.00707116, 0.00742245, 0.00769829, 0.00789311, 0.00817579, 0.0083221, 0.00834537, 0.00834553, 0.00834553, 0.00834553, 0.00834529, 0.00640246, 0.09304613, 0.1145345, 0.12895276, 0.13862713, 0.14511845, 0.14947399, 0.15508068, 0.15791088, 0.15835334, 0.15835638, 0.15835638, 0.15835638, 0.15835185, 0.10485855, 0.00263239, 0.00268647, 0.00283095, 0.00297005, 0.00307978, 0.00315739, 0.00327034, 0.00332884, 0.00333815, 0.00333821, 0.00333821, 0.00333821, 0.00333812, 0.0025685, 0.06693437, 0.0823924, 0.09276444, 0.09972387, 0.10439351, 0.10752674, 0.11156002, 0.11359597, 0.11391426, 0.11391645, 0.11391645, 0.11391645, 0.11391319, 0.07543184, 0.00203343, 0.00213693, 0.00228069, 0.00240483, 0.00249871, 0.00256425, 0.00265695, 0.00270468, 0.00271224, 0.0027123, 0.0027123, 0.0027123, 0.00271222, 0.00202758, 0.23056442, 0.05103595, 0.01129692, 0.0025006, 0.00055351, 0.00012252, 2.82437066e-06, 1.50086386e-09, 0, 0, 0, 0, 3.61093269e-17, 0.10847615, 0.02264574, 0.00501269, 0.00110957, 0.00024561, 0.00005437, 0.00001037, 2.7740608e-07, 1.4741293e-10, 0, 0, 0, 0, 7.01959572e-18, 0.01175785, 0.02831795, 0.00982283, 0.00382175, 0.00148692, 0.00057852, 0.00022508, 0.00002125, 1.89467942e-07, 1.42187227e-12, 0, 0, 0, 3.65455701e-12, 0.01574794, 0.00288668, 0.00077694, 0.00030228, 0.00011761, 0.00004576, 0.00001621, 1.68095502e-06, 1.49860141e-08, 1.12463037e-13, 0, 0, 0, 3.22342756e-13, 0.0012463, 0.03940565, 0.01306936, 0.00508488, 0.00197836, 0.00076972, 0.00029947, 0.00002828, 2.52088703e-07, 1.8918131e-12, 0, 0, 0, 4.86241907e-12, 0.02095276, 0.00412705, 0.00109008, 0.00042411, 0.00016501, 0.0000642, 0.00002298, 2.35844619e-06, 2.10259689e-08, 1.57790119e-13, 0, 0, 0, 4.47776686e-13, 0.00178175, 0.22852069, 0.22755139, 0.22659666, 0.22565643, 0.22473064, 0.22381923, 0.22160325, 0.21743638, 0.20852825, 0.19690478, 0.19318378, 0.19721593, 0.20916305, 0.22803422, 0.00843996, 0.00840415, 0.00836889, 0.00833416, 0.00829996, 0.00826622, 0.00818444, 0.00803051, 0.00770145, 0.00727208, 0.00713463, 0.00728357, 0.0077249, 0.00842191, 0.20125402, 0.20040038, 0.19955956, 0.19873151, 0.19791618, 0.19711352, 0.19516195, 0.19149227, 0.18364704, 0.17341046, 0.17013344, 0.17368449, 0.1842061, 0.20082559, 0.00649234, 0.0064648, 0.00643767, 0.00641095, 0.00638464, 0.00635867, 0.00629577, 0.00617736, 0.00592422, 0.00559392, 0.00548818, 0.00560275, 0.00594226, 0.00647844, 0.10776828, 0.10731117, 0.10686092, 0.10641752, 0.10598092, 0.10555111, 0.10450608, 0.10254102, 0.09834003, 0.0928585, 0.09110372, 0.09300524, 0.09863939, 0.10753886, 0.00584295, 0.00581816, 0.00579375, 0.00576971, 0.00574603, 0.00572271, 0.00566606, 0.00555952, 0.00533173, 0.00503451, 0.00493936, 0.00504246, 0.00534796, 0.00583048] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [14, 9] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["Distance", "Total Cobble Beta", "SE", "Total Cobble Gamma", "SE", "Total Beta Sed.", "SE", "Total Gamma Sed.", "SE"] } ] } }, "value": [0, 0.4, 0.8, 1.2, 1.6, 2, 3, 5, 10, 20, 30, 40, 50, 59.4, 4.25638829, 5.38235697, 5.64375451, 5.7087205, 5.72586522, 5.73073576, 5.73283441, 5.73299865, 5.733, 5.733, 5.733, 5.733, 5.733, 5.02393024, 0.29492038, 0.25295908, 0.26024626, 0.26272332, 0.26344503, 0.26365901, 0.26375439, 0.26376193, 0.26376199, 0.26376199, 0.26376199, 0.26376199, 0.26376199, 0.25131934, 0.38996014, 0.48001875, 0.54044629, 0.58099198, 0.60819734, 0.62645159, 0.64994947, 0.66181093, 0.66366533, 0.66367806, 0.66367806, 0.66367806, 0.66365908, 0.43946645, 0.01962993, 0.02027048, 0.02147287, 0.02257518, 0.02342895, 0.02402946, 0.02489288, 0.02533897, 0.02540982, 0.0254103, 0.0254103, 0.0254103, 0.02540958, 0.01932032, 0.29828802, 0.07392814, 0.02020355, 0.00596589, 0.00190175, 0.00064708, 0.00005235, 4.43057509e-07, 3.31368537e-12, 0, 0, 0, 8.51701219e-12, 0.14517684, 0.05252511, 0.01117751, 0.00305466, 0.00090201, 0.00028753, 0.0000874, 7.91547494e-06, 6.69877573e-08, 0, 0, 0, 0, 1.98010808e-12, 0.0230658, 0.53754299, 0.53526294, 0.53301714, 0.53080546, 0.52862774, 0.52648386, 0.52127129, 0.51146967, 0.49051531, 0.46317373, 0.45442094, 0.46390566, 0.49200854, 0.53639867, 0.03929685, 0.03913014, 0.03896594, 0.03880424, 0.03864502, 0.03848802, 0.03810716, 0.03739052, 0.03585846, 0.03385938, 0.03321942, 0.03391286, 0.03596764, 0.03921291] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Distance", "DistanceError", "Thickness", "ThicknessError", "Mineral", "Cobble_K", "C_K_SE", "Cobble_Th", "Cobble_Th_SE", "Cobble_U", "Cobble_U_SE", "GrainSize", "Density", "CobbleDiameter", "Sed_K", "Sed_K_SE", "Sed_Th", "Sed_Th_SE", "Sed_U", "Sed_U_SE", "GrainSize_Sed", "Density_Sed", "WaterContent", "WaterContent_SE"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 0.4, 0.8, 1.2, 1.6, 2, 3, 5, 10, 20, 30, 40, 50, 59.4] }, { "type": "double", "attributes": {}, "value": [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05] }, { "type": "double", "attributes": {}, "value": [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4] }, { "type": "double", "attributes": {}, "value": [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05] }, { "type": "character", "attributes": {}, "value": ["FS", "", "", "", "", "", "", "", "", "", "", "", "", ""] }, { "type": "double", "attributes": {}, "value": [7.51, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.07, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [15.78, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.32, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [4.88, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.12, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [500, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [2.7, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [6, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [2.13, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.07, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [9.76, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.32, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [2.24, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.12, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [60, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [1.6, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [45, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [10, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_CobbleDoseRate"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["DataIndividual", "DataComponent", "input"] } }, "value": [ { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [14, 25] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["Distance.", "K Beta cobble", "SE", "Th Beta cobble", "SE", "U Beta cobble", "SE", "K Gamma cobble", "SE", "Th Gamma cobble", "SE", "U Gamma cobble", "SE", "K Beta sed.", "SE", "Th Beta sed.", "SE", "U Beta sed.", "SE", "K Gamma sed.", "SE", "Th Gamma sed.", "SE", "U Gamma sed.", "SE"] } ] } }, "value": [0, 0.4, 0.8, 1.2, 1.6, 2, 3, 5, 10, 20, 30, 40, 50, 59.4, 3.54251676, 4.50841626, 4.72222027, 4.76954627, 4.78002199, 4.78234081, 4.7829848, 4.78299999, 4.783, 4.783, 4.783, 4.783, 4.783, 4.19937638, 0.11917695, 0.04940296, 0.04478049, 0.04489058, 0.04497282, 0.04499383, 0.04499986, 0.045, 0.045, 0.045, 0.045, 0.045, 0.045, 0.07193649, 0.22496515, 0.27135968, 0.28641323, 0.29227009, 0.29454881, 0.29543539, 0.29594669, 0.29599952, 0.296, 0.296, 0.296, 0.296, 0.296, 0.2564967, 0.00775777, 0.00569951, 0.00583465, 0.0059287, 0.00597123, 0.00598862, 0.00599892, 0.00599999, 0.006, 0.006, 0.006, 0.006, 0.006, 0.00572464, 0.40071959, 0.49046429, 0.51767256, 0.52825844, 0.53237707, 0.5339795, 0.53490364, 0.53499914, 0.535, 0.535, 0.535, 0.535, 0.535, 0.46360046, 0.01527548, 0.01221945, 0.01262269, 0.01284268, 0.01293724, 0.01297531, 0.01299766, 0.01299998, 0.013, 0.013, 0.013, 0.013, 0.013, 0.0121249, 0.22372752, 0.27539585, 0.31006428, 0.33332611, 0.34893434, 0.35940715, 0.37288833, 0.37969348, 0.38075738, 0.38076469, 0.38076469, 0.38076469, 0.3807538, 0.25213023, 0.00470778, 0.00382148, 0.00345747, 0.00335662, 0.00336108, 0.00338269, 0.00347993, 0.00353699, 0.00354678, 0.00354685, 0.00354685, 0.00354685, 0.00354675, 0.00392537, 0.09206541, 0.11332728, 0.12759358, 0.13716598, 0.14358887, 0.14789851, 0.1534461, 0.15624647, 0.15668427, 0.15668728, 0.15668728, 0.15668728, 0.15668279, 0.10375332, 0.00252962, 0.002546, 0.00266578, 0.00278947, 0.00288949, 0.00296074, 0.00306607, 0.00312079, 0.00312951, 0.00312957, 0.00312957, 0.00312957, 0.00312948, 0.00244328, 0.06754732, 0.08314691, 0.09361393, 0.10063709, 0.10534949, 0.10851142, 0.11258163, 0.11463622, 0.11495743, 0.11495964, 0.11495964, 0.11495964, 0.11495635, 0.07612261, 0.00213774, 0.00227914, 0.00244681, 0.00258585, 0.00268919, 0.00276096, 0.00286123, 0.00291273, 0.00292088, 0.00292093, 0.00292093, 0.00292093, 0.00292085, 0.00215469, 0.22511801, 0.04983038, 0.01103007, 0.00244153, 0.00054044, 0.00011963, 2.75765325e-06, 1.46541038e-09, 0, 0, 0, 0, 3.52563507e-17, 0.10591372, 0.02208496, 0.00488855, 0.00108209, 0.00023952, 0.00005302, 0.00001011, 2.70536565e-07, 1.43762486e-10, 0, 0, 0, 0, 6.85173421e-18, 0.01146909, 0.02807796, 0.00973959, 0.00378937, 0.00147432, 0.00057361, 0.00022317, 0.00002107, 1.87862282e-07, 1.4098225e-12, 0, 0, 0, 3.62358619e-12, 0.01561448, 0.00265997, 0.00067754, 0.00026361, 0.00010256, 0.0000399, 0.0000137, 1.4659057e-06, 1.30688111e-08, 9.80752454e-14, 0, 0, 0, 2.8905046e-13, 0.00108704, 0.03940565, 0.01306936, 0.00508488, 0.00197836, 0.00076972, 0.00029947, 0.00002828, 2.52088703e-07, 1.8918131e-12, 0, 0, 0, 4.86241907e-12, 0.02095276, 0.00412705, 0.00109008, 0.00042411, 0.00016501, 0.0000642, 0.00002298, 2.35844619e-06, 2.10259689e-08, 1.57790119e-13, 0, 0, 0, 4.47776686e-13, 0.00178175, 0.22202863, 0.22108687, 0.22015925, 0.21924573, 0.21834624, 0.21746073, 0.2153077, 0.21125921, 0.20260415, 0.19131089, 0.18769561, 0.19161321, 0.20322092, 0.22155597, 0.00714158, 0.00711128, 0.00708144, 0.00705205, 0.00702311, 0.00699454, 0.00692535, 0.0067951, 0.00651665, 0.00615331, 0.00603699, 0.00616302, 0.00653649, 0.00712629, 0.1993064, 0.19846102, 0.19762834, 0.1968083, 0.19600087, 0.19520597, 0.19327329, 0.18963912, 0.18186981, 0.17173229, 0.16848699, 0.17200367, 0.18242346, 0.19888212, 0.00649234, 0.00646479, 0.00643766, 0.00641095, 0.00638464, 0.00635867, 0.00629577, 0.00617736, 0.00592422, 0.00559392, 0.00548818, 0.00560275, 0.00594226, 0.00647844, 0.10841749, 0.10795762, 0.10750466, 0.10705859, 0.10661936, 0.10618696, 0.10513563, 0.10315874, 0.09893244, 0.09341789, 0.09165253, 0.09356551, 0.09923361, 0.10818669, 0.00584295, 0.00581816, 0.00579375, 0.00576971, 0.00574603, 0.00572271, 0.00566607, 0.00555952, 0.00533173, 0.00503451, 0.00493936, 0.00504246, 0.00534796, 0.00583048] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [14, 9] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "NULL" }, { "type": "character", "attributes": {}, "value": ["Distance", "Total Cobble Beta", "SE", "Total Cobble Gamma", "SE", "Total Beta Sed.", "SE", "Total Gamma Sed.", "SE"] } ] } }, "value": [0, 0.4, 0.8, 1.2, 1.6, 2, 3, 5, 10, 20, 30, 40, 50, 59.4, 4.1682015, 5.27024022, 5.52630606, 5.5900748, 5.60694787, 5.6117557, 5.61383514, 5.61399866, 5.614, 5.614, 5.614, 5.614, 5.614, 4.91947354, 0.25606764, 0.18118704, 0.18324344, 0.18465095, 0.18511646, 0.18526139, 0.18532844, 0.18533381, 0.18533386, 0.18533386, 0.18533386, 0.18533386, 0.18533386, 0.18897338, 0.38334026, 0.47187005, 0.53127179, 0.57112918, 0.59787271, 0.61581708, 0.63891606, 0.65057617, 0.65239908, 0.6524116, 0.6524116, 0.6524116, 0.65239294, 0.43200616, 0.01797753, 0.01795982, 0.01873816, 0.01957898, 0.02026894, 0.02076252, 0.02149891, 0.02188207, 0.02194322, 0.02194364, 0.02194364, 0.02194364, 0.02194301, 0.01727022, 0.29260163, 0.07263932, 0.01990431, 0.00589422, 0.00188377, 0.00064228, 0.00005211, 4.41416395e-07, 3.3016356e-12, 0, 0, 0, 8.48604052e-12, 0.14248096, 0.05031387, 0.01063131, 0.00291314, 0.00086266, 0.0002757, 0.00008326, 7.6261325e-06, 6.46046109e-08, 0, 0, 0, 0, 1.94646459e-12, 0.0219827, 0.52975251, 0.5275055, 0.52529225, 0.52311262, 0.52096647, 0.51885366, 0.51371663, 0.50405707, 0.48340639, 0.45646107, 0.44783513, 0.45718239, 0.48487798, 0.52862478, 0.03745977, 0.03730086, 0.03714434, 0.03699019, 0.03683841, 0.03668874, 0.03632569, 0.03564255, 0.03418209, 0.03227645, 0.0316664, 0.03232743, 0.03428617, 0.03737974] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Distance", "DistanceError", "Thickness", "ThicknessError", "Mineral", "Cobble_K", "C_K_SE", "Cobble_Th", "Cobble_Th_SE", "Cobble_U", "Cobble_U_SE", "GrainSize", "Density", "CobbleDiameter", "Sed_K", "Sed_K_SE", "Sed_Th", "Sed_Th_SE", "Sed_U", "Sed_U_SE", "GrainSize_Sed", "Density_Sed", "WaterContent", "WaterContent_SE"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] } }, "value": [ { "type": "double", "attributes": {}, "value": [0, 0.4, 0.8, 1.2, 1.6, 2, 3, 5, 10, 20, 30, 40, 50, 59.4] }, { "type": "double", "attributes": {}, "value": [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05] }, { "type": "double", "attributes": {}, "value": [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4] }, { "type": "double", "attributes": {}, "value": [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05] }, { "type": "character", "attributes": {}, "value": ["FS", "", "", "", "", "", "", "", "", "", "", "", "", ""] }, { "type": "double", "attributes": {}, "value": [7.51, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.07, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [15.78, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.32, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [4.88, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.12, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [500, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [2.7, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [6, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [2.13, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.07, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [9.76, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.32, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [2.24, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [0.12, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [60, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [1.6, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [45, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] }, { "type": "double", "attributes": {}, "value": [10, "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_CobbleDoseRate"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/calc_OSLLxTxDecomposed.md0000644000176200001440000001717014762554470023761 0ustar liggesusers# check class and length of output { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LxTx.table"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error", "LxTx", "LxTx.Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [52987] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [4638] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [0] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_OSLLxTxDecomposed"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LxTx.table"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error", "LxTx", "LxTx.Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.2] }, { "type": "double", "attributes": {}, "value": [28722] }, { "type": "double", "attributes": {}, "value": [0.2] }, { "type": "double", "attributes": {}, "value": [2765] }, { "type": "double", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [144273.92] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_OSLLxTxDecomposed"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["LxTx.table"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error", "LxTx", "LxTx.Error"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] } }, "value": [ { "type": "double", "attributes": {}, "value": [0.4] }, { "type": "double", "attributes": {}, "value": [15688] }, { "type": "double", "attributes": {}, "value": [0.4] }, { "type": "double", "attributes": {}, "value": [1655] }, { "type": "double", "attributes": {}, "value": [1] }, { "type": "double", "attributes": {}, "value": [39450.31] } ] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_OSLLxTxDecomposed"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/calc_CosmicDoseRate.md0000644000176200001440000005567314762554470023357 0ustar liggesusers# check functionality { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "args", "call"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["depth", "density", "latitude", "longitude", "altitude", "total_absorber.gcm2", "d0", "geom_lat", "dc"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [2.78] }, { "type": "double", "attributes": {}, "value": [1.7] }, { "type": "double", "attributes": {}, "value": [38.06451] }, { "type": "double", "attributes": {}, "value": [1.49646] }, { "type": "double", "attributes": {}, "value": [364] }, { "type": "double", "attributes": {}, "value": [472.6] }, { "type": "double", "attributes": {}, "value": [0.1518269] }, { "type": "double", "attributes": {}, "value": [41.06850451] }, { "type": "double", "attributes": {}, "value": [0.16100203] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["depth", "density", "latitude", "longitude", "altitude", "corr.fieldChanges", "est.age", "half.depth", "error"] } }, "value": [ { "type": "double", "attributes": {}, "value": [2.78] }, { "type": "double", "attributes": {}, "value": [1.7] }, { "type": "double", "attributes": {}, "value": [38.06451] }, { "type": "double", "attributes": {}, "value": [1.49646] }, { "type": "double", "attributes": {}, "value": [364] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "double", "attributes": {}, "value": [10] } ] }, { "type": "language", "attributes": { "srcref": { "type": "integer", "attributes": { "srcfile": { "type": "environment", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["srcfilecopy", "srcfile"] } }, "value": {} }, "class": { "type": "character", "attributes": {}, "value": ["srcref"] } }, "value": [7, 3, 7, 30, 3, 30, 7, 7] } }, "value": ["calc_CosmicDoseRate(depth = 2.78, density = 1.7, latitude = 38.06451, ", " longitude = 1.49646, altitude = 364, error = 10)"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_CosmicDoseRate"] }, "info": { "type": "list", "attributes": {}, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "args", "call"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["depth", "d0", "dc", "dc_err", "latitude", "longitude", "altitude", "total_absorber.gcm2", "geom_lat"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] } }, "value": [ { "type": "double", "attributes": {}, "value": [2.78, 3.12] }, { "type": "double", "attributes": {}, "value": [0.1781, 0.1746] }, { "type": "double", "attributes": {}, "value": [0.185, 0.1814] }, { "type": "double", "attributes": {}, "value": [0.0185, 0.0181] }, { "type": "double", "attributes": {}, "value": [28.06451, 28.06451] }, { "type": "double", "attributes": {}, "value": [1.49646, 1.49646] }, { "type": "double", "attributes": {}, "value": [364, 364] }, { "type": "double", "attributes": {}, "value": [236.3, 265.2] }, { "type": "double", "attributes": {}, "value": [31.358495, 31.358495] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["depth", "density", "latitude", "longitude", "altitude", "corr.fieldChanges", "est.age", "half.depth", "error"] } }, "value": [ { "type": "double", "attributes": {}, "value": [2.78, 3.12] }, { "type": "double", "attributes": {}, "value": [1.7] }, { "type": "double", "attributes": {}, "value": [28.06451] }, { "type": "double", "attributes": {}, "value": [1.49646] }, { "type": "double", "attributes": {}, "value": [364] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [20] }, { "type": "logical", "attributes": {}, "value": [true] }, { "type": "double", "attributes": {}, "value": [10] } ] }, { "type": "language", "attributes": { "srcref": { "type": "integer", "attributes": { "srcfile": { "type": "environment", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["srcfilecopy", "srcfile"] } }, "value": {} }, "class": { "type": "character", "attributes": {}, "value": ["srcref"] } }, "value": [7, 3, 7, 30, 3, 30, 7, 7] } }, "value": ["calc_CosmicDoseRate(depth = c(2.78, 3.12), density = 1.7, corr.fieldChanges = TRUE, ", " est.age = 20, latitude = 28.06451, longitude = 1.49646, altitude = 364, ", " half.depth = TRUE)"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_CosmicDoseRate"] }, "info": { "type": "list", "attributes": {}, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "args", "call"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["depth.1", "depth.2", "density.1", "density.2", "latitude", "longitude", "altitude", "total_absorber.gcm2", "d0", "geom_lat", "dc"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [1.78] }, { "type": "double", "attributes": {}, "value": [0.12] }, { "type": "double", "attributes": {}, "value": [0.7] }, { "type": "double", "attributes": {}, "value": [0.2] }, { "type": "double", "attributes": {}, "value": [120] }, { "type": "double", "attributes": {}, "value": [30] }, { "type": "double", "attributes": {}, "value": [1200] }, { "type": "double", "attributes": {}, "value": [127] }, { "type": "double", "attributes": {}, "value": [0.19206906] }, { "type": "double", "attributes": {}, "value": [59.73652117] }, { "type": "double", "attributes": {}, "value": [0.24172076] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["depth", "density", "latitude", "longitude", "altitude", "corr.fieldChanges", "est.age", "half.depth", "error"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1.78, 0.12] }, { "type": "double", "attributes": {}, "value": [0.7, 0.2] }, { "type": "double", "attributes": {}, "value": [120] }, { "type": "double", "attributes": {}, "value": [30] }, { "type": "double", "attributes": {}, "value": [1200] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "double", "attributes": {}, "value": [10] } ] }, { "type": "language", "attributes": { "srcref": { "type": "integer", "attributes": { "srcfile": { "type": "environment", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["srcfilecopy", "srcfile"] } }, "value": {} }, "class": { "type": "character", "attributes": {}, "value": ["srcref"] } }, "value": [7, 3, 7, 30, 3, 30, 7, 7] } }, "value": ["calc_CosmicDoseRate(depth = c(1.78, 0.12), density = c(0.7, 0.2), ", " latitude = 120, longitude = 30, altitude = 1200)"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_CosmicDoseRate"] }, "info": { "type": "list", "attributes": {}, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["summary", "args", "call"] } }, "value": [ { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["depth.1", "depth.2", "density.1", "density.2", "latitude", "longitude", "altitude", "total_absorber.gcm2", "d0", "geom_lat", "dc"] }, "class": { "type": "character", "attributes": {}, "value": ["data.frame"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1] } }, "value": [ { "type": "double", "attributes": {}, "value": [1.78] }, { "type": "double", "attributes": {}, "value": [0.12] }, { "type": "double", "attributes": {}, "value": [0.2] }, { "type": "double", "attributes": {}, "value": [0.2] }, { "type": "double", "attributes": {}, "value": [30] }, { "type": "double", "attributes": {}, "value": [120] }, { "type": "double", "attributes": {}, "value": [120] }, { "type": "double", "attributes": {}, "value": [38] }, { "type": "double", "attributes": {}, "value": [0.22748768] }, { "type": "double", "attributes": {}, "value": [18.4128158] }, { "type": "double", "attributes": {}, "value": [0.21542164] } ] }, { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["depth", "density", "latitude", "longitude", "altitude", "corr.fieldChanges", "est.age", "half.depth", "error"] } }, "value": [ { "type": "double", "attributes": {}, "value": [1.78, 0.12] }, { "type": "double", "attributes": {}, "value": [0.2, 0.2] }, { "type": "double", "attributes": {}, "value": [30] }, { "type": "double", "attributes": {}, "value": [120] }, { "type": "double", "attributes": {}, "value": [120] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "logical", "attributes": {}, "value": [null] }, { "type": "logical", "attributes": {}, "value": [false] }, { "type": "double", "attributes": {}, "value": [10] } ] }, { "type": "language", "attributes": { "srcref": { "type": "integer", "attributes": { "srcfile": { "type": "environment", "attributes": { "class": { "type": "character", "attributes": {}, "value": ["srcfilecopy", "srcfile"] } }, "value": {} }, "class": { "type": "character", "attributes": {}, "value": ["srcref"] } }, "value": [7, 3, 7, 30, 3, 30, 7, 7] } }, "value": ["calc_CosmicDoseRate(depth = c(1.78, 0.12), density = c(0.2, 0.2), ", " latitude = 30, longitude = 120, altitude = 120)"] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["calc_CosmicDoseRate"] }, "info": { "type": "list", "attributes": {}, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/_snaps/fit_OSLLifeTimes.md0000644000176200001440000002614314762554470022620 0ustar liggesusers# check functionality { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "start_matrix", "total_counts"] } }, "value": [ { "type": "list", "attributes": {}, "value": [ { "type": "double", "attributes": {}, "value": [21187374624.91338] }, { "type": "double", "attributes": {}, "value": [87.91459512] }, { "type": "double", "attributes": {}, "value": [97105538.01901485] }, { "type": "double", "attributes": {}, "value": [3.1679345] }, { "type": "double", "attributes": {}, "value": [218.18914819] }, { "type": "double", "attributes": {}, "value": [27.75139291] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [1.19644063e-143] } ] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["Comp.1"] }, { "type": "character", "attributes": {}, "value": ["A", "tau"] } ] } }, "value": [1891061285548.3481, 1192.89302733] }, { "type": "double", "attributes": {}, "value": [38310000000000] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_OSLLifeTimes"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "start_matrix", "total_counts"] } }, "value": [ { "type": "list", "attributes": {}, "value": [ { "type": "double", "attributes": {}, "value": [21187380528.417492] }, { "type": "double", "attributes": {}, "value": [87.91437058] }, { "type": "double", "attributes": {}, "value": [21187374615.080013] }, { "type": "double", "attributes": {}, "value": [87.91459548] }, { "type": "double", "attributes": {}, "value": [97105552.15831606] }, { "type": "double", "attributes": {}, "value": [3.16791835] }, { "type": "double", "attributes": {}, "value": [97105537.39146955] }, { "type": "double", "attributes": {}, "value": [3.1679345] }, { "type": "double", "attributes": {}, "value": [218.18917721] }, { "type": "double", "attributes": {}, "value": [27.75146355] }, { "type": "double", "attributes": {}, "value": [218.1891495] }, { "type": "double", "attributes": {}, "value": [27.75139309] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [1.19474683e-143] }, { "type": "double", "attributes": {}, "value": [0] }, { "type": "double", "attributes": {}, "value": [1.19643624e-143] } ] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [2, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["Comp.1", "Comp.1"] }, { "type": "character", "attributes": {}, "value": ["A", "tau"] } ] } }, "value": [2032205010479.8926, 2032643529227.3938, 110.38004153, 114.5974491] }, { "type": "double", "attributes": {}, "value": [38310000000000, 38310000000000] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_OSLLifeTimes"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } --- { "type": "S4", "attributes": { "data": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["data", "start_matrix", "total_counts"] } }, "value": [ { "type": "list", "attributes": {}, "value": [ { "type": "double", "attributes": {}, "value": [31649193808.64809] }, { "type": "double", "attributes": {}, "value": [3.19735974] }, { "type": "double", "attributes": {}, "value": [733990387.37895739] }, { "type": "double", "attributes": {}, "value": [0.24304722] }, { "type": "double", "attributes": {}, "value": [43.11935736] }, { "type": "double", "attributes": {}, "value": [13.15530275] }, { "type": "double", "attributes": {}, "value": [1.34471628e-102] }, { "type": "double", "attributes": {}, "value": [8.14487851e-29] } ] }, { "type": "double", "attributes": { "dim": { "type": "integer", "attributes": {}, "value": [1, 2] }, "dimnames": { "type": "list", "attributes": {}, "value": [ { "type": "character", "attributes": {}, "value": ["Comp.1"] }, { "type": "character", "attributes": {}, "value": ["A", "tau"] } ] } }, "value": [3163386906904.6982, 3.20602699] }, { "type": "double", "attributes": {}, "value": [4707500000000] } ] }, "originator": { "type": "character", "attributes": {}, "value": ["fit_OSLLifeTimes"] }, "info": { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": [] } }, "value": [] }, ".uid": { "type": "character", "attributes": {}, "value": [null] }, ".pid": { "type": "character", "attributes": {}, "value": [null] } }, "value": { "class": "RLum.Results", "package": "Luminescence" } } Luminescence/tests/testthat/test_convert_Daybreak2CSV.R0000644000176200001440000000157614762554470023017 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(convert_Daybreak2CSV(), "'file' should be of class 'character' or 'RLum'") expect_error(convert_Daybreak2CSV(character(0)), "'file' cannot be an empty character") expect_error(convert_Daybreak2CSV(letters), "[read_Daybreak2R()] 'file' should have length 1", fixed = TRUE) expect_error(convert_Daybreak2CSV(""), "File does not exist") }) test_that("check class and length of output", { testthat::skip_on_cran() SW({ res <- read_Daybreak2R(file = system.file("extdata/Daybreak_TestFile.txt", package = "Luminescence"))[[1]] }) expect_null(convert_Daybreak2CSV(res, path = tempdir())) expect_type(convert_Daybreak2CSV(res, path = tempdir(), export = FALSE), "list") }) Luminescence/tests/testthat/test_calc_FadingCorr.R0000644000176200001440000001156314762554470022074 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(calc_FadingCorr("error"), "'age.faded' should be of class 'numeric' or 'integer'") expect_error(calc_FadingCorr(1), "'age.faded' should have length 2") expect_error(calc_FadingCorr(c(0.1, 0), "error"), "'g_value' should be of class 'numeric', 'integer' or 'RLum.Results'") expect_error(calc_FadingCorr(c(0.1, 0), 1), "'g_value' should have length 2") expect_error(calc_FadingCorr(age.faded = c(0.1, 0), g_value = c(5.0, 1.0)), "[calc_FadingCorr()] 'tc' should be of class 'numeric' or", fixed = TRUE) expect_error(calc_FadingCorr(age.faded = c(0.1, 0), g_value = c(5.0, 1.0), tc = c(1000, 2000)), "[calc_FadingCorr()] 'tc' should be a positive scalar", fixed = TRUE) expect_error(calc_FadingCorr(age.faded = c(0.1, 0), g_value = c(5.0, 1.0), tc = 2592000, n.MC = "error"), "'n.MC' should be a positive integer scalar") expect_error(calc_FadingCorr(age.faded = c(0.1, 0), g_value = c(5.0, 1.0), tc = 2592000, interval = "error"), "'interval' should be of class 'numeric'") expect_error(calc_FadingCorr(age.faded = c(0.1, 0), g_value = c(5.0, 1.0), tc = 2592000, interval = 1), "'interval' should have length 2") expect_error(calc_FadingCorr(age.faded = c(0.1, 0), g_value = c(5.0, 1.0), tc = 2592000, txtProgressBar = "error"), "'txtProgressBar' should be a single logical value") expect_error(calc_FadingCorr(age.faded = c(0.1, 0), g_value = c(5.0, 1.0), tc = 2592000, verbose = "error"), "'verbose' should be a single logical value") }) test_that("check class and length of output", { testthat::skip_on_cran() ##check message expect_message(calc_FadingCorr( age.faded = c(6.404856, 0.51), g_value = c(17.5,1.42), tc = 462, n.MC = 100), "[calc_FadingCorr()] Error: No solution found, NULL returned: this usually", fixed = TRUE) ##check the verbose mode SW({ expect_s4_class(calc_FadingCorr( age.faded = c(0.1,0), g_value = c(5.0, 1.0), tc = 2592000, tc.g_value = 172800, n.MC = 1, verbose = TRUE), class = "RLum.Results") ## g_value provided as RLum.Results object data("ExampleData.Fading", envir = environment()) fading <- analyse_FadingMeasurement(ExampleData.Fading$fading.data$IR50, plot = FALSE) expect_s4_class(calc_FadingCorr(age.faded = c(0.1,0), g_value = fading, tc = 2592000), "RLum.Results") }) fading@originator <- "unexpected" expect_message( expect_null(calc_FadingCorr(age.faded = c(0.1,0), g_value = fading, tc = 2592000)), "Unknown originator for the 'g_value' object provided") ## auto, seed (Note: this is slow!) SW({ calc_FadingCorr( age.faded = c(0.1,0), g_value = c(5.0, 1.0), tc = 2592000, seed = 1, n.MC = "auto") }) }) test_that("check values from output example 1", { testthat::skip_on_cran() set.seed(1) temp <- calc_FadingCorr( age.faded = c(0.1,0), g_value = c(5.0, 1.0), tc = 2592000, tc.g_value = 172800, n.MC = 100, verbose = FALSE) expect_s4_class(temp, "RLum.Results") expect_equal(length(temp), 2) results <- get_RLum(temp) expect_equal(results$AGE, 0.1169) expect_equal(results$AGE.ERROR, 0.0035) expect_equal(results$AGE_FADED, 0.1) expect_equal(results$AGE_FADED.ERROR, 0) expect_equal(results$G_VALUE, 5.312393) expect_equal(round(results$G_VALUE.ERROR, 5), 1.01190) expect_equal(round(results$KAPPA, 3), 0.0230) expect_equal(round(results$KAPPA.ERROR,3), 0.004) expect_equal(results$TC, 8.213721e-05) expect_equal(results$TC.G_VALUE, 5.475814e-06) expect_equal(results$n.MC, 100) expect_equal(results$OBSERVATIONS, 100) expect_equal(results$SEED, NA) }) test_that("snapshot tests", { testthat::skip_on_cran() snapshot.tolerance <- 1.5e-4 set.seed(1) expect_snapshot_RLum(calc_FadingCorr( age.faded = c(1, 0), g_value = c(5.0, 1.0), tc = 25920, tc.g_value = 172800, n.MC = 20, verbose = FALSE), tolerance = snapshot.tolerance) expect_snapshot_RLum(calc_FadingCorr( age.faded = c(10, 0), g_value = c(5.0, 1.0), tc = 2592000, tc.g_value = 172800, n.MC = 20, verbose = FALSE), tolerance = snapshot.tolerance) expect_snapshot_RLum(calc_FadingCorr( age.faded = c(1, 6), g_value = c(5.37778156709913, 0.70382588155986), tc = 378000, tc.g_value = 172800, n.MC = 1000, seed = 11, verbose = FALSE), tolerance = snapshot.tolerance) }) Luminescence/tests/testthat/test_read_XSYG2R.R0000644000176200001440000001200614762554470021056 0ustar liggesusers## path to the XSYG file on github github.url <- file.path("https://raw.githubusercontent.com/R-Lum", "rxylib/master/inst/extdata/TLSpectrum.xsyg") xsyg.file <- .download_file(github.url, tempfile("test_read_XSYG2R"), verbose = FALSE) test_that("input validation", { testthat::skip_on_cran() expect_error(read_XSYG2R(data.frame()), "'file' should be of class 'character' or 'list'") expect_error(read_XSYG2R(character(0)), "'file' should have length 1") expect_message(expect_null(read_XSYG2R("_error_file_")), "Error: File does not exist, nothing imported") expect_message(expect_null(read_XSYG2R("/Test", fastForward = TRUE)), "Error: File does not exist, nothing imported") expect_message(expect_null(read_XSYG2R(test_path("_data/xsyg-tests/XSYG_broken.xsyg"), fastForward = TRUE)), "Error: XML file not readable, nothing imported") SW({ expect_message(expect_null(read_XSYG2R(test_path("_data/bin-tests/"))), "No files matching the given pattern found in directory") }) }) test_that("test import of XSYG files", { testthat::skip_on_cran() ## download from github expect_type(read_XSYG2R(github.url, import = FALSE, verbose = FALSE), "list") ## local file expect_type(read_XSYG2R(xsyg.file, verbose = FALSE), "list") expect_s3_class(read_XSYG2R(xsyg.file, fastForward = TRUE, import = FALSE, verbose = FALSE), "data.frame") expect_silent(read_XSYG2R(xsyg.file, verbose = FALSE, recalculate.TL.curves = FALSE)) expect_silent(read_XSYG2R(xsyg.file, verbose = FALSE, pattern = "xsyg", recalculate.TL.curves = FALSE)) expect_type(read_XSYG2R(xsyg.file, fastForward = FALSE, verbose = FALSE), "list") results <- expect_type(read_XSYG2R(xsyg.file, fastForward = TRUE, verbose = FALSE), type = "list") expect_type(results[[1]]@info$file, type = "character") expect_output(print(results)) ## check n_records argument expect_type(read_XSYG2R(xsyg.file, verbose = FALSE, n_records = 1), "list") expect_type(read_XSYG2R(xsyg.file, verbose = FALSE, n_records = 10), "list") expect_error(read_XSYG2R(xsyg.file, verbose = FALSE, n_records = "error"), regexp = "\\[read\\_XSYG2R\\(\\)\\] 'n\\_records' should be of class") ## list input expect_type(read_XSYG2R(list(xsyg.file), fastForward = TRUE, verbose = FALSE), "list") expect_s3_class(read_XSYG2R(list(xsyg.file), fastForward = TRUE, import = FALSE, verbose = FALSE), "data.frame") expect_type(read_XSYG2R(list(xsyg.file), fastForward = FALSE, verbose = FALSE), "list") expect_length(read_XSYG2R(list()), 0) ## check also internal files SW({ expect_type(read_XSYG2R(system.file("extdata/XSYG_file.xsyg", package = "Luminescence"), fastForward = TRUE, import = TRUE, verbose = TRUE), "list") }) ## more tests for different TL curve calculation cases ## CASE2 expect_s4_class( read_XSYG2R(test_path("_data/xsyg-tests/XSYG_file_TL_CASE2.xsyg"), fastForward = TRUE, txtProgressBar = FALSE, verbose = FALSE)[[1]], "RLum.Analysis") ## CASE3 expect_s4_class( read_XSYG2R(test_path("_data/xsyg-tests/XSYG_file_TL_CASE3.xsyg"), fastForward = TRUE, txtProgressBar = FALSE, verbose = FALSE)[[1]], "RLum.Analysis") ## check case for no record Type t <- expect_s4_class( read_XSYG2R(test_path("_data/xsyg-tests/XSYG_noRecordType.xsyg"), fastForward = TRUE, txtProgressBar = FALSE, verbose = FALSE)[[1]], "RLum.Analysis") expect_equal(t@records[[1]]@recordType, "not_set (UVVIS)") ## check case for OSL record but IRSL stimulator t <- expect_s4_class( read_XSYG2R(test_path("_data/xsyg-tests/XSYG_corr_IRSL.xsyg"), fastForward = TRUE, txtProgressBar = FALSE, verbose = FALSE)[[1]], "RLum.Analysis") expect_equal(t@records[[1]]@recordType, "IRSL (NA)") ## check case for spectrum t <- expect_s4_class( read_XSYG2R(test_path("_data/xsyg-tests/XSYG_spectra.xsyg"), fastForward = TRUE, txtProgressBar = FALSE, verbose = FALSE)[[1]], "RLum.Analysis") ## check case for spectrum ... equal heating element values t <- expect_s4_class( read_XSYG2R(test_path("_data/xsyg-tests/XSYG_spectra_equal_TL.xsyg"), fastForward = TRUE, txtProgressBar = FALSE, verbose = FALSE)[[1]], "RLum.Analysis") ## check case for spectrum ... duplicated values expect_warning( read_XSYG2R(test_path("_data/xsyg-tests/XSYG_spectra_duplicated_TL.xsyg"), fastForward = TRUE, txtProgressBar = FALSE, verbose = FALSE), regexp = "Temperature values are found to be duplicated and increased by 1 K.") }) Luminescence/tests/testthat/test_calc_Lamothe2003.R0000644000176200001440000001030014762554470021740 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() df <- data.frame(x = c(0, 10, 20), y = c(1.4, 0.7, 2.3), z = c(0.01, 0.02, 0.03)) expect_error(calc_Lamothe2003(), "'object' should be of class 'data.frame' or 'RLum.Results'") ##dose_rate.envir expect_error(calc_Lamothe2003(df), "'dose_rate.envir' should be of class 'numeric'") expect_error(calc_Lamothe2003(df, dose_rate.envir = 1), "'dose_rate.envir' should contain 2 elements") ##dose_rate.source expect_error(calc_Lamothe2003(df, dose_rate.envir = c(1, 1)), "'dose_rate.source' should be of class 'numeric'") expect_error(calc_Lamothe2003(df, dose_rate.envir = c(1, 1), dose_rate.source = 1), "'dose_rate.source' should contain 2 elements") ##g_value expect_error(calc_Lamothe2003(object = df, dose_rate.envir = c(1, 1), dose_rate.source = c(1, 2)), "'g_value' should be of class 'numeric'") expect_error(calc_Lamothe2003(object = df, dose_rate.envir = c(1, 2), dose_rate.source = c(1, 2), g_value = 1), "'g_value' should contain 2 elements") ##check warnings SW({ expect_warning( expect_s4_class(calc_Lamothe2003(object = df, dose_rate.envir = c(1, 2, 3), dose_rate.source = c(1, 2, 3), g_value = c(1, 1, 1)), "RLum.Results"), "taking only the first two entries") }) expect_error(suppressWarnings( calc_Lamothe2003( object = set_RLum("RLum.Results"), dose_rate.envir = c(1, 2, 3), dose_rate.source = c(1, 2, 3), g_value = c(1, 2) )), regexp = "Input for 'object' created by" ) ##tc expect_error( suppressWarnings(calc_Lamothe2003( object = set_RLum("RLum.Results"), dose_rate.envir = c(1, 2, 3), dose_rate.source = c(1, 2, 3), g_value = c(1, 1), tc.g_value = 1000 )), "If you set 'tc.g_value' you have to provide a value for 'tc' too" ) }) test_that("Test the function itself", { testthat::skip_on_cran() ##This is based on the package example ##load data ##ExampleData.BINfileData contains two BINfileData objects ##CWOSL.SAR.Data and TL.SAR.Data data(ExampleData.BINfileData, envir = environment()) ##transform the values from the first position in a RLum.Analysis object object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) ##perform SAR analysis and set rejection criteria results <- analyse_SAR.CWOSL( object = object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, verbose = FALSE, plot = FALSE, onlyLxTxTable = TRUE ) ##run fading correction SW({ expect_s4_class(calc_Lamothe2003( object = results, dose_rate.envir = c(1.676 , 0.180), dose_rate.source = c(0.184, 0.003), g_value = c(2.36, 0.6), plot = TRUE, fit.method = "EXP"), class = "RLum.Results") }) ##run fading correction SW({ expect_s4_class(calc_Lamothe2003( object = results, dose_rate.envir = c(1.676 , 0.180), dose_rate.source = c(0.184, 0.003), g_value = c(2.36, 0.6), tc = 1000, tc.g_value = 1200, plot = TRUE, fit.method = "EXP"), class = "RLum.Results") }) ## pretend to have an analyse_pIRIRSequence originator to increase coverage results.mod <- results results.mod@originator <- "analyse_pIRIRSequence" results.mod@data$LnLxTnTx.table$Signal <- 1 SW({ expect_s4_class(calc_Lamothe2003( object = results.mod, dose_rate.envir = c(1.676 , 0.180), dose_rate.source = c(0.184, 0.003), g_value = c(2.36, 0.6), plot = FALSE, fit.method = "EXP"), class = "RLum.Results") }) ## signal information present SW({ res <- suppressWarnings( calc_Lamothe2003( object = data.frame(x = c(0,10,20), y = c(1.4,0.7,2.3), z = c(0.01,0.02, 0.03), Signal=1:3), dose_rate.envir = c(1,2), dose_rate.source = c(1,2), g_value = c(1,1))) }) expect_equal(res$data$SIGNAL, 1:3) }) Luminescence/tests/testthat/test_plot_GrowthCurve.R0000644000176200001440000001727314762554470022415 0ustar liggesusers## load data data(ExampleData.LxTxData, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_error( plot_GrowthCurve("error"), "[fit_DoseResponseCurve()] 'object' should be of class 'data.frame'", fixed = TRUE) expect_error( plot_GrowthCurve(LxTxData, mode = "error"), "[fit_DoseResponseCurve()] 'mode' should be one of 'interpolation'", fixed = TRUE) expect_error( plot_GrowthCurve(LxTxData, fit.method = "error"), "'fit.method' should be one of 'LIN', 'QDR', 'EXP', 'EXP OR LIN'") expect_error( plot_GrowthCurve(LxTxData, output.plotExtended = "error"), "'output.plotExtended' should be a single logical value") expect_error( plot_GrowthCurve(LxTxData, plot_singlePanels = "error"), "'plot_singlePanels' should be a single logical value") expect_error( plot_GrowthCurve(LxTxData, verbose = "error"), "'verbose' should be a single logical value") expect_error( plot_GrowthCurve(LxTxData, cex.global = 0), "'cex.global' should be a positive scalar") ## Weird LxTx values LxTx <- structure(list( Dose = c(0, 250, 500, 750, 1000, 1500, 0, 500, 500), LxTx = c(1, Inf, 0, -Inf, Inf, 0, Inf, -0.25, 2), LxTx.Error = c(1.5813365, Inf, 0, Inf, Inf, 0, Inf, 1.4114626, 3.1626729)), class = "data.frame", row.names = c(NA, -9L)) SW({ expect_warning( plot_GrowthCurve(LxTx), "Inf values found, replaced by NA") }) ## same dose for all points tmp_LxTx <- LxTxData tmp_LxTx$Dose <- 10 SW({ expect_message(expect_null( plot_GrowthCurve(tmp_LxTx)), "All points have the same dose, NULL returned") }) ## only two columns expect_warning( plot_GrowthCurve(LxTxData[, 1:2], verbose = FALSE), "Error column invalid or 0, 'fit.weights' ignored") ## test case with all NA tmp_LxTx <- LxTxData tmp_LxTx$LxTx <- NA expect_message(expect_warning(expect_null( plot_GrowthCurve(tmp_LxTx, verbose = FALSE)), "7 NA values removed"), "Error: After NA removal, nothing is left from the data set") ## test case without TnTx column tmp_LxTx <- LxTxData tmp_LxTx$TnTx <- NULL expect_s4_class( plot_GrowthCurve(tmp_LxTx, verbose = FALSE), "RLum.Results") ## do not include reg point expect_s4_class( plot_GrowthCurve( sample = LxTxData, verbose = FALSE, fit.includingRepeatedRegPoints = FALSE), class = "RLum.Results") ## deprecated option expect_warning( plot_GrowthCurve(LxTxData, verbose = FALSE, output.plotExtended.single = TRUE), "'output.plotExtended.single' is deprecated, use 'plot_singlePanels'") }) test_that("main tests", { testthat::skip_on_cran() expect_output(plot_GrowthCurve(LxTxData, fit.method = "EXP", n.MC = 10)) expect_output(plot_GrowthCurve(LxTxData, fit.method = "LIN", n.MC = 10)) expect_output(plot_GrowthCurve(LxTxData, fit.method = "EXP+LIN", n.MC = 10)) expect_output(plot_GrowthCurve(LxTxData, fit.method = "EXP+EXP", n.MC = 10)) expect_output(plot_GrowthCurve(LxTxData, fit.method = "QDR", n.MC = 10)) expect_output(plot_GrowthCurve(LxTxData, fit.method = "GOK", n.MC = 10)) expect_output(plot_GrowthCurve(LxTxData, fit.method = "LambertW", n.MC = 10)) ## force through the origin expect_output(plot_GrowthCurve(LxTxData, fit.method = "EXP+LIN", fit.bounds = FALSE, fit.force_through_origin = TRUE, n.MC = 10)) temp_LxTx <- LxTxData temp_LxTx$LxTx[[7]] <- 1 expect_output(plot_GrowthCurve(temp_LxTx, fit.method = "GOK", fit.force_through_origin = TRUE, n.MC = 10)) }) test_that("additional tests", { testthat::skip_on_cran() LxTxData[1, 2:3] <- c(0.5, 0.001) ## Check extrapolation ---------------------------------------------------- expect_output(plot_GrowthCurve(LxTxData, fit.method = "LIN", mode = "extrapolation", n.MC = 10)) expect_output(plot_GrowthCurve(LxTxData, fit.method = "EXP", mode = "extrapolation", n.MC = 10)) expect_output(plot_GrowthCurve(LxTxData, fit.method = "EXP+LIN", mode = "extrapolation", n.MC = 10)) expect_output(plot_GrowthCurve(LxTxData, fit.method = "GOK", mode = "extrapolation", n.MC = 10)) expect_output(plot_GrowthCurve(LxTxData, fit.method = "LambertW", mode = "extrapolation", n.MC = 10)) ## force through the origin expect_output(plot_GrowthCurve(LxTxData, fit.method = "QDR", mode = "extrapolation", fit.force_through_origin = TRUE, n.MC = 10)) ## Check alternate -------------------------------------------------------- expect_silent(plot_GrowthCurve(LxTxData, fit.method = "QDR", mode = "alternate", verbose = FALSE, n.MC = 10)) expect_silent(plot_GrowthCurve(LxTxData, fit.method = "LIN", mode = "alternate", n.MC = 10)) expect_silent(plot_GrowthCurve(LxTxData, fit.method = "EXP", mode = "alternate", n.MC = 10)) expect_silent(plot_GrowthCurve(LxTxData, fit.method = "EXP+LIN", mode = "alternate", verbose = FALSE, n.MC = 10)) expect_silent(plot_GrowthCurve(LxTxData, fit.method = "GOK", mode = "alternate", n.MC = 10)) expect_silent(plot_GrowthCurve(LxTxData, fit.method = "LambertW", mode = "alternate", n.MC = 10)) ## only two valid points provided SW({ warnings <- capture_warnings(expect_message(plot_GrowthCurve( data.frame( dose = c(0, 1388.88888888889, NA), LxTx = c(1.54252220145258, 4.43951568403849, NA), LxTx_X = c(0.130074482379272, 2.59694106608, NA)), verbose = TRUE, NumberIterations.MC = 10), "'fit.method' changed to 'LIN'")) }) expect_match(warnings, "1 NA values removed", all = FALSE, fixed = TRUE) expect_match(warnings, "Fitting a non-linear least-squares model requires", all = FALSE, fixed = TRUE) expect_match(warnings, "'NumberIterations.MC' is deprecated, use 'n.MC' instead", all = FALSE, fixed = TRUE) }) Luminescence/tests/testthat/test_plot_DRCSummary.R0000644000176200001440000000426314762554470022117 0ustar liggesusers## load data data(ExampleData.BINfileData, envir = environment()) object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1) results <- analyse_SAR.CWOSL( object = object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, plot = FALSE, verbose = FALSE ) test_that("input validation", { testthat::skip_on_cran() expect_error(plot_DRCSummary("test"), "'object' should be of class 'RLum.Results'") expect_error(plot_DRCSummary(set_RLum("RLum.Results")), "'object' was not created by a supported function") ## different fit err <- merge_RLum(list(results, results)) err@data$data$Fit[2] <- "err" expect_error(plot_DRCSummary(err), "I can only visualise dose-response curves based on the same") }) test_that("Test plotting", { testthat::skip_on_cran() ## create LambertW DRC results_LamW <- analyse_SAR.CWOSL( object = object, fit.method = "LambertW", signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, n.MC = 2, plot = FALSE, verbose = FALSE ) ##simple expect_silent(plot_DRCSummary(results)) ##simple with graphical arguments expect_silent(plot_DRCSummary(results, col.lty = "red")) ##simple with LambertW expect_silent(plot_DRCSummary(results_LamW)) ## list expect_silent(plot_DRCSummary(list(results, results_LamW), main = "Title")) expect_silent(plot_DRCSummary(list(results, results_LamW), source_dose_rate = 1)) l <- expect_silent(plot_DRCSummary(list())) expect_length(l, 0) ##plus points expect_silent(plot_DRCSummary(results, show_dose_points = TRUE, show_natural = TRUE)) ##expect warning expect_warning(plot_DRCSummary(results, show_dose_points = TRUE, show_natural = TRUE, sel_curves = 1000), "'sel_curves' out of bounds, reset to full dataset") expect_warning(plot_DRCSummary(results_LamW, xlim = c(-1e12, 1e12)), "Dose response curve 1 contains NA/NaN values, curve removed") }) Luminescence/tests/testthat/test_Risoe.BINfileData2RLum.Data.Curve.R0000644000176200001440000000122314762554470025023 0ustar liggesuserstest_that("check functionality", { testthat::skip_on_cran() data(ExampleData.BINfileData, envir = environment()) res <- .Risoe.BINfileData2RLum.Data.Curve(CWOSL.SAR.Data, id = 1) expect_s4_class(res, "RLum.Data.Curve") expect_length(res@data, 500) expect_length(res@info, 44) expect_equal(res@originator, ".Risoe.BINfileData2RLum.Data.Curve") res1 <- .Risoe.BINfileData2RLum.Data.Curve(CWOSL.SAR.Data, pos = 1, set = 2, run = 1) expect_s4_class(res1, "RLum.Data.Curve") expect_equal(res1@data, res@data) expect_equal(res1@info, res@info) expect_equal(res1@originator, res@originator) }) Luminescence/tests/testthat/test_analyse_ThermochronometryData.R0000644000176200001440000000265114762554470025130 0ustar liggesusers## load data input.csv <- file.path(test_path("_data"), paste0("CLBR_IR", c(50, 100, 150, 225), ".csv")) test_that("input validation", { testthat::skip_on_cran() expect_error(analyse_ThermochronometryData(list()), "'object' should be of class 'character'") expect_error(analyse_ThermochronometryData("error"), "File does not exist") expect_error(analyse_ThermochronometryData(input.csv[1], verbose = "error"), "'verbose' should be a single logical value") expect_error(analyse_ThermochronometryData(test_path("_data/CLBR.xlsx")), "XLS/XLSX format is not supported, use CSV instead") expect_error(analyse_ThermochronometryData(test_path("_data/CLBR.xlsx")), "XLS/XLSX format is not supported, use CSV instead") expect_error(analyse_ThermochronometryData(input.csv[1], ITL_model = "error"), "'ITL_model' should be one of 'GOK' or 'BTS'") }) test_that("check functionality", { testthat::skip_on_cran() expect_s4_class(analyse_ThermochronometryData(input.csv[1], verbose = FALSE), "RLum.Results") expect_s4_class(analyse_ThermochronometryData(input.csv[1], ITL_model = "BTS", verbose = FALSE, num_s_values_bts = 10), "RLum.Results") }) Luminescence/tests/testthat/test_fit_EmissionSpectra.R0000644000176200001440000000775714762554470023060 0ustar liggesusers## load data data(ExampleData.XSYG, envir = environment()) ## subtract background TL.Spectrum@data <- TL.Spectrum@data[] - TL.Spectrum@data[, 15] test_that("input validation", { testthat::skip_on_cran() expect_error(fit_EmissionSpectra("fail"), "'object' should be of class 'RLum.Data.Spectrum', 'matrix' or") expect_error(fit_EmissionSpectra(list(TL.Spectrum, "fail")), "[fit_EmissionSpectra()] List elements of different class detected", fixed = TRUE) expect_error(fit_EmissionSpectra(matrix()), "'object' should have at least two columns") expect_error(fit_EmissionSpectra(TL.Spectrum, n_components = 1.4), "'n_components' should be a positive integer scalar") expect_error(fit_EmissionSpectra(TL.Spectrum, input_scale = "error"), "'input_scale' should be one of 'wavelength', 'energy' or NULL") expect_error(fit_EmissionSpectra(TL.Spectrum, method_control = "error"), "'method_control' should be of class 'list'") expect_error(fit_EmissionSpectra(TL.Spectrum, verbose = "error"), "'verbose' should be a single logical value") expect_error(fit_EmissionSpectra(TL.Spectrum, plot = "error"), "'plot' should be a single logical value") ## wrong frame range ------- expect_error(fit_EmissionSpectra(TL.Spectrum, frame = "error"), "'frame' should be of class 'integer', 'numeric' or NULL") expect_error(fit_EmissionSpectra(TL.Spectrum, frame = 1000), "Invalid 'frame', allowed values range from 1 to 24") ## wrong graining argument ------- SW({ expect_error(fit_EmissionSpectra(TL.Spectrum, frame = 5, method_control = list(graining = 10000)), "method_control$graining cannot exceed the available channels (1024)", fixed = TRUE) }) ## for matrix input ------- mat <- get_RLum(TL.Spectrum)[, 1:4] expect_error(fit_EmissionSpectra(object = mat, frame = "error"), "'frame' should be of class 'integer', 'numeric' or NULL") expect_error(fit_EmissionSpectra(object = mat, frame = 1000), "Invalid 'frame', allowed values range from 1 to 3") ## empty object expect_error(fit_EmissionSpectra(set_RLum("RLum.Data.Spectrum")), "'object' contains no data") }) test_that("check functionality", { testthat::skip_on_cran() SW({ ## for matrix input ------- mat <- get_RLum(TL.Spectrum)[, 1:4] expect_s4_class( fit_EmissionSpectra(object = mat, plot = FALSE, verbose = FALSE, method_control = list(max.runs = 5)), "RLum.Results") }) # plain run ------- SW({ results <- expect_s4_class(fit_EmissionSpectra( object = TL.Spectrum, frame = 5, main = "TL spectrum", n_components = 3, plot = TRUE, start_parameters = c(2.17), method_control = list(max.runs = 100, export.plot.data = TRUE)), "RLum.Results") }) expect_length(results, 4) expect_s3_class(results$fit[[1]], "nls") expect_type(results$data, "double") expect_length(results@data$df_plot, 1) expect_named(results@data$df_plot[[1]], c("ENERGY", "WAVELENGTH", "SUM", "COMP_1", "COMP_2", "COMP_3")) # silent mode ------- expect_silent(results <- fit_EmissionSpectra( object = TL.Spectrum, frame = 5, main = "TL spectrum", plot = FALSE, verbose = FALSE, method_control = list(max.runs = 10))) expect_equal(results@data$df_plot[[1]], NA) ## input_scale SW({ expect_s4_class( fit_EmissionSpectra(object = TL.Spectrum, frame = 5, input_scale = "wavelength", plot = FALSE, method_control = list(max.runs = 5)), "RLum.Results") }) ## plot set.seed(1) SW({ expect_s4_class( fit_EmissionSpectra(object = TL.Spectrum, frame = 5, plot = TRUE, n_components = 3, verbose = FALSE, mtext = "Subtitle", method_control = list(max.runs = 5)), "RLum.Results") }) }) Luminescence/tests/testthat/test_read_Daybreak2R.R0000644000176200001440000000372114762554470022012 0ustar liggesuserstest_that("Test functionality", { testthat::skip_on_cran() txt.file <- system.file("extdata/Daybreak_TestFile.txt", package = "Luminescence") dat.file <- system.file("extdata/Daybreak_TestFile.DAT", package = "Luminescence") ## TXT SW({ expect_type(read_Daybreak2R(txt.file), "list") expect_type(read_Daybreak2R(txt.file, txtProgressBar = FALSE), "list") }) expect_silent(read_Daybreak2R(txt.file, verbose = FALSE)) ## DAT SW({ expect_type(read_Daybreak2R(dat.file), "list") expect_s3_class(read_Daybreak2R(dat.file, raw = TRUE), "data.table") }) expect_silent(read_Daybreak2R(dat.file, verbose = FALSE)) ## list SW({ expect_type(read_Daybreak2R(list(dat.file)), "list") }) expect_silent(res <- read_Daybreak2R(list())) expect_type(res, "list") expect_length(res, 0) }) test_that("input validation", { testthat::skip_on_cran() expect_error(read_Daybreak2R(data.frame()), "'file' should be of class 'character' or 'list'") expect_error(read_Daybreak2R(character(0)), "'file' should have length 1") ## directory expect_error( expect_output(read_Daybreak2R( file = system.file("extdata", package = "Luminescence")), "Directory detected, trying to extract"), "File does not exist") ## test presence of non-ascii characters expect_error(read_Daybreak2R( file = system.file("extdata/BINfile_V8.binx", package = "Luminescence"), verbose = FALSE), "The provided file is not ASCII and cannot be imported") file.nonascii <- tempfile() writeLines(gsub("ScriptFile", "ScriptFile \uf6", # ö readLines(system.file("extdata/Daybreak_TestFile.txt", package = "Luminescence"))), file.nonascii) expect_error(read_Daybreak2R(file = file.nonascii, verbose = FALSE), "The provided file is not ASCII and cannot be imported") }) Luminescence/tests/testthat/test_read_BIN2R.R0000644000176200001440000002361514762554470020704 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() bin.v3 <- test_path("_data/BINfile_V3.bin") expect_error(read_BIN2R(TRUE), "'file' should be of class 'character' or 'list'") expect_error(read_BIN2R(character(0)), "'file' cannot be an empty character") expect_error(read_BIN2R(letters), "'file' should have length 1") expect_error(read_BIN2R(file = "error"), "File '.*error' does not exist") # windows CI needs the regexp expect_message(expect_null(read_BIN2R(test_path("test_read_BIN2R.R"))), "is not a file of type 'BIN' or 'BINX'") expect_error(read_BIN2R(test_path("_data/BINfile_V3.bin"), verbose = FALSE, forced.VersionNumber = 1), "BIN/BINX format version (01) is not supported or file is broken", fixed = TRUE) SW({ expect_warning(read_BIN2R(bin.v3, position = 99), "At least one position number is not valid") expect_message(read_BIN2R(bin.v3, forced.VersionNumber = 3), "'forced.VersionNumber' set to 03, but this version") }) ## arguments expect_error(read_BIN2R(bin.v3, show.raw.values = "error"), "'show.raw.values' should be a single logical value") expect_error(read_BIN2R(bin.v3, zero_data.rm = list(FALSE)), "'zero_data.rm' should be a single logical value") expect_error(read_BIN2R(bin.v3, duplicated.rm = "error"), "'duplicated.rm' should be a single logical value") expect_error(read_BIN2R(bin.v3, fastForward = "error"), "'fastForward' should be a single logical value") expect_error(read_BIN2R(bin.v3, show.record.number = NULL), "'show.record.number' should be a single logical value") expect_error(read_BIN2R(bin.v3, ignore.RECTYPE = "error"), "'ignore.RECTYPE' should be of class 'logical' or 'numeric'") ## check for broken files zero <- tempfile(pattern = "zero", fileext = ".binx") file.create(zero) expect_message(expect_null(read_BIN2R(zero, verbose = FALSE)), "is a zero-byte file, NULL returned") write(raw(), zero) expect_error(read_BIN2R(zero, verbose = FALSE), "BIN/BINX format version \\(..\\) is not supported or file is") SW({ expect_warning( expect_message(expect_null(read_BIN2R(zero, verbose = TRUE, forced.VersionNumber = 8)), "Record #1 skipped due to wrong record length"), "0 records read, NULL returned") expect_warning( expect_message(expect_null(read_BIN2R(zero, verbose = TRUE, forced.VersionNumber = 3)), "Record #1 skipped due to wrong record length"), "0 records read, NULL returned") }) fake <- tempfile(pattern = "fake", fileext = ".binx") writeBin(as.raw(c( 8, 0, # version 227, 5, 0, 0, # length 0, 0, 0, 0, # previous 250, 0, 0, 0, # npoints 99) # rectype set to 99 to trigger errors ), fake) expect_error(read_BIN2R(fake, verbose = FALSE), "Byte RECTYPE = 99 is not supported in record #1") SW({ expect_message(res <- read_BIN2R(fake, verbose = TRUE, ignore.RECTYPE = TRUE), "Byte RECTYPE = 99 is not supported in record #1") }) expect_length(res, 0) }) test_that("test the import of various BIN-file versions", { testthat::skip_on_cran() ## this test needs an internet connection ... test for it github.url <- file.path("https://github.com/R-Lum/Luminescence", "raw/dev_0.9.x/tests/testthat/_data") if (!httr::http_error(github.url)) { ## V3 expect_snapshot_plain(read_BIN2R(file.path(github.url, "BINfile_V3.bin"), verbose = FALSE)) } ## V4 expect_snapshot_plain(read_BIN2R(test_path("_data/BINfile_V4.bin"), verbose = FALSE)) ## V5 expect_snapshot_plain(read_BIN2R(test_path("_data/BINfile_V5.binx"), verbose = FALSE)) ## V6 expect_snapshot_plain(read_BIN2R(test_path("_data/BINfile_V6.binx"), verbose = FALSE)) ## V7 expect_snapshot_plain(read_BIN2R(test_path("_data/BINfile_V7.binx"), verbose = FALSE)) SW({ ## V8 - as part of the package bin.v8 <- system.file("extdata/BINfile_V8.binx", package = "Luminescence") expect_snapshot_plain(read_BIN2R(bin.v8, verbose = FALSE)) expect_message(res <- read_BIN2R(bin.v8, txtProgressBar = FALSE, position = 2), "Kept records matching 'position': 2") expect_equal(length(res@.RESERVED), nrow(res@METADATA)) expect_message(res <- read_BIN2R(bin.v8, txtProgressBar = FALSE, position = 1, fastForward = TRUE), "Kept records matching 'position': 1") expect_type(res, "list") ## test n.records argument t_n.records_1 <- expect_s4_class( read_BIN2R( file = bin.v8, txtProgressBar = FALSE, n.records = 1), class = "Risoe.BINfileData") expect_length(t_n.records_1, n = 1) t_n.records_0 <- expect_s4_class( read_BIN2R( file = bin.v8, txtProgressBar = FALSE, n.records = 0), class = "Risoe.BINfileData") expect_length(t_n.records_0, n = 0) t_n.records_1_2 <- expect_s4_class( read_BIN2R( file = bin.v8, txtProgressBar = FALSE, n.records = 1:2), class = "Risoe.BINfileData") expect_length(t_n.records_1_2, n = 2) ## directory res <- read_BIN2R(test_path("_data"), show_record_number = TRUE) expect_type(res, "list") expect_length(res, 5) res <- read_BIN2R(test_path("_data"), pattern = "_V[34]") expect_type(res, "list") expect_length(res, 2) ## test further options ## n.records and fastForward expect_type(read_BIN2R(test_path("_data/BINfile_V4.bin"), txtProgressBar = FALSE, n.records = 1, fastForward = TRUE, verbose = FALSE), "list") ## options to Risoe.BINfileData2RLum.Analysis expect_warning(read_BIN2R(bin.v8, fastForward = FALSE, protocol = "test"), "Additional arguments specified: 'protocol'") ## check ignore RECTYPE settings expect_message(t <- expect_s4_class(read_BIN2R(bin.v8, verbose = TRUE, ignore.RECTYPE = 1), class = "Risoe.BINfileData"), "Record #1 skipped due to ignore.RECTYPE setting") }) ## should be zero now expect_length(t@DATA, n = 0) SW({ res <- read_BIN2R(list(bin.v8, bin.v8), verbose = TRUE, position = list(1, 2), n.records = list(1, 2), show.raw.values = list(TRUE), zero_data.rm = list(FALSE), duplicated.rm = list(TRUE), show.record.number = list(TRUE), forced.VersionNumber = list(8), fastForward = TRUE) expect_length(res[[2]], 1) res <- read_BIN2R(bin.v8, verbose = FALSE, n.records = 2, fastForward = TRUE) expect_length(res, 1) res <- read_BIN2R(test_path("_data/BINfile_V3.bin"), n.records = 2) expect_length(res, 1) }) res <- expect_silent(read_BIN2R(list())) expect_type(res, "list") expect_length(res, 0) }) test_that("test hand-crafted files", { testthat::skip_on_cran() ## corrupted corrupted.bin <- test_path("_data/bin-tests/corrupted.bin") expect_warning(res <- read_BIN2R(corrupted.bin, verbose = FALSE), "BIN-file appears to be corrupt, import limited to the first") expect_equal(nrow(res@METADATA), 1) expect_warning(res <- read_BIN2R(corrupted.bin, verbose = FALSE, n.records = 2), "BIN-file appears to be corrupt, 'n.records' reset to 1") expect_equal(nrow(res@METADATA), 1) ## two versions res <- read_BIN2R(test_path("_data/bin-tests/two-versions.binx"), verbose = FALSE) expect_equal(nrow(res@METADATA), 4) ## rectype 128 rectype.128.bin <- test_path("_data/bin-tests/rectype-128.binx") res <- read_BIN2R(rectype.128.bin, verbose = FALSE) expect_equal(nrow(res@METADATA), 3) expect_output(res <- read_BIN2R(rectype.128.bin, verbose = FALSE, fastForward = TRUE), "BIN/BINX-file non-conform. TL curve may be wrong") expect_type(res, "list") expect_s4_class(res[[1]]@records[[1]], "RLum.Data.Curve") ## duplicate duplicate.bin <- test_path("_data/bin-tests/duplicated-records.binx") expect_warning(res <- read_BIN2R(duplicate.bin, verbose = FALSE), "Duplicated records detected: 2") expect_equal(nrow(res@METADATA), 3) SW({ expect_message(res <- read_BIN2R(duplicate.bin, duplicated.rm = TRUE, verbose = TRUE), "Duplicated records detected and removed: 2") expect_equal(nrow(res@METADATA), 2) expect_equal(length(res@.RESERVED), nrow(res@METADATA)) ## zero-data zero.data.bin <- test_path("_data/bin-tests/zero-data-record.binx") expect_warning(res <- read_BIN2R(zero.data.bin, verbose = TRUE), "Zero-data records detected and removed: 2") expect_equal(nrow(res@METADATA), 1) expect_equal(length(res@.RESERVED), nrow(res@METADATA)) expect_silent(res <- read_BIN2R(list(zero.data.bin), verbose = FALSE, zero_data.rm = FALSE)) expect_equal(nrow(res[[1]]@METADATA), 2) expect_silent(res <- read_BIN2R(zero.data.bin, verbose = FALSE, zero_data.rm = FALSE)) zero.data.all <- test_path("_data/bin-tests/zero-data-all.binx") expect_message(expect_warning(read_BIN2R(zero.data.all, txtProgressBar = FALSE), "Zero-data records detected and removed: 1, 2"), "Empty object returned") }) }) Luminescence/tests/testthat/test_RLum.Results-class.R0000644000176200001440000000421714762554470022514 0ustar liggesusersdata(ExampleData.DeValues, envir = environment()) obj <- calc_FuchsLang2001(ExampleData.DeValues$BT998, cvThreshold = 5, plot = FALSE, verbose = FALSE) empty <- set_RLum("RLum.Results") test_that("check class", { testthat::skip_on_cran() ## set_RLum() expect_s4_class(obj, "RLum.Results") ## as() expect_type(as(obj, "list"), "list") expect_s4_class(as(list(), "RLum.Results"), "RLum.Results") ## show() expect_output(show(obj)) expect_output(show(empty)) ## names() expect_equal(names_RLum(obj), c("summary", "data", "args", "usedDeValues")) }) test_that("set_RLum", { testthat::skip_on_cran() ## input validation expect_error(set_RLum(obj, TRUE), "'class' should be of class 'character'") }) test_that("get_RLum", { testthat::skip_on_cran() ## input validation expect_error(get_RLum(obj, "error"), "Unknown 'data.object', valid names are:") expect_error(get_RLum(obj, FALSE), "'data.object' should be of class 'character' or 'numeric'") expect_error(get_RLum(obj, 100), "'data.object' index out of bounds") expect_warning(expect_null(get_RLum(obj, info.object = "error")), "[get_RLum()] Invalid 'info.object' name, valid names are:", fixed = TRUE) expect_warning(expect_null(get_RLum(empty, info.object = "error")), "[get_RLum()] This 'RLum.Results' object has no info objects", fixed = TRUE) ## full functionality expect_s3_class(get_RLum(obj), "data.frame") expect_s3_class(get_RLum(obj, data.object = 2), "data.frame") expect_s3_class(get_RLum(obj, data.object = c(1, 2)), "data.frame") expect_s3_class(get_RLum(obj, data.object = "summary"), "data.frame") expect_s3_class(get_RLum(obj, data.object = c("summary", "data")), "data.frame") expect_s4_class(get_RLum(obj, data.object = c("summary", "data"), drop = FALSE), "RLum.Results") expect_type(get_RLum(obj, info.object = "call"), "list") }) Luminescence/tests/testthat/test_subset_RLum.R0000644000176200001440000000241714762554470021336 0ustar liggesusers# RLum.Analysis ----------------------------------------------------------- test_that("subset RLum.Analysis", { testthat::skip_on_cran() data(ExampleData.RLum.Analysis, envir = environment()) temp <- IRSAR.RF.Data ## subset.RLum.Analysis() - S3 method ### empty call expect_s4_class(subset(temp), "RLum.Analysis") expect_length(subset(temp), length(temp)) expect_identical(subset(temp)[[1]], temp[[1]]) ### errors expect_error(subset(temp, LTYPE == "RF"), "[get_RLum()] Invalid subset expression, valid terms are", fixed = TRUE) SW({ expect_message(expect_null(subset(temp, recordType == "xx")), "'subset' expression produced an empty selection, NULL returned") }) ### valid expect_s4_class(subset(temp, recordType == "RF"), class = "RLum.Analysis") expect_s4_class(subset(temp, recordType == "RF")[[1]], class = "RLum.Data.Curve") expect_length(subset(temp, recordType == "RF"), n = length(temp)) ## get_RLum(, subset = ()) expect_s4_class(get_RLum(temp, subset = recordType == "RF"), class = "RLum.Analysis") expect_s4_class(get_RLum(temp, subset = recordType == "RF")[[1]], class = "RLum.Data.Curve") expect_length(get_RLum(temp, subset = recordType == "RF"), n = length(temp)) }) Luminescence/tests/testthat/test_import_Data.R0000644000176200001440000000474314762554470021341 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() expect_error(import_Data(data.frame()), "'file' should be of class 'character' or 'list'") expect_message(import_Data(system.file("extdata/QNL84_2_bleached.txt")), "Unknown file format, nothing imported") }) test_that("Test general import", { testthat::skip_on_cran() ## BINX SW({ expect_type( object = import_Data(system.file("extdata/BINfile_V8.binx", package = "Luminescence")), type = "list") }) ## XSYG expect_type( object = import_Data(system.file("extdata/XSYG_file.xsyg", package = "Luminescence")), type = "list") ## PSL expect_s4_class( object = import_Data(system.file("extdata/DorNie_0016.psl", package = "Luminescence"))[[1]], class = "RLum.Analysis") ## DAT (Daybreak) expect_type( object = import_Data(system.file("extdata/Daybreak_TestFile.DAT", package = "Luminescence")), type = "list") ## TXT (Daybreak) expect_type( object = import_Data(system.file("extdata/Daybreak_TestFile.txt", package = "Luminescence")), type = "list") ## RF expect_type( object = import_Data(system.file("extdata/RF_file.rf", package = "Luminescence")), type = "list") ## TIFF expect_s4_class( object = import_Data(system.file("extdata/TIFFfile.tif", package = "Luminescence"))[[1]], class = "RLum.Data.Image") ## OSL expect_s4_class( object = import_Data(system.file("extdata/HeliosOSL_Example.osl", package = "Luminescence"))[[1]], class = "RLum.Analysis") ## use character and list as input files <- c( system.file("extdata/HeliosOSL_Example.osl", package = "Luminescence"), system.file("extdata/HeliosOSL_Example.osl", package = "Luminescence") ) expect_type( object = import_Data(files, verbose = FALSE), type = "list") expect_type( object = import_Data(as.list(files), verbose = FALSE), type = "list") ## mix input files <- c( system.file("extdata/BINfile_V8.binx", package = "Luminescence"), system.file("extdata/HeliosOSL_Example.osl", package = "Luminescence"), system.file("extdata/RF_file.rf", package = "Luminescence"), system.file("extdata/HeliosOSL_Example.osl", package = "Luminescence"), system.file("extdata/TIFFfile.tif", package = "Luminescence"), system.file("extdata/XSYG_file.xsyg", package = "Luminescence")) SW({ t <- expect_type( object = import_Data(files, verbose = FALSE), type = "list") }) expect_equal(length(t), 16) }) Luminescence/tests/testthat/test_subset_SingleGrainData.R0000644000176200001440000000134414762554470023451 0ustar liggesuserstest_that("Check subset_SingleGrain", { testthat::skip_on_cran() ## get example ready data(ExampleData.BINfileData, envir = environment()) ## set POSITION/GRAIN pair dataset selection <- data.frame(POSITION = c(1,5,7), GRAIN = c(0,0,0)) ## crash function expect_error(subset_SingleGrainData("error"), "[subset_SingleGrainData()] 'object' should be of class 'Risoe.BINfileData'", fixed = TRUE) ## standard run expect_s4_class(subset_SingleGrainData(object = CWOSL.SAR.Data, selection = selection), "Risoe.BINfileData") ## try something different for the input expect_s4_class(subset_SingleGrainData(object = CWOSL.SAR.Data, selection = as.matrix(selection)), "Risoe.BINfileData") }) Luminescence/tests/testthat/test_convert_Activity2Concentration.R0000644000176200001440000000433614762554470025241 0ustar liggesuserstest_that("check class and length of output", { testthat::skip_on_cran() ## set dataframe data_activity <- data.frame( NUCLIDES = c("U-238", "Th-232", "K-40"), VALUE = c(40,80,100), VALUE_ERROR = c(4,8,10), stringsAsFactors = FALSE) ## set dataframe data_abundance <- data.frame( NUCLIDES = c("U-238", "Th-232", "K-40"), VALUE = c(4,8,1), VALUE_ERROR = c(0.1,0.1,0.1), stringsAsFactors = FALSE) ## crash function expect_error( object = convert_Activity2Concentration(), "[convert_Activity2Concentration()] 'data' should be of class 'data.frame'", fixed = TRUE) expect_error( object = convert_Activity2Concentration(data = data_activity[,1:2]), "[convert_Activity2Concentration()] 'data' should have at least 3 columns", fixed = TRUE) expect_error( object = convert_Activity2Concentration(data = data_activity, input_unit = "stop"), "'input_unit' should be one of 'activity' or 'abundance'") ## check for standard input SW({ results <- expect_s4_class(convert_Activity2Concentration(data_activity), c("RLum.Results")) }) expect_s4_class(convert_Activity2Concentration(data_activity, verbose = FALSE), c("RLum.Results")) expect_equal(length(results), 1) ## this test should flag if constants were changed, so that this is ## not forgotten in the NEWS expect_equal(round(sum(results$data$`ABUND. (mug/g or mass. %)`),5), 23.20909) expect_equal(round(sum(results$data$`ABUND. ERROR (mug/g or mass. %)`),5), 2.32091) ## check for concentration input SW({ results_abundance <- expect_s4_class( object = convert_Activity2Concentration(data_abundance, input_unit = "abundance"), class = "RLum.Results") }) expect_equal(round(sum(results_abundance$data$`ABUND. (mug/g or mass. %)`),5), 13) expect_equal(round(sum(results_abundance$data$`ABUND. ERROR (mug/g or mass. %)`),5), 0.3) ## additional checks for input ## capitalized input units SW({ expect_s4_class(convert_Activity2Concentration(data_activity, input_unit = "ACTIVITY"), c("RLum.Results")) ## check backwards compatibility expect_s4_class(convert_Activity2Concentration(data_activity, input_unit = "Bq/kg"), c("RLum.Results")) }) }) Luminescence/tests/testthat/test_merge_RLum.Data.Spectrum.R0000644000176200001440000001140114762554470023572 0ustar liggesusers## load example data data(ExampleData.XSYG, envir = environment()) TL.Spectrum_types <- TL.Spectrum TL.Spectrum_types@recordType <- "OSL (Spectrum)" TL.Spectrum_short <- TL.Spectrum TL.Spectrum_short@data <- TL.Spectrum_short@data[- 1, ] TL.Spectrum_zeros <- TL.Spectrum TL.Spectrum_zeros@data[10:12, 2] <- 0 TL.curve.1 <- get_RLum(OSL.SARMeasurement$Sequence.Object, recordType = "TL (UVVIS)")[[1]] test_that("input validation", { testthat::skip_on_cran() expect_error(merge_RLum.Data.Spectrum("error", merge.method = "/"), "'object' should be of class 'list'") expect_error(merge_RLum.Data.Spectrum(list("error")), "All elements of 'object' should be of class 'RLum.Data.Spectrum'") expect_error(merge_RLum.Data.Spectrum(list(), merge.method = "-"), "'object' contains no data") expect_error(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum), merge.method = "error"), "'merge.method' should be one of 'mean', 'median', 'sum', 'sd'") expect_error(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum_types)), "Only similar record types are supported") expect_error(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum_short)), "'RLum.Data.Spectrum' objects of different size cannot be merged") TL.Spectrum_other <- TL.Spectrum rownames(TL.Spectrum_other@data) <- 1:nrow(TL.Spectrum_other@data) expect_error(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum_other)), "'RLum.Data.Spectrum' objects with different channels cannot") TL.Spectrum_other <- TL.Spectrum TL.Spectrum_other@info$cameraType <- "other" expect_error(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum_other)), "'RLum.Data.Spectrum' objects from different camera types") ## time/temperature differences TL.Spectrum_other <- TL.Spectrum colnames(TL.Spectrum_other@data) <- as.numeric(colnames(TL.Spectrum@data)) + 1 expect_warning(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum_other)), "The time/temperatures recorded are too different") expect_silent(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum_other), max.temp.diff = 1)) }) test_that("snapshot tests", { testthat::skip_on_cran() expect_snapshot_RLum(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum), method.info = 1)) expect_snapshot_RLum(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum), merge.method = "sum")) expect_snapshot_RLum(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum), merge.method = "median")) expect_snapshot_RLum(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum), merge.method = "sd")) expect_snapshot_RLum(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum), merge.method = "var")) expect_snapshot_RLum(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum), merge.method = "max")) expect_snapshot_RLum(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum), merge.method = "min")) expect_snapshot_RLum(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum), merge.method = "-")) expect_s4_class(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum, TL.Spectrum), merge.method = "-"), "RLum.Data.Spectrum") expect_snapshot_RLum(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum), merge.method = "append")) expect_snapshot_RLum(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum), merge.method = "*")) expect_s4_class(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum, TL.Spectrum), merge.method = "*"), "RLum.Data.Spectrum") expect_snapshot_RLum(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum), merge.method = "/")) expect_s4_class(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum, TL.Spectrum), merge.method = "/"), "RLum.Data.Spectrum") expect_warning( expect_snapshot_RLum(merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum_zeros), merge.method = "/")), "3 'inf' values have been replaced by 0 in the matrix") }) Luminescence/tests/testthat/test_report_RLum.R0000644000176200001440000000260514762554470021343 0ustar liggesusers## load data data(ExampleData.DeValues, envir = environment()) test_that("Test Simple RLum Report", { testthat::skip_on_cran() ## the test fails on AppVeyor for no obvious reason on the windows ## platform ... attempts to reproduce this failure failed. So ## we skip this platform for the test testthat::skip_on_os("windows") ### load example data data(ExampleData.DeValues, envir = environment()) SW({ temp <- calc_CommonDose(ExampleData.DeValues$CA1) }) expect_error(report_RLum(temp, css.file = "error"), "Couldn't find the specified CSS file") # create the standard HTML report testthat::expect_null(report_RLum(object = temp, timestamp = FALSE, show_report = FALSE)) testthat::expect_null(report_RLum(object = temp, timestamp = TRUE, show_report = FALSE, compact = FALSE)) ## compact view expect_null(report_RLum(list(temp, temp), show_report = FALSE, compact = TRUE)) ## data.frame expect_null(report_RLum(ExampleData.DeValues$CA1)) ## names with spaces or missing ll <- as.list(ExampleData.DeValues$CA1) names(ll) <- c("", "ED Error") expect_null(report_RLum(ll)) ## more coverage: data frame with a column containing a matrix m <- matrix(c(1, 2, 3, 4), nrow = 2, ncol = 2) df <- data.frame(id = 1, mat = rep(0, nrow(m))) df$mat <- m expect_null(report_RLum(df)) }) Luminescence/tests/testthat/test_apply_Crosstalk.R0000644000176200001440000000112214762554470022234 0ustar liggesusers## load data obj <- set_RLum(class = "RLum.Results", data = list(vn_values = rep(x = c(1,2), each = 50))) test_that("input validation", { testthat::skip_on_cran() expect_error(apply_Crosstalk("error"), "'object' should be of class 'RLum.Results', 'numeric' or 'integer'") expect_error(apply_Crosstalk(obj, n_crosstalk = "error"), "'n_crosstalk' should be of class 'numeric'") }) test_that("check functionality", { testthat::skip_on_cran() expect_snapshot_plain(apply_Crosstalk(obj)) expect_snapshot_plain(apply_Crosstalk(1:100)) }) Luminescence/tests/testthat/test_analyse_baSAR.R0000644000176200001440000004522414762554470021541 0ustar liggesusers## load data data(ExampleData.BINfileData, envir = environment()) CWOSL.sub <- subset(CWOSL.SAR.Data, subset = POSITION %in% c(1:3) & LTYPE == "OSL") test_that("input validation", { skip_on_cran() expect_error(analyse_baSAR("error", verbose = FALSE), "File '.*error' does not exist") # windows CI needs the regexp expect_error(analyse_baSAR(list("error"), verbose = FALSE), "File '.*error' does not exist") # windows CI needs the regexp expect_error(analyse_baSAR(data.frame(), verbose = FALSE), "'object' should be of class 'Risoe.BINfileData', 'RLum.Results'") expect_error(analyse_baSAR(character(0), verbose = FALSE), "'object' cannot be an empty character") expect_error(analyse_baSAR(list(data.frame()), verbose = FALSE), "All elements of 'object' should be of class 'Risoe.BINfileData'") expect_error(analyse_baSAR(list(CWOSL.sub, "error"), verbose = FALSE), "'object' only accepts a list of objects of the same type") expect_error(analyse_baSAR(CWOSL.sub, n.MCMC = NULL), "'n.MCMC' should be a positive integer scalar") expect_error(analyse_baSAR(CWOSL.sub, verbose = FALSE), "'source_doserate' is missing, but the current implementation") expect_error(analyse_baSAR(CWOSL.sub, fit.method = "error"), "'fit.method' should be one of 'EXP', 'EXP+LIN' or 'LIN'", fixed = TRUE) expect_error(analyse_baSAR(CWOSL.sub, verbose = FALSE, source_doserate = c(0.04, 0.001)), 'argument "signal.integral" is missing, with no default') expect_error(analyse_baSAR(CWOSL.sub, verbose = FALSE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2)), 'argument "background.integral" is missing, with no default') ## CSV_file csv.file <- tempfile() expect_error(analyse_baSAR(CWOSL.sub, verbose = FALSE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), CSV_file = list()), "'CSV_file' should be of class 'data.frame', 'character' or NULL") expect_error(analyse_baSAR(CWOSL.sub, verbose = FALSE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), CSV_file = "error"), "'CSV_file' does not exist") data.table::fwrite(data.frame(BIN_file = "a", DISC = 1), file = csv.file) expect_error(analyse_baSAR(CWOSL.sub, verbose = FALSE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), CSV_file = csv.file), "'CSV_file' should have at least 3 columns for the name of the") data.table::fwrite(data.frame(a = "error", b = 1, c = 2), file = csv.file) expect_error(analyse_baSAR(CWOSL.sub, verbose = FALSE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), CSV_file = csv.file), "One of the first 3 columns in 'CSV_file' has no header") expect_error(analyse_baSAR(CWOSL.sub, verbose = FALSE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), CSV_file = data.frame(a = NA, b = NA)), "'CSV_file' should have at least 3 columns for the name of the") expect_warning(expect_error( analyse_baSAR(CWOSL.sub, verbose = FALSE, sigmab = list(0.23), sig0 = list(0.02), source_doserate = list(0.04, 0.001), signal.integral = list(1, 2), signal.integral.Tx = c(2:4), background.integral = list(80, 100), background.integral.Tx = c(80:100), CSV_file = data.frame(a = "error", b = 1, c = 2)), "BIN-file names provided via 'CSV_file' do not match the loaded BIN-files", fixed = TRUE), "'error' not recognised or not loaded, skipped") expect_error(analyse_baSAR(CWOSL.sub, verbose = FALSE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), CSV_file = data.frame(a = NA, b = 1, c = 2)), "Number of discs/grains = 0") SW({ obj <- Risoe.BINfileData2RLum.Analysis(CWOSL.sub) expect_error(suppressWarnings( analyse_baSAR(obj, verbose = TRUE)), "No records of the appropriate type were found") expect_error(suppressWarnings( analyse_baSAR(obj, recordType = "NONE", verbose = TRUE)), "No records of the appropriate type were found") }) expect_warning(expect_output( analyse_baSAR(CWOSL.sub, verbose = FALSE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), fit.method = "LIN", fit.force_through_origin = FALSE, distribution = "error"), "[analyse_baSAR()] No pre-defined model for the requested distribution", fixed = TRUE), "Only multiple grain data provided, automatic selection skipped") expect_warning(expect_output( analyse_baSAR(CWOSL.sub, verbose = FALSE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), distribution = "user_defined"), "[analyse_baSAR()] You specified a 'user_defined' distribution", fixed = TRUE), "Only multiple grain data provided, automatic selection skipped") expect_message(expect_output(suppressWarnings( analyse_baSAR(CWOSL.sub, verbose = FALSE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), distribution = "cauchy", baSAR_model = "error")), "Error parsing model file"), "'baSAR_model' provided, setting distribution to 'user_defined'") expect_error(suppressWarnings( analyse_baSAR(CWOSL.SAR.Data, verbose = FALSE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), distribution = "user_defined")), "Channel numbers of Lx and Tx data differ") SW({ data(ExampleData.RLum.Analysis, envir = environment()) expect_error(analyse_baSAR(list(IRSAR.RF.Data), verbose = TRUE), "At least two aliquots are needed for the calculation") expect_warning(expect_output( analyse_baSAR(list(CWOSL.sub, CWOSL.sub), verbose = TRUE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), fit.method = "LIN", fit.force_through_origin = FALSE, distribution = "normal", n.MCMC = 75)), "'1' is a duplicate and therefore removed from the input") CWOSL.min <- subset(CWOSL.sub, subset = ID < 20) expect_warning(expect_error( analyse_baSAR(CWOSL.min, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(5:15), method_control = list(n.chains = 1), n.MCMC = 10), "In input 1 the number of data points (19) is not a multiple of the", fixed = TRUE), "Only multiple grain data provided, automatic selection skipped") }) }) test_that("Full check of analyse_baSAR function", { skip_on_cran() set.seed(1) ##(3) run analysis ##please not that the here selected parameters are ##chosen for performance, not for reliability SW({ expect_snapshot_RLum(results <- suppressWarnings(analyse_baSAR( object = CWOSL.sub, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), fit.method = "EXP", method_control = list(inits = list( list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 1), list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 2), list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 3) )), plot = TRUE, verbose = TRUE, n.MCMC = 100, txtProgressBar = TRUE )), tolerance = 1.5e-6) }) ## source dose rate only scalar SW({ expect_snapshot_RLum(results <- suppressWarnings(analyse_baSAR( object = CWOSL.sub, source_doserate = c(0.04), signal.integral = c(1:2), background.integral = c(80:100), fit.method = "EXP", method_control = list(inits = list( list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 1), list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 2), list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 3) )), plot = TRUE, verbose = TRUE, n.MCMC = 100, txtProgressBar = TRUE )), tolerance = 1.5e-6) }) ## rerun with previous results as input SW({ expect_output(results2 <- analyse_baSAR( object = results, plot = FALSE, verbose = TRUE, txtProgressBar = FALSE, n.MCMC = 100), "Number of aliquots used:.+3/3") expect_warning(analyse_baSAR( object = results, plot = FALSE, verbose = FALSE, txtProgressBar = FALSE, method_control = list(upper_centralD = 200), n.MCMC = 100), "You have modified the upper central_D boundary") expect_warning(analyse_baSAR( object = results, plot = FALSE, verbose = FALSE, txtProgressBar = FALSE, method_control = list(lower_centralD = 0), n.MCMC = 100), "You have modified the lower central_D boundary") suppressWarnings(expect_warning(analyse_baSAR( object = results, plot = FALSE, verbose = FALSE, txtProgressBar = FALSE, method_control = list(upper_centralD = 2), n.MCMC = 100), "Your lower_centralD and/or upper_centralD values seem not to fit", fixed = TRUE)) expect_warning( analyse_baSAR( object = results, plot = TRUE, verbose = TRUE, txtProgressBar = FALSE, fit.method = "EXP+LIN", fit.includingRepeatedRegPoints = FALSE, fit.force_through_origin = FALSE, distribution = "log_normal", aliquot_range = 1:3, distribution_plot = "abanico", method_control = list(n.chains = 2, thin = 25), plot.single = TRUE, n.MCMC = 100), "'plot.single' is deprecated, use 'plot_singlePanels' instead") expect_message( analyse_baSAR( object = results, plot = FALSE, verbose = TRUE, txtProgressBar = FALSE, fit.method = "EXP", fit.force_through_origin = TRUE, distribution = "cauchy", aliquot_range = 100:300, distribution_plot = NULL, method_control = list(n.chains = 1, thin = 25), n.MCMC = 100), "Error: 'aliquot_range' out of bounds, input ignored") expect_warning(expect_message( analyse_baSAR( object = results, plot = TRUE, verbose = TRUE, txtProgressBar = FALSE, source_doserate = 2, fit.method = "LIN", distribution = "log_normal", method_control = list(n.chains = 2, variable.names = "Q"), n.MCMC = 100), "Plots for 'central_D' and 'sigma_D' could not be produced", fixed = TRUE), "'source_doserate' is ignored in this mode as it was already set") CWOSL.mod <- CWOSL.sub CWOSL.mod@METADATA$SEL <- FALSE expect_warning(expect_null(analyse_baSAR(CWOSL.mod, verbose = TRUE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), method_control = list(n.chains = 1), n.MCMC = 100)), "No records selected, NULL returned") CWOSL.mod <- CWOSL.sub CWOSL.mod@METADATA$SEL[19:24] <- FALSE expect_message(analyse_baSAR(CWOSL.mod, verbose = TRUE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), method_control = list(n.chains = 1), n.MCMC = 100), "Record pre-selection in BIN-file detected") CWOSL.mod <- CWOSL.sub CWOSL.mod@METADATA$GRAIN[-c(19:24)] <- 2 expect_warning(analyse_baSAR(CWOSL.mod, verbose = TRUE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), method_control = list(n.chains = 1), n.MCMC = 100), "Automatic grain selection: 3 curves with grain index 0 have been removed") }) results2@originator <- "unknown" expect_error(analyse_baSAR(object = results2), "'object' is of type 'RLum.Results', but was not produced by") results2@originator <- "analyse_baSAR" results2@data$input_object <- results2$input_object[1:2, ] expect_message(expect_null(analyse_baSAR(object = results2)), "Error: Number of aliquots < 3, NULL returned") SW({ expect_warning(analyse_baSAR(CWOSL.sub, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(8:10), method_control = list(n.chains = 1), n.MCMC = 10), "Number of background channels for Tx < 25") analyse_baSAR(CWOSL.sub, CSV_file = CWOSL.sub@METADATA[, c("FNAME", "POSITION", "GRAIN")], source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(8:10), method_control = list(n.chains = 1), aliquot_range = 1:2, n.MCMC = 10) vnames <- c("central_D", "sigma_D", "") expect_message(analyse_baSAR(CWOSL.sub, source_doserate = c(0.04, 0.001), signal.integral = 1:2, background.integral = 60:100, method_control = list(n.chains = 1, variable.names = vnames), plot_reduced = FALSE, n.MCMC = 10, verbose = FALSE), "Dose-response curves could not be plotted as 'variable.names'") vnames <- c("D", "Q", "a", "b", "c", "g") expect_message(analyse_baSAR(CWOSL.sub, source_doserate = c(0.04, 0.001), signal.integral = 1:2, background.integral = 60:100, method_control = list(n.chains = 1, variable.names = vnames), n.MCMC = 10, verbose = FALSE), "Plots for 'central_D' and 'sigma_D' could not be produced") }) }) test_that("regression tests", { skip_on_cran() ## issue 407 SW({ expect_warning(expect_s4_class( analyse_baSAR(CWOSL.sub, verbose = FALSE, plot = FALSE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), method_control = list(n.chains = 1, thin = 60), n.MCMC = 60), "RLum.Results"), "'thin = 60' is too high for 'n.MCMC = 60', reset to 30") }) ## check parameters irradiation times SW({ expect_s4_class(suppressWarnings(analyse_baSAR(CWOSL.sub, verbose = FALSE, plot = FALSE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), irradiation_times = c(0, 0, 0, 0, 0, 0, 450, 450, 450, 0, 0, 0, 1050, 1050, 1050, 0, 0, 0, 2000, 2000, 2000, 0, 0, 0, 2550, 2550, 2550, 0, 0, 0, 450, 450, 450, 0, 0, 0, 0, 0, 0, 0, 0, 0), background.integral = c(80:100), n.MCMC = 10)), "RLum.Results") }) ## have all irradiation times identical expect_message( suppressWarnings(analyse_baSAR(CWOSL.sub, verbose = FALSE, plot = FALSE, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), irradiation_times = c(0), background.integral = c(80:100), n.MCMC = 10)), regexp = "Error: All irradiation times are identical, NULL returned") ## test removal of unwanted curves ## check irradiation times assignment and non-OSL curve removal tmp_object <- Risoe.BINfileData2RLum.Analysis(CWOSL.sub) tmp_curves <- tmp_object[[3]]@records[[1]] tmp_curves@recordType <- "NONE" tmp_object[[3]]@records <- c(tmp_object[[3]]@records, rep(tmp_curves,2)) SW({ expect_s4_class( suppressWarnings( analyse_baSAR(tmp_object, verbose = TRUE, plot = FALSE, recordType = c("OSL", "NONE"), source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), n.MCMC = 10)), "RLum.Results") }) tmp_object[[3]] <- set_RLum("RLum.Analysis") SW({ expect_message(expect_null( analyse_baSAR(tmp_object, verbose = FALSE, recordType = c("OSL", "NONE"), source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), n.MCMC = 10)), "Object conversion failed, NULL returned") }) }) Luminescence/tests/testthat/test_merge_Risoe.BINfileData.R0000644000176200001440000000217414762554470023373 0ustar liggesuserstest_that("Test merging", { testthat::skip_on_cran() ##expect error expect_error(merge_Risoe.BINfileData(input.objects = c("data", "data2")), "File 'data' does not exist") expect_error(merge_Risoe.BINfileData(input.objects = list("data", "data2")), "All elements of 'input.objects' should be of class 'Risoe.BINfileData'") expect_error(merge_Risoe.BINfileData(input.objects = c(FALSE, FALSE)), "'input.objects' should be of class 'character' or 'list'") ## nothing done input <- "data" expect_message(res <- merge_Risoe.BINfileData(input.objects = input), "Nothing done: at least two input objects are needed") expect_equal(res, input) ## expect success data(ExampleData.BINfileData, envir = environment()) object1 <- CWOSL.SAR.Data object2 <- CWOSL.SAR.Data expect_s4_class(merge_Risoe.BINfileData(c(object1, object2)), "Risoe.BINfileData") binx <- system.file("extdata/BINfile_V8.binx", package = "Luminescence") output.file <- tempfile() SW({ merge_Risoe.BINfileData(c(binx, binx), output.file) }) expect_true(file.exists(output.file)) }) Luminescence/tests/testthat/test_analyse_SAR.CWOSL.R0000644000176200001440000004614514762554470022127 0ustar liggesusers## load data set.seed(1) data(ExampleData.BINfileData, envir = environment()) object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1:2) ##generate different datasets removing TL curves object_CH_TL <- get_RLum(object, record.id = -seq(1,30,4), drop = FALSE) object_NO_TL <- get_RLum(object, record.id = -seq(1,30,2), drop = FALSE) ## FIXME(mcol): snapshots were produced on R 4.3.3, and a tolerance of 1.5e-6 ## was sufficient; however, both R 4.4 and Rdevel produce slightly different ## values that required increasing the tolerance to 1.5e-3. When a new R ## release happens, so that R 4.3.3 is no longer oldrel, the snapshots should ## be rebuilt and the tolerance restored to 1.5e-6. snapshot.tolerance <- 1.5e-3 test_that("tests class elements", { testthat::skip_on_cran() expect_snapshot_RLum( results <- analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, plot = FALSE, verbose = FALSE ), tolerance = snapshot.tolerance ) expect_s4_class(results, "RLum.Results") expect_equal(length(results), 4) expect_s3_class(results$data, "data.frame") expect_s3_class(results$LnLxTnTx.table, "data.frame") expect_s3_class(results$rejection.criteria, "data.frame") expect_type(results$Formula, "expression") expect_equal(object = round(sum(results$data[1:2]), digits = 0), 1716) expect_equal(object = round(sum(results$LnLxTnTx.table$LxTx), digits = 5), 20.92051) expect_equal(object = round(sum(results$LnLxTnTx.table$LxTx.Error), digits = 2), 0.34) expect_type(object = results$data$POS, "integer") expect_equal(object = results$data$POS, 1) expect_type(object = results$data$ALQ, "double") expect_equal(round(sum(results$rejection.criteria$Value), digits = 0), 1669) ## fit.method expect_snapshot_RLum( analyse_SAR.CWOSL( object = object[1:2], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "LIN", plot = FALSE, verbose = FALSE ), tolerance = snapshot.tolerance ) ##remove position information from the curve ##data object_f <- object[[1]] object_f@records <- lapply(object_f@records, function(x){ x@info$POSITION <- NULL x }) t <- expect_s4_class( analyse_SAR.CWOSL( object = object_f, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "LIN", plot = FALSE, verbose = FALSE ), class = "RLum.Results" ) expect_type(t@data$data$POS, "logical") }) test_that("simple run", { testthat::skip_on_cran() ##signal integral set to NA expect_warning( analyse_SAR.CWOSL( object = object[1], signal.integral.min = NA, signal.integral.max = NA, background.integral.min = NA, background.integral.max = NA, fit.method = "EXP", plot = FALSE, verbose = FALSE, fit.weights = FALSE ), "[analyse_SAR.CWOSL()] No signal or background integral applied as they", fixed = TRUE) expect_s4_class( suppressWarnings(analyse_SAR.CWOSL( object = object[1], signal.integral.min = NA, signal.integral.max = NA, background.integral.min = NA, background.integral.max = NA, fit.method = "EXP", plot = FALSE, verbose = FALSE )), class = "RLum.Results" ) ##verbose and plot on ##full dataset SW({ expect_s4_class( analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "LIN", log = "x", ), class = "RLum.Results" ) ##only CH TL expect_s4_class( analyse_SAR.CWOSL( object = object_CH_TL[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "LIN", log = "x", plot_onePage = TRUE ), class = "RLum.Results" ) ##no TL expect_s4_class( analyse_SAR.CWOSL( object = object_NO_TL[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "LIN", log = "x", plot_onePage = TRUE ), class = "RLum.Results" ) ##no mix TL and OSL (the only TL will be sorted out automatically) only_TL <- set_RLum("RLum.Analysis", records = rep(object_CH_TL[[1]]@records[[2]], length(object_NO_TL[[1]]@records))) object_mixed <- c(object_NO_TL, only_TL) t <- expect_s4_class( analyse_SAR.CWOSL( object = object_mixed[2:3], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "LIN", log = "x", plot = FALSE, verbose = FALSE ), class = "RLum.Results" ) expect_equal(nrow(t@data$data), 1) ## plot_singlePanels expect_s4_class( analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "EXP", plot = TRUE, plot_singlePanels = TRUE ), class = "RLum.Results" ) ##check rejection criteria expect_s4_class( analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "LIN", rejection.criteria= list( recycling.ratio = NA, recuperation.rate = 1, palaeodose.error = NA, testdose.error = 1, test = "new", exceed.max.regpoint = FALSE), plot = TRUE, ), class = "RLum.Results" ) ##check recuperation point selection t <- expect_s4_class( analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "LIN", rejection.criteria= list( recycling.ratio = NA, recuperation.rate = 1, palaeodose.error = 1, testdose.error = 1, recuperation_reference = "R1", test = "new", exceed.max.regpoint = FALSE), plot = TRUE, ), class = "RLum.Results" ) }) ## check if a different point was selected expect_equal(round(t$rejection.criteria$Value[2],2), expected = 0.01) ## trigger stop of recuperation reference point expect_error( analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "LIN", rejection.criteria= list( recycling.ratio = NA, recuperation.rate = 1, palaeodose.error = 1, testdose.error = 1, recuperation_reference = "stop", test = "new", exceed.max.regpoint = FALSE), plot = TRUE, ), regexp = "\\[analyse\\_SAR.CWOSL\\(\\)\\] Recuperation reference invalid, valid are") # Trigger stops ----------------------------------------------------------- ##trigger stops for parameters ##object expect_error(analyse_SAR.CWOSL("fail"), "'object' should be of class 'RLum.Analysis'") expect_error(analyse_SAR.CWOSL(object[[1]], signal.integral.min = 1.2, signal.integral.max = 3.5, background.integral.min = 900, background.integral.max = 1000), "'signal.integral' or 'background.integral' is not of type integer") ## check stop for OSL.components ... failing SW({ expect_message(expect_null( analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, OSL.component = 1, verbose = FALSE )), "Something went wrong while generating the LxTx table, NULL returned") }) expect_error(analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, dose.points = c(0,1,2), fit.method = "LIN", plot = FALSE, verbose = FALSE ), regexp = "Length of 'dose.points' differs from number of curves") expect_message( expect_null(analyse_SAR.CWOSL( object = set_RLum("RLum.Analysis",records = list(set_RLum("RLum.Data.Curve", recordType = "false"))), signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 800, background.integral.max = 900, fit.method = "LIN", plot = FALSE, verbose = FALSE )), "No record of type 'OSL', 'IRSL', 'POSL' detected") ##check background integral expect_warning(analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 800, background.integral.max = 9900, fit.method = "LIN", plot = FALSE, verbose = FALSE ), regexp = "Background integral out of bounds") expect_warning(analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = 1, signal.integral.max = 1, background.integral.min = 800, background.integral.max = 1000, fit.method = "LIN", plot = FALSE, verbose = FALSE ), "Integral signal limits cannot be equal") expect_warning(analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = c(600, 800), background.integral.max = c(900, 1000), fit.method = "LIN", plot = FALSE, verbose = FALSE ), "Background integral for Tx curves set, but not for the signal integral") expect_warning(expect_message( analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = c(1, 1500), signal.integral.max = c(2, 2000), background.integral.min = 800, background.integral.max = 1000, fit.method = "LIN", plot = FALSE, verbose = FALSE ), "Something went wrong while generating the LxTx table"), "Signal integral for Tx curves set, but not for the background integral") ## this generates multiple warnings warnings <- capture_warnings(analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = c(1, 70), signal.integral.max = c(2, 80), background.integral.min = 800, background.integral.max = 1200, fit.method = "LIN", plot = FALSE, verbose = FALSE)) expect_match(warnings, all = FALSE, "Background integral for Tx out of bounds") expect_message(expect_null(suppressWarnings( analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = 999, signal.integral.max = 1000, background.integral.min = c(900, 1975), background.integral.max = c(900, 1975), plot = FALSE, verbose = FALSE) )), "Error: Something went wrong while generating the LxTx table") ## plot_singlePanels expect_error(analyse_SAR.CWOSL(object[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, plot_singlePanels = list()), "'plot_singlePanels' should be of class 'logical', 'integer'") ## add one OSL curve expect_warning(expect_null( analyse_SAR.CWOSL( object = merge(object[[1]], object[[1]][[2]]), signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 800, background.integral.max = 1200)), "Input OSL/IRSL curves are not a multiple of two") ## check different curve numbers by shorten one OSL curve object_short <- object object_short[[1]]@records[[2]]@data <- object_short[[1]]@records[[2]]@data[-nrow(object_short[[1]]@records[[2]]@data),] ## without fix expect_warning( analyse_SAR.CWOSL( object = object_short[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 800, background.integral.max = 9900, fit.method = "LIN", plot = FALSE, verbose = FALSE), "[analyse_SAR.CWOSL()] Input curves have different lengths", fixed = TRUE) ## with new parameter testthat::expect_s4_class( object = analyse_SAR.CWOSL( object = object_short[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 800, background.integral.max = 999, fit.method = "LIN", trim_channels = TRUE, plot = FALSE, verbose = FALSE), class = "RLum.Results") }) test_that("advance tests run", { testthat::skip_on_cran() ## irradiation information in a separate curve no_irr_object <- object replace_metadata(no_irr_object[[1]], info_element = "IRR_TIME") <- NULL replace_metadata(no_irr_object[[2]], info_element = "IRR_TIME") <- NULL obj_irr <- set_RLum( "RLum.Analysis", protocol = "testthat", records = list( no_irr_object[[1]][[1]], no_irr_object[[1]][[2]], set_RLum( "RLum.Data.Curve", recordType = "irradiation", data = no_irr_object[[1]]@records[[1]]@data, info = no_irr_object[[1]]@records[[1]]@info, ), no_irr_object[[2]][[1]], no_irr_object[[2]][[2]]), originator = "read_XSYG2R" ) SW({ # repeated message expect_message( analyse_SAR.CWOSL(list(obj_irr, obj_irr), signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "LIN", verbose = FALSE), "All points have the same dose, NULL returned" ) }) ## more coverage SW({ # Number of background channels for Lx < 25 expect_warning(expect_warning( analyse_SAR.CWOSL(merge(object[[1]], object[[2]], object[[1]], object[[2]]), signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 900, background.count.distribution = "poisson", log = "xy", verbose = FALSE), "Too many curves, only the first 21 curves are plotted"), "Multiple IRSL curves detected") expect_warning( analyse_SAR.CWOSL(object = object[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, plot.single = TRUE, verbose = FALSE), "'plot.single' is deprecated, use 'plot_singlePanels' instead") }) ##test failed recycling ratio test_failed <- analyse_SAR.CWOSL( object = object[1], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 200, background.integral.max = 1000, fit.method = "LIN", rejection.criteria = list(recycling.ratio = 0), plot = FALSE, verbose = FALSE) expect_equal(object = test_failed$data$RC.Status, "FAILED") ##test no irradiation times available no_irr_object <- object[1] replace_metadata(no_irr_object[[1]], info_element = "IRR_TIME") <- NULL expect_error( analyse_SAR.CWOSL( object = no_irr_object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 200, background.integral.max = 1000, fit.method = "LIN", plot = FALSE, verbose = FALSE), regexp = "\\[analyse\\_SAR\\.CWOSL\\(\\)\\] 'dose.points' contains NA values or have not been set") ##get null for single list element unsuitable_type <- object[1] unsuitable_type[[1]]@records <- lapply( unsuitable_type[[1]]@records, function(x) { x@recordType = "Error" x }) SW({ expect_null( analyse_SAR.CWOSL( object = unsuitable_type, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 200, background.integral.max = 1000, fit.method = "LambertW", n.MC = 10, plot = FALSE, verbose = FALSE)) }) ##set all rejection criteria to NA test_failed <- analyse_SAR.CWOSL( object = object[1], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 200, background.integral.max = 1000, fit.method = "LIN", rejection.criteria = list( recycling.ratio = NA, recuperation.rate = NA, palaeodose.error = NA, testdose.error = NA, exceed.max.regpoint = NA), plot = FALSE, verbose = FALSE) expect_equal(object = test_failed$data$RC.Status, "OK") ##the same test but without a named list >>> OK test_ok <- analyse_SAR.CWOSL( object = object[1], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 200, background.integral.max = 1000, fit.method = "LIN", rejection.criteria = list(1), plot = FALSE, verbose = FALSE) expect_equal(object = test_ok$data$RC.Status, "OK") ##test multi parameter settings expect_s4_class( analyse_SAR.CWOSL( object = object[1:2], signal.integral.min = 1, signal.integral.max = list(10,20), background.integral.min = 900, background.integral.max = 1000, fit.method = "LIN", plot = FALSE, verbose = FALSE ), class = "RLum.Results" ) ##test rejection criteria list in list + test unknown argument expect_s4_class( analyse_SAR.CWOSL( object = object[1:2], signal.integral.min = 1, signal.integral.max = list(10,20), background.integral.min = 900, background.integral.max = 1000, rejection.criteria = list(list(recycling.ratio = 0)), fit.method = "LIN", unknown_argument = "hallo", main = "Title", plot = TRUE, verbose = FALSE ), class = "RLum.Results" ) ## more coverage SW({ analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = c(900, 975), background.integral.max = c(900, 975), dose.points = rep(2, 7), plot = FALSE, verbose = FALSE) object[[1]]@records[[2]][1, 1] <- 0 expect_warning(analyse_SAR.CWOSL( object = object[[1]], signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 975, log = "x", verbose = FALSE), "Curves shifted by one channel for log-plot") }) }) Luminescence/tests/testthat/test_fit_IsothermalHolding.R0000644000176200001440000000333414762554470023347 0ustar liggesusers## load data input.csv <- file.path(test_path("_data"), paste0("CLBR_IR", c(50, 100, 150, 225), ".csv")) test_that("input validation", { testthat::skip_on_cran() expect_error(fit_IsothermalHolding(list()), "'data' should be of class 'character', 'RLum.Results' or") expect_error(fit_IsothermalHolding("error", rhop = 1e-7), "File does not exist") expect_error(fit_IsothermalHolding(set_RLum("RLum.Results", data = list(1)), rhop = 1e-7), "'data' has unsupported originator") expect_error(fit_IsothermalHolding(iris, rhop = 1e-7), "'data' has the wrong column headers") expect_error(fit_IsothermalHolding(input.csv[1], ITL_model = "error"), "'ITL_model' should be one of 'GOK' or 'BTS'") expect_error(fit_IsothermalHolding(input.csv[1], rhop = "error"), "'rhop' should be of class 'numeric' or 'RLum.Results'") expect_error(fit_IsothermalHolding(input.csv[1], rhop = 1e-7, plot = "error"), "'plot' should be a single logical value") expect_error(fit_IsothermalHolding(input.csv[1], rhop = 1e-7, verbose = "error"), "'verbose' should be a single logical value") expect_error(fit_IsothermalHolding(test_path("_data/CLBR.xlsx"), rhop = 1e-7), "XLS/XLSX format is not supported, use CSV instead") }) test_that("check functionality", { testthat::skip_on_cran() SW({ expect_s4_class(fit_IsothermalHolding(input.csv, rhop = 1e-7), "RLum.Results") data <- .import_ThermochronometryData(input.csv[1]) expect_s4_class(fit_IsothermalHolding(data, rhop = 1e-7, mfrow = c(2, 2)), "RLum.Results") }) }) Luminescence/tests/testthat/test_view.R0000644000176200001440000000250214762554470020037 0ustar liggesusers## load data data(ExampleData.RLum.Analysis) data(ExampleData.RLum.Data.Image, envir = environment()) data(ExampleData.XSYG, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_error(view(set_RLum("RLum.Data.Image")), "'info' slot cannot be an empty list") }) test_that("check functionality", { testthat::skip_on_cran() ## Risø.BINfileData file <- system.file("extdata/BINfile_V8.binx", package = "Luminescence") risoe <- read_BIN2R(file, verbose = FALSE) ## RLum.Data.Curve curve <- get_RLum(OSL.SARMeasurement$Sequence.Object, recordType = "TL (UVVIS)")[[1]] ## RLum.Data.Image image <- ExampleData.RLum.Data.Image ## RLum.Data.Spectrum spect <- TL.Spectrum ## RLum.Results results <- calc_FastRatio(curve, verbose = FALSE, plot = FALSE) ## RLum.Analysis analysis <- OSL.SARMeasurement[[2]] ## we need to mock the utils::View function as it otherwise generates this ## error on CI: ## Error in `check_screen_device("View()")`: ## View() should not be used in examples etc with_mocked_bindings(".view" = function(x, ...) NULL, { expect_null(view(risoe)) expect_null(view(curve)) expect_null(view(image)) expect_null(view(spect)) expect_null(view(results)) expect_null(view(analysis)) }) }) Luminescence/tests/testthat/_data/0000755000176200001440000000000014762561726016756 5ustar liggesusersLuminescence/tests/testthat/_data/bin-tests/0000755000176200001440000000000014762554470020664 5ustar liggesusersLuminescence/tests/testthat/_data/bin-tests/rectype-128.binx0000644000176200001440000015124114762554470023535 0ustar liggesusersBT 607+Main Measurement Middle Grain SachsenLoesseExampleData.BINfileDataDefault191432060920]C@\C A                          #-++,53*8(1-UBHCSXZNQJlWnc{lxHBT 607+Main Measurement Middle Grain SachsenLoesseExampleData.BINfileDataDefault191611060920]C@\C A                            ) ' %&#*1)$<3+)017K5LC;=XL_Ue)6 dv($vG G G F -F stPv3VO ' Xn> `l;:G |k`rG k;O F `n/ ;8O wD F HkHkHk,v+ma |v4|vO [4|v' [G [[(EW^#EkE EE EkEW^#E(E!.E2E5E6E5E2E!.E6E5E2E!.E(EW^#EkE EE EkEW^#E(E!.E2E5E@ED֜DD`DD֜DD@EE1 E=EPE=E1 EE6E5E2E!.E(EW^#EkE EE EkEW^#E(E!.E2E5EDD֜DD`DD֜DDDRCD*cD{DD{D*cDRCD6E5E2E!.E(EW^#EkE EE EkEW^#E(E!.E2E5EaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DD{D*cDvD6E5E2E!.E(EW^#EkE EE EkEW^#E(E!.E2E5ECpUC CABBAB CpUCCH CCC@DCCH C6E5E2E!.E(EW^#EkE EE EkEW^#E(E!.E2E5EH çû@ĻçH pUò AA² pU6E5E2E!.E(EW^#EkE EE EkEW^#E(E!.E2E5EaĤv*c{{*cĤva\yKĬ99#-(#-Ĭ99\yK6E5E2E!.E(EW^#EkE EE EkEW^#E(E!.E2E5ERC*c{{*cRCĮ֜`֜Į6E5E2E!.E(EW^#EkE EE EkEW^#E(E!.E2E5E@ũŕ1 =P=ŕ1 ũ@Ů֜`֜Į6E5E2E!.E(EW^#EkE EE EkEW^#E(E!.E2E5E(ũ!.ŕ2565ŕ2ũ!.(W^#k  kW^#6E5E2E!.E(EW^#EkE EE EkEW^#E(E!.E2E5E(EW^#EkE EE EkEW^#E(E!.E2E5E6E5E2E!.EPE=E1 EE@ED֜DD`DD֜DD@EE1 E=E@ED֜DD`DD֜DD@EE1 E=EPE=E1 EEPE=E1 EE@ED֜DD`DD֜DD@EE1 E=EDD֜DD`DD֜DDDRCD*cD{DD{D*cDRCDPE=E1 EE@ED֜DD`DD֜DD@EE1 E=EaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DD{D*cDvDPE=E1 EE@ED֜DD`DD֜DD@EE1 E=ECpUC CABBAB CpUCCH CCC@DCCH CPE=E1 EE@ED֜DD`DD֜DD@EE1 E=EH çû@ĻçH pUò AA² pUPE=E1 EE@ED֜DD`DD֜DD@EE1 E=EaĤv*c{{*cĤva\yKĬ99#-(#-Ĭ99\yKPE=E1 EE@ED֜DD`DD֜DD@EE1 E=ERC*c{{*cRCĮ֜`֜ĮPE=E1 EE@ED֜DD`DD֜DD@EE1 E=E@ũŕ1 =P=ŕ1 ũ@Ů֜`֜ĮPE=E1 EE@ED֜DD`DD֜DD@EE1 E=E(ũ!.ŕ2565ŕ2ũ!.(W^#k  kW^#PE=E1 EE@ED֜DD`DD֜DD@EE1 E=E(EW^#EkE EE EkEW^#E(E!.E2E5E6E5E2E!.ED{D*cDRCDDD֜DD`DD֜DDDRCD*cD{D@ED֜DD`DD֜DD@EE1 E=EPE=E1 EED{D*cDRCDDD֜DD`DD֜DDDRCD*cD{DDD֜DD`DD֜DDDRCD*cD{DD{D*cDRCDD{D*cDRCDDD֜DD`DD֜DDDRCD*cD{DaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DD{D*cDvDD{D*cDRCDDD֜DD`DD֜DDDRCD*cD{DCpUC CABBAB CpUCCH CCC@DCCH CD{D*cDRCDDD֜DD`DD֜DDDRCD*cD{DH çû@ĻçH pUò AA² pUD{D*cDRCDDD֜DD`DD֜DDDRCD*cD{DaĤv*c{{*cĤva\yKĬ99#-(#-Ĭ99\yKD{D*cDRCDDD֜DD`DD֜DDDRCD*cD{DRC*c{{*cRCĮ֜`֜ĮD{D*cDRCDDD֜DD`DD֜DDDRCD*cD{D@ũŕ1 =P=ŕ1 ũ@Ů֜`֜ĮD{D*cDRCDDD֜DD`DD֜DDDRCD*cD{D(ũ!.ŕ2565ŕ2ũ!.(W^#k  kW^#D{D*cDRCDDD֜DD`DD֜DDDRCD*cD{D(EW^#EkE EE EkEW^#E(E!.E2E5E6E5E2E!.ED{D*cDvDaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{D@ED֜DD`DD֜DD@EE1 E=EPE=E1 EED{D*cDvDaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DDD֜DD`DD֜DDDRCD*cD{DD{D*cDRCDD{D*cDvDaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DD{D*cDvDD{D*cDvDaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DCpUC CABBAB CpUCCH CCC@DCCH CD{D*cDvDaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DH çû@ĻçH pUò AA² pUD{D*cDvDaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DaĤv*c{{*cĤva\yKĬ99#-(#-Ĭ99\yKD{D*cDvDaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DRC*c{{*cRCĮ֜`֜ĮD{D*cDvDaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{D@ũŕ1 =P=ŕ1 ũ@Ů֜`֜ĮD{D*cDvDaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{D(ũ!.ŕ2565ŕ2ũ!.(W^#k  kW^#D{D*cDvDaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{D(EW^#EkE EE EkEW^#E(E!.E2E5E6E5E2E!.E@DCCH CCpUC CABBAB CpUCCH CCC@ED֜DD`DD֜DD@EE1 E=EPE=E1 EE@DCCH CCpUC CABBAB CpUCCH CCCDD֜DD`DD֜DDDRCD*cD{DD{D*cDRCD@DCCH CCpUC CABBAB CpUCCH CCCaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DD{D*cDvD@DCCH CCpUC CABBAB CpUCCH CCCCpUC CABBAB CpUCCH CCC@DCCH C@DCCH CCpUC CABBAB CpUCCH CCCH çû@ĻçH pUò AA² pU@DCCH CCpUC CABBAB CpUCCH CCCaĤv*c{{*cĤva\yKĬ99#-(#-Ĭ99\yK@DCCH CCpUC CABBAB CpUCCH CCCRC*c{{*cRCĮ֜`֜Į@DCCH CCpUC CABBAB CpUCCH CCC@ũŕ1 =P=ŕ1 ũ@Ů֜`֜Į@DCCH CCpUC CABBAB CpUCCH CCC(ũ!.ŕ2565ŕ2ũ!.(W^#k  kW^#@DCCH CCpUC CABBAB CpUCCH CCC(EW^#EkE EE EkEW^#E(E!.E2E5E6E5E2E!.EA² pUH çû@ĻçH pUò A@ED֜DD`DD֜DD@EE1 E=EPE=E1 EEA² pUH çû@ĻçH pUò ADD֜DD`DD֜DDDRCD*cD{DD{D*cDRCDA² pUH çû@ĻçH pUò AaD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DD{D*cDvDA² pUH çû@ĻçH pUò ACpUC CABBAB CpUCCH CCC@DCCH CA² pUH çû@ĻçH pUò AH çû@ĻçH pUò AA² pUA² pUH çû@ĻçH pUò AaĤv*c{{*cĤva\yKĬ99#-(#-Ĭ99\yKA² pUH çû@ĻçH pUò ARC*c{{*cRCĮ֜`֜ĮA² pUH çû@ĻçH pUò A@ũŕ1 =P=ŕ1 ũ@Ů֜`֜ĮA² pUH çû@ĻçH pUò A(ũ!.ŕ2565ŕ2ũ!.(W^#k  kW^#A² pUH çû@ĻçH pUò A(EW^#EkE EE EkEW^#E(E!.E2E5E6E5E2E!.E(#-Ĭ99\yKaĤv*c{{*cĤva\yKĬ99#-@ED֜DD`DD֜DD@EE1 E=EPE=E1 EE(#-Ĭ99\yKaĤv*c{{*cĤva\yKĬ99#-DD֜DD`DD֜DDDRCD*cD{DD{D*cDRCD(#-Ĭ99\yKaĤv*c{{*cĤva\yKĬ99#-aD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DD{D*cDvD(#-Ĭ99\yKaĤv*c{{*cĤva\yKĬ99#-CpUC CABBAB CpUCCH CCC@DCCH C(#-Ĭ99\yKaĤv*c{{*cĤva\yKĬ99#-H çû@ĻçH pUò AA² pU(#-Ĭ99\yKaĤv*c{{*cĤva\yKĬ99#-aĤv*c{{*cĤva\yKĬ99#-(#-Ĭ99\yK(#-Ĭ99\yKaĤv*c{{*cĤva\yKĬ99#-RC*c{{*cRCĮ֜`֜Į(#-Ĭ99\yKaĤv*c{{*cĤva\yKĬ99#-@ũŕ1 =P=ŕ1 ũ@Ů֜`֜Į(#-Ĭ99\yKaĤv*c{{*cĤva\yKĬ99#-(ũ!.ŕ2565ŕ2ũ!.(W^#k  kW^#(#-Ĭ99\yKaĤv*c{{*cĤva\yKĬ99#-(EW^#EkE EE EkEW^#E(E!.E2E5E6E5E2E!.E`֜ĮRC*c{{*cRCĮ֜@ED֜DD`DD֜DD@EE1 E=EPE=E1 EE`֜ĮRC*c{{*cRCĮ֜DD֜DD`DD֜DDDRCD*cD{DD{D*cDRCD`֜ĮRC*c{{*cRCĮ֜aD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DD{D*cDvD`֜ĮRC*c{{*cRCĮ֜CpUC CABBAB CpUCCH CCC@DCCH C`֜ĮRC*c{{*cRCĮ֜H çû@ĻçH pUò AA² pU`֜ĮRC*c{{*cRCĮ֜aĤv*c{{*cĤva\yKĬ99#-(#-Ĭ99\yK`֜ĮRC*c{{*cRCĮ֜RC*c{{*cRCĮ֜`֜Į`֜ĮRC*c{{*cRCĮ֜@ũŕ1 =P=ŕ1 ũ@Ů֜`֜Į`֜ĮRC*c{{*cRCĮ֜(ũ!.ŕ2565ŕ2ũ!.(W^#k  kW^#`֜ĮRC*c{{*cRCĮ֜(EW^#EkE EE EkEW^#E(E!.E2E5E6E5E2E!.E`֜Į@ũŕ1 =P=ŕ1 ũ@Ů֜@ED֜DD`DD֜DD@EE1 E=EPE=E1 EE`֜Į@ũŕ1 =P=ŕ1 ũ@Ů֜DD֜DD`DD֜DDDRCD*cD{DD{D*cDRCD`֜Į@ũŕ1 =P=ŕ1 ũ@Ů֜aD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DD{D*cDvD`֜Į@ũŕ1 =P=ŕ1 ũ@Ů֜CpUC CABBAB CpUCCH CCC@DCCH C`֜Į@ũŕ1 =P=ŕ1 ũ@Ů֜H çû@ĻçH pUò AA² pU`֜Į@ũŕ1 =P=ŕ1 ũ@Ů֜aĤv*c{{*cĤva\yKĬ99#-(#-Ĭ99\yK`֜Į@ũŕ1 =P=ŕ1 ũ@Ů֜RC*c{{*cRCĮ֜`֜Į`֜Į@ũŕ1 =P=ŕ1 ũ@Ů֜@ũŕ1 =P=ŕ1 ũ@Ů֜`֜Į`֜Į@ũŕ1 =P=ŕ1 ũ@Ů֜(ũ!.ŕ2565ŕ2ũ!.(W^#k  kW^#`֜Į@ũŕ1 =P=ŕ1 ũ@Ů֜(EW^#EkE EE EkEW^#E(E!.E2E5E6E5E2E!.E kW^#(ũ!.ŕ2565ŕ2ũ!.(W^#k @ED֜DD`DD֜DD@EE1 E=EPE=E1 EE kW^#(ũ!.ŕ2565ŕ2ũ!.(W^#k DD֜DD`DD֜DDDRCD*cD{DD{D*cDRCD kW^#(ũ!.ŕ2565ŕ2ũ!.(W^#k aD\yKD99D#-D(D#-D99D\yKDaDvD*cD{DD{D*cDvD kW^#(ũ!.ŕ2565ŕ2ũ!.(W^#k CpUC CABBAB CpUCCH CCC@DCCH C kW^#(ũ!.ŕ2565ŕ2ũ!.(W^#k H çû@ĻçH pUò AA² pU kW^#(ũ!.ŕ2565ŕ2ũ!.(W^#k aĤv*c{{*cĤva\yKĬ99#-(#-Ĭ99\yK kW^#(ũ!.ŕ2565ŕ2ũ!.(W^#k RC*c{{*cRCĮ֜`֜Į kW^#(ũ!.ŕ2565ŕ2ũ!.(W^#k @ũŕ1 =P=ŕ1 ũ@Ů֜`֜Į kW^#(ũ!.ŕ2565ŕ2ũ!.(W^#k (ũ!.ŕ2565ŕ2ũ!.(W^#k  kW^# kW^#(ũ!.ŕ2565ŕ2ũ!.(W^#k Luminescence/tests/testthat/_data/bin-tests/corrupted.bin0000644000176200001440000000476014762554470023374 0ustar liggesusers]C@19143206092020100906Default\C ABT 607+Main Measurement Middle Grain SachsenLoesse                          #-++,53*8(1-UBHCSXZNQJlWnc{lxH]C@19161106092020100906Default\C ABT 607+Main Measurement Middle Grain SachsenLoesse                            ) ' %&#*1)$<3+)017K5LC;=XL_Ue)Luminescence/tests/testthat/_data/bin-tests/zero-data-record.binx0000644000176200001440000000373714762554470024722 0ustar liggesusersBT 607+Main Measurement Middle Grain SachsenLoesseExampleData.BINfileDataDefault191432060920]C@\C A                          #-++,53*8(1-UBHCSXZNQJlWnc{lxHBT 607+Main Measurement Middle Grain SachsenLoesseExampleData.BINfileDataDefault191432060920]C@\C ALuminescence/tests/testthat/_data/bin-tests/duplicated-records.binx0000644000176200001440000001065114762554470025326 0ustar liggesusersBT 607+Main Measurement Middle Grain SachsenLoesseExampleData.BINfileDataDefault191432060920]C@\C A                          #-++,53*8(1-UBHCSXZNQJlWnc{lxHBT 607+Main Measurement Middle Grain SachsenLoesseExampleData.BINfileDataDefault191432060920]C@\C A                          #-++,53*8(1-UBHCSXZNQJlWnc{lxHBT 607+Main Measurement Middle Grain SachsenLoesseExampleData.BINfileDataDefault191611060920]C@\C A                            ) ' %&#*1)$<3+)017K5LC;=XL_Ue)Luminescence/tests/testthat/_data/bin-tests/zero-data-all.binx0000644000176200001440000000176614762554470024214 0ustar liggesusersBT 607+Main Measurement Middle Grain SachsenLoesseExampleData.BINfileDataDefault191432060920]C@\C ABT 607+Main Measurement Middle Grain SachsenLoesseExampleData.BINfileDataDefault191432060920]C@\C ALuminescence/tests/testthat/_data/bin-tests/two-versions.binx0000644000176200001440000001266614762554470024240 0ustar liggesusers]C@19143206092020100906Default\C ABT 607+Main Measurement Middle Grain SachsenLoesse                          #-++,53*8(1-UBHCSXZNQJlWnc{lxH]C@19161106092020100906Default\C ABT 607+Main Measurement Middle Grain SachsenLoesse                            ) ' %&#*1)$<3+)017K5LC;=XL_Ue)BT 607+Main Measurement Middle Grain SachsenLoesseExampleData.BINfileDataDefault191432060920]C@\C A                          #-++,53*8(1-UBHCSXZNQJlWnc{lxHBT 607+Main Measurement Middle Grain SachsenLoesseExampleData.BINfileDataDefault191611060920]C@\C A                            ) ' %&#*1)$<3+)017K5LC;=XL_Ue)Luminescence/tests/testthat/_data/xsyg-tests/0000755000176200001440000000000014762554470021106 5ustar liggesusersLuminescence/tests/testthat/_data/xsyg-tests/XSYG_spectra.xsyg0000644000176200001440000000324414762554470024340 0ustar liggesusers 0.1,[523|523|523|515|507|499];0.2,[523|523|523|515|507|499] 0.1,26.2;0.2,28.2; 0.1,26.2;0.2,28.2; Luminescence/tests/testthat/_data/xsyg-tests/XSYG_broken.xsyg0000644000176200001440000000006114762554470024151 0ustar liggesusers Luminescence/tests/testthat/_data/xsyg-tests/XSYG_corr_IRSL.xsyg0000644000176200001440000000210314762554470024466 0ustar liggesusers 0.1,6; 0.2,6; 0.3,5; 0.4,5 Luminescence/tests/testthat/_data/xsyg-tests/XSYG_spectra_duplicated_TL.xsyg0000644000176200001440000000343014762554470027132 0ustar liggesusers 0.1,[523|523|523|515|507|499];0.2,[523|523|523|515|507|499]; 0.3,[523|523|523|515|507|499]; 0.6,[523|523|523|515|507|499] 0.1,26.2;0.2,28.2;0.3,28.2;0.6,28.2; 0.1,26.2;0.2,28.2;0.3,28.2;0.4,28.2;0.5,30.2;0.6,30.2; Luminescence/tests/testthat/_data/xsyg-tests/XSYG_file_TL_CASE2.xsyg0000644000176200001440000000310314762554470025064 0ustar liggesusers 0.1,6; 0.2,6; 0.3,5; 0.4,5 0.1,1; 0.15,2; 0.2,3; 0.25,5; 0.3,6; 0.35,7 0.1,1; 0.15,2; 0.2,3; 0.25,5; 0.3,6; 0.35,7 Luminescence/tests/testthat/_data/xsyg-tests/XSYG_file_TL_CASE3.xsyg0000644000176200001440000000301714762554470025071 0ustar liggesusers 0.1,6; 0.2,6; 0.3,5; 0.4,5 0.1,1; 0.15,2; 0.2,3; 0.25,5; 0.1,1; 0.15,2; 0.2,3; 0.25,5; Luminescence/tests/testthat/_data/xsyg-tests/XSYG_noRecordType.xsyg0000644000176200001440000000205014762554470025306 0ustar liggesusers 0.1,6; 0.2,6; 0.3,5; 0.4,5 Luminescence/tests/testthat/_data/xsyg-tests/XSYG_spectra_equal_TL.xsyg0000644000176200001440000000324414762554470026126 0ustar liggesusers 0.1,[523|523|523|515|507|499];0.2,[523|523|523|515|507|499] 0.1,26.2;0.2,26.2; 0.1,26.2;0.2,26.2; Luminescence/tests/testthat/_data/BINfile_V6.binx0000644000176200001440000000551614762554470021470 0ustar liggesusersBT 607+Main Measurement Middle Grain SachsenLoesseExampleData.BINfileDataDefault191432060920]C@\C A                          #-++,53*8(1-UBHCSXZNQJlWnc{lxHBT 607+Main Measurement Middle Grain SachsenLoesseExampleData.BINfileDataDefault191611060920]C@\C A                            ) ' %&#*1)$<3+)017K5LC;=XL_Ue)Luminescence/tests/testthat/_data/BINfile_V3.bin0000644000176200001440000000476014762554470021275 0ustar liggesusers]C@19143206092020100906Default\C ABT 607+Main Measurement Middle Grain SachsenLoesse                          #-++,53*8(1-UBHCSXZNQJlWnc{lxH]C@19161106092020100906Default\C ABT 607+Main Measurement Middle Grain SachsenLoesse                            ) ' %&#*1)$<3+)017K5LC;=XL_Ue)Luminescence/tests/testthat/_data/CLBR_IR50.csv0000644000176200001440000000561214762554470020756 0ustar liggesusersSample,...2,...3,CLBR,...5,...6,...7,...8,...9,...10,...11,...12,...13,...14,...15 Natural T (°C),,,,,,,,,,,,,, Natural Ḋ (Gy/ka),,,4,0.5,,,,,,,,,, Lab calibration:,,,,,,,,,,,,,, T (°C),15,t (ks),Nat,1,0,0.25,0.5,1,2,0,0.25,,, Ḋ (Gy/s),0.1,Lx/Tx,0.87,0.962,0.001,0.384,0.645,0.987,1.338,0.001,0.386,,, T (°C),15,t (ks),Nat,1,0,0.25,0.5,1,2,0,0.25,,, Ḋ (Gy/s),0.1,Lx/Tx,0.87,0.962,0.001,0.384,0.645,0.987,1.338,0.001,0.386,,, T (°C),15,t (ks),Nat,1,0,0.25,0.5,1,2,0,0.25,,, Ḋ (Gy/s),0.1,Lx/Tx,0.87,0.962,0.001,0.384,0.645,0.987,1.338,0.001,0.386,,, T (°C),170,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.926920948868457,0.935463776461515,0.945526572871623,0.961033788143149,0.952886232145788,0.955885483066818,0.948824909297178,0.948969179072702,0.938559335681984,0.929858542620034,0.93050502052483,0.892752367824536 T (°C),190,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.96071548367637205,0.948544051303617,0.975516625448267,0.953884935175787,0.951142155066295,0.937659110832747,0.957149597972208,0.951190853225192,0.8927913500502,0.895380829704891,0.867899538139013,0.794773345057872 T (°C),210,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,1.0192886758787101,0.956051825740907,0.964910265581534,0.952894973097552,0.947604816879817,0.941634836156357,0.927780314079013,0.8983005782854,0.855990207476821,0.79774416525028,0.730977487018996,0.633201214807931 T (°C),230,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.96561236309363896,0.949987765115723,0.953559546449397,0.935403054795903,0.921374908492503,0.886547953771501,0.857315548836905,0.795026092426344,0.725603751556095,0.630636839773661,0.519088676570591,0.37459662274786 T (°C),250,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.95191679910695504,0.947899779528841,0.916821683869026,0.904582354281742,0.841134050337729,0.800265392669951,0.730148803873846,0.630043844754754,0.516588395660556,0.387221680792665,0.255166051593704,0.138851094912885 T (°C),300,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.83628710391136296,0.761576502340493,0.676572049838623,0.586748721231438,0.471369248849017,0.329751714463485,0.196791883510171,0.104522919406322,0.0451732377594143,0.0187402003278088,0.00633702876960699,0.00191707245572788 T (°C),350,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,,,, Ḋ (Gy/s),0,Lx/Tx,0.47602659156291899,0.289032665327822,0.202392714216249,0.117468764914734,0.0551654130775085,0.0207639093116669,0.00667016787827115,0.00185337294310654,,,, T (°C),15,t (ks),0.9648000000000001,15.0264,21.0564,33.0984,57.1752,0.9684,,,,,, Ḋ (Gy/s),0,Lx/Tx,0.95199999999999996,0.966,0.974,0.971,0.972,0.973,,,,,, T (°C),15,t (ks),,,,,,,,,,,, Ḋ (Gy/s),0,Lx/Tx,,,,,,,,,,,, T (°C),15,t (ks),,,,,,,,,,,, Ḋ (Gy/s),0,Lx/Tx,,,,,,,,,,,, Luminescence/tests/testthat/_data/CLBR_IR225.csv0000644000176200001440000000561214762554470021042 0ustar liggesusersSample,...2,...3,CLBR,...5,...6,...7,...8,...9,...10,...11,...12,...13,...14,...15 Natural T (°C),,,,,,,,,,,,,, Natural Ḋ (Gy/ka),,,4,0.5,,,,,,,,,, Lab calibration:,,,,,,,,,,,,,, T (°C),15,t (ks),Nat,1,0,0.25,0.5,1,2,0,0.25,,, Ḋ (Gy/s),0.1,Lx/Tx,0.87,0.962,0.001,0.384,0.645,0.987,1.338,0.001,0.386,,, T (°C),15,t (ks),Nat,1,0,0.25,0.5,1,2,0,0.25,,, Ḋ (Gy/s),0.1,Lx/Tx,0.87,0.962,0.001,0.384,0.645,0.987,1.338,0.001,0.386,,, T (°C),15,t (ks),Nat,1,0,0.25,0.5,1,2,0,0.25,,, Ḋ (Gy/s),0.1,Lx/Tx,0.87,0.962,0.001,0.384,0.645,0.987,1.338,0.001,0.386,,, T (°C),170,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.926920948868457,0.935463776461515,0.945526572871623,0.961033788143149,0.952886232145788,0.955885483066818,0.948824909297178,0.948969179072702,0.938559335681984,0.929858542620034,0.93050502052483,0.892752367824536 T (°C),190,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.96071548367637205,0.948544051303617,0.975516625448267,0.953884935175787,0.951142155066295,0.937659110832747,0.957149597972208,0.951190853225192,0.8927913500502,0.895380829704891,0.867899538139013,0.794773345057872 T (°C),210,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,1.0192886758787101,0.956051825740907,0.964910265581534,0.952894973097552,0.947604816879817,0.941634836156357,0.927780314079013,0.8983005782854,0.855990207476821,0.79774416525028,0.730977487018996,0.633201214807931 T (°C),230,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.96561236309363896,0.949987765115723,0.953559546449397,0.935403054795903,0.921374908492503,0.886547953771501,0.857315548836905,0.795026092426344,0.725603751556095,0.630636839773661,0.519088676570591,0.37459662274786 T (°C),250,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.95191679910695504,0.947899779528841,0.916821683869026,0.904582354281742,0.841134050337729,0.800265392669951,0.730148803873846,0.630043844754754,0.516588395660556,0.387221680792665,0.255166051593704,0.138851094912885 T (°C),300,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.83628710391136296,0.761576502340493,0.676572049838623,0.586748721231438,0.471369248849017,0.329751714463485,0.196791883510171,0.104522919406322,0.0451732377594143,0.0187402003278088,0.00633702876960699,0.00191707245572788 T (°C),350,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,,,, Ḋ (Gy/s),0,Lx/Tx,0.47602659156291899,0.289032665327822,0.202392714216249,0.117468764914734,0.0551654130775085,0.0207639093116669,0.00667016787827115,0.00185337294310654,,,, T (°C),15,t (ks),0.9648000000000001,15.0264,21.0564,33.0984,57.1752,0.9684,,,,,, Ḋ (Gy/s),0,Lx/Tx,0.95199999999999996,0.966,0.974,0.971,0.972,0.973,,,,,, T (°C),15,t (ks),,,,,,,,,,,, Ḋ (Gy/s),0,Lx/Tx,,,,,,,,,,,, T (°C),15,t (ks),,,,,,,,,,,, Ḋ (Gy/s),0,Lx/Tx,,,,,,,,,,,, Luminescence/tests/testthat/_data/CLBR_IR100.csv0000644000176200001440000000564614762554470021041 0ustar liggesusersSample,...2,...3,CLBR,...5,...6,...7,...8,...9,...10,...11,...12,...13,...14,...15 Natural T (°C),,,,,,,,,,,,,, Natural Ḋ (Gy/ka),,,4,0.5,,,,,,,,,, Lab calibration:,,,,,,,,,,,,,, T (°C),15,t (ks),Nat,1,0,0.25,0.5,1,2,0,0.25,,, Ḋ (Gy/s),0.1,Lx/Tx,0.85199999999999998,0.961,0,0.374,0.634,0.981,1.366,0,0.378,,, T (°C),15,t (ks),Nat,1,0,0.25,0.5,1,2,0,0.25,,, Ḋ (Gy/s),0.1,Lx/Tx,0.85199999999999998,0.961,0,0.374,0.634,0.981,1.366,0,0.378,,, T (°C),15,t (ks),Nat,1,0,0.25,0.5,1,2,0,0.25,,, Ḋ (Gy/s),0.1,Lx/Tx,0.85199999999999998,0.961,0,0.374,0.634,0.981,1.366,0,0.378,,, T (°C),170,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.92099318952215103,0.933740394970472,0.934690585726105,0.95664123284752,0.949223710798085,0.948863775730041,0.949556705907868,0.946834551520652,0.935711667647136,0.924310503714512,0.92695294648136,0.886391162635423 T (°C),190,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.96079158162145095,0.950106228875414,0.97279234708123,0.944965998573935,0.95235048379768,0.939486823688536,0.954565287875615,0.943363416928501,0.911525673306442,0.88772549639457,0.85064346066343,0.765859936614652 T (°C),210,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.97125567854815098,0.955320192697263,0.961411430157341,0.950502181736178,0.951260843259371,0.93238619168657,0.924015896026435,0.891203538643051,0.832652082141472,0.77059486771455,0.683924608074885,0.564675338614283 T (°C),230,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.96120320447983498,0.949332464928319,0.950252019020715,0.933470273287491,0.916157514238167,0.878468922295839,0.834632177788698,0.759409302902588,0.671241786418927,0.554805692311602,0.427028915929016,0.280671825840122 T (°C),250,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.94975355405471495,0.941903399824017,0.906481982097784,0.892102686904404,0.818197900610214,0.761846526247584,0.669709937100406,0.553927426242434,0.422591054058147,0.289379896649971,0.168652466661484,0.0783876181688412 T (°C),300,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24 Ḋ (Gy/s),0,Lx/Tx,0.81126751532721797,0.693935584118652,0.592728123713527,0.49079913387737,0.357390121324054,0.220609216234297,0.112606232516731,0.0506186481462992,0.0184491625713912,0.00646821095249494,0.00183126861278291,0.000467214362548286 T (°C),350,t (ks),0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,,,, Ḋ (Gy/s),0,Lx/Tx,0.37408210283179799,0.183801478075083,0.113176263702427,0.0551573677005741,0.0210610189338973,0.00635664628219911,0.00162492721512388,0.000382932314020931,,,, T (°C),15,t (ks),0.79200000000000004,14.8608,20.8908,32.9328,57.0132,0.792,,,,,, Ḋ (Gy/s),0,Lx/Tx,0.95199999999999996,0.963,0.97,0.967,0.968,0.973,,,,,, T (°C),15,t (ks),,,,,,,,,,,, Ḋ (Gy/s),0,Lx/Tx,,,,,,,,,,,, T (°C),15,t (ks),,,,,,,,,,,, Ḋ (Gy/s),0,Lx/Tx,,,,,,,,,,,, Luminescence/tests/testthat/_data/BINfile_V4.bin0000644000176200001440000000476014762554470021276 0ustar liggesusers]C@19143206092020100906Default\C ABT 607+Main Measurement Middle Grain SachsenLoesse                          #-++,53*8(1-UBHCSXZNQJlWnc{lxH]C@19161106092020100906Default\C ABT 607+Main Measurement Middle Grain SachsenLoesse                            ) ' %&#*1)$<3+)017K5LC;=XL_Ue)Luminescence/tests/testthat/_data/DRAC_Input_Template.csv0000644000176200001440000000700714762554470023220 0ustar liggesusersDRAC v.1.2 Inputs,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Full details of the inputs required for a DRAC dose rate calculation and the calculation process can be found in the paper and the DRAC website (www.aber.ac.uk/alrl/drac).,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, "Please cite all uses of DRAC, including the version number, as Durcan, J.A., King, G.E., and Duller, G.A.T., 2015. DRAC: Dose rate and age calculator for trapped charge dating. Quaternary Geochronology, 28, 54-61. Corresponding authors: Julie Durcan (julie.durcan@ouce.ox.ac.uk) and Georgina King (georgina.king@uni-koeln.de).",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, "To calculate dose rates using DRAC, the data table below (excluding headers) can be copied and pasted into the calculator box on the DRAC website (www.aber.ac.uk/alrl/DRAC). Once 'calculate' has been clicked, DRAC will generate an output file, which can be saved by the user.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, TI:1,TI:2,TI:3,TI:4,TI:5,TI:6,TI:7,TI:8,TI:9,TI:10,TI:11,TI:12,TI:13,TI:14,TI:15,TI:16,TI:17,TI:18,TI:19,TI:20,TI:21,TI:22,TI:23,TI:24,TI:25,TI:26,TI:27,TI:28,TI:29,TI:30,TI:31,TI:32,TI:33,TI:34,TI:35,TI:36,TI:37,TI:38,TI:39,TI:40,TI:41,TI:42,TI:43,TI:44,TI:45,TI:46,TI:47,TI:48,TI:49,TI:50,TI:51,TI:52,TI:53 Project ID,Sample ID,Mineral,Conversion factors,ExternalU (ppm),errExternal U (ppm),External Th (ppm),errExternal Th (ppm),External K (%),errExternal K (%),External Rb (ppm),errExternal Rb (ppm),Calculate external Rb from K conc?,Internal U (ppm),errInternal U (ppm),Internal Th (ppm),errInternal Th (ppm),Internal K (%),errInternal K (%),Internal Rb (ppm),errInternal Rb (ppm),Calculate internal Rb from K conc?,User external alphadoserate (Gy.ka-1),errUser external alphadoserate (Gy.ka-1),User external betadoserate (Gy.ka-1),errUser external betadoserate (Gy.ka-1),User external gamma doserate (Gy.ka-1),errUser external gammadoserate (Gy.ka-1),User internal doserate (Gy.ka-1),errUser internal doserate (Gy.ka-1),Scale gammadoserate at shallow depths?,Grain size min (microns),Grain size max (microns),alpha-Grain size attenuation,beta-Grain size attenuation ,Etch depth min (microns),Etch depth max (microns),beta-Etch depth attenuation factor,a-value,erra-value,Water content ((wet weight - dry weight)/dry weight) %,errWater content %,Depth (m),errDepth (m),Overburden density (g cm-3),errOverburden density (g cm-3),Latitude (decimal degrees),Longitude (decimal degrees),Altitude (m),User cosmicdoserate (Gy.ka-1),errUser cosmicdoserate (Gy.ka-1),De (Gy),errDe (Gy) DRAC-example,Quartz,Q,Guerinetal2011,3.40,0.51,14.47,1.69,1.20,0.14,0.00,0.00,N,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,N,90.00,125.00,Brennanetal1991,Guerinetal2012-Q,8.00,10.00,Bell1979,0.00,0.000,5.00,2.00,2.22,0.05,1.80,0.10,30.00,70.00,150.00,X,X,20.00,0.20 DRAC-example,Feldspar,F,AdamiecAitken1998,2.00,0.20,8.00,0.40,1.75,0.05,0.00,0.00,Y,X,X,X,X,12.50,0.50,X,X,N,X,X,X,X,X,X,X,X,Y,180.00,212.00,Bell1980,Mejdahl1979,0.00,0.00,Bell1979,0.15,0.050,10.00,3.00,0.15,0.02,1.80,0.10,60.00,100.00,200.00,X,X,15.00,1.50 DRAC-example,Polymineral,PM,AdamiecAitken1998,4.00,0.40,12.00,0.12,0.83,0.08,0.00,0.00,Y,X,X,X,X,12.50,0.50,X,X,N,X,X,2.50,0.15,X,X,X,X,Y,4.00,11.00,Bell1980,Mejdahl1979,0.00,0.00,Bell1979,0.086,0.0038,10.00,5.00,0.20,0.02,1.80,0.10,46.00,118.00,200.00,0.20,0.10,204.47,2.69 Luminescence/tests/testthat/_data/CLBR.xlsx0000644000176200001440000005675514762554470020440 0ustar liggesusersPK!Jsm([Content_Types].xml (̔]k0%1ưzMYsjirUy}zHpQd59f)Tfk H-pp}/`BsV9ǢZ`f)EW?NS1tyaMhAJ1!yY,yZ6^9iU@|ntQgJ9! [wWMԄ[?vie 4 !B X<.34]pG{<>O?QAԀQs%<ȏ)[{瑷)<?Mt5ݩ#!A6B`Hxء] śǜPK!U0#L _rels/.rels (MO0 HݐBKwAH!T~I$ݿ'TG~Unb$Ы83?3J텉u+kNyVρe11HZg5 WFrbJ \ʵP欢_v\TTT\_m! b>}jn̵V4ۺ~`-#7}U^w_MsԊjۇ& r0/xMPd2tk9s]UT-8阦a[Nbp،]3r:NTW\Y8צsл.Ӻ&|ufD8x@;x?xwuaÄj:ax؝xRZP6e[9kPN,ǰi m4";6gIyж7bS!+x2 hK3dCgb (&6е 'X΀QLdU6!-4K~--X ]h<0|v,&ox|x>H@M2PK![ axl/_rels/workbook.xml.rels (j0 }qvuz)^Lġ,u[~&v]B.I?$wۈOT; bhsWԶRq|}xAmgQAnpLݑ*EJ "ס Vs}%;t25 iCc]Y9]~n "Q+dɡ10Oswt`҅;N$ $S0Y}04SssxJxuB9-X/e)KZ]MAQ% i)`ߌc7HDJC!"`@2V eA_GaEW~1bVZkQN Iw NiIO._3M0u R?jZ >x4St$; +\H6_Řix qo`x WvݷRu$*6%ȏO?~/_χ?~yQ/~?𯟕}۟{_?omO5H] Կ>w>okv藏Ex͂/Y_>uĺرg‘ g.,\Ypѯcg:7]Tw͎IfaҹYcooYe{,Y8pf• Py/Eu_je&}Ym4Fss`c].t2 ,X8paD:4H՝lcYtrc¤/Y8pd™ Wn,'B՗2]ˋPFܯF rr|M,hI`'B.hʩغ*Y|nҪX>,47ܧJTʷO;.*LiKZtn=bL䱆PXRC;l<:?dUv&3?VvzGnlpUc)v8Սm9U BؿP||m &{%,2ޟ 7Q޷`7-^>\<סs9m)ym:޻M0Cb#mNl0 68jå66\kXjí6؍6H=Q ^\Q% £zo:6iT2]]CpjxzN{k^6vQG<3"Ԛ`m4Ƣ-;Cͫ,MOwVAHo^cVָni|DqkmOa8,Mf.-Kiv) qC6A d8$aeaeaea}g8,&g ]L@tW ΃s9<~c>U3NHNUi\$oM}4Vy~zt=G7٨T=$k6oR hmʍ] R^Y~֫s:wX*:Mq2Sa]>?8P/Oeӡbadj%`Xʛ0̞%eA l0$!$ aX`X`X`XߢÔk: sfT7aX< 0,Mkǘ+oƿbVmMxua]ǝ> ʚyIȭ="\@i^93VO¯hB??DD$+F",` s~AN$onŸO ":~w;c49LGB§x `a)o0{XXJYB6A d,$daecaecaeca} S toųRdaI*ps)0sGUc (#!}!`cw# n;#? 5Z},BI Bouc]I7:E0.v`tg?"4{xwCC59:r A|ڥ*CCi#"3J@L9KO@,M fK2 D6 A d@ s@ s@ s@o D$ie48x8Xw)Ya yd΍KG* o`e"4xOdhX~X;')`.m{4X5vHcRj~Ri2u'vuBW`v\Yr<=8M3R a4ncgıaWD:?ؾ#7 jmGvK1ߝC  A!L5SΙfp$p(o"dORJ z|"D6$A" dH ç)Ǔ_H^I[@KSZ a^@dI6J,➈f8ݖ:G!E#/"-lس_!CJ/{oĈZocq6: t8Msl) O|]CT_6' xZ Qp:L'1ʋ_ o!+sOS`r} W, ÕRl?_)|}OdCCg[ە`tNí5rږҘMe!5APۭhn8koi埋 rnRWR=D;@V-W#X? /dxW"b?x#=2T~{GX3Qp /?ʣǨt]tҽQT#a,ٲ\K,om'NJ{)tIJ"USW*/I^IKx.KVuX3mwm$iVZSuX'>84]&V!F2;k/=3!¤sWPcoa+].ߩVِ/a4Jg<,(4[>-,Tx]UAUY$M'~*8w1vmb4Dഇ9h]eC1D w7G_ 5 vJ p[O)^7 M~DΘw՘(lDhıe1_+ձ(; )ݎ8_%8?5Ht!$}=lR%ApxDQX?__ϻ>=w?o&<'~|}[Kㇿ?9~ Up XG/X /,lYرg‘ g.u\H疋dtn&[0MxaaŽ= ,X8p/#}Y.}i/cҗUeqiX*M-t2 [v,Y8pd™Dvd';tr&\x,l0K,Xسp`‰3 0}{_>= i^upϵ\N/a%Ҙ-Ğ($•owK7ދBŇV4 Y)"2J3 h SƸ%3R],+zϭy!4o5`dc'Ծ[P].(ޒ!:Miwܶ,Fvr1.T~Xzzi4G)"F&Q.ZfDu0.1:1Zn1B2#df3#n̈V4oY)"2p#Uw,shKh_e1BډTf1v~KOrTOŒ QeуvFQ3KEF[YÄE!3bU;:[Ve\zH^vgC'ϯHA~BצY{PC 鿋9a` h*ujƠ%f-RDSy(:x2x[u+uݭ:ނ(eSwl0Gڳ1I Gi0+@v gYCXjÅn ޵rLT^w1%1GNt=.x-gr5tlXu~\t}|z8qǾ 9$MF1zc>q[[R{J{?R udzoBL]軔#v|Me(k? ɘSɸЫQޖw cz5?>\ر*}ӣA6ଢ଼/ɖ< b+_bضrWRzA lP@$"4ɠ( ( ( (oě@lE 6 [):13NV7!c`u`sF9ď&6"Q :ENG'Gxd9+@XVjwasX>h<zxÇ倰bTZxyX=s&>"gt-:}2D@9 9]oţ?#(?1uC@FXMrѤ|jwI|;whzs z;cͰ* solnFMSd,ED??@8O%>D0`H/ jo%=S_}L6O_Cxya+_a lPD,o[{1DlĠX=sHlHdB"٠HD2h$A#Qn!Qn!Qn!QbS>>=-"qFP湆||u Hcye~9iKQ~زAZ!~Ai*)*?>] %"-F)01 EgD(\R"#m~3#~dB ?#Ld!;khPK/E,#·V辷o<HR|(_b@q(20 E6((AA pppt(>vb`e@հ깦 NBvCa 65rn؏$YAФ|a?bCd n)aVJAZqH:o{vArĠ8,ЌtCF'~EWUF N4A\8-8U}MH_E mF ~?s|hKZ͑UwAQEC"[JCF٠E2h(AC a8t}{-]$H8p9[<#jXd1#2[ʎd=9 " T7CHlŰ#cY{X"jov Q8aWĕ+)/\^^aV q6`w+P}b7 :ڋۼJ!1б&esV7-͂Or!-N9k7~jSZVuq'ή0?z[٘pČx%jVwu~&/>uYK!رZuueRzaQWu}>,ch ^_ɟ ~E%6`׷PV7`2p!տS$6c{DIkW(Y.B?^]TUj"UTvn;6ZzVK;-th]'}YK!ɗXJݶcV\mÍFK/ZjiZ:j餥.B$4!엣Z&C-] "&66׋ZiiCdP8 ZIX2;_7m?@2eb-mvZk頥NZ:k">\))HLOM,J+VIM+U23WR(LπK J I%%0^FjbJjg_egPK!+%u8mVU5 䰪;vdD+3?Q+J% SnSҟ? y\J>,>~ݺ$t}-hBC;{z iŒ(2eGO0M#i bAq]+{wiqNs0GZ*_F(%ZϛXVX1θ GO#=o2i)q!Im36c\\H߅3fa/ I'VrM/wb'VygQde̦S=QGIs.">4l1 Kǵ1aDp@ =,A>eh?#C m|WYFoUSjhNbiq2l~7/ 7#:_VuɠA MFD?_58_ɁE9oYXHy6_Řix qo`x WvݷRu$*6%ȏO?~/_χ?~yQ/~?𯟕}۟{_?omO5H] Կ>w>okv藏Ex͂/Y_>uĺرg‘ g.,\Ypѯcg:7]Tw͎IfaҹYcooYe{,Y8pf• Py/Eu_je&}Ym4Fss`c].t2 ,X8paD:4H՝lcYtrc¤/Y8pd™ Wn,'B՗2]ˋPFܯF rr|M,hI`'B.hʩغ*Y|nҪX>,47ܧJTʷO;.*LiKZtn=bL䱆PXRC;l<:?dUv&3?VvzGnlpUc)v8Սm9U BؿP||m &{%,2ޟ 7Q޷`7-^>\<סs9m)ym:޻M0Cb#mNl0 68jå66\kXjí6؍6H=Q ^\Q% £zo:6iT2]]CpjxzN{k^6vQG<3"Ԛ`m4Ƣ-;Cͫ,MOwVAHo^cVָni|DqkmOa8,Mf.-Kiv) qC6A d8$aeaeaea}g8,&g ]L@tW ΃s9<~c>U3NHNUi\$oM}4Vy~zt=G7٨T=$k6oR hmʍ] R^Y~֫s:wX*:Mq2Sa]>?8P/Oeӡbadj%`Xʛ0̞%eA l0$!$ aX`X`X`XߢÔk: sfT7aX< 0,Mkǘ+oƿbVmMxua]ǝ> ʚyIȭ="\@i^93VO¯hB??DD$+F",` s~AN$onŸO ":~w;c49LGB§x `a)o0{XXJYB6A d,$daecaecaeca} S toųRdaI*ps)0sGUc (#!}!`cw# n;#? 5Z},BI Bouc]I7:E0.v`tg?"4{xwCC59:r A|ڥ*CCi#"3J@L9KO@,M fK2 D6 A d@ s@ s@ s@o D$ie48x8Xw)Ya yd΍KG* o`e"4xOdhX~X;')`.m{4X5vHcRj~Ri2u'vuBW`v\Yr<=8M3R a4ncgıaWD:?ؾ#7 jmGvK1ߝC  A!L5SΙfp$p(o"dORJ z|"D6$A" dH ç)Ǔ_H^I[@KSZ a^@dI6J,➈f8ݖ:G!E#/"-lس_!CJ/{oĈZocq6: t8Msl) O|]CT_6' xZ Qp:L'1ʋ_ o!+sOS`r} W, ÕRl?_)|}OdCCg[ە`tNí5rږҘMe!5APۭhn8koi埋 rnRWR=D;@V-W#X? /dxW"b?x#=2T~{GX3Qp /?ʣǨt]tҽQT#a,ٲ\K,om'NJ{)tIJ"USW*/I^IKx.KVuXH+Dѐi.z&*)`iNC {ղu4][DC)"4¾q9Z|\%M~IKa35߷?fcŕtC8c*\IJn.dY?<,q0qg`w>okv藏Ex͂/Y_>uĺرg‘ g.,\Ypѯcg:7]Tw͎IfaҹYcooYe{,Y8pf• Py/Eu_je&}Ym4Fss`c].t2 ,X8paD:4H՝lcYtrc¤/Y8pd™ Wn,'B՗2]ˋPFܯF rr|M,hI`'B.hʩغ*Y|nҪX>,47ܧJTʷO;.*LiKZtn=bL䱆PXRC;l<:?dUv&3?VvzGnlpUc)v8Սm9U BؿP||m &{%,2ޟ 7Q޷`7-^>\<סs9m)ym:޻M0Cb#mNl0 68jå66\kXjí6؍6H=Q ^\Q% £zo:6iT2]]CpjxzN{k^6vQG<3"Ԛ`m4Ƣ-;Cͫ,MOwVAHo^cVָni|DqkmOa8,Mf.-Kiv) qC6A d8$aeaeaea}g8,&g ]L@tW ΃s9<~c>U3NHNUi\$oM}4Vy~zt=G7٨T=$k6oR hmʍ] R^Y~֫s:wX*:Mq2Sa]>?8P/Oeӡbadj%`Xʛ0̞%eA l0$!$ aX`X`X`XߢÔk: sfT7aX< 0,Mkǘ+oƿbVmMxua]ǝ> ʚyIȭ="\@i^93VO¯hB??DD$+F",` s~AN$onŸO ":~w;c49LGB§x `a)o0{XXJYB6A d,$daecaecaeca} S toųRdaI*ps)0sGUc (#!}!`cw# n;#? 5Z},BI Bouc]I7:E0.v`tg?"4{xwCC59:r A|ڥ*CCi#"3J@L9KO@,M fK2 D6 A d@ s@ s@ s@o D$ie48x8Xw)Ya yd΍KG* o`e"4xOdhX~X;')`.m{4X5vHcRj~Ri2u'vuBW`v\Yr<=8M3R a4ncgıaWD:?ؾ#7 jmGvK1ߝC  A!L5SΙfp$p(o"dORJ z|"D6$A" dH ç)Ǔ_H^I[@KSZ a^@dI6J,➈f8ݖ:G!E#/"-lس_!CJ/{oĈZocq6: t8Msl) O|]CT_6' xZ Qp:L'1ʋ_ o!+sOS`r} W, ÕRl?_)|}OdCCg[ە`tNí5rږҘMe!5APۭhn8koi埋 rnRWR=D;@V-W#X? /dxW"b?x#=2T~{GX3Qp /?ʣǨt]tҽQT#a,ٲ\K,om'NJ{)tIJ"USW*/I^IKx.KVuXGvo7 7+AtPhzDz dپގQ+/P LSx.w ~ZaESV 2>fXPt@1$\pVUW擉.#ؒ6UrkHۆDЅAk`A^>O/_x}>Qtn~o5<^W}_~O=p˿^_ƣ+ ӄHt<z'$1AGP 3G\>8>c֣X,|'N!Džw\t\,mO}sqx\R~L33*<')QHOSJ҉^鱓H>M .+j7P3ߪE¶c0ǍRħrf;gJLlP*0S"O枀ZA ![%.R(zy9~ҏqL~"O E1ϕ~!8G8~=<rM*DX"ݏ+62]8ԛIB>SBO<yaXe6vsU?Ddjmtbh71š51febEcEK_jō+MTK{'¬ 9(է:NYy]K.g2;^g@鶶uT@#ts0<;Veƺ]1Ob 3kM(縁6SuF=[ ^ttcܑ 9\L60BH52nH'c*"I'dK ۪5 ָ6ʇf 2DaFG`+kIp3t̖U)pPͼ9pC!"L9WT&q1O3!э9i)_38tۅs}Z{"tXE~2}eUq:Vemޯeu5AzOל8,ӊӴ49;uMĂDc6go{ĺ4oo~cwK %e E_v3l'*Z >Dݰ_J+zX)nԍzuU+^),*NQv? /E6I1\WkGFmԮ{RAUjҠoF~jԀn6RFE/.5Z6a}4Jr7PK!q xl/styles.xmlYmo8~+Ӽ@mӵ'W8`c#taOo$TbǞy'Jj;R>k | +1>ķOWU1#X`why]΢;٥rt|+cA[ ;6\ 7juW$ew/1G,ľ?3oO"F|WU_.8gUq ={xQkgQS%+"IF>Q[Ρ@f:_lY̙R 8%1|Y?HJg9'}ʈ}z'(/\7IY>?tcÎn;h?7fgܗ >v`p&VW}hhCSvr= [A4'ޫ7t|SpG(}U{ NE8'?PK! FV<xl/sharedStrings.xmlRKN0#q˫N+PJaSULR7OLJ8 K܄4 PK$,y3cO<ңr6nę+[&n^pvYD>LbDb!b—D@,v]%m,7@KRJ2Z\PՖ? UH/i*)Si Jc -:=h6c!\o ~PƐ=P~@fb)OMQͼ [.X>.*-[N89^Uă[oi/gY 3g͔&Mx`~iStsF*f!h|5`?}PK!횢_wdocProps/core.xml (_K0Cɳm#؋UbrU4$V7|LιsI<, oL B:AOܟ X&+* ڃA"JÃhIU6*( C:qUYwk`kQq fnG.Z (AZI@ׂ.͟r,sW!)[Nݟ&u]_U\6Xp50[tμ(b|5{, 3; [ʛ[›s&c^iKuO\Lڕ:*σY6GiFC?$>!Y8ᘆ&|(y%^dBGcE'# msPK!_U {docProps/app.xml (QO0'"SrZE {Kcؖ}9H19.Jhtvی=oNI\UBR|<2I,a1c%_pZ$6* x [hqK|v6Y_q͝neX++.+(yTXrX&; cko^bUx,T !!A[)P hr!A+pƒ XQ"`k]\y %'pf.!ƶ@cč {RA<w =o|~J= :M??z6;7_KW{eQc_o܍"x_qRK 9$}T"R-BoIN/&Y('PK-!Jsm([Content_Types].xmlPK-!U0#L _rels/.relsPK-!A7t xl/workbook.xmlPK-![ a xl/_rels/workbook.xml.relsPK-!pzWIC xl/worksheets/sheet1.xmlPK-! )6FmCpxl/worksheets/sheet2.xmlPK-!+ RF_reg") ## RF_nat.lim expect_error(analyse_IRSAR.RF(IRSAR.RF.Data, RF_nat.lim = "error"), "'RF_nat.lim' should be of class 'numeric' or 'integer'") expect_warning(analyse_IRSAR.RF(IRSAR.RF.Data, RF_nat.lim = 6), "'RF_nat.lim' out of bounds, reset to") ## RF_reg.lim expect_error(analyse_IRSAR.RF(IRSAR.RF.Data, RF_reg.lim = "error"), "'RF_reg.lim' should be of class 'numeric' or 'integer'") expect_warning(analyse_IRSAR.RF(IRSAR.RF.Data, RF_reg.lim = 2000), "'RF_reg.lim' out of bounds, reset to") expect_error(analyse_IRSAR.RF(IRSAR.RF.Data, RF_reg.lim = 521), "'RF_reg.lim' defines too short an interval and it's not") expect_error(analyse_IRSAR.RF(IRSAR.RF.Data, RF_reg.lim = 520), "No sliding space left after limitations were applied") suppressWarnings( # FIXME(mcol): lmdif: info = -1. Number of iterations has reached `maxiter' == 50. expect_warning(analyse_IRSAR.RF(IRSAR.RF.Data, RF_reg.lim = c(3, 6)), "'RF_reg.lim' defines too short an interval, reset to") ) ## curves of the same length expect_error(analyse_IRSAR.RF(set_RLum("RLum.Analysis", records = list(IRSAR.RF.Data[[1]], IRSAR.RF.Data[[1]])), method = "VSLIDE"), "There is no further sliding space left") SW({ expect_warning(analyse_IRSAR.RF(IRSAR.RF.Data, method_control = list(unknown = "test")), "'unknown' not supported for 'method_control'") ## disable test that produces this error on CI: ## Error in `.check_ncores(length(names))`: 4 simultaneous processes spawned if (FALSE) { expect_warning(analyse_IRSAR.RF(IRSAR.RF.Data, method = "VSLIDE", method_control = list(cores = 10000)), "Number of cores limited to the maximum available") } ## vslide_range expect_error(analyse_IRSAR.RF(IRSAR.RF.Data, method = "VSLIDE", method_control = list(vslide_range = FALSE)), "'vslide_range' in 'method_control' should be of class") expect_error(analyse_IRSAR.RF(IRSAR.RF.Data, method = "VSLIDE", method_control = list(vslide_range = "error")), "'vslide_range' in 'method_control' should be either 'auto'") expect_warning(analyse_IRSAR.RF(IRSAR.RF.Data, method = "VSLIDE", method_control = list(vslide_range = 1:4)), "'vslide_range' in 'method_control' has more than 2 elements") ## num_slide_windows expect_error(analyse_IRSAR.RF(IRSAR.RF.Data, method = "VSLIDE", method_control = list(num_slide_windows = NA)), "'num_slide_windows' in 'method_control' should be a positive") expect_warning(analyse_IRSAR.RF(IRSAR.RF.Data, method = "VSLIDE", method_control = list(num_slide_windows = 20)), "should be between 1 and 10, reset to 10") expect_message(analyse_IRSAR.RF(IRSAR.RF.Data, method = "VSLIDE", method_control = list(cores = "4")), "Invalid value for control argument 'cores'") }) ## deprecated option expect_warning(analyse_IRSAR.RF(IRSAR.RF.Data, verbose = FALSE, method.control = list(cores = 1)), "'method.control' is deprecated, use 'method_control'") }) test_that("check class and length of output", { testthat::skip_on_cran() set.seed(1) expect_snapshot_RLum( results_fit <- analyse_IRSAR.RF(IRSAR.RF.Data, method = "FIT", plot = TRUE)) expect_warning(expect_snapshot_RLum( results_slide <- analyse_IRSAR.RF(IRSAR.RF.Data, method = "SLIDE", plot = TRUE, n.MC = NULL)), "Narrow density distribution, no density distribution plotted") SW({ expect_snapshot_RLum( results_slide_alt <- analyse_IRSAR.RF( object = IRSAR.RF.Data, plot = FALSE, method = "SLIDE", n.MC = 10, method_control = list(vslide_range = 'auto', trace_vslide = TRUE, num_slide_windows = 10), txtProgressBar = FALSE ) ) expect_snapshot_RLum( results_slide_alt2 <- analyse_IRSAR.RF( object = IRSAR.RF.Data, plot = FALSE, method = "VSLIDE", n.MC = 10, method_control = list(vslide_range = 'auto', trace_vslide = FALSE, num_slide_windows = 10), txtProgressBar = FALSE ) ) }) expect_snapshot_RLum( analyse_IRSAR.RF( object = IRSAR.RF.Data, method = "None", n.MC = 10, txtProgressBar = FALSE ) ) expect_s3_class(results_fit$fit, class = "nls") expect_s3_class(results_slide$fit, class = "nls") }) test_that("test controlled crash conditions", { testthat::skip_on_cran() ##the sliding range should not exceed a certain value ... test it expect_error( analyse_IRSAR.RF( object = IRSAR.RF.Data, method = "SLIDE", method_control = list(vslide_range = c(0,1e+07)), ), regexp = "[:::src_analyse_IRSAR_SRS()] 'vslide_range' exceeded maximum size (1e+07)!", fixed = TRUE) }) test_that("test support for IR-RF data", { testthat::skip_on_cran() ## get needed data file <- system.file("extdata", "RF_file.rf", package = "Luminescence") temp <- read_RF2R(file, verbose = FALSE) SW({ expect_warning(expect_s4_class( analyse_IRSAR.RF(object = temp[1:3], method = "SLIDE", cex = 1.1, xlim = c(750, 9000), ylim = c(640, 655), plot_reduced = TRUE, n.MC = 1), "RLum.Results"), "Narrow density distribution, no density distribution plotted") }) }) test_that("test edge cases", { testthat::skip_on_cran() data(ExampleData.RLum.Analysis, envir = environment()) RF_nat <- RF_reg <- IRSAR.RF.Data[[2]] RF_reg@data[,2] <- runif(length(RF_reg@data[,2]), 0.007557956, 0.05377426 ) RF_nat@data[,2] <- runif(length(RF_nat@data[,2]), 65.4, 76.7) RF_nat@data <- RF_nat@data[1:50,] RF_nat@info <- list(startDate = "20210101150845") object <- set_RLum("RLum.Analysis", records = list(RF_nat, RF_reg)) SW({ expect_warning(expect_s4_class(analyse_IRSAR.RF( list(object), method = "SLIDE", method_control = list(vslide_range = 'auto', correct_onset = FALSE, show_fit = TRUE, trace = TRUE, n.MC = 2, cores = 2), RF_nat.lim = 2, RF_reg.lim = 2, plot = TRUE, main = "Title", mtext = "Subtitle", log = "x", txtProgressBar = FALSE), "RLum.Results"), "Threshold exceeded for: 'curves_ratio'") }) ## this RF_nat.lim after ## 'length = 2' in coercion to 'logical(1)' error expect_s4_class(suppressWarnings(analyse_IRSAR.RF( object, method = "SLIDE", method_control = list(vslide_range = 'auto', correct_onset = FALSE), RF_nat.lim = c(10,100), #RF_reg.lim = c(), plot = TRUE, txtProgressBar = FALSE )), "RLum.Results") expect_s4_class(suppressWarnings(analyse_IRSAR.RF( object, method = "FIT", mtext = "FIT method", plot = TRUE, txtProgressBar = FALSE )), "RLum.Results") ## test parameters values only set for coverage SW({ expect_s4_class(analyse_IRSAR.RF( object, method = "SLIDE", method_control = list(vslide_range = 'auto', correct_onset = FALSE), #RF_nat.lim = c(10,100), RF_reg.lim = c(10,100), plot = TRUE, test_parameters = list(curves_ratio = NULL, intersection_ratio = 5, residuals_slope = 1, dynamic_ratio = 1, lambda = 0, beta = 1e-4, delta.phi = 1e-4), txtProgressBar = FALSE ), "RLum.Results") }) }) test_that("regression tests", { testthat::skip_on_cran() ## issue 372 expect_silent(analyse_IRSAR.RF(list(IRSAR.RF.Data), plot = FALSE, method_control = list(maxiter = 10))) ## issue 382 expect_silent(analyse_IRSAR.RF(list(IRSAR.RF.Data), plot = FALSE)) }) Luminescence/tests/testthat/test_merge_RLum.Results.R0000644000176200001440000000312314762554470022563 0ustar liggesusersdata(ExampleData.DeValues, envir = environment()) res <- calc_CentralDose(ExampleData.DeValues$CA1, plot = FALSE, verbose = FALSE) test_that("input validation", { testthat::skip_on_cran() expect_error(merge_RLum.Results("error"), "'objects' should be of class 'list'") expect_error(merge_RLum.Results(list(res, "error")), "All elements of 'object' should be of class 'RLum.Results'") expect_message(expect_null(merge_RLum.Results(list())), "'objects' contains no data, NULL returned") res2 <- res res2@originator <- "unknown" expect_error(merge_RLum.Results(list(res, res2)), "Objects cannot be merged, different 'RLum.Results' originators found") res2 <- res res2@data[[1]][, 2] <- NULL expect_error(merge_RLum.Results(list(res, res2)), "Objects cannot be merged, different number of columns") }) test_that("Merge RLum.Results", { testthat::skip_on_cran() ## check whether arguments are retained a <- array(runif(300, 0,255), c(10,10,3)) roi <- matrix(c(2.,4,2,5,6,7,3,1,1), ncol = 3) t <- expect_s4_class(merge_RLum.Results(lapply(list(roi, roi, roi), function(x) extract_ROI(a, x))), "RLum.Results") expect_length(names(attributes(t@data$roi_summary)), 4) a <- merge_RLum.Results(list(res, res)) expect_s3_class(a@data$summary, "data.frame") empty <- set_RLum("RLum.Results") expect_s4_class(merge_RLum.Results(list(empty)), "RLum.Results") expect_s4_class(merge_RLum.Results(list(empty, empty)), "RLum.Results") }) Luminescence/tests/testthat/test_replicate_RLum.R0000644000176200001440000000042614762554470021777 0ustar liggesuserstest_that("Test replication of RLum-objects", { testthat::skip_on_cran() data(ExampleData.RLum.Analysis, envir = environment()) expect_silent(results <- rep(IRSAR.RF.Data[[1]], 5)) expect_silent(rep(IRSAR.RF.Data[[1]])) ##check expect_equal(length(results),5) }) Luminescence/tests/testthat/test_plot_RLum.Data.Image.R0000644000176200001440000000267114762554470022702 0ustar liggesusers## create dataset to test image <- as(array(rnorm(1000), dim = c(10,10,10)), "RLum.Data.Image") test_that("input validation", { testthat::skip_on_cran() expect_error(plot_RLum.Data.Image("image"), "[plot_RLum.Data.Image()] 'object' should be of class 'RLum.Data.Image'", fixed = TRUE) expect_error(plot_RLum.Data.Image(image, plot.type = "error"), "[plot_RLum.Data.Image()] 'plot.type' should be one of 'plot.raster'", fixed = TRUE) }) test_that("Test image plotting", { testthat::skip_on_cran() ## plot.raster --- expect_silent(plot_RLum.Data.Image(image, plot.type = "plot.raster")) expect_silent(plot_RLum.Data.Image(image, plot.type = "plot.raster", stretch = NULL)) expect_silent(plot_RLum.Data.Image(image, plot.type = "plot.raster", stretch = "lin")) expect_silent(plot_RLum.Data.Image(image, plot.type = "plot.raster", frames = c(2, 4))) ## check global z-scale expect_silent(plot_RLum.Data.Image(image, plot.type = "plot.raster", stretch = NULL, zlim_image = c(0,1))) ## contour --- expect_silent(plot_RLum.Data.Image(image, plot.type = "contour", stretch = NULL)) ## empty image expect_null(plot_RLum.Data.Image(set_RLum("RLum.Data.Image"))) }) Luminescence/tests/testthat/test_analyse_Al2O3C_ITC.R0000644000176200001440000000303214762554470022222 0ustar liggesusers##load data data(ExampleData.Al2O3C, envir = environment()) test_that("input validation", { skip_on_cran() a <- set_RLum(class = "RLum.Data.Curve", recordType = "OSL", data = matrix(1:20, ncol = 2)) b <- set_RLum(class = "RLum.Data.Curve", recordType = "TL") object <- set_RLum(class = "RLum.Analysis", records = list(a,b)) expect_error(analyse_Al2O3C_ITC("test"), "'object' should be of class 'RLum.Analysis'") expect_error(analyse_Al2O3C_ITC(list(data_ITC, "test")), "All elements of 'object' should be of class 'RLum.Analysis'") expect_error(analyse_Al2O3C_ITC(data_ITC, method_control = "EXP"), "'method_control' should be of class 'list'") # expect_error(analyse_Al2O3C_ITC(data_ITC, dose_points = list(NA)), # "At least three regeneration points are required") XXX! SW({ expect_warning(analyse_Al2O3C_ITC(data_ITC, signal_integral = 0), "Input for 'signal_integral' corrected to 1:99") }) }) test_that("Full check", { skip_on_cran() ##run analysis SW({ expect_s4_class(analyse_Al2O3C_ITC(data_ITC), "RLum.Results") expect_s4_class(analyse_Al2O3C_ITC(list(data_ITC), signal_integral = 2, method_control = list(fit.method = "EXP")), "RLum.Results") expect_warning(expect_null(analyse_Al2O3C_ITC(list(data_ITC), dose_points = list(2))), "Nothing was merged as the object list was found to be empty") }) }) Luminescence/tests/testthat/test_plot_SingleGrainDisc.R0000644000176200001440000000561114762554470023134 0ustar liggesusers## load data obj <- set_RLum(class = "RLum.Results", data = list(vn_values = rep(x = c(1,2), each = 50))) test_that("input validation", { testthat::skip_on_cran() expect_error(plot_SingleGrainDisc("error"), "'object' should be of class 'RLum.Results', 'numeric' or") expect_error(plot_SingleGrainDisc(1:50), "'object' should have length 100") expect_error(plot_SingleGrainDisc(set_RLum(class = "RLum.Results", data = list(vn_values = rep(NA, 100)))), "'object' should contain at least one non-NA value") expect_error(plot_SingleGrainDisc(obj, show_coordinates = "error"), "'show_coordinates' should be a single logical value") expect_error(plot_SingleGrainDisc(obj, show_location_ids = "error"), "'show_location_ids' should be a single logical value") expect_error(plot_SingleGrainDisc(obj, show_neighbours = "error"), "'show_neighbours' should be a single logical value") expect_error(plot_SingleGrainDisc(obj, df_neighbours = "error"), "'df_neighbours' should be of class 'data.frame'") expect_error(plot_SingleGrainDisc(obj, df_neighbours = data.frame()), "'df_neighbours' should be a data frame with 3 columns") expect_error(plot_SingleGrainDisc(obj, ignore_borders = "error"), "'ignore_borders' should be a single logical value") expect_error(plot_SingleGrainDisc(obj, show_positioning_holes = "error"), "'show_positioning_holes' should be a single logical value") expect_error(plot_SingleGrainDisc(obj, str_transform = "error"), "'str_transform' should be one of 'sqrt', 'lin' or 'log'") expect_error(plot_SingleGrainDisc(obj, df_neighbours = iris[0, 1:3], show_neighbour = TRUE), "'show_neighbours' is TRUE but 'df_neighbours' is empty") }) test_that("check functionality", { testthat::skip_on_cran() expect_silent(plot_SingleGrainDisc(obj)) expect_silent(plot_SingleGrainDisc(1:100, show_location_ids = TRUE, show_neighbours = TRUE, show_positioning_holes = FALSE, legend = TRUE)) expect_silent(plot_SingleGrainDisc(1:100, show_neighbours = TRUE, ignore_borders = TRUE)) expect_silent(plot_SingleGrainDisc(c(rep(NA, 99), 100), show_coordinates = TRUE)) expect_silent(plot_SingleGrainDisc(obj, str_transform = "lin")) expect_silent(plot_SingleGrainDisc(obj, str_transform = "log", col = "cornflowerblue", pch = 16)) obj.na <- obj obj.na@data$vn_values[c(24, 73)] <- NA expect_silent(plot_SingleGrainDisc(obj.na, legend = TRUE)) }) Luminescence/tests/testthat/setup.R0000644000176200001440000000553514762554470017177 0ustar liggesusers## -------------------------------------------------------------------------- ## helper functions for snapshotting ## ## the ... can be used to set the tolerance expect_snapshot_RLum <- function(object, ...) { object@.uid <- NA_character_ object@.pid <- NA_character_ object@info$call <- NULL if ("data" %in% slotNames(object)) { if ("fit" %in% names(object@data)) object@data$fit <- NULL if ("fits" %in% names(object@data)) { # calc_Huntley2006() if ("simulated" %in% names(object@data$fits)) { object@data$fits$simulated$m <- NULL object@data$fits$simulated$call <- NULL object@data$fits$simulated$weights <- NULL # for macos/windows CI } if ("measured" %in% names(object@data$fits)) { object@data$fits$measured$m <- NULL object@data$fits$measured$call <- NULL } if ("unfaded" %in% names(object@data$fits)) { object@data$fits$unfaded$m <- NULL object@data$fits$unfaded$call <- NULL object@data$fits$unfaded$convInfo$finIter <- NULL # for macos } } if ("data" %in% names(object@data)) object@data$data$UID <- NULL if ("Fit" %in% names(object@data)) object@data$Fit <- NULL if ("Formula" %in% names(object@data)) object@data$Formula <- NULL if ("LnLxTnTx.table" %in% names(object@data)) object@data$LnLxTnTx.table$UID <- NULL if ("rejection.criteria" %in% names(object@data)) object@data$rejection.criteria$UID <- NULL if ("test_parameters" %in% names(object@data)) object@data$test_parameters$UID <- NULL ## This should be removed once we do not run coverage ## anymore on R 4.3 (issue #312) if ("De" %in% names(object@data)) { object@data$De$HPDI95_L <- NULL object@data$De$HPDI95_U <- NULL } ## This should be removed once we do not run coverage ## anymore on R 4.3 (pull #420) if ("MC" %in% names(object@data) && "kde" %in% names(object@data$MC)) { if (!is.null(object@data$MC$kde$old.coords)) object@data$MC$kde$old.coords <- NULL } } if ("info" %in% slotNames(object)) { if ("call" %in% names(object@info)) { object@info$call <- NULL } } if ("records" %in% slotNames(object)) { for (idx in seq_along(object@records)) { object@records[[idx]]@info$args <- NULL object@records[[idx]]@info$call <- NULL object@records[[idx]]@.uid <- NA_character_ object@records[[idx]]@.pid <- NA_character_ } } expect_snapshot_value(object, style = "json2", ...) } ## wrapper for Risoe.BINfileData objects expect_snapshot_Risoe <- function(object, ...) { attr(object, ".S3Class") <- NULL expect_snapshot_value(object, style = "json2", ...) } ## wrapper for plain R objects, such as lists, data.frames, etc expect_snapshot_plain <- function(object, ...) { expect_snapshot_value(object, style = "json2", ...) } Luminescence/tests/testthat/test_smooth_RLum.R0000644000176200001440000000213114762554470021333 0ustar liggesusersdata(ExampleData.CW_OSL_Curve, envir = environment()) temp <- set_RLum( class = "RLum.Data.Curve", recordType = "OSL", data = as.matrix(ExampleData.CW_OSL_Curve) ) ##create RLum.Analysis object temp_analysis <- set_RLum("RLum.Analysis", records = list(temp, temp)) test_that("check class and length of output", { testthat::skip_on_cran() ##standard tests expect_s4_class(temp, class = "RLum.Data.Curve") expect_snapshot_RLum(smooth_RLum(temp)) ##test on a list ##RLum list expect_type(smooth_RLum(list(temp, temp)), "list") ##normal list expect_type(smooth_RLum(list(a = 1, b = 2)), "list") ##test on an RLum.Analysis-object expect_s4_class(smooth_RLum(temp_analysis), "RLum.Analysis") }) test_that("snapshot tests", { testthat::skip_on_cran() small <-set_RLum(class = "RLum.Data.Curve", recordType = "OSL", data = as.matrix(ExampleData.CW_OSL_Curve[1:150, ])) expect_snapshot_RLum(smooth_RLum(small, k = 5)) expect_snapshot_RLum(smooth_RLum(small, k = 10)) expect_snapshot_RLum(smooth_RLum(small, k = 11, method = "median")) }) Luminescence/tests/testthat/test_use_DRAC.R0000644000176200001440000000724714762554470020465 0ustar liggesuserstest_that("input validation", { testthat::skip_on_cran() ## wrong file name expect_error(use_DRAC("error"), "[use_DRAC()] Input file does not exist", fixed = TRUE) expect_error(use_DRAC(NA), "'file' should be of class 'character', 'DRAC.list' or") expect_error(use_DRAC(character(0)), "'file' cannot be an empty character") expect_error(use_DRAC(letters), "'file' should have length 1") ## CSV file with the wrong header fake <- data.table::fread(test_path("_data/DRAC_Input_Template.csv")) fake[1, 1] <- "error" fake.csv <- tempfile(fileext = ".csv") data.table::fwrite(fake, file = fake.csv) expect_error(use_DRAC(fake.csv), "you are not using the original DRAC v1.2 CSV template") ## exceed allowed limit SW({ expect_warning(input <- template_DRAC(preset = "DRAC-example_quartz", nrow = 5001), "More than 5000 datasets might not be supported") }) expect_error(use_DRAC(input), "The limit of allowed datasets is 5000") ## citation style expect_error(use_DRAC(template_DRAC(preset = "DRAC-example_quartz", notification = FALSE), citation_style = "error"), "[use_DRAC()] 'citation_style' should be one of", fixed = TRUE) }) ##Full check test_that("Test DRAC", { testthat::skip_on_cran() ##use manual example ##create template SW({ input <- template_DRAC(preset = "DRAC-example_quartz") }) ##test expect_s3_class(input, "DRAC.list") ##fill (which also tests the methods) input$`Project ID` <- "DRAC-Example" input$`Sample ID` <- "Quartz" input$`Conversion factors` <- "AdamiecAitken1998" input$`External U (ppm)` <- 3.4 input$`errExternal U (ppm)` <- 0.51 input$`External Th (ppm)` <- 14.47 input$`errExternal Th (ppm)` <- 1.69 input$`External K (%)` <- 1.2 input$`errExternal K (%)` <- 0.14 input$`Calculate external Rb from K conc?` <- "Y" input$`Calculate internal Rb from K conc?` <- "Y" input$`Scale gammadoserate at shallow depths?` <- "Y" input$`Grain size min (microns)` <- 90L input$`Grain size max (microns)` <- 125L input$`Water content ((wet weight - dry weight)/dry weight) %` <- 5 input$`errWater content %` <- 2 input$`Depth (m)` <- 2.2 input$`errDepth (m)` <- 0.22 input$`Overburden density (g cm-3)` <- 1.8 input$`errOverburden density (g cm-3)` <- 0.1 input$`Latitude (decimal degrees)` <- 30.0000 input$`Longitude (decimal degrees)` <- 70.0000 input$`Altitude (m)` <- 150 input$`De (Gy)` <- 20 input$`errDe (Gy)` <- 0.2 ##run DRAC SW({ output <- expect_s4_class(use_DRAC(input), "RLum.Results") }) ## print method for DRAC.highlights expect_output(print(output$DRAC$highlights), regexp = "TO:GP = errAge") ## DRAC.data.frame input.df <- as.data.frame(input) class(input.df) <- c("data.frame", "DRAC.data.frame") expect_s4_class(use_DRAC(input.df, verbose = FALSE), "RLum.Results") ## CSV input expect_s4_class(use_DRAC(test_path("_data/DRAC_Input_Template.csv"), verbose = FALSE), "RLum.Results") ## XLS input file.create(fake.xls <- tempfile(fileext = ".xls")) expect_error(use_DRAC(fake.xls), "XLS/XLSX format no longer supported, use CSV instead") ## communicate with non sufficient dataset SW({ t <- template_DRAC(notification = FALSE) expect_error(use_DRAC(t), "We got a response from the server") print("N") }) SW({ ## communicate with fake url expect_error(use_DRAC(t, url = "iamnotvali8793270942hd.valid"), "Transmission failed with HTTP status code: URL invalid") }) }) Luminescence/tests/testthat/test_apply_CosmicRayRemoval.R0000644000176200001440000000560114762554470023514 0ustar liggesusers## load data data(ExampleData.XSYG, envir = environment()) test_that("input validation", { testthat::skip_on_cran() expect_error(apply_CosmicRayRemoval("error"), "'object' should be of class 'RLum.Data.Spectrum'") expect_error(apply_CosmicRayRemoval(TL.Spectrum, method = "error"), "'method' should be one of 'smooth', 'smooth.spline', 'smooth_RLum' or 'Pych'", fixed = TRUE) expect_error(apply_CosmicRayRemoval(set_RLum("RLum.Data.Spectrum"), "'object' contains no data")) }) test_that("check function", { testthat::skip_on_cran() ##run basic tests expect_silent(apply_CosmicRayRemoval(TL.Spectrum, method = "Pych")) expect_silent(apply_CosmicRayRemoval(TL.Spectrum, method = "smooth")) expect_silent(apply_CosmicRayRemoval(TL.Spectrum, method = "smooth_RLum")) expect_silent(apply_CosmicRayRemoval(TL.Spectrum, method = "smooth_RLum", MARGIN = 1, k = 0)) expect_silent(apply_CosmicRayRemoval(TL.Spectrum, method = "smooth_RLum", MARGIN = 1, k = 4)) expect_silent(apply_CosmicRayRemoval(TL.Spectrum, method = "smooth_RLum", MARGIN = 1, k = 10000)) expect_silent(apply_CosmicRayRemoval(TL.Spectrum, method = "smooth_RLum", MARGIN = 2, k = 0)) expect_silent(apply_CosmicRayRemoval(TL.Spectrum, method = "smooth_RLum", MARGIN = 2, k = 4)) expect_silent(apply_CosmicRayRemoval(TL.Spectrum, method = "smooth_RLum", MARGIN = 2, k = 10000)) expect_silent(apply_CosmicRayRemoval(TL.Spectrum, method = "smooth_RLum", k = 10)) expect_silent(apply_CosmicRayRemoval(TL.Spectrum, method = "smooth", MARGIN = 1)) expect_output(apply_CosmicRayRemoval(TL.Spectrum, method = "Pych", MARGIN = 2, verbose = TRUE, plot = TRUE)) expect_silent(apply_CosmicRayRemoval(TL.Spectrum, method = "Pych", method.Pych.smoothing = 2, method.Pych.threshold_factor = 2)) expect_silent(apply_CosmicRayRemoval(TL.Spectrum, method = "smooth.spline", kind = "3RS3R", twiceit = TRUE, spar = NULL, MARGIN = 1)) ##construct objects for different tests RLum_list <- list(TL.Spectrum) RLum.Analysis <- set_RLum("RLum.Analysis", records = RLum_list) RLum.Analysis_list <- list(RLum.Analysis) RLum_list_mixed <- list(TL.Spectrum, set_RLum("RLum.Data.Curve")) RLum.Analysis_mixed <- set_RLum("RLum.Analysis", records = RLum_list_mixed ) RLum.Analysis_mixed_list <- list(RLum.Analysis_mixed) ##run tests expect_type(apply_CosmicRayRemoval(RLum_list),"list") expect_s4_class(apply_CosmicRayRemoval(RLum.Analysis), class = "RLum.Analysis") expect_type(apply_CosmicRayRemoval(RLum.Analysis_list), "list") expect_error(apply_CosmicRayRemoval(RLum_list_mixed)) expect_s4_class(apply_CosmicRayRemoval(RLum.Analysis_mixed), class = "RLum.Analysis") expect_type(apply_CosmicRayRemoval(RLum.Analysis_mixed_list), "list") }) Luminescence/tests/testthat.R0000644000176200001440000000010414762554470016022 0ustar liggesuserslibrary(testthat) library(Luminescence) test_check("Luminescence") Luminescence/tests/spelling.R0000644000176200001440000000022214762554470016000 0ustar liggesusersif (requireNamespace('spelling', quietly = TRUE)) spelling::spell_check_test( vignettes = TRUE, error = FALSE, skip_on_cran = TRUE) Luminescence/MD50000644000176200001440000011004114762615137013205 0ustar liggesusers31e31953d7040a1ae622100547c2fa4b *DESCRIPTION f7ace72d6806156098a50a0535e6490b *NAMESPACE 3b16947a33a3c98238c9c44f9f394a42 *NEWS.md 4e669852e5fc2602399554a2b8f372c9 *R/Analyse_SAR.OSLdata.R 833947d21d0a2d9256813264d7785435 *R/Luminescence-generics.R ef35621d67ffe976c13b61b73e6016ed *R/Luminescence-package.R ac2ed9856b30c415d9c5b684145db84a *R/RLum-class.R bd896ced5f532bc03d83ba2f8cf13bcf *R/RLum.Analysis-class.R cd5f3ab8fcb1a7f01f2757463f0bbb00 *R/RLum.Data-class.R 8f3833e45afeba26eb62c97a4d536fa3 *R/RLum.Data.Curve-class.R 77e0d30802df8626a852647447f51fdb *R/RLum.Data.Image-class.R e5071c44b93e152fc7ae0147a8832db6 *R/RLum.Data.Spectrum-class.R e378d567d9eeeaca11075db1ae2846ec *R/RLum.Results-class.R 6674eaf9e857e951209ba071b3a678f3 *R/RcppExports.R 0fb638e3b381700f338d91cb95ca72d3 *R/Risoe.BINfileData-class.R 41255a768ea332d30766f3391cdfa591 *R/Risoe.BINfileData2RLum.Analysis.R 8300f081c08debd6b4398ace05eae79d *R/Risoe.BINfileData2RLum.Data.Curve.R a2eff5cd8611f72aced5997575491296 *R/addins_RLum.R 05bae8333aaaf69e5555d3127484e89f *R/analyse_Al2O3C_CrossTalk.R 60a2c3121afeb8f89287ab932ad037b3 *R/analyse_Al2O3C_ITC.R c0814a7054ae84c7671c54378a97c6a7 *R/analyse_Al2O3C_Measurement.R 1f0e265c73ec1d39b5dbb303ef174cd1 *R/analyse_FadingMeasurement.R 9b9c6715ec05ad2e684007675474bb6c *R/analyse_IRSAR.RF.R 213bd31ac2a50728ba0156456fb3dc07 *R/analyse_SAR.CWOSL.R 1d93307c211726860df03e1a340d9e00 *R/analyse_SAR.TL.R d6bfd6e74230ecda587e3f532b0b223b *R/analyse_ThermochronometryData.R 8568c74bc5b2b6f01afc5172a6f22684 *R/analyse_baSAR.R 32ee191d1d7e07f4211a6a9c7db5c30f *R/analyse_pIRIRSequence.R 24faac5c5aa59806b74a64f8a4d31fc7 *R/analyse_portableOSL.R e41a4c266a63b31e61022a0fed62450c *R/apply_CosmicRayRemoval.R d896ddb3353e59e1e99f3f1427798416 *R/apply_Crosstalk.R f7dbf336c4419ab3244af2d5b3d7a38b *R/apply_EfficiencyCorrection.R 549896a99c8bc1aa824edba35b9ccfac *R/calc_AliquotSize.R 807091ca42add3b60947a4282ad771ba *R/calc_AverageDose.R 6f13fae309c37569b3cf235bba029036 *R/calc_CentralDose.R 749abb244f56ae740a534f6bf7c6414b *R/calc_CobbleDoseRate.R bbff9ce1926b4e75df1457fd97782b35 *R/calc_CommonDose.R aa4c2bde274521f74eb67b9171dad458 *R/calc_CosmicDoseRate.R f9d782a3851671a951f2147950554abb *R/calc_EED_Model.R 844d63e05cf076a26c2c94e110114fd3 *R/calc_FadingCorr.R e0d268a2b16c7bbcdc8868696dbf44f0 *R/calc_FastRatio.R d877ff46df2d50f58ed08b3982c0c238 *R/calc_FiniteMixture.R fcd38c2fd81a3c3656e7d29acf0d5a63 *R/calc_FuchsLang2001.R dbbc07153a0aa147e5d6131fb8e9232c *R/calc_HomogeneityTest.R c16ce41a831f88d21eeee2c671dc0306 *R/calc_Huntley2006.R c4ae13904bae5d808fb97dff88dd2011 *R/calc_IEU.R 6e3f06071d908aeaa0cb1edf777705ec *R/calc_Kars2008.R d7edd18092ec24140331f8b2654e3ef7 *R/calc_Lamothe2003.R 457a6bd65a8b66824ac9791418aacc03 *R/calc_MaxDose.R 1885684b32f54e358988065ddd9b47ba *R/calc_MinDose.R 89aa39e7aed926bd0b6ed256da943401 *R/calc_MoransI.R 34893c2ed899d7b9adb5e348f7b4072d *R/calc_OSLLxTxDecomposed.R 1f49e02fd5b69e881b7f24bc2aa3f999 *R/calc_OSLLxTxRatio.R c116a0fae7f23f05ce3a907176513dbf *R/calc_SourceDoseRate.R 2ecea742345a053f47d7e0f75743eeba *R/calc_Statistics.R 50c868151c313d25d952e576fe7acd0d *R/calc_TLLxTxRatio.R 76ce73d80d57341efbbf876fcb6e521c *R/calc_ThermalLifetime.R 58c3824981ee34e18fcb8c3b3ebff1ef *R/calc_WodaFuchs2008.R 07dadff36d664a22b1597f075ced2346 *R/calc_gSGC.R 61146498d9ffb6c4c6a5ea6244244c48 *R/calc_gSGC_feldspar.R eefd4d3b482967309fe536ff16f1e33b *R/combine_De_Dr.R 2aa99b8960e0d4e7204f881ca6a1d0f5 *R/convert_Activity2Concentration.R 9488053956b7c543a5a117011ab93933 *R/convert_BIN2CSV.R 4f9d2ccb1ada46d376fb05c9ac083bfe *R/convert_CW2pHMi.R 78321e56b8ba3f8814b673fbe2c29e8c *R/convert_CW2pLM.R 93ee3522e6ced914fe966670f94736ae *R/convert_CW2pLMi.R a99d198ad51b5236db64132129de79b6 *R/convert_CW2pPMi.R f953fe384274d3b692bccbf598472bed *R/convert_Concentration2DoseRate.R f6a2c26f23b5873c7fa2b72d41927687 *R/convert_Daybreak2CSV.R a1fcee62c21b72f34699c798573898cc *R/convert_PSL2CSV.R a15466657bc3962f3c694defcc5b0bad *R/convert_PSL2Risoe.BINfileData.R e125df8e81ca45f817b13933df82a68d *R/convert_RLum2Risoe.BINfileData.R 9e113d14a0dde77f15f5f5099241ce38 *R/convert_SG2MG.R ddebce576641b7faf483db6336f01df0 *R/convert_Second2Gray.R 77212804897d45d1aa65a23e8db658c3 *R/convert_Wavelength2Energy.R bc51018f11c289b135880357338a0c7e *R/convert_XSYG2CSV.R 96e8ae36d30169205f3b04cd8a5da3d8 *R/extract_IrradiationTimes.R ffd021ea4e4f4ca1766e5b7fd35bdd56 *R/extract_ROI.R 80da2649644941e9ba2aa49cb305e0ec *R/fit_CWCurve.R 11fd9edc7c8cd2d7cbad1dbe6a9bd7b9 *R/fit_DoseResponseCurve.R 6ddd3ad8efc682b189124c06a5acb756 *R/fit_EmissionSpectra.R ff46717949befd6ce0dd06fc2b359600 *R/fit_IsothermalHolding.R 33771a1df38aec830f87cef6d45be1ca *R/fit_LMCurve.R ce9016a93dfa1fb290b993045ee460ac *R/fit_OSLLifeTimes.R 0c06d4fa15e66f636253f13b584dbd3b *R/fit_SurfaceExposure.R 9e56837fe6e3c3a764598efdae9a4dff *R/fit_ThermalQuenching.R d4799a048bb44d293834464f2d937c7e *R/get_Layout.R 00e678330130fdf96af1054fbd155575 *R/get_Quote.R fd947c56470a6462fc0bcbf49b84daca *R/get_rightAnswer.R b5fea32bbd8f95cc92a2f43d0afd49f9 *R/github.R bf5f40bb6917c8b00b7b8cf540445711 *R/import_Data.R b21c1e15527c03d82a73902b107d925c *R/install_DevelopmentVersion.R 6394a1ebefbb282c2605ac08f2929aaa *R/internal_as.latex.table.R 80b006ebe3cfbd87a35750f7912c1b4f *R/internals_RLum.R a2b08200499e415d7007587a6f75838e *R/internals_Thermochronometry.R 8d1df36dd2e641ffe93cda385f271e22 *R/merge_RLum.Analysis.R f93096d6b38ca6060346bd24faae2bbc *R/merge_RLum.Data.Curve.R e0db4fbcd5a150423556f2c3c40e9e4d *R/merge_RLum.Data.Spectrum.R 86b682aa59c53d723a87f7d80c46d94c *R/merge_RLum.R fe723cc000311311b4742d8984c8dd0e *R/merge_RLum.Results.R 836278974e585e000f3c78f478570bf3 *R/merge_Risoe.BINfileData.R f59fa060b11b323d3ac0fb891ceb3cb0 *R/methods_DRAC.R 0bcf8350858c5dd7fcda44f4e7a6558d *R/methods_RLum.R 4af2a2eb06044cd65585ed1c89a297ed *R/plot_AbanicoPlot.R 60f45ae2f0daa649af321f6f127ee78a *R/plot_DRCSummary.R 68383d651af88e85e2aa94d3693ad231 *R/plot_DRTResults.R 221ccf393257e4484fe4947282ed21c9 *R/plot_DetPlot.R f777022d2b0c01b87ea951e5a09b7bcb *R/plot_DoseResponseCurve.R 517120603ed1e8de86475079cc4ef8b5 *R/plot_FilterCombinations.R 100241bdd314938adfee1424f7e7619f *R/plot_GrowthCurve.R 17d9e7e5599a7417d009037980d8be90 *R/plot_Histogram.R bf37dcf9d13e3c8f8f44a133d441979f *R/plot_KDE.R 670d53adba93ff0009b0268d2763f1a2 *R/plot_MoranScatterplot.R d8267f3ac160851a29720e3deb9c35b7 *R/plot_NRt.R 3e68c7c70193a58563c3dee520a5903c *R/plot_OSLAgeSummary.R d153dfb586c7b976b9674e3a998297be *R/plot_RLum.Analysis.R 3db81965b826be9c06766df9bb4e452c *R/plot_RLum.Data.Curve.R 3be9e9ed64a980380a93bfb08c939609 *R/plot_RLum.Data.Image.R ce1cfdd69fa14e6fcb0e4ac51570e566 *R/plot_RLum.Data.Spectrum.R 4890da2a7bfb07d71da07157abf88b49 *R/plot_RLum.R f219e8cd08990a78fd2dfbcfb072ecce *R/plot_RLum.Results.R 8cf6e91e1ab4d026ad2d69cc2ddc08f8 *R/plot_ROI.R 031774a6c6ec012d3953ce4c9ac541ca *R/plot_RadialPlot.R 540133c68c3a427b84531727783503a2 *R/plot_Risoe.BINfileData.R e7cd042a24952d741345a48ec147f6f9 *R/plot_SingleGrainDisc.R 3a0ca5b5aeba16096cea051ed1779ca2 *R/plot_ViolinPlot.R 02394ba70235a70d81cfaf0e44468513 *R/read_BIN2R.R 2b615103a369ca12263b8be311fbca69 *R/read_Daybreak2R.R 6bbaef5b5a08162123d05cefdf195f6f *R/read_HeliosOSL2R.R 172868e8ee6f91ff0cfabfbf7cb44ac1 *R/read_PSL2R.R d4961fcdda3797c4be10189d0b003c4d *R/read_RF2R.R 184e61e2d8ce86b1abb6e0dc9eaababb *R/read_SPE2R.R 1def2f1fe09e52e32acf7c10d9141fca *R/read_TIFF2R.R a8c3beee04e327e15bc5e220dacd2973 *R/read_XSYG2R.R 89d0c369f3b5cf3c239c44745c0df712 *R/report_RLum.R 0efe940e6f50874e0bdfd631948c999a *R/scale_GammaDose.R e1bf31943e935bc2f31c5e0c42472014 *R/subset_SingleGrainData.R 80f759321fda57e49f86ce386b2de638 *R/template_DRAC.R 06e6865a9b7e20e09a604a1b77c171bf *R/trim_RLum.Data.R 718bdec6e5b451f909538df8ab51ad64 *R/tune_Data.R 9c43d1f16eb3ce7198d2caa4ca971aff *R/use_DRAC.R c5bc5ba29a2c4e08809d6e2f56fb0c16 *R/utils_DRAC.R a682ccd6234f81a42cae840aebdda9b7 *R/verify_SingleGrainData.R 792898929508688141af5a7b636330a9 *R/write_R2BIN.R 00b1bd04da2cd474d9e450473a0bf0d8 *R/write_R2TIFF.R 45f83ca9624927dd7c866649adb5da79 *R/write_RLum2CSV.R d49b4dc974dc206e05e05885d680c342 *R/zzz.R 094f9e19118af335a76ae679e9f2f027 *README.md 76161b65639451c966be75488458b3c3 *build/partial.rdb 7796725c732766ec14612ee4b3016910 *build/vignette.rds ab9a2ca554dace598a6cf515647269fb *data/BaseDataSet.ConversionFactors.rda 3fd02aa03b62ed93d291df5585160c62 *data/BaseDataSet.CosmicDoseRate.rda 902b0e4d39fa28d1d35a17de092285cb *data/BaseDataSet.FractionalGammaDose.rda c97eec2563d8046daa99f4fc973d7f88 *data/BaseDataSet.GrainSizeAttenuation.rda 300a9f7f2b667aa572b23ffba3b5281f *data/ExampleData.Al2O3C.rda 9c8f76e70d6a022c14f9b9937a6e48b2 *data/ExampleData.BINfileData.rda 98b340cd13dfc0c89873bc8c53ec092c *data/ExampleData.CW_OSL_Curve.rda a6f4804e5b4677181635c7e396197f8e *data/ExampleData.CobbleData.rda 420acab318984756ac02db5396ca91b1 *data/ExampleData.DeValues.rda c3e0676c122950754bcaf1c9ceb1fb11 *data/ExampleData.Fading.rda cc538618675734cda21cd2f4aec30c35 *data/ExampleData.FittingLM.rda a194b7273caa95df091f6a0b32b1a0be *data/ExampleData.LxTxData.rda 0fb9b7fc02638049534e67c103251193 *data/ExampleData.LxTxOSLData.rda 3dd3661b20fcd5d8933e287f1f0a9ae0 *data/ExampleData.MortarData.rda af5f6dfb15646a13a093355407077247 *data/ExampleData.RLum.Analysis.rda 5b1ec3fefbdaf4d50d18af61481021a9 *data/ExampleData.RLum.Data.Image.rda 90a303d00d0678d2dc2419209cfd534a *data/ExampleData.ScaleGammaDose.rda 00927dacb7eb977ed78471bd00f6095b *data/ExampleData.SurfaceExposure.rda 6bdc582e91b77789c0927656181a5415 *data/ExampleData.TR_OSL.rda 2efbd548fbf40f3051896c67744f3968 *data/ExampleData.XSYG.rda 46cb02411ce47f89f50800707f91e90c *data/ExampleData.portableOSL.rda 32a91c25510db48ba983ec40716b037f *data/datalist ea4c9ed2c13383e5a2f135c3df8f699f *inst/CITATION 33438cf32f8d0c526407a6ad5d5a03b5 *inst/WORDLIST 2980afb79701b460e426fb9735c1759b *inst/doc/S4classObjects.pdf 6beca119f1590a3626e80cab485f8002 *inst/doc/S4classObjects.pdf.asis 281a929ffb03b8e31a8ddb6c284c9cad *inst/doc/crosstalk.R 4bc2c1f5813de1982665a0f63b597c0a *inst/doc/crosstalk.Rmd 0a0671f4597d240fca69d5d12de77939 *inst/doc/crosstalk.html e416f3c9418a6023d66971c8e28e797f *inst/extdata/BINfile_V8.binx 5c342b7cba17fe33015293da421bc228 *inst/extdata/Daybreak_TestFile.DAT 251753a30fe82779d40ad3f17ba448be *inst/extdata/Daybreak_TestFile.txt fb458a7047c03e4ebae19b8aefa610f0 *inst/extdata/DorNie_0016.psl ca1af672f0719a15f4334255c9127ba6 *inst/extdata/HeliosOSL_Example.osl d70d1998a51bfeb77e3ba3f54c474418 *inst/extdata/QNL84_2_bleached.txt a06f36f48c83f10917989c829a8aafe9 *inst/extdata/QNL84_2_unbleached.txt 33e0c898019686514224b81ba65c770b *inst/extdata/RF_file.rf 4473f6a1f4375066efe52ff7824966d1 *inst/extdata/STRB87_1_bleached.txt 17e386e1832e46b61e912f7c9535e8d0 *inst/extdata/STRB87_1_unbleached.txt 0d420de38d9b112b53f8d18c1ae07195 *inst/extdata/TIFFfile.tif 12221b46cbaddcf2da1fa52b6862ef4b *inst/extdata/XSYG_file.xsyg b286b56ca5e51dd11b14da750452f2c7 *inst/rstudio/addins.dcf d05d9ac5851e688774e77c9a561ec75e *man/Analyse_SAR.OSLdata.Rd c163b35bfdf74c78ea57863928b206ac *man/BaseDataSet.ConversionFactors.Rd e5dfac0b8b16086375d86b0e7660ad59 *man/BaseDataSet.CosmicDoseRate.Rd a1cbc9fee3a15aac887dd6728d920656 *man/BaseDataSet.FractionalGammaDose.Rd f94286d316e36796c60e939bd90590b6 *man/BaseDataSet.GrainSizeAttenuation.Rd 60b37970ef35efb276ced60182f31062 *man/ExampleData.Al2O3C.Rd 10940bd4f760d821b14a0374eab9af39 *man/ExampleData.BINfileData.Rd 9e907145af94f62bd80759688f975f6b *man/ExampleData.CW_OSL_Curve.Rd c08aecae2b8de5e5610cc9733e9b727d *man/ExampleData.CobbleData.Rd 089223d37661ac08472123c5407b1049 *man/ExampleData.DeValues.Rd 57922ee2f51ae70be199f6a8829954e9 *man/ExampleData.Fading.Rd d95d186db32484ba5893237d159bd571 *man/ExampleData.FittingLM.Rd b0312b29bab6159a94ba77ea7b75f5e3 *man/ExampleData.LxTxData.Rd 195461e47a1fb05817557d7e170687fc *man/ExampleData.LxTxOSLData.Rd 039e5a73fd775e7017ceb974e6963faf *man/ExampleData.MortarData.Rd af9c69dfab996348d4f13baa5091c4d7 *man/ExampleData.RLum.Analysis.Rd f9bcae9e5f42af56b8289df29d8b1d58 *man/ExampleData.RLum.Data.Image.Rd 5a4bae3f44aea6d8dc016c792b19f7b7 *man/ExampleData.ScaleGammaDose.Rd f0998331cec4912bbbe6db32e8207d2b *man/ExampleData.SurfaceExposure.Rd b3b4409491b7406dd54edf053c84493f *man/ExampleData.TR_OSL.Rd a401dad13413de6c1f55f0075baf1904 *man/ExampleData.XSYG.Rd 8f2182a4144aba13187cb14cffdb094a *man/ExampleData.portableOSL.Rd 2812338cd7f4cfe1bc74bf94339d13c7 *man/GitHub-API.Rd b7d6f3a3ecf2ff35d99b1a261cdcda52 *man/Luminescence-package.Rd e6055fd4d77bb96936aacc997585515b *man/PSL2Risoe.BINfileData.Rd 94d104afcadf9dc95eacda032b85d5ea *man/RLum-class.Rd 56f5f326774ccfe949674eaa7d996f9d *man/RLum.Analysis-class.Rd cfcfcb7bf44105624f80a8486aab792c *man/RLum.Data-class.Rd 7649036b76b3c4ed8a63e1295b189429 *man/RLum.Data.Curve-class.Rd a4888fb28b3d523cc68de7137fba1946 *man/RLum.Data.Image-class.Rd 9856bd64b07533e8199ed9904e66fe70 *man/RLum.Data.Spectrum-class.Rd cc0edefb9e4d3f19ef26011c2957820f *man/RLum.Results-class.Rd a2f5ded8f8ee3ffb62066cdac2275ddc *man/Risoe.BINfileData-class.Rd 7e246dfb02c67a651e877620c575fc09 *man/Risoe.BINfileData2RLum.Analysis.Rd ffcc663587515614b679a79694203993 *man/Second2Gray.Rd 76edaba0a4c0a213d78e12dae52034f9 *man/analyse_Al2O3C_CrossTalk.Rd 486e3ac860d5fb3fe66d64862e72f8ee *man/analyse_Al2O3C_ITC.Rd ec3e1e22fd899b2d341beab03e9a686c *man/analyse_Al2O3C_Measurement.Rd 17ae2fb9380d5fbf66cefe0fa49a2f9c *man/analyse_FadingMeasurement.Rd 397a741c2307d9420467ea961a05cda0 *man/analyse_IRSAR.RF.Rd 982d6c2e7133984b84008e743e88b5b4 *man/analyse_SAR.CWOSL.Rd a336ce0233c81e8e20ba516feff8b8d3 *man/analyse_SAR.TL.Rd 0ec974eba748b9ec4a5832554a307a59 *man/analyse_baSAR.Rd 69066f821e46ecc01ac1e6abdf855d74 *man/analyse_pIRIRSequence.Rd ed451c166bd02a6ccc2aa6eeba137518 *man/analyse_portableOSL.Rd 6475bedaf0b9ecd86038ebc6bbd41c74 *man/apply_CosmicRayRemoval.Rd ff747f93e3ee44649de3c40d698cfadc *man/apply_Crosstalk.Rd f9dfebe2d12d043116b9dab0b890214d *man/apply_EfficiencyCorrection.Rd ceafa5f752defb6f5b0cfec6df5dbe87 *man/as.Rd 418d61cf34c320eed5548e91b37c15ba *man/bin_RLum.Data.Rd b029d1df266f2496cbb81a1ebbe04653 *man/calc_AliquotSize.Rd 86ef784b901f364ce3aef5add9bfb366 *man/calc_AverageDose.Rd a4b307e657779654450226369d2eb737 *man/calc_CentralDose.Rd 70348fadaf28f2c1f68c6912ba0ceb9f *man/calc_CobbleDoseRate.Rd eb1bb26eef73bba802c818743fda2058 *man/calc_CommonDose.Rd ccf0bfce62755d83af9539c8d36665a7 *man/calc_CosmicDoseRate.Rd 2290b6e969a49eab5e15e6ff34f27256 *man/calc_EED_Model.Rd b65da4586b90359bfeda81667f38ee26 *man/calc_FadingCorr.Rd 99fd72a4c9128045857c180eda9165af *man/calc_FastRatio.Rd 897a6b8a9e5ef1748ecf3f93ee31c497 *man/calc_FiniteMixture.Rd 471690bede99849c21e076a3461a0240 *man/calc_FuchsLang2001.Rd 47ffdcdacdcf797786c1876b2764832f *man/calc_HomogeneityTest.Rd 4b84a49382cfccf1286ba0f39fa0b336 *man/calc_Huntley2006.Rd 0fe8fb1e4c72692c092227547f3cd48e *man/calc_IEU.Rd 63f6e88c359d62c031d3d2339c50e9dc *man/calc_Lamothe2003.Rd 25451310f0b450325efef1faaa292e7c *man/calc_MaxDose.Rd 08bff114050844ebd20dd79bf822c4d6 *man/calc_MinDose.Rd f19f5d813fba59e22397e663cfb0baf5 *man/calc_MoransI.Rd a4e927da04f05c44c6129a460f57a83c *man/calc_OSLLxTxDecomposed.Rd 47271762ce3a31b63c0dcace625735b7 *man/calc_OSLLxTxRatio.Rd d0b8e3ddea6eb39b79f60f31a4378205 *man/calc_SourceDoseRate.Rd bfa79ea7b06f46c09516384fd215ff57 *man/calc_Statistics.Rd 214e12506adf319e73ccb611a49b4dee *man/calc_TLLxTxRatio.Rd 9437a8428fdcf71a0817bf0a2e7e2844 *man/calc_ThermalLifetime.Rd b9640c19e5828c01977947464e845c60 *man/calc_WodaFuchs2008.Rd 1a2a7a706ebccf85832a5989fad2af77 *man/calc_gSGC.Rd 14b560794ac34e386544faf0fcbf31b8 *man/calc_gSGC_feldspar.Rd afebba8946634a485f27dd585328d0ce *man/combine_De_Dr.Rd 61abcf34045acfbded50cc5451a54cad *man/convert_Activity2Concentration.Rd 80851c2d59e819b2a62ca062c474fe8f *man/convert_BIN2CSV.Rd 6fcb2c8698a4a80e46f3fd95b118becf *man/convert_CW2pHMi.Rd 1f1603c26395f304b9071eafd9c6e8ef *man/convert_CW2pLM.Rd a4ff8511e730d3efb2716456ea6a2136 *man/convert_CW2pLMi.Rd 15d5f51c6f6ade524e2cb7969f00c96d *man/convert_CW2pPMi.Rd 8191eeb78a9a919c0ba60b8b8eb7c87e *man/convert_Concentration2DoseRate.Rd 2060fe22104e08b0f29c8cb7b15c4ad2 *man/convert_Daybreak2CSV.Rd 08586bbf0fc671bbe185252ab34d3371 *man/convert_PSL2CSV.Rd 0093d6b26ffc5c2be920a66fa6a25a19 *man/convert_PSL2Risoe.BINfileData.Rd 796538e56cca82650c637f9a7b4317f8 *man/convert_RLum2Risoe.BINfileData.Rd d276efc594ccb177329e1993dfcf0980 *man/convert_SG2MG.Rd a4369c93cc7b214c7a431d127fe749c0 *man/convert_Second2Gray.Rd 105a46ab84773eb4a0717946ef4bab64 *man/convert_Wavelength2Energy.Rd 7cd66702ad4446e46910a10a7d2ce0e5 *man/convert_XSYG2CSV.Rd f51be9661f99aef63bc632d662de054d *man/extdata.Rd 05fea95cc5306703e53bf4f61336753d *man/extract_IrradiationTimes.Rd 21660311fc77d716a7d36555b014fd31 *man/extract_ROI.Rd efd9a10a97e54b2cc6015704b0f6e57f *man/figures/Luminescence_logo.png 29deb119b951b526ca2049533e297386 *man/figures/README-Screenshot_AddIn.png d01c277b0fccaaae5b4ea765fdcced31 *man/fit_CWCurve.Rd 45e14199a4d3922f45ebf22783692884 *man/fit_DoseResponseCurve.Rd a5e5d3bdbea07be43d913641525b30d8 *man/fit_EmissionSpectra.Rd 80a5f035971cb7863e8295a306ad8623 *man/fit_LMCurve.Rd 3043c05a4c5af8b11049630af938c71e *man/fit_OSLLifeTimes.Rd a999890c245dd6196f3ad0d2373f6d57 *man/fit_SurfaceExposure.Rd e76b8ad26decf57209a7c212ed59d4b1 *man/fit_ThermalQuenching.Rd 30815695b1701c8a5f7ba0a10d8e15e6 *man/get_Layout.Rd baf7109e9fecc4b2553427a7edd19be2 *man/get_Quote.Rd 954a7874b7b104e8359f7e452775cb90 *man/get_RLum.Rd 27bd838ef19e8389615e93452656748b *man/get_Risoe.BINfileData.Rd c784a5dc95931f4aafcc9da3faeefbc4 *man/get_rightAnswer.Rd 9d6dbe8cf6073d9cd8fb7403a7fb3d07 *man/import_Data.Rd f2f0defafab5dc3852572b847625ef8e *man/install_DevelopmentVersion.Rd 785090a53f5a7f21ba344c9ca9dd7525 *man/length_RLum.Rd 374f7a19684f26db5fee3a331ea6957b *man/melt_RLum.Rd 5f044b4dda168897fdd8d6f466cd6b4d *man/merge_RLum.Analysis.Rd da7d71bf02f356b09e994234cfac5f1b *man/merge_RLum.Data.Curve.Rd 21cce766a6d3c557640bf1390c0aaed1 *man/merge_RLum.Data.Spectrum.Rd bdae92c0d11b27b68920b14bf6ce5b50 *man/merge_RLum.Rd ff040d0c16a42d67adc6fe961f7df3c4 *man/merge_RLum.Results.Rd 4e2ddcfd540bda9d0bc39649d353b2af *man/merge_Risoe.BINfileData.Rd 90b9135bd232f46fc9de44328c9be6a9 *man/metadata.Rd df9d9b9ff040141c80567a41fcafac62 *man/methods_RLum.Rd 11b6c3dc5507a84075999dde657df0ca *man/names_RLum.Rd 6fdfccd38a33a8035f40b061fc5c939b *man/plot_AbanicoPlot.Rd 741ab1604b52e1d2f5bf9be9a174b319 *man/plot_DRCSummary.Rd 69e1ab87b4f1414ed2f32889a0187607 *man/plot_DRTResults.Rd a30274b73c1157f9f5f221ce065ebed3 *man/plot_DetPlot.Rd c931412d1b2f6bdb815dfbf9924cb83f *man/plot_DoseResponseCurve.Rd 5a259daee6463fad60bbe1c7225b2234 *man/plot_FilterCombinations.Rd 31355048e1afbb19a4c95eff57215f43 *man/plot_GrowthCurve.Rd 852505f42a32dff977ea41794f1f93f6 *man/plot_Histogram.Rd d9f5990b266cd8af6e019a085116e8b8 *man/plot_KDE.Rd b054ff26d8197adc5dc317ff0cfc4497 *man/plot_MoranScatterplot.Rd 7e624f42e9dd4aed584c2cda6a58b9ed *man/plot_NRt.Rd f761dbf509e9f3af73ef0b28d83ca801 *man/plot_OSLAgeSummary.Rd 045ce43fd06ff4e1d11bbe986702420f *man/plot_RLum.Analysis.Rd 9f5db75f78582d0a97b76fa5dd5b4470 *man/plot_RLum.Data.Curve.Rd 8ad85c8bbda3840b7b12dbafcead8065 *man/plot_RLum.Data.Image.Rd abcc95e126bebdb18d4c624923850606 *man/plot_RLum.Data.Spectrum.Rd 26b874149f5ee08e42de5822cd4a9a84 *man/plot_RLum.Rd a594120e86c4a33745d95a62193f5ae5 *man/plot_RLum.Results.Rd 6983fc5e8fa9c9a135593e2d50662271 *man/plot_ROI.Rd 7548991dd6320b6744792763844eb053 *man/plot_RadialPlot.Rd 04c633f186bbf9d6258204a60cbbead4 *man/plot_Risoe.BINfileData.Rd c22e2f867a220ed78c294bad1af894a4 *man/plot_SingleGrainDisc.Rd 7d3eceeb6c5098dfaa0a7bb72c790d6f *man/plot_ViolinPlot.Rd 758aa036c2e55e7584d0b2c897d55e8c *man/read_BIN2R.Rd 170b19ef2ec850e28a94b5410d880fc9 *man/read_Daybreak2R.Rd 1028ccbf1096a0a792e4c97198aa869e *man/read_HeliosOSL2R.Rd 8c94cb9efa5fbdea423d25acc939cdf7 *man/read_PSL2R.Rd 235eade99e187b960a804a838be23cd0 *man/read_RF2R.Rd e62b360767c32ad1a25b33299a304e36 *man/read_SPE2R.Rd b916341757f8a94bb077fd9862351826 *man/read_TIFF2R.Rd 887c99247931121720c082842e58b23e *man/read_XSYG2R.Rd 40301145e13b4692e8d0cb8362680607 *man/replicate_RLum.Rd 49ab144bd5c1fd88f32a7b6e8334f630 *man/report_RLum.Rd 966011924a481230f511336df61cfc43 *man/sTeve.Rd a8376493f4d6fe03af5b89534dfe91d0 *man/scale_GammaDose.Rd abeb075578696385fc9b76f2cbaf848c *man/set_RLum.Rd 4a60cd174eb3f49d2705e16f3252b426 *man/set_Risoe.BINfileData.Rd 494b880d061bd49a30066d819418191b *man/smooth_RLum.Rd 65fd3117001118ba39ec8094be2948ad *man/sort_RLum.Rd 693bba778b3c4fc2c2233b88bcf021e6 *man/structure_RLum.Rd ddf53ddecdfc970ce23f7b81cd982142 *man/subset_SingleGrainData.Rd 413aa05706dd1be0caa3848e65fa4d3b *man/template_DRAC.Rd 59afa90a69af21bf42d39f7d3aa13280 *man/trim_RLum.Data.Rd db2a09e7cef05b5476288bb073312da3 *man/tune_Data.Rd ea4c20b5e299f4b18391564402876b7d *man/use_DRAC.Rd b7008d638533d0f7422c3c3bd8b4c491 *man/verify_SingleGrainData.Rd 0cd2fbe835ad6b8a8e0609a9c9cd07a5 *man/view.Rd 6af525e8facea6ab1e5a4461067b13e0 *man/write_R2BIN.Rd 0adbeed916af3ef3d86628d00568b73b *man/write_R2TIFF.Rd b94537fed58339e615d156e0d3d8665b *man/write_RLum2CSV.Rd a565f97e2225a4504986d6d350275010 *src/Makevars a565f97e2225a4504986d6d350275010 *src/Makevars.win a68a4715d4c977398f6c389f59ca548a *src/RcppExports.cpp 22b3eabbcb7b82326cddee23ef07209b *src/create_UID.cpp 085fd9308cc4cd8de1d1b9f5ca2c1623 *src/src_EED_Calc_Overall_StatUncertainty.cpp c321de7c6cdca24de81235ebb4316708 *src/src_analyse_IRSARRF_SRS.cpp 48dafd4dfc58e600c698be16b782aadf *src/src_create_RLumDataCurve_matrix.cpp 9932430d05f2842a3cfbea959478876d *src/src_get_XSYG_curve_values.cpp 92744a83b4a79b4bcabf0371105152ea *tests/spelling.R 5c33e2021366df205be163e82ca1a759 *tests/testthat.R d862a856795f87979dcd7f7b31f33f27 *tests/testthat/_data/BINfile_V3.bin 607dedca82c42849438dd67b95ed2709 *tests/testthat/_data/BINfile_V4.bin bcec1c30ada1310c228eba1a5d9deb37 *tests/testthat/_data/BINfile_V5.binx 73578739213767eda5581b5289c83fb0 *tests/testthat/_data/BINfile_V6.binx f3fd90891e853447adf4b3045b9d5a37 *tests/testthat/_data/BINfile_V7.binx 5c66433d692ac1d52bc89b3ced7100f6 *tests/testthat/_data/CLBR.xlsx 6b0024eb6db61b28d4a6bf0742123bf1 *tests/testthat/_data/CLBR_IR100.csv 656d31ed4c2dfa11f5d724c8b8c9eef0 *tests/testthat/_data/CLBR_IR150.csv 656d31ed4c2dfa11f5d724c8b8c9eef0 *tests/testthat/_data/CLBR_IR225.csv 656d31ed4c2dfa11f5d724c8b8c9eef0 *tests/testthat/_data/CLBR_IR50.csv ee1375b7b91410794e456e45032a67fd *tests/testthat/_data/DRAC_Input_Template.csv 2d112a3b9d450067919d21af50440fc2 *tests/testthat/_data/bin-tests/corrupted.bin ceb4da76d48b3c1d5e85e5c9a7f18af4 *tests/testthat/_data/bin-tests/duplicated-records.binx fa26138346b008cc5448a74d93ef46e8 *tests/testthat/_data/bin-tests/rectype-128.binx 9af8c22f90018d9211cc56a21cf65d89 *tests/testthat/_data/bin-tests/two-versions.binx d41217d7528e0ebbdee95afd4e0043a2 *tests/testthat/_data/bin-tests/zero-data-all.binx d439099f22135d3abc242a7880260fdf *tests/testthat/_data/bin-tests/zero-data-record.binx 71ede1304bcc5a1145c5a9234cde9f38 *tests/testthat/_data/xsyg-tests/XSYG_broken.xsyg e014ad1a5f986decf410a4941088781b *tests/testthat/_data/xsyg-tests/XSYG_corr_IRSL.xsyg c112c1796ca45de4fd5be7f7c46659c3 *tests/testthat/_data/xsyg-tests/XSYG_file_TL_CASE2.xsyg f45bbe6fcc3da45e2368f7f21cf30e35 *tests/testthat/_data/xsyg-tests/XSYG_file_TL_CASE3.xsyg dcd331e83907a64550a0aa5a335a9761 *tests/testthat/_data/xsyg-tests/XSYG_noRecordType.xsyg 22ddb3694064b098060193bed9e5b0ad *tests/testthat/_data/xsyg-tests/XSYG_spectra.xsyg 84d3fd4ee92fc8cac0b476a680f450c3 *tests/testthat/_data/xsyg-tests/XSYG_spectra_duplicated_TL.xsyg 8ee184d4cb4eaa1326374649bde4c778 *tests/testthat/_data/xsyg-tests/XSYG_spectra_equal_TL.xsyg c0e79a9bd85b11465ffff1e6f8e48181 *tests/testthat/_snaps/RLum.Analysis-class.md 6e81620bf57223619786870055e2333e *tests/testthat/_snaps/Risoe.BINfileData-class.md 20e9150ce2aa105d8a0b6e49c38f6966 *tests/testthat/_snaps/analyse_Al2O3C_CrossTalk.md 38545997a1ced734feb7ba80c4178d0e *tests/testthat/_snaps/analyse_IRSAR.RF.md df930a19cc3561db8fdf7009b1587d6f *tests/testthat/_snaps/analyse_SAR.CWOSL.md 8f7282398b128f4831f82b1b997b2041 *tests/testthat/_snaps/analyse_SAR.TL.md 723935735977a5213da5451c5a0385e5 *tests/testthat/_snaps/analyse_baSAR.md 25d5598adc0dec2db359eee582df51cc *tests/testthat/_snaps/apply_Crosstalk.md dd5e7930a5514f1b67a3d1e53a61da2e *tests/testthat/_snaps/calc_AliquotSize.md 3cd0ac6aa7f9af71bc4d1bf7107682a8 *tests/testthat/_snaps/calc_AverageDose.md 38a2be08e2cad899ce7633682851be68 *tests/testthat/_snaps/calc_CentralDose.md 83c81b5eff079fe22a727cd0c2f0bf06 *tests/testthat/_snaps/calc_CobbleDoseRate.md 1596086e45f502482f5f525ada1d144e *tests/testthat/_snaps/calc_CommonDose.md 2942cc356413a2a0d8bc1cff01f22e81 *tests/testthat/_snaps/calc_CosmicDoseRate.md cf1e123921ff1849ec41615f0cd4c7a3 *tests/testthat/_snaps/calc_FadingCorr.md c532405f13e2c4e0c5e4c032bcda5d6c *tests/testthat/_snaps/calc_Huntley2006.md 54384f40a7f3121908cbb089a7b621d8 *tests/testthat/_snaps/calc_IEU.md b3ade6f3b9b2a9ffd9e475e2bfd098b7 *tests/testthat/_snaps/calc_MoransI.md 7d0a30d497720c324ca4045645dd9681 *tests/testthat/_snaps/calc_OSLLxTxDecomposed.md d887fb97c0c0b0bbfc54376354f0fc81 *tests/testthat/_snaps/calc_OSLLxTxRatio.md 64d8e7a7a94a5ccf6acea79cbd65cf57 *tests/testthat/_snaps/calc_Statistics.md dfa5008d4aa0c5b91990dea6afd85240 *tests/testthat/_snaps/convert_CW2pX.md fe71e13e57514afdb95b33a421349c8f *tests/testthat/_snaps/convert_Second2Gray.md 7056c14a1a3ac41d65bcfda41904036e *tests/testthat/_snaps/fit_DoseResponseCurve.md d2213417cfe09792be7c24f2639a5965 *tests/testthat/_snaps/fit_LMCurve.md b2a653edd0b3b5d9e745d0b90565c160 *tests/testthat/_snaps/fit_OSLLifeTimes.md 60dc949eb4e8c8448d1c60e9e9378345 *tests/testthat/_snaps/internals_Thermochronometry.md 25cbb2ed7fdd3655dff2c95556cc2953 *tests/testthat/_snaps/merge_RLum.Data.Curve.md 270a5609996052abdf1c0b03b0649709 *tests/testthat/_snaps/merge_RLum.Data.Spectrum.md 0c6beb03c789e46e1dc43aa141f81cb0 *tests/testthat/_snaps/plot_AbanicoPlot/abanico-expected.svg 05c091f1e341c868bb04d8e741ff6d09 *tests/testthat/_snaps/plot_NRt.md e3a38ceecfbbe7a29fff6de70e56769b *tests/testthat/_snaps/read_BIN2R.md 5b04f3730e30503679712ba4357d7fe8 *tests/testthat/_snaps/read_SPE2R.md 226697567632a50d2188bdf04aa4cc58 *tests/testthat/_snaps/smooth_RLum.md 92dc5817e69e0a240cb608d3c1d73c7d *tests/testthat/setup.R 59acaac76b5e3ba9b3664f88c5325d01 *tests/testthat/test_Analyse_SAROSLdata.R bf3bb44a4a3dc9d2d66693e10f1ba934 *tests/testthat/test_RLum.Analysis-class.R 63cc604c6d3ac82ce80212dbc1990a6b *tests/testthat/test_RLum.Data.Curve.R 85076f4f73e56aa2f7021b85c7b80042 *tests/testthat/test_RLum.Data.Image.R e7c8a47ab941da78d123eaa9edd04c33 *tests/testthat/test_RLum.Data.Spectrum.R 5a32623b69cff1ea7de9c9e4fd46ed98 *tests/testthat/test_RLum.Results-class.R 3b9af0a3006f293a567b8520818d794d *tests/testthat/test_Risoe.BINfileData-class.R d28cab88cfba8657954f530c35f9a8de *tests/testthat/test_Risoe.BINfileData2RLum.Analysis.R 5329e98ca9e41fc7f82c169271d25117 *tests/testthat/test_Risoe.BINfileData2RLum.Data.Curve.R 24d6fb73f9653ae33919c875ec4c5c72 *tests/testthat/test_analyse_Al2O3C_CrossTalk.R 2ecfd24f376656ed5a6e1c9186b299f1 *tests/testthat/test_analyse_Al2O3C_ITC.R dc1ad962714b4992ae935ea605f3d4e4 *tests/testthat/test_analyse_Al2O3C_Measurement.R 05fae28cba84bffd75be62606da66036 *tests/testthat/test_analyse_FadingMeasurement.R 69c9e56f42be14296d0313d01a11a530 *tests/testthat/test_analyse_IRSAR.RF.R e932b22a25a9871c651978589de31d79 *tests/testthat/test_analyse_SAR.CWOSL.R acebb453c75067867a62849c850b0b13 *tests/testthat/test_analyse_SAR.TL.R 8b90054bcebbfb960834330052185c83 *tests/testthat/test_analyse_ThermochronometryData.R 02c024bf5a9215452b7fe94e595cda68 *tests/testthat/test_analyse_baSAR.R 97bc32e0f17ca48c1a85c3825b472d34 *tests/testthat/test_analyse_pIRIRSequence.R 52471216b140580af0dda9122e26111e *tests/testthat/test_analyse_portableOSL.R a894a878cdcc77d3ed283de158033e06 *tests/testthat/test_apply_CosmicRayRemoval.R dba7a1ed9d197c75cb080f5fb39a740a *tests/testthat/test_apply_Crosstalk.R 5100801a9af4381eb5b7677bbf811b17 *tests/testthat/test_apply_EfficiencyCorrection.R fe6a91d2d48c62d5ec561f97760a59be *tests/testthat/test_as_latex_table.R b6d76130d1a918422d8317acdd16fcaa *tests/testthat/test_bin_RLumData.R 187ada42afa9d3ea7b7627049ea63747 *tests/testthat/test_calc_AliquotSize.R a42c9744576b8df4feb7ac7d71675da9 *tests/testthat/test_calc_AverageDose.R 0306611e49596453d070348e800b41d5 *tests/testthat/test_calc_CentralDose.R 6566e2bb1b6db0bfdeb88fb5b173c877 *tests/testthat/test_calc_CobbleDoseRate.R e042f591e4b613d8c3f5e870c09c43b8 *tests/testthat/test_calc_CommonDose.R dc71605d22ff41fe9f0473024b65e577 *tests/testthat/test_calc_CosmicDoseRate.R 15cdab5a1e8c30ddcc033887b4fa460c *tests/testthat/test_calc_EED_Model.R c395d04878e077297c3b726750bf2198 *tests/testthat/test_calc_FadingCorr.R 1d4e929f778074b380db46086e2d0bf1 *tests/testthat/test_calc_FastRatio.R 73dc798a694428c91fce365a9d0cc35a *tests/testthat/test_calc_FiniteMixture.R 4182ce90686c07114d195827649049c8 *tests/testthat/test_calc_FuchsLang2001.R cf515d467078983a8ce6b0a8598b98cd *tests/testthat/test_calc_HomogeneityTest.R 1daf370ee74c3b98893c37b32a29c7bc *tests/testthat/test_calc_Huntley2006.R 4ed813274f9958d760528183978e5677 *tests/testthat/test_calc_IEU.R 5ba35adfc0df440084447c1a713152aa *tests/testthat/test_calc_Lamothe2003.R d00f70d9dad166b952a48238df9f4034 *tests/testthat/test_calc_MaxDose.R 4072c9bfda6e2fcb8ac20b6436b1f6a0 *tests/testthat/test_calc_MinDose.R 6102d970cf813b140cb0175072b0feb0 *tests/testthat/test_calc_MoransI.R 215629625a80dd94653f7ea8f05ce2c8 *tests/testthat/test_calc_OSLLxTxDecomposed.R 59e419b0a3c0ab0bd0d1c58ebb4e2f88 *tests/testthat/test_calc_OSLLxTxRatio.R 4304ddc0ccc09559204e5ce6bfae97cc *tests/testthat/test_calc_SourceDoseRate.R aba526425e9fa19ae9c008dc6f7c2d57 *tests/testthat/test_calc_Statistics.R 9a100fd2c617e02a671f149bb7a35e43 *tests/testthat/test_calc_TLLxTxRatio.R 02b78721f0d19da716807c7a79643783 *tests/testthat/test_calc_ThermalLifetime.R 9a2d3395ce843b2088ab257c637836cb *tests/testthat/test_calc_WodaFuchs2008.R b82e110384d793ecffabab67e399f4ff *tests/testthat/test_calc_gSGC.R 6ed7c61a26f895b5fad0692070acee53 *tests/testthat/test_calc_gSGC_feldspar.R 919f2b2274ede84da43d2e690280f0a7 *tests/testthat/test_combine_De_Dr.R 36b82f7d70e303921b25565a700bdfde *tests/testthat/test_convert_Activity2Concentration.R 2c06268cfd8d23a8e6f27dd20d0d620d *tests/testthat/test_convert_BIN2CSV.R d7f6d2c45a30dd6311e2bf1c4d5b3749 *tests/testthat/test_convert_CW2pX.R e6c799d96d6fc93b849b322377101b59 *tests/testthat/test_convert_Concentration2DoseRate.R fe1a4a0c00a244e16eda43f6129e46b9 *tests/testthat/test_convert_Daybreak2CSV.R b9d5ebf6dc6dd9cd5d25d0f2a0aa90fe *tests/testthat/test_convert_PSL2CSV.R b240b24e670af011609dfe839a8f873f *tests/testthat/test_convert_PSL2RisoeBINfiledata.R 830f118292e878300b84660e901e1913 *tests/testthat/test_convert_RLum2Risoe.BINfileData.R 74e38124b27450be1f0dd7b540043516 *tests/testthat/test_convert_SG2MG.R a5c71e273dd2d7fe6bf08f0c7f216bb2 *tests/testthat/test_convert_Second2Gray.R eb2f8b85a202fc8bb66688fad8f655b5 *tests/testthat/test_convert_Wavelength2Energy.R c63cfbe4e8d3be143ee9adf70b587227 *tests/testthat/test_convert_XSYG2CSV.R bca0738fc273450cbb6d27c2ff79a783 *tests/testthat/test_extract_IrradiationTimes.R f87b5b98f22f05d60be759a0ce3b104a *tests/testthat/test_extract_ROI.R fd0b9724de6ecb6901f6b5a4256793be *tests/testthat/test_fit_CWCurve.R db61afd72440214d75b0e3c1798c7db1 *tests/testthat/test_fit_DoseResponseCurve.R 219337ed9dd206e9e14a5fa65673b333 *tests/testthat/test_fit_EmissionSpectra.R 18e051cb5f2c754e1749a0f6e9ed91d4 *tests/testthat/test_fit_IsothermalHolding.R 04f4db2559a45356a204c5ac62601f17 *tests/testthat/test_fit_LMCurve.R 09f982d9e3b7054d868c29143a73b5c4 *tests/testthat/test_fit_OSLLifeTimes.R a64077b8b2391e062350065930003bbb *tests/testthat/test_fit_SurfaceExposure.R c3d0d67f77616ddada8aa43fea3c7a77 *tests/testthat/test_fit_ThermalQuenching.R 6f4bebdfa6e7398eb2ade7bf3d3efb17 *tests/testthat/test_get_Layout.R e776f1dbeab8cf68d0cf833663833346 *tests/testthat/test_get_RLum.R b7f00f2e61941c8eb18a75d7dddb8457 *tests/testthat/test_github.R c7a9c1895de0f0617a525367379477d9 *tests/testthat/test_import_Data.R 91ff35584be16ea222cea4278c926d5f *tests/testthat/test_internals.R 72bc35e5570b97bef22819991d1bcf4d *tests/testthat/test_internals_Thermochronometry.R 0305454be6c89c248f1cdb6ecb55aa32 *tests/testthat/test_merge_RLum.Analysis.R 37eb2d93c68f81b4184fa2e94875ceb1 *tests/testthat/test_merge_RLum.Data.Curve.R cbd60066c59f488d571ba0c5ca36284c *tests/testthat/test_merge_RLum.Data.Spectrum.R e9faabd64584d6fe9a396b214e87886f *tests/testthat/test_merge_RLum.R 10272a5372cc7f3e6a4069967e5b5e2f *tests/testthat/test_merge_RLum.Results.R 4d5842e6ae581b88aff82310041ec7cc *tests/testthat/test_merge_Risoe.BINfileData.R 99747e0dce3b05d578502689da93ebfa *tests/testthat/test_metadata.R b75df49f7996ee532b51b12671b759e4 *tests/testthat/test_methods_DRAC.R 2a049397a2df7d549241296e7b9b2ec7 *tests/testthat/test_methods_S3.R 295b9868118f419ba71f489903da43ce *tests/testthat/test_names_RLum.R 484ab8cebffa599571db17a9497cd04e *tests/testthat/test_plot_AbanicoPlot.R a63d3fdbdb18e13f5a0ddf4fb12b419f *tests/testthat/test_plot_DRCSummary.R 2d4a0fa5ab0a0a9c6f0a8b3a15ce528e *tests/testthat/test_plot_DRTResults.R 66d02a07821a4761d9e9fc5097acef4a *tests/testthat/test_plot_DetPlot.R 7eb8e45d9454b368e9b4c7b9c854e3bc *tests/testthat/test_plot_DoseResponseCurve.R dcdb75c6931427eb394ea634a89ca76f *tests/testthat/test_plot_FilterCombinations.R b93c37bd5fce37baf9236c3832338415 *tests/testthat/test_plot_Functions.R 5d06e0712ae9a07a2711740ae7d41a5a *tests/testthat/test_plot_GrowthCurve.R fceac0b6b26213c8bb1875bd671c51ce *tests/testthat/test_plot_Histogram.R 36110f774087568baf0a7870e7071cef *tests/testthat/test_plot_KDE.R ef8c98b4e5f8c1025f07d95a7efe362c *tests/testthat/test_plot_MoranScatterplot.R 8bcc1554143d82bd7f95abbf20035c01 *tests/testthat/test_plot_NRt.R 9cdcf782184e1aa06e8dc44ab68f84d5 *tests/testthat/test_plot_OSLAgeSummary.R e6603b06c0f7e7cfaa636af15c266517 *tests/testthat/test_plot_RLum.Analysis.R 50957410d54c0c9a1b228b4db8a5fef6 *tests/testthat/test_plot_RLum.Data.Curve.R 7078fac16506b34bff36436b3ff0adfe *tests/testthat/test_plot_RLum.Data.Image.R 6aa457492b1305f3da909abd139d0571 *tests/testthat/test_plot_RLum.Data.Spectrum.R 66ddab0ebb8f93119adef504109e0549 *tests/testthat/test_plot_RLum.R a1890de915fa525d688d3b33daafbbe0 *tests/testthat/test_plot_RLum.Results.R fb6abe7cf6dea29448c4bd6757e6afc7 *tests/testthat/test_plot_ROI.R 26e386c8997a789274e287650bbff280 *tests/testthat/test_plot_RadialPlot.R 93abf37fed464974512c48ceafc5d0d3 *tests/testthat/test_plot_Risoe.BINfileData.R 471e408f6fa12b3763cab10451f741d3 *tests/testthat/test_plot_SingleGrainDisc.R 3a410f15bf41650c6040000bc1906be4 *tests/testthat/test_plot_ViolinPlot.R 5b15f9c811ea82f2ace43b9b3276d4fc *tests/testthat/test_read_BIN2R.R 6e0f849ccbe2eef01a6e00ff95672c0c *tests/testthat/test_read_Daybreak2R.R 39b905b0180971ff80bf47cfaa272666 *tests/testthat/test_read_HeliosOSL2R.R c440c8ca55c5b29d7acdc3b7ef7a1917 *tests/testthat/test_read_PSL2R.R 41a2ae00fd22d60cc189d450fabebce6 *tests/testthat/test_read_RF2R.R 2b82ee8f6ee7453f562e9637230b35c2 *tests/testthat/test_read_SPE2R.R 0744a3cc2895b49054e57ee4a7f46c7c *tests/testthat/test_read_TIFF2R.R 326dca23042ec81815bb4db3420a7e30 *tests/testthat/test_read_XSYG2R.R 62f7ef9f57a226469c33ea9823ea098c *tests/testthat/test_replicate_RLum.R 01292fe9e869767c2ef4fc89dad50e55 *tests/testthat/test_report_RLum.R 0ac7221215c407b3d130c48bd8c697c3 *tests/testthat/test_scale_GammaDose.R 9a5d9f2b218157c4047a7f68112cc4cd *tests/testthat/test_smooth_RLum.R 1d0fdc337f9b0a0e37327d35913586fc *tests/testthat/test_structure_RLum.R feff26e59f8e7099f26e08cd06e03f5f *tests/testthat/test_subset_RLum.R 8f79b1a7c88c9ed12fcbbaafb2acd169 *tests/testthat/test_subset_SingleGrainData.R 432ac1164defb7e3beb6067bbf9501c5 *tests/testthat/test_template_DRAC.R 08be1a7044c1eba76eab8c6c9ddf0e9d *tests/testthat/test_trim_RLum.Data.R 97117a2ff541055801d804a39f1c8549 *tests/testthat/test_use_DRAC.R f79f30ef7de3a0f7f0c3587e595fef4a *tests/testthat/test_utils_DRAC.R e742c1c27fc6a3894b0aad02285f8edb *tests/testthat/test_verify_SingleGrainData.R 0c104b02a7e428802d718c1cda87ed70 *tests/testthat/test_view.R 39c6abf6be28f18517d0a3ea594a2c11 *tests/testthat/test_write_R2BIN.R b83d2b9907d82719684f3d4c3bb731cc *tests/testthat/test_write_R2TIFF.R d29abd2069178249a3ddc3f50da0af23 *tests/testthat/test_write_RLum2CSV.R 227eede2f097b418a7cf9a1aebdfe3dd *tests/testthat/test_zzz.R 6beca119f1590a3626e80cab485f8002 *vignettes/S4classObjects.pdf.asis 4bc2c1f5813de1982665a0f63b597c0a *vignettes/crosstalk.Rmd Luminescence/R/0000755000176200001440000000000014762561642013102 5ustar liggesusersLuminescence/R/plot_RLum.Results.R0000644000176200001440000011562014762554470016610 0ustar liggesusers#' Plot function for an RLum.Results S4 class object #' #' The function provides a standardised plot output for data of an RLum.Results #' S4 class object #' #' The function produces a multiple plot output. A file output is recommended #' (e.g., [pdf]). #' #' @param object [RLum.Results-class] (**required**): #' S4 object of class `RLum.Results` #' #' @param single [logical] (*with default*): #' single plot output (`TRUE/FALSE`) to allow for plotting the results in as #' few plot windows as possible. #' #' @param ... further arguments and graphical parameters will be passed to #' the `plot` function. #' #' @return Returns multiple plots. #' #' @note #' Not all arguments available for [plot] will be passed! #' Only plotting of `RLum.Results` objects are supported. #' #' @section Function version: 0.2.1 #' #' @author #' Christoph Burow, University of Cologne (Germany) \cr #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [plot], [plot_RLum] #' #' @keywords aplot #' #' @examples #' #' #' ###load data #' data(ExampleData.DeValues, envir = environment()) #' #' # apply the un-logged minimum age model #' mam <- calc_MinDose(data = ExampleData.DeValues$CA1, sigmab = 0.2, log = TRUE, plot = FALSE) #' #' ##plot #' plot_RLum.Results(mam) #' #' # estimate the number of grains on an aliquot #' grains<- calc_AliquotSize(grain.size = c(100,150), sample.diameter = 1, plot = FALSE, MC.iter = 100) #' #' ##plot #' plot_RLum.Results(grains) #' #' #' @md #' @export plot_RLum.Results<- function( object, single = TRUE, ... ) { .set_function_name("plot_RLum.Results") on.exit(.unset_function_name(), add = TRUE) ##============================================================================## ## CONSISTENCY CHECK OF INPUT DATA ##============================================================================## .validate_class(object, "RLum.Results") if (is.null(object@originator) || is.na(object@originator)) { .throw_error("Object originator not supported") } ##============================================================================## ## SAFE AND RESTORE PLOT PARAMETERS ON EXIT ##============================================================================## par.old <- par(no.readonly = TRUE) on.exit(suppressWarnings(par(par.old)), add = TRUE) ##============================================================================## ## ... ARGUMENTS ##============================================================================## ##deal with addition arguments extraArgs <- list(...) ##main main <- if("main" %in% names(extraArgs)) {extraArgs$main} else {""} ##mtext mtext <- if("mtext" %in% names(extraArgs)) {extraArgs$mtext} else {""} ##log log <- if("log" %in% names(extraArgs)) {extraArgs$log} else {""} ##lwd lwd <- if("lwd" %in% names(extraArgs)) {extraArgs$lwd} else {1} ##lty lty <- if("lty" %in% names(extraArgs)) {extraArgs$lty} else {1} ##type type <- if("type" %in% names(extraArgs)) {extraArgs$type} else {"l"} ##pch pch <- if("pch" %in% names(extraArgs)) {extraArgs$pch} else {1} ##col col <- if("col" %in% names(extraArgs)) {extraArgs$col} else {"black"} ##============================================================================## ## PLOTTING ##============================================================================## #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ## CASE 0: General plot dispatcher ---------- switch(object@originator, "analyse_SAR.CWOSL" = plot_AbanicoPlot(object), "analyse_pIRIRSequence" = plot_AbanicoPlot(object), "analyse_IRSAR.RF" = plot_AbanicoPlot(object), NULL ) ## CASE 1: Minimum Age Model / Maximum Age Model ------- if (object@originator %in% c("calc_MinDose", "calc_MaxDose")) { ## single MAM estimate # plot profile log likelihood profiles <- object@data$profile if (object@data$args$log) { profiles@profile$gamma$par.vals[ ,"gamma"] <- exp(profiles@profile$gamma$par.vals[ ,"gamma"]) profiles@profile$sigma$par.vals[ ,"sigma"] <- exp(profiles@profile$sigma$par.vals[ ,"sigma"]) if (object@data$args$par == 4) profiles@profile$mu$par.vals[ ,"mu"] <- exp(profiles@profile$mu$par.vals[ ,"mu"]) } if (single) par(mfrow=c(2, 2)) param <- c("gamma", "sigma", "p0", "mu") for (i in param) { if (object@data$summary$par == 3 && i == "mu") break tryCatch({ xvals <- as.data.frame(profiles@profile[[i]]$par.vals)[[i]] xlim <- range(xvals[xvals > 0]) suppressWarnings( bbmle::plot(profiles, which = i, xlab = "", xaxt = "n", xlim = xlim) ) axis(1, mgp = c(3, 0.5, 0)) title(xlab = i, line = 1.2) if (i %in% c("gamma", "sigma", "mu") && object@data$args$log && object@data$args$log.output) { axis(1, at = axTicks(1), labels = format(round(log(axTicks(1)), 2), nsmall = 2), line = 2.5, mgp = c(3, 0.5, 0)) title(xlab = paste0("log(", i, ")"), line = 4) } }, error = function(e) { message("Unable to plot the likelihood profile for: ", i, " (likelihood probably infinite)") }) } par(mfrow=c(1,1)) # }) ## bootstrap MAM estimates if(object@data$args$bootstrap==TRUE) { # save previous plot parameter and set new ones .pardefault<- par(no.readonly = TRUE) # get De-llik pairs pairs<- object@data$bootstrap$pairs$gamma # get polynomial fit objects poly.lines<- list(poly.three=object@data$bootstrap$poly.fits$poly.three, poly.four=object@data$bootstrap$poly.fits$poly.four, poly.five=object@data$bootstrap$poly.fits$poly.five, poly.six=object@data$bootstrap$poly.fits$poly.six) # define polynomial curve functions for plotting poly.curves<- list(poly.three.curve=function(x) { poly.lines$poly.three$coefficient[4]*x^3 + poly.lines$poly.three$coefficient[3]*x^2 + poly.lines$poly.three$coefficient[2]*x + poly.lines$poly.three$coefficient[1] }, poly.four.curve=function(x) { poly.lines$poly.four$coefficient[5]*x^4 + poly.lines$poly.four$coefficient[4]*x^3 + poly.lines$poly.four$coefficient[3]*x^2 + poly.lines$poly.four$coefficient[2]*x + poly.lines$poly.four$coefficient[1] }, poly.five.curve=function(x) { poly.lines$poly.five$coefficient[6]*x^5 + poly.lines$poly.five$coefficient[5]*x^4 + poly.lines$poly.five$coefficient[4]*x^3 + poly.lines$poly.five$coefficient[3]*x^2 + poly.lines$poly.five$coefficient[2]*x + poly.lines$poly.five$coefficient[1] }, poly.six.curve=function(x) { poly.lines$poly.six$coefficient[7]*x^6 + poly.lines$poly.six$coefficient[6]*x^5 + poly.lines$poly.six$coefficient[5]*x^4 + poly.lines$poly.six$coefficient[4]*x^3 + poly.lines$poly.six$coefficient[3]*x^2 + poly.lines$poly.six$coefficient[2]*x + poly.lines$poly.six$coefficient[1] }) ## --------- PLOT "RECYCLE" BOOTSTRAP RESULTS ------------ ## if(single==TRUE) { layout(cbind(c(1,1,2, 5,5,6), c(3,3,4, 7,7,8))) par(cex = 0.6) } else { layout(matrix(c(1,1,2)),2,1) par(cex = 0.8) } for(i in 1:4) { ## ----- LIKELIHOODS # set margins (bottom, left, top, right) par(mar=c(0,5,5,3)) # sort De and likelihoods by De (increasing) pairs<- pairs[order(pairs[,1]),] # remove invalid NA values pairs <- stats::na.omit(pairs) plot(x=pairs[,1], y=pairs[,2], xlab="Equivalent Dose [Gy]", ylab="Likelihood", xlim=range(pretty(pairs[,1])), ylim=range(pretty(c(0, as.double(quantile(pairs[,2],probs=0.98))))), xaxt = "n", xaxs = "i", yaxs = "i", bty = "l", main="Recycled bootstrap MAM-3") axis(side = 1, labels = FALSE, tick = FALSE) # add subtitle mtext(as.expression(bquote(italic(M) == .(object@data$args$bs.M) ~ "|" ~ italic(N) == .(object@data$args$bs.N) ~ "|" ~ italic(sigma[b]) == .(object@data$args$sigmab) ~ "\u00B1" ~ .(object@data$args$sigmab.sd) ~ "|" ~ italic(h) == .(round(object@data$args$bs.h,1)) ) ), side = 3, line = 0.3, adj = 0.5, cex = if(single){0.5}else{0.8}) # add points points(x=pairs[,1], y=pairs[,2], pch=1, col = "grey80") # get polynomial function poly.curve<- poly.curves[[i]] # add curve to plot curve(poly.curve, from = min(pairs[,1]), to = (max(pairs[,1])), col = "black", add = TRUE, type = "l") # add legend legend<- c("Third degree", "Fourth degree", "Fifth degree", "Sixth degree") legend("topright", xjust = 0, legend = legend[i], y.intersp = 1.2, bty = "n", title = "Polynomial Fit", lty = 1, lwd= 1.5) ## ----- RESIDUALS # set margins (bottom, left, top, right) par(mar=c(5,5,0,3)) plot(x = pairs[,1], y = residuals(poly.lines[[i]]), ylim = c(min(residuals(poly.lines[[i]]))*1.2, as.double(quantile(residuals(poly.lines[[i]]),probs=0.99))), xlim=range(pretty(pairs[,1])), xaxt = "n", bty = "l", xaxs = "i", col = "grey80", ylab = "Fit residual", xlab = "Equivalent dose [Gy]") axis(side = 1, labels = TRUE, tick = TRUE) # add horizontal line abline(h = 0, lty=2) # calculate residual sum of squares (RSS) and add to plot rss<- sum(residuals(poly.lines[[i]])^2) mtext(text = paste("RSS =",round(rss,3)), adj = 1, side = 3, line = -2, cex = if(single){0.6}else{0.8}) ## ----- PROPORTIONS }##EndOf::Plot_loop # restore previous plot parameters par(.pardefault) ### TODO: plotting of the LOESS fit needs to be fleshed out ### possibly integrate this in the prior polynomial plot loop ### LOESS PLOT pairs<- object@data$bootstrap$pairs$gamma pred<- predict(object@data$bootstrap$loess.fit) loess<- cbind(pairs[,1], pred) loess<- loess[order(loess[,1]),] # plot gamma-llik pairs plot(pairs, ylim = c(0, as.double(quantile( pairs[,2],probs=0.99))), ylab = "Likelihood", xlab = "Equivalent dose [Gy]", col = "gray80") # add LOESS line lines(loess, type = "l", col = "black") ### ------ PLOT BOOTSTRAP LIKELIHOOD FIT par(mar=c(5,4,4,4)) xlim<- range(pretty(object@data$data[,1])) xlim[1]<- xlim[1]-object@data$data[which.min(object@data$data[,1]),2] xlim[2]<- xlim[2]+object@data$data[which.max(object@data$data[,1]),2] xlim<- range(pretty(xlim)) # empty plot plot(NA,NA, xlim=xlim, ylim=c(0,2), xlab="Equivalent dose [Gy]", ylab="", bty="l", axes=FALSE, xaxs="i", yaxs="i", yaxt="n") axis(side = 1) axis(side = 2, at = c(0,0.5,1)) mtext(text = "Normalised likelihood / density", side = 2, line = 2.5, adj = 0) # set the polynomial to plot poly.curve<- poly.curves[[1]] # three degree poly # plot a nice grey polygon as in the publication step<- 0.1 x<- seq(min(pairs[,1]), max(pairs[,1]), step) y<- poly.curve(x) # normalise y-values y<- y/max(y) x<- c(min(pairs[,1]), x, max(pairs[,1])) y<- c(0, y, 0) # cutoff negative y values y.idx <- !is.na(y) & y >= 0 x <- x[y.idx] y <- y[y.idx] # add bootstrap likelihood polygon to plot polygon(x, y, col = "grey80", border = NA) if (all(x > max(xlim)) || all(x < min(xlim))) .throw_warning("Bootstrap estimates out of x-axis range") ### ----- PLOT MAM SINGLE ESTIMATE # symmetric errors, might not be appropriate mean<- object@data$summary$de sd<- object@data$summary$de_err if (anyNA(c(mean, sd))) { .throw_warning("Unable to plot the MAM single estimate (NA value)") } else { x<- seq(mean-5*sd, mean+5*sd, 0.001) y<- dnorm(seq(mean-5*sd, mean+5*sd, 0.001), mean, sd) # normalise y-values y<- y/max(y) points(x, y, type="l", col="red") ## asymmetric errors x<- unlist(object@data$profile@profile$gamma$par.vals[,1]) y<- abs(unlist(object@data$profile@profile$gamma$z)) if(object@data$args$log == TRUE) { x<- exp(x) } # now invert the data by shifting y<- -y y<- y-min(y) y<- y/max(y) # fit a smoothing spline l<- stats::spline(x = x, y = y, method = "n", n = 1000) # make the endpoints zero l$y[1]<- l$y[length(l$y)]<- 0 # add profile log likelihood curve to plot lines(l, col="blue", lwd=1) # add vertical lines of the mean values #points(x = 80, y = 100,type = "l") } #### ------ PLOT DE par(new = TRUE) # sort the data in ascending order dat<- object@data$data[order(object@data$data[,1]),] x<- dat[,1] y<- 1:length(object@data$data[,1]) plot(x = x, y = y, xlim=xlim, ylim=c(0, max(y)+1), axes = FALSE, pch = 16, xlab = "", ylab="", xaxs="i", yaxs="i") axis(side = 4) mtext(text = "# Grain / aliquot", side = 4, line = 2.5) # get sorted errors err<- object@data$data[order(object@data$data[,1]),2] # fancy error bars graphics::arrows(x0 = x-err, y0 = y, x1 = x+err, y1 = y, code = 3, angle = 90, length = 0.05) ### ---- AUXILLARY # add legend legend("bottomright", bty = "n", col = c("grey80", "red", "blue", "black"), pch = c(NA,NA,NA,16), lty = c(1,1,1,1), lwd=c(10,2,2,2), legend = c("Bootstrap likelihood", "Profile likelihood (gaussian fit)","Profile likelihood", "Grain / aliquot"), ) }##EndOf::Bootstrap_plotting }#EndOf::CASE1_MinimumAgeModel-3 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ## CASE 2: Central Age Model --------- if(object@originator=="calc_CentralDose") { # get profile log likelihood data sig<- object@data$profile$sig*100 llik<- object@data$profile$llik # save previous plot parameter and set new ones .pardefault<- par(no.readonly = TRUE) # plot the profile log likeihood par(oma=c(2,1,2,1),las=1,cex.axis=1.2, cex.lab=1.2) plot(sig,llik,type="l",xlab=as.expression(bquote(sigma[OD]~"[%]")),ylab="Log likelihood",lwd=1.5) abline(h=0,lty=3) abline(h=-1.92,lty=3) title(as.expression(bquote("Profile log likelihood for" ~ sigma[OD]))) # find upper and lower confidence limits for sigma sigmax<- sig[which.max(llik)] tf<- abs(llik+1.92) < 0.05 sig95<- sig[tf] ntf<- length(sig95) sigL<- sig95[1] sigU<- sig95[ntf] # put them on the graph abline(v=sigL) abline(v=sigmax) abline(v=sigU) dx<- 0.006 dy<- 0.2 ytext<- min(llik) + dy res<- c(sigL,sigmax,sigU) text(res+dx,rep(ytext,3),round(res,2),adj=0) # restore previous plot parameters par(.pardefault) rm(.pardefault) }##EndOf::Case 2 - calc_CentralDose() #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ## CASE 3: Fuchs & Lang 2001 -------- if(object@originator=="calc_FuchsLang2001") { ##deal with addition arguments extraArgs <- list(...) main <- if("main" %in% names(extraArgs)) {extraArgs$main} else {"Fuchs & Lang (2001)"} xlab <- if("xlab" %in% names(extraArgs)) {extraArgs$xlab} else {expression(paste(D[e]," [s]"))} ylab <- if("ylab" %in% names(extraArgs)) {extraArgs$ylab} else {"# Aliquots"} sub <- if("sub" %in% names(extraArgs)) {extraArgs$sub} else {""} cex <- if("cex" %in% names(extraArgs)) {extraArgs$cex} else {1} lwd <- if("lwd" %in% names(extraArgs)) {extraArgs$lwd} else {1} pch <- if("pch" %in% names(extraArgs)) {extraArgs$pch} else {19} ylim <- if("ylim" %in% names(extraArgs)) {extraArgs$ylim} else {c(1,length(object@data$data[,1])+3)} xlim <- if("xlim" %in% names(extraArgs)) {extraArgs$xlim} else {c(min(object@data$data[,1])-max(object@data$data[,2]), max(object@data$data[,1])+max(object@data$data[,2]))} mtext <- if("mtext" %in% names(extraArgs)) {extraArgs$mtext} else {"unknown sample"} # extract relevant plotting parameters o<- order(object@data$data[[1]]) data_ordered<- object@data$data[o,] usedDeValues<- object@data$usedDeValues n.usedDeValues<- object@data$summary$n.usedDeValues par(cex = cex, mfrow=c(1,1)) ##PLOT counter<-seq(1,max(o)) plot(NA,NA, ylim = ylim, xlim = xlim, xlab = xlab, ylab = ylab, main = main, sub = sub) ##SEGMENTS segments(data_ordered[,1]-data_ordered[,2],1:length(data_ordered[,1]), data_ordered[,1]+data_ordered[,2],1:length(data_ordered[,1]), col="gray") ##POINTS points(data_ordered[,1], counter,pch=pch) ##LINES ##BOUNDARY INFORMATION ##lower boundary lines(c( usedDeValues[length(usedDeValues[,1])-n.usedDeValues+1,1], #boundary_counter for incorporate skipped values usedDeValues[length(usedDeValues[,1])-n.usedDeValues+1,1]), c(min(o)-0.5,max(o)+0.5), col="red", lty="dashed", lwd = lwd) #upper boundary lines(c(max(usedDeValues[,1]),max(usedDeValues[,1])),c(min(o)-0.5,max(o)+0.5), col="red",lty="dashed", lwd = lwd) #plot some further informations into the grafik graphics::arrows( usedDeValues[length(usedDeValues[,1])-n.usedDeValues+1,1]+usedDeValues[length(usedDeValues[,1])-n.usedDeValues+1,1]*0.02, #x1 max(o)+0.5, #y1 max(usedDeValues[,1]-usedDeValues[,1]*0.02), #x2 max(o)+0.5, #y2, code=3, length=0.03) text( c( usedDeValues[length(usedDeValues[,1])-n.usedDeValues+1,1], usedDeValues[length(usedDeValues[,1])-n.usedDeValues+1,1]), c(max(o)+2,max(o)+2), labels=paste("used values = ", n.usedDeValues), cex=0.6*cex, adj=0) ##MTEXT mtext(side=3,mtext,cex=cex) } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ## CASE 4: Finite Mixture Model -------- if(object@originator == "calc_FiniteMixture") { if(length(object@data$args$n.components) > 1) { ##deal with addition arguments extraArgs <- list(...) main <- if("main" %in% names(extraArgs)) {extraArgs$main} else {"Finite Mixture Model"} plot.proportions<- if("plot.proportions" %in% names(extraArgs)) {extraArgs$plot.proportions} else {TRUE} pdf.colors<- if("pdf.colors" %in% names(extraArgs)) {extraArgs$pdf.colors} else {"gray"} pdf.weight<- if("pdf.weight" %in% names(extraArgs)) {extraArgs$pdf.weight} else {TRUE} pdf.sigma<- if("pdf.sigma" %in% names(extraArgs)) {extraArgs$pdf.sigma} else {"sigmab"} # extract relevant data from object n.components <- object@data$args$n.components comp.n <- object@data$components sigmab <- object@data$args$sigmab BIC.n <- object@data$BIC$BIC LLIK.n <- object@data$llik$llik # save previous plot parameter and set new ones .pardefault<- par(no.readonly = TRUE) ## DEVICE AND PLOT LAYOUT n.plots<- length(n.components) #number of PDF plots in plot area #1 seq.vertical.plots<- seq(from = 1, to = n.plots, by = 1) #indices ID.plot.two<- n.plots+if(plot.proportions==TRUE){1}else{0} #ID of second plot area ID.plot.three<- n.plots+if(plot.proportions==TRUE){2}else{1} #ID of third plot area #empty vector for plot indices seq.matrix<- vector(mode="integer", length=4*n.plots) #fill vector with plot indices in correct order cnt<- 1 seq<- seq(1,length(seq.matrix),4) for(i in seq) { seq.matrix[i]<- cnt seq.matrix[i+1]<- cnt seq.matrix[i+2]<- if(plot.proportions==TRUE){ID.plot.two}else{cnt} seq.matrix[i+3]<- ID.plot.three cnt<- cnt+1 } # create device layout layout(matrix(c(seq.matrix),4,n.plots)) # outer margins (bottom, left, top, right) par(oma=c(2.5,5,3,5)) # general plot parameters (global scaling, allow overplotting) par(cex = 0.8, xpd = NA) # define colour palette for prettier output if(pdf.colors == "colors") { col.n<- c("red3", "slateblue3", "seagreen", "tan3", "yellow3", "burlywood4", "magenta4", "mediumpurple3", "brown4","grey", "aquamarine") poly.border<- FALSE } if(pdf.colors == "gray" || pdf.colors == "grey") { col.n <- grDevices::gray.colors(length(n.components)*2) poly.border<- FALSE } if(pdf.colors == "none") { col.n <- rgb(0,0,0,0) poly.border<- TRUE } ##-------------------------------------------------------------------------- ## PLOT 1: EQUIVALENT DOSES OF COMPONENTS ## create empty plot without x-axis for(i in 1:n.plots) { pos.n<- seq(from = 1, to = n.components[i]*3, by = 3) # set margins (bottom, left, top, right) par(mar=c(1,0,2,0)) # empty plot area plot(NA, NA, xlim=c(min(n.components)-0.2, max(n.components)+0.2), ylim=c(min(comp.n[pos.n,]-comp.n[pos.n+1,], na.rm = TRUE), max((comp.n[pos.n,]+comp.n[pos.n+1,])*1.1, na.rm = TRUE)), ylab="", xaxt="n", yaxt="n", xlab="") # add text in upper part of the plot ("k = 1,2..n") mtext(bquote(italic(k) == .(n.components[i])), side = 3, line = -2, cex=0.8) # add y-axis label (only for the first plot) if(i==1) { mtext(expression(paste("D"[e]," [Gy]")), side=2,line=2.7, cex=1) } # empty list to store normal distribution densities sapply.storage<- list() ## NORMAL DISTR. OF EACH COMPONENT # LOOP - iterate over number of components for(j in 1:max(n.components)) { # draw random values of the ND to check for NA values suppressWarnings( comp.nd.n<- sort(rnorm(n = length(object@data$data[,1]), mean = comp.n[pos.n[j],i], sd = comp.n[pos.n[j]+1,i])) ) # proceed if no NA values occurred if(length(comp.nd.n)!=0) { # weight - proportion of the component wi<- comp.n[pos.n[j]+2,i] # calculate density values with(out) weights fooX<- function(x) { dnorm(x, mean = comp.n[pos.n[j],i], sd = if(pdf.sigma=="se"){comp.n[pos.n[j]+1,i]} else{if(pdf.sigma=="sigmab"){comp.n[pos.n[j],i]*sigmab}} )* if(pdf.weight==TRUE){wi}else{1} } # x-axis scaling - determine highest dose in first cycle if(i==1 && j==1){ max.dose<- max(object@data$data[,1])+sd(object@data$data[,1])/2 min.dose<- min(object@data$data[,1])-sd(object@data$data[,1])/2 # density function to determine y-scaling if no weights are used fooY<- function(x) { dnorm(x, mean = na.exclude(comp.n[pos.n,]), sd = na.exclude(comp.n[pos.n+1,])) } # set y-axis scaling dens.max<-max(sapply(0:max.dose, fooY)) }##EndOfIf::first cycle settings # override y-axis scaling if weights are used if(pdf.weight==TRUE){ sapply.temp<- list() for(b in 1:max(n.components)){ # draw random values of the ND to check for NA values suppressWarnings( comp.nd.n<- sort(rnorm(n = length(object@data$data[,1]), mean = comp.n[pos.n[b],i], sd = comp.n[pos.n[b]+1,i])) ) # proceed if no NA values occurred if(length(comp.nd.n)!=0) { # weight - proportion of the component wi.temp<- comp.n[pos.n[b]+2,i] fooT<- function(x) { dnorm(x, mean = comp.n[pos.n[b],i], sd = if(pdf.sigma=="se"){comp.n[pos.n[b]+1,i]} else{if(pdf.sigma=="sigmab"){comp.n[pos.n[b],i]*sigmab}} )*wi.temp } sapply.temp[[b]]<- sapply(0:max.dose, fooT) } } dens.max<- max(Reduce('+', sapply.temp)) } # calculate density values for 0 to maximum dose sapply<- sapply(0:max.dose, fooX) # save density values in list for sum curve of gaussians sapply.storage[[j]]<- sapply ## determine axis scaling # x-axis (dose) if("dose.scale" %in% names(extraArgs)) { y.scale<- extraArgs$dose.scale } else { y.scale<- c(min.dose,max.dose) } # y-axis (density) if("pdf.scale" %in% names(extraArgs)) { x.scale<- extraArgs$pdf.scale } else { x.scale<- dens.max*1.1 } ## PLOT Normal Distributions par(new=TRUE) plot(sapply, 1:length(sapply)-1, type="l", yaxt="n", xaxt="n", col=col.n[j], lwd=1, ylim=y.scale, xlim=c(0,x.scale), xaxs="i", yaxs="i", ann=FALSE, xpd = FALSE) # draw coloured polygons under curve polygon(x=c(min(sapply), sapply, min(sapply)), y=c(0, 0:max.dose, 0), col = adjustcolor(col.n[j], alpha.f = 0.66), yaxt="n", border=poly.border, xpd = FALSE, lty = 2, lwd = 1.5) } }##EndOf::Component loop # Add sum of Gaussian curve par(new = TRUE) plot(Reduce('+', sapply.storage),1:length(sapply)-1, type="l", yaxt="n", xaxt="n", col="black", lwd=1.5, lty = 1, ylim=y.scale, xlim=c(0,x.scale), xaxs="i", yaxs="i", ann=FALSE, xpd = FALSE) # draw additional info during first k-cycle if(i == 1) { # plot title mtext("Normal distributions", side = 3, font = 2, line = 0, adj = 0, cex = 0.8) # main title mtext(main, side = 3, font = 2, line = 3.5, adj = 0.5, at = graphics::grconvertX(0.5, from = "ndc", to = "user")) # subtitle mtext(as.expression(bquote(italic(sigma[b]) == .(sigmab) ~ "|" ~ n == .(length(object@data$data[,1])))), side = 3, font = 1, line = 2.2, adj = 0.5, at = graphics::grconvertX(0.5, from = "ndc", to = "user"), cex = 0.9) # x-axis label mtext("Density [a.u.]", side = 1, line = 0.5, adj = 0.5, at = graphics::grconvertX(0.5, from = "ndc", to = "user")) # draw y-axis with proper labels axis(side=2, labels = TRUE) } if(pdf.colors == "colors") { # create legend labels dose.lab.legend<- paste("c", 1:n.components[length(n.components)], sep="") ncol.temp <- min(max(n.components), 8) yadj <- if (max(n.components) > 8) 1.025 else 0.93 # add legend if(i==n.plots) { legend(graphics::grconvertX(0.55, from = "ndc", to = "user"), graphics::grconvertY(yadj, from = "ndc", to = "user"), legend = dose.lab.legend, col = col.n[1:max(n.components)], pch = 15, adj = c(0,0.2), pt.cex=1.4, bty = "n", ncol=ncol.temp, x.intersp=0.4) mtext("Components: ", cex = 0.8, at = graphics::grconvertX(0.5, from = "ndc", to = "user")) } } }##EndOf::k-loop and Plot 1 ##-------------------------------------------------------------------------- ## PLOT 2: PROPORTION OF COMPONENTS if(plot.proportions==TRUE) { # margins for second plot par(mar=c(2,0,2,0)) # create matrix with proportions from a subset of the summary matrix prop.matrix<- comp.n[pos.n+2,]*100 # stacked barplot of proportions without x-axis graphics::barplot(prop.matrix, width=1, xlim=c(0.2, length(n.components)-0.2), ylim=c(0,100), axes=TRUE, space=0, col=col.n, xpd=FALSE, xaxt="n") # y-axis label mtext("Proportion [%]", side=2,line=3, cex=1) # add x-axis with corrected tick positions axis(side = 1, labels = n.components, at = n.components+0.5-n.components[1]) # draw a box (not possible with barplot()) graphics::box(lty = 1, col = "black") # add subtitle mtext("Proportion of components", side = 3, font = 2, line = 0, adj = 0, cex = 0.8) } ##-------------------------------------------------------------------------- ## PLOT 3: BIC & LLIK # margins for third plot par(mar=c(2,0,2,0)) # prepare scaling for both y-axes BIC.scale<- c(min(BIC.n)*if(min(BIC.n)<0){1.2}else{0.8}, max(BIC.n)*if(max(BIC.n)<0){0.8}else{1.2}) LLIK.scale<- c(min(LLIK.n)*if(min(LLIK.n)<0){1.2}else{0.8}, max(LLIK.n)*if(max(LLIK.n)<0){0.8}else{1.2}) # plot BIC scores plot(n.components, BIC.n, main= "", type="b", pch=22, cex=1.5, xlim=c(min(n.components)-0.2, max(n.components)+0.2), ylim=BIC.scale, xaxp=c(min(n.components), max(n.components), length(n.components)-1), xlab=expression(paste(italic(k), " Components")), ylab=expression(paste("BIC")), cex.lab=1.25) # following plot should be added to previous par(new = TRUE) # plot LLIK estimates plot(n.components, LLIK.n, xlim=c(min(n.components)-0.2, max(n.components)+0.2), xaxp=c(min(n.components), max(n.components), length(n.components)-1), ylim=LLIK.scale, yaxt="n", type="b", pch=16, xlab="", ylab="", lty=2, cex = 1.5) # subtitle mtext("Statistical criteria", side = 3, font = 2, line = 0, adj = 0, cex = 0.8) # second y-axis with proper scaling axis(side = 4, ylim=c(0,100)) # LLIK axis label mtext(bquote(italic(L)[max]), side=4,line=3, cex=1.3) # legend legend(graphics::grconvertX(0.75, from = "nfc", to = "user"), graphics::grconvertY(0.96, from = "nfc", to = "user"), legend = c("BIC", as.expression(bquote(italic(L)[max]))), pch = c(22,16), pt.bg=c("white","black"), adj = 0, pt.cex=1.3, lty=c(1,2), bty = "n", horiz = TRUE, x.intersp=0.5) ## restore previous plot parameters par(.pardefault) } }##EndOf::Case 4 - Finite Mixture Model #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ## CASE 5: Aliquot Size --------- if(object@originator=="calc_AliquotSize") { if(!is.null(object@data$MC$estimates)) { extraArgs <- list(...) main <- if("main" %in% names(extraArgs)) { extraArgs$main } else { "Monte Carlo Simulation" } xlab <- if("xlab" %in% names(extraArgs)) { extraArgs$xlab } else { "Amount of grains on aliquot" } # extract relevant data MC.n<- object@data$MC$estimates MC.n.kde<- object@data$MC$kde MC.stats<- object@data$MC$statistics MC.q<- object@data$MC$quantile MC.iter<- object@data$args$MC.iter # set layout of plotting device layout(matrix(c(1,1,2)),2,1) par(cex = 0.8) ## plot MC estimate distribution # set margins (bottom, left, top, right) par(mar=c(2,5,5,3)) # plot histogram hist(MC.n, freq=FALSE, col = "gray90", main="", xlab=xlab, xlim = c(min(MC.n)*0.95, max(MC.n)*1.05), ylim = c(0, max(MC.n.kde$y)*1.1)) # add rugs to histogram graphics::rug(MC.n) # add KDE curve lines(MC.n.kde, col = "black", lwd = 1) # add mean, median and quantils (0.05,0.95) abline(v=c(MC.stats$mean, MC.stats$median, MC.q), lty=c(2, 4, 3,3), lwd = 1) # add main- and subtitle mtext(main, side = 3, adj = 0.5, line = 3, cex = 1) mtext(as.expression(bquote(italic(n) == .(MC.iter) ~ "|" ~ italic(hat(mu)) == .(round(MC.stats$mean)) ~ "|" ~ italic(hat(sigma)) == .(round(MC.stats$sd.abs)) ~ "|" ~ italic(frac(hat(sigma),sqrt(n))) == .(round(MC.stats$se.abs)) ~ "|" ~ italic(v) == .(round(MC.stats$skewness, 2)) ) ), side = 3, line = 0.3, adj = 0.5, cex = 0.9) # add legend legend("topright", legend = c("mean","median", "0.05 / 0.95 quantile"), lty = c(2, 4, 3), bg = "white", box.col = "white", cex = 0.9) ## BOXPLOT # set margins (bottom, left, top, right) par(mar=c(5,5,0,3)) plot(NA, type="n", xlim=c(min(MC.n)*0.95, max(MC.n)*1.05), xlab=xlab, ylim=c(0.5,1.5), xaxt="n", yaxt="n", ylab="") par(bty="n") graphics::boxplot(MC.n, horizontal = TRUE, add = TRUE, bty = "n") } else { on.exit(NULL, add = TRUE) # FIXME(mcol): seems unnecessary } }#EndOf::Case 5 - calc_AliqoutSize() #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ## CASE 6: calc_SourceDoseRate() ---------- if(object@originator=="calc_SourceDoseRate") { ##prepare data ##get data df <- get_RLum(object = object, data.object = "dose.rate") ##reduce the size for plotting, more than 100 points make no sense if(nrow(df)>100) df <- df[seq(1,nrow(df), length = 100),] ##plot settings plot.settings <- list( main = "Source Dose Rate Prediction", xlab = "Date", ylab = paste0( "Dose rate/(",get_RLum(object = object, data.object = "parameters")$dose.rate.unit,")"), log = "", cex = 1, xlim = NULL, ylim = c(min(df[,1]) - max(df[,2]), max(df[,1]) + max(df[,2])), pch = 1, mtext = paste0( "source type: ", get_RLum(object = object, data.object = "parameters")$source.type, " | ", "half-life: ", get_RLum(object = object, data.object = "parameters")$halflife, " a" ), grid = expression(nx = 10, ny = 10), col = 1, type = "b", lty = 1, lwd = 1, segments = "" ) ##modify list if something was set plot.settings <- modifyList(plot.settings, list(...)) ##plot plot( df[,3], df[,1], main = plot.settings$main, xlab = plot.settings$xlab, ylab = plot.settings$ylab, xlim = plot.settings$xlim, ylim = plot.settings$ylim, log = plot.settings$log, pch = plot.settings$pch, col = plot.settings$pch, type = plot.settings$type, lty = plot.settings$lty, lwd = plot.settings$lwd ) if(!is.null(plot.settings$segments)){ segments( x0 = df[,3], y0 = df[,1] + df[,2], x1 = df[,3], y1 = df[,1] - df[,2] ) } mtext(side = 3, plot.settings$mtext) if(!is.null(plot.settings$grid)){ graphics::grid(eval(plot.settings$grid)) } }#EndOf::Case 6 - calc_SourceDoseRate() #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ## CASE 7: Fast Ratio ---------- if (object@originator=="calc_FastRatio") { # graphical settings settings <- list(main = "Fast Ratio", xlab = "t/s", ylab = "Signal/cts", type = "b", log = "", pch = 16, cex = 1.0, col = "black") settings <- modifyList(settings, list(...)) par(cex = settings$cex) # fetch data from RLum.Results object curve <- get_RLum(object, "data") if (inherits(curve, "RLum.Data.Curve")) curve <- get_RLum(curve) res <- get_RLum(object, "summary") fit <- get_RLum(object, "fit") # calculate the dead channel time offset offset <- res$dead.channels.start * res$channel.width # plot the OSL curve plot(curve, type = "n", main = settings$main, xlab = settings$xlab, ylab = settings$ylab, log = settings$log) # plot points to show measured data points (i.e., the channels) if (settings$type == "p" || settings$type == "b") points(curve[(res$dead.channels.start + 1):(nrow(curve) - res$dead.channels.end), ], pch = settings$pch, col = settings$col) # plot dead channels as empty circles if (res$dead.channels.start > 0) points(curve[1:res$dead.channels.start,]) if (res$dead.channels.end > 0) points(curve[(nrow(curve) - res$dead.channels.end):nrow(curve), ]) if (settings$type == "l" || settings$type == "b") lines(curve, col = settings$col) # optional: plot fitted CW curve if (!is.null(fit)) { nls.fit <- get_RLum(fit, "fit") if (!inherits(fit, "try-error") & "fitCW.curve" %in% names(object@data$args)) { if (object@data$args$fitCW.curve == "T" | object@data$args$fitCW.curve == TRUE) { lines(curve[(res$dead.channels.start + 1):(nrow(curve) - res$dead.channels.end), 1], predict(nls.fit), col = "red", lty = 1) ##plot curve for additional parameters col_components <- c("red", "green", "blue") for (i in 1:3) { if (!is.na(fit@data$data[[paste0("I0", i)]])) curve(fit@data$data[[paste0("I0", i)]] * fit@data$data[[paste0("lambda", i)]] * exp(-fit@data$data[[paste0("lambda", i)]] * x), lwd = 1, lty = 4, add = TRUE, col = col_components[i]) } } } } # add vertical lines and labels for L1, L2, L3 L_times <- c(curve[res$Ch_L1, 1], curve[res$Ch_L2, 1], curve[res$Ch_L3_start, 1], curve[res$Ch_L3_end, 1]) + offset abline(v = L_times, lty = 2) text(L_times, max(curve[ ,2]) * 0.95, pos = c(4,4,2,2), labels = expression('L'[1], 'L'[2], 'L'[3['start']], 'L'[3['end']])) }#EndOf::Case7 - calc_FastRatio() } Luminescence/R/Risoe.BINfileData2RLum.Data.Curve.R0000644000176200001440000000723514762554470021174 0ustar liggesusers#' Convert an element from a Risoe.BINfileData object to an RLum.Data.Curve #' object #' #' The function converts one specified single record from a Risoe.BINfileData #' object to an RLum.Data.Curve object. #' #' The function extracts all `METADATA` from the `Risoe.BINfileData` #' object and stores them in the `RLum.Data.Curve` object. This function #' can be used stand-alone, but is the base function for [Risoe.BINfileData2RLum.Analysis]. #' #' @param object [Risoe.BINfileData-class] (**required**): #' `Risoe.BINfileData` object #' #' @param id [integer] (**required**): #' record id in the `Risoe.BINfileData` object of the curve that is to be #' stored in the `RLum.Data.Curve` object. If no value for id is provided, #' the record has to be specified by `pos`, `set` and `run`. #' #' @param pos [integer] (*optional*): #' record position number in the `Risoe.BINfileData` object of the curve that #' is to be stored in the `RLum.Data.Curve` object. If a value for `id` is #' provided, this argument is ignored. #' #' @param run [integer] (*optional*): #' record run number in the `Risoe.BINfileData` object of the curve that is #' to be stored in the `RLum.Data.Curve` object. If a value for `id` is #' provided, this argument is ignored. #' #' @param set [integer] (*optional*): #' record set number in the `Risoe.BINfileData` object of the curve that is #' to be stored in the `RLum.Data.Curve` object. If a value for `id` is #' provided, this argument is ignored. #' #' @return Returns an [RLum.Data.Curve-class] object. #' #' @note #' Due to changes in the BIN-file (version 3 to version 4) format the recalculation of TL-curves might be not #' overall correct for cases where the TL measurement is combined with a preheat. #' #' @section Function version: 0.5.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Christoph Burow, Universtiy of Cologne (Germany) #' #' @seealso [Risoe.BINfileData2RLum.Analysis], [set_RLum], #' [RLum.Data.Curve-class], [RLum.Analysis-class], [Risoe.BINfileData-class], #' [plot_RLum] #' #' @keywords manip #' #' @examples #' #' ##get package example data #' data(ExampleData.BINfileData, envir = environment()) #' #' ##convert one record #' Risoe.BINfileData2RLum.Data.Curve(CWOSL.SAR.Data, id = 1) #' #' @md #' @noRd .Risoe.BINfileData2RLum.Data.Curve <- function( object, id, pos, run, set ){ ##disaggregate object ... this makes it much faster below ##we could also access via index, not number, but this is far to risky, as ##every update in the BIN-file version will break the code here METADATA <- as.list(object@METADATA) DATA <- object@DATA # grep id of record ------------------------------------------------------- ##if id is set, no input for pos and run is necessary if (missing(id)) { id <- METADATA$ID[METADATA[["POSITION"]] == pos & METADATA[["SET"]] == set & METADATA[["RUN"]] == run] } ##grep info elements info <- lapply(1:length(names(METADATA)), function(x){METADATA[[x]][id]}) names(info) <- names(METADATA) # Build object ------------------------------------------------------------ set_RLum( class = "RLum.Data.Curve", recordType = METADATA[["LTYPE"]][id], data = src_create_RLumDataCurve_matrix( DATA = DATA[[id]], NPOINTS = METADATA[["NPOINTS"]][id], VERSION = METADATA[["VERSION"]][id], LTYPE = METADATA[["LTYPE"]][id], LOW = METADATA[["LOW"]][id], HIGH = METADATA[["HIGH"]][id], AN_TEMP = METADATA[["AN_TEMP"]][id], TOLDELAY = METADATA[["TOLDELAY"]][id], TOLON = METADATA[["TOLON"]][id], TOLOFF = METADATA[["TOLOFF"]][id] ), info = info ) } Luminescence/R/write_R2TIFF.R0000644000176200001440000000614114762554470015376 0ustar liggesusers#'@title Export RLum.Data.Image and RLum.Data.Spectrum objects to TIFF Images #' #'@description Simple wrapper around [tiff::writeTIFF] to export suitable #' RLum-class objects to TIFF images. Per default 16-bit TIFF files are exported. #' #'@param object [RLum.Data.Image-class] or [RLum.Data.Spectrum-class] object (**required**): #'input object, can be a [list] of such objects #' #'@param file [character] (**required**): the file name and path #' #'@param norm [numeric] (*with default*): normalisation values. Values in TIFF files must range between 0-1, however, usually #'in imaging applications the pixel values are real integer count values. The normalisation to the #'to the highest 16-bit integer values -1 ensures that the numerical values are retained in the exported #'image. If `1` nothing is normalised. #' #'@param ... further arguments to be passed to [tiff::writeTIFF]. #' #'@return A TIFF file #' #'@author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@section Function version: 0.1.0 #' #'@seealso [tiff::writeTIFF], [RLum.Data.Image-class], [RLum.Data.Spectrum-class] #' #'@keywords IO #' #'@examples #'data(ExampleData.RLum.Data.Image, envir = environment()) #'write_R2TIFF(ExampleData.RLum.Data.Image, file = tempfile()) #' #'@md #'@export write_R2TIFF <- function( object, file = tempfile(), norm = 65535, ... ) { .set_function_name("write_R2TIFF") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- ## most of the users don't need this import, no need to bother them ## with required libraries .require_suggested_package("tiff", "Exporting objects to TIFF files") ## make a list ... it is just easier if(!is(object, "list")) object <- list(object) ## check list input sapply(object, function(x) { .validate_class(x, c("RLum.Data.Image", "RLum.Data.Spectrum"), extra = "a 'list' of such objects", name = "'object'") if (inherits(x, "RLum.Data.Image") && length(dim(x@data)) != 3) .throw_error("Empty RLum.Data.Image object detected") }) ## Prepare filenames ------------------------------------------------------ ## check path if(!dir.exists(dirname(file))) .throw_error("Path does not exist") ## create file names file <- normalizePath(file, mustWork = FALSE) file_dir <- dirname(file) file_base <- strsplit(basename(file), split = ".", fixed = TRUE)[[1]][1] ## expand if longer than 1 if(length(object) > 1) file <- normalizePath(paste0(file_dir,"/",file_base,"_",1:length(object),".tiff"), mustWork = FALSE) ## Export to TIFF --------------------------------------------------------- ## remove arguments we already use args <- list(...)[!list(...) %in% c("what", "where")] ## modify arguments args <- modifyList(x = list( bits.per.sample = 16L ), args) for (i in seq_along(object)) { object[[i]]@data[] <- as.numeric(object[[i]]@data) object[[i]]@data[] <- object[[i]]@data / norm[1] do.call(what = tiff::writeTIFF, args = c(list(object[[i]]@data, where = file[i]), args)) } } Luminescence/R/convert_BIN2CSV.R0000644000176200001440000000712714762554470016043 0ustar liggesusers#' Export Risoe BIN-file(s) to CSV-files #' #' This function is a wrapper function around the functions [read_BIN2R] and #' [write_RLum2CSV] and it imports a Risoe BIN-file and directly exports its #' content to CSV-files. If nothing is set for the argument `path` #' ([write_RLum2CSV]) the input folder will become the output folder. #' #' @param file [character] (**required**): #' name of the BIN-file to be converted to CSV-files #' #' @param ... further arguments that will be passed to the function #' [read_BIN2R] and [write_RLum2CSV] #' #' @return #' The function returns either a CSV-file (or many of them) or for the #' option `export == FALSE` a list comprising objects of type [data.frame] and [matrix] #' #' @section Function version: 0.1.0 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Analysis-class], [RLum.Data-class], [RLum.Results-class], #' [utils::write.table], [write_RLum2CSV], [read_BIN2R] #' #' @keywords IO #' #' @examples #' #' ##transform Risoe.BINfileData values to a list #' data(ExampleData.BINfileData, envir = environment()) #' convert_BIN2CSV(subset(CWOSL.SAR.Data, POSITION == 1), export = FALSE) #' #' \dontrun{ #' ##select your BIN-file #' file <- file.choose() #' #' ##convert #' convert_BIN2CSV(file) #' #' } #' #' @md #' @export convert_BIN2CSV <- function( file, ... ) { .set_function_name("convert_BIN2CSV") on.exit(.unset_function_name(), add = TRUE) ## Integrity tests -------------------------------------------------------- .validate_class(file, c("character", "Risoe.BINfileData")) .validate_not_empty(file) ##set input arguments convert_BIN2CSV_settings.default <- list( path = if(!is(file, "Risoe.BINfileData")){dirname(file)}else{NULL}, show.raw.values = FALSE, position = NULL, n.records = NULL, zero_data.rm = TRUE, duplicated.rm = FALSE, show.record.number = FALSE, txtProgressBar = TRUE, forced.VersionNumber = NULL, ignore.RECTYPE = FALSE, pattern = NULL, verbose = TRUE, export = TRUE ) ##modify list on demand convert_BIN2CSV_settings <- modifyList(x = convert_BIN2CSV_settings.default, val = list(...)) # Import file --------------------------------------------------------------------------------- if(!is(file, "Risoe.BINfileData")){ object <- read_BIN2R( file = file, show.raw.values = convert_BIN2CSV_settings$show.raw.values, position = convert_BIN2CSV_settings$position, n.records = convert_BIN2CSV_settings$n.records, zero_data.rm = convert_BIN2CSV_settings$zero_data.rm, duplicated.rm = convert_BIN2CSV_settings$duplicated.rm, fastForward = TRUE, show.record.number = convert_BIN2CSV_settings$show.record.number, txtProgressBar = convert_BIN2CSV_settings$txtProgressBar, forced.VersionNumber = convert_BIN2CSV_settings$forced.VersionNumber, ignore.RECTYPE = convert_BIN2CSV_settings$ignore.RECTYPE, pattern = convert_BIN2CSV_settings$pattern, verbose = convert_BIN2CSV_settings$verbose ) }else{ object <- Risoe.BINfileData2RLum.Analysis(file) } # Export to CSV ------------------------------------------------------------------------------- ##get all arguments we want to pass and remove the doubled one arguments <- c(list(object = object, export = convert_BIN2CSV_settings$export), list(...)) arguments[duplicated(names(arguments))] <- NULL ##this if-condition prevents NULL in the terminal if(convert_BIN2CSV_settings$export == TRUE){ invisible(do.call("write_RLum2CSV", arguments)) }else{ do.call("write_RLum2CSV", arguments) } } Luminescence/R/RLum-class.R0000644000176200001440000000470314762554470015214 0ustar liggesusers#' Class `"RLum"` #' #' Abstract class for data in the package Luminescence #' Subclasses are: #' #' **RLum-class**\cr #' |\cr #' |----[RLum.Data-class]\cr #' |----|-- [RLum.Data.Curve-class]\cr #' |----|-- [RLum.Data.Spectrum-class]\cr #' |----|-- [RLum.Data.Image-class]\cr #' |----[RLum.Analysis-class]\cr #' |----[RLum.Results-class] #' #' @name RLum-class #' #' @docType class #' #' @slot originator #' Object of class [character] containing the name of the producing #' function for the object. Set automatically by using the function [set_RLum]. #' #' @slot info #' Object of class [list] for additional information on the object itself #' #' @slot .uid #' Object of class [character] for a unique object identifier. This id is #' usually calculated using the internal function `create_UID()` if the function [set_RLum] #' is called. #' #' @slot .pid #' Object of class [character] for a parent id. This allows nesting RLum-objects #' at will. The parent id can be the uid of another object. #' #' @note `RLum` is a virtual class. #' #' @section Objects from the Class: #' A virtual Class: No objects can be created from it. #' #' @section Class version: 0.4.0 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Data-class], [RLum.Data.Curve-class], [RLum.Data.Spectrum-class], [RLum.Data.Image-class], #' [RLum.Analysis-class], [RLum.Results-class], [methods_RLum] #' #' @keywords classes #' #' @examples #' #' showClass("RLum") #' #' @md #' @export setClass("RLum", slots = list( originator = "character", info = "list", .uid = "character", .pid = "character" ), contains = "VIRTUAL", prototype = prototype( originator = NA_character_, info = list(), .uid = NA_character_, .pid = NA_character_ ) ) # replication method for object class ------------------------------------------ #' @describeIn RLum #' Replication method RLum-objects #' #' @param object [RLum-class] (**required**): #' an object of class [RLum-class] #' #' @param times [integer] (*optional*): #' number for times each element is repeated element #' #' @md #' @export setMethod( "replicate_RLum", "RLum", definition = function(object, times = NULL) { ##The case this is NULL if (is.null(times)) times <- 1 ## replicate lapply(1:times, function(x) object) } ) Luminescence/R/template_DRAC.R0000644000176200001440000007235314762554470015644 0ustar liggesusers#' @title Create a DRAC input data template (v1.2) #' #' @description This function returns a DRAC input template (v1.2) to be used in conjunction #' with the [use_DRAC] function #' #' @param nrow [integer] (*with default*): #' specifies the number of rows of the template (i.e., the number of data #' sets you want to submit). #' #' @param preset [character] (*optional*): #' By default, all values of the template are set to `NA`, which means that #' the user needs to fill in **all** data first before submitting to DRAC #' using `use_DRAC()`. To reduce the number of values that need to be #' provided, `preset` can be used to create a template with at least #' a minimum of reasonable preset values. #' #' `preset` can be one of the following: #' - `quartz_coarse` #' - `quartz_fine` #' - `feldspar_coarse` #' - `polymineral_fine` #' - `DRAC-example_quartz` #' - `DRAC-example_feldspar` #' - `DRAC-example_polymineral` #' #' Note that the last three options can be used to produce a template #' with values directly taken from the official DRAC input `.csv` file. #' #' @param file_input [character] file connection to a DRAC `.csv` file, the file #' will be imported and translated to the template that can be used by [use_DRAC]. #' Please note that there is not check on validity of the `.csv` file. #' #' @param notification [logical] (*with default*): #' show or hide the notification #' #' @return A list of class `DRAC.list`. #' #' @author #' Christoph Burow, University of Cologne (Germany), Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @references #' Durcan, J.A., King, G.E., Duller, G.A.T., 2015. DRAC: Dose Rate and Age Calculator for trapped charge dating. #' Quaternary Geochronology 28, 54-61. doi:10.1016/j.quageo.2015.03.012 #' #' @seealso [as.data.frame], [list] #' #' @examples #' #' # create a new DRAC input input #' input <- template_DRAC(preset = "DRAC-example_quartz") #' #' # show content of the input #' print(input) #' print(input$`Project ID`) #' print(input[[4]]) #' #' #' ## Example: DRAC Quartz example #' # note that you only have to assign new values where they #' # are different to the default values #' input$`Project ID` <- "DRAC-Example" #' input$`Sample ID` <- "Quartz" #' input$`Conversion factors` <- "AdamiecAitken1998" #' input$`External U (ppm)` <- 3.4 #' input$`errExternal U (ppm)` <- 0.51 #' input$`External Th (ppm)` <- 14.47 #' input$`errExternal Th (ppm)` <- 1.69 #' input$`External K (%)` <- 1.2 #' input$`errExternal K (%)` <- 0.14 #' input$`Calculate external Rb from K conc?` <- "N" #' input$`Calculate internal Rb from K conc?` <- "N" #' input$`Scale gammadoserate at shallow depths?` <- "N" #' input$`Grain size min (microns)` <- 90 #' input$`Grain size max (microns)` <- 125 #' input$`Water content ((wet weight - dry weight)/dry weight) %` <- 5 #' input$`errWater content %` <- 2 #' input$`Depth (m)` <- 2.2 #' input$`errDepth (m)` <- 0.22 #' input$`Overburden density (g cm-3)` <- 1.8 #' input$`errOverburden density (g cm-3)` <- 0.1 #' input$`Latitude (decimal degrees)` <- 30.0000 #' input$`Longitude (decimal degrees)` <- 70.0000 #' input$`Altitude (m)` <- 150 #' input$`De (Gy)` <- 20 #' input$`errDe (Gy)` <- 0.2 #' #' # use DRAC #' \dontrun{ #' output <- use_DRAC(input) #' } #' #' @md #' @export template_DRAC <- function( nrow = 1L, preset = NULL, file_input = NULL, notification = TRUE ) { .set_function_name("template_DRAC") on.exit(.unset_function_name(), add = TRUE) ## TODO: # 1 - allow mineral specific presets; new argument 'mineral' # 2 - add option to return the DRAC example data set .validate_positive_scalar(nrow, int = TRUE) ## PRESETS ---- valid_presets <- c("quartz_coarse", "quartz_fine", "feldspar_coarse", "polymineral_fine", "DRAC-example_quartz", "DRAC-example_feldspar", "DRAC-example_polymineral") preset <- .validate_args(preset, valid_presets, null.ok = TRUE) ## FILE ---------- if(!is.null(file_input)) { ## read csv file from DRAC file_input <- read.csv( file = file_input, skip = 8, check.names = FALSE, header = TRUE, stringsAsFactors = FALSE)[-1, ] ## cut columns to current template n_col <- length(template_DRAC(notification = FALSE)) file_input <- file_input[,1:n_col] ## reset rows nrow <- nrow(file_input) } ## throw warning if (nrow > 5000) .throw_warning("More than 5000 datasets might not be supported") ## LEGAL NOTICE ---- messages <- list("\n", "\t-------------------- IMPORTANT NOTE ------------------------\n", "\t This function returns a DRAC input template to be used in ", "\t conjunction with the use_DRAC() function. \n", "\t The template was reproduced with great care, but we do not", "\t take any responsibility and we are not liable for any ", "\t mistakes or unforeseen misbehaviour.", "\t Note that this template is only compatible with DRAC", "\t version 1.1. Before using this template make sure that", "\t this is the correct version, otherwise expect unspecified", "\t errors.\n", "\t Please ensure you cite the use of DRAC in your work,", "\t published or otherwise. Please cite the website name and", "\t version (e.g. DRAC v1.1) and the accompanying journal", "\t article:", "\t Durcan, J.A., King, G.E., Duller, G.A.T., 2015.", "\t DRAC: Dose rate and age calculation for trapped charge", "\t dating. Quaternary Geochronology 28, 54-61. \n", "\t Set 'notification = FALSE' to hide this message. \n", "\t-------------------- IMPORTANT NOTE ------------------------", "\n") if (notification) lapply(messages, message) # CREATE TEMPLATE ---- template <- list( `Project ID` = structure(rep(NA_character_, nrow), required = TRUE, allowsX = FALSE, default_class = "character", key = "TI:1", description = "Inputs can be alphabetic, numeric or selected symbols (/ - () [] _). Spaces are not permitted."), # `Sample ID` = structure(rep(NA_character_, nrow), required = TRUE, allowsX = FALSE, default_class = "character", key = "TI:2", description = "Inputs can be alphabetic, numeric or selected symbols (/ - () [] _). Spaces are not permitted."), # `Mineral` = structure(factor(rep(NA_character_, nrow), c("Q", "F", "PM")), required = TRUE, default_class = "factor", allowsX = FALSE, key = "TI:3", description = "The mineral used for dating: quartz, feldspar or polymineral. Input must be 'Q', 'F' or 'PM'."), # `Conversion factors` = structure(factor(rep(NA_character_, nrow), c("AdamiecAitken1998", "Guerinetal2011", "Liritzisetal2013", "Cresswelletal2018", "X")), required = FALSE, allowsX = TRUE, default_class = "factor", key = "TI:4", description = "The conversion factors required to calculate dose rates from radionuclide concentrations. Users have the option of datasets from Adamiec and Aitken (1998), Guerin et al. (2011), Liritzis et al. (2013) or Cresswell et al. (2018). Input must be 'AdamiecAitken1998', 'Guerinetal2011', 'Liritzisetal2013', 'Cresswelletal2018', or 'X' if conversion factors are not required."), # `External U (ppm)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:5", description = "Radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `errExternal U (ppm)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:6", description = "Radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `External Th (ppm)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:7", description = "Radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `errExternal Th (ppm)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:8", description = "Radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `External K (%)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:9", description = "Radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `errExternal K (%)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:10", description = "Radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `External Rb (ppm)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:11", description = "Radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `errExternal Rb (ppm)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:12", description = "Radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `Calculate external Rb from K conc?` = structure(factor(rep(NA_character_, nrow), c("Y", "N")), required = FALSE, default_class = "factor", allowsX = FALSE, key = "TI:13", description = "Option to calculate a Rubidium concentration from Potassium, using the 270:1 ratio suggested by Mejdahl (1987). Input should be yes 'Y' or no 'N'."), # `Internal U (ppm)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:14", description = "Internal radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `errInternal U (ppm)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:15", description = "Internal radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `Internal Th (ppm)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:16", description = "Internal radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `errInternal Th (ppm)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:17", description = "Internal radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `Internal K (%)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:18", description = "Internal radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `errInternal K (%)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:19", description = "Internal radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `Rb (ppm)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:20", description = "Internal radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `errRb (ppm)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:21", description = "Internal radionuclide concentrations in parts per million for Uranium, Thorium and Rubidium and % for Potassium. Inputs must be 0 or positive and should not be left blank."), # `Calculate internal Rb from K conc?` = structure(factor(rep(NA_character_, nrow), c("Y", "N")), required = FALSE, allowsX = FALSE, default_class = "factor", key = "TI:22", description = "Option to calculate an internal Rubidium concentration from Potassium, using the 270:1 ratio suggested by Mejdahl (1987). Input should be yes 'Y' or no 'N'."), # `User external alphadoserate (Gy.ka-1)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:23", description = "Users may input directly measured values for external alpha, beta and gamma dose rates (in Gy.ka-1). Any positive inputs in these fields will override dose rates calculated from radionuclide concentrations. Inputs should be 0 or positive and should not be left blank"), # `errUser external alphadoserate (Gy.ka-1)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:24", description = "Users may input directly measured values for external alpha, beta and gamma dose rates (in Gy.ka-1). Any positive inputs in these fields will override dose rates calculated from radionuclide concentrations. Inputs should be 0 or positive and should not be left blank"), # `User external betadoserate (Gy.ka-1)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:25", description = "Users may input directly measured values for external alpha, beta and gamma dose rates (in Gy.ka-1). Any positive inputs in these fields will override dose rates calculated from radionuclide concentrations. Inputs should be 0 or positive and should not be left blank"), # `errUser external betadoserate (Gy.ka-1)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:26", description = "Users may input directly measured values for external alpha, beta and gamma dose rates (in Gy.ka-1). Any positive inputs in these fields will override dose rates calculated from radionuclide concentrations. Inputs should be 0 or positive and should not be left blank"), # `User external gamma doserate (Gy.ka-1)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:27", description = "Users may input directly measured values for external alpha, beta and gamma dose rates (in Gy.ka-1). Any positive inputs in these fields will override dose rates calculated from radionuclide concentrations. Inputs should be 0 or positive and should not be left blank"), # `errUser external gammadoserate (Gy.ka-1)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:28", description = "Users may input directly measured values for external alpha, beta and gamma dose rates (in Gy.ka-1). Any positive inputs in these fields will override dose rates calculated from radionuclide concentrations. Inputs should be 0 or positive and should not be left blank"), # `User internal doserate (Gy.ka-1)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:29", description = "Users may input an internal dose rate (either alpha, beta or the sum of the two; in Gy.ka-1). DRAC will assume that this value has already been corrected for attenuation. Inputs in this field will override dose rates calculated from radionuclide concentrations. Inputs should be 0 or positive and not left blank."), # `errUser internal doserate (Gy.ka-1)` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:30", description = "Users may input an internal dose rate (either alpha, beta or the sum of the two; in Gy.ka-1). DRAC will assume that this value has already been corrected for attenuation. Inputs in this field will override dose rates calculated from radionuclide concentrations. Inputs should be 0 or positive and not left blank."), # `Scale gammadoserate at shallow depths?` = structure(factor(rep(NA_character_, nrow), c("Y", "N")), required = FALSE, allowsX = FALSE, default_class = "factor", key = "TI:31", description = "Users may choose to scale gamma dose rates for samples taken within 0.3 m of the ground surface. The scaling factors of Aitken (1985) are used. Input should be yes 'Y' or no 'N'."), # `Grain size min (microns)` = structure(rep(NA_integer_, nrow), required = TRUE, allowsX = FALSE, default_class = "integer", key = "TI:32", description = "The grain size range analysed. DRAC can be used for the grain size ranges between 1 and 1000 microns. Inputs should range between 1 and 1000 and not be left blank."), # `Grain size max (microns)` = structure(rep(NA_integer_, nrow), required = TRUE, allowsX = FALSE, default_class = "integer", key = "TI:33", description = "The grain size range analysed. DRAC can be used for the grain size ranges between 1 and 1000 microns. Inputs should range between 1 and 1000 and not be left blank."), # `alpha-Grain size attenuation` = structure(factor(rep(NA_character_, nrow), c("Bell1980", "Brennanetal1991")), required = TRUE, allowsX = FALSE, default_class = "factor", key = "TI:34", description = "The grain size attenuation factors for the alpha dose rate. Users have the option of datasets from Bell (1980) and Brennan et al. (1991). Input must be 'Bell1980' or 'Brennanetal1991'."), # `beta-Grain size attenuation ` = structure(factor(rep(NA_character_, nrow), c("Mejdahl1979", "Brennan2003", "Guerinetal2012-Q", "Guerinetal2012-F")), required = TRUE, allowsX = FALSE, default_class = "factor", key = "TI:35", description = "The grain size attenuation factors for the beta dose rate. Users have the option of datasets from Mejdahl (1979), Brennan (2003) and Guerin et al. (2012) for quartz or feldspar. Input must be 'Mejdahl1979', 'Brennan2003', 'Guerinetal2012-Q' or 'Guerinetal2012-F' ."), # `Etch depth min (microns)` = structure(rep(NA_integer_, nrow), required = TRUE, allowsX = FALSE, default_class = "integer", key = "TI:36", description = "The user defined etch depth range (microns). Inputs should range between 0 and 30 and not be left blank."), # `Etch depth max (microns)` = structure(rep(NA_integer_, nrow), required = TRUE, allowsX = FALSE, default_class = "integer", key = "TI:37", description = "The user defined etch depth range (microns). Inputs should range between 0 and 30 and not be left blank."), # `beta-Etch depth attenuation factor` = structure(factor(rep(NA_character_, nrow), c("Bell1979", "Brennan2003", "X")), required = FALSE, allowsX = TRUE, default_class = "factor", key = "TI:38", description = "The etch depth attenuation factors for the beta dose rate. Users have the option of datasets from Bell (1979) and Brennan (2003). Input must be 'Bell1979' or 'Brennan2003'. Note: only the dataset of Bell (1980) is provided for attenuation of the alpha dose rate by etching."), # `a-value` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:39", description = "Alpha track efficiency value and uncertainty defined by the user. Inputs should be 0 or positive and not left blank."), # `erra-value` = structure(rep(NA_real_, nrow), required = TRUE, allowsX = TRUE, default_class = "numeric", key = "TI:40", description = "Alpha track efficiency value and uncertainty defined by the user. Inputs should be 0 or positive and not left blank."), # `Water content ((wet weight - dry weight)/dry weight) %` = structure(rep(NA_real_, nrow), required = TRUE, allowsX = FALSE, default_class = "numeric", key = "TI:41", description = "Sediment water content (%) over the burial period. Inputs should be 0 or positive and not be left blank."), # `errWater content %` = structure(rep(NA_real_, nrow), required = FALSE, allowsX = FALSE, default_class = "numeric", key = "TI:42", description = "Sediment water content (%) over the burial period. Inputs should be 0 or positive and not be left blank."), # `Depth (m)` = structure(rep(NA_character_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:43", description = "Depth and uncertainty from which sample was extracted beneath the ground surface. Inputs should be 0 or positive and not left blank."), # `errDepth (m)` = structure(rep(NA_character_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:44", description = "Depth and uncertainty from which sample was extracted beneath the ground surface. Inputs should be 0 or positive and not left blank."), # `Overburden density (g cm-3)` = structure(rep(NA_real_, nrow), required = TRUE, allowsX = FALSE, default_class = "numeric", key = "TI:45", description = "Density of the overlying sediment matrix from which the sample was taken. Inputs should be 0 or positive and not be left blank. The scaling calculation will use the overburden density and uncertainty provided."), # `errOverburden density (g cm-3)` = structure(rep(NA_real_, nrow), required = TRUE, allowsX = FALSE, default_class = "numeric", key = "TI:46", description = "Density of the overlying sediment matrix from which the sample was taken. Inputs should be 0 or positive and not be left blank. The scaling calculation will use the overburden density and uncertainty provided."), # `Latitude (decimal degrees)` = structure(rep(NA_character_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:47", description = "Latitude and longitude of sample location (in degree decimals). Positive values should be used for northern latitudes and eastern longitudes and negative values for southern latitudes and western longitudes. Inputs should range from -90 to 90 degrees for latitudes and -180 to 180 degrees for longitude."), # `Longitude (decimal degrees)` = structure(rep(NA_character_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:48", description = "Latitude and longitude of sample location (in degree decimals). Positive values should be used for northern latitudes and eastern longitudes and negative values for southern latitudes and western longitudes. Inputs should range from -90 to 90 degrees for latitudes and -180 to 180 degrees for longitude."), # `Altitude (m)` = structure(rep(NA_character_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:49", description = "Altitude of sample location in metres above sea level. Input should be less than 5000 and not left blank."), # `User cosmicdoserate (Gy.ka-1)` = structure(rep(NA_character_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:50", description = "Users may input a cosmic dose rate (in Gy.ka-1). Inputs in these fields will override the DRAC calculated cosmic dose rate. Inputs should be positive or 'X' if not required, and not left blank."), # `errUser cosmicdoserate (Gy.ka-1)` = structure(rep(NA_character_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:51", description = "Users may input a cosmic dose rate (in Gy.ka-1). Inputs in these fields will override the DRAC calculated cosmic dose rate. Inputs should be positive or 'X' if not required, and not left blank."), # `De (Gy)` = structure(rep(NA_character_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:52", description = "Sample De and uncertainty (in Gy). Inputs should be positive or 'X' if not required, and not left blank."), # `errDe (Gy)` = structure(rep(NA_character_, nrow), required = FALSE, allowsX = TRUE, default_class = "numeric", key = "TI:53", description = "Sample De and uncertainty (in Gy). Inputs should be positive or 'X' if not required, and not left blank.") # ) ## RETURN VALUE ---- # add an additional DRAC class so we can define our own S3 method for as.data.frame class(template) <- c("DRAC.list", "list") # set preset if (!is.null(preset) && is.null(file_input)) template <- .preset_DRAC(template, preset) ## just fill the template if(!is.null(file_input)) { for(i in seq_along(file_input)) template[[i]] <- file_input[[i]] } ## return invisible(template) } .preset_DRAC <- function(x, preset) { preset_list <- list( ## DRAC COLUMNS (TI:xx) --- TI:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 "quartz_coarse" = list("RLum_preset", "quartz_coarse", "Q", "Guerinetal2011", "X", "X", "X", "X", "X", "X", "X", "X", "N", "X", "X", "X", "X", "X", "X", "X", "X", "N", "X", "X", "X", "X", "X", "X", "X", "X", "Y", 100L, 200L, "Brennanetal1991", "Guerinetal2012-Q", 20L, 5L, "Bell1979", 0.035, 0.01, 0.0, 0.0, 0.0, 0.0, 1.8, 0.1, "X", "X", 0, "X", "X", "X", "X"), "quartz_fine" = list("RLum_preset", "quartz_fine", "Q", "Guerinetal2011", "X", "X", "X", "X", "X", "X", "X", "X", "N", "X", "X", "X", "X", "X", "X", "X", "X", "N", "X", "X", "X", "X", "X", "X", "X", "X", "Y", 4L, 11L, "Brennanetal1991", "Guerinetal2012-Q", 0L, 0L, "Bell1979", 0.035, 0.01, 0, 0, 0, 0, 1.8, 0.1, "X", "X", 0, "X", "X", "X", "X"), "feldspar_coarse" = list("RLum_preset", "feldspar_coarse", "F", "Guerinetal2011", "X", "X", "X", "X", "X", "X", "X", "X", "Y", "X", "X", "X", "X", 12.5, 0.5, "X", "X", "N", "X", "X", "X", "X", "X", "X", "X", "X", "Y", 100L, 200L, "Brennanetal1991", "Guerinetal2012-F", 0L, 0L, "Bell1979", 0.08, 0.01, 0, 0, 0, 0, 1.8, 0.1, "X", "X", 0, "X", "X", "X", "X"), "polymineral_fine" = list("RLum_preset", "polymineral_fine", "PM", "Guerinetal2011", "X", "X", "X", "X", "X", "X", "X", "X", "Y", "X", "X", "X", "X", 12.5, 0.5, "X", "X", "N", "X", "X", "X", "X", "X", "X", "X", "X", "Y", 4L, 11L, "Brennanetal1991", "Guerinetal2012-F", 0L, 0L, "Bell1979", 0.08, 0.01, 0, 0, 0, 0, 1.8, 0.1, "X", "X", 0, "X", "X", "X", "X"), "DRAC-example_quartz" = list("DRAC-example", "Quartz", "Q", "Guerinetal2011", 3.4, 0.51, 14.47, 1.69, 1.2, 0.14, 0, 0, "N", "X", "X", "X", "X", "X", "X", "X", "X", "N", "X", "X", "X", "X", "X", "X", "X", "X", "N", 90L, 125L, "Brennanetal1991", "Guerinetal2012-Q", 8L, 10L, "Bell1979", 0, 0, 5, 2, 2.22, 0.05, 1.8, 0.1, 30, 70, 150, "X", "X", 20, 0.2), "DRAC-example_feldspar" = list( "DRAC-example", "Feldspar", "F", "AdamiecAitken1998", 2, 0.2, 8, 0.4, 1.75, 0.05, 0, 0, "Y", "X", "X", "X", "X", 12.5, 0.5, "X", "X", "N", "X", "X", "X", "X", "X", "X", "X", "X", "Y", 180L, 212L, "Bell1980", "Mejdahl1979", 0L, 0L, "Bell1979", 0.15, 0.05, 10, 3, 0.15, 0.02, 1.8, 0.1, 60, 100, 200, "X", "X", 15, 1.5), "DRAC-example_polymineral" = list("DRAC-example", "Polymineral", "PM", "AdamiecAitken1998", 4, 0.4, 12, 0.12, 0.83, 0.08, 0, 0, "Y", "X", "X", "X", "X", 12.5, 0.5, "X", "X", "N", "X", "X", 2.5, 0.15, "X", "X", "X", "X", "Y", 4L, 11L, "Bell1980", "Mejdahl1979", 0L, 0L, "Bell1979", 0.086, 0.0038, 10, 5, 0.2, 0.02, 1.8, 0.1, 46, 118, 200, 0.2, 0.1, 204.47, 2.69) ) n <- length(x[[1]]) for (i in 1:length(x)) x[[i]] <- rep(preset_list[[preset]][[i]], n) return(x) } Luminescence/R/analyse_Al2O3C_ITC.R0000644000176200001440000002567414762554470016402 0ustar liggesusers#' @title Al2O3 Irradiation Time Correction Analysis #' #' @description The function provides a very particular analysis to correct the irradiation #' time while irradiating Al2O3:C chips in a luminescence reader. #' #' @details Background: Due to their high dose sensitivity Al2O3:C chips are usually #' irradiated for only a very short duration or under the closed beta-source #' within a luminescence reader. However, due to its high dose sensitivity, during #' the movement towards the beta-source, the pellet already receives and non-negligible #' dose. Based on measurements following a protocol suggested by Kreutzer et al., 2018, #' a dose response curve is constructed and the intersection (absolute value) with the time axis #' is taken as real irradiation time. #' #' **`method_control`** #' #' To keep the generic argument list as clear as possible, arguments to allow a #' deeper control of the method are all preset with meaningful default parameters and can be #' handled using the argument `method_control` only, e.g., #' `method_control = list(fit.method = "LIN")`. Supported arguments are: #' #' \tabular{lll}{ #' **ARGUMENT** \tab **FUNCTION** \tab **DESCRIPTION**\cr #' `mode` \tab `fit_DoseResponseCurve` \tab as in [fit_DoseResponseCurve]; sets the mode used for fitting\cr #' `fit.method` \tab `fit_DoseResponseCurve` \tab as in [fit_DoseResponseCurve]; sets the function applied for fitting\cr #' } #' #' @param object [RLum.Analysis-class] or [list] (**required**): #' results obtained from the measurement. #' Alternatively a list of [RLum.Analysis-class] objects can be provided to allow an automatic analysis #' #' @param signal_integral [numeric] (*optional*): #' signal integral, used for the signal and the background. #' If nothing is provided the full range is used. Argument can be provided as [list]. #' #' @param dose_points [numeric] (*with default*): #' vector with dose points, if dose points are repeated, only the general #' pattern needs to be provided. Default values follow the suggestions #' made by Kreutzer et al., 2018. Argument can be provided as [list]. #' #' @param recordType [character] (*with default*): input curve selection, which is passed to #' function [get_RLum]. To deactivate the automatic selection set the argument to `NULL` #' #' @param method_control [list] (*optional*): #' optional parameters to control the calculation. #' See details for further explanations #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param ... further arguments that can be passed to the plot output #' #' @return #' Function returns results numerically and graphically: #' #' -----------------------------------\cr #' `[ NUMERICAL OUTPUT ]`\cr #' -----------------------------------\cr #' #' **`RLum.Results`**-object #' #' **slot:** **`@data`** #' #' \tabular{lll}{ #' **Element** \tab **Type** \tab **Description**\cr #' `$data` \tab `data.frame` \tab correction value and error \cr #' `$table` \tab `data.frame` \tab table used for plotting \cr #' `$table_mean` \tab `data.frame` \tab table used for fitting \cr #' `$fit` \tab `lm` or `nls` \tab the fitting as returned by the function [fit_DoseResponseCurve] #' } #' #'**slot:** **`@info`** #' #' The original function call #' #' ------------------------\cr #' `[ PLOT OUTPUT ]`\cr #' ------------------------\cr #' #' - A dose response curve with the marked correction values #' #' @section Function version: 0.1.1 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [fit_DoseResponseCurve] #' #' @references #' #' Kreutzer, S., Martin, L., Guérin, G., Tribolo, C., Selva, P., Mercier, N., 2018. Environmental Dose Rate #' Determination Using a Passive Dosimeter: Techniques and Workflow for alpha-Al2O3:C Chips. #' Geochronometria 45, 56-67. doi: 10.1515/geochr-2015-0086 #' #' @keywords datagen #' #' @examples #' #' ##load data #' data(ExampleData.Al2O3C, envir = environment()) #' #' ##run analysis #' analyse_Al2O3C_ITC(data_ITC) #' #' @md #' @export analyse_Al2O3C_ITC <- function( object, signal_integral = NULL, dose_points = c(2,4,8,12,16), recordType = c("OSL (UVVIS)"), method_control = NULL, verbose = TRUE, plot = TRUE, ... ) { .set_function_name("analyse_Al2O3C_ITC") on.exit(.unset_function_name(), add = TRUE) # SELF CALL ----------------------------------------------------------------------------------- if(is.list(object)){ ##check whether the list contains only RLum.Analysis objects lapply(object, function(x) .validate_class(x, "RLum.Analysis", name = "All elements of 'object'")) ## expand input arguments rep.length <- length(object) signal_integral <- .listify(signal_integral, rep.length) dose_points <- .listify(dose_points, rep.length) ##method_control ##verbose ##plot ##run analysis results_full <- lapply(1:length(object), function(x){ ##run analysis results <- try(analyse_Al2O3C_ITC( object = object[[x]], signal_integral = signal_integral[[x]], dose_points = dose_points[[x]], method_control = method_control, verbose = verbose, plot = plot, main = ifelse("main"%in% names(list(...)), list(...)$main, paste0("ALQ #",x)), ... ), outFile = stdout()) # redirect error messages so they can be silenced ##catch error if(inherits(results, "try-error")){ return(NULL) }else{ return(results) } }) ##return return(merge_RLum(results_full)) } ## Integrity tests ------------------------------------------------------- .validate_class(object, "RLum.Analysis") ##TODO ##implement more checks ... if you find some time, somehow, somewhere # Preparation --------------------------------------------------------------------------------- ##select curves based on the recordType selection; if not NULL if(!is.null(recordType[1])) object <- get_RLum(object, recordType = recordType, drop = FALSE) #set method control method_control_settings <- list( mode = "extrapolation", fit.method = "EXP" ) ## modify on request if (!is.null(method_control)) { .validate_class(method_control, "list") method_control_settings <- modifyList(x = method_control_settings, val = method_control) } ##dose points enhancement ##make sure that the dose_point is enhanced dose_points <- rep(dose_points, times = length(object)/2) # Calculation --------------------------------------------------------------------------------- ##set signal integral if(is.null(signal_integral)){ signal_integral <- c(1:nrow(object[[1]][])) }else{ ##check whether the input is valid, otherwise make it valid if(min(signal_integral) < 1 | max(signal_integral) > nrow(object[[1]][])){ signal_integral <- c(1:nrow(object[[1]][])) .throw_warning("Input for 'signal_integral' corrected to 1:", max(signal_integral)) } } ##calculate curve sums, assuming the background net_SIGNAL <- vapply(1:length(object[seq(1,length(object), by = 2)]), function(x){ temp_signal <- sum(object[seq(1,length(object), by = 2)][[x]][,2]) temp_background <- sum(object[seq(2,length(object), by = 2)][[x]][,2]) return(temp_signal - temp_background) }, FUN.VALUE = vector(mode = "numeric", length = 1)) ##create data.frames ##single points df <- data.frame( DOSE = dose_points, net_SIGNAL = net_SIGNAL, net_SIGNAL.ERROR = 0, net_SIGNAL_NORM = net_SIGNAL/max(net_SIGNAL), net_SIGNAL_NORM.ERROR = 0 ) ##take mean ##make data frame for all curves for MC runs df_mean <- as.data.frame(data.table::rbindlist(lapply(unique(df$DOSE), function(x){ data.frame( DOSE = x, net_SIGNAL = mean(df[df$DOSE == x, "net_SIGNAL"]), net_SIGNAL.ERROR = sd(df[df$DOSE == x, "net_SIGNAL"]), net_SIGNAL_NORM = mean(df[df$DOSE == x, "net_SIGNAL_NORM"]), net_SIGNAL_NORM.ERROR = sd(df[df$DOSE == x, "net_SIGNAL_NORM"]) ) }))) ##calculate GC GC <- fit_DoseResponseCurve( object = df_mean, mode = method_control_settings$mode, fit.method = method_control_settings$fit.method, verbose = FALSE ) ##output if(verbose){ cat("\n[analyse_Al2O3C_ITC()]\n") cat(paste0("\n Used fit:\t\t",method_control_settings$fit.method)) cat(paste0("\n Time correction value:\t", round(GC$De$De,3), " \u00B1 ", round(GC$De$De.Error, 3))) cat("\n\n") } # Plotting ------------------------------------------------------------------------------------ if(plot){ ##set plot settings plot_settings <- list( xlab = "Dose [s]", ylab = "Integrated net GSL [a.u.]", main = "Irradiation Time Correction", xlim = c(-5, max(df$DOSE)), ylim = c(0,max(df$net_SIGNAL)), legend.pos = "right", legend.text = "dose points", mtext = "" ) ##modify list on request plot_settings <- modifyList(x = plot_settings, val = list(...)) ##make plot area plot(NA, NA, xlim = plot_settings$xlim, ylim = plot_settings$ylim, xlab = plot_settings$xlab, ylab = plot_settings$ylab, main = plot_settings$main) ##add zero lines abline(v = 0) abline(h = 0) ##add dose points points(x = df$DOSE, y = df$net_SIGNAL) ##add dose response curve x <- seq(min(plot_settings$xlim), max(plot_settings$xlim), length.out = 100) lines( x = x, y = eval(GC$Formula) ) ##show offset x <- 0 lines(x = c(-GC$De[1], -GC$De[1]), y = c(eval(GC$Formula), 0), lty = 2, col = "red") shape::Arrows( x0 = 0, y0 = eval(GC$Formula), x1 = as.numeric(-GC$De[1]), y1 = eval(GC$Formula), arr.type = "triangle", arr.adj = -0.5, col = 'red', cex = par()$cex) ##add text text( x = -GC$De[1] / 2, y = eval(GC$Formula), pos = 3, labels = paste(round(GC$De[1],3), "\u00B1", round(GC$De[2], 3)), col = 'red', cex = 0.8) ##add 2nd x-axis axis( side = 1, at = axTicks(side = 1), labels = paste0("(",(axTicks(side = 1) + round(as.numeric(GC$De[1]),2)), ")"), line = 1, col.axis = "red", lwd.ticks = 0, lwd = 0, cex.axis = 0.9 ) ##add legend legend( plot_settings$legend.pos, bty = "n", pch = 1, legend = plot_settings$legend.text ) ##add mtext mtext(side = 3, text = plot_settings$mtext) } # Output -------------------------------------------------------------------------------------- return(set_RLum( class = "RLum.Results", data = list( data = data.frame( VALUE = as.numeric(GC$De$De), VALUE_ERROR = as.numeric(sd(GC$De.MC)) ), table = df, table_mean = df_mean, fit = GC$Fit ), info = list(call = sys.call()) )) } Luminescence/R/convert_Second2Gray.R0000644000176200001440000001331114762554470017105 0ustar liggesusers#' @title Converting equivalent dose values from seconds (s) to Gray (Gy) #' #' @description #' Conversion of absorbed radiation dose in seconds (s) to the SI unit Gray #' (Gy) including error propagation. Normally used for equivalent dose data. #' #' Calculation of De values from seconds (s) to Gray (Gy) #' #' \deqn{De [Gy] = De [s] * Dose Rate [Gy/s])} #' #' Provided calculation error propagation methods for error calculation #' (with `'se'` as the standard error and `'DR'` of the dose rate of the beta-source): #' #' **(1) `omit`** (default) #' #' \deqn{se(De) [Gy] = se(De) [s] * DR [Gy/s]} #' #' In this case the standard error of the dose rate of the beta-source is #' treated as systematic (i.e. non-random), it error propagation is omitted. #' However, the error must be considered during calculation of the final age. #' (cf. Aitken, 1985, pp. 242). This approach can be seen as method (2) (gaussian) #' for the case the (random) standard error of the beta-source calibration is #' 0. Which particular method is requested depends on the situation and cannot #' be prescriptive. #' #' **(2) `gaussian`** error propagation #' #' \deqn{se(De) [Gy] = \sqrt((DR [Gy/s] * se(De) [s])^2 + (De [s] * se(DR) [Gy/s])^2)} #' #' Applicable under the assumption that errors of `De` and `se` are uncorrelated. #' #' **(3) `absolute`** error propagation #' #' \deqn{se(De) [Gy]= abs(DR [Gy/s] * se(De) [s]) + abs(De [s] * se(DR) [Gy/s])} #' #' Applicable under the assumption that errors of `De` and `se` are correlated. #' #' #' @param data [data.frame] (**required**): #' input values, structure: data (`values[,1]`) and data error (`values [,2]`) #' are required #' #' @param dose.rate [RLum.Results-class], [data.frame] or [numeric] (**required**): #' `RLum.Results` needs to be originated from the function [calc_SourceDoseRate], #' for `vector` dose rate in Gy/s and dose rate error in Gy/s #' #' @param error.propagation [character] (*with default*): #' error propagation method used for error calculation (`omit`, `gaussian` or #' `absolute`), see details for further information #' #' @return #' Returns a [data.frame] with converted values. #' #' @note #' If no or a wrong error propagation method is given, the execution of the function is #' stopped. Furthermore, if a `data.frame` is provided for the dose rate values is has to #' be of the same length as the data frame provided with the argument `data` #' #' @section Function version: 0.6.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Michael Dietze, GFZ Potsdam (Germany)\cr #' Margret C. Fuchs, HZDR, Helmholtz-Institute Freiberg for Resource Technology (Germany) #' #' @seealso [calc_SourceDoseRate] #' #' @references #' Aitken, M.J., 1985. Thermoluminescence dating. Academic Press. #' #' @keywords manip #' #' @examples #' #' ##(A) for known source dose rate at date of measurement #' ## - load De data from the example data help file #' data(ExampleData.DeValues, envir = environment()) #' ## - convert De(s) to De(Gy) #' convert_Second2Gray(ExampleData.DeValues$BT998, c(0.0438,0.0019)) #' #' #' ##(B) for source dose rate calibration data #' ## - calculate source dose rate first #' dose.rate <- calc_SourceDoseRate(measurement.date = "2012-01-27", #' calib.date = "2014-12-19", #' calib.dose.rate = 0.0438, #' calib.error = 0.0019) #' # read example data #' data(ExampleData.DeValues, envir = environment()) #' #' # apply dose.rate to convert De(s) to De(Gy) #' convert_Second2Gray(ExampleData.DeValues$BT998, dose.rate) #' #' @md #' @export convert_Second2Gray <- function( data, dose.rate, error.propagation = "omit" ) { .set_function_name("convert_Second2Gray") on.exit(.unset_function_name(), add = TRUE) ## Integrity tests -------------------------------------------------------- .validate_class(data, "data.frame") .validate_class(dose.rate, c("RLum.Results", "data.frame", "numeric")) if (is.data.frame(dose.rate)) { if(nrow(dose.rate)!=nrow(data)){ .throw_error("Data frames in 'data' and 'dose.rate' must have the same length") } } else if (inherits(dose.rate, "RLum.Results")) { ## check for right originator if(dose.rate@originator != "calc_SourceDoseRate"){ .throw_error("Wrong originator for dose.rate 'RLum.Results' object") } dose.rate <- get_RLum(dose.rate, data.object = "dose.rate") } error.propagation <- .validate_args(error.propagation, c("omit", "gaussian", "absolute")) ## Calculation ------------------------------------------------------------ De.seconds <- data[,1] De.error.seconds <- data[,2] De.gray <- round(De.seconds * dose.rate[[1]], digits = 2) if (error.propagation == "omit") { De.error.gray <- round(dose.rate[[1]] * De.error.seconds, digits = 3) } else if(error.propagation == "gaussian") { De.error.gray <- round(sqrt((dose.rate[[1]] * De.error.seconds) ^ 2 + (De.seconds * dose.rate[[2]]) ^ 2), digits = 3) } else if (error.propagation == "absolute") { De.error.gray <- round(abs(dose.rate[[1]] * De.error.seconds) + abs(De.seconds * dose.rate[[2]]), digits = 3) } ## Return ----------------------------------------------------------------- data <- data.frame(De=De.gray, De.error=De.error.gray) return(data) } #' Converting equivalent dose values from seconds (s) to Gray (Gy) #' #' @description #' This function is defunct, use [convert_Second2Gray] instead. #' #' @param ... Unused. #' #' @md #' @export Second2Gray <- function(...) { .Defunct("convert_Second2Gray") } Luminescence/R/read_HeliosOSL2R.R0000644000176200001440000000772414762554470016240 0ustar liggesusers#'@title Import Luminescence Data from Helios Luminescence Reader #' #'@description Straightforward import of files with the ending `.osl` produced #'by the zero rad Helios luminescence reader and conversion to [RLum.Analysis-class] objects. #' #'@param file [character] (**required**): path to file to be imported. Can be a [list] #'for further processing #' #' @param verbose [logical] (*with default*): enable/disable output to the #' terminal. #' #'@param ... not in use, for compatibility reasons only #' #'@note Thanks to Krzysztof Maternicki for providing example data. #' #'@return [RLum.Analysis-class] object #' #'@author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@section Function version: 0.1.0 #' #'@seealso [RLum.Data.Curve-class], [RLum.Analysis-class] #' #'@keywords IO #' #'@examples #'file <- system.file("extdata/HeliosOSL_Example.osl", package = "Luminescence") #'read_HeliosOSL2R(file) #' #'@md #'@export read_HeliosOSL2R <- function( file, verbose = TRUE, ... ) { .set_function_name("read_HeliosOSL2R") on.exit(.unset_function_name(), add = TRUE) # Self-call --------------------------------------------------------------- if(inherits(file, "list")) { out <- lapply(file, function(x) { tmp <- try(read_HeliosOSL2R(x, verbose = verbose), silent = TRUE) if(inherits(tmp, "try-error")) { .throw_message(strsplit(tmp, ":", fixed = TRUE)[[1]][2], "->... record skipped!") return(NULL) } tmp }) ## remove NULL out <- .rm_NULL_elements(out) if(length(out) == 0) out <- NULL return(out) } ## Integrity checks ------------------------------------------------------- .validate_class(file, c("character", "list")) .validate_length(file, 1) ## check file format if (tolower(ext <- tools::file_ext(file)) != "osl") .throw_error("File extension '", ext, "' not supported") ## fix path file <- normalizePath(file) ## Import ----------------------------------------------------------------- if (verbose) { cat("\n[read_HeliosOSL2R()] Importing ...") cat("\n path: ", dirname(file)) cat("\n file: ", .shorten_filename(basename(file))) cat("\n") } ## read entire file lines <- readLines(file) ## get footer lines id, which is printed in quotes but not the first footer_id <- which(grepl(pattern = '\\"', x = lines, fixed = FALSE))[2] ## import data measurement data df <- read.table( file = textConnection(lines[1:(footer_id - 1)]), header = TRUE, sep = ",") ## extract metadata ## remove quotes and split at : + whitespace meta <- strsplit(x = gsub( pattern = '\\"', replacement = "", x = lines[footer_id:length(lines)]), split = ": ", fixed = TRUE) ## drop lines object rm(lines) ## create info object ## extract names info_names <- vapply(seq_along(meta), function(x){ if(length(meta[[x]]) == 2) meta[[x]][1] else paste0("unnamed_", x) }, character(1)) info_names <- gsub(pattern = " ", "_", x = info_names, fixed = TRUE) ## extra elements info <- lapply(meta, function(x){ if(length(x) == 2) x[2] else x[1] }) names(info) <- info_names # Create object ----------------------------------------------------------- ## this needs to be checked for the moment ## we extract only three curves pid <- create_UID() ## get records records <- lapply(3:ncol(df), function(x){ set_RLum( class = "RLum.Data.Curve", originator = "read_HeliosOSL2R", curveType = "measured", recordType = paste0("OSL (", colnames(df)[x], ")"), data = as.matrix(df[,c(2,x)]), info = c( xlab = colnames(df)[2], ylab = colnames(df)[x], parentID = pid, info)) }) ## create RLum.Analysis as output object <- set_RLum( class = "RLum.Analysis", originator = "read_HeliosOSL2R", records = records) return(object) } Luminescence/R/plot_OSLAgeSummary.R0000644000176200001440000001177214762554470016724 0ustar liggesusers#'@title Plot Posterior OSL-Age Summary #' #'@description A graphical summary of the statistical inference of an OSL age #' #'@details The function is called automatically by [combine_De_Dr] #' #'@param object [RLum.Results-class], [numeric] (**required**): an object produced #' by [combine_De_Dr]. Alternatively, a [numeric] vector of a parameter from an MCMC process #' #'@param level [numeric] (*with default*): probability of shown credible interval #' #'@param digits [integer] (*with default*): number of digits considered for the calculation #' #' @param verbose [logical] (*with default*): enable/disable output to the #' terminal. #' #'@param ... further arguments to modify the plot, supported: `xlim`, `ylim`, `xlab`, `ylab`, #' `main`, `lwd`, `lty`, `col`, `polygon_col`, `polygon_density`, `rug` #' #'@return A posterior distribution plot and an [RLum.Results-class] #' object with the credible interval. #' #'@author Anne Philippe, Université de Nantes (France), #' Jean-Michel Galharret, Université de Nantes (France), #' Norbert Mercier, IRAMAT-CRP2A, Université Bordeaux Montaigne (France), #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@section Function version: 0.1.0 #' #'@seealso [combine_De_Dr], [plot.default], [rjags::rjags] #' #'@keywords hplot dplot #' #'@examples #'##generate random data #'set.seed(1234) #'object <- rnorm(1000, 100, 10) #'plot_OSLAgeSummary(object) #' #'@md #'@export plot_OSLAgeSummary <- function( object, level = 0.95, digits = 1L, verbose = TRUE, ... ) { .set_function_name("plot_OSLAgeSummary") on.exit(.unset_function_name(), add = TRUE) ## Integrity tests -------------------------------------------------------- .validate_class(object, c("RLum.Results", "numeric")) if (inherits(object, "RLum.Results")) { if (object@originator %in% c(".calc_BayesianCentralAgeModel", ".calc_IndividualAgeModel")) { data.object <- "A" } else if (object@originator %in% "combine_De_Dr") { data.object <- "Ages" } else { .throw_error("Object originator '", object@originator, "' not supported") } object <- get_RLum(object, data.object = data.object) } ## A should be a matrix A <- as.matrix(object, ncol = 1) # Run calculations -------------------------------------------------------- ## use our internal function instead of Archaeophase to avoid the decency hell CI <- round(.calc_HPDI(A, prob = level[1]), digits[1]) Bayes_est_mean <- round(mean(A), digits = digits) Bayes_est_sd <- round(sd(A), digits = digits) # Terminal output --------------------------------------------------------- if(verbose){ cat("\n[plot_OSLAgeSummary()]\n") cat(paste0(" Credible Interval (", level * 100 ),"%): ",paste(CI[1,], collapse = " : "), "\n") cat(paste0(" Bayes estimate (posterior mean \u00b1 sd): ", Bayes_est_mean[1], " \u00b1 ", Bayes_est_sd[1]),"\n") } # Plot output ------------------------------------------------------------- density_A <- density(A) plot_settings <- modifyList(x = list( xlim = range(A), ylim = range(density_A$y), main = "Posterior distr. of A", xlab = "Age [ka]", ylab = "Density", lwd = 1, lty = 1, col = "black", polygon_col = rgb(1,0,0,0.3), polygon_density = 20, rug = FALSE ), val = list(...)) plot( x = density_A$x, y = density_A$y, xlim = plot_settings$xlim, ylim = plot_settings$ylim * 1.07, xlab = plot_settings$xlab, ylab = plot_settings$ylab, main = plot_settings$main, type = "l", lwd = plot_settings$lwd, lty = plot_settings$lty, col = plot_settings$col ) ## add lines on the top for the CI lines(x = c(CI[1,]), y = rep(par()$usr[4] * 0.92, 2)) lines(x = rep(CI[1,1], 2), y = c(par()$usr[4] * 0.91, par()$usr[4] * 0.92)) lines(x = rep(CI[1,2], 2), y = c(par()$usr[4] * 0.91, par()$usr[4] * 0.92)) ## add polygon fill polygon( x = c(density_A$x, rev(density_A$x)), y = c(density_A$y, rep(0, length(density_A$y))), col = plot_settings$polygon_col, lty = 0, density = NULL ) ## add CI xy_id <- density_A$x >= CI[1,1] & density_A$x <= CI[1,2] polygon( x = c(density_A$x[xy_id], rev(density_A$x[xy_id])), y = c(density_A$y[xy_id], rep(0, length(density_A$y[xy_id]))), col = "black", lwd = 0.5, border = TRUE, density = plot_settings$polygon_density ) ##add rug if (plot_settings$rug) graphics::rug(A) ## add text text(x = density_A$x[xy_id][1], y = density_A$y[xy_id][2], CI[1,1], pos = 2, cex = 0.6) text(x = max(density_A$x[xy_id]), y = rev(density_A$y[xy_id])[1], CI[1,2], pos = 4, cex = 0.6) text( x = median(density_A$x[xy_id]), y = par()$usr[4] * 0.91, labels = paste0("CI: ", level[1] * 100, "%"), pos = 3, cex = 0.6 ) # Return ------------------------------------------------------------------ return(set_RLum("RLum.Results", data = list( Estimate = Bayes_est_mean, Credible_Interval = CI, level = level), info = list(call = sys.call()))) } Luminescence/R/subset_SingleGrainData.R0000644000176200001440000000366014762554470017614 0ustar liggesusers#'@title Simple Subsetting of Single Grain Data from Risø BIN/BINX files #' #'@description Most measured single grains do not exhibit light and it makes #'usually sense to subset single grain datasets using a table of #'position and grain pairs #' #'@param object [Risoe.BINfileData-class] (**required**): input object with the #'data to subset #' #'@param selection [data.frame] (**required**): selection table with two columns #'for position (1st column) and grain (2nd column) (columns names do not matter) #' #'@return A subset [Risoe.BINfileData-class] object #' #'@section Function version: 0.1.0 #' #'@author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@keywords manip datagen #' #'@seealso [Risoe.BINfileData-class], [read_BIN2R], [verify_SingleGrainData] #' #'@examples #' #'## load example data #'data(ExampleData.BINfileData, envir = environment()) #' #'## set POSITION/GRAIN pair dataset #'selection <- data.frame(POSITION = c(1,5,7), GRAIN = c(0,0,0)) #' #'##subset #'subset_SingleGrainData(object = CWOSL.SAR.Data, selection = selection) #' #'@md #'@export subset_SingleGrainData <- function ( object, selection ) { .set_function_name("subset_SingleGrainData") on.exit(.unset_function_name(), add = TRUE) ## Integrity tests -------------------------------------------------------- .validate_class(object, "Risoe.BINfileData") ## try to work with selection selection <- as.data.frame(selection)[,1:2] colnames(selection) <- c("POSITION", "GRAIN") # Subset ------------------------------------------------------------------ ## select ids for subsetting sel_id <-sort(merge(object@METADATA[,c("POSITION", "GRAIN", "ID")], selection)[["ID"]]) ## pick data object@METADATA <- object@METADATA[sel_id,] object@DATA <- object@DATA[sel_id] object@METADATA[["ID"]] <- 1:nrow(object@METADATA) # Return ------------------------------------------------------------------ return(object) } Luminescence/R/plot_FilterCombinations.R0000644000176200001440000003022514762554470020061 0ustar liggesusers#' @title Plot filter combinations along with the (optional) net transmission window #' #' @description #' The function allows to plot transmission windows for different filters. Missing data for specific #' wavelengths are automatically interpolated for the given filter data using the function [approx]. #' With that a standardised output is reached and a net transmission window can be shown. #' #' **Calculations** #' #' **Net transmission window** #' #' The net transmission window of two filters is approximated by #' #' \deqn{T_{final} = T_{1} * T_{2}} #' #' **Optical density** #' #' \deqn{OD = -log10(T)} #' #' **Total optical density** #' #' \deqn{OD_{total} = OD_{1} + OD_{2}} #' #' Please consider using own calculations for more precise values. #' #' **How to provide input data?** #' #' *CASE 1* #' #' The function expects that all filter values are either of type `matrix` or `data.frame` #' with two columns. The first columns contains the wavelength, the second the relative transmission #' (but not in percentage, i.e. the maximum transmission can be only become 1). #' #' In this case only the transmission window is show as provided. Changes in filter thickness and #' reflection factor are not considered. #' #' *CASE 2* #' #' The filter data itself are provided as list element containing a `matrix` or #' `data.frame` and additional information on the thickness of the filter, e.g., #' `list(filter1 = list(filter_matrix, d = 2))`. #' The given filter data are always considered as standard input and the filter thickness value #' is taken into account by #' #' \deqn{Transmission = Transmission^(d)} #' #' with d given in the same dimension as the original filter data. #' #' *CASE 3* #' #' Same as CASE 2 but additionally a reflection factor P is provided, e.g., #' `list(filter1 = list(filter_matrix, d = 2, P = 0.9))`. #' The final transmission becomes: #' #' \deqn{Transmission = Transmission^(d) * P} #' #' **Advanced plotting parameters** #' #' The following further non-common plotting parameters can be passed to the function: #' #' \tabular{lll}{ #' **`Argument`** \tab **`Datatype`** \tab **`Description`**\cr #' `legend` \tab `logical` \tab enable/disable legend \cr #' `legend.pos` \tab `character` \tab change legend position ([graphics::legend]) \cr #' `legend.text` \tab `character` \tab same as the argument `legend` in ([graphics::legend]) \cr #' `net_transmission.col` \tab `col` \tab colour of net transmission window polygon \cr #' `net_transmission.col_lines` \tab `col` \tab colour of net transmission window polygon lines \cr #' `net_transmission.density` \tab `numeric` \tab specify line density in the transmission polygon \cr #' `grid` \tab `list` \tab full list of arguments that can be passed to the function [graphics::grid] #' } #' #' For further modifications standard additional R plot functions are recommend, e.g., the legend #' can be fully customised by disabling the standard legend and use the function [graphics::legend] #' instead. #' #' #' @param filters [list] (**required**): #' a named list of filter data for each filter to be shown. #' The filter data itself should be either provided as [data.frame] or [matrix] #' (see details for more options). #' #' @param wavelength_range [numeric] (*with default*): #' wavelength range used for the interpolation #' #' @param show_net_transmission [logical] (*with default*): #' show net transmission window as polygon. #' #' @param interactive [logical] (*with default*): #' enable/disable interactive plots. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param ... further arguments that can be passed to control the plot output. #' Supported are `main`, `xlab`, `ylab`, `xlim`, `ylim`, `type`, `lty`, `lwd`. #' For non common plotting parameters see the details section. #' #' @return Returns an S4 object of type [RLum.Results-class]. #' #' **@data** #' #' \tabular{lll}{ #' **`Object`** \tab **`Type`** **`Description`** \cr #' `net_transmission_window` \tab `matrix` \tab the resulting net transmission window \cr #' `OD_total` \tab `matrix` \tab the total optical density\cr #' `filter_matrix` \tab `matrix` \tab the filter matrix used for plotting #' } #' #' **@info** #' #' \tabular{lll}{ #' **Object** \tab **Type** **Description** \cr #' `call` \tab [call] \tab the original function call #' } #' #' @section Function version: 0.3.2 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Results-class], [approx] #' #' @keywords datagen aplot #' #' @examples #' #' ## (For legal reasons no real filter data are provided) #' #' ## Create filter sets #' filter1 <- density(rnorm(100, mean = 450, sd = 20)) #' filter1 <- matrix(c(filter1$x, filter1$y/max(filter1$y)), ncol = 2) #' filter2 <- matrix(c(200:799,rep(c(0,0.8,0),each = 200)), ncol = 2) #' #' ## Example 1 (standard) #' plot_FilterCombinations(filters = list(filter1, filter2)) #' #' ## Example 2 (with d and P value and name for filter 2) #' results <- plot_FilterCombinations( #' filters = list(filter_1 = filter1, Rectangle = list(filter2, d = 2, P = 0.6))) #' results #' #' ## Example 3 show optical density #' plot(results$OD_total) #' #' \dontrun{ #' ##Example 4 #' ##show the filters using the interactive mode #' plot_FilterCombinations(filters = list(filter1, filter2), interactive = TRUE) #' #' } #' #' #' @md #' @export plot_FilterCombinations <- function( filters, wavelength_range = 200:1000, show_net_transmission = TRUE, interactive = FALSE, plot = TRUE, ... ) { .set_function_name("plot_FilterCombinations") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(filters, "list") .validate_not_empty(filters, "list") #input should either data.frame or matrix lapply(filters, function(x) { .validate_class(x, c("data.frame", "matrix", "list"), name = "All elements of 'filters'") }) #check for named list, if not set names if (is.null(names(filters))) { names(filters) <- paste("Filter ", seq_along(filters)) } ## Data preparation ------------------------------------------------------- ## check if filters are provided with their thickness, if so correct ## transmission for this ... relevant for glass filters filters <- lapply(filters, function(x) { if (is(x, "list")) { ## correction for the transmission accounting for filter thickness, ## the provided thickness is always assumed to be 1 if(length(x) > 1){ x[[1]][, 2] <- x[[1]][, 2] ^ (x[[2]]) }else{ return(x[[1]]) } ## account for potentially provided transmission reflection factor if(length(x) > 2){ x[[1]][,2] <- x[[1]][,2] * x[[3]] return(x[[1]]) }else{ return(x[[1]]) } } else{ return(x) } }) #check if there are transmission values greater than one, this is not possible lapply(filters, function(x) { if (max(x[, 2], na.rm = TRUE) > 1.01) { .throw_error("Transmission values > 1 found, check your data") } }) ##combine everything in a matrix using approx for interpolation filter_matrix <- vapply(filters, function(x) { approx(x = x[, 1], y = x[, 2], xout = wavelength_range)$y }, FUN.VALUE = vector(mode = "numeric", length = length(wavelength_range))) ##calculate transmission window filter_matrix <- cbind(filter_matrix) net_transmission_window <- matrix( c(wavelength_range, matrixStats::rowProds(filter_matrix)), ncol = 2) ##add optical density to filter matrix ##calculate OD OD <- -log10(filter_matrix) ##calculate total OD OD_total <- cbind(wavelength_range, matrixStats::rowSums2(OD)) ##add to matrix filter_matrix <- cbind(filter_matrix, OD) ##set rownames of filter matrix rownames(filter_matrix) <- wavelength_range ##set column names for filter matrix colnames(filter_matrix) <- c(names(filters), paste0(names(filters), "_OD")) # Plotting ------------------------------------------------------------------------------------ if (plot) { ##(1) ... select transmission values filter_matrix_transmisison <- filter_matrix[,!grepl(pattern = "OD", x = colnames(filter_matrix)), drop = FALSE] ##set plot settings plot_settings <- list( main = "Filter Combination", xlab = "Wavelength [nm]", ylab = "Transmission [a.u.]", xlim = range(wavelength_range), ylim = c(0, 1), legend.pos = "topleft", lty = 1, lwd = 1, col = 1:length(filters), grid = expression(nx = 10, ny = 10), legend = TRUE, legend.text = colnames(filter_matrix_transmisison), net_transmission.col = rgb(0,0.7,0,.2), net_transmission.col_lines = "grey", net_transmission.density = 20 ) ##modify settings on request plot_settings <- modifyList(plot_settings, list(...)) if(interactive){ .require_suggested_package("plotly", "Producing interactive plots") ##create basic plot p <- plotly::plot_ly(x = wavelength_range, y = filter_matrix[,1], type = "scatter", name = colnames(filter_matrix_transmisison)[1], mode = "lines") ##add further filters if (ncol(filter_matrix_transmisison) > 1) { for (i in 2:ncol(filter_matrix_transmisison)) { p <- plotly::add_trace(p, y = filter_matrix[, i], name = colnames(filter_matrix_transmisison)[i], mode = 'lines') } } ##add polygon ##replace all NA vaules with 0, otherwise it looks odd net_transmission_window[is.na(net_transmission_window)] <- 0 p <- plotly::add_polygons(p, x = c(wavelength_range, rev(wavelength_range)), y = c(net_transmission_window[, 2], rep(0, length(wavelength_range))), name = "net transmission" ) ##change graphical parameters p <- plotly::layout( p = p, xaxis = list( title = plot_settings$xlab ), yaxis = list( title = plot_settings$ylab ), title = plot_settings$main ) print(p) on.exit(return(p), add = TRUE) }else{ ##plot induvidal filters graphics::matplot( x = wavelength_range, y = filter_matrix_transmisison, type = "l", main = plot_settings$main, xlab = plot_settings$xlab, ylab = plot_settings$ylab, xlim = plot_settings$xlim, ylim = plot_settings$ylim, lty = plot_settings$lty, lwd = plot_settings$lwd, col = plot_settings$col ) if (!is.null(plot_settings$grid)) { graphics::grid(eval(plot_settings$grid)) } ##show effective transmission, which is the minimum for each row if (show_net_transmission) { ##replace all NA vaules with 0, otherwise it looks odd net_transmission_window[is.na(net_transmission_window)] <- 0 polygon( x = c(wavelength_range, rev(wavelength_range)), y = c(net_transmission_window[, 2], rep(0, length(wavelength_range))), col = plot_settings$net_transmission.col, border = NA, ) polygon( x = c(wavelength_range, rev(wavelength_range)), y = c(net_transmission_window[, 2], rep(0, length(wavelength_range))), col = plot_settings$net_transmission.col_lines, border = NA, density = plot_settings$net_transmission.density ) } #legend if (plot_settings$legend) { legend( plot_settings$legend.pos, legend = plot_settings$legend.text, col = plot_settings$col, lty = plot_settings$lty, bty = "n" ) } } } # Produce output object ----------------------------------------------------------------------- invisible(set_RLum( class = "RLum.Results", data = list( net_transmission_window = net_transmission_window, OD_total = OD_total, filter_matrix = filter_matrix ), info = list(call = sys.call()) )) } Luminescence/R/RLum.Data.Spectrum-class.R0000644000176200001440000002760414762554470017672 0ustar liggesusers#' Class `"RLum.Data.Spectrum"` #' #' Class for representing luminescence spectra data (TL/OSL/RF). #' #' @name RLum.Data.Spectrum-class #' #' @docType class #' #' @slot recordType #' Object of class [character] containing the type of the curve (e.g. "TL" or "OSL") #' #' @slot curveType #' Object of class [character] containing curve type, allowed values are #' "measured" or "predefined" #' #' @slot data #' Object of class [matrix] containing spectrum (count) values. #' Row labels indicate wavelength/pixel values, column labels are temperature or time values. #' #' @slot info #' Object of class [list] containing further meta information objects #' #' @note #' The class should only contain data for a single spectra data set. For #' additional elements the slot `info` can be used. Objects from this class are automatically #' created by, e.g., [read_XSYG2R] #' #' @section Objects from the Class: #' Objects can be created by calls of the form `set_RLum("RLum.Data.Spectrum", ...)`. #' #' @section Class version: 0.5.2 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum-class], [RLum.Data-class], [plot_RLum] #' #' @keywords classes #' #' @examples #' #' showClass("RLum.Data.Spectrum") #' #' ##show example data #' data(ExampleData.XSYG, envir = environment()) #' TL.Spectrum #' #' ##show data matrix #' get_RLum(TL.Spectrum) #' #' ##plot spectrum #' \dontrun{ #' plot_RLum(TL.Spectrum) #' } #' #' @md #' @export setClass( "RLum.Data.Spectrum", slots = list( recordType = "character", curveType = "character", data = "matrix", info = "list" ), contains = "RLum.Data", prototype = list ( recordType = NA_character_, curveType = NA_character_, data = matrix(), info = list() ) ) ## as() --------------------------------------------------------------------- ##data.frame ##COERCE RLum.Data.Spectrum >> data.frame AND data.frame >> RLum.Data.Spectrum #' as() #' #' for `[RLum.Data.Spectrum-class]` #' #' **[RLum.Data.Spectrum-class]** #' #' \tabular{lll}{ #' **from** \tab **to**\cr #' `data.frame` \tab `data.frame`\cr #' `matrix` \tab `matrix` #' `list` \tab `list` #' } #' #' @md #' @name as setAs("data.frame", "RLum.Data.Spectrum", function(from,to){ new(to, recordType = NA_character_, curveType = NA_character_, data = as.matrix(from), info = list()) }) setAs("RLum.Data.Spectrum", "data.frame", function(from){ as.data.frame(from@data) }) ##MATRIX ##COERCE RLum.Data.Spectrum >> matrix AND matrix >> RLum.Data.Spectrum setAs("matrix", "RLum.Data.Spectrum", function(from,to){ new(to, recordType = NA_character_, curveType = NA_character_, data = from, info = list()) }) setAs("RLum.Data.Spectrum", "matrix", function(from){ from@data }) ## LIST ## COERCE RLum.Data.Spectrum >> list AND list >> RLum.Data.Spectrum setAs("list", "RLum.Data.Spectrum", function(from, to){ if (length(from) == 0) return(set_RLum("RLum.Data.Spectrum")) new(to, recordType = NA_character_, curveType = NA_character_, data = matrix(unlist(from)), info = list()) }) setAs("RLum.Data.Spectrum", "list", function(from){ apply(from@data, 2, list) }) ## show() ------------------------------------------------------------------- #' @describeIn RLum.Data.Spectrum #' Show structure of `RLum.Data.Spectrum` object #' #' @keywords internal #' #' @md #' @export setMethod("show", signature(object = "RLum.Data.Spectrum"), function(object){ x.range <- suppressWarnings(range(as.numeric(rownames(object@data)))) y.range <- suppressWarnings(range(as.numeric(colnames(object@data)))) z.range <- range(object@data) ##print information cat("\n [RLum.Data.Spectrum-class]") cat("\n\t recordType:", object@recordType) cat("\n\t curveType:", object@curveType) cat("\n\t .. recorded frames:", length(object@data[1,])) cat("\n\t .. .. measured values per frame:", length(object@data[,1])) cat("\n\t .. .. range wavelength/pixel:", x.range) cat("\n\t .. .. range time/temp.:", y.range) cat("\n\t .. .. range count values:", z.range) cat("\n\t additional info elements:", length(object@info)) #cat("\n\t\t >> names:", names(object@info)) cat("\n") } ) ## set_RLum() --------------------------------------------------------------- #' @describeIn RLum.Data.Spectrum #' Construction method for RLum.Data.Spectrum object. The `info` slot is #' optional and by default it is set to an empty list #' #' @param class [`set_RLum`]; [character] (*automatic*): #' name of the `RLum` class to create. #' #' @param originator [character] (*automatic*): #' contains the name of the calling function (the function that produces this object); #' can be set manually. #' #' @param .uid [`set_RLum`]; [character] (*automatic*): #' sets an unique ID for this object using the internal C++ function `create_UID`. #' #' @param .pid [`set_RLum`]; [character] (*with default*): #' option to provide a parent id for nesting at will. #' #' @param recordType [`set_RLum`]; [character]: #' record type (e.g. "OSL") #' #' @param curveType [`set_RLum`]; [character]: #' curve type (e.g. "predefined" or "measured") #' #' @param data [`set_RLum`]; [matrix]: #' raw curve data. If data is of type `RLum.Data.Spectrum`, this can be used #' to re-construct the object. If the object is reconstructed, `.uid`, `.pid` #' and `originator` are always taken from the input object #' #' @param info [`set_RLum`] [list]: #' info elements #' #' @return #' #' **`[set_RLum]`** #' #' An object from the class `RLum.Data.Spectrum` #' #' @md #' @export setMethod( "set_RLum", signature = signature("RLum.Data.Spectrum"), definition = function( class, originator, .uid, .pid, recordType = "Spectrum", curveType = NA_character_, data = matrix(), info = list()) { ##The case where an RLum.Data.Spectrum object can be provided ##with this RLum.Data.Spectrum objects can be provided to be reconstructed if (is(data, "RLum.Data.Spectrum")) { ##check for missing curveType if (missing(curveType)) curveType <- data@curveType ##check for missing recordType if (missing(recordType)) recordType <- data@recordType ##check for missing data ... not possible as data is the object itself ##check for missing info if (missing(info)) info <- data@info ##check for missing .uid and .pid >> this are always taken from the ##original dataset ##set empty clas form object newRLumDataSpectrum <- new("RLum.Data.Spectrum") ##fill - this is the faster way, filling in new() costs ... newRLumDataSpectrum@originator = data@originator newRLumDataSpectrum@recordType = recordType newRLumDataSpectrum@curveType = curveType newRLumDataSpectrum@data = data@data newRLumDataSpectrum@info = info newRLumDataSpectrum@.uid = data@.uid newRLumDataSpectrum@.pid = data@.pid } else { ##set empty class from object newRLumDataSpectrum <- new("RLum.Data.Spectrum") ##fill - this is the faster way, filling in new() costs ... newRLumDataSpectrum@originator = originator newRLumDataSpectrum@recordType = recordType newRLumDataSpectrum@curveType = curveType newRLumDataSpectrum@data = data newRLumDataSpectrum@info = info newRLumDataSpectrum@.uid = .uid newRLumDataSpectrum@.pid = .pid } return(newRLumDataSpectrum) } ) ## get_RLum() --------------------------------------------------------------- #' @describeIn RLum.Data.Spectrum #' Accessor method for `RLum.Data.Spectrum` object. #' #' @param object [`get_RLum`], [`names_RLum`] (**required**): #' an object of class [RLum.Data.Spectrum-class] #' #' @param info.object [`get_RLum`]; [character] (*optional*): #' the name of the info object to be called. If no info element name #' is provided, the raw curve data (matrix) will be returned #' #' @return #' #' **`[get_RLum]`** #' #' 1. A [matrix] with the spectrum values or #' 2. only the info object if `info.object` was set. #' #' @md #' @export setMethod("get_RLum", signature("RLum.Data.Spectrum"), definition = function(object, info.object) { .set_function_name("get_RLum") on.exit(.unset_function_name(), add = TRUE) ##if missing info.object just show the curve values if (!missing(info.object)) { .validate_class(info.object, "character") if (!info.object %in% names(object@info)) { .throw_error("Invalid element name, valid names are: ", .collapse(names(object@info))) } unlist(object@info[info.object]) } else { object@data } }) ## names() ------------------------------------------------------------------ #' @describeIn RLum.Data.Spectrum #' Returns the names info elements coming along with this curve object #' #' @return #' #' **`[names_RLum]`** #' #' The names of the info objects #' #' @md #' @export setMethod("names_RLum", "RLum.Data.Spectrum", function(object){ names(object@info) }) ## bin_RLum() --------------------------------------------------------------- #' @describeIn RLum.Data.Spectrum #' Allows binning of RLum.Data.Spectrum data. Count values and values on the x-axis are summed-up; #' for wavelength/energy values the mean is calculated. #' #' @param bin_size.col [integer] (*with default*): #' set number of channels used for each bin, e.g. `bin_size.col = 2` means that #' two channels are binned. Note: The function does not check the input, very large values #' mean a full column binning (a single sum) #' #' @param bin_size.row [integer] (*with default*): #' set number of channels used for each bin, e.g. `bin_size.row = 2` means that #' two channels are binned. Note: The function does not check the input, very large values #' mean a full row binning (a single sum) #' #' @return #' #' **`[bin_RLum.Data]`** #' #' Same object as input, after applying the binning. #' #' @md #' @export setMethod(f = "bin_RLum.Data", signature = "RLum.Data.Spectrum", function(object, bin_size.col = 1, bin_size.row = 1) { .set_function_name("bin_RLum.Data.Spectrum") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks --------------------------------------------- if (length(object@data) < 2) { .throw_error("'object' contains no data") } .validate_class(bin_size.row, c("numeric", "integer")) .validate_class(bin_size.col, c("numeric", "integer")) ##make sure that we do not get in trouble with negative values bin_size.col <- abs(bin_size.col) bin_size.row <- abs(bin_size.row) ##perform binning ##we want to be efficient, so we start ##with the larger object if(bin_size.row > bin_size.col){ ##row binning first m <- .matrix_binning(object@data, bin_size = bin_size.row, bin_col = FALSE, names = "mean") m <- .matrix_binning(m, bin_size = bin_size.col, bin_col = TRUE, names = "groups") } else { ##column binning first m <- .matrix_binning(object@data, bin_size = bin_size.col, bin_col = TRUE, names = "groups") m <- .matrix_binning(m, bin_size = bin_size.row, bin_col = FALSE, names = "mean") } ##write back to object object@data <- m ##return object return(object) }) Luminescence/R/RcppExports.R0000644000176200001440000000174714762556777015544 0ustar liggesusers# Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 create_UID <- function() { .Call(`_Luminescence_create_UID`) } src_EED_Calc_Overall_StatUncertainty <- function(M_Simul, Ndata, Nsimul, MinNbSimExp) { .Call(`_Luminescence_src_EED_Calc_Overall_StatUncertainty`, M_Simul, Ndata, Nsimul, MinNbSimExp) } src_analyse_IRSARRF_SRS <- function(values_regenerated_limited, values_natural_limited, vslide_range, n_MC, trace = FALSE) { .Call(`_Luminescence_analyse_IRSARRF_SRS`, values_regenerated_limited, values_natural_limited, vslide_range, n_MC, trace) } src_create_RLumDataCurve_matrix <- function(DATA, VERSION, NPOINTS, LTYPE, LOW, HIGH, AN_TEMP, TOLDELAY, TOLON, TOLOFF) { .Call(`_Luminescence_create_RLumDataCurve_matrix`, DATA, VERSION, NPOINTS, LTYPE, LOW, HIGH, AN_TEMP, TOLDELAY, TOLON, TOLOFF) } src_get_XSYG_curve_values <- function(s) { .Call(`_Luminescence_src_get_XSYG_curve_values`, s) } Luminescence/R/convert_CW2pLM.R0000644000176200001440000001030514762554470015771 0ustar liggesusers#' Transform a CW-OSL curve into a pLM-OSL curve #' #' Transforms a conventionally measured continuous-wave (CW) curve into a #' pseudo linearly modulated (pLM) curve using the equations given in Bulur #' (2000). #' #' According to Bulur (2000) the curve data are transformed by introducing two #' new parameters `P` (stimulation period) and `u` (transformed time): #' #' \deqn{P=2*max(t)} \deqn{u=\sqrt{(2*t*P)}} #' #' The new count values are then calculated by #' \deqn{ctsNEW = cts(u/P)} #' #' and the returned `data.frame` is produced by: `data.frame(u,ctsNEW)` #' #' The output of the function can be further used for LM-OSL fitting. #' #' @param values [RLum.Data.Curve-class] or [data.frame] (**required**): #' `RLum.Data.Curve` data object. Alternatively, a `data.frame` of the measured #' curve data of type stimulation time (t) (`values[,1]`) and measured counts (cts) #' (`values[,2]`) can be provided. #' #' @return #' The function returns the same data type as the input data type with #' the transformed curve values ([data.frame] or [RLum.Data.Curve-class]). #' #' @note #' The transformation is recommended for curves recorded with a channel #' resolution of at least 0.05 s/channel. #' #' @section Function version: 0.4.2 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [CW2pHMi], [CW2pLMi], [CW2pPMi], [fit_LMCurve], [lm], #' [RLum.Data.Curve-class] #' #' #' @references #' Bulur, E., 2000. A simple transformation for converting CW-OSL #' curves to LM-OSL curves. Radiation Measurements, 32, 141-145. #' #' **Further Reading** #' #' Bulur, E., 1996. An Alternative Technique For Optically Stimulated #' Luminescence (OSL) Experiment. Radiation Measurements, 26, 701-709. #' #' @keywords manip #' #' @examples #' #' ##read curve from CWOSL.SAR.Data transform curve and plot values #' data(ExampleData.BINfileData, envir = environment()) #' #' ##read id for the 1st OSL curve #' id.OSL <- CWOSL.SAR.Data@@METADATA[CWOSL.SAR.Data@@METADATA[,"LTYPE"] == "OSL","ID"] #' #' ##produce x and y (time and count data for the data set) #' x<-seq(CWOSL.SAR.Data@@METADATA[id.OSL[1],"HIGH"]/CWOSL.SAR.Data@@METADATA[id.OSL[1],"NPOINTS"], #' CWOSL.SAR.Data@@METADATA[id.OSL[1],"HIGH"], #' by = CWOSL.SAR.Data@@METADATA[id.OSL[1],"HIGH"]/CWOSL.SAR.Data@@METADATA[id.OSL[1],"NPOINTS"]) #' y <- unlist(CWOSL.SAR.Data@@DATA[id.OSL[1]]) #' values <- data.frame(x,y) #' #' ##transform values #' values.transformed <- convert_CW2pLM(values) #' #' ##plot #' plot(values.transformed) #' #' @md #' @export convert_CW2pLM <- function( values ) { .set_function_name("convert_CW2pLM") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- ##(1) data.frame or RLum.Data.Curve object? .validate_class(values, c("data.frame", "RLum.Data.Curve")) .validate_not_empty(values) ##(2) if the input object is an 'RLum.Data.Curve' object check for allowed curves if (inherits(values, "RLum.Data.Curve")) { if(!grepl("OSL", values@recordType) & !grepl("IRSL", values@recordType)){ .throw_error("recordType ", values@recordType, " is not allowed for the transformation") } temp.values <- as(values, "data.frame") }else{ temp.values <- values } # Calculation ------------------------------------------------------------- ##curve transformation P<-2*max(temp.values[,1]) u<-((2*temp.values[,1]*P)^0.5) ##cw >> plm conversion, according Bulur, 2000 temp.values[,2]<-temp.values[,2]*(u/P) temp.values<-data.frame(u,temp.values[,2]) # Return values ----------------------------------------------------------- ##returns the same data type as the input if(is(values, "data.frame") == TRUE){ values <- temp.values return(values) }else{ newRLumDataCurves.CW2pLM <- set_RLum( class = "RLum.Data.Curve", recordType = values@recordType, data = as.matrix(temp.values), info = values@info) return(newRLumDataCurves.CW2pLM) } } #' @rdname convert_CW2pLM #' @export CW2pLM <- function(values) { .Deprecated("convert_CW2pLM") convert_CW2pLM(values) } Luminescence/R/fit_CWCurve.R0000644000176200001440000007222614762554470015417 0ustar liggesusers#' @title Nonlinear Least Squares Fit for CW-OSL curves -beta version- #' #' @description #' The function determines the weighted least-squares estimates of the #' component parameters of a CW-OSL signal for a given maximum number of #' components and returns various component parameters. The fitting procedure #' uses the [nls] function with the `port` algorithm. #' #' **Fitting function** #' #' The function for the CW-OSL fitting has the general form: #' #' \deqn{y = I0_{1}*\lambda_{1}*exp(-\lambda_1*x) + ,\ldots, + I0_{i}*\lambda_{i}*exp(-\lambda_i*x) } #' #' where \eqn{0 < i < 8} #' #' and \eqn{\lambda} is the decay constant \cr #' and \eqn{I0} the initial number of trapped electrons. #' #' *(for the used equation cf. Boetter-Jensen et al., 2003, Eq. 2.31)* #' #' **Start values** #' #' Start values are estimated automatically by fitting a linear function to the #' logarithmized input data set. Currently, there is no option to manually #' provide start parameters. #' #' **Goodness of fit** #' #' The goodness of the fit is given as pseudoR² value (pseudo coefficient of #' determination). According to Lave (1970), the value is calculated as: #' #' \deqn{pseudoR^2 = 1 - RSS/TSS} #' #' where \eqn{RSS = Residual~Sum~of~Squares} \cr #' and \eqn{TSS = Total~Sum~of~Squares} #' #' #' **Error of fitted component parameters** #' #' The 1-sigma error for the #' components is calculated using the function [stats::confint]. Due to #' considerable calculation time, this option is deactivated by default. In #' addition, the error for the components can be estimated by using internal R #' functions like [summary]. See the [nls] help page #' for more information. #' #' *For details on the nonlinear regression in R, see Ritz & Streibig (2008).* #' #' @param values [RLum.Data.Curve-class] or [data.frame] (**required**): #' x, y data of measured values (time and counts). See examples. #' #' @param n.components.max [vector] (*optional*): #' maximum number of components that are to be used for fitting. #' The upper limit is 7. #' #' @param fit.failure_threshold [integer] (*with default*): #' limits the failed fitting attempts. #' #' @param fit.method [character] (*with default*): #' select fit method, allowed values: `'port'` and `'LM'`. `'port'` uses the 'port' #' routine from the function [nls] `'LM'` utilises the function `nlsLM` from #' the package `minpack.lm` and with that the Levenberg-Marquardt algorithm. #' #' @param fit.trace [logical] (*with default*): #' traces the fitting process on the terminal. #' #' @param fit.calcError [logical] (*with default*): #' calculate 1-sigma error range of components using [stats::confint] #' #' @param LED.power [numeric] (*with default*): #' LED power (max.) used for intensity ramping in mW/cm². #' **Note:** The value is used for the calculation of the absolute #' photoionisation cross section. #' #' @param LED.wavelength [numeric] (*with default*): #' LED wavelength used for stimulation in nm. #' **Note:** The value is used for the calculation of the absolute #' photoionisation cross section. #' #' @param cex.global [numeric] (*with default*): #' global scaling factor. #' #' @param sample_code [character] (*optional*): #' sample code used for the plot and the optional output table (`mtext`). #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param output.terminalAdvanced [logical] (*with default*): #' enhanced terminal output. Only valid if `verbose = TRUE`. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param method_control [list] (*optional*): options to control the output #' produced. Currently only the 'export.comp.contrib.matrix' (logical) option #' is supported, to enable/disable export of the component contribution #' matrix. #' #' @param ... further arguments and graphical parameters passed to [plot]. #' #' @return #' **plot (*optional*)** #' #' the fitted CW-OSL curves are returned as plot. #' #' **RLum.Results object** #' #' Beside the plot and table output options, an [RLum.Results-class] object is #' returned. #' #' `fit`: #' an `nls` object (`$fit`) for which generic R functions are #' provided, e.g. [summary], [stats::confint], [profile]. For more #' details, see [nls]. #' #' `output.table`: #' a [data.frame] containing the summarised parameters including the error #' #' `component.contribution.matrix`: #' [matrix] containing the values for the component to sum contribution plot #' (`$component.contribution.matrix`). #' Produced only if `method_control$export.comp.contrib.matrix = TRUE`). #' #' Matrix structure:\cr #' Column 1 and 2: time and `rev(time)` values \cr #' Additional columns are used for the components, two for each component, #' containing I0 and n0. The last columns `cont.` provide information on #' the relative component contribution for each time interval including the row #' sum for this values. #' #' @note #' #' **Beta version - This function has not been properly tested yet and** #' **should therefore not be used for publication purposes!** #' #' The pseudo-R² may not be the best parameter to describe the goodness of the #' fit. The trade off between the `n.components` and the pseudo-R² value #' is currently not considered. #' #' The function **does not** ensure that the fitting procedure has reached a #' global minimum rather than a local minimum! #' #' @section Function version: 0.5.4 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [fit_LMCurve], [plot],[nls], [RLum.Data.Curve-class], #' [RLum.Results-class], [get_RLum], [minpack.lm::nlsLM] #' #' @references #' Boetter-Jensen, L., McKeever, S.W.S., Wintle, A.G., 2003. #' Optically Stimulated Luminescence Dosimetry. Elsevier Science B.V. #' #' Lave, C.A.T., 1970. The Demand for Urban Mass Transportation. The Review of #' Economics and Statistics, 52 (3), 320-323. #' #' Ritz, C. & Streibig, J.C., 2008. Nonlinear Regression with R. In: R. #' Gentleman, K. Hornik, G. Parmigiani, eds., Springer, p. 150. #' #' @keywords dplot models #' #' @examples #' #' ##load data #' data(ExampleData.CW_OSL_Curve, envir = environment()) #' #' ##fit data #' fit <- fit_CWCurve(values = ExampleData.CW_OSL_Curve, #' main = "CW Curve Fit", #' n.components.max = 4, #' log = "x") #' #' @md #' @export fit_CWCurve<- function( values, n.components.max, fit.failure_threshold = 5, fit.method = "port", fit.trace = FALSE, fit.calcError = FALSE, LED.power = 36, LED.wavelength = 470, cex.global = 0.6, sample_code = "Default", verbose = TRUE, output.terminalAdvanced = TRUE, plot = TRUE, method_control = list(), ... ) { .set_function_name("fit_CWCurve") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(values, c("RLum.Data.Curve", "data.frame")) .validate_not_empty(values) if(is(values, "RLum.Data.Curve") == TRUE){ values <- as.data.frame(values@data[, 1:2, drop = FALSE]) } ## set x and y values x <- values[, 1] y <- values[, 2] if (sum(y > 0) == 0) { .throw_error("'values' contains no positive counts") } if (any(order(x) != seq_along(x))) { .throw_error("Time values are not ordered") } fit.method <- .validate_args(fit.method, c("port", "LM")) .validate_positive_scalar(n.components.max, int = TRUE) .validate_positive_scalar(fit.failure_threshold, int = TRUE) .validate_logical_scalar(verbose) .validate_logical_scalar(output.terminalAdvanced) .validate_logical_scalar(plot) .validate_class(method_control, "list") # Deal with extra arguments ----------------------------------------------- ##deal with addition arguments extraArgs <- list(...) main <- if("main" %in% names(extraArgs)) {extraArgs$main} else {"CW-OSL Curve Fit"} log <- if("log" %in% names(extraArgs)) {extraArgs$log} else {""} xlab <- if("xlab" %in% names(extraArgs)) {extraArgs$xlab} else {"Time [s]"} ylab <- if("ylab" %in% names(extraArgs)) {extraArgs$ylab} else {paste("OSL [cts/",round(max(x)/length(x), digits = 2)," s]",sep="")} method_control <- modifyList(x = list(export.comp.contrib.matrix = FALSE), val = method_control) if ("output.path" %in% names(extraArgs)) .throw_warning("Argument 'output.path' no longer supported, ignored") ##============================================================================## ## FITTING ##============================================================================## ## ##////equation used for fitting////(start) fit.equation <- function(I0.i,lambda.i){ equation<-parse( text=paste("I0[",I0.i,"]*lambda[",lambda.i,"]*exp(-lambda[",lambda.i,"]*x)", collapse="+",sep="")) return(equation) } ##////equation used for fitting///(end) ##set formula elements for fitting functions ## the upper two funtions should be removed ... but chances are needed ... TODO ##////equation used for fitting////(start) fit.formula <- function(n.components){ I0 <- paste0("I0.",1:n.components) lambda <- paste0("lambda.",1:n.components) stats::as.formula(paste0("y ~ ", paste(I0," * ", lambda, "* exp(-",lambda," * x)", collapse = " + "))) } ##////equation used for fitting///(end) ##////equation used for fitting////(start) fit.formula.simple <- function(n.components){ I0 <- paste0("I0.",1:n.components) lambda <- paste0("lambda.",1:n.components) stats::as.formula(paste0("y ~ ", paste(I0," * exp(-",lambda," * x)", collapse = " + "))) } ##////equation used for fitting///(end) ##set variables keep.fitting <- TRUE # set to FALSE if the fitting should be stopped early n.components <- 1 #number of components used for fitting - start with 1 fit.failure_counter <- 0 #counts the failed fitting attempts ##if n.components_max is missing, then it is Inf if(missing(n.components.max)==TRUE){n.components.max<-Inf} ## ##++++Fitting loop++++(start) while(keep.fitting && n.components <= n.components.max) { ##(0) START PARAMETER ESTIMATION ##rough automatic start parameter estimation ##I0 I0<-rep(values[1,2]/3,n.components) names(I0) <- paste0("I0.",1:n.components) ##lambda ##ensure that no values <=0 are included remove them for start parameter ##estimation and fit an linear function a first guess temp.values <- data.frame(x[y > 0], log(y[y > 0])) temp <- stats::lm(temp.values) lambda<-abs(temp$coefficient[2])/nrow(values) k<-2 while(k<=n.components){ lambda[k]<-lambda[k-1]/100 k<-k+1 } names(lambda) <- paste0("lambda.",1:n.components) ##(1) FIRST FIT WITH A SIMPLE FUNCTION if(fit.method == "LM"){ ##try fit simple fit.try<-suppressWarnings(try(minpack.lm::nlsLM(fit.formula.simple(n.components), data=values, start=c(I0,lambda), na.action = "na.exclude", trace = fit.trace, control = minpack.lm::nls.lm.control( maxiter = 500 )), silent = TRUE ))#end try }else if(fit.method == "port"){ ##try fit simple fit.try<-suppressWarnings(try(nls(fit.formula.simple(n.components), data=values, trace = fit.trace, algorithm="port", na.action = "na.exclude", start=c(I0,lambda), stats::nls.control( tol = 1, maxiter=100, warnOnly=FALSE, minFactor=1/1024 ), lower=rep(0,n.components * 2)# set lower boundaries for components ), silent=TRUE# nls ))#end try } ##(3) FIT WITH THE FULL FUNCTION if(inherits(fit.try,"try-error") == FALSE){ ##grep parameters from simple fit to further work with them parameters <- coef(fit.try) ##grep parameters an set new starting parameters, here just lambda is choosen as ##it seems to be the most valuable parameter lambda <- parameters[(n.components+1):length(parameters)] if(fit.method == "LM"){ ##try fit simple fit.try<-suppressWarnings(try(minpack.lm::nlsLM(fit.formula(n.components), data=values, start=c(I0,lambda), trace = fit.trace, na.action = "na.exclude", lower = rep(0,n.components * 2), control = minpack.lm::nls.lm.control( maxiter = 500 )), silent = TRUE)) ## HACK: # minpack.lm::nlsLM() stores the 'lower' argument as class "call" rather # than "numeric" as nls() does. Before running confint() on this object # we overwrite the "lower" slot with the numeric values again. if (!inherits(fit.try, "try-error")) { fit.try$call$lower <- rep(0,n.components * 2) } }else{ ##try fit fit.try<-suppressWarnings(try(nls(fit.formula(n.components), trace=fit.trace, data=values, algorithm="port", na.action = "na.exclude", start=c(I0,lambda), stats::nls.control( maxiter = 500, warnOnly = FALSE, minFactor = 1/4096 ), lower=rep(0,n.components * 2)# set lower boundaries for components ), silent=TRUE# nls ))#end try }#fit.method } n.components <- n.components + 1 ##count failed attempts for fitting if (!inherits(fit.try, "try-error")) { fit <- fit.try }else{ fit.failure_counter <- fit.failure_counter+1 if (!exists("fit")) { fit <- fit.try } } ##stop fitting after a given number of wrong attempts if(fit.failure_counter>=fit.failure_threshold){ keep.fitting <- FALSE } }##end while ##++++Fitting loop++++(end) ##============================================================================## ## FITTING OUTPUT ##============================================================================## ##grep parameters output.table <- component.contribution.matrix <- NA if(inherits(fit,"try-error")==FALSE){ parameters <- coef(fit) ##correct fit equation for the de facto used number of components I0.i<-1:(length(parameters)/2) lambda.i<-1:(length(parameters)/2) fit.function<-fit.equation(I0.i=I0.i,lambda.i=lambda.i) n.components<-length(I0.i) ##write parameters in vectors and order by decreasing lambda value I0<-parameters[1:(length(parameters)/2)] lambda<-parameters[(1+(length(parameters)/2)):length(parameters)] o<-order(lambda,decreasing=TRUE) I0<-I0[o] lambda<-lambda[o] ##============================================================================## ## Additional Calculation ##============================================================================## ## --------------------------------------------- ##calculate stimulation intensity Schmidt (2008) ##Energy - E = h*v h<-6.62606957e-34 #in W*s^2 - Planck constant ny<-299792458/(LED.wavelength/10^9) #frequency of light E<-h*ny ## transform LED.power in W/cm² LED.power<-LED.power/1000 ##gets stimulation intensity stimulation_intensity<-LED.power/E ## --------------------------------------------- ##calculate photoionisation cross section and print on terminal ##using EQ (5) in Kitis cs<-as.vector(lambda/stimulation_intensity) cs.rel<-round(cs/cs[1],digits=4) ## --------------------------------------------- ##coefficient of determination after law RSS <- sum(residuals(fit)^2) #residual sum of squares TSS <- sum((y - mean(y))^2) #total sum of squares pR<-round(1-RSS/TSS,digits=4) if(pR<0){ .throw_warning("pseudo-R^2 < 0!") } ## --------------------------------------------- ##calculate 1- sigma CONFIDENCE INTERVALL lambda.error<-rep(NA, n.components) I0.error<-rep(NA, n.components) ## option for confidence interval if (fit.calcError) { tryCatch({ values.confint <- stats::confint(fit, level = 0.68) half <- nrow(values.confint) / 2 I0.confint <- values.confint[1:half, ] lambda.confint <- values.confint[half + 1:half, ] ## error calculation I0.error <- abs(I0.confint[, 1] - I0.confint[, 2]) lambda.error <- abs(lambda.confint[, 1] - lambda.confint[, 2]) }, error = function(e) { ## report the error from confint() .throw_message("Computation of confidence interval failed: ", e$message) }) }#endif::fit.calcError ##============================================================================## ## Terminal Output ##============================================================================## if (verbose) { ##print rough fitting information - use the nls() control for more information writeLines("\n[fit_CWCurve()]") writeLines(paste("\nFitting was finally done using a ",n.components, "-component function (max=",n.components.max,"):",sep="")) writeLines("------------------------------------------------------------------------------") writeLines(paste0("y ~ ", as.character(fit.formula(n.components))[3], "\n")) ##combine values and change rows names fit.results<-cbind(I0,I0.error,lambda,lambda.error,cs, cs.rel) row.names(fit.results)<-paste("c", 1:(length(parameters)/2), sep="") ##print parameters print(fit.results) #print some additional information if(fit.calcError==TRUE){writeLines("(errors quoted as 1-sigma values)")} writeLines("------------------------------------------------------------------------------") }#end if ##============================================================================## ## Terminal Output (advanced) ##============================================================================## if (verbose && output.terminalAdvanced) { ##sum of squares writeLines(paste("pseudo-R^2 = ",pR,sep="")) }#end if ##============================================================================## ## Table Output ##============================================================================## ##write output table if values exists if (exists("fit")){ ##set data.frame for a max value of 7 components output.table<-data.frame(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA, NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA, NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA) output.tableColNames<-c("I01","I01.error","lambda1", "lambda1.error", "cs1","cs1.rel", "I02","I02.error","lambda2", "lambda2.error", "cs2","cs2.rel", "I03","I03.error","lambda3", "lambda3.error", "cs3","cs3.rel", "I04","I04.error","lambda4", "lambda4.error", "cs4","cs4.rel", "I05","I05.error","lambda5", "lambda5.error", "cs5","cs5.rel", "I06","I06.error","lambda6", "lambda6.error", "cs6","cs6.rel", "I07","I07.error","lambda7", "lambda7.error", "cs7","cs7.rel" ) ##write components in output table i<-0 k<-1 while(i<=n.components*6){ output.table[1,i+1]<-I0[k] output.table[1,i+2]<-I0.error[k] output.table[1,i+3]<-lambda[k] output.table[1,i+4]<-lambda.error[k] output.table[1,i+5]<-cs[k] output.table[1,i+6]<-cs.rel[k] i<-i+6 k<-k+1 } ##add pR and n.components output.table<-cbind(sample_code,n.components,output.table,pR) ##alter column names colnames(output.table)<-c("sample_code","n.components", output.tableColNames,"pseudo-R^2") ##============================================================================## ## COMPONENT TO SUM CONTRIBUTION PLOT ##============================================================================## ##+++++++++++++++++++++++++++++++ ##set matrix ##set polygon matrix for optional plot output component.contribution.matrix <- matrix(NA, nrow = length(values[,1]), ncol = (2*length(I0)) + 2) ##set x-values component.contribution.matrix[,1] <- values[,1] component.contribution.matrix[,2] <- rev(values[,1]) ##+++++++++++++++++++++++++++++++ ##set 1st polygon ##1st polygon (calculation) y.contribution_first<-(I0[1]*lambda[1]*exp(-lambda[1]*x))/(eval(fit.function))*100 ##avoid NaN values (might happen with synthetic curves) y.contribution_first[is.nan(y.contribution_first)==TRUE] <- 0 ##set values in matrix component.contribution.matrix[,3] <- 100 component.contribution.matrix[,4] <- 100 - rev(y.contribution_first) ##+++++++++++++++++++++++++++++++ ##set polygons in between ##polygons in between (calculate and plot) if (length(I0)>2){ y.contribution_prev <- y.contribution_first i<-2 ##matrix stepping k <- seq(3, ncol(component.contribution.matrix), by=2) while (i<=length(I0)-1) { y.contribution_next<-I0[i]*lambda[i]*exp(-lambda[i]*x)/(eval(fit.function))*100 ##avoid NaN values y.contribution_next[is.nan(y.contribution_next)==TRUE] <- 0 ##set values in matrix component.contribution.matrix[,k[i]] <- 100 - y.contribution_prev component.contribution.matrix[, k[i]+1] <- rev(100-y.contribution_prev- y.contribution_next) y.contribution_prev <- y.contribution_prev + y.contribution_next i <- i+1 }#end while loop }#end if ##+++++++++++++++++++++++++++++++ ##set last polygon ##last polygon (calculation) y.contribution_last <- I0[length(I0)]*lambda[length(lambda)]*exp(-lambda[length(lambda)]*x)/ (eval(fit.function))*100 ##avoid NaN values y.contribution_last[is.nan(y.contribution_last)==TRUE]<-0 component.contribution.matrix[,((2*length(I0))+1)] <- y.contribution_last component.contribution.matrix[,((2*length(I0))+2)] <- 0 ##change names of matrix to make more easy to understand component.contribution.matrix.names <- c( "x", "rev.x", paste(c("y.c","rev.y.c"),rep(1:n.components,each=2), sep="")) ##calculate area for each component, for each time interval component.contribution.matrix.area <- sapply( seq(3,ncol(component.contribution.matrix),by=2), function(x){ matrixStats::rowDiffs(cbind(rev(component.contribution.matrix[,(x+1)]), component.contribution.matrix[,x])) }) ##append to existing matrix component.contribution.matrix <- cbind( component.contribution.matrix, component.contribution.matrix.area, rowSums(component.contribution.matrix.area) ) ##set final column names colnames(component.contribution.matrix) <- c( component.contribution.matrix.names, paste(c("cont.c"),rep(1:n.components,each=1), sep=""), "cont.sum") }#endif :: (exists("fit")) } ##============================================================================## ## PLOTTING ##============================================================================## if(plot==TRUE){ ##grep par parameters par.default <- par()[c("mfrow", "cex", "mar", "omi", "oma")] on.exit(par(par.default), add = TRUE) ##set colors gallery to provide more colors col <- get("col", pos = .LuminescenceEnv) ##set plot frame par(cex = cex.global) if(!inherits(fit, "try-error")){ layout(matrix(c(1,2,3),3,1,byrow=TRUE),c(1.6,1,1), c(1,0.3,0.4),TRUE) par(oma = c(1, 1, 1, 1), mar = c(0, 4, 3, 0)) } ##== upper plot ==## ##open plot area plot_check <- try(plot(NA, NA, xlim=c(min(x),max(x)), ylim = c(ifelse(log == "xy", 1, 0), max(y)), xlab = ifelse(inherits(fit, "try-error"), xlab, ""), xaxt = ifelse(inherits(fit, "try-error"), "s", "n"), ylab=ylab, main=main, log = log), silent = TRUE) if (is(plot_check, "try-error")) { ## reset the graphic device if plotting failed .throw_message("Figure margins too large or plot area too small, ", "nothing plotted") grDevices::dev.off() } else { ##plotting measured signal points(x,y,pch=20, col="grey") ##add additional labeling (fitted function) mtext(side=3, sample_code, cex=0.7*cex.global) ##plot sum function if(inherits(fit,"try-error")==FALSE){ lines(x,eval(fit.function), lwd=2, col="black") legend.caption<-"sum curve" curve.col <- 1 ##plot signal curves ##plot curve for additional parameters if(length(I0)>1){ for (i in 1:length(I0)) { curve(I0[i]*lambda[i]*exp(-lambda[i]*x),col=col[i+1], lwd = 2, add = TRUE) legend.caption<-c(legend.caption,paste("component ",i,sep="")) curve.col<-c(curve.col,i+1) } }#end if ##plot legend #legend(y=max(y)*1,"measured values",pch=20, col="gray", bty="n") legend("topright",legend.caption,lty=rep(1,n.components+1,NA),lwd=2,col=col[curve.col], bty="n") ##==lower plot==## ##plot residuals par(mar=c(4.2,4,0,0)) plot_check2 <- try(plot(x,residuals(fit), xlim=c(min(x),max(x)), xlab=xlab, type="l", col="grey", ylab="Residual [a.u.]", lwd=2, log=if(log=="x" | log=="xy"){log="x"}else{""} ), silent = TRUE) if (is(plot_check2, "try-error")) { ## reset the graphic device if plotting failed .throw_message("Figure margins too large or plot area too small, ", "nothing plotted") grDevices::dev.off() } else { ##add 0 line abline(h=0) ##------------------------------------------------------------------------## ##++component to sum contribution plot ++## ##------------------------------------------------------------------------## ##plot component contribution to the whole signal #open plot area par(mar=c(4,4,3.2,0)) plot(NA,NA, xlim=c(min(x),max(x)), ylim=c(0,100), ylab="Contribution [%]", xlab=xlab, main="Component contribution to sum curve", log=if(log=="x" | log=="xy"){log="x"}else{""}) stepping <- seq(3,length(component.contribution.matrix[1,]),2) for(i in 1:length(I0)){ polygon(c(component.contribution.matrix[,1], component.contribution.matrix[,2]), c(component.contribution.matrix[,stepping[i]], component.contribution.matrix[,stepping[i]+1]), col = col[i+1]) } rm(stepping) } # end if (plot_check2) } else { if (verbose) .throw_message("Fitting failed, plot without fit produced") }#end if try-error for fit } # end if (plot_check) } ##============================================================================## ## Return Values ##============================================================================## if (!method_control$export.comp.contrib.matrix) { component.contribution.matrix <- NA } newRLumResults.fit_CWCurve <- set_RLum( class = "RLum.Results", data = list( data = output.table, fit = fit, component.contribution.matrix = list(component.contribution.matrix) ), info = list(call = sys.call()) ) rm(fit) rm(output.table) rm(component.contribution.matrix) invisible(newRLumResults.fit_CWCurve) } Luminescence/R/merge_Risoe.BINfileData.R0000644000176200001440000001433114762554470017531 0ustar liggesusers#' @title Merge Risoe.BINfileData objects or Risoe BIN-files #' #' @description Function allows merging Risoe BIN/BINX files or [Risoe.BINfileData-class] objects. #' #' @details #' The function allows merging different measurements to one file or one #' object. The record IDs are recalculated for the new object. Other values #' are kept for each object. The number of input objects is not limited. #' #' `position.number.append.gap` option #' #' If the option `keep.position.number = FALSE` is used, the position #' numbers of the new data set are recalculated by adding the highest position #' number of the previous data set to the each position number of the next data #' set. For example: The highest position number is 48, then this number will #' be added to all other position numbers of the next data set (e.g. 1 + 48 = #' 49) #' #' However, there might be cases where an additional addend (summand) is needed #' before the next position starts. Example: #' #' - Position number set (A): `1,3,5,7` #' - Position number set (B): `1,3,5,7` #' #' With no additional summand the new position numbers would be: #' `1,3,5,7,8,9,10,11`. That might be unwanted. Using the argument #' `position.number.append.gap = 1` it will become: #' `1,3,5,7,9,11,13,15,17`. #' #' @param input.objects [character] with [Risoe.BINfileData-class] objects (**required**): #' Character vector with path and files names #' (e.g. `input.objects = c("path/file1.bin", "path/file2.bin")` or #' [Risoe.BINfileData-class] objects (e.g. `input.objects = c(object1, object2)`). #' Alternatively a `list` is supported. #' #' #' @param output.file [character] (*optional*): #' File output path and name. If no value is given, a [Risoe.BINfileData-class] is #' returned instead of a file. #' #' @param keep.position.number [logical] (*with default*): #' Allows keeping the original position numbers of the input objects. #' Otherwise the position numbers are recalculated. #' #' @param position.number.append.gap [integer] (*with default*): #' Set the position number gap between merged BIN-file sets, if the option #' `keep.position.number = FALSE` is used. See details for further #' information. #' #' @return Returns a `file` or a [Risoe.BINfileData-class] object. #' #' @note #' The validity of the output objects is not further checked. #' #' @section Function version: 0.2.9 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [Risoe.BINfileData-class], [read_BIN2R], [write_R2BIN] #' #' @references #' Duller, G.A.T., 2007. Analyst (Version 3.24) (manual). Aberystwyth University, Aberystwyth. #' #' #' @keywords IO manip #' #' #' @examples #' #' ##merge two objects #' data(ExampleData.BINfileData, envir = environment()) #' #' object1 <- CWOSL.SAR.Data #' object2 <- CWOSL.SAR.Data #' #' object.new <- merge_Risoe.BINfileData(c(object1, object2)) #' #' @md #' @export merge_Risoe.BINfileData <- function( input.objects, output.file, keep.position.number = FALSE, position.number.append.gap = 0 ) { .set_function_name("merge_Risoe.BINfileData") on.exit(.unset_function_name(), add = TRUE) # Integrity Checks -------------------------------------------------------- .validate_class(input.objects, c("character", "list")) if(length(input.objects) < 2){ message("[merge_Risoe.BINfileData()] Nothing done: at least two input objects are needed!") return(input.objects) } if (is.character(input.objects)) { for(i in 1:length(input.objects)){ if(file.exists(input.objects[i])==FALSE){ .throw_error("File '", input.objects[i], "' does not exist") } } }else{ for (i in 1:length(input.objects)) { .validate_class(input.objects[[i]], "Risoe.BINfileData", name = "All elements of 'input.objects'") } } # Import Files ------------------------------------------------------------ ##loop over all files to store the results in a list ##or the input is already a list if (is.character(input.objects)) { temp <- lapply(input.objects, read_BIN2R, txtProgressBar = FALSE) }else{ temp <- input.objects } # Get POSITION values ------------------------------------------------------- ##grep maximum position value from the first file temp.position.max <- max(temp[[1]]@METADATA[["POSITION"]]) ##grep all position values except from the first file temp.position.values <- unlist(sapply(2:length(temp), function(x){ temp <- temp[[x]]@METADATA[["POSITION"]] + temp.position.max + position.number.append.gap assign(x = "temp.position.max", value = max(temp), envir = parent.env(environment())) return(temp) })) temp.position.values <- c(temp[[1]]@METADATA[["POSITION"]], temp.position.values) # Get overall record length ----------------------------------------------- temp.record.length <- sum(sapply(1:length(temp), function(x){ length(temp[[x]]@METADATA[,"ID"]) })) # Merge Files ------------------------------------------------------------- ##loop for similar input objects for(i in 1:length(input.objects)){ if (!exists("temp.new.METADATA")) { temp.new.METADATA <- temp[[i]]@METADATA temp.new.DATA <- temp[[i]]@DATA temp.new.RESERVED <- list() if (".RESERVED" %in% slotNames(temp[[i]])) { temp.new.RESERVED <- temp[[i]]@.RESERVED } }else{ temp.new.METADATA <- rbind(temp.new.METADATA, temp[[i]]@METADATA) temp.new.DATA <- c(temp.new.DATA, temp[[i]]@DATA) new.reserved <- list() if (".RESERVED" %in% slotNames(temp[[i]])) { new.reserved <- temp[[i]]@.RESERVED } temp.new.RESERVED <- c(temp.new.RESERVED, new.reserved) } } ##SET RECORD ID in METADATA temp.new.METADATA$ID <- 1:temp.record.length ##SET POSITION VALUES if(keep.position.number == FALSE){ temp.new.METADATA$POSITION <- temp.position.values } ##TODO version number? # Produce BIN file object ------------------------------------------------- temp.new <- set_Risoe.BINfileData( METADATA = temp.new.METADATA, DATA = temp.new.DATA, .RESERVED = temp.new.RESERVED ) # OUTPUT ------------------------------------------------------------------ if(missing(output.file) == FALSE){ write_R2BIN(temp.new, output.file) }else{ return(temp.new) } } Luminescence/R/calc_Huntley2006.R0000644000176200001440000012205714762554470016157 0ustar liggesusers#' @title Apply the Huntley (2006) model #' #' @description #' A function to calculate the expected sample specific fraction of saturation #' based on the model of Huntley (2006) using the approach as implemented #' in Kars et al. (2008) or Guralnik et al. (2015). #' #' @details #' #' This function applies the approach described in Kars et al. (2008) or Guralnik et al. (2015), #' which are both developed from the model of Huntley (2006) to calculate the expected sample #' specific fraction of saturation of a feldspar and also to calculate fading #' corrected age using this model. \eqn{\rho}' (`rhop`), the density of recombination #' centres, is a crucial parameter of this model and must be determined #' separately from a fading measurement. The function [analyse_FadingMeasurement] #' can be used to calculate the sample specific \eqn{\rho}' value. #' #' **Kars et al. (2008) - Single saturating exponential** #' #' To apply the approach after Kars et al. (2008) use `fit.method = "EXP"`. #' #' Firstly, the unfaded \eqn{D_0} value is determined through applying equation 5 of #' Kars et al. (2008) to the measured \eqn{\frac{L_x}{T_x}} data as a function of irradiation #' time, and fitting the data with a single saturating exponential of the form: #' #' \deqn{\frac{L_x}{T_x}(t^*) = A \phi(t^*) \{1 - exp(-\frac{t^*}{D_0}))\}} #' #' where #' #' \deqn{\phi(t^*) = exp(-\rho' ln(1.8 \tilde{s} t^*)^3)} #' #' after King et al. (2016) where \eqn{A} is a pre-exponential factor, #' \eqn{t^*} (s) is the irradiation time, starting at the mid-point of #' irradiation (Auclair et al. 2003) and \eqn{\tilde{s}} (\eqn{3\times10^{15}} s\eqn{^{-1}}) is the athermal frequency factor after Huntley (2006). \cr #' #' Using fit parameters \eqn{A} and \eqn{D_0}, the function then computes a natural dose #' response curve using the environmental dose rate, \eqn{\dot{D}} (Gy/s) and equations #' `[1]` and `[2]`. Computed \eqn{\frac{L_x}{T_x}} values are then fitted using the #' [fit_DoseResponseCurve] function and the laboratory measured LnTn can then #' be interpolated onto this curve to determine the fading corrected #' \eqn{D_e} value, from which the fading corrected age is calculated. #' #' **Guralnik et al. (2015) - General-order kinetics** #' #' To apply the approach after Guralnik et al. (2015) use `fit.method = "GOK"`. #' #' The approach of Guralnik et al. (2015) is very similar to that of #' Kars et al. (2008), but instead of using a single saturating exponential #' the model fits a general-order kinetics function of the form: #' #' \deqn{\frac{L_x}{T_x}(t^*) = A \phi (t^*)(1 - (1 + (\frac{1}{D_0}) t^* c)^{-1/c})} #' #' where \eqn{A}, \eqn{\phi}, \eqn{t^*} and \eqn{D_0} are the same as above and \eqn{c} is a #' dimensionless kinetic order modifier (cf. equation 10 in #' Guralnik et al., 2015). #' #' **Level of saturation** #' #' The [calc_Huntley2006] function also calculates the level of saturation (\eqn{\frac{n}{N}}) #' and the field saturation (i.e. athermal steady state, (n/N)_SS) value for #' the sample under investigation using the sample specific \eqn{\rho}', #' unfaded \eqn{D_0} and \eqn{\dot{D}} values, following the approach of Kars et al. (2008). #' #' The computation is done using 1000 equally-spaced points in the interval #' \[0.01, 3\]. This can be controlled by setting option `rprime`, such as #' in `rprime = seq(0.01, 3, length.out = 1000)` (the default). #' #' **Uncertainties** #' #' Uncertainties are reported at \eqn{1\sigma} and are assumed to be normally #' distributed and are estimated using Monte-Carlo re-sampling (`n.MC = 1000`) #' of \eqn{\rho}' and \eqn{\frac{L_x}{T_x}} during dose response curve fitting, and of \eqn{\rho}' #' in the derivation of (\eqn{n/N}) and (n/N)_SS. #' #' **Age calculated from 2D0 of the simulated natural DRC** #' #' In addition to the age calculated from the equivalent dose derived from #' \eqn{\frac{L_n}{T_n}} projected on the simulated natural dose response curve (DRC), this function #' also calculates an age from twice the characteristic saturation dose (`D0`) #' of the simulated natural DRC. This can be a useful information for #' (over)saturated samples (i.e., no intersect of \eqn{\frac{L_n}{T_n}} on the natural DRC) #' to obtain at least a "minimum age" estimate of the sample. In the console #' output this value is denoted by *"Age @2D0 (ka):"*. #' #' @param data [data.frame] (**required**): #' A `data.frame` with one of the following structures: #' - A **three column** data frame with numeric values on a) dose (s), b) `LxTx` and #' c) `LxTx` error. #' - If a **two column** data frame is provided it is automatically #' assumed that errors on `LxTx` are missing. A third column will be attached #' with an arbitrary 5 % error on the provided `LxTx` values. #' - Can also be a **wide table**, i.e. a [data.frame] with a number of columns divisible by 3 #' and where each triplet has the aforementioned column structure. #' #' ``` #' (optional) #' | dose (s)| LxTx | LxTx error | #' | [ ,1] | [ ,2]| [ ,3] | #' |---------|------|------------| #' [1, ]| 0 | LnTn | LnTn error | (optional, see arg 'LnTn') #' [2, ]| R1 | L1T1 | L1T1 error | #' ... | ... | ... | ... | #' [x, ]| Rx | LxTx | LxTx error | #' #' ``` #' **NOTE:** The function assumes the first row of the function to be the #' `Ln/Tn`-value. If you want to provide more than one `Ln/Tn`-value consider #' using the argument `LnTn`. #' #' @param LnTn [data.frame] (*optional*): #' This argument should **only** be used to provide more than one `Ln/Tn`-value. #' It assumes a two column data frame with the following structure: #' #' ``` #' | LnTn | LnTn error | #' | [ ,1] | [ ,2] | #' |--------|--------------| #' [1, ]| LnTn_1 | LnTn_1 error | #' [2, ]| LnTn_2 | LnTn_2 error | #' ... | ... | ... | #' [x, ]| LnTn_x | LnTn_x error | #' ``` #' #' The function will calculate a **mean** `Ln/Tn`-value and uses either the #' standard deviation or the highest individual error, whichever is larger. If #' another mean value (e.g. a weighted mean or median) or error is preferred, #' this value must be calculated beforehand and used in the first row in the #' data frame for argument `data`. #' #' **NOTE:** If you provide `LnTn`-values with this argument the data frame #' for the `data`-argument **must not** contain any `LnTn`-values! #' #' @param rhop [numeric] (**required**): #' The density of recombination centres (\eqn{\rho}') and its error (see Huntley 2006), #' given as numeric vector of length two. Note that \eqn{\rho}' must **not** be #' provided as the common logarithm. Example: `rhop = c(2.92e-06, 4.93e-07)`. #' #' @param ddot [numeric] (**required**): #' Environmental dose rate and its error, given as a numeric vector of length two. #' Expected unit: Gy/ka. Example: `ddot = c(3.7, 0.4)`. #' #' @param readerDdot [numeric] (**required**): #' Dose rate of the irradiation source of the OSL reader and its error, #' given as a numeric vector of length two. #' Expected unit: Gy/s. Example: `readerDdot = c(0.08, 0.01)`. #' #' @param fit.method [character] (*with default*): #' Fit function of the dose response curve. Can either be `EXP` (the default) #' or `GOK`. Note that `EXP` (single saturating exponential) is the original #' function the model after Huntley (2006) and Kars et al. (2008) was #' designed to use. The use of a general-order kinetics function (`GOK`) #' is an experimental adaptation of the model and should be used #' with great care. #' #' @param lower.bounds [numeric] (*with default*): #' A vector of length 4 that contains the lower bound values to be applied #' when fitting the models with [minpack.lm::nlsLM]. In most cases, the #' default values (`c(-Inf, -Inf, -Inf, -Inf)`) are appropriate for finding #' a best fit, but sometimes it may be useful to restrict the lower bounds to #' e.g. `c(0, 0, 0, 0)`. The values of the vectors are, respectively, for #' parameters `a`, `D0`, `c` and `d` in that order (parameter `d` is ignored #' when `fit.method = "EXP"`). More details can be found in #' [fit_DoseResponseCurve]. #' #' @param normalise [logical] (*with default*): If `TRUE` (the default) all measured and computed \eqn{\frac{L_x}{T_x}} values are normalised by the pre-exponential factor `A` (see details). #' #' @param summary [logical] (*with default*): #' If `TRUE` (the default) various parameters provided by the user #' and calculated by the model are added as text on the right-hand side of the #' plot. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param ... #' Further parameters: #' - `verbose` [logical]: Show or hide console output #' - `n.MC` [numeric]: Number of Monte Carlo iterations (default = `10000`). #' **Note** that it is generally advised to have a large number of Monte Carlo #' iterations for the results to converge. Decreasing the number of iterations #' will often result in unstable estimates. #' #' All other arguments are passed to [plot] and [fit_DoseResponseCurve] (in particular #' `mode` for the fit mode and `fit.force_through_origin`) #' #' @return An [RLum.Results-class] object is returned: #' #' Slot: **@data**\cr #' #' \tabular{lll}{ #' **OBJECT** \tab **TYPE** \tab **COMMENT**\cr #' `results` \tab [data.frame] \tab results of the of Kars et al. 2008 model \cr #' `data` \tab [data.frame] \tab original input data \cr #' `Ln` \tab [numeric] \tab Ln and its error \cr #' `LxTx_tables` \tab `list` \tab A `list` of `data.frames` containing data on dose, #' LxTx and LxTx error for each of the dose response curves. #' Note that these **do not** contain the natural Ln signal, which is provided separately. \cr #' `fits` \tab `list` \tab A `list` of `nls` objects produced by [minpack.lm::nlsLM] when fitting the dose response curves \cr #' } #' #' Slot: **@info**\cr #' #' \tabular{lll}{ #' **OBJECT** \tab **TYPE** \tab **COMMENT** \cr #' `call` \tab `call` \tab the original function call \cr #' `args` \tab `list` \tab arguments of the original function call \cr #' } #' #' @section Function version: 0.4.5 #' #' @author #' Georgina E. King, University of Lausanne (Switzerland) \cr #' Christoph Burow, University of Cologne (Germany) \cr #' Sebastian Kreutzer, Ruprecht-Karl University of Heidelberg (Germany) #' #' @keywords datagen #' #' @note This function has BETA status, in particular for the GOK implementation. Please verify #' your results carefully #' #' @references #' #' Kars, R.H., Wallinga, J., Cohen, K.M., 2008. A new approach towards anomalous fading correction for feldspar #' IRSL dating-tests on samples in field saturation. Radiation Measurements 43, 786-790. doi:10.1016/j.radmeas.2008.01.021 #' #' Guralnik, B., Li, B., Jain, M., Chen, R., Paris, R.B., Murray, A.S., Li, S.-H., Pagonis, P., #' Herman, F., 2015. Radiation-induced growth and isothermal decay of infrared-stimulated luminescence #' from feldspar. Radiation Measurements 81, 224-231. #' #' Huntley, D.J., 2006. An explanation of the power-law decay of luminescence. #' Journal of Physics: Condensed Matter 18, 1359-1365. doi:10.1088/0953-8984/18/4/020 #' #' King, G.E., Herman, F., Lambert, R., Valla, P.G., Guralnik, B., 2016. #' Multi-OSL-thermochronometry of feldspar. Quaternary Geochronology 33, 76-87. doi:10.1016/j.quageo.2016.01.004 #' #' #' **Further reading** #' #' Morthekai, P., Jain, M., Cunha, P.P., Azevedo, J.M., Singhvi, A.K., 2011. An attempt to correct #' for the fading in million year old basaltic rocks. Geochronometria 38(3), 223-230. #' #' @examples #' #' ## Load example data (sample UNIL/NB123, see ?ExampleData.Fading) #' data("ExampleData.Fading", envir = environment()) #' #' ## (1) Set all relevant parameters #' # a. fading measurement data (IR50) #' fading_data <- ExampleData.Fading$fading.data$IR50 #' #' # b. Dose response curve data #' data <- ExampleData.Fading$equivalentDose.data$IR50 #' #' ## (2) Define required function parameters #' ddot <- c(7.00, 0.004) #' readerDdot <- c(0.134, 0.0067) #' #' # Analyse fading measurement and get an estimate of rho'. #' # Note that the RLum.Results object can be directly used for further processing. #' # The number of MC runs is reduced for this example #' rhop <- analyse_FadingMeasurement(fading_data, plot = TRUE, verbose = FALSE, n.MC = 10) #' #' ## (3) Apply the Kars et al. (2008) model to the data #' kars <- calc_Huntley2006( #' data = data, #' rhop = rhop, #' ddot = ddot, #' readerDdot = readerDdot, #' n.MC = 25) #' #' #' \dontrun{ #' # You can also provide LnTn values separately via the 'LnTn' argument. #' # Note, however, that the data frame for 'data' must then NOT contain #' # a LnTn value. See argument descriptions! #' LnTn <- data.frame( #' LnTn = c(1.84833, 2.24833), #' nTn.error = c(0.17, 0.22)) #' #' LxTx <- data[2:nrow(data), ] #' #' kars <- calc_Huntley2006( #' data = LxTx, #' LnTn = LnTn, #' rhop = rhop, #' ddot = ddot, #' readerDdot = readerDdot, #' n.MC = 25) #' } #' @md #' @export calc_Huntley2006 <- function( data, LnTn = NULL, rhop, ddot, readerDdot, normalise = TRUE, fit.method = c("EXP", "GOK"), lower.bounds = c(-Inf, -Inf, -Inf, -Inf), summary = TRUE, plot = TRUE, ... ) { .set_function_name("calc_Huntley2006") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(data, "data.frame") .validate_not_empty(data) fit.method <- .validate_args(fit.method, c("EXP", "GOK")) .validate_length(lower.bounds, 4) ## Check 'data' if (ncol(data) == 2) { .throw_warning("'data' has only two columns: we assume that the errors ", "on LxTx are missing and automatically add a 5% error.\n", "Please provide a data frame with three columns ", "if you wish to use actually measured LxTx errors.") data[ ,3] <- data[ ,2] * 0.05 } ## Check if 'LnTn' is used and overwrite 'data' if (!is.null(LnTn)) { .validate_class(LnTn, "data.frame") if (ncol(LnTn) != 2) .throw_error("'LnTn' should be a data frame with 2 columns") if (ncol(data) > 3) .throw_error("When 'LnTn' is specified, 'data' should have only ", "2 or 3 columns") # case 1: only one LnTn value if (nrow(LnTn) == 1) { LnTn <- setNames(cbind(0, LnTn), names(data)) # case 2: >1 LnTn value } else { LnTn_mean <- mean(LnTn[ ,1]) LnTn_sd <- sd(LnTn[ ,1]) LnTn_error <- max(LnTn_sd, LnTn[ ,2]) LnTn <- setNames(data.frame(0, LnTn_mean, LnTn_error), names(data)) } data <- rbind(LnTn, data) } # check number of columns if (ncol(data) %% 3 != 0) { .throw_error("The number of columns in 'data' must be a multiple of 3.") } else { # extract all LxTx values data_tmp <- do.call(rbind, lapply(seq(1, ncol(data), 3), function(col) { setNames(data[2:nrow(data), col:c(col+2)], c("dose", "LxTx", "LxTxError")) }) ) # extract the LnTn values (assumed to be the first row) and calculate the column mean LnTn_tmp <- do.call(rbind, lapply(seq(1, ncol(data), 3), function(col) { setNames(data[1, col:c(col+2)], c("dose", "LxTx", "LxTxError")) }) ) # check whether the standard deviation of LnTn estimates or the largest # individual error is highest, and take the larger one LnTn_error_tmp <- max(c(sd(LnTn_tmp[ ,2]), mean(LnTn_tmp[ ,3])), na.rm = TRUE) LnTn_tmp <- colMeans(LnTn_tmp) # re-bind the data frame data <- rbind(LnTn_tmp, data_tmp) data[1, 3] <- LnTn_error_tmp data <- data[stats::complete.cases(data), ] } ## Check 'rhop' .validate_class(rhop, c("numeric", "RLum.Results")) # check if numeric if (is.numeric(rhop)) { .validate_length(rhop, 2) # alternatively, an RLum.Results object produced by analyse_FadingMeasurement() # can be provided } else if (inherits(rhop, "RLum.Results")) { if (rhop@originator == "analyse_FadingMeasurement") rhop <- c(rhop@data$rho_prime$MEAN, rhop@data$rho_prime$SD) else .throw_error("'rhop' accepts only RLum.Results objects produced ", "by 'analyse_FadingMeasurement()'") } # check if 'rhop' is actually a positive value if (anyNA(rhop) || !rhop[1] > 0 || any(is.infinite(rhop))) { .throw_error("'rhop' must be a positive number. Provided value ", "was: ", signif(rhop[1], 3), " \u2213 ", signif(rhop[2], 3)) } ## Check ddot & readerDdot .validate_class(ddot, "numeric") .validate_length(ddot, 2) .validate_class(readerDdot, "numeric") .validate_length(readerDdot, 2) ## Settings ------------------------------------------------------------------ settings <- modifyList( list( verbose = TRUE, n.MC = 10000), list(...)) ## Define Constants ---------------------------------------------------------- kb <- 8.617343 * 1e-5 alpha <- 1 Hs <- 3e15 # s value after Huntley (2006) Ma <- 1e6 * 365.25 * 24 * 3600 #in seconds ka <- Ma / 1000 #in seconds ## Define Functions ---------------------------------------------------------- # fit data using using Eq 5. from Kars et al (2008) employing # theta after King et al. (2016) theta <- function(t, r) { res <- exp(-r * log(1.8 * Hs * (0.5 * t))^3) res[!is.finite(res)] <- 0 return(res) } ## Preprocessing ------------------------------------------------------------- readerDdot.error <- readerDdot[2] readerDdot <- readerDdot[1] ddot.error <- ddot[2] ddot <- ddot[1] colnames(data) <- c("dose", "LxTx", "LxTx.Error") dosetime <- data[["dose"]][2:nrow(data)] LxTx.measured <- data[["LxTx"]][2:nrow(data)] LxTx.measured.error <- data[["LxTx.Error"]][2:nrow(data)] #Keep LnTn separate for derivation of measured fraction of saturation Ln <- data[["LxTx"]][1] Ln.error <- data[["LxTx.Error"]][1] ## set a sensible default for rprime: in most papers the upper boundary is ## around 2.2, so setting it to 3 should be enough in general, and 1000 ## points seem also enough; in any case, we let the user override it rprime <- seq(0.01, 3, length.out = 1000) if ("rprime" %in% names(list(...))) { rprime <- list(...)$rprime .validate_class(rprime, "numeric") } ## (1) MEASURED ---------------------------------------------------- data.tmp <- data data.tmp[ ,1] <- data.tmp[ ,1] * readerDdot GC.settings <- list( mode = "interpolation", fit.method = fit.method[1], fit.bounds = TRUE, fit.force_through_origin = FALSE, verbose = FALSE) GC.settings <- modifyList(GC.settings, list(...)) GC.settings$object <- data.tmp GC.settings$verbose <- FALSE ## take of force_through origin settings force_through_origin <- GC.settings$fit.force_through_origin mode_is_extrapolation <- GC.settings$mode == "extrapolation" ## call the fitting GC.measured <- try(do.call(fit_DoseResponseCurve, GC.settings)) if (inherits(GC.measured$Fit, "try-error")) .throw_error("Unable to fit growth curve to measured data, try setting ", "'fit.bounds = FALSE'") if (plot) { plot_DoseResponseCurve(GC.measured, main = "Measured dose response curve", xlab = "Dose (Gy)", verbose = FALSE) } # extract results and calculate age GC.results <- get_RLum(GC.measured) fit_measured <- GC.measured@data$Fit De.measured <- GC.results$De De.measured.error <- GC.results$De.Error D0.measured <- GC.results$D01 D0.measured.error <- GC.results$D01.ERROR Age.measured <- De.measured/ ddot Age.measured.error <- Age.measured * sqrt( (De.measured.error / De.measured)^2 + (readerDdot.error / readerDdot)^2 + (ddot.error / ddot)^2) ## (2) SIMULATED ----------------------------------------------------- # create MC samples rhop_MC <- rnorm(n = settings$n.MC, mean = rhop[1], sd = rhop[2]) if (fit.method == "EXP") { model <- LxTx.measured ~ a * theta(dosetime, rhop_i) * (1 - exp(-(dosetime + c) / D0)) start <- list(a = coef(fit_measured)[["a"]], D0 = D0.measured / readerDdot, c = coef(fit_measured)[["c"]]) lower.bounds <- lower.bounds[1:3] ## c = 0 if force_through_origin upper.bounds <- c(rep(Inf, 2), if (force_through_origin) 0 else Inf) } if (fit.method == "GOK") { model <- LxTx.measured ~ a * theta(dosetime, rhop_i) * (d - (1 + (1 / D0) * dosetime * c)^(-1 / c)) start <- list(a = coef(fit_measured)[["a"]], D0 = D0.measured / readerDdot, c = coef(fit_measured)[["c"]] * ddot, d = coef(fit_measured)[["d"]]) ## d = 1 if force_through_origin upper.bounds <- c(rep(Inf, 3), if (force_through_origin) 1 else Inf) } ## do the fitting fitcoef <- do.call(rbind, sapply(rhop_MC, function(rhop_i) { fit_sim <- try({ minpack.lm::nlsLM( formula = model, start = start, lower = lower.bounds, upper = upper.bounds, control = list(maxiter = settings$maxiter)) }, silent = TRUE) if (!inherits(fit_sim, "try-error")) coefs <- coef(fit_sim) else .throw_error("Could not fit simulated curve, check suitability of ", "model and parameters") return(coefs) }, simplify = FALSE)) # final fit for export # fit_simulated <- minpack.lm::nlsLM(LxTx.measured ~ a * theta(dosetime, rhop[1]) * (1 - exp(-dosetime / D0)), # start = list(a = max(LxTx.measured), D0 = D0.measured / readerDdot)) # scaling factor A <- mean(fitcoef[, "a"], na.rm = TRUE) A.error <- sd(fitcoef[ ,"a"], na.rm = TRUE) # calculate measured fraction of saturation nN <- Ln / A nN.error <- nN * sqrt( (Ln.error / Ln)^2 + (A.error / A)^2) # compute a natural dose response curve following the assumptions of # Morthekai et al. 2011, Geochronometria # natdosetime <- seq(0, 1e14, length.out = settings$n.MC) # natdosetimeGray <- natdosetime * ddot / ka # calculate D0 dose in seconds computedD0 <- (fitcoef[ ,"D0"] * readerDdot) / (ddot / ka) # Legacy code: # This is an older approximation to calculate the natural dose response curve, # which sometimes tended to slightly underestimate nN_ss. This is now replaced # with the newer approach below. # compute natural dose response curve # LxTx.sim <- A * theta(natdosetime, rhop[1]) * (1 - exp(-natdosetime / mean(computedD0, na.rm = TRUE) )) # warning("LxTx Curve: ", round(max(LxTx.sim) / A, 3), call. = FALSE) # compute natural dose response curve ddots <- ddot / ka natdosetimeGray <- c(0, exp(seq(1, log(max(data[ ,1]) * 2), length.out = 999))) natdosetime <- natdosetimeGray pr <- 3 * rprime^2 * exp(-rprime^3) # Huntley 2006, eq. 3 K <- Hs * exp(-rhop[1]^-(1/3) * rprime) TermA <- matrix(NA, nrow = length(rprime), ncol = length(natdosetime)) UFD0 <- mean(fitcoef[ ,"D0"], na.rm = TRUE) * readerDdot c_val <- mean(fitcoef[, "c"], na.rm = TRUE) if (fit.method[1] == "GOK") { ## prevent negative c values, which will cause NaN values if (c_val < 0) c_val <- 1 d_gok <- mean(fitcoef[ ,"d"], na.rm = TRUE) } for (k in 1:length(rprime)) { if (fit.method[1] == "EXP") { TermA[k, ] <- A * pr[k] * ((ddots / UFD0) / (ddots / UFD0 + K[k]) * (1 - exp(-(natdosetime + c_val) * (1 / UFD0 + K[k] / ddots)))) } else if (fit.method[1] == "GOK") { TermA[k, ] <- A * pr[k] * (ddots / UFD0) / (ddots / UFD0 + K[k]) * (d_gok-(1+(1 / UFD0 + K[k] / ddots) * natdosetime * c_val)^(-1 / c_val)) } } LxTx.sim <- colSums(TermA) / sum(pr) # warning("LxTx Curve (new): ", round(max(LxTx.sim) / A, 3), call. = FALSE) # calculate Age positive <- which(diff(LxTx.sim) > 0) data.unfaded <- data.frame( dose = c(0, natdosetimeGray[positive]), LxTx = c(Ln, LxTx.sim[positive]), LxTx.error = c(Ln.error, LxTx.sim[positive] * A.error/A)) data.unfaded$LxTx.error[2] <- 0.0001 ## update the parameter list for fit_DoseResponseCurve() GC.settings$object <- data.unfaded ## calculate simulated DE suppressWarnings( GC.simulated <- try(do.call(fit_DoseResponseCurve, GC.settings)) ) fit_simulated <- NA De.sim <- De.error.sim <- D0.sim.Gy <- D0.sim.Gy.error <- NA Age.sim <- Age.sim.error <- Age.sim.2D0 <- Age.sim.2D0.error <- NA if (!inherits(GC.simulated, "try-error")) { if (plot) { plot_DoseResponseCurve(GC.simulated, main = "Simulated dose response curve", xlab = "Dose (Gy)", verbose = FALSE) } GC.simulated.results <- get_RLum(GC.simulated) fit_simulated <- get_RLum(GC.simulated, "Fit") De.sim <- GC.simulated.results$De De.error.sim <- GC.simulated.results$De.Error # derive simulated D0 D0.sim.Gy <- GC.simulated.results$D01 D0.sim.Gy.error <- GC.simulated.results$D01.ERROR Age.sim <- De.sim / ddot Age.sim.error <- Age.sim * sqrt( ( De.error.sim/ De.sim)^2 + (readerDdot.error / readerDdot)^2 + (ddot.error / ddot)^2) Age.sim.2D0 <- 2 * D0.sim.Gy / ddot Age.sim.2D0.error <- Age.sim.2D0 * sqrt( ( D0.sim.Gy.error / D0.sim.Gy)^2 + (readerDdot.error / readerDdot)^2 + (ddot.error / ddot)^2) } if (Ln > max(LxTx.sim) * 1.1) .throw_warning("Ln is >10 % larger than the maximum computed LxTx value.", " The De and age should be regarded as infinite estimates.") if (Ln < min(LxTx.sim) * 0.95 && !mode_is_extrapolation) .throw_warning("Ln/Tn is smaller than the minimum computed LxTx value: ", "if, in consequence, your age result is NA, either your ", "input values are unsuitable, or you should consider using ", "a different model for your data") if (is.na(D0.sim.Gy)) { .throw_error("Simulated D0 is NA: either your input values are unsuitable, ", "or you should consider using a different model for your data") } # Estimate nN_(steady state) by Monte Carlo Simulation ddot_MC <- rnorm(n = settings$n.MC, mean = ddot, sd = ddot.error) UFD0_MC <- rnorm(n = settings$n.MC, mean = D0.sim.Gy, sd = D0.sim.Gy.error) ## The original formulation was: ## ## (1) rho_i <- 3 * alpha^3 * rhop_MC[i] / (4 * pi) ## (2) r <- rprime / (4 * pi * rho_i / 3)^(1 / 3) ## (3) tau <- ((1 / Hs) * exp(1)^(alpha * r)) / ka ## ## Substituting the expression for `rho_i` into `r`, many simplifications ## can be made, so (2) becomes: ## ## (2') r <- rprime / (alpha * (rhop_MC[i])^(1 / 3)) ## ## Now, substituting (2') into (3) we get: ## ## (3') tau <- ((1 / Hs) * exp(1)^(rprime / (rhop_MC[i]^(1 / 3))) / ka ## ## The current formulation then follows: ## ## rho_i <- rhop_MC[i]^(1 / 3) ## tau <- ((1 / Hs) * exp(1)^(rprime / rho_i)) / ka rho_MC <- rhop_MC^(1 / 3) nN_SS_MC <- mapply(function(rho_i, ddot_i, UFD0_i) { tau <- ((1 / Hs) * exp(1)^(rprime / rho_i)) / ka Ls <- 1 / (1 + UFD0_i / (ddot_i * tau)) Lstrap <- (pr * Ls) / sum(pr) # field saturation nN_SS_i <- sum(Lstrap) return(nN_SS_i) }, rho_MC, ddot_MC, UFD0_MC, SIMPLIFY = TRUE) nN_SS <- suppressWarnings(exp(mean(log(nN_SS_MC), na.rm = TRUE))) nN_SS.error <- suppressWarnings(nN_SS * abs(sd(log(nN_SS_MC), na.rm = TRUE) / mean(log(nN_SS_MC), na.rm = TRUE))) ## legacy code for debugging purposes ## nN_SS is often lognormally distributed, so we now take the mean and sd ## of the log values. # warning(mean(nN_SS_MC, na.rm = TRUE)) # warning(sd(nN_SS_MC, na.rm = TRUE)) ## (3) UNFADED --------------------------------------------------------------- LxTx.unfaded <- LxTx.measured / theta(dosetime, rhop[1]) LxTx.unfaded[is.nan((LxTx.unfaded))] <- 0 LxTx.unfaded[is.infinite(LxTx.unfaded)] <- 0 dosetimeGray <- dosetime * readerDdot ## run this first model also for GOK as in general it provides more ## stable estimates that can be used as starting point for GOK if (fit.method[1] == "EXP" || fit.method[1] == "GOK") { fit_unfaded <- try(minpack.lm::nlsLM( LxTx.unfaded ~ a * (1 - exp(-(dosetimeGray + c) / D0)), start = list( a = coef(fit_simulated)[["a"]], D0 = D0.measured / readerDdot, c = coef(fit_simulated)[["c"]]), upper = if(force_through_origin) { c(a = Inf, D0 = max(dosetimeGray), c = 0) } else { c(Inf, max(dosetimeGray), Inf) }, lower = lower.bounds[1:3], control = list(maxiter = settings$maxiter)), silent = TRUE) } ## if this fit has failed, what we do depends on fit.method: ## - for EXP, this error is irrecoverable if (inherits(fit_unfaded, "try-error") && fit.method == "EXP") { .throw_error("Could not fit unfaded curve, check suitability of ", "model and parameters") } ## - for GOK, we use the simulated fit to set the starting point if (fit.method == "GOK") { fit_start <- if (inherits(fit_unfaded, "try-error")) fit_simulated else fit_unfaded fit_unfaded <- try(minpack.lm::nlsLM( LxTx.unfaded ~ a * (d-(1+(1/D0)*dosetimeGray*c)^(-1/c)), start = list( a = coef(fit_start)[["a"]], D0 = coef(fit_start)[["D0"]], c = coef(fit_start)[["c"]], d = coef(fit_simulated)[["d"]]), upper = if(force_through_origin) { c(a = Inf, D0 = max(dosetimeGray), c = Inf, d = 1) } else { c(Inf, max(dosetimeGray), Inf, Inf)}, lower = lower.bounds[1:4], control = list(maxiter = settings$maxiter)), silent = TRUE) if(inherits(fit_unfaded, "try-error")) .throw_error("Could not fit unfaded curve, check suitability of ", "model and parameters") } D0.unfaded <- coef(fit_unfaded)[["D0"]] D0.error.unfaded <- summary(fit_unfaded)$coefficients["D0", "Std. Error"] ## Create LxTx tables -------------------------------------------------------- # normalise by A (saturation point of the un-faded curve) if (normalise) { LxTx.measured.relErr <- (LxTx.measured.error / LxTx.measured) LxTx.measured <- LxTx.measured / A LxTx.measured.error <- LxTx.measured * LxTx.measured.relErr LxTx.sim <- LxTx.sim / A LxTx.unfaded <- LxTx.unfaded / A Ln.relErr <- Ln.error / Ln Ln <- Ln / A Ln.error <- Ln * Ln.relErr } # combine all computed LxTx values LxTx_measured <- data.frame( dose = dosetimeGray, LxTx = LxTx.measured, LxTx.Error = LxTx.measured.error) LxTx_simulated <- data.frame( dose = natdosetimeGray, LxTx = LxTx.sim, LxTx.Error = LxTx.sim * A.error / A) LxTx_unfaded <- data.frame( dose = dosetimeGray, LxTx = LxTx.unfaded, LxTx.Error = LxTx.unfaded * A.error / A) ## Plot settings ------------------------------------------------------------- plot.settings <- modifyList(list( main = "Dose response curves", xlab = "Dose (Gy)", ylab = ifelse(normalise, "normalised LxTx (a.u.)", "LxTx (a.u.)") ), list(...)) ## Plotting ------------------------------------------------------------------ if (plot) { ### par settings --------- # set plot parameters par.old.full <- par(no.readonly = TRUE) # set graphical parameters par(mfrow = c(1,1), mar = c(4.5, 4, 4, 4), cex = 0.8, oma = c(0, 9, 0, 9)) if (summary) par(oma = c(0, 3, 0, 9)) # Find a good estimate of the x-axis limits if (mode_is_extrapolation && !force_through_origin) { dosetimeGray <- c(-De.measured - De.measured.error, dosetimeGray) De.measured <- -De.measured } xlim <- range(pretty(dosetimeGray)) if (!is.na(De.sim) & De.sim > xlim[2]) xlim <- range(pretty(c(min(dosetimeGray), De.sim))) # Create figure after Kars et al. (2008) contrasting the dose response curves ## open plot window ------------ plot( x = dosetimeGray[dosetimeGray >= 0], y = LxTx_measured$LxTx, main = plot.settings$main, xlab = plot.settings$xlab, ylab = plot.settings$ylab, pch = 16, ylim = c(0, max(do.call(rbind, list(LxTx_measured, LxTx_unfaded))[["LxTx"]])), xlim = xlim ) ##add ablines for extrapolation if (mode_is_extrapolation) abline(v = 0, h = 0, col = "gray") # LxTx error bars segments(x0 = dosetimeGray[dosetimeGray >= 0], y0 = LxTx_measured$LxTx + LxTx_measured$LxTx.Error, x1 = dosetimeGray[dosetimeGray >= 0], y1 = LxTx_measured$LxTx - LxTx_measured$LxTx.Error, col = "black") # re-calculate the measured dose response curve in Gray xNew <- seq(par()$usr[1],par()$usr[2], length.out = 200) yNew <- predict(GC.measured@data$Fit, list(x = xNew)) if (normalise) yNew <- yNew / A ## add measured curve ------- lines(xNew, yNew, col = "black") # add error polygon polygon(x = c(natdosetimeGray, rev(natdosetimeGray)), y = c(LxTx_simulated$LxTx + LxTx_simulated$LxTx.Error, rev(LxTx_simulated$LxTx - LxTx_simulated$LxTx.Error)), col = adjustcolor("grey", alpha.f = 0.5), border = NA) ## add simulated curve ------- xNew <- seq(if (mode_is_extrapolation) par()$usr[1] else 0, par()$usr[2], length.out = 200) yNew <- predict(GC.simulated@data$Fit, list(x = xNew)) if (normalise) yNew <- yNew / A points( x = xNew, y = yNew, type = "l", lty = 3) # Ln and DE as points points(x = if (mode_is_extrapolation) rep(De.measured, 2) else c(0, De.measured), y = if (mode_is_extrapolation) c(0,0) else c(Ln, Ln), col = "red", pch = c(2, 16)) # Ln error bar segments(x0 = 0, y0 = Ln - Ln.error, x1 = 0, y1 = Ln + Ln.error, col = "red") # Ln as a horizontal line lines(x = if (mode_is_extrapolation) c(0, min(c(De.measured, De.sim), na.rm = TRUE)) else c(par()$usr[1], max(c(De.measured, De.sim), na.rm = TRUE)), y = c(Ln, Ln), col = "red ", lty = 3) #vertical line of measured DE lines(x = c(De.measured, De.measured), y = c(par()$usr[3], Ln), col = "red", lty = 3) # add legends legend("bottomright", legend = c( "Unfaded DRC", "Measured DRC", "Simulated natural DRC"), lty = c(5, 1, 3), bty = "n", cex = 0.8) # add vertical line of simulated De if (!is.na(De.sim)) { lines(x = if (mode_is_extrapolation) c(-De.sim, -De.sim) else c(De.sim, De.sim), y = c(par()$usr[3], Ln), col = "red", lty = 3) points(x = if (mode_is_extrapolation) -De.sim else De.sim, y = if (mode_is_extrapolation) 0 else Ln, col = "red" , pch = 16) } else { lines(x = c(De.measured, xlim[2]), y = c(Ln, Ln), col = "black", lty = 3) } # add unfaded DRC -------- yNew <- predict(fit_unfaded, list(dosetimeGray = xNew)) if (normalise) yNew <- yNew / A lines(xNew, yNew, col = "black", lty = 5) points(x = dosetimeGray[dosetimeGray >= 0], y = LxTx_unfaded$LxTx, col = "black") # LxTx error bars segments( x0 = dosetimeGray[dosetimeGray >= 0], y0 = LxTx_unfaded$LxTx + LxTx_unfaded$LxTx.Error, x1 = dosetimeGray[dosetimeGray >= 0], y1 = LxTx_unfaded$LxTx - LxTx_unfaded$LxTx.Error, col = "black") # add text if (summary) { # define labels as expressions labels.text <- list( bquote(dot(D) == .(format(ddot, digits = 2, nsmall = 2)) %+-% .(round(as.numeric(format(ddot.error, digits = 3, nsmall = 3)), 3)) ~ frac(Gy, ka)), bquote(dot(D)["Reader"] == .(format(readerDdot, digits = 2, nsmall = 2)) %+-% .(round(as.numeric(format(readerDdot.error, digits = 3, nsmall = 3)), 3)) ~ frac(Gy, s)), bquote(log[10]~(rho~"'") == .(format(log10(rhop[1]), digits = 2, nsmall = 2)) %+-% .(round(as.numeric(format(rhop[2] / (rhop[1] * log(10, base = exp(1))), digits = 2, nsmall = 2)), 2)) ), bquote(bgroup("(", frac(n, N), ")") == .(format(nN, digits = 2, nsmall = 2)) %+-% .(round(as.numeric(format(nN.error, digits = 2, nsmall = 2)), 2)) ), bquote(bgroup("(", frac(n, N), ")")[SS] == .(format(nN_SS, digits = 2, nsmall = 2)) %+-% .(round(as.numeric(format(nN_SS.error, digits = 2, nsmall = 2)), 2)) ), bquote(D["E,sim"] == .(format(De.sim, digits = 1, nsmall = 0)) %+-% .(format(De.error.sim, digits = 1, nsmall = 0)) ~ Gy), bquote(D["0,sim"] == .(format(D0.sim.Gy, digits = 1, nsmall = 0)) %+-% .(format(D0.sim.Gy.error, digits = 1, nsmall = 0)) ~ Gy), bquote(Age["sim"] == .(format(Age.sim, digits = 1, nsmall = 0)) %+-% .(format(Age.sim.error, digits = 1, nsmall = 0)) ~ ka) ) # each of the labels is positioned at 1/10 of the available y-axis space ypos <- seq(range(axTicks(2))[2], range(axTicks(2))[1], length.out = 10)[1:length(labels.text)] # allow overprinting par(xpd = NA) # add labels iteratively mapply(function(label, pos) { text(x = par("usr")[2] * 1.05, y = pos, labels = label, pos = 4) }, labels.text, ypos) } # recover plot parameters on.exit(par(par.old.full), add = TRUE) } ## Results ------------------------------------------------------------------- results <- set_RLum( class = "RLum.Results", data = list( results = data.frame( "nN" = nN, "nN.error" = nN.error, "nN_SS" = nN_SS, "nN_SS.error" = nN_SS.error, "Meas_De" = abs(De.measured), "Meas_De.error" = De.measured.error, "Meas_D0" = D0.measured, "Meas_D0.error" = D0.measured.error, "Meas_Age" = Age.measured, "Meas_Age.error" = Age.measured.error, "Sim_De" = De.sim, "Sim_De.error" = De.error.sim, "Sim_D0" = D0.sim.Gy, "Sim_D0.error" = D0.sim.Gy.error, "Sim_Age" = Age.sim, "Sim_Age.error" = Age.sim.error, "Sim_Age_2D0" = Age.sim.2D0, "Sim_Age_2D0.error" = Age.sim.2D0.error, "Unfaded_D0" = D0.unfaded, "Unfaded_D0.error" = D0.error.unfaded, row.names = NULL), data = data, Ln = c(Ln, Ln.error), LxTx_tables = list( simulated = LxTx_simulated, measured = LxTx_measured, unfaded = LxTx_unfaded), fits = list( simulated = fit_simulated, measured = fit_measured, unfaded = fit_unfaded ) ), info = list( call = sys.call(), args = as.list(sys.call())[-1]) ) ## Console output ------------------------------------------------------------ if (settings$verbose) { cat("\n\n[calc_Huntley2006()]\n") cat("\n -------------------------------") cat("\n (n/N) [-]:\t", round(results@data$results$nN, 2), "\u00b1", round(results@data$results$nN.error, 2)) cat("\n (n/N)_SS [-]:\t", round(results@data$results$nN_SS, 2),"\u00b1", round(results@data$results$nN_SS.error, 2)) cat("\n\n ---------- Measured -----------") cat("\n DE [Gy]:\t", round(results@data$results$Meas_De, 2), "\u00b1", round(results@data$results$Meas_De.error, 2)) cat("\n D0 [Gy]:\t", round(results@data$results$Meas_D0, 2), "\u00b1", round(results@data$results$Meas_D0.error, 2)) if (fit.method[1] == "GOK") { cat("\n c [-]:\t\t", round(summary(fit_measured)$coefficients["c", "Estimate"], 2), "\u00b1", round(summary(fit_measured)$coefficients["c", "Std. Error"], 2)) } cat("\n Age [ka]:\t", round(results@data$results$Meas_Age, 2), "\u00b1", round(results@data$results$Meas_Age.error, 2)) cat("\n\n ---------- Un-faded -----------") cat("\n D0 [Gy]:\t", round(results@data$results$Unfaded_D0, 2), "\u00b1", round(results@data$results$Unfaded_D0.error, 2)) if (fit.method[1] == "GOK") { cat("\n c [-]:\t\t", round(summary(fit_unfaded)$coefficients["c", "Estimate"], 2), "\u00b1", round(summary(fit_unfaded)$coefficients["c", "Std. Error"], 2)) } cat("\n\n ---------- Simulated ----------") cat("\n DE [Gy]:\t", round(results@data$results$Sim_De, 2), "\u00b1", round(results@data$results$Sim_De.error, 2)) cat("\n D0 [Gy]:\t", round(results@data$results$Sim_D0, 2), "\u00b1", round(results@data$results$Sim_D0.error, 2)) if (fit.method[1] == "GOK") { cat("\n c [-]:\t\t", round(summary(fit_simulated)$coefficients["c", "Estimate"], 2), "\u00b1", round(summary(fit_simulated)$coefficients["c", "Std. Error"], 2)) } cat("\n Age [ka]:\t", round(results@data$results$Sim_Age, 2), "\u00b1", round(results@data$results$Sim_Age.error, 2)) cat("\n Age @2D0 [ka]:\t", round(results@data$results$Sim_Age_2D0, 2), "\u00b1", round(results@data$results$Sim_Age_2D0.error, 2)) cat("\n -------------------------------\n\n") } ## Return value -------------------------------------------------------------- return(results) } Luminescence/R/plot_KDE.R0000644000176200001440000011266414762554470014701 0ustar liggesusers#' Plot kernel density estimate with statistics #' #' Plot a kernel density estimate of measurement values in combination with the #' actual values and associated error bars in ascending order. If enabled, the #' boxplot will show the usual distribution parameters (median as #' bold line, box delimited by the first and third quartile, whiskers defined #' by the extremes and outliers shown as points) and also the mean and #' standard deviation as pale bold line and pale polygon, respectively. #' #' The function allows passing several plot arguments, such as `main`, #' `xlab`, `cex`. However, as the figure is an overlay of two #' separate plots, `ylim` must be specified in the order: c(ymin_axis1, #' ymax_axis1, ymin_axis2, ymax_axis2) when using the cumulative values plot #' option. See examples for some further explanations. For details on the #' calculation of the bin-width (parameter `bw`) see #' [density]. #' #' #' A statistic summary, i.e. a collection of statistic measures of #' centrality and dispersion (and further measures) can be added by specifying #' one or more of the following keywords: #' - `"n"` (number of samples) #' - `"mean"` (mean De value) #' - `"median"` (median of the De values) #' - `"sd.rel"` (relative standard deviation in percent) #' - `"sd.abs"` (absolute standard deviation) #' - `"se.rel"` (relative standard error) #' - `"se.abs"` (absolute standard error) #' - `"in.2s"` (percent of samples in 2-sigma range) #' - `"kurtosis"` (kurtosis) #' - `"skewness"` (skewness) #' #' #' **Note** that the input data for the statistic summary is sent to the function #' `calc_Statistics()` depending on the log-option for the z-scale. If #' `"log.z = TRUE"`, the summary is based on the logarithms of the input #' data. If `"log.z = FALSE"` the linearly scaled data is used. #' #' **Note** as well, that `"calc_Statistics()"` calculates these statistic #' measures in three different ways: `unweighted`, `weighted` and #' `MCM-based` (i.e., based on Monte Carlo Methods). By default, the #' MCM-based version is used. If you wish to use another method, indicate this #' with the appropriate keyword using the argument `summary.method`. #' #' #' @param data [data.frame], [vector] or [RLum.Results-class] object (**required**): #' for `data.frame`: either two columns: De (`values[,1]`) and De error #' (`values[,2]`), or one: De (`values[,1]`). If a numeric vector or a #' single-column data frame is provided, De error is assumed to be 10^-9 #' for all measurements and error bars are not drawn. #' For plotting multiple data sets, these must be provided as #' `list` (e.g. `list(dataset1, dataset2)`). #' #' @param na.rm [logical] (*with default*): #' exclude NA values from the data set prior to any further operation. #' #' @param values.cumulative [logical] (*with default*): #' show cumulative individual data. #' #' @param order [logical] (*with default*): #' Order data in ascending order. #' #' @param boxplot [logical] (*with default*): #' optionally show a boxplot (depicting median as thick central line, #' first and third quartile as box limits, whiskers denoting +/- 1.5 #' interquartile ranges and dots further outliers). #' #' @param rug [logical] (*with default*): #' optionally add rug. #' #' @param summary [character] (*optional*): #' add statistic measures of centrality and dispersion to the plot. Can be one #' or more of several keywords. See details for available keywords. #' #' @param summary.pos [numeric] or [character] (*optional*): #' optional position coordinates or keyword (e.g. `"topright"`) #' for the statistical summary. Alternatively, the keyword `"sub"` may be #' specified to place the summary below the plot header. However, this latter #' option in only possible if `mtext` is not used. In case of coordinate #' specification, y-coordinate refers to the right y-axis. #' #' @param summary.method [character] (*with default*): #' keyword indicating the method used to calculate the statistic summary. #' One out of `"unweighted"`, `"weighted"` and `"MCM"`. #' See [calc_Statistics] for details. #' #' @param bw [character] (*with default*): #' bin-width, chose a numeric value for manual setting. #' #' @param output [logical] (*with default*): #' Optional output of numerical plot parameters. These can be useful to #' reproduce similar plots. Default is `TRUE`. #' #' @param ... further arguments and graphical parameters passed to [plot]. #' #' @note #' The plot output is no 'probability density' plot (cf. the discussion #' of Berger and Galbraith in Ancient TL; see references)! #' #' @section Function version: 3.6.0 #' #' @author #' Michael Dietze, GFZ Potsdam (Germany)\cr #' Geography & Earth Sciences, Aberystwyth University (United Kingdom) #' #' @seealso [density], [plot] #' #' @examples #' #' ## read example data set #' data(ExampleData.DeValues, envir = environment()) #' ExampleData.DeValues <- #' convert_Second2Gray(ExampleData.DeValues$BT998, c(0.0438,0.0019)) #' #' ## create plot straightforward #' plot_KDE(data = ExampleData.DeValues) #' #' ## create plot with logarithmic x-axis #' plot_KDE(data = ExampleData.DeValues, #' log = "x") #' #' ## create plot with user-defined labels and axes limits #' plot_KDE(data = ExampleData.DeValues, #' main = "Dose distribution", #' xlab = "Dose (s)", #' ylab = c("KDE estimate", "Cumulative dose value"), #' xlim = c(100, 250), #' ylim = c(0, 0.08, 0, 30)) #' #' ## create plot with boxplot option #' plot_KDE(data = ExampleData.DeValues, #' boxplot = TRUE) #' #' ## create plot with statistical summary below header #' plot_KDE(data = ExampleData.DeValues, #' summary = c("n", "median", "skewness", "in.2s")) #' #' ## create plot with statistical summary as legend #' plot_KDE(data = ExampleData.DeValues, #' summary = c("n", "mean", "sd.rel", "se.abs"), #' summary.pos = "topleft") #' #' ## split data set into sub-groups, one is manipulated, and merge again #' data.1 <- ExampleData.DeValues[1:15,] #' data.2 <- ExampleData.DeValues[16:25,] * 1.3 #' data.3 <- list(data.1, data.2) #' #' ## create plot with two subsets straightforward #' plot_KDE(data = data.3) #' #' ## create plot with two subsets and summary legend at user coordinates #' plot_KDE(data = data.3, #' summary = c("n", "median", "skewness"), #' summary.pos = c(110, 0.07), #' col = c("blue", "orange")) #' #' ## example of how to use the numerical output of the function #' ## return plot output to draw a thicker KDE line #' KDE_out <- plot_KDE(data = ExampleData.DeValues, #' output = TRUE) #' #' @md #' @export plot_KDE <- function( data, na.rm = TRUE, values.cumulative = TRUE, order = TRUE, boxplot = TRUE, rug = TRUE, summary, summary.pos, summary.method = "MCM", bw = "nrd0", output = TRUE, ... ) { .set_function_name("plot_KDE") on.exit(.unset_function_name(), add = TRUE) ## check data and parameter consistency ------------------------------------- if (is(data, "list") && length(data) == 0) { .throw_error("'data' is an empty list") } ## Homogenise input data format if(is(data, "list") == FALSE) { data <- list(data) } ## check/adjust input data structure for(i in 1:length(data)) { .validate_class(data[[i]], c("RLum.Results", "data.frame", "numeric"), name = "'data'") ## extract RLum.Results if (inherits(data[[i]], "RLum.Results")) { data[[i]] <- get_RLum(data[[i]], "data")[,1:2] } ## ensure that the dataset it not degenerate if (NROW(data[[i]]) == 0) { .throw_error("Input data ", i, " has 0 rows") } ## if `data[[i]]` is a numeric vector or a single-column data frame, ## append a second column with a small non-zero value (10^-9 for ## consistency with what `calc_Statistics() does) if (NCOL(data[[i]]) < 2) { data[[i]] <- data.frame(data[[i]], 10^-9) attr(data[[i]], "De.errors.available") <- FALSE } else { ## keep only the first two columns data[[i]] <- data[[i]][, 1:2] attr(data[[i]], "De.errors.available") <- TRUE } ## find the index Inf values in each of the two columns and remove the ## corresponding rows if needed inf.idx <- unlist(lapply(data[[i]], function(x) which(is.infinite(x)))) if (length(inf.idx) > 0) { inf.row <- sort(unique(inf.idx)) .throw_warning("Inf values removed in rows: ", .collapse(inf.row, quote = FALSE), " in data.frame ", i) data[[i]] <- data[[i]][-inf.row, ] rm(inf.idx, inf.row) ##check if empty if(nrow(data[[i]]) == 0){ data[i] <- NULL } } } ##check if list is empty if(length(data) == 0) .throw_error("Your input is empty due to Inf removal") ## check/set function parameters if(missing(summary) == TRUE) { summary <- "" } if(missing(summary.pos) == TRUE) { summary.pos <- "sub" } ## set mtext output if("mtext" %in% names(list(...))) { mtext <- list(...)$mtext } else { mtext <- "" } ## check/set layout definitions if("layout" %in% names(list(...))) { layout <- get_Layout(layout = list(...)$layout) } else { layout <- get_Layout(layout = "default") } ## data preparation steps --------------------------------------------------- ## optionally, count and exclude NA values and print result if(na.rm == TRUE) { for(i in 1:length(data)) { na.idx <- which(is.na(data[[i]][, 1])) n.NA <- length(na.idx) if(n.NA == 1) { message(paste("1 NA value excluded from data set", i, ".")) } else if(n.NA > 1) { message(paste(n.NA, "NA values excluded from data set", i, ".")) } if (n.NA > 0) { data[[i]] <- data[[i]][-na.idx, ] } } } ## optionally, order data set if(order == TRUE) { for(i in 1:length(data)) { data[[i]] <- data[[i]][order(data[[i]][,1]),] } } ## calculate and paste statistical summary De.stats <- matrix(nrow = length(data), ncol = 12) colnames(De.stats) <- c("n", "mean", "median", "kde.max", "sd.abs", "sd.rel", "se.abs", "se.rel", "q.25", "q.75", "skewness", "kurtosis") De.density <- list(NA) ## loop through all data sets for(i in 1:length(data)) { statistics <- calc_Statistics(data[[i]], na.rm = na.rm)[[summary.method]] De.stats[i,1] <- statistics$n De.stats[i,2] <- statistics$mean De.stats[i,3] <- statistics$median De.stats[i,5] <- statistics$sd.abs De.stats[i,6] <- statistics$sd.rel De.stats[i,7] <- statistics$se.abs De.stats[i,8] <- statistics$se.rel De.stats[i,9] <- quantile(data[[i]][,1], 0.25) De.stats[i,10] <- quantile(data[[i]][,1], 0.75) De.stats[i,11] <- statistics$skewness De.stats[i,12] <- statistics$kurtosis if(nrow(data[[i]]) >= 2){ De.density[[length(De.density) + 1]] <- density(data[[i]][,1], kernel = "gaussian", bw = bw) }else{ De.density[[length(De.density) + 1]] <- NA .throw_warning("Single data point found, no density calculated") } } ## remove dummy list element De.density[[1]] <- NULL ## create global data set De.global <- data[[1]][,1] De.error.global <- data[[1]][,2] De.density.range <- matrix(nrow = length(data), ncol = 4) for(i in 1:length(data)) { ##global De and De.error vector De.global <- c(De.global, data[[i]][,1]) De.error.global <- c(De.error.global, data[[i]][,2]) ## density range if(!all(is.na(De.density[[i]]))){ De.density.range[i,1] <- min(De.density[[i]]$x) De.density.range[i,2] <- max(De.density[[i]]$x) De.density.range[i,3] <- min(De.density[[i]]$y) De.density.range[i,4] <- max(De.density[[i]]$y) ## position of maximum KDE value De.stats[i,4] <- De.density[[i]]$x[which.max(De.density[[i]]$y)] }else{ De.density.range[i,1:4] <- NA De.stats[i,4] <- NA } } ## Get global range of densities De.density.range <- c(min(De.density.range[,1]), max(De.density.range[,2]), min(De.density.range[,3]), max(De.density.range[,4])) label.text = list(NA) if(summary.pos[1] != "sub") { n.rows <- length(summary) for(i in 1:length(data)) { stops <- paste(rep("\n", (i - 1) * n.rows), collapse = "") summary.text <- character(0) for(j in 1:length(summary)) { summary.text <- c(summary.text, paste( "", ifelse("n" %in% summary[j] == TRUE, paste("n = ", De.stats[i,1], "\n", sep = ""), ""), ifelse("mean" %in% summary[j] == TRUE, paste("mean = ", round(De.stats[i,2], 2), "\n", sep = ""), ""), ifelse("median" %in% summary[j] == TRUE, paste("median = ", round(De.stats[i,3], 2), "\n", sep = ""), ""), ifelse("kde.max" %in% summary[j] == TRUE, paste("kdemax = ", round(De.stats[i,4], 2), " \n ", sep = ""), ""), ifelse("sd.abs" %in% summary[j] == TRUE, paste("sd = ", round(De.stats[i,5], 2), "\n", sep = ""), ""), ifelse("sd.rel" %in% summary[j] == TRUE, paste("rel. sd = ", round(De.stats[i,6], 2), " %", "\n", sep = ""), ""), ifelse("se.abs" %in% summary[j] == TRUE, paste("se = ", round(De.stats[i,7], 2), "\n", sep = ""), ""), ifelse("se.rel" %in% summary[j] == TRUE, paste("rel. se = ", round(De.stats[i,8], 2), " %", "\n", sep = ""), ""), ifelse("skewness" %in% summary[j] == TRUE, paste("skewness = ", round(De.stats[i,11], 2), "\n", sep = ""), ""), ifelse("kurtosis" %in% summary[j] == TRUE, paste("kurtosis = ", round(De.stats[i,12], 2), "\n", sep = ""), ""), ifelse("in.2s" %in% summary[j] == TRUE, paste("in 2 sigma = ", round(sum(data[[i]][,1] > (De.stats[i,2] - 2 * De.stats[i,5]) & data[[i]][,1] < (De.stats[i,2] + 2 * De.stats[i,5])) / nrow(data[[i]]) * 100 , 1), " %", sep = ""), ""), sep = "")) } summary.text <- paste(summary.text, collapse = "") label.text[[length(label.text) + 1]] <- paste(stops, summary.text, stops, sep = "") } } else { for(i in 1:length(data)) { summary.text <- character(0) for(j in 1:length(summary)) { summary.text <- c(summary.text, ifelse("n" %in% summary[j] == TRUE, paste("n = ", De.stats[i,1], " | ", sep = ""), ""), ifelse("mean" %in% summary[j] == TRUE, paste("mean = ", round(De.stats[i,2], 2), " | ", sep = ""), ""), ifelse("median" %in% summary[j] == TRUE, paste("median = ", round(De.stats[i,3], 2), " | ", sep = ""), ""), ifelse("kde.max" %in% summary[j] == TRUE, paste("kdemax = ", round(De.stats[i,4], 2), " | ", sep = ""), ""), ifelse("sd.rel" %in% summary[j] == TRUE, paste("rel. sd = ", round(De.stats[i,6], 2), " %", " | ", sep = ""), ""), ifelse("sd.abs" %in% summary[j] == TRUE, paste("abs. sd = ", round(De.stats[i,5], 2), " | ", sep = ""), ""), ifelse("se.rel" %in% summary[j] == TRUE, paste("rel. se = ", round(De.stats[i,8], 2), " %", " | ", sep = ""), ""), ifelse("se.abs" %in% summary[j] == TRUE, paste("abs. se = ", round(De.stats[i,7], 2), " | ", sep = ""), ""), ifelse("skewness" %in% summary[j] == TRUE, paste("skewness = ", round(De.stats[i,11], 2), " | ", sep = ""), ""), ifelse("kurtosis" %in% summary[j] == TRUE, paste("kurtosis = ", round(De.stats[i,12], 2), " | ", sep = ""), ""), ifelse("in.2s" %in% summary[j] == TRUE, paste("in 2 sigma = ", round(sum(data[[i]][,1] > (De.stats[i,2] - 2 * De.stats[i,5]) & data[[i]][,1] < (De.stats[i,2] + 2 * De.stats[i,5])) / nrow(data[[i]]) * 100 , 1), " % ", sep = ""), "") ) } summary.text <- paste(summary.text, collapse = "") label.text[[length(label.text) + 1]] <- paste( " ", summary.text, sep = "") } ## remove outer vertical lines from string for(i in 2:length(label.text)) { label.text[[i]] <- substr(x = label.text[[i]], start = 3, stop = nchar(label.text[[i]]) - 3) } } ## remove dummy list element label.text[[1]] <- NULL ## read out additional parameters ------------------------------------------- if("main" %in% names(list(...))) { main <- list(...)$main } else { main <- expression(bold(paste(D[e], " distribution"))) } if("sub" %in% names(list(...))) { sub <- list(...)$sub } else { sub <- NULL } if("xlab" %in% names(list(...))) { xlab <- list(...)$xlab } else { xlab <- expression(paste(D[e], " [Gy]")) } if("ylab" %in% names(list(...))) { ylab <- list(...)$ylab } else { ylab <- c("Density", "Cumulative frequency") } if("xlim" %in% names(list(...))) { xlim.plot <- list(...)$xlim } else { xlim.plot <- c(min(c(De.global - De.error.global), De.density.range[1], na.rm = TRUE), max(c(De.global + De.error.global), De.density.range[2], na.rm = TRUE)) } if("ylim" %in% names(list(...))) { ylim.plot <- list(...)$ylim .validate_length(ylim.plot, 4, name = "'ylim'") } else { if(!is.na(De.density.range[1])){ ylim.plot <- c(De.density.range[3], De.density.range[4], 0, max(De.stats[,1])) }else{ ylim.plot <- c(0, max(De.stats[,1]), 0, max(De.stats[,1])) } } if("log" %in% names(list(...))) { log.option <- list(...)$log } else { log.option <- "" } if("col" %in% names(list(...))) { col.main <- list(...)$col col.xlab <- 1 col.ylab1 <- 1 col.ylab2 <- 1 col.xtck <- 1 col.ytck1 <- 1 col.ytck2 <- 1 col.box <- 1 col.mtext <- 1 col.stats <- list(...)$col col.kde.line <- list(...)$col col.kde.fill <- NA col.value.dot <- list(...)$col col.value.bar <- list(...)$col col.value.rug <- list(...)$col col.boxplot <- list(...)$col col.boxplot.line <- list(...)$col col.boxplot.fill <- NA col.mean.line <- adjustcolor(col = list(...)$col, alpha.f = 0.4) col.sd.bar <- adjustcolor(col = list(...)$col, alpha.f = 0.4) col.background <- NA } else { .set_colour_value <- function(layout_value) { if (length(layout_value) == 1) c(layout_value, 2:length(data)) else layout_value } col.main <- .set_colour_value(layout$kde$colour$main) col.xlab <- .set_colour_value(layout$kde$colour$xlab) col.ylab1 <- .set_colour_value(layout$kde$colour$ylab1) col.ylab2 <- .set_colour_value(layout$kde$colour$ylab2) col.xtck <- .set_colour_value(layout$kde$colour$xtck) col.ytck1 <- .set_colour_value(layout$kde$colour$ytck1) col.ytck2 <- .set_colour_value(layout$kde$colour$ytck2) col.box <- .set_colour_value(layout$kde$colour$box) col.mtext <- .set_colour_value(layout$kde$colour$mtext) col.stats <- .set_colour_value(layout$kde$colour$stats) col.kde.line <- .set_colour_value(layout$kde$colour$kde.line) col.kde.fill <- .set_colour_value(layout$kde$colour$kde.fill) col.value.dot <- .set_colour_value(layout$kde$colour$value.dot) col.value.bar <- .set_colour_value(layout$kde$colour$value.bar) col.value.rug <- .set_colour_value(layout$kde$colour$value.rug) col.boxplot.line <- .set_colour_value(layout$kde$colour$boxplot.line) col.boxplot.fill <- .set_colour_value(layout$kde$colour$boxplot.fill) col.mean.line <- .set_colour_value(layout$kde$colour$mean.point) col.sd.bar <- .set_colour_value(layout$kde$colour$sd.line) col.background <- .set_colour_value(layout$kde$colour$background) } if("lty" %in% names(list(...))) { lty <- list(...)$lty } else { lty <- rep(1, length(data)) } if("lwd" %in% names(list(...))) { lwd <- list(...)$lwd } else { lwd <- rep(1, length(data)) } if("cex" %in% names(list(...))) { cex <- list(...)$cex } else { cex <- 1 } if("fun" %in% names(list(...))) { fun <- list(...)$fun # nocov } else { fun <- FALSE } ## convert keywords into summary placement coordinates coords <- .get_keyword_coordinates(summary.pos, xlim.plot, ylim.plot) summary.pos <- coords$pos summary.adj <- coords$adj ## plot data sets ----------------------------------------------------------- ## setup plot area if(length(summary) >= 1 & summary.pos[1] == "sub") { toplines <- length(data) } else { toplines <- 1 } ## extract original plot parameters par(bg = layout$kde$colour$background) bg.original <- par()$bg par(mar = c(5, 5.5, 2.5 + toplines, 4.5), xpd = FALSE, cex = cex) if(layout$kde$dimension$figure.width != "auto" | layout$kde$dimension$figure.height != "auto") { par(mai = layout$kde$dimension$margin / 25.4, pin = c(layout$kde$dimension$figure.width / 25.4 - layout$kde$dimension$margin[2] / 25.4 - layout$kde$dimension$margin[4] / 25.4, layout$kde$dimension$figure.height / 25.4 - layout$kde$dimension$margin[1] / 25.4 - layout$kde$dimension$margin[3]/25.4)) } ## create empty plot to get plot dimensions plot(NA, xlim = xlim.plot, ylim = ylim.plot[1:2], sub = sub, log = log.option, axes = FALSE, ann = FALSE) ## get line height in xy coordinates l_height <- par()$cxy[2] ## optionally update ylim if(boxplot == TRUE) { ylim.plot[1] <- ylim.plot[1] - 1.4 * l_height } ## create empty plot to set adjusted plot dimensions par(new = TRUE) plot(NA, xlim = xlim.plot, ylim = ylim.plot[1:2], log = log.option, cex = cex, axes = FALSE, ann = FALSE) ## add box graphics::box(which = "plot", col = layout$kde$colour$box) ## add x-axis axis(side = 1, col = layout$kde$colour$xtck, col.axis = layout$kde$colour$xtck, labels = NA, tcl = -layout$kde$dimension$xtcl / 200, cex = cex) axis(side = 1, line = 2 * layout$kde$dimension$xtck.line / 100 - 2, lwd = 0, col = layout$kde$colour$xtck, family = layout$kde$font.type$xtck, font = (1:4)[c("plain", "bold", "italic", "bold italic") == layout$kde$font.deco$xtck], col.axis = layout$kde$colour$xtck, cex.axis = layout$kde$font.size$xlab/12) mtext(text = xlab, side = 1, line = 3 * layout$kde$dimension$xlab.line / 100, col = layout$kde$colour$xlab, family = layout$kde$font.type$xlab, font = (1:4)[c("plain", "bold", "italic", "bold italic") == layout$kde$font.deco$xlab], cex = cex * layout$kde$font.size$xlab/12) ## add left y-axis axis(side = 2, at = pretty(x = range(De.density.range[3:4])), col = layout$kde$colour$ytck1, col.axis = layout$kde$colour$ytck1, labels = NA, tcl = -layout$kde$dimension$ytck1 / 200, cex = cex) axis(side = 2, at = pretty(x = range(De.density.range[3:4])), line = 2 * layout$kde$dimension$ytck1.line / 100 - 2, lwd = 0, col = layout$kde$colour$ytck1, family = layout$kde$font.type$ytck1, font = (1:4)[c("plain", "bold", "italic", "bold italic") == layout$kde$font.deco$ytck1], col.axis = layout$kde$colour$ytck1, cex.axis = layout$kde$font.size$ylab1/12) mtext(text = ylab[1], side = 2, line = 3 * layout$kde$dimension$ylab1.line / 100, col = layout$kde$colour$ylab1, family = layout$kde$font.type$ylab1, font = (1:4)[c("plain", "bold", "italic", "bold italic") == layout$kde$font.deco$ylab1], cex = cex * layout$kde$font.size$ylab1/12) for(i in 1:length(data)) { if(!all(is.na(De.density[[i]]))){ polygon(x = c(par()$usr[1], De.density[[i]]$x, par()$usr[2]), y = c(min(De.density[[i]]$y),De.density[[i]]$y, min(De.density[[i]]$y)), border = col.kde.line[i], col = col.kde.fill[i], lty = lty[i], lwd = lwd[i]) } } ## add plot title cex.old <- par()$cex par(cex = layout$kde$font.size$main / 12) title(main = main, family = layout$kde$font.type$main, font = (1:4)[c("plain", "bold", "italic", "bold italic") == layout$kde$font.deco$main], col.main = layout$kde$colour$main, line = (toplines + 1.2) * layout$kde$dimension$main / 100) par(cex = cex.old) ## optionally add mtext line if(mtext != "") { mtext(text = mtext, side = 3, line = 0.5, family = layout$kde$font.type$mtext, font = (1:4)[c("plain", "bold", "italic", "bold italic") == layout$kde$font.deco$mtext], col.main = layout$kde$colour$mtext, cex = layout$kde$font.size$mtext / 12) } ## add summary content for(i in 1:length(data)) { if(summary.pos[1] != "sub") { text(x = summary.pos[1], y = summary.pos[2], adj = summary.adj, labels = label.text[[i]], col = col.stats[i], cex = layout$kde$font.size$stats / 12) } else { if(mtext == "") { mtext(side = 3, line = (toplines + 0.3 - i) * layout$kde$dimension$stats.line / 100, text = label.text[[i]], col = col.stats[i], cex = layout$kde$font.size$stats / 12) } } } if(values.cumulative == TRUE) { ## create empty overlay plot par(new = TRUE) # adjust plot options ## add empty plot, scaled to preliminary secondary plot content plot(x = NA, xlim = xlim.plot, ylim = ylim.plot[3:4], log = log.option, ann = FALSE, axes = FALSE ) ## get line height in xy coordinates l_height <- par()$cxy[2] ## optionally update ylim if(boxplot == TRUE) { ylim.plot[3] <- ylim.plot[3] - 1.4 * l_height } ## create correctly scaled empty overlay plot par(new = TRUE) # adjust plot options ## add empty plot, scaled to secondary plot content plot(NA, xlim = xlim.plot, ylim = ylim.plot[3:4], log = log.option, ann = FALSE, axes = FALSE) ## optionally add boxplot if(boxplot == TRUE) { ## add zero line abline(h = 0) ## get extended boxplot data boxplot.data <- list(NA) for(i in 1:length(data)) { boxplot.i <- graphics::boxplot(x = data[[i]][,1], plot = FALSE) boxplot.i$group <- mean(x = data[[i]][,1], na.rm = TRUE) boxplot.i$names <- sd(x = data[[i]][,1], na.rm = TRUE) boxplot.data[[length(boxplot.data) + 1]] <- boxplot.i } ## remove dummy list object boxplot.data[[1]] <- NULL ## get new line hights l_height <- par()$cxy[2] for(i in 1:length(data)) { # ## draw sd line # lines(x = c(boxplot.data[[i]]$group[1] - boxplot.data[[i]]$names[1], # boxplot.data[[i]]$group[1] + boxplot.data[[i]]$names[1]), # y = c(-5/8 * l_height, # -5/8 * l_height), # col = col.mean.line[i]) # # ## draw mean line # points(x = boxplot.data[[i]]$group[1], # y = -5/8 * l_height, # pch = 18, # col = col.mean.line[i]) ## draw median line lines(x = c(boxplot.data[[i]]$stats[3,1], boxplot.data[[i]]$stats[3,1]), y = c(-11/8 * l_height, -7/8 * l_height), lwd = 2, col = col.boxplot.line[i]) ## draw q25-q75-polygon polygon(x = c(boxplot.data[[i]]$stats[2,1], boxplot.data[[i]]$stats[2,1], boxplot.data[[i]]$stats[4,1], boxplot.data[[i]]$stats[4,1]), y = c(-11/8 * l_height, -7/8 * l_height, -7/8 * l_height, -11/8 * l_height), col = col.boxplot.fill[i], border = col.boxplot.line[i]) ## draw whiskers lines(x = c(boxplot.data[[i]]$stats[2,1], boxplot.data[[i]]$stats[1,1]), y = c(-9/8 * l_height, -9/8 * l_height), col = col.boxplot.line[i]) lines(x = c(boxplot.data[[i]]$stats[1,1], boxplot.data[[i]]$stats[1,1]), y = c(-10/8 * l_height, -8/8 * l_height), col = col.boxplot.line[i]) lines(x = c(boxplot.data[[i]]$stats[4,1], boxplot.data[[i]]$stats[5,1]), y = c(-9/8 * l_height, -9/8 * l_height), col = col.boxplot.line[i]) lines(x = c(boxplot.data[[i]]$stats[5,1], boxplot.data[[i]]$stats[5,1]), y = c(-10/8 * l_height, -8/8 * l_height), col = col.boxplot.line[i]) ## draw outliers points(x = boxplot.data[[i]]$out, y = rep(-9/8 * l_height, length(boxplot.data[[i]]$out)), col = col.boxplot.line[i], cex = cex * 0.8) } } ## optionally add rug if(rug == TRUE) { for(i in 1:length(data)) { for(j in 1:nrow(data[[i]])) { lines(x = c(data[[i]][j,1], data[[i]][j,1]), y = c(0, -2/8 * l_height), col = col.value.rug[i]) } } } ## add secondary y-axis ticks_axis <- pretty(x = c(1, ylim.plot[4])) ticks_axis <- ifelse(test = ticks_axis == 0, yes = NA, no = ticks_axis) ## add right y-axis axis(side = 4, at = ticks_axis, col = layout$kde$colour$ytck2, col.axis = layout$kde$colour$ytck2, labels = NA, tcl = -layout$kde$dimension$ytck2 / 200, cex = cex) axis(side = 4, at = ticks_axis, line = 2 * layout$kde$dimension$ytck2.line / 100 - 2, lwd = 0, col = layout$kde$colour$ytck2, family = layout$kde$font.type$ytck2, font = (1:4)[c("plain", "bold", "italic", "bold italic") == layout$kde$font.deco$ytck2], col.axis = layout$kde$colour$ytck2, cex.axis = layout$kde$font.size$ylab2/12) mtext(text = ylab[2], side = 4, line = 3 * layout$kde$dimension$ylab2.line / 100, col = layout$kde$colour$ylab2, family = layout$kde$font.type$ylab2, font = (1:4)[c("plain", "bold", "italic", "bold italic") == layout$kde$font.deco$ylab2], cex = cex * layout$kde$font.size$ylab2/12) ## add De error bars for(i in 1:length(data)) { if (attr(data[[i]], "De.errors.available")) { graphics::arrows(data[[i]][, 1] - data[[i]][, 2], 1:length(data[[i]][,1]), data[[i]][, 1] + data[[i]][, 2], 1:length(data[[i]][, 1]), code = 3, angle = 90, length = 0.05, col = col.value.bar[i]) } ## add De measurements points(data[[i]][,1], 1:De.stats[i,1], col = col.value.dot[i], pch = 20) } } ## add empty plot par(new = TRUE) plot(NA, ann = FALSE, axes = FALSE, xlim = xlim.plot, ylim = ylim.plot[1:2], log = log.option, cex = cex, cex.lab = cex, cex.main = cex, cex.axis = cex) ## FUN by R Luminescence Team if (fun == TRUE) sTeve() # nocov if(output == TRUE) { return(invisible(list(De.stats = De.stats, summary.pos = summary.pos, De.density = De.density))) } } Luminescence/R/scale_GammaDose.R0000644000176200001440000007366514762554470016253 0ustar liggesusers#' Calculate the gamma dose deposited within a sample taking layer-to-layer #' variations in radioactivity into account (according to Aitken, 1985) #' #' This function calculates the gamma dose deposited in a luminescence sample #' taking into account layer-to-layer variations in sediment radioactivity. #' The function scales user inputs of uranium, thorium and potassium based on #' input parameters for sediment density, water content and given layer #' thicknesses and distances to the sample. #' #' **User Input** #' #' To calculate the gamma dose which is deposited in a sample, the user needs #' to provide information on those samples influencing the luminescence sample. #' As a rule of thumb, all sediment layers within at least 30 cm radius from #' the luminescence sample taken should be taken into account when calculating #' the gamma dose rate. However, the actual range of gamma radiation might be #' different, depending on the emitting radioelement, the water content and the #' sediment density of each layer (Aitken, 1985). Therefore the user is #' advised to provide as much detail as possible and physically sensible. #' #' The function requires a [data.frame] that is to be structured #' in columns and rows, with samples listed in rows. The first column contains #' information on the layer/sample ID, the second on the thickness (in cm) of #' each layer, whilst column 3 should contain `NA` for all layers that are not #' sampled for OSL/TL. For the layer the OSL/TL sample was taken from a numerical #' value must be provided, which is the distance (in cm) measured from **bottom** #' of the layer of interest. If the whole layer was sampled insert `0`. If the #' sample was taken from *within* the layer, insert a numerical value `>0`, #' which describes the distance from the middle of the sample to the bottom of #' the layer in cm. Columns 4 to 9 should contain radionuclide concentrations #' and their standard errors for #' potassium (in %), thorium (in ppm) and uranium (in ppm). Columns 10 and 11 #' give information on the water content and its uncertainty (standard error) #' in %. The layer density (in g/cm3) should be given in column 12. No cell #' should be left blank. Please ensure to keep the column titles as given in #' the example dataset (`data('ExampleData.ScaleGammaDose')`, see examples). #' #' The user can decide which dose rate #' conversion factors should be used to calculate the gamma dose rates. #' The options are: #' - `"Cresswelletal2018"` (Cresswell et al., 2018) #' - `"Liritzisetal2013"` (Liritzis et al., 2013) #' - `"Guerinetal2011"` (Guerin et al., 2011) #' - `"AdamiecAitken1998"` (Adamiec and Aitken, 1998) #' #' #' **Water content** #' #' The water content provided by the user should be calculated according to: #' #' \deqn{ ( Wet weight [g] - Dry weight [g] ) / Dry weight [g] * 100 } #' #' #' **Calculations** #' #' After converting the radionuclide concentrations into dose rates, the #' function will scale the dose rates based on the thickness of the layers, #' the distances to the sample, the water content and the density of the sediment. #' The calculations are based on Aitken (1985, Appendix H). As an example #' (equivalent to Aitken, 1985), assuming three layers of sediment, where **L** is #' inert and positioned in between the infinite thick and equally active #' layers **A** and **B**, the dose in **L** and **B** due to **A** is given by #' #' \deqn{ {1-f(x)}D_A } #' #' Where `x` is the distance into the inert medium, so `f(x)` is the weighted #' average fractional dose at `x` and `D_A` denotes that the dose is delivered by **A**. #' `f(x)` is derived from table H1 (Aitken, 1985), when setting `z = x`. #' Consequently, the dose in **A** and **L** due to **B** is given by #' #' \deqn{ {1 - f(t-x)}D_B } #' #' Here `t` is the thickness of **L** and the other parameters are denoted as above, #' just for the dose being delivered by B. `f(t-x)` is derived from table H1 #' (Aitken, 1985), when setting `z` equal to `t-x`. Following this, the dose in **L** #' delivered by **A** and **B** is given by #' #' \deqn{ {2 - f(x) - f(t-x)}D_{AB} } #' #' Since **A** and **B** are equally active `D_{AB} = D_A = D_B`. #' #' The function uses the value of the fractional dose rate at the layer #' boundary to start the calculation for the next layer. This way, the function #' is able to scale the gamma dose rate accurately for distant layers when the #' density and water content is not constant for the entire section. #' #' @param data [data.frame] (**required**): #' A table containing all relevant information for each individual layer. The #' table must have the following named columns: #' #' - `id` ([character]): an arbitrary id or name of each layer #' - `thickness` ([numeric]): vertical extent of each layer in cm #' - `sample_offset` ([logical]): distance of the sample in cm, #' **measured from the BOTTOM OF THE TARGET LAYER**. Except for the target layer #' all values must be `NA`. #' - `K` ([numeric]): K nuclide content in % #' - `K_se` ([numeric]): error on the K content #' - `Th` ([numeric]): Th nuclide content in ppm #' - `Th_se` ([numeric]): error on the Th content #' - `U` ([numeric]): U nuclide content in ppm #' - `U_se` ([numeric]): error on the U content #' - `water_content` ([numeric]): water content of each layer in % #' - `water_content_se` ([numeric]): error on the water content #' - `density` ([numeric]): bulk density of each layer in g/cm^-3 #' #' @param conversion_factors [character] (*optional*): #' The conversion factors used to calculate the dose rate from sediment #' nuclide contents. Valid options are: #' #' - `"Cresswelletal2018"` (default) #' - `"Liritzisetal2013"` #' - `"Guerinetal2011"` #' - `"AdamiecAitken1998"` #' #' @param fractional_gamma_dose [character] (*optional*): #' Factors to scale gamma dose rate values. Valid options are: #' #' - `"Aitken1985"` (default): Table H1 in the appendix #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param plot_singlePanels [logical] (*with default*): #' enable/disable single plot mode, i.e. one plot window per plot. #' #' @param ... Further parameters passed to [barplot]. #' #' @return #' #' After performing the calculations the user is provided with different outputs. #' 1. The total gamma dose rate received by the sample (+/- uncertainties) as a #' print in the console. #' 2. A plot showing the sediment sequence, the user input sample information #' and the contribution to total gamma dose rate. #' 3. RLum Results. If the user wishes to save these results, writing a script #' to run the function and to save the results would look like this: #' #' ``` #' mydata <- read.table("c:/path/to/input/file.txt") #' results <- scale_GammaDose(mydata) #' table <- get_RLum(results) #' write.csv(table, "c:/path/to/results.csv") #' ``` #' #' -----------------------------------\cr #' `[ NUMERICAL OUTPUT ]`\cr #' -----------------------------------\cr #' #' **`RLum.Results`**-object #' #' **slot:** **`@data`** #' #' \tabular{lll}{ #' **Element** \tab **Type** \tab **Description**\cr #' `$summary` \tab `data.frame` \tab summary of the model results \cr #' `$data` \tab `data.frame` \tab the original input data \cr #' `$dose_rates` \tab `list` \tab two `data.frames` for the scaled and infinite matrix dose rates \cr #' `$tables` \tab `list` \tab several `data.frames` containing intermediate results \cr #' `$args` \tab `character` \tab arguments of the call \cr #' `$call` \tab `call` \tab the original function call \cr #' } #' #' **slot:** **`@info`** #' #' Currently unused. #' #' ------------------------\cr #' `[ PLOT OUTPUT ]`\cr #' ------------------------\cr #' #' Three plots are produced: #' #' - A visualisation of the provided sediment layer structure to quickly #' assess whether the data was provided and interpreted correctly. #' - A scatter plot of the nuclide contents per layer (K, Th, U) as well as the #' water content. This may help to correlate the dose rate contribution of #' specific layers to the layer of interest. #' - A barplot visualising the contribution of each layer to the total dose rate #' received by the sample in the target layer. #' #' @section Function version: 0.1.3 #' #' @keywords datagen #' #' @note #' **This function has BETA status. If possible, results should be** #' **cross-checked.** #' #' @author Svenja Riedesel, Aberystwyth University (United Kingdom) \cr #' Martin Autzen, DTU NUTECH Center for Nuclear Technologies (Denmark) \cr #' Christoph Burow, University of Cologne (Germany) \cr #' Based on an excel spreadsheet and accompanying macro written by Ian Bailiff. #' #' @seealso [ExampleData.ScaleGammaDose], #' [BaseDataSet.ConversionFactors], [approx], [barplot] #' #' @references #' #' Aitken, M.J., 1985. Thermoluminescence Dating. Academic Press, London. #' #' Adamiec, G., Aitken, M.J., 1998. Dose-rate conversion factors: update. #' Ancient TL 16, 37-46. #' #' Cresswell., A.J., Carter, J., Sanderson, D.C.W., 2018. #' Dose rate conversion parameters: Assessment of nuclear data. #' Radiation Measurements 120, 195-201. #' #' Guerin, G., Mercier, N., Adamiec, G., 2011. Dose-rate conversion #' factors: update. Ancient TL, 29, 5-8. #' #' Liritzis, I., Stamoulis, K., Papachristodoulou, C., Ioannides, K., 2013. #' A re-evaluation of radiation dose-rate conversion factors. Mediterranean #' Archaeology and Archaeometry 13, 1-15. #' #' #' @section Acknowledgements: #' #' We thank Dr Ian Bailiff for the provision of an excel spreadsheet, which has #' been very helpful when writing this function. #' #' @examples #' #' # Load example data #' data("ExampleData.ScaleGammaDose", envir = environment()) #' x <- ExampleData.ScaleGammaDose #' #' # Scale gamma dose rate #' results <- scale_GammaDose(data = x, #' conversion_factors = "Cresswelletal2018", #' fractional_gamma_dose = "Aitken1985", #' verbose = TRUE, #' plot = TRUE) #' #' get_RLum(results) #' #' @md #' @export scale_GammaDose <- function( data, conversion_factors = c("Cresswelletal2018", "Guerinetal2011", "AdamiecAitken1998", "Liritzisetal2013")[1], fractional_gamma_dose = c("Aitken1985")[1], verbose = TRUE, plot = TRUE, plot_singlePanels = FALSE, ... ) { .set_function_name("scale_GammaDose") on.exit(.unset_function_name(), add = TRUE) ## HELPER FUNCTION ---- # Wrapper for formatC to enforce precise digit printing f <- function(x, d = 3) formatC(x, digits = d, format = "f") ## ------------------------------------------------------------------------ ## ## LOAD TABLES ## ------------------------------------------------------------------------ ## # To satisfy CRAN check ('no visible global binding') BaseDataSet.ConversionFactors <- BaseDataSet.FractionalGammaDose <- NA load(system.file("data", "BaseDataSet.ConversionFactors.rda", package = "Luminescence")) load(system.file("data", "BaseDataSet.FractionalGammaDose.rda", package = "Luminescence")) ## ------------------------------------------------------------------------ ## ## DEFAULT SETTINGS ## ------------------------------------------------------------------------ ## settings <- list( main = "Contributions of each layer to the total \n gamma dose rate received by the sample", xlab = "Contribution to total gamma dose rate (%) received by the sample", cex = 1.0, col = "grey", info = list() ) # overwrite and append default values settings <- modifyList(settings, list(...)) ## ------------------------------------------------------------------------ ## ## CHECK INPUT ## ------------------------------------------------------------------------ ## ## Input data # basic class and length check .validate_class(data, "data.frame") if (ncol(data) != 12) .throw_error("'data' should have 12 columns (currently ", ncol(data), ")") # make sure that it has the correct column names colnames_expected <- c("id","thickness","sample_offset","K","K_se","Th","Th_se","U","U_se", "water_content","water_content_se", "density") if (is.null(names(data)) || any(names(data) != colnames_expected)) { if (verbose) .throw_warning("Unexpected column names for 'data', new names were ", "automatically assigned. See documentation to ensure ", "that columns are in proper order") colnames(data) <- colnames_expected } # check if there is only one target layer if (sum(!is.na(data$sample_offset)) != 1) .throw_error("Only one layer must be contain a numeric value in column ", "'sample_offset', all other rows must be NA") if (!is.numeric(data$sample_offset[which(!is.na(data$sample_offset))])) .throw_error("Non-numeric value in the row of the target layer") if (data$sample_offset[which(!is.na(data$sample_offset))] < 0) .throw_error("The numeric value in 'sample_offset' must be positive") if (data$sample_offset[which(!is.na(data$sample_offset))] > data$thickness[which(!is.na(data$sample_offset))]) .throw_error("Sample offset larger than the target-layer's thickness") ## conversion factors: we do not use BaseDataSet.ConversionFactors directly ## as it is in alphabetical level, but we want to have 'Cresswelletal2018' ## in first position, as that is our default value valid_conversion_factors <- c("Cresswelletal2018", "Guerinetal2011", "AdamiecAitken1998", "Liritzisetal2013") stopifnot(all(names(BaseDataSet.ConversionFactors) %in% valid_conversion_factors)) conversion_factors <- .validate_args(conversion_factors, valid_conversion_factors) ## fractional gamma dose fractional_gamma_dose <- .validate_args(fractional_gamma_dose, names(BaseDataSet.FractionalGammaDose)) ## ------------------------------------------------------------------------ ## ## Select tables ## ------------------------------------------------------------------------ ## conv_fac <- BaseDataSet.ConversionFactors[[conversion_factors]]$gamma frac_dose <- BaseDataSet.FractionalGammaDose[[fractional_gamma_dose]] ## ------------------------------------------------------------------------ ## ## CALCULATION ## ------------------------------------------------------------------------ ## dose_rate <- data.frame( K = data$K * conv_fac$K[1], K_re = sqrt( (data$K_se / data$K)^2 + conv_fac$K[2]^2 ), Th = data$Th * conv_fac$Th[1], Th_re = sqrt( (data$Th_se / data$Th)^2 + conv_fac$Th[2]^2 ), U = data$U * conv_fac$U[1], U_re = sqrt( (data$U_se / data$U)^2 + conv_fac$U[2]^2 ) ) dose_rate$sum <- dose_rate$K + dose_rate$Th + dose_rate$U dose_rate$sum_re <- sqrt(dose_rate$K_re^2 + dose_rate$Th_re^2 + dose_rate$U_re^2) dose_rate$K_frac <- dose_rate$K / dose_rate$sum dose_rate$K_frac_re <- sqrt(dose_rate$K_re^2 + dose_rate$sum_re^2 ) dose_rate$Th_frac <- dose_rate$Th / dose_rate$sum dose_rate$Th_frac_re <- sqrt(dose_rate$Th_re^2 + dose_rate$sum_re^2 ) dose_rate$U_frac <- dose_rate$U / dose_rate$sum dose_rate$U_frac_re <- sqrt(dose_rate$U_re^2 + dose_rate$sum_re^2 ) ## weighted fractional dose z_scale <- do.call(cbind, Map(function(d, wc) { (frac_dose$z * 2) / (d + ( (wc / 100) * d)) }, data$density, data$water_content)) layer_fracDoseRate <- do.call(cbind, Map(function(K, Th, U, K_re, Th_re, U_re) { data.frame( val = frac_dose$K * K + frac_dose$Th * Th + frac_dose$U * U, err = sqrt( K_re^2 + Th_re^2 + U_re^2 ) ) }, dose_rate$K_frac, dose_rate$Th_frac, dose_rate$U_frac, dose_rate$K_frac_re, dose_rate$Th_frac_re, dose_rate$U_frac_re)) ## TODO: LEGACY CODE target <- which(!is.na(data$sample_offset)) distance <- data.frame(upper = c(rev(cumsum(data$thickness[target:1])[-1]) - data$sample_offset[target], abs(data$sample_offset[target]), cumsum(data$thickness[(target+1):nrow(data)]) + data$sample_offset[target])) distance$lower <- abs(distance$upper - data$thickness) ## Calculate infitite dose rate and dose received by the sample ## MAP: iterate over LAYERS Inf_frac <- as.data.frame(do.call(rbind, Map(function(z, n) { interpol <- Map(function(x) { approx(z, x, n = 1000, method = "linear") }, frac_dose[, c("K", "Th", "U")]) x1 = data$thickness[n] x2 = 0 C1 = which.min(abs(interpol$K$x - x1)) C2 = which.min(abs(interpol$K$x - x2)) ## MAP: iterate over NUCLIDE do.call(cbind, Map(function(x) { y1 = interpol[[x]]$y[C1] y2 = interpol[[x]]$y[C2] ### ---- if (n != target) { if (n < target) { k <- n + 1 seq <- k:target } else if (n > target) { k <- n - 1 seq <- target:k } for (j in seq) { fit <- approx(z_scale[ ,j], frac_dose[ , x], n = 1000, method = "linear") x1_temp <- which.min(abs(fit$y - y1)) x2_temp <- which.min(abs(fit$y - y2)) if (j != target) { x1 <- fit$x[x1_temp] + data$thickness[j] x2 <- fit$x[x2_temp] + data$thickness[j] } if (j == target) { if (n < target) { x1 <- fit$x[x1_temp] + data$thickness[target] - data$sample_offset[target] x2 <- fit$x[x2_temp] + data$thickness[target] - data$sample_offset[target] } if (n > target) { x1 <- fit$x[x1_temp] + data$sample_offset[target] x2 <- fit$x[x2_temp] + data$sample_offset[target] } } C1_temp <- which.min(abs(fit$x - x1)) C2_temp <- which.min(abs(fit$x - x2)) y1 <- fit$y[C1_temp] y2 <- fit$y[C2_temp] } r <- y1 - y2 } ### ---- if (n == target) { x1 <- data$sample_offset[target] x2 <- abs(data$thickness[target] - data$sample_offset[target]) C1_temp <- which.min(abs(interpol[[x]]$x - x1)) C2_temp <- which.min(abs(interpol[[x]]$x - x2)) r <- interpol[[x]]$y[C1_temp] + interpol[[x]]$y[C2_temp] - 1 } return(r) }, c("K", "Th", "U"))) }, as.data.frame(z_scale), 1:nrow(data)))) ## Generate output object op <- setNames(vector(mode = "list", length = 17), nm = c("K","K_se","Th","Th_se","U","U_se","sum","sum_se", "K_inf","K_inf_se","Th_inf","Th_inf_se","U_inf","U_inf_se","sum_inf","sum_inf_se", "contrib")) # fractional dose rate op$K <- Inf_frac$K * dose_rate$K / (1 + 1.14 * data$water_content / 100) op$K_se <- op$K * sqrt(dose_rate$K_re^2 + (data$water_content_se / data$water_content)^2) op$Th <- Inf_frac$Th * dose_rate$Th / (1 + 1.14 * data$water_content / 100) op$Th_se <- op$Th * sqrt(dose_rate$Th_re^2 + (data$water_content_se / data$water_content)^2) op$U <- Inf_frac$U * dose_rate$U / (1 + 1.14 * data$water_content / 100) op$U_se <- op$U * sqrt(dose_rate$U_re^2 + (data$water_content_se / data$water_content)^2) op$sum <- op$K + op$Th + op$U op$sum_se <- sqrt(op$K_se^2 + op$Th_se^2 + op$U_se^2) # infinite matrix dose rate op$K_inf <- op$K / Inf_frac$K op$K_inf_se <- op$K_inf * sqrt(dose_rate$K_re^2 + (data$water_content_se / data$water_content)^2) op$Th_inf <- op$Th / Inf_frac$Th op$Th_inf_se <- op$Th_inf * sqrt(dose_rate$Th_re^2 + (data$water_content_se / data$water_content)^2) op$U_inf <- op$U / Inf_frac$U op$U_inf_se <- op$U_inf * sqrt(dose_rate$U_re^2 + (data$water_content_se / data$water_content)^2) op$sum_inf <- op$K_inf + op$Th_inf + op$U_inf op$sum_inf_se <- sqrt(op$K_inf_se^2 + op$Th_inf_se^2 + op$U_inf_se^2) ## Calculate the total dose rates for(i in seq(1, length(op)-1, 2)) { op[[i]] <- c(op[[i]], sum(op[[i]])) op[[i+1]] <- c(op[[i+1]], sqrt(sum(op[[i+1]]^2))) } ## Calculate contributions for each layer op$contrib <- op$sum[1:nrow(data)] / op$sum[nrow(data)+1] * 100 op$contrib <- c(op$contrib, sum(op$contrib)) # Cast to data.frame op <- as.data.frame(do.call(cbind, op)) ## ------------------------------------------------------------------------ ## ## CONSOLE OUTPUT ## ------------------------------------------------------------------------ ## if (verbose) { cat(paste0("\n [scale_GammaDose()]\n\n")) cat(" ----\n") cat(" Conversion factors:", conversion_factors, "\n") cat(" Gamma dose fractions:", fractional_gamma_dose, "\n") cat(" Target layer:", data$id[target], "\n\n") cat(" ---- Infinite matrix gamma dose rate per layer ----\n\n") print(data.frame(ID = data$id, `K (Gy/ka)` = paste0(f(op$K_inf[-(nrow(data)+1)]), "\u00b1", f(op$K_inf_se[-(nrow(data)+1)])), `Th (Gy/ka)` = paste0(f(op$Th_inf[-(nrow(data)+1)]), "\u00b1", f(op$Th_inf_se[-(nrow(data)+1)])), `U (Gy/ka)` = paste0(f(op$U_inf[-(nrow(data)+1)]), "\u00b1", f(op$U_inf_se[-(nrow(data)+1)])), `Total (Gy/ka)` = f(op$sum_inf[-(nrow(data)+1)]), check.names = FALSE )) cat("\n") cat(sprintf(" ---- Scaled gamma dose rate for target layer: %s ----\n\n", data$id[target])) print(data.frame(ID = c(data$id, "TOTAL"), `K (Gy/ka)` = paste0(f(op$K), "\u00b1", f(op$K_se)), `Th (Gy/ka)` = paste0(f(op$Th), "\u00b1", f(op$Th_se)), `U (Gy/ka)` = paste0(f(op$U), "\u00b1", f(op$U_se)), `Contribution (%)` = round(op$contrib, 1), check.names = FALSE )) cat("\n ----\n") cat(" Infinite matrix gamma dose rate:\t", f(op$sum_inf[target]), "\u00b1", f(op$sum_inf_se[target]), "Gy/ka \n") cat(" Scaled gamma dose rate:\t\t", f(op$sum[length(op$sum)]), "\u00b1", f(op$sum_se[length(op$sum_se)]), "Gy/ka") cat("\n\n") } ## ------------------------------------------------------------------------ ## ## PLOT ## ------------------------------------------------------------------------ ## if (plot) { # save and recover plot parameters par.old <- par(no.readonly = TRUE) on.exit(par(par.old), add = TRUE) if (plot_singlePanels) layout(matrix(c(1,1, 2, 3, 4, 5, 1,1, 2, 3, 4, 5, 1,1, 6, 6, 6, 6, 1,1, 6, 6, 6, 6), ncol = 6, byrow = TRUE)) ## Plot 1 - Layer setup ## -------------------------------------------------------------- ## Global plot settings if (plot_singlePanels) par(mar = c(2, 5, 1, 4) + 0.1) else par(mar = c(2, 5, 4, 4) + 0.1) plot(NA, NA, main = ifelse(plot_singlePanels, "", "Profile structure"), xlim = c(0, 1), ylim = rev(range(pretty(c(sum(data$thickness), 0)))), xaxt = "n", xlab = "", ylab = "Depth below surface of uppermost layer (cm)", bty = "n", xaxs = "i") # x-axis label title(xlab = "Horizontal extent (a.u.)", line = 0) # horizontal layer lines abline(h = c(0, cumsum(data$thickness), sum(data$thickness)), lty = 1, col = "grey50", xpd = FALSE) # layer names mtext(side = 2, at = c(0, cumsum(data$thickness) - data$thickness / 2, sum(data$thickness)), text = c("", data$id, ""), las = 1, line = -5, cex = 0.75, padj = 0.3, col = "#428bca") # right y-axis axis(side = 4, at = c(0, cumsum(data$thickness), sum(data$thickness)), labels = FALSE, tck = -0.01) # right y-axis labels mtext(side = 4, at = c(0, cumsum(data$thickness) - data$thickness / 2, sum(data$thickness)), text = c("", paste(data$thickness, "cm"), ""), las = 1, line = ifelse(plot_singlePanels, -4, 0.5), cex = 0.8, col = "#b22222") # fill gap between lowermost layer and max range of pretty xlim polygon(x = c(0, 1, 1, 0), y = c(sum(data$thickness), sum(data$thickness), max(range(pretty(c(sum(data$thickness), 0)))), max(range(pretty(c(sum(data$thickness), 0))))), density = 10, angle = 45 ) # add sample points(x = 0.5, y = sum(data$thickness[1:target]) - data$sample_offset[target], pch = 13, col = "#b22222", cex = 3, lwd = 2) ## PLOT 2 - Nuclide contents ## -------------------------------------------------------------- # global plot settings if (plot_singlePanels) { par( mar = c(4, 2, 3, 0.5) + 0.1, cex = 0.6, # oma = c(1, 1, 1, 1) + 0.1, pch = 16) } else { par(par.old) par( mfrow = c(1, 4), mar = c(4, 5, 0, 0) + 0.1, oma = c(1, 1, 1, 1) + 0.1, pch = 16) } # calculate fancy x-axis limits by considering the error bars calc_xlim <- function(x, se) { range(pretty(c(x - se, x + se))) } # horizontal error bars plot_error <- function(x, se) { segments(x - se, length(x):1, x + se, length(x):1) epsilon <- 0.1 segments(x - se, length(x):1 - epsilon, x - se, length(x):1 + epsilon) segments(x + se, length(x):1 - epsilon, x + se, length(x):1 + epsilon) } # plot labels cols <- c("K", "Th", "U", "water_content") xlabs <- c("K content (%)", "Th content (ppm)", "U content (ppm)", "Water content (%)") # main plot for (i in 1:length(cols)) { # main plot(NA, NA, xlim = calc_xlim(data[[cols[i]]], data[[paste0(cols[i], "_se")]]), ylim = c(1, nrow(data)), ylab = "", xlab = xlabs[i], yaxt = "n") # vertical orientation lines abline(v = axTicks(side = 1), col = "grey", lty = 3, xpd = FALSE) # data points points(data[[cols[i]]], nrow(data):1, cex = 1.5) # errors plot_error(data[[cols[i]]], data[[paste0(cols[i], "_se")]]) # y-axis label for the first plot if (i == 1) axis(2, at = nrow(data):1, labels = data$id, las = 1) } ## PLOT 3 - Contribution ## -------------------------------------------------------------- ## Global plot settings # recover standard plot settings first if (plot_singlePanels) { par(mar = c(5, 5, 1, 6) + 0.1, cex = 0.7) } else { par(par.old) par(mar = c(5, 8, 4, 4) + 0.1, cex = settings$cex) } ## Set colors: target layer is blue, all other grey cols <- c("grey", "#428bca") pos <- rev(as.numeric(!is.na(data$sample_offset)) + 1) ## Contributions of each layer bp <- graphics::barplot(height = op$contrib[(nrow(op)-1):1], horiz = TRUE, main = ifelse(plot_singlePanels, "", settings$main), xlab = settings$xlab, xlim = range(pretty(op$contrib[1:(nrow(op)-1)])), col = cols[pos]) # layer names mtext(side = 2, at = bp, line = ifelse(plot_singlePanels, 3.5, 3), las = 1, cex = ifelse(plot_singlePanels, 0.7, 0.8), text = rev(data$id)) # contribution percentage mtext(side = 2, at = rev(bp), text = paste(signif(op$contrib[1:(nrow(op) - 1)], 2), "%"), col = "#b22222", las = 1, line = 0.5, cex = 0.7) # absolute dose rate values (right side) mtext(side = 4, at = rev(bp), text = paste(c(" ", rep("+", nrow(op) - 2)), f(op$sum[1:(nrow(op) - 1)]), "Gy/ka"), col = "black", las = 1, line = -0.5, cex = 0.7) # sum of absolute dose rate values (-> scaled total gamma dose rate) mtext(side = 4, at = min(bp) - diff(bp)[1] / 2, text = paste("=", f(op$sum[nrow(op)]), "Gy/ka"), col = "#b22222", las = 1, line = ifelse(plot_singlePanels, -0.5, -1), cex = ifelse(plot_singlePanels, 0.7, 0.8)) # recover old plot parameters par(par.old) } ## ------------------------------------------------------------------------ ## ## RETURN VALUE ## ------------------------------------------------------------------------ ## ## Infinity matrix dose rate table infinite_matrix <- data.frame( ID = data$id, K = op$K_inf[-(nrow(data)+1)], K_err = op$K_inf_se[-(nrow(data)+1)], Th = op$Th_inf[-(nrow(data)+1)], Th_err = op$Th_inf_se[-(nrow(data)+1)], U = op$U_inf[-(nrow(data)+1)], U_err = op$U_inf_se[-(nrow(data)+1)], Total = op$sum_inf[-(nrow(data)+1)] ) ## Scaled dose rate table scaled_dose_rate <- data.frame( ID = c(data$id, "TOTAL"), K = op$K, K_err = op$K_se, Th = op$Th, Th_err = op$Th_se, U = op$U, U_err = op$U_se, Contribution = op$contrib ) ## Summary table with the most important results summary <- data.frame( id = data$id[target], dose_rate_K = op$K[nrow(op)], dose_rate_K_err = op$K_se[nrow(op)], dose_rate_Th = op$Th[nrow(op)], dose_rate_Th_err = op$Th_se[nrow(op)], dose_rate_U = op$U[nrow(op)], dose_rate_U_err = op$U_se[nrow(op)], dose_rate_total = op$sum[length(op$sum)], dose_rate_total_err = op$sum_se[length(op$sum_se)] ) ## Create RLum.Results object (return object) results <- set_RLum(class = "RLum.Results", originator = "scale_GammaDose", data = list(summary = summary, data = data, dose_rates = list( infinite_matrix = infinite_matrix, scaled_dose_rate = scaled_dose_rate ), tables = list( conversion_factors = conv_fac, distances = distance, layer_fractional_dose_rate = layer_fracDoseRate, dose_rates = dose_rate, infnite_matrix_dose_fractions = Inf_frac, z_scale = z_scale ), args = as.list(sys.call()[-1]), call = sys.call()), info = settings$info ) return(results) } Luminescence/R/internal_as.latex.table.R0000644000176200001440000002567514762554470017746 0ustar liggesusers#' Create LaTex tables from data.frames and RLum objects #' #' This function takes a data.frame and returns a table in LaTex code that #' can be copied into any tex document. #' #' @param x [data.frame] or `RLum` object (**required**) #' #' @param row.names currently unused #' #' @param col.names currently unused #' #' @param comments [logical] (*with default*): #' insert LaTex comments #' #' @param pos [character] (*with default*): #' `character` of length one specifying the alignment of each column, e.g., #' pos'clr' for a three column data frame and center, left #' and right alignment #' #' @param digits [numeric] (*with default*): #' number of digits (numeric fields) #' #' @param rm.zero [logical] (*with default*): remove columns containing #' only zeros, however this might not be wanted in all cases #' #' @param select [character] (*optional*): #' a [character] vector passed to [subset] #' #' @param split [integer] (*optional*): #' an [integer] specifying the number of individual tables #' the data frame is split into. Useful for wide tables. Currently unused. #' #' @param tabular_only [logical] (*with default*): if `TRUE` only the tabular but not the #' table environment is returned. This gives a lot of additional flexibility at hand #' #' @param ... options: `verbose` #' #' @section TODO: #' - Improve by using RegEx to dynamically find error fields, eg. ( "([ ]err)|(^err)" ) #' - #' #' @return #' Returns LaTex code #' #' @examples #' df <- data.frame(x = 1:10, y = letters[1:10]) #' .as.latex.table(df) #' .as.latex.table(df, pos = "lr") #' .as.latex.table(df, select = "y", pos = "r") #' #' @md #' @noRd .as.latex.table <- function(x, row.names = NULL, col.names = NULL, comments = TRUE, pos = "c", digits = 3, rm.zero = TRUE, select, split = NULL, tabular_only = FALSE, ...) { args <- list(x = x, row.names = row.names, col.names = col.names, comments = comments, pos = pos, digits = digits, rm.zero = rm.zero, split = split, tabular_only = tabular_only, ... = ...) if (!missing(select)) args$select <- select switch(class(x)[1], data.frame = do.call(".as.latex.table.data.frame", args), DRAC.highlights = do.call(".as.latex.table.data.frame", args), RLum.Results = do.call(".as.latex.table.RLum.Results", args)) } ################################################################################ ## "Method" RLum.Results ## ##----------------------------------------------------------------------------## .as.latex.table.RLum.Results <- function(x, row.names = NULL, col.names = NULL, comments = TRUE, pos = "c", digits = 3, rm.zero = TRUE, select, split = NULL, ...) { ## Object: DRAC.highlights if (x@originator == "use_DRAC") { x <- get_RLum(x)$highlights x <- .digits(x, digits) ##remove columns containing zero values ... they add no information if(rm.zero){ x <- x[sapply(x, function(y){ y <- suppressWarnings(as.numeric(y)) if(anyNA(y) || sum(y, na.rm = TRUE) != 0){ TRUE }else{ FALSE } })] } ##add +/- symbol and remove the columns we don't need fields.w.error <- (grep(names(x), pattern = "err", fixed = TRUE) - 1) for(i in fields.w.error) x[ ,i] <- paste0(x[ ,i], "\\,$\\pm$\\,", trimws(x[ ,i + 1])) x <- x[-c(fields.w.error + 1)] ##create latex table text <- .as.latex.table(x, comments = comments, pos = pos, split = split, ...) ##split table text <- strsplit(text[[1]], split = "\n", fixed = TRUE) ##exchange columns ... or delete them at all (2nd step) ##Mineral ID for(i in 1:length(text)){ text[[i]][grepl(pattern = "Mineral", x = text[[i]], fixed = TRUE)] <- "\t\\multicolumn{1}{p{0.5cm}}{\\centering \\textbf{M.}} & " } ##put things again together (single character) text <- paste(text[[1]], collapse = "\n") ##replace some latex stuff text <- gsub(pattern = "p{2cm}", replacement = "p{1.5cm}", x = text, fixed = TRUE) text <- gsub(pattern = "Gy.ka-1", replacement = "Gy~ka$^{-1}$", x = text, fixed = TRUE) text <- gsub(pattern = "De", replacement = "$D_{E}$", x = text, fixed = TRUE) text <- gsub(pattern = "alphadoserate", replacement = "$\\dot{D}_{\\alpha}$", x = text, fixed = TRUE) text <- gsub(pattern = "betadoserate", replacement = "$\\dot{D}_{\\beta}$", x = text, fixed = TRUE) text <- gsub(pattern = "gammadoserate", replacement = "$\\dot{D}_{\\gamma}$", x = text, fixed = TRUE) text <- gsub(pattern = "Cosmicdoserate", replacement = "$\\dot{D}_{cosm.}$", x = text, fixed = TRUE) text <- gsub(pattern = "External \\\\ doserate", replacement = "$\\dot{D}_{ext.}$", x = text, fixed = TRUE) text <- gsub(pattern = "Internal \\\\ doserate", replacement = "$\\dot{D}_{int.}$", x = text, fixed = TRUE) text <- gsub(pattern = "Environmental \\\\ Dose \\\\ Rate", replacement = "$\\dot{D}_{env.}$", x = text, fixed = TRUE) ## return result return(text) }# EndOf::use_DRAC } ################################################################################ ## "Method" data.frame ## ##----------------------------------------------------------------------------## .as.latex.table.data.frame <- function(x, row.names = NULL, col.names = NULL, comments = TRUE, pos = "c", digits = 3, select, split = NULL, tabular_only = FALSE, ...) { .set_function_name("as.latex.table.data.frame") on.exit(.unset_function_name(), add = TRUE) ## Integrity tests -------------------------------------------------------- .validate_class(x, "data.frame") if (!is.null(col.names) && length(col.names) != ncol(x)) .throw_error("Length of 'col.names' does not match the number of columns") if (!is.null(row.names) && length(row.names) != nrow(x)) .throw_error("Length of 'row.names' does not match the number of rows") if (length(pos) != 1) .throw_error("Length of 'pos' does not match the number of columns") ## Default settings ---- options <- list(verbose = TRUE) ## Override settings ---- options <- modifyList(options, list(...)) ## Subset data frame ---- if (!missing(select)) { is.name <- select %in% names(x) if (any(!is.name)) .throw_error("Undefined columns selected. Please check provided ", "column names in 'select'.") x <- subset(x, select = select) } ## Format numeric fields ---- x <- .digits(x, digits) ## Split the table if (is.null(split)) split <- 1 chunks <- ceiling(ncol(x) / split) chunks.start <- seq(1, ncol(x), chunks) chunks.end <- chunks.start + chunks - 1 chunks.end[length(chunks.end)] <- ncol(x) tex.table.list <- vector("list", split) for (i in 1:length(tex.table.list)) { x.chunk <- x[ ,chunks.start[i]:chunks.end[i]] if (ncol(x) == 1) { x.chunk <- as.data.frame(x.chunk) colnames(x.chunk) <- names(x[i]) } ## Comments ---- tex.comment.usePackage <- ifelse(comments, "% add usepackage{adjustbox} to latex preamble \n", "") ## Header ---- col.names <- tex.table.header <- gsub(pattern = " ", x = names(x.chunk), replacement = " \\\\\\\\ ") tex.table.header <- paste0("\t", paste("\\multicolumn{1}{p{2cm}}{\\centering", col.names, "}", collapse = " & \n\t"), "\\\\ \n") ## Rows ---- tex.table.rows <- "" for (j in 1:nrow(x.chunk)) { tex.table.rows <- paste0(tex.table.rows, paste(paste(x.chunk[j, ], collapse = " & "), "\\\\ \n")) } ## catch potential latex problems with underscores - after all are numbers, in can be only ## on the ID tex.table.rows <- gsub("_", "\\_", tex.table.rows, fixed = TRUE) ## Tex table ---- pos.chars <- unlist(strsplit(pos, split = "")) if (!all(pos.chars %in% c("l", "c", "r")) || (length(pos.chars) != 1 && length(pos.chars) != ncol(x))) { pos <- "c" } if (nchar(pos) == 1) pos <- paste0(rep(pos, ncol(x)), collapse = "") if(tabular_only){ tex.table.begin <- paste0(paste(" \\begin{tabular}{", pos, "}\n"), " \\hline \n") tex.table.end <- paste0(" \\hline \n", " \\end{tabular}") }else{ tex.table.begin <- paste0("\\begin{table}[ht] \n", " \\centering \n", " \\begin{adjustbox}{max width=\\textwidth} \n", paste(" \\begin{tabular}{", pos, "}\n"), " \\hline \n") tex.table.end <- paste0(" \\hline \n", " \\end{tabular} \n", " \\end{adjustbox} \n", "\\end{table}") } tex.table <- paste0(tex.comment.usePackage, tex.table.begin, tex.table.header, "\\hline \n", tex.table.rows, tex.table.end) if (options$verbose) cat(tex.table) tex.table.list[[i]] <- tex.table } invisible(tex.table.list) } # This function takes a data.frame, checks each column and tries to # force the specified amount of digits if numeric or coerceable to numeric .digits <- function(x, digits) { for (i in 1:ncol(x)) { if (is.factor(x[ ,i])) x[ ,i] <- as.character(x[ ,i]) test.numeric <- suppressWarnings(as.numeric(x[ ,i])) if (!is.na(test.numeric[1])) x[ ,i] <- format(round(test.numeric, digits), nsmall = digits, digits = digits) } return(x) } Luminescence/R/fit_LMCurve.R0000644000176200001440000011544214762554470015414 0ustar liggesusers#' @title Non-linear Least Squares Fit for LM-OSL curves #' #' @description The function determines weighted non-linear least-squares estimates of the #' component parameters of an LM-OSL curve (Bulur 1996) for a given number of #' components and returns various component parameters. The fitting procedure #' uses the function [nls] with the `port` algorithm. #' #' @details #' **Fitting function** #' #' The function for the fitting has the general #' form: #' #' \deqn{y = (exp(0.5)*Im_1*x/xm_1)*exp(-x^2/(2*xm_1^2)) + ,\ldots, + exp(0.5)*Im_i*x/xm_i)*exp(-x^2/(2*xm_i^2))} #' #' where \eqn{1 < i < 8} #' #' This function and the equations for the conversion to b (detrapping probability) #' and n0 (proportional to initially trapped charge) have been taken from Kitis #' et al. (2008): #' #' \deqn{xm_i=\sqrt{max(t)/b_i}} #' \deqn{Im_i=exp(-0.5)n0/xm_i} #' #' **Background subtraction** #' #' Three methods for background subtraction #' are provided for a given background signal (`values.bg`). #' #' - `polynomial`: default method. A polynomial function is fitted using [glm] #' and the resulting function is used for background subtraction: #' \deqn{y = a*x^4 + b*x^3 + c*x^2 + d*x + e} #' #' - `linear`: a linear function is fitted using [glm] and the resulting function #' is used for background subtraction: #' \deqn{y = a*x + b} #' #' - `channel`: the measured #' background signal is subtracted channel wise from the measured signal. #' #' #' **Start values** #' #' The choice of the initial parameters for the `nls`-fitting is a crucial #' point and the fitting procedure may mainly fail due to ill chosen start #' parameters. Here, three options are provided: #' #' **(a)** #' If no start values (`start_values`) are provided by the user, a cheap guess is made #' by using the detrapping values found by Jain et al. (2003) for quartz for a #' maximum of 7 components. Based on these values, the pseudo start parameters #' `xm` and `Im` are recalculated for the given data set. In all cases, the fitting #' starts with the ultra-fast component and (depending on `n.components`) #' steps through the following values. If no fit could be achieved, an error #' plot (for `plot = TRUE`) with the pseudo curve (based on the #' pseudo start parameters) is provided. This may give the opportunity to #' identify appropriate start parameters visually. #' #' **(b)** #' If start values are provided, the function works like a simple [nls] #' fitting approach. #' #' **(c)** #' If no start parameters are provided and #' the option `fit.advanced = TRUE` is chosen, an advanced start parameter #' estimation is applied using a stochastic attempt. Therefore, the #' recalculated start parameters **(a)** are used to construct a normal #' distribution. The start parameters are then sampled randomly from this #' distribution. A maximum of 100 attempts will be made. **Note:** This #' process may be time consuming. #' #' **Goodness of fit** #' #' The goodness of the fit is given by a pseudo-R² value (pseudo coefficient of #' determination). According to Lave (1970), the value is calculated as: #' #' \deqn{pseudoR^2 = 1 - RSS/TSS} #' #' where \eqn{RSS = Residual~Sum~of~Squares} #' and \eqn{TSS = Total~Sum~of~Squares} #' #' **Error of fitted component parameters** #' #' The 1-sigma error for the components is calculated using #' the function [stats::confint]. Due to considerable calculation time, this #' option is deactivated by default. In addition, the error for the components #' can be estimated by using internal R functions like [summary]. See the #' [nls] help page for more information. #' #' *For more details on the nonlinear regression in R, see Ritz & Streibig (2008).* #' #' @param values [RLum.Data.Curve-class] or [data.frame] (**required**): #' x,y data of measured values (time and counts). See examples. #' #' @param values.bg [RLum.Data.Curve-class] or [data.frame] (*optional*): #' x,y data of measured values (time and counts) for background subtraction. #' #' @param n.components [integer] (*with default*): #' fixed number of components that are to be recognised during fitting #' (min = 1, max = 7). #' #' @param start_values [data.frame] (*optional*): #' start parameters for `lm` and `xm` data for the fit. If no start values are given, #' an automatic start value estimation is attempted (see details). #' #' @param input.dataType [character] (*with default*): #' alter the plot output depending on the input data: `"LM"` or `"pLM"` (pseudo-LM). #' See: [convert_CW2pLM] #' #' @param fit.method [character] (*with default*): #' select fit method, allowed values: `'port'` and `'LM'`. `'port'` uses the 'port' #' routine from the function [nls] `'LM'` utilises the function `nlsLM` from #' the package `minpack.lm` and with that the Levenberg-Marquardt algorithm. #' #' @param sample_code [character] (*optional*): #' sample code used for the plot and the optional output table (mtext). #' #' @param sample_ID [character] (*optional*): #' additional identifier used as column header for the table output. #' #' @param LED.power [numeric] (*with default*): #' LED power (max.) used for intensity ramping in mW/cm². #' **Note:** This value is used for the calculation of the absolute #' photoionisation cross section. #' #' @param LED.wavelength [numeric] (*with default*): #' LED wavelength in nm used for stimulation. #' **Note:** This value is used for the calculation of the absolute #' photoionisation cross section. #' #' @param fit.trace [logical] (*with default*): #' traces the fitting process on the terminal. #' #' @param fit.advanced [logical] (*with default*): #' enables advanced fitting attempt for automatic start parameter recognition. #' Works only if no start parameters are provided. #' **Note:** It may take a while and it is not compatible with `fit.method = "LM"`. #' #' @param fit.calcError [logical] (*with default*): #' calculate 1-sigma error range of components using [stats::confint]. #' #' @param bg.subtraction [character] (*with default*): #' specifies method for background subtraction (`polynomial`, `linear`, `channel`, #' see Details). **Note:** requires input for `values.bg`. #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param plot.BG [logical] (*with default*): #' returns a plot of the background values with the fit used for the #' background subtraction. #' #' @param method_control [list] (*optional*): options to control the output #' produced. Currently only the 'export.comp.contrib.matrix' (logical) option #' is supported, to enable/disable export of the component contribution #' matrix. #' #' @param ... Further arguments that may be passed to the plot output, e.g. #' `xlab`, `xlab`, `main`, `log`. #' #' @return #' Various types of plots are returned. For details see above. Furthermore an #' `RLum.Results` object is returned with the following structure: #' #' **`@data:`** #' #' `.. $data` : [data.frame] with fitting results\cr #' `.. $fit` : nls ([nls] object)\cr #' `.. $component_matrix` : [matrix] with numerical xy-values of the single fitted components with the resolution of the input data #' `.. $component.contribution.matrix` : [list] component distribution matrix #' (produced only if `method_control$export.comp.contrib.matrix = TRUE`) #' #' **`info:`** #' #' `.. $call` : [call] the original function call #' #' Matrix structure for the distribution matrix: #' #' Column 1 and 2: time and `rev(time)` values\cr #' Additional columns are used for the components, two for each component, #' containing I0 and n0. The last columns `cont.` provide information on #' the relative component contribution for each time interval including the row #' sum for this values. #' #' @note #' The pseudo-R² may not be the best parameter to describe the goodness #' of the fit. The trade off between the `n.components` and the pseudo-R² #' value currently remains unconsidered. #' #' The function **does not** ensure that the fitting procedure has reached a #' global minimum rather than a local minimum! In any case of doubt, the use of #' manual start values is highly recommended. #' #' @section Function version: 0.3.5 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [fit_CWCurve], [plot], [nls], [minpack.lm::nlsLM], [get_RLum] #' #' @references #' Bulur, E., 1996. An Alternative Technique For Optically #' Stimulated Luminescence (OSL) Experiment. Radiation Measurements, 26, 5, #' 701-709. #' #' Jain, M., Murray, A.S., Boetter-Jensen, L., 2003. Characterisation of #' blue-light stimulated luminescence components in different quartz samples: #' implications for dose measurement. Radiation Measurements, 37 (4-5), #' 441-449. #' #' Kitis, G. & Pagonis, V., 2008. Computerized curve deconvolution analysis for #' LM-OSL. Radiation Measurements, 43, 737-741. #' #' Lave, C.A.T., 1970. The Demand for Urban Mass Transportation. The Review of #' Economics and Statistics, 52 (3), 320-323. #' #' Ritz, C. & Streibig, J.C., 2008. Nonlinear Regression with R. R. Gentleman, #' K. Hornik, & G. Parmigiani, eds., Springer, p. 150. #' #' @keywords dplot models #' #' @examples #' #' ##(1) fit LM data without background subtraction #' data(ExampleData.FittingLM, envir = environment()) #' fit_LMCurve(values = values.curve, n.components = 3, log = "x") #' #' ##(2) fit LM data with background subtraction and export as JPEG #' ## -alter file path for your preferred system #' ##jpeg(file = "~/Desktop/Fit_Output\%03d.jpg", quality = 100, #' ## height = 3000, width = 3000, res = 300) #' data(ExampleData.FittingLM, envir = environment()) #' fit_LMCurve(values = values.curve, values.bg = values.curveBG, #' n.components = 2, log = "x", plot.BG = TRUE) #' ##dev.off() #' #' ##(3) fit LM data with manual start parameters #' data(ExampleData.FittingLM, envir = environment()) #' fit_LMCurve(values = values.curve, #' values.bg = values.curveBG, #' n.components = 3, #' log = "x", #' start_values = data.frame(Im = c(170,25,400), xm = c(56,200,1500))) #' #' @md #' @export fit_LMCurve<- function( values, values.bg, n.components = 3, start_values, input.dataType = "LM", fit.method = "port", sample_code = "", sample_ID = "", LED.power = 36, LED.wavelength = 470, fit.trace = FALSE, fit.advanced = FALSE, fit.calcError = FALSE, bg.subtraction = "polynomial", verbose = TRUE, plot = TRUE, plot.BG = FALSE, method_control = list(), ... ) { .set_function_name("fit_LMCurve") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- ##(1) data.frame or RLum.Data.Curve object? .validate_class(values, c("data.frame", "RLum.Data.Curve")) .validate_not_empty(values) if (inherits(values, "RLum.Data.Curve")) { if (!values@recordType %in% c("RBR", "LM-OSL")) { .throw_error("recordType should be 'RBR' or 'LM-OSL'. ", "Consider using `as(object, 'data.frame')` if you ", "have used a pseudo transformation function") } values <- as(values,"data.frame") } ##(2) data.frame or RLum.Data.Curve object? if (!missing(values.bg)) { .validate_class(values.bg, c("data.frame", "RLum.Data.Curve")) if (inherits(values.bg, "RLum.Data.Curve") && (is.na(values.bg@recordType) || values.bg@recordType != "RBR")) .throw_error("'recordType' for values.bg should be 'RBR'!") if (inherits(values.bg, "RLum.Data.Curve")) values.bg <- as(values.bg, "data.frame") } input.dataType <- .validate_args(input.dataType, c("LM", "pLM")) fit.method <- .validate_args(fit.method, c("port", "LM")) bg.subtraction <- .validate_args(bg.subtraction, c("polynomial", "linear", "channel")) .validate_logical_scalar(verbose) .validate_logical_scalar(plot) .validate_logical_scalar(plot.BG) .validate_class(method_control, "list") ## Set plot format parameters ----------------------------------------------- extraArgs <- list(...) # read out additional arguments list log <- if("log" %in% names(extraArgs)) {extraArgs$log} else {""} xlim <- if("xlim" %in% names(extraArgs)) {extraArgs$xlim} else {c(min(values[,1]),max(values[,1]))} ylim <- if("ylim" %in% names(extraArgs)) {extraArgs$ylim} else { if(input.dataType=="pLM"){ c(0,max(values[,2]*1.1)) }else{ c(min(values[,2]),max(values[,2]*1.1)) } } xlab <- if("xlab" %in% names(extraArgs)) {extraArgs$xlab} else { if(input.dataType=="LM"){"Time [s]"}else{"u [s]"} } ylab <- if("ylab" %in% names(extraArgs)) {extraArgs$ylab} else { if(input.dataType=="LM"){ paste("LM-OSL [cts/",round(max(values[,1])/length(values[,1]),digits=2)," s]",sep="") }else{"pLM-OSL [a.u.]"} } main <- if("main" %in% names(extraArgs)) {extraArgs$main} else {"Default"} cex <- if("cex" %in% names(extraArgs)) {extraArgs$cex} else {0.8} fun <- if ("fun" %in% names(extraArgs)) extraArgs$fun else FALSE # nocov method_control <- modifyList(x = list(export.comp.contrib.matrix = FALSE), val = method_control) # layout safety settings par.default <- par()[c("mfrow", "cex", "mar", "omi", "oma")] on.exit(par(par.default), add = TRUE) ##============================================================================## ## BACKGROUND SUBTRACTION ##============================================================================## if(missing(values.bg)==FALSE){ #set graphical parameters par(mfrow=c(1,1), cex=1.5*cex) ##check if length of bg and signal is consistent if(length(values[,2])!=length(values.bg[,2])) .throw_error("Lengths of 'values' and 'values.bg' differ") if(bg.subtraction=="polynomial"){ #fit polynomial function to background glm.fit <- stats::glm(values.bg[, 2] ~ values.bg[, 1] + I(values.bg[, 1]^2) + I(values.bg[, 1]^3)) glm.coef<-coef(glm.fit) #subtract background with fitted function values[,2]<-values[,2]- (glm.coef[4]*values[,1]^3+glm.coef[3]*values[,1]^2+glm.coef[2]*values[,1]+glm.coef[1]) writeLines("[fit_LMCurve] >> Background subtracted (method=\"polynomial\")!") ##plot Background measurement if needed if(plot.BG==TRUE){ plot(values.bg, ylab="LM-OSL [a.u.]", xlab="Time [s]", main="Background") curve((glm.coef[4]*x^3+glm.coef[3]*x^2+glm.coef[2]*x+glm.coef[1]),add=TRUE,col="red",lwd=2) text(0,max(values.bg[,2]),paste("y = ", round(glm.coef[4],digits=2), "*x^3+", round(glm.coef[3],digits=2), "*x^2+", round(glm.coef[2],digits=2), "*x+", round(glm.coef[1],digits=2), sep=""),pos=4) mtext(side=3,sample_code,cex=.8*cex) } }else if(bg.subtraction=="linear"){ #fit linear function to background glm.fit <- stats::glm(values.bg[, 2] ~ values.bg[, 1]) glm.coef<-coef(glm.fit) ##substract bg values[,2]<-values[,2]-(glm.coef[2]*values[,1]+glm.coef[1]) writeLines("[fit_LMCurve.R] >> Background subtracted (method=\"linear\")!") ##plot Background measurement if needed if(plot.BG){ plot(values.bg, ylab="LM-OSL [a.u.]", xlab="Time [s]", main="Background") curve((glm.coef[2]*x+glm.coef[1]),add=TRUE,col="red",lwd=1.5) text(0,max(values.bg[,2]),paste("y = ", round(glm.coef[2],digits=2), "*x+", round(glm.coef[1],digits=2), sep=""),pos=4) mtext(side=3,sample_code,cex=.8*cex) }#endif::plot BG }else if(bg.subtraction=="channel"){ values[,2]<-values[,2]-values.bg[,2] writeLines("[fit_LMCurve.R] >> Background subtracted (method=\"channel\")!") if(plot.BG==TRUE){ plot(values.bg, ylab="LM-OSL [a.u.]", xlab="Time [s]", main="Background") mtext(side=3,sample_code,cex=.8*cex) } } } ##============================================================================## ## FITTING ##============================================================================## .validate_positive_scalar(n.components, int = TRUE) ##------------------------------------------------------------------------## ##set function for fit equation (according Kitis and Pagonis, 2008) ##////equation used for fitting////(start) fit.equation<-function(Im.i,xm.i){ equation<-parse( text=paste("exp(0.5)*Im[",Im.i,"]*(values[,1]/xm[",xm.i,"])*exp(-values[,1]^2/(2*xm[",xm.i,"]^2))", collapse="+",sep="")) return(equation) } ##////equation used for fitting///(end) ##------------------------------------------------------------------------## ##set formula elements for fitting functions ## the upper two functions should be removed ... but chances are needed ... TODO ##////equation used for fitting////(start) fit.formula <- function(n.components){ Im <- paste0("Im.",1:n.components) xm <- paste0("xm.",1:n.components) stats::as.formula(paste0("y ~ ", paste("(exp(0.5) * ", Im, "* x /", xm, ") * exp(-x^2 / (2 *", xm, "^2))", collapse = " + "))) } ##////equation used for fitting///(end) ##------------------------------------------------------------------------## ##automatic start parameter estimation ##set fit function fit.function <- fit.equation(Im.i = 1:n.components, xm.i = 1:n.components) if(missing(start_values)){ ##set b (detrapping) values for a 7-component function taken from Jain et al. (2003) b.pseudo<-c(32,2.5,0.65,0.15,0.025,0.0025,0.00030) ##calculate xm parameters from values set based on the pseudo curves xm.pseudo<-sqrt(max(values[,1])/b.pseudo) ##the Im values obtaind by calculating residuals xm.residual<-sapply(1:length(b.pseudo),function(x){abs(values[,1]-xm.pseudo[x])}) xm.residual<-cbind(xm.residual,values[,1]) Im.pseudo<-sapply(1:length(xm.pseudo),function(x){ min(xm.residual[which(xm.residual[,x]==min(xm.residual[,x])),8])#8 is time index }) ##set additional variables b.pseudo_start<-1 b.pseudo_end<-0 fit.trigger<-FALSE while(fit.trigger==FALSE){ xm <- xm.pseudo[b.pseudo_start:(n.components + b.pseudo_end)] Im <- Im.pseudo[b.pseudo_start:(n.components + b.pseudo_end)] if(fit.advanced){ ##---------------------------------------------------------------## ##MC for fitting parameter ##make the fitting more stable by small variations of the parameters ##sample input parameters values from a normal distribution xm.MC<-sapply(1:length(xm),function(x){ xm.MC<-sample(rnorm(30,mean=xm[x],sd=xm[x]/10), replace=TRUE) }) Im.MC<-sapply(1:length(xm),function(x){ Im.MC<-sample(rnorm(30,mean=Im[x],sd=Im[x]/10), replace=TRUE) }) ##---------------------------------------------------------------## for(i in 1:length(xm.MC[,1])){ ##NLS ##try fit fit<-try(nls(y~eval(fit.function), trace=fit.trace, data=data.frame(x=values[,1],y=values[,2]), algorithm="port", start=list(Im=Im.MC[i,],xm=xm.MC[i,]),#end start values input stats::nls.control( maxiter=500 ),#end nls control lower=c(xm=min(values[,1]),Im=0), upper=c(xm=max(values[,1]),Im=max(values[,2]*1.1)) ),# nls silent=TRUE)# end try ##graphical output if(i==1){cat(paste("[fit_LMCurve()] >> advanced fitting attempt (#", b.pseudo_start,"): ",sep=""))} cat("*") if(inherits(fit,"try-error") == FALSE){break} }#end::forloop cat("\n") }else{ if(fit.method == "port") { fit <- try(nls( y ~ eval(fit.function), trace = fit.trace, data = data.frame(x = values[,1],y = values[,2]), algorithm = "port", start = list(Im = Im,xm = xm),#end start values input stats::nls.control(maxiter = 500), lower = c(xm = 0,Im = 0) ),# nls silent = TRUE) # end try }else if (fit.method == "LM") { ##re-name for method == "LM" names(Im) <- paste0("Im.", 1:n.components) names(xm) <- paste0("xm.", 1:n.components) start.list <- c(as.list(Im), as.list(xm)) lower <- vapply(start.list, function(x) { start.list[[x]] <- 0 }, FUN.VALUE = vector(mode = "numeric", length = 1)) fit <- try(minpack.lm::nlsLM( fit.formula(n.components), data = data.frame(x = values[,1], y = values[,2]), start = start.list, lower = lower, trace = fit.trace, control = minpack.lm::nls.lm.control(maxiter = 500) ), silent = TRUE) } }#endifelse::fit.advanced if(inherits(fit,"try-error")==FALSE){fit.trigger<-TRUE} else{ if((n.components+b.pseudo_end)==7){fit.trigger<-TRUE }else{ b.pseudo_start<-b.pseudo_start+1 b.pseudo_end<-b.pseudo_end+1 }#endif::maximum loops }#endif::try-error }#end:whileloop fit trigger }else{#endif::missing start values ##------------------------------------------------------------------------## fit<-try(nls(y~eval(fit.function), trace=fit.trace, data.frame(x=values[,1],y=values[,2]), algorithm="port", start=list(Im=start_values[,1],xm=start_values[,2]),#end start values input stats::nls.control(maxiter = 500), lower=c(xm=0,Im=0), #upper=c(xm=max(x),Im=max(y)*1.1)# set lower boundaries for components ), outFile = stdout() # redirect error messages so they can be silenced ) # end try }#endif::startparameter ##------------------------------------------------------------------------## ##grep parameters if(inherits(fit,"try-error")==FALSE){ parameters<-coef(fit) ##write parameters in vectors and order parameters Im<-parameters[1:(length(parameters)/2)] Im.names <- names(Im) xm<-parameters[(1+(length(parameters)/2)):length(parameters)] xm.names <- names(xm) ##order parameters o <- order(xm) xm <- xm[o] names(xm) <- xm.names Im <- Im[o] names(Im) <- Im.names if (verbose){ ##print rough fitting information - use the nls() control for more information writeLines("\n[fit_LMCurve()]") writeLines(paste("\nFitting was done using a ",n.components, "-component function:\n",sep="")) ##print parameters print(c(xm, Im)) #print some additional information writeLines("\n(equation used for fitting according to Kitis & Pagonis, 2008)") }#end if ##============================================================================## ## Additional Calculations ##============================================================================## ##calculate stimulation intensity Schmidt (2008) ##Energy - E = h*v h<-6.62606957e-34 #in W*s^2 - Planck constant ny<-299792458/(LED.wavelength/10^9) #frequency of the light E<-h*ny ##transform LED.power in W/cm^2 LED.power<-LED.power/1000 stimulation_intensity<-LED.power/E ##calculate b and n from the equation of Bulur(1996) to compare results ##Using Equation 5 and 6 from Kitis (2008) b<-as.vector(max(values[,1])/xm^2) #detrapping probability n0<-as.vector((Im/exp(-0.5))*xm) ##CALCULATE 1- sigma CONFIDENCE INTERVAL ##------------------------------------------------------------------------## b.error <- rep(NA, n.components) n0.error <- rep(NA, n.components) if(fit.calcError){ ##option for confidence interval values.confint <- try(stats::confint(fit, level = 0.68), silent = TRUE) if(!inherits(values.confint, "try-error")) { Im.confint <- values.confint[1:(length(values.confint[, 1]) / 2), ] xm.confint <- values.confint[((length(values.confint[,1])/2)+1):length(values.confint[,1]),] ##error calculation b.error < -as.vector(abs((max(values[,1])/xm.confint[,1]^2)-(max(values[,1])/xm.confint[,2]^2))) n0.error <- as.vector(abs(((Im.confint[,1]/exp(-0.5))*xm.confint[,1]) - ((Im.confint[,2]/exp(-0.5))*xm.confint[,2]))) } else { .throw_warning("The computation of the parameter confidence intervals ", "failed. Please try to run stats::confint() manually ", "on the $fit output object") } } ##------------------------------------------------------------------------## ##calculate photoionisation cross section and print on terminal ##using EQ (5) in Kitis cs<-as.vector((max(values[,1])/xm^2)/stimulation_intensity) rel_cs<-round(cs/cs[1],digits=4) ##coefficient of determination after law RSS <- sum(residuals(fit)^2) #residual sum of squares TSS <- sum((values[,2] - mean(values[,2]))^2) #total sum of squares pR<-round(1-RSS/TSS,digits=4) ##============================================================================## ## COMPONENT TO SUM CONTRIBUTION MATRIX ##============================================================================## ##+++++++++++++++++++++++++++++++ ##set matrix ##set polygon matrix for optional plot output component.contribution.matrix <- matrix(NA, nrow = length(values[,1]), ncol = (2*length(xm)) + 2) ##set x-values component.contribution.matrix[,1] <- values[,1] component.contribution.matrix[,2] <- rev(values[,1]) ##+++++++++++++++++++++++++++++++ ##set 1st polygon ##1st polygon (calculation) y.contribution_first <- (exp(0.5)*Im[1]*values[,1]/ xm[1]*exp(-values[,1]^2/(2*xm[1]^2))/ (eval(fit.function))*100) ##avoid NaN values (might happen with synthetic curves) y.contribution_first[is.nan(y.contribution_first)==TRUE] <- 0 ##set values in matrix component.contribution.matrix[,3] <- 100 component.contribution.matrix[,4] <- 100-rev(y.contribution_first) ##+++++++++++++++++++++++++++++++ ##set polygons in between ##polygons in between (calculate and plot) if (length(xm)>2){ y.contribution_prev <- y.contribution_first i<-2 ##matrix stepping k <- seq(3, ncol(component.contribution.matrix), by=2) while (i<=length(xm)-1) { y.contribution_next<-(exp(0.5)*Im[i]*values[,1]/ xm[i]*exp(-values[,1]^2/(2*xm[i]^2))/ (eval(fit.function))*100) ##avoid NaN values y.contribution_next[is.nan(y.contribution_next)==TRUE] <- 0 ##set values in matrix component.contribution.matrix[, k[i]] <- 100-y.contribution_prev component.contribution.matrix[, k[i]+1] <- rev(100-y.contribution_prev- y.contribution_next) y.contribution_prev <- y.contribution_prev + y.contribution_next i<-i+1 }#end while loop }#end if ##+++++++++++++++++++++++++++++++ ##set last polygon ##last polygon (calculation) y.contribution_last<-(exp(0.5)*Im[length(xm)]*values[,1]/ xm[length(xm)]*exp(-values[,1]^2/ (2*xm[length(xm)]^2))/ (eval(fit.function))*100) ##avoid NaN values y.contribution_last[is.nan(y.contribution_last)==TRUE]<-0 component.contribution.matrix[,((2*length(xm))+1)] <- y.contribution_last component.contribution.matrix[,((2*length(xm))+2)] <- 0 ##change names of matrix to make more easy to understand component.contribution.matrix.names <- c("x", "rev.x", paste(c("y.c","rev.y.c"),rep(1:n.components,each=2), sep="")) ##calculate area for each component, for each time interval component.contribution.matrix.area <- sapply( seq(3,ncol(component.contribution.matrix),by=2), function(x){ matrixStats::rowDiffs(cbind(rev(component.contribution.matrix[,(x+1)]), component.contribution.matrix[,x])) }) ##append to existing matrix component.contribution.matrix <- cbind( component.contribution.matrix, component.contribution.matrix.area, rowSums(component.contribution.matrix.area) ) ##set final column names colnames(component.contribution.matrix) <- c( component.contribution.matrix.names, paste(c("cont.c"),rep(1:n.components,each=1), sep=""), "cont.sum") ##============================================================================## ## Terminal Output (advanced) ##============================================================================## if (verbose){ ##write fill lines writeLines("------------------------------------------------------------------------------") writeLines("(1) Corresponding values according to the equation in Bulur, 1996 for b and n0:\n") for (i in 1:length(b)){ writeLines(paste("b",i," = ",format(b[i],scientific=TRUE)," +/- ",format(b.error[i],scientific=TRUE),sep="")) writeLines(paste("n0",i," = ",format(n0[i],scientific=TRUE)," +/- ",format(n0.error[i],scientific=TRUE),"\n",sep="")) }#end for loop ##write photoionisation cross section on terminal for (i in 1:length(cs)){ writeLines(paste("cs from component.",i," = ",format(cs[i],scientific=TRUE, digits=4), " cm^2", "\t >> relative: ",round(cs[i]/cs[1],digits=4),sep="")) }#end for loop writeLines(paste( "\n(stimulation intensity value used for calculation: ",format(stimulation_intensity,scientific=TRUE)," 1/s 1/cm^2)",sep="")) writeLines("(errors quoted as 1-sigma uncertainties)") writeLines("------------------------------------------------------------------------------\n") #sum of squares writeLines(paste("pseudo-R^2 = ",pR,sep="")) }#end if ##============================================================================## ## COMPOSE RETURN VALUES (data.frame) ##============================================================================## ##write output table if values exists if (exists("fit")){ ##set data.frame for a max value of 7 components output.table <- data.frame(NA,NA,NA,NA,NA,NA,NA,NA, NA,NA,NA,NA,NA,NA,NA,NA, NA,NA,NA,NA,NA,NA,NA,NA, NA,NA,NA,NA,NA,NA,NA,NA, NA,NA,NA,NA,NA,NA,NA,NA, NA,NA,NA,NA,NA,NA,NA,NA, NA,NA,NA,NA,NA,NA,NA,NA) output.tableColNames<-c("Im1","xm1", "b1","b1.error","n01","n01.error", "cs1","rel_cs1", "Im2","xm2", "b2","b2.error","n02","n02.error", "cs2","rel_cs2", "Im3","xm3", "b3","b3.error","n03","n03.error", "cs3","rel_cs3", "Im4","xm4", "b4","b4.error","n04","n04.error", "cs4","rel_cs4", "Im5","xm5", "b5","b5.error","n05","n05.error", "cs5","rel_cs5", "Im6","xm6", "b6","b6.error","n06","n06.error", "cs6","rel_cs6", "Im7","xm7", "b7","b7.error","n07","n07.error", "cs7","rel_cs7") ##write components in output table i<-0 k<-1 while(i<=n.components*8){ output.table[1,i+1]<-Im[k] output.table[1,i+2]<-xm[k] output.table[1,i+3]<-b[k] output.table[1,i+4]<-b.error[k] output.table[1,i+5]<-n0[k] output.table[1,i+6]<-n0.error[k] output.table[1,i+7]<-cs[k] output.table[1,i+8]<-rel_cs[k] i<-i+8 k<-k+1 } ##add pR and n.components output.table<-cbind(sample_ID,sample_code,n.components,output.table,pR) ###alter column names colnames(output.table)<-c("ID","sample_code","n.components",output.tableColNames,"pseudo-R^2") ##----------------------------------------------------------------------------## }#endif::exists fit }else{ output.table <- NA component.contribution.matrix <- NA .throw_message("Fitting failed, plot without fit produced") } # Calculate component curves ---------------------------------------------- component_matrix <- NA if(!inherits(fit,"try-error")){ component_matrix <- matrix(NA, nrow = nrow(values), ncol = 2 + length(Im)) colnames(component_matrix) <- c("TIME", "SUM", paste("COMP_", 1:length(Im))) component_matrix[, 1] <- values[, 1] component_matrix[, 2] <- eval(fit.function) ## add single components for(i in 1:length(Im)){ component_matrix[, 2 + i] <- exp(0.5) * Im[i] * values[, 1] / xm[i] * exp(-values[, 1] ^ 2 / (2 * xm[i] ^ 2)) } } # Plotting ---------------------------------------------------------------- if(plot){ ##cheat the R check routine x <- NULL; rm(x) ##grep package colour gallery col <- get("col", pos = .LuminescenceEnv) ##change xlim values in case of the log plot the avoid problems if((log == "x" | log == "xy") && xlim[1] == 0){ .throw_warning("'xlim' changed to avoid 0 values for log-scale") xlim <- c(2^0.5/2 * max(values[,1])/length(values[,1]), xlim[2]) } ##set plot frame layout(matrix(c(1,2,3),3,1, byrow=TRUE),c(1.6,1,1), c(1,0.3,0.4),TRUE) par(oma = c(1,1,1,1), mar = c(0,4,3,0), cex=cex) ##==upper plot==## ##open plot area plot_check <- try(plot( NA, NA, xlim = xlim, ylim = ylim, xlab = "", xaxt = "n", main = main, log = log, ylab = ylab ), silent = TRUE) if (is(plot_check, "try-error")) { ## reset the graphic device if plotting failed .throw_message("Figure margins too large or plot area too small, ", "nothing plotted") grDevices::dev.off() } else { mtext(side=3,sample_code,cex=0.8*cex) ##plotting measured signal points(values[, 1], values[, 2], pch = 20, col = rgb(0.4, 0.4, 0.4, 0.5)) ##==pseudo curve==##------------------------------------------------------# ##curve for used pseudo values if(inherits(fit,"try-error")==TRUE & missing(start_values)==TRUE){ fit.function<-fit.equation(Im.i=1:n.components,xm.i=1:n.components) Im<-Im.pseudo[1:n.components] xm<-xm.pseudo[1:n.components] ##draw pseudo curve lines(values[,1],eval(fit.function), lwd=2, col="red", lty=2) axis(side=1) mtext(side=1,xlab, cex=.9*cex,line=2) mtext(side=4,paste(n.components, " component pseduo function is shown",sep=""),cex=0.7, col="blue") ##draw information text on plot text(min(values[,1]),max(values[,2]),"FITTING ERROR!",pos=4) ##additional legend legend("topright",c("pseudo sum function"),lty=2,lwd=2,col="red",bty="n") } ##==pseudo curve==##------------------------------------------------------## ##plot sum function if(inherits(fit,"try-error")==FALSE){ lines(values[,1],eval(fit.function), lwd=2, col="black") legend.caption<-"sum curve" curve.col<-1 ##plot signal curves ##plot curve for additional parameters for (i in 1:length(xm)) { curve(exp(0.5)*Im[i]*x/xm[i]*exp(-x^2/(2*xm[i]^2)),col=col[i+1], lwd=2,add=TRUE) legend.caption<-c(legend.caption,paste("component ",i,sep="")) curve.col<-c(curve.col,i+1) } ## plot legend legend.pos <- "topright" if ((log == "x" || log == "xy") && input.dataType != "pLM") legend.pos <- "topleft" legend(legend.pos, legend.caption, lty = 1, lwd = 2, bty = "n", col = col[curve.col]) ##==lower plot==## ##plot residuals par(mar=c(4.2,4,0,0)) plot(values[,1],residuals(fit), xlim=xlim, xlab=xlab, type="l", col="grey", ylab="Residual", lwd=2, log=log) ##ad 0 line abline(h=0) ##------------------------------------------------------------------------# ##++component to sum contribution plot ++## ##------------------------------------------------------------------------# ##plot component contribution to the whole signal #open plot area par(mar=c(4,4,3.2,0)) plot(NA,NA, xlim=xlim, ylim=c(0,100), ylab="Contribution [%]", xlab=xlab, main="Component contribution to sum curve", log=if(log=="xy"){"x"}else{log}) stepping <- seq(3,length(component.contribution.matrix),2) for(i in 1:length(xm)){ polygon(c(component.contribution.matrix[,1], component.contribution.matrix[,2]), c(component.contribution.matrix[,stepping[i]], component.contribution.matrix[,stepping[i]+1]), col = col[i+1]) } rm(stepping) ##------------------------------------------------------------------------## }#end if try-error for fit if (fun == TRUE) sTeve() # nocov } # end if (plot_check) } ##----------------------------------------------------------------------------- ##remove objects try(unlist("parameters")) ##============================================================================# ## Return Values ##============================================================================# if (!method_control$export.comp.contrib.matrix) { component.contribution.matrix <- NA } newRLumResults.fit_LMCurve <- set_RLum( class = "RLum.Results", data = list( data = output.table, fit = fit, component_matrix = component_matrix, component.contribution.matrix = list(component.contribution.matrix) ), info = list(call = sys.call()) ) invisible(newRLumResults.fit_LMCurve) } Luminescence/R/merge_RLum.Analysis.R0000644000176200001440000000767514762554470017065 0ustar liggesusers#' Merge function for RLum.Analysis S4 class objects #' #' Function allows merging of RLum.Analysis objects and adding of allowed #' objects to an RLum.Analysis. #' #' This function simply allows to merge [RLum.Analysis-class] #' objects. Moreover, other [RLum-class] objects can be added #' to an existing [RLum.Analysis-class] object. Supported objects #' to be added are: [RLum.Data.Curve-class], #' [RLum.Data.Spectrum-class] and #' [RLum.Data.Image-class]. #' #' The order in the new [RLum.Analysis-class] object is the object #' order provided with the input list. #' #' @param objects [list] of [RLum.Analysis-class] (**required**): #' list of S4 objects of class `RLum.Analysis`. Furthermore other objects of #' class [RLum-class] can be added, see details. #' #' @return Return an [RLum.Analysis-class] object. #' #' @note #' The information for the slot 'protocol' is taken from the first #' [RLum.Analysis-class] object in the input list. Therefore at #' least one object of type [RLum.Analysis-class] has to be provided. #' #' @section Function version: 0.2.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [merge_RLum], [RLum.Analysis-class], [RLum.Data.Curve-class], #' [RLum.Data.Spectrum-class], [RLum.Data.Image-class], [RLum-class] #' #' #' @keywords utilities internal #' #' @examples #' #' #' ##merge different RLum objects from the example data #' data(ExampleData.RLum.Analysis, envir = environment()) #' data(ExampleData.BINfileData, envir = environment()) #' #' object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) #' curve <- get_RLum(object)[[2]] #' #' temp.merged <- merge_RLum.Analysis(list(curve, IRSAR.RF.Data, IRSAR.RF.Data)) #' #' @md #' @export merge_RLum.Analysis<- function( objects ) { .set_function_name("merge_RLum.Analysis") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(objects, "list") .validate_not_empty(objects) ##check if object is of class RLum temp.class.test <- sapply(objects, function(x) { .validate_class(x, "RLum", name = "All elements of 'object'") class(x)[1] }) ##check if at least one object of RLum.Analysis is provided if(!"RLum.Analysis"%in%temp.class.test){ .throw_error("At least one input object in the list ", "has to be of class 'RLum.Analysis'") } # Merge objects ------------------------------------------------------------------------------- ##(0) get recent environment to later set variable temp.meta.data.first temp.environment <- environment() temp.meta.data.first <- NA; rm(temp.meta.data.first) #to avoid problems with the R check routine ##(1) collect all elements in a list temp.element.list <- unlist(lapply(1:length(objects), function(x){ .validate_class(objects[[x]], c("RLum.Analysis", "RLum.Data")) ##Depending on the element the right functions is used if (inherits(objects[[x]], "RLum.Analysis")) { ##grep export meta data from the first RLum.Analysis objects an write if(!exists("temp.meta.data.first")){ assign("temp.meta.data.first", objects[[x]]@protocol, envir = temp.environment) } ##return to list get_RLum(objects[[x]]) } else { ## RLum.Data.Curve, RLum.Data.Image, RLum.Data.Spectrum ##return to list objects[[x]] } })) # Build new RLum.Analysis object -------------------------------------------------------------- temp.new.RLum.Analysis <- set_RLum( class = "RLum.Analysis", originator = "merge_RLum.Analysis", records = temp.element.list, protocol = temp.meta.data.first, info = unlist(lapply(objects, function(x) { x@info }), recursive = FALSE), .pid = unlist(lapply(objects, function(x) { x@.uid })) ) # Return object ------------------------------------------------------------------------------- return( temp.new.RLum.Analysis) } Luminescence/R/calc_AliquotSize.R0000644000176200001440000004072114762554470016465 0ustar liggesusers#' @title Estimate the amount of grains on an aliquot #' #' @description #' Estimate the number of grains on an aliquot. Alternatively, the packing #' density of an aliquot is computed. #' #' This function can be used to either estimate the number of grains on an #' aliquot or to compute the packing density depending on the arguments #' provided. #' #' The following function is used to estimate the number of grains `n`: #' #' \deqn{n = (\pi*x^2)/(\pi*y^2)*d} #' #' where `x` is the radius of the aliquot size (microns), `y` is the mean #' radius of the mineral grains (mm) and `d` is the packing density #' (value between 0 and 1). #' #' **Packing density** #' #' The default value for `packing.density` is 0.65, which is the mean of #' empirical values determined by Heer et al. (2012) and unpublished data from #' the Cologne luminescence laboratory. If `packing.density = "Inf"` a maximum #' density of \eqn{\pi/\sqrt12 = 0.9068\ldots} is used. However, note that #' this value is not appropriate as the standard preparation procedure of #' aliquots resembles a PECC (*"Packing Equal Circles in a Circle"*) problem #' where the maximum packing density is asymptotic to about 0.87. #' #' **Monte Carlo simulation** #' #' The number of grains on an aliquot can be estimated by Monte Carlo simulation #' when setting `MC = TRUE`. Each of the parameters necessary to calculate #' `n` (`x`, `y`, `d`) are assumed to be normally distributed with means #' \eqn{\mu_x, \mu_y, \mu_d} and standard deviations \eqn{\sigma_x, \sigma_y, \sigma_d}. #' #' For the mean grain size random samples are taken first from #' \eqn{N(\mu_y, \sigma_y)}, where \eqn{\mu_y = mean.grain.size} and #' \eqn{\sigma_y = (max.grain.size-min.grain.size)/4} so that 95% of all #' grains are within the provided the grain size range. This effectively takes #' into account that after sieving the sample there is still a small chance of #' having grains smaller or larger than the used mesh sizes. For each random #' sample the mean grain size is calculated, from which random subsamples are #' drawn for the Monte Carlo simulation. #' #' The packing density is assumed #' to be normally distributed with an empirically determined \eqn{\mu = 0.65} #' (or provided value) and \eqn{\sigma = 0.18}. The normal distribution is #' truncated at `d = 0.87` as this is approximately the maximum packing #' density that can be achieved in PECC problem. #' #' The sample diameter has #' \eqn{\mu = sample.diameter} and \eqn{\sigma = 0.2} to take into account #' variations in sample disc preparation (i.e. applying silicon spray to the #' disc). A lower truncation point at `x = 0.5` is used, which assumes #' that aliquots with smaller sample diameters of 0.5 mm are discarded. #' Likewise, the normal distribution is truncated at 9.8 mm, which is the #' diameter of the sample disc. #' #' For each random sample drawn from the #' normal distributions the amount of grains on the aliquot is calculated. By #' default, `10^5` iterations are used, but can be reduced/increased with #' `MC.iter` (see `...`). The results are visualised in a bar- and #' boxplot together with a statistical summary. #' #' @param grain.size [numeric] (**required**): #' mean grain size (microns) or a range of grain sizes from which the #' mean grain size is computed (e.g. `c(100,200)`). #' #' @param sample.diameter [numeric] (**required**): #' diameter (mm) of the targeted area on the sample carrier. #' #' @param packing.density [numeric] (*with default*): #' empirical value for mean packing density. \cr #' If `packing.density = "Inf"` a hexagonal structure on an infinite plane with #' a packing density of \eqn{0.906\ldots} is assumed. #' #' @param MC [logical] (*optional*): #' if `TRUE` the function performs a Monte Carlo simulation for estimating the #' amount of grains on the sample carrier and assumes random errors in grain #' size distribution and packing density. Requires a vector with min and max #' grain size for `grain.size`. For more information see details. #' #' @param grains.counted [numeric] (*optional*): #' grains counted on a sample carrier. If a non-zero positive integer is provided this function #' will calculate the packing density of the aliquot. If more than one value is #' provided the mean packing density and its standard deviation is calculated. #' Note that this overrides `packing.density`. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param ... further arguments to pass (`main, xlab, MC.iter`). #' #' @return #' Returns a terminal output. In addition an #' [RLum.Results-class] object is returned containing the #' following element: #' #' \item{.$summary}{[data.frame] summary of all relevant calculation results.} #' \item{.$args}{[list] used arguments} #' \item{.$call}{[call] the function call} #' \item{.$MC}{[list] results of the Monte Carlo simulation} #' #' The output should be accessed using the function [get_RLum]. #' #' @section Function version: 0.31 #' #' @author Christoph Burow, University of Cologne (Germany) #' #' @references #' Duller, G.A.T., 2008. Single-grain optical dating of Quaternary #' sediments: why aliquot size matters in luminescence dating. Boreas 37, #' 589-612. #' #' Heer, A.J., Adamiec, G., Moska, P., 2012. How many grains #' are there on a single aliquot?. Ancient TL 30, 9-16. #' #' **Further reading** #' #' Chang, H.-C., Wang, L.-C., 2010. A simple proof of Thue's #' Theorem on Circle Packing. [https://arxiv.org/pdf/1009.4322v1](), #' 2013-09-13. #' #' Graham, R.L., Lubachevsky, B.D., Nurmela, K.J., #' Oestergard, P.R.J., 1998. Dense packings of congruent circles in a circle. #' Discrete Mathematics 181, 139-154. #' #' Huang, W., Ye, T., 2011. Global #' optimization method for finding dense packings of equal circles in a circle. #' European Journal of Operational Research 210, 474-481. #' #' @examples #' #' ## Estimate the amount of grains on a small aliquot #' calc_AliquotSize(grain.size = c(100,150), sample.diameter = 1, MC.iter = 100) #' #' ## Calculate the mean packing density of large aliquots #' calc_AliquotSize(grain.size = c(100,200), sample.diameter = 8, #' grains.counted = c(2525,2312,2880), MC.iter = 100) #' #' @md #' @export calc_AliquotSize <- function( grain.size, sample.diameter, packing.density = 0.65, MC = TRUE, grains.counted, plot=TRUE, ... ) { .set_function_name("calc_AliquotSize") on.exit(.unset_function_name(), add = TRUE) ##==========================================================================## ## CONSISTENCY CHECK OF INPUT DATA ##==========================================================================## if (missing(grain.size) || length(grain.size) == 0 || length(grain.size) > 2) { .throw_error("Please provide the mean grain size or a range ", "of grain sizes (in microns)") } if(packing.density < 0 | packing.density > 1) { if(packing.density == "inf") { } else { .throw_error("'packing.density' expects values between 0 and 1") } } .validate_positive_scalar(sample.diameter) if (sample.diameter > 9.8) .throw_warning("A sample diameter of ", sample.diameter, " mm was ", "specified, but common sample discs are 9.8 mm in diameter") if(missing(grains.counted) == FALSE) { if(MC == TRUE) { MC = FALSE cat(paste("\nMonte Carlo simulation is only available for estimating the", "amount of grains on the sample disc. Automatically set to", "FALSE.\n")) } } if(MC == TRUE && length(grain.size) != 2) { .throw_error("'grain.size' must be a vector containing the min and max ", "grain size when using Monte Carlo simulations") } ##==========================================================================## ## ... ARGUMENTS ##==========================================================================## # set default parameters settings <- list(MC.iter = 10^4, verbose = TRUE) # override settings with user arguments settings <- modifyList(settings, list(...)) ##==========================================================================## ## CALCULATIONS ##==========================================================================## # calculate the mean grain size range.flag<- FALSE if(length(grain.size) == 2) { gs.range<- grain.size grain.size<- mean(grain.size) range.flag<- TRUE } # use ~0.907... from Thue's Theorem as packing density if(packing.density == "inf") { packing.density = pi/sqrt(12) } # function to calculate the amount of grains ## original formula: n <- ((pi * (sd / 2)^2) / (pi * (gs / 2000)^2)) * d calc_n <- function(sd, gs, d) { (1000 * sd / gs)^2 * d } # calculate the amount of grains on the aliquot if(missing(grains.counted) == TRUE) { n.grains<- calc_n(sample.diameter, grain.size, packing.density) ##========================================================================## ## MONTE CARLO SIMULATION if(MC == TRUE && range.flag == TRUE) { # create a random set of packing densities assuming a normal # distribution with the empirically determined standard deviation of # 0.18. d.mc<- rnorm(settings$MC.iter, packing.density, 0.18) # in a PECC the packing density can not be larger than ~0.87 d.mc[which(d.mc > 0.87)]<- 0.87 d.mc[which(d.mc < 0.25)]<- 0.25 # create a random set of sample diameters assuming a normal # distribution with an assumed standard deviation of # 0.2. For a more conservative estimate this is divided by 2. sd.mc<- rnorm(settings$MC.iter, sample.diameter, 0.2) # it is assumed that sample diameters < 0.5 mm either do not # occur, or are discarded. Either way, any smaller sample # diameter is capped at 0.5. # Also, the sample diameter can not be larger than the sample # disc, i.e. 9.8 mm. sd.mc[which(sd.mc <0.5)]<- 0.5 if (sample.diameter <= 9.8) sd.mc[which(sd.mc >9.8)]<- 9.8 # create random samples assuming a normal distribution # with the mean grain size as mean and half the range (min:max) # as standard deviation. For a more conservative estimate this # is further devided by 2, so half the range is regarded as # two sigma. gs.mc<- rnorm(settings$MC.iter, grain.size, diff(gs.range)/4) # draw random samples from the grain size spectrum (gs.mc) and calculate # the mean for each sample. This gives an approximation of the variation # in mean grain size on the sample disc gs.mc.sampleMean <- sapply(1:length(gs.mc), function(x) mean(sample(gs.mc, calc_n( sample(sd.mc, size = 1), grain.size, sample(d.mc, size = 1) ), replace = TRUE))) # calculate n for each MC data set MC.n <- apply(data.frame(sd.mc, gs.mc.sampleMean, d.mc), 1, function(x) calc_n(x[1], x[2], x[3])) # summarize MC estimates MC.q<- quantile(MC.n, c(0.05,0.95)) MC.n.kde<- density(MC.n, n = 10000) # apply student's t-test MC.t.test<- stats::t.test(MC.n) MC.t.lower<- MC.t.test["conf.int"]$conf.int[1] MC.t.upper<- MC.t.test["conf.int"]$conf.int[2] MC.t.se<- (MC.t.upper-MC.t.lower)/3.92 # get unweighted statistics from calc_Statistics() function MC.stats<- calc_Statistics(as.data.frame(cbind(MC.n,0.0001)))$unweighted } }#EndOf:estimate number of grains ##========================================================================## ## CALCULATE PACKING DENSITY if(missing(grains.counted) == FALSE) { area.container<- pi*sample.diameter^2 if(length(grains.counted) == 1) { area.grains<- (pi*(grain.size/1000)^2)*grains.counted packing.density<- area.grains/area.container } else { packing.densities<- length(grains.counted) for(i in 1:length(grains.counted)) { area.grains<- (pi*(grain.size/1000)^2)*grains.counted[i] packing.densities[i]<- area.grains/area.container } std.d<- sd(packing.densities) } } ##==========================================================================## ##TERMINAL OUTPUT ##==========================================================================## if (settings$verbose) { cat("\n [calc_AliquotSize]") cat(paste("\n\n ---------------------------------------------------------")) cat(paste("\n mean grain size (microns) :", grain.size)) cat(paste("\n sample diameter (mm) :", sample.diameter)) if(missing(grains.counted) == FALSE) { if(length(grains.counted) == 1) { cat(paste("\n counted grains :", grains.counted)) } else { cat(paste("\n mean counted grains :", round(mean(grains.counted)))) } } if(missing(grains.counted) == TRUE) { cat(paste("\n packing density :", round(packing.density,3))) } if(missing(grains.counted) == FALSE) { if(length(grains.counted) == 1) { cat(paste("\n packing density :", round(packing.density,3))) } else { cat(paste("\n mean packing density :", round(mean(packing.densities),3))) cat(paste("\n standard deviation :", round(std.d,3))) } } if(missing(grains.counted) == TRUE) { cat(paste("\n number of grains :", round(n.grains,0))) } if(MC == TRUE && range.flag == TRUE) { cat(paste(cat(paste("\n\n --------------- Monte Carlo Estimates -------------------")))) cat(paste("\n number of iterations (n) :", settings$MC.iter)) cat(paste("\n median :", round(MC.stats$median))) cat(paste("\n mean :", round(MC.stats$mean))) cat(paste("\n standard deviation (mean) :", round(MC.stats$sd.abs))) cat(paste("\n standard error (mean) :", round(MC.stats$se.abs, 1))) cat(paste("\n 95% CI from t-test (mean) :", round(MC.t.lower), "-", round(MC.t.upper))) cat(paste("\n standard error from CI (mean):", round(MC.t.se, 1))) cat(paste("\n ---------------------------------------------------------\n")) } else { cat(paste("\n ---------------------------------------------------------\n")) } } ##==========================================================================## ##RETURN VALUES ##==========================================================================## # prepare return values for mode: estimate grains if(missing(grains.counted) == TRUE) { summary<- data.frame(grain.size = grain.size, sample.diameter = sample.diameter, packing.density = packing.density, n.grains = round(n.grains,0), grains.counted = NA) } # prepare return values for mode: estimate packing density/densities if(missing(grains.counted) == FALSE) { # return values if only one value for counted.grains is provided if(length(grains.counted) == 1) { summary<- data.frame(grain.size = grain.size, sample.diameter = sample.diameter, packing.density = packing.density, n.grains = NA, grains.counted = grains.counted) } else { # return values if more than one value for counted.grains is provided summary<- data.frame(rbind(1:5)) colnames(summary)<- c("grain.size", "sample.diameter", "packing.density", "n.grains","grains.counted") for(i in 1:length(grains.counted)) { summary[i,]<- c(grain.size, sample.diameter, packing.densities[i], n.grains = NA, grains.counted[i]) } } } if(!MC) { MC.n<- NULL MC.stats<- NULL MC.n.kde<- NULL MC.t.test<- NULL MC.q<- NULL } if(missing(grains.counted)) grains.counted<- NA call<- sys.call() args<- as.list(sys.call())[-1] # create S4 object newRLumResults.calc_AliquotSize <- set_RLum( class = "RLum.Results", data = list( summary=summary, MC=list(estimates=MC.n, statistics=MC.stats, kde=MC.n.kde, t.test=MC.t.test, quantile=MC.q)), info = list(call=call, args=args)) ##=========## ## PLOTTING if(plot==TRUE) { try(plot_RLum.Results(newRLumResults.calc_AliquotSize, ...)) } # Return values invisible(newRLumResults.calc_AliquotSize) } Luminescence/R/write_RLum2CSV.R0000644000176200001440000002053214762554470015757 0ustar liggesusers#' @title Export RLum-objects to CSV #' #' @description This function exports [RLum-class]-objects to CSV-files using the R function #' [utils::write.table]. All [RLum-class]-objects are supported, but the #' export is lossy, i.e. the pure numerical values are exported only. Information #' that cannot be coerced to a [data.frame] or a [matrix] are discarded as well as #' metadata. #' #' @details However, in combination with the implemented import functions, nearly every #' supported import data format can be exported to CSV-files, this gives a great #' deal of freedom in terms of compatibility with other tools. #' #' **Input is a list of objects** #' #' If the input is a [list] of objects all explicit function arguments can be provided #' as [list]. #' #' @param object [RLum-class] or a [list] of `RLum` objects (**required**): #' objects to be written. Can be a [data.frame] if needed internally. #' #' @param path [character] (*optional*): #' character string naming folder for the output to be written. If nothing #' is provided `path` will be set to the working directory. #' **Note:** this argument is ignored when `export = FALSE`. #' #' @param prefix [character] (*with default*): #' optional prefix to name the files. This prefix is valid for all written files #' #' @param export [logical] (*with default*): #' enable/disable the file export. If set to `FALSE` nothing is written to #' the file connection, but a list comprising objects of type [data.frame] and [matrix] #' is returned instead. #' #' @param compact [logical] (*with default*): if `TRUE` (default) the output #' will be simpler but less comprehensive, that is not all elements in the #' objects will be fully broken down. This is in particular useful for writing #' `RLum.Results` objects to CSV files, as such objects can be rather complex #' and not all information are needed in a CSV file or can be meaningfully #' translated to CSV format. #' #' @param ... further arguments that will be passed to the function #' [utils::write.table]. All arguments except the argument `file` are supported #' #' @return #' The function returns either a CSV-file (or many of them) or for the #' option `export == FALSE` a list comprising objects of type [data.frame] and [matrix] #' #' @section Function version: 0.2.2 #' #' @author #' Sebastian Kreutzer, Geography & Earth Science, Aberystwyth University (United Kingdom) #' #' @seealso [RLum.Analysis-class], [RLum.Data-class], [RLum.Results-class], #' [utils::write.table] #' #' @keywords IO #' #' @examples #' #' ##transform values to a list (and do not write) #' data(ExampleData.BINfileData, envir = environment()) #' object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data)[[1]] #' write_RLum2CSV(object, export = FALSE) #' #' \dontrun{ #' #' ##create temporary filepath #' ##(for usage replace by own path) #' temp_file <- tempfile(pattern = "output", fileext = ".csv") #' #' ##write CSV-file to working directory #' write_RLum2CSV(temp_file) #' #' } #' #' @md #' @export write_RLum2CSV <- function( object, path = NULL, prefix = "", export = TRUE, compact = TRUE, ... ) { .set_function_name("write_RLum2CSV") on.exit(.unset_function_name(), add = TRUE) # Self-call ----------------------------------------------------------------------------------- ##this option allows to work on a list of RLum-objects if(is.list(object) && !is.data.frame(object)){ ## expand input arguments rep.length <- length(object) path <- .listify(path, rep.length) export <- .listify(export, rep.length) ##prefix ... create automatic prefix if nothing is provided prefix <- as.list(paste0(prefix[1], "[[",1:length(object),"]]_")) ## write list name to object for (i in seq_along(object)) attr(object[[i]], "list_name") <- names(object)[i] ##execute the self-call function temp <- lapply(seq_along(object), function(x) { write_RLum2CSV( object = object[[x]], path = path[[x]], prefix = prefix[[x]], export = export[[x]], ... ) }) ##this prevents that we get a list of NULL if(is.null(unlist(temp))){ return(NULL) }else{ return(temp) } } ## Integrity checks ------------------------------------------------------- .validate_class(object, c("RLum.Analysis", "RLum.Data.Curve", "RLum.Data.Image", "RLum.Data.Spectrum", "RLum.Results", "data.frame")) .validate_not_empty(object) ## check export path if (export == TRUE) { if (is.null(path)) { path <- getwd() message("[write_RLum2CSV()] Path automatically set to: ", path) } else if (!dir.exists(path)) { .throw_error("Directory provided via the argument 'path' does not exist") } } ## What do we need at the end of the day is a named list of data.frames or matrices we can export ## using the function write.table; the name of the list elements will become the file names ## extract all elements ... depending on the input if (inherits(object, "RLum.Analysis")) { ##tricky, we cannot use get_RLum() as the function lapply calls as.list() for an object! object_list <- lapply(object, function(x){get_RLum(x)}) ##change names of the list and produce the right format straight away names(object_list) <- paste0(1:length(object_list),"_",names(object)) } else if (inherits(object, "RLum.Data")) { ##get object and make list object_list <- list(get_RLum(object)) ##set new name names(object_list) <- paste0("1_",object@recordType) } else if (inherits(object, "RLum.Results")) { ##unlist what ever comes, but do not break structures like matrices, numerics and names <- names(object@data) ##get elements object_list <- lapply(object@data, function(e){ ##only run something on the list of it is worth it and pack it in the list if(inherits(e, "matrix") || inherits(e, "numeric") || inherits(e, "data.frame")) return(list(e)) ##unlist the rest until the end if(!compact) return(unlist(e)) ##now we return whatever we have return(e) }) ##now unlist again one level object_list <- unlist(object_list, recursive = FALSE) ##sort out objects we do not like and we cannot procede ... object_list_rm <- vapply(object_list, function(x) { inherits(x, "matrix") || inherits(x, "numeric") || inherits(x, "data.frame") }, vector(mode = "logical", length = 1)) ##remove unwanted objects object_list <- object_list[object_list_rm] ##set warning if(any(!object_list_rm)) .throw_warning(length(which(!object_list_rm)), " elements could not be converted to CSV") if (length(object_list) == 0) { .throw_error("No valid records in 'object'") } ##adjust the names names(object_list) <- paste0(1:length(object_list),"_",names(object_list)) } else if (inherits(object, "data.frame")) { object_list <- list(object) if(!is.null(attr(object, "filename"))) filename <- attr(object, "filename") else filename <- "" names(object_list) <- paste0("conv_", attr(object, "list_name"), filename) } # Export -------------------------------------------------------------------------------------- if(export){ ##set export settings for write.table export_settings.default <- list( append = FALSE, quote = TRUE, sep = ";", eol = "\n", na = "NA", dec = ".", row.names = FALSE, col.names = FALSE, qmethod = c("escape", "double"), fileEncoding = "" ) ##modify on demand export_settings <- modifyList(x = export_settings.default, val = list(...)) ##write files to file system for(i in 1:length(object_list)){ utils::write.table( x = object_list[[i]], file = paste0(path,"/", prefix, names(object_list)[i],".csv"), append = export_settings$append, quote = export_settings$quote, sep = export_settings$sep, eol = export_settings$eol, na = export_settings$na, dec = export_settings$dec, row.names = export_settings$row.names, col.names = export_settings$col.names, qmethod = export_settings$qmethod, fileEncoding = export_settings$fileEncoding) } }else{ return(object_list) } } Luminescence/R/internals_Thermochronometry.R0000644000176200001440000001651314762554470021043 0ustar liggesusers#' @title Import Thermochronometry Data #' #' @description #' Import data from thermochronometry experiments into R. #' This function is an adaption of the script `STAGE1, ExcelToStructure` by #' Benny Guralnik, 2014, modified to accept CSV files with the same structure #' as the original Excel files. #' #'@param file [character] (**required**): path to a CSV file; alternatively a #' [vector] of paths #' #'@param output_type [character] (*with default*): defines the output for the function, #'which can be either `"RLum.Results"` (the default) or a plain R list (`"list"`) #' #'@author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' #'@returns Depending on the setting of `output_type` it will be either a plain R [list] #'or an [RLum.Results-class] object with the following structure data elements #' #'`$data: ` #'`.. $ITL` : a [data.frame] with five columns, `SAMPLE`, `TEMP`, `TIME`, `LxTx`, `LxTx_ERROR` #'`.. $DRC` : a [data.frame] with five columns, `SAMPLE`, `ALQ`, `TIME`, `LxTx`, `LxTx_ERROR` #'`.. $FAD` : a [data.frame] with five columns, `SAMPLE`, `ALQ`, `TIME`, `LxTx`, `LxTx_ERROR` #' #'This refers to `$ITL`: Isothermal curves, `$DRC`: Dose-response curve, `$FAD`: Fading #' #'@md #'@noRd .import_ThermochronometryData <- function( file, output_type = "RLum.Results" ) { .set_function_name(".import_ThermochronometryData") on.exit(.unset_function_name(), add = TRUE) # Helper functions ------------------------------------------------------- ## consistently extract numerical data .extract_numerics <- function(x) { tmp <- suppressWarnings(as.numeric(na.exclude(as.numeric(x)))) if(length(tmp) == 0) tmp <- NA tmp } .validate_args(output_type, c("RLum.Results", "list")) ## define variable ka <- 1e+3 * 365 * 24 * 3600 # ka in seconds # Import ------------------------------------------------------------------ ## preset records records <- file[1] if (inherits(file, "character")) { if (grepl("xlsx?", tools::file_ext(file[1]), ignore.case = TRUE)) { .throw_error("XLS/XLSX format is not supported, use CSV instead") } ## import data from all files ... separate header and body tmp_records <- lapply(file, function(x) { if (!file.exists(x)) .throw_error("File does not exist") header <- data.table::fread(x, nrows = 3, select = c(1:5)) body <- data.table::fread(x, skip = 3, header = TRUE) list(as.data.frame(header), as.data.frame(body)) }) names(tmp_records) <- basename(tools::file_path_sans_ext(file)) ## compile records records <- lapply(tmp_records, function(x){ list( id = colnames(x[[1]][-1])[!grepl(pattern = "\\.\\.\\.[0-9]+", x = colnames(x[[1]])[-1])], params = list( natT = .extract_numerics(x[[1]][1,-1]), #natural temperature natDdot = .extract_numerics(x[[1]][2,-1]) / ka, #natural dose rate rawdata = lapply(seq(1,nrow(x[[2]]),2), function(y) { list( T = x[[2]][y, 2], # Temperature Ddot = x[[2]][y + 1, 2], # Instrument dose rate t = .extract_numerics(x[[2]][y, -c(2:4)]) * 1e+3, # Measurement time (irradiation or delay time) L = .extract_numerics(x[[2]][y + 1, -c(2:4)])/max(.extract_numerics(x[[2]][y + 1, -c(2:4)])) # normalise the luminescence signal data to the maximum ) }) )) }) ## assign originator to this list attr(records, "originator") <- ".import_ThermochronometryData " } # end CSV import ## if input is a list check what is coming in if(!inherits(records, "list") || is.null(attr(records, "originator")) || attr(records, "originator") != ".import_ThermochronometryData ") .throw_error("Input type not supported") # Create output ----------------------------------------------------------- if (output_type == "RLum.Results") { ## create data frame for each data type ## we will use the temperature to discriminate the records; everything ## with temperature < 15 is either for DRC or FAD, the rest ITL. ## here we safe the list index of each record type so that we can access those ## data later ## index -------- id_l <- lapply(records, function(x) { tmp <- cumsum(unlist(.get_named_list_element(x, "T")) > 15) names(tmp) <- NULL ## create index list list( DRC = which(tmp == 0), ITL = which(!duplicated(tmp))[-1], FAD = which(tmp == max(tmp))[-1]) }) ## now we create for each data type a data.frame in the ggplot2 accessible ## way ## DRC --------- DRC <- as.data.frame(data.table::rbindlist(lapply(seq_along(records), function(x) { ## extract variables ALQ <- seq_along(id_l[[x]]$DRC) TIME <- .get_named_list_element(records[[x]], "t")[id_l[[x]]$DRC] LxTx <- .get_named_list_element(records[[x]], "L")[id_l[[x]]$DRC] ## get length of each record n_length <- lengths(TIME) ## the number of rows are determined automatically data.frame( SAMPLE = names(records)[x], ALQ = as.numeric(mapply(rep, ALQ, n_length)), TIME = unlist(.get_named_list_element(records[[x]], "t")[id_l[[x]]$DRC]), LxTx = unlist(.get_named_list_element(records[[x]], "L")[id_l[[x]]$DRC]), LxTx_ERROR = NA) }))) ## ITL --------- ITL <- as.data.frame(data.table::rbindlist(lapply(seq_along(records), function(x) { ## extract variables TEMP <- .get_named_list_element(records[[x]], "T")[id_l[[x]]$ITL] TIME <- .get_named_list_element(records[[x]], "t")[id_l[[x]]$ITL] LxTx <- .get_named_list_element(records[[x]], "L")[id_l[[x]]$ITL] ## get length of each record n_length <- lengths(TIME) ## the number of rows are determined automatically data.frame( SAMPLE = names(records)[x], TEMP = unlist(mapply(rep, TEMP, n_length, SIMPLIFY = FALSE)), TIME = unlist(TIME), LxTx = unlist(LxTx), LxTx_ERROR = NA) }))) ## FAD --------- FAD <- as.data.frame(data.table::rbindlist(lapply(seq_along(records), function(x) { ## extract variables ALQ <- seq_along(id_l[[x]]$FAD) TIME <- .get_named_list_element(records[[x]], "t")[id_l[[x]]$FAD] LxTx <- .get_named_list_element(records[[x]], "L")[id_l[[x]]$FAD] ## get length of each record n_length <- lengths(TIME) ## the number of rows are determined automatically data.frame( SAMPLE = names(records)[x], ALQ = unlist(mapply(rep, ALQ, n_length)), TIME = unlist(.get_named_list_element(records[[x]], "t")[id_l[[x]]$FAD]), LxTx = unlist(.get_named_list_element(records[[x]], "L")[id_l[[x]]$FAD]), LxTx_ERROR = NA) }))) ## Ddot ---------- ## Ddot is only relevant for DRC data Ddot_DRC <- lapply(seq_along(records), function(x) { unlist(.get_named_list_element(records[[x]], "Ddot"))[id_l[[x]]$DRC] }) ##natDdot nat_Ddot <- unlist( lapply(records, .get_named_list_element, "natDdot"), recursive = FALSE) ## create RLum.Results object records <- set_RLum( class = "RLum.Results", data = list( DRC = DRC, ITL = ITL, FAD = FAD), info = list( call = sys.call(), sample_names = unique(names(records)), Ddot_DRC = Ddot_DRC, nat_Ddot = nat_Ddot) ) } ## always return records return(records) } Luminescence/R/RLum.Data-class.R0000644000176200001440000001617314762554470016070 0ustar liggesusers#' @title Class `"RLum.Data"` #' #' @description Generalized virtual data class for luminescence data. #' #' @name RLum.Data-class #' #' @docType class #' #' @section Objects from the Class: #' A virtual class: no objects can be created from it. #' #' @section Class version: 0.2.1 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum-class], [RLum.Data.Curve-class], #' [RLum.Data.Spectrum-class], [RLum.Data.Image-class] #' #' @keywords classes internal #' #' @examples #' #' showClass("RLum.Data") #' #' @md #' @export setClass("RLum.Data", contains = c("RLum", "VIRTUAL") ) ## add_metadata() ----------------------------------------------------------- #' @describeIn RLum.Data #' Add metadata entries to [RLum.Data-class] objects #' #' @param object (**required**) an object of class [RLum.Data-class] #' #' @param info_element [character] (**required**) name of the metadata field #' to add #' #' @param value (**required**) The value assigned to the selected elements #' of the metadata field. #' #' @keywords internal #' #' @md #' @export setMethod("add_metadata<-", signature = "RLum.Data", definition = function(object, info_element, value) { .set_function_name("add_metadata") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks --------------------------------------------- .validate_class(info_element, "character") .validate_length(info_element, 1) valid.names <- names(object@info) if (info_element %in% valid.names) { .throw_error("'info_element' already present, to modify it ", "you should use `replace_metadata()`") } ## add the metadata element object@info[[info_element]] <- value assign(x = deparse(substitute(object))[1], object) }) ## rename_metadata() -------------------------------------------------------- #' @describeIn RLum.Data #' Rename a metadata entry of [RLum.Data-class] objects #' #' @param object (**required**) an object of class [RLum.Data-class] #' #' @param info_element [character] (**required**) name of the metadata field #' to rename. #' #' @param value (**required**) The value assigned to the selected elements #' of the `info` slot. #' #' @keywords internal #' #' @md #' @export setMethod("rename_metadata<-", signature = "RLum.Data", definition = function(object, info_element, value) { .set_function_name("rename_metadata") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks --------------------------------------------- .validate_class(info_element, "character") .validate_length(info_element, 1) valid.names <- names(object@info) if (!info_element %in% valid.names) { .throw_error("'info_element' not recognised (", .collapse(info_element), "), valid terms are: ", .collapse(valid.names, quote = FALSE)) } ## rename the metadata element name.idx <- grep(info_element, valid.names) names(object@info)[name.idx] <- value assign(x = deparse(substitute(object))[1], object) }) ## replace_metadata() ------------------------------------------------------- #' @describeIn RLum.Data #' Replaces or removes metadata of [RLum.Data-class] objects #' #' @param object (**required**) an object of class [RLum.Data-class] #' #' @param info_element [character] (**required**) name of the metadata field #' to replace or remove #' #' @param subset [expression] (*optional*) logical expression to limit the #' substitution only to the selected subset of elements #' #' @param verbose [logical] (*with default*) enable/disable output to the #' terminal. #' #' @param value (**required**) The value assigned to the selected elements #' of the metadata field. If `NULL` the elements named in `info_element` #' will be removed. #' #' @keywords internal #' #' @md #' @export setMethod("replace_metadata<-", signature = "RLum.Data", definition = function(object, info_element, subset = NULL, verbose = TRUE, value) { .set_function_name("replace_metadata") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks --------------------------------------------- .validate_class(info_element, "character") valid.names <- names(object@info) not.found <- setdiff(info_element, valid.names) if (length(not.found) > 0) { .throw_error("'info_element' not recognised (", .collapse(not.found), "), valid terms are: ", .collapse(valid.names, quote = FALSE)) } ## select relevant rows sel <- TRUE if (!is.null(substitute(subset))) { ## assigning `NULL` indicates that we want to remove a field, ## but that is incompatible with choosing a subset of rows if (is.null(value)) { .throw_error("'subset' is incompatible with assigning NULL") } ## evaluate the expression to produce a selection sel <- tryCatch(eval( expr = substitute(subset), envir = object@info, enclos = parent.frame() ), error = function(e) { .throw_error("Invalid 'subset' expression, valid terms are: ", .collapse(valid.names, quote = FALSE)) }) if (!is.logical(sel)) { .throw_error("'subset' should contain a logical expression") } if (all(is.na(sel))) { sel <- FALSE } if (!any(sel)) { if (verbose) .throw_message("'subset' expression produced an ", "empty selection, nothing done") return(object) } } if (!is.null(substitute(subset))) { ## replace the metadata elements for (field in info_element) object@info[[field]][sel] <- value } else { ## remove the metadata elements object@info[info_element] <- value } assign(x = deparse(substitute(object))[1], object) }) ## view() ------------------------------------------------------------------- #' @describeIn RLum.Data #' #' View method for [RLum.Data-class] objects #' #' @param ... other arguments that might be passed #' #' @keywords internal #' #' @md #' @export setMethod("view", signature = "RLum.Data", definition = function(object, ...) { .set_function_name("view") on.exit(.unset_function_name(), add = TRUE) .validate_not_empty(object@info, name = "'info' slot") ## set title name <- list(...)$title if (is.null(name)) name <- deparse(substitute(object)) ## run view .view(x = object@info, title = name) }) Luminescence/R/calc_TLLxTxRatio.R0000644000176200001440000001464414762554470016357 0ustar liggesusers#'@title Calculate the Lx/Tx ratio for a given set of TL curves -beta version- #' #'@description Calculate Lx/Tx ratio for a given set of TL curves. #' #'@details #' **Uncertainty estimation** #' #' The standard errors are calculated using the following generalised equation: #' #' \deqn{SE_{signal} = abs(Signal_{net} * BG_f /BG_{signal})} #' #' where \eqn{BG_f} is a term estimated by calculating the standard deviation of the sum of #' the \eqn{L_x} background counts and the sum of the \eqn{T_x} background counts. However, #' if both signals are similar the error becomes zero. #' #' @param Lx.data.signal [RLum.Data.Curve-class] or [data.frame] (**required**): #' TL data (x = temperature, y = counts) (TL signal) #' #' @param Lx.data.background [RLum.Data.Curve-class] or [data.frame] (*optional*): #' TL data (x = temperature, y = counts). #' If no data are provided no background subtraction is performed. #' #' @param Tx.data.signal [RLum.Data.Curve-class] or [data.frame] (**required**): #' TL data (x = temperature, y = counts) (TL test signal) #' #' @param Tx.data.background [RLum.Data.Curve-class] or [data.frame] (*optional*): #' TL data (x = temperature, y = counts). #' If no data are provided no background subtraction is performed. #' #' @param signal.integral.min [integer] (**required**): #' channel number for the lower signal integral bound #' (e.g. `signal.integral.min = 100`) #' #' @param signal.integral.max [integer] (**required**): #' channel number for the upper signal integral bound #' (e.g. `signal.integral.max = 200`) #' #' @return #' Returns an S4 object of type [RLum.Results-class]. #' Slot `data` contains a [list] with the following structure: #' #' ``` #' $ LxTx.table #' .. $ LnLx #' .. $ LnLx.BG #' .. $ TnTx #' .. $ TnTx.BG #' .. $ Net_LnLx #' .. $ Net_LnLx.Error #' ``` #' #' @note #' **This function has still BETA status!** Please further note that a similar #' background for both curves results in a zero error and is therefore set to `NA`. #' #' @section Function version: 0.3.3 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) \cr #' Christoph Schmidt, University of Bayreuth (Germany) #' #' @seealso [RLum.Results-class], [analyse_SAR.TL] #' #' @keywords datagen #' #' @examples #' #' ##load package example data #' data(ExampleData.BINfileData, envir = environment()) #' #' ##convert Risoe.BINfileData into a curve object #' temp <- Risoe.BINfileData2RLum.Analysis(TL.SAR.Data, pos = 3) #' #' #' Lx.data.signal <- get_RLum(temp, record.id=1) #' Lx.data.background <- get_RLum(temp, record.id=2) #' Tx.data.signal <- get_RLum(temp, record.id=3) #' Tx.data.background <- get_RLum(temp, record.id=4) #' signal.integral.min <- 210 #' signal.integral.max <- 230 #' #' output <- calc_TLLxTxRatio( #' Lx.data.signal, #' Lx.data.background, #' Tx.data.signal, #' Tx.data.background, #' signal.integral.min, #' signal.integral.max) #' get_RLum(output) #' #' @md #' @export calc_TLLxTxRatio <- function( Lx.data.signal, Lx.data.background = NULL, Tx.data.signal, Tx.data.background = NULL, signal.integral.min, signal.integral.max ) { .set_function_name("calc_TLLxTxRatio") on.exit(.unset_function_name(), add = TRUE) ## Integrity tests -------------------------------------------------------- .validate_class(Lx.data.signal, c("data.frame", "RLum.Data.Curve")) ##check DATA TYPE differences if(is(Lx.data.signal)[1] != is(Tx.data.signal)[1]) .throw_error("Data types of Lx and Tx data differ") ##--------------------------------------------------------------------------## ## Type conversion (assuming that all input variables are of the same type) if(inherits(Lx.data.signal, "RLum.Data.Curve")){ Lx.data.signal <- as(Lx.data.signal, "matrix") Tx.data.signal <- as(Tx.data.signal, "matrix") if(!missing(Lx.data.background) && !is.null(Lx.data.background)) Lx.data.background <- as(Lx.data.background, "matrix") if(!missing(Tx.data.background) && !is.null(Tx.data.background)) Tx.data.background <- as(Tx.data.background, "matrix") } ##(d) - check if Lx and Tx curves have the same channel length if(length(Lx.data.signal[,2])!=length(Tx.data.signal[,2])){ .throw_error("Channel numbers differ for Lx and Tx data")} ##(e) - check if signal integral is valid if(signal.integral.min < 1 | signal.integral.max > length(Lx.data.signal[,2])){ .throw_error("'signal.integral' is not valid") } # Background Consideration -------------------------------------------------- LnLx.BG <- TnTx.BG <- NA ##Lx.data if(!is.null(Lx.data.background)) LnLx.BG <- sum(Lx.data.background[signal.integral.min:signal.integral.max, 2]) ##Tx.data if(!is.null(Tx.data.background)) TnTx.BG <- sum(Tx.data.background[signal.integral.min:signal.integral.max, 2]) # Calculate Lx/Tx values -------------------------------------------------- ## preset variables net_LnLx <- net_LnLx.Error <- net_TnTx <- net_TnTx.Error <- NA BG.Error <- NA ## calculate values LnLx <- sum(Lx.data.signal[signal.integral.min:signal.integral.max, 2]) TnTx <- sum(Tx.data.signal[signal.integral.min:signal.integral.max, 2]) ##calculate standard deviation of background if(!is.na(LnLx.BG) & !is.na(TnTx.BG)){ BG.Error <- sd(c(LnLx.BG, TnTx.BG)) if(BG.Error == 0) { .throw_warning("The background signals for Lx and Tx appear ", "to be similar, no background error was calculated") BG.Error <- NA } } ## calculate net LnLx if(!is.na(LnLx.BG)){ net_LnLx <- LnLx - LnLx.BG net_LnLx.Error <- abs(net_LnLx * BG.Error/LnLx.BG) } ## calculate net TnTx if(!is.na(TnTx.BG)){ net_TnTx <- TnTx - TnTx.BG net_TnTx.Error <- abs(net_TnTx * BG.Error/TnTx.BG) } ## calculate LxTx if(is.na(net_TnTx)){ LxTx <- LnLx/TnTx LxTx.Error <- NA }else{ LxTx <- net_LnLx/net_TnTx LxTx.Error <- abs(LxTx*((net_LnLx.Error/net_LnLx) + (net_TnTx.Error/net_TnTx))) } ##COMBINE into a data.frame temp.results <- data.frame( LnLx, LnLx.BG, TnTx, TnTx.BG, net_LnLx, net_LnLx.Error, net_TnTx, net_TnTx.Error, LxTx, LxTx.Error ) # Return values ----------------------------------------------------------- return(set_RLum( class = "RLum.Results", data = list(LxTx.table = temp.results), info = list(call = sys.call()) )) } Luminescence/R/apply_CosmicRayRemoval.R0000644000176200001440000003332214762554470017655 0ustar liggesusers#' @title Function to remove cosmic rays from an RLum.Data.Spectrum S4 class object #' #' @description The function provides several methods for cosmic-ray removal and spectrum #' smoothing [RLum.Data.Spectrum-class] objects and such objects embedded in [list] or #' [RLum.Analysis-class] objects. #' #' @details #' #' **`method = "Pych"`** #' #' This method applies the cosmic-ray removal algorithm described by Pych #' (2003). Some aspects that are different to the publication: #' #' - For interpolation between neighbouring values the median and not the mean is used. #' - The number of breaks to construct the histogram is set to: `length(number.of.input.values)/2` #' #' For further details see references below. #' #' #' **Other methods** #' Arguments supported through `...` #' \tabular{llll}{ #' METHOD \tab ARGUMENT \tab TYPE \tab REMARKS\cr #' `"smooth"` \tab `kind` \tab [character] \tab see [stats::smooth] \cr #' \tab `twiceit` \tab [logical] \tab see [stats::smooth] \cr #' `"smooth.spline"` \tab `spar` \tab [numeric] \tab see [stats::smooth.spline] \cr #' `"smooth_RLum"` \tab `k` \tab [numeric] \tab see [smooth_RLum]\cr #' \tab `fill` \tab [numeric] \tab see [smooth_RLum]\cr #' \tab `align` \tab [character] \tab see [smooth_RLum]\cr #' \tab `method` \tab [character] \tab see [smooth_RLum]\cr #'} #' #' #'**Best practice** #' #' There is no single silver-bullet-strategy for the cosmic-ray removal, because it depends #' on the characteristic of the detector and the chosen settings. For instance, #' high values for pixel binning will improve the light output, but also causes #' multiple pixels being affected a single cosmic-ray. The same is valid for #' longer integration times. The best strategy is to combine methods and ensure #' that the spectrum is not distorted on a case-to-case basis. #' #' **How to combine methods?** #' #' Different methods can be combined by applying the method repeatedly to the #' dataset (see example). #' #' @param object [RLum.Data.Spectrum-class] or [RLum.Analysis-class] (**required**): input #' object to be treated. This can be also provided as [list]. If an [RLum.Analysis-class] object #' is provided, only the [RLum.Data.Spectrum-class] objects are treated. Please note: this mixing of #' objects does not work for a list of `RLum.Data` objects. #' #' @param method [character] (*with default*): #' Defines method that is applied for cosmic ray removal. Allowed methods are #' `smooth`, the default, ([stats::smooth]), `smooth.spline` ([stats::smooth.spline]), #' `smooth_RLum` ([smooth_RLum]) and `Pych`. See details for further information. #' #' @param method.Pych.smoothing [integer] (*with default*): #' Smoothing parameter for cosmic ray removal according to Pych (2003). #' The value defines how many neighbouring values in each frame are used for smoothing #' (e.g., `2` means that the two previous and two following values are used). #' #' @param method.Pych.threshold_factor [numeric] (*with default*): #' Threshold for zero-bins in the histogram. Small values mean that more peaks #' are removed, but signal might be also affected by this removal. #' #' @param MARGIN [integer] (*with default*): #' on which part the function cosmic ray removal should be applied on: #' #' - 1 = along the time axis (line by line), #' - 2 = along the wavelength axis (column by column). #' #' **Note:** This argument currently only affects the methods `smooth` and `smooth.spline` #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param plot [logical] (*with default*): #' If `TRUE` the histograms used for the cosmic-ray removal are returned as plot #' including the used threshold. Note: A separate plot is returned for each frame! #' Currently only for `method = "Pych"` a graphical output is provided. #' #' @param ... further arguments and graphical parameters that will be passed #' to the [stats::smooth], [stats::smooth.spline] or [smooth_RLum]. See details for more #' information. #' #' @return Returns same object as input. #' #' @section Function version: 0.4.0 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Data.Spectrum-class], [RLum.Analysis-class], [stats::smooth], [stats::smooth.spline], #' [smooth_RLum] #' #' @references #' Pych, W., 2004. A Fast Algorithm for Cosmic-Ray Removal from #' Single Images. The Astronomical Society of the Pacific 116 (816), 148-153. #' \doi{10.1086/381786} #' #' @keywords manip #' #' @examples #' #' ##(1) - use with your own data and combine (uncomment for usage) #' ## run two times the default method and smooth with another method #' ## your.spectrum <- apply_CosmicRayRemoval(your.spectrum, method = "Pych") #' ## your.spectrum <- apply_CosmicRayRemoval(your.spectrum, method = "Pych") #' ## your.spectrum <- apply_CosmicRayRemoval(your.spectrum, method = "smooth") #' #' @md #' @export apply_CosmicRayRemoval <- function( object, method = "smooth", method.Pych.smoothing = 2, method.Pych.threshold_factor = 3, MARGIN = 2, verbose = FALSE, plot = FALSE, ... ) { .set_function_name("apply_CosmicRayRemoval") on.exit(.unset_function_name(), add = TRUE) # Self-call ---------------------------------------------------------------------------------- ##Black magic: The function recalls itself until all RLum.Data.Spectrum objects have been treated ##If you want to test the basics of the function please only use a single RLum.Data.Spectrum-object ##if it comes in as an RLum.Analysis object ... make a list out of it class_original <- NULL if(inherits(object, "RLum.Analysis")){ object <- list(object) class_original <- "RLum.Analysis" } ##handle the list and recall if(inherits(object, "list")){ results_list <- lapply(object, function(o){ ##preset objects record_id.spectra <- NULL ##RLum.Analysis if(inherits(o, "RLum.Analysis")){ ##get id of RLum.Data.Spectrum objects in this object record_id.spectra <- which( vapply(o@records, function(x) inherits(x, "RLum.Data.Spectrum"), logical(1))) ##rewrite o temp_o <- o@records[record_id.spectra] }else{ temp_o <- o } ##call function results <- do.call( what = apply_CosmicRayRemoval, args = c(list( object = temp_o, method = method, method.Pych.smoothing = method.Pych.smoothing, method.Pych.threshold_factor = method.Pych.threshold_factor, MARGIN = MARGIN, verbose = verbose, plot = plot), list(...))) ##combine in RLum.Analysis object if needed if(!is.null(record_id.spectra)){ o@records[record_id.spectra] <- results return(o) }else{ return(results) } }) ##final return, make sure that we return what we had as input if(!is.null(class_original)){ return(results_list[[1]]) }else{ return(results_list) } } ## Integrity checks ------------------------------------------------------- .validate_class(object, "RLum.Data.Spectrum") if (length(object@data) < 2) .throw_error("'object' contains no data") .validate_args(method, c("smooth", "smooth.spline", "smooth_RLum", "Pych")) ##deal with additional arguments extraArgs <- modifyList( x = list( kind = "3RS3R", twiceit = TRUE, spar = NULL, method = "median", k = NULL, fill = NA, align = "right"), val = list(...), keep.null = TRUE) # Apply methods -0------------------------------------------------------------ ## +++++++++++++++++++++++++++++++++++ (smooth) ++++++++++++++++++++++++++++## if(method == "smooth"){ ##apply smooth object.data.temp.smooth <- apply( X = object@data, MARGIN = MARGIN, FUN = stats::smooth, kind = extraArgs$kind[1], twiceit = extraArgs$twiceit[1] ) ## +++++++++++++++++++++++++++++++++++ (smooth.spline) +++++++++++++++++++++## }else if(method == "smooth.spline"){ ##write the function in a new function to acess the data more easily temp_smooth.spline <- function(x, spar){ stats::smooth.spline(x, spar = spar)$y } ##apply smooth.spline object.data.temp.smooth <- apply( X = object@data, MARGIN = MARGIN, FUN = temp_smooth.spline, spar = extraArgs$spar[1]) ## +++++++++++++++++++++++++++++++++++ (smooth_RLum) +++++++++++++++++++++## }else if(method == "smooth_RLum"){ object.data.temp.smooth <- apply( X = object@data, MARGIN = MARGIN, FUN = .smoothing, method = extraArgs$method[1], k = max(c(1, min(c(if(MARGIN == 1) ncol(object@data) else abs(nrow(object@data)-8), extraArgs$k[1])))), fill = extraArgs$fill[1], align = extraArgs$align[1]) ## remove BA if(MARGIN == 1 & is.na(extraArgs$fill[1])) { id_NA <- which(matrixStats::rowAnyNAs(object.data.temp.smooth)) if(length(id_NA) > 0) { object.data.temp.smooth <- object.data.temp.smooth[-id_NA, ,drop = FALSE] object@data <- object@data[,-id_NA, drop = FALSE] } } else if (MARGIN == 2 & is.na(extraArgs$fill[1])){ id_NA <- which(matrixStats::rowAnyNAs(object.data.temp.smooth)) if(length(id_NA) > 0) { object.data.temp.smooth <- object.data.temp.smooth[-id_NA, , drop = FALSE] object@data <- object@data[-id_NA,,drop = FALSE] } } ## +++++++++++++++++++++++++++++++++++ (Pych) ++++++++++++++++++++++++++++++## }else if(method == "Pych"){ ## grep data matrix object.data.temp <- object@data ## apply smoothing object.data.temp.smooth <- sapply(X = 1:ncol(object.data.temp), function(x){ ##(1) - calculate sd for each subframe temp.sd <- sd(object.data.temp[,x]) ##(2) - correct estimation of sd by 1-sigma clipping temp.sd.corr <- sd(object.data.temp[ object.data.temp[,x] >= (mean(object.data.temp[,x]) - temp.sd) & object.data.temp[,x] <= (mean(object.data.temp[,x]) + temp.sd) , x]) ##(3) - construct histogram of count distribution temp.hist <- hist(object.data.temp[,x], breaks = length(object.data.temp[,x])/2, plot = FALSE) ##(4) - find mode of the histogram (e.g. peak) temp.hist.max <- which.max(temp.hist$counts) ##(5) - find gaps in the histogram (bins with zero value) temp.hist.zerobin <- which(temp.hist$counts == 0) ##(5.1) ##select just values right from the peak temp.hist.zerobin <- temp.hist.zerobin[ (temp.hist.max[1] + 1):length(temp.hist.zerobin)] ##(5.2) ##select non-zerobins temp.hist.nonzerobin <- which(temp.hist$counts != 0) temp.hist.nonzerobin <- temp.hist.nonzerobin[ temp.hist.nonzerobin >= (temp.hist.zerobin[1]-1)] ##(6) - find the first gap which is wider than the threshold temp.hist.nonzerobin.diff <- diff( temp.hist$breaks[temp.hist.nonzerobin]) ## select the first value where the threshold is reached ## factor 3 is defined by Pych (2003) temp.hist.thres <- which( temp.hist.nonzerobin.diff >= method.Pych.threshold_factor * temp.sd.corr)[1] ##(7) - use counts above the threshold and recalculate values ## on all further values if(!is.na(temp.hist.thres)){ object.data.temp[,x] <- sapply(1:nrow(object.data.temp), function(n){ if(c(n + method.Pych.smoothing) <= nrow(object.data.temp) & (n - method.Pych.smoothing) >= 0){ ifelse( object.data.temp[n,x] >= temp.hist$breaks[temp.hist.thres], median(object.data.temp[(n-method.Pych.smoothing): (n+method.Pych.smoothing),x]), object.data.temp[n,x]) }else{ object.data.temp[n,x] } }) } ##(8) - return histogram used for the removal as plot if(plot){ plot(temp.hist, xlab = "Signal intensity [a.u.]", main = "Cosmic-ray removal histogram") abline(v = temp.hist$breaks[temp.hist.thres], col = "red") if(!is.na(temp.hist$breaks[temp.hist.thres])){ legend("topright", "threshold" ,lty = 1, lwd = 1, col = "red", bty = "n") mtext(side = 3, paste0("Frame: ", x, " (", colnames(object.data.temp)[x], ")")) }else{ mtext(side = 3, paste0("Frame: ", x, " (", colnames(object.data.temp)[x], ") - no threshold applied!")) } } ##(9) - return information on the amount of removed cosmic-rays if(verbose){ #sum up removed counts values above the threshold sum.corrected.channels <- try( sum(temp.hist$counts[temp.hist.thres:length(temp.hist$counts)]), silent = TRUE) if(is(sum.corrected.channels)[1] == "try-error"){sum.corrected.channels <- 0} cat("[apply_CosmicRayRemoval()] >> ") cat(paste(sum.corrected.channels, " channels corrected in frame ", x, "\n", sep = "")) } ##return object return(object.data.temp[,x]) })#end loop } ## Rotate matrix if required if(MARGIN[1] == 1) object.data.temp.smooth <- t(object.data.temp.smooth) # Correct row and column names -------------------------------------------- colnames(object.data.temp.smooth) <- colnames(object@data) rownames(object.data.temp.smooth) <- rownames(object@data) # Return Output------------------------------------------------------------ temp.output <- set_RLum( class = "RLum.Data.Spectrum", recordType = object@recordType, curveType = object@curveType, data = object.data.temp.smooth, info = object@info) invisible(temp.output) } Luminescence/R/analyse_ThermochronometryData.R0000644000176200001440000001237314762561642021271 0ustar liggesusers#' @title Analyse Thermochronometry Data #' #' @description Analyse thermochronometry data based on MatLab code written #' by XXX and XXX and XXX #' #' @details ##TODO #' #' @param object [character] (**required**): path to a CSV file ##TODO; #' alternatively a [vector] of paths #' #' @param ITL_model [character] (*with default*): type of model to fit, #' either `"GOK"` (default) or `"BTS"` #' #' @param plot [logical] (*with default*): enable/disable the plot output. #' #' @param verbose [logical] (*with default*): enable/disable output to the #' terminal. #' #' @param ... further parameters passed to [fit_IsothermalHolding] #' #' @section Function version: 0.1.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany), #' Svenja Riedesel, DTU Risø (Denmark) #' #' @keywords datagen internal #' #' @return #' An [RLum.Results-class] object is returned: ##TODO #' #' @seealso [analyse_FadingMeasurement], [fit_IsothermalHolding] #' #' @examples #' # example code ##TODO #' #' @noRd analyse_ThermochronometryData <- function( object, ITL_model = c("GOK", "BTS"), plot = TRUE, verbose = TRUE, ... ) { .set_function_name("analyse_ThermochronometryData") on.exit(.unset_function_name(), add = TRUE) ##TODO --- general ## - output of this function follows the suggestions from the MatLab code by Benny Gurlanik; however ## the implementation is R based ## - Excepted output ## - proposed a new format for a CSV file with data ... or even better ... in the long-term ## run the entire analysis in R only ## - later we have to think about two different modes of analysis ## - we want to pass certain parameters over to functions ## Integrity checks ------------------------------------------------------- ## for a start we only allow data in the format proposed by the MatLab script .validate_class(object, "character") .validate_args(ITL_model, c("GOK", "BTS")) .validate_logical_scalar(plot) .validate_logical_scalar(verbose) object <- .import_ThermochronometryData(object, output_type = "RLum.Results") sample_names <- object@info$sample_names ## prepare plot and reset to default on exit if(plot) { par_default <- par(no.readonly = TRUE) par(mfrow = c(1,3)) on.exit(par(par_default), add = TRUE) } ## Reminder: We have n samples in one Excel sheet ... each set will be analysed ## separately results_combined <- lapply(seq_along(sample_names), function(i) { # (1) Fading data ------------------------------------------------------------ ## get fading object for this particular sample FAD <- object@data$FAD[object@data$FAD$SAMPLE == sample_names[i],] ## extract the data we need (three columns) df_FAD <- FAD[,c("LxTx", "LxTx_ERROR", "TIME")] ## set NA values in LxTx error to 0 df_FAD[is.na(df_FAD[["LxTx_ERROR"]]),"LxTx_ERROR"] <- 0 results_FAD <- analyse_FadingMeasurement( object = df_FAD, verbose = FALSE, plot = plot, plot_singlePanels = 3, plot.trend = FALSE) # (2) ITL Data ------------------------------------------------------------ df_ITL <- object@data$ITL[object@data$ITL$SAMPLE == sample_names[i],] results_ITL <- fit_IsothermalHolding( data = df_ITL, ITL_model = ITL_model, rhop = results_FAD, plot = plot, verbose = verbose, ...) # (3) DRC Data ------------------------------------------------------------ ## get DRC data df_DRC <- object@data$DRC[object@data$DRC$SAMPLE == sample_names[i],] ## get DRC data in correct form df_DRC <- df_DRC[,c("TIME", "LxTx", "LxTx_ERROR", "ALQ")] df_DRC[is.na(df_DRC[["LxTx_ERROR"]]),"LxTx_ERROR"] <- 0 ## add dose rate if available if (!is.null(object@info$Ddot_DRC)) { Ddot_DRC <- object@info$Ddot_DRC[[i]] ## we have to do this aliquot wise for (d in unique(df_DRC[["ALQ"]])) { df_DRC[df_DRC[["ALQ"]] == d,"TIME"] <- df_DRC[df_DRC[["ALQ"]] == d, "TIME"] * Ddot_DRC[d] } ## adjust column names colnames(df_DRC) <- c("DOSE", colnames(df_DRC[-1])) } ## DRC fitting results_DRC <- suppressWarnings(plot_GrowthCurve( sample = df_DRC, mode = "alternate", xlab = if (any("DOSE" %in% colnames(df_DRC))) "Dose [Gy]" else "Dose [s]", cex.global = 0.65, output.plot = plot, main = sample_names[i], output.plotExtended = FALSE )) ## return single lists return(list(results_FAD, results_ITL, results_DRC)) }) ## merge results for each ## flatten list results_combined <- unlist(results_combined, recursive = TRUE) ## get originators (we will merge accordingly) originator <- vapply(results_combined, function(x) x@originator, character(1)) ## get list with merged results results_combined <- lapply(unique(originator), function(x) { merge_RLum(results_combined[originator == x]) }) names(results_combined) <- unique(originator) # Results ----------------------------------------------------------------- results <- set_RLum( class = "RLum.Results", data = list( FAD = results_combined[["analyse_FadingMeasurement"]], ITL = results_combined[["fit_IsothermalHolding"]], DRC = results_combined[["fit_DoseResponseCurve"]]), info = list( call = sys.call() )) return(results) } Luminescence/R/plot_DRTResults.R0000644000176200001440000005164714762554470016314 0ustar liggesusers#' @title Visualise dose recovery test results #' #' @description The function provides a standardised plot output for dose recovery test #' measurements. #' #' @details Procedure to test the accuracy of a measurement protocol to reliably #' determine the dose of a specific sample. Here, the natural signal is erased #' and a known laboratory dose administered which is treated as unknown. Then #' the De measurement is carried out and the degree of congruence between #' administered and recovered dose is a measure of the protocol's accuracy for #' this sample.\cr #' In the plot the normalised De is shown on the y-axis, i.e. obtained De/Given Dose. #' #' @param values [RLum.Results-class] or [data.frame] (**required**): #' input values containing at least De and De error. To plot #' more than one data set in one figure, a `list` of the individual data #' sets must be provided (e.g. `list(dataset.1, dataset.2)`). #' #' @param given.dose [numeric] (*optional*): #' given dose used for the dose recovery test to normalise data. #' If only one given dose is provided this given dose is valid for all input #' data sets (i.e., `values` is a list). Otherwise a given dose for each input #' data set has to be provided (e.g., `given.dose = c(100,200)`). #' If `given.dose` in `NULL` the values are plotted without normalisation #' (might be useful for preheat plateau tests). #' **Note:** Unit has to be the same as from the input values (e.g., Seconds or #' Gray). #' #' @param error.range [numeric]: #' symmetric error range in percent will be shown as dashed lines in the plot. #' Set `error.range` to 0 to void plotting of error ranges. #' #' @param preheat [numeric]: #' optional vector of preheat temperatures to be used for grouping the De values. #' If specified, the temperatures are assigned to the x-axis. #' #' @param boxplot [logical] (*with default*): #' plot values that are grouped by preheat temperature as boxplots. #' Only possible when `preheat` vector is specified. #' #' @param mtext [character]: #' additional text below the plot title. #' #' @param summary [character] (*optional*): #' adds numerical output to the plot. Can be one or more out of: #' - `"n"` (number of samples), #' - `"mean"` (mean De value), #' - `"weighted$mean"` (error-weighted mean), #' - `"median"` (median of the De values), #' - `"sd.rel"` (relative standard deviation in percent), #' - `"sd.abs"` (absolute standard deviation), #' - `"se.rel"` (relative standard error) and #' - `"se.abs"` (absolute standard error) #' #' and all other measures returned by the function [calc_Statistics]. #' #' @param summary.pos [numeric] or [character] (*with default*): #' optional position coordinates or keyword (e.g. `"topright"`) #' for the statistical summary. Alternatively, the keyword `"sub"` may be #' specified to place the summary below the plot header. However, this latter #' option in only possible if `mtext` is not used. #' #' @param legend [character] vector (*optional*): #' legend content to be added to the plot. #' #' @param legend.pos [numeric] or [character] (*with default*): #' optional position coordinates or keyword (e.g. `"topright"`) for the #' legend to be plotted. #' #' @param par.local [logical] (*with default*): #' use local graphical parameters for plotting, e.g. the plot is shown in one #' column and one row. If `par.local = FALSE`, global parameters are inherited, #' i.e. parameters provided via `par()` work #' #' @param na.rm [logical] (*with default*): indicating whether `NA` values are #' removed before plotting from the input data set #' #' @param ... further arguments and graphical parameters passed to [plot], supported are: #' `xlab`, `ylab`, `xlim`, `ylim`, `main`, `cex`, `las` and `pch`` #' #' @return A plot is returned. #' #' @note #' Further data and plot arguments can be added by using the appropriate R #' commands. #' #' @section Function version: 0.1.14 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Michael Dietze, GFZ Potsdam (Germany) #' #' @seealso [plot] #' #' @references #' Wintle, A.G., Murray, A.S., 2006. A review of quartz optically #' stimulated luminescence characteristics and their relevance in #' single-aliquot regeneration dating protocols. Radiation Measurements, 41, #' 369-391. #' #' @keywords dplot #' #' @examples #' #' ## read example data set and misapply them for this plot type #' data(ExampleData.DeValues, envir = environment()) #' #' ## plot values #' plot_DRTResults( #' values = ExampleData.DeValues$BT998[7:11,], #' given.dose = 2800, #' mtext = "Example data") #' #' ## plot values with legend #' plot_DRTResults( #' values = ExampleData.DeValues$BT998[7:11,], #' given.dose = 2800, #' legend = "Test data set") #' #' ## create and plot two subsets with randomised values #' x.1 <- ExampleData.DeValues$BT998[7:11,] #' x.2 <- ExampleData.DeValues$BT998[7:11,] * c(runif(5, 0.9, 1.1), 1) #' #' plot_DRTResults( #' values = list(x.1, x.2), #' given.dose = 2800) #' #' ## some more user-defined plot parameters #' plot_DRTResults( #' values = list(x.1, x.2), #' given.dose = 2800, #' pch = c(2, 5), #' col = c("orange", "blue"), #' xlim = c(0, 8), #' ylim = c(0.85, 1.15), #' xlab = "Sample aliquot") #' #' ## plot the data with user-defined statistical measures as legend #' plot_DRTResults( #' values = list(x.1, x.2), #' given.dose = 2800, #' summary = c("n", "weighted$mean", "sd.abs")) #' #' ## plot the data with user-defined statistical measures as sub-header #' plot_DRTResults( #' values = list(x.1, x.2), #' given.dose = 2800, #' summary = c("n", "weighted$mean", "sd.abs"), #' summary.pos = "sub") #' #' ## plot the data grouped by preheat temperatures #' plot_DRTResults( #' values = ExampleData.DeValues$BT998[7:11,], #' given.dose = 2800, #' preheat = c(200, 200, 200, 240, 240)) #' #' ## read example data set and misapply them for this plot type #' data(ExampleData.DeValues, envir = environment()) #' #' ## plot values #' plot_DRTResults( #' values = ExampleData.DeValues$BT998[7:11,], #' given.dose = 2800, #' mtext = "Example data") #' #' ## plot two data sets grouped by preheat temperatures #' plot_DRTResults( #' values = list(x.1, x.2), #' given.dose = 2800, #' preheat = c(200, 200, 200, 240, 240)) #' #' ## plot the data grouped by preheat temperatures as boxplots #' plot_DRTResults( #' values = ExampleData.DeValues$BT998[7:11,], #' given.dose = 2800, #' preheat = c(200, 200, 200, 240, 240), #' boxplot = TRUE) #' #' @md #' @export plot_DRTResults <- function( values, given.dose = NULL, error.range = 10, preheat, boxplot = FALSE, mtext, summary, summary.pos, legend, legend.pos, par.local = TRUE, na.rm = FALSE, ... ) { .set_function_name("plot_DRTResults") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_not_empty(values) ##avoid crash for wrongly set boxlot argument if(missing(preheat) & boxplot == TRUE){ boxplot <- FALSE .throw_warning("Option 'boxplot' requires a value in 'preheat', ", "reset to FALSE") } if(missing(summary) == TRUE) {summary <- NULL} if(missing(summary.pos) == TRUE) {summary.pos <- "topleft"} if(missing(legend.pos) == TRUE) {legend.pos <- "topright"} if(missing(mtext) == TRUE) {mtext <- ""} ## Homogenise and check input data if(is(values, "list") == FALSE) {values <- list(values)} for (i in seq_along(values)) { .validate_class(values[[i]], c("data.frame", "RLum.Results"), name = "'values'") if (inherits(values[[i]], "RLum.Results")) { val <- get_RLum(values[[i]])[, 1:2] if (is.null(val)) val <- NA values[[i]] <- val } } ## remove invalid records values[is.na(values)] <- NULL if (length(values) == 0) { .throw_error("No valid records in 'values'") } ## Check input arguments ---------------------------------------------------- for (i in seq_along(values)) { ##check for preheat temperature values if(missing(preheat) == FALSE) { if(length(preheat) != nrow(values[[i]])){ .throw_error("Number of preheat temperatures != De values") } } ##remove NA values; yes Micha, it is not that simple if(na.rm == TRUE){ ##currently we assume that all input data sets comprise a similar of data if(!missing(preheat) & i == length(values)){ ## remove preheat entries corresponding to NA values preheat <- preheat[!is.na(values[[i]][, 1]) & !is.na(values[[i]][, 2])] } values[[i]] <- na.exclude(values[[i]]) } } ## create global data set values.global <- NULL n.values <- NULL for (i in seq_along(values)) { values.global <- rbind(values.global, values[[i]]) n.values <- c(n.values, nrow(values[[i]])) } ## Set plot format parameters ----------------------------------------------- extraArgs <- list(...) # read out additional arguments list main <- if("main" %in% names(extraArgs)) {extraArgs$main} else {"Dose recovery test"} xlab <- if("xlab" %in% names(extraArgs)) {extraArgs$xlab} else { ifelse(missing(preheat) == TRUE, "# Aliquot", "Preheat temperature [\u00B0C]") } ylab <- if("ylab" %in% names(extraArgs)) {extraArgs$ylab} else {if(!is.null(given.dose)){ expression(paste("Normalised ", D[e], sep="")) }else{expression(paste(D[e], " [s]"), sep = "")}} xlim <- if("xlim" %in% names(extraArgs)) {extraArgs$xlim} else {c(1, max(n.values) + 1)} ylim <- if("ylim" %in% names(extraArgs)) {extraArgs$ylim} else {c(0.75, 1.25)} #check below for further corrections if boundaries exceed set range cex <- if("cex" %in% names(extraArgs)) {extraArgs$cex} else {1} pch <- if("pch" %in% names(extraArgs)) {extraArgs$pch} else { abs(seq(from = 20, to = -100)) } ##axis labels las <- if("las" %in% names(extraArgs)) extraArgs$las else 0 fun <- if ("fun" %in% names(extraArgs)) extraArgs$fun else FALSE # nocov ## calculations and settings------------------------------------------------- ## normalise data if given.dose is given if(!is.null(given.dose)){ if(length(given.dose) > 1){ if(length(values) < length(given.dose)){ .throw_error("'given.dose' > number of input data sets") } for(i in 1:length(values)) { values[[i]] <- values[[i]]/given.dose[i] } }else{ for(i in 1:length(values)) { values[[i]] <- values[[i]]/given.dose } } } ##correct ylim for data set which exceed boundaries if((max(sapply(1:length(values), function(x){max(values[[x]][,1], na.rm = TRUE)}))>1.25 | min(sapply(1:length(values), function(x){min(values[[x]][,1], na.rm = TRUE)}))<0.75) & ("ylim" %in% names(extraArgs)) == FALSE){ ylim <- c( min(sapply(1:length(values), function(x){ min(values[[x]][,1], na.rm = TRUE) - max(values[[x]][,2], na.rm = TRUE)})), max(sapply(1:length(values), function(x){ max(values[[x]][,1], na.rm = TRUE) + max(values[[x]][,2], na.rm = TRUE)}))) } ## optionally group data by preheat temperature if(missing(preheat) == FALSE) { modes <- as.numeric(rownames(as.matrix(table(preheat)))) values.preheat <- list(NA) values.boxplot <- list(NA) for(i in 1:length(modes)) { for(j in 1:length(values)) { values.preheat[[length(values.preheat) + 1]] <- cbind(values[[j]][preheat == modes[i],], preheat[preheat == modes[i]]) values.boxplot[[length(values.boxplot) + 1]] <- values[[j]][preheat == modes[i],1] } j <- 1 } values.preheat[[1]] <- NULL values.boxplot[[1]] <- NULL modes.plot <- rep(modes, each = length(values)) } else { modes <- 1 } ## assign colour indices col <- if("col" %in% names(extraArgs)) {extraArgs$col} else { if(missing(preheat) == TRUE) { rep(seq(from = 1, to = length(values)), each = length(modes)) } else { rep(seq(from = 1, to = length(values)), length(modes)) } } ## calculate and paste statistical summary if(summary.pos[1] != "sub") { label.text <- lapply(1:length(values), function(i) { .create_StatisticalSummaryText( x = calc_Statistics(values[[i]]), keywords = summary, digits = 2, sep = " \n", prefix = paste(rep("\n", (i - 1) * length(summary)), collapse = "") ) }) }else{ label.text <- lapply(1:length(values), function(i) { .create_StatisticalSummaryText( x = calc_Statistics(values[[i]]), keywords = summary, digits = 2, sep = " | " ) }) } ## convert keywords into summary and legend placement coordinates coords <- .get_keyword_coordinates(summary.pos, xlim, ylim) summary.pos <- coords$pos summary.adj <- coords$adj coords <- .get_keyword_coordinates(legend.pos, xlim, ylim) legend.pos <- coords$pos legend.adj <- coords$adj ## Plot output ------------------------------------------------------------ ## determine number of subheader lines to shif the plot shift.lines <- if(summary.pos[1] == "sub" & mtext == "") { length(label.text) - 1 } else {1} ## setup plot area if(par.local){ if (shift.lines <= 0) shift.lines <- 1 par.default <- par(mfrow = c(1, 1), cex = cex, oma = c(0, 1, shift.lines - 1, 1)) on.exit(par(par.default), add = TRUE) } ## optionally plot values and error bars if(boxplot == FALSE) { ## plot data and error if(missing(preheat) == TRUE) { ## create empty plot plot(NA,NA, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, xaxt = "n", las = las, main = "") ##add x-axis ... this avoids digits in the axis labelling axis(side = 1, at = 1:(nrow(values[[1]])+1), labels = 1:(nrow(values[[1]])+1), las = las) ## add title title(main = main, line = shift.lines + 2) ## add additional lines if (!is.null(given.dose)) { abline(h = 1) if (error.range > 0) { ## error range lines abline(h = 1 * (1 + error.range / 100), lty = 2) abline(h = 1 * (1 - error.range / 100), lty = 2) ## error range labels text( par()$usr[2], (1 + error.range / 100) + 0.02, paste("+", error.range , " %", sep = ""), pos = 2, cex = 0.8 ) text( par()$usr[2], (1 - error.range / 100) - 0.02, paste("-", error.range , "%", sep = ""), pos = 2, cex = 0.8 ) } } ## add data and error bars for(i in 1:length(values)) { points(x = c(1:nrow(values[[i]])), y = values[[i]][,1], pch = if(nrow(values[[i]]) == length(pch)){ pch } else { pch[i] }, col = if(nrow(values[[i]]) == length(col)){ col } else { col[i] }, cex = 1.2 * cex) graphics::arrows(c(1:nrow(values[[i]])), values[[i]][,1] + values[[i]][,2], c(1:nrow(values[[i]])), values[[i]][,1] - values[[i]][,2], angle = 90, length = 0.075, code = 3, col = if(nrow(values[[i]]) == length(col)){ col } else { col[i] }) ## add summary content if(summary.pos[1] != "sub") { text(x = summary.pos[1], y = summary.pos[2], adj = summary.adj, labels = label.text[[i]], cex = 0.8 * cex, col = if(nrow(values[[i]]) == length(col)){ "black" } else { col[i] }) } else { if(mtext == "") { mtext(side = 3, line = - i + 2.5, text = label.text[[i]], col = if(nrow(values[[i]]) == length(col)){ "black" } else { col[i] }, cex = cex * 0.8) } } } } else { ## option for provided preheat data ## create empty plot plot(NA,NA, xlim = c(min(modes.plot) * 0.9, max(modes.plot) * 1.1), ylim = ylim, xlab = xlab, ylab = ylab, las = las, main = "", axes = FALSE, frame.plot = TRUE) ## add axes axis(1, at = modes.plot, labels = modes.plot) axis(2) ## add title title(main = main, line = shift.lines + 2) ## add additional lines if (!is.null(given.dose)) { abline(h = 1) if (error.range > 0) { ## error range lines abline(h = 1 * (1 + error.range / 100), lty = 2) abline(h = 1 * (1 - error.range / 100), lty = 2) ## error range labels text( par()$usr[2], (1 + error.range / 100) + 0.02, paste("+", error.range , " %", sep = ""), pos = 2, cex = 0.8 ) text( par()$usr[2], (1 - error.range / 100) - 0.02, paste("-", error.range , "%", sep = ""), pos = 2, cex = 0.8 ) } } ## plot values for(i in 1:length(values.preheat)) { points(x = values.preheat[[i]][,3], y = values.preheat[[i]][,1], pch = pch[i], col = col[i], cex = 1.2 * cex) graphics::arrows(values.preheat[[i]][,3], values.preheat[[i]][,1] + values.preheat[[i]][,2], values.preheat[[i]][,3], values.preheat[[i]][,1] - values.preheat[[i]][,2], angle = 90, length = 0.075, code = 3, col = col[i]) } } } ## optionally, plot boxplot if(boxplot) { ## create empty plot graphics::boxplot(values.boxplot, names = modes.plot, ylim = ylim, xlab = xlab, ylab = ylab, las = las, xaxt = "n", main = "", border = col) ## add axis label, if necessary if (length(modes.plot) == 1) { axis(side = 1, at = 1, labels = modes.plot, las = las) } else if (length(modes.plot) > length(unique(modes.plot))){ ticks <- seq(from = 1 + ((length(values.boxplot)/length(unique(modes.plot)) - 1)/2), to = length(values.boxplot), by = length(values.boxplot)/length(unique(modes.plot))) axis( side = 1, at = ticks, las = las, labels = unique(modes.plot)) ##polygon for a better graphical representation of the groups polygon.x <- seq( 1,length(values.boxplot), by = length(values.boxplot) / length(unique(modes.plot)) ) polygon.step <- unique(diff(polygon.x) - 1) for (x.plyg in polygon.x) { polygon( x = c(x.plyg,x.plyg,x.plyg + polygon.step, x.plyg + polygon.step), y = c( par()$usr[3], ylim[1] - (ylim[1] - par()$usr[3]) / 2, ylim[1] - (ylim[1] - par()$usr[3]) / 2, par()$usr[3] ), col = "grey", border = "grey") } }else{ axis(side = 1, at = 1:length(unique(modes.plot)), labels = unique(modes.plot), las = las) } ## add title title(main = main, line = shift.lines + 2) ## add additional lines if(!is.null(given.dose)){ abline(h = 1) if(error.range > 0){ ## error range lines abline(h = 1 * (1 + error.range / 100), lty = 2) abline(h = 1 * (1 - error.range / 100), lty = 2) ## error range labels text(par()$usr[2], (1 + error.range / 100) + 0.02, paste("+", error.range ," %", sep = ""), pos = 2, cex = 0.8) text(par()$usr[2], (1 - error.range / 100) - 0.02, paste("-", error.range ,"%", sep = ""), pos = 2, cex = 0.8) } } ## plot data and error for(i in 1:length(values)) { ## add summary content if(summary.pos[1] != "sub") { text(x = summary.pos[1], y = summary.pos[2], adj = summary.adj, labels = label.text[[i]], cex = 0.8 * cex, col = if(nrow(values[[i]]) == length(col)){ "black" } else { col[i] }) } else { if(mtext == "") { mtext(side = 3, line = - i + 2.5, text = label.text[[i]], col = if(nrow(values[[i]]) == length(col)){ "black" } else { col[i] }, cex = cex * 0.8) } } } } ## optionally add legend content if(missing(legend) == FALSE) { legend(x = legend.pos[1], y = legend.pos[2], xjust = legend.adj[1], yjust = legend.adj[2], legend = legend, col = unique(col), pch = unique(pch), lty = 1, cex = cex * 0.8) } ## optionally add subheader text mtext(side = 3, line = shift.lines, text = mtext, cex = 0.8 * cex) ##FUN by R Luminescence Team if (fun == TRUE) sTeve() # nocov } Luminescence/R/plot_MoranScatterplot.R0000644000176200001440000002473214762554470017575 0ustar liggesusers#' @title Moran Scatter Plot: Visualizing Spatial Dependency #' #' @description Scatter plot, with on the x axis the original grain signal and on the y axis #' the weighted mean of the neighbour grain signals. The plot area is divided into four quadrants, #' and also a least square line (which slopes indicates, but not exactly represents, Moran's I) and #' an 1:1 line (which indicates a Moran's I of around 1). #' #' @param object [RLum.Results-class] or [numeric] (**required**): containing a numerical vector of length 100, #' representing one or more measurement discs ("positions") in a reader. #' Each element in the vector represents one grain hole location on a disc. #' #' @param df_neighbours [data.frame] (*with default*) Data frame indicating #' which borders to consider, and their respective weights (see the description #' provided for [calc_MoransI]). If `NULL` (default), this is constructed #' automatically by the internal function `.get_Neighbours`. #' #' @param str_y_def [character] (*with default*) Calculation of y position. Defaults to `"mean_neighbours"` #' which is the plain mean of all neighbour values and the most illustrative. The other option is `"weighted_sum"`, #' which means the sum of the border weights times the neighbour values, which is actually closer #' to the way Moran's I is by default calculated in this package. #' #' @param ... Other parameters to be forwarded to the base R plot functions. #' `legend` (`TRUE/FALSE`) to enable/disable the legend. #' Note that `xlab` (x axis label), `ylab` (y axis label) and `cex` (scaling #' value) are given default values. Because of sometimes large value #' differences, `log = "x"`, `log = "y"` and `log = "xy"`are supported. #' In case of negative values and logarithmic plotting, values are increased #' so the smallest value to plot is 1. Summary elements such as means, least #' square line etc. will still be based on the linear case. #' `pch` accepts options "show_location_ids"` (plots grain location id's), `"show_n_neighbours"` #' (indicates numbers of neighbours) and the normal base plot `pch` options. #' #' @details Note that this function plots on the y-axis the mean of the neighbours, while the function #' [calc_MoransI] by default will for its global calculation weight every border the same. So, grain locations #' with 1, 2 or 3 neighbours will appear higher on the y-axis than their influence on Moran's I justify -- apart #' from scaling, this explains a part of the differences of Moran's scatter plots between different packages. #' Also note that island' grain locations (=those not bordering other grains) are left out of these plots but #' might still influence Moran's I calculations. #' #' @return Returns (invisibly) a data frame with plotting coordinates and #' grain location id's, for creating user-defined plots. #' #' @examples #' plot_MoranScatterplot(1:100) #' #' @author Anna-Maartje de Boer, Luc Steinbuch, Wageningen University & Research, 2025 #' #' @references #' de Boer, A-M., Steinbuch, L., Heuvelink, G.B.M., Wallinga, J., 2025. #' A novel tool to assess crosstalk in single-grain luminescence detection. #' Submitted. #' #' @md #' @export plot_MoranScatterplot <- function( object, df_neighbours = NULL, str_y_def = "mean_neighbours", # , mean_neighbours, weighted_sum ... ) { .set_function_name("plot_MoranScatterplot") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(object, c("RLum.Results", "numeric", "integer")) if (is.numeric(object)) { vn_values <- object } else { vn_values <- get_RLum(object) } .validate_length(vn_values, 100, name = "'object'") if (is.null(df_neighbours)) { df_neighbours <- .get_Neighbours(object) } else { .validate_class(df_neighbours, "data.frame") if (ncol(df_neighbours) != 3) .throw_error("'df_neighbours' should be a data frame with 3 columns") } .validate_args(str_y_def, c("mean_neighbours", "weighted_sum")) ## get ... arguments plot_settings <- modifyList( x = list( legend = TRUE, pch = 20, cex = 0.8, xlab = "Value central grain", ylab = ifelse(str_y_def == "weighted_sum", "Weighted sum neighbouring grains", "Plain mean neighbour grains"), log = ""), val = list(...)) vs_points_appearance <- plot_settings$pch show_location_ids <- FALSE show_n_neighbours <- FALSE if(plot_settings$pch == "show_location_ids") { show_location_ids <- TRUE } else if (plot_settings$pch == "show_n_neighbours") { show_n_neighbours <- TRUE } vs_log <- plot_settings$log # because we need the function "log" later df_moran_plot <- data.frame( x = vn_values, y = NA, grain_id = NA, n_neighbours = NA) vn_locations <- unique(c(df_neighbours$location, df_neighbours$neighbour)) for(i in 1:length(vn_locations) ) { n_location <- vn_locations[i] ## Find the neighbouring locations according to df_neighbour ## For a given n_location, in which row of df_neighbour are neighbouring locations provided? vi_neighbour_row <- which(df_neighbours$location == n_location) ## And thus, which locations are provided in these rows? vn_neighbour <- df_neighbours$neighbour[vi_neighbour_row] ## And add weights vn_weights <- df_neighbours$weight[vi_neighbour_row] df_neighbour_and_weights <- data.frame(adj_pos = vn_neighbour, weight = vn_weights) ## Find the mirror neighbouring locations ("locations") according to df_neighbour ## For a given n_location, in which row of df_neighbour are locations provided? vi_neighbour_mirror_row <- which(df_neighbours$neighbour == n_location) ## And thus, which locations are provided in these rows? vn_neighbour_mirror <- df_neighbours$location[vi_neighbour_mirror_row] ## And add weights vn_weights <- df_neighbours$weight[vi_neighbour_mirror_row] df_neighbour_and_weights <- rbind(df_neighbour_and_weights, data.frame(adj_pos = vn_neighbour_mirror, weight = vn_weights) ) if(str_y_def == "mean_neighbours") { n_mean_of_neighbours <- mean( df_moran_plot$x[df_neighbour_and_weights$adj_pos]* df_neighbour_and_weights$weight, na.rm = TRUE) df_moran_plot$y[n_location] <- n_mean_of_neighbours } else if(str_y_def == "weighted_sum") { n_weighted_sum_neighbours <- sum( df_moran_plot$x[df_neighbour_and_weights$adj_pos]* df_neighbour_and_weights$weight, na.rm = TRUE) ## NOG AANPASSEN df_moran_plot$y[n_location] <- n_weighted_sum_neighbours } ## For plotting: how many neighbours were involved? df_moran_plot$n_neighbours[n_location] <- length(vi_neighbour_mirror_row) + length(vi_neighbour_row) df_moran_plot$grain_id[n_location] <- n_location } n_grains_without_neighbour <- nrow(df_moran_plot) - sum(stats::complete.cases(df_moran_plot$y)) if(n_grains_without_neighbour>0) .throw_warning("Grain observations removed from plot because no neighbours") df_moran_plot <- df_moran_plot[stats::complete.cases(df_moran_plot), ] ## If we want a log plot, make sure that all relevant values are 1 or more (per axis) if (grepl("x", vs_log, fixed = TRUE) && min(df_moran_plot$x) < 1) { if (min(df_moran_plot$x) < 0) { df_moran_plot$x <- df_moran_plot$x - min(df_moran_plot$x) + 1 } else { df_moran_plot$x <- df_moran_plot$x + (1 - min(df_moran_plot$x)) } .throw_warning("x-axis values rescaled because of log transform ", "(also in return df)") } if (grepl("y", vs_log, fixed = TRUE) && min(df_moran_plot$y) < 1) { if (min(df_moran_plot$y) < 0) { df_moran_plot$y <- df_moran_plot$y - min(df_moran_plot$y) + 1 } else { df_moran_plot$y <- df_moran_plot$y + (1 - min(df_moran_plot$y)) } .throw_warning("y-axis values rescaled because of log transform ", "(also in return df)") } ## Set point appearance vs_pch <- if (vs_points_appearance == "show_location_ids" || vs_points_appearance == "show_n_neighbours") { NA # Numbers will be added later } else { plot_settings$pch } ## plot ## remove used arguments to avoid collusion args <- list(...) args <- args[!...names() %in% c("pch", "log", "xlab", "ylab", "cex", "legend")] do.call( what = plot, args = c( args, list( df_moran_plot[,1:2], pch = vs_pch, log = vs_log, xlab = plot_settings$xlab, ylab = plot_settings$ylab, cex = plot_settings$cex))) if(vs_points_appearance == "show_location_ids") { text(x = df_moran_plot[,1:2], labels = df_moran_plot$grain_id, cex = plot_settings$cex) } if(vs_points_appearance == "show_n_neighbours") { text(x = df_moran_plot[,1:2], labels = df_moran_plot$n_neighbours, cex = plot_settings$cex) } ## Mean lines abline(v = mean(df_moran_plot$x), h = mean(df_moran_plot$y), lty = "dotted", untf = TRUE) ## 1:1 one, only makes only sense for the plain mean of neighbours if(str_y_def == "mean_neighbours") { abline(a = mean(df_moran_plot$y) - mean(df_moran_plot$x), b = 1, lty = "dotdash", untf = TRUE) } ## Calculate least square line lm_moransI <- stats::lm(y ~ x, data = df_moran_plot) abline(a = coef(lm_moransI)[1], b = coef(lm_moransI)[2], col = "orange", untf=TRUE) if (plot_settings$legend[1]) { vs_legend <- c("means", "least square") vs_cols <- c("black", "orange") vs_lty <- c("dotted", "solid") vs_pch <- c(NA, NA) if(str_y_def == "mean_neighbours") { vs_legend <- c(vs_legend, "1:1 line") vs_cols <- c(vs_cols, "black") vs_lty <- c(vs_lty, "dotdash") vs_pch <- c(vs_pch, NA) } if(vs_points_appearance == "show_location_ids") { vs_legend <- c(vs_legend, "location ids") vs_cols <- c(vs_cols, "black") vs_lty <- c(vs_lty, NA) vs_pch <- c(vs_pch, "#") } if(vs_points_appearance == "show_n_neighbours") { vs_legend <- c(vs_legend, "numb. of neighb.") vs_cols <- c(vs_cols, "black") vs_lty <- c(vs_lty, NA) vs_pch <- c(vs_pch, "#") } legend(x = "topleft", legend = vs_legend, col = vs_cols, lty = vs_lty, pch = vs_pch, cex = 0.8) } invisible(df_moran_plot) } Luminescence/R/RLum.Results-class.R0000644000176200001440000002577314762554470016666 0ustar liggesusers#' Class `"RLum.Results"` #' #' Object class contains results data from functions (e.g., [analyse_SAR.CWOSL]). #' #' @name RLum.Results-class #' #' @docType class #' #' @slot data #' Object of class [list] containing output data #' #' @note #' The class is intended to store results from functions to be used by #' other functions. The data in the object should always be accessed by the #' method `get_RLum`. #' #' @section Objects from the Class: #' Objects can be created by calls of the form `new("RLum.Results", ...)`. #' #' @section Class version: 0.5.2 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum-class], [plot_RLum], [merge_RLum] #' #' @keywords classes methods #' #' @examples #' #' showClass("RLum.Results") #' #' ##create an empty object from this class #' set_RLum(class = "RLum.Results") #' #' ##use another function to show how it works #' #' ##Basic calculation of the dose rate for a specific date #' dose.rate <- calc_SourceDoseRate( #' measurement.date = "2012-01-27", #' calib.date = "2014-12-19", #' calib.dose.rate = 0.0438, #' calib.error = 0.0019) #' #' ##show object #' dose.rate #' #' ##get results #' get_RLum(dose.rate) #' #' ##get parameters used for the calcualtion from the same object #' get_RLum(dose.rate, data.object = "parameters") #' #' ##alternatively objects can be accessed using S3 generics, such as #' dose.rate$parameters #' #' @md #' @export setClass( Class = "RLum.Results", slots = list(data = "list"), contains = "RLum", prototype = list (data = list()) ) # as() ---------------------------------------------------------------------------------------- ##LIST ##COERCE RLum.Results >> list AND list >> RLum.Results #' as() - RLum-object coercion #' #' for `[RLum.Results-class]` #' #' **[RLum.Results-class]** #' #' \tabular{ll}{ #' **from** \tab **to**\cr #' `list` \tab `list`\cr #' } #' #' Given that the [list] consists of [RLum.Results-class] objects. #' #' @md #' @name as setAs("list", "RLum.Results", function(from,to){ new(to, originator = "coercion", data = from) }) setAs("RLum.Results", "list", function(from){ from@data }) # show() -------------------------------------------------------------------------------------- #' @describeIn RLum.Results #' Show structure of `RLum.Results` object #' #' @keywords internal #' #' @md #' @export setMethod("show", signature(object = "RLum.Results"), function(object) { ##data elements temp.names <- names(object@data) if (length(object) > 0) { temp.type <- sapply(1:length(object@data), function(x) { paste("\t .. $", temp.names[x], " : ", is(object@data[[x]])[1], sep = "") }) } else{ temp.type <- paste0("\t .. $", temp.names, " : ", is(object@data)[1]) } temp.type <- paste(temp.type, collapse = "\n") ##print information cat("\n [RLum.Results-class]") cat("\n\t originator: ", object@originator, "()", sep = "") cat("\n\t data:", length(object@data)) cat("\n", temp.type) cat("\n\t additional info elements: ", length(object@info),"\n") }) # set_RLum() ---------------------------------------------------------------------------------- #' @describeIn RLum.Results #' Construction method for an RLum.Results object. #' #' @param class [`set_RLum`]; [character] (**required**): #' name of the `RLum` class to create #' #' @param originator [`set_RLum`]; [character] (*automatic*): #' contains the name of the calling function (the function that produces this object); #' can be set manually. #' #' @param .uid [`set_RLum`]; [character] (*automatic*): #' sets an unique ID for this object using the internal C++ function `create_UID`. #' #' @param .pid [`set_RLum`]; [character] (*with default*): #' option to provide a parent id for nesting at will. #' #' @param data [`set_RLum`]; [list] (*optional*): #' a list containing the data to #' be stored in the object #' #' @param info [`set_RLum`]; [list] (*optional*): #' a list containing additional info data for the object #' #' @return #' #' **`set_RLum`**: #' #' Returns an object from the class [RLum.Results-class] #' #' @md #' @export setMethod("set_RLum", signature = signature("RLum.Results"), function(class, originator, .uid, .pid, data = list(), info = list()) { ##create new class newRLumReuslts <- new("RLum.Results") ##fill object newRLumReuslts@originator <- originator newRLumReuslts@data <- data newRLumReuslts@info <- info newRLumReuslts@.uid <- .uid newRLumReuslts@.pid <- .pid return(newRLumReuslts) }) # get_RLum() ---------------------------------------------------------------------------------- #' @describeIn RLum.Results #' Accessor method for RLum.Results object. The argument data.object allows #' directly accessing objects delivered within the slot data. The default #' return object depends on the object originator (e.g., `fit_LMCurve`). #' If nothing is specified always the first `data.object` will be returned. #' #' Note: Detailed specification should be made in combination with the originator slot in the #' receiving function if results are pipped. #' #' @param object [`get_RLum`]; [RLum.Results-class] (**required**): #' an object of class [RLum.Results-class] to be evaluated #' #' @param data.object [`get_RLum`]; [character] or [numeric]: #' name or index of the data slot to be returned #' #' @param info.object [`get_RLum`]; [character] (*optional*): #' name of the wanted info element #' #' @param drop [`get_RLum`]; [logical] (*with default*): #' coerce to the next possible layer (which are data objects, `drop = FALSE` #' keeps the original `RLum.Results` #' #' @return #' #' **`get_RLum`**: #' #' Returns: #' #' 1. Data object from the specified slot #' 2. [list] of data objects from the slots if 'data.object' is vector or #' 3. an [RLum.Results-class] for `drop = FALSE`. #' #' #' @md #' @export setMethod( "get_RLum", signature = signature("RLum.Results"), definition = function(object, data.object, info.object = NULL, drop = TRUE) { .set_function_name("get_RLum") on.exit(.unset_function_name(), add = TRUE) ##if info.object is set, only the info objects are returned if (!is.null(info.object)) { if (info.object %in% names(object@info)) { unlist(object@info[info.object]) } else { ##check for entries if (length(object@info) == 0) { .throw_warning("This 'RLum.Results' object has no info objects, ", "NULL returned") } else { .throw_warning("Invalid 'info.object' name, valid names are: ", .collapse(names(object@info))) } return(NULL) } } else{ if (!missing(data.object)) { ##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .validate_class(data.object, c("character", "numeric")) ##CASE1: data.object is of type 'character' if (is.character(data.object)) { #check if the provided names are available if (all(data.object %in% names(object@data))) { ##account for multiple inputs if (length(data.object) > 1) { temp.return <- sapply(data.object, function(x) { object@data[[x]] }) } else{ temp.return <- list(data.object = object@data[[data.object]]) } } else { .throw_error("Unknown 'data.object', valid names are: ", .collapse(names(object@data))) } } ##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ##CASE2: data.object is of type 'numeric' else if (is.numeric(data.object)) { ##check if index is valid if (max(data.object) > length(object@data)) { .throw_error("'data.object' index out of bounds") } else if (length(data.object) > 1) { temp.return <- lapply(data.object, function(x) { object@data[[x]] }) } else { temp.return <- list(object@data[[data.object]]) } ##restore names as that get los with this method names(temp.return) <- names(object@data)[data.object] } ##the CASE data.object is missing } else{ ##return always the first object if nothing is specified temp.return <- object@data[1] } ##CHECK whether an RLum.Results object needs to be produced ... ##This will just be the case if the funtion havn't returned something before if (drop) { ##we need to access the list here, otherwise we get unexpected behaviour as drop = TRUE ##should always return the lowest possible element here return(temp.return[[1]]) } else{ return(set_RLum( "RLum.Results", originator = object@originator, data = temp.return )) } } } ) # length_RLum() ------------------------------------------------------------------------------- #' @describeIn RLum.Results #' Returns the length of the object, i.e., number of stored data.objects #' #' @return #' #' **`length_RLum`** #' #' Returns the number of data elements in the `RLum.Results` object. #' #' @md #' @export setMethod("length_RLum", "RLum.Results", function(object){ length(object@data) }) # names_RLum() -------------------------------------------------------------------------------- #' @describeIn RLum.Results #' Returns the names data.objects #' #' @return #' #' **`names_RLum`** #' #' Returns the names of the data elements in the object. #' #' @md #' @export setMethod("names_RLum", "RLum.Results", function(object){ names(object@data) }) ## view() ------------------------------------------------------------------- #' @describeIn RLum.Results #' #' View method for [RLum.Results-class] objects #' #' @param object an object of class [RLum.Results-class] #' #' @param element [integer] (*with default*): index of the element to display #' #' @param ... other arguments that might be passed #' #' @keywords internal #' #' @md #' @export setMethod("view", signature = "RLum.Results", definition = function(object, element = 1, ...) { ## set title name <- list(...)$title if (is.null(name)) name <- deparse(substitute(object)) ## run view data <- get_RLum(object, data.object = element) .view(x = data, title = name) }) Luminescence/R/internals_RLum.R0000644000176200001440000012734714762554470016202 0ustar liggesusers# INTERNAL HELPER FUNCTIONS ----------------------------------------------- #+++++++++++++++++++++ #+ .set_pid() + #+++++++++++++++++++++ #' Set unique id of the RLum.Analysis object as parent id for each RLum.Data #' object in the record list #' #' This function only applies on RLum.Analysis objects and was written for performance not #' usability, means the functions runs without any checks and is for internal usage only. #' #' @param [RLum.Analysis-class] (**required**): #' input object where the function should be applied on #' #' @return #' Returns the same object as the input #' #' @section Function version: 0.1.0 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @examples #' #' ##example using self created data #' object <- set_RLum( #' "RLum.Analysis", #' records = list( #' set_RLum("RLum.Data.Curve"), #' set_RLum("RLum.Data.Curve"))) #' #' object <- .set_pid(object) #' #' @md #' @noRd .set_pid <- function(object){ object@records <- lapply(object@records, function(x) { x@.pid <- object@.uid return(x) }) return(object) } #+++++++++++++++++++++ #+ .warningCatcher() + #+++++++++++++++++++++ #' Catches warning returned by a function and merges them. #' The original return of the function is returned. This function is in particular #' helpful if a function returns a lot of warnings with the same content. #' #' @param expr [expression] (**required**): #' the R expression, usually a function #' #' @return #' Returns the same object as the input and a warning table #' #' @section Function version: 0.1.0 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @examples #' #' f <- function() { #' warning("warning 1") #' warning("warning 1") #' warning("warning 2") #' 1:10 #' } #' print(.warningCatcher(f())) #' #' @md #' @noRd .warningCatcher <- function(expr) { ##set variables warning_collector <- list() env <- environment() ##run function and catch warnings results <- withCallingHandlers( expr = expr, warning = function(c) { temp <- c(get("warning_collector", envir = env), c[[1]]) assign(x = "warning_collector", value = temp, envir = env) ##TODO should be replaced tryInvokeRestart once R 4.1 was released invokeRestart("muffleWarning") } ) ##set new warning messages with merged results if (length(warning_collector) > 0) { w_table <- table(as.character(unlist(warning_collector))) w_table_names <- names(w_table) warning(paste0( "(", 1:length(w_table), ") ", w_table_names, ": This warning occurred ", w_table, " times!" ,collapse = "\n"), call. = FALSE) } return(results) } #+++++++++++++++++++++ #+ .smoothing() + #+++++++++++++++++++++ #' Allows smoothing of data based on rolling means or medians #' #' The function just allows a direct and meaningful access to the #' functionality of `data.table::frollmean()` and `data.table::frollmedian()`. #' Arguments of the function are only partly valid. #' #' @param x [numeric] (**required**): #' the object for which the smoothing should be applied. #' #' @param k [integer] (*with default*): #' window for the rolling mean. If not set, `k` is set automatically. #' #' @param fill [numeric] (*with default*): #' value used to pad the result so to have the same length as the input #' #' @param align [character] (*with default*): #' one of `"right"`, `"center"` or `"left"`, specifying whether the index #' of the result should be right-aligned (default), centered, or lef-aligned #' compared to the rolling window of observations #' #' @param method [method] (*with default*): #' defines which method should be applied for the smoothing: `"mean"` or `"median"` #' #' @return #' Returns the same object as the input #' #' @section Function version: 0.2 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @examples #' #' v <- 1:100 #' .smoothing(v) #' #' @md #' @noRd .smoothing <- function( x, k = NULL, fill = NA, align = "right", method = "mean") { .set_function_name(".smoothing") on.exit(.unset_function_name(), add = TRUE) .validate_args(align, c("right", "center", "left")) .validate_args(method, c("mean", "median")) ##set k if (is.null(k)){ k <- ceiling(length(x) / 100) } ##smooth data if(method == "mean"){ data.table::frollmean(x, n = k, fill = fill, align = align) }else if(method == "median"){ data.table::frollapply(x, n = k, FUN = "median", fill = fill, align = align) } } #++++++++++++++++++++++++++++++ #+ Curve normalisation + #++++++++++++++++++++++++++++++ #' Curve normalisation #' #' Details on the normalisation methods are specified in [plot_RLum.Analysis] #' and [plot_RLum.Data.Curve]. #' #' The function assumes that `NA` or other invalid values have already been #' removed by the caller function, and that the `norm` option has already #' been validated. #' #' @param data [numeric] (**required**): #' the curve data to be normalised #' #' @param norm [logical] [character] (**required**): #' if logical, whether curve normalisation should occur; alternatively, one #' of `"max"` (used with `TRUE`), `"last"` and `"huot"`. #' #' @md #' @noRd .normalise_curve <- function(data, norm) { if (norm == "max" || norm == TRUE) { data <- data / max(data) } else if (norm == "last") { data <- data / data[length(data)] } else if (norm == "huot") { bg <- median(data[floor(length(data) * 0.8):length(data)]) data <- (data - bg) / max(data - bg) } ## check for Inf and NA if (any(is.infinite(data)) || anyNA(data)) { data[is.infinite(data) | is.na(data)] <- 0 .throw_warning("Curve normalisation produced Inf/NaN values, ", "values replaced by 0") } return(data) } #++++++++++++++++++++++++++++++ #+ LxTx error calculation + #++++++++++++++++++++++++++++++ #' Calculation of the `Lx/Tx` error #' #' Calculates the `Lx/Tx` error according Galbraith (2014). #' #' @param LnLxTnTx [data.frame] (**required**): containing columns #' `Net_LnLx`, `Net_TnTx`, `Net_LnLx.Error`, `Net_TnTx.Error`. #' @param sig0 [numeric] (**required**): extra error component to be added #' to the final `Lx/Tx` error value (e.g., instrumental error). #' @param digits [integer] (**required**): round numbers to the specified #' digits. If set to `NULL`, no rounding occurs. #' #' @md #' @noRd .calculate_LxTx_error <- function(LnLxTnTx, sig0, digits) { ## extract fields from the data.frame LnLx <- LnLxTnTx$Net_LnLx TnTx <- LnLxTnTx$Net_TnTx LnLx.Error <- LnLxTnTx$Net_LnLx.Error TnTx.Error <- LnLxTnTx$Net_TnTx.Error ## calculate Ln/Tx LxTx <- LnLx / TnTx if (is.nan(LxTx)) LxTx <- 0 ## calculate Ln/Tx error LxTx.relError <- sqrt((LnLx.Error / LnLx)^2 + (TnTx.Error / TnTx)^2) LxTx.Error <- abs(LxTx * LxTx.relError) if (is.nan(LxTx.Error)) LxTx.Error <- 0 ## add an extra component of error LxTx.Error <- sqrt(LxTx.Error^2 + (sig0 * LxTx)^2) ## combined values res <- cbind(LnLxTnTx, LxTx, LxTx.Error) if (!is.null(digits)) { res[1, ] <- round(res[1, ], digits = digits) } return(res) } #++++++++++++++++++++++++++++++ #+ Scientific axis annotation + #++++++++++++++++++++++++++++++ #' Bored of the 1e10 notation of large numbers in R? Already tried to force #' R to produce more fancy labels? Worry not, fancy_scientific() (written by #' Jack Aidley) is at your help! #' #' Source: #' [http://stackoverflow.com/questions/11610377/how-do-i-change-the-formatting-of-numbers-on-an-axis-with-ggplot]() #' #' @param l [numeric] (**required**): #' a numeric vector, i.e. the labels that you want to add to your plot #' #' @return #' Returns an expression #' #' @section Function version: 0.1.0 #' #' @author Jack Aidley #' #' @examples #' plot(seq(1e10, 1e20, length.out = 10), #' 1:10, #' xaxt = "n") #' #' axis(1, at = axTicks(1), #' labels = fancy_scientific(axTicks(1))) #' #' @md #' @noRd fancy_scientific <- function(l) { # turn in to character string in scientific notation l <- format(l, scientific = TRUE) # quote the part before the exponent to keep all the digits l <- gsub("^(.*)e", "'\\1'e", l) # turn the 'e+' into plotmath format l <- gsub("e", "%*%10^", l) # remove plus sign l <- gsub("\\+", "", l) # return this as an expression parse(text=l) } #'Add fancy log axis with minor ticks the fancy axis labelling #' #'@param side [numeric] (**required**): the side where to plot the axis #' #'@param ... extra arguments to be passed to [graphics::axis], `side`, `at`and `labels` #'are pre-defined and cannot be modified #' #'@return #'Returns fancy log axis #' #'@author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@examples #' #'y <- c(0.1, 0.001, 0.0001) #'plot(1:length(y), y, yaxt = "n", log = "y") #'.add_fancy_log_axis(side = 2, las = 1) #' #'@md #'@noRd .add_fancy_log_axis <- function(side, ...){ ## do just nothing if it would cause an error if(!(par()$xlog && any(c(1,3) %in% side[1])) && !(par()$ylog && any(c(2,4) %in% side[1]))) return(NULL) ## get current axis ticks and get exponent ticks <- graphics::axTicks(side, log = TRUE) ticks <- unique(floor(log10(ticks))) minor_ticks <- vapply(ticks, function(x) { seq(10^(x-1),10^x, length.out = 10)[-10] }, numeric(9)) ## add minor ticks graphics::axis( side, at = as.numeric(minor_ticks), lwd.ticks = 0.5, tcl = -.35, labels = FALSE) ## add main axis ## remove settings we set args <- list(...) args$side <- NULL args$at <- NULL args$labels <- NULL ## call the axis do.call(what = graphics::axis, args = c( list(side = side, at = 10^ticks, labels = fancy_scientific(10^ticks)), args)) } #' Convert position keywords into summary placement coordinates #' #' @param pos [numeric] or [character] (**required**) Position coordinates #' or keyword (one of "topleft", "top", "topright", "left", "center", #' "right", "bottomleft", "bottom", "bottomright"). #' @param xlim [numeric] (**required**) The x-axis limits. #' @param ylim [numeric] (**required**) The y-axis limits. #' #' @return #' A list of two elements: `pos` and `adj`. #' #' @md #' @noRd .get_keyword_coordinates <- function(pos, xlim, ylim) { adj <- NA if (missing(pos)) { pos <- c(xlim[1], ylim[2]) adj <- c(0, 1) } else if (length(pos) == 2) { pos <- pos adj <- c(0, 1) } else if (pos[1] == "topleft") { pos <- c(xlim[1], ylim[2]) adj <- c(0, 1) } else if (pos[1] == "top") { pos <- c(mean(xlim), ylim[2]) adj <- c(0.5, 1) } else if (pos[1] == "topright") { pos <- c(xlim[2], ylim[2]) adj <- c(1, 1) } else if (pos[1] == "left") { pos <- c(xlim[1], mean(ylim)) adj <- c(0, 0.5) } else if (pos[1] == "center") { pos <- c(mean(xlim), mean(ylim)) adj <- c(0.5, 0.5) } else if (pos[1] == "right") { pos <- c(xlim[2], mean(ylim)) adj <- c(1, 0.5) }else if (pos[1] == "bottomleft") { pos <- c(xlim[1], ylim[1]) adj <- c(0, 0) } else if (pos[1] == "bottom") { pos <- c(mean(xlim), ylim[1]) adj <- c(0.5, 0) } else if (pos[1] == "bottomright") { pos <- c(xlim[2], ylim[1]) adj <- c(1, 0) } return(list(pos = pos, adj = adj)) } #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #+ Statistical Summary for Plot functions #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #' Create Statistical Summary Character Vector for Plot functions #' #' This function automatically generates the statistical summary for the plot functions within #' the package. This should unify the approach how such things are created and support, theoretically #' all keywords for all plot functions in a similar way. #' #' @param x [data.frame] (*optional*): output from function `calc_Statistics()`. #' If nothing is provided, a list of prefix keyword combinations supported by #' `calc_Statistics()` is returned. #' #' @param keywords[character] (*with default*): keywords supported by function #' `calc_Statistics()`. #' #' @param digits [numeric] (*with default*): modifiy the digits independently #' for the plot output. #' #' @param sep [character] (*with default*): separator used for the creation of #' the output of the plot. #' #'@param prefix [character] (*with default*): prefix to add to the string #' #'@param suffix [character] (*with default*): suffix to add to the string #' #'@author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@section Version: 0.1.0 #' #' #'@md #'@noRd .create_StatisticalSummaryText <- function( x = NULL, #insert the output of calc_Statistics keywords = NULL, digits = 2, #allow for different digits sep = " \n ", prefix = "", suffix = "" ){ ## Grep keyword information if (is.null(x)) { summary <- calc_Statistics(data.frame(x = 1:2, y = 1:2)) } else { summary <- x } #all allowed combinations keywords_allowed <- unlist(lapply(names(summary), function(x){ paste0(x, "$", names(summary[[x]])) })) ##return if for x == NULL if(is.null(x)) return(keywords_allowed) ## Create call #create list l <- lapply(keywords, function(k) { ##strip keyword if necessary if (grepl(pattern = "$", x = k, fixed = TRUE)[1]) { strip <- strsplit(k, split = "$", fixed = TRUE)[[1]] keywords_prefix <- strip[1] k_strip <- strip[2] } else{ keywords_prefix <- "unweighted" k_strip <- k } ##construct string if(!is.null(summary[[keywords_prefix]][[k_strip]])){ if(keywords_prefix == "unweighted"){ paste0(k_strip, " = ", round(summary[[keywords_prefix]][[k_strip]], digits)) }else{ paste0(k, " = ", round(summary[[keywords_prefix]][[k_strip]], digits)) } }else{ return(NULL) } }) ##remove NULL entries l <- .rm_NULL_elements(l) ##construct final call return(paste0(prefix, paste(unlist(l), collapse = sep), suffix)) } #++++++++++++++++++++++++++++++ #+ Unlist RLum + #++++++++++++++++++++++++++++++ #' #' Recursive unlisting of lists until the first element in the list #' is something, but not a list. This funktion helps #' to get rid of nested lists. The function stops running if a single #' level list is reached. #' #' @param x [list] (**required**): list with lists #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @examples #' a <- list(b = list(c = list("test"))) #' .unlist_RLum(a) #' #' @return [list] with only one level left #' @md #' @noRd .unlist_RLum <- function(x){ stopifnot(class(x) == "list") if(length(x) > 0 && inherits(x[[1]], "list")){ x <- unlist(x, recursive = FALSE) .unlist_RLum(x) }else{ return(x) } } #++++++++++++++++++++++++++++++ #+ .rm_nonRLum + #++++++++++++++++++++++++++++++ #' @title Removes all non-RLum objects from list #' #' @description Removes all non RLum objects from a list #' supposed to consist only of RLum-class objects #' As an internal function, the function is rather unforgiving, no further #' checks are applied. #' #' @param x [list] (**required**): list #' #' @param class [character]: class to look for, if nothing is set #' it checks for RLum in general #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @examples #' x <- c(list(set_RLum("RLum.Analysis"), set_RLum("RLum.Analysis")), 2) #' .rm_nonRLum(x) #' #' @return [list] with only RLum objects #' #' @md #' @noRd .rm_nonRLum <- function(x, class = NULL){ if(is.null(class)) return(x[vapply(x, inherits, logical(1), "RLum")]) x[vapply(x, "class", character(1)) == class[1]] } #++++++++++++++++++++++++++++++ #+ .rm_NULL + #++++++++++++++++++++++++++++++ #' @title Removes all NULL elements from list #' #' @param x [list] (**required**): list #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @examples #' l <- list("a", NULL) #' .rm_NULL_elements(l) #' #' @return [list] without `NULL` elements, can be empty #' #' @md #' @noRd .rm_NULL_elements <- function(x){ x[vapply(x, is.null, logical(1))] <- NULL x } #++++++++++++++++++++++++++++++ #+ .matrix_binning + #++++++++++++++++++++++++++++++ #' @title Efficient binning of matrices #' #' @description This function allows efficient binning of matrices including #' row and column name handling. Internally, the function uses [rowsum], #' means the binning is always applied on the rows. For column binning the function #' internally transposes the matrix first #' #' @param m [matrix] (**required**): the matrix uses the base function [rowsum] #' #' @param bin_size [integer] (*with default*): bin size #' #' @param bin_col [logical] (*with default*): applies the binning on the columns instead of the #' rows. If you want to perform binning on rows and columns, you have to call this function twice. #' #' @param names [character] (*with default*): the handling of the row and column names. The default #' `NULL` removes the column and row names. Other allowed input is: `'groups'` this uses the group #' name, e.g., the last time value of a group, `'mean'` this calculates the mean value of a group, #' `'sum'` to sum-up groups and you can provide any other value which will then be recycled throughout. #' For example: `c('row1', 'row2')`. #' #' @author Sebastian Kreutzer, IRAMAT-CRP2A, UMR 5060, CNRS - Université Bordeaux Montaigne (France) #' #' @section Function version: 0.1.2 #' #' @note Row and column names are transformed to numeric and also summed up; this is not a bug #' but a feature! #' #' @return [matrix] #' #' @examples #' m <- matrix(data = c(rep(1:20,each = 20)), ncol = 10, nrow = 20) #' rownames(m) <- 1:nrow(m) #' colnames(m) <- 1:ncol(m) #' #' .matrix_binning(m, bin_size = 4) #' #' @md #' @noRd .matrix_binning <- function( m, bin_size = 1, bin_col = FALSE, names = NULL) { .set_function_name(".matrix_binning") on.exit(.unset_function_name(), add = TRUE) #@ The only check .validate_class(m, "matrix") ## transpose in column mode if(bin_col) m <- t(m) ## binning calculation ##set groups ##with the correction in the 2nd line we ##get rid potential problems groups <- rep(1:nrow(m), each = bin_size)[1:nrow(m)] ##row binning (thats all) temp_m <- rowsum(m, group = groups) ## Correct names if(!is.null(names[1])){ if(names[1] == "groups"){ ##get rownames correct (it is the end of each bin) row_names <- rownames(m)[which(diff(groups) != 0)] ##correct last value if(length(row_names) < nrow(m)) row_names <- c(row_names,rownames(m)[nrow(m)]) }else if(names[1] == "mean"){ groups <- rep(1:nrow(m), each = bin_size)[1:nrow(m)] row_names <- as.numeric(rownames(m)) row_names <- tapply(X = row_names, INDEX = groups, FUN = mean) }else if(names[1] == "sum"){ row_names <- rowsum(as.numeric(rownames(m)), group = groups) }else{ row_names <- names } ##reset rownames and make sure it fits the length rownames(temp_m) <- rep(row_names, length.out = nrow(temp_m)) }else{ rownames(temp_m) <- NULL } ## re-transpose in column mode if(bin_col) temp_m <- t(temp_m) ## return return(temp_m) } #++++++++++++++++++++++++++++++ #+ .expand_parameters + #++++++++++++++++++++++++++++++ #' @title Expand function parameters of self-call #' #' @description For the self-call, the function parameters need to #' be expanded, this was done, so far in a non-consistent way and #' repeated in every function using the self-call. This functions #' does it once and for all similar in all functions. #' #' **NOTE**: the first argument is never extended due to performance reasons, #' it might be a very large object #' #' @param len [numeric] (**required**): length of the parameter expansion #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @return [list] with expanded parameters #' #' @md #' @noRd .expand_parameters <- function(len){ ##get original definition and the call of f f_def <- sys.function(sys.parent()) f_call <- sys.call(sys.parent()) ## get parent environment because we have to evaluate ## objects in the parent environment. p_env <- parent.env(environment()) ##extract arguments (do not consider the first argument, this might be a very ##large object) args_default <- as.list(f_def)[-length(as.list(f_def))][-1] args_new <- as.list(match.call(f_def, f_call, FALSE))[-c(1:2)] ##now we have to make sure that we evaluate all language objects ##before passing them further down if(length(args_new) > 0){ for(i in 1:length(args_new)){ if(class(args_new[[i]])[1] == "name" | class(args_new[[i]])[1] == "call" | class(args_new[[i]])[1] == "(" ) { args_new[[i]] <- eval(args_new[[i]], envir = p_env) } } } ##combine the two argument lists args <- modifyList( x = args_default, val = args_new, keep.null = TRUE) ##evaluate arguments and take care of missing values for(i in 1:length(args)){ if(is.na(names(args[i])) || names(args[i]) == "...") next if(class(args[[i]])[1] == "name" & names(args[i]) != "...") { .throw_error("Argument '", names(args[i]), "' missing, with no default") } ##evaluate and cover special cases if(!is.null(args[[i]])) args[[i]] <- eval(args[[i]]) if(inherits(args[i], "list") & length(args[[i]]) == 0) args[[i]] <- list() } ##expand all arguments ##we have two conditions and three cases ##1: the argument is a list AND the list itself is not named ## ... the case when the user what to use different values for the objects ##2: the argument is no list ... ## ... the standard automated expansion ## ... OR it is a list with names (e.g., rejection.criteria = list(recycling.ration = 10)) for(i in 1:length(args)){ if(inherits(args[[i]], "list") & is.null(names(args[[i]]))){ args[[i]] <- rep(args[[i]], length = len[1]) } else { args[[i]] <- rep(list(args[[i]]), length = len[1]) } } return(args) } #++++++++++++++++++++++++++++++ #+ .calc_HPDI + #++++++++++++++++++++++++++++++ #' @title Calculates Highest Probability Density Interval #' #' @description The idea of this function is to provide a convenient #' method to calculate the highest probability density intervals for #' sets of data. This function might be exported later #' Currently it follows roughly the idea of what is implemented #' in `code` and `hdrcde`. If the results has more than one peak, #' also this is shown, therefore the output is a matrix #' #' @param object [numeric] (**required**): numeric object with input data #' #' @param prob [numeric] (*with default*): sets aimed probability interval #' #' @param plot [logical] (*with default*): enable/disable the plot output. #' #' @param ... further arguments passed to [stats::density] #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @references #' Hyndman, R.J., 1996. Computing and Graphing Highest Density Regions. #' The American Statistician 50, 120–8. doi:10.2307/2684423 #' #' @examples #' x <- rnorm(100) #' .calc_HPDI(x) #' #' @return [matrix] with HPDI #' #' @md #' @noRd .calc_HPDI <- function(object, prob = 0.95, plot = FALSE, ...){ ##estimate density dens <- density(object, ...) diff <- diff(dens$x[1:2]) ##calculate probabilities m <- cbind(matrix(c(dens$x, dens$y), ncol = 2), dens$y * diff) o <- order(m[, 3], decreasing = TRUE) m_ind <- which(cumsum(m[o, 3]) <= prob) thres <- suppressWarnings(min(m[o, 2][m_ind])) ##get peaks peaks_id <- which(abs(diff((m[,2] - thres) > 0)) == 1) ##calculate HPDI HPDI <- matrix(NA, ncol = 2, nrow = 1) if(length(peaks_id != 0)) HPDI <- matrix(m[peaks_id,1], ncol = 2) colnames(HPDI) <- c("lower", "upper") attr(HPDI, "Probabilty") <- prob if(plot){ xy <- m[m_ind,c(1,2)] plot(dens, main = "HPDI (control plot)") abline(h = thres, lty = 2) if(length(peaks_id != 0)) { for(i in seq(1,length(peaks_id),2)) { lines(x = m[peaks_id[i]:peaks_id[i + 1], 1], y = m[peaks_id[i]:peaks_id[i + 1], 2], col = "red") } } } return(HPDI) } #++++++++++++++++++++++++++++++ #+ .download_file + #++++++++++++++++++++++++++++++ #'@title Internal File Download Handler #' #'@description For file imports using function commencing with `read_` the file download #'was little consistent and surprisingly error-prone. This function should keep the requirements #'more consistent #' #'@param url [character] (**required**) #' #'@param dest [character] (*with default*) #' #' @param verbose [logical] (*with default*) #' enable/disable output to the terminal. #' #'@returns Returns either nothing (no URL) or the file path of the downloaded file #' #'@author Sebastian Kreutzer, Insitut of Geography, Heidelberg University, Germany #' #'@examples #' #'## returns just NULL (no URL detected) #'.download_file(url = "teststs") #' #'## attempts download #'.download_file(url = "https://raw.githubusercontent.com/R-Lum/rxylib/master/inst/extg") #' #'## attempts download silently #' suppressMessages( #' .download_file(url = "https://raw.githubusercontent.com/R-Lum/rxylib/master/inst/extg")) #' #'@md #'@noRd .download_file <- function( url, destfile = tempfile(), verbose = TRUE ) { ## get name of calling function caller <- paste0("[", as.character(sys.call(which = -1)[[1]]), "()]") out_file_path <- NULL ## detect and extract URL if(grepl(pattern = "https?\\:\\/\\/", x = url, perl = TRUE)) { ## status reports if (verbose) { message(paste0(caller, " URL detected: ", url)) message(paste0(caller, " Attempting download ... "), appendLF = FALSE) } ## extract URL from string only url <- regmatches(x = url, m = regexec(pattern = "https?\\:\\/\\/.+", text = url, perl = TRUE))[[1]] fail.msg <- function(w) { if (verbose) message("FAILED") NULL } ## use internal download t <- tryCatch( expr = download.file( url = url, destfile = destfile, quiet = TRUE, mode = "wb", ## this is needed for Windows otherwise the download does not work cacheOK = FALSE, method = "auto"), warning = fail.msg, error = fail.msg) if(!is.null(t) && t == 0) { if (verbose) message("OK ", appendLF = TRUE) out_file_path <- destfile unlink(url) } } ## return file path return(out_file_path) } #'@title Extract named element from nested list #' #'@description The function extracts a named element from a nested list. It assumes #'that the name is unique in the nested list #' #'@param l [list] (**required**): input list for which we search the elements #' #'@param element [character] (**required**): name of the element we are looking for #' #'@returns Returns a flat [list] with only the elements with a particular name #' #'@author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany); #'inspired by a ChatGPT request (2024-07-01) #' #'@md #'@noRd .get_named_list_element <- function(l, element) { ## set helper function to iterate over list f_iterate <- function(x, env) { if (inherits(x, "list")) { ## if name is in element, return element and update out if (element %in% names(x)) { tmp <- c(out, list(x[names(x) %in% element])) assign(x = "out", value = tmp, envir = env) } ## call the helper function with lapply lapply(x, f_iterate, env = env) } } ## set output list and get current environment out <- list() env <- environment() ## call recursive function f_iterate(l, env) ## unlist output (and keep NA) out <- unlist(out, recursive = FALSE) ## return return(out) } #' @title Set/unset the function name for error/warning reporting #' #' @description #' These utilities allow more precise error reporting from `.throw_error()`, #' `.throw_warning()` and `.throw_message()`. They must be called exactly once #' if the function calls one of the `.throw_*()` or `.validate_*()` functions. #' #' @param name [character] (**required**): the name of the function #' #' @details #' The `.LuminescenceEnv` package environment stores a list (`fn_stack`) #' that is used to store the stack of function calls currently executing. #' The stack is at the beginning an empty list, but whenever a function is #' called, that function add its own name to it via `.set_function_name()`. #' Conversely, when the function returns, it clears the top of the stack #' via `.unset_function_name()`. #' #' In order to maintain the stack in a consistent state, it is important that #' each call to `.set_function_name()` is accompanied by a corresponding call #' to `.unset_function_name()`. As the stack must be updated also when a #' function (or any of its callees) encounters an error, the calls to #' `.unset_function_name()` must be delegated to `on.exit(..., add = TRUE)`. #' #' Therefore, it is suggested to put these two lines at the very beginning #' of each function (if any of the throwing/validating functions is used): #' #' .set_function_name("name_of_the_function") #' on.exit(.unset_function_name(), add = TRUE) #' #' @md #' @noRd .set_function_name <- function(name) { .LuminescenceEnv$fn_stack[length(.LuminescenceEnv$fn_stack) + 1] <- name } #' @rdname .set_function_name #' @md #' @noRd .unset_function_name <- function() { .LuminescenceEnv$fn_stack[length(.LuminescenceEnv$fn_stack)] <- NULL } #'@title Throws a Custom Tailored Error Message #' #'@param ... the error message to throw #' #'@md #'@noRd .throw_error <- function(...) { top.idx <- length(.LuminescenceEnv$fn_stack) stop("[", .LuminescenceEnv$fn_stack[[top.idx]], "()] ", ..., call. = FALSE) } #'@title Throws a Custom Tailored Warning Message #' #'@param ... the warning message to throw #' #'@md #'@noRd .throw_warning <- function(...) { top.idx <- length(.LuminescenceEnv$fn_stack) warning("[", .LuminescenceEnv$fn_stack[[top.idx]], "()] ", ..., call. = FALSE) } #'@title Throws a Custom Tailored Message #' #'@param ... the message to throw, preceded by "Error:" #' #'@md #'@noRd .throw_message <- function(...) { top.idx <- length(.LuminescenceEnv$fn_stack) message("[", .LuminescenceEnv$fn_stack[[top.idx]], "()] Error: ", ...) } #' @title Silence Output and Warnings during Tests #' #' @description #' This is helpful so that during tests the terminal is not filled up by #' the output from the function tested, which is often left intentionally #' verbose to facilitate the coverage analysis. #' #' This was originally defined in `tests/testthat/setup.R`, but unfortunately #' that file is not sourced by `covr::file_coverage()` (as opposed to what #' happens with `testthat::test_file()` and `covr::package_coverage()`), #' which makes it harder to work iteratively with it. #' #' @param expr [expression] an R expression (often a function, but can be #' any amount of code) the output of which needs to be silenced #' #' @examples #' SW({ #' template_DRAC(preset = "DRAC-example_quartz") #' }) #' #' @md #' @noRd SW <- function(expr) { capture.output(suppressMessages(suppressWarnings(expr))) } #' @title Validate a character argument from a list of choices #' #' @description #' This is inspired by [base::match.arg], but is has a more user-friendly #' error message as it reports the exact name of the argument that is being #' validated. This function always requires the choices to be specified: this #' better fits with the current state of the Luminescence package, which only #' rarely lists all choices in the formal function arguments, so #' [base::match.arg] would have very limited use. #' #' @param arg [character] (**required**): variable to validate. #' @param choices [vector] [character] (**required**): a vector of candidate #' values. #' @param null.ok [logical] (*with default*): whether a `NULL` value should be #' considered valid (`FALSE` by default). #' @param name [character] (*with default*): variable name to report in case #' of error; if not specified it's inferred from the name of the #' variable tested. #' @param extra [character] (*with default*): additional choice to be reported #' after the valid choices and preceded by "or". If `null.ok = TRUE`, #' the text reported is automatically set to `"or NULL"`, otherwise it #' will take the form `"or {extra}"`. #' #' @return #' The validated choice (may be `NULL` if `arg = NULL` and `null.ok = TRUE`). #' If `arg` contains multiple elements, only the first matching one will be #' returned. #' #' @md #' @noRd .validate_args <- function(arg, choices, null.ok = FALSE, name = NULL, extra = NULL) { if (is.null(arg) && null.ok) return(NULL) ## name of the argument to report if not specified if (is.null(name)) name <- all.vars(match.call())[1] ## `arg` will have multiple values when the available choices are listed ## in the function's formal arguments: in that case all elements in `arg` ## are also in `choices` and we return the first one if (length(arg) > 1L) { if (all(arg %in% choices)) return(arg[1L]) ## we throw an error to catch cases when the formal arguments are ## changed but `choices` has not been updated .throw_error("'", name, "' contains multiple values but not all of them ", "match 'choices'") } ## additional text to append after the valid choices to account for ## extra options that cannot be validated or for NULL choices.extra <- c(sQuote(choices, q = FALSE), extra) if (null.ok) choices.extra <- c(choices.extra, "NULL") ## use an 'or' instead of a comma before the last choice if (length(choices.extra) > 1) { msg.head <- head(choices.extra, -1) msg.tail <- paste(" or", tail(choices.extra, 1)) } else { msg.head <- choices.extra msg.tail <- NULL } idx.match <- pmatch(arg, choices, nomatch = 0L, duplicates.ok = TRUE) if (all(idx.match == 0L)) .throw_error("'", name, "' should be one of ", .collapse(msg.head, quote = FALSE), msg.tail) idx <- idx.match[idx.match > 0L] choices[idx] } #' @title Validate an argument from a list of classes #' #' @param arg [character] (**required**): variable to validate. #' @param classes [vector] [character] (**required**): a vector of candidate #' classes or types. #' @param throw.error [logical] (*with default*): whether an error should be #' thrown in case of failed validation (`TRUE` by default). If `FALSE`, #' the function raises a warning and proceeds. #' @param extra [character] (*with default*): additional choice to be reported #' after the valid choices and preceded by "or". #' @param name [character] (*with default*): variable name to report in case #' of error: if specified, it's reported as is; if not specified it's #' inferred from the name of the variable tested and reported with #' quotes. #' #' @return #' If `throw.error = TRUE`, the function throws an error and doesn't return #' anything. Otherwise, it will return a boolean to indicate whether validation #' was successful or not. #' #' @md #' @noRd .validate_class <- function(arg, classes, throw.error = TRUE, name = NULL, extra = NULL) { ## name of the argument to report if not specified if (is.null(name)) name <- sprintf("'%s'", all.vars(match.call())[1]) if (missing(arg) || sum(inherits(arg, classes)) == 0L) { ## additional text to append after the valid classes to account for ## extra options that cannot be validated but we want to report classes.extra <- c(sQuote(classes, q = FALSE), extra) ## use an 'or' instead of a comma before the last choice if (length(classes.extra) > 1) { msg.head <- head(classes.extra, -1) msg.tail <- paste(" or", tail(classes.extra, 1)) } else { msg.head <- classes.extra msg.tail <- NULL } msg <- paste0(name, " should be of class ", .collapse(msg.head, quote = FALSE), msg.tail) if (throw.error) .throw_error(msg) .throw_warning(msg) return(FALSE) } return(TRUE) } #' @title Validate that a variable is not empty #' #' @param arg [character] (**required**): variable to validate. #' @param what [character] (**required**): the type of the variable, used #' only in the message reported; if not specified it's inferred from #' they type of the variable tested. #' @param throw.error [logical] (*with default*): whether an error should be #' thrown in case of failed validation (`TRUE` by default). If `FALSE`, #' the function raises a warning and proceeds. #' @param name [character] (*with default*): variable name to report in case #' of error: if specified, it's reported as is; if not specified it's #' inferred from the name of the variable tested and reported with #' quotes. #' #' @return #' If `throw.error = TRUE`, the function throws an error and doesn't return #' anything. Otherwise, it will return a boolean to indicate whether validation #' was successful or not. #' #' @md #' @noRd .validate_not_empty <- function(arg, what = NULL, throw.error = TRUE, name = NULL) { ## type of the argument to report if not specified if (is.null(what)) what <- class(arg)[1] ## name of the argument to report if not specified if (is.null(name)) name <- sprintf("'%s'", all.vars(match.call())[1]) if (NROW(arg) == 0 || NCOL(arg) == 0) { msg <- paste0(name, " cannot be an empty ", what) if (throw.error) .throw_error(msg) .throw_warning(msg) return(FALSE) } return(TRUE) } #' @title Validate the length of a variable #' #' @param arg [character] (**required**): variable to validate. #' @param exp.length [integer] (**required**): the expected length. #' @param throw.error [logical] (*with default*): whether an error should be #' thrown in case of failed validation (`TRUE` by default). If `FALSE`, #' the function raises a warning and proceeds. #' @param name [character] (*with default*): variable name to report in case #' of error: if specified, it's reported as is; if not specified it's #' inferred from the name of the variable tested and reported with #' quotes. #' #' @return #' If `throw.error = TRUE`, the function throws an error and doesn't return #' anything. Otherwise, it will return a boolean to indicate whether validation #' was successful or not. #' #' @md #' @noRd .validate_length <- function(arg, exp.length, throw.error = TRUE, name = NULL) { ## name of the argument to report if not specified if (is.null(name)) name <- sprintf("'%s'", all.vars(match.call())[1]) if (length(arg) != exp.length) { msg <- paste0(name, " should have length ", exp.length) if (throw.error) .throw_error(msg) .throw_warning(msg) return(FALSE) } return(TRUE) } #' @title Validate Scalar Variables Expected to be Positive #' #' @param val [numeric] (**required**): value to validate #' @param int [logical] (*with default*): whether the value has to be an #' integer (`FALSE` by default) #' @param null.ok [logical] (*with default*): whether a `NULL` value should be #' considered valid (`FALSE` by default) #' @param name [character] (*with default*): variable name to report in case #' of error: if specified, it's reported as is; if not specified it's #' inferred from the name of the variable tested and reported with #' quotes. #' #' @md #' @noRd .validate_positive_scalar <- function(val, int = FALSE, null.ok = FALSE, name = NULL) { if (missing(val) || is.null(val) && null.ok) return() if (!is.numeric(val) || length(val) != 1 || is.na(val) || val <= 0 || (int && val != as.integer(val))) { if (is.null(name)) name <- sprintf("'%s'", all.vars(match.call())[1]) .throw_error(name, " should be a positive ", if (int) "integer ", "scalar") } } #' @title Validate logical scalar variables #' #' @param val [numeric] (**required**): value to validate #' @param null.ok [logical] (*with default*): whether a `NULL` value should be #' considered valid (`FALSE` by default) #' @param name [character] (*with default*): variable name to report in case #' of error: if specified, it's reported as is; if not specified it's #' inferred from the name of the variable tested and reported with #' quotes. #' #' @md #' @noRd .validate_logical_scalar <- function(val, null.ok = FALSE, name = NULL) { if (missing(val) || is.null(val) && null.ok) return() if (!is.logical(val) || length(val) != 1 || is.na(val)) { if (is.null(name)) name <- sprintf("'%s'", all.vars(match.call())[1]) .throw_error(name, " should be a single logical value") } } #' Check that a suggested package is installed #' #' Report a message with installation instructions if a suggested package #' is not available. #' #' @param pkg [character] (**required**): name of the package to check. #' @param reason [character] (*with default*): subject of the sentence, #' helpful to clarify why the package is being required. #' @param throw.error [logical] (*with default*): whether an error should be #' thrown in case of failed validation (`TRUE` by default). If `FALSE`, #' the function raises a warning and proceeds. #' #' @return #' If `throw.error = TRUE`, the function throws an error and doesn't return #' anything. Otherwise, it will return a boolean to indicate whether validation #' was successful or not. #' #' @md #' @noRd .require_suggested_package <- function(pkg, reason = "This function", throw.error = TRUE) { if (!requireNamespace(pkg, quietly = TRUE)) { msg <- paste("%s requires the '%s' package: to install it, run", "`install.packages('%s')` in your R console") msg <- sprintf(msg, reason, pkg, pkg) if (throw.error) .throw_error(msg) .throw_warning(msg) return(FALSE) } return(TRUE) } #' Create a list of objects repeated a given number of times #' #' @param x [vector] (**required**) An object to be repeated into a list. #' @param length [integer] (**required**) Length of the list to be produced. #' #' @return #' A list with the object repeated the specified number of times. #' #' @md #' @noRd .listify <- function(x, length) { if (!inherits(x, "list")) x <- list(x) rep(x, length = length) } #' Comma-separated string concatenation #' #' Collapse the elements of a vector into a comma-separated string, with #' the option of quoting each element. #' #' @param x [vector] A vector of elements to be collapsed into a comma-separated #' string. #' @param quote [logical] (*with default*) Whether each element should be #' surrounded by single quotes (`TRUE` by default). #' #' @return #' A comma-separated string where each element of the original vector is #' optionally surrounded by single quotes. #' #' @md #' @noRd .collapse <- function(x, quote = TRUE) { paste0(if (quote) sQuote(x, FALSE) else x, collapse=", ") } #' Shorten a filename #' #' Shorten a filename to the given width by cutting out characters from the #' middle, leaving the most significant parts. #' #' @param filename [character] (**required**) A file name #' @param max.width [integer] (*with default*) The maximum width available #' #' @return #' A filename not longer than the maximum available width. #' #' @md #' @noRd .shorten_filename <- function(filename, max.width = 70) { name.len <- nchar(filename) ## return the current file name if it already fits the available width if (name.len <= max.width) return(filename) ## shorten the filename part1.end <- ceiling(max.width / 5) part2.beg <- part1.end + name.len - max.width + 2 paste0(substring(filename, first = 1, last = part1.end), "\u2026", # "…" substring(filename, first = part2.beg)) } Luminescence/R/analyse_SAR.TL.R0000644000176200001440000005277514762554470015725 0ustar liggesusers#' @title Analyse SAR TL measurements #' #' @description The function performs a SAR TL analysis on a #' [RLum.Analysis-class] object including growth curve fitting. #' #' @details This function performs a SAR TL analysis on a set of curves. The SAR #' procedure in general is given by Murray and Wintle (2000). For the #' calculation of the `Lx/Tx` value the function [calc_TLLxTxRatio] is #' used. #' #' **Provided rejection criteria** #' #' `[recycling.ratio]`: calculated for every repeated regeneration dose point. #' #' `[recuperation.rate]`: recuperation rate calculated by #' comparing the `Lx/Tx` values of the zero regeneration point with the `Ln/Tn` #' value (the `Lx/Tx` ratio of the natural signal). For methodological #' background see Aitken and Smith (1988) #' #' @param object [RLum.Analysis-class] or a [list] of such objects (**required**) : #' input object containing data for analysis #' #' @param object.background currently not used #' #' @param signal.integral.min [integer] (**required**): #' requires the channel number for the lower signal integral bound #' (e.g. `signal.integral.min = 100`) #' #' @param signal.integral.max [integer] (**required**): #' requires the channel number for the upper signal integral bound #' (e.g. `signal.integral.max = 200`) #' #' @param integral_input [character] (*with default*): #' defines the input for the arguments `signal.integral.min` and #' `signal.integral.max`. These limits can be either provided `'channel'` #' number (the default) or `'temperature'`. If `'temperature'` is chosen, the #' best matching channel is selected. #' #' @param sequence.structure [vector] [character] (*with default*): #' specifies the general sequence structure. Three steps are allowed #' (`"PREHEAT"`, `"SIGNAL"`, `"BACKGROUND"`), in addition a #' parameter `"EXCLUDE"`. This allows excluding TL curves which are not #' relevant for the protocol analysis. (**Note:** No TL are removed by default) #' #' @param rejection.criteria [list] (*with default*): #' list containing rejection criteria in percentage for the calculation. #' #' @param dose.points [numeric] (*optional*): #' option set dose points manually #' #' @param log [character] (*with default*): #' a character string which contains `"x"` if the x-axis is to be logarithmic, #' `"y"` if the y axis is to be logarithmic and `"xy"` or `"yx"` if both axes #' are to be logarithmic. See #' [plot.default]). #' #' @param ... further arguments that will be passed to the function [fit_DoseResponseCurve] #' #' @return #' A plot (*optional*) and an [RLum.Results-class] object is #' returned containing the following elements: #' #' \item{De.values}{[data.frame] containing De-values and further parameters} #' \item{LnLxTnTx.values}{[data.frame] of all calculated `Lx/Tx` values including signal, background counts and the dose points.} #' \item{rejection.criteria}{[data.frame] with values that might by used as rejection criteria. NA is produced if no R0 dose point exists.} #' #' The output should be accessed using the function [get_RLum]. #' #' @note #' **THIS IS A BETA VERSION** #' #' None TL curves will be removed #' from the input object without further warning. #' #' @section Function version: 0.3.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [calc_TLLxTxRatio], [fit_DoseResponseCurve], [RLum.Analysis-class], #' [RLum.Results-class], [get_RLum] #' #' @references #' Aitken, M.J. and Smith, B.W., 1988. Optical dating: recuperation #' after bleaching. Quaternary Science Reviews 7, 387-393. #' #' Murray, A.S. and Wintle, A.G., 2000. Luminescence dating of quartz using an #' improved single-aliquot regenerative-dose protocol. Radiation Measurements #' 32, 57-73. #' #' @keywords datagen plot #' #' @examples #' #' ##load data #' data(ExampleData.BINfileData, envir = environment()) #' #' ##transform the values from the first position in a RLum.Analysis object #' object <- Risoe.BINfileData2RLum.Analysis(TL.SAR.Data, pos=3) #' #' ##perform analysis #' analyse_SAR.TL( #' object = object, #' signal.integral.min = 210, #' signal.integral.max = 220, #' fit.method = "EXP OR LIN", #' sequence.structure = c("SIGNAL", "BACKGROUND")) #' #' @md #' @export analyse_SAR.TL <- function( object, object.background, signal.integral.min, signal.integral.max, integral_input = "channel", sequence.structure = c("PREHEAT", "SIGNAL", "BACKGROUND"), rejection.criteria = list(recycling.ratio = 10, recuperation.rate = 10), dose.points, log = "", ... ) { .set_function_name("analyse_SAR.TL") on.exit(.unset_function_name(), add = TRUE) # Self-call ----------------------------------------------------------------------------------- if(inherits(object, "list")){ lapply(object, function(x) .validate_class(x, "RLum.Analysis", name = "All elements of 'object'")) ##run sequence results <- lapply(object, function(o){ analyse_SAR.TL( object = o, object.background = object.background, signal.integral.min = signal.integral.min, signal.integral.max = signal.integral.max, integral_input = integral_input, sequence.structure = sequence.structure, rejection.criteria = rejection.criteria, dose.points = dose.points, log = log, ... ) }) ##combine results results <- merge_RLum(results) ##return return(results) } # CONFIG ----------------------------------------------------------------- ## Integrity checks ------------------------------------------------------- .validate_class(object, "RLum.Analysis") if (missing("signal.integral.min")) { .throw_error("No value set for 'signal.integral.min'") } if (missing("signal.integral.max")) { .throw_error("No value set for 'signal.integral.max'") } integral_input <- .validate_args(integral_input, c("channel", "temperature")) # Protocol Integrity Checks -------------------------------------------------- ##set allowed curve types type.curves <- c("TL") ##Remove non TL-curves from object by selecting TL curves object@records <- get_RLum(object, recordType = type.curves, recursive = FALSE) ##ANALYSE SEQUENCE OBJECT STRUCTURE ##set vector for sequence structure temp.protocol.step <- rep(sequence.structure,length(object@records))[1:length(object@records)] ## grep object structure temp.sequence.structure <- structure_RLum(object) ##set values for step temp.sequence.structure[,"protocol.step"] <- temp.protocol.step ##remove TL curves which are excluded temp.sequence.structure <- temp.sequence.structure[which( temp.sequence.structure[,"protocol.step"]!="EXCLUDE"),] ##check integrity; signal and bg range should be equal if(length( unique( temp.sequence.structure[temp.sequence.structure[,"protocol.step"]=="SIGNAL","n.channels"]))>1){ .throw_error("Signal range differs, check sequence structure.\n", temp.sequence.structure) } ##check if the wanted curves are a multiple of the structure if(length(temp.sequence.structure[,"id"])%%length(sequence.structure)!=0) .throw_error("Input TL curves are not a multiple of the sequence structure") # # Calculate LnLxTnTx values -------------------------------------------------- ##grep IDs for signal and background curves TL.preheat.ID <- temp.sequence.structure[ temp.sequence.structure[,"protocol.step"] == "PREHEAT","id"] TL.signal.ID <- temp.sequence.structure[ temp.sequence.structure[,"protocol.step"] == "SIGNAL","id"] TL.background.ID <- temp.sequence.structure[ temp.sequence.structure[,"protocol.step"] == "BACKGROUND","id"] ## check that `dose.points` is compatible with our signals: ## as we expect each signal to have an Lx and a Tx components (see calls ## to calc_TLLxTxRatio()), `dose.points` must divide `length(TL.signal.ID)` ## in order for vector recycling to work when further down we do ## `LnLxTnTx$Dose <- dose.points` if (!missing(dose.points)) { if ((length(TL.signal.ID) / 2) %% length(dose.points) != 0) { .throw_error("Length of 'dose.points' not compatible with number ", "of signals") } } ##comfort ... translate integral limits from temperature to channel if(integral_input == "temperature"){ signal.integral.min <- which.min(abs( signal.integral.min - get_RLum(object, record.id = TL.signal.ID[1])[, 1] )) signal.integral.max <- which.min(abs( signal.integral.max - get_RLum(object, record.id = TL.signal.ID[1])[, 1] )) } ##calculate LxTx values using external function LnLxTnTx <- NULL for(i in seq(1,length(TL.signal.ID),by=2)){ Lx.data.background <- Tx.data.background <- NULL if (length(TL.background.ID) > 0) { Lx.data.background <- get_RLum(object, record.id = TL.background.ID[i]) Tx.data.background <- get_RLum(object, record.id = TL.background.ID[i + 1]) } LxTxRatio <- calc_TLLxTxRatio( Lx.data.signal = get_RLum(object, record.id = TL.signal.ID[i]), Tx.data.signal = get_RLum(object, record.id = TL.signal.ID[i + 1]), Lx.data.background = Lx.data.background, Tx.data.background = Tx.data.background, signal.integral.min, signal.integral.max ) temp.LnLxTnTx <- get_RLum(LxTxRatio) rm(LxTxRatio) ##grep dose temp.Dose <- object@records[[TL.signal.ID[i]]]@info$IRR_TIME if (is.null(temp.Dose)) { temp.Dose <- NA } ## append row to the data.frame LnLxTnTx <- rbind(LnLxTnTx, cbind(Dose = temp.Dose, temp.LnLxTnTx)) } ##set dose.points manually if argument was set if(!missing(dose.points)){ temp.Dose <- dose.points LnLxTnTx$Dose <- dose.points } # Set regeneration points ------------------------------------------------- #generate unique dose id - this are also the # for the generated points temp.DoseName <- data.frame(Name = paste0("R", seq(nrow(LnLxTnTx)) - 1), Dose = LnLxTnTx[["Dose"]]) ##set natural temp.DoseName[temp.DoseName[, "Name"] == "R0", "Name"] <- "Natural" ##set R0 temp.DoseName[temp.DoseName[, "Name"] != "Natural" & temp.DoseName[, "Dose"] == 0, "Name"] <- "R0" ##find duplicated doses (including 0 dose - which means the Natural) temp.DoseName <- cbind(temp.DoseName, Repeated = duplicated(temp.DoseName[, "Dose"])) ##correct value for R0 (it is not really repeated) temp.DoseName[temp.DoseName[,"Dose"]==0,"Repeated"]<-FALSE ##combine in the data frame LnLxTnTx <- cbind(temp.DoseName[, c("Name", "Repeated")], LnLxTnTx) ## convert to data.table for more convenient column manipulation temp <- data.table(LnLxTnTx[, c("Name", "Dose", "Repeated", "LxTx")]) ## silence notes raised by R CMD check prev.idx <- criterion <- value <- threshold <- status <- NULL Name <- Dose <- LxTx <- Repeated <- NULL # Calculate Recycling Ratio ----------------------------------------------- ## we first create a dummy object to use in case there are no repeated doses, ## but replace it in the `if` block if there are any rej.thresh <- rejection.criteria$recycling.ratio / 100 rej.thresh.text <- paste("\u00b1", rej.thresh) # \u00b1 is ± RecyclingRatio <- data.table(criterion = "recycling ratio", value = NA, threshold = rej.thresh.text, status = NA_character_) if (any(temp$Repeated)) { ## find the index of the previous dose of each repeated dose temp[, prev.idx := match(Dose, Dose)] ## calculate the recycling ratio temp[, criterion := paste0(Name, "/", Name[prev.idx])] temp[, value := LxTx / LxTx[prev.idx]] ## set status according to the given rejection threshold temp[, threshold := rej.thresh.text] temp[, status := fifelse(abs(1 - value) > rej.thresh, "FAILED", "OK")] ## keep only the repeated doses RecyclingRatio <- temp[Repeated == TRUE, list(criterion, value, threshold, status)] } # Calculate Recuperation Rate --------------------------------------------- ## we first create a dummy object to use in case there is no R0 dose, ## but replace it in the `if` block if there is one Recuperation <- data.table(criterion = "recuperation rate", value = NA_real_, threshold = rejection.criteria$recuperation.rate / 100, status = NA_character_) if ("R0" %in% temp$Name) { Recuperation[, value := round(temp[Name == "R0", LxTx] / temp[Name == "Natural", LxTx], digits = 4)] Recuperation[, status := fifelse(value > threshold, "FAILED", "OK")] } ## join the two tables and convert back to data.frame RejectionCriteria <- as.data.frame(rbind(RecyclingRatio, Recuperation)) rm(temp) ##============================================================================## ##PLOTTING ##============================================================================## # Plotting - Config ------------------------------------------------------- ##grep plot parameter par.default <- par(no.readonly = TRUE) on.exit(par(par.default), add = TRUE) ##grep colours col <- get("col", pos = .LuminescenceEnv) ##set layout matrix layout(matrix(c( 1, 1, 2, 2, 1, 1, 2, 2, 3, 3, 4, 4, 3, 3, 4, 4, 5, 5, 5, 5 ), 5, 4, byrow = TRUE)) par(oma = c(0, 0, 0, 0), mar = c(4, 4, 3, 3)) ## 1 -> TL Lx ## 2 -> TL Tx ## 3 -> TL Lx Plateau ## 4 -> TL Tx Plateau ## 5 -> Legend ##recalculate signal.integral from channels to temperature signal.integral.temperature <- c(object@records[[TL.signal.ID[1]]]@data[signal.integral.min,1] : object@records[[TL.signal.ID[1]]]@data[signal.integral.max,1]) ## warning if number of curves exceeds colour values if(length(col) 0) { mtext("[FAILED]", col = "red") } } # Plotting GC ---------------------------------------- #reset par par(par.default) ##create data.frame temp.sample <- data.frame( Dose = LnLxTnTx$Dose, LxTx = LnLxTnTx$LxTx, LxTx.Error = LnLxTnTx$LxTx.Error, TnTx = LnLxTnTx$TnTx ) ##set NA values to 0 temp.sample[is.na(temp.sample$LxTx.Error),"LxTx.Error"] <- 0 ##run curve fitting temp.GC <- try(fit_DoseResponseCurve( object = temp.sample, ... )) ## fit_DoseResponseCurve() can fail in two ways: ## 1. either with a hard error, in which case there's nothing much we ## can do and stop early by returning NULL if(inherits(temp.GC, "try-error")){ return(NULL) } ## 2. or with a soft error by returning NULL, in which case we set ## temp.GC to NA and continue (this can be done after the call to ## get_RLum(), as it deals well with NULLs) temp.GC <- get_RLum(temp.GC)[, c("De", "De.Error")] if (is.null(temp.GC)) temp.GC <- NA ##add rejection status if(length(grep("FAILED",RejectionCriteria$status))>0){ temp.GC <- data.frame(temp.GC, RC.Status="FAILED") }else{ temp.GC <- data.frame(temp.GC, RC.Status="OK") } # Return Values ----------------------------------------------------------- newRLumResults.analyse_SAR.TL <- set_RLum( class = "RLum.Results", data = list( data = temp.GC, LnLxTnTx.table = LnLxTnTx, rejection.criteria = RejectionCriteria ), info = list(info = sys.call()) ) return(newRLumResults.analyse_SAR.TL) } Luminescence/R/RLum.Analysis-class.R0000644000176200001440000010336214762554470016777 0ustar liggesusers#' Class `"RLum.Analysis"` #' #' Object class to represent analysis data for protocol analysis, i.e. all curves, #' spectra etc. from one measurements. Objects from this class are produced, #' by e.g. [read_XSYG2R], [read_Daybreak2R] #' #' #' @name RLum.Analysis-class #' #' @docType class #' #' @slot protocol #' Object of class [character] describing the applied measurement protocol #' #' @slot records #' Object of class [list] containing objects of class [RLum.Data-class] #' #' @note #' The method [structure_RLum] is currently just available for objects #' containing [RLum.Data.Curve-class]. #' #' @section Objects from the Class: #' Objects can be created by calls of the form `set_RLum("RLum.Analysis", ...)`. #' #' @section Class version: 0.4.18 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [Risoe.BINfileData2RLum.Analysis], #' [Risoe.BINfileData-class], [RLum-class] #' #' @keywords classes methods #' #' @examples #' #' showClass("RLum.Analysis") #' #' ##set empty object #' set_RLum(class = "RLum.Analysis") #' #' ###use example data #' ##load data #' data(ExampleData.RLum.Analysis, envir = environment()) #' #' ##show curves in object #' get_RLum(IRSAR.RF.Data) #' #' ##show only the first object, but by keeping the object #' get_RLum(IRSAR.RF.Data, record.id = 1, drop = FALSE) #' #' @keywords internal #' #' @md #' @export setClass("RLum.Analysis", slots = list( protocol = "character", records = "list" ), contains = "RLum", prototype = list ( protocol = NA_character_, records = list() ) ) # as() ----------------------------------------------------------------------------------------- ##LIST ##COERCE RLum.Analyse >> list AND list >> RLum.Analysis #' as() - RLum-object coercion #' #' for `[RLum.Analysis-class]` #' #' **[RLum.Analysis-class]** #' #' \tabular{ll}{ #' **from** \tab **to**\cr #' `list` \tab `list`\cr #' } #' #' Given that the [list] consists of [RLum.Analysis-class] objects. #' #' @md #' @name as setAs("list", "RLum.Analysis", function(from,to){ new(to, protocol = NA_character_, records = from) }) setAs("RLum.Analysis", "list", function(from){ lapply(from@records, function(x) x) }) # show() -------------------------------------------------------------------------------------- #' @describeIn RLum.Analysis #' Show structure of `RLum.Analysis` object #' #' @md #' @export setMethod("show", signature(object = "RLum.Analysis"), function(object){ ##print cat("\n [RLum.Analysis-class]") ## show originator, for compatibility reasons with old example data if(.hasSlot(object, "originator")){cat("\n\t originator:", paste0(object@originator,"()"))} cat("\n\t protocol:", object@protocol) cat("\n\t additional info elements: ", if(.hasSlot(object, "info")){length(object@info)}else{0}) cat("\n\t number of records:", length(object@records)) #skip this part if nothing is included in the object if(length(object@records) > 0){ ##get object class types temp <- vapply(object@records, function(x){ class(x)[1] }, FUN.VALUE = vector(mode = "character", length = 1)) ##print object class types lapply(1:length(table(temp)), function(x){ ##show RLum class type cat("\n\t .. :", names(table(temp)[x]),":",table(temp)[x]) ##show structure ##set width option ... just an implementation for the tutorial output if(getOption("width")<=50) temp.width <- 4 else temp.width <- 7 ##set line break variable linebreak <- FALSE env <- environment() ##create terminal output terminal_output <- vapply(1:length(object@records), function(i) { if (names(table(temp)[x]) == is(object@records[[i]])[1]) { if (i %% temp.width == 0 & i != length(object@records)) { assign(x = "linebreak", value = TRUE, envir = env) } ##FIRST first <- paste0("#", i, " ", object@records[[i]]@recordType) ##LAST if (i < length(object@records) && !is.null(object@records[[i]]@info[["parentID"]]) && !is.null(object@records[[i + 1]]@info[["parentID"]]) && (object@records[[i]]@info[["parentID"]] == object@records[[i+1]]@info[["parentID"]])) { last <- " <> " }else { last <- " | " if (i == length(object@records)) { last <- "" } else if (linebreak) { last <- "\n\t .. .. : " assign(x = "linebreak", value = FALSE, envir = env) } } return(paste0(first,last)) }else{ return("") } }, FUN.VALUE = vector(mode = "character", length = 1)) ##print on screen, differentiate between records with many ##curves or just one if(any(grepl(terminal_output, pattern = "<>", fixed = TRUE))){ cat("\n\t .. .. : ", gsub(pattern = "|", replacement = "\n\t .. .. :", x = terminal_output, fixed = TRUE), sep = "") } else{ cat("\n\t .. .. : ", terminal_output, sep = "") } }) }else{ cat("\n\t >> This is an empty object, which cannot be used for further analysis! <<") } cat("\n") } )##end show method # set_RLum() ---------------------------------------------------------------------------------- #' @describeIn RLum.Analysis #' Construction method for [RLum.Analysis-class] objects. #' #' @param class [`set_RLum`] [character] (**required**): #' name of the `RLum` class to be created #' #' @param originator [`set_RLum`] [character] (*automatic*): #' contains the name of the calling function (the function that produces this object); #' can be set manually. #' #' @param .uid [`set_RLum`] [character] (*automatic*): #' sets an unique ID for this object using the internal C++ function `create_UID`. #' #' @param .pid [`set_RLum`] [character] (*with default*): #' option to provide a parent id for nesting at will. #' #' @param protocol [`set_RLum`] [character] (*optional*): #' sets protocol type for analysis object. Value may be used by subsequent analysis functions. #' #' @param records [`set_RLum`] [list] (**required**): #' list of [RLum.Analysis-class] objects #' #' @param info [`set_RLum`] [list] (*optional*): #' a list containing additional info data for the object #' #' **`set_RLum`**: #' #' Returns an [RLum.Analysis-class] object. #' #' @md #' @export setMethod( "set_RLum", signature = "RLum.Analysis", definition = function( class, originator, .uid, .pid, protocol = NA_character_, records = list(), info = list()) { ##produce empty class object newRLumAnalysis <- new(Class = "RLum.Analysis") ##allow self set to reset an RLum.Analysis object if(inherits(records, "RLum.Analysis")){ #fill slots (this is much faster than the old code!) newRLumAnalysis@protocol <- if(missing(protocol)) records@protocol else protocol newRLumAnalysis@originator <- originator newRLumAnalysis@records <- records@records newRLumAnalysis@info <- if(missing(info)) records@info else c(records@info, info) newRLumAnalysis@.uid <- .uid newRLumAnalysis@.pid <- if(missing(.pid)) records@.uid else .pid }else{ #fill slots (this is much faster than the old code!) newRLumAnalysis@protocol <- protocol newRLumAnalysis@originator <- originator newRLumAnalysis@records <- records newRLumAnalysis@info <- info newRLumAnalysis@.uid <- .uid newRLumAnalysis@.pid <- .pid } return(newRLumAnalysis) } ) # get_RLum() ---------------------------------------------------------------------------------- #' @describeIn RLum.Analysis #' Accessor method for RLum.Analysis object. #' #' The slots record.id, `@recordType`, `@curveType` and `@RLum.type` are optional to allow for records #' limited by their id (list index number), their record type (e.g. `recordType = "OSL"`) #' or object type. #' #' Example: curve type (e.g. `curveType = "predefined"` or `curveType ="measured"`) #' #' The selection of a specific RLum.type object superimposes the default selection. #' Currently supported objects are: RLum.Data.Curve and RLum.Data.Spectrum #' #' @param object (**required**): #' an object of class [RLum.Analysis-class] #' #' @param record.id [`get_RLum`]: [numeric] or [logical] (*optional*): #' IDs of specific records. If of type `logical` the entire id range is assumed #' and `TRUE` and `FALSE` indicates the selection. #' #' @param recordType [`get_RLum`]: [character] (*optional*): #' record type (e.g., "OSL"). Can be also a vector, for multiple matching, #' e.g., `recordType = c("OSL", "IRSL")` #' #' @param curveType [`get_RLum`]: [character] (*optional*): #' curve type (e.g. "predefined" or "measured") #' #' @param RLum.type [`get_RLum`]: [character] (*optional*): #' RLum object type. Defaults to "RLum.Data.Curve" and "RLum.Data.Spectrum". #' #' @param get.index [`get_RLum`]: [logical] (*optional*): #' return a numeric vector with the index of each element in the RLum.Analysis object. #' #' @param recursive [`get_RLum`]: [logical] (*with default*): #' if `TRUE` (default) when the result of the `get_RLum()` request is a single #' object, the object itself will be returned directly, rather than being #' wrapped in a list. Mostly this makes things easier, but this might be #' undesired if this method is used within a loop. #' #' @param drop [`get_RLum`]: [logical] (*with default*): #' coerce to the next possible layer (which are `RLum.Data`-objects), #' `drop = FALSE` keeps the original `RLum.Analysis` #' #' @param info.object [`get_RLum`]: [character] (*optional*): #' name of the wanted info element #' #' @param subset [`get_RLum`]: [expression] (*optional*): #' logical expression indicating elements or rows to keep: missing values are #' taken as false. This argument takes precedence over all other arguments, #' meaning they are not considered when subsetting the object. #' #' @param env [`get_RLum`]: [environment] (*with default*): #' An environment passed to [eval] as the enclosure. This argument is only #' relevant when subsetting the object and should not be used manually. #' #' @return #' #' **`get_RLum`**: #' #' Returns: #' #' 1. [list] of [RLum.Data-class] objects or #' 2. Single [RLum.Data-class] object, if only one object is contained and `recursive = FALSE` or #' 3. [RLum.Analysis-class] objects for `drop = FALSE` #' #' @md #' @export setMethod("get_RLum", signature = ("RLum.Analysis"), function(object, record.id = NULL, recordType = NULL, curveType = NULL, RLum.type = NULL, protocol = "UNKNOWN", get.index = NULL, drop = TRUE, recursive = TRUE, info.object = NULL, subset = NULL, env = parent.frame(2)) { .set_function_name("get_RLum") on.exit(.unset_function_name(), add = TRUE) if (!is.null(substitute(subset))) { # To account for different lengths and elements in the @info slot we first # check all unique elements (in all records) info_el <- unique(unlist(lapply(object@records, function(el) names(el@info)))) envir <- as.data.frame(do.call(rbind, lapply(object@records, function(el) { val <- c(curveType = el@curveType, recordType = el@recordType, unlist(el@info)) # add missing info elements and set NA if (any(!info_el %in% names(val))) { val_new <- setNames( rep("",length(info_el[!info_el %in% names(val)])), info_el[!info_el %in% names(val)]) val <- c(val, val_new) } # order the named char vector by its names so we don't mix up the columns val <- val[order(names(val))] return(val) })), stringAsFactors = FALSE) ##select relevant rows sel <- tryCatch(eval( expr = substitute(subset), envir = envir, enclos = env ), error = function(e) { .throw_error("Invalid subset expression, valid terms are: ", .collapse(names(envir))) }) if (!is.logical(sel)) { .throw_error("'subset' must contain a logical expression") } if (all(is.na(sel))) sel <- FALSE if (any(sel)) { object@records <- object@records[sel] return(object) } else { tmp <- mapply(function(name, op) { message(" ", name, ": ", .collapse(unique(op), quote = FALSE)) }, names(envir), envir) .throw_message("'subset' expression produced an ", "empty selection, NULL returned") return(NULL) } } ##if info.object is set, only the info objects are returned else if(!is.null(info.object)) { if(info.object %in% names(object@info)){ unlist(object@info[info.object]) }else{ ##check for entries if(length(object@info) == 0){ .throw_warning("This 'RLum.Analysis' object has no info ", "objects, NULL returned") }else{ .throw_warning("Invalid 'info.object' name, valid names are: ", .collapse(names(object@info))) } return(NULL) } } else { ##check for records if (length(object@records) == 0) { .throw_warning("This 'RLum.Analysis' object has no records, ", "NULL returned") return(NULL) } ##record.id if (is.null(record.id)) { record.id <- c(1:length(object@records)) } else { .validate_class(record.id, c("integer", "numeric", "logical")) } ##logical needs a slightly different treatment ##Why do we need this? Because a lot of standard R functions work with logical ##values instead of numerical indices if (is.logical(record.id)) { record.id <- c(1:length(object@records))[record.id] } ##check if record.id exists if (!all(abs(record.id) %in% (1:length(object@records)))) { .throw_message("At least one 'record.id' is invalid, ", "NULL returned") return(NULL) } ##recordType if (is.null(recordType)) { recordType <- unique(vapply(object@records, function(x) x@recordType, character(1))) } else { .validate_class(recordType, "character") } ##curveType if (is.null(curveType)) { curveType <- unique(unlist(lapply(1:length(object@records), function(x) { object@records[[x]]@curveType }))) } else { .validate_class(curveType, "character") } ##RLum.type if (is.null(RLum.type)) { RLum.type <- c("RLum.Data.Curve", "RLum.Data.Spectrum", "RLum.Data.Image") } else { .validate_class(RLum.type, "character") } ##get.index if (is.null(get.index)) { get.index <- FALSE } else { .validate_logical_scalar(get.index) } ##get originator originator <- NA_character_ if (.hasSlot(object, "originator")) { originator <- object@originator } ##-----------------------------------------------------------------## ##a pre-selection is necessary to support negative index selection object@records <- object@records[record.id] record.id <- 1:length(object@records) ##select curves according to the chosen parameter if (length(record.id) >= 1) { temp <- lapply(record.id, function(x) { if (is(object@records[[x]])[1] %in% RLum.type) { ##as input a vector is allowed temp <- lapply(1:length(recordType), function(k) { ##translate input to regular expression recordType[k] <- glob2rx(recordType[k]) recordType[k] <- substr(recordType[k], start = 2, stop = nchar(recordType[k]) - 1) ##handle NA if(is.na(object@records[[x]]@recordType)) recordType_comp <- "NA" else recordType_comp <- object@records[[x]]@recordType ## get the results object and if requested, get the index if (grepl(recordType[k], recordType_comp) & object@records[[x]]@curveType %in% curveType) { if (!get.index) object@records[[x]] else x } }) ##remove empty entries and select just one to unlist temp <- temp[!vapply(temp, is.null,logical(1))] ##if list has length 0 skip entry if (length(temp) != 0) { temp[[1]] } else{ temp <- NULL } } }) ##remove empty list element temp <- temp[!vapply(temp, is.null, logical(1))] ##check if the produced object is empty and show warning message if (length(temp) == 0) .throw_warning("This request produced an empty list of records") ##remove list for get.index if (get.index) { return(unlist(temp)) } else{ if (!drop) { temp <- set_RLum( class = "RLum.Analysis", originator = originator, records = temp, protocol = object@protocol, .pid = object@.pid ) return(temp) } else{ if (length(temp) == 1 & recursive == TRUE) { return(temp[[1]]) } else{ return(temp) } } } } else{ ## FIXME(mcol): this block seems unreachable : as before the ## `if` block we set `record.id <- 1:length(object@records)`, ## it can never happen that `length(record.id) < 1` # nocov start if (!get.index[1]) { if (drop == FALSE) { ##needed to keep the argument drop == TRUE temp <- set_RLum( class = "RLum.Analysis", originator = originator, records = list(object@records[[record.id]]), protocol = object@protocol, .pid = object@.pid ) return(temp) } else{ return(object@records[[record.id]]) } } else{ return(record.id) } # nocov end } } }) # structure_RLum() ---------------------------------------------------------------------------- ### #' @describeIn RLum.Analysis #' Method to show the structure of an [RLum.Analysis-class] object. #' #' @param fullExtent [structure_RLum]; [logical] (*with default*): #' extends the returned `data.frame` to its full extent, i.e. all info elements #' are part of the return as well. The default value is `FALSE` as the data #' frame might become rather big. #' #' @return #' #' **`structure_RLum`**: #' #' Returns [data.frame-class] showing the structure. #' #' @md #' @export setMethod("structure_RLum", signature= "RLum.Analysis", definition = function(object, fullExtent = FALSE) { .set_function_name("structure_RLum") on.exit(.unset_function_name(), add = TRUE) ##check if the object containing other elements than allowed if(!all(vapply(object@records, FUN = class, character(1)) == "RLum.Data.Curve")) .throw_error("Only 'RLum.Data.Curve' objects are allowed") ##get length object temp.object.length <- length(object@records) ##ID temp.id <- seq_along(object@records) ##recordType temp.recordType <- vapply(object@records, function(x) { x@recordType }, character(1)) ##PROTOCOL STEP temp.protocol.step <- c(NA) length(temp.protocol.step) <- temp.object.length ## GET LIMITS temp.limits <- t(vapply(object@records, function(x) { c(nrow(x@data), min(x@data[, 1]), max(x@data[, 1]), min(x@data[, 2]), max(x@data[, 2])) }, numeric(5))) temp.n.channels <- temp.limits[, 1] temp.x.min <- temp.limits[, 2] temp.x.max <- temp.limits[, 3] temp.y.min <- temp.limits[, 4] temp.y.max <- temp.limits[, 5] ##.uid temp.uid <- unlist(lapply(object@records, function(x){x@.uid})) ##.pid temp.pid <- unlist(lapply(object@records, function(x){x@.pid})) if (length(temp.pid) > 1) temp.pid <- paste(temp.pid, collapse = ", ") ##originator temp.originator <- unlist(lapply(object@records, function(x){x@originator})) ##curveType temp.curveType <- unlist(lapply(object@records, function(x){x@curveType})) ##info elements as character value if (fullExtent) { temp.info.elements <- as.data.frame(data.table::rbindlist(lapply(object@records, function(x) { x@info }), fill = TRUE)) if (nrow(temp.info.elements) == 0) { ## if we are here temp.info.elements 0 rows and 0 columns: ## to avoid crashing further down in the data.frame() call, ## we create a data frame with the expected number of rows temp.info.elements <- data.frame(info = rep(NA, temp.object.length)) } } else{ temp.info.elements <- unlist(lapply(object@records, function(x) { if (length(x@info) != 0) { paste(names(x@info), collapse = " ") } else{ NA } })) } ##combine output to a data.frame return( data.frame( id = temp.id, recordType = temp.recordType, curveType = temp.curveType, protocol.step = temp.protocol.step, n.channels = temp.n.channels, x.min = temp.x.min, x.max = temp.x.max, y.min = temp.y.min, y.max = temp.y.max, originator = temp.originator, .uid = temp.uid, .pid = temp.pid, info = temp.info.elements, stringsAsFactors = FALSE ) ) }) # length_RLum() ------------------------------------------------------------------------------- #' @describeIn RLum.Analysis #' Returns the length of the object, i.e., number of stored records. #' #' @return #' #' **`length_RLum`** #' #' Returns the number records in this object. #' #' @md #' @export setMethod("length_RLum", "RLum.Analysis", function(object){ length(object@records) }) # names_RLum() -------------------------------------------------------------------------------- #' @describeIn RLum.Analysis #' Returns the names of the [RLum.Data-class] objects (same as shown with the #' `show` method) #' #' @return #' #' **`names_RLum`** #' #' Returns the names of the record types (`recordType`) in this object. #' #' @md #' @export setMethod("names_RLum", "RLum.Analysis", function(object){ sapply(object@records, function(x) x@recordType) }) ## add_metadata() ----------------------------------------------------------- #' @describeIn RLum.Analysis #' Adds metadata to [RLum.Analysis-class] objects #' #' @param info_element [character] (**required**) name of the metadata field #' to add #' #' @param value (**required**) The value assigned to the selected element #' of the metadata field. #' #' @keywords internal #' #' @md #' @export setMethod("add_metadata<-", signature= "RLum.Analysis", definition = function(object, info_element, value) { .set_function_name("add_metadata") on.exit(.unset_function_name(), add = TRUE) ## add the metadata to all records records <- lapply(object@records, function(x) { do.call(`add_metadata<-`, list(x, info_element = info_element, value = value)) }) object@records <- records assign(x = deparse(substitute(object))[1], object) }) ## rename_metadata() -------------------------------------------------------- #' @describeIn RLum.Analysis #' Renames a metadata entry of [RLum.Analysis-class] objects #' #' @param info_element [character] (**required**) name of the metadata field #' to rename #' #' @param value (**required**) The value assigned to the selected element #' of the `info` slot. #' #' @keywords internal #' #' @md #' @export setMethod("rename_metadata<-", signature= "RLum.Analysis", definition = function(object, info_element, value) { .set_function_name("rename_metadata") on.exit(.unset_function_name(), add = TRUE) ## rename the metadata field in all records records <- lapply(object@records, function(x) { do.call(`rename_metadata<-`, list(x, info_element = info_element, value = value)) }) object@records <- records assign(x = deparse(substitute(object))[1], object) }) ## replace_metadata() ------------------------------------------------------- #' @describeIn RLum.Analysis #' Replaces or removes metadata of [RLum.Analysis-class] objects #' #' @param info_element [character] (**required**) name of the metadata field #' to replace or remove #' #' @param value (**required**) The value assigned to the selected elements #' of the metadata field. If `NULL` the elements named in `info_element` #' will be removed. #' #' @keywords internal #' #' @md #' @export setMethod("replace_metadata<-", signature= "RLum.Analysis", definition = function(object, info_element, subset = NULL, value) { .set_function_name("replace_metadata") on.exit(.unset_function_name(), add = TRUE) ## this must be evaluated now, as inside the lapply() inner ## function it would be evaluated differently subset.expr <- substitute(subset) ## replace the metadata in all records records <- lapply(object@records, function(x) { do.call(`replace_metadata<-`, list(x, info_element = info_element, subset = subset.expr, verbose = FALSE, value = value)) }) object@records <- records assign(x = deparse(substitute(object))[1], object) }) # smooth_RLum() ------------------------------------------------------------------------------- #' @describeIn RLum.Analysis #' #' Smoothing of `RLum.Data` objects contained in this `RLum.Analysis` object #' using the internal function `.smoothing`. #' #' @param ... further arguments passed to underlying methods #' #' @return #' #' **`smooth_RLum`** #' #' Same object as input, after smoothing #' #' @md #' @export setMethod( f = "smooth_RLum", signature = "RLum.Analysis", function(object, ...) { object@records <- lapply(object@records, function(x){ smooth_RLum(x, ...) }) return(object) } ) ## sort_RLum() -------------------------------------------------------------- #' @describeIn RLum.Analysis #' #' Sorting of `RLum.Data` objects contained in this `RLum.Analysis` object. #' At least one of `slot` and `info_element` must be provided. If both are #' given, ordering by `slot` always supersedes ordering by `info_element`. #' #' @param slot [character] (*optional*): slot name to use in sorting. #' #' @param info_element [character] (*optional*): name of the `info` field #' to use in sorting. #' #' @param decreasing [logical] (*with default*): whether the sort order should #' be decreasing (`FALSE` by default). #' #' @param ... further arguments passed to underlying methods #' #' @return #' #' **`sort_RLum`** #' #' Same object as input, but sorted according to the specified parameters. #' #' @md #' @export setMethod( f = "sort_RLum", signature = "RLum.Analysis", function(object, slot = NULL, info_element = NULL, decreasing = FALSE, ...) { .set_function_name("sort_RLum") on.exit(.unset_function_name(), add = TRUE) ## an empty object has nothing to sort if (length(object) == 0) return(object) ## input validation sort.by.slot <- FALSE if (!is.null(slot)) { .validate_class(slot, "character", extra = "NULL") valid.names <- slotNames(object@records[[1]]) if (any(!slot %in% valid.names)) { .throw_error("Invalid 'slot' name, valid names are: ", .collapse(valid.names)) } if (length(slot) > 1) { message("[sort_RLum()]: Only the first field will be used in sorting") slot <- slot[1] } sort.by.slot <- TRUE } if (!is.null(info_element)) { .validate_class(info_element, "character", extra = "NULL") valid.names <- names(object@records[[1]]@info) if (any(!info_element %in% valid.names)) { .throw_error("Invalid 'info_element' name, valid names are: ", .collapse(valid.names)) } if (length(info_element) > 1) { message("[sort_RLum()]: Only the first field will be used in sorting") info_element <- info_element[1] } } if (is.null(slot) && is.null(info_element)) { .throw_error("At least one of 'slot' and 'info_element' should not be NULL") } .validate_logical_scalar(decreasing) ## extract the values from the records according to which the sorting is ## done: ordering by slot always supersedes ordering by info_element vals <- if (sort.by.slot) { sapply(object@records, function(x) slot(x, slot)) } else { sapply(object@records, function(x) slot(x, "info")[[info_element]]) } ## determine the new ordering if possible tryCatch(ord <- order(vals, decreasing = decreasing), error = function(e) { .throw_error("Records could not be sorted according to ", ifelse(sort.by.slot, paste0("slot = '", slot, "'"), paste0("info_element = '", info_element, "'"))) }) ## return reordered object return(object[ord]) } ) # melt_RLum() ------------------------------------------------------------------------------- #' @describeIn RLum.Analysis #' Melts [RLum.Analysis-class] objects into a flat data.frame to be used #' in combination with other packages such as `ggplot2`. #' #' @return #' #' **`melt_RLum`** #' #' Flat [data.frame] with `X`, `Y`, `TYPE`, `UID` #' #' @md #' @export setMethod( f = "melt_RLum", signature = "RLum.Analysis", function(object) { melt_RLum(object@records) } ) ## view() ------------------------------------------------------------------- #' @describeIn RLum.Analysis #' #' View method for [RLum.Analysis-class] objects #' #' @param ... other arguments that might be passed #' #' @keywords internal #' #' @md #' @export setMethod("view", signature = "RLum.Analysis", definition = function(object, ...) { ## set title name <- list(...)$title if (is.null(name)) name <- deparse(substitute(object)) ## collect info lists from all records info <- lapply(seq_along(object@records), function(x) c(aliquot = x, object@records[[x]]@info)) info <- rbindlist(info, fill = TRUE) ## run view .view(x = info, title = name) }) Luminescence/R/analyse_Al2O3C_Measurement.R0000644000176200001440000005560014762554470020240 0ustar liggesusers#' @title Al2O3:C Passive Dosimeter Measurement Analysis #' #' @description The function provides the analysis routines for measurements on a #' FI lexsyg SMART reader using Al2O3:C chips according to Kreutzer et al., 2018 #' #' @details #' #' **Working with a travel dosimeter** #' #' The function allows to define particular position numbers as travel #' dosimeters. For example: `travel_dosimeter = c(1,3,5)` sets positions 1, #' 3 and 5 as travel dosimeters. These dose values #' of this dosimeters #' are combined and automatically subtracted from the obtained dose values #' of the other dosimeters. #' #' **Calculate TL dose** #' #' The argument `calculate_TL_dose` provides the possibility to experimentally calculate a TL-dose, #' i.e. an apparent dose value derived from the TL curve ratio. However, it should be noted that #' this value is only a fall back in case something went wrong during the measurement of the optical #' stimulation. The TL derived dose value is corrected for cross-talk and for the irradiation time, #' but not considered if a travel dosimeter is defined. #' #' Calculating the palaeodose is possible without **any TL** curve in the sequence! #' #' **Test parameters** #' #' `TL_peak_shift` [numeric] (default: `15`): #' #' Checks whether the TL peak shift is bigger > 15 K, indicating a problem with the #' thermal contact of the chip. #' #' `stimulation_power` [numeric] (default: `0.05`): #' #' So far available, information on the delivered optical stimulation are compared. Compared are #' the information from the first curves with all others. If the ratio differs more from #' unity than the defined by the threshold, a warning is returned. #' #' @param object [RLum.Analysis-class] (**required**): measurement input #' #' @param signal_integral [numeric] (*optional*): signal integral, used for the signal #' and the background. Example: `c(1:10)` for the first 10 channels. #' If nothing is provided the full range is used #' #' @param dose_points [numeric] (*with default*): #' vector with dose points, if dose points are repeated, only the general #' pattern needs to be provided. Default values follow the suggestions #' made by Kreutzer et al., 2018 #' #' @param recordType [character] (*with default*): input curve selection, which is passed to #' function [get_RLum]. To deactivate the automatic selection set the argument to `NULL` #' #' @param irradiation_time_correction [numeric] or [RLum.Results-class] (*optional*): #' information on the used irradiation time correction obtained by another experiments. #' If a `numeric` is provided it has to be of length two: mean, standard error #' #' @param calculate_TL_dose [logical] (*with default*): #' enables/disable experimental dose estimation based on the TL curves. #' It is computed as the ratio of the peak sums of each curves +/- 5 channels. #' #' @param cross_talk_correction [numeric] or [RLum.Results-class] (*optional*): #' information on the used irradiation time correction obtained by another experiments. #' If a `numeric` vector is provided it has to be of length three: #' mean, 2.5 % quantile, 97.5 % quantile. #' #' @param travel_dosimeter [numeric] (*optional*): specify the position of #' the travel dosimeter (so far measured at the same time). The dose of #' travel dosimeter will be subtracted from all other values. #' #' @param test_parameters [list] (*with default*): #' set test parameters. Supported parameters are: `TL_peak_shift` All input: [numeric] #' values, `NA` and `NULL` (see details). #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param plot [logical] (*with default*): enable/disable the plot output. #' If `object` is of type [list], a numeric vector can be provided to limit #' the plot output to certain aliquots. #' #' @param ... further arguments that can be passed to the plot output, supported are `norm`, `main`, `mtext`, #' `title` (for self-call mode to specify, e.g., sample names) #' #' @return Function returns results numerically and graphically: #' #' -----------------------------------\cr #' `[ NUMERICAL OUTPUT ]`\cr #' -----------------------------------\cr #' #' **`RLum.Results`**-object #' #' **slot:** **`@data`** #' #' \tabular{lll}{ #' **Element** \tab **Type** \tab **Description**\cr #' `$data` \tab `data.frame` \tab the estimated equivalent dose \cr #' `$data_table` \tab `data.frame` \tab full dose and signal table \cr #' `test_parameters` \tab `data.frame` \tab results with test parameters \cr #' `data_TDcorrected` \tab `data.frame` \tab travel dosimeter corrected results (only if TD was provided)\cr #' } #' #' *Note: If correction the irradiation time and the cross-talk correction method is used, the De #' values in the table `data` table are already corrected, i.e. if you want to get an uncorrected value, #' you can use the column `CT_CORRECTION` remove the correction* #' #'**slot:** **`@info`** #' #' The original function call #' #' ------------------------\cr #' `[ PLOT OUTPUT ]`\cr #' ------------------------\cr #' #' - OSL and TL curves, combined on two plots. #' #' #' @section Function version: 0.2.6 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [analyse_Al2O3C_ITC] #' #' @references #' #' Kreutzer, S., Martin, L., Guérin, G., Tribolo, C., Selva, P., Mercier, N., 2018. Environmental Dose Rate #' Determination Using a Passive Dosimeter: Techniques and Workflow for alpha-Al2O3:C Chips. #' Geochronometria 45, 56-67. #' #' @keywords datagen #' #' @examples #' ##load data #' data(ExampleData.Al2O3C, envir = environment()) #' #' ##run analysis #' analyse_Al2O3C_Measurement(data_CrossTalk) #' #' @md #' @export analyse_Al2O3C_Measurement <- function( object, signal_integral = NULL, dose_points = c(0,4), recordType = c("OSL (UVVIS)", "TL (UVVIS)"), calculate_TL_dose = FALSE, irradiation_time_correction = NULL, cross_talk_correction = NULL, travel_dosimeter = NULL, test_parameters = NULL, verbose = TRUE, plot = TRUE, ... ) { .set_function_name("analyse_Al2O3C_Measurement") on.exit(.unset_function_name(), add = TRUE) ## Self call -------------------------------------------------------------- if(is(object, "list")){ .validate_not_empty(object, "list") lapply(object, function(x) .validate_class(x, "RLum.Analysis", name = "All elements of 'object'")) ## expand input arguments rep.length <- length(object) if(!is.null(signal_integral)){ signal_integral <- .listify(list(signal_integral), rep.length) } dose_points <- .listify(dose_points, rep.length) irradiation_time_correction <- .listify(irradiation_time_correction, rep.length) cross_talk_correction <- .listify(cross_talk_correction, rep.length) ## since `test_parameters` is always expected to be a list, we can't ## use .listify() as it will not generate sublists test_parameters <- rep(list(test_parameters), rep.length) ##plot if(is(plot, "logical")){ plot <- rep(x = plot, length(object)) }else{ plot <- 1:length(object)%in%plot } ## run analysis results <- lapply(seq_along(object), function(x) { temp <- analyse_Al2O3C_Measurement( object = object[[x]], signal_integral = signal_integral[[x]], dose_points = dose_points[[x]], irradiation_time_correction = irradiation_time_correction[[x]], cross_talk_correction = cross_talk_correction[[x]], test_parameters = test_parameters[[x]], calculate_TL_dose = calculate_TL_dose, verbose = verbose, plot = plot[x], ... ) ##adjusting the terminal output, to avoid confusions if(verbose) cat(" ... (#",x, " | ALQ POS: ", temp$data$POSITION,")\n", sep = "") ##add running number to the plot, but only of we had a plot here... if(plot[x]){ title(main = paste0(list(...)$title[x], " ","#", x), adj = 1, line = 3) } return(temp) }) ##merge results results <- merge_RLum(results) ##correct sys.call, otherwise it gets a little bit strange ##why this is not implemented in the merge_RLum() method ... because here it would be wrong! results@info[names(results@info) == "call"] <- NULL results@info$call <- sys.call() ##travel dosimeter ##check for travel dosimeter and subtract the values so far this is meaningful at all if(!is.null(travel_dosimeter)){ .validate_class(travel_dosimeter, c("numeric", "integer")) ##check whether everything is subtracted from everything ... you never know, users do weird stuff if(length(travel_dosimeter) == nrow(results$data)) .throw_message("'travel_dosimeter' specifies every position, nothing corrected") ##check if the position is valid if(any(!travel_dosimeter%in%results$data$POSITION)) .throw_message("Invalid position in 'travel_dosimeter', nothing corrected") ##correct for the travel dosimeter calculating the weighted mean and the sd (as new error) ##if only one value is given just take it if(length(travel_dosimeter) == 1 && nrow(results$data[travel_dosimeter==results$data$POSITION,c(1,2)]) == 1){ correction <- as.numeric(results$data[travel_dosimeter==results$data$POSITION,c(1,2)]) }else{ temp.correction <- results$data[results$data$POSITION%in%travel_dosimeter,c(1,2)] correction <- c( stats::weighted.mean( x = temp.correction[[1]], w = if(all(temp.correction[[2]]==0)){rep(1, length(temp.correction[[2]]))} else {temp.correction[[2]]}), sd(temp.correction[,1])) rm(temp.correction) } ##subtract all the values, in a new data frame, we do not touch the original data data_TDcorrected <- data.frame( DE = results@data$data[!results$data$POSITION%in%travel_dosimeter,1] - correction[1], DE_ERROR = sqrt(results@data$data[!results$data$POSITION%in%travel_dosimeter,2]^2 + correction[2]^2), POSITION = results@data$data[!results$data$POSITION%in%travel_dosimeter, "POSITION"] ) ##however, we set information on the travel dosimeter in the corresponding column results@data$data$TRAVEL_DOSIMETER <- results$data$POSITION%in%travel_dosimeter ##attach the new element to the results output results@data <- c(results@data, list(data_TDcorrected = data_TDcorrected)) ##return message if(verbose) cat("\n ...+ travel dosimeter correction applied.\n ...+ results stored in object $data_TDcorrected.\n\n") } ##end travel dosimeter ##return results return(results) } ## Integrity checks ------------------------------------------------------- ##TODO ... do more, push harder ##Add sufficient unit tests .validate_class(object, "RLum.Analysis", extra = "a 'list' of such objects") ## Preparation ------------------------------------------------------------ ##select curves based on the recordType selection; if not NULL if(!is.null(recordType)){ object_raw <- object object <- get_RLum(object, recordType = recordType, drop = FALSE) } ##set signal integral if(is.null(signal_integral)){ signal_integral <- c(1:nrow(object[[1]][])) }else{ ##check whether the input is valid, otherwise make it valid if(min(signal_integral) < 1 | max(signal_integral) > nrow(object[[1]][])){ signal_integral <- c(1:nrow(object[[1]][])) .throw_warning("Input for 'signal_integral' corrected to 1:", nrow(object[[1]][])) } } ## Set Irradiation Time Correction --------------- if (!is.null(irradiation_time_correction)) { .validate_class(irradiation_time_correction, c("RLum.Results", "numeric")) if (is(irradiation_time_correction, "RLum.Results")) { if (irradiation_time_correction@originator == "analyse_Al2O3C_ITC") { irradiation_time_correction <- get_RLum(irradiation_time_correction) ##consider the case for more than one observation ... if(nrow(irradiation_time_correction)>1){ irradiation_time_correction <- c(mean(irradiation_time_correction[[1]]), sd(irradiation_time_correction[[1]])) }else{ irradiation_time_correction <- c(irradiation_time_correction[[1]], irradiation_time_correction[[2]]) } } else{ .throw_error("The object provided for 'irradiation_time_correction' ", "was created by an unsupported function") } } else if (is.numeric(irradiation_time_correction)) { .validate_length(irradiation_time_correction, 2) } } ## Set Cross-Talk Correction ---------------------------------------------- ## check whether information on the position was stored in the input object POSITION <- get_RLum(object = object[[1]], info.object = "position") if (is.null(POSITION)) { .throw_message("Aliquot position not found, no cross-talk correction applied") cross_talk_correction <- NULL POSITION <- NA } if(is.null(cross_talk_correction)){ cross_talk_correction <- c(0,0,0) }else{ ## check whether the input is of type RLum.Results and check originator if (is(cross_talk_correction, "RLum.Results") && cross_talk_correction@originator == "analyse_Al2O3C_CrossTalk") { ## calculate the cross-talk correction values for this particular ## carousel position interval <- ifelse(length(POSITION) > 1, "confidence", "none") cross_talk_correction <- as.numeric(predict(cross_talk_correction$fit, newdata = data.frame(x = POSITION), interval = interval)) ## we could not compute a confidence interval, so we create it manually if (length(POSITION) == 1) { cross_talk_correction <- matrix(cross_talk_correction, 1, 3, dimnames = list("position", c("fit", "lwr", "upr"))) } }else{ .throw_error("The object provided for 'cross_talk_correction' was ", "created by an unsupported function or has a wrong originator") } } # Calculation ------------------------------------------------------------- ##we have two dose points, and one background curve, we do know only the 2nd dose ##set test parameters test_parameters.default <- list( TL_peak_shift = 15, stimulation_power = 0.05 ) ##modify default values by given input if(!is.null(test_parameters)){ test_parameters <- modifyList(test_parameters.default, test_parameters) ##remove NULL elements from list test_parameters <- .rm_NULL_elements(test_parameters) }else{ test_parameters <- test_parameters.default } ##calculate integrated light values NATURAL <- sum(get_RLum(object, recordType = "OSL")[[1]]@data[signal_integral, 2]) REGENERATED <- sum(get_RLum(object, recordType = "OSL")[[2]]@data[signal_integral, 2]) BACKGROUND <- sum(get_RLum(object, recordType = "OSL")[[3]]@data[signal_integral, 2]) ##do the same for the TL if (calculate_TL_dose[1] && any(grepl("TL", names(object)))){ nat_integr.idx <- which.max(object@records[[2]]@data[, 2]) + c(-5, 5) NATURAL_TL <- tryCatch( sum(object@records[[2]]@data[nat_integr.idx, 2]), error = function(e) { .throw_warning("Natural TL signal out of bounds, NA returned") NA }) reg_integr.idx <- which.max(object@records[[4]]@data[, 2]) + c(-5, 5) REGENERATED_TL <- tryCatch( sum(object@records[[4]]@data[reg_integr.idx, 2]), error = function(e) { .throw_warning("Regenerated TL signal out of bounds, NA returned") NA }) }else{ NATURAL_TL <- NA REGENERATED_TL <- NA } ##combine into data.frame temp_df <- data.frame( POSITION = POSITION, DOSE = if(!is.null(irradiation_time_correction)){ dose_points + irradiation_time_correction[1] }else{ dose_points }, DOSE_ERROR = if(!is.null(irradiation_time_correction)){ dose_points * irradiation_time_correction[2]/irradiation_time_correction[1] }else{ 0 }, STEP = c("NATURAL", "REGENERATED"), INTEGRAL = c(NATURAL, REGENERATED), BACKGROUND = c(BACKGROUND, BACKGROUND), NET_INTEGRAL = c(NATURAL - BACKGROUND, REGENERATED - BACKGROUND), NATURAL_TL = NATURAL_TL, REGENERATED_TL = REGENERATED_TL, row.names = NULL ) ##0 dose points should not be biased by the correction .. ##Note: it does not mean that 0 s beneath the source has a dose of 0, however, in the certain ##case aliquot was never moved under the source id_zero <- which(dose_points == 0) temp_df$DOSE[id_zero] <- 0 temp_df$DOSE_ERROR[id_zero] <- 0 ##calculate DE by using the irradiation time correction AND the cross talk correction ##(1) sample dose point values with irradiation time corrections (random) if(!is.null(irradiation_time_correction)){ DOSE_MC <- rnorm(1000, mean = temp_df$DOSE[2], sd = temp_df$DOSE_ERROR[2]) }else{ DOSE_MC <- temp_df$DOSE[2] } ##(2) random sampling from cross-irradiation CT <- runif(1000, min = cross_talk_correction[2], max = cross_talk_correction[3]) ##(3) signal ratio INTEGRAL_RATIO <- temp_df$NET_INTEGRAL[1]/temp_df$NET_INTEGRAL[2] ##(4) calculate DE temp_DE <- (DOSE_MC * INTEGRAL_RATIO) ##(5) substract cross-talk value from DE temp_DE <- temp_DE - CT ##(5.1) calculate TL based DE ##calculate a dose based on TL ##Note: we use irradiation time correction and CT correction based on GSL measurements if(calculate_TL_dose){ TL_Ratio <- NATURAL_TL/REGENERATED_TL temp_TL_DE <- (DOSE_MC * TL_Ratio) - CT TL_DE <- mean(temp_TL_DE) TL_DE.ERROR <- sd(temp_TL_DE) }else{ TL_DE <- NA TL_DE.ERROR <- NA } ##(6) create final data.frame data <- data.frame( DE = mean(temp_DE), DE_ERROR = sd(temp_DE), POSITION, INTEGRAL_RATIO, TRAVEL_DOSIMETER = NA, CT_CORRECTION = cross_talk_correction[1], CT_CORRECTION_Q2.5 = cross_talk_correction[2], CT_CORRECTION_Q97.5 = cross_talk_correction[3], TL_DE = TL_DE, TL_DE.ERROR = TL_DE.ERROR, row.names = NULL ) ##calculate test parameters ##TL_peak_shift ##check TL peak positions, if it differers more than the threshold, return a message ##can be done better, but should be enough here. if (any("TL_peak_shift"%in%names(test_parameters)) && any(grepl("TL", names(object)))){ ##calculate value TP_TL_peak_shift.value <- abs((object[[2]][which.max(object[[2]][,2]),1] - object[[4]][which.max(object[[4]][,2]),1])) ##compare TP_TL_peak_shift.status <- TP_TL_peak_shift.value > test_parameters$TL_peak_shift ##return warning if(TP_TL_peak_shift.status) .throw_warning("TL peak shift detected for aliquot position ", POSITION, ", check the curves") ##set data.frame TP_TL_peak_shift <- data.frame( CRITERIA = "TL_peak_shift", THRESHOLD = test_parameters$TL_peak_shift, VALUE = TP_TL_peak_shift.value, STATUS = TP_TL_peak_shift.status, stringsAsFactors = FALSE) }else{ TP_TL_peak_shift <- data.frame(stringsAsFactors = FALSE) } ##stimulation_power TP_stimulation_power <- data.frame(stringsAsFactors = FALSE) if(any("stimulation_power"%in%names(test_parameters))){ ##get curves ids holding the information on the stimulation power temp_curves_OSL <- get_RLum(object_raw, recordType = "OSL", curveType = "measured") temp_curves_OSL <- lapply(temp_curves_OSL, function(o){ if("stimulator"%in%names(o@info)){ if(grepl(o@info$stimulator, pattern = "LED", fixed = TRUE)){ return(o) } } return(NULL) }) ##remove NULL temp_curves_OSL <- .rm_NULL_elements(temp_curves_OSL) ##check whether something is left if(length(temp_curves_OSL) < 2){ TP_stimulation_power.value <- NA TP_stimulation_power.status <- FALSE }else{ ##calculate sum of the power TP_stimulation_power.value <- vapply(temp_curves_OSL, function(x){ sum(x@data[,2]) }, numeric(1)) ##estimate a theoretical value based on the first value ... it does not ##matter which value is correct or not TP_stimulation_power.value <- abs(1 - sum(TP_stimulation_power.value)/(TP_stimulation_power.value[1] * length(TP_stimulation_power.value))) TP_stimulation_power.status <- TP_stimulation_power.value > test_parameters$stimulation_power if(TP_stimulation_power.status) .throw_warning("Stimulation power was not stable for ALQ ", POSITION, ", results are likely to be wrong") } ##remove object rm(temp_curves_OSL) ##set data.frame TP_stimulation_power <- data.frame( CRITERIA = "stimulation_power", THRESHOLD = test_parameters$stimulation_power, VALUE = TP_stimulation_power.value, STATUS = TP_stimulation_power.status, stringsAsFactors = FALSE) } ##compile all test parameter df df_test_parameters <- rbind( TP_TL_peak_shift, TP_stimulation_power) # Terminal output ----------------------------------------------------------------------------- if(verbose){ cat(" [analyse_Al2O3_Measurement()] #",POSITION, " ", "DE: ", round(data$DE, 2), " \u00B1 ", round(data$DE_ERROR,2), "\n", sep = "") } # Plotting ------------------------------------------------------------------------------------ ##enable or disable plot ... we cannot put the condition higher, because we here ##calculate something we are going to need later if (plot) { ##get plot settings par.default <- par()$mfrow on.exit(par(mfrow = par.default), add = TRUE) ##settings plot_settings <- list( main = c(paste("ALQ POS:", POSITION, "| OSL"), paste("ALQ POS:", POSITION, "| TL")), norm = TRUE, mtext = "" ) ##modify on request plot_settings <- modifyList(x = plot_settings, val = list(...),) ##plot curves if(any(grepl("TL", names(object)))) par(mfrow = c(1,2)) plot_RLum( object, plot_singlePanels = TRUE, combine = TRUE, mtext = list(paste0("DE: ", round(data$DE,2), " \u00b1 ", round(data$DE_ERROR,2)), ""), xlab = list("Simulation [s]", "Temperature [\u00B0C]"), legend.text = list(list("#1 NAT", "#3 REG", "#5 BG"), list("#2 NAT", "#4 REG")), legend.pos = list("topright", "topleft"), main = as.list(plot_settings$main), norm = plot_settings$norm ) } # Output -------------------------------------------------------------------------------------- UID <- create_UID() output <- set_RLum( class = "RLum.Results", data = list( data = cbind(data, UID), data_table = cbind(temp_df, UID), test_parameters = cbind(df_test_parameters, UID) ), info = list( call = sys.call() ) ) } Luminescence/R/read_Daybreak2R.R0000644000176200001440000003640114762554470016153 0ustar liggesusers#' Import measurement data produced by a Daybreak TL/OSL reader into R #' #' Import a TXT-file (ASCII file) or a DAT-file (binary file) produced by a #' Daybreak reader into R. The import of the DAT-files is limited to the file #' format described for the software TLAPLLIC v.3.2 used for a Daybreak, model 1100. #' #' @param file [character] or [list] (**required**): #' path and file name of the file to be imported. Alternatively a list of file #' names can be provided or just the path a folder containing measurement data. #' Please note that the specific, common, file extension (txt) is likely #' leading to function failures during import when just a path is provided. #' #' @param raw [logical] (*with default*): #' if the input is a DAT-file (binary) a [data.table::data.table] instead of #' the [RLum.Analysis-class] object can be returned for debugging purposes. #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param txtProgressBar [logical] (*with default*): #' enable/disable [txtProgressBar]. #' #' @param ... not in use, for compatibility reasons only #' #' @return #' A list of [RLum.Analysis-class] objects (each per position) is provided. #' #' @note #' **`[BETA VERSION]`** #' This function still needs to be tested properly. In particular #' the function has underwent only very rough tests using a few files. #' #' @section Function version: 0.3.2 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Antoine Zink, C2RMF, Palais du Louvre, Paris (France) #' #' The ASCII-file import is based on a suggestion by Willian Amidon and Andrew Louis Gorin #' #' @seealso [RLum.Analysis-class], [RLum.Data.Curve-class], [data.table::data.table] #' #' @keywords IO #' #' @examples #' #' \dontrun{ #' file <- system.file("extdata/Daybreak_TestFile.txt", package = "Luminescence") #' temp <- read_Daybreak2R(file) #' } #' #' @md #' @export read_Daybreak2R <- function( file, raw = FALSE, verbose = TRUE, txtProgressBar = TRUE, ... ) { .set_function_name("read_Daybreak2R") on.exit(.unset_function_name(), add = TRUE) ##TODO ## - run tests ## - check where the warning messages are coming from ## - implement further integrity tests (ASCII import) # Self Call ----------------------------------------------------------------------------------- # Option (a): Input is a list, every element in the list will be treated as file connection # with that many file can be read in at the same time # Option (b): The input is just a path, the function tries to grep ALL Daybreaks-txt files in the # directory and import them, if this is detected, we proceed as list .validate_class(file, c("character", "list")) .validate_logical_scalar(verbose) if(is(file, "character")) { .validate_length(file, 1) ##If this is not really a path we skip this here if (dir.exists(file) & length(dir(file)) > 0) { if(verbose){ cat("[read_Daybreak2R()] Directory detected, trying to extract '*.txt' files ...\n") } file <- as.list(paste0(file,dir( file, recursive = FALSE, pattern = ".txt" ))) } } ##if the input is already a list if (is(file, "list")) { temp.return <- lapply(seq_along(file), function(x) { read_Daybreak2R( file = file[[x]], txtProgressBar = txtProgressBar, verbose = verbose ) }) ##return return(temp.return) } ## Integrity checks ------------------------------------------------------- ##check if file exists if(!file.exists(file)){ .throw_error("File does not exist") } ##check for file extension ... distinguish between TXT and DAT if(substr(file, start = nchar(file) - 3, stop = nchar(file)) == ".DAT"){ # Read DAT-file ------------------------------------------------------------------------------ on.exit(close(con), add = TRUE) ##screen file to get information on the number of stored records con<-file(file,"rb") file.data <- file.info(file) max.pt<-readBin(con,what="int",6,size=2,endian="little")[6] file.size<-file.data$size n.length<-file.size/(190+8*(max.pt+1)) ##190 is is size of the header for each data set close(con) ##import data con <- file(file, "rb") ##pre-define data.table results.DATA <- data.table::data.table( ID = integer(length = n.length), MAXPT = integer(length = n.length), SPACING = integer(length = n.length), NDISK = integer(length = n.length), NRUN = integer(length = n.length), D1 = integer(length = n.length), NPT = integer(length = n.length), NATL = logical(length = n.length), TLRUN = logical(length = n.length), BEFORE_IRRAD = logical(length = n.length), SHIFT = double(length = n.length), RAMPRATE = double(length = n.length), GRATE = double(length = n.length), BRATE = double(length = n.length), ARATE = double(length = n.length), GAMMADOSE = double(length = n.length), BETADOSE = double(length = n.length), ALPHADOSE = double(length = n.length), BLEACHINGTIME = double(length = n.length), GRUNIT = character(length = n.length), BRUNIT = character(length = n.length), ARUNIT = character(length = n.length), BFILTER = character(length = n.length), GSOURCE = character(length = n.length), BSOURCE = character(length = n.length), ASOURCE = character(length = n.length), IRRAD_DATE = character(length = n.length), RUNREMARK = character(length = n.length), DATA = list() ) ##TERMINAL FEEDBACK if(verbose){ cat("\n[read_Daybreak()] Importing ...") cat("\n path: ", dirname(file[1])) cat("\n file: ", .shorten_filename(basename(file[1]))) cat("\n") } ##PROGRESS BAR if(txtProgressBar & verbose){ pb <- txtProgressBar(min=0,max=n.length, char = "=", style=3) } ##LOOP over file i <- 1 while (i0){ temp.meta_data <- unlist(strsplit(data.list[[x]][2:header.length], split = "=", fixed = TRUE)) }else{ temp.meta_data <- unlist(strsplit(data.list[[x]][2:length(data.list[[x]])], split = "=", fixed = TRUE)) } ##get list names for the info element list info.names <- temp.meta_data[seq(1,length(temp.meta_data), by = 2)] ##info elements info <- as.list(temp.meta_data[seq(2,length(temp.meta_data), by = 2)]) names(info) <- info.names ##add position, which is 'Disk' info <- c(info, position = as.integer(info$Disk)) if(length(header.length)>0){ ##get measurement data temp.data <- unlist(strsplit(unlist(strsplit( data.list[[x]][12:length(data.list[[x]])], split = "=" )), split = ";")) ##grep only data of interest point.x <- suppressWarnings(as.numeric(gsub("^\\s+|\\s+$", "", temp.data[seq(2, length(temp.data), by = 4)]))) point.y <- suppressWarnings(as.numeric(gsub("^\\s+|\\s+$", "", temp.data[seq(3,length(temp.data), by = 4)]))) ##combine it into a matrix data <- matrix(c(point.x,point.y), ncol = 2) }else{ ##we presume this should be irradiation ... if ("IrradTime" %in% names(info)) { point.x <- 1:as.numeric(info$IrradTime) point.y <- rep(1, length(point.x)) data <- matrix(c(point.x,point.y), ncol = 2) } } ##update progress bar if (txtProgressBar & verbose) { setTxtProgressBar(pb, x) } ##return RLum object return( set_RLum( class = "RLum.Data.Curve", originator = "read_Daybreak2R", recordType = sub(" ", replacement = "_", x = info$DataType), curveType = "measured", data = data, info = info ) ) }) ##close ProgressBar if(txtProgressBar & verbose){close(pb)} ##(3) ##Now we have to find out how many aliquots we do have positions.id <- sapply(RLum.Data.Curve.list, function(x){ get_RLum(x, info.object = "position") }) ##(4) ##now combine everyting in an RLum.Analysis object in accordance to the position number RLum.Analysis.list <- lapply(unique(positions.id), function(x){ ##get list ids for position number n <- which(positions.id == x) ##make list temp.list <- lapply(n, function(x){ RLum.Data.Curve.list[[x]] }) ##put in RLum.Analysis object object <- set_RLum( class = "RLum.Analysis", originator = "read_Daybreak2R", protocol = "Custom", records = temp.list ) ##set parent id of records object <- .set_pid(object) return(object) }) ##TERMINAL FEEDBACK if(verbose){ cat("\n ", length(unlist(get_RLum(RLum.Analysis.list))), "records have been read successfully!\n") } return(RLum.Analysis.list) } } Luminescence/R/calc_ThermalLifetime.R0000644000176200001440000002626514762554470017276 0ustar liggesusers#' Calculates the Thermal Lifetime using the Arrhenius equation #' #' The function calculates the thermal lifetime of charges for given E (in eV), s (in 1/s) and #' T (in deg. C.) parameters. The function can be used in two operational modes: #' #' **Mode 1 `(profiling = FALSE)`** #' #' An arbitrary set of input parameters (E, s, T) can be provided and the #' function calculates the thermal lifetimes using the Arrhenius equation for #' all possible combinations of these input parameters. An array with 3-dimensions #' is returned that can be used for further analyses or graphical output (see example 1) #' #' **Mode 2 `(profiling = TRUE)`** #' #' This mode tries to profile the variation of the thermal lifetime for a chosen #' temperature by accounting for the provided E and s parameters and their corresponding #' standard errors, e.g., `E = c(1.600, 0.001)` #' The calculation based on a Monte Carlo simulation, where values are sampled from a normal #' distribution (for E and s). #' #' **Used equation (Arrhenius equation)** #' #' \deqn{\tau = 1/s exp(E/kT)} #' where: #' \eqn{\tau} in s as the mean time an electron spends in the trap for a given \eqn{T}, #' \eqn{E} trap depth in eV, #' \eqn{s} the frequency factor in 1/s, #' \eqn{T} the temperature in K and \eqn{k} the Boltzmann constant in eV/K (cf. Furetta, 2010). #' #' #' @param E [numeric] (**required**): #' vector of trap depths in eV, #' if `profiling = TRUE` only the first two elements are considered #' #' @param s [numeric] (**required**): #' vector of frequency factor in 1/s, #' if `profiling = TRUE` only the first two elements are considered #' #' @param T [numeric] (*with default*): #' temperature in deg. C for which the lifetime(s) will be calculated. #' A vector can be provided. #' #' @param output_unit [character] (*with default*): #' output unit of the calculated lifetimes, accepted #' entries are: `"Ma"`, `"ka"`, `"a"`, `"d"`, `"h"`, `"min"`, `"s"` #' #' @param profiling [logical] (*with default*): #' this option allows to estimate uncertainties based on #' given E and s parameters and their corresponding standard error #' (cf. details and examples section) #' #' @param profiling_config [list] (*optional*): #' allows to set configuration parameters used for the profiling #' (and only have an effect here). Supported parameters are: #' #' - `n` (number of MC runs), #' - `E.distribution` (distribution used for the re-sampling for E) and #' - `s.distribution` (distribution used for the re-sampling for s). #' #' Currently only the normal distribution is supported #' (e.g., `profiling_config = list(E.distribution = "norm")` #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output, currently only in combination with #' `profiling = TRUE`. #' #' @param ... further arguments that can be passed in combination with the plot output. #' Standard plot parameters are supported ([plot.default]) #' #' @return #' A [RLum.Results-class] object is returned a along with a plot (for #' `profiling = TRUE`). The output object contain the following slots: #' #' **`@data`** #' #' \tabular{lll}{ #' **Object** \tab **Type** \tab **Description** \cr #' `lifetimes` \tab [array] or [numeric] \tab calculated lifetimes \cr #' `profiling_matrix` \tab [matrix] \tab profiling matrix used for the MC runs #' } #' #' **`@info`** #' #' \tabular{lll}{ #' **Object** \tab **Type** \tab **Description** \cr #' `call` \tab `call` \tab the original function call #' } #' #' @note #' The profiling is currently based on re-sampling from a normal distribution, this #' distribution assumption might be, however, not valid for given E and s parameters. #' #' @section Function version: 0.1.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [graphics::matplot], [stats::rnorm][stats::Normal], [get_RLum] #' #' @references #' #' Furetta, C., 2010. Handbook of Thermoluminescence, Second Edition. World Scientific. #' #' @keywords datagen #' #' @examples #' #' ##EXAMPLE 1 #' ##calculation for two trap-depths with similar frequency factor for different temperatures #' E <- c(1.66, 1.70) #' s <- 1e+13 #' T <- 10:20 #' temp <- calc_ThermalLifetime( #' E = E, #' s = s, #' T = T, #' output_unit = "Ma" #' ) #' graphics::contour(x = E, y = T, z = temp$lifetimes[1,,], #' ylab = "Temperature [\u00B0C]", #' xlab = "Trap depth [eV]", #' main = "Thermal Lifetime Contour Plot" #' ) #' mtext(side = 3, "(values quoted in Ma)") #' #' ##EXAMPLE 2 #' ##profiling of thermal life time for E and s and their standard error #' E <- c(1.600, 0.003) #' s <- c(1e+13,1e+011) #' T <- 20 #' calc_ThermalLifetime( #' E = E, #' s = s, #' T = T, #' profiling = TRUE, #' output_unit = "Ma" #') #' #' @md #' @export calc_ThermalLifetime <- function( E, s, T = 20, output_unit = "Ma", profiling = FALSE, profiling_config = NULL, verbose = TRUE, plot = TRUE, ... ) { .set_function_name("calc_ThermalLifetime") on.exit(.unset_function_name(), add = TRUE) ## Integrity tests -------------------------------------------------------- .validate_class(E, "numeric") .validate_class(s, "numeric") # Set variables ------------------------------------------------------------------------------- ##Boltzmann constant k <- 8.6173324e-05 #eV/K ##recalculate temparature T.K <- T + 273.15 #K ##SETTINGS FOR PROFILING ##profiling settings profiling_settings <- list( n = 1000, E.distribution = "norm", s.distribution = "norm" ) ##replace if set if(!is.null(profiling_config)){ profiling_settings <- modifyList(profiling_settings, profiling_config) } ##check for odd input values if (profiling_settings$n < 1000){ profiling_settings$n <- 1000 .throw_warning("Minimum MC runs are 1000, parameter 'n' ", "in profiling_config reset to 1000.") } # Calculation --------------------------------------------------------------------------------- ##set function for the calculation f <- function(E, s, T.K) { 1 / s * exp(E / (k * T.K)) } ##PROFILING if(profiling) { ##set profiling matrix profiling_matrix <- matrix(NA, ncol = 4, nrow = profiling_settings$n) ##fill matrix ##E profiling_matrix[, 1] <- if( profiling_settings$E.distribution == "norm"){ rnorm(profiling_settings$n, mean = E[1], sd = E[2]) }else{ .throw_error("Unknown distribution setting for E profiling") } ##s profiling_matrix[, 2] <- if (profiling_settings$s.distribution == "norm") { rnorm(profiling_settings$n, mean = s[1], sd = s[2]) } else{ .throw_error("Unknown distribution setting for s profiling") } ##T profiling_matrix[, 3] <- rep(T.K[1], each = profiling_settings$n) ##calulate lifetimes profiling_matrix[, 4] <- f(profiling_matrix[, 1], profiling_matrix[, 2], profiling_matrix[, 3]) ##reduce E and s vector on the first entry T <- T[1] ##set lifetimes lifetimes <- profiling_matrix[, 4] } else{ ##set empty profiling matrix profiling_matrix <- matrix() ##calculate lifetimes lifetimes <- vapply( X = T.K, FUN = function(i) { vapply( X = E, FUN = function(j) { f(E = j, s = s, T.K = i) }, FUN.VALUE = vector(mode = "numeric", length = length(s)) ) }, FUN.VALUE = matrix(numeric(), ncol = length(E), nrow = length(s)) ) ##transform to an arry in either case to have the same output if (!is(lifetimes, "array")) { lifetimes <- array(lifetimes, dim = c(length(s), length(E), length(T))) } ##set dimnames to make reading more clear dimnames(lifetimes) <- list(s, E, paste0("T = ", T, " \u00B0C")) } ##re-calculate lifetimes accourding to the chosen output unit temp.lifetimes <- switch ( output_unit, "s" = lifetimes, "min" = lifetimes / 60, "h" = lifetimes / 60 / 60, "d" = lifetimes / 60 / 60 / 24, "a" = lifetimes / 60 / 60 / 24 / 365, "ka" = lifetimes / 60 / 60 / 24 / 365 / 1000, "Ma" = lifetimes / 60 / 60 / 24 / 365 / 1000 / 1000 ) ##check for invalid values if(is.null(temp.lifetimes)){ output_unit <- "s" .throw_warning("'output_unit' unknown, reset to 's'") }else{ lifetimes <- temp.lifetimes rm(temp.lifetimes) } # Terminal output ----------------------------------------------------------------------------- if(verbose){ cat("\n[calc_ThermalLifetime()]\n\n") if(profiling){ cat("\tprofiling = TRUE") cat("\n\t--------------------------\n") } cat(paste("\tmean:\t", format(mean(lifetimes), scientific = TRUE), output_unit)) cat(paste("\n\tsd:\t", format(sd(lifetimes), scientific = TRUE), output_unit)) cat(paste("\n\tmin:\t", format(min(lifetimes), scientific = TRUE), output_unit)) if(!profiling){ cat(paste0(" (@",T[which(lifetimes == min(lifetimes), arr.ind = TRUE)[3]], " \u00B0C)")) } cat(paste("\n\tmax:\t", format(max(lifetimes), scientific = TRUE), output_unit)) if(!profiling){ cat(paste0(" (@",T[which(lifetimes == max(lifetimes), arr.ind = TRUE)[3]], " \u00B0C)")) } cat("\n\t--------------------------") cat(paste0("\n\t(", length(lifetimes), " lifetimes calculated in total)")) } # Plotting ------------------------------------------------------------------------------------ if(plot & profiling){ ##plot settings plot.settings <- list( main = "Thermal Lifetime Density Plot", xlab = paste0("Thermal lifetime [",output_unit,"]"), ylab = "Density", xlim = NULL, ylim = NULL, log = "", lwd = 1, lty = 1, col = rgb(0, 0, 0, 0.25) ) ##modify on request plot.settings <- modifyList(plot.settings, list(...)) ##split data and calculate density ##set seq id_seq <- seq( from = 1, to = length(lifetimes), length.out = 200) ##calculate lifetime of the density lifetimes_density <- lapply(1:(length(id_seq) - 1), function(x) { density(lifetimes[id_seq[x]:id_seq[x+1]]) }) ##get x values lifetimes_density.x <- matrix(unlist(lapply(1:length(lifetimes_density), function(i){ lifetimes_density[[i]]$x })), nrow = length(lifetimes_density[[1]]$x)) ##get y values lifetimes_density.y <- matrix(unlist(lapply(1:length(lifetimes_density), function(i){ lifetimes_density[[i]]$y })), nrow = length(lifetimes_density[[1]]$y)) ##plot density curves graphics::matplot( lifetimes_density.x, lifetimes_density.y, type = "l", lwd = plot.settings$lwd, lty = plot.settings$lty, col = plot.settings$col, main = plot.settings$main, xlab = plot.settings$xlab, ylab = plot.settings$ylab, xlim = plot.settings$xlim, ylim = plot.settings$ylim, log = plot.settings$log ) } # Return values ------------------------------------------------------------------------------- return(set_RLum( class = "RLum.Results", data = list(lifetimes = lifetimes, profiling_matrix = profiling_matrix), info = list(call = sys.call()) )) } Luminescence/R/Luminescence-package.R0000644000176200001440000011512414762554470017235 0ustar liggesusers#' @title Comprehensive Luminescence Dating Data Analysis\cr #' \if{html}{ #' \figure{Luminescence_logo.png}{options: width="75" alt="r-luminescence.org"} #' } #' #' @description A collection of various R functions for the purpose of luminescence dating #' data analysis. This includes, amongst others, data import, export, #' application of age models, curve deconvolution, sequence analysis and #' plotting of equivalent dose distributions. #' #' @name Luminescence-package #' #' @aliases Luminescence-package Luminescence #' #' @details #' #' **Supervisor of the initial version in 2012** #' #' Markus Fuchs, Justus-Liebig-University Giessen, Germany #' #' **Support contact** #' #' * \email{developers@@r-luminescence.org} #' * [https://github.com/R-Lum/Luminescence/discussions]() #' #' **Bug reporting** #' #' * \email{developers@@r-luminescence.org} or #' * [https://github.com/R-Lum/Luminescence/issues]() #' #' **Project website** #' #' * [https://r-luminescence.org]() #' #' **Project source code repository** #' #' * [https://github.com/R-Lum/Luminescence]() #' #' **Related package projects** #' #' * [https://cran.r-project.org/package=RLumShiny]() #' * [https://cran.r-project.org/package=RLumModel]() #' * [https://cran.r-project.org/package=RLumCarlo]() #' * [https://cran.r-project.org/package=RCarb]() #' #' **Funding** #' #' * 2011-2013: The initial version of the package was developed, while Sebastian Kreutzer #' was funded through the DFG programme "Rekonstruktion der Umweltbedingungen #' des Spätpleistozäns in Mittelsachsen anhand von Löss-Paläobodensequenzen" #' (DFG id: 46526743) #' #' * 2014-2018: Cooperation and personal exchange between the developers is gratefully #' funded by the DFG (SCHM 3051/3-1) in the framework of the program #' "Scientific Networks". Project title: "RLum.Network: Ein #' Wissenschaftsnetzwerk zur Analyse von Lumineszenzdaten mit R" (2014-2018) #' #' * 05/2014-12/2019: The work of Sebastian Kreutzer as maintainer of the package was supported #' by LabEx LaScArBx (ANR - n. ANR-10-LABX-52). #' #' * 01/2020-04/2022: Sebastian Kreutzer as maintainer of the package has received funding #' from the European Union’s Horizon 2020 research and innovation programme under #' the Marie Skłodowska-Curie grant agreement No 844457 (CREDit), and could continue #' maintaining the package. #' #' * since 03/2023: Sebastian Kreutzer as maintainer of the package receives funding from the #' DFG Heisenberg programme No 505822867. #' #' * All other authors gratefully received additional funding from various public funding bodies. #' #' @references #' Dietze, M., Kreutzer, S., Fuchs, M.C., Burow, C., Fischer, M., #' Schmidt, C., 2013. A practical guide to the R package Luminescence. #' Ancient TL, 31 (1), 11-18. #' #' Dietze, M., Kreutzer, S., Burow, C., Fuchs, M.C., Fischer, M., Schmidt, C., 2016. The abanico plot: #' visualising chronometric data with individual standard errors. Quaternary Geochronology 31, 1-7. #' https://doi.org/10.1016/j.quageo.2015.09.003 #' #' Fuchs, M.C., Kreutzer, S., Burow, C., Dietze, M., Fischer, M., Schmidt, C., #' Fuchs, M., 2015. Data processing in luminescence dating analysis: An #' exemplary workflow using the R package 'Luminescence'. Quaternary #' International, 362,8-13. https://doi.org/10.1016/j.quaint.2014.06.034 #' #' Kreutzer, S., Schmidt, C., Fuchs, M.C., Dietze, M., Fischer, M., Fuchs, M., #' 2012. Introducing an R package for luminescence dating analysis. Ancient TL, #' 30 (1), 1-8. #' #' Mercier, N., Kreutzer, S., Christophe, C., Guérin, G., Guibert, P., Lahaye, C., Lanos, P., Philippe, A., #' Tribolo, C., 2016. Bayesian statistics in luminescence dating: The 'baSAR'-model and its #' implementation in the R package ’Luminescence’. Ancient TL 34 (2), 14-21. #' #' Mercier, N., Galharret, J.-M., Tribolo, C., Kreutzer, S., Philippe, A., 2022. #' Luminescence age calculation through Bayesian convolution of equivalent dose #' and dose-rate distributions: the De_Dr model. #' Geochronology 4, 297–310. https://doi.org/10.5194/gchron-4-297-2022 #' #' Smedley, R.K., 2015. A new R function for the Internal External Uncertainty (IEU) model. #' Ancient TL, 33 (1), 16-21. #' #' King, E.G., Burow, C., Roberts, H., Pearce, N.J.G., 2018. Age determination #' using feldspar: evaluating fading-correction model performance. Radiation Measurements 119, 58-73. #' https://doi.org/10.1016/j.radmeas.2018.07.013 #' #' @keywords package #' #' @import utils methods data.table #' #' @importFrom Rcpp evalCpp #' @importFrom graphics plot abline mtext text lines par layout lines axTicks axis curve hist legend points polygon segments title #' @importFrom grDevices adjustcolor rgb #' @importFrom stats approx density dnorm median na.exclude nls quantile rnorm runif sd uniroot setNames coef predict residuals #' #' @useDynLib Luminescence, .registration = TRUE #' #' @md "_PACKAGE" #' Base data set of dose-rate conversion factors #' #' Collection of published dose-rate conversion factors to convert concentrations #' of radioactive isotopes to dose rate values. #' #' @format #' #' A [`list`] with three elements with dose-rate conversion factors #' sorted by article and radiation type (alpha, beta, gamma): #' #' \tabular{ll}{ #' #' `AdamiecAitken1998`: \tab #' Conversion factors from Tables 5 and 6 \cr #' #' `Cresswelletal2018`: \tab #' Conversion factors from Tables 5 and 6 \cr #' #' `Guerinetal2011`: \tab #' Conversion factors from Tables 1, 2 and 3 \cr #' #' `Liritzisetal2013`: \tab #' Conversion factors from Tables 1, 2 and 3 \cr #' } #' #' @section Version: 0.2.0 #' #' @references #' #' Adamiec, G., Aitken, M.J., 1998. Dose-rate conversion factors: update. #' Ancient TL 16, 37-46. #' #' Cresswell., A.J., Carter, J., Sanderson, D.C.W., 2018. #' Dose rate conversion parameters: Assessment of nuclear data. #' Radiation Measurements 120, 195-201. #' #' Guerin, G., Mercier, N., Adamiec, G., 2011. Dose-rate conversion #' factors: update. Ancient TL, 29, 5-8. #' #' Liritzis, I., Stamoulis, K., Papachristodoulou, C., Ioannides, K., 2013. #' A re-evaluation of radiation dose-rate conversion factors. Mediterranean #' Archaeology and Archaeometry 13, 1-15. #' #' #' @source #' All gamma conversion factors were carefully read from the tables given in the #' references above. #' #' @keywords datasets #' #' @examples #' #' ## Load data #' data("BaseDataSet.ConversionFactors", envir = environment()) #' #' @name BaseDataSet.ConversionFactors #' @md NULL #' @title Base dataset for grain size attenuation data by Guérin et al. (2012) #' #' @description Grain size correction data for beta-dose rates #' published by Guérin et al. (2012). #' #'#' @format #' #' A [`data.frame`] seven columns and sixteen rows. Column headers #' are `GrainSize`, `Q_K`, `FS_K`, `Q_Th`, `FS_Th`, `Q_U`, `FS_U`. #' Grain sizes are quoted in µm (e.g., 20, 40, 60 etc.) #' #' @section Version: 0.1.0 #' #' @source Guérin, G., Mercier, N., Nathan, R., Adamiec, G., Lefrais, Y., 2012. #' On the use of the infinite matrix assumption and associated concepts: #' A critical review. Radiation Measurements, 47, 778-785. #' #' @keywords datasets #' #' @examples #' #' ## load data #' data("BaseDataSet.GrainSizeAttenuation", envir = environment()) #' #' @name BaseDataSet.GrainSizeAttenuation #' @md NULL #' Base data set of fractional gamma-dose values #' #' Collection of (un-)published fractional gamma dose-rate values to scale the #' gamma-dose rate considering layer-to-layer variations in soil radioactivity. #' #' @format #' #' A [`list`] with fractional gamma dose-rate values #' sorted by article: #' #' \tabular{ll}{ #' #' `Aitken1985`: \tab #' Fractional gamma-dose values from table H.1 #' } #' #' #' @section Version: 0.1 #' #' @references #' Aitken, M.J., 1985. Thermoluminescence Dating. Academic Press, London. #' #' @source #' Fractional gamma dose values were carefully read from the tables given in the #' references above. #' #' @keywords datasets #' #' @examples #' #' ## Load data #' data("BaseDataSet.FractionalGammaDose", envir = environment()) #' #' @name BaseDataSet.FractionalGammaDose #' @md NULL #' Example data for scale_GammaDose() #' #' An example data set for the function `scale_GammaDose()` containing layer #' specific information to scale the gamma dose rate considering variations in #' soil radioactivity. #' #' @format #' #' A [`data.frame`]. Please see `?scale_GammaDose()` for a detailed description #' of its structure. #' #' #' @section Version: 0.1 #' #' @keywords datasets #' #' @examples #' #' ## Load data #' data("ExampleData.ScaleGammaDose", envir = environment()) #' #' @name ExampleData.ScaleGammaDose #' @md NULL #' Example data for calc_CobbleDoseRate() #' #' An example data set for the function [calc_CobbleDoseRate] containing layer #' specific information for the cobble to be used in the function. #' #' @format #' #' A [`data.frame`]. Please see [calc_CobbleDoseRate] for detailed information #' on the structure of the [data.frame]. #' #' @section Version: 0.1.0 #' #' @keywords datasets #' #' @examples #' #' ## Load data #' data("ExampleData.CobbleData", envir = environment()) #' #' @name ExampleData.CobbleData #' @md NULL #' Base data set for cosmic dose rate calculation #' #' Collection of data from various sources needed for cosmic dose rate #' calculation #' #' #' @format #' #' \tabular{ll}{ #' #' `values.cosmic.Softcomp`: \tab #' data frame containing cosmic dose rates #' for shallow depths (< 167 g cm^-2) obtained using the "AGE" program by #' Rainer Gruen (cf. Gruen 2009). These data essentially reproduce the graph #' shown in Fig. 1 of Prescott & Hutton (1988). \cr #' #' `values.factor.Altitude`: \tab #' data frame containing altitude factors #' for adjusting geomagnetic field-change factors. Values were read from Fig. 1 #' in Prescott & Hutton (1994). \cr #' #' `values.par.FJH`: \tab #' data frame containing values for parameters F, J #' and H (read from Fig. 2 in Prescott & Hutton 1994) used in the expression \cr #' } #' #' \deqn{Dc = D0*(F+J*exp((altitude/1000)/H))} #' #' @section Version: 0.1 #' #' @references #' Gruen, R., 2009. The "AGE" program for the calculation of luminescence age estimates. #' Ancient TL, 27, pp. 45-46. #' #' Prescott, J.R., Hutton, J.T., 1988. Cosmic ray and gamma ray dosimetry for #' TL and ESR. Nuclear Tracks and Radiation Measurements, 14, pp. 223-227. #' #' Prescott, J.R., Hutton, J.T., 1994. Cosmic ray contributions to dose rates #' for luminescence and ESR dating: large depths and long-term time variations. #' Radiation Measurements, 23, pp. 497-500. #' #' @source #' The following data were carefully read from figures in mentioned #' sources and used for fitting procedures. The derived expressions are used in #' the function `calc_CosmicDoseRate`. #' #' **values.cosmic.Softcomp** #' #' \tabular{ll}{ #' Program: \tab "AGE"\cr #' Reference: \tab Gruen (2009) \cr #' Fit: \tab Polynomials in the form of #' } #' #' For depths between 40-167 g cm^-2: #' #' \deqn{y = 2*10^-6*x^2-0.0008*x+0.2535} #' #' (For depths <40 g cm^-2) #' #' \deqn{y = -6*10^-8*x^3+2*10^-5*x^2-0.0025*x+0.2969} #' #' **`values.factor.Altitude`** #' #' \tabular{ll}{ #' Reference: \tab Prescott & Hutton (1994) \cr #' Page: \tab 499 \cr #' Figure: \tab 1 \cr #' Fit: \tab 2-degree polynomial in the form of #' } #' #' \deqn{y = -0.026*x^2 + 0.6628*x + 1.0435} #' #' #' **`values.par.FJH`** #' #' \tabular{ll}{ #' Reference: \tab Prescott & Hutton (1994) \cr #' Page: \tab 500 \cr #' Figure: \tab 2 \cr #' Fits: \tab 3-degree polynomials and linear fits #' } #' #' F (non-linear part, \eqn{\lambda} < 36.5 deg.): #' #' \deqn{y = -7*10^-7*x^3-8*10^-5*x^2-0.0009*x+0.3988} #' #' F (linear part, \eqn{\lambda} > 36.5 deg.): #' #' \deqn{y = -0.0001*x + 0.2347} #' #' J (non-linear part, \eqn{\lambda} < 34 deg.): #' #' \deqn{y = 5*10^-6*x^3-5*10^-5*x^2+0.0026*x+0.5177} #' #' J (linear part, \eqn{\lambda} > 34 deg.): #' #' \deqn{y = 0.0005*x + 0.7388} #' #' H (non-linear part, \eqn{\lambda} < 36 deg.): #' #' \deqn{y = -3*10^-6*x^3-5*10^-5*x^2-0.0031*x+4.398} #' #' H (linear part, \eqn{\lambda} > 36 deg.): #' #' \deqn{y = 0.0002*x + 4.0914} #' #' @keywords datasets internal #' #' @examples #' #' ##load data #' data(BaseDataSet.CosmicDoseRate) #' #' @docType data #' @name BaseDataSet.CosmicDoseRate #' @aliases values.cosmic.Softcomp values.factor.Altitude values.par.FJH #' #' @md NULL #' @title Example data from a SAR OSL and SAR TL measurement for the package #' Luminescence #' #' @description Example data from a SAR OSL and TL measurement for package Luminescence #' directly extracted from a Risoe BIN-file and provided in an object of type #' [Risoe.BINfileData-class] #' @format #' #' `CWOSL.SAR.Data`: SAR OSL measurement data #' #' `TL.SAR.Data`: SAR TL measurement data #' #' Each class object contains two slots: (a) `METADATA` is a [data.frame] with #' all metadata stored in the BIN file of the measurements and (b) `DATA` #' contains a list of vectors of the measured data (usually count values). #' #' @section Version: 0.1 #' #' @references #' **CWOSL.SAR.Data**: unpublished data #' #' **TL.SAR.Data**: unpublished data #' #' @source **CWOSL.SAR.Data** #' #' \tabular{ll}{ #' Lab: \tab Luminescence Laboratory Bayreuth \cr #' Lab-Code: \tab BT607 \cr #' Location: \tab Saxony/Germany \cr #' Material: \tab Middle grain quartz measured on aluminium cups on a Risø TL/OSL DA-15 reader\cr #' Reference: \tab unpublished #' } #' #' **TL.SAR.Data** #' #' \tabular{ll}{ #' Lab: \tab Luminescence Laboratory of Cologne\cr #' Lab-Code: \tab LP1_5\cr #' Location: \tab Spain\cr #' Material: \tab Flint \cr #' Setup: \tab Risoe TL/OSL DA-20 reader (Filter: Semrock Brightline, HC475/50, N2, unpolished steel discs) \cr #' Reference: \tab unpublished \cr #' Remarks: \tab dataset limited to one position #' } #' #' @note #' Please note that this example data cannot be exported to a BIN-file using the function #' `writeR2BIN` as it was generated and implemented in the package long time ago. In the meantime #' the BIN-file format changed. #' #' @docType data #' #' @keywords datasets internal #' #' @examples #' #' ## show first 5 elements of the METADATA and DATA elements in the terminal #' data(ExampleData.BINfileData, envir = environment()) #' CWOSL.SAR.Data@@METADATA[1:5,] #' CWOSL.SAR.Data@@DATA[1:5] #' #' @name ExampleData.BINfileData #' @aliases CWOSL.SAR.Data TL.SAR.Data #' @md NULL #' Example CW-OSL curve data for the package Luminescence #' #' `data.frame` containing CW-OSL curve data (time, counts) #' #' @name ExampleData.CW_OSL_Curve #' #' @docType data #' #' @format Data frame with 1000 observations on the following 2 variables: #' #' #' - `list("x")`: a numeric vector, time #' - `list("y")`: a numeric vector, counts #' #' #' @references #' Baartman, J.E.M., Veldkamp, A., Schoorl, J.M., Wallinga, J., #' Cammeraat, L.H., 2011. Unravelling Late Pleistocene and Holocene landscape #' dynamics: The Upper Guadalentin Basin, SE Spain. Geomorphology, 125, #' 172-185. #' #' Bos, A.J.J. & Wallinga, J., 2012. How to visualize quartz OSL signal #' components. Radiation Measurements, 47, 752-758. #' #' @source **ExampleData.CW_OSL_Curve** #' #' \tabular{ll}{ #' Lab: \tab Luminescence Laboratory Bayreuth\cr #' Lab-Code: \tab BT607\cr #' Location: \tab Saxony/Germany\cr #' Material: \tab Middle grain quartz measured on aluminium cups on a Risø TL/OSL DA-15 reader.\cr #' Reference: \tab unpublished data } #' #' **CW_Curve.BosWallinga2012** #' #' \tabular{ll}{ #' Lab: \tab Netherlands Centre for Luminescence Dating (NCL)\cr #' Lab-Code: \tab NCL-2108077\cr #' Location: \tab Guadalentin Basin, Spain\cr #' Material: \tab Coarse grain quartz\cr #' Reference: \tab Bos & Wallinga (2012) and Baartman et al. (2011) #' } #' #' @keywords datasets internal #' #' @examples #' #' data(ExampleData.CW_OSL_Curve, envir = environment()) #' plot(ExampleData.CW_OSL_Curve) #' #' @aliases CW_Curve.BosWallinga2012 ExampleData.CW_OSL_Curve #' @md NULL #' Example portable OSL curve data for the package Luminescence #' #' A `list` of [RLum.Analysis-class] objects, each containing #' the same number of [RLum.Data.Curve-class] objects representing #' individual OSL, IRSL and dark count measurements of a sample. #' #' @name ExampleData.portableOSL #' #' @docType data #' #' @source #' #' **ExampleData.portableOSL** #' #' \tabular{ll}{ #' Lab: \tab Cologne Luminescence Laboratory\cr #' Lab-Code: \tab `none` \cr #' Location: \tab Nievenheim/Germany\cr #' Material: \tab Fine grain quartz \cr #' Reference: \tab unpublished data #' } #' #' @keywords datasets #' #' @examples #' #' data(ExampleData.portableOSL, envir = environment()) #' plot_RLum(ExampleData.portableOSL) #' #' @md NULL #' Example data for fit_LMCurve() in the package Luminescence #' #' Linearly modulated (LM) measurement data from a quartz sample from Norway #' including background measurement. Measurements carried out in the #' luminescence laboratory at the University of Bayreuth. #' #' @format Two objects (data.frames) with two columns (time and counts). #' #' @references #' Fuchs, M., Kreutzer, S., Fischer, M., Sauer, D., Soerensen, R., 2012. OSL and IRSL #' dating of raised beach sand deposits along the south-eastern coast of Norway. #' Quaternary Geochronology, 10, 195-200. #' #' @source #' #' \tabular{ll}{ #' Lab: \tab Luminescence Laboratory Bayreuth\cr #' Lab-Code: \tab BT900\cr #' Location: \tab Norway\cr #' Material: \tab Beach deposit, coarse grain quartz measured on aluminium discs on a Risø TL/OSL DA-15 reader\cr #' } #' #' #' @keywords datasets internal #' #' @examples #' #' ##show LM data #' data(ExampleData.FittingLM, envir = environment()) #' plot(values.curve,log="x") #' #' @name ExampleData.FittingLM #' @aliases values.curve values.curveBG #' @md NULL #' Example Lx/Tx data from CW-OSL SAR measurement #' #' LxTx data from a SAR measurement for the package Luminescence. #' #' @format A [`data.frame`] with 4 columns (Dose, LxTx, LxTx.Error, TnTx). #' #' @references unpublished data #' #' @source #' #' \tabular{ll}{ #' Lab: \tab Luminescence Laboratory Bayreuth\cr #' Lab-Code: \tab BT607\cr #' Location: \tab Ostrau (Saxony-Anhalt/Germany)\cr #' Material: \tab Middle grain (38-63 \eqn{\mu}m) quartz measured on a Risoe TL/OSL DA-15 reader. #' } #' #' @keywords datasets internal #' #' @examples #' #' ## plot Lx/Tx data vs dose [s] #' data(ExampleData.LxTxData, envir = environment()) #' plot(LxTxData$Dose,LxTxData$LxTx) #' #' @name ExampleData.LxTxData #' @aliases LxTxData #' @md NULL #' Example Lx and Tx curve data from an artificial OSL measurement #' #' `Lx` and `Tx` data of continuous wave (CW-) OSL signal curves. #' #' @format Two [`data.frame`]s containing time and count values. #' #' @references unpublished data #' #' @source #' Arbitrary OSL measurement. #' #' @keywords datasets internal #' #' @examples #' #' ##load data #' data(ExampleData.LxTxOSLData, envir = environment()) #' #' ##plot data #' plot(Lx.data) #' plot(Tx.data) #' #' @name ExampleData.LxTxOSLData #' @aliases Lx.data Tx.data #' @md NULL #' Example equivalent dose data from mortar samples #' #' Arbitrary data to test the function `calc_EED_Model` #' #' @format Two [`data.frame`]s containing De and De error #' #' @references unpublished data #' #' @source #' Arbitrary measurements. #' #' @keywords datasets internal #' #' @examples #' #' ##load data #' data(ExampleData.MortarData, envir = environment()) #' #' ##plot data #' plot(MortarData) #' #' @name ExampleData.MortarData #' @aliases MortarData #' @md NULL #' Example data as [RLum.Analysis-class] objects #' #' Collection of different [RLum.Analysis-class] objects for #' protocol analysis. #' #' @format #' #' `IRSAR.RF.Data`: IRSAR.RF.Data on coarse grain feldspar #' #' Each object contains data needed for the given protocol analysis. #' #' @section Version: 0.1 #' #' @references #' **IRSAR.RF.Data** #' #' Kreutzer, S., Lauer, T., Meszner, S., Krbetschek, M.R., Faust, D., Fuchs, #' M., 2014. Chronology of the Quaternary profile Zeuchfeld in Saxony-Anhalt / #' Germany - a preliminary luminescence dating study. Zeitschrift fuer #' Geomorphologie 58, 5-26. doi: 10.1127/0372-8854/2012/S-00112 #' #' @source **IRSAR.RF.Data** #' #' These data were kindly provided by Tobias Lauer and Matthias Krbetschek. #' #' \tabular{ll}{ #' Lab: \tab Luminescence Laboratory TU Bergakademie Freiberg\cr #' Lab-Code: \tab ZEU/SA1\cr #' Location: \tab Zeuchfeld (Zeuchfeld Sandur; Saxony-Anhalt/Germany)\cr #' Material: \tab K-feldspar (130-200 \eqn{\mu}m)\cr #' Reference: \tab Kreutzer et al. (2014) #' } #' #' @keywords datasets internal #' #' @examples #' #' ##load data #' data(ExampleData.RLum.Analysis, envir = environment()) #' #' ##plot data #' plot_RLum(IRSAR.RF.Data) #' #' @name ExampleData.RLum.Analysis #' @aliases IRSAR.RF.Data #' @md NULL #' Example data as [RLum.Data.Image-class] objects #' #' Measurement of Princton Instruments camera imported with the function #' [read_SPE2R] to R to produce an #' [RLum.Data.Image-class] object. #' #' #' @format Object of class [RLum.Data.Image-class] #' #' @section Version: 0.1 #' #' @source #' **ExampleData.RLum.Data.Image** #' #' These data were kindly provided by Regina DeWitt. #' #' \tabular{ll}{ #' Lab.: \tab Department of Physics, East-Carolina University, NC, USA\cr #' Lab-Code: \tab - \cr #' Location: \tab - \cr #' Material: \tab - \cr #' Reference: \tab - \cr #' } #' #' Image data is a measurement of fluorescent ceiling lights with a cooled #' Princeton Instruments (TM) camera fitted on Risø DA-20 TL/OSL reader. #' #' @keywords datasets #' #' @examples #' #' ##load data #' data(ExampleData.RLum.Data.Image, envir = environment()) #' #' ##plot data #' plot_RLum(ExampleData.RLum.Data.Image) #' #' @name ExampleData.RLum.Data.Image #' @md NULL #' Example data for a SAR OSL measurement and a TL spectrum using a lexsyg #' reader #' #' Example data from a SAR OSL measurement and a TL spectrum for package #' Luminescence imported from a Freiberg Instruments XSYG file using the #' function [read_XSYG2R]. #' #' @format #' #' `OSL.SARMeasurement`: SAR OSL measurement data #' #' The data contain two elements: (a) `$Sequence.Header` is a #' [data.frame] with metadata from the measurement,(b) #' `Sequence.Object` contains an [RLum.Analysis-class] object #' for further analysis. #' #' `TL.Spectrum`: TL spectrum data #' #' [RLum.Data.Spectrum-class] object for further analysis. The #' spectrum was cleaned from cosmic-rays using the function #' #' `apply_CosmicRayRemoval`. Note that no quantum efficiency calibration #' was performed. #' #' @section Version: 0.1 #' #' @seealso [read_XSYG2R], [RLum.Analysis-class], [RLum.Data.Spectrum-class], #' [plot_RLum], [plot_RLum.Analysis], [plot_RLum.Data.Spectrum] #' #' @references #' Unpublished data measured to serve as example data for that #' package. Location origin of sample BT753 is given here: #' #' Fuchs, M., Kreutzer, S., Rousseau, D.D., Antoine, P., Hatte, C., Lagroix, #' F., Moine, O., Gauthier, C., Svoboda, J., Lisa, L., 2013. The loess sequence #' of Dolni Vestonice, Czech Republic: A new OSL-based chronology of the Last #' Climatic Cycle. Boreas, 42, 664--677. #' #' @source #' **OSL.SARMeasurement** #' #' \tabular{ll}{ #' Lab: \tab Luminescence Laboratory Giessen\cr #' Lab-Code: \tab no code\cr #' Location: \tab not specified\cr #' Material: \tab Coarse grain quartz on steel cups on lexsyg research reader\cr #' Reference: \tab unpublished #' } #' #' **TL.Spectrum** #' #' \tabular{ll}{ #' Lab: \tab Luminescence Laboratory Giessen\cr #' Lab-Code: \tab BT753\cr #' Location: \tab Dolni Vestonice/Czech Republic\cr #' Material: \tab Fine grain polymineral on steel cups on lexsyg research reader\cr #' Reference: \tab Fuchs et al., 2013 \cr #' Spectrum: \tab Integration time 19 s, channel time 20 s\cr #' Heating: \tab 1 K/s, up to 500 deg. C #' } #' #' @keywords datasets internal #' #' @examples #' ##show data #' data(ExampleData.XSYG, envir = environment()) #' #' ## ========================================= #' ##(1) OSL.SARMeasurement #' OSL.SARMeasurement #' #' ##show $Sequence.Object #' OSL.SARMeasurement$Sequence.Object #' #' ##grep OSL curves and plot the first curve #' OSLcurve <- get_RLum(OSL.SARMeasurement$Sequence.Object, #' recordType="OSL")[[1]] #' plot_RLum(OSLcurve) #' #' ## ========================================= #' ##(2) TL.Spectrum #' TL.Spectrum #' #' ##plot simple spectrum (2D) #' plot_RLum.Data.Spectrum(TL.Spectrum, #' plot.type="contour", #' xlim = c(310,750), #' ylim = c(0,300), #' bin.rows=10, #' bin.cols = 1) #' #' ##plot 3d spectrum (uncomment for usage) #' # plot_RLum.Data.Spectrum(TL.Spectrum, plot.type="persp", #' # xlim = c(310,750), ylim = c(0,300), bin.rows=10, #' # bin.cols = 1) #' #' @name ExampleData.XSYG #' @aliases OSL.SARMeasurement TL.Spectrum #' @md NULL #' Example De data sets for the package Luminescence #' #' Equivalent dose (De) values measured for a fine grain quartz sample from a #' loess section in Rottewitz (Saxony/Germany) and for a coarse grain quartz #' sample from a fluvial deposit in the rock shelter of Cueva Anton #' (Murcia/Spain). #' #' #' @format A [list] with two elements, each containing a two column [data.frame]: #' #' \describe{ #' `$BT998`: De and De error values for a fine grain quartz #' sample from a loess section in Rottewitz. #' #' `$CA1`: Single grain De #' and De error values for a coarse grain quartz sample from a fluvial deposit #' in the rock shelter of Cueva Anton #' } #' #' @references #' **BT998** #' #' Unpublished data #' #' **CA1** #' #' Burow, C., Kehl, M., Hilgers, A., Weniger, G.-C., Angelucci, D., Villaverde, #' V., Zapata, J. and Zilhao, J. (2015). Luminescence dating of fluvial #' deposits in the rock shelter of Cueva Anton, Spain. Geochronometria 52, 107-125. #' #' **BT998** #' #' \tabular{ll}{ #' Lab: \tab Luminescence Laboratory Bayreuth\cr #' Lab-Code: \tab BT998\cr #' Location: \tab Rottewitz (Saxony/Germany)\cr #' Material: \tab Fine grain quartz measured on aluminium discs on a Risø TL/OSL DA-15 reader\cr #' Units: \tab Values are given in seconds \cr #' Dose Rate: \tab Dose rate of the beta-source at measurement ca. 0.0438 Gy/s +/- 0.0019 Gy/s\cr #' Measurement Date: \tab 2012-01-27 #' } #' #' **CA1** #' #' \tabular{ll}{ #' Lab: \tab Cologne Luminescence Laboratory (CLL)\cr #' Lab-Code: \tab C-L2941\cr #' Location: \tab Cueva Anton (Murcia/Spain)\cr #' Material: \tab Coarse grain quartz (200-250 microns) measured on single grain discs on a Risoe TL/OSL DA-20 reader\cr #' Units: \tab Values are given in Gray \cr #' Measurement Date: \tab 2012 #' } #' #' @keywords datasets #' #' @examples #' #' ##(1) plot values as histogram #' data(ExampleData.DeValues, envir = environment()) #' plot_Histogram(ExampleData.DeValues$BT998, xlab = "De [s]") #' #' ##(2) plot values as histogram (with second to gray conversion) #' data(ExampleData.DeValues, envir = environment()) #' #' De.values <- convert_Second2Gray(ExampleData.DeValues$BT998, #' dose.rate = c(0.0438, 0.0019)) #' #' #' plot_Histogram(De.values, xlab = "De [Gy]") #' #' @name ExampleData.DeValues #' @md NULL #' Example data for feldspar fading measurements #' #' Example data set for fading measurements of the IR50, IR100, IR150 and #' IR225 feldspar signals of sample UNIL/NB123. It further contains regular equivalent dose #' measurement data of the same sample, which can be used to apply a #' fading correction to. #' #' #' @format A [list] with two elements, each containing a further [list] of #' [data.frame]s containing the data on the fading and equivalent dose measurements: #' #' \describe{ #' `$fading.data`: A named [list] of [data.frame]s, #' each having three named columns (`LxTx, LxTx.error, timeSinceIrradiation`).\cr #' `..$IR50`: Fading data of the IR50 signal.\cr #' `..$IR100`: Fading data of the IR100 signal.\cr #' `..$IR150`: Fading data of the IR150 signal.\cr #' `..$IR225`: Fading data of the IR225 signal.\cr #' #' #' `$equivalentDose.data`: A named of [data.frame]s, #' each having three named columns (`dose, LxTx, LxTx.error`).\cr #' `..$IR50`: Equivalent dose measurement data of the IR50 signal.\cr #' `..$IR100`: Equivalent dose measurement data of the IR100 signal.\cr #' `..$IR150`: Equivalent dose measurement data of the IR150 signal.\cr #' `..$IR225`: Equivalent dose measurement data of the IR225 signal.\cr #' } #' #' @source #' #' These data were kindly provided by Georgina E. King. Detailed information #' on the sample UNIL/NB123 can be found in the reference given below. The raw #' data can be found in the accompanying supplementary information. #' #' @references #' #' King, G.E., Herman, F., Lambert, R., Valla, P.G., Guralnik, B., 2016. #' Multi-OSL-thermochronometry of feldspar. Quaternary Geochronology 33, 76-87. #' doi:10.1016/j.quageo.2016.01.004 #' #' **Details** #' #' \tabular{ll}{ #' Lab: \tab University of Lausanne \cr #' Lab-Code: \tab UNIL/NB123 \cr #' Location: \tab Namche Barwa (eastern Himalayas)\cr #' Material: \tab Coarse grained (180-212 microns) potassium feldspar \cr #' Units: \tab Values are given in seconds \cr #' Lab Dose Rate: \tab Dose rate of the beta-source at measurement ca. 0.1335 +/- 0.004 Gy/s \cr #' Environmental Dose Rate: \tab 7.00 +/- 0.92 Gy/ka (includes internal dose rate) #' } #' #' #' @keywords datasets #' #' @examples #' #' ## Load example data #' data("ExampleData.Fading", envir = environment()) #' #' ## Get fading measurement data of the IR50 signal #' IR50_fading <- ExampleData.Fading$fading.data$IR50 #' head(IR50_fading) #' #' ## Determine g-value and rho' for the IR50 signal #' IR50_fading.res <- analyse_FadingMeasurement(IR50_fading) #' #' ## Show g-value and rho' results #' gval <- get_RLum(IR50_fading.res) #' rhop <- get_RLum(IR50_fading.res, "rho_prime") #' #' gval #' rhop #' #' ## Get LxTx values of the IR50 DE measurement #' IR50_De.LxTx <- ExampleData.Fading$equivalentDose.data$IR50 #' #' ## Calculate the De of the IR50 signal #' IR50_De <- fit_DoseResponseCurve(IR50_De.LxTx, #' mode = "interpolation", #' fit.method = "EXP") #' #' ## Extract the calculated De and its error #' IR50_De.res <- get_RLum(IR50_De) #' De <- c(IR50_De.res$De, IR50_De.res$De.Error) #' #' ## Apply fading correction (age conversion greatly simplified) #' IR50_Age <- De / 7.00 #' IR50_Age.corr <- calc_FadingCorr(IR50_Age, g_value = IR50_fading.res) #' #' #' @name ExampleData.Fading #' @md NULL #' Example OSL surface exposure dating data #' #' A set of synthetic OSL surface exposure dating data to demonstrate the #' [fit_SurfaceExposure] functionality. See examples to reproduce the data #' interactively. #' #' @details #' #' **`$sample_1`** #' #' \tabular{ccc}{ #' **mu** \tab **`sigmaphi`** \tab **age** \cr #' 0.9 \tab 5e-10 \tab 10000 \cr #' } #' #' **`$sample_2`** #' #' \tabular{ccccc}{ #' **mu** \tab **`sigmaphi`** \tab **age** \tab **Dose rate** \tab **D0** \cr #' 0.9 \tab 5e-10 \tab 10000 \tab 2.5 \tab 40 \cr #' } #' #' **`$set_1`** #' #' \tabular{ccc}{ #' **mu** \tab **`sigmaphi`** \tab **ages** \cr #' 0.9 \tab 5e-10 \tab 1e3, 1e4, 1e5, 1e6 \cr #' } #' #' **`$set_2`** #' #' \tabular{ccccc}{ #' **mu** \tab **`sigmaphi`** \tab **ages** \tab **Dose rate** \tab **D0** \cr #' 0.9 \tab 5e-10 \tab 1e2, 1e3, 1e4, 1e5, 1e6 \tab 1.0 \tab 40 \cr #' } #' #' @format A [list] with 4 elements: #' #' \tabular{ll}{ #' **Element** \tab **Content** \cr #' `$sample_1` \tab A [data.frame] with 3 columns (depth, intensity, error) \cr #' `$sample_2` \tab A [data.frame] with 3 columns (depth, intensity, error) \cr #' `$set_1` \tab A [list] of 4 [data.frame]s, each representing a sample with different ages \cr #' `$set_2` \tab A [list] of 5 [data.frame]s, each representing a sample with different ages \cr #' } #' #' @references Unpublished synthetic data #' #' @source #' #' See examples for the code used to create the data sets. #' #' @examples #' #' ## ExampleData.SurfaceExposure$sample_1 #' sigmaphi <- 5e-10 #' age <- 10000 #' mu <- 0.9 #' x <- seq(0, 10, 0.1) #' fun <- exp(-sigmaphi * age * 365.25*24*3600 * exp(-mu * x)) #' #' set.seed(666) #' synth_1 <- data.frame(depth = x, #' intensity = jitter(fun, 1, 0.1), #' error = runif(length(x), 0.01, 0.2)) #' #' ## VALIDATE sample_1 #' fit_SurfaceExposure(synth_1, mu = mu, sigmaphi = sigmaphi) #' #' #' #' #' ## ExampleData.SurfaceExposure$sample_2 #' sigmaphi <- 5e-10 #' age <- 10000 #' mu <- 0.9 #' x <- seq(0, 10, 0.1) #' Ddot <- 2.5 / 1000 / 365.25 / 24 / 60 / 60 # 2.5 Gy/ka in Seconds #' D0 <- 40 #' fun <- (sigmaphi * exp(-mu * x) * #' exp(-(age * 365.25*24*3600) * #' (sigmaphi * exp(-mu * x) + Ddot/D0)) + Ddot/D0) / #' (sigmaphi * exp(-mu * x) + Ddot/D0) #' #' set.seed(666) #' synth_2 <- data.frame(depth = x, #' intensity = jitter(fun, 1, 0.1), #' error = runif(length(x), 0.01, 0.2)) #' #' ## VALIDATE sample_2 #' fit_SurfaceExposure(synth_2, mu = mu, sigmaphi = sigmaphi, Ddot = 2.5, D0 = D0) #' #' #' #' ## ExampleData.SurfaceExposure$set_1 #' sigmaphi <- 5e-10 #' mu <- 0.9 #' x <- seq(0, 15, 0.2) #' age <- c(1e3, 1e4, 1e5, 1e6) #' set.seed(666) #' #' synth_3 <- vector("list", length = length(age)) #' #' for (i in 1:length(age)) { #' fun <- exp(-sigmaphi * age[i] * 365.25*24*3600 * exp(-mu * x)) #' synth_3[[i]] <- data.frame(depth = x, #' intensity = jitter(fun, 1, 0.05)) #' } #' #' #' ## VALIDATE set_1 #' fit_SurfaceExposure(synth_3, age = age, sigmaphi = sigmaphi) #' #' #' #' ## ExampleData.SurfaceExposure$set_2 #' sigmaphi <- 5e-10 #' mu <- 0.9 #' x <- seq(0, 15, 0.2) #' age <- c(1e2, 1e3, 1e4, 1e5, 1e6) #' Ddot <- 1.0 / 1000 / 365.25 / 24 / 60 / 60 # 2.0 Gy/ka in Seconds #' D0 <- 40 #' set.seed(666) #' #' synth_4 <- vector("list", length = length(age)) #' #' for (i in 1:length(age)) { #' fun <- (sigmaphi * exp(-mu * x) * #' exp(-(age[i] * 365.25*24*3600) * #' (sigmaphi * exp(-mu * x) + Ddot/D0)) + Ddot/D0) / #' (sigmaphi * exp(-mu * x) + Ddot/D0) #' #' synth_4[[i]] <- data.frame(depth = x, #' intensity = jitter(fun, 1, 0.05)) #' } #' #' #' ## VALIDATE set_2 #' fit_SurfaceExposure(synth_4, age = age, sigmaphi = sigmaphi, D0 = D0, Ddot = 1.0) #' #' \dontrun{ #' ExampleData.SurfaceExposure <- list( #' sample_1 = synth_1, #' sample_2 = synth_2, #' set_1 = synth_3, #' set_2 = synth_4 #' ) #' } #' #' @keywords datasets #' @name ExampleData.SurfaceExposure #' @md NULL #' Example Al2O3:C Measurement Data #' #' Measurement data obtained from measuring Al2O3:C chips at the IRAMAT-CRP2A, Université Bordeaux #' Montaigne in 2017 on a Freiberg Instruments lexsyg SMART reader. #' The example data used in particular to allow test of the functions #' developed in framework of the work by Kreutzer et al., 2018. #' #' @format Two datasets comprising [RLum.Analysis-class] data imported using the function [read_XSYG2R] #' #' \describe{ #' `data_ITC`: Measurement data to determine the irradiation time correction, the data can #' be analysed with the function [analyse_Al2O3C_ITC] #' #' `data_CrossTalk`: Measurement data obtained while estimating the irradiation cross-talk of the #' reader used for the experiments. The data can be analysed either with the function #' [analyse_Al2O3C_CrossTalk] or [analyse_Al2O3C_Measurement] #' } #' #' @note From both datasets unneeded curves have been removed and #' the number of aliquots have been reduced to a required minimum to keep the file size small, but #' still being able to run the corresponding functions. #' #' @seealso [analyse_Al2O3C_ITC], [analyse_Al2O3C_CrossTalk], [analyse_Al2O3C_Measurement] #' #' @references Kreutzer, S., Martin, L., Guérin, G., Tribolo, C., Selva, P., Mercier, N., 2018. #' Environmental Dose Rate Determination Using a Passive Dosimeter: Techniques and Workflow for alpha-Al2O3:C Chips. #' Geochronometria 45, 56–67. #' #' @keywords datasets internal #' #' @examples #' #' ##(1) curves #' data(ExampleData.Al2O3C, envir = environment()) #' plot_RLum(data_ITC[1:2]) #' #' @name ExampleData.Al2O3C #' @aliases data_CrossTalk data_ITC #' @md NULL #' Example TR-OSL data #' #' Single TR-OSL curve obtained by Schmidt et al. (under review) for quartz sample BT729 #' (origin: Trebgast Valley, Germany, quartz, 90-200 µm, unpublished data). #' #' @format One [RLum.Data.Curve-class] dataset imported using the function [read_XSYG2R] #' #' \describe{ #' `ExampleData.TR_OSL`: A single [RLum.Data.Curve-class] object with the TR-OSL data #' #' } #' #' #' @seealso [fit_OSLLifeTimes] #' #' @references Schmidt, C., Simmank, O., Kreutzer, S., under review. #' Time-Resolved Optically Stimulated Luminescence of Quartz in the Nanosecond Time Domain. Journal #' of Luminescence, 1-90 #' #' @keywords datasets #' #' @examples #' #' ##(1) curves #' data(ExampleData.TR_OSL, envir = environment()) #' plot_RLum(ExampleData.TR_OSL) #' #' @name ExampleData.TR_OSL #' @md NULL #' Collection of External Data #' #' @description Description and listing of data provided in the folder `data/extdata` #' #' @details #' The **R** package `Luminescence` includes a number of raw data files, which are mostly used in #' the example sections of appropriate functions. They are also used internally for testing corresponding #' functions using the `testthat` package (see files in `tests/testthat/`) to ensure their operational #' reliability. #' #' **Accessibility** #' #' If the **R** package `Luminescence` is installed correctly the preferred way to access and use these #' data from within **R** is as follows: #' #' `system.file("extdata/", package = "Luminescence")` #' #' **Individual file descriptions** #' #' *>>Daybreak_TestFile.DAT/.txt<<* #' #' **Type:** raw measurement data \cr #' **Device:** Daybreak OSL/TL reader\cr #' **Measurement date:** unknown\cr #' **Location:** unknown\cr #' **Provided by:** unknown\cr #' **Related R function(s):** `read_Daybreak2R()`\cr #' **Reference:** unknown #' #' *>>DorNie_0016.psl<<* #' #' **Type:** raw measurement data \cr #' **Device:** SUERC portable OSL reader \cr #' **Measurement date:** 19/05/2016 \cr #' **Location:** Dormagen-Nievenheim, Germany \cr #' **Provided by:** Christoph Burow (University of Cologne) \cr #' **Related R function(s):** `read_PSL2R()` \cr #' **Reference:** unpublished \cr #' **Additional information:** Sample measured at an archaeological site near \cr #' Dormagen-Nievenheim (Germany) during a practical course on Luminescence dating in 2016. \cr #' #' *>>QNL84_2_bleached.txt*, *QNL84_2_unbleached.txt<<* #' #' **Type:** Test data for exponential fits \cr #' **Reference:** Berger, G.W., Huntley, D.J., 1989. Test data for exponential fits. Ancient TL 7, 43-46. \cr #' #' #' *>>STRB87_1_bleached.txt*, *STRB87_1_unbleached.txt<<* #' #' **Type:** Test data for exponential fits \cr #' **Reference:** Berger, G.W., Huntley, D.J., 1989. Test data for exponential fits. Ancient TL 7, 43-46. #' #' *>>XSYG_file.xsyg* #' #' **Type:** XSYG-file stump \cr #' **Info: ** XSYG-file with some basic curves to test functions \cr #' **Reference:** no reference available #' #' #' @keywords datasets #' @name extdata #' @md NULL Luminescence/R/utils_DRAC.R0000644000176200001440000002135714762554470015167 0ustar liggesusers## FUNCTIONS ------------------------------------------------------------------- #' @title Subset the DRAC reference #' #' @param x [data.frame] or [DRAC.list] #' #' #' @md #' @noRd .get_DRAC_references <- function(x) { refs <- DRAC_refs() refs_names <- names(refs) used <- list(refs = NULL, desc = NULL) # TI:4 - Conversion factors ref_tmp <- unique(x[[.search_key(x, "TI:4")]]) for (i in 1:length(ref_tmp)) { if (ref_tmp[i] == "X") next() used$refs <- c(used$refs, refs[refs_names %in% ref_tmp[i]]) used$desc <- c(used$desc, "Conversion factors") } # TI:13 - External Rubidium ref_tmp <- unique(x[[.search_key(x, "TI:13")]]) if (any(ref_tmp == "Y")) { used$refs <- c(used$refs, refs["Mejdahl1987"]) used$desc <- c(used$desc, "External rubidium") } # TI:22 - Internal Rubidium ref_tmp <- unique(x[[.search_key(x, "TI:22")]]) if (any(ref_tmp == "Y")) { used$refs <- c(used$refs, refs["Mejdahl1987"]) used$desc <- c(used$desc, "Internal rubidium") } # TI:31 - Gamma dose rate scaling ref_tmp <- unique(x[[.search_key(x, "TI:31")]]) if (any(ref_tmp == "Y")) { used$refs <- c(used$refs, refs["Aitken1985"]) used$desc <- c(used$desc, "Gamma dose rate scaling") } # TI:34 - alpha grain size attenuation ref_tmp <- unique(x[[.search_key(x, "TI:34")]]) for (i in 1:length(ref_tmp)) { if (ref_tmp[i] == "X") next used$refs <- c(used$refs, refs[refs_names %in% ref_tmp[i]]) used$desc <- c(used$desc, "Alpha grain size attenuation factors") } # TI:35 - Beta grain size attenuation ref_tmp <- unique(x[[.search_key(x, "TI:35")]]) for (i in 1:length(ref_tmp)) { if (ref_tmp[i] == "X") next used$refs <- c(used$refs, refs[refs_names %in% ref_tmp[i]]) used$desc <- c(used$desc, "Beta grain size attenuation factors") } # TI:38 - beta etch attenuation factor ref_tmp <- unique(x[[.search_key(x, "TI:38")]]) for (i in 1:length(ref_tmp)) { if (ref_tmp[i] == "X") next used$refs <- c(used$refs, refs[refs_names %in% ref_tmp[i]]) used$desc <- c(used$desc, "Beta etch attenuation factor") } # TI:50 - Cosmic dose rate ref_tmp <- unique(x[[.search_key(x, "TI:50")]]) if (any(ref_tmp == "X")) { used$refs <- c(used$refs, refs[c("PrescottHutton1994", "PrescottStephan1982")]) used$desc <- c(used$desc, c("Cosmic dose rate", "Cosmic dose rate")) } return(used) } ## REFERENCE LIST -------------------------------------------------------------- DRAC_refs <- function() { list( Aitken1985 = bibentry( bibtype = "Book", author = person("M.J.", "Aitken"), title = "Thermoluminescence Dating", year = "1985", publisher = "Academic Press", adress = "London" ), AitkenXie1990 = bibentry( bibtype = "Article", author = c( person("M.J.", "Aitken"), person("J.", "Xie") ), title = "Moisture correction for annual gamma dose", year = "1990", journal = "Ancient TL", volume = "8", pages = "6-9" ), AdamiecAitken1998 = bibentry( bibtype = "Article", author = c( person("G.", "Adamiec"), person("M.J.", "Aitken") ), title = "Dose-rate conversion factors: update", year = "1998", journal = "Ancient TL", volume = "16", pages = "37-46" ), Guerinetal2011 = bibentry( bibtype = "Article", author = c( person("G.", "Guerin"), person("N.", "Mercier"), person("G.", "Adamiec") ), title = "Dose-rate conversion factors: update", year = "2011", journal = "Ancient TL", volume = "29", pages = "5-8", url = "http://ancienttl.org/ATL_29-1_2011/ATL_29-1_Guerin_p5-8.pdf" ), Liritzisetal2013 = bibentry( bibtype = "Article", author = c( person("I.", "Liritzis"), person("K.", "Stamoulis"), person("C.", "Papachristodoulou"), person("K.", "Ioannides") ), title = "A re-evaluation of radiation dose-rate conversion factors. ", year = "2013", journal = "Mediterranean Archaeology and Archaeometry", volume = "13", pages = "1-15", url = "http://maajournal.com/Issues/2012/pdf/FullTextLiritzis.pdf" ), Bell1979 = bibentry( bibtype = "Article", author = c( person("W.T.", "Bell") ), title = "Attenuation factors for the absorbed radiation dose in quartz inclusions for thermoluminescence dating", year = "1979", journal = "Ancient TL", volume = "8", pages = "1-12" ), Bell1980 = bibentry( bibtype = "Article", author = c( person("W.T.", "Bell") ), title = "Alpha attenuation in Quartz grains for Thermoluminescence Dating", year = "1980", journal = "Ancient TL", volume = "12", pages = "4-8" ), Brennanetal1991 = bibentry( bibtype = "Article", author = c( person("B.J.", "Brennan"), person("R.G.", "Lyons"), person("S.W.", "Phillips") ), title = "Attenuation of alpha particle track dose for spherical grains", year = "1991", journal = "International Journal of Radiation Applications and Instrumentation. Part D. Nuclear Tracks and Radiation Measurements", volume = "18", pages = "249-253" ), Cresswelletal2018 = bibentry( bibtype = "Article", author = c( person("A.J.", "Cresswell"), person("J.", "Carter"), person("D.C.W.", "Sanderson") ), title = "Dose rate conversion parameters: Assessment of nuclear data", year = "2008", journal = "Radiation Measurements", volume = "120", pages = "195-201", doi = "10.1016/j.radmeas.2018.02.007" ), Mejdahl1979 = bibentry( bibtype = "Article", author = c( person("V.", "Mejdahl") ), title = "Thermoluminescence Dating: Beta-Dose Attenuation in Quartz Grains", year = "1979", journal = "Archaeometry", volume = "21", pages = "61-72" ), Mejdahl1987 = bibentry( bibtype = "Article", author = c( person("V.", "Mejdahl") ), title = "Internal radioactivity in quartz and feldspar grains", year = "1987", journal = "Ancient TL", volume = "5", pages = "10-17" ), Brennan2003 = bibentry( bibtype = "Article", author = c( person("B.J.", "Brennan") ), title = "Beta doses to spherical grains", year = "2003", journal = "Radiation Measurements", volume = "37", pages = "299-303" ), `Guerinetal2012-Q` = bibentry( bibtype = "Article", author = c( person("G.", "Guerin"), person("N.", "Mercier"), person("R.", "Nathan"), person("G.", "Adamiec"), person("Y.", "Lefrais") ), title = "On the use of the infinite matrix assumption and associated concepts: A critical review", year = "2012", journal = "Radiation Measurements", volume = "47", pages = "778-785" ), `Guerinetal2012-F` = bibentry( bibtype = "Article", author = c( person("G.", "Guerin"), person("N.", "Mercier"), person("R.", "Nathan"), person("G.", "Adamiec"), person("Y.", "Lefrais") ), title = "On the use of the infinite matrix assumption and associated concepts: A critical review", year = "2012", journal = "Radiation Measurements", volume = "47", pages = "778-785" ), PrescottHutton1994 = bibentry( bibtype = "Article", author = c( person("J.R.", "Prescott"), person("J.T.", "Hutton") ), title = "Cosmic ray contributions to dose rates for luminescence and ESR dating: Large depths and long-term time variations", year = "1994", journal = "Radiation Measurements", volume = "23", pages = "497-500" ), PrescottStephan1982 = bibentry( bibtype = "Article", author = c( person("J.R.", "Prescott"), person("L.G.", "Stephan") ), title = "The contribution of cosmic radiation to the environmental dose for thermoluminescence dating", year = "1982", journal = "PACT", volume = "6", pages = "17-25" ), Readhead2002 = bibentry( bibtype = "Article", author = c( person("M.L.", "ReadHead") ), title = "Absorbed dose fraction for 87Rb beta particles", year = "2002", journal = "Ancient TL", volume = "20", pages = "25-29" ) ) } ## internal helper to search key from the DRAC table .search_key <- function(x, key) { if(inherits(x, "DRAC.list")) which(vapply(x, function(i) attr(i, "key") == key, logical(1))) else which(colnames(x) == key) } Luminescence/R/calc_Statistics.R0000644000176200001440000001725414762554470016353 0ustar liggesusers#' @title Function to calculate statistic measures #' #' @description This function calculates a number of descriptive statistics for estimates #' with a given standard error (SE), most fundamentally using error-weighted approaches. #' #' @details The option to use Monte Carlo Methods (`n.MCM`) allows calculating #' all descriptive statistics based on random values. The distribution of these #' random values is based on the Normal distribution with `De` values as #' means and `De_error` values as one standard deviation. Increasing the #' number of MCM-samples linearly increases computation time. On a Lenovo X230 #' machine evaluation of 25 Aliquots with n.MCM = 1000 takes 0.01 s, with #' n = 100000, ca. 1.65 s. It might be useful to work with logarithms of these #' values. See Dietze et al. (2016, Quaternary Geochronology) and the function #' [plot_AbanicoPlot] for details. #' #' @param data [data.frame] or [RLum.Results-class] object (**required**): #' for [data.frame] two columns: De (`data[, 1]`) and De error (`data[, 2]`). #' #' @param weight.calc [character] (*with default*): #' type of weight calculation. One out of `"reciprocal"` (weight is 1/error), #' `"square"` (weight is 1/error^2). Default is `"square"`. #' #' @param digits [integer] (*with default*): #' number of decimal places to be used when rounding numbers. If set to `NULL` #' (default), no rounding occurs. #' #' @param n.MCM [numeric] (*with default*): #' number of samples drawn for Monte Carlo-based statistics. #' `NULL` (the default) disables MC runs. #' #' @param na.rm [logical] (*with default*): #' indicating whether `NA` values should be stripped before the computation proceeds. #' #' @return Returns a list with weighted and unweighted statistic measures. #' #' @section Function version: 0.1.7 #' #' @keywords datagen #' #' @author Michael Dietze, GFZ Potsdam (Germany) #' #' @examples #' #' ## load example data #' data(ExampleData.DeValues, envir = environment()) #' #' ## show a rough plot of the data to illustrate the non-normal distribution #' plot_KDE(ExampleData.DeValues$BT998) #' #' ## calculate statistics and show output #' str(calc_Statistics(ExampleData.DeValues$BT998)) #' #' \dontrun{ #' ## now the same for 10000 normal distributed random numbers with equal errors #' x <- as.data.frame(cbind(rnorm(n = 10^5, mean = 0, sd = 1), #' rep(0.001, 10^5))) #' #' ## note the congruent results for weighted and unweighted measures #' str(calc_Statistics(x)) #' } #' #' @md #' @export calc_Statistics <- function( data, weight.calc = "square", digits = NULL, n.MCM = NULL, na.rm = TRUE ) { .set_function_name("calc_Statistics") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(data, c("RLum.Results", "data.frame")) .validate_not_empty(data) if (inherits(data, "RLum.Results")) { data <- get_RLum(data, "data")[, 1:2] } ##strip na values if(na.rm){ data <- na.exclude(data) } ## handle error-free data sets if(ncol(data) == 1) { data <- cbind(data, rep(NA, length(data))) } ## replace Na values in error by 0 data[is.na(data[,2]),2] <- 0 if(sum(data[,2]) == 0) { .throw_warning("All errors are NA or zero, automatically set to 10^-9") data[,2] <- rep(x = 10^-9, length(data[,2])) } weight.calc <- .validate_args(weight.calc, c("square", "reciprocal")) if(weight.calc == "reciprocal") { S.weights <- 1 / data[,2] } else if(weight.calc == "square") { S.weights <- 1 / data[,2]^2 } S.weights <- S.weights / sum(S.weights) .validate_positive_scalar(digits, int = TRUE, null.ok = TRUE) .validate_positive_scalar(n.MCM, int = TRUE, null.ok = TRUE) ## create MCM data if (is.null(n.MCM)) { data.MCM <- cbind(data[, 1]) } else { data.MCM <- matrix(data = rnorm( n = n.MCM * nrow(data), mean = data[, 1], sd = data[, 2] ), ncol = n.MCM) } ## calculate n S.n <- nrow(data) S.m.n <- S.n * ncol(data.MCM) ## calculate mean S.mean <- mean(x = data[,1], na.rm = na.rm) S.wg.mean <- stats::weighted.mean(x = data[,1], w = S.weights, n.rm = na.rm) S.m.mean <- mean(x = data.MCM, na.rm = na.rm) ## calculate median S.median <- median(x = data[,1], na.rm = na.rm) S.wg.median <- S.median S.m.median <- median(x = data.MCM, na.rm = na.rm) ## calculate absolute standard deviation S.sd.abs <- sd(x = data[,1], na.rm = na.rm) S.wg.sd.abs <- sqrt(sum(S.weights * (data[,1] - S.wg.mean)^2) / (((S.n - 1) * sum(S.weights)) / S.n)) S.m.sd.abs <- sd(x = data.MCM, na.rm = na.rm) ## calculate relative standard deviation S.sd.rel <- S.sd.abs / S.mean * 100 S.wg.sd.rel <- S.wg.sd.abs / S.wg.mean * 100 S.m.sd.rel <- S.m.sd.abs / S.m.mean * 100 ## calculate absolute standard error of the mean S.se.abs <- S.sd.abs / sqrt(S.n) S.wg.se.abs <- S.wg.sd.abs / sqrt(S.n) S.m.se.abs <- S.m.sd.abs / sqrt(S.n) ## calculate relative standard error of the mean S.se.rel <- S.se.abs / S.mean * 100 S.wg.se.rel <- S.wg.se.abs / S.wg.mean * 100 S.m.se.rel <- S.m.se.abs / S.m.mean * 100 ## calculate skewness S.skewness <- 1 / S.n * sum(((data[,1] - S.mean) / S.sd.abs)^3) S.m.skewness <- 1 / S.m.n * sum(((data.MCM - S.m.mean) / S.m.sd.abs)^3) ## calculate kurtosis S.kurtosis <- 1 / S.n * sum(((data[,1] - S.mean) / S.sd.abs)^4) S.m.kurtosis <- 1 / S.m.n * sum(((data.MCM - S.m.mean) / S.m.sd.abs)^4) ## create list objects of calculation output S.weighted <- list(n = S.n, mean = S.wg.mean, median = S.wg.median, sd.abs = S.wg.sd.abs, sd.rel = S.wg.sd.rel, se.abs = S.wg.se.abs, se.rel = S.wg.se.rel, skewness = S.skewness, kurtosis = S.kurtosis) if(!is.null(digits)) { S.weighted <- sapply(names(S.weighted), simplify = FALSE, USE.NAMES = TRUE, function(x) { round(S.weighted[[x]], digits = digits)}) } S.unweighted <- list(n = S.n, mean = S.mean, median = S.median, sd.abs = S.sd.abs, sd.rel = S.sd.rel, se.abs = S.se.abs, se.rel = S.se.rel, skewness = S.skewness, kurtosis = S.kurtosis) if(!is.null(digits)){ S.unweighted <- sapply(names(S.unweighted), simplify = FALSE, USE.NAMES = TRUE, function(x) { round(S.unweighted [[x]], digits = digits)}) } S.MCM <- list(n = S.n, mean = S.m.mean, median = S.m.median, sd.abs = S.m.sd.abs, sd.rel = S.m.sd.rel, se.abs = S.m.se.abs, se.rel = S.m.se.rel, skewness = S.m.skewness, kurtosis = S.m.kurtosis) if(!is.null(digits)){ S.MCM <- sapply(names(S.MCM), simplify = FALSE, USE.NAMES = TRUE, function(x) { round(S.MCM [[x]], digits = digits)}) } list(weighted = S.weighted, unweighted = S.unweighted, MCM = S.MCM) } Luminescence/R/convert_SG2MG.R0000644000176200001440000000655514762554470015620 0ustar liggesusers#' @title Converts Single-Grain Data to Multiple-Grain Data #' #' @description Conversion of single-grain data to multiple-grain data by adding signals #' from grains belonging to one disc (unique pairs of position, set and run). #' #' @param object [Risoe.BINfileData-class] [character] (**required**): [Risoe.BINfileData-class] #' object or BIN/BINX-file name #' #' @param write_file [logical] (*with default*): if the input was a path to a file, the #' output can be written to a file if `TRUE`. The multiple grain file will be written into the #' same folder and with extension `-SG` to the file name. #' #' @param ... further arguments passed down to [read_BIN2R] if input is file path #' #' @return [Risoe.BINfileData-class] object and if `write_file = TRUE` and the input #' was a file path, a file is written to origin folder. #' #' @section Function version: 0.1.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Norbert Mercier, IRAMAT-CRP2A, UMR 5060, CNRS-Université Bordeaux Montaigne (France) #' #' @seealso [Risoe.BINfileData-class], [read_BIN2R], [write_R2BIN] #' #' @keywords IO #' #' @examples #' ## simple run #' ## (please not that the example is not using SG data) #' data(ExampleData.BINfileData, envir = environment()) #' convert_SG2MG(CWOSL.SAR.Data) #' #' @md #' @export convert_SG2MG <- function( object, write_file = FALSE, ... ) { .set_function_name("convert_SG2MG") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(object, c("character", "Risoe.BINfileData")) .validate_not_empty(object) if(!is(object, "Risoe.BINfileData")) { file_name <- object object <- read_BIN2R(object, ...) } # Transform --------------------------------------------------------------- ## get unique pairs of position, run and set and then upairs_sg_id <- as.numeric(rownames( unique(object@METADATA[object@METADATA[["GRAIN"]] != 0,c("POSITION", "RUN", "SET")]))) for(i in upairs_sg_id){ ##get IDs of all relevant records records_id <- object@METADATA[ object@METADATA[["POSITION"]] == object@METADATA[["POSITION"]][[i]] & object@METADATA[["RUN"]] == object@METADATA[["RUN"]][[i]] & object@METADATA[["SET"]] == object@METADATA[["SET"]][[i]], "ID"] # sum up count values and write it into the first grain record object@DATA[[i]] <- matrixStats::rowSums2( matrix( unlist(object@DATA[records_id]), ncol = length(records_id))) } ## clean dataset and remove all irrelevant data upairs_id <- as.numeric(rownames( unique(object@METADATA[, c("POSITION", "RUN", "SET")]))) object@METADATA <- object@METADATA[upairs_id, ] object@DATA <- object@DATA[upairs_id] ##recalculate IDs and reset GRAIN object@METADATA[["ID"]] <- 1:length(object@DATA) object@METADATA[["GRAIN"]] <- 0 # Write file -------------------------------------------------------------- if(write_file[1]){ if(!inherits(try(file.exists(file_name), silent = FALSE), "try-error")){ dirname <- dirname(normalizePath(file_name)) filename <- strsplit(basename(normalizePath(file_name)), ".", fixed = TRUE)[[1]] write_R2BIN(object, paste0(dirname,"/",filename[1],"_SG.",filename[2]), ...) } } # Return object ----------------------------------------------------------- return(object) } Luminescence/R/read_SPE2R.R0000644000176200001440000003175514762554470015067 0ustar liggesusers#' @title Import Princeton Instruments (TM) SPE-file into R #' #' @description Function imports Princeton Instruments (TM) SPE-files into R environment and #' provides [RLum.Data.Image-class] objects as output. #' #' @details Function provides an R only import routine for the Princeton Instruments #' SPE format. Import functionality is based on the file format description provided by #' Princeton Instruments and a MatLab script written by Carl Hall (see #' references). #' #' @param file [character] (**required**): #' SPE-file name (including path), e.g. #' - `[WIN]`: `read_SPE2R("C:/Desktop/test.spe")` #' - `[MAC/LINUX]`: `read_SPE2R("/User/test/Desktop/test.spe")`. #' Additionally, it can be a URL starting with http:// or https://. #' #' @param output.object [character] (*with default*): #' set `RLum` output object. Allowed types are `"RLum.Data.Spectrum"`, #' `"RLum.Data.Image"` or `"matrix"` #' #' @param frame.range [vector] (*optional*): #' limit frame range, e.g. select first 100 frames by `frame.range = c(1,100)` #' #' @param txtProgressBar [logical] (*with default*): #' enable/disable the progress bar. Ignored if `verbose = FALSE`. #' #' @param verbose [logical] (*with default*): enable/disable output to the #' terminal. #' #' @param ... not used, for compatibility reasons only #' #' @return #' Depending on the chosen option the functions returns three different #' type of objects: #' #' `output.object` #' #' `RLum.Data.Spectrum` #' #' An object of type [RLum.Data.Spectrum-class] is returned. Row #' sums are used to integrate all counts over one channel. #' #' `RLum.Data.Image` #' #' An object of type [RLum.Data.Image-class] is returned. Due to #' performance reasons the import is aborted for files containing more than 100 #' frames. This limitation can be overwritten manually by using the argument #' `frame.range`. #' #' `matrix` #' #' Returns a matrix of the form: Rows = Channels, columns = Frames. For the #' transformation the function [get_RLum] is used, #' meaning that the same results can be obtained by using the function #' [get_RLum] on an `RLum.Data.Spectrum` or `RLum.Data.Image` object. #' #' @note #' **The function does not test whether the input data are spectra or pictures for spatial resolved analysis!** #' #' The function has been successfully tested for SPE format versions 2.x. #' #' *Currently not all information provided by the SPE format are supported.* #' #' @section Function version: 0.1.5 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [readBin], [RLum.Data.Spectrum-class] #' #' @references #' Princeton Instruments, 2014. Princeton Instruments SPE 3.0 File #' Format Specification, Version 1.A (for document URL please use an internet search machine) #' #' Hall, C., 2012: readSPE.m. #' `https://www.mathworks.com/matlabcentral/fileexchange/35940-readspe` #' #' @keywords IO #' #' @examples #' #' ## to run examples uncomment lines and run the code #' #' ##(1) Import data as RLum.Data.Spectrum object #' #file <- file.choose() #' #temp <- read_SPE2R(file) #' #temp #' #' ##(2) Import data as RLum.Data.Image object #' #file <- file.choose() #' #temp <- read_SPE2R(file, output.object = "RLum.Data.Image") #' #temp #' #' ##(3) Import data as matrix object #' #file <- file.choose() #' #temp <- read_SPE2R(file, output.object = "matrix") #' #temp #' #' ##(4) Export raw data to csv, if temp is a RLum.Data.Spectrum object #' # write.table(x = get_RLum(temp), #' # file = "[your path and filename]", #' # sep = ";", row.names = FALSE) #' #' #' @md #' @export read_SPE2R <- function( file, output.object = "RLum.Data.Image", frame.range, txtProgressBar = TRUE, verbose = TRUE, ... ) { .set_function_name("read_SPE2R") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(file, "character") .validate_length(file, 1) valid.output.object <- c("RLum.Data.Image", "RLum.Data.Spectrum", "matrix") .validate_args(output.object, valid.output.object) ##check if file exists if(!file.exists(file)){ failed <- TRUE ## check if the file is an URL ... you never know if (grepl(pattern = "^https?://", x = file)) { if(verbose){ cat("[read_SPE2R()] URL detected, checking connection ... ") } ##check URL if(!httr::http_error(file)){ if (verbose) cat("OK\n") ##download file file_link <- tempfile("read_SPE2R_FILE", fileext = ".SPE") download.file(file, destfile = file_link, quiet = !verbose, mode = "wb") file <- file_link failed <- FALSE }else{ if (verbose) cat("FAILED\n") } } if (failed) { .throw_message("File does not exist, NULL returned") return(NULL) } } ##check file extension if(!grepl(basename(file), pattern = "SPE$", ignore.case = TRUE)){ if(strsplit(file, split = "\\.")[[1]][2] != "SPE"){ .throw_error("Unsupported file format: *.", strsplit(file, split = "\\.")[[1]][2], sep = "") }} if (!verbose) txtProgressBar <- FALSE # Open Connection --------------------------------------------------------- con <- file(file, "rb") if (verbose) { cat("\n[read_SPE2R()] Importing ...") cat("\n path: ", dirname(file)) cat("\n file: ", .shorten_filename(basename(file))) cat("\n") } # read header ------------------------------------------------------------- temp <- readBin(con, what="int", 2, size=2, endian="little", signed = TRUE) ControllerVersion <- temp[1] #Hardware version LogicOutput <- temp[2] #Definition of Output BNC temp <- readBin(con, what="int", 2, size=2, endian="little", signed = FALSE) AmpHiCapLowNoise <- temp[1] #Amp Switching Mode xDimDet <- temp[2] #Detector x dimension of chip. #timing mode mode <- readBin(con, what="int", 1, size=2, endian="little", signed = TRUE) #alternative exposure, in sec. exp_sec <- readBin(con, what="double", 1, size=4, endian="little") temp <- readBin(con, what="int", 2, size=2, endian="little", signed = TRUE) VChipXdim <- temp[1] # Virtual Chip X dim VChipYdim <- temp[2] # Virtual Chip Y dim #y dimension of CCD or detector. yDimDet <- readBin(con, what="int", 1, size=2, endian="little", signed = TRUE) #Date Date <- suppressWarnings(readChar(con, 10, useBytes=TRUE)) ##jump stepping <- readBin(con, what="raw", 4, size=1, endian="little", signed = TRUE) #Old number of scans - should always be -1 noscan <- readBin(con, what="int", 1, size=2, endian="little", signed = TRUE) #Detector Temperature Set DetTemperature <- readBin(con, what="double", 1, size=4, endian="little") # CCD/DiodeArray type DetType <- readBin(con, what="int", 1, size=2, endian="little", signed = TRUE) #actual # of pixels on x axis xdim <- readBin(con, what="int", 1, size=2, endian="little", signed = FALSE) ##jump stepping <- readBin(con, what="raw", 64, size=1, endian="little", signed = TRUE) ##experiment data type ##0 = 32f (4 bytes) ##1 = 32s (4 bytes) ##3 = 16u (2 bytes) ##8 = 32u (4 bytes) datatype <- readBin(con, what="int", 1, size=2, endian="little", signed = TRUE) ##jump stepping <- readBin(con, what="raw", 546, size=1, endian="little") #y dimension of raw data. ydim <- readBin(con, what="int", 1, size=2, endian="little", signed = FALSE) ##0=scrambled,1=unscrambled scramble <- readBin(con, what="int", 1, size=2, endian="little", signed = FALSE) ##jump stepping <- readBin(con, what="raw", 4, size=1, endian="little") #Number of scans (Early WinX) lnoscan <- readBin(con, what="int", 1, size=4, endian="little", signed = TRUE) #Number of Accumulations lavgexp <- readBin(con, what="int", 1, size=4, endian="little", signed = TRUE) ##Experiment readout time ReadoutTime <- readBin(con, what="double", 1, size=4, endian="little") #T/F Triggered Timing Option TriggeredModeFlag <- readBin(con, what="int", 1, size=2, endian="little", signed = TRUE) ##jump stepping <- readBin(con, what="raw", 768, size=1, endian="little") ##number of frames in file. NumFrames <- readBin(con, what="int", 1, size=4, endian="little", signed = TRUE) if(NumFrames > 100 & missing(frame.range) & output.object == "RLum.Data.Image"){ .throw_error("Import aborted: this file containes > 100 frames (", NumFrames, "). Use argument 'frame.range' to force import.") } ##set frame.range if(missing(frame.range) == TRUE){frame.range <- c(1,NumFrames)} ##jump stepping <- readBin(con, what="raw", 542, size=1, endian="little") #file_header_ver file_header_ver <- readBin(con, what="double", 1, size=4, endian="little") ##jump stepping <- readBin(con, what="raw", 1000, size=1, endian="little") ##WinView_id - set to 19,088,743 (or 1234567 hex) (required for legacy reasons) WinView_id <- readBin(con, what="integer", 1, size=4, endian="little", signed = TRUE) ##jump stepping <- readBin(con, what="raw", 1098, size=1, endian="little") ##lastvalue - set to 21,845 (or 5555 hex) (required for legacy reasons) lastvalue <- readBin(con, what="integer", 1, size=2, endian="little", signed = TRUE) ##end header ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ##create info element list from data temp.info <- list(ControllerVersion, LogicOutput, AmpHiCapLowNoise, xDimDet, yDimDet, xdim, ydim, VChipXdim, VChipYdim, Date, noscan, mode, exp_sec, DetTemperature, DetType, datatype, scramble, lnoscan, lavgexp, ReadoutTime, TriggeredModeFlag, NumFrames, file_header_ver) ##set name for list elements names(temp.info) <- c("ControllerVersion", "LogicOutput", "AmpHiCapLowNoise", "xDimDet", "yDimDet", "xdim", "ydim", "VChipXdim", "VChipYdim", "Date", "noscan", "mode", "exp_sec", "DetTemperature", "DetType", "datatype", "scramble", "lnoscan", "lavgexp", "ReadoutTime", "TriggeredModeFlag", "NumFrames", "file_header_ver") # read count value data --------------------------------------------------- ##set functions ## define the reading function according to the datatype if (!datatype %in% c(0, 1, 2, 3, 8)) { .throw_error("Unknown 'datatype'") # nocov } what <- if (datatype == 0) "double" else "integer" size <- if (datatype %in% 2:3) 2 else 4 sign <- if (datatype %in% 0:2) TRUE else FALSE read.data <- function(n.counts){ readBin(con, what = what, n = n.counts, size = size, signed = sign, endian = "little") } ##loop over all frames ##output if(verbose) cat("\n[read_SPE2R()]\n\t >>", file) ##set progressbar if (txtProgressBar) { pb<-txtProgressBar(min=0,max=diff(frame.range)+1, char="=", style=3) } ##stepping for frame range temp <- readBin(con, what = "raw", (min(frame.range)-1)*2, size = 1, endian = "little") for(i in 1:(diff(frame.range)+1)){#NumFrames temp.data <- matrix(read.data(n.counts = (xdim * ydim)), ncol = ydim, nrow = xdim) if(exists("data.list") == FALSE){ data.list <- list(temp.data) }else{ data.list <- c(data.list, list(temp.data)) } ##update progress bar if (txtProgressBar) { setTxtProgressBar(pb, i) } } ##close if (txtProgressBar) { close(pb) cat("\t >>", i,"records have been read successfully!\n\n") } # Output ------------------------------------------------------------------ if(output.object == "RLum.Data.Spectrum" | output.object == "matrix"){ ##to create a spectrum object the matrix has to transposed and ##the row sums are needed data.spectrum.vector <- sapply(1:length(data.list), function(x){ rowSums(data.list[[x]]) }) ##split vector to matrix data.spectrum.matrix <- matrix(data.spectrum.vector, nrow = xdim, ncol = length(data.list)) ##set column and row names colnames(data.spectrum.matrix) <- as.character(1:ncol(data.spectrum.matrix)) rownames(data.spectrum.matrix) <- as.character(1:nrow(data.spectrum.matrix)) ##set output object object <- set_RLum( class = "RLum.Data.Spectrum", originator = "read_SPE2R", recordType = "Spectrum", curveType = "measured", data = data.spectrum.matrix, info = temp.info) ##optional matrix object if (output.object == "matrix") { object <- get_RLum(object) } }else if(output.object == "RLum.Data.Image"){ object <- as(data.list, "RLum.Data.Image") object@originator <- "read_SPE2R" object@recordType = "Image" object@curveType <- "measured" object@info <- temp.info } ##close con close(con) ##return values return(object) } Luminescence/R/RLum.Data.Curve-class.R0000644000176200001440000003563714762554470017161 0ustar liggesusers#' Class `"RLum.Data.Curve"` #' #' Class for representing luminescence curve data. #' #' @name RLum.Data.Curve-class #' #' @docType class #' #' @slot recordType #' Object of class "character" containing the type of the curve (e.g. "TL" or "OSL") #' #' @slot curveType #' Object of class "character" containing curve type, allowed values are #' "measured" or "predefined" #' #' @slot data #' Object of class [matrix] containing curve x and y data. #' 'data' can also be of type `RLum.Data.Curve` to change object values without #' de-constructing the object. For example: #' ``` #' set_RLum(class = 'RLum.Data.Curve', #' data = Your.RLum.Data.Curve, #' recordType = 'never seen before') #' ``` #' would just change the `recordType`. Missing arguments the value is taken #' from the input object in 'data' (which is already an `RLum.Data.Curve` #' object in this example) #' #' #' @note #' The class should only contain data for a single curve. For additional #' elements the slot `info` can be used (e.g. providing additional heating #' ramp curve). Objects from the class `RLum.Data.Curve` are produced by other #' functions (partly within [RLum.Analysis-class] objects), #' namely: [Risoe.BINfileData2RLum.Analysis], [read_XSYG2R] #' #' @section Create objects from this Class: #' Objects can be created by calls of the form #' `set_RLum(class = "RLum.Data.Curve", ...)`. #' #' @section Class version: 0.5.1 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum-class], [RLum.Data-class], [plot_RLum], [merge_RLum] #' #' @keywords classes #' #' @examples #' #' showClass("RLum.Data.Curve") #' #' ##set empty curve object #' set_RLum(class = "RLum.Data.Curve") #' #' @md #' @export setClass("RLum.Data.Curve", slots = list( recordType = "character", curveType = "character", data = "matrix" ), contains = "RLum.Data", prototype = list ( recordType = NA_character_, curveType = NA_character_, data = matrix(data = 0, ncol = 2) ) ) # as() ---------------------------------------------------------------------------------------- ##LIST ##COERCE RLum.Data.Curve >> list AND list >> RLum.Data.Curve #' as() - RLum-object coercion #' #' for `[RLum.Data.Curve-class]` #' #' **[RLum.Data.Curve-class]** #' #' \tabular{lll}{ #' **from** \tab **to**\cr #' `list` \tab `list` \cr #' `data.frame` \tab `data.frame`\cr #' `matrix` \tab `matrix` #' } #' #' @param from [RLum-class], [list], [data.frame], [matrix] (**required**): #' object to be coerced from #' #' @param to [character] (**required**): #' class name to be coerced to #' #' @seealso [methods::as] #' #' @note #' Due to the complex structure of the `RLum` objects itself a coercing to standard #' R data structures will be always loosely! #' #' @md #' @name as setAs("list", "RLum.Data.Curve", function(from,to){ if (length(from) == 0) return(set_RLum("RLum.Data.Curve")) new(to, recordType = "unknown curve type", curveType = NA_character_, data = matrix(unlist(from), ncol = 2), info = list()) }) setAs("RLum.Data.Curve", "list", function(from){ list(x = from@data[,1], y = from@data[,2]) }) ##DATA.FRAME ##COERCE RLum.Data.Curve >> data.frame AND data.frame >> RLum.Data.Curve setAs("data.frame", "RLum.Data.Curve", function(from,to){ new(to, recordType = "unknown curve type", curveType = NA_character_, data = as.matrix(from), info = list()) }) setAs("RLum.Data.Curve", "data.frame", function(from){ data.frame(x = from@data[,1], y = from@data[,2]) }) ##MATRIX ##COERCE RLum.Data.Curve >> matrix AND matrix >> RLum.Data.Curve setAs("matrix", "RLum.Data.Curve", function(from,to){ new(to, recordType = "unknown curve type", curveType = NA_character_, data = from, info = list()) }) setAs("RLum.Data.Curve", "matrix", function(from){ from@data }) # show() -------------------------------------------------------------------------------------- #' @describeIn RLum.Data.Curve #' Show structure of `RLum.Data.Curve` object #' #' @keywords internal #' #' @md #' @export setMethod("show", signature(object = "RLum.Data.Curve"), function(object){ ##print information cat("\n [RLum.Data.Curve-class]") cat("\n\t recordType:", object@recordType) cat("\n\t curveType:", object@curveType) cat("\n\t measured values:", length(object@data[,1])) cat("\n\t .. range of x-values:", suppressWarnings(range(object@data[,1]))) cat("\n\t .. range of y-values:", suppressWarnings(min(object@data[,2], na.rm = TRUE)), suppressWarnings(max(object@data[,2], na.rm = TRUE)), if(anyNA(object@data[,2])){"(contains NA values)"}else{""} ) cat("\n\t additional info elements:", length(object@info), "\n") #cat("\n\t\t >> names:", names(object@info)) } ) # set_RLum() ---------------------------------------------------------------------------------- #' @describeIn RLum.Data.Curve #' Construction method for RLum.Data.Curve object. The slot info is optional #' and predefined as empty list by default. #' #' @param class [`set_RLum`]; [character] (**required**): #' name of the `RLum` class to create #' #' @param originator [`set_RLum`]; [character] (*automatic*): #' contains the name of the calling function (the function that produces this object); #' can be set manually. #' #' @param .uid [`set_RLum`]; [character] (*automatic*): #' sets an unique ID for this object using the internal C++ function `create_UID`. #' #' @param .pid [`set_RLum`]; [character] (*with default*): #' option to provide a parent id for nesting at will. #' #' @param recordType [`set_RLum`]; [character] (*optional*): #' record type (e.g., "OSL") #' #' @param curveType [`set_RLum`]; [character] (*optional*): #' curve type (e.g., "predefined" or "measured") #' #' @param data [`set_RLum`]; [matrix] (**required**): #' raw curve data. If `data` itself is a `RLum.Data.Curve`-object this can be #' used to re-construct the object (see details), i.e. modified parameters except #' `.uid`, `.pid` and `originator`. The rest will be subject to copy and paste unless provided. #' #' @param info [`set_RLum`]; [list] (*optional*): #' info elements #' #' @return #' #' **`set_RLum`** #' #' Returns an [RLum.Data.Curve-class] object. #' #' @md #' @export setMethod( "set_RLum", signature = signature("RLum.Data.Curve"), definition = function( class, originator, .uid, .pid, recordType = NA_character_, curveType = NA_character_, data = matrix(0, ncol = 2), info = list()) { ##The case where an RLum.Data.Curve object can be provided ##with this RLum.Data.Curve objects can be provided to be reconstructed if (is(data, "RLum.Data.Curve")) { ##check for missing curveType if (missing(curveType)) curveType <- data@curveType ##check for missing recordType if(missing(recordType)) recordType <- data@recordType ##check for missing data ... not possible as data is the object itself ##check for missing info if(missing(info)) info <- data@info ##check for missing .uid and .pid and originator ##>> no this is always taken from the old object here ##set empty class from object newRLumDataCurve <- new("RLum.Data.Curve") ##fill - this is the faster way, filling in new() costs ... newRLumDataCurve@recordType <- recordType newRLumDataCurve@curveType <- curveType newRLumDataCurve@data <- data@data newRLumDataCurve@info <- info newRLumDataCurve@originator <- data@originator newRLumDataCurve@.uid <- data@.uid newRLumDataCurve@.pid <- data@.pid } else { ##set empty class form object newRLumDataCurve <- new("RLum.Data.Curve") ##fill - this is the faster way, filling in new() costs ... newRLumDataCurve@originator <- originator newRLumDataCurve@recordType <- recordType newRLumDataCurve@curveType <- curveType newRLumDataCurve@data <- data newRLumDataCurve@info <- info newRLumDataCurve@.uid <- .uid newRLumDataCurve@.pid <- .pid } return(newRLumDataCurve) } ) # get_RLum() ---------------------------------------------------------------------------------- #' @describeIn RLum.Data.Curve #' Accessor method for RLum.Data.Curve object. The argument info.object is #' optional to directly access the info elements. If no info element name is #' provided, the raw curve data (matrix) will be returned. #' #' @param object [`get_RLum`], [`length_RLum`], [`names_RLum`] (**required**): #' an object of class [RLum.Data.Curve-class] #' #' @param info.object [`get_RLum`] [character] (*optional*): #' name of the wanted info element #' #' @return #' #' **`get_RLum`** #' #' 1. A [matrix] with the curve values or #' 2. only the info object if `info.object` was set. #' #' @md #' @export setMethod("get_RLum", signature("RLum.Data.Curve"), definition = function(object, info.object = NULL) { .set_function_name("get_RLum") on.exit(.unset_function_name(), add = TRUE) if(!is.null(info.object)) { if(info.object %in% names(object@info)){ unlist(object@info[info.object]) }else{ ##check for entries if(length(object@info) == 0){ .throw_warning("This RLum.Data.Curve object has no ", "info objects, NULL returned") return(NULL) } .throw_warning("Invalid 'info.object' name, valid names are: ", .collapse(names(object@info))) return(NULL) } } else { ## if info.object == NULL just show the curve values object@data } }) # length_RLum() ------------------------------------------------------------------------------- #' @describeIn RLum.Data.Curve #' Returns the length of the curve object, which is the maximum of the #' value time/temperature of the curve (corresponding to the stimulation length) #' #' @return #' #' **`length_RLum`** #' #' Number of channels in the curve (row number of the matrix) #' #' @md #' @export setMethod("length_RLum", "RLum.Data.Curve", function(object){ max(object@data[,1]) }) # names_RLum() -------------------------------------------------------------------------------- #' @describeIn RLum.Data.Curve #' Returns the names info elements coming along with this curve object #' #' @return #' #' **`names_RLum`** #' #' Names of the info elements (slot `info`) #' #' @md #' @export setMethod("names_RLum", "RLum.Data.Curve", function(object){ names(object@info) }) # bin_RLum.Data() ----------------------------------------------------------------------------- #' @describeIn RLum.Data.Curve #' Allows binning of specific objects #' #' @param bin_size [integer] (*with default*): #' set number of channels used for each bin, e.g. `bin_size = 2` means that #' two channels are binned. #' #' @return #' #' **`bin_RLum.Data`** #' #' Same object as input, after applying the binning. #' #' @md #' @export setMethod(f = "bin_RLum.Data", signature = "RLum.Data.Curve", function(object, bin_size = 2) { ##check for invalid bin_size values if (!is.null(bin_size) && bin_size > 0) { ##set stepping vector stepping <- seq(1, nrow(object@data), by = bin_size) ##get bin vector bin_vector <- object@data[, 2] ##set desired length of the vector ##to avoid add effects later length(bin_vector) <- suppressWarnings(prod(dim(matrix( bin_vector, ncol = length(stepping) )))) ##define new matrix for binning bin_matrix <- matrix(bin_vector, ncol = length(stepping)) ##calcuate column sums and replace matrix ##this is much faster than anly apply loop object@data <- matrix(c(object@data[stepping], colSums(bin_matrix, na.rm = TRUE)), ncol = 2) ##set matrix return(set_RLum(class = "RLum.Data.Curve", data = object)) } else{ warning("Argument 'bin_size' invalid, nothing was done!") ##just return the object return(object) } }) # smooth_RLum() ------------------------------------------------------------------------------- #' @describeIn RLum.Data.Curve #' Smoothing of RLum.Data.Curve objects using a rolling mean or median. #' In particular the internal function `.smoothing` is used. #' #' @param k [`smooth_RLum`]; [integer] (*with default*): #' window for the rolling mean; must be odd for `rollmedian`. #' If nothing is set k is set automatically #' #' @param fill [`smooth_RLum`]; [numeric] (*with default*): #' a vector defining the left and the right hand data #' #' @param align [`smooth_RLum`]; [character] (*with default*): #' specifying whether the index of the result should be left- or right-aligned #' or centred (default) compared to the rolling window of observations, allowed #' `"right"`, `"center"` and `"left"` #' #' @param method [`smooth_RLum`]; [character] (*with default*): #' defines which method should be applied for the smoothing: `"mean"` or `"median"` #' #' @return #' #' **`smooth_RLum`** #' #' Same object as input, after smoothing #' #' @md #' @export setMethod( f = "smooth_RLum", signature = "RLum.Data.Curve", function(object, k = NULL, fill = NA, align = "right", method = "mean") { object@data[,2] <- .smoothing( x = object@data[,2], k = k, fill = fill, align = align, method = method) ##return via set function to get a new id set_RLum(class = "RLum.Data.Curve", originator = "smooth_RLum", data = object) } ) # melt_RLum() ------------------------------------------------------------------------------- #' @describeIn RLum.Data.Curve #' Melts [RLum.Data.Curve-class] objects into a flat data.frame to be used #' in combination with other packages such as `ggplot2`. #' #' @return #' #' **`melt_RLum`** #' #' Flat [data.frame] with `X`, `Y`, `TYPE`, `UID` #' #' @md #' @export setMethod( f = "melt_RLum", signature = "RLum.Data.Curve", function(object) { data.frame( X = object@data[,1], Y = object@data[,2], TYPE = object@recordType, UID = object@.uid) } ) Luminescence/R/plot_DoseResponseCurve.R0000644000176200001440000003461014762554470017706 0ustar liggesusers#' @title Plot a dose-response curve for luminescence data (Lx/Tx against dose) #' #' @description #' #' A dose-response curve is produced for luminescence measurements using a #' regenerative or additive protocol as implemented in [fit_DoseResponseCurve]. #' #' @param object [RLum.Results-class] (**required**): #' An object produced by [fit_DoseResponseCurve]. #' #' @param plot_extended [logical] (*with default*): #' If `TRUE`, 3 plots on one plot area are provided: #' 1. growth curve, #' 2. histogram from Monte Carlo error simulation and #' 3. a test dose response plot. #' #' If `FALSE`, just the growth curve will be plotted. #' #' @param plot_singlePanels [logical] (*with default*): #' single plot output (`TRUE/FALSE`) to allow for plotting the results in #' single plot windows. Ignored if `plot_extended = FALSE`. #' #' @param cex.global [numeric] (*with default*): #' global scaling factor. #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param ... Further graphical parameters to be passed (supported: #' `main`, `mtext`, `xlim`, `ylim`, `xlab`, `ylab`, `legend`, `reg_points_pch`, #' `density_polygon` (`TRUE/FALSE`), `density_polygon_col`, `density_rug` (`TRUE`/`FALSE`)), #' `box` (`TRUE`/`FALSE`) #' #' @return #' A plot (or a series of plots) is produced. #' #' @section Function version: 1.0.2 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Michael Dietze, GFZ Potsdam (Germany) \cr #' Marco Colombo, Institute of Geography, Heidelberg University (Germany) #' #' @references #' #' Berger, G.W., Huntley, D.J., 1989. Test data for exponential fits. Ancient TL 7, 43-46. #' #' Guralnik, B., Li, B., Jain, M., Chen, R., Paris, R.B., Murray, A.S., Li, S.-H., Pagonis, P., #' Herman, F., 2015. Radiation-induced growth and isothermal decay of infrared-stimulated luminescence #' from feldspar. Radiation Measurements 81, 224-231. #' #' Pagonis, V., Kitis, G., Chen, R., 2020. A new analytical equation for the dose response of dosimetric materials, #' based on the Lambert W function. Journal of Luminescence 225, 117333. \doi{10.1016/j.jlumin.2020.117333} #' #' @seealso [fit_DoseResponseCurve] #' #' @examples #' #' ##(1) plot dose-response curve for a dummy dataset #' data(ExampleData.LxTxData, envir = environment()) #' fit <- fit_DoseResponseCurve(LxTxData) #' plot_DoseResponseCurve(fit) #' #' ##(1b) horizontal plot arrangement #' layout(mat = matrix(c(1,1,2,3), ncol = 2)) #' plot_DoseResponseCurve(fit, plot_singlePanels = TRUE) #' #' ##(2) plot the dose-response curve with pdf output - uncomment to use #' ##pdf(file = "~/Dose_Response_Curve_Dummy.pdf", paper = "special") #' plot_DoseResponseCurve(fit) #' ##dev.off() #' #' ##(3) plot the growth curve with pdf output - uncomment to use, single output #' ##pdf(file = "~/Dose_Response_Curve_Dummy.pdf", paper = "special") #' plot_DoseResponseCurve(fit, plot_singlePanels = TRUE) #' ##dev.off() #' #' ##(4) plot resulting function for given interval x #' x <- seq(1,10000, by = 100) #' plot( #' x = x, #' y = eval(fit$Formula), #' type = "l" #' ) #' #' @md #' @export plot_DoseResponseCurve <- function( object, plot_extended = TRUE, plot_singlePanels = FALSE, cex.global = 1, verbose = TRUE, ... ) { .set_function_name("plot_DoseResponseCurve") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(object, "RLum.Results") .validate_logical_scalar(plot_extended) .validate_logical_scalar(plot_singlePanels) .validate_logical_scalar(verbose) .validate_positive_scalar(cex.global) ## Fitting arguments ------------------------------------------------------ fit.args <- object$Fit.Args mode <- fit.args$mode sample <- fit.args$object ## for interpolation the first point is considered as natural dose first.idx <- ifelse(mode == "interpolation", 2, 1) last.idx <- fit.args$fit.NumberRegPoints + 1 xy <- sample[first.idx:last.idx, 1:2] colnames(xy) <- c("x", "y") y.Error <- sample[first.idx:last.idx, 3] De <- object@data$De$De.plot x.natural <- na.exclude(object@data$De.MC) De.MonteCarlo <- mean(na.exclude(x.natural)) De.Error <- sd(na.exclude(x.natural)) ## Graphical arguments ---------------------------------------------------- ymax <- max(xy$y) + if (max(xy$y) * 0.1 > 1.5) 1.5 else max(xy$y) * 0.2 ylim <- if (mode == "extrapolation" || fit.args$fit.force_through_origin) { c(0 - max(y.Error), ymax) } else { c(0, ymax) } xmin <- if (!is.na(De)) min(De * 2, 0) else -min(xy$x) * 2 xmax <- max(xy$x) + if (max(xy$x) * 0.4 > 50) 50 else max(xy$x) * 0.4 xlim <- if (mode == "extrapolation") { c(xmin, xmax) } else { c(0, xmax) } ## set plot settings plot_settings <- modifyList( x = list( main = "Dose-response curve", xlab = "Dose [s]", ylab = if (mode == "interpolation") expression(L[x]/T[x]) else "Luminescence [a.u.]", ylim = ylim, xlim = xlim, cex = 1, mtext = if (mode != "alternate") { substitute( D[e] == De, list(De = paste( round( abs(De), digits = 2), "\u00B1", format(De.Error, scientific = TRUE, digits = 2), " | fit: ", fit.args$fit.method))) } else { "" }, legend = TRUE, reg_points_pch = c(19,2, 1), density_polygon = TRUE, density_polygon_col = rgb(1,0,0,0.2), density_rug = TRUE, box = TRUE), val = list(...), keep.null = TRUE ) ## Main plots ------------------------------------------------------------- ## set plot check plot_check <- NULL ## open plot area par(cex = cex.global) if (plot_extended && !plot_singlePanels) { ## get graphic values par_default <- par(no.readonly = TRUE) on.exit(par(par_default), add = TRUE) ## set new parameter layout(matrix(c(1, 1, 1, 1, 2, 3), 3, 2, byrow = TRUE), respect = TRUE) par(cex = 0.8 * plot_settings$cex) } #PLOT #Plot input values ##Make selection to support manual number of reg points input plot_check <- try(plot( xy[1:fit.args$fit.NumberRegPointsReal, ], ylim = plot_settings$ylim, xlim = plot_settings$xlim, pch = plot_settings$reg_points_pch, xlab = plot_settings$xlab, ylab = plot_settings$ylab, frame.plot = plot_settings$box[1] ), silent = TRUE) if (!is(plot_check, "try-error")) { if (mode == "extrapolation") { abline(v = 0, lty = 1, col = "grey") abline(h = 0, lty = 1, col = "grey") } ### add header title(main = plot_settings$main, line = NA) ## add curve if (inherits(object$Formula, "expression")) { x <- seq(par()$usr[1], par()$usr[2], length.out = 100) lines(x, eval(object$Formula)) } ## natural value if (mode == "interpolation") { points(sample[1, 1:2], col = "red", pch = plot_settings$reg_points_pch[1]) segments(sample[1, 1], sample[1, 2] - sample[1, 3], sample[1, 1], sample[1, 2] + sample[1, 3], col = "red") } else if (mode == "extrapolation"){ points( x = De, y = 0, bg = "red", pch = 21, col = "black", cex = 1.1 * cex.global) } ## repeated Point points( x = xy[which(duplicated(xy[, 1])), 1], y = xy[which(duplicated(xy[, 1])), 2], pch = if(is.na(plot_settings$reg_points_pch[2])) plot_settings$reg_points_pch[1] else plot_settings$reg_points_pch[2]) ## reg Point 0 points( x = xy[which(xy == 0), 1], y = xy[which(xy == 0), 2], pch = if(is.na(plot_settings$reg_points_pch[3])) plot_settings$reg_points_pch[1] else plot_settings$reg_points_pch[3], cex = 1.5 * cex.global) ## ARROWS #y-error Bar segments(xy$x, xy$y - y.Error, xy$x, xy$y + y.Error) ## LINES #Insert Ln/Tn if (mode == "interpolation") { xmax <- if (is.na(De)) max(sample[, 1]) * 2 else De try(lines( c(par()$usr[1], xmax), c(sample[1, 2], sample[1, 2]), col = "red", lty = 2, lwd = 1.25 ), silent = TRUE) try(lines( c(De, De), c(par()$usr[3], sample[1, 2]), col = "red", lty = 2, lwd = 1.25), silent = TRUE) try({ points( x = De, y = sample[1, 2], col = "black", pch = 21, bg = "red", cex = 1.1 * cex.global) }, silent = TRUE) if (plot_settings$density_polygon[1] & length(x.natural) > 1 && !all(is.na(x.natural))) { ##calculate density De.MC density_De <- density(x.natural, na.rm = TRUE) ##calculate transformation function x.1 <- max(density_De$y) x.2 <- min(density_De$y) y.1 <- c(sample[1, 2])/2 y.2 <- par("usr")[3] m <- (y.1 - y.2) / (x.1 + x.2) n <- y.1 - m * x.1 density_De$y <- m * density_De$y + n polygon( x = density_De$x, y = density_De$y, col = plot_settings$density_polygon_col) rm(x.1,x.2,y.1,y.2,m,n, density_De) } if(plot_settings$density_rug[1]) suppressWarnings(graphics::rug(x = x.natural, side = 3)) } else if (mode == "extrapolation"){ if (!is.na(De)) { abline(v = De, lty = 2, col = "red") lines(x = c(0,De), y = c(0,0), lty = 2, col = "red") } } ## insert fit and result try(mtext(side = 3, plot_settings$mtext, line = 0, cex = 0.8 * cex.global), silent = TRUE) ## write error message in plot if De is NaN try(if (is.nan(De)) { text(sample[2, 1], 0, "Error: De could not be calculated!", adj = c(0, 0), cex = 0.8, col = "red" ) }, silent = TRUE) ## plot legend if(plot_settings$legend) { if (mode == "interpolation") { legend( "topleft", c("REG point", "REG point repeated", "REG point 0"), pch = plot_settings$reg_points_pch, cex = 0.8 * cex.global, bty = "n") } else { legend( "bottomright", c("Dose point", "Dose point rep.", "Dose point 0"), pch = plot_settings$reg_points_pch, cex = 0.8 * cex.global, bty = "n") } } if (plot_extended) { ## Histogram ---------------------------------------------------------- if (!plot_singlePanels) par(cex = 0.7 * cex.global) ## calculate histogram data try(histogram <- hist(x.natural, plot = FALSE), silent = TRUE) ## to avoid errors plot only if histogram exists if (exists("histogram") && length(histogram$counts) > 2) { ## calculate normal distribution curves for overlay norm.curve.x <- seq(min(x.natural, na.rm = TRUE), max(x.natural, na.rm = TRUE), length = 101) norm.curve.y <- dnorm(norm.curve.x, mean = mean(x.natural, na.rm = TRUE), sd = sd(x.natural, na.rm = TRUE)) ## plot histogram histogram <- try(hist( x.natural, xlab = plot_settings$xlab, ylab = "Frequency", main = "MC runs", freq = FALSE, border = "white", axes = FALSE, ylim = c(0, max(norm.curve.y)), sub = paste0("valid fits = ", length(na.exclude(x.natural)), "/", fit.args$n.MC), col = "grey" ), silent = TRUE) ## add axes if (!is(histogram, "try-error")) { axis(side = 1) axis(side = 2, at = seq(min(histogram$density), max(histogram$density), length = 5), labels = round(seq(min(histogram$counts), max(histogram$counts), length = 5), digits = 0)) ## add norm curve lines(norm.curve.x, norm.curve.y, col = "red") ## add rug suppressWarnings(graphics::rug(x.natural)) ## De + Error from MC simulation + quality of error estimation try(mtext(side = 3, substitute(D[e[MC]] == De, list(De = paste( abs(round(De.MonteCarlo, 2)), "\u00B1", format(De.Error, scientific = TRUE, digits = 2), " | diff. = ", abs(round((abs(abs(De) - De.MonteCarlo) / abs(De)) * 100,1)), "%" ) )), cex = 0.6 * cex.global), silent = TRUE) } else { plot_check <- histogram } } else { plot_check <- try(plot(NA, NA, xlim = c(0, 10), ylim = c(0, 10), main = expression(paste(D[e], " from MC runs"))), silent = TRUE) if (!is(plot_check,"try-error")) text(5, 5, "not available") } ## Test dose response curve if available ------------------------------ ## plot Tx/Tn value for sensitivity change if (!is(plot_check, "try-error")) { if ("TnTx" %in% colnames(sample)) { plot( 1:length(sample[, "TnTx"]), sample[, "TnTx"] / sample[1, "TnTx"], xlab = "SAR cycle", ylab = expression(paste(T[x] / T[n])), main = "Test-dose response", type = "o", pch = 20, ) lines(c(1, length(sample[, "TnTx"])), c(1, 1), lty = 2, col = "gray") } else { plot(NA, NA, xlim = c(0, 10), ylim = c(0, 10), main = "Test-dose response") text(5, 5, "not available\n no TnTx column") } } } } ##reset graphic device if the plotting failed! if (inherits(plot_check, "try-error")) { .throw_message("Figure margins too large, nothing plotted") grDevices::dev.off() } ## return invisible(object) } Luminescence/R/calc_CosmicDoseRate.R0000644000176200001440000004732714762554470017071 0ustar liggesusers#' @title Calculate the cosmic dose rate #' #' @description #' This function calculates the cosmic dose rate taking into account the soft- #' and hard-component of the cosmic ray flux and allows corrections for #' geomagnetic latitude, altitude above sea-level and geomagnetic field #' changes. #' #' This function calculates the total cosmic dose rate considering both the #' soft- and hard-component of the cosmic ray flux. #' #' **Internal calculation steps** #' #' (1) #' Calculate total depth of all absorber in hg/cm² (1 hg/cm² = 100 g/cm²) #' #' \deqn{absorber = depth_1*density_1 + depth_2*density_2 + ... + depth_n*density_n} #' #' #' (2) #' If `half.depth = TRUE` #' #' \deqn{absorber = absorber/2} #' #' #' (3) #' Calculate cosmic dose rate at sea-level and 55 deg. latitude #' #' a) If absorber is > 167 g/cm² (only hard-component; Allkofer et al. 1975): #' apply equation given by Prescott & Hutton (1994) (c.f. Barbouti & Rastin #' 1983) #' #' \deqn{D0 = C/(((absorber+d)^\alpha+a)*(absober+H))*exp(-B*absorber)} #' #' b) If absorber is < 167 g/cm² (soft- and hard-component): derive D0 from #' Fig. 1 in Prescott & Hutton (1988). #' #' #' (4) #' Calculate geomagnetic latitude (Prescott & Stephan 1982, Prescott & #' Hutton 1994) #' #' \deqn{\lambda = arcsin(0.203*cos(latitude)*cos(longitude-291)+0.979* #' sin(latitude))} #' #' #' (5) #' Apply correction for geomagnetic latitude and altitude above sea-level. #' Values for F, J and H were read from Fig. 3 shown in Prescott & Stephan #' (1982) and fitted with 3-degree polynomials for lambda < 35 degree and a #' linear fit for lambda > 35 degree. #' #' \deqn{Dc = D0*(F+J*exp((altitude/1000)/H))} #' #' #' (6) #' Optional: Apply correction for geomagnetic field changes in the last #' 0-80 ka (Prescott & Hutton 1994). Correction and altitude factors are given #' in Table 1 and Fig. 1 in Prescott & Hutton (1994). Values for altitude #' factor were fitted with a 2-degree polynomial. The altitude factor is #' operated on the decimal part of the correction factor. #' #' \deqn{Dc' = Dc*correctionFactor} #' #' #' **Usage of `depth` and `density`** #' #' (1) If only one value for depth and density is provided, the cosmic dose #' rate is calculated for exactly one sample and one absorber as overburden #' (i.e. `depth*density`). #' #' (2) In some cases it might be useful to calculate the cosmic dose rate for a #' sample that is overlain by more than one absorber, e.g. in a profile with #' soil layers of different thickness and a distinct difference in density. #' This can be calculated by providing a matching number of values for #' `depth` and `density` (e.g. `depth = c(1, 2), density = c(1.7, 2.4)`) #' #' (3) Another possibility is to calculate the cosmic dose rate for more than #' one sample of the same profile. This is done by providing more than one #' values for `depth` and only one for `density`. For example, #' `depth = c(1, 2, 3)` and `density = 1.7` will calculate the cosmic dose rate #' for three samples in 1, 2 and 3 m depth in a sediment of density 1.7 g/cm³. #' #' @param depth [numeric] (**required**): #' depth of overburden (m). For more than one absorber use \cr #' `c(depth_1, depth_2, ..., depth_n)` #' #' @param density [numeric] (**required**): #' average overburden density (g/cm³). For more than one absorber use \cr #' `c(density_1, density_2, ..., density_n)` #' #' @param latitude [numeric] (**required**): #' latitude (decimal degree), N positive #' #' @param longitude [numeric] (**required**): #' longitude (decimal degree), E positive #' #' @param altitude [numeric] (**required**): #' altitude (m above sea-level) #' #' @param corr.fieldChanges [logical] (*with default*): #' correct for geomagnetic field changes after Prescott & Hutton (1994). #' Apply only when justified by the data. #' #' @param est.age [numeric] (*with default*): #' estimated age range (ka) for geomagnetic field change correction (0-80 ka allowed) #' #' @param half.depth [logical] (*with default*): #' How to overcome with varying overburden thickness. If `TRUE` only half the #' depth is used for calculation. Apply only when justified, i.e. when a constant #' sedimentation rate can safely be assumed. #' #' @param error [numeric] (*with default*): #' general error (percentage) to be implemented on corrected cosmic dose rate estimate #' #' @param ... further arguments (`verbose` to disable/enable console output). #' #' @return #' Returns a terminal output. In addition an #' [RLum.Results-class] object is returned containing the #' following element: #' #' \item{summary}{[data.frame] summary of all relevant calculation results.} #' \item{args}{[list] used arguments} #' \item{call}{[call] the function call} #' #' The output should be accessed using the function [get_RLum]. #' #' @note #' Despite its universal use, the equation to calculate the cosmic dose #' rate provided by Prescott & Hutton (1994) is falsely stated to be valid from #' the surface to 10^4 hg/cm² of standard rock. The original expression by #' Barbouti & Rastin (1983) only considers the muon flux (i.e. hard-component) #' and is, by their own definition, only valid for depths between 10-10^4 #' hg/cm². #' #' Thus, for near-surface samples (i.e. for depths < 167 g/cm²) the equation #' of Prescott & Hutton (1994) underestimates the total cosmic dose rate, as it #' neglects the influence of the soft-component of the cosmic ray flux. For #' samples at zero depth and at sea-level the underestimation can be as large #' as ~0.1 Gy/ka. In a previous article, Prescott & Hutton (1988) give another #' approximation of Barbouti & Rastin's equation in the form of #' #' \deqn{D = 0.21*exp(-0.070*absorber+0.0005*absorber^2)} #' #' which is valid for depths between 150-5000 g/cm². For shallower depths (< #' 150 g/cm²) they provided a graph (Fig. 1) from which the dose rate can be #' read. #' #' As a result, this function employs the equation of Prescott & Hutton (1994) #' only for depths > 167 g/cm², i.e. only for the hard-component of the cosmic #' ray flux. Cosmic dose rate values for depths < 167 g/cm² were obtained from #' the "AGE" program (Gruen 2009) and fitted with a 6-degree polynomial curve #' (and hence reproduces the graph shown in Prescott & Hutton 1988). However, #' these values assume an average overburden density of 2 g/cm³. #' #' It is currently not possible to obtain more precise cosmic dose rate values #' for near-surface samples as there is no equation known to the author of this #' function at the time of writing. #' #' #' @section Function version: 0.5.3 #' #' @author #' Christoph Burow, University of Cologne (Germany) #' #' @seealso [BaseDataSet.CosmicDoseRate] #' #' @references #' Allkofer, O.C., Carstensen, K., Dau, W.D., Jokisch, H., 1975. #' Letter to the editor. The absolute cosmic ray flux at sea level. Journal of #' Physics G: Nuclear and Particle Physics 1, L51-L52. #' #' Barbouti, A.I., Rastin, B.C., 1983. A study of the absolute intensity of muons at sea level #' and under various thicknesses of absorber. Journal of Physics G: Nuclear and #' Particle Physics 9, 1577-1595. #' #' Crookes, J.N., Rastin, B.C., 1972. An #' investigation of the absolute intensity of muons at sea-level. Nuclear #' Physics B 39, 493-508. #' #' Gruen, R., 2009. The "AGE" program for the #' calculation of luminescence age estimates. Ancient TL 27, 45-46. #' #' Prescott, J.R., Hutton, J.T., 1988. Cosmic ray and gamma ray dosimetry for #' TL and ESR. Nuclear Tracks and Radiation Measurements 14, 223-227. #' #' Prescott, J.R., Hutton, J.T., 1994. Cosmic ray contributions to dose rates #' for luminescence and ESR dating: large depths and long-term time variations. #' Radiation Measurements 23, 497-500. #' #' Prescott, J.R., Stephan, L.G., 1982. The contribution of cosmic radiation to the environmental dose for #' thermoluminescence dating. Latitude, altitude and depth dependences. PACT 6, 17-25. #' #' @examples #' #' ##(1) calculate cosmic dose rate (one absorber) #' calc_CosmicDoseRate(depth = 2.78, density = 1.7, #' latitude = 38.06451, longitude = 1.49646, #' altitude = 364, error = 10) #' #' ##(2a) calculate cosmic dose rate (two absorber) #' calc_CosmicDoseRate(depth = c(5.0, 2.78), density = c(2.65, 1.7), #' latitude = 38.06451, longitude = 1.49646, #' altitude = 364, error = 10) #' #' ##(2b) calculate cosmic dose rate (two absorber) and #' ##correct for geomagnetic field changes #' calc_CosmicDoseRate(depth = c(5.0, 2.78), density = c(2.65, 1.7), #' latitude = 12.04332, longitude = 4.43243, #' altitude = 364, corr.fieldChanges = TRUE, #' est.age = 67, error = 15) #' #' #' ##(3) calculate cosmic dose rate and export results to .csv file #' #calculate cosmic dose rate and save to variable #' results<- calc_CosmicDoseRate(depth = 2.78, density = 1.7, #' latitude = 38.06451, longitude = 1.49646, #' altitude = 364, error = 10) #' #' # the results can be accessed by #' get_RLum(results, "summary") #' #' #export results to .csv file - uncomment for usage #' #write.csv(results, file = "c:/users/public/results.csv") #' #' ##(4) calculate cosmic dose rate for 6 samples from the same profile #' ## and save to .csv file #' #calculate cosmic dose rate and save to variable #' results<- calc_CosmicDoseRate(depth = c(0.1, 0.5 , 2.1, 2.7, 4.2, 6.3), #' density = 1.7, latitude = 38.06451, #' longitude = 1.49646, altitude = 364, #' error = 10) #' #' #export results to .csv file - uncomment for usage #' #write.csv(results, file = "c:/users/public/results_profile.csv") #' #' @md #' @export calc_CosmicDoseRate<- function( depth, density, latitude, longitude, altitude, corr.fieldChanges = FALSE, est.age = NA, half.depth = FALSE, error = 10, ... ) { .set_function_name("calc_CosmicDoseRate") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(depth, "numeric") .validate_not_empty(depth) .validate_class(density, "numeric") .validate_not_empty(density) .validate_class(latitude, "numeric") .validate_not_empty(latitude) .validate_class(longitude, "numeric") .validate_not_empty(longitude) .validate_class(altitude, "numeric") .validate_not_empty(altitude) if(any(depth < 0) || any(density < 0)) { .throw_error("No negative values allowed for 'depth' and 'density'") } if(corr.fieldChanges == TRUE) { if(is.na(est.age) == TRUE) { .throw_error("Correction for geomagnetic field ", "changes requires an age estimate") } if(est.age > 80) { cat("\nCAUTION: No geomagnetic field change correction for samples", "older than 80 ka possible, 'corr.fieldChanges' set to FALSE") corr.fieldChanges<- FALSE } } if (length(depth) < length(density) || (length(depth) > length(density) && length(density) > 1)) { .throw_error("The number of values for 'density' should either be 1 ", "or correspond to the number of values for 'depth'") } settings <- list(verbose = TRUE) settings <- modifyList(settings, list(...)) ##============================================================================## ## CALCULATIONS ##============================================================================## # initialize parameter for Prescott & Hutton (1994) equation C<- 6072 B<- 0.00055 d<- 11.6 alpha<- 1.68 a<- 75 H<- 212 #variable needed to check if cosmic dose rate is calculated for more #than one sample profile.mode<- FALSE ## calculate total absorber of n depths and n densities [single sample] ## the calculation is still valid if there is only one depth and one density if(length(depth)==length(density)){ hgcm<- 0 for(i in 1:length(depth)) { hgcm<- hgcm + depth[i]*density[i] } if(half.depth == TRUE) { hgcm<- hgcm/2 } } #if there are >1 depths and only one density, calculate #absorber for each sample [multi sample] if(length(depth) > length(density) & length(density) == 1) { profile.mode<- TRUE hgcm<- 1:length(depth) for(i in 1:length(depth)) { hgcm[i]<- depth[i]*density } if(half.depth == TRUE) { hgcm<- hgcm/2 } profile.results<- data.frame(rbind(c(1:3)),cbind(1:length(depth))) colnames(profile.results)<- c("depth (m)", "d0 (Gy/ka)", "dc (Gy/ka)","dc_error (Gy/ka)") } for(i in 1:length(hgcm)) { # calculate cosmic dose rate at sea-level for geomagnetic latitude 55 degrees d0 <- (C / ((((hgcm[i] + d)^alpha) + a) * (hgcm[i] + H))) * exp(-B * hgcm[i]) temp.hgcm <- hgcm[i] * 100 if (temp.hgcm < 167) { d0.ph <- d0 if (temp.hgcm < 40) { d0<- -6*10^-8*temp.hgcm^3+2*10^-5*temp.hgcm^2-0.0025*temp.hgcm+0.2969 } else { d0<- 2*10^-6*temp.hgcm^2-0.0008*temp.hgcm+0.2535 } d0 <- max(d0, d0.ph) } # Calculate geomagnetic latitude gml.temp<- 0.203*cos((pi/180)*latitude)* cos(((pi/180)*longitude)-(291*pi/180))+0.979* sin((pi/180)*latitude) true.gml<- asin(gml.temp)/(pi/180) gml<- abs(asin(gml.temp)/(pi/180)) # Find values for F, J and H from graph shown in Prescott & Hutton (1994) # values were read from the graph and fitted with 3 degree polynomials and a # linear part if(gml < 36.5) { # Polynomial fit F_ph<- -7*10^-7*gml^3-8*10^-5*gml^2-0.0009*gml+0.3988 } else { # Linear fit F_ph<- -0.0001*gml + 0.2347 } if(gml < 34) { # Polynomial fit J_ph<- 5*10^-6*gml^3-5*10^-5*gml^2+0.0026*gml+0.5177 } else { # Linear fit J_ph<- 0.0005*gml + 0.7388 } if(gml < 36) { # Polynomial fit H_ph<- -3*10^-6*gml^3-5*10^-5*gml^2-0.0031*gml+4.398 } else { # Linear fit H_ph<- 0.0002*gml + 4.0914 } # Apply correction for geomagnetic latitude and altitude according to # Prescott & Hutton (1994) dc<- d0*(F_ph + J_ph*exp((altitude/1000)/H_ph)) ## Additional correction for geomagnetic field change if(corr.fieldChanges==TRUE) { if(gml <= 35) { # Correction matrix for geomagnetic field changes at # sea-level (Prescott & Hutton (1994), Table 1) corr.matrix<- data.frame(rbind(1:5),1:7) colnames(corr.matrix)<- c(0, 10, 20, 30, 35, ">35") rownames(corr.matrix)<- c("0-5","5-10","10-15","15-20","20-35","35-50", "50-80") corr.matrix[1,]<- c(0.97, 0.97, 0.98, 0.98, 0.98, 1.00) corr.matrix[2,]<- c(0.99, 0.99, 0.99, 0.99, 0.99, 1.00) corr.matrix[3,]<- c(1.00, 1.00, 1.00, 1.00, 1.00, 1.00) corr.matrix[4,]<- c(1.01, 1.01, 1.01, 1.00, 1.00, 1.00) corr.matrix[5,]<- c(1.02, 1.02, 1.02, 1.01, 1.00, 1.00) corr.matrix[6,]<- c(1.03, 1.03, 1.02, 1.01, 1.00, 1.00) corr.matrix[7,]<- c(1.02, 1.02, 1.02, 1.01, 1.00, 1.00) ## Find the correction factor for the given geomagnetic latitude row.idx <- cut(est.age, c(0, 5, 10, 15, 20, 35, 50, 80), labels = FALSE) col.idx <- cut(gml, c(0, 5, 15, 25, 32.5, 35, Inf), labels = FALSE) corr.fac <- corr.matrix[row.idx, col.idx] # Find altitude factor via fitted function 2-degree polynomial # This factor is only available for positive altitudes if(altitude > 0) { alt.fac<- -0.026*(altitude/1000)^2 + 0.6628*altitude/1000 + 1.0435 # Combine geomagnetic latitude correction with altitude # correction (figure caption of Fig. 1 in Precott and Hutton (1994)) diff.one<- corr.fac - 1 corr.fac<- corr.fac + diff.one * alt.fac } # Final correction of cosmic dose rate dc<- dc * corr.fac if (settings$verbose) print(paste("corr.fac",corr.fac,"diff.one",diff.one,"alt.fac",alt.fac)) } else { if (settings$verbose) cat("\n No geomagnetic field change correction necessary for geomagnetic latitude >35 degrees!") } } # calculate error dc.err<- dc*error/100 # save intermediate results before next sample is calculated if(profile.mode==TRUE) { profile.results[i,1]<- round(depth[i],2) profile.results[i,2]<- round(d0,4) profile.results[i,3]<- round(dc,4) profile.results[i,4]<- round(dc.err,4) } }#END.OF.LOOP call<- sys.call() args<- list(depth = depth, density = density, latitude = latitude, longitude = longitude, altitude = altitude, corr.fieldChanges = corr.fieldChanges, est.age = est.age, half.depth = half.depth, error = error) if(length(hgcm)==1) { ##============================================================================## ##TERMINAL OUTPUT ##============================================================================## if (settings$verbose) { cat("\n\n [calc_CosmicDoseRate]") cat(paste("\n\n ---------------------------------------------------------")) cat(paste("\n depth (m) :", depth)) cat(paste("\n density (g cm^-3) :", density)) cat(paste("\n latitude (N deg.) :", latitude)) cat(paste("\n longitude (E deg.) :", longitude)) cat(paste("\n altitude (m) :", altitude)) cat(paste("\n ---------------------------------------------------------")) cat(paste("\n total absorber (g cm^-2) :", round(hgcm[i]*100,3))) cat(paste("\n")) cat(paste("\n cosmic dose rate (Gy ka^-1) :", round(d0,4))) cat(paste("\n [@sea-level & 55 deg. N G.lat]")) cat(paste("\n")) cat(paste("\n geomagnetic latitude (deg.) :", round(true.gml,1))) cat(paste("\n")) cat(paste("\n cosmic dose rate (Gy ka^-1) :", round(dc,4),"+-", round(dc.err,4))) cat(paste("\n [corrected] ")) cat(paste("\n ---------------------------------------------------------\n\n")) } ##============================================================================## ##RETURN VALUES ##============================================================================## if(length(depth)==1) { temp1<- data.frame(depth=depth,density=density) } else { temp1a<- data.frame(rbind(c(1:length(depth)))) tmpcoln1<- 1:length(depth) for(i in 1:length(depth)) { temp1a[i]<- depth[i] tmpcoln1[i]<- paste("depth",i) } temp1b<- data.frame(rbind(c(1:length(density)))) tmpcoln2<- 1:length(density) for(i in 1:length(density)) { temp1b[i]<- density[i] tmpcoln2[i]<- paste("density",i) } colnames(temp1a)<- tmpcoln1 colnames(temp1b)<- tmpcoln2 temp1<- cbind(temp1a,temp1b) } temp2<- data.frame(latitude=latitude,longitude=longitude, altitude=altitude,total_absorber.gcm2=hgcm*100, d0=d0,geom_lat=true.gml,dc=dc) summary<- data.frame(cbind(temp1,temp2)) } else { #terminal output if (settings$verbose) { cat("\n\n [calc_CosmicDoseRate]") cat(paste("\n\n Calculating cosmic dose rate for",length(depth), "samples. \n\n")) print(profile.results) } #return value add.info<- data.frame(latitude=latitude,longitude=longitude, altitude=altitude,total_absorber.gcm2=hgcm*100, geom_lat=true.gml) add.info<- rbind(add.info*length(i)) colnames(profile.results)<- c("depth","d0","dc","dc_err") summary<- data.frame(cbind(profile.results,add.info)) } newRLumResults.calc_CosmicDoseRate <- set_RLum( class = "RLum.Results", data = list(summary=summary, args=args, call=call)) invisible(newRLumResults.calc_CosmicDoseRate) } Luminescence/R/read_RF2R.R0000644000176200001440000001715614762554470014746 0ustar liggesusers#' @title Import RF-files to R #' #' @description Import files produced by the IR-RF 'ImageJ' macro (`SR-RF.ijm`; Mittelstraß and Kreutzer, 2021) into R and create a list of [RLum.Analysis-class] #' objects #' #' @details The results of spatially resolved IR-RF data are summarised in #' so-called RF-files (Mittelstraß and Kreutzer, 2021). #' This functions provides an easy import to process the data seamlessly with the R package 'Luminescence'. #' The output of the function can be passed to function [analyse_IRSAR.RF]. #' #' @param file [character] (**required**): path and file name of the RF file. Alternatively a list of file #' names can be provided. #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param ... not used, only for compatible reasons #' #' @return Returns an S4 [RLum.Analysis-class] object containing #' [RLum.Data.Curve-class] objects for each curve. #' #' @seealso [RLum.Analysis-class], [RLum.Data.Curve-class], [analyse_IRSAR.RF] #' #' @author Sebastian Kreutzer, Geography & Earth Science, Aberystwyth University (United Kingdom) #' #' @section Function version: 0.1.1 #' #' @keywords IO #' #' @references Mittelstraß, D., Kreutzer, S., 2021. Spatially resolved infrared radiofluorescence: #' single-grain K-feldspar dating using CCD imaging. Geochronology 3, 299–319. \doi{10.5194/gchron-3-299-2021} #' #' @examples #' #' ##Import #' file <- system.file("extdata", "RF_file.rf", package = "Luminescence") #' temp <- read_RF2R(file) #' #' @md #' @export read_RF2R <- function( file, verbose = TRUE, ... ) { .set_function_name("read_RF2R") on.exit(.unset_function_name(), add = TRUE) # Self-call ----------------------------------------------------------------------------------- if(inherits(file, "list")){ results_list <- lapply(file, function(f){ if (!.validate_class(f, "character", throw.error = FALSE, name = "All elements of 'file'")) { return(NULL) } temp <- try(read_RF2R(file = f, verbose = verbose), silent = TRUE) ##check whether it worked if(inherits(temp, "try-error")){ .throw_message("Import for file '", f, "' failed, NULL returned") return(NULL) }else{ return(temp) } }) return(unlist(results_list, recursive = FALSE)) } ## Integrity checks ------------------------------------------------------- .validate_class(file, "character", extra = "'list'") .validate_not_empty(file) ##throw warning if we have a vector if(length(file) > 1){ .throw_warning("'file' has length > 1, only the first element was taken. ", "If you want to import multiple files, 'file' has to be ", "of type 'list'") file <- file[1] } ##check whether file is available if(!file.exists(file)) .throw_error("File '", file, "' does not exist") ##read first line to ensure the format vers_str <- readLines(file, 1) version_supported <- c("17-10-2018", "27-11-2018", "0.1.0") version_found <- regmatches(vers_str, regexpr("(?<=macro\\_version=)[0-9-.]+", vers_str, perl = TRUE)) if (!any(version_found %in% version_supported)) .throw_error("File format not supported") ## Import ----------------------------------------------------------------- if (verbose) { cat("\n[read_RF2R()] Importing ...") cat("\n path: ", dirname(file)) cat("\n file: ", .shorten_filename(basename(file))) cat("\n") } ##import the entire file temp <- readLines(file, warn = FALSE) # Extract information ------------------------------------------------------------------------- ##extract header (here as function; that might be useful in future) .extract_header <- function(x){ x <- gsub(pattern = "<", replacement = "", fixed = TRUE, x = x) x <- gsub(pattern = ">", replacement = "", fixed = TRUE, x = x) header <- strsplit(x = x, split = " ", fixed = TRUE)[[1]] header <- unlist(strsplit(x = header, split = "=", fixed = TRUE)) header_names <- header[seq(1, length(header), by = 2)] header <- as.list(header[seq(2, length(header), by = 2)]) names(header) <- header_names return(header) } header <- try(.extract_header(temp[1]), silent = TRUE) ##test the header if(inherits(header, 'try-error')){ .throw_message("Header extraction failed, trying to continue without ...") header <- NA } ##extract tag boundaries framed by tags +++++++++++++++++++ ##the 2nd line corrects the inner boundaries ##(1) statistics id_statistics <- grep(pattern = "Statistics>", x = temp, fixed = TRUE) id_statistics <- c(id_statistics[1] + 1, id_statistics[2] - 1) ##(2) Natural (henceforth: RF_nat) id_RF_nat <- grep(pattern = "Natural>", x = temp, fixed = TRUE) id_RF_nat <- c(id_RF_nat[1] + 1, id_RF_nat[2] - 1) ##(3) Bleached (henceforth: RF_reg) id_RF_reg <- grep(pattern = "Bleached>", x = temp, fixed = TRUE) id_RF_reg <- c(id_RF_reg[1] + 1, id_RF_reg[2] - 1) ##extract content within the tags +++++++++++++++++++ ##(1) statistics ## ####header statistics_header <- strsplit(x = temp[id_statistics[1]], split = "\t", fixed = TRUE)[[1]][-1] ##data m_statistics <- as.data.frame(lapply((id_statistics[1]+1):(id_statistics[2]), function(x){ strsplit(x = temp[x], split = "\t", fixed = TRUE)[[1]] }), stringsAsFactors = FALSE) ##extract colnames colnames(m_statistics) <- unlist(strsplit( x = as.character(m_statistics[1, ]), split = ":", fixed = TRUE )) ##remove first df_statistics <- cbind(ROI = statistics_header, m_statistics[-1, ], stringsAsFactors = FALSE) ##(2) RF_nat ## ####header RF_nat_header <- strsplit(x = temp[id_RF_nat[1]], split = "\t", fixed = TRUE)[[1]] ##data m_RF_nat <- matrix( data = as.numeric(strsplit( x = paste(temp[(id_RF_nat[1] + 1):(id_RF_nat[2])], collapse = "\t"), split = "\t", fixed = TRUE )[[1]]), ncol = length(RF_nat_header), byrow = TRUE ) ##set colnames colnames(m_RF_nat) <- RF_nat_header ##(3) RF_reg ## ####header RF_reg_header <- strsplit(x = temp[id_RF_reg[1]], split = "\t", fixed = TRUE)[[1]] ##data m_RF_reg <- matrix( data = as.numeric(strsplit( x = paste(temp[(id_RF_reg[1] + 1):(id_RF_reg[2])], collapse = "\t"), split = "\t", fixed = TRUE )[[1]]), ncol = length(RF_reg_header), byrow = TRUE ) ##set colnames colnames(m_RF_reg) <- RF_reg_header # Create RLum.Analysis objects ---------------------------------------------------------------- object_list <- lapply(1:nrow(df_statistics), function(a){ ##set records records <- lapply(1:2, function(o) { if(o == 1){ temp_curve <- m_RF_nat[,c(2,2 + a)] }else{ temp_curve <- m_RF_reg[,c(2,2 + a)] } ##write curve set_RLum( class = "RLum.Data.Curve", originator = "read_RF2R", curveType = "measured", recordType = "RF", data = temp_curve ) }) ##create RLum.Analysis object set_RLum(class = "RLum.Analysis", originator = "read_RF2R", records = records, info = c( as.list(df_statistics[a,]), header )) }) # Return -------------------------------------------------------------------------------------- return(object_list) } Luminescence/R/trim_RLum.Data.R0000644000176200001440000001516314762554470016016 0ustar liggesusers#'@title Trim Channels of RLum.Data-class Objects #' #'@description Trim off the number of channels of [RLum.Data-class] objects of similar record type #' on the time domain. This function is useful in cases where objects have different lengths (short/longer #'measurement time) but should be analysed jointly by other functions. #' #'@details #'The function has two modes of operation: #' #' 1. Single [RLum.Data-class] objects or a [list] of such objects: #' the function is applied separately over each object. #' #' 2. Multiple curves via [RLum.Analysis-class] or a [list] of such objects: #' in this mode, the function first determines the minimum number of channels #' for each category of records and then jointly processes them. For instance, #' if the object contains one TL curve with 100 channels and two OSL curves #' with 100 and 99 channels, respectively, then the minimum would be set to #' 100 channels for the TL curve and to 99 for the OSL curves. If no further #' parameters are applied, the function will shorten all OSL curves to 99 #' channels, but leave the TL curve untouched. #' #'@param object [RLum.Data-class] [RLum.Analysis-class] (**required**): input object, #'can be a [list] of objects. Please note that in the latter case the function works #'only isolated on each element of the [list]. #' #'@param recordType [character] (*optional*): type of the record where the trim #'should be applied. If not set, the types are determined automatically and applied #'for each record type classes. Can be provided as [list]. #' #' @param trim_range [numeric] (*optional*): sets the range of indices to #' keep. If only one value is given, this is taken to be the minimum; if two #' values are given, then the range is defined between the two values #' (inclusive). Any value beyond the second is silently ignored. If nothing #' is set (default), then all curves are trimmed to the same maximum length. #' #'@returns A trimmed object or [list] of such objects similar to the input objects #' #'@section Function version: 0.2 #' #'@author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@seealso [RLum.Data-class], [RLum.Analysis-class] #' #'@keywords manip #' #'@examples #'## trim all TL curves in the object to channels 10 to 20 #'data(ExampleData.BINfileData, envir = environment()) #'temp <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1) #' #'c <- trim_RLum.Data( #' object = temp, #' recordType = "TL", #' trim_range = c(10,20)) #' #'plot_RLum.Analysis( #'object = c, #'combine = TRUE, #'subset = list(recordType = "TL")) #' #'## simulate a situation where one OSL curve #'## in the dataset has only 999 channels instead of 1000 #'## all curves should be limited to 999 #'temp@records[[2]]@data <- temp@records[[2]]@data[-nrow(temp[[2]]@data),] #' #'c <- trim_RLum.Data(object = temp) #'nrow(c@records[[4]]@data) #' #' #'@md #'@export trim_RLum.Data <- function( object, recordType = NULL, trim_range = NULL ) { .set_function_name("trim_RLum.Data") on.exit(.unset_function_name(), add = TRUE) # Self-call --------------------------------------------------------------- if(inherits(object, "list")) { ## expand parameters parm <- .expand_parameters(length(object)) l <- lapply(seq_along(object), function(x){ trim_RLum.Data( object = object[[x]], recordType = parm$recordType[[x]], trim_range = parm$trim_range[[x]]) }) return(l) } # Work horse functions ---------------------------------------------------- ## RLum.Data.Curve .trim_RLum.Data.Curve <- function(object, type, range){ ## only if type is matched if (any(object@recordType[1] %in% type)) { range[2] <- min(nrow(object@data), range[2]) object@data <- object@data[range[1]:range[2], , drop = FALSE] } object } ## RLum.Data.Spectrum .trim_RLum.Data.Spectrum <- function(object, type, range){ ## only if type is matched if (any(object@recordType[1] %in% type)) { range[2] <- min(ncol(object@data), range[2]) object@data <- object@data[, range[1]:range[2], drop = FALSE] } object } ## RLum.Data.Image .trim_RLum.Data.Image <- function(object, type, range){ ## only if type is matched and data is not empty if (any(object@recordType[1] %in% type && length(dim(object@data)) == 3)) { range <- pmin(range, dim(object@data)[3]) object@data <- object@data[, , range[1]:range[2], drop = FALSE] } object } ## RLum.Analysis (which calls the functions above) .trim_RLum.Analysis <- function(object, type, range) { ## determine lengths of objects ln <- unlist(lapply(object@records, function(x) { ln <- switch( class(x)[1], "RLum.Data.Curve" = dim(x@data)[1], "RLum.Data.Spectrum" = dim(x@data)[2], "RLum.Data.Image" = dim(x@data)[3] ) names(ln) <- x@recordType ln })) ## run over single objects object@records <- lapply(object@records, function(x){ ## determine max and min of the particular record Types compared to the global information tmp_max <- min(c(ln[names(ln) == x@recordType], range[2])) tmp_min <- range[1] ## cannot be smaller than 1 ## call sub-function to process and return .trim_object(x, recordType, c(tmp_min, tmp_max)) }) return(object) } ## function dispatcher .trim_object <- function(obj, type, range) { trim.fun <- switch(class(obj)[1], "RLum.Analysis" = .trim_RLum.Analysis, "RLum.Data.Curve" = .trim_RLum.Data.Curve, "RLum.Data.Image" = .trim_RLum.Data.Image, "RLum.Data.Spectrum" = .trim_RLum.Data.Spectrum) trim.fun(obj, type, range) } ## Integrity checks ------------------------------------------------------- .validate_class(object, c("RLum.Data", "RLum.Analysis")) ## determine classes for record Types if(is.null(recordType)) { recordType <- switch( class(object)[1], "RLum.Analysis" = unique(vapply(object@records, function(x) x@recordType, character(1))), object@recordType ) } .validate_class(recordType, "character") ## set trim_range if not provided if (is.null(trim_range)) trim_range <- c(1,Inf) .validate_class(trim_range, c("integer", "numeric")) ## silently sanitize `trim_range` to ensure that it has length 2, ## it contains no elements smaller than 1, and is sorted if (length(trim_range) == 1) trim_range <- c(1, trim_range) trim_range <- sort(pmax(abs(trim_range[1:2]), 1)) ## Dispatch and return ---------------------------------------------------- .trim_object(object, type = recordType, range = trim_range) } Luminescence/R/calc_MaxDose.R0000644000176200001440000001256414762554470015560 0ustar liggesusers #' Apply the maximum age model to a given De distribution #' #' Function to fit the maximum age model to De data. This is a wrapper function #' that calls [calc_MinDose] and applies a similar approach as described in #' Olley et al. (2006). #' #' **Data transformation** #' #' To estimate the maximum dose population #' and its standard error, the three parameter minimum age model of Galbraith #' et al. (1999) is adapted. The measured De values are transformed as follows: #' #' 1. convert De values to natural logs #' 2. multiply the logged data to create a mirror image of the De distribution #' 3. shift De values along x-axis by the smallest x-value found to obtain only positive values #' 4. combine in quadrature the measurement error associated with each De value #' with a relative error specified by `sigmab` #' 5. apply the MAM to these data #' #' When all calculations are done the results are then converted as follows #' 1. subtract the x-offset #' 2. multiply the natural logs by -1 #' 3. take the exponent to obtain the maximum dose estimate in Gy #' #' **Further documentation** #' #' Please see [calc_MinDose]. #' #' @param data [RLum.Results-class] or [data.frame] (**required**): #' for [data.frame]: two columns with De `(data[ ,1])` and De error `(data[ ,2])`. #' #' @param sigmab [numeric] (**required**): #' additional spread in De values. #' This value represents the expected overdispersion in the data should the sample be #' well-bleached (Cunningham & Walling 2012, p. 100). #' **NOTE**: For the logged model (`log = TRUE`) this value must be #' a fraction, e.g. 0.2 (= 20 %). If the un-logged model is used (`log = FALSE`), #' sigmab must be provided in the same absolute units of the De values (seconds or Gray). #' See details ([calc_MinDose]. #' #' @param log [logical] (*with default*): #' fit the (un-)logged three parameter minimum dose model to De data #' #' @param par [numeric] (*with default*): #' apply the 3- or 4-parameter minimum age model (`par=3` or `par=4`). #' #' @param bootstrap [logical] (*with default*): #' apply the recycled bootstrap approach of Cunningham & Wallinga (2012). #' #' @param init.values [numeric] (*with default*): #' starting values for gamma, sigma, p0 and mu. Custom values need to be provided in a vector of #' length three in the form of `c(gamma, sigma, p0)`. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param ... further arguments for bootstrapping (`bs.M, bs.N, bs.h, sigmab.sd`). #' See details for their usage. #' #' @return Please see [calc_MinDose]. #' #' @section Function version: 0.3.1 #' #' @author #' Christoph Burow, University of Cologne (Germany) \cr #' Based on a rewritten S script of Rex Galbraith, 2010 #' #' #' @seealso [calc_CentralDose], [calc_CommonDose], [calc_FiniteMixture], #' [calc_FuchsLang2001], [calc_MinDose] #' #' @references #' Arnold, L.J., Roberts, R.G., Galbraith, R.F. & DeLong, S.B., #' 2009. A revised burial dose estimation procedure for optical dating of young #' and modern-age sediments. Quaternary Geochronology 4, 306-325. #' #' Galbraith, R.F. & Laslett, G.M., 1993. Statistical models for mixed fission #' track ages. Nuclear Tracks Radiation Measurements 4, 459-470. #' #' Galbraith, R.F., Roberts, R.G., Laslett, G.M., Yoshida, H. & Olley, J.M., #' 1999. Optical dating of single grains of quartz from Jinmium rock shelter, #' northern Australia. Part I: experimental design and statistical models. #' Archaeometry 41, 339-364. #' #' Galbraith, R.F., 2005. Statistics for #' Fission Track Analysis, Chapman & Hall/CRC, Boca Raton. #' #' Galbraith, R.F. & Roberts, R.G., 2012. Statistical aspects of equivalent dose and error #' calculation and display in OSL dating: An overview and some recommendations. #' Quaternary Geochronology 11, 1-27. #' #' Olley, J.M., Roberts, R.G., Yoshida, H., Bowler, J.M., 2006. Single-grain optical dating of grave-infill #' associated with human burials at Lake Mungo, Australia. Quaternary Science #' Reviews 25, 2469-2474 #' #' **Further reading** #' #' Arnold, L.J. & Roberts, R.G., 2009. Stochastic modelling of multi-grain equivalent dose #' (De) distributions: Implications for OSL dating of sediment mixtures. #' Quaternary Geochronology 4, 204-230. #' #' Bailey, R.M. & Arnold, L.J., 2006. Statistical modelling of single grain quartz De distributions and an #' assessment of procedures for estimating burial dose. Quaternary Science #' Reviews 25, 2475-2502. #' #' Cunningham, A.C. & Wallinga, J., 2012. Realizing the potential of fluvial archives using robust OSL chronologies. #' Quaternary Geochronology 12, 98-106. #' #' Rodnight, H., Duller, G.A.T., Wintle, A.G. & Tooth, S., 2006. Assessing the reproducibility and accuracy #' of optical dating of fluvial deposits. Quaternary Geochronology 1, 109-120. #' #' Rodnight, H., 2008. How many equivalent dose values are needed to #' obtain a reproducible distribution?. Ancient TL 26, 3-10. #' #' @examples #' #' ## load example data #' data(ExampleData.DeValues, envir = environment()) #' #' # apply the maximum dose model #' calc_MaxDose(ExampleData.DeValues$CA1, sigmab = 0.2, par = 3) #' #' @md #' @export calc_MaxDose<- function( data, sigmab, log=TRUE, par=3, bootstrap=FALSE, init.values, plot=TRUE, ... ){ res<- calc_MinDose(data, sigmab, log, par, bootstrap, init.values, plot=FALSE, invert=TRUE, ...) res@originator<- "calc_MaxDose" if (plot) try(plot_RLum.Results(res, ...)) invisible(res) } Luminescence/R/analyse_baSAR.R0000644000176200001440000024774314762554470015713 0ustar liggesusers#' @title Bayesian models (baSAR) applied on luminescence data #' #' @description This function allows the application of Bayesian models on luminescence data, measured #' with the single-aliquot regenerative-dose (SAR, Murray and Wintle, 2000) protocol. In particular, #' it follows the idea proposed by Combès et al., 2015 of using an hierarchical model for estimating #' a central equivalent dose from a set of luminescence measurements. This function is (I) the adoption #' of this approach for the R environment and (II) an extension and a technical refinement of the #' published code. #' #' @details #' Internally the function consists of two parts: (I) The Bayesian core for the Bayesian calculations #' and applying the hierarchical model and (II) a data pre-processing part. The Bayesian core can be run #' independently, if the input data are sufficient (see below). The data pre-processing part was #' implemented to simplify the analysis for the user as all needed data pre-processing is done #' by the function, i.e. in theory it is enough to provide a BIN/BINX-file with the SAR measurement #' data. For the Bayesian analysis for each aliquot the following information are needed from the SAR analysis. #' `LxTx`, the `LxTx` error and the dose values for all regeneration points. #' #' **How is the systematic error contribution calculated?** #' #' Standard errors (so far) provided with the source dose rate are considered as systematic uncertainties #' and added to final central dose by: #' #' \deqn{systematic.error = 1/n \sum SE(source.doserate)} #' #' \deqn{SE(central.dose.final) = \sqrt{SE(central.dose)^2 + systematic.error^2}} #' #' Please note that this approach is rather rough and can only be valid if the source dose rate #' errors, in case different readers had been used, are similar. In cases where more than #' one source dose rate is provided a warning is given. #' #' **Input / output scenarios** #' #' Various inputs are allowed for this function. Unfortunately this makes the function handling rather #' complex, but at the same time very powerful. Available scenarios: #' #' **(1) - `object` is BIN-file or link to a BIN-file** #' #' Finally it does not matter how the information of the BIN/BINX file are provided. The function #' supports **(a)** either a path to a file or directory or a `list` of file names or paths or #' **(b)** a [Risoe.BINfileData-class] object or a list of these objects. The latter one can #' be produced by using the function [read_BIN2R], but this function is called automatically #' if only a file name and/or a path is provided. In both cases it will become the data that can be #' used for the analysis. #' #' `[CSV_file = NULL]` #' #' If no CSV file (or data frame with the same format) is provided, the #' function runs an automatic process that consists of the following steps: #' #' 1. Select all valid aliquots using the function [verify_SingleGrainData] #' 2. Calculate `Lx/Tx` values using the function [calc_OSLLxTxRatio] #' 3. Calculate De values using the function [plot_GrowthCurve] #' #' These proceeded data are subsequently used in for the Bayesian analysis #' #' `[CSV_file != NULL]` #' #' If a CSV file is provided (or a `data.frame` containing similar information) #' the pre-processing phase consists of the following steps: #' #' 1. Calculate `Lx/Tx` values using the function [calc_OSLLxTxRatio] #' 2. Calculate De values using the function [plot_GrowthCurve] #' #' The CSV file should contain the BIN-file names and the aliquots selected #' for the further analysis. This allows a manual selection of input data, as the automatic selection #' by [verify_SingleGrainData] might be not totally sufficient. #' #' #' **(2) - `object` `RLum.Results object`** #' #' If an [RLum.Results-class] object is provided as input and(!) this object was #' previously created by the function `analyse_baSAR()` itself, the pre-processing part #' is skipped and the function starts directly with the Bayesian analysis. This option is very powerful #' as it allows to change parameters for the Bayesian analysis without the need to repeat #' the data pre-processing. If furthermore the argument `aliquot_range` is set, aliquots #' can be manually excluded based on previous runs. #' #' **`method_control`** #' #' These are arguments that can be passed directly to the Bayesian calculation core, supported arguments #' are: #' #' \tabular{lll}{ #' **Parameter** \tab **Type** \tab **Description**\cr #' `lower_centralD` \tab [numeric] \tab sets the lower bound for the expected De range. Change it only if you know what you are doing!\cr #' `upper_centralD` \tab [numeric] \tab sets the upper bound for the expected De range. Change it only if you know what you are doing!\cr #' `n.chains` \tab [integer] \tab sets number of parallel chains for the model (default = 3) (cf. [rjags::jags.model])\cr #' `inits` \tab [list] \tab option to set initialisation values (cf. [rjags::jags.model]) \cr #' `thin` \tab [numeric] \tab thinning interval for monitoring the Bayesian process (cf. [rjags::jags.model])\cr #' `variable.names` \tab [character] \tab set the variables to be monitored during the MCMC run, default: #' `'central_D'`, `'sigma_D'`, `'D'`, `'Q'`, `'a'`, `'b'`, `'c'`, `'g'`. #' Note: only variables present in the model can be monitored. #' } #' #' **User defined models**\cr #' #' The function provides the option to modify and to define own models that can be used for #' the Bayesian calculation. In the case the user wants to modify a model, a new model #' can be piped into the function via the argument `baSAR_model` as `character`. #' The model has to be provided in the JAGS dialect of the BUGS language (cf. [rjags::jags.model]) #' and parameter names given with the pre-defined names have to be respected, otherwise the function #' will break. #' #' **FAQ** #' #' Q: How can I set the seed for the random number generator (RNG)? #' #' A: Use the argument `method_control`, e.g., for three MCMC chains #' (as it is the default): #' #' ``` #' method_control = list( #' inits = list( #' list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 1), #' list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 2), #' list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 3) #' )) #' ``` #' #' This sets a reproducible set for every chain separately.\cr #' #' Q: How can I modify the output plots? #' #' A: You can't, but you can use the function output to create own, modified plots. #' #' #' Q: Can I change the boundaries for the central_D? #' #' A: Yes, we made it possible, but we DO NOT recommend it, except you know what you are doing!\cr #' Example: `method_control = list(lower_centralD = 10))` #' #' Q: The lines in the baSAR-model appear to be in a wrong logical order?\cr #' #' A: This is correct and allowed (cf. JAGS manual) #' #' #' **Additional arguments support via the `...` argument** #' #' This list summarizes the additional arguments that can be passed to the internally used #' functions. #' #' \tabular{llll}{ #' **Supported argument** \tab **Corresponding function** \tab **Default** \tab **Short description **\cr #' `threshold` \tab [verify_SingleGrainData] \tab `30` \tab change rejection threshold for curve selection \cr #' `skip` \tab [data.table::fread] \tab `0` \tab number of rows to be skipped during import\cr #' `n.records` \tab [read_BIN2R] \tab `NULL` \tab limit records during BIN-file import\cr #' `duplicated.rm` \tab [read_BIN2R] \tab `TRUE` \tab remove duplicated records in the BIN-file\cr #' `pattern` \tab [read_BIN2R] \tab `TRUE` \tab select BIN-file by name pattern\cr #' `position` \tab [read_BIN2R] \tab `NULL` \tab limit import to a specific position\cr #' `background.count.distribution` \tab [calc_OSLLxTxRatio] \tab `"non-poisson"` \tab set assumed count distribution\cr #' `fit.weights` \tab [plot_GrowthCurve] \tab `TRUE` \tab enable/disable fit weights\cr #' `fit.bounds` \tab [plot_GrowthCurve] \tab `TRUE` \tab enable/disable fit bounds\cr #' `n.MC` \tab [plot_GrowthCurve] \tab `100` \tab number of MC runs for error calculation\cr #' `output.plot` \tab [plot_GrowthCurve] \tab `TRUE` \tab enable/disable dose response curve plot\cr #' `output.plotExtended` \tab [plot_GrowthCurve] \tab `TRUE` \tab enable/disable extended dose response curve plot\cr #' `recordType` \tab [get_RLum] \tab `c(OSL (UVVIS), irradiation (NA)` \tab helps for the curve selection\cr #' } #' #' #' @param object [Risoe.BINfileData-class], [RLum.Results-class], [list] of [RLum.Analysis-class], #' [character] or [list] (**required**): #' input object used for the Bayesian analysis. If a `character` is provided the function #' assumes a file connection and tries to import a BIN/BINX-file using the provided path. If a `list` is #' provided the list can only contain either `Risoe.BINfileData` objects or `character`s #' providing a file connection. Mixing of both types is not allowed. If an [RLum.Results-class] #' is provided the function directly starts with the Bayesian Analysis (see details) #' #' @param CSV_file [character] or [data.frame] (*optional*): #' if a `character`, it must be the path to a CSV file with data for the #' analysis. Either way, data should contain 3 columns: #' the name of the file, the disc position and the grain position #' (the last being 0 for multi-grain measurements).\cr #' #' @param aliquot_range [numeric] (*optional*): #' allows to limit the range of the aliquots used for the analysis. #' This argument has only an effect if the argument `CSV_file` is used or #' the input is the previous output (i.e. is [RLum.Results-class]). In this case the #' new selection will add the aliquots to the removed aliquots table. #' #' @param source_doserate [numeric] (**required**): #' source dose rate of beta-source used for the measurement and its uncertainty #' in Gy/s, e.g., `source_doserate = c(0.12, 0.04)`. Parameter can be provided #' as `list`, for the case that more than one BIN-file is provided, e.g., #' `source_doserate = list(c(0.04, 0.004), c(0.05, 0.004))`. #' #' @param signal.integral [vector] (**required**): #' vector with the limits for the signal integral used for the calculation, #' e.g., `signal.integral = c(1:5)`. Ignored if `object` is an [RLum.Results-class] object. #' The parameter can be provided as `list`, see `source_doserate`. #' #' @param signal.integral.Tx [vector] (*optional*): #' vector with the limits for the signal integral for the Tx curve. I #' f nothing is provided the value from `signal.integral` is used and it is ignored #' if `object` is an [RLum.Results-class] object. #' The parameter can be provided as `list`, see `source_doserate`. #' #' @param background.integral [vector] (**required**): #' vector with the bounds for the background integral. #' Ignored if `object` is an [RLum.Results-class] object. #' The parameter can be provided as `list`, see `source_doserate`. #' #' @param background.integral.Tx [vector] (*optional*): #' vector with the limits for the background integral for the Tx curve. #' If nothing is provided the value from `background.integral` is used. #' Ignored if `object` is an [RLum.Results-class] object. #' The parameter can be provided as `list`, see `source_doserate`. #' #' @param irradiation_times [numeric] (*optional*): if set this vector replaces all irradiation #' times for one aliquot and one cycle (Lx and Tx curves) and recycles it for all others cycles and aliquots. #' Please note that if this argument is used, for every(!) single curve #' in the dataset an irradiation time needs to be set. #' #' @param sigmab [numeric] (*with default*): #' option to set a manual value for the overdispersion (for `LnTx` and `TnTx`), #' used for the `Lx`/`Tx` error calculation. The value should be provided as #' absolute squared count values, cf. [calc_OSLLxTxRatio]. #' The parameter can be provided as `list`, see `source_doserate`. #' #' @param sig0 [numeric] (*with default*): #' allow adding an extra component of error to the final Lx/Tx error value #' (e.g., instrumental error, see details is [calc_OSLLxTxRatio]). #' The parameter can be provided as `list`, see `source_doserate`. #' #' @param distribution [character] (*with default*): #' type of distribution that is used during Bayesian calculations for #' determining the Central dose and overdispersion values. #' Allowed inputs are `"cauchy"`, `"normal"` and `"log_normal"`. #' #' @param baSAR_model [character] (*optional*): #' option to provide an own modified or new model for the Bayesian calculation #' (see details). If an own model is provided the argument `distribution` is #' ignored and set to `'user_defined'` #' #' @param n.MCMC [integer] (*with default*): #' number of iterations for the Markov chain Monte Carlo (MCMC) simulations #' #' @param fit.method [character] (*with default*): #' equation used for the fitting of the dose-response curve using the function #' [plot_GrowthCurve] and then for the Bayesian modelling. Here supported methods: `EXP`, `EXP+LIN` and `LIN` #' #' @param fit.force_through_origin [logical] (*with default*): #' force fitting through origin #' #' @param fit.includingRepeatedRegPoints [logical] (*with default*): #' includes the recycling point (assumed to be measured during the last cycle) #' #' @param method_control [list] (*optional*): #' named list of control parameters that can be directly #' passed to the Bayesian analysis, e.g., `method_control = list(n.chains = 4)`. #' See details for further information #' #' @param digits [integer] (*with default*): #' round output to the number of given digits #' #' @param distribution_plot [character] (*with default*): sets the final distribution plot that #' shows equivalent doses obtained using the frequentist approach and sets in the central dose #' as comparison obtained using baSAR. Allowed input is `'abanico'` or `'kde'`. If set to `NULL` nothing is plotted. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param plot_reduced [logical] (*with default*): #' enable/disable the advanced plot output. #' #' @param plot_singlePanels [logical] (*with default*): #' enable/disable single plots or plots arranged by `analyse_baSAR`. #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param ... parameters that can be passed to the function [calc_OSLLxTxRatio] #' (almost full support), [data.table::fread] (`skip`), [read_BIN2R] (`n.records`, #' `position`, `duplicated.rm`), see details. #' #' #' @return Function returns results numerically and graphically: #' #' -----------------------------------\cr #' `[ NUMERICAL OUTPUT ]`\cr #' -----------------------------------\cr #' #' **`RLum.Results`**-object #' #' **slot:** **`@data`** #' #' \tabular{lll}{ #' **Element** \tab **Type** \tab **Description**\cr #' `$summary` \tab `data.frame` \tab statistical summary, including the central dose \cr #' `$mcmc` \tab `mcmc` \tab [coda::mcmc.list] object including raw output \cr #' `$models` \tab `character` \tab implemented models used in the baSAR-model core \cr #' `$input_object` \tab `data.frame` \tab summarising table (same format as the XLS-file) including, e.g., Lx/Tx values\cr #' `$removed_aliquots` \tab `data.frame` \tab table with removed aliquots (e.g., `NaN`, or `Inf` `Lx`/`Tx` values). If nothing was removed `NULL` is returned #' } #' #'**slot:** **`@info`** #' #' The original function call #' #' ------------------------\cr #' `[ PLOT OUTPUT ]`\cr #' ------------------------\cr #' #' - (A) Ln/Tn curves with set integration limits, #' - (B) trace plots are returned by the baSAR-model, showing the convergence of the parameters (trace) #' and the resulting kernel density plots. If `plot_reduced = FALSE` for every(!) dose a trace and #' a density plot is returned (this may take a long time), #' - (C) dose plots showing the dose for every aliquot as boxplots and the marked #' HPD in within. If boxes are coloured 'orange' or 'red' the aliquot itself should be checked, #' - (D) the dose response curve resulting from the monitoring of the Bayesian modelling are #' provided along with the Lx/Tx values and the HPD. Note: The amount for curves displayed #' is limited to 1000 (random choice) for performance reasons, #' - (E) the final plot is the De distribution as calculated using the conventional (frequentist) approach #' and the central dose with the HPDs marked within. This figure is only provided for a comparison, #' no further statistical conclusion should be drawn from it. #' #' #' **Please note: If distribution was set to `log_normal` the central dose is given as geometric mean!** #' #' #' @section Function version: 0.1.36 #' #' @author #' Norbert Mercier, Archaésciences Bordeaux, CNRS-Université Bordeaux Montaigne (France) \cr #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) \cr #' The underlying Bayesian model based on a contribution by Combès et al., 2015. #' #' @seealso [read_BIN2R], [calc_OSLLxTxRatio], [plot_GrowthCurve], #' [data.table::fread], [verify_SingleGrainData], #' [rjags::jags.model], [rjags::coda.samples], [boxplot.default] #' #' #' @references #' #' Combès, B., Philippe, A., Lanos, P., Mercier, N., Tribolo, C., Guerin, G., Guibert, P., Lahaye, C., 2015. #' A Bayesian central equivalent dose model for optically stimulated luminescence dating. #' Quaternary Geochronology 28, 62-70. doi:10.1016/j.quageo.2015.04.001 #' #' Mercier, N., Kreutzer, S., Christophe, C., Guerin, G., Guibert, P., Lahaye, C., Lanos, P., Philippe, A., #' Tribolo, C., 2016. Bayesian statistics in luminescence dating: The 'baSAR'-model and its implementation #' in the R package 'Luminescence'. Ancient TL 34, 14-21. #' #' **Further reading** #' #' Gelman, A., Carlin, J.B., Stern, H.S., Dunson, D.B., Vehtari, A., Rubin, D.B., 2013. #' Bayesian Data Analysis, Third Edition. CRC Press. #' #' Murray, A.S., Wintle, A.G., 2000. Luminescence dating of quartz using an improved single-aliquot #' regenerative-dose protocol. Radiation Measurements 32, 57-73. doi:10.1016/S1350-4487(99)00253-X #' #' Plummer, M., 2017. JAGS Version 4.3.0 user manual. `https://sourceforge.net/projects/mcmc-jags/files/Manuals/4.x/jags_user_manual.pdf/download` #' #' @note #' **If you provide more than one BIN-file**, it is **strongly** recommended to provide #' a `list` with the same number of elements for the following parameters: #' #' `source_doserate`, `signal.integral`, `signal.integral.Tx`, `background.integral`, #' `background.integral.Tx`, `sigmab`, `sig0`. #' #' Example for two BIN-files: `source_doserate = list(c(0.04, 0.006), c(0.05, 0.006))` #' #' **The function is currently limited to work with standard Risoe BIN-files only!** #' #' @keywords datagen #' #' @examples #' #' ##(1) load package test data set #' data(ExampleData.BINfileData, envir = environment()) #' #' ##(2) selecting relevant curves, and limit dataset #' CWOSL.SAR.Data <- subset( #' CWOSL.SAR.Data, #' subset = POSITION%in%c(1:3) & LTYPE == "OSL") #' #' \dontrun{ #' ##(3) run analysis #' ##please not that the here selected parameters are #' ##choosen for performance, not for reliability #' results <- analyse_baSAR( #' object = CWOSL.SAR.Data, #' source_doserate = c(0.04, 0.001), #' signal.integral = c(1:2), #' background.integral = c(80:100), #' fit.method = "LIN", #' plot = FALSE, #' n.MCMC = 200 #' #' ) #' #' print(results) #' #' #' ##CSV_file template #' ##copy and paste this the code below in the terminal #' ##you can further use the function write.csv() to export the example #' #' CSV_file <- #' structure( #' list( #' BIN_FILE = NA_character_, #' DISC = NA_real_, #' GRAIN = NA_real_), #' .Names = c("BIN_FILE", "DISC", "GRAIN"), #' class = "data.frame", #' row.names = 1L #' ) #' #' } #' #' @md #' @export analyse_baSAR <- function( object, CSV_file = NULL, aliquot_range = NULL, source_doserate = NULL, signal.integral, signal.integral.Tx = NULL, background.integral, background.integral.Tx = NULL, irradiation_times = NULL, sigmab = 0, sig0 = 0.025, distribution = "cauchy", baSAR_model = NULL, n.MCMC = 100000, fit.method = "EXP", fit.force_through_origin = TRUE, fit.includingRepeatedRegPoints = TRUE, method_control = list(), digits = 3L, distribution_plot = "kde", plot = TRUE, plot_reduced = TRUE, plot_singlePanels = FALSE, verbose = TRUE, ... ) { .set_function_name("analyse_baSAR") on.exit(.unset_function_name(), add = TRUE) ##//////////////////////////////////////////////////////////////////////////////////////////////// ##FUNCTION TO BE CALLED to RUN the Bayesian Model ##//////////////////////////////////////////////////////////////////////////////////////////////// ##START .baSAR_function <- function(Nb_aliquots, distribution, data.Dose, data.Lum, data.sLum, fit.method, n.MCMC, fit.force_through_origin, fit.includingRepeatedRegPoints, method_control, baSAR_model, verbose) { ##lower and uppder De, grep from method_control ... for sure we find it here, ##as it was set before the function call lower_centralD <- method_control[["lower_centralD"]] upper_centralD <- method_control[["upper_centralD"]] ##number of MCMC n.chains <- if (is.null(method_control[["n.chains"]])) { 3 } else{ method_control[["n.chains"]] } ##inits inits <- if (is.null(method_control[["inits"]])) { NULL } else{ method_control[["inits"]] } ##thin thin <- if (is.null(method_control[["thin"]])) { if(n.MCMC >= 1e+05){ thin <- n.MCMC/1e+05 * 250 }else{ thin <- min(10, n.MCMC / 2) } } else{ .validate_positive_scalar(method_control[["thin"]], int = TRUE, name = "'thin' in 'method_control'") method_control[["thin"]] } ## jags reports ugly errors if thin exceeds n.MCMC / 2, as that ## would correspond to producing just one posterior sample, see #407 if (!is.null(method_control[["thin"]]) && thin > n.MCMC / 2) { thin <- n.MCMC / 2 .throw_warning("'thin = ", method_control[["thin"]], "' is too high for 'n.MCMC = ", n.MCMC, "', reset to ", thin) } #check whether this makes sense at all, just a direty and quick test stopifnot(lower_centralD >= 0) Limited_cycles <- vector() if (fit.method == "EXP") {ExpoGC <- 1 ; LinGC <- 0 } if (fit.method == "LIN") {ExpoGC <- 0 ; LinGC <- 1 } if (fit.method == "EXP+LIN") {ExpoGC <- 1 ; LinGC <- 1 } if (fit.force_through_origin == TRUE) {GC_Origin <- 1} else {GC_Origin <- 0} ##Include or exclude repeated dose points if (fit.includingRepeatedRegPoints) { for (i in 1:Nb_aliquots) { Limited_cycles[i] <- length(stats::na.exclude(data.Dose[,i])) } }else{ for (i in 1:Nb_aliquots) { temp.logic <- !duplicated(data.Dose[,i], incomparables=c(0)) # logical excluding 0 m <- length(which(!temp.logic)) data.Dose[,i] <- c(data.Dose[,i][temp.logic], rep(NA, m)) data.Lum[,i] <- c(data.Lum[,i][temp.logic], rep(NA, m)) data.sLum[,i] <- c(data.sLum[,i][temp.logic], rep(NA, m)) rm(m, temp.logic) } for (i in 1:Nb_aliquots) { Limited_cycles[i] <- length(data.Dose[, i]) - length(which(is.na(data.Dose[, i]))) } } ##check and correct for distribution name if (!is.null(baSAR_model) && distribution != "user_defined") { distribution <- "user_defined" message("[analyse_basAR()] 'baSAR_model' provided, setting ", "distribution to 'user_defined'") } # Bayesian Models ---------------------------------------------------------------------------- # INFO: > # > sometimes lines apear to be in a wrong logical order, however, this is allowed in the # > model definition since: # > "The data block is not limited to logical relations, but may also include stochastic relations." # > (Plummer, 2017. JAGS Version 4.3.0 user manual, p. 9) baSAR_models <- list( cauchy = "model { central_D ~ dunif(lower_centralD,upper_centralD) precision_D ~ dt(0, pow(0.16*central_D, -2), 1)T(0, ) sigma_D <- 1/sqrt(precision_D) for (i in 1:Nb_aliquots) { a[i] ~ dnorm(6.5 , 1/(9.2^2) ) T(0, ) b[i] ~ dnorm(50 , 1/(1000^2) ) T(0, ) c[i] ~ dnorm(1.002 , 1/(0.9^2) ) T(0, ) g[i] ~ dnorm(0.5 , 1/(2.5^2) ) I(-a[i], ) sigma_f[i] ~ dexp (20) D[i] ~ dt ( central_D , precision_D, 1) # Cauchy distribution S_y[1,i] <- 1/(sLum[1,i]^2 + sigma_f[i]^2) Lum[1,i] ~ dnorm ( Q[1,i] , S_y[1,i]) Q[1,i] <- GC_Origin * g[i] + LinGC * (c[i] * D[i] ) + ExpoGC * (a[i] * (1 - exp (-D[i] /b[i])) ) for (m in 2:Limited_cycles[i]) { S_y[m,i] <- 1/(sLum[m,i]^2 + sigma_f[i]^2) Lum[m,i] ~ dnorm( Q[m,i] , S_y[m,i] ) Q[m,i] <- GC_Origin * g[i] + LinGC * (c[i] * Dose[m,i]) + ExpoGC * (a[i] * (1 - exp (-Dose[m,i]/b[i])) ) } } }", normal = "model { central_D ~ dunif(lower_centralD,upper_centralD) sigma_D ~ dunif(0.01, 1 * central_D) for (i in 1:Nb_aliquots) { a[i] ~ dnorm(6.5 , 1/(9.2^2) ) T(0, ) b[i] ~ dnorm(50 , 1/(1000^2) ) T(0, ) c[i] ~ dnorm(1.002 , 1/(0.9^2) ) T(0, ) g[i] ~ dnorm(0.5 , 1/(2.5^2) ) I(-a[i], ) sigma_f[i] ~ dexp (20) D[i] ~ dnorm ( central_D , 1/(sigma_D^2) ) # Normal distribution S_y[1,i] <- 1/(sLum[1,i]^2 + sigma_f[i]^2) Lum[1,i] ~ dnorm ( Q[1,i] , S_y[1,i]) Q[1,i] <- GC_Origin * g[i] + LinGC * (c[i] * D[i] ) + ExpoGC * (a[i] * (1 - exp (-D[i] /b[i])) ) for (m in 2:Limited_cycles[i]) { S_y[m,i] <- 1/(sLum[m,i]^2 + sigma_f[i]^2) Lum[m,i] ~ dnorm( Q[m,i] , S_y[m,i] ) Q[m,i] <- GC_Origin * g[i] + LinGC * (c[i] * Dose[m,i]) + ExpoGC * (a[i] * (1 - exp (-Dose[m,i]/b[i])) ) } } }", log_normal = "model { central_D ~ dunif(lower_centralD,upper_centralD) log_central_D <- log(central_D) - 0.5 * l_sigma_D^2 l_sigma_D ~ dunif(0.01, 1 * log(central_D)) sigma_D <- sqrt((exp(l_sigma_D^2) -1) * exp( 2*log_central_D + l_sigma_D^2) ) for (i in 1:Nb_aliquots) { a[i] ~ dnorm(6.5 , 1/(9.2^2) ) T(0, ) b[i] ~ dnorm(50 , 1/(1000^2) ) T(0, ) c[i] ~ dnorm(1.002 , 1/(0.9^2) ) T(0, ) g[i] ~ dnorm(0.5 , 1/(2.5^2) ) I(-a[i], ) sigma_f[i] ~ dexp (20) log_D[i] ~ dnorm ( log_central_D , 1/(l_sigma_D^2) ) # Log-Normal distribution D[i] <- exp(log_D[i]) S_y[1,i] <- 1/(sLum[1,i]^2 + sigma_f[i]^2) Lum[1,i] ~ dnorm ( Q[1,i] , S_y[1,i]) Q[1,i] <- GC_Origin * g[i] + LinGC * (c[i] * D[i] ) + ExpoGC * (a[i] * (1 - exp (-D[i] /b[i])) ) for (m in 2:Limited_cycles[i]) { S_y[m,i] <- 1/(sLum[m,i]^2 + sigma_f[i]^2) Lum[m,i] ~ dnorm( Q[m,i] , S_y[m,i] ) Q[m,i] <- GC_Origin * g[i] + LinGC * (c[i] * Dose[m,i]) + ExpoGC * (a[i] * (1 - exp (-Dose[m,i]/b[i])) ) } } }", user_defined = baSAR_model ) ##check whether the input for distribution was sufficient if (!distribution %in% names(baSAR_models)) { .throw_error("No pre-defined model for the requested distribution. ", "Please select one of ", .collapse(rev(names(baSAR_models))[-1]), ", or define an own model using argument 'baSAR_model'") } if (distribution == "user_defined" && is.null(baSAR_model)) { .throw_error("You specified a 'user_defined' distribution, ", "but did not provide a model via 'baSAR_model'") } ### Bayesian inputs data_Liste <- list( 'Dose' = data.Dose, 'Lum' = data.Lum, 'sLum' = data.sLum, 'LinGC' = LinGC, 'ExpoGC' = ExpoGC, 'GC_Origin' = GC_Origin, 'Limited_cycles' = Limited_cycles, 'lower_centralD' = lower_centralD, 'upper_centralD' = upper_centralD, 'Nb_aliquots' = Nb_aliquots ) if(verbose){ cat("\n[analyse_baSAR()] ---- baSAR-model ---- \n") cat("\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n") cat("[analyse_baSAR()] Bayesian analysis in progress ...\n") message(".. >> bounds set to: lower_centralD = ", lower_centralD, " | upper_centralD = ", upper_centralD) } Nb_Iterations <- n.MCMC if (verbose) { message( ".. >> calculation will be done assuming a '", distribution, "' distribution\n" ) } ##set model jagsfit <- rjags::jags.model( file = textConnection(baSAR_models[[distribution]]), data = data_Liste, inits = inits, n.chains = n.chains, n.adapt = Nb_Iterations, quiet = !verbose ) ##update jags model (it is a S3-method) stats::update( object = jagsfit, n.iter = Nb_Iterations, progress.bar = if(verbose){"text"}else{NULL} ) ##get data ... full and reduced, the reduced one to limit the plot output sampling <- rjags::coda.samples( model = jagsfit, variable.names = variable.names, n.iter = Nb_Iterations, thin = thin ) ##this we need for the output of the terminal ##Why sampling reduced? Because the summary() method produces a considerable overhead while ##running over all the variables sampling_reduced <- rjags::coda.samples( model = jagsfit, variable.names = c('central_D', 'sigma_D'), n.iter = Nb_Iterations, thin = thin ) pt_zero <- 0 nb_decal <- 2 pt_zero <- Nb_aliquots ##standard error and mean output.mean <- round(summary(sampling_reduced)[[1]][c("central_D", "sigma_D"), 1:2], digits) ##calculate geometric mean for the case that the distribution is log-normal if(distribution == "log_normal"){ temp.vector <- unlist(lapply(sampling_reduced, function(x){as.vector(x[,1])})) gm <- round(exp(sum(log(temp.vector))/length(temp.vector)),digits) rm(temp.vector) }else{ gm <- NULL } ##quantiles ##68% + 95% output.quantiles <- round(summary(sampling_reduced, quantiles = c(0.025, 0.16, 0.84, 0.975))[[2]][c("central_D", "sigma_D"), 1:4], digits) #### output data.frame with results baSAR.output <- data.frame( DISTRIBUTION = distribution, NB_ALIQUOTS = Nb_aliquots, N.CHAINS = n.chains, N.MCMC = n.MCMC, FIT_METHOD = fit.method, CENTRAL = if(is.null(gm)){output.mean[1,1]}else{gm}, CENTRAL.SD = output.mean[1,2], SIGMA = output.mean[2,1], SIGMA.SD = output.mean[2,2], CENTRAL_Q_.16 = output.quantiles[1,2], CENTRAL_Q_.84 = output.quantiles[1,3], SIGMA_Q_.16 = output.quantiles[2,2], SIGMA_Q_.84 = output.quantiles[2,3], CENTRAL_Q_.025 = output.quantiles[1,1], CENTRAL_Q_.975 = output.quantiles[1,4], SIGMA_Q_.025 = output.quantiles[2,1], SIGMA_Q_.975 = output.quantiles[2,4] ) return( baSAR.output = list( baSAR.output_summary = baSAR.output, baSAR.output_mcmc = sampling, models = list( cauchy = baSAR_models[["cauchy"]], normal = baSAR_models[["normal"]], log_normal = baSAR_models[["log_normal"]], user_defined = baSAR_models[["user_defined"]] ) ) ) } ##END ##//////////////////////////////////////////////////////////////////////////////////////////////// ## Integrity checks ------------------------------------------------------- .require_suggested_package("rjags") .require_suggested_package("coda") .validate_class(object, c("Risoe.BINfileData", "RLum.Results", "character", "list")) .validate_not_empty(object) .validate_positive_scalar(n.MCMC, int = TRUE) fit.method <- .validate_args(fit.method, c("EXP", "EXP+LIN", "LIN")) distribution_plot <- .validate_args(distribution_plot, c("kde", "abanico"), null.ok = TRUE) if (is.null(distribution_plot)) distribution_plot <- "" #capture additional piped arguments additional_arguments <- list( ##verify_SingleGrainData threshold = 30, ##calc_OSLLxTxRatio() background.count.distribution = "non-poisson", ## data.table::fread() skip = 0, ##read_BIN2R() n.records = NULL, duplicated.rm = TRUE, position = NULL, pattern = NULL, ## plot_GrowthCurve() fit.weights = TRUE, fit.bounds = TRUE, n.MC = 100, output.plot = plot, output.plotExtended = plot, ## get_RLum recordType = c("OSL (UVVIS)", "irradiation (NA)") ) #modify this list on purpose additional_arguments <- modifyList(x = additional_arguments, val = list(...)) ##set function arguments function_arguments <- NULL ## variable names to monitor variable.names <- c('central_D', 'sigma_D', 'D', 'Q', 'a', 'b', 'c', 'g') if (!is.null(method_control[["variable.names"]])) { ## take variable from the user but remove nonsense values variable.names <- setdiff(method_control[["variable.names"]], c("", NA)) } ## always monitor the D variable variable.names <- unique(c(variable.names, "D")) # Set input ----------------------------------------------------------------------------------- ##if the input is already of type RLum.Results, use the input and do not run ##all pre-calculations again if(is(object, "RLum.Results")){ if(object@originator == "analyse_baSAR"){ ##We want to use previous function arguments and recycle them ##(1) get information you need as input from the RLum.Results object function_arguments <- as.list(object@info$call) ##(2) overwrite by current provided arguments ##by using a new argument we have the choise which argument is allowed for ##changes function_arguments.new <- modifyList(x = function_arguments, val = as.list(match.call())) ##get maximum cycles max_cycles <- max(object$input_object[["CYCLES_NB"]]) ##set Nb_aliquots Nb_aliquots <- nrow(object$input_object) ## return NULL if not at least three aliquots are used for the calculation if (Nb_aliquots < 3) { .throw_message("Number of aliquots < 3, NULL returned") return(NULL) } ##set variables ##Why is.null() ... it prevents that in case of a function crash is nothing is provided ... ##set changeable function arguments ##distribution if(!is.null(function_arguments.new$distribution)){ distribution <- function_arguments.new$distribution } ##n.MCMC if(!is.null(function_arguments.new$n.MCMC)){ n.MCMC <- function_arguments.new$n.MCMC } ##fit.method if(!is.null(function_arguments.new$fit.method)){ fit.method <- function_arguments.new$fit.method } ## fit.force_through_origin if(!is.null(function_arguments.new$fit.force_through_origin)){ fit.force_through_origin <- function_arguments.new$fit.force_through_origin } ##fit.includingRepeatedRegPoints if(!is.null(function_arguments.new$fit.includingRepeatedRegPoints)){ fit.includingRepeatedRegPoints <- function_arguments.new$fit.includingRepeatedRegPoints } ##source_doserate if(length(as.list(match.call())$source_doserate) > 0){ .throw_warning("'source_doserate' is ignored in this mode as ", "it was already set") } ##aliquot_range if(!is.null(function_arguments.new$aliquot_range)){ aliquot_range <- eval(function_arguments.new$aliquot_range) } ##method_control if(!is.null(function_arguments.new$method_control)){ method_control <- eval(function_arguments.new$method_control) } ##baSAR_model if(!is.null(function_arguments.new$baSAR_model)){ baSAR_model <- eval(function_arguments.new$baSAR_model) } ##plot if(!is.null(function_arguments.new$plot)){ plot <- function_arguments.new$plot } ##verbose if(!is.null(function_arguments.new$verbose)){ verbose <- function_arguments.new$verbose } ##limit according to aliquot_range ##TODO Take care of the case that this was provided, otherwise more and more is removed! if (!is.null(aliquot_range)) { if (max(aliquot_range) <= nrow(object$input_object)) { input_object <- object$input_object[aliquot_range, ] ##update list of removed aliquots removed_aliquots <-rbind(object$removed_aliquots, object$input_object[-aliquot_range,]) ##correct Nb_aliquots Nb_aliquots <- nrow(input_object) } else{ .throw_message("'aliquot_range' out of bounds, input ignored") ##reset aliquot range aliquot_range <- NULL ##take entire object input_object <- object$input_object ##set removed aliquots removed_aliquots <- object$removed_aliquots } } else{ ##set the normal case input_object <- object$input_object ##set removed aliquots removed_aliquots <- object$removed_aliquots } ##set non function arguments Doses <- t(input_object[,9:(8 + max_cycles)]) LxTx <- t(input_object[,(9 + max_cycles):(8 + 2 * max_cycles)]) LxTx.error <- t(input_object[,(9 + 2 * max_cycles):(8 + 3 * max_cycles)]) rm(max_cycles) }else{ .throw_error("'object' is of type 'RLum.Results', ", "but was not produced by analyse_baSAR()") } }else{ if(verbose){ cat("\n[analyse_baSAR()] ---- PRE-PROCESSING ----\n") } ##Supported input types are: ## (1) BIN-file ## .. list ## .. character ## (2) RisoeBINfileData object ## .. list ## .. S4 ## (3) RLum.Analysis objects ## .. list ## .. S4 ##In case an RLum.Analysis object is provided we try an ugly conversion only if(inherits(object, "list") && all(vapply(object, function(x){inherits(x, "RLum.Analysis")}, logical(1)))){ if(verbose) cat("[analyse_baSAR()] List of RLum.Analysis-objects detected ..\n") ## set number of objects n_objects <- length(object) ##stop for only one element if (n_objects < 2) .throw_error("At least two aliquots are needed for the calculation") ##extract wanted curves if(verbose) cat(paste0("\t\t .. extract '", additional_arguments$recordType ,"'\n")) object <- get_RLum(object, recordType = additional_arguments$recordType, drop = FALSE) ## check that we are not left with empty records if (length(object[[1]]@records) == 0) { .throw_error("No records of the appropriate type were found") } ##extract irradiation times if(is.null(irradiation_times)){ if(verbose) cat("\t\t .. extract irradiation times\n") irradiation_times <- extract_IrradiationTimes(object[[1]])$irr.times$IRR_TIME } ##run conversion if(verbose) cat("\t\t .. run conversion\n") object <- try(convert_RLum2Risoe.BINfileData(object), outFile = stdout()) # redirect error messages so they can be silenced ##create fallback if(inherits(object, "try-error")){ .throw_message("Object conversion failed, NULL returned") return(NULL) } ##remove none-OSL curves if(!all(object@METADATA[["LTYPE"]] %in% "OSL")){ if(verbose) cat("\t\t .. remove non-OSL curves\n") rm_id <- which(object@METADATA[["LTYPE"]] != "OSL") object@METADATA <- object@METADATA[-rm_id,] object@DATA[rm_id] <- NULL ##reset index object@METADATA[["ID"]] <- 1:length(object@METADATA[["ID"]]) ##delete objects rm(rm_id) } } if (inherits(object, "Risoe.BINfileData")) { fileBIN.list <- list(object) } else if (is(object, "list")) { ##check what the list containes ... object_type <- unique(sapply(object, function(x) { .validate_class(x, c("Risoe.BINfileData", "character"), name = "All elements of 'object'") class(x)[1] })) if (length(object_type) > 1) { .throw_error("'object' only accepts a list of objects of the same type") } if (object_type == "Risoe.BINfileData") { fileBIN.list <- object } else if (object_type == "character") { fileBIN.list <- read_BIN2R( file = object, position = additional_arguments$position, duplicated.rm = additional_arguments$duplicated.rm, n.records = additional_arguments$n.records, pattern = additional_arguments$pattern, verbose = verbose ) } } else if (is(object, "character")) { fileBIN.list <- list( read_BIN2R( file = object, position = additional_arguments$position, duplicated.rm = additional_arguments$duplicated.rm, n.records = additional_arguments$n.records, pattern = additional_arguments$pattern, verbose = verbose ) ) } ##Problem ... the user might have made a pre-selection in the Analyst software, if this the ##we respect this selection record.selected <- unlist( lapply(fileBIN.list, FUN = function(x) x@METADATA[["SEL"]] )) if (!all(record.selected)) { if (verbose) { message("[analyse_baSAR()] Record pre-selection in BIN-file detected,", "record reduced to selection\n") } if (sum(record.selected) == 0) { .throw_warning("No records selected, NULL returned") return(NULL) } fileBIN.list <- lapply(fileBIN.list, function(x){ ##reduce data x@DATA <- x@DATA[x@METADATA[["SEL"]]] x@METADATA <- x@METADATA[x@METADATA[["SEL"]], ] ##reset index x@METADATA[["ID"]] <- 1:nrow(x@METADATA) return(x) }) } # Declare variables --------------------------------------------------------------------------- Disc <- list() Grain <- list() Disc_Grain.list <- list() Nb_aliquots <- 0 previous.Nb_aliquots <- 0 object.file_name <- list() Mono_grain <- TRUE Limited_cycles <- vector() ##set information for (i in 1 : length(fileBIN.list)) { Disc[[i]] <- list() Grain[[i]] <- list() ##get BIN-file name object.file_name[[i]] <- unique(fileBIN.list[[i]]@METADATA[["FNAME"]]) } ## remove duplicated entries is.duplicated <- duplicated(unlist(object.file_name)) if (any(is.duplicated)) { msg <- paste(.collapse(object.file_name[is.duplicated]), "is a duplicate and therefore removed from the input") if(verbose){ message("[analyse_baSAR()] ", msg) } .throw_warning(msg) ##remove entry Disc[is.duplicated] <- NULL Grain[is.duplicated] <- NULL fileBIN.list[is.duplicated] <- NULL object.file_name[is.duplicated] <- NULL } ## Expand input arguments ------------------------------------------------- rep.length <- length(fileBIN.list) if (is.null(source_doserate)) { .throw_error("'source_doserate' is missing, but the current ", "implementation expects dose values in Gy") } source_doserate <- .listify(source_doserate, rep.length) sigmab <- .listify(sigmab, rep.length) sig0 <- .listify(sig0, rep.length) signal.integral <- .listify(signal.integral, rep.length) background.integral <- .listify(background.integral, rep.length) if (!is.null(signal.integral.Tx)) { signal.integral.Tx <- .listify(signal.integral.Tx, rep.length) } if (!is.null(background.integral.Tx)) { background.integral.Tx <- .listify(background.integral.Tx, rep.length) } # Read CSV file ----------------------------------------------------------- if (is.null(CSV_file)) { ##select aliquots giving light only, this function accepts also a list as input if(verbose){ cat("[analyse_baSAR()] 'CSV_file' not provided, running automatic grain selection ...\n") } for (k in 1:length(fileBIN.list)) { ##if the uses provides only multiple grain data (GRAIN == 0), the verification ##here makes not really sense and should be skipped if(length(unique(fileBIN.list[[k]]@METADATA[["GRAIN"]])) > 1){ aliquot_selection <- verify_SingleGrainData( object = fileBIN.list[[k]], cleanup_level = "aliquot", threshold = additional_arguments$threshold, cleanup = FALSE ) ## remove grain position 0 (this are usually TL measurements ## on the cup or we are talking about multiple aliquot) num.grain.pos0 <- sum(aliquot_selection$unique_pairs[["GRAIN"]] == 0, na.rm = TRUE) if (sum(num.grain.pos0) > 0) { .throw_warning("Automatic grain selection: ", num.grain.pos0, " curves with grain index 0 have been removed ", "from the dataset") } datalu <- aliquot_selection$unique_pairs[!aliquot_selection$unique_pairs[["GRAIN"]] == 0,] if(nrow(datalu) == 0){ .throw_message("Nothing left after the automatic grain selection, ", "NULL returned") return(NULL) } }else{ .throw_warning("Only multiple grain data provided, ", "automatic selection skipped") datalu <- unique(fileBIN.list[[k]]@METADATA[, c("POSITION", "GRAIN")]) ##set mono grain to FALSE Mono_grain <- FALSE aliquot_selection <- NA } ##get number of aliquots (one aliquot has a position and a grain number) Nb_aliquots <- nrow(datalu) ##write information in variables Disc[[k]] <- datalu[["POSITION"]] Grain[[k]] <- datalu[["GRAIN"]] ##free memory rm(datalu, aliquot_selection) } rm(k) } else { .validate_class(CSV_file, c("data.frame", "character"), extra = "NULL") ## error message used multiple times err.msg <- paste("'CSV_file' should have at least 3 columns for the name", "of the file, the disc position and the grain position") ##load file if we have a filename if (is.character(CSV_file)) { ##test for valid file if(!file.exists(CSV_file)){ .throw_error("'CSV_file' does not exist") } ## import CSV file datalu <- data.table::fread(CSV_file, data.table = FALSE, skip = additional_arguments$skip) ###check whether data format is somehow odd, check only the first three columns if (ncol(datalu) < 3) { .throw_error(err.msg) } if(!all(grepl(colnames(datalu), pattern = " ")[1:3])){ .throw_error("One of the first 3 columns in 'CSV_file' has no ", "header. ", err.msg) } ##get rid of empty rows if the BIN_FILE name column is empty datalu <- datalu[!is.na(datalu[[1]]), ] } else{ datalu <- CSV_file ##check number of number of columns in data.frame if(ncol(datalu) < 3){ .throw_error(err.msg) } ##problem: the first column should be of type character, the others are ##of type numeric, unfortunately it is too risky to rely on the user, we do the ##proper conversion by ourself ... datalu[[1]] <- as.character(datalu[[1]]) datalu[[2]] <- as.numeric(datalu[[2]]) datalu[[3]] <- as.numeric(datalu[[3]]) } ##limit aliquot range if (!is.null(aliquot_range)) { datalu <- datalu[aliquot_range,] } Nb_ali <- 0 k <- NULL for (nn in 1:length((datalu[, 1]))) { if (!is.na(datalu[nn, 1])) { ##check whether one file fits file.basename <- strsplit(basename(datalu[nn, 1]), split = ".", fixed = TRUE)[[1]][1] matches <- grep(pattern = file.basename, x = unlist(object.file_name)) if (length(matches) > 0) { k <- matches[1] nj <- length(Disc[[k]]) + 1 Disc[[k]][nj] <- as.numeric(datalu[nn, 2]) Grain[[k]][nj] <- as.numeric(datalu[nn, 3]) Nb_ali <- Nb_ali + 1 if (is.na(Grain[[k]][nj]) || Grain[[k]][nj] == 0) { Mono_grain <- FALSE } }else{ .throw_warning("'", datalu[nn, 1], "' not recognised ", "or not loaded, skipped") } } else{ if (Nb_ali == 0) { .throw_error("Number of discs/grains = 0") } break() } } ##if k is NULL it means it was not set so far, so there was ##no corresponding BIN-file found if(is.null(k)){ .throw_error("The BIN-file names provided via 'CSV_file' do not match ", "the loaded BIN-files") } } ###################################### loops on files_number for (k in 1:length(fileBIN.list)) { Disc_Grain.list[[k]] <- list() # data.file number n_aliquots_k <- length(Disc[[k]]) if(n_aliquots_k == 0){ fileBIN.list[[k]] <- NULL .throw_warning("No data selected from BIN-file ", k, ", BIN-file removed from input") next() } for (d in 1:n_aliquots_k) { dd <- as.integer(unlist(Disc[[k]][d])) gg <- if (Mono_grain) as.integer(unlist(Grain[[k]][d])) else 1 Disc_Grain.list[[k]][[dd]] <- list() # data.file number , disc_number Disc_Grain.list[[k]][[dd]][[gg]] <- list() # data.file number , disc_number, grain_number for (z in 1:6) { Disc_Grain.list[[k]][[dd]][[gg]][[z]] <- list() # 1 = index numbers, 2 = irradiation doses, 3 = LxTx , 4 = sLxTx, 5 = N d'aliquot, 6 = De +- D0 +- (4 values) } } } if(verbose){ cat("\n[analyse_baSAR()] Preliminary analysis in progress ... ") cat("\n[analyse_baSAR()] Hang on, this may take a while ... \n") } for (k in 1:length(fileBIN.list)) { stopifnot(length(fileBIN.list[[k]]) == nrow(fileBIN.list[[k]]@METADATA)) ## check that the data available is consistent length.data <- nrow(fileBIN.list[[k]]@METADATA) length.disc <- length(Disc[[k]]) if (length.data %% length.disc != 0) { ## this can happen if the input data was subset incorrectly (#517) .throw_error("In input ", k, " the number of data points (", length.data, ") is not a multiple of the number of ", "positions (", length.disc, ")") } ### METADATA n_index.vector <- fileBIN.list[[k]]@METADATA[["ID"]] measured_discs.vector <- fileBIN.list[[k]]@METADATA[["POSITION"]] measured_grains.vector <- fileBIN.list[[k]]@METADATA[["GRAIN"]] fname <- fileBIN.list[[k]]@METADATA[["FNAME"]] ## always get irradiation times irrad_time.vector <- fileBIN.list[[k]]@METADATA[["IRR_TIME"]] ## now we override, keep in mind that we do not care about the pattern if(!is.null(irradiation_times)) irrad_time.vector <- rep(irradiation_times, length.out = length(irrad_time.vector)) ##if all irradiation times are 0 we should stop here if (length(unique(irrad_time.vector)) == 1) { .throw_message("All irradiation times are identical, NULL returned") return(NULL) } disc_pos <- as.integer(unlist(Disc[[k]])) grain_pos <- as.integer(unlist(Grain[[k]])) ### Automatic Filling - Disc_Grain.list for (i in 1: length(Disc[[k]])) { disc_selected <- as.integer(Disc[[k]][i]) grain_selected <- if (Mono_grain) as.integer(Grain[[k]][i]) else 0 ## hard break if the disc number or grain number does not fit ##disc (position) disc_logic <- (disc_selected == measured_discs.vector) if (!any(disc_logic)) { .throw_message("In BIN-file '", unique(fname), "' position number ", disc_selected, " does not exist, NULL returned") return(NULL) } ##grain grain_logic <- (grain_selected == measured_grains.vector) if (!any(grain_logic)) { .throw_message("In BIN-file '", unique(fname), "' grain number ", grain_selected, " does not exist, NULL returned") return(NULL) } ##if the test passed, compile index list index_liste <- n_index.vector[disc_logic & grain_logic] if (Mono_grain == FALSE) {grain_selected <-1} for (kn in 1: length(index_liste)) { t <- index_liste[kn] dose.value <- irrad_time.vector[t] if(!is.null(unlist(source_doserate))){ dose.value <- dose.value * unlist(source_doserate[[k]][1]) } s <- 1 + length( Disc_Grain.list[[k]][[disc_selected]][[grain_selected]][[1]] ) Disc_Grain.list[[k]][[disc_selected]][[grain_selected]][[1]][s] <- n_index.vector[t] # indexes if ( s%%2 == 1) { Disc_Grain.list[[k]][[disc_selected]][[grain_selected]][[2]][as.integer(1+s/2)] <- dose.value } # irradiation doses } } } ###################### Data associated with a single Disc/Grain max_cycles <- 0 count <- 1 calc_OSLLxTxRatio_warning <- list() for (k in 1:length(fileBIN.list)) { ##plot Ln and Tn curves if wanted ##we want to plot the Ln and Tn curves to get a better feeling ##The approach here is rather rough coded, but it works if (plot) { curve_index <- vapply(1:length(Disc[[k]]), function(i) { dd <- as.integer(Disc[[k]][i]) gg <- if (Mono_grain) as.integer(Grain[[k]][i]) else 1 Ln_index <- as.numeric(Disc_Grain.list[[k]][[dd]][[gg]][[1]][1]) Tn_index <- as.numeric(Disc_Grain.list[[k]][[dd]][[gg]][[1]][2]) return(c(Ln_index, Tn_index)) }, FUN.VALUE = vector(mode = "numeric", length = 2)) ## data.tables for Ln and Tn values Ln_dt <- rbindlist(list(fileBIN.list[[k]]@DATA[curve_index[1, ]])) Tn_dt <- rbindlist(list(fileBIN.list[[k]]@DATA[curve_index[2, ]])) ##open plot are if (!plot_singlePanels) { par.default <- par()$mfrow par(mfrow = c(1, 2)) } ##get natural curve and combine them in matrix graphics::matplot( x = 1:nrow(Ln_dt), y = Ln_dt, col = rgb(0, 0, 0, 0.3), ylab = "Luminescence [a.u.]", xlab = "Channel", main = expression(paste(L[n], " - curves")), type = "l" ) ##add integration limits abline(v = range(signal.integral[[k]]), lty = 2, col = "green") abline(v = range(background.integral[[k]]), lty = 2, col = "red") mtext(paste0("ALQ: ",count, ":", count + ncol(curve_index))) graphics::matplot( x = 1:nrow(Tn_dt), y = Tn_dt, col = rgb(0, 0, 0, 0.3), ylab = "Luminescence [a.u.]", xlab = "Channel", main = expression(paste(T[n], " - curves")), type = "l" ) ##add integration limits depending on the choosen value if(is.null(signal.integral.Tx[[k]])){ abline(v = range(signal.integral[[k]]), lty = 2, col = "green") }else{ abline(v = range(signal.integral.Tx[[k]]), lty = 2, col = "green") } if(is.null(background.integral.Tx[[k]])){ abline(v = range(background.integral[[k]]), lty = 2, col = "red") }else{ abline(v = range(background.integral.Tx[[k]]), lty = 2, col = "red") } mtext(paste0("ALQ: ",count, ":", count + ncol(curve_index))) ##reset par if (!plot_singlePanels) { par(mfrow = par.default) } ##remove some variables rm(curve_index, Ln_dt, Tn_dt) } for (i in 1:length(Disc[[k]])) { dd <- as.integer(Disc[[k]][i]) gg <- if (Mono_grain) as.integer(Grain[[k]][i]) else 1 sel.disc.grain <- Disc_Grain.list[[k]][[dd]][[gg]] # Data for the selected Disc-Grain for (nb_index in 1:(length(sel.disc.grain[[1]]) / 2)) { index1 <- as.numeric(sel.disc.grain[[1]][2 * nb_index - 1]) index2 <- as.numeric(sel.disc.grain[[1]][2 * nb_index]) this.data <- fileBIN.list[[k]]@DATA Lx.data <- data.frame(seq_along(this.data[[index1]]), this.data[[index1]]) Tx.data <- data.frame(seq_along(this.data[[index2]]), this.data[[index2]]) ## call calc_OSLLxTxRatio() ## we run this function with a warnings catcher to reduce the load of warnings for the user temp_LxTx <- withCallingHandlers( calc_OSLLxTxRatio( Lx.data = Lx.data, Tx.data = Tx.data, signal.integral = signal.integral[[k]], signal.integral.Tx = signal.integral.Tx[[k]], background.integral = background.integral[[k]], background.integral.Tx = background.integral.Tx[[k]], background.count.distribution = additional_arguments$background.count.distribution, sigmab = sigmab[[k]], sig0 = sig0[[k]] ), warning = function(c) { calc_OSLLxTxRatio_warning[[i]] <<- c invokeRestart("muffleWarning") } ) ##get LxTx table LxTx.table <- temp_LxTx$LxTx.table Disc_Grain.list[[k]][[dd]][[gg]][[3]][nb_index] <- LxTx.table[[9]] Disc_Grain.list[[k]][[dd]][[gg]][[4]][nb_index] <- LxTx.table[[10]] Disc_Grain.list[[k]][[dd]][[gg]][[5]][nb_index] <- LxTx.table[[7]] ##free memory rm(LxTx.table) rm(temp_LxTx) } ## reset `sel.disc.grain` because the data it pointed to has changed sel.disc.grain <- Disc_Grain.list[[k]][[dd]][[gg]] # Fitting Growth curve and Plot sample_dose <- unlist(sel.disc.grain[[2]]) sample_LxTx <- unlist(sel.disc.grain[[3]]) sample_sLxTx <- unlist(sel.disc.grain[[4]]) TnTx <- unlist(sel.disc.grain[[5]]) ##create needed data.frame (this way to make sure that rows are doubled if something is missing) selected_sample <- as.data.frame(cbind(sample_dose, sample_LxTx, sample_sLxTx, TnTx)) ## call plot_GrowthCurve() to get De and De value fitcurve <- suppressWarnings(plot_GrowthCurve( sample = selected_sample, na.rm = TRUE, fit.method = fit.method, fit.force_through_origin = fit.force_through_origin, fit.weights = additional_arguments$fit.weights, fit.includingRepeatedRegPoints = fit.includingRepeatedRegPoints, fit.bounds = additional_arguments$fit.bounds, n.MC = additional_arguments$n.MC, output.plot = additional_arguments$output.plot, output.plotExtended = additional_arguments$output.plotExtended, txtProgressBar = FALSE, verbose = verbose, main = paste0("ALQ: ", count," | POS: ", Disc[[k]][i], " | GRAIN: ", Grain[[k]][i]) )) ##get data.frame with De values if(!is.null(fitcurve)){ fitcurve_De <- get_RLum(fitcurve, data.object = "De") Disc_Grain.list[[k]][[dd]][[gg]][[6]][1] <- fitcurve_De[["De"]] Disc_Grain.list[[k]][[dd]][[gg]][[6]][2] <- fitcurve_De[["De.Error"]] Disc_Grain.list[[k]][[dd]][[gg]][[6]][3] <- fitcurve_De[["D01"]] Disc_Grain.list[[k]][[dd]][[gg]][[6]][4] <- fitcurve_De[["D01.ERROR"]] }else{ ##we have to do this, otherwise the grains will be sorted out Disc_Grain.list[[k]][[dd]][[gg]][[6]][1:4] <- NA } ## reset `sel.disc.grain` because the data it pointed to has changed sel.disc.grain <- Disc_Grain.list[[k]][[dd]][[gg]] Limited_cycles[previous.Nb_aliquots + i] <- length(sel.disc.grain[[2]]) max_cycles <- max(length(sel.disc.grain[[2]]), max_cycles) previous.Nb_aliquots <- length(stats::na.exclude(Limited_cycles)) # Total count of aliquots count <- count + 1 } } ## END of loop on BIN files rm(count) ##evaluate warnings from calc_OSLLxTxRatio() if(length(calc_OSLLxTxRatio_warning)>0){ w_table <- table(unlist(calc_OSLLxTxRatio_warning)) for(w in 1:length(w_table)){ .throw_warning(names(w_table)[w], " This warning occurred ", w_table[w], " times") } } rm(calc_OSLLxTxRatio_warning) Nb_aliquots <- previous.Nb_aliquots ##create results matrix OUTPUT_results <- matrix(nrow = Nb_aliquots, ncol = (8 + 3 * max_cycles), byrow = TRUE) ## set column name (this makes it much easier to debug) colnames(OUTPUT_results) <- c( "INDEX_BINfile", "DISC", "GRAIN", "DE", "DE.SD", "D0", "D0.SD", "CYCLES_NB", paste0("DOSE_", 1:max_cycles), paste0("LxTx_", 1:max_cycles), paste0("LxTx_", 1:max_cycles, ".SD") ) comptage <- 0 for (k in 1:length(fileBIN.list)) { for (i in 1:length(Disc[[k]])) { dd <- as.numeric(Disc[[k]][i]) gg <- if (Mono_grain) as.numeric(Grain[[k]][i]) else 1 comptage <- comptage + 1 OUTPUT_results[comptage, 1] <- k OUTPUT_results[comptage, 2] <- as.numeric(dd) OUTPUT_results[comptage, 3] <- if (Mono_grain) gg else 0 sel.disc.grain <- Disc_Grain.list[[k]][[dd]][[gg]] if (length(sel.disc.grain[[6]]) != 0) { ##DE OUTPUT_results[comptage, 4] <- as.numeric(sel.disc.grain[[6]][1]) ##DE.SD OUTPUT_results[comptage, 5] <- as.numeric(sel.disc.grain[[6]][2]) ##D0 OUTPUT_results[comptage, 6] <- as.numeric(sel.disc.grain[[6]][3]) ##D0.SD OUTPUT_results[comptage, 7] <- as.numeric(sel.disc.grain[[6]][4]) ##CYCLES_NB OUTPUT_results[comptage, 8] <- length(sel.disc.grain[[2]]) ## auxiliary variable llong <- length(sel.disc.grain[[2]]) ##Dose OUTPUT_results[comptage, 9:(8 + llong)] <- as.numeric(sel.disc.grain[[2]]) ##LxTx values OUTPUT_results[comptage, (9 + max_cycles):(8 + max_cycles + llong)] <- as.numeric(sel.disc.grain[[3]]) ##LxTx SD values OUTPUT_results[comptage, (9 + 2*max_cycles):(8 + 2*max_cycles + llong)] <- as.numeric(sel.disc.grain[[4]]) } } } ##Clean matrix and remove all unwanted entries ##remove all NA columns, means all NA columns in POSITION and DISC ##this NA values are no calculation artefacts, but coming from the data processing and have ##no further value OUTPUT_results <- OUTPUT_results[!is.na(OUTPUT_results[,2]),] ##clean up NaN values in the LxTx and corresponding error values ##the transposition of the matrix may increase the performance for very large matrices OUTPUT_results_reduced <- t(OUTPUT_results) selection <- vapply(X = 1:ncol(OUTPUT_results_reduced), FUN = function(x){ !any(is.nan(OUTPUT_results_reduced[9:(8+3*max_cycles), x]) | is.infinite(OUTPUT_results_reduced[9:(8+3*max_cycles), x])) }, FUN.VALUE = vector(mode = "logical", length = 1)) removed_aliquots <- t(OUTPUT_results_reduced[,!selection]) OUTPUT_results_reduced <- t(OUTPUT_results_reduced[,selection]) ##finally, check for difference in the number of dose points ... they should be the same if(length(unique(OUTPUT_results_reduced[,"CYCLES_NB"])) > 1){ .throw_warning("The number of dose points differs across ", "your data set. Check your data!") } ##correct number of aliquots if necessary if(Nb_aliquots > nrow(OUTPUT_results_reduced)) { Nb_aliquots <- nrow(OUTPUT_results_reduced) .throw_warning("'Nb_aliquots' corrected due to NaN or Inf values ", "in Lx and/or Tx to ", Nb_aliquots, ". You might want ", "to check 'removed_aliquots' in the function output.") } ##Prepare for Bayesian analysis Doses <- t(OUTPUT_results_reduced[,9:(8 + max_cycles)]) LxTx <- t(OUTPUT_results_reduced[, (9 + max_cycles):(8 + 2 * max_cycles)]) LxTx.error <- t(OUTPUT_results_reduced[, (9 + 2 * max_cycles):(8 + 3 * max_cycles)]) ##prepare data frame for output that can used as input input_object <- data.frame( BIN_FILE = unlist(object.file_name)[OUTPUT_results_reduced[[1]]], OUTPUT_results_reduced[, -1], stringsAsFactors = FALSE ) ##prepare data frame for output that shows rejected aliquots if (length(removed_aliquots) > 0) { removed_aliquots <- as.data.frame(removed_aliquots, stringsAsFactors = FALSE) removed_aliquots <- cbind(BIN_FILE = unlist(object.file_name)[removed_aliquots[[1]]], removed_aliquots[, -1]) }else{ removed_aliquots <- NULL } } # Call baSAR-function ------------------------------------------------------------------------- ##check for the central_D bound settings ##Why do we use 0 and 1000: Combes et al., 2015 wrote ## that "We set the bounds for the prior on the central dose D, Dmin = 0 Gy and ## Dmax = 1000 Gy, to cover the likely range of possible values for D. ##check if something is set in method control, if not, set it if (is.null(method_control[["upper_centralD"]])) { method_control <- c(method_control, upper_centralD = 1000) }else{ if(distribution == "normal" | distribution == "cauchy" | distribution == "log_normal"){ .throw_warning("You have modified the upper central_D boundary ", "while applying a predefined model. This is ", "possible but not recommended!") } } ##we do the same for the lower_centralD, just to have everthing in one place if (is.null(method_control[["lower_centralD"]])) { method_control <- c(method_control, lower_centralD = 0) }else{ if(distribution == "normal" | distribution == "cauchy" | distribution == "log_normal"){ .throw_warning("You have modified the lower central_D boundary ", "while applying a predefined model. This is ", "possible but not recommended!") } } if(min(input_object[["DE"]][input_object[["DE"]] > 0], na.rm = TRUE) < method_control$lower_centralD | max(input_object[["DE"]], na.rm = TRUE) > method_control$upper_centralD){ .throw_warning("Your lower_centralD and/or upper_centralD values ", "seem not to fit to your input data. This may indicate ", "a wronlgy set 'source_doserate'.") } ##>> try here is much better, as the user might run a very long preprocessing and do not ##want to fail here results <- try(.baSAR_function( Nb_aliquots = Nb_aliquots, distribution = distribution, data.Dose = Doses, data.Lum = LxTx, data.sLum = LxTx.error, fit.method = fit.method, n.MCMC = n.MCMC, fit.force_through_origin = fit.force_through_origin, fit.includingRepeatedRegPoints = fit.includingRepeatedRegPoints, method_control = method_control, baSAR_model = baSAR_model, verbose = verbose ), outFile = stdout()) # redirect error messages so they can be silenced ##check whether this became NULL if(!is(results, "try-error")){ ##how do we add the systematic error? ##(1) source_doserate is a list, not a vector, but the user can ##provide many source dose rates and he can provide only a single vector (no error) systematic_error <- 0 if(!is.null(unlist(source_doserate)) || !is.null(function_arguments$source_doserate)){ ##if it comes from the previous call, it is, unfortunately not that simple if(!is.null(function_arguments$source_doserate)){ source_doserate <- eval(function_arguments$source_doserate) if(!is(source_doserate, "list")){ source_doserate <- list(source_doserate) } } systematic_error <- unlist(lapply(source_doserate, function(x){ if(length(x) == 2) x[2] else 0 })) } ##state are warning for very different errors if(mean(systematic_error) != systematic_error[1]){ .throw_warning("Provided source dose rate errors differ. The mean ", "was taken, but the calculated systematic error ", "might not be valid") } ##add to the final de DE_FINAL.ERROR <- sqrt(results[[1]][["CENTRAL.SD"]]^2 + mean(systematic_error)^2) ##consider the case that we get NA and this might be confusing if(is.na(DE_FINAL.ERROR)){ DE_FINAL.ERROR <- results[[1]][["CENTRAL.SD"]] } ##combine results[[1]] <- cbind(results[[1]], DE_FINAL = results[[1]][["CENTRAL"]], DE_FINAL.ERROR = DE_FINAL.ERROR) }else{ results <- NULL verbose <- FALSE plot <- FALSE } # Terminal output ----------------------------------------------------------------------------- if(verbose){ cat("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n") cat("\n[analyse_baSAR()] ---- RESULTS ---- \n") cat("------------------------------------------------------------------\n") cat(paste0("Used distribution:\t\t", results[[1]][["DISTRIBUTION"]],"\n")) num.aliquots <- results[[1]][["NB_ALIQUOTS"]] tot.aliquots <- num.aliquots if (!is.null(removed_aliquots)) tot.aliquots <- tot.aliquots + nrow(removed_aliquots) cat(paste0("Number of aliquots used:\t", num.aliquots, "/", tot.aliquots)) if (!is.null(aliquot_range)) { cat(" (manually removed: ", length(aliquot_range), ")\n") } else { cat("\n") } extra <- if (!is.null(baSAR_model)) " (user defined)" else "" cat("Considered fitting method:\t", results[[1]][["FIT_METHOD"]], extra, "\n") cat("Number of independent chains:\t", results[[1]][["N.CHAINS"]], "\n") cat("Number MCMC iterations/chain:\t", results[[1]][["N.MCMC"]], "\n") cat("------------------------------------------------------------------\n") if(distribution == "log_normal"){ cat("\t\t\t\tmean*\tsd\tHPD\n") }else{ cat("\t\t\t\tmean\tsd\tHPD\n") } cat(paste0(">> Central dose:\t\t", results[[1]][["CENTRAL"]],"\t", results[[1]][["CENTRAL.SD"]],"\t", "[", results[[1]][["CENTRAL_Q_.16"]]," ; ", results[[1]][["CENTRAL_Q_.84"]], "]**\t")) cat(paste0("\n\t\t\t\t\t\t[", results[[1]][["CENTRAL_Q_.025"]]," ; ", results[[1]][["CENTRAL_Q_.975"]],"]***")) cat(paste0("\n>> sigma_D:\t\t\t", results[[1]][["SIGMA"]],"\t", results[[1]][["SIGMA.SD"]], "\t", "[",results[[1]][["SIGMA_Q_.16"]]," ; ", results[[1]][["SIGMA_Q_.84"]], "]**\t")) cat(paste0("\n\t\t\t\t\t\t[",results[[1]][["SIGMA_Q_.025"]]," ; ", results[[1]][["SIGMA_Q_.975"]], "]***")) cat(paste0("\n>> Final central De:\t\t", results[[1]][["DE_FINAL"]],"\t", round(results[[1]][["DE_FINAL.ERROR"]], digits = digits), "\t", " - \t -")) cat("\n------------------------------------------------------------------\n") cat( paste("(systematic error contribution to final De:", format((1-results[[1]][["CENTRAL.SD"]]/results[[1]][["DE_FINAL.ERROR"]])*100, scientific = TRUE), "%)\n") ) if(distribution == "log_normal"){ cat("* mean of the central dose is the geometric mean\n") } cat("** 68 % level | *** 95 % level\n") } # Plotting ------------------------------------------------------------------------------------ if(plot){ ## deprecated argument if ("plot.single" %in% names(list(...))) { plot_singlePanels <- list(...)$plot.single .throw_warning("'plot.single' is deprecated, use 'plot_singlePanels' ", "instead") } ##get colours from the package Luminescence col <- get("col", pos = .LuminescenceEnv) ##get list of variable names (we need them later) varnames <- coda::varnames(results[[2]]) ##//////////////////////////////////////////////////////////////////////////////////////////// ##TRACE AND DENSITY PLOT ####////////////////////////////////////////////////////////////////////////////////////////// if(plot_reduced){ if (!all(c("central_D", "sigma_D") %in% variable.names)) { var.missing <- setdiff(c("central_D", "sigma_D"), variable.names) .throw_message("Plots for 'central_D' and 'sigma_D' could not be ", "produced as 'variable.names' does not include ", .collapse(var.missing)) } else { try(plot(results[[2]][, c("central_D", "sigma_D"), drop = FALSE]), silent = TRUE) } }else{ try(plot(results[[2]])) } ##//////////////////////////////////////////////////////////////////////////////////////////// ##TRUE DOSE PLOT AND DECISION MAKER ####////////////////////////////////////////////////////////////////////////////////////////// if (!plot_singlePanels) { par(mfrow = c(2, 2)) } ##get list with D values ##get list out of it plot_matrix <- as.matrix(results[[2]][,grep(x = varnames, pattern = "D[", fixed = TRUE)]) aliquot_quantiles <- t(matrixStats::colQuantiles(x = plot_matrix, probs = c(0.25,0.75))) ##define boxplot colours ... we have red and orange box.col <- vapply(1:ncol(aliquot_quantiles), function(x){ if(aliquot_quantiles[2,x] < results[[1]][,c("CENTRAL_Q_.025")] | aliquot_quantiles[1,x] > results[[1]][,c("CENTRAL_Q_.975")] ){ col[2] }else if(aliquot_quantiles[2,x] < results[[1]][,c("CENTRAL_Q_.16")] | aliquot_quantiles[1,x] > results[[1]][,c("CENTRAL_Q_.84")]){ "orange" }else{ "white" } }, FUN.VALUE = vector(mode = "character", length = 1)) ## to assure a minimum of quality not more then 15 boxes are plotted in each plot i <- 1 while(i < ncol(plot_matrix)){ step <- min(ncol(plot_matrix), i + 14) plot_check <- try(graphics::boxplot( x = plot_matrix[,i:step], use.cols = TRUE, horizontal = TRUE, outline = TRUE, col = box.col[i:step], xlab = if(is.null(unlist(source_doserate))){"Dose [s]"}else{"Dose [Gy]"}, ylab = "Aliquot index", yaxt = "n", xlim = c(1,19), main = paste0("Individual Doses | ALQ: ", i,":",step) )) if(!is(plot_check, "try-error")){ if(step == ncol(plot_matrix)){ axis(side = 2, at = 1:15, labels = as.character(c(i:step, rep(" ", length = 15 - length(i:step)))), cex.axis = 0.8 ) }else{ axis(side = 2, at = 1:15, labels = as.character(i:step), cex.axis = 0.8) } ##add HPD with text ##HPD - 68% lines( x = c( results[[1]][, c("CENTRAL_Q_.16")], results[[1]][, c("CENTRAL_Q_.16")], results[[1]][, c("CENTRAL_Q_.84")], results[[1]][, c("CENTRAL_Q_.84")]), y = c(par()$usr[3], 16, 16, par()$usr[3]), lty = 3, col = col[3], lwd = 1.5 ) text( x = results[[1]][, c("CENTRAL")], y = 16, labels = "68 %", pos = 3, col = col[3], cex = 0.9 * par()$cex ) ##HPD - 98 %% lines( x = c( results[[1]][, c("CENTRAL_Q_.025")], results[[1]][, c("CENTRAL_Q_.025")], results[[1]][, c("CENTRAL_Q_.975")], results[[1]][, c("CENTRAL_Q_.975")]), y = c(par()$usr[3], 17.5, 17.5, par()$usr[3]), lty = 3, col = col[2], lwd = 1.5 ) text( x = results[[1]][, c("CENTRAL")], y = 17.5, labels = "95 %", pos = 3, col = col[2], cex = 0.9 * par()$cex) } ##update counter i <- i + 15 } rm(plot_matrix) if (!plot_singlePanels) { par(mfrow = c(1,2)) on.exit(par(mfrow = c(1,1), bg = "white", xpd = FALSE), add = TRUE) } ##//////////////////////////////////////////////////////////////////////////////////////////// ##DOSE RESPONSE CURVES AND Lx/Tx VALUES ####////////////////////////////////////////////////////////////////////////////////////////// ##define selection vector selection <- c("a[", "b[", "c[", "g[", "Q[1,") ##get list out of it list_selection <- lapply(X = selection, FUN = function(x){ unlist(results[[2]][,grep(x = varnames, pattern = x, fixed = TRUE)]) }) ## assign only the first letter to avoid `[` in the names names(list_selection) <- strtrim(selection, 1) ##create matrix plot_matrix <- do.call(what = "cbind", args = list_selection) ##free memory rm(list_selection) ##make selection according to the model for the curve plotting if (fit.method == "EXP") {ExpoGC <- 1 ; LinGC <- 0 } if (fit.method == "LIN") {ExpoGC <- 0 ; LinGC <- 1 } if (fit.method == "EXP+LIN") {ExpoGC <- 1 ; LinGC <- 1 } if (fit.force_through_origin) {GC_Origin <- 0} else {GC_Origin <- 1} ##add choise for own provided model fit.method_plot <- fit.method if(!is.null(baSAR_model)){ fit.method_plot <- paste(fit.method_plot, "(user defined)") } ##open plot area ##for the xlim and ylim we have to identify the proper ranges based on the input xlim <- c(0, max(input_object[,grep(x = colnames(input_object), pattern = "DOSE")], na.rm = TRUE)*1.1) ylim <- c( min(input_object[,grep(x = colnames(input_object), pattern = "LxTx")], na.rm = TRUE), max(input_object[,grep(x = colnames(input_object), pattern = "LxTx")], na.rm = TRUE)*1.1) ##check for position of the legend ... we can do better if(results[[1]][["CENTRAL_Q_.975"]] < max(xlim)/2){ legend_pos <- "topright" }else{ legend_pos <- "topleft" } ##set plot area plot_check <- try(plot( NA, NA, ylim = ylim, xlim = xlim, ylab = expression(paste(L[x] / T[x])), xlab = if(is.null(unlist(source_doserate))){"Dose [s]"}else{"Dose [Gy]"}, main = "baSAR Dose Response Curves" )) if (!is(plot_check, "try-error")) { ##add mtext mtext(side = 3, text = paste("Fit:", fit.method_plot)) ##check whether we have all data we need (might be not the case of the user ##selects own variables) var.required <- c("a", "b", "c", "g") if (nrow(plot_matrix) != 0 && all(var.required %in% variable.names)) { ##plot individual dose response curves x <- NA for (i in seq(1, nrow(plot_matrix), length.out = 1000)) { curve( GC_Origin * plot_matrix[i, "g"] + LinGC * (plot_matrix[i, "c"] * x) + ExpoGC * (plot_matrix[i, "a"] * (1 - exp (-x / plot_matrix[i, "b"]))), add = TRUE, col = rgb(0, 0, 0, .1) ) } }else{ var.missing <- setdiff(var.required, variable.names) .throw_message("Dose-response curves could not be plotted as ", "'variable.names' does not include ", .collapse(var.missing)) } ##add dose points n.col <- length(input_object[, grep(x = colnames(input_object), pattern = "DOSE")]) ##add rug with natural Lx/Tx graphics::rug(side = 2, x = input_object[[9 + n.col]]) ##plot Lx/Tx values .. without errors ... this is enough here for (i in 2:length(input_object[, grep(x = colnames(input_object), pattern = "DOSE")])) { ##add error bars segments( x0 = input_object[[8 + i]], x1 = input_object[[8 + i]], y0 = input_object[[8 + n.col + i]] - input_object[[8 + 2 * n.col + i]], y1 = input_object[[8 + n.col + i]] + input_object[[8 + 2 * n.col + i]], col = "grey" ) ##add points in the top of it points( x = input_object[[8 + i]], y = input_object[[8 + n.col + i]], pch = 21, col = col[11], bg = "grey" ) } ##add ablines abline( v = results[[1]][, c("CENTRAL_Q_.16", "CENTRAL_Q_.84")], lty = 3, col = col[3], lwd = 1.2 ) abline(v = results[[1]][, c("CENTRAL_Q_.025", "CENTRAL_Q_.975")], lty = 2, col = col[2]) ##add legend1 legend( legend_pos, bty = "n", horiz = FALSE, lty = c(3, 2), col = c(col[3], col[2]), legend = c("HPD - 68 %", "HPD - 95 %") ) ##add legend2 legend( "bottomright", bty = "n", horiz = FALSE, pch = 21, col = col[11], bg = "grey", legend = "measured dose points" ) } ##remove object, it might be rather big rm(plot_matrix) ##03 Abanico Plot if(distribution_plot == "abanico"){ plot_check <- plot_AbanicoPlot( data = input_object[, c("DE", "DE.SD")], zlab = if(is.null(unlist(source_doserate))){expression(paste(D[e], " [s]"))}else{expression(paste(D[e], " [Gy]"))}, log.z = distribution == "log_normal", z.0 = results[[1]]$CENTRAL, y.axis = FALSE, polygon.col = FALSE, line = results[[1]][,c( "CENTRAL_Q_.16", "CENTRAL_Q_.84", "CENTRAL_Q_.025", "CENTRAL_Q_.975")], line.col = c(col[3], col[3], col[2], col[2]), line.lty = c(3,3,2,2), output = TRUE, mtext = paste0( nrow(input_object) - length(which(is.na(input_object[, c("DE", "DE.SD")]))), "/", nrow(input_object), " plotted (removed are NA values)" ) ) if (!is.null(plot_check)) { legend( "topleft", legend = c("Central dose", "HPD - 68%", "HPD - 95 %"), lty = c(2, 3, 2), col = c("black", col[3], col[2]), bty = "n", cex = par()$cex * 0.8 ) } }else{ plot_check <- NULL } ##In case the Abanico plot will not work because of negative values ##provide a KDE if(is.null(plot_check) && distribution_plot == "kde"){ plot_check <- try(suppressWarnings(plot_KDE( data = input_object[, c("DE", "DE.SD")], xlab = if(is.null(unlist(source_doserate))){expression(paste(D[e], " [s]"))}else{expression(paste(D[e], " [Gy]"))}, mtext = paste0( nrow(input_object) - length(which(is.na(input_object[, c("DE", "DE.SD")]))), "/", nrow(input_object), " (removed are NA values)" ) ))) if(!is(plot_check, "try-error")) { abline(v = results[[1]]$CENTRAL, lty = 2) abline( v = results[[1]][, c("CENTRAL_Q_.16", "CENTRAL_Q_.84")], lty = 3, col = col[3], lwd = 1.2 ) abline(v = results[[1]][, c("CENTRAL_Q_.025", "CENTRAL_Q_.975")], lty = 2, col = col[2]) ##check for position of the legend if(results[[1]][["CENTRAL_Q_.975"]] < max(xlim)/2){ legend_pos <- "right" }else{ legend_pos <- "topleft" } legend( legend_pos, legend = c("Central dose", "HPD - 68%", "HPD - 95 %"), lty = c(2, 3, 2), col = c("black", col[3], col[2]), bty = "n", cex = par()$cex * 0.8 ) } } } # Return -------------------------------------------------------------------------------------- return(set_RLum( class = "RLum.Results", data = list( summary = results[[1]], mcmc = results[[2]], models = results[[3]], input_object = input_object, removed_aliquots = removed_aliquots ), info = list(call = sys.call()) )) } Luminescence/R/import_Data.R0000644000176200001440000000475414762554470015503 0ustar liggesusers#'@title Import Luminescence Data into R #' #'@description #'Convenience wrapper function to provide a quicker and more standardised way of #'reading data into R by looping through all in the package available data import #'functions starting with `read_`. Import data types can be mixed. #' #'@param file [character] (**required**): file to be imported, can be a [list] or a [character] vector #' #'@param ... arguments to be further passed down to supported functions (please check the functions #'to determine the correct arguments) #' #'@param fastForward [logical] (*with default*): option to create [RLum-class] objects #'during import or a [list] of such objects #' #' @param verbose [logical] (*with default*): enable/disable output to the #' terminal. #' #'@section Function version: 0.1.5 #' #'@author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@returns Always returns a [list]; empty or filled with [RLum.Analysis-class] objects #' #'@seealso `r paste0("[", grep("^read_", getNamespaceExports("Luminescence"), value = TRUE), "]", collapse = ", ")` #' #'@keywords datagen #' #'@examples #' #' ## import BINX/BIN #' file <- system.file("extdata/BINfile_V8.binx", package = "Luminescence") #' temp <- import_Data(file) #' #' ## RF data #' file <- system.file("extdata", "RF_file.rf", package = "Luminescence") #' temp <- import_Data(file) #' #'@md #'@export import_Data <- function ( file, ..., fastForward = TRUE, verbose = FALSE ) { .set_function_name("import_Data") on.exit(.unset_function_name(), add = TRUE) .validate_class(file, c("character", "list")) ## supported functions are extracted automatically from the package ## namespace so that we don't have to maintain this list manually fun <- grep("^read_", getNamespaceExports("Luminescence"), value = TRUE) ## make the file handling just a little bit easier if(length(file) > 1) file <- as.list(file) ## get arguments of functions args <- c(list(file = file, fastForward = fastForward, verbose = verbose), list(...)) ## set empty output list out <- list() ## just try all functions and all files for (i in fun) { ## get arguments and remove non-supported arguments t <- suppressWarnings(suppressMessages(try(do.call(what = i, args = args), silent = TRUE))) if (!is.null(t) && !inherits(t, "try-error")) out <- c(out, t) } ## return if output is not empty if (length(out) == 0) .throw_message("Unknown file format, nothing imported") return(out) } Luminescence/R/convert_Activity2Concentration.R0000644000176200001440000001571614762554470021405 0ustar liggesusers#' @title Convert Nuclide Activities to Abundance and Vice Versa #' #' @description The function performs the conversion of the specific activities into #' mass abundance and vice versa for the radioelements U, Th, and K to #' harmonise the measurement unit with the required data input unit of #' potential analytical tools for, e.g. dose rate calculation or related #' functions such as [use_DRAC]. #' #' @details The conversion from nuclide activity of a sample to nuclide concentration #' is performed using conversion factors that are based on the mass-related #' specific activity of the respective nuclide. #' #' Constants used in this function were obtained from `https://physics.nist.gov/cuu/Constants/` #' all atomic weights and composition values from #' `https://www.nist.gov/pml/atomic-weights-and-isotopic-compositions-relative-atomic-masses` #' and the nuclide data from `https://www.iaea.org/resources/databases/livechart-of-nuclides-advanced-version` #' #' The factors can be calculated using the equation: #' #' \deqn{ #' A = N_A \frac{N_{abund}}{N_{mol.mass}} ln(2) / N.half.life #' } #' #' to convert in µg/g we further use: #' #' \deqn{ #' f = A / 10^6 #' } #' #' where: #' #' - `N_A` - Avogadro constant in 1/mol #' - `A` - specific activity of the nuclide in Bq/kg #' - `N.abund` - relative natural abundance of the isotope #' - `N.mol.mass` molar mass in kg/mol #' - `N.half.life` half-life of the nuclide in s #' #' example for calculating the activity of the radionuclide U-238: #' #' * `N_A` = 6.02214076e+23 (1/mol) #' * `T_0.5` = 1.41e+17 (s) #' * `m_U_238` = 0.23802891 (kg/mol) #' * `U_abund` = 0.992745 (unitless) #' #' \deqn{A_{U} = N_{A} * U_{abund} / m_{U_238} * ln(2) / T_{1/2} = 2347046} (Bq/kg) #' #' \deqn{f.U = A_{U} / 10^6} #' #' @param data [data.frame] (**required**): #' provide dose rate data (activity or concentration) in three columns. #' The first column indicates the nuclide, the 2nd column measured value and #' in the 3rd column its error value. Allowed nuclide data are #' `'U-238'`, `'Th-232'` and `'K-40'`. See examples for an example. #' #' @param input_unit [character] (*with default*): #' specify unit of input data given in the dose rate data frame, choose between #' `"activity"` (considered as given Bq/kg) and `"abundance"` (considered as given in mug/g or mass. %). #' The default value is `"activity"` #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @section Function version: 0.1.2 #' #' @author Margret C. Fuchs, Helmholtz-Institute Freiberg for Resource Technology (Germany) #' #' @references #' Debertin, K., Helmer, R.G., 1988. Gamma- and X-ray Spectrometry with #' Semiconductor Detectors, Elsevier Science Publishers, p.283 #' #' Wiechen, A., Ruehle, H., Vogl, K., 2013. Bestimmung der massebezogenen #' Aktivitaet von Radionukliden. AEQUIVAL/MASSAKT, ISSN 1865-8725, #' [https://www.bmuv.de/fileadmin/Daten_BMU/Download_PDF/Strahlenschutz/aequival-massakt_v2013-07_bf.pdf]() #' #' @keywords IO #' #' @note Although written otherwise for historical reasons. Input values must be element values. #' For instance, if a value is provided for U-238 the function assumes that this value #' represents the sum (activity or abundance) of U-238, U-235 and U-234. #' In other words, 1 µg/g of U means that this is the composition of 0.992 parts of U-238, #' 0.000054 parts of U-234, and 0.00072 parts of U-235. #' #' @return Returns an [RLum.Results-class] object with a [data.frame] containing #' input and newly calculated values. Please not that in the column header µg/g #' is written as `mug/g` due to the R requirement to maintain packages portable using #' ASCII characters only. #' #' @examples #' #' ##construct data.frame #' data <- data.frame( #' NUCLIDES = c("U-238", "Th-232", "K-40"), #' VALUE = c(40,80,100), #' VALUE_ERROR = c(4,8,10), #' stringsAsFactors = FALSE) #' #' ##perform analysis #' convert_Activity2Concentration(data) #' #' @md #' @export convert_Activity2Concentration <- function( data, input_unit = "activity", verbose = TRUE ) { .set_function_name("convert_Activity2Concentration") on.exit(.unset_function_name(), add = TRUE) ## Integrity tests -------------------------------------------------------- .validate_class(data, "data.frame") if(ncol(data)<3) .throw_error("'data' should have at least 3 columns") # Set output data.frame ----------------------------------------------------------------------- output <- data.frame( NUCLIDE = rep(NA, nrow(data)), ACTIVIY = rep(NA, nrow(data)), ACTIVIY_ERROR = rep(NA, nrow(data)), CONC = rep(NA, nrow(data)), CONC_ERROR = rep(NA, nrow(data)), stringsAsFactors = FALSE ) ##set column names colnames(output) <- c( "NUCLIDE", "ACTIVIY (Bq/kg)", "ACTIVIY ERROR (Bq/kg)", "ABUND. (mug/g or mass. %)", "ABUND. ERROR (mug/g or mass. %)") ##set column for output output$NUCLIDE = data[[1]] ## check input unit ## we silently let the old input values unflagged for back compatibility reasons if (!tolower(input_unit[1]) %in% c("bq/kg", "ppm/%")) { input_unit <- .validate_args(tolower(input_unit), c("activity", "abundance")) } # Set conversion factors ---------------------------------------------------------------------- ############################################################################# ### conversion factors mass_constant <- 1.66053906660e-27 # in kg ## set conversion factors ... this are the expected activity per kg of the radionuclide ## a = log(2) / ((unified_atomic_mass * mass_constant) / abundance) * T_0.5 convers.factor.U238 <- log(2) / (((238.0507884 * mass_constant)/ 0.992742) * 1.409963e+17) / 1e+06 convers.factor.Th232 <- log(2) / (((232.0380558 * mass_constant)/ 1) * 4.41797e+17) / 1e+06 convers.factor.K40 <- log(2) / (((39.963998166 * mass_constant)/ 0.000117) * 3.9383e+16) / 1e+02 # Run conversion ------------------------------------------------------------------------------ U <- which(data$NUCLIDE == "U-238") Th <- which(data$NUCLIDE == "Th-232") K <- which(data$NUCLIDE == "K-40") ##Activity to concentration if(input_unit == "activity" || input_unit == "bq/kg"){ output[U,4:5] <- data[U,2:3] / convers.factor.U238 output[Th,4:5] <- data[Th,2:3] / convers.factor.Th232 output[K,4:5] <- data[K,2:3] / convers.factor.K40 output[U,2:3] <- data[U,2:3] output[Th,2:3] <- data[Th,2:3] output[K,2:3] <- data[K,2:3] } ##Concentration to activity if(input_unit == "abundance" || input_unit == "ppm/%"){ output[U,2:3] <- data[U,2:3] * convers.factor.U238 output[Th,2:3] <- data[Th,2:3] * convers.factor.Th232 output[K,2:3] <- data[K,2:3] * convers.factor.K40 output[U,4:5] <- data[U,2:3] output[Th,4:5] <- data[Th,2:3] output[K,4:5] <- data[K,2:3] } # Return value -------------------------------------------------------------------------------- if(verbose) print(output) invisible(set_RLum( class = "RLum.Results", data = list(data = output), info = list(call = sys.call()))) } Luminescence/R/zzz.R0000644000176200001440000002305614762554470014071 0ustar liggesusers## ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ## Variables and functions loaded when package is attached ## ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # Set namespace .LuminescenceEnv ------------------------------------------ .LuminescenceEnv <- new.env(parent = emptyenv()) # Assign variables to Namespace ------------------------------------------- ##variable col to define colours in the functions for output assign("col", c("#000000", "#FF3000", "#6495ED", "#458B00", "#FFB90F", "#8B6914", "#FF00FF", "#00FA9A", "#EEEE00", "#9ACD32", "#8B0000", "#EEE8AA", "#8B7D6B", "#00EE76", "#1E90FF", "#0000FF", "#551A8B", "#7CFC00", "#A9A9A9", "#FFFF00", "#CD0000"), pos = ".LuminescenceEnv", envir = .LuminescenceEnv) ## `fn_stack` is used to keep a stack of function names, managed by ## `.[set|unset]_function_name()`, that reflects the call stack for correct ## error/warning reporting from `.throw_error()` and `.throw_warning()` assign("fn_stack", list(), pos = ".LuminescenceEnv", envir = .LuminescenceEnv) ##============================================================================== ##on Attach .onAttach <- function(libname,pkgname){ ##set startup message try(packageStartupMessage(paste("Welcome to the R package Luminescence version ", packageDescription(pkg="Luminescence")$Version, " [Built: ", trimws(strsplit(packageDescription(pkg="Luminescence")$Built, ";")[[1]][3]), "]", sep=""), "\n", get_Quote()), silent=TRUE) } ##============================================================================== # DO NOT TOUCH! ----------------------------------------------------------- #' sTeve - sophisticated tool for efficient data validation and evaluation #' #' This function provides a sophisticated routine for comprehensive #' luminescence dating data analysis. #' #' This amazing sophisticated function validates your data seriously. #' #' @param n_frames [integer] (*with default*): #' n frames #' #' @param t_animation [integer] (*with default*): #' t animation #' #' @param n.tree [integer] (*with default*): #' how many trees do you want to cut? #' #' @param type [integer] (*optional*): #' Make a decision: 1, 2 or 3 #' #' @return Validates your data. #' #' @note This function should not be taken too seriously. #' #' @author R Luminescence Team, 2012-2046 #' #' @seealso [plot_KDE] #' #' @keywords manip #' @examples #' #' ##no example available #' #' @md #' @export sTeve<- function(n_frames = 10, t_animation = 2, n.tree = 7, type) { .set_function_name("sTeve") on.exit(.unset_function_name(), add = TRUE) .validate_class(n_frames, c("integer", "numeric")) .validate_class(t_animation, c("integer", "numeric")) .validate_class(n.tree, c("integer", "numeric")) ## allow new overlay plot par(new = TRUE) ## infer month of year month <- as.numeric(strsplit(x = as.character(Sys.Date()), split = "-")[[1]][2]) ## select showtime item based on month or user-defined type if(missing(type) == TRUE) { # nocov start if(month >= 1 & month <= 3) { type <- 1 } else if(month >3 & month <= 11) { type <- 2 } else if(month > 11 & month <= 12) { type <- 3 } # nocov end } .validate_class(type, c("integer", "numeric")) if(type == 1) { ## SHOWTIME OPTION 1 Sys.sleep(5) shape::emptyplot() shape::filledrectangle(wx = 0.9, wy = 0.4, mid = c(0.5, 0.5), lcol ="red", lwd=1, col=0, angle = 45) text(x=0.5, y=0.5, labels="NOT FUNNY", cex=2, col="red", font=2, srt=45) } else if(type == 2) { ## SHOWTIME OPTION 2 plot(NA, xlim = c(0, 10), ylim = c(0, 10), main = "", xlab = "", ylab = "", axes = FALSE, frame.plot = FALSE) n_frames <- n_frames t_animation <- t_animation dt <- t_animation / n_frames x1 <- seq(0, 10, length.out = n_frames) y1 <- rep(1.5, n_frames) r1 <- 0.5 x2 <- seq(0, 16, length.out = n_frames) y2 <- rep(8.5, n_frames) r2 <- 0.5 x4 <- seq(11, 0, length.out = n_frames) y4 <- rep(5, n_frames) r4 <- 0.5 # set angles for each step of mouth opening angles_mouth <- rep(c(0.01, 0.25, 0.5, 0.25), length.out = n_frames) for(i in 1:n_frames){ # define pacman circles shape::filledcircle(r1 = r1, r2 = 0.00001, mid = c(x1[i], y1[i]), from = angles_mouth[i], to = 2 * pi - angles_mouth[i], col = "yellow") shape::filledcircle(r1 = r2, r2 = 0.00001, mid = c(x2[i], y2[i]), from = angles_mouth[i], to = 2 * pi - angles_mouth[i], col = "yellow") shape::filledcircle(r1 = r4, r2 = 0.00001, mid = c(x4[i], y4[i]), from = angles_mouth[i] + 3, to = 2 * pi - angles_mouth[i] + 3, col = "yellow") # define eyes for pacman points(x1[i] + 0.2, y1[i] + 0.75, pch = 21, bg = 1, cex = 0.7) points(x2[i] + 0.2, y2[i] + 0.75, pch = 21, bg = 1, cex = 0.7) points(x4[i] - 0.05, y4[i] + 0.75, pch = 21, bg = 1, cex = 0.7) Sys.sleep(dt) shape::plotcircle(r = 1.1 * r1, mid = c(x1[i], y1[i]), col = "white", lcol = "white") shape::plotcircle(r = 1.1 * r2, mid = c(x2[i], y2[i]), col = "white", lcol = "white") shape::plotcircle(r = 1.1 * r4, mid = c(x4[i], y4[i]), col = "white", lcol = "white") } } else if(type == 3) { ## calculate display ratio f <- par()$pin[2] / par()$pin[1] ## create new overlay plot plot(NA, xlim = c(0, 100), ylim = c(0, 100), axes = F, frame.plot = FALSE, xlab = "", ylab = "") ## create semi-transparent layer polygon(x = c(-100, -100, 200, 200), y = c(-100, 200, 200, -100), col = rgb(1,1,1, 0.8), lty = 0) ## draw christmas trees n = n.tree tree.x <- runif(n, 10, 90) tree.y <- runif(n, 10, 90) tree.size <- runif(n, 0.3, 1.5) for(i in 1:n) { ## stem polygon(x = c(tree.x[i] - 1.5 * tree.size[i], tree.x[i] - 1.5 * tree.size[i], tree.x[i] + 1.5 * tree.size[i], tree.x[i] + 1.5 * tree.size[i]) , y = c(tree.y[i] - 12 * tree.size[i], tree.y[i] - 1 * tree.size[i], tree.y[i] - 1 * tree.size[i], tree.y[i] - 12* tree.size[i]), col = "rosybrown4", lty = 0) ## branch one shape::filledellipse(rx1 = 10 * tree.size[i], rx2 = 0.00001, mid = c(tree.x[i], tree.y[i] + 3 * tree.size[i]), col = "darkgreen", from = 4.0143, to = 5.41052) ## branch two shape::filledellipse(rx1 = 8 * tree.size[i], rx2 = 0.00001, mid = c(tree.x[i], tree.y[i] + 7 * tree.size[i]), col = "darkgreen", from = 4.0143, to = 5.41052) ## branch three shape::filledellipse(rx1 = 6 * tree.size[i], rx2 = 0.00001, mid = c(tree.x[i], tree.y[i] + 9 * tree.size[i]), col = "darkgreen", from = 4.0143, to = 5.41052) ## branch four shape::filledellipse(rx1 = 4 * tree.size[i], rx2 = 0.00001, mid = c(tree.x[i], tree.y[i] + 11 * tree.size[i]), col = "darkgreen", from = 4.0143, to = 5.41052) ## sphere one shape::filledellipse(rx1 = 1 * f * tree.size[i], ry1 = 1 * tree.size[i], mid = c(tree.x[i] + 2 * tree.size[i], tree.y[i] + 5 * tree.size[i]), col = shape::shadepalette(n = 20, endcol = "darkred")) ## sphere two shape::filledellipse(rx1 = 0.8 * f * tree.size[i], ry1 = 0.8 * tree.size[i], mid = c(tree.x[i] - 1 * tree.size[i], tree.y[i] + -3 * tree.size[i]), col = shape::shadepalette(n = 20, endcol = "orange")) ## sphere three shape::filledellipse(rx1 = 1.2 * f * tree.size[i], ry1 = 1.2 * tree.size[i], mid = c(tree.x[i] - 1.7 * tree.size[i], tree.y[i] + 2 * tree.size[i]), col = shape::shadepalette(n = 20, endcol = "yellow3")) ## sphere four shape::filledellipse(rx1 = 1 * f * tree.size[i], ry1 = 1 * tree.size[i], mid = c(tree.x[i] + 3 * tree.size[i], tree.y[i] - 4 * tree.size[i]), col = shape::shadepalette(n = 20, endcol = "darkblue")) Sys.sleep(0.1) } ## add snow points(runif(300, 0, 100), runif(300, 0, 100), pch = 8, col = "lightgrey") } }#end function Luminescence/R/convert_PSL2CSV.R0000644000176200001440000001267414762554470016074 0ustar liggesusers#' @title Export PSL-file(s) to CSV-files #' #' @description This function is a wrapper function around the functions [read_PSL2R] and #' [write_RLum2CSV] and it imports an PSL-file (SUERC portable OSL reader file format) #' and directly exports its content to CSV-files. #' If nothing is set for the argument `path` ([write_RLum2CSV]) the input folder will #' become the output folder. #' #' @param file [character] (**required**): #' name of the PSL-file to be converted to CSV-files #' #' @param extract_raw_data [logical] (*with default*): enable/disable raw data #' extraction. The PSL files imported into R contain an element `$raw_data`, which #' provides a few more information (e.g., count errors), sometimes it makes #' sense to use this data of the more compact standard values created by [read_PSL2R] #' #' @param single_table [logical] (*with default*): enable/disable the creation #' of single table with n rows and n columns, instead of separate [data.frame] #' objects. Each curve will be represented by two columns for time and counts #' #' @param ... further arguments that will be passed to the function #' [read_PSL2R] and [write_RLum2CSV] #' #' @return #' The function returns either a CSV-file (or many of them) or for the option #' `export = FALSE` a list comprising objects of type [data.frame] and [matrix] #' #' @section Function version: 0.1.2 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Analysis-class], [RLum.Data-class], [RLum.Results-class], #' [utils::write.table], [write_RLum2CSV], [read_PSL2R] #' #' @keywords IO #' #' @examples #' #' ## export into single data.frame #' file <- system.file("extdata/DorNie_0016.psl", package="Luminescence") #' convert_PSL2CSV(file, export = FALSE, single_table = TRUE) #' #' #' \dontrun{ #' ##select your BIN-file #' file <- file.choose() #' #' ##convert #' convert_PSL2CSV(file) #' #' } #' #' @md #' @export convert_PSL2CSV <- function( file, extract_raw_data = FALSE, single_table = FALSE, ... ) { .set_function_name("convert_PSL2CSV") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(file, c("character", "RLum")) .validate_not_empty(file) ##set input arguments convert_PSL2R_settings.default <- list( drop_bg = FALSE, as_decay_curve = TRUE, smooth = FALSE, merge = if(single_table) TRUE else FALSE, export = TRUE, verbose = TRUE ) ##modify list on demand convert_PSL2R_settings <- modifyList(x = convert_PSL2R_settings.default, val = list(...)) # Import file --------------------------------------------------------------------------------- if(!inherits(file, "RLum")){ object <- read_PSL2R( file = file, drop_bg = convert_PSL2R_settings$drop_bg, as_decay_curve = convert_PSL2R_settings$as_decay_curve, smooth = convert_PSL2R_settings$smooth, merge = convert_PSL2R_settings$merge, verbose = convert_PSL2R_settings$verbose ) }else{ object <- file } ## try to extract file name from object ... this will be needed later filename <- try({ rev(strsplit(object@info$Datafile_Path, "\\", fixed = TRUE)[[1]])[1] }, silent = TRUE) # raw data ---------------------------------------------------------------- ## extract raw data instead of conventional data if(extract_raw_data) { psl_raw <- lapply(object@records, function(x) x@info$raw_data) names(psl_raw) <- names(object) object <- psl_raw } # single_table ------------------------------------------------------------ ## generate a single table if(single_table) { ## run the conversion to CSV objects if(inherits(object, "RLum")) { l <- convert_PSL2CSV(object, export = FALSE, compact = FALSE) } else { l <- object } ## get max row number nrow_max <- vapply(l, nrow, numeric(1)) ## create super matrix m <- matrix(NA, nrow = max(nrow_max), ncol = length(nrow_max) * ncol(l[[1]])) ## fill matrix s <- matrix(seq_len(length(l) * ncol(l[[1]])), nrow = ncol(l[[1]])) for(i in 1:length(l)) { m[1:nrow(l[[i]]), s[1,i]:(rev(s[,i])[1])] <- as.matrix(l[[i]]) } ## set column names if(!extract_raw_data) { colnames(m) <- paste0(rep(names(l), each = 2), c("_t", "_cts")) } else { colnames(m) <- paste0( rep(seq_along(l), each = ncol(l[[1]])), "_" , rep(names(l), each = ncol(l[[1]])), "_", rep(colnames(l[[1]]), length(l))) } ## overwrite object object <- as.data.frame(m) ## if possible, provide the file name as attribute if(!inherits(filename, "try-error")) attr(object, "filename") <- gsub(".", "_", filename, fixed = TRUE) } # Export to CSV ------------------------------------------------------------------------------- ##get all arguments we want to pass and remove the doubled one arguments <- c( list( object = object, col.names = if(single_table[1] || extract_raw_data[1]) TRUE else FALSE, export = convert_PSL2R_settings$export), list(...)) arguments[duplicated(names(arguments))] <- NULL ## now modify list again to ensure that the user input is always respected arguments <- modifyList(arguments, val = list(...), keep.null = TRUE) ##this if-condition prevents NULL in the terminal if(convert_PSL2R_settings$export){ invisible(do.call("write_RLum2CSV", arguments)) }else{ do.call("write_RLum2CSV", arguments) } } Luminescence/R/analyse_FadingMeasurement.R0000644000176200001440000011347014762554470020346 0ustar liggesusers#' @title Analyse fading measurements and returns the fading rate per decade (g-value) #' #' @description #' The function analyses fading measurements and returns a fading rate #' including an error estimation. The function is not limited to standard #' fading measurements, as can be seen, e.g., Huntley and Lamothe (2001). #' Additionally, the density of recombination centres (rho') is estimated after #' Kars et al. (2008). #' #' @details #' All provided output corresponds to the \eqn{tc} value obtained by this analysis. Additionally #' in the output object the g-value normalised to 2-days is provided. The output of this function #' can be passed to the function [calc_FadingCorr]. #' #' **Fitting and error estimation** #' #' For the fitting the function [stats::lm] is used without applying weights. For the #' error estimation all input values, except `tc`, as the precision can be considered as sufficiently #' high enough with regard to the underlying problem, are sampled assuming a normal distribution #' for each value with the value as the mean and the provided uncertainty as standard deviation. #' #' **The options for `t_star`** #' #' \itemize{ #' \item `t_star = "half"` (the default) The calculation follows the simplified #' version in Auclair et al. (2003), which reads #' \deqn{t_{star} := t_1 + (t_2 - t_1)/2} #' \item `t_star = "half_complex"` This option applies the complex function shown in Auclair et al. (2003), #' which is derived from Aitken (1985) appendix F, equations 9 and 11. #' It reads \deqn{t_{star} = t0 * 10^[(t_2 log(t_2/t_0) - t_1 log(t_1/t_0) - 0.43(t_2 - t_1))/(t_2 - t_1)]} #' where 0.43 = \eqn{1/ln(10)}. t0, which is an arbitrary constant, is set to 1. #' Please note that the equation in Auclair et al. (2003) is incorrect #' insofar that it reads \eqn{10exp(...)}, where the base should be 10 and not the Euler's number. #' Here we use the correct version (base 10). #' \item `t_star = "end"` This option uses the simplest possible form for `t_star` which is the time since #' irradiation without taking into account any addition parameter and it equals t1 in Auclair et al. (2003) #' \item `t_star = ` This last option allows you to provide an R function object that works on t1 and #' gives you all possible freedom. For instance, you may want to define the following #' function `fun <- function(x) {x^2}`, this would square all values of t1, because internally #' it calls `fun(t1)`. The name of the function does not matter. #' } #' #' **Density of recombination centres** #' #' The density of recombination centres, expressed by the dimensionless variable rho', is estimated #' by fitting equation 5 in Kars et al. (2008) to the data. For the fitting the function #' [stats::nls] is used without applying weights. For the error estimation the same #' procedure as for the g-value is applied (see above). #' #' **Multiple aliquots & Lx/Tx normalisation** #' #' Be aware that this function will always normalise all \eqn{\frac{L_x}{T_x}} values #' by the \eqn{\frac{L_x}{T_x}} value of the #' prompt measurement of the first aliquot. This implicitly assumes that there are no systematic #' inter-aliquot variations in the \eqn{\frac{L_x}{T_x}} values. #' If deemed necessary to normalise the \eqn{\frac{L_x}{T_x}} values of each #' aliquot by its individual prompt measurement please do so **before** running #' [analyse_FadingMeasurement] and provide the already normalised values for `object` instead. #' #' **Shine-down curve plots** #' Please note that the shine-down curve plots are for information only. As such #' not all pause steps are plotted to avoid graphically overloaded plots. #' However, *all* pause times are taken into consideration for the analysis. #' #' @param object [RLum.Analysis-class] (**required**): #' input object with the measurement data. Alternatively, a [list] containing [RLum.Analysis-class] #' objects or a [data.frame] with three columns #' (x = LxTx, y = LxTx error, z = time since irradiation) can be provided. #' Can also be a wide table, i.e. a [data.frame] with a number of columns divisible by 3 #' and where each triplet has the before mentioned column structure. #' #' **Please note: The input object should solely consists of the curve needed #' for the data analysis, i.e. only IRSL curves representing Lx (and Tx). If #' the object originated from an XSYG file, also the irradiation steps must #' be preserved in the input object.** #' #' If data from multiple aliquots are provided please **see the details below** with regard to #' Lx/Tx normalisation. **The function assumes that all your measurements are related to #' one (comparable) sample. If you have to treat independent samples, you have use this function #' in a loop.** #' #' @param structure [character] (*with default*): #' sets the structure of the measurement data. Allowed are `'Lx'` or `c('Lx','Tx')`. #' Other input is ignored #' #' @param signal.integral [vector] (**required**): vector with channels for the signal integral #' (e.g., `c(1:10)`). Not required if a `data.frame` with `LxTx` values is provided. #' #' @param background.integral [vector] (**required**): vector with channels for the background integral #' (e.g., `c(90:100)`). Not required if a `data.frame` with `LxTx` values is provided. #' #' @param t_star [character] (*with default*): #' method for calculating the time elapsed since irradiation if input is **not** a `data.frame`. #' Options are: `'half'` (the default), `'half_complex`, which uses the long equation in Auclair et al. 2003, and #' and `'end'`, which takes the time between irradiation and the measurement step. #' Alternatively, `t_star` can be a function with one parameter which works on `t1`. #' For more information see details. \cr #' #' *`t_star` has no effect if the input is a [data.frame], because this input comes #' without irradiation times.* #' #' @param n.MC [integer] (*with default*): #' number for Monte Carlo runs for the error estimation. #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param plot_singlePanels [logical] (*with default*) or [numeric] (*optional*): #' enable/disable single plot mode, i.e. one plot window per plot. #' Alternatively a vector specifying the plot to be drawn, e.g., #' `plot_singlePanels = c(3,4)` draws only the last two plots #' #' @param ... (*optional*) further arguments that can be passed to internally used functions. Supported arguments: #' `xlab`, `log`, `mtext`, `plot.trend` (enable/disable trend blue line), and `xlim` for the #' two first curve plots, and `ylim` for the fading #' curve plot. For further plot customization please use the numerical output of the functions for #' own plots. #' #' @return #' An [RLum.Results-class] object is returned: #' #' Slot: **@data** #' #' \tabular{lll}{ #' **OBJECT** \tab **TYPE** \tab **COMMENT**\cr #' `fading_results` \tab `data.frame` \tab results of the fading measurement in a table \cr #' `fit` \tab `lm` \tab object returned by the used linear fitting function [stats::lm]\cr #' `rho_prime` \tab `data.frame` \tab results of rho' estimation after Kars et al. (2008) \cr #' `LxTx_table` \tab `data.frame` \tab Lx/Tx table, if curve data had been provided \cr #' `irr.times` \tab `integer` \tab vector with the irradiation times in seconds \cr #' } #' #' Slot: **@info** #' #' \tabular{lll}{ #' **OBJECT** \tab `TYPE` \tab `COMMENT`\cr #' `call` \tab `call` \tab the original function call\cr #' } #' #' @section Function version: 0.1.23 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) \cr #' Christoph Burow, University of Cologne (Germany) #' #' @keywords datagen #' #' @references #' #' Aitken, M.J., 1985. Thermoluminescence dating, Studies in archaeological science. #' Academic Press, London, Orlando. #' #' Auclair, M., Lamothe, M., Huot, S., 2003. Measurement of anomalous fading for feldspar IRSL using #' SAR. Radiation Measurements 37, 487-492. \doi{10.1016/S1350-4487(03)00018-0} #' #' Huntley, D.J., Lamothe, M., 2001. Ubiquity of anomalous fading in K-feldspars and the measurement #' and correction for it in optical dating. Canadian Journal of Earth Sciences 38, #' 1093-1106. doi: `10.1139/cjes-38-7-1093` #' #' Kars, R.H., Wallinga, J., Cohen, K.M., 2008. A new approach towards anomalous #' fading correction for feldspar IRSL dating-tests on samples in field saturation. #' Radiation Measurements 43, 786-790. \doi{10.1016/j.radmeas.2008.01.021} #' #' @seealso [calc_OSLLxTxRatio], [read_BIN2R], [read_XSYG2R], #' [extract_IrradiationTimes], [calc_FadingCorr] #' #' @examples #' #' ## load example data (sample UNIL/NB123, see ?ExampleData.Fading) #' data("ExampleData.Fading", envir = environment()) #' #' ##(1) get fading measurement data (here a three column data.frame) #' fading_data <- ExampleData.Fading$fading.data$IR50 #' #' ##(2) run analysis #' g_value <- analyse_FadingMeasurement( #' fading_data, #' plot = TRUE, #' verbose = TRUE, #' n.MC = 10) #' #' ##(3) this can be further used in the function #' ## to correct the age according to Huntley & Lamothe, 2001 #' results <- calc_FadingCorr( #' age.faded = c(100,2), #' g_value = g_value, #' n.MC = 10) #' #' @md #' @export analyse_FadingMeasurement <- function( object, structure = c("Lx", "Tx"), signal.integral, background.integral, t_star = 'half', n.MC = 100, verbose = TRUE, plot = TRUE, plot_singlePanels = FALSE, ... ) { .set_function_name("analyse_FadingMeasurement") on.exit(.unset_function_name(), add = TRUE) ## Integrity Tests -------------------------------------------------------- .validate_class(object, c("RLum.Analysis", "data.frame", "list")) .validate_class(plot_singlePanels, c("logical", "integer", "numeric")) if (is(object, "list")) { wrong.class <- sapply(object, class) != "RLum.Analysis" if (any(wrong.class)) { .throw_warning(sum(wrong.class), " unsupported records removed") ## remove unwanted stuff object[wrong.class] <- NULL if (length(object) == 0) { .throw_error("No valid records in 'object' left") } } } else if (inherits(object, "RLum.Analysis")) { object <- list(object) } else if(inherits(object,"data.frame")){ .validate_not_empty(object) if (ncol(object) %% 3 != 0) { .throw_error("'object': if you provide a data.frame as input, ", "the number of columns must be a multiple of 3.") } else { object <- do.call(rbind, lapply(seq(1, ncol(object), 3), function(col) { setNames(object[ , col:c(col+2)], c("LxTx", "LxTxError", "timeSinceIrr")) }) ) object <- object[stats::complete.cases(object), ] } ##set table and object LxTx_table <- data.frame(LxTx = object[[1]], LxTx.Error = object[[2]]) TIMESINCEIRR <- object[[3]] irradiation_times <- TIMESINCEIRR object <- NULL } if (!is(t_star, "function")) { t_star <- .validate_args(t_star, c("half", "half_complex", "end"), extra = "a function") } # Prepare data -------------------------------------------------------------------------------- if(!is.null(object)){ originators <- unique(unlist(lapply(object, slot, name = "originator"))) if (!(length(structure) == 1 && structure == "Lx" || length(structure) == 2 && all(structure == c("Lx", "Tx")))) { .throw_message("'structure' can only be 'Lx' or c('Lx', 'Tx'), ", "NULL returned") return(NULL) } ## support read_XSYG2R() if (length(originators) == 1 && originators == "read_XSYG2R") { ## extract irradiation times irradiation_times <- extract_IrradiationTimes(object) ## get TIMESINCEIRR TIMESINCEIRR <- unlist(lapply(irradiation_times, function(x) { x@data$irr.times[["TIMESINCEIRR"]][!grepl(pattern = "irradiation", x = x@data$irr.times[["STEP"]], fixed = TRUE)] })) if (all(TIMESINCEIRR < 0)) { .throw_error("No irradiation times could be retrieved, check that ", "'object' contains irradiation steps") } ## get irradiation times irradiation_times <- unlist(lapply(irradiation_times, function(x) { x@data$irr.times[["IRR_TIME"]][!grepl(pattern = "irradiation", x = x@data$irr.times[["STEP"]], fixed = TRUE)] })) ##clean object by removing the irradiation step ... and yes, we drop! object_clean <- unlist(get_RLum(object, curveType = "measured")) ## if we are left with fewer curves than expected we cannot proceed if (length(object_clean) < length(structure)) { .throw_message("After irradiation step removal not enough curves ", "are left from the data set, NULL returned") return(NULL) } ##support read_BIN2R() } else if (length(originators) == 1 && originators %in% c("read_BIN2R", "Risoe.BINfileData2RLum.Analysis")) { ##assign object, unlist and drop it object_clean <- unlist(get_RLum(object)) bin.version <- object_clean[[1]]@info$VERSION if (as.integer(bin.version) < 5) { .throw_error("BIN-file has version ", bin.version, ", but only versions from 05 on are supported") } ##set TIMESINCEIRR vector TIMESINCEIRR <- vapply(object_clean, function(o){ o@info$TIMESINCEIRR }, numeric(1)) ##check whether we have negative irradiation times, sort out such values if(any(TIMESINCEIRR < 0)){ #count affected records rm_records <- sum(TIMESINCEIRR < 0) ##now we have a problem and we first have to make sure that we understand ##the data structure and remove also the corresponding values if(all(structure == c("Lx", "Tx"))){ rm_id <- matrix(TIMESINCEIRR, ncol = 2, byrow = TRUE) rm_id[apply(rm_id < 0, MARGIN = 1, any),] <- NA rm_id <- which(is.na(as.numeric(t(rm_id)))) object_clean[rm_id] <- NULL TIMESINCEIRR <- TIMESINCEIRR[-rm_id] rm_records <- length(rm_id) rm(rm_id) }else{ object_clean[TIMESINCEIRR < 0] <- NULL TIMESINCEIRR <- TIMESINCEIRR[!TIMESINCEIRR < 0] } .throw_warning("removed ", rm_records, " records with negative ", "'time since irradiation'") ## check if we have removed everything if (length(object_clean) == 0) { .throw_message("After record removal nothing is left from ", "the data set, NULL returned") return(NULL) } } ##set irradiation times irradiation_times <- vapply(object_clean, function(o){ o@info$IRR_TIME }, numeric(1)) ##not support }else{ .throw_message("Unknown or unsupported originator, NULL returned") return(NULL) } ##correct irradiation time for t_star ##in accordance with Auclair et al., 2003, p. 488 ##but here we have no t1 ... this needs to be calculated ##set variables t1 <- TIMESINCEIRR t2 <- TIMESINCEIRR + irradiation_times ## set t_star ---- if(is(t_star, "function")){ t_star <- t_star(t1) } else { if(t_star == "half"){ ##calculate t_star using the simplified equation in Auclair et al. (2003) t_star <- t1 + (t2 - t1)/2 } else if(t_star == "half_complex"){ # calculate t_star after the full equation Auclair et al. (2003) # t0 is an arbitrary constant, we are setting that to 1 t0 <- 1 t_star <- t0 * 10^((t2 * log10(t2/t0) - t1 * log10(t1/t0) - (t2 - t1) * log10(exp(1))) / (t2 - t1)) }else if (t_star == "end"){ ##set t_start as t_1 (so after the end of irradiation) t_star <- t1 } } ##overwrite TIMESINCEIRR TIMESINCEIRR <- pmax(t_star, 1e-6) rm(t_star) # Calculation --------------------------------------------------------------------------------- ##calculate Lx/Tx or ... just Lx, it depends on the pattern ... set IRR_TIME if(length(structure) == 2){ Lx_data <- object_clean[seq(1,length(object_clean), by = 2)] Tx_data <- object_clean[seq(2,length(object_clean), by = 2)] ##we need only every 2nd irradiation time, the one from the Tx should be the same ... all the time TIMESINCEIRR <- TIMESINCEIRR[seq(1,length(TIMESINCEIRR), by = 2)] }else if(length(structure) == 1){ Lx_data <- object_clean Tx_data <- NULL } ##calculate Lx/Tx table len.Tx <- length(Tx_data) LxTx_table <- merge_RLum(.warningCatcher(lapply(1:length(Lx_data), function(x) { ## we operate only up to the shortest common length to avoid indexing ## into Tx_data with an invalid index if (len.Tx > 0 && x > len.Tx) { .throw_warning("Lx and Tx have different sizes: skipped sample ", x, ", NULL returned") return(NULL) } calc_OSLLxTxRatio( Lx.data = Lx_data[[x]], Tx.data = Tx_data[[x]], signal.integral = signal.integral, background.integral = background.integral, signal.integral.Tx = list(...)$signal.integral.Tx, background.integral.Tx = list(...)$background.integral.Tx, sigmab = list(...)$sigmab, sig0 = if( is.null(list(...)$sig0)){ formals(calc_OSLLxTxRatio)$sig0 }else{ list(...)$sig0 }, background.count.distribution = if( is.null(list(...)$background.count.distribution)){ formals(calc_OSLLxTxRatio)$background.count.distribution }else{ list(...)$background.count.distribution } ) })))$LxTx.table } ##create unique identifier uid <- create_UID() ##normalise data to prompt measurement tc <- min(TIMESINCEIRR)[1] ## remove Inf values in LxTx table if(any(is.infinite(LxTx_table[["LxTx"]]))){ rm_id <- which(is.infinite(LxTx_table[["LxTx"]])) LxTx_table <- LxTx_table[-rm_id,] TIMESINCEIRR <- TIMESINCEIRR[-rm_id] rm(rm_id) } ##normalise if(length(structure) == 2 | is.null(object)){ LxTx_NORM <- LxTx_table[["LxTx"]] / LxTx_table[["LxTx"]][which(TIMESINCEIRR== tc)[1]] LxTx_NORM.ERROR <- LxTx_table[["LxTx.Error"]] / LxTx_table[["LxTx"]][which(TIMESINCEIRR == tc)[1]] }else{ LxTx_NORM <- LxTx_table[["Net_LnLx"]] / LxTx_table[["Net_LnLx"]][which(TIMESINCEIRR== tc)[1]] LxTx_NORM.ERROR <- LxTx_table[["Net_LnLx.Error"]] / LxTx_table[["Net_LnLx"]][which(TIMESINCEIRR == tc)[1]] } ## normalise time since irradiation TIMESINCEIRR_NORM <- TIMESINCEIRR/tc ##add dose and time since irradiation LxTx_table <- cbind( LxTx_table, TIMESINCEIRR = TIMESINCEIRR, TIMESINCEIRR_NORM = TIMESINCEIRR_NORM, TIMESINCEIRR_NORM.LOG = log10(TIMESINCEIRR_NORM), LxTx_NORM = LxTx_NORM, LxTx_NORM.ERROR = LxTx_NORM.ERROR, UID = uid ) # Fitting ------------------------------------------------------------------------------------- ## prevent that n.MC can become smaller than 2 n.MC <- max(c(n.MC[1],2)) ##we need to fit the data to get the g_value ##sample for monte carlo runs MC_matrix <- suppressWarnings(cbind(LxTx_table[["TIMESINCEIRR_NORM.LOG"]], matrix(rnorm( n = n.MC * nrow(LxTx_table), mean = LxTx_table[["LxTx_NORM"]], sd = abs(LxTx_table[["LxTx_NORM.ERROR"]]) ), ncol = n.MC))) ##apply the fit fit_matrix <- vapply(X = 2:(n.MC+1), FUN = function(x){ ##fit fit <- try(stats::lm(y ~ x, data = data.frame( x = MC_matrix[,1], y = MC_matrix[,x]))$coefficients, silent = TRUE) if(inherits(fit, "try-error")){ return(c(NA_real_, NA_real_)) }else{ return(fit) } }, FUN.VALUE = vector("numeric", length = 2)) ##calculate g-values from matrix g_value.MC <- -fit_matrix[2, ] * 1 / fit_matrix[1, ] * 100 ##calculate rho prime (Kars et al. 2008; proposed by Georgina E. King) ##s value after Huntley (2006) J. Phys. D. Hs <- 3e15 ##sample for monte carlo runs MC_matrix_rhop <- suppressWarnings(matrix(rnorm( n = n.MC * nrow(LxTx_table), mean = LxTx_table[["LxTx_NORM"]], sd = abs(LxTx_table[["LxTx_NORM.ERROR"]]) ), ncol = n.MC)) ## calculate rho prime for all MC samples fit_vector_rhop <- suppressWarnings(apply(MC_matrix_rhop, MARGIN = 2, FUN = function(x) { tryCatch({ coef(minpack.lm::nlsLM(x ~ c * exp(-rhop * (log(1.8 * Hs * TIMESINCEIRR))^3), start = list(c = x[1], rhop = 10^-5.5), data = LxTx_table))[["rhop"]] }, error = function(e) { return(NA) }) })) ## discard all NA values produced in MC runs fit_vector_rhop <- fit_vector_rhop[!is.na(fit_vector_rhop)] ## calculate mean and standard deviation of rho prime (in log10 space) rhoPrime <- data.frame( MEAN = mean(fit_vector_rhop), SD = sd(fit_vector_rhop), Q_0.025 = quantile(x = fit_vector_rhop, probs = 0.025, na.rm = TRUE), Q_0.16 = quantile(x = fit_vector_rhop, probs = 0.16, na.rm = TRUE), Q_0.84 = quantile(x = fit_vector_rhop, probs = 0.84, na.rm = TRUE), Q_0.975 = quantile(x = fit_vector_rhop, probs = 0.975, na.rm = TRUE), row.names = NULL ) ## calc g-value ----- fit <- try(stats::lm(y ~ x, data = data.frame(x = LxTx_table[["TIMESINCEIRR_NORM.LOG"]], y = LxTx_table[["LxTx_NORM"]])), silent = TRUE) fit_power <- try(stats::lm(y ~ I(x^3) + I(x^2) + I(x) , data = data.frame(x = LxTx_table[["TIMESINCEIRR_NORM.LOG"]], y = LxTx_table[["LxTx_NORM"]])), silent = TRUE) ##for predicting fit_predict <- try(stats::lm(y ~ x, data = data.frame(y = LxTx_table[["TIMESINCEIRR_NORM.LOG"]], x = LxTx_table[["LxTx_NORM"]])), silent = TRUE) ##calculate final g_value ##the 2nd term corrects for the (potential) offset from one g_value_fit <- NA if (!inherits(fit, "try-error")) { g_value_fit <- -fit$coefficient[2] * 1 / fit$coefficient[1] * 100 } ##construct output data.frame g_value <- data.frame( FIT = g_value_fit, MEAN = mean(g_value.MC), SD = sd(g_value.MC), Q_0.025 = quantile(x = g_value.MC, probs = 0.025, na.rm = TRUE), Q_0.16 = quantile(x = g_value.MC, probs = 0.16, na.rm = TRUE), Q_0.84 = quantile(x = g_value.MC, probs = 0.84, na.rm = TRUE), Q_0.975 = quantile(x = g_value.MC, probs = 0.975, na.rm = TRUE) ) ##normalise the g-value to 2-days using the equation provided by Sébastien Huot via e-mail ##this means the data is extended ## calc g2-value days ---- k0 <- g_value[,c("FIT", "SD")] / 100 / log(10) k1 <- k0 / (1 - k0 * log(172800/tc)) g_value_2days <- 100 * k1 * log(10) names(g_value_2days) <- c("G_VALUE_2DAYS", "G_VALUE_2DAYS.ERROR") # Approximation ------------------------------------------------------------------------------- T_0.5.interpolated <- try(approx(x = LxTx_table[["LxTx_NORM"]], y = LxTx_table[["TIMESINCEIRR_NORM"]], ties = mean, xout = 0.5), silent = TRUE) if(inherits(T_0.5.interpolated, 'try-error')){ T_0.5 <- data.frame( T_0.5_INTERPOLATED = NA, T_0.5_PREDICTED = NA, T_0.5_PREDICTED.LOWER = NA, T_0.5_PREDICTED.UPPER = NA ) }else{ T_0.5.predict <- stats::predict.lm(fit_predict,newdata = data.frame(x = 0.5), interval = "predict") T_0.5 <- data.frame( T_0.5_INTERPOLATED = T_0.5.interpolated$y, T_0.5_PREDICTED = (10 ^ T_0.5.predict[, 1]) * tc, T_0.5_PREDICTED.LOWER = (10 ^ T_0.5.predict[, 2]) * tc, T_0.5_PREDICTED.UPPER = (10 ^ T_0.5.predict[, 2]) * tc ) } ## Plotting --------------------------------------------------------------- if(plot) { ## deprecated argument if ("plot.single" %in% names(list(...))) { plot_singlePanels <- list(...)$plot.single .throw_warning("'plot.single' is deprecated, use 'plot_singlePanels' ", "instead") } if (!plot_singlePanels[1]) { par.default <- par()$mfrow on.exit(par(mfrow = par.default), add = TRUE) par(mfrow = c(2, 2)) } ##get package col <- get("col", pos = .LuminescenceEnv) ##set some plot settings plot_settings <- list( xlab = "Stimulation time [s]", ylim = NULL, xlim = NULL, log = "", mtext = "", plot.trend = TRUE ) ##modify on request plot_settings <- modifyList(x = plot_settings, val = list(...)) ##get unique irradiation times ... for plotting irradiation_times.unique <- unique(TIMESINCEIRR) ##limit to max 5 if(length(irradiation_times.unique) >= 5){ irradiation_times.unique <- irradiation_times.unique[seq(1, length(irradiation_times.unique), length.out = 5)] } ## plot Lx-curves ----- if (!is.null(object)) { if (length(structure) == 2) { if (is.logical(plot_singlePanels) || (is.numeric(plot_singlePanels) && 1 %in% plot_singlePanels)) { records <- object_clean[seq(1, length(object_clean), by = 2)] plot_RLum( set_RLum(class = "RLum.Analysis", records = records), combine = length(records) > 1, col = c(col[1:5], rep( rgb(0, 0, 0, 0.3), abs(length(TIMESINCEIRR) - 5) ))[1:length(records)], records_max = 10, plot_singlePanels = TRUE, legend.text = c(paste(round(irradiation_times.unique, 1), "s")), xlab = plot_settings$xlab, xlim = plot_settings$xlim, log = plot_settings$log, legend.pos = "outside", main = bquote(L[x] ~ "- curve"), mtext = plot_settings$mtext ) ##add integration limits abline(v = c( object_clean[[1]][range(signal.integral), 1], object_clean[[1]][range(background.integral), 1]), lty = c(2,2,2,2), col = c("green", "green", "red", "red")) } # plot Tx-curves ---- if (is.logical(plot_singlePanels) || (is.numeric(plot_singlePanels) && 2 %in% plot_singlePanels)) { records <- object_clean[seq(2, length(object_clean), by = 2)] plot_RLum( set_RLum(class = "RLum.Analysis", records = records), combine = length(records) > 1, records_max = 10, plot_singlePanels = TRUE, legend.text = paste(round(irradiation_times.unique, 1), "s"), xlab = plot_settings$xlab, log = plot_settings$log, legend.pos = "outside", main = bquote(T[x] ~ "- curve"), mtext = plot_settings$mtext ) if (is.null(list(...)$signal.integral.Tx)) { ##add integration limits abline(v = c( object_clean[[1]][range(signal.integral), 1], object_clean[[1]][range(background.integral), 1]), lty = c(2,2,2,2), col = c("green", "green", "red", "red")) } else{ ##add integration limits abline( v = range(list(...)$signal.integral.Tx) * max(as.matrix(object_clean[[1]][, 1])) / nrow(as.matrix(object_clean[[1]])), lty = 2, col = "green" ) abline( v = range(list(...)$background.integral.Tx) * max(as.matrix(object_clean[[1]][, 1])) / nrow(as.matrix(object_clean[[1]])), lty = 2, col = "red" ) } } } else{ if (is.logical(plot_singlePanels) || (is.numeric(plot_singlePanels) && 1 %in% plot_singlePanels)) { plot_RLum( set_RLum(class = "RLum.Analysis", records = object_clean), combine = length(object_clean) > 1, records_max = 10, plot_singlePanels = TRUE, legend.text = c(paste(round(irradiation_times.unique, 1), "s")), legend.pos = "outside", xlab = plot_settings$xlab, log = plot_settings$log, main = bquote(L[x] ~ " - curves"), mtext = plot_settings$mtext ) ##add integration limits abline( v = range(signal.integral) * max(as.matrix(object_clean[[1]][, 1])) / nrow(as.matrix(object_clean[[1]])), lty = 2, col = "green" ) abline( v = range(background.integral) * max(as.matrix(object_clean[[1]][, 1])) / nrow(as.matrix(object_clean[[1]])), lty = 2, col = "red" ) } ##empty Tx plot if (is.logical(plot_singlePanels) || (is.numeric(plot_singlePanels) && 2 %in% plot_singlePanels)) { plot( NA, NA, xlim = c(0, 1), ylim = c(0, 1), xlab = "", ylab = "", axes = FALSE ) text(x = 0.5, y = 0.5, labels = expression(paste("No ", T[x], " curves detected"))) } } }else{ if (is.logical(plot_singlePanels) || (is.numeric(plot_singlePanels) && 1 %in% plot_singlePanels)) { ##empty Lx plot plot( NA, NA, xlim = c(0, 1), ylim = c(0, 1), xlab = "", ylab = "", axes = FALSE ) text(x = 0.5, y = 0.5, labels = expression(paste("No ", L[x], " curves detected"))) } if (is.logical(plot_singlePanels) || (is.numeric(plot_singlePanels) && 2 %in% plot_singlePanels)) { ##empty Tx plot plot( NA, NA, xlim = c(0, 1), ylim = c(0, 1), xlab = "", ylab = "", axes = FALSE ) text(x = 0.5, y = 0.5, labels = expression(paste("No ", T[x], " curves detected"))) } } ## plot fading ---- if (is.logical(plot_singlePanels) || (is.numeric(plot_singlePanels) && 3 %in% plot_singlePanels)) { if(all(is.na(LxTx_table[["LxTx_NORM"]]))){ shape::emptyplot() text(x = .5, y = .5, labels = "All NA values!") }else{ plot( NA, NA, ylab = "Norm. intensity", xaxt = "n", xlab = "Time since irradition [s]", sub = expression(paste("[", log[10](t / t[c]), "]")), ylim = if(is.null(plot_settings$ylim)){ if (max(LxTx_table[["LxTx_NORM"]]) > 1.1) { c(0.1, max(LxTx_table[["LxTx_NORM"]]) + max(LxTx_table[["LxTx_NORM.ERROR"]])) } else { c(0.1, 1.1) } } else { plot_settings$ylim }, xlim = range(LxTx_table[["TIMESINCEIRR_NORM.LOG"]], na.rm = TRUE), main = "Signal Fading" ) ##add axis (with an additional formatting to provide a nice log10-axis) ##https://stackoverflow.com/questions/6897243/labelling-logarithmic-scale-display-in-r x_axis_lab <- seq(0:nchar(floor(max(LxTx_table[["TIMESINCEIRR"]])))) x_axis_ticks <- log10((10^x_axis_lab)/tc) ## if we have less then two values to show, we fall back to the ## old data representation. if (length(x_axis_ticks[x_axis_ticks > 0]) > 2) { axis( side = 1, at = x_axis_ticks, labels = sapply(x_axis_lab, function(i) as.expression(bquote(10 ^ .(i)))) ) ##lower axis axis( side = 1, at = x_axis_ticks, labels = paste0("[",round(x_axis_ticks,1),"]"), cex.axis = 0.7, tick = FALSE, line = 0.75) } else { axis( side = 1, at = axTicks(side = 1), labels = suppressWarnings(format((10 ^ (axTicks(side = 1)) * tc), digits = 1, decimal.mark = "", scientific = TRUE))) ##lower axis axis( side = 1, at = axTicks(1), labels = axTicks(1), cex.axis = 0.7, tick = FALSE, line = 0.75) } mtext( side = 3, paste0( "g-value: ", round(g_value$FIT, digits = 2), " \u00b1 ", round(g_value$SD, digits = 2), " (%/decade) | tc = ", format(tc, digits = 4, scientific = TRUE) ), cex = par()$cex * 0.9 ) ##add MC error polygon x_range <- range(LxTx_table[["TIMESINCEIRR_NORM.LOG"]], na.rm = TRUE) x <- seq(x_range[1], x_range[2], length.out = 50) m <- matrixStats::rowRanges(vapply(1:n.MC, function(i){ fit_matrix[2, i] * x + fit_matrix[1, i] }, numeric(length(x)))) polygon( x = c(x, rev(x)), y = c(m[, 2], rev(m[, 1])), col = rgb(0, 0, 0, 0.2), border = NA ) ##add master curve in red curve( fit$coefficient[2] * x + fit$coefficient[1], col = "red", add = TRUE, lwd = 1.5 ) ##add power law curve if(plot_settings$plot.trend) { curve( x ^ 3 * fit_power$coefficient[2] + x ^ 2 * fit_power$coefficient[3] + x * fit_power$coefficient[4] + fit_power$coefficient[1], add = TRUE, col = "blue", lty = 2 ) } ##add points points(x = LxTx_table[["TIMESINCEIRR_NORM.LOG"]], y = LxTx_table[["LxTx_NORM"]], pch = 21, bg = "grey") ##error bars segments( x0 = LxTx_table[["TIMESINCEIRR_NORM.LOG"]], x1 = LxTx_table[["TIMESINCEIRR_NORM.LOG"]], y0 = LxTx_table[["LxTx_NORM"]] + LxTx_table[["LxTx_NORM.ERROR"]], y1 = LxTx_table[["LxTx_NORM"]] - LxTx_table[["LxTx_NORM.ERROR"]], col = "grey" ) ##add legend legend( "bottom", legend = c("fit", "fit MC", if(plot_settings$plot.trend) "trend" else NULL), col = c("red", "grey", if(plot_settings$plot.trend) "blue" else NULL), lty = c(1, 1, if(plot_settings$plot.trend) 2 else NULL), bty = "n", horiz = TRUE ) }#end if a }# if (is.logical(plot_singlePanels) || (is.numeric(plot_singlePanels) && 4 %in% plot_singlePanels)) { if(all(is.na(g_value.MC))){ shape::emptyplot() text(x = .5, y = .5, labels = "All NA values!") }else{ plot(density(g_value.MC), main = "Density: g-values (%/decade)") graphics::rug(x = g_value.MC) abline(v = c(g_value[["Q_0.16"]], g_value[["Q_0.84"]]), lty = 2, col = "darkgreen") abline(v = c(g_value[["Q_0.025"]], g_value[["Q_0.975"]]), lty = 2, col = "red") legend( "topleft", legend = c("HPD - 68 %", "HPD - 95 %"), lty = 2, col = c("darkgreen", "red"), bty = "n" ) } } } # Terminal ------------------------------------------------------------------------------------ if (verbose){ cat("\n[analyse_FadingMeasurement()]\n") cat(paste0("\n n.MC:\t",n.MC)) cat(paste0("\n tc:\t",format(tc, digits = 4, scientific = TRUE), " s")) cat("\n---------------------------------------------------") cat(paste0("\nT_0.5 interpolated:\t",T_0.5$T_0.5_INTERPOLATED)) cat(paste0("\nT_0.5 predicted:\t",format(T_0.5$T_0.5_PREDICTED, digits = 2, scientific = TRUE))) cat(paste0("\ng-value:\t\t", round(g_value$FIT, digits = 2), " \u00b1 ", round(g_value$SD, digits = 2), " (%/decade)")) cat(paste0("\ng-value (norm. 2 days):\t", round(g_value_2days[1], digits = 2), " \u00b1 ", round(g_value_2days[2], digits = 2), " (%/decade)")) cat("\n---------------------------------------------------") cat(paste0("\nrho':\t\t\t", format(rhoPrime$MEAN, digits = 3), " \u00b1 ", format(rhoPrime$SD, digits = 3))) cat(paste0("\nlog10(rho'):\t\t", suppressWarnings(round(log10(rhoPrime$MEAN), 2)), " \u00b1 ", round(rhoPrime$SD / (rhoPrime$MEAN * log(10, base = exp(1))), 2))) cat("\n---------------------------------------------------\n") } # Return -------------------------------------------------------------------------------------- ##set data.frame if(all(is.na(g_value))){ fading_results <- data.frame( FIT = NA, MEAN = NA, SD = NA, Q_0.025 = NA, Q_0.16 = NA, Q_0.84 = NA, Q_0.975 = NA, TC = NA, G_VALUE_2DAYS = NA, G_VALUE_2DAYS.ERROR = NA, T_0.5_INTERPOLATED = NA, T_0.5_PREDICTED = NA, T_0.5_PREDICTED.LOWER = NA, T_0.5_PREDICTED.UPPER = NA, UID = uid, stringsAsFactors = FALSE ) }else{ fading_results <- data.frame( g_value, TC = tc, G_VALUE_2DAYS = g_value_2days[1], G_VALUE_2DAYS.ERROR = g_value_2days[2], T_0.5, UID = uid, stringsAsFactors = FALSE ) } ##return return(set_RLum( class = "RLum.Results", data = list( fading_results = fading_results, fit = fit, rho_prime = rhoPrime, LxTx_table = LxTx_table, irr.times = irradiation_times ), info = list(call = sys.call()) )) } Luminescence/R/plot_SingleGrainDisc.R0000644000176200001440000002537014762554470017300 0ustar liggesusers#' @title Plot a disc with its values #' #' @description Shows a schematic representation of the physical appearance #' of one disc (one position in the reader) #' and illustrates the measured or calculated values per grain location. #' #' @details Depending of the available plotting space, some optional elements might have not enough room #' to be displayed. As this function is wrapped around the base plot function, one can also choose to add elements #' manually. #' #' @param object [RLum.Results-class] or [numeric] (**required**): the values #' to show, should have length 100. #' #' @param show_coordinates [logical] (*with default*): Show coordinates (1..10) #' in x and in y direction. Defaults to `FALSE`. #' #' @param show_location_ids [logical] (*with default*): Show id with every #' grain location (1..100). Defaults to `FALSE`. #' #' @param show_neighbours [logical] (*with default*): Show which #' neighbour connections are taken into account if calculating Moran's I. #' This makes sense when there are `NA` observations, or when a non-standard #' neighbour setting is defined. #' #' @param show_positioning_holes [logical] (*with default*): Show the 3 #' positioning holes for orientation. Defaults to `TRUE`. #' #' @param df_neighbours [data.frame] (*with default*): only relevant if #' `show_neighbours` is `TRUE`. Data frame indicating which borders to #' consider, and their respective weights (see the description provided for #' [calc_MoransI]). If `NULL` (default), this is constructed automatically by #' the internal function `.get_Neighbours`. #' #' @param ignore_borders [logical] (*with default*): whether only grain #' locations that do not lie on the border of the disc should be considered #' (`FALSE` by default). Thus if `TRUE`, only the inner 8x8 grain locations #' rather than the full 10x10 are considered. Ignored if `df_neighbours` is #' not `NULL` or if `show_neighbours = FALSE`. #' #' @param str_transform [character] (*with default*): The observed value of each individual grain is #' reflected in the size of a triangle (or other dot-like element). To account for large value differences, #' the transformation from value to triangle size can be `"lin"` (linear), `"log"` (logarithmic) and `"sqrt"` #' (square root). Defaults to `"sqrt"`, so that the surface is linear to the value. Note that #' the log and sqrt transformations can come with an addition to avoid negative values. When the legend #' is shown, the actual lower, middle and upper values are printed. #' #' @param ... other arguments to be given to the base R plot function, such #' as `main`, `col` and `pch`. `legend` can be used to enable/disable the #' legend (`FALSE` by default). #' #' @author Anna-Maartje de Boer, Luc Steinbuch, Wageningen University & Research, 2025 #' #' @references #' de Boer, A-M., Steinbuch, L., Heuvelink, G.B.M., Wallinga, J., 2025. #' A novel tool to assess crosstalk in single-grain luminescence detection. #' Submitted. #' #' @examples #' #' plot_SingleGrainDisc(1:100) #' #' @md #' @export plot_SingleGrainDisc <- function(object, show_coordinates = FALSE, show_location_ids = FALSE, show_neighbours = FALSE, show_positioning_holes = TRUE, df_neighbours = NULL, ignore_borders = FALSE, str_transform = "sqrt", # Options: "lin", "log" and "sqrt" ... ) { .set_function_name("plot_SingleGrainDisc") on.exit(.unset_function_name(), add = TRUE) ## Validate input arguments ----------------------- .validate_class(object, c("RLum.Results", "numeric", "integer")) if (is.numeric(object)) { vn_values_to_show <- object } else { vn_values_to_show <- get_RLum(object) } .validate_length(vn_values_to_show, 100, name = "'object'") if (all(is.na(vn_values_to_show))) { .throw_error("'object' should contain at least one non-NA value") } .validate_logical_scalar(show_coordinates) .validate_logical_scalar(show_location_ids) .validate_logical_scalar(show_neighbours) .validate_logical_scalar(show_positioning_holes) if (is.null(df_neighbours)) { .validate_logical_scalar(ignore_borders) df_neighbours <- .get_Neighbours(object, ignore_borders) } else { .validate_class(df_neighbours, "data.frame") if (ncol(df_neighbours) != 3) .throw_error("'df_neighbours' should be a data frame with 3 columns") } .validate_args(str_transform, c("sqrt", "lin", "log")) ## get ... arguments plot_settings <- modifyList( x = list( main = "", legend = FALSE, col = "darkolivegreen", pch = 17), val = list(...)) ## Settings ----------------------- n_lb_cex <- 0.8 # lower bound of plotted grain value size n_ub_cex <- 3.2 # upper bound of plotted grain value size str_title <- plot_settings$main ## Scaling from value to point size ----------------------- if(sum(!is.na(vn_values_to_show)) == 1) { ## Scale if there is one observation vn_range_values <- range(c(vn_values_to_show, 0), na.rm = TRUE) n_mean_value <- mean(vn_range_values) vn_values_to_show[101] <- n_mean_value ## Temporarily add mean value to vector for scaling vn_values_to_show <- (vn_values_to_show-vn_range_values[1]) / diff(vn_range_values) } else { vn_range_values <- range(vn_values_to_show, na.rm = TRUE) n_mean_value <- mean(vn_range_values) vn_values_to_show[101] <- n_mean_value ## Temporarily add mean value to vector for scaling if(str_transform == "lin") # No transformation, just rescaling { ## Scale to from 0 to inf vn_values_to_show <- vn_values_to_show - min(vn_values_to_show , na.rm = TRUE) ## Scale to from n_ub_cex to n_lb_cex) vn_values_to_show <- (vn_values_to_show)/ (max(vn_values_to_show , na.rm = TRUE) / (n_ub_cex - n_lb_cex) ) + n_lb_cex } else if (str_transform == "log") { ## Scale to from 1 to inf, also to avoid problems with non-positive values vn_values_to_show <- vn_values_to_show - min(vn_values_to_show , na.rm = TRUE) + 1 ## Transform vn_values_to_show <- log(vn_values_to_show) ## Scale to from n_ub_cex to n_lb_cex vn_values_to_show <- (vn_values_to_show)/ (max(vn_values_to_show , na.rm = TRUE) / (n_ub_cex - n_lb_cex) ) + n_lb_cex } else if (str_transform == "sqrt") { ## Scale to from 0 to inf vn_values_to_show <- vn_values_to_show - min(vn_values_to_show , na.rm = TRUE) ## Transform vn_values_to_show <- sqrt(vn_values_to_show) ## Scale to from n_ub_cex to n_lb_cex) vn_values_to_show <- (vn_values_to_show)/ (max(vn_values_to_show , na.rm = TRUE) / (n_ub_cex - n_lb_cex) ) + n_lb_cex } } n_mv_cex <- vn_values_to_show[101] ## Extract mean value point size vn_values_to_show <- vn_values_to_show[-101] ## Plotting ----------------------- df_disc <- data.frame(x = rep(1:10, length.out=100), y = rep(1:10, each=10) ) ## remove used arguments to avoid collisions args <- list(...) args <- args[!...names() %in% c("main", "legend", "col", "pch")] do.call( what = plot, args = c(list( x = df_disc$x, y = df_disc$y, cex = vn_values_to_show, asp = 1, col = plot_settings$col, pch = plot_settings$pch, xlab = "", ylab = "", xlim = c(1,10), ylim = c(10,1), axes = FALSE, mar = c(4, 4, 6, 0.5)), args)) ## Show title (if any) if (show_positioning_holes || show_coordinates) { ## move title up mtext(str_title, side = 3, line = 2.5, adj = 0.5, cex=1.3) } else { mtext(str_title, side = 3, line = 1, adj = 0.5, cex=1.5) } ## Show NA values if(any(is.na(vn_values_to_show))) { points(x = df_disc$x, y = df_disc$y, cex = 0.5, pch = ifelse(is.na(vn_values_to_show), 4, NA), col = "orange" ) } ## Show coordinates along axes if (show_coordinates) { axis(1, pos=-0.4, at=1:10, lwd=1, lwd.ticks=1) axis(4, pos=-0.3, at=1:10, las=2, lwd=1, lwd.ticks=1) } ## Show all grain location id's if (show_location_ids) { text(x = df_disc$x-0.2, y = df_disc$y-0.2, labels = 1:100, cex = 0.5, col = "black" ) } ## Show the 3 big positioning holes if (show_positioning_holes) { ## left middle right points(x = c(-0.25, 5.5, 11.2), y = c(5.5, 0, 5.5), pch = 1, cex = 5, xpd=NA ) } ## Indicate neighbouring positions used for Moran's I calculations if (show_neighbours) { n_lines <- nrow(df_neighbours) if (n_lines == 0) .throw_error("'show_neighbours' is TRUE but 'df_neighbours' is empty") ## From location ID to x y coordinates; put into lists for use with mapply list_x <- split((df_neighbours[,1:2] - 1) %% 10 + 1, 1:n_lines ) list_y <- split((df_neighbours[,1:2] - 1) %/% 10 + 1, 1:n_lines ) ## Scale weights for nice plotting li_weight <- split((2 * df_neighbours$weight / max(df_neighbours$weight)), 1:n_lines) mapply(lines, x = list_x, y = list_y, col = c("purple"), lwd = li_weight, lty = 'dotted') } if (plot_settings$legend) { pch <- plot_settings$pch col <- plot_settings$col n_low <- prettyNum(x = vn_range_values[1], digits = 2, format = "fg") n_mean <- prettyNum(x = n_mean_value, digits = 2, format = "fg") n_high <- prettyNum(x = vn_range_values[2], digits = 2, format = "fg") vs_legend <- c( n_low, n_mean, n_high ) vn_pch <- c( pch, pch, pch) vs_lty <- c( NA, NA, NA) vs_cols <- c( col, col, col) vn_pt_cex <- c( n_lb_cex, n_mv_cex, n_ub_cex) ## if also NA values if(any(is.na(vn_values_to_show))) { vs_legend <- c(vs_legend, "No obs.") vn_pch <- c(vn_pch, 4 ) vs_lty <- c(vs_lty, NA) vs_cols <- c(vs_cols, "orange") vn_pt_cex <- c(vn_pt_cex, 0.5) } if (show_neighbours) { vs_legend <- c(vs_legend, "Neighb.") vn_pch <- c(vn_pch, NA ) vs_lty <- c(vs_lty, 'dotted') vs_cols <- c(vs_cols, "purple") vn_pt_cex <- c(vn_pt_cex, NA) } legend(x = -0.0, y = 10.5, legend = vs_legend, pch = vn_pch, lty= vs_lty, lwd = 1, col = vs_cols, pt.cex = vn_pt_cex, cex = 0.8, bg = "gray98", horiz = TRUE, adj = c(0, 0.75), y.intersp=1.4, xpd=TRUE ) } } Luminescence/R/fit_SurfaceExposure.R0000644000176200001440000004706414762554470017226 0ustar liggesusers#' @title Nonlinear Least Squares Fit for OSL surface exposure data #' #' @description #' This function determines the (weighted) least-squares estimates of the #' parameters of either equation 1 in *Sohbati et al. (2012a)* or equation 12 in #' *Sohbati et al. (2012b)* for a given OSL surface exposure data set (**BETA**). #' #' @details #' **Weighted fitting** #' #' If `weights = TRUE` the function will use the inverse square of the error (\eqn{1/\sigma^2}) #' as weights during fitting using [minpack.lm::nlsLM]. Naturally, for this to #' take effect individual errors must be provided in the third column of the #' `data.frame` for `data`. Weighted fitting is **not** supported if `data` #' is a list of multiple `data.frame`s, i.e., it is not available for global #' fitting. #' #' **Dose rate** #' If any of the arguments `Ddot` or `D0` is at its default value (`NULL`), #' this function will fit equation 1 in Sohbati et al. (2012a) to the data. If #' the effect of dose rate (i.e., signal saturation) needs to be considered, #' numeric values for the dose rate (`Ddot`) (in Gy/ka) and the characteristic #' saturation dose (`D0`) (in Gy) must be provided. The function will then fit #' equation 12 in Sohbati et al. (2012b) to the data. #' #' **NOTE**: Currently, this function does **not** consider the variability #' of the dose rate with sample depth (`x`)! In the original equation the dose #' rate `D` is an arbitrary function of `x` (term `D(x)`), but here `D` is assumed #' constant. #' #' **Global fitting** #' If `data` is [list] of multiple `data.frame`s, each representing a separate #' sample, the function automatically performs a global fit to the data. This #' may be useful to better constrain the parameters `sigmaphi` or `mu` and #' **requires** that known ages for each sample is provided #' (e.g., `age = c(100, 1000)` if `data` is a list with two samples). #' #' #' @param data [data.frame] or [list] (**required**): #' Measured OSL surface exposure data with the following structure: #' #' ``` #' (optional) #' | depth (a.u.)| intensity | error | #' | [ ,1] | [ ,2] | [ ,3] | #' |-------------|-----------|-------| #' [1, ]| ~~~~ | ~~~~ | ~~~~ | #' [2, ]| ~~~~ | ~~~~ | ~~~~ | #' ... | ... | ... | ... | #' [x, ]| ~~~~ | ~~~~ | ~~~~ | #' #' ``` #' #' Alternatively, a [list] of `data.frames` can be provided, where each #' `data.frame` has the same structure as shown above, with the exception that #' they must **not** include the optional error column. Providing a [list] as #' input automatically activates the global fitting procedure (see details). #' #' @param sigmaphi [numeric] (*optional*): #' A numeric value for `sigmaphi`, i.e. the charge detrapping rate. #' Example: `sigmaphi = 5e-10` #' #' @param mu [numeric] (*optional*): #' A numeric value for mu, i.e. the light attenuation coefficient. #' Example: `mu = 0.9` #' #' @param age [numeric] (*optional*): #' The age (a) of the sample, if known. If `data` is a [list] of *x* samples, #' then `age` must be a numeric vector of length *x*. #' Example: `age = 10000`, or `age = c(1e4, 1e5, 1e6)`. #' #' @param Ddot [numeric] (*optional*): #' A numeric value for the environmental dose rate (Gy/ka). For this argument #' to be considered a value for `D0` must also be provided; otherwise it will be #' ignored. #' #' @param D0 [numeric] (*optional*): #' A numeric value for the characteristic saturation dose (Gy). For this argument #' to be considered a value for `Ddot` must also be provided; otherwise it will be #' ignored. #' #' @param weights [logical] (*optional*): #' If `TRUE` the fit will be weighted by the inverse square of the error. #' Requires `data` to be a [data.frame] with three columns. #' #' @param plot [logical] (*optional*): #' enable/disable the plot output. #' #' @param legend [logical] (*optional*): #' Show or hide the equation inside the plot. #' #' @param error_bars [logical] (*optional*): #' Show or hide error bars (only applies if errors were provided). #' #' @param coord_flip [logical] (*optional*): #' Flip the coordinate system. #' #' @param ... Further parameters passed to [plot]. #' Custom parameters include: #' - `verbose` ([logical]): show or hide console output #' - `line_col`: Colour of the fitted line #' - `line_lty`: Type of the fitted line (see `lty` in `?par`) #' - `line_lwd`: Line width of the fitted line (see `lwd` in `?par`) #' #' @return #' #' Function returns results numerically and graphically: #' #' -----------------------------------\cr #' `[ NUMERICAL OUTPUT ]`\cr #' -----------------------------------\cr #' #' **`RLum.Results`**-object #' #' **slot:** **`@data`** #' #' \tabular{lll}{ #' **Element** \tab **Type** \tab **Description**\cr #' `$summary` \tab `data.frame` \tab summary of the fitting results \cr #' `$data` \tab `data.frame` \tab the original input data \cr #' `$fit` \tab `nls` \tab the fitting object produced by [minpack.lm::nlsLM] \cr #' `$args` \tab `character` \tab arguments of the call \cr #' `$call` \tab `call` \tab the original function call \cr #' } #' #'**slot:** **`@info`** #' #' Currently unused. #' #' ------------------------\cr #' `[ PLOT OUTPUT ]`\cr #' ------------------------\cr #' #' A scatter plot of the provided depth-intensity OSL surface exposure data #' with the fitted model. #' #' @section Function version: 0.1.0 #' #' @note #' **This function has BETA status. If possible, results should be** #' **cross-checked.** #' #' @author Christoph Burow, University of Cologne (Germany) #' #' @seealso [ExampleData.SurfaceExposure], [minpack.lm::nlsLM] #' #' @references #' #' Sohbati, R., Murray, A.S., Chapot, M.S., Jain, M., Pederson, J., 2012a. #' Optically stimulated luminescence (OSL) as a chronometer for surface exposure #' dating. Journal of Geophysical Research 117, B09202. doi: #' \doi{10.1029/2012JB009383} #' #' Sohbati, R., Jain, M., Murray, A.S., 2012b. Surface exposure dating of #' non-terrestrial bodies using optically stimulated luminescence: A new method. #' Icarus 221, 160-166. #' #' @keywords datagen #' #' @examples #' #' ## Load example data #' data("ExampleData.SurfaceExposure") #' #' ## Example 1 - Single sample #' # Known parameters: 10000 a, mu = 0.9, sigmaphi = 5e-10 #' sample_1 <- ExampleData.SurfaceExposure$sample_1 #' head(sample_1) #' results <- fit_SurfaceExposure( #' data = sample_1, #' mu = 0.9, #' sigmaphi = 5e-10) #' get_RLum(results) #' #' #' ## Example 2 - Single sample and considering dose rate #' # Known parameters: 10000 a, mu = 0.9, sigmaphi = 5e-10, #' # dose rate = 2.5 Gy/ka, D0 = 40 Gy #' sample_2 <- ExampleData.SurfaceExposure$sample_2 #' head(sample_2) #' results <- fit_SurfaceExposure( #' data = sample_2, #' mu = 0.9, #' sigmaphi = 5e-10, #' Ddot = 2.5, #' D0 = 40) #' get_RLum(results) #' #' ## Example 3 - Multiple samples (global fit) to better constrain 'mu' #' # Known parameters: ages = 1e3, 1e4, 1e5, 1e6 a, mu = 0.9, sigmaphi = 5e-10 #' set_1 <- ExampleData.SurfaceExposure$set_1 #' str(set_1, max.level = 2) #' results <- fit_SurfaceExposure( #' data = set_1, #' age = c(1e3, 1e4, 1e5, 1e6), #' sigmaphi = 5e-10) #' get_RLum(results) #' #' #' ## Example 4 - Multiple samples (global fit) and considering dose rate #' # Known parameters: ages = 1e2, 1e3, 1e4, 1e5, 1e6 a, mu = 0.9, sigmaphi = 5e-10, #' # dose rate = 1.0 Ga/ka, D0 = 40 Gy #' set_2 <- ExampleData.SurfaceExposure$set_2 #' str(set_2, max.level = 2) #' results <- fit_SurfaceExposure( #' data = set_2, #' age = c(1e2, 1e3, 1e4, 1e5, 1e6), #' sigmaphi = 5e-10, #' Ddot = 1, #' D0 = 40) #'get_RLum(results) #' #' @md #' @export fit_SurfaceExposure <- function( data, sigmaphi = NULL, mu = NULL, age = NULL, Ddot = NULL, D0 = NULL, weights = FALSE, plot = TRUE, legend = TRUE, error_bars = TRUE, coord_flip = FALSE, ... ) { .set_function_name("fit_SurfaceExposure") on.exit(.unset_function_name(), add = TRUE) ## SETTINGS ---- settings <- list( verbose = TRUE, info = list() ) settings <- modifyList(settings, list(...)) ## Integrity checks ------------------------------------------------------- .validate_not_empty(data) ## Data type validation if (inherits(data, "RLum.Results")) data <- get_RLum(data, "data") if (inherits(data, "matrix")) data <- as.data.frame(data) if (inherits(data, "data.table")) data <- as.data.frame(data) ## For global fitting of multiple data sets 'data' must be a list if (inherits(data, "list")) { # Global fitting requires and equal amount of ages to be provided if (length(data) != length(age)) .throw_error("If 'data' is a list of data sets for global fitting, ", "'age' must be of the same length.") # TODO: Support weighted fitting for global fit if (weights) { if (settings$verbose) .throw_warning("'weights' is not supported when multiple data sets ", "are provided for global fitting") weights <- FALSE } # collapse list into a data.frame with a $group column to distinguish # between individual samples data_list <- data for (i in seq_along(data)) data[[i]]$group <- LETTERS[[i]] data <- do.call(rbind, data) data$group <- as.factor(data$group) global_fit <- TRUE } else { # ignore 'global_fit' if 'data' is a data.frame global_fit <- FALSE } # Exit if data type is invalid .validate_class(data, "data.frame") if (ncol(data) < 2) { .throw_error("'data' should have at least two columns") } # Check which parameters have been provided if (!is.null(age) && anyNA(age)) age <- NULL if (!is.null(sigmaphi) && anyNA(sigmaphi)) sigmaphi <- NULL if (!is.null(mu) && anyNA(mu)) mu <- NULL ## Weighting options (only available for global fitting) if (ncol(data) >= 3 && weights && !global_fit) wi <- (1 / data[ ,3]^2) / sum(1 / data[ ,3]^2) else wi <- rep(1, times = nrow(data)) ## remove rows with NA if (anyNA(data)) { data <- data[stats::complete.cases(data), ] if (settings$verbose) message("[fit_SurfaceExposure()] NA values in 'data' were removed") } ## extract errors into separate variable if (ncol(data) >= 3 && !global_fit) error <- data[ ,3] else error <- NULL ## Take only the first to columns (depth, signal) if (ncol(data) > 2 && !global_fit) data <- data[ ,1:2] ## Data preprocessing ---- # set column names if (!global_fit) colnames(data) <- c("x", "y") else colnames(data) <- c("x", "y", "group") ## FITTING ---- ## Functions # w/o dose rate fun <- y ~ exp(-sigmaphi * age * 365.25*24*3600 * exp(-mu * x)) fun_global <- y ~ exp(-sigmaphi * age[group] * 365.25*24*3600 * exp(-mu * x)) # w/ dose rate (Sohbati et al. 2012, eq 12) if (!is.null(Ddot)) Ddot <- Ddot / 1000 / 365.25 / 24 / 60 / 60 fun_w_dr <- y ~ (sigmaphi * exp(-mu * x) * exp(-(age * 365.25*24*3600) * (sigmaphi * exp(-mu * x) + Ddot/D0)) + Ddot/D0) / (sigmaphi * exp(-mu * x) + Ddot/D0) fun_global_w_dr <- y ~ (sigmaphi * exp(-mu * x) * exp(-(age[group] * 365.25*24*3600) * (sigmaphi * exp(-mu * x) + Ddot/D0)) + Ddot/D0) / (sigmaphi * exp(-mu * x) + Ddot/D0) ## start parameter start <- list(sigmaphi = if (is.null(sigmaphi)) 5.890e-09 else NULL, mu = if (is.null(mu)) 1 else NULL, age = if (is.null(age)) 2 else NULL) start <- .rm_NULL_elements(start) ## fitting boundaries lower <- list(sigmaphi = if (is.null(sigmaphi)) -Inf else NULL, mu = if (is.null(mu)) 0 else NULL, age = if (is.null(age)) 0 else NULL) upper <- list(sigmaphi = if (is.null(sigmaphi)) Inf else NULL, mu = if (is.null(mu)) Inf else NULL, age = if (is.null(age)) Inf else NULL) ## Decision tree which of the functions to use if (!is.null(Ddot) && !is.null(D0)) { if (global_fit) use_fun <- fun_global_w_dr else use_fun <- fun_w_dr } else { if (global_fit) use_fun <- fun_global else use_fun <- fun } # (un)constrained fitting fit <- tryCatch({ suppressWarnings(minpack.lm::nlsLM(formula = use_fun, data = data, start = start, lower = unlist(lower), upper = unlist(upper), weights = wi)) }, error = function(e) { e } ) # return NULL if fitting failed if (!inherits(fit, "simpleError") && !inherits(try(summary(fit), silent = TRUE), "try-error")) { # Extract coefficients coef <- as.data.frame(coef(summary(fit))) } else { if (settings$verbose) .throw_message("Unable to fit the data. ", "Original error from minpack.lm::nlsLM(): ", fit$message) # Fill with NA values coef <- data.frame( "Estimate" = rep(NA, 3), "Std. Error" = rep(NA, 3), row.names = c("age", "sigmaphi", "mu"), check.names = FALSE ) } ## RESULTS ---- summary <- data.frame( age = if (is.null(age)) coef["age", "Estimate"] else age, age_error = coef["age", "Std. Error"], sigmaphi = if (is.null(sigmaphi)) coef["sigmaphi", "Estimate"] else sigmaphi, sigmaphi_error = coef["sigmaphi", "Std. Error"], mu = if (is.null(mu)) coef["mu", "Estimate"] else mu, mu_error = coef["mu", "Std. Error"] ) ## Create RLum.Results object results <- set_RLum(class = "RLum.Results", originator = "fit_SurfaceExposure", data = list(summary = summary, data = data, fit = fit, args = as.list(sys.call()[-1]), call = sys.call()), info = settings$info ) ## PLOT ---- if (plot) { # remove $group column for easier data handling if (global_fit) data$group <- NULL # re-order x,y columns if (coord_flip) data <- data.frame(data$y, data$x) # set default plot settings plot_settings <- list( x = data, main = "", pch = 21, col = "black", bg = "red", xlab = if (!coord_flip) "Depth (mm)" else "OSL intensity (Ln/Tn)", ylab = if (!coord_flip) "OSL intensity (Ln/Tn)" else "Depth (mm)", cex = 1.0, lty = 1, lwd = 1, log = "", ylim = if (!coord_flip) range(pretty(data[ ,2])) else rev(range(pretty(data[ ,2]))), xlim = range(pretty(data[ ,1])) ) # override default settings with valid arguments in ... plot_settings <- modifyList(plot_settings, list(...)) valid_settings <- c(names(par()), formalArgs("title"), formalArgs("plot.default"), "cex") plot_settings <- plot_settings[names(plot_settings) %in% valid_settings] # set global plot settings par(cex = plot_settings$cex) if (grepl("y", plot_settings$log)) { plot_settings$ylim[1] <- 0.01 pos.idx <- which(data[, 2] > 0) error <- error[pos.idx] plot_settings$x <- data[pos.idx, ] } ## create main plot do.call("plot", modifyList(plot_settings, list(x = NA))) ## add data points if (!global_fit) { points(data, type = "p", pch = plot_settings$pch, bg = plot_settings$bg, col = plot_settings$col) } else { Map(function(d, i) { points(d, type = "p", pch = plot_settings$pch, bg = i, col = plot_settings$col) }, split(results$data, results$data$group), 1:length(unique(results$data$group))) } ## add fitted curve if (!inherits(fit, "error") && !inherits(fit, "simpleError")) { if (coord_flip) { oldx <- data[ ,2] } else { oldx <- data[ ,1] } newx <- seq(range(oldx)[1], range(oldx)[2], length.out = 10000) newy <- suppressWarnings(predict(fit, newdata = list(x = newx))) if (coord_flip) { tmp <- newx newx <- newy newy <- tmp } if (!global_fit) { points(newx, newy, type = "l", col = ifelse("line_col" %in% names(list(...)), list(...)$line_col, "blue"), lty = ifelse("line_lty" %in% names(list(...)), list(...)$line_lty, 1), lwd = ifelse("line_lwd" %in% names(list(...)), list(...)$line_lwd, 1)) } else { for (i in 1:length(data_list)) { seg <- seq(i * 101 - 100, 10000, nrow(data)) points(newx[seg], newy[seg], type = "l", col = ifelse("line_col" %in% names(list(...)), list(...)$line_col, i), lty = ifelse("line_lty" %in% names(list(...)), list(...)$line_lty, 1), lwd = ifelse("line_lwd" %in% names(list(...)), list(...)$line_lwd, 1)) } } } else { legend("center", legend = "Unable to fit the data", adj = 0.05) } # add error bars (if weighted fit) if (!is.null(error) && error_bars) { segments(plot_settings$x[ ,1], plot_settings$x[ ,2] - error, plot_settings$x[ ,1], plot_settings$x[ ,2] + error) } # add formula if (legend && !inherits(fit, "simpleError")) { formula_text <- paste0("y = ", as.character(fit$m$formula())[3]) if (!is.null(age)) { if (!global_fit) { formula_text <- gsub("age", age, formula_text) } else { formula_text <- gsub("age", paste0("[", paste(age, collapse = "|"), "]"), formula_text) formula_text <- gsub("\\[group\\]", "", formula_text) } } if (!is.null(sigmaphi)) formula_text <- gsub("sigmaphi", sigmaphi, formula_text) if (!is.null(mu)) formula_text <- gsub("mu", mu, formula_text) legend(ifelse(coord_flip, "bottomleft", "bottomright"), legend = formula_text, cex = 0.8, bty = "n") } } ## CONSOLE ---- if (settings$verbose) { cat("\n [fit_SurfaceExposure()] \n\n") if (!global_fit) { ## STANDARD OUTPUT cat(" Estimated paramater(s):\n", "-----------------------\n") if (is.null(age)) cat(paste0(" age (a):\t", signif(results$summary$age, 3), " \u00B1 ", signif(results$summary$age_error, 3), "\n")) if (is.null(sigmaphi)) cat(paste0(" sigmaphi:\t", signif(results$summary$sigmaphi, 3), " \u00B1 ", signif(results$summary$sigmaphi_error, 3), "\n")) if (is.null(mu)) cat(paste0(" mu:\t\t", signif(results$summary$mu, 3), " \u00B1 ", signif(results$summary$mu_error, 3), "\n")) cat("\n") } else { ## GLOBAL FIT OUTPUT cat(" Shared estimated paramater(s):\n", "-----------------------\n") if (is.null(sigmaphi)) cat(paste0(" sigmaphi:\t", signif(unique(results$summary$sigmaphi), 3), " \u00B1 ", signif(unique(results$summary$sigmaphi_error), 3), "\n")) if (is.null(mu)) cat(paste0(" mu:\t\t", signif(unique(results$summary$mu), 3), " \u00B1 ", signif(unique(results$summary$mu_error), 3), "\n")) cat("\n") } ## STANDARD OUTPUT cat(" Fixed parameters(s):\n", "--------------------\n") if (!is.null(age)) cat(paste0(" age (a):\t", .collapse(age, quote = FALSE), "\n")) if (!is.null(sigmaphi)) cat(paste0(" sigmaphi:\t", sigmaphi, "\n")) if (!is.null(mu)) cat(paste0(" mu:\t\t", mu, "\n")) cat("\n") if (!is.null(age)) { message(paste0("To apply the estimated parameters to a sample of unknown age run:\n\n", "fit_SurfaceExposure(data = ", capture.output(results$args[[1]]), ", sigmaphi = ", signif(unique(results$summary$sigmaphi), 3), ", mu = ", signif(unique(results$summary$mu), 3), ")\n\n")) } } ## EXIT ---- return(results) } Luminescence/R/calc_AverageDose.R0000644000176200001440000004003614762554470016400 0ustar liggesusers#' @title Calculate the Average Dose and the dose rate dispersion #' #' @description #' This functions calculates the Average Dose and its extrinsic dispersion, #' estimating the standard errors by bootstrapping based on the Average #' Dose Model by Guerin et al., 2017. #' #' **`sigma_m`**\cr #' #'The program requires the input of a known value of `sigma_m`, #'which corresponds to the intrinsic overdispersion, as determined #'by a dose recovery experiment. Then the dispersion in doses (`sigma_d`) #'will be that over and above `sigma_m` (and individual uncertainties `sigma_wi`). #' #' @param data [RLum.Results-class] or [data.frame] (**required**): #' for [data.frame]: two columns with `De` `(data[,1])` and `De error` `(values[,2])` #' #' @param sigma_m [numeric] (**required**): #' the overdispersion resulting from a dose recovery #' experiment, i.e. when all grains have received the same dose. Indeed in such a case, any #' overdispersion (i.e. dispersion on top of analytical uncertainties) is, by definition, an #' unrecognised measurement uncertainty. #' #' @param Nb_BE [integer] (*with default*): #' sample size used for the bootstrapping #' #' @param na.rm [logical] (*with default*): #' exclude NA values from the data set prior to any further operation. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param ... further arguments that can be passed to [graphics::hist]. As three plots #' are returned all arguments need to be provided as [list], #' e.g., `main = list("Plot 1", "Plot 2", "Plot 3")`. #' Note: not all arguments of `hist` are #' supported, but the output of `hist` is returned and can be used of own plots. \cr #' #' Further supported arguments: `mtext` ([character]), `rug` (`TRUE/FALSE`). #' #' @section Function version: 0.1.5 #' #' @author Claire Christophe, IRAMAT-CRP2A, Université de Nantes (France), #' Anne Philippe, Université de Nantes, (France), #' Guillaume Guérin, IRAMAT-CRP2A, Université Bordeaux Montaigne, (France), #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [read.table], [graphics::hist] #' #' @return The function returns numerical output and an (*optional*) plot. #' #' -----------------------------------\cr #' `[ NUMERICAL OUTPUT ]` \cr #' -----------------------------------\cr #' **`RLum.Results`**-object\cr #' #' **slot:** **`@data`** \cr #' #' `[.. $summary : data.frame]`\cr #' #' \tabular{lll}{ #' **Column** \tab **Type** \tab **Description**\cr #' AVERAGE_DOSE \tab [numeric] \tab the obtained average dose\cr #' AVERAGE_DOSE.SE \tab [numeric] \tab the average dose error \cr #' SIGMA_D \tab [numeric]\tab sigma \cr #' SIGMA_D.SE \tab [numeric]\tab standard error of the sigma \cr #' IC_AVERAGE_DOSE.LEVEL \tab [character]\tab confidence level average dose\cr #' IC_AVERAGE_DOSE.LOWER \tab [character]\tab lower quantile of average dose \cr #' IC_AVERAGE_DOSE.UPPER \tab [character]\tab upper quantile of average dose\cr #' IC_SIGMA_D.LEVEL \tab [integer]\tab confidence level sigma\cr #' IC_SIGMA_D.LOWER \tab [character]\tab lower sigma quantile\cr #' IC_SIGMA_D.UPPER \tab [character]\tab upper sigma quantile\cr #' L_MAX \tab [character]\tab maximum likelihood value #' } #' #' `[.. $dstar : matrix]` \cr #' #' Matrix with bootstrap values\cr #' #' `[.. $hist : list]`\cr #' #' Object as produced by the function histogram #' #' ------------------------\cr #' `[ PLOT OUTPUT ]`\cr #' ------------------------\cr #' #' The function returns two different plot panels. #' #' (1) An abanico plot with the dose values #' #' (2) A histogram panel comprising 3 histograms with the equivalent dose and the bootstrapped average #' dose and the sigma values. #' #' @references #' Guerin, G., Christophe, C., Philippe, A., Murray, A.S., Thomsen, K.J., Tribolo, C., Urbanova, P., #' Jain, M., Guibert, P., Mercier, N., Kreutzer, S., Lahaye, C., 2017. Absorbed dose, equivalent dose, #' measured dose rates, and implications for OSL age estimates: Introducing the Average Dose Model. #' Quaternary Geochronology 1-32. doi:10.1016/j.quageo.2017.04.002 #' #' **Further reading**\cr #' #' Efron, B., Tibshirani, R., 1986. Bootstrap Methods for Standard Errors, Confidence Intervals, #' and Other Measures of Statistical Accuracy. Statistical Science 1, 54-75. #' #' @note This function has beta status! #' #' @keywords datagen #' #' @examples #' #'##Example 01 using package example data #'##load example data #'data(ExampleData.DeValues, envir = environment()) #' #'##calculate Average dose #'##(use only the first 56 values here) #'AD <- calc_AverageDose(ExampleData.DeValues$CA1[1:56,], sigma_m = 0.1) #' #'##plot De and set Average dose as central value #'plot_AbanicoPlot( #' data = ExampleData.DeValues$CA1[1:56,], #' z.0 = AD$summary$AVERAGE_DOSE) #' #' @md #' @export calc_AverageDose <- function( data, sigma_m, Nb_BE = 500, na.rm = TRUE, plot = TRUE, verbose = TRUE, ... ) { .set_function_name("calc_AverageDose") on.exit(.unset_function_name(), add = TRUE) # Define internal functions ------------------------------------------------------------------ # function which compute mle's for data (yu,su) .mle <- function(yu , su, wu.start, sigma_d.start, delta.start){ ##set start parameters, otherwise the function will try to get them ##from the parent environment, which is not wanted ... delta.temp <- 0 sigma_d.temp <- 0 sigma_d <- sigma_d.start delta <- delta.start wu <- wu.start j <- 0 iteration_limit <- 10000 ##loop until convergence or the iteration limit is reached while(j < iteration_limit) { ##code by Claire; in the 2nd and 3rd line delta and sigma_d are replaced by delta.temp and ##sigma_d.temp; otherwise the iteration and its test for convergence will not work delta.temp <- exp( sum(wu*(yu+(0.5*(sigma_d^2)))) / sum(wu) ) sigma_d.temp <- sigma_d*sum( (wu^2) * (yu-log(delta.temp)+0.5*sigma_d^2)^2) / (sum( wu*(1+yu-log(delta.temp)+0.5*sigma_d^2))) wu <- 1/(sigma_d.temp^2 + su^2) ##break loop if convergence is reached ... if not update values if(is.infinite(delta.temp) | is.infinite(sigma_d.temp)){ .throw_warning("Inf/NaN values produced by .mle(), NA returned") return(c(NA,NA)) }else if ( ##compare values ... if they are equal we have convergence all( c(round(c(delta, sigma_d), 4)) == c(round(c(delta.temp, sigma_d.temp), 4)) ) ) { break() } else{ ##update input values delta <- delta.temp sigma_d <- sigma_d.temp j <- j + 1 } } ##if no convergence was reached stop entire function; no stop as this may happen during the ##bootstraping procedure if(j == iteration_limit){ .throw_warning("No convergence reached by .mle() after ", iteration_limit, " iterations, NA returned") return(c(NA,NA)) }else{ return(c(round(c(delta, sigma_d),4))) } } .CredibleInterval <- function(a_chain, level = 0.95) { ## Aim : estimation of the shortest credible interval of the sample of parameter a # A level % credible interval is an interval that keeps N*(1-level) elements of the sample # The level % credible interval is the shortest of all those intervals. ## Parameters : # a_chain : the name of the values of the parameter a # level : the level of the credible interval expected ## Returns : the level and the endpoints sorted_sample <- sort(a_chain) N <- length(a_chain) OutSample <- N * (1 - level) I <- cbind(sorted_sample[1:(OutSample + 1)] , sorted_sample[(N - OutSample):N]) l <- I[, 2] - I[, 1] # length of intervals i <- which.min(l) # look for the shortest interval return(c( level = level, CredibleIntervalInf = I[i, 1], CredibleIntervalSup = I[i, 2] )) } ##//////////////////////////////////////////////////////////////////////////////////////////////// ##HERE THE MAIN FUNCTION STARTS ##//////////////////////////////////////////////////////////////////////////////////////////////// # Integrity checks ---------------------------------------------------------------------------- .validate_class(data, c("RLum.Results", "data.frame")) .validate_positive_scalar(sigma_m) .validate_positive_scalar(Nb_BE, int = TRUE) # Data preparation ----------------------------------------------------------------------------- if (inherits(data, "RLum.Results")) { data <- get_RLum(data) } ## check that we actually have data if (length(data) == 0 || nrow(data) == 0) { .throw_message("'data' contains no data, NULL returned") return(NULL) } ##problem: the entire code refers to column names the user may not provide... ## >> to avoid changing the entire code, the data will shape to a format that ## >> fits to the code ##check for number of columns if(ncol(data)<2){ .throw_message("'data' contains < 2 columns, NULL returned") return(NULL) } ##used only the first two colums if(ncol(data)>2){ data <- data[,1:2] .throw_warning("'data' contains > 2 columns, ", "only the first 2 columns were used") } ##exclude NA values if (anyNA(data)) { data <- na.exclude(data) .throw_warning("NA values in 'data' detected, rows with NA values removed") } if (any(data[, 1] <= 0)) { data <- data[data[, 1] > 0, ] .throw_warning("Non-positive values in 'data' detected, rows removed") } ##check data set if(nrow(data) == 0){ .throw_message("After NA removal, nothing is left from the data set, ", "NULL returned") return(NULL) } ##data becomes to dat (thus, make the code compatible with the code by Claire and Anne) dat <- data ##preset column names, as the code refers to it colnames(dat) <- c("cd", "se") # Pre calculation ----------------------------------------------------------------------------- ##calculate yu = log(CD) and su = se(logCD) yu <- log(dat$cd) su <- sqrt((dat$se / dat$cd) ^ 2 + sigma_m ^ 2) # calculate starting values and weights sigma_d <- sd(dat$cd) / mean(dat$cd) ## sigma_d may be NA if there is only one measurement (NA values in the ## data have already been excluded prior to this) if (is.na(sigma_d)) sigma_d <- 0 wu <- 1 / (sigma_d ^ 2 + su ^ 2) delta <- mean(dat$cd) n <- length(yu) ##terminal output if (verbose) { cat("\n[calc_AverageDose()]") cat("\n\n>> Initialisation <<") cat(paste("\nn:\t\t", n)) cat(paste("\ndelta:\t\t", delta)) cat(paste("\nsigma_m:\t", sigma_m)) cat(paste("\nsigma_d:\t", sigma_d)) } # mle's computation dhat <- .mle(yu, su, wu.start = wu, sigma_d.start = sigma_d, delta.start = delta) delta <- dhat[1] sigma_d <- dhat[2] wu <- 1 / (sigma_d ^ 2 + su ^ 2) # maximum log likelihood llik <- sum(-log(sqrt(2 * pi / wu)) - (wu / 2) * ((yu - log(delta) + 0.5 * (sigma_d ^ 2)) ^ 2)) ##terminal output if(verbose){ cat(paste("\n\n>> Calculation <<\n")) cat(paste("log likelihood:\t", round(llik, 4))) } # standard errors obtained by bootstrap, we refer to Efron B. and Tibshirani R. (1986) # est ce qu'il faut citer l'article ici ou tout simplement dans la publi ? n <- length(yu) ##calculate dstar ##set matrix for I I <- matrix(data = sample(x = 1:n, size = n * Nb_BE, replace = TRUE), ncol = Nb_BE) ##iterate over the matrix and produce dstar ##(this looks a little bit complicated, but is far more efficient) dstar <- t(vapply( X = 1:Nb_BE, FUN = function(x) { .mle(yu[I[, x]], su[I[, x]], sigma_d.start = sigma_d, delta.start = delta, wu.start = wu) }, FUN.VALUE = vector(mode = "numeric", length = 2) )) ##exclude NA values dstar <- na.exclude(dstar) ## calculate confidence intervals IC_delta <- .CredibleInterval(dstar[,1],0.95) IC_sigma_d <- .CredibleInterval(dstar[,2],0.95) IC <- rbind(IC_delta, IC_sigma_d) # standard errors sedelta <- sqrt ((1/(Nb_BE-1))*sum((dstar[,1]-mean(dstar[,1]))^2)) sesigma_d <- sqrt ((1/(Nb_BE-1))*sum((dstar[,2]-mean(dstar[,2]))^2)) ##Terminal output if (verbose) { cat("\nconfidence intervals\n") cat("--------------------------------------------------\n") print(t(IC), print.gap = 6, digits = 4) cat("--------------------------------------------------\n") cat(paste("\n>> Results <<\n")) cat("----------------------------------------------------------\n") cat(paste( "Average dose:\t ", round(delta, 4), "\tse(Aver. dose):\t", round(sedelta, 4) )) if(sigma_d == 0){ cat(paste( "\nsigma_d:\t ", round(sigma_d, 4), "\t\tse(sigma_d):\t", round(sesigma_d, 4) )) }else{ cat(paste( "\nsigma_d:\t ", round(sigma_d, 4), "\tse(sigma_d):\t", round(sesigma_d, 4) )) } cat("\n----------------------------------------------------------\n") } ##compile final results data frame results_df <- data.frame( AVERAGE_DOSE = delta, AVERAGE_DOSE.SE = sedelta, SIGMA_D = sigma_d, SIGMA_D.SE = sesigma_d, IC_AVERAGE_DOSE.LEVEL = IC_delta[1], IC_AVERAGE_DOSE.LOWER = IC_delta[2], IC_AVERAGE_DOSE.UPPER = IC_delta[3], IC_SIGMA_D.LEVEL = IC_sigma_d[1], IC_SIGMA_D.LOWER = IC_sigma_d[2], IC_SIGMA_D.UPPER = IC_sigma_d[3], L_MAX = llik, row.names = NULL ) # Plotting ------------------------------------------------------------------------------------ ##the plotting (enable/disable) is controlled below, as with this ##we always get a histogram object ##set data list data_list <- list(dat$cd, dstar[,1], dstar[,2]) ##preset plot arguments plot_settings <- list( breaks = list("FD", "FD", "FD"), probability = list(FALSE, TRUE, TRUE), main = list( "Observed: Equivalent dose", "Bootstrapping: Average Dose", "Bootstrapping: Sigma_d"), xlab = list( "Equivalent dose [a.u.]", "Average dose [a.u.]", "Sigma_d"), axes = list(TRUE, TRUE, TRUE), col = NULL, border = NULL, density = NULL, freq = NULL, mtext = list( paste("n = ", length(data_list[[1]])), paste("n = ", length(data_list[[2]])), paste("n = ", length(data_list[[3]]))), rug = list(TRUE, TRUE, TRUE) ) ##modify this list by values the user provides ##expand all elements in the list ##problem: the user might provid only one item, then the code will break plot_settings.user <- lapply(list(...), function(x){ rep(x, length = 3) }) ##modify plot_settings <- modifyList(x = plot_settings.user, val = plot_settings) ##get change par setting and reset on exit if(plot) { par.default <- par()$mfrow on.exit(par(mfrow = par.default), add = TRUE) par(mfrow = c(1,3)) } ##Produce plots ##(1) - histogram of the observed equivalent dose ##(2) - histogram of the bootstrapped De ##(3) - histogram of the bootstrapped sigma_d ##with lapply we get fetch also the return of hist, they user might want to use this later hist <- lapply(1:length(data_list), function(x){ temp <- suppressWarnings(hist( x = data_list[[x]], breaks = if (NROW(data_list[[x]]) > 1) plot_settings$breaks[[x]] else 1, probability = plot_settings$probability[[x]], main = plot_settings$main[[x]], xlab = plot_settings$xlab[[x]], axes = plot_settings$axes[[x]], freq = plot_settings$freq[[x]], plot = plot, col = plot_settings$col[[x]], border = plot_settings$border[[x]], density = plot_settings$density[[x]] )) if (plot) { ##add rug if (plot_settings$rug[[x]]) { graphics::rug(data_list[[x]]) } ##plot mtext mtext(side = 3, text = plot_settings$mtext[[x]], cex = par()$cex) } return(temp) }) # Return -------------------------------------------------------------------------------------- set_RLum( class = "RLum.Results", data = list( summary = results_df, dstar = as.data.frame(dstar), hist = hist ), info = list(call = sys.call()) ) } Luminescence/R/write_R2BIN.R0000644000176200001440000011567614762554470015274 0ustar liggesusers#' @title Export Risoe.BINfileData into Risø BIN/BINX-file #' #' @description Exports a `Risoe.BINfileData` object in a `*.bin` or `*.binx` file that can be #' opened by the Analyst software or other Risø software. #' #' @details #' The structure of the exported binary data follows the data structure #' published in the Appendices of the *Analyst* manual p. 42. #' #' If #' `LTYPE`, `DTYPE` and `LIGHTSOURCE` are not of type #' [character], no transformation into numeric values is done. #' #' @param object [Risoe.BINfileData-class] (**required**): #' input object to be stored in a bin file. #' #' @param file [character] (**required**): #' file name and path of the output file #' #' - `[WIN]`: `write_R2BIN(object, "C:/Desktop/test.bin")` #' - `[MAC/LINUX]`: `write_R2BIN("/User/test/Desktop/test.bin")` #' #' @param version [character] (*optional*): #' version number for the output file. If no value is provided, the highest #' version number from the [Risoe.BINfileData-class] is taken automatically. #' #' **Note:** #' This argument can be used to convert BIN-file versions. #' #' @param compatibility.mode [logical] (*with default*): #' this option recalculates the position values if necessary and set the max. #' value to 48. The old position number is appended as comment (e.g., 'OP: 70). #' This option accounts for potential compatibility problems with the Analyst software. #' It further limits the maximum number of points per curve to 9,999. If a curve contains more #' data the curve data get binned using the smallest possible bin width. #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param txtProgressBar [logical] (*with default*): #' enable/disable the progress bar. Ignored if `verbose = FALSE`. #' #' @return Write a binary file and returns the name and path of the file as [character]. #' #' @note #' The function just roughly checks the data structures. The validity of #' the output data depends on the user. #' #' The validity of the file path is not further checked. BIN-file conversions #' using the argument `version` may be a lossy conversion, depending on the #' chosen input and output data (e.g., conversion from version 08 to 07 to 06 to 05 to 04 or 03). #' #' **Warning** #' #' Although the coding was done carefully, it seems that the BIN/BINX-files #' produced by Risø DA 15/20 TL/OSL readers slightly differ on the byte level. #' No obvious differences are observed in the METADATA, however, the #' BIN/BINX-file may not fully compatible, at least not similar to the ones #' directly produced by the Risø readers! #' #' @section Function version: 0.5.4 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @note #' ROI definitions (introduced in BIN-file version 8) are not supported! #' There are furthermore ignored by the function [read_BIN2R]. #' #' @seealso [read_BIN2R], [Risoe.BINfileData-class], [writeBin] #' #' @references #' DTU Nutech, 2016. The Sequence Editor, Users Manual, February, 2016. #' [https://www.fysik.dtu.dk]() #' #' @keywords IO #' #' @examples #' ##load example dataset #' file <- system.file("extdata/BINfile_V8.binx", package = "Luminescence") #' temp <- read_BIN2R(file) #' #' ##create temporary file path #' ##(for usage replace by own path) #' temp_file <- tempfile(pattern = "output", fileext = ".binx") #' #' ##export to temporary file path #' write_R2BIN(temp, file = temp_file) #' #' @md #' @export write_R2BIN <- function( object, file, version, compatibility.mode = FALSE, verbose = TRUE, txtProgressBar = TRUE ) { .set_function_name("write_R2BIN") on.exit(.unset_function_name(), add = TRUE) # Config ------------------------------------------------------------------ ##set supported BIN format version VERSION.supported <- as.raw(c(3, 4, 5, 6, 7, 8)) ## Integrity tests -------------------------------------------------------- .validate_class(object, "Risoe.BINfileData") .validate_class(file, "character") .validate_logical_scalar(verbose) .validate_logical_scalar(txtProgressBar) ## check if it fulfills the latest definition ... if(ncol(object@METADATA) != ncol(set_Risoe.BINfileData()@METADATA)){ .throw_error("Your Risoe.BINfileData object is not compatible with the ", "latest specification of this S4-class object. You are ", "probably trying to export a Risoe.BINfileData from your ", "workspace you produced manually or with an old version. ", "Please re-import the BIN-file using function read_BIN2R().") } # Check Risoe.BINfileData Struture ---------------------------------------- ##check whether the BIN-file DATA slot contains more than 9999 records; needs to be run all the time temp_check <- vapply(object@DATA, function(x){ if(length(x) > 9999){ TRUE }else{ FALSE } }, FUN.VALUE = logical(1)) ##force compatibility if(compatibility.mode && any(temp_check)){ .throw_warning("Compatibility mode selected: some data sets have ", "more than 9,999 points and will be binned") ##BIN data to reduce amount of data if the BIN-file is too long object@DATA <- lapply(object@DATA, function(x){ if(length(x) > 9999){ ##we want to have a minimum binning (smallest number possible) bin_width <- ceiling(length(x)/9999) ##it should be symmetric, thus, remove values if((length(x)/bin_width)%%2 != 0){ x <- x[-length(x)] } ##create matrix and return colSums(matrix(x, nrow = bin_width)) }else{ x } }) ##reset temp_check temp_check <- FALSE ##get new number of points temp_NPOINTS <- lengths(object@DATA) ##correct LENGTH object@METADATA[["LENGTH"]] <- object@METADATA[["LENGTH"]] - (4 * object@METADATA[["NPOINTS"]]) + (temp_NPOINTS * 4) ##correct PREVIOUS object@METADATA[["PREVIOUS"]] <- c(0,object@METADATA[["LENGTH"]][2:length(object@METADATA[["LENGTH"]])]) ##correct NPOINTS object@METADATA[["NPOINTS"]] <- temp_NPOINTS ##write comment object@METADATA[["COMMENT"]] <- paste(object@METADATA[["COMMENT"]], " - binned") } if(any(temp_check)) .throw_error(length(which(temp_check)), " out of ", length(temp_check), " records contain more than 9,999 data points. ", "This violates the BIN/BINX-file definition") ##remove rm(temp_check) ## UTF-8 conversion object@METADATA[["SAMPLE"]] <- base::iconv(object@METADATA[["SAMPLE"]], "latin1", "ASCII", sub="_") object@METADATA[["COMMENT"]] <- base::iconv(object@METADATA[["COMMENT"]], "latin1", "ASCII", sub="_") object@METADATA[["FNAME"]] <- base::iconv(object@METADATA[["FNAME"]], "latin1", "ASCII", sub="_") object@METADATA[["USER"]] <- base::iconv(object@METADATA[["USER"]], "latin1", "ASCII", sub="_") object@METADATA[["SEQUENCE"]] <- base::iconv(object@METADATA[["SEQUENCE"]], "latin1", "ASCII", sub="_") ##VERSION ##If missing version argument set to the highest value if(missing(version)){ version <- as.raw(max(as.numeric(object@METADATA[,"VERSION"]))) version.original <- version }else{ version.original <- as.raw(max(as.numeric(object@METADATA[,"VERSION"]))) version <- as.raw(version) object@METADATA[["VERSION"]] <- version ##Furthermore, entries length needed to be recalculated if(version.original != version){ ##stepping decision header.stepping <- switch( EXPR = as.character(version), "08" = 507, "07" = 447, "06" = 447, "05" = 423, "04" = 272, "03" = 272) object@METADATA[,"LENGTH"] <- vapply(1:nrow(object@METADATA), function(x){ header.stepping + 4 * object@METADATA[x,"NPOINTS"] }, numeric(1)) object@METADATA[,"PREVIOUS"] <- vapply(1:nrow(object@METADATA), function(x){ if(x == 1) 0 else header.stepping + 4 * object@METADATA[x-1,"NPOINTS"] }, numeric(1)) } } ##Check if the BINfile object contains of unsupported versions if((as.raw(object@METADATA[1,"VERSION"]) %in% VERSION.supported) == FALSE || version %in% VERSION.supported == FALSE){ ##show error message .throw_error("Writing BIN-files in format version (", object@METADATA[1, "VERSION"], ") is currently not supported, ", "supported version numbers are: ", .collapse(VERSION.supported)) } ##CHECK file name for version == 06 it has to be *.binx and correct for it if(version == 05 | version == 06 | version == 07 | version == 08){ ##grep file ending temp.file.name <- unlist(strsplit(file, "[:.:]")) ##*.bin? >> correct to binx if(temp.file.name[length(temp.file.name)]=="bin"){ temp.file.name[length(temp.file.name)] <- "binx" file <- paste(temp.file.name, collapse=".") } } ##SEQUENCE if (suppressWarnings(max(nchar(as.character(object@METADATA[,"SEQUENCE"]), type = "bytes"), na.rm = TRUE)) > 8) { .throw_error("Value in 'SEQUENCE' exceeds storage limit") } ##USER if (suppressWarnings(max(nchar(as.character(object@METADATA[,"USER"]), type = "bytes"), na.rm = TRUE)) > 8) { .throw_error("'USER' exceeds storage limit") } ##SAMPLE if (suppressWarnings(max(nchar(as.character(object@METADATA[,"SAMPLE"]), type = "bytes"), na.rm = TRUE)) > 20) { .throw_error("'SAMPLE' exceeds storage limit") } ## enables compatibility to the Analyst as the max value for POSITION becomes 48 if(compatibility.mode){ ##just do if position values > 48 if(max(object@METADATA[,"POSITION"])>48){ ##grep relevant IDs temp.POSITION48.id <- which(object@METADATA[,"POSITION"]>48) ##find unique values temp.POSITION48.unique <- unique(object@METADATA[temp.POSITION48.id,"POSITION"]) ##set translation vector starting from 1 and ending at 48 temp.POSITION48.new <- rep_len(1:48, length.out = length(temp.POSITION48.unique)) ##recaluate POSITION and update comment for(i in 1:length(temp.POSITION48.unique)){ object@METADATA[object@METADATA[,"POSITION"] == temp.POSITION48.unique[i],"COMMENT"] <- paste0(object@METADATA[object@METADATA[,"POSITION"] == temp.POSITION48.unique[i],"COMMENT"], "OP:",object@METADATA[object@METADATA[,"POSITION"] == temp.POSITION48.unique[i],"POSITION"]) object@METADATA[object@METADATA[,"POSITION"] == temp.POSITION48.unique[i],"POSITION"] <- temp.POSITION48.new[i] } } } ##COMMENT if(max(nchar(as.character(object@METADATA[,"COMMENT"]), type="bytes"))>80){ .throw_error("'COMMENT' exceeds storage limit") } # Translation Matrices ----------------------------------------------------- ##LTYPE LTYPE.TranslationMatrix <- matrix(NA, nrow=14, ncol=2) LTYPE.TranslationMatrix[,1] <- 0:13 LTYPE.TranslationMatrix[,2] <- c( "TL", "OSL", "IRSL", "M-IR", "M-VIS", "TOL", "TRPOSL", "RIR", "RBR", "USER", "POSL", "SGOSL", "RL", "XRF") ##DTYPE DTYPE.TranslationMatrix <- matrix(NA, nrow=8, ncol=2) DTYPE.TranslationMatrix[,1] <- 0:7 DTYPE.TranslationMatrix[,2] <- c("Natural","N+dose","Bleach", "Bleach+dose","Natural (Bleach)", "N+dose (Bleach)","Dose","Background") ##LIGHTSOURCE LIGHTSOURCE.TranslationMatrix <- matrix(NA, nrow=8, ncol=2) LIGHTSOURCE.TranslationMatrix[,1] <- 0:7 LIGHTSOURCE.TranslationMatrix[,2] <- c( "None", "Lamp", "IR diodes/IR Laser", "Calibration LED", "Blue Diodes", "White light", "Green laser (single grain)", "IR laser (single grain)" ) ##TRANSLATE VALUES IN METADATA ##LTYPE if(is(object@METADATA[1,"LTYPE"], "character") == TRUE | is(object@METADATA[1,"LTYPE"], "factor") == TRUE){ object@METADATA[,"LTYPE"]<- sapply(1:length(object@METADATA[,"LTYPE"]),function(x){ as.integer(LTYPE.TranslationMatrix[object@METADATA[x,"LTYPE"]==LTYPE.TranslationMatrix[,2],1]) }) } ##DTYPE if(is(object@METADATA[1,"DTYPE"], "character") == TRUE | is(object@METADATA[1,"DTYPE"], "factor") == TRUE){ object@METADATA[,"DTYPE"]<- sapply(1:length(object@METADATA[,"DTYPE"]),function(x){ as.integer(DTYPE.TranslationMatrix[object@METADATA[x,"DTYPE"]==DTYPE.TranslationMatrix[,2],1]) }) } ##LIGHTSOURCE if(is(object@METADATA[1,"LIGHTSOURCE"], "character") == TRUE | is(object@METADATA[1,"LIGHTSOURCE"], "factor") == TRUE){ object@METADATA[,"LIGHTSOURCE"]<- sapply(1:length(object@METADATA[,"LIGHTSOURCE"]),function(x){ as.integer(LIGHTSOURCE.TranslationMatrix[ object@METADATA[x,"LIGHTSOURCE"]==LIGHTSOURCE.TranslationMatrix[,2],1]) })} ##TIME object@METADATA[,"TIME"] <- vapply(1:length(object@METADATA[["TIME"]]),function(x){ if(is.na(object@METADATA[["TIME"]][x])){ "000000" }else{ as.character(gsub(":","",object@METADATA[["TIME"]][x])) } }, character(1)) ##TAG and SEL ##in TAG information on the SEL are storred, here the values are copied to TAG ##before export object@METADATA[,"TAG"] <- ifelse(object@METADATA[,"SEL"] == TRUE, 1, 0) # SET FILE AND VALUES ----------------------------------------------------- con <- file(file, "wb") on.exit(close(con), add = TRUE) ##get records n.records <- length(object@METADATA[,"ID"]) ## don't show the progress bar if not verbose if (!verbose) txtProgressBar <- FALSE if (verbose) { cat("\n[write_R2BIN()] Exporting ...") cat("\n path: ", dirname(file)) cat("\n file: ", .shorten_filename(basename(file))) cat("\n n_rec:", n.records) cat("\n") } ##set progressbar if(txtProgressBar) pb <- txtProgressBar(min=0,max=n.records, char="=", style=3) # LOOP ------------------------------------------------------------------- ID <- 1 if(version == 03 || version == 04){ ## version 03 and 04 ##start loop for export BIN data while(ID<=n.records) { ##VERSION writeBin(as.raw(object@METADATA[ID,"VERSION"]), con, size = 1, endian="little") ##stepping writeBin(raw(length=1), con, size = 1, endian="little") ##LENGTH, PREVIOUS, NPOINTS writeBin(c(as.integer(object@METADATA[ID,"LENGTH"]), as.integer(object@METADATA[ID,"PREVIOUS"]), as.integer(object@METADATA[ID,"NPOINTS"])), con, size = 2, endian="little") ##LTYPE writeBin(object@METADATA[ID,"LTYPE"], con, size = 1, endian="little") ##LOW, HIGH, RATE writeBin(c(as.double(object@METADATA[ID,"LOW"]), as.double(object@METADATA[ID,"HIGH"]), as.double(object@METADATA[ID,"RATE"])), con, size = 4, endian="little") ##TEMPERATURE, XCOORD, YCOORD, TOLDELAY; TOLON, TOLOFF writeBin(c(as.integer(object@METADATA[ID,"TEMPERATURE"]), as.integer(object@METADATA[ID,"XCOORD"]), as.integer(object@METADATA[ID,"YCOORD"]), as.integer(object@METADATA[ID,"TOLDELAY"]), as.integer(object@METADATA[ID,"TOLON"]), as.integer(object@METADATA[ID,"TOLOFF"])), con, size = 2, endian="little") ##POSITION, RUN writeBin(c(as.integer(object@METADATA[ID,"POSITION"]), as.integer(object@METADATA[ID,"RUN"])), con, size = 1, endian="little") ##TIME TIME_SIZE <- nchar(object@METADATA[ID,"TIME"]) writeBin(as.integer(TIME_SIZE), con, size = 1, endian="little") writeChar(object@METADATA[ID,"TIME"], con, nchars =TIME_SIZE, useBytes=TRUE, eos = NULL) if(6-TIME_SIZE>0){ writeBin(raw(length = c(6-TIME_SIZE)), con, size = 1, endian="little") } ##DATE writeBin(as.integer(6), con, size = 1 , endian="little") suppressWarnings(writeChar(as.character(object@METADATA[ID,"DATE"]), con, nchars = 6, useBytes=TRUE, eos = NULL)) ##SEQUENCE ##count number of characters SEQUENCE_SIZE <- as.integer( nchar(as.character(object@METADATA[["SEQUENCE"]][ID]), type = "bytes", keepNA = FALSE)) writeBin(SEQUENCE_SIZE, con, size = 1, endian="little") writeChar(as.character(object@METADATA[ID,"SEQUENCE"]), con, nchars = SEQUENCE_SIZE, useBytes=TRUE, eos = NULL) ##stepping if(8-SEQUENCE_SIZE>0){ writeBin(raw(length = (8-SEQUENCE_SIZE)), con, size = 1, endian="little") } ##USER USER_SIZE <- as.integer(nchar(as.character(object@METADATA[ID,"USER"]), type="bytes")) writeBin(USER_SIZE, con, size = 1, endian="little") writeChar(as.character(object@METADATA[ID,"USER"]), con, nchars = USER_SIZE, useBytes=TRUE, eos = NULL) ##stepping if(8-USER_SIZE>0){ writeBin(raw(length = (8-USER_SIZE)), con, size = 1, endian="little") } ##DTYPE writeBin(object@METADATA[ID,"DTYPE"], con, size = 1, endian="little") ##IRR_TIME writeBin(as.double(object@METADATA[ID,"IRR_TIME"]), con, size = 4, endian="little") ##IRR_TYPE, IRR_UNIT writeBin(c(object@METADATA[ID,"IRR_TYPE"], object@METADATA[ID,"IRR_UNIT"]), con, size = 1, endian="little") ##BL_TIME writeBin(as.double(object@METADATA[ID,"BL_TIME"]), con, size = 4, endian="little") ##BL_UNIT writeBin(as.integer(object@METADATA[ID,"BL_UNIT"]), con, size = 1, endian="little") ##AN_TEMP, AN_TIME, NORM1, NORM2, NORM2, BG writeBin(c(as.double(object@METADATA[ID,"AN_TEMP"]), as.double(object@METADATA[ID,"AN_TIME"]), as.double(object@METADATA[ID,"NORM1"]), as.double(object@METADATA[ID,"NORM2"]), as.double(object@METADATA[ID,"NORM3"]), as.double(object@METADATA[ID,"BG"])), con, size = 4, endian="little") ##SHIFT writeBin(as.integer(object@METADATA[ID,"SHIFT"]), con, size = 2, endian="little") ##SAMPLE SAMPLE_SIZE <- as.integer(nchar(as.character(object@METADATA[ID,"SAMPLE"]), type="bytes")) ##avoid problems with empty sample names if(SAMPLE_SIZE == 0){ SAMPLE_SIZE <- as.integer(2) object@METADATA[ID,"SAMPLE"] <- " " } writeBin(SAMPLE_SIZE, con, size = 1, endian="little") writeChar(as.character(object@METADATA[ID,"SAMPLE"]), con, nchars = SAMPLE_SIZE, useBytes=TRUE, eos = NULL) if((20-SAMPLE_SIZE)>0){ writeBin(raw(length = (20-SAMPLE_SIZE)), con, size = 1, endian="little") } ##COMMENT COMMENT_SIZE <- as.integer(nchar(as.character(object@METADATA[ID,"COMMENT"]), type="bytes")) ##avoid problems with empty comments if(COMMENT_SIZE == 0){ COMMENT_SIZE <- as.integer(2) object@METADATA[ID,"COMMENT"] <- " " } writeBin(COMMENT_SIZE, con, size = 1, endian="little") suppressWarnings(writeChar(as.character(object@METADATA[ID,"COMMENT"]), con, nchars = COMMENT_SIZE, useBytes=TRUE, eos = NULL)) if((80-COMMENT_SIZE)>0){ writeBin(raw(length = c(80-COMMENT_SIZE)), con, size = 1, endian="little") } ##LIGHTSOURCE, SET, TAG writeBin(c(as.integer(object@METADATA[ID,"LIGHTSOURCE"]), as.integer(object@METADATA[ID,"SET"]), as.integer(object@METADATA[ID,"TAG"])), con, size = 1, endian="little") ##GRAIN writeBin(as.integer(object@METADATA[ID,"GRAIN"]), con, size = 2, endian="little") ##LPOWER writeBin(as.double(object@METADATA[ID,"LPOWER"]), con, size = 4, endian="little") ##SYSTEMID writeBin(as.integer(object@METADATA[ID,"SYSTEMID"]), con, size = 2, endian="little") ##Further distinction needed to fully support format version 03 and 04 separately if(version == 03){ ##RESERVED 1 if(length(object@.RESERVED) == 0 || version.original != version){ writeBin(raw(length=36), con, size = 1, endian="little") }else{ writeBin(object = object@.RESERVED[[ID]][[1]], con, size = 1, endian="little") } ##ONTIME, OFFTIME writeBin(c(as.integer(object@METADATA[ID,"ONTIME"]), as.integer(object@METADATA[ID,"OFFTIME"])), con, size = 4, endian="little") ##GATE_ENABLED writeBin(as.integer(object@METADATA[ID,"GATE_ENABLED"]), con, size = 1, endian="little") ##GATE_START, GATE_STOP writeBin(c(as.integer(object@METADATA[ID,"GATE_START"]), as.integer(object@METADATA[ID,"GATE_STOP"])), con, size = 4, endian="little") ##RESERVED 2 if(length(object@.RESERVED) == 0 || version.original != version){ writeBin(raw(length=1), con, size = 1, endian="little") }else{ writeBin(object@.RESERVED[[ID]][[2]], con, size = 1, endian="little") } } else { ##version 04 ##RESERVED 1 if(length(object@.RESERVED) == 0 || version.original != version){ writeBin(raw(length=20), con, size = 1, endian="little") } else{ writeBin(object@.RESERVED[[ID]][[1]], con, size = 1, endian="little") } ##CURVENO writeBin(as.integer(object@METADATA[ID,"CURVENO"]), con, size = 2, endian="little") ##TIMETICK writeBin(c(as.double(object@METADATA[ID,"TIMETICK"])), con, size = 4, endian="little") ##ONTIME, STIMPERIOD writeBin(c(as.integer(object@METADATA[ID,"ONTIME"]), as.integer(object@METADATA[ID,"STIMPERIOD"])), con, size = 4, endian="little") ##GATE_ENABLED writeBin(as.integer(object@METADATA[ID,"GATE_ENABLED"]), con, size = 1, endian="little") ##GATE_START, GATE_STOP writeBin(c(as.integer(object@METADATA[ID,"GATE_START"]), as.integer(object@METADATA[ID,"GATE_STOP"])), con, size = 4, endian="little") ##PTENABLED writeBin(as.integer(object@METADATA[ID,"PTENABLED"]), con, size = 1, endian="little") ##RESERVED 2 if(length(object@.RESERVED) == 0 || version.original != version){ writeBin(raw(length=10), con, size = 1, endian="little") } else { writeBin(object@.RESERVED[[ID]][[2]], con, size = 1, endian="little") } } ##DPOINTS writeBin(as.integer(unlist(object@DATA[ID])), con, size = 4, endian="little") #SET UNIQUE ID ID <- ID + 1 ##update progress bar if(txtProgressBar) setTxtProgressBar(pb, ID) } } ## ==================================================== ## version > 06 if(version == 05 | version == 06 | version == 07 | version == 08){ ##start loop for export BIN data while(ID<=n.records) { ##VERSION writeBin(as.raw(object@METADATA[ID,"VERSION"]), con, size = 1, endian="little") ##stepping writeBin(raw(length=1), con, size = 1, endian="little") ##LENGTH, PREVIOUS, NPOINTS writeBin(c(as.integer(object@METADATA[ID,"LENGTH"]), as.integer(object@METADATA[ID,"PREVIOUS"]), as.integer(object@METADATA[ID,"NPOINTS"])), con, size = 4, endian="little") if(version == 08){ writeBin(as.integer(object@METADATA[ID,"RECTYPE"]), con, size = 1, endian="little") } ##RUN, SET, POSITION, GRAINNUMBER, CURVENO, XCOORD, YCOORD writeBin(c(as.integer(object@METADATA[ID,"RUN"]), as.integer(object@METADATA[ID,"SET"]), as.integer(object@METADATA[ID,"POSITION"]), as.integer(object@METADATA[ID,"GRAINNUMBER"]), as.integer(object@METADATA[ID,"CURVENO"]), as.integer(object@METADATA[ID,"XCOORD"]), as.integer(object@METADATA[ID,"YCOORD"])), con, size = 2, endian="little") ##SAMPLE SAMPLE_SIZE <- as.integer(nchar(as.character(object@METADATA[ID,"SAMPLE"]), type="bytes")) ##avoid problems with empty sample names if(SAMPLE_SIZE == 0){ SAMPLE_SIZE <- as.integer(2) object@METADATA[ID,"SAMPLE"] <- " " } writeBin(SAMPLE_SIZE, con, size = 1, endian="little") writeChar(as.character(object@METADATA[ID,"SAMPLE"]), con, nchars = SAMPLE_SIZE, useBytes=TRUE, eos = NULL) if((20-SAMPLE_SIZE)>0){ writeBin(raw(length = (20-SAMPLE_SIZE)), con, size = 1, endian="little") } ##COMMENT COMMENT_SIZE <- as.integer(nchar(as.character(object@METADATA[ID,"COMMENT"]), type="bytes")) ##avoid problems with empty comments if(COMMENT_SIZE == 0){ COMMENT_SIZE <- as.integer(2) object@METADATA[ID,"COMMENT"] <- " " } writeBin(COMMENT_SIZE, con, size = 1, endian="little") writeChar(as.character(object@METADATA[ID,"COMMENT"]), con, nchars = COMMENT_SIZE, useBytes=TRUE, eos = NULL) if((80-COMMENT_SIZE)>0){ writeBin(raw(length = c(80-COMMENT_SIZE)), con, size = 1, endian="little") } ##Instrument and sequence characteristics ##SYSTEMID writeBin(as.integer(object@METADATA[ID,"SYSTEMID"]), con, size = 2, endian="little") ##FNAME FNAME_SIZE <- as.integer(nchar(as.character(object@METADATA[ID,"FNAME"]), type="bytes")) ##correct for case that this is of 0 length if(is.na(FNAME_SIZE) || length(FNAME_SIZE) == 0){FNAME_SIZE <- as.integer(0)} writeBin(FNAME_SIZE, con, size = 1, endian="little") if(FNAME_SIZE>0) { writeChar( as.character(object@METADATA[ID,"FNAME"]), con, nchars = FNAME_SIZE, useBytes = TRUE, eos = NULL ) } if((100-FNAME_SIZE)>0){ writeBin(raw(length = c(100-FNAME_SIZE)), con, size = 1, endian="little") } ##USER USER_SIZE <- as.integer(nchar(as.character(object@METADATA[ID,"USER"]), type="bytes")) writeBin(USER_SIZE, con, size = 1, endian="little") writeChar(as.character(object@METADATA[ID,"USER"]), con, nchars = USER_SIZE, useBytes=TRUE, eos = NULL) if((30-USER_SIZE)>0){ writeBin(raw(length = c(30-USER_SIZE)), con, size = 1, endian="little") } ##TIME TIME_SIZE <- nchar(object@METADATA[ID,"TIME"]) writeBin(as.integer(TIME_SIZE), con, size = 1, endian="little") writeChar(object@METADATA[ID,"TIME"], con, nchars =TIME_SIZE, useBytes=TRUE, eos = NULL) if(6-TIME_SIZE>0){ writeBin(raw(length = c(6-TIME_SIZE)), con, size = 1, endian="little") } ##DATE writeBin(as.integer(6), con, size = 1 , endian="little") suppressWarnings(writeChar(as.character(object@METADATA[ID,"DATE"]), con, nchars = 6, useBytes=TRUE, eos = NULL)) ##Analysis ##DTYPE writeBin(object@METADATA[ID,"DTYPE"], con, size = 1, endian="little") ##BL_TIME writeBin(as.double(object@METADATA[ID,"BL_TIME"]), con, size = 4, endian="little") ##BL_UNIT writeBin(as.integer(object@METADATA[ID,"BL_UNIT"]), con, size = 1, endian="little") ##NORM1, NORM2, NORM3, BG writeBin(c(as.double(object@METADATA[ID,"NORM1"]), as.double(object@METADATA[ID,"NORM2"]), as.double(object@METADATA[ID,"NORM3"]), as.double(object@METADATA[ID,"BG"])), con, size = 4, endian="little") ##SHIFT writeBin(as.integer(object@METADATA[ID,"SHIFT"]), con, size = 2, endian="little") ##TAG writeBin(c(as.integer(object@METADATA[ID,"TAG"])), con, size = 1, endian="little") ##RESERVED 1 if(length(object@.RESERVED) == 0 || version.original != version){ writeBin(raw(length=20), con, size = 1, endian="little") }else{ writeBin(object@.RESERVED[[ID]][[1]], con, size = 1, endian="little") } ##Measurement characteristics ##LTYPE writeBin(object@METADATA[ID,"LTYPE"], con, size = 1, endian="little") ##LIGHTSOURCE writeBin(c(as.integer(object@METADATA[ID,"LIGHTSOURCE"])), con, size = 1, endian="little") ##LIGHTPOWER, LOW, HIGH, RATE writeBin(c(as.double(object@METADATA[ID,"LIGHTPOWER"]), as.double(object@METADATA[ID,"LOW"]), as.double(object@METADATA[ID,"HIGH"]), as.double(object@METADATA[ID,"RATE"])), con, size = 4, endian="little") ##TEMPERATURE, MEASTEMP writeBin(c(as.integer(object@METADATA[ID,"TEMPERATURE"]), as.integer(object@METADATA[ID,"MEASTEMP"])), con, size = 2, endian="little") ##AN_TEMP, AN_TIME writeBin(c(as.double(object@METADATA[ID,"AN_TEMP"]), as.double(object@METADATA[ID,"AN_TIME"])), con, size = 4, endian="little") ##TOLDELAY; TOLON, TOLOFF writeBin(c(as.integer(object@METADATA[ID,"TOLDELAY"]), as.integer(object@METADATA[ID,"TOLON"]), as.integer(object@METADATA[ID,"TOLOFF"])), con, size = 2, endian="little") ##IRR_TIME writeBin(as.double(object@METADATA[ID,"IRR_TIME"]), con, size = 4, endian="little") ##IRR_TYPE writeBin(c(object@METADATA[ID,"IRR_TYPE"]), con, size = 1, endian="little") ##IRR_DOSERATE, IRR_DOSERATEERR if(version == 05){ writeBin(as.double(object@METADATA[ID,"IRR_DOSERATE"]), con, size = 4, endian="little") }else{ writeBin(c(as.double(object@METADATA[ID,"IRR_DOSERATE"]), as.double(object@METADATA[ID,"IRR_DOSERATEERR"])), con, size = 4, endian="little") } ##TIMESINCEIRR writeBin(c(as.integer(object@METADATA[ID,"TIMESINCEIRR"])), con, size = 4, endian="little") ##TIMETICK writeBin(c(as.double(object@METADATA[ID,"TIMETICK"])), con, size = 4, endian="little") ##ONTIME, STIMPERIOD writeBin(c(suppressWarnings(as.integer(object@METADATA[ID,"ONTIME"])), as.integer(object@METADATA[ID,"STIMPERIOD"])), con, size = 4, endian="little") ##GATE_ENABLED writeBin(as.integer(object@METADATA[ID,"GATE_ENABLED"]), con, size = 1, endian="little") ##GATE_START, GATE_STOP writeBin(c(as.integer(object@METADATA[ID,"GATE_START"]), as.integer(object@METADATA[ID,"GATE_STOP"])), con, size = 4, endian="little") ##PTENABLED, DTENABLED writeBin(c(as.integer(object@METADATA[ID,"PTENABLED"]), as.integer(object@METADATA[ID,"DTENABLED"])), con, size = 1, endian="little") ##DEADTIME, MAXLPOWER, XRF_ACQTIME, XRF_HV writeBin(c(as.double(object@METADATA[ID,"DEADTIME"]), as.double(object@METADATA[ID,"MAXLPOWER"]), as.double(object@METADATA[ID,"XRF_ACQTIME"]), as.double(object@METADATA[ID,"XRF_HV"])), con, size = 4, endian="little") ##XRF_CURR writeBin(c(as.integer(object@METADATA[ID,"XRF_CURR"])), con, size = 4, endian="little") ##XRF_DEADTIMEF writeBin(c(as.double(object@METADATA[ID,"XRF_DEADTIMEF"])), con, size = 4, endian="little") ##add version support for V7 if(version == 05){ ##RESERVED 2 if(length(object@.RESERVED) == 0 || version.original != version){ writeBin(raw(length=4), con, size = 1, endian="little") }else{ writeBin(object@.RESERVED[[ID]][[2]], con, size = 1, endian="little") } }else if(version == 06){ ##RESERVED 2 if(length(object@.RESERVED) == 0 || version.original != version){ writeBin(raw(length=24), con, size = 1, endian="little") }else{ writeBin(object@.RESERVED[[ID]][[2]], con, size = 1, endian="little") } }else{ ##DETECTOR_ID writeBin(as.integer(object@METADATA[ID,"DETECTOR_ID"]), con, size = 1, endian="little") ##LOWERFILTER_ID, UPPERFILTER_ID writeBin(c(as.integer(object@METADATA[ID,"LOWERFILTER_ID"]), as.integer(object@METADATA[ID,"UPPERFILTER_ID"])), con, size = 2, endian="little") ##ENOISEFACTOR writeBin(as.double(object@METADATA[ID,"ENOISEFACTOR"]), con, size = 4, endian="little") ##VERSION 08 if(version == 07){ ##RESERVED 2 if(length(object@.RESERVED) == 0 || version.original != version){ writeBin(raw(length=15), con, size = 1, endian="little") }else{ writeBin(object@.RESERVED[[ID]][[2]], con, size = 1, endian="little") } }else{ ##MARKPOS POSITION and extraction writeBin( c( as.double(object@METADATA[ID, "MARKPOS_X1"]), as.double(object@METADATA[ID, "MARKPOS_Y1"]), as.double(object@METADATA[ID, "MARKPOS_X2"]), as.double(object@METADATA[ID, "MARKPOS_Y2"]), as.double(object@METADATA[ID, "MARKPOS_X3"]), as.double(object@METADATA[ID, "MARKPOS_Y3"]), as.double(object@METADATA[ID, "EXTR_START"]), as.double(object@METADATA[ID, "EXTR_END"]) ), con, size = 4, endian = "little" ) ##RESERVED 2 if(length(object@.RESERVED) == 0 || version.original != version){ writeBin(raw(length=42), con, size = 1, endian="little") }else{ writeBin(object@.RESERVED[[ID]][[2]], con, size = 1, endian="little") } } }#end if version decision ##DPOINTS writeBin(as.integer(unlist(object@DATA[ID])), con, size = 4, endian="little") #SET UNIQUE ID ID <- ID + 1 ##update progress bar if(txtProgressBar) setTxtProgressBar(pb, ID) } } # # ##close if(txtProgressBar) close(pb) ##output if (verbose) message("\t >> ", ID - 1, " records written successfully\n") ## return path invisible(file) } Luminescence/R/read_TIFF2R.R0000644000176200001440000000326214762554470015160 0ustar liggesusers#'@title Import TIFF Image Data into R #' #'@description Simple wrapper around [tiff::readTIFF] to import TIFF images #'and TIFF image stacks to be further processed within the package `'Luminescence'` #' #'@param file [character] (**required**): file name #' #' @param verbose [logical] (*with default*): enable/disable output to the #' terminal. #' #'@param ... not in use, for compatibility reasons only #' #'@return [RLum.Data.Image-class] object #' #'@author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@section Function version: 0.1.2 #' #'@seealso [tiff::readTIFF], [RLum.Data.Image-class] #' #'@keywords IO #' #'@examples #' #'\dontrun{ #'file <- file.choose() #'image <- read_TIFF2R(file) #' #'} #' #'@md #'@export read_TIFF2R <- function( file, verbose = TRUE, ... ) { .set_function_name("read_TIFF2R") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(file, "character") .validate_length(file, 1) .require_suggested_package("tiff", "Importing TIFF files") if(!file.exists(file)) .throw_error("File does not exist or is not readable") ## Import ----------------------------------------------------------------- if (verbose) { cat("\n[read_TIFF2R()] Importing ...") cat("\n path: ", dirname(file)) cat("\n file: ", .shorten_filename(basename(file))) cat("\n") } ## import temp <- tiff::readTIFF(file, all = TRUE, as.is = TRUE) if(is(temp, "list")) temp <- as(temp, "RLum.Data.Image") # Return ------------------------------------------------------------------ set_RLum(class = "RLum.Data.Image", data = temp@data) } Luminescence/R/calc_MoransI.R0000644000176200001440000003364214762554470015570 0ustar liggesusers#' @title Calculate Moran's I #' #' @details #' #' **Case of no spatial autocorrelation** #' #' Perhaps a bit counter-intuitive, the expected value of Moran's I under the #' null hypothesis of no spatial correlation is a value slightly smaller than #' zero. When setting `spatial_autocorrelation = FALSE`, this function #' calculates the expected value based on the number of observations or the #' length of the observation vector (while taking out `NA` values). Note that #' the expected value only depends on the number of observed separate grain #' values. This can be useful for plotting. #' #' The expected Moran's I for the null hypothesis of no spatial correlation #' corresponds to `-1 / (n - 1)`, with `n` being the number of non-missing #' observations. #' #' @param object [RLum.Results-class] or [numeric] (**required**) containing #' the values of the grains of one. Should have length 100; can contain `NA` #' values. #' #' @param df_neighbours [data.frame] (*with default*): a data frame with 3 #' columns (`location`, `neighbour` and `weight`, respectively), with each row #' indicating the index of one location and one of its neighbours (note that #' the concept of "location" versus "neighbour" is symmetric, so each #' neighbouring pair needs to be specified only once), alongside their relative #' weight (generally set to 1). If `NULL` (default), this is constructed #' automatically by the internal function `.get_Neighbours`. #' #' @param spatial_autocorrelation [logical] (*with default*): whether spatial #' autocorrelation should be considered in the computation of Moran's I #' (`TRUE` by default). If `FALSE`, the function computes Moran's I expected #' value in case of no autocorrelation (H_0). See details for further #' information. #' #' @param compute_pseudo_p [logical] (*with default*): whether a pseudo p-value #' should be computed (`FALSE` by default). #' #' @param tested_moransI [numeric] (*with default*): The value of Moran's I to #' be tested against when computing the pseudo p-value. If `NULL` (default), the #' value calculated by the function will be used. Ignored if `compute_pseudo_p` #' is `FALSE`. #' #' @param n_permutations [integer] (*with default*): number of random #' permutations tested to calculate the fraction which is the pseudo p #' (defaults to 999). Influences the calculation speed, which will have #' impact in case of large scale simulation loops. Ignored if `compute_pseudo_p` #' is `FALSE`. #' #' @param ignore_borders [logical] (*with default*): whether only grain #' locations that do not lie on the border of the disc should be considered #' (`FALSE` by default). Thus if `TRUE`, only the inner 8x8 grain locations #' rather than the full 10x10 are considered. Ignored if `df_neighbours` is #' not `NULL` or if `spatial_autocorrelation = FALSE`. #' #' @param return_intermediate_values [logical] (*with default*): whether the #' function should return a list with several intermediate calculation results #' (defaults to `FALSE`). Ignored if `spatial_autocorrelation` is `FALSE`. #' #' @return By default one numerical value, roughly between -1 and 1, where #' close to zero means no spatial correlation, and value close to 1 a positive #' spatial correlation given the pattern we interested in (by default all rook #' neighbours). A value closer to -1 has no meaning within the context of #' luminescence crosstalk. If `compute_pseudo_p = TRUE`, then the computed #' pseudo p-value is returned. If `return_intermediate_values` is set to `TRUE`, #' a list with several values used for calculation is returned instead of a #' single outcome. #' #' @author Anna-Maartje de Boer, Luc Steinbuch, Wageningen University & Research, 2025 #' #' @references #' de Boer, A-M., Steinbuch, L., Heuvelink, G.B.M., Wallinga, J., 2025. #' A novel tool to assess crosstalk in single-grain luminescence detection. #' Submitted. #' #' @examples #' #' ## Test a fictional sample with spatial correlation #' calc_MoransI(object = c(1:100)) #' #' ## Test some fictional samples without spatial correlation; #' ## note the randomness with each repetition #' calc_MoransI(object = rnorm(n = 100)) #' calc_MoransI(object = rnorm(n = 100)) #' calc_MoransI(object = rnorm(n = 100)) #' #' @md #' @export calc_MoransI <- function(object, df_neighbours = NULL, spatial_autocorrelation = TRUE, compute_pseudo_p = FALSE, tested_moransI = NULL, n_permutations = 999, ignore_borders = FALSE, return_intermediate_values = FALSE ) { .set_function_name("calc_MoransI") on.exit(.unset_function_name(), add = TRUE) ## Validate input arguments; set variables ----------------------- .validate_class(object, c("RLum.Results", "numeric", "integer")) if (is.numeric(object)) { vn_values <- object } else { vn_values <- get_RLum(object) } .validate_length(vn_values, 100, name = "'object'") if (is.null(df_neighbours)) { .validate_logical_scalar(ignore_borders) df_neighbours <- .get_Neighbours(object, ignore_borders) } else { .validate_class(df_neighbours, "data.frame") if (ncol(df_neighbours) != 3) .throw_error("'df_neighbours' should be a data frame with 3 columns") } .validate_logical_scalar(spatial_autocorrelation) .validate_logical_scalar(compute_pseudo_p) if (!is.null(tested_moransI)) { .validate_class(tested_moransI, "numeric") .validate_length(tested_moransI, 1) } .validate_positive_scalar(n_permutations, int = TRUE) .validate_logical_scalar(return_intermediate_values) ## No spatial autocorrelation --------------------------------------------- if (!spatial_autocorrelation) { n.valid <- sum(!is.na(vn_values)) if (n.valid < 2) { .throw_error("There should be at least 2 non-missing values") } n_MoransI_expt_no_cor <- -1 / (n.valid - 1) return(n_MoransI_expt_no_cor) } ## Core calculation ------------------------------------------------------- if (nrow(df_neighbours) == 0) { .throw_warning("No bordering grain locations given in 'df_neighbours', ", "returning NaN") return(NaN) } n <- sum(!is.na(vn_values)) n_mean <- mean(vn_values, na.rm = TRUE) n_spatial_auto_correlation <- sum((vn_values-n_mean)^2, na.rm = TRUE)/n # Population variance n_sum_similarities <- sum((vn_values[df_neighbours$location] - n_mean) * (vn_values[df_neighbours$neighbour] - n_mean) * df_neighbours$weight, na.rm = TRUE ) n_sum_weights <- sum(df_neighbours$weight) n_average_auto_correlation <- n_sum_similarities/n_sum_weights n_moransI <- n_average_auto_correlation / n_spatial_auto_correlation if (compute_pseudo_p) { if (is.null(tested_moransI)) tested_moransI <- n_moransI pseudo_p <- .compute_pseudo_p(vn_values, tested_moransI, n_permutations, df_neighbours) } if (return_intermediate_values) { li_return <- list(n = n, n_mean = n_mean, n_population_variance = n_spatial_auto_correlation, n_sum_similarities = n_sum_similarities, n_sum_weights = n_sum_weights, n_average_auto_correlation = n_average_auto_correlation, n_moransI = n_moransI) if (compute_pseudo_p) { li_return$pseudo_p <- pseudo_p } return(li_return) } if (compute_pseudo_p) { return(pseudo_p$pseudo_p) } return(n_moransI) } #' @title Calculate Moran's I pseudo p #' #' @param values [numeric] (**required**): numerical vector of length 100 #' representing one discs ("position") in a reader. #' #' @param moransI [numeric] (**required**): The value of Moran's I to be #' tested against. #' #' @param n_permutations [integer] (*with default*) Number of random #' permutations tested to calculate the fraction which is the pseudo p. #' #' @param df_neighbours [data.frame] (**required**): Data frame indicating #' which borders to consider, and their respective weights. #' #' @return Pseudo p-value #' #' @seealso https://geodacenter.github.io/workbook/5a_global_auto/lab5a.html#permutation-inference #' #' @author Anna-Maartje de Boer, Luc Steinbuch, Wageningen University & Research, 2025 #' #' @references #' de Boer, A-M., Steinbuch, L., Heuvelink, G.B.M., Wallinga, J., 2025. #' A novel tool to assess crosstalk in single-grain luminescence detection. #' Submitted. #' #' @keywords internal #' @md #' @noRd .compute_pseudo_p <- function(values, moransI, n_permutations, df_neighbours) { ## Local helper function: reshuffle (=permutate) observations, an test if Moran's I ## from reshuffled observations if equal or above the calculated Moran's I reshuffle_and_test <- function(vn_values, n_moransI, df_neighbours) { vn_values_reshuffled <- rep(NA, length.out = length(vn_values)) vn_values_reshuffled[vb_contains_observation] <- sample(vn_values[vb_contains_observation]) (calc_MoransI(object = vn_values_reshuffled, df_neighbours = df_neighbours) >= n_moransI) } vb_contains_observation <- !is.na(values) ## How many different Moran's Is from reshuffled observations are equal or ## above the provided Moran's I? n_test_pos <- sum(replicate(n = n_permutations, expr = reshuffle_and_test(values, moransI, df_neighbours), simplify = TRUE) ) n_pseudo_p <- (n_test_pos + 1) / (n_permutations + 1) if (n_test_pos == 0 && n_pseudo_p > 0) .throw_warning("Pseudo-p might be overestimated: the real p-value ", "is closer to zero, try increasing 'n_permutations'") return(list(pseudo_p = n_pseudo_p, tested_moransI = moransI, n_permutations = n_permutations)) } #' @title Get neighbour positions #' #' @description Determines which locations on one or more #' 10x10 discs are neighbouring horizontally and/or vertically ("rook"), in #' order to calculate Moran's I. #' For the general case, we assume symmetry, and all adjacency get #' an equal relative weight of one. #' In case there are holes in the image, indicated by `NA` (no value observed), #' the related border or borders are removed. #' #' @details Will mostly be used as an helper function. If called without any #' arguments, it will return the neighbouring positions data frame for one #' disc (POS) with on every grain location an observation. #' #' @param object [RLum.Results-class] or [numeric] (**required**): numerical #' vector containing the values of one or more discs, or an `RLum.Results` #' object containing such values. Can contain `NA` values. #' #' @param ignore_borders [logical] (*with default*) Defaults to `FALSE`. #' If `TRUE`, only on-disc borders to grain locations who do not border the #' disc are considered; thus only the inner 8x8 grain locations rather than #' the full 10x10. #' #' @return Data frame with columns `location`, `neighbour` and `weight`, #' respectively. The integers in the first two columns indicate the index #' of the vector with observations; the relative weight is standard set to one. #' Note that the concept of "location" versus "neighbour" is symmetric. #' #' @author Anna-Maartje de Boer, Luc Steinbuch, Wageningen University & Research, 2025 #' #' @references #' de Boer, A-M., Steinbuch, L., Heuvelink, G.B.M., Wallinga, J., 2025. #' A novel tool to assess crosstalk in single-grain luminescence detection. #' Submitted. #' #' @keywords internal #' #' @noRd .get_Neighbours <- function(object, ignore_borders = FALSE ) { .set_function_name(".get_Neighbours") on.exit(.unset_function_name(), add = TRUE) ## Validate input arguments ----------------------- .validate_class(object, c("RLum.Results", "numeric", "integer")) if (is.numeric(object)) { vn_values <- object } else{ vn_values <- get_RLum(object) } vb_contains_observation <- !is.na(vn_values) ## Construct the dataframe with borders and weights --------------------------------- df_neighbour <- data.frame(location = 1:100) ## for each neighbour, calculate two neighbouring locations, ## and remove when invalid df_neighbour$south <- df_neighbour$location - 10 df_neighbour$west <- df_neighbour$location - 1 ## Remove neighbouring locations at southside of disc df_neighbour$south <- ifelse(df_neighbour$south < 1, yes = NA, no = df_neighbour$south) ## Remove neighbouring locations at westside of disc df_neighbour$west <- ifelse(!(df_neighbour$west %% 10), yes = NA, no = df_neighbour$west) df_neighbour <- rbind(df_neighbour[,1:2], setNames(df_neighbour[,c(1,3)], nm = names(df_neighbour)[1:2]) ) names(df_neighbour) <- c("location", "neighbour") df_neighbour <- stats::na.omit(df_neighbour) if (ignore_borders) { ## Remove the disc borders vn_disc_border_locations <- c(1:10, 91:100, seq(from = 11, to = 81, by = 10), seq(from = 20, to = 90, by = 10) ) contains_discborders <- df_neighbour$location %in% vn_disc_border_locations | df_neighbour$neighbour %in% vn_disc_border_locations df_neighbour <- df_neighbour[!contains_discborders, ] } ## Define relative weight factor --------------------------------- df_neighbour$weight <- 1 ## If there are missing observations (NA's), we need to take those out ------------------ missing.idx <- which(!vb_contains_observation) if (length(missing.idx) > 0) { ## Create vector of indices of rows to throw away vi_observation_missing <- (df_neighbour$location %in% missing.idx | df_neighbour$neighbour %in% missing.idx) df_neighbour <- df_neighbour[!vi_observation_missing, ] } return(df_neighbour) } Luminescence/R/plot_RLum.Data.Spectrum.R0000644000176200001440000010521614762554470017621 0ustar liggesusers#' @title Plot function for an RLum.Data.Spectrum S4 class object #' #' @description The function provides a standardised plot output for spectrum data of an #' [RLum.Data.Spectrum-class] class object. The purpose of this function is to provide #' easy and straight-forward spectra plotting, not provide a full customised access to #' all plot parameters. If this is wanted, standard R plot functionality should be used #' instead. #' #' **Matrix structure** \cr (cf. [RLum.Data.Spectrum-class]) #' #' - `rows` (x-values): wavelengths/channels (`xlim`, `xlab`) #' - `columns` (y-values): time/temperature (`ylim`, `ylab`) #' - `cells` (z-values): count values (`zlim`, `zlab`) #' #' *Note: This nomenclature is valid for all plot types of this function!* #' #' **Nomenclature for value limiting** #' #' - `xlim`: Limits values along the wavelength axis #' - `ylim`: Limits values along the time/temperature axis #' - `zlim`: Limits values along the count value axis #' #' **Details on the plot functions** #' #' Spectrum is visualised as 3D or 2D plot. Both plot types are based on #' internal R plot functions. #' #'**`plot.type = "persp"`** #' #' Arguments that will be passed to [graphics::persp]: #' #' - `shade`: default is `0.4` #' - `phi`: default is `15` #' - `theta`: default is `-30` #' - `lphi`: default is `15` #' - `ltheta`: default is `-30` #' - `expand`: default is `1` #' - `axes`: default is `TRUE` #' - `box`: default is `TRUE`; accepts `"alternate"` for a custom plot design #' - `ticktype`: default is `detailed`, `r`: default is `10` #' #' **Note:** Further parameters can be adjusted via `par`. For example #' to set the background transparent and reduce the thickness of the lines use: #' `par(bg = NA, lwd = 0.7)` before the function call. #' #'**`plot.type = "single"`** #' #' Per frame a single curve is returned. Frames are time or temperature #' steps. #' #' -`frames`: pick the frames to be plotted (depends on the binning!). Check without #' this setting before plotting. #' #'**`plot.type = "multiple.lines"`** #' #' All frames plotted in one frame. #' #'-`frames`: pick the frames to be plotted (depends on the binning!). Check without #' this setting before plotting. #' #'**`plot.type = "image"` or `plot.type = "contour"`** #' #' These plot types use the R functions [graphics::image] or [graphics::contour]. #' The advantage is that many plots can be arranged conveniently using standard #' R plot functionality. If `plot.type = "image"` a contour is added by default, #' which can be disabled using the argument `contour = FALSE` to add own contour #' lines of choice. #' #'**`plot.type = "transect"`** #' #' Depending on the selected wavelength/channel range a transect over the #' time/temperature (y-axis) will be plotted along the wavelength/channels #' (x-axis). If the range contains more than one channel, values (z-values) are #' summed up. To select a transect use the `xlim` argument, e.g. #' `xlim = c(300,310)` plot along the summed up count values of channel #' 300 to 310. #' #' **Further arguments that will be passed (depending on the plot type)** #' #' `xlab`, `ylab`, `zlab`, `xlim`, `ylim`, `box`, #' `zlim`, `main`, `mtext`, `pch`, `type` (`"single"`, `"multiple.lines"`, `"interactive"`), #' `col`, `border`, `lwd`, `bty`, `showscale` (`"interactive"`, `"image"`) #' `contour`, `contour.col` (`"image"`) #' #' @param object [RLum.Data.Spectrum-class] or [matrix] (**required**): #' S4 object of class `RLum.Data.Spectrum` or a `matrix` containing count #' values of the spectrum.\cr #' Please note that in case of a matrix row names and col names are set #' automatically if not provided. #' #' @param par.local [logical] (*with default*): #' use local graphical parameters for plotting, e.g. the plot is shown in one column and one row. #' If `par.local = FALSE` global parameters are inherited. #' #' @param plot.type [character] (*with default*): for a 3D-plot use `persp` #' or `interactive`; for a 2D-plot you can use `image`, `contour`, #' `single` or `multiple.lines` (along the time or temperature axis) #' or `transect` (along the wavelength axis) #' #' @param optical.wavelength.colours [logical] (*with default*): #' use optical wavelength colour palette. Note: For this, the spectrum range is #' limited: `c(350,750)`. Own colours can be set with the argument `col`. If you provide already #' binned spectra, the colour assignment is likely to be wrong, since the colour gradients are calculated #' using the bin number. #' #' @param bg.spectrum [RLum.Data.Spectrum-class] or [matrix] (*optional*): Spectrum #' used for the background subtraction. By definition, the background spectrum should have been #' measured with the same setting as the signal spectrum. If a spectrum is provided, the #' argument `bg.channels` works only on the provided background spectrum. #' #' @param bg.channels [vector] (*optional*): #' defines the channels used for background subtraction. If a vector is #' provided, the mean of the channels is used for subtraction. If a spectrum #' is provided via `bg.spectrum`, this argument only works on the background #' spectrum. #' #' **Note:** Background subtraction is applied prior to channel binning #' #' @param bin.rows [integer] (*with default*): #' allow summing-up wavelength channels (horizontal binning), #' e.g. `bin.rows = 2` two channels are summed up. #' Binning is applied after the background subtraction. #' #' @param bin.cols [integer] (*with default*): #' allow summing-up channel counts (vertical binning) for plotting, #' e.g. `bin.cols = 2` two channels are summed up. #' Binning is applied after the background subtraction. #' #' @param norm [character] (*optional*): Normalise data to the maximum (`norm = "max"`) or #' minimum (`norm = "min"`) count values. The normalisation is applied after the binning. #' #' @param rug [logical] (*with default*): #' enable/disable colour rug. Currently only implemented for plot #' type `multiple.lines` and `single` #' #' @param limit_counts [numeric] (*optional*): #' value to limit all count values to this value, i.e. all count values above #' this threshold will be replaced by this threshold. This is helpful #' especially in case of TL-spectra. #' #' @param xaxis.energy [logical] (*with default*): enable/disable using energy #' instead of wavelength on the x-axis. Function [convert_Wavelength2Energy] #' is used to perform the conversion. #' #' **Note:** Besides being used in setting the axis, with this option the #' the spectrum is recalculated in terms of intensity, see details. #' #' @param legend.text [character] (*with default*): #' possibility to provide own legend text. This argument is only considered for #' plot types providing a legend, e.g. `plot.type="transect"` #' #' @param plot [logical] (*with default*): enable/disable the plot output. If #' the plot output is disabled, the [matrix] used for the plotting and the #' calculated colour values (as attributes) are returned. This way, the #' (binned, transformed etc.) output can be used in other functions and #' packages, such as plotting with the package `'plot3D'` #' #' @param ... further arguments and graphical parameters that will be passed #' to the `plot` function. #' #' @return Returns a plot and the transformed `matrix` used for plotting with some useful #' attributes such as the `colour` and `pmat` (the transpose matrix from [graphics::persp]) #' #' @note Not all additional arguments (`...`) will be passed similarly! #' #' @section Function version: 0.6.9 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Data.Spectrum-class], [convert_Wavelength2Energy], [plot], [plot_RLum], [graphics::persp], [plotly::plot_ly], [graphics::contour], [graphics::image] #' #' @keywords aplot #' #' @examples #' #' ##load example data #' data(ExampleData.XSYG, envir = environment()) #' #' ##(1)plot simple spectrum (2D) - image #' plot_RLum.Data.Spectrum( #' TL.Spectrum, #' plot.type="image", #' xlim = c(310,750), #' ylim = c(0,300), #' bin.rows=10, #' bin.cols = 1) #' #' ##(2) plot spectrum (3D) #' plot_RLum.Data.Spectrum( #' TL.Spectrum, #' plot.type="persp", #' xlim = c(310,750), #' ylim = c(0,100), #' bin.rows=10, #' bin.cols = 1) #' #'##(3) plot spectrum on energy axis #'##please note the background subtraction #'plot_RLum.Data.Spectrum(TL.Spectrum, #' plot.type="persp", #' ylim = c(0,200), #' bin.rows=10, #' bg.channels = 10, #' bin.cols = 1, #' xaxis.energy = TRUE) #' #' ##(4) plot multiple lines (2D) - multiple.lines (with ylim) #' plot_RLum.Data.Spectrum( #' TL.Spectrum, #' plot.type="multiple.lines", #' xlim = c(310,750), #' ylim = c(0,100), #' bin.rows=10, #' bin.cols = 1) #' #' \dontrun{ #' ##(4) interactive plot using the package plotly ("surface") #' plot_RLum.Data.Spectrum(TL.Spectrum, plot.type="interactive", #' xlim = c(310,750), ylim = c(0,300), bin.rows=10, #' bin.cols = 1) #' #' ##(5) interactive plot using the package plotly ("contour") #' plot_RLum.Data.Spectrum(TL.Spectrum, plot.type="interactive", #' xlim = c(310,750), ylim = c(0,300), bin.rows=10, #' bin.cols = 1, #' type = "contour", #' showscale = TRUE) #' #' ##(6) interactive plot using the package plotly ("heatmap") #' plot_RLum.Data.Spectrum(TL.Spectrum, plot.type="interactive", #' xlim = c(310,750), ylim = c(0,300), bin.rows=10, #' bin.cols = 1, #' type = "heatmap", #' showscale = TRUE) #' #' } #' #' @md #' @export plot_RLum.Data.Spectrum <- function( object, par.local = TRUE, plot.type = "contour", optical.wavelength.colours = TRUE, bg.spectrum = NULL, bg.channels = NULL, bin.rows = 1, bin.cols = 1, norm = NULL, rug = TRUE, limit_counts = NULL, xaxis.energy = FALSE, legend.text, plot = TRUE, ... ) { .set_function_name("plot_RLum.Data.Spectrum") on.exit(.unset_function_name(), add = TRUE) ## Integrity tests ------------------------------------------------------- .validate_class(object, c("RLum.Data.Spectrum", "matrix")) if (inherits(object, "matrix")) { if (is.null(colnames(object))) { colnames(object) <- 1:ncol(object) } if (is.null(rownames(object))) { rownames(object) <- 1:nrow(object) } object <- set_RLum(class = "RLum.Data.Spectrum", data = object) message("[plot_RLum.Data.Spectrum()] Input has been converted to a ", "'RLum.Data.Spectrum' object using set_RLum()") } if (length(object@data) < 2) { .throw_error("'object' contains no data") } .validate_args(norm, c("min", "max"), null.ok = TRUE) .validate_args(plot.type, c("contour", "persp", "single", "multiple.lines", "image", "transect", "interactive")) .validate_positive_scalar(bin.rows, int = TRUE) .validate_positive_scalar(bin.cols, int = TRUE) ##XSYG ##check for curveDescripter if("curveDescripter" %in% names(object@info) == TRUE){ temp.lab <- strsplit(object@info$curveDescripter, split = ";")[[1]] xlab <- if(xaxis.energy == FALSE){ temp.lab[2]}else{"Energy [eV]"} ylab <- temp.lab[1] zlab <- temp.lab[3] }else{ xlab <- if(xaxis.energy == FALSE){ "Row values [a.u.]"}else{"Energy [eV]"} ylab <- "Column values [a.u.]" zlab <- "Cell values [a.u.]" } # Do energy axis conversion ------------------------------------------------------------------- if (xaxis.energy){ ##conversion object <- convert_Wavelength2Energy(object, digits = 5) ##modify row order (otherwise subsequent functions, like persp, have a problem) object@data[] <- object@data[order(as.numeric(rownames(object@data))),] rownames(object@data) <- sort(as.numeric(rownames(object@data))) } ## check for duplicated column names (e.g., temperature not increasing) if(any(duplicated(colnames(object@data)))) { .throw_warning("Duplicated column names found, replaced by index") colnames(object@data) <- 1:ncol(object@data[]) } ##deal with addition arguments extraArgs <- list(...) main <- if("main" %in% names(extraArgs)) {extraArgs$main} else {"RLum.Data.Spectrum"} zlab <- if("zlab" %in% names(extraArgs)) {extraArgs$zlab} else {ifelse(plot.type == "multiple.lines", ylab, zlab)} xlab <- if("xlab" %in% names(extraArgs)) {extraArgs$xlab} else {xlab} ylab <- if("ylab" %in% names(extraArgs)) {extraArgs$ylab} else {ifelse(plot.type == "single" | plot.type == "multiple.lines", "Luminescence [cts/channel]", ylab)} xlim <- if("xlim" %in% names(extraArgs)) {extraArgs$xlim} else {c(min(as.numeric(rownames(object@data))), max(as.numeric(rownames(object@data))))} ylim <- if("ylim" %in% names(extraArgs)) {extraArgs$ylim} else {c(min(as.numeric(colnames(object@data))), max(as.numeric(colnames(object@data))))} #for zlim see below mtext <- if("mtext" %in% names(extraArgs)) {extraArgs$mtext} else {""} cex <- if("cex" %in% names(extraArgs)) {extraArgs$cex} else {1} phi <- if("phi" %in% names(extraArgs)) {extraArgs$phi} else {15} theta <- if("theta" %in% names(extraArgs)) {extraArgs$theta} else {-30} lphi <- if("lphi" %in% names(extraArgs)) {extraArgs$lphi} else {15} ltheta <- if("ltheta" %in% names(extraArgs)) {extraArgs$ltheta} else {-30} r <- if("r" %in% names(extraArgs)) {extraArgs$r} else {10} shade <- if("shade" %in% names(extraArgs)) {extraArgs$shade} else {0.4} expand <- if("expand" %in% names(extraArgs)) {extraArgs$expand} else {0.6} border <- if("border" %in% names(extraArgs)) {extraArgs$border} else {NULL} box <- if("box" %in% names(extraArgs)) {extraArgs$box} else {TRUE} axes <- if("axes" %in% names(extraArgs)) {extraArgs$axes} else {TRUE} ticktype <- if("ticktype" %in% names(extraArgs)) {extraArgs$ticktype} else {"detailed"} log<- if("log" %in% names(extraArgs)) {extraArgs$log} else {""} type<- if("type" %in% names(extraArgs)) {extraArgs$type} else { if (plot.type == "interactive") { "surface" } else{ "l" } } pch<- if("pch" %in% names(extraArgs)) {extraArgs$pch} else {1} lwd<- if("lwd" %in% names(extraArgs)) {extraArgs$lwd} else {1} bty <- if("bty" %in% names(extraArgs)) {extraArgs$bty} else {NULL} sub<- if("sub" %in% names(extraArgs)) {extraArgs$sub} else {""} #for plotly::plot_ly showscale<- if("showscale" %in% names(extraArgs)) {extraArgs$showscale} else {FALSE} # prepare values for plot --------------------------------------------------- ##copy data temp.xyz <- object@data ##check for NULL column names if(is.null(colnames(temp.xyz))) colnames(temp.xyz) <- 1:ncol(temp.xyz) if(is.null(rownames(temp.xyz))) rownames(temp.xyz) <- 1:nrow(temp.xyz) ##check for the case of a single column matrix if(ncol(temp.xyz)>1){ x.vals <- as.numeric(rownames(temp.xyz)) y.vals <- as.numeric(colnames(temp.xyz)) ## limit the data according to xlim and ylim temp.xyz <- temp.xyz[x.vals >= xlim[1] & x.vals <= xlim[2], y.vals >= ylim[1] & y.vals <= ylim[2], drop = FALSE] if (nrow(temp.xyz) == 0 || ncol(temp.xyz) == 0) { .throw_error("No data left after applying 'xlim' and 'ylim'") } } ## wavelength x <- as.numeric(rownames(temp.xyz)) ## time/temp y <- as.numeric(colnames(temp.xyz)) # Background spectrum ------------------------------------------------------------------------- if(!is.null(bg.spectrum)){ .validate_class(bg.spectrum, c("RLum.Data.Spectrum", "matrix")) ##case RLum if(inherits(bg.spectrum, "RLum.Data.Spectrum")) bg.xyz <- bg.spectrum@data ##case matrix if(inherits(bg.spectrum, "matrix")) bg.xyz <- bg.spectrum ##take care of channel settings, otherwise set bg.channels if(is.null(bg.channels)) bg.channels <- c(1:ncol(bg.xyz)) ##set rownames if(is.null(rownames(bg.xyz))) rownames(bg.xyz) <- 1:nrow(bg.xyz) ##convert to energy scale if needed if(xaxis.energy){ #conversion bg.xyz <- convert_Wavelength2Energy(cbind(as.numeric(rownames(bg.xyz)), bg.xyz), digits = 5) rownames(bg.xyz) <- bg.xyz[,1] bg.xyz <- bg.xyz[,-1, drop = FALSE] ##modify row order (otherwise subsequent functions, like persp, have a problem) bg.xyz <- bg.xyz[order(as.numeric(rownames(bg.xyz))),,drop = FALSE] rownames(bg.xyz) <- sort(as.numeric(rownames(bg.xyz))) } ##reduce for xlim bg.xyz <- bg.xyz[as.numeric(rownames(bg.xyz)) >= xlim[1] & as.numeric(rownames(bg.xyz)) <= xlim[2],,drop = FALSE] } # Background subtraction --------------------------------------------------- if(!is.null(bg.channels)){ ##set background object if not available if(is.null(bg.spectrum)) bg.xyz <- temp.xyz if(max(bg.channels) > ncol(bg.xyz) || any(bg.channels <= 0)){ ##correct the mess bg.channels <- sort(unique(bg.channels)) bg.channels[bg.channels <= 0] <- 1 bg.channels[bg.channels >= ncol(bg.xyz)] <- ncol(bg.xyz) .throw_warning("'bg.channels' out of range, corrected to: ", min(bg.channels), ":", max(bg.channels)) } if(length(bg.channels) > 1){ temp.bg.signal <- rowMeans(bg.xyz[,bg.channels]) temp.xyz <- temp.xyz - temp.bg.signal }else{ temp.xyz <- temp.xyz - bg.xyz[,bg.channels] } ##set values < 0 to 0 temp.xyz[temp.xyz < 0] <- 0 ##check worst case if(sum(temp.xyz) == 0){ .throw_message("After background subtraction all counts are negative: ", "nothing plotted, NULL returned") return(NULL) } } ## Channel binning -------------------------------------------------------- if(bin.rows > 1){ temp.xyz <- .matrix_binning(temp.xyz, bin_size = bin.rows, bin_col = FALSE, names = "mean") x <- as.numeric(rownames(temp.xyz)) ##remove last channel (this is the channel that included less data) if (length(x) %% bin.rows != 0 && length(x) > bin.rows) { .throw_warning(length(x) %% bin.rows, " channels removed due to row (wavelength) binning") ##do it temp.xyz <- temp.xyz[-length(x),] x <- x[-length(x)] } } if(bin.cols > 1){ temp.xyz <- .matrix_binning(temp.xyz, bin_size = bin.cols, bin_col = TRUE, names = "groups") y <- as.numeric(colnames(temp.xyz)) ##remove last channel (this is the channel that included less data) if (length(y) %% bin.cols != 0 && length(y) > bin.cols) { .throw_warning(length(y) %% bin.cols, " channels removed due to column (frame) binning") ##do it temp.xyz <- temp.xyz[,-length(y)] y <- y[-length(y)] } } ##limit z-values if requested, this idea was taken from the Diss. by Thomas Schilles, 2002 if(!is.null(limit_counts[1])) { if(min(temp.xyz) > limit_counts[1]) { limit_counts <- floor(limit_counts[1] + min(temp.xyz)) .throw_warning( "Lowest count value is larger than the set count threshold. Set limit_counts = ", limit_counts, ".") } temp.xyz[temp.xyz[] > max(min(temp.xyz), limit_counts[1])] <- limit_counts[1] } # Normalise if wanted ------------------------------------------------------------------------- if(!is.null(norm)){ if(norm == "min") temp.xyz <- temp.xyz/min(temp.xyz) if(norm == "max") temp.xyz <- temp.xyz/max(temp.xyz) } ##check for zlim zlim <- if("zlim" %in% names(extraArgs)) {extraArgs$zlim} else {range(temp.xyz)} # set colour values -------------------------------------------------------- if("col" %in% names(extraArgs) == FALSE | plot.type == "single" | plot.type == "multiple.lines"){ if(optical.wavelength.colours == TRUE | (rug == TRUE & (plot.type != "persp" & plot.type != "interactive"))){ col.labels <- c(violet = "#EE82EE", blue = "#0000FF", green = "#00FF00", yellow = "#FFFF00", orange = "#FFA500", red = "#FF0000", infra = "#BEBEBE") ##make different colour palette for energy values if (xaxis.energy) { ## as thresholds are descending, we must reverse the labels, as cut() ## will sort the cutpoints in increasing order col.breaks <- c(min(max(xlim), 4.13), 2.76, 2.52, 2.18, 2.10, 2.00, 1.57, 0) col.labels <- rev(col.labels) }else{ ## colour thresholds for wavelength axis col.breaks <- c(min(xlim, 300), 450, 495, 570, 590, 620, 790, Inf) } ## assign colours according to the defined thresholds col <- cut(x, col.breaks, labels = col.labels, right = FALSE) ## when using labels, cut generates a factor variable col <- as.character(col) ##if only one colour value, then skip gradient calculation as it causes ##an error col.unique <- unique(col) if(length(col.unique) > 1){ ##set colour function for replacement colfunc <- grDevices::colorRampPalette(col.unique) ## index of the first occurrence of each colour besides the first, ## as we are trying to find where transition between colours occur col.first.idx <- match(col.unique, col)[-1] ## size of the colour transition band band.size <- 50 / bin.rows ##set borders for colour gradient recalculation grad.min <- pmax(floor(col.first.idx - band.size), 1) grad.max <- ceiling(col.first.idx + band.size) ##build up new index sequence (might be better) gradient.idx <- unlist(lapply(seq_along(grad.min), function(j) grad.min[j]:grad.max[j])) ##generate colour ramp and replace values col[gradient.idx] <- colfunc(length(gradient.idx)) ##correct for overcharged colour values (causes zebra colour pattern) size.diff <- length(col) - nrow(temp.xyz) if (size.diff != 0) { col <- col[1:(length(col) + size.diff)] } } }else{ col <- "black" } }else{ col <- extraArgs$col } # Do log scaling if needed ------------------------------------------------- ##x if(grepl("x", log)[1]) x <- log10(x) ##y if(grepl("y", log)[1]) y <- log10(y) ##z if(grepl("z", log)[1]) temp.xyz <- log10(temp.xyz) # PLOT -------------------------------------------------------------------- ## set variables we need later pmat <- NA if(plot){ ##par setting for possible combination with plot method for RLum.Analysis objects if(par.local) par(mfrow=c(1,1), cex = cex) ##rest plot type for 1 column matrix if(ncol(temp.xyz) == 1 && plot.type != "single"){ plot.type <- "single" .throw_warning("Single column matrix: plot.type has been automatically ", "reset to 'single'") } if (nrow(temp.xyz) == 1 && plot.type != "single") { .throw_message("Insufficient data for plotting, NULL returned") return(NULL) } if (plot.type == "persp") { ## Plot: perspective plot ---- ## ==========================================================================# pmat <- graphics::persp( x, y, temp.xyz, shade = shade, axes = if(box[1] == "alternate") FALSE else axes, phi = phi, theta = theta, ltheta = ltheta, lphi = lphi, xlab = xlab, ylab = ylab, zlab = zlab, zlim = zlim, scale = TRUE, col = col[1:(length(x)-1)], ##needed due to recycling of the colours main = main, expand = expand, border = border, box = if(box[1] == "alternate") FALSE else box, r = r, ticktype = ticktype) ## this is custom plot output that might come in handy from time to time if(axes & box[1] == "alternate") { ## add axes manually x_axis <- seq(min(x), max(x), length.out = 20) y_axis <- seq(min(y), max(y), length.out = 20) z_axis <- seq(min(temp.xyz), max(temp.xyz), length.out = 20) lines(grDevices::trans3d(x_axis,min(y) - 5, min(temp.xyz),pmat)) lines(grDevices::trans3d(min(x) - 5,y_axis, min(temp.xyz),pmat)) lines(grDevices::trans3d(min(x) - 5,max(y), z_axis,pmat)) ## x-axis px_axis <- pretty(x_axis) px_axis <- px_axis[(px_axis) > min(x_axis) & px_axis < max(x_axis)] tick_start <- grDevices::trans3d(px_axis, min(y_axis), min(z_axis), pmat) tick_end <- grDevices::trans3d( px_axis, min(y_axis) - max(y_axis) * 0.05, min(z_axis), pmat) ## calculate slope angle for xlab and ticks m <- (tick_start$y[2] - tick_start$y[1]) / (tick_start$x[2] - tick_start$x[1]) m <- atan(m) * 360 / (2 * pi) segments(tick_start$x, tick_start$y, tick_end$x, tick_end$y) text( tick_end$x, tick_end$y, adj = c(0.5,1.2), px_axis, xpd = TRUE, cex = 0.85, srt = m) ## x-axis label text( mean(tick_end$x), min(tick_end$y), adj = c(0.5, 1), xlab, srt = m, xpd = TRUE) ## y-axis py_axis <- pretty(y_axis) py_axis <- py_axis[(py_axis) > min(y_axis) & py_axis < max(y_axis)] tick_start <- grDevices::trans3d(min(x_axis), py_axis, min(z_axis), pmat) tick_end <- grDevices::trans3d( min(x_axis) - max(x_axis) * 0.025, py_axis, min(z_axis), pmat) segments(tick_start$x, tick_start$y, tick_end$x, tick_end$y) ## calculate slope angle for xlab and ticks m <- (tick_start$y[2] - tick_start$y[1]) / (tick_start$x[2] - tick_start$x[1]) m <- atan(m) * 360 / (2 * pi) text( tick_end$x, tick_end$y, py_axis, adj = c(0.6,1.2), srt = m, cex = 0.85, xpd = TRUE) ## y-axis label text( min(tick_end$x), mean(tick_end$y), adj = c(0.5, 1), ylab, srt = m, xpd = TRUE) ## z-axis pz_axis <- pretty(z_axis) pz_axis <- pz_axis[(pz_axis) > min(z_axis) & pz_axis < max(z_axis)] tick_start <- grDevices::trans3d(min(x_axis), max(y_axis), pz_axis, pmat) tick_end <- grDevices::trans3d( min(x_axis) - max(x_axis) * 0.015, max(y_axis), pz_axis, pmat) segments(tick_start$x, tick_start$y, tick_end$x, tick_end$y) ## calculate slope angle for xlab and ticks m <- (tick_start$y[2] - tick_start$y[1]) / (tick_start$x[2] - tick_start$x[1]) m <- atan(m) * 360 / (2 * pi) text( tick_end$x, tick_end$y, format(pz_axis, scientific = TRUE, digits = 1), adj = c(0.5,1.2), srt = m, xpd = TRUE, cex = 0.85) ## z-axis label text( min(tick_end$x), mean(tick_end$y), adj = c(0.5, 2.5), zlab, srt = m, xpd = TRUE) } ##plot additional mtext mtext(mtext, side = 3, cex = cex * 0.8) } else if (plot.type == "interactive") { ## ==========================================================================# ##interactive plot and former persp3d ## ==========================================================================# ## Plot: interactive ---- .require_suggested_package("plotly", "Displaying interactive plots") ##set up plot p <- plotly::plot_ly( z = temp.xyz, x = as.numeric(colnames(temp.xyz)), y = as.numeric(rownames(temp.xyz)), type = type, showscale = showscale #colors = col[1:(length(col)-1)], ) ##change graphical parameters p <- plotly::layout( p = p, scene = list( xaxis = list( title = ylab ), yaxis = list( title = xlab ), zaxis = list(title = zlab) ), title = main ) print(p) on.exit(return(p), add = TRUE) } else if (plot.type == "contour") { ## Plot: contour plot ---- ## ==========================================================================# graphics::contour(x,y,temp.xyz, xlab = xlab, ylab = ylab, main = main, labcex = 0.6 * cex, col = "black" ) ##plot additional mtext mtext(mtext, side = 3, cex = cex*0.8) } else if (plot.type == "image") { ## Plot: image plot ---- ## ==========================================================================# graphics::image(x,y,temp.xyz, xlab = xlab, ylab = ylab, main = main, col = if(is.null(extraArgs$col)) grDevices::hcl.colors(50, palette = "Inferno") else extraArgs$col ) if (is.null(extraArgs$contour) || extraArgs$contour != FALSE) { graphics::contour(x, y, temp.xyz, col = if(is.null(extraArgs$contour.col)) rgb(1,1,1,0.8) else extraArgs$contour.col, labcex = 0.6 * cex, add = TRUE) } ##plot additional mtext mtext(mtext, side = 3, cex = cex*0.8) } else if(plot.type == "single") { ## Plot: single plot ---- ## ==========================================================================# ## set colour rug col.rug <- col col <- if("col" %in% names(extraArgs)) {extraArgs$col} else {"black"} box <- if("box" %in% names(extraArgs)) extraArgs$box[1] else TRUE frames <- if("frames" %in% names(extraArgs)) extraArgs$frames else 1:length(y) for(i in frames) { if("zlim" %in% names(extraArgs) == FALSE){zlim <- range(temp.xyz[,i])} plot(x, temp.xyz[,i], xlab = xlab, ylab = ylab, main = main, xlim = xlim, ylim = zlim, frame = box, xaxt = "n", col = col, sub = paste( "(frame ",i, " | ", ifelse(i==1, paste("0.0 :", round(y[i], digits = 1)), paste(round(y[i-1], digits = 1),":", round(y[i], digits =1))),")", sep = ""), type = type, pch = pch) ## add colour rug if(rug){ ##rug as continuous rectangle i <- floor(seq(1,length(x), length.out = 300)) graphics::rect( xleft = x[i[-length(i)]], xright = x[i[-1]], ytop = par("usr")[3] + diff(c(par("usr")[3], min(zlim))) * 0.9, ybottom = par("usr")[3], col = col.rug[i], border = NA, lwd = 1) ## add rectangle from zero to first value graphics::rect( xleft = par()$usr[1], xright = x[i[1]], ytop = par("usr")[3] + diff(c(par("usr")[3], min(zlim))) * 0.9, ybottom = par("usr")[3], col = col.rug[1], density = 50, border = NA, lwd = 1) ## add rectangle from the last value to end of plot graphics::rect( xleft = x[i[length(i)]], xright = par()$usr[2], ytop = par("usr")[3] + diff(c(par("usr")[3], min(zlim))) * 0.9, ybottom = par("usr")[3], col = col.rug[length(col.rug)], density = 50, border = NA, lwd = 1) } ## add y axis to prevent overplotting graphics::axis(side = 1) ## add box if needed if(box) graphics::box() } ##plot additional mtext mtext(mtext, side = 3, cex = cex*0.8) } else if (plot.type == "multiple.lines") { ## Plot: multiple.lines ---- ## ========================================================================# col.rug <- col col<- if("col" %in% names(extraArgs)) {extraArgs$col} else {"black"} box <- if("box" %in% names(extraArgs)) extraArgs$box else TRUE frames <- if("frames" %in% names(extraArgs)) extraArgs$frames else 1:length(y) ##change graphic settings par.default <- par()[c("mfrow", "mar", "xpd")] par(mfrow = c(1,1), mar=c(5.1, 4.1, 4.1, 8.1), xpd = TRUE) ##grep zlim if("zlim" %in% names(extraArgs) == FALSE){zlim <- range(temp.xyz)} ##open plot area plot(NA, NA, xlab = xlab, ylab = ylab, main = main, xlim = xlim, ylim = zlim, frame = box, xaxt = "n", sub = sub, bty = bty) ## add colour rug if(rug){ ##rug as continuous rectangle i <- floor(seq(1,length(x), length.out = 300)) graphics::rect( xleft = x[i[-length(i)]], xright = x[i[-1]], ytop = par("usr")[3] + diff(c(par("usr")[3], min(zlim))) * 0.9, ybottom = par("usr")[3], col = col.rug[i], border = NA, lwd = NA) ## add rectangle from zero to first value graphics::rect( xleft = par()$usr[1], xright = x[i[1]], ytop = par("usr")[3] + diff(c(par("usr")[3], min(zlim))) * 0.9, ybottom = par("usr")[3], col = col.rug[1], density = 50, border = NA, lwd = 1) ## add rectangle from the last value to end of plot graphics::rect( xleft = x[i[length(i)]], xright = par()$usr[2], ytop = par("usr")[3] + diff(c(par("usr")[3], min(zlim))) * 0.9, ybottom = par("usr")[3], col = col.rug[length(col.rug)], density = 50, border = NA, lwd = 1) } ##add lines for(i in frames){ lines(x, temp.xyz[,i], lty = i, lwd = lwd, type = type, col = col) } ## add y axis to prevent overplotting graphics::axis(side = 1) ## add box if needed if(box) graphics::box() ##for missing values - legend.text if(missing(legend.text)) legend.text <- as.character(paste(round(y[frames],digits=1), zlab)) ##legend legend(x = par()$usr[2], y = par()$usr[4], legend = legend.text, lwd= lwd, lty = frames, bty = "n", cex = 0.6*cex) ##plot additional mtext mtext(mtext, side = 3, cex = cex*0.8) ##reset graphic settings par(par.default) rm(par.default) } else if (plot.type == "transect") { ## Plot: transect plot ---- ## ========================================================================# ##sum up rows (column sum) temp.xyz <- colSums(temp.xyz) ##consider differences within the arguments #check for zlim zlim <- if("zlim" %in% names(extraArgs)) {extraArgs$zlim} else {c(0,max(temp.xyz))} #check for zlim zlab <- if("ylab" %in% names(extraArgs)) {extraArgs$ylab} else {paste("Counts [1/summed channels]")} plot(y, temp.xyz, xlab = ylab, ylab = zlab, main = main, xlim = ylim, ylim = zlim, col = col, sub = paste("(channel range: ", min(xlim), " : ", max(xlim), ")", sep=""), type = type, pch = pch) ##plot additional mtext mtext(mtext, side = 3, cex = cex*0.8) } } # Return ------------------------------------------------------------------ ## add some attributes attr(temp.xyz, "colour") <- col attr(temp.xyz, "pmat") <- pmat ## return visible or not if(plot) invisible(temp.xyz) else return(temp.xyz) } Luminescence/R/calc_MinDose.R0000644000176200001440000011562514762554470015560 0ustar liggesusers#' Apply the (un-)logged minimum age model (MAM) after Galbraith et al. (1999) #' to a given De distribution #' #' Function to fit the (un-)logged three or four parameter minimum dose model #' (MAM-3/4) to De data. #' #' **Parameters** #' #' This model has four parameters: #' \tabular{rl}{ #' `gamma`: \tab minimum dose on the log scale \cr #' `mu`: \tab mean of the non-truncated normal distribution \cr #' `sigma`: \tab spread in ages above the minimum \cr #' `p0`: \tab proportion of grains at gamma \cr } #' #' If `par=3` (default) the 3-parameter minimum age model is applied, #' where `gamma=mu`. For `par=4` the 4-parameter model is applied instead. #' #' **(Un-)logged model** #' #' In the original version of the minimum dose model, the basic data are the natural #' logarithms of the De estimates and relative standard errors of the De #' estimates. The value for `sigmab` must be provided as a ratio #' (e.g, 0.2 for 20 %). This model will be applied if `log = TRUE`. #' #' If `log=FALSE`, the modified un-logged model will be applied instead. This #' has essentially the same form as the original version. `gamma` and #' `sigma` are in Gy and `gamma` becomes the minimum true dose in the #' population. #' **Note** that the un-logged model requires `sigmab` to be in the same #' absolute unit as the provided De values (seconds or Gray). #' #' While the original (logged) version of the minimum dose #' model may be appropriate for most samples (i.e. De distributions), the #' modified (un-logged) version is specially designed for modern-age and young #' samples containing negative, zero or near-zero De estimates (Arnold et al. #' 2009, p. 323). #' #' **Initial values & boundaries** #' #' The log likelihood calculations use the [nlminb] function for box-constrained #' optimisation using PORT routines. Accordingly, initial values for the four #' parameters can be specified via `init.values`. If no values are #' provided for `init.values`, reasonable starting values are estimated #' from the input data. If the final estimates of *gamma*, *mu*, #' *sigma* and *p0* are totally off target, consider providing custom #' starting values via `init.values`. #' In contrast to previous versions of this function, the boundaries for the #' individual model parameters are no longer required to be explicitly specified. #' If you want to override the default boundary values use arguments #' `gamma.lower`, `gamma.upper`, `sigma.lower`, `sigma.upper`, `p0.lower`, `p0.upper`, #' `mu.lower` and `mu.upper`. #' #' **Bootstrap** #' #' When `bootstrap=TRUE` the function applies the bootstrapping method as #' described in Wallinga & Cunningham (2012). By default, the minimum age model #' produces 1000 first level and 3000 second level bootstrap replicates #' (actually, the number of second level bootstrap replicates is three times #' the number of first level replicates unless specified otherwise). The #' uncertainty on `sigmab` is 0.04 by default. These values can be changed by #' using the arguments `bs.M` (first level replicates), `bs.N` #' (second level replicates) and `sigmab.sd` (error on `sigmab`). With #' `bs.h` the bandwidth of the kernel density estimate can be specified. #' By default, `h` is calculated as #' #' \deqn{h = (2*\sigma_{DE})/\sqrt{n}} #' #' **Multicore support** #' #' This function supports parallel computing and can be activated by `multicore=TRUE`. #' By default, the number of available logical CPU cores is determined #' automatically, but can be changed with `cores`. The multicore support #' is only available when `bootstrap=TRUE` and spawns `n` R instances #' for each core to get MAM estimates for each of the N and M bootstrap #' replicates. Note that this option is highly experimental and may or may not #' work for your machine. The performance gain increases for larger number #' of bootstrap replicates. However, note that with each additional core (and #' hence R instance) the memory usage can significantly increase and depending #' on the number of bootstrap replicates. When insufficient memory is available, #' there will be a massive performance hit. #' #' **Likelihood profiles** #' #' The likelihood profiles are generated and plotted by the `bbmle` package. #' The profile likelihood plots look different to ordinary profile likelihood as #' #' "`[...]` the plot method for likelihood profiles displays the square root of #' the deviance difference (twice the difference in negative log-likelihood from #' the best fit), so it will be V-shaped for cases where the quadratic approximation #' works well `[...]`." (Bolker 2016). #' #' For more details on the profile likelihood #' calculations and plots please see the vignettes of the `bbmle` package #' (also available here: [https://CRAN.R-project.org/package=bbmle]()). #' #' @param data [RLum.Results-class] or [data.frame] (**required**): #' for [data.frame]: two columns with De `(data[ ,1])` and De error `(data[ ,2])`. #' #' @param sigmab [numeric] (**required**): #' additional spread in De values. #' This value represents the expected overdispersion in the data should the sample be #' well-bleached (Cunningham & Walling 2012, p. 100). #' **NOTE**: For the logged model (`log = TRUE`) this value must be #' a fraction, e.g. 0.2 (= 20 %). If the un-logged model is used (`log = FALSE`), #' `sigmab` must be provided in the same absolute units of the De values (seconds or Gray). #' See details. #' #' @param log [logical] (*with default*): #' fit the (un-)logged minimum dose model to De data. #' #' @param par [numeric] (*with default*): #' apply the 3- or 4-parameter minimum age model (`par=3` or `par=4`). The MAM-3 is #' used by default. #' #' @param bootstrap [logical] (*with default*): #' apply the recycled bootstrap approach of Cunningham & Wallinga (2012). #' #' @param init.values [numeric] (*optional*): #' a named list with starting values for `gamma`, `sigma`, `p0` and `mu` #' (e.g. `list(gamma=100, sigma=1.5, p0=0.1, mu=100)`). If no values are #' provided, reasonable values will be estimated from the data. #' **NOTE**: the initial values must always be given in the absolute units. #' If a logged model is applied (`log = TRUE`), the provided `init.values` #' are automatically log-transformed. #' #' @param level [logical] (*with default*): #' the confidence level required (defaults to 0.95). #' #' @param log.output [logical] (*with default*): #' If `TRUE` the console output will also show the logged values of the final parameter estimates #' and confidence intervals (only applicable if `log = TRUE`). #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param multicore [logical] (*with default*): #' enable parallel computation of the bootstrap by creating a multicore SNOW cluster. Depending #' on the number of available logical CPU cores this may drastically reduce #' the computation time. Note that this option is highly experimental and may not #' work on all machines. (`TRUE`/`FALSE`) #' #' @param ... (*optional*) further arguments for bootstrapping #' (`bs.M`, `bs.N`, `bs.h`, `sigmab.sd`). See details for their usage. #' Further arguments are #' - `verbose` to de-/activate console output (logical), #' - `debug` for extended console output (logical) and #' - `cores` (integer) to manually specify the number of cores to be used when `multicore=TRUE`. #' #' @return Returns a plot (*optional*) and terminal output. In addition an #' [RLum.Results-class] object is returned containing the #' following elements: #' #' \item{$summary}{[data.frame] summary of all relevant model results.} #' \item{$data}{[data.frame] original input data} #' \item{$args}{[list] used arguments} #' \item{$call}{[call] the function call} #' \item{$mle}{[bbmle::mle2] object containing the maximum log likelihood functions for all parameters} #' \item{$BIC}{[numeric] BIC score} #' \item{$confint}{[data.frame] confidence intervals for all parameters} #' \item{$profile}{[stats::profile] the log likelihood profiles} #' \item{$bootstrap}{[list] bootstrap results} #' #' The output should be accessed using the function [get_RLum]. #' #' @note #' The default starting values for *gamma*, *mu*, *sigma* #' and *p0* may only be appropriate for some De data sets and may need to #' be changed for other data. This is especially true when the un-logged #' version is applied. \cr #' Also note that all R warning messages are suppressed #' when running this function. If the results seem odd consider re-running the #' model with `debug=TRUE` which provides extended console output and #' forwards all internal warning messages. #' #' @section Function version: 0.4.4 #' #' @author #' Christoph Burow, University of Cologne (Germany) \cr #' Based on a rewritten S script of Rex Galbraith, 2010 \cr #' The bootstrap approach is based on a rewritten MATLAB script of Alastair Cunningham. \cr #' Alastair Cunningham is thanked for his help in implementing and cross-checking the code. #' #' @seealso [calc_CentralDose], [calc_CommonDose], [calc_FiniteMixture], #' [calc_FuchsLang2001], [calc_MaxDose] #' #' @references #' Arnold, L.J., Roberts, R.G., Galbraith, R.F. & DeLong, S.B., #' 2009. A revised burial dose estimation procedure for optical dating of young #' and modern-age sediments. Quaternary Geochronology 4, 306-325. #' #' Galbraith, R.F. & Laslett, G.M., 1993. Statistical models for mixed fission #' track ages. Nuclear Tracks Radiation Measurements 4, 459-470. #' #' Galbraith, R.F., Roberts, R.G., Laslett, G.M., Yoshida, H. & Olley, J.M., #' 1999. Optical dating of single grains of quartz from Jinmium rock shelter, #' northern Australia. Part I: experimental design and statistical models. #' Archaeometry 41, 339-364. #' #' Galbraith, R.F., 2005. Statistics for #' Fission Track Analysis, Chapman & Hall/CRC, Boca Raton. #' #' Galbraith, R.F. & Roberts, R.G., 2012. Statistical aspects of equivalent dose and error #' calculation and display in OSL dating: An overview and some recommendations. #' Quaternary Geochronology 11, 1-27. #' #' Olley, J.M., Roberts, R.G., Yoshida, H., Bowler, J.M., 2006. Single-grain optical dating of grave-infill #' associated with human burials at Lake Mungo, Australia. Quaternary Science #' Reviews 25, 2469-2474. #' #' **Further reading** #' #' Arnold, L.J. & Roberts, R.G., 2009. Stochastic modelling of multi-grain equivalent dose #' (De) distributions: Implications for OSL dating of sediment mixtures. #' Quaternary Geochronology 4, 204-230. #' #' Bolker, B., 2016. Maximum likelihood estimation analysis with the bbmle package. #' In: Bolker, B., R Development Core Team, 2016. bbmle: Tools for General Maximum Likelihood Estimation. #' R package version 1.0.18. [https://CRAN.R-project.org/package=bbmle]() #' #' Bailey, R.M. & Arnold, L.J., 2006. Statistical modelling of single grain quartz De distributions and an #' assessment of procedures for estimating burial dose. Quaternary Science #' Reviews 25, 2475-2502. #' #' Cunningham, A.C. & Wallinga, J., 2012. Realizing the potential of fluvial archives using robust OSL chronologies. #' Quaternary Geochronology 12, 98-106. #' #' Rodnight, H., Duller, G.A.T., Wintle, A.G. & Tooth, S., 2006. Assessing the reproducibility and accuracy #' of optical dating of fluvial deposits. Quaternary Geochronology 1, 109-120. #' #' Rodnight, H., 2008. How many equivalent dose values are needed to #' obtain a reproducible distribution?. Ancient TL 26, 3-10. #' #' #' @examples #' #' ## Load example data #' data(ExampleData.DeValues, envir = environment()) #' #' # (1) Apply the minimum age model with minimum required parameters. #' # By default, this will apply the un-logged 3-parameter MAM. #' calc_MinDose(data = ExampleData.DeValues$CA1, sigmab = 0.1) #' #' \dontrun{ #' # (2) Re-run the model, but save results to a variable and turn #' # plotting of the log-likelihood profiles off. #' mam <- calc_MinDose( #' data = ExampleData.DeValues$CA1, #' sigmab = 0.1, #' plot = FALSE) #' #' # Show structure of the RLum.Results object #' mam #' #' # Show summary table that contains the most relevant results #' res <- get_RLum(mam, "summary") #' res #' #' # Plot the log likelihood profiles retroactively, because before #' # we set plot = FALSE #' plot_RLum(mam) #' #' # Plot the dose distribution in an abanico plot and draw a line #' # at the minimum dose estimate #' plot_AbanicoPlot(data = ExampleData.DeValues$CA1, #' main = "3-parameter Minimum Age Model", #' line = mam,polygon.col = "none", #' hist = TRUE, #' rug = TRUE, #' summary = c("n", "mean", "mean.weighted", "median", "in.ci"), #' centrality = res$de, #' line.col = "red", #' grid.col = "none", #' line.label = paste0(round(res$de, 1), "\U00B1", #' round(res$de_err, 1), " Gy"), #' bw = 0.1, #' ylim = c(-25, 18), #' summary.pos = "topleft", #' mtext = bquote("Parameters: " ~ #' sigma[b] == .(get_RLum(mam, "args")$sigmab) ~ ", " ~ #' gamma == .(round(log(res$de), 1)) ~ ", " ~ #' sigma == .(round(res$sig, 1)) ~ ", " ~ #' rho == .(round(res$p0, 2)))) #' #' #' #' # (3) Run the minimum age model with bootstrap #' # NOTE: Bootstrapping is computationally intensive #' # (3.1) run the minimum age model with default values for bootstrapping #' calc_MinDose(data = ExampleData.DeValues$CA1, #' sigmab = 0.15, #' bootstrap = TRUE) #' #' # (3.2) Bootstrap control parameters #' mam <- calc_MinDose(data = ExampleData.DeValues$CA1, #' sigmab = 0.15, #' bootstrap = TRUE, #' bs.M = 300, #' bs.N = 500, #' bs.h = 4, #' sigmab.sd = 0.06, #' plot = FALSE) #' #' # Plot the results #' plot_RLum(mam) #' #' # save bootstrap results in a separate variable #' bs <- get_RLum(mam, "bootstrap") #' #' # show structure of the bootstrap results #' str(bs, max.level = 2, give.attr = FALSE) #' #' # print summary of minimum dose and likelihood pairs #' summary(bs$pairs$gamma) #' #' # Show polynomial fits of the bootstrap pairs #' bs$poly.fits$poly.three #' #' # Plot various statistics of the fit using the generic plot() function #' par(mfcol=c(2,2)) #' plot(bs$poly.fits$poly.three, ask = FALSE) #' #' # Show the fitted values of the polynomials #' summary(bs$poly.fits$poly.three$fitted.values) #' } #' #' @md #' @export calc_MinDose <- function( data, sigmab, log = TRUE, par = 3, bootstrap = FALSE, init.values, level = 0.95, log.output = FALSE, plot = TRUE, multicore = FALSE, ... ) { .set_function_name("calc_MinDose") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(data, c("data.frame", "RLum.Results")) .validate_not_empty(data) if (is(data, "RLum.Results")) { data <- get_RLum(data, "data") } if (any(!stats::complete.cases(data))) { message("\n[calc_MinDose] Warning: Input data contained NA/NaN values, ", "which were removed prior to calculations!") data <- data[stats::complete.cases(data), ] } if (!missing(init.values)) { if (!is.list(init.values)) { .throw_error("'init.values' is expected to be a named list") } exp.names <- c("gamma", "sigma", "p0", "mu") mis.names <- setdiff(exp.names, names(init.values)) if (length(init.values) != length(exp.names) || length(mis.names) > 0) { .throw_error("Please provide initial values for all model parameters. ", "\nMissing parameters: ", paste(mis.names, collapse = ", ")) } } ## par can only be 3 or 4 .validate_positive_scalar(par, int = TRUE) if (!par %in% c(3, 4)) { .throw_error("'par' can only be set to 3 or 4") } ##============================================================================## ## ... ARGUMENTS ##============================================================================## extraArgs <- list(...) ## check if this function is called by calc_MaxDose() if ("invert" %in% names(extraArgs)) { invert <- extraArgs$invert .validate_logical_scalar(invert) if (!log) { log <- TRUE # overwrite user choice as max dose model currently only supports the logged version cat(paste("\n[WARNING] The maximum dose model only supports the logged version.", "'log' was automatically changed to TRUE.\n\n")) } } else { invert <- FALSE } ## console output if ("verbose" %in% names(extraArgs)) { verbose <- extraArgs$verbose .validate_logical_scalar(verbose) } else { verbose <- TRUE } ## bootstrap replications # first level bootstrap if ("bs.M" %in% names(extraArgs)) { M <- as.integer(extraArgs$bs.M) .validate_positive_scalar(M, int = TRUE, name = "'bs.M'") } else { M <- 1000 } # second level bootstrap if ("bs.N" %in% names(extraArgs)) { N <- as.integer(extraArgs$bs.N) .validate_positive_scalar(N, int = TRUE, name= "'bs.N'") } else { N <- 3*M } # KDE bandwith if ("bs.h" %in% names(extraArgs)) { h <- extraArgs$bs.h .validate_positive_scalar(h, name = "'bs.h'") } else { h <- (sd(data[ ,1])/sqrt(length(data[ ,1])))*2 } # standard deviation of sigmab if ("sigmab.sd" %in% names(extraArgs)) { sigmab.sd <- extraArgs$sigmab.sd .validate_positive_scalar(sigmab.sd) } else { sigmab.sd <- 0.04 } if ("debug" %in% names(extraArgs)) { debug <- extraArgs$debug .validate_logical_scalar(debug) } else { debug <- FALSE } if ("cores" %in% names(extraArgs)) { cores <- extraArgs$cores .validate_positive_scalar(cores, int = TRUE) } else { cores <- parallel::detectCores() if (multicore) message(paste("Logical CPU cores detected:", cores)) # nocov } ## WARNINGS ---- # if (!debug) # options(warn = -1) ##============================================================================## ## START VALUES ##============================================================================## if (missing(init.values)) { start <- list(gamma = ifelse(log, log(quantile(data[ ,1], probs = 0.25, na.rm = TRUE)), quantile(data[ ,1], probs = 0.25, na.rm = TRUE)), sigma = 1.2, p0 = 0.01, mu = ifelse(log, log(quantile(data[ ,1], probs = 0.25, na.rm = TRUE)), mean(data[ ,1]))) } else { start <- list(gamma = ifelse(log, log(init.values$gamma), init.values$gamma), sigma = ifelse(log, log(init.values$sigma), init.values$sigma), p0 = init.values$p0, mu = ifelse(log, log(init.values$mu), init.values$mu)) } ##============================================================================## ## ESTIMATE BOUNDARY PARAMETERS ##============================================================================## boundaries <- list( # gamma.lower = min(data[ ,1]/10), # gamma.upper = max(data[ ,1]*1.1), # sigma.lower = 0, # sigma.upper = 5, # mu.lower = min(data[ ,1])/10, # mu.upper = max(data[ ,1]*1.1) gamma.lower = -Inf, gamma.upper = Inf, sigma.lower = 0, sigma.upper = Inf, p0.lower = 0, p0.upper = 1, mu.lower = -Inf, mu.upper = Inf ) boundaries <- modifyList(boundaries, list(...)) # combine lower and upper boundary values to vectors if (log) { xlb <- c(ifelse(is.infinite(boundaries$gamma.lower), boundaries$gamma.lower, log(boundaries$gamma.lower)), boundaries$sigma.lower, boundaries$p0.lower) xub <- c(ifelse(is.infinite(boundaries$gamma.upper), boundaries$gamma.upper, log(boundaries$gamma.upper)), boundaries$sigma.upper, boundaries$p0.lower) } else { xlb <- c(boundaries$gamma.lower, boundaries$sigma.lower, boundaries$p0.lower) xub <- c(boundaries$gamma.upper, exp(boundaries$sigma.upper), boundaries$p0.lower) } if (par == 4) { xlb <- c(xlb, ifelse(log, ifelse(is.infinite(boundaries$mu.lower), -Inf, log(boundaries$mu.lower)), boundaries$mu.lower)) xub <- c(xub, ifelse(log, ifelse(is.infinite(boundaries$mu.upper), -Inf, log(boundaries$mu.upper)), boundaries$mu.upper)) } ##============================================================================## ## AUXILLARY FUNCTIONS ##============================================================================## # THIS FUNCTION CALCULATES THE NEGATIVE LOG LIKELIHOOD OF THE DATA Neglik_f <- function(gamma, sigma, p0, mu, data) { # this calculates the negative of the log likelihood of the # data (data) for a given set of parameters (gamma, sigma, p0) # data is a 2x2 matrix of data: De, rel_error (including sigma_b) # recover the data zi <- data[ ,1] si <- data[ ,2] n <- length(zi) # in the MAM-3 gamma and mu are assumed to be equal if (par == 3) mu <- gamma # calculate sigma^2 + seld^2, mu0 and sigma0 s2 <- sigma^2 + si^2 sigma0 <- 1/sqrt(1/sigma^2 + 1/si^2) mu0 <- (mu/sigma^2 + zi/si^2)/(1/sigma^2 + 1/si^2) # calculate the log-likelihood logsqrt2pi <- 0.5*log(2*pi) res0 <- (gamma - mu0)/sigma0 res1 <- (gamma - mu)/sigma lf1i <- log(p0) - log(si) - 0.5*((zi-gamma)/si)^2 - logsqrt2pi lf2i <- log(1-p0) - 0.5*log(s2) - 0.5*(zi-mu)^2/s2 - logsqrt2pi lf2i <- lf2i + log(1 - stats::pnorm(res0)) - log(1 - stats::pnorm(res1)) llik <- log( exp(lf1i) + exp(lf2i) ) negll <- -sum(llik) return(negll) } # THIS MAXIMIZES THE Neglik_f LIKELIHOOD FUNCTION AND RETURNS AN MLE OBJECT Get_mle <- function(data) { # TODO: PROPER ERROR HANDLING tryCatch({ suppressWarnings( mle <- bbmle::mle2(data = list(data = data), optimizer = "nlminb", lower=c(gamma = boundaries$gamma.lower, sigma = boundaries$sigma.lower, p0 = boundaries$p0.lower, mu = boundaries$mu.lower), upper=c(gamma = boundaries$gamma.upper, sigma = boundaries$sigma.upper, p0 = boundaries$p0.upper, mu = boundaries$mu.upper), minuslogl = Neglik_f, control = list(iter.max = 1000L), start = start) ) }, error = function(e) { .throw_error("Sorry, seems like I encountered an error: ", e) }) return(mle) } ##============================================================================## ## MAIN PROGRAM ##============================================================================## # combine errors if (log) { if (invert) { lcd <- log(data[ ,1])*-1 x.offset <- abs(min(lcd)) lcd <- lcd+x.offset } else { lcd <- log(data[ ,1]) } lse <- sqrt((data[ ,2]/data[ ,1])^2 + sigmab^2) } else { lcd <- data[ ,1] lse <- sqrt(data[ ,2]^2 + sigmab^2) } # create new data frame with DE and combined relative error dat <- cbind(lcd, lse) # get the maximum likelihood estimate ests <- Get_mle(dat) # check if any standard errors are NA or NaN coef_err <- suppressWarnings( t(as.data.frame(bbmle::summary(ests)@coef[ ,2])) ) if (debug) print(bbmle::summary(ests)) if (any(is.nan(coef_err))) coef_err[which(is.nan(coef_err))] <- t(as.data.frame(ests@coef))[which(is.nan(coef_err))] / 100 if (anyNA(coef_err)) coef_err[which(is.na(coef_err))] <- t(as.data.frame(ests@coef))[which(is.na(coef_err))] / 100 if (par == 3) which <- c("gamma", "sigma", "p0") if (par == 4) which <- c("gamma", "sigma", "p0", "mu") # calculate profile log likelihoods prof <- suppressWarnings( bbmle::profile(ests, which = which, std.err = as.vector(coef_err), #try_harder = TRUE, quietly = TRUE, tol.newmin = Inf, skiperrs = TRUE, prof.lower=c(gamma = -Inf, sigma = 0, p0 = 0, mu = -Inf), prof.upper=c(gamma = Inf, sigma = Inf, p0 = 1, mu = Inf) ) ) # Fallback when profile() returns a 'better' fit maxsteps <- 100 cnt <- 1 while (!inherits(prof, "profile.mle2")) { if (maxsteps == 0L) .throw_error("Couldn't find a converging fit for the profile log-likelihood") if (verbose) message("## Trying to find a better fit (", cnt, "/10) ##") prof <- suppressWarnings( bbmle::profile(ests, which = which, std.err = as.vector(coef_err), # try_harder = TRUE, quietly = TRUE, maxsteps = maxsteps, tol.newmin = Inf, skiperrs = TRUE, prof.lower=c(gamma = -Inf, sigma = 0, p0 = 0, mu = -Inf), prof.upper=c(gamma = Inf, sigma = Inf, p0 = 1, mu = Inf) ) ) maxsteps <- maxsteps - 10 cnt <- cnt + 1 } ## TODO: reduce the redundant code ## DELETE rows where z = -Inf/Inf prof@profile$gamma <- prof@profile$gamma[which(prof@profile$gamma["z"] != Inf), ] prof@profile$gamma <- prof@profile$gamma[which(prof@profile$gamma["z"] != -Inf), ] prof@profile$sigma <- prof@profile$sigma[which(prof@profile$sigma["z"] != Inf), ] prof@profile$sigma <- prof@profile$sigma[which(prof@profile$sigma["z"] != -Inf), ] prof@profile$p0 <- prof@profile$p0[which(prof@profile$p0["z"] != Inf), ] prof@profile$p0 <- prof@profile$p0[which(prof@profile$p0["z"] != -Inf), ] if (par == 4) { prof@profile$mu <- prof@profile$mu[which(prof@profile$mu["z"] != Inf), ] prof@profile$mu <- prof@profile$mu[which(prof@profile$mu["z"] != -Inf), ] } # calculate Bayesian Information Criterion (BIC) BIC <- BIC(ests) # retrieve results from mle2-object pal <- if (log) { if (invert) { exp((bbmle::coef(ests)[["gamma"]]-x.offset)*-1) } else { exp(bbmle::coef(ests)[["gamma"]]) } } else { bbmle::coef(ests)[["gamma"]] } sig <- bbmle::coef(ests)[["sigma"]] p0end <- bbmle::coef(ests)[["p0"]] if (par == 4) { muend <- ifelse(log, exp(bbmle::coef(ests)[["mu"]]), bbmle::coef(ests)[["mu"]]) } else { muend <- NA } ##============================================================================## ## ERROR CALCULATION #### METHOD 1: follow the instructions of Galbraith & Roberts (2012) #### # "If the likelihood profile is symmetrical about the parameter, an approximate standard error # can be calculated by dividing the length of this interval by 3.92" conf <- suppressWarnings( as.data.frame(bbmle::confint(prof, tol.newmin = Inf, quietly = TRUE, level = level)) ) class(conf[,1]) <- class(conf[,2]) <- "numeric" if (invert) { conf[1, ] <- (conf[1, ]-x.offset)*-1 t <- conf[1,1] conf[1,1] <- conf[1,2] conf[1,2] <- t } gamma_err <- if (log) { (exp(conf["gamma",2])-exp(conf["gamma",1]))/3.92 } else { (conf["gamma",2]-conf["gamma",1])/3.92 } ##============================================================================## ## AGGREGATE RESULTS summary <- data.frame(de=pal, de_err=gamma_err, ci_level = level, "ci_lower"=ifelse(log, exp(conf["gamma",1]), conf["gamma",1]), "ci_upper"=ifelse(log, exp(conf["gamma",2]), conf["gamma",2]), par=par, sig=ifelse(log, exp(sig), sig), p0=p0end, mu=muend, Lmax=-ests@min, BIC=BIC) call <- sys.call() args <- list(log=log, sigmab=sigmab, par = par, bootstrap=bootstrap, init.values=start, log.output = log.output, bs.M=M, bs.N=N, bs.h=h, sigmab.sd=sigmab.sd) ##============================================================================## ## BOOTSTRAP ##============================================================================## if (bootstrap) { ## BOOTSTRAP FUNCTIONS ---- # Function that draws N+M sets of integer values from 1:n and returns # both the indices and frequencies draw_Freq <- function() { f <- R <- matrix(0L, N+M, n) for (i in seq_len(N+M)) { R[i, ] <- sample(x = n, size = n, replace = TRUE) f[i, ] <- tabulate(R, n) } return(list(R = R, freq = f)) } # Function that adds the additional error sigmab to each individual DE error combine_Errors <- function(d, e) { if (log) { d[ ,2] <- sqrt((d[ ,2]/d[ ,1])^2 + e^2) d[ ,1] <- log(d[ ,1]) } else { d[ ,2] <- sqrt(d[ ,2]^2 + e^2) } return(d) } # Function that produces N+M replicates from the original data set using # randomly sampled indices with replacement and adding a randomly drawn # sigmab error create_Replicates <- function(f, s) { d <- apply(f$R, 1, function(x) data[x, ]) r <- mapply(function(x, y) combine_Errors(x, y), d, s, SIMPLIFY = FALSE) return(r) } # Function to extract the estimate of gamma from mle2 objects and converting # it back to the 'normal' scale save_Gamma <- function(d) { m <- bbmle::coef(d)[["gamma"]] if (log && invert) { m <- exp(-(m - x.offset)) } return(m) } # Function that takes each of the N replicates and produces a kernel density # estimate of length n. The normalised values are then returned as a matrix # with dimensions [N, n] get_KDE <- function(d) { f <- approx(density(x=d[ ,1], kernel="gaussian", bw = h), xout = d[ ,1]) pStarTheta <- as.vector(f$y / sum(f$y)) x <- matrix(t(pStarTheta/(1/n)), N, n, byrow = TRUE) return(x) } # Function that calculates the product term of the recycled bootstrap get_ProductTerm <- function(Pmat, b2Pmatrix) { prodterm <- apply(Pmat^b2Pmatrix$freq[1:N, ], 1, prod) return(prodterm) } # Function that calculates the pseudo likelihoods for M replicates and # returns the dose-likelihood pairs make_Pairs <- function(theta, b2mamvec, prodterm) { pairs <- matrix(0, M, 2) for (i in seq_len(M)) { thetavec <- matrix(theta[i], N, 1) kdthis <- (thetavec-b2mamvec)/h kd1 <- dnorm(kdthis) kd2 <- kd1*prodterm[[i]] kd <- sum(kd2, na.rm = TRUE) likelihood <- (1/(N*h))*kd pairs[i, ] <- c(theta[i], likelihood) } return(pairs) } ## START BOOTSTRAP ---- msg <- sprintf(paste("\n [calc_MinDose] \n\nRecycled Bootstrap", "\n\nParameters:", "\n M = %d", "\n N = %d", "\n sigmab = %.2f \U00B1 %.2f", "\n h = %.2f", "\n\n Creating %d bootstrap replicates..."), M, N, sigmab, sigmab.sd, h, N+M) if (verbose) message(msg) n <- length(data[ ,1]) # Draw N+M samples of a normale distributed sigmab sigmab <- rnorm(N + M, sigmab, sigmab.sd) # Draw N+M random indices and their frequencies b2Pmatrix <- draw_Freq() # Finally draw N+M bootstrap replicates replicates <- create_Replicates(b2Pmatrix, sigmab) # MULTICORE: The call to 'Get_mle' is the bottleneck of the function. # Using multiple CPU cores can reduce the computation cost, but may # not work for all machines. if (multicore) { if (verbose) { message("\n Spawning ", cores, " instances of R for ", "parallel computation. This may take a few seconds...") } cl <- parallel::makeCluster(cores) if (verbose) { message(" Done!\n Applying the model to all replicates. ", "This may take a while...") } mle <- parallel::parLapply(cl, replicates, Get_mle) parallel::stopCluster(cl) } else { if (verbose) { message("\n Applying the model to all replicates. This may take a while...") } mle <- lapply(replicates, Get_mle) } # Final bootstrap calculations if (verbose) message("\n Calculating the likelihoods...") # Save 2nd- and 1st-level bootstrap results (i.e. estimates of gamma) b2mamvec <- as.matrix(sapply(mle[1:N], save_Gamma, simplify = TRUE)) theta <- sapply(mle[c(N+1):c(N+M)], save_Gamma) # Calculate the probability/pseudo-likelihood Pmat <- lapply(replicates[c(N+1):c(N+M)], get_KDE) prodterm <- lapply(Pmat, get_ProductTerm, b2Pmatrix) # Save the bootstrap results as dose-likelihood pairs pairs <- make_Pairs(theta, b2mamvec, prodterm) ## --------- FIT POLYNOMIALS -------------- ## if (verbose) message("\n Fit curves to dose-likelihood pairs...") # polynomial fits of increasing degrees ## if the input values are too close to zero, we may get ## Inf values >>> we remove them here with a warning is.inf <- is.infinite(pairs[, 2]) if (any(is.inf)) { .throw_warning("Inf values produced by bootstrapping removed for loess ", "fitting (", round(sum(is.inf) / nrow(pairs) * 100, 2), "% of the total dataset). This message usually indicates ", "that your values are close to 0.") pairs <- pairs[!is.inf, ] } poly.three <- stats::lm(pairs[, 2] ~ poly(pairs[, 1], degree = 3, raw = TRUE)) poly.four <- stats::lm(pairs[, 2] ~ poly(pairs[, 1], degree = 4, raw = TRUE)) poly.five <- stats::lm(pairs[, 2] ~ poly(pairs[, 1], degree = 5, raw = TRUE)) poly.six <- stats::lm(pairs[, 2] ~ poly(pairs[, 1], degree = 6, raw = TRUE)) ## --------- FIT LOESS -------------- ## # Polynomials are probably not reasonable and often suffer badly from # overfitting, especially towards the margins of the fitted data. In this # particular use case polynomials may suggest a multimodal likelihood # distribution where actually none is given. The non-parametric # LOESS (LOcal polynomial regrESSion) often yields better results than # standard polynomials. loess <- loess(pairs[ ,2] ~ pairs[ ,1]) }#EndOf::Bootstrap ##============================================================================## ## CONSOLE PRINT ##============================================================================## if (verbose) { if (!bootstrap) { cat("\n----------- meta data -----------\n") print(data.frame(n=length(data[ ,1]), par=par, sigmab=sigmab, logged=log, Lmax=-ests@min, BIC=BIC, row.names = "")) cat("\n--- final parameter estimates ---\n") tmp <- round(data.frame( gamma=ifelse(!invert, ifelse(log, exp(bbmle::coef(ests)[["gamma"]]), bbmle::coef(ests)[["gamma"]]), ifelse(log, exp((bbmle::coef(ests)[["gamma"]]-x.offset)*-1),(bbmle::coef(ests)[["gamma"]]-x.offset)*-1) ), sigma=ifelse(log, exp(bbmle::coef(ests)[["sigma"]]), bbmle::coef(ests)[["sigma"]]), p0=bbmle::coef(ests)[["p0"]], mu=ifelse(par==4, muend, 0), row.names="", check.names = FALSE), 2) if (log && log.output) { tmp$`log(gamma)` = round(log(tmp$gamma),2) tmp$`log(sigma)` = round(log(tmp$sigma),2) if (par == 4) tmp$`log(mu)` = round(log(tmp$mu),2) } print(tmp) cat("\n------ confidence intervals -----\n") conf_print <- round(conf, 2) if (log) { logged_rows <- row.names(conf_print) != "p0" conf_print[logged_rows, ] <- exp(conf_print[logged_rows, ]) conf_print <- round(conf_print, 2) if (log.output) { conf_tmp <- round(conf, 2) conf_tmp[which(rownames(conf_tmp) == "p0"), ] <- "-" conf_print <- cbind(round(conf_print, 2), setNames(conf_tmp, names(conf_tmp))) conf_print <- rbind( setNames(data.frame("", "", "(logged)", "(logged)", row.names = "", stringsAsFactors = FALSE), names(conf_print)), conf_print) } } print(conf_print) cat("\n------ De (asymmetric error) -----\n") print(round(data.frame(De=pal, "lower"=ifelse(log, exp(conf["gamma",1]), conf["gamma",1]), "upper"=ifelse(log, exp(conf["gamma",2]), conf["gamma",2]), row.names=""), 2)) cat("\n------ De (symmetric error) -----\n") print(round(data.frame(De=pal, error=gamma_err, row.names=""), 2)) } else if (bootstrap && verbose) { message("\n Finished!") } } ##============================================================================## ## RETURN VALUES ##============================================================================## if (invert) prof@profile$gamma$par.vals[ ,"gamma"] <- rev((prof@profile$gamma$par.vals[ ,"gamma"] - x.offset)*-1) if (!bootstrap) pairs <- poly.three <- poly.four <- poly.five <- poly.six <- loess <- NULL newRLumResults.calc_MinDose <- set_RLum( class = "RLum.Results", originator = "calc_MinDose", data = list(summary = summary, data = data, args = args, call = call, mle = ests, BIC = BIC, confint = conf, profile = prof, bootstrap = list( pairs = list(gamma=pairs), poly.fits = list(poly.three = poly.three, poly.four = poly.four, poly.five = poly.five, poly.six = poly.six), loess.fit = loess))) ##=========## ## PLOTTING if (plot) try(plot_RLum.Results(newRLumResults.calc_MinDose, ...)) # if (!debug) # options(warn = 0) if (!is.na(summary$mu) && !is.na(summary$de)) { ## equivalent to log(summary$de) > summary$mu, but also valid if de < 0 if (summary$de > exp(summary$mu)) .throw_warning("Gamma is larger than mu, consider running the model ", "with new boundary values (see details '?calc_MinDose')") } invisible(newRLumResults.calc_MinDose) } Luminescence/R/plot_NRt.R0000644000176200001440000002101214762554470014763 0ustar liggesusers#' @title Visualise natural/regenerated signal ratios #' #' @description #' This function creates a Natural/Regenerated signal vs. time (NR(t)) plot #' as shown in Steffen et al. 2009. #' #' This function accepts the individual curve data in many different formats. If #' `data` is a `list`, each element of the list must contain a two #' column `data.frame` or `matrix` containing the `XY` data of the curves #' (time and counts). Alternatively, the elements can be objects of class #' [RLum.Data.Curve-class]. #' #' Input values can also be provided as a `data.frame` or `matrix` where #' the first column contains the time values and each following column contains #' the counts of each curve. #' #' @param data [list], [data.frame], [matrix] or [RLum.Analysis-class] (**required**): #' X,Y data of measured values (time and counts). See details on individual data structure. #' #' @param log [character] (*optional*): #' logarithmic axes (`c("x", "y", "xy")`). #' #' @param smooth [character] (*with default*): #' apply data smoothing. If `"none"` (default), no data smoothing is applied. #' Use `"rmean"` to calculate the rolling mean, where `k` determines the #' width of the rolling window (see [data.table::frollmean]). `"spline"` #' applies a smoothing spline to each curve (see [stats::smooth.spline]) #' #' @param k [integer] (*with default*): #' integer width of the rolling window. #' #' @param legend [logical] (*with default*): #' enable/disable the plot legend. #' #' @param legend.pos [character] (*with default*): #' keyword specifying the position of the legend (see [legend]). #' #' @param ... further parameters passed to [plot] (also see [par]). #' #' #' @author Christoph Burow, University of Cologne (Germany) #' #' @seealso [plot] #' #' @return Returns a plot and [RLum.Analysis-class] object. #' #' @references #' Steffen, D., Preusser, F., Schlunegger, F., 2009. OSL quartz underestimation due to #' unstable signal components. Quaternary Geochronology, 4, 353-362. #' #' @examples #' #' ## load example data #' data("ExampleData.BINfileData", envir = environment()) #' #' ## EXAMPLE 1 #' #' ## convert Risoe.BINfileData object to RLum.Analysis object #' data <- Risoe.BINfileData2RLum.Analysis(object = CWOSL.SAR.Data, pos = 8, ltype = "OSL") #' #' ## extract all OSL curves #' allCurves <- get_RLum(data) #' #' ## keep only the natural and regenerated signal curves #' pos <- seq(1, 9, 2) #' curves <- allCurves[pos] #' #' ## plot a standard NR(t) plot #' plot_NRt(curves) #' #' ## re-plot with rolling mean data smoothing #' plot_NRt(curves, smooth = "rmean", k = 10) #' #' ## re-plot with a logarithmic x-axis #' plot_NRt(curves, log = "x", smooth = "rmean", k = 5) #' #' ## re-plot with custom axes ranges #' plot_NRt(curves, smooth = "rmean", k = 5, #' xlim = c(0.1, 5), ylim = c(0.4, 1.6), #' legend.pos = "bottomleft") #' #' ## re-plot with smoothing spline on log scale #' plot_NRt(curves, smooth = "spline", log = "x", #' legend.pos = "top") #' #' ## EXAMPLE 2 #' #' # you may also use this function to check whether all #' # TD curves follow the same shape (making it a TnTx(t) plot). #' posTD <- seq(2, 14, 2) #' curves <- allCurves[posTD] #' #' plot_NRt(curves, main = "TnTx(t) Plot", #' smooth = "rmean", k = 20, #' ylab = "TD natural / TD regenerated", #' xlim = c(0, 20), legend = FALSE) #' #' ## EXAMPLE 3 #' #' # extract data from all positions #' data <- lapply(1:24, FUN = function(pos) { #' Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = pos, ltype = "OSL") #' }) #' #' # get individual curve data from each aliquot #' aliquot <- lapply(data, get_RLum) #' #' # set graphical parameters #' par(mfrow = c(2, 2)) #' #' # create NR(t) plots for all aliquots #' for (i in 1:length(aliquot)) { #' plot_NRt(aliquot[[i]][pos], #' main = paste0("Aliquot #", i), #' smooth = "rmean", k = 20, #' xlim = c(0, 10), #' cex = 0.6, legend.pos = "bottomleft") #' } #' #' # reset graphical parameters #' par(mfrow = c(1, 1)) #' #' #' @md #' @export plot_NRt <- function(data, log = FALSE, smooth = c("none", "spline", "rmean"), k = 3, legend = TRUE, legend.pos = "topright", ...) { .set_function_name("plot_NRt") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(data, c("list", "data.frame", "matrix", "RLum.Analysis")) if (inherits(data, "list")) { if (length(data) < 2) .throw_error("'data' contains only curve data for the natural signal") if (all(sapply(data, class) == "RLum.Data.Curve") || all(sapply(data, class) == "RLum.Analysis")) curves <- lapply(data, get_RLum) } else if (inherits(data, "data.frame") || inherits(data, "matrix")) { if (ncol(data) < 3) .throw_error("'data' contains only curve data for the natural signal") if (is.matrix(data)) data <- as.data.frame(data) curves <- apply(data[2:ncol(data)], MARGIN = 2, function(curve) { data.frame(data[ ,1], curve) }) } else if (inherits(data, "RLum.Analysis")) { RLum.objects <- get_RLum(data, drop = FALSE) if (any(sapply(RLum.objects, class) != "RLum.Data.Curve")) .throw_error("The provided 'RLum.Analysis' object ", "must exclusively contain 'RLum.Data.Curve' objects") curves <- lapply(RLum.objects, get_RLum) if (length(curves) < 2) .throw_error("'data' contains only curve data for the natural signal") } smooth <- .validate_args(smooth, c("none", "spline", "rmean")) ## BASIC SETTINGS ------ natural <- curves[[1]] regCurves <- curves[2:length(curves)] time <- curves[[1]][ ,1] if (any(sapply(regCurves, nrow) != nrow(natural))) { .throw_error("The time values for the natural signal don't match ", "those for the regenerated signal") } ## DATA TRANSFORMATION ----- # calculate ratios NR <- lapply(regCurves, natural, FUN = function(reg, nat) { ratio <- nat[, 2] / reg[, 2] ## avoid infinities and NaNs ratio[is.infinite(ratio)] <- NA ratio[nat[, 2] == 0] <- 0 ratio }) # smooth spline if (smooth[1] == "spline") { NR <- lapply(NR, function(nr) { stats::smooth.spline(nr)$y }) } if (smooth[1] == "rmean") { ## here we'd like to use the smoothed values with no fill: as .smoothing() ## relies on data.table::frollmean(), the only way to remove the fill ## is by setting `fill = NA` (which is already the default) and then ## omitting the NA values NR <- lapply(NR, function(nr) stats::na.omit(.smoothing(nr, k))) time <- stats::na.omit(.smoothing(time, k)) } # normalise data NRnorm <- lapply(NR, FUN = function(nr) { nr / nr[1] }) ## EXTRA ARGUMENTS ----- # default values settings <- list( xlim = if (log == "x" || log == "xy") c(0.1, max(time)) else c(0, max(time)), ylim = range(pretty(c(min(sapply(NRnorm, min, na.rm = TRUE)), max(sapply(NRnorm, max, na.rm = TRUE))))), xlab = "Time [s]", ylab = "Natural signal / Regenerated signal", cex = 1L, main = "NR(t) Plot") # override defaults with user settings settings <- modifyList(settings, list(...)) ## PLOTTING ---------- # set graphical parameter par(cex = settings$cex) # empty plot if (is.na(pmatch(log, c("x", "y", "xy")))) log <- "" do.call(plot, modifyList(list(x = NA, y = NA, log = log, xaxs = "i", yaxs = "i"), settings)) # horizontal line abline(h = 1, lty = 3, col = "grey") col <- 1:length(NRnorm) # add N/R lines mapply(FUN = function(curve, col) { points(time, curve, type = "l", col = col) }, NRnorm, col) # add legend if (legend) { labels <- paste0("N/R", 1:length(NRnorm)) ncol <- ifelse(length(NRnorm) > 4, ceiling(length(NRnorm) / 4) , 1) legend(legend.pos, legend = labels, col = col, lty = 1, ncol = ncol, cex = 0.8, bty = "n") } ## RETURN VALUES ---- obj <- set_RLum("RLum.Analysis", protocol = "UNKNOWN", records = mapply(FUN = function(curve, id) { set_RLum("RLum.Data.Curve", recordType = paste0("N/R", id), curveType = "NRt", data = matrix(c(time, curve), ncol = 2), info = list( data = curves, call = sys.call(-6L), args = as.list(sys.call(-6L)[-1]) )) }, NRnorm, seq_len(length(NRnorm))) ) invisible(obj) } Luminescence/R/use_DRAC.R0000644000176200001440000004013314762554470014614 0ustar liggesusers#' @title Use DRAC to calculate dose rate data #' #' @description The function provides an interface from R to DRAC. An R-object or a #' CSV file is passed to the DRAC website and results are re-imported into R. #' #' @param file [character] (**required**): #' name of a CSV file (formatted according to the DRAC v1.2 CSV template) to #' be sent to the DRAC website for calculation. It can also be a DRAC template #' object obtained from [template_DRAC()]. #' #' @param name [character] (*with default*): #' Optional user name submitted to DRAC. If omitted, a random name will be generated #' #' @param print_references (*with default*): #' Print all references used in the input data table to the console. #' #' @param citation_style (*with default*): #' If `print_references = TRUE` this argument determines the output style of the #' used references. Valid options are `"Bibtex"`, `"citation"`, `"html"`, `"latex"` #' or `"R"`. Default is `"text"`. #' #' @param ... Further arguments. #' #' - `url` [character]: provide an alternative URL to DRAC #' - `ignore_version` [logical]: ignores the version check, this might come in handy #' if the version has changed, but not the column order #' - `user` [character]: option to provide username for secured site #' - `password` [character]: password for secured site, only works jointly with `user` #' - `verbose` [logical]: show or hide console output #' #' @return Returns an [RLum.Results-class] object containing the following elements: #' #' \item{DRAC}{[list]: a named list containing the following elements in slot `@@data`: #' #' \tabular{lll}{ #' `$highlights` \tab [data.frame] \tab summary of 25 most important input/output fields \cr #' `$header` \tab [character] \tab HTTP header from the DRAC server response \cr #' `$labels` \tab [data.frame] \tab descriptive headers of all input/output fields \cr #' `$content` \tab [data.frame] \tab complete DRAC input/output table \cr #' `$input` \tab [data.frame] \tab DRAC input table \cr #' `$output` \tab [data.frame] \tab DRAC output table \cr #' `references`\tab [list] \tab A list of bib entries of used references \cr #' } #' #' } #' \item{data}{[character] or [list] path to the input spreadsheet or a DRAC template} #' \item{call}{[call] the function call} #' \item{args}{[list] used arguments} #' #' The output should be accessed using the function [get_RLum]. #' #' @section Function version: 0.15 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Michael Dietze, GFZ Potsdam (Germany)\cr #' Christoph Burow, University of Cologne (Germany) #' #' @references #' Durcan, J.A., King, G.E., Duller, G.A.T., 2015. DRAC: Dose Rate and Age Calculator for trapped charge dating. #' Quaternary Geochronology 28, 54-61. doi:10.1016/j.quageo.2015.03.012 #' #' @examples #' #' ## (1) Method using the DRAC spreadsheet #' #' file <- "/PATH/TO/DRAC_Input_Template.csv" #' #' # send the actual IO template spreadsheet to DRAC #' \dontrun{ #' use_DRAC(file = file) #' } #' #' #' #' ## (2) Method using an R template object #' #' # Create a template #' input <- template_DRAC(preset = "DRAC-example_quartz") #' #' # Fill the template with values #' input$`Project ID` <- "DRAC-Example" #' input$`Sample ID` <- "Quartz" #' input$`Conversion factors` <- "AdamiecAitken1998" #' input$`External U (ppm)` <- 3.4 #' input$`errExternal U (ppm)` <- 0.51 #' input$`External Th (ppm)` <- 14.47 #' input$`errExternal Th (ppm)` <- 1.69 #' input$`External K (%)` <- 1.2 #' input$`errExternal K (%)` <- 0.14 #' input$`Calculate external Rb from K conc?` <- "N" #' input$`Calculate internal Rb from K conc?` <- "N" #' input$`Scale gammadoserate at shallow depths?` <- "N" #' input$`Grain size min (microns)` <- 90 #' input$`Grain size max (microns)` <- 125 #' input$`Water content ((wet weight - dry weight)/dry weight) %` <- 5 #' input$`errWater content %` <- 2 #' input$`Depth (m)` <- 2.2 #' input$`errDepth (m)` <- 0.22 #' input$`Overburden density (g cm-3)` <- 1.8 #' input$`errOverburden density (g cm-3)` <- 0.1 #' input$`Latitude (decimal degrees)` <- 30.0000 #' input$`Longitude (decimal degrees)` <- 70.0000 #' input$`Altitude (m)` <- 150 #' input$`De (Gy)` <- 20 #' input$`errDe (Gy)` <- 0.2 #' #' # use DRAC #' \dontrun{ #' output <- use_DRAC(input) #' } #' #' @md #' @export use_DRAC <- function( file, name, print_references = TRUE, citation_style = "text", ... ) { .set_function_name("use_DRAC") on.exit(.unset_function_name(), add = TRUE) ## TODO: ## (1) Keep the data set as unmodified as possible. Check structure and order of parameters ## for meaningful combination. ## ## (2) ## Leave it to the user where the calculations made in our package should be used ## # Settings ------------------------------------------------------------------------------------ settings <- modifyList(list( name = ifelse(missing(name), paste0(sample(c(LETTERS, letters), runif(1, 2, 4)), collapse = ""), name), verbose = TRUE, url = "https://www.aber.ac.uk/en/dges/research/quaternary/luminescence-research-laboratory/dose-rate-calculator/?show=calculator", ignore_version = FALSE, user = NULL, password = NULL), list(...), keep.null = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(file, c("character", "DRAC.list", "DRAC.data.frame")) .validate_not_empty(file) if (inherits(file, "character")) { .validate_length(file, 1) if(!file.exists(file)){ .throw_error("Input file does not exist") } if (tools::file_ext(file) == "xls" || tools::file_ext(file) == "xlsx") { .throw_error("XLS/XLSX format no longer supported, use CSV instead") } ## Import data ---------------------------------------------------------- ## Import and skip the first rows and remove NA lines and the 2 row, as this row contains ## only meta data ## DRAC v1.2 - CSV sheet if (read.csv(file, nrows = 1, header = FALSE)[1] != "DRAC v.1.2 Inputs" & !settings$ignore_version) .throw_error("It looks like that you are not using the original ", "DRAC v1.2 CSV template, this is currently not supported") input.raw <- read.csv(file, skip = 8, check.names = FALSE, header = TRUE, stringsAsFactors = FALSE)[-1, ] } else if (inherits(file, "DRAC.list")) { input.raw <- as.data.frame(file) } else if (inherits(file, "DRAC.data.frame")) { input.raw <- file } ## NOTE: if this limit is ever raised above 9999, the generation of ## random identifiers below at (4) must be adjusted accordingly to ## guarantee uniqueness of identifiers if (nrow(input.raw) > 5000) .throw_error("The limit of allowed datasets is 5000!") citation_style <- .validate_args(citation_style, c("text", "Bibtex", "citation", "html", "latex", "R")) # Set helper function ------------------------------------------------------------------------- ## The real data are transferred without any encryption, so we have to mask the original ##(0) set masking function .masking <- function(mean, sd, n) { temp <- rnorm(n = 30 * n, mean = mean, sd = sd) t(vapply(seq(1, length(temp), 30), function(x) { c(format(mean(temp[x:(x + 29)]), digits = 2), format(sd(temp[x:(x + 29)]), digits = 2)) }, character(2))) } # Process data -------------------------------------------------------------------------------- if (settings$verbose) message("\n\t Preparing data...") ##(1) expand the rows in the data.frame a little bit mask.df <- input.raw[rep(1:nrow(input.raw), each = 3), ] ##(2) generate some meaningful random variables mask.df <- lapply(seq(1, nrow(input.raw), 3), function(x) { if (!is.na(mask.df[x,"TI:52"]) && mask.df[x,"TI:52"] != "X") { ##replace some values - the De value mask.df[x:(x + 2), c("TI:52","TI:53")] <- .masking( mean = as.numeric(mask.df[x,"TI:52"]), sd = as.numeric(mask.df[x,"TI:53"]), n = 3) return(mask.df) } }) ##(3) bind actual and masked values DRAC_submission.df <- rbind(input.raw, mask.df[[1]]) num.rows.df <- nrow(DRAC_submission.df) ##(4) replace ID values DRAC_submission.df$`TI:1` <- paste0( sample(c(LETTERS, letters), max(4, num.rows.df), replace = TRUE), sample(c("", "-", "_"), num.rows.df, replace = TRUE), sprintf("%04d", sample(0:9999, num.rows.df)))[1:num.rows.df] ##(5) store the real IDs in a separate object DRAC_results.id <- DRAC_submission.df[1:nrow(input.raw), "TI:1"] ##(6) create DRAC submission string if (settings$verbose) message("\t Creating submission string...") ## shuffle the rows of the submission DRAC_submission.df <- DRAC_submission.df[sample(num.rows.df), ] ## convert all columns of the data.frame to character DRAC_submission.df[] <- lapply(DRAC_submission.df, as.character) ##paste everything together to get the format we want DRAC_input <- paste0(apply(DRAC_submission.df, 1, function(x) paste(x, collapse = " ")), "\n", collapse = "") # Send data to DRAC --------------------------------------------------------------------------- if (settings$verbose) message(paste("\t Establishing connection to", settings$url)) ## create config list conf_l <- list() # nocov start if(!is.null(settings$user) & !is.null(settings$password)) conf_l <- httr::authenticate(settings$user, settings$password, type = "basic") # nocov end ## send data set to DRAC website and receive response DRAC.response <- try(httr::POST( url = settings$url, config = conf_l, body = list("drac_data[name]" = settings$name, "drac_data[table]" = DRAC_input)), silent = TRUE) ## check for correct response if (inherits(DRAC.response, "try-error") || DRAC.response$status_code != 200) { if(inherits(DRAC.response, "try-error")) DRAC.response$status_code <- "URL invalid" .throw_error("Transmission failed with HTTP status code: ", DRAC.response$status_code) } else { if (settings$verbose) message("\t The request was successful, processing the reply...") } ## assign DRAC response data to variables http.header <- DRAC.response$header DRAC.content <- httr::content(x = DRAC.response, as = "text") ## if the input was valid from a technical standpoint, but not with regard ## contents, we indeed get a valid response, but no DRAC output if (!grepl("DRAC Outputs", DRAC.content)) { error_start <- max(gregexpr("drac_field_error", DRAC.content)[[1]]) error_end <- regexec('textarea name=', DRAC.content)[[1]] error_msg <- substr(DRAC.content, error_start, error_end) # nocov start on.exit({ reply <- readline("Do you want to see the DRAC error message (Y/N)?") if (reply == "Y" || reply == "y" || reply == 1) cat(error_msg) }, add = TRUE) # nocov end .throw_error("\n\t We got a response from the server, but it\n", "\t did not contain DRAC output. Please check\n", "\t your data and verify its validity.\n") } else { if (settings$verbose) message("\t Finalising the results...") } ## split header and content DRAC.content.split <- strsplit(x = DRAC.content, split = "DRAC Outputs\n\n") ## assign DRAC header part DRAC.header <- as.character(DRAC.content.split[[1]][1]) ## assign DRAC content part DRAC.raw <- read.table(text = as.character(DRAC.content.split[[1]][2]), sep = ",", stringsAsFactors = FALSE) ## remove first two lines DRAC.content <- data.table::fread(as.character(DRAC.content.split[[1]][2]), sep = ",", skip = 2, stringsAsFactors = FALSE, colClasses = c(V3 = "character"), data.table = FALSE) ##Get rid of all the value we do not need anymore DRAC.content <- subset(DRAC.content, DRAC.content$V1 %in% DRAC_results.id) DRAC.content <- DRAC.content[with(DRAC.content, order(V1)), ] ##replace by original names DRAC.content[ ,1] <- input.raw[ ,1] ## assign column names colnames(DRAC.content) <- DRAC.raw[1, ] ## save column labels and use them as attributes for the I/O table columns DRAC.labels <- DRAC.raw[2, ] for (i in 1:length(DRAC.content)) { attr(DRAC.content[ ,i], "description") <- DRAC.labels[1,i] } ## DRAC also returns the input, so we need to split input and output DRAC.content.input <- DRAC.content[ ,grep("TI:", names(DRAC.content))] DRAC.content.output <- DRAC.content[ ,grep("TO:", names(DRAC.content))] ## The DRAC ouput also contains a highlight table, which results in ## duplicate columns. When creating the data.frame duplicate columns ## are automatically appended '.1' in their names, so we can identify ## and remove them easily DRAC.content.input <- DRAC.content.input[ ,-grep("\\.1", names(DRAC.content.input))] DRAC.content.output <- DRAC.content.output[ ,-grep("\\.1", names(DRAC.content.output))] ## for some reason the returned input table is unsorted, so we resort it in increasing order DRAC.content.input <- DRAC.content.input[ , paste0("TI:", 1:ncol(DRAC.content.input))] ## The output table (v1.2) has 198 columns, making it unreasonable complex ## for standard data evaluation. We reproduce the DRAC highlight table ## and use the descriptions (saved as attributes) as column names. highlight.keys <- c("TI:1","TI:2","TI:3","TO:FQ","TO:FR", "TO:FS", "TO:FT", "TO:FU", "TO:FV", "TO:FW", "TO:FX", "TO:FY", "TO:FZ", "TO:GG", "TO:GH", "TO:GI", "TO:GJ", "TO:GK", "TO:GL", "TO:GM", "TO:GN", "TI:52", "TI:53", "TO:GO", "TO:GP") DRAC.highlights <- subset(DRAC.content, select = highlight.keys) DRAC.highlights.labels <- as.character(DRAC.labels[1, which(unique(names(DRAC.content)) %in% highlight.keys)]) colnames(DRAC.highlights) <- DRAC.highlights.labels for (i in 1:length(DRAC.highlights)) { attr(DRAC.highlights[ ,i], "key") <- highlight.keys[i] } ## finally, we add the 'DRAC.highlights' class so that we can use a custom print method class(DRAC.highlights) <- c("DRAC.highlights", "data.frame") ## Final Disclaimer messages <- list("\t Done! \n", "\t We, the authors of the R package 'Luminescence', do not take any responsibility and we are not liable for any ", "\t mistakes or unforeseen misbehaviour. All calculations are done by DRAC and it is outside our reference to", "\t verify the input and output. \n", "\t Note that this function is only compatible with DRAC version 1.2. Before using this function make sure that", "\t this is the correct version, otherwise expect unspecified errors.\n", "\t Please ensure you cite the use of DRAC in your work, published or otherwise. Please cite the website name and", "\t version (e.g. DRAC v1.2) and the accompanying journal article:", "\t Durcan, J.A., King, G.E., Duller, G.A.T., 2015. DRAC: Dose rate and age calculation for trapped charge", "\t dating. Quaternary Geochronology 28, 54-61. \n", "\t Use 'verbose = FALSE' to hide this message. \n") if (settings$verbose) lapply(messages, message) ## Get and print used references references <- .get_DRAC_references(DRAC.content.input) if (print_references && settings$verbose) { for (i in 1:length(references$refs)) { message("\nReference for: ", references$desc[i]) print(references$refs[[i]], style = citation_style) } } ## return output DRAC.return <- set_RLum( "RLum.Results", data = list( DRAC = list(highlights = DRAC.highlights, header = DRAC.header, labels = DRAC.labels, content = DRAC.content, input = DRAC.content.input, output = DRAC.content.output, references = references), data = file, call = sys.call(), args = as.list(sys.call()[-1]))) invisible(DRAC.return) } Luminescence/R/plot_RadialPlot.R0000644000176200001440000014734114762554470016331 0ustar liggesusers#' @title Function to create a Radial Plot #' #' @description A Galbraith's radial plot is produced on a logarithmic or a linear scale. #' #' @details Details and the theoretical background of the radial plot are given in the #' cited literature. This function is based on an S script of Rex Galbraith. To #' reduce the manual adjustments, the function has been rewritten. Thanks to #' Rex Galbraith for useful comments on this function. \cr #' Plotting can be disabled by adding the argument `plot = "FALSE"`, e.g. #' to return only numeric plot output. #' #' Earlier versions of the Radial Plot in this package had the 2-sigma-bar #' drawn onto the z-axis. However, this might have caused misunderstanding in #' that the 2-sigma range may also refer to the z-scale, which it does not! #' Rather it applies only to the x-y-coordinate system (standardised error vs. #' precision). A spread in doses or ages must be drawn as lines originating at #' zero precision (x0) and zero standardised estimate (y0). Such a range may be #' drawn by adding lines to the radial plot ( `line`, `line.col`, #' `line.label`, cf. examples). #' #' A statistic summary, i.e. a collection of statistic measures of #' centrality and dispersion (and further measures) can be added by specifying #' one or more of the following keywords: #' - `"n"` (number of samples), #' - `"mean"` (mean De value), #' - `"mean.weighted"` (error-weighted mean), #' - `"median"` (median of the De values), #' - `"sdrel"` (relative standard deviation in percent), #' - `"sdrel.weighted"` (error-weighted relative standard deviation in percent), #' - `"sdabs"` (absolute standard deviation), #' - `"sdabs.weighted"` (error-weighted absolute standard deviation), #' - `"serel"` (relative standard error), #' - `"serel.weighted"` (error-weighted relative standard error), #' - `"seabs"` (absolute standard error), #' - `"seabs.weighted"` (error-weighted absolute standard error), #' - `"in.2s"` (percent of samples in 2-sigma range), #' - `"kurtosis"` (kurtosis) and #' - `"skewness"` (skewness). #' #' @param data [data.frame] or [RLum.Results-class] object (**required**): #' for `data.frame`: either two columns: De (`data[,1]`) and De error #' (`data[,2]`), or one: De (`values[,1]`). If a single-column data frame #' is provided, De error is assumed to be 10^-9 for all measurements. #' To plot several data sets in one plot, the data sets must be provided as #' `list`, e.g. `list(data.1, data.2)`. #' #' @param na.rm [logical] (*with default*): #' excludes `NA` values from the data set prior to any further operations. #' #' @param log.z [logical] (*with default*): #' Option to display the z-axis in logarithmic scale. Default is `TRUE`. #' #' @param central.value [numeric]: #' User-defined central value, primarily used for horizontal centring #' of the z-axis. #' #' @param centrality [character] or [numeric] (*with default*): #' measure of centrality, used for automatically centring the plot and drawing #' the central line. Can either be one out of #' - `"mean"`, #' - `"median"`, #' - `"mean.weighted"` and #' - `"median.weighted"` or a #' - numeric value used for the standardisation. #' #' @param mtext [character]: #' additional text below the plot title. #' #' @param summary [character] (*optional*): #' add statistic measures of centrality and dispersion to the plot. #' Can be one or more of several keywords. See details for available keywords. #' #' @param summary.pos [numeric] or [character] (*with default*): #' optional position coordinates or keyword (e.g. `"topright"`) #' for the statistical summary. Alternatively, the keyword `"sub"` may be #' specified to place the summary below the plot header. However, this latter #' option is only possible if `mtext` is not used. #' #' @param legend [character] vector (*optional*): #' legend content to be added to the plot. #' #' @param legend.pos [numeric] or [character] (with #' default): optional position coordinates or keyword (e.g. `"topright"`) #' for the legend to be plotted. #' #' @param stats [character]: additional labels of statistically #' important values in the plot. One or more out of the following: #' - `"min"`, #' - `"max"`, #' - `"median"`. #' #' @param rug [logical]: #' Option to add a rug to the z-scale, to indicate the location of individual values #' #' @param plot.ratio [numeric]: #' User-defined plot area ratio (i.e. curvature of the z-axis). If omitted, #' the default value (`4.5/5.5`) is used and modified automatically to optimise #' the z-axis curvature. The parameter should be decreased when data points #' are plotted outside the z-axis or when the z-axis gets too elliptic. #' #' @param bar.col [character] or [numeric] (*with default*): #' colour of the bar showing the 2-sigma range around the central #' value. To disable the bar, use `"none"`. Default is `"grey"`. #' #' @param y.ticks [logical]: #' Option to hide y-axis labels. Useful for data with small scatter. #' #' @param grid.col [character] or [numeric] (*with default*): #' colour of the grid lines (originating at `[0,0]` and stretching to #' the z-scale). To disable grid lines, use `"none"`. Default is `"grey"`. #' #' @param line [numeric]: #' numeric values of the additional lines to be added. #' #' @param line.col [character] or [numeric]: #' colour of the additional lines. #' #' @param line.label [character]: #' labels for the additional lines. #' #' @param output [logical]: #' Optional output of numerical plot parameters. These can be useful to #' reproduce similar plots. Default is `FALSE`. #' #' @param ... Further plot arguments to pass. `xlab` must be a vector of #' length 2, specifying the upper and lower x-axes labels. #' #' @return Returns a plot object. #' #' @section Function version: 0.5.9 #' #' @author #' Michael Dietze, GFZ Potsdam (Germany)\cr #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Based on a rewritten S script of Rex Galbraith, 2010 #' #' @seealso [plot], [plot_KDE], [plot_Histogram], [plot_AbanicoPlot] #' #' @references #' Galbraith, R.F., 1988. Graphical Display of Estimates Having #' Differing Standard Errors. Technometrics, 30 (3), 271-281. #' #' Galbraith, R.F., 1990. The radial plot: Graphical assessment of spread in #' ages. International Journal of Radiation Applications and Instrumentation. #' Part D. Nuclear Tracks and Radiation Measurements, 17 (3), 207-214. #' #' Galbraith, R. & Green, P., 1990. Estimating the component ages in a finite #' mixture. International Journal of Radiation Applications and #' Instrumentation. Part D. Nuclear Tracks and Radiation Measurements, 17 (3) #' 197-206. #' #' Galbraith, R.F. & Laslett, G.M., 1993. Statistical models for mixed fission #' track ages. Nuclear Tracks And Radiation Measurements, 21 (4), 459-470. #' #' Galbraith, R.F., 1994. Some Applications of Radial Plots. Journal of the #' American Statistical Association, 89 (428), 1232-1242. #' #' Galbraith, R.F., 2010. On plotting OSL equivalent doses. Ancient TL, 28 (1), #' 1-10. #' #' Galbraith, R.F. & Roberts, R.G., 2012. Statistical aspects of equivalent #' dose and error calculation and display in OSL dating: An overview and some #' recommendations. Quaternary Geochronology, 11, 1-27. #' #' @examples #' #' ## load example data #' data(ExampleData.DeValues, envir = environment()) #' ExampleData.DeValues <- convert_Second2Gray( #' ExampleData.DeValues$BT998, c(0.0438,0.0019)) #' #' ## plot the example data straightforward #' plot_RadialPlot(data = ExampleData.DeValues) #' #' ## now with linear z-scale #' plot_RadialPlot( #' data = ExampleData.DeValues, #' log.z = FALSE) #' #' ## now with output of the plot parameters #' plot1 <- plot_RadialPlot( #' data = ExampleData.DeValues, #' log.z = FALSE, #' output = TRUE) #' plot1 #' plot1$zlim #' #' ## now with adjusted z-scale limits #' plot_RadialPlot( #' data = ExampleData.DeValues, #' log.z = FALSE, #' xlim = c(0, 5), #' zlim = c(100, 200)) #' #' ## now the two plots with serious but seasonally changing fun #' #plot_RadialPlot(data = data.3, fun = TRUE) #' #' ## now with user-defined central value, in log-scale again #' plot_RadialPlot( #' data = ExampleData.DeValues, #' central.value = 150) #' #' ## now with a rug, indicating individual De values at the z-scale #' plot_RadialPlot( #' data = ExampleData.DeValues, #' rug = TRUE) #' #' ## now with legend, colour, different points and smaller scale #' plot_RadialPlot( #' data = ExampleData.DeValues, #' legend.text = "Sample 1", #' col = "tomato4", #' bar.col = "peachpuff", #' pch = "R", #' cex = 0.8) #' #' ## now without 2-sigma bar, y-axis, grid lines and central value line #' plot_RadialPlot( #' data = ExampleData.DeValues, #' bar.col = "none", #' grid.col = "none", #' y.ticks = FALSE, #' lwd = 0) #' #' ## now with user-defined axes labels #' plot_RadialPlot( #' data = ExampleData.DeValues, #' xlab = c("Data error (%)", "Data precision"), #' ylab = "Scatter", #' zlab = "Equivalent dose [Gy]") #' #' ## now with minimum, maximum and median value indicated #' plot_RadialPlot( #' data = ExampleData.DeValues, #' central.value = 150, #' stats = c("min", "max", "median")) #' #' ## now with a brief statistical summary #' plot_RadialPlot( #' data = ExampleData.DeValues, #' summary = c("n", "in.2s")) #' #' ## now with another statistical summary as subheader #' plot_RadialPlot( #' data = ExampleData.DeValues, #' summary = c("mean.weighted", "median"), #' summary.pos = "sub") #' #' ## now the data set is split into sub-groups, one is manipulated #' data.1 <- ExampleData.DeValues[1:15,] #' data.2 <- ExampleData.DeValues[16:25,] * 1.3 #' #' ## now a common dataset is created from the two subgroups #' data.3 <- list(data.1, data.2) #' #' ## now the two data sets are plotted in one plot #' plot_RadialPlot(data = data.3) #' #' ## now with some graphical modification #' plot_RadialPlot( #' data = data.3, #' col = c("darkblue", "darkgreen"), #' bar.col = c("lightblue", "lightgreen"), #' pch = c(2, 6), #' summary = c("n", "in.2s"), #' summary.pos = "sub", #' legend = c("Sample 1", "Sample 2")) #' #' @md #' @export plot_RadialPlot <- function( data, na.rm = TRUE, log.z = TRUE, central.value, centrality = "mean.weighted", mtext, summary, summary.pos, legend, legend.pos, stats, rug = FALSE, plot.ratio, bar.col, y.ticks = TRUE, grid.col, line, line.col, line.label, output = FALSE, ... ) { .set_function_name("plot_RadialPlot") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_not_empty(data) .validate_class(centrality, c("character", "numeric")) if (is.character(centrality)) { centrality <- .validate_args(centrality, c("mean", "mean.weighted", "median", "median.weighted")) } ## Homogenise input data format if(is(data, "list") == FALSE) {data <- list(data)} ## Check input data for(i in 1:length(data)) { .validate_class(data[[i]], c("data.frame", "RLum.Results"), name = "All elements of 'data'") if (inherits(data[[i]], "RLum.Results")) { data[[i]] <- get_RLum(data[[i]], "data") } ## ensure that the dataset it not degenerate .validate_not_empty(data[[i]], name = paste0("Input 'data[[", i, "]]'")) ## if `data[[i]]` is a single-column data frame, append a second ## column with a small non-zero value (10^-9 for consistency with ## what `calc_Statistics() does) if (ncol(data[[i]]) < 2) { data[[i]] <- data.frame(data[[i]], 10^-9) } else if (ncol(data[[i]]) > 2) { ## keep only the first two columns data[[i]] <- data[[i]][, 1:2] } } ## check data and parameter consistency-------------------------------------- if(missing(stats) == TRUE) {stats <- numeric(0)} if(missing(summary) == TRUE) { summary <- c("n", "in.2s") } if(missing(summary.pos) == TRUE) { summary.pos <- "sub" } if(missing(bar.col) == TRUE) { bar.col <- rep("grey80", length(data)) } if(missing(grid.col) == TRUE) { grid.col <- rep("grey70", length(data)) } if(missing(mtext) == TRUE) { mtext <- "" } ## check z-axis log-option for grouped data sets if(is(data, "list") == TRUE & length(data) > 1 & log.z == FALSE) { .throw_warning("Option 'log.z' is not set to 'TRUE' altough ", "more than one data set (group) is provided.") } ## optionally, remove NA-values if(na.rm == TRUE) { for(i in 1:length(data)) { data[[i]] <- na.exclude(data[[i]]) } } ## create preliminary global data set De.global <- data[[1]][,1] if(length(data) > 1) { for(i in 2:length(data)) { De.global <- c(De.global, data[[i]][,1]) } } ## calculate major preliminary tick values and tick difference extraArgs <- list(...) if("zlim" %in% names(extraArgs)) { limits.z <- extraArgs$zlim } else { z.span <- (mean(De.global) * 0.5) / (sd(De.global) * 100) z.span <- ifelse(z.span > 1, 0.9, z.span) limits.z <- c((ifelse(test = min(De.global) <= 0, yes = 1.1, no = 0.9) - z.span) * min(De.global), (1.1 + z.span) * max(De.global)) } ## calculate correction dose to shift negative values if(min(De.global) < 0 && log.z) { if("zlim" %in% names(extraArgs)) { De.add <- abs(extraArgs$zlim[1]) } else { ## estimate delta De to add to all data De.add <- min(10^ceiling(log10(abs(De.global))) * 10) ## optionally readjust delta De for extreme values if(De.add <= abs(min(De.global))) { De.add <- De.add * 10 } } } else { De.add <- 0 } ticks <- round(pretty(limits.z, n = 5), 3) De.delta <- ticks[2] - ticks[1] ## optionally add correction dose to data set and adjust error if(log.z) { for(i in 1:length(data)) data[[i]][,1] <- data[[i]][,1] + De.add De.global <- De.global + De.add } ## calculate major preliminary tick values and tick difference extraArgs <- list(...) if("zlim" %in% names(extraArgs)) { limits.z <- extraArgs$zlim } else { z.span <- (mean(De.global) * 0.5) / (sd(De.global) * 100) z.span <- ifelse(z.span > 1, 0.9, z.span) limits.z <- c((ifelse(min(De.global) <= 0, 1.1, 0.9) - z.span) * min(De.global), (1.1 + z.span) * max(De.global)) } ticks <- round(pretty(limits.z, n = 5), 3) De.delta <- ticks[2] - ticks[1] ## calculate and append statistical measures -------------------------------- ## z-values based on log-option z <- lapply(1:length(data), function(x){ if(log.z == TRUE) {log(data[[x]][,1])} else {data[[x]][,1]}}) data <- lapply(1:length(data), function(x) { cbind(data[[x]], z[[x]])}) rm(z) ## calculate se-values based on log-option se <- lapply(1:length(data), function(x, De.add){ if(log.z == TRUE) { data[[x]][,2] <- data[[x]][,2] / (data[[x]][,1] + De.add) } else { data[[x]][,2] }}, De.add = De.add) data <- lapply(1:length(data), function(x) { cbind(data[[x]], se[[x]])}) rm(se) ## define function after isotone::weighted.mean median.w <- function (y, w) { ox <- order(y) y <- y[ox] w <- w[ox] k <- 1 low <- cumsum(c(0, w)) up <- sum(w) - low df <- low - up repeat { if (df[k] < 0) k <- k + 1 else if (df[k] == 0) return((w[k] * y[k] + w[k - 1] * y[k - 1]) / (w[k] + w[k - 1])) else return(y[k - 1]) } } ## calculate central values if(centrality[1] == "mean") { z.central <- lapply(1:length(data), function(x){ rep(mean(data[[x]][,3], na.rm = TRUE), length(data[[x]][,3]))}) } else if(centrality[1] == "median") { z.central <- lapply(1:length(data), function(x){ rep(median(data[[x]][,3], na.rm = TRUE), length(data[[x]][,3]))}) } else if(centrality[1] == "mean.weighted") { z.central <- lapply(1:length(data), function(x){ sum(data[[x]][,3] / data[[x]][,4]^2) / sum(1 / data[[x]][,4]^2)}) } else if(centrality[1] == "median.weighted") { z.central <- lapply(1:length(data), function(x){ rep(median.w(y = data[[x]][,3], w = data[[x]][,4]), length(data[[x]][,3]))}) } else if(is.numeric(centrality) & length(centrality) == length(data)) { z.central.raw <- if(log.z == TRUE) { log(centrality + De.add) } else { centrality + De.add } z.central <- lapply(1:length(data), function(x){ rep(z.central.raw[x], length(data[[x]][,3]))}) } else if(is.numeric(centrality) == TRUE & length(centrality) > length(data)) { z.central <- lapply(1:length(data), function(x){ rep(median(data[[x]][,3], na.rm = TRUE), length(data[[x]][,3]))}) } data <- lapply(1:length(data), function(x) { cbind(data[[x]], z.central[[x]])}) rm(z.central) ## calculate precision precision <- lapply(1:length(data), function(x){ 1 / data[[x]][,4]}) data <- lapply(1:length(data), function(x) { cbind(data[[x]], precision[[x]])}) rm(precision) ## calculate standard estimate std.estimate <- lapply(1:length(data), function(x){ (data[[x]][,3] - data[[x]][,5]) / data[[x]][,4]}) data <- lapply(1:length(data), function(x) { cbind(data[[x]], std.estimate[[x]])}) ## append empty standard estimate for plotting data <- lapply(1:length(data), function(x) { cbind(data[[x]], std.estimate[[x]])}) rm(std.estimate) ## generate global data set data.global <- cbind(data[[1]], rep(x = 1, times = nrow(data[[1]]))) colnames(data.global) <- rep("", 9) if(length(data) > 1) { for(i in 2:length(data)) { data.add <- cbind(data[[i]], rep(x = i, times = nrow(data[[i]]))) colnames(data.add) <- rep("", 9) data.global <- rbind(data.global, data.add) } } ## create column names colnames(data.global) <- c( "De", "error", "z", "se", "z.central", "precision", "std.estimate", "std.estimate.plot") ## calculate global central value if(centrality[1] == "mean") { z.central.global <- mean(data.global[,3], na.rm = TRUE) } else if(centrality[1] == "median") { z.central.global <- median(data.global[,3], na.rm = TRUE) } else if(centrality[1] == "mean.weighted") { z.central.global <- sum(data.global[,3] / data.global[,4]^2) / sum(1 / data.global[,4]^2) } else if(centrality[1] == "median.weighted") { z.central.global <- median.w(y = data.global[,3], w = data.global[,4]) } else if(is.numeric(centrality) == TRUE & length(centrality == length(data))) { z.central.global <- mean(data.global[,3], na.rm = TRUE) } ## optionally adjust central value by user-defined value if(missing(central.value) == FALSE) { # ## adjust central value for De.add central.value <- central.value + De.add z.central.global <- ifelse(log.z == TRUE, log(central.value), central.value) } ## create column names for(i in 1:length(data)) { colnames(data[[i]]) <- c("De", "error", "z", "se", "z.central", "precision", "std.estimate", "std.estimate.plot") } ## re-calculate standardised estimate for plotting for(i in 1:length(data)) { data[[i]][,8] <- (data[[i]][,3] - z.central.global) / data[[i]][,4] } data.global.plot <- data[[1]][,8] if(length(data) > 1) { for(i in 2:length(data)) { data.global.plot <- c(data.global.plot, data[[i]][,8]) } } data.global[,8] <- data.global.plot ## print warning for too small scatter if(max(abs(1 / data.global[6])) < 0.02) { small.sigma <- TRUE message("Attention, small standardised estimate scatter. ", "Toggle off y.ticks?") } ## read out additional arguments--------------------------------------------- extraArgs <- list(...) main <- if("main" %in% names(extraArgs)) {extraArgs$main} else {expression(paste(D[e], " distribution"))} sub <- if("sub" %in% names(extraArgs)) {extraArgs$sub} else {""} if("xlab" %in% names(extraArgs)) { xlab <- extraArgs$xlab .validate_length(xlab, 2) } else { xlab <- c(if(log.z == TRUE) { "Relative standard error (%)" } else { "Standard error" }, "Precision") } ylab <- if("ylab" %in% names(extraArgs)) { extraArgs$ylab } else { "Standardised estimate" } zlab <- if("zlab" %in% names(extraArgs)) { extraArgs$zlab } else { expression(paste(D[e], " [Gy]")) } if("zlim" %in% names(extraArgs)) { limits.z <- extraArgs$zlim } else { z.span <- (mean(data.global[,1]) * 0.5) / (sd(data.global[,1]) * 100) z.span <- ifelse(z.span > 1, 0.9, z.span) limits.z <- c((0.9 - z.span) * min(data.global[[1]]), (1.1 + z.span) * max(data.global[[1]])) } if("xlim" %in% names(extraArgs)) { limits.x <- extraArgs$xlim } else { limits.x <- c(0, max(data.global[,6])) } if(limits.x[1] != 0) { limits.x[1] <- 0 .throw_warning("Lower x-axis limit not set to zero, corrected") } if("ylim" %in% names(extraArgs)) { limits.y <- extraArgs$ylim } else { y.span <- (mean(data.global[,1]) * 10) / (sd(data.global[,1]) * 100) y.span <- ifelse(y.span > 1, 0.98, y.span) limits.y <- c(-(1 + y.span) * max(abs(data.global[,7])), (0.8 + y.span) * max(abs(data.global[,7]))) } cex <- if("cex" %in% names(extraArgs)) { extraArgs$cex } else { 1 } lty <- if("lty" %in% names(extraArgs)) { extraArgs$lty } else { rep(2, length(data)) } lwd <- if("lwd" %in% names(extraArgs)) { extraArgs$lwd } else { rep(1, length(data)) } pch <- if("pch" %in% names(extraArgs)) { extraArgs$pch } else { rep(1, length(data)) } col <- if("col" %in% names(extraArgs)) { extraArgs$col } else { 1:length(data) } tck <- if("tck" %in% names(extraArgs)) { extraArgs$tck } else { NA } tcl <- if("tcl" %in% names(extraArgs)) { extraArgs$tcl } else { -0.5 } show <- if("show" %in% names(extraArgs)) {extraArgs$show} else {TRUE} if(show != TRUE) {show <- FALSE} fun <- if ("fun" %in% names(extraArgs)) extraArgs$fun else FALSE # nocov ## define auxiliary plot parameters ----------------------------------------- ## optionally adjust plot ratio if(missing(plot.ratio)) { if(log.z) { plot.ratio <- 1 / (1 * ((max(data.global[,6]) - min(data.global[,6])) / (max(data.global[,7]) - min(data.global[,7])))) } else { plot.ratio <- 4.5 / 5.5 } } ##limit plot ratio plot.ratio <- min(c(1e+06, plot.ratio)) ## calculate conversion factor for plot coordinates f <- (max(data.global[,6]) - min(data.global[,6])) / (max(data.global[,7]) - min(data.global[,7])) * plot.ratio ## calculate major and minor z-tick values tick.values.major <- signif(c(limits.z, pretty(limits.z, n = 5))) tick.values.minor <- signif(pretty(limits.z, n = 25), 3) tick.values.major <- tick.values.major[tick.values.major >= min(tick.values.minor)] tick.values.major <- tick.values.major[tick.values.major <= max(tick.values.minor)] tick.values.major <- tick.values.major[tick.values.major >= limits.z[1]] tick.values.major <- tick.values.major[tick.values.major <= limits.z[2]] tick.values.minor <- tick.values.minor[tick.values.minor >= limits.z[1]] tick.values.minor <- tick.values.minor[tick.values.minor <= limits.z[2]] if(log.z == TRUE) { tick.values.major <- log(tick.values.major) tick.values.minor <- log(tick.values.minor) } ## calculate z-axis radius r.x <- limits.x[2] / max(data.global[,6]) + 0.05 r <- max(sqrt((data.global[,6])^2+(data.global[,7] * f)^2)) * r.x ## calculate major z-tick coordinates tick.x1.major <- r / sqrt(1 + f^2 * ( tick.values.major - z.central.global)^2) tick.y1.major <- (tick.values.major - z.central.global) * tick.x1.major tick.x2.major <- (1 + 0.015 * cex) * r / sqrt( 1 + f^2 * (tick.values.major - z.central.global)^2) tick.y2.major <- (tick.values.major - z.central.global) * tick.x2.major ticks.major <- cbind(0, tick.x1.major, tick.x2.major, tick.y1.major, tick.y2.major) ## calculate minor z-tick coordinates tick.x1.minor <- r / sqrt(1 + f^2 * ( tick.values.minor - z.central.global)^2) tick.y1.minor <- (tick.values.minor - z.central.global) * tick.x1.minor tick.x2.minor <- (1 + 0.007 * cex) * r / sqrt( 1 + f^2 * (tick.values.minor - z.central.global)^2) tick.y2.minor <- (tick.values.minor - z.central.global) * tick.x2.minor ticks.minor <- cbind(tick.x1.minor, tick.x2.minor, tick.y1.minor, tick.y2.minor) ## calculate z-label positions label.x <- 1.03 * r / sqrt(1 + f^2 * (tick.values.major - z.central.global)^2) label.y <- (tick.values.major - z.central.global) * tick.x2.major ## create z-axes labels if(log.z) { label.z.text <- signif(exp(tick.values.major), 3) } else { label.z.text <- signif(tick.values.major, 3) } ## subtract De.add from label values if(De.add != 0) label.z.text <- label.z.text - De.add labels <- cbind(label.x, label.y, label.z.text) ## calculate coordinates for 2-sigma-polygon overlay polygons <- matrix(nrow = length(data), ncol = 8) for(i in 1:length(data)) { polygons[i,1:4] <- c(limits.x[1], limits.x[1], max(data.global[,6]), max(data.global[,6])) polygons[i,5:8] <- c(-2, 2, (data[[i]][1,5] - z.central.global) * polygons[i,3] + 2, (data[[i]][1,5] - z.central.global) * polygons[i,4] - 2) } ## calculate node coordinates for semi-circle user.limits <- if(log.z) log(limits.z) else limits.z ellipse.values <- seq( from = min(c(tick.values.major, tick.values.minor, user.limits[1])), to = max(c(tick.values.major,tick.values.minor, user.limits[2])), length.out = 500) ellipse.x <- r / sqrt(1 + f^2 * (ellipse.values - z.central.global)^2) ellipse.y <- (ellipse.values - z.central.global) * ellipse.x ellipse <- cbind(ellipse.x, ellipse.y) ellipse.lims <- rbind(range(ellipse[,1]), range(ellipse[,2])) ## check if z-axis overlaps with 2s-polygon polygon_y_max <- max(polygons[,7]) polygon_y_min <- min(polygons[,7]) z_2s_upper <- ellipse.x[abs(ellipse.y - polygon_y_max) == min(abs(ellipse.y - polygon_y_max))] z_2s_lower <- ellipse.x[abs(ellipse.y - polygon_y_min) == min(abs(ellipse.y - polygon_y_min))] if(max(polygons[,3]) >= z_2s_upper | max(polygons[,3]) >= z_2s_lower) { .throw_warning("z-scale touches 2s-polygon. Decrease plot ratio.") } ## calculate statistical labels if(length(stats == 1)) {stats <- rep(stats, 2)} stats.data <- matrix(nrow = 3, ncol = 3) data.stats <- as.numeric(data.global[,1]) if("min" %in% stats == TRUE) { stats.data[1, 3] <- data.stats[data.stats == min(data.stats)][1] stats.data[1, 1] <- data.global[data.stats == stats.data[1, 3], 6][1] stats.data[1, 2] <- data.global[data.stats == stats.data[1, 3], 8][1] } if("max" %in% stats == TRUE) { stats.data[2, 3] <- data.stats[data.stats == max(data.stats)][1] stats.data[2, 1] <- data.global[data.stats == stats.data[2, 3], 6][1] stats.data[2, 2] <- data.global[data.stats == stats.data[2, 3], 8][1] } if("median" %in% stats == TRUE) { stats.data[3, 3] <- data.stats[data.stats == quantile(data.stats, 0.5, type = 3)] stats.data[3, 1] <- data.global[data.stats == stats.data[3, 3], 6][1] stats.data[3, 2] <- data.global[data.stats == stats.data[3, 3], 8][1] } ## recalculate axes limits if necessary limits.z.x <- range(ellipse[,1]) limits.z.y <- range(ellipse[,2]) if(!("ylim" %in% names(extraArgs))) { if(limits.z.y[1] < 0.66 * limits.y[1]) { limits.y[1] <- 1.8 * limits.z.y[1] } if(limits.z.y[2] > 0.77 * limits.y[2]) { limits.y[2] <- 1.3 * limits.z.y[2] } } if(!("xlim" %in% names(extraArgs))) { if(limits.z.x[2] > 1.1 * limits.x[2]) { limits.x[2] <- limits.z.x[2] } } ## calculate and paste statistical summary De.stats <- matrix(nrow = length(data), ncol = 18) colnames(De.stats) <- c("n", "mean", "mean.weighted", "median", "median.weighted", "kde.max", "sd.abs", "sd.rel", "se.abs", "se.rel", "q25", "q75", "skewness", "kurtosis", "sd.abs.weighted", "sd.rel.weighted", "se.abs.weighted", "se.rel.weighted") for(i in 1:length(data)) { data_to_stats <- data[[i]][,1:2] ## remove added De if(log.z) data_to_stats$De <- data_to_stats$De - De.add statistics <- calc_Statistics(data = data_to_stats) De.stats[i,1] <- statistics$weighted$n De.stats[i,2] <- statistics$unweighted$mean De.stats[i,3] <- statistics$weighted$mean De.stats[i,4] <- statistics$unweighted$median De.stats[i,5] <- statistics$unweighted$median De.stats[i,7] <- statistics$unweighted$sd.abs De.stats[i,8] <- statistics$unweighted$sd.rel De.stats[i,9] <- statistics$unweighted$se.abs De.stats[i,10] <- statistics$weighted$se.rel De.stats[i,11] <- quantile(data[[i]][,1], 0.25) De.stats[i,12] <- quantile(data[[i]][,1], 0.75) De.stats[i,13] <- statistics$unweighted$skewness De.stats[i,14] <- statistics$unweighted$kurtosis De.stats[i,15] <- statistics$weighted$sd.abs De.stats[i,16] <- statistics$weighted$sd.rel De.stats[i,17] <- statistics$weighted$se.abs De.stats[i,18] <- statistics$weighted$se.rel ## kdemax - here a little doubled as it appears below again De.density <- try(density(x = data[[i]][,1], kernel = "gaussian", from = limits.z[1], to = limits.z[2]), silent = TRUE) De.stats[i,6] <- NA if(!inherits(De.density, "try-error")) { De.stats[i,6] <- De.density$x[which.max(De.density$y)] } } label.text = list(NA) if(summary.pos[1] != "sub") { n.rows <- length(summary) for(i in 1:length(data)) { stops <- paste(rep("\n", (i - 1) * n.rows), collapse = "") summary.text <- character(0) for(j in 1:length(summary)) { summary.text <- c(summary.text, paste( "", ifelse("n" %in% summary[j] == TRUE, paste("n = ", De.stats[i,1], "\n", sep = ""), ""), ifelse("mean" %in% summary[j] == TRUE, paste("mean = ", round(De.stats[i,2], 2), "\n", sep = ""), ""), ifelse("mean.weighted" %in% summary[j] == TRUE, paste("weighted mean = ", round(De.stats[i,3], 2), "\n", sep = ""), ""), ifelse("median" %in% summary[j] == TRUE, paste("median = ", round(De.stats[i,4], 2), "\n", sep = ""), ""), ifelse("median.weighted" %in% summary[j] == TRUE, paste("weighted median = ", round(De.stats[i,5], 2), "\n", sep = ""), ""), ifelse("kdemax" %in% summary[j] == TRUE, paste("kdemax = ", round(De.stats[i,6], 2), " \n ", sep = ""), ""), ifelse("sdabs" %in% summary[j] == TRUE, paste("sd = ", round(De.stats[i,7], 2), "\n", sep = ""), ""), ifelse("sdrel" %in% summary[j] == TRUE, paste("rel. sd = ", round(De.stats[i,8], 2), " %", "\n", sep = ""), ""), ifelse("seabs" %in% summary[j] == TRUE, paste("se = ", round(De.stats[i,9], 2), "\n", sep = ""), ""), ifelse("serel" %in% summary[j] == TRUE, paste("rel. se = ", round(De.stats[i,10], 2), " %", "\n", sep = ""), ""), ifelse("skewness" %in% summary[j] == TRUE, paste("skewness = ", round(De.stats[i,13], 2), "\n", sep = ""), ""), ifelse("kurtosis" %in% summary[j] == TRUE, paste("kurtosis = ", round(De.stats[i,14], 2), "\n", sep = ""), ""), ifelse("in.2s" %in% summary[j] == TRUE, paste("in 2 sigma = ", round(sum(data[[i]][,7] > -2 & data[[i]][,7] < 2) / nrow(data[[i]]) * 100 , 1), " %", sep = ""), ""), ifelse("sdabs.weighted" %in% summary[j] == TRUE, paste("abs. weighted sd = ", round(De.stats[i,15], 2), "\n", sep = ""), ""), ifelse("sdrel.weighted" %in% summary[j] == TRUE, paste("rel. weighted sd = ", round(De.stats[i,16], 2), "\n", sep = ""), ""), ifelse("seabs.weighted" %in% summary[j] == TRUE, paste("abs. weighted se = ", round(De.stats[i,17], 2), "\n", sep = ""), ""), ifelse("serel.weighted" %in% summary[j] == TRUE, paste("rel. weighted se = ", round(De.stats[i,18], 2), "\n", sep = ""), ""), sep = "")) } summary.text <- paste(summary.text, collapse = "") label.text[[length(label.text) + 1]] <- paste(stops, summary.text, stops, sep = "") } } else { for(i in 1:length(data)) { summary.text <- character(0) for(j in 1:length(summary)) { summary.text <- c(summary.text, ifelse("n" %in% summary[j] == TRUE, paste("n = ", De.stats[i,1], " | ", sep = ""), ""), ifelse("mean" %in% summary[j] == TRUE, paste("mean = ", round(De.stats[i,2], 2), " | ", sep = ""), ""), ifelse("mean.weighted" %in% summary[j] == TRUE, paste("weighted mean = ", round(De.stats[i,3], 2), " | ", sep = ""), ""), ifelse("median" %in% summary[j] == TRUE, paste("median = ", round(De.stats[i,4], 2), " | ", sep = ""), ""), ifelse("median.weighted" %in% summary[j] == TRUE, paste("weighted median = ", round(De.stats[i,5], 2), " | ", sep = ""), ""), ifelse("kdemax" %in% summary[j] == TRUE, paste("kdemax = ", round(De.stats[i,6], 2), " | ", sep = ""), ""), ifelse("sdrel" %in% summary[j] == TRUE, paste("rel. sd = ", round(De.stats[i,8], 2), " %", " | ", sep = ""), ""), ifelse("sdabs" %in% summary[j] == TRUE, paste("abs. sd = ", round(De.stats[i,7], 2), " | ", sep = ""), ""), ifelse("serel" %in% summary[j] == TRUE, paste("rel. se = ", round(De.stats[i,10], 2), " %", " | ", sep = ""), ""), ifelse("seabs" %in% summary[j] == TRUE, paste("abs. se = ", round(De.stats[i,9], 2), " | ", sep = ""), ""), ifelse("skewness" %in% summary[j] == TRUE, paste("skewness = ", round(De.stats[i,13], 2), " | ", sep = ""), ""), ifelse("kurtosis" %in% summary[j] == TRUE, paste("kurtosis = ", round(De.stats[i,14], 2), " | ", sep = ""), ""), ifelse("in.2s" %in% summary[j] == TRUE, paste("in 2 sigma = ", round(sum(data[[i]][,7] > -2 & data[[i]][,7] < 2) / nrow(data[[i]]) * 100 , 1), " % ", sep = ""), ""), ifelse("sdabs.weighted" %in% summary[j] == TRUE, paste("abs. weighted sd = ", round(De.stats[i,15], 2), " %", " | ", sep = ""), ""), ifelse("sdrel.weighted" %in% summary[j] == TRUE, paste("rel. weighted sd = ", round(De.stats[i,16], 2), " %", " | ", sep = ""), ""), ifelse("seabs.weighted" %in% summary[j] == TRUE, paste("abs. weighted se = ", round(De.stats[i,17], 2), " %", " | ", sep = ""), ""), ifelse("serel.weighted" %in% summary[j] == TRUE, paste("rel. weighted se = ", round(De.stats[i,18], 2), " %", " | ", sep = ""), "") ) } summary.text <- paste(summary.text, collapse = "") label.text[[length(label.text) + 1]] <- paste( " ", summary.text, sep = "") } ## remove outer vertical lines from string for(i in 2:length(label.text)) { label.text[[i]] <- substr(x = label.text[[i]], start = 3, stop = nchar(label.text[[i]]) - 3) } } ## remove dummy list element label.text[[1]] <- NULL ## convert keywords into summary and legend placement coordinates coords <- .get_keyword_coordinates(summary.pos, limits.x, limits.y) summary.pos <- coords$pos summary.adj <- coords$adj coords <- .get_keyword_coordinates(legend.pos, limits.x, limits.y) legend.pos <- coords$pos legend.adj <- coords$adj ## calculate line coordinates and further parameters if(!missing(line)) { #line = line + De.add if(log.z == TRUE) {line <- log(line)} line.coords <- list(NA) for(i in 1:length(line)) { line.x <- c(limits.x[1], r / sqrt(1 + f^2 * (line[i] - z.central.global)^2)) line.y <- c(0, (line[i] - z.central.global) * line.x[2]) line.coords[[length(line.coords) + 1]] <- rbind(line.x, line.y) } line.coords[1] <- NULL if(missing(line.col) == TRUE) { line.col <- seq(from = 1, to = length(line.coords)) } if(missing(line.label) == TRUE) { line.label <- rep("", length(line.coords)) } } ## calculate rug coordinates if(missing(rug) == FALSE) { if(log.z == TRUE) { rug.values <- log(De.global) } else { rug.values <- De.global } rug.coords <- list(NA) for(i in 1:length(rug.values)) { rug.x <- c(r / sqrt(1 + f^2 * (rug.values[i] - z.central.global)^2) * 0.988, r / sqrt(1 + f^2 * (rug.values[i] - z.central.global)^2) * 0.995) rug.y <- c((rug.values[i] - z.central.global) * rug.x[1], (rug.values[i] - z.central.global) * rug.x[2]) rug.coords[[length(rug.coords) + 1]] <- rbind(rug.x, rug.y) } rug.coords[1] <- NULL } ## Generate plot ------------------------------------------------------------ ## check if plotting is enabled if(show) { ## determine number of subheader lines to shift the plot if(length(summary) > 0 & summary.pos[1] == "sub") { shift.lines <- length(data) + 1 } else {shift.lines <- 1} ## setup plot area default <- par(mar = c(4, 4, shift.lines + 1.5, 7), xpd = TRUE, cex = cex) ## reset on exit on.exit(par(default), add = TRUE) ## create empty plot plot(NA, xlim = limits.x, ylim = limits.y, main = "", sub = sub, xlab = "", ylab = "", xaxs = "i", yaxs = "i", frame.plot = FALSE, axes = FALSE) ## add y-axis label mtext(side = 2, line = 2.5, at = 0, adj = 0.5, cex = cex, text = ylab) ## calculate upper x-axis label values label.x.upper <- if(log.z == TRUE) { as.character(round(1/axTicks(side = 1)[-1] * 100, 1)) } else { as.character(round(1/axTicks(side = 1)[-1], 1)) } ## optionally, plot 2-sigma-bar if(bar.col[1] != "none") { for(i in 1:length(data)) { polygon(x = polygons[i,1:4], y = polygons[i,5:8], lty = "blank", col = bar.col[i]) } } ## optionally, add grid lines if(grid.col[1] != "none") { for(i in 1:length(tick.x1.major)) { lines(x = c(limits.x[1], tick.x1.major[i]), y = c(0, tick.y1.major[i]), col = grid.col) } } ## optionally, plot central value lines if(lwd[1] > 0 & lty[1] > 0) { for(i in 1:length(data)) { x2 <- r / sqrt(1 + f^2 * ( data[[i]][1,5] - z.central.global)^2) y2 <- (data[[i]][1,5] - z.central.global) * x2 lines(x = c(limits.x[1], x2), y = c(0, y2), lty = lty[i], lwd = lwd[i], col = col[i]) } } ## optionally add further lines if(missing(line) == FALSE) { for(i in 1:length(line)) { lines(x = line.coords[[i]][1,], y = line.coords[[i]][2,], col = line.col[i]) text(x = line.coords[[i]][1,2], y = line.coords[[i]][2,2] + par()$cxy[2] * 0.3, labels = line.label[i], pos = 2, col = line.col[i], cex = cex * 0.9) } } ## overplot unwanted parts polygon(x = c(ellipse[,1], limits.x[2] * 2, limits.x[2] * 2), y = c(ellipse[,2], max(ellipse[,2]), min(ellipse[,2])), col = "white", lty = 0) ## add plot title title(main = main, line = shift.lines, font = 2) ## plot lower x-axis (precision) x.axis.ticks <- axTicks(side = 1) x.axis.ticks <- x.axis.ticks[c(TRUE, x.axis.ticks <= limits.x[2])] x.axis.ticks <- x.axis.ticks[x.axis.ticks <= limits.x[2]] ## axis with lables and ticks axis(side = 1, at = x.axis.ticks, lwd = 1, xlab = "") ## extend axis line to right side of the plot lines(x = c(max(x.axis.ticks, na.rm = TRUE), limits.x[2]), y = c(limits.y[1], limits.y[1])) ## draw closing tick on right hand side axis(side = 1, tcl = 0.5, lwd = 0, lwd.ticks = 1, at = limits.x[2], labels = FALSE) axis(side = 1, tcl = -0.5, lwd = 0, lwd.ticks = 1, at = limits.x[2], labels = FALSE) ## add upper axis label mtext(text = xlab[1], at = (limits.x[1] + limits.x[2]) / 2, side = 1, line = -3.5, cex = cex) ## add lower axis label mtext(text = xlab[2], at = (limits.x[1] + limits.x[2]) / 2, side = 1, line = 2.5, cex = cex) ## plot upper x-axis axis(side = 1, tcl = 0.5, lwd = 0, lwd.ticks = 1, at = x.axis.ticks[-1], labels = FALSE) ## remove first tick label (infinity) label.x.upper <- label.x.upper[1:(length(x.axis.ticks) - 1)] ## add tick labels axis(side = 1, lwd = 0, labels = label.x.upper, at = x.axis.ticks[-1], line = -3) ## plot minor z-ticks for(i in 1:length(tick.values.minor)) { lines(x = c(tick.x1.minor[i], tick.x2.minor[i]), y = c(tick.y1.minor[i], tick.y2.minor[i])) } ## plot major z-ticks for(i in 1:length(tick.values.major)) { lines(x = c(tick.x1.major[i], tick.x2.major[i]), y = c(tick.y1.major[i], tick.y2.major[i])) } ## plot z-axis lines(ellipse) ## plot z-values text(x = label.x, y = label.y, label = label.z.text, 0) ## plot z-label mtext(side = 4, at = 0, line = 5, las = 3, adj = 0.5, cex = cex, text = zlab) ## optionally add rug if(rug == TRUE) { for(i in 1:length(rug.coords)) { lines(x = rug.coords[[i]][1,], y = rug.coords[[i]][2,], col = col[data.global[i,9]]) } } ## plot values for(i in 1:length(data)) { points(data[[i]][,6][data[[i]][,6] <= limits.x[2]], data[[i]][,8][data[[i]][,6] <= limits.x[2]], col = col[i], pch = pch[i]) } ## optionally add min, max, median sample text if(length(stats) > 0) { text(x = stats.data[,1], y = stats.data[,2], labels = round(stats.data[,3], 1), pos = 2, cex = 0.85) } ## optionally add legend content if(missing(legend) == FALSE) { legend(x = legend.pos[1], y = 0.8 * legend.pos[2], xjust = legend.adj[1], yjust = legend.adj[2], legend = legend, pch = pch, col = col, text.col = col, cex = 0.8 * cex, bty = "n") } ## plot y-axis if(y.ticks == TRUE) { char.height <- par()$cxy[2] tick.space <- grDevices::axisTicks(usr = limits.y, log = FALSE) tick.space <- (max(tick.space) - min(tick.space)) / length(tick.space) if(tick.space < char.height * 1.5) { axis(side = 2, at = c(-2, 2), labels = c("", ""), las = 1) axis(side = 2, at = 0, tcl = 0, labels = paste("\u00B1", "2"), las = 1) } else { axis(side = 2, at = seq(-2, 2, by = 2), las = 2) } } else { axis(side = 2, at = 0) } ## optionally add subheader text mtext(side = 3, line = shift.lines - 2, text = mtext, cex = 0.8 * cex) ## add summary content for(i in 1:length(data)) { if(summary.pos[1] != "sub") { text(x = summary.pos[1], y = 0.8 * summary.pos[2], adj = summary.adj, labels = label.text[[i]], cex = 0.8 * cex, col = col[i]) } else { if(mtext == "") { mtext(side = 3, line = shift.lines - 1 - i, text = label.text[[i]], col = col[i], cex = 0.8 * cex) } } } ##FUN by R Luminescence Team if (fun == TRUE) sTeve() # nocov } if(output) { return(list(data = data, data.global = data.global, xlim = limits.x, ylim = limits.y, zlim = limits.z, r = r, plot.ratio = plot.ratio, ticks.major = ticks.major, ticks.minor = ticks.minor, labels = labels, polygons = polygons, ellipse.lims = ellipse.lims)) } } Luminescence/R/read_XSYG2R.R0000644000176200001440000006643114762554470015231 0ustar liggesusers#' @title Import XSYG files to R #' #' @description Imports XSYG-files produced by a Freiberg Instruments lexsyg reader into R. #' #' @details #' **How does the import function work?** #' #' The function uses the `'XML'` package to parse the file structure. Each #' sequence is subsequently translated into an [RLum.Analysis-class] object. #' #' **General structure XSYG format** #' #' ``` #' #' #' #' #' #' x0 , y0 ; x1 , y1 ; x2 , y2 ; x3 , y3 #' #' #' #' ``` #' #' So far, each #' XSYG file can only contain one ``, but multiple #' sequences. #' #' Each record may comprise several curves. #' #' **TL curve recalculation** #' #' On the FI lexsyg device TL curves are recorded as time against count values. #' Temperature values are monitored on the heating plate and stored in a #' separate curve (time vs. temperature). If the option #' `recalculate.TL.curves = TRUE` is chosen, the time values for each TL #' curve are replaced by temperature values. #' #' Practically, this means combining two matrices (Time vs. Counts and Time vs. #' Temperature) with different row numbers by their time values. Three cases #' are considered: #' #' 1. HE: Heating element #' 2. PMT: Photomultiplier tube #' 3. Interpolation is done using the function [approx] #' #' CASE (1): `nrow(matrix(PMT))` > `nrow(matrix(HE))` #' #' Missing temperature values from the heating element are calculated using #' time values from the PMT measurement. #' #' CASE (2): `nrow(matrix(PMT))` < `nrow(matrix(HE))` #' #' Missing count values from the PMT are calculated using time values from the #' heating element measurement. #' #' CASE (3): `nrow(matrix(PMT))` == `nrow(matrix(HE))` #' #' A new matrix is produced using temperature values from the heating element #' and count values from the PMT. #' #' **Note:** #' Please note that due to the recalculation of the temperature #' values based on values delivered by the heating element, it may happen that #' multiple count values exists for each temperature value and temperature #' values may also decrease during heating, not only increase. #' #' **Advanced file import** #' #' To allow for a more efficient usage of the function, instead of single path #' to a file just a directory can be passed as input. In this particular case #' the function tries to extract all XSYG-files found in the directory and import #' them all. Using this option internally the function constructs as list of #' the XSYG-files found in the directory. Please note no recursive detection #' is supported as this may lead to endless loops. #' #' @param file [character] or [list] (**required**): #' path and file name of the XSYG file. If input is a `list` it should comprise #' only `character`s representing each valid path and XSYG-file names. #' Alternatively, the input character can be just a directory (path), in which #' case the function tries to detect and import all XSYG-files found in the #' directory. #' #' @param recalculate.TL.curves [logical] (*with default*): #' if set to `TRUE`, TL curves are returned as temperature against count values #' (see details for more information) Note: The option overwrites the time vs. #' count TL curve. Select `FALSE` to import the raw data delivered by the #' lexsyg. Works for TL curves and spectra. #' #' @param n_records [numeric] (*with default*): set the number of records to be imported; by default #' the function attempts to import all records #' #' @param fastForward [logical] (*with default*): #' if `TRUE` for a more efficient data processing only a list of [RLum.Analysis-class] #' objects is returned. #' #' @param import [logical] (*with default*): #' if set to `FALSE`, only the XSYG file structure is shown. #' #' @param pattern [regex] (*with default*): #' optional regular expression if `file` is a link to a folder, to select just #' specific XSYG-files #' #' @param verbose [logical] (*with default*): enable/disable output to the #' terminal. If verbose is `FALSE` the `txtProgressBar` is also switched off #' #' @param txtProgressBar [logical] (*with default*): #' enable/disable the progress bar during import. Ignored if `verbose = FALSE`. #' #' @return #' **Using the option `import = FALSE`** #' #' A list consisting of two elements is shown: #' - [data.frame] with information on file. #' - [data.frame] with information on the sequences stored in the XSYG file. #' #' **Using the option `import = TRUE` (default)** #' #' A list is provided, the list elements #' contain: \item{Sequence.Header}{[data.frame] with information on the #' sequence.} \item{Sequence.Object}{[RLum.Analysis-class] #' containing the curves.} #' #' @note #' This function is a beta version as the XSYG file format is not yet #' fully specified. Thus, further file operations (merge, export, write) should #' be done using the functions provided with the package `'XML'`. #' #' **So far, no image data import is provided!** \cr #' Corresponding values in the XSXG file are skipped. #' #' #' @section Function version: 0.6.14 #' #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' #' @seealso `'XML'`, [RLum.Analysis-class], [RLum.Data.Curve-class], [approx] #' #' #' @references #' Grehl, S., Kreutzer, S., Hoehne, M., 2013. Documentation of the #' XSYG file format. Unpublished Technical Note. Freiberg, Germany #' #' **Further reading** #' #' XML: [https://en.wikipedia.org/wiki/XML]() #' #' @keywords IO #' #' @examples #' #' ##(1) import XSYG file to R (uncomment for usage) #' #' #FILE <- file.choose() #' #temp <- read_XSYG2R(FILE) #' #' ##(2) additional examples for pure XML import using the package XML #' ## (uncomment for usage) #' #' ##import entire XML file #' #FILE <- file.choose() #' #temp <- XML::xmlRoot(XML::xmlTreeParse(FILE)) #' #' ##search for specific subnodes with curves containing 'OSL' #' #getNodeSet(temp, "//Sample/Sequence/Record[@@recordType = 'OSL']/Curve") #' #' ##(2) How to extract single curves ... after import #' data(ExampleData.XSYG, envir = environment()) #' #' ##grep one OSL curves and plot the first curve #' OSLcurve <- get_RLum(OSL.SARMeasurement$Sequence.Object, recordType="OSL")[[1]] #' #' ##(3) How to see the structure of an object? #' structure_RLum(OSL.SARMeasurement$Sequence.Object) #' #' @md #' @export read_XSYG2R <- function( file, recalculate.TL.curves = TRUE, n_records = NULL, fastForward = FALSE, import = TRUE, pattern = ".xsyg", verbose = TRUE, txtProgressBar = TRUE ) { .set_function_name("read_XSYG2R") on.exit(.unset_function_name(), add = TRUE) ##TODO: this function should be reshaped: ## - metadata from the sequence should go into the info slot of the RLum.Analysis object ## >> however, the question is whether this works with subsequent functions ## - currently not all metadata are supported, it should be extended ## - the should be a mode importing ALL metadata ## - xlum should be general, xsyg should take care about subsequent details .validate_class(file, c("character", "list")) .validate_class(n_records, c("numeric", "NULL")) # Self Call ----------------------------------------------------------------------------------- # Option (a): Input is a list, every element in the list will be treated as file connection # with that many file can be read in at the same time # Option (b): The input is just a path, the function tries to grep ALL xsyg/XSYG files in the # directory and import them, if this is detected, we proceed as list if (is.character(file)) { .validate_length(file, 1) ##If this is not really a path we skip this here if (dir.exists(file) & length(dir(file)) > 0) { if (verbose) message("\n[read_XSYG2R()] Directory detected, trying to extract ", "'*.xsyg' files ...\n") file <- as.list(dir(file, recursive = TRUE, pattern = pattern, full.names = TRUE)) if (length(file) == 0) { if (verbose) .throw_message("No files matching the given pattern ", "found in directory, NULL returned") return(NULL) } } } if (is(file, "list")) { temp.return <- lapply(seq_along(file), function(x) { read_XSYG2R( file = file[[x]], recalculate.TL.curves = recalculate.TL.curves, fastForward = fastForward, import = import, verbose = verbose, txtProgressBar = txtProgressBar ) }) ##return if (fastForward) { if(import){ return(unlist(temp.return, recursive = FALSE)) } else{ return(as.data.frame(data.table::rbindlist(temp.return))) } } else{ return(temp.return) } } ## Integrity checks ------------------------------------------------------- ## check for URL and attempt download url_file <- .download_file(file, tempfile("read_XSYG2R_FILE"), verbose = verbose) if(!is.null(url_file)) file <- url_file ## normalise path, just in case file <- suppressWarnings(normalizePath(file)) ## check whether file exist if(!file.exists(file)) { if(verbose) .throw_message("File does not exist, nothing imported, NULL returned") return(NULL) } # (0) config -------------------------------------------------------------- #version.supported <- c("1.0") #additional functions #get spectrum values # TODO: This function could be written also in C++, however, not necessary due to a low demand get_XSYG.spectrum.values <- function(curve.node){ ##1st grep wavelength table wavelength <- XML::xmlAttrs(curve.node)["wavelengthTable"] ##string split wavelength <- as.numeric(unlist(strsplit(wavelength, split = ";", fixed = TRUE))) ##2nd grep time values curve.node <- unlist(strsplit(XML::xmlValue(curve.node), split = ";", fixed = TRUE)) curve.node <- strsplit(curve.node, split = ",", fixed = TRUE) curve.node.time <- as.numeric(vapply(curve.node, function(x) x[1], character(1))) curve.node.time <- as.numeric(vapply(curve.node, function(x) x[1], character(1))) ##3rd grep count values curve.node.count <- vapply(curve.node, function(x) { if(length(x) == 2) x[2] else x[3] }, character(1)) ##remove from pattern... curve.node.count <- do.call( what = "gsub", list(pattern="[[]|[]]", replacement="", x=curve.node.count)) ##4th combine to spectrum matrix spectrum.matrix <- matrix(NA, nrow = length(wavelength), ncol = length(curve.node.time)) for(i in 1:length(curve.node.time)) { tmp <- as.numeric(unlist(strsplit(curve.node.count[i], "|", fixed = TRUE))) if(length(tmp) == length(wavelength)) spectrum.matrix[,i] <- tmp } ## remove NA values from matrix id_NA <- colSums(is.na(spectrum.matrix)) != nrow(spectrum.matrix) spectrum.matrix <- spectrum.matrix[, id_NA] ##change row names (rows are wavelength) rownames(spectrum.matrix) <- round(wavelength, digits = 3) ##change column names (columns are time/temp values) colnames(spectrum.matrix) <- round(curve.node.time[id_NA], digits=3) return(spectrum.matrix) } # (1) Integrity tests ----------------------------------------------------- ##set HUGE for larger nodes HUGE <- 524288 ##parse XML tree using the package XML temp <- try( XML::xmlRoot(XML::xmlTreeParse(file, useInternalNodes = TRUE, options = HUGE, error = NULL)), silent = TRUE) ##show error if(inherits(temp, "try-error")){ if(verbose) .throw_message("XML file not readable, nothing imported, NULL returned") return(NULL) } # (2) Further file processing --------------------------------------------- ##==========================================================================## ##SHOW STRUCTURE if(!import){ ##sample information temp.sample <- as.data.frame(XML::xmlAttrs(temp), stringsAsFactors = FALSE) ##grep sequences files ##set data.frame names.sequence.header <- names(XML::xmlAttrs(temp[[1]])) temp.sequence.header <- data.frame(t(1:length(names.sequence.header)), stringsAsFactors = FALSE) colnames(temp.sequence.header) <- names.sequence.header ##fill information in data.frame for(i in 1:XML::xmlSize(temp)){ temp.sequence.header[i,] <- t(XML::xmlAttrs(temp[[i]])) } ##additional option for fastForward == TRUE if(fastForward){ ##change column header temp.sample <- t(temp.sample) colnames(temp.sample) <- paste0("sample::", colnames(temp.sample)) output <- cbind(temp.sequence.header, temp.sample) }else{ output <- list(Sample = temp.sample, Sequences = temp.sequence.header) } return(output) } else { ##==========================================================================## ##IMPORT XSYG FILE if (verbose) { cat("\n[read_XSYG2R()] Importing ...") cat("\n path: ", dirname(file)) cat("\n file: ", .shorten_filename(basename(file))) cat("\n") } ##PROGRESS BAR if(verbose && txtProgressBar){ pb <- txtProgressBar(min=0,max=XML::xmlSize(temp), char = "=", style=3) } ## set n_records if(is.null(n_records)) n_records <- XML::xmlSize(temp) ##loop over the entire sequence by sequence output <- lapply(1:min(XML::xmlSize(temp),n_records[1]), function(x){ ##read sequence header temp.sequence.header <- as.data.frame(XML::xmlAttrs(temp[[x]]), stringsAsFactors = FALSE) ##account for non set value if(length(temp.sequence.header)!= 0) colnames(temp.sequence.header) <- "" ###----------------------------------------------------------------------- ##LOOP ##read records >> records are combined to one RLum.Analysis object temp.sequence.object <- unlist(lapply(1:XML::xmlSize(temp[[x]]), function(i){ ##get recordType temp.sequence.object.recordType <- try(XML::xmlAttrs(temp[[x]][[i]])["recordType"], silent = TRUE) ##the XSYG file might be broken due to a machine error during the measurement, this ##control flow helps; if a try-error is observed NULL is returned if(!inherits(temp.sequence.object.recordType, "try-error")){ ##create a fallback, the function should not fail if(is.null(temp.sequence.object.recordType) || is.na(temp.sequence.object.recordType)){ temp.sequence.object.recordType <- "not_set" } ##correct record type in depending on the stimulator if(temp.sequence.object.recordType == "OSL"){ if(XML::xmlAttrs(temp[[x]][[i]][[ XML::xmlSize(temp[[x]][[i]])]])["stimulator"] == "ir_LED_850" | XML::xmlAttrs(temp[[x]][[i]][[ XML::xmlSize(temp[[x]][[i]])]])["stimulator"] == "ir_LD_850"){ temp.sequence.object.recordType <- "IRSL" } } ##loop 3rd level lapply(1:XML::xmlSize(temp[[x]][[i]]), function(j){ ##get values temp.sequence.object.curveValue <- temp[[x]][[i]][[j]] attrs <- XML::xmlAttrs(temp.sequence.object.curveValue) ##get curveType temp.sequence.object.curveType <- as.character(attrs["curveType"]) ##get detector temp.sequence.object.detector <- as.character(attrs["detector"]) ##get stimulator temp.sequence.object.stimulator <- as.character(attrs["stimulator"]) ##get additional information temp.sequence.object.info <- c(as.list(attrs), position = as.integer(as.character(temp.sequence.header["position",])), name = as.character(temp.sequence.header["name",])) ## TL curve recalculation ============================================ if(recalculate.TL.curves){ ##TL curve heating values is stored in the 3rd curve of every set if(temp.sequence.object.recordType == "TL" && j == 1){ #grep values from PMT measurement or spectrometer if(!"Spectrometer" %in% temp.sequence.object.detector){ temp.sequence.object.curveValue.PMT <- src_get_XSYG_curve_values(XML::xmlValue( temp[[x]][[i]][[j]])) ##round values (1 digit is the technical resolution of the heating element) temp.sequence.object.curveValue.PMT[,1] <- round( temp.sequence.object.curveValue.PMT[,1], digits = 1) #grep values from heating element temp.sequence.object.curveValue.heating.element <- src_get_XSYG_curve_values(XML::xmlValue( temp[[x]][[i]][[3]])) }else{ temp.sequence.object.curveValue.spectrum <- get_XSYG.spectrum.values( temp.sequence.object.curveValue) ##get time values which are stored in the row labels temp.sequence.object.curveValue.spectrum.time <- as.numeric( colnames(temp.sequence.object.curveValue.spectrum)) ##round values (1 digit is technical resolution of the heating element) temp.sequence.object.curveValue.spectrum.time <- round( temp.sequence.object.curveValue.spectrum.time, digits = 1) } #grep values from heating element temp.sequence.object.curveValue.heating.element <- src_get_XSYG_curve_values(XML::xmlValue( temp[[x]][[i]][[3]])) temp.element <- temp.sequence.object.curveValue.heating.element[, 1] if(!"Spectrometer" %in% temp.sequence.object.detector){ #reduce matrix values to values of the detection temp.sequence.object.curveValue.heating.element <- temp.sequence.object.curveValue.heating.element[ temp.element >= min(temp.sequence.object.curveValue.PMT[, 1]) & temp.element <= max(temp.sequence.object.curveValue.PMT[, 1]), , drop = FALSE] }else{ #reduce matrix values to values of the detection temp.sequence.object.curveValue.heating.element <- temp.sequence.object.curveValue.heating.element[ temp.element >= min(temp.sequence.object.curveValue.spectrum.time) & temp.element <= max(temp.sequence.object.curveValue.spectrum.time), , drop = FALSE] } ## calculate corresponding heating rate, this makes only sense ## for linear heating, therefore is has to be the maximum value ##remove 0 values (not measured) and limit to peak heating.rate.values <- temp.sequence.object.curveValue.heating.element[ temp.sequence.object.curveValue.heating.element[,2] > 0 & temp.sequence.object.curveValue.heating.element[,2] <= max(temp.sequence.object.curveValue.heating.element[,2]),,drop = FALSE] heating.rate <- (heating.rate.values[length(heating.rate.values[,2]), 2] - heating.rate.values[1,2])/ (heating.rate.values[length(heating.rate.values[,1]), 1] - heating.rate.values[1,1]) ##round values heating.rate <- round(heating.rate, digits=1) ##add to info element temp.sequence.object.info <- c(temp.sequence.object.info, RATE = heating.rate) ##PERFORM RECALCULATION ##check which object contains more data if(!"Spectrometer" %in% temp.sequence.object.detector){ ##CASE (1) if(nrow(temp.sequence.object.curveValue.PMT) > nrow(temp.sequence.object.curveValue.heating.element)){ temp.sequence.object.curveValue.heating.element.i <- approx( x = temp.sequence.object.curveValue.heating.element[,1], y = temp.sequence.object.curveValue.heating.element[,2], xout = temp.sequence.object.curveValue.PMT[,1], rule = 2) temperature.values <- temp.sequence.object.curveValue.heating.element.i$y count.values <- temp.sequence.object.curveValue.PMT[,2] ##CASE (2) }else if((nrow(temp.sequence.object.curveValue.PMT) < nrow(temp.sequence.object.curveValue.heating.element))){ temp.sequence.object.curveValue.PMT.i <- approx( x = temp.sequence.object.curveValue.PMT[,1], y = temp.sequence.object.curveValue.PMT[,2], xout = temp.sequence.object.curveValue.heating.element[,1], rule = 2) temperature.values <- temp.sequence.object.curveValue.heating.element[,2] count.values <- temp.sequence.object.curveValue.PMT.i$y ##CASE (3) }else{ temperature.values <- temp.sequence.object.curveValue.heating.element[,2] count.values <- temp.sequence.object.curveValue.PMT[,2] } ##combine as matrix temp.sequence.object.curveValue <- as.matrix(cbind( temperature.values, count.values)) ##set curve identifier temp.sequence.object.info$curveDescripter <- "Temperature [\u00B0C]; Counts [a.u.]" }else{ ##CASE (1) here different approach. in contrast to the PMT measurements, as ## usually the resolution should be much, much lower for such measurements ## Otherwise we would introduce some pseudo signals, as we have to ## take care of noise later one if(length(temp.sequence.object.curveValue.spectrum.time) != nrow(temp.sequence.object.curveValue.heating.element)){ temp.sequence.object.curveValue.heating.element.i <- approx( x = temp.sequence.object.curveValue.heating.element[,1], y = temp.sequence.object.curveValue.heating.element[,2], xout = temp.sequence.object.curveValue.spectrum.time, rule = 2, ties = mean, na.rm = FALSE) temperature.values <- temp.sequence.object.curveValue.heating.element.i$y ##check for duplicated values and if so, increase this idx.dup <- which(duplicated(temperature.values)) if (length(idx.dup) > 0) { temperature.values[idx.dup] <- temperature.values[idx.dup] + 1 .throw_warning("Temperature values are found to be ", "duplicated and increased by 1 K.") } ##CASE (2) (equal) }else{ ##CASE (2) (equal) temperature.values <- temp.sequence.object.curveValue.heating.element[,2] } ##reset values of the matrix colnames(temp.sequence.object.curveValue.spectrum) <- temperature.values temp.sequence.object.curveValue <- temp.sequence.object.curveValue.spectrum ##change curve descriptor temp.sequence.object.info$curveDescripter <- "Temperature [\u00B0C]; Wavelength [nm]; Counts [1/ch]" } }##endif }##endif recalculate.TL.curves == TRUE # Cleanup info objects ------------------------------------------------------------------------ if("curveType" %in% names(temp.sequence.object.info)) temp.sequence.object.info[["curveType"]] <- NULL # Set RLum.Data-objects ----------------------------------------------------------------------- if("Spectrometer" %in% temp.sequence.object.detector == FALSE){ if(is(temp.sequence.object.curveValue, "matrix") == FALSE){ temp.sequence.object.curveValue <- src_get_XSYG_curve_values(XML::xmlValue(temp.sequence.object.curveValue)) } set_RLum( class = "RLum.Data.Curve", originator = "read_XSYG2R", recordType = paste(temp.sequence.object.recordType, " (", temp.sequence.object.detector,")", sep = ""), curveType = temp.sequence.object.curveType, data = temp.sequence.object.curveValue, info = temp.sequence.object.info) }else if("Spectrometer" %in% temp.sequence.object.detector == TRUE) { if(is(temp.sequence.object.curveValue, "matrix") == FALSE){ temp.sequence.object.curveValue <- get_XSYG.spectrum.values(temp.sequence.object.curveValue) } set_RLum( class = "RLum.Data.Spectrum", originator = "read_XSYG2R", recordType = paste(temp.sequence.object.recordType, " (",temp.sequence.object.detector,")", sep = ""), curveType = temp.sequence.object.curveType, data = temp.sequence.object.curveValue, info = temp.sequence.object.info) } }) }else{ return(NULL) }##if-try condition }), use.names = FALSE) ##if the XSYG file is broken we get NULL as list element if (!is.null(temp.sequence.object)) { ##set RLum.Analysis object temp.sequence.object <- set_RLum( originator = "read_XSYG2R", class = "RLum.Analysis", records = temp.sequence.object, protocol = as.character(temp.sequence.header["protocol",1]), info = list(file = file) ) ##set parent uid of RLum.Anlaysis as parent ID of the records temp.sequence.object <- .set_pid(temp.sequence.object) ##update progress bar if (verbose && txtProgressBar) { setTxtProgressBar(pb, x) } ##merge output and return values if(fastForward){ return(temp.sequence.object) }else{ return(list(Sequence.Header = temp.sequence.header, Sequence.Object = temp.sequence.object)) } }else{ return(temp.sequence.object) } })##end loop for sequence list ##close ProgressBar if(verbose && txtProgressBar ){close(pb)} ##show output information if(length(output[sapply(output, is.null)]) == 0){ if(verbose) paste("\t >>",XML::xmlSize(temp), " sequence(s) loaded successfully.\n") }else{ if(verbose){ paste("\t >>",XML::xmlSize(temp), " sequence(s) in file.", XML::xmlSize(temp)-length(output[sapply(output, is.null)]), "sequence(s) loaded successfully. \n") } .throw_warning(length(output[sapply(output, is.null)]), " incomplete sequence(s) removed.") } ##output invisible(output) }#end if ##get rid of the NULL elements (as stated before ... invalid files) return(.rm_NULL_elements(output)) } Luminescence/R/fit_DoseResponseCurve.R0000644000176200001440000016063114762554470017515 0ustar liggesusers#' @title Fit a dose-response curve for luminescence data (Lx/Tx against dose) #' #' @description #' #' A dose-response curve is produced for luminescence measurements using a #' regenerative or additive protocol. The function supports interpolation and #' extrapolation to calculate the equivalent dose. #' #' @details #' #' **Fitting methods** #' #' For all options (except for the `LIN`, `QDR` and the `EXP OR LIN`), #' the [minpack.lm::nlsLM] function with the `LM` (Levenberg-Marquardt algorithm) #' algorithm is used. Note: For historical reasons for the Monte Carlo #' simulations partly the function [nls] using the `port` algorithm. #' #' The solution is found by transforming the function or using [stats::uniroot]. #' #' `LIN`: fits a linear function to the data using #' [lm]: \deqn{y = mx + n} #' #' `QDR`: fits a linear function with a quadratic term to the data using #' [lm]: \deqn{y = a + bx + cx^2} #' #' `EXP`: tries to fit a function of the form #' \deqn{y = a(1 - exp(-\frac{(x+c)}{b}))} #' Parameters b and c are approximated by a linear fit using [lm]. Note: b = D0 #' #' `EXP OR LIN`: works for some cases where an `EXP` fit fails. #' If the `EXP` fit fails, a `LIN` fit is done instead. #' #' `EXP+LIN`: tries to fit an exponential plus linear function of the #' form: #' \deqn{y = a(1-exp(-\frac{x+c}{b}) + (gx))} #' The \eqn{D_e} is calculated by iteration. #' #' **Note:** In the context of luminescence dating, this #' function has no physical meaning. Therefore, no D0 value is returned. #' #' `EXP+EXP`: tries to fit a double exponential function of the form #' \deqn{y = (a_1 (1-exp(-\frac{x}{b_1}))) + (a_2 (1 - exp(-\frac{x}{b_2})))} #' This fitting procedure is not robust against wrong start parameters and #' should be further improved. #' #' `GOK`: tries to fit the general-order kinetics function after #' Guralnik et al. (2015) of the form of #' #' \deqn{y = a (d - (1 + (\frac{1}{b}) x c)^{(-1/c)})} #' #' where **c > 0** is a kinetic order modifier #' (not to be confused with **c** in `EXP` or `EXP+LIN`!). #' #' `LambertW`: tries to fit a dose-response curve based on the Lambert W function #' according to Pagonis et al. (2020). The function has the form #' #' \deqn{y ~ (1 + (W((R - 1) * exp(R - 1 - ((x + D_{int}) / D_{c}))) / (1 - R))) * N} #' #' with \eqn{W} the Lambert W function, calculated using the package [lamW::lambertW0], #' \eqn{R} the dimensionless retrapping ratio, \eqn{N} the total concentration #' of trappings states in cm^-3 and \eqn{D_{c} = N/R} a constant. \eqn{D_{int}} is #' the offset on the x-axis. Please note that finding the root in `mode = "extrapolation"` #' is a non-easy task due to the shape of the function and the results might be #' unexpected. #' #' **Fit weighting** #' #' If the option `fit.weights = TRUE` is chosen, weights are calculated using #' provided signal errors (Lx/Tx error): #' \deqn{fit.weights = \frac{\frac{1}{error}}{\Sigma{\frac{1}{error}}}} #' #' **Error estimation using Monte Carlo simulation** #' #' Error estimation is done using a parametric bootstrapping approach. A set of #' `Lx/Tx` values is constructed by randomly drawing curve data sampled from normal #' distributions. The normal distribution is defined by the input values (`mean #' = value`, `sd = value.error`). Then, a dose-response curve fit is attempted for each #' dataset resulting in a new distribution of single `De` values. The standard #' deviation of this distribution becomes then the error of the `De`. With increasing #' iterations, the error value becomes more stable. However, naturally the error #' will not decrease with more MC runs. #' #' Alternatively, the function returns highest probability density interval #' estimates as output, users may find more useful under certain circumstances. #' #' **Note:** It may take some calculation time with increasing MC runs, #' especially for the composed functions (`EXP+LIN` and `EXP+EXP`).\cr #' Each error estimation is done with the function of the chosen fitting method. #' #' @param object [data.frame] or a [list] of such objects (**required**): #' data frame with columns for `Dose`, `LxTx`, `LxTx.Error` and `TnTx`. #' The column for the test dose response is optional, but requires `'TnTx'` as #' column name if used. For exponential fits at least three dose points #' (including the natural) should be provided. If `object` is a list, #' the function is called on each of its elements. #' #' @param mode [character] (*with default*): #' selects calculation mode of the function. #' - `"interpolation"` (default) calculates the De by interpolation, #' - `"extrapolation"` calculates the equivalent dose by extrapolation (useful for MAAD measurements) and #' - `"alternate"` calculates no equivalent dose and just fits the data points. #' #' Please note that for option `"interpolation"` the first point is considered #' as natural dose #' #' @param fit.method [character] (*with default*): #' function used for fitting. Possible options are: #' - `LIN`, #' - `QDR`, #' - `EXP`, #' - `EXP OR LIN`, #' - `EXP+LIN`, #' - `EXP+EXP`, #' - `GOK`, #' - `LambertW` #' #' See details. #' #' @param fit.force_through_origin [logical] (*with default*) #' allow to force the fitted function through the origin. #' For `method = "EXP+EXP"` the function will be fixed through #' the origin in either case, so this option will have no effect. #' #' @param fit.weights [logical] (*with default*): #' option whether the fitting is done with or without weights. See details. #' #' @param fit.includingRepeatedRegPoints [logical] (*with default*): #' includes repeated points for fitting (`TRUE`/`FALSE`). #' #' @param fit.NumberRegPoints [integer] (*optional*): #' set number of regeneration points manually. By default the number of all (!) #' regeneration points is used automatically. #' #' @param fit.NumberRegPointsReal [integer] (*optional*): #' if the number of regeneration points is provided manually, the value of the #' real, regeneration points = all points (repeated points) including reg 0, #' has to be inserted. #' #' @param fit.bounds [logical] (*with default*): #' set lower fit bounds for all fitting parameters to 0. Limited for the use #' with the fit methods `EXP`, `EXP+LIN`, `EXP OR LIN`, `GOK`, `LambertW` #' Argument to be inserted for experimental application only! #' #' @param n.MC [integer] (*with default*): number of Monte Carlo simulations #' for error estimation, see details. #' #' @param txtProgressBar [logical] (*with default*): #' enable/disable the progress bar. If `verbose = FALSE` also no #' `txtProgressBar` is shown. #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param ... Further arguments to be passed (currently ignored). #' #' @return #' An `RLum.Results` object is returned containing the slot `data` with the #' following elements: #' #' **Overview elements** #' \tabular{lll}{ #' **DATA.OBJECT** \tab **TYPE** \tab **DESCRIPTION** \cr #' `..$De` : \tab `data.frame` \tab Table with De values \cr #' `..$De.MC` : \tab `numeric` \tab Table with De values from MC runs \cr #' `..$Fit` : \tab [nls] or [lm] \tab object from the fitting for `EXP`, `EXP+LIN` and `EXP+EXP`. #' In case of a resulting linear fit when using `LIN`, `QDR` or `EXP OR LIN` \cr #' `..Fit.Args` : \tab `list` \tab Arguments to the function \cr #' `..$Formula` : \tab [expression] \tab Fitting formula as R expression \cr #' `..$call` : \tab `call` \tab The original function call\cr #' } #' #' If `object` is a list, then the function returns a list of `RLum.Results` #' objects as defined above. #' #' **Details - `DATA.OBJECT$De`** #' This object is a [data.frame] with the following columns #' \tabular{lll}{ #' `De` \tab [numeric] \tab equivalent dose \cr #' `De.Error` \tab [numeric] \tab standard error the equivalent dose \cr #' `D01` \tab [numeric] \tab D-naught value, curvature parameter of the exponential \cr #' `D01.ERROR` \tab [numeric] \tab standard error of the D-naught value\cr #' `D02` \tab [numeric] \tab 2nd D-naught value, only for `EXP+EXP`\cr #' `D02.ERROR` \tab [numeric] \tab standard error for 2nd D-naught; only for `EXP+EXP`\cr #' `Dc` \tab [numeric] \tab value indicating saturation level; only for `LambertW` \cr #' `n_N` \tab [numeric] \tab saturation level of dose-response curve derived via integration from the used function; it compares the full integral of the curves (`N`) to the integral until `De` (`n`) (e.g., Guralnik et al., 2015)\cr #' `De.MC` \tab [numeric] \tab equivalent dose derived by Monte-Carlo simulation; ideally identical to `De`\cr #' `De.plot` \tab [numeric] \tab equivalent dose use for plotting \cr #' `Fig` \tab [character] \tab applied fit function \cr #' `HPDI68_L` \tab [numeric] \tab highest probability density of approximated equivalent dose probability curve representing the lower boundary of 68% probability \cr #' `HPDI68_U` \tab [numeric] \tab same as `HPDI68_L` for the upper bound \cr #' `HPDI95_L` \tab [numeric] \tab same as `HPDI68_L` but for 95% probability \cr #' `HPDI95_U` \tab [numeric] \tab same as `HPDI95_L` but for the upper bound \cr #' #' } #' #' @section Function version: 1.2.1 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Michael Dietze, GFZ Potsdam (Germany) \cr #' Marco Colombo, Institute of Geography, Heidelberg University (Germany) #' #' @references #' #' Berger, G.W., Huntley, D.J., 1989. Test data for exponential fits. Ancient TL 7, 43-46. #' #' Guralnik, B., Li, B., Jain, M., Chen, R., Paris, R.B., Murray, A.S., Li, S.-H., Pagonis, P., #' Herman, F., 2015. Radiation-induced growth and isothermal decay of infrared-stimulated luminescence #' from feldspar. Radiation Measurements 81, 224-231. #' #' Pagonis, V., Kitis, G., Chen, R., 2020. A new analytical equation for the dose response of dosimetric materials, #' based on the Lambert W function. Journal of Luminescence 225, 117333. \doi{10.1016/j.jlumin.2020.117333} #' #' @seealso [plot_GrowthCurve], [nls], [RLum.Results-class], [get_RLum], #' [minpack.lm::nlsLM], [lm], [uniroot], [lamW::lambertW0] #' #' @examples #' #' ##(1) fit growth curve for a dummy data.set and show De value #' data(ExampleData.LxTxData, envir = environment()) #' temp <- fit_DoseResponseCurve(LxTxData) #' get_RLum(temp) #' #' ##(1b) to access the fitting value try #' get_RLum(temp, data.object = "Fit") #' #' ##(2) fit using the 'extrapolation' mode #' LxTxData[1,2:3] <- c(0.5, 0.001) #' print(fit_DoseResponseCurve(LxTxData, mode = "extrapolation")) #' #' ##(3) fit using the 'alternate' mode #' LxTxData[1,2:3] <- c(0.5, 0.001) #' print(fit_DoseResponseCurve(LxTxData, mode = "alternate")) #' #' ##(4) import and fit test data set by Berger & Huntley 1989 #' QNL84_2_unbleached <- #' read.table(system.file("extdata/QNL84_2_unbleached.txt", package = "Luminescence")) #' #' results <- fit_DoseResponseCurve( #' QNL84_2_unbleached, #' mode = "extrapolation", #' verbose = FALSE) #' #' #calculate confidence interval for the parameters #' #as alternative error estimation #' confint(results$Fit, level = 0.68) #' #' #' \dontrun{ #' QNL84_2_bleached <- #' read.table(system.file("extdata/QNL84_2_bleached.txt", package = "Luminescence")) #' STRB87_1_unbleached <- #' read.table(system.file("extdata/STRB87_1_unbleached.txt", package = "Luminescence")) #' STRB87_1_bleached <- #' read.table(system.file("extdata/STRB87_1_bleached.txt", package = "Luminescence")) #' #' print( #' fit_DoseResponseCurve( #' QNL84_2_bleached, #' mode = "alternate", #' verbose = FALSE)$Fit) #' #' print( #' fit_DoseResponseCurve( #' STRB87_1_unbleached, #' mode = "alternate", #' verbose = FALSE)$Fit) #' #' print( #' fit_DoseResponseCurve( #' STRB87_1_bleached, #' mode = "alternate", #' verbose = FALSE)$Fit) #' } #' #' @md #' @export fit_DoseResponseCurve <- function( object, mode = "interpolation", fit.method = "EXP", fit.force_through_origin = FALSE, fit.weights = TRUE, fit.includingRepeatedRegPoints = TRUE, fit.NumberRegPoints = NULL, fit.NumberRegPointsReal = NULL, fit.bounds = TRUE, n.MC = 100, txtProgressBar = TRUE, verbose = TRUE, ... ) { .set_function_name("fit_DoseResponseCurve") on.exit(.unset_function_name(), add = TRUE) ## Self-call -------------------------------------------------------------- if (inherits(object, "list")) { lapply(object, function(x) .validate_class(x, c("data.frame", "matrix"), name = "All elements of 'object'")) results <- lapply(object, function(x) { fit_DoseResponseCurve( object = x, mode = mode, fit.method = fit.method, fit.force_through_origin = fit.force_through_origin, fit.weights = fit.weights, fit.includingRepeatedRegPoints = fit.includingRepeatedRegPoints, fit.NumberRegPoints = fit.NumberRegPoints, fit.NumberRegPointsReal = fit.NumberRegPointsReal, fit.bounds = fit.bounds, n.MC = n.MC, txtProgressBar = txtProgressBar, verbose = verbose, ... ) }) return(results) } ## Self-call end ---------------------------------------------------------- .validate_class(object, c("data.frame", "matrix", "list")) .validate_not_empty(object) mode <- .validate_args(mode, c("interpolation", "extrapolation", "alternate")) fit.method_supported <- c("LIN", "QDR", "EXP", "EXP OR LIN", "EXP+LIN", "EXP+EXP", "GOK", "LambertW") fit.method <- .validate_args(fit.method, fit.method_supported) .validate_logical_scalar(fit.force_through_origin) .validate_logical_scalar(fit.weights) .validate_logical_scalar(fit.includingRepeatedRegPoints) .validate_logical_scalar(fit.bounds) .validate_positive_scalar(fit.NumberRegPoints, int = TRUE, null.ok = TRUE) .validate_positive_scalar(fit.NumberRegPointsReal, int = TRUE, null.ok = TRUE) .validate_positive_scalar(n.MC, int = TRUE) ## convert input to data.frame switch( class(object)[1], data.frame = object, matrix = object <- as.data.frame(object), ) ##2.1 check column numbers; we assume that in this particular case no error value ##was provided, e.g., set all errors to 0 if (ncol(object) == 2) object <- cbind(object, 0) ##2.2 check for inf data in the data.frame if (any(is.infinite(unlist(object)))) { ## https://stackoverflow.com/questions/12188509/cleaning-inf-values-from-an-r-dataframe ## This is slow, but it does not break with previous code object <- do.call(data.frame, lapply(object, function(x) replace(x, is.infinite(x), NA))) .throw_warning("Inf values found, replaced by NA") } ##2.3 check whether the dose value is equal all the time if (sum(abs(diff(object[[1]])), na.rm = TRUE) == 0) { .throw_message("All points have the same dose, NULL returned") return(NULL) } ## count and exclude NA values and print result if (sum(!stats::complete.cases(object)) > 0) .throw_warning(sum(!stats::complete.cases(object)), " NA values removed") ## exclude NA object <- na.exclude(object) ## Check if anything is left after removal if (nrow(object) == 0) { .throw_message("After NA removal, nothing is left from the data set, ", "NULL returned") return(NULL) } ##3. verbose mode if(!verbose) txtProgressBar <- FALSE ##remove rownames from data.frame, as this could causes errors for the reg point calculation rownames(object) <- NULL ## zero values in the data.frame are not allowed for the y-column y.zero <- object[, 2] == 0 if (sum(y.zero) > 0) { .throw_warning(sum(y.zero), " values with 0 for Lx/Tx detected, ", "replaced by ", .Machine$double.eps) object[y.zero, 2] <- .Machine$double.eps } ##1. INPUT #1.0.1 calculate number of reg points if not set if(is.null(fit.NumberRegPoints)) fit.NumberRegPoints <- length(object[-1,1]) if(is.null(fit.NumberRegPointsReal)){ fit.RegPointsReal <- which(!duplicated(object[,1]) | object[,1] != 0) fit.NumberRegPointsReal <- length(fit.RegPointsReal) } ## 1.1 Produce data.frame from input values ## for interpolation the first point is considered as natural dose first.idx <- ifelse(mode == "interpolation", 2, 1) last.idx <- fit.NumberRegPoints + 1 xy <- object[first.idx:last.idx, 1:2] colnames(xy) <- c("x", "y") y.Error <- object[first.idx:last.idx, 3] ##1.1.1 produce weights for weighted fitting if(fit.weights){ fit.weights <- 1 / abs(y.Error) / sum(1 / abs(y.Error)) if (anyNA(fit.weights)) { # FIXME(mcol): infinities? fit.weights <- rep(1, length(y.Error)) .throw_warning("Error column invalid or 0, 'fit.weights' ignored") } }else{ fit.weights <- rep(1, length(y.Error)) } #1.2 Prepare data sets regeneration points for MC Simulation ## for interpolation the first point is considered as natural dose first.idx <- ifelse(mode == "interpolation", 2, 1) last.idx <- fit.NumberRegPoints + 1 data.MC <- t(vapply( X = first.idx:last.idx, FUN = function(x) { sample(rnorm( n = 10000, mean = object[x, 2], sd = abs(object[x, 3]) ), size = n.MC, replace = TRUE) }, FUN.VALUE = vector("numeric", length = n.MC) )) if (mode == "interpolation") { #1.3 Do the same for the natural signal data.MC.De <- sample(rnorm(10000, mean = object[1, 2], sd = abs(object[1, 3])), n.MC, replace = TRUE) } else if (mode == "extrapolation") { data.MC.De <- rep(0, n.MC) } #1.3 set x.natural x.natural <- NA ##1.4 set initialise variables De <- De.Error <- D01 <- R <- Dc <- N <- NA ## FITTING ---------------------------------------------------------------- ##3. Fitting values with nonlinear least-squares estimation of the parameters ## set functions for fitting ## REMINDER: DO NOT ADD {} brackets, otherwise the formula construction will not ## work ## get current environment, we need that later currn_env <- environment() ## Define functions --------- ### EXP ------- fit.functionEXP <- function(a,b,c,x) a*(1-exp(-(x+c)/b)) ### EXP+LIN ----------- fit.functionEXPLIN <- function(a,b,c,g,x) a*(1-exp(-(x+c)/b)+(g*x)) ### EXP+EXP ---------- fit.functionEXPEXP <- function(a1,a2,b1,b2,x) (a1*(1-exp(-(x)/b1)))+(a2*(1-exp(-(x)/b2))) ### GOK ---------------- fit.functionGOK <- function(a,b,c,d,x) a*(d-(1+(1/b)*x*c)^(-1/c)) ### Lambert W ------------- fit.functionLambertW <- function(R, Dc, N, Dint, x) (1 + (lamW::lambertW0((R - 1) * exp(R - 1 - ((x + Dint) / Dc ))) / (1 - R))) * N ## input data for fitting; exclude repeated RegPoints if (!fit.includingRepeatedRegPoints[1]) { is.dup <- duplicated(xy$x) fit.weights <- fit.weights[!is.dup] data.MC <- data.MC[!is.dup, , drop = FALSE] y.Error <- y.Error[!is.dup] xy <- xy[!is.dup, , drop = FALSE] } data <- xy ## number of parameters in the non-linear models num.params <- 4 if (fit.method %in% c("EXP", "EXP OR LIN")) num.params <- 3 ## if the number of data points is smaller than the number of parameters ## to fit, the nls() function gets trapped in an infinite loop if (!fit.method %in% c("LIN", "QDR") && nrow(data) < num.params) { fit.method <- "LIN" msg <- paste("Fitting a non-linear least-squares model requires at least", num.params, "dose points, 'fit.method' changed to 'LIN'") .throw_warning(msg) if (verbose) message("[fit_DoseResponseCurve()] ", msg) } ## helper to report the fit .report_fit <- function(De, ...) { if (verbose && mode != "alternate") { writeLines(paste0("[fit_DoseResponseCurve()] Fit: ", fit.method, " (", mode,") ", "| De = ", round(abs(De), 2), ...)) } } ## helper to report a failure in the fit .report_fit_failure <- function(method, mode, ...) { if (verbose) { writeLines(paste0("[fit_DoseResponseCurve()] Fit failed for ", fit.method, " (", mode, ")")) } } ##START PARAMETER ESTIMATION ##general setting of start parameters for fitting ## a - estimation for the maximum of the y-values (Lx/Tx) a <- max(data[,2]) ##b - get start parameters from a linear fit of the log(y) data ## (don't even try fitting if no y value is positive) b <- 1 if (any(data$y > 0)) { ## this may cause NaN values so we have to handle those later fit.lm <- try(stats::lm(suppressWarnings(log(data$y)) ~ data$x), silent = TRUE) if (!inherits(fit.lm, "try-error") && !is.na(fit.lm$coefficients[2])) b <- as.numeric(1 / fit.lm$coefficients[2]) } ##c - get start parameters from a linear fit - offset on x-axis fit.lm <- stats::lm(data$y ~ data$x) c <- as.numeric(abs(fit.lm$coefficients[1]/fit.lm$coefficients[2])) #take slope from x - y scaling g <- max(data[,2]/max(data[,1])) #set D01 and D02 (in case of EXP+EXP) D01 <- NA D01.ERROR <- NA D02 <- NA D02.ERROR <- NA ## ------------------------------------------------------------------------ ## to be a little bit more flexible, the start parameters varies within ## a normal distribution ## draw 50 start values from a normal distribution if (fit.method != "LIN") { a.MC <- suppressWarnings(rnorm(50, mean = a, sd = a / 100)) if (!is.na(b)) { b.MC <- suppressWarnings(rnorm(50, mean = b, sd = b / 100)) } c.MC <- suppressWarnings(rnorm(50, mean = c, sd = c / 100)) g.MC <- suppressWarnings(rnorm(50, mean = g, sd = g / 1)) ##set start vector (to avoid errors within the loop) a.start <- NA b.start <- NA c.start <- NA g.start <- NA } ## QDR -------------------------------------------------------------------- if (fit.method == "QDR") { ## establish models without and with intercept term model.qdr <- stats::update(y ~ I(x) + I(x^2), stats::reformulate(".", intercept = !fit.force_through_origin)) if (mode == "interpolation") { y <- object[1, 2] lower <- 0 } else if (mode == "extrapolation") { y <- 0 lower <- -1e06 } upper <- max(object[, 1]) * 1.5 .fit_qdr_model <- function(model, data, y) { fit <- stats::lm(model, data = data, weights = fit.weights) ## solve and get De De <- NA if (mode != "alternate") { De.fs <- function(fit, x, y) { predict(fit, newdata = data.frame(x)) - y } De.uniroot <- try(uniroot(De.fs, fit = fit, y = y, lower = lower, upper = upper), silent = TRUE) if (!inherits(De.uniroot, "try-error")) { De <- De.uniroot$root } } return(list(fit = fit, De = De)) } res <- .fit_qdr_model(model.qdr, data, y) fit <- res$fit De <- res$De if (!inherits(fit, "try-error")) .report_fit(De) else .report_fit_failure(fit.method, mode) ##set progressbar if(txtProgressBar){ cat("\n\t Run Monte Carlo loops for error estimation of the QDR fit\n") pb<-txtProgressBar(min=0,max=n.MC, char="=", style=3) } ## Monte Carlo Error estimation x.natural <- sapply(1:n.MC, function(i) { if (txtProgressBar) setTxtProgressBar(pb, i) abs(.fit_qdr_model(model.qdr, data.frame(x = xy$x, y = data.MC[, i]), y = data.MC.De[i])$De) }) if(txtProgressBar) close(pb) } ## EXP -------------------------------------------------------------------- if (fit.method=="EXP" | fit.method=="EXP OR LIN" | fit.method=="LIN"){ if(fit.method != "LIN"){ if (anyNA(c(a, b, c))) { .throw_message("Fit ", fit.method, " (", mode, ") could not be applied to this data set, NULL returned") return(NULL) } ##FITTING on GIVEN VALUES## # --use classic R fitting routine to fit the curve ##try to create some start parameters from the input values to make ## the fitting more stable for(i in 1:50){ a <- a.MC[i] b <- b.MC[i] c <- c.MC[i] fit.initial <- suppressWarnings(try(nls( formula = .toFormula(fit.functionEXP, env = currn_env), data = data, start = c(a = a, b = b, c = c), trace = FALSE, algorithm = "port", lower = c(a = 0, b = 1e-6, c = 0), stats::nls.control( maxiter = 100, warnOnly = TRUE, minFactor = 1 / 2048 ) ), silent = TRUE )) if(!inherits(fit.initial, "try-error")){ #get parameters out of it parameters<-(coef(fit.initial)) a.start[i] <- as.vector((parameters["a"])) b.start[i] <- as.vector((parameters["b"])) c.start[i] <- as.vector((parameters["c"])) } } ##used median as start parameters for the final fitting a <- median(na.exclude(a.start)) b <- median(na.exclude(b.start)) c <- median(na.exclude(c.start)) ## exception: if b is 1 it is likely to be wrong and should be reset if(!is.na(b) && b == 1) b <- mean(b.MC) lower <- if (fit.bounds) c(0, 0, 0) else c(-Inf, -Inf, -Inf) upper <- if (fit.force_through_origin) c(Inf, Inf, 0) else c(Inf, Inf, Inf) #FINAL Fit curve on given values fit <- try(minpack.lm::nlsLM( formula = .toFormula(fit.functionEXP, env = currn_env), data = data, start = list(a = a, b = b, c = 0), weights = fit.weights, trace = FALSE, algorithm = "LM", lower = lower, upper = upper, control = minpack.lm::nls.lm.control(maxiter = 500) ), silent = TRUE ) if (inherits(fit, "try-error") & inherits(fit.initial, "try-error")){ .report_fit_failure(fit.method, mode) }else{ ##this is to avoid the singular convergence failure due to a perfect fit at the beginning ##this may happen especially for simulated data if(inherits(fit, "try-error") & !inherits(fit.initial, "try-error")){ fit <- fit.initial rm(fit.initial) } #get parameters out of it parameters <- (coef(fit)) a <- as.vector((parameters["a"])) b <- as.vector((parameters["b"])) c <- as.vector((parameters["c"])) #calculate De De <- NA if(mode == "interpolation"){ De <- suppressWarnings(-c - b * log(1 - object[1, 2] / a)) ## account for the fact that we can still calculate a De that is negative ## even it does not make sense if(!is.na(De) && De < 0) De <- NA }else if (mode == "extrapolation"){ De <- suppressWarnings(-c-b*log(1-0/a)) } #print D01 value D01 <- b .report_fit(De, " | D01 = ", round(D01, 2)) #EXP MC ----- ##Monte Carlo Simulation # --Fit many curves and calculate a new De +/- De_Error # --take De_Error #set variables var.a<-vector(mode="numeric", length=n.MC) var.b<-vector(mode="numeric", length=n.MC) var.c<-vector(mode="numeric", length=n.MC) #start loop for (i in 1:n.MC) { ##set data set data <- data.frame(x = xy$x,y = data.MC[,i]) fit.MC <- try(minpack.lm::nlsLM( formula = .toFormula(fit.functionEXP, env = currn_env), data = data, start = list(a = a, b = b, c = c), weights = fit.weights, trace = FALSE, algorithm = "LM", lower = lower, upper = upper, control = minpack.lm::nls.lm.control(maxiter = 500) ), silent = TRUE ) #get parameters out of it including error handling if (inherits(fit.MC, "try-error") || mode == "alternate") { x.natural[i] <- NA }else { #get parameters out parameters<-coef(fit.MC) var.a[i]<-as.vector((parameters["a"])) #Imax var.b[i]<-as.vector((parameters["b"])) #D0 var.c[i]<-as.vector((parameters["c"])) #calculate x.natural for error calculation x.natural[i] <- suppressWarnings( abs(-var.c[i] - var.b[i] * log(1 - data.MC.De[i] / var.a[i])) ) } }#end for loop ##write D01.ERROR D01.ERROR <- sd(var.b, na.rm = TRUE) ##remove values rm(var.b, var.a, var.c) }#endif::try-error fit }#endif:fit.method!="LIN" ## LIN ------------------------------------------------------------------ ##two options: just linear fit or LIN fit after the EXP fit failed #set fit object, if fit object was not set before if (!exists("fit")) { fit <- NA } if ((fit.method=="EXP OR LIN" & inherits(fit, "try-error")) | fit.method == "LIN") { ## establish models without and with intercept term model.lin <- stats::update(y ~ x, stats::reformulate(".", intercept = !fit.force_through_origin)) if (fit.force_through_origin) { De.fs <- function(fit, y) y / coef(fit)[1] } else { De.fs <- function(fit, y) (y - coef(fit)[1]) / coef(fit)[2] } if (mode == "interpolation") { y <- object[1, 2] } else if (mode == "extrapolation") { y <- 0 } .fit_lin_model <- function(model, data, y) { fit <- stats::lm(model, data = data, weights = fit.weights) ## solve and get De De <- NA if (mode != "alternate") { De <- De.fs(fit, y) } return(list(fit = fit, De = unname(De))) } res <- .fit_lin_model(model.lin, data, y) fit.lm <- res$fit De <- res$De .report_fit(De) ## Monte Carlo Error estimation x.natural <- sapply(1:n.MC, function(i) { abs(.fit_lin_model(model.lin, data.frame(x = xy$x, y = data.MC[, i]), y = data.MC.De[i])$De) }) #correct for fit.method fit.method <- "LIN" ##set fit object if(fit.method=="LIN"){fit<-fit.lm} }else{fit.method<-"EXP"}#endif::LIN }#end if EXP (this includes the LIN fit option) ## EXP+LIN ---------------------------------------------------------------- else if (fit.method=="EXP+LIN") { ##try some start parameters from the input values to makes the fitting more stable for(i in 1:length(a.MC)){ a <- a.MC[i] b <- b.MC[i] c <- c.MC[i] g <- max(0, g.MC[i]) ##---------------------------------------------------------## ##start: with EXP function fit.EXP <- try({ suppressWarnings(minpack.lm::nlsLM( formula = .toFormula(fit.functionEXP, env = currn_env), data = data, start = c(a=a,b=b,c=c), trace = FALSE, algorithm = "LM", lower = c(a = 0, b = 10, c = 0), control = minpack.lm::nls.lm.control( maxiter=100) ))}, silent=TRUE) if(!inherits(fit.EXP, "try-error")){ #get parameters out of it parameters<-(coef(fit.EXP)) a <- parameters[["a"]] b <- parameters[["b"]] c <- parameters[["c"]] ##end: with EXP function ##---------------------------------------------------------## } fit <- try({ suppressWarnings(minpack.lm::nlsLM( formula = .toFormula(fit.functionEXPLIN, env = currn_env), data = data, start = c(a=a,b=b,c=c,g=g), trace = FALSE, algorithm = "LM", lower = if(fit.bounds){ c(a = 0, b = 10, c = 0, g = 0) } else { c(a = -Inf, b = -Inf,c = -Inf,g = -Inf) }, control = minpack.lm::nls.lm.control( maxiter = 500) #increase max. iterations )) }, silent=TRUE) if(!inherits(fit, "try-error")){ #get parameters out of it parameters<-(coef(fit)) a.start[i] <- parameters[["a"]] b.start[i] <- parameters[["b"]] c.start[i] <- parameters[["c"]] g.start[i] <- parameters[["g"]] } }##end for loop ## used mean as start parameters for the final fitting a <- median(na.exclude(a.start)) b <- median(na.exclude(b.start)) c <- median(na.exclude(c.start)) g <- median(na.exclude(g.start)) lower <- if (fit.bounds) c(0, 10, 0, 0) else rep(-Inf, 4) upper <- if (fit.force_through_origin) c(Inf, Inf, 0, Inf) else rep(Inf, 4) ##perform final fitting fit <- try(suppressWarnings(minpack.lm::nlsLM( formula = .toFormula(fit.functionEXPLIN, env = currn_env), data = data, start = list(a = a, b = b,c = c, g = g), weights = fit.weights, trace = FALSE, algorithm = "LM", lower = lower, upper = upper, control = minpack.lm::nls.lm.control(maxiter = 500) )), silent = TRUE) #if try error stop calculation if(!inherits(fit, "try-error")){ #get parameters out of it parameters <- coef(fit) a <- as.vector((parameters["a"])) b <- as.vector((parameters["b"])) c <- as.vector((parameters["c"])) g <- as.vector((parameters["g"])) #problem: analytically it is not easy to calculate x, #use uniroot to solve that problem ... readjust function first f.unirootEXPLIN <- function(a, b, c, g, x, LnTn) { fit.functionEXPLIN(a, b, c, g, x) - LnTn } if (mode == "interpolation") { LnTn <- object[1, 2] min.val <- 0 } else if (mode == "extrapolation") { LnTn <- 0 min.val <- -1e6 } De <- NA if (mode != "alternate") { temp.De <- try(uniroot( f = f.unirootEXPLIN, interval = c(min.val, max(xy$x) * 1.5), tol = 0.001, a = a, b = b, c = c, g = g, LnTn = LnTn, extendInt = "yes", maxiter = 3000 ), silent = TRUE) if (!inherits(temp.De, "try-error")) { De <- temp.De$root } .report_fit(De) } ##Monte Carlo Simulation for error estimation # --Fit many curves and calculate a new De +/- De_Error # --take De_Error #set variables var.a <- vector(mode="numeric", length=n.MC) var.b <- vector(mode="numeric", length=n.MC) var.c <- vector(mode="numeric", length=n.MC) var.g <- vector(mode="numeric", length=n.MC) ##set progressbar if(txtProgressBar){ cat("\n\t Run Monte Carlo loops for error estimation of the EXP+LIN fit\n") pb <- txtProgressBar(min=0,max=n.MC, char="=", style=3) } ## start Monte Carlo loops for(i in 1:n.MC){ data <- data.frame(x=xy$x,y=data.MC[,i]) ##perform MC fitting fit.MC <- try(suppressWarnings(minpack.lm::nlsLM( formula = .toFormula(fit.functionEXPLIN, env = currn_env), data = data, start = list(a = a, b = b,c = c, g = g), weights = fit.weights, trace = FALSE, algorithm = "LM", lower = if (fit.bounds) { c(0,10,0,0) }else{ c(-Inf,-Inf,-Inf, -Inf) }, control = minpack.lm::nls.lm.control(maxiter = 500) )), silent = TRUE) #get parameters out of it including error handling if (inherits(fit.MC, "try-error")) { x.natural[i] <- NA }else { parameters <- coef(fit.MC) var.a[i] <- parameters[["a"]] var.b[i] <- parameters[["b"]] var.c[i] <- parameters[["c"]] var.g[i] <- parameters[["g"]] if (mode == "interpolation") { min.val <- 0 } else if (mode == "extrapolation") { min.val <- -1e6 } #problem: analytically it is not easy to calculate x, #use uniroot to solve this problem temp.De.MC <- try(uniroot( f = f.unirootEXPLIN, interval = c(min.val, max(xy$x) * 1.5), tol = 0.001, a = var.a[i], b = var.b[i], c = var.c[i], g = var.g[i], LnTn = data.MC.De[i] ), silent = TRUE) if (!inherits(temp.De.MC, "try-error")) { x.natural[i] <- temp.De.MC$root } else{ x.natural[i] <- NA } } ##update progress bar if(txtProgressBar) setTxtProgressBar(pb, i) }#end for loop ##close if(txtProgressBar) close(pb) ##remove objects rm(var.b, var.a, var.c, var.g) }else{ .report_fit_failure(fit.method, mode) } #end if "try-error" Fit Method } #End if EXP+LIN ## EXP+EXP ---------------------------------------------------------------- else if (fit.method == "EXP+EXP") { a1.start <- NA a2.start <- NA b1.start <- NA b2.start <- NA ## try to create some start parameters from the input values to make the fitting more stable for(i in 1:50) { a1 <- a.MC[i];b1 <- b.MC[i]; a2 <- a.MC[i] / 2; b2 <- b.MC[i] / 2 fit.start <- try({ nls(formula = .toFormula(fit.functionEXPEXP, env = currn_env), data = data, start = c( a1 = a1,a2 = a2,b1 = b1,b2 = b2 ), trace = FALSE, algorithm = "port", lower = c(a1 = 1e-6, a2 = 1e-6, b1 = 1e-6, b2 = 1e-6), stats::nls.control( maxiter = 500,warnOnly = FALSE,minFactor = 1 / 2048 ) #increase max. iterations )}, silent = TRUE) if (!inherits(fit.start, "try-error")) { #get parameters out of it parameters <- coef(fit.start) a1.start[i] <- as.vector((parameters["a1"])) b1.start[i] <- as.vector((parameters["b1"])) a2.start[i] <- as.vector((parameters["a2"])) b2.start[i] <- as.vector((parameters["b2"])) } } ##use obtained parameters for fit input a1.start <- median(a1.start, na.rm = TRUE) b1.start <- median(b1.start, na.rm = TRUE) a2.start <- median(a2.start, na.rm = TRUE) b2.start <- median(b2.start, na.rm = TRUE) lower <- if (fit.bounds) rep(0, 4) else rep(-Inf, 4) ##perform final fitting fit <- try(minpack.lm::nlsLM( formula = .toFormula(fit.functionEXPEXP, env = currn_env), data = data, start = list(a1 = a1, b1 = b1, a2 = a2, b2 = b2), weights = fit.weights, trace = FALSE, algorithm = "LM", lower = lower, control = minpack.lm::nls.lm.control(maxiter = 500) ), silent = TRUE ) ##insert if for try-error if (!inherits(fit, "try-error")) { #get parameters out of it parameters <- coef(fit) b1 <- as.vector((parameters["b1"])) b2 <- as.vector((parameters["b2"])) a1 <- as.vector((parameters["a1"])) a2 <- as.vector((parameters["a2"])) ##set D0 values D01 <- round(b1,digits = 2) D02 <- round(b2,digits = 2) #problem: analytically it is not easy to calculate x, use uniroot De <- NA if (mode == "interpolation") { f.unirootEXPEXP <- function(a1, a2, b1, b2, x, LnTn) { fit.functionEXPEXP(a1, a2, b1, b2, x) - LnTn } temp.De <- try(uniroot( f = f.unirootEXPEXP, interval = c(0, max(xy$x) * 1.5), tol = 0.001, a1 = a1, a2 = a2, b1 = b1, b2 = b2, LnTn = object[1, 2], extendInt = "yes", maxiter = 3000 ), silent = TRUE) if (!inherits(temp.De, "try-error")) { De <- temp.De$root } ##remove object rm(temp.De) }else if (mode == "extrapolation"){ .throw_error("Mode 'extrapolation' for fitting method 'EXP+EXP' ", "not supported") } #print D0 and De value values .report_fit(De, " | D01 = ", D01, " | D02 = ", D02) ##Monte Carlo Simulation for error estimation # --Fit many curves and calculate a new De +/- De_Error # --take De_Error from the simulation # --comparison of De from the MC and original fitted De gives a value for quality #set variables var.b1 <- vector(mode="numeric", length=n.MC) var.b2 <- vector(mode="numeric", length=n.MC) var.a1 <- vector(mode="numeric", length=n.MC) var.a2 <- vector(mode="numeric", length=n.MC) ##progress bar if(txtProgressBar){ cat("\n\t Run Monte Carlo loops for error estimation of the EXP+EXP fit\n") pb<-txtProgressBar(min=0,max=n.MC, initial=0, char="=", style=3) } ## start Monte Carlo loops for (i in 1:n.MC) { #update progress bar if(txtProgressBar) setTxtProgressBar(pb,i) data<-data.frame(x=xy$x,y=data.MC[,i]) ##perform final fitting fit.MC <- try(minpack.lm::nlsLM( formula = .toFormula(fit.functionEXPEXP, env = currn_env), data = data, start = list(a1 = a1, b1 = b1, a2 = a2, b2 = b2), weights = fit.weights, trace = FALSE, algorithm = "LM", lower = lower, control = minpack.lm::nls.lm.control(maxiter = 500) ), silent = TRUE ) #get parameters out of it including error handling if (inherits(fit.MC, "try-error")) { x.natural[i]<-NA }else { parameters <- (coef(fit.MC)) var.b1[i] <- as.vector((parameters["b1"])) var.b2[i] <- as.vector((parameters["b2"])) var.a1[i] <- as.vector((parameters["a1"])) var.a2[i] <- as.vector((parameters["a2"])) #problem: analytically it is not easy to calculate x, here an simple approximation is made temp.De.MC <- try(uniroot( f = f.unirootEXPEXP, interval = c(0,max(xy$x) * 1.5), tol = 0.001, a1 = var.a1[i], a2 = var.a2[i], b1 = var.b1[i], b2 = var.b2[i], LnTn = data.MC.De[i] ), silent = TRUE) if (!inherits(temp.De.MC, "try-error")) { x.natural[i] <- temp.De.MC$root }else{ x.natural[i] <- NA } } #end if "try-error" MC simulation } #end for loop ##write D01.ERROR D01.ERROR <- sd(var.b1, na.rm = TRUE) D02.ERROR <- sd(var.b2, na.rm = TRUE) ##remove values rm(var.b1, var.b2, var.a1, var.a2) }else{ .report_fit_failure(fit.method, mode) } #end if "try-error" Fit Method ##close if(txtProgressBar) if(exists("pb")){close(pb)} } ## GOK -------------------------------------------------------------------- else if (fit.method[1] == "GOK") { lower <- if (fit.bounds) rep(0, 4) else rep(-Inf, 4) upper <- if (fit.force_through_origin) c(Inf, Inf, Inf, 1) else rep(Inf, 4) fit <- try(minpack.lm::nlsLM( formula = .toFormula(fit.functionGOK, env = currn_env), data = data, start = list(a = a, b = b, c = 1, d = 1), weights = fit.weights, trace = FALSE, algorithm = "LM", lower = lower, upper = upper, control = minpack.lm::nls.lm.control(maxiter = 500) ), silent = TRUE) if (inherits(fit, "try-error")){ .report_fit_failure(fit.method, mode) }else{ #get parameters out of it parameters <- (coef(fit)) b <- as.vector((parameters["b"])) a <- as.vector((parameters["a"])) c <- as.vector((parameters["c"])) d <- as.vector((parameters["d"])) #calculate De y <- object[1, 2] De <- switch( mode, "interpolation" = suppressWarnings(-(b * (( (a * d - y)/a)^c - 1) * ( ((a * d - y)/a)^-c )) / c), "extrapolation" = suppressWarnings(-(b * (( (a * d - 0)/a)^c - 1) * ( ((a * d - 0)/a)^-c )) / c), NA) #print D01 value D01 <- b .report_fit(De, " | D01 = ", round(D01, 2), " | c = ", round(c, 2)) #EXP MC ----- ##Monte Carlo Simulation # --Fit many curves and calculate a new De +/- De_Error # --take De_Error #set variables var.a <- vector(mode = "numeric", length = n.MC) var.b <- vector(mode = "numeric", length = n.MC) var.c <- vector(mode = "numeric", length = n.MC) var.d <- vector(mode = "numeric", length = n.MC) #start loop for (i in 1:n.MC) { ##set data set data <- data.frame(x = xy$x,y = data.MC[,i]) fit.MC <- try({ minpack.lm::nlsLM( formula = .toFormula(fit.functionGOK, env = currn_env), data = data, start = list(a = a, b = b, c = 1, d = 1), weights = fit.weights, trace = FALSE, algorithm = "LM", lower = lower, upper = upper, control = minpack.lm::nls.lm.control(maxiter = 500) )}, silent = TRUE) # get parameters out of it including error handling if (inherits(fit.MC, "try-error")) { x.natural[i] <- NA } else { # get parameters out parameters<-coef(fit.MC) var.a[i] <- as.vector((parameters["a"])) #Imax var.b[i] <- as.vector((parameters["b"])) #D0 var.c[i] <- as.vector((parameters["c"])) #kinetic order modifier var.d[i] <- as.vector((parameters["d"])) #origin # calculate x.natural for error calculation x.natural[i] <- switch( mode, "interpolation" = suppressWarnings(-(var.b[i] * (( (var.a[i] * var.d[i] - data.MC.De[i])/var.a[i])^var.c[i] - 1) * (((var.a[i] * var.d[i] - data.MC.De[i])/var.a[i])^-var.c[i] )) / var.c[i]), "extrapolation" = suppressWarnings(abs(-(var.b[i] * (( (var.a[i] * var.d[i] - 0)/var.a[i])^var.c[i] - 1) * ( ((var.a[i] * var.d[i] - 0)/var.a[i])^-var.c[i] )) / var.c[i])), NA) } }#end for loop ##write D01.ERROR D01.ERROR <- sd(var.b, na.rm = TRUE) ##remove values rm(var.b, var.a, var.c) } } ## LambertW --------------------------------------------------------------- else if (fit.method == "LambertW") { if(mode == "extrapolation"){ Dint_lower <- 50 ##TODO - fragile ... however it is only used by a few } else{ Dint_lower <- 0.01 } lower <- if (fit.bounds) c(0, 0, 0, Dint_lower) else rep(-Inf, 4) upper <- if (fit.force_through_origin) c(10, Inf, Inf, 0) else c(10, Inf, Inf, Inf) fit <- try(minpack.lm::nlsLM( formula = .toFormula(fit.functionLambertW, env = currn_env), data = data, start = list(R = 0, Dc = b, N = b, Dint = 0), weights = fit.weights, trace = FALSE, algorithm = "LM", lower = lower, upper = upper, control = minpack.lm::nls.lm.control(maxiter = 500) ), silent = TRUE) if (inherits(fit, "try-error")) { .report_fit_failure(fit.method, mode) } else { #get parameters out of it parameters <- coef(fit) R <- as.vector((parameters["R"])) Dc <- as.vector((parameters["Dc"])) N <- as.vector((parameters["N"])) Dint <- as.vector((parameters["Dint"])) #calculate De De <- NA if(mode == "interpolation"){ De <- try(suppressWarnings(stats::uniroot( f = function(x, R, Dc, N, Dint, LnTn) { fit.functionLambertW(R, Dc, N, Dint, x) - LnTn}, interval = c(0, max(object[[1]]) * 1.2), R = R, Dc = Dc, N = N, Dint = Dint, LnTn = object[1, 2])$root), silent = TRUE) }else if (mode == "extrapolation"){ De <- try(suppressWarnings(stats::uniroot( f = function(x, R, Dc, N, Dint) { fit.functionLambertW(R, Dc, N, Dint, x)}, interval = c(-max(object[[1]]), 0), R = R, Dc = Dc, N = N, Dint = Dint)$root), silent = TRUE) ## there are cases where the function cannot calculate the root ## due to its shape, here we have to use the minimum if(inherits(De, "try-error")){ .throw_warning( "Standard root estimation using stats::uniroot() failed. ", "Using stats::optimize() instead, which may lead, however, ", "to unexpected and inconclusive results for fit.method = 'LambertW'") De <- try(suppressWarnings(stats::optimize( f = function(x, R, Dc, N, Dint) { fit.functionLambertW(R, Dc, N, Dint, x)}, interval = c(-max(object[[1]]), 0), R = R, Dc = Dc, N = N, Dint = Dint)$minimum), silent = TRUE) } } if(inherits(De, "try-error")) De <- NA .report_fit(De, " | R = ", round(R, 2), " | Dc = ", round(Dc, 2)) #LambertW MC ----- ##Monte Carlo Simulation # --Fit many curves and calculate a new De +/- De_Error # --take De_Error #set variables var.R <- var.Dc <- var.N <- var.Dint <- vector( mode = "numeric", length = n.MC) #start loop for (i in 1:n.MC) { ##set data set data <- data.frame(x = xy$x,y = data.MC[,i]) fit.MC <- try(minpack.lm::nlsLM( formula = .toFormula(fit.functionLambertW, env = currn_env), data = data, start = list(R = 0, Dc = b, N = 0, Dint = 0), weights = fit.weights, trace = FALSE, algorithm = "LM", lower = if (fit.bounds) c(0, 0, 0, Dint*runif(1,0,2)) else c(-Inf,-Inf,-Inf, -Inf), upper = upper, control = minpack.lm::nls.lm.control(maxiter = 500) ), silent = TRUE) # get parameters out of it including error handling x.natural[i] <- NA if (!inherits(fit.MC, "try-error")) { # get parameters out parameters<-coef(fit.MC) var.R[i] <- as.vector((parameters["R"])) var.Dc[i] <- as.vector((parameters["Dc"])) var.N[i] <- as.vector((parameters["N"])) var.Dint[i] <- as.vector((parameters["Dint"])) # calculate x.natural for error calculation if(mode == "interpolation"){ try <- try( {suppressWarnings(stats::uniroot( f = function(x, R, Dc, N, Dint, LnTn) { fit.functionLambertW(R, Dc, N, Dint, x) - LnTn}, interval = c(0, max(object[[1]]) * 1.2), R = var.R[i], Dc = var.Dc[i], N = var.N[i], Dint = var.Dint[i], LnTn = data.MC.De[i])$root) }, silent = TRUE) }else if(mode == "extrapolation"){ try <- try( suppressWarnings(stats::uniroot( f = function(x, R, Dc, N, Dint) { fit.functionLambertW(R, Dc, N, Dint, x)}, interval = c(-max(object[[1]]), 0), R = var.R[i], Dc = var.Dc[i], N = var.N[i], Dint = var.Dint[i])$root), silent = TRUE) if(inherits(try, "try-error")){ try <- try(suppressWarnings(stats::optimize( f = function(x, R, Dc, N, Dint) { fit.functionLambertW(R, Dc, N, Dint, x)}, interval = c(-max(object[[1]]), 0), R = var.R[i], Dc = var.Dc[i], N = var.N[i], Dint = var.Dint[i])$minimum), silent = TRUE) } }##endif extrapolation if(!inherits(try, "try-error") && !inherits(try, "function")) x.natural[i] <- try } }#end for loop ##we need absolute numbers x.natural <- abs(x.natural) ##write Dc.ERROR Dc.ERROR <- sd(var.Dc, na.rm = TRUE) ##remove values rm(var.R, var.Dc, var.N, var.Dint) }#endif::try-error fit }#End if Fit Method #Get De values from Monte Carlo simulation #calculate mean and sd (ignore NaN values) De.MonteCarlo <- mean(na.exclude(x.natural)) #De.Error is Error of the whole De (ignore NaN values) De.Error <- sd(na.exclude(x.natural)) # Formula creation -------------------------------------------------------- ## This information is part of the fit object output anyway, but ## we keep it here for legacy reasons fit_formula <- NA if(!inherits(fit, "try-error") && !is.na(fit[1])) fit_formula <- .replace_coef(fit) # Output ------------------------------------------------------------------ ##calculate HPDI HPDI <- matrix(c(NA,NA,NA,NA), ncol = 4) if (!anyNA(x.natural)) { HPDI <- cbind( .calc_HPDI(x.natural, prob = 0.68)[1, ,drop = FALSE], .calc_HPDI(x.natural, prob = 0.95)[1, ,drop = FALSE]) } ## calculate the n/N value (the relative saturation level) ## the absolute intensity is the integral of curve ## define the function f_int <- function(x) eval(fit_formula) ## run integrations (they may fail; so we have to check) N <- try({ suppressWarnings( stats::integrate(f_int, lower = 0, upper = max(xy$x, na.rm = TRUE))$value) }, silent = TRUE) n <- try({ suppressWarnings( stats::integrate(f_int, lower = 0, upper = max(De, na.rm = TRUE))$value) }, silent = TRUE) if(inherits(N, "try-error") || inherits(n, "try-error")) n_N <- NA else n_N <- n/N output <- try(data.frame( De = abs(De), De.Error = De.Error, D01 = D01, D01.ERROR = D01.ERROR, D02 = D02, D02.ERROR = D02.ERROR, Dc = Dc, n_N = n_N, De.MC = De.MonteCarlo, De.plot = De, # no absolute value, used for plotting Fit = fit.method, HPDI68_L = HPDI[1,1], HPDI68_U = HPDI[1,2], HPDI95_L = HPDI[1,3], HPDI95_U = HPDI[1,4], row.names = NULL ), silent = TRUE ) ##make RLum.Results object output.final <- set_RLum( class = "RLum.Results", data = list( De = output, De.MC = x.natural, Fit = fit, Fit.Args = list( object = object, fit.method = fit.method, mode = mode, fit.force_through_origin = fit.force_through_origin, fit.includingRepeatedRegPoints = fit.includingRepeatedRegPoints, fit.NumberRegPoints = fit.NumberRegPoints, fit.NumberRegPointsReal = fit.NumberRegPointsReal, fit.weights = fit.weights, fit.bounds = fit.bounds, n.MC = n.MC ), Formula = fit_formula ), info = list( call = sys.call() ) ) invisible(output.final) } # Helper functions in fit_DoseResponseCurve() ------------------------------------- #'@title Replace coefficients in formula #' #'@description #' #'Replace the parameters in a fitting function by the true, fitted values. #'This way the results can be easily used by the other functions #' #'@param f [nls] or [lm] (**required**): the output object of the fitting #' #'@returns Returns an [expression] #' #'@md #'@noRd .replace_coef <- function(f) { ## get formula as character string if(inherits(f, "nls")) { str <- as.character(f$m$formula())[3] param <- coef(f) } else { str <- "a * x + b * x^2 + n" param <- c(n = 0, a = 0, b = 0) if(!"(Intercept)" %in% names(coef(f))) param[2:(length(coef(f))+1)] <- coef(f) else param[1:length(coef(f))] <- coef(f) } ## replace for(i in 1:length(param)) str <- gsub( pattern = names(param)[i], replacement = format(param[i], digits = 3, scientific = TRUE), x = str, fixed = TRUE) ## return return(parse(text = str)) } #'@title Convert function to formula #' #'@description The fitting functions are provided as functions, however, later is #'easer to work with them as expressions, this functions converts to formula #' #'@param f [function] (**required**): function to be converted #' #'@param env [environment] (*with default*): environment for the formula #'creation. This argument is required otherwise it can cause all kind of #'very complicated to-track-down errors when R tries to access the function #'stack #' #'@md #'@noRd .toFormula <- function(f, env) { ## deparse tmp <- deparse(f) ## set formula ## this is very fragile and works only if the functions are constructed ## without {} brackets, otherwise it will not work in combination ## of covr and testthat tmp_formula <- stats::as.formula(paste0("y ~ ", paste(tmp[-1], collapse = "")), env = env) return(tmp_formula) } Luminescence/R/plot_RLum.Analysis.R0000644000176200001440000005565314762554470016743 0ustar liggesusers#' @title Plot function for an RLum.Analysis S4 class object #' #' @description The function provides a standardised plot output for curve data of an #' RLum.Analysis S4 class object #' #' The function produces a multiple plot output. A file output is recommended #' (e.g., [pdf]). #' #' **curve.transformation** #' #' This argument allows transforming continuous wave (CW) curves to pseudo #' (linear) modulated curves. For the transformation, the functions of the #' package are used. Currently, it is not possible to pass further arguments to #' the transformation functions. The argument works only for `ltype` #' `OSL` and `IRSL`. #' #' Please note: The curve transformation within this functions works roughly, #' i.e. every IRSL or OSL curve is transformed, without considering whether it #' is measured with the PMT or not! However, for a fast look it might be #' helpful. #' #' @param object [RLum.Analysis-class] (**required**): #' S4 object of class `RLum.Analysis` #' #' @param subset named [list] (*optional*): #' subsets elements for plotting. The arguments in the named [list] will be #' directly passed to the function [get_RLum] #' (e.g., `subset = list(curveType = "measured")`) #' #' @param nrows [integer] (*optional*): #' sets number of rows for plot output, if nothing is set the function #' tries to find a value. #' #' @param ncols [integer] (*optional*): #' sets number of columns for plot output, if nothing is set the function #' tries to find a value. #' #' @param abline [list] (*optional*): #' allows to add ab-lines to the plot. Argument are provided #' in a list and will be forward to the function [abline], #' e.g., `list(v = c(10, 100))` adds two vertical lines add 10 and 100 to all #' plots. In contrast `list(v = c(10), v = c(100)` adds a vertical at 10 to #' the first and a vertical line at 100 to the 2nd plot. #' #' @param combine [logical] (*with default*): #' allows to combine all [RLum.Data.Curve-class] objects in one single plot. #' #' @param records_max [numeric] (*optional*): limits number of records #' shown if `combine = TRUE`. Shown are always the first and the last curve, #' the other number of curves to be shown a distributed evenly, this may result #' in fewer curves plotted as specified. This parameter has only #' an effect for n > 2. #' #' @param curve.transformation [character] (*with default*): #' allows transforming CW-OSL and CW-IRSL curves to pseudo-LM curves via #' transformation functions. Allowed values are: `CW2pLM`, `CW2pLMi`, #' `CW2pHMi` and `CW2pPMi`, see details. If set to `None` (default), no #' transformation is applied. #' #' @param plot_singlePanels [logical] (*with default*): #' global par settings are considered, normally this should end in one plot per page #' #' @param ... further arguments and graphical parameters will be passed to #' the `plot` function. #' #' Supported arguments: `main`, `mtext`, `log`, `lwd`, `lty` `type`, `pch`, `col`, #' `norm` (see [plot_RLum.Data.Curve]), `xlim`,`ylim`, `xlab`, `ylab`, ... #' #' and for `combine = TRUE` also: `sub_title`, `legend`, `legend.text`, `legend.pos` #' (typical plus 'outside'), `legend.col`, `smooth`. #' #' All arguments can be provided as `vector` or `list` to gain in full control #' of all plot settings. #' #' @return Returns multiple plots. #' #' @note #' Not all arguments available for [plot] will be passed and they partly do not behave in the #' way you might expect them to work. This function was designed to serve as an overview #' plot, if you want to have more control, extract the objects and plot them individually. #' #' @section Function version: 0.3.16 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [plot], [plot_RLum], [plot_RLum.Data.Curve] #' #' @keywords aplot #' #' @examples #' #'##load data #'data(ExampleData.BINfileData, envir = environment()) #' #'##convert values for position 1 #'temp <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) #' #'##(1) plot (combine) TL curves in one plot #'plot_RLum.Analysis( #' temp, #' subset = list(recordType = "TL"), #' combine = TRUE, #' norm = TRUE, #' abline = list(v = c(110)) #' ) #' #'##(2) same as example (1) but using #'## the argument smooth = TRUE #'plot_RLum.Analysis( #' temp, #' subset = list(recordType = "TL"), #' combine = TRUE, #' norm = TRUE, #' smooth = TRUE, #' abline = list(v = c(110)) #' ) #' #' @md #' @export plot_RLum.Analysis <- function( object, subset = NULL, nrows, ncols, abline = NULL, combine = FALSE, records_max = NULL, curve.transformation = "None", plot_singlePanels = FALSE, ... ) { .set_function_name("plot_RLum.Analysis") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(object, "RLum.Analysis") if(!is.null(subset)){ ##check whether the user set the drop option and remove it, as we cannot work with it subset <- subset[!sapply(names(subset), function(x){"drop" %in% x})] object <- do.call(get_RLum, c(object = object, subset, drop = FALSE)) } # Deal with additional arguments. ------------------------------------------------------------ ##create plot settings list plot.settings <- list( main = NULL, mtext = NULL, log = "", lwd = 1, lty = 1, type = "l", xlab = NULL, ylab = NULL, xlim = NULL, ylim = NULL, pch = 1, col = "auto", norm = FALSE, sub_title = NULL, cex = 1, legend = TRUE, legend.text = NULL, legend.pos = NULL, legend.col = NULL, smooth = FALSE ) plot.settings <- modifyList(x = plot.settings, val = list(...), keep.null = TRUE) ## deprecated argument if ("plot.single" %in% names(list(...))) { plot_singlePanels <- list(...)$plot.single .throw_warning("'plot.single' is deprecated, use 'plot_singlePanels' ", "instead") } ##try to find optimal parameters, this is however, a little bit stupid, but ##better than without any presetting .validate_logical_scalar(combine) if (combine && length(object@records) <= 1) { combine <- FALSE .throw_warning("'combine' can't be used with fewer than two curves, ", "reset to FALSE") } if (combine) { sapply(object@records, function(x) { if (!inherits(x, "RLum.Data.Curve")) { .throw_error("'combine' is valid only for 'RLum.Data.Curve' objects") } }) n.plots <- length(unique(as.character(structure_RLum(object)$recordType))) } else n.plots <- max(length_RLum(object), 1) .validate_positive_scalar(nrows) .validate_positive_scalar(ncols) ## set appropriate values for nrows and ncols if not both specified if (missing(nrows) || missing(ncols)) { if (n.plots == 1) { if (missing(nrows)) nrows <- 1 if (missing(ncols)) ncols <- 1 } else { # n.plots > 1 if (missing(ncols)) { ncols <- 2 } if (missing(nrows)) { if (n.plots <= 4) { nrows <- ceiling(n.plots / 2) } else { nrows <- 3 } } } } curve.transformation <- .validate_args(curve.transformation, c("CW2pLM", "CW2pLMi", "CW2pHMi", "CW2pPMi", "None")) ## complete the function name if (curve.transformation != "None") { curve.transformation <- paste0("convert_", curve.transformation) } # Plotting ------------------------------------------------------------------ ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ##(1) NORMAL (combine == FALSE) ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if (!combine) { ##grep RLum.Data.Curve or RLum.Data.Spectrum objects temp <- lapply(object@records, function(x) { if (inherits(x, "RLum.Data.Curve") || inherits(x, "RLum.Data.Spectrum")) { x }}) ##calculate number of pages for mtext if (length(temp) == 0 || length(temp) %% (nrows * ncols) > 0) { n.pages <- round(length(temp) / (nrows * ncols), digits = 0) + 1 } else{ n.pages <- length(temp) / (nrows * ncols) } ##set par par.default <- par("mfrow") if (!plot_singlePanels) { par(mfrow = c(nrows, ncols)) on.exit(par(mfrow = par.default), add = TRUE) } ##expand plot settings list plot.settings <- lapply(setNames(1:length(plot.settings), names(plot.settings)), function(x) { if (!is.null(plot.settings[[x]])) { if(length(plot.settings[[x]]) > 1){ if(is(plot.settings[[x]], "list")){ rep_len(plot.settings[[x]], length.out = length(temp)) }else{ rep_len(list(plot.settings[[x]]), length.out = length(temp)) } }else{ rep_len(plot.settings[[x]], length.out = length(temp)) } } else{ plot.settings[[x]] } }) ##expand abline if(!is.null(abline)){ abline.names <- rep_len(names(abline), length.out = length(temp)) abline <- rep_len(abline, length.out = length(temp)) names(abline) <- abline.names } ##apply curve transformation for (i in seq_along(temp)) { if (inherits(temp[[i]], "RLum.Data.Curve")) { ##set curve transformation if wanted if (grepl("IRSL|OSL", temp[[i]]@recordType) && curve.transformation != "None") { ## get the actual function from the parameter value and apply it temp[[i]] <- get(curve.transformation)(temp[[i]]) } ##check plot settings and adjust ##xlim if (!is.null(plot.settings$xlim)) { xlim.set <- plot.settings$xlim[[i]] if (plot.settings$xlim[[i]][1] < min(temp[[i]]@data[,1])) { .throw_warning("min('xlim') < x-value range for curve #", i, ", reset to minimum") xlim.set[1] <- min(temp[[i]]@data[,1]) } if (plot.settings$xlim[[i]][2] > max(temp[[i]]@data[,1])) { .throw_warning("max('xlim') > x-value range for curve #", i, ", reset to maximum") xlim.set[2] <- max(temp[[i]]@data[,1]) } }else{ xlim.set <- plot.settings$xlim[[i]] } ##ylim if (!is.null(plot.settings$ylim)) { ylim.set <- plot.settings$ylim[[i]] if (plot.settings$ylim[[i]][1] < min(temp[[i]]@data[,2])) { .throw_warning("min('ylim') < y-value range for curve #", i, ", reset to minimum") ylim.set[1] <- min(temp[[i]]@data[,2]) } if (plot.settings$ylim[[i]][2] > max(temp[[i]]@data[,2])) { .throw_warning("max('ylim') > y-value range for curve #", i, ", reset to maximum") ylim.set[2] <- max(temp[[i]]@data[,2]) } }else{ ylim.set <- plot.settings$ylim[[i]] } ##col if (unique(plot.settings$col) != "auto") { col <- plot.settings$col[i] } else{ col <- "black" if (grepl("IRSL", temp[[i]]@recordType)) { col <- "red" } else if (grepl("OSL", temp[[i]]@recordType)) { col <- "blue" } } ##main main <- if (is.null(plot.settings$main[[i]])) { temp[[i]]@recordType } else{ plot.settings$main[[i]] } ##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ##PLOT ##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ##plot RLum.Data.Curve curve ##we have to do this via this way, otherwise we run into a duplicated arguments ##problem ##check and remove duplicated arguments arguments <- c( list( object = temp[[i]], col = col, mtext = if (!is.null(plot.settings$mtext[[i]])) { plot.settings$mtext[[i]] } else{ paste("#", i, sep = "") }, par.local = FALSE, main = main, log = plot.settings$log[[i]], lwd = plot.settings$lwd[[i]], type = plot.settings$type[[i]], lty = plot.settings$lty[[i]], xlim = xlim.set, ylim = ylim.set, norm = plot.settings$norm, pch = plot.settings$pch[[i]], cex = plot.settings$cex[[i]], legend.col = plot.settings$legend.col[[i]], smooth = plot.settings$smooth[[i]] ), list(...) ) arguments[duplicated(names(arguments))] <- NULL ##call the function plot_RLum.Data.Curve do.call(what = "plot_RLum.Data.Curve", args = arguments) rm(arguments) ##add abline if(!is.null(abline[[i]])){ do.call(what = "abline", args = abline[i]) } } else if(inherits(temp[[i]], "RLum.Data.Spectrum")) { ## remove already provided arguments args <- list(...)[!names(list(...)) %in% c("object", "mtext", "par.local", "main")] do.call(what = "plot_RLum.Data.Spectrum", args = c(list( object = temp[[i]], mtext = if(!is.null(plot.settings$mtext[[i]])) plot.settings$mtext[[i]] else paste("#", i, sep = ""), par.local = FALSE, main = if(!is.null(plot.settings$main)) plot.settings$main else temp[[i]]@recordType ), args)) } }#end for loop }else{ ##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ##(2) NORMAL (combine == TRUE) ##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ##(1) check RLum objects in the set ##account for different curve types, combine similar temp.object.structure <- structure_RLum(object) temp.recordType <- as.character(unique(temp.object.structure$recordType)) ##change graphic settings if (!plot_singlePanels) { par.default <- par()[c("cex", "mfrow")] if(!missing(ncols) & !missing(nrows)){ par(mfrow = c(nrows, ncols)) } } else { par.default <- par()["cex"] } ## this 2nd par request is needed as setting mfrow resets the par ## settings ... this might not be wanted par(cex = plot.settings$cex) ##expand plot settings list ##expand list plot.settings <- lapply(setNames(1:length(plot.settings), names(plot.settings)), function(x) { if (!is.null(plot.settings[[x]])) { if(is.list(plot.settings[[x]])){ rep_len(plot.settings[[x]], length.out = length(temp.recordType)) }else{ rep_len(list(plot.settings[[x]]), length.out = length(temp.recordType)) } } else{ plot.settings[[x]] } }) ##expand abline if(!is.null(abline)){ abline.names <- rep_len(names(abline), length.out = length(temp.recordType)) abline <- rep_len(abline, length.out = length(temp.recordType)) names(abline) <- abline.names } ##(2) PLOT values for(k in 1:length(temp.recordType)) { ###get type of curves temp.object <- get_RLum(object, recordType = temp.recordType[k], drop = FALSE) ##get structure object.structure <- structure_RLum(temp.object) ##now get the real list object (note the argument recursive = FALSE) object.list <- get_RLum(object, recordType = temp.recordType[k], recursive = FALSE) ## limit number of records shown ... show always first and last; ## distribute the rest if(!is.null(records_max) && records_max[1] > 2){ records_show <- ceiling(seq(1,length(object.list), length.out = records_max)) object.list[(1:length(object.list))[-records_show]] <- NULL } ##transform values to data.frame and norm values temp.data.list <- lapply(1:length(object.list), function(x) { ## set curve transformation if wanted if (grepl("IRSL|OSL", object.list[[x]]@recordType) && curve.transformation != "None") { ## get the actual function from the parameter value and apply it object.list[[x]] <- get(curve.transformation)(object.list[[x]]) } temp.data <- as(object.list[[x]], "data.frame") ## curve normalisation if (plot.settings$norm[[k]][1] == TRUE || plot.settings$norm[[k]][1] %in% c("max", "last", "huot")) { temp.data[[2]] <- .normalise_curve(temp.data[[2]], plot.settings$norm[[k]]) } return(temp.data) }) ##set plot parameters ##main main <- if (!is.null(plot.settings$main[[k]])) { plot.settings$main[[k]] } else{ paste0(temp.recordType[[k]], " combined") } ##xlab xlab <- if(!is.null(plot.settings$xlab[[k]])){ plot.settings$xlab[[k]] }else{ if (temp.recordType[[k]] == "TL") "Temperature [\u00B0C]" else "Time [s]" } ##ylab ylab <- if(!is.null(plot.settings$ylab[[k]])){ plot.settings$ylab[[k]] }else{ paste0(temp.recordType[[k]], " [a.u.]") } ##xlim xlim <- if (!is.null(plot.settings$xlim[[k]]) & length(plot.settings$xlim[[k]]) >1) { plot.settings$xlim[[k]] } else { c(min(object.structure$x.min), max(object.structure$x.max)) } if (grepl("x", plot.settings$log[[k]], ignore.case = TRUE)) xlim[which(xlim == 0)] <- 1 ##ylim ylim <- if (!is.null(plot.settings$ylim[[k]]) & length(plot.settings$ylim[[k]]) > 1) { plot.settings$ylim[[k]] } else { range(unlist(lapply(X = temp.data.list, FUN = function(x){ range(x[,2]) }))) } if (grepl("y", plot.settings$log[[k]], ignore.case = TRUE)) ylim[which(ylim == 0)] <- 1 ##col (again) col <- if(length(plot.settings$col[[k]]) > 1 || plot.settings$col[[k]][1] != "auto"){ plot.settings$col[[k]] }else{ col <- get("col", pos = .LuminescenceEnv) } ##if length of provided colours is < the number of objects, just one colour is supported if (length(col) < length(object.list)) { col <- rep_len(col, length(object.list)) } ##lty lty <- plot.settings$lty[[k]] if (length(plot.settings$lty[[k]]) < length(object.list)) { lty <- rep(plot.settings$lty[[k]], times = length(object.list)) } ##pch pch <- plot.settings$pch[[k]] if (length(plot.settings$pch[[k]]) < length(object.list)) { pch <- rep(plot.settings$pch[[k]], times = length(object.list)) } ##legend.text legend.text <- if(!is.null(plot.settings$legend.text[[k]])){ plot.settings$legend.text[[k]] }else{ if(!is.null(records_max) && records_max[1] > 2) { paste("Curve", records_show) } else { paste("Curve", 1:length(object.list)) } } ##legend.col legend.col <- plot.settings$legend.col[[k]] ##legend.pos legend.pos <- if(!is.null(plot.settings$legend.pos[[k]])){ plot.settings$legend.pos[[k]] }else{ "topright" } if (legend.pos == "outside") { par.default.outside <- par()[c("mar", "xpd")] par(mar = c(5.1, 4.1, 4.1, 8.1)) } ##open plot area plot( NA,NA, xlim = xlim, ylim = ylim, main = main, xlab = xlab, ylab = ylab, log = plot.settings$log[[k]], sub = plot.settings$sub_title[[k]] ) ##plot single curve values ## ...?Why using matplot is a bad idea: The channel resolution might be different for (n in 1:length(temp.data.list)) { ##smooth ##Why here again ... because the call differs from the one before, where the argument ##is passed to plot_RLum.Data.Curve() if(plot.settings$smooth[[k]]){ k_factor <- ceiling(length(temp.data.list[[n]][, 2])/100) temp.data.list[[n]][, 2] <- .smoothing(temp.data.list[[n]][, 2], k = k_factor, fill = NA, align = "center") } ##remove 0 values if plotted on a log-scale # y-Axis if (grepl("y", plot.settings$log[[k]], ignore.case = TRUE)) temp.data.list[[n]] <- temp.data.list[[n]][which(temp.data.list[[n]]$y > 0), ] # x-Axis if (grepl("x", plot.settings$log[[k]], ignore.case = TRUE)) temp.data.list[[n]] <- temp.data.list[[n]][which(temp.data.list[[n]]$x > 0), ] ##print lines if (plot.settings$type[[k]] == "l" | plot.settings$type[[k]] == "b" ) { lines( temp.data.list[[n]], col = col[n], lty = lty[n], lwd = plot.settings$lwd[[k]] ) } ##add points if requested if (plot.settings$type[[k]] == "p" | plot.settings$type[[k]] == "b" ) { points( temp.data.list[[n]], col = col[n], pch = pch[n], ) } } ##add abline if(!is.null(abline[[k]])){ do.call(what = "abline", args = abline[k]) } ##mtext mtext(plot.settings$mtext[[k]], side = 3, cex = .8 * plot.settings$cex[[k]]) ##if legend is outside of the plotting area we need to allow overplotting ##AFTER all lines have been drawn if (legend.pos == "outside") { par(xpd = TRUE) # determine legend position on log(y) scale ypos <- par()$usr[4] if (grepl("y", plot.settings$log[[k]], ignore.case = TRUE)) ypos <- 10^par()$usr[4] # determine position on log(x) scale xpos <- par()$usr[2] if (grepl("x", plot.settings$log[[k]], ignore.case = TRUE)) xpos <- 10^par()$usr[2] } ##legend if (plot.settings$legend[[k]]) { legend( x = ifelse(legend.pos == "outside", xpos, legend.pos), y = ifelse(legend.pos == "outside", ypos, NULL), legend = legend.text, lwd = plot.settings$lwd[[k]], lty = plot.settings$lty[[k]], col = if (is.null(legend.col)) { col[1:length(object.list)] } else{ legend.col }, bty = "n", cex = 0.8 * plot.settings$cex[[k]] ) # revert the over plotting if (legend.pos == "outside") par(xpd = FALSE) } } ##reset graphic settings if (exists("par.default.outside")) { par(par.default.outside) } par(par.default) } } Luminescence/R/calc_FiniteMixture.R0000644000176200001440000005223014762554470017006 0ustar liggesusers#' @title Apply the finite mixture model (FMM) after Galbraith (2005) to a given De #' distribution #' #' @description This function fits a k-component mixture to a De distribution with differing #' known standard errors. Parameters (doses and mixing proportions) are #' estimated by maximum likelihood assuming that the log dose estimates are #' from a mixture of normal distributions. #' #' @details This model uses the maximum likelihood and Bayesian Information Criterion #' (BIC) approaches. #' #' Indications of overfitting are: #' #' - increasing BIC #' - repeated dose estimates #' - covariance matrix not positive definite #' - covariance matrix produces `NaN` #' - convergence problems #' #' **Plot** #' #' If a vector (`c(k.min:k.max)`) is provided #' for `n.components` a plot is generated showing the k components #' equivalent doses as normal distributions. By default `pdf.weight` is #' set to `FALSE`, so that the area under each normal distribution is #' always 1. If `TRUE`, the probability density functions are weighted by #' the components proportion for each iteration of k components, so the sum of #' areas of each component equals 1. While the density values are on the same #' scale when no weights are used, the y-axis are individually scaled if the #' probability density are weighted by the components proportion.\cr #' The standard deviation (sigma) of the normal distributions is by default #' determined by a common `sigmab` (see `pdf.sigma`). For #' `pdf.sigma = "se"` the standard error of each component is taken #' instead.\cr #' The stacked [graphics::barplot] shows the proportion of each component (in #' per cent) calculated by the FMM. The last plot shows the achieved BIC scores #' and maximum log-likelihood estimates for each iteration of k. #' #' @param data [RLum.Results-class] or [data.frame] (**required**): #' for [data.frame]: two columns with De `(data[,1])` and De error `(values[,2])` #' #' @param sigmab [numeric] (**required**): #' spread in De values given as a fraction (e.g. 0.2). This value represents the expected #' overdispersion in the data should the sample be well-bleached #' (Cunningham & Wallinga 2012, p. 100). #' #' @param n.components [numeric] (**required**): #' number of components to be fitted. If a vector is provided (e.g. `c(2:8)`) the #' finite mixtures for 2, 3 ... 8 components are calculated and a plot and a #' statistical evaluation of the model performance (BIC score and maximum #' log-likelihood) is provided. #' #' @param grain.probability [logical] (*with default*): #' prints the estimated probabilities of which component each grain is in #' #' @param pdf.weight [logical] (*with default*): #' weight the probability density functions by the components proportion (applies only #' when a vector is provided for `n.components`) #' #' @param pdf.sigma [character] (*with default*): #' if `"sigmab"` the components normal distributions are plotted with a common standard #' deviation (i.e. `sigmab`) as assumed by the FFM. Alternatively, #' `"se"` takes the standard error of each component for the sigma #' parameter of the normal distribution #' #' @param pdf.colors [character] (*with default*): #' colour coding of the components in the plot. #' Possible options are `"gray"`, `"colors"` and `"none"` #' #' @param plot.proportions [logical] (*with default*): #' plot [graphics::barplot] showing the proportions of components if #' `n.components` a vector with a length > 1 (e.g., `n.components = c(2:3)`) #' #' @param plot [logical] (*with default*): enable/disable the plot output. #' #' @param ... further arguments to pass. See details for their usage. #' #' @return #' Returns a plot (*optional*) and terminal output. In addition an #' [RLum.Results-class] object is returned containing the #' following elements: #' #' \item{.$summary}{[data.frame] summary of all relevant model results.} #' \item{.$data}{[data.frame] original input data} #' \item{.$args}{[list] used arguments} #' \item{.$call}{[call] the function call} #' \item{.$mle}{ covariance matrices of the log likelihoods} #' \item{.$BIC}{ BIC score} #' \item{.$llik}{ maximum log likelihood} #' \item{.$grain.probability}{ probabilities of a grain belonging to a component} #' \item{.$components}{[matrix] estimates of the de, de error and proportion for each component} #' \item{.$single.comp}{[data.frame] single component FFM estimate} #' #' If a vector for `n.components` is provided (e.g. `c(2:8)`), #' `mle` and `grain.probability` are lists containing matrices of the #' results for each iteration of the model. #' #' The output should be accessed using the function [get_RLum]. #' #' @section Function version: 0.4.2 #' #' @author #' Christoph Burow, University of Cologne (Germany) \cr #' Based on a rewritten S script of Rex Galbraith, 2006. #' #' @seealso [calc_CentralDose], [calc_CommonDose], #' [calc_FuchsLang2001], [calc_MinDose] #' #' @references #' Galbraith, R.F. & Green, P.F., 1990. Estimating the component #' ages in a finite mixture. Nuclear Tracks and Radiation Measurements 17, #' 197-206. #' #' Galbraith, R.F. & Laslett, G.M., 1993. Statistical models #' for mixed fission track ages. Nuclear Tracks Radiation Measurements 4, #' 459-470. #' #' Galbraith, R.F. & Roberts, R.G., 2012. Statistical aspects of #' equivalent dose and error calculation and display in OSL dating: An overview #' and some recommendations. Quaternary Geochronology 11, 1-27. #' #' Roberts, R.G., Galbraith, R.F., Yoshida, H., Laslett, G.M. & Olley, J.M., 2000. #' Distinguishing dose populations in sediment mixtures: a test of single-grain #' optical dating procedures using mixtures of laboratory-dosed quartz. #' Radiation Measurements 32, 459-465. #' #' Galbraith, R.F., 2005. Statistics for Fission Track Analysis, Chapman & Hall/CRC, Boca Raton. #' #' **Further reading** #' #' Arnold, L.J. & Roberts, R.G., 2009. Stochastic #' modelling of multi-grain equivalent dose (De) distributions: Implications #' for OSL dating of sediment mixtures. Quaternary Geochronology 4, #' 204-230. #' #' Cunningham, A.C. & Wallinga, J., 2012. Realizing the #' potential of fluvial archives using robust OSL chronologies. Quaternary #' Geochronology 12, 98-106. #' #' Rodnight, H., Duller, G.A.T., Wintle, A.G. & #' Tooth, S., 2006. Assessing the reproducibility and accuracy of optical #' dating of fluvial deposits. Quaternary Geochronology 1, 109-120. #' #' Rodnight, H. 2008. How many equivalent dose values are needed to obtain a #' reproducible distribution?. Ancient TL 26, 3-10. #' #' #' @examples #' #' ## load example data #' data(ExampleData.DeValues, envir = environment()) #' #' ## (1) apply the finite mixture model #' ## NOTE: the data set is not suitable for the finite mixture model, #' ## which is why a very small sigmab is necessary #' calc_FiniteMixture(ExampleData.DeValues$CA1, #' sigmab = 0.2, n.components = 2, #' grain.probability = TRUE) #' #' ## (2) repeat the finite mixture model for 2, 3 and 4 maximum number of fitted #' ## components and save results #' ## NOTE: The following example is computationally intensive. Please un-comment #' ## the following lines to make the example work. #' FMM<- calc_FiniteMixture(ExampleData.DeValues$CA1, #' sigmab = 0.2, n.components = c(2:4), #' pdf.weight = TRUE) #' #' ## show structure of the results #' FMM #' #' ## show the results on equivalent dose, standard error and proportion of #' ## fitted components #' get_RLum(object = FMM, data.object = "components") #' #' @md #' @export calc_FiniteMixture <- function( data, sigmab, n.components, grain.probability = FALSE, pdf.weight = TRUE, pdf.sigma = "sigmab", pdf.colors = "gray", plot.proportions = TRUE, plot=TRUE, ... ) { .set_function_name("calc_FiniteMixture") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(data, c("data.frame", "RLum.Results")) if (is(data, "RLum.Results")) { data <- get_RLum(data, "data") } if (ncol(data) < 2) { .throw_error("'data' object must have two columns") } if (sigmab < 0 || sigmab > 1) { .throw_error("'sigmab' must be a value between 0 and 1") } if(any(n.components<2) == TRUE) { .throw_error("At least two components need to be fitted") } pdf.sigma <- .validate_args(pdf.sigma, c("sigmab", "se")) pdf.colors <- .validate_args(pdf.colors, c("gray", "colors", "none")) ## set expected column names colnames(data)[1:2] <- c("ED", "ED_Error") ## ... ARGUMENTS ------------ ##============================================================================## extraArgs <- list(...) ## default values verbose <- TRUE trace <- FALSE main <- "Finite Mixture Model" ## console output if("verbose" %in% names(extraArgs)) { verbose<- extraArgs$verbose } # trace calculations if("trace" %in% names(extraArgs)) { trace<- extraArgs$trace } # plot title if("main" %in% names(extraArgs)) { main<- extraArgs$main } ##============================================================================## ## CALCULATIONS ##============================================================================## ## create storage variables if more than one k is provided if(length(n.components)>1) { # counter needed for various purposes cnt<- 1 # create summary matrix containing DE, standard error (se) and proportion # for each component comp.n<- matrix(data = NA, ncol = length(n.components), nrow = n.components[length(n.components)] * 3, byrow = TRUE) # create empty vector as storage for BIC and LLIK scores BIC.n<- vector(mode = "double") LLIK.n<- vector(mode = "double") # create empty vectors of type "lists" as storage for mle matrices and # grain probabilities vmat.n<- vector(mode = "list", length = length(n.components)) grain.probability.n<- vector(mode = "list", length = length(n.components)) } ## start actual calculation (loop) for each provided maximum components to ## be fitted. for(i in 1:length(n.components)) { k<- n.components[i] # calculate yu = log(ED), su = se(logED), n = number of grains yu<- log(data$ED) su<- data$ED_Error/data$ED n<- length(yu) # compute starting values fui<- matrix(0,n,k) pui<- matrix(0,n,k) nui<- matrix(0,n,k) pii<- rep(1/k,k) mu<- min(yu) + (max(yu)-min(yu))*(1:k)/(k+1) # remove the # in the line below to get alternative starting values # (useful to check that the algorithm converges to the same values) # mu<- quantile(yu,(1:k)/(k+1)) # compute maximum log likelihood estimates nit<- 499L wu<- 1/(sigmab^2 + su^2) rwu<- sqrt(wu) for(j in 1:nit){ for(i in 1:k) { fui[,i]<- rwu*exp(-0.5*wu*(yu-mu[i])^2) nui[,i]<- pii[i]*fui[,i] } pui<- nui/apply(nui,1,sum) mu<- apply(wu*yu*pui,2,sum)/apply(wu*pui,2,sum) pii<- apply(pui,2,mean) } # calculate the log likelihood and BIC llik<- sum( log( (1/sqrt(2*pi))*apply(nui,1,sum) )) bic<- -2*llik + (2*k - 1)*log(n) # calculate the covariance matrix and standard errors of the estimates # i.e., the dose estimates in Gy and relative standard errors, and # the mixing proportions and standard errors. aui<- matrix(0,n,k) bui<- matrix(0,n,k) for(i in 1:k) { aui[,i]<- wu*(yu-mu[i]) bui[,i]<- -wu + (wu*(yu-mu[i]))^2 } delta<- diag(rep(1,k)) Au<- matrix(0,k-1,k-1) Bu<- matrix(0,k-1,k) Cu<- matrix(0,k,k) for(i in 1:(k-1)){ for(j in 1:(k-1)){ Au[i,j]<- sum( (pui[,i]/pii[i] - pui[,k]/pii[k])*(pui[,j]/pii[j] - pui[,k]/pii[k]) )}} for(i in 1:(k-1)){ for(j in 1:k){ Bu[i,j]<- sum( pui[,j]*aui[,j]*(pui[,i]/pii[i] - pui[,k]/pii[k] - delta[i,j]/pii[i] + delta[k,j]/pii[k] ) )}} for(i in 1:k){ for(j in 1:k){ Cu[i,j]<- sum( pui[,i]*pui[,j]*aui[,i]*aui[,j] - delta[i,j]*bui[,i]* pui[,i] ) }} invvmat<- rbind(cbind(Au,Bu),cbind(t(Bu),Cu)) vmat<- solve(invvmat, tol=.Machine$double.xmin) # calculate DE, relative standard error, standard error dose<- exp(mu) re <- suppressWarnings(sqrt(diag(vmat)))[-c(1:(k-1))] if (any(is.nan(re))) re[is.nan(re)] <- NA sed<- dose*re estd<- rbind(dose,re,sed) # rename proportion prop<- pii # this calculates the proportional standard error of the proportion of grains # in the fitted components. However, the calculation is most likely erroneous. # rek<- sqrt(sum(vmat[1:(k-1),1:(k-1)])) # sep<- c(sqrt(diag(vmat))[c(1:(k-1))],rek) # rename proportion estp<- prop # merge results to a data frame blk<- rep(" ",k) comp<- rbind(blk,round(estd,4),blk,round(estp,4)) comp<- data.frame(comp,row.names=c("","dose (Gy) ","rse(dose) ", "se(dose)(Gy)"," ","proportion ")) # label results data frame cp<- rep("comp",k) cn<- c(1:k) names(comp)<- paste(cp,cn,sep="") # calculate the log likelihood and BIC for a single component -- can # be useful to see if there is evidence of more than one component mu0<- sum(wu*yu)/sum(wu) fu0<- rwu*exp(-0.5*wu*(yu-mu0)^2) L0<- sum( log((1/sqrt(2*pi))*fu0 ) ) bic0<- -2*L0 + log(n) comp0<- round(c(exp(mu0),sigmab,L0,bic0),4) ## save results for k components in storage variables if(length(n.components)>1) { # vector of indices needed for finding the dose rows of the summary # matrix - position 1,4,7...n pos.n<- seq(from = 1, to = n.components[cnt]*3, by = 3) # save results of each iteration to summary matrix for(i in 1:n.components[cnt]) { comp.n[pos.n[i], cnt]<- round(dose[i], 2) #De comp.n[pos.n[i]+1, cnt]<- round(sed[i], 2) #SE comp.n[pos.n[i]+2, cnt]<- round(estp[i], 2) #Proportion } # save BIC and llik of each iteration to corresponding vector BIC.n[cnt]<- bic LLIK.n[cnt]<- llik # merge BIC and llik scores to a single data frame results.n<- rbind(BIC = round(BIC.n, 3), llik = round(LLIK.n, 3)) # save mle matrix and grain probabilities to corresponding vector vmat.n[[cnt]]<- vmat grain.probability.n[[cnt]]<- as.data.frame(pui) # increase counter by one for next iteration cnt<- cnt+1 }#EndOf::save intermediate results }##EndOf::calculation loop ##============================================================================## ## STATISTICAL CHECK ##============================================================================## if(length(n.components)>1) { ## Evaluate maximum log likelihood estimates LLIK.significant<- vector(mode = "logical") # check if llik is at least three times greater when adding a further # component for(i in 1:c(length(LLIK.n)-1)) { LLIK.significant[i]<- (LLIK.n[i+1]/LLIK.n[i])>3 } ## Find lowest BIC score BIC.lowest<- n.components[which.min(BIC.n)] } ## OUTPUT --------- ##============================================================================## if(verbose) { ## HEADER (always printed) cat("\n [calc_FiniteMixture]") ## OUTPUT WHEN ONLY ONE VALUE FOR n.components IS PROVIDED if(length(n.components) == 1) { # covariance matrix cat(paste("\n\n--- covariance matrix of mle's ---\n\n")) print(round(vmat,6)) # general information on sample and model performance cat(paste("\n----------- meta data ------------")) cat(paste("\n n: ",n)) cat(paste("\n sigmab: ",sigmab)) cat(paste("\n number of components: ",k)) cat(paste("\n llik: ",round(llik,4))) cat(paste("\n BIC: ",round(bic,3))) # fitted components cat(paste("\n\n----------- components -----------\n\n")) print(comp) # print (to 2 decimal places) the estimated probabilities of which component # each grain is in -- sometimes useful for diagnostic purposes if(grain.probability==TRUE) { cat(paste("\n-------- grain probability -------\n\n")) print(round(pui,2)) } # output for single component cat(paste("\n-------- single component --------")) cat(paste("\n mu: ", comp0[1])) cat(paste("\n sigmab: ", comp0[2])) cat(paste("\n llik: ", comp0[3])) cat(paste("\n BIC: ", comp0[4])) cat(paste("\n----------------------------------\n\n")) }#EndOf::Output for length(n.components) == 1 ##---------------------------------------------------------------------------- ## OUTPUT WHEN ONLY >1 VALUE FOR n.components IS PROVIDED if(length(n.components) > 1) { ## final labeling of component and BIC/llik matrices # create labels dose.lab<- paste("c", 1:n.components[length(n.components)],"_dose", sep="") se.lab<- paste("c", 1:n.components[length(n.components)],"_se", sep="") prop.lab<- paste("c", 1:n.components[length(n.components)],"_prop", sep="") # empty vector which stores the labeles in correct order (dose, se, prop) n.lab<- vector(mode = "expression", n.components[length(n.components)]*3) # loop to store the labels in correct order (dose, se, prop) cnt<- 1 for(i in pos.n) { n.lab[i]<- dose.lab[cnt] n.lab[i+1]<- se.lab[cnt] n.lab[i+2]<- prop.lab[cnt] cnt<- cnt+1 } # label columns and rows of summary matrix and BIC/LLIK data frame colnames(comp.n)<- n.components[1]:n.components[length(n.components)] rownames(comp.n)<- n.lab colnames(results.n)<- n.components[1]:n.components[length(n.components)] ## CONSOLE OUTPUT # general information on sample and model performance cat(paste("\n\n----------- meta data ------------")) cat(paste("\n n: ",n)) cat(paste("\n sigmab: ",sigmab)) cat(paste("\n number of components: ",n.components[1],"-", n.components[length(n.components)], sep="")) # output for single component cat(paste("\n\n-------- single component --------")) cat(paste("\n mu: ", comp0[1])) cat(paste("\n sigmab: ", comp0[2])) cat(paste("\n llik: ", comp0[3])) cat(paste("\n BIC: ", comp0[4])) # print component matrix cat(paste("\n\n----------- k components -----------\n")) print(comp.n, na.print="") # print BIC scores and LLIK estimates cat(paste("\n----------- statistical criteria -----------\n")) print(results.n) ## print evaluation of statistical criteria # lowest BIC score cat(paste("\n Lowest BIC score for k =", BIC.lowest)) # first significant increase in LLIK estimates if(!any(LLIK.significant, na.rm = TRUE)) { cat(paste("\n No significant increase in maximum log", "likelihood estimates. \n")) } else { cat(paste("\n First significant increase in maximum log likelihood for", "k =", which(LLIK.significant==TRUE)[1], "\n\n")) } cat(paste("\n")) }#EndOf::Output for length(n.components) > 1 } ## RETURN VALUES -------- ##============================================================================## # .@data$meta BIC<- data.frame(n.components=k, BIC=bic) llik<- data.frame(n.components=k, llik=llik) if(length(n.components)>1) { BIC.n<- data.frame(n.components=n.components, BIC=BIC.n) llik.n<- data.frame(n.components=n.components, llik=LLIK.n) } # .@data$single.comp single.comp<- data.frame(mu=comp0[1],sigmab=comp0[2], llik=comp0[3],BIC=comp0[4]) # .@data$components comp.re<- t(rbind(round(estd,4),round(estp,4))) colnames(comp.re)<- c("de","rel_de_err","de_err","proportion") comp.re<- comp.re[,-2] # remove the relative error column # .@data$grain.probability grain.probability<- round(pui, 2) summary<- data.frame(comp.re) call<- sys.call() args<- list(sigmab = sigmab, n.components = n.components) # create S4 object newRLumResults.calc_FiniteMixture <- set_RLum( class = "RLum.Results", data = list( summary=summary, data=data, args=args, call=call, mle=if(length(n.components)==1){vmat}else{vmat.n}, BIC=if(length(n.components)==1){BIC}else{BIC.n}, llik=if(length(n.components)==1){llik}else{llik.n}, grain.probability=if(length(n.components)==1){grain.probability}else{grain.probability.n}, components=if(length(n.components)==1){comp.re}else{comp.n}, single.comp=single.comp)) if (anyNA(unlist(summary)) && verbose) .throw_warning("The model produced NA values: either the input data are ", "inapplicable for the model, or the model parameters ", "need to be adjusted (e.g. 'sigmab')") ##=========## ## PLOTTING ----------- if(plot && !anyNA(unlist(summary))) try(do.call(plot_RLum.Results, c(list(newRLumResults.calc_FiniteMixture), as.list(sys.call())[-c(1,2)]))) # Return values invisible(newRLumResults.calc_FiniteMixture) } Luminescence/R/plot_DetPlot.R0000644000176200001440000003704214762554470015645 0ustar liggesusers#' @title Create De(t) plot #' #' @description Plots the equivalent dose (\eqn{D_e}) in dependency of the chosen signal integral #' (cf. Bailey et al., 2003). The function is simply passing several arguments #' to the function [plot] and the used analysis functions and runs it in a loop. #' Example: `legend.pos` for legend position, `legend` for legend text. #' #' @details #' #' **method** #' #' The original method presented by Bailey et al., 2003 shifted the signal integrals and slightly #' extended them accounting for changes in the counting statistics. Example: `c(1:3, 3:5, 5:7)`. #' However, here also another method is provided allowing to expand the signal integral by #' consecutively expanding the integral by its chosen length. Example: `c(1:3, 1:5, 1:7)` #' #' Note that in both cases the integral limits are overlap. The finally applied limits are part #' of the function output. #' #' **analyse_function.control** #' #' The argument `analyse_function.control` currently supports the following arguments: #' `sequence.structure`, `dose.points`, `mtext.outer`, `fit.method`, #' `fit.force_through_origin`, `plot`, `plot_singlePanels` #' #' @param object [RLum.Analysis-class] (**required**): input object containing data for analysis #' Can be provided as a [list] of such objects. #' #' @param signal.integral.min [integer] (**required**): #' lower bound of the signal integral. #' #' @param signal.integral.max [integer] (**required**): #' upper bound of the signal integral. Must be strictly greater than #' `signal.integral.min`. #' #' @param background.integral.min [integer] (**required**): #' lower bound of the background integral. #' #' @param background.integral.max [integer] (**required**): #' upper bound of the background integral. #' #' @param method [character] (*with default*): #' method applied for constructing the De(t) plot. #' - `shift` (*the default*): the chosen signal integral is shifted the shine down curve, #' - `expansion`: the chosen signal integral is expanded each time by its length #' #' @param signal_integral.seq [numeric] (*optional*): #' argument to provide an own signal integral sequence for constructing the De(t) plot #' #' @param analyse_function [character] (*with default*): #' name of the analyse function to be called. Supported functions are: #' [analyse_SAR.CWOSL], [analyse_pIRIRSequence] #' #' @param analyse_function.control [list] (*optional*): #' selected arguments to be passed to the supported analyse functions #' ([analyse_SAR.CWOSL], [analyse_pIRIRSequence]). The arguments must be provided #' as named [list], e.g., `list(dose.points = c(0,10,20,30,0,10)` will set the #' regeneration dose points. #' #' @param n.channels [integer] (*optional*): #' number of channels used for the De(t) plot. If nothing is provided all #' De-values are calculated and plotted until the start of the background #' integral. #' #' @param show_ShineDownCurve [logical] (*with default*): #' enable/disable shine down curve in the plot output. #' #' @param respect_RC.Status [logical] (*with default*): #' remove De values with 'FAILED' RC.Status from the plot (cf. [analyse_SAR.CWOSL] #' and [analyse_pIRIRSequence]). #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param multicore [logical] (*with default*) : enable/disable multi core #' calculation if `object` is a [list] of [RLum.Analysis-class] objects. Can be an #' [integer] specifying the number of cores #' #' @param plot [logical] (*with default*): enable/disable the plot output. #' Disabling the plot is useful in cases where the output need to be processed #' differently. #' #' @param ... further arguments and graphical parameters passed to #' [plot.default], [analyse_SAR.CWOSL] and [analyse_pIRIRSequence] (see details for further information). #' Plot control parameters are: `ylim`, `xlim`, `ylab`, `xlab`, `main`, `pch`, `mtext`, `cex`, `legend`, #' `legend.text`, `legend.pos` #' #' @return #' A plot and an [RLum.Results-class] object with the produced \eqn{D_e} values #' #' `@data`: #' #' \tabular{lll}{ #' **Object** \tab **Type** \tab **Description**\cr #' `De.values` \tab `data.frame` \tab table with De values \cr #' `signal_integral.seq` \tab `numeric` \tab integral sequence used for the calculation #' } #' #' `@info`: #' #' \tabular{lll}{ #' **Object** \tab **Type** \tab **Description**\cr #' call \tab `call` \tab the original function call #' } #' #' #' @note #' The entire analysis is based on the used analysis functions, namely #' [analyse_SAR.CWOSL] and [analyse_pIRIRSequence]. However, the integrity #' checks of this function are not that thoughtful as in these functions itself. #' It means, that every sequence should be checked carefully before running long #' calculations using several hundreds of channels. #' #' @section Function version: 0.1.8 #' #' @author Sebastian Kreutzer, Institute of Geography, Ruprecht-Karl University of Heidelberg (Germany) #' #' @references #' Bailey, R.M., Singarayer, J.S., Ward, S., Stokes, S., 2003. Identification of partial resetting #' using De as a function of illumination time. Radiation Measurements 37, 511-518. #' doi:10.1016/S1350-4487(03)00063-5 #' #' @seealso [plot], [analyse_SAR.CWOSL], [analyse_pIRIRSequence] #' #' @examples #' #' \dontrun{ #' ##load data #' ##ExampleData.BINfileData contains two BINfileData objects #' ##CWOSL.SAR.Data and TL.SAR.Data #' data(ExampleData.BINfileData, envir = environment()) #' #' ##transform the values from the first position in a RLum.Analysis object #' object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) #' #' plot_DetPlot( #' object, #' signal.integral.min = 1, #' signal.integral.max = 3, #' background.integral.min = 900, #' background.integral.max = 1000, #' n.channels = 5) #' } #' #' @md #' @export plot_DetPlot <- function( object, signal.integral.min, signal.integral.max, background.integral.min, background.integral.max, method = "shift", signal_integral.seq = NULL, analyse_function = "analyse_SAR.CWOSL", analyse_function.control = list(), n.channels = NULL, show_ShineDownCurve = TRUE, respect_RC.Status = FALSE, multicore = TRUE, verbose = TRUE, plot = TRUE, ... ) { .set_function_name("plot_DetPlot") on.exit(.unset_function_name(), add = TRUE) # SELF CALL --------------------------------------------------------------- if(inherits(object, "list")) { ## remove all RLum.Analysis objects object <- .rm_nonRLum(x = object, class = "RLum.Analysis") ## get parameters to be passed on f_def <- sys.call(sys.parent(n = -1)) args_default <- as.list(f_def)[-(1:2)] ## detect cores cores <- if(inherits(multicore[1], "logical") && multicore[1]) { parallel::detectCores() } else { max(c(as.numeric(multicore[1])), 1) } cl <- parallel::makeCluster(cores) on.exit(parallel::stopCluster(cl), add = TRUE) if(!multicore) { cores <- parallel::detectCores() cl <- parallel::makeCluster(cores) } ##terminal return if(verbose) cat("\n[plot_DetPlot()] Running mulitcore session with", cores, "core(s) ...") ## run in parallel return_list <- parallel::parLapply( cl = cl, X = object, fun = function(x, arg = args_default) do.call(plot_DetPlot, c(list(object = x), arg))) return(merge_RLum(return_list)) } ## Integrity checks ------------------------------------------------------- .validate_class(object, "RLum.Analysis") .validate_not_empty(object) ##get structure object.structure <- structure_RLum(object) ## signal.integral .validate_positive_scalar(signal.integral.min, int = TRUE) .validate_positive_scalar(signal.integral.max, int = TRUE) if (signal.integral.min >= signal.integral.max) { .throw_error("'signal.integral.max' must be greater than 'signal.integral.min'") } ## background.integral .validate_positive_scalar(background.integral.min, int = TRUE) .validate_positive_scalar(background.integral.min, int = TRUE) ## analyse_function analyse_function <- .validate_args(analyse_function, c("analyse_SAR.CWOSL", "analyse_pIRIRSequence")) ## deprecated argument if ("plot.single" %in% names(list(...))) { plot_singlePanels <- list(...)$plot.single .throw_warning("'plot.single' is deprecated, use 'plot_singlePanels' ", "instead") } # Set parameters ------------------------------------------------------------------------------ ##set n.channels if(is.null(n.channels)){ n.channels <- ceiling( (background.integral.min - 1 - signal.integral.max) / (signal.integral.max - signal.integral.min) ) if (verbose) { message("'n.channels' not specified, set to ", n.channels) } } analyse_function.settings <- list( sequence.structure = c("TL", "IR50", "pIRIR225"), dose.points = NULL, mtext.outer = "", fit.method = "EXP", fit.force_through_origin = FALSE, trim_channels = FALSE, plot = FALSE, plot_singlePanels = FALSE ) analyse_function.settings <- modifyList(analyse_function.settings, analyse_function.control) # Analyse ------------------------------------------------------------------------------------- ##set integral sequence if (is.null(signal_integral.seq)) { signal_integral.seq <- seq(signal.integral.min, background.integral.min - 1, by = signal.integral.max - signal.integral.min) } if(analyse_function == "analyse_SAR.CWOSL"){ results <- merge_RLum(lapply(1:n.channels, function(x){ analyse_SAR.CWOSL( object = object, signal.integral.min = if(method == "shift"){signal_integral.seq[x]}else{signal_integral.seq[1]}, signal.integral.max = signal_integral.seq[x+1], background.integral.min = background.integral.min, background.integral.max = background.integral.max, dose.points = analyse_function.settings$dose.points, mtext.outer = analyse_function.settings$mtext.outer, fit.force_through_origin = analyse_function.settings$fit.force_through_origin, fit.method = analyse_function.settings$fit.method, trim_channels = analyse_function.settings$trim_channels, plot = analyse_function.settings$plot, plot_singlePanels = analyse_function.settings$plot_singlePanels, verbose = verbose ) })) } else if(analyse_function == "analyse_pIRIRSequence"){ result.temp.list <- lapply(1:n.channels, function(x) { analyse_pIRIRSequence( object = object, signal.integral.min = if(method == "shift"){signal_integral.seq[x]}else{signal_integral.seq[1]}, signal.integral.max = signal_integral.seq[x+1], background.integral.min = background.integral.min, background.integral.max = background.integral.max, dose.points = analyse_function.settings$dose.points, mtext.outer = analyse_function.settings$mtext.outer, plot = analyse_function.settings$plot, plot_singlePanels = analyse_function.settings$plot_singlePanels, sequence.structure = analyse_function.settings$sequence.structure, verbose = verbose ) }) ## as the analyse_pIRIRSequence() may fail, we see how many results ## we've actually managed to produce num.valid.results <- sum(!sapply(result.temp.list, is.null)) if (num.valid.results == 0) { .throw_error("No valid results produced") } if (num.valid.results == 1) { results <- result.temp.list } else { results <- merge_RLum(result.temp.list) } rm(result.temp.list) } # Plot ---------------------------------------------------------------------------------------- ##get De results if(analyse_function == "analyse_pIRIRSequence"){ pIRIR_signals <- unique(get_RLum(results)$Signal) }else{ pIRIR_signals <- NA } ##run this in a loop to account for pIRIR data df_final <- lapply(1:length(pIRIR_signals), function(i){ ##get data.frame df <- get_RLum(results) ##further limit if(!is.na(pIRIR_signals[1])) df <- df[df$Signal == pIRIR_signals[i],] ##add shine down curve, which is by definition the first IRSL/OSL curve ##and normalise on the highest De value OSL_curve <- as(get_RLum(object, recordType = "SL")[[i]], "matrix") ##limit to what we see OSL_curve <- OSL_curve[1:signal_integral.seq[n.channels + 1],] m <- ((min(df$De - df$De.Error, na.rm = TRUE)) - (max(df$De, na.rm = TRUE) + max(df$De.Error, na.rm = TRUE))) / (min(OSL_curve[, 2], na.rm = TRUE) - max(OSL_curve[, 2], na.rm = TRUE)) n <- (max(df$De, na.rm = TRUE) + max(df$De.Error, na.rm = TRUE)) - m * max(OSL_curve[, 2]) OSL_curve[, 2] <- m * OSL_curve[, 2] + n rm(n, m) ##set plot setting plot.settings <- modifyList(list( ylim = c( min(df$De - df$De.Error, na.rm = TRUE), (max(df$De, na.rm = TRUE) + max(df$De.Error, na.rm = TRUE))), xlim = c(min(OSL_curve[, 1]), max(OSL_curve[, 1])), ylab = if(show_ShineDownCurve[1]) expression(paste(D[e], " [s] and ", L[n], " [a.u.]")) else expression(paste(D[e], " [s]")), xlab = "Stimulation time [s]", main = "De(t) plot", pch = 1, mtext = ifelse(is.na(pIRIR_signals[1]), "", paste0("Signal: ",pIRIR_signals[i])), cex = 1, legend = if(show_ShineDownCurve[1]) TRUE else FALSE, legend.text = if(show_ShineDownCurve[1]) c(expression(D[e]), expression(L[n]-signal)) else expression(D[e]), legend.pos = "bottomleft" ), list(...)) ##set x-axis df_x <- OSL_curve[seq(signal.integral.max, signal_integral.seq[n.channels+1], length.out = nrow(df)),1] #combine everything to allow excluding unwanted values df_final <- cbind(df, df_x) if (respect_RC.Status) df_final <- df_final[df_final$RC.Status != "FAILED", ] if(plot[1]) { ##general settings old_par <- par(no.readonly = TRUE) par(cex = plot.settings$cex) on.exit(par(old_par), add = TRUE) ##open plot area plot( NA, NA, xlim = plot.settings$xlim, ylim = if(any(is.infinite(plot.settings$ylim))) c(-1,1) else plot.settings$ylim , xlab = plot.settings$xlab, ylab = plot.settings$ylab, main = plot.settings$main ) if (show_ShineDownCurve) lines(OSL_curve, type = "b", pch = 20) ##ToDo:color failed points red ##plot points and error bars points(df_final[, c("df_x", "De")], pch = plot.settings$pch) segments( x0 = df_final$df_x, y0 = df_final$De + df_final$De.Error, x1 = df_final$df_x, y1 = df_final$De - df_final$De.Error ) ##set mtext mtext(side = 3, plot.settings$mtext) ##legend if(plot.settings$legend){ legend( plot.settings$legend.pos, legend = plot.settings$legend.text, pch = c(plot.settings$pch, 20), bty = "n" ) } } ## end plot ##set return return(df_final) }) # Return ------------------------------------------------------------------ ##merge results return(set_RLum( class = "RLum.Results", data = list( De.values = as.data.frame(data.table::rbindlist(df_final)), signal_integral.seq = signal_integral.seq ), info = list( call = sys.call()) )) } Luminescence/R/merge_RLum.R0000644000176200001440000000737314762554470015276 0ustar liggesusers#' General merge function for RLum S4 class objects #' #' Function calls object-specific merge functions for RLum S4 class objects. #' #' The function provides a generalised access point for merging specific #' [RLum-class] objects. Depending on the input object, the #' corresponding merge function will be selected. Allowed arguments can be #' found in the documentation of each merge function. #' Empty list elements (`NULL`) are automatically removed from the input `list`. #' #' \tabular{lll}{ #' **object** \tab \tab **corresponding merge function** \cr #' [RLum.Data.Curve-class] \tab : \tab `merge_RLum.Data.Curve` \cr #' [RLum.Analysis-class] \tab : \tab `merge_RLum.Analysis` \cr #' [RLum.Results-class] \tab : \tab `merge_RLum.Results` #' } #' #' @param objects [list] of [RLum-class] (**required**): #' list of S4 object of class `RLum` #' #' @param ... further arguments that one might want to pass to the specific merge function #' #' @return Return is the same as input objects as provided in the list. #' #' @note So far not for every `RLum` object a merging function exists. #' #' @section Function version: 0.1.3 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Data.Curve-class], [RLum.Data.Image-class], #' [RLum.Data.Spectrum-class], [RLum.Analysis-class], [RLum.Results-class] #' #' #' @keywords utilities #' #' @examples #' #' #' ##Example based using data and from the calc_CentralDose() function #' #' ##load example data #' data(ExampleData.DeValues, envir = environment()) #' #' ##apply the central dose model 1st time #' temp1 <- calc_CentralDose(ExampleData.DeValues$CA1) #' #' ##apply the central dose model 2nd time #' temp2 <- calc_CentralDose(ExampleData.DeValues$CA1) #' #' ##merge the results and store them in a new object #' temp.merged <- get_RLum(merge_RLum(objects = list(temp1, temp2))) #' #' @md #' @export merge_RLum<- function( objects, ... ) { .set_function_name("merge_RLum") on.exit(.unset_function_name(), add = TRUE) ## Integrity tests -------------------------------------------------------- .validate_class(objects, "list") ##we are friendly and remove all empty list elements, this helps a lot if we place things ##we DO NOT provide a warning as this lowers the computation speed in particular cases. objects <- .rm_NULL_elements(objects) ##if list is empty afterwards we do nothing if(length(objects) >= 1) { ##check if objects are of class RLum temp.class.test <- unique(sapply(1:length(objects), function(x) { .validate_class(objects[[x]], "RLum", name = "All elements of 'objects'") ##provide class of objects ... so far they should be similar is(objects[[x]])[1] })) ##check if objects are consistent if (length(temp.class.test) > 1) { ##This is not valid for RLum.Analysis objects if (!"RLum.Analysis" %in% temp.class.test) { .throw_error("Only similar input objects in the list are supported") } } ##grep object class objects.class <- ifelse("RLum.Analysis" %in% temp.class.test, "RLum.Analysis", temp.class.test) ##select which merge function should be used switch ( objects.class, RLum.Data.Image = .throw_error("Merging of 'RLum.Data.Image' objects is currently not supported"), RLum.Data.Spectrum = merge_RLum.Data.Spectrum(objects, ...), RLum.Data.Curve = merge_RLum.Data.Curve(objects, ...), RLum.Analysis = merge_RLum.Analysis(objects, ...), RLum.Results = merge_RLum.Results(objects, ...) ) }else{ .throw_warning("Nothing was merged as the object list was found ", "to be empty or contains only one object") return(NULL) } } Luminescence/R/get_Layout.R0000644000176200001440000006151214762554470015347 0ustar liggesusers#' @title Collection of layout definitions #' #' @description #' This helper function returns a list with layout definitions for homogeneous #' plotting. #' #' The easiest way to create a user-specific layout definition is perhaps to #' create either an empty or a default layout object and fill/modify the #' definitions (`user.layout <- get_Layout(data = "empty")`). #' #' @param layout [character] or [list] object (**required**): #' name of the layout definition to be returned. If name is provided the #' respective definition is returned. One of the following #' supported layout definitions is possible: `"default"`, #' `"journal.1"`, `"small"`, `"empty"`. #' #' User-specific layout definitions must be provided as a list object of #' predefined structure, see details. #' #' @return A list object with layout definitions for plot functions. #' #' @section Function version: 0.1 #' #' @author Michael Dietze, GFZ Potsdam (Germany) #' #' @examples #' #' ## read example data set #' data(ExampleData.DeValues, envir = environment()) #' #' ## show structure of the default layout definition #' layout.default <- get_Layout(layout = "default") #' str(layout.default) #' #' ## show colour definitions for Abanico plot, only #' layout.default$abanico$colour #' #' ## set Abanico plot title colour to orange #' layout.default$abanico$colour$main <- "orange" #' #' ## create Abanico plot with modofied layout definition #' plot_AbanicoPlot(data = ExampleData.DeValues, #' layout = layout.default) #' #' ## create Abanico plot with predefined layout "journal" #' plot_AbanicoPlot(data = ExampleData.DeValues, #' layout = "journal") #' #' @md #' @export get_Layout <- function( layout ) { .set_function_name("get_Layout") on.exit(.unset_function_name(), add = TRUE) ## pre-defined layout selections if(is.character(layout) == TRUE & length(layout) == 1) { if(layout == "empty") { layout = list( ## empty Abanico plot ------------------------------------------------- abanico = list( font.type = list( main = character(1), xlab1 = character(1), xlab2 = character(1), ylab = character(1), zlab = character(1), xtck1 = character(1), xtck2 = character(1), xtck3 = character(1), ytck = character(1), ztck = character(1), mtext = character(1), summary = character(1), # optionally vector stats = character(1), # optionally vector legend = character(1) # optionally vector ), font.size = list( main = numeric(1), xlab1 = numeric(1), xlab2 = numeric(1), xlab3 = numeric(1), ylab = numeric(1), zlab = numeric(1), xtck1 = numeric(1), xtck2 = numeric(1), xtck3 = numeric(1), ytck = numeric(1), ztck = numeric(1), mtext = numeric(1), summary = numeric(1), # optionally vector stats = numeric(1), # optionally vector legend = numeric(1) # optionally vector ), font.deco = list( main = character(1), xlab1 = character(1), xlab2 = character(1), xlab3 = character(1), ylab = character(1), zlab = character(1), xtck1 = character(1), xtck2 = character(1), xtck3 = character(1), ytck = character(1), ztck = character(1), mtext = character(1), summary = character(1), # optionally vector stats = character(1), # optionally vector legend = character(1) # optionally vector ), colour = list( main = numeric(1), # plot title colour xlab1 = numeric(1), # left x-axis label colour xlab2 = numeric(1), # right x-axis label colour xlab3 = numeric(1), # right x-axis label colour ylab = numeric(1), # y-axis label colour zlab = numeric(1), # z-axis label colour xtck1 = numeric(1), # left x-axis tick colour xtck2 = numeric(1), # right x-axis tick colour xtck3 = numeric(1), # right x-axis tick colour ytck = numeric(1), # y-axis tick colour ztck = numeric(1), # z-axis tick colour mtext = numeric(1), # subheader text colour summary = numeric(1), # statistic summary colour stats = numeric(1), # value statistics colour legend = numeric(1), # legend colour centrality = numeric(1), # Centrality line colour value.dot = numeric(1), # De value dot colour value.bar = numeric(1), # De value error bar colour value.rug = numeric(1), # De value rug colour poly.line = numeric(1), # polygon line colour poly.fill = numeric(1), # polygon fill colour bar.line = numeric(1), # polygon line colour bar.fill = numeric(1), # polygon fill colour kde.line = numeric(1), kde.fill = numeric(1), grid.major = numeric(1), grid.minor = numeric(1), border = numeric(1), background = numeric(1)), dimension = list( figure.width = numeric(1), # figure width in mm figure.height = numeric(1), # figure height in mm margin = numeric(4), # margin sizes in mm main.line = numeric(1), # line height in % xlab1.line = numeric(1), # line height in % xlab2.line = numeric(1), # line height in % xlab3.line = numeric(1), # line height in % ylab.line = numeric(1), # line height in % zlab.line = numeric(1), # line height in % xtck1.line = numeric(1), # line height in % xtck2.line = numeric(1), # line height in % xtck3.line = numeric(1), # line height in % ytck.line = numeric(1), # line height in % ztck.line = numeric(1), # line height in % xtcl1 = numeric(1), # tick length in % xtcl2 = numeric(1), # tick length in % xtcl3 = numeric(1), # tick length in % ytcl = numeric(1), # tick length in % ztcl = numeric(1), # tick length in % rugl = numeric(1), # rug length in % mtext = numeric(1), # line height in % summary.line = numeric(1) # line height in % )), ## empty KDE plot ----------------------------------------------------- kde = list( font.type = list( main = character(1), xlab = character(1), ylab1 = character(1), ylab2 = character(1), xtck = character(1), ytck1 = character(1), ytck2 = character(1), stats = character(1), # optionally vector legend = character(1) # optionally vector ), font.size = list( main = numeric(1), xlab = numeric(1), ylab1 = numeric(1), ylab2 = numeric(1), xtck = numeric(1), ytck1 = numeric(1), ytck2 = numeric(1), stats = numeric(1), # optionally vector legend = numeric(1) # optionally vector ), font.deco = list( main = character(1), xlab = character(1), ylab1 = character(1), ylab2 = character(1), xtck = character(1), ytck1 = character(1), ytck2 = character(1), stats = character(1), # optionally vector legend = character(1) # optionally vector ), colour = list( main = numeric(1), # plot title colour xlab = numeric(1), # x-axis label colour ylab1 = numeric(1), # primary y-axis label colour ylab2 = numeric(1), # secondary y-axis label colour xtck = numeric(1), # x-axis tick colour ytck1 = numeric(1), # primary y-axis tick colour ytck2 = numeric(1), # secondary y-axis tick colour box = numeric(1), # plot frame box line colour mtext = numeric(1), # subheader text colour stats = numeric(1), # statistic summary colour kde.line = numeric(1), # KDE line colour kde.fill = numeric(1), # KDE fill colour value.dot = numeric(1), # De value dot colour value.bar = numeric(1), # De value error bar colour value.rug = numeric(1), # De value rug colour boxplot.line = numeric(1), # boxplot line colour boxplot.fill = numeric(1), # boxplot fill colour mean.line = numeric(1), # mean line colour sd.bar = numeric(1), # sd-line colour background = numeric(1)), # background colour dimension = list( figure.width = numeric(1), # figure width in mm figure.height = numeric(1), # figure height in mm margin = numeric(4), # margin sizes in mm main.line = numeric(1), # line height in % xlab.line = numeric(1), # line height in % ylab1.line = numeric(1), # line height in % ylab2.line = numeric(1), # line height in % xtck.line = numeric(1), # line height in % ytck1.line = numeric(1), # line height in % ytck2.line = numeric(1), # line height in % xtcl = numeric(1), # tick length in % ytcl1 = numeric(1), # tick length in % ytcl2 = numeric(1), # tick length in % stats.line = numeric(1) # line height in % ) ) ) } else if(layout == "default") { layout = list( ## default Abanico plot ----------------------------------------------- abanico = list( font.type = list( main = "", xlab1 = "", xlab2 = "", ylab = "", zlab = "", xtck1 = "", xtck2 = "", xtck3 = "", ytck = "", ztck = "", mtext = "", summary = "", # optionally vector stats = "", # optionally vector legend = "" # optionally vector ), font.size = list( main = 12, xlab1 = 12, xlab2 = 12, xlab3 = 12, ylab = 12, zlab = 12, xtck1 = 12, xtck2 = 12, xtck3 = 12, ytck = 12, ztck = 12, mtext = 10, summary = 10, # optionally vector stats = 10, # optionally vector legend = 10 # optionally vector ), font.deco = list( main = "bold", xlab1 = "normal", xlab2 = "normal", xlab3 = "normal", ylab = "normal", zlab = "normal", xtck1 = "normal", xtck2 = "normal", xtck3 = "normal", ytck = "normal", ztck = "normal", mtext = "normal", summary = "normal", # optionally vector stats = "normal", # optionally vector legend = "normal" # optionally vector ), colour = list( main = 1, # plot title colour xlab1 = 1, # left x-axis label colour xlab2 = 1, # right x-axis label colour xlab3 = 1, # right x-axis label colour ylab = 1, # y-axis label colour zlab = 1, # z-axis label colour xtck1 = 1, # left x-axis tick colour xtck2 = 1, # right x-axis tick colour xtck3 = 1, # right x-axis tick colour ytck = 1, # y-axis tick colour ztck = 1, # z-axis tick colour mtext = 1, # subheader text colour summary = 1, # statistic summary colour stats = 1, # value statistics colour legend = 1, # legend colour centrality = 1, # Centrality line colour value.dot = 1, # De value dot colour value.bar = 1, # De value error bar colour value.rug = 1, # De value rug colour poly.line = NA, # polygon line colour poly.fill = adjustcolor("grey75", alpha.f = 0.6), # polygon fill colour bar.line = NA, # polygon line colour bar.fill = "grey60", # bar fill colour kde.line = 1, kde.fill = NA, grid.major = "grey80", grid.minor = "none", border = 1, background = NA), dimension = list( figure.width = "auto", # figure width in mm figure.height = "auto", # figure height in mm margin = c(10, 10, 10, 10), # margin sizes in mm main.line = 100, # line height in % xlab1.line = 90, # line height in % xlab2.line = 90, # line height in % xlab3.line = 90, # line height in % ylab.line = 100, # line height in % zlab.line = 70, # line height in % xtck1.line = 100, # line height in % xtck2.line = 100, # line height in % xtck3.line = 100, # line height in % ytck.line = 100, # line height in % ztck.line = 100, # line height in % xtcl1 = 100, # tick length in % xtcl2 = 100, # tick length in % xtcl3 = 100, # tick length in % ytcl = 100, # tick length in % ztcl = 100, # tick length in % rugl = 100, # rug length in % mtext = 100, # line height in % summary.line = 100 # line height in % )), ## default KDE plot --------------------------------------------------- kde = list( font.type = list( main = "", xlab = "", ylab1 = "", ylab2 = "", xtck = "", ytck1 = "", ytck2 = "", stats = "", # optionally vector legend = "" # optionally vector ), font.size = list( main = 14, xlab = 12, ylab1 = 12, ylab2 = 12, xtck = 12, ytck1 = 12, ytck2 = 12, stats = 12, # optionally vector legend = 12 # optionally vector ), font.deco = list( main = "bold", xlab = "normal", ylab1 = "normal", ylab2 = "normal", xtck = "normal", ytck1 = "normal", ytck2 = "normal", stats = "normal", # optionally vector legend = "normal" # optionally vector ), colour = list( main = 1, # plot title colour xlab = 1, # x-axis label colour ylab1 = 1, # primary y-axis label colour ylab2 = 1, # secondary y-axis label colour xtck = 1, # x-axis tick colour ytck1 = 1, # primary y-axis tick colour ytck2 = 1, # secondary y-axis tick colour box = 1, # plot frame box line colour mtext = 2, # subheader text colour stats = 1, # statistic summary colour kde.line = 1, # KDE line colour kde.fill = NULL, # KDE fill colour value.dot = 1, # De value dot colour value.bar = 1, # De value error bar colour value.rug = 1, # De value rug colour boxplot.line = 1, # boxplot line colour boxplot.fill = NULL, # boxplot fill colour mean.point = 1, # mean line colour sd.line = 1, # sd bar colour background = NULL), # background colour dimension = list( figure.width = "auto", # figure width in mm figure.height = "auto", # figure height in mm margin = c(10, 10, 10, 10), # margin sizes in mm main.line = 100, # line height in % xlab.line = 100, # line height in % ylab1.line = 100, # line height in % ylab2.line = 100, # line height in % xtck.line = 100, # line height in % ytck1.line = 100, # line height in % ytck2.line = 100, # line height in % xtcl = 100, # tick length in % ytcl1 = 100, # tick length in % ytcl2 = 100, # tick length in % stats.line = 100 # line height in % ) ) ) } else if(layout == "journal") { layout = list( ## journal Abanico plot ----------------------------------------------- abanico = list( font.type = list( main = "", xlab1 = "", xlab2 = "", ylab = "", zlab = "", xtck1 = "", xtck2 = "", xtck3 = "", ytck = "", ztck = "", mtext = "", summary = "", # optionally vector stats = "", # optionally vector legend = "" # optionally vector ), font.size = list( main = 8, xlab1 = 7, xlab2 = 7, xlab3 = 7, ylab = 7, zlab = 7, xtck1 = 7, xtck2 = 7, xtck3 = 7, ytck = 7, ztck = 7, mtext = 6, summary = 6, # optionally vector stats = 6, # optionally vector legend = 6 # optionally vector ), font.deco = list( main = "bold", xlab1 = "normal", xlab2 = "normal", xlab3 = "normal", ylab = "normal", zlab = "normal", xtck1 = "normal", xtck2 = "normal", xtck3 = "normal", ytck = "normal", ztck = "normal", mtext = "normal", summary = "normal", # optionally vector stats = "normal", # optionally vector legend = "normal" # optionally vector ), colour = list( main = 1, # plot title colour xlab1 = 1, # left x-axis label colour xlab2 = 1, # right x-axis label colour xlab3 = 1, # right x-axis label colour ylab = 1, # y-axis label colour zlab = 1, # z-axis label colour xtck1 = 1, # left x-axis tick colour xtck2 = 1, # right x-axis tick colour xtck3 = 1, # right x-axis tick colour ytck = 1, # y-axis tick colour ztck = 1, # z-axis tick colour mtext = 1, # subheader text colour summary = 1, # statistic summary colour stats = 1, # value statistics colour legend = 1, # legend colour centrality = 1, # Centrality line colour value.dot = 1, # De value dot colour value.bar = 1, # De value error bar colour value.rug = 1, # De value rug colour poly.line = NA, # polygon line colour poly.fill = adjustcolor("grey75", alpha.f = 0.6), # polygon fill colour bar.line = NA, # polygon line colour bar.fill = "grey60", # bar fill colour kde.line = 1, kde.fill = NA, grid.major = "grey80", grid.minor = "none", border = 1, background = NA), dimension = list( figure.width = 100, # figure width in mm figure.height = 100, # figure height in mm margin = c(10, 10, 10, 10), # margin sizes in mm main.line = 70, # line height in % xlab1.line = 30, # line height in % xlab2.line = 65, # line height in % xlab3.line = 30, # line height in % ylab.line = 30, # line height in % zlab.line = 40, # line height in % xtck1.line = 50, # line height in % xtck2.line = 50, # line height in % xtck3.line = 50, # line height in % ytck.line = 70, # line height in % ztck.line = 70, # line height in % xtcl1 = 50, # tick length in % xtcl2 = 50, # tick length in % xtcl3 = 50, # tick length in % ytcl = 50, # tick length in % ztcl = 70, # tick length in % rugl = 70, # rug length in % mtext = 100, # line height in % summary.line = 70, # line height in % pch = 50 # point size in % )), ## journal KDE plot --------------------------------------------------- kde = list( font.type = list( main = "", xlab = "", ylab1 = "", ylab2 = "", xtck = "", ytck1 = "", ytck2 = "", stats = "", # optionally vector legend = "" # optionally vector ), font.size = list( main = 8, xlab = 7, ylab1 = 7, ylab2 = 7, xtck = 7, ytck1 = 7, ytck2 = 7, stats = 7, legend = 7 ), font.deco = list( main = "bold", xlab = "normal", ylab1 = "normal", ylab2 = "normal", xtck = "normal", ytck1 = "normal", ytck2 = "normal", stats = "normal", # optionally vector legend = "normal" # optionally vector ), colour = list( main = 1, # plot title colour xlab = 1, # x-axis label colour ylab1 = 1, # primary y-axis label colour ylab2 = 1, # secondary y-axis label colour xtck = 1, # x-axis tick colour ytck1 = 1, # primary y-axis tick colour ytck2 = 1, # secondary y-axis tick colour box = 1, # plot frame box line colour mtext = 1, # subheader text colour stats = "#2062B3", # statistic summary colour kde.line = "#2062B3", # KDE line colour kde.fill = NULL, # KDE fill colour value.dot = 1, # De value dot colour value.bar = 1, # De value error bar colour value.rug = 1, # De value rug colour boxplot.line = 1, # boxplot line colour boxplot.fill = NULL, # boxplot fill colour mean.line = adjustcolor(col = 1, alpha.f = 0.4), # mean line colour sd.bar = adjustcolor(col = 1, alpha.f = 0.4), # sd bar colour background = NULL), dimension = list( figure.width = 80, # figure width in mm figure.height = 80, # figure height in mm margin = c(10, 10, 10, 10), # margin sizes in mm main.line = 70, # line height in % xlab.line = 30, # line height in % ylab1.line = 40, # line height in % ylab2.line = 30, # line height in % xtck.line = 50, # line height in % ytck1.line = 65, # line height in % ytck2.line = 50, # line height in % xtcl = 50, # tick length in % ytcl1 = 20, # tick length in % ytcl2 = 50, # tick length in % stats.line = 70 # line height in % ) ) ) } else { .throw_warning("Layout definition not supported, ", "default layout is used.") layout <- get_Layout(layout = "default") } } else if(is.list(layout) == TRUE) { ## user-specific layout definition assignment layout <- layout } ## return layout parameters return(layout) } Luminescence/R/calc_FadingCorr.R0000644000176200001440000003716414762554470016241 0ustar liggesusers#'@title Fading Correction after Huntley & Lamothe (2001) #' #'@description Apply a fading correction according to Huntley & Lamothe (2001) for a given #'\eqn{g}-value and a given \eqn{t_{c}} #' #'@details #'This function solves the equation used for correcting the fading affected age #'including the error for a given \eqn{g}-value according to Huntley & Lamothe (2001): #' #'\deqn{ #'\frac{A_{f}}{A} = 1 - \kappa * \Big[ln(\frac{A}{t_c}) - 1\Big] #'} #' #'with \eqn{\kappa} defined as #' #'\deqn{ #'\kappa = \frac{\frac{\mathrm{g\_value}}{ln(10)}}{100} #'} #' #' \eqn{A} and \eqn{A_{f}} are given in ka. \eqn{t_c} is given in s, however, it #' is internally recalculated to ka. #' #' As the \eqn{g}-value slightly depends on the time \eqn{t_{c}} between #' irradiation and the prompt measurement, a value for `tc` must always be #' provided. #' If the \eqn{g}-value was normalised to a distinct #' time or evaluated with a different tc value (e.g., external irradiation), also #' the \eqn{t_{c}} value for the \eqn{g}-value needs to be provided (argument `tc.g_value` #' and then the \eqn{g}-value is recalculated #' to \eqn{t_{c}} of the measurement used for estimating the age applying the #' following equation: #' #' \deqn{\kappa_{tc} = \kappa_{tc.g} / (1 - \kappa_{tc.g} * ln(tc/tc.g))} #' #' where #' #' \deqn{\kappa_{tc.g} = g / 100 / ln(10)} #' #' The error of the fading-corrected age is determined using a Monte Carlo #' simulation approach. Solving of the equation is performed using #' [uniroot]. Large values for `n.MC` will significantly #' increase the computation time.\cr #' #' **`n.MC = 'auto'`** #' #' The error estimation based on a stochastic process, i.e. for a small number of #' MC runs the calculated error varies considerably every time the function is called, #' even with the same input values. #' The argument option `n.MC = 'auto'` tries to find a stable value for the standard error, i.e. #' the standard deviation of values calculated during the MC runs (`age.corr.MC`), #' within a given precision (2 digits) by increasing the number of MC runs stepwise and #' calculating the corresponding error. #' #' If the determined error does not differ from the 9 values calculated previously #' within a precision of (here) 3 digits the calculation is stopped as it is assumed #' that the error is stable. Please note that (a) the duration depends on the input #' values as well as on the provided computation resources and it may take a while, #' (b) the length (size) of the output #' vector `age.corr.MC`, where all the single values produced during the MC runs #' are stored, equals the number of MC runs (here termed observations). #' #' To avoid an endless loop the calculation is stopped if the number of observations #' exceeds 10^7. #' This limitation can be overwritten by setting the number of MC runs manually, #' e.g. `n.MC = 10000001`. Note: For this case the function is not checking whether the calculated #' error is stable.\cr #' #' **`seed`** #' #' This option allows to recreate previously calculated results by setting the seed #' for the R random number generator (see [set.seed] for details). This option #' should not be mixed up with the option **`n.MC = 'auto'`**. The results may #' appear similar, but they are not comparable!\cr #' #' **FAQ**\cr #' #' **Q**: Which \eqn{t_{c}} value is expected?\cr #' #' **A**: \eqn{t_{c}} is the time in seconds between irradiation and the prompt measurement #' applied during your \eqn{D_{e}} measurement. However, this \eqn{t_{c}} might #' differ from the \eqn{t_{c}} used for estimating the \eqn{g}-value. In the #' case of an SAR measurement \eqn{t_{c}} should be similar, however, #' if it differs, you have to provide this #' \eqn{t_{c}} value (the one used for estimating the \eqn{g}-value) using #' the argument `tc.g_value`.\cr #' #' **Q**: The function could not find a solution, what should I do?\cr #' #' **A**: This usually happens for model parameters exceeding the boundaries of the #' fading correction model (e.g., very high \eqn{g}-value). Please check #' whether another fading correction model might be more appropriate. #' #' @param age.faded [numeric] [vector] (**required**): #' vector of length 2 containing the uncorrected age and the error in ka #' (see example). #' #' @param g_value [vector] or [RLum.Results-class] (**required**): #' either a vector of length 2 containing the g-value and error obtained from #' separate fading measurements (see example), or an [RLum.Results-class] #' object produced by [analyse_FadingMeasurement]. If the latter, the `tc` #' argument is set automatically. #' #' @param tc [numeric] (**required**): #' time in seconds between irradiation and the prompt measurement (cf. Huntley & Lamothe 2001). #' The argument is ignored when `g_value` is an [RLum.Results-class] object. #' #' @param tc.g_value [numeric] (*with default*): #' time in seconds between irradiation and the prompt measurement used in the #' estimation of the g-value. If the g-value was normalised, the normalisation #' time (in seconds) should be given, e.g., for a g-value normalised to 2 days, #' the value 172800 should be used. If nothing is provided the time is set to #' `tc`, which is usual case for g-values obtained using the #' SAR method and \eqn{g}-values that have been not normalised to 2 days. #' #' @param n.MC [integer] (*with default*): #' number of Monte Carlo simulation runs for error estimation. #' If `n.MC = 'auto'` is used the function tries to find a 'stable' error for #' the age. See details for further information. #' **Note:** This may take a while! #' #' @param seed [integer] (*optional*): #' sets the seed for the random number generator in R using [set.seed] #' #' @param interval [numeric] (*with default*): #' a vector containing the end-points (age interval) of the interval to be searched for the root in 'ka'. #' This argument is passed to the function [stats::uniroot] used for solving the equation. #' #' @param txtProgressBar [logical] (*with default*): #' enable/disable the progress bar. #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @return Returns an S4 object of type [RLum.Results-class].\cr #' #' Slot: **`@data`**\cr #' \tabular{lll}{ #' **Object** \tab **Type** \tab **Comment** \cr #' `age.corr` \tab [data.frame] \tab Corrected age \cr #' `age.corr.MC` \tab [numeric] \tab MC simulation results with all possible ages from that simulation \cr #' } #' #' Slot: **`@info`**\cr #' #' \tabular{lll}{ #' **Object** \tab **Type** \tab **Comment** \cr #' `info` \tab [character] \tab the original function call #' } #' #' #' @note Special thanks to Sébastien Huot for his support and clarification via e-mail. #' #' #' @section Function version: 0.4.4 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Results-class], [analyse_FadingMeasurement], [get_RLum], [uniroot] #' #' @references #' Huntley, D.J., Lamothe, M., 2001. Ubiquity of anomalous fading #' in K-feldspars and the measurement and correction for it in optical dating. #' Canadian Journal of Earth Sciences, 38, 1093-1106. #' #' @keywords datagen #' #' @examples #' #' ##run the examples given in the appendix of Huntley and Lamothe, 2001 #' #' ##(1) faded age: 100 a #' results <- calc_FadingCorr( #' age.faded = c(0.1,0), #' g_value = c(5.0, 1.0), #' tc = 2592000, #' tc.g_value = 172800, #' n.MC = 100) #' #' ##(2) faded age: 1 ka #' results <- calc_FadingCorr( #' age.faded = c(1,0), #' g_value = c(5.0, 1.0), #' tc = 2592000, #' tc.g_value = 172800, #' n.MC = 100) #' #' ##(3) faded age: 10.0 ka #' results <- calc_FadingCorr( #' age.faded = c(10,0), #' g_value = c(5.0, 1.0), #' tc = 2592000, #' tc.g_value = 172800, #' n.MC = 100) #' #' ##access the last output #' get_RLum(results) #' #' @md #' @export calc_FadingCorr <- function( age.faded, g_value, tc, tc.g_value = tc, n.MC = 10000, seed = NULL, interval = c(0.01,500), txtProgressBar = TRUE, verbose = TRUE ){ .set_function_name("calc_FadingCorr") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(age.faded, c("numeric", "integer")) .validate_length(age.faded, 2) .validate_class(g_value, c("numeric", "integer", "RLum.Results")) if(inherits(g_value, "RLum.Results")){ if(g_value@originator == "analyse_FadingMeasurement"){ tc <- get_RLum(g_value)[["TC"]] g_value <- as.numeric(get_RLum(g_value)[,c("FIT", "SD")]) }else{ .throw_message("Unknown originator for the 'g_value' object provided") return(NULL) } } else { .validate_length(g_value, 2) } ## tc is validated only now, as it may be set in the previous block .validate_class(tc, c("numeric", "integer")) .validate_positive_scalar(tc) .validate_positive_scalar(tc.g_value) .validate_class(interval, "numeric") .validate_length(interval, 2) .validate_logical_scalar(txtProgressBar) .validate_logical_scalar(verbose) ##============================================================================## ##DEFINE FUNCTION ##============================================================================## f <- function(x, af, kappa, tc) { 1 - kappa * (log(x / tc) - 1) - (af / x) } ##============================================================================## ##CALCULATION ##============================================================================## ##recalculate the g-value to the given tc ... should be similar ##of tc = tc.g_value ##re-calculation thanks to the help by Sébastien Huot, e-mail: 2016-07-19 ##Please note that we take the vector for the g_value here k0 <- g_value / 100 / log(10) k1 <- k0 / (1 - k0 * log(tc[1]/tc.g_value[1])) g_value <- 100 * k1 * log(10) ##calculate kappa (equation [5] in Huntley and Lamothe, 2001) kappa <- g_value / log(10) / 100 ##transform tc in ka years ##duration of the year over a long term taken from http://wikipedia.org tc <- tc[1] / 60 / 60 / 24 / 365.2425 / 1000 tc.g_value <- tc.g_value[1] / 60 / 60 / 24 / 365.2425 / 1000 ##calculate mean value temp <- try(suppressWarnings(uniroot( f, interval = interval, tol = 0.0001, tc = tc, extendInt = "yes", af = age.faded[1], kappa = kappa[1], check.conv = TRUE )), silent = TRUE) if(inherits(temp, "try-error")){ .throw_message("No solution found, NULL returned: this usually happens ", "for very large, unrealistic g-values, please consider ", "another model for the fading correction") return(NULL) } ##--------------------------------------------------------------------------## ##Monte Carlo simulation for error estimation tempMC.sd.recent <- NA tempMC.sd.count <- 1:10 counter <- 1 ## show a progress bar of the process if (n.MC == 'auto') { n.MC.i <- 10000 cat("\n[calc_FadingCorr()] ... trying to find stable error value ...") if (txtProgressBar) { cat("\n -------------------------------------------------------------\n") cat(paste0(" ",paste0("(",0:9,")", collapse = " "), "\n")) } }else{ .validate_positive_scalar(n.MC, int = TRUE) n.MC.i <- n.MC } # Start loop --------------------------------------------------------------------------------- ##set object and preallocate memory tempMC <- vector("numeric", length = if (n.MC == "auto") 1e+07 else n.MC) tempMC[] <- NA i <- 1 j <- n.MC.i while (length(unique(tempMC.sd.count)) > 1 || j > length(tempMC)) { ##set previous if(!is.na(tempMC.sd.recent)){ tempMC.sd.count[counter] <- tempMC.sd.recent } ##set seed if (!is.null(seed)) set.seed(seed) ##set-values g_valueMC <- rnorm(n.MC.i,mean = g_value[1],sd = g_value[2]) age.fadedMC <- rnorm(n.MC.i,mean = age.faded[1],sd = age.faded[2]) kappaMC <- g_valueMC / log(10) / 100 ##calculate for all values tempMC[i:j] <- suppressWarnings(vapply(X = 1:length(age.fadedMC), FUN = function(x) { temp <- try(uniroot( f, interval = interval, tol = 0.001, tc = tc, af = age.fadedMC[[x]], kappa = kappaMC[[x]], check.conv = TRUE, maxiter = 1000, extendInt = "yes" ), silent = TRUE) ##otherwise the automatic error value finding ##will never work res <- NA if (!is(temp,"try-error") && temp$root < 1e8) { res <- temp$root } return(res) }, FUN.VALUE = 1)) i <- j + 1 j <- j + n.MC.i ##stop here if a fixed value is set if(n.MC != 'auto'){ break } ##set recent tempMC.sd.recent <- round(sd(tempMC, na.rm = TRUE), digits = 3) if (counter %% 10 == 0) { counter <- 1 }else{ counter <- counter + 1 } ##show progress in terminal if (txtProgressBar) { text <- rep("CHECK",10) if (counter %% 2 == 0) { text[1:length(unique(tempMC.sd.count))] <- "-----" }else{ text[1:length(unique(tempMC.sd.count))] <- " CAL " } cat(paste("\r ",paste(rev(text), collapse = " "))) } } ##--------------------------------------------------------------------------## ##remove all NA values from tempMC tempMC <- tempMC[!is.na(tempMC)] ## discard wild outliers, as they will bias the error if present tempMC <- tempMC[tempMC < 100 * stats::IQR(tempMC)] ##obtain corrected age age.corr <- data.frame( AGE = round(temp$root, digits = 4), AGE.ERROR = round(sd(tempMC), digits = 4), AGE_FADED = age.faded[1], AGE_FADED.ERROR = age.faded[2], G_VALUE = g_value[1], G_VALUE.ERROR = g_value[2], KAPPA = kappa[1], KAPPA.ERROR = kappa[2], TC = tc, TC.G_VALUE = tc.g_value, n.MC = n.MC, OBSERVATIONS = length(tempMC), SEED = ifelse(is.null(seed), NA, seed) ) ##============================================================================## ##OUTPUT VISUAL ##============================================================================## if(verbose) { cat("\n\n[calc_FadingCorr()]\n") cat("\n >> Fading correction according to Huntley & Lamothe (2001)") if (tc != tc.g_value) { cat("\n >> g-value re-calculated for the given tc") } cat(paste( "\n\n .. used g-value:\t", round(g_value[1], digits = 3), " \u00b1 ", round(g_value[2], digits = 3), " %/decade", sep = "" )) cat(paste( "\n .. used tc:\t\t", format(tc, digits = 4, scientific = TRUE), " ka", sep = "" )) cat(paste0( "\n .. used kappa:\t\t", round(kappa[1], digits = 4), " \u00b1 ", round(kappa[2], digits = 4) )) cat("\n ----------------------------------------------") cat(paste0("\n seed: \t\t\t", ifelse(is.null(seed), NA, seed))) cat(paste0("\n n.MC: \t\t\t", n.MC)) cat(paste0( "\n observations: \t\t", format(length(tempMC), digits = 2, scientific = TRUE), sep = "" )) cat("\n ----------------------------------------------") cat(paste0( "\n Age (faded):\t\t", round(age.faded[1], digits = 4), " ka \u00b1 ", round(age.faded[2], digits = 4), " ka" )) cat(paste0( "\n Age (corr.):\t\t", round(age.corr[1], digits = 4), " ka \u00b1 ", round(age.corr[2], digits = 4), " ka" )) cat("\n ---------------------------------------------- \n") } ##============================================================================## ##OUTPUT RLUM ##============================================================================## return(set_RLum( class = "RLum.Results", data = list(age.corr = age.corr, age.corr.MC = tempMC), info = list(call = sys.call()) )) } Luminescence/R/calc_FuchsLang2001.R0000644000176200001440000002074714762554470016377 0ustar liggesusers#' @title Apply the model after Fuchs & Lang (2001) to a given De distribution #' #' @description This function applies the method according to Fuchs & Lang (2001) for #' heterogeneously bleached samples with a given coefficient of variation #' threshold. #' #' @details #' #' **Used values** #' #' If the coefficient of variation (`c[v]`) of the first #' two values is larger than the threshold `c[v_threshold]`, the first value is #' skipped. Use the `startDeValue` argument to define a start value for #' calculation (e.g. 2nd or 3rd value). #' #' **Basic steps of the approach** #' #' 1. Estimate natural relative variation of the sample using a dose recovery test #' 2. Sort the input values in ascending order #' 3. Calculate a running mean, starting with the lowermost two values and add values iteratively. #' 4. Stop if the calculated `c[v]` exceeds the specified `cvThreshold` #' #' @param data [RLum.Results-class] or [data.frame] (**required**): #' for [data.frame]: two columns with De `(data[,1])` and De error `(values[,2])` #' #' @param cvThreshold [numeric] (*with default*): #' coefficient of variation in percent, as threshold for the method, #' e.g. `cvThreshold = 3`. See details #' . #' @param startDeValue [numeric] (*with default*): #' number of the first aliquot that is used for the calculations #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param ... further arguments and graphical parameters passed to [plot] #' #' @return #' Returns a plot (*optional*) and terminal output. In addition an #' [RLum.Results-class] object is returned containing the #' following elements: #' #' \item{summary}{[data.frame] summary of all relevant model results.} #' \item{data}{[data.frame] original input data} #' \item{args}{[list] used arguments} #' \item{call}{[call] the function call} #' \item{usedDeValues}{[data.frame] containing the used values for the calculation} #' #' @note Please consider the requirements and the constraints of this method #' (see Fuchs & Lang, 2001) #' #' @section Function version: 0.4.1 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) \cr #' Christoph Burow, University of Cologne (Germany) #' #' @seealso [plot], [calc_MinDose], [calc_FiniteMixture], [calc_CentralDose], #' [calc_CommonDose], [RLum.Results-class] #' #' @references #' Fuchs, M. & Lang, A., 2001. OSL dating of coarse-grain fluvial #' quartz using single-aliquot protocols on sediments from NE Peloponnese, #' Greece. In: Quaternary Science Reviews 20, 783-787. #' #' Fuchs, M. & Wagner, G.A., 2003. Recognition of insufficient bleaching by #' small aliquots of quartz for reconstructing soil erosion in Greece. #' Quaternary Science Reviews 22, 1161-1167. #' #' @keywords dplot #' #' #' @examples #' ## load example data #' data(ExampleData.DeValues, envir = environment()) #' #' ## calculate De according to Fuchs & Lang (2001) #' temp<- calc_FuchsLang2001(ExampleData.DeValues$BT998, cvThreshold = 5) #' #' @md #' @export calc_FuchsLang2001 <- function( data, cvThreshold = 5, startDeValue = 1, plot = TRUE, ... ) { .set_function_name("calc_FuchsLang2001") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(data, c("data.frame", "RLum.Results")) .validate_not_empty(data) if (inherits(data, "RLum.Results")) { data <- get_RLum(data, "data") } # Deal with extra arguments ----------------------------------------------- ##deal with addition arguments extraArgs <- list(...) verbose <- if("verbose" %in% names(extraArgs)) {extraArgs$verbose} else {TRUE} ##============================================================================## ##PREPARE DATA ##============================================================================## ##1. order values in ascending order write used D[e] values in data.frame o <- order(data[[1]]) # o is only an order parameter data_ordered <- data[o,] # sort values after o and write them into a new variable ##2. estimate D[e] # set variables usedDeValues <- data.frame(De = NA, De_Error = NA, cv = NA) endDeValue <- startDeValue[1] # if the first D[e] values are not used write this information in the data.frame if (startDeValue[1] != 1) { n <- abs(1 - startDeValue[1]) # write used D[e] values in data.frame usedDeValues[1:n, 1] <- data_ordered[1:n, 1] usedDeValues[1:n, 2] <- data_ordered[1:n, 2] usedDeValues[1:n, 3] <- "skipped" } ##=================================================================================================## ##LOOP FOR MODEL ##=================================================================================================## # repeat loop (run at least one time) repeat { #calculate mean, sd and cv mean<-round(mean(data_ordered[startDeValue:endDeValue,1]),digits=2) #calculate mean from ordered D[e] values sd<-round(sd(data_ordered[startDeValue:endDeValue,1]),digits=2) #calculate sd from ordered D[e] values cv <- round(sd / mean * 100, digits = 2) #calculate coefficient of variation # break if cv > cvThreshold if (cv > cvThreshold[1] & endDeValue > startDeValue) { # if the first two D[e] values give a cv > cvThreshold, than skip the first D[e] value if (endDeValue-startDeValue<2) { # write used D[e] values in data.frame usedDeValues[endDeValue, 1] <- data_ordered[endDeValue, 1] usedDeValues[endDeValue, 2] <- data_ordered[endDeValue, 2] usedDeValues[endDeValue - 1, 3] <- "not used" # go to the next D[e] value startDeValue <- startDeValue + 1 } else { usedDeValues[endDeValue, 1] <- data_ordered[endDeValue, 1] usedDeValues[endDeValue, 2] <- data_ordered[endDeValue, 2] usedDeValues[endDeValue, 3] <- paste("# ", cv, " %", sep = "") break #break loop } }#EndIf else { # write used D[e] values in data.frame usedDeValues[endDeValue,1]<-data_ordered[endDeValue,1] usedDeValues[endDeValue,2]<-data_ordered[endDeValue,2] # first cv values alway contains NA to ensure that NA% is not printed test if(is.na(cv)==TRUE) { usedDeValues[endDeValue,3]<-cv } else { usedDeValues[endDeValue,3]<-paste(cv," %",sep="") } }#EndElse # go the next D[e] value until the maximum number is reached if (endDeValue> ## ## - Add-ins should support more experienced users. For all others we have the package 'RLumShiny' ## ## - Add-ins should be provided as non-exported function only, having the a name with a leading dot, e.g., .addin. ## This prevents further chaos in the manuel. ## ## - Interactive add-ins are not desired, except they are implemented in the package 'RLumShiny' or they ## are only available if the package 'RLumShiny' is available. ## ## ##<> ## ## Q. Why are the add-ins non-interactive ... had you been too lazy? ## A. No, but interactivity would require the installation of 'shiny" by default, which is not ## desired. ## ## Q. The add-ins are not shown in the 'Addin' menu? ## A. Well, if you read this information you are an advanced used, so please install the ## package 'rstudioapi', 'devtools' and get happy. #'Install package development version #' #'The function uses the GitHub APconnection provided by Christoph Burow #' #'@author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@noRd .installDevelopmentVersion <- function(){ install_DevelopmentVersion(force_install = TRUE) # nocov } #'Search for TODOs in the source code and list them in the terminal #' #'This add-in is a tool developers may want to use to briefly list all open #'issues in the terminal, instead of using search and stepping through the results. #' #'@author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@noRd .listTODO <- function(){ # nocov start ##check if package is installed if(!requireNamespace("rstudioapi", quietly = TRUE)){ message("Package 'rstudioapi' is not installed but needed to search for TODOs, do you want to install it?\n\n", " [n/N]: No (default)\n", " [y/Y]: Yes\n") ##parse answer answer <- readline() if(tolower(answer) == "y"){ utils::install.packages("rstudioapi", dependencies = TRUE) } }else{ ##parse code code <- rstudioapi::getActiveDocumentContext()$contents ##get lines with ##TODO id <- grep(pattern = "#\\s*TODO", x = code, fixed = FALSE) ##list lines cat("\n", "[", length(id), " issue(s)]\n", sep = "") for(i in id){ cat(" line ", i, ": ->", code[i], "\n", sep = "") } } # nocov end } Luminescence/R/convert_CW2pLMi.R0000644000176200001440000002254614762554470016154 0ustar liggesusers#' Transform a CW-OSL curve into a pLM-OSL curve via interpolation under linear #' modulation conditions #' #' Transforms a conventionally measured continuous-wave (CW) OSL-curve into a #' pseudo linearly modulated (pLM) curve under linear modulation conditions #' using the interpolation procedure described by Bos & Wallinga (2012). #' #' The complete procedure of the transformation is given in Bos & Wallinga #' (2012). The input `data.frame` consists of two columns: time (t) and #' count values (CW(t)) #' #' **Nomenclature** #' #' - P = stimulation time (s) #' - 1/P = stimulation rate (1/s) #' #' **Internal transformation steps** #' #' (1) #' log(CW-OSL) values #' #' (2) #' Calculate t' which is the transformed time: #' \deqn{t' = 1/2*1/P*t^2} #' #' (3) #' Interpolate CW(t'), i.e. use the log(CW(t)) to obtain the count values #' for the transformed time (t'). Values beyond `min(t)` and `max(t)` #' produce `NA` values. #' #' (4) #' Select all values for t' < `min(t)`, i.e. values beyond the time resolution #' of t. Select the first two values of the transformed data set which contain #' no `NA` values and use these values for a linear fit using [lm]. #' #' (5) #' Extrapolate values for t' < `min(t)` based on the previously obtained #' fit parameters. #' #' (6) #' Transform values using #' \deqn{pLM(t) = t/P*CW(t')} #' #' (7) #' Combine values and truncate all values for t' > `max(t)` #' #' #' **NOTE:** #' The number of values for t' < `min(t)` depends on the stimulation #' period (P) and therefore on the stimulation rate 1/P. To avoid the #' production of too many artificial data at the raising tail of the determined #' pLM curves it is recommended to use the automatic estimation routine for #' `P`, i.e. provide no own value for `P`. #' #' @param values [RLum.Data.Curve-class] or [data.frame] (**required**): #' [RLum.Data.Curve-class] or `data.frame` with measured curve data of type #' stimulation time (t) (`values[,1]`) and measured counts (cts) (`values[,2]`) #' #' @param P [vector] (*optional*): #' stimulation time in seconds. If no value is given the optimal value is #' estimated automatically (see details). Greater values of P produce more #' points in the rising tail of the curve. #' #' @return #' The function returns the same data type as the input data type with #' the transformed curve values. #' #' **`RLum.Data.Curve`** #' #' \tabular{rl}{ #' `$CW2pLMi.x.t` \tab: transformed time values \cr #' `$CW2pLMi.method` \tab: used method for the production of the new data points #' } #' #' @note #' According to Bos & Wallinga (2012) the number of extrapolated points #' should be limited to avoid artificial intensity data. If `P` is #' provided manually and more than two points are extrapolated, a warning #' message is returned. #' #' @section Function version: 0.3.2 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' Based on comments and suggestions from:\cr #' Adrie J.J. Bos, Delft University of Technology, The Netherlands #' #' @seealso [convert_CW2pLM], [convert_CW2pHMi], [convert_CW2pPMi], #' [fit_LMCurve], [RLum.Data.Curve-class] #' #' @references #' Bos, A.J.J. & Wallinga, J., 2012. How to visualize quartz OSL #' signal components. Radiation Measurements, 47, 752-758. #' #' **Further Reading** #' #' Bulur, E., 1996. An Alternative Technique For #' Optically Stimulated Luminescence (OSL) Experiment. Radiation Measurements, #' 26, 701-709. #' #' Bulur, E., 2000. A simple transformation for converting CW-OSL curves to #' LM-OSL curves. Radiation Measurements, 32, 141-145. #' #' @keywords manip #' #' @examples #' #' ##(1) #' ##load CW-OSL curve data #' data(ExampleData.CW_OSL_Curve, envir = environment()) #' #' ##transform values #' values.transformed <- convert_CW2pLMi(ExampleData.CW_OSL_Curve) #' #' ##plot #' plot(values.transformed$x, values.transformed$y.t, log = "x") #' #' ##(2) - produce Fig. 4 from Bos & Wallinga (2012) #' ##load data #' data(ExampleData.CW_OSL_Curve, envir = environment()) #' values <- CW_Curve.BosWallinga2012 #' #' ##open plot area #' plot(NA, NA, #' xlim = c(0.001,10), #' ylim = c(0,8000), #' ylab = "pseudo OSL (cts/0.01 s)", #' xlab = "t [s]", #' log = "x", #' main = "Fig. 4 - Bos & Wallinga (2012)") #' #' #' values.t <- convert_CW2pLMi(values, P = 1/20) #' lines(values[1:length(values.t[, 1]), 1], values.t[, 2], #' col = "red", lwd = 1.3) #' text(0.03,4500,"LM", col = "red", cex = .8) #' #' values.t <- convert_CW2pHMi(values, delta = 40) #' lines(values[1:length(values.t[, 1]), 1], values.t[, 2], #' col = "black", lwd = 1.3) #' text(0.005,3000,"HM", cex =.8) #' #' values.t <- convert_CW2pPMi(values, P = 1/10) #' lines(values[1:length(values.t[, 1]), 1], values.t[, 2], #' col = "blue", lwd = 1.3) #' text(0.5,6500,"PM", col = "blue", cex = .8) #' #' @md #' @export convert_CW2pLMi<- function( values, P ) { .set_function_name("convert_CW2pLMi") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- ##(1) data.frame or RLum.Data.Curve object? .validate_class(values, c("data.frame", "RLum.Data.Curve")) .validate_not_empty(values) ##(2) if the input object is an 'RLum.Data.Curve' object check for allowed curves if (inherits(values, "RLum.Data.Curve")) { if(!grepl("OSL", values@recordType) & !grepl("IRSL", values@recordType)){ .throw_error("recordType ", values@recordType, " is not allowed for the transformation") } temp.values <- as(values, "data.frame") }else{ temp.values <- values } # (1) Transform values ------------------------------------------------------------------------ ##(a) log transformation of the CW-OSL count values CW_OSL.log<-log(temp.values[,2]) ##(b) time transformation t >> t' t<-temp.values[,1] ##set P ##if no values for P is set selected a P value for a maximum of ##two extrapolation points if(missing(P)==TRUE){ i<-10 P<-1/i t.transformed<-0.5*1/P*t^2 while(length(t.transformed[t.transformed2){ P<-1/i t.transformed<-0.5*1/P*t^2 i<-i+10 }#end::while }else{ if (P == 0) { .throw_error("P has to be > 0") } t.transformed<-0.5*1/P*t^2 } #endif # (2) Interpolation --------------------------------------------------------------------------- ##interpolate values, values beyond the range return NA values CW_OSL.interpolated<-approx(t,CW_OSL.log, xout=t.transformed, rule=1 ) ##combine t.transformed and CW_OSL.interpolated in a data.frame temp<-data.frame(x=t.transformed, y=unlist(CW_OSL.interpolated$y)) ##Problem: I rare cases the interpolation is not working properely and Inf or NaN values are returned ##Fetch row number of the invalid values invalid_values.id<-c(which(is.infinite(temp[,2]) | is.nan(temp[,2]))) ##interpolate between the lower and the upper value invalid_values.interpolated<-sapply(1:length(invalid_values.id), function(x) { mean(c(temp[invalid_values.id[x]-1,2],temp[invalid_values.id[x]+1,2])) } ) ##replace invalid values in data.frame with newly interpolated values if(length(invalid_values.id)>0){ temp[invalid_values.id,2]<-invalid_values.interpolated } # (3) Extrapolate first values of the curve --------------------------------------------------- ##(a) - find index of first rows which contain NA values (needed for extrapolation) temp.sel.id<-min(which(is.na(temp[,2])==FALSE)) ##(b) - fit linear function fit.lm <- stats::lm(y ~ x, data.frame(x = t[1:2], y = CW_OSL.log[1:2])) ##select values to extrapolate and predict (extrapolate) values based on the fitted function x.i<-data.frame(x=temp[1:(min(temp.sel.id)-1),1]) y.i<-predict(fit.lm,x.i) ##replace NA values by extrapolated values temp[1:length(y.i),2]<-y.i ##set method values temp.method<-c(rep("extrapolation",length(y.i)),rep("interpolation",(length(temp[,2])-length(y.i)))) ##print a warning message for more than two extrapolation points if (length(y.i) > 2) { .throw_warning("t' is beyond the time resolution and more than two ", "data points have been extrapolated")} # (4) Convert, transform and combine values --------------------------------------------------- ##unlog CW-OSL count values, i.e. log(CW) >> CW CW_OSL<-exp(temp$y) ##transform CW-OSL values to pLM-OSL values pLM<-1/P*t*CW_OSL ##combine all values and exclude NA values temp.values <- data.frame(x=t,y.t=pLM,x.t=t.transformed, method=temp.method) temp.values <- na.exclude(temp.values) # (5) Return values --------------------------------------------------------------------------- ##returns the same data type as the input if(is(values, "data.frame") == TRUE){ values <- temp.values return(values) }else{ ##add old info elements to new info elements temp.info <- c(values@info, CW2pLMi.x.t = list(temp.values$x.t), CW2pLMi.method = list(temp.values$method)) newRLumDataCurves.CW2pLMi <- set_RLum( class = "RLum.Data.Curve", recordType = values@recordType, data = as.matrix(temp.values[,1:2]), info = temp.info) return(newRLumDataCurves.CW2pLMi) } } #' @rdname convert_CW2pLMi #' @export CW2pLMi <- function(values, P) { .Deprecated("convert_CW2pLMi") convert_CW2pLMi(values, P) } Luminescence/R/analyse_IRSAR.RF.R0000644000176200001440000022655614762554470016150 0ustar liggesusers#' @title Analyse IRSAR RF measurements #' #' @description Function to analyse IRSAR RF measurements on K-feldspar samples, performed #' using the protocol according to Erfurt et al. (2003) and beyond. #' #' @details The function performs an IRSAR analysis described for K-feldspar samples by #' Erfurt et al. (2003) assuming a negligible sensitivity change of the RF #' signal. #' #' **General Sequence Structure** (according to Erfurt et al., 2003) #' #' #' 1. Measuring IR-RF intensity of the natural dose for a few seconds (\eqn{RF_{nat}}) #' 2. Bleach the samples under solar conditions for at least 30 min without changing the geometry #' 3. Waiting for at least one hour #' 4. Regeneration of the IR-RF signal to at least the natural level (measuring (\eqn{RF_{reg}}) #' 5. Fitting data with a stretched exponential function #' 6. Calculate the palaeodose \eqn{D_{e}} using the parameters from the fitting #' #' #' Actually three methods are supported to obtain the \eqn{D_{e}}: #' `method = "FIT"`, `method = "SLIDE"` and `method = "VSLIDE"`: #' #' **`method = "FIT"`** #' #' The principle is described above and follows the original suggestions by #' Erfurt et al., 2003. For the fitting the mean count value of the `RF_nat` curve is used. #' #' Function used for the fitting (according to Erfurt et al. (2003)): #' #' \deqn{\phi(D) = \phi_{0}-\Delta\phi(1-exp(-\lambda*D))^\beta} #' #' with #' \eqn{\phi(D)} the dose dependent IR-RF flux, #' \eqn{\phi_{0}} the initial IR-RF flux, #' \eqn{\Delta\phi} the dose dependent change of the IR-RF flux, #' \eqn{\lambda} the exponential parameter, \eqn{D} the dose and #' \eqn{\beta} the dispersive factor. #' #' To obtain the palaeodose #' \eqn{D_{e}} the function is changed to: #' #' \deqn{D_{e} = ln(-(\phi(D) - \phi_{0})/(-\lambda*\phi)^{1/\beta}+1)/-\lambda} #' #' The fitting is done using the `port` algorithm of the [nls] function. #' #' #' **`method = "SLIDE"`** #' #' For this method, the natural curve is slid along the x-axis until #' congruence with the regenerated curve is reached. As opposed to fitting, this #' allows working with the original data without the need for any physical #' model. This approach was introduced for RF curves by Buylaert et al., 2012 #' and Lapp et al., 2012. #' #' Here the sliding is done by searching for the minimum of the sum of #' squared residuals. #' For the mathematical details of the implementation see Frouin et al., 2017 #' #' **`method = "VSLIDE"`** #' #' Same as `"SLIDE"` but searching also vertically for the best match (i.e. in xy-direction.) #' See Kreutzer et al. (2017) and Murari et al. (2021). By default the vertical sliding #' range is set automatically, but can be set manually by changing the #' `vslide_range` parameter (see `method_control`). #' #' **`method_control`** #' #' To keep the generic argument list as clear as possible, parameters to control #' the methods for De estimation are preset with meaningful default values, #' which can however be modified using the `method_control` argument, e.g., #' `method_control = list(trace = TRUE)`. Supported parameters are: #' #' \tabular{lll}{ #' **PARAMETER** \tab **METHOD** \tab **DESCRIPTION**\cr #' `trace` \tab `FIT`, `SLIDE` or `VSLIDE` \tab as in [nls]; shows sum of squared residuals\cr #' `trace_vslide` \tab `SLIDE` or `VSLIDE` \tab [logical] argument to enable or disable the tracing of the vertical sliding\cr #' `maxiter` \tab `FIT` \tab as in [nls]\cr #' `warnOnly` \tab `FIT` \tab as in [nls]\cr #' `minFactor` \tab `FIT` \tab as in [nls]\cr #' `correct_onset` \tab `SLIDE` or `VSLIDE` \tab The logical argument shifts the curves along the x-axis by the first channel, #' as light is expected in the first channel. The default value is `TRUE`.\cr #' `show_density` \tab `SLIDE` or `VSLIDE` \tab [logical] (*with default*) #' enable/disable KDE plots for MC run results. If the distribution is too narrow nothing is shown.\cr #' `show_fit` \tab `SLIDE` or `VSLIDE` \tab [logical] (*with default*) #' enable/disable the plot of the fitted curve routinely obtained during the evaluation.\cr #' `n.MC` \tab `SLIDE` or `VSLIDE` \tab [integer] (*with default*): #' This controls the number of MC runs within the sliding (assessing the possible minimum values). #' The default `n.MC = 1000`. Note: This parameter is not the same as controlled by the #' function argument `n.MC`. \cr #' `vslide_range` \tab `SLIDE` or `VSLIDE` \tab [logical] or [numeric] or [character] (*with default*): #' This argument sets the boundaries for a vertical curve #' sliding. The argument expects a vector with an absolute minimum and a maximum (e.g., `c(-1000,1000)`). #' Alternatively the values `NULL` and `'auto'` are allowed. The automatic mode detects the #' reasonable vertical sliding range (**recommended**). `NULL` applies no vertical sliding. #' The default is `NULL`.\cr #' `num_slide_windows` \tab `SLIDE` or `VSLIDE` \tab [integer] (*with default*): #' This argument controls how many differently-sized windows are tested when #' sliding: the higher the value (up to a maximum of 10), the more time is #' spent in searching the global optimum. The default is 3, which attempts to #' strike a balance between quality of the fit and computation speed.\cr #' `cores` \tab `SLIDE` or `VSLIDE` \tab `number` or `character` (*with default*): set number of cores to be allocated #' for a parallel processing of the Monte-Carlo runs. The default value is `NULL` (single thread), #' the recommended values is `'auto'`. An optional number (e.g., `cores` = 8) assigns a value manually. #' } #' #' #' **Error estimation** #' #' For **`method = "FIT"`** the asymmetric error range is obtained by using the 2.5 % (lower) and #' the 97.5 % (upper) quantiles of the \eqn{RF_{nat}} curve for calculating the \eqn{D_{e}} error range. #' #' For **`method = "SLIDE"`** and **`method = "VSLIDE"`** the error is obtained #' by bootstrapping the residuals of the slid #' curve to construct new natural curves for a Monte Carlo simulation. The error is returned in two #' ways: (a) the standard deviation of the \eqn{D_{e}} obtained from the MC #' runs and (b) the confidence #' interval using the 2.5 % (lower) and the 97.5 % (upper) quantiles. The results of the MC runs #' are returned with the function output. #' #' **Test parameters** #' #' The argument `test_parameters` allows to pass some thresholds for several test parameters, #' which will be evaluated during the function run. If a threshold is set and #' it is exceeded, the #' test parameter status will be set to `"FAILED"`. Intentionally this parameter is not termed #' `'rejection criteria'` as not all test parameters are evaluated for both methods and some parameters #' are calculated but not evaluated by default. Common for all parameters are the allowed argument options #' `NA` and `NULL`. If the parameter is set to `NA` the value is calculated but the #' result will not be evaluated, therefore it will have no effect on the #' status (`"OK"` or `"FAILED"`) of the parameter. #' Setting the parameter to `NULL` disables the parameter entirely and the parameter will be #' also removed from the function output. This might be useful in cases where a particular parameter #' requires a long computation time. Currently supported parameters are: #' #' `curves_ratio` [numeric] (default: `1.001`): #' #' The ratio of \eqn{RF_{nat}} over \eqn{RF_{reg}} in the range of\eqn{RF_{nat}} of is calculated #' and should not exceed the threshold value. #' #' `intersection_ratio` [numeric] (default: `NA`): #' #' Calculated as absolute difference from 1 of the ratio of the integral of the normalised RF-curves, #' This value indicates intersection of the RF-curves and should be close to 0 if the curves #' have a similar shape. For this calculation first the corresponding time-count pair value on the RF_reg #' curve is obtained using the maximum count value of the `RF_nat` curve and only this segment (fitting to #' the `RF_nat` curve) on the RF_reg curve is taken for further calculating this ratio. If nothing is #' found at all, `Inf` is returned. #' #' `residuals_slope` [numeric] (default: `NA`; only for `method = "SLIDE"`): #' #' A linear function is fitted on the residuals after sliding. #' The corresponding slope can be used to discard values as a high (positive, negative) slope #' may indicate that both curves are fundamentally different and the method cannot be applied at all. #' Per default the value of this parameter is calculated but not evaluated. #' #' `curves_bounds` [numeric] (default: \eqn{max(RF_{reg_counts})}: #' #' This measure uses the maximum time (x) value of the regenerated curve. #' The maximum time (x) value of the natural curve cannot be larger than this value. However, although #' this is not recommended the value can be changed or disabled. #' #' `dynamic_ratio` [numeric] (default: `NA`): #' #' The dynamic ratio of the regenerated curve is calculated as ratio of the minimum and maximum count values. #' #' `lambda`, `beta` and `delta.phi` #' [numeric] (default: `NA`; `method = "SLIDE"`): #' #' The stretched exponential function suggested by Erfurt et al. (2003) describing the decay of #' the RF signal, comprises several parameters that might be useful to evaluate the shape of the curves. #' For `method = "FIT"` this parameter is obtained during the fitting, for `method = "SLIDE"` a #' rather rough estimation is made using the function [minpack.lm::nlsLM] and the equation #' given above. Note: As this procedure requests more computation time, setting of one of these three parameters #' to `NULL` also prevents a calculation of the remaining two. #' #' #' @param object [RLum.Analysis-class] or a [list] of [RLum.Analysis-class]-objects (**required**): #' input object containing data for protocol analysis. The function expects to #' find at least two curves in the [RLum.Analysis-class] object: (1) `RF_nat`, (2) `RF_reg`. #' If a `list` is provided as input all other parameters can be provided as #' `list` as well to gain full control. #' #' @param sequence_structure [vector] [character] (*with default*): #' specifies the general sequence structure. Allowed steps are `NATURAL` and #' `REGENERATED`, and one of each must appear. #' In addition any other character is allowed in the sequence structure; #' such curves will be ignored during the analysis. #' #' @param RF_nat.lim [vector] (*with default*): #' set minimum and maximum channel range for natural signal fitting and sliding. #' If only one value is provided this will be treated as minimum value and the #' maximum limit will be added automatically. #' #' @param RF_reg.lim [vector] (*with default*): #' set minimum and maximum channel range for regenerated signal fitting and sliding. #' If only one value is provided this will be treated as minimum value and the #' maximum limit will be added automatically. #' #' @param method [character] (*with default*): select method applied for the #' data analysis. Possible options are `"FIT"`, `"SLIDE"`, `"VSLIDE"`; #' `"NONE"` can be used to disable the analysis and plot the natural points #' at their original position. #' #' @param method_control [list] (*optional*): #' parameters to control the method, that can be passed to the chosen method. #' These are for (1) `method = "FIT"`: `'trace'`, `'maxiter'`, `'warnOnly'`, `'minFactor'` and for #' (2) `method = "SLIDE"`: `'correct_onset'`, `'show_density'`, `'show_fit'`, `'trace'`. #' See details. #' #' @param test_parameters [list] (*with default*): #' set test parameters. Supported parameters are: `curves_ratio`, `residuals_slope` (only for #' `method = "SLIDE"`), `curves_bounds`, `dynamic_ratio`, #' `lambda`, `beta` and `delta.phi`. All input: [numeric] #' values, `NA` and `NULL` (see Details). #' #' (see Details for further information) #' #' @param n.MC [numeric] (*with default*): #' set number of Monte Carlo runs for start parameter estimation (`method = "FIT"`) or #' error estimation (`method = "SLIDE"`). This value can be set to `NULL` to skip the #' MC runs. Note: Large values will significantly increase the computation time #' #' @param txtProgressBar [logical] (*with default*): #' enable/disable the progress bar during MC runs. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param plot_reduced [logical] (*optional*): #' provides a reduced plot output if enabled to allow common R plot combinations, #' e.g., `par(mfrow(...))`. If `TRUE` no residual plot #' is returned; it has no effect if `plot = FALSE` #' #' @param ... further arguments that will be passed to the plot output. #' Currently supported arguments are `main`, `xlab`, `ylab`, #' `xlim`, `ylim`, `log`, `legend` (`TRUE/FALSE`), #' `legend.pos`, `legend.text` (passes argument to x,y in #' [graphics::legend]), `xaxt` #' #' #' @return #' The function returns numerical output and an (*optional*) plot. #' #' -----------------------------------\cr #' `[ NUMERICAL OUTPUT ]`\cr #' -----------------------------------\cr #' #' **`RLum.Results`**-object #' #' **slot:** **`@data`** #' #' `[.. $data : data.frame]` #' #' \tabular{lll}{ #' **Column** \tab **Type** \tab **Description**\cr #' `DE` \tab `numeric` \tab the obtained equivalent dose\cr #' `DE.ERROR` \tab `numeric` \tab (only `method = "SLIDE"`) standard deviation obtained from MC runs \cr #' `DE.LOWER` \tab `numeric`\tab 2.5% quantile for De values obtained by MC runs \cr #' `DE.UPPER` \tab `numeric`\tab 97.5% quantile for De values obtained by MC runs \cr #' `DE.STATUS` \tab `character`\tab test parameter status\cr #' `RF_NAT.LIM` \tab `character`\tab used `RF_nat` curve limits \cr #' `RF_REG.LIM` \tab `character`\tab used `RF_reg` curve limits\cr #' `POSITION` \tab `integer`\tab (*optional*) position of the curves\cr #' `DATE` \tab `character`\tab (*optional*) measurement date\cr #' `SEQUENCE_NAME` \tab `character`\tab (*optional*) sequence name\cr #' `UID` \tab `character`\tab unique data set ID #' } #' #' `[.. $De.MC : numeric]` #' #' A `numeric` vector with all the De values obtained by the MC runs. #' #' `[.. $test_parameters : data.frame]` #' #' \tabular{lll}{ #' **Column** \tab **Type** \tab **Description**\cr #' `POSITION` \tab `numeric` \tab aliquot position \cr #' `PARAMETER` \tab `character` \tab test parameter name \cr #' `THRESHOLD` \tab `numeric` \tab set test parameter threshold value \cr #' `VALUE` \tab `numeric` \tab the calculated test parameter value (to be compared with the threshold)\cr #' `STATUS` \tab `character` \tab test parameter status either `"OK"` or `"FAILED"` \cr #' `SEQUENCE_NAME` \tab `character` \tab name of the sequence, so far available \cr #' `UID` \tab `character`\tab unique data set ID #' } #' #' `[.. $fit : data.frame]` #' #' An [nls] object produced by the fitting. #' #' `[.. $slide : list]` #' #' A [list] with data produced during the sliding. Some elements are previously #' reported with the summary object data. List elements are: #' #' \tabular{lll}{ #' **Element** \tab **Type** \tab **Description**\cr #' `De` \tab `numeric` \tab the final De obtained with the sliding approach \cr #' `De.MC` \tab `numeric` \tab all De values obtained by the MC runs \cr #' `residuals` \tab `numeric` \tab the obtained residuals for each channel of the curve \cr #' `trend.fit` \tab `lm` \tab fitting results produced by the fitting of the residuals \cr #' `RF_nat.slid` \tab `matrix` \tab the slid `RF_nat` curve \cr #' `t_n.id` \tab `numeric` \tab the index of the t_n offset \cr #' `I_n` \tab `numeric` \tab the vertical intensity offset if a vertical slide was applied \cr #' `algorithm_error` \tab `numeric` \tab the vertical sliding suffers from a systematic effect induced by the used #' algorithm. The returned value is the standard deviation of all obtained De values while expanding the #' vertical sliding range. It can be added as systematic error to the final De error; so far wanted.\cr #' `vslide_range` \tab `numeric` \tab the range used for the vertical sliding \cr #' `num_slide_windows` \tab `integer` \tab the number of windows used for the vertical sliding \cr #' `squared_residuals` \tab `numeric` \tab the squared residuals (horizontal sliding) #' } #' #' #' **slot:** **`@info`** #' #' The original function call ([methods::language-class]-object) #' #' The output (`data`) should be accessed using the function [get_RLum]. #' #' ------------------------\cr #' `[ PLOT OUTPUT ]`\cr #' ------------------------\cr #' #' The slid IR-RF curves with the finally obtained De #' #' @note #' This function assumes that there is no sensitivity change during the #' measurements (natural vs. regenerated signal), which is in contrast to the #' findings by Buylaert et al. (2012). #' #' @section Function version: 0.7.10 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Analysis-class], [RLum.Results-class], [get_RLum], #' [nls], [minpack.lm::nlsLM], `parallel::mclapply` #' #' #' @references #' Buylaert, J.P., Jain, M., Murray, A.S., Thomsen, K.J., Lapp, T., #' 2012. IR-RF dating of sand-sized K-feldspar extracts: A test of accuracy. #' Radiation Measurements 44 (5-6), 560-565. doi: 10.1016/j.radmeas.2012.06.021 #' #' Erfurt, G., Krbetschek, M.R., 2003. IRSAR - A single-aliquot #' regenerative-dose dating protocol applied to the infrared radiofluorescence #' (IR-RF) of coarse- grain K-feldspar. Ancient TL 21, 35-42. #' #' Erfurt, G., 2003. Infrared luminescence of Pb+ centres in potassium-rich #' feldspars. physica status solidi (a) 200, 429-438. #' #' Erfurt, G., Krbetschek, M.R., 2003. Studies on the physics of the infrared #' radioluminescence of potassium feldspar and on the methodology of its #' application to sediment dating. Radiation Measurements 37, 505-510. #' #' Erfurt, G., Krbetschek, M.R., Bortolot, V.J., Preusser, F., 2003. A fully #' automated multi-spectral radioluminescence reading system for geochronometry #' and dosimetry. Nuclear Instruments and Methods in Physics Research Section #' B: Beam Interactions with Materials and Atoms 207, 487-499. #' #' Frouin, M., Huot, S., Kreutzer, S., Lahaye, C., Lamothe, M., Philippe, A., Mercier, N., 2017. #' An improved radiofluorescence single-aliquot regenerative dose protocol for K-feldspars. #' Quaternary Geochronology 38, 13-24. doi:10.1016/j.quageo.2016.11.004 #' #' Kreutzer, S., Murari, M.K., Frouin, M., Fuchs, M., Mercier, N., 2017. #' Always remain suspicious: a case study on tracking down a technical artefact while measuring IR-RF. #' Ancient TL 35, 20–30. #' #' Murari, M.K., Kreutzer, S., Fuchs, M., 2018. Further investigations on IR-RF: #' Dose recovery and correction. Radiation Measurements 120, 110–119. #' doi: 10.1016/j.radmeas.2018.04.017 #' #' Lapp, T., Jain, M., Thomsen, K.J., Murray, A.S., Buylaert, J.P., 2012. New #' luminescence measurement facilities in retrospective dosimetry. Radiation #' Measurements 47, 803-808. doi:10.1016/j.radmeas.2012.02.006 #' #' Trautmann, T., 2000. A study of radioluminescence kinetics of natural #' feldspar dosimeters: experiments and simulations. Journal of Physics D: #' Applied Physics 33, 2304-2310. #' #' Trautmann, T., Krbetschek, M.R., Dietrich, A., Stolz, W., 1998. #' Investigations of feldspar radioluminescence: potential for a new dating #' technique. Radiation Measurements 29, 421-425. #' #' Trautmann, T., Krbetschek, M.R., Dietrich, A., Stolz, W., 1999. Feldspar #' radioluminescence: a new dating method and its physical background. Journal #' of Luminescence 85, 45-58. #' #' Trautmann, T., Krbetschek, M.R., Stolz, W., 2000. A systematic study of the #' radioluminescence properties of single feldspar grains. Radiation #' Measurements 32, 685-690. #' #' ** Further reading** #' #' Murari, M.K., Kreutzer, S., King, G.E., Frouin, M., Tsukamoto, S., Schmidt, C., Lauer, T., #' Klasen, N., Richter, D., Friedrich, J., Mercier, N., Fuchs, M., 2021. #' Infrared radiofluorescence (IR-RF) dating: A review. Quaternary Geochronology 64, #' 101155. doi: 10.1016/j.quageo.2021.101155 #' #' @keywords datagen #' #' @examples #' #' ##load data #' data(ExampleData.RLum.Analysis, envir = environment()) #' #' ##(1) perform analysis using the method 'FIT' #' results <- analyse_IRSAR.RF(object = IRSAR.RF.Data) #' #' ##show De results and test paramter results #' get_RLum(results, data.object = "data") #' get_RLum(results, data.object = "test_parameters") #' #' ##(2) perform analysis using the method 'SLIDE' #' results <- analyse_IRSAR.RF(object = IRSAR.RF.Data, method = "SLIDE", n.MC = 1) #' #' \dontrun{ #' ##(3) perform analysis using the method 'SLIDE' and method control option #' ## 'trace #' results <- analyse_IRSAR.RF( #' object = IRSAR.RF.Data, #' method = "SLIDE", #' method_control = list(trace = TRUE)) #' } #' #' @md #' @export analyse_IRSAR.RF<- function( object, sequence_structure = c("NATURAL", "REGENERATED"), RF_nat.lim = NULL, RF_reg.lim = NULL, method = "FIT", method_control = NULL, test_parameters = NULL, n.MC = 10, txtProgressBar = TRUE, plot = TRUE, plot_reduced = FALSE, ... ) { .set_function_name("analyse_IRSAR.RF") on.exit(.unset_function_name(), add = TRUE) ##TODO ## - if a file path is given, the function should try to find out whether an XSYG-file or ## a BIN-file is provided ## - add NEWS for vslide_range ## - update documentary ... if it works as expected. # SELF CALL ----------------------------------------------------------------------------------- if(is.list(object)){ ## expand input arguments rep.length <- length(object) sequence_structure <- .listify(sequence_structure, rep.length) RF_nat.lim <- .listify(RF_nat.lim, rep.length) RF_reg.lim <- .listify(RF_reg.lim, rep.length) method <- .listify(method, rep.length) n.MC <- .listify(n.MC, rep.length) ##test_parameters if(is(test_parameters[[1]], "list")){ test_parameters <- rep(test_parameters, rep.length) }else{ test_parameters <- rep(list(test_parameters), rep.length) } ##main if("main"%in% names(list(...))){ temp_main <- .listify(list(...)$main, rep.length) }else{ originator <- if (length(object) > 0) object[[1]]@originator else NA if (!is.na(originator) && originator == "read_RF2R") { temp_main <- lapply(object, function(x) x@info$ROI) } else { temp_main <- as.list(paste0("ALQ #",1:length(object))) } } ##run analysis temp <- lapply(seq_along(object), function(x) { analyse_IRSAR.RF( object = object[[x]], sequence_structure = sequence_structure[[x]], RF_nat.lim = RF_nat.lim[[x]], RF_reg.lim = RF_reg.lim[[x]], method = method[[x]], method_control = method_control, test_parameters = test_parameters[[x]], n.MC = n.MC[[x]], txtProgressBar = txtProgressBar, plot = plot, plot_reduced = plot_reduced, main = temp_main[[x]], ...) }) ##combine everything to one RLum.Results object as this as what was written ... only ##one object ##merge results and check if the output became NULL results <- merge_RLum(temp) ##DO NOT use invisible here, this will stop the function from stopping if(length(results) == 0){ return(NULL) }else{ return(results) } } ## Integrity checks ------------------------------------------------------- .validate_class(object, "RLum.Analysis") .validate_class(sequence_structure, "character") .validate_not_empty(object) if (length(sequence_structure) < 2) { .throw_error("'sequence_structure' should contain at least two elements") } if (!all(c("NATURAL", "REGENERATED") %in% sequence_structure)) { .throw_error("'sequence_structure' must contain one each of 'NATURAL' ", "and 'REGENERATED'") } if (!is.null(RF_nat.lim)) .validate_class(RF_nat.lim, c("numeric", "integer")) if (!is.null(RF_reg.lim)) .validate_class(RF_reg.lim, c("numeric", "integer")) method <- .validate_args(toupper(method), c("FIT", "SLIDE", "VSLIDE", "NONE")) .validate_positive_scalar(n.MC, int = TRUE, null.ok = TRUE) ##SELECT ONLY MEASURED CURVES ## (this is not really necessary but rather user friendly) if(!length(suppressWarnings(get_RLum(object, curveType= "measured"))) == 0){ object <- get_RLum(object, curveType= "measured", drop = FALSE) } ##INVESTIGATE SEQUENCE OBJECT STRUCTURE ##grep object structure temp.sequence_structure <- structure_RLum(object) ##check whether both curve have the same length, in this case we cannot proceed (sliding ##is not allowed) if(length(unique(temp.sequence_structure[["x.max"]])) == 1 && grepl("SLIDE", method) && (is.null(RF_nat.lim) & is.null(RF_reg.lim))) { .throw_error("There is no further sliding space left. All curves have ", "the same length and no limitation was set") } ##grep name of the sequence and the position this will be useful later on ##name record1 <- get_RLum(object, record.id = 1) aliquot.sequence_name <- suppressWarnings(get_RLum(record1, info.object = "name")) if (is.null(aliquot.sequence_name)) { aliquot.sequence_name <- NA } ##position aliquot.position <- suppressWarnings(get_RLum(record1, info.object = "position")) if (is.null(aliquot.position)) { aliquot.position <- NA } ##date aliquot.date <- suppressWarnings(get_RLum(record1, info.object = "startDate")) if (!is.null(aliquot.date)) { ##transform so far the format can be identified if (nchar(aliquot.date) == 14) { aliquot.date <- paste(c(substr(aliquot.date, 1, 4), substr(aliquot.date, 5, 6), substr(aliquot.date, 7, 8)), collapse = "-") } }else{ aliquot.date <- NA } ##set structure values temp.sequence_structure$protocol.step <- rep(sequence_structure, length_RLum(object))[1:length_RLum(object)] ## check that we both natural and regenerated are still there nat.idx <- which(temp.sequence_structure$protocol.step == "NATURAL") reg.idx <- which(temp.sequence_structure$protocol.step == "REGENERATED") if (length(nat.idx) == 0 || length(reg.idx) == 0) { .throw_error("'sequence_structure' is missing one of 'NATURAL' or ", "'REGENERATED'") } ##check if the first curve is shorter than the first curve num.channels.nat <- temp.sequence_structure$n.channels[nat.idx] num.channels.reg <- temp.sequence_structure$n.channels[reg.idx] if (num.channels.nat > num.channels.reg) { .throw_error("Number of data channels in RF_nat > RF_reg is not supported") } ##===============================================================================================# ## SET CURVE LIMITS ##===============================================================================================# ##the setting here will be valid for all subsequent operations ##01 ## get the allowed curve limits RF_nat.lim.default <- c(1, max(num.channels.nat)) RF_reg.lim.default <- c(1, max(num.channels.reg)) ## 02 - check boundaries ##RF_nat.lim if (is.null(RF_nat.lim) || anyNA(RF_nat.lim)) { RF_nat.lim <- RF_nat.lim.default }else { ##this allows to provide only one boundary and the 2nd will be added automatically if (length(RF_nat.lim) == 1) { RF_nat.lim <- c(RF_nat.lim, RF_nat.lim.default[2]) } if (min(RF_nat.lim) < RF_nat.lim.default[1] | max(RF_nat.lim) > RF_nat.lim.default[2]) { RF_nat.lim <- RF_nat.lim.default .throw_warning("'RF_nat.lim' out of bounds, reset to c(", paste(range(RF_nat.lim), collapse = ":"),")") } } ##RF_reg.lim ## if (is.null(RF_reg.lim)) { RF_reg.lim <- RF_reg.lim.default }else { ##this allows to provide only one boundary and the 2nd will be added automatically if (length(RF_reg.lim) == 1) { RF_reg.lim <- c(RF_reg.lim, RF_reg.lim.default[2]) } if (min(RF_reg.lim) < RF_reg.lim.default[1] | max(RF_reg.lim) > RF_reg.lim.default[2]) { RF_reg.lim <- RF_reg.lim.default .throw_warning("'RF_reg.lim' out of bounds, reset to c(", paste(range(RF_reg.lim), collapse = ":"), ")") } } ## check if intervals make sense at all len.RF_reg.lim <- length(RF_reg.lim[1]:RF_reg.lim[2]) if (len.RF_reg.lim < RF_nat.lim[2]) { RF_reg.lim[2] <- RF_reg.lim[2] + abs(len.RF_reg.lim - RF_nat.lim[2]) + 1 ## check that now we haven't gone beyond the size of RF_reg.lim if (RF_reg.lim[2] > RF_reg.lim.default[2]) { .throw_error("'RF_reg.lim' defines too short an interval and it's not ", "possible to extend it") } .throw_warning("'RF_reg.lim' defines too short an interval, reset to c(", paste(range(RF_reg.lim), collapse=":"), ")") } ## check again that we can actually slide the curve if (diff(RF_nat.lim) == diff(RF_reg.lim)) { .throw_error("No sliding space left after limitations were applied") } # Method Control Settings --------------------------------------------------------------------- ##===============================================================================================# ## SET METHOD CONTROL PARAMETER - FOR BOTH METHODS ##===============================================================================================# ## ##set supported values with default method_control.settings <- list( trace = FALSE, trace_vslide = FALSE, maxiter = 500, warnOnly = FALSE, minFactor = 1 / 4096, correct_onset = TRUE, show_density = TRUE, show_fit = FALSE, n.MC = if(is.null(n.MC)) NULL else 1000, vslide_range = if(method[1] == "VSLIDE") "auto" else NULL, num_slide_windows = 3, cores = NULL ) ## deprecated argument if ("method.control" %in% names(list(...))) { method_control <- list(...)$method.control .throw_warning("'method.control' is deprecated, use ", "'method_control' instead") } ##modify list if necessary if (!is.null(method_control)) { .validate_class(method_control, "list") ##check whether this arguments are supported at all unsupported.idx <- which(!names(method_control) %in% names(method_control.settings)) if (length(unsupported.idx) > 0) { .throw_warning("'", paste(names(method_control)[unsupported.idx], collapse = ", "), "' not supported for 'method_control'. Supported arguments are: ", .collapse(names(method_control.settings))) } ## check for odd user input temp.vslide_range <- method_control$vslide_range if (length(temp.vslide_range) > 0) { .validate_class(temp.vslide_range, c("character", "integer", "numeric"), name = "'vslide_range' in 'method_control'") } if (is.character(temp.vslide_range) && temp.vslide_range[1] != "auto") { .throw_error("'vslide_range' in 'method_control' should be either ", "'auto' or a 2-element numeric vector") } if (length(temp.vslide_range) > 2) { method_control$vslide_range <- method_control$vslide_range[1:2] .throw_warning("'vslide_range' in 'method_control' has more ", "than 2 elements, only the first two were used") } temp.num_slide_windows <- method_control$num_slide_windows if (length(temp.num_slide_windows) > 0) { .validate_positive_scalar(temp.num_slide_windows, int = TRUE, name = "'num_slide_windows' in 'method_control'") if (temp.num_slide_windows > 10) { method_control$num_slide_windows <- 10 .throw_warning("'num_slide_windows' in 'method_control' should be ", "between 1 and 10, reset to 10 ") } } ##modify list method_control.settings <- modifyList( x = method_control.settings, val = method_control, keep.null = TRUE) } ##===============================================================================================# ## SET PLOT PARAMETERS ##===============================================================================================# ##get channel resolution (should be equal for all curves, but if not the mean is taken) resolution.RF <- round(mean((temp.sequence_structure$x.max/temp.sequence_structure$n.channels)),digits=1) plot.settings <- list( main = "IR-RF", xlab = "Time [s]", ylab = paste0("IR-RF [cts/", resolution.RF," s]"), log = "", cex = 1, legend = TRUE, legend.text = c("RF_nat","RF_reg"), legend.pos = "top", xaxt = "s" ##xlim and ylim see below as they has to be modified differently ) ##modify list if something was set plot.settings <- modifyList(plot.settings, list(...)) ##=============================================================================# ## ANALYSIS ##=============================================================================# ##grep first regenerated curve RF_reg <- as.data.frame(object@records[[ temp.sequence_structure[temp.sequence_structure$protocol.step=="REGENERATED","id"]]]@data) ##correct of the onset of detection by using the first time value if (grepl("SLIDE", method) && method_control.settings$correct_onset == TRUE) { RF_reg[,1] <- RF_reg[,1] - RF_reg[1,1] } RF_reg.x <- RF_reg[RF_reg.lim[1]:RF_reg.lim[2],1] RF_reg.y <- RF_reg[RF_reg.lim[1]:RF_reg.lim[2],2] ##grep values from natural signal RF_nat <- as.data.frame(object@records[[ temp.sequence_structure[temp.sequence_structure$protocol.step=="NATURAL","id"]]]@data) ## correct the onset of detection by using the first time value if (grepl("SLIDE", method) && method_control.settings$correct_onset == TRUE) { RF_nat[,1] <- RF_nat[,1] - RF_nat[1,1] } ##limit values to fit range (at least to the minimum) RF_nat.limited<- RF_nat[min(RF_nat.lim):max(RF_nat.lim),] ##calculate some useful parameters RF_nat.mean <- mean(RF_nat.limited[,2]) RF_nat.sd <- sd(RF_nat.limited[,2]) RF_nat.error.lower <- quantile(RF_nat.limited[,2], 0.975, na.rm = TRUE) RF_nat.error.upper <- quantile(RF_nat.limited[,2], 0.025, na.rm = TRUE) ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# ##METHOD FIT ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# ## REGENERATED SIGNAL # set function for fitting ------------------------------------------------ fit.function <- y ~ phi.0 - (delta.phi * ((1 - exp( -lambda * x )) ^ beta)) ## stretched exponential function according to Erfurt et al. (2003) ## + phi.0 >> initial IR-RF flux ## + delta.phi >> dose dependent change of the IR-RF flux ## + lambda >> exponential parameter ## + beta >> dispersive factor # set start parameter estimation ------------------------------------------ fit.parameters.start <- c( phi.0 = max(RF_reg.y), lambda = 0.0001, beta = 1, delta.phi = 1.5 * (max(RF_reg.y) - min(RF_reg.y)) ) if(method == "FIT"){ # start nls fitting ------------------------------------------------------- ##Monte Carlo approach for fitting fit.parameters.results.MC.results <- data.frame() ##produce set of start paramters phi.0.MC <- rep(fit.parameters.start["phi.0"], n.MC) lambda.MC <- seq(0.0001, 0.001, by=(0.001-0.0001)/n.MC) beta.MC <- rep(fit.parameters.start["beta"], n.MC) delta.phi.MC <- rep(fit.parameters.start["delta.phi"], n.MC) ##start fitting loop for MC runs for(i in 1:n.MC){ fit.MC <- try(nls( fit.function, trace = FALSE, data = list(x = RF_reg.x, y = RF_reg.y), algorithm = "port", start = list( phi.0 = phi.0.MC[i], delta.phi = delta.phi.MC[i], lambda = lambda.MC[i], beta = beta.MC[i] ), stats::nls.control( maxiter = 100, warnOnly = FALSE, minFactor = 1 / 1024 ), lower = c( phi.0 = .Machine$double.xmin, delta.phi = .Machine$double.xmin, lambda = .Machine$double.xmin, beta = .Machine$double.xmin ), upper = c( phi.0 = max(RF_reg.y), delta.phi = max(RF_reg.y), lambda = 1, beta = 100 ) ), silent = TRUE ) if(inherits(fit.MC,"try-error") == FALSE) { temp.fit.parameters.results.MC.results <- coef(fit.MC) fit.parameters.results.MC.results[i,"phi.0"] <- temp.fit.parameters.results.MC.results["phi.0"] fit.parameters.results.MC.results[i,"lambda"] <- temp.fit.parameters.results.MC.results["lambda"] fit.parameters.results.MC.results[i,"delta.phi"] <- temp.fit.parameters.results.MC.results["delta.phi"] fit.parameters.results.MC.results[i,"beta"] <- temp.fit.parameters.results.MC.results["beta"] } } ##FINAL fitting after successful MC if (length(stats::na.omit(fit.parameters.results.MC.results)) != 0) { ##choose median as final fit version fit.parameters.results.MC.results <- sapply(stats::na.omit(fit.parameters.results.MC.results), median) ##try final fitting fit <- try(nls( fit.function, trace = method_control.settings$trace, data = data.frame(x = RF_reg.x, y = RF_reg.y), algorithm = "port", start = list( phi.0 = fit.parameters.results.MC.results["phi.0"], delta.phi = fit.parameters.results.MC.results["delta.phi"], lambda = fit.parameters.results.MC.results["lambda"], beta = fit.parameters.results.MC.results["beta"] ), stats::nls.control( maxiter = method_control.settings$maxiter, warnOnly = method_control.settings$warnOnly, minFactor = method_control.settings$minFactor ), lower = c( phi.0 = .Machine$double.xmin, delta.phi = .Machine$double.xmin, lambda = .Machine$double.xmin, beta = .Machine$double.xmin ), upper = c( phi.0 = max(RF_reg.y), delta.phi = max(RF_reg.y), lambda = 1, beta = 100 ) ), silent = FALSE ) }else{ fit <- NA class(fit) <- "try-error" } # get parameters ---------------------------------------------------------- # and with that the final De fit.parameters.results <- NA if (!inherits(fit,"try-error")) { fit.parameters.results <- coef(fit) } ##calculate De value De <- NA De.error <- NA De.lower <- NA De.upper <- NA if (!is.na(fit.parameters.results[1])) { De <- suppressWarnings(round(log( -((RF_nat.mean - fit.parameters.results["phi.0"]) / -fit.parameters.results["delta.phi"] ) ^ (1 / fit.parameters.results["beta"]) + 1 ) / -fit.parameters.results["lambda"], digits = 2)) ##This could be solved with a MC simulation, but for this the code has to be adjusted ##The question is: Where the parameters are coming from? ##TODO De.error <- NA De.lower <- suppressWarnings(round(log( -((RF_nat.error.lower - fit.parameters.results["phi.0"]) / -fit.parameters.results["delta.phi"] ) ^ (1 / fit.parameters.results["beta"]) + 1 ) / -fit.parameters.results["lambda"],digits = 2)) De.upper <- suppressWarnings(round(log( -((RF_nat.error.upper - fit.parameters.results["phi.0"]) / -fit.parameters.results["delta.phi"] ) ^ (1 / fit.parameters.results["beta"]) + 1 ) / -fit.parameters.results["lambda"],digits = 2)) } } ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# ##METHOD SLIDE - ANALYSIS ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# else if(method == "SLIDE" || method == "VSLIDE"){ ##convert to matrix (in fact above the matrix data were first transferred to ##data.frames ... here ##we correct this ... again) RF_nat.limited <- as.matrix(RF_nat.limited) RF_reg.limited <- matrix(c(RF_reg.x, RF_reg.y), ncol = 2) RF_nat <- as.matrix(RF_nat) ##DEFINE FUNCTION FOR SLIDING ##FIND MINIMUM - this is done in a function so that it can be further used for MC simulations # sliding() ----------------------------------------------------------------------------------- sliding <- function(RF_nat, RF_nat.limited, RF_reg.limited, n.MC = method_control.settings$n.MC, vslide_range = method_control.settings$vslide_range, num_slide_windows = method_control.settings$num_slide_windows, trace = method_control.settings$trace_vslide, numerical.only = FALSE){ ##(0) set objects ... nomenclature as used in Frouin et al., please note that here the index ##is used instead the real time values t_max.id <- nrow(RF_reg.limited) t_max_nat.id <- nrow(RF_nat.limited) t_min.id <- 1 t_min <- RF_nat.limited[1,1] ##(1) calculate sum of residual squares using internal Rcpp function ##initialise slide range for specific conditions, namely NULL and "auto" if (is.null(vslide_range)) { vslide_range <- 0 } else if (vslide_range[1] == "auto") { range <- max(RF_reg.limited[, 2]) - min(RF_reg.limited[, 2]) vslide_range <- -range:range algorithm_error <- NA } else{ vslide_range <- vslide_range[1]:vslide_range[2] algorithm_error <- NULL } ##problem: the optimisation routine slightly depends on the chosen input sliding vector ##and it might get trapped in a local minimum ##therefore we run the algorithm by expanding the sliding vector if(!is.null(vslide_range) && any(vslide_range != 0)){ ##construct list of vector ranges we want to check for, this should avoid that we ##got trapped in a local minimum mid.idx <- floor((length(vslide_range) + 1) / 2) steps <- as.integer(seq(min(t_max_nat.id / 2, mid.idx / 16), mid.idx, length.out = num_slide_windows)) vslide_range.list <- lapply(steps, function(x) mid.idx + c(-x, x)) ##correct for out of bounds problem; it might occur vslide_range.list[[num_slide_windows]] <- c(0, length(vslide_range)) ##TODO ... this is not really optimal, but ok for the moment, better would be ##the algorithm finds sufficiently the global minimum. ##now run it in a loop and expand the range from the inner to the outer part ##at least this is considered for the final error range ... temp_minimum_list <- lapply(1:num_slide_windows, function(x) { src_analyse_IRSARRF_SRS( values_regenerated_limited = RF_reg.limited[,2], values_natural_limited = RF_nat.limited[,2], vslide_range = vslide_range[vslide_range.list[[x]][1]:vslide_range.list[[x]][2]], n_MC = 0, #we don't need MC runs here, so make it quick trace = trace)[c("sliding_vector_min_index","vslide_minimum", "vslide_index")] }) ##get all horizontal index value for the local minimum (corresponding to the vslide) temp_hslide_indices <- vapply(temp_minimum_list, function(x) { x$sliding_vector_min_index}, FUN.VALUE = numeric(length = 1)) ##get also the vertical slide indices temp_vslide_indices <- vapply(temp_minimum_list, function(x) { x$vslide_index}, FUN.VALUE = numeric(length = 1)) ##get all the minimum values temp_minimum <- vapply(temp_minimum_list, function(x) { x$vslide_minimum}, FUN.VALUE = numeric(length = 1)) ##get minimum and set it to the final range opt.range <- vslide_range.list[[which.min(temp_minimum)]] vslide_range <- vslide_range[opt.range[1]:opt.range[2]] ##get all possible t_n values for the range expansion ... this can be considered ##as somehow systematic uncertainty, but it will be only calculated if the full range ##is considered, otherwise it is too biased by the user's choice ##ToDo: So far the algorithm error is not sufficiently documented if(!is.null(algorithm_error)){ algorithm_error <- sd(vapply(1:length(temp_vslide_indices), function(k){ temp.sliding.step <- RF_reg.limited[temp_hslide_indices[k]] - t_min ## return the offset of the t_n values RF_nat[1, 1] + temp.sliding.step }, FUN.VALUE = numeric(length = 1))) }else{ algorithm_error <- NA } }else{ algorithm_error <- NA } ##now run the final sliding with the identified range that corresponds to the minimum value temp.sum.residuals <- src_analyse_IRSARRF_SRS( values_regenerated_limited = RF_reg.limited[,2], values_natural_limited = RF_nat.limited[,2], vslide_range = vslide_range, n_MC = if(is.null(n.MC)) 0 else n.MC, trace = trace ) #(2) get minimum value (index and time value) index_min <- which.min(temp.sum.residuals$sliding_vector) if(length(index_min) == 0) t_n.id <- 1 else t_n.id <- index_min I_n <- 0 if (!is.null(vslide_range)) { I_n <- vslide_range[temp.sum.residuals$vslide_index] } temp.sliding.step <- RF_reg.limited[t_n.id] - t_min ##(3) slide curve graphically ... full data set we need this for the plotting later RF_nat.slid <- matrix(data = c(RF_nat[,1] + temp.sliding.step, RF_nat[,2] + I_n), ncol = 2) t_n <- RF_nat.slid[1,1] ##the same for the MC runs of the minimum values if(!is.null(n.MC)) { t_n.MC <- vapply( X = 1:length(temp.sum.residuals$sliding_vector_min_MC), FUN = function(x) { ##get minimum for MC t_n.id.MC <- which(temp.sum.residuals$sliding_vector == temp.sum.residuals$sliding_vector_min_MC[x]) ## there is a non-zero chance that we have got two indices for ## the minimun, so we take the mean temp.sliding.step.MC <- RF_reg.limited[t_n.id.MC] - t_min t_n.MC <- (RF_nat[, 1] + mean(temp.sliding.step.MC))[1] return(t_n.MC) }, FUN.VALUE = vector(mode = "numeric", length = 1) ) } else{ t_n.MC <- NA_integer_ } ##(4) get residuals (needed to be plotted later) ## they cannot be longer than the RF_reg.limited curve reg.limited.idx <- t_n.id:nrow(RF_reg.limited) len.shorter <- min(nrow(RF_nat.limited), length(reg.limited.idx)) residuals <- (RF_nat.limited[1:len.shorter, 2] + I_n) - RF_reg.limited[reg.limited.idx[1:len.shorter], 2] ##(4.1) calculate De from the first channel ... which is t_n here De <- round(t_n, digits = 2) De.MC <- round(t_n.MC, digits = 2) ##(5) calculate trend fit max.rows <- min(nrow(RF_nat.limited), length(residuals)) temp.fit <- stats::lm(y ~ x, data.frame(x = RF_nat.limited[1:max.rows, 1], y = residuals)) temp.trend.fit <- coef(temp.fit) ##return values and limited if they are not needed if (numerical.only == FALSE) { return( list( De = De, De.MC = De.MC, residuals = residuals, trend.fit = temp.trend.fit, RF_nat.slid = RF_nat.slid, t_n.id = t_n.id, I_n = I_n, algorithm_error = algorithm_error, vslide_range = if(is.null(vslide_range)){NA}else{range(vslide_range)}, num_slide_windows = num_slide_windows, squared_residuals = temp.sum.residuals$sliding_vector ) ) }else{ return(list(De = De, De.MC = De.MC)) } }##end of function sliding() ##PERFORM sliding and overwrite values slide <- sliding( RF_nat = RF_nat, RF_nat.limited = RF_nat.limited, RF_reg.limited = RF_reg.limited ) ##write results in variables De <- slide$De residuals <- slide$residuals RF_nat.slid <- slide$RF_nat.slid I_n <- slide$I_n # ERROR ESTIMATION # MC runs for error calculation --------------------------------------------------------------- ##set residual matrix for MC runs, i.e. set up list of pseudo RF_nat curves as function ##(i.e., bootstrap from the natural curve distribution) De.diff <- De.error <- De.lower <- De.upper <- De.MC <- NA_integer_ if(!is.null(n.MC)){ slide.MC.list <- lapply(1:n.MC,function(x) { reg.limited.idx <- slide$t_n.id:nrow(RF_reg.limited) len.shorter <- min(nrow(RF_nat.limited), length(reg.limited.idx)) cbind(RF_nat.limited[1:len.shorter, 1], RF_reg.limited[reg.limited.idx[1:len.shorter], 2] + sample(residuals, len.shorter, replace = TRUE)) }) ##set parallel calculation if wanted if (is.null(method_control.settings$cores)) { cores <- 1 } else { available.cores <- parallel::detectCores() requested.cores <- method_control.settings$cores[1] ##case 'auto' if (requested.cores == "auto") { cores <- max(available.cores - 2, 1) # nocov } else if (is.numeric(requested.cores)) { .validate_positive_scalar(requested.cores, int = TRUE, name = "method_control.settings$cores") if (requested.cores > available.cores) { ##assign all they have, it is not our problem # nocov start .throw_warning("Number of cores limited to the maximum ", "available (", available.cores, ")") # nocov end } cores <- min(requested.cores, available.cores) }else{ .throw_message("Invalid value for control argument 'cores', ", "value set to 1") cores <- 1 } ##return message message("[analyse_IRSAR.RF()] Using ", cores, ifelse(cores == 1, " core", " cores"), " ...") } ## SINGLE CORE ----- if (cores[1] == 1) { if(txtProgressBar){ ##progress bar cat("\n\t Run Monte Carlo loops for error estimation\n") pb <- txtProgressBar(min = 0, max = n.MC, initial = 0, char = "=", style = 3) } De.MC <- sapply(1:n.MC, function(i) { # update progress bar if (txtProgressBar) setTxtProgressBar(pb, i) sliding( RF_nat = RF_nat, RF_reg.limited = RF_reg.limited, RF_nat.limited = slide.MC.list[[i]], numerical.only = TRUE )[[2]] }) ## close progress bar if (txtProgressBar) close(pb) ## MULTICORE ----- } else { ## Create the determined number of R copies cl <- parallel::makeCluster(cores) ##run MC runs De.MC <- parallel::parSapply(cl, X = slide.MC.list, FUN = function(x){ sliding( RF_nat = RF_nat, RF_reg.limited = RF_reg.limited, RF_nat.limited = x, numerical.only = TRUE )[[2]] }) ##destroy multicore cluster parallel::stopCluster(cl) } ##calculate absolute deviation between De and the here newly calculated De.MC ##this is, e.g. ^t_n.1* - ^t_n in Frouin et al. De.diff <- diff(x = c(De, De.MC)) De.error <- round(sd(De.MC), digits = 2) De.lower <- De - quantile(De.diff, 0.975, na.rm = TRUE) De.upper <- De - quantile(De.diff, 0.025, na.rm = TRUE) } } ##===============================================================================================# ## TEST PARAMETER ##===============================================================================================# ## Test parameter are evaluated after all the calculations have been done as ## it should be up to the user to decide whether a value should be taken into account or not. ##(0) ##set default values and overwrite them if there was something new ##set defaults TP <- list( curves_ratio = 1.001, intersection_ratio = NA, residuals_slope = NA, curves_bounds = ceiling(max(RF_reg.x)), dynamic_ratio = NA, lambda = NA, beta = NA, delta.phi = NA ) ##modify default values by given input if(!is.null(test_parameters)){TP <- modifyList(TP, test_parameters)} ##remove NULL elements from list TP <- .rm_NULL_elements(TP) ##set list with values we want to evaluate TP <- lapply(TP, function(x){ data.frame(THRESHOLD = as.numeric(x), VALUE = NA, STATUS = "OK", stringsAsFactors = TRUE) }) ##(1) check if RF_nat > RF_reg, considering the fit range ##TP$curves_ratio if ("curves_ratio" %in% names(TP)) { TP$curves_ratio$VALUE <- sum(RF_nat.limited[,2]) / sum(RF_reg[RF_nat.lim[1]:RF_nat.lim[2], 2]) if (!is.na(TP$curves_ratio$THRESHOLD)) { TP$curves_ratio$STATUS <- ifelse(TP$curves_ratio$VALUE > TP$curves_ratio$THRESHOLD, "FAILED", "OK") } } ##(1.1) check if RF_nat > RF_reg, considering the fit range ##TP$intersection_ratio if ("intersection_ratio" %in% names(TP)) { ##It is, as always, a little bit more complicated ... ##We cannot just normalise both curves and compare ratios. With increasing De the curve ##shape of the RF_nat curve cannot be the same as the RF_reg curve at t = 0. Therefore we ##have to find the segment in the RF_reg curve that fits to the RF_nat curve ## ##(1) get maximum count value for RF_nat IR_RF_nat.max <- max(RF_nat.limited[,2]) ##(2) find corresponding time value for RF_reg (here no limited) IR_RF_reg.corresponding_id <- which.min(abs(RF_reg[,2] - IR_RF_nat.max)) ##(3) calculate ratio, but just starting from the point where both curves correspond ##in terms of intensiy, otherwise the ratio cannot be correct ##the boundary check is necessary to avoid errors if((IR_RF_reg.corresponding_id + length(RF_nat.lim[1]:RF_nat.lim[2])) > length(RF_reg[,2])){ TP$intersection_ratio$VALUE <- Inf }else{ TP$intersection_ratio$VALUE <- abs(1 - sum((RF_nat.limited[, 2] / max(RF_nat.limited[, 2]))) / sum(RF_reg[IR_RF_reg.corresponding_id:(IR_RF_reg.corresponding_id + length(RF_nat.lim[1]:RF_nat.lim[2]) - 1), 2] / max(RF_reg[IR_RF_reg.corresponding_id:(IR_RF_reg.corresponding_id + length(RF_nat.lim[1]:RF_nat.lim[2]) - 1), 2]))) if (!is.na(TP$intersection_ratio$THRESHOLD)) { TP$intersection_ratio$STATUS <- ifelse(TP$intersection_ratio$VALUE > TP$intersection_ratio$THRESHOLD, "FAILED", "OK") } rm(IR_RF_nat.max, IR_RF_reg.corresponding_id) } } ##(2) check slop of the residuals using a linear fit ##TP$residuals_slope if ("residuals_slope" %in% names(TP)) { if (exists("slide")) { TP$residuals_slope$VALUE <- abs(slide$trend.fit[2]) if (!is.na(TP$residuals_slope$THRESHOLD)) { TP$residuals_slope$STATUS <- ifelse( TP$residuals_slope$VALUE > TP$residuals_slope$THRESHOLD, "FAILED", "OK") } } } ##(3) calculate dynamic range of regenrated curve ##TP$dynamic_ratio if ("dynamic_ratio"%in%names(TP)){ TP.dynamic_ratio <- subset(temp.sequence_structure, temp.sequence_structure$protocol.step == "REGENERATED") TP$dynamic_ratio$VALUE <- TP.dynamic_ratio$y.max/TP.dynamic_ratio$y.min if (!is.na(TP$dynamic_ratio$THRESHOLD)){ TP$dynamic_ratio$STATUS <- ifelse( TP$dynamic_ratio$VALUE < TP$dynamic_ratio$THRESHOLD , "FAILED", "OK") } } ##(4) decay parameter ##TP$lambda if ("lambda"%in%names(TP) & "beta"%in%names(TP) & "delta.phi"%in%names(TP)){ fit.lambda <- try(minpack.lm::nlsLM( fit.function, data = data.frame(x = RF_reg.x, y = RF_reg.y), algorithm = "LM", start = list( phi.0 = fit.parameters.start["phi.0"], delta.phi = fit.parameters.start["delta.phi"], lambda = fit.parameters.start["lambda"], beta = fit.parameters.start["beta"] ), lower = c( phi.0 = .Machine$double.xmin, delta.phi = .Machine$double.xmin, lambda = .Machine$double.xmin, beta = .Machine$double.xmin ), upper = c( phi.0 = max(RF_reg.y), delta.phi = max(RF_reg.y), lambda = 1, beta = 100 ) ), silent = TRUE ) if(!inherits(fit.lambda, "try-error")){ temp.coef <- coef(fit.lambda) TP$lambda$VALUE <- temp.coef["lambda.lambda"] TP$beta$VALUE <- temp.coef["beta.beta"] TP$delta.phi$VALUE <- temp.coef["delta.phi.delta.phi"] if (!is.na( TP$lambda$THRESHOLD)){ TP$lambda$STATUS <- ifelse(TP$lambda$VALUE <= TP$lambda$THRESHOLD, "FAILED", "OK") } if (!is.na( TP$beta$THRESHOLD)){ TP$beta$STATUS <- ifelse(TP$beta$VALUE <= TP$beta$THRESHOLD, "FAILED", "OK") } if (!is.na( TP$delta.phi$THRESHOLD)){ TP$delta.phi$STATUS <- ifelse(TP$delta.phi$VALUE <= TP$delta.phi$THRESHOLD, "FAILED", "OK") } } } ##(99) check whether after sliding the ##TP$curves_bounds if (!is.null(TP$curves_bounds)) { if(exists("slide")){ ## add one channel on the top to make sure that it works TP$curves_bounds$VALUE <- max(RF_nat.slid[RF_nat.lim,1]) + (RF_nat[2,1] - RF_nat[1,1]) if (!is.na(TP$curves_bounds$THRESHOLD)){ TP$curves_bounds$STATUS <- ifelse(TP$curves_bounds$VALUE >= floor(max(RF_reg.x)), "FAILED", "OK") } }else if(exists("fit")){ TP$curves_bounds$VALUE <- De.upper if (!is.na(TP$curves_bounds$THRESHOLD)){ TP$curves_bounds$STATUS <- ifelse(TP$curves_bounds$VALUE >= max(RF_reg.x), "FAILED", "OK") } } } ##Combine everything in a data.frame De.status <- "OK" TP.data.frame <- NULL if (length(TP) != 0) { TP.data.frame <- as.data.frame( cbind( POSITION = as.integer(aliquot.position), PARAMETER = c(names(TP)), do.call(data.table::rbindlist, args = list(l = TP)), SEQUENCE_NAME = aliquot.sequence_name, UID = NA ) ) ##set De.status to indicate whether there is any problem with the De according to the test parameter if ("FAILED" %in% TP.data.frame$STATUS) { De.status <- "FAILED" } } ##===============================================================================================# # Plotting ------------------------------------------------------------------------------------ ##===============================================================================================# if (plot) { ##get internal colour definition col <- get("col", pos = .LuminescenceEnv) if (!plot_reduced) { ##grep par default and define reset def.par <- par(no.readonly = TRUE) on.exit(par(def.par), add = TRUE) ##set plot frame, if a method was chosen if (any(method %in% c("SLIDE", "FIT", "VSLIDE"))) { layout(matrix(c(1, 2), 2, 1, byrow = TRUE), c(2), c(1.3, 0.4), TRUE) par( oma = c(1, 1, 1, 1), mar = c(0, 4, 3, 0), cex = plot.settings$cex ) } }else{ if(plot.settings[["cex"]] != 1){ def.par <- par()[["cex"]] on.exit(par(def.par), add = TRUE) par(cex = plot.settings[["cex"]]) } } ##here control xlim and ylim behaviour ##xlim xlim <- if ("xlim" %in% names(list(...))) { list(...)$xlim } else { if (plot.settings$log == "x" | plot.settings$log == "xy") { c(min(temp.sequence_structure$x.min),max(temp.sequence_structure$x.max)) }else{ c(0,max(temp.sequence_structure$x.max)) } } ##ylim ylim <- if("ylim" %in% names(list(...))) {list(...)$ylim} else {c(min(temp.sequence_structure$y.min), max(temp.sequence_structure$y.max))} ##open plot area plot( NA,NA, xlim = xlim, ylim = ylim, xlab = ifelse((!any(method %in% c("SLIDE", "FIT", "VSLIDE"))) | plot_reduced, plot.settings$xlab," "), xaxt = ifelse((!any(method %in% c("SLIDE", "FIT", "VSLIDE"))) | plot_reduced, plot.settings$xaxt,"n"), yaxt = "n", ylab = plot.settings$ylab, main = plot.settings$main, log = plot.settings$log, ) if(De.status == "FAILED"){ ##build list of failed TP mtext.message <- paste0( "Threshold exceeded for: ", .collapse(TP.data.frame$PARAMETER[TP.data.frame$STATUS == "FAILED"]), ". For details see manual.") ##print mtext mtext(text = mtext.message, side = 3, outer = TRUE, col = "red", cex = 0.8 * par()[["cex"]]) .throw_warning(mtext.message) } ##use scientific format for y-axis labels <- axis(2, labels = FALSE) axis(side = 2, at = labels, labels = format(labels, scientific = TRUE)) ##(1) plot points that have been not selected points(RF_reg[-(min(RF_reg.lim):max(RF_reg.lim)),1:2], pch=3, col=col[19]) ##(2) plot points that has been used for the fitting points(RF_reg.x,RF_reg.y, pch=3, col=col[10]) ##show natural points if no analysis was done if(!any(method %in% c("SLIDE", "FIT", "VSLIDE"))){ ##add points points(RF_nat, pch = 20, col = "grey") points(RF_nat.limited, pch = 20, col = "red") ##legend if (plot.settings$legend) { legend( plot.settings$legend.pos, legend = plot.settings$legend.text, pch = c(19, 3), col = c("red", col[10]), horiz = TRUE, bty = "n", cex = .9 * par()[["cex"]] ) } } ##Add fitted curve, if possible. This is a graphical control that might be considered ##as useful before further analysis will be applied if (method_control.settings$show_fit) { if(!is(fit.lambda, "try-error")){ fit.lambda_coef <- coef(fit.lambda) curve(fit.lambda_coef[[1]]- (fit.lambda_coef[[2]]* ((1-exp(-fit.lambda_coef[[3]]*x))^fit.lambda_coef[[4]])), add=TRUE, lty = 2, col="red") rm(fit.lambda_coef) }else{ .throw_warning("No fit possible, no fit shown.") } } ## ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# ## PLOT - METHOD FIT ## ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# if(method == "FIT"){ ##dummy to cheat R CMD check x<-NULL; rm(x) ##plot fitted curve curve(fit.parameters.results["phi.0"]- (fit.parameters.results["delta.phi"]* ((1-exp(-fit.parameters.results["lambda"]*x))^fit.parameters.results["beta"])), add=TRUE, from = RF_reg[min(RF_reg.lim), 1], to = RF_reg[max(RF_reg.lim), 1], col="red") ##plotting to show the limitations if RF_reg.lim was chosen ##show fitted curve GREY (previous red curve) curve(fit.parameters.results["phi.0"]- (fit.parameters.results["delta.phi"]* ((1-exp(-fit.parameters.results["lambda"]*x))^fit.parameters.results["beta"])), add=TRUE, from = min(RF_reg[, 1]), to = RF_reg[min(RF_reg.lim), 1], col="grey") ##show fitted curve GREY (after red curve) curve(fit.parameters.results["phi.0"]- (fit.parameters.results["delta.phi"]* ((1-exp(-fit.parameters.results["lambda"]*x))^fit.parameters.results["beta"])), add=TRUE, from = RF_reg[max(RF_reg.lim), 1], to = max(RF_reg[, 1]), col="grey") ##add points points(RF_nat, pch = 20, col = col[19]) points(RF_nat.limited, pch = 20, col = col[2]) ##legend if (plot.settings$legend) { legend( plot.settings$legend.pos, legend = plot.settings$legend.text, pch = c(19, 3), col = c("red", col[10]), horiz = TRUE, bty = "n", cex = .9 * par()[["cex"]] ) } ##plot range choosen for fitting abline(v=RF_reg[min(RF_reg.lim), 1], lty=2) abline(v=RF_reg[max(RF_reg.lim), 1], lty=2) ##plot De if De was calculated if(is.na(De) == FALSE & is.nan(De) == FALSE){ lines(c(0,De.lower), c(RF_nat.error.lower,RF_nat.error.lower), lty=2, col="grey") lines(c(0,De), c(RF_nat.mean,RF_nat.mean), lty=2, col="red") lines(c(0,De.upper), c(RF_nat.error.upper,RF_nat.error.upper), lty=2, col="grey") lines(c(De.lower, De.lower), c(0,RF_nat.error.lower), lty=2, col="grey") lines(c(De,De), c(0, RF_nat.mean), lty=2, col="red") lines(c(De.upper, De.upper), c(0,RF_nat.error.upper), lty=2, col="grey") } ##Insert fit and result mtext.txt <- substitute(D[e] == De, list(De = paste0(De, " [", De.lower, " ; ", De.upper,"]"))) if(is.na(De) != TRUE & (is.nan(De) == TRUE | De > max(RF_reg.x) | De.upper > max(RF_reg.x))){ try(mtext(side=3, mtext.txt, line=0, cex=0.8 * par()[["cex"]], col="red"), silent=TRUE) De.status <- "VALUE OUT OF BOUNDS" } else{ if ("mtext" %in% names(list(...))) { mtext(side = 3, list(...)$mtext) }else{ try(mtext(side = 3, mtext.txt, line = 0, cex = 0.7 * par()[["cex"]]), silent = TRUE) } De.status <- "OK" } if (!plot_reduced) { ##==lower plot==## par(mar = c(4.2, 4, 0, 0)) ##plot residuals if (is.na(fit.parameters.results[1]) == FALSE) { plot( RF_reg.x, residuals(fit), xlim = c(0, max(temp.sequence_structure$x.max)), xlab = plot.settings$xlab, yaxt = "n", xaxt = plot.settings$xaxt, type = "p", pch = 20, col = "grey", ylab = "E", log = "" ) ##add 0 line abline(h = 0) } else{ plot(NA, NA, xlim = c(0, max(temp.sequence_structure$x.max)), ylab = "E", xlab = plot.settings$xlab, xaxt = plot.settings$xaxt, ylim = c(-1, 1) ) text(x = max(temp.sequence_structure$x.max) / 2, y = 0, "Fitting Error!") } } } ## ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# ## PLOT - METHOD SLIDE ## ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# else if(method == "SLIDE" || method == "VSLIDE"){ ##(0) density plot if (method_control.settings$show_density) { ##showing the density makes only sense when we see at least 10 data points if (!anyNA(De.MC) && length(unique(De.MC)) >= 15) { ##calculate density De.MC density.De.MC <- density(De.MC) ##calculate transformation function x.1 <- max(density.De.MC$y) x.2 <- min(density.De.MC$y) ##with have to limit the scaling a little bit if (RF_nat.limited[1,2] > max(RF_reg.limited[,2]) - (max(RF_reg.limited[,2]) - min(RF_reg.limited[,2]))*.5) { y.1 <- max(RF_reg.limited[,2]) - (max(RF_reg.limited[,2]) - min(RF_reg.limited[,2]))*.5 }else{ y.1 <- RF_nat.limited[1,2] } y.2 <- par("usr")[3] m <- (y.1 - y.2) / (x.1 + x.2) n <- y.1 - m * x.1 density.De.MC$y <- m * density.De.MC$y + n rm(x.1,x.2,y.1,y.2,m,n) polygon(density.De.MC$x, density.De.MC$y, col = rgb(0,0.4,0.8,0.5)) }else{ .throw_warning("Narrow density distribution, ", "no density distribution plotted") } } ##(1) plot unused points in grey ... unused points are points outside of the set limit points( matrix(RF_nat.slid[-(min(RF_nat.lim):max(RF_nat.lim)),1:2], ncol = 2), pch = 21, col = col[19] ) ##(2) add used points points(RF_nat.slid[min(RF_nat.lim):max(RF_nat.lim),], pch = 21, col = col[2], bg = col[2]) ##(3) add line to show the connection between the first point and the De lines(x = c(RF_nat.slid[1,1], RF_nat.slid[1,1]), y = c(.Machine$double.xmin,RF_nat.slid[1,2]), lty = 2, col = col[2] ) ##(4) add arrow at the lowest y-coordinate possible to show the sliding if (plot.settings$log != "y" & plot.settings$log != "xy") { shape::Arrows( x0 = 0, y0 = ylim[1], y1 = ylim[1], x1 = RF_nat.slid[1,1], arr.type = "triangle", arr.length = 0.3 * par()[["cex"]], code = 2, col = col[2], arr.adj = 1, arr.lwd = 1 ) } ##(5) add vertical shift as arrow; show nothing if nothing was shifted if (plot.settings$log != "y" & plot.settings$log != "xy" & I_n != 0) { shape::Arrows( x0 = (0 + par()$usr[1])/2, y0 = RF_nat[1,2], y1 = RF_nat[1,2] + I_n, x1 = (0 + par()$usr[1])/2, arr.type = "triangle", arr.length = 0.3 * par()[["cex"]], code = 2, col = col[2], arr.adj = 1, arr.lwd = 1 ) } ##TODO ##uncomment here to see all the RF_nat curves produced by the MC runs ##could become a polygone for future versions #lapply(1:n.MC, function(x){lines(slide.MC.list[[x]], col = rgb(0,0,0, alpha = 0.2))}) ##plot range choosen for fitting abline(v=RF_reg[min(RF_reg.lim), 1], lty=2) abline(v=RF_reg[max(RF_reg.lim), 1], lty=2) if (plot.settings$legend) { legend( plot.settings$legend.pos, legend = plot.settings$legend.text, pch = c(19, 3), col = c("red", col[10]), horiz = TRUE, bty = "n", cex = .9 * par()[["cex"]] ) } ##write information on the De in the plot if("mtext" %in% names(list(...))) { mtext(side = 3, list(...)$mtext) }else{ try(mtext(side=3, substitute(D[e] == De, list(De=paste0(De," [", De.lower, " ; ", De.upper, "]"))), line=0, cex=0.7 * par()[["cex"]]), silent=TRUE) } if (!plot_reduced) { ##==lower plot==## ##RESIDUAL PLOT par(mar = c(4, 4, 0, 0)) plot( NA, NA, ylim = range(residuals), xlim = xlim, xlab = plot.settings$xlab, type = "p", pch = 1, col = "grey", xaxt = plot.settings$xaxt, ylab = "E", yaxt = "n", log = ifelse( plot.settings$log == "y" | plot.settings$log == "xy", "", plot.settings$log ) ) ##add axis for 0 ... means if the 0 is not visible there is labelling axis(side = 4, at = 0, labels = 0) ##add residual indicator (should circle around 0) col.ramp <- grDevices::colorRampPalette(c(col[19], "white", col[19])) col.polygon <- col.ramp(100) if (plot.settings$log != "x") { shape::filledrectangle( mid = c((xlim[2]) + (par("usr")[2] - xlim[2]) / 2, max(residuals) - diff(range(residuals)) / 2), wx = par("usr")[2] - xlim[2], wy = diff(range(residuals)), col = col.polygon ) } ##add 0 line abline(h = 0, lty = 3) ##0-line indicator and arrows if this is not visible ##red colouring here only if the 0 point is not visible to avoid too much colouring if (max(residuals) < 0 & min(residuals) < 0) { angle <- 270 y0 <- max(residuals) } else if (max(residuals) > 0 & min(residuals) > 0) { angle <- 90 y0 <- min(residuals) } else { angle <- NA points(xlim[2], 0, pch = 3) } if (!is.na(angle)) { shape::Arrowhead( x0 = xlim[2] + (par("usr")[2] - xlim[2]) / 2, y0 = y0, angle = angle, lcol = col[2], arr.length = 0.4, arr.type = "triangle", arr.col = col[2] ) } ##add residual points temp.points.diff <- max(length(min(RF_nat.lim):max(RF_nat.lim)) - length(residuals), 0) points(RF_nat.slid[c(min(RF_nat.lim):(max(RF_nat.lim) - temp.points.diff)), 1], residuals, pch = 20, col = rgb(0, 0, 0, 0.4)) ##add vertical line to mark De (t_n) abline(v = De, lty = 2, col = col[2]) ##add numeric value of De ... t_n axis( side = 1, at = De, labels = De, cex.axis = 0.8 * plot.settings$cex, col = "blue", padj = -1.55, ) ##TODO- CONTROL PLOT! ... can be implemented in appropriate form in a later version if (method_control.settings$trace) { par(new = TRUE) plot( RF_reg.limited[1:length(slide$squared_residuals),1], slide$squared_residuals, ylab = "", type = "l", xlab = "", xaxt = plot.settings$xaxt, axes = FALSE, xlim = xlim, ylim = ylim, log = "y" ) } } } }#endif::plot # Return -------------------------------------------------------------------------------------- ##catch up worst case scenarios ... means something went wrong if(!exists("De")){De <- NA} if(!exists("De.error")){De.error <- NA} if(!exists("De.MC")){De.MC <- NA} if(!exists("De.lower")){De.lower <- NA} if(!exists("De.upper")){De.upper <- NA} if(!exists("De.status")){De.status <- NA} if (!exists("fit")) { fit <- list() if (exists("fit.lambda")) { fit <- fit.lambda } } if(!exists("slide")){slide <- list()} ##combine values for De into a data frame De.values <- data.frame( DE = De, DE.ERROR = De.error, DE.LOWER = De.lower, DE.UPPER = De.upper, DE.STATUS = De.status, RF_NAT.LIM = paste(RF_nat.lim, collapse = ":"), RF_REG.LIM = paste(RF_reg.lim, collapse = ":"), POSITION = as.integer(aliquot.position), DATE = aliquot.date, SEQUENCE_NAME = aliquot.sequence_name, UID = NA, row.names = NULL, stringsAsFactors = FALSE ) ##generate unique identifier UID <- create_UID() ##update data.frames accordingly De.values$UID <- UID if(!is.null(TP.data.frame)){ TP.data.frame$UID <- UID } ##produce results object newRLumResults.analyse_IRSAR.RF <- set_RLum( class = "RLum.Results", data = list( data = De.values, De.MC = De.MC, test_parameters = TP.data.frame, fit = fit, slide = slide ), info = list(call = sys.call()) ) invisible(newRLumResults.analyse_IRSAR.RF) } Luminescence/R/apply_EfficiencyCorrection.R0000644000176200001440000001064414762554470020534 0ustar liggesusers#' Function to apply spectral efficiency correction to RLum.Data.Spectrum S4 #' class objects #' #' The function allows spectral efficiency corrections for RLum.Data.Spectrum #' S4 class objects #' #' The efficiency correction is based on a spectral response dataset provided #' by the user. Usually the data set for the quantum efficiency is of lower #' resolution and values are interpolated for the required spectral resolution using #' the function [stats::approx][stats::approxfun] #' #' If the energy calibration differs for both data set `NA` values are produces that #' will be removed from the matrix. #' #' @param object [RLum.Data.Spectrum-class] or [RLum.Analysis-class] (**required**): #' S4 object of class `RLum.Data.Spectrum`, `RLum.Analysis`or a [list] of such objects. Other objects in #' the list are skipped. #' #' @param spectral.efficiency [data.frame] (**required**): #' Data set containing wavelengths (x-column) and relative spectral response values #' (y-column) (values between 0 and 1). The provided data will be used to correct all spectra if `object` is #' a [list] #' #' @return Returns same object as provided as input #' #' @note #' Please note that the spectral efficiency data from the camera alone may not #' sufficiently correct for spectral efficiency of the entire optical system #' (e.g., spectrometer, camera ...). #' #' @section Function version: 0.2.0 #' #' @author #' Sebastian Kreutzer, IRAMAT-CRP2A, UMR 5060, CNRS-Université Bordeaux Montaigne (France)\cr #' Johannes Friedrich, University of Bayreuth (Germany) #' #' @seealso [RLum.Data.Spectrum-class], [RLum.Analysis-class] #' #' @keywords manip #' #' @examples #' #' ##(1) - use with your own data (uncomment for usage) #' ## spectral.efficiency <- read.csv("your data") #' ## #' ## your.spectrum <- apply_EfficiencyCorrection(your.spectrum, ) #' #' @md #' @export apply_EfficiencyCorrection <- function( object, spectral.efficiency ) { .set_function_name("apply_EfficiencyCorrection") on.exit(.unset_function_name(), add = TRUE) # self-call ----------------------------------------------------------------------------------- ##case we have a list if(inherits(object, "list")){ output_list <- lapply(object, function(o){ if(inherits(o, "RLum.Data.Spectrum") || inherits(o, "RLum.Analysis")){ apply_EfficiencyCorrection(object = o, spectral.efficiency = spectral.efficiency) }else{ .throw_warning("Skipping '", class(o), "' object in input list") return(o) } }) return(output_list) } ##the case of an RLum.Analysis object if(inherits(object, "RLum.Analysis")){ object@records <- lapply(object@records, function(o){ if(inherits(o, "RLum.Data.Spectrum")){ apply_EfficiencyCorrection(object = o, spectral.efficiency = spectral.efficiency) }else{ .throw_warning("Skipping '", class(o), "' object in input list") return(o) } }) return(object) } ## Integrity checks ------------------------------------------------------- .validate_class(object, "RLum.Data.Spectrum") .validate_class(spectral.efficiency, "data.frame") ## grep data matrix from the input object temp.matrix <- as(object, "matrix") ## grep efficency values temp.efficiency <- as.matrix(spectral.efficiency[,1:2]) ##test max if(max(temp.efficiency[,2]) > 1) .throw_error("Relative quantum efficiency values > 1 are not allowed") # Apply method ------------------------------------------------------------ ##the interpolation is needed to align the resolution #set data for interpolation temp.efficiency.x <- as.numeric(row.names(temp.matrix)) temp.efficiency.interpolated <- approx( x = temp.efficiency[,1], y = temp.efficiency[,2], xout = temp.efficiency.x, ties = mean) ##correct for quantum efficiency temp.matrix <- vapply(X = 1:ncol(temp.matrix), FUN = function(x){ temp.matrix[,x]/temp.efficiency.interpolated$y*max(temp.efficiency.interpolated$y, na.rm = TRUE) }, FUN.VALUE = numeric(length = nrow(temp.matrix))) ##remove NA values temp.matrix <- na.exclude(temp.matrix) ##correct colnames colnames(temp.matrix) <- colnames(get_RLum(object)) # Return Output------------------------------------------------------------ temp.output <- set_RLum( class = "RLum.Data.Spectrum", recordType = object@recordType, curveType = object@curveType, data = temp.matrix, info = object@info) invisible(temp.output) } Luminescence/R/merge_RLum.Results.R0000644000176200001440000001200114762554470016716 0ustar liggesusers#' @title Merge function for RLum.Results S4-class objects #' #' @description Function merges objects of class [RLum.Results-class]. The slots in the objects #' are combined depending on the object type, e.g., for [data.frame] and [matrix] #' rows are appended. #' #' @details Elements are appended where possible and attributes are preserved if #' not of similar name as the default attributes of, e.g., a [data.frame] #' #' @note The `originator` is taken from the first element and not reset to `merge_RLum` #' #' @param objects [list] (**required**): #' a list of [RLum.Results-class] objects #' #' @section Function version: 0.2.1 #' #' @keywords internal #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @md #' @export merge_RLum.Results <- function( objects ) { .set_function_name("merge_RLum.Results") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(objects, "list") ## check if objects in the list are of type RLum.Results temp.originator <- sapply(objects, function(x) { .validate_class(x, "RLum.Results", name = "All elements of 'object'") x@originator }) if (length(objects) == 0) { .throw_message("'objects' contains no data, NULL returned") return(NULL) } ##check if originator is different if(length(unique(temp.originator))>1){ .throw_error("Objects cannot be merged, different 'RLum.Results' originators found") } ##------------------------------------------------------------- ##merge objects depending on the data structure for (i in seq_along(objects[[1]]@data)) { ## shelf list of attributes attr_list <- unlist( lapply(1:length(objects), function(x) attributes(objects[[x]]@data[[i]])), recursive = FALSE) ##++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ##numeric vector or data.frame or matrix if(is(objects[[1]]@data[[i]], "data.frame")|| is(objects[[1]]@data[[i]], "numeric") || is(objects[[1]]@data[[i]], "matrix")){ ##grep elements and combine them into a list temp.list <- lapply(1:length(objects), function(x) objects[[x]]@data[[i]]) ##check whether the objects can be combined by rbind if(length(unique(unlist(lapply(temp.list, FUN = ncol)))) > 1) .throw_error("Objects cannot be merged, different number of columns") ##combine them using rbind or data.table::rbindList (depends on the data type) if(is(objects[[1]]@data[[i]], "numeric")){ objects[[1]]@data[[i]] <- unlist(temp.list) }else if(is(objects[[1]]@data[[i]], "matrix")){ objects[[1]]@data[[i]] <- do.call("rbind", temp.list) }else{ objects[[1]]@data[[i]] <- as.data.frame(data.table::rbindlist(temp.list)) } ## continue attribute preservation ## remove attributes that stem from the object itself attr_list[names(attr_list) %in% names(attributes(objects[[1]]@data[[i]]))] <- NULL ## just to avoid working the code if not needed if(length(attr_list) > 0) { ## merge attributes with similar name attrs <- lapply(unique(names(attr_list)), function(x){ tmp <- unlist(attr_list[names(attr_list)%in%x], recursive = FALSE) names(tmp) <- NULL tmp }) names(attrs) <- unique(names(attr_list)) # set attributes ... we try because some attributes for(n in names(attrs)) attr(objects[[1]]@data[[i]], n) <- attrs[[n]] } }else{ ##all other elements ##grep elements and write them into a list objects[[1]]@data[[i]] <- lapply(1:length(objects), function(x) objects[[x]]@data[[i]]) ##unlist to flatten list if necessary for the elements if(is(objects[[1]]@data[[i]][[1]])[1] == "list"){ objects[[1]]@data[[i]] <- unlist(objects[[1]]@data[[i]], recursive = FALSE) } } }##end loop #return by setting a new RLum.Results (for the .uid) #the originator is not reset objects_merged <- set_RLum( class = "RLum.Results", originator = objects[[1]]@originator, data = objects[[1]]@data, info = unlist(lapply(objects, function(x) { x@info }), recursive = FALSE), .pid = unlist(lapply(objects, function(x) { x@.uid }))) return(objects_merged) } Luminescence/R/convert_PSL2Risoe.BINfileData.R0000644000176200001440000002016514762554470020555 0ustar liggesusers#' @title Convert portable OSL data to a Risoe.BINfileData object #' #' @description #' Converts an `RLum.Analysis` object produced by the function `read_PSL2R()` to #' a `Risoe.BINfileData` object **(BETA)**. #' #' This function converts an [RLum.Analysis-class] object that was produced #' by the [read_PSL2R] function to a [Risoe.BINfileData-class]. #' The `Risoe.BINfileData` can be used to write a Risoe BIN file via #' [write_R2BIN]. #' #' @param object [RLum.Analysis-class] (**required**): #' `RLum.Analysis` object produced by [read_PSL2R] #' #' @param ... currently not used. #' #' @return #' Returns an S4 [Risoe.BINfileData-class] object that can be used to write a #' BIN file using [write_R2BIN]. #' #' @seealso [RLum.Analysis-class], [RLum.Data.Curve-class], #' [Risoe.BINfileData-class] #' #' @author #' Christoph Burow, University of Cologne (Germany) #' #' @section Function version: 0.0.1 #' #' @keywords IO #' #' @examples #' #' # (1) load and plot example data set #' data("ExampleData.portableOSL", envir = environment()) #' plot_RLum(ExampleData.portableOSL) #' #' # (2) merge all RLum.Analysis objects into one #' merged <- merge_RLum(ExampleData.portableOSL) #' merged #' #' # (3) convert to RisoeBINfile object #' bin <- convert_PSL2Risoe.BINfileData(merged) #' bin #' #' # (4) write Risoe BIN file #' \dontrun{ #' write_R2BIN(bin, "~/portableOSL.binx") #' } #' #' @md #' @export convert_PSL2Risoe.BINfileData <- function(object, ...) { .set_function_name("convert_PSL2Risoe.BINfileData") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(object, "RLum.Analysis") .validate_not_empty(object) sapply(object, function(x) { .validate_class(x, "RLum.Data.Curve", name = "All elements of 'object'") }) if (!all(sapply(object, function(x) x@originator) == "read_PSL2R")) .throw_error("Only objects originating from 'read_PSL2R()' are allowed") ## EXTRACT CURVE INFORMATION ---- curves <- get_RLum(object) ## COLLECT META INFORMATION ---- META <- do.call(rbind, lapply(curves, function(x) { NPOINTS <- as.integer(x@info$settings$stimulation_time) LTYPE <- x@info$settings$stimulation_unit COMMENT <- x@info$settings$measurement HIGH <- x@info$settings$stimulation_time DATE <- format(x@info$settings$Date, format = "%d%m%y") TIME <- x@info$settings$Time if (nchar(TIME) < 8) TIME <- paste0("0", TIME) SAMPLE <- x@info$settings$Sample FNAME <- x@info$settings$Filename SEQUENCE <- strtrim(paste(x@info$settings$Run_Name, x@info$settings$Sample_no), 8) return(data.frame(NPOINTS = NPOINTS, LTYPE = LTYPE, COMMENT = COMMENT, HIGH = HIGH, DATE = DATE, TIME = TIME, SAMPLE = SAMPLE, FNAME = FNAME, SEQUENCE = SEQUENCE)) })) ## SAVE DATA ---- DATA <- lapply(curves, function(x) { as.integer(x@data[ ,2]) }) # SAVE METADATA ---- METADATA <- data.frame(ID = seq(1, length(curves), 1), SEL = rep(TRUE, length(curves)), VERSION = rep(7, length(curves)), LENGTH = 447 + 4 * META$NPOINTS, PREVIOUS = 447 + 4 * META$NPOINTS, NPOINTS = META$NPOINTS, RUN = seq(1, length(curves), 1), SET = rep(1, length(curves)), POSITION = rep(1, length(curves)), GRAIN = rep(0, length(curves)), GRAINNUMBER = rep(0, length(curves)), CURVENO = rep(0, length(curves)), XCOORD = rep(0, length(curves)), YCOORD = rep(0, length(curves)), SAMPLE = META$SAMPLE, COMMENT = META$COMMENT, SYSTEMID = rep(0, length(curves)), FNAME = META$FNAME, USER = rep("RLum", length(curves)), TIME = META$TIME, DATE = META$DATE, DTYPE = rep("Natural", length(curves)), BL_TIME = rep(0, length(curves)), BL_UNIT = rep(0, length(curves)), NORM1 = rep(0, length(curves)), NORM2 = rep(0, length(curves)), NORM3 = rep(0, length(curves)), BG = rep(0, length(curves)), SHIFT = rep(0, length(curves)), TAG = rep(1, length(curves)), LTYPE = META$LTYPE, LIGHTSOURCE = rep("None", length(curves)), LPOWER = rep(100, length(curves)), LIGHTPOWER = rep(100, length(curves)), LOW = rep(0, length(curves)), HIGH = META$HIGH, RATE = rep(0, length(curves)), TEMPERATURE = rep(0, length(curves)), MEASTEMP = rep(0, length(curves)), AN_TEMP = rep(0, length(curves)), AN_TIME = rep(0, length(curves)), TOLDELAY = rep(0, length(curves)), TOLON = rep(0, length(curves)), TOLOFF = rep(0, length(curves)), IRR_TIME = rep(0, length(curves)), IRR_TYPE = rep(0L, length(curves)), IRR_UNIT = rep(0, length(curves)), IRR_DOSERATE = rep(0, length(curves)), IRR_DOSERATEERR = rep(0, length(curves)), TIMESINCEIRR = rep(-1, length(curves)), TIMETICK = rep(1e-07, length(curves)), ONTIME = rep(0, length(curves)), OFFTIME = rep(NA, length(curves)), STIMPERIOD = rep(0, length(curves)), GATE_ENABLED = rep(0, length(curves)), ENABLE_FLAGS = rep(0, length(curves)), GATE_START = rep(0, length(curves)), GATE_STOP = rep(0, length(curves)), PTENABLED = rep(0, length(curves)), DTENABLED = rep(0, length(curves)), DEADTIME = rep(0, length(curves)), MAXLPOWER = rep(0, length(curves)), XRF_ACQTIME = rep(0, length(curves)), XRF_HV = rep(0, length(curves)), XRF_CURR = rep(0, length(curves)), XRF_DEADTIMEF = rep(0, length(curves)), SEQUENCE = META$SEQUENCE, DETECTOR_ID = rep(NA, length(curves)), LOWERFILTER_ID = rep(NA, length(curves)), UPPERFILTER_ID = rep(NA, length(curves)), ENOISEFACTOR = rep(NA, length(curves)), MARKPOS_X1 = rep(0, length(curves)), MARKPOS_Y1 = rep(0, length(curves)), MARKPOS_X2 = rep(0, length(curves)), MARKPOS_Y2 = rep(0, length(curves)), MARKPOS_X3 = rep(0, length(curves)), MARKPOS_Y3 = rep(0, length(curves)), EXTR_START = rep(0, length(curves)), EXTR_END = rep(0, length(curves)), RECTYPE = rep(0, length(curves))) ## CREATE Risoe.BINfileData OBJECT ---- bin <- set_Risoe.BINfileData(METADATA = METADATA, DATA = DATA, .RESERVED = list()) ## RETURN VALUE ---- return(bin) } #' Convert portable OSL data to a Risoe.BINfileData object #' #' @description #' This function is defunct, use [convert_PSL2Risoe.BINfileData] instead. #' #' @param ... Unused. #' #' @md #' @export PSL2Risoe.BINfileData <- function(...) { .Defunct("convert_PSL2Risoe.BINfileData") } Luminescence/R/convert_Daybreak2CSV.R0000644000176200001440000000525614762554470017156 0ustar liggesusers#' Export measurement data produced by a Daybreak luminescence reader to CSV-files #' #' This function is a wrapper function around the functions [read_Daybreak2R] and #' [write_RLum2CSV] and it imports a Daybreak-file (TXT-file, DAT-file) #' and directly exports its content to CSV-files. If nothing is set for the #' argument `path` ([write_RLum2CSV]) the input folder will become the output folder. #' #' @param file [character] (**required**): #' name of the Daybreak-file (TXT-file, DAT-file) to be converted to CSV-files #' #' @param ... further arguments that will be passed to the function #' [read_Daybreak2R] and [write_RLum2CSV] #' #' @return #' The function returns either a CSV-file (or many of them) or for the option `export = FALSE` #' a list comprising objects of type [data.frame] and [matrix] #' #' @section Function version: 0.1.0 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Analysis-class], [RLum.Data-class], [RLum.Results-class], #' [utils::write.table], [write_RLum2CSV], [read_Daybreak2R] #' #' @keywords IO #' #' @examples #' #' \dontrun{ #' ##select your BIN-file #' file <- file.choose() #' #' ##convert #' convert_Daybreak2CSV(file) #' #' } #' #' @md #' @export convert_Daybreak2CSV <- function( file, ... ) { .set_function_name("convert_Daybreak2CSV") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(file, c("character", "RLum")) .validate_not_empty(file) ##set input arguments convert_Daybreak2R_settings.default <- list( raw = FALSE, verbose = TRUE, txtProgressBar = TRUE, export = TRUE ) ##modify list on demand convert_Daybreak2R_settings <- modifyList(x = convert_Daybreak2R_settings.default, val = list(...)) # Import file --------------------------------------------------------------------------------- if(!inherits(file, "RLum")){ object <- read_Daybreak2R( file = file, raw = convert_Daybreak2R_settings$raw, verbose = convert_Daybreak2R_settings$raw, txtProgressBar = convert_Daybreak2R_settings$raw ) }else{ object <- file } # Export to CSV ------------------------------------------------------------------------------- ##get all arguments we want to pass and remove the doubled one arguments <- c(list(object = object, export = convert_Daybreak2R_settings$export), list(...)) arguments[duplicated(names(arguments))] <- NULL ##this if-condition prevents NULL in the terminal if(convert_Daybreak2R_settings$export == TRUE){ invisible(do.call("write_RLum2CSV", arguments)) }else{ do.call("write_RLum2CSV", arguments) } } Luminescence/R/merge_RLum.Data.Spectrum.R0000644000176200001440000002141214762554470017735 0ustar liggesusers#' Merge function for RLum.Data.Spectrum S4 class objects #' #' This function allows to merge [RLum.Data.Spectrum-class] objects in #' different ways without modifying the original objects. #' #' **Supported merge operations are:** #' #' `"mean"` (default) #' #' The mean over the cell values is calculated using the function #' [rowMeans]. #' #' `"median"` #' #' The median over the cell values is calculated using the function #' [matrixStats::rowMedians]. #' #' `"sum"` #' #' All cell values will be summed up using the function [rowSums]. #' #' `"sd"` #' #' The standard deviation over the cell values is calculated using the function #' [matrixStats::rowSds]. #' #' `"var"` #' #' The variance over the cell values is calculated using the function #' [matrixStats::rowVars]. #' #' `"min"` #' #' The min values from the cell values is chosen using the function #' [matrixStats::rowMins][matrixStats::rowRanges]. #' #' `"max"` #' #' The max values from the cell values is chosen using the function #' [matrixStats::rowMins][matrixStats::rowRanges]. #' #' `"append"` (only for [RLum.Data.Curve-class]) #' #' Appends cell values of all curves to one combined data curve. The channel width #' is automatically re-calculated, but requires a constant channel width of the #' original data. #' #' `"-"` #' #' The cell sums of the last objects are subtracted from the first object. #' #' `"*"` #' #' The cell sums of the last objects are multiplied with the first object. #' #' `"/"` #' #' Values of the first object are divided by cell sums of the last objects. #' #' @param object [list] of [RLum.Data.Spectrum-class] (**required**): #' list of objects to be merged. #' #' @param merge.method [character] (**required**): #' method for combining of the objects, e.g. `'mean'` (default), `'median'`, #' `'sum'`, see details for #' further information and allowed methods. Note: Elements in slot info will #' be taken from the first object in the list. #' #' @param method.info [numeric] (*optional*): #' allows to specify how info elements of the input objects are combined, #' e.g. `1` means that just the elements from the first object are kept, #' `2` keeps only the info elements from the 2 object etc. #' If nothing is provided all elements are combined. #' #' @param max.temp.diff [numeric] (*with default*): #' maximum difference in the time/temperature values between the spectra to #' be merged: when differences exceed this threshold value, the merging #' occurs but a warning is raised. #' #' @return Returns an [RLum.Data.Spectrum-class] object. #' #' @note #' The information from the slot `recordType` is taken from the first #' object in the input list. The slot #' 'curveType' is filled with the name `merged`. #' #' @section S3-generic support: #' #' This function is fully operational via S3-generics: #' ``+``, ``-``, ``/``, ``*``, `merge` #' #' @section Function version: 0.1.1 #' #' @author #' Marco Colombo, Institute of Geography, Heidelberg University (Germany) #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [merge_RLum], [RLum.Data.Spectrum-class] #' #' @keywords utilities internal #' #' @examples #' #' ## load example data #' data(ExampleData.XSYG, envir = environment()) #' #' ## plot single curve #' plot_RLum(TL.Spectrum) #' #' ## sum two copies of the same curve #' merged <- merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum), #' merge.method = "sum") #' plot_RLum(merged) #' #' @md #' @export merge_RLum.Data.Spectrum <- function( object, merge.method = "mean", method.info, max.temp.diff = 0.1 ) { .set_function_name("merge_RLum.Data.Spectrum") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(object, "list") ## check if object is of a supported RLum.Data class num.objects <- length(object) temp.recordType.test <- sapply(object, function(x) { .validate_class(x, "RLum.Data.Spectrum", name = "All elements of 'object'") return(x@recordType) }) ## check for similar record types record.types <- unique(temp.recordType.test) if (length(record.types) > 1) { .throw_error("Only similar record types are supported; you are trying to merge: ", .collapse(record.types)) } merge.method <- .validate_args(merge.method, c("mean", "median", "sum", "sd", "var", "min", "max", "append", "-", "*", "/")) .validate_positive_scalar(max.temp.diff) ## Merge objects ---------------------------------------------------------- ## perform additional checks check.rows <- vapply(object, function(x) nrow(x@data), numeric(1)) check.cols <- vapply(object, function(x) ncol(x@data), numeric(1)) if (length(check.rows) == 0 || length(check.cols) == 0) { .throw_error("'object' contains no data") } if (length(unique(check.rows)) > 1 || length(unique(check.cols)) > 1) { .throw_error("'RLum.Data.Spectrum' objects of different size ", "cannot be merged") } ## collect the spectrum data from all objects x.vals <- rownames(object[[1]]@data) y.vals <- as.numeric(colnames(object[[1]]@data)) cameraType <- object[[1]]@info$cameraType temp.matrix <- sapply(1:num.objects, function(x) { ## row names must match exactly if (!identical(rownames(object[[x]]@data), x.vals)) .throw_error("'RLum.Data.Spectrum' objects with different channels ", "cannot be merged") ## check the camera type if (!identical(object[[x]]@info$cameraType, cameraType)) .throw_error("'RLum.Data.Spectrum' objects from different camera types", "cannot be merged") ## for time/temperature data we allow some small differences: we report ## a warning if they are too high, but continue anyway if (max(abs(as.numeric(colnames(object[[x]]@data)) - y.vals)) > max.temp.diff) { .throw_warning("The time/temperatures recorded are too different, ", "proceed with caution") } object[[x]]@data }) ## reshape all spectrum data into a 3D array num.rows <- check.rows[1] num.cols <- check.cols[1] temp.matrix <- array(temp.matrix, c(num.rows, num.cols, num.objects)) if (merge.method == "sum") { temp.matrix <- apply(temp.matrix, 2, rowSums) } else if (merge.method == "mean") { temp.matrix <- apply(temp.matrix, 2, rowMeans) } else if (merge.method == "median") { temp.matrix <- apply(temp.matrix, 2, matrixStats::rowMedians) } else if (merge.method == "sd") { temp.matrix <- apply(temp.matrix, 2, matrixStats::rowSds) } else if (merge.method == "var") { temp.matrix <- apply(temp.matrix, 2, matrixStats::rowVars) } else if (merge.method == "max") { temp.matrix <- apply(temp.matrix, 2, matrixStats::rowMaxs) } else if (merge.method == "min") { temp.matrix <- apply(temp.matrix, 2, matrixStats::rowMins) } else if (merge.method == "append") { temp.matrix <- array(temp.matrix, c(num.rows, num.cols * num.objects)) } else if (merge.method == "-") { if (num.objects > 2) { temp.matrix <- temp.matrix[, , 1] - rowSums(temp.matrix[, , -1]) } else { temp.matrix <- temp.matrix[, , 1] - temp.matrix[, , 2] } } else if (merge.method == "*") { if (num.objects > 2) { temp.matrix <- temp.matrix[, , 1] * rowSums(temp.matrix[, , -1]) } else { temp.matrix <- temp.matrix[, , 1] * temp.matrix[, , 2] } } else if (merge.method == "/") { if (num.objects > 2) { temp.matrix <- temp.matrix[, , 1] / rowSums(temp.matrix[, , -1]) } else { temp.matrix <- temp.matrix[, , 1] / temp.matrix[, , 2] } ## replace infinities with 0 and throw warning idx.inf <- which(is.infinite(temp.matrix)) if (length(idx.inf) > 0) { temp.matrix[idx.inf] <- 0 .throw_warning(length(idx.inf), " 'inf' values have been replaced by 0 in the matrix") } } ## restore row and column names from the first object rownames(temp.matrix) <- rownames(object[[1]]@data) colnames(temp.matrix) <- rep(colnames(object[[1]]@data), if (merge.method == "append") num.objects else 1) ## add the info slot if (missing(method.info)) { temp.info <- unlist(lapply(1:num.objects, function(x) { object[[x]]@info }), recursive = FALSE) } else { temp.info <- object[[method.info]]@info } ## Build new RLum.Data.Spectrum object ------------------------------------ new.Data.Spectrum <- set_RLum( class = as.character(class(object[[1]])), originator = "merge_RLum.Data.Spectrum", recordType = object[[1]]@recordType, curveType = "merged", data = temp.matrix, info = temp.info, .pid = unlist(lapply(object, function(x) { x@.uid })) ) return(new.Data.Spectrum) } Luminescence/R/fit_ThermalQuenching.R0000644000176200001440000002761214762554470017336 0ustar liggesusers#' @title Fitting Thermal Quenching Data #' #' @description Applying a nls-fitting to thermal quenching data. #' #' @details #' #' **Used equation**\cr #' #' The equation used for the fitting is #' #' \deqn{y = (A / (1 + C * (exp(-W / (k * x))))) + c} #' #' *W* is the energy depth in eV and *C* is dimensionless constant. *A* and *c* are used to #' adjust the curve for the given signal. *k* is the Boltzmann in eV/K and *x* is the absolute #' temperature in K. #' #' **Error estimation**\cr #' #' The error estimation is done be varying the input parameters using the given uncertainties in #' a Monte Carlo simulation. Errors are assumed to follow a normal distribution. #' #' **`start_param`** \cr #' #' The function allows the injection of own start parameters via the argument `start_param`. The #' parameters needs to be provided as names list. The names are the parameters to be optimised. #' Examples: `start_param = list(A = 1, C = 1e+5, W = 0.5, c = 0)` #' #' #' **`method_control`** \cr #' #' The following arguments can be provided via `method_control`. Please note that arguments provided #' via `method_control` are not further tested, i.e., if the function crashes your input was probably #' wrong. #' #' \tabular{lll}{ #' **ARGUMENT** \tab **TYPE** \tab **DESCRIPTION**\cr #' `upper` \tab named [vector] \tab sets upper fitting boundaries, if provided boundaries for all arguments #' are required, e.g., `c(A = 0, C = 0, W = 0, c = 0)` \cr #' `lower` \tab names [vector] \tab set lower fitting boundaries (see `upper` for details) \cr #' `trace` \tab [logical] \tab enable/disable progression trace for [minpack.lm::nlsLM]\cr #' `weights` \tab [numeric] \tab option to provide own weights for the fitting, the length of this #' vector needs to be equal to the number for rows of the input `data.frame`. If set to `NULL` no weights #' are applied. The weights are defined by the third column of the input `data.frame`. #' } #' #' @param data [data.frame] (**required**): input data with three columns, the first column contains #' temperature values in deg. C, columns 2 and 3 the dependent values with its error #' #' @param start_param [list] (*optional*): option to provide the start #' parameters for the fitting, see details #' #' @param method_control [list] (*optional*): further options to fine tune #' the fitting, see details for #' further information #' #' @param n.MC [numeric] (*with default*): number of Monte Carlo runs for the error estimation. If `n.MC` is #' `NULL` or `<=1`, the error estimation is skipped #' #' @param verbose [logical] (*with default*): enable/disable output to the #' terminal. #' #' @param plot [logical] (*with default*): enable/disable the plot output. #' #' @param ... further arguments that can be passed to control the plotting, support are `main`, `pch`, #' `col_fit`, `col_points`, `lty`, `lwd`, `xlab`, `ylab`, `xlim`, `ylim`, `xaxt` #' #' @return #' #' The function returns numerical output and an (*optional*) plot. #' #' -----------------------------------\cr #' `[ NUMERICAL OUTPUT ]`\cr #' -----------------------------------\cr #' #' **`RLum.Results`**-object #' #' **slot:** **`@data`** #' #' `[.. $data : data.frame]`\cr #' #' A table with all fitting parameters and the number of Monte Carlo runs used for the error estimation. #' #' `[.. $fit : nls object]` \cr #' #' The nls [stats::nls] object returned by the function [minpack.lm::nlsLM]. This object #' can be further passed to other functions supporting an nls object (cf. details section #' in [stats::nls]) #' #' **slot:** **`@info`** #' #' `[.. $call : call]`\cr #' #' The original function call. #' #' -----------------------------------\cr #' `[ GAPHICAL OUTPUT ]`\cr #' -----------------------------------\cr #' #' Plotted are temperature against the signal and their uncertainties. #' The fit is shown as dashed-line (can be modified). Please note that for the fitting the absolute #' temperature values are used but are re-calculated to deg. C for the plot. #' #' #' @section Function version: 0.1.0 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @references #' #' Wintle, A.G., 1975. Thermal Quenching of Thermoluminescence in Quartz. Geophys. J. R. astr. Soc. 41, 107–113. #' #' @seealso [minpack.lm::nlsLM] #' #' @examples #' #' ##create short example dataset #' data <- data.frame( #' T = c(25, 40, 50, 60, 70, 80, 90, 100, 110), #' V = c(0.06, 0.058, 0.052, 0.051, 0.041, 0.034, 0.035, 0.033, 0.032), #' V_X = c(0.012, 0.009, 0.008, 0.008, 0.007, 0.006, 0.005, 0.005, 0.004)) #' #' ##fit #' fit_ThermalQuenching( #' data = data, #' n.MC = NULL) #' #' @md #' @export fit_ThermalQuenching <- function( data, start_param = list(), method_control = list(), n.MC = 100, verbose = TRUE, plot = TRUE, ... ) { .set_function_name("fit_ThermalQuenching") on.exit(.unset_function_name(), add = TRUE) # Self-call ----------------------------------------------------------------------------------- if(inherits(data, "list")){ ##get arguments args <- as.list(match.call()) args[[1]] <- NULL args$data <- NULL ##run function results_list <- lapply(data, function(x){ do.call(fit_ThermalQuenching, c(list(data = x),args)) }) ##combine and return return(merge_RLum(results_list)) } ## Integrity tests -------------------------------------------------------- .validate_class(data, "data.frame", extra = "a 'list' of such objects") if(nrow(data) < 1 || ncol(data) < 3) .throw_error("'data' is empty or has fewer than three columns") if (ncol(data) > 3) { .throw_warning("'data' has more than 3 columns, taking only the first three") data <- data[, 1:3] } if (anyNA(data)) { .throw_warning("NA values in 'data' automatically removed") data <- na.exclude(data) } # Prepare data -------------------------------------------------------------------------------- ##set formula for quenching accordingt to Wintle 1973 ##we here add a constant, otherwise the fit will not really work k <- 8.6173303e-05 f <- y ~ (A / (1 + C * (exp(-W / (k * x))))) + c ##set translate values in data.frame to absolute temperature data_raw <- data data[[1]] <- data[[1]] + 273.15 ##start parameter start_param <- modifyList(x = list( A = max(data[[2]]), C = max(data[[1]] * 10e+5), W = 0.5, c = 0), val = start_param) ##method control method_control <- modifyList( x = list( lower = c(A = 0, C = 0, W = 0, c = 0), upper = c(A = 10 * start_param$A, C = Inf, W = 10, c = start_param$A), trace = FALSE, weights = data[[3]] ), val = method_control) # Fitting ------------------------------------------------------------------------------------- ##guine fitting fit <- try(minpack.lm::nlsLM( formula = f, data = data.frame(x = data[[1]], y = data[[2]]), weights = if(is.null(method_control$weights)){ rep(1, length(data[[2]])) } else { method_control$weights}, control = list( maxiter = 500, maxfev = 1000, trace = method_control$weights ), start = start_param, lower = method_control$lower, upper = method_control$upper ), silent = TRUE) ##only continue if the first fitting worked out if(!inherits(fit, "try-error")){ ##reset n.MC if(is.null(n.MC) || n.MC < 1) n.MC <- 1 ##Prepare MC runs for the fitting x_MC <- data[[1]] y_MC <- matrix( data = data[[2]] + rnorm(n.MC * length(x_MC)) * data[[3]], nrow = length(x_MC), ncol = n.MC) y_MC[y_MC < 0] <- 0 ##run fitting fit_MC <- lapply(1:n.MC, function(x){ temp <- try(minpack.lm::nlsLM( formula = f, data = data.frame(x = x_MC, y = y_MC[,x]), weights = if(is.null(method_control$weights)){ rep(1, length(data[[2]])) } else { method_control$weights}, control = list( maxiter = 500, maxfev = 1000 ), start = start_param, lower = method_control$lower, upper = method_control$upper ), silent = TRUE) ##return value if(inherits(temp, 'try-error')) { return(NULL) } else{ temp } }) }else{ .throw_message("Fitting failed, NULL returned") return(NULL) } ## remove NULL (the fit was not successful) fit_MC <- .rm_NULL_elements(fit_MC) n.MC <- length(fit_MC) # Extract values ------------------------------------------------------------------------------ ##(1) - extract parameters from main fit fit_coef <- coef(fit) A <- fit_coef[["A"]] C <- fit_coef[["C"]] W <- fit_coef[["W"]] c <- fit_coef[["c"]] ##(2) - extract values from MC run fit_coef_MC_full <- vapply(X = fit_MC, FUN = coef, FUN.VALUE = numeric(4)) fit_coef_MC <- round(matrixStats::rowSds(fit_coef_MC_full),3) A_MC_X <- fit_coef_MC[1] C_MC_X <- fit_coef_MC[2] W_MC_X <- fit_coef_MC[3] c_MC_X <- fit_coef_MC[4] # Terminal output ----------------------------------------------------------------------------- if(verbose){ cat("\n[fit_ThermalQuenching()]\n\n") cat(" A = ", A, " \u00b1 ",A_MC_X,"\n") cat(" C = ", C, " \u00b1 ",C_MC_X,"\n") cat(" W = ", W, " \u00b1 ",W_MC_X, " eV\n") cat(" c = ", c, " \u00b1 ",c_MC_X, "\n") cat(" --------------------------------\n") } # Potting ------------------------------------------------------------------------------------- if(plot) { ##plot settings plot_settings <- list( xlim = range(data[[1]]), ylim = c(min(data[[2]]) - data[[3]][which.min(data[[2]])], max(data[[2]]) + data[[3]][which.max(data[[2]])]), pch = 1, xaxt = "n", xlab = "Temperature [\u00b0C]", ylab = "Dependent [a.u.]", main = "Thermal quenching", lty = 2, col_points = "black", col_fit = "red", lwd = 1.3, mtext = if(n.MC == 1) "" else paste0("n.MC = ", n.MC) ) ##overwrite settings plot_settings <- modifyList(x = plot_settings, val = list(...)) ##create plot window plot( x = NA, y = NA, xlim = plot_settings$xlim, ylim = plot_settings$ylim, xaxt = plot_settings$xaxt, xlab = plot_settings$xlab, ylab = plot_settings$ylab, main = plot_settings$main ) ##add axis with correct temperature if(!is.null(plot_settings$xaxt) && plot_settings$xaxt == "n"){ at <- pretty(round(axTicks(side = 1) - 273.15)) axis(side = 1, at = at + 273.15, labels = at) } ##reset n.MC if(!is.null(n.MC) && n.MC > 1){ ##add MC curves for(i in 1:n.MC){ A <- fit_coef_MC_full[1,i] C <- fit_coef_MC_full[2,i] W <- fit_coef_MC_full[3,i] c <- fit_coef_MC_full[4,i] x <- 0 curve((A / (1 + C * (exp(-W / (k * x))))) + c, col = rgb(0,0,0,.1), add = TRUE) } } ##add points and uncertainties points(data[, 1:2], pch = plot_settings$pch, lwd = 2, col = plot_settings$col_points) segments(x0 = data[[1]], x1 = data[[1]], y0 = data[[2]] + data[[3]], y1 = data[[2]] - data[[3]], col = plot_settings$col_points ) ##add central fit A <- fit_coef[["A"]] C <- fit_coef[["C"]] W <- fit_coef[["W"]] c <- fit_coef[["c"]] x <- 0 curve((A / (1 + C * (exp( -W / (k * x) )))) + c, lty = plot_settings$lty, lwd = plot_settings$lwd, col = plot_settings$col_fit, add = TRUE ) ##add mtext mtext(side = 3, text = plot_settings$mtext) } # Return -------------------------------------------------------------------------------------- output_df <- data.frame( A = A, A_X = A_MC_X, C = C, C_X = C_MC_X, W = W, W_X = W_MC_X, c = c, c_X = c_MC_X, n.MC = n.MC ) output <- set_RLum( class = "RLum.Results", data = list( data = output_df, fit = fit ), info = list( call = sys.call() ) ) return(output) } Luminescence/R/convert_RLum2Risoe.BINfileData.R0000644000176200001440000002106514762554470020776 0ustar liggesusers#'@title Converts RLum.Analysis and RLum.Data.Curve objects to RLum2Risoe.BINfileData objects #' #' @description The functions converts [RLum.Analysis-class] and #' [RLum.Data.Curve-class] objects (or a [list] of such objects) to #' [Risoe.BINfileData-class] objects. The function intends to provide a #' minimum of compatibility between both formats. The created #' [RLum.Analysis-class] object can be later exported to a BIN-file using #' function [write_R2BIN]. #' #'@param object [RLum.Analysis-class] or [RLum.Data.Curve-class] (**required**): input object to #'be converted #' #'@param keep.position.number [logical] (*with default*): keeps the original #' position number or re-calculate the numbers to avoid doubling #' #'@section Function version: 0.1.4 #' #'@author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@seealso [RLum.Analysis-class], [RLum.Data.Curve-class], [write_R2BIN] #' #'@note The conversion can be never perfect. The `RLum` objects may contain information which are #'not part of the [Risoe.BINfileData-class] definition. #' #'@keywords IO #' #'@examples #' #'##simple conversion using the example dataset #'data(ExampleData.RLum.Analysis, envir = environment()) #'convert_RLum2Risoe.BINfileData(IRSAR.RF.Data) #' #'@return The function returns a [Risoe.BINfileData-class] object. #' #'@md #'@export convert_RLum2Risoe.BINfileData <- function( object, keep.position.number = FALSE ) { .set_function_name("convert_RLum2Risoe.BINfileData") on.exit(.unset_function_name(), add = TRUE) # Self call ----------------------------------------------------------------------------------- if(is(object, "list")){ ##call function object_list <- lapply(object, function(x) { convert_RLum2Risoe.BINfileData(x) }) ##merge objects if(length(object_list) == 1){ return(object_list[[1]]) }else{ return(merge_Risoe.BINfileData(object_list, keep.position.number = keep.position.number)) } } ## Integrity tests -------------------------------------------------------- .validate_class(object, c("RLum.Analysis", "RLum.Data.Curve"), extra = "a 'list' of such objects") .validate_not_empty(object) ##RLum.Data.Curve if(inherits(object, "RLum.Data.Curve")) object <- set_RLum(class = "RLum.Analysis", records = list(object)) # Set PROTOTYPE & DATA -------------------------------------------------------------------------- ##set Risoe.BINfiledata prototype prototype <- set_Risoe.BINfileData() ##grep allowed names allowed_names <- names(prototype@METADATA) ##grep records (this will avoid further the subsetting) records <- object@records ##write DATA prototype@DATA <- lapply(records, function(x) {x@data[,2]}) # Create METADATA ----------------------------------------------------------------------------- ##create METADATA list METADATA_list <- lapply(records, function(x){ ##grep matching arguments only temp <- x@info[toupper(names(x@info)) %in% allowed_names] ##account for the case that no matching name was found if(length(temp) != 0){ ##correct names names(temp) <- toupper(names(temp)) return(temp) }else{ return(list(ID = NA)) } }) ##make data.frame out of it METADATA_df <- as.data.frame(data.table::rbindlist(METADATA_list, fill = TRUE)) ## sanitize version for change if it comes in wrongly because this ## cannot be handled by merge if(!is.null(METADATA_df$VERSION)) METADATA_df$VERSION <- as.character(METADATA_df$VERSION) ##write METADATA prototype@METADATA <- merge(prototype@METADATA, METADATA_df, all = TRUE) ## +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# ##fill various missing values ##helper function ...otherwise the code gets too nasty ... only used for NA values! .replace <- function(field, value){ ## get class tmp_class <- class(prototype@METADATA[[field]])[1] ## convert value <- switch( tmp_class, "factor" = as.factor(prototype@METADATA[[field]]), as(prototype@METADATA[[field]], tmp_class) ) prototype@METADATA[[field]][is.na(prototype@METADATA[[field]])] <<- value } ## >> ID << ## prototype@METADATA[["ID"]] <- seq_along(records) ## >> SEL << ## prototype@METADATA[["SEL"]] <- TRUE ## >> VERSION << ## .replace("VERSION", "08") ## >> RECTYPE << ## .replace("RECTYPE", 0) ## >> NPOINTS << ## if (anyNA(prototype@METADATA[["NPOINTS"]])) { prototype@METADATA[["NPOINTS"]] <- vapply(records, function(x){ length(x@data)/2 }, FUN.VALUE = numeric(1)) } ## >> LENGTH << + PREVIOUS if (anyNA(prototype@METADATA[["LENGTH"]])) { ##even we have values here before, it will make no difference prototype@METADATA[["LENGTH"]] <- (prototype@METADATA[["NPOINTS"]] * 4) + 507 prototype@METADATA[["PREVIOUS"]] <- c(0,prototype@METADATA[["LENGTH"]][1:length(records) - 1]) } ## >> RUN << ## ##if there is only one NA, we should overwrite it, to be consistent if (anyNA(prototype@METADATA[["RUN"]])) prototype@METADATA[["RUN"]] <- 1:length(records) ## >> SET << ## .replace("SET", 1) ## >> GRAIN << ## .replace("GRAIN", 0) ## >> GRAINNUMBER << ## .replace("GRAINNUMBER", 0) ## >> USER << ## .replace("USER", "RLum.Data") ## >> DTYPE << ## .replace("DTYPE", "Natural") ## >> LIGHTSOURCE << ## .replace("LIGHTSOURCE", "None") ## >> SAMPLE << ## if (anyNA(prototype@METADATA[["SAMPLE"]])) { ##get only the id's to change temp_id <- which(is.na(prototype@METADATA[["SAMPLE"]])) ##set name prototype@METADATA[["SAMPLE"]] <- vapply(temp_id, function(x){ if(any(names(records[[x]]@info) == "name")){ records[[x]]@info$name }else{ "unknown" } }, character(length = 1)) } ## >> COMMENT << ## .replace("COMMENT", "convert_RLum2Risoe.BINfileData()") ## >> FNAME << ## .replace("FNAME", " ") ## >> DATE << ## + TIME if (anyNA(prototype@METADATA[["DATE"]])) { ##get only the id's to change temp_id <- which(is.na(prototype@METADATA[["DATE"]])) ##set date prototype@METADATA[["DATE"]] <- vapply(temp_id, function(x){ if(any(names(records[[x]]@info) == "startDate")){ strtrim(records[[x]]@info[["startDate"]], width = 8) }else{ as.character(format(Sys.Date(),"%Y%m%d")) } }, character(length = 1)) ##set time prototype@METADATA[["TIME"]] <- vapply(temp_id, function(x){ if(any(names(records[[x]]@info) == "startDate")){ substr(records[[x]]@info[["startDate"]], start = 9, stop = 14) }else{ as.character(format(Sys.time(),"%H%m%S")) } }, character(length = 1)) } ## >> LOW << ## if (anyNA(prototype@METADATA[["LOW"]])) { ##get only the id's to change temp_id <- which(is.na(prototype@METADATA[["LOW"]])) ##set date prototype@METADATA[["LOW"]] <- vapply(temp_id, function(x){ min(records[[x]]@data[,1]) }, numeric(length = 1)) } ## >> HIGH << ## if (anyNA(prototype@METADATA[["HIGH"]])) { ##get only the id's to change temp_id <- which(is.na(prototype@METADATA[["HIGH"]])) ##set date prototype@METADATA[["HIGH"]] <- vapply(temp_id, function(x){ max(records[[x]]@data[,1]) }, numeric(length = 1)) } ## >> SEQUENCE << ## .replace("SEQUENCE", "") # METADA >> correct information ------------------------------------------------------------------------- ##we have to correct the LTYPE, the format is rather strict ##(a) create LTYPE from names of objects LTYPE <- vapply(names(object), function(s){ if(grepl(pattern = " (", x = s, fixed = TRUE)){ strsplit(s, split = " (", fixed = TRUE)[[1]][1] }else{ s } }, FUN.VALUE = character(1)) ##(b) replace characters ##(b.1) irradiation LTYPE <- gsub(pattern = "irradiation", replacement = "USER", fixed = TRUE, x = LTYPE) ##(b.2 RF LTYPE <- gsub(pattern = "RF", replacement = "RL", fixed = TRUE, x = LTYPE) ##set value prototype@METADATA[["LTYPE"]] <- LTYPE ##correct USER ##limit user to 8 characters prototype@METADATA[["USER"]] <- strtrim(prototype@METADATA[["USER"]], 8) ##correct SAMPLE ##limit user to 21 characters prototype@METADATA[["SAMPLE"]] <- strtrim(prototype@METADATA[["SAMPLE"]], 20) ##replace all remaining NA values by 0 ##all remaining values are numbers prototype@METADATA <- replace(prototype@METADATA, is.na(prototype@METADATA), 0L) # Return -------------------------------------------------------------------------------------- return(prototype) } Luminescence/R/methods_DRAC.R0000644000176200001440000002027114762554470015464 0ustar liggesusers################################################################################## ## METHODS FOR S3 GENERICS ## ################################################################################## ## ---------------------------------------------------------------------------## ## DATA FRAME COERCION METHOD ## This is a method for the as.data.frame S3 generic. We need this to intercept the ## DRAC list object after it hast passed the actual list-method. After it was ## coerced to a data.frame we assign new column names (DRAC ID keys) and ## make sure that all columns are either of class 'character' or 'numeric'. ## Finally, we attach a further class name to identify it as a valid DRAC object ## when passed to use_DRAC #' @export as.data.frame.DRAC.list <- function(x, row.names = NULL, optional = FALSE, ...) { DF <- as.data.frame.list(x) colnames(DF) <- paste0("TI:", 1:ncol(DF)) for (i in 1:ncol(DF)) { if (is.factor(DF[ ,i])) DF[ ,i] <- as.character(DF[, i]) } class(DF) <- c("data.frame", "DRAC.data.frame") return(DF) } ## ---------------------------------------------------------------------------## ## PRINT METHOD #' @export print.DRAC.highlights <- function(x, ...) { x <- as.list(x) names <- names(x) mapply(function(el, name) { cat(paste0(attributes(el)$key, " = ", name,":\n ", paste(el, collapse = ",\n "), "\n")) }, x, names) } #' @export print.DRAC.list <- function(x, blueprint = FALSE, ...) { ## CASE 1: Pretty print the structure of the DRAC list if (!blueprint) { limit <- 80 for (i in 1:length(x)) { # for pretty printing we insert newlines and tabs at specified lengths ls <- attributes(x[[i]])$description ls.n <- nchar(ls) ls.block <- floor(ls.n / limit) strStarts <- seq(0, ls.n, limit) strEnds <- seq(limit-1, ls.n + limit, limit) blockString <- paste(mapply(function(start, end) { trimmedString <- paste(substr(ls, start, end), "\n\t\t\t") if (substr(trimmedString, 1, 1) == " ") trimmedString <- gsub("^[ ]*", "", trimmedString) return(trimmedString) }, strStarts, strEnds), collapse="") msg <- paste(attributes(x[[i]])$key, "=>",names(x)[i], "\n", "\t VALUES =", .collapse(x[[i]], quote = FALSE), "\n", "\t ALLOWS 'X' = ", attributes(x[[i]])$allowsX, "\n", "\t REQUIRED =", attributes(x[[i]])$required, "\n", "\t DESCRIPTION = ", blockString, "\n" ) if (!is.null(levels(x[[i]]))) { msg <- paste(msg, "\t OPTIONS = ", .collapse(levels(x[[i]]), quote = FALSE), "\n\n") } else { msg <- paste(msg, "\n") } cat(msg) } } ## CASE 2: Return a 'blueprint' that can be copied from the console to a ## script so the user does not need to write down all >50 fields by hand if (blueprint) { var <- as.list(sys.call())[[2]] names <- names(x) for (i in 1:length(x)) { # in case of factors also show available levels as comments so you don't # have to look it up if (is.factor(x[[i]])) options <- paste("# OPTIONS:", .collapse(levels(x[[i]]), quote = FALSE)) else options <- "" ## decide if values should be quoted use.quotes <- is.character(x[[i]]) || is.factor(x[[i]]) cat(paste0(var, "$`", names[i], "` <- c(", .collapse(x[[i]], quote = use.quotes), ") ", options , "\n")) } message("\n\t You can copy all lines above to your script and fill in the data.") } } ## ---------------------------------------------------------------------------## ## DOUBLE SQUARE BRACKETS METHOD #' @export `[[<-.DRAC.list` <- function(x, i, value) { .set_function_name("[[<-.DRAC.list]]") on.exit(.unset_function_name(), add = TRUE) ## REJECT ALL INADEQUATE CLASSES ---- acceptedClasses <- c("integer", "character", "numeric", "factor") if (!.validate_class(value, acceptedClasses, throw.error = FALSE)) { return(x) } ## CHECK INPUT LENGTH ---- if (!.validate_length(value, length(x[[i]]), throw.error = FALSE, name = names(x)[i])) { return(x) } ## CHECK INPUT CLASS ---- class.old <- attr(x[[i]], "default_class") class.new <- class(value) ## CHECK INPUT FIELDS THAT ALLOW 'X' ----- # the following checks apply to fields that are normally numeric, but also # accept 'X' as input. this EXCLUDES factors! if (class.old != "factor") { # some input fields allow 'X' as input, so in terms of R can be of class # "character" or "numeric/integer". hence, we check if input is "X" and # if the field allows it. If so, we change the old class to "character". if (any(value == "X") && attributes(x[[i]])$allowsX) { if (anyNA(as.numeric(value[which(value != "X")]))) { .throw_warning("Cannot coerce '", value[which(value != "X")], "' to a numeric value, input must be numeric or 'X'") return(x) } class.old <- "character" } # where the input field is already "X" we have to check whether the new # non-character input is allowed if (!all(is.na(x[[i]]))) { if (any(x[[i]] == "X") && attributes(x[[i]])$allowsX) { if (anyNA(as.numeric(value[which(value != "X")]))) { .throw_warning("Cannot coerce '", value[which(value != "X")], "' to a numeric value, input must be numeric or 'X'\n") return(x) } class.new <- "character" value <- as.character(value) } } } # numeric input can be both of class 'integer' or 'numeric'. We will # allow any combination and reject only non-numeric/integer input if (class.old == "numeric" || class.old == "integer") { if (class.new != class.old) { ## check if coercion is possible if (anyNA(suppressWarnings(as.numeric(value)))) { .throw_warning(names(x)[i], ": found ", class.new, ", expected ", class.old, " -> cannot coerce, set NAs") if(class.old == "integer") value <- NA_integer_ else value <- NA_real_ } else { ## try coercion .throw_warning(names(x)[i], ": found ", class.new, ", expected ", class.old, " -> coercing to ", class.old) if(class.old == "integer") value <- as.integer(value) else value <- as.numeric(value) } } } # for 'factor' and 'character' elements only 'character' input is allowed if (class.old == "factor" || class.old == "character") { if (class.new != "character") { .throw_warning(names(x)[i], ": Input must be of class 'character'") return(x) } } ## CHECK IF VALID OPTION ---- # in case of 'factor's the user is only allowed input that matches one of # the options specified by the factor levels. if it is a valid option, # the input is converted to a factor to keep the information. if (class.old == "factor") { levels <- levels(x[[i]]) if (any(`%in%`(value, levels) == FALSE)) { .throw_warning(names(x)[i], ": Invalid option, valid options are: ", .collapse(levels)) return(x) } else { value <- factor(value, levels) } } ## WRITE NEW VALUES ---- # we strip our custom class and the attributes, pass the object to the default generic and # finally re-attach our class and attributes tmp.attributes <- attributes(x[[i]])[names(attributes(x[[i]])) != "class"] class(x) <- "list" x <- `[[<-`(x, i, value) attributes(x[[i]]) <- tmp.attributes if (class.old == "factor") class(x[[i]]) <- "factor" class(x) <- c("DRAC.list", "list") return(x) } ## ---------------------------------------------------------------------------## ## SINGLE SQUARE BRACKET METHOD #' @export `[<-.DRAC.list` <- function(x, i, value) { return(`[[<-`(x, i, value)) } ## ---------------------------------------------------------------------------## ## DOLLAR SIGN METHOD #' @export `$<-.DRAC.list`<- function(x, name, value) { # this is straightforward; retrieve the index and pass the object # to the custom [[<- function, which does the data verification index <- which(names(x) == name) x[[index]] <- value return(x) } Luminescence/R/calc_SourceDoseRate.R0000644000176200001440000001753214762554470017107 0ustar liggesusers#' @title Calculation of the source dose rate via the date of measurement #' #' @description #' Calculating the dose rate of the irradiation source via the date of #' measurement based on: source calibration date, source dose rate, dose rate #' error. The function returns a data.frame that provides the input argument #' dose_rate for the function [convert_Second2Gray]. #' #' Calculation of the source dose rate based on the time elapsed since the last #' calibration of the irradiation source. Decay parameters assume a Sr-90 beta #' source. \deqn{dose.rate = D0 * exp(-log(2) / T.1/2 * t)} \cr with: D0 <- #' calibration dose rate T.1/2 <- half-life of the source nuclide (here in #' days) t <- time since source calibration (in days) log(2) / T.1/2 equals the #' decay constant lambda #' #' Information on the date of measurements may be taken from the data's #' original .BIN file (using e.g., `BINfile <- readBIN2R()` and the slot #' `BINfile@@METADATA$DATE`) #' #' **Allowed source types and related values** #' #' \tabular{rllll}{ #' **#** \tab **Source type** \tab **T.1/2** \tab **Reference** \cr #' `[1]` \tab Sr-90 \tab 28.90 y \tab NNDC, Brookhaven National Laboratory \cr #' `[2]`\tab Am-214 \tab 432.6 y \tab NNDC, Brookhaven National Laboratory \cr #' `[3]` \tab Co-60 \tab 5.274 y \tab NNDC, Brookhaven National Laboratory \cr #' `[4` \tab Cs-137 \tab 30.08 y \tab NNDC, Brookhaven National Laboratory} #' #' @param measurement.date [character] or [Date] (*with default*): Date of measurement in `"YYYY-MM-DD"`. #' If no value is provided, the date will be set to today. The argument can be provided as vector. #' #' @param calib.date [character] or [Date] (**required**): #' date of source calibration in `"YYYY-MM-DD"` #' #' @param calib.dose.rate [numeric] (**required**): #' dose rate at date of calibration in Gy/s or Gy/min #' #' @param calib.error [numeric] (**required**): #' error of dose rate at date of calibration Gy/s or Gy/min #' #' @param source.type [character] (*with default*): #' specify irradiation source (`Sr-90`, `Co-60`, `Cs-137`, `Am-214`), #' see details for further information #' #' @param dose.rate.unit [character] (*with default*): #' specify dose rate unit for input (`Gy/min` or `Gy/s`), the output is given in #' Gy/s as valid for the function [convert_Second2Gray] #' #' @param predict [integer] (*with default*): #' option allowing to predict the dose rate of the source over time in days #' set by the provided value. Starting date is the value set with #' `measurement.date`, e.g., `calc_SourceDoseRate(..., predict = 100)` calculates #' the source dose rate for the next 100 days. #' #' @return #' Returns an S4 object of type [RLum.Results-class]. #' Slot `data` contains a [list] with the following structure: #' #' ``` #' $ dose.rate (data.frame) #' .. $ dose.rate #' .. $ dose.rate.error #' .. $ date (corresponding measurement date) #' $ parameters (list) #' .. $ source.type #' .. $ halflife #' .. $ dose.rate.unit #' $ call (the original function call) #' ``` #' #' The output should be accessed using the function [get_RLum]. #' A plot method of the output is provided via [plot_RLum]. #' #' @note #' Please be careful when using the option `predict`, especially when a #' multiple set for `measurement.date` and `calib.date` is provided. For the #' source dose rate prediction, the function takes the last `measurement.date` #' value and predicts from that the source dose rate for the number of days #' requested, that is: the (multiple) original input will be replaced. #' However, the function does not change entries for the calibration dates, #' but mixes them up. Therefore, it is not recommended to use this option #' when multiple calibration dates (`calib.date`) are provided. #' #' @section Function version: 0.3.2 #' #' @author #' Margret C. Fuchs, HZDR, Helmholtz-Institute Freiberg for Resource Technology (Germany) \cr #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' #' @seealso [convert_Second2Gray], [get_RLum], [plot_RLum] #' #' @references #' NNDC, Brookhaven National Laboratory `http://www.nndc.bnl.gov/` #' #' @keywords manip #' #' @examples #' #' ##(1) Simple function usage #' ##Basic calculation of the dose rate for a specific date #' dose.rate <- calc_SourceDoseRate(measurement.date = "2012-01-27", #' calib.date = "2014-12-19", #' calib.dose.rate = 0.0438, #' calib.error = 0.0019) #' #' ##show results #' get_RLum(dose.rate) #' #' ##(2) Usage in combination with another function (e.g., convert_Second2Gray() ) #' ## load example data #' data(ExampleData.DeValues, envir = environment()) #' #' ## use the calculated variable dose.rate as input argument #' ## to convert De(s) to De(Gy) #' convert_Second2Gray(ExampleData.DeValues$BT998, dose.rate) #' #' ##(3) source rate prediction and plotting #' dose.rate <- calc_SourceDoseRate(measurement.date = "2012-01-27", #' calib.date = "2014-12-19", #' calib.dose.rate = 0.0438, #' calib.error = 0.0019, #' predict = 1000) #' plot_RLum(dose.rate) #' #' #'##(4) export output to a LaTeX table (example using the package 'xtable') #'\dontrun{ #' xtable::xtable(get_RLum(dose.rate)) #' #'} #' #' @md #' @export calc_SourceDoseRate <- function( measurement.date = Sys.Date(), calib.date, calib.dose.rate, calib.error, source.type = "Sr-90", dose.rate.unit = "Gy/s", predict = NULL ) { .set_function_name("calc_SourceDoseRate") on.exit(.unset_function_name(), add = TRUE) .validate_class(measurement.date, c("Date", "character")) .validate_class(calib.date, c("Date", "character")) if (is(measurement.date, "character")) { measurement.date <- as.Date(measurement.date) } ##calibration date if(is(calib.date, "character")) { calib.date <- as.Date(calib.date) } ## source type and dose rate unit source.type <- .validate_args(source.type, c("Sr-90", "Am-214", "Co-60", "Cs-137")) dose.rate.unit <- .validate_args(dose.rate.unit, c("Gy/s", "Gy/min")) # --- if predict is set if(!is.null(predict) && predict > 1){ measurement.date <- seq(tail(measurement.date), by = 1, length = predict) } # -- calc days since source calibration decay.days <- measurement.date - calib.date # -- calc dose rate of source at date of measurement, considering the chosen source-type ##set halflife halflife.years <- switch( source.type, "Sr-90" = 28.90, "Am-241" = 432.6, "Co-60" = 5.274, "Cs-137" = 30.08 ) halflife.days <- halflife.years * 365 # N(t) = N(0)*e^((lambda * t) with lambda = log(2)/T1.2) measurement.dose.rate <- (calib.dose.rate) * exp((-log(2) / halflife.days) * as.numeric(decay.days)) measurement.dose.rate.error <- (calib.error) * exp((-log(2) / halflife.days) * as.numeric(decay.days)) # -- convert to input unit to [Gy/s] if(dose.rate.unit == "Gy/min"){ source.dose.rate <- measurement.dose.rate / 60 source.dose.rate.error <- source.dose.rate * (measurement.dose.rate.error / measurement.dose.rate) }else if(dose.rate.unit == "Gy/s"){ source.dose.rate <- measurement.dose.rate source.dose.rate.error <- measurement.dose.rate.error } # Output -------------------------------------------------------------------------------------- dose_rate <- data.frame( dose.rate = source.dose.rate, dose.rate.error = source.dose.rate.error, date = measurement.date, stringsAsFactors = TRUE ) temp.return <- set_RLum( class = "RLum.Results", data = list( dose.rate = dose_rate, parameters = list(source.type = source.type, halflife = halflife.years, dose.rate.unit = dose.rate.unit), call = sys.call() )) return(temp.return) } Luminescence/R/convert_Wavelength2Energy.R0000644000176200001440000001707614762554470020341 0ustar liggesusers#'@title Emission Spectra Conversion from Wavelength to Energy Scales (Jacobian Conversion) #' #'@description The function provides a convenient and fast way to convert emission spectra wavelength #'to energy scales. The function works on [RLum.Data.Spectrum-class], [data.frame] and [matrix] and #'a [list] of such objects. The function was written to smooth the workflow while analysing #'emission spectra data. This is in particular useful if you want to further treat your data #'and apply, e.g., a signal deconvolution. #' #'@details #' #' The intensity of the spectrum is re-calculated using the following approach to recalculate #' wavelength and corresponding intensity values #' (e.g., Appendix 4 in Blasse and Grabmaier, 1994; Mooney and Kambhampati, 2013): #' #' \deqn{\phi_{E} = \phi_{\lambda} * \lambda^2 / (hc)} #' #' with #' \eqn{\phi_{E}} the intensity per interval of energy \eqn{E} (1/eV), #' \eqn{\phi_{\lambda}} the intensity per interval of wavelength \eqn{\lambda} #' (1/nm) and #' \eqn{h} (eV * s) the Planck constant and \eqn{c} (nm/s) the velocity of light. #' #' For transforming the wavelength axis (x-values) the equation as follow is used #' #' \deqn{E = hc/\lambda} #' #' @param object [RLum.Data.Spectrum-class], [data.frame], [matrix] (**required**): input object to be converted. #' If the input is not an [RLum.Data.Spectrum-class], the first column is always treated as the wavelength #' column. The function supports a list of allowed input objects. #' #' @param digits [integer] (*with default*): set the number of digits on the returned energy axis #' #' @param order [logical] (*with default*): enable/disable sorting of the #' values in ascending energy order. After the conversion, the longest #' wavelength has the lowest energy value and the shortest wavelength the #' highest. While this is correct, some R functions expect increasing x-values. #' #' @return The same object class as provided as input is returned. #' #' @note This conversion works solely for emission spectra. In case of absorption spectra only #' the x-axis has to be converted. #' #' @section Function version: 0.1.1 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Data.Spectrum-class], [plot_RLum] #' #' @keywords IO #' #' @references #' #' Blasse, G., Grabmaier, B.C., 1994. Luminescent Materials. Springer. #' #' Mooney, J., Kambhampati, P., 2013. Get the Basics Right: Jacobian Conversion of Wavelength and #' Energy Scales for Quantitative Analysis of Emission Spectra. J. Phys. Chem. Lett. 4, 3316–3318. #' \doi{10.1021/jz401508t} #' #' Mooney, J., Kambhampati, P., 2013. Correction to “Get the Basics Right: Jacobian Conversion of #' Wavelength and Energy Scales for Quantitative Analysis of Emission Spectra.” J. Phys. Chem. Lett. 4, #' 3316–3318. \doi{10.1021/jz401508t} #' #' **Further reading** #' #' Angulo, G., Grampp, G., Rosspeintner, A., 2006. Recalling the appropriate representation of #' electronic spectra. Spectrochimica Acta Part A: Molecular and Biomolecular Spectroscopy 65, #' 727–731. \doi{10.1016/j.saa.2006.01.007} #' #' Wang, Y., Townsend, P.D., 2013. Potential problems in collection and data processing of #' luminescence signals. Journal of Luminescence 142, 202–211. \doi{10.1016/j.jlumin.2013.03.052} #' #' @examples #' #' ##=====================## #' ##(1) Literature example after Mooney et al. (2013) #' ##(1.1) create matrix #' m <- matrix( #' data = c(seq(400, 800, 50), rep(1, 9)), ncol = 2) #' #'##(1.2) set plot function to reproduce the #'##literature figure #'p <- function(m) { #' plot(x = m[, 1], y = m[, 2]) #' polygon( #' x = c(m[, 1], rev(m[, 1])), #' y = c(m[, 2], rep(0, nrow(m)))) #' for (i in 1:nrow(m)) { #' lines(x = rep(m[i, 1], 2), y = c(0, m[i, 2])) #' } #'} #' #'##(1.3) plot curves #' par(mfrow = c(1,2)) #' p(m) #' p(convert_Wavelength2Energy(m)) #' #'##=====================## #'##(2) Another example using density curves #' ##create dataset #' xy <- density( #' c(rnorm(n = 100, mean = 500, sd = 20), #' rnorm(n = 100, mean = 800, sd = 20))) #' xy <- data.frame(xy$x, xy$y) #' #' ##plot #' par(mfrow = c(1,2)) #' plot( #' xy, #' type = "l", #' xlim = c(150, 1000), #' xlab = "Wavelength [nm]", #' ylab = "Luminescence [a.u.]" #' ) #'plot( #' convert_Wavelength2Energy(xy), #' xy$y, #' type = "l", #' xlim = c(1.23, 8.3), #' xlab = "Energy [eV]", #' ylab = "Luminescence [a.u.]" #' ) #' #'@md #'@export convert_Wavelength2Energy <- function( object, digits = 3L, order = FALSE ) { .set_function_name("convert_Wavelength2Energy") on.exit(.unset_function_name(), add = TRUE) # Self-call ----------------------------------------------------------------------------------- if(inherits(object, "list")){ return(lapply(object, convert_Wavelength2Energy)) } # Conversion function ------------------------------------------------------------------------- ##this treats the matrix; in either caes and we play safe, means, we create in either case ##colnames and rownames, but remove them later depending on the input .conv_intensity <- function(m){ h <- 4.135667662e-15 #eV * s c <- 299792458e+09 #nm/s ##convert count values m[] <- m * as.numeric(rownames(m))^2 / (h * c) ##modify rownames rownames(m) <- round((h * c) / as.numeric(rownames(m)),digits) ##return results return(m) } ## Integrity checks ------------------------------------------------------- .validate_class(object, c("RLum.Data.Spectrum", "data.frame", "matrix"), extra = "a 'list' of such objects") .validate_not_empty(object) if(inherits(object, "RLum.Data.Spectrum")){ if (length(object@data) < 2) { .throw_error("'object' contains no data") } ##check whether the object might have this scale already ##this only works on RLum.Data.Spectrum objects and is sugar for using RLum-objects if(any("curveDescripter" %in% names(object@info))){ if(any(grepl(pattern = "energy", x = tolower(object@info$curveDescripter), fixed = TRUE))){ message("[convert_Wavelength2Energy()] Your object has already an energy scale, nothing done!") return(object) } } ##convert data object@data <- .conv_intensity(object@data) #sort values if needed if(order){ object@data <- object@data[order(as.numeric(rownames(object@data))), , drop = FALSE] rownames(object@data) <- sort(as.numeric(rownames(object@data))) } ##correct $curveDescripter (we do not attach the table, otherwise the object gets too big) if(any("curveDescripter" %in% names(object@info))){ temp_descripter <- strsplit(object@info$curveDescripter, ";", TRUE)[[1]] temp_descripter[grepl(x = temp_descripter,pattern = "wavelength", fixed = TRUE)] <- "energy [eV]" object@info$curveDescripter <- paste(temp_descripter, collapse = ";") } ##return new object return(object) }else if(inherits(object, "matrix") || inherits(object, "data.frame")){ if (ncol(object) < 2) { .throw_error("'object' should have at least two columns") } temp <- as.matrix(object[,2:ncol(object)]) ##set rownames rownames(temp) <- object[,1] ##convert values temp <- .conv_intensity(temp) ##construct new full matrix temp <- cbind(as.numeric(rownames(temp)), temp) rownames(temp) <- rownames(object) colnames(temp) <- colnames(object) ##order on request (remember, here it is the first column) if(order) temp <- temp[order(temp[,1]),] ##return if(inherits(object, "data.frame")) return(as.data.frame(temp)) return(temp) } } Luminescence/R/install_DevelopmentVersion.R0000644000176200001440000000761514762554470020615 0ustar liggesusers#' @title Attempts to install the development version of the 'Luminescence' package #' #' @description This function is a convenient method for installing the development #' version of the R package 'Luminescence' directly from GitHub. #' #' @details #' This function uses [Luminescence::github_branches][Luminescence::GitHub-API] to check #' which development branches of the R package 'Luminescence' are currently #' available on GitHub. The user is then prompted to choose one of the branches #' to be installed. It further checks whether the R package 'devtools' is #' currently installed and available on the system. Finally, it prints R code #' to the console that the user can copy and paste to the R console in order #' to install the desired development version of the package. #' #' #' If `force_install = TRUE` the functions checks if 'devtools' is available #' and then attempts to install the chosen development branch via #' [devtools::install_github]. #' #' @param force_install [logical] (*optional*): #' If `FALSE` (the default) the function produces and prints the required #' code to the console for the user to run manually afterwards. When `TRUE` #' and all requirements are fulfilled (see details) this function attempts to install #' the package itself. #' #' @return #' This function requires user input at the command prompt to choose the #' desired development branch to be installed. The required R code to install #' the package is then printed to the console. #' #' @examples #' #' \dontrun{ #' install_DevelopmentVersion() #' } #' #' @md #' @export install_DevelopmentVersion <- function(force_install = FALSE) { # nocov start message("\n[install_DevelopmentVersion]\n") # check which branches are currently available # see ?github_branches for GitHub API implementation branches <- github_branches() index <- NULL # let user pick which branch he wants to install while(is.null(index)) { message(paste0("Which development branch do you want to install? \n", paste0(" [", 1:length(branches$BRANCH), "]: ", branches$BRANCH, collapse = "\n"))) message("\n [0]: ") index <- readline() if (index == 0) return(NULL) if (!index %in% seq_len(length(branches$BRANCH))) index <- NULL cat("\n") } # select the correct branch branch <- branches$BRANCH[as.numeric(index)] if (!force_install) { message("----\n", "Are all prerequisites installed? Make sure to have read\n", "https://github.com/R-Lum/Luminescence/blob/master/README.md\n", "----\n") message("Please copy and run the following code in your R command-line:\n") if (!requireNamespace("devtools", quietly = TRUE)) message("install.packages('devtools')") # nocov message(branches$INSTALL[as.numeric(index)], "\n") } else { reply <- NULL while(is.null(reply)) { message("Are all prerequisites installed?", " (https://github.com/R-Lum/Luminescence/blob/master/README.md)\n", " [n/N]: No\n", " [y/Y]: Yes\n") reply <- readline() if (reply == "n" || reply == "N") return(NULL) if (reply != "y" && reply != "Y") reply <- NULL } # check if 'devtools' is available and install if not if (!requireNamespace("devtools", quietly = TRUE)) { message("Please install the 'devtools' package first by running the following command:\n", "install.packages('devtools')") return(NULL) } # detach the 'Luminescence' package try(detach(name = "package:Luminescence", unload = TRUE, force = TRUE), silent = TRUE) # try to unload the dynamic library dynLibs <- sapply(.dynLibs(), function(x) x[["path"]] ) try(dyn.unload(dynLibs[grep("Luminescence", dynLibs)]), silent = TRUE) # install the development version devtools::install_github(paste0("r-lum/luminescence@", branch)) } # nocov end } Luminescence/R/get_rightAnswer.R0000644000176200001440000000063314762554470016364 0ustar liggesusers#' Function to get the right answer #' #' This function returns just the right answer #' #' @param ... you can pass an infinite number of further arguments #' #' @return Returns the right answer #' #' @section Function version: 0.1.0 #' #' @author inspired by R.G. #' #' @examples #' #' ## you really want to know? #' get_rightAnswer() #' #' @md #' @export get_rightAnswer <- function(...) { return(46) } Luminescence/R/calc_IEU.R0000644000176200001440000002363314762554470014641 0ustar liggesusers#' Apply the internal-external-uncertainty (IEU) model after Thomsen et al. #' (2007) to a given De distribution #' #' Function to calculate the IEU De for a De data set. #' #' This function uses the equations of Thomsen et al. (2007). The parameters a #' and b are estimated from dose-recovery experiments. #' #' @param data [RLum.Results-class] or [data.frame] (**required**): #' for [data.frame]: two columns with De `(data[,1])` and #' De error `(values[,2])` #' #' @param a [numeric] (**required**): #' slope #' #' @param b [numeric] (**required**): #' intercept #' #' @param interval [numeric] (**required**): #' fixed interval (e.g. 5 Gy) used for iteration of `Dbar`, from the mean to #' Lowest.De used to create Graph.IEU `[Dbar.Fixed vs Z]` #' #' @param decimal.point [numeric] (*with default*): #' number of decimal points for rounding calculations (e.g. 2) #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param ... further arguments (`trace, verbose`). #' #' @return #' Returns a plot (*optional*) and terminal output. In addition an #' [RLum.Results-class] object is returned containing the #' following elements: #' #' \item{.$summary}{[data.frame] summary of all relevant model results.} #' \item{.$data}{[data.frame] original input data} #' \item{.$args}{[list] used arguments} #' \item{.$call}{[call] the function call} #' \item{.$tables}{[list] a list of data frames containing all calculation tables} #' #' The output should be accessed using the function [get_RLum]. #' #' @section Function version: 0.1.1 #' #' @author #' Rachel Smedley, Geography & Earth Sciences, Aberystwyth University (United Kingdom) \cr #' Based on an excel spreadsheet and accompanying macro written by Kristina Thomsen. \cr #' Marco Colombo, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [plot], [calc_CommonDose], [calc_CentralDose], [calc_FiniteMixture], #' [calc_FuchsLang2001], [calc_MinDose] #' #' @references #' Smedley, R.K., 2015. A new R function for the Internal External Uncertainty (IEU) model. #' Ancient TL 33, 16-21. #' #' Thomsen, K.J., Murray, A.S., Boetter-Jensen, L. & Kinahan, J., #' 2007. Determination of burial dose in incompletely bleached fluvial samples #' using single grains of quartz. Radiation Measurements 42, 370-379. #' #' @examples #' #' ## load data #' data(ExampleData.DeValues, envir = environment()) #' #' ## apply the IEU model #' ieu <- calc_IEU(ExampleData.DeValues$CA1, a = 0.2, b = 1.9, interval = 1) #' #' @md #' @export calc_IEU <- function( data, a, b, interval, decimal.point = 2, plot = TRUE, ... ) { .set_function_name("calc_IEU") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(data, c("data.frame", "RLum.Results")) if (inherits(data, "RLum.Results")) { data <- get_RLum(data) } ## check that we actually have data if (length(data) == 0 || nrow(data) == 0) { .throw_error("'data' contains no data") } if (ncol(data) < 2) { .throw_error("'data' should have at least two columns") } data <- data[, 1:2] colnames(data) <- c("De", "De.Error") .validate_class(a, "numeric") .validate_class(b, "numeric") .validate_class(interval, "numeric") ##==========================================================================## ## ... ARGUMENTS ##==========================================================================## extraArgs <- list(...) ## console output verbose <- TRUE if ("verbose" %in% names(extraArgs)) { verbose <- extraArgs$verbose } ## trace calculations trace <- FALSE if ("trace" %in% names(extraArgs)) { trace <- extraArgs$trace } # TODO: main, xlab, ylab, xlim, ylim, pch, col ##============================================================================## ## CALCULATIONS ##============================================================================## main.calculation <- function(data, Dbar, round.z = FALSE, plot = FALSE, trace = FALSE) { N <- nrow(data) De <- data$De De.Total.Error <- sqrt(data$De.Error^2 + (a * Dbar + b)^2) Inv.De.Total.Error.Sq <- 1 / De.Total.Error^2 Z.top <- cumsum(Inv.De.Total.Error.Sq * De) Z.bot <- cumsum(Inv.De.Total.Error.Sq) Z <- Z.top / Z.bot if (round.z) Z <- round(Z, decimal.point) EXT.top <- NULL for (j in 1:N) { x <- (De[1:j] - Z[j])^2 * Inv.De.Total.Error.Sq[1:j] EXT.top <- c(EXT.top, sum(x)) } EXT.bot <- (1:N - 1) * Z.bot EXT <- EXT.top / EXT.bot INT <- 1 / Z.bot R <- sqrt(INT / EXT) R.Error <- (2 * (1:N - 1))^(-0.5) Rank.number <- 1:N Table.IEU <- data.table(Rank.number = Rank.number, De = De, De.Error = De.Total.Error, Z, EXT.top, EXT, INT, R, R.Error) ## to reduce the number of plots and increase performance, ## intermediate calculations are plotted only when `trace = TRUE` if (plot && trace) { do.plot(Table.IEU$Z, Table.IEU$R, Table.IEU$R.Error) } Max <- Table.IEU[R >= 1, suppressWarnings(max(Rank.number, na.rm = TRUE))] if (is.infinite(Max)) { Max <- 1 } Above <- Table.IEU[Max] Below <- Table.IEU[Max + 1] Slope <- (Above$R - Below$R) / (Above$Z - Below$Z) Intercept <- Above$R - (Slope * Above$Z) IEU.De <- round((1 - Intercept) / Slope, decimal.point) IEU.Error <- max(sqrt(Above$EXT), sqrt(Below$EXT)) IEU.Error <- round(IEU.Error, decimal.point) n <- Max + 1 if (trace) { message(sprintf("[Iteration of Dbar] \n Dbar: %.4f \n IEU.De: %.4f \n IEU.Error: %.4f \n n: %i \n R: %.4f \n", Dbar, IEU.De, IEU.Error, n, Below$R)) } Dbar.Fixed <- Dbar - interval return(list(Dbar.Mean = c(1, Dbar, Dbar.Fixed, IEU.De, IEU.Error, n, Below$R, a, b), Table.IEU = Table.IEU)) } do.plot <- function(x.vals, y.vals, y.errs, xlab = "Z [Gy]", ylab = expression(paste("R = [", alpha["in"], "/", alpha["ex"],"]")), abline.vals = c(1, 0), asp = NA) { ymin <- min((y.vals - y.errs)[-1], na.rm = TRUE) ymax <- max((y.vals + y.errs)[-1], na.rm = TRUE) plot(x.vals, y.vals, type = "b", xlab = xlab, ylab = ylab, ylim = c(min(ymin, 0), ymax), asp = asp) graphics::arrows(x.vals, y.vals + y.errs, x.vals, y.vals - y.errs, col = 1, angle = 90, length = 0.05, code = 3) abline(abline.vals[1], abline.vals[2], untf = FALSE, lty = 3) } ## ------------------------------------------------------------------------ ## Start of the algorithm # (a) Calculate IEU at fixed intervals of Dbar starting from the Mean and # subtracting the interval until Dbar is < Lowest.De; this creates a plot data <- data[order(data$De), ] Lowest.De <- round(data$De[1], decimal.point) Dbar <- round(mean(data$De), decimal.point) Dbar.Mean <- main.calculation(data, Dbar)$Dbar.Mean Fixed.Iterations <- rbind(data.frame(matrix(nrow = 0, ncol = 9)), Dbar.Mean) repeat { Dbar.Fixed <- Dbar.Mean[3] if (Dbar.Fixed < Lowest.De) { break } Dbar <- Dbar.Fixed Dbar.Mean <- main.calculation(data, Dbar)$Dbar.Mean Fixed.Iterations <- rbind(Fixed.Iterations, Dbar.Mean) } colnames(Fixed.Iterations) <- c(FALSE, "Dbar", "Dbar.Fixed", "Zbar", "Zbar.Error", "n", "Below.R", "a", "b") if (plot) { do.plot(Fixed.Iterations$Dbar, Fixed.Iterations$Zbar, Fixed.Iterations$Zbar.Error, xlab = "Dbar (Gy)", ylab = "Zbar, weighted mean (Gy)", abline.vals = c(0, 1), asp = 1) } # (b) Calculate Dbar by iteration from [Dbar = Lowest.De] until [IEU.De = Dbar]; # this calculates the IEU De Dbar <- Lowest.De res <- main.calculation(data, Dbar) Dbar.Mean <- res$Dbar.Mean repeat { IEU.De <- Dbar.Mean[4] if (is.na(IEU.De)) { .throw_warning("Numerical error, try changing your 'a' and 'b' values") break } if (IEU.De <= Dbar) { break } Dbar <- IEU.De res <- main.calculation(data, Dbar, round.z = TRUE, plot, trace) Dbar.Mean <- res$Dbar.Mean } Dbar <- Dbar.Mean[2] IEU.De <- Dbar.Mean[4] IEU.Error <- Dbar.Mean[5] n <- Dbar.Mean[6] Table.IEU <- res$Table.IEU # final plot if (plot) { do.plot(Table.IEU$Z, Table.IEU$R, Table.IEU$R.Error) } Table.Results <- data.frame(Dbar, IEU.De, IEU.Error, n, a, b) colnames(Table.Results) <- c("Dbar", "IEU.De (Gy)", "IEU.Error (Gy)", "Number of De", "a", "b") ##==========================================================================## ## TERMINAL OUTPUT ##==========================================================================## if (verbose) { message(sprintf( "\n [calc_IEU] \n\n Dbar: %.2f \n IEU.De (Gy): %.2f \n IEU.Error (Gy): %.2f Number of De: %.0f \n a: %.4f \n b: %.4f", Table.Results[1], Table.Results[2], Table.Results[3], Table.Results[4], Table.Results[5], Table.Results[6])) } ##==========================================================================## ## RETURN VALUES ##==========================================================================## summary <- Table.Results[ ,c(-1, -5, -6)] colnames(summary) <- c("de", "de_err", "n") call <- sys.call() args <- list(a = a, b = b, interval = interval, decimal.point = decimal.point, plot = plot) newRLumResults.calc_IEU <- set_RLum( class = "RLum.Results", data = list(summary = summary, data = data, args = args, call = call, tables = list( Table.IEUCalculations = as.data.frame(Table.IEU), Table.Fixed.Iteration = Fixed.Iterations, Table.IEUResults = Table.Results ))) invisible(newRLumResults.calc_IEU) } Luminescence/R/fit_OSLLifeTimes.R0000644000176200001440000006157514762554470016345 0ustar liggesusers#' Fitting and Deconvolution of OSL Lifetime Components #' #' @details #' The function intends to provide an easy access to pulsed optically stimulated luminescence (POSL) data, #' in order determine signal lifetimes. The fitting is currently optimised to work with the off-time flank of POSL measurements #' only. For the signal deconvolution, a differential evolution optimisation is combined with nonlinear least-square fitting #' following the approach by Bluszcz & Adamiec (2006). #' #' **Component deconvolution algorithm** #' #' The component deconvolution consists of two steps: #' #' (1) Adaptation phase #' #' In the adaptation phase the function tries to figure out the optimal and statistically justified #' number of signal components following roughly the approach suggested by Bluszcz & Adamiec (2006). In #' contrast to their work, for the optimisation by differential evolution here the package `'DEoptim'` is used. #' #' The function to be optimized has the form: #' #' \deqn{\chi^2 = \sum(w * (n_i/c - \sum(A_i * exp(-x/(tau_i + t_p))))^2)} #' #' with \eqn{w = 1} for unweighted regression analysis (`method_control = list(weights = FALSE)`) or #' \eqn{w = c^2/n_i} for weighted regression analysis. The default values is `TRUE`. #' #' \deqn{F = (\Delta\chi^2 / 2) / (\chi^2/(N - 2*m - 2))} #' #' (2) Final fitting #' #' **`method_control`** #' #' \tabular{lll}{ #' **Parameter** \tab **Type** \tab **Description**\cr #' `p` \tab [numeric] \tab controls the probability for the F statistic reference values. For a significance level of 5 % a value of 0.95 (the default) should be added, for 1 %, a value of 0.99 is sufficient: 1 > p > 0 (cf. [stats::FDist])\cr #' `seed` \tab [numeric] \tab set the seed for the random number generator, provide a value here to get reproducible results \cr #' `DEoptim.trace` \tab [logical] \tab enable/disable the tracing of the differential evolution (cf. [DEoptim::DEoptim.control]) \cr #' `DEoptim.itermax` \tab [logical] \tab control the number of the allowed generations (cf. [DEoptim::DEoptim.control]) \cr #' `weights` \tab [logical] \tab enable/disable the weighting for the start parameter estimation and fitting (see equations above). #' The default values is `TRUE` \cr #' `nlsLM.trace` \tab [logical] \tab enable/disable trace mode for the nls fitting ([minpack.lm::nlsLM]), can be used to identify convergence problems, default is `FALSE` \cr #' `nlsLM.upper` \tab [logical] \tab enable/disable upper parameter boundary, default is `TRUE` \cr #' `nlsLM.lower` \tab [logical] \tab enable/disable lower parameter boundary, default is `TRUE` #' } #' #' @param object [RLum.Data.Curve-class], [RLum.Analysis-class], [data.frame] or [matrix] (**required**): #' Input object containing the data to be analysed. All objects can be provided also as list for an automated #' processing. Please note: `NA` values are automatically removed and the dataset should comprise at least 5 data points (possibly more if `n.components` is #' set to a value greater than 1) #' #' @param tp [numeric] (*with default*): option to account for the stimulation pulse width. For off-time measurements #' the default value is 0. `tp` has the same unit as the measurement data, e.g., µs. Please set this parameter #' carefully, if it all, otherwise you may heavily bias your fit results. #' #' @param signal_range [numeric] (*optional*): allows to set a channel range, by default all channels are used, e.g. #' `signal_range = c(2,100)` considers only channels 2 to 100 and `signal_range = c(2)` considers only channels #' from channel 2 onwards. #' #' @param n.components [numeric] (*optional*): Fix the number of components. If set the algorithm will try #' to fit the number of predefined components. If nothing is set, the algorithm will try to find the best number #' of components. #' #' @param method_control [list] (*optional*): Named to allow a more fine control of the fitting process. See details #' for allowed options. #' #' @param plot [logical] (*with default*): Enable/disable the plot output. #' #' @param plot_simple [logical] (*with default*): Enable/disable the reduced #' plot output. If `TRUE`, no #' residual plot is shown, however, plot output can be combined using the standard R layout options, #' such as `par(mfrow = c(2,2))`. #' #' @param verbose [logical] (*with default*): Enable/disable output to the #' terminal. #' #' @param ... parameters passed to [plot.default] to control the plot output, supported are: #' `main`, `xlab`, `ylab`, `log`, `xlim`, `ylim`, `col`, `lty`, `legend.pos`, `legend.text`. If the input #' object is of type [RLum.Analysis-class] this arguments can be provided as a [list]. #' #' @return #' #' -----------------------------------\cr #' `[ NUMERICAL OUTPUT ]`\cr #' -----------------------------------\cr #' #' **`RLum.Results`**-object #' #' **slot:** **`@data`** #' #' \tabular{lll}{ #' **Element** \tab **Type** \tab **Description**\cr #' `$data` \tab `matrix` \tab the final fit matrix \cr #' `$start_matrix` \tab `matrix` \tab the start matrix used for the fitting \cr #' `$total_counts` \tab `integer` \tab Photon count sum \cr #' `$fit` \tab `nls` \tab the fit object returned by [minpack.lm::nls.lm] \cr #' } #' #' #'**slot:** **`@info`** #' #' The original function call #' #' ------------------------\cr #' `[ TERMINAL OUTPUT ]`\cr #' ------------------------\cr #' #' Terminal output is only shown of the argument `verbose = TRUE`. #' #' *(1) Start parameter and component adaption*\cr #' Trave of the parameter adaptation process #' #' *(2) Fitting results (sorted by ascending tau)*\cr #' The fitting results sorted by ascending tau value. Please note #' that if you access the `nls` fitting object, the values are not sorted. #' #' *(3) Further information*\cr #' - The photon count sum #' - Durbin-Watson residual statistic to assess whether the residuals are correlated, ideally #' the residuals should be not correlated at all. Rough measures are: \cr #' D = 0: the residuals are systematically correlated \cr #' D = 2: the residuals are randomly distributed \cr #' D = 4: the residuals are systematically anti-correlated\cr #' #' You should be suspicious if D differs largely from 2. #' #' #' ------------------------\cr #' `[ PLOT OUTPUT ]`\cr #' ------------------------\cr #' #' A plot showing the original data and the fit so far possible. The lower plot shows the #' residuals of the fit. #' #' @section Function version: 0.1.5 #' #' @author Sebastian Kreutzer, Geography & Earth Sciences, Aberystwyth University, #' Christoph Schmidt, University of Bayreuth (Germany) #' #' @seealso [minpack.lm::nls.lm], [DEoptim::DEoptim] #' #' @references #' Bluszcz, A., Adamiec, G., 2006. Application of differential evolution to fitting OSL decay curves. #' Radiation Measurements 41, 886-891. \doi{10.1016/j.radmeas.2006.05.016}\cr #' #' Durbin, J., Watson, G.S., 1950. Testing for Serial Correlation in Least Squares Regression: I. #' Biometrika 37, 409-21. doi:10.2307/2332391 #' #' **Further reading** #' #' Hughes, I., Hase, T., 2010. Measurements and Their Uncertainties. Oxford University Press. #' #' Storn, R., Price, K., 1997. Differential Evolution – #' A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces. #' Journal of Global Optimization 11, 341–359. #' #'@examples #' #'##load example data #'data(ExampleData.TR_OSL, envir = environment()) #' #'##fit lifetimes (short run) #'fit_OSLLifeTimes( #' object = ExampleData.TR_OSL, #' n.components = 1) #' #'##long example #'\dontrun{ #'fit_OSLLifeTimes( #' object = ExampleData.TR_OSL) #' } #' #'@md #'@export fit_OSLLifeTimes <- function( object, tp = 0, signal_range = NULL, n.components = NULL, method_control = list(), plot = TRUE, plot_simple = FALSE, verbose = TRUE, ... ) { .set_function_name("fit_OSLLifeTimes") on.exit(.unset_function_name(), add = TRUE) # Self-call ----------------------------------------------------------------------------------- if(inherits(object, "list") || inherits(object, "RLum.Analysis")){ .validate_not_empty(object) ##allow RLum.Analysis objects if(all(vapply(object, function(x){ inherits(x, "RLum.Analysis")}, logical(1)))){ object <- lapply(object, function(x){x@records}) object <- .unlist_RLum(object) } ## expand input arguments rep.length <- length(object) if (!is.null(n.components)) n.components <- .listify(n.components, rep.length) tp <- .listify(tp, rep.length) ## names of extra arguments arg_names <- names(list(...)) ##pretreat some of the ... settings to avoid ## expand all arguments arg_list <- NULL if(!is.null(arg_names)){ arg_list <- lapply(arg_names , function(x){ unlist(rep(list(...)[[x]], length.out = length(object))) }) ## make sure we organise this list (not nice but it works) arg_list <- lapply(1:length(object), function(x){ args <- lapply(1:length(arg_names), function(y){ arg_list[[y]][[x]] }) names(args) <- arg_names args }) } ##run function temp_results <- lapply(1:length(object), function(x){ temp <- try(do.call(what = fit_OSLLifeTimes, c(list( object = object[[x]], tp = tp[[x]], signal_range = signal_range, n.components = n.components[[x]], method_control = method_control, plot = plot, plot_simple = plot_simple, verbose = verbose ), arg_list[[x]]) ), outFile = stdout()) # redirect error messages so they can be silenced if(inherits(temp, "try-error")){ return(NULL) }else{ return(temp) } }) ##combine results and return results <- merge_RLum(temp_results) if(!is.null(results)) results@originator <- "fit_OSLLifeTimes" ##return return(results) } ## Integrity checks ------------------------------------------------------- is.valid <- .validate_class(object, c("RLum.Data.Curve", "data.frame", "matrix"), extra = "a 'list' of such objects", throw.error = FALSE) if (!is.valid) return(NULL) .validate_not_empty(object) if(inherits(object, "RLum.Data.Curve")){ if(!grepl(pattern = "POSL", x = object@recordType, fixed = TRUE)) .throw_error("recordType '", object@recordType, "' not supported for input object") object <- as.data.frame(object@data) } else if(inherits(object, "matrix")){ object <- as.data.frame(object) } if (ncol(object) < 2) { .throw_error("'object' should have at least two columns") } df <- object[, 1:2] ##remove NA values, whatever it is worth for if (anyNA(df)) { df <- na.exclude(df) .throw_warning("NA values detected and removed from dataset") } ##rename columns for data.frame colnames(df) <- c("x","y") #check for 0 data in dataset ... we opt for hard stop if(any(df[[2]] == 0)){ .throw_warning("The dataset contains 0, a value of 0.1 ", "has been added to your count values") df[[2]] <- df[[2]] + 0.1 } ##save original data for later df_raw <- df ##signal_range if(!is.null(signal_range)){ .validate_class(signal_range, "numeric") ##check lengths if(length(signal_range) == 1) signal_range <- c(signal_range, nrow(df)) if(length(signal_range) > 2) .throw_warning("'signal_range' has more than 2 elements, ", "only the first 2 will be used") if(signal_range[2] > nrow(df)){ .throw_warning("'signal_range' > number of channels, reset to maximum") signal_range[2] <- nrow(df) } if(signal_range[1] > signal_range[2]){ .throw_warning("'signal_range' first element > last element, reset to default") signal_range <- c(1, nrow(df)) } ##set range df <- df[signal_range[1]:signal_range[2],] } ## number of components requested .validate_positive_scalar(n.components, int = TRUE, null.ok = TRUE) m <- 1 if (!is.null(n.components)){ m <- n.components } ## ensure that we have a minimum of data points available: the minimum ## is computed so that the degrees of freedom for the F distribution is ## positive (see `qf()` in the `while` loop further down at (B)) min.num.signals <- 2 * m + 2 + 1 if (nrow(df) < min.num.signals) { .throw_message("For ", m, " components the dataset must have at least ", min.num.signals, " signal points, NULL returned") return(NULL) } # Fitting ------------------------------------------------------------------------------------- ##(0) CONTROL +++++++++++++++++++++++++++++++++++++++++++++++++++++ method_control_setting <- list( p = 0.95, seed = NULL, DEoptim.trace = FALSE, DEoptim.itermax = 1000, weights = TRUE, nlsLM.trace = FALSE, nlsLM.upper = TRUE, nlsLM.lower = TRUE ) ##udpate list if the user did something method_control_setting <- modifyList(x = method_control_setting, val = method_control) ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ##(A) SETTINGS ## ## ##(1) >> set fitting function for minpack.lm x <- 0 #cheat R check routine fit_formula <- function(n.components, tp) { A <- paste0("A.",1:n.components) tau <- paste0("tau.",1:n.components) stats::as.formula(paste0("y ~ ", paste(A," * exp(- x/(",tau," + ", tp, "))", collapse = " + "))) } ## ## ##(2) create formula for differential evolution run fn_constructor <- function(m){ ##get length of x-vector x_len <- 1:(2 * m) ##generate term term <- vapply(seq(1,length(x_len), by = 2), function(i){ paste0("(x[", i, "] * exp(-t/(x[", i + 1, "] + tp)))") },character(1)) ##parse term <- paste(term, collapse = " + ") ##set weight (should be given as character) w <- "1" if(method_control_setting$weights){ w <- "c^2/n" } ##combine term <- paste0("sum(",w," * ((n/c) - (",term,"))^2)") ##parse ... if we do it here, we boost the speed of the evaluation parse(text = eval(term)) } ## ## ##(3) initialise objects chi_squared <- c(NA, NA) F <- c(Inf, Inf) start <- NULL ## ## ##(4) set seed if(!is.null(method_control_setting$seed)) set.seed(method_control_setting$seed) ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ##(B) RUN DIFFERENTIAL EVOLUTION TO DETERMINE NUMBER OF COMPONENTS ##prevent collateral damage, so we want a data.frame that has at least 10 rows if(verbose){ cat("\n[fit_OSLLifeTime()]\n") cat("\n(1) Start parameter and component adapation") cat("\n---------------------(start adaption)------------------------------------") } while(!is.na(suppressWarnings(stats::qf(method_control_setting$p, df1 = 2, df2 = length(df[[2]]) - 2 * m - 2))) && ( F[2] > stats::qf(method_control_setting$p, df1 = 2, df2 = length(df[[2]]) - 2 * m - 2) & F[1] >= F[2])){ ##set F F[1] <- F[2] ##construct formula outside of the loop; needs to be done here, otherwise the performance ##goes down formula_string <- fn_constructor(m) ##set fn set_tp <- tp set_c <- diff(c(0,df[[1]])) set_t <- df[[1]] set_n <- df[[2]] ##set function ##Personal reminder: ##Why this function is not written in C++ ... because it adds basically nothing ##in terms of speed ~ 10 µs faster, but needed to be compiled and thus cannot be changed ##directly in the code fn <- function(x, tp = set_tp, n = set_n, c = set_c, t = set_t, term = formula_string){ eval(formula_string) } ##set start parameters if(!is.null(start)) start_parameters <- start$optim$bestmem ##run differential evolution start <- DEoptim::DEoptim( fn = fn, lower = rep(0, 2 * m), upper = rep(c(10 * sum(df[[2]]), 10000), m), control = DEoptim::DEoptim.control( trace = method_control_setting$DEoptim.trace, itermax = method_control_setting$DEoptim.itermax, c = .5, strategy = 2, parallelType = 0 #Does it make sense to use parallel processing here: no, it does not scale well ) ) ##set chi^2 value and calculate F for the 2nd run chi_squared[2] <- start$optim$bestval if(!is.na(chi_squared[1])){ F[2] <- (abs(diff(chi_squared))/2) / (chi_squared[2]/(nrow(df) - 2 * m - 2)) } ##terminal feedback if(verbose){ cat("\n>> + adaption for",m, "comp.", ": ", round(F[2],2), "(calc.) <> ", round(stats::qf(method_control_setting$p, df1 = 2, df2 = length(df[[2]]) - 2 * m - 2), 2), "(ref.)") if(F[2] > stats::qf(method_control_setting$p, df1 = 2, df2 = length(df[[2]]) - 2 * m - 2) & F[1] >= F[2]){ cat(" >> [add comp.]") }else{ cat(" >> [stop]\n") cat("---------------------(end adaption)--------------------------------------\n\n") } } ##break here if n.components was set others than NULL, in such case we force the number if(!is.null(n.components)){ if(verbose){ cat(" >> [forced stop]\n") cat("---------------------(end adaption)--------------------------------------\n\n") } start_parameters <- start$optim$bestmem break() } ##update objects chi_squared[1] <- chi_squared[2] m <- m + 1 } ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ##(C) RUN LM-FITTING ## ##reduce m by 2, why 2? ## - the last component violated the F statistic, so was obviously not the best call ## - the loop adds every time another component if(is.null(n.components)){ ## this covers the extreme case that the process stops after the first run if(m == 2){ start_parameters <- start$optim$bestmem } m <- max(m - 2, 1) } A <- start_parameters[seq(1,length(start_parameters), by = 2)] tau <- start_parameters[seq(2,length(start_parameters), by = 2)] names(A) <- paste0("A.", 1:(m)) names(tau) <- paste0("tau.", 1:(m)) ##create start_matrix start_matrix <- matrix(data = c(A,tau), ncol = 2) colnames(start_matrix) <- c("A", "tau") rownames(start_matrix) <- paste0("Comp.", 1:(m)) ##add terminal feedback if(verbose){ cat("\n>> Applied component matrix\n") print(start_matrix) cat("\n\n") } ##run fitting using the Levenberg-Marquardt algorithm fit <- try(minpack.lm::nlsLM( formula = fit_formula(n.components = m, tp = tp), data = df, start = c(A, tau), upper = if(method_control_setting$nlsLM.upper){ c(rep(sum(df[[2]]), length(A)), rep(Inf,length(tau))) }else{ NULL }, lower = if(method_control_setting$nlsLM.lower){ c(rep(0,2*length(A))) }else{ NULL }, na.action = "na.exclude", weights = if(method_control_setting$weights){ set_c^2/df[,2] }else{ rep(1,nrow(df)) }, trace = method_control_setting$nlsLM.trace, control = minpack.lm::nls.lm.control(maxiter = 500) ), outFile = stdout()) # redirect error messages so they can be silenced # Post-processing ----------------------------------------------------------------------------- A <- NA tau <- NA summary_matrix <- NA D <- NA if (!inherits(fit, 'try-error')) { ##extract coefficients A <- coef(fit)[1:(m)] tau <- coef(fit)[(m + 1):(2 * m)] ##order coef o <- order(tau) tau <- tau[o] A <- A[o] ##summary matrix summary_matrix <- summary(fit)$coefficients ##return warning if one parameter is negative, this can happen if the user let the boundaries ##free float if(any(summary_matrix[,1]<0)) .throw_warning("At least one parameter is negative, ", "please check carefully your results") ##order matrix by tau, but keep the rownames temp_rownames <- rownames(summary_matrix) summary_matrix <- summary_matrix[c(o,o + length(A)),] rownames(summary_matrix) <- temp_rownames rm(temp_rownames) ##calculate Durbin-Watson statistic R <- residuals(fit) D <- round(sum((R - c(0,R[-length(R)]))^2) / sum(R^2),2) rm(R) } else { m <- 1 } # Terminal output ----------------------------------------------------------------------------- if(verbose){ if (!inherits(fit, 'try-error')) { cat("(2) Fitting results (sorted by ascending tau)\n") cat("-------------------------------------------------------------------------\n") print(summary_matrix) cat("-------------------------------------------------------------------------\n") }else{ .throw_message("The fitting was not successful, consider trying again") } cat("\n(3) Further information\n") cat("-------------------------------------------------------------------------\n") cat("Photon count sum: ", sum(df[[2]]),"\n") cat("Durbin-Watson residual statistic: ", D,"") string <- NA if(!is.na(D)){ string <- c("\u005b",rep(" ",(D * 10)/4),"\u003c\u003e",rep(" ",10 - (D * 10)/4),"\u005d\n") } cat(paste(string, collapse = "")) cat("\n") } # Plotting ------------------------------------------------------------------------------------ if(plot) { ##set plot default settings plot_settings <- list( main = "OSL Lifetimes", xlab = "Time [a.u.]", ylab = "POSL [a.u.]", log = "", xlim = c(0,max(df_raw[[1]])), ylim = c(0,max(df_raw[[2]])), col = get("col", pos = .LuminescenceEnv)[-1], lty = rep(1, (m + 1)), legend.pos = "topright", legend.text = c("sum", paste0("comp. ", 1:m)) ) ##modify settings on request plot_settings <- modifyList(x = plot_settings, val = list(...)) ##catch log scale if (is.list(plot_settings$log)) plot_settings$log <- unlist(plot_settings$log) if(grepl(pattern = "x", plot_settings$log, fixed = TRUE)){ if(plot_settings$xlim[1] == 0){ plot_settings$xlim[1] <- max(min(df_raw[[1]]), 1e-4) .throw_warning("log-scale requires x-values > 0, set min xlim to ", round(plot_settings$xlim[1], 4)) } } if(grepl(pattern = "y", plot_settings$log, fixed = TRUE)){ if(plot_settings$ylim[1] == 0){ plot_settings$ylim[1] <- max(min(df_raw[[2]]), 1e-04) .throw_warning("log-scale requires y-values > 0, set min ylim to ", round(plot_settings$ylim[1], 4)) } } ##plot if the fitting was a success if (!inherits(fit, 'try-error')) { if(!plot_simple){ ##make sure that the screen closes if something is wrong on.exit(graphics::close.screen(all.screens = TRUE), add = TRUE) graphics::split.screen(rbind( c(0.1,1,0.32, 0.98), c(0.1,1,0.1, 0.32))) graphics::screen(1) par(mar = c(0, 4, 3, 4)) } plot(NA,NA, xaxt = if(plot_simple) "s" else "n", xlab = if(plot_simple) plot_settings$xlab else "", ylab = plot_settings$ylab, ylim = plot_settings$ylim, xlim = plot_settings$xlim, log = plot_settings$log, main = plot_settings$main ) ##add used points points(df, col = rgb(0,0,0,0.8)) ##add not used points df_raw (this solution avoids overplotting) if(nrow(df) != nrow(df_raw)) points(df_raw[!df_raw[[1]]%in%df[[1]],], col = "grey") ##+ add some curve lines( df$x, stats::fitted(fit), col = plot_settings$col[1], lwd = 1.3, lty = plot_settings$lty[1] ) ##+ add components for(i in 1:m) { if (length(plot_settings$lty) < 2) plot_settings$lty <- rep(plot_settings$lty, 1 + m) if (length(plot_settings$col) < 2) plot_settings$col <- rep(plot_settings$col, 1 + m) curve( A[i] * exp(-x / (tau[i] + tp)), add = TRUE, col = plot_settings$col[i + 1], lty = plot_settings$lty[i + 1] ) } ##+ add legend legend( plot_settings$legend.pos, legend = plot_settings$legend.text, lty = plot_settings$lty, col = plot_settings$col[c(1, 2:(m + 2))], bty = "n" ) if(!plot_simple){ graphics::screen(2) par(mar = c(4, 4, 0, 4)) plot( x = df[[1]], y = residuals(fit), xlab = plot_settings$xlab, type = "b", pch = 20, xlim = plot_settings$xlim, log = if(plot_settings$log == "x"){"x"}else{""}, ylab = "Resid." ) } }else{ plot( df, xlab = plot_settings$xlab, ylab = plot_settings$ylab, col = rgb(0, 0, 0, 0.8), main = plot_settings$main, xlim = plot_settings$xlim, ylim = plot_settings$ylim, log = plot_settings$log ) } }#if plot # Return -------------------------------------------------------------------------------------- ##create return object return( set_RLum( class = "RLum.Results", data = list( data = summary_matrix, start_matrix = start_matrix, total_counts = sum(df[[2]]), fit = fit ), info = list( call = sys.call() ) ) ) } Luminescence/R/methods_RLum.R0000644000176200001440000004025014762554470015631 0ustar liggesusers##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++## ## METHODS FOR S3 GENERICS ## ##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++## ##CAUTION NOTE: ##(1) Please DO NOT access to the S4 objects by using the slots this causes inconsistent ## behaviour, please use the corresponding RLum-methods instead! ## ##(2) Especially, please DO NOT include S3-methods for which no S4-method is implemented! Especially ##for coercing. ## ##(3) Finally, what ever you want to implement, check whether a S4-method exists, it should ##be just passed to this methods, not the opposite, otherwise this will yield in undesired behaviour ## ##TODO: For this S3 generics so far no proper documentation exists ... we should consider ##to provide an overview within a separate document, as it becomes otherwise rather ##complicated for beginners to work with the documentation. ## ## INTRODUCED WITH 0.5.0 ## #' methods_RLum #' #' Methods for S3-generics implemented for the package 'Luminescence'. #' This document summarises all implemented S3-generics. The name of the function #' is given before the first dot, after the dot the name of the object that is #' supported by this method is given, e.g. `plot.RLum.Data.Curve` can be called #' by `plot(object, ...)`, where `object` is the `RLum.Data.Curve` object. #' #' The term S3-generics sounds complicated, however, it just means that something #' has been implemented in the package to increase the usability for users new #' in R and who are not familiar with the underlying `RLum`-object structure of #' the package. The practical outcome is that operations and functions presented #' in standard books on R can be used without knowing the specifics of the R #' package `'Luminescence'`. For examples see the example section. #' #' @param x [RLum-class] or [Risoe.BINfileData-class] (**required**): #' input object #' #' @param object [RLum-class] (**required**): #' input object #' #' @param y [integer] (*optional*): #' the row index of the matrix, data.frame #' #' @param z [integer] (*optional*): #' the column index of the matrix, data.frame #' #' @param i [character] (*optional*): #' name of the wanted record type or data object or row in the `RLum.Data.Curve` object #' #' @param j [integer] (*optional*): #' column of the data matrix in the `RLum.Data.Curve` object #' #' @param value [numeric] (**required**): #' numeric value which replace the value in the `RLum.Data.Curve` object #' #' @param drop [logical] (*with default*): #' keep object structure or drop it #' #' @param subset `[subset]` [expression] (**required**): #' logical expression indicating elements or rows to keep, this function works #' in [Risoe.BINfileData-class] objects like [subset.data.frame], but takes care #' of the object structure. Works also on [RLum.Analysis-class] objects. #' #' @param row.names [logical] (*with default*): #' enable/disable row names (`as.data.frame`). #' #' @param recursive [logical] (*with default*): #' enable/disable further sub-setting (`unlist`). #' #' @param optional [logical] (*with default*): #' logical. If TRUE, setting row names and converting column names #' (to syntactic names: see make.names) is optional (see [base::as.data.frame]) #' #' @param ... further arguments that can be passed to the method #' #' @note #' `methods_RLum` are not really new functions, everything given here are mostly just #' surrogates for existing functions in the package. #' #' @examples #' #' ##load example data #' data(ExampleData.RLum.Analysis, envir = environment()) #' #' @keywords internal #' @md #' @name methods_RLum NULL # plot()------------------------------------------------------------------------ #' @rdname methods_RLum #' @method plot list #' @export plot.list <- function(x, y, ...) { if (all(sapply(x, function(x) inherits(x, "RLum")))) { plot_RLum(object = x, ...) } else { if (missing(y)) y <- NULL graphics::plot.default(x, y, ...) } } #' @rdname methods_RLum #' @method plot RLum.Results #' @export plot.RLum.Results <- function(x, y, ...) plot_RLum(object = x, ...) #' @rdname methods_RLum #' @method plot RLum.Analysis #' @export plot.RLum.Analysis <- function(x, y, ...) plot_RLum(object = x, ...) #' @rdname methods_RLum #' @method plot RLum.Data.Curve #' @export plot.RLum.Data.Curve <- function(x, y, ...) plot_RLum(object = x, ...) #' @rdname methods_RLum #' @method plot RLum.Data.Spectrum #' @export plot.RLum.Data.Spectrum <- function(x, y, ...) plot_RLum(object = x, ...) #' @rdname methods_RLum #' @method plot RLum.Data.Image #' @export plot.RLum.Data.Image <- function(x, y, ...) plot_RLum(object = x, ...) #' @rdname methods_RLum #' @method plot Risoe.BINfileData #' @export plot.Risoe.BINfileData <- function(x, y, ...) plot_Risoe.BINfileData(data = x, ...) # hist() ----------------------------------------------------------------------- #' @rdname methods_RLum #' @export hist.RLum.Results <- function(x, ...) plot_Histogram(data = x, ...) #' @rdname methods_RLum #' @export hist.RLum.Data.Image <- function(x, ...) hist(x = get_RLum(x), ...) #' @rdname methods_RLum #' @export hist.RLum.Data.Curve <- function(x, ...) hist(as(get_RLum(x),"matrix")[,2]) #' @rdname methods_RLum #' @export hist.RLum.Analysis <- function(x, ...) lapply(1:length_RLum(x), function(z){ hist(as(get_RLum(x, record.id = z, ...),"matrix")[,2])}) # summary() -------------------------------------------------------------------- #' @rdname methods_RLum #' @method summary RLum.Results #' @export summary.RLum.Results <- function(object, ...) get_RLum(object = object, ...) #' @rdname methods_RLum #' @method summary RLum.Analysis #' @export summary.RLum.Analysis <- function(object, ...) lapply(object@records, function(x) summary(x@data)) #' @rdname methods_RLum #' @method summary RLum.Data.Image #' @export summary.RLum.Data.Image <- function(object, ...) summary(object@data) # summary.RLum.Data.Spectrum <- function(object, ...) #' @rdname methods_RLum #' @method summary RLum.Data.Curve #' @export summary.RLum.Data.Curve <- function(object, ...) summary(object@data, ...) # subset() --------------------------------------------------------------------- #' @rdname methods_RLum #' @method subset Risoe.BINfileData #' #' @param records.rm [subset] [logical] (*with default*): #' remove records from data set, can be disabled, to just set the column `SET` to `TRUE` or `FALSE` #' #' @md #' @export subset.Risoe.BINfileData <- function(x, subset, records.rm = TRUE, ...) { .set_function_name("subset.Risoe.BINfileData") on.exit(.unset_function_name(), add = TRUE) if(length(list(...))) .throw_warning("Argument not supported and skipped:", names(list(...))) ##select relevant rows sel <- tryCatch(eval( expr = substitute(subset), envir = x@METADATA, enclos = parent.frame() ), error = function(e) { .throw_error("\nInvalid subset options, valid terms are: ", .collapse(names(x@METADATA))) }) ##probably everything is FALSE now? if (records.rm) { if (any(sel)) { x@METADATA <- x@METADATA[sel, ] x@DATA <- x@DATA[sel] x@METADATA[["ID"]] <- 1:length(x@METADATA[["ID"]]) return(x) } else{ return(NULL) } }else{ x@METADATA[["SEL"]] <- sel return(x) } } #' @rdname methods_RLum #' @method subset RLum.Analysis #' @export subset.RLum.Analysis <- function(x, subset = NULL, ...) { do.call(get_RLum, list(object = x, drop = FALSE, subset = substitute(subset), env = parent.frame())) } # bin() ------------------------------------------------------------------------ #' @rdname methods_RLum #' @export bin <- function(x, ...) { UseMethod("bin") } #' @rdname methods_RLum #' @export bin.RLum.Data.Curve <- function(x, bin_size = 2, ...) bin_RLum.Data(x, bin_size = bin_size) #' @rdname methods_RLum #' @export bin.RLum.Data.Spectrum <- function(x, bin_size.row = 1, bin_size.col = 1, ...){ bin_RLum.Data(x, bin_size.row = bin_size.row, bin_size.col = bin_size.col) } # length() --------------------------------------------------------------------- #' @rdname methods_RLum #' @export length.RLum.Results <- function(x, ...) length_RLum(x) #' @rdname methods_RLum #' @export length.RLum.Analysis <- function(x, ...) length_RLum(x) #' @rdname methods_RLum #' @export length.RLum.Data.Curve <- function(x, ...) length_RLum(x) #' @rdname methods_RLum #' @export length.Risoe.BINfileData <- function(x, ...) length(x@METADATA$ID) # dim() ------------------------------------------------------------------------ #' @rdname methods_RLum #' @export dim.RLum.Data.Curve <- function(x) dim(as(x, "matrix")) #' @rdname methods_RLum #' @export dim.RLum.Data.Spectrum <- function(x) dim(as(x, "matrix")) # rep() ------------------------------------------------------------------- #' @rdname methods_RLum #' @export rep.RLum <- function(x, ...) replicate_RLum(x, ...) # names() ----------------------------------------------------------------- #' @rdname methods_RLum #' @export names.RLum.Data.Curve <- function(x, ...) names_RLum(x) #' @rdname methods_RLum #' @export names.RLum.Data.Spectrum <- function(x, ...) names_RLum(x) #' @rdname methods_RLum #' @export names.RLum.Data.Image <- function(x, ...) names_RLum(x) #' @rdname methods_RLum #' @export names.RLum.Analysis <- function(x, ...) names_RLum(x) #' @rdname methods_RLum #' @export names.RLum.Results <- function(x, ...) names_RLum(x) #' @rdname methods_RLum #' @export names.Risoe.BINfileData <- function(x) as.character(x@METADATA$LTYPE) # row.name() -------------------------------------------------------------- #' @rdname methods_RLum #' @export row.names.RLum.Data.Spectrum <- function(x, ...) rownames(as(x, "matrix")) # as.data.frame() --------------------------------------------------------- #' @rdname methods_RLum #' @export as.data.frame.RLum.Data.Curve <- function(x, row.names = NULL, optional = FALSE, ...) as(x, "data.frame") #' @rdname methods_RLum #' @export as.data.frame.RLum.Data.Spectrum <- function(x, row.names = NULL, optional = FALSE, ...) as(x, "data.frame") # for RLum.Results ... makes no sense and may yield in unpredictable behaviour #' @rdname methods_RLum #' @export as.data.frame.Risoe.BINfileData <- function(x, row.names = NULL, optional = FALSE, ...) { ## set matrix m <- matrix(NA, ncol = max(lengths(x@DATA)), nrow = length(x@DATA)) ## rename columns colnames(m) <- paste0("C",1:ncol(m)) ## fill matrix for(i in 1:length(x@DATA)) m[i,1:length(x@DATA[[i]])] <- x@DATA[[i]] ##convert to data.frame and bind cbind(x@METADATA, as.data.frame(m)) } # as.list() --------------------------------------------------------------- #' @rdname methods_RLum #' @export as.list.RLum.Results <- function(x, ...) as(x, "list") #' @rdname methods_RLum #' @export as.list.RLum.Data.Curve <- function(x, ...) as(x, "list") #' @rdname methods_RLum #' @export as.list.RLum.Data.Image <- function(x, ...) as(x, "list") #' @rdname methods_RLum #' @export as.list.RLum.Data.Spectrum <- function(x, ...) as(x, "list") #' @rdname methods_RLum #' @export as.list.RLum.Analysis <- function(x, ...) as(x, "list") # as.matrix() ------------------------------------------------------------- #' @rdname methods_RLum #' @export as.matrix.RLum.Data.Curve <- function(x, ...) as(x, "matrix") #' @rdname methods_RLum #' @export as.matrix.RLum.Data.Spectrum <- function(x, ...) as(x, "matrix") #' @rdname methods_RLum #' @export as.matrix.RLum.Data.Image <- function(x, ...) as(x, "matrix") # for RLum.Results ... makes no sense and may yield in unpredictable behaviour # is() -------------------------------------------------------------------- #For this function no S4 method was written, as this would come at the cost of performance and #is totally unnecessary #' @rdname methods_RLum #' @export is.RLum <- function(x, ...) is(x, "RLum") #' @rdname methods_RLum #' @export is.RLum.Data <- function(x, ...) is(x, "RLum.Data") #' @rdname methods_RLum #' @export is.RLum.Data.Curve <- function(x, ...) is(x, "RLum.Data.Curve") #' @rdname methods_RLum #' @export is.RLum.Data.Spectrum <- function(x, ...) is(x, "RLum.Data.Spectrum") #' @rdname methods_RLum #' @export is.RLum.Data.Image <- function(x, ...) is(x, "RLum.Data.Image") #' @rdname methods_RLum #' @export is.RLum.Analysis <- function(x, ...) is(x, "RLum.Analysis") #' @rdname methods_RLum #' @export is.RLum.Results <- function(x, ...) is(x, "RLum.Results") # merge() ----------------------------------------------------------------- #' @rdname methods_RLum #' @export merge.RLum <- function(x, y, ...) merge_RLum(append(list(...), values = c(x, y))) # unlist() ---------------------------------------------------------------- #' @rdname methods_RLum #' @method unlist RLum.Analysis #' @export unlist.RLum.Analysis <- function(x, recursive = TRUE, ...){ temp <- get_RLum(object = x, recursive = recursive, ... ) if(recursive){ unlist(lapply(1:length(temp), function(x){ get_RLum(temp) }), recursive = FALSE) }else{ return(temp) } } # `+` --------------------------------------------------------------------- #' @rdname methods_RLum #' #' @examples #' #' ##combine curve is various ways #' curve1 <- IRSAR.RF.Data[[1]] #' curve2 <- IRSAR.RF.Data[[1]] #' curve1 + curve2 #' curve1 - curve2 #' curve1 / curve2 #' curve1 * curve2 #' #' @export `+.RLum.Data.Curve` <- function(x, y) merge_RLum(list(x, y), merge.method = "sum") #' @rdname methods_RLum #' @export `+.RLum.Data.Spectrum` <- function(x, y) merge_RLum(list(x, y), merge.method = "sum") # `-` --------------------------------------------------------------------- #' @rdname methods_RLum #' @export `-.RLum.Data.Curve` <- function(x, y) merge_RLum(list(x, y), merge.method = "-") #' @rdname methods_RLum #' @export `-.RLum.Data.Spectrum` <- function(x, y) merge_RLum(list(x, y), merge.method = "-") # `*` --------------------------------------------------------------------- #' @rdname methods_RLum #' @export `*.RLum.Data.Curve` <- function(x, y) merge_RLum(list(x, y), merge.method = "*") #' @rdname methods_RLum #' @export `*.RLum.Data.Spectrum` <- function(x, y) merge_RLum(list(x, y), merge.method = "*") # `/` --------------------------------------------------------------------- #' @rdname methods_RLum #' @export `/.RLum.Data.Curve` <- function(x, y) merge_RLum(list(x, y), merge.method = "/") #' @rdname methods_RLum #' @export `/.RLum.Data.Spectrum` <- function(x, y) merge_RLum(list(x, y), merge.method = "/") # `[` --------------------------------------------------------------------- #' @rdname methods_RLum #' @export `[.RLum.Data.Curve` <- function(x,y,z, drop = TRUE) {as(x, "matrix")[y,z, drop = drop]} #' @rdname methods_RLum #' @export `[.RLum.Data.Spectrum` <- function(x,y,z, drop = TRUE) {as(x, "matrix")[y,z, drop = drop]} #' @rdname methods_RLum #' @export `[.RLum.Data.Image` <- function(x,y,z, drop = TRUE) {as(x, "matrix")[y,z, drop = drop]} #' @rdname methods_RLum #' @export `[.RLum.Analysis` <- function(x, i, drop = FALSE) { if (is(i, "character")) { get_RLum(x, recordType = i, drop = drop) } else{ get_RLum(x, record.id = i, drop = drop) } } #' @rdname methods_RLum #' @export `[.RLum.Results` <- function(x, i, drop = TRUE) {get_RLum(x, data.object = i, drop = drop)} # `[<-` ------------------------------------------------------------------- #' @rdname methods_RLum #' @export `[<-.RLum.Data.Curve` <- function(x, i, j, value){ x@data[i,j] <- value #this is without any S4-method, but otherwise the overhead it too high return(x) } # `[[` -------------------------------------------------------------------- #' @rdname methods_RLum #' @export `[[.RLum.Analysis` <- function(x, i) { if (is(i, "character")) { get_RLum(x, recordType = i) } else{ get_RLum(x, record.id = i) } } #' @rdname methods_RLum #' @export `[[.RLum.Results` <- function(x, i) {get_RLum(x, data.object = i)} # `$` --------------------------------------------------------------------- #' @rdname methods_RLum #' @export `$.RLum.Data.Curve` <- function(x, i) {get_RLum(x, info.object = i)} #' @rdname methods_RLum #' #' @examples #' #' ##`$` access curves #' IRSAR.RF.Data$RF #' #' @export `$.RLum.Analysis` <- function(x, i) {get_RLum(x, recordType = i)} #' @rdname methods_RLum #' @export `$.RLum.Results` <- function(x, i) {get_RLum(x, data.object = i)} Luminescence/R/calc_Kars2008.R0000644000176200001440000000024514762554470015423 0ustar liggesuserscalc_Kars2008 <- function(fit.method = "EXP", ...) { # nocov start .Defunct("calc_Huntley2006") calc_Huntley2006(fit.method = fit.method, ...) # nocov end } Luminescence/R/calc_OSLLxTxDecomposed.R0000644000176200001440000001270414762554470017474 0ustar liggesusers#' @title Calculate Lx/Tx ratio for decomposed CW-OSL signal components #' #' @description Calculate `Lx/Tx` ratios from a given set of decomposed #' CW-OSL curves decomposed by `OSLdecomposition::RLum.OSL_decomposition`. #' #' @param OSL.component [integer] or [character] (*optional*): #' a single index or a name describing which OSL signal component shall be evaluated. #' This argument can either be the name of the OSL component assigned by #' `OSLdecomposition::RLum.OSL_global_fitting` or the index of component. #' Then `'1'` selects the fastest decaying component, `'2'` the #' second fastest and so on. If not defined, the fastest decaying component is selected. #' #' @param Lx.data [data.frame] (**required**): Component table created by #' `OSLdecomposition::RLum.OSL_decomposition` and per default located #' at `object@records[[...]]@info$COMPONENTS`.The value of `$n[OSL.component]` #' is set as `LnLx`. The value of `$n.error[OSL.component]` is set as `LnLx.error` #' #' @param Tx.data [data.frame] (*optional*): Component table created by #' `OSLdecomposition::RLum.OSL_decomposition` and per default located at #' `object@records[[...]]@info$COMPONENTS`. The value of `$n[OSL.component]` #' is set as `TnTx`. The value of `$n.error[OSL.component]` is set as `TnTx.error` #' #' @param sig0 [numeric] (*with default*): allows adding an extra error component #' to the final `Lx/Tx` error value (e.g., instrumental error). #' #' @param digits [integer] (*with default*): round numbers to the specified digits. #' If digits is set to `NULL` nothing is rounded. #' #' @return Returns an S4 object of type [RLum.Results-class]. #' #' Slot `data` contains a [list] with the following structure: #' #' **@data** #' ``` #' $LxTx.table (data.frame) #' .. $ LnLx #' .. $ TnTx #' .. $ Net_LnLx #' .. $ Net_LnLx.Error #' .. $ Net_TnTx #' .. $ Net_TnTx.Error #' .. $ LxTx #' .. $ LxTx.relError #' .. $ LxTx.Error #' ``` #' #' @section Function version: 0.1.0 #' #' @author Dirk Mittelstrass #' #' @seealso [RLum.Data.Curve-class], [fit_DoseResponseCurve], [analyse_SAR.CWOSL] #' #' @references Mittelstrass D., Schmidt C., Beyer J., Straessner A., 2019. #' Automated identification and separation of quartz CW-OSL signal components with R. #' talk presented at DLED 2019, Bingen, Germany #' [http://luminescence.de/OSLdecomp_talk.pdf]()\cr #' #' @keywords datagen #' @md #' @export calc_OSLLxTxDecomposed <- function( Lx.data, Tx.data = NULL, OSL.component = 1L, sig0 = 0, digits = NULL ) { .set_function_name("calc_OSLLxTxDecomposed") on.exit(.unset_function_name(), add = TRUE) # ToDo: # - Integrity checks for the component table # - Handle background-signal-component if present # - add Tx.data integrity checks # - add previous-residual-subtraction functionality # - add list with decomposition algorithm parameters to return object # - add example in documentation ##--------------------------------------------------------------------------## ## (1) - integrity checks .validate_class(Lx.data, "data.frame") if (nrow(Lx.data) < 1) .throw_error("No valid component data.frame for Lx value") if (!is.null(Tx.data)) { .validate_class(Tx.data, "data.frame") if (nrow(Tx.data) < 1) .throw_error("No valid component data.frame for Tx value") } # define the component component_index <- NA #select only the first element; we do this silently because it is clearly #written in the documentation OSL.component <- OSL.component[1] .validate_class(OSL.component, c("integer", "numeric", "character")) # get component index from component name if (is.character(OSL.component)) { if (tolower(OSL.component) %in% tolower(Lx.data$name)) { component_index <- which(tolower(OSL.component) == tolower(Lx.data$name)) } else { .throw_error("Invalid OSL component name, valid names are: ", .collapse(Lx.data$name)) } } # if a numeric is given, check if it matches with any component index if (is.numeric(OSL.component)) { OSL.component <- as.integer(OSL.component) if (OSL.component %in% 1:nrow(Lx.data)) { component_index <- OSL.component # insert background-signal-component check here } else { .throw_error("Invalid OSL component index, ", "component table has ", nrow(Lx.data), " rows") } } .validate_positive_scalar(digits, int = TRUE, null.ok = TRUE) ##--------------------------------------------------------------------------## ## (2) - extract Lx and Tx values LnLx <- Lx.data$n[component_index] LnLx.Error <- Lx.data$n.error[component_index] TnTx <- 1 TnTx.Error <- 0 if (!is.null(Tx.data)) { TnTx <- Tx.data$n[component_index] TnTx.Error <- Tx.data$n.error[component_index] } ##combine results LnLxTnTx <- cbind( LnLx, LnLx.Error, TnTx, TnTx.Error ) ##--------------------------------------------------------------------------## ##(4) Calculate LxTx error according Galbraith (2014) ## transform results to a data.frame LnLxTnTx <- as.data.frame(LnLxTnTx) colnames(LnLxTnTx)<-c("Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error") temp <- .calculate_LxTx_error(LnLxTnTx, sig0, digits) # ToDo: Add decomposition algorithm parameters here # calc.parameters <- list(...) ##set results object return(set_RLum( class = "RLum.Results", data = list( LxTx.table = temp), # calc.parameters = calc.parameters), info = list(call = sys.call()) )) } Luminescence/R/calc_gSGC_feldspar.R0000644000176200001440000002546014762554470016662 0ustar liggesusers#'@title Calculate Global Standardised Growth Curve (gSGC) for Feldspar MET-pIRIR #' #'@description Implementation of the gSGC approach for feldspar MET-pIRIR by Li et al. (2015) #' #'@details ##TODO #' #'@param data [data.frame] (**required**): data frame with five columns per sample #'`c("LnTn", "LnTn.error", "Lr1Tr1", "Lr1Tr1.error","Dr1")` #' #'@param gSGC.type [character] (*with default*): growth curve type to be selected #'according to Table 3 in Li et al. (2015). Allowed options are #'`"50LxTx"`, `"50Lx"`, `"50Tx"`, `"100LxTx"`, `"100Lx"`, `"100Tx"`, `"150LxTx"`, #' `"150Lx"`, `"150Tx"`, `"200LxTx"`, `"200Lx"`, `"200Tx"`, `"250LxTx"`, `"250Lx"`, #' `"250Tx"` #' #'@param gSGC.parameters [data.frame] (*optional*): an own parameter set for the #'gSGC with the following columns `y1`, `y1_err`, `D1` #'`D1_err`, `y2`, `y2_err`, `y0`, `y0_err`. #' #'@param n.MC [numeric] (*with default*): number of Monte-Carlo runs for the #'error calculation #' #'@param plot [logical] (*with default*): enable/disable the plot output. #' #'@return Returns an S4 object of type [RLum.Results-class]. #' #' **`@data`**\cr #' `$ df` ([data.frame]) \cr #' `.. $DE` the calculated equivalent dose\cr #' `.. $DE.ERROR` error on the equivalent dose, which is the standard deviation of the MC runs\cr #' `.. $HPD95_LOWER` lower boundary of the highest probability density (95%)\cr #' `.. $HPD95_UPPER` upper boundary of the highest probability density (95%)\cr #' `$ m.MC` ([list]) numeric vector with results from the MC runs.\cr #' #' **`@info`**\cr #' `$ call`` ([call]) the original function call #' #' @section Function version: 0.1.0 #' #' @author Harrison Gray, USGS (United States), #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Results-class], [get_RLum], [uniroot], [calc_gSGC] #' #' @references Li, B., Roberts, R.G., Jacobs, Z., Li, S.-H., Guo, Y.-J., 2015. #' Construction of a “global standardised growth curve” (gSGC) for infrared #' stimulated luminescence dating of K-feldspar 27, 119–130. \doi{10.1016/j.quageo.2015.02.010} #' #' @keywords datagen #' #' @examples #' #' ##test on a generated random sample #' n_samples <- 10 #' data <- data.frame( #' LnTn = rnorm(n=n_samples, mean=1.0, sd=0.02), #' LnTn.error = rnorm(n=n_samples, mean=0.05, sd=0.002), #' Lr1Tr1 = rnorm(n=n_samples, mean=1.0, sd=0.02), #' Lr1Tr1.error = rnorm(n=n_samples, mean=0.05, sd=0.002), #' Dr1 = rep(100,n_samples)) #' #' results <- calc_gSGC_feldspar( #' data = data, gSGC.type = "50LxTx", #' plot = FALSE) #' #' plot_AbanicoPlot(results) #' #'@md #'@export calc_gSGC_feldspar <- function ( data, gSGC.type = "50LxTx", gSGC.parameters, n.MC = 100, plot = FALSE ) { .set_function_name("calc_gSGC_feldspar") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(data, "data.frame") if (ncol(data) != 5) { .throw_error("Structure of 'data' does not fit the expectations") } colnames(data) <- c("LnTn", "LnTn.error", "Lr1Tr1", "Lr1Tr1.error", "Dr1") .validate_class(gSGC.type, "character") # Parametrize ------------------------------------------------------------- params <- data.frame( # this is the data from Table 3 of Li et al., 2015 Type = c("50LxTx", "50Lx", "50Tx", "100LxTx", "100Lx", "100Tx", "150LxTx", "150Lx", "150Tx", "200LxTx", "200Lx", "200Tx", "250LxTx", "250Lx", "250Tx"), y1 = c( 0.57, 0.36, 0.2, 0.39, 0.41, 0.28, 0.43, 0.4, 0.31, 0.3, 0.34, 0.37, 0.37, 0.17, 0.48), y1_err = c( 0.19, 0.25, 0.24, 0.12, 0.28, 0.22, 0.11, 0.27, 0.33, 0.06, 0.28, 0.28, 0.1, 0.12, 0.37), D1 = c( 241, 276, 259, 159, 304, 310, 177, 327, 372, 119, 316, 372, 142, 197, 410), D1_err = c( 66, 137, 279, 48, 131, 220, 41, 132, 300, 32, 145, 218, 35, 116, 210), y2 = c( 0.88, 1.37, 0.34, 0.91, 1.22, 0.42, 0.88, 1.26, 0.45, 0.95, 1.24, 0.43, 0.74, 1.32, 0.45), y2_err = c( 0.15, 0.19, 0.15, 0.1, 0.23, 0.26, 0.09, 0.23, 0.18, 0.05, 0.25, 0.24, 0.09, 0.1, 0.15), D2 = c( 1115, 1187, 1462, 741, 1146, 2715, 801, 1157, 2533, 661, 1023, 2792, 545, 830, 2175), D2_err = c( 344, 287, 191, 105, 288, 639, 109, 263, 608, 49, 205, 709, 62, 79, 420), y0 = c( 0.008, 0.003, 0.685, 0.018, 0.01, 0.64, 0.026, 0.015, 0.61, 0.034, 0.02, 0.573, 0.062, 0.028, 0.455), y0_err = c( 0.009, 0.009, 0.014, 0.008, 0.008, 0.015, 0.006, 0.007, 0.014, 0.006, 0.006, 0.013, 0.005, 0.005, 0.011), D0_2.3 = c( 2000, 2450, 1420, 1420, 2300, 2900, 1500, 2340, 2880, 1320, 2080, 2980, 1000, 1780, 2500), D0_3 = c( 2780, 3280, 2520, 1950, 3100, 4960, 2060, 3130, 4760, 1780, 2800, 5120, 1380, 2360, 4060) ) # these are user specified parameters if they so desire if (!missing(gSGC.parameters)){ y1 <- gSGC.parameters$y1 y1_err <- gSGC.parameters$y1_err D1 <- gSGC.parameters$D1 D1_err <- gSGC.parameters$D1_err y2 <- gSGC.parameters$y2 y2_err <- gSGC.parameters$y2_err y0 <- gSGC.parameters$y0 y0_err <- gSGC.parameters$y0_err } else { if (gSGC.type[1] %in% params$Type){ # take the user input pIRSL temperature and assign the correct parameters index <- match(gSGC.type,params$Type) y1 <- params$y1[index] y1_err <- params$y1_err[index] D1 <- params$D1[index] D1_err <- params$D1_err[index] y2 <- params$y2[index] y2_err <- params$y2_err[index] D2 <- params$D2[index] D2_err <- params$D2_err[index] y0 <- params$y0[index] y0_err <- params$y0_err[index] } else { # give error if input is wrong .throw_error("'gSGC.type' needs to be one of the accepted values: ", .collapse(params$Type)) } } ##set function for uniroot ## function from Li et al., 2015 eq: 3 ## function that equals zero when the correct De is found. ## This is so uniroot can find the correct value or 'root' f <- function(De, Dr1, Lr1Tr1, LnTn, y1, D1, y2, D2, y0){ f_D <- y1 * (1 - exp(-De / D1)) + y2 * (1 - exp(-De / D2)) + y0 f_Dr <- y1 * (1 - exp(-Dr1 / D1)) + y2 * (1 - exp(-Dr1 / D2)) + y0 ##return(f_D/Lr1Tr1 - f_Dr/LnTn) ##TODO double check seems to be wrong return(f_Dr/Lr1Tr1 - f_D/LnTn) } # Run calculation --------------------------------------------------------- l <- lapply(1:nrow(data), function(i) { Lr1Tr1 <- data[i, "Lr1Tr1"] #assign user's input data Lr1Tr1.error <- data[i, "Lr1Tr1.error"] Dr1 <- data[i, "Dr1"] LnTn <- data[i, "LnTn"] LnTn.error <- data[i, "LnTn.error"] ## uniroot solution temp <- try({ uniroot( f, interval = c(0.1, 3000), tol = 0.001, Dr1 = Dr1, Lr1Tr1 = Lr1Tr1, LnTn = LnTn, y1 = y1, D1 = D1, y2 = y2, D2 = D2, y0 = y0, extendInt = "yes", check.conv = TRUE, maxiter = 1000) }, silent = TRUE) # solve for the correct De ## in case the initial uniroot solve does not work if(inherits(temp, "try-error")) { .throw_message("No solution found for dataset #", i, ", NA returned") return(NA) } De <- temp$root temp.MC.matrix <- matrix(nrow = n.MC, ncol = 8) # to estimate the error, use a monte carlo simulation. assume error in input data is gaussian # create a matrix colnames(temp.MC.matrix) <- c("LnTn", "Lr1Tr1","y1", "D1", "y2", "D2", "y0", "De") # simulate random values for each parameter temp.MC.matrix[, 1:7] <- matrix( rnorm(n.MC * 7, mean = c(LnTn, Lr1Tr1, y1, D1, y2, D2, y0), sd = c(LnTn.error, Lr1Tr1.error, y1_err, D1_err, y2_err, D2_err, y0_err)), ncol = 7, byrow = TRUE) # now use the randomly generated parameters to calculate De's with uniroot for (j in 1:n.MC){ temp2 <- try({ uniroot( f, interval = c(0.1, 3000), tol = 0.001, LnTn = temp.MC.matrix[j, 1], Lr1Tr1 = temp.MC.matrix[j, 2], y1 = temp.MC.matrix[j, 3], D1 = temp.MC.matrix[j, 4], y2 = temp.MC.matrix[j, 5], D2 = temp.MC.matrix[j, 6], y0 = temp.MC.matrix[j, 7], Dr1 = Dr1, extendInt = "yes", check.conv = TRUE, maxiter = 1000 ) }, silent = TRUE) if (!inherits(temp2, "try-error")){ temp.MC.matrix[j,8] <- temp2$root } else { # give an NA if uniroot cannot find a root (usually due to bad random values) temp.MC.matrix[j,8] <- NA } } # set the De uncertainty as the standard deviations of the randomly generated des De.error <- sd(temp.MC.matrix[, 8], na.rm = TRUE) return(list( DE = De, DE.ERROR = De.error, m.MC = temp.MC.matrix)) }) # Plotting ---------------------------------------------------------------- if(plot){ old.par <- par(no.readonly = TRUE) on.exit(par(old.par), add = TRUE) par(mfrow = c(mfrow = c(3,3))) for (i in 1:length(l)) { if(is.na(l[[i]][1])) next(); y_max <- max(l[[i]]$m.MC[, 1:2]) plot(NA, NA, xlab = "Dose [a.u.]", ylab = "Norm. Signal", xlim = c(0, 3000), main = paste0("Dataset #", i), ylim = c(0, y_max) ) for(j in 1:nrow(l[[i]]$m.MC)){ #y1 * (1 - exp(-De / D1)) + y2 * (1 - exp(-De / D2)) + y0 x <- NA curve( l[[i]]$m.MC[j, 3] * (1 - exp(-x / l[[i]]$m.MC[j, 4])) + l[[i]]$m.MC[j, 5] * (1 - exp(-x / l[[i]]$m.MC[j, 6])) + l[[i]]$m.MC[j, 7], col = rgb(0,0,0,0.4), add = TRUE) } par(new = TRUE) hist <- hist(na.exclude(l[[i]]$m.MC[, 8]), plot = FALSE ) hist$counts <- ((y_max/max(hist$counts)) * hist$counts) / 2 plot( hist, xlab = "", ylab = "", axes = FALSE, xlim = c(0, 3000), ylim = c(0, y_max), main = "" ) } } # Return ------------------------------------------------------------------ ##output matrix m <- matrix(ncol = 4, nrow = nrow(data)) ##calculate a few useful parameters for(i in 1:nrow(m)){ if(is.na(l[[i]][1])) next(); m[i,1] <- l[[i]]$DE m[i,2] <- l[[i]]$DE.ERROR HPD <- .calc_HPDI(na.exclude(l[[i]]$m.MC[,8])) m[i,3] <- HPD[1,1] m[i,4] <- HPD[1,2] } df <- data.frame( DE = m[, 1], DE.ERROR = m[, 2], HPD95_LOWER = m[, 3], HPD95_UPPER = m[, 4] ) return( set_RLum("RLum.Results", data = list( data = df, m.MC = lapply(l, function(x) {if(is.na(x[[1]])) {return(x)} else {x$m.MC} }) ), info = list( call = sys.call() ) )) } Luminescence/R/convert_CW2pHMi.R0000644000176200001440000002657714762554470016160 0ustar liggesusers#' Transform a CW-OSL curve into a pHM-OSL curve via interpolation under #' hyperbolic modulation conditions #' #' This function transforms a conventionally measured continuous-wave (CW) #' OSL-curve to a pseudo hyperbolic modulated (pHM) curve under hyperbolic #' modulation conditions using the interpolation procedure described by Bos & #' Wallinga (2012). #' #' The complete procedure of the transformation is described in Bos & Wallinga #' (2012). The input `data.frame` consists of two columns: time (t) and #' count values (CW(t)) #' #' **Internal transformation steps** #' #' (1) log(CW-OSL) values #' #' (2) #' Calculate t' which is the transformed time: #' \deqn{t' = t-(1/\delta)*log(1+\delta*t)} #' #' (3) #' Interpolate CW(t'), i.e. use the log(CW(t)) to obtain the count values #' for the transformed time (t'). Values beyond `min(t)` and `max(t)` #' produce `NA` values. #' #' (4) #' Select all values for t' < `min(t)`, i.e. values beyond the time #' resolution of t. Select the first two values of the transformed data set #' which contain no `NA` values and use these values for a linear fit #' using [lm]. #' #' (5) #' Extrapolate values for t' < `min(t)` based on the previously #' obtained fit parameters. #' #' (6) #' Transform values using #' \deqn{pHM(t) = (\delta*t/(1+\delta*t))*c*CW(t')} #' \deqn{c = (1+\delta*P)/\delta*P} #' \deqn{P = length(stimulation~period)} #' #' (7) Combine all values and truncate all values for t' > `max(t)` #' #' #' **NOTE:** #' The number of values for t' < `min(t)` depends on the stimulation rate #' parameter `delta`. To avoid the production of too many artificial data #' at the raising tail of the determined pHM curve, it is recommended to use #' the automatic estimation routine for `delta`, i.e. provide no value for #' `delta`. #' #' @param values [RLum.Data.Curve-class] or [data.frame] (**required**): #' [RLum.Data.Curve-class] or [data.frame] with measured curve data of type #' stimulation time (t) (`values[,1]`) and measured counts (cts) (`values[,2]`). #' #' @param delta [vector] (*optional*): #' stimulation rate parameter, if no value is given, the optimal value is #' estimated automatically (see details). Smaller values of delta produce more #' points in the rising tail of #' the curve. #' #' @return #' The function returns the same data type as the input data type with #' the transformed curve values. #' #' #' **`RLum.Data.Curve`** #' #' \tabular{ll}{ #' `$CW2pHMi.x.t` \tab: transformed time values \cr #' `$CW2pHMi.method` \tab: used method for the production of the new data points #' } #' #' **`data.frame`** #' #' \tabular{ll}{ #' `$x` \tab: time\cr #' `$y.t` \tab: transformed count values\cr #' `$x.t` \tab: transformed time values \cr #' `$method` \tab: used method for the production of the new data points #' } #' #' @note #' According to Bos & Wallinga (2012), the number of extrapolated points #' should be limited to avoid artificial intensity data. If `delta` is #' provided manually and more than two points are extrapolated, a warning #' message is returned. #' #' The function [approx] may produce some `Inf` and `NaN` data. #' The function tries to manually interpolate these values by calculating #' the `mean` using the adjacent channels. If two invalid values are succeeding, #' the values are removed and no further interpolation is attempted. #' In every case a warning message is shown. #' #' @section Function version: 0.2.3 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Based on comments and suggestions from:\cr #' Adrie J.J. Bos, Delft University of Technology, The Netherlands #' #' @seealso [convert_CW2pLM], [convert_CW2pLMi], [convert_CW2pPMi], #' [fit_LMCurve], [lm], [RLum.Data.Curve-class] #' #' @references #' Bos, A.J.J. & Wallinga, J., 2012. How to visualize quartz OSL #' signal components. Radiation Measurements, 47, 752-758.\cr #' #' **Further Reading** #' #' Bulur, E., 1996. An Alternative Technique For #' Optically Stimulated Luminescence (OSL) Experiment. Radiation Measurements, #' 26, 701-709. #' #' Bulur, E., 2000. A simple transformation for converting CW-OSL curves to #' LM-OSL curves. Radiation Measurements, 32, 141-145. #' #' @keywords manip #' #' @examples #' #' ##(1) - simple transformation #' #' ##load CW-OSL curve data #' data(ExampleData.CW_OSL_Curve, envir = environment()) #' #' ##transform values #' values.transformed <- convert_CW2pHMi(ExampleData.CW_OSL_Curve) #' #' ##plot #' plot(values.transformed$x, values.transformed$y.t, log = "x") #' #' ##(2) - load CW-OSL curve from BIN-file and plot transformed values #' #' ##load BINfile #' #BINfileData<-readBIN2R("[path to BIN-file]") #' data(ExampleData.BINfileData, envir = environment()) #' #' ##grep first CW-OSL curve from ALQ 1 #' curve.ID<-CWOSL.SAR.Data@@METADATA[CWOSL.SAR.Data@@METADATA[,"LTYPE"]=="OSL" & #' CWOSL.SAR.Data@@METADATA[,"POSITION"]==1 #' ,"ID"] #' #' curve.HIGH<-CWOSL.SAR.Data@@METADATA[CWOSL.SAR.Data@@METADATA[,"ID"]==curve.ID[1] #' ,"HIGH"] #' #' curve.NPOINTS<-CWOSL.SAR.Data@@METADATA[CWOSL.SAR.Data@@METADATA[,"ID"]==curve.ID[1] #' ,"NPOINTS"] #' #' ##combine curve to data set #' #' curve<-data.frame(x = seq(curve.HIGH/curve.NPOINTS,curve.HIGH, #' by = curve.HIGH/curve.NPOINTS), #' y=unlist(CWOSL.SAR.Data@@DATA[curve.ID[1]])) #' #' #' ##transform values #' #' curve.transformed <- convert_CW2pHMi(curve) #' #' ##plot curve #' plot(curve.transformed$x, curve.transformed$y.t, log = "x") #' #' #' ##(3) - produce Fig. 4 from Bos & Wallinga (2012) #' #' ##load data #' data(ExampleData.CW_OSL_Curve, envir = environment()) #' values <- CW_Curve.BosWallinga2012 #' #' ##open plot area #' plot(NA, NA, #' xlim=c(0.001,10), #' ylim=c(0,8000), #' ylab="pseudo OSL (cts/0.01 s)", #' xlab="t [s]", #' log="x", #' main="Fig. 4 - Bos & Wallinga (2012)") #' #' values.t <- convert_CW2pLMi(values, P = 1/20) #' lines(values[1:length(values.t[, 1]), 1], values.t[, 2], #' col="red" ,lwd=1.3) #' text(0.03,4500,"LM", col="red" ,cex=.8) #' #' values.t <- convert_CW2pHMi(values, delta = 40) #' lines(values[1:length(values.t[, 1]), 1], values.t[, 2], #' col="black", lwd=1.3) #' text(0.005,3000,"HM", cex=.8) #' #' values.t <- convert_CW2pPMi(values, P = 1/10) #' lines(values[1:length(values.t[, 1]), 1], values.t[, 2], #' col="blue", lwd=1.3) #' text(0.5,6500,"PM", col="blue" ,cex=.8) #' #' @md #' @export convert_CW2pHMi<- function( values, delta ) { .set_function_name("convert_CW2pHMi") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- ##(1) data.frame or RLum.Data.Curve object? .validate_class(values, c("data.frame", "RLum.Data.Curve")) .validate_not_empty(values) ##(2) if the input object is an 'RLum.Data.Curve' object check for allowed curves if (inherits(values, "RLum.Data.Curve")) { if(!grepl("OSL", values@recordType) & !grepl("IRSL", values@recordType)){ .throw_error("recordType ", values@recordType, " is not allowed for the transformation") } temp.values <- as(values, "data.frame") }else{ temp.values <- values } # (1) Transform values ------------------------------------------------------ ##log transformation of the CW-OSL count values CW_OSL.log<-log(temp.values[,2]) ##time transformation t >> t' t<-temp.values[,1] ##set delta ##if no values for delta is set selected a delta value for a maximum of ##two extrapolation points if(missing(delta)==TRUE){ i<-10 delta<-i t.transformed<-t-(1/delta)*log(1+delta*t) while(length(t.transformed[t.transformed2){ delta<-i t.transformed<-t-(1/delta)*log(1+delta*t) i<-i+10 } }else{ t.transformed<-t-(1/delta)*log(1+delta*t) } # (2) Interpolation --------------------------------------------------------- ##interpolate values, values beyond the range return NA values CW_OSL.interpolated <- approx(t,CW_OSL.log, xout=t.transformed, rule=1) ##combine t.transformed and CW_OSL.interpolated in a data.frame temp <- data.frame(x=t.transformed, y=unlist(CW_OSL.interpolated$y)) ##Problem: In some cases the interpolation algorithm is not working properly ##and Inf or NaN values are returned ##fetch row number of the invalid values invalid_values.id <- c(which(is.infinite(temp[,2]) | is.nan(temp[,2]))) if(length(invalid_values.id) > 0){ .throw_warning(length(invalid_values.id), " invalid values have been found ", "and replaced by the mean of the nearest values") } ##interpolate between the lower and the upper value invalid_values.interpolated<-sapply(1:length(invalid_values.id), function(x) { mean(c(temp[invalid_values.id[x]-1,2], temp[invalid_values.id[x]+1,2])) } ) ##replace invalid values in data.frame with newly interpolated values if(length(invalid_values.id)>0){ temp[invalid_values.id,2]<-invalid_values.interpolated } # (3) Extrapolate first values of the curve --------------------------------- ##(a) - find index of first rows which contain NA values (needed for extrapolation) temp.sel.id<-min(which(is.na(temp[,2])==FALSE)) ##(b) - fit linear function fit.lm <- stats::lm(y ~ x, data.frame(x = t[1:2], y = CW_OSL.log[1:2])) ##select values to extrapolate and predict (extrapolate) values based on the fitted function x.i<-data.frame(x=temp[1:(min(temp.sel.id)-1),1]) y.i<-predict(fit.lm,x.i) ##replace NA values by extrapolated values temp[1:length(y.i),2]<-y.i ##set method values temp.method<-c(rep("extrapolation",length(y.i)),rep("interpolation",(length(temp[,2])-length(y.i)))) ##print a warning message for more than two extrapolation points if (length(y.i) > 2) { .throw_warning("t' is beyond the time resolution and more than ", "two data points have been extrapolated") } # (4) Convert, transform and combine values --------------------------------- ##unlog CW-OSL count values, i.e. log(CW) >> CW CW_OSL<-exp(temp$y) ##set values for c and P ##P is the stimulation period P<-max(temp.values[,1]) ##c is a dimensionless constant c<-(1+(delta*P))/(delta*P) ##transform CW-OSL values to pLM-OSL values pHM<-((delta*t)/(1+(delta*t)))*c*CW_OSL ##combine all values and exclude NA values temp.values <- data.frame(x=t,y.t=pHM,x.t=t.transformed,method=temp.method) temp.values <- na.exclude(temp.values) # (5) Return values --------------------------------------------------------- ##returns the same data type as the input if(is(values, "data.frame") == TRUE){ values <- temp.values return(values) }else{ ##add old info elements to new info elements temp.info <- c(values@info, CW2pHMi.x.t = list(temp.values$x.t), CW2pHMi.method = list(temp.values$method)) newRLumDataCurves.CW2pHMi <- set_RLum( class = "RLum.Data.Curve", recordType = values@recordType, data = as.matrix(temp.values[,1:2]), info = temp.info) return(newRLumDataCurves.CW2pHMi) } } #' @rdname convert_CW2pHMi #' @export CW2pHMi <- function(values, delta) { .Deprecated("convert_CW2pHMi") convert_CW2pHMi(values, delta) } Luminescence/R/calc_WodaFuchs2008.R0000644000176200001440000001515214762554470016411 0ustar liggesusers#' Obtain the equivalent dose using the approach by Woda and Fuchs 2008 #' #' The function generates a histogram-like reorganisation of the data, to #' assess counts per bin. The log-transformed counts per bin are used to #' calculate the second derivative of the data (i.e., the curvature of the #' curve) and to find the central value of the bin hosting the distribution #' maximum. A normal distribution model is fitted to the counts per bin #' data to estimate the dose distribution parameters. The uncertainty of the #' model is estimated based on all input equivalent doses smaller that of the #' modelled central value. #' #' @param data [data.frame] [vector], or [RLum.Results-class] object (**required**): #' for [data.frame]: either two columns: De (`values[,1]`) and De error #' (`values[,2]`), or one: De (`values[,1]`). If a numeric vector or a #' single-column data frame is provided, De error is set to `NA`. #' For plotting multiple data sets, these must be provided as `list` #' (e.g. `list(dataset1, dataset2)`). #' #' @param breaks [numeric]: #' Either number or locations of breaks. See `[hist]` for details. #' If missing, the number of breaks will be estimated based on the bin width #' (as function of median error). #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param ... Further plot arguments passed to the function. #' #' @section Function version: 0.2.0 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany),\cr #' Michael Dietze, GFZ Potsdam (Germany) #' #' @seealso [calc_FuchsLang2001], [calc_CentralDose] #' #' @references #' Woda, C., Fuchs, M., 2008. On the applicability of the leading edge method to #' obtain equivalent doses in OSL dating and dosimetry. Radiation Measurements 43, 26-37. #' #' @examples #' #' ## read example data set #' data(ExampleData.DeValues, envir = environment()) #' #' results <- calc_WodaFuchs2008( #' data = ExampleData.DeValues$CA1, #' xlab = expression(paste(D[e], " [Gy]")) #' ) #' #' @md #' @export calc_WodaFuchs2008 <- function( data, breaks = NULL, plot = TRUE, ... ) { .set_function_name("calc_WodaFuchs2008") on.exit(.unset_function_name(), add = TRUE) ##TODO # - complete manual # - add statistics to the plot # - check whether this makes sense at all ... ## Integrity checks ------------------------------------------------------- if (!.validate_class(data, c("data.frame", "RLum.Results", "numeric"), throw.error = FALSE)) { return(NULL) } .validate_not_empty(data) if (inherits(data, "RLum.Results")) { data <- tryCatch(get_RLum(data, "data"), error = function(e) get_RLum(data)) } ## if data is a numeric vector or a single-column data frame, ## append a second column of NAs if (NCOL(data) < 2) { data <- cbind(data, NA) } ## with just one data point, it's possible to cause nls() to hang if (nrow(data) < 2) { .throw_error("Insufficient number of data points") } ## read additional arguments if("trace" %in% names(list(...))) { trace <- list(...)$trace } else { trace <- FALSE } ## calculations ------------------------------------------------------------- ## estimate bin width based on Woda and Fuchs (2008) if (all(is.na(data[, 2]))) { message("[calc_WodaFuchs2008()] No errors provided, bin width set ", "by 10 percent of input data") bin_width <- median(data[,1] / 10, na.rm = TRUE) } else { bin_width <- median(data[,2], na.rm = TRUE) } ## optionally estimate class breaks based on bin width if(is.null(breaks)) { n_breaks <- diff(range(data[, 1], na.rm = TRUE)) / bin_width } else { n_breaks <- breaks } if (n_breaks <= 3) { .throw_warning("Fewer than 4 bins produced, 'breaks' set to 4") n_breaks = 4 } ## calculate histogram H <- hist(x = data[,1], breaks = n_breaks, plot = FALSE) ## extract values from histogram object H_c <- H$counts H_m <- H$mids ## log counts counts_log <- log(H_c) ## estimate curvature curvature <- (counts_log[1] - counts_log[2]) / (counts_log[1] - counts_log[3]) ## do some other black magic class_center <- H$mids[H_c == max(H_c)] ## optionally print warning if(length(class_center) != 1) { .throw_warning("More than one maximum, fit may be invalid") class_center <- class_center[1] } ## fit normal distribution to data fit <- nls(H_c ~ (A / sqrt(2 * pi * sigma^2)) * exp(-(H_m - class_center)^2 / (2 * sigma^2)), start = c(A = mean(H_m), sigma = bin_width), control = c(maxiter = 5000), algorithm = "port", trace = trace) ## extract fitted parameters A <- coef(fit)["A"] sigma <- coef(fit)["sigma"] ## estimate dose D_estimate <- as.numeric(x = class_center - sigma) ## count number of values smaller than center class count_ID <- length(which(H_m <= class_center)) ## extract H_m values smaller than center class H_m_smaller <- H_m[1:count_ID] ## calculate uncertainty according to Woda and Fuchs (2008) s <- round(sqrt(sum((H_m_smaller - D_estimate)^2) / (count_ID - 1)), digits = 2) ## plot output -------------------------------------------------------------- if(plot) { ##define plot settings plot_settings <- list( xlab = expression(paste(D[e], " [s]")), ylab = "Frequency", xlim = range(data[,1], na.rm = TRUE) + c(-10, 20), ylim = NULL, main = expression(paste(D[e]," applying Woda and Fuchs (2008)")), sub = NULL ) plot_settings <- modifyList(x = plot_settings, val = list(...), keep.null = TRUE) plot( x = H, xlab = plot_settings$xlab, ylab = plot_settings$ylab, xlim = plot_settings$xlim, ylim = plot_settings$ylim, main = plot_settings$main, sub = plot_settings$sub ) ## add curve with normal distribution x <- 0 rm(x) curve((A / sqrt(2 * pi * sigma^2)) * exp(-(x- class_center)^2 / (2 * sigma^2)), add = TRUE, to = class_center, col = "red" ) } ## return output ------------------------------------------------------------ return(set_RLum( class = "RLum.Results", data = list( D_estimate = data.frame( DP = D_estimate, DP.ERROR = s, CLASS_CENTER = class_center, BIN_WIDTH = bin_width, SIGMA = sigma, A = A, row.names = NULL ), breaks = H$breaks ), info = list(call = sys.call()) )) } Luminescence/R/calc_CommonDose.R0000644000176200001440000001554214762554470016262 0ustar liggesusers#' Apply the (un-)logged common age model after Galbraith et al. (1999) to a #' given De distribution #' #' Function to calculate the common dose of a De distribution. #' #' **(Un-)logged model** #' #' When `log = TRUE` this function #' calculates the weighted mean of logarithmic De values. Each of the estimates #' is weighted by the inverse square of its relative standard error. The #' weighted mean is then transformed back to the dose scale (Galbraith & #' Roberts 2012, p. 14). #' #' The log transformation is not applicable if the #' De estimates are close to zero or negative. In this case the un-logged model #' can be applied instead (`log = FALSE`). The weighted mean is then #' calculated using the un-logged estimates of De and their absolute standard #' error (Galbraith & Roberts 2012, p. 14). #' #' @param data [RLum.Results-class] or [data.frame] (**required**): #' for [data.frame]: two columns with De `(data[,1])` and De error `(data[,2])` #' #' @param sigmab [numeric] (*with default*): #' additional spread in De values. #' This value represents the expected overdispersion in the data should the sample be #' well-bleached (Cunningham & Walling 2012, p. 100). #' **NOTE**: For the logged model (`log = TRUE`) this value must be #' a fraction, e.g. 0.2 (= 20%). If the un-logged model is used (`log = FALSE`), #' `sigmab` must be provided in the same absolute units of the De values #' (seconds or Gray). #' #' @param log [logical] (*with default*): #' fit the (un-)logged central age model to De data #' #' @param ... currently not used. #' #' @return #' Returns a terminal output. In addition an #' [RLum.Results-class] object is returned containing the #' following element: #' #' \item{$summary}{[data.frame] summary of all relevant model results.} #' \item{$data}{[data.frame] original input data} #' \item{$args}{[list] used arguments} #' \item{$call}{[call] the function call} #' #' The output should be accessed using the function [get_RLum]. #' #' @section Function version: 0.1.1 #' #' @author #' Christoph Burow, University of Cologne (Germany) #' #' @seealso [calc_CentralDose], [calc_FiniteMixture], #' [calc_FuchsLang2001], [calc_MinDose] #' #' @references #' Galbraith, R.F. & Laslett, G.M., 1993. Statistical models for #' mixed fission track ages. Nuclear Tracks Radiation Measurements 4, 459-470. #' #' Galbraith, R.F., Roberts, R.G., Laslett, G.M., Yoshida, H. & Olley, #' J.M., 1999. Optical dating of single grains of quartz from Jinmium rock #' shelter, northern Australia. Part I: experimental design and statistical #' models. Archaeometry 41, 339-364. #' #' Galbraith, R.F. & Roberts, R.G., 2012. Statistical aspects of equivalent dose and error calculation and #' display in OSL dating: An overview and some recommendations. Quaternary #' Geochronology 11, 1-27. #' #' **Further reading** #' #' Arnold, L.J. & Roberts, R.G., 2009. Stochastic modelling of multi-grain equivalent dose #' (De) distributions: Implications for OSL dating of sediment mixtures. #' Quaternary Geochronology 4, 204-230. #' #' Bailey, R.M. & Arnold, L.J., 2006. Statistical modelling of single grain quartz De distributions and an #' assessment of procedures for estimating burial dose. Quaternary Science #' Reviews 25, 2475-2502. #' #' Cunningham, A.C. & Wallinga, J., 2012. Realizing the potential of fluvial archives using robust OSL chronologies. #' Quaternary Geochronology 12, 98-106. #' #' Rodnight, H., Duller, G.A.T., Wintle, A.G. & Tooth, S., 2006. Assessing the reproducibility and accuracy #' of optical dating of fluvial deposits. Quaternary Geochronology, 1 109-120. #' #' Rodnight, H., 2008. How many equivalent dose values are needed to #' obtain a reproducible distribution?. Ancient TL 26, 3-10. #' #' @examples #' #' ## load example data #' data(ExampleData.DeValues, envir = environment()) #' #' ## apply the common dose model #' calc_CommonDose(ExampleData.DeValues$CA1) #' #' @md #' @export calc_CommonDose <- function( data, sigmab, log=TRUE, ... ) { .set_function_name("calc_CommonDose") on.exit(.unset_function_name(), add = TRUE) ##============================================================================## ## CONSISTENCY CHECK OF INPUT DATA ##============================================================================## .validate_class(data, c("data.frame", "RLum.Results")) if (is(data, "RLum.Results")) { data <- get_RLum(data, "data") } if (ncol(data) < 2) { .throw_error("'data' object must have two columns") } if(!missing(sigmab)) { if (sigmab < 0 || sigmab > 1) { .throw_error("'sigmab' must be a value between 0 and 1") } } ## set expected column names colnames(data)[1:2] <- c("ED", "ED_Error") ##============================================================================## ## ADDITIONAL ARGUMENTS ##============================================================================## settings <- list(verbose = TRUE) settings <- modifyList(settings, list(...)) ##============================================================================## ## CALCULATIONS ##============================================================================## # set default value of sigmab if (missing(sigmab)) sigmab<- 0 # calculate yu = log(ED) and su = se(logED) if (log) { yu<- log(data$ED) su<- sqrt( (data$ED_Error/data$ED)^2 + sigmab^2 ) } else { yu<- data$ED su<- sqrt((data$ED_Error)^2 + sigmab^2) } # calculate weights wu<- 1/su^2 delta<- sum(wu*yu)/sum(wu) n<- length(yu) #standard error sedelta<- 1/sqrt(sum(wu)) if (!log) { sedelta<- sedelta/delta } if (log){ delta<- exp(delta) } ##============================================================================## ## TERMINAL OUTPUT ##============================================================================## if (settings$verbose) { cat("\n [calc_CommonDose]") cat(paste("\n\n----------- meta data --------------")) cat(paste("\n n: ",n)) cat(paste("\n log: ",if(log==TRUE){"TRUE"}else{"FALSE"})) cat(paste("\n----------- dose estimate ----------")) cat(paste("\n common dose: ", round(delta,2))) cat(paste("\n SE: ", round(delta*sedelta, 2))) cat(paste("\n rel. SE [%]: ", round(sedelta*100,2))) cat(paste("\n------------------------------------\n\n")) } ##============================================================================## ## RETURN VALUES ##============================================================================## summary<- data.frame(de=delta, de_err=delta*sedelta) call<- sys.call() args<- list(log=log, sigmab=sigmab) newRLumResults.calc_CommonDose<- set_RLum( class = "RLum.Results", data = list(summary = summary, data = data, args = args, call = call)) invisible(newRLumResults.calc_CommonDose) } Luminescence/R/analyse_portableOSL.R0000644000176200001440000005662314762554470017144 0ustar liggesusers#' @title Analyse portable CW-OSL measurements #' #' @description The function analyses CW-OSL curve data produced by a SUERC portable OSL reader and #' produces a combined plot of OSL/IRSL signal intensities, OSL/IRSL depletion ratios #' and the IRSL/OSL ratio. #' #' @details This function only works with [RLum.Analysis-class] objects produced by [read_PSL2R]. #' It further assumes (or rather requires) an equal amount of OSL and IRSL curves that #' are pairwise combined for calculating the IRSL/OSL ratio. For calculating the depletion ratios #' the cumulative signal of the last n channels (same number of channels as specified #' by `signal.integral`) is divided by cumulative signal of the first n channels (`signal.integral`). #' #' **Note: The function assumes the following sequence pattern: `DARK COUNT`, `IRSL`, `DARK COUNT`, `BSL`, `DARK COUNT`. If you have written a different sequence, the analysis function will (likely) not work!**. #' #' **Signal processing** #' The function processes the signals as follows: `BSL` and `IRSL` signals are extracted using the #' chosen signal integral, dark counts are taken in full. #' #' **Working with coordinates** #' Usually samples are taken from a profile with a certain stratigraphy. In the past the function #' calculated an index. With this newer version, you have two option of passing on xy-coordinates #' to the function: #' #' * (1) Add coordinates to the sample name during measurement. The form is rather #' strict and has to follow the scheme `_x:|y:`. Example: #' `sample_x:0.2|y:0.4`. #' #' * (2) Alternatively, you can provide a [list] or [matrix] with the sample coordinates. #' Example: `coord = list(c(0.2, 1), c(0.3,1.2))` #' #' Please note that the unit is meter (m) and the function expects always xy-coordinates. #' The latter one is useful for surface interpolations. If you have measured a profile where #' the x-coordinates to not measure, x-coordinates should be 0. #' #' @param object [RLum.Analysis-class] (**required**): [RLum.Analysis-class] object produced by [read_PSL2R]. #' The input can be a [list] of such objects, in such case each input is treated as a separate sample #' and the results are merged. #' #' @param signal.integral [numeric] (**required**): A vector of two values specifying the lower and upper channel used to calculate the OSL/IRSL signal. Can be provided in form of `c(1, 5)` or `1:5`. #' #' @param invert [logical] (*with default*): `TRUE` flip the plot the data in reverse order. #' #' @param normalise [logical] (*with default*): `TRUE` to normalise the OSL/IRSL signals #' to the *mean* of all corresponding data curves. #' #' @param mode [character] (*with default*): defines the analysis mode, allowed #' are `"profile"` (the default) and `"surface"` for surface interpolation. If you select #' something else, nothing will be plotted (similar to `plot = FALSE`). #' #' @param coord [list] [matrix] (*optional*): a list or matrix of the same length as #' number of samples measured with coordinates for the sampling positions. Coordinates #' are expected to be provided in meter (unit: m). #' Expected are x and y coordinates, e.g., #' `coord = list(samp1 = c(0.1, 0.2)`. If you have not measured x coordinates, please x should be 0. #' #' @param plot [logical] (*with default*): enable/disable the plot output. #' #' @param ... other parameters to be passed to modify the plot output. #' Supported are `run` to provide the run name , #' if the input is a `list`, this is set automatically. Further plot parameters are #' `surface_values` ([character] with value to plot), `legend` (`TRUE`/`FALSE`), `col_ramp` (for #' surface mode), `contour` (contour lines `TRUE`/`FALSE` in surface mode), `grid` (`TRUE`/`FALSE`), `col`, `pch` (for profile mode), `xlim` (a name [list] for profile mode), `ylim`, #' `zlim` (surface mode only), `ylab`, `xlab`, `zlab` (here x-axis labelling), `main`, `bg_img` (for #' profile mode background image, usually a profile photo; should be a raster object), #' `bg_img_positions` (a vector with the four corner positions, cf. [graphics::rasterImage]) #' #' @return #' Returns an S4 [RLum.Results-class] object with the following elements: #' #' `$data`\cr #' `.. $summary`: [data.frame] with the results\cr #' `.. $data`: [list] with the [RLum.Analysis-class] objects\cr #' `.. $args`: [list] the input arguments #' #' @seealso [RLum.Analysis-class], [RLum.Data.Curve-class], [read_PSL2R] #' #' @author Christoph Burow, University of Cologne (Germany), Sebastian Kreutzer, #' Institute of Geography, Ruprecht-Karl University of Heidelberg, Germany #' #' @section Function version: 0.1.1 #' #' @keywords datagen plot #' #' @examples #' #' ## example profile plot #' # (1) load example data set #' data("ExampleData.portableOSL", envir = environment()) #' #' # (2) merge and plot all RLum.Analysis objects #' merged <- merge_RLum(ExampleData.portableOSL) #' plot_RLum( #' object = merged, #' combine = TRUE, #' records_max = 5, #' legend.pos = "outside") #' merged #' #' # (3) analyse and plot #' results <- analyse_portableOSL( #' merged, #' signal.integral = 1:5, #' invert = FALSE, #' normalise = TRUE) #' get_RLum(results) #' #' @md #' @export analyse_portableOSL <- function( object, signal.integral = NULL, invert = FALSE, normalise = FALSE, mode = "profile", coord = NULL, plot = TRUE, ... ) { .set_function_name("analyse_portableOSL") on.exit(.unset_function_name(), add = TRUE) ## TODO ## - add tests for background image option ## - clear docu # Self-call --------------------------------------------------------------- if (inherits(object, "list")) { temp <- .warningCatcher(lapply(seq_along(object), function(x) { analyse_portableOSL( object = object[[x]], signal.integral = signal.integral, invert = invert, normalise = normalise, plot = plot, run = paste0("RUN #", x)) })) return(merge_RLum(temp)) } ## Start function --------------------------------------------------------- ## only RLum.Analysis objects .validate_class(object, "RLum.Analysis") .validate_not_empty(object) ## only curve objects if (!all(sapply(object, class) == "RLum.Data.Curve")) .throw_error("The 'RLum.Analysis' object must contain only objects ", "of class 'RLum.Data.Curve'") ## check originator if (!all(sapply(object, function(x) x@originator) == "read_PSL2R")) .throw_error("Only objects originating from 'read_PSL2R()' are allowed") ## check sequence pattern if(!all(names(object)[1:5] == c("USER", "IRSL", "USER", "OSL", "USER"))) .throw_error("Sequence pattern not supported, please read manual for details") if (is.null(signal.integral)) { signal.integral <- c(1, 1) .throw_warning("No value for 'signal.integral' provided. Only the ", "first data point of each curve was used") } ## set SAMPLE -------- if("run" %in% names(list(...))) run <- list(...)$run else if (!is.null(object@info$Run_Name)) run <- object@info$Run_Name else run <- "Run #1" ## CALCULATIONS ---- ## Note: the list ... unlist construction is used make sure that get_RLum() always ## returns a list ### get OSL ------- OSL <- .unlist_RLum(list(get_RLum(object, recordType = "OSL"))) OSL <- do.call(rbind, lapply(OSL, function(x) { .posl_get_signal(x, signal.integral) })) ### get IRSL ------- IRSL <- .unlist_RLum(list(get_RLum(object, recordType = "IRSL"))) IRSL <- do.call(rbind, lapply(IRSL, function(x) { .posl_get_signal(x, signal.integral) })) ### get DARK counts ---------- ### we assume that USER contains the dark count measurements DARK_COUNT <- .unlist_RLum(list(get_RLum(object, recordType = "USER"))) DARK_COUNT <- lapply(seq(1,length(DARK_COUNT),3), function(x) DARK_COUNT[x:(x+2)]) DARK_COUNT <- do.call(rbind, lapply(DARK_COUNT, function(x) { .posl_get_dark_count(x) })) ### NORMALISE ---- if (normalise) { OSL <- .posl_normalise(OSL) IRSL <- .posl_normalise(IRSL) } ### OSL/IRSL Ratio ------- RATIO <- IRSL$sum_signal / OSL$sum_signal ### extract coordinates ------- if(is.null(coord)) { coord <- .extract_PSL_coord(object) } else { .validate_class(coord, c("matrix", "list")) if(inherits(coord, "list")) coord <- do.call(rbind, coord) ## check length if(nrow(coord) != length(OSL$sum_signal)) .throw_error("Number of coordinates differ from the number of samples") } ### GENERATE SUMMARY data.frame ----- summary <- data.frame( ID = seq_along(OSL$sum_signal), RUN = run, BSL = OSL$sum_signal, BSL_error = OSL$sum_signal_err, IRSL = IRSL$sum_signal, IRSL_error = IRSL$sum_signal_err, BSL_depletion = OSL$sum_signal_depletion, IRSL_depletion = IRSL$sum_signal_depletion, IRSL_BSL_RATIO = RATIO, DARK = DARK_COUNT$mean_dark_count, DARK_error = DARK_COUNT$sd_dark_count, COORD_X = coord[,1], COORD_Y = coord[,2] ) ## if coordinates exist, sort by depth if (!anyNA(coord[, 2])) summary <- summary[order(coord[,2]),] ### INVERT ---------- if(invert) summary <- summary[nrow(summary):1,] # PLOTTING ------------------------------------------------------------------- ## generate list of plot matrices ## this done to have consistent settings for all plot types parm <- c("BSL", "BSL_error", "IRSL", "IRSL_error", "BSL_depletion", "IRSL_depletion", "IRSL_BSL_RATIO", "DARK", "DARK_error") m_list <- lapply(parm, function(x){ cbind(x = summary[["COORD_X"]], y = summary[["COORD_Y"]], value = summary[[x]]) }) ## correct names of the list names(m_list) <- parm ## add a few attributes to be used later attr(m_list, "xlim") <- lapply(m_list, function(x) range(x[,1])) attr(m_list, "ylim") <- if(invert) rev(range(m_list[[1]][,2])) else range(m_list[[1]][,2]) attr(m_list, "zlim") <- lapply(m_list, function(x) range(x[,3])) ## account for surface case if (!is.null(mode) && mode == "surface") { attr(m_list, "ylim") <- if (invert) rev(range(summary$COORD_Y)) else range(summary$COORD_Y) attr(m_list, "xlim") <- range(summary$COORD_X) } if (!is.null(mode) && plot[1]) { ## account for surface case ## preset plot settings ## plot settings ------- plot_settings <- modifyList( x = list( col_ramp = grDevices::heat.colors(30, rev = TRUE, alpha = 0.5), bg_img = NULL, bg_img_positions = NULL, surface_value = c("BSL", "IRSL", "IRSL_BSL_RATIO"), legend = TRUE, col = c("blue", "red", "blue", "red", "black", "grey"), pch = rep(16, length(m_list)), xlim = attr(m_list, "xlim"), ylim = attr(m_list, "ylim"), zlim = if(mode == "surface") NA else attr(m_list, "zlim"), ylab = if (!anyNA(summary$COORD_Y)) "Depth [m]" else "Index", xlab = "x [m]", grid = TRUE, contour = FALSE, zlab = c("BSL", "IRSL", "BSL depl.", "IRSL depl.", "IRSL/BSL", "mean DARK"), main = summary$RUN[1] ), val = list(...), keep.null = TRUE) ## mode == "surface" --------- if(mode[1] == "surface") { ### check for validity of surface value ------- if(!all(plot_settings$surface_value %in% names(m_list))) .throw_error("Unknown value to plot, valid values are: ", .collapse(names(m_list))) ## set par ------- if(length(plot_settings$surface_value) > 1) { par.default <- par(mfrow = c(2,2)) on.exit(par(par.default), add = TRUE) } ## loop over surface values ------- for(i in plot_settings$surface_value) { ## set matrix for the plot m <- m_list[[i]] ## respect xlim and ylim range m <- m[m[,2] >= min(plot_settings$ylim) & m[,2] <= max(plot_settings$ylim), ] m <- m[m[,1] >= min(plot_settings$xlim) & m[,1] <= max(plot_settings$xlim), ] ## respect z_values if(!all(is.na(plot_settings$zlim))) m <- m[m[,3] >= min(plot_settings$zlim) & m[,3] <= max(plot_settings$zlim), ] ## interpolate ------ s <- try(interp::interp( x = m[, 1], y = m[, 2], z = m[, 3], nx = 200, ny = 200, ), silent = TRUE) ## show only warning if(inherits(s, "try-error")) .throw_warning("Surface interpolation failed: this happens when ", "all points are arranged in one line or xlim/ylim/zlim ", "are too tight. Nothing plotted!") ## show error if(!inherits(s, "try-error")) { par.default <- c( if(exists("par.default")) par.default else NULL, par(mar = c(4.5,4.5,4,2), xpd = FALSE)) on.exit(par(par.default), add = TRUE) ## open empty plot plot( x = NA, y = NA, ylim = plot_settings$ylim, xlim = plot_settings$xlim, xlab = plot_settings$xlab, ylab = plot_settings$ylab, main = plot_settings$main) ## add background image if available ------- if (!is.null(plot_settings$bg_img)) { ## get corner positions positions <- plot_settings$bg_img_positions[1:4] if (is.null(positions)) positions <- par()$usr graphics::rasterImage( image = plot_settings$bg_img, xleft = positions[1], ybottom = positions[4], xright = positions[2], ytop = positions[3], interpolate = TRUE) } ## plot image ------- graphics::image( s, col = plot_settings$col_ramp, add = TRUE ) ## add contour if (plot_settings$contour) graphics::contour(m, add = TRUE, col = "grey") ## add points points(m[,1:2], pch = 20) ## add what is shown in the plot mtext(side = 3, text = i, cex = 0.7) ## add legend if(plot_settings$legend) { par.default <- c(par.default, par(xpd = TRUE)) on.exit(par(par.default), add = TRUE) col_grad <- plot_settings$col_ramp[ seq(1, length(plot_settings$col_ramp), length.out = 14)] slices <- seq(par()$usr[3],par()$usr[4],length.out = 15) for(s in 1:(length(slices) - 1)){ graphics::rect( xleft = par()$usr[2] * 1.01, xright = par()$usr[2] * 1.03, ybottom = slices[s], ytop = slices[s + 1], col = col_grad[s], border = TRUE) } ## add legend text text( x = par()$usr[2] * 1.04, y = par()$usr[4], labels = if(is.null(plot_settings$zlim_image)) { format(max(m[,3]), digits = 1, scientific = TRUE) } else { format(plot_settings$zlim_image[2], digits = 1, scientific = TRUE) }, cex = 0.6, srt = 270, pos = 3) text( x = par()$usr[2] * 1.04, y = par()$usr[3], labels = if(is.null(plot_settings$zlim_image)) { format(min(m[,3]), digits = 1, scientific = TRUE) } else { format(plot_settings$zlim_image[1], digits = 1, scientific = TRUE) }, cex = 0.6, pos = 3, srt = 270) ## add legend labelling (central) text( x = par()$usr[2] * 1.05, y = (par()$usr[4] - par()$usr[3])/2 + par()$usr[3], labels = "Intensity [a.u.]", cex = 0.7, pos = 3, srt = 270) } } }# end for loop } ## mode == "profile" --------- if (!is.null(mode[1]) && mode == "profile") { par.old.full <- par(no.readonly = TRUE) on.exit(par(par.old.full), add = TRUE) # default: par(mar = c(5, 4, 4, 2) + 0.1) // bottom, left, top, right par(mfrow = c(1, 7)) par(mar = c(5, 4, 4, 1) + 0.1) graphics::frame() mtext(side= 3, plot_settings$main, cex = 0.7, line = 2) par(mar = c(5, 0, 4, 1) + 0.1) ## make sure that wrong zlim settings do not screw up the function if(!inherits(plot_settings$zlim, "list")) { .throw_warning("In profile mode, zlim needs to be provided as a named ", "list, example: list(BSL = c(0,1)). Reset to default") plot_settings$zlim <- attr(m_list, "zlim") } #### BSL ------- plot( NA, NA, ylim = plot_settings$ylim, xlim = plot_settings$zlim[["BSL"]], xlab = plot_settings$zlab[1], bty = "n", yaxt = "n" ) if (plot_settings$grid) graphics::grid() lines( x = m_list[["BSL"]][,"value"], y = m_list[["BSL"]][,"y"], type = "b", pch = plot_settings$pch[1], col = plot_settings$col[1] ) ## add error bars segments( x0 = m_list[["BSL"]][,"value"] - m_list[["BSL_error"]][,"value"], x1 = m_list[["BSL"]][,"value"] + m_list[["BSL_error"]][,"value"], y0 = m_list[["BSL"]][,"y"], y1 = m_list[["BSL"]][,"y"], col = plot_settings$col[1]) axis(2, line = 3, at = m_list[["BSL"]][,"y"], labels = m_list[["BSL"]][,"y"]) axis(3) ## add general y-axis label mtext(plot_settings$ylab[1], side = 2, line = 6) ### IRSL -------------- plot( NA, NA, ylim = plot_settings$ylim, xlim = plot_settings$zlim[["IRSL"]], xlab = plot_settings$zlab[2], bty = "n", yaxt = "n" ) if (plot_settings$grid) graphics::grid() lines( x = m_list[["IRSL"]][,"value"], y = m_list[["IRSL"]][,"y"], type = "b", pch = plot_settings$pch[2], col = plot_settings$col[2]) ## add error bars segments( x0 = m_list[["IRSL"]][,"value"] - m_list[["IRSL_error"]][,"value"], x1 = m_list[["IRSL"]][,"value"] + m_list[["IRSL_error"]][,"value"], y0 = m_list[["IRSL"]][,"y"], y1 = m_list[["IRSL"]][,"y"], col = plot_settings$col[2]) axis(3) ### OSL DEPLETATION ------- plot( NA, NA, ylim = plot_settings$ylim, xlim = plot_settings$zlim[["BSL_depletion"]], xlab = plot_settings$zlab[3], bty = "n", yaxt = "n" ) if (plot_settings$grid) graphics::grid() lines( x = m_list[["BSL_depletion"]][,"value"], y = m_list[["BSL_depletion"]][,"y"], type = "b", lty = 2, pch = plot_settings$pch[3], col = plot_settings$col[3] ) axis(3) ### IRSL DEPLETION --------------- plot( NA, NA, ylim = plot_settings$ylim, xlim = plot_settings$zlim[["IRSL_depletion"]], xlab = plot_settings$zlab[4], bty = "n", yaxt = "n" ) if (plot_settings$grid) graphics::grid() lines( x = m_list[["IRSL_depletion"]][,"value"], y = m_list[["IRSL_depletion"]][,"y"], type = "b", lty = 2, pch = plot_settings$pch[4], col = plot_settings$col[4]) axis(3) ### RATIO ----------------------------- plot( NA, NA, ylim = plot_settings$ylim, xlim = plot_settings$zlim[["IRSL_BSL_RATIO"]], xlab = plot_settings$zlab[5], ylab = "", bty = "n", yaxt = "n" ) if (plot_settings$grid) graphics::grid() lines( x = m_list[["IRSL_BSL_RATIO"]][,"value"], y = m_list[["IRSL_BSL_RATIO"]][,"y"], type = "b", pch = plot_settings$pch[5], col = plot_settings$col[5]) axis(3) ### DARK ----------------------------- plot( x = m_list[["DARK"]][,"value"], y = m_list[["DARK_error"]][,"y"], type = "b", pch = plot_settings$pch, col = plot_settings$col[6], ylim = plot_settings$ylim, xlim = range(c( plot_settings$zlim[["DARK"]] - plot_settings$zlim[["DARK_error"]], plot_settings$zlim[["DARK"]] + plot_settings$zlim[["DARK_error"]])), xlab = plot_settings$zlab[6], ylab = "", bty = "n", yaxt = "n" ) ## add error bars segments( x0 = m_list[["DARK"]][,"value"] - m_list[["DARK_error"]][,"value"], x1 = m_list[["DARK"]][,"value"] + m_list[["DARK_error"]][,"value"], y0 = m_list[["DARK"]][,"y"], y1 = m_list[["DARK"]][,"y"], col = plot_settings$col[6]) axis(3) } ## end mode == "profile" } ## RETURN VALUE ---- call<- sys.call() args <- as.list(call)[2:length(call)] newRLumResults <- set_RLum( class = "RLum.Results", data = list( summary=summary, data = object, args=args ), info = list(call = call)) return(newRLumResults) } # HELPER FUNCTIONS ---------- ## This extracts the relevant curve data information of the RLum.Data.Curve ## objects .posl_get_signal <- function(x, signal.integral) { raw_signal <- get_RLum(x)[,2] sigint <- range(signal.integral) if (sigint[2] > length(raw_signal)) { sigint[2] <- length(raw_signal) .throw_warning("'signal.integral' (", .collapse(range(signal.integral), quote = FALSE), ") ", "exceeded the number of available data points (n = ", length(raw_signal),") and has been automatically ", "reduced to the maximum number.") } sum_signal <- sum(raw_signal[sigint[1]:sigint[2]]) sum_signal_err <- sqrt(sum(x@info$raw_data$counts_per_cycle_error[sigint[1]:sigint[2]]^2)) sum_signal_depletion <- sum(raw_signal[(length(raw_signal)-length(sigint[1]:sigint[2])):length(raw_signal)]) / sum_signal return(data.frame(sum_signal, sum_signal_err, sum_signal_depletion)) } .posl_get_dark_count <- function(x) { ## we do assume a fixed sequence pattern, hence, we know what to ## expect that anything that comes in here, can be merged counts <- unlist(lapply(x, function(x) as.matrix(x)[,2])) return(data.frame(mean_dark_count = mean(counts), sd_dark_count = sd(counts))) } ## This function normalises the data curve by the mean signal .posl_normalise <- function(x) { rel.error <- x$sum_signal_err / x$sum_signal x$sum_signal <- x$sum_signal / mean(x$sum_signal) x$sum_signal_err <- x$sum_signal * rel.error x$sum_signal_depletion <- x$sum_signal_depletion / mean(x$sum_signal_depletion) return(x) } ## This function extracts the coordinates from the file name ## .extract_PSL_coord <- function(object){ ## get settings settings_sample <- vapply(object, function(x) x@info$settings$Sample, character(1)) |> unique() ## set character vector tmp_coord <- character(length(settings_sample)) ## search for pattern match ... why? ## because otherwise the dataset becomes inconsistent pattern_match <- grepl( pattern = "\\_x\\:[0-9].+\\|y\\:[0-9].+", x = settings_sample, perl = TRUE) ## extract coordinates tmp_coord[pattern_match] <- regexpr( pattern = "\\_x\\:[0-9].+\\|y\\:[0-9].+", text = settings_sample[pattern_match ], perl = TRUE) |> regmatches(x = settings_sample[pattern_match], m = _) ## extract x and y coord_split <- strsplit(tmp_coord, split = "|y:", fixed = TRUE) ## assign values coord <- vapply(coord_split, function(x) { if(length(x) == 0) return(c(x = NA_real_, y = NA_real_)) c(x = as.numeric(strsplit(x, "_x:", fixed = TRUE)[[1]][[2]]), y = as.numeric(x[2]))}, numeric(2)) |> t() ## if NA, assign index if (anyNA(coord[, 1])) coord[, 1] <- 0 if (anyNA(coord[, 2])) coord[, 2] <- 1:nrow(coord) return(coord) } Luminescence/R/Risoe.BINfileData-class.R0000644000176200001440000006773514762554470017475 0ustar liggesusers#' Class `"Risoe.BINfileData"` #' #' S4 class object for luminescence data in R. The object is produced as output #' of the function [read_BIN2R]. #' #' #' @name Risoe.BINfileData-class #' #' @docType class #' #' @slot METADATA Object of class "data.frame" containing the meta information for each curve. #' #' @slot DATA Object of class "list" containing numeric vector with count data. #' #' @slot .RESERVED Object of class "list" containing list of undocumented raw values for internal use only. #' #' @keywords class #' #' @note #' #' **Internal METADATA - object structure** #' #' This structure is compatible with BIN/BINX-files version 03-08, however, it does not follow (in its #' sequential arrangement) the manual provided by the manufacturer, #' but an own structure accounting for the different versions. #' #' \tabular{rllll}{ #' **#** \tab **Name** \tab **Data Type** \tab **V** \tab **Description** \cr #' `[,1]` \tab `ID` \tab `numeric` \tab RLum \tab Unique record ID (same ID as in slot `DATA`)\cr #' `[,2]` \tab `SEL` \tab `logic` \tab RLum \tab Record selection, not part official BIN-format, triggered by TAG\cr #' `[,3]` \tab `VERSION` \tab `raw` \tab 03-08 \tab BIN-file version number \cr #' `[,4]` \tab `LENGTH` \tab `integer` \tab 03-08 \tab Length of this record\cr #' `[,5]` \tab `PREVIOUS` \tab `integer` \tab 03-08 \tab Length of previous record\cr #' `[,6]` \tab `NPOINTS` \tab `integer` \tab 03-08 \tab Number of data points in the record\cr #' `[,7]` \tab `RECTYPE` \tab `integer` \tab 08 \tab Record type \cr #' `[,8]` \tab `RUN` \tab `integer` \tab 03-08 \tab Run number\cr #' `[,9]` \tab `SET` \tab `integer` \tab 03-08 \tab Set number\cr #' `[,10]` \tab `POSITION` \tab `integer` \tab 03-08 \tab Position number\cr #' `[,11]` \tab `GRAIN` \tab `integer` \tab 03-04 \tab Grain number\cr #' `[,12]` \tab `GRAINNUMBER` \tab `integer` \tab 05-08 \tab Grain number\cr #' `[,13]` \tab `CURVENO` \tab `integer` \tab 05-08 \tab Curve number\cr #' `[,14]` \tab `XCOORD` \tab `integer` \tab 03-08 \tab X position of a single grain\cr #' `[,15]` \tab `YCOORD` \tab `integer` \tab 03-08 \tab Y position of a single grain\cr #' `[,16]` \tab `SAMPLE` \tab `factor` \tab 03-08 \tab Sample name\cr #' `[,17]` \tab `COMMENT` \tab `factor` \tab 03-08 \tab Comment name\cr #' `[,18]` \tab `SYSTEMID` \tab `integer` \tab 03-08 \tab Risø system id\cr #' `[,19]` \tab `FNAME` \tab `factor` \tab 05-08 \tab File name (*.bin/*.binx)\cr #' `[,20]` \tab `USER` \tab `factor` \tab 03-08 \tab User name\cr #' `[,21]` \tab `TIME` \tab `character` \tab 03-08 \tab Data collection time (`hh-mm-ss`)\cr #' `[,22]` \tab `DATE` \tab `factor` \tab 03-08 \tab Data collection date (`ddmmyy`)\cr #' `[,23]` \tab `DTYPE` \tab `character` \tab 03-08 \tab Data type\cr #' `[,24]` \tab `BL_TIME` \tab `numeric` \tab 03-08 \tab Bleaching time\cr #' `[,25]` \tab `BL_UNIT` \tab `integer` \tab 03-08 \tab Bleaching unit (mJ, J, s, min, h)\cr #' `[,26]` \tab `NORM1` \tab `numeric` \tab 03-08 \tab Normalisation factor (1)\cr #' `[,27]` \tab `NORM2` \tab `numeric` \tab 03-08 \tab Normalisation factor (2)\cr #' `[,28]` \tab `NORM3` \tab `numeric` \tab 03-08 \tab Normalisation factor (3)\cr #' `[,29]` \tab `BG` \tab `numeric` \tab 03-08 \tab Background level\cr #' `[,30]` \tab `SHIFT` \tab `integer` \tab 03-08 \tab Number of channels to shift data\cr #' `[,31]` \tab `TAG` \tab `integer` \tab 03-08 \tab Tag, triggers `SEL`\cr #' `[,32]` \tab `LTYPE` \tab `character` \tab 03-08 \tab Luminescence type\cr #' `[,33]` \tab `LIGHTSOURCE` \tab `character` \tab 03-08 \tab Light source\cr #' `[,34]` \tab `LPOWER` \tab `numeric` \tab 03-08 \tab Optical stimulation power\cr #' `[,35]` \tab `LIGHTPOWER` \tab `numeric` \tab 05-08 \tab Optical stimulation power\cr #' `[,36]` \tab `LOW` \tab `numeric` \tab 03-08 \tab Low (temperature, time, wavelength)\cr #' `[,37]` \tab `HIGH` \tab `numeric` \tab 03-08 \tab High (temperature, time, wavelength)\cr #' `[,38]` \tab `RATE` \tab `numeric` \tab 03-08 \tab Rate (heating rate, scan rate)\cr #' `[,39]` \tab `TEMPERATURE` \tab `integer` \tab 03-08 \tab Sample temperature\cr #' `[,40]` \tab `MEASTEMP` \tab `integer` \tab 05-08 \tab Measured temperature\cr #' `[,41]` \tab `AN_TEMP` \tab `numeric` \tab 03-08 \tab Annealing temperature\cr #' `[,42]` \tab `AN_TIME` \tab `numeric` \tab 03-08 \tab Annealing time\cr #' `[,43]` \tab `TOLDELAY` \tab `integer` \tab 03-08 \tab TOL 'delay' channels\cr #' `[,44]` \tab `TOLON` \tab `integer` \tab 03-08 \tab TOL 'on' channels\cr #' `[,45]` \tab `TOLOFF` \tab `integer` \tab 03-08 \tab TOL 'off' channels\cr #' `[,46]` \tab `IRR_TIME` \tab `numeric` \tab 03-08 \tab Irradiation time\cr #' `[,47]` \tab `IRR_TYPE` \tab `integer` \tab 03-08 \tab Irradiation type (alpha, beta or gamma)\cr #' `[,48]` \tab `IRR_UNIT` \tab `integer` \tab 03-04 \tab Irradiation unit (Gy, rad, s, min, h)\cr #' `[,49]` \tab `IRR_DOSERATE` \tab `numeric` \tab 05-08 \tab Irradiation dose rate (Gy/s)\cr #' `[,50]` \tab `IRR_DOSERATEERR` \tab `numeric` \tab 06-08 \tab Irradiation dose rate error (Gy/s)\cr #' `[,51]` \tab `TIMESINCEIRR` \tab `integer` \tab 05-08 \tab Time since irradiation (s)\cr #' `[,52]` \tab `TIMETICK` \tab `numeric` \tab 05-08 \tab Time tick for pulsing (s)\cr #' `[,53]` \tab `ONTIME` \tab `integer` \tab 05-08 \tab On-time for pulsing (in time ticks)\cr #' `[,54]` \tab `OFFTIME` \tab `integer` \tab 03 \tab Off-time for pulsed stimulation (in s) \cr #' `[,55]` \tab `STIMPERIOD` \tab `integer` \tab 05-08 \tab Stimulation period (on+off in time ticks)\cr #' `[,56]` \tab `GATE_ENABLED` \tab `raw` \tab 05-08 \tab PMT signal gating enabled\cr #' `[,57]` \tab `ENABLE_FLAGS` \tab `raw` \tab 05-08 \tab PMT signal gating enabled\cr #' `[,58]` \tab `GATE_START` \tab `integer` \tab 05-08 \tab Start gating (in time ticks)\cr #' `[,59]` \tab `GATE_STOP` \tab `integer` \tab 05-08 \tab Stop gating (in time ticks), `'Gateend'` for version 04, here only GATE_STOP is used\cr #' `[,60]` \tab `PTENABLED` \tab `raw` \tab 05-08 \tab Photon time enabled\cr #' `[,61]` \tab `DTENABLED` \tab `raw` \tab 05-08 \tab PMT dead time correction enabled\cr #' `[,62]` \tab `DEADTIME` \tab `numeric` \tab 05-08 \tab PMT dead time (s)\cr #' `[,63]` \tab `MAXLPOWER` \tab `numeric` \tab 05-08 \tab Stimulation power to 100 percent (mW/cm^2)\cr #' `[,64]` \tab `XRF_ACQTIME` \tab `numeric` \tab 05-08 \tab XRF acquisition time (s)\cr #' `[,65]` \tab `XRF_HV` \tab `numeric` \tab 05-08 \tab XRF X-ray high voltage (V)\cr #' `[,66]` \tab `XRF_CURR` \tab `integer` \tab 05-08 \tab XRF X-ray current (µA)\cr #' `[,67]` \tab `XRF_DEADTIMEF` \tab `numeric` \tab 05-08 \tab XRF dead time fraction\cr #' `[,68]` \tab `DETECTOR_ID` \tab `raw` \tab 07-08 \tab Detector ID\cr #' `[,69]` \tab `LOWERFILTER_ID` \tab `integer` \tab 07-08 \tab Lower filter ID in reader\cr #' `[,70]` \tab `UPPERFILTER_ID` \tab `integer` \tab 07-08 \tab Upper filter ID in reader\cr #' `[,71]` \tab `ENOISEFACTOR` \tab `numeric` \tab 07-08 \tab Excess noise filter, usage unknown \cr #' `[,72]` \tab `MARKPOS_X1` \tab `numeric` \tab 08 \tab Coordinates marker position 1 \cr #' `[,73]` \tab `MARKPOS_Y1` \tab `numeric` \tab 08 \tab Coordinates marker position 1 \cr #' `[,74]` \tab `MARKPOS_X2` \tab `numeric` \tab 08 \tab Coordinates marker position 2 \cr #' `[,75]` \tab `MARKPOS_Y2` \tab `numeric` \tab 08 \tab Coordinates marker position 2 \cr #' `[,76]` \tab `MARKPOS_X3` \tab `numeric` \tab 08 \tab Coordinates marker position 3 \cr #' `[,77]` \tab `MARKPOS_Y3` \tab `numeric` \tab 08 \tab Coordinates marker position 3 \cr #' `[,78]` \tab `EXTR_START` \tab `numeric` \tab 08 \tab usage unknown \cr #' `[,79]` \tab `EXTR_END` \tab `numeric` \tab 08 \tab usage unknown\cr #' `[,80]` \tab `SEQUENCE` \tab `character` \tab 03-04 \tab Sequence name #' } #' V = BIN-file version (RLum means that it does not depend on a specific BIN version) #' #' Note that the `Risoe.BINfileData` object combines all values from #' different versions from the BIN-file, reserved bits are skipped, however, #' the function [write_R2BIN] reset arbitrary reserved bits. Invalid #' values for a specific version are set to `NA`. Furthermore, the #' internal R data types do not necessarily match the required data types for #' the BIN-file data import! Data types are converted during data import.\cr #' #' **LTYPE** values #' #' \tabular{rll}{ #' VALUE \tab TYPE \tab DESCRIPTION \cr #' `[0]` \tab `TL` \tab: Thermoluminescence \cr #' `[1]` \tab `OSL` \tab: Optically stimulated luminescence \cr #' `[2]` \tab `IRSL` \tab: Infrared stimulated luminescence \cr #' `[3]` \tab `M-IR` \tab: Infrared monochromator scan\cr #' `[4]` \tab `M-VIS` \tab: Visible monochromator scan\cr #' `[5]` \tab `TOL` \tab: Thermo-optical luminescence \cr #' `[6]` \tab `TRPOSL` \tab: Time Resolved Pulsed OSL\cr #' `[7]` \tab `RIR` \tab: Ramped IRSL\cr #' `[8]` \tab `RBR` \tab: Ramped (Blue) LEDs\cr #' `[9]` \tab `USER` \tab: User defined\cr #' `[10]` \tab `POSL` \tab: Pulsed OSL \cr #' `[11]` \tab `SGOSL` \tab: Single Grain OSL\cr #' `[12]` \tab `RL` \tab: Radio Luminescence \cr #' `[13]` \tab `XRF` \tab: X-ray Fluorescence #' } #' #' **DTYPE** values #' #' \tabular{rl}{ #' VALUE \tab DESCRIPTION \cr #' `[0]` \tab Natural \cr #' `[1]` \tab N+dose \cr #' `[2]` \tab Bleach \cr #' `[3]` \tab Bleach+dose \cr #' `[4]` \tab Natural (Bleach) \cr #' `[5]` \tab N+dose (Bleach) \cr #' `[6]` \tab Dose \cr #' `[7]` \tab Background #' } #' #' **LIGHTSOURCE** values #' #' \tabular{rl}{ #' VALUE \tab DESCRIPTION \cr #' `[0]` \tab None \cr #' `[1]` \tab Lamp \cr #' `[2]` \tab IR diodes/IR Laser \cr #' `[3]` \tab Calibration LED \cr #' `[4]` \tab Blue Diodes \cr #' `[5]` \tab White light \cr #' `[6]` \tab Green laser (single grain) \cr #' `[7]` \tab IR laser (single grain) } #' #' **Internal DATA - object structure** #' #' With version 8 of the BIN/BINX file format, slot `@DATA` (byte array `DPOINTS`) can #' contain two different values: #' #' 1. `DPOINTS` (standard for `RECTYPE` := (0,1)): is a vector with the length defined #' through `NPOINTS`. This is the standard for xy-curves since version 03. #' #' 2. `DPOINTS` (`RECTYPE` := 128) is contains no count values but information about #' the definition of the regions of interest (ROI). Each definition is 504 bytes long. #' The number of definitions is defined by `NPOINTS` in `@METADATA`. The record #' describes basically the geometric features of the regions of interest. #' The representation in R is a nested [list]. #' #' \tabular{rllll}{ #' **#** \tab **Name** \tab **Data Type** \tab **V** \tab **Description** \cr #'`[,1]` \tab `NOFPOINTS` \tab `numeric` \tab 08 \tab number of points in the definition (e.g., if the ROI is a rectangle: 4)\cr #'`[,2]` \tab `USEDFOR` \tab `logical` \tab 08 \tab samples for which the ROI is used for; a maximum of 48 samples are allowed.\cr #'`[,3]` \tab `SHOWNFOR` \tab `logical` \tab 08 \tab samples for which the ROI is shown for; a maximum of 48 samples are allowed.\cr #'`[,4]` \tab `COLOR` \tab `numeric` \tab 08 \tab The colour values of the ROI.\cr #'`[,5]` \tab `X` \tab `numeric` \tab 08 \tab The x coordinates used to draw the ROI geometry (up to 50 points are allowed).\cr #'`[,6]` \tab `Y` \tab `numeric` \tab 08 \tab The y coordinates used to draw the ROI geometry (up to 50 points are allowed).\cr #' } #' #' (information on the BIN/BINX file format are kindly provided by Risø, DTU Nutech) #' #' @section Objects from the Class: Objects can be created by calls of the form #' `new("Risoe.BINfileData", ...)`. #' #' @section Function version: 0.4.1 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' based on information provided by Torben Lapp and Karsten Bracht Nielsen (Risø DTU, Denmark) #' #' @seealso [plot_Risoe.BINfileData], [read_BIN2R], [write_R2BIN], #' [merge_Risoe.BINfileData], [Risoe.BINfileData2RLum.Analysis] #' #' @references #' Risø DTU, 2013. The Sequence Editor User Manual - Feb 2013 and Risø DTU, 2016. #' #' The Sequence Editor User Manual - February 2016 #' #' [https://www.fysik.dtu.dk]() #' #' @keywords classes #' #' @examples #' #' showClass("Risoe.BINfileData") #' #' @md #' @export setClass("Risoe.BINfileData", slots = list( METADATA = "data.frame", DATA = "list", .RESERVED = "list" ), prototype = prototype( METADATA = data.frame( ID = integer(), SEL = logical(), VERSION = integer(), LENGTH = integer(), PREVIOUS = integer(), NPOINTS = integer(), RECTYPE = integer(), RUN = integer(), SET = integer(), POSITION = integer(), GRAIN = integer(), GRAINNUMBER = integer(), CURVENO = integer(), XCOORD = integer(), YCOORD = integer(), SAMPLE = character(), COMMENT = character(), SYSTEMID = integer(), FNAME = character(), USER = character(), TIME = character(), DATE = character(), DTYPE = character(), BL_TIME = numeric(), BL_UNIT = integer(), NORM1 = numeric(), NORM2 = numeric(), NORM3 = numeric(), BG = numeric(), SHIFT = integer(), TAG = integer(), LTYPE = character(), LIGHTSOURCE = character(), LPOWER = numeric(), LIGHTPOWER = numeric(), LOW = numeric(), HIGH = numeric(), RATE = numeric(), TEMPERATURE = numeric(), MEASTEMP = numeric(), AN_TEMP = numeric(), AN_TIME = numeric(), TOLDELAY = integer(), TOLON = integer(), TOLOFF = integer(), IRR_TIME = numeric(), IRR_TYPE = integer(), IRR_UNIT = integer(), IRR_DOSERATE = numeric(), IRR_DOSERATEERR = numeric(), TIMESINCEIRR = numeric(), TIMETICK = numeric(), ONTIME = numeric(), OFFTIME = numeric(), STIMPERIOD = integer(), GATE_ENABLED = numeric(), ENABLE_FLAGS = numeric(), GATE_START = numeric(), GATE_STOP = numeric(), PTENABLED = numeric(), DTENABLED = numeric(), DEADTIME = numeric(), MAXLPOWER = numeric(), XRF_ACQTIME = numeric(), XRF_HV = numeric(), XRF_CURR = numeric(), XRF_DEADTIMEF = numeric(), DETECTOR_ID = integer(), LOWERFILTER_ID = integer(), UPPERFILTER_ID = integer(), ENOISEFACTOR = numeric(), MARKPOS_X1 = numeric(), MARKPOS_Y1 = numeric(), MARKPOS_X2 = numeric(), MARKPOS_Y2 = numeric(), MARKPOS_X3 = numeric(), MARKPOS_Y3 = numeric(), EXTR_START = numeric(), EXTR_END = numeric(), SEQUENCE = character(), stringsAsFactors=FALSE ), DATA = list(), .RESERVED = list() ) ) # show method -------- #' @describeIn Risoe.BINfileData #' Show structure of RLum and Risoe.BINfile class objects #' #' @md #' @export setMethod(f = "show", signature = signature(object = "Risoe.BINfileData"), definition = function(object){ if(nrow(object@METADATA) != 0){ ## check if image/ROI data are present; get ID and remove information if(!is.null(object@METADATA[["RECTYPE"]])) id_128 <- object@METADATA[["RECTYPE"]] != 128 else id_128 <- rep(TRUE, nrow(object@METADATA)) version <- suppressWarnings( .collapse(unique(object@METADATA[id_128, "VERSION"]), quote = FALSE)) systemID <- suppressWarnings( .collapse(unique(object@METADATA[id_128, "SYSTEMID"]), quote = FALSE)) filename <- as.character(object@METADATA[1,"FNAME"]) records.overall <- length(object@DATA) records.type <- table(object@METADATA[id_128,"LTYPE"]) user <- .collapse(unique(object@METADATA[id_128, "USER"]), quote = FALSE) date <- .collapse(unique(object@METADATA[id_128, "DATE"]), quote = FALSE) run.range <- suppressWarnings(range(object@METADATA[id_128,"RUN"])) set.range <- suppressWarnings(range(object@METADATA[id_128,"SET"])) grain.range <- suppressWarnings(range(object@METADATA[id_128,"GRAIN"])) pos.range <- suppressWarnings(range(object@METADATA[id_128,"POSITION"])) records.type.count <- vapply(seq_along(records.type), function(x){ paste0(names(records.type[x]),"\t(n = ", records.type[x],")") }, character(1)) records.type.count <- paste(records.type.count, collapse="\n\t ") ##print cat("\n[Risoe.BINfileData object]") cat("\n\n\tBIN/BINX version: ", version) if(version >= 6){ cat("\n\tFile name: ", filename) } cat("\n\tObject date: ", date) cat("\n\tUser: ", user) cat("\n\tSystem ID: ", ifelse(systemID == 0,"0 (unknown)", systemID)) cat("\n\tOverall records: ", records.overall) cat("\n\tRecords type: ", records.type.count) cat("\n\tPosition range: ", pos.range[1],":",pos.range[2]) if(max(grain.range) > 0) cat("\n\tGrain range: ", grain.range[1],":",grain.range[2]) cat("\n\tRun range: ", run.range[1],":",run.range[2]) ## if id_128 if(any(!id_128)) cat("\n\t + additional ROI data found in record(s):", .collapse(which(!id_128), quote = FALSE)) }else{ cat("\n[Risoe.BINfileData object]") cat("\n\n >> This object is empty!<<") } cat("\n") }#end function )#end setMethod # set method for object class ----------------------------------- #' @describeIn Risoe.BINfileData #' The Risoe.BINfileData is normally produced as output of the function read_BIN2R. #' This construction method is intended for internal usage only. #' #' @param METADATA Object of class "data.frame" containing the meta information #' for each curve. #' #' @param DATA Object of class "list" containing numeric vector with count data. #' #' @param .RESERVED Object of class "list" containing list of undocumented raw #' values for internal use only. #' #' @md #' @export setMethod(f = "set_Risoe.BINfileData", signature = signature("ANY"), definition = function(METADATA, DATA, .RESERVED) { .set_function_name("set_Risoe.BINfileData") on.exit(.unset_function_name(), add = TRUE) if(length(METADATA) == 0){ new("Risoe.BINfileData") }else{ .validate_class(METADATA, "data.frame") new( "Risoe.BINfileData", METADATA = METADATA, DATA = DATA, .RESERVED = .RESERVED ) } }) # get () ----------------------------------------------------------------------- #' @describeIn Risoe.BINfileData #' Formal get-method for Risoe.BINfileData object. It does not allow accessing #' the object directly, it is just showing a terminal message. #' #' @param object an object of class [Risoe.BINfileData-class] #' #' @param ... other arguments that might be passed #' #' @md #' @export setMethod("get_Risoe.BINfileData", signature= "Risoe.BINfileData", definition = function(object, ...) { cat("[get_Risoe.BINfileData()] No direct access is provided for this object type. Use the function 'Risoe.BINfileData2RLum.Analysis' for object coercing.") } ) ## add_metadata() ----------------------------------------------------------- #' @describeIn Risoe.BINfileData #' Adds metadata to [Risoe.BINfileData-class] objects #' #' @param object (**required**) an object of class [Risoe.BINfileData-class] #' #' @param info_element [character] (**required**) name of the metadata field #' to add #' #' @param value (**required**) The value assigned to the selected elements #' of the metadata field. #' #' @keywords internal #' #' @md #' @export setMethod("add_metadata<-", signature= "Risoe.BINfileData", definition = function(object, info_element, value) { .set_function_name("add_metadata") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks --------------------------------------------- .validate_class(info_element, "character") .validate_length(info_element, 1) valid.names <- colnames(object@METADATA) if (info_element %in% valid.names) { .throw_error("'info_element' already present, to modify it ", "you should use `replace_metadata()`") } ## add the metadata element object@METADATA[[info_element]] <- value assign(x = deparse(substitute(object))[1], object) }) ## rename_metadata() -------------------------------------------------------- #' @describeIn Risoe.BINfileData #' Renames a metadata entry of [Risoe.BINfileData-class] objects #' #' @param object (**required**) an object of class [Risoe.BINfileData-class] #' #' @param info_element [character] (**required**) name of the metadata field #' to rename. #' #' @param value (**required**) The value assigned to the selected element #' of the metadata field. #' #' @keywords internal #' #' @md #' @export setMethod("rename_metadata<-", signature= "Risoe.BINfileData", definition = function(object, info_element, value) { .set_function_name("rename_metadata") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks --------------------------------------------- .validate_class(info_element, "character") .validate_length(info_element, 1) valid.names <- colnames(object@METADATA) if (!info_element %in% valid.names) { .throw_error("'info_element' not recognised (", .collapse(info_element), "), valid terms are: ", .collapse(valid.names, quote = FALSE)) } ## rename the metadata element name.idx <- grep(info_element, valid.names) colnames(object@METADATA)[name.idx] <- value assign(x = deparse(substitute(object))[1], object) }) ## replace_metadata() ------------------------------------------------------- #' @describeIn Risoe.BINfileData #' Replaces or removes metadata of [Risoe.BINfileData-class] objects #' #' @param object (**required**) an object of class [Risoe.BINfileData-class] #' #' @param info_element [character] (**required**) name of the metadata field #' to replace or remove #' #' @param subset [expression] (*optional*) logical expression to limit the #' substitution only to the selected subset of elements #' #' @param value (**required**) The value assigned to the selected elements #' of the metadata field. If `NULL` the elements named in `info_element` #' will be removed. #' #' @keywords internal #' #' @md #' @export setMethod("replace_metadata<-", signature= "Risoe.BINfileData", definition = function(object, info_element, subset = NULL, value) { .set_function_name("replace_metadata") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks --------------------------------------------- .validate_class(info_element, "character") valid.names <- colnames(object@METADATA) not.found <- setdiff(info_element, valid.names) if (length(not.found) > 0) { .throw_error("'info_element' not recognised (", .collapse(not.found), "), valid terms are: ", .collapse(valid.names, quote = FALSE)) } ## select relevant rows sel <- TRUE if (!is.null(substitute(subset))) { if (is.null(value)) { ## assigning `NULL` indicates that we want to remove a field, ## but that is incompatible with choosing a subset of rows .throw_error("'subset' is incompatible with assigning NULL") } ## evaluate the subset expression to produce a selection sel <- tryCatch(eval( expr = substitute(subset), envir = object@METADATA, enclos = parent.frame() ), error = function(e) { .throw_error("Invalid 'subset' expression, valid terms are: ", .collapse(valid.names, quote = FALSE)) }) if (!is.logical(sel)) { .throw_error("'subset' should contain a logical expression") } if (all(is.na(sel))) { sel <- FALSE } if (!any(sel)) { .throw_message("'subset' expression produced an ", "empty selection, nothing done") return(object) } } if (!is.null(substitute(subset))) { ## replace the metadata elements for (field in info_element) object@METADATA[[field]][sel] <- value } else { ## remove the metadata elements object@METADATA[info_element] <- value } assign(x = deparse(substitute(object))[1], object) }) ## sort_RLum () ------------------------------------------------------------- #' @describeIn Risoe.BINfileData #' #' Sort method for [Risoe.BINfileData-class] objects #' #' @param object (**required**): an object of class [Risoe.BINfileData-class]. #' #' @param info_element [character] (**required**): name of the metadata field #' to use in sorting. #' #' @param decreasing [logical] (*with default*): whether the sort order should #' be decreasing (`FALSE` by default). #' #' @param ... further arguments that might be passed to underlying methods. #' #' @keywords internal #' #' @md #' @export setMethod( f = "sort_RLum", signature = "Risoe.BINfileData", function(object, info_element, decreasing = FALSE, ...) { .set_function_name("sort_RLum") on.exit(.unset_function_name(), add = TRUE) ## input validation .validate_class(info_element, "character") valid.names <- colnames(object@METADATA) if (any(!info_element %in% valid.names)) { .throw_error("Invalid 'info_element' name, valid names are: ", .collapse(valid.names)) } if (length(info_element) > 1) { message("[sort_RLum()]: Only the first field will be used in sorting") info_element <- info_element[1] } .validate_logical_scalar(decreasing) ## determine the new ordering ord <- order(object@METADATA[[info_element]], decreasing = decreasing) ## reorder the object object@METADATA <- object@METADATA[ord, ] object@DATA <- object@DATA[ord] return(object) } ) # view () ----------------------------------------------------------------------- #'@describeIn Risoe.BINfileData #'View method for [Risoe.BINfileData-class] objects #' #' @param object (**required**) an object of class [Risoe.BINfileData-class] #' #'@param ... other arguments that might be passed #' #'@keywords internal #' #'@md #'@export setMethod("view", signature= "Risoe.BINfileData", definition = function(object, ...) { ## set title name <- list(...)$title if (is.null(name)) name <- paste("METADATA for", deparse(substitute(object))) ## run view .view(x = object@METADATA, title = name) }) Luminescence/R/tune_Data.R0000644000176200001440000000517514762554470015142 0ustar liggesusers#' Tune data for experimental purpose #' #' The error can be reduced and sample size increased for specific purpose. #' #' @param data [data.frame] (**required**): #' input values, structure: data (`values[,1]`) and data error (`values [,2]`) #' are required #' #' @param decrease.error [numeric]: #' factor by which the error is decreased, ranges between 0 and 1. #' #' @param increase.data [numeric]: #' factor by which the error is decreased, ranges between 0 and `Inf`. #' #' @return Returns a [data.frame] with tuned values. #' #' @note #' You should not use this function to improve your poor data set! #' #' @section Function version: 0.5.0 #' #' @author #' Michael Dietze, GFZ Potsdam (Germany) #' #' @keywords manip #' #' @examples #' #' ## load example data set #' data(ExampleData.DeValues, envir = environment()) #' x <- ExampleData.DeValues$CA1 #' #' ## plot original data #' plot_AbanicoPlot(data = x, #' summary = c("n", "mean")) #' #' ## decrease error by 10 % #' plot_AbanicoPlot(data = tune_Data(x, decrease.error = 0.1), #' summary = c("n", "mean")) #' #' ## increase sample size by 200 % #' #plot_AbanicoPlot(data = tune_Data(x, increase.data = 2) , #' # summary = c("n", "mean")) #' #' @md #' @export tune_Data <- function( data, decrease.error = 0, increase.data = 0 ) { .set_function_name("tune_Data") on.exit(.unset_function_name(), add = TRUE) if(missing(decrease.error) == FALSE) { error.rel <- data[,2] / data[,1] data[,2] <- error.rel * (1 - decrease.error) * data[,1] } if(missing(increase.data) == FALSE) { n <- round(x = increase.data * 100, digits = 0) i.new <- sample(x = 1:nrow(data), size = n, replace = TRUE) x.new <- rnorm(n = n, mean = data[i.new, 1], sd = data[i.new, 2]) e.new <- rnorm(n = n, mean = data[i.new, 2], sd = data[i.new, 2] * 0.05) x.merge <- c(data[,1], x.new) e.merge <- c(data[,2], e.new) e.merge <- e.merge[order(x.merge)] x.merge <- x.merge[order(x.merge)] data.out <- data.frame(x.merge, e.merge) names(data.out) <- names(data) data <- data.out } info <- Sys.info() user <- info[length(info)] os <- info[1] .throw_warning("Dear ", user, ", these activities on your ", os, " machine have been tracked and will be submitted to ", "the R.Lum data base. Cheating does not pay off! [", Sys.time(), "]", sep = "") return(data) } Luminescence/R/convert_Concentration2DoseRate.R0000644000176200001440000002235414762554470021313 0ustar liggesusers#'@title Dose-rate conversion function #' #'@description This function converts radionuclide concentrations #'(K in %, Th and U in ppm) into dose rates (Gy/ka). Beta-dose rates are also #'attenuated for the grain size. Beta and gamma-dose rates are corrected #'for the water content. This function converts concentrations into dose rates #'(Gy/ka) and corrects for grain size attenuation and water content #' #'Dose rate conversion factors can be chosen from Adamiec and Aitken (1998), #'Guerin et al. (2011), Liritzis et al. (201) and Cresswell et al. (2018). #'Default is Guerin et al. (2011). #' #'Grain size correction for beta dose rates is achieved using the correction #'factors published by Guérin et al. (2012). #' #'Water content correction is based on factors provided by Aitken (1985), #'with the factor for beta dose rate being 1.25 and for gamma 1.14. #' #'@details #' #'**The input data** #' #'\tabular{lll}{ #'COLUMN \tab DATA TYPE \tab DESCRIPTION\cr #'`Mineral` \tab `character` \tab `'FS'` for feldspar, `'Q'` for quartz\cr #'`K` \tab `numeric` \tab K nuclide content in %\cr #'`K_SE` \tab `numeric` \tab error on K nuclide content in %\cr #'`Th` \tab `numeric` \tab Th nuclide content in ppm\cr #'`Th_SE` \tab `numeric` error on Th nuclide content in ppm\cr #'`U` \tab `numeric` U nuclide content in ppm\cr #'`U_SE` \tab `numeric` \tab error on U nuclide content in ppm\cr #'`GrainSize` \tab `numeric` \tab average grain size in µm\cr #'`WaterContent` \tab `numeric` \tab mean water content in %\cr #'`WaterContent_SE` \tab `numeric` \tab relative error on water content #'} #' #' #'**Water content** #'The water content provided by the user should be calculated according to: #' #'\deqn{(Wet_weight - Dry_weight) / Dry_weight * 100} #' #'The unit for the weight is gram (g). #' #'@param input [data.frame] (*optional*): a table containing all relevant information #' for each individual layer if nothing is provided, the function returns a template [data.frame] #' Please note that until one dataset per input is supported! #' #'@param conversion [character] (*with default*): which dose rate conversion factors to use, #' defaults uses Guérin et al. (2011). For accepted values see [BaseDataSet.ConversionFactors] #' #'@return The function returns an [RLum.Results-class] object for which the first #'element is [matrix] with the converted values. If no input is provided, the #'function returns a template [data.frame] that can be used as input. #' #'@section Function version: 0.1.0 #' #'@author Svenja Riedesel, Aberystwyth University (United Kingdom) \cr #'Martin Autzen, DTU NUTECH Center for Nuclear Technologies (Denmark) #' #'@references #'Adamiec, G., Aitken, M.J., 1998. Dose-rate conversion factors: update. Ancient TL 16, 37-46. #' #'Cresswell., A.J., Carter, J., Sanderson, D.C.W., 2018. Dose rate conversion parameters: #'Assessment of nuclear data. Radiation Measurements 120, 195-201. #' #'Guerin, G., Mercier, N., Adamiec, G., 2011. Dose-rate conversion factors: update. #'Ancient TL, 29, 5-8. #' #'Guerin, G., Mercier, N., Nathan, R., Adamiec, G., Lefrais, Y., 2012. On the use #'of the infinite matrix assumption and associated concepts: A critical review. #'Radiation Measurements, 47, 778-785. #' #'Liritzis, I., Stamoulis, K., Papachristodoulou, C., Ioannides, K., 2013. #'A re-evaluation of radiation dose-rate conversion factors. Mediterranean #'Archaeology and Archaeometry 13, 1-15. #' #'@keywords datagen #' #'@examples #' #'## create input template #'input <- convert_Concentration2DoseRate() #' #'## fill input #'input$Mineral <- "FS" #'input$K <- 2.13 #'input$K_SE <- 0.07 #'input$Th <- 9.76 #'input$Th_SE <- 0.32 #'input$U <- 2.24 #'input$U_SE <- 0.12 #'input$GrainSize <- 200 #'input$WaterContent <- 30 #'input$WaterContent_SE <- 5 #' #'## convert #'convert_Concentration2DoseRate(input) #' #'@md #'@export convert_Concentration2DoseRate <- function( input, conversion = "Guerinetal2011" ) { .set_function_name("convert_Concentration2DoseRate") on.exit(.unset_function_name(), add = TRUE) # Alternate mode ---------------------------------------------------------- if(missing(input)){ message("[convert_Concentration2DoseRate()] Input template returned. Please fill this data.frame and use it as input to the function!") df <- data.frame( Mineral = NA_character_, K = NA_integer_, K_SE = NA_integer_, Th = NA_integer_, Th_SE = NA_integer_, U = NA_integer_, U_SE = NA_integer_, GrainSize = NA_integer_, WaterContent = NA_integer_, WaterContent_SE = NA_integer_) return(df) } # Load datasets ----------------------------------------------------------- ## fulfil CRAN checks BaseDataSet.ConversionFactors <- BaseDataSet.GrainSizeAttenuation <- NA ## load datasets load(system.file("data", "BaseDataSet.ConversionFactors.rda", package = "Luminescence")) load(system.file("data", "BaseDataSet.GrainSizeAttenuation.rda", package = "Luminescence")) ## we do this to be consistent with the code written by Svenja and Martin GSA <- BaseDataSet.GrainSizeAttenuation ## Integrity tests -------------------------------------------------------- .validate_class(input, c("data.frame", "matrix")) if(ncol(input) != ncol(suppressMessages(convert_Concentration2DoseRate())) || nrow(input) > 1) .throw_error("Number of rows/columns in input does not match the requirements") ## conversion factors: we do not use BaseDataSet.ConversionFactors directly ## as it is in alphabetical level, but we want to have 'Guerinetal2011' ## in first position, as that is our default value valid_conversion_factors <- c("Guerinetal2011", "Cresswelletal2018", "AdamiecAitken1998", "Liritzisetal2013") stopifnot(all(names(BaseDataSet.ConversionFactors) %in% valid_conversion_factors)) conversion <- .validate_args(conversion, valid_conversion_factors) if(!any(input[,1] %in% c("FS","Q"))) .throw_error("As mineral only 'FS' or 'Q' is supported") # Convert ----------------------------------------------------------------- InfDR <- matrix(data = NA, nrow = 2, ncol = 6) colnames(InfDR) <- c("K","SE","Th","SE","U","SE") rownames(InfDR) <- c("Beta","Gamma") ### --- BETA DOSE RATES for (i in 1:3){ if (i == 1){ Col <- "K" } else if (i == 2){ Col <- "Th" } else { Col <- "U" } for (j in 1:2){ if (j== 1){ Temp = "beta" } else { Temp = "gamma" } Nuclide <- i * 2 N <- 2 * i - 1 Error <- Nuclide + 1 InfDR[j, N] <- input[1, Nuclide] * BaseDataSet.ConversionFactors[[conversion]][[Temp]][[Col]][1] # Calculate Dose Rate InfDR[j, Nuclide] <- sqrt((input[1, Error] / input[1, Nuclide]) ^ 2 + ( BaseDataSet.ConversionFactors[[conversion]][[Temp]][[Col]][2] / BaseDataSet.ConversionFactors[[conversion]][[Temp]][[Col]][1] ) ^ 2 ) # Calculate Error } } ##### --- dose rate for grain size --- ##### if (input[1,1] == "FS") { # FELDSPAR KFit <- approx(GSA$GrainSize, GSA$FS_K, n = 981, method = "linear") ThFit <- approx(GSA$GrainSize, GSA$FS_Th,n = 981, method = "linear") UFit <- approx(GSA$GrainSize, GSA$FS_U, n = 981, method = "linear") Temp <- which(KFit$x == input[1, 8]) InfDR[1, 1] <- InfDR[1, 1] * (1 - KFit$y[Temp]) # K InfDR[1, 3] <- InfDR[1, 3] * (1 - ThFit$y[Temp]) # Th InfDR[1, 5] <- InfDR[1, 5] * (1 - UFit$y[Temp]) # U } else if (input[1,1] == "Q") { # QUARTZ KFit <- approx(GSA$GrainSize, GSA$Q_K, n = 981, method = "linear") ThFit <- approx(GSA$GrainSize, GSA$Q_Th, n = 981, method = "linear") UFit <- approx(GSA$GrainSize, GSA$Q_U, n = 981, method = "linear") Temp <- which(KFit$x == input[1, 8]) InfDR[1, 1] <- InfDR[1, 1] * (1 - KFit$y[Temp]) # K InfDR[1, 3] <- InfDR[1, 3] * (1 - ThFit$y[Temp]) # Th InfDR[1, 5] <- InfDR[1, 5] * (1 - UFit$y[Temp]) # U } ##### --- Correct beta sediment dose rate for water content --- ##### InfDRG <- matrix(data = NA, nrow = 2, ncol = 6) colnames(InfDRG) <- c("K", "SE", "Th", "SE", "U", "SE") rownames(InfDRG) <- c("Beta", "Gamma") WC <- input[1, 9] / 100 WCerr <- input[1, 10] / 100 for (i in 1:6){ for (j in 1:2){ if (j == 1){ k = 1.25 #Water content correction for beta } else { k = 1.14 #Water content correction for gamma } Remain <- i %% 2 if (Remain == 1){ InfDRG[j,i] <- InfDR[j,i]/(1 + k*WC) } else if (Remain == 0){ Temp <- (InfDR[j,i]/(1 + k*WC)) - (InfDR[j,i]/(1+k*(WC+WCerr))) InfDRG[j,i] <- InfDRG[j,i-1]*sqrt(InfDR[j,i]^2+(Temp/InfDR[j,i-1])^2) } } } InfDRG <- round(InfDRG, digits = 3) # Return ------------------------------------------------------------------ return( set_RLum( class = "RLum.Results", data = list( InfDRG = InfDRG, input_data = input ), info = list( call = sys.call() ))) } Luminescence/R/plot_DRCSummary.R0000644000176200001440000002252714762554470016262 0ustar liggesusers#' @title Create a Dose-Response Curve Summary Plot #' #' @description #' While analysing OSL SAR or pIRIR-data the view on the data is usually #' limited to one dose-response curve (DRC) at the time for one aliquot. This #' function overcomes this limitation by plotting all DRCs from an #' [RLum.Results-class] object created by [analyse_SAR.CWOSL] in one single #' plot. #' #' If you want plot your DRC on an energy scale (dose in Gy), you can either #' use option `source_dose_rate` or perform your SAR analysis with the dose #' points in Gy (better axis scaling). #' #' @param object [RLum.Results-class] (**required**): input object created by #' [analyse_SAR.CWOSL]. The input object can be provided as [list]. #' #' @param source_dose_rate [numeric] (*optional*): allows to modify the axis #' and show values in Gy, instead seconds. Only a single numerical value is #' allowed. #' #' @param sel_curves [numeric] (*optional*): id of the curves to be plotted in #' its occurring order. A sequence can be provided for selecting, e.g., only #' every 2nd curve from the input object. #' #' @param show_dose_points [logical] (*with default*): enable/disable plotting #' of dose points in the graph. #' #' @param show_natural [logical] (*with default*): enable/disable the plot #' of the natural `Lx/Tx` values. #' #' @param n [integer] (*with default*): number of x-values used to evaluate #' one curve object. Large numbers slow down the plotting process and are #' usually not needed. #' #'@param ... Further arguments and graphical parameters to be passed. In particular: `main`, `xlab`, `ylab`, `xlim`, `ylim`, `lty`, `lwd`, `pch`, `col.pch`, `col.lty`, `mtext` #' #'@section Function version: 0.2.3 #' #'@return An [RLum.Results-class] object is returned: #' #' Slot: **@data**\cr #' #' \tabular{lll}{ #' **OBJECT** \tab **TYPE** \tab **COMMENT**\cr #' `results` \tab [data.frame] \tab with dose and LxTx values \cr #' `data` \tab [RLum.Results-class] \tab original input data \cr #' } #' #' Slot: **@info**\cr #' #' \tabular{lll}{ #' **OBJECT** \tab **TYPE** \tab **COMMENT** \cr #' `call` \tab `call` \tab the original function call \cr #' `args` \tab `list` \tab arguments of the original function call \cr #' } #' #'*Note: If the input object is a [list] a list of [RLum.Results-class] objects is returned.* #' #'@author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) \cr #' Christoph Burow, University of Cologne (Germany) #' #'@seealso [RLum.Results-class], [analyse_SAR.CWOSL] #' #'@examples #' #'#load data example data #'data(ExampleData.BINfileData, envir = environment()) #' #'#transform the values from the first position in a RLum.Analysis object #'object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) #' ##perform SAR analysis #' results <- analyse_SAR.CWOSL( #' object = object, #' signal.integral.min = 1, #' signal.integral.max = 2, #' background.integral.min = 900, #' background.integral.max = 1000, #' plot = FALSE #' ) #' #'##plot only DRC #'plot_DRCSummary(results) #' #'@md #'@export plot_DRCSummary <- function( object, source_dose_rate = NULL, sel_curves = NULL, show_dose_points = FALSE, show_natural = FALSE, n = 51L, ... ) { .set_function_name("plot_DRCSummary") on.exit(.unset_function_name(), add = TRUE) # Self-call ----------------------------------------------------------------------------------- if(inherits(object, "list")){ ##catch ... arguments plot_settings <- list(...) ## expand input arguments if("main" %in% names(list(...))){ main <- .listify(list(...)[["main"]], length(object)) ##filter main from the ... argument list otherwise we will have a collusion plot_settings["main" %in% names(plot_settings)] <- NULL }else{ main <- .listify("DRC", length(object)) } results <- lapply(seq_along(object), function(o) { plot_DRCSummary( object = object[[o]], source_dose_rate = source_dose_rate, sel_curves = sel_curves, show_dose_points = show_dose_points, show_natural = show_natural, n = n, main = main[[o]], ... = plot_settings ) }) ##return merged object return(results) } ## Integrity checks ------------------------------------------------------- .validate_class(object, "RLum.Results") # Extract data from object -------------------------------------------------------------------- ##get data from RLum.Results object if(object@originator %in% c("analyse_SAR.CWOSL", "analyse_pIRIRSequence")){ ##set limit if(is.null(sel_curves)){ sel_curves <- 1:length(object@data$Formula) }else{ if(min(sel_curves) < 1 || max(sel_curves) > length(object@data$Formula) || length(sel_curves) > length(object@data$Formula)){ .throw_warning("'sel_curves' out of bounds, reset to full dataset") sel_curves <- 1:length(object@data$Formula) } } ## check the whether the fitting was all the same if(length(unique(object@data[["data"]][["Fit"]])) != 1) .throw_error("I can only visualise dose-response curves based ", "on the same fitting equation") ##get DRC DRC <- object@data$Formula[sel_curves] ## check for Lambert W function (we can only do all ) if(all(object@data$data[["Fit"]] == "LambertW")) W <- lamW::lambertW0 ##get limits for each set dataset_limits <- matrix( c(which(object@data$LnLxTnTx.table[["Name"]] == "Natural"), which(object@data$LnLxTnTx.table[["Name"]] == "Natural")[-1] - 1, nrow(object@data$LnLxTnTx.table)), ncol = 2) ##create list LxTx <- lapply(1:nrow(dataset_limits), function(x){ object@data$LnLxTnTx.table[dataset_limits[x,1]:dataset_limits[x,2],] })[sel_curves] }else{ .throw_error("'object' was not created by a supported function, ", "see the manual for allowed originators") } # Plotting ------------------------------------------------------------------------------------ ##set default plot_settings <- modifyList(x = list( xlab = if(is.null(source_dose_rate)) {"Dose [s]"} else {"Dose [Gy]"}, ylab = expression(L[x]/T[x]), xlim = c(0,max(vapply(LxTx, function(x){max(x[["Dose"]])}, numeric(1)))), ylim = if(show_dose_points){ c(0,max(vapply(LxTx, function(x){max(x[["LxTx"]] + x[["LxTx.Error"]])}, numeric(1)), na.rm = TRUE)) }else{ c(0,max(vapply(1:length(LxTx), function(y){ x <- max(LxTx[[y]][["Dose"]], na.rm = TRUE) eval(DRC[[y]]) },numeric(1)), na.rm = TRUE)) }, main = "DRC Summary", mtext = paste0("n_curves: ",length(sel_curves)), lty = 1, lwd = 1, pch = 20, col.lty = rgb(0,0,0,0.5), col.pch = rgb(0,0,0,0.5) ), val = list(...), keep.null = TRUE) ## expand parameters plot_settings$col.lty <- rep(plot_settings$col.lty, length(sel_curves)) plot_settings$col.pch <- rep(plot_settings$col.pch, length(sel_curves)) plot_settings$pch <- rep(plot_settings$pch, length(sel_curves)) plot_settings$lty <- rep(plot_settings$lty, length(sel_curves)) ##create empty plot window plot( x = NA, y = NA, xlab = plot_settings$xlab, ylab = plot_settings$ylab, xlim = plot_settings$xlim, ylim = plot_settings$ylim, main = plot_settings$main, xaxt = "n" ) if(!is.null(plot_settings$mtext)) mtext(side = 3, text = plot_settings$mtext, cex = 0.8) #exchange x-axis if source dose rate is set if(!is.null(source_dose_rate)){ axis(side = 1, at = axTicks(side = 1), labels = round(axTicks(side = 1) * source_dose_rate[1],0)) }else{ axis(side = 1) } for(i in 1:length(sel_curves)){ ##plot natural if(show_natural){ segments(x0 = LxTx[[i]]$Dose[1], x1 = LxTx[[i]]$Dose[1], y0 = LxTx[[i]]$LxTx[1] - LxTx[[i]]$LxTx.Error[1], y1 = LxTx[[i]]$LxTx[1] + LxTx[[i]]$LxTx.Error[1], col = plot_settings$col.pch[[i]]) points( x = LxTx[[i]]$Dose[1], y = LxTx[[i]]$LxTx[1], col = plot_settings$col.pch[[i]], pch = plot_settings$pch[[i]] ) } ##plot dose points if(show_dose_points){ segments(x0 = LxTx[[i]]$Dose[-1], x1 = LxTx[[i]]$Dose[-1], y0 = LxTx[[i]]$LxTx[-1] - LxTx[[i]]$LxTx.Error[-1], y1 = LxTx[[i]]$LxTx[-1] + LxTx[[i]]$LxTx.Error[-1], col = plot_settings$col.pch[[i]]) points( x = LxTx[[i]]$Dose[-1], y = LxTx[[i]]$LxTx[-1], col = plot_settings$col.pch[[i]], pch = plot_settings$pch[[i]] ) } ##plot lines x <- seq(min(plot_settings$xlim),max(plot_settings$xlim), length.out = n) y <- eval(DRC[[i]]) if (anyNA(y) || any(is.nan(y))) { .throw_warning("Dose response curve ", i, " contains NA/NaN values, ", "curve removed before plotting") next } lines( x = x, y = eval(DRC[[i]]), col = plot_settings$col.lty[[i]], lwd = plot_settings$lwd, lty = plot_settings$lty[[i]] ) } ## Results ------------------------------------------------------------------- results <- set_RLum( class = "RLum.Results", data = list( results = data.frame( dose = x, sapply(DRC, function(d, n) { eval(d) }, n) ), data = object ), info = list( call = sys.call(), args = as.list(sys.call())[-1]) ) ## Return value -------------------------------------------------------------- return(results) } Luminescence/R/Risoe.BINfileData2RLum.Analysis.R0000644000176200001440000002212714762554470021020 0ustar liggesusers#' @title Convert Risoe.BINfileData object to an RLum.Analysis object #' #' @description #' Converts values from one specific position of a Risoe.BINfileData S4-class #' object to an RLum.Analysis object. #' #' The [RLum.Analysis-class] object requires a set of curves for #' specific further protocol analyses. However, the [Risoe.BINfileData-class] #' usually contains a set of curves for different aliquots and different #' protocol types that may be mixed up. Therefore, a conversion is needed. #' #' @param object [Risoe.BINfileData-class] (**required**): #' `Risoe.BINfileData` object #' #' @param pos [numeric] (*optional*): position number of the `Risoe.BINfileData` #' object for which the curves are stored in the `RLum.Analysis` object. #' If `length(position)>1` a list of `RLum.Analysis` objects is returned. #' If nothing is provided every position will be converted. #' If the position is not valid `NULL` is returned. #' #' @param grain [vector], [numeric] (*optional*): #' grain number from the measurement to limit the converted data set #' (e.g., `grain = c(1:48)`). Please be aware that this option may lead to #' unwanted effects, as the output is strictly limited to the chosen grain #' number for all position numbers #' #' @param run [vector], [numeric] (*optional*): #' run number from the measurement to limit the converted data set #' (e.g., `run = c(1:48)`). #' #' @param set [vector], [numeric] (*optional*): #' set number from the measurement to limit the converted data set #' (e.g., `set = c(1:48)`). #' #' @param ltype [vector], [character] (*optional*): #' curve type to limit the converted data. Commonly allowed values are: #' `IRSL`, `OSL`, `TL`, `RIR`, `RBR` and `USER` #' (see also [Risoe.BINfileData-class]) #' #' @param dtype [vector], [character] (*optional*): #' data type to limit the converted data. Commonly allowed values are #' listed in [Risoe.BINfileData-class] #' #' @param protocol [character] (*optional*): #' sets protocol type for analysis object. Value may be used by subsequent #' analysis functions. #' #' @param keep.empty [logical] (*with default*): #' If `TRUE` (default) an `RLum.Analysis` object is returned even if it does #' not contain any records. Set to `FALSE` to discard all empty objects. #' #' @param txtProgressBar [logical] (*with default*): #' enable/disable the progress bar. #' #' @return Returns an [RLum.Analysis-class] object. #' #' @note #' The `protocol` argument of the [RLum.Analysis-class] #' object is set to 'unknown' if not stated otherwise. #' #' @section Function version: 0.4.3 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [Risoe.BINfileData-class], [RLum.Analysis-class], [read_BIN2R] #' #' @keywords manip #' #' @examples #' #' ##load data #' data(ExampleData.BINfileData, envir = environment()) #' #' ##convert values for position 1 #' Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1) #' #' @md #' @export Risoe.BINfileData2RLum.Analysis<- function( object, pos = NULL, grain = NULL, run = NULL, set = NULL, ltype = NULL, dtype = NULL, protocol = "unknown", keep.empty = TRUE, txtProgressBar = FALSE ) { .set_function_name("Risoe.BINfileData2RLum.Analysis") on.exit(.unset_function_name(), add = TRUE) ## Integrity tests -------------------------------------------------------- .validate_class(object, "Risoe.BINfileData") if (!is.null(pos)) { .validate_class(pos, c("numeric", "integer")) } if (is.null(pos)) { pos <- unique(object@METADATA[["POSITION"]]) } else{ ##get and check valid positions and remove invalid numbers from the input positions.valid <- unique(object@METADATA[, "POSITION"]) if (length(setdiff(pos, positions.valid)) > 0) { .throw_warning("Invalid position number skipped: ", .collapse(setdiff(pos, positions.valid), quote = FALSE)) pos <- intersect(pos, positions.valid) } } # Grep run and set data --------------------------------------------------- ##grain if (is.null(grain)) { grain <- unique(object@METADATA[["GRAIN"]]) }else{ grain.valid <- unique(object@METADATA[["GRAIN"]]) if(length(setdiff(grain, grain.valid)) > 0){ .throw_warning("Invalid grain number skipped: ", .collapse(setdiff(grain, grain.valid), quote = FALSE)) grain <- intersect(grain, grain.valid) } } ##run if (is.null(run)) { run <- unique(object@METADATA[["RUN"]]) } else{ if (TRUE %in% unique(unique(object@METADATA[["RUN"]]) %in% run) != TRUE) { ##get and check valid positions .throw_error("run = ", .collapse(run, quote = FALSE), " contains invalid runs. Valid runs are: ", .collapse(unique(object@METADATA[, "RUN"]), quote = FALSE)) } } #set if(is.null(set)){set <- unique(object@METADATA[["SET"]]) } else{ if(TRUE %in% unique(unique(object@METADATA[["SET"]]) %in% set) != TRUE){ ##get and check valid positions .throw_error("set = ", .collapse(set, quote = FALSE), " contains invalid sets. Valid sets are: ", .collapse(unique(object@METADATA[, "SET"]), quote = FALSE)) } } ##ltype if (is.null(ltype)) { ltype <- unique(object@METADATA[["LTYPE"]]) } else{ if (TRUE %in% unique(unique(object@METADATA[, "LTYPE"]) %in% ltype) != TRUE) { ##get and check valid positions .throw_error("ltype = ", .collapse(ltype), " contains invalid ltypes. Valid ltypes are: ", .collapse(unique(object@METADATA[, "LTYPE"]))) } } ##dtype if (is.null(dtype)) { dtype <- unique(object@METADATA[["DTYPE"]]) } else{ if (TRUE %in% unique(unique(object@METADATA[, "DTYPE"]) %in% dtype) != TRUE) { ##get and check valid positions .throw_error("dtype = ", .collapse(dtype), " contains invalid dtypes. Valid dtypes are: ", .collapse(unique(object@METADATA[, "DTYPE"]))) } } # Select values and convert them----------------------------------------------------------- ##set progressbar to false if only one position is provided if(txtProgressBar & length(pos)<2){ txtProgressBar <- FALSE } ##This loop does: ## (a) iterating over all possible positions ## (b) consider grains in all possible positions ## (c) consider other selections ## (d) create the RLum.Analysis objects ##set progress bar if(txtProgressBar){ pb <- txtProgressBar(min=min(pos),max=max(pos), char="=", style=3) } object <- lapply(pos, function(pos){ ##update progress bar if(txtProgressBar){ setTxtProgressBar(pb, value = pos) } ##loop over the grains and produce RLum.Analysis objects object <- lapply(grain, function(grain){ ## select data ## the NA check for grain is necessary as FI readers like to report ## NA instead of 0 in that column, and this causes some trouble temp_id <- object@METADATA[ object@METADATA[["POSITION"]] == pos & (is.na(object@METADATA[["GRAIN"]]) | object@METADATA[["GRAIN"]] == grain) & object@METADATA[["RUN"]] %in% run & object@METADATA[["SET"]] %in% set & object@METADATA[["LTYPE"]] %in% ltype & object@METADATA[["DTYPE"]] %in% dtype , "ID"] ## if the input object is empty, bypass the creation of curve objects if (length(object@DATA) == 0) { message("Empty Risoe.BINfileData object detected") records <- list() } else { ## create curve object records <- lapply(temp_id, function(x) { ## skip ROI information if (!is.null(object@METADATA[["RECTYPE"]]) && object@METADATA[["RECTYPE"]][x] == 128) set_RLum(class = "RLum.Data.Curve") else .Risoe.BINfileData2RLum.Data.Curve(object, id = x) }) } ## create the RLum.Analysis object object <- set_RLum( class = "RLum.Analysis", records = records, protocol = protocol, originator = "Risoe.BINfileData2RLum.Analysis" ) if (!keep.empty && length(object@records) == 0) return(NULL) ##add unique id of RLum.Analysis object to each curve object as .pid using internal function .set_pid(object) return(object) }) return(object) }) ##this is necessary to not break with previous code, i.e. if only one element is included ##the output is RLum.Analysis and not a list of it if(length(object) == 1){ # special case: single grain data with only 1 position produces a nested list # the outer one is of length 1, the nested list has length 100 (100 grains) if (is.list(object[[1]]) && length(object[[1]]) > 1) invisible(unlist(object)) else invisible(object[[1]][[1]]) }else{ invisible(unlist(object)) } } Luminescence/R/fit_EmissionSpectra.R0000644000176200001440000005463514762554470017215 0ustar liggesusers#'@title Luminescence Emission Spectra Deconvolution #' #'@description Luminescence spectra deconvolution on [RLum.Data.Spectrum-class] and [matrix] objects #'on an **energy scale**. The function is optimised for emission spectra typically #'obtained in the context of TL, OSL and RF measurements detected between 200 and 1000 nm. #'The function is not prepared to deconvolve TL curves (counts against temperature; #'no wavelength scale). If you are interested in such analysis, please check, e.g., #'the package `'tgcd'`. #' #'@details #' #'**Used equation** #' #'The emission spectra (on an energy scale) can be best described as the sum of multiple #'Gaussian components: #' #''\deqn{ #'y = \Sigma Ci * 1/(\sigma_{i} * \sqrt(2 * \pi)) * exp(-1/2 * ((x - \mu_{i})/\sigma_{i}))^2) #'} #' #'with the parameters \eqn{\sigma} (peak width) and \eqn{\mu} (peak centre) and \eqn{C} #'(scaling factor). #' #' #'**Start parameter estimation and fitting algorithm** #' #'The spectrum deconvolution consists of the following steps: #' #'1. Peak finding \cr #'2. Start parameter estimation \cr #'3. Fitting via [minpack.lm::nls.lm]\cr #' #'The peak finding is realised by an approach (re-)suggested by Petr Pikal via the R-help #'mailing list (`https://stat.ethz.ch/pipermail/r-help/2005-November/thread.html`) in November 2005. #'This goes back to even earlier discussion in 2001 based on Prof Brian Ripley's idea. #'It smartly uses the functions [stats::embed] and [max.col] to identify peaks positions. #'For the use in this context, the algorithm has been further modified to scale on the #'input data resolution (cf. source code).\cr #' #'The start parameter estimation uses random sampling from a range of meaningful parameters #'and repeats the fitting until 1000 successful fits have been produced or the set `max.runs` value #'is exceeded. #' #'Currently the best fit is the one with the lowest number for squared residuals, but #'other parameters are returned as well. If a series of curves needs to be analysed, #'it is recommended to make few trial runs, then fix the number of components and #'run at least 10,000 iterations (parameter `method_control = list(max.runs = 10000)`). #' #'**Supported `method_control` settings** #' #'\tabular{llll}{ #' **Parameter** \tab **Type** \tab **Default** \tab **Description**\cr #' `max.runs` \tab [integer] \tab `10000` \tab maximum allowed search iterations, if exceed #' the searching stops \cr #' `graining` \tab [numeric] \tab `15` \tab control over how coarse or fine the spectrum is split into search intervals for the peak finding algorithm \cr #' `norm` \tab [logical] \tab `TRUE` \tab normalise data to the highest count value before fitting \cr #' `export.plot.data` \tab [logical] \tab `FALSE` \tab enable/disable export #' of the values of all curves in the plot for each frame analysed \cr #' `trace` \tab [logical] \tab `FALSE` \tab enable/disable the tracing of the minimisation routine #'} #' #'@param object [RLum.Data.Spectrum-class], [matrix] (**required**): input #'object. Please note that an energy spectrum is expected #' #' @param frame [integer] (*optional*): number of the frame to be analysed. If #' `NULL`, all available frames are analysed. #' #'@param start_parameters [numeric] (*optional*): allows to provide own start parameters for a #'semi-automated procedure. Parameters need to be provided in eV. Every value provided replaces a #'value from the automated peak finding algorithm (in ascending order). #' #' @param n_components [integer] (*optional*): maximum number of components #' desired: the number of component actually fitted may be smaller than this. #' Can be combined with other parameters. #' #' @param input_scale [character] (*optional*): defines whether your x-values #' are expressed as wavelength or energy values. Allowed values are `"wavelength"`, #' `"energy"` or `NULL`, in which case the function tries to guess the input #' automatically. #' #'@param sub_negative [numeric] (*with default*): substitute negative values in the input object #'by the number provided here (default: `0`). Can be set to `NULL`, i.e. negative values are kept. #' #' @param method_control [list] (*optional*): options to control the fit method #' and the output produced, see details. #' #' @param verbose [logical] (*with default*): enable/disable output to the #' terminal. #' #' @param plot [logical] (*with default*): enable/disable the plot output. #' #'@param ... further arguments to be passed to control the plot output #'(supported: `main`, `xlab`, `ylab`, `xlim`, `ylim`, `log`, `mtext`, `legend` (`TRUE` or `FALSE`), #'`legend.text`, `legend.pos`) #' #'@return #' -----------------------------------\cr #' `[ NUMERICAL OUTPUT ]`\cr #' -----------------------------------\cr #' #' **`RLum.Results`**-object #' #' **slot:** **`@data`** #' #' \tabular{lll}{ #' **Element** \tab **Type** \tab **Description**\cr #' `$data` \tab `matrix` \tab the final fit matrix \cr #' `$fit` \tab `nls` \tab the fit object returned by [minpack.lm::nls.lm] \cr #' `$fit_info` \tab `list` \tab a few additional parameters that can be used #' to assess the quality of the fit \cr #' `$df_plot` \tab `list` \tab values of all curves in the plot for each #' frame analysed (only if `method_control$export.plot.data = TRUE`) #' } #' #' #'**slot:** **`@info`** #' #' The original function call #' #' ---------------------------------\cr #' `[ TERMINAL OUTPUT ]` \cr #' ---------------------------------\cr #' #' The terminal output provides brief information on the #' deconvolution process and the obtained results. #' Terminal output is only shown when `verbose = TRUE`. #' #' ---------------------------\cr #' `[ PLOT OUTPUT ]` \cr #' ---------------------------\cr #' #' The function returns a plot showing the raw signal with the #' detected components. If the fitting failed, a basic plot is returned #' showing the raw data and indicating the peaks detected for the start #' parameter estimation. The grey band in the residual plot indicates the #' 10% deviation from 0 (means no residual). #' #'@section Function version: 0.1.2 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Marco Colombo, Institute of Geography, Heidelberg University (Germany) #' #'@seealso [RLum.Data.Spectrum-class], [RLum.Results-class], [plot_RLum], #'[convert_Wavelength2Energy], [minpack.lm::nls.lm] #' #'@keywords datagen #' #'@examples #' #'##load example data #'data(ExampleData.XSYG, envir = environment()) #' #'##subtract background #'TL.Spectrum@@data <- TL.Spectrum@@data[] - TL.Spectrum@@data[,15] #' #'results <- fit_EmissionSpectra( #' object = TL.Spectrum, #' frame = 5, #' method_control = list(max.runs = 10) #' ) #' #' ##deconvolution of a TL spectrum #' \dontrun{ #' #' ##load example data #' #' ##replace 0 values #' results <- fit_EmissionSpectra( #' object = TL.Spectrum, #' frame = 5, main = "TL spectrum" #' ) #' #'} #' #'@md #'@export fit_EmissionSpectra <- function( object, frame = NULL, n_components = NULL, start_parameters = NULL, sub_negative = 0, input_scale = NULL, method_control = list(), verbose = TRUE, plot = TRUE, ... ) { .set_function_name("fit_EmissionSpectra") on.exit(.unset_function_name(), add = TRUE) ##TODO: Find a way to get a significant number of components ## This function works only on a list of matrices, so what ever we do here, we have to ## create a list of data treat, frame controls the number of frames analysed .validate_class(object, c("RLum.Data.Spectrum", "matrix", "list")) if (!is.null(n_components)) { .validate_positive_scalar(n_components, int = TRUE) } input_scale <- .validate_args(input_scale, c("wavelength", "energy"), null.ok = TRUE) .validate_class(method_control, "list") .validate_logical_scalar(verbose) .validate_logical_scalar(plot) ##input RLum.Data.Spectrum ... make list either way if(inherits(object, "RLum.Data.Spectrum")) object <- list(object) ##stop, mixed input is not allowed if(inherits(object, "list") && length(unique(sapply(object, class))) != 1) .throw_error("List elements of different class detected") ##deal with RLum.Data.Spectrum lists if(inherits(object, "list") && all(sapply(object, class) == "RLum.Data.Spectrum")){ temp <- lapply(object, function(o){ if (length(o@data) < 2) { .throw_error("'object' contains no data") } ##get x-axis x <- as.numeric(rownames(o@data)) rownames(o@data) <- NULL ##set frame if(is.null(frame)){ frame <- 1:ncol(o@data) }else{ .validate_class(frame, c("integer", "numeric"), extra = "NULL") if(max(frame) > ncol(o@data)|| min(frame) < 1){ .throw_error("Invalid 'frame', allowed values range from 1 to ", ncol(o@data)) } } ##get frame temp_frame <- lapply(frame, function(f) cbind(x, o@data[,f])) names(temp_frame) <- paste0("Frame: ", frame) return(temp_frame) }) ##set object name names(temp) <- paste0("ALQ: ", 1:length(temp), " ") ##unlist, now we have what we want object <- unlist(temp, use.names = TRUE, recursive = FALSE) names(object) <- gsub(" .", names(object), replacement = " | ", fixed = TRUE) rm(temp) } ##handle a single matrix that may have different columns if(inherits(object, "matrix") && ncol(object) > 2){ rownames(object) <- NULL ##set frame if(is.null(frame)){ frame <- 1:(ncol(object) - 1) }else{ .validate_class(frame, c("integer", "numeric"), extra = "NULL") if(max(frame) > (ncol(object)-1) || min(frame) < 1){ .throw_error("Invalid 'frame', allowed values range from 1 to ", ncol(object) - 1) } } temp <- lapply(frame +1 , function(x) cbind(object[,1],object[,x])) names(temp) <- paste0("Frame: ",frame) object <- temp rm(temp) } ##now treat different lists, the aim is to have a list of 2-column matrices ##we have two types of lists, # Self-call ----------------------------------------------------------------------------------- if(inherits(object, "list")){ ##get argument list args_list <- list(...) ##recycle arguments if(!"mtext" %in% names(args_list)){ mtext <- names(object) }else{ mtext <- .listify(args_list$mtext, length(object)) args_list$mtext <- NULL } ##run over the list results <- lapply(1:length(object), function(o){ do.call(fit_EmissionSpectra, args = c( list( object = object[[o]], start_parameters = start_parameters, n_components = n_components, sub_negative = sub_negative, input_scale = input_scale, method_control = method_control, frame = frame, mtext = mtext[[o]]), verbose = verbose, plot = plot, args_list) ) }) ##merge output and return return(merge_RLum(results)) } # Start main core ----------------------------------------------------------------------------- if (ncol(object) < 2) { .throw_error("'object' should have at least two columns") } ##extract matrix for everything below m <- object[,1:2] ##replace all negative values if(!is.null(sub_negative)) m[m[,2] < 0,2] <- sub_negative ##output if(verbose){ cat("\n[fit_EmissionSpectra()]\n") cat("\n>> Treating dataset >>",frame,"<<\n") } ##check the scale if(is.null(input_scale)){ ##values above 30 are unlikely, means its likely that we have a wavelength scale if(max(m[,1]) > 30){ if(verbose) cat(">> Wavelength scale detected ...\n") m <- convert_Wavelength2Energy(m, order = TRUE) if(verbose) cat(">> Wavelength to energy scale conversion ... \t[OK]\n") } }else if(input_scale == "wavelength"){ m <- convert_Wavelength2Energy(m, order = TRUE) if(verbose) cat(">> Wavelength to energy scale conversion ... \t[OK]\n") } # Settings ------------------------------------------------------------------------------------ ##create peak finding function ... this helps to get good start parameters ##https://grokbase.com/t/r/r-help/05bqza71c4/r-finding-peaks-in-a-simple-dataset-with-r ##https://stat.ethz.ch/pipermail/r-help/2005-November/thread.html ##author: Petr Pikal in 2004; with modifications by Sebastian Kreutzer .peaks <- function(x, span, size = nrow(m)) { z <- stats::embed(x, span) s <- span %/% sample(1:4, size = 1) ##the part `ceiling(...)` scales the entire algorithm v <- max.col(z, ties.method = "first") == ceiling(10^(3 - log10(nrow(m)))) + s result <- c(rep(FALSE, s), v) which(result[1:(length(result) - s)]) } ##set fit function x <- 0 #cheat R check routine fit_formula <- function(n.components) { sigma <- paste0("sigma.",1:n.components) mu <- paste0("mu.",1:n.components) C <- paste0("C.",1:n.components) stats::as.formula( paste0("y ~ ", paste(C," * 1/(",sigma," * sqrt(2 * pi)) * exp(-0.5 * ((x - ",mu,")/",sigma,")^2)", collapse = " + "))) } # Fitting ------------------------------------------------------------------------------------- ## method_control -------- method_control <- modifyList(x = list( max.runs = 10000, graining = 15, norm = TRUE, export.plot.data = FALSE, trace = FALSE ), val = method_control) # set data.frame ------------------------------------------------------------------------------ df <- data.frame(x = m[,1], y = m[,2]) ##normalise values, it is just easier if(method_control$norm[1]) df[["y"]] <- df[["y"]]/max(m[,2]) ##normalise values, it is just easier ## check graining parameter if (method_control$graining >= nrow(m)) .throw_error("method_control$graining cannot exceed the ", "available channels (", nrow(m) ,")") ##initialise objects success_counter <- 0 run <- 0 fit <- list() mu <- C <- sigma <- NA R2 <- SSR <- SST <- R2adj <- NA ## (WHILE LOOP START) ------- ##run iterations while(success_counter < 1000 && run < method_control$max.runs){ ##try to find start parameters ##identify peaks id_peaks <- .peaks(m[,2], sample(method_control$graining[1]:(nrow(m) - 1), 1)) ##make sure that we do not end up in an endless loop if(length(id_peaks) == 0){ if (verbose) cat("\r>> Searching components ... \t\t\t[-]") run <- run + 1 next() } ## set start parameters for fitting -------- mu <- m[id_peaks,1] if(!is.null(start_parameters)) mu <- c(sort(start_parameters), mu[-c(1:length(start_parameters))]) ## limit the number of components if(!is.null(n_components[1])) mu <- mu[seq(1,length(mu), length.out = n_components[1])] sigma <- rep(sample(0.01:10,1),length(mu)) C <- rep(max(df[[2]])/2, length(mu)) names(mu) <- paste0("mu.", 1:length(mu)) names(sigma) <- paste0("sigma.", 1:length(mu)) names(C) <- paste0("C.", 1:length(mu)) ##run fitting using the Levenberg-Marquardt algorithm fit_try <- try(minpack.lm::nlsLM( formula = fit_formula(n.components = length(mu)), data = df, start = c(sigma, mu, C), trace = method_control$trace, lower = rep(0, 3 * length(mu)), upper = c( rep(1000, length(mu)), rep(max(df[[1]]), length(mu)), rep(max(df[[2]]), length(mu))), control = minpack.lm::nls.lm.control(maxiter = 500) ), silent = TRUE) ##handle output if (class(fit_try)[1] != "try-error") { success_counter <- success_counter + 1 fit[[success_counter]] <- fit_try if (verbose) cat("\r>> Searching components ... \t\t\t[/]") } else{ if (verbose) cat("\r>> Searching components ... \t\t\t[\\]") } ##update run counter run <- run + 1 } ## handle the output if (verbose) { cat("\r>> Searching components ... \t\t\t", if (length(fit) > 0) "[OK]" else "[FAILED]") } ## store the values that will be used when plotting h <- 4.135667662e-15 # eV * s c <- 299792458e+09 # nm/s df_plot <- data.frame(ENERGY = m[, 1], WAVELENGTH = h * c / m[, 1]) ##Extract best fit values ##TODO ... should be improved, its works, but maybe there are better solutions if (length(fit) != 0) { ##obtain the fit with the best fit best_fit <- vapply(fit, function(x) sum(residuals(x) ^ 2), numeric(1)) fit <- fit[[which.min(best_fit)]] df_plot$SUM <- predict(fit) ## more parameters SSR <- min(best_fit) SST <- sum((df[[2]] - mean(df[[2]]))^2) R2 <- 1 - SSR/SST R2adj <- ((1 - R2) * (nrow(df) - 1)) / (nrow(df) - length(coef(fit)) - 1) }else{ fit <- NA } ## Extract values of components ------------------------------------------- m_coef <- NA if(!is.na(fit[1]) && is(fit, "nls")){ ##extract values we need only m_coef <- summary(fit)$coefficients m_coef <- matrix( data = c( as.numeric(m_coef[grepl(pattern = "mu", x = rownames(m_coef), fixed = TRUE),1:2]), as.numeric(m_coef[grepl(pattern = "sigma", x = rownames(m_coef), fixed = TRUE),1:2]), as.numeric(m_coef[grepl(pattern = "C", x = rownames(m_coef), fixed = TRUE),1:2]) ), ncol = 6 ) ##set colnames colnames(m_coef) <- c("mu", "SE(mu)", "sigma", "SE(sigma)", "C", "SE(C)") ##order by sigma m_coef <- m_coef[order(m_coef[,1]),, drop = FALSE] ##extract single values, we need this later mu <- m_coef[,"mu"] sigma <- m_coef[,"sigma"] C <- m_coef[,"C"] ## evaluate the components at the given points for (i in 1:length(mu)) { df_plot[[paste0("COMP_", i)]] <- C[i] * dnorm(df_plot$ENERGY, mu[i], sigma[i]) } } # Terminal output ----------------------------------------------------------------------------- if(verbose && !is.na(m_coef[1])){ cat(paste0("\n\n>> Fitting results (",length(mu), " component model):\n")) cat("-------------------------------------------------------------------------\n") print(m_coef) cat("-------------------------------------------------------------------------") cat(paste0("\nSE: standard error | SSR: ", format(min(best_fit), scientific=TRUE, digits = 4), "| R^2: ", round(R2,3), " | R^2_adj: ", round(R2adj,4))) cat("\n(use the output in $fit for a more detailed analysis)\n\n") } ## Plotting --------------------------------------------------------------- if(plot){ ##get colour values col <- get("col", pos = .LuminescenceEnv)[-1] ##plot settings plot_settings <- modifyList(x = list( xlab = "Energy [eV]", ylab = "Luminescence [a.u.]", main = "Emission Spectrum Deconvolution", xlim = range(df[[1]]), ylim = range(df[[2]]), log = "", mtext = "", legend = TRUE, legend.pos = "topright", legend.text = c("sum", paste0("c",1:length(mu),": ", round(mu,2), " eV")) ), val = list(...)) if (!is.na(fit[1]) && !inherits(fit, "try-error")) { ##make sure that the screen closes if something is wrong on.exit(graphics::close.screen(n = c(1,2)), add = TRUE) ##set split screen settings graphics::split.screen(rbind( c(0.1,1,0.32, 0.98), c(0.1,1,0.1, 0.315))) ##SCREEN 1 ---------- graphics::screen(1) par(mar = c(0, 4, 3, 4)) plot( df, pch = 20, xlab = plot_settings$xlab, ylab = plot_settings$ylab, xlim = plot_settings$xlim, ylim = plot_settings$ylim, main = plot_settings$main, col = rgb(0, 0, 0, .6), xaxt = "n", yaxt = "n", log = plot_settings$log ) ## add axis normalised axis(side = 2, at = axTicks(side = 2), labels = c(axTicks(2))) ## add axis with real count vales if(method_control$norm[1]) { axis( side = 2, axTicks(side = 2)[-1], labels = format( max(m[, 2]) * axTicks(side = 2)[-1], digit = 1, scientific = TRUE ), line = 0.8, cex.axis = 0.7, tick = FALSE ) } ##plot sum curve lines(x = df_plot$ENERGY, y = df_plot$SUM, col = col[1], lwd = 1.5) ##add mtext mtext(side = 3, text = plot_settings$mtext) ##add components first.comp.idx <- grep("COMP_", colnames(df_plot))[1] - 1 for(i in 1:length(mu)){ lines(df_plot$ENERGY, df_plot[[first.comp.idx + i]], col = col[i + 1]) } ##add legend if(plot_settings$legend){ legend( plot_settings$legend.pos, legend = plot_settings$legend.text, lwd = 1, col = col[1:(length(mu) + 2)], bty = "n" ) } ## SCREEN 2 ----- graphics::screen(2) par(mar = c(4, 4, 0, 4)) plot(NA, NA, ylim = range(residuals(fit)), xlab = plot_settings$xlab, type = "b", pch = 20, yaxt = "n", xlim = plot_settings$xlim, ylab = "", col = rgb(0,0,0,.6), log = ifelse(grepl(plot_settings$log[1], pattern = "x", fixed = TRUE), "x", "") ) ## add one axis label axis(side = 2, at = 0, labels = 0) ## add ± 5 line polygon(x = c(df[[1]], rev(df[[1]])), y = c(df[[2]] * 1.1 - df[[2]], rev(df[[2]] * 0.9 - df[[2]])), border = FALSE, col = rgb(0.8,0.8,0.8)) ## add points points(df[[1]],residuals(fit), pch = 20, col = rgb(0,0,0,0.3)) ## add zero line abline(h = 0, lty = 2) ##add wavelength axis h <- 4.135667662e-15 #eV * s c <- 299792458e+09 #nm/s axis( side = 1, labels = paste0("(",round((h * c) / axTicks(side = 3), 0), " nm)"), at = axTicks(side = 3), cex.axis = .7, line = .8, tick = FALSE ) } else { # the fit failed ##provide control plot plot(df, main = "fit_EmissionSpectra() - control plot") ##abline abline(v = mu, lty = 2) ##add information mtext(side = 3, text = "(dashed lines indicate identified peaks)") ##add components for(i in 1:length(mu)){ curve( (C[i] * 1 / (sigma[i] * sqrt(2 * pi)) * exp(-0.5 * ((x - mu[i])/sigma[i])^2)), add = TRUE, col = i ) } } }##if plot ## Output ----------------------------------------------------------------- if (!method_control$export.plot.data) { df_plot <- NA } results <- set_RLum( class = "RLum.Results", data = list(data = m_coef, fit = fit, fit_info = list( SSR = SSR, SST = SST, R2 = R2, R2adj = R2adj), df_plot = list(df_plot) ), info = list(call = sys.call()) ) ##return return(results) } Luminescence/R/plot_GrowthCurve.R0000644000176200001440000001425514762554470016552 0ustar liggesusers#' @title Fit and plot a dose-response curve for luminescence data (Lx/Tx against dose) #' #' @description #' #' A dose-response curve is produced for luminescence measurements using a #' regenerative or additive protocol as implemented in [fit_DoseResponseCurve] #' and [plot_DoseResponseCurve] #' #' @param sample [data.frame] (**required**): #' data frame with columns for `Dose`, `LxTx`, `LxTx.Error` and `TnTx`. #' The column for the test dose response is optional, but requires `'TnTx'` as #' column name if used. For exponential fits at least three dose points #' (including the natural) should be provided. #' #' @param mode [character] (*with default*): #' selects calculation mode of the function. #' - `"interpolation"` (default) calculates the De by interpolation, #' - `"extrapolation"` calculates the equivalent dose by extrapolation (useful for MAAD measurements) and #' - `"alternate"` calculates no equivalent dose and just fits the data points. #' #' Please note that for option `"interpolation"` the first point is considered #' as natural dose #' #' @param fit.method [character] (*with default*): #' function used for fitting. Possible options are: #' - `LIN`, #' - `QDR`, #' - `EXP`, #' - `EXP OR LIN`, #' - `EXP+LIN`, #' - `EXP+EXP`, #' - `GOK`, #' - `LambertW` #' #' See details in [fit_DoseResponseCurve]. #' #' @param output.plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param output.plotExtended [logical] (*with default*): #' If' `TRUE`, 3 plots on one plot area are provided: #' 1. growth curve, #' 2. histogram from Monte Carlo error simulation and #' 3. a test dose response plot. #' #' If `FALSE`, just the growth curve will be plotted. #' #' @param plot_singlePanels [logical] (*with default*): #' single plot output (`TRUE/FALSE`) to allow for plotting the results in #' single plot windows. Requires `plotExtended = TRUE`. #' #' @param cex.global [numeric] (*with default*): #' global scaling factor. #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param n.MC [integer] (*with default*): #' number of MC runs for error calculation. #' #' @param ... Further arguments to [fit_DoseResponseCurve] (`fit_weights`, #' `fit_bounds`, `fit.force_through_origin`, `fit.includingRepeatedRegPoints`, #' `fit.NumberRegPoints`, `fit.NumberRegPointsReal`, `n.MC`, #' `txtProgressBar`) and graphical parameters to be passed (supported: #' `xlim`, `ylim`, `main`, `xlab`, `ylab`). #' #' @return #' Along with a plot (if wanted) the `RLum.Results` object produced by #' [fit_DoseResponseCurve] is returned. #' #' @section Function version: 1.2.1 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Michael Dietze, GFZ Potsdam (Germany) \cr #' Marco Colombo, Institute of Geography, Heidelberg University (Germany) #' #' @references #' #' Berger, G.W., Huntley, D.J., 1989. Test data for exponential fits. Ancient TL 7, 43-46. #' #' Guralnik, B., Li, B., Jain, M., Chen, R., Paris, R.B., Murray, A.S., Li, S.-H., Pagonis, P., #' Herman, F., 2015. Radiation-induced growth and isothermal decay of infrared-stimulated luminescence #' from feldspar. Radiation Measurements 81, 224-231. #' #' Pagonis, V., Kitis, G., Chen, R., 2020. A new analytical equation for the dose response of dosimetric materials, #' based on the Lambert W function. Journal of Luminescence 225, 117333. \doi{10.1016/j.jlumin.2020.117333} #' #' @seealso [fit_DoseResponseCurve], [plot_DoseResponseCurve] #' #' @examples #' #' ##(1) plot growth curve for a dummy dataset #' data(ExampleData.LxTxData, envir = environment()) #' plot_GrowthCurve(LxTxData) #' #' ##(1b) horizontal plot arrangement #' layout(mat = matrix(c(1,1,2,3), ncol = 2)) #' plot_GrowthCurve(LxTxData, plot_singlePanels = TRUE) #' #' ##(2) plot the growth curve with pdf output - uncomment to use #' ##pdf(file = "~/Desktop/Growth_Curve_Dummy.pdf", paper = "special") #' plot_GrowthCurve(LxTxData) #' ##dev.off() #' #' ##(3) plot the growth curve with pdf output - uncomment to use, single output #' ##pdf(file = "~/Desktop/Growth_Curve_Dummy.pdf", paper = "special") #' temp <- plot_GrowthCurve(LxTxData, plot_singlePanels = TRUE) #' ##dev.off() #' #' ##(4) plot resulting function for given interval x #' x <- seq(1,10000, by = 100) #' plot( #' x = x, #' y = eval(temp$Formula), #' type = "l" #' ) #' #' ##(5) plot using the 'extrapolation' mode #' LxTxData[1,2:3] <- c(0.5, 0.001) #' print(plot_GrowthCurve(LxTxData, mode = "extrapolation")) #' #' ##(6) plot using the 'alternate' mode #' LxTxData[1,2:3] <- c(0.5, 0.001) #' print(plot_GrowthCurve(LxTxData, mode = "alternate")) #' #' @md #' @export plot_GrowthCurve <- function( sample, mode = "interpolation", fit.method = "EXP", output.plot = TRUE, output.plotExtended = TRUE, plot_singlePanels = FALSE, cex.global = 1, verbose = TRUE, n.MC = 100, ... ) { .set_function_name("plot_GrowthCurve") on.exit(.unset_function_name(), add = TRUE) ## deprecated argument extraArgs <- list(...) if ("output.plotExtended.single" %in% names(extraArgs)) { plot_singlePanels <- extraArgs$output.plotExtended.single .throw_warning("'output.plotExtended.single' is deprecated, use ", "'plot_singlePanels' instead") } if ("NumberIterations.MC" %in% names(extraArgs)) { n.MC <- extraArgs$NumberIterations.MC .throw_warning("'NumberIterations.MC' is deprecated, use ", "'n.MC' instead") } ## input validation .validate_logical_scalar(output.plot) .validate_logical_scalar(output.plotExtended) .validate_logical_scalar(plot_singlePanels) .validate_logical_scalar(verbose) .validate_positive_scalar(cex.global) ## remaining input validation occurs inside the fitting function fit <- fit_DoseResponseCurve(sample, mode, fit.method, verbose = verbose, n.MC = n.MC, ...) if (is.null(fit)) { if (verbose) message("[plot_GrowthCurve()] Fitting failed, no plot possible") return(NULL) } if (output.plot) { plot_DoseResponseCurve(fit, plot_extended = output.plotExtended, plot_singlePanels = plot_singlePanels, cex.global = cex.global, verbose = verbose, ...) } invisible(fit) } Luminescence/R/github.R0000644000176200001440000001563414762554470014521 0ustar liggesusers# ------------------------------------------------------------------------ # Author: Christoph Burow # Affiliation: University of Cologne # Date: 15/01/2019 # API version: v3 # Reference: https://docs.github.com/v3/ # ------------------------------------------------------------------------ #' GitHub API #' #' R Interface to the GitHub API v3. #' #' These functions can be used to query a specific repository hosted on GitHub. \cr #' #' #' @param user [character] (*with default*): #' GitHub user name (defaults to `'r-lum'`). #' #' @param repo [character] (*with default*): #' name of a GitHub repository (defaults to `'luminescence'`). #' #' @param branch [character] (*with default*): #' branch of a GitHub repository (defaults to `'master'`). #' #' @param n [integer] (*with default*): #' number of commits returned (defaults to 5). #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @author Christoph Burow, University of Cologne (Germany) #' #' @section Function version: 0.1.0 #' #' @references #' #' GitHub Developer API v3. [https://docs.github.com/v3/](), last accessed: 10/01/2017. #' #' @examples #' #' \dontrun{ #' github_branches(user = "r-lum", repo = "luminescence") #' github_issues(user = "r-lum", repo = "luminescence") #' github_commits(user = "r-lum", repo = "luminescence", branch = "master", n = 10) #' } #' #' @md #' @name GitHub-API NULL # COMMITS ----------------------------------------------------------------- #' @rdname GitHub-API #' #' @details #' `github_commits` lists the most recent `n` commits of a specific branch of a repository. #' #' @return #' `github_commits`: [data.frame] with columns: #' #' \tabular{ll}{ #' `[ ,1]` \tab SHA \cr #' `[ ,2]` \tab AUTHOR \cr #' `[ ,3]` \tab DATE \cr #' `[ ,4]` \tab MESSAGE \cr #' } #' #' @md #' @export github_commits <- function(user = "r-lum", repo = "luminescence", branch = "master", n = 5) { .set_function_name("github_commits") on.exit(.unset_function_name(), add = TRUE) # fetch available branches and check if provided branch exists branches <- github_branches(user, repo) if (!any(grepl(branch, branches$BRANCH))) .throw_error("Branch '", branch, "' does not exist") # build URL and retrieve content sha <- branches$SHA[grep(paste0("^", branch, "$"), branches$BRANCH)] url <- paste0("https://api.github.com/repos/", user, "/", repo, "/commits?", "per_page=", n, "&sha=", sha) content <- .github_getContent(url) # format output as data.frame output <- do.call(rbind, lapply(content, function(x) { data.frame(SHA = x$sha, AUTHOR = x$commit$author$name, DATE = x$commit$author$date, MESSAGE = x$commit$message, stringsAsFactors = FALSE) })) return(output) } # BRANCHES ---------------------------------------------------------------- #' @rdname GitHub-API #' #' @details #' `github_branches` can be used to list all current branches of a #' repository and returns the corresponding SHA hash as well as an installation #' command to install the branch in R via the 'devtools' package. #' #' @return #' `github_branches`: [data.frame] with columns: #' #' \tabular{ll}{ #' `[ ,1]` \tab BRANCH \cr #' `[ ,2]` \tab SHA \cr #' `[ ,3]` \tab INSTALL \cr #' } #' #' @md #' @export github_branches <- function(user = "r-lum", repo = "luminescence") { .set_function_name("github_branches") on.exit(.unset_function_name(), add = TRUE) .validate_class(user, "character") .validate_length(user, 1) .validate_class(repo, "character") .validate_length(repo, 1) # build URL and retrieve content url <- paste0("https://api.github.com/repos/", user, "/", repo, "/branches") content <- .github_getContent(url) # extract relevant information from server response branches <- sapply(content, function(x) x$name) sha <- sapply(content, function(x) x$commit$sha) # format output as data.frame output <- data.frame( BRANCH = branches, SHA = sha, INSTALL = paste0("devtools::install_github('r-lum/luminescence@", branches, "')"), stringsAsFactors = FALSE ) return(output) } # ISSUES ------------------------------------------------------------------ #' @rdname GitHub-API #' #' @details #' `github_issues` lists all open issues for a repository in valid YAML. #' #' @return #' `github_commits`: Nested [list] with `n` elements. #' Each commit element is a list with elements: #' #' \tabular{ll}{ #' `[[1]]` \tab NUMBER \cr #' `[[2]]` \tab TITLE \cr #' `[[3]]` \tab BODY \cr #' `[[4]]` \tab CREATED \cr #' `[[5]]` \tab UPDATED \cr #' `[[6]]` \tab CREATOR \cr #' `[[7]]` \tab URL \cr #' `[[8]]` \tab STATUS \cr #' } #' #' @md #' @export github_issues <- function(user = "r-lum", repo = "luminescence", verbose = TRUE) { .set_function_name("github_issues") on.exit(.unset_function_name(), add = TRUE) .validate_class(user, "character") .validate_length(user, 1) .validate_class(repo, "character") .validate_length(repo, 1) # build URL and retrieve content url <- paste0("https://api.github.com/repos/", user,"/", repo, "/issues") content <- .github_getContent(url) # format output as nested list issues <- lapply(content, function(x) { list( NUMBER = x$number, TITLE = x$title, BODY = gsub("\n", "", x$body), CREATED = x$created_at, UPDATED = x$updated_at, CREATOR = x$user$login, URL = x$url, STATUS = x$state, MILESTONE = x$milestone$title) }) # custom printing of the issues list, as print.list produces unreadable # console output if (verbose) { tmp <- lapply(issues, function(x) { # limit width of description text DESCRIPTION <- "" for (i in seq_len(ceiling(nchar(x$BODY) / 100))) DESCRIPTION <- paste(DESCRIPTION, " ", substr(x$BODY, i*100-99, i*100), "\n") # print to console in valid YAML cat(paste0("---\n", 'title: "', x$TITLE, '"', "\n", "number: ", x$NUMBER, "\n", 'url: "', x$URL, '"', "\n", "created: ", x$CREATED, "\n", "updated: ", x$UPDATED, "\n", "creator: ", x$CREATOR, "\n", "status: ", x$STATUS, "\n", 'milestone: "', x$MILESTONE, '"', "\n", "description: >\n", DESCRIPTION, "\n\n\n")) }) } # return invisible as we explicitly print the output invisible(issues) } # HELPER ------------------------------------------------------------------ # This function queries the URL, checks the server response and returns # the content. .github_getContent <- function(url) { response <- httr::GET(url, httr::accept_json()) # nocov start if (httr::status_code(response) != 200) .throw_error("Contacting ", url, " returned status code ", httr::status_code(response)) # nocov end content <- httr::content(response) return(content) } Luminescence/R/get_Quote.R0000644000176200001440000001176614762554470015175 0ustar liggesusers#' Function to return essential quotes #' #' This function returns one of the collected essential quotes in the #' growing library. If called without any parameters, a random quote is #' returned. #' #' @param ID [character] (*optional*): quote ID to be returned. #' #' @param separated [logical] (*with default*): return result in separated form. #' #' @return Returns a character with quote and respective (false) author. #' #' @section Function version: 0.1.5 #' #' @author Quote credits: Michael Dietze, GFZ Potsdam (Germany), Sebastian Kreutzer, Geography & Earth Science, Aberystwyth University (United Kingdom), Dirk Mittelstraß, TU Dresden (Germany), Jakob Wallinga (Wageningen University, Netherlands) #' #' @examples #' #' ## ask for an arbitrary quote #' get_Quote() #' #' @md #' @export get_Quote <- function( ID, separated = FALSE ) { ## definition of the ever growing quote data set quotes <- rbind( c("Anonymous student hotel employee", "Let me double check this."), c("The ordinary reviewer", "I love it when a plan comes together."), c("A tunnelling electron", "God does not play dice."), c("Goldfinger", "You cannot get this machine better and cheaper than from us."), c("A PhD supervisor", "Live long and in prosper."), c("A PhD supervisor", "You are not depressive, you simply have a crappy life."), c("A trapped charge", "I want to break free."), c("The R-package Luminescence manual", "Call unto me, and I will answer thee, and will shew thee great things, and difficult, which thou knowest not."), c("A stimulated feldspar grain", "I'm so excited and I just can't hide it."), c("The true age", "How many roads..."), c("The undecided OSL component", "Should I stay or should I go?"), c("A fluvially transported quartz grain at night", "Always look at the bright side of life."), c("An arctic sediment outcrop", "Marmor, Stein und Eisen bricht..."), c("A common luminescence reader customer", "If anything can go wrong, it will."), c("A blue LED to a trapped electron", "Resistance is futile."), c("A trapped electron to a yellow LED", "Well, that's all you've got?"), c("A weathering rock", "Who wants to live forever?"), c("A new pIRIR derivative", "20,000 miles below the sea."), c("Robert Oppenheimer", "I want this thing to work by just pressing one button."), c("An arbitrary member of the CRAN team", "No shirt, no shoes, no service!"), c("Rubber mallet to steel cylinder", "Let's rock and roll."), c("A data import function", "Better late than never."), c("A luminescence lab staff member to its customer", "Tell me the age, I tell you the price."), c("The NSA", "O'zapft is."), c("The natural dose", "You only live once."), c("A Windows user", "An apple a day keeps the doctor away."), c("The authors of sTeve", "We love to entertain you."), c("Any arbitrary independent OSL device manufacturer", "Sure it will work, it was me who built it!"), c("Response to the reviewer", "You are right, it was just a guess."), c("An aliquot disc", "The answer [...] is: 48"), c("Push Pin", "Made of used sample carriers"), c("A motivated R-Team member", "We are doing this not just for statistical reasons, there is real science behind it!"), c("An unbiased reviewer", "The data is too poor to be published in QG, try a higher ranked journal."), c("R Team member, asked about statistical details", "No idea, I'm just here for the visualisation."), c("An arbitrary unexperienced RLum-user", "Little by little, the bird builds its nest."), c("The answer to life, the universe and everything", "get_rightAnswer()"), c("Der Tatortreiniger", "Dreck ist nur Materie am falschen Ort."), c("Die Ex vom Tatortreiniger", "Das Ziel ist im Weg."), c("Bright grain to dim grains", "I'm so shiny!"), c("Fast component to slow component", "Life is short!"), c("Fast component to slow component", "What are you waiting for?"), c("Violet photon to deep trap electron", "Today I'm kicking you out of your comfort zone!"), c("Deep trap electron to infrared photon", "Don't bother me, I need to rest."), c("A single grain", "I feel so lonley."), c("Luminescence data to Bayesian process", "Don't you ever touch me again."), c("Quartz grain to heating plate", "Go ahead, I need a phase change."), c("Photon to electron", "I am in charge!"), c("You cannot spell 'data analysis' without 'daily satan'"), c("Bright grain to dim grain", "Don't you get it?") ) ## Check input data if(missing(ID) == TRUE) { ID <- sample(x = seq(from = 1, to = nrow(quotes)), size = 1) } ## check for correct ID and generate qoute if(length(ID) < 1 | ID > nrow(quotes)) { quote.out <- "Sorry, but this was an impossible task!" } else { ## generate qoute(s) if(separated == FALSE) { quote.out <- paste(quotes[ID,1], ": '", quotes[ID,2], "'", sep = "") } else { quote.out <- quotes[ID,] } } ## return quotes return(quote.out) } Luminescence/R/plot_RLum.Data.Curve.R0000644000176200001440000001403114762554470017075 0ustar liggesusers#' @title Plot function for an RLum.Data.Curve S4 class object #' #' @description The function provides a standardised plot output for curve data of an #' `RLum.Data.Curve` S4-class object. #' #' @details Only single curve data can be plotted with this function. Arguments #' according to [plot]. #' #' **Curve normalisation** #' #' The argument `norm` normalises all count values. To date the following #' options are supported: #' #' `norm = TRUE` or `norm = "max"`: Curve values are normalised to the highest #' count value in the curve #' #' `norm = "last"`: Curve values are normalised to the last count value #' (this can be useful in particular for radiofluorescence curves) #' #' `norm = "huot"`: Curve values are normalised as suggested by Sébastien Huot #' via GitHub: #' \deqn{ #' y = (observed - median(background)) / (max(observed) - median(background)) #' } #' #' The background of the curve is defined as the last 20% of the count values #' of a curve. #' #' @param object [RLum.Data.Curve-class] (**required**): #' S4 object of class `RLum.Data.Curve` #' #' @param par.local [logical] (*with default*): #' use local graphical parameters for plotting, e.g. the plot is shown in one #' column and one row. If `par.local = FALSE`, global parameters are inherited. #' #' @param norm [logical] [character] (*with default*): whether curve #' normalisation should occur (`FALSE` by default). Alternatively, the function #' offers modes `"max"` (used with `TRUE`), `"last"` and `"huot"`, see details. #' #' @param smooth [logical] (*with default*): #' provides automatic curve smoothing based on the internal function `.smoothing` #' #' @param ... further arguments and graphical parameters that will be passed #' to the `plot` function #' #' @return Returns a plot. #' #' @note Not all arguments of [plot] will be passed! #' #' @section Function version: 0.2.6 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [plot], [plot_RLum] #' #' @keywords aplot #' #' @examples #' #' ##plot curve data #' #' #load Example data #' data(ExampleData.CW_OSL_Curve, envir = environment()) #' #' #transform data.frame to RLum.Data.Curve object #' temp <- as(ExampleData.CW_OSL_Curve, "RLum.Data.Curve") #' #' #plot RLum.Data.Curve object #' plot_RLum.Data.Curve(temp) #' #' #' @md #' @export plot_RLum.Data.Curve<- function( object, par.local = TRUE, norm = FALSE, smooth = FALSE, ... ) { .set_function_name("plot_RLum.Data.Curve") on.exit(.unset_function_name(), add = TRUE) ## Integrity tests ------------------------------------------------------- .validate_class(object, "RLum.Data.Curve") ## check for NA values if(all(is.na(object@data))){ .throw_warning("Curve contains only NA-values, nothing plotted") return(NULL) } if (is.logical(norm)) norm <- norm[1] else norm <- .validate_args(norm, c("max", "last", "huot"), extra = "a logical value") # Preset plot ------------------------------------------------------------- ## preset lab.unit <- "Unknown" lab.xlab <- "Independent" xlab.xsyg <- ylab.xsyg <- NA ##set labelling unit if(!is.na(object@recordType)){ if(object@recordType[1] %in% c("OSL", "IRSL", "RL", "RF", "LM-OSL", "RBR")){ lab.unit <- "s" lab.xlab <- "Stimulation time" } else if(object@recordType[1] == "TL") { lab.unit <- "\u00B0C" lab.xlab <- "Temperature" } } ##XSYG ##check for curveDescripter if ("curveDescripter" %in% names(object@info)) { temp.lab <- strsplit(object@info$curveDescripter, split = ";", fixed = TRUE)[[1]] xlab.xsyg <- temp.lab[1] ylab.xsyg <- temp.lab[2] } ## curve normalisation if (norm == TRUE || norm %in% c("max", "last", "huot")) { object@data[, 2] <- .normalise_curve(object@data[, 2], norm) } ylab <- if (!is.na(ylab.xsyg)) { ylab.xsyg } else if (lab.xlab == "Independent") { "Dependent [unknown]" } else { paste( object@recordType, " [cts/", round(max(object@data[,1]) / length(object@data[,1]),digits = 2) , " ", lab.unit,"]", sep = "" ) } sub <- if ((grepl("TL", object@recordType) == TRUE) & "RATE" %in% names(object@info)) { paste("(",object@info$RATE," K/s)", sep = "") } else if ((grepl("OSL", object@recordType) | grepl("IRSL", object@recordType)) & "interval" %in% names(object@info)) { paste("(resolution: ",object@info$interval," s)", sep = "") } ##deal with additional arguments plot_settings <- modifyList(x = list( main = object@recordType[1], xlab = if (!is.na(xlab.xsyg)) xlab.xsyg else paste0(lab.xlab, " [", lab.unit, "]"), ylab = ylab, sub = sub, cex = 1, type = "l", las = NULL, lwd = 1, lty = 1, pch = 1, col = 1, axes = TRUE, xlim = range(object@data[,1], na.rm = TRUE), ylim = range(object@data[,2], na.rm = TRUE), log = "", mtext = "" ), val = list(...), keep.null = TRUE) ##par setting for possible combination with plot method for RLum.Analysis objects if (par.local) par(mfrow = c(1,1), cex = plot_settings$cex) ##smooth if(smooth){ k <- ceiling(length(object@data[, 2])/100) object@data[, 2] <- .smoothing(object@data[, 2], k = k, align = "center") } ##plot curve plot( object@data[,1], object@data[,2], main = plot_settings$main, xlim = plot_settings$xlim, ylim = plot_settings$ylim, xlab = plot_settings$xlab, ylab = plot_settings$ylab, sub = plot_settings$sub, type = plot_settings$type, log = plot_settings$log, col = plot_settings$col, lwd = plot_settings$lwd, pch = plot_settings$pch, lty = plot_settings$lty, axes = plot_settings$axes, las = plot_settings$las) ##plot additional mtext mtext(plot_settings$mtext, side = 3, cex = plot_settings$cex * 0.8) } Luminescence/R/verify_SingleGrainData.R0000644000176200001440000003757214762554470017624 0ustar liggesusers#' @title Verify single grain data sets and check for invalid grains, i.e. #' zero-light level grains #' #' @description This function tries to identify automatically zero-light level curves (grains) #' from single grain data measurements. #' #' @details #' #' **How does the method work?** #' #' The function compares the expected values (\eqn{E(X)}) and the variance #' (\eqn{Var(X)}) of the count values for each curve. Assuming that the #' background roughly follows a Poisson distribution, the absolute difference #' of both values should be zero or at least around zero as #' #' \deqn{E(x) = Var(x) = \lambda} #' #' Thus the function checks for: #' #' \deqn{abs(E(x) - Var(x)) >= \Theta} #' #' With \eqn{\Theta} an arbitrary, user defined, threshold. Values above the #' threshold indicate curves comprising a signal. #' #' Note: the absolute difference of \eqn{E(X)} and \eqn{Var(x)} instead of the #' ratio was chosen as both terms can become 0 which would result in 0 or `Inf`, #' if the ratio is calculated. #' #' @param object [Risoe.BINfileData-class] or [RLum.Analysis-class] (**required**): #' input object. The function also accepts a list with objects of allowed type. #' #' @param threshold [numeric] (*with default*): #' numeric threshold value for the allowed difference between the `mean` and #' the `var` of the count values (see details) #' #' @param use_fft [logical] (*with default*): applies an additional approach based on [stats::fft]. #' The threshold is fixed and cannot be changed. #' #' @param cleanup [logical] (*with default*): #' if set to `TRUE`, curves/aliquots identified as zero light level curves/aliquots are #' automatically removed. Output is an object as same type as the input, i.e. #' either [Risoe.BINfileData-class] or [RLum.Analysis-class] #' #' @param cleanup_level [character] (*with default*): #' selects the level for the clean-up of the input data sets. #' Two options are allowed: `"curve"` or `"aliquot"`: #' #' - If `"curve"` is selected, every single curve marked as `invalid` is removed. #' - If `"aliquot"` is selected, curves of one aliquot (grain or disc) can be #' marked as invalid, but will not be removed. An aliquot will be only removed #' if all curves of this aliquot are marked as invalid. #' #' @param verbose [logical] (*with default*): #' enable/disables output to the terminal. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param ... further parameters to control the plot output; if selected. #' Supported arguments `main`, `ylim` #' #' @return #' The function returns #' #' -----------------------------------\cr #' `[ NUMERICAL OUTPUT ]`\cr #' -----------------------------------\cr #' #' **`RLum.Results`**-object #' #' **slot:****`@data`** #' #' \tabular{lll}{ #' **Element** \tab **Type** \tab **Description**\cr #' `$unique_pairs` \tab `data.frame` \tab the unique position and grain pairs \cr #' `$selection_id` \tab `numeric` \tab the selection as record ID \cr #' `$selection_full` \tab `data.frame` \tab implemented models used in the baSAR-model core \cr #' } #' #' **slot:****`@info`** #' #' The original function call #' #' **Output variation** #' #' For `cleanup = TRUE` the same object as the input is returned, but cleaned up #' (invalid curves were removed). This means: Either a [Risoe.BINfileData-class] #' or an [RLum.Analysis-class] object is returned in such cases. #' A [Risoe.BINfileData-class] object can be exported to a BINX-file by #' using the function [write_R2BIN]. #' #' @note #' This function can work with [Risoe.BINfileData-class] objects or #' [RLum.Analysis-class] objects (or a list of it). However, the function is #' highly optimised for [Risoe.BINfileData-class] objects as it make sense to #' remove identify invalid grains before the conversion to an #' [RLum.Analysis-class] object. #' #' The function checking for invalid curves works rather robust and it is likely #' that Reg0 curves within a SAR cycle are removed as well. Therefore it is #' strongly recommended to use the argument `cleanup = TRUE` carefully if #' the cleanup works only on curves. #' #' @section Function version: 0.2.5 #' #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' #' @seealso [Risoe.BINfileData-class], [RLum.Analysis-class], [write_R2BIN], #' [read_BIN2R] #' #' @keywords manip datagen #' #' @examples #' #' ##01 - basic example I #' ##just show how to apply the function #' data(ExampleData.XSYG, envir = environment()) #' #' ##verify and get data.frame out of it #' verify_SingleGrainData(OSL.SARMeasurement$Sequence.Object)$selection_full #' #' ##02 - basic example II #' data(ExampleData.BINfileData, envir = environment()) #' id <- verify_SingleGrainData(object = CWOSL.SAR.Data, #' cleanup_level = "aliquot")$selection_id #' #' \dontrun{ #' ##03 - advanced example I #' ##importing and exporting a BIN-file #' #' ##select and import file #' file <- file.choose() #' object <- read_BIN2R(file) #' #' ##remove invalid aliquots(!) #' object <- verify_SingleGrainData(object, cleanup = TRUE) #' #' ##export to new BIN-file #' write_R2BIN(object, paste0(dirname(file),"/", basename(file), "_CLEANED.BIN")) #' } #' #' @md #' @export verify_SingleGrainData <- function( object, threshold = 10, use_fft = FALSE, cleanup = FALSE, cleanup_level = 'aliquot', verbose = TRUE, plot = FALSE, ... ) { .set_function_name("verify_SingleGrainData") on.exit(.unset_function_name(), add = TRUE) ##three types of input are allowed: ##(1) RisoeBINfileData ##(2) RLum.Analysis ##(3) List of RLum.Analysis # Self Call ----------------------------------------------------------------------------------- if(is(object, "list")){ if (length(object) == 0) return(set_RLum(class = if (cleanup) "RLum.Analysis" else "RLum.Results")) results <- .warningCatcher(lapply(1:length(object), function(x) { verify_SingleGrainData( object = object[[x]], threshold = threshold, use_fft = use_fft[1], cleanup = cleanup, cleanup_level = cleanup_level, verbose = verbose, plot = plot, main = paste0("Record #",x) ) })) ##account for cleanup if(cleanup[1]){ results <- .rm_NULL_elements(.rm_nonRLum(results)) if(length(results) == 0) return(NULL) else return(results) }else{ return(merge_RLum(results)) } } ## ------------------------------------------------------------------------ ## input validation .validate_class(object, c("Risoe.BINfileData", "RLum.Analysis")) cleanup_level <- .validate_args(cleanup_level, c("aliquot", "curve")) ## implement Fourier Transform for Frequency Analysis ## inspired by ChatGPT (OpenAI, 2024) .calc_FFT_selection <- function(l, tmp_threshold = threshold/2) { vapply(l, function(x){ x <- x[x>0] tmp_power_spectrum <- Mod(stats::fft(x)^2) tmp_mean_power <- mean(tmp_power_spectrum[-1]) tmp_dominant_power <- max(tmp_power_spectrum[2:(length(tmp_power_spectrum)/2)]) tmp_sel <- tmp_dominant_power > tmp_threshold * tmp_mean_power tmp_sel }, logical(1)) } ##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ##RisoeBINfileData if(inherits(object, "Risoe.BINfileData")){ ##run test on DATA slot ##MEAN + SD temp.results_matrix <- t(vapply(X = object@DATA, FUN = function(x){ c(mean(x), stats::var(x)) }, numeric(2))) ##DIFF temp.results_matrix_RATIO <- temp.results_matrix[,2]/temp.results_matrix[,1] ##SEL temp.results_matrix_VALID <- temp.results_matrix_RATIO > threshold & if(use_fft[1]) .calc_FFT_selection(object@DATA) else TRUE ##combine everything to in a data.frame selection <- data.frame( POSITION = object@METADATA$POSITION, GRAIN = object@METADATA$GRAIN, MEAN = temp.results_matrix[, 1], VAR = temp.results_matrix[, 2], RATIO = temp.results_matrix_RATIO, THRESHOLD = rep_len(threshold, length(object@DATA)), VALID = temp.results_matrix_VALID ) ##get unique pairs for POSITION and GRAIN for VALID == TRUE unique_pairs <- unique( selection[selection[["VALID"]], c("POSITION", "GRAIN")]) if(cleanup_level == "aliquot"){ selection_id <- sort(unlist(lapply(1:nrow(unique_pairs), function(x) { which( .subset2(selection, 1) == .subset2(unique_pairs, 1)[x] & .subset2(selection, 2) == .subset2(unique_pairs, 2)[x] ) }))) }else{ ##reduce data to TRUE selection selection_id <- which(selection[["VALID"]]) } ##select output on the chosen input if(cleanup){ ##selected wanted elements object@DATA <- object@DATA[selection_id] if(length(object@DATA) > 0) { object@METADATA <- object@METADATA[selection_id,] object@METADATA$ID <- 1:length(object@DATA) ##print message selection_id <- .collapse(selection_id, quote = FALSE) if(verbose){ cat(paste0("\n[verify_SingleGrainData()] Risoe.BINfileData object reduced to records: \n", selection_id)) cat("\n\n[verify_SingleGrainData()] Risoe.BINfileData object record index reset.\n") } } else { object <- NULL } ##return return_object <- object }else{ return_object <- set_RLum( class = "RLum.Results", data = list( unique_pairs = unique_pairs, selection_id = selection_id, selection_full = selection), info = list(call = sys.call()) ) } ##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ##RLum.Analysis and list with RLum.Analysis objects ## ... and yes it make sense not to mix that up with the code above }else if(is(object,"RLum.Analysis")){ ##first extract all count values from all curves object_list <- lapply(object@records, function(x){ ##yes, would work differently, but it is faster x@data[,2] }) ##MEAN + SD temp.results_matrix <- lapply(X = object_list, FUN = function(x){ c(mean(x), stats::var(x)) }) temp.results_matrix <- do.call(rbind, temp.results_matrix) ##DIFF temp.results_matrix_RATIO <- temp.results_matrix[,2]/temp.results_matrix[,1] ##SEL temp.results_matrix_VALID <- temp.results_matrix_RATIO > threshold & if(use_fft[1]) .calc_FFT_selection(object_list) else TRUE ##get structure for the RLum.Analysis object temp_structure <- structure_RLum(object, fullExtent = TRUE) ##now we have two cases, depending on where measurement is coming from if (object@originator == "Risoe.BINfileData2RLum.Analysis") { ##combine everything to in a data.frame selection <- data.frame( POSITION = temp_structure$info.POSITION, GRAIN = temp_structure$info.GRAIN, MEAN = temp.results_matrix[, 1], VAR = temp.results_matrix[, 2], RATIO = temp.results_matrix_RATIO, THRESHOLD = rep_len(threshold, length(object_list)), VALID = temp.results_matrix_VALID ) ##get unique pairs for POSITION and GRAIN for VALID == TRUE unique_pairs <- unique( selection[selection[["VALID"]], c("POSITION", "GRAIN")]) } else if (object@originator == "read_XSYG2R") { ##combine everything to in a data.frame selection <- data.frame( POSITION = if(any(grepl(pattern = "position", names(temp_structure)))){ temp_structure$info.position}else{ NA }, GRAIN = NA, MEAN = temp.results_matrix[, 1], VAR = temp.results_matrix[, 2], RATIO = temp.results_matrix_RATIO, THRESHOLD = rep_len(threshold, length(object_list)), VALID = temp.results_matrix_VALID ) ##get unique pairs for POSITION for VALID == TRUE unique_pairs <- unique( selection[["POSITION"]][selection[["VALID"]]]) } else{ .throw_error("Object originator '", object@originator, "' not supported") } ##set up cleanup if(cleanup_level == "aliquot") { if (object@originator == "read_XSYG2R") { if(!is.na(unique_pairs)){ selection_id <- sort(unlist(lapply(1:nrow(unique_pairs), function(x) { which(.subset2(selection, 1) == .subset2(unique_pairs, 1)[x]) }))) }else{ selection_id <- NA } } else if (object@originator == "Risoe.BINfileData2RLum.Analysis") { selection_id <- sort(unlist(lapply(1:nrow(unique_pairs), function(x) { which( .subset2(selection, 1) == .subset2(unique_pairs, 1)[x] & .subset2(selection, 2) == .subset2(unique_pairs, 2)[x] ) }))) } ##make sure that we do not break subsequent code if(length(selection_id) == 0) selection_id <- NA } else{ ##reduce data to TRUE selection selection_id <- which(selection[["VALID"]]) } ##return value ##select output on the chosen input if (cleanup[1] && !anyNA(selection_id)) { ##print message if(verbose && cleanup_level == "curve"){ selection_id_text <- .collapse(selection_id, quote = FALSE) if(selection_id_text == "") selection_id_text <- "" cat(paste0("[verify_SingleGrainData()] RLum.Analysis object reduced to records: ", selection_id_text), "\n") } ##selected wanted elements if (length(selection_id) == 0) { object <- set_RLum( class = "RLum.Analysis", originator = object@originator, protocol = object@protocol, records = list(), info = list( unique_pairs = unique_pairs, selection_id = selection_id, selection_full = selection) ) } else{ object <- set_RLum( class = "RLum.Analysis", records = get_RLum(object, record.id = selection_id, drop = FALSE), info = list( unique_pairs = unique_pairs, selection_id = selection_id, selection_full = selection) ) } ##return return_object <- object }else{ if (anyNA(selection_id)) .throw_warning("'selection_id' is NA, everything tagged for removal") return_object <- set_RLum( class = "RLum.Results", data = list( unique_pairs = unique_pairs, selection_id = selection_id, selection_full = selection), info = list(call = sys.call()) ) ## cleanup means cleanup if(cleanup[1]) return_object <- NULL } } # Plot ---------------------------------------------------------------------------------------- if(plot){ ##set plot settings plot_settings <- modifyList(x = list( main = "Record selection", ylim = range(c(selection[["RATIO"]], threshold * 1.1)) ), val = list(...)) ##plot area plot( NA, NA, xlim = c(1,nrow(selection)), ylim = plot_settings$ylim, log = "y", xlab = "Record index", ylab = "Calculated ratio [a.u.]", main = plot_settings$main ) ##plot points above the threshold points(x = which(selection[["VALID"]]), y = selection[["RATIO"]][selection[["VALID"]]], pch = 20, col = "darkgreen") points(x = which(!selection[["VALID"]]), y = selection[["RATIO"]][!selection[["VALID"]]], pch = 20, col = rgb(0,0,0,0.5)) abline(h = threshold, col = "red", lty = 1, lwd = 2) mtext( side = 3, text = paste0( "(total: ", nrow(selection), " | valid: ", length(which(selection[["VALID"]])), " | invalid: ", length(which(!selection[["VALID"]])), ")"), cex = 0.9 * par()$cex) } # Return -------------------------------------------------------------------------------------- if(is.null(return_object)) .throw_warning("Verification and cleanup removed all records. NULL returned!") return(return_object) } Luminescence/R/calc_OSLLxTxRatio.R0000644000176200001440000004314314762554470016471 0ustar liggesusers#' @title Calculate `Lx/Tx` ratio for CW-OSL curves #' #' @description #' Calculate `Lx/Tx` ratios from a given set of CW-OSL curves assuming late light #' background subtraction. #' #' @details #' The integrity of the chosen values for the signal and background integral is #' checked by the function; the signal integral limits have to be lower than #' the background integral limits. If a [vector] is given as input instead #' of a [data.frame], an artificial [data.frame] is produced. The #' error calculation is done according to Galbraith (2002). #' #' **Please note:** In cases where the calculation results in `NaN` values (for #' example due to zero-signal, and therefore a division of 0 by 0), these `NaN` #' values are replaced by 0. #' #' **`sigmab`** #' #' The default value of `sigmab` is calculated assuming the background is #' constant and **would not** applicable when the background varies as, #' e.g., as observed for the early light subtraction method. #' #' **sig0** #' #' This argument allows to add an extra component of error to the final `Lx/Tx` #' error value. The input will be treated as factor that is multiplied with #' the already calculated `LxTx` and the result is add up by: #' #' \deqn{se(LxTx) = \sqrt(se(LxTx)^2 + (LxTx * sig0)^2)} #' #' #' **background.count.distribution** #' #' This argument allows selecting the distribution assumption that is used for #' the error calculation. According to Galbraith (2002, 2014) the background #' counts may be overdispersed (i.e. do not follow a Poisson distribution, #' which is assumed for the photomultiplier counts). In that case (might be the #' normal case) it has to be accounted for the overdispersion by estimating #' \eqn{\sigma^2} (i.e. the overdispersion value). Therefore the relative #' standard error is calculated as: #' #' - `poisson` #' \deqn{rse(\mu_{S}) \approx \sqrt(Y_{0} + Y_{1}/k^2)/Y_{0} - Y_{1}/k} #' #' - `non-poisson` #' \deqn{rse(\mu_{S}) \approx \sqrt(Y_{0} + Y_{1}/k^2 + \sigma^2(1+1/k))/Y_{0} - Y_{1}/k} #' #' **Please note** that when using the early background subtraction method in #' combination with the 'non-poisson' distribution argument, the corresponding `Lx/Tx` error #' may considerably increase due to a high `sigmab` value. #' Please check whether this is valid for your data set and if necessary #' consider to provide an own `sigmab` value using the corresponding argument `sigmab`. #' #' @param Lx.data [RLum.Data.Curve-class] or [data.frame] (**required**): #' requires a CW-OSL shine down curve (x = time, y = counts) #' #' @param Tx.data [RLum.Data.Curve-class] or [data.frame] (*optional*): #' requires a CW-OSL shine down curve (x = time, y = counts). If no #' input is given the `Tx.data` will be treated as `NA` and no `Lx/Tx` ratio #' is calculated. #' #' @param signal.integral [numeric] (**required**): vector with the limits for the signal integral. #' Can be set to `NA` than now integrals are considered and all other integrals are set to `NA` as well. #' #' @param signal.integral.Tx [numeric] (*optional*): #' vector with the limits for the signal integral for the `Tx`-curve. If #' missing, the value from `signal.integral` is used. #' #' @param background.integral [numeric] (**required**): #' vector with the bounds for the background integral. #' Can be set to `NA` than now integrals are considered and all other integrals are set to `NA` as well. #' #' @param background.integral.Tx [numeric] (*optional*): #' vector with the limits for the background integral for the `Tx` curve. #' If missing, the value from `background.integral` is used. #' #' @param background.count.distribution [character] (*with default*): #' sets the count distribution assumed for the error calculation. #' Possible arguments are `"poisson"` or `"non-poisson"` (default). See #' details for further information. #' #' @param use_previousBG [logical] (*with default*): #' If set to `TRUE` the background of the `Lx`-signal is subtracted also #' from the `Tx`-signal. Please note that in this case separate #' signal integral limits for the `Tx`-signal are not allowed and will be reset. #' #' @param sigmab [numeric] (*optional*): #' option to set a manual value for the overdispersion (for `LnTx` and `TnTx`), #' used for the `Lx/Tx` error calculation. The value should be provided as #' absolute squared count values, e.g. `sigmab = c(300,300)`. #' **Note:** If only one value is provided this value is taken for both (`LnTx` and `TnTx`) signals. #' #' @param sig0 [numeric] (*with default*): #' allow adding an extra component of error to the final `Lx/Tx` error value #' (e.g., instrumental error, see details). #' #' @param digits [integer] (*with default*): #' round numbers to the specified digits. If set to `NULL` no rounding occurs. #' #' @return #' Returns an S4 object of type [RLum.Results-class]. #' #' Slot `data` contains a [list] with the following structure: #' #' **@data** #' ``` #' $LxTx.table (data.frame) #' .. $ LnLx #' .. $ LnLx.BG #' .. $ TnTx #' .. $ TnTx.BG #' .. $ Net_LnLx #' .. $ Net_LnLx.Error #' .. $ Net_TnTx #' .. $ Net_TnTx.Error #' .. $ LxTx #' .. $ LxTx.Error #' $ calc.parameters (list) #' .. $ sigmab.LnTx #' .. $ sigmab.TnTx #' .. $ k #' ``` #' #' **@info** #' ``` #' $ call (original function call) #' ``` #' #' @note #' The results of this function have been cross-checked with the Analyst #' (version 3.24b). Access to the results object via [get_RLum]. #' #' **Caution:** If you are using early light subtraction (EBG), please either provide your #' own `sigmab` value or use `background.count.distribution = "poisson"`. #' #' @section Function version: 0.8.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Data.Curve-class], [Analyse_SAR.OSLdata], [fit_DoseResponseCurve], #' [analyse_SAR.CWOSL] #' #' @references Duller, G., 2018. Analyst v4.57 - User Manual. #' `https://users.aber.ac.uk/ggd`\cr #' #' Galbraith, R.F., 2002. A note on the variance of a background-corrected OSL #' count. Ancient TL, 20 (2), 49-51. #' #' Galbraith, R.F., 2014. A further note on the variance of a #' background-corrected OSL count. Ancient TL, 31 (2), 1-3. #' #' @keywords datagen #' #' @examples #' #' ##load data #' data(ExampleData.LxTxOSLData, envir = environment()) #' #' ##calculate Lx/Tx ratio #' results <- calc_OSLLxTxRatio( #' Lx.data = Lx.data, #' Tx.data = Tx.data, #' signal.integral = c(1:2), #' background.integral = c(85:100)) #' #' ##get results object #' get_RLum(results) #' #' @md #' @export calc_OSLLxTxRatio <- function( Lx.data, Tx.data = NULL, signal.integral, signal.integral.Tx = NULL, background.integral, background.integral.Tx = NULL, background.count.distribution = "non-poisson", use_previousBG = FALSE, sigmab = NULL, sig0 = 0, digits = NULL ) { .set_function_name("calc_OSLLxTxRatio") on.exit(.unset_function_name(), add = TRUE) ## Integrity tests -------------------------------------------------------- .validate_class(Lx.data, c("RLum.Data.Curve", "data.frame", "numeric", "matrix")) if(!is.null(Tx.data)){ ##(a) - check data type if(is(Lx.data)[1]!=is(Tx.data)[1]){ .throw_error("'Lx.data' and 'Tx.data' have different types") } ##(b) - test if data.type is valid in general if(inherits(Lx.data, "RLum.Data.Curve")){ Lx.data <- as(Lx.data, "data.frame") Tx.data <- as(Tx.data, "data.frame") } ##(c) - convert vector to data.frame if necessary if(is(Lx.data)[1] != "data.frame" & is(Lx.data)[1] != "matrix"){ Lx.data <- data.frame(x = 1:length(Lx.data), y = Lx.data) Tx.data <- data.frame(x = 1:length(Tx.data), y = Tx.data) } ##(d) - check if Lx and Tx curves have the same channel length if(length(Lx.data[,2]) != length(Tx.data[,2])) .throw_error("Channel numbers of Lx and Tx data differ") }else{ Tx.data <- data.frame(x = NA,y = NA) ##support RLum.objects if(inherits(Lx.data, "RLum.Data.Curve")){ Lx.data <- as(Lx.data, "data.frame") } ##check for matrix if(is(Lx.data)[1] == "matrix"){ Lx.data <- as.data.frame(Lx.data) } ##no it should be a data.frame, if not, try to produce one if(is(Lx.data)[1]!="data.frame") { Lx.data <- data.frame(x = 1:length(Lx.data),y = Lx.data) } }#endif::missing Tx.data # Alternate mode ---------------------------------------------------------- if (anyNA(c(signal.integral, background.integral))) { signal.integral <- background.integral <- NA LnLx <- sum(Lx.data[,2]) TnTx <- sum(Tx.data[,2]) LnLxTnTx <- data.frame( LnLx = LnLx, LnLx.BG = 0, TnTx = TnTx, TnTx.BG = 0, Net_LnLx = LnLx, Net_LnLx.Error = 0, Net_TnTx = TnTx, Net_TnTx.Error = 0, LxTx = LnLx/TnTx, LxTx.Error = 0) return(set_RLum( class = "RLum.Results", data = list( LxTx.table = LnLxTnTx, calc.parameters = NULL, info = list(call = sys.call()) ))) } # Continue checks --------------------------------------------------------- ##(e) - check if signal integral is valid if(min(signal.integral) < 1 | max(signal.integral>length(Lx.data[,2]))){ .throw_error("'signal.integral' is not valid") } ##(f) - check if background integral is valid if(min(background.integral)<1 | max(background.integral>length(Lx.data[,2]))){ .throw_error("'background.integral' is not valid, max: ", length(Lx.data[, 2])) } ##(g) - check if signal and background integral overlapping if(min(background.integral)<=max(signal.integral)){ .throw_error("'signal.integral' and 'background.integral' overlap") } ##(h) - similar procedure for the Tx limits if(all(c(!is.null(signal.integral.Tx),!is.null(background.integral.Tx)))){ if(use_previousBG){ .throw_warning("With 'use_previousBG = TRUE' independent Lx and Tx ", "integral limits are not allowed. Integral limits ", "of Lx used for Tx.") signal.integral.Tx <- signal.integral background.integral.Tx <- background.integral } if(min(signal.integral.Tx) < 1 | max(signal.integral.Tx>length(Tx.data[,2]))){ .throw_error("'signal.integral.Tx' is not valid") } if(min(background.integral.Tx)<1 | max(background.integral.Tx>length(Tx.data[,2]))){ .throw_error("'background.integral.Tx' is not valid, max: ", length(Tx.data[, 2])) } if(min(background.integral.Tx)<=max(signal.integral.Tx)){ .throw_error("'signal.integral.Tx' and 'background.integral.Tx' overlap") } }else if(!all(c(is.null(signal.integral.Tx),is.null(background.integral.Tx)))){ .throw_error("You have to provide both 'signal.integral.Tx' and ", "'background.integral.Tx'") }else{ signal.integral.Tx <- signal.integral background.integral.Tx <- background.integral } ##check sigmab if (!is.null(sigmab)) { .validate_class(sigmab, "numeric") if (length(sigmab) > 2) { .throw_error("'sigmab' can have at most length 2") } } ##--------------------------------------------------------------------------## ##(2) - read data and produce background subtracted values ## calculate k value - express the background as mutiple value from the number ## of signal integral channels, however, it can be < 1 also n <- length(signal.integral) m <- length(background.integral) k <- m/n n.Tx <- length(signal.integral.Tx) ##use previous BG and account for the option to set different integral limits if(use_previousBG){ m.Tx <- m }else{ m.Tx <- length(background.integral.Tx) } k.Tx <- m.Tx/n.Tx ##LnLx (comments are corresponding variables to Galbraith, 2002) Lx.curve <- Lx.data[,2] Lx.signal <- sum(Lx.curve[signal.integral]) #Y.0 Lx.background <- sum(Lx.curve[background.integral]) #Y.1 Lx.background <- Lx.background*1/k #mu.B LnLx <- Lx.signal - Lx.background ##TnTx Tx.curve <- ifelse(is.na(Tx.data[,1])==FALSE, Tx.data[,2], NA) Tx.signal <- sum(Tx.curve[signal.integral.Tx]) ##use previous BG if(use_previousBG){ Tx.background <- Lx.background }else{ Tx.background <- sum(Tx.curve[background.integral.Tx])*1/k.Tx } TnTx <- (Tx.signal-Tx.background) ##--------------------------------------------------------------------------## ##(3) ## calculate Lx/Tx Errors according Galbraith (2002) and the personal ## communication of Galbraith (2014) via e-mail ## Nomenclature as stated in the articles ##(a) ## set Y.0 (sum OSL signal including the background) and ## Y.1 (total counts over m later channels) Y.0 <- Lx.signal Y.0_TnTx <- Tx.signal Y.1 <- sum(Lx.curve[background.integral]) Y.1_TnTx <- sum(Tx.curve[background.integral.Tx]) ##(b) estimate overdispersion (here called sigmab), see equation (4) in ## Galbraith (2002), Galbraith (2014) ## If else condition for the case that k < 2 if(round(k,digits = 1) >= 2 & ((min(background.integral) + length(signal.integral)*(2+1)) <= length(Lx.curve))){ ##(b)(1)(1) ## note that m = n*k = multiple of background.integral from signal.integral Y.i <- vapply(0:round(k,digits=0), function(i){ sum(Lx.curve[ (min(background.integral)+length(signal.integral)*i): (min(background.integral)+length(signal.integral)+length(signal.integral)*i)]) }, FUN.VALUE = vector(mode = "numeric", length = 1L)) Y.i <- na.exclude(Y.i) sigmab.LnLx <- abs(stats::var(Y.i) - mean(Y.i)) ##sigmab is denoted as sigma^2 = s.Y^2-Y.mean ##therefore here absolute values are given }else{ ## provide warning if m is < 25, as suggested by Rex Galbraith ## low number of degree of freedom if (m < 25) { .throw_warning("Number of background channels for Lx < 25, ", "error estimation might not be reliable") } sigmab.LnLx <- abs((stats::var(Lx.curve[background.integral]) - mean(Lx.curve[background.integral])) * n) } if (round(k.Tx, digits = 1) >= 2 & (( min(background.integral.Tx) + length(signal.integral.Tx) * (2 + 1) ) <= length(Tx.curve))) { ##(b)(1)(1) ## note that m.Tx = n.Tx*k.Tx = multiple of background.integral.Tx from signal.integral.Tx ## also for the TnTx signal Y.i_TnTx <- vapply(0:round(k.Tx, digits = 0), function(i) { sum(Tx.curve[(min(background.integral.Tx) + length(signal.integral.Tx) * i):( min(background.integral.Tx) + length(signal.integral.Tx) + length(signal.integral.Tx) * i )]) }, FUN.VALUE = vector(mode = "numeric", length = 1L)) Y.i_TnTx <- na.exclude(Y.i_TnTx) sigmab.TnTx <- abs(stats::var(Y.i_TnTx) - mean(Y.i_TnTx)) } else{ ## provide warning if m is < 25, as suggested by Rex Galbraith ## low number of degree of freedom if (m.Tx < 25 && use_previousBG == FALSE) { .throw_warning("Number of background channels for Tx < 25, ", "error estimation might not be reliable") } sigmab.TnTx <- abs((stats::var(Tx.curve[background.integral.Tx]) - mean(Tx.curve[background.integral.Tx])) * n.Tx) } ##account for a manually set sigmab value if (!is.null(sigmab)) { if (length(sigmab) == 2) { sigmab.LnLx <- sigmab[1] sigmab.TnTx <- sigmab[2] }else{ sigmab.LnLx <- sigmab[1] sigmab.TnTx <- sigmab[1] } } ##(c) ## Calculate relative error of the background subtracted signal ## according to Galbraith (2002), equation (6) with changes ## from Galbraith (2014), equation 6 ## Discussion with Rex Galbraith via e-mail (2014-02-27): ## Equation 6 is appropriate to be implemented as standard if(background.count.distribution == "poisson"){ ##(c.1) estimate relative standard error for assuming a poisson distribution LnLx.relError <- sqrt((Y.0 + Y.1/k^2))/(Y.0-Y.1/k) ## rse(mu.s) TnTx.relError <- sqrt((Y.0_TnTx + Y.1_TnTx/k^2))/(Y.0_TnTx-Y.1_TnTx/k) }else{ ##(c.2) estimate relative standard error for a non-poisson distribution if(background.count.distribution != "non-poisson"){ .throw_warning("Unknown method for 'background.count.distribution', ", "a non-poisson distribution is assumed") } LnLx.relError <- sqrt(Y.0 + Y.1/k^2 + sigmab.LnLx*(1+1/k))/ (Y.0 - Y.1/k) TnTx.relError <- sqrt(Y.0_TnTx + Y.1_TnTx/k^2 + sigmab.TnTx*(1+1/k))/ (Y.0_TnTx - Y.1_TnTx/k) } ##(d) ##calculate absolute standard error LnLx.Error <- abs(LnLx*LnLx.relError) TnTx.Error <- abs(TnTx*TnTx.relError) ##we do not want to have NaN values, as they are mathematically correct, but make ##no sense and would result in aliquots that become rejected later if(is.nan(LnLx.Error)) LnLx.Error <- 0 if(is.nan(TnTx.Error)) TnTx.Error <- 0 ##combine results LnLxTnTx <- cbind( Lx.signal, Lx.background, Tx.signal, Tx.background, LnLx, LnLx.Error, TnTx, TnTx.Error ) ##--------------------------------------------------------------------------## ##(4) Calculate LxTx error according Galbraith (2014) #transform results in a data.frame LnLxTnTx <- as.data.frame((LnLxTnTx)) colnames(LnLxTnTx)<-c("LnLx", "LnLx.BG", "TnTx", "TnTx.BG", "Net_LnLx", "Net_LnLx.Error", "Net_TnTx", "Net_TnTx.Error") temp <- .calculate_LxTx_error(LnLxTnTx, sig0, digits) calc.parameters <- list( sigmab.LnLx = sigmab.LnLx, sigmab.TnTx = sigmab.TnTx, k = k) ##set results object return(set_RLum( class = "RLum.Results", data = list( LxTx.table = temp, calc.parameters = calc.parameters), info = list(call = sys.call()) )) } Luminescence/R/fit_IsothermalHolding.R0000644000176200001440000003135214762561642017507 0ustar liggesusers#' @title Fit Isothermal Holding Data #' #' @description ##TODO #' #' @details ##TODO #' #' @param data [character] or [data.frame] (**required**): file path or data #' frame with 5 columns named "SAMPLE", "TEMP", "TIME", "LxTx", "LxTx_ERROR". #' #' @param ITL_model [character] (*with default*): model to be fitted, either #' `"GOK"` or `"BTS"`. #' #' @param rhop [numeric] or [RLum.Results-class] (*with default*): a vector #' of rho prime values (one for each sample) or an [RLum.Results-class] object #' produced by [analyse_FadingMeasurement] #' #' @param plot [logical] (*with default*): enable/disable the plot output. #' #' @param verbose [logical] (*with default*): enable/disable output to the #' terminal. #' #' @param txtProgressBar [logical] (*with default*): enable/disable the #' progress bar. Ignored if `verbose = FALSE`. #' #' @param trace [logical] (*with default*): enable/disable tracing during #' the nls fitting ([minpack.lm::nlsLM]). #' #' @param ... further arguments and graphical parameters that will be passed #' to the `plot` function. #' #' @section Function version: 0.1.0 #' #' @author #' Svenja Riedesel, DTU Risø (Denmark)\cr #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Marco Colombo, Institute of Geography, Heidelberg University (Germany) #' #' @keywords datagen internal #' #' @return #' The function returns an [RLum.Results-class] object and an *optional* plot. #' The object returned contains the following elements: #' #' \item{fit}{[list] with the fitted models} #' \item{coefs}{[data.frame] containing the fitted coefficients for the models} #' \item{data}{[data.frame] containing the data used in the fitting process} #' #' @seealso [analyse_ThermochronometryData], [analyse_FadingMeasurement] #' #' @references #' Li, B., Li, S.H., The effect of band-tail states on the #' thermal stability of the infrared stimulated luminescence #' from K-feldspar, Journal of Luminescence 136 (2013) 5–10. #' doi: 10.1016/j.jlumin.2012.08.043 #' #' @examples #' # example code ##TODO #' #' @noRd fit_IsothermalHolding <- function( data, ITL_model = 'GOK', rhop, plot = TRUE, verbose = TRUE, txtProgressBar = TRUE, trace = FALSE, ... ) { .set_function_name("fit_IsothermalHolding") on.exit(.unset_function_name(), add = TRUE) ## TODOs ## - other functions for fitting need to be implemented ## - uncertainties are not yet considered for the fitting, because they are not ## part of the input data. ## - documentation needs to be completed ## - so far non confidence intervals on the fit ... discussion needed ## - the rhop value has uncertainties, which are not yet considered .validate_class(data, c("character", "RLum.Results", "data.frame")) ITL_model <- .validate_args(ITL_model, c("GOK", "BTS")) .validate_class(rhop, c("numeric", "RLum.Results")) .validate_logical_scalar(plot) .validate_logical_scalar(verbose) .validate_logical_scalar(txtProgressBar) if (inherits(data[1], "character")) { records_ITL <- .import_ThermochronometryData(file = data, output_type = "RLum.Results")@data$ITL } else if (inherits(data, "RLum.Results")) { if (data@originator != ".import_ThermochronometryData") { .throw_error("'data' has unsupported originator (expected: ", "'.import_ThermochronometryData', found: '", data@originator, "')") } records_ITL <- data@data$ITL } else if (inherits(data, "data.frame")) { records_ITL <- data } if (!all(colnames(records_ITL) %in% c("SAMPLE", "TEMP", "TIME", "LxTx", "LxTx_ERROR"))) { .throw_error("'data' has the wrong column headers, please check the manual") } ## never show the progress bar if not verbose if (!verbose) { txtProgressBar <- FALSE } ###### --- Extract data from RLum.Results for ITL fitting --- ##### ## get unique sample names; we will use this to filter the data sample_id <- unique(records_ITL[["SAMPLE"]]) ## extract data.frames for each sample with all information df_raw_list <- lapply(sample_id, function(x) records_ITL[records_ITL$SAMPLE == x, ]) ## initialise the progress bar if (txtProgressBar) { num.models <- sum(sapply(df_raw_list, function(x) length(unique(x$TEMP)))) pb <- txtProgressBar(min = 0, max = num.models, char = "=", style = 3) } ###### --- Perform ITL fitting --- ##### # Define variables -------------------------------------------------------- kB <- 8.6173303e-05 # Boltzmann's constant DeltaE <- 1.5 # upper limit of integration (in eV), see Li&Li (2013), p.6 ## get the rhop value from the fading measurement analysis if available if (inherits(rhop, "RLum.Results") && rhop@originator == "analyse_FadingMeasurement") rhop <- rhop@data$rho_prime[[1]] ## allow to control how many random values for the s parameter should be ## generated when fitting the BTS model num_s_values_bts <- list(...)$num_s_values_bts if (!is.null(num_s_values_bts)) { .validate_positive_scalar(num_s_values_bts, int = TRUE) } else { num_s_values_bts <- 1000 } ## Define formulas to fit ------------------------------------------------- ## ## We define each model as a function that describes the right-hand side ## of the formula. This allows us to use the `$value` term in the BTS model ## to extract the solution of the integral, which would otherwise be ## incorrectly interpreted by nlsLM(). f_GOK <- function(A, b, Et, s10, isoT, x) { T_K <- isoT + 273.15 A * exp(-rhop * log(1.8 * 3e15 * (250 + x))^3) * (1 - (1 - b) * 10^s10 * exp(-Et / (kB * T_K)) * x)^(1 / (1 - b)) } f_BTS <- function(A, Eu, Et, s10, isoT, x) { T_K <- isoT + 273.15 exp(-rhop * log(1.8 * 3e15 * (250 + x))^3) * vapply(x, function(t) { stats::integrate(function(Eb) A * exp(-Eb / Eu) * exp(-10^s10 * t * exp(-(Et - Eb) / (kB * T_K))), 0, DeltaE)$value }, numeric(1)) } ## switch the models start <- switch( ITL_model, 'GOK' = list(A = 1, b = 1, Et = 1, s10 = 5), 'BTS' = list(A = 1, Eu = 0.1, Et = 2)) lower <- switch( ITL_model, 'GOK' = c(0, 0, 0, 0), 'BTS' = c(1, 0.3, 1)) upper <- switch( ITL_model, 'GOK' = c(20, Inf, 3, 20), 'BTS' = c(20, 0.5, 3)) ## Fitting ---------------------------------------------------------------- ## we have a double loop situation: we have a list with n samples, and ## each sample has n temperature steps num.fits <- 0 fitted.coefs <- NULL fit_list <- lapply(df_raw_list, function(s){ ## extract temperatures isoT <- unique(s$TEMP) ## run the fitting at each temperature tmp <- lapply(isoT, function(isoT) { ## extract data to fit tmp_fitdata <- s[s$TEMP == isoT,] df <- data.frame(x = tmp_fitdata$TIME, y = tmp_fitdata$LxTx) if (ITL_model == "GOK") { fit <- try({ minpack.lm::nlsLM( formula = y ~ f_GOK(A, b, Et, s10, isoT, x), data = df, start = start, lower = lower, upper = upper, control = list( maxiter = 500 ), trace = trace) }, silent = TRUE) fitted.coefs <<- rbind(fitted.coefs, data.frame(SAMPLE = unique(s$SAMPLE), TEMP = isoT, t(coef(fit)))) } else if (ITL_model == "BTS") { ## run fitting with different start parameters for s10 all.s10 <- rnorm(num_s_values_bts, mean = 10, sd = 1.5) fit <- lapply(1:length(all.s10), function(idx) { s10 <- all.s10[idx] t <- try(minpack.lm::nlsLM( formula = y ~ f_BTS(A, Eu, Et, s10, isoT, x), data = df, start = start, lower = lower, upper = upper, control = list( maxiter = 500 ), trace = FALSE), silent = TRUE) if (inherits(t, "try-error")) return(NULL) return(t) }) ## pick the one with the best fit after removing those that didn't fit fit <- .rm_NULL_elements(fit) fit <- fit[[which.min(vapply(fit, stats::deviance, numeric(1)))]] s10 <- environment(fit$m$predict)$env$s10 fitted.coefs <<- rbind(fitted.coefs, data.frame(SAMPLE = unique(s$SAMPLE), TEMP = isoT, t(coef(fit)), s10)) } ## update the progress bar num.fits <<- num.fits + 1 # <<- required because we are in a nested lapply() if (txtProgressBar) { setTxtProgressBar(pb, num.fits) } if (inherits(fit, "try-error")) fit <- NA ## return fit return(fit) }) ## add temperature as name to list names(tmp) <- isoT return(tmp) }) ## add sample names names(fit_list) <- sample_id if (txtProgressBar) { close(pb) } # Plotting ---------------------------------------------------------------- if (plot) { ## define plot settings plot_settings <- modifyList( x = list( xlim = range(vapply(df_raw_list, function(x) range(x$TIME), numeric(2))), ylim = range(vapply(df_raw_list, function(x) { max_LxTx <- suppressWarnings(max(x$LxTx_ERROR, na.rm = TRUE)) range(x$LxTx, na.rm = TRUE) + if (is.infinite(max_LxTx)) 0 else max_LxTx}, numeric(2))), log = "x", xlab = "Isothermal holding time [s]", ylab = expression(paste("Norm. lumin. [", L[x]/T[x], "]")), pch = 21, col = grDevices::palette("Okabe-Ito"), col.border = "black", main = sample_id, mtext = paste("Fitted with the", ITL_model, "model"), cex = 1.0, mfrow = if (length(unique(sample_id)) > 1) c(min(c(2, ceiling(length(sample_id)/2))),2) else NULL, legend = TRUE, legend.pos = "bottomleft", legend.cex = 0.6 ), val = list(...) ) ## get x vector for the prediction later; we use the same ## value for all provided data x <- c(1:1e+03,seq(1e+03,plot_settings$xlim[2], length.out = 10000)) ## par settings (the check for mfrow ensures that it works in the analysis function) if (!is.null(plot_settings$mfrow)) { par_old <- par(no.readonly = TRUE) on.exit(par(par_old)) par(cex = plot_settings$cex, mfrow = plot_settings$mfrow) } ## now we have to loop over the samples for (i in seq_along(sample_id)) { ## open plot area plot(NA,NA, xlim = plot_settings$xlim, ylim = plot_settings$ylim, log = plot_settings$log, xlab = plot_settings$xlab, ylab = plot_settings$ylab, main = rep(plot_settings$main, length.out = length(sample_id))[i]) ## add plot subtitle mtext(side = 3, plot_settings$mtext, cex = 0.7 * plot_settings$cex) ## add fitted curves isoT <- unique(df_raw_list[[i]][["TEMP"]]) for (c in seq_along(isoT)) { ## only plot the fitted lines if the fit had worked if (inherits(fit_list[[i]][[c]], "nls")) { y <- predict(fit_list[[i]][[c]], newdata = data.frame(x = x), interval = "confidence", se.fit = TRUE) lines( x = x, y = y, col = rep(plot_settings$col[c], length.out = length(isoT))) } ## plot the points (don't use matplot because this would assume ## the same length for the time vector) df_pts <- df_raw_list[[i]][df_raw_list[[i]][["TEMP"]] == isoT[c], ] points( x = df_pts[["TIME"]], y = df_pts[["LxTx"]], pch = plot_settings$pch, bg = plot_settings$col[c], col = plot_settings$col.border) ## add error bars (if NA nothing is plotted by R default) segments( x0 = df_pts[["TIME"]], x1 = df_pts[["TIME"]], y0 = df_pts[["LxTx"]] - df_pts[["LxTx_ERROR"]], y1 = df_pts[["LxTx"]] + df_pts[["LxTx_ERROR"]], col = plot_settings$col[c]) } ## add legend if (plot_settings$legend[1]) { legend( plot_settings$legend.pos, legend = paste0(isoT, "\u00b0C"), bty = "n", pch = 20, lty = 1, col = plot_settings$col, cex = plot_settings$legend.cex) } }## plot loop }## plot condition # Return results ---------------------------------------------------------- output <- set_RLum( class = "RLum.Results", data = list( fit = fit_list, coefs = fitted.coefs, data = records_ITL), info = list( call = sys.call()) ) return(output) } Luminescence/R/read_PSL2R.R0000644000176200001440000003110314762554470015061 0ustar liggesusers#' @title Import PSL files to R #' #' @description Imports PSL files produced by a SUERC portable OSL reader into R. #' #' @details This function provides an import routine for the SUERC portable OSL Reader PSL #' format (measurement data and sequence). PSL files are just plain text and can be #' viewed with any text editor. Due to the formatting of PSL files this import #' function relies heavily on regular expression to find and extract all relevant information. See **note**. #' #' @param file [character] (**required**): #' path and file name of the PSL file. If input is a `vector` it should comprise #' only `character`s representing valid paths and PSL file names. #' Alternatively the input character can be just a directory (path). In this case the #' the function tries to detect and import all PSL files found in the directory. #' #' @param drop_bg [logical] (*with default*): #' `TRUE` to automatically remove all non-OSL/IRSL curves. #' #' @param as_decay_curve [logical] (*with default*): #' Portable OSL Reader curves are often given as cumulative light sum curves. #' Use `TRUE` (default) to convert the curves to the more usual decay form. #' #' @param smooth [logical] (*with default*): #' `TRUE` to apply Tukey's Running Median Smoothing for OSL and IRSL decay curves. #' Smoothing is encouraged if you see random signal drops within the decay curves related #' to hardware errors. #' #' @param merge [logical] (*with default*): #' `TRUE` to merge all `RLum.Analysis` objects. Only applicable if multiple #' files are imported. #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param ... currently not used. #' #' @return #' Returns an S4 [RLum.Analysis-class] object containing #' [RLum.Data.Curve-class] objects for each curve. #' #' @seealso [RLum.Analysis-class], [RLum.Data.Curve-class], [RLum.Data.Curve-class] #' #' @author Christoph Burow, University of Cologne (Germany), #' Sebastian Kreutzer, Institut of Geography, Heidelberg University (Germany) #' #' @section Function version: 0.1.1 #' #' @note #' Because this function relies heavily on regular expressions to parse #' PSL files it is currently only in beta status. If the routine fails to import #' a specific PSL file please report to `` so the #' function can be updated. #' #' @keywords IO #' #' @examples #' #' # (1) Import PSL file to R #' #' file <- system.file("extdata", "DorNie_0016.psl", package = "Luminescence") #' psl <- read_PSL2R(file, drop_bg = FALSE, as_decay_curve = TRUE, smooth = TRUE, merge = FALSE) #' print(str(psl, max.level = 3)) #' plot(psl, combine = TRUE) #' #' @md #' @export read_PSL2R <- function( file, drop_bg = FALSE, as_decay_curve = TRUE, smooth = FALSE, merge = FALSE, verbose = TRUE, ... ) { .set_function_name("read_PSL2R") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(file, "character") .validate_not_empty(file) if (length(file) == 1) { if (!grepl(".psl$", file, ignore.case = TRUE)) { file <- list.files(file, pattern = ".psl$", full.names = TRUE, ignore.case = TRUE) if (length(file) == 0) .throw_error("No .psl files found") message("[read_PSL2R()] The following files were found and imported:\n", paste(" ..", file, collapse = "\n")) } } if (!all(file.exists(file))) .throw_error("The following files do not exist, please check:\n", paste(file[!file.exists(file)], collapse = "\n")) ## MAIN ---- results <- vector("list", length(file)) for (i in 1:length(file)) { if (verbose) { cat("\n[read_PSL2R()] Importing ...") cat("\n path: ", dirname(file[i])) cat("\n file: ", .shorten_filename(basename(file[i]))) cat("\n") } ## Read in file ---- doc <- readLines(file[i]) ## Document formatting ---- # remove lines with i) blanks only, ii) dashes, iii) equal signs doc <- gsub("^[ ]*$", "", doc) doc <- gsub("^[ -]*$", "", doc) doc <- gsub("^[ =]*$", "", doc) # the header ends with date and time with the previous line starting with a single slash lines_with_slashes <- doc[grepl("\\", doc, fixed = TRUE)] ## OFFENDING LINE: this deletes the line with sample name and time and date sample_and_date <- lines_with_slashes[length(lines_with_slashes)] sample <- trimws(gsub("\\\\", "", strsplit(sample_and_date, "@")[[1]][1])) date_and_time <- strsplit(strsplit(sample_and_date, "@")[[1]][2], " ")[[1]] date_and_time_clean <- date_and_time[date_and_time != "" & date_and_time != "/" & date_and_time != "PM" & date_and_time != "AM"] date <- as.Date(date_and_time_clean[1], "%m/%d/%Y") time <- format(date_and_time_clean[2], format = "%h:%M:%S") doc <- gsub(lines_with_slashes[length(lines_with_slashes)], "", fixed = TRUE, doc) # last delimiting line before measurements are only apostrophes and dashes lines_with_apostrophes <-doc[grepl("'", doc, fixed = TRUE)] doc <- gsub(lines_with_apostrophes[length(lines_with_apostrophes)], "", fixed = TRUE, doc) # finally remove all empty lines doc <- doc[doc != ""] ## Split document ---- begin_of_measurements <- grep("Measurement :", doc, fixed = TRUE) number_of_measurements <- length(begin_of_measurements) # Parse and format header header <- doc[1:(begin_of_measurements[1]-1)] header <- format_Header(header) # add sample name, date and time to header list header$Date <- date header$Time <- time header$Sample <- sample # Parse and format the measurement values measurements_split <- vector("list", number_of_measurements) # save lines of each measurement to individual list elements for (j in seq_len(number_of_measurements)) { if (j != max(number_of_measurements)) measurements_split[[j]] <- doc[begin_of_measurements[j]:(begin_of_measurements[j+1] - 1)] else measurements_split[[j]] <- doc[begin_of_measurements[j]:length(doc)] } # format each measurement; this will return a list of RLum.Data.Curve objects measurements_formatted <- lapply(measurements_split, function(x) { format_Measurements(x, convert = as_decay_curve, header = header) }) # drop dark count measurements if needed if (drop_bg) { measurements_formatted <- lapply(measurements_formatted, function(x) { if (x@recordType != "USER") return(x) }) measurements_formatted <- .rm_NULL_elements(measurements_formatted) } # decay curve smoothing using Tukey's Running Median Smoothing (?smooth) if (smooth) { measurements_formatted <- lapply(measurements_formatted, function(x) { if (x@recordType != "USER") x@data[, 2] <- stats::smooth(x@data[, 2]) return(x) }) } ## get measurement sequence measurement_sequence <- data.table::rbindlist( lapply(seq_along(measurements_split), function(x) { ## remove measurement tmp <- gsub( pattern = "Measurement : ", replacement = "", x = measurements_split[[x]][1], fixed = TRUE) ## split entries tmp <- strsplit(x = tmp, split = " | ", fixed = TRUE)[[1]] ## data.frame data.frame( RUN = x, NAME = trimws(tmp[1]), STIM = strsplit(tmp[2], split = " ", fixed = TRUE)[[1]][2], ON_OFF = strsplit(tmp[3], split = "(us)", fixed = TRUE)[[1]][2], CYCLE = strsplit(tmp[4], split = "(ms),", fixed = TRUE)[[1]][2]) })) ## RETURN ---- results[[i]] <- set_RLum( "RLum.Analysis", protocol = "portable OSL", info = c( header, list(Sequence = measurement_sequence)), records = measurements_formatted) }#Eof::Loop ## MERGE ---- if (length(results) > 1 && merge) results <- merge_RLum(results) ## RETURN ---- if (length(results) == 1) results <- results[[1]] return(results) } ################################################################################ ## HELPER FUNCTIONS ################################################################################ ## ------------------------- FORMAT MEASUREMENT ----------------------------- ## format_Measurements <- function(x, convert, header) { ## measurement parameters are given in the first line settings <- x[1] settings_split <- unlist(strsplit(settings, "|", fixed = TRUE)) # welcome to regex/strsplit hell settings_measurement <- trimws(gsub(".*: ", "", settings_split[which(grepl("Measure", settings_split))])) settings_stimulation_unit <- gsub("[^0-9]", "", settings_split[which(grepl("Stim", settings_split))]) settings_on_time <- as.integer(unlist(strsplit(gsub("[^0-9,]", "", settings_split[which(grepl("Off", settings_split))]), ","))[1]) settings_off_time <- as.integer(unlist(strsplit(gsub("[^0-9,]", "", settings_split[which(grepl("Off", settings_split))]), ","))[2]) vals <- stats::na.omit(as.integer(unlist(strsplit(gsub("[^0-9,]", "", settings_split[which(grepl("No", settings_split))]), ",")))) settings_cycle <- vals[1] settings_stimulation_time <- vals[2] settings_list <- list("measurement" = settings_measurement, "stimulation_unit" = switch(settings_stimulation_unit, "0" = "USER", "1" = "IRSL", "2" = "OSL"), "on_time" = settings_on_time, "off_time" = settings_off_time, "cycle" = settings_cycle, "stimulation_time" = settings_stimulation_time) ## terminal counts are given in the last line terminal_count_text <- x[length(x)] terminal_count_text_formatted <- gsub("[^0-9]", "", unlist(strsplit(terminal_count_text, "/"))) terminal_count <- as.numeric(terminal_count_text_formatted[1]) terminal_count_error <- as.numeric(terminal_count_text_formatted[2]) ## parse values and create a data frame x_stripped <- x[-c(1, 2, length(x))] df <- data.frame(matrix(NA, ncol = 5, nrow = length(x_stripped))) for (i in 1:length(x_stripped)) { x_split <- unlist(strsplit(x_stripped[i], " ")) x_split <- x_split[x_split != ""] x_split_clean <- gsub("[^0-9\\-]", "", x_split) x_split_cleaner <- x_split_clean[x_split_clean != "-"] df[i, ] <- as.numeric(x_split_cleaner) } names(df) <- c("time", "counts", "counts_error", "counts_per_cycle", "counts_per_cycle_error") # shape of the curve: decay or cumulative if (convert) data <- matrix(c(df$time, df$counts_per_cycle), ncol = 2) else data <- matrix(c(df$time, df$counts), ncol = 2) # determine the stimulation type if (grepl("Stim 0", settings)) { recordType <- "USER" } if (grepl("Stim 1", settings)) { recordType <- "IRSL" } if (grepl("Stim 2", settings)) { recordType <- "OSL" } object <- set_RLum( class = "RLum.Data.Curve", originator = "read_PSL2R", recordType = recordType, curveType = "measured", data = data, info = list(settings = c(settings_list, header), raw_data = df)) return(object) } ## ---------------------------- FORMAT HEADER ------------------------------- ## format_Header <- function(x) { header_formatted <- list() # split by double blanks header_split <- strsplit(x, " ", fixed = TRUE) # check whether there are twice as many values # as colons; if there is an equal amount, the previous split was not sufficient # and we need to further split by a colon (that is followed by a blank) header_split_clean <- lapply(header_split, function(x) { x <- x[x != ""] n_elements <- length(x) n_properties <- length(grep(":", x, fixed = TRUE)) if (n_elements / n_properties == 1) x <- unlist(strsplit(x, ": ", fixed = TRUE)) return(x) }) # format parameter/settings names and corresponding values values <- vector(mode = "character") names <- vector(mode = "character") for (i in 1:length(header_split_clean)) { for (j in seq(1, length(header_split_clean[[i]]), 2)) { names <- c(names, header_split_clean[[i]][j]) values <- c(values, header_split_clean[[i]][j + 1]) } } # some RegExing for nice reading names <- gsub("[: ]$", "", names, perl = TRUE) names <- gsub("^ ", "", names) names <- gsub(" $", "", names) # for some weird reason "offset subtract" starts with '256 ' names <- gsub("256 ", "", names) # finally, replace all blanks with underscores names <- gsub(" ", "_", names) values <- gsub("[: ]$", "", values, perl = TRUE) values <- gsub("^ ", "", values) values <- gsub(" $", "", values) # return header as list header <- as.list(values) names(header) <- names return(header) } Luminescence/R/analyse_Al2O3C_CrossTalk.R0000644000176200001440000002751114762554470017660 0ustar liggesusers#' @title Al2O3:C Reader Cross Talk Analysis #' #' @description The function provides the analysis of cross-talk measurements on a #' FI lexsyg SMART reader using Al2O3:C chips #' #' @param object [RLum.Analysis-class] or [list] (**required**): #' measurement input #' #' @param signal_integral [numeric] (*optional*): #' signal integral, used for the signal and the background. #' If nothing is provided the full range is used #' #' @param dose_points [numeric] (*with default*): #' vector with dose points, if dose points are repeated, only the general #' pattern needs to be provided. Default values follow the suggestions #' made by Kreutzer et al., 2018 #' #' @param recordType [character] (*with default*): input curve selection, which is passed to #' function [get_RLum]. To deactivate the automatic selection set the argument to `NULL` #' #' @param irradiation_time_correction [numeric] or [RLum.Results-class] (*optional*): #' information on the used irradiation time correction obtained by another #' experiment. #' #' @param method_control [list] (*optional*): #' optional parameters to control the calculation. #' See details for further explanations #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param ... further arguments that can be passed to the plot output #' #' @return #' Function returns results numerically and graphically: #' #' -----------------------------------\cr #' `[ NUMERICAL OUTPUT ]`\cr #' -----------------------------------\cr #' #' **`RLum.Results`**-object #' #' **slot:** **`@data`** #' #' \tabular{lll}{ #' **Element** \tab **Type** \tab **Description**\cr #' `$data` \tab `data.frame` \tab summed apparent dose table \cr #' `$data_full` \tab `data.frame` \tab full apparent dose table \cr #' `$fit` \tab `lm` \tab the linear model obtained from fitting \cr #' `$col.seq` \tab `numeric` \tab the used colour vector \cr #' } #' #' **slot:** **`@info`** #' #' The original function call #' #' ------------------------\cr #' `[ PLOT OUTPUT ]`\cr #' ------------------------\cr #' #' - An overview of the obtained apparent dose values #' #' @section Function version: 0.1.3 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [analyse_Al2O3C_ITC] #' #' @references #' #' Kreutzer, S., Martin, L., Guérin, G., Tribolo, C., Selva, P., Mercier, N., 2018. Environmental Dose Rate #' Determination Using a Passive Dosimeter: Techniques and Workflow for alpha-Al2O3:C Chips. #' Geochronometria 45, 56-67. doi: 10.1515/geochr-2015-0086 #' #' @keywords datagen #' #' @examples #' #' ##load data #' data(ExampleData.Al2O3C, envir = environment()) #' #' ##run analysis #' analyse_Al2O3C_CrossTalk(data_CrossTalk) #' #' @md #' @export analyse_Al2O3C_CrossTalk <- function( object, signal_integral = NULL, dose_points = c(0,4), recordType = c("OSL (UVVIS)"), irradiation_time_correction = NULL, method_control = NULL, plot = TRUE, ... ) { .set_function_name("analyse_Al2O3C_CrossTalk") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(object, c("RLum.Analysis", "list")) .validate_not_empty(object, class(object)[1]) if (is.list(object)) { lapply(object, function(x) .validate_class(x, "RLum.Analysis", name = "All elements of 'object'")) } .validate_class(recordType, "character") ##TODO ... do more, push harder ##Accept the entire sequence ... including TL and extract ##Add sufficient unit tests ## Preparation ------------------------------------------------------------ ##select curves based on the recordType selection; if not NULL if(!is.null(recordType)){ object <- suppressWarnings(get_RLum(object, recordType = recordType, drop = FALSE)) } if (is.null(object) || all(lengths(object) == 0)) { .throw_error("'object' contains no records with recordType = '", recordType, "'") } #set method control method_control_settings <- list( fit.method = "EXP" ) ##modify on request if(!is.null(method_control)){ .validate_class(method_control, "list") method_control_settings <- modifyList(x = method_control_settings, val = method_control) } ##set signal integral max.signal_integral <- nrow(object[[1]][[1]][]) if(is.null(signal_integral)){ signal_integral <- 1:max.signal_integral }else{ ##check whether the input is valid, otherwise make it valid if (min(signal_integral) < 1 || max(signal_integral) > max.signal_integral) { signal_integral <- 1:max.signal_integral .throw_warning("'signal_integral' corrected to 1:", max.signal_integral) } } ##check irradiation time correction if (!is.null(irradiation_time_correction)) { .validate_class(irradiation_time_correction, c("numeric", "RLum.Results")) if (is(irradiation_time_correction, "RLum.Results")) { if (irradiation_time_correction@originator == "analyse_Al2O3C_ITC") { irradiation_time_correction <- get_RLum(irradiation_time_correction) ##insert case for more than one observation ... if(nrow(irradiation_time_correction)>1){ irradiation_time_correction <- c(mean(irradiation_time_correction[[1]]), sd(irradiation_time_correction[[1]])) }else{ irradiation_time_correction <- c(irradiation_time_correction[[1]], irradiation_time_correction[[2]]) } } else{ .throw_error("The object provided for 'irradiation_time_correction' ", "was created by an unsupported function") } } } # Calculation --------------------------------------------------------------------------------- ##we have two dose points, and one background curve, we do know only the 2nd dose ##create signal table list signal_table_list <- lapply(1:length(object), function(i) { ##calculate all the three signals needed BACKGROUND <- sum(object[[i]][[3]][, 2]) NATURAL <- sum(object[[i]][[1]][, 2]) REGENERATED <- sum(object[[i]][[2]][, 2]) temp_df <- data.frame( POSITION = get_RLum(object[[i]][[1]], info.object = "position"), DOSE = if(!is.null(irradiation_time_correction)){ dose_points + irradiation_time_correction[1] }else{ dose_points }, DOSE_ERROR = if(!is.null(irradiation_time_correction)){ dose_points * irradiation_time_correction[2]/irradiation_time_correction[1] }else{ 0 }, STEP = c("NATURAL", "REGENERATED"), INTEGRAL = c(NATURAL, REGENERATED), BACKGROUND = c(BACKGROUND, BACKGROUND), NET_INTEGRAL = c(NATURAL - BACKGROUND, REGENERATED - BACKGROUND), row.names = NULL ) ##0 dose points should not be biased by the correction .. id_zero <- which(dose_points == 0) temp_df$DOSE[id_zero] <- 0 temp_df$DOSE_ERROR[id_zero] <- 0 return(temp_df) }) APPARENT_DOSE <- as.data.frame(data.table::rbindlist(lapply(1:length(object), function(x){ ##run in MC run if(!is.null(irradiation_time_correction)){ DOSE <- rnorm(1000, mean = signal_table_list[[x]]$DOSE[2], sd = signal_table_list[[x]]$DOSE_ERROR[2]) }else{ DOSE <- signal_table_list[[x]]$DOSE[2] } ##calculation temp <- (DOSE * signal_table_list[[x]]$NET_INTEGRAL[1])/signal_table_list[[x]]$NET_INTEGRAL[2] data.frame( POSITION = signal_table_list[[x]]$POSITION[1], AD = mean(temp), AD_ERROR = sd(temp)) }))) ##add apparent dose to the information signal_table_list <- lapply(1:length(signal_table_list), function(x){ cbind(signal_table_list[[x]], rep(APPARENT_DOSE[x,2:3], 2)) }) ##combine data_full <- as.data.frame(data.table::rbindlist(signal_table_list), stringsAsFactors = FALSE) # Plotting ------------------------------------------------------------------------------------ ## set colours col_pal <- grDevices::hcl.colors(100, palette = "RdYlGn", rev = TRUE) ##get plot settings par.default <- par(no.readonly = TRUE) on.exit(par(par.default), add = TRUE) ##settings plot_settings <- list( main = "Sample Carousel Crosstalk", mtext = "" ) ##modify on request plot_settings <- modifyList(x = plot_settings, list(...)) ##pre-calculations for graphical parameters n.positions <- length(unique(APPARENT_DOSE$POSITION)) arc.step <- (2 * pi) / n.positions step <- 0 ##condense data.frame, by calculating the mean for similar positions AD_matrix <- t(vapply(sort(unique(APPARENT_DOSE$POSITION)), function(x){ c(x,mean(APPARENT_DOSE[["AD"]][APPARENT_DOSE[["POSITION"]] == x]), sd(APPARENT_DOSE[["AD"]][APPARENT_DOSE[["POSITION"]] == x])) }, FUN.VALUE = vector(mode = "numeric", length = 3))) ##create colour ramp col.seq <- data.frame( POSITION = AD_matrix[order(AD_matrix[,2]),1], COLOUR = col_pal[seq(1,100, length.out = nrow(AD_matrix))], stringsAsFactors = FALSE) col.seq <- col.seq[["COLOUR"]][order(col.seq[["POSITION"]])] ##calculate model fit <- stats::lm( formula = y ~ poly(x, 2, raw=TRUE), data = data.frame(y = APPARENT_DOSE$AD[order(APPARENT_DOSE$POSITION)], x = sort(APPARENT_DOSE$POSITION))) ##enable or disable plot ... we cannot put the condition higher, because we here ##calculate something we are going to need later if (plot) { ##set layout matrix layout(mat = matrix( c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 3), 5, 5, byrow = TRUE )) ##create empty plot par( mar = c(1, 1, 1, 1), omi = c(1, 1, 1, 1), oma = c(0.2, 0.2, 0.2, 0.2), cex = 1.1 ) shape::emptyplot(c(-1.15, 1.15), main = plot_settings$main, frame.plot = FALSE) ##add outher circle shape::plotcircle(r = 1.1, col = rgb(0.9, 0.9, 0.9, 1)) ##add inner octagon shape::filledcircle( r1 = 0.6, mid = c(0, 0), lwd = 1, lcol = "black", col = "white" ) ##add circles for (i in 1:n.positions) { shape::plotcircle( r = 0.05, mid = c(cos(step), sin(step)), cex = 6, pch = 20, col = col.seq[i] ) text(x = cos(step) * 0.85, y = sin(step) * .85, labels = i) step <- step + arc.step } ##add center plot with position plot(NA, NA, xlim = range(AD_matrix[,1]), ylim = range(APPARENT_DOSE[,2]), frame.plot = FALSE, type = "l") ##add points points(x = APPARENT_DOSE, pch = 20, col = rgb(0,0,0,0.3)) ##add linear model lines(sort(APPARENT_DOSE$POSITION), predict(fit), col = "red") ##add colour legend shape::emptyplot(c(-1.2, 1.2), frame.plot = FALSE) graphics::rect( xleft = rep(-0.6, 100), ybottom = seq(-1.2,1.1,length.out = 100), xright = rep(0, 100), ytop = seq(-1.1,1.2,length.out = 100), col = col_pal, lwd = 0, border = FALSE ) ##add scale text text( x = -0.3, y = 1.2, label = "[s]", pos = 3, cex = 1.1 ) text( x = 0.4, y = 1, label = round(max(AD_matrix[, 2]),2), pos = 3, cex = 1.1 ) text( x = 0.4, y = -1.5, label = 0, pos = 3, cex = 1.1 ) } # Output -------------------------------------------------------------------------------------- output <- set_RLum( class = "RLum.Results", data = list( data = data.frame( POSITION = AD_matrix[,1], AD = AD_matrix[,2], AD_ERROR = AD_matrix[,3] ), data_full = data_full, fit = fit, col.seq = col.seq ), info = list( call = sys.call() ) ) } Luminescence/R/calc_HomogeneityTest.R0000644000176200001440000000772214762554470017347 0ustar liggesusers#' @title Apply a simple homogeneity test after Galbraith (2003) #' #' @description #' A simple homogeneity test for De estimates #' For details see Galbraith (2003). #' #' @param data [RLum.Results-class] or [data.frame] (**required**): #' for [data.frame]: two columns with De `(data[,1])` and De error `(values[,2])` #' #' @param log [logical] (*with default*): #' perform the homogeneity test with (un-)logged data #' #' @param ... further arguments (for internal compatibility only). #' #' @return #' Returns a terminal output. In addition an #' [RLum.Results-class]-object is returned containing the #' following elements: #' #' \item{summary}{[data.frame] summary of all relevant model results.} #' \item{data}{[data.frame] original input data} #' \item{args}{[list] used arguments} #' \item{call}{[call] the function call} #' #' The output should be accessed using the function [get_RLum]. #' #' @section Function version: 0.3.0 #' #' @author Christoph Burow, University of Cologne (Germany), Sebastian Kreutzer, #' IRAMAT-CRP2A, Université Bordeaux Montaigne (France) #' #' @seealso [stats::pchisq] #' #' @references #' Galbraith, R.F., 2003. A simple homogeneity test for estimates #' of dose obtained using OSL. Ancient TL 21, 75-77. #' #' #' @examples #' #' ## load example data #' data(ExampleData.DeValues, envir = environment()) #' #' ## apply the homogeneity test #' calc_HomogeneityTest(ExampleData.DeValues$BT998) #' #' ## using the data presented by Galbraith (2003) #' df <- #' data.frame( #' x = c(30.1, 53.8, 54.3, 29.0, 47.6, 44.2, 43.1), #' y = c(4.8, 7.1, 6.8, 4.3, 5.2, 5.9, 3.0)) #' #' calc_HomogeneityTest(df) #' #' #' @md #' @export calc_HomogeneityTest <- function( data, log = TRUE, ... ) { .set_function_name("calc_HomogeneityTest") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(data, c("data.frame", "RLum.Results")) .validate_not_empty(data) if (inherits(data, "RLum.Results")) { data <- get_RLum(data, "data") } ##==========================================================================## ## ... ARGUMENTS ##==========================================================================## extraArgs <- list(...) ## set plot main title if("verbose" %in% names(extraArgs)) { verbose<- extraArgs$verbose } else { verbose<- TRUE } ##============================================================================## ## CALCULATIONS ##============================================================================## if(log) { dat <- log(data) dat[[2]] <- data[[2]]/data[[1]] } else { dat <- data } wi <- 1 / dat[[2]] ^ 2 wizi <- wi * dat[[1]] mu <- sum(wizi) / sum(wi) gi <- wi * (dat[[1]] - mu) ^ 2 G <- sum(gi) df <- length(wi) - 1 n <- length(wi) P <- stats::pchisq(G, df, lower.tail = FALSE) ##============================================================================## ## OUTPUT ##============================================================================## if(verbose) { cat("\n [calc_HomogeneityTest()]") cat(paste("\n\n ---------------------------------")) cat(paste("\n n: ", n)) cat(paste("\n ---------------------------------")) cat(paste("\n mu: ", round(mu,4))) cat(paste("\n G-value: ", round(G,4))) cat(paste("\n Degrees of freedom:", df)) cat(paste("\n P-value: ", round(P,4))) cat(paste("\n ---------------------------------\n\n")) } ##============================================================================## ## RETURN VALUES ##============================================================================## summary <- data.frame( n = n, g.value = G, df = df, P.value = P ) args <- list(log = log) return(set_RLum( class = "RLum.Results", data = list( summary = summary, data = data, args = args ), info = list(call = sys.call()) )) } Luminescence/R/report_RLum.R0000644000176200001440000006427314762554470015514 0ustar liggesusers#' @title Create a HTML-report for (RLum) objects #' #' @details This function creates a HTML-report for a given object, listing its complete #' structure and content. The object itself is saved as a serialised .Rds file. #' The report file serves both as a convenient way of browsing through objects with #' complex data structures as well as a mean of properly documenting and saving #' objects. #' #' The HTML report is created with [rmarkdown::render] and has the #' following structure: #' #' \tabular{ll}{ #' **Section** \tab **Description** \cr #' `Header` \tab A summary of general characteristics of the object \cr #' `Object content` \tab A comprehensive list of the complete structure and content of the provided object. \cr #' `Object structure` \tab Summary of the objects structure given as a table \cr #' `File` \tab Information on the saved RDS file \cr #' `Session Info` \tab Captured output from `sessionInfo()` \cr #' `Plots` \tab (*optional*) For `RLum-class` objects a variable number of plots \cr #' } #' #' The structure of the report can be controlled individually by providing one or more of the #' following arguments (all `logical`): #' #' \tabular{ll}{ #' **Argument** \tab **Description** \cr #' `header` \tab Hide or show general information on the object \cr #' `main` \tab Hide or show the object's content \cr #' `structure` \tab Hide or show object's structure \cr #' `rds` \tab Hide or show information on the saved RDS file \cr #' `session` \tab Hide or show the session info \cr #' `plot` \tab Hide or show the plots (depending on object) \cr #' } #' #' Note that these arguments have higher precedence than `compact`. #' #' Further options that can be provided via the `...` argument: #' #' \tabular{ll}{ #' **Argument** \tab **Description** \cr #' `short_table` \tab If `TRUE` only show the first and last 5 rows of long tables. \cr #' `theme` \tab Specifies the Bootstrap #' theme to use for the report. Valid themes include `"default"`, `"cerulean"`, `"journal"`, `"flatly"`, #' `"readable"`, `"spacelab"`, `"united"`, `"cosmo"`, `"lumen"`, `"paper"`, `"sandstone"`, #' `"simplex"`, and `"yeti"`. \cr #' `highlight` \tab Specifies the syntax highlighting style. #' Supported styles include `"default"`, `"tango"`, `"pygments"`, `"kate"`, `"monochrome"`, #' `"espresso"`, `"zenburn"`, `"haddock"`, and `"textmate"`. \cr #' `css` \tab `TRUE` or `FALSE` to enable/disable custom CSS styling \cr #' } #' #' The following arguments can be used to customise the report via CSS (Cascading Style Sheets): #' #' \tabular{ll}{ #' **Argument** \tab **Description** \cr #' `font_family` \tab Define the font family of the HTML document (default: `"arial"`) \cr #' `headings_size` \tab Size of the `

` to `

` tags used to define HTML headings (default: 166%). \cr #' `content_color` \tab Colour of the object's content (default: #a72925). \cr #' } #' #' Note that these arguments must all be of class [character] and follow standard CSS syntax. #' For exhaustive CSS styling you can provide a custom CSS file for argument `css.file`. #' CSS styling can be turned of using `css = FALSE`. #' #' @param object (**required**): #' The object to be reported on, preferably of any `RLum`-class. #' #' @param file [character] (*with default*): #' A character string naming the output file. If no filename is provided a #' temporary file is created. #' #' @param title [character] (*with default*): #' A character string specifying the title of the document. #' #' @param compact [logical] (*with default*): #' When `TRUE` the following report components are hidden: #' `@@.pid`, `@@.uid`, `'Object structure'`, `'Session Info'` #' and only the first and last 5 rows of long matrices and data frames are shown. #' See details. #' #' @param timestamp [logical] (*with default*): #' `TRUE` to add a timestamp to the filename (suffix). #' #' @param show_report [logical] (*with default*): If set to `TRUE` the function tries to display #' the report output in the local viewer, e.g., within *RStudio* after rendering. #' #' @param launch.browser [logical] (*with default*): #' `TRUE` to open the HTML file in the system's default web browser after #' it has been rendered. #' #' @param css.file [character] (*optional*): #' Path to a CSS file to change the default styling of the HTML document. #' #' @param quiet [logical] (*with default*): #' `TRUE` to suppress printing of the pandoc command line. #' #' @param clean [logical] (*with default*): #' `TRUE` to clean intermediate files created during rendering. #' #' @param ... further arguments passed to or from other methods and to control #' the document's structure (see details). #' #' @section Function version: 0.1.5 #' #' @author #' Christoph Burow, University of Cologne (Germany), #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) \cr #' #' @note #' This function requires the R packages 'rmarkdown', 'pander' and 'rstudioapi'. #' #' @seealso [rmarkdown::render], [pander::pander_return], #' [pander::openFileInOS], [rstudioapi::viewer], #' [browseURL] #' #' @return #' Writes a HTML and .Rds file. #' #' @examples #' #' \dontrun{ #' ## Example: RLum.Results ---- #' #' # load example data #' data("ExampleData.DeValues") #' #' # apply the MAM-3 age model and save results #' mam <- calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.2) #' #' # create the HTML report #' report_RLum(object = mam, file = "~/CA1_MAM.Rmd", #' timestamp = FALSE, #' title = "MAM-3 for sample CA1") #' #' # when creating a report the input file is automatically saved to a #' # .Rds file (see saveRDS()). #' mam_report <- readRDS("~/CA1_MAM.Rds") #' all.equal(mam, mam_report) #' #' #' ## Example: Temporary file & Viewer/Browser ---- #' #' # (a) #' # Specifying a filename is not necessarily required. If no filename is provided, #' # the report is rendered in a temporary file. If you use the RStudio IDE, the #' # temporary report is shown in the interactive Viewer pane. #' report_RLum(object = mam) #' #' # (b) #' # Additionally, you can view the HTML report in your system's default web browser. #' report_RLum(object = mam, launch.browser = TRUE) #' #' #' ## Example: RLum.Analysis ---- #' #' data("ExampleData.RLum.Analysis") #' #' # create the HTML report (note that specifying a file #' # extension is not necessary) #' report_RLum(object = IRSAR.RF.Data, file = "~/IRSAR_RF") #' #' #' ## Example: RLum.Data.Curve ---- #' #' data.curve <- get_RLum(IRSAR.RF.Data)[[1]] #' #' # create the HTML report #' report_RLum(object = data.curve, file = "~/Data_Curve") #' #' ## Example: Any other object ---- #' x <- list(x = 1:10, #' y = runif(10, -5, 5), #' z = data.frame(a = LETTERS[1:20], b = dnorm(0:9)), #' NA) #' #' report_RLum(object = x, file = "~/arbitray_list") #' } #' #' @md #' @export report_RLum <- function( object, file = tempfile(), title = "RLum.Report", compact = TRUE, timestamp = TRUE, show_report = TRUE, launch.browser = FALSE, css.file = NULL, quiet = TRUE, clean = TRUE, ... ) { .set_function_name("report_RLum") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- # check if required namespace(s) are available .require_suggested_package("rmarkdown", "Creating object reports") .require_suggested_package("pander", "Creating object reports") # nocov start if (.require_suggested_package("rstudioapi", "Creating object reports", throw.error = FALSE)) { isRStudio <- FALSE } else { isRStudio <- rstudioapi::isAvailable() } # nocov end # check if files exist if (!is.null(css.file)) if(!file.exists(css.file)) .throw_error("Couldn't find the specified CSS file at '", css.file, "'") ## ------------------------------------------------------------------------ ## ## STRUCTURE ---- structure <- list(header = TRUE, main = TRUE, structure = !compact, rds = TRUE, session = !compact, plot = TRUE) # specifying report components has higher precedence than the 'compact' arg structure <- modifyList(structure, list(...)) ## OPTIONS ---- options <- list(short_table = compact, theme = "cerulean", highlight = "haddock", css = TRUE) options <- modifyList(options, list(...)) ## CSS DEFAULTS ---- css <- list(font_family = "arial", headings_size = "166%", content_color = "#a72925") css <- modifyList(css, list(...)) ## ------------------------------------------------------------------------ ## ## CREATE FILE ---- isTemp <- missing(file) # make sure the filename ends with .Rmd extension if (!grepl(".rmd$", file, ignore.case = TRUE)) file <- paste0(file, ".Rmd") # Timestamp: currently added as a suffix to the filename # if we were to change it to a prefix, we need to first figure out the filename # (i.e., separate it from the possible path) using the following regular # expression strsplit(string, "\\\\|\\\\\\\\|\\/|\\/\\/"). This looks for # \, \\, /, // and the last element is the filename. if (timestamp) file <- gsub(".rmd$", paste0(format(Sys.time(), "_%Y%b%d"), ".Rmd"), file, ignore.case = TRUE) # sanitize file name file <- gsub("\\\\", "\\/", file) file.html <- gsub(".rmd$", ".html", file, ignore.case = TRUE) file.rds <- gsub(".rmd$", ".Rds", file, ignore.case = TRUE) # Create and open the file file.create(file) tmp <- file(file, open = "wt", blocking = TRUE) # save RDS file saveRDS(object, file.rds) # get object elements <- .struct_RLum(object, root = deparse(substitute(object))) ## ------------------------------------------------------------------------ ## ## WRITE CONTENT ---- # HEADER ---- writeLines("---", tmp) writeLines("title: RLum.Report", tmp) writeLines("output:", tmp) writeLines(" html_document:", tmp) writeLines(" mathjax: null", tmp) writeLines(" title: RLum.Report", tmp) writeLines(paste(" theme:", options$theme), tmp) writeLines(paste(" highlight:", options$highlight), tmp) writeLines(" toc: true", tmp) writeLines(" toc_float: true", tmp) writeLines(" toc_depth: 6", tmp) if (!is.null(css.file)) writeLines(paste(" css:", css.file), tmp) writeLines(" md_extensions: -autolink_bare_uris", tmp) writeLines("---", tmp) # CASCADING STYLE SHEETS ---- if (options$css) { writeLines(paste0( "" ), tmp) } # INFO ---- # check if Luminescence package is installed and get details pkg <- as.data.frame(installed.packages(), row.names = FALSE) pkg <- pkg[which(pkg$Package == "Luminescence"), ] # Title writeLines(paste("

", title, "

\n\n
"), tmp) # write information on R, Luminescence package, Object if (structure$header) { writeLines(paste("**Date:**", Sys.time(), "\n\n", "**R version:**", R.version.string, "\n\n", "**Luminescence package** \n\n", "**  » Path:**", pkg$LibPath, "\n\n", "**  » Version:**", pkg$Version, "\n\n", "**  » Built:**", pkg$Built, "\n\n", "**Object** \n\n", "**  » Created:**", tryCatch(paste(paste(strsplit(object@.uid, '-|\\.')[[1]][1:3], collapse = "-"), strsplit(object@.uid, '-|\\.')[[1]][4]), error = function(e) "-"), "\n\n", "**  » Class:**", class(object), "\n\n", "**  » Originator:**", tryCatch(object@originator, error = function(e) "-"), "\n\n", "**  » Name:**", deparse(substitute(object)), "\n\n", "**  » Parent ID:**", tryCatch(object@.pid, error = function(e) "-"), "\n\n", "**  » Unique ID:**", tryCatch(object@.uid, error = function(e) "-"), "\n\n", "
"), tmp) if (isTemp) { writeLines(paste("Save report"), tmp) writeLines(paste("Save data \n\n"), tmp) } }#EndOf::Header # OBJECT ---- if (structure$main) { for (i in 1:nrow(elements)) { # SKIP ELEMENT? # hide @.pid and @.uid if this is a shortened report (default) if (elements$bud[i] %in% c(".uid", ".pid") && compact == TRUE) next(); # HEADER short.name <- elements$bud[i] links <- gsub("[^@$\\[]", "", as.character(elements$branch[i])) type <- ifelse(nchar(links) == 0, "", substr(links, nchar(links), nchar(links))) if (type == "[") type = "" # HTML header level is determined by the elements depth in the object # exception: first row is always the object's name and has depth zero if (i == 1) hlevel <- "#" else hlevel <- paste(rep("#", elements$depth[i]), collapse = "") # write header; number of dots represents depth in the object. because there # may be duplicate header names, for each further occurrence of a name # Zero-width non-joiner entities are added to the name (non visible) writeLines(paste0(hlevel, " ", "", paste(rep("..", elements$depth[i]), collapse = ""), type, "", paste(rep("‌", elements$bud.freq[i]), collapse = ""), short.name[length(short.name)], ifelse(elements$endpoint[i], "", paste0("{#root",i,"}")), ##ifelse(elements$endpoint[i], "", "{#root}"), "\n\n"), tmp) # SUBHEADER # contains information on Class, Length, Dimensions, Path writeLines(paste0("
",
                        "",
                        " Class: ", elements$class[i],
                        "",
                        "   Length: ", elements$length[i],
                        "",
                        "   Dimensions: ",
                        ifelse(elements$row[i] != 0, paste0(elements$row[i], ", ", elements$col[i]), "-"),
                        "",
                        "\n Path: ", gsub("@", "@", elements$branch[i]),
                        "
", "\n\n"), tmp) # TABLE CONTENT # the content of a branch is only printed if it was determined an endpoint # in the objects structure if (elements$endpoint[i]) { table <- tryCatch(eval(parse(text = elements$branch[i])), error = function(e) { return(NULL) }) # exceptions: content may be NULL; convert raw to character to stay # compatible with pander::pander if (is.null(table) | length(table) == 0) table <- "NULL" if (any(class(table) == "raw")) table <- as.character(table) # exception: surround objects of class "call" with
 tags to prevent
        # HTML auto formatting
        if (elements$class[i] == "call") {
          table <- capture.output(table)
          writeLines("
", tmp)
          for (i in 1:length(table))
            writeLines(table[i], tmp)
          writeLines("
", tmp) table <- NULL } # shorten the table if it has more than 15 rows if (options$short_table) { if (is.matrix(table) || is.data.frame(table)) { if (nrow(table) > 15) { text <- pander::pander_return( rbind(head(table, 5), tail(table, 5)), caption = "shortened (only first and last five rows shown)") writeLines(text, tmp) next } } } # write table using pander and end each table with a horizontal line writeLines(suppressWarnings(pander::pander_return(table)), tmp) writeLines("\n\n
", tmp) } } }#EndOf::Main # OBJECT STRUCTURE ---- if (structure$structure) { writeLines(paste("\n\n# Object structure\n\n"), tmp) elements.html <- elements elements.html$branch <- gsub("\\$", "$", elements$branch) writeLines(pander::pander_return(elements.html, justify = paste(rep("l", ncol(elements)), collapse = "")), tmp) writeLines("\n\n", tmp) }#EndOf::Structure if (structure$rds) { # SAVE SERIALISED OBJECT (.rds file) ---- writeLines(paste("
# File \n\n"), tmp) writeLines(paste0("", "", "Click here to access the data file", "", ""), tmp) writeLines(paste("\nThe R object was saved to ", normalizePath(file.rds), ".", "To import the object into your R session with the following command:", paste0("
",
                            "x <- readRDS('", normalizePath(file.rds), "')",
                            "
"), "**NOTE:** If you moved the file to another directory or", "renamed the file you need to change the path/filename in the", "code above accordingly!"), tmp) }#EndOf::File # SESSION INFO ---- if (structure$session) { writeLines(paste("\n\n
# Session Info\n\n"), tmp) sessionInfo <- capture.output(sessionInfo()) writeLines(paste(sessionInfo, collapse = "\n\n"), tmp) } # PLOTTING ---- if (structure$plot) { isRLumObject <- length(grep("RLum", class(object))) if (is.list(object)) isRLumList <- all(sapply(object, function(x) inherits(x, "RLum.Data.Curve"))) else isRLumList <- FALSE if (isRLumObject | isRLumList) { # mutual exclusivity: it is either a list or an RLum-Object if (isRLumList) plotCommand <- "invisible(sapply(x, plot)) \n" else plotCommand <- "plot(x) \n" writeLines(paste("\n\n
# Plots\n\n"), tmp) writeLines(paste0( "```{r}\n", "library(Luminescence) \n", "x <- readRDS('", normalizePath(file.rds),"') \n", plotCommand, "```"), tmp) if (inherits(object, "RLum.Results")) { # AGE MODELS ---- models <- c("calc_AverageDose", "calc_CommonDose", "calc_CentralDose", "calc_FiniteMixture", "calc_MinDose", "calc_MaxDose", "calc_IEU", "calc_FuchsLang2001") if (object@originator %in% models) { writeLines(paste0( "```{r}\n", "plot_AbanicoPlot(x) \n", "plot_Histogram(x) \n", "plot_KDE(x) \n", "plot_ViolinPlot(x) \n", "```"), tmp) } } } }#EndOf::Plot close(tmp) ## ------------------------------------------------------------------------ ## ## CLOSE & RENDER ---- rmarkdown::render(file, clean = clean, quiet = quiet) ## ------------------------------------------------------------------------ ## ## SHOW FILE ----- # SHOW REPORT IN RSTUDIOS VIEWER PANE ---- # nocov start if (isRStudio && show_report) { if (isTemp) { try(rstudioapi::viewer(file.html)) } else { # The Viewer Pane only works for files in a sessions temp directory # see: https://support.rstudio.com/hc/en-us/articles/202133558-Extending-RStudio-with-the-Viewer-Pane file.copy(file.html, file.path(tempdir(), "report.html"), overwrite = TRUE) try(rstudioapi::viewer(file.path(tempdir(), "report.html"))) } } # launch browser if desired # browseURL() listens on localhost to show the file with the problem that # the download links dont work anymore. hence, we try to open the file # with pander::openFileInOS and use browseURL() only as fallback if (launch.browser) { opened <- tryCatch(pander::openFileInOS(file.html), error = function(e) "error") if (!is.null(opened)) try(browseURL(file.html)) } # nocov end ## ------------------------------------------------------------------------ ## ## CLEANUP ---- # note that 'clean' as also passed to rmarkdown::render if (clean) file.remove(file) invisible() } ################################################################################ ## ## ## HELPER FUNCTIONS ## ## ## ################################################################################ # ---------------------------------------------------------------------------- # # This is a recursive function that goes the objects structure and prints # all slots/elements along with their class, length, depth. # ---------------------------------------------------------------------------- # .tree_RLum <- function(x, root) { ## S4 object ----- if (isS4(x)) { # print ----- cat(c(root, .class(x), base::length(x), .depth(root), FALSE, .dimension(x), "\n"), sep = "|") for (slot in slotNames(x)) { s4.root <- paste0(root, "@", slot) .tree_RLum(slot(x, slot), root = s4.root) } invisible() ## List objects ----- } else if (inherits(x, "list") | typeof(x) == "list" & !inherits(x, "data.frame")) { if (!is.null(names(x)) && length(x) != 0) { # print ----- cat(c(root, .class(x), base::length(x), .depth(root), FALSE, .dimension(x), "\n"), sep = "|") element <- names(x) for (i in 1:length(x)) { if (grepl(" ", element[i])) element[i] <- paste0("`", element[i], "`") if (element[i] == "") list.root <- paste0(root, "[[", i, "]]") else list.root <- paste0(root, "$", element[i]) .tree_RLum(x[[i]], root = list.root) } } else if (length(x) != 0) { # print ----- cat(c(root, .class(x), base::length(x), .depth(root), FALSE, .dimension(x), "\n"), sep = "|") element <- paste0("[[", seq(1, length(x),1), "]]") for (i in 1:length(x)) { if (grepl(" ", element[i])) element[i] <- paste0("`", element[i], "`") list.root <- paste0(root, element[i]) .tree_RLum(x[[i]], root = list.root) } } else if (length(x) == 0) { cat(c(root, .class(x), base::length(x), .depth(root), FALSE, .dimension(x), "\n"), sep = "|") } invisible() ## Data frames ----- } else if (inherits(x, "data.frame")) { if (any(sapply(x, function(col) { inherits(col, "matrix") } ))) { element <- names(x) for (i in 1:length(x)) { if (grepl(" ", element[i])) element[i] <- paste0("`", element[i], "`") list.root <- paste0(root, "$", element[[i]]) .tree_RLum(x[[i]], root = list.root) } } else { # print ---- cat(c(root, .class(x), base::length(x), .depth(root), TRUE, .dimension(x), "\n"), sep = "|") } invisible() ## Last elements ----- } else { # print ---- cat(c(root, .class(x), base::length(x), .depth(root), TRUE, .dimension(x), "\n"), sep = "|") invisible() } } # ---------------------------------------------------------------------------- # # a) Derive depth in the structure tree by splitting the directory by # indicative accessors @, $, [[ # b) Wrapper for dim() to cope with NULL values # c) Wrapper for class() that collapses the classes of an object # ---------------------------------------------------------------------------- # .depth <- function(x) { length(strsplit(x, split = "\\$|@|\\[\\[")[[1]]) - 1 } .dimension <- function(x) { if (!is.null(dim(x))) dim <- paste(dim(x), collapse = "|") else dim <- c(0, 0) } .class <- function(x) { paste(class(x), collapse = "/") } # ---------------------------------------------------------------------------- # # This function captures the output of the real worker .tree_RLum and returns # the structure of the object as a data.frame # ---------------------------------------------------------------------------- # .struct_RLum <- function(x, root) { s <- capture.output(.tree_RLum(x, root = root)) df <- as.data.frame(do.call(rbind, strsplit(s, "|", fixed = TRUE)), stringsAsFactors = FALSE) names(df) <- c("branch", "class", "length", "depth", "endpoint", "row", "col") df$depth <- as.integer(df$depth) df$length <- as.numeric(df$length) df$endpoint <- as.logical(df$endpoint) df$row <- as.integer(df$row) df$col <- as.integer(df$col) df$bud <- do.call(c, lapply(strsplit(df$branch, "\\$|@|\\[\\["), function(x) x[length(x)])) if (length(grep("]", df$bud)) != 0) df$bud[grep("]", df$bud)] <- paste0("[[", df$bud[grep("]", df$bud)]) df$bud.freq <- NA # 1:nrow(df) # reorder data.frame df <- df[ ,c("branch", "bud", "bud.freq", "class", "length", "depth", "row", "col", "endpoint")] # for the report we must not have the same last element names of same # depth (HTML cannot discriminate between #links of headers) ## TODO: this is highly inefficient for unnamed list due to recurrent indices dlevel <- max(table(df$bud)) for (i in 1:dlevel) { unique.bud <- unique(df[is.na(df$bud.freq), ]$bud) df[is.na(df$bud.freq), ][match(unique.bud, df[is.na(df$bud.freq), ]$bud), ]$bud.freq <- i - 1 } invisible(df) } Luminescence/R/plot_AbanicoPlot.R0000644000176200001440000037150014762554470016465 0ustar liggesusers#' @title Function to create an Abanico Plot. #' #' @description A plot is produced which allows comprehensive presentation of data precision #' and its dispersion around a central value as well as illustration of a #' kernel density estimate, histogram and/or dot plot of the dose values. #' #' @details #' The Abanico Plot is a combination of the classic Radial Plot #' (`plot_RadialPlot`) and a kernel density estimate plot (e.g #' `plot_KDE`). It allows straightforward visualisation of data precision, #' error scatter around a user-defined central value and the combined #' distribution of the values, on the actual scale of the measured data (e.g. #' seconds, equivalent dose, years). The principle of the plot is shown in #' Galbraith & Green (1990). The function authors are thankful for the #' thought-provoking figure in this article. #' #' The semi circle (z-axis) of the classic Radial Plot is bent to a straight #' line here, which actually is the basis for combining this polar (radial) #' part of the plot with any other Cartesian visualisation method #' (KDE, histogram, PDF and so on). Note that the plot allows displaying #' two measures of distribution. One is the 2-sigma #' bar, which illustrates the spread in value errors, and the other is the #' polygon, which stretches over both parts of the Abanico Plot (polar and #' Cartesian) and illustrates the actual spread in the values themselves. #' #' Since the 2-sigma-bar is a polygon, it can be (and is) filled with shaded #' lines. To change density (lines per inch, default is 15) and angle (default #' is 45 degrees) of the shading lines, specify these parameters. See #' `?polygon()` for further help. #' #' The Abanico Plot supports other than the weighted mean as measure of #' centrality. When it is obvious that the data #' is not (log-)normally distributed, the mean (weighted or not) cannot be a #' valid measure of centrality and hence central dose. Accordingly, the median #' and the weighted median can be chosen as well to represent a proper measure #' of centrality (e.g. `centrality = "median.weighted"`). Also #' user-defined numeric values (e.g. from the central age model) can be used if #' this appears appropriate. #' #' The proportion of the polar part and the cartesian part of the Abanico Plot #' can be modified for display reasons (`plot.ratio = 0.75`). By default, #' the polar part spreads over 75 % and leaves 25 % for the part that #' shows the KDE graph. #' #' #' A statistic summary, i.e. a collection of statistic measures of #' centrality and dispersion (and further measures) can be added by specifying #' one or more of the following keywords: #' #' - `"n"` (number of samples) #' - `"mean"` (mean De value) #' - `"median"` (median of the De values) #' - `"sd.rel"` (relative standard deviation in percent) #' - `"sd.abs"` (absolute standard deviation) #' - `"se.rel"` (relative standard error) #' - `"se.abs"` (absolute standard error) #' - `"in.2s"` (percent of samples in 2-sigma range) #' - `"kurtosis"` (kurtosis) #' - `"skewness"` (skewness) #' #' **Note** that the input data for the statistic summary is sent to the function #' `calc_Statistics()` depending on the log-option for the z-scale. If #' `"log.z = TRUE"`, the summary is based on the logarithms of the input #' data. If `"log.z = FALSE"` the linearly scaled data is used. #' #' **Note** as well, that `"calc_Statistics()"` calculates these statistic #' measures in three different ways: `unweighted`, `weighted` and #' `MCM-based` (i.e., based on Monte Carlo Methods). By default, the #' MCM-based version is used. If you wish to use another method, indicate this #' with the appropriate keyword using the argument `summary.method`. #' #' The optional parameter `layout` allows more sophisticated ways to modify #' the entire plot. Each element of the plot can be addressed and its properties #' can be defined. This includes font type, size and decoration, colours and #' sizes of all plot items. To infer the definition of a specific layout style #' cf. `get_Layout()` or type e.g., for the layout type `"journal"` #' `get_Layout("journal")`. A layout type can be modified by the user by #' assigning new values to the list object. #' #' It is possible for the z-scale to specify where ticks are to be drawn #' by using the parameter `at`, e.g. `at = seq(80, 200, 20)`, cf. function #' documentation of `axis`. Specifying tick positions manually overrides a #' `zlim`-definition. #' #' @param data [data.frame] or [RLum.Results-class] object (**required**): #' for `data.frame` two columns: De (`data[,1]`) and De error (`data[,2]`). #' To plot several data sets in one plot the data sets must be provided as #' `list`, e.g. `list(data.1, data.2)`. #' #' @param na.rm [logical] (*with default*): #' exclude NA values from the data set prior to any further operations. #' #' @param log.z [logical] (*with default*): #' Option to display the z-axis in logarithmic scale. Default is `TRUE`. #' #' @param z.0 [character] or [numeric] (*with default*): #' User-defined central value, used for centring of data. One out of `"mean"`, #' `"mean.weighted"` and `"median"` or a numeric value (not its logarithm). #' Default is `"mean.weighted"`. #' #' @param dispersion [character] (*with default*): #' measure of dispersion, used for drawing the scatter polygon. One out of #' - `"qr"` (quartile range, default), #' - `"pnn"` (symmetric percentile range with `nn` the lower percentile, e.g. #' `"p05"` indicating the range between 5 and 95 %, or `"p10"` indicating #' the range between 10 and 90 %), or #' - `"sd"` (standard deviation) and #' - `"2sd"` (2 standard deviations), #' #' The default is `"qr"`. Note that `"sd"` and `"2sd"` are only meaningful in #' combination with `"z.0 = 'mean'"` because the unweighted mean is used to #' centre the polygon. #' #' @param plot.ratio [numeric] (*with default*): #' Relative space, given to the radial versus the cartesian plot part, #' default is `0.75`. #' #' @param rotate [logical] (*with default*): #' Option to turn the plot by 90 degrees. #' #' @param mtext [character] (*optional*): #' additional text below the plot title. #' #' @param summary [character] (*optional*): #' add statistic measures of centrality and dispersion to the plot. #' Can be one or more of several keywords. See details for available keywords. #' Results differ depending on the log-option for the z-scale (see details). #' #' @param summary.pos [numeric] or [character] (*with default*): #' optional position coordinates or keyword (e.g. `"topright"`) for the #' statistical summary. Alternatively, the keyword `"sub"` may be #' specified to place the summary below the plot header. However, this latter #' option in only possible if `mtext` is not used. #' #' @param summary.method [character] (*with default*): #' keyword indicating the method used to calculate the statistic summary. #' One out of #' - `"unweighted"`, #' - `"weighted"` and #' - `"MCM"`. #' #' See [calc_Statistics] for details. #' #' @param legend [character] vector (*optional*): #' legend content to be added to the plot. #' #' @param legend.pos [numeric] or [character] (*with default*): #' optional position coordinates or keyword (e.g. `"topright"`) #' for the legend to be plotted. #' #' @param stats [character]: #' additional labels of statistically important values in the plot. #' One or more out of the following: #' - `"min"`, #' - `"max"`, #' - `"median"`. #' #' @param rug [logical] (*with default*): #' Option to add a rug to the KDE part, to indicate the location of individual values. #' #' @param kde [logical] (*with default*): #' Option to add a KDE plot to the dispersion part, default is `TRUE`. #' #' @param hist [logical] (*with default*): #' Option to add a histogram to the dispersion part. Only meaningful when not #' more than one data set is plotted. #' #' @param dots [logical] (*with default*): #' Option to add a dot plot to the dispersion part. If number of dots exceeds #' space in the dispersion part, a square indicates this. #' #' @param boxplot [logical] (*with default*): #' Option to add a boxplot to the dispersion part, default is `FALSE`. #' #' @param y.axis [logical] (*with default*): Option to hide standard y-axis #' labels and show 0 only. #' Useful for data with small scatter. If you want to suppress the y-axis entirely #' please use `yaxt == 'n'` (the standard [graphics::par] setting) instead. #' #' @param error.bars [logical] (*with default*): #' Option to show De-errors as error bars on De-points. Useful in combination #' with `y.axis = FALSE, bar.col = "none"`. #' #' @param bar [numeric] (*with default*): #' option to add one or more dispersion bars (i.e., bar showing the 2-sigma range) #' centred at the defined values. By default a bar is drawn according to `"z.0"`. #' To omit the bar set `"bar = FALSE"`. #' #' @param bar.col [character] or [numeric] (*with default*): #' colour of the dispersion bar. Default is `"grey60"`. #' #' @param polygon.col [character] or [numeric] (*with default*): #' colour of the polygon showing the data scatter. Sometimes this #' polygon may be omitted for clarity. To disable it use `FALSE` or #' `polygon = FALSE`. Default is `"grey80"`. #' #' @param line [numeric]: #' numeric values of the additional lines to be added. #' #' @param line.col [character] or [numeric]: #' colour of the additional lines. #' #' @param line.lty [integer]: #' line type of additional lines #' #' @param line.label [character]: #' labels for the additional lines. #' #' @param grid.col [character] or [numeric] (*with default*): #' colour of the grid lines (originating at `[0,0]` and stretching to #' the z-scale). To disable grid lines use `FALSE`. Default is `"grey"`. #' #' @param frame [numeric] (*with default*): #' option to modify the plot frame type. Can be one out of #' - `0` (no frame), #' - `1` (frame originates at 0,0 and runs along min/max isochrons), #' - `2` (frame embraces the 2-sigma bar), #' - `3` (frame embraces the entire plot as a rectangle). #' #' Default is `1`. #' #' @param bw [character] (*with default*): #' bin-width for KDE, choose a numeric value for manual setting. #' #' @param interactive [logical] (*with default*): #' create an interactive abanico plot (requires the `'plotly'` package) #' #' @param ... Further plot arguments to pass (see [graphics::plot.default]). #' Supported are: `main`, `sub`, `ylab`, `xlab`, `zlab`, `zlim`, `ylim`, `cex`, #' `lty`, `lwd`, `pch`, `col`, `at`, `breaks`. `xlab` must be #' a vector of length two, specifying the upper and lower x-axis labels. #' #' @return #' Returns a plot object and, optionally, a list with plot calculus data. #' #' @section Function version: 0.1.18 #' #' @author #' Michael Dietze, GFZ Potsdam (Germany)\cr #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Inspired by a plot introduced by Galbraith & Green (1990) #' #' @seealso [plot_RadialPlot], [plot_KDE], [plot_Histogram], [plot_ViolinPlot] #' #' @references #' Galbraith, R. & Green, P., 1990. Estimating the component ages #' in a finite mixture. International Journal of Radiation Applications and #' Instrumentation. Part D. Nuclear Tracks and Radiation Measurements, 17 (3), #' 197-206. #' #' Dietze, M., Kreutzer, S., Burow, C., Fuchs, M.C., Fischer, M., Schmidt, C., 2015. #' The abanico plot: visualising chronometric data with individual standard errors. #' Quaternary Geochronology. doi:10.1016/j.quageo.2015.09.003 #' #' @examples #' #' ## load example data and recalculate to Gray #' data(ExampleData.DeValues, envir = environment()) #' ExampleData.DeValues <- ExampleData.DeValues$CA1 #' #' ## plot the example data straightforward #' plot_AbanicoPlot(data = ExampleData.DeValues) #' #' ## now with linear z-scale #' plot_AbanicoPlot(data = ExampleData.DeValues, #' log.z = FALSE) #' #' ## now with output of the plot parameters #' plot1 <- plot_AbanicoPlot(data = ExampleData.DeValues, #' output = TRUE) #' str(plot1) #' plot1$zlim #' #' ## now with adjusted z-scale limits #' plot_AbanicoPlot(data = ExampleData.DeValues, #' zlim = c(10, 200)) #' #' ## now with adjusted x-scale limits #' plot_AbanicoPlot(data = ExampleData.DeValues, #' xlim = c(0, 20)) #' #' ## now with rug to indicate individual values in KDE part #' plot_AbanicoPlot(data = ExampleData.DeValues, #' rug = TRUE) #' #' ## now with a smaller bandwidth for the KDE plot #' plot_AbanicoPlot(data = ExampleData.DeValues, #' bw = 0.04) #' #' ## now with a histogram instead of the KDE plot #' plot_AbanicoPlot(data = ExampleData.DeValues, #' hist = TRUE, #' kde = FALSE) #' #' ## now with a KDE plot and histogram with manual number of bins #' plot_AbanicoPlot(data = ExampleData.DeValues, #' hist = TRUE, #' breaks = 20) #' #' ## now with a KDE plot and a dot plot #' plot_AbanicoPlot(data = ExampleData.DeValues, #' dots = TRUE) #' #' ## now with user-defined plot ratio #' plot_AbanicoPlot(data = ExampleData.DeValues, #' plot.ratio = 0.5) #' ## now with user-defined central value #' plot_AbanicoPlot(data = ExampleData.DeValues, #' z.0 = 70) #' #' ## now with median as central value #' plot_AbanicoPlot(data = ExampleData.DeValues, #' z.0 = "median") #' #' ## now with the 17-83 percentile range as definition of scatter #' plot_AbanicoPlot(data = ExampleData.DeValues, #' z.0 = "median", #' dispersion = "p17") #' #' ## now with user-defined green line for minimum age model #' CAM <- calc_CentralDose(ExampleData.DeValues, #' plot = FALSE) #' #' plot_AbanicoPlot(data = ExampleData.DeValues, #' line = CAM, #' line.col = "darkgreen", #' line.label = "CAM") #' #' ## now create plot with legend, colour, different points and smaller scale #' plot_AbanicoPlot(data = ExampleData.DeValues, #' legend = "Sample 1", #' col = "tomato4", #' bar.col = "peachpuff", #' pch = "R", #' cex = 0.8) #' #' ## now without 2-sigma bar, polygon, grid lines and central value line #' plot_AbanicoPlot(data = ExampleData.DeValues, #' bar.col = FALSE, #' polygon.col = FALSE, #' grid.col = FALSE, #' y.axis = FALSE, #' lwd = 0) #' #' ## now with direct display of De errors, without 2-sigma bar #' plot_AbanicoPlot(data = ExampleData.DeValues, #' bar.col = FALSE, #' ylab = "", #' y.axis = FALSE, #' error.bars = TRUE) #' #' ## now with user-defined axes labels #' plot_AbanicoPlot(data = ExampleData.DeValues, #' xlab = c("Data error (%)", #' "Data precision"), #' ylab = "Scatter", #' zlab = "Equivalent dose [Gy]") #' #' ## now with minimum, maximum and median value indicated #' plot_AbanicoPlot(data = ExampleData.DeValues, #' stats = c("min", "max", "median")) #' #' ## now with a brief statistical summary as subheader #' plot_AbanicoPlot(data = ExampleData.DeValues, #' summary = c("n", "in.2s")) #' #' ## now with another statistical summary #' plot_AbanicoPlot(data = ExampleData.DeValues, #' summary = c("mean.weighted", "median"), #' summary.pos = "topleft") #' #' ## now a plot with two 2-sigma bars for one data set #' plot_AbanicoPlot(data = ExampleData.DeValues, #' bar = c(30, 100)) #' #' ## now the data set is split into sub-groups, one is manipulated #' data.1 <- ExampleData.DeValues[1:30,] #' data.2 <- ExampleData.DeValues[31:62,] * 1.3 #' #' ## now a common dataset is created from the two subgroups #' data.3 <- list(data.1, data.2) #' #' ## now the two data sets are plotted in one plot #' plot_AbanicoPlot(data = data.3) #' #' ## now with some graphical modification #' plot_AbanicoPlot(data = data.3, #' z.0 = "median", #' col = c("steelblue4", "orange4"), #' bar.col = c("steelblue3", "orange3"), #' polygon.col = c("steelblue1", "orange1"), #' pch = c(2, 6), #' angle = c(30, 50), #' summary = c("n", "in.2s", "median")) #' #' ## create Abanico plot with predefined layout definition #' plot_AbanicoPlot(data = ExampleData.DeValues, #' layout = "journal") #' #' ## now with predefined layout definition and further modifications #' plot_AbanicoPlot( #' data = data.3, #' z.0 = "median", #' layout = "journal", #' col = c("steelblue4", "orange4"), #' bar.col = adjustcolor(c("steelblue3", "orange3"), #' alpha.f = 0.5), #' polygon.col = c("steelblue3", "orange3")) #' #' ## for further information on layout definitions see documentation #' ## of function get_Layout() #' #' ## now with manually added plot content #' ## create empty plot with numeric output #' AP <- plot_AbanicoPlot(data = ExampleData.DeValues, #' pch = NA, #' output = TRUE) #' #' ## identify data in 2 sigma range #' in_2sigma <- AP$data[[1]]$data.in.2s #' #' ## restore function-internal plot parameters #' par(AP$par) #' #' ## add points inside 2-sigma range #' points(x = AP$data[[1]]$precision[in_2sigma], #' y = AP$data[[1]]$std.estimate.plot[in_2sigma], #' pch = 16) #' #' ## add points outside 2-sigma range #' points(x = AP$data[[1]]$precision[!in_2sigma], #' y = AP$data[[1]]$std.estimate.plot[!in_2sigma], #' pch = 1) #' #' @md #' @export plot_AbanicoPlot <- function( data, na.rm = TRUE, log.z = TRUE, z.0 = "mean.weighted", dispersion = "qr", plot.ratio = 0.75, rotate = FALSE, mtext, summary, summary.pos, summary.method = "MCM", legend, legend.pos, stats, rug = FALSE, kde = TRUE, hist = FALSE, dots = FALSE, boxplot = FALSE, y.axis = TRUE, error.bars = FALSE, bar, bar.col, polygon.col, line, line.col, line.lty, line.label, grid.col, frame = 1, bw = "SJ", interactive = FALSE, ... ) { .set_function_name("plot_AbanicoPlot") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- ## Homogenise input data format if(is(data, "list") == FALSE) { data <- list(data) } ## Check input data for (i in seq_along(data)) { .validate_class(data[[i]], c("data.frame", "RLum.Results"), name = "All elements of 'data'") if (inherits(data[[i]], "RLum.Results")) data[[i]] <- get_RLum(data[[i]], "data") if (ncol(data[[i]]) < 2) { .throw_error("Data set (", i, ") has fewer than 2 columns: data ", "without errors cannot be displayed") } data[[i]] <- data[[i]][,c(1:2)] } ## optionally, remove NA-values if(na.rm == TRUE) { for(i in seq_along(data)) { n.NA <- sum(!stats::complete.cases(data[[i]])) if (n.NA > 0) { message("[plot_AbanicoPlot()] Data set (", i, "): ", n.NA, " NA value", ifelse (n.NA > 1, "s", ""), " excluded") data[[i]] <- na.exclude(data[[i]]) } } } ##AFTER NA removal, we should check the data set carefully again ... ##(1) ##check if there is still data left in the entire set if(all(sapply(data, nrow) == 0)){ .throw_message("'data' is empty, nothing plotted") return(NULL) } ##(2) ##check for sets with only 1 row or 0 rows at all else if(any(sapply(data, nrow) <= 1)){ ##select problematic sets and remove the entries from the list NArm.id <- which(sapply(data, nrow) <= 1) data[NArm.id] <- NULL .throw_warning("Data sets ", paste(NArm.id, collapse = ", "), " are found to be empty or consisting of only 1 row. Sets removed!") rm(NArm.id) ##unfortunately, the data set might become now empty at all if(length(data) == 0){ .throw_message("After removing invalid entries, nothing is plotted") return(NULL) } } ## check for zero-error values for(i in 1:length(data)) { if(sum(data[[i]][,2] == 0) > 0) { data[[i]] <- data[[i]][data[[i]][,2] > 0,] if(nrow(data[[i]]) < 1) { .throw_error("Data set contains only values with zero errors") } .throw_warning("Values with zero errors cannot be displayed and were removed") } } ## check for 0 values in dataset for log if (log.z[1]) { for(i in 1:length(data)) { if(any(data[[i]][[1]] == 0)) { .throw_warning("Found zero values in x-column of dataset ", i, ": set log.z = FALSE") log.z <- FALSE } } } ## plot.ratio must be numeric and positive .validate_positive_scalar(plot.ratio) if (!is.numeric(z.0)) { .validate_class(z.0, "character") z.0 <- .validate_args(z.0, c("mean", "mean.weighted", "median"), extra = "a numerical value") } ## the 'pnn' option need some special treatment main.choices <- c("qr", "sd", "2sd") extra.choice <-"a percentile of the form 'pnn' (eg. 'p05')" if (!dispersion %in% main.choices && !grepl("^p[0-9][0-9]$", dispersion)) dispersion <- .validate_args(dispersion, main.choices, extra = extra.choice) ## save original plot parameters and restore them upon end or stop par.old.full <- par(no.readonly = TRUE) cex_old <- par()$cex ## this ensures par() is respected for several plots on one page if(sum(par()$mfrow) == 2 & sum(par()$mfcol) == 2){ on.exit(par(par.old.full), add = TRUE) } ## check/set layout definitions if(!is.null(list(...)$layout)) layout <- get_Layout(layout = list(...)$layout) else layout <- get_Layout(layout = "default") if(missing(stats)) stats <- numeric(0) if(missing(bar)) bar <- rep(TRUE, length(data)) if(missing(bar.col)) { bar.fill <- rep(x = rep(x = layout$abanico$colour$bar.fill, length.out = length(data)), length(bar)) bar.line <- rep(rep(layout$abanico$colour$bar.line, length.out = length(data)), length(bar)) } else { bar.fill <- bar.col bar.line <- NA } if(missing(polygon.col)) { polygon.fill <- rep(layout$abanico$colour$poly.fill, length.out = length(data)) polygon.line <- rep(layout$abanico$colour$poly.line, length.out = length(data)) } else { polygon.fill <- polygon.col polygon.line <- NA } if(missing(grid.col)) { grid.major <- layout$abanico$colour$grid.major grid.minor <- layout$abanico$colour$grid.minor } else { if(length(grid.col) == 1) { grid.major <- grid.col[1] grid.minor <- grid.col[1] } else { grid.major <- grid.col[1] grid.minor <- grid.col[2] } } if(missing(summary)) summary <- c("n", "in.2s") if(missing(summary.pos)) summary.pos <- "sub" if(missing(mtext)) mtext <- "" ## create preliminary global data set De.global <- data[[1]][,1] if(length(data) > 1) { for(i in 2:length(data)) { De.global <- c(De.global, data[[i]][,1]) } } ## calculate major preliminary tick values and tick difference extraArgs <- list(...) if ("zlim" %in% names(extraArgs) && !is.null(extraArgs$zlim)) { limits.z <- extraArgs$zlim .validate_class(limits.z, "numeric", name = "'zlim'") } else { z.span <- (mean(De.global) * 0.5) / (sd(De.global) * 100) z.span <- ifelse(z.span > 1, 0.9, z.span) limits.z <- c((ifelse(min(De.global) <= 0, 1.1, 0.9) - z.span) * min(De.global), (1.1 + z.span) * max(De.global)) } if("at" %in% names(extraArgs)) { ticks <- extraArgs$at } else { ticks <- round(pretty(limits.z, n = 5), 3) } if("breaks" %in% names(extraArgs)) { breaks <- extraArgs$breaks } else { breaks <- "Sturges" } ## check/set bw-parameter for(i in 1:length(data)) { bw.test <- try(density(x = data[[i]][,1], bw = bw), silent = TRUE) if (inherits(bw.test, "try-error")) { bw <- "nrd0" .throw_warning("Option for 'bw' not valid, reset to 'nrd0'") } } if ("fun" %in% names(extraArgs)) { fun <- list(...)$fun # nocov } else { fun <- FALSE } ## check for negative values, stop function, but do not stop De.add <- 0 if(min(De.global) < 0) { if("zlim" %in% names(extraArgs)) { De.add <- abs(extraArgs$zlim[1]) } else { ## estimate delta De to add to all data De.add <- min(10^ceiling(log10(abs(De.global))) * 10) ## optionally readjust delta De for extreme values if(De.add <= abs(min(De.global))) { De.add <- De.add * 10 } } } ## optionally add correction dose to data set and adjust error if(log.z[1]) { for(i in 1:length(data)) data[[i]][,1] <- data[[i]][,1] + De.add De.global <- De.global + De.add } ## calculate and append statistical measures -------------------------------- ## z-values based on log-option z <- lapply(1:length(data), function(x){ if(log.z[1]) { log(data[[x]][,1]) } else { data[[x]][,1] } }) data <- lapply(1:length(data), function(x) { cbind(data[[x]], z[[x]]) }) rm(z) ## calculate dispersion based on log-option se <- lapply(1:length(data), function(x, De.add){ if(log.z == TRUE) { if(De.add != 0) { data[[x]][,2] <- data[[x]][,2] / (data[[x]][,1] + De.add) } else { data[[x]][,2] / data[[x]][,1] } } else { data[[x]][,2] }}, De.add = De.add) data <- lapply(1:length(data), function(x) { cbind(data[[x]], se[[x]]) }) rm(se) ## calculate initial data statistics stats.init <- list(NA) for(i in 1:length(data)) { stats.init[[length(stats.init) + 1]] <- calc_Statistics(data = data[[i]][,3:4]) } stats.init[[1]] <- NULL ## calculate central values if(z.0 == "mean") { z.central <- lapply(1:length(data), function(x){ rep(stats.init[[x]]$unweighted$mean, length(data[[x]][,3]))}) } else if(z.0 == "median") { z.central <- lapply(1:length(data), function(x){ rep(stats.init[[x]]$unweighted$median, length(data[[x]][,3]))}) } else if(z.0 == "mean.weighted") { z.central <- lapply(1:length(data), function(x){ rep(stats.init[[x]]$weighted$mean, length(data[[x]][,3]))}) } else { ## z.0 is numeric z.central <- lapply(1:length(data), function(x){ rep(ifelse(log.z == TRUE, log(z.0), z.0), length(data[[x]][,3]))}) } data <- lapply(1:length(data), function(x) { cbind(data[[x]], z.central[[x]])}) rm(z.central) ## calculate precision precision <- lapply(1:length(data), function(x){ 1 / data[[x]][,4]}) data <- lapply(1:length(data), function(x) { cbind(data[[x]], precision[[x]])}) rm(precision) ## calculate standardised estimate std.estimate <- lapply(1:length(data), function(x){ (data[[x]][,3] - data[[x]][,5]) / data[[x]][,4]}) data <- lapply(1:length(data), function(x) { cbind(data[[x]], std.estimate[[x]])}) ## append empty standard estimate for plotting data <- lapply(1:length(data), function(x) { cbind(data[[x]], std.estimate[[x]])}) rm(std.estimate) ## append optional weights for KDE curve if ("weights" %in% names(extraArgs) && extraArgs$weights == TRUE) { wgt <- lapply(1:length(data), function(x) { (1 / data[[x]][,2]) / sum(1 / data[[x]][,2]^2) }) } else { wgt <- lapply(1:length(data), function(x) { rep(1, times = nrow(data[[x]])) / nrow(data[[x]]) }) } data <- lapply(1:length(data), function(x) { cbind(data[[x]], wgt[[x]]) }) rm(wgt) ## generate global data set data.global <- cbind(data[[1]], rep(x = 1, times = nrow(data[[1]]))) colnames(data.global) <- rep("", 10) if(length(data) > 1) { for(i in 2:length(data)) { data.add <- cbind(data[[i]], rep(x = i, times = nrow(data[[i]]))) colnames(data.add) <- rep("", 10) data.global <- rbind(data.global, data.add) } } ## create column names colnames(data.global) <- c("De", "error", "z", "se", "z.central", "precision", "std.estimate", "std.estimate.plot", "weights", "data set") ## calculate global data statistics stats.global <- calc_Statistics(data = data.global[,3:4]) ## calculate global central value if(z.0 == "mean") { z.central.global <- stats.global$unweighted$mean } else if(z.0 == "median") { z.central.global <- stats.global$unweighted$median } else if(z.0 == "mean.weighted") { z.central.global <- stats.global$weighted$mean } else if(is.numeric(z.0) == TRUE) { z.central.global <- ifelse(log.z == TRUE, log(z.0), z.0) } ## create column names for(i in 1:length(data)) { colnames(data[[i]]) <- c("De", "error", "z", "se", "z.central", "precision", "std.estimate", "std.estimate.plot", "weights") } ## re-calculate standardised estimate for plotting for(i in 1:length(data)) { data[[i]][,8] <- (data[[i]][,3] - z.central.global) / data[[i]][,4] } data.global.plot <- data[[1]][,8] if(length(data) > 1) { for(i in 2:length(data)) { data.global.plot <- c(data.global.plot, data[[i]][,8]) } } data.global[,8] <- data.global.plot ## print message for too small scatter if(max(abs(1 / data.global[6])) < 0.02) { small.sigma <- TRUE message("[plot_AbanicoPlot()] Attention, small standardised estimate scatter. Toggle off y.axis?") } ## read out additional arguments--------------------------------------------- extraArgs <- list(...) main <- if("main" %in% names(extraArgs)) { extraArgs$main } else { expression(paste(D[e], " distribution")) } sub <- if("sub" %in% names(extraArgs)) { extraArgs$sub } else { "" } if("xlab" %in% names(extraArgs)) { if(length(extraArgs$xlab) != 2) { if (length(extraArgs$xlab) == 3) { xlab <- c(extraArgs$xlab[1:2], "Density") } else { .throw_error("'xlab' must have length 2") } } else {xlab <- c(extraArgs$xlab, "Density")} } else { xlab <- c(if(log.z == TRUE) { "Relative standard error (%)" } else { "Standard error" }, "Precision", "Density") } ylab <- if("ylab" %in% names(extraArgs)) { extraArgs$ylab } else { "Standardised estimate" } zlab <- if("zlab" %in% names(extraArgs)) { extraArgs$zlab } else { expression(paste(D[e], " [Gy]")) } if ("zlim" %in% names(extraArgs) && !is.null(extraArgs$zlim)) { limits.z <- extraArgs$zlim } else { z.span <- (mean(data.global[,1]) * 0.5) / (sd(data.global[,1]) * 100) z.span <- ifelse(z.span > 1, 0.9, z.span) limits.z <- c((0.9 - z.span) * min(data.global[[1]]), (1.1 + z.span) * max(data.global[[1]])) } if ("xlim" %in% names(extraArgs) && !is.null(extraArgs$xlim)) { limits.x <- extraArgs$xlim .validate_class(limits.x, "numeric", name = "'xlim'") } else { limits.x <- c(0, max(data.global[,6]) * 1.05) } if(limits.x[1] != 0) { .throw_warning("Lower x-axis limit was ", limits.x[1], ", reset to zero") limits.x[1] <- 0 } if ("ylim" %in% names(extraArgs) && !is.null(extraArgs$ylim)) { limits.y <- extraArgs$ylim .validate_class(limits.y, "numeric", name = "'ylim'") } else { y.span <- (mean(data.global[,1]) * 10) / (sd(data.global[,1]) * 100) y.span <- ifelse(y.span > 1, 0.98, y.span) limits.y <- c(-(1 + y.span) * max(abs(data.global[,7])), (1 + y.span) * max(abs(data.global[,7]))) } cex <- if("cex" %in% names(extraArgs)) { extraArgs$cex } else { 1 } lty <- if("lty" %in% names(extraArgs)) { extraArgs$lty } else { rep(rep(2, length(data)), length(bar)) } lwd <- if("lwd" %in% names(extraArgs)) { extraArgs$lwd } else { rep(rep(1, length(data)), length(bar)) } pch <- if("pch" %in% names(extraArgs)) { extraArgs$pch } else { rep(20, length(data)) } if("col" %in% names(extraArgs)) { bar.col <- extraArgs$col kde.line <- extraArgs$col kde.fill <- NA value.dot <- extraArgs$col value.bar <- extraArgs$col value.rug <- extraArgs$col summary.col <- extraArgs$col centrality.col <- extraArgs$col } else { bar.col <- layout$abanico$colour$bar.fill if(length(layout$abanico$colour$bar.fill) == 1) { bar.col <- 1:length(data) } kde.line <- layout$abanico$colour$kde.line if(length(layout$abanico$colour$kde.line) == 1) { kde.line <- 1:length(data) } kde.fill <- layout$abanico$colour$kde.fill if(length(layout$abanico$colour$kde.fill) == 1) { kde.fill <- rep(layout$abanico$colour$kde.fill, length(data)) } value.dot <- layout$abanico$colour$value.dot if(length(layout$abanico$colour$value.dot) == 1) { value.dot <- 1:length(data) } value.bar <- layout$abanico$colour$value.bar if(length(layout$abanico$colour$value.bar) == 1) { value.bar <- 1:length(data) } value.rug <- layout$abanico$colour$value.rug if(length(layout$abanico$colour$value.rug) == 1) { value.rug <- 1:length(data) } summary.col <- layout$abanico$colour$summary if(length(layout$abanico$colour$summary) == 1) { summary.col <- 1:length(data) } if(length(layout$abanico$colour$centrality) == 1) { centrality.col <- rep(x = 1:length(data), times = length(bar)) } else { centrality.col <- rep(x = layout$abanico$colour$centrality, times = length(bar)) } } ## update central line colour centrality.col <- rep(centrality.col, length(bar)) ## define auxiliary plot parameters ----------------------------------------- ## set space between z-axis and baseline of cartesian part if(boxplot[1]) { lostintranslation <- 1.03 } else { lostintranslation <- 1.03 plot.ratio <- plot.ratio * 1.05 } ## create empty plot to update plot parameters if(!rotate[1]) { plot(NA, xlim = c(limits.x[1], limits.x[2] * (1 / plot.ratio)), ylim = limits.y, main = "", sub = "", xlab = "", ylab = "", xaxs = "i", yaxs = "i", frame.plot = FALSE, axes = FALSE) } else { plot(NA, xlim = limits.y, ylim = c(limits.x[1], limits.x[2] * (1 / plot.ratio)), main = "", sub = "", xlab = "", ylab = "", xaxs = "i", yaxs = "i", frame.plot = FALSE, axes = FALSE) } ## calculate conversion factor for plot coordinates f <- 0 ## calculate major and minor z-tick values if("at" %in% names(extraArgs)) { tick.values.major <- extraArgs$at tick.values.minor <- extraArgs$at } else { tick.values.major <- signif(pretty(limits.z, n = 5), 3) tick.values.minor <- signif(pretty(limits.z, n = 25), 3) } tick.values.major <- tick.values.major[tick.values.major >= min(tick.values.minor)] tick.values.major <- tick.values.major[tick.values.major <= max(tick.values.minor)] tick.values.major <- tick.values.major[tick.values.major >= limits.z[1]] tick.values.major <- tick.values.major[tick.values.major <= limits.z[2]] tick.values.minor <- tick.values.minor[tick.values.minor >= limits.z[1]] tick.values.minor <- tick.values.minor[tick.values.minor <= limits.z[2]] if(log.z[1]) { tick.values.major[which(tick.values.major==0)] <- 1 tick.values.minor[which(tick.values.minor==0)] <- 1 tick.values.major <- log(tick.values.major) tick.values.minor <- log(tick.values.minor) } ## calculate z-axis radius r <- max(sqrt((limits.x[2])^2 + (data.global[,7] * f)^2)) ## create z-axes labels if(log.z[1]) { label.z.text <- signif(exp(tick.values.major) - De.add, 3) } else { label.z.text <- signif(tick.values.major, 3) } ## calculate node coordinates for semi-circle ellipse.values <- c(min(ifelse(log.z == TRUE, log(limits.z[1]), limits.z[1]), tick.values.major, tick.values.minor), max(ifelse(log.z == TRUE, log(limits.z[2]), limits.z[2]), tick.values.major, tick.values.minor)) ## correct for unpleasant value ellipse.values[ellipse.values == -Inf] <- 0 if(rotate == FALSE) { ellipse.x <- r / sqrt(1 + f^2 * (ellipse.values - z.central.global)^2) ellipse.y <- (ellipse.values - z.central.global) * ellipse.x } else { ellipse.y <- r / sqrt(1 + f^2 * (ellipse.values - z.central.global)^2) ellipse.x <- (ellipse.values - z.central.global) * ellipse.y } ellipse <- cbind(ellipse.x, ellipse.y) ## calculate statistical labels if(length(stats == 1)) {stats <- rep(stats, 2)} stats.data <- matrix(nrow = 3, ncol = 3) data.stats <- as.numeric(data.global[,1]) if("min" %in% stats == TRUE) { stats.data[1, 3] <- data.stats[data.stats == min(data.stats)][1] stats.data[1, 1] <- data.global[data.stats == stats.data[1, 3], 6][1] stats.data[1, 2] <- data.global[data.stats == stats.data[1, 3], 8][1] } if("max" %in% stats == TRUE) { stats.data[2, 3] <- data.stats[data.stats == max(data.stats)][1] stats.data[2, 1] <- data.global[data.stats == stats.data[2, 3], 6][1] stats.data[2, 2] <- data.global[data.stats == stats.data[2, 3], 8][1] } if("median" %in% stats == TRUE) { stats.data[3, 3] <- data.stats[data.stats == quantile(data.stats, 0.5, type = 3)] stats.data[3, 1] <- data.global[data.stats == stats.data[3, 3], 6][1] stats.data[3, 2] <- data.global[data.stats == stats.data[3, 3], 8][1] } ## re-calculate axes limits if necessary if(rotate == FALSE) { limits.z.x <- range(ellipse[,1]) limits.z.y <- range(ellipse[,2]) } else { limits.z.x <- range(ellipse[,2]) limits.z.y <- range(ellipse[,1]) } if(!("ylim" %in% names(extraArgs))) { if(limits.z.y[1] < 0.66 * limits.y[1]) { limits.y[1] <- 1.8 * limits.z.y[1] } if(limits.z.y[2] > 0.77 * limits.y[2]) { limits.y[2] <- 1.3 * limits.z.y[2] } if(rotate == TRUE) { limits.y <- c(-max(abs(limits.y)), max(abs(limits.y))) } } if(!("xlim" %in% names(extraArgs))) { if(limits.z.x[2] > 1.1 * limits.x[2]) { limits.x[2] <- limits.z.x[2] } } ## calculate and paste statistical summary De.stats <- matrix(nrow = length(data), ncol = 12) colnames(De.stats) <- c("n", "mean", "median", "kde.max", "sd.abs", "sd.rel", "se.abs", "se.rel", "q.25", "q.75", "skewness", "kurtosis") for(i in 1:length(data)) { statistics <- calc_Statistics(data[[i]])[[summary.method]] statistics.2 <- calc_Statistics(data[[i]][,3:4])[[summary.method]] De.stats[i,1] <- statistics$n De.stats[i,2] <- statistics.2$mean De.stats[i,3] <- statistics.2$median De.stats[i,5] <- statistics$sd.abs De.stats[i,6] <- statistics$sd.rel De.stats[i,7] <- statistics$se.abs De.stats[i,8] <- statistics$se.rel De.stats[i,9] <- quantile(data[[i]][,1], 0.25) De.stats[i,10] <- quantile(data[[i]][,1], 0.75) De.stats[i,11] <- statistics$skewness De.stats[i,12] <- statistics$kurtosis ## account for log.z-option if(log.z[1]) { De.stats[i,2:4] <- exp(De.stats[i,2:4]) - De.add } ## kdemax - here a little doubled as it appears below again De.density <- try(density(x = data[[i]][,1], kernel = "gaussian", bw = bw, from = limits.z[1], to = limits.z[2]), silent = TRUE) if(inherits(De.density, "try-error")) { De.stats[i,4] <- NA } else { De.stats[i,4] <- De.density$x[which.max(De.density$y)] } } label.text = list(NA) if(summary.pos[1] != "sub") { n.rows <- length(summary) for(i in 1:length(data)) { stops <- paste(rep("\n", (i - 1) * n.rows), collapse = "") summary.text <- character(0) for(j in 1:length(summary)) { summary.text <- c(summary.text, paste( "", ifelse("n" %in% summary[j] == TRUE, paste("n = ", De.stats[i,1], "\n", sep = ""), ""), ifelse("mean" %in% summary[j] == TRUE, paste("mean = ", round(De.stats[i,2], 2), "\n", sep = ""), ""), ifelse("median" %in% summary[j] == TRUE, paste("median = ", round(De.stats[i,3], 2), "\n", sep = ""), ""), ifelse("kde.max" %in% summary[j] == TRUE, paste("kdemax = ", round(De.stats[i,4], 2), " \n ", sep = ""), ""), ifelse("sd.abs" %in% summary[j] == TRUE, paste("abs. sd = ", round(De.stats[i,5], 2), "\n", sep = ""), ""), ifelse("sd.rel" %in% summary[j] == TRUE, paste("rel. sd = ", round(De.stats[i,6], 2), " %", "\n", sep = ""), ""), ifelse("se.abs" %in% summary[j] == TRUE, paste("se = ", round(De.stats[i,7], 2), "\n", sep = ""), ""), ifelse("se.rel" %in% summary[j] == TRUE, paste("rel. se = ", round(De.stats[i,8], 2), " %", "\n", sep = ""), ""), ifelse("skewness" %in% summary[j] == TRUE, paste("skewness = ", round(De.stats[i,11], 2), "\n", sep = ""), ""), ifelse("kurtosis" %in% summary[j] == TRUE, paste("kurtosis = ", round(De.stats[i,12], 2), "\n", sep = ""), ""), ifelse("in.2s" %in% summary[j] == TRUE, paste("in 2 sigma = ", round(sum(data[[i]][,7] > -2 & data[[i]][,7] < 2) / nrow(data[[i]]) * 100 , 1), " %", sep = ""), ""), sep = "")) } summary.text <- paste(summary.text, collapse = "") label.text[[length(label.text) + 1]] <- paste(stops, summary.text, stops, sep = "") } } else { for(i in 1:length(data)) { summary.text <- character(0) for(j in 1:length(summary)) { summary.text <- c(summary.text, ifelse("n" %in% summary[j] == TRUE, paste("n = ", De.stats[i,1], " | ", sep = ""), ""), ifelse("mean" %in% summary[j] == TRUE, paste("mean = ", round(De.stats[i,2], 2), " | ", sep = ""), ""), ifelse("median" %in% summary[j] == TRUE, paste("median = ", round(De.stats[i,3], 2), " | ", sep = ""), ""), ifelse("kde.max" %in% summary[j] == TRUE, paste("kdemax = ", round(De.stats[i,4], 2), " | ", sep = ""), ""), ifelse("sd.abs" %in% summary[j] == TRUE, paste("abs. sd = ", round(De.stats[i,5], 2), " | ", sep = ""), ""), ifelse("sd.rel" %in% summary[j] == TRUE, paste("rel. sd = ", round(De.stats[i,6], 2), " %", " | ", sep = ""), ""), ifelse("se.abs" %in% summary[j] == TRUE, paste("abs. se = ", round(De.stats[i,7], 2), " | ", sep = ""), ""), ifelse("se.rel" %in% summary[j] == TRUE, paste("rel. se = ", round(De.stats[i,8], 2), " %", " | ", sep = ""), ""), ifelse("skewness" %in% summary[j] == TRUE, paste("skewness = ", round(De.stats[i,11], 2), " | ", sep = ""), ""), ifelse("kurtosis" %in% summary[j] == TRUE, paste("kurtosis = ", round(De.stats[i,12], 2), " | ", sep = ""), ""), ifelse("in.2s" %in% summary[j] == TRUE, paste("in 2 sigma = ", round(sum(data[[i]][,7] > -2 & data[[i]][,7] < 2) / nrow(data[[i]]) * 100 , 1), " % | ", sep = ""), "") ) } summary.text <- paste(summary.text, collapse = "") label.text[[length(label.text) + 1]] <- paste( " ", summary.text, sep = "") } ## remove outer vertical lines from string for(i in 2:length(label.text)) { label.text[[i]] <- substr(x = label.text[[i]], start = 3, stop = nchar(label.text[[i]]) - 3) } } ## remove dummy list element label.text[[1]] <- NULL if(!rotate[1]) { ## convert keywords into summary placement coordinates coords <- .get_keyword_coordinates(summary.pos, limits.x, limits.y) ## apply some adjustments to the y positioning if (!missing(summary.pos)) { if (summary.pos[1] %in% c("topleft", "top", "topright")) { coords$pos[2] <- coords$pos[2] - par()$cxy[2] * 1.0 } else if (summary.pos[1] %in% c("bottomleft", "bottom", "bottomright")) { coords$pos[2] <- coords$pos[2] + par()$cxy[2] * 3.5 } } summary.pos <- coords$pos summary.adj <- coords$adj ## convert keywords into legend placement coordinates coords <- .get_keyword_coordinates(legend.pos, limits.x, limits.y) legend.pos <- coords$pos legend.adj <- coords$adj } else { ## convert keywords into summary placement coordinates ## this time we swap x and y limits as we are rotated, then apply some ## adjustments to the x positioning coords <- .get_keyword_coordinates(summary.pos, limits.y, limits.x) if (!missing(summary.pos) && summary.pos[1] %in% c("topleft", "left", "bottomleft")) { coords$pos[1] <- coords$pos[1] + par()$cxy[1] * 7.5 } summary.pos <- coords$pos summary.adj <- coords$adj ## convert keywords into legend placement coordinates ## this time we swap x and y limits as we are rotated, then apply some ## adjustments to the x positioning coords <- .get_keyword_coordinates(legend.pos, limits.y, limits.x) if (!missing(legend.pos) && legend.pos[1] %in% c("topleft", "left", "bottomleft")) { coords$pos[1] <- coords$pos[1] + par()$cxy[1] * 7.5 } legend.pos <- coords$pos legend.adj <- coords$adj } ## define cartesian plot origins if(rotate == FALSE) { xy.0 <- c(min(ellipse[,1]) * lostintranslation, min(ellipse[,2])) } else { xy.0 <- c(min(ellipse[,1]), min(ellipse[,2]) * lostintranslation) } ## calculate coordinates for dispersion polygon overlay y.max.x <- 2 * limits.x[2] / max(data.global[6]) polygons <- matrix(nrow = length(data), ncol = 14) for(i in 1:length(data)) { if(dispersion == "qr") { ci.lower <- quantile(data[[i]][,1], 0.25) ci.upper <- quantile(data[[i]][,1], 0.75) } else if(grepl(x = dispersion, pattern = "p") == TRUE) { ci.plot <- as.numeric(strsplit(x = dispersion, split = "p")[[1]][2]) ci.plot <- (100 - ci.plot) / 100 ci.lower <- quantile(data[[i]][,1], ci.plot) ci.upper <- quantile(data[[i]][,1], 1 - ci.plot) } else if(dispersion == "sd") { if(log.z == TRUE) { ci.lower <- exp(mean(log(data[[i]][,1])) - sd(log(data[[i]][,1]))) ci.upper <- exp(mean(log(data[[i]][,1])) + sd(log(data[[i]][,1]))) } else { ci.lower <- mean(data[[i]][,1]) - sd(data[[i]][,1]) ci.upper <- mean(data[[i]][,1]) + sd(data[[i]][,1]) } } else if(dispersion == "2sd") { if(log.z == TRUE) { ci.lower <- exp(mean(log(data[[i]][,1])) - 2 * sd(log(data[[i]][,1]))) ci.upper <- exp(mean(log(data[[i]][,1])) + 2 * sd(log(data[[i]][,1]))) } else { ci.lower <- mean(data[[i]][,1]) - 2 * sd(data[[i]][,1]) ci.upper <- mean(data[[i]][,1]) + 2 * sd(data[[i]][,1]) } } if(log.z == TRUE) { ci.lower[which(ci.lower < 0)] <- 1 y.lower <- log(ci.lower) y.upper <- log(ci.upper) } else { y.lower <- ci.lower y.upper <- ci.upper } if(rotate == FALSE) { polygons[i,1:7] <- c(limits.x[1], limits.x[2], xy.0[1], par()$usr[2], par()$usr[2], xy.0[1], limits.x[2]) polygons[i,8:14] <- c(0, (y.upper - z.central.global) * limits.x[2], (y.upper - z.central.global) * xy.0[1], (y.upper - z.central.global) * xy.0[1], (y.lower - z.central.global) * xy.0[1], (y.lower - z.central.global) * xy.0[1], (y.lower - z.central.global) * limits.x[2] ) } else { y.max <- par()$usr[4] polygons[i,1:7] <- c(limits.x[1], limits.x[2], xy.0[2], y.max, y.max, xy.0[2], limits.x[2]) polygons[i,8:14] <- c(0, (y.upper - z.central.global) * limits.x[2], (y.upper - z.central.global) * xy.0[2], (y.upper - z.central.global) * xy.0[2], (y.lower - z.central.global) * xy.0[2], (y.lower - z.central.global) * xy.0[2], (y.lower - z.central.global) * limits.x[2] ) } } ## append information about data in confidence interval for(i in 1:length(data)) { data.in.2s <- rep(x = FALSE, times = nrow(data[[i]])) data.in.2s[data[[i]][,8] > -2 & data[[i]][,8] < 2] <- TRUE data[[i]] <- cbind(data[[i]], data.in.2s) } ## calculate coordinates for 2-sigma bar overlay if(bar[1] == TRUE) { bars <- matrix(nrow = length(data), ncol = 8) for(i in 1:length(data)) { bars[i,1:4] <- c(limits.x[1], limits.x[1], ifelse("xlim" %in% names(extraArgs), extraArgs$xlim[2] * 0.95, max(data.global$precision)), ifelse("xlim" %in% names(extraArgs), extraArgs$xlim[2] * 0.95, max(data.global$precision))) bars[i,5:8] <- c(-2, 2, (data[[i]][1,5] - z.central.global) * bars[i,3] + 2, (data[[i]][1,5] - z.central.global) * bars[i,3] - 2) } } else { bars <- matrix(nrow = length(bar), ncol = 8) if(is.numeric(bar) == TRUE & log.z == TRUE) { bar <- log(bar) } for(i in 1:length(bar)) { bars[i,1:4] <- c(limits.x[1], limits.x[1], ifelse("xlim" %in% names(extraArgs), extraArgs$xlim[2] * 0.95, max(data.global$precision)), ifelse("xlim" %in% names(extraArgs), extraArgs$xlim[2] * 0.95, max(data.global$precision))) bars[i,5:8] <- c(-2, 2, (bar[i] - z.central.global) * bars[i,3] + 2, (bar[i] - z.central.global) * bars[i,3] - 2) } } if (rotate == TRUE) { bars <- matrix(bars[, rev(seq_len(ncol(bars)))], ncol = 8) } ## calculate error bar coordinates if(error.bars == TRUE) { arrow.coords <- list(NA) for(i in 1:length(data)) { arrow.x1 <- data[[i]][,6] arrow.x2 <- data[[i]][,6] arrow.y1 <- data[[i]][,1] - data[[i]][,2] arrow.y2 <- data[[i]][,1] + data[[i]][,2] if(log.z == TRUE) { arrow.y1 <- log(arrow.y1) arrow.y2 <- log(arrow.y2) } arrow.coords[[length(arrow.coords) + 1]] <- cbind( arrow.x1, arrow.x2, (arrow.y1 - z.central.global) * arrow.x1, (arrow.y2 - z.central.global) * arrow.x1) } arrow.coords[[1]] <- NULL } ## calculate KDE KDE <- list(NA) KDE.ext <- 0 KDE.bw <- numeric(0) for(i in 1:length(data)) { KDE.i <- density(x = data[[i]][,3], kernel = "gaussian", bw = bw, from = ellipse.values[1], to = ellipse.values[2], weights = data[[i]]$weights) KDE.xy <- cbind(KDE.i$x, KDE.i$y) KDE.bw <- c(KDE.bw, KDE.i$bw) KDE.ext <- ifelse(max(KDE.xy[,2]) < KDE.ext, KDE.ext, max(KDE.xy[,2])) KDE.xy <- rbind(c(min(KDE.xy[,1]), 0), KDE.xy, c(max(KDE.xy[,1]), 0)) KDE[[length(KDE) + 1]] <- cbind(KDE.xy[,1], KDE.xy[,2]) } KDE[1] <- NULL ## calculate mean KDE bandwidth KDE.bw <- mean(KDE.bw, na.rm = TRUE) ## calculate max KDE value for labelling KDE.max.plot <- numeric(length(data)) for(i in 1:length(data)) { KDE.plot <- density(x = data[[i]][,1], kernel = "gaussian", bw = bw, from = limits.z[1], to = limits.z[2]) KDE.max.plot[i] <- max(KDE.plot$y) } KDE.max.plot <- max(KDE.max.plot, na.rm = TRUE) ## calculate histogram data without plotting ## create dummy list hist.data <- list(NA) for(i in 1:length(data)) { hist.i <- hist(x = data[[i]][,3], plot = FALSE, breaks = breaks) hist.data[[length(hist.data) + 1]] <- hist.i } ## remove dummy list object hist.data[[1]] <- NULL ## calculate maximum histogram bar height for normalisation hist.max.plot <- numeric(length(data)) for(i in 1:length(data)) { hist.max.plot <- ifelse(max(hist.data[[i]]$counts, na.rm = TRUE) > hist.max.plot, max(hist.data[[i]]$counts, na.rm = TRUE), hist.max.plot) } hist.max.plot <- max(hist.max.plot, na.rm = TRUE) ## normalise histogram bar height to KDE dimensions for(i in 1:length(data)) { hist.data[[i]]$density <- hist.data[[i]]$counts / hist.max.plot * KDE.max.plot } ## calculate boxplot data without plotting ## create dummy list boxplot.data <- list(NA) for(i in 1:length(data)) { boxplot.i <- graphics::boxplot(x = data[[i]][, 3], plot = FALSE) boxplot.data[[length(boxplot.data) + 1]] <- boxplot.i } ## remove dummy list object boxplot.data[[1]] <- NULL ## calculate line coordinates and further parameters if(missing(line) == FALSE) { ## check if line parameters are R.Lum-objects for(i in 1:length(line)) { if(is.list(line) == TRUE) { if(is(line[[i]], "RLum.Results")) { line[[i]] <- as.numeric(get_RLum(object = line[[i]], data.object = "summary")$de) } } else if(is(object = line, class2 = "RLum.Results")) { line <- as.numeric(get_RLum(object = line, data.object = "summary")$de) } } ## convert list to vector if(is.list(line) == TRUE) { line <- unlist(line) } if(log.z == TRUE) { line <- log(line) } line.coords <- list(NA) if(rotate == FALSE) { for(i in 1:length(line)) { line.x <- c(limits.x[1], min(ellipse[,1]), par()$usr[2]) line.y <- c(0, (line[i] - z.central.global) * min(ellipse[,1]), (line[i] - z.central.global) * min(ellipse[,1])) line.coords[[length(line.coords) + 1]] <- rbind(line.x, line.y) } } else { for(i in 1:length(line)) { line.x <- c(limits.x[1], min(ellipse[,2]),y.max) line.y <- c(0, (line[i] - z.central.global) * min(ellipse[,2]), (line[i] - z.central.global) * min(ellipse[,2])) line.coords[[length(line.coords) + 1]] <- rbind(line.x, line.y) } } line.coords[1] <- NULL if(missing(line.col) == TRUE) { line.col <- seq(from = 1, to = length(line.coords)) } if(missing(line.lty) == TRUE) { line.lty <- rep(1, length(line.coords)) } if(missing(line.label) == TRUE) { line.label <- rep("", length(line.coords)) } } ## calculate rug coordinates if(missing(rug) == FALSE) { if(log.z == TRUE) { rug.values <- log(De.global) } else { rug.values <- De.global } rug.coords <- list(NA) if(rotate == FALSE) { for(i in 1:length(rug.values)) { rug.x <- c(xy.0[1] * (1 - 0.013 * (layout$abanico$dimension$rugl / 100)), xy.0[1]) rug.y <- c((rug.values[i] - z.central.global) * min(ellipse[,1]), (rug.values[i] - z.central.global) * min(ellipse[,1])) rug.coords[[length(rug.coords) + 1]] <- rbind(rug.x, rug.y) } } else { for(i in 1:length(rug.values)) { rug.x <- c(xy.0[2] * (1 - 0.013 * (layout$abanico$dimension$rugl / 100)), xy.0[2]) rug.y <- c((rug.values[i] - z.central.global) * min(ellipse[,2]), (rug.values[i] - z.central.global) * min(ellipse[,2])) rug.coords[[length(rug.coords) + 1]] <- rbind(rug.x, rug.y) } } rug.coords[1] <- NULL } ## Generate plot ------------------------------------------------------------ ## ## determine number of subheader lines to shift the plot if(length(summary) > 0 & summary.pos[1] == "sub") { shift.lines <- (length(data) + 1) * layout$abanico$dimension$summary.line/100 } else { shift.lines <- 1 } ## extract original plot parameters bg.original <- par()$bg on.exit(par(bg = bg.original), add = TRUE) par(bg = layout$abanico$colour$background) if(!rotate[1]) { ## setup plot area par(mar = c(4.5, 4.5, shift.lines + 1.5, 7), xpd = TRUE, cex = cex) dim <- layout$abanico$dimension if (dim$figure.width != "auto" || dim$figure.height != "auto") { par(mai = dim$margin / 25.4, pin = c(dim$figure.width - dim$margin[2] - dim$margin[4], dim$figure.height - dim$margin[1] - dim$margin[3]) / 25.4) } ## create empty plot par(new = TRUE) plot(NA, xlim = c(limits.x[1], limits.x[2] * (1 / plot.ratio)), ylim = limits.y, main = "", sub = sub, xlab = "", ylab = "", xaxs = "i", yaxs = "i", frame.plot = FALSE, axes = FALSE) ## add y-axis label mtext(text = ylab, at = mean(x = c(min(ellipse[,2]), max(ellipse[,2])), na.rm = TRUE), # at = 0, ## BUG FROM VERSION 0.4.0, maybe removed in future adj = 0.5, side = 2, line = 3 * layout$abanico$dimension$ylab.line / 100, col = layout$abanico$colour$ylab, family = layout$abanico$font.type$ylab, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$ylab)[1], cex = cex * layout$abanico$font.size$ylab/12) ## calculate upper x-axis label values label.x.upper <- if(log.z == TRUE) { as.character(round(1/axTicks(side = 1)[-1] * 100, 1)) } else { as.character(round(1/axTicks(side = 1)[-1], 1)) } # optionally, plot 2-sigma-bar if(bar[1] != FALSE) { for(i in 1:length(bar)) { polygon(x = bars[i,1:4], y = bars[i,5:8], col = bar.fill[i], border = bar.line[i]) } } ## remove unwanted parts polygon(x = c(par()$usr[2], par()$usr[2], par()$usr[2] * 2, par()$usr[2] * 2), y = c(min(ellipse[,2]) * 2, max(ellipse[,2]) * 2, max(ellipse[,2]) * 2, min(ellipse[,2]) * 2), col = bg.original, lty = 0) ## optionally, plot dispersion polygon if(polygon.fill[1] != "none") { for(i in 1:length(data)) { polygon(x = polygons[i,1:7], y = polygons[i,8:14], col = polygon.fill[i], border = polygon.line[i]) } } ## optionally, add minor grid lines if(grid.minor != "none") { for(i in 1:length(tick.values.minor)) { lines(x = c(limits.x[1], min(ellipse[,1])), y = c(0, (tick.values.minor[i] - z.central.global) * min(ellipse[,1])), col = grid.minor, lwd = 1) } for(i in 1:length(tick.values.minor)) { lines(x = c(xy.0[1], par()$usr[2]), y = c((tick.values.minor[i] - z.central.global) * min(ellipse[,1]), (tick.values.minor[i] - z.central.global) * min(ellipse[,1])), col = grid.minor, lwd = 1) } } ## optionally, add major grid lines if(grid.major != "none") { for(i in 1:length(tick.values.major)) { lines(x = c(limits.x[1], min(ellipse[,1])), y = c(0, (tick.values.major[i] - z.central.global) * min(ellipse[,1])), col = grid.major, lwd = 1) } for(i in 1:length(tick.values.major)) { lines(x = c(xy.0[1], par()$usr[2]), y = c((tick.values.major[i] - z.central.global) * min(ellipse[,1]), (tick.values.major[i] - z.central.global) * min(ellipse[,1])), col = grid.major, lwd = 1) } } ## optionally, plot lines for each bar if(lwd[1] > 0 & lty[1] > 0 & bar[1] != FALSE & length(data) == 1) { if(bar[1] == TRUE & length(bar) == 1) { bar[1] <- z.central.global } for(i in 1:length(bar)) { x2 <- r / sqrt(1 + f^2 * ( bar[i] - z.central.global)^2) y2 <- (bar[i] - z.central.global) * x2 lines(x = c(limits.x[1], x2, xy.0[1], par()$usr[2]), y = c(0, y2, y2, y2), lty = lty[i], lwd = lwd[i], col = centrality.col[i]) } } else if(lwd[1] > 0 & lty[1] > 0 & bar[1] != FALSE) { for(i in 1:length(data)) { z.line <- ifelse(test = is.numeric(bar[i]) == TRUE, yes = bar[i], no = data[[i]][1,5]) x2 <- r / sqrt(1 + f^2 * ( z.line - z.central.global)^2) y2 <- (z.line - z.central.global) * x2 lines(x = c(limits.x[1], x2, xy.0[1], par()$usr[2]), y = c(0, y2, y2, y2), lty = lty[i], lwd = lwd[i], col = centrality.col[i]) } } ## optionally add further lines if(!missing(line)) { for(i in 1:length(line)) { lines(x = line.coords[[i]][1,1:3], y = line.coords[[i]][2,1:3], col = line.col[i], lty = line.lty[i] ) text(x = line.coords[[i]][1,3], y = line.coords[[i]][2,3] + par()$cxy[2] * 0.3, labels = line.label[i], pos = 2, col = line.col[i], cex = cex * 0.9) } } ## add plot title cex.old <- par()$cex par(cex = layout$abanico$font.size$main / 12) title(main = main, family = layout$abanico$font.type$main, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$main)[1], col.main = layout$abanico$colour$main, line = shift.lines * layout$abanico$dimension$main / 100) par(cex = cex.old) ## calculate lower x-axis (precision) x.axis.ticks <- axTicks(side = 1) x.axis.ticks <- x.axis.ticks[c(TRUE, x.axis.ticks <= limits.x[2])] x.axis.ticks <- x.axis.ticks[x.axis.ticks <= max(ellipse[,1])] ## x-axis with lables and ticks axis(side = 1, at = x.axis.ticks, col = layout$abanico$colour$xtck1, col.axis = layout$abanico$colour$xtck1, labels = NA, tcl = -layout$abanico$dimension$xtcl1 / 200, cex = cex) axis(side = 1, at = x.axis.ticks, line = 2 * layout$abanico$dimension$xtck1.line / 100 - 2, lwd = 0, col = layout$abanico$colour$xtck1, family = layout$abanico$font.type$xtck1, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xtck1)[1], col.axis = layout$abanico$colour$xtck1, cex.axis = layout$abanico$font.size$xlab1/12) ## extend axis line to right side of the plot lines(x = c(max(x.axis.ticks), max(ellipse[,1])), y = c(limits.y[1], limits.y[1]), col = layout$abanico$colour$xtck1) ## draw closing tick on right hand side axis(side = 1, tcl = -layout$abanico$dimension$xtcl1 / 200, lwd = 0, lwd.ticks = 1, at = limits.x[2], labels = FALSE, col = layout$abanico$colour$xtck1) axis(side = 1, tcl = layout$abanico$dimension$xtcl2 / 200, lwd = 0, lwd.ticks = 1, at = limits.x[2], labels = FALSE, col = layout$abanico$colour$xtck2) ## add lower axis label mtext(xlab[2], at = (limits.x[1] + max(ellipse[,1])) / 2, side = 1, line = 2.5 * layout$abanico$dimension$xlab1.line / 100, col = layout$abanico$colour$xlab1, family = layout$abanico$font.type$xlab1, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xlab1)[1], cex = cex * layout$abanico$font.size$xlab1/12) ## add upper axis label mtext(xlab[1], at = (limits.x[1] + max(ellipse[,1])) / 2, side = 1, line = -3.5 * layout$abanico$dimension$xlab2.line / 100, col = layout$abanico$colour$xlab2, family = layout$abanico$font.type$xlab2, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xlab2)[1], cex = cex * layout$abanico$font.size$xlab2/12) ## plot upper x-axis axis(side = 1, at = x.axis.ticks[-1], col = layout$abanico$colour$xtck2, col.axis = layout$abanico$colour$xtck2, labels = NA, tcl = layout$abanico$dimension$xtcl2 / 200, cex = cex) ## remove first tick label (infinity) label.x.upper <- label.x.upper[1:(length(x.axis.ticks) - 1)] axis(side = 1, at = x.axis.ticks[-1], labels = label.x.upper, line = -1 * layout$abanico$dimension$xtck2.line / 100 - 2, lwd = 0, col = layout$abanico$colour$xtck2, family = layout$abanico$font.type$xtck2, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xtck2)[1], col.axis = layout$abanico$colour$xtck2, cex.axis = layout$abanico$font.size$xlab2/12) ## plot y-axis if(is.null(extraArgs$yaxt) || extraArgs$yaxt != "n"){ line <- 2 * layout$abanico$dimension$ytck.line / 100 - 2 family <- layout$abanico$font.type$ytck font <- which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$ytck)[1] col.axis <- layout$abanico$colour$ytck cex.axis <- layout$abanico$font.size$ylab/12 if(y.axis) { char.height <- par()$cxy[2] tick.space <- grDevices::axisTicks(usr = limits.y, log = FALSE) tick.space <- (max(tick.space) - min(tick.space)) / length(tick.space) ## this comes into play for panel plots, e.g., par(mfrow = c(4,4)) if(tick.space < char.height * 1.7) { axis(side = 2, tcl = -layout$abanico$dimension$ytcl / 200, lwd = 1, lwd.ticks = 1, at = c(-2, 2), labels = c("", ""), las = 1, col = layout$abanico$colour$ytck) axis(side = 2, at = 0, tcl = 0, labels = paste("\u00B1", "2"), line = line, las = 1, family = family, font = font, col.axis = col.axis, cex.axis = cex.axis) } else { axis(side = 2, at = seq(-2, 2, by = 2), col = layout$abanico$colour$ytck, col.axis = layout$abanico$colour$ytck, labels = NA, las = 1, tcl = -layout$abanico$dimension$ytcl / 200, cex = cex) axis(side = 2, at = seq(-2, 2, by = 2), col = layout$abanico$colour$ytck, line = line, lwd = 0, las = 1, family = family, font = font, col.axis = col.axis, cex.axis = cex.axis) } } else { axis(side = 2, at = 0, col = layout$abanico$colour$ytck, col.axis = layout$abanico$colour$ytck, labels = NA, las = 1, tcl = -layout$abanico$dimension$ytcl / 200, cex = cex) axis(side = 2, at = 0, col = layout$abanico$colour$ytck, line = line, lwd = 0, las = 1, family = family, font = font, col.axis = col.axis, cex.axis = cex.axis) } } ## plot minor z-ticks for(i in 1:length(tick.values.minor)) { lines(x = c(par()$usr[2], (1 + 0.007 * cex * layout$abanico$dimension$ztcl / 100) * par()$usr[2]), y = c((tick.values.minor[i] - z.central.global) * min(ellipse[,1]), (tick.values.minor[i] - z.central.global) * min(ellipse[,1])), col = layout$abanico$colour$ztck) } ## plot major z-ticks for(i in 1:length(tick.values.major)) { lines(x = c(par()$usr[2], (1 + 0.015 * cex * layout$abanico$dimension$ztcl / 100) * par()$usr[2]), y = c((tick.values.major[i] - z.central.global) * min(ellipse[,1]), (tick.values.major[i] - z.central.global) * min(ellipse[,1])), col = layout$abanico$colour$ztck) } ## plot z-axes lines(ellipse, col = layout$abanico$colour$border) lines(rep(par()$usr[2], nrow(ellipse)), ellipse[,2], col = layout$abanico$colour$ztck) ## plot z-axis text text(x = (1 + 0.04 * cex * layout$abanico$dimension$ztcl / 100) * par()$usr[2], y = (tick.values.major - z.central.global) * min(ellipse[,1]), labels = label.z.text, adj = 0, family = layout$abanico$font.type$ztck, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$ztck)[1], cex = cex * layout$abanico$font.size$ztck/12) ## plot z-label mtext(text = zlab, at = mean(x = c(min(ellipse[,2]), max(ellipse[,2])), na.rm = TRUE), # at = 0, ## BUG from version 0.4.0, maybe removed in future side = 4, las = 3, adj = 0.5, line = 5 * layout$abanico$dimension$zlab.line / 100, col = layout$abanico$colour$zlab, family = layout$abanico$font.type$zlab, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$zlab)[1], cex = cex * layout$abanico$font.size$zlab/12) ## plot values and optionally error bars if(error.bars == TRUE) { for(i in 1:length(data)) { graphics::arrows(x0 = arrow.coords[[i]][,1], x1 = arrow.coords[[i]][,2], y0 = arrow.coords[[i]][,3], y1 = arrow.coords[[i]][,4], length = 0, angle = 90, code = 3, col = value.bar[i]) } } for(i in 1:length(data)) { points(data[[i]][,6][data[[i]][,6] <= limits.x[2]], data[[i]][,8][data[[i]][,6] <= limits.x[2]], col = value.dot[i], pch = pch[i], cex = layout$abanico$dimension$pch / 100) } ## calculate KDE width KDE.max <- 0 for(i in 1:length(data)) { KDE.max <- ifelse(test = KDE.max < max(KDE[[i]][,2]), yes = max(KDE[[i]][,2]), no = KDE.max) } ## optionally adjust KDE width for boxplot option if(boxplot == TRUE) { KDE.max <- 1.25 * KDE.max } KDE.scale <- (par()$usr[2] - xy.0[1]) / (KDE.max * 1.05) ## optionally add KDE plot if(kde == TRUE) { ## plot KDE lines for(i in 1:length(data)) { polygon(x = xy.0[1] + KDE[[i]][,2] * KDE.scale, y = (KDE[[i]][,1] - z.central.global) * min(ellipse[,1]), col = kde.fill[i], border = kde.line[i], lwd = 1.7) } ## plot KDE x-axis axis(side = 1, at = c(xy.0[1], par()$usr[2]), col = layout$abanico$colour$xtck3, col.axis = layout$abanico$colour$xtck3, labels = NA, tcl = -layout$abanico$dimension$xtcl3 / 200, cex = cex) axis(side = 1, at = c(xy.0[1], par()$usr[2]), labels = as.character(round(c(0, KDE.max.plot), 3)), line = 2 * layout$abanico$dimension$xtck3.line / 100 - 2, lwd = 0, col = layout$abanico$colour$xtck3, family = layout$abanico$font.type$xtck3, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xtck3)[1], col.axis = layout$abanico$colour$xtck3, cex.axis = layout$abanico$font.size$xtck3/12) mtext(text = paste(xlab[3], " (bw ", round(x = KDE.bw, digits = 3), ")", sep = ""), at = (xy.0[1] + par()$usr[2]) / 2, side = 1, line = 2.5 * layout$abanico$dimension$xlab3.line / 100, col = layout$abanico$colour$xlab3, family = layout$abanico$font.type$xlab3, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xlab3)[1], cex = cex * layout$abanico$font.size$xlab3/12) } ## optionally add histogram or dot plot axis if(hist == TRUE) { axis(side = 1, at = c(xy.0[1], par()$usr[2]), labels = as.character(c(0, hist.max.plot)), line = -1 * layout$abanico$dimension$xtck3.line / 100 - 2, lwd = 0, col = layout$abanico$colour$xtck3, family = layout$abanico$font.type$xtck3, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xtck3)[1], col.axis = layout$abanico$colour$xtck3, cex.axis = layout$abanico$font.size$xtck3/12) ## add label mtext(text = "n", at = (xy.0[1] + par()$usr[2]) / 2, side = 1, line = -3.5 * layout$abanico$dimension$xlab2.line / 100, col = layout$abanico$colour$xlab2, family = layout$abanico$font.type$xlab2, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xlab2)[1], cex = cex * layout$abanico$font.size$xlab2/12) ## plot ticks axis(side = 1, at = c(xy.0[1], par()$usr[2]), col = layout$abanico$colour$xtck2, col.axis = layout$abanico$colour$xtck2, labels = NA, tcl = layout$abanico$dimension$xtcl2 / 200, cex = cex) ## calculate scaling factor for histogram bar heights hist.scale <- (par()$usr[2] - xy.0[1]) / (KDE.max.plot * 1.05) ## draw each bar for each data set for(i in 1:length(data)) { for(j in 1:length(hist.data[[i]]$density)) { ## calculate x-coordinates hist.x.i <- c(xy.0[1], xy.0[1], xy.0[1] + hist.data[[i]]$density[j] * hist.scale, xy.0[1] + hist.data[[i]]$density[j] * hist.scale) ## calculate y-coordinates hist.y.i <- c((hist.data[[i]]$breaks[j] - z.central.global) * min(ellipse[,1]), (hist.data[[i]]$breaks[j + 1] - z.central.global) * min(ellipse[,1]), (hist.data[[i]]$breaks[j + 1] - z.central.global) * min(ellipse[,1]), (hist.data[[i]]$breaks[j] - z.central.global) * min(ellipse[,1])) ## remove data out of z-axis range hist.y.i <- ifelse(hist.y.i < min(ellipse[,2]), min(ellipse[,2]), hist.y.i) hist.y.i <- ifelse(hist.y.i > max(ellipse[,2]), max(ellipse[,2]), hist.y.i) ## draw the bars polygon(x = hist.x.i, y = hist.y.i, col = kde.fill[i], border = kde.line[i]) } } } ## optionally add dot plot if(dots == TRUE) { for(i in 1:length(data)) { for(j in 1:length(hist.data[[i]]$counts)) { ## calculate scaling factor for histogram bar heights dots.distance <- (par()$usr[2] - (xy.0[1] + par()$cxy[1] * 0.4)) / hist.max.plot dots.x.i <- seq(from = xy.0[1] + par()$cxy[1] * 0.4, by = dots.distance, length.out = hist.data[[i]]$counts[j]) dots.y.i <- rep((hist.data[[i]]$mids[j] - z.central.global) * min(ellipse[,1]), length(dots.x.i)) ## remove data out of z-axis range dots.x.i <- dots.x.i[dots.y.i >= min(ellipse[,2]) & dots.y.i <= max(ellipse[,2])] dots.y.i <- dots.y.i[dots.y.i >= min(ellipse[,2]) & dots.y.i <= max(ellipse[,2])] if(max(c(0, dots.x.i), na.rm = TRUE) >= (par()$usr[2] - par()$cxy[1] * 0.4)) { dots.y.i <- dots.y.i[dots.x.i < (par()$usr[2] - par()$cxy[1] * 0.4)] dots.x.i <- dots.x.i[dots.x.i < (par()$usr[2] - par()$cxy[1] * 0.4)] pch.dots <- c(rep(20, max(length(dots.x.i) - 1),1), 15) } else { pch.dots <- rep(20, length(dots.x.i)) } ## plot points points(x = dots.x.i, y = dots.y.i, pch = "|", cex = 0.7 * cex, col = kde.line[i]) } } } ## optionally add box plot if(boxplot == TRUE) { for(i in 1:length(data)) { ## draw median line lines(x = c(xy.0[1] + KDE.max * 0.85, xy.0[1] + KDE.max * 0.95), y = c((boxplot.data[[i]]$stats[3,1] - z.central.global) * min(ellipse[,1]), (boxplot.data[[i]]$stats[3,1] - z.central.global) * min(ellipse[,1])), lwd = 2, col = kde.line[i]) ## draw p25-p75-polygon polygon(x = c(xy.0[1] + KDE.max * 0.85, xy.0[1] + KDE.max * 0.85, xy.0[1] + KDE.max * 0.95, xy.0[1] + KDE.max * 0.95), y = c((boxplot.data[[i]]$stats[2,1] - z.central.global) * min(ellipse[,1]), (boxplot.data[[i]]$stats[4,1] - z.central.global) * min(ellipse[,1]), (boxplot.data[[i]]$stats[4,1] - z.central.global) * min(ellipse[,1]), (boxplot.data[[i]]$stats[2,1] - z.central.global) * min(ellipse[,1])), border = kde.line[i]) ## draw whiskers lines(x = c(xy.0[1] + KDE.max * 0.9, xy.0[1] + KDE.max * 0.9), y = c((boxplot.data[[i]]$stats[2,1] - z.central.global) * min(ellipse[,1]), (boxplot.data[[i]]$stats[1,1] - z.central.global) * min(ellipse[,1])), col = kde.line[i]) lines(x = c(xy.0[1] + KDE.max * 0.87, xy.0[1] + KDE.max * 0.93), y = rep((boxplot.data[[i]]$stats[1,1] - z.central.global) * min(ellipse[,1]), 2), col = kde.line[i]) lines(x = c(xy.0[1] + KDE.max * 0.9, xy.0[1] + KDE.max * 0.9), y = c((boxplot.data[[i]]$stats[4,1] - z.central.global) * min(ellipse[,1]), (boxplot.data[[i]]$stats[5,1] - z.central.global) * min(ellipse[,1])), col = kde.line[i]) lines(x = c(xy.0[1] + KDE.max * 0.87, xy.0[1] + KDE.max * 0.93), y = rep((boxplot.data[[i]]$stats[5,1] - z.central.global) * min(ellipse[,1]), 2), col = kde.line[i]) ## draw outlier points points(x = rep(xy.0[1] + KDE.max * 0.9, length(boxplot.data[[i]]$out)), y = (boxplot.data[[i]]$out - z.central.global) * min(ellipse[,1]), cex = cex * 0.8, col = kde.line[i]) } } ## optionally add stats, i.e. min, max, median sample text if(length(stats) > 0) { text(x = stats.data[,1], y = stats.data[,2], pos = 2, labels = round(stats.data[,3], 1), family = layout$abanico$font.type$stats, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$stats)[1], cex = cex * layout$abanico$font.size$stats/12, col = layout$abanico$colour$stats) } ## optionally add rug if(rug == TRUE) { for(i in 1:length(rug.coords)) { lines(x = rug.coords[[i]][1,], y = rug.coords[[i]][2,], col = value.rug[data.global[i,10]]) } } ## plot KDE base line lines(x = c(xy.0[1], xy.0[1]), y = c(min(ellipse[,2]), max(ellipse[,2])), col = layout$abanico$colour$border) ## draw border around plot if(frame == 1) { polygon(x = c(limits.x[1], min(ellipse[,1]), par()$usr[2], par()$usr[2], min(ellipse[,1])), y = c(0, max(ellipse[,2]), max(ellipse[,2]), min(ellipse[,2]), min(ellipse[,2])), border = layout$abanico$colour$border, lwd = 0.8) } else if(frame == 2) { polygon(x = c(limits.x[1], min(ellipse[,1]), par()$usr[2], par()$usr[2], min(ellipse[,1]), limits.x[1]), y = c(2, max(ellipse[,2]), max(ellipse[,2]), min(ellipse[,2]), min(ellipse[,2]), -2), border = layout$abanico$colour$border, lwd = 0.8) } else if(frame == 3) { polygon(x = c(limits.x[1], par()$usr[2], par()$usr[2], limits.x[1]), y = c(max(ellipse[,2]), max(ellipse[,2]), min(ellipse[,2]), min(ellipse[,2])), border = layout$abanico$colour$border, lwd = 0.8) } ## optionally add legend content if(!missing(legend)) { ## store and change font family par.family <- par()$family par(family = layout$abanico$font.type$legend) legend(x = legend.pos[1], y = 0.8 * legend.pos[2], xjust = legend.adj[1], yjust = legend.adj[2], legend = legend, pch = pch, col = value.dot, text.col = value.dot, text.font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$legend)[1], cex = cex * layout$abanico$font.size$legend/12, bty = "n") ## restore font family par(family = par.family) } ## optionally add subheader text mtext(text = mtext, side = 3, line = (shift.lines - 2) * layout$abanico$dimension$mtext / 100, col = layout$abanico$colour$mtext, family = layout$abanico$font.type$mtext, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$mtext)[1], cex = cex * layout$abanico$font.size$mtext / 12) ## add summary content for(i in 1:length(data)) { if(summary.pos[1] != "sub") { text(x = summary.pos[1], y = summary.pos[2], adj = summary.adj, labels = label.text[[i]], col = summary.col[i], family = layout$abanico$font.type$summary, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$summary)[1], cex = cex * layout$abanico$font.size$summary / 12) } else { if(mtext == "") { mtext(side = 3, line = (shift.lines- 1 - i) * layout$abanico$dimension$summary / 100 , text = label.text[[i]], col = summary.col[i], family = layout$abanico$font.type$summary, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$summary)[1], cex = cex * layout$abanico$font.size$summary / 12) } } } } else { ## setup plot area par(mar = c(4, 4, shift.lines + 5, 4), xpd = TRUE, cex = cex) dim <- layout$abanico$dimension if (dim$figure.width != "auto" || dim$figure.height != "auto") { par(mai = dim$margin / 25.4, pin = c(dim$figure.width - dim$margin[2] - dim$margin[4], dim$figure.height - dim$margin[1] - dim$margin[3]) / 25.4) } ## create empty plot par(new = TRUE) plot(NA, xlim = limits.y, ylim = c(limits.x[1], limits.x[2] * (1 / plot.ratio)), main = "", sub = sub, xlab = "", ylab = "", xaxs = "i", yaxs = "i", frame.plot = FALSE, axes = FALSE) ## add y-axis label mtext(text = ylab, at = 0, adj = 0.5, side = 1, line = 3 * layout$abanico$dimension$ylab.line / 100, col = layout$abanico$colour$ylab, family = layout$abanico$font.type$ylab, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$ylab)[1], cex = cex * layout$abanico$font.size$ylab/12) ## calculate upper x-axis label values label.x.upper <- if(log.z == TRUE) { as.character(round(1/axTicks(side = 2)[-1] * 100, 1)) } else { as.character(round(1/axTicks(side = 2)[-1], 1)) } # optionally, plot 2-sigma-bar if(bar[1] != FALSE) { for(i in 1:length(bar)) { polygon(x = bars[i,1:4], y = bars[i,5:8], col = bar.fill[i], border = bar.line[i]) } } ## remove unwanted parts polygon(y = c(par()$usr[2], par()$usr[2], par()$usr[2] * 2, par()$usr[2] * 2), x = c(min(ellipse[,2]) * 2, max(ellipse[,2]) * 2, max(ellipse[,2]) * 2, min(ellipse[,2]) * 2), col = bg.original, lty = 0) ## optionally, plot dispersion polygon if(polygon.fill[1] != "none") { for(i in 1:length(data)) { polygon(x = polygons[i,8:14], y = polygons[i,1:7], col = polygon.fill[i], border = polygon.line[i]) } } ## optionally, add minor grid lines if(grid.minor != "none") { for(i in 1:length(tick.values.minor)) { lines(y = c(limits.x[1], min(ellipse[,1])), x = c(0, (tick.values.minor[i] - z.central.global) * min(ellipse[,1])), col = grid.minor, lwd = 1) } for(i in 1:length(tick.values.minor)) { lines(y = c(xy.0[2], par()$usr[2]), x = c((tick.values.minor[i] - z.central.global) * min(ellipse[,1]), (tick.values.minor[i] - z.central.global) * min(ellipse[,1])), col = grid.minor, lwd = 1) } } ## optionally, add major grid lines if(grid.major != "none") { for(i in 1:length(tick.values.major)) { lines(y = c(limits.x[1], min(ellipse[,2])), x = c(0, (tick.values.major[i] - z.central.global) * min(ellipse[,2])), col = grid.major, lwd = 1) } for(i in 1:length(tick.values.major)) { lines(y = c(xy.0[2],y.max), x = c((tick.values.major[i] - z.central.global) * min(ellipse[,2]), (tick.values.major[i] - z.central.global) * min(ellipse[,2])), col = grid.major, lwd = 1) } } ## optionally, plot lines for each bar if(lwd[1] > 0 & lty[1] > 0 & bar[1] != FALSE & length(data) == 1) { if(bar[1] == TRUE & length(bar) == 1) { bar[1] <- z.central.global } for(i in 1:length(bar)) { x2 <- r / sqrt(1 + f^2 * ( bar[i] - z.central.global)^2) y2 <- (bar[i] - z.central.global) * x2 lines(x = c(0, y2, y2, y2), y = c(limits.x[1], x2, xy.0[2], par()$usr[4]), lty = lty[i], lwd = lwd[i], col = centrality.col[i]) } } ## optionally add further lines if(missing(line) == FALSE) { for(i in 1:length(line)) { lines(y = line.coords[[i]][1,1:3], x = line.coords[[i]][2,1:3], col = line.col[i], lty = line.lty[i] ) text(y = line.coords[[i]][1,3], x = line.coords[[i]][2,3] + par()$cxy[2] * 0.3, labels = line.label[i], pos = 2, col = line.col[i], cex = cex * 0.9) } } ## add plot title cex.old <- par()$cex par(cex = layout$abanico$font.size$main / 12) title(main = main, family = layout$abanico$font.type$main, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$main)[1], col.main = layout$abanico$colour$main, line = (shift.lines + 3.5) * layout$abanico$dimension$main / 100) par(cex = cex.old) ## calculate lower x-axis (precision) x.axis.ticks <- axTicks(side = 2) x.axis.ticks <- x.axis.ticks[c(TRUE, x.axis.ticks <= limits.x[2])] x.axis.ticks <- x.axis.ticks[x.axis.ticks <= max(ellipse[,2])] ## x-axis with lables and ticks axis(side = 2, at = x.axis.ticks, col = layout$abanico$colour$xtck1, col.axis = layout$abanico$colour$xtck1, labels = NA, tcl = -layout$abanico$dimension$xtcl1 / 200, cex = cex) axis(side = 2, at = x.axis.ticks, line = 2 * layout$abanico$dimension$xtck1.line / 100 - 2, lwd = 0, col = layout$abanico$colour$xtck1, family = layout$abanico$font.type$xtck1, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xtck1)[1], col.axis = layout$abanico$colour$xtck1, cex.axis = layout$abanico$font.size$xlab1/12) ## extend axis line to right side of the plot lines(y = c(max(x.axis.ticks), max(ellipse[,2])), x = c(limits.y[1], limits.y[1]), col = layout$abanico$colour$xtck1) ## draw closing tick on right hand side axis(side = 2, tcl = -layout$abanico$dimension$xtcl1 / 200, lwd = 0, lwd.ticks = 1, at = limits.x[2], labels = FALSE, col = layout$abanico$colour$xtck1) axis(side = 2, tcl = layout$abanico$dimension$xtcl2 / 200, lwd = 0, lwd.ticks = 1, at = limits.x[2], labels = FALSE, col = layout$abanico$colour$xtck2) ## add lower axis label mtext(xlab[2], at = (limits.x[1] + max(ellipse[,2])) / 2, side = 2, line = 2.5 * layout$abanico$dimension$xlab1.line / 100, col = layout$abanico$colour$xlab1, family = layout$abanico$font.type$xlab1, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xlab1)[1], cex = cex * layout$abanico$font.size$xlab1/12) ## add upper axis label mtext(xlab[1], at = (limits.x[1] + max(ellipse[,2])) / 2, side = 2, line = -3.5 * layout$abanico$dimension$xlab2.line / 100, col = layout$abanico$colour$xlab2, family = layout$abanico$font.type$xlab2, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xlab2)[1], cex = cex * layout$abanico$font.size$xlab2/12) ## plot upper x-axis axis(side = 2, at = x.axis.ticks[-1], col = layout$abanico$colour$xtck2, col.axis = layout$abanico$colour$xtck2, labels = NA, tcl = layout$abanico$dimension$xtcl2 / 200, cex = cex) ## remove first tick label (infinity) label.x.upper <- label.x.upper[1:(length(x.axis.ticks) - 1)] axis(side = 2, at = x.axis.ticks[-1], labels = label.x.upper, line = -1 * layout$abanico$dimension$xtck2.line / 100 - 2, lwd = 0, col = layout$abanico$colour$xtck2, family = layout$abanico$font.type$xtck2, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xtck2)[1], col.axis = layout$abanico$colour$xtck2, cex.axis = layout$abanico$font.size$xlab2/12) ## plot y-axis if(y.axis[1]) { char.height <- par()$cxy[2] tick.space <- grDevices::axisTicks(usr = limits.y, log = FALSE) tick.space <- (max(tick.space) - min(tick.space)) / length(tick.space) if(tick.space < char.height * 1.7) { axis(side = 1, tcl = -layout$abanico$dimension$ytcl / 200, lwd = 1, lwd.ticks = 1, at = c(-2, 2), labels = c("", ""), las = 1, col = layout$abanico$colour$ytck) axis(side = 1, at = 0, tcl = 0, line = 2 * layout$abanico$dimension$ytck.line / 100 - 2, labels = paste("\u00B1", "2"), las = 1, family = layout$abanico$font.type$ytck, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$ytck)[1], col.axis = layout$abanico$colour$ytck, cex.axis = layout$abanico$font.size$ylab/12) } else { axis(side = 1, at = seq(-2, 2, by = 2), col = layout$abanico$colour$ytck, col.axis = layout$abanico$colour$ytck, labels = NA, las = 1, tcl = -layout$abanico$dimension$ytcl / 200, cex = cex) axis(side = 1, at = seq(-2, 2, by = 2), line = 2 * layout$abanico$dimension$ytck.line / 100 - 2, lwd = 0, las = 1, col = layout$abanico$colour$ytck, family = layout$abanico$font.type$ytck, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$ytck)[1], col.axis = layout$abanico$colour$ytck, cex.axis = layout$abanico$font.size$ylab/12) } } else { axis(side = 1, at = 0, col = layout$abanico$colour$ytck, col.axis = layout$abanico$colour$ytck, labels = NA, las = 1, tcl = -layout$abanico$dimension$ytcl / 200, cex = cex) axis(side = 1, at = 0, line = 2 * layout$abanico$dimension$ytck.line / 100 - 2, lwd = 0, las = 1, col = layout$abanico$colour$ytck, family = layout$abanico$font.type$ytck, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$ytck)[1], col.axis = layout$abanico$colour$ytck, cex.axis = layout$abanico$font.size$ylab/12) } ## plot minor z-ticks for(i in 1:length(tick.values.minor)) { lines(y = c(par()$usr[4], (1 + 0.015 * cex * layout$abanico$dimension$ztcl / 100) * y.max), x = c((tick.values.minor[i] - z.central.global) * min(ellipse[,2]), (tick.values.minor[i] - z.central.global) * min(ellipse[,2])), col = layout$abanico$colour$ztck) } ## plot major z-ticks for(i in 1:length(tick.values.major)) { lines(y = c(par()$usr[4], (1 + 0.03 * cex * layout$abanico$dimension$ztcl / 100) * y.max), x = c((tick.values.major[i] - z.central.global) * min(ellipse[,2]), (tick.values.major[i] - z.central.global) * min(ellipse[,2])), col = layout$abanico$colour$ztck) } ## plot z-axes lines(ellipse, col = layout$abanico$colour$border) lines(y = rep(par()$usr[4], nrow(ellipse)), x = ellipse[,1], col = layout$abanico$colour$ztck) ## plot z-axis text text(y = (1 + 0.06 * cex * layout$abanico$dimension$ztcl / 100) * y.max, x = (tick.values.major - z.central.global) * min(ellipse[,2]), labels = label.z.text, adj = 0.5, family = layout$abanico$font.type$ztck, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$ztck)[1], cex = cex * layout$abanico$font.size$ztck/12) ## plot z-label mtext(text = zlab, at = 0, side = 3, las = 1, adj = 0.5, line = 2.5 * layout$abanico$dimension$zlab.line / 100, col = layout$abanico$colour$zlab, family = layout$abanico$font.type$zlab, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$zlab)[1], cex = cex * layout$abanico$font.size$zlab/12) ## plot values and optionally error bars if(error.bars == TRUE) { for(i in 1:length(data)) { graphics::arrows(y0 = arrow.coords[[i]][,1], y1 = arrow.coords[[i]][,2], x0 = arrow.coords[[i]][,3], x1 = arrow.coords[[i]][,4], length = 0, angle = 90, code = 3, col = value.bar[i]) } } for(i in 1:length(data)) { points(y = data[[i]][,6][data[[i]][,6] <= limits.x[2]], x = data[[i]][,8][data[[i]][,6] <= limits.x[2]], col = value.dot[i], pch = pch[i], cex = layout$abanico$dimension$pch / 100) } ## calculate KDE width KDE.max <- 0 for(i in 1:length(data)) { KDE.max <- ifelse(test = KDE.max < max(KDE[[i]][,2]), yes = max(KDE[[i]][,2]), no = KDE.max) } ## optionally adjust KDE width for boxplot option if(boxplot == TRUE) { KDE.max <- 1.3 * KDE.max } KDE.scale <- (par()$usr[4] - xy.0[2]) / (KDE.max * 1.05) ## optionally add KDE plot if(kde == TRUE) { ## plot KDE lines for(i in 1:length(data)) { polygon(y = xy.0[2] + KDE[[i]][,2] * KDE.scale, x = (KDE[[i]][,1] - z.central.global) * min(ellipse[,2]), col = kde.fill[i], border = kde.line[i], lwd = 1.7) } ## plot KDE x-axis axis(side = 2, at = c(xy.0[2], y.max), col = layout$abanico$colour$xtck3, col.axis = layout$abanico$colour$xtck3, labels = NA, tcl = -layout$abanico$dimension$xtcl3 / 200, cex = cex) axis(side = 2, at = c(xy.0[2], y.max), labels = as.character(round(c(0, KDE.max.plot), 3)), line = 2 * layout$abanico$dimension$xtck3.line / 100 - 2, lwd = 0, col = layout$abanico$colour$xtck3, family = layout$abanico$font.type$xtck3, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xtck3)[1], col.axis = layout$abanico$colour$xtck3, cex.axis = layout$abanico$font.size$xtck3/12) mtext(text = paste(xlab[3], " (bw ", round(x = KDE.bw, digits = 3), ")", sep = ""), at = (xy.0[2] + y.max) / 2, side = 2, line = 2.5 * layout$abanico$dimension$xlab3.line / 100, col = layout$abanico$colour$xlab3, family = layout$abanico$font.type$xlab3, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xlab3)[1], cex = cex * layout$abanico$font.size$xlab3/12) } ## optionally add histogram or dot plot axis if(hist == TRUE) { axis(side = 2, at = c(xy.0[2], y.max), labels = as.character(c(0, hist.max.plot)), line = -1 * layout$abanico$dimension$xtck3.line / 100 - 2, lwd = 0, col = layout$abanico$colour$xtck3, family = layout$abanico$font.type$xtck3, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xtck3)[1], col.axis = layout$abanico$colour$xtck3, cex.axis = layout$abanico$font.size$xtck3/12) ## add label mtext(text = "n", at = (xy.0[2] + y.max) / 2, side = 2, line = -3.5 * layout$abanico$dimension$xlab2.line / 100, col = layout$abanico$colour$xlab2, family = layout$abanico$font.type$xlab2, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$xlab2)[1], cex = cex * layout$abanico$font.size$xlab2/12) ## plot ticks axis(side = 2, at = c(xy.0[2], y.max), col = layout$abanico$colour$xtck2, col.axis = layout$abanico$colour$xtck2, labels = NA, tcl = layout$abanico$dimension$xtcl2 / 200, cex = cex) ## calculate scaling factor for histogram bar heights hist.scale <- (par()$usr[4] - xy.0[2]) / (KDE.max.plot * 1.05) ## draw each bar for each data set for(i in 1:length(data)) { for(j in 1:length(hist.data[[i]]$density)) { ## calculate x-coordinates hist.x.i <- c(xy.0[2], xy.0[2], xy.0[2] + hist.data[[i]]$density[j] * hist.scale, xy.0[2] + hist.data[[i]]$density[j] * hist.scale) ## calculate y-coordinates hist.y.i <- c((hist.data[[i]]$breaks[j] - z.central.global) * min(ellipse[,2]), (hist.data[[i]]$breaks[j + 1] - z.central.global) * min(ellipse[,2]), (hist.data[[i]]$breaks[j + 1] - z.central.global) * min(ellipse[,2]), (hist.data[[i]]$breaks[j] - z.central.global) * min(ellipse[,2])) ## remove data out of z-axis range hist.y.i <- ifelse(hist.y.i < min(ellipse[,1]), min(ellipse[,1]), hist.y.i) hist.y.i <- ifelse(hist.y.i > max(ellipse[,1]), max(ellipse[,1]), hist.y.i) ## draw the bars polygon(y = hist.x.i, x = hist.y.i, col = kde.fill[i], border = kde.line[i]) } } } ## optionally add dot plot if(dots == TRUE) { for(i in 1:length(data)) { for(j in 1:length(hist.data[[i]]$counts)) { ## calculate scaling factor for histogram bar heights dots.distance <- (par()$usr[4] - (xy.0[2] + par()$cxy[1] * 0.4)) / hist.max.plot dots.x.i <- seq(from = xy.0[2] + par()$cxy[2] * 0.4, by = dots.distance, length.out = hist.data[[i]]$counts[j]) dots.y.i <- rep((hist.data[[i]]$mids[j] - z.central.global) * min(ellipse[,2]), length(dots.x.i)) ## remove data out of z-axis range dots.x.i <- dots.x.i[dots.y.i >= min(ellipse[,1]) & dots.y.i <= max(ellipse[,1])] dots.y.i <- dots.y.i[dots.y.i >= min(ellipse[,1]) & dots.y.i <= max(ellipse[,1])] if(max(c(0, dots.x.i), na.rm = TRUE) >= (par()$usr[4] - par()$cxy[2] * 0.4)) { dots.y.i <- dots.y.i[dots.x.i < (par()$usr[4] - par()$cxy[2] * 0.4)] dots.x.i <- dots.x.i[dots.x.i < (par()$usr[4] - par()$cxy[2] * 0.4)] pch.dots <- c(rep(20, length(dots.x.i) - 1), 15) } else { pch.dots <- rep(20, length(dots.x.i)) } ## plot points points(y = dots.x.i, x = dots.y.i, pch = "-", cex = 0.7 * cex, col = kde.line[i]) } } } ## optionally add box plot if(boxplot == TRUE) { for(i in 1:length(data)) { ## draw median line lines(x = c((boxplot.data[[i]]$stats[3,1] - z.central.global) * min(ellipse[,2]), (boxplot.data[[i]]$stats[3,1] - z.central.global) * min(ellipse[,2])), y = c(min(ellipse[,2]) + KDE.max * 0.91, xy.0[2] + KDE.max * 0.96), lwd = 2, col = kde.line[i]) ## draw p25-p75-polygon polygon(y = c(min(ellipse[,2]) + KDE.max * 0.91, min(ellipse[,2]) + KDE.max * 0.91, xy.0[2] + KDE.max * 0.96, xy.0[2] + KDE.max * 0.96), x = c((boxplot.data[[i]]$stats[2,1] - z.central.global) * min(ellipse[,2]), (boxplot.data[[i]]$stats[4,1] - z.central.global) * min(ellipse[,2]), (boxplot.data[[i]]$stats[4,1] - z.central.global) * min(ellipse[,2]), (boxplot.data[[i]]$stats[2,1] - z.central.global) * min(ellipse[,2])), border = kde.line[i]) ## draw whiskers lines(y = rep(mean(c(min(ellipse[,2]) + KDE.max * 0.91, xy.0[2] + KDE.max * 0.96)), 2), x = c((boxplot.data[[i]]$stats[2,1] - z.central.global) * min(ellipse[,2]), (boxplot.data[[i]]$stats[1,1] - z.central.global) * min(ellipse[,2])), col = kde.line[i]) lines(y = c(min(ellipse[,2]) + KDE.max * 0.91, xy.0[2] + KDE.max * 0.96), x = rep((boxplot.data[[i]]$stats[1,1] - z.central.global) * min(ellipse[,2]), 2), col = kde.line[i]) lines(y = rep(mean(c(min(ellipse[,2]) + KDE.max * 0.91, xy.0[2] + KDE.max * 0.96)), 2), x = c((boxplot.data[[i]]$stats[4,1] - z.central.global) * min(ellipse[,2]), (boxplot.data[[i]]$stats[5,1] - z.central.global) * min(ellipse[,2])), col = kde.line[i]) lines(y = c(min(ellipse[,2]) + KDE.max * 0.91, xy.0[2] + KDE.max * 0.96), x = rep((boxplot.data[[i]]$stats[5,1] - z.central.global) * min(ellipse[,2]), 2), col = kde.line[i]) ## draw outlier points points(y = rep(mean(c(min(ellipse[,2]) + KDE.max * 0.91, xy.0[2] + KDE.max * 0.96)), length(boxplot.data[[i]]$out)), x = (boxplot.data[[i]]$out - z.central.global) * min(ellipse[,2]), cex = cex * 0.8, col = kde.line[i]) } } ## optionally add stats, i.e. min, max, median sample text if(length(stats) > 0) { text(y = stats.data[,1], x = stats.data[,2], pos = 2, labels = round(stats.data[,3], 1), family = layout$abanico$font.type$stats, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$stats)[1], cex = cex * layout$abanico$font.size$stats/12, col = layout$abanico$colour$stats) } ## optionally add rug if(rug == TRUE) { for(i in 1:length(rug.coords)) { lines(y = rug.coords[[i]][1,], x = rug.coords[[i]][2,], col = value.rug[data.global[i,10]]) } } ## plot KDE base line lines(y = c(xy.0[2], xy.0[2]), x = c(min(ellipse[,1]), max(ellipse[,1])), col = layout$abanico$colour$border) ## draw border around plot polygon(y = c(limits.x[1], min(ellipse[,2]), y.max, y.max, min(ellipse[,2])), x = c(0, max(ellipse[,1]), max(ellipse[,1]), min(ellipse[,1]), min(ellipse[,1])), border = layout$abanico$colour$border, lwd = 0.8) ## optionally add legend content if(missing(legend) == FALSE) { ## store and change font familiy par.family <- par()$family par(family = layout$abanico$font.type$legend) legend(y = legend.pos[2], x = 0.8 * legend.pos[1], xjust = legend.adj[2], yjust = legend.adj[1], legend = legend, pch = pch, col = value.dot, text.col = value.dot, text.font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$legend)[1], cex = cex * layout$abanico$font.size$legend/12, bty = "n") ## restore font family par(family = par.family) } ## optionally add subheader text mtext(text = mtext, side = 3, line = (shift.lines - 2 + 3.5) * layout$abanico$dimension$mtext / 100, col = layout$abanico$colour$mtext, family = layout$abanico$font.type$mtext, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$mtext)[1], cex = cex * layout$abanico$font.size$mtext / 12) ## add summary content for(i in 1:length(data)) { if(summary.pos[1] != "sub") { text(x = summary.pos[1], y = summary.pos[2], adj = summary.adj, labels = label.text[[i]], col = summary.col[i], family = layout$abanico$font.type$summary, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$summary)[1], cex = cex * layout$abanico$font.size$summary / 12) } else { if(mtext == "") { mtext(side = 3, line = (shift.lines - 1 + 3.5 - i) * layout$abanico$dimension$summary / 100 , text = label.text[[i]], col = summary.col[i], family = layout$abanico$font.type$summary, font = which(c("normal", "bold", "italic", "bold italic") == layout$abanico$font.deco$summary)[1], cex = cex * layout$abanico$font.size$summary / 12) } } } } ##sTeve if (fun && !interactive) sTeve() # nocov ## create numeric output plot.output <- list(xlim = limits.x, ylim = limits.y, zlim = limits.z, polar.box = c(limits.x[1], limits.x[2], min(ellipse[,2]), max(ellipse[,2])), cartesian.box = c(xy.0[1], par()$usr[2], xy.0[2], max(ellipse[,2])), plot.ratio = plot.ratio, data = data, data.global = data.global, KDE = KDE, par = par(no.readonly = TRUE)) ## INTERACTIVE PLOT ---------------------------------------------------------- if (interactive) { .require_suggested_package("plotly", "The interactive abanico plot") ##cheat R check (global visible binding error) x <- NA y <- NA ## tidy data ---- data <- plot.output kde <- data.frame(x = data$KDE[[1]][ ,2], y = data$KDE[[1]][ ,1]) # radial scatter plot ---- point.text <- paste0("Measured value:
", data$data.global$De, " ± ", data$data.global$error, "
", "P(",format(data$data.global$precision, digits = 2, nsmall = 1),", ", format(data$data.global$std.estimate, digits = 2, nsmall = 1),")") IAP <- plotly::plot_ly(data = data$data.global, x = data$data.global$precision, y = data$data.global$std.estimate, type = "scatter", mode = "markers", hoverinfo = "text", text = point.text, name = "Points", yaxis = "y") ellipse <- as.data.frame(ellipse) IAP <- plotly::add_trace(IAP, data = ellipse, x = ~ellipse.x, y = ~ellipse.y, type = "scatter", mode = "lines", hoverinfo = "none", text = "", name = "z-axis (left)", line = list(color = "black", width = 1), yaxis = "y") ellipse.right <- ellipse ellipse.right$ellipse.x <- ellipse.right$ellipse.x * 1/0.75 IAP <- plotly::add_trace(IAP, data = ellipse.right, x = ~ellipse.x, y = ~ellipse.y, type = "scatter", mode = "lines", hoverinfo = "none", text = "", name = "z-axis (right)", line = list(color = "black", width = 1), yaxis = "y") # z-axis ticks major.ticks.x <- c(data$xlim[2] * 1/0.75, (1 + 0.015 * layout$abanico$dimension$ztcl / 100) * data$xlim[2] * 1/0.75) minor.ticks.x <- c(data$xlim[2] * 1/0.75, (1 + 0.01 * layout$abanico$dimension$ztcl / 100) * data$xlim[2] * 1/0.75) major.ticks.y <- (tick.values.major - z.central.global) * min(ellipse[ ,1]) minor.ticks.y <- (tick.values.minor - z.central.global) * min(ellipse[ ,1]) # major z-tick lines for (i in 1:length(major.ticks.y)) { major.tick <- data.frame(x = major.ticks.x, y = rep(major.ticks.y[i], 2)) IAP <- plotly::add_trace(IAP, data = major.tick, x = ~x, y = ~y, showlegend = FALSE, type = "scatter", mode = "lines", hoverinfo = "none", text = "", line = list(color = "black", width = 1), yaxis = "y") } # minor z-tick lines for (i in 1:length(minor.ticks.y)) { minor.tick <- data.frame(x = minor.ticks.x, y = rep(minor.ticks.y[i], 2)) IAP <- plotly::add_trace(IAP, data = minor.tick, x = ~x, y = ~y, showlegend = FALSE, type = "scatter", mode = "lines", hoverinfo = "none", text = "", line = list(color = "black", width = 1), yaxis = "y") } # z-tick label tick.text <- paste(" ", exp(tick.values.major)) tick.pos <- data.frame(x = major.ticks.x[2], y = major.ticks.y) IAP <- plotly::add_trace(IAP, data = tick.pos, x = ~x, y = ~y, showlegend = FALSE, hoverinfo = "none", text = tick.text, textposition = "right", type = "scatter", mode = "text", yaxis = "y") # Central Line ---- central.line <- data.frame(x = c(-100, data$xlim[2]*1/0.75), y = c(0, 0)) central.line.text <- paste0("Central value: ", format(exp(z.central.global), digits = 2, nsmall = 1)) IAP <- plotly::add_trace(IAP, data = central.line, x = ~x, y = ~y, name = "Central line", type = "scatter", mode = "lines", hoverinfo = "text", text = central.line.text, yaxis = "y", line = list(color = "black", width = 0.5, dash = 2)) # KDE plot ---- KDE.x <- xy.0[1] + KDE[[1]][ ,2] * KDE.scale KDE.y <- (KDE[[1]][ ,1] - z.central.global) * min(ellipse[,1]) KDE.curve <- data.frame(x = KDE.x, y = KDE.y) KDE.curve <- KDE.curve[KDE.curve$x != xy.0[1], ] KDE.text <- paste0("Value:", format(exp(KDE.curve$x), digits = 2, nsmall = 1), "
", "Density:", format(KDE.curve$y, digits = 2, nsmall = 1)) IAP <- plotly::add_trace(IAP, data = KDE.curve, x = ~x, y = ~y, name = "KDE", type = "scatter", mode = "lines", hoverinfo = "text", text = KDE.text, line = list(color = "red"), yaxis = "y") # set layout ---- IAP <- plotly::layout(IAP, hovermode = "closest", dragmode = "pan", xaxis = list(range = c(data$xlim[1], data$xlim[2] * 1/0.65), zeroline = FALSE, showgrid = FALSE, tickmode = "array", tickvals = x.axis.ticks), yaxis = list(range = data$ylim, zeroline = FALSE, showline = FALSE, showgrid = FALSE, tickmode = "array", tickvals = c(-2, 0, 2)), shapes = list(list(type = "rect", # 2 sigma bar x0 = 0, y0 = -2, x1 = bars[1,3], y1 = 2, xref = "x", yref = "y", fillcolor = "grey", opacity = 0.2)) ) # show and return interactive plot ---- #print(plotly::subplot(IAP, IAP.kde)) print(IAP) return(IAP) } ## restore initial cex par(cex = cex_old) ## create and return numeric output invisible(plot.output) } Luminescence/R/calc_CentralDose.R0000644000176200001440000002655414762554470016427 0ustar liggesusers#' Apply the central age model (CAM) after Galbraith et al. (1999) to a given #' De distribution #' #' @description #' This function calculates the central dose and dispersion of the De #' distribution, their standard errors and the profile log likelihood function #' for `sigma`. #' #' This function uses the equations of Galbraith & Roberts (2012). The #' parameters `delta` and `sigma` are estimated by numerically solving #' eq. 15 and 16. Their standard errors are approximated using eq. 17. #' In addition, the profile log-likelihood function for `sigma` is #' calculated using eq. 18 and presented as a plot. Numerical values of the #' maximum likelihood approach are **only** presented in the plot and **not** #' in the console. A detailed explanation on maximum likelihood estimation can #' be found in the appendix of Galbraith & Laslett (1993, 468-470) and #' Galbraith & Roberts (2012, 15) #' #' @param data [RLum.Results-class] or [data.frame] (**required**): #' for [data.frame]: two columns with De `(data[,1])` and De error `(data[,2])`. #' Records containing missing values will be removed. #' #' @param sigmab [numeric] (*with default*): #' additional spread in De values. #' This value represents the expected overdispersion in the data should the sample be #' well-bleached (Cunningham & Walling 2012, p. 100). #' **NOTE**: For the logged model (`log = TRUE`) this value must be #' a fraction, e.g. 0.2 (= 20 %). If the un-logged model is used (`log = FALSE`), #' sigmab must be provided in the same absolute units of the De values (seconds or Gray). #' #' @param log [logical] (*with default*): #' fit the (un-)logged central age model to De data. Log transformation is #' allowed only if the De values are positive. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param ... further arguments (`trace`, `verbose`). #' #' @return Returns a plot (*optional*) and terminal output. In addition an #' [RLum.Results-class] object is returned containing the following elements: #' #' \item{.$summary}{[data.frame] summary of all relevant model results.} #' \item{.$data}{[data.frame] original input data} #' \item{.$args}{[list] used arguments} #' \item{.$call}{[call] the function call} #' \item{.$profile}{[data.frame] the log likelihood profile for sigma} #' #' The output should be accessed using the function [get_RLum]. #' #' @section Function version: 1.5 #' #' @author #' Christoph Burow, University of Cologne (Germany) \cr #' Based on a rewritten S script of Rex Galbraith, 2010 #' #' @seealso [plot], [calc_CommonDose], [calc_FiniteMixture], #' [calc_FuchsLang2001], [calc_MinDose] #' #' @references #' Galbraith, R.F. & Laslett, G.M., 1993. Statistical models for #' mixed fission track ages. Nuclear Tracks Radiation Measurements 4, 459-470. #' #' Galbraith, R.F., Roberts, R.G., Laslett, G.M., Yoshida, H. & Olley, #' J.M., 1999. Optical dating of single grains of quartz from Jinmium rock #' shelter, northern Australia. Part I: experimental design and statistical #' models. Archaeometry 41, 339-364. #' #' Galbraith, R.F. & Roberts, R.G., 2012. Statistical aspects of equivalent dose and error calculation and #' display in OSL dating: An overview and some recommendations. Quaternary #' Geochronology 11, 1-27. #' #' **Further reading** #' #' Arnold, L.J. & Roberts, R.G., 2009. Stochastic modelling of multi-grain equivalent dose #' (De) distributions: Implications for OSL dating of sediment mixtures. #' Quaternary Geochronology 4, 204-230. #' #' Bailey, R.M. & Arnold, L.J., 2006. Statistical modelling of single grain quartz De distributions and an #' assessment of procedures for estimating burial dose. Quaternary Science #' Reviews 25, 2475-2502. #' #' Cunningham, A.C. & Wallinga, J., 2012. Realizing the potential of fluvial archives using robust OSL chronologies. #' Quaternary Geochronology 12, 98-106. #' #' Rodnight, H., Duller, G.A.T., Wintle, A.G. & Tooth, S., 2006. Assessing the reproducibility and accuracy #' of optical dating of fluvial deposits. Quaternary Geochronology, 1 109-120. #' #' Rodnight, H., 2008. How many equivalent dose values are needed to #' obtain a reproducible distribution?. Ancient TL 26, 3-10. #' #' @examples #' #' ##load example data #' data(ExampleData.DeValues, envir = environment()) #' #' ##apply the central dose model #' calc_CentralDose(ExampleData.DeValues$CA1) #' #' @md #' @export calc_CentralDose <- function(data, sigmab, log = TRUE, plot = TRUE, ...) { .set_function_name("calc_CentralDose") on.exit(.unset_function_name(), add = TRUE) ## ============================================================================## ## CONSISTENCY CHECK OF INPUT DATA ## ============================================================================## .validate_class(data, c("data.frame", "RLum.Results")) if (inherits(data, "RLum.Results")) { data <- get_RLum(data, "data") } ##remove NA values if (anyNA(data)) { message("[calc_CentralDose()] ", length(which(is.na(data))), " NA values removed from dataset") data <- na.exclude(data) } ##make sure we consider onlyt take the first two columns if(ncol(data) < 2 || nrow(data) < 2) .throw_error("'data' should have at least two columns and two rows") ##extract only the first two columns and set column names data <- data[,1:2] colnames(data) <- c("ED", "ED_Error") ## don't allow log transformation if there are non-positive values if (any(data[, 1] <= 0) && log == TRUE) { log <- FALSE .throw_warning("'data' contains non-positive De values, 'log' set to FALSE") } ## don't allow negative errors, silently make them positive if (any(data[, 2] < 0)) { data[, 2] <- abs(data[, 2]) } if (!missing(sigmab)) { if (sigmab < 0 | sigmab > 1 & log) .throw_error("'sigmab' should be a fraction between 0 and 1 (e.g., 0.2)") } ## ============================================================================## ## ... ARGUMENTS ## ============================================================================## options <- list(verbose = TRUE, trace = FALSE) options <- modifyList(options, list(...)) ## deprecated argument if ("na.rm" %in% names(list(...))) { .throw_warning("'na.rm' is deprecated, missing values are always removed ", "by default") } ## ============================================================================## ## CALCULATIONS ## ============================================================================## # set default value of sigmab if (missing(sigmab)) sigmab <- 0 # calculate yu = log(ED) and su = se(logED) if (log) { yu <- log(data$ED) su <- sqrt((data$ED_Error / data$ED)^2 + sigmab^2) } else { yu <- data$ED su <- sqrt((data$ED_Error)^2 + sigmab^2) } # What does the code do? # >> email conversation with Rex Galbraith 2019-06-29 # >> "fixed point iteration" method to estimate sigma # >> starting with a fixed value # >> once sqrt(sum((wu^2) * (yu - delta)^2 / sum(wu))) gets equal to 1 # >> the iteration is complete # >> if everything has converged agains those fixed values # >> this is the maximum likelihood estimate for # >> sigma and delta # calculate starting values and weights sigma <- 0.15 # keep in mind that this is a relative value wu <- 1 / (sigma^2 + su^2) delta <- sum(wu * yu) / sum(wu) n <- length(yu) # compute mle's for (j in 1:200) { delta <- sum(wu * yu) / sum(wu) sigma <- sigma * sqrt(sum((wu^2) * (yu - delta)^2 / sum(wu))) wu <- 1 / (sigma^2 + su^2) # print iterations if (options$trace) print(round(c(delta, sigma), 4)) ## don't let sigma become zero if (sigma < 1e-16) break() } # save parameters for terminal output out.delta <- ifelse(log, exp(delta), delta) out.sigma <- ifelse(log, sigma * 100, sigma / out.delta * 100) # log likelihood llik <- 0.5 * sum(log(wu)) - 0.5 * sum(wu * (yu - delta)^2) # save parameter for terminal output out.llik <- round(llik, 4) Lmax <- llik # standard errors sedelta <- 1 / sqrt(sum(wu)) sesigma <- 1 / sqrt(2 * sigma^2 * sum(wu^2)) # save parameters for terminal output if (log) { out.sedelta <- sedelta * 100 out.sesigma <- sesigma } else { out.sedelta <- sedelta / out.delta * 100 out.sesigma <- sqrt((sedelta / delta)^2 + (sesigma / out.delta * 100 / out.sigma)^2) * out.sigma / 100 } # profile log likelihood sigmax <- sigma llik <- 0 sig0 <- max(0, sigmax - 8 * sesigma) sig1 <- sigmax + 9.5 * sesigma sig <- try(seq(sig0, sig1, sig1 / 1000), silent = TRUE) if (!inherits(sig, "try-error")) { # TODO: rewrite this loop as a function and maximise with mle2 ll is the actual # log likelihood, llik is a vector of all ll for (s in sig) { wu <- 1 / (s^2 + su^2) mu <- sum(wu * yu)/sum(wu) ll <- 0.5 * sum(log(wu)) - 0.5 * sum(wu * (yu - mu)^2) llik <- c(llik, ll) } llik <- llik[-1] - Lmax } ## ============================================================================## ## TERMINAL OUTPUT ## ============================================================================## if (options$verbose) { cat("\n [calc_CentralDose]") cat(paste("\n\n----------- meta data ----------------")) cat(paste("\n n: ", n)) cat(paste("\n log: ", log)) cat(paste("\n----------- dose estimate ------------")) cat(paste("\n abs. central dose: ", format(out.delta, digits = 2, nsmall = 2))) cat(paste("\n abs. SE: ", format(out.delta * out.sedelta/100, digits = 2, nsmall = 2))) cat(paste("\n rel. SE [%]: ", format(out.sedelta, digits = 2, nsmall = 2))) cat(paste("\n----------- overdispersion -----------")) cat(paste("\n abs. OD: ", format(ifelse(log, sigma * out.delta, sigma), digits = 2, nsmall = 2))) cat(paste("\n abs. SE: ", format(ifelse(log, sesigma * out.delta, sesigma), digits = 2, nsmall = 2))) cat(paste("\n OD [%]: ", format(out.sigma, digits = 2, nsmall = 2))) cat(paste("\n SE [%]: ", if (!inherits(sig, "try-error")) { format(out.sesigma * 100, digits = 2, nsmall = 2) } else { "-" })) cat(paste("\n-------------------------------------\n\n")) } ## ============================================================================## ## RETURN VALUES ## ============================================================================## if (inherits(sig, "try-error")) { out.sigma <- 0 out.sesigma <- NA } if(!log) sig <- sig / delta summary <- data.frame( de = out.delta, de_err = out.delta * out.sedelta / 100, OD = ifelse(log, sigma * out.delta, sigma), OD_err = ifelse(log, sesigma * out.delta, sesigma), rel_OD = out.sigma, rel_OD_err = out.sesigma * 100, Lmax = Lmax) args <- list(log = log, sigmab = sigmab) newRLumResults.calc_CentralDose <- set_RLum( class = "RLum.Results", data = list( summary = summary, data = data, args = args, profile = data.frame( sig = if(!inherits(sig, "try-error")) sig else NA, llik = llik) ), info = list( call = sys.call() ) ) ## =========## PLOTTING if (plot && !inherits(sig, "try-error")) try(plot_RLum.Results(newRLumResults.calc_CentralDose, ...)) invisible(newRLumResults.calc_CentralDose) } Luminescence/R/plot_Risoe.BINfileData.R0000644000176200001440000002123414762554470017410 0ustar liggesusers#' @title Plot Single Luminescence Curves from a Risoe.BINfileData-class object #' #' @description Plots single luminescence curves from an object returned by the #' [read_BIN2R] function [Risoe.BINfileData-class] #' #' @details #' **Nomenclature** #' #' See [Risoe.BINfileData-class] #' #' **curve.transformation** #' #' This argument allows transforming continuous wave (CW) curves to pseudo #' (linear) modulated curves. For the transformation, the functions of the #' package are used. Currently, it is not possible to pass further arguments #' to the transformation functions. The argument works only for `ltype` #' `OSL` and `IRSL`. #' #' **Irradiation time** #' #' Plotting the irradiation time (s) or the given dose (Gy) requires that the #' variable `IRR_TIME` has been set within the BIN-file. This is normally #' done by using the 'Run Info' option within the Sequence Editor or by editing #' in R. #' #' @param data [Risoe.BINfileData-class] (**required**): #' requires an S4 object returned by the [read_BIN2R] function. #' #' @param position [vector] (*optional*): #' option to limit the plotted curves by position #' (e.g. `position = 1`, `position = c(1,3,5)`). #' #' @param run [vector] (*optional*): #' option to limit the plotted curves by run #' (e.g., `run = 1`, `run = c(1,3,5)`). #' #' @param set [vector] (*optional*): #' option to limit the plotted curves by set #' (e.g., `set = 1`, `set = c(1,3,5)`). #' #' @param sorter [character] (*with default*): #' the plot output can be ordered by "POSITION","SET" or "RUN". #' POSITION, SET and RUN are options defined in the Risoe Sequence Editor. #' #' @param ltype [character] (*with default*): #' option to limit the plotted curves by the type of luminescence stimulation. #' Allowed values: `"IRSL"`, `"OSL"`,`"TL"`, `"RIR"`, `"RBR"` #' (corresponds to LM-OSL), `"RL"`. All type of curves are plotted by #' default. #' #' @param curve.transformation [character] (*optional*): #' allows transforming CW-OSL and CW-IRSL curves to pseudo-LM curves via #' transformation functions. Allowed values are: `CW2pLM`, `CW2pLMi`, #' `CW2pHMi` and `CW2pPMi`, see details. If set to `None` (default), no #' transformation is applied. #' #' @param dose_rate [numeric] (*optional*): #' dose rate of the irradiation source at the measurement date. #' If set, the given irradiation dose will be shown in Gy. See details. #' #' @param temp.lab [character] (*optional*): #' option to allow for different temperature units. If no value is set deg. C is chosen. #' #' @param cex.global [numeric] (*with default*): #' global scaling factor. #' #' @param ... further undocumented plot arguments. #' #' @return Returns a plot. #' #' @note #' The function has been successfully tested for the Sequence Editor file #' output version 3 and 4. #' #' @section Function version: 0.4.2 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Michael Dietze, GFZ Potsdam (Germany) #' #' @seealso [Risoe.BINfileData-class], [read_BIN2R], [convert_CW2pLM], #' [convert_CW2pLMi], [convert_CW2pPMi], [convert_CW2pHMi] #' #' @references #' Duller, G., 2007. Analyst. pp. 1-45. #' #' @keywords dplot #' #' @examples #' #' ##load data #' data(ExampleData.BINfileData, envir = environment()) #' #' ##plot all curves from the first position to the desktop #' #pdf(file = "~/Desktop/CurveOutput.pdf", paper = "a4", height = 11, onefile = TRUE) #' #' ##example - load from *.bin file #' #BINfile<- file.choose() #' #BINfileData<-read_BIN2R(BINfile) #' #' #par(mfrow = c(4,3), oma = c(0.5,1,0.5,1)) #' #plot_Risoe.BINfileData(CWOSL.SAR.Data,position = 1) #' #mtext(side = 4, BINfile, outer = TRUE, col = "blue", cex = .7) #' #dev.off() #' #' @md #' @export plot_Risoe.BINfileData<- function( data, position, run, set, sorter = "POSITION", ltype = c("IRSL","OSL","TL","RIR","RBR","RL"), curve.transformation = "None", dose_rate, temp.lab, cex.global = 1, ... ) { .set_function_name("plot_Risoe.BINfileData") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(data, "Risoe.BINfileData") curve.transformation <- .validate_args(curve.transformation, c("CW2pLM", "CW2pLMi", "CW2pHMi", "CW2pPMi", "None")) ## complete the function name if (curve.transformation != "None") { curve.transformation <- paste0("convert_", curve.transformation) } temp <- data ##set plot position if missing if(missing(position)==TRUE){position<-c(min(temp@METADATA[,"POSITION"]):max(temp@METADATA[,"POSITION"]))} if(missing(run)==TRUE){run<-c(min(temp@METADATA[,"RUN"]):max(temp@METADATA[,"RUN"]))} if(missing(set)==TRUE){set<-c(min(temp@METADATA[,"SET"]):max(temp@METADATA[,"SET"]))} ##temp.lab if(missing(temp.lab) == TRUE){temp.lab <- "\u00B0C"} ##fun extraArgs <- list(...) # read out additional arguments list fun <- if ("fun" %in% names(extraArgs)) extraArgs$fun else FALSE # nocov # Ordering -------------------------------------------------------------------- ##(1) order by RUN, SET OR BY POSITION if(sorter=="RUN"){ temp@METADATA<-temp@METADATA[order(temp@METADATA[,"RUN"]),] }else if(sorter=="SET"){ temp@METADATA<-temp@METADATA[order(temp@METADATA[,"SET"]),] }else { temp@METADATA<-temp@METADATA[order(temp@METADATA[,"POSITION"]),] } # Select values for plotting ------------------------------------------------------------------ ##(2) set SEL for selected position ##set all to FALSE temp@METADATA[,"SEL"]<-FALSE ##set TRUE temp@METADATA[(temp@METADATA[,"POSITION"] %in% position)==TRUE & (temp@METADATA[,"RUN"] %in% run)==TRUE & (temp@METADATA[,"SET"] %in% set)==TRUE & (temp@METADATA[,"LTYPE"] %in% ltype)==TRUE,"SEL"]<-TRUE ##------------------------------------------------------------------------## ##PLOTTING ##------------------------------------------------------------------------## ##(3) plot curves for(i in 1:length(temp@METADATA[,"ID"])){ ##print only if SEL == TRUE if(temp@METADATA[i,"SEL"]==TRUE) { ##find measured unit measured_unit<-if(temp@METADATA[i,"LTYPE"]=="TL"){" \u00B0C"}else{"s"} ##set x and y values values.x <- seq(temp@METADATA[i,"HIGH"]/temp@METADATA[i,"NPOINTS"], temp@METADATA[i,"HIGH"],by=temp@METADATA[i,"HIGH"]/temp@METADATA[i,"NPOINTS"]) values.y <- unlist(temp@DATA[temp@METADATA[i,"ID"]]) values.xy <- data.frame(values.x, values.y) ##set curve transformation if wanted if (grepl("IRSL|OSL", temp@METADATA[i, "LTYPE"]) && curve.transformation != "None") { ## get the actual function from the parameter value and apply it values.xy <- get(curve.transformation)(values.xy)[, 1:2] } ##plot graph plot(values.xy, main=paste("pos=", temp@METADATA[i,"POSITION"],", run=", temp@METADATA[i,"RUN"], ", set=", temp@METADATA[i,"SET"],sep="" ), type="l", ylab=paste(temp@METADATA[i,"LTYPE"]," [cts/",round(temp@METADATA[i,"HIGH"]/temp@METADATA[i,"NPOINTS"],digits=3)," ", measured_unit,"]",sep=""), xlab=if(measured_unit=="\u00B0C"){paste("temp. [",temp.lab,"]",sep="")}else{"time [s]"}, col=if(temp@METADATA[i,"LTYPE"]=="IRSL" | temp@METADATA[i,"LTYPE"]=="RIR"){"red"} else if(temp@METADATA[i,"LTYPE"]=="OSL" | temp@METADATA[i,"LTYPE"]=="RBR"){"blue"} else{"black"}, sub=if(temp@METADATA[i,"LTYPE"]=="TL"){paste("(",temp@METADATA[i,"RATE"]," K/s)",sep="")}else{}, lwd=1.2*cex.global, cex=0.9*cex.global ) ##add mtext for temperature ##grep temperature (different for different verions) temperature <- if(temp@METADATA[i,"VERSION"]=="03") { temp@METADATA[i,"AN_TEMP"] } else { temp@METADATA[i,"TEMPERATURE"] } ##mtext mtext(side=3, if(temp@METADATA[i,"LTYPE"]=="TL"){paste("TL to ",temp@METADATA[i,"HIGH"], " ",temp.lab,sep="")} else{paste(temp@METADATA[i,"LTYPE"],"@",temperature," ",temp.lab ,sep="")}, cex=0.9*cex.global) ##add mtext for irradiation mtext(side=4,cex=0.8*cex.global, line=0.5, if(temp@METADATA[i, "IRR_TIME"]!=0){ if(missing("dose_rate")==TRUE){ paste("dose = ",temp@METADATA[i, "IRR_TIME"], " s", sep="") }else{ paste("dose = ",temp@METADATA[i, "IRR_TIME"]*dose_rate, " Gy", sep="") } } )#end mtext }#endif::selection }#endforloop if (fun == TRUE) sTeve() # nocov } Luminescence/R/analyse_pIRIRSequence.R0000644000176200001440000007306014762554470017366 0ustar liggesusers#' @title Analyse post-IR IRSL measurement sequences #' #' @description The function performs an analysis of post-IR IRSL sequences #' including curve #' fitting on [RLum.Analysis-class] objects. #' #' @details To allow post-IR IRSL protocol (Thomsen et al., 2008) measurement #' analyses, this function has been written as extended wrapper for function #' [analyse_SAR.CWOSL], thus facilitating an entire sequence analysis in #' one run. With this, its functionality is strictly limited by the #' functionality provided by [analyse_SAR.CWOSL]. #' #' **Defining the sequence structure** #' #' The argument `sequence.structure` expects a shortened pattern of your sequence structure and was #' mainly introduced to ease the use of the function. For example: If your measurement data contains #' the following curves: `TL`, `IRSL`, `IRSL`, `TL`, `IRSL`, `IRSL`, the sequence pattern in `sequence.structure` #' becomes `c('TL', 'IRSL', 'IRSL')`. The second part of your sequence for one cycle should be #' similar and can be discarded. If this is not the case (e.g., additional hotbleach) such curves #' have to be removed before using the function. #' #' **If the input is a `list`** #' #' If the input is a list of [RLum.Analysis-class] objects, every argument #' can be provided as list to allow #' for different sets of parameters for every single input element. #' For further information see [analyse_SAR.CWOSL]. #' #' @param object [RLum.Analysis-class] or [list] of [RLum.Analysis-class] objects (**required**): #' input object containing data for analysis. #' If a [list] is provided the functions tries to iterate over each element #' in the list. #' #' @param signal.integral.min [integer] (**required**): #' lower bound of the signal integral. Provide this value as vector for different #' integration limits for the different IRSL curves. #' #' @param signal.integral.max [integer] (**required**): #' upper bound of the signal integral. Provide this value as vector for different #' integration limits for the different IRSL curves. #' #' @param background.integral.min [integer] (**required**): #' lower bound of the background integral. Provide this value as vector for #' different integration limits for the different IRSL curves. #' #' @param background.integral.max [integer] (**required**): #' upper bound of the background integral. Provide this value as vector for #' different integration limits for the different IRSL curves. #' #' @param dose.points [numeric] (*optional*): #' a numeric vector containing the dose points values. Using this argument overwrites dose point #' values in the signal curves. #' #' @param sequence.structure [vector] [character] (*with default*): #' specifies the general sequence structure. Allowed values are `"TL"` and #' any `"IR"` combination (e.g., `"IR50"`,`"pIRIR225"`). #' Additionally a parameter `"EXCLUDE"` is allowed to exclude curves from #' the analysis (Note: If a preheat without PMT measurement is used, i.e. #' preheat as none TL, remove the TL step.) #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param plot_singlePanels [logical] (*with default*): #' enable/disable plotting of the results in a single windows for each plot. #' Ignored if `plot = FALSE`. #' #' @param ... further arguments that will be passed to #' [analyse_SAR.CWOSL] and [plot_GrowthCurve]. Furthermore, the #' arguments `main` (headers), `log` (IRSL curves), `cex` (control #' the size) and `mtext.outer` (additional text on the plot area) can be passed to influence the plotting. If the input #' is a list, `main` can be passed as [vector] or [list]. #' #' @return #' Plots (*optional*) and an [RLum.Results-class] object is #' returned containing the following elements: #' #' \tabular{lll}{ #' **DATA.OBJECT** \tab **TYPE** \tab **DESCRIPTION** \cr #' `..$data` : \tab `data.frame` \tab Table with De values \cr #' `..$LnLxTnTx.table` : \tab `data.frame` \tab with the `LnLxTnTx` values \cr #' `..$rejection.criteria` : \tab [data.frame] \tab rejection criteria \cr #' `..$Formula` : \tab [list] \tab Function used for fitting of the dose response curve \cr #' `..$call` : \tab [call] \tab the original function call #' } #' #' The output should be accessed using the function [get_RLum]. #' #' @note #' Best graphical output can be achieved by using the function `pdf` #' with the following options: #' #' `pdf(file = "", height = 18, width = 18)` #' #' @section Function version: 0.2.5 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [analyse_SAR.CWOSL], [calc_OSLLxTxRatio], [plot_GrowthCurve], #' [RLum.Analysis-class], [RLum.Results-class] [get_RLum] #' #' @references #' Murray, A.S., Wintle, A.G., 2000. Luminescence dating of quartz #' using an improved single-aliquot regenerative-dose protocol. Radiation #' Measurements 32, 57-73. \doi{10.1016/S1350-4487(99)00253-X} #' #' Thomsen, K.J., Murray, A.S., Jain, M., Boetter-Jensen, L., 2008. Laboratory #' fading rates of various luminescence signals from feldspar-rich sediment #' extracts. Radiation Measurements 43, 1474-1486. #' \doi{10.1016/j.radmeas.2008.06.002} #' #' @keywords datagen plot #' #' @examples #' #' #' ### NOTE: For this example existing example data are used. These data are non pIRIR data. #' ### #' ##(1) Compile example data set based on existing example data (SAR quartz measurement) #' ##(a) Load example data #' data(ExampleData.BINfileData, envir = environment()) #' #' ##(b) Transform the values from the first position in a RLum.Analysis object #' object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) #' #' ##(c) Grep curves and exclude the last two (one TL and one IRSL) #' object <- get_RLum(object, record.id = c(-29,-30)) #' #' ##(d) Define new sequence structure and set new RLum.Analysis object #' sequence.structure <- c(1,2,2,3,4,4) #' sequence.structure <- as.vector(sapply(seq(0,length(object)-1,by = 4), #' function(x){sequence.structure + x})) #' #' object <- sapply(1:length(sequence.structure), function(x){ #' object[[sequence.structure[x]]] #' }) #' #' object <- set_RLum(class = "RLum.Analysis", records = object, protocol = "pIRIR") #' #' ##(2) Perform pIRIR analysis (for this example with quartz OSL data!) #' ## Note: output as single plots to avoid problems with this example #' results <- analyse_pIRIRSequence(object, #' signal.integral.min = 1, #' signal.integral.max = 2, #' background.integral.min = 900, #' background.integral.max = 1000, #' fit.method = "EXP", #' sequence.structure = c("TL", "pseudoIRSL1", "pseudoIRSL2"), #' main = "Pseudo pIRIR data set based on quartz OSL", #' plot_singlePanels = TRUE) #' #' #' ##(3) Perform pIRIR analysis (for this example with quartz OSL data!) #' ## Alternative for PDF output, uncomment and complete for usage #' \dontrun{ #' tempfile <- tempfile(fileext = ".pdf") #' pdf(file = tempfile, height = 18, width = 18) #' results <- analyse_pIRIRSequence(object, #' signal.integral.min = 1, #' signal.integral.max = 2, #' background.integral.min = 900, #' background.integral.max = 1000, #' fit.method = "EXP", #' main = "Pseudo pIRIR data set based on quartz OSL") #' #' dev.off() #' } #' #' @md #' @export analyse_pIRIRSequence <- function( object, signal.integral.min, signal.integral.max, background.integral.min, background.integral.max, dose.points = NULL, sequence.structure = c("TL", "IR50", "pIRIR225"), plot = TRUE, plot_singlePanels = FALSE, ... ) { .set_function_name("analyse_pIRIRSequence") on.exit(.unset_function_name(), add = TRUE) # SELF CALL ----------------------------------------------------------------------------------- if(is.list(object)){ lapply(object, function(x) { .validate_class(x, "RLum.Analysis", name = "All elements of 'object'") }) ## make life easy if(missing("signal.integral.min")){ signal.integral.min <- 1 .throw_warning("'signal.integral.min' missing, set to 1") } if(missing("signal.integral.max")){ signal.integral.max <- 2 .throw_warning("'signal.integral.max' missing, set to 2") } ## expand input arguments rep.length <- length(object) signal.integral.min <- .listify(signal.integral.min, rep.length) signal.integral.max <- .listify(signal.integral.max, rep.length) background.integral.min <- .listify(background.integral.min, rep.length) background.integral.max <- .listify(background.integral.max, rep.length) sequence.structure <- .listify(sequence.structure, rep.length) dose.points <- .listify(dose.points, rep.length) if ("main" %in% names(list(...))) { main_list <- .listify(list(...)$main, rep.length) } ## run analysis temp <- .warningCatcher(lapply(1:length(object), function(x) { analyse_pIRIRSequence(object[[x]], signal.integral.min = signal.integral.min[[x]], signal.integral.max = signal.integral.max[[x]], background.integral.min = background.integral.min[[x]], background.integral.max = background.integral.max[[x]] , dose.points = dose.points[[x]], sequence.structure = sequence.structure[[x]], plot = plot, plot_singlePanels = plot_singlePanels, main = ifelse("main"%in% names(list(...)), main_list[[x]], paste0("ALQ #",x)), ...) })) ##combine everything to one RLum.Results object as this as what was written ... only ##one object ##merge results and check if the output became NULL results <- merge_RLum(temp) ##DO NOT use invisible here, this will stop the function from stopping if(length(results) == 0) return(NULL) else return(results) } ## Integrity checks ------------------------------------------------------- .validate_class(object, "RLum.Analysis", extra = "'list'") .validate_logical_scalar(plot) .validate_logical_scalar(plot_singlePanels) ## there must be at least an IR step if (!any(grepl("IR", sequence.structure))) { .throw_error("'sequence.structure' should contain at least one IR step") } ## check allowed values in sequence structure temp.collect.invalid.terms <- .collapse( sequence.structure[!grepl("TL", sequence.structure) & !grepl("IR", sequence.structure) & !grepl("OSL", sequence.structure) & !grepl("EXCLUDE", sequence.structure)]) if (temp.collect.invalid.terms != "") { .throw_error(temp.collect.invalid.terms, " not allowed in 'sequence.structure'") } ## deprecated argument if ("plot.single" %in% names(list(...))) { plot_singlePanels <- list(...)$plot.single .throw_warning("'plot.single' is deprecated, use 'plot_singlePanels' ", "instead") } ## Enforce a minimum plot device size: this is necessary as otherwise users ## may experience "figure margins too large" errors when trying to draw all ## plots on a single page. We need to round the device size values because ## often they are values such as 15.99999999999 which would incorrectly ## trigger our check min.size <- 16 dev.size <- round(grDevices::dev.size("in"), 5) if (plot && !plot_singlePanels && any(dev.size < min.size)) { plot <- FALSE msg <- paste0("Argument 'plot' reset to 'FALSE'. The smallest plot ", "size required is IN x IN in.\nConsider plotting via ", "`pdf(..., width = IN, height = IN)` ", "or setting `plot_singlePanels = TRUE`") .throw_warning(gsub(x = msg, "IN", min.size)) } # Deal with extra arguments ------------------------------------------------------------------- ## default values mtext.outer <- "MEASUREMENT INFO" main <- "" log <- "" cex <- 0.7 ##deal with addition arguments extraArgs <- list(...) mtext.outer <- if ("mtext.outer" %in% names(extraArgs)) extraArgs$mtext.outer main <- if ("main" %in% names(extraArgs)) extraArgs$main log <- if ("log" %in% names(extraArgs)) extraArgs$log cex <- if ("cex" %in% names(extraArgs)) extraArgs$cex # Protocol Integrity Checks -------------------------------------------------- ##(1) Check structure and remove curves that fit not the recordType criteria ##get sequence structure temp.sequence.structure <- structure_RLum(object) ##remove data types that fit not to the allowed values temp.sequence.rm.id <- temp.sequence.structure[ (!grepl("TL",temp.sequence.structure[["recordType"]])) & (!grepl("OSL", temp.sequence.structure[["recordType"]])) & (!grepl("IRSL", temp.sequence.structure[["recordType"]])) ,"id"] if(length(temp.sequence.rm.id)>0){ ##removed record from data set object <- get_RLum(object, record.id = -temp.sequence.rm.id, drop = FALSE ) .throw_warning("The following unrecognised record types have been removed: ", .collapse(temp.sequence.structure[temp.sequence.rm.id, "recordType"])) } ##(2) Apply user sequence structure ##get sequence structure temp.sequence.structure <- structure_RLum(object) ##try to account for a very common mistake if(any(grepl(sequence.structure, pattern = "TL", fixed = TRUE)) && !any(grepl(temp.sequence.structure[["recordType"]], pattern = "TL", fixed = TRUE))){ .throw_warning("Your sequence does not contain 'TL' curves, trying ", "to adapt 'sequence.structure' for you ...") sequence.structure <- sequence.structure[!grepl(sequence.structure, pattern = "TL", fixed = TRUE)] } ##set values to structure data.frame ##but check first if(2 * length( rep(sequence.structure, nrow(temp.sequence.structure)/2/length(sequence.structure))) == length(temp.sequence.structure[["protocol.step"]])){ temp.sequence.structure[["protocol.step"]] <- rep( sequence.structure, nrow(temp.sequence.structure)/2/length(sequence.structure)) }else{ .throw_message("The number of records is not a multiple of the defined ", "sequence structure, NULL returned") return(NULL) } ##remove values that have been excluded temp.sequence.rm.id <- temp.sequence.structure[ temp.sequence.structure[,"protocol.step"] == "EXCLUDE" ,"id"] if(length(temp.sequence.rm.id)>0){ ##remove from object object <- get_RLum( object, record.id = -temp.sequence.rm.id, drop = FALSE) ##remove from sequence structure sequence.structure <- sequence.structure[sequence.structure != "EXCLUDE"] ##set new structure temp.sequence.structure <- structure_RLum(object) temp.sequence.structure[, "protocol.step"] <- rep( sequence.structure, nrow(temp.sequence.structure)/2/length(temp.sequence.structure)) ##print warning message .throw_warning(length(temp.sequence.rm.id), " records have been removed due to EXCLUDE") } ##============================================================================## # Analyse data and plotting ---------------------------------------------------- ##============================================================================## ##(1) find out how many runs are needed for the analysis by checking for "IR" ## now should by every signal except the TL curves n.TL <- sum(grepl("TL", sequence.structure)) n.loops <- as.numeric(length(sequence.structure) - n.TL) ##grep ids of TL curves (we need them later on) TL.curves.id <- temp.sequence.structure[ temp.sequence.structure[,"protocol.step"] == "TL","id"] ##grep ids of all OSL curves (we need them later on) IRSL.curves.id <- temp.sequence.structure[ grepl("IR", temp.sequence.structure[,"protocol.step"]),"id"] ##grep information on the names of the IR curves, we need them later on pIRIR.curve.names <- unique(temp.sequence.structure[ temp.sequence.structure[IRSL.curves.id,"id"],"protocol.step"]) ##===========================================================================# ## set graphic layout using the layout option ## unfortunately a little bit more complicated then expected previously due ## the order of the produced plots by the previous functions if (plot && !plot_singlePanels) { ##first (Tx,Tn, Lx,Ln) temp.IRSL.layout.vector.first <- c(3,5,6,7,3,5,6,8) ## middle (any other Lx,Ln) temp.IRSL.layout.vector.middle <- NULL if (n.loops > 2) { temp.IRSL.layout.vector.middle <- vapply(2:(n.loops - 1), FUN = function(x) 5 * x - 1 + c(0:3, 0:2, 4), FUN.VALUE = vector(mode = "numeric", length = 8) ) } ## last (Lx, Ln and legend) temp.IRSL.layout.vector.last <- c(1, 2, 4, 5, 1, 2, 4, 6) + (if (n.loops > 2) max(temp.IRSL.layout.vector.middle) else max(temp.IRSL.layout.vector.first)) temp.IRSL.layout.vector <- c(temp.IRSL.layout.vector.first, temp.IRSL.layout.vector.middle, temp.IRSL.layout.vector.last) ##get layout information def.par <- par(no.readonly = TRUE) ##set up layout matrix linked to the number of plot areas needed layout.matrix <- c( rep(c(2,4,1,1),2), #header row with TL curves and info window temp.IRSL.layout.vector, #IRSL curves, rep((max(temp.IRSL.layout.vector)-3),8), #legend, rep((max(temp.IRSL.layout.vector)+1),1), #GC rep((max(temp.IRSL.layout.vector)+2),1), #TnTc rep((max(temp.IRSL.layout.vector)+3),2), #Rejection criteria rep((max(temp.IRSL.layout.vector)+1),1), #GC rep((max(temp.IRSL.layout.vector)+2),1), #TnTc rep((max(temp.IRSL.layout.vector)+3),2)) #Rejection criteria ##set layout nf <- layout( matrix(layout.matrix,(max(layout.matrix)/2 + ifelse(n.loops > 2, 0,2)), 4, byrow = TRUE), widths = c(rep(c(1,1,1,.75),6),c(1,1,1,1)), heights = c(rep(c(1),(2+2*n.loops)),c(0.20, 0.20))) ## show the regions that have been allocated to each plot for debug #layout.show(nf) } ##(1) INFO PLOT if (plot) { plot(NA,NA, ylim = c(0,1), xlab = "", xlim = c(0,1), ylab = "", axes = FALSE, main = main) text(0.5,0.5, paste(sequence.structure, collapse = "\n"), cex = cex *2) } ##(2) set loop for(i in 1:n.loops){ ##compile record ids temp.id.sel <- sort(c(TL.curves.id, IRSL.curves.id[seq(i,length(IRSL.curves.id),by=n.loops)])) ##(a) select data set (TL curves has to be considered for the data set) temp.curves <- get_RLum(object, record.id = temp.id.sel, drop = FALSE) ##(b) grep integral limits as they might be different for different curves if(length(signal.integral.min)>1){ temp.signal.integral.min <- signal.integral.min[i] temp.signal.integral.max <- signal.integral.max[i] temp.background.integral.min <- background.integral.min[i] temp.background.integral.max <- background.integral.max[i] }else{ temp.signal.integral.min <- signal.integral.min temp.signal.integral.max <- signal.integral.max temp.background.integral.min <- background.integral.min temp.background.integral.max <- background.integral.max } ##(c) call analysis sequence and plot ## call single plots if(i == 1){ temp.plot.single <- c(1,2,3,4,6) }else if(i == n.loops){ temp.plot.single <- c(2,4,5,6) }else{ temp.plot.single <- c(2,4,6) } ##start analysis temp.results <- analyse_SAR.CWOSL( temp.curves, signal.integral.min = temp.signal.integral.min, signal.integral.max = temp.signal.integral.max, background.integral.min = temp.background.integral.min, background.integral.max = temp.background.integral.max, plot = plot, dose.points = dose.points, plot_singlePanels = temp.plot.single, cex.global = cex, ... ) ##TODO should be replaced be useful explicit arguments ##check whether NULL was return if (is.null(temp.results)) { .throw_message("Analysis skipped: check your sequence, NULL returned") return(NULL) } ##add signal information to the protocol step temp.results.pIRIR.De <- as.data.frame(c( get_RLum(temp.results, "data"), data.frame(Signal = pIRIR.curve.names[i]) )) temp.results.pIRIR.LnLxTnTx <- as.data.frame(c( get_RLum(temp.results, "LnLxTnTx.table"), data.frame(Signal = pIRIR.curve.names[i]) )) temp.results.pIRIR.rejection.criteria <- as.data.frame(c( get_RLum(temp.results, "rejection.criteria"), data.frame(Signal = pIRIR.curve.names[i]) )) temp.results.pIRIR.formula <- list(get_RLum(temp.results, "Formula")) names(temp.results.pIRIR.formula) <- pIRIR.curve.names[i] ##create now object temp.results <- set_RLum( class = "RLum.Results", data = list( data = temp.results.pIRIR.De, LnLxTnTx.table = temp.results.pIRIR.LnLxTnTx, rejection.criteria = temp.results.pIRIR.rejection.criteria, Formula = temp.results.pIRIR.formula ), info = list( call = sys.call() ) ) ##merge results if (exists("temp.results.final")) { temp.results.final <- merge_RLum(list(temp.results.final, temp.results)) } else{ temp.results.final <- temp.results } } ##============================================================================## # Plotting additional -------------------------------------------------------- ##============================================================================## if(plot){ ##extract LnLnxTnTx.table LnLxTnTx.table <- get_RLum(temp.results.final, "LnLxTnTx.table") ## remove Inf LnLxTnTx.table$LxTx[is.infinite(LnLxTnTx.table$LxTx)] <- NA LnLxTnTx.table$LxTx.Error[is.infinite(LnLxTnTx.table$LxTx.Error)] <- NA ##plot growth curves min.LxTx <- min(LnLxTnTx.table$LxTx, na.rm = TRUE) max.LxTx <- max(LnLxTnTx.table$LxTx, na.rm = TRUE) max.LxTx.Error <- max(LnLxTnTx.table$LxTx.Error, na.rm = TRUE) plot(NA, NA, xlim = range(get_RLum(temp.results.final, "LnLxTnTx.table")$Dose), ylim = c(min(min.LxTx - max.LxTx.Error, 0), max.LxTx + max.LxTx.Error), xlab = "Dose [s]", ylab = expression(L[x]/T[x]), main = "Summarised Dose Response Curves") ##set x for expression evaluation x <- seq(0,max(LnLxTnTx.table$Dose)*1.05, length.out = 100) for(j in 1:length(pIRIR.curve.names)){ ##dose points temp.curve.points <- LnLxTnTx.table[,c("Dose", "LxTx", "LxTx.Error", "Signal")] temp.curve.points <- temp.curve.points[ temp.curve.points[,"Signal"] == pIRIR.curve.names[j], c("Dose", "LxTx", "LxTx.Error")] points(temp.curve.points[-1,c("Dose", "LxTx")], col = j, pch = j) segments(x0 = temp.curve.points[-1,c("Dose")], y0 = temp.curve.points[-1,c("LxTx")] - temp.curve.points[-1,c("LxTx.Error")], x1 = temp.curve.points[-1,c("Dose")], y1 = temp.curve.points[-1,c("LxTx")] + temp.curve.points[-1,c("LxTx.Error")], col = j) ##De values lines(c(0, get_RLum(temp.results.final, "data")[j,1]), c(temp.curve.points[1,c("LxTx")], temp.curve.points[1,c("LxTx")]), col = j, lty = 2) lines(c(rep(get_RLum(temp.results.final, "data")[j,1], 2)), c(temp.curve.points[1,c("LxTx")], 0), col = j, lty = 2) ##curve temp.curve.formula <- get_RLum( temp.results.final, "Formula")[[pIRIR.curve.names[j]]] try(lines(x, eval(temp.curve.formula), col = j), silent = TRUE) } rm(x) ##plot legend legend("bottomright", legend = pIRIR.curve.names, lty = 1, col = c(1:length(pIRIR.curve.names)), bty = "n", pch = c(1:length(pIRIR.curve.names)) ) ##plot Tn/Tx curves ##select signal temp.curve.TnTx <- LnLxTnTx.table[, c("TnTx", "Signal")] temp.curve.TnTx.matrix <- matrix(NA, nrow = nrow(temp.curve.TnTx)/ length(pIRIR.curve.names), ncol = length(pIRIR.curve.names)) ##calculate normalised values for(j in 1:length(pIRIR.curve.names)){ temp.curve.TnTx.sel <- temp.curve.TnTx[ temp.curve.TnTx[,"Signal"] == pIRIR.curve.names[j] , "TnTx"] temp.curve.TnTx.matrix[,j] <- temp.curve.TnTx.sel/temp.curve.TnTx.sel[1] } plot(NA, NA, xlim = c(0,nrow(LnLxTnTx.table)/ n.loops), ylim = if (anyNA(range(temp.curve.TnTx.matrix))) c(0,1) else range(temp.curve.TnTx.matrix), xlab = "# Cycle", ylab = expression(T[x]/T[n]), main = "Sensitivity change") ##zero line abline(h = 1:nrow(temp.curve.TnTx.matrix), col = "gray") for(j in 1:length(pIRIR.curve.names)){ lines(1:nrow(temp.curve.TnTx.matrix), temp.curve.TnTx.matrix[,j], type = "b", col = j, pch = j) } ##plot legend legend("bottomleft", legend = pIRIR.curve.names, lty = 1, col = c(1:length(pIRIR.curve.names)), bty = "n", pch = c(1:length(pIRIR.curve.names)) ) ##Rejection criteria temp.rejection.criteria <- get_RLum(temp.results.final, data.object = "rejection.criteria") temp.rc.reycling.ratio <- temp.rejection.criteria[ grep("Recycling ratio",temp.rejection.criteria[,"Criteria"]),] temp.rc.recuperation.rate <- temp.rejection.criteria[ grep("Recuperation rate",temp.rejection.criteria[,"Criteria"]),] temp.rc.palaedose.error <- temp.rejection.criteria[ grep("Palaeodose error",temp.rejection.criteria[,"Criteria"]),] plot(NA,NA, xlim = c(-0.5,0.5), ylim = c(0,30), yaxt = "n", ylab = "", xaxt = "n", xlab = "", bty = "n", main = "Rejection criteria") axis(side = 1, at = c(-0.2,-0.1,0,0.1,0.2), labels = c("- 0.2", "- 0.1","0/1","+ 0.1", "+ 0.2")) ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++## ##polygon for recycling ratio text(x = -.4, y = 30, "Recycling ratio", pos = 1, srt = 0) polygon(x = c(-as.numeric(as.character(temp.rc.reycling.ratio$Threshold))[1], -as.numeric(as.character(temp.rc.reycling.ratio$Threshold))[1], as.numeric(as.character(temp.rc.reycling.ratio$Threshold))[1], as.numeric(as.character(temp.rc.reycling.ratio$Threshold))[1]), y = c(21,29,29,21), col = "gray", border = NA) polygon(x = c(-0.3,-0.3,0.3,0.3) , y = c(21,29,29,21)) ##consider possibility of multiple pIRIR signals and multiple recycling ratios col.id <- 1 ##the conditional case might valid if no rejection criteria could be calculated if(nrow(temp.rc.recuperation.rate)>0){ for(i in seq(1,nrow(temp.rc.recuperation.rate), length(unique(temp.rc.recuperation.rate[,"Criteria"])))){ for(j in 0:length(unique(temp.rc.recuperation.rate[,"Criteria"]))){ points(temp.rc.reycling.ratio[i+j, "Value"]-1, y = 25, pch = col.id, col = col.id) } col.id <- col.id + 1 } }#endif rm(col.id) ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++## ##polygon for recuperation rate text(x = -.4, y = 20, "Recuperation rate", pos = 1, srt = 0) if(length(as.character(temp.rc.recuperation.rate$Threshold))>0){ polygon(x = c(0, 0, as.numeric(as.character(temp.rc.recuperation.rate$Threshold))[1], as.numeric(as.character(temp.rc.recuperation.rate$Threshold))[1]), y = c(11,19,19,11), col = "gray", border = NA) polygon(x = c(-0.3,-0.3,0.3,0.3) , y = c(11,19,19,11)) polygon(x = c(-0.3,-0.3,0,0) , y = c(11,19,19,11), border = NA, density = 10, angle = 45) for(i in 1:nrow(temp.rc.recuperation.rate)){ points(temp.rc.palaedose.error[i, "Value"], y = 15, pch = i, col = i) } }#endif ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++## ##polygon for palaeodose error text(x = -.4, y = 10, "Palaeodose error", pos = 1, srt = 0) polygon(x = c(0, 0, as.numeric(as.character(temp.rc.palaedose.error$Threshold))[1], as.numeric(as.character(temp.rc.palaedose.error$Threshold))[1]), y = c(1,9,9,1), col = "gray", border = NA) polygon(x = c(-0.3,-0.3,0.3,0.3) , y = c(1,9,9,1)) polygon(x = c(-0.3,-0.3,0,0) , y = c(1,9,9,1), border = NA, density = 10, angle = 45) for(i in 1:nrow(temp.rc.palaedose.error)){ if(length(temp.rc.palaedose.error[i, "Value"]) > 0 && !is.na(temp.rc.palaedose.error[i, "Value"])) points(temp.rc.palaedose.error[i, "Value"], y = 5, pch = i, col = i) } ##add 0 value lines(x = c(0,0), y = c(0,19), lwd = 1.5*cex) lines(x = c(0,0), y = c(20,29), lwd = 1.5*cex) ##plot legend legend("bottomright", legend = pIRIR.curve.names, col = c(1:length(pIRIR.curve.names)), bty = "n", pch = c(1:length(pIRIR.curve.names))) ##reset graphic settings if (!plot_singlePanels) { par(def.par) } }##end plot == TRUE ##============================================================================## # Return Values ----------------------------------------------------------- ##============================================================================## return(temp.results.final) } Luminescence/R/analyse_SAR.CWOSL.R0000644000176200001440000016277414762554470016276 0ustar liggesusers#' @title Analyse SAR CW-OSL measurements #' #' @description The function performs a SAR CW-OSL analysis on an #' [RLum.Analysis-class] object including growth curve fitting. #' #' @details #' The function performs an analysis for a standard SAR protocol measurements #' introduced by Murray and Wintle (2000) with CW-OSL curves. For the #' calculation of the `Lx/Tx` value the function [calc_OSLLxTxRatio] is #' used. For **changing the way the Lx/Tx error is calculated** use the argument #' `background.count.distribution` and `sigmab`, which will be passed to the function #' [calc_OSLLxTxRatio]. #' #' **What is part of a SAR sequence?** #' #' The function is rather picky when it comes down to accepted curve input (OSL,IRSL,...) and structure. #' A SAR sequence is basically a set of \eqn{L_{x}/T_{x}} curves. Hence, every 2nd curve #' is considered a shine-down curve related to the test dose. It also means that the number of #' curves for \eqn{L_{x}} has to be equal to the number of \eqn{T_{x}} curves, and that #' hot-bleach curves **do not** belong into a SAR sequence; at least not for the analysis. #' Other curves allowed and processed are preheat curves, or preheat curves measured as TL, and #' irradiation curves. The later one indicates the duration of the irradiation, the #' dose and test dose points, e.g., as part of XSYG files. #' #' **Argument `object` is of type `list`** #' #' If the argument `object` is of type [list] containing **only** #' [RLum.Analysis-class] objects, the function re-calls itself as often as elements #' are in the list. This is useful if an entire measurement wanted to be analysed without #' writing separate for-loops. To gain in full control of the parameters (e.g., `dose.points`) for #' every aliquot (corresponding to one [RLum.Analysis-class] object in the list), in #' this case the arguments can be provided as [list]. This `list` should #' be of similar length as the `list` provided with the argument `object`, #' otherwise the function will create an own list of the requested length. #' Function output will be just one single [RLum.Results-class] object. #' #' Please be careful when using this option. It may allow a fast an efficient data analysis, but #' the function may also break with an unclear error message, due to wrong input data. #' #' **Working with IRSL data** #' #' The function was originally designed to work just for 'OSL' curves, #' following the principles of the SAR protocol. An IRSL measurement protocol #' may follow this procedure, e.g., post-IR IRSL protocol (Thomsen et al., #' 2008). Therefore this functions has been enhanced to work with IRSL data, #' however, the function is only capable of analysing curves that follow the #' SAR protocol structure, i.e., to analyse a post-IR IRSL protocol, curve data #' have to be pre-selected by the user to fit the standards of the SAR #' protocol, i.e., Lx,Tx,Lx,Tx and so on. #' #' Example: Imagine the measurement contains `pIRIR50` and `pIRIR225` IRSL curves. #' Only one curve type can be analysed at the same time: The `pIRIR50` curves or #' the `pIRIR225` curves. #' #' **Supported rejection criteria** #' #' `[recycling.ratio]`: calculated for every repeated regeneration dose point. #' #' `[recuperation.rate]`: recuperation rate calculated by comparing the #' `Lx/Tx` values of the zero regeneration point with the `Ln/Tn` value (the `Lx/Tx` #' ratio of the natural signal). For methodological background see Aitken and #' Smith (1988). As a variant with the argument `recuperation_reference` another dose point can be #' selected as reference instead of `Ln/Tn`. #' #' `[testdose.error]`: set the allowed error for the test dose, which per #' default should not exceed 10%. The test dose error is calculated as `Tx_net.error/Tx_net`. #' The calculation of the \eqn{T_{n}} error is detailed in [calc_OSLLxTxRatio]. #' #' `[palaeodose.error]`: set the allowed error for the De value, which per #' default should not exceed 10%. #' #' **Irradiation times** #' #' The function makes two attempts to extra irradiation data (dose points) #' automatically from the input object, if the argument `dose.points` was not #' set (aka set to `NULL`). #' #' 1. It searches in every curve for an info object called `IRR_TIME`. If this was set, any value #' set here is taken as dose point. #' #' 2. If the object contains curves of type `irradiation`, the function tries to #' use this information to assign these values to the curves. However, the function #' does **not** overwrite values preset in `IRR_TIME`. #' #' @param object [RLum.Analysis-class] (**required**): #' input object containing data for analysis, alternatively a [list] of #' [RLum.Analysis-class] objects can be provided. The object should contain **only** curves #' considered part of the SAR protocol (see Details). #' #' @param signal.integral.min [integer] (**required**): #' lower bound of the signal integral. Can be a [list] of [integer]s, if `object` is #' of type [list]. If the input is vector (e.g., `c(1,2)`) the 2nd value will be interpreted #' as the minimum signal integral for the `Tx` curve. Can be set to `NA`, in this #' case no integrals are taken into account. #' #' @param signal.integral.max [integer] (**required**): #' upper bound of the signal integral. Can be a [list] of [integer]s, if `object` is #' of type [list]. If the input is vector (e.g., `c(1,2)`) the 2nd value will be interpreted #' as the maximum signal integral for the `Tx` curve. Can be set to `NA`, in this #' case no integrals are taken into account. #' #' @param background.integral.min [integer] (**required**): #' lower bound of the background integral. Can be a [list] of [integer]s, if `object` is #' of type [list]. If the input is vector (e.g., `c(1,2)`) the 2nd value will be interpreted #' as the minimum background integral for the `Tx` curve. Can be set to `NA`, in this #' case no integrals are taken into account. #' #' @param background.integral.max [integer] (**required**): #' upper bound of the background integral. Can be a [list] of [integer]s, if `object` is #' of type [list]. If the input is vector (e.g., `c(1,2)`) the 2nd value will be interpreted #' as the maximum background integral for the `Tx` curve. Can be set to `NA`, in this #' case no integrals are taken into account. #' #' @param OSL.component [character] or [integer] (*optional*): s single index #' or a [character] defining the signal component to be evaluated. #' It requires that the object was processed by `OSLdecomposition::RLum.OSL_decomposition`. #' This argument can either be the name of the OSL component assigned by #' `OSLdecomposition::RLum.OSL_global_fitting` or the index in the descending #' order of decay rates. Then `"1"` selects the fastest decaying component, `"2"` #' the second fastest and so on. Can be a [list] of [integer]s or strings (or mixed) #' If object is a [list] and this parameter is provided as [list] it alternates over #' the elements (aliquots) of the object list, e.g., `list(1,2)` processes the first #' aliquot with component `1` and the second aliquot with component `2`. #' `NULL` does not process any component. #' #' @param rejection.criteria [list] (*with default*): #' provide a *named* list and set rejection criteria in **percentage** #' for further calculation. Can be a [list] in a [list], if `object` is of type [list]. #' Note: If an *unnamed* [list] is provided the new settings are ignored! #' #' Allowed arguments are `recycling.ratio`, `recuperation.rate`, #' `palaeodose.error`, `testdose.error`, `exceed.max.regpoint = TRUE/FALSE`, #' `recuperation_reference = "Natural"` (or any other dose point, e.g., `"R1"`). #' Example: `rejection.criteria = list(recycling.ratio = 10)`. #' Per default all numerical values are set to 10, `exceed.max.regpoint = TRUE`. #' Every criterion can be set to `NA`. In this value are calculated, but not considered, i.e. #' the RC.Status becomes always `'OK'` #' #' @param dose.points [numeric] (*optional*): #' a numeric vector containing the dose points values. Using this argument #' overwrites dose point values extracted from other data. Can be a [list] of #' [numeric] vectors, if `object` is of type [list] #' #' @param trim_channels [logical] (*with default*): trim channels per record category #' to the lowest number of channels in the category by using [trim_RLum.Data]. #' Applies only to `OSL` and `IRSL` curves. For a more granular control use [trim_RLum.Data] #' before passing the input object. #' #' @param mtext.outer [character] (*optional*): #' option to provide an outer margin `mtext`. Can be a [list] of [character]s, #' if `object` is of type [list] #' #' @param plot [logical] (*with default*): enable/disable the plot output. #' #' @param plot_onePage [logical] (*with default*): enable/disable one page #' plot output. #' #' @param plot_singlePanels [logical] (*with default*) or [numeric] (*optional*): #' single plot output (`TRUE/FALSE`) to allow for plotting the results in single plot windows. #' If a [numeric] vector is provided the plots can be selected individually, i.e. #' `plot_singlePanels = c(1,2,3,4)` will plot the TL and Lx, Tx curves but #' not the legend (5) or the #' growth curve (6), (7) and (8) belong to rejection criteria plots. Requires #' `plot = TRUE`. #' #' @param onlyLxTxTable [logical] (*with default*): If `TRUE` the dose response #' curve fitting and plotting is skipped. #' This allows to get hands on the `Lx/Tx` table for large datasets #' without the need for a curve fitting. #' #' @param ... further arguments that will be passed to the function #' [plot_GrowthCurve] or [calc_OSLLxTxRatio] #' (supported: `background.count.distribution`, `sigmab`, `sig0`). #' **Please note** that if you consider to use the early light subtraction #' method you should provide your own `sigmab` value! # #' @return #' A plot (*optional*) and an [RLum.Results-class] object is #' returned containing the following elements: #' #' \item{data}{[data.frame] containing De-values, De-error and further parameters} #' \item{LnLxTnTx.values}{[data.frame] of all calculated Lx/Tx values including signal, #' background counts and the dose points} #' \item{rejection.criteria}{[data.frame] with values that might by used as rejection criteria. #' `NA` is produced if no R0 dose point exists.} #' \item{Formula}{[formula] formula that have been used for the growth curve fitting} #' #' The output should be accessed using the function [get_RLum]. #' #' @note #' This function must not be mixed up with the function #' [Analyse_SAR.OSLdata], which works with #' [Risoe.BINfileData-class] objects. #' #' **The function currently does support only 'OSL', 'IRSL' and 'POSL' data!** #' #' @section Function version: 0.10.5 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [calc_OSLLxTxRatio], [plot_GrowthCurve], [RLum.Analysis-class], #' [RLum.Results-class], [get_RLum] #' #' @references #' Aitken, M.J. and Smith, B.W., 1988. Optical dating: recuperation #' after bleaching. Quaternary Science Reviews 7, 387-393. #' #' Duller, G., 2003. Distinguishing quartz and feldspar in single grain #' luminescence measurements. Radiation Measurements, 37 (2), 161-165. #' #' Murray, A.S. and Wintle, A.G., 2000. Luminescence dating of quartz using an #' improved single-aliquot regenerative-dose protocol. Radiation Measurements #' 32, 57-73. #' #' Thomsen, K.J., Murray, A.S., Jain, M., Boetter-Jensen, L., 2008. Laboratory #' fading rates of various luminescence signals from feldspar-rich sediment #' extracts. Radiation Measurements 43, 1474-1486. #' doi:10.1016/j.radmeas.2008.06.002 #' #' @keywords datagen plot #' #' @examples #' #' ##load data #' ##ExampleData.BINfileData contains two BINfileData objects #' ##CWOSL.SAR.Data and TL.SAR.Data #' data(ExampleData.BINfileData, envir = environment()) #' #' ##transform the values from the first position in a RLum.Analysis object #' object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) #' #' ##perform SAR analysis and set rejection criteria #' results <- analyse_SAR.CWOSL( #' object = object, #' signal.integral.min = 1, #' signal.integral.max = 2, #' background.integral.min = 900, #' background.integral.max = 1000, #' log = "x", #' fit.method = "EXP", #' rejection.criteria = list( #' recycling.ratio = 10, #' recuperation.rate = 10, #' testdose.error = 10, #' palaeodose.error = 10, #' recuperation_reference = "Natural", #' exceed.max.regpoint = TRUE) #') #' #' ##show De results #' get_RLum(results) #' #' ##show LnTnLxTx table #' get_RLum(results, data.object = "LnLxTnTx.table") #' #' @md #' @export analyse_SAR.CWOSL<- function( object, signal.integral.min = NA, signal.integral.max = NA, background.integral.min = NA, background.integral.max = NA, OSL.component = NULL, rejection.criteria = list(), dose.points = NULL, trim_channels = FALSE, mtext.outer = "", plot = TRUE, plot_onePage = FALSE, plot_singlePanels = FALSE, onlyLxTxTable = FALSE, ... ) { .set_function_name("analyse_SAR.CWOSL") on.exit(.unset_function_name(), add = TRUE) # SELF CALL ----------------------------------------------------------------------------------- if(is.list(object)){ ##clean object input and expand parameters object <- .rm_nonRLum(object) parm <- .expand_parameters(length(object)) ##handle main separately if("main"%in% names(list(...))){ main <- .listify(list(...)$main, length = length(object)) }else{ main <- as.list(paste0("ALQ #",1:length(object))) } results <- .warningCatcher(merge_RLum(lapply(seq_along(object), function(x){ analyse_SAR.CWOSL( object = object[[x]], signal.integral.min = parm$signal.integral.min[[x]], signal.integral.max = parm$signal.integral.max[[x]], background.integral.min = parm$background.integral.min[[x]], background.integral.max = parm$background.integral.max[[x]], OSL.component = parm$OSL.component[[x]], dose.points = parm$dose.points[[x]], trim_channels = parm$trim_channels[[x]], mtext.outer = parm$mtext.outer[[x]], plot = parm$plot[[x]], rejection.criteria = parm$rejection.criteria[[x]], plot_singlePanels = parm$plot_singlePanels[[x]], plot_onePage = parm$plot_onePage[[x]], onlyLxTxTable = parm$onlyLxTxTable[[x]], main = main[[x]], ...) }))) ##return ##DO NOT use invisible here, this will prevent the function from stopping if(length(results) == 0) return(NULL) ## add aliquot number results@data$data$ALQ <- seq_along(object)[1:nrow(results@data$data)] return(results) } # CONFIG ----------------------------------------------------------------- ##set error list, this allows to set error messages without breaking the function error.list <- list() ## Integrity checks ------------------------------------------------------- .validate_class(object, "RLum.Analysis") .validate_class(plot_singlePanels, c("logical", "integer", "numeric")) ## trim OSL or IRSL channels if(trim_channels[1]) { ## fetch names with OSL and IRSL tmp_names <- unique(vapply(object@records, function(x) x@recordType, character(1))) ## grep only the one with OSL and IRSL in it tmp_names <- tmp_names[grepl(pattern = "(?:OSL|IRSL)", x = tmp_names, perl = TRUE)] ## trim object <- trim_RLum.Data(object, recordType = tmp_names) } ##skip all those tests if signal integral is NA if (anyNA(c(signal.integral.min, signal.integral.max, background.integral.min, background.integral.max))) { signal.integral <- background.integral <- NA signal.integral.Tx <- background.integral.Tx <- NULL if(is.null(OSL.component)) .throw_warning("No signal or background integral applied ", "as they were set to NA") } else { ##build signal and background integrals signal.integral <- c(signal.integral.min[1]:signal.integral.max[1]) background.integral <- c(background.integral.min[1]:background.integral.max[1]) ##account for the case that Lx and Tx integral differ if (length(signal.integral.min) == 2 & length(signal.integral.max) == 2) { signal.integral.Tx <- c(signal.integral.min[2]:signal.integral.max[2]) }else{ signal.integral.Tx <- NULL } if (length(background.integral.min) == 2 & length(background.integral.max) == 2) { background.integral.Tx <- c(background.integral.min[2]:background.integral.max[2]) }else{ background.integral.Tx <- NULL } ##Account for the case that the use did not provide everything ... if(is.null(signal.integral.Tx) & !is.null(background.integral.Tx)){ signal.integral.Tx <- signal.integral .throw_warning("Background integral for Tx curves set, but not for ", "the signal integral; signal integral for Tx automatically set") } if(!is.null(signal.integral.Tx) & is.null(background.integral.Tx)){ background.integral.Tx <- background.integral .throw_warning("Signal integral for Tx curves set, but not for the ", "background integral; background integral for Tx automatically set") } ##INTEGRAL LIMITS if(!is(signal.integral, "integer") | !is(background.integral, "integer")){ .throw_error("'signal.integral' or 'background.integral' is not of type integer") } } ## try to extract the correct curves for the sequence based on allowed curve types and ## the curve type used most frequently ## now remove all non-allowed curves CWcurve.type <- regmatches( x = names(object), m = regexpr("(OSL[a-zA-Z]*|IRSL[a-zA-Z]*|POSL[a-zA-Z]*)", names(object), perl = TRUE)) if(length(CWcurve.type) == 0) { .throw_message("No record of type 'OSL', 'IRSL', 'POSL' detected, ", "NULL returned") return(NULL) } ## now get the type which is used most CWcurve.type <- names(which.max(table(CWcurve.type))) # Rejection criteria ------------------------------------------------------ if(is.null(rejection.criteria) || class(rejection.criteria)[1] != "list") rejection.criteria <- list() ##set list rejection.criteria <- modifyList(x = list( recycling.ratio = 10, recuperation.rate = 10, palaeodose.error = 10, testdose.error = 10, exceed.max.regpoint = TRUE, recuperation_reference = "Natural" ), val = rejection.criteria, keep.null = TRUE) # Deal with extra arguments ---------------------------------------------------- ##deal with addition arguments extraArgs <- list(...) main <- if("main" %in% names(extraArgs)) extraArgs$main else "" log <- if("log" %in% names(extraArgs)) extraArgs$log else "" cex <- if("cex" %in% names(extraArgs)) extraArgs$cex else 1 background.count.distribution <- if ("background.count.distribution" %in% names(extraArgs)) { extraArgs$background.count.distribution } else { "non-poisson" } sigmab <- if("sigmab" %in% names(extraArgs)) extraArgs$sigmab else NULL sig0 <- if("sig0" %in% names(extraArgs)) extraArgs$sig0 else 0 ## deprecated argument if ("plot.single" %in% names(extraArgs)) { plot_singlePanels <- extraArgs$plot.single .throw_warning("'plot.single' is deprecated, use 'plot_singlePanels' ", "instead") } # Protocol Integrity Checks -------------------------------------------------- ##check overall structure of the object ##every SAR protocol has to have equal number of curves ##grep curve types from analysis value and remove unwanted information temp.ltype <- sapply(1:length(object@records), function(x) { ##export as global variable object@records[[x]]@recordType <<- gsub(" .*", "", object@records[[x]]@recordType) object@records[[x]]@recordType }) ##FI lexsyg devices provide irradiation information in a separate curve if(any("irradiation" %in% temp.ltype)){ ##grep irradiation times temp.irradiation <- extract_IrradiationTimes(object)@data$irr.times[["IRR_TIME"]] ##write this into the records for(i in 1:length(object@records)){ if(is.null(object@records[[i]]@info$IRR_TIME)) object@records[[i]]@info <- c(object@records[[i]]@info, IRR_TIME = temp.irradiation[i]) } ## remove irradiation curves object <- get_RLum(object, record.id = c(!temp.ltype %in% "irradiation"), drop = FALSE) } ##check if the wanted curves are a multiple of two ##gsub removes unwanted information from the curves if(table(temp.ltype)[CWcurve.type]%%2!=0){ error.list[[1]] <- "Input OSL/IRSL curves are not a multiple of two" } ##check if the curve lengths differ temp.matrix.length <- unlist(sapply(1:length(object@records), function(x) { if(object@records[[x]]@recordType==CWcurve.type){ length(object@records[[x]]@data[,1]) } })) if(length(unique(temp.matrix.length))!=1){ error.list[[2]] <- paste0("Input curves have different lengths (", .collapse(unique(temp.matrix.length), quote = FALSE), ")") } ##just proceed if error list is empty if (length(error.list) == 0) { ##check background integral if (!all(is.na(signal.integral)) && max(signal.integral) == min(signal.integral)) { signal.integral <- c(min(signal.integral) : (max(signal.integral) + 1)) .throw_warning("Integral signal limits cannot be equal, reset automatically") } ##background integral should not be longer than curve channel length if (!all(is.na(background.integral)) && max(background.integral) == min(background.integral)) { background.integral <- c((min(background.integral) - 1) : max(background.integral)) } if (!all(is.na(background.integral)) && max(background.integral) > temp.matrix.length[1]) { background.integral <- c((temp.matrix.length[1] - length(background.integral)):temp.matrix.length[1]) ##prevent that the background integral becomes negative if(min(background.integral) < max(signal.integral)){ background.integral <- c((max(signal.integral) + 1):max(background.integral)) } .throw_warning("Background integral out of bounds. Set to: c(", min(background.integral), ":", max(background.integral), ")") } ##Do the same for the Tx-if set if (!is.null(background.integral.Tx)) { if (max(background.integral.Tx) == min(background.integral.Tx)) { background.integral.Tx <- c((min(background.integral.Tx) - 1) : max(background.integral.Tx)) } if (max(background.integral.Tx) > temp.matrix.length[2]) { background.integral.Tx <- c((temp.matrix.length[2] - length(background.integral.Tx)):temp.matrix.length[2]) ##prevent that the background integral becomes negative if (min(background.integral.Tx) < max(signal.integral.Tx)) { background.integral.Tx <- c((max(signal.integral.Tx) + 1):max(background.integral.Tx)) } .throw_warning( "Background integral for Tx out of bounds. Set to: c(", min(background.integral.Tx), ":", max(background.integral.Tx), ")" ) } } # Grep Curves ------------------------------------------------------------- ##grep relevant curves from RLum.Analyis object OSL.Curves.ID <- get_RLum(object, recordType = CWcurve.type, get.index = TRUE) ##separate curves by Lx and Tx (it makes it much easier) OSL.Curves.ID.Lx <- OSL.Curves.ID[seq(1,length(OSL.Curves.ID),by = 2)] OSL.Curves.ID.Tx <- OSL.Curves.ID[seq(2,length(OSL.Curves.ID),by = 2)] ##get index of TL curves TL.Curves.ID <- suppressWarnings(get_RLum(object, recordType = "TL$", get.index = TRUE)) ##separate TL curves which is always coming before the OSL curve ##Note: we do not check anymore whether the sequence makes sense. TL.Curves.ID.Lx <- TL.Curves.ID[TL.Curves.ID%in%(OSL.Curves.ID.Lx - 1)] TL.Curves.ID.Tx <- TL.Curves.ID[TL.Curves.ID%in%(OSL.Curves.ID.Tx - 1)] # Calculate LnLxTnTx values -------------------------------------------------- ##calculate LxTx values using external function LnLxTnTx <- try(lapply(seq(1,length(OSL.Curves.ID),by = 2), function(x){ if(!is.null(OSL.component) && length(OSL.component) > 0){ temp.LnLxTnTx <- get_RLum( calc_OSLLxTxDecomposed( Lx.data = object@records[[OSL.Curves.ID[x]]]@info$COMPONENTS, Tx.data = object@records[[OSL.Curves.ID[x + 1]]]@info$COMPONENTS, OSL.component = OSL.component, digits = 4, sig0 = sig0)) } else { temp.LnLxTnTx <- get_RLum( calc_OSLLxTxRatio( Lx.data = object@records[[OSL.Curves.ID[x]]]@data, Tx.data = object@records[[OSL.Curves.ID[x + 1]]]@data, signal.integral = signal.integral, signal.integral.Tx = signal.integral.Tx, background.integral = background.integral, background.integral.Tx = background.integral.Tx, background.count.distribution = background.count.distribution, sigmab = sigmab, sig0 = sig0)) } ##grep dose temp.Dose <- object@records[[OSL.Curves.ID[x]]]@info$IRR_TIME ##for the case that no information on the dose can be found if (is.null(temp.Dose)) temp.Dose <- NA temp.LnLxTnTx <- cbind(Dose = temp.Dose, temp.LnLxTnTx) }), silent = TRUE) ##this is basically for the OSL.component case to avoid that everything ##fails if something goes wrong therein if(inherits(LnLxTnTx, "try-error")){ .throw_message("Something went wrong while generating the LxTx table, ", "NULL returned") return(NULL) } ##combine LnLxTnTx <- data.table::rbindlist(LnLxTnTx) # Set regeneration points ------------------------------------------------- ##overwrite dose point manually if (!is.null(dose.points) & length(dose.points) > 0) { if (length(dose.points) != length(LnLxTnTx$Dose)) { .throw_error("Length of 'dose.points' differs from number of curves") } LnLxTnTx$Dose <- dose.points } ##check whether we have dose points at all if (is.null(dose.points) & anyNA(LnLxTnTx$Dose)) { .throw_error("'dose.points' contains NA values or have not been set") } ##check whether the first OSL/IRSL curve (i.e., the Natural) has 0 dose. If not ##not, it is probably a Dose Recovery Test with the given dose that is treated as the ##unknown dose. We overwrite this value and warn the user. if (LnLxTnTx$Dose[1] != 0) { .throw_warning("The natural signal has a dose of ", LnLxTnTx$Dose[1], " s, which is indicative of a dose recovery test. ", "The natural dose was set to 0.") LnLxTnTx$Dose[1] <- 0 } #generate unique dose id - this are also the # for the generated points temp.DoseID <- c(0:(length(LnLxTnTx$Dose) - 1)) temp.DoseName <- paste0("R",temp.DoseID) temp.DoseName <- cbind(Name = temp.DoseName,Dose = LnLxTnTx$Dose) ##set natural temp.DoseName[temp.DoseName[,"Name"] == "R0","Name"] <- "Natural" ##set R0 temp.DoseName[temp.DoseName[,"Name"] != "Natural" & temp.DoseName[,"Dose"] == 0,"Name"] <- "R0" ##correct numeration numeration of other dose points ##how many dose points do we have with 0? non.temp.zero.dose.number <- nrow(temp.DoseName[temp.DoseName[, "Dose"] != 0,]) if(length(non.temp.zero.dose.number) > 0){ temp.DoseName[temp.DoseName[,"Name"] != "Natural" & temp.DoseName[,"Name"] != "R0","Name"] <- paste0("R",c(1:non.temp.zero.dose.number)) } ##find duplicated doses (including 0 dose - which means the Natural) temp.DoseDuplicated <- duplicated(temp.DoseName[,"Dose"]) ##combine temp.DoseName temp.DoseName <- cbind(temp.DoseName,Repeated = temp.DoseDuplicated) ##correct value for R0 (it is not really repeated) temp.DoseName[temp.DoseName[,"Dose"] == 0,"Repeated"] <- FALSE ##combine in the data frame temp.LnLxTnTx <- data.frame( Name = factor(x = temp.DoseName[, "Name"], levels = unique(temp.DoseName[, "Name"])), Repeated = as.logical(temp.DoseName[, "Repeated"])) LnLxTnTx <- cbind(temp.LnLxTnTx,LnLxTnTx) LnLxTnTx[,"Name"] <- as.character(LnLxTnTx[,"Name"]) # Calculate Recycling Ratio ----------------------------------------------- ##Calculate Recycling Ratio RecyclingRatio <- NA if (length(LnLxTnTx[LnLxTnTx[,"Repeated"] == TRUE,"Repeated"]) > 0) { ##identify repeated doses temp.Repeated <- LnLxTnTx[LnLxTnTx[,"Repeated"] == TRUE,c("Name","Dose","LxTx")] ##find concerning previous dose for the repeated dose temp.Previous <- t(sapply(1:length(temp.Repeated[,1]),function(x) { LnLxTnTx[LnLxTnTx[,"Dose"] == temp.Repeated[x,"Dose"] & LnLxTnTx[,"Repeated"] == FALSE,c("Name","Dose","LxTx")] })) ##convert to data.frame temp.Previous <- as.data.frame(temp.Previous) ##set column names temp.ColNames <- unlist(lapply(1:length(temp.Repeated[,1]),function(x) { temp <- paste("Recycling ratio (", temp.Repeated[x,"Name"],"/", temp.Previous[temp.Previous[,"Dose"] == temp.Repeated[x,"Dose"],"Name"], ")", sep = "") return(temp[1]) })) ##Calculate Recycling Ratio RecyclingRatio <- round(as.numeric(temp.Repeated[,"LxTx"]) / as.numeric(temp.Previous[,"LxTx"]), digits = 4) ##Just transform the matrix and add column names RecyclingRatio <- t(RecyclingRatio) colnames(RecyclingRatio) <- temp.ColNames } # Calculate Recuperation Rate --------------------------------------------- ## check for incorrect key words if(any(!rejection.criteria$recuperation_reference[1] %in% LnLxTnTx[,"Name"])) .throw_error("Recuperation reference invalid, valid are: ", .collapse(LnLxTnTx[, "Name"], quote = FALSE)) ##Recuperation Rate (capable of handling multiple type of recuperation values) Recuperation <- NA if (length(LnLxTnTx[LnLxTnTx[,"Name"] == "R0","Name"]) > 0) { Recuperation <- vapply(1:length(LnLxTnTx[LnLxTnTx[,"Name"] == "R0","Name"]), function(x) { round(LnLxTnTx[LnLxTnTx[,"Name"] == "R0","LxTx"][x] / LnLxTnTx[LnLxTnTx[,"Name"] == rejection.criteria$recuperation_reference[1],"LxTx"], digits = 4) }, numeric(1)) ##Just transform the matrix and add column names Recuperation <- t(Recuperation) colnames(Recuperation) <- unlist(strsplit(paste( paste0("Recuperation rate (", rejection.criteria$recuperation_reference[1], ")"), 1:length(LnLxTnTx[LnLxTnTx[,"Name"] == "R0","Name"]), collapse = ";" ), ";")) } # Evaluate and Combine Rejection Criteria --------------------------------- temp.criteria <- c( if(!is.null(colnames(RecyclingRatio))){ colnames(RecyclingRatio)}else{NA}, if(!is.null(colnames(Recuperation))){ colnames(Recuperation)}else{NA}) temp.value <- c(RecyclingRatio,Recuperation) temp.threshold <- c(rep( rejection.criteria$recycling.ratio / 100, length(RecyclingRatio) ), rep( rejection.criteria$recuperation.rate / 100, length(Recuperation) )) ##RecyclingRatio temp.status.RecyclingRatio <- rep("OK", length(RecyclingRatio)) if (!anyNA(RecyclingRatio) && !is.na(rejection.criteria$recycling.ratio)) temp.status.RecyclingRatio[abs(1 - RecyclingRatio) > (rejection.criteria$recycling.ratio / 100)] <- "FAILED" ##Recuperation temp.status.Recuperation <- "OK" if (!is.na(Recuperation)[1] & !is.na(rejection.criteria$recuperation.rate)) { temp.status.Recuperation <- sapply(1:length(Recuperation), function(x) { if (Recuperation[x] > rejection.criteria$recuperation.rate / 100) { "FAILED" } else{ "OK" } }) } # Provide Rejection Criteria for Testdose error -------------------------- testdose.error.calculated <- (LnLxTnTx$Net_TnTx.Error/LnLxTnTx$Net_TnTx)[1] testdose.error.threshold <- rejection.criteria$testdose.error / 100 if (is.na(testdose.error.calculated)) { testdose.error.status <- "FAILED" }else{ testdose.error.status <- "OK" if(!is.na(testdose.error.threshold)){ testdose.error.status <- ifelse( testdose.error.calculated <= testdose.error.threshold, "OK", "FAILED" ) } } testdose.error.data.frame <- data.frame( Criteria = "Testdose error", Value = testdose.error.calculated, Threshold = testdose.error.threshold, Status = testdose.error.status, stringsAsFactors = FALSE ) RejectionCriteria <- data.frame( Criteria = temp.criteria, Value = temp.value, Threshold = temp.threshold, Status = c(temp.status.RecyclingRatio,temp.status.Recuperation), stringsAsFactors = FALSE ) RejectionCriteria <- rbind(RejectionCriteria, testdose.error.data.frame) ##========================================================================## ##PLOTTING ##========================================================================## if (plot) { ##make sure the par settings are good after the functions stops ##Why this is so complicated? Good question, if par() is called in the ##single mode, it starts a new plot and then subsequent functions like ##analyse_pIRIRSequence() produce an odd plot output. par.default <- par()[c("oma","mar","cex", "mfrow", "mfcol")] on_exit <- function(x = par.default){ par( oma = x$oma, mar = x$mar, cex = x$cex, mfrow = x$mfrow, mfcol = x$mfcol ) } ##colours and double for plotting col <- get("col", pos = .LuminescenceEnv) # plot everyting on one page ... doing it here is much cleaner than # Plotting - one Page config ------------------------------------------------------- if(plot_onePage){ on.exit(on_exit(), add = TRUE) plot_singlePanels <- TRUE layout(matrix( c(1, 1, 3, 3, 6, 6, 7, 1, 1, 3, 3, 6, 6, 8, 2, 2, 4, 4, 9, 9, 10, 2, 2, 4, 4, 9, 9, 10, 5, 5, 5, 5, 5, 5, 5), 5, 7, byrow = TRUE )) par(oma = c(0, 0, 0, 0), mar = c(4, 4, 3, 1), cex = cex * 0.6) } # Plotting - old way config ------------------------------------------------------- if (plot_singlePanels[1] == FALSE) { on.exit(on_exit(), add = TRUE) layout(matrix( c(1, 1, 3, 3, 1, 1, 3, 3, 2, 2, 4, 4, 2, 2, 4, 4, 5, 5, 5, 5), 5, 4, byrow = TRUE )) par( oma = c(0,0,0,0), mar = c(4,4,3,3), cex = cex * 0.6 ) ## 1 -> TL previous LnLx ## 2 -> LnLx ## 3 -> TL previous TnTx ## 4 -> TnTx ## 5 -> Legend ## set selected curves to allow plotting of all curves plot.single.sel <- c(1,2,3,4,5,6,7,8) }else{ ##check for values in the single output of the function and convert if (!is.logical(plot_singlePanels)) { plot.single.sel <- plot_singlePanels }else{ plot.single.sel <- c(1,2,3,4,5,6,7,8) } } ##warning if number of curves exceed colour values if (length(col) < length(OSL.Curves.ID) / 2) { .throw_warning("Too many curves, only the first ", length(col), " curves are plotted") } ##legend text legend.text <- paste(LnLxTnTx$Name,"\n(",LnLxTnTx$Dose,")", sep = "") ##get channel resolution (should be equal for all curves) resolution.OSLCurves <- round(object@records[[OSL.Curves.ID[1]]]@data[2,1] - object@records[[OSL.Curves.ID[1]]]@data[1,1], digits = 2) # Plotting TL Curves previous LnLx ---------------------------------------- ##overall plot option selection for plot.single.sel if (1 %in% plot.single.sel) { ##check if TL curves are available if (length(TL.Curves.ID.Lx) > 0) { ##It is just an approximation taken from the data resolution.TLCurves <- round(mean(diff( round(object@records[[TL.Curves.ID.Lx[[1]]]]@data[,1], digits = 1) )), digits = 1) ylim.range <- vapply(TL.Curves.ID.Lx, function(x) { range(object@records[[x]]@data[,2]) }, numeric(2)) plot( NA,NA, xlab = "T [\u00B0C]", ylab = paste("TL [cts/",resolution.TLCurves," \u00B0C]",sep = ""), xlim = c(object@records[[TL.Curves.ID.Lx[[1]]]]@data[1,1], max(object@records[[TL.Curves.ID.Lx[[1]]]]@data[,1])), ylim = c(1,max(ylim.range)), main = main, log = if (log == "y" | log == "xy") { "y" }else{ "" } ) #provide curve information as mtext, to keep the space for the header mtext(side = 3, expression(paste( "TL previous ", L[n],",",L[x]," curves",sep = "" )), cex = cex * 0.7) ##plot TL curves sapply(1:length(TL.Curves.ID.Lx) ,function(x) { lines(object@records[[TL.Curves.ID.Lx[[x]]]]@data,col = col[x]) }) }else{ plot( NA,NA,xlim = c(0,1), ylim = c(0,1), main = "", axes = FALSE, ylab = "", xlab = "" ) text(0.5,0.5, "No TL curve detected") } }#plot.single.sel # Plotting LnLx Curves ---------------------------------------------------- ## if we want to apply a log-transform on x and the first time point ## is 0, we shift the curves by one channel if (log == "x" || log == "xy") { sapply(OSL.Curves.ID.Lx, function(x) { x.vals <- object@records[[x]]@data[, 1] if (x.vals[1] == 0) { object@records[[x]]@data[, 1] <- x.vals + x.vals[2] - x.vals[1] .throw_warning("Curves shifted by one channel for log-plot") } }) } ##overall plot option selection for plot.single.sel if (2 %in% plot.single.sel) { ylim.range <- vapply(OSL.Curves.ID.Lx, function(x) { range(object@records[[x]]@data[,2]) }, numeric(2)) xlim <- c(object@records[[OSL.Curves.ID.Lx[1]]]@data[1,1], max(object@records[[OSL.Curves.ID.Lx[1]]]@data[,1])) #open plot area LnLx plot( NA,NA, xlab = "Time [s]", ylab = paste(CWcurve.type," [cts/",resolution.OSLCurves," s]",sep = ""), xlim = xlim, ylim = range(ylim.range), main = main, log = log ) #provide curve information as mtext, to keep the space for the header mtext(side = 3, expression(paste(L[n],",",L[x]," curves",sep = "")), cex = cex * 0.7) ##plot curves sapply(1:length(OSL.Curves.ID.Lx), function(x) { lines(object@records[[OSL.Curves.ID.Lx[[x]]]]@data,col = col[x]) }) ##mark integration limit Lx curves abline(v = c( object@records[[OSL.Curves.ID.Lx[1]]]@data[min(signal.integral),1], object@records[[OSL.Curves.ID.Lx[1]]]@data[max(signal.integral),1], object@records[[OSL.Curves.ID.Lx[1]]]@data[min(background.integral),1], object@records[[OSL.Curves.ID.Lx[1]]]@data[max(background.integral),1]), lty = 2, col = "gray") ##mtext, implemented here, as a plot window has to be called first mtext( mtext.outer, side = 4, outer = TRUE, line = -1.7, cex = cex, col = "blue" ) }# plot.single.sel # Plotting TL Curves previous TnTx ---------------------------------------- ##overall plot option selection for plot.single.sel if (3 %in% plot.single.sel) { ##check if TL curves are available if (length(TL.Curves.ID.Tx) > 0) { ##It is just an approximation taken from the data resolution.TLCurves <- round(mean(diff( round(object@records[[TL.Curves.ID.Tx[[1]]]]@data[,1], digits = 1) )), digits = 1) ylim.range <- vapply(TL.Curves.ID.Tx, function(x) { range(object@records[[x]]@data[,2]) }, numeric(2)) plot( NA,NA, xlab = "T [\u00B0C]", ylab = paste("TL [cts/",resolution.TLCurves," \u00B0C]",sep = ""), xlim = c(object@records[[TL.Curves.ID.Tx[[1]]]]@data[1,1], max(object@records[[TL.Curves.ID.Tx[[1]]]]@data[,1])), ylim = c(1,max(ylim.range)), main = main, log = if (log == "y" | log == "xy") { "y" }else{ "" } ) #provide curve information as mtext, to keep the space for the header mtext(side = 3, expression(paste( "TL previous ", T[n],",",T[x]," curves",sep = "" )), cex = cex * 0.7) ##plot TL curves sapply(1:length(TL.Curves.ID.Tx) ,function(x) { lines(object@records[[TL.Curves.ID.Tx[[x]]]]@data,col = col[x]) }) }else{ plot( NA,NA,xlim = c(0,1), ylim = c(0,1), main = "", axes = FALSE, ylab = "", xlab = "" ) text(0.5,0.5, "No TL curve detected") } }#plot.single.sel # Plotting TnTx Curves ---------------------------------------------------- ##overall plot option selection for plot.single.sel if (4 %in% plot.single.sel) { ylim.range <- vapply(OSL.Curves.ID.Tx, function(x) { range(object@records[[x]]@data[,2]) }, numeric(2)) xlim <- c(object@records[[OSL.Curves.ID.Tx[1]]]@data[1,1], max(object@records[[OSL.Curves.ID.Tx[1]]]@data[,1])) #open plot area LnLx plot( NA,NA, xlab = "Time [s]", ylab = paste0(CWcurve.type ," [cts/",resolution.OSLCurves," s]"), xlim = xlim, ylim = range(ylim.range), main = main, log = log ) #provide curve information as mtext, to keep the space for the header mtext(side = 3, expression(paste(T[n],",",T[x]," curves",sep = "")), cex = cex * 0.7) ##plot curves and get legend values sapply(1:length(OSL.Curves.ID.Tx) ,function(x) { lines(object@records[[OSL.Curves.ID.Tx[[x]]]]@data,col = col[x]) }) ##mark integration limit Tx curves abline(v = c( object@records[[OSL.Curves.ID.Tx[1]]]@data[min(signal.integral),1], object@records[[OSL.Curves.ID.Tx[1]]]@data[max(signal.integral),1], object@records[[OSL.Curves.ID.Tx[1]]]@data[min(background.integral),1], object@records[[OSL.Curves.ID.Tx[1]]]@data[max(background.integral),1]), lty = 2, col = "gray") }# plot.single.sel # Plotting Legend ---------------------------------------- ##overall plot option selection for plot.single.sel if (5 %in% plot.single.sel) { par.margin <- par()$mar par.mai <- par()$mai par(mar = c(1,1,1,1), mai = c(0,0,0,0)) plot( c(1:(length( OSL.Curves.ID ) / 2)), rep(7,length(OSL.Curves.ID) / 2), type = "p", axes = FALSE, xlab = "", ylab = "", pch = 20, col = unique(col[1:length(OSL.Curves.ID)]), cex = 4 * cex, ylim = c(0,10) ) ##add text text(c(1:(length( OSL.Curves.ID ) / 2)), rep(7,length(OSL.Curves.ID) / 2), legend.text, offset = 1, pos = 1) ##add line abline(h = 10,lwd = 0.5) #reset margin par(mar = par.margin, mai = par.mai) }#plot.single.sel }##end plot # Plotting GC ---------------------------------------- ##create data.frame temp.sample <- data.frame( Dose = LnLxTnTx$Dose, LxTx = LnLxTnTx$LxTx, LxTx.Error = LnLxTnTx$LxTx.Error, TnTx = LnLxTnTx$Net_TnTx ) ##overall plot option selection for plot.single.sel if (plot == TRUE && 6 %in% plot.single.sel) { plot <- TRUE }else { plot <- FALSE } temp.GC.all.na <- data.frame( De = NA, De.Error = NA, D01 = NA, D01.ERROR = NA, D02 = NA, D02.ERROR = NA, Dc = NA, n_N = NA, De.MC = NA, De.plot = NA, Fit = NA, HPDI68_L = NA, HPDI68_U = NA, HPDI95_L = NA, HPDI95_U = NA, RC.Status = NA, stringsAsFactors = FALSE) ##Fit and plot growth curve temp.GC <- temp.GC.all.na temp.GC.fit.Formula <- NULL if(!onlyLxTxTable){ temp.GC <- do.call(plot_GrowthCurve, args = modifyList( list( sample = temp.sample, output.plot = plot, plot_singlePanels = plot_onePage || length(plot_singlePanels) > 1, cex.global = if(plot_onePage) .6 else 1 ), list(...) )) ##if null if(is.null(temp.GC)){ temp.GC <- temp.GC.all.na temp.GC.fit.Formula <- NA ##create empty plots if needed, otherwise subsequent functions may crash if(plot){ shape::emptyplot() if (!"output.plotExtended" %in% extraArgs || extraArgs$output.plotExtended) { shape::emptyplot() shape::emptyplot() } } }else{ ##grep information on the fit object temp.GC.fit.Formula <- get_RLum(temp.GC, "Formula") ##grep results temp.GC <- get_RLum(temp.GC) # Provide Rejection Criteria for Palaeodose error -------------------------- if(is.na(temp.GC[,1])){ palaeodose.error.calculated <- NA }else{ palaeodose.error.calculated <- round(temp.GC[,2] / temp.GC[,1], digits = 5) } palaeodose.error.threshold <- rejection.criteria$palaeodose.error / 100 if (!is.na(palaeodose.error.threshold) && (is.na(palaeodose.error.calculated) || palaeodose.error.calculated > palaeodose.error.threshold)) { palaeodose.error.status <- "FAILED" } else { palaeodose.error.status <- "OK" } palaeodose.error.data.frame <- data.frame( Criteria = "Palaeodose error", Value = palaeodose.error.calculated, Threshold = palaeodose.error.threshold, Status = palaeodose.error.status, stringsAsFactors = FALSE ) ##add exceed.max.regpoint if (!is.na(temp.GC[,1]) & !is.na(rejection.criteria$exceed.max.regpoint) && rejection.criteria$exceed.max.regpoint) { status.exceed.max.regpoint <- ifelse(max(LnLxTnTx$Dose) < temp.GC[,1], "FAILED", "OK") }else{ status.exceed.max.regpoint <- "OK" } exceed.max.regpoint.data.frame <- data.frame( Criteria = "De > max. dose point", Value = as.numeric(temp.GC[,1]), Threshold = if(is.na(rejection.criteria$exceed.max.regpoint)){ NA }else if(!rejection.criteria$exceed.max.regpoint){ Inf }else{ as.numeric(max(LnLxTnTx$Dose)) }, Status = status.exceed.max.regpoint ) ##add to RejectionCriteria data.frame RejectionCriteria <- rbind(RejectionCriteria, palaeodose.error.data.frame, exceed.max.regpoint.data.frame) ##add rejection status if (length(grep("FAILED",RejectionCriteria$Status)) > 0) { temp.GC <- data.frame(temp.GC, RC.Status = "FAILED", stringsAsFactors = FALSE) }else{ temp.GC <- data.frame(temp.GC, RC.Status = "OK", stringsAsFactors = FALSE) } }#endif for is.null } ##add information on the integration limits temp.GC.extended <- data.frame( signal.range = paste(min(signal.integral),":", max(signal.integral)), background.range = paste(min(background.integral),":", max(background.integral)), signal.range.Tx = paste(min(ifelse(is.null(signal.integral.Tx),NA,signal.integral.Tx)),":", max(ifelse(is.null(signal.integral.Tx),NA,signal.integral.Tx))), background.range.Tx = paste(min(ifelse(is.null(background.integral.Tx), NA,background.integral.Tx)) ,":", max(ifelse(is.null(background.integral.Tx), NA,background.integral.Tx))), stringsAsFactors = FALSE ) # Set return Values ----------------------------------------------------------- ##generate unique identifier UID <- create_UID() ## get position numbers POSITION <- unique(unlist(lapply(object@records, function(x){ chk <- grepl(pattern = "position", tolower(names(x@info)), fixed = TRUE) if (any(chk)) return(x@info[chk]) else return(NA) })))[1] ## get grain numbers GRAIN <- unique(unlist(lapply(object@records, function(x) { chk <- grepl(pattern = "grain", tolower(names(x@info)), fixed = TRUE) if (any(chk)) return(x@info[chk]) else return(NA) })))[1] temp.results.final <- set_RLum( class = "RLum.Results", data = list( data = as.data.frame( c(temp.GC, temp.GC.extended, ALQ = 1, POS = POSITION, GRAIN = GRAIN, UID = UID), stringsAsFactors = FALSE), LnLxTnTx.table = cbind(LnLxTnTx, UID = UID, stringsAsFactors = FALSE), rejection.criteria = cbind(RejectionCriteria, UID, stringsAsFactors = FALSE), Formula = temp.GC.fit.Formula ), info = list(call = sys.call()) ) # Plot graphical interpretation of rejection criteria ----------------------------------------- if (plot && 7 %in% plot.single.sel) { ##set graphical parameter if (!plot_singlePanels[1]) par(mfrow = c(1,2)) ##Rejection criteria temp.rejection.criteria <- get_RLum(temp.results.final, data.object = "rejection.criteria") temp.rc.reycling.ratio <- temp.rejection.criteria[ grep("Recycling ratio",temp.rejection.criteria[,"Criteria"]),] temp.rc.recuperation.rate <- temp.rejection.criteria[ grep("Recuperation rate",temp.rejection.criteria[,"Criteria"]),] temp.rc.palaedose.error <- temp.rejection.criteria[ grep("Palaeodose error",temp.rejection.criteria[,"Criteria"]),] temp.rc.testdose.error <- temp.rejection.criteria[ grep("Testdose error",temp.rejection.criteria[,"Criteria"]),] plot( NA,NA, xlim = c(-0.5,0.5), ylim = c(0,40), yaxt = "n", ylab = "", xaxt = "n", xlab = "", bty = "n", main = "Rejection criteria" ) axis( side = 1, at = c(-0.2,-0.1,0,0.1,0.2), labels = c("- 0.2", "- 0.1","0/1","+ 0.1", "+ 0.2") ) ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++## ##polygon for recycling ratio text(x = -0.35, y = 35, "Recycling R.", pos = 3, srt = 90, cex = 0.8*cex, offset = 0) polygon(x = c( -as.numeric(as.character(temp.rc.reycling.ratio$Threshold))[1],-as.numeric(as.character(temp.rc.reycling.ratio$Threshold))[1], as.numeric(as.character(temp.rc.reycling.ratio$Threshold))[1], as.numeric(as.character(temp.rc.reycling.ratio$Threshold))[1] ), y = c(31,39,39,31), col = "gray", border = NA) polygon( x = c(-0.3, -0.3, 0.3, 0.3) , y = c(31, 39, 39, 31), border = ifelse(any( grepl(pattern = "FAILED", temp.rc.reycling.ratio$Status) ), "red", "black")) ##consider possibility of multiple pIRIR signals and multiple recycling ratios if (nrow(temp.rc.recuperation.rate) > 0) { col.id <- 1 for (i in seq(1,nrow(temp.rc.recuperation.rate), length(unique(temp.rc.recuperation.rate[,"Criteria"])))) { for (j in 0:length(unique(temp.rc.recuperation.rate[,"Criteria"]))) { points( temp.rc.reycling.ratio[i + j, "Value"] - 1, y = 35, pch = col.id, col = col.id, cex = 1.3 * cex ) } col.id <- col.id + 1 } rm(col.id) ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++## ##polygon for recuperation rate text( x = -0.35, y = 25, "Recuperation", pos = 3, srt = 90, cex = 0.8*cex, offset = 0, ) polygon( x = c( 0, 0, as.numeric(as.character( temp.rc.recuperation.rate$Threshold ))[1], as.numeric(as.character( temp.rc.recuperation.rate$Threshold ))[1] ), y = c(21,29,29,21), col = "gray", border = NA ) polygon( x = c(-0.3, -0.3, 0.3, 0.3) , y = c(21, 29, 29, 21), border = ifelse(any( grepl(pattern = "FAILED", temp.rc.recuperation.rate$Status) ), "red", "black") ) polygon( x = c(-0.3,-0.3,0,0) , y = c(21,29,29,21), border = NA, density = 10, angle = 45 ) for (i in 1:nrow(temp.rc.recuperation.rate)) { points( temp.rc.recuperation.rate[i, "Value"], y = 25, pch = i, col = i, cex = 1.3 * cex ) } } ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++## ##polygon for testdose error text( x = -0.35, y = 15, "Testdose Err.", pos = 3, srt = 90, cex = 0.8*cex, offset = 0, ) polygon( x = c( 0, 0, as.numeric(as.character(temp.rc.testdose.error$Threshold))[1], as.numeric(as.character(temp.rc.testdose.error$Threshold))[1] ), y = c(11,19,19,11), col = "gray", border = NA ) polygon( x = c(-0.3, -0.3, 0.3, 0.3) , y = c(11, 19, 19, 11), border = ifelse(any( grepl(pattern = "FAILED", temp.rc.testdose.error$Status) ), "red", "black") ) polygon( x = c(-0.3,-0.3,0,0) , y = c(11,19,19,11), border = NA, density = 10, angle = 45 ) for (i in 1:nrow(temp.rc.testdose.error)) { points( temp.rc.testdose.error[i, "Value"], y = 15, pch = i, col = i, cex = 1.3 * cex ) } ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++## ##polygon for palaeodose error text( x = -0.35, y = 5, "Palaeodose Err.", pos = 3, srt = 90, cex = 0.8*cex, offset = 0, ) polygon( x = c( 0, 0, as.numeric(as.character(temp.rc.palaedose.error$Threshold))[1], as.numeric(as.character(temp.rc.palaedose.error$Threshold))[1] ), y = c(1,9,9,1), col = "gray", border = NA ) polygon( x = c(-0.3, -0.3, 0.3, 0.3) , y = c(1, 9, 9, 1), border = ifelse(any( grepl(pattern = "FAILED", temp.rc.palaedose.error$Status) ), "red", "black") ) polygon( x = c(-0.3,-0.3,0,0) , y = c(1,9,9,1), border = NA, density = 10, angle = 45 ) if(nrow(temp.rc.palaedose.error) != 0){ for (i in 1:nrow(temp.rc.palaedose.error)) { if(!is.na(temp.rc.palaedose.error[i, "Value"])){ points( temp.rc.palaedose.error[i, "Value"], y = 5, pch = i, col = i, cex = 1.3 * cex ) } } } } if (plot == TRUE && 8 %in% plot.single.sel) { ##graphical representation of IR-curve temp.IRSL <- suppressWarnings(get_RLum(object, recordType = "IRSL")) if(length(temp.IRSL) != 0){ .validate_class(temp.IRSL, c("RLum.Data.Curve", "list")) if(inherits(temp.IRSL, "RLum.Data.Curve")){ plot_RLum.Data.Curve(temp.IRSL, par.local = FALSE) }else if(inherits(temp.IRSL, "list")){ plot_RLum.Data.Curve(temp.IRSL[[length(temp.IRSL)]], par.local = FALSE) .throw_warning("Multiple IRSL curves detected (IRSL test), only the last one shown") } }else{ plot(1, type="n", axes=F, xlab="", ylab="") text(x = c(1,1), y = c(1, 1), labels = "No IRSL curve detected!") } } # Return -------------------------------------------------------------------------------------- invisible(temp.results.final) }else{ .throw_warning(paste(unlist(error.list), collapse = "\n"), "\n... >> nothing was done here!") invisible(NULL) } } Luminescence/R/extract_ROI.R0000644000176200001440000001640214762554470015414 0ustar liggesusers#'@title Extract Pixel Values through Circular Region-of-Interests (ROI) from an Image #' #'@description Light-weighted function to extract pixel values from pre-defined regions-of-interest (ROI) from #'[RLum.Data.Image-class], [array] or [matrix] objects and provide simple image processing #'capacity. The function is limited to circular ROIs. #' #'@details The function uses a cheap approach to decide whether a pixel lies within #'a circle or not. It assumes that pixel coordinates are integer values and #'that a pixel centring within the circle is satisfied by: #' #'\deqn{x^2 + y^2 <= (d/2)^2} #' #'where \eqn{x} and \eqn{y} are integer pixel coordinates and \eqn{d} is the integer #'diameter of the circle in pixel. #' #'@param object [RLum.Data.Image-class], [array] or [matrix] (**required**): input image data #' #'@param roi [matrix] (**required**): matrix with three columns containing the centre coordinates #'of the ROI (first two columns) and the diameter of the circular ROI. All numbers must by of type [integer] #'and will forcefully coerced into such numbers using `as.integer()` regardless. #' #'@param roi_summary (*with default*): defines what is returned in the #'`roi_summary` element; it can be `"mean"` (default), `"median"`, `"sd"` or #'`"sum"`. #'Pixel values are conveniently summarised using the above defined keyword. #' #' @param plot [logical] (*optional*): enable/disable the plot output. Only #' the first image frame is shown. #' #'@return [RLum.Results-class] object with the following elements: #'`..$roi_signals`: a named [list] with all ROI values and their coordinates #'`..$roi_summary`: a [matrix] where rows are frames from the image, and columns are different ROI #'The element has two attributes: `summary` (the method used to summarise pixels) and `area` (the pixel area) #'`..$roi_coord`: a [matrix] that can be passed to [plot_ROI] #' #'If `plot = TRUE` a control plot is returned. #' #'@section Function version: 0.1.0 #' #'@author #'Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@seealso [RLum.Data.Image-class] #' #'@keywords manip #' #'@examples #' #' m <- matrix(runif(100,0,255), ncol = 10, nrow = 10) #' roi <- matrix(c(2.,4,2,5,6,7,3,1,1), ncol = 3) #' extract_ROI(object = m, roi = roi, plot = TRUE) #' #'@md #'@export extract_ROI <- function( object, roi, roi_summary = "mean", plot = FALSE ) { .set_function_name("extract_ROI") on.exit(.unset_function_name(), add = TRUE) # Self call --------------------------------------------------------------- if (is(object, "list")) return(merge_RLum(lapply(object, extract_ROI, roi = roi, plot = plot))) ## Integrity tests -------------------------------------------------------- .validate_class(object, c("RLum.Data.Image", "matrix", "array"), extra = "a 'list' of such objects") ## check input for ROIs .validate_class(roi, "matrix") if (nrow(roi) < 1 || ncol(roi) < 3) .throw_error("'roi' does not have the expected format") ## calculate the radius roi <- roi[,1:3] roi[,3] <- ceiling(roi[,3]/2) ## make sure that we have integer values only in the matrix roi[] <- as.integer(roi) ## copy object (to not work on the input data) a <- object ## try to convert into something meaningful if (is(object, "RLum.Data.Image")) a <- object@data if (is(object, "matrix")) a <- array(data = object, dim = c(nrow(object), ncol(object), 1)) # Helper function --------------------------------------------------------- .extract_pixel <- function(m, r, mid) { ## get row - column combinations grid <- as.matrix(expand.grid(x = 1:nrow(m), y = 1:ncol(m))) ## adjust values for mid point ## + get pixel coordinates if within the circle px_id <- grid[(grid[,"x"] - mid[1])^2 + (grid[,"y"] - mid[2])^2 <= r[1]^2,] ## extract values from matrix px_extract <- NA if (nrow(px_id) > 0) { px_extract <- vapply(1:nrow(px_id), function(x) { m[px_id[x,1],px_id[x,2]] }, numeric(1)) } attr(px_extract, "coord") <- px_id return(px_extract) } # Extract ROIs ------------------------------------------------------------ roi_signals <- lapply(1:nrow(roi), function(x){ ## iterate through a stack if needed temp <- lapply(1:(dim(a)[3]), function(z){ .extract_pixel(a[,,z], roi[x,3], mid = roi[x,1:2]) }) ## compile into matrix m <- matrix(unlist(temp), nrow = length(temp[[1]])) ## add attributes ... including coordinates; but only one time colnames(m) <- paste0("frame_", 1:ncol(m)) attr(m, "px_coord") <- attr(temp[[1]], "coord") return(m) }) ## add names names(roi_signals) <- paste0("ROI_", 1:nrow(roi)) # Plot check -------------------------------------------------------------- if (plot) { ## this is a control plot, so we plot only the first image; nothing more ## image graphics::image( x = 1:nrow(a[, , 1]), y = 1:ncol(a[, , 1]), a[, , 1], ylab = "y-dim [px]", xlab = "x-dim [px]", useRaster = TRUE, main = "extract_ROIs() - control plot") graphics::box() ## visualise ROIs overlay <- a[,,1] overlay[] <- 0 for (i in 1:length(roi_signals)) overlay[attr(roi_signals[[i]], "px_coord")[,1], attr(roi_signals[[i]], "px_coord")[,2]] <- 1 ## marked ROIs graphics::image( x = 1:nrow(a[, , 1]), y = 1:ncol(a[, , 1]), overlay, axes = FALSE, add = TRUE, useRaster = TRUE, col = c(rgb(1, 1, 1, 0), rgb(0, 1, 0, 0.5))) ## add circles and points for (i in 1:nrow(roi)) { lines(shape::getellipse(rx = roi[i, 3], mid = c(roi[i, 1:2], dr = 0.1)), col = "red", lwd = 1.5) text(x = roi[i,1], y = roi[i,2], i, col = "black", cex = 1.2) } } # ROI summary ------------------------------------------------------------- ## set roi fun and avoid add input .validate_class(roi_summary, "character") roi_fun <- .validate_args(roi_summary, c("mean", "median", "sd", "sum")) ## create summary using matrixStats roi_summary <- matrix(unlist( switch(roi_fun, "mean" = lapply(roi_signals, matrixStats::colMeans2), "median" = lapply(roi_signals, matrixStats::colMedians), "sd" = lapply(roi_signals, matrixStats::colSds), "sum" = lapply(roi_signals, matrixStats::colSums2))), ncol = length(roi_signals)) ## set names to make it easier colnames(roi_summary) <- names(roi_signals) rownames(roi_summary) <- paste0("frame_", 1:nrow(roi_summary)) attr(roi_summary, "summary") <- roi_fun attr(roi_summary, "area") <- vapply(roi_signals, nrow, numeric(1)) ## add more roi information to the output for further processing roi <- cbind( ROI = 1:nrow(roi), x = roi[,1], y = roi[,2], area = attr(roi_summary, "area"), width = vapply(roi_signals, function(x) diff(range(attr(x, "px_coord")[,"x"])), numeric(1)), height = vapply(roi_signals, function(x) diff(range(attr(x, "px_coord")[,"y"])), numeric(1)), img_width = nrow(a[, , 1]), img_height = ncol(a[, , 1]), grain_d = roi[,3]) # Return ------------------------------------------------------------------ return( set_RLum( class = "RLum.Results", data = list( roi_signals = roi_signals, roi_summary = roi_summary, roi_coord = roi), info = list( call = sys.call()))) } Luminescence/R/combine_De_Dr.R0000644000176200001440000006361314762554470015710 0ustar liggesusers#'@title Estimate Individual Age using Bayesian Inference #' #'@description A Bayesian robust estimation of central age from equivalent dose #' measurements under the assumption that the dose rate is modelled by a #' finite Gaussian mixture model. #' #'@param theta [numeric] (**required**): the weight vector of the Gaussian mixture #' #'@param mu [numeric] (**required**): is the mean vector of the Gaussian mixture #' #'@param sigma [numeric] (**required**): is the standard deviation vector of the Gaussian mixture #' #'@param De [numeric] (**required**): the equivalent dose sample #' #'@param s [numeric] (**required**): the vector of measurement errors on De. #' #'@param sig0 [numeric] (**required**): the prior shrinkage parameter #' #'@param Age_range [numeric] (*with default*): the age range to investigate #' #'@param method_control [list] (*with default*): parameters passed down #' to the jags process #' #' @param verbose [logical] (*with default*): enable/disable output to the #' terminal. #' #'@return An [RLum.Results-class] object to be used in [combine_De_Dr] #' #'@section Function version: 0.1.0 #' #'@note The function is intended to be called by [combine_De_Dr], however, for #' reasons of transparency #' #'@author Anne Philippe, Université de Nantes (France), #' Jean-Michel Galharret, Université de Nantes (France), #' Norbert Mercier, IRAMAT-CRP2A, Université Bordeaux Montaigne (France), #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@examples #' n <- 1000 #' sdt <- 0.3 #' Dr <- stats::rlnorm (n, 0, sdt) #' int_OD <- 0.1 #' tildeDr = Dr * (1 + rnorm(length(Dr), 0, int_OD)) #' De <- c(50 * sample(Dr, 50, replace = TRUE), 10, 12, 200, 250) #' k <- length(De) #' s <- stats::rnorm(k, 10, 2) #' a <- De / mean(tildeDr) #' sig_a2 <- a ^ 2 * (s / De) ^ 2 #' sig0 <- sqrt(1 / mean(1 / sig_a2)) #' fit <- mclust::Mclust(tildeDr, model = "V") #' theta <- fit$parameters$pro #' mu <- fit$parameters$mean #' sigma <- sqrt(fit$parameters$variance$sigmasq) #' Age_range <- c(0, Dr * (1 + rnorm(length(Dr), 0, int_OD[1]))) #' res <- .calc_IndividualAgeModel(theta, mu, sigma, De, s, sig0, Age_range = Age_range) #'@md #'@noRd .calc_IndividualAgeModel <- function( theta, mu, sigma, De, s, sig0, Age_range, method_control = list(), verbose = TRUE ){ # Set parameters and models ----------------------------------------------- nobs <- length(De) event1 <- "model{ for( i in 1 : N ) { D_e[i] ~ dnorm(a[i] * mu, tau[i]) tau[i] <- 1 / (a[i] * sigma) ^ 2 De[i] ~ dnorm(D_e[i], prec2[i]) a[i] ~ dnorm(A, prec_a[i]) u[i] ~ dunif(0,1) prec_a[i] <- 1 / s02 * u[i] / (1 - u[i]) prec2[i] <- 1 / (s2[i]) sig_a[i] <- 1 / sqrt(prec_a[i]) } A ~ dunif(Amin, Amax) }" event2 <- "model{ for( i in 1 : N ) { D_e[i] ~ dnorm(a[i] * mu[z[i]], tau[i]) tau[i] <- 1 / (a[i] * sigma[z[i]]) ^ 2 z[i] ~ dcat(theta) De[i] ~ dnorm(D_e[i], prec2[i]) a[i] ~ dnorm(A, prec_a[i]) u[i] ~ dunif(0, 1) prec_a[i] <- 1 / s02 * u[i] / (1 - u[i]) prec2[i] <- 1 / (s2[i]) sig_a[i] <- 1 / sqrt(prec_a[i]) } A ~ dunif(Amin, Amax) }" data1 <- list( 'theta' = theta, 'mu' = mu, 'sigma' = sigma, 'N' = nobs , 'De' = De, 's2' = s ^ 2, 's02' = sig0[1] ^ 2, 'Amin' = Age_range[1], 'Amax' = Age_range[2] ) # Run Bayesian model ------------------------------------------------------ method_control <- modifyList( x = list( variable.names = c('A', 'a', 'sig_a'), n.chains = 4, n.adapt = 1000, n.iter = 5000, thin = 1, progress.bar = if(verbose) "text" else "none", quiet = if(verbose) FALSE else TRUE, diag = if(verbose) TRUE else FALSE, return_mcmc = FALSE ), val = method_control) on.exit(close(model), add = TRUE) ## select model if(length(theta) == 1) { data1$theta <- NULL model <- textConnection(event1) } else { model <- textConnection(event2) } ## run model if(verbose) cat("(1) Running Bayesian modelling 'Individual Age Model' ... ") jags <- rjags::jags.model( file = model, data = data1, n.chains = method_control$n.chains, n.adapt = method_control$n.adapt, quiet = method_control$quiet ) stats::update( jags, n.iter = method_control$n.iter, progress.bar = method_control$progress.bar, quiet = method_control$quiet ) samp <- rjags::coda.samples( model = jags, variable.names = method_control$variable.names, n.iter = method_control$n.iter, thin = method_control$thin, progress.bar = method_control$progress.bar ) if(verbose & method_control$quiet) cat("DONE") if(method_control$diag) { cat("\n[.calc_IndividualAgeModel()]\n") print(coda::gelman.diag(samp)) } # Return ------------------------------------------------------------------ return(set_RLum( "RLum.Results", data = list( A = unlist(samp[, "A"]), a = do.call(rbind, samp[, 2:(nobs + 1)]), sig_a = do.call(rbind, samp[, (2 + nobs):(2 * nobs + 1)]), model = paste(jags$model(), ""), mcmc_IAM = if(method_control$return_mcmc) samp else NULL), info = list(call = sys.call()) )) } #'@title Central Bayesian Central Age Model #' #'@description A Bayesian estimation of central age from equivalent dose measurements #'under the assumption that the dose rate is modelled by finite Gaussian mixture model. #'MCMC outputs provide to JAGS program. #' #'@param theta [numeric] (**required**): the weight vector of the Gaussian mixture #' #'@param mu [numeric] (**required**): is the mean vector of the Gaussian mixture #' #'@param sigma [numeric] (**required**): is the standard deviation vector of the Gaussian mixture #' #'@param De [numeric] (**required**): the equivalent dose sample #' #'@param s [numeric] (**required**): the vector of measurement errors on De. #' #'@param Age_range [numeric] (*with default*): the age range to investigate #' #'@param method_control [list] (*with default*): parameters passed down to the jags process #' #' @param verbose [logical] (*with default*): enable/disable output to the #' terminal. #' #'@return An [RLum.Results-class] object #' #'@section Function version: 0.1.0 #' #'@author Anne Philippe, Université de Nantes (France), #'Jean-Michel Galharret, Université de Nantes (France), #'Norbert Mercier, IRAMAT-CRP2A, Université Bordeaux Montaigne (France), #'Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@md #'@noRd .calc_BayesianCentralAgeModel <- function( theta, mu, sigma, De, s, Age_range, method_control = list(), verbose = TRUE ){ # Set models -------------------------------------------------------------- central_age_model1 <- " model{ for( i in 1:J) { D_e[i] ~ dnorm(A*mu,1/(A*sigma)^2) De[i] ~ dnorm(D_e[i], prec2[i]) prec2[i] <- 1/(s2[i]) } A ~ dunif(Amin,Amax) }" central_age_model2 <- " model{ for( i in 1:J) { D_e[i] ~ dnorm(A*mu[z[i]],tau[i]) tau[i]<-1/(A*sigma[z[i]])^2 z[i] ~ dcat(theta) De[i] ~ dnorm(D_e[i], prec2[i]) prec2[i] <- 1/(s2[i]) } A ~ dunif(Amin,Amax) }" # Run Bayesian modelling -------------------------------------------------- method_control <- modifyList( x = list( variable.names = c('A', 'D_e'), n.chains = 4, n.adapt = 1000, n.iter = 5000, thin = 1, progress.bar = if(verbose) "text" else "none", quiet = if(verbose) FALSE else TRUE, diag = if(verbose) TRUE else FALSE, return_mcmc = FALSE ), val = method_control) on.exit(close(model), add = TRUE) data <- list( 'theta' = theta, 'mu' = mu, 'sigma' = sigma, 'De' = De, 'J' = length(De), 's2' = s ^ 2, 'Amin' = Age_range[1], 'Amax' = Age_range[2] ) ## select model if(length(theta) == 1) { data$theta <- NULL model <- textConnection(central_age_model1) } else { model <- textConnection(central_age_model2) } ## run modelling if(verbose) cat("\n(2) Running Bayesian modelling 'Bayesian Central Age Model' ... ") jags2 <- rjags::jags.model( file = model, data = data, n.chains = method_control$n.chains, n.adapt = method_control$n.adapt, quiet = method_control$quiet ) stats::update( object = jags2, n.iter = method_control$n.iter, progress.bar = method_control$progress.bar, quiet = method_control$quiet ) samp2 <- rjags::coda.samples( model = jags2, variable.names = method_control$variable.names, n.iter = method_control$n.iter, thin = method_control$thin, progress.bar = method_control$progress.bar ) if(verbose & method_control$quiet) cat("DONE\n") if(method_control$diag) { cat("\n[.calc_BayesianCentralAgeModel()]\n") print(coda::gelman.diag(samp2)) } # Return ------------------------------------------------------------------ return(set_RLum( "RLum.Results", data = list( A = unlist(samp2[, "A"]), D_e = do.call(rbind, samp2[, -1]), model = paste(jags2$model(), ""), mcmc_BCAM = if(method_control$return_mcmc) samp2 else NULL), info = list(call = sys.call()) )) } #'@title Combine Dose Rate and Equivalent Dose Distribution #' #'@description A Bayesian statistical analysis of OSL age requiring dose rate sample. #'Estimation contains a preliminary step for detecting outliers in the equivalent #'dose sample. #' #'@details #' #'**Outlier detection** #' #'Two different outlier detection methods are implemented (full details are given #'in the cited literature). #' #'1. The *default* and recommend method, uses quantiles to compare prior and #'posterior distributions of the individual variances of the equivalent doses. #'If the corresponding quantile in the corresponding posterior distribution is larger #'than the quantile in the prior distribution, the value is marked #'as outlier (cf. Galharret et al., preprint) #' #'2. The alternative method employs the method suggested by Rousseeuw and Croux (1993) #'using the absolute median distance. #' #'**Parameters available for `method_control`** #' #'The parameters listed below are used to granular control Bayesian modelling using #'[rjags::rjags]. Internally the functions `.calc_IndividualAgeModel()` and #'`.calc_BayesianCentraAgelModel()`. The parameter settings affect both models. #'Note: `method_control` expects a **named** list of parameters #' #'\tabular{llll}{ #' **PARAMETER** \tab **TYPE** \tab **DEFAULT** \tab **REMARKS** \cr #' `variable.names_IAM` \tab [character] \tab `c('A', 'a', 'sig_a')` \tab variables names to be monitored in the modelling process using the internal function `.calc_IndividualAgeModel()`\cr #' `variable.names_BCAM` \tab [character] \tab `c('A', 'D_e')` \tab variables names to be monitored in the modelling process using the internal function `.calc_BayesianCentraAgelModel()`\cr #' `n.chains` \tab [integer] \tab `4` \tab number of MCMC chains\cr #' `n.adapt` \tab [integer] \tab `1000` \tab number of iterations for the adaptation\cr #' `n.iter` \tab [integer] \tab `5000` \tab number of iterations to monitor cf. [rjags::coda.samples]\cr #' `thin` \tab [numeric] \tab `1` \tab thinning interval for the monitoring cf. [rjags::coda.samples]\cr #' `diag` \tab [logical] \tab `FALSE` \tab additional terminal convergence diagnostic. #' `FALSE` if `verbose = FALSE`\cr #' `progress.bar` \tab [logical] \tab `FALSE` \tab enable/disable progress bar. `FALSE` if `verbose = FALSE`\cr #' `quiet` \tab [logical] \tab `TRUE` \tab silence terminal output. Set to `TRUE` if `verbose = FALSE`\cr #' `return_mcmc`\tab [logical] \tab `FALSE` \tab return additional MCMC diagnostic information\cr #'} #' #'@param De [numeric] (**required**): a equivalent dose sample #' #'@param s [numeric] (**required**): a vector of measurement errors on the equivalent dose #' #'@param Dr [numeric] (**required**): a dose rate sample #' #'@param int_OD [numeric] (**required**): the intrinsic overdispersion, typically the standard deviation #'characterizing a dose-recovery test distribution #' #'@param Age_range [numeric] (*with default*): the age range to be investigated by the algorithm, the larger #'the value the more iterations are needed and the longer it takes. Should not be set too narrow, cut #'the algorithm some slack. #' #'@param outlier_threshold [numeric] (*with default*): the required significance level used #'for the outlier detection. If set to `1`, no outliers are removed. If #'`outlier_method = "RousseeuwCroux1993"`, the median distance is used as outlier threshold. #'Please see details for further information. #' #'@param outlier_method [character] (*with default*): select the outlier detection #'method, either `"default"` or `"RousseeuwCroux1993"`. See details for further information. #' #' @param outlier_analysis_plot [logical] (*with default*): enable/disable the #' outlier analysis plot. Note: the outlier analysis will happen independently #' of the plot output. #' #'@param method_control [list] (*with default*): named [list] of further parameters passed down #' to the [rjags::rjags] modelling #' #'@param par_local [logical] (*with default*): if set to `TRUE` the function uses its #'own [graphics::par] settings (which will end in two plots next to each other) #' #' @param verbose [logical] (*with default*): enable/disable output to the #' terminal. #' #' @param plot [logical] (*with default*): enable/disable the plot output. #' #'@param ... a few further arguments to fine-tune the plot output such as #'`cdf_ADr_quantiles` (`TRUE`/`FALSE`), `legend.pos`, `legend` (`TRUE`/`FALSE`) #' #'@return The function returns a plot if `plot = TRUE` and an [RLum.Results-class] #'object with the following slots: #' #' `@data`\cr #' `.. $Ages`: a [numeric] vector with the modelled ages to be further analysed or visualised\cr #' `.. $Ages_stats`: a [data.frame] with sum HPD, CI 68% and CI 95% for the ages \cr #' `.. $outliers_index`: the index with the detected outliers\cr #' `.. $cdf_ADr_mean` : empirical cumulative density distribution A * Dr (mean)\cr #' `.. $cdf_ADr_quantiles` : empirical cumulative density distribution A * Dr (quantiles .025,.975)\cr #' `.. $cdf_De_no_outlier` : empirical cumulative density distribution of the De with no outliers\cr #' `.. $cdf_De_initial` : empirical cumulative density distribution of the initial De\cr #' `.. $mcmc_IAM` : the MCMC list of the Individual Age Model, only of `method_control = list(return_mcmc = TRUE)` otherwise `NULL`\cr #' `.. $mcmc_BCAM` : the MCMC list of the Bayesian Central Age Model, only of `method_control = list(return_mcmc = TRUE)` otherwise `NULL`\cr #' #' `@info`\cr #' `.. $call`: the original function call\cr #' `.. $model_IAM`: the BUGS model used to derive the individual age\cr #' `.. $model_BCAM`: the BUGS model used to calculate the Bayesian Central Age\cr #' #'@references #' #'Mercier, N., Galharret, J.-M., Tribolo, C., Kreutzer, S., Philippe, A., preprint. #'Luminescence age calculation through Bayesian convolution of equivalent dose and #'dose-rate distributions: the De_Dr model. Geochronology, 1-22. #' #'Galharret, J-M., Philippe, A., Mercier, N., preprint. Detection of outliers with #'a Bayesian hierarchical model: application to the single-grain luminescence dating method. #'Electronic Journal of Applied Statistics #' #'**Further reading** #' #'Rousseeuw, P.J., Croux, C., 1993. Alternatives to the median absolute deviation. #'Journal of the American Statistical Association 88, 1273–1283. \doi{10.2307/2291267} #' #'Rousseeuw, P.J., Debruyne, M., Engelen, S., Hubert, M., 2006. Robustness and outlier detection in chemometrics. #'Critical Reviews in Analytical Chemistry 36, 221–242. \doi{10.1080/10408340600969403} #' #'@author Anne Philippe, Université de Nantes (France), #'Jean-Michel Galharret, Université de Nantes (France), #'Norbert Mercier, IRAMAT-CRP2A, Université Bordeaux Montaigne (France), #'Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@seealso [plot_OSLAgeSummary], [rjags::rjags], [mclust::mclust-package] #' #'@section Function version: 0.1.0 #' #'@keywords dplot distribution datagen #' #'@examples #'## set parameters #' Dr <- stats::rlnorm (1000, 0, 0.3) #' De <- 50*sample(Dr, 50, replace = TRUE) #' s <- stats::rnorm(50, 10, 2) #' #'## run modelling #'## note: modify parameters for more realistic results #'\dontrun{ #'results <- combine_De_Dr( #' Dr = Dr, #' int_OD = 0.1, #' De, #' s, #' Age_range = c(0,100), #' method_control = list( #' n.iter = 100, #' n.chains = 1)) #' #'## show models used #'writeLines(results@info$model_IAM) #'writeLines(results@info$model_BCAM) #'} #' #'@md #'@export combine_De_Dr <- function( De, s, Dr, int_OD, Age_range = c(1,300), outlier_threshold = .05, outlier_method = "default", outlier_analysis_plot = FALSE, method_control = list(), par_local = TRUE, verbose = TRUE, plot = TRUE, ... ) { .set_function_name("combine_De_Dr") on.exit(.unset_function_name(), add = TRUE) ## check package availability --------------------------------------------- .require_suggested_package("rjags") .require_suggested_package("coda") .require_suggested_package("mclust") ## Integrity checks ------------------------------------------------------- if (length(De) != length(s)) .throw_error("'De' and 's' should have the same length") .validate_logical_scalar(verbose) .validate_logical_scalar(plot) # Prepare data ------------------------------------------------------------ ## we have to fetch the function otherwise ## we would need it in import instead of suggests mclustBIC <- mclust::mclustBIC ## Estimation of the rate dose Dr1 by a Gaussian Mixture Model tildeDr <- Dr * (1 + rnorm(length(Dr), 0, int_OD[1])) fit <- mclust::Mclust(data = tildeDr, modelNames = "V", verbose = FALSE) theta <- fit$parameters$pro mu <- fit$parameters$mean sigma <- sqrt(fit$parameters$variance$sigmasq) a <- De / mean(tildeDr) sig_a2 <- a ^ 2 * (s / De) ^ 2 sig0 <- sqrt(1 / mean(1 / sig_a2)) # Set parameters ---------------------------------------------------------- method_control <- modifyList( x = list( variable.names_IAM = c('A', 'a', 'sig_a'), variable.names_BCAM = c('A', 'D_e'), n.chains = 4, n.adapt = 1000, n.iter = 5000, thin = 1, progress.bar = "none", quiet = TRUE, diag = FALSE, return_mcmc = FALSE ), val = method_control) # Bayesian Modelling IAM -------------------------------------------------- if(verbose) cat("\n[combine_De_Dr()]\n") fit_IAM <- .calc_IndividualAgeModel( theta = theta, mu = mu, sigma = sigma, De = De, s = s, sig0 = sig0, Age_range = Age_range[1:2], verbose = verbose, method_control = list( variable.names = method_control$variable.names_IAM, n.chains = method_control$n.chains, n.adapt = method_control$n.adapt, n.iter = method_control$n.iter, thin = method_control$thin, progress.bar = method_control$progress.bar, quiet = method_control$quiet, diag = method_control$diag, return_mcmc = method_control$return_mcmc) ) # Outlier detection ------------------------------------------------------- ## set threshold for outliers alpha <- outlier_threshold[1] ## apply method ... default is method develop by Jean-Michel and Anne if(outlier_method == "RousseeuwCroux1993") { ## calculate the median of the sig_a xj <- log(matrixStats::colMedians(fit_IAM$sig_a)) MAD <- 1.483 * median(abs(xj - median(xj))) test <- (xj - median(xj)) / MAD out <- sort(which(test > alpha)) } else { sig_max <- sig0 * ((1 - alpha) / alpha) ^ .5 test <- vapply(1:length(De), function(j){ mean(fit_IAM$sig_a[, j] >= sig_max) }, numeric(1)) out <- sort(which(test > alpha)) } ##some terminal output if(verbose){ if (length(out) > 0) { cat( paste0( "\n >> Outliers detected: ", length(out), "/", length(De), " (", round(length(out) / length(De) * 100, 1), "%)" ) ) } } ## apply the removal if (length(out) == 0) { De1 <- De s1 <- s } else { De1 <- De[-out] s1 <- s[-out] } # Bayesian modelling BCAM ------------------------------------------------- fit_BCAM <- .calc_BayesianCentralAgeModel( theta, mu, sigma, De = De1, s = s1, Age_range = Age_range, verbose = verbose, method_control = list( variable.names = method_control$variable.names_BCAM, n.chains = method_control$n.chains, n.adapt = method_control$n.adapt, n.iter = method_control$n.iter, thin = method_control$thin, progress.bar = method_control$progress.bar, quiet = method_control$quiet, diag = method_control$diag, return_mcmc = method_control$return_mcmc) ) # Calculate EDFC ------------------------------------------------- ## calculate various parameters D_e <- fit_BCAM$D_e A2 <- fit_BCAM$A ## calculate bandwidths h <- density(De)$bw h1 <- density(De1)$bw t <- seq(min(D_e), max(D_e), length.out = min(1000, round(max(D_e) - min(D_e), 0))) ind <- min(5000, length(A2)) subsamp <- sample(1:length(A2), ind, replace = FALSE) cdf_ADr <- matrix(0, nrow = ind, ncol = length(t)) ## De distribution re-sampled without outliers -> De2 ## De distribution re-sampled initial -> De3 De2 <- rnorm(length(subsamp), sample(De1, size = length(subsamp), replace = TRUE), h1) De3 <- rnorm(length(subsamp), sample(De, size = length(subsamp), replace = TRUE), h) ## calculate ecdf cdf_De_no_outlier<- stats::ecdf(De2)(t) cdf_De_initial <- stats::ecdf(De3)(t) for (i in 1:ind) cdf_ADr[i, ] <- stats::ecdf(A2[subsamp[i]] * tildeDr)(t) ## calculate mean value and quantiles for the ecdf A * Dr cdf_ADr_mean <- matrixStats::colMeans2(cdf_ADr) cdf_ADr_quantiles <- matrixStats::colQuantiles(cdf_ADr, probs = c(.025,.975)) ## further values to ease the interpretation d <- density(fit_BCAM$A) HPD <- d$x[which.max(d$y)[1]] CI_68 <- .calc_HPDI(fit_BCAM$A, prob = 0.68) CI_95 <- .calc_HPDI(fit_BCAM$A, prob = 0.95) # Additional terminal output ---------------------------------------------- if(verbose){ cat("(3) Age results (presumably in ka) \n") cat(" -----------------------------------\n") cat(" Age (HPD) :\t", format(round(HPD,2), nsmall = 2), "\n") cat(" Age (CI 68%):\t", paste(format(round(range(CI_68),2), nsmall =2), collapse = " : "), "\n") cat(" Age (CI 95%):\t", paste(format(round(range(CI_95),2), nsmall =2), collapse = " : "), "\n") cat(" -----------------------------------\n") } # Plotting ---------------------------------------------------------------- if(plot){ ##check incoming plot settings plot_settings <- modifyList(x = list( cdf_ADr_quantiles = FALSE, legend = TRUE, legend.pos = "bottomright" ), list(...)) ##make sure we reset plots if(par_local) { old.par <- par(mfrow = c(1, 2)) on.exit(par(old.par), add = TRUE) } if(outlier_analysis_plot){ N <- length(De) ##plot with outliers graphics::boxplot(fit_IAM$sig_a, outline = FALSE, col = (abs(as.numeric( 1:length(De) %in% out ) - 1) + 2), main = "Outlier detection", xaxt = "n", xlab = expression(paste("Index of ", sigma[a]))) ## add axis axis(side = 1, at = 1:length(De), labels = 1:length(De), ) mtext( text = paste0(length(out), "/", N, " (", round(length(out) / N * 100, 1), "%)"), side = 3, cex = 0.8 ) abline(h = sig0, col = "violet") ##plot sd of outliers if(length(out) > 0){ graphics::boxplot(fit_IAM$sig_a[, out], outline = FALSE, names = out, ylab = "Individual sd [a.u.]", main = "Outliers: posterior distr.") abline(h = sig0, col = "violet") } else { shape::emptyplot() text(0.5, 0.5, "No outlier detected!") } } ##plot age summary plot_OSLAgeSummary( object = fit_BCAM, level = 0.68, rug = FALSE, polygon_col = rgb(100, 149, 237, 75, maxColorValue = 255), verbose = FALSE ) ## open plot area plot(NA, xlim = range(t), ylim = c(0, 1), ylab = "ecdf (mean)", xlab = "Dose [Gy]", main= "ECDF") ## add quantile range (only for A * Dr) if(plot_settings$cdf_ADr_quantiles){ polygon( x = c(t, rev(t)), y = c(cdf_ADr_quantiles[,1], rev(cdf_ADr_quantiles[,2])), col = rgb(1,0,0,0.2), lty = 0) } ##add mean lines for the ecdfs lines(t, cdf_ADr_mean, col = 2, lty = 1, lwd = 2) lines(t, cdf_De_no_outlier, type = "l", col = 3, lty = 2, lwd = 2) lines(t, cdf_De_initial, type = "l", col = 4, lty = 3, lwd = 2) if(plot_settings$legend){ legend( plot_settings$legend.pos, legend = c( expression(A %*% Dr), expression(paste(D[e], " no outliers")), expression(paste(D[e], " initial"))), lty = c(1,2,3), bty = "n", col = c(2,3,4), cex = 0.8) } } # Return results ---------------------------------------------------------- return(set_RLum( "RLum.Results", data = list( Ages = fit_BCAM$A, Ages_stats = data.frame( HPD = HPD, CI_68_lower = CI_68[1], CI_68_upper = CI_68[2], CI_95_lower = CI_95[1], CI_95_upper = CI_95[2]), outliers_index = out, cdf_ADr_mean = cdf_ADr_mean, cdf_ADr_quantiles = cdf_ADr_quantiles, cdf_De_no_outlier = cdf_De_no_outlier, cdf_De_initial = cdf_De_initial, mcmc_IAM = fit_IAM$mcmc_IAM, mcmc_BCAM = fit_BCAM$mcmc_BCAM ), info = list( call = sys.call(), model_IAM = fit_IAM$model, model_BCAM = fit_BCAM$model) )) } Luminescence/R/calc_EED_Model.R0000644000176200001440000007046214762554470015736 0ustar liggesusers#' @title Modelling Exponential Exposure Distribution #' #' @description Modelling incomplete and heterogeneous bleaching of mobile grains partially #' exposed to the light, an implementation of the EED model proposed by Guibert et al. (2019). #' #' @details The function is an implementation and enhancement of the scripts used in #' Guibert et al. (2019). The implementation supports a semi-automated estimation #' of the parameters `kappa` and `sigma_distr`. If set to `NULL`, a surface interpolation #' is used to estimated those values. #' #' **Method control parameters** #' #' \tabular{llll}{ #' **ARGUMENT** \tab **FUNCTION** \tab **DEFAULT** \tab **DESCRIPTION**\cr #' `lower` \tab - \tab `c(0.1,0,0)` \tab set lower bounds for kappa, sigma, and the expected De in auto mode \cr #' `upper` \tab - \tab `c(1000,2)` \tab set upper bounds for kappa, sigma, and the expected De in auto mode \cr #' `iter_max` \tab - \tab `1000` \tab maximum number for iterations for used to find kappa and sigma \cr #' `trace` \tab - \tab `FALSE` \tab enable/disable terminal trace mode; overwritten by global argument `verbose`\cr #' `trace_plot` \tab - \tab `FALSE` \tab enable/disable additional trace plot output; overwritten by global argument `verbose` \cr #' #' } #' #' @param data [data.frame] (**required**): input data consisting of two columns, the De and the #' SE(De). Values are expected in Gy #' #' @param D0 [integer] (*with default*): D0 value (in Gy), defining the #' characterisation behaviour of the quartz. #' #' @param expected_dose [numeric] (**required**): expected equivalent dose #' #' @param MinIndivDose [numeric] (*with default*): value specifying the minimum dose taken into #' account for the plateau. `NULL` applies all values. #' #' @param MaxIndivDose [numeric] (*with default*): value specifying the maximum dose taken into #' account for the plateau. `NULL` applies all values. #' #' @param kappa [numeric] (*optional*): positive dimensionless exposure parameter #' characterising the bleaching state of the grains. Low values (< 10) indicate #' poor bleaching #' #' @param sigma_distr [numeric] (*optional*): positive dose rate parameter, representing the #' dose variability to which the grains were exposed ##TODO perhaps it should be renamed #' #' @param n.simul [integer] (*with default*): number of simulations #' #' @param n.minSimExp [integer] (*with default*): number of MC runs for calculating the uncertainty #' contribution from the sampling #' #' @param sample_name [character] (*with default*): name of the sample #' #' @param method_control [list] (*with default*): additional deep control parameters, parameters #' need to be provided as named list, see details #' #' @param verbose [logical] (*with default*): enable/disable output to the #' terminal. #' #' @param plot [logical] (*with default*): enable/disable the plot output. #' #' @param ... further parameters that can be passed to better control the plot output. Support arguments #' are `xlab`, `xlim`. #' #' @author Pierre Guibert, IRAMAT-CRP2A, UMR 5060, Université Bordeaux Montaigne (France), #' Sebastian Kreutzer, Geography & Earth Sciences, Aberystwyth University (United Kingdom) #' #' @section Function version: 0.1.0 #' #' @references Guibert, P., Christophe, C., Urbanova, P., Guérin, G., Blain, S., 2017. #' Modelling incomplete and heterogeneous bleaching of mobile grains partially exposed to the #' light - Towards a new tool for single grain OSL dating of poorly bleached mortars. #' Radiation Measurements 107, 48–57. \doi{10.1016/j.radmeas.2017.10.003} #' #' @seealso [RLum.Results-class], [calc_MinDose], [calc_FuchsLang2001], [calc_IEU], #' [calc_FiniteMixture] #' #' @keywords datagen #' #' @examples #' #' data(ExampleData.MortarData, envir = environment()) #' calc_EED_Model( #' data = MortarData, #' kappa = 14, #' sigma_distr = 0.37, #' expected_dose = 11.7) #' #' ## automated estimation of #' ## sigma_distribution and #' ## kappa #' \dontrun{ #' calc_EED_Model( #' data = MortarData, #' kappa = NULL, #' sigma_distr = NULL, #' expected_dose = 11.7) #' } #' #' @md #' @export calc_EED_Model <- function( data, D0 = 120L, expected_dose, MinIndivDose = NULL, MaxIndivDose = NULL, kappa = NULL, sigma_distr = NULL, n.simul = 5000L, n.minSimExp = 50L, sample_name = "", method_control = list(), verbose = TRUE, plot = TRUE, ... ) { .set_function_name("calc_EED_Model") on.exit(.unset_function_name(), add = TRUE) ##TODO ## add docu examples ## add docu details ## ## TODO Questions to Pierre ## - what the user is doing of the real dose/age is not known, can it be assessed? ## - the underlying assumption is obviously an exponential distribution, what ## - so far the parameter uncertainty estimation does not work nicely.x ## happens to data where this is not observed? I cannot work? ## Integrity checks ------------------------------------------------------- .validate_class(data, "data.frame") .validate_class(expected_dose, "numeric") if (!is.null(MinIndivDose)) .validate_class(MinIndivDose, "numeric") if (!is.null(MaxIndivDose)) .validate_class(MaxIndivDose, "numeric") ##store and restore par settings par_default <- par(no.readonly = TRUE) on.exit(par(mfrow = par_default$mfrow), add = TRUE) # Helper functions ---------------------------------------------------------------------------- ##the helper functions base on ode by Pierre, each helper was only a little bit ## optimised and then tested separately # Calcul de la variance du plateau sur la base des doses arch?o # corrig?es de la dose r?siduelle uniquement (modif 31.5.2018) # nocov start .calc_Plateau_Variance <- function(M_Data, MinDose_Index, MaxDose_Index){ var_ratio <- stats::var(M_Data[MinDose_Index:MaxDose_Index, 3]) # doses nettes corrigées résiduel uniquement mean_ratio <- mean(M_Data[MinDose_Index:MaxDose_Index, 3]) return(var_ratio / (mean_ratio ^ 2)) } # nocov end # Calcul de la variance du plateau modifi? le 31.5.2018 # sur la base des rapport observ?/simul? des doses totales brutes .calc_Plateau_Variance_uncorr <- function (M_Data, MinDose_Index, MaxDose_Index){ var_ratio <- stats::var(M_Data[MinDose_Index:MaxDose_Index, 4]) # ratio observé/simulé brut mean_ratio <- mean(M_Data[MinDose_Index:MaxDose_Index, 4]) return (var_ratio / (mean_ratio ^ 2)) } # Calcul de la variance du plateau ajout le 20.8.2018 # sur la base des doses archeologiques # ##TODO not yet included # nocov start .calc_Plateau_Variance_AD <- function (M_Data, MinDose_Index, MaxDose_Index) { var_ratio <- stats::var(M_Data[MinDose_Index:MaxDose_Index, 6]) mean_ratio <- mean(M_Data[MinDose_Index:MaxDose_Index, 6]) return (var_ratio / (mean_ratio ^ 2)) } # nocov end .EED_Simul_Matrix <- function (M_Simul, expected_dose, sigma_distr,D0, kappa, Iinit, Nsimul){ ## génére une liste de Nsimul valeurs distribu?es selon une loi log normale de moyenne expected_dose ## M_Simul[,1] <- expected_dose * exp(sigma_distr * rnorm(Nsimul)) * exp(-0.5 * (sigma_distr ^ 2)) ## génére une liste de Nsimul valeurs de dose r?siduelle selon une distribution expoentielle de l'exposition ## M_Simul[, 2] <- (-D0 * log(1 - Iinit * exp(-stats::rexp(Nsimul, rate = 1 / kappa)))) ## génére la liste des doses individuelles ## M_Simul[,3] <- M_Simul[,1] + M_Simul[,2] ## génére la liste class?e des doses individuelles ## M_Simul[,4] <- sort(M_Simul[,3], decreasing = FALSE) ## génére une liste d'index and sort it index <- sort.list(rank(M_Simul[,3], ties.method = "first")) ## la liste d'index est utilis?e pour remettre les colonnes 1 et 2 dans l'ordre du classement des doses totales ## M_Simul[,5:6] <- M_Simul[index,1:2] ##calculate cumulative mean values M_Simul[,7:9] <- matrixStats::colCumsums(M_Simul[,4:6]) / seq_len(Nsimul) ##return value return(M_Simul) } # Calcul de la matrice de M_Data : donnees experimentales traitees .EED_Data_Matrix <- function(M_Data, Dosedata, M_Simul, expected_dose, Ndata, Nsimul){ ##set index index_SimRes <- as.integer((1:Ndata) * Nsimul / Ndata) # recopie Dosedata dans les colonnes 9 et 10 M_Data[, 9] <- Dosedata[, 1] M_Data[, 10] <- Dosedata[, 2] #colonne 1 : moyenne cumulative des ED individuels M_Data[, 1] <- cumsum(Dosedata[, 1]) / (1:Ndata) # colonne 2 : incertitude statistique sur les valeurs de la moyenne cumulative M_Data[, 2] <- (1 / (1:Ndata)) * sqrt(cumsum(Dosedata[, 2] ^ 2)) # colonne 3 : dose nette : dose moyenne corrigee de la moyenne des doses residuelles M_Data[, 3] <- M_Data[, 1] - M_Simul[index_SimRes, 9] # colonne 4 : ratio observed / simulated of uncorrected doses M_Data[, 4] <- M_Data[, 1] / M_Simul[index_SimRes, 7] # colonne 5 :erreur stat sur les rapports M_Data[, 5] <- M_Data[, 2] / M_Simul[index_SimRes, 7] # colonne 6 : dose nette corrigee des r?siduels ET de l'int?gration partielle de la # distribution log-normale des burial doses M_Data[, 6] <- M_Data[, 3] * (expected_dose / M_Simul[index_SimRes, 8]) # colonne 7 : erreur sur dose nette corrigee (premier calcul : # incertitude uniquement bas?e sur erreur exp?riementale) M_Data[, 7] <- abs((M_Data[, 6] / M_Data[, 3]) * M_Data[, 2]) # colonne 8 : ratio dose residuelle / dose nette corrigee M_Data[M_Data[, 6] != 0, 8] <- M_Simul[index_SimRes, 9] / M_Data[, 6] M_Data[M_Data[, 6] == 0, 8] <- 0 return(M_Data) } # Calcul des incertitudes statistiques liees au tirage des Ndata grains # # calcul incertitude statistique li?e au nombre limit? de grains # # On se base sur un tirage de Ndata donn?es ? partir de la matrice de simlation # on choisit les Ndata premi?res donn?es, on calcule les moyennes cumulatives de dose totale # on prend les Ndata suivantes etc de telle sorte ? ce qu'on base le calcul d'?cart-type sur au moins 50 tirages # Pour cela on va calculer le nb d'exp?riences simul?es possibles ? partir du rapport Nsimul/Ndata # on teste ce rapport et s'il est inf?rieur ? une valeur limite inf?rieure, on demande de relancer le calcul # avec davantage de simulations. .EED_Calc_Overall_StatUncertainty <- function (M_Data, M_Simul, Ndata, Nsimul, MinNbSimExp){ M_SimExpResults <- src_EED_Calc_Overall_StatUncertainty(M_Simul, Ndata, Nsimul, MinNbSimExp) # colonne 7 : calcule l'erreur totale sur la dose nette corrig?e M_Data[i,7] M_Data[,7] <- abs((M_Data[,6]/M_Data[,3])*sqrt((M_SimExpResults[,2]^2)+(M_Data[,2]^2))) return (M_Data) } # fonction d'initialisation de l'etat initial # si absence de valeur, par defaut prend comme etat initial la valeur 1 (saturation) # MaJ le 9 novembre 2018 .Initial_State_of_OSL <- function(Dosedata, D0, method) { SaturationState <- (1 - exp(-max(Dosedata[, 1]) / D0)) if (method == "max") { return (SaturationState) } # nocov start if (!is.numeric(method) || method > 1 || method < 0) { return(1) } return(max(method, SaturationState)) # nocov end } # fonction permettant de retourner l'indice de la valeur minimale de la dose individuelle # prise en compte pour le calcul du plateau # here combined to one single function returning the minium or the maxixumx .Get_Plateau_MinDoseIndex <- function(M_Data, Ndata, MinIndivDose) { if (is.null(MinIndivDose)) return(1) # nocov start current_index <- 1 while ((MinIndivDose > M_Data[current_index, 9]) & (current_index < Ndata)) { current_index <- current_index + 1 } return(current_index) # nocov end } # fonction permettant de retourner l'indice de la valeur maximale de la dose individuelle # prise en compte pour le calcul du plateau .Get_Plateau_MaxDoseIndex <- function(M_Data, Ndata, MaxIndivDose) { if (is.null(MaxIndivDose)) return(Ndata) # nocov start current_index <- 1 while ((MaxIndivDose > M_Data[current_index, 9]) & (current_index < Ndata)) { current_index <- current_index + 1 } return(current_index) # nocov end } ## allow automated kapp and sigma_distr parameter estimation .guess_EED_parameters <- function(set_kappa, set_sigma_distr, set_expected_dose, D0, Iinit, Nsimul, Dosedata, M_Data, M_Simul, Ndata, set_MinDose_Index, set_MaxDose_Index, method_control_intern = method_control){ ##settings to control the what needs to be controlled method_control <- modifyList( list( lower = c(0.1, 0, 1), upper = c(100, 1, 100), iter_max = 1000, trace = FALSE, trace_plot = FALSE ), method_control_intern) ##define function for the parameter estimation which will be part of ##the interpolation fn <- function( set_kappa, set_sigma_distr, M_Simul, set_expected_dose, D0, Iinit, Nsimul, Dosedata, M_Data, Ndata){ M_Simul <- .EED_Simul_Matrix (M_Simul, set_expected_dose, set_sigma_distr, D0, set_kappa, Iinit, Nsimul) M_Data <- .EED_Data_Matrix(M_Data, Dosedata, M_Simul, set_expected_dose, Ndata, Nsimul) M_Data <- .EED_Calc_Overall_StatUncertainty( M_Data = M_Data, M_Simul = M_Simul, Ndata = Ndata, Nsimul = Nsimul, MinNbSimExp = MinNbSimExp ) ##return variance and the mean DE return( c( VAR = .calc_Plateau_Variance_uncorr(M_Data, MinDose_Index = set_MinDose_Index, MaxDose_Index = set_MaxDose_Index), RESIDUAL = sum((M_Data[,6] - rep(set_expected_dose, nrow(M_Data)))^2) )) } par(mfrow = c(3,3)) test_var <- Inf n_iter <- 0 while(test_var > 1e-04 && n_iter < method_control$iter_max){ ##define parameter matrix m <- matrix(NA, nrow = 16, ncol = 5) ##fill matrix if parameter is not NULL #kappa m[,1] <- rep( exp(seq(log(method_control$lower[1]), log(method_control$upper[1]), length.out = 4)), 4) ##sigma_distr m[,2] <- rep(seq(method_control$lower[2],method_control$upper[2], length.out = 4), each = 4) ##expected dose m[,3] <- rep(expected_dose[1], 16) ##calculate the variance for(i in 1:nrow(m)){ m[i, 4:5] <- fn( set_kappa = m[i, 1], set_sigma_distr = m[i, 2], M_Simul, set_expected_dose = m[i,3], D0, Iinit, Nsimul, Dosedata, M_Data, Ndata ) } ##surface interpolation s <- try(interp::interp( x = m[, 1], y = m[, 2], z = m[, 4], nx = 200, ny = 200, duplicate = "strip" #does not seem to work ), silent = FALSE) if (inherits(s, "try-error")) { .throw_error("Surface interpolation failed, you may want to try it again") } ##graphical output if(plot & method_control$trace_plot){ graphics::image( s, col = grDevices::heat.colors(30, rev = TRUE), xlab = "kappa", ylab = "sigma_distr" ) graphics::contour(s, add= TRUE, nlevels = 10) abline(h = s$y[which(s$z == min(s$z, na.rm = TRUE), arr.ind = TRUE)[,2]], lty = 2) abline(v = s$x[which(s$z == min(s$z, na.rm = TRUE), arr.ind = TRUE)[,1]], lty = 2) } ##our decision is the 5 % quantile q10 <- which(s$z<= quantile(s$z, probs = 0.05, na.rm = TRUE), arr.ind = TRUE) ##calculate optim_kappa <- c(median(s$x[unique(q10[,1])], na.rm = TRUE), sd(s$x[unique(q10[,1])])) optim_sigm_distr <- c(median(s$y[unique(q10[,1])]), sd(s$y[unique(q10[,1])])) ##write output if(verbose && method_control$trace){ cat("\n\n variance threshold: ", min(s$z, na.rm = TRUE)) cat("\n >> kappa: ", optim_kappa[1], "\u00b1", optim_kappa[2]) cat("\n >> sigma_distr: ", optim_sigm_distr[1] , "\u00b1", optim_sigm_distr[2]) } ##reset parameters method_control$lower[1:2] <- c(min(s$x[unique(q10[,1])]), min(s$y[unique(q10[,2])])) method_control$upper[1:2] <- c(max(s$x[unique(q10[,1])]), max(s$y[unique(q10[,2])])) if(verbose && method_control$trace){ cat("\n >> lower: ", paste(method_control$lower[1:2], collapse = ", ")) cat("\n >> upper: ", paste(method_control$upper[1:2], collapse = ", ")) } ##update threshold test_var <- min(s$z, na.rm = TRUE) n_iter <- n_iter + 1 ##implement differential break if the search area is already smaller than the area if(diff(c(method_control$lower[1], method_control$upper[1])) < 0.1) break() } return(list( kappa = optim_kappa , sigma_distr = optim_sigm_distr, min_var = test_var, expected_dose = m[1,3] )) } # Input data ---------------------------------------------------------------------------------- ##some parameters are rewritten the leave the code by Pierre untouched Dosedata <- data[,1:2] Ndata <- nrow(Dosedata) # Nsimul est le nb de tirages de la variable al?atoire qui va g?n?rer Nsimul valeurs de dose résiduelle # et Nsimul valeurs de dose arch?ologique (burial dose), donc Nsimul valeurs de dose equivalente # individuelle. Pour une approche finale et précise de la dose moyenne, on peut monter ce paramétre ? # des valeurs hautes : 100000 par exemple. # our une premiére approche rapide d'un échantillon inconnu, il faut limiter les temps de calculs # pour explorer l'espace kappa, sigma dans lequel on va trouver les param?tres optimaux. # On peut proposer alors une valeur minimale par défaut de 5000 simulations # Le mieux est de laisser votre libert? de choix et d'analyse ... Nsimul <- n.simul # MinNbSimExp définit le nombre de tirages minimal pour calculer l'incertitude d'echantillonnage, # 2e membre de l'incertitude statistique globale. J'ai pense que 50 valeurs pour calculer un écart-type ? # tait le minimum. ce paramétre ajuste le nombre de simulations en l'augmentant ? une valeur # superieure au produit du nb de donnees et du nombre de tirages minimal au cas où Nsimul est très # faible. Si l'on souhaite vraiment faire une étude rapide on peut diminuer MinNbSimExp. # Pensez cependant ? conserver en commentaires cette instruction por remettre ? jour # le code une fois l'exploration faite : # MinNbSimExp = 50 MinNbSimExp <- n.minSimExp if(MinNbSimExp * Ndata > Nsimul) Nsimul <- (MinNbSimExp + 1) * Ndata ## valeur en Gy de la dose de saturation selon une loi de croissance exponentielle saturante ## D0 <- D0 #valeur en Gy ## initialise la valeur de l'intensit? initiale (1 = saturation) ## #si le param?tre method est "max", l'initialisation se fait selon Iinit = 1-exp(-max(Dosedata[,1])/D0) # sinon si l'on donne une valeur comprise entre 0 et 1, la valeur introduite est prise en compte, # sinon on affecte 1 dans tous les autres cas # Iinit = 1 #par exemple # ATTENTION / aucun test de coh?rence n'est fait pour savoir # si la valeur num?rique introduite est compatible ou non avec les donn?es Iinit <- .Initial_State_of_OSL(Dosedata, D0, "max") # Iinit = .Initial_State_of_OSL(Dosedata, D0, method = 1) ## on définit une matrice dans laquelle on va stocker et utiliser les données de la simulation ## M_Simul <- matrix(nrow = Nsimul, ncol = 9) # génère une matrice à partir des donnés expérimentales # M_Data <- matrix(nrow = Ndata, ncol = 10) colnames(M_Data) <- c("CUM_MEAN_DE", "CUM_MEAN_DE_X", "NET_CUM_MEAN_DE_NET", "NET_CUM_MEAN_DE_X", "RATIO_DE_SIM", "RATIO_DE_SIM_X", "INT_NET_DOSE", "INT_NET_DOSE_X", "DE", "DE_X") # set limits ... ##TODO M_data is still NA here ... double check, so far only NULL works # The problem is that this call comes to early and it should be somehow integrated in the guess_EED_parameter # function to get evaluated everytime on the other hand we just want to limit the search range, maybe this # can be done better. # The code in .Get_Plateau_MinDoseIndex is rather inefficient and loops over the vector, however, # this is not out main problem. In fact we have to first understand what this function is really # doing and whether we can achive this better and easier. So far it gets called a lot of times Min_plateau <- .Get_Plateau_MinDoseIndex(M_Data, Ndata, MinIndivDose = NULL) Max_plateau <- .Get_Plateau_MaxDoseIndex(M_Data, Ndata, MaxIndivDose = NULL) if (Max_plateau <= Min_plateau) { Min_plateau <- 1 } #priorité max dose # Guess parameters if needed ------------------------------------------------------------------ if(verbose) cat("\n[calc_EED_Model()]\n") ## introduire le facteur d'eclairement kappa : kappa = 2 : très faible éclairement, kappa >100 bon ## blanchiment ## ## TODO - this is not really what Pierre had in mind, he wanted to have the variance, not an automated ## esstimation if(is.null(kappa) || is.null(sigma_distr)){ if(verbose) cat("\n>> Running automated parameter estimation... \n") temp_guess <- .guess_EED_parameters( set_kappa = kappa, set_sigma_distr = sigma_distr, set_expected_dose = expected_dose, D0 = D0, Iinit = Iinit, Nsimul = Nsimul, Dosedata = Dosedata, M_Data = M_Data, M_Simul = M_Simul, Ndata = Ndata, set_MinDose_Index = Min_plateau, set_MaxDose_Index = Max_plateau ) kappa <- temp_guess[[1]][1] sigma_distr <- temp_guess[[2]][1] min_var <- temp_guess[[3]] expected_dose <- temp_guess[[4]] if(verbose){ cat(">> min. variance:", min_var) cat("\n>> kappa: ", kappa, " | sigma: ",sigma_distr) } } # Calculation --------------------------------------------------------------------------------- M_Simul <- .EED_Simul_Matrix (M_Simul, expected_dose, sigma_distr,D0, kappa, Iinit, Nsimul) M_Data <- .EED_Data_Matrix(M_Data, Dosedata, M_Simul, expected_dose, Ndata, Nsimul) M_Data <- .EED_Calc_Overall_StatUncertainty(M_Data = M_Data, M_Simul = M_Simul, Ndata = Ndata, Nsimul = Nsimul, MinNbSimExp) max_dose_simul <- max(M_Simul[,3]) index_min_uncert <- sort.list(index_min_uncert <- rank(M_Data[, 7], ties.method = "first")) # Terminal output ----------------------------------------------------------------------------- if(verbose){ cat("\n------------------------------------ \n") cat("\n Maximal Individual Equivalent Dose integrated: ", round(M_Data[index_min_uncert[1],9],2), "Gy") cat("\n Averaged Corrected Equivalent Dose: ", round(M_Data[index_min_uncert[1],6],2), "\u00b1", round(M_Data[index_min_uncert[1],7],2), "Gy") } #### THE ONE SHOT : calcule les valeurs de dose moyenne ##TODO discuss with Pierre # "recherche du minimum d'incertitude statistique" # #min(M_Data[,7]) # index_min_uncert <- rank(M_Data[,7], ties.method = "first") # index_min_uncert<-sort.list(index_min_uncert) # "Minimal error for maximal equivalent Dose (Gy) equal to: " # M_Data[index_min_uncert[1],9] # "cumulative mean corrected equivalent dose (Gy)" # M_Data[index_min_uncert[1],6] # # # #liste_type = c(9, 10, 6, 7) # #M_Data[,liste_type[1:4]] # Plotting ------------------------------------------------------------------------------------ if(plot) { ##plot settings plot_settings <- modifyList( x = list( xlab = "Individual dose [Gy]", xlim = c(0,max(M_Simul[,2:3]))), val = list(...)) ##set box width box_width <- 1.5 ##set output par par(mfrow = c(1,2)) ## Histograms with the data ##(1) first histogram showing the natural distribution hist( x = rep(Dosedata[,1], length.out = length(M_Simul[,3])), freq = FALSE, breaks = seq(0, box_width * (1 + as.integer(max(M_Simul[,3])/box_width)), box_width), xlim = plot_settings$xlim, border = rgb(0.7,0.1,0,.5), col = rgb(240,154,149,alpha = 255, maxColorValue = 255), main = paste0("Distribution De: ", sample_name), xlab = plot_settings$xlab ) ##(2) overplotting the first histogram with simulated data hist( x = M_Simul[,3], breaks = seq(0, box_width*(1 + as.integer(max(M_Simul[,3])/box_width)), box_width), freq = FALSE, border = rgb(0,0.1,0.8,.5), col = rgb(122,206,209,alpha = 140, maxColorValue = 255), add = TRUE, xlab = plot_settings$xlab ) ##add legend legend( "topright", bty = "n", legend = c("Data", "Simulation"), col = c(rgb(240,154,149,alpha = 255, maxColorValue = 255),rgb(122,206,209,alpha = 140, maxColorValue = 255)), pch = 15) ##add mtext mtext(side = 3, text = paste0("n_sim = ", length(M_Simul[,3]))) ## Histograms with the error for the data ##(3) first histogram showing the natural distribution hist( x = rep(Dosedata[,2], length.out = length(M_Simul[,2])), freq = FALSE, breaks = seq(0, box_width*(1 + as.integer(max(M_Simul[,2])/box_width)), box_width), xlim = plot_settings$xlim, border = rgb(0.7,0.1,0,.5), col = rgb(240,154,149,alpha = 255, maxColorValue = 255), main = paste0("Distribution SE(De):", sample_name), xlab = plot_settings$xlab ) ##(4) overplotting the first histogram with simulated data hist( x = M_Simul[,2], breaks = seq(0, box_width*(1 + as.integer(max(M_Simul[,2])/box_width)), box_width), freq = FALSE, border = rgb(0,0.1,0.8,.5), col = rgb(122,206,209,alpha = 140, maxColorValue = 255), add = TRUE, xlab = plot_settings$xlab ) ##add legend legend( "topright", bty = "n", legend = c("Data", "Simulation"), col = c(rgb(240,154,149,alpha = 255, maxColorValue = 255),rgb(122,206,209,alpha = 140, maxColorValue = 255)), pch = 15) ##add mtext mtext(side = 3, text = paste0("n_sim = ", length(M_Simul[,2]))) par(mfrow = c(1,3)) liste_type <- c(4,8) ##1st plateau plot graphics::matplot( Dosedata[,1], M_Data[,liste_type], type = "p", pch = 1, log = "x", main = "Observed/simulated \n Residual Dose Fraction Ratio", xlab = plot_settings$xlab, ylab = "Ratios", xlim = c(min(Dosedata[,1]), plot_settings$xlim[2]), ylim = c(0, 1.5)) abline(h = 1) for (i in 1:Ndata) { lines( x = c(Dosedata[i, 1], Dosedata[i, 1]), y = c((M_Data[i, 4] - M_Data[i, 5]), (M_Data[i, 4] + M_Data[i, 5]))) } ##2nd plateau plot graphics::matplot( x = Dosedata[, 1], y = M_Data[, c(1, 6, 3)], type = "p", pch = 1, log = "x", main = paste("sample ", sample_name, sep = ""), xlab = plot_settings$xlab, ylab = "Cumulative mean doses [Gy]", xlim = c(min(Dosedata[, 1]), plot_settings$xlim[2]), ylim = c(0, 2 * expected_dose) ) # tracer les valeurs de la liste classee des doses archeologiques de la matrice de simulation # contrainte : ne tracer qu'une partie des points sinon on va passer un temps fou # par exemple on veut tracer un nb de points egal a : NbSimPtsDisplayed <- min(Nsimul, 1000) XY_psimul <- matrix(nrow = NbSimPtsDisplayed, ncol = 2) delta_index <- as.integer(Nsimul / NbSimPtsDisplayed) plot_index <- 1 cur_ind <- 1 while(plot_index < Nsimul ){ XY_psimul[cur_ind, 1] <- M_Simul[plot_index, 4] XY_psimul[cur_ind, 2] <- M_Simul[plot_index, 8] plot_index <- plot_index + delta_index cur_ind <- cur_ind + 1 } abline(h = expected_dose) points(XY_psimul[, 1], XY_psimul[, 2], pch = 1, col = rgb(0,0,0,0.2)) ##add error bars ##error bars for corrected De segments( x0 = Dosedata[, 1], x1 = Dosedata[, 1], y0 = M_Data[, 6] - M_Data[, 7], y1 = M_Data[, 6] + M_Data[, 7], col = "red" ) ##error bars cum mean De segments( x0 = Dosedata[, 1], x1 = Dosedata[, 1], y0 = M_Data[, 3] - M_Data[, 2], y1 = M_Data[, 3] + M_Data[, 2], col = "green" ) ##add legend legend( "topright", legend = c( "Cum Mean (uncorr.) De", "Cum Mean (corr.) De_sim", "Corr. De (resid., partial integ.)", "Cum mean (corr.) De" ), bty = "n", pch = 20, col = c("black", "grey", "red", "green")) ##add standard deviation plot plot( Dosedata[, 1], M_Data[, 7], main = "Std Dev on average corrected doses \n ", xlab = plot_settings$xlab, ylab = "Standard deviation [Gy]", xlim = c(min(Dosedata[,1]), plot_settings$xlim[2]), type = "p", pch = 1, log = "x" ) }#end if plot # Output -------------------------------------------------------------------------------------- set_RLum( class = "RLum.Results", data = list( M_Data = M_Data ##TODO: we should name the columns ), info = list( call = sys.call() )) } Luminescence/R/plot_RLum.Data.Image.R0000644000176200001440000002010114762554470017026 0ustar liggesusers#' @title Plot function for an `RLum.Data.Image` S4 class object #' #' @description The function provides very basic plot functionality for image data of an #' [RLum.Data.Image-class] object. For more sophisticated plotting it is recommended #' to use other very powerful packages for image processing. #' #' #' **Details on the plot functions** #' #' Supported plot types: #' #' **`plot.type = "plot.raster"`** #' #' Uses the standard plot function of R [graphics::image]. If wanted, the image #' is enhanced, using the argument `stretch`. Possible values are `hist`, `lin`, and #' `NULL`. The latter does nothing. The argument `useRaster = TRUE` is used by default, but #' can be set to `FALSE`. #' #' **`plot.type = "contour"`** #' #' This uses the function [graphics::contour] #' #' @param object [RLum.Data.Image-class] (**required**): S4 #' object of class `RLum.Data.Image` #' #' @param par.local [logical] (*with default*): use local graphical #' parameters for plotting, e.g. the plot is shown in one column and one row. #' If `par.local = FALSE` global parameters are inherited. #' #' @param frames [numeric] (*optional*): sets the frames to be set, by default all #' frames are plotted. Can be sequence of numbers, as long as the frame number is valid. #' #' @param plot.type [character] (*with default*): plot types. #' Supported types are `plot.raster`, `contour` #' #' @param ... further arguments and graphical parameters that will be passed #' to the specific plot functions. Standard supported parameters are `xlim`, `ylim`, `zlim`, #' `xlab`, `ylab`, `main`, `legend` (`TRUE` or `FALSE`), `col`, `cex`, `axes` (`TRUE` or `FALSE`), #' `zlim_image` (adjust the z-scale over different images), `stretch` #' #' @return Returns a plot #' #' @note The axes limitations (`xlim`, `zlim`, `zlim`) work directly on the object, #' so that regardless of the chosen limits the image parameters can be adjusted for #' best visibility. However, in particular for z-scale limitations this is not always #' wanted, please use `zlim_image` to maintain a particular value range over a #' series of images. #' #' @section Function version: 0.2.1 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Data.Image-class], [plot], [plot_RLum], [graphics::image], [graphics::contour] #' #' @keywords aplot #' #' @examples #' #' ##load data #' data(ExampleData.RLum.Data.Image, envir = environment()) #' #' ##plot data #' plot_RLum.Data.Image(ExampleData.RLum.Data.Image) #' #' @md #' @export plot_RLum.Data.Image <- function( object, frames = NULL, par.local = TRUE, plot.type = "plot.raster", ... ) { .set_function_name("plot_RLum.Data.Image") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(object, "RLum.Data.Image") ## extract object object <- object@data if (length(dim(object)) != 3) { ## the object is empty or malformed return(NULL) } # Define additional functions --------------------------------------------- .stretch <- function(x, type = "lin"){ if(is.null(type[1])) return(x[,,1]) if(type[1] == "lin") { x <- x[,,1] r <- range(x) q <- stats::quantile(x, c(0.05, 0.95), na.rm = TRUE) ## consider special case for q == 0 if(sum(q) > 0) { x <- (r[2] * (x - q[1])) / (q[2] - q[1]) x[x < 0] <- r[1] x[x > r[2]] <- r[2] } } if(type[1] == "hist") x <- matrix(stats::ecdf(x)(x) * 255, ncol = ncol(x)) return(x) } plot.type <- .validate_args(plot.type, c("plot.raster", "contour")) # Plot settings ----------------------------------------------------------- plot_settings <- modifyList(x = list( main = "RLum.Data.Image", axes = TRUE, xlab = "Length [px]", ylab = "Height [px]", xlim = c(1,dim(object)[1]), ylim = c(1,dim(object)[2]), zlim = range(object), zlim_image = NULL, legend = TRUE, useRaster = TRUE, stretch = "hist", col = c(grDevices::hcl.colors(50, palette = "Inferno")), cex = 1 ), val = list(...), keep.null = TRUE) ## set frames if(!is.null(frames)) { frames[1] <- max(1,min(frames)) frames[length(frames)] <- min(dim(object)[3],max(frames)) object <- object[,,frames,drop = FALSE] } ## enforce xlim, ylim and zlim directly here ## xlim, ylim object[] <- object[ max(plot_settings$xlim[1], 1):min(plot_settings$xlim[2], dim(object)[1]), max(plot_settings$ylim[1], 1):min(plot_settings$ylim[2], dim(object)[2]),, drop = FALSE] ## zlim object[object <= plot_settings$zlim[1]] <- max(0,plot_settings$zlim[1]) object[object >= plot_settings$zlim[2]] <- min(max(object),plot_settings$zlim[2]) ##par setting for possible combination with plot method for RLum.Analysis objects if(par.local) par(mfrow=c(1,1), cex = plot_settings$cex) if (plot.type == "plot.raster") { # plot.raster ------------------------------------------------------------- for(i in 1:dim(object)[3]) { par.default <- par(mar = c(4.5,4.5,4,3)) on.exit(par(par.default), add = TRUE) x <- object[, , i, drop = FALSE] image <-.stretch(x, type = plot_settings$stretch) graphics::image( x = image, useRaster = plot_settings$useRaster, axes = FALSE, zlim = if(is.null(plot_settings$zlim_image)) range(image) else plot_settings$zlim_image, xlab = plot_settings$xlab, ylab = plot_settings$ylab, main = paste0(plot_settings$main, " #",i), col = plot_settings$col) graphics::box() ## axes if(plot_settings$axes) { xlab <- pretty(1:dim(x)[1]) xlab[c(1,length(xlab))] <- c(0,dim(x)[1]) xat <- seq(0,1,length.out = length(xlab)) graphics::axis(side = 1, at = xat, labels = xlab) ylab <- pretty(1:dim(x)[2]) ylab[c(1,length(ylab))] <- c(0,dim(x)[2]) yat <- seq(0,1,length.out = length(ylab)) graphics::axis(side = 2, at = yat, labels = ylab) } ## add legend if(plot_settings$legend) { par.default <- c(par.default, par(xpd = TRUE)) on.exit(par(par.default), add = TRUE) col_grad <- plot_settings$col[seq(1, length(plot_settings$col), length.out = 14)] slices <- seq(0,1,length.out = 15) for(s in 1:(length(slices) - 1)){ graphics::rect( xleft = par()$usr[4] * 1.01, xright = par()$usr[4] * 1.03, ybottom = slices[s], ytop = slices[s + 1], col = col_grad[s], border = TRUE) } text( x = par()$usr[4] * 1.04, y = par()$usr[2], labels = if(is.null(plot_settings$zlim_image)) { format(max(x), digits = 1, scientific = TRUE) } else { format(plot_settings$zlim_image[2], digits = 1, scientific = TRUE) }, cex = 0.7, srt = 270, pos = 3) text( x = par()$usr[4] * 1.04, y = par()$usr[3], labels = if(is.null(plot_settings$zlim_image)) { format(min(x), digits = 1, scientific = TRUE) } else { format(plot_settings$zlim_image[1], digits = 1, scientific = TRUE) }, cex = 0.7, pos = 3, srt = 270) } } }else if(plot.type == "contour"){ for(i in 1:dim(object)[3]) { x <- object[, , i, drop = FALSE] graphics::contour( x = x[,,1], axes = FALSE, zlim = if(is.null(plot_settings$zlim_image)) range(x) else plot_settings$zlim_image, xlab = plot_settings$xlab, ylab = plot_settings$ylab, main = paste0(plot_settings$main, " #",i), col = plot_settings$col) graphics::box() } ## axes if(plot_settings$axes) { xlab <- pretty(1:dim(x)[1]) xlab[c(1,length(xlab))] <- c(0,dim(x)[1]) xat <- seq(0,1,length.out = length(xlab)) graphics::axis(side = 1, at = xat, labels = xlab) ylab <- pretty(1:dim(x)[2]) ylab[c(1,length(ylab))] <- c(0,dim(x)[1]) yat <- seq(0,1,length.out = length(ylab)) graphics::axis(side = 2, at = yat, labels = ylab) } } } Luminescence/R/plot_Histogram.R0000644000176200001440000006644614762554470016241 0ustar liggesusers#' Plot a histogram with separate error plot #' #' Function plots a predefined histogram with an accompanying error plot as #' suggested by Rex Galbraith at the UK LED in Oxford 2010. #' #' If the normal curve is added, the y-axis in the histogram will show the #' probability density. #' #' #' A statistic summary, i.e. a collection of statistic measures of #' centrality and dispersion (and further measures) can be added by specifying #' one or more of the following keywords: #' - `"n"` (number of samples), #' - `"mean"` (mean De value), #' - `"mean.weighted"` (error-weighted mean), #' - `"median"` (median of the De values), #' - `"sdrel"` (relative standard deviation in percent), #' - `"sdrel.weighted"` (error-weighted relative standard deviation in percent), #' - `"sdabs"` (absolute standard deviation), #' - `"sdabs.weighted"` (error-weighted absolute standard deviation), #' - `"serel"` (relative standard error), #' - `"serel.weighted"` (error-weighted relative standard error), #' - `"seabs"` (absolute standard error), #' - `"seabs.weighted"` (error-weighted absolute standard error), #' - `"kurtosis"` (kurtosis) and #' - `"skewness"` (skewness). #' #' @param data [data.frame] or [RLum.Results-class] object (**required**): #' for `data.frame`: two columns: De (`data[,1]`) and De error (`data[,2]`) #' #' @param na.rm [logical] (*with default*): #' excludes `NA` values from the data set prior to any further operations. #' #' @param mtext [character] (*optional*): #' further sample information ([mtext]). #' #' @param cex.global [numeric] (*with default*): #' global scaling factor. #' #' @param se [logical] (*optional*): #' plots standard error points over the histogram, default is `FALSE`. #' #' @param rug [logical] (*optional*): #' adds rugs to the histogram, default is `TRUE`. #' #' @param normal_curve [logical] (*with default*): #' adds a normal curve to the histogram. Mean and standard deviation are calculated from the #' input data. More see details section. #' #' @param summary [character] (*optional*): #' add statistic measures of centrality and dispersion to the plot. #' Can be one or more of several keywords. See details for available keywords. #' #' @param summary.pos [numeric] or [character] (*with default*): #' optional position coordinates or keyword (e.g. `"topright"`) #' for the statistical summary. Alternatively, the keyword `"sub"` may be #' specified to place the summary below the plot header. However, this latter #' option in only possible if `mtext` is not used. In case of coordinate #' specification, y-coordinate refers to the right y-axis. #' #' @param colour [numeric] or [character] (*with default*): #' optional vector of length 4 which specifies the colours of the following #' plot items in exactly this order: histogram bars, rug lines, normal #' distribution curve and standard error points #' (e.g., `c("grey", "black", "red", "grey")`). #' #' @param interactive [logical] (*with default*): #' create an interactive histogram plot (requires the 'plotly' package) #' #' @param ... further arguments and graphical parameters passed to [plot] or #' [hist]. If y-axis labels are provided, these must be specified as a vector #' of length 2 since the plot features two axes #' (e.g. `ylab = c("axis label 1", "axis label 2")`). Y-axes limits #' (`ylim`) must be provided as vector of length four, with the first two #' elements specifying the left axes limits and the latter two elements giving #' the right axis limits. #' #' @note The input data is not restricted to a special type. #' #' @section Function version: 0.4.5 #' #' @author #' Michael Dietze, GFZ Potsdam (Germany)\cr #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [hist], [plot] #' #' @examples #' #' ## load data #' data(ExampleData.DeValues, envir = environment()) #' ExampleData.DeValues <- convert_Second2Gray(ExampleData.DeValues$BT998, #' dose.rate = c(0.0438,0.0019)) #' #' ## plot histogram the easiest way #' plot_Histogram(ExampleData.DeValues) #' #' ## plot histogram with some more modifications #' plot_Histogram(ExampleData.DeValues, #' rug = TRUE, #' normal_curve = TRUE, #' cex.global = 0.9, #' pch = 2, #' colour = c("grey", "black", "blue", "green"), #' summary = c("n", "mean", "sdrel"), #' summary.pos = "topleft", #' main = "Histogram of De-values", #' mtext = "Example data set", #' ylab = c(expression(paste(D[e], " distribution")), #' "Standard error"), #' xlim = c(100, 250), #' ylim = c(0, 0.1, 5, 20)) #' #' #' @md #' @export plot_Histogram <- function( data, na.rm = TRUE, mtext, cex.global, se, rug, normal_curve, summary, summary.pos, colour, interactive = FALSE, ... ) { .set_function_name("plot_Histogram") on.exit(.unset_function_name(), add = TRUE) ## Integrity tests -------------------------------------------------------- .validate_class(data, c("data.frame", "RLum.Results")) if (inherits(data, "RLum.Results")) { data <- get_RLum(data)[,1:2] } ## check that we actually have data if (length(data) == 0 || nrow(data) == 0) { .throw_error("'data' contains no data") } ## handle error-free data sets if(length(data) < 2) { data <- cbind(data, rep(NA, length(data))) } ## Set general parameters --------------------------------------------------- ## Check/set default parameters if(missing(cex.global) == TRUE) { cex.global <- 1 } if(missing(mtext) == TRUE) { mtext <- "" } if(missing(se) == TRUE) { se = TRUE } if(missing(rug) == TRUE) { rug = TRUE } if(missing(colour) == TRUE) { colour = c("white", "black", "red", "black") } if(missing(summary) == TRUE) { summary <- "" } if(missing(summary.pos) == TRUE) { summary.pos <- "sub" } if(missing(normal_curve) == TRUE) { normal_curve = FALSE } ## read out additional arguments list extraArgs <- list(...) ## define fun if("fun" %in% names(extraArgs)) { fun <- extraArgs$fun # nocov } else { fun <- FALSE } ## optionally, count and exclude NA values and print result if(na.rm == TRUE) { n.NA <- sum(is.na(data[,1])) if(n.NA == 1) { print("1 NA value excluded.") } else if(n.NA > 1) { print(paste(n.NA, "NA values excluded.")) } data <- data[!is.na(data[,1]),] } if("main" %in% names(extraArgs)) { main.plot <- extraArgs$main } else { main.plot <- "Histogram" } if("xlab" %in% names(extraArgs)) { xlab.plot <- extraArgs$xlab } else { xlab.plot <- expression(paste(D[e], " [Gy]")) } if("ylab" %in% names(extraArgs)) { ylab.plot <- extraArgs$ylab } else { ylab.plot <- c("Frequency", "Standard error") } if("breaks" %in% names(extraArgs)) { breaks.plot <- extraArgs$breaks breaks_calc <- hist(x = data[,1], breaks = breaks.plot, plot = FALSE)$breaks } else { breaks.plot <- hist(x = data[,1], plot = FALSE)$breaks breaks_calc <- breaks.plot } if("xlim" %in% names(extraArgs)) { xlim.plot <- extraArgs$xlim } else { xlim.plot <- range(breaks_calc) } if("ylim" %in% names(extraArgs)) { ylim.plot <- extraArgs$ylim .validate_length(ylim.plot, 4, name = "'ylim'") } else { H.lim <- hist(data[,1], breaks = breaks.plot, plot = FALSE) if(normal_curve == TRUE) { left.ylim <- c(0, max(H.lim$density)) } else { left.ylim <- c(0, max(H.lim$counts)) } range.error <- try(expr = range(data[,2], na.rm = TRUE), silent = TRUE) range.error[1] <- ifelse(is.infinite(range.error[1]), 0, range.error[1]) range.error[2] <- ifelse(is.infinite(range.error[2]), 0, range.error[2]) ylim.plot <- c(left.ylim, range.error) } if("pch" %in% names(extraArgs)) { pch.plot <- extraArgs$pch } else { pch.plot <- 1 } ## Set plot area format par(mar = c(4.5, 4.5, 4.5, 4.5), cex = cex.global) ## Plot histogram ----------------------------------------------------------- HIST <- hist(data[,1], main = "", xlab = xlab.plot, ylab = ylab.plot[1], xlim = xlim.plot, ylim = ylim.plot[1:2], breaks = breaks.plot, freq = !normal_curve, col = colour[1] ) ## add title title(line = 2, main = main.plot) ## Optionally, add rug ------------------------------------------------------ if (rug) graphics::rug(data[, 1], col = colour[2]) ## Optionally, add a normal curve based on the data ------------------------- if(normal_curve == TRUE){ ## cheat the R check routine, tztztz how neat x <- NULL rm(x) ## add normal distribution curve curve(dnorm(x, mean = mean(na.exclude(data[,1])), sd = sd(na.exclude(data[,1]))), col = colour[3], add = TRUE, lwd = 1.2 * cex.global) } ## calculate and paste statistical summary data.stats <- list(data = data) ## calculate and paste statistical summary De.stats <- matrix(nrow = length(data), ncol = 18) colnames(De.stats) <- c("n", "mean", "mean.weighted", "median", "median.weighted", "kde.max", "sd.abs", "sd.rel", "se.abs", "se.rel", "q25", "q75", "skewness", "kurtosis", "sd.abs.weighted", "sd.rel.weighted", "se.abs.weighted", "se.rel.weighted") for(i in 1:length(data)) { statistics <- calc_Statistics(data) De.stats[i,1] <- statistics$weighted$n De.stats[i,2] <- statistics$unweighted$mean De.stats[i,3] <- statistics$weighted$mean De.stats[i,4] <- statistics$unweighted$median De.stats[i,5] <- statistics$unweighted$median De.stats[i,7] <- statistics$unweighted$sd.abs De.stats[i,8] <- statistics$unweighted$sd.rel De.stats[i,9] <- statistics$unweighted$se.abs De.stats[i,10] <- statistics$weighted$se.rel De.stats[i,11] <- quantile(data[,1], 0.25) De.stats[i,12] <- quantile(data[,1], 0.75) De.stats[i,13] <- statistics$unweighted$skewness De.stats[i,14] <- statistics$unweighted$kurtosis De.stats[i,15] <- statistics$weighted$sd.abs De.stats[i,16] <- statistics$weighted$sd.rel De.stats[i,17] <- statistics$weighted$se.abs De.stats[i,18] <- statistics$weighted$se.rel ##kdemax - here a little doubled as it appears below again De.denisty <- NA De.stats[i,6] <- NA if(nrow(data) >= 2){ De.density <-density(x = data[,1], kernel = "gaussian", from = xlim.plot[1], to = xlim.plot[2]) De.stats[i,6] <- De.density$x[which.max(De.density$y)] } } label.text = list(NA) if(summary.pos[1] != "sub") { n.rows <- length(summary) for(i in 1:length(data)) { stops <- paste(rep("\n", (i - 1) * n.rows), collapse = "") summary.text <- character(0) for(j in 1:length(summary)) { summary.text <- c(summary.text, paste( "", ifelse("n" %in% summary[j] == TRUE, paste("n = ", De.stats[i,1], "\n", sep = ""), ""), ifelse("mean" %in% summary[j] == TRUE, paste("mean = ", round(De.stats[i,2], 2), "\n", sep = ""), ""), ifelse("mean.weighted" %in% summary[j] == TRUE, paste("weighted mean = ", round(De.stats[i,3], 2), "\n", sep = ""), ""), ifelse("median" %in% summary[j] == TRUE, paste("median = ", round(De.stats[i,4], 2), "\n", sep = ""), ""), ifelse("median.weighted" %in% summary[j] == TRUE, paste("weighted median = ", round(De.stats[i,5], 2), "\n", sep = ""), ""), ifelse("kdemax" %in% summary[j] == TRUE, paste("kdemax = ", round(De.stats[i,6], 2), " \n ", sep = ""), ""), ifelse("sdabs" %in% summary[j] == TRUE, paste("sd = ", round(De.stats[i,7], 2), "\n", sep = ""), ""), ifelse("sdrel" %in% summary[j] == TRUE, paste("rel. sd = ", round(De.stats[i,8], 2), " %", "\n", sep = ""), ""), ifelse("seabs" %in% summary[j] == TRUE, paste("se = ", round(De.stats[i,9], 2), "\n", sep = ""), ""), ifelse("serel" %in% summary[j] == TRUE, paste("rel. se = ", round(De.stats[i,10], 2), " %", "\n", sep = ""), ""), ifelse("skewness" %in% summary[j] == TRUE, paste("skewness = ", round(De.stats[i,13], 2), "\n", sep = ""), ""), ifelse("kurtosis" %in% summary[j] == TRUE, paste("kurtosis = ", round(De.stats[i,14], 2), "\n", sep = ""), ""), ifelse("sdabs.weighted" %in% summary[j] == TRUE, paste("abs. weighted sd = ", round(De.stats[i,15], 2), "\n", sep = ""), ""), ifelse("sdrel.weighted" %in% summary[j] == TRUE, paste("rel. weighted sd = ", round(De.stats[i,16], 2), "\n", sep = ""), ""), ifelse("seabs.weighted" %in% summary[j] == TRUE, paste("abs. weighted se = ", round(De.stats[i,17], 2), "\n", sep = ""), ""), ifelse("serel.weighted" %in% summary[j] == TRUE, paste("rel. weighted se = ", round(De.stats[i,18], 2), "\n", sep = ""), ""), sep = "")) } summary.text <- paste(summary.text, collapse = "") label.text[[length(label.text) + 1]] <- paste(stops, summary.text, stops, sep = "") } } else { for(i in 1:length(data)) { summary.text <- character(0) for(j in 1:length(summary)) { summary.text <- c(summary.text, ifelse("n" %in% summary[j] == TRUE, paste("n = ", De.stats[i,1], " | ", sep = ""), ""), ifelse("mean" %in% summary[j] == TRUE, paste("mean = ", round(De.stats[i,2], 2), " | ", sep = ""), ""), ifelse("mean.weighted" %in% summary[j] == TRUE, paste("weighted mean = ", round(De.stats[i,3], 2), " | ", sep = ""), ""), ifelse("median" %in% summary[j] == TRUE, paste("median = ", round(De.stats[i,4], 2), " | ", sep = ""), ""), ifelse("median.weighted" %in% summary[j] == TRUE, paste("weighted median = ", round(De.stats[i,5], 2), " | ", sep = ""), ""), ifelse("kdemax" %in% summary[j] == TRUE, paste("kdemax = ", round(De.stats[i,6], 2), " | ", sep = ""), ""), ifelse("sdrel" %in% summary[j] == TRUE, paste("rel. sd = ", round(De.stats[i,8], 2), " %", " | ", sep = ""), ""), ifelse("sdabs" %in% summary[j] == TRUE, paste("abs. sd = ", round(De.stats[i,7], 2), " | ", sep = ""), ""), ifelse("serel" %in% summary[j] == TRUE, paste("rel. se = ", round(De.stats[i,10], 2), " %", " | ", sep = ""), ""), ifelse("seabs" %in% summary[j] == TRUE, paste("abs. se = ", round(De.stats[i,9], 2), " | ", sep = ""), ""), ifelse("skewness" %in% summary[j] == TRUE, paste("skewness = ", round(De.stats[i,13], 2), " | ", sep = ""), ""), ifelse("kurtosis" %in% summary[j] == TRUE, paste("kurtosis = ", round(De.stats[i,14], 2), " | ", sep = ""), ""), ifelse("sdabs.weighted" %in% summary[j] == TRUE, paste("abs. weighted sd = ", round(De.stats[i,15], 2), " %", " | ", sep = ""), ""), ifelse("sdrel.weighted" %in% summary[j] == TRUE, paste("rel. weighted sd = ", round(De.stats[i,16], 2), " %", " | ", sep = ""), ""), ifelse("seabs.weighted" %in% summary[j] == TRUE, paste("abs. weighted se = ", round(De.stats[i,17], 2), " %", " | ", sep = ""), ""), ifelse("serel.weighted" %in% summary[j] == TRUE, paste("rel. weighted se = ", round(De.stats[i,18], 2), " %", " | ", sep = ""), "") ) } summary.text <- paste(summary.text, collapse = "") label.text[[length(label.text) + 1]] <- paste( " ", summary.text, sep = "") } ## remove outer vertical lines from string for(i in 2:length(label.text)) { label.text[[i]] <- substr(x = label.text[[i]], start = 3, stop = nchar(label.text[[i]]) - 3) } } ## remove dummy list element label.text[[1]] <- NULL ## convert keywords into summary placement coordinates coords <- .get_keyword_coordinates(summary.pos, xlim.plot, ylim.plot) summary.pos <- coords$pos summary.adj <- coords$adj ## add summary content for(i in 1:length(data.stats)) { if(summary.pos[1] != "sub") { text(x = summary.pos[1], y = summary.pos[2], adj = summary.adj, labels = label.text[[i]], col = colour[2], cex = cex.global * 0.8) } else { if(mtext == "") { mtext(side = 3, line = 1 - i, text = label.text[[i]], col = colour[2], cex = cex.global * 0.8) } } } ## Optionally, add standard error plot -------------------------------------- if(sum(is.na(data[,2])) == length(data[,2])) { se <- FALSE } if(se == TRUE) { par(new = TRUE) plot.data <- data[!is.na(data[,2]),] plot(x = plot.data[,1], y = plot.data[,2], xlim = xlim.plot, ylim = ylim.plot[3:4], pch = pch.plot, col = colour[4], main = "", xlab = "", ylab = "", axes = FALSE, frame.plot = FALSE ) axis(side = 4, labels = TRUE, cex = cex.global ) mtext(ylab.plot[2], side = 4, line = 3, cex = cex.global) # par(new = FALSE) } ## Optionally add user-defined mtext mtext(side = 3, line = 0.5, text = mtext, cex = 0.8 * cex.global) ## FUN by R Luminescence Team if (fun && !interactive) sTeve() # nocov ## Optionally: Interactive Plot ---------------------------------------------- if (interactive) { .require_suggested_package("plotly", "The interactive histogram") ## tidy data ---- data <- as.data.frame(data) colnames(data) <- c("x", "y") x <- y <- NULL # suffice CRAN check for no visible binding if (length(grep("paste", as.character(xlab.plot))) > 0) xlab.plot <- "Equivalent dose [Gy]" ## create plots ---- # histogram hist <- plotly::plot_ly(data = data, x = ~x, type = "histogram", showlegend = FALSE, name = "Bin", opacity = 0.75, marker = list(color = "#428BCA", line = list(width = 1.0, color = "white")), histnorm = ifelse(normal_curve, "probability density", ""), yaxis = "y" ) # normal curve ---- if (normal_curve) { density.curve <- density(data$x) normal.curve <- data.frame(x = density.curve$x, y = density.curve$y) hist <- plotly::add_trace(hist, data = normal.curve, x = ~x, y = ~y, inherit = FALSE, type = "scatter", mode = "lines", line = list(color = "red"), name = "Normal curve", yaxis = "y") } # scatter plot of individual errors if (se) { yaxis2 <- list(overlaying = "y", side = "right", showgrid = FALSE, title = ylab.plot[2], ticks = "", showline = FALSE) se.text <- paste0("Measured value:
", data$x, " ± ", data$y,"
") hist <- plotly::add_trace(hist, data = data, x = ~x, y = ~y, inherit = FALSE, type = "scatter", mode = "markers", name = "Error", hoverinfo = "text", text = se.text, marker = list(color = "black"), yaxis = "y2") hist <- plotly::layout(hist, yaxis2 = yaxis2) } # set layout ---- hist <- plotly::layout(hist, hovermode = "closest", title = paste("", main.plot, ""), margin = list(r = 90), xaxis = list(title = xlab.plot, ticks = ""), yaxis = list(title = ylab.plot[1], ticks = "", showline = FALSE, showgrid = FALSE) ) ## show and return plot ---- print(hist) return(hist) } } Luminescence/R/calc_Lamothe2003.R0000644000176200001440000003305514762554470016114 0ustar liggesusers#'@title Apply fading correction after Lamothe et al., 2003 #' #'@description This function applies the fading correction for the prediction of long-term fading as suggested #' by Lamothe et al., 2003. The function basically adjusts the $L_n/T_n$ values and fits a new dose-response #' curve using the function [plot_GrowthCurve]. #' #'@details #' #' **Format of `object` if `data.frame`** #' #' If `object` is of type [data.frame], all input values most be of type [numeric]. #' Dose values are excepted in seconds (s) not Gray (Gy). No `NA` values are allowed and #' the value for the natural dose (first row) should be `0`. Example for three dose points, #' column names are arbitrary: #' #' ``` #' object <- data.frame( #' dose = c(0,25,50), #' LxTx = c(4.2, 2.5, 5.0), #' LxTx_error = c(0.2, 0.1, 0.2)) #' ``` #' #' **Note on the g-value and `tc`** #' #' Users new to R and fading measurements are often confused about what to #' enter for `tc` and why it may differ from `tc.g_value`. The `tc` value #' is, by convention (Huntley & Lamothe 2001), the time elapsed between the end of the irradiation and the prompt #' measurement. Usually there is no reason for having a `tc` value different for the equivalent dose measurement #' and the *g*-value measurement, except if different equipment was used. #' However, if, for instance, the *g*-value measurement sequence was analysed #' with the *Analyst* (Duller 2015) and `Luminescence` is used to correct for fading, #' there is a high chance that the value returned by the *Analyst* comes normalised to 2-days; #' even the `tc` values of the measurement were identical. #' In such cases, the fading correction cannot be correct until the `tc.g_value` was manually #' set to 2-days (`172800` s) because the function will internally recalculate values #' to an identical `tc` value. #' #' @param object [RLum.Results-class] [data.frame] (**required**): Input data for applying the #' fading correction. Allow are (1) [data.frame] with three columns (`dose`, `LxTx`, `LxTx error`; see details), (2) #' [RLum.Results-class] object created by the function [analyse_SAR.CWOSL] or [analyse_pIRIRSequence] #' #' @param dose_rate.envir [numeric] vector of length 2 (**required**): Environmental dose rate in mGy/a #' #' @param dose_rate.source [numeric] vector of length 2 (**required**): Irradiation source dose rate in Gy/s, #' which is, according to Lamothe et al. (2003) De/t*. #' #' @param g_value [numeric] vector of length 2 (**required**): g_value in #' %/decade *recalculated at the moment* the equivalent dose was calculated, #' i.e. `tc` is either similar for the *g*-value measurement **and** the #' De measurement or needs be to recalculated (cf. [calc_FadingCorr]). #' Inserting a normalised g-value, e.g., normalised to 2-days , will #' lead to wrong results. #' #' @param tc [numeric] (*optional*): time in seconds between the **end** of #' the irradiation and the prompt measurement used in the equivalent dose #' estimation (cf. Huntley & Lamothe 2001). #' If set to `NULL` it is assumed that `tc` is similar for the equivalent dose #' estimation and the *g*-value estimation #' #' @param tc.g_value [numeric] (*with default*): the time in seconds between irradiation and the #' prompt measurement estimating the *g*-value. If the *g*-value was normalised to, e.g., 2 days, #' this time in seconds (i.e., `172800`) should be entered here along with the time used for the #' equivalent dose estimation. If nothing is provided the time is set to `tc`, which is the #' usual case for *g*-values obtained using the SAR method and *g*-values that had been not normalised to 2 days. #' Note: If this value is not `NULL` the functions expects a [numeric] value for `tc`. #' #' @param plot [logical] (*with default*): enable/disable the plot output. #' #' @param verbose [logical] (*with default*): enable/disable output to the #' terminal. #' #' @param ... further arguments passed to function [plot_GrowthCurve]. #' #' @return The function returns are graphical output produced by the function [plot_GrowthCurve] and #' an [RLum.Results-class]. #' #' -----------------------------------\cr #' `[ NUMERICAL OUTPUT ]`\cr #' -----------------------------------\cr #' #' **`RLum.Results`**-object #' #' **slot:** **`@data`** #' #' \tabular{lll}{ #' **Element** \tab **Type** \tab **Description**\cr #' `$data` \tab `data.frame` \tab the fading corrected values \cr #' `$fit` \tab `nls` \tab the object returned by the dose response curve fitting \cr #' } #' #' '**slot:** **`@info`** #' #' The original function call #' #' @references #' #' Huntley, D.J., Lamothe, M., 2001. Ubiquity of anomalous fading in K-feldspars and the measurement #' and correction for it in optical dating. Canadian Journal of Earth Sciences 38, 1093-1106. #' #' Duller, G.A.T., 2015. The Analyst software package for luminescence data: overview and recent improvements. #' Ancient TL 33, 35–42. #' #' Lamothe, M., Auclair, M., Hamzaoui, C., Huot, S., 2003. #' Towards a prediction of long-term anomalous fading of feldspar IRSL. Radiation Measurements 37, #' 493-498. #' #' @section Function version: 0.1.0 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany), Norbert Mercier, #' IRAMAT-CRP2A, Université Bordeaux Montaigne (France) #' #' @keywords datagen #' #' @seealso [plot_GrowthCurve], [calc_FadingCorr], [analyse_SAR.CWOSL], [analyse_pIRIRSequence] #' #' @examples #' #'##load data #'##ExampleData.BINfileData contains two BINfileData objects #'##CWOSL.SAR.Data and TL.SAR.Data #'data(ExampleData.BINfileData, envir = environment()) #' #'##transform the values from the first position in a RLum.Analysis object #'object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) #' #'##perform SAR analysis and set rejection criteria #'results <- analyse_SAR.CWOSL( #' object = object, #' signal.integral.min = 1, #' signal.integral.max = 2, #' background.integral.min = 900, #' background.integral.max = 1000, #' verbose = FALSE, #' plot = FALSE, #' onlyLxTxTable = TRUE #' ) #' #' ##run fading correction #' results_corr <- calc_Lamothe2003( #' object = results, #' dose_rate.envir = c(1.676 , 0.180), #' dose_rate.source = c(0.184, 0.003), #' g_value = c(2.36, 0.6), #' plot = TRUE, #' fit.method = "EXP") #' #' #'@md #'@export calc_Lamothe2003 <- function( object, dose_rate.envir, dose_rate.source, g_value, tc = NULL, tc.g_value = tc, verbose = TRUE, plot = TRUE, ... ) { .set_function_name("calc_Lamothe2003") on.exit(.unset_function_name(), add = TRUE) ## Input parameter test --------------------------------------------------- .validate_class(object, c("data.frame", "RLum.Results")) ## dose_rate.envir .validate_class(dose_rate.envir, "numeric") if (length(dose_rate.envir) < 2) { .throw_error("'dose_rate.envir' should contain 2 elements") } if (length(dose_rate.envir) > 2) { .throw_warning("'dose_rate.envir' has length > 2, taking only the first two entries") dose_rate.envir <- dose_rate.envir[1:2] } ## dose_rate.source .validate_class(dose_rate.source, "numeric") if (length(dose_rate.source) < 2) { .throw_error("'dose_rate.source' should contain 2 elements") } if (length(dose_rate.source) > 2) { .throw_warning("'dose_rate.source' has length > 2, taking only the first two entries") dose_rate.source <- dose_rate.source[1:2] } ## g_value .validate_class(g_value, "numeric") if (length(g_value) < 2) { .throw_error("'g_value' should contain 2 elements") } if (length(g_value) > 2) { .throw_warning("'g_value' has length > 2, taking only the first two entries") g_value <- g_value[1:2] } ##tc if(is.null(tc) && !is.null(tc.g_value)) .throw_error("If you set 'tc.g_value' you have to provide a value for 'tc' too") # Input assignment ----------------------------------------------------------------------------- ## We allow input as data.frame() and RLum.Results objects ... the output from functions listed ## below .. if we allow a data.frame it should have at least Dose, Lx/Tx, Lx/Tx Error if(inherits(object, "data.frame")){ data <- object[,1:3] ##add signal information if(any(grepl(pattern = "Signal", x = colnames(object), fixed = TRUE))){ SIGNAL <- object[[which(grepl(pattern = "Signal", colnames(object), fixed = TRUE))[1]]] }else{ SIGNAL <- NA } }else if(inherits(object, "RLum.Results")){ if(object@originator == "analyse_SAR.CWOSL" || object@originator == "analyse_pIRIRSequence"){ ##now we do crazy stuff, we make a self-call here since this file can contain a lot of information ##get number of datasets; we have to search for the word natural, everything else is not safe enough full_table <- object@data$LnLxTnTx.table set_start <- which(grepl(full_table$Name, pattern = "Natural", fixed = TRUE)) set_end <- c(set_start[-1] - 1, nrow(full_table)) ##signal column if available if(object@originator == "analyse_pIRIRSequence"){ object <- full_table[,c("Dose", "LxTx", "LxTx.Error", "Signal")] }else{ object <- full_table[,c("Dose", "LxTx", "LxTx.Error")] } ##now run the function results <- lapply(1:length(set_start), function(x){ calc_Lamothe2003( object = object[set_start[x]:set_end[x], ], dose_rate.envir = dose_rate.envir, dose_rate.source = dose_rate.source, g_value = g_value, tc = tc, tc.g_value = tc.g_value, verbose = verbose, plot = plot, ... ) }) ##merge output return(merge_RLum(results)) }else{ .throw_error("Input for 'object' created by function ", object@originator, "() not supported") } } # Apply correction---------------------------------------------------------------------------- ##recalculate the g-value to the given tc ... ##re-calculation thanks to the help by Sébastien Huot, e-mail: 2016-07-19 if(!is.null(tc)){ k0 <- g_value / 100 / log(10) k1 <- k0 / (1 - k0 * log(tc[1]/tc.g_value[1])) g_value <- 100 * k1 * log(10) } # transform irradiation times to dose values data[[1]] <- data[[1]] * dose_rate.source[1] ## fading correction (including dose rate conversion from Gy/s to Gy/ka) ## and error calculation ## the formula in Lamothe et al. (2003) reads: ## I_faded = I_unfaded*(1-g*log((1/e)*DR_lab/DR_soil))) rr <- 31.5576e+09 * dose_rate.source[1] / (exp(1) * dose_rate.envir[1]) s_rr <- sqrt((dose_rate.source[2]/dose_rate.source[1])^2 + (dose_rate.envir[2]/dose_rate.envir[1])^2) * rr Fading_C <- 1 - g_value[1] / 100 * log10(rr) sFading_C <- sqrt((log10(rr) * g_value[2]/100)^2 + (g_value[1]/(100 * rr) * s_rr)^2) # store original Lx/Tx in new object LnTn_BEFORE <- data[[2]][1] LnTn_BEFORE.ERROR <- data[[3]][1] # apply to input data data[[2]][1] <- data[[2]][1] / Fading_C data[[3]][1] <- sqrt((data[[3]][1]/data[[2]][1])^2 + (sFading_C/Fading_C)^2) * data[[2]][1] # Fitting --------------------------------------------------------------------------------- ##set arguments argument_list <- list( sample = data, verbose = FALSE, main = "Corrected Dose Response Curve", xlab = "Dose [Gy]", txtProgressBar = verbose, output.plotExtended = FALSE, output.plot = plot ) ##filter doubled arguments argument_list <- modifyList(x = argument_list, val = list(...)) ##run plot function fit_results <- do.call(what = plot_GrowthCurve, args = argument_list) # Age calculation ----------------------------------------------------------------------------- Age <- get_RLum(fit_results)[["De"]] / dose_rate.envir[1] s_Age <- sqrt((100*get_RLum(fit_results)[["De.Error"]]/get_RLum(fit_results)[["De"]])^2 + (100*dose_rate.envir[2]/dose_rate.envir[1])^2) *Age/100 # Terminal output ----------------------------------------------------------------------------- if(verbose){ cat("\n[calc_Lamothe2003()] \n\n") cat(" Used g_value:\t\t", round(g_value[1],3)," \u00b1 ",round(g_value[2],3),"%/decade \n") if(!is.null(tc)){ cat(" tc for g_value:\t", tc.g_value, " s\n") } cat("\n") cat(" Fading_C:\t\t", round(Fading_C,3), " \u00b1 ", round(sFading_C,3),"\n") cat(" Corrected Ln/Tn:\t", round(data[[2]][1],3), " \u00b1 ", round(data[[3]][1],3),"\n") cat(" Corrected De:\t\t", round(get_RLum(fit_results)[["De"]],2), " \u00b1 ", round(get_RLum(fit_results)[["De.Error"]],2)," Gy \n") cat("--------------------------------------------------------\n") cat(" Corrected Age:\t\t", round(Age,2), " \u00b1 ", round(s_Age,2)," ka \n") cat("--------------------------------------------------------\n") } # Compile output ------------------------------------------------------------------------------ return( set_RLum( class = "RLum.Results", data = list( data = data.frame( g_value = g_value[1], g_value.ERROR = g_value[2], tc = ifelse(is.null(tc), NA, tc), tc.g_value = ifelse(is.null(tc.g_value), NA, tc.g_value), FADING_C = Fading_C, FADING_C.ERROR = sFading_C, LnTn_BEFORE = LnTn_BEFORE, LnTn_BEFORE.ERROR = LnTn_BEFORE.ERROR, LnTn_AFTER = data[[2]][1], LnTn_AFTER.ERROR = data[[3]][1], DE = get_RLum(fit_results)[["De"]], DE.ERROR = get_RLum(fit_results)[["De.Error"]], AGE = Age, AGE.ERROR = s_Age, SIGNAL = SIGNAL ), fit = get_RLum(fit_results, data.object = "Fit") ), info = list( call = sys.call() ) ) ) } Luminescence/R/plot_ROI.R0000644000176200001440000002147614762554470014727 0ustar liggesusers#'@title Create Regions of Interest (ROI) Graphic #' #'@description Create ROI graphic with data extracted from the data imported #'via [read_RF2R]. This function is used internally by [analyse_IRSAR.RF] but #'might be of use to work with reduced data from spatially resolved measurements. #'The plot dimensions mimic the original image dimensions #' #'@param object [RLum.Analysis-class], [RLum.Results-class] or a [list] of such objects (**required**): #'data input. Please note that to avoid function errors, only input created #'by the functions [read_RF2R] or [extract_ROI] is accepted #' #'@param exclude_ROI [numeric] (*with default*): option to remove particular ROIs from the #'analysis. Those ROIs are plotted but not coloured and not taken into account #'in distance analysis. `NULL` excludes nothing. #' #'@param dist_thre [numeric] (*optional*): euclidean distance threshold in pixel #'distance. All ROI for which the euclidean distance is smaller are marked. This #'helps to identify ROIs that might be affected by signal cross-talk. Note: #'the distance is calculated from the centre of an ROI, e.g., the threshold #'should include consider the ROIs or grain radius. #' #'@param dim.CCD [numeric] (*optional*): metric x and y for the recorded (chip) #'surface in µm. For instance `c(8192,8192)`, if set additional x and y-axes are shown #' #' @param bg_image [RLum.Data.Image-class] (*optional*): background image object #' (please note that dimensions are not checked). #' #' @param plot [logical] (*with default*): enable/disable the plot output. #' #'@param ... further parameters to manipulate the plot. On top of all arguments of #'[graphics::plot.default] the following arguments are supported: `lwd.ROI`, `lty.ROI`, #'`col.ROI`, `col.pixel`, `text.labels`, `text.offset`, `grid` (`TRUE/FALSE`), `legend` (`TRUE/FALSE`), #'`legend.text`, `legend.pos` #' #'@return An ROI plot and an [RLum.Results-class] object with a matrix containing #'the extracted ROI data and a object produced by [stats::dist] containing #'the euclidean distance between the ROIs. #' #'@section Function version: 0.2.0 #' #'@author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #'@seealso [read_RF2R], [analyse_IRSAR.RF] #' #'@keywords datagen plot #' #'@examples #' #'## simple example #'file <- system.file("extdata", "RF_file.rf", package = "Luminescence") #'temp <- read_RF2R(file) #'plot_ROI(temp) #' #'## in combination with extract_ROI() #'m <- matrix(runif(100,0,255), ncol = 10, nrow = 10) #'roi <- matrix(c(2.,4,2,5,6,7,3,1,1), ncol = 3) #'t <- extract_ROI(object = m, roi = roi) #'plot_ROI(t, bg_image = m) #' #'@md #'@export plot_ROI <- function( object, exclude_ROI = c(1), dist_thre = -Inf, dim.CCD = NULL, bg_image = NULL, plot = TRUE, ... ) { .set_function_name("plot_ROI") on.exit(.unset_function_name(), add = TRUE) ##helper function to extract content .spatial_data <- function(x) { .validate_class(x, c("RLum.Analysis", "RLum.Results"), extra = "a 'list' of such objects", name = "'object'") ##ignore all none RLum.Analysis if (!inherits(x, "RLum.Analysis") || x@originator != "read_RF2R") .throw_error("Object originator '", x@originator, "' not supported") ##extract some of the elements info <- x@info info$ROI <- strsplit(split = " ", info$ROI, fixed = TRUE)[[1]][2] c(ROI = info$ROI, x = info$x, y = info$y, area = info$area, width = info$width, height = info$height, img_width = info$image_width, img_height = info$image_height, grain_d = info$grain_d) } if (inherits(object, "RLum.Results") && ## use %in% instead of == to support the case when originator is NULL object@originator %in% "extract_ROI") { m <- object@data$roi_coord } else { ## make sure the object is a list if(!is.list(object)) object <- list(object) .validate_not_empty(object, "list") ##extract values and convert to numeric matrix m <- t(vapply(object, .spatial_data, character(length = 9))) ##make numeric storage.mode(m) <- "numeric" ## correct coordinates (they come in odd from the file) m[,"x"] <- m[,"x"] + m[,"width"] / 2 m[,"y"] <- m[,"y"] + m[,"height"] / 2 } ##make sure the ROI selection works if(is.null(exclude_ROI[1]) || exclude_ROI[1] <= 0) exclude_ROI <- nrow(m) + 1 ## add mid_x and mid_y m <- cbind(m, mid_x = c(m[,"x"] + m[,"width"] / 2), mid_y = c(m[,"y"] + m[,"height"] / 2)) rownames(m) <- m[,"ROI"] ## distance calculation euc_dist <- sel_euc_dist <- stats::dist(m[-exclude_ROI,c("mid_x","mid_y")]) ## distance threshold selector sel_euc_dist[sel_euc_dist < dist_thre[1]] <- NA sel_euc_dist <- suppressWarnings(as.numeric(rownames(na.exclude(as.matrix(sel_euc_dist))))) ## add information to matrix m <- cbind(m, dist_sel = FALSE) m[m[,"ROI"]%in%sel_euc_dist,"dist_sel"] <- TRUE ## --- Plotting --- if(plot) { plot_settings <- modifyList(x = list( xlim = c(0, max(m[, "img_width"])), ylim = c(max(m[, "img_height"]), 0), xlab = "width [px]", ylab = "height [px]", main = "Spatial ROI Distribution", frame.plot = FALSE, lwd.ROI = 0.75, lty.ROI = 2, col.ROI = "black", col.pixel = rgb(0,1,0,0.6), text.labels = m[,"ROI"], text.offset = 0.3, grid = FALSE, legend = TRUE, legend.text = c("ROI", "sel. pixel", "> dist_thre"), legend.pos = "topright" ), val = list(...)) ## set plot area do.call( what = graphics::plot.default, args = c(x = NA, y = NA, plot_settings[names(plot_settings) %in% methods::formalArgs(graphics::plot.default)]) ) ## add background image if available if(!is.null(bg_image)){ a <- try({ as(bg_image, "RLum.Data.Image") }, silent = TRUE) if(inherits(a, "try-error")) { .throw_warning("'bg_image' is not of class 'RLum.Data.Image' and ", "cannot be converted into it, background image plot skipped") } else { a <- a@data graphics::image( x = 1:nrow(a[, , 1]), y = 1:ncol(a[, , 1]), z = a[,order(1:dim(a)[2], decreasing = TRUE),1], add = TRUE, col = grDevices::hcl.colors(20, "inferno", rev = FALSE), useRaster = TRUE) } } if (plot_settings$grid) graphics::grid(nx = max(m[, "img_width"]), ny = max(m[, "img_height"])) ## plot metric scale if (!is.null(dim.CCD)) { axis( side = 1, at = axTicks(1), labels = paste(floor(dim.CCD[1] / max(m[,"img_width"]) * axTicks(1)), "\u00b5m"), lwd = -1, lwd.ticks = -1, line = -2.2, cex.axis = 0.8 ) axis( side = 2, at = axTicks(2)[-1], labels = paste(floor(dim.CCD[2] / max(m[,"img_height"]) * axTicks(2)), "\u00b5m")[-1], lwd = -1, lwd.ticks = -1, line = -2.2, cex.axis = 0.8 ) } ## add circles and rectangles for (i in 1:nrow(m)) { if (!i%in%exclude_ROI) { ## mark selected pixels polygon( x = c(m[i, "x"] - m[i, "width"]/ 2, m[i, "x"] - m[i, "width"]/ 2, m[i, "x"] + m[i, "width"]/2, m[i, "x"] + m[i, "width"]/2), y = c(m[i, "y"] - m[i, "height"]/ 2, m[i, "y"] + m[i, "height"]/ 2, m[i, "y"] + m[i, "height"]/ 2, m[i, "y"] - m[i, "height"]/ 2), col = plot_settings$col.pixel ) } ## add ROIs shape::plotellipse( rx = m[i, "width"] / 2, ry = m[i, "width"] / 2, mid = c(m[i, "x"], m[i, "y"]), lcol = plot_settings$col.ROI, lty = plot_settings$lty.ROI, lwd = plot_settings$lwd.ROI) } ## add distance marker points( x = m[!m[,"ROI"]%in%sel_euc_dist & !m[,"ROI"]%in%exclude_ROI, "x"], y = m[!m[,"ROI"]%in%sel_euc_dist & !m[,"ROI"]%in%exclude_ROI, "y"], pch = 4, col = "red") ## add text if(length(m[-exclude_ROI,"x"]) > 0) { graphics::text( x = m[-exclude_ROI, "x"], y = m[-exclude_ROI, "y"], labels = plot_settings$text.labels[-exclude_ROI], cex = 0.6, col = if(!is.null(bg_image)) "white" else "black", pos = 1, offset = plot_settings$text.offset ) } ##add legend if(plot_settings$legend) { legend( plot_settings$legend.pos, bty = "", pch = c(1, 15, 4), box.lty = 0, bg = rgb(1,1,1,0.7), legend = plot_settings$legend.text, col = c(plot_settings$col.ROI, plot_settings$col.pixel, "red") ) } }##end if plot ## return results invisible(set_RLum( class = "RLum.Results", data = list( ROI = m, euc_dist = euc_dist), info = list( call = sys.call() ))) } Luminescence/R/plot_RLum.R0000644000176200001440000001104014762554470015137 0ustar liggesusers#' General plot function for RLum S4 class objects #' #' Function calls object specific plot functions for RLum S4 class objects. #' #' The function provides a generalised access point for plotting specific #' [RLum-class] objects.\cr #' Depending on the input object, the #' corresponding plot function will be selected. Allowed arguments can be #' found in the documentations of each plot function. #' #' \tabular{lll}{ #' **object** \tab \tab **corresponding plot function** \cr #' [RLum.Data.Curve-class] \tab : \tab [plot_RLum.Data.Curve] \cr #' [RLum.Data.Spectrum-class] \tab : \tab [plot_RLum.Data.Spectrum]\cr #' [RLum.Data.Image-class] \tab : \tab [plot_RLum.Data.Image]\cr #' [RLum.Analysis-class] \tab : \tab [plot_RLum.Analysis]\cr #' [RLum.Results-class] \tab : \tab [plot_RLum.Results] #' } #' #' @param object [RLum-class] (**required**): #' S4 object of class `RLum`. Optional a [list] containing objects of #' class [RLum-class] can be provided. In this case the function tries to plot #' every object in this list according to its `RLum` class. Non-RLum objects are #' removed. #' #' @param ... further arguments and graphical parameters that will be passed #' to the specific plot functions. The only argument that is supported directly is `main` #' (setting the plot title). In contrast to the normal behaviour `main` can be here provided as #' [list] and the arguments in the list will dispatched to the plots if the `object` #' is of type `list` as well. #' #' @return Returns a plot. #' #' @note The provided plot output depends on the input object. #' #' @section Function version: 0.4.4 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [plot_RLum.Data.Curve], [RLum.Data.Curve-class], [plot_RLum.Data.Spectrum], #' [RLum.Data.Spectrum-class], [plot_RLum.Data.Image], [RLum.Data.Image-class], #' [plot_RLum.Analysis], [RLum.Analysis-class], [plot_RLum.Results], #' [RLum.Results-class] #' #' #' @keywords dplot #' #' @examples #' #load Example data #' data(ExampleData.CW_OSL_Curve, envir = environment()) #' #' #transform data.frame to RLum.Data.Curve object #' temp <- as(ExampleData.CW_OSL_Curve, "RLum.Data.Curve") #' #' #plot RLum object #' plot_RLum(temp) #' #' @md #' @export plot_RLum<- function( object, ... ) { .set_function_name("plot_RLum") on.exit(.unset_function_name(), add = TRUE) ## Define dispatcher function --------------------------------------------- RLum.dispatcher <- function(object, ...) { .validate_class(object, "RLum") ##grep object class object.class <- is(object)[1] ##select which plot function should be used and call it switch ( object.class, RLum.Data.Curve = plot_RLum.Data.Curve(object = object, ...), RLum.Data.Spectrum = plot_RLum.Data.Spectrum(object = object, ...), RLum.Data.Image = plot_RLum.Data.Image(object = object, ...), ##here we have to do prevent the partial matching with 'sub' by 'subset' RLum.Analysis = if(!grepl(pattern = "subset", x = paste(deparse(match.call()), collapse = " "), fixed = TRUE)){ plot_RLum.Analysis(object = object, subset = NULL, ...) }else{ plot_RLum.Analysis(object = object, ...) }, RLum.Results = plot_RLum.Results(object = object, ...)) } # Run dispatcher ------------------------------------------------------------------------------ ##call for the list, if not just proceed as normal if(inherits(object, "list")) { ##(0) we might have plenty of sublists before we have the list containing only ##RLum-objects object <- .unlist_RLum(object) object <- .rm_nonRLum(object) ##(2) check if empty, if empty do nothing ... if (length(object) != 0) { ## If we iterate over a list, this might be extremely useful to have different plot titles main <- NULL if("main" %in% names(list(...))){ main <- .listify(list(...)$main, length = length(object)) } ##set also mtext, but in a different way if(!"mtext" %in% names(list(...))){ if(is(object[[1]], "RLum.Analysis")){ mtext <- paste("Record:", 1:length(object)) }else{ mtext <- NULL } }else{ mtext <- rep(list(...)$mtext, length.out = length(object)) } for (i in 1:length(object)) { RLum.dispatcher(object = object[[i]], main = main[[i]], mtext = mtext[[i]], ...) } } }else{ ##dispatch object RLum.dispatcher(object = object, ...) } } Luminescence/R/extract_IrradiationTimes.R0000644000176200001440000003537714762554470020246 0ustar liggesusers#' @title Extract Irradiation Times from an XSYG-file #' #' @description Extracts irradiation times, dose and times since last irradiation, from a #' Freiberg Instruments XSYG-file. These information can be further used to #' update an existing BINX-file. #' #' @details #' The function was written to compensate missing information in the BINX-file #' output of Freiberg Instruments lexsyg readers. As all information are #' available within the XSYG-file anyway, these information can be extracted #' and used for further analysis or/and to stored in a new BINX-file, which can #' be further used by other software, e.g., Analyst (Geoff Duller). #' #' Typical application example: g-value estimation from fading measurements #' using the Analyst or any other self-written script. #' #' Beside some simple data transformation steps, the function applies #' functions [read_XSYG2R], [read_BIN2R], [write_R2BIN] for data import and export. #' #' @param object [character], [RLum.Analysis-class] or [list] (**required**): #' path and file name of the XSYG file or an [RLum.Analysis-class] #' produced by the function [read_XSYG2R]; #' alternatively a `list` of [RLum.Analysis-class] can be provided. #' #' **Note**: If an [RLum.Analysis-class] is used, any input for #' the arguments `file.BINX` and `recordType` will be ignored! #' #' @param file.BINX [character] (*optional*): #' path and file name of an existing BINX-file. If a file name is provided the #' file will be updated with the information from the XSYG file in the same #' folder as the original BINX-file. #' #' **Note:** The XSYG and the BINX-file must originate from the #' same measurement! #' #' @param recordType [character] (*with default*): #' select relevant curves types from the XSYG file or [RLum.Analysis-class] #' object. As the XSYG-file format comprises much more information than usually #' needed for routine data analysis and allowed in the BINX-file format, only #' the relevant curves are selected by using the function #' [get_RLum]. The argument `recordType` works as #' described for this function. #' #' **Note:** A wrong selection will causes a function error. Please change this #' argument only if you have reasons to do so. #' #' @param compatibility.mode [logical] (*with default*): #' this option is parsed only if a BIN/BINX file is produced and it will reset all position #' values to a max. value of 48, cf.[write_R2BIN] #' #' @param txtProgressBar [logical] (*with default*): #' enable/disable the progress bar during import and export. #' #' @note The function can be also used to extract irradiation times from [RLum.Analysis-class] objects #' previously imported via [read_BIN2R] (`fastForward = TRUE`) or in combination with [Risoe.BINfileData2RLum.Analysis]. #' Unfortunately the timestamp might not be very precise (or even invalid), #' but it allows to essentially treat different formats in a similar manner. #' #' @return #' An [RLum.Results-class] object is returned with the #' following structure: #' #' ``` #' .. $irr.times (data.frame) #' ``` #' #' If a BINX-file path and name is set, the output will be additionally #' transferred into a new BINX-file with the function name as suffix. For the #' output the path of the input BINX-file itself is used. Note that this will #' not work if the input object is a file path to an XSYG-file, instead of a #' link to only one file. In this case the argument input for `file.BINX` is ignored. #' #' In the self call mode (input is a `list` of [RLum.Analysis-class] objects #' a list of [RLum.Results-class] is returned. #' #' @note #' The produced output object contains still the irradiation steps to #' keep the output transparent. However, for the BINX-file export this steps #' are removed as the BINX-file format description does not allow irradiations #' as separate sequences steps. #' #' **BINX-file 'Time Since Irradiation' value differs from the table output?** #' #' The way the value 'Time Since Irradiation' is defined differs. In the BINX-file the #' 'Time Since Irradiation' is calculated as the 'Time Since Irradiation' plus the 'Irradiation #' Time'. The table output returns only the real 'Time Since Irradiation', i.e. time between the #' end of the irradiation and the next step. #' #' **Negative values for `TIMESINCELAST.STEP`?** #' #' Yes, this is possible and no bug, as in the XSYG-file multiple curves are stored for one step. #' Example: TL step may comprise three curves: #' #' - (a) counts vs. time, #' - (b) measured temperature vs. time and #' - (c) predefined temperature vs. time. #' #' Three curves, but they are all belonging to one TL measurement step, but with regard to #' the time stamps this could produce negative values as the important function #' ([read_XSYG2R]) do not change the order of entries for one step #' towards a correct time order. #' #' @section Function version: 0.3.4 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Analysis-class], [RLum.Results-class], [Risoe.BINfileData-class], #' [read_XSYG2R], [read_BIN2R], [write_R2BIN] #' #' @references #' Duller, G.A.T., 2015. The Analyst software package for luminescence data: overview and #' recent improvements. Ancient TL 33, 35-42. #' #' @keywords IO manip #' #' @examples #' ## (1) - example for your own data #' ## #' ## set files and run function #' # #' # file.XSYG <- file.choose() #' # file.BINX <- file.choose() #' # #' # output <- extract_IrradiationTimes(file.XSYG = file.XSYG, file.BINX = file.BINX) #' # get_RLum(output) #' # #' ## export results additionally to a CSV-file in the same directory as the XSYG-file #' # write.table(x = get_RLum(output), #' # file = paste0(file.BINX,"_extract_IrradiationTimes.csv"), #' # sep = ";", #' # row.names = FALSE) #' #' @md #' @export extract_IrradiationTimes <- function( object, file.BINX, recordType = c("irradiation (NA)", "IRSL (UVVIS)", "OSL (UVVIS)", "TL (UVVIS)"), compatibility.mode = TRUE, txtProgressBar = TRUE ) { .set_function_name("extract_IrradiationTimes") on.exit(.unset_function_name(), add = TRUE) # SELF CALL ----------------------------------------------------------------------------------- if(is.list(object)){ ##show message for non-supported arguments if(!missing(file.BINX)){ .throw_warning("argument 'file.BINX' is not supported in self-call mode.") } ## expand input arguments recordType <- .listify(recordType, length(object)) ## run function results <- lapply(seq_along(object), function(x) { extract_IrradiationTimes( object = object[[x]], recordType = recordType[[x]], txtProgressBar = txtProgressBar ) }) ##DO NOT use invisible here, this will stop the function from stopping if(length(results) == 0){ return(NULL) }else{ return(results) } } ## Integrity tests -------------------------------------------------------- .validate_class(object, c("character", "RLum.Analysis"), extra = "a 'list' of such objects") .validate_not_empty(object) if (is.character(object[1])) { .validate_length(object, 1) ##set object to file.XSYG file.XSYG <- object ##XSYG if (!file.exists(file.XSYG)) { .throw_error("Wrong XSYG file name or file does not exist!") } ##check if file is XML file if(tail(unlist(strsplit(file.XSYG, split = "\\.")), 1) != "xsyg" & tail(unlist(strsplit(file.XSYG, split = "\\.")), 1) != "XSYG" ){ .throw_error("File is expected to have 'xsyg' or 'XSYG' extension") } ##BINX if(!missing(file.BINX)){ if (!file.exists(file.BINX)) { .throw_error("Wrong BINX file name or file does not exist!") } ##check if file is XML file if(tail(unlist(strsplit(file.BINX, split = "\\.")), 1) != "binx" & tail(unlist(strsplit(file.BINX, split = "\\.")), 1) != "BINX" ){ .throw_error("File is expected to have 'binx' or 'BINX' extension") } } # Settings and import XSYG -------------------------------------------------------------------- temp.XSYG <- read_XSYG2R(file.XSYG, txtProgressBar = txtProgressBar, verbose = txtProgressBar) if(!missing(file.BINX)){ temp.BINX <- read_BIN2R(file.BINX, txtProgressBar = txtProgressBar, verbose = txtProgressBar) temp.BINX.dirname <- (dirname(file.XSYG)) } # Some data preparation ----------------------------------------------------------------------- ##set list temp.sequence.list <- list() ##select all analysis objects and combine them for(i in 1:length(temp.XSYG)){ ##select sequence and reduce the data set to really wanted values temp.sequence.list[[i]] <- get_RLum( object = temp.XSYG[[i]]$Sequence.Object, recordType = recordType, drop = FALSE) ##get corresponding position number, this will be needed later on temp.sequence.position <- as.numeric(as.character(temp.XSYG[[i]]$Sequence.Header["position",])) } }else{ ##now we assume a single RLum.Analysis object ##select sequence and reduce the data set to really wanted values, note that no ##record selection was made! temp.sequence.list <- list(object) } ##merge objects if(length(temp.sequence.list)>1){ temp.sequence <- merge_RLum(temp.sequence.list) }else{ temp.sequence <- temp.sequence.list[[1]] } # Grep relevant information ------------------------------------------------------------------- ##Sequence STEP STEP <- names_RLum(temp.sequence) #START time of each step ## we try also to support BIN/BINX files with this function if imported ## accordingly if(any(temp.sequence@originator %in% c("Risoe.BINfileData2RLum.Analysis", "read_BIN2R"))) { temp.START <- vapply(temp.sequence, function(x) { paste0(get_RLum(x, info.object = c("DATE")), get_RLum(x, info.object = c("TIME"))) }, character(1)) ##a little bit reformatting. START <- strptime(temp.START, format = "%y%m%d%H%M%S", tz = "GMT") ## make another try in case it does not make sense if (anyNA(START)) START <- strptime(temp.START, format = "%y%m%d%H:%M:%S", tz = "GMT") } else { temp.START <- vapply(temp.sequence, function(x) { tmp <- suppressWarnings(get_RLum(x, info.object = c("startDate"))) if(is.null(tmp)) tmp <- as.character(Sys.Date()) tmp }, character(1)) ##a little bit reformatting. START <- strptime(temp.START, format = "%Y%m%d%H%M%S", tz = "GMT") } ##DURATION of each STEP DURATION.STEP <- vapply(temp.sequence, function(x){ max(get_RLum(x)[,1]) }, numeric(1)) ##Calculate END time of each STEP END <- START + DURATION.STEP ##add position number so far an XSYG file was the input POSITION <- NA if(exists("file.XSYG")){ POSITION <- rep(temp.sequence.position, each = length_RLum(temp.sequence)) }else if(!inherits(try( suppressWarnings(get_RLum( get_RLum(temp.sequence, record.id = 1), info.object = "position")), silent = TRUE), "try-error")){ ##POSITION of each STEP POSITION <- vapply(temp.sequence, function(x){ tmp <- suppressWarnings(get_RLum(x, info.object = c("position"))) if(is.null(tmp)) tmp <- get_RLum(x, info.object = c("POSITION")) tmp }, numeric(1)) } ##Combine the results temp.results <- data.frame(POSITION,STEP,START,DURATION.STEP,END) # Calculate irradiation duration ------------------------------------------------------------ if(any(temp.sequence@originator %in% c("Risoe.BINfileData2RLum.Analysis", "read_BIN2R"))) { IRR_TIME <- vapply(temp.sequence, function(x) get_RLum(x, info.object = c("IRR_TIME")), numeric(1)) } else { IRR_TIME <- numeric(length = nrow(temp.results)) temp_last <- 0 for(i in 1:nrow(temp.results)){ if(grepl("irradiation", temp.results[["STEP"]][i])) { temp_last <- temp.results[["DURATION.STEP"]][i] next() } IRR_TIME[i] <- temp_last } } # Calculate time since irradiation ------------------------------------------------------------ ##set objects time.irr.end <- NA TIMESINCEIRR <- unlist(sapply(1:nrow(temp.results), function(x){ if(grepl("irradiation", temp.results[x,"STEP"])){ time.irr.end<<-temp.results[x,"END"] return(-1) }else{ if(is.na(time.irr.end)){ return(-1) }else{ return(difftime(temp.results[x,"START"],time.irr.end, units = "secs")) } } })) # Calculate time since last step -------------------------------------------------------------- TIMESINCELAST.STEP <- unlist(sapply(1:nrow(temp.results), function(x){ if(x == 1){ return(0) }else{ return(difftime(temp.results[x,"START"],temp.results[x-1, "END"], units = "secs")) } })) # Combine final results ----------------------------------------------------------------------- ##results table, export as CSV results <- cbind(temp.results,IRR_TIME, TIMESINCEIRR,TIMESINCELAST.STEP) # Write BINX-file if wanted ------------------------------------------------------------------- if(!missing(file.BINX)){ ##(1) remove all irradiation steps as there is no record in the BINX file and update information results.BINX <- results[results[, "STEP"] != "irradiation (NA)", ] ## (2) compare entries in the BINX-file with the entries in the table ## to make sure that both have the same length if(nrow(results.BINX) == nrow(temp.BINX@METADATA)){ ## (1a) update information on the irradiation time temp.BINX@METADATA[["IRR_TIME"]] <- results.BINX[["IRR_TIME"]] ## (1b) update information on the time since irradiation by using the ## Risoe definition of the parameter, to make the file compatible to ## the Analyst temp.BINX@METADATA[["TIMESINCEIRR"]] <- results.BINX[["IRR_TIME"]] + results.BINX[["TIMESINCEIRR"]] ## update BINX-file try <- write_R2BIN(temp.BINX, version = "06", file = paste0(file.BINX,"_extract_IrradiationTimes.BINX"), compatibility.mode = compatibility.mode, verbose = txtProgressBar, txtProgressBar = txtProgressBar) ##set message on the format definition if(!inherits(x = try, 'try-error')){ message("[extract_IrradiationTimes()] 'Time Since Irradiation' was redefined in the exported BINX-file to: 'Time Since Irradiation' plus the 'Irradiation Time' to be compatible with the Analyst.") } } else { .throw_message("XSYG-file and BINX-file do not contain similar entries, ", "BINX-file update skipped") } } # Output -------------------------------------------------------------------------------------- return(set_RLum(class = "RLum.Results", data = list(irr.times = results))) } Luminescence/R/convert_XSYG2CSV.R0000644000176200001440000000546514762554470016230 0ustar liggesusers#' @title Export XSYG-file(s) to CSV-files #' #' @description #' This function is a wrapper function around the functions [read_XSYG2R] and #' [write_RLum2CSV] and it imports an XSYG-file and directly exports its content #' to CSV-files. If nothing is set for the argument `path` ([write_RLum2CSV]) #' the input folder will become the output folder. #' #' @param file [character] (**required**): #' name of the XSYG-file to be converted to CSV-files #' #' @param ... further arguments that will be passed to the function #' [read_XSYG2R] and [write_RLum2CSV] #' #' @return #' The function returns either a CSV-file (or many of them) or for the option `export = FALSE` #' a list comprising objects of type [data.frame] and [matrix] #' #' @section Function version: 0.1.0 #' #' @author Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Analysis-class], [RLum.Data-class], [RLum.Results-class], #' [utils::write.table], [write_RLum2CSV], [read_XSYG2R] #' #' @keywords IO #' #' @examples #' #' ##transform XSYG-file values to a list #' data(ExampleData.XSYG, envir = environment()) #' convert_XSYG2CSV(OSL.SARMeasurement$Sequence.Object[1:10], export = FALSE) #' #' \dontrun{ #' ##select your BIN-file #' file <- file.choose() #' #' ##convert #' convert_XSYG2CSV(file) #' #' } #' #' @md #' @export convert_XSYG2CSV <- function( file, ... ) { .set_function_name("convert_XSYG2CSV") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(file, c("character", "RLum")) .validate_not_empty(file) ##set input arguments convert_XSYG2R_settings.default <- list( recalculate.TL.curves = TRUE, pattern = ".xsyg", txtProgressBar = TRUE, export = TRUE ) ##modify list on demand convert_XSYG2R_settings <- modifyList(x = convert_XSYG2R_settings.default, val = list(...)) # Import file --------------------------------------------------------------------------------- if(!inherits(file, "RLum")){ object <- read_XSYG2R( file = file, fastForward = TRUE, recalculate.TL.curves = convert_XSYG2R_settings$recalculate.TL.curves, pattern = convert_XSYG2R_settings$pattern, txtProgressBar = convert_XSYG2R_settings$txtProgressBar ) }else{ object <- file } # Export to CSV ------------------------------------------------------------------------------- ##get all arguments we want to pass and remove the doubled one arguments <- c(list(object = object, export = convert_XSYG2R_settings$export), list(...)) arguments[duplicated(names(arguments))] <- NULL ##this if-condition prevents NULL in the terminal if(convert_XSYG2R_settings$export == TRUE){ invisible(do.call("write_RLum2CSV", arguments)) }else{ do.call("write_RLum2CSV", arguments) } } Luminescence/R/RLum.Data.Image-class.R0000644000176200001440000002425014762554470017104 0ustar liggesusers#' Class `"RLum.Data.Image"` #' #' Class for representing luminescence image data (TL/OSL/RF). Such data are for example produced #' by the function [read_SPE2R] #' #' @name RLum.Data.Image-class #' #' @docType class #' #' @slot recordType #' Object of class [character] containing the type of the curve (e.g. "OSL image", "TL image") #' #' @slot curveType #' Object of class [character] containing curve type, allowed values #' are measured or predefined #' #' @slot data #' Object of class [array] containing image data. #' #' @slot info #' Object of class [list] containing further meta information objects #' #' @note #' The class should only contain data for a set of images. For additional #' elements the slot `info` can be used. #' #' @section Objects from the class: #' Objects can be created by calls of the form `set_RLum("RLum.Data.Image", ...)`. #' #' @section Class version: 0.5.1 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum-class], [RLum.Data-class], [plot_RLum], [read_SPE2R], [read_TIFF2R] #' #' @keywords classes #' #' @examples #' #' showClass("RLum.Data.Image") #' #' ##create empty RLum.Data.Image object #' set_RLum(class = "RLum.Data.Image") #' #' @md #' @export setClass( "RLum.Data.Image", slots = list( recordType = "character", curveType = "character", data = "array", info = "list" ), contains = "RLum.Data", prototype = list ( recordType = character(), curveType = character(), data = array(), info = list() ) ) # as() ---------------------------------------------------------------------------------------- ##DATA.FRAME ##COERCE RLum.Data.Image >> data.frame AND data.frame >> RLum.Data.Image #' as() #' #' for `[RLum.Data.Image-class]` #' #' **[RLum.Data.Image-class]** #' #' \tabular{ll}{ #' **from** \tab **to**\cr #' `data.frame` \tab `data.frame`\cr #' `matrix` \tab `matrix` #' } #' #' @md #' @name as ## from data.frame ---- setAs("data.frame", "RLum.Data.Image", function(from,to){ new(to, recordType = "unknown curve type", curveType = "NA", data = array(unlist(from), dim = c(nrow(from),ncol(from),1)), info = list()) }) ## to data.frame ---- setAs("RLum.Data.Image", "data.frame", function(from){ if(dim(from@data)[3] == 1) { as.data.frame(from@data[,,1]) } else { stop("No viable coercion to data.frame, object contains multiple frames.", call. = FALSE) } }) ## from matrix ---- setAs("matrix", "RLum.Data.Image", function(from,to){ new(to, recordType = "unknown curve type", curveType = "NA", data = array(from, c(nrow(from), ncol(from), 1)), info = list()) }) ## to matrix ---- setAs("RLum.Data.Image", "matrix", function(from){ if(dim(from@data)[3] == 1) { from@data[,,1, drop = TRUE] } else { stop("No viable coercion to matrix, object contains multiple frames. Please convert to array instead.", call. = FALSE) } }) ## from array ---- setAs("array", "RLum.Data.Image", function(from, to){ new(to, recordType = "unknown curve type", curveType = "NA", data = from, info = list()) }) ## to array ---- setAs("RLum.Data.Image", "array", function(from) from@data) ## from list ---- setAs("list", "RLum.Data.Image", function(from, to){ if (length(from) == 0) return(set_RLum("RLum.Data.Image")) array_list <- lapply(from, function(x) array(unlist(as.vector(x)), c(nrow(x), ncol(x), 1))) new(to, recordType = "unknown curve type", curveType = "NA", data = array(unlist(array_list), c(nrow(array_list[[1]]), ncol(array_list[[1]]), length(array_list))), info = list()) }) ## to list ---- setAs("RLum.Data.Image", "list", function(from){ num.images <- dim(from@data)[3] if (is.na(num.images)) return(list()) lapply(1:num.images, function(x) from@data[,,x]) }) # show() -------------------------------------------------------------------------------------- #' @describeIn RLum.Data.Image #' Show structure of `RLum.Data.Image` object #' #' @keywords internal #' #' @md #' @export setMethod("show", signature(object = "RLum.Data.Image"), function(object){ ## get dimension dim <- dim(object@data) ##print information cat("\n [RLum.Data.Image-class]") cat("\n\t recordType:", object@recordType) cat("\n\t curveType:", object@curveType) cat("\n\t .. recorded frames:", max(1,dim[3], na.rm = TRUE)) cat("\n\t .. .. pixel per frame:", dim[1]*dim[2]) cat("\n\t .. .. x dimension [px]:", dim[1]) cat("\n\t .. .. y dimension [px]:", dim[2]) cat("\n\t .. .. full pixel value range:", paste(format(range(object@data), scientific = TRUE, digits = 2), collapse=" : ")) cat("\n\t additional info elements:", length(object@info)) #cat("\n\t\t >> names:", names(object@info)) cat("\n") } ) # set_RLum() ---------------------------------------------------------------------------------- #' @describeIn RLum.Data.Image #' Construction method for RLum.Data.Image object. The slot info is optional #' and predefined as empty list by default. #' #' @param class [`set_RLum`]; [character]: name of the `RLum` class to create #' #' @param originator [`set_RLum`]; [character] (*automatic*): #' contains the name of the calling function (the function that produces this object); #' can be set manually. #' #' @param .uid [`set_RLum`]; [character] (*automatic*): #' sets an unique ID for this object using the internal C++ function `create_UID`. #' #' @param .pid [`set_RLum`]; [character] (*with default*): #' option to provide a parent id for nesting at will. #' #' @param recordType [`set_RLum`]; [character]: #' record type (e.g. "OSL") #' #' @param curveType [`set_RLum`]; [character]: #' curve type (e.g. "predefined" or "measured") #' #' @param data [`set_RLum`]; [matrix]: #' raw curve data. If data is of type `RLum.Data.Image` this can be used to #' re-construct the object, i.e. modified parameters except `.uid` and `.pid`. The rest #' will be subject to copy and paste unless provided. #' #' @param info [`set_RLum`]; [list]: #' info elements #' #' @return #' #' **`set_RLum`** #' #' Returns an object from class `RLum.Data.Image` #' #' @md #' @export setMethod( "set_RLum", signature = signature("RLum.Data.Image"), definition = function( class, originator, .uid, .pid, recordType = "Image", curveType = NA_character_, data = array(), info = list()) { ##The case where an RLum.Data.Image object can be provided ##with this RLum.Data.Image objects can be provided to be reconstructed if (is(data, "RLum.Data.Image")) { ##check for missing curveType if (missing(curveType)) curveType <- data@curveType ##check for missing recordType if (missing(recordType)) recordType <- data@recordType ##check for missing data ... not possible as data is the object itself ##check for missing info if (missing(info)) info <- data@info ##check for modified .uid & .pid ## >> this cannot be changed here, since both would be reset, by ## the arguments passed down from set_RLum() ... the generic function ##set empty class form object newRLumDataImage <- new("RLum.Data.Image") ##fill - this is the faster way, filling in new() costs ... newRLumDataImage@originator <- data@originator newRLumDataImage@recordType <- recordType newRLumDataImage@curveType <- curveType newRLumDataImage@data <- data@data newRLumDataImage@info <- info newRLumDataImage@.uid <- data@.uid newRLumDataImage@.pid <- data@.pid } else { ##set empty class from object newRLumDataImage <- new("RLum.Data.Image") ##fill - this is the faster way, filling in new() costs ... newRLumDataImage@originator <- originator newRLumDataImage@recordType <- recordType newRLumDataImage@curveType <- curveType newRLumDataImage@data <- data newRLumDataImage@info <- info newRLumDataImage@.uid <- .uid newRLumDataImage@.pid <- .pid } return(newRLumDataImage) } ) # get_RLum() ---------------------------------------------------------------------------------- #' @describeIn RLum.Data.Image #' Accessor method for `RLum.Data.Image` object. The argument `info.object` is #' optional to directly access the info elements. If no info element name is #' provided, the raw image data (`array`) will be returned. #' #' @param object [`get_RLum`], [`names_RLum`] (**required**): #' an object of class [RLum.Data.Image-class] #' #' @param info.object [`get_RLum`]; [character]: #' name of the info object to returned #' #' @return #' #' **`get_RLum`** #' #' 1. Returns the data object ([array]) #' 2. only the info object if `info.object` was set. #' #' @md #' @export setMethod("get_RLum", signature("RLum.Data.Image"), definition = function(object, info.object) { .set_function_name("get_RLum") on.exit(.unset_function_name(), add = TRUE) if(!missing(info.object)){ .validate_class(info.object, "character") if(info.object %in% names(object@info)){ unlist(object@info[info.object]) } else { .throw_error("Invalid element name, valid names are: ", .collapse(names(object@info))) } } else { object@data } }) # names_RLum() -------------------------------------------------------------------------------- #' @describeIn RLum.Data.Image #' Returns the names info elements coming along with this curve object #' #' @return #' #' **`names_RLum`** #' #' Returns the names of the info elements #' #' @md #' @export setMethod( "names_RLum", "RLum.Data.Image", function(object) names(object@info)) Luminescence/R/read_BIN2R.R0000644000176200001440000012100014762554470015027 0ustar liggesusers#' @title Import Risø BIN/BINX-files into R #' #' @description Import a `*.bin` or a `*.binx` file produced by a Risø DA15 and DA20 TL/OSL #' reader into R. #' #' @details #' #' The binary data file is parsed byte by byte following the data structure #' published in the Appendices of the Analyst manual p. 42. #' #' For the general BIN/BINX-file structure, the reader is referred to the #' Risø website: [https://www.fysik.dtu.dk]() #' #' @param file [character] or [list] (**required**): path and file name of the #' BIN/BINX file (URLs are supported). If input is a `list` it should comprise #' only `character`s representing each valid path and BIN/BINX-file names. #' Alternatively, the input character can be just a directory (path), in which #' case the function tries to detect and import all BIN/BINX files found in #' the directory. #' #' @param show.raw.values [logical] (*with default*): #' shows raw values from BIN-file for `LTYPE`, `DTYPE` and `LIGHTSOURCE` without #' translation in characters. Can be provided as `list` if `file` is a `list`. #' #' @param n.records [numeric] (*optional*): limits the number of imported records #' to the provided record id (e.g., `n.records = 1:10` imports the first ten records, #' while `n.records = 3` imports only record number 3. Can be used in combination with #' `show.record.number` for debugging purposes, e.g. corrupt BIN-files. #' Can be provided as `list` if `file` is a `list`. #' #' @param zero_data.rm [logical] (*with default*): #' remove erroneous data with no count values. As such data are usually not #' needed for the subsequent data analysis they will be removed by default. #' Can be provided as `list` if `file` is a `list`. #' #' @param duplicated.rm [logical] (*with default*): #' remove duplicated entries if `TRUE`. This may happen due to an erroneous #' produced BIN/BINX-file. This option compares only predecessor and successor. #' Can be provided as `list` if `file` is a `list`. #' #' @param position [numeric] (*optional*): #' imports only the selected position. Note: the import performance will not #' benefit by any selection made here. #' Can be provided as `list` if `file` is a `list`. #' #' @param fastForward [logical] (*with default*): #' if `TRUE` for a more efficient data processing only a list of `RLum.Analysis` #' objects is returned instead of a [Risoe.BINfileData-class] object. #' Can be provided as `list` if `file` is a `list`. #' #' @param show.record.number [logical] (*with default*): #' shows record number of the imported record, for debugging usage only. #' Can be provided as `list` if `file` is a `list`. #' Ignored if `verbose = FALSE`. #' #' @param txtProgressBar [logical] (*with default*): #' enable/disable the progress bar. Ignored if `verbose = FALSE`. #' #' @param forced.VersionNumber [integer] (*optional*): #' allows to cheat the version number check in the function by own values for #' cases where the BIN-file version is not supported. #' Can be provided as `list` if `file` is a `list`. #' #' **Note:** The usage is at own risk, only supported BIN-file versions have been tested. #' #' @param ignore.RECTYPE [logical] or [numeric] (*with default*): #' this argument allows to ignore values in the byte 'RECTYPE' (BIN-file version 08), #' in case there are not documented or faulty set. In this case the corrupted records are skipped. #' If the setting is [numeric] (e.g., `ignore.RECTYPE = 128`), records of those type are ignored #' for import. #' #' @param pattern [character] (*optional*): #' argument that is used if only a path is provided. The argument will than be #' passed to the function [list.files] used internally to construct a `list` #' of wanted files #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param ... further arguments that will be passed to the function #' [Risoe.BINfileData2RLum.Analysis]. Please note that any matching argument #' automatically sets `fastForward = TRUE` #' #' @return #' Returns an S4 [Risoe.BINfileData-class] object containing two #' slots: #' #' \item{METADATA}{A [data.frame] containing all variables stored in the BIN-file.} #' \item{DATA}{A [list] containing a numeric [vector] of the measured data. #' The ID corresponds to the record ID in METADATA.} #' #' If `fastForward = TRUE` a list of [RLum.Analysis-class] object is returned. The #' internal coercing is done using the function [Risoe.BINfileData2RLum.Analysis] #' #' @note #' The function works for BIN/BINX-format versions 03, 04, 05, 06, 07 and 08. The #' version number depends on the used Sequence Editor. #' #' @section Function version: 0.18 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Margret C. Fuchs, HZDR Freiberg, (Germany) \cr #' Marco Colombo, Institute of Geography, Heidelberg University (Germany)\cr #' based on information provided by Torben Lapp and Karsten Bracht Nielsen (Risø DTU, Denmark) #' #' #' @seealso [write_R2BIN], [Risoe.BINfileData-class], #' [base::readBin], [merge_Risoe.BINfileData], [RLum.Analysis-class] #' [utils::txtProgressBar], [list.files] #' #' #'@references #'DTU Nutech, 2016. The Sequence Editor, Users Manual, February, 2016. #'[https://www.fysik.dtu.dk]() #' #' #'@keywords IO #' #'@examples #' #'file <- system.file("extdata/BINfile_V8.binx", package = "Luminescence") #'temp <- read_BIN2R(file) #'temp #' #' @md #' @export read_BIN2R <- function( file, show.raw.values = FALSE, position = NULL, n.records = NULL, zero_data.rm = TRUE, duplicated.rm = FALSE, fastForward = FALSE, show.record.number = FALSE, txtProgressBar = TRUE, forced.VersionNumber = NULL, ignore.RECTYPE = FALSE, pattern = NULL, verbose = TRUE, ... ) { .set_function_name("read_BIN2R") on.exit(.unset_function_name(), add = TRUE) # Self Call ----------------------------------------------------------------------------------- # Option (a): Input is a list, every element in the list will be treated as file connection # with that many file can be read in at the same time # Option (b): The input is just a path, the function tries to grep ALL BIN/BINX files in the # directory and import them, if this is detected, we proceed as list .validate_class(file, c("character", "list")) if (is.character(file)) { .validate_not_empty(file) if (is.null(pattern)) { ##If this is not really a path we skip this here if (all(dir.exists(file)) & length(dir(file)) > 0) { if (verbose) message("[read_BIN2R()] Directory detected, trying to extract ", "'*.bin'/'*.binx' files ...\n") ##get files file <- as.list(list.files( path = file, recursive = FALSE, pattern = "\\.bin*", full.names = TRUE, ignore.case = TRUE)) } }else if(dir.exists(file)){ file <- as.list(list.files(file, pattern = pattern, full.names = TRUE, recursive = TRUE)) } } if (is.list(file)) { ## expand input arguments rep.length <- length(file) position <- .listify(position, rep.length) n.records <- .listify(n.records, rep.length) zero_data.rm <- .listify(zero_data.rm, rep.length) duplicated.rm <- .listify(duplicated.rm, rep.length) show.raw.values <- .listify(show.raw.values, rep.length) show.record.number <- .listify(show.record.number, rep.length) forced.VersionNumber <- .listify(forced.VersionNumber, rep.length) temp.return <- lapply(seq_along(file), function(x) { temp <- read_BIN2R( file = file[[x]], fastForward = fastForward, position = position[[x]], n.records = n.records[[x]], duplicated.rm = duplicated.rm[[x]], zero_data.rm = zero_data.rm[[x]], show.raw.values = show.raw.values[[x]], show.record.number = show.record.number[[x]], txtProgressBar = txtProgressBar, forced.VersionNumber = forced.VersionNumber[[x]], ignore.RECTYPE = ignore.RECTYPE, verbose = verbose, ... ) }) ##return if (fastForward) { return(unlist(temp.return, recursive = FALSE)) }else{ return(temp.return) } } ## Config ----------------------------------------------------------------- .validate_length(file, 1) .validate_logical_scalar(show.raw.values) .validate_logical_scalar(zero_data.rm) .validate_logical_scalar(duplicated.rm) .validate_logical_scalar(fastForward) .validate_logical_scalar(show.record.number) .validate_logical_scalar(txtProgressBar) .validate_class(ignore.RECTYPE, c("logical", "numeric")) ##set file_link for internet downloads url_file <- NULL on_exit <- function(){ ##unlink internet connection if(!is.null(url_file)){ unlink(url_file) } ##close connection if(exists("con") && !is.null(con)){ close(con) } } on.exit(expr = on_exit(), add = TRUE) ## never show the progress bar if not verbose if (!verbose) { txtProgressBar <- FALSE } ## check for URL and attempt download url_file <- .download_file(file, verbose = verbose, tempfile("read_BIN22R_FILE", fileext = ".binx")) if(!is.null(url_file)) file <- url_file ## normalise path, just in case file <- suppressWarnings(normalizePath(file)) ## check whether file exists info <- file.info(file) if (is.na(info$size)) { .throw_error("File '", file, "' does not exist") } ## skip if zero-byte if (info$size == 0) { .throw_message("File '", file, "' is a zero-byte file, NULL returned") return(NULL) } ## check if file is a BIN or BINX file if(!any(tolower(tools::file_ext(file)) %in% c("bin", "binx"))) { .throw_message("File '", file, "' is not a file of type ", "'BIN' or 'BINX', NULL returned") con <- NULL return(NULL) } ##set supported BIN format version VERSIONS.supported <- as.raw(c(03, 04, 05, 06, 07, 08)) ## Short file parsing to get number of records ---------------------------- #open connection con <- file(file, "rb") ##read data up to the end of con ##set ID temp.ID <- 0 ##start for BIN-file check up while(length(temp.VERSION <- readBin(con, what="raw", 1, size=1, endian="little"))>0) { ## force version number if(!is.null(forced.VersionNumber)){ temp.VERSION <- as.raw(forced.VersionNumber) if (verbose) message("[read_BIN2R()] 'forced.VersionNumber' set to ", temp.VERSION, ", but this version may not match your input file") } ##stop input if wrong VERSION if (!temp.VERSION %in% VERSIONS.supported) { if(temp.ID > 0){ if(is.null(n.records)){ .throw_warning("BIN-file appears to be corrupt, import limited ", "to the first ", temp.ID, " records") }else{ .throw_warning("BIN-file appears to be corrupt, 'n.records' ", "reset to ", temp.ID) } ##set or reset n.records n.records <- seq_len(temp.ID) break() }else{ .throw_error("BIN/BINX format version (", temp.VERSION, ") ", "is not supported or file is broken. ", "Supported version numbers are: ", .collapse(VERSIONS.supported)) } } #empty byte position seek.connection(con, 1, origin = "current") ## get record LENGTH int.size <- if (temp.VERSION >= 05) 4 else 2 temp.LENGTH <- readBin(con, what = "integer", 1, size = int.size, endian = "little") num.toread <- max(0, temp.LENGTH - int.size - 2) if (num.toread > 0) { seek.connection(con, num.toread, origin = "current") } else { if (verbose) message("\n[read_BIN2R()] Record #", temp.ID + 1, " skipped due to wrong record length") next() } temp.ID <- temp.ID + 1 } ##set n.length we will need it later n.length <- temp.ID if (n.length == 0) { .throw_warning("0 records read, NULL returned") return(NULL) } rm(temp.ID) close(con) ##we have to close the connection here # Set Lookup tables -------------------------------------------------------------------------- ##LTYPE LTYPE.lookup <- c( "0" = "TL", "1" = "OSL", "2" = "IRSL", "3" = "M-IR", "4" = "M-VIS", "5" = "TOL", "6" = "TRPOSL", "7" = "RIR", "8" = "RBR", "9" = "USER", "10" = "POSL", "11" = "SGOSL", "12" = "RL", "13" = "XRF" ) ##DTYPE DTYPE.lookup <- c( "0" = "Natural", "1" = "N+dose", "2" = "Bleach", "3" = "Bleach+dose", "4" = "Natural (Bleach)", "5" = "N+dose (Bleach)", "6" = "Dose", "7" = "Background" ) ##LIGHTSOURCE LIGHTSOURCE.lookup <- c( "0" = "None", "1" = "Lamp", "2" = "IR diodes/IR Laser", "3" = "Calibration LED", "4" = "Blue Diodes", "5" = "White light", "6" = "Green laser (single grain)", "7" = "IR laser (single grain)" ) ## helper to import string from pascal format .read_string <- function(con, field.length, force.size = NULL) { raw <- readBin(con, what = "raw", field.length, size = 1, endian = "little") strlen <- max(as.integer(raw[1]), 0) if (strlen > 0) { if (!is.null(force.size)) strlen <- force.size return(suppressWarnings(readChar(raw[-1], strlen, useBytes = TRUE))) } return("") } ##PRESET VALUES temp.RECTYPE <- 0 ##overwrite length if required if(!is.null(n.records)) n.length <- length(n.records) ## set index for entry row in table id_row <- 1 ## 1 to 7 ID <- integer(length = n.length) SEL <- NULL # derived from TAG VERSION <- rep_len(NA_integer_, n.length) LENGTH <- integer(length = n.length) PREVIOUS <- integer(length = n.length) NPOINTS <- integer(length = n.length) RECTYPE <- integer(length = n.length) ## 8 to 17 RUN <- rep_len(NA_integer_, n.length) SET <- rep_len(NA_integer_, n.length) POSITION <- integer(n.length) # default value 0 GRAIN <- NULL # derived from GRAINNUMBER GRAINNUMBER <- integer(n.length) # default value 0 CURVENO <- rep_len(NA_integer_, n.length) XCOORD <- rep_len(NA_integer_, n.length) YCOORD <- rep_len(NA_integer_, n.length) SAMPLE <- character(length = n.length) COMMENT <- character(length = n.length) ## 18 to 22 SYSTEMID <- rep_len(NA_integer_, n.length) FNAME <- character(length = n.length) USER <- character(length = n.length) TIME <- character(length = n.length) DATE <- character(length = n.length) ## 23 to 31 DTYPE <- character(length = n.length) BL_TIME <- rep_len(NA_real_, n.length) BL_UNIT <- rep_len(NA_integer_, n.length) NORM1 <- rep_len(NA_real_, n.length) NORM2 <- rep_len(NA_real_, n.length) NORM3 <- rep_len(NA_real_, n.length) BG <- rep_len(NA_real_, n.length) SHIFT <- rep_len(NA_integer_, n.length) TAG <- rep_len(NA_integer_, n.length) ## 32 to 67 LTYPE <- character(length = n.length) LIGHTSOURCE <- character(length = n.length) LPOWER <- NULL # derived from LIGHTPOWER LIGHTPOWER <- rep_len(NA_real_, n.length) LOW <- rep_len(NA_real_, n.length) HIGH <- rep_len(NA_real_, n.length) RATE <- rep_len(NA_real_, n.length) TEMPERATURE <- rep_len(NA_real_, n.length) MEASTEMP <- rep_len(NA_real_, n.length) AN_TEMP <- rep_len(NA_real_, n.length) AN_TIME <- rep_len(NA_real_, n.length) TOLDELAY <- rep_len(NA_integer_, n.length) TOLON <- rep_len(NA_integer_, n.length) TOLOFF <- rep_len(NA_integer_, n.length) IRR_TIME <- rep_len(NA_real_, n.length) IRR_TYPE <- rep_len(NA_integer_, n.length) IRR_UNIT <- rep_len(NA_integer_, n.length) IRR_DOSERATE <- rep_len(NA_real_, n.length) IRR_DOSERATEERR <- rep_len(NA_real_, n.length) TIMESINCEIRR <- rep_len(NA_real_, n.length) TIMETICK <- rep_len(NA_real_, n.length) ONTIME <- rep_len(NA_real_, n.length) OFFTIME <- rep_len(NA_real_, n.length) STIMPERIOD <- rep_len(NA_integer_, n.length) GATE_ENABLED <- rep_len(NA_real_, n.length) ENABLE_FLAGS <- NULL # derived from GATE_ENABLED GATE_START <- rep_len(NA_real_, n.length) GATE_STOP <- rep_len(NA_real_, n.length) PTENABLED <- rep_len(NA_real_, n.length) DTENABLED <- rep_len(NA_real_, n.length) DEADTIME <- rep_len(NA_real_, n.length) MAXLPOWER <- rep_len(NA_real_, n.length) XRF_ACQTIME <- rep_len(NA_real_, n.length) XRF_HV <- rep_len(NA_real_, n.length) XRF_CURR <- rep_len(NA_real_, n.length) XRF_DEADTIMEF <- rep_len(NA_real_, n.length) ## 68 to 79 DETECTOR_ID <- rep_len(NA_integer_, n.length) LOWERFILTER_ID <- rep_len(NA_integer_, n.length) UPPERFILTER_ID <- rep_len(NA_integer_, n.length) ENOISEFACTOR <- rep_len(NA_real_, n.length) MARKPOS_X1 <- MARKPOS_Y1 <- rep_len(NA_real_, n.length) MARKPOS_X2 <- MARKPOS_Y2 <- rep_len(NA_real_, n.length) MARKPOS_X3 <- MARKPOS_Y3 <- rep_len(NA_real_, n.length) EXTR_START <- rep_len(NA_real_, n.length) EXTR_END <- rep_len(NA_real_, n.length) ## 80 SEQUENCE <- character(length = n.length) #set variable for DPOINTS handling results.DATA <- list() ##set list for RESERVED values results.RESERVED <- rep(list(list()), n.length) # Open Connection --------------------------------------------------------- #open connection con <- file(file, "rb") if (verbose) { cat("\n[read_BIN2R()] Importing ...") cat("\n path: ", dirname(file)) cat("\n file: ", .shorten_filename(basename(file))) cat("\n n_rec:", n.length) cat("\n") } ##set progress bar if (txtProgressBar) { pb <- txtProgressBar(min = 0, max = info$size, char = "=", style = 3) } ##read data up to the end of con ##set ID temp.ID <- 0 # LOOP -------------------------------------------------------------------- ##start loop for import BIN data while(length(temp.VERSION <- readBin(con, what="raw", 1, size=1, endian="little"))>0) { ##force version number if(!is.null(forced.VersionNumber)){ temp.VERSION <- as.raw(forced.VersionNumber) } ##print record ID for debugging purposes if(verbose){ if(show.record.number == TRUE){ cat(temp.ID,",", sep = "") if(temp.ID%%10==0){ cat("\n") } } } #empty byte position seek.connection(con, 1, origin = "current") ## (1) Header size and structure ## LENGTH, PREVIOUS, NPOINTS int.size <- if (temp.VERSION >= 05) 4 else 2 temp <- readBin(con, what = "int", 3, size = int.size, endian = "little") temp.LENGTH <- temp[1] temp.PREVIOUS <- temp[2] temp.NPOINTS <- temp[3] ## skip record if not selected in n.records ## the first condition boosts the speed of reading if n.records is not used if (!is.null(n.records) && !(temp.ID + 1) %in% n.records) { temp.ID <- temp.ID + 1 seek.connection(con, temp.LENGTH - 3 * int.size - 2, origin = "current") next() } ## these must be set only after the n.records check ## we don't set VERSION now, as we must leave it set to NA in case we ## decide to skip the current record LENGTH[id_row] <- temp.LENGTH PREVIOUS[id_row] <- temp.PREVIOUS NPOINTS[id_row] <- temp.NPOINTS ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ## BINX FORMAT SUPPORT if (temp.VERSION == 05 || temp.VERSION == 06 || temp.VERSION == 07 || temp.VERSION == 08) { #for temp.VERSION == 08 #RECTYPE if(temp.VERSION == 08){ temp.RECTYPE <- readBin(con, what = "int", 1, size = 1, endian = "little", signed = FALSE) RECTYPE[id_row] <- temp.RECTYPE ## we can check for a specific value for temp.RECTYPE if(inherits(ignore.RECTYPE[1], "numeric") && temp.RECTYPE == ignore.RECTYPE[1]) { seek.connection(con, temp.LENGTH - 15, origin = "current") if(verbose) message("\n[read_BIN2R()] Record #", temp.ID + 1, " skipped due to ignore.RECTYPE setting") next() } if(temp.RECTYPE != 0 & temp.RECTYPE != 1 & temp.RECTYPE != 128) { ##jump to the next record by stepping the record length minus the already read bytes seek.connection(con, temp.LENGTH - 15, origin = "current") msg <- paste0("Byte RECTYPE = ", temp.RECTYPE, " is not supported in record #", temp.ID + 1) if (!ignore.RECTYPE) { .throw_error(msg, ", set `ignore.RECTYPE = TRUE` to skip this record") } ## skip to next record if (verbose) message("\n[read_BIN2R()] ", msg, ", record skipped") temp.ID <- temp.ID + 1 next() } } ## RECTYPE == 128 ## If the RECTYPE is 128, only the header bytes until here make any sense, ## the rest are just random bytes (e-mail K.B., 2024-07-04) ## the header length is 507, hence we have to jump 507 - 15 to get ## the data ## This is a very ugly construction and the function should be refactored if (temp.RECTYPE == 128){ seek.connection(con, 492, origin = "current") } else { ##(2) Sample characteristics ##RUN, SET, POSITION, GRAINNUMBER, CURVENO, XCOORD, YCOORD temp <- readBin(con, what = "int", 7, size = 2, endian = "little") RUN[id_row] <- temp[1] SET[id_row] <- temp[2] POSITION[id_row] <- temp[3] GRAINNUMBER[id_row] <- temp[4] CURVENO[id_row] <- temp[5] XCOORD[id_row] <- temp[6] YCOORD[id_row] <- temp[7] ##SAMPLE, COMMENT SAMPLE[id_row] <- .read_string(con, 21) COMMENT[id_row] <- .read_string(con, 81) ##(3) Instrument and sequence characteristic ##SYSTEMID SYSTEMID[id_row] <- readBin(con, what = "integer", 1, size = 2, endian = "little") ## FNAME, USER, TIME, DATE FNAME[id_row] <- .read_string(con, 101) USER[id_row] <- .read_string(con, 31) TIME[id_row] <- .read_string(con, 7) DATE[id_row] <- .read_string(con, 7, force.size = 6) ##(4) Analysis ##DTYPE DTYPE[id_row] <- readBin(con, what="int", 1, size=1, endian="little") ##BL_TIME BL_TIME[id_row] <- readBin(con, what="double", 1, size=4, endian="little") ##BL_UNIT BL_UNIT[id_row] <- readBin(con, what="int", 1, size=1, endian="little") ##NORM1, NORM2, NORM3, BG temp <- readBin(con, what="double", 4, size=4, endian="little") NORM1[id_row] <- temp[1] NORM2[id_row] <- temp[2] NORM3[id_row] <- temp[3] BG[id_row] <- temp[4] ##SHIFT SHIFT[id_row] <- readBin(con, what = "int", 1, size = 2, endian = "little") ##TAG TAG[id_row] <- readBin(con, what = "int", 1, size = 1, endian = "little") ##RESERVED temp.RESERVED1 <-readBin(con, what="raw", 20, size=1, endian="little") ##(5) Measurement characteristics ##LTYPE ##LTYPESOURCE temp <- readBin(con, what = "integer", 2, size = 1, endian = "little") LTYPE[id_row] <- temp[1] LIGHTSOURCE[id_row] <- temp[2] ##LIGHTPOWER, LOW, HIGH, RATE temp <- readBin(con, what="double", 4, size=4, endian="little") LIGHTPOWER[id_row] <- temp[1] LOW[id_row] <- temp[2] HIGH[id_row] <- temp[3] RATE[id_row] <- temp[4] ##TEMPERATURE ##MEASTEMP temp <- readBin(con, what = "integer", 2, size = 2, endian = "little") TEMPERATURE[id_row] <- temp[1] MEASTEMP[id_row] <- temp[2] ##AN_TEMP ##AN_TIME temp <- readBin(con, what = "double", 2, size = 4, endian = "little") AN_TEMP[id_row] <- temp[1] AN_TIME[id_row] <- temp[2] ##DELAY, ON, OFF temp <- readBin(con, what="int", 3, size=2, endian="little") TOLDELAY[id_row] <- temp[1] TOLON[id_row] <- temp[2] TOLOFF[id_row] <- temp[3] ##IRR_TIME IRR_TIME[id_row] <- readBin(con, what="double", 1, size=4, endian="little") ##IRR_TYPE IRR_TYPE[id_row] <- readBin(con, what="int", 1, size=1, endian="little") ##IRR_DOSERATE IRR_DOSERATE[id_row] <- readBin(con, what="double", 1, size=4, endian="little") ##IRR_DOSERATEERR if(temp.VERSION != 05) IRR_DOSERATEERR[id_row] <- readBin(con, what="double", 1, size=4, endian="little") ##TIMESINCEIRR TIMESINCEIRR[id_row] <- readBin(con, what="integer", 1, size=4, endian="little") ##TIMETICK TIMETICK[id_row] <- readBin(con, what="double", 1, size=4, endian="little") ##ONTIME ##STIMPERIOD temp <- readBin(con, what = "integer", 2, size = 4, endian = "little") ONTIME[id_row] <- temp[1] STIMPERIOD[id_row] <- temp[2] ##GATE_ENABLED GATE_ENABLED[id_row] <- as.numeric(readBin(con, what="raw", 1, size=1, endian="little")) ##GATE_START ##GATE_STOP temp <- readBin(con, what = "integer", 2, size = 4, endian = "little") GATE_START[id_row] <- temp[1] GATE_STOP[id_row] <- temp[2] ##PTENABLED ##DTENABLED temp <- as.numeric(readBin(con, what = "raw", 2, size = 1, endian = "little")) PTENABLED[id_row] <- temp[1] DTENABLED[id_row] <- temp[2] ##DEADTIME, MAXLPOWER, XRF_ACQTIME, XRF_HV temp <- readBin(con, what="double", 4, size=4, endian="little") DEADTIME[id_row] <- temp[1] MAXLPOWER[id_row] <- temp[2] XRF_ACQTIME[id_row] <- temp[3] XRF_HV[id_row] <- temp[4] ##XRF_CURR XRF_CURR[id_row] <- readBin(con, what="integer", 1, size=4, endian="little") ##XRF_DEADTIMEF XRF_DEADTIMEF[id_row] <- readBin(con, what="double", 1, size=4, endian="little") ###Account for differences between V5, V6 and V7 if(temp.VERSION == 06){ reserved2.len <- 24 }else if(temp.VERSION == 05){ reserved2.len <- 4 }else{ ##DETECTOR_ID DETECTOR_ID[id_row] <- readBin(con, what="int", 1, size=1, endian="little") ##LOWERFILTER_ID, UPPERFILTER_ID temp <- readBin(con, what="int", 2, size=2, endian="little") LOWERFILTER_ID[id_row] <- temp[1] UPPERFILTER_ID[id_row] <- temp[2] ##ENOISEFACTOR ENOISEFACTOR[id_row] <- readBin(con, what="double", 1, size=4, endian="little") ##CHECK FOR VERSION 07 if(temp.VERSION == 07){ reserved2.len <- 15 }else { ##MARKER_POSITION ###EXTR_START, EXTR_END temp <- readBin(con, what = "double", 8, size = 4, endian = "little") MARKPOS_X1[id_row] <- temp[1] MARKPOS_Y1[id_row] <- temp[2] MARKPOS_X2[id_row] <- temp[3] MARKPOS_Y2[id_row] <- temp[4] MARKPOS_X3[id_row] <- temp[5] MARKPOS_Y3[id_row] <- temp[6] EXTR_START[id_row] <- temp[7] EXTR_END[id_row] <- temp[8] reserved2.len <- 42 } }# end RECTYPE 128 temp.RESERVED2 <- readBin(con, what = "raw", reserved2.len, size = 1, endian = "little") } } ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ## BIN FILE FORMAT SUPPORT else if (temp.VERSION == 03 || temp.VERSION == 04) { ##LTYPE LTYPE[id_row]<-readBin(con, what="int", 1, size=1, endian="little") ##LOW, HIGH, RATE temp <- readBin(con, what="double", 3, size=4, endian="little") LOW[id_row] <- temp[1] HIGH[id_row] <- temp[2] RATE[id_row] <- temp[3] ##XCOORD, YCOORD, TOLDELAY, TOLON, TOLOFF temp <- readBin(con, what = "integer", 6, size = 2, endian = "little") TEMPERATURE[id_row] <- temp[1] XCOORD[id_row] <- temp[2] YCOORD[id_row] <- temp[3] TOLDELAY[id_row] <- temp[4] TOLON[id_row] <- temp[5] TOLOFF[id_row] <- temp[6] ##POSITION ##RUN temp <- readBin(con, what = "integer", 2, size = 1, endian = "little", signed = FALSE) POSITION[id_row] <- temp[1] RUN[id_row] <- temp[2] ## TIME, DATE, SEQUENCE, USER TIME[id_row] <- .read_string(con, 7, force.size = 6) DATE[id_row] <- .read_string(con, 7, force.size = 6) SEQUENCE[id_row] <- .read_string(con, 9) USER[id_row] <- .read_string(con, 9) ##DTYPE DTYPE[id_row] <- readBin(con, what="int", 1, size=1, endian="little") ##IRR_TIME IRR_TIME[id_row] <- readBin(con, what="double", 1, size=4, endian="little") ##IRR_TYPE ##IRR_UNIT temp <- readBin(con, what = "integer", 2, size = 1, endian = "little") IRR_TYPE[id_row] <- temp[1] IRR_UNIT[id_row] <- temp[2] ##BL_TIME BL_TIME[id_row] <- readBin(con, what="double", 1, size=4, endian="little") ##BL_UNIT BL_UNIT[id_row] <- readBin(con, what="int", 1, size=1, endian="little") ##AN_TEMP, AN_TIME, NORM1, NORM2, NORM3, BG temp <- readBin(con, what="double", 6, size=4, endian="little") AN_TEMP[id_row] <- temp[1] AN_TIME[id_row] <- temp[2] NORM1[id_row] <- temp[3] NORM2[id_row] <- temp[4] NORM3[id_row] <- temp[5] BG[id_row] <- temp[6] ##SHIFT SHIFT[id_row] <- readBin(con, what="integer", 1, size=2, endian="little") ## SAMPLE, COMMENT SAMPLE[id_row] <- .read_string(con, 21) COMMENT[id_row] <- .read_string(con, 81) ##LIGHTSOURCE, SET, TAG temp <- readBin(con, what="int", 3, size=1, endian="little") LIGHTSOURCE[id_row] <- temp[1] SET[id_row] <- temp[2] TAG[id_row] <- temp[3] ##GRAIN GRAINNUMBER[id_row] <- readBin(con, what="int", 1, size=2, endian="little") ##LPOWER LIGHTPOWER[id_row] <- readBin(con, what="double", 1, size=4, endian="little") ##SYSTEMID SYSTEMID[id_row] <- readBin(con, what="integer", 1, size=2, endian="little") ##Unfortunately an inconsitent BIN-file structure forces a differenciation ... if(temp.VERSION == 03){ ##RESERVED temp.RESERVED1 <- readBin(con, what="raw", 36, size=1, endian="little") ##ONTIME, OFFTIME temp <- readBin(con, what="double", 2, size=4, endian="little") ONTIME[id_row] <- temp[1] OFFTIME[id_row] <- temp[2] ##Enable flags #GateEnabled for v 06 GATE_ENABLED[id_row] <- as.numeric(readBin(con, what="raw", 1, size=1, endian="little")) ##ONGATEDELAY, OFFGATEDELAY temp <- readBin(con, what="double", 2, size=4, endian="little") GATE_START[id_row] <- temp[1] GATE_STOP[id_row] <- temp[2] ##RESERVED temp.RESERVED2<-readBin(con, what="raw", 1, size=1, endian="little") }else{ ##RESERVED temp.RESERVED1<-readBin(con, what="raw", 20, size=1, endian="little") ##CURVENO CURVENO[id_row] <- readBin(con, what="integer", 1, size=2, endian="little") ##TIMETICK TIMETICK[id_row] <- readBin(con, what="double", 1, size=4, endian="little") ##ONTIME, STIMPERIOD temp <- readBin(con, what="integer", 2, size=4, endian="little") ONTIME[id_row] <- temp[1] STIMPERIOD[id_row] <- temp[2] ##GATE_ENABLED GATE_ENABLED[id_row] <- as.numeric(readBin(con, what="raw", 1, size=1, endian="little")) ##ONGATEDELAY, OFFGATEDELAY temp <- readBin(con, what="double", 2, size=4, endian="little") GATE_START[id_row] <- temp[1] GATE_STOP[id_row] <- temp[2] ##PTENABLED ##RESERVED temp <- readBin(con, what = "raw", 11, size = 1, endian = "little") PTENABLED[id_row] <- as.numeric(temp[1]) temp.RESERVED2 <- temp[2:11] } } ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ## Unrecognised version ## ## We should already have raised a warning that the file is corrupt ## during the first scan of the BIN/BINX file: at that point we have ## set `n.records` so that we would stop reading before encountering ## again the record with unrecognised version number, so here we just ## assert that that is the case stopifnot(temp.VERSION %in% VERSIONS.supported) #DPOINTS if(temp.RECTYPE != 128) { temp.DPOINTS <- readBin(con, what = "integer", temp.NPOINTS, size = 4, endian = "little") } else { temp.DPOINTS <- lapply(1:temp.NPOINTS, function(x) { list( NOFPOINTS = readBin(con, what = "int", 1, size = 4, endian = "little"), USEDFOR = as.logical(readBin(con, what = "raw", 48, size = 1, endian = "little")), SHOWFOR = as.logical(readBin(con, what = "raw", 48, size = 1, endian = "little")), ROICOLOR = readBin(con, what = "integer", 1, size = 4, endian = "little"), X = readBin(con, what = "double", 50, size = 4, endian = "little"), Y = readBin(con, what = "double", 50, size = 4, endian = "little")) }) } ## ---------------------------------------------------------------------- ## close the current record temp.ID <- temp.ID + 1 ID[id_row] <- temp.ID ## we set VERSION only now to its real value: as we've got here, we have ## read the entire record and decided to keep it VERSION[id_row] <- as.numeric(temp.VERSION) ## update the progress bar if (txtProgressBar) { setTxtProgressBar(pb, seek.connection(con, origin = "current")) } results.DATA[[id_row]] <- temp.DPOINTS results.RESERVED[[id_row]][[1]] <- temp.RESERVED1 results.RESERVED[[id_row]][[2]] <- temp.RESERVED2 ## update id row id_row <- id_row + 1 }#endwhile::end loop ##close if (txtProgressBar) { close(pb) } ## generate the final data.table results.METADATA <- data.table( ID, SEL = as.logical(TAG), VERSION, LENGTH, PREVIOUS, NPOINTS, RECTYPE, RUN, SET, POSITION, GRAIN = GRAINNUMBER, GRAINNUMBER, CURVENO, XCOORD, YCOORD, SAMPLE, COMMENT, SYSTEMID, FNAME, USER, TIME, DATE, DTYPE, BL_TIME, BL_UNIT, NORM1, NORM2, NORM3, BG, SHIFT, TAG, LTYPE, LIGHTSOURCE, LPOWER = LIGHTPOWER, LIGHTPOWER, LOW, HIGH, RATE, TEMPERATURE, MEASTEMP, AN_TEMP, AN_TIME, TOLDELAY, TOLON, TOLOFF, IRR_TIME, IRR_TYPE, IRR_UNIT, IRR_DOSERATE, IRR_DOSERATEERR, TIMESINCEIRR, TIMETICK, ONTIME, OFFTIME, STIMPERIOD, GATE_ENABLED, ENABLE_FLAGS = GATE_ENABLED, GATE_START, GATE_STOP, PTENABLED, DTENABLED, DEADTIME, MAXLPOWER, XRF_ACQTIME, XRF_HV, XRF_CURR, XRF_DEADTIMEF, DETECTOR_ID, LOWERFILTER_ID, UPPERFILTER_ID, ENOISEFACTOR, MARKPOS_X1, MARKPOS_Y1, MARKPOS_X2, MARKPOS_Y2, MARKPOS_X3, MARKPOS_Y3, EXTR_START, EXTR_END, SEQUENCE ) ## remove NA values created by skipping records results.METADATA <- stats::na.omit(results.METADATA, cols = "VERSION") ##output if(verbose) message("\t >> ", length(results.DATA), " records read successfully\n") ## Record removals -------------------------------------------------------- ## check if only the specified positions should be returned if(!is.null(position)){ ##check whether the position is valid at all if (results.METADATA[, all(position %in% POSITION)]) { keep.positions <- results.METADATA[, POSITION %in% position] results.METADATA <- results.METADATA[keep.positions == TRUE, ] results.DATA <- results.DATA[keep.positions] results.RESERVED <- results.RESERVED[keep.positions] if (verbose) { message("[read_BIN2R()] Kept records matching 'position': ", .collapse(position, quote = FALSE)) } }else{ .throw_warning("At least one position number is not valid, ", "valid position numbers are: ", .collapse(results.METADATA[, unique(POSITION)], quote = FALSE)) } } ##check for position that have no data at all (error during the measurement) if(zero_data.rm){ zero_data.check <- which(lengths(results.DATA) == 0) ##remove records if there is something to remove if (length(zero_data.check) > 0) { results.METADATA <- results.METADATA[-zero_data.check, ] results.DATA[zero_data.check] <- NULL results.RESERVED[zero_data.check] <- NULL .throw_warning("Zero-data records detected and removed: ", .collapse(zero_data.check, quote = FALSE)) } } ## if nothing is left, return an empty object if (nrow(results.METADATA) == 0) { if (verbose) message("[read_BIN2R()] Empty object returned") return(set_Risoe.BINfileData()) } ##check for duplicated entries and remove them if wanted, but only if we have more than 2 records ##this check is skipped for results with a RECTYPE 128, which stems from camera measurements if (n.length >= 2 && length(results.DATA) >= 2 && all(results.METADATA[["RECTYPE"]] != 128)) { duplication.check <- suppressWarnings(which(c( 0, vapply( 2:length(results.DATA), FUN = function(x) { length(results.DATA[[x - 1]]) == length(results.DATA[[x]]) && all(results.DATA[[x - 1]] == results.DATA[[x]]) }, FUN.VALUE = 1 ) ) == 1)) if (length(duplication.check) != 0) { if (duplicated.rm) { ##remove records results.METADATA <- results.METADATA[-duplication.check, ] results.DATA[duplication.check] <- NULL results.RESERVED[duplication.check] <- NULL ##message if(verbose) { message("[read_BIN2R()] Duplicated records detected and removed: ", .collapse(duplication.check, quote = FALSE)) } } else{ .throw_warning("Duplicated records detected: ", .collapse(duplication.check, quote = FALSE), "\n >> You should consider using 'duplicated.rm = TRUE'.") } } } ## recalculate ID as some records may not have been read if n.records ## was set or they were dropped in one of the previous blocks if (results.METADATA[, .N != n.length || max(ID) > n.length]) { results.METADATA[, ID := 1:.N] if (verbose) message("[read_BIN2R()] The record index has been recalculated") } # Convert Translation Matrix Values --------------------------------------- if (!show.raw.values) { ##LIGHTSOURCE CONVERSION results.METADATA[, LIGHTSOURCE := unname(LIGHTSOURCE.lookup[LIGHTSOURCE])] ##LTYPE CONVERSION results.METADATA[, LTYPE := unname(LTYPE.lookup[LTYPE])] ##DTYPE CONVERSION results.METADATA[, DTYPE := unname(DTYPE.lookup[DTYPE])] ## check for oddly set LTYPES, this may happen in old BIN-file versions if (results.METADATA$VERSION[1] == 3) { results.METADATA[LTYPE == "OSL" & LIGHTSOURCE == "IR diodes/IR Laser", LTYPE := "IRSL"] } ##TIME CONVERSION, do not do for odd time formats as this could cause problems during export results.METADATA[nchar(TIME) == 5, TIME := paste0("0", TIME)] results.METADATA[nchar(TIME) == 6, TIME := format(as.POSIXct(TIME, format = "%H%M%S"), "%H:%M:%S")] } ## check for empty BIN-files names ... if so, set the name of the file as BIN-file name ## This can happen if the user uses different equipment if (results.METADATA[, all(is.na(FNAME))]) { results.METADATA[, FNAME := tools::file_path_sans_ext(basename(file))] } ## produce S4 object for output object <- set_Risoe.BINfileData( METADATA = results.METADATA, DATA = results.DATA, .RESERVED = results.RESERVED) ## Fast Forward ----------------------------------------------------------- ## set fastForward to TRUE if arguments to Risoe.BINfileData2RLum.Analysis ## were specified if (!fastForward) { dots <- names(list(...)) args <- dots[dots %in% names(formals(Risoe.BINfileData2RLum.Analysis))[-1]] if (length(args) > 0) { fastForward <- TRUE .throw_warning("Additional arguments specified: ", .collapse(args), ", setting 'fastForward = TRUE'") } } ##return values ##with fast fastForward they will be converted directly to a list of RLum.Analysis objects if(fastForward){ object <- Risoe.BINfileData2RLum.Analysis(object, ...) ##because we expect a list if(!inherits(object, "list")) object <- list(object) } return(object) } Luminescence/R/calc_gSGC.R0000644000176200001440000003027414762554470015001 0ustar liggesusers#' @title Calculate De value based on the gSGC by Li et al., 2015 #' #' @description Function returns De value and De value error using the global standardised growth #' curve (gSGC) assumption proposed by Li et al., 2015 for OSL dating of sedimentary quartz #' #' @details #' The error of the De value is determined using a Monte Carlo simulation approach. #' Solving of the equation is realised using [uniroot]. #' Large values for `n.MC` will significantly increase the computation time. #' #' #' @param data [data.frame] (**required**): #' input data of providing the following columns: `LnTn`, `LnTn.error`, `Lr1Tr1`, `Lr1Tr1.error`, `Dr1` #' **Note:** column names are not required. The function expects the input data in the given order #' #' @param gSGC.type [character] (*with default*): #' define the function parameters that #' should be used for the iteration procedure: Li et al., 2015 (Table 2) #' presented function parameters for two dose ranges: `"0-450"` and `"0-250"` #' #' @param gSGC.parameters [list] (*optional*): #' option to provide own function parameters used for fitting as named list. #' Nomenclature follows Li et al., 2015, i.e. `list(A, A.error, D0, D0.error, #' c, c.error, Y0, Y0.error, range)`, where `range` is defines the interval #' where the function is considered as valid, e.g. `range = c(0,250)`.\cr #' Using this option overwrites the default parameter list of the gSGC, meaning the argument #' `gSGC.type` will be without effect #' #' @param n.MC [integer] (*with default*): #' number of Monte Carlo simulation runs for error estimation, see details. #' #' @param verbose [logical] (*with default*): #' enable/disable output to the terminal. #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param ... parameters will be passed to the plot output #' #' @return Returns an S4 object of type [RLum.Results-class]. #' #' **`@data`**\cr #' `$ De.value` ([data.frame]) \cr #' `.. $ De` \cr #' `.. $ De.error` \cr #' `.. $ Eta` \cr #' `$ De.MC` ([list]) contains the matrices from the error estimation.\cr #' `$ uniroot` ([list]) contains the [uniroot] outputs of the De estimations\cr #' #' **`@info`**\cr #' `$ call`` ([call]) the original function call #' #' #' @section Function version: 0.1.1 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Results-class], [get_RLum], [uniroot] #' #' @references #' Li, B., Roberts, R.G., Jacobs, Z., Li, S.-H., 2015. Potential of establishing #' a 'global standardised growth curve' (gSGC) for optical dating of quartz from sediments. #' Quaternary Geochronology 27, 94-104. doi:10.1016/j.quageo.2015.02.011 #' #' @keywords datagen #' #' @examples #' #' results <- calc_gSGC(data = data.frame( #' LnTn = 2.361, LnTn.error = 0.087, #' Lr1Tr1 = 2.744, Lr1Tr1.error = 0.091, #' Dr1 = 34.4)) #' #' get_RLum(results, data.object = "De") #' #' @md #' @export calc_gSGC<- function( data, gSGC.type = "0-250", gSGC.parameters, n.MC = 100, verbose = TRUE, plot = TRUE, ... ) { .set_function_name("calc_gSGC") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(data, "data.frame") if (ncol(data) != 5) .throw_error("'data' is expected to have 5 columns") gSGC.type <- .validate_args(gSGC.type, c("0-250", "0-450")) ##rename columns for consistency reasons colnames(data) <- c('LnTn', 'LnTn.error', 'Lr1Tr1', 'Lr1Tr1.error', 'Dr1') ## ensure errors are not negative data$LnTn.error <- abs(data$LnTn.error) data$Lr1Tr1.error <- abs(data$Lr1Tr1.error) ##============================================================================## ##DEFINE FUNCTION ##============================================================================## ##define function, nomenclature according to publication that should be solved f <- function(x,A,D0,c,Y0,Dr1,Lr1Tr1,LnTn) { (((A * (1 - exp( - Dr1 / D0))) + c * Dr1 + Y0)/Lr1Tr1) - (((A * (1 - exp( - x/D0))) + c * x + Y0)/LnTn) } ##set general parameters if (!missing(gSGC.parameters)) { A <- gSGC.parameters$A A.error <- gSGC.parameters$A.error D0 <- gSGC.parameters$D0 D0.error <- gSGC.parameters$D0.error c <- gSGC.parameters$c c.error <- gSGC.parameters$c.error Y0 <- gSGC.parameters$Y0 Y0.error <- gSGC.parameters$Y0.error range <- gSGC.parameters$range }else{ if (gSGC.type == "0-450") { A <- 0.723 A.error <- 0.014 D0 <- 65.1 D0.error <- 0.9 c <- 0.001784 c.error <- 0.000016 Y0 <- 0.009159 Y0.error <- 0.004795 range <- c(0.1,250) }else if (gSGC.type == "0-250") { A <- 0.787 A.error <- 0.051 D0 <- 73.9 D0.error <- 2.2 c <- 0.001539 c.error <- 0.000068 Y0 <- 0.01791 Y0.error <- 0.00490 range <- c(0.1,250) } } ##Define size of output objects output.data <- data.table::data.table( DE = numeric(length = nrow(data)), DE.ERROR = numeric(length = nrow(data)), ETA = numeric(length = nrow(data)) ) ##set list for De.MC output.De.MC <- vector("list", nrow(data)) ##set list for uniroot output.uniroot <- vector("list", nrow(data)) ##============================================================================## ##CALCULATION ##============================================================================## for(i in 1:nrow(data)){ Lr1Tr1 <- data[i, "Lr1Tr1"] Lr1Tr1.error <- data[i,"Lr1Tr1.error"] Dr1 <- data[i,"Dr1"] Dr1.error <- data[i,"Dr1.error"] LnTn <- data[i,"LnTn"] LnTn.error <- data[i,"LnTn.error"] ##calculate mean value temp <- try(uniroot( f, interval = c(0.1,450), tol = 0.001, A = A, D0 = D0, c = c, Y0 = Y0, Dr1 = Dr1, Lr1Tr1 = Lr1Tr1, LnTn = LnTn, extendInt = 'yes', check.conv = TRUE, maxiter = 1000 ), silent = TRUE) if(!inherits(temp, "try-error")){ ##get De De <- temp$root ##calculate Eta, which is the normalisation factor Eta <- ((A * (1 - exp( - Dr1 / D0))) + c * Dr1 + Y0)/Lr1Tr1 ##--------------------------------------------------------------------------## ##Monte Carlo simulation for error estimation ##set matrix temp.MC.matrix <- matrix(nrow = n.MC, ncol = 8) ##fill matrix temp.MC.matrix[,1:6] <- matrix(rnorm( n.MC * 6, mean = c(LnTn, Lr1Tr1, A, D0, c, Y0), sd = c(LnTn.error, Lr1Tr1.error, A.error, D0.error, c.error, Y0.error) ), ncol = 6, byrow = TRUE) ##run uniroot to get the De temp.MC.matrix[,7] <- vapply(X = 1:n.MC, FUN = function(x){ uniroot(f, interval = c(0.1,450), tol = 0.001, A = temp.MC.matrix[x,3], D0 = temp.MC.matrix[x,4], c = temp.MC.matrix[x,5], Y0 = temp.MC.matrix[x,6], Dr1 = Dr1, Lr1Tr1 =temp.MC.matrix[x,2], LnTn = temp.MC.matrix[x,1], check.conv = TRUE, extendInt = 'yes', maxiter = 1000 )$root }, FUN.VALUE = vector(mode = "numeric", length = 1)) ##calculate also the normalisation factor temp.MC.matrix[,8] <- (temp.MC.matrix[,3] * (1 - exp( - Dr1 / temp.MC.matrix[,4])) + temp.MC.matrix[,5] * Dr1 + temp.MC.matrix[,6])/temp.MC.matrix[,2] ##re-name matrix colnames(temp.MC.matrix) <- c("LnTn","Lr1Tr1","A","D0","c","Y0","De","Eta") ##get De error as SD De.error <- sd(temp.MC.matrix[,7]) }else{ .throw_warning("No solution was found") De <- NA Eta <- NA De.error <- NA ##set matrix temp.MC.matrix <- matrix(nrow = n.MC, ncol = 8) ##fill matrix temp.MC.matrix[,1:6] <- matrix(rnorm( n.MC * 6, mean = c(LnTn, Lr1Tr1, A, D0, c, Y0), sd = c(LnTn.error, Lr1Tr1.error, A.error, D0.error, c.error, Y0.error) ), ncol = 6, byrow = TRUE) } # Plot output ------------------------------------------------------------- if (plot) { ##set plot settings plot.settings <- list( main = "gSGC and resulting De", xlab = "Dose [a.u.]", ylab = expression(paste("Re-norm. ", L[x]/T[x])), xlim = NULL, ylim = NULL, lwd = 1, lty = 1, pch = 21, col = "red", grid = expression(nx = 10, ny = 10), mtext = "" ) plot.settings <- modifyList(plot.settings, list(...)) ##graphical feedback x <- NA curve( A * (1 - exp(-x / D0)) + c * x + Y0, from = 0, to = 500, xlab = plot.settings$xlab, ylab = plot.settings$ylab, main = plot.settings$main, xlim = plot.settings$xlim, ylim = plot.settings$ylim, lwd = plot.settings$lwd, lty = plot.settings$lty ) mtext(side = 3, plot.settings$mtext) if(!is.null(plot.settings$grid)){ graphics::grid(eval(plot.settings$grid)) } if(!inherits(temp, "try-error")){ if(temp$root < 450 & temp$root > 0){ points(temp$root,Eta*LnTn, col = plot.settings$col, pch = plot.settings$pch) segments(De - De.error,Eta * LnTn, De + De.error,Eta * LnTn) hist <- hist( temp.MC.matrix[, 7], freq = FALSE, add = TRUE, col = rgb(0, 0, 0, 0.2), border = rgb(0, 0, 0, 0.5) ) lines(hist$mids,hist$density) }else{ if(temp$root < 450){ shape::Arrows( x0 = 450, y0 = par()$usr[4] - 0.2, x1 = 500, y1 = par()$usr[4] - 0.2, arr.type = "triangle", col = "red" ) }else{ shape::Arrows( x0 = 50, y0 = par()$usr[4] - 0.2, x1 = 0, y1 = par()$usr[4] - 0.2, arr.type = "triangle", col = "red" ) } mtext(side = 1, text = "Out of bounds!", col = "red") } }else{ mtext(side = 1, text = "No solution found!", col = "red") } } # Terminal output --------------------------------------------------------- if (verbose) { cat("\n[calc_gSGC()]") cat("\n Corresponding De based on the gSGC\n") cat(paste0("\n"," Ln/Tn:\t\t ",LnTn," \u00B1 ", LnTn.error,"\n")) cat(paste0(""," Lr1/Tr1:\t ",Lr1Tr1," \u00B1 ", Lr1Tr1.error,"\n")) cat(paste0(""," Dr1:\t\t ",Dr1,"\n")) cat(paste0(""," f(D):\t\t ",A," * (1 - exp(-D /",D0,")) + c * D + ",Y0,"\n")) cat(paste0(""," n.MC:\t\t ",n.MC,"\n")) cat(paste0(" ------------------------------ \n")) cat(paste0(" De:\t\t",round(De,digits = 2)," \u00B1 ",round(De.error,digits = 2),"\n")) cat(paste0(" ------------------------------ \n")) } ##============================================================================## ##CREATE OUTPUT OBJECTS ##============================================================================## ##needed for data.table temp.De <- De temp.De.error <- De.error temp.Eta <- Eta ##replace values in the data.table with values output.data[i, `:=` (DE = temp.De, DE.ERROR = temp.De.error, ETA = temp.Eta)] rm(list = c('temp.De', 'temp.De.error', 'temp.Eta')) ##matrix - to prevent memory overload limit output if(n.MC * nrow(data) > 1e6){ # nocov start if(i == 1){ output.De.MC[[i]] <- temp.MC.matrix }else{ output.De.MC[[i]] <- NA } .throw_warning("Only the first MC matrix is returned to prevent ", "memory overload") # nocov end }else{ output.De.MC[[i]] <- temp.MC.matrix } output.uniroot[[i]] <- temp }##end for loop ##============================================================================## ##OUTPUT RLUM ##============================================================================## temp.RLum.Results <- set_RLum( class = "RLum.Results", data = list( De = as.data.frame(output.data), De.MC = output.De.MC, uniroot = output.uniroot ), info = list( call = sys.call()) ) return(temp.RLum.Results) } Luminescence/R/apply_Crosstalk.R0000644000176200001440000000711014762554470016377 0ustar liggesusers#' @title Apply crosstalk #' #' @description Add crosstalk, evenly spread in rook (top-right-bottom-left) #' directions, to all grain whole locations on one measurement discs #' (=on position on a measurement wheel in a reader). An #' added crosstalk value of as example 0.2 means that 0.2 of the value of #' the central grain is added to each grain in the rook directions. This is an additive #' action: the central grain itself is not affected by this operation (but will on its #' turn increase because of crosstalk from its neighbours). #' This function is used for simulations: can this added crosstalk be detected? #' #' @details If an element in `object` is `NA`, it is internally set to 0, so it will not #' be added. #' #' @param object [RLum.Results-class] or [numeric] (**required**): containing #' a numerical vector of length 100, representing one or more measurement #' discs ("positions") in a reader. #' Each element in the vector represents one grain hole location on a disc. #' #' @param n_crosstalk [numeric] (*with default*): A single number quantifying the added #' crosstalk. Defaults for testing purposes to 0.2. Can be any number, even negative, #' but for realistic simulations we suggest something between 0 and 0.25. #' #' @keywords manip #' #' @return A vector of size 100, with the value at each grain hole location including simulated crosstalk. #' #' @author Anna-Maartje de Boer, Luc Steinbuch, Wageningen University & Research, 2025 #' #' @references #' de Boer, A-M., Steinbuch, L., Heuvelink, G.B.M., Wallinga, J., 2025. #' A novel tool to assess crosstalk in single-grain luminescence detection. #' Submitted. #' #' @examples #' ## Create artificial disc observation #' observations <- set_RLum(class = "RLum.Results", #' data = list(vn_values = rep(x = c(1,2), each = 50)) #' ) #' hist(get_RLum(object = observations)) #' #' ## Add crosstalk (with default set to 0.2), and visualize the difference #' ## in the resulting histogram. #' observations_with_simulated_crosstalk <- apply_Crosstalk(observations) #' hist(observations_with_simulated_crosstalk) #' #' @md #' @export apply_Crosstalk <- function(object, n_crosstalk = 0.2 ) { .set_function_name("apply_Crosstalk") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(object, c("RLum.Results", "numeric", "integer")) if (is.numeric(object)){ vn_values <- object } else { vn_values <- get_RLum(object) } .validate_length(vn_values, 100, name = "'object'") .validate_class(n_crosstalk, c("numeric")) .validate_length(n_crosstalk, 1) vb_na_s <- is.na(vn_values) vn_values[vb_na_s] <- 0 ## Prepare multiplication matrix ----------------------- ## Note: the physical appearance of a measurement disc, ## 10x10 grains, is hard coded here df_disc_locations <- data.frame(location = 1:100, x = rep(1:10, times = 10), y = rep(1:10, each = 10)) # Calculate matrix with euclidean distances mn_dist <- as.matrix(stats::dist(df_disc_locations[, c("x", "y")])) ## All distances equal to one are subject to crosstalk mn_crosstalk <- ifelse(mn_dist == 1, yes = n_crosstalk, no = 0) ## The diagonal -- all distances equal to zero -- are one diag(mn_crosstalk) <- 1 ## Matrix calculations ----------------------- vn_sig_with_crosstalk <- as.numeric(mn_crosstalk %*% vn_values) ## Assign original NA's to output vn_sig_with_crosstalk[vb_na_s] <- NA return(vn_sig_with_crosstalk) } Luminescence/R/Analyse_SAR.OSLdata.R0000644000176200001440000006453714762554470016634 0ustar liggesusers#' @title Analyse SAR CW-OSL measurements (deprecated) #' #' @description The function analyses SAR CW-OSL curve data and provides a summary of the #' measured data for every position. The output of the function is optimised #' for SAR OSL measurements on quartz. #' #' The function works only for standard SAR protocol measurements introduced by #' Murray and Wintle (2000) with CW-OSL curves. For the calculation of the #' Lx/Tx value the function [calc_OSLLxTxRatio] is used. #' #' **Provided rejection criteria** #' #' `[recyling ratio]`: calculated for every repeated regeneration dose point. #' #' `[recuperation]`: recuperation rate calculated by comparing the `Lx/Tx` values of the zero #' regeneration point with the `Ln/Tn` value (the `Lx/Tx` ratio of the natural #' signal). For methodological background see Aitken and Smith (1988) #' #' `[IRSL/BOSL]`: the integrated counts (`signal.integral`) of an #' IRSL curve are compared to the integrated counts of the first regenerated #' dose point. It is assumed that IRSL curves got the same dose as the first #' regenerated dose point. **Note:** This is not the IR depletion ratio #' described by Duller (2003). #' #' @param input.data [Risoe.BINfileData-class] (**required**): #' input data from a Risø BIN file, produced by the function [read_BIN2R]. #' #' @param signal.integral [vector] (**required**): #' channels used for the signal integral, e.g. `signal.integral=c(1:2)` #' #' @param background.integral [vector] (**required**): #' channels used for the background integral, e.g. `background.integral=c(85:100)` #' #' @param position [vector] (*optional*): #' reader positions that want to be analysed (e.g. `position=c(1:48)`. #' Empty positions are automatically omitted. If no value is given all #' positions are analysed by default. #' #' @param run [vector] (*optional*): #' range of runs used for the analysis. If no value is given the range of the #' runs in the sequence is deduced from the `Risoe.BINfileData` object. #' #' @param set [vector] (*optional*): #' range of sets used for the analysis. If no value is given the range of the #' sets in the sequence is deduced from the `Risoe.BINfileData` object. #' #' @param dtype [character] (*optional*): #' allows to further limit the curves by their data type (`DTYPE`), #' e.g., `dtype = c("Natural", "Dose")` limits the curves to this two data types. #' By default all values are allowed. #' See [Risoe.BINfileData-class] for allowed data types. #' #' @param keep.SEL [logical] (default): #' option allowing to use the `SEL` element of the [Risoe.BINfileData-class] manually. #' **NOTE:** In this case any limitation provided by `run`, `set` and `dtype` #' are ignored! #' #' @param info.measurement [character] (*with default*): #' option to provide information about the measurement on the plot #' output (e.g. name of the BIN or BINX file). #' #' @param output.plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param plot_singlePanels [logical] (*with default*): #' single plot output (`TRUE/FALSE`) to allow for plotting the results in #' single plot windows. Requires `output.plot = TRUE`. #' #' @param cex.global [numeric] (*with default*): #' global scaling factor. #' #' @param ... further arguments that will be passed to the function #' [calc_OSLLxTxRatio] (supported: `background.count.distribution`, `sigmab`, #' `sig0`; e.g., for instrumental error) and can be used to adjust the plot. #' Supported" `mtext`, `log` #' #' @return #' A plot (*optional*) and [list] is returned containing the #' following elements: #' #' \item{LnLxTnTx}{[data.frame] of all calculated Lx/Tx values including signal, background counts and the dose points.} #' \item{RejectionCriteria}{[data.frame] with values that might by used as rejection criteria. NA is produced if no R0 dose point exists.} #' \item{SARParameters}{[data.frame] of additional measurement parameters obtained from the BIN file, e.g. preheat or read temperature #' (not valid for all types of measurements).} #' #' #' @note #' Rejection criteria are calculated but not considered during the #' analysis to discard values. #' #' **The analysis of IRSL data is not directly supported**. You may want to #' consider using the functions [analyse_SAR.CWOSL] or #' [analyse_pIRIRSequence] instead. #' #' **The development of this function will not be continued. We recommend to use the function [analyse_SAR.CWOSL] or instead.** #' #' #' @section Function version: 0.2.18 #' #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr #' Margret C. Fuchs, HZDR, Freiberg (Germany) #' #' @seealso [calc_OSLLxTxRatio], [Risoe.BINfileData-class], [read_BIN2R], [fit_DoseResponseCurve] #' #' @references #' Aitken, M.J. and Smith, B.W., 1988. Optical dating: recuperation #' after bleaching. Quaternary Science Reviews 7, 387-393. #' #' Duller, G., 2003. Distinguishing quartz and feldspar in single grain #' luminescence measurements. Radiation Measurements, 37 (2), 161-165. #' #' Murray, A.S. and Wintle, A.G., 2000. Luminescence dating of quartz using an #' improved single-aliquot regenerative-dose protocol. Radiation Measurements #' 32, 57-73. #' #' @keywords datagen dplot #' #' @examples #' ##load data #' data(ExampleData.BINfileData, envir = environment()) #' #' ##analyse data #' suppressWarnings( # silence the deprecation warning #' output <- Analyse_SAR.OSLdata(input.data = CWOSL.SAR.Data, #' signal.integral = c(1:5), #' background.integral = c(900:1000), #' position = c(1:1), #' output.plot = TRUE) #' ) #' #' ##combine results relevant for further analysis #' output.SAR <- data.frame(Dose = output$LnLxTnTx[[1]]$Dose, #' LxTx = output$LnLxTnTx[[1]]$LxTx, #' LxTx.Error = output$LnLxTnTx[[1]]$LxTx.Error) #' output.SAR #' #' @md #' @export Analyse_SAR.OSLdata <- function( input.data, signal.integral, background.integral, position, run, set, dtype, keep.SEL = FALSE, info.measurement = "unknown measurement", output.plot = FALSE, plot_singlePanels = FALSE, cex.global = 1, ... ) { .Deprecated("analyse_SAR.CWOSL") .set_function_name("Analyse_SAR.OSLdata") on.exit(.unset_function_name(), add = TRUE) ##============================================================================## ##CONFIG ##============================================================================## ##set colors gallery to provide more colors col <- get("col", pos = .LuminescenceEnv) ##============================================================================## ##ERROR HANDLING ##============================================================================## .validate_class(input.data, c("Risoe.BINfileData")) sample.data <- input.data if (missing(signal.integral)) { .throw_error("No signal integral is given") } if (missing(background.integral)) { .throw_error("No background integral is given") } ##set values for run and set if they are not defined by the user if(missing(position)==TRUE){position<-min(sample.data@METADATA[,"POSITION"]):max(sample.data@METADATA[,"POSITION"])} if(missing(run)==TRUE){run<-min(sample.data@METADATA[,"RUN"]):max(sample.data@METADATA[,"RUN"])} if(missing(set)==TRUE){set<-min(sample.data@METADATA[,"SET"]):max(sample.data@METADATA[,"SET"])} if(missing(dtype)){dtype <- c("Natural", "N+dose", "Bleach", "Bleach+dose", "Natural (Bleach)", "N+dose (Bleach)", "Dose", "Background")} # Deal with extra arguments ---------------------------------------------------- ##deal with addition arguments extraArgs <- list(...) background.count.distribution <- if ("background.count.distribution" %in% names(extraArgs)) { extraArgs$background.count.distribution } else { "non-poisson" } sigmab <- if("sigmab" %in% names(extraArgs)) {extraArgs$sigmab} else {NULL} ##============================================================================## ##CALCULATIONS ##============================================================================## ##loop over all positions for (i in position){ ##checking if position is valid if(length(which(sample.data@METADATA["POSITION"]==i))>0){ ##check if OSL curves are part of the data set if(nrow(sample.data@METADATA[sample.data@METADATA[,"LTYPE"]=="OSL",]) == 0){ .throw_error("No 'OSL' curves found") } if(!keep.SEL){ ##select all OSL data depending on the run and set sample.data@METADATA[,"SEL"]<-FALSE sample.data@METADATA[sample.data@METADATA[,"LTYPE"]=="OSL" & sample.data@METADATA[,"RUN"]%in%run==TRUE & sample.data@METADATA[,"SET"]%in%set==TRUE & sample.data@METADATA[,"DTYPE"]%in%dtype==TRUE, "SEL"] <- TRUE } ##grep all OSL curve IDs OSL.curveID<-sample.data@METADATA[sample.data@METADATA["SEL"]==TRUE & sample.data@METADATA["POSITION"]==i,"ID"] ##estimate LnLx.curveID and TnTx.curveID from records LnLx.curveID<-OSL.curveID[seq(1,length(OSL.curveID),by=2)] TnTx.curveID<-OSL.curveID[seq(2,length(OSL.curveID),by=2)] ##Provide Values For Growth Curve Fitting ##(1) get dose information Dose<-sapply(1:length(LnLx.curveID),function(x){ Dose<-sample.data@METADATA[sample.data@METADATA["ID"]==LnLx.curveID[x],"IRR_TIME"] }) ##(2) set LxTx curves LnLxTnTx.curves<-(sapply(1:length(LnLx.curveID),function(x){ ##produce data.frames for Lx/Tx calculations Lx.HIGH<-sample.data@METADATA[sample.data@METADATA[,"ID"]==LnLx.curveID[x],"HIGH"] Lx.NPOINTS<-sample.data@METADATA[sample.data@METADATA[,"ID"]==LnLx.curveID[x],"NPOINTS"] Tx.HIGH<-sample.data@METADATA[sample.data@METADATA[,"ID"]==TnTx.curveID[x],"HIGH"] Tx.NPOINTS<-sample.data@METADATA[sample.data@METADATA[,"ID"]==TnTx.curveID[x],"NPOINTS"] Lx.curve<-data.frame(x=seq(Lx.HIGH/Lx.NPOINTS,Lx.HIGH,by=Lx.HIGH/Lx.NPOINTS), y=unlist(sample.data@DATA[LnLx.curveID[x]])) Tx.curve<-data.frame(x=seq(Tx.HIGH/Tx.NPOINTS,Tx.HIGH,by=Tx.HIGH/Tx.NPOINTS), y=unlist(sample.data@DATA[TnTx.curveID[x]])) return(list(Lx.curve,Tx.curve)) })) ##(3) calculate Lx/Tx ratio LnLxTnTx <- get_RLum( merge_RLum(lapply(1:length(LnLxTnTx.curves[1, ]), function(k) { calc_OSLLxTxRatio( Lx.data = as.data.frame(LnLxTnTx.curves[1, k]), Tx.data = as.data.frame(LnLxTnTx.curves[2, k]), signal.integral = signal.integral, background.integral = background.integral, background.count.distribution = background.count.distribution, sigmab = sigmab ) }))) ##finally combine to data.frame including the record ID for further analysis LnLxTnTx <- cbind(LnLxTnTx,LnLx.curveID,TnTx.curveID) ##(4.1) set info concerning the kind of regeneration points ##generate unique dose id - this are also the # for the generated points temp.DoseID<-c(0:(length(Dose)-1)) temp.DoseName<-paste("R",temp.DoseID,sep="") temp.DoseName<-cbind(Name=temp.DoseName,Dose) ##set natural temp.DoseName[temp.DoseName[,"Name"]=="R0","Name"]<-"Natural" ##set R0 temp.DoseName[temp.DoseName[,"Name"]!="Natural" & temp.DoseName[,"Dose"]==0,"Name"]<-"R0" ##find duplicated doses (including 0 dose - which means the Natural) temp.DoseDuplicated<-duplicated(temp.DoseName[,"Dose"]) ##combine temp.DoseName temp.DoseName<-cbind(temp.DoseName,Repeated=temp.DoseDuplicated) ##correct value for R0 (it is not really repeated) temp.DoseName[temp.DoseName[,"Dose"]==0,"Repeated"]<-FALSE ##(5) Combine all values in a data.frame temp.LnLxTnTx<-data.frame(Name=temp.DoseName[,"Name"], Dose=Dose, Repeated=as.logical(temp.DoseName[,"Repeated"])) LnLxTnTx<-cbind(temp.LnLxTnTx,LnLxTnTx) LnLxTnTx[,"Name"]<-as.character(LnLxTnTx[,"Name"]) ##(6) Calculate Recyling Ratio and Recuperation Rate ##(6.1) ##Calculate Recycling Ratio if(length(LnLxTnTx[LnLxTnTx[,"Repeated"]==TRUE,"Repeated"])>0){ ##identify repeated doses temp.Repeated<-LnLxTnTx[LnLxTnTx[,"Repeated"]==TRUE,c("Name","Dose","LxTx")] ##find corresponding previous dose for the repeated dose temp.Previous<-t(sapply(1:length(temp.Repeated[,1]),function(x){ LnLxTnTx[LnLxTnTx[,"Dose"]==temp.Repeated[x,"Dose"] & LnLxTnTx[,"Repeated"]==FALSE,c("Name","Dose","LxTx")] })) ##convert to data.frame temp.Previous<-as.data.frame(temp.Previous) ##set column names temp.ColNames<-sapply(1:length(temp.Repeated[,1]),function(x){ paste(temp.Repeated[x,"Name"],"/", temp.Previous[temp.Previous[,"Dose"]==temp.Repeated[x,"Dose"],"Name"] ,sep="") }) ##Calculate Recycling Ratio RecyclingRatio<-as.numeric(temp.Repeated[,"LxTx"])/as.numeric(temp.Previous[,"LxTx"]) ##Just transform the matrix and add column names RecyclingRatio<-t(RecyclingRatio) colnames(RecyclingRatio) <- unique(temp.ColNames) }else{RecyclingRatio<-NA} ##(6.2) ##Recuperation Rate if("R0" %in% LnLxTnTx[,"Name"]==TRUE){ Recuperation<-round(LnLxTnTx[LnLxTnTx[,"Name"]=="R0","LxTx"]/LnLxTnTx[LnLxTnTx[,"Name"]=="Natural","LxTx"],digits=4) }else{Recuperation<-NA} ##(6.3) IRSL ##Print IRSL Curves if IRSL curve is set sample.data@METADATA[,"SEL"]<-FALSE sample.data@METADATA[sample.data@METADATA["LTYPE"]=="IRSL" & sample.data@METADATA[,"RUN"]%in%run==TRUE & sample.data@METADATA[,"SET"]%in%set==TRUE,"SEL"]<-TRUE ##get IRSL curve ID & ID for Reg1 again IRSL.curveID<-sample.data@METADATA[sample.data@METADATA["SEL"]==TRUE & sample.data@METADATA["POSITION"]==i,"ID"] ##if no IRSL curve the length of the object is 0 IRSL_BOSL <- NA if(length(IRSL.curveID)>0){ ##chose an IRSL curve with a dose of the first regeneration point Reg1again.curveID<-LnLxTnTx[LnLxTnTx[,"Repeated"]==TRUE & LnLxTnTx[,"Dose"]==LnLxTnTx[2,"Dose"],"LnLx.curveID"] if(length(Reg1again.curveID)>0){ ##BOSL/IRSL IRSL_BOSL<-round(sum(unlist(sample.data@DATA[IRSL.curveID])[signal.integral]) /sum(unlist(sample.data@DATA[Reg1again.curveID])[signal.integral]),digits=4) } } ##Combine the two values if(exists("RejectionCriteria")==FALSE){ RejectionCriteria <- NULL } RejectionCriteria <- rbind(RejectionCriteria, cbind(RecyclingRatio, Recuperation,IRSL_BOSL)) ##============================================================================## ##PLOTTING ##============================================================================## if(output.plot){ ## deprecated argument if ("output.plot.single" %in% names(list(...))) { plot_singlePanels <- list(...)$output.plot.single .throw_warning("'output.plot.single' is deprecated, use ", "'plot_singlePanels' instead") } ##set plot settings plot.settings <- list( mtext = sample.data@METADATA[sample.data@METADATA[,"ID"]==LnLx.curveID[1],"SAMPLE"], log = "" ) ##modify arguments plot.settings <- modifyList(plot.settings, list(...)) if (!plot_singlePanels) { layout(matrix(c(1,2,1,2,3,4,3,5),4,2,byrow=TRUE)) } ##warning if number of curves exceed colour values if(length(col)0){ ##to ensure that the right TL curves are used the run and set number of the LnLx and TnTx curves are used LnLx.SET<-sapply(LnLx.curveID,function(x){sample.data@METADATA[sample.data@METADATA["ID"]==x,"SET"]}) LnLx.RUN<-sapply(LnLx.curveID,function(x){sample.data@METADATA[sample.data@METADATA["ID"]==x,"RUN"]}) TnTx.SET<-sapply(TnTx.curveID,function(x){sample.data@METADATA[sample.data@METADATA["ID"]==x,"SET"]}) TnTx.RUN<-sapply(TnTx.curveID,function(x){sample.data@METADATA[sample.data@METADATA["ID"]==x,"RUN"]}) ##get TL curve IDs in general considering the constraints TL.curveID<-sapply(1:length(TnTx.curveID),function(x){results<- sample.data@METADATA[sample.data@METADATA["SEL"]==TRUE & sample.data@METADATA["POSITION"]==i & sample.data@METADATA["SET"]>=LnLx.SET[x] & sample.data@METADATA["RUN"]>=LnLx.RUN[x] & sample.data@METADATA["SET"]<=TnTx.SET[x] & sample.data@METADATA["RUN"]<=TnTx.RUN[x],"ID"]}) ##get maximum value of TL curves TL.curveMax<-max(unlist(sample.data@DATA[TL.curveID])) ##get channel resolution (it should be the same for all values) HIGH<-unique(sample.data@METADATA[sample.data@METADATA["ID"]==TL.curveID[1],"HIGH"]) NPOINTS<-unique(sample.data@METADATA[sample.data@METADATA["ID"]==TL.curveID[1],"NPOINTS"]) xaxt.values<-seq(HIGH/NPOINTS,HIGH,by=HIGH/NPOINTS) ##get heating rate RATE<-unique(sample.data@METADATA[sample.data@METADATA["ID"]==TL.curveID[1],"RATE"]) ##open plot area for TL curves plot(NA,NA, xlab="T [\u00B0C]", ylab=paste("TL [cts/",HIGH/NPOINTS," \u00B0C]",sep=""), xlim=c(HIGH/NPOINTS,HIGH), ylim=c(1,TL.curveMax), main="Cutheat - TL curves", sub=paste("(",RATE," K/s)",sep=""), log=if(plot.settings$log=="y" | plot.settings$log=="xy"){"y"}else{""} ) ##plot curves and get legend values sapply(1:length(TL.curveID),function(x){ yaxt.values<-unlist(sample.data@DATA[TL.curveID[x]]) lines(xaxt.values,yaxt.values,col=col[x]) }) ##plot legend legend("topleft",as.character(LnLxTnTx$Name),lty=c(rep(1,length(TL.curveID))), cex=0.8*cex.global,col=col, bg="white", bty="n") ##sample name mtext(side=3,plot.settings$mtext,cex=0.7*cex.global) }else{ plot(NA,NA,xlim=c(0,100),ylim=c(0,100), main="Cutheat - TL curves") text(50,50,"no cutheat as TL curve detected") } ##======================================================================## ##Print IRSL Curves if IRSL curve is set if(is.na(IRSL_BOSL) == FALSE){ ##get channel resolution (it should be the same for all values) HIGH<-unique(sample.data@METADATA[sample.data@METADATA["ID"]==IRSL.curveID ,"HIGH"]) NPOINTS<-unique(sample.data@METADATA[sample.data@METADATA["ID"]==IRSL.curveID ,"NPOINTS"]) xaxt.values<-seq(HIGH/NPOINTS,HIGH,by=HIGH/NPOINTS) ##open plot IRSL curve plot(NA,NA, xlab="Time [s]", ylab=paste("OSL and IRSL [cts/",HIGH/NPOINTS," s]",sep=""), xlim=c(0,HIGH), ylim=c(0,max(unlist(sample.data@DATA[Reg1again.curveID]))), main="IRSLT" ) ##show integral limits abline(v=xaxt.values[min(signal.integral)], lty=2, col="gray") abline(v=xaxt.values[max(signal.integral)], lty=2, col="gray") ##print(length(sample.data@DATA[IRSL.curveID])) lines(xaxt.values,unlist(sample.data@DATA[IRSL.curveID]),col="red") lines(xaxt.values,unlist(sample.data@DATA[Reg1again.curveID[1]]),col="blue") ##legend legend("topright",c("R1 again","IRSL"),lty=c(1,1),col=c("blue","red"), bty="n") mtext(side=3,paste("IRSL/BOSL = ",IRSL_BOSL*100,"%",sep=""), cex=.8*cex.global ) } if(((is.na(IRSL_BOSL)==TRUE) & length(IRSL.curveID)>0) | ((is.na(IRSL_BOSL)==FALSE) & length(IRSL.curveID)>0)){ ##plot only IRSL curve plot(xaxt.values,unlist(sample.data@DATA[IRSL.curveID]), xlab="Time [s]", ylab=paste("IRSL [cts/",HIGH/NPOINTS," s]",sep=""), xlim=c(0,10), ylim=c(0,max(unlist(sample.data@DATA[IRSL.curveID]))), main="IRSL curve (10 s)", col="red", type="l" ) }else{ plot(NA,NA,xlim=c(0,10), ylim=c(0,10), main="IRSL curve") text(5,5,"no IRSL curve detected") } ##========================================================================= ##Plot header if (plot_singlePanels) { mtext(side=3,paste("ALQ Pos. ",i,sep="")) }else{ mtext(side=3,paste("ALQ Pos. ",i,sep=""),outer=TRUE,line=-2.5) } ##Plot footer mtext(side=4,info.measurement,outer=TRUE,line=-1.5,cex=0.6*cex.global, col="blue") ##output on terminal for plot writeLines(paste("\n[Analyse_SAR.OSLdata()] >> Figure for position ",i," produced.",sep="")) ##reset mfrow par(mfrow=c(1,1)) }#endif for output.plot ##preprate output of values ##============================================================================== ##Add LnLxTnTx values to the list if(exists("LnLxTnTx_List")==FALSE){LnLxTnTx_List<-list()} LnLxTnTx_List[[i]]<-LnLxTnTx rm(LnLxTnTx) }else{writeLines(paste("[Analyse_SAR.OSLdata()] >> Position ",i," is not valid and has been omitted!",sep=""))} #end if position checking }#end for loop ##============================================================================## ##OUTPUT OF FUNCTION ##============================================================================## ##get further information from the position used ##this is what you get from the Risoe file readTemp<-unique(sample.data@METADATA[sample.data@METADATA[,"POSITION"]==min(position) & sample.data@METADATA[,"LTYPE"]!="TL","TEMPERATURE"]) cutheat<-unique(sample.data@METADATA[sample.data@METADATA[,"POSITION"]==min(position) & sample.data@METADATA[,"LTYPE"]=="TL","HIGH"]) if(length(cutheat)==0){cutheat=NA} systemID<-unique(sample.data@METADATA[sample.data@METADATA[,"POSITION"]==min(position),"SYSTEMID"]) SARParameters<-data.frame(readTemp=readTemp,cutheat=cutheat,systemID=systemID) return(list(LnLxTnTx=LnLxTnTx_List, RejectionCriteria=RejectionCriteria, SARParameters=SARParameters)) } Luminescence/R/calc_CobbleDoseRate.R0000644000176200001440000004245014762554470017032 0ustar liggesusers#'@title Calculate dose rate of slices in a spherical cobble #' #'@description #' #'Calculates the dose rate profile through the cobble based on Riedesel and Autzen (2020). #' #'Corrects the beta dose rate in the cobble for the grain size following results #'of Guérin et al. (2012). Sediment beta and gamma dose rates are corrected #'for the water content of the sediment using the correction factors of Aitken (1985). #'Water content in the cobble is assumed to be 0. #' #' #'@details #' #'**The input table layout** #' #'\tabular{lll}{ #'COLUMN \tab DATA TYPE \tab DESCRIPTION\cr #'`Distance` \tab `numeric` \tab distance from the surface of the cobble to the top of each rock slice in mm. The distance for each slice will be listed in this column\cr #'`DistanceError` \tab `numeric` \tab Error on the distance in mm\cr #'`Thickness` \tab `numeric` \tab Thickness of each slice in mm\cr #'`TicknessError` \tab `numeric` \tab uncertainty of the thickness in mm.\cr #'`Mineral` \tab `character` \tab `'FS'` for feldspar, `'Q'` for quartz, depending which mineral in the cobble is used for dating\cr #'`Cobble_K` \tab `numeric` \tab K nuclide content in % of the bulk cobble\cr #'`Cobble_K_SE` \tab `numeric` \tab error on K nuclide content in % of the bulk cobble\cr #'`Cobble_Th` \tab `numeric` \tab Th nuclide content in ppm of the bulk cobble\cr #'`Cobble_Th_SE` \tab `numeric` \tab error on Th nuclide content in ppm of the bulk cobble\cr #'`Cobble_U` \tab `numeric` \tab U nuclide content in ppm of the bulk cobble\cr #'`CobbleU_SE` \tab `numeric` \tab error on U nuclide content in ppm of the bulk cobble\cr #'`GrainSize` \tab `numeric` \tab average grain size in µm of the grains used for dating\cr #'`Density` \tab `numeric` \tab Density of the cobble. Default is 2.7 g cm^-3\cr #'`CobbleDiameter` \tab `numeric` \tab Diameter of the cobble in cm.\cr #'`Sed_K` \tab `numeric` \tab K nuclide content in % of the sediment matrix\cr #'`Sed_K_SE` \tab `numeric` \tab error on K nuclide content in % of the sediment matrix\cr #'`Sed_Th` \tab `numeric` \tab Th nuclide content in ppm of the sediment matrix\cr #'`Sed_Th_SE` \tab `numeric` \tab error on Th nuclide content in ppm of the sediment matrix\cr #'`Sed_U` \tab `numeric` \tab U nuclide content in ppm of the sediment matrix\cr #'`Sed_U_SE` \tab `numeric` \tab error on U nuclide content in ppm of the sediment matrix\cr #'`GrainSize` \tab `numeric` \tab average grain size of the sediment matrix\cr #'`WaterContent` \tab `numeric` \tab mean water content of the sediment matrix in %\cr #'`WaterContent_SE` \tab `numeric` \tab relative error on water content #'} #' #'**Water content** #'The water content provided by the user should be calculated according to: #' #'\deqn{(Wet\_weight - Dry\_weight) / Dry\_weight * 100} #' #'@param input [data.frame] (**required**): A table containing all relevant information #'for each individual layer. For the table layout see details. #' #' @param conversion [character] (*with default*): dose rate conversion factors #' to use, see [BaseDataSet.ConversionFactors] for the accepted values. #' #'@references #'Riedesel, S., Autzen, M., 2020. Beta and gamma dose rate attenuation in rocks and sediment. #'Radiation Measurements 133, 106295. #' #'@section Function version: 0.1.0 #' #'@author Svenja Riedesel, Aberystwyth University (United Kingdom) \cr #'Martin Autzen, DTU NUTECH Center for Nuclear Technologies (Denmark) #' #'@return The function returns an [RLum.Results-class] object for which the first element #'is a [matrix] (`DataIndividual`) that gives the dose rate results for each slice #'for each decay chain individually, for both, the cobble dose rate and the sediment #'dose rate. The second element is also a [matrix] (`DataComponent`) that gives #'the total beta and gamma-dose rates for the cobble and the adjacent sediment #'for each slice of the cobble. #' #'@keywords datagen #' #'@seealso [convert_Concentration2DoseRate] #' #'@examples #'## load example data #'data("ExampleData.CobbleData", envir = environment()) #' #'## run function #'calc_CobbleDoseRate(ExampleData.CobbleData) #' #'@md #'@export calc_CobbleDoseRate <- function(input,conversion = "Guerinetal2011"){ .set_function_name("calc_CobbleDoseRate") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(input, "data.frame") .validate_not_empty(input) if ((max(input[,1])>input$CobbleDiameter[1]*10) || ((max(input[,1]) + input[length(input[,1]),3]) > input$CobbleDiameter[1]*10)) .throw_error("Slices outside of cobble: please ensure your distances ", "are in mm and diameter is in cm") ## conversion factors: we do not use BaseDataSet.ConversionFactors directly ## as it is in alphabetical level, but we want to have 'Guerinetal2011' ## in first position, as that is our default value BaseDataSet.ConversionFactors <- NULL load(system.file("data", "BaseDataSet.ConversionFactors.rda", package = "Luminescence")) valid_conversion_factors <- c("Guerinetal2011", "Cresswelletal2018", "AdamiecAitken1998", "Liritzisetal2013") stopifnot(all(names(BaseDataSet.ConversionFactors) %in% valid_conversion_factors)) conversion <- .validate_args(conversion, valid_conversion_factors) # Calculate Dose Rate ----------------------------------------------------- SedDoseData <- matrix(data = NA, nrow = 1, ncol = 10) CobbleDoseData <- matrix(data = 0, nrow = 1, ncol = 10) CobbleDoseData <- input[1,5:12] CobbleDoseData <- cbind(CobbleDoseData,0,0) SedDoseData <- cbind(input[1,5],input[1,15:20],input[1,12],input[1,23:24]) CobbleDoseRate <- get_RLum(convert_Concentration2DoseRate( input = CobbleDoseData, conversion = conversion)) SedDoseRate <- get_RLum( convert_Concentration2DoseRate(input = SedDoseData, conversion = conversion)) ## Distance should be from the surface of the rock to the top of the slice. Distances and thicknesses are in mm N <- length(input$Distance) Diameter <- input$CobbleDiameter[1] ### Calculate gamma attenuation coefficient for the cobbles internal dose rate if (Diameter<25){ CobbleGammaAtt <- (0.55 * exp(-0.45 * Diameter) + 0.09 * exp(-0.06 * Diameter)) * 10 }else { CobbleGammaAtt <- 0.02 } ## Scale the density and infinite matrix gamma dose rates ---- Scaling <- input$Density[1] / 2.7 GammaEdge <- 0.5 * (1 - exp(-0.039 * Diameter)) GammaCentre <- 2 * GammaEdge DiameterSeq <- seq(0, Diameter * 10, by = 0.01) #Converts diameter into integer of 10 um ### Create matrices for use ---- Temp <- matrix(data = NA, nrow = length(DiameterSeq), ncol = 9) DistanceError <- matrix(data = NA, nrow = N, ncol = 8) ThicknessError <- matrix(data = NA, nrow = N, ncol = 8) DataIndividual <- matrix(data = NA, nrow = N, ncol = 25) DataComponent <- matrix(data = NA, nrow = N, ncol = 9) DoseRates <- matrix(data = NA, nrow = 1, ncol = 24) output <- matrix(list(), nrow = 2, ncol = 1) ### Calculate dose rate profiles through the rock ---- t <- Diameter * 10 - DiameterSeq tGamma <- t #Beta and gamma functions for the cobbles own dose rate KBetaCobble <- function(x) (1 - 0.5 * exp(-3.77 * DiameterSeq))+(1-0.5*exp(-3.77*t))-1 ThBetaCobble_short <- function(x) (1 - 0.5 * exp(-5.36 * x * Scaling))+(1-0.5*exp(-5.36*t*Scaling))-1 ThBetaCobble_long <- function(x) (1 - 0.33 * exp(-2.36 * x * Scaling))+(1-0.33*exp(-2.36*t*Scaling))-1 UBetaCobble_short <- function(x) (1 - 0.5 * exp(-4.15 * x * Scaling))+(1-0.5*exp(-4.15*t*Scaling))-1 UBetaCobble_long <- function(x) (1 - 0.33 * exp(-2.36 * x * Scaling))+(1-0.33*exp(-2.36*t*Scaling))-1 GammaCobble <- function(x) { (GammaCentre - GammaEdge * exp(-CobbleGammaAtt * x * Scaling)) + (GammaCentre - GammaEdge * exp(-CobbleGammaAtt * tGamma * Scaling)) - GammaCentre } #Beta and gamma functions for the sediment dose rates into the cobble KBetaSed <- function(x) 2 - (1 - 0.5 * exp(-3.77 * x * Scaling)) - (1 - 0.5 * exp(-3.77 * t * Scaling)) ThBetaSed_short <- function(x) 2 - (1 - 0.5 * exp(-5.36 * x * Scaling)) - (1 - 0.5 * exp(-5.36 * t * Scaling)) ThBetaSed_long <- function(x) 2 - (1 - 0.33 * exp(-2.36 * x * Scaling)) - (1 - 0.33 * exp(-2.36 * t * Scaling)) UBetaSed_short <- function(x) 2 - (1 - 0.5 * exp(-4.15 * x * Scaling)) - (1 - 0.5 * exp(-4.15 * t * Scaling)) UBetaSed_long <- function(x) 2 - (1 - 0.33 * exp(-2.36 * x * Scaling)) - (1 - 0.33 * exp(-2.36 * t * Scaling)) GammaSed <- function(x) 2 - (1 - 0.5 * exp(-0.02 * x * Scaling)) - (1 - 0.5 * exp(-0.02 * tGamma * Scaling)) Temp[, 1] <- DiameterSeq Temp[, 2] <- KBetaCobble(DiameterSeq) Temp[, 3] <- ThBetaCobble_long(DiameterSeq) Temp[, 4] <- UBetaCobble_long(DiameterSeq) Temp[, 5] <- GammaCobble(DiameterSeq) Temp[, 6] <- KBetaSed(DiameterSeq) Temp[, 7] <- ThBetaSed_long(DiameterSeq) Temp[, 8] <- UBetaSed_long(DiameterSeq) Temp[, 9] <- GammaSed(DiameterSeq) TempThCob <- ThBetaCobble_short(DiameterSeq) TempUCob <- UBetaCobble_short(DiameterSeq) TempThSed <- ThBetaSed_short(DiameterSeq) TempUSed <- UBetaSed_short(DiameterSeq) n <- which(DiameterSeq >= (max(DiameterSeq)-0.15))[1] Max <- length(DiameterSeq) ## Create the full matrix based on the short and long beta attenuations Temp[0:16, 3] <- TempThCob[0:16] Temp[n:Max, 3] <- TempThCob[n:Max] Temp[0:16, 7] <- TempThSed[0:16] Temp[n:Max, 7] <- TempThSed[n:Max] Temp[0:16, 4] <- TempUCob[0:16] Temp[n:Max, 4] <- TempUCob[n:Max] Temp[0:16, 8] <- TempUSed[0:16] Temp[n:Max, 8] <- TempUSed[n:Max] colnames(Temp) <- c( "Distance", "KBetaCob", "ThBetaCob", "UBetaCob", "GammaCob", "KBetaSed", "ThBetaSed", "UBetaSed", "GammaSed" ) ### Create data output matrices ---- Distances <- input$Distance / 0.01 + 1 Thicknesses <- input$Thickness / 0.01 MinDistance <- (input$Distance - input$DistanceError) / 0.01 + 1 MaxDistance <- (input$Distance + input$DistanceError) / 0.01 + 1 MinThickness <- (input$Thickness - input$ThicknessError) / 0.01 MaxThickness <- (input$Thickness + input$ThicknessError) / 0.01 for (i in 1:N){ Start <- Distances[i] End <- Start+Thicknesses[i] d_min <- MinDistance[i] d_max <- MaxDistance[i] t_min <- MinThickness[i] t_max <- MaxThickness[i] #Calculate errors ---- #Check if minimum distance from top is less than 0 if (MinDistance[i]<0){ d_min <- 0 } j <- d_min+Thicknesses[i] k <- d_max+Thicknesses[i] for (l in 1:8){ m <- l + 1 if (d_min == Start){ DistanceError[i,l]<- abs( (mean(Temp[d_max:k,m])-mean(Temp[Start:End,m]))/(2*mean(Temp[Start:End,m]))) } else if (k > Max){ DistanceError[i,l] <- abs( (mean(Temp[Start:End,m])-mean(Temp[d_min:j,m]))/(2*mean(Temp[Start:End,m]))) } else { DistanceError[i,l] <- abs( mean((mean(Temp[d_max:k,m])-mean(Temp[Start:End,m])):(mean(Temp[Start:End,m])-mean(Temp[d_min:j,m])))/(2*mean(Temp[Start:End,m]))) } j2 <- Start+t_min k2 <- Start+t_max if (k2 > Max){ ThicknessError[i,l] <- abs( (mean(Temp[Start:End,m])-mean(Temp[Start:j2,m]))/(2*mean(Temp[Start:End,m]))) } else { ThicknessError[i,l] <- abs( mean((mean(Temp[Start:k2,m])-mean(Temp[Start:End,m])):(mean(Temp[Start:End,m])-mean(Temp[Start:j2,m])))/(2*mean(Temp[Start:End,m]))) } } ### Calculate average dose rates ---- DataIndividual[i, 1] <- input[i, 1] # Cobble K Beta DataIndividual[i, 2] <- mean(Temp[Start:End, 2]) * CobbleDoseRate[1, 1] DataIndividual[i, 3] <- DataIndividual[i, 2] * sqrt(DistanceError[i, 1] ^ 2 + ThicknessError[i, 1] ^ 2 + (CobbleDoseRate[1, 2] / CobbleDoseRate[1, 1]) ^ 2) # Cobble Th Beta DataIndividual[i, 4] <- mean(Temp[Start:End, 3]) * CobbleDoseRate[1, 3] DataIndividual[i, 5] <- DataIndividual[i, 4] * sqrt(DistanceError[i, 2] ^ 2 + ThicknessError[i, 2] ^ 2 + (CobbleDoseRate[1, 4] / CobbleDoseRate[1, 3]) ^ 2) # Cobble U Beta DataIndividual[i, 6] <- mean(Temp[Start:End, 4]) * CobbleDoseRate[1, 5] DataIndividual[i, 7] <- DataIndividual[i, 6] * sqrt(DistanceError[i, 3] ^ 2 + ThicknessError[i, 3] ^ 2 + (CobbleDoseRate[1, 6] / CobbleDoseRate[1, 5]) ^ 2) # Cobble K Gamma DataIndividual[i, 8] <- mean(Temp[Start:End, 5]) * CobbleDoseRate[2, 1] DataIndividual[i, 9] <- DataIndividual[i, 8] * sqrt(DistanceError[i, 4] ^ 2 + ThicknessError[i, 4] ^ 2 + (CobbleDoseRate[2, 2] / CobbleDoseRate[2, 1]) ^ 2) # Cobble Th Gamma DataIndividual[i, 10] <- mean(Temp[Start:End, 5]) * CobbleDoseRate[2, 3] DataIndividual[i, 11] <- DataIndividual[i, 10] * sqrt(DistanceError[i, 4] ^ 2 + ThicknessError[i, 4] ^ 2 + (CobbleDoseRate[2, 4] / CobbleDoseRate[2, 3]) ^ 2) # Cobble U Gamma DataIndividual[i, 12] <- mean(Temp[Start:End, 5]) * CobbleDoseRate[2, 5] DataIndividual[i, 13] <- DataIndividual[i, 12] * sqrt(DistanceError[i, 4] ^ 2 + ThicknessError[i, 4] ^ 2 + (CobbleDoseRate[2, 6] / CobbleDoseRate[2, 5]) ^ 2) # Sediment K Beta DataIndividual[i, 14] <- mean(Temp[Start:End, 6]) * SedDoseRate[1, 1] DataIndividual[i, 15] <- DataIndividual[i, 14] * sqrt(DistanceError[i, 5] ^ 2 + ThicknessError[i, 5] ^ 2 + (SedDoseRate[1, 2] / SedDoseRate[1, 1]) ^ 2) # Sediment Th Beta DataIndividual[i, 16] <- mean(Temp[Start:End, 7]) * SedDoseRate[1, 3] DataIndividual[i, 17] <- DataIndividual[i, 16] * sqrt(DistanceError[i, 6] ^ 2 + ThicknessError[i, 6] ^ 2 + (SedDoseRate[1, 4] / SedDoseRate[1, 3]) ^ 2) # Sediment U Beta DataIndividual[i, 18] <- mean(Temp[Start:End, 8]) * SedDoseRate[1, 5] DataIndividual[i, 19] <- DataIndividual[i, 18] * sqrt(DistanceError[i, 7] ^ 2 + ThicknessError[i, 7] ^ 2 + (SedDoseRate[1, 6] / SedDoseRate[1, 5]) ^ 2) # Sediment K Gamma DataIndividual[i, 20] <- mean(Temp[Start:End, 9]) * SedDoseRate[2, 1] DataIndividual[i, 21] <- DataIndividual[i, 20] * sqrt(DistanceError[i, 8] ^ 2 + ThicknessError[i, 8] ^ 2 + (SedDoseRate[2, 2] / SedDoseRate[2, 1]) ^ 2) # Sediment Th Gamma DataIndividual[i, 22] <- mean(Temp[Start:End, 9]) * SedDoseRate[2, 3] DataIndividual[i, 23] <- DataIndividual[i, 22] * sqrt(DistanceError[i, 8] ^ 2 + ThicknessError[i, 8] ^ 2 + (SedDoseRate[2, 4] / SedDoseRate[2, 3]) ^ 2) # Sediment U Gamma DataIndividual[i, 24] <- mean(Temp[Start:End, 9]) * SedDoseRate[2, 5] DataIndividual[i, 25] <- DataIndividual[i, 24] * sqrt(DistanceError[i, 8] ^ 2 + ThicknessError[i, 8] ^ 2 + (SedDoseRate[2, 6] / SedDoseRate[2, 5]) ^ 2) ### Sum data into beta and gamma dose rates from cobble and sediment ---- DataComponent[i, 1] <- input[i, 1] DataComponent[i, 2] <- DataIndividual[i, 2] + DataIndividual[i, 4] + DataIndividual[i, 6] DataComponent[i, 3] <- DataComponent[i,2]*sqrt((DataIndividual[i,3]/DataIndividual[i,2])^2+(DataIndividual[i,5]/DataIndividual[i,4])^2+(DataIndividual[i,7]/DataIndividual[i,6])^2) DataComponent[i, 4] <- DataIndividual[i, 8] + DataIndividual[i, 10] + DataIndividual[i, 12] DataComponent[i, 5] <- DataComponent[i,4]*sqrt((DataIndividual[i,9]/DataIndividual[i,8])^2+(DataIndividual[i,11]/DataIndividual[i,10])^2+(DataIndividual[i,13]/DataIndividual[i,12])^2) DataComponent[i, 6] <- DataIndividual[i, 14] + DataIndividual[i, 16] + DataIndividual[i, 18] DataComponent[i, 7] <- DataComponent[i,6]*sqrt((DataIndividual[i,15]/DataIndividual[i,14])^2+(DataIndividual[i,17]/DataIndividual[i,16])^2+(DataIndividual[i,19]/DataIndividual[i,18])^2) DataComponent[i, 8] <- DataIndividual[i, 20] + DataIndividual[i, 22] + DataIndividual[i, 24] DataComponent[i, 9] <- DataComponent[i,8]*sqrt((DataIndividual[i,21]/DataIndividual[i,20])^2+(DataIndividual[i,23]/DataIndividual[i,22])^2 + (DataIndividual[i,25]/DataIndividual[i,24])^2) } colnames(DataIndividual) <- c( "Distance.", "K Beta cobble", "SE", "Th Beta cobble", "SE", "U Beta cobble", "SE", "K Gamma cobble", "SE", "Th Gamma cobble", "SE", "U Gamma cobble", "SE", "K Beta sed.", "SE", "Th Beta sed.", "SE", "U Beta sed.", "SE", "K Gamma sed.", "SE", "Th Gamma sed.", "SE", "U Gamma sed.", "SE" ) colnames(DataComponent) <- c( "Distance", "Total Cobble Beta", "SE", "Total Cobble Gamma", "SE", "Total Beta Sed.", "SE", "Total Gamma Sed.", "SE" ) DataIndividual[is.na(DataIndividual)] <- 0 DataComponent[is.na(DataComponent)] <- 0 # Return ------------------------------------------------------------------ return( set_RLum( class = "RLum.Results", data = list( DataIndividual = DataIndividual, DataComponent = DataComponent, input = input ), info = list( call = sys.call() ))) } Luminescence/R/calc_FastRatio.R0000644000176200001440000003650414762554470016114 0ustar liggesusers#' @title Calculate the Fast Ratio for CW-OSL curves #' #' @description #' Function to calculate the fast ratio of quartz CW-OSL single grain or single #' aliquot curves after Durcan & Duller (2011). #' #' This function follows the equations of Durcan & Duller (2011). The energy #' required to reduce the fast and medium quartz OSL components to `x` and #' `x2` % respectively using eq. 3 to determine channels L2 and L3 (start #' and end). The fast ratio is then calculated from: \eqn{(L1-L3)/(L2-L3)}. #' #' @param object [RLum.Analysis-class], [RLum.Data.Curve-class] or [data.frame] (**required**): #' x, y data of measured values (time and counts). #' #' @param stimulation.power [numeric] (*with default*): #' Stimulation power in mW/cm² #' #' @param wavelength [numeric] (*with default*): #' Stimulation wavelength in nm #' #' @param sigmaF [numeric] (*with default*): #' Photoionisation cross-section (cm²) of the fast component. #' Default value after Durcan & Duller (2011). #' #' @param sigmaM [numeric] (*with default*): #' Photoionisation cross-section (cm²) of the medium component. #' Default value after Durcan & Duller (2011). #' #' @param Ch_L1 [numeric] (*with default*): #' An integer specifying the channel for L1. #' #' @param Ch_L2 [numeric] (*optional*): #' An integer specifying the channel for L2. #' #' @param Ch_L3 [numeric] (*optional*): #' A vector of length 2 with integer values specifying the start and end #' channels for L3 (e.g., `c(40, 50)`), with the second component greater #' than or equal to the first. #' #' @param x [numeric] (*with default*): #' Percentage of signal remaining from the fast component. #' Used to define the location of L2 and L3 (start). #' #' @param x2 [numeric] (*with default*): #' Percentage of signal remaining from the medium component. #' Used to define the location of L3 (end). #' #' @param dead.channels [numeric] (*with default*): #' Vector of length 2 in the form of `c(x, y)`. #' Channels that do not contain OSL data, i.e. at the start or end of measurement. #' #' @param fitCW.sigma [logical] (*optional*): #' fit CW-OSL curve using [fit_CWCurve] to calculate `sigmaF` and `sigmaM` (**experimental**). #' #' @param fitCW.curve [logical] (*optional*): #' fit CW-OSL curve using [fit_CWCurve] and derive the counts of L2 and L3 #' from the fitted OSL curve (**experimental**). #' #' @param plot [logical] (*with default*): #' enable/disable the plot output. #' #' @param ... available options: `verbose` ([logical]). #' Further arguments passed to [fit_CWCurve]. #' #' @return #' Returns a plot (*optional*) and an S4 object of type [RLum.Results-class]. #' The slot `data` contains a [list] with the following elements: #' #' \item{summary}{[data.frame] summary of all relevant results} #' \item{data}{the original input data} #' \item{fit}{[RLum.Results-class] object if either `fitCW.sigma` or `fitCW.curve` is `TRUE`} #' \item{args}{[list] of used arguments} #' \item{call}{[call] the function call} #' #' @section Function version: 0.1.1 #' #' @author #' Georgina E. King, University of Bern (Switzerland) \cr #' Julie A. Durcan, University of Oxford (United Kingdom) \cr #' Christoph Burow, University of Cologne (Germany) #' #' @references #' Durcan, J.A. & Duller, G.A.T., 2011. The fast ratio: A rapid measure for testing #' the dominance of the fast component in the initial OSL signal from quartz. #' Radiation Measurements 46, 1065-1072. #' #' Madsen, A.T., Duller, G.A.T., Donnelly, J.P., Roberts, H.M. & Wintle, A.G., 2009. #' A chronology of hurricane landfalls at Little Sippewissett Marsh, Massachusetts, USA, #' using optical dating. Geomorphology 109, 36-45. #' #' **Further reading** #' #' Steffen, D., Preusser, F. & Schlunegger, 2009. OSL quartz age underestimation #' due to unstable signal components. Quaternary Geochronology 4, 353-362. #' #' #' @seealso [fit_CWCurve], [get_RLum], [RLum.Analysis-class], #' [RLum.Results-class], [RLum.Data.Curve-class] #' #' @examples #' # load example CW-OSL curve #' data("ExampleData.CW_OSL_Curve") #' #' # calculate the fast ratio w/o further adjustments #' res <- calc_FastRatio(ExampleData.CW_OSL_Curve) #' #' # show the summary table #' get_RLum(res) #' #' @md #' @export calc_FastRatio <- function(object, stimulation.power = 30.6, wavelength = 470, sigmaF = 2.6E-17, sigmaM = 4.28E-18, Ch_L1 = 1, Ch_L2 = NULL, Ch_L3 = NULL, x = 1, x2 = 0.1, dead.channels = c(0,0), fitCW.sigma = FALSE, fitCW.curve = FALSE, plot = TRUE, ...) { .set_function_name("calc_FastRatio") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks - ----------------------------------------------------- .validate_class(object, c("RLum.Analysis", "RLum.Results", "RLum.Data.Curve", "data.frame", "matrix")) .validate_not_empty(object) .validate_positive_scalar(Ch_L1, int = TRUE) .validate_positive_scalar(Ch_L2, int = TRUE, null.ok = TRUE) if (!is.null(Ch_L3)) { .validate_class(Ch_L3, c("integer", "numeric")) .validate_length(Ch_L3, 2) .validate_positive_scalar(Ch_L3[1], int = TRUE, name = "'Ch_L3[1]'") .validate_positive_scalar(Ch_L3[2], int = TRUE, name = "'Ch_L3[2]'") if (Ch_L3[1] > Ch_L3[2]) { .throw_error("'Ch_L3[2]' must be greater than or equal to 'Ch_L3[1]'") } } .validate_positive_scalar(wavelength) .validate_positive_scalar(sigmaF) .validate_positive_scalar(sigmaM) .validate_positive_scalar(x) .validate_positive_scalar(x2) .validate_class(dead.channels, c("integer", "numeric")) .validate_length(dead.channels, 2) if (any(dead.channels < 0)) { .throw_error("All elements of 'dead.channels' should be non-negative") } ## Input object handling ----------------------------------------------------- if (inherits(object, "RLum.Analysis")) object <- get_RLum(object) if (inherits(object, "RLum.Results")) object <- get_RLum(object, "data") if ((is.data.frame(object) || is.matrix (object)) && ncol(object) < 2) { .throw_error("'object' should have at least two columns") } if (!inherits(object, "list")) object <-list(object) ## Settings ------------------------------------------------------------------ settings <- list(verbose = TRUE, n.components.max = 3, fit.method = "LM", output.terminal = FALSE, info = list(), fit = NULL) # override defaults with args in ... settings <- modifyList(settings, list(...)) ## Calculations -------------------------------------------------------------- # iterate over all user provided objects and calculate the FR fast.ratios <- lapply(object, function(obj) { if (inherits(obj, "RLum.Data.Curve")) A <- get_RLum(obj) else A <- obj ## Energy calculation # P = user defined stimulation power in mW # lambdaLED = wavelength of stimulation source in nm P <- stimulation.power lamdaLED <- wavelength ## Constants ## c = speed of light, h = Planck's constant h <- 6.62607004E-34 c <- 299792458 I0 <- (P / 1000) / (h * c / (lamdaLED * 10^-9)) Ch_width <- max(A[ ,1]) / length(A[ ,1]) # remove dead channels A <- as.data.frame(A[(dead.channels[1] + 1):(nrow(A)-dead.channels[2]), ]) A[ ,1] <- A[ ,1] - A[1,1] # estimate the photo-ionisation crossections of the fast and medium # component using the fit_CWCurve function if (fitCW.sigma | fitCW.curve) { fitCW.res <- try(fit_CWCurve(A, n.components.max = settings$n.components.max, fit.method = settings$fit.method, LED.power = stimulation.power, LED.wavelength = wavelength, verbose = settings$output.terminal, plot = plot), outFile = stdout()) if (!inherits(fitCW.res, "try-error")) { settings$fit <- fitCW.res if (fitCW.sigma) { sigmaF <- get_RLum(fitCW.res)$cs1 sigmaM <- get_RLum(fitCW.res)$cs2 if (settings$verbose) { message("\n [calc_FitCWCurve()]\n") message("New value for sigmaF: ", format(sigmaF, digits = 3, nsmall = 2)) message("New value for sigmaM: ", format(sigmaM, digits = 3, nsmall = 2)) } } if (fitCW.curve) { nls <- get_RLum(fitCW.res, "fit") A[ ,2] <- predict(nls) } } else { settings["fit"] <- list(NULL) if (settings$verbose) .throw_message("Fitting failed, please call 'fit_CWCurve()' ", "manually before calculating the fast ratio") } } ## The equivalent time in s of L1, L2, L3 # Use these values to look up the channel t_L1 <- 0 if (is.null(Ch_L2)) t_L2 <- (log(x / 100)) / (-sigmaF * I0) else t_L2 <- A[Ch_L2, 1] if (is.null(Ch_L3)) { t_L3_start <- (log(x / 100)) / (-sigmaM * I0) t_L3_end <- (log(x2 / 100)) / (-sigmaM * I0) } else { if (any(Ch_L3 > nrow(A))) { .throw_error("Value in 'Ch_L3' (", .collapse(Ch_L3, quote = FALSE), ") exceeds number of available channels (", nrow(A), ")") } t_L3_start <- A[Ch_L3[1], 1] t_L3_end <- A[Ch_L3[2], 1] } ## Channel number(s) of L2 and L3 if (is.null(Ch_L2)) Ch_L2 <- which.min(abs(A[,1] - t_L2)) if (Ch_L2 <= 1) { msg <- sprintf("Calculated time/channel for L2 is too small (%.f, %.f), NULL returned", t_L2, Ch_L2) settings$info <- modifyList(settings$info, list(L2 = msg)) .throw_warning(msg) return(NULL) } Ch_L3st<- which.min(abs(A[,1] - t_L3_start)) Ch_L3end <- which.min(abs(A[,1] - t_L3_end)) ## Counts in channels L1, L2, L3 # L1 ---- Cts_L1 <- A[Ch_L1, 2] # L2 ---- if (Ch_L2 > nrow(A)) { msg <- sprintf(paste("The calculated channel for L2 (%i) exceeds", "the number of available channels (%i),", "NULL returned"), Ch_L2, nrow(A)) settings$info <- modifyList(settings$info, list(L2 = msg)) .throw_warning(msg) return(NULL) } Cts_L2 <- A[Ch_L2, 2] # optional: predict the counts from the fitted curve if (fitCW.curve) { if (!inherits(fitCW.res, "try-error")) { nls <- get_RLum(fitCW.res, "fit") Cts_L2 <- predict(nls, list(x = t_L2)) } } # L3 ---- if (Ch_L3st >= nrow(A) | Ch_L3end > nrow(A)) { msg <- sprintf(paste("The calculated channels for L3 (%i, %i) exceed", "the number of available channels (%i).", "\nThe background has instead been estimated from the last", "5 channels."), Ch_L3st, Ch_L3end, nrow(A)) settings$info <- modifyList(settings$info, list(L3 = msg)) .throw_warning(msg) Ch_L3st <- max(nrow(A) - 5, 1) Ch_L3end <- nrow(A) t_L3_start <- A[Ch_L3st,1] t_L3_end <- A[Ch_L3end,1] } Cts_L3 <- mean(A[Ch_L3st:Ch_L3end, 2]) # optional: predict the counts from the fitted curve if (fitCW.curve) { if (!inherits(fitCW.res, "try-error")) { nls <- get_RLum(fitCW.res, "fit") Cts_L3 <- mean(predict(nls, list(x = c(t_L3_start, t_L3_end)))) } } # Warn if counts are not in decreasing order if (Cts_L3 >= Cts_L2) .throw_warning(sprintf("L3 contains more counts (%.f) than L2 (%.f)", Cts_L3, Cts_L2)) ## Fast Ratio FR <- (Cts_L1 - Cts_L3) / (Cts_L2 - Cts_L3) if (length(FR) != 1) FR <- NA ## Fast Ratio - Error calculation FR_se <- NA FR_rse <- NA if (!is.na(FR)) { # number of channels the background was derived from nBG <- abs(Ch_L3end - Ch_L3st) # relative standard errors rse_L1 <- sqrt(Cts_L1 + Cts_L3 / nBG) / (Cts_L1 - Cts_L3) rse_L2 <- sqrt(Cts_L2 + Cts_L3 / nBG) / (Cts_L2 - Cts_L3) # absolute standard errors se_L1 <- rse_L1 * (Cts_L1 - Cts_L3) se_L2 <- rse_L2 * (Cts_L2 - Cts_L3) # absolute standard error on fast ratio FR_se <- (sqrt((se_L1 / (Cts_L1 - Cts_L3))^2 + ((se_L2 / (Cts_L2 - Cts_L3))^2) )) * FR FR_rse <- FR_se / FR * 100 } ## Return values ----------------------------------------------------------- summary <- data.frame(fast.ratio = FR, fast.ratio.se = FR_se, fast.ratio.rse = FR_rse, channels = nrow(A), channel.width = Ch_width, dead.channels.start = as.integer(dead.channels[1]), dead.channels.end = as.integer(dead.channels[2]), sigmaF = sigmaF, sigmaM = sigmaM, I0 = I0, stimulation.power = stimulation.power, wavelength = wavelength, t_L1 = t_L1, t_L2 = t_L2, t_L3_start = t_L3_start, t_L3_end = t_L3_end, Ch_L1 = as.integer(Ch_L1), Ch_L2 = as.integer(Ch_L2), Ch_L3_start = as.integer(Ch_L3st), Ch_L3_end = as.integer(Ch_L3end), Cts_L1 = Cts_L1, Cts_L2 = Cts_L2, Cts_L3 = Cts_L3) fast.ratio <- set_RLum(class = "RLum.Results", originator = "calc_FastRatio", data = list(summary = summary, data = obj, fit = settings$fit, args = as.list(sys.call(-2L)[-1]), call = sys.call(-2L)), info = settings$info ) ## Console Output ---------------------------------------------------------- if (settings$verbose) { table.names <- c( "Fast Ratio\t", " \U02EA Absolute error", " \U02EA Relative error (%)", "Channels\t", "Channel width (s)", "Dead channels start", "Dead channels end", "Sigma Fast\t", "Sigma Medium\t", "I0\t\t", "Stim. power (mW/cm^2)", "Wavelength (nm)", "-\n Time L1 (s)\t", "Time L2 (s)\t", "Time L3 start (s)", "Time L3 end (s)", "-\n Channel L1\t", "Channel L2\t", "Channel L3 start", "Channel L3 end\t", "-\n Counts L1\t", "Counts L2\t", "Counts L3\t") cat("\n[calc_FastRatio()]\n") cat("\n -------------------------------") for (i in 1:ncol(summary)) { cat(paste0("\n ", table.names[i],"\t: ", format(summary[1, i], digits = 2, nsmall = 2))) } cat("\n -------------------------------\n\n") } ## Plotting ------------------------------------------------------------- if (plot) try(plot_RLum.Results(fast.ratio, ...)) # return return(fast.ratio) }) # End of lapply if (length(fast.ratios) == 1) fast.ratios <- fast.ratios[[1]] invisible(fast.ratios) } Luminescence/R/convert_CW2pPMi.R0000644000176200001440000002153514762554470016155 0ustar liggesusers#' Transform a CW-OSL curve into a pPM-OSL curve via interpolation under #' parabolic modulation conditions #' #' Transforms a conventionally measured continuous-wave (CW) OSL-curve into a #' pseudo parabolic modulated (pPM) curve under parabolic modulation conditions #' using the interpolation procedure described by Bos & Wallinga (2012). #' #' The complete procedure of the transformation is given in Bos & Wallinga #' (2012). The input `data.frame` consists of two columns: time (t) and #' count values (CW(t)) #' #' **Nomenclature** #' #' - P = stimulation time (s) #' - 1/P = stimulation rate (1/s) #' #' **Internal transformation steps** #' #' (1) #' log(CW-OSL) values #' #' (2) #' Calculate t' which is the transformed time: #' \deqn{t' = (1/3)*(1/P^2)t^3} #' #' (3) #' Interpolate CW(t'), i.e. use the log(CW(t)) to obtain the count values for #' the transformed time (t'). Values beyond `min(t)` and `max(t)` #' produce `NA` values. #' #' (4) #' Select all values for t' < `min(t)`, i.e. values beyond the time resolution #' of t. Select the first two values of the transformed data set which contain #' no `NA` values and use these values for a linear fit using [lm]. #' #' (5) #' Extrapolate values for t' < `min(t)` based on the previously obtained #' fit parameters. The extrapolation is limited to two values. Other values at #' the beginning of the transformed curve are set to 0. #' #' (6) #' Transform values using #' \deqn{pLM(t) = t^2/P^2*CW(t')} #' #' (7) #' Combine all values and truncate all values for t' > `max(t)` #' #' **NOTE:** #' The number of values for t' < `min(t)` depends on the stimulation #' period `P`. To avoid the production of too many artificial data at the #' raising tail of the determined pPM curve, it is recommended to use the #' automatic estimation routine for `P`, i.e. provide no value for #' `P`. #' #' @param values [RLum.Data.Curve-class] or [data.frame] (**required**): #' [RLum.Data.Curve-class] or `data.frame` with measured curve data of type #' stimulation time (t) (`values[,1]`) and measured counts (cts) (`values[,2]`) #' #' @param P [vector] (*optional*): #' stimulation period in seconds. If no value is given, the optimal value is #' estimated automatically (see details). Greater values of P produce more #' points in the rising tail of the curve. #' #' @return #' The function returns the same data type as the input data type with #' the transformed curve values. #' #' `RLum.Data.Curve` #' #' \tabular{rl}{ #' `$CW2pPMi.x.t` \tab: transformed time values \cr #' `$CW2pPMi.method` \tab: used method for the production of the new data points #' } #' #' `data.frame` #' #' \tabular{rl}{ #' `$x` \tab: time\cr #' `$y.t` \tab: transformed count values\cr #' `$x.t` \tab: transformed time values \cr #' `$method` \tab: used method for the production of the new data points #' } #' #' @note #' According to Bos & Wallinga (2012), the number of extrapolated points #' should be limited to avoid artificial intensity data. If `P` is #' provided manually, not more than two points are extrapolated. #' #' @section Function version: 0.2.2 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' Based on comments and suggestions from:\cr #' Adrie J.J. Bos, Delft University of Technology, The Netherlands #' #' @seealso [convert_CW2pLM], [convert_CW2pLMi], [convert_CW2pHMi], #' [fit_LMCurve], [RLum.Data.Curve-class] #' #' @references #' Bos, A.J.J. & Wallinga, J., 2012. How to visualize quartz OSL #' signal components. Radiation Measurements, 47, 752-758. #' #' **Further Reading** #' #' Bulur, E., 1996. An Alternative Technique For #' Optically Stimulated Luminescence (OSL) Experiment. Radiation Measurements, #' 26, 701-709. #' #' Bulur, E., 2000. A simple transformation for converting CW-OSL curves to #' LM-OSL curves. Radiation Measurements, 32, 141-145. #' #' @keywords manip #' #' @examples #' #' #' ##(1) #' ##load CW-OSL curve data #' data(ExampleData.CW_OSL_Curve, envir = environment()) #' #' ##transform values #' values.transformed <- convert_CW2pPMi(ExampleData.CW_OSL_Curve) #' #' ##plot #' plot(values.transformed$x,values.transformed$y.t, log = "x") #' #' ##(2) - produce Fig. 4 from Bos & Wallinga (2012) #' #' ##load data #' data(ExampleData.CW_OSL_Curve, envir = environment()) #' values <- CW_Curve.BosWallinga2012 #' #' ##open plot area #' plot(NA, NA, #' xlim = c(0.001,10), #' ylim = c(0,8000), #' ylab = "pseudo OSL (cts/0.01 s)", #' xlab = "t [s]", #' log = "x", #' main = "Fig. 4 - Bos & Wallinga (2012)") #' #' values.t <- convert_CW2pLMi(values, P = 1/20) #' lines(values[1:length(values.t[, 1]), 1], values.t[, 2], #' col = "red",lwd = 1.3) #' text(0.03,4500,"LM", col = "red", cex = .8) #' #' values.t <- convert_CW2pHMi(values, delta = 40) #' lines(values[1:length(values.t[, 1]), 1], values.t[, 2], #' col = "black", lwd = 1.3) #' text(0.005,3000,"HM", cex = .8) #' #' values.t <- convert_CW2pPMi(values, P = 1/10) #' lines(values[1:length(values.t[, 1]), 1], values.t[, 2], #' col = "blue", lwd = 1.3) #' text(0.5,6500,"PM", col = "blue", cex = .8) #' #' @md #' @export convert_CW2pPMi<- function( values, P ) { .set_function_name("convert_CW2pPMi") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- ##(1) data.frame or RLum.Data.Curve object? .validate_class(values, c("data.frame", "RLum.Data.Curve")) .validate_not_empty(values) ##(2) if the input object is an 'RLum.Data.Curve' object check for allowed curves if (inherits(values, "RLum.Data.Curve")) { if(!grepl("OSL", values@recordType) & !grepl("IRSL", values@recordType)){ .throw_error("recordType ", values@recordType, " is not allowed for the transformation") } temp.values <- as(values, "data.frame") }else{ temp.values <- values } # (3) Transform values ------------------------------------------------------ ##log transformation of the CW-OSL count values CW_OSL.log<-log(temp.values[,2]) ##time transformation t >> t' t<-temp.values[,1] ##set P ##if no values for P is set selected a P value for a maximum of ##two extrapolation points if(missing(P)==TRUE){ i<-1 P<-1/i t.transformed<-(1/3)*(1/P^2)*t^3 while(length(t.transformed[t.transformed2){ P<-1/i t.transformed<-(1/3)*(1/P^2)*t^3 i<-i+1 } }else{ t.transformed<-(1/3)*(1/P^2)*t^3 } # (4) Interpolation --------------------------------------------------------- ##interpolate values, values beyond the range return NA values CW_OSL.interpolated <- approx(t, CW_OSL.log, xout=t.transformed, rule=1 ) ##combine t.transformed and CW_OSL.interpolated in a data.frame temp<-data.frame(x=t.transformed, y = unlist(CW_OSL.interpolated$y)) # (5) Extrapolate first values of the curve --------------------------------- ##(a) - find index of first rows which contain NA values (needed for extrapolation) temp.sel.id<-min(which(is.na(temp[,2])==FALSE)) ##(b) - fit linear function fit.lm <- stats::lm(y ~ x, data.frame(x = t[1:2], y = CW_OSL.log[1:2])) ##select values to extrapolate and predict (extrapolate) values based on the fitted function x.i<-data.frame(x=temp[1:(min(temp.sel.id)-1),1]) y.i<-predict(fit.lm,x.i) ##replace NA values by extrapolated values temp[1:length(y.i),2]<-y.i ##set method values temp.method<-c(rep("extrapolation",length(y.i)),rep("interpolation",(length(temp[,2])-length(y.i)))) ##print a warning message for more than two extrapolation points if (temp.sel.id > 2) { .throw_warning("t' is beyond the time resolution: only two data points ", "have been extrapolated, the first ", temp.sel.id - 3, " points were set to 0") } # (6) Convert, transform and combine values --------------------------------- ##unlog CW-OSL count values, i.e. log(CW) >> CW CW_OSL<-exp(temp$y) ##transform CW-OSL values to pPM-OSL values pPM<-(t^2/P^2)*CW_OSL ##combine all values and exclude NA values temp.values <- data.frame(x=t, y.t=pPM, x.t=t.transformed, method=temp.method) temp.values <- na.exclude(temp.values) # (7) Return values --------------------------------------------------------- ##returns the same data type as the input if(is(values, "data.frame") == TRUE){ values <- temp.values return(values) }else{ ##add old info elements to new info elements temp.info <- c(values@info, CW2pPMi.x.t = list(temp.values$x.t), CW2pPMi.method = list(temp.values$method)) newRLumDataCurves.CW2pPMi <- set_RLum( class = "RLum.Data.Curve", recordType = values@recordType, data = as.matrix(temp.values[,1:2]), info = temp.info) return(newRLumDataCurves.CW2pPMi) } } #' @rdname convert_CW2pPMi #' @export CW2pPMi <- function(values, P) { .Deprecated("convert_CW2pPMi") convert_CW2pPMi(values, P) } Luminescence/R/Luminescence-generics.R0000644000176200001440000005443614762554470017451 0ustar liggesusers## -------------------------------------------------------------------------- #' @title Channel binning for RLum.Data S4 class objects. #' #' @description #' The function provides a generalised access point for specific #' [RLum.Data-class] objects. Depending on the input object, the corresponding #' function will be selected. #' Allowed arguments can be found in the documentations of the corresponding #' [RLum.Data-class] class. #' #' @param object [RLum.Data-class] (**required**): #' S4 object of class `RLum.Data` #' #' @param ... further arguments passed to the specific class method #' #' @return #' An object of the same type as the input object provided. #' #' @section Function version: 0.2.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @note Currently only `RLum.Data` objects of class [RLum.Data.Curve-class] #' and [RLum.Data.Spectrum-class] are supported. #' #' @seealso [RLum.Data.Curve-class], [RLum.Data.Spectrum-class] #' #' @examples #' #' ## load example data #' data(ExampleData.CW_OSL_Curve, envir = environment()) #' #' ## create RLum.Data.Curve object from this example #' curve <- #' set_RLum( #' class = "RLum.Data.Curve", #' recordType = "OSL", #' data = as.matrix(ExampleData.CW_OSL_Curve) #' ) #' #' ## plot data without and with 2 and 4 channel binning #' plot_RLum(curve) #' plot_RLum(bin_RLum.Data(curve, bin_size = 2)) #' plot_RLum(bin_RLum.Data(curve, bin_size = 4)) #' #' @keywords utilities #' #' @md #' @export setGeneric("bin_RLum.Data", function(object, ...) { standardGeneric("bin_RLum.Data") }) ## -------------------------------------------------------------------------- #' @title General accessor function for Risoe.BINfileData objects #' #' @description #' The function provides a generalised access point for specific #' [Risoe.BINfileData-class] objects. Depending on the input object, the #' corresponding function will be selected. #' Allowed arguments can be found in the documentations of the corresponding #' [Risoe.BINfileData-class] class. #' #' @param object [Risoe.BINfileData-class] (**required**): #' S4 object of class `Risoe.BINfileData` #' #' @param ... further arguments passed to the specific class method #' #' @return #' An object of the same type as the input object provided. #' #' @section Function version: 0.1.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [Risoe.BINfileData-class] #' #' @keywords utilities internal #' #' @md #' @export setGeneric("get_Risoe.BINfileData", function(object, ...) { standardGeneric("get_Risoe.BINfileData") }) ## -------------------------------------------------------------------------- #' @title General accessor function for RLum S4 class objects #' #' @description #' The function provides a generalised access point for specific #' [RLum-class] objects. Depending on the input object, the corresponding #' function will be selected. #' Allowed arguments can be found in the documentations of the corresponding #' [RLum-class] class. #' #' @param object [RLum-class] (**required**): #' S4 object of class `RLum` or an object of type [list] containing only objects #' of type [RLum-class] #' #' @param ... further arguments passed to the specific class method. #' #' @return #' An object of the same type as the input object provided. #' #' @section Function version: 0.3.3 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Data.Curve-class], [RLum.Data.Image-class], #' [RLum.Data.Spectrum-class], [RLum.Analysis-class], [RLum.Results-class] #' #' @keywords utilities #' #' @examples #' #' ## Example based using data and from the calc_CentralDose() function #' #' ## load example data #' data(ExampleData.DeValues, envir = environment()) #' #' ## apply the central dose model 1st time #' temp1 <- calc_CentralDose(ExampleData.DeValues$CA1) #' #' ## get results and store them in a new object #' temp.get <- get_RLum(object = temp1) #' #' @md #' @export setGeneric("get_RLum", function (object, ...) { standardGeneric("get_RLum") }) #' @describeIn get_RLum #' Returns a list of [RLum-class] objects that had been passed to [get_RLum] #' #' @param class [character] (*optional*): allows to define the class that gets #' selected if applied to a list, e.g., if a list consists of different type #' of [RLum-class] objects, this arguments allows to make selection. If nothing #' is provided, all RLum-objects are treated. #' #' @param null.rm [logical] (*with default*): remove empty and `NULL` objects. #' #' @md #' @export setMethod("get_RLum", signature = "list", function(object, class = NULL, null.rm = FALSE, ...) { ## take care of the class argument if (!is.null(class)) { sel <- class[1] == vapply(object, function(x) class(x), character(1)) if (any(sel)) object <- object[sel] rm(sel) } ## make remove all non-RLum objects selection <- lapply(seq_along(object), function(x) { ## get rid of all objects that are not of type RLum, this is better ## than leaving that to the user if (inherits(object[[x]], what = "RLum")) { ## it might be the case the object already comes with empty objects, ## this would cause a crash if (inherits(object[[x]], "RLum.Analysis") && length(object[[x]]@records) == 0) return(NULL) get_RLum(object[[x]], ...) } else { warning(paste0("[get_RLum()] object #",x," in the list was not of type 'RLum' and has been removed!"), call. = FALSE) return(NULL) } }) ## remove empty or NULL objects after the selection ... if wanted if (null.rm) { ## first set all empty objects to NULL ... for RLum.Analysis objects selection <- lapply(1:length(selection), function(x) { if (length(selection[[x]]) == 0 || (inherits(selection[[x]], "RLum.Analysis") && length(selection[[x]]@records) == 0)) return(NULL) else return(selection[[x]]) }) ## get rid of all NULL objects selection <- selection[!vapply(selection, is.null, logical(1))] } return(selection) }) #' Method to handle NULL if the user calls get_RLum #' #' @describeIn get_RLum #' #' Returns `NULL`. #' #' @md #' @export setMethod("get_RLum", signature = "NULL", function(object, ...) { NULL }) ## -------------------------------------------------------------------------- #' @title Length retrieval function for RLum S4 class objects #' #' @description #' The function provides a generalised access point for specific #' [RLum-class] objects. Depending on the input object, the corresponding #' function will be selected. #' Allowed arguments can be found in the documentations of the corresponding #' [RLum-class] class. #' #' @param object [RLum-class] (**required**): #' S4 object of class `RLum` #' #' @return #' An [integer] indicating the length of the object. #' #' @section Function version: 0.1.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso #' [RLum.Data.Curve-class], #' [RLum.Data.Image-class], #' [RLum.Data.Spectrum-class], #' [RLum.Analysis-class], #' [RLum.Results-class] #' @keywords utilities #' #' @md #' @export setGeneric("length_RLum", function(object) { standardGeneric("length_RLum") }) ## -------------------------------------------------------------------------- #' @title Melt RLum-class objects into a flat data.frame #' #' @param object [RLum-class] (**required**): #' S4 object of class `RLum` #' #' @param ... further arguments passed to the specific class method #' #' @return #' A flat [data.frame]. #' #' @section Function version: 0.1.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Data.Curve-class], [RLum.Analysis-class] #' #' @examples #' data(ExampleData.XSYG, envir = environment()) #' melt_RLum(OSL.SARMeasurement[[2]][[1]]) #' #' @keywords utilities #' #' @md #' @export setGeneric("melt_RLum", function(object, ...) { standardGeneric("melt_RLum") }) #' @describeIn melt_RLum #' Returns a list a single [data.frame] #' #' @md #' @export setMethod("melt_RLum", signature = "list", function(object, ...) { ## silently remove non-RLum objects l <- .rm_nonRLum(object) ## just return NULL if (length(l) == 0) return(NULL) ## apply method in the objects and return the same l <- lapply(object, function(x) { t <- try(melt_RLum(x), silent = TRUE) if (inherits(t, "try-error")) return(NULL) else t }) ## remove NULL l <- l[!vapply(l, is.null, logical(1))] ## now bind the data.frame as.data.frame(data.table::rbindlist(l)) }) ## -------------------------------------------------------------------------- #' @title Safe manipulation of object metadata #' #' @description #' Generic functions for manipulation of metadata in [Risoe.BINfileData-class], #' [RLum.Analysis-class] and [RLum.Data-class] objects. #' #' @param object (**required**) object to manipulate #' #' @param ... further arguments passed to the specific class method #' #' @param value the value to be assigned #' #' @author #' Marco Colombo, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Data-class], [RLum.Analysis-class], [Risoe.BINfileData-class] #' #' @keywords utilities #' #' @examples #' #' ## load example data #' data(ExampleData.BINfileData, envir = environment()) #' #' ## show data #' CWOSL.SAR.Data #' #' ## add a new field #' add_metadata(CWOSL.SAR.Data, #' info_element = "INSTITUTE") <- "Heidelberg University" #' #' ## rename a field #' rename_metadata(CWOSL.SAR.Data, #' info_element = "INSTITUTE") <- "INSTITUTION" #' #' ## replace all LTYPE to RSL #' ## but only for the first position #' replace_metadata( #' object = CWOSL.SAR.Data, #' info_element = "LTYPE", #' subset = (POSITION == 1)) <- "RSL" #' #' ## replacing a field with NULL allows to remove that field #' replace_metadata(CWOSL.SAR.Data, #' info_element = "PREVIOUS") <- NULL #' #' ## show the modified data #' CWOSL.SAR.Data #' #' @rdname metadata #' @md #' @export setGeneric("add_metadata<-", function (object, ..., value) { standardGeneric("add_metadata<-") }) #' @rdname metadata #' @export setGeneric("rename_metadata<-", function (object, ..., value) { standardGeneric("rename_metadata<-") }) #' @rdname metadata #' @export setGeneric("replace_metadata<-", function (object, ..., value) { standardGeneric("replace_metadata<-") }) ## -------------------------------------------------------------------------- #' @title Name retrieval function for RLum S4 class objects #' #' @description #' The function provides a generalised access point for specific #' [RLum-class] objects. Depending on the input object, the corresponding #' function will be selected. #' Allowed arguments can be found in the documentations of the corresponding #' [RLum-class] class. #' #' @param object [RLum-class] (**required**): #' S4 object of class `RLum` #' #' @return #' A [character] vector. #' #' @section Function version: 0.1.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Data.Curve-class], [RLum.Data.Image-class], #' [RLum.Data.Spectrum-class], [RLum.Analysis-class], [RLum.Results-class] #' #' @keywords utilities #' #' @aliases names_RLum #' #' @md #' @export setGeneric("names_RLum", function(object) { standardGeneric("names_RLum") }) #' @describeIn names_RLum #' Returns a list of [RLum-class] objects that had been passed to [names_RLum] #' #' @md #' @export setMethod("names_RLum", signature = "list", function(object) { ## apply method in the objects and return the same lapply(object, function(x) { if (inherits(x, "RLum")) { return(names_RLum(x)) } else { return(x) } }) }) ## -------------------------------------------------------------------------- #' @title General replication function for RLum S4 class objects #' #' @description #' The function replicates RLum S4 class objects and returns a list of such #' objects. #' #' @param object [RLum-class] (**required**): #' an [RLum-class] object #' #' @param times [integer] (*optional*): #' number for times each element is repeated element #' #' @return #' A [list] with the object repeated. #' #' @section Function version: 0.1.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum-class] #' #' @keywords utilities #' #' @md #' @export setGeneric("replicate_RLum", function (object, times = NULL) { standardGeneric("replicate_RLum") }) ## -------------------------------------------------------------------------- #' @title General setter function for Risoe.BINfileData objects #' #' @description #' The function provides a generalised access point for specific #' [Risoe.BINfileData-class] objects. Depending on the input object, the #' corresponding function will be selected. #' Allowed arguments can be found in the documentations of the corresponding #' [Risoe.BINfileData-class] class. #' #' @param METADATA x #' #' @param DATA x #' #' @param .RESERVED x #' #' @return #' A [Risoe.BINfileData-class] object. #' #' @section Function version: 0.1 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [Risoe.BINfileData-class] #' #' @keywords utilities #' #' @md #' @export setGeneric("set_Risoe.BINfileData", function(METADATA = data.frame(), DATA = list(), .RESERVED = list()) { standardGeneric("set_Risoe.BINfileData") }) ## -------------------------------------------------------------------------- #' @title General setter function for RLum S4 class objects #' #' @description #' The function provides a generalised access point for specific #' [RLum-class] objects. Depending on the given class, the corresponding #' method to create an object from this class will be selected. #' Allowed additional arguments can be found in the documentations of the #' corresponding [RLum-class] class: #' - [RLum.Data.Curve-class], #' - [RLum.Data.Image-class], #' - [RLum.Data.Spectrum-class], #' - [RLum.Analysis-class], #' - [RLum.Results-class] #' #' @param class [character] (**required**): #' name of the S4 class to create, must correspond to one of the [RLum-class] #' classes. #' #' @param originator [character] (*automatic*): #' contains the name of the calling function (the function that produces this object); #' can be set manually. #' #' @param .uid [character] (*automatic*): #' unique ID for this object, by default set using the internal C++ function #' `create_UID`. #' #' @param .pid [character] (*with default*): #' option to provide a parent id for nesting at will. #' #' @param ... further arguments passed to the specific class method #' #' @return #' An object of the specified [RLum-class] class. #' #' @section Function version: 0.3.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Data.Curve-class], [RLum.Data.Image-class], #' [RLum.Data.Spectrum-class], [RLum.Analysis-class], [RLum.Results-class] #' #' @keywords utilities #' #' @examples #' #' ## produce empty objects from each class #' set_RLum(class = "RLum.Data.Curve") #' set_RLum(class = "RLum.Data.Spectrum") #' set_RLum(class = "RLum.Data.Spectrum") #' set_RLum(class = "RLum.Analysis") #' set_RLum(class = "RLum.Results") #' #' ## produce a curve object with arbitrary curve values #' object <- set_RLum( #' class = "RLum.Data.Curve", #' curveType = "arbitrary", #' recordType = "OSL", #' data = matrix(c(1:100,exp(-c(1:100))),ncol = 2)) #' #' ## plot this curve object #' plot_RLum(object) #' #' @md #' @export setGeneric("set_RLum", function (class, originator, .uid = create_UID(), .pid = NA_character_, ... ) { .set_function_name("set_RLum") on.exit(.unset_function_name(), add = TRUE) .validate_class(class, "character") class(class) <- as.character(class) if (missing(originator)) { if (is(sys.call(which = -1)[[1]], "language")) { originator <- as.character(sys.call(which = -1)[[1]]) ## account for calls using the double colons, in this case the vector ## is of length 3, not only 1 if (length(originator) == 3) { originator <- originator[3] } } else { originator <- NA_character_ } } standardGeneric("set_RLum") }) ## -------------------------------------------------------------------------- #' @title Smoothing of data for RLum S4-class objects #' #' @description #' The function provides a generalised access point for specific #' [RLum-class] objects. Depending on the input object, the corresponding #' function will be selected. #' Allowed arguments can be found in the documentations of the corresponding #' [RLum-class] class. The smoothing is based on an internal function #' called `.smoothing`. #' #' @param object [RLum-class] (**required**): #' S4 object of class `RLum` #' #' @param ... further arguments passed to the specific class method #' #' @return #' An object of the same type as the input object provided. #' #' @section Function version: 0.1.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @note #' Currently only `RLum` objects of class `RLum.Data.Curve` and `RLum.Analysis` #' (with curve data) are supported. #' #' @seealso [RLum.Data.Curve-class], [RLum.Analysis-class] #' #' @examples #' #' ## load example data #' data(ExampleData.CW_OSL_Curve, envir = environment()) #' #' ## create RLum.Data.Curve object from this example #' curve <- #' set_RLum( #' class = "RLum.Data.Curve", #' recordType = "OSL", #' data = as.matrix(ExampleData.CW_OSL_Curve) #' ) #' #' ## plot data without and with smoothing #' plot_RLum(curve) #' plot_RLum(smooth_RLum(curve)) #' #' @keywords utilities #' #' @md #' @export setGeneric("smooth_RLum", function(object, ...) { standardGeneric("smooth_RLum") }) #' @describeIn smooth_RLum #' Returns a list of [RLum-class] objects that had been passed to [smooth_RLum] #' #' @md #' @export setMethod("smooth_RLum", signature = "list", function(object, ...) { ## apply method in the objects and return the same lapply(object, function(x) { if (inherits(x, "RLum")) { return(smooth_RLum(x,...)) } else { return(x) } }) }) ## -------------------------------------------------------------------------- #' @title Sort data for RLum S4-class objects #' #' @description #' The function provides a generalised access point for specific #' [RLum-class] objects. Depending on the input object, the corresponding #' function will be selected. #' Allowed arguments can be found in the documentations of the corresponding #' [RLum-class] class. #' #' @param object [RLum-class] or [Risoe.BINfileData-class] (**required**): #' S4 object of class `RLum.Analysis` or `Risoe.BINfileData` #' #' @param ... further arguments passed to the specific class method #' #' @return #' An object of the same type as the input object provided. #' #' @section Function version: 0.1.0 #' #' @author #' Marco Colombo, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Analysis-class], [Risoe.BINfileData-class] #' #' @examples #' #' ## load example data #' data(ExampleData.XSYG, envir = environment()) #' obj <- OSL.SARMeasurement$Sequence.Object[1:9] #' #' sort_RLum(obj, slot = "recordType") #' sort_RLum(obj, info_element = "curveDescripter") #' #' @keywords utilities #' #' @md #' @export setGeneric("sort_RLum", function(object, ...) { standardGeneric("sort_RLum") }) ## -------------------------------------------------------------------------- #' @title General structure function for RLum S4 class objects #' #' @description #' The function provides a generalised access point for specific #' [RLum-class] objects. Depending on the input object, the corresponding #' function will be selected. #' Allowed arguments can be found in the documentations of the corresponding #' [RLum-class] class. #' #' @param object [RLum-class] (**required**): #' S4 object of class `RLum` #' #' @param ... further arguments passed to the specific class method #' #' @return #' Returns a [data.frame] with structure of the object. #' #' @section Function version: 0.2.0 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [RLum.Data.Curve-class], [RLum.Data.Image-class], #' [RLum.Data.Spectrum-class], [RLum.Analysis-class], [RLum.Results-class] #' #' @keywords utilities #' #' @examples #' #' ## load example data #' data(ExampleData.XSYG, envir = environment()) #' #' ## show structure #' structure_RLum(OSL.SARMeasurement$Sequence.Object) #' #' @md #' @export setGeneric("structure_RLum", function(object, ...) { standardGeneric("structure_RLum") }) #' @describeIn structure_RLum #' Returns a list of [RLum-class] objects that were passed to [structure_RLum] #' #' @md #' @export setMethod("structure_RLum", signature = "list", function(object, ...) { ## apply method in the objects and return the same lapply(object, function(x) { if (inherits(x, "RLum")) { return(structure_RLum(x, ...)) } else { return(x) } }) }) ## -------------------------------------------------------------------------- #' @title Convenience data visualisation function #' #' @description #' Invokes the [utils::View] function tailored to objects in the package. #' If started from RStudio, it uses the RStudio viewer. #' #' @param object (**required**) object to view #' #' @param ... further arguments passed to the specific class method #' #' @seealso [utils::View()] #' #' @returns #' `NULL` and opens the data viewer. #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @keywords utilities #' #' @md #' @export setGeneric("view", function (object, ... ) { standardGeneric("view") }) ## ensure that we can use the internal RStudio view function ## https://stackoverflow.com/questions/48234850/how-to-use-r-studio-view-function-programatically-in-a-package #' @md #' @noRd .view <- function(x, title) { get("View", envir = as.environment("package:utils"))(x, title) # nocov } Luminescence/R/plot_ViolinPlot.R0000644000176200001440000001741514762554470016373 0ustar liggesusers#' @title Create a violin plot #' #' @description #' Draws a kernel density plot in combination with a boxplot in its middle. The shape of the violin #' is constructed using a mirrored density curve. This plot is especially designed for cases #' where the individual errors are zero or too small to be visualised. The idea for this plot is #' based on the 'volcano plot' in the ggplot2 package by Hadley Wickham and Winston Chang. #' The general idea for the violin plot seems to have been introduced by #' Hintze and Nelson (1998). #' #' The function is passing several arguments to the functions [plot], #' [stats::density], [graphics::boxplot]: #' #' Supported arguments are: #' `xlim`, `main`, `xlab`, `ylab`, `col.violin`, `col.boxplot`, `mtext`, `cex`, `mtext` #' #' **`Valid summary keywords`** #' #' `'n'`, `'mean'`, `'median'`, `'sd.abs'`, `'sd.rel'`, `'se.abs'`, `'se.rel'`. #' `'skewness'`, `'kurtosis'` #' #' @param data [numeric] or [RLum.Results-class] (**required**): #' input data for plotting. Alternatively a [data.frame] or a [matrix] can #' be provided, but only the first column will be considered by the #' function #' #' @param boxplot [logical] (*with default*): #' enable/disable boxplot #' #' @param rug [logical] (*with default*): #' enable/disable rug #' #' @param summary [character] (*optional*): #' add statistic measures of centrality and dispersion to the plot. #' Can be one or more of several keywords. See details for available keywords. #' #' @param summary.pos [numeric] or [character] (*with default*): #' optional position keywords (cf. [legend]) for the statistical summary. #' Alternatively, the keyword `"sub"` may be specified to place the summary #' below the plot header. However, this latter option in only possible if #' `mtext` is not used. #' #' @param na.rm [logical] (*with default*): #' exclude NA values from the data set prior to any further operations. #' #' @param ... further arguments and graphical parameters passed to #' [plot.default], [stats::density] and [boxplot]. See details for further #' information. #' #' @note #' Although the code for this function was developed independently and just the idea for the plot #' was based on the 'ggplot2' package plot type 'volcano', it should be mentioned that, beyond this, #' two other R packages exist providing a possibility to produces this kind of plot, namely: #' `'vioplot'` and `'violinmplot'` (see references for details). #' #' @section Function version: 0.1.4 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @references #' Daniel Adler (2005). vioplot: A violin plot is a combination of a box plot and a kernel density plot. #' R package version 0.2 http://CRAN.R-project.org/package=violplot #' #' Hintze, J.L., Nelson, R.D., 1998. A Box Plot-Density Trace Synergism. The American Statistician 52, 181-184. #' #' Raphael W. Majeed (2012). violinmplot: Combination of violin plot with mean and standard deviation. #' R package version 0.2.1. http://CRAN.R-project.org/package=violinmplot #' #' Wickham. H (2009). ggplot2: elegant graphics for data analysis. Springer New York. #' #' @seealso [stats::density], [plot], [boxplot], [rug], [calc_Statistics] #' #' @examples #' #' ## read example data set #' data(ExampleData.DeValues, envir = environment()) #' ExampleData.DeValues <- convert_Second2Gray(ExampleData.DeValues$BT998, #' c(0.0438,0.0019)) #' #' ## create plot straightforward #' plot_ViolinPlot(data = ExampleData.DeValues) #' #' @md #' @export plot_ViolinPlot <- function( data, boxplot = TRUE, rug = TRUE, summary = NULL, summary.pos = "sub", na.rm = TRUE, ... ) { .set_function_name("plot_ViolinPlot") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(data, c("RLum.Results", "data.frame", "matrix")) .validate_not_empty(data) .validate_class(summary.pos, "character") if (inherits(data, "RLum.Results")) { data <- get_RLum(data, "data") } if (is.data.frame(data) || is.matrix(data)) { data <- data[, 1] } ##Remove NA values if(na.rm){ data <- na.exclude(data) if(length(attr(data, "na.action")) > 0){ .throw_warning(length(attr(data, "na.action")), " NA values removed") } } ##stop if only one or 0 values are left in data if(length(data) == 0){ .throw_warning("After NA removal, nothing is left from the data set") return() } # Pre-calculations ---------------------------------------------------------------------------- ##density for the violin if(length(data)>1){ density <- density(x = data, bw = ifelse("bw" %in% names(list(...)),list(...)$bw,"nrd0")) }else{ density <- NULL .throw_warning("Single data point found, no density calculated") } ##some statistical parameter, get rid of the weighted statistics stat.summary <- list(suppressWarnings(calc_Statistics(as.data.frame(data), digits = 2)[["unweighted"]])) names(stat.summary) <- "unweighted" ##make valid summary string if(is.null(summary)){ summary <- c("n","median") } ##at least show a warning for invalid keywords if(!all(summary %in% names(stat.summary[[1]]))){ .throw_warning("Only keywords for weighted statistical measures ", "are supported. Valid keywords are: ", .collapse(names(stat.summary[[1]]))) } ##make sure that only valid keywords make it summary <- summary[(summary %in% names(stat.summary[[1]]))] stat.text <- .create_StatisticalSummaryText(stat.summary, keywords = summary, sep = " \n ") stat.mtext <- .create_StatisticalSummaryText(stat.summary, keywords = summary, sep = " | ") # Plot settings ------------------------------------------------------------------------------- ##set default values plot.settings <- list( xlim = if(!is.null(density)){range(density$x)}else{c(data[1]*0.9, data[1]*1.1)}, main = "Violin Plot", xlab = expression(paste(D[e], " [a.u.]")), ylab = if(!is.null(density)){"Density"}else{" "}, col.violin = rgb(0,0,0,0.2), col.boxplot = NULL, mtext = ifelse(summary.pos != 'sub', "", stat.mtext), cex = 1 ) ##modify list accordingly plot.settings <- modifyList(plot.settings, val = list(...)) # Plot ---------------------------------------------------------------------------------------- ##open empty plot area plot( NA,NA, xlim = plot.settings$xlim, ylim = c(0.2,1.8), xlab = plot.settings$xlab, ylab = plot.settings$ylab, yaxt = "n", main = plot.settings$main, cex = plot.settings$cex ) ##add polygon ... the violin if(!is.null(density)){ polygon( x = c(density$x, rev(density$x)), y = c(1 + density$y / max(density$y) * 0.5, rev(1 - density$y / max(density$y) * 0.5)), col = plot.settings$col.violin, border = plot.settings$col.violin ) } ##add the boxplot if(boxplot){ graphics::boxplot( data, outline = TRUE, boxwex = 0.4, horizontal = TRUE, axes = FALSE, add = TRUE, col = plot.settings$col.boxplot ) } ##add rug if(rug){ graphics::rug(x = data) } ##add mtext if(!is.null(plot.settings$mtext)){ mtext(side = 3, text = plot.settings$mtext) } ##add stat.text if (summary.pos != "sub") { valid_keywords <- c( "bottomright", "bottom", "bottomleft", "left", "topleft", "top", "topright", "right", "center" ) if (any( summary.pos %in% valid_keywords )) { legend(summary.pos, legend = stat.text, bty = "n") }else{ .throw_warning("Value provided for 'summary.pos' is not ", "a valid keyword, valid keywords are:", .collapse(valid_keywords)) } } } Luminescence/R/merge_RLum.Data.Curve.R0000644000176200001440000002121614762554470017221 0ustar liggesusers#' @title Merge function for RLum.Data.Curve S4 class objects #' #' @description This function allows to merge [RLum.Data.Curve-class] objects in different #' ways without modifying the original objects. Merging is always applied on #' the 2nd column of the object's data matrix. #' #' **Supported merge operations are:** #' #' `"mean"` (default) #' #' The mean over the count values is calculated using the function #' [rowMeans]. #' #' `"median"` #' #' The median over the count values is calculated using the function #' [matrixStats::rowMedians]. #' #' `"sum"` #' #' All count values will be summed up using the function [rowSums]. #' #' `"sd"` #' #' The standard deviation over the count values is calculated using the function #' [matrixStats::rowSds]. #' #' `"var"` #' #' The variance over the count values is calculated using the function #' [matrixStats::rowVars]. #' #' `"min"` #' #' The min values from the count values is chosen using the function #' [matrixStats::rowMins][matrixStats::rowRanges]. #' #' `"max"` #' #' The max values from the count values is chosen using the function #' [matrixStats::rowMins][matrixStats::rowRanges]. #' #' `"append"` #' #' Appends count values of all curves to one combined data curve. The channel width #' is automatically re-calculated, but requires a constant channel width of the #' original data. #' #' `"-"` #' #' The row sums of the last objects are subtracted from the first object. #' #' `"*"` #' #' The row sums of the last objects are multiplied with the first object. #' #' `"/"` #' #' Values of the first object are divided by row sums of the last objects. #' #' @param object [list] of [RLum.Data.Curve-class] (**required**): #' list of objects to be merged. #' #' @param merge.method [character] (**required**): #' method for combining of the objects, e.g. `'mean'` (default), `'median'`, #' `'sum'`, see details for #' further information and allowed methods. Note: Elements in slot info will #' be taken from the first curve in the list. #' #' @param method.info [numeric] (*optional*): #' allows to specify how info elements of the input objects are combined, #' e.g. `1` means that just the elements from the first object are kept, #' `2` keeps only the info elements from the 2 object etc. #' If nothing is provided all elements are combined. #' #' @return Returns an [RLum.Data.Curve-class] object. #' #' @note #' The information from the slot `recordType` is taken from the first #' object in the input list. The slot #' 'curveType' is filled with the name `merged`. #' #' @section S3-generic support: #' #' This function is fully operational via S3-generics: #' ``+``, ``-``, ``/``, ``*``, `merge` #' #' @section Function version: 0.2.1 #' #' @author #' Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) #' #' @seealso [merge_RLum], [RLum.Data.Curve-class] #' #' #' @keywords utilities internal #' #' @examples #' #' ##load example data #' data(ExampleData.XSYG, envir = environment()) #' #' ##grep first and 3d TL curves #' TL.curves <- get_RLum(OSL.SARMeasurement$Sequence.Object, recordType = "TL (UVVIS)") #' TL.curve.1 <- TL.curves[[1]] #' TL.curve.3 <- TL.curves[[3]] #' #' ##plot single curves #' plot_RLum(TL.curve.1) #' plot_RLum(TL.curve.3) #' #' ##subtract the 1st curve from the 2nd and plot #' TL.curve.merged <- merge_RLum.Data.Curve(list(TL.curve.3, TL.curve.1), merge.method = "/") #' plot_RLum(TL.curve.merged) #' #' @md #' @export merge_RLum.Data.Curve<- function( object, merge.method = "mean", method.info ) { .set_function_name("merge_RLum.Data.Curve") on.exit(.unset_function_name(), add = TRUE) ## Integrity checks ------------------------------------------------------- .validate_class(object, "list") ##(1) check if object is of class RLum.Data.Curve num.objects <- length(object) temp.recordType.test <- sapply(object, function(x) { .validate_class(x, "RLum.Data.Curve", name = "All elements of 'object'") return(x@recordType) }) ##(2) Check for similar record types record.types <- unique(temp.recordType.test) if (length(record.types) > 1) { .throw_error("Only similar record types are supported; you are trying to merge: ", .collapse(record.types)) } merge.method <- .validate_args(merge.method, c("mean", "median", "sum", "sd", "var", "max", "min", "append", "-", "*", "/")) ## Merge objects ---------------------------------------------------------- ##merge data objects ##problem ... how to handle data with different resolution or length? ##(1) build new data matrix ## first find the shortest object check.rows <- vapply(object, function(x) nrow(x@data), numeric(1)) if (length(check.rows) < 2) { .throw_error("'object' contains no data") } num.rows <- min(check.rows) ## channel resolution of the first object: we need to round as there may ## otherwise be numerical artefacts that would make the step not unique step <- round(diff(object[[1]]@data[, 1]), 1)[1] ## extract the curve values from each object temp.matrix <- sapply(1:num.objects, function(x) { ## check the resolution (roughly) if (round(diff(object[[x]]@data[, 1]), 1)[1] != step) .throw_error("The objects do not seem to have the same channel resolution") ## limit all objects to the shortest one object[[x]]@data[1:num.rows, 2] }) ## throw the warning only now to avoid printing it in case of error if (length(unique(check.rows)) != 1) { .throw_warning("The number of channels differs between the curves, the ", "merged curve will have the length of the shortest object") } ##(2) apply selected method for merging if(merge.method == "sum"){ temp.matrix <- rowSums(temp.matrix) }else if(merge.method == "mean"){ temp.matrix <- rowMeans(temp.matrix) }else if(merge.method == "median"){ temp.matrix <- matrixStats::rowMedians(temp.matrix) }else if(merge.method == "sd"){ temp.matrix <- matrixStats::rowSds(temp.matrix) }else if(merge.method == "var"){ temp.matrix <- matrixStats::rowVars(temp.matrix) }else if(merge.method == "max"){ temp.matrix <- matrixStats::rowMaxs(temp.matrix) }else if(merge.method == "min"){ temp.matrix <- matrixStats::rowMins(temp.matrix) }else if(merge.method == "append") { temp.matrix <- sapply(temp.matrix, c) }else if(merge.method == "-"){ if (num.objects > 2) { temp.matrix <- temp.matrix[,1] - rowSums(temp.matrix[,-1]) }else{ temp.matrix <- temp.matrix[,1] - temp.matrix[,2] } }else if(merge.method == "*"){ if (num.objects > 2) { temp.matrix <- temp.matrix[,1] * rowSums(temp.matrix[,-1]) }else{ temp.matrix <- temp.matrix[,1] * temp.matrix[,2] } }else if(merge.method == "/"){ if (num.objects > 2) { temp.matrix <- temp.matrix[,1] / rowSums(temp.matrix[,-1]) }else{ temp.matrix <- temp.matrix[,1] / temp.matrix[,2] } ## replace infinities with 0 and throw warning id.inf <- which(is.infinite(temp.matrix) == TRUE) if (length(id.inf) > 0) { temp.matrix[id.inf] <- 0 .throw_warning(length(id.inf), " 'inf' values have been replaced by 0 in the matrix") } } ## add back the first column to RLum.Data.Curve objects #If we append the data of the second to the first curve we have to recalculate #the x-values (probably time/channel). The difference should always be the #same, so we just expand the sequence if this is true. If this is not true, #we revert to the default behaviour (i.e., append the x values) if (merge.method == "append") { newx <- seq(from = min(object[[1]]@data[, 1]), by = step, length.out = sum(check.rows)) temp.matrix <- cbind(newx, temp.matrix) } else { temp.matrix <- cbind(object[[1]]@data[1:num.rows, 1], temp.matrix) } ##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##merge info objects as simple as possible ... just keep them all ... other possibility ##would be to choose on the input objects ##unlist is needed here, as otherwise it would cause unexpected behaviour further using ##the RLum.object if(missing(method.info)){ temp.info <- unlist(lapply(1:num.objects, function(x) { object[[x]]@info }), recursive = FALSE) }else{ temp.info <- object[[method.info]]@info } ## Build new RLum.Data.Curve object --------------------------------------- temp.new.Data.Curve <- set_RLum( class = "RLum.Data.Curve", originator = "merge_RLum.Data.Curve", recordType = object[[1]]@recordType, curveType = "merged", data = temp.matrix, info = temp.info, .pid = unlist(lapply(object, function(x) { x@.uid })) ) return(temp.new.Data.Curve) } Luminescence/vignettes/0000755000176200001440000000000014762561726014714 5ustar liggesusersLuminescence/vignettes/crosstalk.Rmd0000644000176200001440000003310314762554470017363 0ustar liggesusers--- title: "Assessing crosstalk in single-grain luminescence detection" output: rmarkdown::html_vignette: toc: true author: "Luc Steinbuch, Anna-Maartje de Boer, Wageningen University & Research" date: "February 2025" vignette: > %\VignetteIndexEntry{Assessing crosstalk in single-grain luminescence detection} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` # Crosstalk This vignette explores the crosstalk-related functions in the "Luminescence" package, related to research paper "A novel tool to assess crosstalk in single-grain luminescence detection", by Anna-Maartje de Boer, Luc Steinbuch, Gerard Heuvelink and Jakob Wallinga. Crosstalk in single-grain luminescence imaging (EMCCD) is the overlapping of luminescence signals from adjacent grains on a single-grain disc. The actual signal on one grain location influences the observed signal on a neighboring grain location which happens to be on the same measurement disc (one "position" in the reader). In this research and the shown functions, we define "neighboring" as rook-wise (horizontally and vertically) only, and we assume that all measurement discs have a regular grid of 10x10 grain locations. ```{r init} library(Luminescence) ``` # Explore imaged luminescence signals from a single-grain disc (one "position" in the reader) All grain location observations on one single-grain measurement disc are represented by a vector of 100 numbers. Here we simulate such a disc by randomly selecting from two normal distributions. The prefix "vn_" means: a vector of numbers: ```{r simulate_signal, fig.dim = c(8, 6), out.width="800px"} vn_simulated <- sample(x = c(rnorm(n = 30, mean = 2000, sd = 500), rnorm(n = 70, mean = 20, sd = 1)), size = 100) vn_simulated <- round(vn_simulated) # Because photons are discrete head(vn_simulated, n = 25) hist(vn_simulated, main = "Simulated signal (histogram)", xlab = "Photon counts", ylab = "Frequency", breaks = 30 ) ``` ## plot_SingleGrainDisc Let's visualize the disc/position: ```{r show_disc_basic, fig.dim = c(7, 7), out.width="800px"} par(mar = c(1, 4, 6, 4)) plot_SingleGrainDisc(object = vn_simulated, main = "Simulated signal (measurement disc)" ) ``` Let's calculate Moran's I, and the associated pseudo-p, of our randomly ordered simulated disc: ```{r calculate_moransI} calc_MoransI(object = vn_simulated) calc_MoransI(object = vn_simulated, compute_pseudo_p = TRUE) ``` what changes if we add a serious amount, say 10%, of crosstalk? ```{r add_crosstalk, fig.dim = c(8, 6), out.width="800px"} vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated, n_crosstalk = 0.10) vn_simulated_with_crosstalk <- round(vn_simulated_with_crosstalk) hist(vn_simulated_with_crosstalk, main = "Simulated signal with crosstalk (histogram)", xlab = "Photon counts", ylab = "Frequency", breaks = 30 ) plot_SingleGrainDisc(object = vn_simulated_with_crosstalk, main = "Simulated signal with crosstalk (measurement disc)") calc_MoransI(object = vn_simulated_with_crosstalk) calc_MoransI(object = vn_simulated_with_crosstalk, compute_pseudo_p = TRUE) ``` Let's try several amounts of simulated crosstalk: ```{r test_different_amounts, fig.dim = c(8, 6), out.width="800px"} df_MoransI <- data.frame(crosstalk = seq(from = 0, to = 0.30, length.out=50)) df_MoransI$MoransI <- NA df_MoransI$pseudo_p <- NA old.opts <- options(warn = -1) # silence warnings from compute_pseudo_p for (i in 1:nrow(df_MoransI)) { vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated, n_crosstalk = df_MoransI$crosstalk[i]) df_MoransI$MoransI[i] <- calc_MoransI(object = vn_simulated_with_crosstalk) df_MoransI$pseudo_p[i] <- calc_MoransI(object = vn_simulated_with_crosstalk, compute_pseudo_p = TRUE) } options(old.opts) # restore the default options n_expected_I_no_spatial_autocorr <- calc_MoransI(1:100, spatial_autocorrelation = FALSE) ## plot(x = df_MoransI$crosstalk, y = df_MoransI$MoransI, ylim = range( pretty(x = c(df_MoransI$MoransI, n_expected_I_no_spatial_autocorr)) ), ## Set ylim manually to make sure the value for I for no crosstalk is visible xlab = "Amount of added crosstalk", ylab = "Calculated Moran's I" ) graphics::grid() abline(h = n_expected_I_no_spatial_autocorr, col = "purple") legend(x = "topleft", legend = "Expected I if no spatial autocorrelation", lty = "solid", col = "purple", cex = 0.8) plot(x = df_MoransI$crosstalk, y = df_MoransI$pseudo_p, xlab = "Amount of added crosstalk", ylab = "Generated pseudo-p of related Moran's I") graphics::grid() ``` Please note that above two plots are subject to randomness; for a good assessment many simulations have to be performed. # Moran scatterplot A way to visualise spatial auto-correlation is the Moran scatterplot: ```{r show_`disc_extended_moran_scatterplot, fig.dim = c(8, 5), out.width="800px"} plot_MoranScatterplot(object = vn_simulated, main = "Moran scatterplot, simulated signal without crosstalk") vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated, n_crosstalk = 0.25) vn_simulated_with_crosstalk <- round(vn_simulated_with_crosstalk) plot_MoranScatterplot(object = vn_simulated_with_crosstalk, main = "Moran scatterplot, simulated signal with added crosstalk") ``` The plot area is divided into four quadrants using the mean in each dimension; the South-west and North-east quadrant represent a contribution to a positive spatial autocorrelation, while the North-west and South-east quadrants indicate a negative spatial correlation. Between the point, a least square line (which slopes indicates, but not exactly represents, Moran's I) is added, as well as an 1:1 line (which indicates a Moran's I of around 1, suggesting a perfect positive spatial correlation). The internal function `.get_Neighbours()` was until now used on the background, but we can explicitly call it to generate a dataframe with all positions which are rook connected to each other (note that we need to use the `Luminescence:::` prefix as this function is not exported by the package): ```{r adjacent_grain_locations, fig.dim = c(8, 5), out.width="800px"} vn_simulated_with_holes <- c(rnorm(30, mean = 10, sd = 5), rnorm(30, mean = 500, sd = 50), rep(NA, times = 40) ) df_Neighbours <- Luminescence:::.get_Neighbours(object = vn_simulated_with_holes) head(df_Neighbours) ``` And we can plot the first disc, while indicating which borders are taken into account. The corresponding `adjacent_grain_locations` is calculated in the background: ```{r adjacent_grain_locations_show_disc, fig.dim = c(8, 5), out.width="800px"} plot_SingleGrainDisc(object = vn_simulated_with_holes, show_neighbours = TRUE, show_location_ids = TRUE) ``` Also other functions, such as `calc_MoransI()`, work as long as the remaining grid does not become too sparse. Note that in this context all observations, even "islands" who do not border any other grains, are used for the calculation of Moran's I. # Add borders with certain weight One can manually change `df_Neighbours`, for example add the diagonal borders and attain a certain weight to it, and add it as argument to almost all functions. Assume that we want to add a few diagonal borders with weight 1/sqrt(2) to a full disc (note that the standard relative weight for rook borders is set to one): ```{r adjacent_grain_locations_add, fig.dim = c(8, 5), out.width="800px"} df_Neighbours_with_diag <- Luminescence:::.get_Neighbours(object = vn_simulated) for (i in c(1:9, 11:19, 21:29) ) { df_Neighbours_with_diag <- rbind(df_Neighbours_with_diag, c(i, i+11, 1/sqrt(2)) ) } tail(df_Neighbours_with_diag) plot_SingleGrainDisc(object = vn_simulated, df_neighbours = df_Neighbours_with_diag, show_neighbours = TRUE, show_location_ids = TRUE) ``` To exclude all border effects, we can use the `ignore_borders` option available in `calc_MoransI()` and `plot_SingleGrainDisc()`, which can take out all border rows and columns when computing the data frame of neighbours: ``` {r restrict_to_inner_8x8, fig.dim = c(8, 5), out.width="800px"} vn_values_to_show <- sample(x = c(rnorm(n = 30, mean = 2000, sd = 500), rnorm(n = 70, mean = 20, sd = 1)), size = 100) ## Set the outer rows to NA before adding crosstalk vn_disc_border_locations <- c(1:10, 91:100, seq(from = 11, to = 81, by = 10), seq(from = 20, to = 90, by = 10) ) vn_values_to_show[vn_disc_border_locations] <- NA vn_values_to_show <- apply_Crosstalk(object = vn_values_to_show, n_crosstalk = 0.15) calc_MoransI(object = vn_values_to_show) plot_SingleGrainDisc(object = vn_values_to_show, show_neighbours = TRUE, ignore_borders = TRUE) calc_MoransI(object = vn_values_to_show, ignore_borders = TRUE) ``` # Plot disc options ```{r show_disc_extended, fig.dim = c(8, 5), out.width="800px"} plot_SingleGrainDisc(object = vn_simulated, main = "", legend = TRUE, show_coordinates = TRUE, show_location_ids = TRUE, show_positioning_holes = FALSE) ``` When there is a wide range in values, it can be helpful to apply a logarithmic scale in plotting (note that the default is "square root"): ```{r show_disc_scales, fig.dim = c(8, 5), out.width="800px"} plot_SingleGrainDisc(object = vn_simulated, main = "Linear scale", legend = TRUE, show_coordinates = FALSE, show_location_ids = FALSE, show_positioning_holes = TRUE, str_transform = "lin") plot_SingleGrainDisc(object = vn_simulated, main = "Logarithmic scale", legend = TRUE, show_coordinates = FALSE, show_location_ids = FALSE, show_positioning_holes = TRUE, str_transform = "log") ``` # Moran scatterplot options ```{r show_scatterplot_options, fig.dim = c(8, 5), out.width="800px"} vn_simulated <- c(rnorm(75, mean = 10, sd = 5), rnorm(25, mean = 500, sd = 50) ) vn_simulated <- sample(size = 100, vn_simulated) vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated, n_crosstalk = 0.15) ## Base use plot_MoranScatterplot(object = vn_simulated, main = "Without crosstalk") plot_MoranScatterplot(object = vn_simulated_with_crosstalk, main = "With crosstalk") ## Layout options plot_MoranScatterplot(object = vn_simulated_with_crosstalk, pch = "show_location_ids", legend = FALSE, log = "xy", main = "With location ID's; and with log scales" ) plot_MoranScatterplot(object = vn_simulated_with_crosstalk, pch = "show_n_neighbours", legend = FALSE, str_y_def = "weighted_sum", main = "With number of neighbours, and other y calculation" ) ``` # Moran's I function options The function `calc_MoransI()` can return many intermediate calculation numbers: ```{r moransI_intermediate_numbers} calc_MoransI(object = 1:100, return_intermediate_values = TRUE) ``` If the weights (and thus the spatial pattern under investigation) and the number of observations remain the same, this can be useful to understand what is happening. For example, if we add crosstalk, we can see that the population variance in most cases slightly increases (the values are indeed spatially smoothed, but the average increases) but the spatial autocorrelation strongly increases: ```{r moransI_intermediate_numbers_extended} vn_simulated <- sample(x = c(rnorm(n = 30, mean = 2000, sd = 500), rnorm(n = 70, mean = 20, sd = 1)), size = 100) vn_simulated <- round(vn_simulated) vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated, n_crosstalk = 0.20) vn_simulated_with_crosstalk <- round(vn_simulated_with_crosstalk) df_compare <- data.frame(Case = c("Without crosstalk", "With crosstalk"), MoransI = c(calc_MoransI(object = vn_simulated), calc_MoransI(object = vn_simulated_with_crosstalk) ), PopulationVar = c(calc_MoransI(object = vn_simulated, return_intermediate_values = TRUE)$n_population_variance, calc_MoransI(object = vn_simulated_with_crosstalk, return_intermediate_values = TRUE)$n_population_variance), SpatialAutoCor = c(calc_MoransI(object = vn_simulated, return_intermediate_values = TRUE)$n_average_auto_correlation, calc_MoransI(object = vn_simulated_with_crosstalk, return_intermediate_values = TRUE)$n_average_auto_correlation) ) df_compare[,2] <- round(df_compare[,2],2) (df_compare) ``` Luminescence/vignettes/S4classObjects.pdf.asis0000644000176200001440000000030614762554470021170 0ustar liggesusers%\VignetteIndexEntry{S4-class Object Structure in 'Luminescence'} %\VignetteEngine{R.rsp::asis} %\VignetteKeyword{PDF} %\VignetteKeyword{HTML} %\VignetteKeyword{vignette} %\VignetteKeyword{package} Luminescence/data/0000755000176200001440000000000014762554470013613 5ustar liggesusersLuminescence/data/ExampleData.LxTxOSLData.rda0000644000176200001440000000147614762554470020546 0ustar liggesusersKhAI$5O4}i ZŚ( EHh[UJ=͋I=8ZP¾TFSj"%`HxDžOHGz_?39ǽ4K+ӟ?K+WB/D/e/2zeUЫWErzjҫWG z @㍜D^fz"""ZЋҋҋkJ^6zuA^'.z]uKK?A?$$$$$=MϦgӳ9z=c<(KL.rn)G P]{D ΡN0sJ,>3 Pj}'&nN( N Ϡց)m`6. 0ҜG3fP ^'XUAg-(ny*Z˂8mx`<36<nH:'L&::!#X+OL/uLY6{B~n_Ŭ]01k4j1n6\< Ϊ^In0byV0fΡvKM(Ud̸̙z&o\u};5ޏ~0f?Փsެ1@e'y Luminescence/data/BaseDataSet.ConversionFactors.rda0000644000176200001440000000125014762554470022067 0ustar liggesusers7zXZi"6!X /j])ThnRʠ3$n/XsZTjBrꗝl,!}!3%^Ő3e4({4-XViGOVK̼DmIq#G;GA(G%bPGuxVH|(ݮ¬IhQ eR7)p0 ['U;}Йw͆io 2׃|Ȋ/|cxU?)7QB@llݜ5JnmxB.6En0pR-! 67:-|8i}T6΃ ByH^>0 YZLuminescence/data/ExampleData.BINfileData.rda0000644000176200001440000124116514762554470020543 0ustar liggesusersBZh91AY&SY!">8 *@(P@4 P̀i˥mc0Zi`vU͚wjk]nֶ4&tLeSUU" i{2[I٪t4[]w.۶-d ,CBdk4lV&IڥBKrc"ڻkatT +Vmĥ/3Gn[\vݴvt9dݱEc"F]m1JX6ܛgV;k-skT"v.۵m6huшR `ڶ['XPR6RXjܷQ%hѶfD+@[ m5 .nc:̻c&Tzy8]]Ҵґfڭ)U&lRVι*è'khֺt.٭*6ƁSB7ll$m[cL +%[e(Vآj6j5M,Y5R4l5KjSF(]5it&j A&K# @0ATjWfVd fI$R!kYRSmhiJ(U:ݚfcb"հ3* - @J:FU*%B6E(vaUڭd"u{UV4PLB!B!:jġT(PFT)95"G{uKEET :dj@2+Q 2UC0j2#@ЦN@JR""TJ 4D% D@JT T" )@ ( P +઀ PD*J(d(P@(  h#@ i@4ɉS@Lf&L  0UT#@ L4ЍOiFhi *@B E?U?SjCG&@ 40h LLѠa Fhd0TMM i=SOʟ?T=@2x4Iz4d0 0@#&h 4d`4dbM1 &AiM0cHiOcS=I5&ڙO2M mC?T2fSFMG=FdeS O)HdԊ?JR)JR)JR)JR)JR(J_ 4@4f 4 YGi՟m{{s9s9s9s9s9s9s9s9s9s9s9s9s9s9s9s9s9s9s` 4 {{{{{88889ܥt pʻ|U˿"bqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqy99999999999999999(*qo{!PS~$ @ū/aag'+/1nv%"M ԅړow i"@y\eo;BDtcv}Lӵ~q{r9|n> פDȿ* ]̒hfp,MHe9AF3HLܩ5eMZqd rF OhMu*&J)24Z[)j3q .'5:0L.Mwp}gkKXݦu7ӌ Qw.R> AB"9͛7L(pՂ₂(hH$""4RFc8uQ+Hh!&/b!qI!Q)t*a_. uϱE˭Y6 ;\6i@s28m2FA"q$ 'I3$IR) 4L( &Gq]b%u!,ɘ$,H=aGO&'9!ai5RshC'1*XŦjO 9Ba,QJaBv!T3q/ԛ0ɊAev Il|TXYI4~Qܖh=T^@4BʙԘD ,T`~LZ,F%P *S@l&FС iCYⲙ)u)Bq),?d'}c›g%@Y6baXPҗ' JƠ.;@nH+lHII2niK9jgl(X-TMh|#Xɨe "`iZD%\iL[K`Xn{BnOY3\dB ,))'zΥs9Y4ȑ*(Ro\2F+p{)5dqXLZJ](rIBRah_whI\A^ JGSXf 4 DQhpdeg-;^P5"L-?+@ȄP]"r65jχ<1/ݿvwҐ& $M"0Xc(jLsqI*k>QaZP*D ft)#)ؒJh4t<ҳ)ڤoS Y0'N#1Fp2.΀V Ġ QTnA4mHTIMAY Qd{ȶ(ud R꠷Y+9* P9sS B!ov@5馚*X)Gy8f'!ީ*Ȇ~R ~L"Q1ȋbÕ<CGsTCq]jtIJҫZXD:,( <12 846fB`ϯG)bI"T8Cu$Bјʹ]kޠtdԨUcba1Xo&jp&j/ys(WFB,E IK'XeHkzEmzPMcINHPQ`ȡ@9huQT 筴^c*3=X|#5z)WB8VL:X<6YD&F4!eʲ 07XjwZrXhI-2bj-)îH) <\VXLUr>ދMk\WQ1ޙanQ4 Y7olmkݲ{0uLp d$" 5 CB,P;!RgHMbsEʒw5#sCM.2ɤdr0XDeEDGWqr`ZuRVכZHRPʪ(Qy { F.Ƣ-2yXV ĒrTiIaNK@JYQzV2u2RaPMv iB tNRFz7 [>Rc59*8% mj՚kTeIu{,B%AERHM՜C'p0q4a M4ҀFIBS2HyVP(@)8dUtiBh)КF76F{T4ֳ5@$e)D'usM(/ScX/ZB E +`;®ÓA7 B‚bpE9A5cyHd@*pJqhm|<K6!'uY(C9R@i]᱋[3* -'[ NB.աN*7 BhJI42m$ra5(l:AJEp/%v59P42uNStӝnVgaR>(3 =<ڒf95ޜ槼DS|qvp]!.SӮ*m{Sy k)n/ aN9W@-#K :;q 8҂]W=([Lt\ϒX64ʵ O*ẃܸ(N`,uGJQ+XBhdT Ԙ%&C)RdVBY'Ie>UL@s$'lFF^ESɊllץfL* OibA (iAPğ|f:B#B ^,ZU7pRѬyf@ Zjye0!x'JkoeVb̖$ ITuV3V +:YTT`a8eP X߮xatZV7紸k*`(Ԩm%y`##57s<(VNt'J;IL3S߷s&V0Z) xi>iV$z'óO# S^DSK0V@p2C${*NrC)aLPI&YvaIT1ȼtI0 2|&E!&еop+5-&s#Z# lg =UBJq9 jIf"l˳i+Za*R̾7%^V9R:k3`0G59(Ćl3YJbwzot"2pb'H : R.GǝvY3޳B\o+Uia%aa [kޭaYrVAƥ*'DAuVJo7e^:*u&$K4[^,=GߢA(3V$ .Ac,2۱by&zKM&:h"gnvQ_ 0D.مi #M(̠| V#SSrNFioL+4 h B Ƒ tͥԹՈIS,U3 +JІFa$l;2\Cu|uP,bzVU>I⌁4QHxlÂ؍kW@3)WFh;VDtXRFߔ%IL-;sCe=KLA]lqEd5c8UߋRA ckR颍Y}E+<9 c E…4W)iaHX%&7?%zq-!XZXj+ Jj(uP'=SJ֓+ZJo)fLF$€A^7}@Vm\R˝2y.bȁ䦤MWD,c:%Af2׻ mK(P#oZ+bݣ`h+(.EZqMd$N帟|#@u8ǜde7ߡǟ2|zZ _$dNkjȗF@DŊMp0xYIrîMJmaYќr+LqOl*gW\ꮔqszRھ]Ig 7u%oZ&@$(yney IWHPpD FdS\be "[Sd:[& iVaNIC|cj N3[1e;50:!:'eyD*"n@=ZA![4,MnX{ VbQ[W(P HJ1Z:<°E֗ӼH\iQIWfN~e=ZQ$x|L&C)#֧ftR\bT,LAp3̬'px:%EMDgY<=ڊRhT@@MI%RS%dVM1{سZ^|~U|;VBT0@J tz0q$)K<9J{ ]ciKM4z еDFIO)E{Ef)N gc;2S'ІM?kY~Xi$OWomY_zj-LV2Uï2 8ŷlCXrf]Q)P2hȽ53h eG?3y|avDCg72O 'XնkK,/Ӷk)cuAyP`Tz֠c;PuZL!ZqHwqP (4$VOTڽ뵳{dIV]w&YyLN5bk֊Fn?=XVtOlsTZHأ<4ZCwS":T̄9U0" { NVy>|OBqt~:4NE}o7n28]_r$ʯRWco6 5ttEh2ݟ^oʽ Ѻx3&z}Bo캪wҵ9(}$hԧ bCΨU KY*O M9ՙBqf03NQHj 2,Ih:9bh}*mz 7 s )ͭ%&%a@)Jm5LGRfo8Ƞ6 ARKIjI2ѽR,sYP#De\/$ `+f<٥-C JZrNm4qD~Fvb[t:LBN WapT;(tA#y5,N0-l1)2եJڮ@@h8xqѱӘ n#ثEX֏EPʄA@DVCetM4md)[}ը9vvU 07^7 ~P&yHYK, @E-#27U~:$Ӆ{{OԸ}1wnl{/DZ^b6 po;%J`j=Ht)4B.2PZ*_o-\7z:G,\'8d~0>}:×[bmeçuf)0߭'qH,8tuH&IѸ2ɋMEF K|[ I=r'ZQtD~= 7rm3d2a߀VZ&2dU}> o||~l ]H d * )(/I׹ra0'v)"?JfDH < ir WKEWk6 ȴQ!X*sG')7Mm}L7םTl4"rvįkEm)am',Ai +{ʢױ-@E K:HQyIQ0wfNpg fb7cP>YcObK_+kN[Ƀde$!Ģa"C^_PLRx]w>qPPR5/V NA*9,aqo|,zg$)tRPe":͞d}בi#3:ׯ-BuF6P7hT6PpSpQN0ˇ xh^s!rq{SS>l|6g5t4^8$WVcD-b°>&}a]8(Jt[7Q=Z-#S0gRSF˶tV%|JZOk$~(f18pg: 8I_@ vZGt+uOP%TT6_aKhLG@sxxe~۩Cߌ7& |w7?mSߘk"hteRef[YҬF+i#}jT“->xj \+Q!#GW`Ebe\A}MRHF2xi^ihlmdb3}+M= +4euelK^3u\[E6V. }[(m5qoQ\D?$N[گXVb ߂|}Qtʑ {yڛ*kO|_S q=}_u 2^j3f 2S66i6D(*>'6ͬ=" tRK[~?3*CkfM9 pc"VPFʀj?r8bوֹ\/ص+h:iZdTxqaJ#\ Ӵ-h^&+V*ֽb@DUӓVj6Zuf `:kǨ6 J*R3(R\\3S4\Txr1 ݑ!d4n[qM "Yz-+!_]r'L(\?ljS<-NfwY .$8Sn*8ا,z([O U fTgbyЛU1㶌J>>>*j۔R;ݼV ! /ՅF:H^+ABs ;Se:(w9t`'Zh-&cd"GC~,sPyw6Xu`9^bFj%8[@˙|64Mk%D~e`{{Vh՘ 8ݞXsn*8xsw9W͌(j?ZhЀdUL1{6+Cm ibɊ@1s*R*9uj䌖9Z6 UY9M.ߦRbӯBfڇ^bN$Яyo# Qq vEtLih?Tj.U Rs8K7=F` ?=Αg[SPZ8ss%Kk2MPnW*sVDGHp5f|lE}sL[NXR{2*5& \PDǻ3i x=k}'$.ǜ?M'UWtU:d!qfsNe*i+kkm%Z/~7AwRŠ~vx'aiSl~' {Ү+ j&m:=iAi&S# Z Шr UVz"7 lTWdD辥m6qL2c):+Ej [+HH8Hr/PtOJ*qwI[ew*7rRSD8>jE:٪@'hdc0%r2ÍzcHi̿-">iwq12D(GexWfҹȑd(i\,St8"2(-5Z y&xŽ0{e4x0CĦb0vȼ˹HRΛ- :W$K [>:;M@HFYm3*NF6+/F@l}'s* Dh 5 Sc͇?ڷ|%| l{╺ta1RAwqւ^FTeo1'miLM;MŨ!prIRUj:bn'j%a03DZ[^Axf齲[x'{\x(_yJt~E/s$n. $}ClN/i)kONjBS 'yV.52EEBRO!`p4*'-->!qOH2ɫq6v-i?%O{ B"H'zCb-840PXK&--kSxU"?28K<.y|bO5R_aVU@ƴp {;"4cWSҨNe[NC_6iN2+.xkwGJ4FqcOYđU wQRRS۞$q ad}eh'ہ`e9ѝ61ߺ\.1$aQtAd 2 ş{5嶇%2LqjA]ɸJvqhVNU`ȌS.hnA`ijpV٘P$¨Z$REutGmA0㍁Bn.?PdCEaqC3x.4Hi9c(`hΞXGTAع4i:(QX._]]+n&f@alٺroLqIIK+:lFjB3L$+D04R(a3` (tG$xK ?FΜf&Jz`(]cvM>.=v+sNO]Ayg3/iޝ`v4wqnv]ݖSt,Ѯs?!Jv-1 zoc+uthc.C_ eX\ ;?d'4 T\8u̕k{vzi}MFQ(4Aͷcѫ]Xm*V&aسݐ:DSLA;!v!7^o35"C\ fAA+^BC:KVEJ9,8hTa֯& _K<7M$%`**Ğ@eﶯt$^ttP,Ԇ̣!" ߲ gܬʒ .cABȋ@YS26UO?Zl"{+,Pۻ *ib|hG3enP) X_ AKo=XǏr2-y; yolxGé۞5Rco8%k(Y ?kHl ,z0s4ۥdC`V~,y#]\21Kt;7Je33^\6t<=w\\+uO5&  }e%DFlGۦ{Qb̦vBQ'XO$EE1J$AThQ񒈫V-K>۞}zM>X}M+L]9ʭBx]ËM1馚d|eXk""4H՛-`tb6o,,XޠyTw$<z/wVH GzO|;Ug LyՔؠf"5eI\!(AM!Mɼ7S[ 1@J_aQ$xqPC ״_C]WK?uIyW+?P Qqh~Y[lzO2af F0wR %:`{_!HYC$RkWc>iDewV`ǠDZ! + sK{8J_ Um;r]3?uӆfOE"%`dҚqcBb֕{֨߷řaHSHԒ5(I FDW6*YNZO:Mx6YqkVxs6 ŁbGUL*B8lS JʪosMWweX /qGN8+DNޛ-U5dW]:ҙj8&! Kc3rvxsU|{( L3(A2$д̚rɞRR`sdɉ mcD2bWGWz.pRN ( 1jȰZ2Ud m O*wߡػe 'Vd6"@yS+2zӾJ4j ;ScX=hXt$K2xL 2=W^h-I]q ^P/} ٻ4vu^щ1F ٱ5D@4RyYIHGUP}˵,ߜ'Koדٺ(t*)܇- a,4SR领֡ V>>M}^ XZM)ɸ4괇l&FeFT}c:ꥴ'F h>Ex AA2X'ԞR@5 `(ڵ6-EOf5dU̺DVUR,D "0t|+$ D)n+.J3S}猪Ŝv.RZFУGJV:Z,_[PaC91+^C)I!d)4R;N_?5>ipv'`eS.t;.ijoXsNV C@#Cl O{W|rՁ5dKeՌVA7=A{=?^JZֹ1[ǞJ]χvKS Η .7 8ift!2~j-ODҚAaG9؞Ј:lm" %lW6X9J) H#F=R&s`hǴ DŜk}HHw 4ČQC$l3֩B+3E:Cf'慹S/D[&m(tSW8-ԴT)>?B cwk%3 0hY ' {lTQRnvUz'_k/Ռ>7|jTï,+G}Ch r^Ik=DCo#FI3#9pdžH3#-FN7QFs^,RmY%XAon7u"z*ڣJ|d,Nhjp  5a.lVK,L~T10b#A7|ۺ HT!]CNrIoz޻uuXx=o* ,]D\b)Dz' r&o}2kl%!D;R[mFcnO,%J9Sk A81HxRٱm9 m K (kHln3}  /4(Accr0#3>A[@+~fBO##1ِPMeAq-SUdKnD> =@mO?p6@<+ű8\zjXPF! Mp>(U57ygx{gٵjسӋdefklv,ޚ68װe{VƓg塳¯~S)5[gnAˎ ~S+|0>@NV }9dN  {^5[u@Zۊ=s?x8"%%^5ũLU&eKLJt(ЧpĹ_e =-KC4YTTXˆ-7uRĪ=<.N&Z9|5^YNK+oFs43"f9nqOb [ M;iơ4`"嬣HMGMLC{ͥBxGJ0l)A6TmfR3>JvjR=-+uv+\S4,j=+ eV҈ZuЖΑIupd(u$"DAal-zM6%Kޮ hD'fbVkD0%;0Yx̂p@&m־bpá\HOlAE?X(#,CÝbI2 #;j[ l\L :4 *t"Y-bf"B ;Z<i֜~:;).zePRU zFﮆv3骱I0qdeEH=E8ozGDM@T UW2 Wxbl>!= 6&ſ) mc43P:pU;ji;ddg7d}x} YQ\KL)v!zR44sZmT N |fF>d#qx  5%WrɣB?# =ͩ͐'B v>}X(b=L ^5FZxv w Mj!k~yPċu^h$Q`z&f+fMMXDD+ Nw@]e͖즽6V*d iu>>ɜI}ti4Kv+J73:M1 l73nԺ-EƥPeH dP>DBDjn C:Oz>m]^_0?P8{1O*UUws+)йfJuB%k G7!o4lfcQ,NZ`}2DI >_tI *lp* 'Ψ((QD [ ud9&PʔU Ȭ AǙ}L(VmD+Q3 UF@ξnDj_ #N"Jl](iXpA <$F@AK Rvq 5)h={*`n;vDң+^>ҝ֧1؋lrK!W)'OUˉ]-kLbuMg Ca?pTR[xwB:􍲧fkYŎ߁αsEYfdߚ{$997\}p~{4WY5a`XUkptLط4 =qk QiT1cT*H,!L'R|zKtߔKOLOwv=DseX'N0^a#,+,,:<}O';HMD$̵6aA b` ƒs52Y @170˼ie3mFμ={xchW40gw1 6B 4e-▩%$k\,7l ^?# }! 5\ ҍH$B>Euc»yӚ?V-+qZB\ª *:UWz\S%S g:M҈EnpI͕Jb⛂63ϟ3}|,Xdz`'FZ-l Q*V 5B㭹X_oe,!~il)AGE3k[ۼiͣNph-=~GNk\>g?I1eT[ `Zh{XK@e3#RbXأӰ](‹ 1_eGimB&>V Ъ6h[Mq1;M0_? "Lȯf[5l#5Ј&^F!8E W 5c q;fZg2P1W֫' =fd>K3;EMci>U*u,mTij`va*X1_uֵcWёӓϿiQΞRL]R%KtMb\vk 3>ē wZq)};&~bGffZfj=Fynb67&/E ;^;15"*Ts '0Ɣ躡>tD-Qz>DxhȼN}Nzb5g S.H<,›vGvNTax4d3f$%}[;*7@x}[o9Db0pfH'SJ.S䄙ԁn,mڽTk+>֍t `PL4{挊_ǺtSԮ;|3n[MsG羽.c3H6VK}F[-oxI[lbh<.ճ3q-^N7 H4 SpHfE+udzK <['M942žMOήpν| dR7fN$&2Q6GzQoKu\ͪpҘ@*1BJmD*[@_uW:Bf -c0]{R8 TAp3ŜAm"L 8Ink3<-TE*JǚUXXU=7StB(## 2:63byh]sb͞61GDU 0* FU;)qz%D1t풃c+r}#E^L"؎xF{-5. d֗jF0F" 8o<{0!ŦFFNN)|1]E8 y^Ṷô2-dNZ?̃6z9eۡAۦnCaVJ@fp=ujDm5;b~qeG(їۉmd[x7e)WTxݩ 9^0](ߪJ<ʒđ|Ŵ MD?Hb|NnL}g\`D5y\vb\V*%ix VQyI9ٰB`} x&֌2@':l]m!Ej8}֧jZ` C5[ٻ"hҭ'440}4Bw3cРyo,v~ףy:ݬͫ9'qvhxkhhLt(7DQsT-g pӗ0<õs̰^E;VB FϹPCd&lvD x]D/p7VHgB۬g?]qt980m nCD{>=4j./7^2m 4gaDfGb'y$&ӮqJz2rboT\׮e7W'+vʐ_[ut4()l!M[e͆eaWD<q/hy`D0$Rze>WzNWT<?o "xoKUZ 8Wr&e7Q-AH=7k-U!xkLN#``X7OfP 6%߇N2zU%JJ2/IK0}i*)wYZmBCA~Uu˜ٺ?;f4FQz<꺚#~7lBl%|-5P {^ * aSYköR)wPaᢓ6m7c]gTCgw4='qø~m7jc3ՆE7Eo OL_m!dEnN<G'GδP$/)m-f8n(3y@42Cb Ãi&Xn 3C h0P%[X]o #/yؒy~qk|2iwZk6U@d}'\5z:e:,2sFC;‚Sa/~LݠJKǐLmҌ?> ;G}WG;=#PhA}WpDŽ-)]$OX6ٳ6ZtY ]$8&R}K!]ƃbTkk^c_ [Q2in1 'RMl*6z` ěCM^^bN\AԙOOc$7Y ||| A rU3Fms*r.l2b g$q )Dρюfm$>9"Ͷ(w`b`=> /s^TTxaپs:'!{EѪdw@EݕMbhTC߲H.iUs2ev=u{n` JE099^xDрEßve[ŐށxƊ1z=A4n S?k nE*G^dMㆮZ)`'ˬ-@,|rvPÌZAj)},Ff,wP/L)w,75`)k-KL0YىpPQ$xyF+٬!ȫ8ɥ49%lM *wd !䳉Ma19GmhKjq>\]LJKNHl*f oSē6Y@9[3ttoRyqG5= dzWj])c !+uH<Ȯ)Gt1(l#(z?Hٌ2 Қ@891 emPA58[ &'AnXt4ä ^x-1V QX34NƁUt `Ǐ@p4SPWs]Vhk(@|UtY70V̵7>X"IWTk78xE# Y@%hýNCW l)r<>z;Ti V{IµK!wڬbT00t=zp K˷^I͙dD7E5:KYëk+%31"/pw0ƴYovV^.-O!Su(cL5x6j@-@(!`tg ps+CңcJ0D|kH8ڪs7[l]U5J&:2E}tQ.c;jaC$ / $FJc;9BycܕۚW Hzw- @KpjJtߙ t^2T!nu|q8/r<ROO%WE<ͧ\c0=MzhAlx (P](9o2YRDOcQZ\RJI:Fl3Ōy9p<9_U^5Z9yu|JaT ;TADfδ a0V3r-RnB%AѶ]?U "eHnzX'ffUnb(*qe.iU@ t&fjqY)a,ZMD=Mg\tQ#'I%N_^◥Rp?IwU;Ut9 #9hiY7$!e;^I|2PyWpk9 $^79S$U)HW]lk4ў\55(ʇ%I0J\!.Ȃ30֋3Ib/5 npO6P&*Qp若tx%}>AuY*sl$mF[CC:OaGj6Ig1.9g?Ae~VMmt@PT]fJ s:I);Y S+wїe"WGC@{q/K9:aY4-qn9!! ]/T ̥O3WG],ݽ:9GaydXZ"CCn3p5f0\)t'~=T@j"0&$PUj.H9% >pɌ5$~LԳ׆etxOie94֩ݕHL棒 q7 "n\޳@ӖUեc lkeʤhUʇb'GNp0+8G-#puӾD1:! (ij뗪>&~8AX=}-m^ Λ.Ґd梴.e546-b1ɂGZ7=LrrXRW2orľNI"5Mcgy)g}+ 12i[07׸M>Y4UCїc =XIvB%vƆ-*Pn9э+-ax˗ěM^W# P-L47|3^PdKh 4j&d/X*x.a֔N8#y8ODZ i_T$g](vzߦK4;%(&*"t$`ƷXEsE84T,!}qpQN.eY~!DCbU8R}_!{~siH=(.c>yAרT<]HQ\eԇ R=}G@3ssw]2#A2 ]~o~ e/>D/3ߔpu ID(PEdjC!i&{$aݵieu2%ǁM5>@`' '{(a24W:Ϋ:@{zZv8ٷؑ}b R 2 z>k [αa0Kr2ymNs xU\+_n(Psfa`fv煠ib!2PlI 暛ަy]~ጛ҄SXYbHz J1O~9r4-\Sh@[290jS[jک`vrri E IgCj `)OS;xtOVɲHy2z)";6'c29ٜT (HB^qA+A푒A0~=_D7I^Y*s?w,*L~[{_~ɹRy]clt}!,sct)mA )%@KRYSHGҥDֵցu]z=bb[y)!i?}"H Ca[uU> Nu"2AyF5wCPoZ_z-\ 34#ĈIAЦ@Ry)apBi8Z{S@p`AJX7ҾM`*w>M衲(&Y&+`>=ls8e2ZUZW&QaSrBp*ޜ_E-aS PȌd5CN@޴Gp/ܓV\NW^_c&.j65Z9 ?_Q*`yʟ h6 2R=3SCC":vapAS>>P{Y>!j$۴( 'Β=} :7%|~}č-S./jB>}~QVA\5+I kw<>LZ(Cv쑧Aܚ q  qmaDgVM CB l ɮeJdma)Î}u"MГ@S$^ N7k;1 xgA,tdĚ"ڋF97tQV,jiCw0Б!ϰS 2tN[]EO+7){XfWpsy-OGϔq fg,B MU߶h-qƦtTЋP"_Y@2/^F[Jo\(f$ځ,ie81d%BJ"aymf˳)y'=n29EŒGݙwC4M mS-7C-/ IvgikOM7үÝx]mNA|94) ?5OKlj8% ^Gn!iٶǠ3&fC[M{GoVԥQǨV%d&19YI8սz' 8,hSuGHkF:i<5@E f[PѦ~ݧ(mޗb<{!-$AIt D2ÐO5#@;n*M i횓h.~bMnE*6rΰ\pL`H3*~Pl݄5Y]ujeJvO4iwP~$ܫY6C2rzG(M`vd#}l%0>DJU 2.LQ!,~5r?:qqֺ̱ km/z/.xܔp1$,ZDag  We)skTVOYB_^ E"N,ZX䕏(]Ko7R$yJf/ɂ CV&^)?'7g;m1-DT O0S,Q'N)d{92 ia6EO>ˉtA蠙dZ l. )(~9ƄK)!v1'tZ]L7×" J*C,RAbv1,K`!}* F "V |l.olMľ(p)b2a1 d:WR=imWT":2Jff>qJRvEuWD?y.ս>V;_OdL`v" }3/Tx .}W$=&Hh_:׫ik&7/*Gea.(wKWD·0]&7B^еhH fbSp#,4ƾyO'FnD1p~K'rNj) 4P"0A ށ'Y5dh7jVAknV$mVROAbηEsI7!uGŀs{Utn$}q 8F*O etvsARzҰ @?)<#䡢EpBxdʒjQ38w) ]`7,>!yjd ]khC&6.VWBGn CsLaeր߅2q[Z;P3M8;SՊMaH;5=jLA6g9hUP7J 29X`[eK$nF _v󃤇0i@7@0-+[.2TY 2q(\Do53:WjO92L6#-<4%P dX]F`!4.%|D'uB?n#n#3P+Y,bA{ѷ-V[h{-ױ)E}f1B #q 8W VK @[֏o ;|3ckuʯ_DŚ`YBücenYyyXp~e*9ۧIp8V;(HrGtzrQ5;Z>bͤF~]SHW_y^X=fVYfrc%84S1AԾ4@$dBtert(zN1ªLjwQf)0϶Z Q1Y]c2|QW̏ʭ'H\6BN99̒WHKFoG,HG4 I ݑewWcX50 szJڦ#1b!SBA|׸@Y6{)02~1ssgyF 6^&* I3b v |ynn9< J$Qs2tN []VeTT4ACف)9҅(T`@'(NG}8`T*(ˊ뮨eR20W;;K@j TeZLǪ uX\ؽJKxJyJ'~ӴF%I45S~Dc"DE0 8!á69j[#cs8 PL&OCTQɓ-^s޿:9r٬H $8MZA.[&?wtW1mÎ!ĥ SC-uՄaAӷg^QI7j&Wf ] hM—@䘅u&J`"hmԟ&<ID5!/Q H=gQ'yA1JHc;1ƥ>5omwE5qq3ECBȚAz.5\5ZDǦp^H Z>9UE8R4u!az+MnD&.+k]kY<MЗqBJ+\y@u|U~>$GtpmhwsZdwax:H'3`gK:VO~w󓪅 )8,UVggX>J%1Sa% K&q9zn4yߕF>/v x珒wဵ&ۮ=kPh! -~ 3h?_Ft#pkp <ŷ) j}91t!㦑!ϠN bon얺w4Jy8>R&avr GQ~##d$/Ktzl@eIcPhT!ח` ;Zs^{g)B)^,dw'Ȱ!QE>1GDjjFSk[|3s=+3f~wa%,9bnFNqz/; $x!)*#Rr$?) <Ǵ Tȵ  A&[h=z1"Gn^UTMIl$L1#=M1Ih~"-՚V4X(߶$4"ڣx]TV^ Ұ_J`#¸F3tk;v*3iV%&9N$(͏\  Yi&>vN̂i~C ]ZlfcE%d$|$gV VOYjt9/M,"A#UQ4r4,lI-9 ZKD^<^[vOP=,V1aFNzDBN/r[*-G=In/~r6nq--=kBgx5gȨ:rr%R&X,.! 6WL9)Naew7qP*R7X<@:@gb_/Ԅ/jܵtY1aĒC.Eift 9{ԣu@V=KfDͤ -0=.AM*Ey~fR/Ѥç+8g~]Oy(B+;À1Lѧ;"-L|*Ċi=\"cYи~>.rzGW.gJywU&4e[&+i]+8Rl( 6:A"Q+;=+< ]@ta=~3(0~p:5 exWQB3_czl甓jxBjKh< az1'sdč="ɂasmވ5hLp{-2uWU3R(1 E :*1U-hA;PUl[w2\Ѱ3UdzOჹ3/x>cH$L rϮj0aI'\ \58Z)IUx.QK( w6I=yQD@ #`{N} G:eqUlWH}pM Ьs#Tx! g=CO8|iSDBTF.rԜ =G:5dE}ì7rxEwC, @9T.', kqw' ^tHhg2~:S4߁FFDfM>QQwmlBb%!*,l9Pe˼ D8t ތU}k-;#?k]7S(^& LΫ5 IDtnܘ35egM?nћP-BV Ƞo$:4=")mGuċHdC^Z _4Ϙ]Ozp_⟈rي_~֪{"C!ھ e0=j3bٹܻ<]]JՔ19v6hk~t[muϩi-NJ72KE<mkp:βUqƖH\hwږCϹ&Dh1Z'+oF,/0]rȬNH y6gNYBth93X}L` cIz(M.E< 6T3c᜵rZ)`_!=|f48R u(묟W/14%:H3%g=KJGFx0  S8=cRSP3ot۸HbeqN#ߨElBݸ\b ̽tWSR569u^AWst=8tXZFcӘͲX*T.zmuYOBY0'IS}/YB ~ڟ"QεM@zsl7پ}( u5@TRK߬ [/r5گJ*/YjΘYjM.v5O)!5D*OeL9X7켹"Vc7SjsH8@5k>Fx"6eDi{\:8YAenPP͛o KUu=':bc>c{o)WIv%ж)~q~pΏ<0I"-gM<ݏ!&֒@BE@ T]ej9ZU.!kQ .>H醅179_:BmQԔP]I<}hRGzzh͚(k}w!ĥS¤*z mm(s٭b Sȣ,L3yGQm#=g٢'Qkץ-6-w\ykrJ38qتCTħm~f,mq7oV>;DVitC(NdF2dZ;~!-]C#Х+YFv6 |t.c۞7LG`? R2z#Ŋ%u7:-;|3Qͱf NK&~u#6`BSݳ;1wMׂɹPǣKNTg]16*o,6T>Y9zQyV8cE9Eco&F$g4JZ\xl>ǘ20)>uOn aޚD\Ţlkٶ6[JHH |MC}R|[F<"(NL<1nVf0mg)[\$|C O5D0aeQzTcw8@.g< ٶrv(0SeMyuLoܞ)f'$s1 L@Ͱ="D!,-uMVV?}oco(M:pKQfLB?W4z/, U5ߣ Rb~HoL1Efh]tr7Bb7c]_ Tཅ` u,ڙRC-Iұ  6ׁC7 ՊqE rAOH)Z,c<y K=&iCPͶ<уFv R$kF4SfdYUsU cVs=mנߣSV}iƻ>˰w$wblfvB9KDW8<}OQtmyM:] HQ}^}Au\1U& ` EOfDyRCJx)HsWR@n=ToRΚF-x`I;,eqTMvHI=T3{c $e"OWB=؎V}ڴ0G˂_>JIr iDO=n(;/Z,ڞ1?mWW_Ւ^U\v'"P &/q3*5$o`ZiZYH ,9x}\,1إ="r\:LFbXdPF-C>IA[Iʴa<xߤG&17[i`{0*FXOYЉE /E9\*PAcR0۹ZiG E_RygDھo%T [J٤| 4N!{dQ@v⛾KU#A3:m°&\6V vG ksgX . wwef{GD§U&tbΗ]uA(p,Ej2ik]:2IW7t_&nD+m7x:%o^y ÔW g,Q|erya^> Dh7sijW2VVf'h-WZs!#x~B7ER #!:S S >^!9f"S.g.[8v_|$ΣkU:ig!đ+ 2w5%@iˠK'F9׌DŽ ]x4.l_%R:%uA= ^IjMևFM C[Z+7 ;J3;^US.ۜ/E(RvHmc-2ҫW6Duz0K` SlA]Y ]ٻSk->e{4rzL=D5v IPxdˀf5$^#ګ yfm(¦ ա-)XsTˍ[,y;jqcSӓAXQHLb@%&qؽr>0^ _kUGȽ&<_`~&mRIkHb ,6=ZMb3Dt 8$Qs0uRQa⏫HL0E.ڹ(osEɶGeIHaOڤܪV NDu еDg SX)33 ]㰜wrZD$X}@``_U'Bu!$5p`B,Y^W ͹] xyml>xdjcC6G3 F7aD>= +OSĵ7l?:<$h3!JbݮI@ ΒQS@vH(6fQA,bZQߙi %7-`90#Ӌo~$'# `lsl0q@v3 <1`Z&?$?d}s;$nf)&zR܀ ME:?bFYac?.7G G~Qt؏+?Ut?9x̭pHXF2x(F*ԿA>awe2-4itA-'pHu N)Lnr[/ah X.l`pKrKg@ 9v%!!:(,3"H8F W6WKy ¨%KA~cӔ,p"N5F'd2alt-/H6qc$lTTW*=q%&H·$H:*xx.~.$ 99,lYAE_=2_GBH$nqs_B$I$,J#`:3KiU^9@ȯbG8wそ̷q~O@~՚[]l9lh@i>+Nɬ¾e8TKR6`DER07 M/R]6H\xBNet|8SMBl5I z#9FJ?;N0A0nE%Jދa\ 9lBJy  X޼sDy?orw:ފ PEXCV)H壻3^f]Q x 1o͞L3![:orb^2nSSlNƐ`sg*c1(4Xb 3XV;J3,B$&kU gvJu-hLEQ8ܿ$7|4Ғ٥pZ߇(E'$ʠJ{˷ R 8Б}ǢOf%kX#􊇔 ^1܀e3kp -&^+.tdݩϦ}d.ZbPl\=LH8B𜀝܂B `#N }/9n-Ǹ~Hm<94LY vvA ڵ.%.$ h"ࢣ"#mgcQ ,a9^<@!A dKr%N.`5"޹( 0PG “A!ooN*'-&`;I6|o{PA3aa!pf`۠/_x/+CTҠb=;RBj{^υiW(\=mRq9R^xUb4\׊[CD x4J%N>#j P a ]V\%Z-8)qvk(XԬvWވ: 3w[1x觤wEˇV_+EBXv*% KEH3yk~Di2XcuYnT8XG ϓrJ;Uۥ;~ڠ$C#0Qxt7 O%pV攝b'f͒ JI|b}q_*3ܵW"|KYܑM־ª+ brPUٲ)2x >bI`~b' ]uM*.f[ſ{_l1CW,K>HѺem}s~,q5$,M#f "4d"ڴSHOY#ucP*A{*}^upA/ : lD d:kc[R wc~$LlMO0bFb bJ}`$*ܺ0]}m@ؚ :v0U5cQ( Q}p@tj'­ih,8SwE#4P-y0P]e?fpd[y8}P <>]# P+ :̈$iE !ꍋLV4L]t*jj͸![KX2vmCdC;wje As٭d3CꚲvQw k+AЦǣ4; ņ>2v]NBEToz~'FlLU22 ~Xt DZ(OS(k6k(J_Kv.λ,U#DMx$r3:+A3Xþyqu=e$쪈{G`|4BL=+D|m5m^nbb3ro4'{떼hU%离˚hs~*.zo48-')A&zGl! +vI-T2<{EѤϦ-|{}5LU5⡐w Q_w<G$"d B\FWPC%51` ltHTPϷ:]kM^<4^Hs>߈fB l4zD&Í;n ף5Peͩ@ ?hU޼S7cըAvU]7W-[a4LYq@(b !񔶊~dP ԫZVN  xȵ$^! &wdrBS'AZ/A%r1y/6B|TgrúK;ڜ+ lҲetEU?,ضQk""ݴ8X}fza%ET)Yݙ%a +ZYѦ/dF:z[}dAK';p4I9Z@M;॒eզxB0wЉ02rj0̠a;-N? ѿO>Q͝`+%r k9JݧJawYE\MUR !k$/tpX'ؒת2`S z1{`和|w,jQI#98(zY)9̴w(C0}dkb+CX$ B`]|PwPB%jߊޚNs`h$j*A=\t< KuQG. *We^ӵ%ztD;|˿Zkr 8"^+Uf{OaiAp?F9P5nյ'D%v?й䷕<7nf8У >^/!=Zjވ|:&dNh ҄{RCwRb$v߆ T>񉊷z@u|Wh9vbmz֒jg|pI@cM *IRE- o.B^㴓"3L8dzAaED⎒B*5N :|Ygg8GVF'5ӒL}a #d?\ӅJ1\}bB(zΓ1 c/jzԔߌA`Ab׾5KDK N2Uؽ6`/j)^rol`Z-j{q+G^[-t0ߙD9S@J l(k;*a}AS*āJyz$bIncOBw׶ Ewi#„*q6nUAYue-8 PƵe -sQ*L&EQĖjE| =Q$'Wɔ ##^).UT*r4=ќ<`'5-5x0G!%jU w8Z<ƚ:I$:ہ3iQhB=NN !@˂)ޏY']+cxELWHn`3+FՀuMDIK)"ٜʲ"MFOU`5)e?׍+4"XMAep;+bH@Wwʲ61֭][|̟P@n' ?Uo#-Nhg}q/OL"6\ %8-TgtDr;zg#<\t $":9JM,:jb4ܣaSp-mLMyVN*vjR{QVcalT3w=xl YŨV=Ave7n̑Gp-N@!??7(;m1w+QT|hqT:M9G#8:eHHxeg >4TR#$E4>#m͠G>^2vY<;b=/o9uApzMKA(L'T׭GKk| 0!G{IN6,j~$y$<2ˍj O2/U&QnE~Bljo\hK aw. ڿ;Nhi2Wdvx{R߉O d. zaQ'٢',6O~f&(!ܫ{JvQ~5'"#kWijh]Hyac]TUa;"dK187(&svO47RqseA f>0vrIqay}(q!'F`<SϞ&E#{T ds*Y: nǍE}V+@_d/FcimTAQ5ƧTw_֔+fHxŧ:J991ƛ^ɔQ@R}IM̫X[}8 9-l0OAZq8tnUbonXɫ]i%cѶs9a]r$d?P|('@)}B[|Hݶ%Y!;ѫ֛)c{9iߏ0絸y-)huە[<\TnH #w9حEŔFVMGS4ڏ<Ǣ̭DaUc '!TP'&9uiw|ow&oyn7;CsJw\(өn*DK1BSlGH(@܉Ӑp.*{G+%2-VBTbe뫳ͺMT%Y5m/ 6GoR=% [3+s0wX #;B v>J-GSp<," ^fPnNZG@3/{c_[ Y$;`5 rKf Q"Z% f1)4[uYgjEk^+ ܽ{;'MISH>vvgP=yWOEPNt:W2h&ζV$zkF~P-xH;MxIQ֒[L(=?WJ[a ]&|L LnF@Y QmL +mWA 5:6{5T|jN#1pue+Ot-sLZH&zxH0~=jd ;2 2JiӶwT:qViZ`,˖r~;~-A @Bz#Kuͨ  4j2ZDAt~~?*5$> Z~ g4 L/BN꺁|9r@L;HH`a$`qČz@[0Z`^{~vC8cVg,9#3]YiVMvF Aa 054SФ*b[4Y@}s2̽5I*d eX3=~Zcu^:w >5?z",2`Hg5w* RdF]VE\ .B(Bpqy|[DEٮͤRToC&eZPt|Ff:hnb4{m"%4u3j]i=(꧷;^Mk(jmIԵv&|t\p}dxHjhٮDm6{/\\Ԃ&L'D/iMXWx ; ׄMrM1tTe*ʸ:16bZph#D/K,>CDgaq?@i[0U n"ʤ 7mݫ> F,n|j_hp|u]~`qxQWuA sRגB"\ɧR5"40yb idSq4\s@NjʸF*:B!q1 X\P)&>-H#(P 1W&6y7g;Q$v#kw:"8@4D_4{{+wGGcֶehk'eQAldln 7bzeL:npC w6ż Tt~,f8c (ё:#Cvb+Jٓe$G̻8q2R1 @h?>TPuHPxQJa}a-¨QHqX]0x:kVh`hdTHTHxxbK#)EȎ Z0m ƸUp19̳)ƽvU/Z̎mpx1+O"0t`+ >2Eؙfb١QFmCCQ9?5 F%ږ iY1eH%jV:X&vfGucXBn+I1$`{nCx.qTL`f?"B0SmqgK,w\Bd6HJ 5Fk?B槄{W۸møNIs92P-,ٌ%D1.;2N5 {KZίJ(Pt.fSҾ*;M `4i9P@6Rc+N)`WEczareWeKsa$gu;޻ ZX^\B$|U m"@ 0a1TpqJDe3l,MA#fR'thZnh*qJ@~-8SO rt'Iyf }RHDzȶjq[jZ;V,&rr BL~n6ƫh] |6_9ME.ĖMB4^n؉6ٗ-u HZ6j {U?uڳ.+F"ᢣ1_݂k,"q0落ɻӳVYUP=CX ul|aK`z.@J ƺg±RP%3wkVĘ[Ḡ*ז R"Bs1`39$'ѕ8[ɯ_-yS0w4wwnX#J8f!Kjo}V0zYE5acaô@Q9mP }mGFWR4b:Spo[M42 6(2`|*k508jNr*Ml)BN֑P"Q"Yr4yina~OC:G?<!hٯ"on9֦%:?T ,VP/iwU,bVǛllrtT[6"qmj9Q'P {H>,P0Alq1ʠ>MCz Æ7%H;_~T3iձ?z.C,v ʞXM*}5Cq KZ1/28Jy춻AOi`uXCnj+ݪ6TB/ɹ~.~!S7<.^ *Jl *|FutrPa!ӁT)Y / sR8nD.%UEpL-J&&QCl!WH2䉓WB'UQuZSA l}zm]gj\aD ulp9FfN"NMZfY$)u^8}nC۠&Mpk! 7&ϊdf AgJf\y-_\%-r~5Oű.Gx,J}Ԛz})/5ZTD}8'^]4+ۯ[Vt^B8.Ast%g p@2l@!_z=[ [Z=:z)x)( nQ늘/WwxQ@,2[[jO7#ԏ'ZDG9U Ђ$4A;۔o}< 0/t>Hb9l^_nN&|-bP`*h]k4N w]lTD96^ da"Ԧ>kQ Pk4B ЌBt Cks6[VΤb:8]zF\9X(@61Ylo9&^/U}Z0 &o_y+LWaLN(B*+jXT P𺳯{ x1ڗU8`ƹࠔR:D5G=Q @Izx-3!N洗 (z'%&/iƅ"BG[d_xVT*Nos=} ڏ`J/NC y(ļ'ᑮ  L$EP0f Cp>)NE ,v8CYO>8ۘGblvrl)Q:3H3)H;t?"&=ژ9,ep Dm/72>WJ66sO#D'e|+^&]D T4]z;>GJ5hu@Mra4މ5ʐs[GAXY*anl0(rDRʧZW%"W}FR`02Yѩ>>kOvL׾_J`r,{.<3p_k_97$l5vF[a BݭHҐmЯ5< +PR3}ySRpcUH4 S3pKL 1ܱ9>xTM)*1sl@&󴭰W**[b$? [F JwʩotLbD`MBє ėGJsYB@kyX fo:$'Dؔ'ֺP+UM{& HhTRA' zS;cB${:CmC. Kqu%%~Ήo?JC!wwufm >ǎJ>{aVa5jȆICY/WҾ qQ .J\BΎpy!h *34?cq;kBUB-79"lY4aq4GsQ$Em"ps6ה{{ _8 j}ePčCvb"sn HyIjqa :ͳmswŻd<^~ޘ aFl=ҡ΢y8ط,5#ф]]ٹ _E0+"W 5G2#oJX54l'*ݘ5BBLPMZYT5 >2k;@$@MnFT-zAkK4pqr:?abw˶))sX %1 LbD=hPV-DF;V\U *;sw(rr3PuJ rasW-HنသîHq[n I32`tyTha1S,jk6o1U]8!7sA1̬,3$DJ 0'6X9X%L%}c ؼ/˃Qyڇ /fgXzw%6f\E)t57c u5wi"zX&`vRJuSK5<]Q5h7]h1B5rڨ(m/KK'OWUC̸QN۬mtthmoٚSp'E({U0eՄ^ .ᰪ;'c=z|k[pP,[.ޗ{w0eV"IN^h}mۖ3Nn>߅M- lCs#:;4ҫn.Zx@._^]^?bU$Xڀ'{Kvkx#PG_qqm2P Wv&.heg^=fMMW㶁JjKzsY7ձ)oeh jBFV:R RSZ(<sGiv3 ҏSn&`wxLډo8ء!+1bΫ cscMZEsG# 'u-b5K6rs9CLvĜGɞm-#]£WUl`iu=<@^̏;l-湶*QuH, f&󊛨Ck[O> ' S!\*C_φȈXQT_00dwqJ ~L{N3-xH̡k*m 1N[l§!m$JT?ayWAzmo_nvLtz]+ϦwTedA$n(6uoNH0 :`Hƥ[fWySqk/YQUn g;8=;LJ` R¡4nsSW jlQ}ܕTD2*}sY]/qS";VXfx`QsvL)2(:ON\%9{qchݜsPl]xqG@E5 % WGR"X_( ^p䌛Δ-v+p^Ri,naIEe`0Aؠ Hwh=lW,,Nw Pz/mi PpYWNx4i OaR^n6 ;"') o\"$w?/ SjAmc>/Fs65O26R Gw^YY9bьzQٳHBYY5FÁ^! d=ڪ+)т\=E,ň+Bc'ҧ.-I #)E=5uY# ( du)& r`JVd~8YhUpY^3\a[9j$45Q<\]qn0s"ib-`}0^1bv7Q;7|틯cv|D!&ըELRZ1/*&z8ۣ>+ŖnOd:sjm*"r1аoUhGj3o*c>alIV͔ܥ8 ]uM>d'kl(dY@GB(L3`qa"wM/L;`?r%v-uU?8_B G*5sl,OKO>ZUX!Qp9ˋz8gЏڑS']OjNH;u :쭋E+.aJK=YٳB5]Q,}5xv03!jLyO;6o3tyc/a ѐ+j3į[l0>J8Y -6[clϖ"JPO>g2VT!B't3ꍠ:f 4RY P3bw@S}3[14GYq%Vetp>U8yVWm BJmi6v[8S۷, ϥp (!l' 4"I{ e ޥ iNׄe %NxP(s"6BgnWǭYntU0+JkJ8{ 88) F!I%: '+CPG8M 9cPpJ-=QzYtlMog]fVUI$#dIPV5P ֋9UM-%'XKʡ2ڞdm@&ƶ[ (]59==5CzJ"V?%BJead4=*k6(^9'D2kuǛ<-v3,qHQ*TԺ(w,u3H4H aIu'&=\ʅW$_I2:JF~es< nNi;ѕ_si@4) 2[m]N>3[ $=TVSS\ p:bgnQppxhG:.͓Xm$6ߐU]֛[< I4|β>GeVߨݶq!:)W;1g=n}1DX":TvFq S!9 3d9aL2-8#{)j~H1"@2&9p7gfM9ֹ#zpl868"[P.IQ?me۫pT INk='Q{IPw"vQb )ŨTSqylv4rx,ypS1Kic&Llߙ7ÎꞰ"q_CX?݂!c>Nsf t| UūܘR*Œ95NJ @U"v2yWʺB]nCzv|GLd'.Nm:Fp΀=}mJk+챋ERbWyJrNv_*Q<oPx(H@a[ ^0uy1uN?8 mt>kz/+]IE`BH&N)9ݭDj#k3`R-TEu>ܒ7U~,_ǫB tUgl΍&ƻCf}󺮁D'܎C0CL/l !} HF7)EkPa-inAk]2㆚AZСS05=&1$DE-՘ ƄcǍ.( **X6g,Rӵ7WRYQ`U1VcdVo`:j<:c~7;g( r/HX|G2Eɻ c7 7>5trYFM-e°֔xSA ~β Sn%^ᡞ ؄fhN=S,ZP估M@Y}Y+y!OI^ơ2m"z夥(2L8@g3:W"q8n;:G;SVBi8 R1#WRtՏ虏19=Cfܕst?Yw"J (P/Rat8$1&X*ry(v Ŵ䱝L>W( %~2ҍS^V'\L#z%9=LM(A޺-T@#=8Zq',4".&,s5#I~hзU>H)oWXzkQ Wdz0Άpa' Ӈunpj}LK[t&:!(8T%71Jrj:.+3ZBVmORQ9rLΐ>\ݓfX30 jfSҾ-ر^I02MxҙXq!ƵG>&(c}H?E4la paށjُV. 4br8҂$.B՝B(?INJPmhmzlC#J]x$h?xamL`FH0r͛c@b$r} R0J^{Oy#69tTq%ID^\>oXI5G:LKh3a>z2Z)Ɍ:sЏWVyr ? spZ&B FwhJ},09lzPv~qɋ +stbwTrk $z4&Ss=̈k S"N;>&.:15ŧqOL}"2˛^Nā><U'9 "VN̏ 5 b#yZ*L,E3KqEvCIAϢg0]@EzM|dt-.}88.+ŭŦ{Uaɓ̐Z'MhvxF#_ D,FS]9X=bcpX[Niu,ABTi˃hvi5`!8r7fMS;A0:VyI,RyèR1#E4͇M&QVVCxO`tH嬥BPM "suŽZpFqrsE(H,h [.*$( gi"+{jr`x +{~T5ȬКpslk$CeF!F6.Rx 4v8ȶ"nW)m?X׀X>- MCb#܋#};6|F`C(TN [96OE6U;,(-YҰ(Ն;ɠӎۊm6}xgeBU@ +eO+KSr``Jw?3 <,> IgYB=+֋ֵ:Z\nfL 5*]٬$vx*2|<oVߺh"tlZ\AeH}Lعw J ݶn??*0T2Q`${ciY?ã=(fҿ+EvYt3o#d (Zdw2Ei /4RtELCK=>2e'p}Pul(z5P_44x?&`qvl ~$68%NH/NE%o\ 3x^\ϤӶoH|t}vfx9N U^:`y"+{QZdܗTCLӈ#暭~ =ŽDԂÝ˽@SgHmK=c Z3{G{`/= äɉ9M^Z$,kۇ83cwSK\A_|joYi԰ ޣ$(uIK= *DK)njeY wTZ:[s)Ia(w}R&$po9kkU&[*`fZ*벭Y\ J3[^y9^.jpS4gg7DlAٕw}䩿ʼw 좒S[8 ٳ&ㅨe9 1ҕ>:@r1/$Xđ a~55S0KKRkB0V` $K)=! H2P [,[xY1`D|:Ulc\.!XbIE*t:텭,J!WqڷCm+熢U5)'](# N-m&=wB DhfM;ݿ"-p1ޡSH+_gV:K5 `Eq?4*#EC8ho@knڑy]^`]Fy73/e+#K۫ ]U|C`A{QM-8jE%z]r6[^GONoQ > | f*`"WsdX{-QӞb Y-'bjL 9vpD,hmHuSqLd&fWR3L [yMse OhDPH  E+.V5XVdFK}hTMsV\( 7'}Ë}"E1!yZ) ޺BFru#vb4m^uЛ#]>H 2.vǀRjɾ1MbTR_1 ,J]uÛX$ލ_ QdA B52JD 7[\4?Y`{4j4PN% wIkg!eT`jީ] @%)j:s#x| œHv_# @3@@2gSԏª[5޷^>"*MBu7|ḥ,Kwv/Y{Z#BH=ե]`^t amy-c\IG(np@߿B YBwga=fC~;k#C쪷v/OGT8* K3?W?XɷL9BՓZN}[wW0ԡ)^530dMKɵWBqA;ߣQꫥ,rϦC?ր4Ck|nKKݸ/Wy?js+䇦h {Ai2ee3/'z^=@|X8ㄼͿ˥V{Tnm'HOsa;B_L̿+wYqf ̾t 5t>XL"C;ĂrceM z@b\;ș<@GGަx4J[0gdZe1b)!?,"`i7m_kjSJ)̚Q] %r13*T@KX J2A~МXdZmZԽVVɞLE t)A/Wg&H`-yGaԵ.uӧ]}Vǟ滰{߈7 3$"[C@uZ^x%XyJJY;gf,0E6.ЬWe[sNhv?#z%*]/SW%n5\(:4#[`y"9%Oɦ g W'֨/99I*$Hpi]{&vN֫ qDv.P_]YϰEj h`KRgLB+ЉKJe4.rԛivOZď3(sI֚>F6/$s-qawM 0)ٖql-*C!DNpY2&zAM$: U#\"Zy睯Pz鎪>hɄvWYrRN!#Z lܔ@JCU#2*gTJkixR]<b+L% Ei `Ws%~ Qx6_u Cȱ.jw<й! eQi+_,L%%yQ~!/@zB#>06w%(I~Cu.RC;jRzY)&Eݵb@1b8U3Uu*HP)&Oul8tԿ7?=mZb,,VX\,''"Ғ2ګ/3x fVlt.0l_^AP|smezTt_r~jhm)L+p/au+vU}i]HJY߈uwyZb"Ca,i t$)q$ /@4@!Tp/4DHX ؁4-ւ}_c%Ь!,u+%y)p("-[9_MtE%!fdca&ܾ benf*,Nj>7ri1۟GEc]}Kpϧ߳1ax)5h'!3m>KF_r`d}bOb*q43Ԭ|apg=q#Ԯ0^N**X\k g1,2jALb f_ -&.@%)I-n%4B3pnu %7D8"sN22| ~s/$Q7$.lzZS 42we>+"kF 0ww4`8y_c `:x:J¯ 9F kPΕp7M&$_x$Df#~_)mII5[N131zl`)QqJOtw=yDόX5 XFtL =D"ݥm;merɜswO+GGH§G#/ ?+/My)+{Py֋*j+_ep3{Mh ZŬ/bة77MDS7cT{H &)G) Ƒ#leqUPb/&lbU#{,uC~'E } Iams0}Boww*H?Kޅ~͏i4M2nlBvŊH&).p{cFQX|mS$GE{HqQ"S)j#!`-UBA9$%؀Ҥ @Ef>$%.vUL-z6Xakyy贎`/> L(Amה[@bN{RS5R/P1hs9,+{ oŦX^仉eDNHQ1GnIcA;(gn=p&O_(ۀYP=*Ԇ.D8)~W!W\ Rz5,$CW<Ƨ@;zt~$mIzΛ<89T#8VCrn8@?Z`ӢJ+24 z?l,q\ev6+R]* Jp&`N|R?J"\>A`Cg?zJ=;Lv`v! d=Q f47B3 8zfttx=kºLl`#n~9̤XbtZ9e*z!ҰeO , nL~))4}v~vccRO`O̹klW~Szmաқچb$XaEKR`0{GVhLwaI0«)Q*,)#:P-CIE +inԲ8̍u$y(}rёKA,u”Qi9WTpK[|⎫W1OAš٠]CLˢyyfd--<ߍM\6uw(G \>90~zm*MDM8g TB$t)hwwdNHE7[c=WԫC6T~NlMj[^A=F7kxapie\`Ҍӳzlʁ ^ j#"V).FXO)£X(RRyg&z>8Px;~;Zߣ>ǖFR ɳT(/D0cJ5t)ubk }!kP{8T _d[.1[BY yt"%,&v.8ǒ"ӽHoa-6" i&N#.TEL-6!P8"Ӯϑ< pvBZ4CO84˻ƟP7:^RoR.ڒUc҅]"n`Շ'܅ѧ.jeT"Z⨮ Q9g~/I^~)Wr0R;5*O`ZѶ.A-Xcƣ{(."Idʒ "AuҤ.1`!uҨl,hZlVŸkLXWڍ |֜"ЦȊ bt2]u4|nir9N186XK4jգi , 6]{QxP82b"rS/iyUB|fҪ{+#'ڊ h8l<ţN.Y| 9TĶ BgaiMS0r@#~nkMՠn`N3j[T7q/7)9Qv3N~Dh 2^нeZmt 0uD2y9ǤCmn} &yZzg/r kIL/}5XdKfXD:EB`IܹZ{+:;vĹM뷯D$ImTdٵ?7Ncn)^AP!iܢ#9~ ׇ ;eVJ&=>+ ntos?}4}`gҝ ĈTXRMoT N )*!Α<9(}+'r5ߌ}IuVw: C p9e3wiM녝V|#e$.;}}68Lq耸~+Nk )k ^YvEzxb9/g (4qS,L`*dU'u˗qՅ20]P]ϓ\R`l4]߼&MJ_Tk_^[u]]O7 qq|@g’ϰx: m:R3W`ڌ N0vTC w*WTc60|Z]>L3p{:h!'8=}񸄲6ӇLW,7QQΒޗVxGln#PQ .H ӽش֌V/ q+~jY\l~5ʨs݇'BCfiW0 u9)9jk^ %EZ<_<2o _E=hnޟӱt1P5({|@8}K*&*~a V=$~KE{/9dc5kSCp/"3- w oxV8%@"q^.DD팹e!UjtQRPtzݽ|3Kx!+tgމk T^uU<+ȹk.0<2)oR* jv.. hq8l 9r&s{ imO,@H^5j)9_H~W0xGz86K3$ ֧{z;7v||yHCMe6qύmfX,13y0CH.LISPg3*NEz1˒ʫ''wK._xP8t)cd_?x`O>UO>&z .5*""95NȲ8MEC%:!뵂2I@/@"EKI4ZR0 {mp ߉Ɓ`. %d.Oe\Eњhi!‰}N`2_vt]e eX v,-_Ȝ@ \Q{0q08 09hug9]3BDD5pެQ2œ-9ة֊9AL)du|bB(kMyKxYdֳi:C^T32rX=Ș4mRWx:SӣKJZ/ATG{]2L# er;麎ཚ`/agPa+ 6y70qX^=ݪߠ h@9z熽.nC}|Čko "Սqv S5sP$g Ôb2=Vfjy[Ϊ'V2'~f}ny#VA~ʝmʄx.6B㦯kq Vֻ]kE]en7^HacC2x:~ظt+ϟ&fbԩ*[Ǥ,vy&Za>}R-<Ԇ!bѫZZb7xm:E7;"i':2:_ ܉i3E7ύH.57`iXd5o |Hnum ~䲹g UB++Q(6Cн3JK8S9[UONݒ/U<-ш:[HʌB Nmg* TP\macA 7X>hm<|>{ۇ~wSljL)[l|2nrC|(Cx.NljȨ,`U?c'!+%b&8`'^6P*;sn(S^#wT9Js Y_Kג"hF=W >x]( l2U(R#b׆"0ž]+8oC @|@>YT:td@4C'~EQ+,{9|~1U{|>W:cVZ~kLү c;? xld.w,0@xWiK7Ih7J젨@Jֶ欷;xl1OpKw:>Uߪ1tRAW.@qhRg&> DpB*Sq۾W!@J@ìAĐ uO ^L FjHe[;0d.g5o٬XwX1} ʡCuJ,MTsj,?FBI]B`%hp0I'=V!LUOUȱwc`>dk޸Ap%hy`r3Gk1'ɧ3%ڦ^Xk04  Ӓ]az$jNDDF ž_)&f 2;gD&(;;Vign=@WPv(ijw㈜;&`x_1jYCAD0)ݞ۴M쨱;_Po H>qiy +!Ih0&12ǩUHL8 :T qqHء!j8Uxoz .R1x5[g* t}޽:},3]X ;+CzLVIcL"0ak,U`n3JFH4[tx: ]XNeghں.@Eyr}?m[qi4 zqbYti7ahoL] d47H[ZaWof@{C_^1usI& -p_ǞzfC=_5xm(_՞TrJS=+|ӗcDʭgpdYEyHMoZre`$ 33X9Hb(jGoPq#zױy:J4zz=IYR]]J: ^v/JYS87y_+s[84YR&14͗BO)ѭ "?+L.VClI͉#?;Z&!]]eKhPXɡqDfƠ & לh.R4,Ʀ82iafŚy~# Qh`Rm'!dm׋Xp 7U80ߕTZI/NIQUݮ!񬼜8*—A02܉_yXV<#"D2"b0YO> #҃j:4L&tmt˙Qrt Ve1D :a9m*5ܵdS#M@]"l$ZCǍ[ oъ-hIq.!9UOs9hU (l)0 ~-7|Ҁ)Ut-ߦ!P.7͝hFVw2*tq.([(xiϔ*jqRBGI {:P .fс7\ih2i:RrwD/ofz()[W d*X(j|FsZGebl]yX9emZyTy {\Y'Vx@nQaV&pҩNͦDuYI9R"❺|>^" SfRfms~ Ż"nD~t1~τ!ĢL`;F)jVO;iQR3v(X4˱9 A=A8X`q(Р X7R!wrySf"Bq. ˰SziT.>/R)DYc!t+d_kIu vpsKPk ^JcR&3d~p@7mM3 rj CtdaK3N|ScZQpQIնh!u( JU;8О^kjjV5Ըd3ȴ;ݸ: r+LLJ\vq+t=7;%G{KuTY# ΌjϙW'>09<"( Bic~4>ig)3$`װG 8A;7D5SǸb5(r5*jGMaÊZM;P揄u狹]`Zs<P# ufۨo!DxOI?=:tG&ѥ!jQ]}-ҺO㗩RUj)[%jU[(k̻XiEx5ήGGGjD[zaإCmu|3G2R$~}~=+e/yv5.`!jMk@(ldk;j*0wgRC/#Sg/lyYY OCtf°i=g+,-NHܚ!*-9IdrQ4ɎؤDZU._?}Ne ]$}`[l uLTOJ}tԐny7(>m8W߮!/&\NϘ='|JDkO+k_ 6'Bʢ U3\t- xX A`ER~^#zerDy85;wXj9 RVz8&9K>!3H2\ $zx⊔?)f ][Fbϴf`t3Z\"&;)dKqsWGRiڜ7HH31[̓aqUYj") 0 g2'zNKb쩌a%! F}Et?kp>髷ޖQJM҃9NpBc>Fu(,j ֮WE_>mP/ oJyhϨgx/r%N{i>%@C~ު6BO3pF]GՈf'_!ovI!9.D_ZӤ SW:Hs<fA,+!LTIs@5Er[}ws jKcL%@:IVÜιߋjE=(d5tTI[6_0v%ݿ1EMQ `ܫlf䊭=`h&4qi,MzJV7pl=Bt1ea>%pPaM SǶ "2}6W 4FejF|w&*A+UsBk\tf>^o9)s()aK9~/8q7Qzos,~+"t@`;,q#:V3!2]g~%|MZkΘ!4ǤuAyd pIJҭ];ǩlU鉲M \_??ꈧiI>o(FBxAI1>CIwP0&0R: XYBNtNNٞ?3>s%\լ50lz5QIr7x2dHÌnλ;ҁ[쩨ҫN'LcdvwK&ΈF@ѶIDXcS]Y, ƽ= SAcK4 O ;4f(#E^itӼ2^)׸e$Qhi|A} NŽ4 ܒ*3VPyX6 Q+'l5}1Qˍ6+Cgd)ܝI>l@=7x ,4:dYڟFLGg樀S4 FCz)s1ZyzË!5"m\l~~$yQgQ}nIֹ(k"k=f1@Ȫ^WCyT˖eۿe rj -E"OQЙ̩'WJ}q5o|ӥmko0 uN[6lD{9 1ڗm==]KKe #X[<٭zj ɐ׎}K+Sߋg:' 3t(=5~A(e+O-< UڑG.idN a߅w5 Г.xx`:hh.YN1БrBp] tl-)_5:P'^X*'|^{1\i?-GռjOHvv&MY7anLC1 OH^rqF*ߩ{:C/HRTItVU ];D`{U]Gƫ }IK[= X]nh _9?a 㽸)d}NNij6! js{PMmZ"LW=s3 "`Do0 z'lI,t¹f |.R7=t-3.oឯPN2ۺq$8;g\0.=0!q~d!eKS\9̳W@Koz *=muaSEQix<*'BFASԽ]_{&RQ↋,tߚ\}&Ui=.>wSSW \w 񟴚ƑFk?YqSk^tVX6|FG Y\P=ބf{9tw!yOz1$ob9mub3y[-_he=3 ;,Sf]P2*t7AQhyfJ.;=&w"L.65=|[K% P^Qie"ڲx>=|@npa|qۻ\0xTIQVmnmS/~Aӛ +g]ρ޻>\s<Z.U:=_ߤ- ޑScY7y'Nafm/C `t9R(ǃշ]6nPLz*dt(c px ÞRm) 1]ILQ|  "404~ -'kH62paV46[ VsI ܏@0&, "7`!pH3x=yb I7R)?=(^Q :oجxO/CzI2#Vl`r:5gU!3H.6Jd}5D%kAבt\5nTaFWA,=՚'bT\I1tz!;,$R`TXaWO|@*ٰe ̡DgҎ>NhUSUp ^.loIY")sdԭs({ J.`94>:{^#'KVM<pmi@eWZs`I+4 aS)%=%7d+~ BV 6'4-.\o1pnkv2;LxhČ}@o d E: FB}1xɵ7lP0-W2P{ag;SR\Vb53IJ{S;Dy`#F*+ U6"40= n*G&BOc,[x(ގy <MW7,eP5ys'jǀaxX,X]V>5JR vQ$VZN" )vICWm/s [#0DIqf3"`,Mza>N!bLy*Uv&w&s~)Qڢ{$I6 #9d4f= a.>3Ia\kXƅ0[k+,*7>/wŨ!)?geZ @/Cr \O/uۢ4`*;86/^6H9 [V;J&OB pcΒ&T58U<^Pb[&ֺuOQD.Wr5B!J6T6\o &>)I@ځQ:D_Mך}Z#$a)Ψ›6DE^? {-\lVipz7y:`ɕf.hZ,٧=| Hl=V[CLyZ^srr5ڎdk.j:"՚kpyj3YU wƦn9ƚ/ ~퐾?4 am&<߆Z`؁SpUX28<:c8ߊ[g C|Raʼn/jt+5PZț>CKr%L6&/g$Dֳ&u_۶A ]}!"۽z/\YJ;H:i'l(^O I]L٠AKU@T d noZ@Gη%c]⠍ukձ*ɎG+ js`伙Z︌kRQYiDVSjllbiG7ìvˆobUV'۷EזٜIT=uc{G(vB}I~u_ M0<sqkqWHwꗒU~1WZr,Ƿ[>9J@4O-Οu> w3CQҟCh*Ss<#G'Ruuon>]rƓ':aC` ]sU5{T4,Yb%l)cw[7LLnW?[K~h{s/wy{:U T{ylDۑ>&cxm-^C۽g\]ôo<1_oCnVK? Y?jP7h3{SW?'t~kbP\)k Zl&>~Lv΢HXF,), g9B҈4UTEne#aj%)yB,BZ7,.6F+Dw leӣ,/+ത rّ4eM#N ?2E]vjAK5^۟eJVx"22vp0gBse5PJ{4\:I*щ?l֞!C(TrZ0fUҞq:kz42ONnZ6ҍZ 9.PCVjbW+c̙ѿ*[*Z5_}g )aAMZCVrͲ uTY!!l8h-yi\d JfHk(rrFMd֟0Pbreh3SRϑiB C]Xbi R=2Ώ|Uwl 6 P1BԕN \LA젌]S޻'zB*iH}t\M̩A~sK;;k+j'e90u 4TC"ݎJd+\yP]bjM<9+s6`Vz]?z|b:-#,ts \9<i;4c| O7ZVO^J/|8;HNsm:EI&[{lܬJMM P՟E hGzsq@a .c-fqJSSF6s[aK3;l۫;eษ qn?S"DBM*|!Ebw)'%0Q;,]e| #u4UU pu谨@Unw2H_Ib)LWwUKm?0Z'ҭ/< N\7oI$b6a7\8 z{DS dž$ mW·4Ҧ#9(zd-44$g_sѠ>ǫ/4qߣ  f ˓2Xr:Hy,|j+ck.*8^|iTq tOfPIO~ Rq9);z+2)%:dD;}A[*4lQ#vyaXÜB3Dmbhÿ»mʻ`y9i@? W94>TTNR_r{ЎA[m*}9RV9ܛ5"N s"-xd5{û oJU ^l]!0) g V6zXZoa1Zr -ΦףgɂU>sc7d+~Ěd#|yv=Mq*ojAo1z!Dx|%\/DH}OQF OZh0Δ$3yP nY? JՇ5=0]C^u{osڟ$2 ԏHWD[RI vJ=9|µӧ!ga[4\6RX0j̧+=ʼn fTqϒ8~|09VJxjMi3I}6Ǽ3w{Ç\~g$[ysw(o2J  hŃYP"&X!>`(M%Kx[IAg2qx;Z]Jb)'uA6m}R\:5Tʌ1'!X1 ]= 3|ÕC؋m9 ׾w kZX~θ›^t}H-Qߐuֿ̽4(W K6ij٢VU q@j4`U#f CBXd?zyMѿd@߿u0kdXr1hm#nY샺5P `h"u`0M9(sZ.SI| ػ]x*@򵧆sHpϐ׷"_,)1R-[-Pރ4I jWoΛ%Gc0\N -R34 -e g۰ou_jWְgQ]08VDԤS"&[_T^|(kaؐ itRFL6]L8<42wr6dJzL'D YwPL1"&ZTFm4*4tl('yPd~޴]ZZ @| ]'N:T2ѥ%x=8ԱȨŞg'9gsEA"=W-\ (5]ş́]_w‰caED)A[L2`΢`5;쪆 Y|ghLr n78Zhu6xG4wl]TO*S\q4^}%KXcQUw هk۪1n ^Q<0<:ѽ$3 Uf]f V Y})<-D:ugN-S3w5j5 qk*CˀIEDkw%ԲU7 {Ul8NlWVV_i=PPlX@,94w^Ynj@_5Vפ,䀦qSE^hlH|M_T=q]3g=qOʗ Y4y\,u:h{P,8p-'ei9CXtKk#$ |ITtPM{b0M䤴6B;f`VUsfå7N(=Ͽˑ9\W7u7A—j֛C٢e]Ҝ3k\K"1ˆ80wL\Y$`o?ԊisYBi #˥"0m)d YIAkAF`EŽȏg4n'"n=Z>[DHj2LIԳ[9io$]ߪ?bU>t }We)(D|04_Āx-5ې$= D 9pC/W${ tinć/ Hؠ #v7Bm&!lSPr0ϩK0@<//sjL(jĪVP<KGffG("%!;lgudܴ@k"e96Bz9)79q*OkCYk@D@LSLE&ʸ%MrEr xR$6s]t%=An T4`dM"ƲZލfBdREe_.mljhMrr{M!Ci1<<ӗUrT cҫ3:vOu\*z\G~u׍bBsTg`L*A=K{;XcD֖%e؄]]Ba:}gubp6)aKbG*.oZiJ>NF`-.jɟhfnV*tkjD{RcYUv\Q֖bRt~ \lfPTB[e$9DLKݢ'#VC6I͞)`L]z# ;7^qHNMiVEjw_$Srq Qv uy)hcoziDI^p-`ebB)E1ł'zNTlaEmhL" y|-ts[ SK*m8>'Dw!Y>Qoq7hAzʷռzBϻǻk]k i$ OhT+]ÄpX@* -Χm86_ԐF@=t-g8`.\hj}}bb[3u@~q|˴1R B!3X)LBnuQE{p5^c1_e} % ꦑO)?V8`\8Bӊ}h8XeqcRa WZntZGk֦eiBi7Aǹ׆q豓 :) >6=_u:xERn>C s)y:-2岐i|m\ژʎNhG,Y\WuLF/j3e<<(=Zݼ,qIIg"ͳ2|Dk8x|}0Ay2([z>o>@wjǷEOT-mڡ(:g0XkǃL<=cͽN {jcCxE5aIGPo6|6 b -QrޥyL}{Bg"T[l8uKhC*n2Ux`w).IEr EjmY]SJͅ%ӆ>CCiyYLyB޾"`P@TBy]5VC,0:0K =^#anc6gR{ `Tk󲨛\7WOO!œ R"O`Js!x%ɨq`Œ!%1DoJvJ௳ +k>b5֋xy{;H77IyElCR"HsI†TߺnѬ[Y!2"ZY@l&Xv. #(B[v]BV"`]1 XOD\*I6D5Mx@OQ$o\<%5~B-hh[rNEȦʍMERV0bDS|" *5{EViw+:Z$̴uLD~qJ;'֌ 1Q!q;~<>n;uST u5s+[(B(S&r4Ծa!l:_lNx*-F6sY:@I4m[ƻtq<)AB w[<w2[I;_LG]a`5:9 CCVapy.kJ}"L 6F}%*y|r!VgUoJ=΁p@=8R"ϪZ2X >~}:4T ر:cl^GU G]OBIhVDD]kpQ]p66,4^I+V`U4=WYg<& Vf kŗj;qB+t$;:G+ =~Io'D]E0K:MSwɝYjגјw;rcCZaf4\{.j1%rku܅Ks+z%S7Ŵe܅OE]e\K=jg-t:JKKČ=И v`ٶD<8#UUZQիVbڊϫrhUgxӞpĔ=q.{/kWnvũ+.ᅮ"j=M -dU QRDD_(' L J'?deEʐq?92ё,^ 1`7|LKP22"+saf~:ks2$Dy saϯb7j\]}w/k9#U+oN7˅#2-<]?TL(bԊ(NƯ:D.E vЄd4@~+Aܾ=u8$qPmUixxpZg~ΕDT( c&8Dߌ) @NzH=n@:gL"'RD› ^m6ibv0LODh3 <㗗Wp/5Pyn}vot .6TFMt%;^|Sn5=5 Xp$uH m)XO{==1 )NqL0(UG(Tib'v讆V.h٘,+">l遍HM㈶j(.3 ʅ:%3zvGi LTS5)8[w]E*{:v[T'gHPO稰>d`qK0cX76 v6jixX2.(IߊczC~Q/[υEBB^6Tɯ|t˱.œTpu`{.`mq$?PSxd=n~"> ]'r;tV]x': ڥ{6^ ,ySDG{#};M& G:o 4̚.#xy\ٜWЋ /ꍷUE8p?0yqQ!ur!;:CבE1D.b>nj:dYJx>I9b>JtƣaA~zaŮ^M>\ϮBKm͞Ldh9IFO׃DMiDjk",f^/g|Lt9MĘd:%|0()rԭ'8te7Ik|NP:j6kR8P_%N|^'`&];uv|vYj1Cy7dvW ͐ ̢>ju!B4a}-x8_hs0W$i؟i0J2IU s(U%m^oyReUn魸V [ٝmqGխKASm阃5@0ΖrT͜ ׊Y;CDFTEzH{اsf!D (,cR=G"O#JGSt&gK=9Qѯ!nE}O;h[dXC2|ܽG،<hHk0 2頛/#EBd@ /û(lXa南Ye^#qɥӬWoOu; .몦6*jD\Yaʜ7O,1xRN3yl2csidJ+P7$5=uTV樯kۉ‚]:ռhvG|f˄* ; +g n OU8@Z|K{.pQ2(}p(;lc'nir";(q&ȸE}('a' xJg"ZAD|M6@+Q\j qgy!,VУp$'B1ߋ tnVzmC{/e&0 iޓp+?r5Y2lX37vNenv#fMF]GIßĘ5Pvܯ_}&HW}bzaFT_}Vx;}|Zxl,XmgхoH8^pK܀~4zcҫ!<}2wZǺ5}iI/_>8ܗ ֶ.}Yq`eNmV OjMrKn]0Z^V=|w\9_ >]慘ջYGbÅڔhO*|+&haH. ǯJDD^BZz{zf`0~&(G§mGaA϶{#hx.DG5 ɞQ=V++-fv77W?O*TBDT4Pm"78@)Fs8l?9-T 8A\=q"t&> X?[xXΝ6JfP̫VBMM3%aƹ"qEQ@ d9DӘ>IT:U~u dq .U 9}o,JDq"*]JE.$uNiv"9Kehg X-#-xpJ?{;K~i\Ƕ,dڠpb/`5xT}tDƟHg=_KGȱŰ*q*$)W딒--Z ZT62 \yg.lF[䈑xWdT.}r2N| ƞ5 9ۓazO6_GMˉ\WE ôUrMm+Yh>A-}}kEqGnQƍjcAp&V a QUN4Fmc}>Ϊ/5\-\rAfWX; xdPI=a0_QhLJ}"6h #e B[V"g1i~Q;akE7O/ >kNÛiI$ H}6l[u&Z:È6!P^\gt? ;? 4ǝܓe$L(pO(Mc=T Dic@&0uו`Wв]kdK!fDn:6WQRwu'jEFn#\@Ŕ%6N7h=Wv/J˦OhN1͙)FϰD;zɞ4~d ZN;,>U=>CnS@#mLޗkJE7CNg "aQCxb]t$q D 3ՕEXa?[L}~@ſ؜V/nXgY r!gߩ٣0w8w9W~<ob4ܙ,Ckǽ_Cƣ5UU D)}/B1ه Qh&W TӬi ͰA@Shg]>Ѳ|_x1=GP4xQ(;$ե.&X6O6Mlgnm{. ilvK(ʯQ ݱl))m 8vuFDŘt& K<_ +wR$?r⦩aG27_9"~/}$\@ zPہ8xǹ'Gb-ng\H{*A?j "K=S^+k2Dv`S? lV^o91 ޕL+k4u|B J/\$M}++fpqT)ˮNk^6hTTr{wdFVC^;K-3TFuD+Ps6/I]I!Ee u/ǃ,`h/l?$" h>/#ߎr-Nv5Ut*]xG~ZY=Q$pF̭A:﯍~~77%71)xQnU_77s009iNdc3X6,v88L+|c*a4M'(TXh==8oڧj G8@-OP 6X$RO_^!@$+pN1*f\EPEFQ@4pHƉPUS *4sP4@Re)W_ *8g0jk :ٌDeJ![axa e3;&}p5廉#*E6>hAk=0,<՟ܓ` /xvm ^/Dz IZO~JFAY'N{a.G)]VV߯ .L Lxߧ GϑUgChms5+i`}}-.J&I* ({. 8hWpT0m l04ztO' qU<=|ʑDPO>YޕK.瘨0K-+ub&ȶzw"bCK-~<ը~=?8Q "ABW*Ku篜r\Ta^+<.{ޡ+Zeuԩ5ݝ6 zHJl|8ԕbprBAC7e-q݋H~ؾ2p5suq+H3S (z![ǥD.pbX>gsoup5TOTtf@*j4+صGn`eQ94A ̊ЏӛO饞x®݄QݢVO^F=hxn[o^ЬwF-N:kI!x^.um'X\5m;ϧNNxWˊD\Ϡe}N^ XZ6®8PQv[u4UPN]aQ;xuv6]$ęWjPگH^^kLB~i`9]Ȏp#n]+uSNINuһs{5jUZzUJPNU ?!hSO6 :}X,l" & zGݞ;jۘQT]BD4 MR8rpVFDд}IưNȞ!1tUіl^kG>z!eqE< l60q̞R4`-޳s~r%Goes?K{Ԏ!0p̮A j_ƉC׿N$ ZN)cMs2'z}mQu I)t80x9=z3i 4^\Lk<#yAm S sO. p]m˿w@ɷ9ޒUNrtv[^'uozgYNr`~beM5{X562<3Ki8!Wxh_Y|zۦj^)@G?[%GM*sjc=+䵳—_)!~o/S"RN-{F#Jgvfq0y}ZP삻¼[|B8J驁Z-&ǹ{ㆺRv&h~=oլb&(G(~٬6cBtxyV;p>PeL_~־ zAc˒ԃF֬Ė-Ak&<٣KBawFlDے~sE ri *q X{q/ժ}$9eYPMBuC?P(yM7.r쯔@XJB9~;^_W/Ͷ\`r8JStsopeW_9Vhe^15s^gh&F^jQl@cy0pXT݇2 HtHmmOH :YeQ1)¯ߔa)=u|vO |oe?Wբ% MѣQ p*' 0qDZ@`VvG!Ilv_Njw= 4ۛ(gвz <)3˖KHm7KLJ-+Il.jQrpi3ݦfIϔ+{eJzj{sPs#̀g:^ìcSXhP%&o7}+OʨOu%C&- 9HÊW72JiuBֆ0*}' 1@E;0B5*婈Oހv$B AFlxaU/N{mϺzç5pYtv8<3.y-vb;|{ 2lHzZfMC/YJtlWy--gDҧzmB5 zZ|&UrRs=_}/уþ:7u9RXvY,%IU@}ۇzot)}J2p|u54Ϛg$XHMtxϗn-FEoW_#d"D}0Ldm \o{K}AW땀1df!ȁ/@S-p`%jq U_~q{(\m2~+ySEf_B툊UsZ:\?6mr<~=CgI֊Ԃ)E9-a4%y ׵rXB7X"=~REJk:C_6:(q9BPՉiJ vR ޖmO%?ux>7Y6mUfHzS]wm3)'@t>f%+dDd6V2aU-k枷y}dϯlwMiAnPT=h틚 vaM U0N%P?5z1fxD(/q`;ԯ>4 \zEoуe={P9B`e=x=WoT@ώ POltE IR t7<˟|B|y!yU|j~`QӃN;4abo9/%\W54.2ˤVBxơeSڂ _Ɲ]MEa1X8.Â[uz+QU%S,]߯f$4 rϙ8V:)W3߽fA2asH"\k أ9b^t)2AGkykƽ5l{v}V i}KwF4sl W@Dw ʣXER'y-٦)es ZT g vCNY͖G8M77R!T77Q$ݩn7 j4SÊUqTBK=76  >t1X$vPJ.]OKEy۽tݡH:s=<kf?Sp V.gvf73sMLỉ<6uT5Ȧ}g} x>Kӂo);.gw >!V#^Yh'VimkTٌ3 Ŋ(DBL}g°3ٍ?=IHV!Le4Y܌yO1(]~q!$"4m }Nեyb^-8^)r䊒R 'O$h1%uOr~ZoyU7kau,ޜmg?m~&ۃ:g~ EV71ї:Qo&wr W^堖SY~0s1`UG+hz1aAnݑMLO{~9>ʹ x %ci&T9L̼i?yi[.Mse\$ا2PDϖ \K maVa<(NJGٗdTl}u߶dwK:Z):ƇTS–k&z.5U(98uQsN6g=Ct`p͇?NuK;\@#ɷFSޖg83Gr30e[FK',bo]@ BuRΡJK#u!&1heRpаeU槃,*{j89afaNj Sm֚:b (K^ گ:ViQ'8UT. <"I]Ʋ@~a;DAVBv%.TΚ3Cb{秠x?@t˧{h3;Wz&\wjYey>͘M:UX`ŪWE8}~$`;RL?}zz&㍱b\z^JVCܐpK'ߎ=]0mYIW[}zeGpƟXǍ"8^^9 JU3jKO>\Cr7Oۢc=6pI{ ~¾[7U:A>9xѣ$XJ56cYVIy fga:Z-)s7/vI6hC5p4]c/X [WӮXE&kaT^R!'4(U]K )b,+q/s*h^yf4:U"Ezx>y;7\' qڏ[y3ӝ-χ˘yxυ2TVP}X.}p^!~8oB5Mȗм.a=2Y-){ᗌwt3)$X ;Fh^c#+S"!LpD M\H1-n[yd6^qӝ,s(U'YK4 /M60 ?M)`V#o=g Q*X%n~erT/ZA A*2U5F.$,Go[=ݝ@,ϵl N|:h&2~ )7m]n|X^twR0,[~ޘOSXQ%!6  =2.{OBɆ[ RT̲>gAmm_ 3{َ- gridmafʻ3+<ǩts)K{ߵyJ1[dfżÎd  |hVWoO~D۹I.@_TNE ׯQG"1~ϵn3MO~ggZcG;>1GVY*vZ9d7 ){gۗY`UaFbb ?!BDn]¼sxqes'B廽Tj1`3YXK;c a&E=d1#-ϧ# c`d^WsʧԳ@b)o^_9"ډmo!QDg2[ut8qW<l}i:hX&{Wwח(H+~߂WSgy#w-=xWh? 64zn>269nύn/G_A/|u5Gߌ-_^lԀ 1,Cf3(]/E}Aͨ;bj{vց{z#z#E/4'Z@CC60z3%sbT"y'{Ѹ,9ZҪθΣ\yUAT<$<:&5IO=2Z1էL\)j7"iz^TF4צ:X{uUoo M+9[lr"̛,\UR\ue7_i#{=!2Ϳ r.1_jcKaV%’ͺцR^\ F#j\Zeg%jw!!7W6gx@1أPI|70X齃zN`sF !tO70$oPίVT}2~2ӳ=.yWe o43<(!sR=]]n(_a&#y,qW~CW8,Y-^f «=M{c /DmJzEƬtE _M0ӕnrb7%~S~i8ָ zO>X$3jEpk[YWw}(}q8lAMuv >y_j?K=UHϴ+~Ab}{C\ιZgWsG8UԮVbcA*^WaatzߴiX~[fu>o}|X{Õ]}tN 51_0ÿO,?Q81"T Bn4IՁ4p* !!]E9i6j1(wpUJ|`m?<ܮ g|5Uzj =*vMVʗB_5Z}%ѿW_=Ϋ+Xfs W9vPPLtͼXs~B՟7`)AGخaZ浖Enz7,#Tbn]=VubJWcطxϔ XoDzC6i,,OqҌ8a[JkD B*T_!w>#:/R|#sx8mLeȜ^1U4:y|tb Y+,xYk5UId:?_r8a,t|u*so]LNbm? YU@J졜c<5h:$d.rD FgX^+?N *ћs9AVndF?]irMf+Ous҄n0Nh 6VfUdމ;1mk~\:sϢ#͔2t%3Ttk_5.Ho7˞;WEINbFIHj23y'@3,Exgpݹ=tUAwג6dWYR2>m3ezȫzvyug ˓IWKq{O59Cq .^c®\#mc:XI:Y^K|LJJ+ڊ.Tςl ܧ)GnMl;h i*X{DNhEJ c87R?KĒ6[ ȔgG$+ DrB+zH6C' )B JeX7uEm[ifMo2 g] T]4逴 z3kzcm\"Q]J^#y{||q#O>L[:—eG<*KmS{p7}q.@zJ9«)+ˤb Y^LO <ʲ;]5+,<,mIg[{V:_e4+~ee|/}b8 DŽ~5޿>S`|~<3ΏgFqy^=O[vG>~:{WW|&14GՐyZ}Q =-8X8,,<ʮNƁ l?|YCs8]dry`jsEܐtC=o˗GbgN)tYӴܐ[e|HI7^O2OnoQ"?]v2Q~tpc~_woTߞᙝ59J~p˽S~<}}=&kD/.`~ &Vevn8uk-9, )3XQ@>Me VOuiGϴ3]A(Wvk<;F?j|9wXquS;(:pZ{'_6SfO1p`LiEؘn1)j㗘-;3,-x='(\i|nǓ%׊4S??pNQ oiP O7[Ŷo~Qlm;ۯ`Z$.v9`.HE_efߙ{Z^Mۻͯ_W}zKlxcҪ3?/#,]*ψ|߻ˌ~x|Tzhm_ӭ޹y?Þ 9oe#%Z^Z$"C̎C!߿ؔ~]X+7wO>\dȭ{ Z*uTT?9UsO @U3^;f$-Od\>RWf$ Y̊TUP"\BeF XY"1EQ +#KVJ"oxԁ}5Ct/[PK,ÉA\J)LޏG\˕=ތQݰQ/p .Eւ='x>2i*va>m 6[ ?>~?OU'|w=-s04?C]VN^6?]חY3**Xr3?KO[W6D^{;I癖?O\lwpqZgM0rmg_-Z/;LK7_*ϱmO_o *>;}γQ{xھ쪴~ ^ Y 5|ϳҴߗ&DIQ Ll a,]B3V(lܒsRX9%kӓ]v#uAI}ΒhiGGiMs-he?$5[qpcڵ^Dɻ4qGkP,2-'n0S*NÍlJM۩qcFBy8%.G{$daerJ"f'uL.e?=3j1?[8To4=oRÅqĄ@g,<ķO,)/Yԙz1Wܮt]A1+:KqcVzKҠ=:dxw~9˜1%z0fQSTEXOJrw1gοwn9!;o]s]/M /k]\.x(%Ve,V龔n? HX)aY_ZjbS7\p?pu8UI,Y=y(Vʽ~!p\&8Ps|'V"{rA_ǜrv\g7gAM, F^l73K7~t2zLߥ~/O<=|_9iˇEoR_֨TmƾhQ>ynVh+sT*b3>) ھRxO)Iv;'+bsu+Ժ+u:Uj&ss(\*EMȭYBhpq,3Bd%S fxoVnF4BmrI3B% kP/nEt*$XB T"")n.^CM~h);8eƦj2+>)?x2l~Tge݅]E}v?OiW}b,[+ynǺ !htT?5/AOi.ÕtbتeeD+04n#/cT=!f_`^(4&TxV=#5_{T*9,8Sy ʿivA a2]QX)9 z8C6D!.XXР&֐%UXrUTKllY`T+A9Aykdd4;rZG OpϿ'_q_|;r*9_a's 44(EH~5l XUN􀺲?u/E9/qKW77/ߵu{\+Y ^^?~Mm S%;Շ Koo~?:+~ 濘ՏbBJpV_<:av5Yj`xҞ+GRW )[#S 뺆ǚ.[R6dһ(=ҁu[+jhP ܀υ J OLŦGfU4X JXಂ2tZTG# %KRN\p uHt5IP*\#`U:S!LJ \A`5.sJD1fC+wf<~tr/ [G_ QO%ggŜUUiW|4[B̧kE>>-礷Ms}oWLߥo/s|;>YNRґ7ȶu'z)"h'ue7zzQ:%1k;"j,` !ܩ)Ki,jWkC6ݖ/QGfUnY,"oO+pLj<.6\d:o}ѰGa^7} =cI<`R7'[֌EW\V|WG;sv, ܇Qίo}o5BH17kY#}v3 $2ڀbԡBTŠ2jцĊ0TD`u|u6X:#W80m]n"3AU!hZ]\*ɑ)jdTmGe3%9W8 řuWZתR ۉHor~<~hajf1a;?{N+_fp`Xy(ƽo=/Z(u'r_ì} ϯǷ>K-`w.==hJ XgƪzK&3SRL:˯s&U6D}͜Aݷwd0^srb|MRg@dI4#C*j]o.qKZ2WxoI9y*9O*ס]j R:DYEi̪vRZ6@5J_" -(9Eg=[??/bBa^(+Oz6+SKsZ>wb;eNuU{u4:hk/ y"\j J֬FUzP'U @A^4ou}qkN U۔.}t? :y~L} U|@_gc"el=9`9~Z?(ZNfh}mR@fw%y|M?'[BIxׯhfb-KV 2{VW+NJa&a #D!ðjb̆EKLr)b]blDU"DxK3YhX]zƛJ`fEP9vЏLme͙48vPvc36PJJRj +TRMVLާ+oߛۖZNU>H޳%~3c" $*Cڃd^Ńyޓ$2M}x [{Q`X⍛hr?n9U@X?hzsz~^MGa5#/ǡ<lf(uf ,"+% t<ʠ=sC\!^߬]c/rtUy/gW M9`:PX0p": bui<+M V)GNkE^9 u8)ˆPuNC6V_gG5|+s9?7Jp+c݂Ȇa[El((T[(VUu4vt}1iCC$`0WA׆>(RZߏ?uHmo])2}Z[==& K}L;qcğm'E LJINR ]$?_G=D/-| ~飧 mdvn/G ;̫@IO5z8RqMkЁᡚKb=wN%/;ͯK='誹n J:=a ӮADV&m=r>} Jv<xv7~Zxސ![+je!@d$ oSŃki4ܩypCaХ5K&,6Y3f 4exJ#%xJgrx5U6['u~:vB "łXZTQ+Èʢ)&!Pa7͒ IUl9Noce~O^4PcLWG3>|fD^eKW?̠=x,˼L|*ajM h~0|wGJ.ek{iWF'Jo.Pi%^%KJuSFwݙp+![1hr =[#l3ė˕!+*13E.e`;F&TbGeH,'i@B%4l\+.@T-~^P=6n~h{@6J\ F9{bduLS^}1]K J'̷1_NW"l)EIL>s[]Zct櫴[ÔB ,YFSwql%;@ƶ1JĿ-d}wIV -yU7Xr&[1^<':}jAYdk-D,R[JL>ڱp5C!L@  k"dP^LJW۔ر5}.)]<>Y2m_z~WZk~t̕ .j RXcJ-o0nD8LYI35I |`ψ875&\D KaHfI /&X:)fX&lHl^;dO=jX3aPXǬu" :Uj~ǰWW SY ] LS'% =JjhԼHP.M%ۜP~J7k S+KQ!VڶS]j;eේ [Y/gKӛ>Ne%'lP f!񠐩3D;JB(E"I$7 ,Mi)4NquP-lD 0-SUcPxTp$sODz?l~<'3; 0,,VkEr Nf}%, uw I+7گХ[ f",XGX{$s+TZ1u.a T- V:e~3.uAڅu md ~e/ Q*v&*GA(UEGcˊTB43AScDY dtk&=^VH48"H+&uD{5=2QfS0 x[$AEV! qm)FIUpC%AHM%0^#'r`X (rD)܉o@Lh6Rz 1`(f["y.kj(/m(1"@>U9B`s*T"{DdvV6 ,RL4JayZ'BtH'IA7pj*4Qdžn 3GAhl%Z 1d;h }t7^"VA(orˠ23+^gbɭfJI/ujʞ@nP5J ,=%dI"XY&p0ݣ0L0mBnd&iqmN/xP.V:,$ƥ" \jlZq|Vd}R7YS #jK%>\ǻUB"V j?[=x8JC`/սyx >~ȣ(gPa/N})`9^K4|m Hd>tzxs 87Mˆj@p(!c$]Huem>_"Mxjjp$,7Mpgzy$ 2/')D,dixYvS*vń'3?(\&, ~5 M( 3+MS]35TxRi[6NMtb[NJ Zִ*Ά;o6YD+(OAsNr9/1T.X ԓFZRcbK)bs5oM-؀rizPff\g2QY@#<=m!{'v#A C9m@TPP:L Ehb5AlմY#29^T. #&4HlHs%cvjlRwmEIc ֔i"9NiMI WTO E(ڎu3]j&ғkV$>O^MfaT dB_jDv-Rz;d qYE;u J:H6UѰv5JL`M ڝ,a'Z`)Ort 4 6 LEc G?݅I[Y1-Y+"`4A\ExhR_2nTGR20rƣhJPwG~ \ٖQ W͔IF^-PoXjb%:9K i( zmc42{$y } 5 â`͊ VI IK[b ZTYP!,h8aSCa0cD=0z[0vF0T$X|B\{L71̚Db+t(d|UQ l2))E``i" r7|/)(~U{XϰZo<)D? x@-`[IRT;&W i6JbU!r糀t1_X˖g8.d>*m)E >*V?|q"%+>iX(HTScdhYd+ gS<,K>UMZAɠa"B\u:^r̃"πb`ʸ'xk%R޴:32A}\V1ądIN6~ay:heez95 ˖ʟo&U5as@Z :Y. M)m%yU@2J᷸10xz`?*.2,GyBk _b`'YP#{S!(Xv٩\VxGu4`K;P)pY-T؄{ɡgZrj+[eu-:G KÂdـU nݞbtnթ%uDKXZn]'; YJi-}5hL%@*F뢘LӌM%EFDxqqU:%.; 1: jZY }+f]w1s{θ[baoD l$a5C,)(5.!RrYKr]5Zqt sD"?vت1 EPM{MjDk?_QiuLVu)R:CAMkʠ5 t(Wc?f|ÊrÒb*qƢ+a/mL f!xgxb-{fy5aw9xs2G97Ż,c(4pz&Z  n\Lv(v/Fe I@h uA{ xljB[>',;u ;M) B!Yb ,jbJ<8 cf>7A jtPir 6Fp.LQE #dBqͩ+e W8M 6zj vqV_Nf['p%W/#xā&b4,_!OuH>TqWsxp \)O 0jG|ܮFLRTj%r5|sVPDęiT/> \8OO[1.V0!). c֛F3[OLer*A/6!$YVʇv>4 *;*hc*KLH;NB*gBouaD(!r摰6pF$·av0 ovzUC~,2a6o('H5@vL Z-l'tebK!8$$d„ՔFOl=+6:W ũ7#}DJy#)hXa)@)L8BC![2Q],B[1tRwKmjstf;0?nk X#OEE.Cٌ5fMؔ%,)l^! 17 A-FVl] 5-@qQIQ5'8S*!ţwkVJPl1܍2L 5tQԞ5c"P"vwJ H=FXiU5C[$b\Za7ā8p;| E΄G'N„ZcX1 tɋ:R7iCZVV+G̜{xcK,F6v#/F{lK $ Z*.)a:d03S<0H KեeVFc,oU..(U8R2XN4]5-|h8dBʮA/p)dB#)a>ZՋXXm΋8B_!XKF2ERNFdB+ɝ,Z#SƋĴǟ5vVF᪇φr쑖eэQ`9bq^򨌉V=R%/ݎ' n{8/"ٴjZlT FJtn3s!qu0 ?҅.FWPBlIZغeZE&Vc1g0H v,TłHc\-qtKTsAz oWr+yh[o1ZQTjzb 5 =6F4Rp;gTzٚnh ޖ|G7U1fZxXRJ0w&΍f dq>E:QYI a*!l'(;9%A5jLbgSzUmPT^|%J;\m&ӯǒY##/((壊jfG~0 '&yCZvqսEކ|?S.YJLp6@Õ ye&IxN5 dfU aZ#IS|Q~h~L2&>[1X(Β N2ǭ >*A̢"%dMDPp)DMj[ƯEK3e؜ɲ0v)W *O"*& }^[KN;9NYKVfj˼\ϦUǀgs!Խzcٛ;;DL185#c<ATkrf(SUux}rILJ)w׎EL,;:!ma-g[Y\`1}W0-֥O,Vp dS̾rS%`8\ X^tox#Qe%\b\L$5qy .k!S)E"Ȟz"})IrcLP.># MmqDxvp1dˋ ah3b Z$|uȇD6|$\X qD&gO-Ղ E^rԕes87s-*n3SUVT76x؎@z"{K00ehŤT'0TZĢ[y,&kL"qv"pSŦ. b\vLRɬxB>5۩ؠ*lw,״ I6:\@z9F:XQSś·Lin^!V`NubZQebV@ă܌& q\hEU-cgč!*Ϋ8 QPdafأfdH|~ ZVyhb*yFTᢸix:0O'`%{U羍~ +¥vdl`5d 8jmSz’n sIT uN)h&ڊ:Gu4{W^^яe0l *Άst^N.Qwɛ By1kC.Jͬ]\ ]-3]Pf:;(aq̃]&Q~jMPc:U(R_i{35H`JcO-3j⮉iBM NwVZέV] 9>桌Xl6}h:.vR%һnF7YŦ;f )Ŝ1I`@|'5ݳ{#6ݹ8*귦d6Ȩ cɰ*,r屹QnD)Y c|yITlz43TpMUkKRsZ16Wʕ oy) iy GwD֗M+ue+ zM zɚɉV20DLsp1cQBrXir6گ?#uTN`M`U3 ZlijW! ցS)Nk^ҕ +'z«-}1Cԅ75 gbT\U5e@wbnj5͍EDktZeîՎ  FP,߅CS1ͭ;)#Yl]MJoGhU1R=4T(1݆E_y{fԐ鲵\x9hY_J΍*]׋HRY9֕o9&Ü= 3SSz:- YqNA[Ҁ݆{eouaSW#A>-&7͌A]rU#G0xؑCnFVN5rE.QoqS')sO9NI(!73B1lDI+E"S4TMeiIiIt©e9)G#t\0ɫ0e ":cM,,iv,e#6 yjvWq(F ~G/4TLUku)黧pP%8eSir%gW`Ǜ o2^g0@\@U8Y97"ug,.hF>ٝz; \yZZx{NHO59H|wɯC1vIKS,sGyЫHus|m+B͂S> 4 384÷123(-J<;zhh^:n6z.MLtVeӐӛkT.}h;˃`ql>VʀY5Tr>.:/d6f|MvCܨX+o)[=kŃ3HQqiq10G7;|.f-5ǒϿz a(Rhn1o+{MdVoh!yD;ۗk"A{Q[e܂/Kc;'T.8w?{nz1z72t&>d'FJgeFp-"CW&]k&<{lԡ $V!^t sWBQk#x /Zr7j /wR0n*μ(L%pc&204Vd3+-2?ppնX%) vB wuߕ!*)3`frDO;z\.xSԀeP3Ec.P+N륆o_ZYMЙ=*>5XnZbj0wܼE\Nga~{Ly1aW>lZjh$B-aT^ nxHJ8̙lE½eN9Ukؑieu7+mc'xT{6 1 rҪ;nJ(tb/!ʳVLc)j ָgCtܨS{ ]mUd'V"J^r7>_݋7j#޸}3`x&-ǯF?M- 4&ΕM`ȋװݸ2cp4\Е =Fkqcb vE[Lདྷg 3{ŒwG=;~Nuŕ;M8zwY葭e>/06̙6ә@{zGi8cPq")}, LVSQJz(,[K;)+:1P^賮аƂQ# \UYZ}GqՁ-e=_Wu[kyK<2گc&%KK~`#LdƔ֙@xm7[mc4K2ԾY^3}*8Pub d`!ZD;SLCg nbip|^?xyqiM ]Fo2o?ŒShu4hi z+1LMu_Pȼa,w\lRuH@Ig}BY!O\7+;b׈D=W?| ϥu} \3v%fS9mvP,\lŧssBbwùvkY̮''I:0m7Y.SS6TvFC2[/kc6E꛻C4*-& l` E2( Y5/vp_4DRA?ndԮs/FvOihӀ eXq?!lm#DX29Q)/+5 Cf#6A2`@ $ t.~cYcBK<$ CkL}$;Z A㝫\m8⋉eWj}]EI 2ƂyMy)M3SH%_N*lV 59ޙ<7%Ah3 <$w`kP1v:-v~#b TR*6}f}>2q R09ƽlKK@vD7eF`cr*sd=9L 麀 !}K=7`i_ޣ+r+m/,GӉۑÖsIxБ˪J||0+-}[6vw*{ieFl-fwƺ\\Ġx \?'D;tTgqaKf:S`v pu_yТlWs鷑54W1rƦȤV$ALZ %Ur8~{hh/p>Kn[" aGKYeթoԖ ,-d}?wc Y/XgIrndi#(y7/2!6,ے$%q)4LKS7'F*f%84*m 3#1V0&^͐H%Eu^@_?:gd^u&Ͷ/h3z,/EJDǹ x-ݚJѬǀսqW}t]%O®A ϶!4x4vPx y8mk*ݥ_1yכnq2epDOQf4 I?+_V)4^U2)yx}ruyrC<>"}6dG`M }Pnpfv]^?C &;t7G3_Ng=ߝvb'~cdsLەʳo>\SYK;ԑ8O#_J.7/hÝh:%3ZU.݁)G\q=ӖUcrl2y8TFyZcbXF쳢'?'YNaR%fx꠼7cQ%[׺Oy/g%Ѡ쵶0ݿC-xݯ[^?@"4Tg wt3ɏlu K18@b&6Qk6~ 73@I! OA7D x~gKv%u$ &vsmygmh=MPB"\`)Jx瞄$q9_)G+J0i <=lzlhM"b{\m]]nw/"Ce%aSPsDY#4׶5tt, 3 yot o){^NܷX[7_성H:vx`3~-]n2CZvX5w/1Zs6 &fʝF\fvnw 4cV. m{`xgVauy9 &{3e[p=[5W)p]Ip.N"chѸǩ2[V\wl 6kϜ(\\>&- uSv׊4iek0Dd%0')}f[ke|B"8fJpm4mV+t77\4/+g>GbҘN!U+ɇF-:Q35ٍ8Jg1*2mt8cT %R 4rdqMQWGq>|\}:N;] `4g w|{s"W3RʼiY8U6W=o3kfܵZދ΂H*7F,8;^vRm΃&VVO_h}ٗlE9p$G?b~`+3Yn'yKetQ*+t/N7Gvڬ<[Go'뎍& {/}og(jĝX#/.FDx|Nã,i)1FKǺe7QLb؊*K?MNǕ7 &NǩwZ~؁|^\Կ&W*x{^>mMhWWi.C~Ʈℑ?MF"(x0*?^lh~2}NG};H*Ҋ3H*ߜ#}& oalWhN2abezma :'.G/O$~gwr*'ʖkKNoպξ d_`{;$I p\'G/7J>t,>G<7ܰNSx91p.U/wWs;<ۉI]$.qJy:{ow:w!G]/J|5X]'ݑ_zE7uNwؠܭt|-Ϭ3z;+{E0iz%Or;O'ȅ~NDѶ-}.c)d|Nq3K?#sP0grrXZb !j=ikKiv +W,G~Ja?O.BjL5ҟz_Ow_^[Wyq}kuϸ7۝ϭN{/m3-GeYl ~cېM6=A ?ճW3}Q}^p)w'TWǮ' a:>r<Ũ֍}niF@!?#o K_yi>fOU;4-xU8`JPCCaR_K'/J{}, X S9nӒo:i`;+cyyoby 6:zA%I8i|7dzx.;N;d70<k;޷v:MVwŷ8ݓչ(jow ڎPҹ6q=~g&L.7GFGL ._ccgi%g/-r( !ߛ+Uq=/~la<ㇳƿLAl6a 4oMҾ/ R*p+Ke( 7zYeL!I=\1\ʝeg K֡,p?Ca_PHv=}ú<Oܑn¿P 2|ަ}o{?r+>G'&oR{63oAfOeCp ݣwB.X ޔWzH{?gO9, U]jw`PlW{W#Ҽ>T\|?pٝo/q*N]By߇h(>$3z* җlWe|v.?DgZw <{r~B+v4O2^z^^kgW CAuFRnz?svɗ77K}گN76'7{_a{?}n)3-doQ=_͏VT;C$.8vfv\.[:'x6߬/ ?It8)~gV낗]{<.5=ҧS֩6}g-7Yݧ7>=??kv]Y{P~}?+u&d֟5̭o>f߯brw9[韁x5?@$$"I?Џ ~ǵ >WCqiH֢ \'ީ>kUA~L{o|n/aϵ??#(Oi\oJ,ĘKaAh"m ,ޏ_o?1ysKqS;w7s&o8{_^wGuW#^pz&G~]ooGT/uxz;7? C/\=?|wS]럖\n^3|_(.iR/͊TΠ̪χyND/}?dV3=uanX._F??>;_ ws^oWoO#v=rut>WbJ?ZWz.<)Yُ7O~kZoޏ;=ng.[Gct?a~/|e˝jk~/j~WyA>@:$U3 ŗ>W>g68 }f]YݧxN7I[N}~Oȶ?{v1~{r{?TE@/Cus^e>|>th܇0~W(:>g|=I"̟9*}@G~:?rP_+H闁)XX|}rEY @(P??/ z~^s|_.~ov7$y8{8}O?7;ߕ|No?,3lz }%O}|?,-N77SUw+e~a}пv "eViMn[o1/t2?|Q_#l<c??{Կwyc~ozߋu/Z~__zf]fvʶR?_&mnv4LW ;~>z|~O~7g‚ lP y#_ ._ OKXன|3;H$ 0Wx`۔Xo(t_?/owUcWp?aΌu~*.{_]_:<-߻c?>'eJ| ?x ~@F~ߟ}ǂAc#rUݝ>>P{/w[YϞ//{vHi|7/>B>F1f]{#LM('dO|zǥ7p|^/y?a*!?j0~)}v^ޕ}nJ7 wŒPWZwSok/x|*o2iotꯇ(S_^n}[>N/4 ƭ?Ӹ|og~?FW-Z`M>wD WHB:V[kyvo;<<|o{R|~gj>8 'x!h8]% 3PzHYQc fKMo3&p}C9+@_uτC;^Uo_^όҫ=!T*ސ=m'² "@Iꄓ'lp2gk'Qk[ + 6G_qG/Q ߍG]OKCwoŁM?ڢ}?/vm_TAH;S@$$}^2ɿeVTc/ℱc}9gԀ\EEx>giOMJtr?E0@1.,Opb,6|6yڟ_ag $H H8XOLϣ/w;Pu7?8$"D!GK󿂟/?B}G~_y^{OoПv"@"@ޙ?!u<8?0m醫^H@H@=9OםK_|?(œ֠~GĢ*/'jv~?WTT?b/3A?}}_ƻ;KoA^__a5?Wb k:AD>?p|ϫ1E<~)XS_;Oz'?+)Ν'|/00@.QPRTP D'?Cr(b/"EUE~~}_W(#E~h"( B("}**H $ ~q;U??+ԯm .6IDTa8p$Ol 9'ޔ}&V2)Ikq)2L!Ue(FXUu4JHAD]d#' GVQ&%!D +A$RvQbq's D BC !Qi'pxJR ihqwv941cr--0I|pƑ$`"D'fh`h`I܉J\aPVC)!C! @$h,҉ RJ"#yW&rVI)JJI$9#نg}_}g~XTJ1(+[& m2$]kRa ,9_\}_k mt 8qkU@"""$P@ TEHETYBFADaDPdEQG:9""" idE @tX"-"," "B22"" "+""$ jW.1DTs e!$1H) R!IHRRD$E$Dd$IId$@AIBE B@.T*P*:*@I` " #HH""*  ȊHH ! $ "T ⨂ES "ȊH_D!D$)i  D$RA$R@PP@ AC䬆7MN 2 (Ȭ) )"H2$HȨ(,!$HI"+"H2(H- #HH(``>-dPB@TdBEDQAPIYDT,H(X Xn/g?7F@$P$D$UD$T$RD$R@7ŭg߽DH+ H*$!" ""(H*Ȣ# ((bL^wgN * " ""$)  B@U]mPDoH! +"R"H,qKiǒ DA$EYDP " Y$$ O՗|~#+(h*9*_$ADD5(k5Tu+5~o~hjb( 6 P+|/W7?[?';csD@d9R!}lZ 9_@ +) <}2Q + #+ uؠp"AmP33R8tq 9-L-#%Q '-?elEBȅx1}>6‚P M n &dˇb &h2f3ٙ_@C0C033{3<~*(ffcED00\0MڵsPLEE :@H8I{ճ&/ׯ^zׯ^t?|'|gUT@(;^}[=^J|S׿$P b;]׍,q@EmiH&NNG (".*"bad b . +yUW4-iAD~gb"+жDooɾs:~莎49Y HX-ceEQ ,Y: B.Ck@o/^<3);|뼧gDUP oۯ_}or"ȼ'3Wkσ)d>n)JЭ/)+}.ҲVZ]JRՕA0"`IHHFDd$R@IHĐBF I$D{2ȡ"ZV!! BB2 Hi$$Ҳc dFBAd@ eg))JQPPHMMQP@@ЄHEH̀@̌DPo_J]9o:G8u]6RJR$ Bh( *j"" BDfM đ FF E$dII BHb@HFI$dXHI $Y "0 FI$ BB@d$Y $IAI $H!BD$RAY$I+&ԅdj`Dh `"*HH`b (DDRRMہSr=7۲)i)"*&jDJf*I}ֵRV]]ě᱒$I$ " $` RIIA$FH I#BBF" )Ȉ&$E3BA1S#%CD$30"""$"2$"3= ̌HQ PHHt$ 12"! ""P3D3"ЈPLLPA ADĄ PUDTȌ  }o37 ooqt^%u5 22$1#4R4K}u/.e_|e L.@@C3BdA@@ IH@@Dt2%"B"43Cֵ]$](]IukZRo"&w u)KuiKMHIUДĐHmM4MDD PHLt22B%##DĤ[*HHHK$kJHJ%&o5e5lJfJhDjfT/XV})u`a.KIph`*j*&k! ѐR+ukK+t!JֳfP/ip i{$BFF*bF"B*$hD`f0+KK_}j (]@ҍkF_u )HnVmڊ(av!zSMZoKkZ!)*uԥBJRdFBVBVV!+)+JH_ZԒ] RRTլ!}i*PխHDun[" (sNoC88^)uԺkJx"  *)hCRR7)7_Iu닮JPV2\JJun.(Beh]R mڂ*@iX1 Dr##,:"!)h&jF`B""D&@@hFffF @JHd": )"* &DF@ @$"DB2/YZPIJR_)I$iZRRnނ ;?NM6w)wUU'cU"#7`3sPR );D:#@+ ""2#)D4JFGAGW`b4pWuWsC *2JRf9 8 2 #3 "FrXHg Ru$%6!RpgTК@ʲa#V)"M$b"$M "EF ) !dĂ(Ä.!Sarhdd8D! ܌ T$*#G-!TVI,RFP0#g;0)j(ICPKFQHXآ@&T9(1IH  d%#P),F$ i&C D]̎ XF` "QR!)9#(#C+"CC Ie#Ò´J" Ė $b b ΢l X٢LRHB#8cURb0 $B"DnfD"Es B; J@ %"%%DT`8]XAZ:+ɢF"L!&yU$" iHMYJD(lHC93D K!RR2HHIdruxFF(DL&l*fpP"N2F DQUL*0''`Lji(FNn)C$1YA9403I\e%#a* )w[4tMaqA4 P bkN} Y, =~ ^o߀Hmmlm mmmc$ 0u$HZl@"@H %s~ n ")kDAI$XH$I$I$IbeAQ+DdYA"IEdYEd@肤$YEdVEdVEdVEdVEdVEdVEgQZdVAvEYdUVEYdVREI+͈%@ ƻ5O@[}F'>}q; n. ddd+z5LQA J56߯5ߎelfhhL>WzxI7.}}[N#8}y*cŝP%t'KAbZ3xxP^28 C߅;xnEܫ w\b^tn@n yLkؤhp$$ $d0` 0` sx!'vx-kh#iˏ*(XFf3<_frɾ &:D7]\&{[OG+_M{wDL3GxTCyGxt7x|~#teClm:G>>*sv||nK8uMIӣEKe[%mv] / Grnv<Q1Z_{#u-1P-lCQqp0S 012A #vd Hj3)ߝ^c4hѢDHN;'d5 2^ev9}zwu{=VUC8NoO^Vh.]/G!DQ5@:izn#w|j*p.w'w2Tw^`NoMTN^8:8=;\)kg3?mJv]kZp /I 4GM k=^kb(vfedJ"d#dY.gD4T pd3iU%!.>.#DQ p y^K}wB+8@@4:- c+!4ٳf͛4hѣF[-:Px؏r X1:ӳf*h#.Ynw<ۄϫ=fHtCR*g"@D5AXvgNjHպނ`* `8a:NSj$v^}%U##.3E3\<e-2@rW!Lqs3 8L=y*੃!@1\EH:A,t M*ah%[::ڙ35@HD$u7:/hH $5ZZXZZZZZZZZZYʾ bO=?}a J.(8y}>@B#!mdz|/jEJpppײn2r1z=GR7~%l7sq\@11cGA 05삖X8۔K69 DoV _Ǐ 3ļ y^ $r  7vN-%\]eڲdq/[0 2LLr?$.6UQ66D|"s@sS2yʥśs98]3qKk7~`bkuiay~^* ㉉_`Fbjۉ~:*E."g瀣^cxxS/)S0/4:| *[}-^xE4R|\\L6uP0\*y""`8ʘ")Sֲal-!c`vfu2" ?1AY&SY8.F^H@z͡hg˼cj^vl,vCE(UN)t4%V`RډJZ4J ]uїG'U5HM@UjJ%K56BH$uB$.ܩh44U"Sـ飪!lh]DBCAf*AI A@(4E-5"@@@ KJ4 2+JRu)Z 04nU86ƁG@5lha4@ RkdRJ kEJA5M H@mCEPHEJ.vmhPR65@ġFf2hkK`b5=ݙ C%4ց@+#M$mXMh 02цV*()6f kA-5k)ŭiB hZJj̓hZX@:u*WbT-VIR4EP*[jfE!j'HWMfjPQPM)TRT5U(I44)H62 Mu”D*t0Ts"D@%J*j)J֐B+Y Е4@PL)((R$ ];@ʀht4鮔( r4hFA N@   R@P @I  T!D*T$I"DU **E ( @ *~0M0C@h  hd4&4iM04)``*U?24@M4& A24d4@&E6t".rjSe 9v)GN `Qe@Ȝ-M]ӿV$Ȯ,bQ5צS%h銐AU@O:[7}3֣̬o0 ((eRchܪضea_;,ۇ@.0Z6ċH*$oc%h̔2hISNR-* .bj\F ]f.k$k3dTMi<ZFqtZ r{<- #3DT $Ƹ 5Ʋ|(+';Ո [-/ :SXpR(O1kOK&鑸Z$@0QA=58T@{OKD/POD|@SrW29T7%]Q0!VF BU6IX,2 Sv |RH=$O7 s'! yX*G8(cly΅Sk[sM77稓hh\&1yZ ssOD qCk:I]gc΃ IqLߙEYk҃Մ-d}0mdCQ0Vu󛰇[!H$6Ubwo0D%IrNڦWyܢXP JS5nUi(SJL%rZ@C3Y`<(aKԛ+$v\Ԑ2Uy= c1֞mS薚ԙa}+ > /z Xƌ QH[  - 6*R蓄PBUB -͂ ,H; I+U0$`{9%ZCqݶbڌ(XcaX9]qS=Jȁ60GQ옅ηZMVTV@!ͽ}vO뭁/ +as}Kyy;s#ç] IeԬml3ǩ''6rt@q ܣxHLdKJ@vGBT PXVZo0G˯C|m%$3iS ]xbDLR"Gq`1#GTFcM2c м}f}gV2,u0f?fMX: ݩMZmgpD-F|M@0E>-m9d a(03(Sv) Va8G[^0$B:nwP5!=ٳ-D6F&;Џyk!ٞ _,b`԰G:,IlhPoF0 lk"r$"v) ""݈NMM /`Ӟmm()d +<} ^fJG݉oTvaGb62w乽Myۂ|>qJ~G.)9|v}RiPL)fv{+@5uQ] L`6l-pު[(b%{8dnD2Zm]y{K@GW:ͼ|w=2t܆Y=¾of4p•i KӒ 껠,1^6,aSb}bBR9Yv>c u*.w/mD'jlj8,A3 Xip^}J9ݯ][<-ǎռr\^I'8]i;;K6e0q+;#sӿg{=p\(9c4ۍeq^rD`GÙƂܽx@Xz;?`>LF=3w!GYgNV!(& wb0<--Fv'm*2 fDz2Xu%<͇Ӳ-GDuWtn#:8ʾ/<%m2VI c3%jAUc * *kr 04.X{\?cWb"<^.k!r\z$ro*dѫbvbW8b 'C'mvѧNS^]${lQz~M:9bظ[˾G>ڷ[gl_)1W=kA<_ EC8+ŏ|[oSp m>nu:qۮ3ĢgNb ԉ]GH.%X}95 !@qa ߢJ%h u&iD> й-%$3S1"б}:fe;=5ah#TFe Bޅ-MDn('(D>M>0SA1&k),J> m|gIΔ42Z;r!r|0u׷nչ'76[2v~U h[,Ѭh1= l,fegCfF/YW~G+-Z`[WTV&H/tO[~',rGnޣ!+ࣲ:|ҪMWFl^sTt| P0}h nWCKdF&db(o5~{spϝツ;>ADva vC;LZa$%"P̻-rX2Vf7wcWg~{:ٞh0#aѨy3~qO~<}t=`l2u-j:ۺq``ËaKo7͛$fH?1Azj( bLu>kBMAtGSgA ڶTF=SnBCN7|YjL}%z0lod}qWGJsfL@:]s.MXz([7[)nֻeƺjU.W"ap_5)&={cŸ|x/Y,s (ϱ,3N0Ŭ7[9թA[8BkIaFԒA%H ҪVFekϝԠ X!fM^>5s?n$.n5v ^ WN="yΕ8bUHB-Rzgmvָܝ|CM-6Tk_ܠ 0s. xR3i˯$nɝӜok֯ Mծ:]sGDxۆkmd~e"ǣǃYk>uj\r%,;R me~ uACߞY[xe vo7"ȆclO.9윉>9^z_o>^FsY'A )("JzGJ%YgW+P;#gQA>N=rͳ^tEK0.1 X~*[9ű-s+:ckl]BFpў%l/*uS+}'o*lTÊ #9>>c'Ѧ{_Msؼ8_CA󭈎Q0"&DhyFs [9:{8>2m ,\N)ԍޯd*U_#T o+=uZPj#WlT%aDLAR@u;4U$/lVf/5$x@a27H~擨;[ʨ0}sJTJ M{3+9^x\Wj3/0#sk̀V꘎GYW"^j #kutVਡkX|ZMtW폿GvNKgfgy73u[\&MRxo=XmJgJCv AȢ71 dYR϶CeA}(E veRGٙ1!jtܕ.V\#`s_Z3\-}~7wOa&MJᄥ'GC7ڡɈ~e04s`RñpoDD$^9Y\~\,: 2XԬ j9K qG8~L,4{yA՗`ː^;8m:ص"Ex2s&׍BX:I(I 3w&֪9F2A#P{or[؉L ~#}WGZbݐn!LfS*1`$u/rJ_>q=/7zͷ%m_ u˜|m.dn'\ϝۂ~l\G-)],ZJBYpv?YK?Sɯ1Ǧy>2&jR;NMu>{wߍnwƶMc)T~>hCVI|3<)q>|T/ʍ)u c?C$&ӴE8&UÜ|RűqOX0r@\T!PoO7qwbI2B2:F`[Uwc A`"G)2 6TvB=|`y7eJ8`V0>f>e9F"5m}o_D$|,M=|{f rBu99>AlXk?ɈqT|$ki eQܹCgf4\P=B2y\o1U;\kB1rN 0d^Si{M묚cpHGVb#Ed Eq޴ۑq"[BU-HKN삞3swhㄦ~J}Z1W+ %{UqˈGGyYo->d}+LS}}H;}tݱBuqv:_ȈLF!גarthbe6Rdߜي֐ LL4t'%^jTe)BRя081`G9N6%rH r7>V8 Ik S۹@+t,RLlYryR;:(4QTPLZ cRZ\D ̀BY`A4z]v R0΂A4̣l&kPy!{lNTv^ߗZuK|g7FA-C \' Q>b}",X#kgF/iڴwap8 -q6C?i,'9C}GsKb{C8h+O3|b rݵٴ%@)E=))8wu->ɇ;"5/r}>!uK_d>b_ͥ_ vv&u՝Tێ=$$N}Sگ mlB#@. Y2Bc[4"D}Zp-Ƣԗ]m`1i<@5CVB;Ry~޸(еpc\xic-KzuehLg5*9LKsT Ӛf{B\+M$@g/0j j7ރ2`dX_Y׍A yI( EYYh"g4K\DJaH &bJ hC.0 aAGqFAseuȑGbE῝7vBAm?4%=L\K11#ts7paʣjj;qlݹihRGx:G6ع{g8]m{+}sM2zqU[]_',X5ޮ+sN|??/Glz oh[9 "re{bw\+/&OAV܎'ǩT?3ADn*]+"ە(i]\ץşaH)EQ~X1JS,љ乶]Z"wab^h:utR^+Fj0!%5m״{cxDrx8AHFl@2Cۊ TV[X>P0fA0 '8=Rq;TTRzθE:!G-tu;_?S~d*ӿCEVKS[³s 4*ڵw+Ez:^rb_5]c<1zxÈƜևӏx kq,229(;b+jr#v3(WЎ*uyaA)e5 2Tp 7CtlaLh"wjuтsXbA'ل.kO'yUR0` ` ɒ-ՏNI{)g5A&"f?6J0֑ @mg] Kcd~\),AT˫/]@ hg><џqAq` 6^¢GOx$ 4X7 q Ir6#ANb-%Zjh3I|r ~#; W}xT#Eu˕Β0g1cf`! عmjӡ}"4DAW],% ;F%az'g[%^FmpE疷T2yN˾@v@‡qln'y4h1ѻ'؂Ҧ !eNto9 O<2ѹ>ӺpS`Þ$ r-CL9h%: pű+/ArulڝraJ8c ɖ4ԟ.Wik{Gq~Jq9ɪy𖤁H!Y׎% 6T"'A'a\9NV fͷn-y̔#H`r$?MIEćU?m9ٻ#YP|7\xjx`r;wf瑪wR<[O6̆s~K$ dJr@ V1Ns=nd}aRe>[9?GEP_ZĒ 4j(at 8\ĘE]*g%RiY|^`vjv `heQ͋ 2#a/v<-b$CM\(LF!˂ P1 mO.\ QϢP0<|>+t+H 0hVJY:@7*P2ۮ9֯;_7*Y%hq9&1v}D b3٫lJ>.fY&6^ӣZlW tlKP=-+bG}<~|b .QkƗjJ,ÞP6J@n?K;s7^⨝N-4rCPS]ZN-9S\]ڛ"yia mAc>¨>xa QM2dxoeܺB7T̟u]B,G[or:rg"`C\7RBz{t$tX=`@QRRD3b8_GY(bZrGp3$ȬdbqQ%'.]!ML J,@0]Mrsx{.1Fh#,e 1H̙ۅ)G@B27Xx"pf$&g< Yt\\oBÃZ(>ibl;Xўd4'2Hj, S7?zh\7;юJVV$I[+;ѿRPg!3 hɄnHrgjϊ2LW=vJiJςI;bt^lqQ1nxڢp*, >Ap@j(s;"iX]e0v4G:aX֬\F*m3nR֢r{HY)r!*[/J*U6vۢ-(%PVحqPDbyT؂C\UoQiğ,ZGA"nV uHVH% `e̙:#BfBH7Vgf鍘\E\P.Bf *m4;LU O^'De7H-%lNd* @Q\ NHUh+92L 𩽖y_Bs,݃8@AH>vP)cFc(^rh6ԜoCE׸xwazvݼ\(nJ ؐoV?d~ncM=tjp+ W0wxXX&DA3CUYn$Dx2hGfF, aa,zԞ6A:=0KlPə)l,UM&b&yOuZ {MZeGKF|=L_bZ,u_@R?,:uK6§x"+k!j9 s- k2 N:b\/u+;qopgD*z-×yQw6k^VLSR(H|Ρr'4K6-[I"I賱"3'=( m6XYLt"ITJV&mXhNk|N^3!Q,/(ǩT1 `?.Vc<ܻ rxz8wZ@JǚFR`d ȴ" 2 `'ԙN]6U5F`(SR*hTٰIвQK 4]cݟ>ܿw5(d8P#0Ht$טϊ4N6e}cyS 4.np,&Lՙ Xo4sFu'r$5oW;)$^w4I-`f"",Ȃ(y8U.c4nrqM^QCUlqDXAځ|,S[MLQ&QKO aƜ[ɋ{̄ro0MrR>h>zf* sX0wfYHPMTPP$֍6{Qpc;` `-9*oRxq 2S0= UTf̈́sQ9!r|A̦Lq)#lcOGA^VM/dzHbĊQH7M<<ؕi(elLMqee ,$cPt`Ǐ@2ʬ Iknj @ wEZ- |b('V>Bgv..%=Kf2 &'\bYr-pg?qϯ<\Ja~tbʋ+0ӏI1wcQ}2pxCV,&BcFl#g^[:/^^']T;2Ep.<✰d5d.\[%)㫋&Oar0 /?ļ:5n(^7M⭈d҇݉DHN;L@xlDzUm "Yq5z%ECҎ3 9h)4T ga*6&BsCyвc*p)ᒬl}/p` LzGbOAdh86Vu,oNvp9\v8` AAc\oKV5/33Da/a,Et!_)ehRq|AAu3ϩ!"7 'Oay.+26)c \@J'qC12~OFFW*iaj a|W(!;-[K tW|& BYHRM8&([ъ],xmBs4>4xbʅ ̳5 lumMAUNBzPd<"y.ScwFϝꈰN[`^lU9r$>k5U$-P&&'8yZBMG^ #؋hW.k& > ZDrbݺ dm {maUbƃ KW w=ud?>ӓUhf<%`_b,Ye^PXAyNF*Blf 2p"]"%.{!oŗH1 @ŃO#o1s>8%{.2U,њ@ XvbN[,Ћ:B$G;_tN N.Y/Y_]N_iM4мħ).{CK`E} 4"*|R.FlNzM骗,w>a4HY?[Z N@;qqW6#q@rI!W:mxHn hIt YѴUՊwb.$&ɏudWt 5_SO(BZ10M w6Q$hbA7?ިڭ-_ O.1JShb0\9+s _ӊnkAHJS0NXN4@:w@XYA8| ˟mtirm}Vy%%mi=v%6k^]$ñ$6*c+5srDVʭX:LQe;dstOA/ 4*@9dYȒ&!X/TH%EjՉ[&/(*1$"}XL0[`8}.g:-v@c%+pص9hM*E(,NmǭiX(YnO;7=Ĩݍrq70lA T_xPE)BԵ .30,Y \o\{-V!!Ö;眆5`$CxfIgP< Ėp;%wqd{5k*Lh)١1g\I6AcQ Weg!5lg[s1!T]8hv]P$8Ь؛9egSSkbf̦]\h׾ K:wEu]8.$4[].4(WDE;mA`A Pӿ}|b{[6 h Hd@j/Ӕtt݅3)LCgp&lp1ՇwdN6džpW7w#NEOU(p^i>b/uz,%exSp?5 |Ź` a7iT%I5H,0Z#  /Xk٢#GG{ģg+PӭzQVx@P/#VҹautZt fD5HG8g?n>ࡇDS<@qQfxk$2@n¤}$1evżb%L^X&>qO5X<[v-"zZT7yv`j-׋n2LRnci9t HKL@z䎅ƓE+*f (üal[wʦe*ez).S'yZh@]SI=q4эd` 7`!(_!s)`|sn}p:&)T\"rK޵P6]64JՉ F4ɷS׼y#`.O@ca;tHl蠕GuNhMxu,6_TMRċ\>82HaVfN JI  7NW2^_wڐ>\p v#sǑuetme%q Z-͆V1_a mZ+b 1^W *ex;WK'jX[Y˵~[ƻ|ꆻ{ndzAiIn=w'r:4'G-?DTp^Mܞwy'49]_fږyM؅sF'KיGN^_:a"쁈(izeAWfըndyv'ZTc ݼ[q,/v]b7h80}ohH#;P8 Ƙ_[}>O~"lj޲RjIwJ'][¾U _ ̲nu2ku ` q<5 %ϱ%(#iaRoʍʹ$.iLxdB53Lk 6cI < kװD}6|"E-`=)ۿzfAsBl: !qk3. kA!&"g2 q B^b6<(#lJ/j;KoI6-fN.qXkҺ m  F<;hpIw0̑Uvv0xa{ BGd|آRѬ!4*$ZRQ@+ܚ,#]]^Y!f0EW:(m" &ewbQ=V{O`cziq99rCDהJJѱ *EL9tR5s9l, j旁) EHړ=o#y̠υ"C,ccgUi]Dv :YZL0 BE5[TT^%dRN!.|hlqrT01g\WDJc#[vITл 0 {ZyEcCXEq=(0s"2cv 2(Icԋ95'[Ë/~N`Ċ=Bou!IXl$þ(+l\h[Y`=WF?Dyp5L 1hZ FJDbBhp`f E K/85.@|Ew-@^>FZabLsuՇN5%QY< !rd,.;??:8OMc$+#Sڡlǹ*SJ;{߷,*>fbQXcR asl|lH"kD%|#@>pW,dk=®,8Q^y^hL2,a EB<_T圆&,(g1Ӯ ,/4\P xs8ˆ& -ORj< ʏ_ PBϳZ(VsfȊI{ʂz@s ҉= ~fNc煭un/0d䷚YP *_C8־W}Ig/ Q/YYKEY<=>W GlԔs/1M5f9%^x#1 T#_S+EL[ai48X!BI?F"f34#׈t hPX0{AۛvRNf .Mpub{q/FF(!7 }W;Dmz"H[%kP昖P1 ޒ@(_Ψd/j%sY*龼ԡD2埉)hW5Dg'%ÿjYCgNNȯ5~nۜ1*A{P5M=cH[] 6AJ-~H@F6x6K [܄>l\=uaa|P@NtW dhJyp!do}I, Z7'LOʯ3DY@pؒ`fBr{(frlpM0'|zc=^$G fN`HudMפ`ȧ6 rۦcZ1n2 SBpfS \a%P Qcg cvpt[)OO˻m ]Ъ3F ?dXHݝm%BBdw~R3蔥1Z GPU]ַ7جs&P0Ҕ`#۞읯Jčq ^lO܆UwM{8rs(_lc ESe${L FT-ǂf 8=BL:^8S$+'dQ\h&v1!Kˋ3E&t,8gN+\nWZE^J#Ƶ$ޛ-Xςa$$՘Pqc@漻۴*ٽAv.Y"Y8mo]7[p\-ʝ9E@*` ! FlBqxhW:JYGQFqXOE{r|7I'%ʞ.W -*}OyMTWAX#bYD;*JW@ u.(b4+05i#Yc}FX*p# OdQ6EPyym6]L`}ǻG+ARD}D|̷p`ً:g<6ս*!h1]D#$1 .K y~n1AX9c*a,\epF` (x6ᤩ]oLeHdj\3Q͠FBiV 'tЀ@ۥ"P+W:nfQ)7otBҲ5m۬OMrSȁ,py&pT]9VyQZ\ssI1a M0Sg9-,tրq-blV- 9{u\(E^c&/Tek:sj_|^:ÙyN|P,`ÌIs/.D 혤~ɑ$%D#jft&(]m NZ}oaL2M%n, 6 YjHb)~x!n4PI7\3 A?8t`. gMv)jA!`,#pZ6p2VpxI#-լ>Uc53D{@~ĩ.:LΚp`ه6Gcc=ř,N5IN%,].v!• 90`sl?9A+nHE&FQ tKk!~JLYd۟yYJ'=Y2.I48e4rܴCI}H$\Gp>W6f0pd52WYtf9kmBڕ6!D B!9Rx=pȄT\ +>h7wMN:[H:+J9i#/*3YԉCJLYiuV}mAdUYK5ipxYsFH?Ǘ3!zM$'؅5&գL'> d5V@ rF*h2T ##).&="Y61lEfR2hpG痏\ӌafP}ªL2:PZE7)!854rC3&VO'+7v'*!ҫ:91^dL@@RQ2ϥ%|hSȩ؂-eZn*1x/)w-GxC+%B`P]6& *ځ t( my6}m:% :R!\bȄ_:כ'֏8h3H%iM>`s~O)9?F;%,Z28Ef %|A< z砚Xw^̙-1c}5Q>#I$h,R=KX#(~[bD D1IDd΃ejɤL &ԝ!F/~`VN,0B'AؓhC &Q +C=-?f[e:C+uKA"@juwDFo:Pe&w&g&x7Vh "{D=dbMjGA%2([!iwW$ 3r0D0镇~VϏŴ8 &  pNq݀S(&Nӳ1S[05L|E5q<[ݰ:O5L!@)H8\;=^?YUwL65~  fjQS+5GCb>!ZkU-N7%!`2&Z t8d>5\Q( ņ@A. k$ģd@H$neV) >(U=ީa:PX;-yϋ026qab7hVAZEOFCdӇ@51!7OvL֙ƃԂL ILrK8D9vfh%bj!ş& b_muÿvu5h.^c%*\6ZWNsLBٔ}(aFw5}F{9 W{cNfIS:g4mUi1dj͊c''Rq O=&'ʸOl8N 2yeUZpG5KOqkT/QeZԴk`GGM) QYP#Hߓ>|,"ԎePA7Zm`:w[_69n^'l`5D}Dmh] _,`wIpF@54z(N[ ^b2߭#+~L0"IDNy cb|;mV32^Ϲ""5W+Ĥ7)cuxs*&RCQ#zľ B^{+U )m1h'ڐM=C1OKBP#x3 抙JMKPHi#ӺjTjC!YyK] 3=sl`sgP·{`ʐ\.Z1%Ő wgK.I(k.I{f4}ݡAvnSŖ=-]l)JnbM`elRߚWu ݯY0pgLIC+e[};ɻ@m@l35|дc e:msVE,|g,"\ډ3]f8Yb.|ф )Z`ͻACRXaM\@3ξFu[뎍f96#og }m5@9kH%U p#]M91mp"'l8k3F:h\ 6'gAhrѝ[f'38&z-5 9vDS G2B&VT+F{Y USfH ÕE$S/{|=29f %'# 2(4? uY_GC6m7 4Co~ 77;4B V8}P!v?n9ah0)ݔRw#&IΛÑSs@6drX9>K04ɯ1p4<)cV4ia 90GژM|Ӗ ı1T Hgs&Ce±Wq _FH{mUP<ګM%$جG=Jb-S(4C Y'A~r ~4T\ɎyjT%H0[4vP Oh2z,msŠw>/kN8kƀbUSEq>l 9"ѯ|>h$HΎ= 8P,c&]v~pQs5ZNhlZC'!?2cR³$TI0ZMfv+ڼ:|SjQe!)(%ӺNsv< n){a4-slɓZ46!mrSP.T YL 4u.n!VCǬ5 \Bh"/s>?8':ZF귩lTDHLQhلҪЌ%XܻQ#l(jVWѵ92ƚՋD=U=oQuz PbTD)A U{jzCQ{X;\-'Blk ӻ>#'b7#ߑ@"})j9SdŮG+P'Yq5gDVĮZ`Dǀ:'_P-Nw09S0p&d|OksծvC薔V֋@'b \(akFY,q-P^ u|<ï[AWSf& zQ /!Gaw ak&"NR7+I0vR9dYF<;LA DahQp&)fJX !١~t)¼6nH)jAT>d]b- bN~3`8M8(JCcn 3x`VX]P":/_Q /jTyF(ʺABaC;FPY!($e#% CLXøꈁUpZi GvpQad =6$h'h':;ꩣJt`9V#kӒ(ʎ`n$S0LiK=)PL+]/ aKc #iGKd1CLP$0TFcX-Dv\wl@D8qv9k}ɉ?.,%]k.껞 ?6C#P} ZI_$c̔{@Zrf̪hw`z:-J yoUAsiN" K"<'Mx1Z.+3EYG*)l% y}1a١cW/KX+_H4i)ƛxs ҺitÝd1Ԋ;e""ϊ77+*D8(KT|߹{ٵs%n!h]8h Jqaĵl*SG; =ㆈ+ƨZړ㖚u( HUo&ȶ72`蛫Bw\"J=א_#6 5$+a,K޸?trCg&ұi5, Xo;% 0u9BC]F?&UԟW^)3)aj*PcC*6aX\cu{[\TxZٛv3P@׬*rcs s/y#Nĭ|dQǾ}+ %ܔDnM;+oÂIyA莀pFvn!y/=vz4)߆b 1aUEܝ*' y!2:Xh0i D w'7~2>*"dk57}_vJ*5%{os;5š$i|ë́'ae- f9_ Zcu" lAqpt_(DxA$}3 w>\[ 8 "ԨedUJbzxNpjd?PJAYLE5i$ hun1tEkKA$3ݸE\aj-|rf]ɐފ4 -$M ksaX f 1C ĪD˺7U8-f.ؕSi=,G{C %ñ+iPƽ+jA}¼]}`#0EPqz<h7+\dG)fC$`hd9 Sf(`U$f(sͦpzg+T+}RM$1I~LXتH?&Ԛ2eHI XE;.bMSIaFM|2ڹ= CC9YMʤ-w1E=vFIL! 2/労Ƣ[/L"Q|hSClGLܔjDXE:kN`m4Vl(<% 8gc-h@i0?nˊl5jݶ17qNgpPo0xVg`!)]\pJ"~kӔAGQȿo&O>g8]HJR_TW9GVL:hDWͷc4 .™&.QZw\ʯFs< 07 x39jGjC%k]aKl e ~v<]~TQ>SwA=4gGH> ؉sU#Ǫ@Mk6ZAJUj+WzUtJ7 -Ȁec"$6bEWa=w z}^|2AP0mH-$nj8^Wm׸v.t@Vx rHa|`9d X4%P7gRSU)M'VN"HZjl ?D  >:_Zh}N,]"8*qNIo+ /Yxʾo)GQ@ܴ`{[^bzr(h0F+3w2DqgYv&E@,G'J-W&ڭ{7QXd"upNo@Q!1&k-6ܖ޹̇>4E ԡKV0Q9j'Znxn٦C+M:avQ0&Ļtsl&MӰiMKmQ1zeG3 #?( F2vd [}t@V3J1RX~<fi!I`]_R!jjҔ7 4 fo, B'HdI%ep%χ'8\uKԴܐ#=a"Z LVJFm ~҉%PW=TvdS2<|ӎR`aHZ$1(JK28|NYd0 ZfT:Ԧ=9%1z9䚕4(I4Tv-Jw\^fDxD9xx[(-1(Y3W)K9IGIL2  W'0uZn'`D-ڮ;Lj U(8,T#S1ql}]z "-],(Ɋ 3@),3V?`W Z #l@0ʈF$Ĩ=MIp,rN8\ibiK/*!~J vv z&"V'9\ϸYTMD [cI]njqK>qM5mZ$- vzP(& /@DQMD#^gX0Ǎ̈5ߑC' ^ {*ނӇe,vB!-92D/B LŊh,޾vٴ2W|~Vd ijVL(^ SIK4Wb#2҅) m[cOl$h3홓=Xps+ȴV% y6nυ`',3CԦ4.8]7 l["go͔yCՠyvw B|YD.p66@x,|ϚUILV -L^>A:u쭉E`@͵Ћ0l{nն!Xc)ҮG>OAAD,oY6ym\% LC[O,xQ15C³n\!jԋ1!6셎CVLڲ C}/I6IE؈dq*W3"TDc&H 8栻 i;@4ú3HB` B™y33SsM+ÓP#,dō-|[z` Kd7箙|ǀS/G(v0<<%H7w\nvgluRLsM2s5#Oa33M`E9IX5|4L-]*krN&܁81O`HOԠ59em[E/l6u @ф((:3UpAc[j. r,,{^D !44h:,5Q_"'d;e+Gh~]4Om\ED XIV](k-7G=b4juۋ]č{RE$C+ gσh OD)QN%Hl?}3]ݻr$ #K c8Iɓ,FjHS(Vx'<{"hda.~9kص<8"i0Z y9j݌]\۞JiWEc ;L{w@yt^pKD2?%m4+gG+DF] k}Lw H'?AP,TsUJH޴0AnppF~g-Rp@ӵÞpڄRt(k=[˲=~C0Wk$xZTHr+g+Q!~ ώ}0;|DZ_阠o=罻[PRjܴj~4{4´}F ˂#f/`xc O*2"qk).9bHs0O% }UB Z@V&0S2SuVG"\5DhSEH77ƶ K=хVehjFfq睡#q4Lj=pBXK̃KPRtӓV7c%JL8ښD%`Gojc+d2qDPMLťmnt>Jsty[4_nSPc>ӎcn~%]Ddv9yL2q9x1TL@dEZ┦M#+Kh$XUf0k-dbُ-\W>"#(#1zٌ2`fk>Tg$C5C(c:hr+ؙHP,2c ?  僝3G6M?d M,!%ڰ"fo/P`pB{\01`|D`9RFȤύ4;BQ2q:9d ( T9MyQR= vQrs)[Gj%¸@vb)jS1+Nn&F!}wV$scLp$ZQ8U"5Fy11w;YnI/ͪ:@2 ֲ0{Vdd$!|;ܡl/wfk  k\E\ q.˗9GRtu=E<%? 3!e{z\JlRḤ-$n<#z .cq4euvsFKnxbԄ&e<g\#OD.9Ug{![SU@@,QC?y26؍u+@'>`a[$1W6.q|*2&A% QxFzFdcBkTxSqU-1gWq現WS+^eZ2#V)65Pǜ|'̧5 v*d@'iPT0S=2$M޹"z$@T`a)(x$RnD =493ȋ+Kp]'guhkǘ:UY\1H`7hK%]A}WN}qw2qT:$f]DϖmtCA˰Ķ J&QSЌNrldLZ jiNjҷ28a6+5)-zLO욁VȾ#Cb#V.um4]JOb7iLr0wa[+SRɭb(̸g@ݺ%JLc{p^x)=q2ZǞl 3_#AaAUߦcol"Dz'˲>YPzU[K㑞_YT;aĎsx׸z/=mt/1a7횶QpoE56,8gcPHw*loZ!tsʼ=|evl"C6JՐ4-iq 3<-^kBȡv{Z Lq8Mw&5?jA1up چ< iuiE̹(&E|-ԴzCS."ăcXk&@Y dREK44lG׿w=3xQbA&g_뷵ܺ\{&]0 z°2# ZJ cN~t=f`.94u"26:ҤV\C1!ώYM 朳2Ǭ_ZkĴfrx`) ςcTx w:}甗ņT!>T'r ϝRɷZ&'{&"|. @X1*-U3(&[w|!RVɛL? fHdOؕջ"'_'䱌9 Zp;Y)fGT{ؤ?, HSQ%gr@MSJKն%kR) $&R9YvArT7 j4ai[Kt0a|ސp%"6_[!F`;rbz1NܬOkRNƪʤRLȌ `%k. kqo[q1(e$'"z"c[a~UԶ?M*b™m Yxf[+Qt[n)5J٪t$Z6Ge7RIXָ:- `5#b<,[k&:!p y5:UfLT"BdQ0QxIjX²NtWNWW%ư<`RT.1c:Z^Wr8k #Ȉ#$SZrgTCU}uƽ7 {(V mS7P:zKY#3%y<|rd-Jܬ3ubVfx=[A nbD,e|W=ށ7ܓXr(Am~JzF#g*'!`7ZK>yDgvKe( %(@u2`NthiZ_grX; Xq#;/٤V"G _gqtF^Yc=ɼJhy[݇>WGd! 8@ֿ&1t e(qbM AESUNE B7Qf<V c9 Z;A-aLvB{X]^}J tFN3쟾%Br}]YJU$ދw嵠e#I.1k[}8UAI(e3kv똑JL!r2MaaqAS?60't= /@Ir %,u& UC.1mlv9&љDɲB1K9F.yKXQ7{@qQl$b}l7.?McJI/T[V3@TY 8hA9!ɴJ=VvZ[R7P/Pȭ^5ou|tJ˜`[O!ނ:Y> BjSVⷔ9<J-!e BS,Qج! /ziߔQE)Τ['d4aQV 91,9P-k_פ=?4W2æ><%5ڽa|H"#KǴ|e /ZV_#湛T T&0m>MY5f 0Gmc, S檓/GŰ+JW)LY@;SAX1-Q9QiLaBDET)E-"&\6M)!W޹`:7Qrc9Maj*̃&%}8dUqK{l /BI5ܡ]˳ Q?>tsn+yތ3YZ,2W#UdOuԚYZ u+NR⿯z]A閧Û"6OǑV(aPCģ/c lm9:Fv) \g ^ϔ91q,x0)x3O@$׊ 1{нUzȒ8]YK4T"#e= Rc\'Ԗ( 2L)/ ]Vt\.h*gUU=dUBh+QKq$4n}V:M 6:Q+> xY,9' |No_|Pu0 M6X-PQNr=zܴk$ ^Ȧg=Ly$ <é#*ĺb/ z,$ h[2V̂7hB\iwba+UBFr +ZLbԃ?l4s7Yfpɲ9)pZ9nUYCobiq 9KHB%ђ& z ^XL\ 4 Vb(HXXřTMM :Y}I> ./wwnD_@[bk"ΈFn|8xN "݄bδUVL(=" vO#,,ӝc Mq-f\5ogcl"EFg}\%KZ`CU1]4R3Z̜O&hC{SF-" QJgFw7?dԡ8s\C߈^<y’긛'Aɠom"yO{B P:Zh1WCRBٞ>~"+`Ft<` |>2"i3ƅ}."+@)[14(nV!-իaz V 1`T?l%qn92g.-ح+_`msfC@Y >,2M[P:^(4EZ&Gx9m,36 (Qu VMM/-D p.Y w`Y3,.iP@8ZLGsApNTklt If% GΡfΪp$z)̄Ԣøn|p3$BM\2U@)8zQodªG\ɕ*6 x"-t_06( ܾt UJP d_B;įy9r7"Ap!'e"R1~!B r,nm5-oO9??۳bۏh/09qyb,ԻSZve/M:$,~nPI_\|c?6:'md!JžB:擉6o }g㮝cW[udf͵/(zDo:"zkt+H  TCgVJ: S1 hev6NuMg8}rglg"o.= oVvx6cfpk{xϢ̌n$D"rqe;1zoͶÁ%FT$3@%G}IfF/4F .jfp]p NL~un/,N,%1O_JUb< i2EtZ<ץc)!VtxXDƾ40#Yc @P kB@A2sH%GGQLtۥQ+ \CR:)$nAȯ-_Q=a\F UGr!(aQ U I_w<Ԝp(ȠBVr_&Fkmepڡ6:¶Ahd#= hRC._ x܈]gEZ\ƢYm wy0_˷\Hi:p dX8& X/!` 5_c"겨\Tȭl+nڂѼ끅2DVS84š/U}!ź)ӋVAŕ拇#Uj9,Mf%A Rw q%eޡ\=''qk+- 㙼&yk"Gg1n$!:4Kr;J)sM5jQ'qFR0X AX[6"H|PHyP2g ͛幱_e䷻[U2"}(ĺt !d۵s(|fy$24L}":%ݭ3m/Cq C5-)wW*xⲬ68:κk`)ZAx9= #&Yv0?\I%c֪aQ t~zLro- p-rhH+ Y+X4^*_#vFBx!95ly쭽劘 % 5Kj" vϲ:$s1=RKQ(G3S'3Q :D̆!U Gm ^8J0z95mm( $h%Go;.6WXg/3"\6;wp,) [)c%HW~KO^CHeTtqdI A _obsajOUEZ^?4oI>*|7=|i8Gk ̥=cƬ̀ HسTMIG۟%-v!Accn8ŕ##Mw1H&@ qZm]kxad 7p Ng&\])9H{a@p&"[(liA7&8cq8?\bܘǘIsprH-8=SX4Wa߈պK-N/ǒO3 g\EɓV`L|_4DN%}V(_iFU[~ivado[Q\o[1\FۗGRc CļSΓ_8UljΘNH ޤm<,uɡGǰ(;>q3p)+!yB6 |/E#8pp<4FI krɏY>e :h(C}( E.xcj$"H*b w!`{yw@):aK2Lt~!R L=DʓcG) oF\kO( EBȆ*)Foe> 빠y浙]4# U$/IuTM>A9aJ@ԇqIuqOO:R?2gL9Cu|:\(,>}y.]WSupTΪ_&RA֛zW[){܁nIˮhL![J&Ghi֟3W20=wOnl4f ye^lY#2  XH:2oMOdw&G"p 9Gzlٍr DpRj[j0 @ZzD{'_ $.Ug4Z a =mO|2}a<Èe&c B@@|e(ٻ6Q5mF*H(qP;!a]B"{A2qx"B 1~* й<|+.}Tw`Dbpxh:K3:n3{ ک<Ocs5"TI0/m)y|Fz0F/F"tcNԨZN_HHlQ56> ǚX+=},ٛwk]$@I6K.{-钬0 I {P5CCcS̕k"KtKaF\@jJxWdv]Δ|:jۘPHL`lj1H}A5果h.dY65ɤžmJϪ&>A??) e$WȆy;C~~Fq#o4a~{7T[ hvS9[FҞ˭Ni`^ ߭Ƚ"9QSGN ^JbKII(7O4#+D ձT']L|6ix 0]2Ya;+ ,!TG ÜHV=6Au/ p`fACe)xJN+rrfd[n E/,f &`"a2Wc*1#"=;.K}b^E-ڹ.^(_e߮CG,hA<5|f Ijƨe5A2ټ[_24; ͜t,Cō(">GLdF;F8*iL#1 Z ^Ir"ÂBP516U$"-`v77PqKS+2/U\z[8RT*1}{:Xeql&)ST$o;({&VfW4j3G}(J{N dHi9hmyna,5x2{ ^c+ɠ/4~>~YI[P 5^`mSd" v Ng P,x-EDH,{UK "QDဥB{k55O?81 ŔJ^A6B9|}"AJ wtu]B9"ul'=m*aH2;$6 NPuYt 1Ϩ^U RP͑cȷ@HB̝A BX1hPh'cChBb^)z^$x5f{Kƛ*b(GF gɬ Gtz|&PxZ1 .bĠ!̃6s*! n h82"I@ ]fo gb|%/V&9?\9-԰]|iG]'SCFNcqM_e )+h d`z<4V\Rрkd!kt)|];@@&1T!`ۚ (Ν1;{,7/6jĀƎx2M5dŸ7'Qu<7$Z&slhVB$ج)_'ZX!^,qv Q\6iB_m wpl)1*E$ȴ!BoI%Ȯ]ضЦ:b4eRdQu.3Og>#"Ɂ QaCdֿk:3fޘ[;g?@oB<#~G>f!7+t;ρݑt!`Oz:pvI`/zE d4kofxlP}M ~6R-XgjAq0QV` 7>50,MA6;VjPSX۲ݞtibZ5=ևR kL1ML,E 52rbiwTl5.@ z l1Og~ ^N 9%F?  Pdhq5K#WⳙnxPDԏ?? p5NB=uaݨv-ۚ4{yq=J$ ⻾ƗVb 'l6!;69CUgy)MAW4] n"۬*Byf 6EUv 4[+qWo%cziAprqP,':b= %2&W?֢\ }KZaj,LE^ 5@?j$i,ػ ֡5/Rj?葏SEM\\:fӑ5 >Kˁ-f.*]z%@iU;aߒYKjxx NKe潴~NM~讆C+NgCr~݈ؗHH0_^s$ ]Vi 4-P[@n$Q6LdTj;~ʁuK2>n_Lh_> ~LU#2];E(`8e>c1ZON ">$P)xޮ.LgrGeEr є@Iϝl@DK TQo5h\]P9 MRH<41T28<}0^DGM;X A$_\;[ӇAl%%*6vWm`[EhXJZ5h$5ِ/?zW/wr@faI"FJ̋wFI^EKυ6O}C,GSO|Avm9Vy/[# yf^Rgn1[j,5`$⏏n [~ m)&2gGzx(U>D.O_XaBo.^ryGI;,e"zCd!i%ΨSa: BQ|)&G{sc~gPd d Q WcƖノsa)8SոVn-LdT?7GDaj#I-b[O ˭AFKR[C[b{w dFSU)MsxEsab><ۀ:US9CW@THBמ A %͑"rxc) fFb(u2ik#Nj6Őb\=kʕۘ-|ZBY|3PbyO  oux( |7t495&e0|BQc#"=0WF7ΉBktNtGhiA"'ѫգ%Xl^glDi+ ́n$=>-Cإ;"E+65GK4h:认%$Њ'"IdyTx9\/H0R0{V}>(3԰)V[72nr;3ZIi,g^փb]Im}̐6RWmJߋzdO3 !RgB M6ZY3=p{MZpPPtUQxNkf^N˿)&Fv Ce6Ņl~D 3bsK~" p6] suoHl% WE-Ӫ4"CkZF]`~O;HA"pnjRwp",Nk>2(9pGxDۻ4iaiTp2ݓiOr&\ ǣ{^sZZgMb.iw֚7%koX!;2 O[=L_uEcs -2GGƶGIGKj4-TG) == o'~uXܴAy='3#0 iSDfjj[O~*Tg/-= "%\Lvc?Ue0$+z~ٛSǛb&\|鱲ʠzxr WZpG5ͧ%3rK5CAnJLHE"Ztrʺ:fd5!]P$(B@)κ%`x2C:$If { eRI~<z:p!y|3}VNJfsou-4нz8I}(xRͨU}Gֵ(0vX}Q-X}XCޚ_{dZef>NbX%"(yxXV 4DLg^l7e^gC2pJʆ&~\+4j>'Q:[_۲jިc\'mM"74<9g 0.3S1ńtW龌ׂU`[˫.]Eu(jޡMlW2"camǬŲzL ,E Ip)?8w ]FeŽ~C x(9-M\Ь:>mwCS Ƽڒ92rT5'2=\[o>SHxu>4qq*/BceW$2udYz Z>|^+vLьYtj*^;d6L'v wo0]lTCf`vKFF? YAgU|Q|tML'=ȜE6>- _ |bwHjb4û;=᫽38!!%QF9->YʜO'ΓTӏDkM!p^[8/l`EWV=끾m h7Mr9 9ǔʵpHkt`U^_$-Eg&*mMX6v*3QA{ ' }ŭ aR1UL,д>/c霫x<٦fri* /6y}keˊJ6}KcOTׁ)\gḣ{zWG~Ӝ=0Y@:5VuaI=.лQ Bo-xN7sSE_?3( tEM*ɲra)JCIIrxoA4YF%7=UsJ@BLs^# 9@ޘhfcdNVF-5rK¨Zߩ:.`l-U I@Bg\KZ$*`tTN{oI*限#xK”8>bs)Jw]"wR ''{ِL$筎ӴPs85}P3^֛۞]fԙy5MR1A:zmDe?Ua!㩖dgmr=0eJvh.=(ax3\:gY=^b[KA3mv5{DguJ nIdUD r8%S p',c s`14Ag,CREM$Mt*UO%56m)B%ʜ_F|N+ 2G\f~,0CsC3Ͻpjmh.,Y"쌬 xl@7c]6 ۿJOtӻϭ(шĎ9pbEISǼnGWmu6]v_mJ4g7*ͫJ_blL=W 2L 2MOIw.T{]җAr8 }MP lTկ?X XFd`U*j 2{ʧLxݻ~Q#Ar]m y6aFE ZC#C]tȀ43gvl%)+ıvn)?6^99u3lFKQd÷ U׺d鍸 =^uٚ4! kQi99(Npj0P&JwxKJTqz$ vS0n o7`J']=[c1I ޶БkmEp\w)KE[ c[,, zZ;5Ѭu 2WG5&* YjE'ʗbhu[ \ B0}tH,ϞְpӒDY\-WP KKԸ$b'/Gu\kKs9 s"s jOhǼEpado@k|w$ы"[˥[3iUe/i\4*nAq$*y;Yqg\ 'C=!RF\MT>> 1 3>S!s,k I 1t&?3%O|x/ɮчdy@ !Th3TfIM903U Iv_U4{n0ֈcuCDK\H㦧LU.>hACeT~6jJ6uhuI0]:#*,[N/gGIi6:[oϗ,7iYYQvߺ6`aGV {@>(bP6R Td|=.V-8ۯlDPܺ!]t5d];z,Ǣ2V7)~iߍ&Zpе.7x mÈY?xa(Y7& KM ΃wJFiDD5먔\\e{A| WC(exgXxUNJr%lR>9e ԏ 㺞ﵒ1|7 7 ~7>X}E0(i_y<1oqԣ'»:KDJ ( I#PёM][';:A*jWkHJNNK ;h\rNJ\q_ۭӤ3? "mr>잻DaGK-ՓQՄ:Ɋ~PLosʴ\Jy}#?لK+o6'HRNE|J1C Se0?1UUQWkyˡڐp3-˭QpKnE2p,Y&H}g%m]NrLҳizwΰtS5ۣ@W߲k 9d'4柜z}y(A{}\([|.g ҅w(]"Y_|=%ٛu0lȨ>Jm*@&μznvա?5-=)&gլE||yx:{6 N7{+s;KDZ Z M`894Fz$(c5N>-IpI"~u' V;+= ?{'M11j]!al|+dͱ]D k_ɑ$b @yhd3(xQLHZڊÂDĥkiiBųVȡ 'Aaf~* m.$[y'eT)>sTd~x!RsuvOyKݣq^L;E: G`bq G 0)x8˭&(4K 0_c2Jz{p +VK, >8`Px?XX/Vr -@󛀀]$rkq욚2_TMЯss--wVb3r&YG{ bts֥yg5,NeavVU|UWڅ8c>ˮK S=9DfK;MoC<!Vmԡjgx/&xi t^0n>N@Nj5W9I]D>Iy`}$,ݑ L mR'웭Bv۸ĕs];g1Qoѹ8TMi)MhM=t?U-QC:a bui7c+\bIfۖG,]+*h+6QfmH1YIMN"Q5cnֳׂG$c!m &mV=vx vvg~Lo8l\—"T%n)fwV*>rvE1pg4ΐ71I!'\qj/xÓj۳[)`"S\*]8&>Wn>9;rdJhcڕ.3ax- \P| DHAzeLZZ *nEA8^'E`FkwԉUi"w[ѣVeiHrKu\hP"ȣTU搋JcR8jf&δv@3ߦCKlyҥ[,1 cm#QΟћG|}[ d5k@! F3V*@+w< q Ow^ uND1!շ*)9T"r HWzY*~1MNyue*{rⱽ.a1^~ޣ.Ҹ$>s:˾`s%ˍtPѱ1#;ͼRO쒿yaGy\s 9b8dƀ $k*kFQ^qwcQcƣ*SIV6Q[[l[LJ_H95Ń*!whͶn8|EnW$]B\ z>OLj +s#=Ԩ)1ii HjC.JDUH{>Eb^ZN 9,#ayB1|X]%gH$܏[Bs}dI ~0bN"|3yR}EyICbD6/)nL.xdB&l\)jQ})RG4lp؛s>z|Q@f:B&}؞5č|I=F@٬6eCΈԲAs֍ݝXrw7>OiNz,v#tW:L1 5473eϋ\ Q9FɑG^/z!six0wb+.}ܘU䈼 -ՆX4rQuj)s(G1%h|FPd#숨E|ž|zQn"hh(tL,wgz݀@.@A;Vy~鍹7o^WzeQL^`S `Ϝ/%=A3"_ Mx/P xR<:)jUP]. T&L=|75pF)X+DB XmVW*zh+?mwgasmKy'qGJ]S%o0kF r9\GsstaZQ^)a mB4{!:,UҪF0BT[RLq8 pF(cV DdNX Nc$ Ç6{8̻5y l 2 !$~z] Jm ,W(1,h S⯠Z6(4OBXpT'2}KO.4ťڛCA|x^K^>]oKt̋uP& )U7o#,Tnue^ &:ӝ`̲Qr[{X|=$B'# 73?uÏ0{K2og >2H*0!RRR$i֥'Dgex<io*d~`ОTʸHlFWɶvQ1dMtHl3q"k6a"!Ky7Ӆq~ҳ$9/)uVq|0 _+.q|x_op6KQ93EG ${j=0 2 OCRP&[*>! ի#9?i AŐB "U3@"$vmFmGv,^jEY±>a0H kJErf؋p u hX$q$R[)sDAYZ/&Lh0Tub(yaۣ xM?923VaK J%;y͚6ʆc^!\f/`Xτk4ߦ5 F@y6s]KBϢj$J!dEChPW<8Z[<_zi2jl[Deelno"Hq>F߷_a_~P$un9[EZk YpDBK{EPN:[ nspx(nO{6F P0v_-C} hG`kfp78iDQ:ǣ mA_TЅtnw m]h2HETB#3 0rj-4^$g 6h1#Utm AXObWR4c/% y8y$9bfKA撯Q`Y ( HZ- TcB,a(o;W8oNʡȯӧ"gT}$<`BxL~72Ѹ&o#02f,E<*="oNH9)m4o{W2d` ! 6uQ[ *\cBO&Eluu^Hԙ\dψHPe4'!x\^J/`-$L6_;*v7@ۈ s_c7̝IjM2X¢܊GȘv"@X5KLO/=ůͮ?Y()DˡzJb;ϗտLQq@<>B8dS/|TywdN'f&OGJ#rjy.*<ɥ9V ҅:fQRa6cfK~ļ{ߪMg| ,5G͗`1?rTp1k~Y9|l&cTvIecFGC[]s77B[ks1')oech ]14%1͠3y*w&I=D? ]1{Z\+1e"NJQi;KCg'5~2i{pddpŞl%DG $ߗ)-.kc+8CVxf:Ֆܽ]%Ѓ`yIX}Z`eyyKfJVM1-FMݦoPm7(_sT oiKfk٬?O}eߟۊ"9 B t֌FjDcyФRwM\`^P2#$Hg(( N^ TY=h #5:B JdS~Ź*Pc[A,*1fiv 5Z;ٌOT(Wl8UjEg5N#&8xT0YR=r0eYqGg/2",Gia'۝K$uQN807 `(/&΃4ם#zΧKe>Km8\LXBZ E̠] wb{pocc7J# V\,e4kt,,,ohs{ۘZ}wu ]Qd.qm,V̗Hs.,u(vB{js84@Aq_W'{8AeLz4LTʱLr&ˆ #FMl`jxk犃Ӻ ;Z} ;a:||) ` 0($Z^Hp_hbs2pRgL#⸶qfES W.(UcfXBw{`*ps,#*648jIz4_pU]kf}q{ZWdWfFy_\5No068C]tc.>rG@(ә(bO EiN#t9g9v@cϤEaH5fϬ+ڷܙf0 4F%lVΉ%,XT/=uٵc;fNqr׌>[ ]G=K4 s#oǰe֑wu/"`\GYsAyݔ3O|sВ<0;JV"$TD}OKd.[=i3ÊΣqNI.@bj=}WӑuH,Re!$o.ɂu9Ey X\%D]$@wۺ 4* lE?. cFm3yIfؼ 7hycvXj!vVf'k;F lCܐXcq˯v$ݞ_l +";8򬊆BM%eh_:vˆxVCIrђ-)vZn2Hۛ3xx94 g> ?o ̥Eynϒ\S 4Xs$бp7սzǦr0k*IfS`~0 {03γ8@-+W*+_+Fp@{?.t4bj`Xb%2sjj$*JZdхg<#I{&xȾ/bW&lAz VqP 4C$Kβ6x &nyc\lX`C,|e/\~1(m`ʣeD*]*uKiqcf3%zd}vLP6"@6n>x|YD:ǂ=`gBc?=cz̄EvXNh-u՞nlm: }N,#5TL:Yu hb f"qY -A2c=͘}Fc28w$2k]a<8& >Ϩ[jgMteE€j9~ʲq1؀Ǜ5>V߱H&VAb{r5BO`' 9eZ[T69/ɱAhAuςhDP`עNI(a/IxPVy{:#ԓWQeGPI8Q ' c )wݻ]tO +Efy|\Xq?c%=F25zș/ $@OưpE*Jb_4[) ּr}cR8/J-Upo\S]7oۻmB4[II7:ha ΃ _" a01v3RtQeau)v)!>?TM,91-w2QfրxY%I:`a(!b0p~Bヹs&MvXp;N6.bp<7j3<7ذ,,$HQᢞ2c6$ d$ϳ*$U)[ԃ%h\Cqtk2n/Au),zlaِ ѱP,c[ĝ9Ăo^V=iݠ*DbbA A M* - {"dHQ-"G.s?ϏZ+(̄ERn5Iw4;|EKB)ؕADI8 C@){BQڡ)]!Hh3` ̉~ĵ1lOz)L5\?E.dt)_*՝"ݒ>+gS`œE j w(ɮ 1t> @禯Y/ (%y>lIGUp}c DžzVSE LNgQzqWBG߾x}@ 9!MϲG@ fvDz`$91?{(zCJQ߆?/lIqlaq|ðxp69{\o۷+(K]!K;Kq>aW(2@l~%O|:y C⢮>g!TMNl]˾5TmP>:ޢ|{ 8v,MP=qڲ"?Fz)Â]]+8jltRZ@UbQ26>pw}nR^&WPe$Ab3p7F o z̅I $R4Ώi蚋Eԋ4w6q]5qLh$]: FXJ| MQwq\ұXA pd Mm  lߖ.SIq1Sf17PqO|~^Qփ5J AsqE]sIr CL^Lk ͇F`ݓ___P4t᝶z;QAKUn!ɞz>1HH[T"R:-3Cɲ3|- 1 %[)_c2֓y Ax[Qo)V ȄB TyEz } $rĆ7 l/]e\VX [ K]@ig] cOpTCNwfsN=~X8U=3vc 0aĠy`kY~~s 0+?ϵw:͂:ntȬ?*xs "-WVFQce}KqP.8ff ]"xnV ]SK5pfG-yQ5 6$Fkh1?483oCw]'Xj3QA1 Xʆ[ը*צgj c#O1LGYm.h~}|녬-m6O)ס09*쉵jo7[dYy]IeRKyNBqעD6?]c2HCu貎 $M;KC%z>;EXKg_9jڛ Լf n+?tLcOA`&i AW2'-%ظv <16]j;V,bͶVUIzyGi/ Hh*!~`W'TK K֢Ŋhͤ5aiAѿ5嫓% GyfΛ)zvD"z`9@Oq:a/DxKvgA[\l o_gU#`#;tjZe/.}?{|?xI7t/X>y'0__V'ǘ|vpBQc!Kb$o2Dc?teX'9F;3FEb]'ӿG=ͅW[sP Z|4G W{Dž;ufHNleSY|4udOTF"5= v hd(i1M{W3-t}{-w߉`vY*(ʤ"MdzmZ54 eF^`,/ ~\4śEc1ZX܀,s6> x.}iLzBw ?;~:i? d݉#@6Mws?0)~(=i} ),͓BH#MG c%В3X]8,gJ .7L>⋚]g-^J5[L9X,R.V gTdaZpďV93 ؓ}}B"L"":ı=qݻ _>QfB.RxCb!yV9Ң4X/r!_ŭjPra?Ef' μ`~Z{xh%fIGWyIJ "#INq/"N݃Qp8XͬxlZgk Xi$dqP 0+A)Lmcه"<9bE. =UjγajX`vQO|M,Yސ40Xcp8g}D:he{xX\)M|a!H} g:8Q)AKI&6Oq'3 ? V9pHs?} m@6em$g;# uLZ<5rkC;ۀo隱Y$\0 <|Gi9A'M6B ƠH2|L_Rafe>w%/@BD6U{Vem` *'"O˦]P&B hb +oHYV(4YfhyoO,n a㝞YnK ˲b$݆H;P 2#رc&ٍ Gq<=&]iʕDs<Mʶ6 AxR"{L}lw@0eH Q!txwi #r%zXvawMZa%fb̓dV\7 o%XYfV30h 7ۅ<S[Go>ltŨwcbbh9M1:b-$iX_C-ض hJC"Kn(]|qF0Ni.خf ϒ1_S ^\8_/ʾ`M+ %ݙR`k-T5 =89xO1(QgB7y:S`p@͇=Mo|m2k^W&-l}Huzv_GWLDu^<>t.Hf/=,J!yAl,VZ7ǜFdK6A0'.`3>)!IxrFtUyYνEWYB]py^Zڒ YrD9H=_D,O1n Ѽ99ۗ,ea&2~I>'e~/d<5dD.!IP)Eꂪ"3sxWB9$^szkn~hzB9x5ݬ9ԘTM!|U Q3Kk J Êg}\/,AYG vH8{ KG-ly2i(Fv-BE%xWdx)sx7??HB_DQ{ ,тTR_9((%4eZ<f %Bli)oN>/qʇ?tÕd,}ϣ2$VCUjE6RC7/h3r~1'Gz|JK@P{Ǫd&uϧSB.]w`z9BG 27@`l!Ϋf. jq!st ~ ΂OD_m *4#NzF[/_h~]o=$jߙzϑ|ThE︷{4r2c)؍Cm5ղp02\ C!^ tG"Vvu,]w\,_/mlu 4Kli)YUIQǤ|=&k*0Lp,6F*s럏s˦['UY'?Q>}C*0>7c7ZXOzX&Woa"Q ¿@@(Wt/ꎻhR7YKadSiULF t9ėlm(6BO@#gsbaدVn '/5+G, ?>oY+$\!dեxGx@Iu;?sNZ< VB,uzk2h{dy֐EJ&' pKDw2q3ա%X3,3Zd͌X/eStvMZ0PrQ= WE\lZQj,8Ug4x2!MZ02oܒ?Y/Vv IϞdXW#h&73#2%'ʪ( ZմfWB7sZ(dWE D|Rq[{a"5FɉeGISo{G!!$C1r43v`*9 3:uhȖ?W7sozfmFV}M`Fzdb0Sh &Hv-Gr\R/\hQJRMJKZAmȗip0 Pd}{цvcLJT7`vdݤ8_+͊^z,~شI{h&Rc*J ]Gh[^mMzY?(USRc04 Qbn|5o B%4f6-Y잞 z$:[;O2Q}MzSL3{9aT_O,.MZmTwѻY!*B$Kڞ qPv X8D:gzA̘\aE O)y-z9X馘?9_| >޴ کCO5KANƂ^1ӲӚq`b=IMM-tLiHC:FՀܻ/)x}aEeLYZ_exi<~[9ӺOoZ#E+wҍe6ad]>ڗ&(Ø-Yemui& t<;4W9|YR il L׾HX#TI#~m1݅Sk5AS,(6 Mh/xيR󷱖A 2Å7:. ːa?,i#j읻)\\Qq@QY(<\X'_zI] qo1@p(ΏzkU]M.2qs58s5ccyJRR(74ʆ05N ΥoQxMQm:/ڂ픻K7BAfk`0wDž} 92'F\')׵" vQ4 ޭz9/o|\_-TxA)% QO-IdPF8Ǿ8 E5 ' T1) rݼE!V;NqhB(Z] \%AzlC}6zBiRn 'ܩվD@<%g ɜ5Ӟ{]$FMP׫UIF$Yƣ-1e6Eǁ76%l.]{QN'4cS癨xKۋ Ȣ!w0͠ƽRΨ*T%e{7^kſU^0GWt00[YM Υ0 l.,1עė0fCm~>a^YKa4mIJ-^Om?Vެ EC߾L<5I[F×$J%[uhhU<+RYkB,$D *=-mρ?' \XGEHTfʪk<7L6ytfvgvzȵ -YqJϨB{Q C8(늓YOS.r[A_ Bky2{ !*VVy&+Țϰ!PB6yl[c@s6.q,=S ~vUFe]3˞98?G#8v8!maTMAEW o,p34_-n0Z|NR!훃t߂ƠǸ8S~ iO"Ms:Ƙ=:(`獵_Җ%r\_M٥-O ̂w4~WDVCE\55D 3+ ||OR[e:b*`\$AW,<-ĐXo?!`;dOFNM)#mCM}'=1P->/ɱO =vh 5A➖É?n|?$2L+L,qP/;}%YG!^$n m?d{Ϗb$Y55N9op&NP"րچ dYJ`v4ʫ.%h+ T٪' d AF(g\@ t!9@S%꽫?}Ė[h54 {3:,8Eb Az dGدĘ q-w>y9r1(UzR%YStQ aAjhRQ)Ch6C [cXOdBDڊݵs[(?M;Eىl| TPeIWC'a[€DyRhzj Ot<)f"]͏f84+}:xצfqxӾsBDҒF -ODSuGqJU*g)2b=As uqQȦ7>*s0Q:98T-қsD*^ͼ6qɕ<F<$ҐS}϶v 8+ySi{~IL}IcB`T[SGQ+υ?':,ZSC{;Ad,ÐvlHeF7 kԣU?0jM8Gƅø8$8 2a>*G)ֶ90=W/廲tҩLΧ/MԒU7 [^Euf/S7/㷼=O 쟯\Y\A`gT{9h>HJPb;zU=`/-PWj $9[.|jEe' =PsBr]V& Тq`bۼ]ʔ(3έ%O;? l?Ss8>\}5e ٗ+vffrɍm0`b`R/HlWz4ͭ e벱xяUզqk;uF5xacr3,CC,nh'=Jm[FiRߧ 5sd ܏`K/.)Jɢ[=8=7_L[_Uߦ'xPU.>܇x n2wQPŜ>ց,kPğ2Czlm}SKC;򘭇Wإ>FS2Zߥ&;2@ v9ѽ"@傘 EIq4ɞs DH"5~S%OkIQU2kx~gXL┚6>+?a>"N5┚%`vOJV~{f1#1$P# hk HDؔKJ6fh܌$-J윣og$xa+v!W,WÇ$~Ȟ}Yu=ƏStǹ|mhq(]wAbGv!{Fxtsl5p,ʫxޱD=Jr AX $1UQt26ok2Agn+> Z?]uaF$Gp0iL[ۦ8HBtHPGyIQ`up4 ϣZ mkY ir$%l9|bOԸ`R@m|#Oܢp_C5㛪*n[_όT\e5r`DH'sBݵ~] }52ø~)TQ(F9|2!8^3:wϻ h^<QVmkC̋_|@=Pp*Q&H 1}՚`?Ӿ?ep?_p?f/RmS CF͓nE&XkM0?#i 7L[\*s<jA[b-]%&E2| N^`$]恼9P_g Zf |@Es7~K8֛7[G}]et[_C?g]$VPi^|n"d0D9բ=˿J MTgFʌm6ғJdf_d5.W?Q!Nךy@ssmr$l:namy*ot9I%k-8(c1PR^II@CA7k_Z5z]!$ks~yol~x/J%$P`74ifЌU@XœͿ 7MdIIzrnɷZ= 1"X&gP pW F<Gd{wNiw+3“+&x~wC{!v"?@yC[fߠ/mVL.跆s TBtݬƳȴ Tt~gf-ycSHV Z'"'L49ܨ\)IJړt(h)zlUɮm)H$C&Ť9!*6у-0QEAxǼt`~8$%eBD ^*BIMf,iJ܃9ż4C[XVcx\b}\:(H.I ?#Ml2c kBb>7!.뿵uNFؗ1]q'^r1C.]Pa7 IB2(ve  { >'l-J!>ʜ2/L@OP0Hnk*Fl381዁eZ~9ysE!x?.mwОfy |+<ׇk~|0JV:veftsH_c\+:+1IhЭ<(Ɵ6~!~1Oi,"e<B3l=wwy(}'Ka2BA˺M\Oi 7ej"ە Un$7鳃mhq;O "& E(/6-–|轿^NR 4ΠmSlu~-.:Ca<'(Uh#%&L bz[ei*'EBh 0 @72 p9&媄f#laY~Dd]<^  M5Ϭ.3~ $0;dqxFqxeH$9&]@ bɺ1r:ȸ(ʅwMlM/ 3Z_QZ-!srI8ܠ>|̬SvƏD!ŁeaKa SE -mxeů&lMB*p1jS3r4DQ:&Y3:sAF"sS0]r$ q|쭻o[8;mxV LZ$ f:顠!x 16/jڒ'f+}TK|y;];ANqaojI@`J`*Xg&T~ ՎQȰ(d^Z:^FĞTnO;k֑=|7bN:}kV&i\-h|ޡ)}{8,]3 %z l{Vlifk7'w&#r--~ȢlXr2P7 ~JsXDO=)2*wHiL}>}HK`Ga*Y`Vy2&t^޴>yɐ3 HFPCCfY>Gc~`s1c6/u3Yۼw;u+niƺصٵx5ۭVCXR5 M… WZcNi-(LzwV<)У:;Z׳2Vjs>"kU&z%x״E27SYސwӌEs;]>V^R"Ybq$"<۟~=߻qIG֒7{~ZYbeimߔIv {o*DOF0=2vg{1]yUuNTں& _E98v^AQ4!<}M08=sj5ʀq$ZY`$O)7SO[' I=c|Cv膵{xQ9Խ*Ɯ2!Xowzu;dQgW{Fq-U$D7yA~C k{Gd9.է4„ a~&)#XiizYKPy6UL 16tpIxͺ r=6WPʀa`D?@CCuwǮ*3\]*q?ԞS h!3Б1/2qDXU򓔓 JTV mA_IBkiFo E2P_hY<-Š7de#0OԎ{ "NvR_"H+KM&*M;n&p\Xmæ`3NH<:"ߜk t~:kaC@GjuO6/.7$5m/32D/Z?\H"f{:-|\s>kH?%RW-|PL%>gP(E}"((g[@Yݹw9/G4.י>,5ńu' Hi!DzM3hoJ_"KS@֜ v 6Yp ZxB#IW(δk_o!jf,nvhkԖDjLkL"2H67Yº.##kS}7̍=|\&\Z%*}\ ]z1o Qt}y"~croowCsnv(1ڱr3J73|)Nqf]10- ;cxAWlʏUrJ ԻCf3k MR޹/ri+MŖc#΋Iv#_է^rTxC Oi}+8,8 3VY M8RȆ\IҌ"/<ʹЕ8~/wt_lz&r( 㻶gEݐ5bp[:Fmj3L]p^i1G1:V"` Eoh} ~SbxkvsJ?$V|G.@]Lyͧ}AFMT!>peaeգXC.|^~E#O8A|_ C>/T޷W-t>Vzq)FXR1Y{EyK*7δVō. P&^5d B 06ZLF'0J R06Ǿ@B y G6 xǼi ME=M1+/{f53I J#8?a\?nK[3m-A[Η>ػmpc}5e##0;iUH f1_\$L#!|.fe6M•d=8ms\j2oCw4SGۉX'r„_'轒cQ\TKJ>PuH0Z`9B%:z# ]c4W\tZi?8$ '^3pG!%^Rbb(||j/)d̜ͦǛ] @/ExʁxUE|ٖg`W$Ue/v,$#c8xz+a`gHm0kNn-Fqj)ZŊ^/(Ա1@+tTtA6IeK=8!.c|, \d c`ǯऎlh3Mu2!2lҧ |9^ێc6-"2Zzy~{CnOvl#mԀ4>O&i:PA~ 6y@U2$rg\dӑ'L)iۏHl>" y=) 0QVw xL8=Q ۿ)]T?OZ]Z%N8!BVO4UϜ2YtiH WXr5hL*jv堄v㢊ZC9kN(!yne"꜑SrWYq@+ ~[FdG_Iaa935b` cI ᳵHh|>2+dλicz8\!{.7eaܠxIc]_q>1)چО~!AV7;gإZq*U}ъݿ+Qu"V&C(g q$WD(7_\k9})BA%ЈkdZݺ+ q] kxkiA3L_wۡjqlĥf,xdW +(=$-y R<Ք&j V\#t_`bIh}9WRR\Rx6!-c"nLvۡ(8Q./I%y 7qj51ycXa[ __[7ix_?ƝЗ"TzT U炂L0:d8$BIj y!WT5qژ){o[F*,Y)=> ~hAZVTm0ScY{xb}1r6œ(,Gɤcp)|iOlb3PDHI ҦqU;?KiGkTa^GW`ɄWvEmdʞjNNW+pZa T#m߻lEls!dkz0br75C"t;I%G$hw>pAdJb\[ޒNszdRiՕXi~%pYI[sp%M t#N64pדMQ5CW o'`I5i#'RMW79A |4%x0E%av\_MXh!-tEǐ8æW 8%Z@H!(Gق#/v/h6So<<3UtGוJ\vD23B1Ϥxe~}³=66}70 3Je}&X?=`)iq׾/.Y tQs59UO^`T~t?;V ?OYF~$h%@@"/lpCy|ASTI_ d,`/VK59(cBE%$5 7I<}b:|f`VgM8Z H`zݷq,!!C֣Q"̷hͅ,& {NC'D(MYe`Mp8LC'ZV_˹뮡6o| 4Ϸu۫qc8ev-^y<]NDI猹ekM"3]E4Dc LP8mrpg_4hsM̔w9y uoI%./WdT`UL}]t&'G@PN34a'7creS|ϧ3euSOG[Qn}0(\Qp˲en yoH b[\Uq \{H΅v*H762#4s8aa`\ u4?%υM3F*t ަ]ϧ,o*c0z=!ETuU/za,utB(I:CAgG{s^ˬ"^ (>q' R;m0+έÍ =HwBҺ-Aܡ (b3 itH66:*睖rqH$U[7hX >UWВ~*ԍhA"8xnzYjrY,Ή҇B# HW'suh%b@X-؁=d}iJ@پKeG%xyz8I dy)$r9[K j0oڎJސpQпq4r}T`kH:ӱһXu}|ϛ׽N`kh@iQ2,'e ⨛2a+(gC5-’+=Ju$:檱+w/oixפtngk$&P9Z3Ƣ#oGоDqһAવԣ5Y0jR:In'uܹ]4y6t^tŅʼnѤeQq2u꥚]2+bG$(Z*fNqކjSz*,umP0Ț(( Ia:?Sǥwq\B!'V*7=Wk9:Ve_-ݒHyUƞ6E0[zRR鈳uour=_CILz>=`Wvr}zU|R[wMd{IZKG%=| %tgV e,Ys(1ߙ@B*-WA Cgo3~fQ"u ih9Ȝs偂S?f IEopIqs-peuZ@ >.337O r}z,# =W/_1MA%%-ݼQg</0pcH{&b^gՓ"wL*ltݫpF7ǡ+DQj|.7T=)4!0~ h8ϴ|]JS 猠߅轕B?.!Zd vJ uH~}tV9m9oCnх^Eb]2oB:)2N7 췀xB4~emF$&U`Pjso 8'L51kܫUCV1tXa=}r{Xf^ٯ jg>זx1 Q9scSpC 7lWJd@=A{|MؙY%  #0#~{~8nD}K(Ӄl66v šmFi,TQX B_QxnbXqK-SObϧIJgŤ턆´- ΝA2ήpaCa<P$_2m3ׅ ;hDUlbԇyt=7Q"YVOc[n y%ů,(ӃNJhX1>C\6} 2 #sƎ3?ߣ}}P&.{d30kT!B^ԤPѼtӴ_Ukb++zQUg_M 8A\eK=e@B{uFdk !;Eiojé.I}?>[&3ȧM:6CHy#XE[Z]ꕀ: rm^Tc-FvUpj[L/N `ïYk{Wi?|7N1R%6N%1 +X(=c-IU bbK_AB^/e9H\!j8 2Sj72w/u:idvG$U(ko.` yx#7Nh^!D?ÿ=Rh.mMbes0|R+C ux@ClWGB-}z訪Kt)7zX x K:E!3?ʧGľʨfGR+?"b7U?S ] ΊxPx9!q76.\`tSD\;.Zj*$X,g$NݺlSXAnmQ&ͪOW~l>;PW"p!jjwYd6YBBrgi79̠`"pBL,(Nǔ| k $Qj׶P^mH=#{FM`Tf$5X؞ v勭2?Ƞlbmv/ū =PBaom#bV2_і̟D O'ɣޢUz_*҉5Xe( C֠gvاZ=dl^,юâK2=SKI"Z; 9*Zm] unIw~<6pzށ=%3iïOa3Τ u8>bslUMo)y͝ZgQY'D}ԒgNjz 1i ~ܯ `uW"0VIb9 Fv_e{xwR"P8 ą˧RY52We9D) EE hCF /P5OT#lh~r+M7,CFP¿΃.xV8H06=^G[+Λzcԙ ;-D'p q qqI)j J~+s B^4][.V Bpt[Y 7\q+< 2c2!CV>c| r 츛T r]k%qa/eITmc8! >AN$OX"1h7r\Eۮ7.Y.EJ49$h'dvȳi#8$%:Ąs7NhKṅސn:gYqn=yo/FˊwO2Z8#|JGFXz%dH D+[@3SR4~A=4}UQM^e=T6=/USfhv#gUg<~to($ykZʻk+ղk7O<[~}5F1NUOyQUKcng_vwqE7Ol2xx2r EemPt}lt۸o!L Dcrz;P*%n8T`VW 7p5mOŞߛ|rNo_&ݷh?8UtG+)tu)ݚ:Ԣ; cr>_V?V'&rS3I@b}2}mʮÛIoE˛Wsl{i-klgpPh &alFb!x (i'nqw f(RtJ1C$0F>I^[ ;eq0:1݄.Q|tEO b2^>E7:?Ҕ*n\WF2s[c 3JLឲ8YonrN+Qjw.WvOk'gUK8~Ivl4SIҕh^ %.c!ɂb2h*[/QjIHUw.A{ke IP w)fv &g&u )Ҹ P0>4сsؘ1?=cvGJw jؿ#.H\N&^<*L 0#tIXUyaQa9(j]9F {׽5]~$_~6ilH4F缪SΞS~}{\"m6AU"PAz޹:N9q@o-L _KVۨw3a͵M3uoA9-"BGƞl%Q3BJ/ڱZ,a50)r2|Z)J] ]?ZAӕ)hU=nqnR^ZjG(oY@ /wlMtQTҨ{HÆ?z$] ʆfGCh_EPim<92fēcY(PpYhS{ ]~?R:zo3! 'Lh}0Ԁ3' !,P%LfѦy-1>k@[%o+އMP0cv/1?a[|XN8Ys^s _xjP wOi? a(ُ&i,E *nT6r'=_:<_Fh!(t+Z $#[r6ǟ3ӄGvV%$P.ɀ5WGa/IyL<:FY3f[`s!HxH+*We.nݜΈ9T) ?.3ͫsr֚^*E6{{D>,ex;U풼"[@bG4x"ឡ$w_kHiV 8z#i0]u ƿ3*%3=4X-WIEG[ڪ$I.l+&oʾ|LǼ# AIn_|0`e3ǠMk ^ٹdhNK{Qdڏ}T?n3fz'fjwUw\/M6\e[T >D=ga~!=NlQmy&[Uo_X 6l6۔ sƣ3=e&5 +J7fHn  ~dl9Nu۞fbԑ:$a6h> dK[-9t!;vfp(0Hk~Vʿ-uMM8?:lh; o,9b 'LфEt@^i8]bgh9uՒyvo*hHs臍!g.>.zѯ{>8eDݸR/LUfmt y9;QeIf v AO>X5 /!G!&:b>8B(uo;Lhg>&0rк>>8W 8^Hs#LQPYga6rlxdc$ѵ$= 1NEFw;RIxtA I?:'現yIU2}ġn ( 3yhf^zОJ7s70#S(cS}֌k5Y=pπfqq?YێKS]Sci?OBږA$tƼsnJbw1Oou3r(e<Z^}fUX?凔eLb:鏔Jq7 ^YoDŜ}{WnYE6{y@-dXU6 7^~,L*Wm*=*&mD 0MN8 ߛ𢦼4-IN7*|q SYi}uzWћ[ E ݖxDA5 Rkvj7x'r+)"b఼[V[kY |`n=ޅܶ9חm<ƺ{WׯN1? Q%XARL2usWq$&,3*+}V ]<|8&0]/%@uZo{wUu^9.Fw;Jpگӣ8tiVd_QT.ํ2"̨2q-^ nܵ=dÓNT'.},ULG2+w5ǧ VYxB`LUʯU}ռZkG8;}f[I 4~7Ak)k[]*lE\hե88=>qA^d%1,\zC =N[6'u8TujaM T^AZZ w.2tL:煊Jqh>] bi7'U!#Da[rGȯIk:]gQoQ \W3wvRO"KVW _9&ugÜRY@{U⯆h>ݻe~i!bt2+w#TZ N!eavK%6F[V*8va-Z SW ЮWʡp..7DHz{n+C~ɟH!٤ݷ ="j@!/[ [Ӯ W l͞WᔐCS$ҁvX <菄t^뵑;pOzGx?ƀ_l\s>^ $O!KS鉶vܩw|>n"@:HjN"ofyPުc? GoMۢ ӊVzx'ڏ/()nQ73YŖ˗t9J.<[}RSn_*2Kc]7]T"c 2T-3[ GGCe=TlW)@**̜MBj2ݤ|PGQ\};mZJmD\*~QwOEFi śx}t^4#m| Ҩk~Ds@b Mb#S>m&AO#;I~}|xq]tܜzfr U͂v\ ~:C/Ov䨰I-}Ó!od!!d#󢗢 BP:jd6ԙ"abN+=`^+~t($s`4c 6s +EGtqzZKLt#"㤐MiIe_G{'xAmu+&rVYrk/ecW+(}gTPkR]9r5Q(<0m̱6(jv n0ܑ=ܨ+C ?r^QqbQqcT]kW {x%w \| c8rwAYaijT.6Msd yba0dPn̤m[1u#.q:@p֮oǶ ,%dfpqʩ/pQp`!n>|㠋[|ogzTBw\" P?`. HȕE^ҭ}%mSen9 a+魑hY;R=6tN~{㮜TDi1#(9Glφ'o\mp3:4^#2x[LpPݾ8Ț%mÝp6:&aBh1dQ?֒:ob"Og>@T2}sgp~hFGXe &)~tKeioB{uH̤("5.&:,Qf]HmytL,z:"Mir]!ȟ\藸jc<㊧*FDlrzlMǷʯIgH,e$nLNX$.T > !gd$ɃlaNQ5'u>n]KA4eLvlS $xHu!&ZtǑ2w62 ZL@I lfb\ҥ=iMDmuNU[WU12b~v=;*DUdч#wG^'Ea7(REGc"sObG/m{ /.@R'Rǻ~'>%rU\9aySTÌ/? Dq4kgO-T?p.a`9!i,6`J.ZPf`u'OEB!C((]}CaP~(j8%.DӦRr!ǎ/|7 peH3ⶖGdjǙRbћʖR+53l*/;k̳0k374d f$jNl6FxYbAp_);z#$Wĕ?"wwUJFhx89ٕFZxIL`}RJqrV{.س|C]MYd,3ɓyeq-U8[Ձ 8 1{%C%omKm̭$St;t /)S$ex!7a':[iOvZLgfbF0}rbT v hq>f\CG8 kv(f 5ux|Sd/֠ Ֆ{o|l]1Umo6WρIA }xzI/cI%ֲ̉S-[aiO]ŕh>{zcn6]^:>Jeq*d7ޢo8ZQ]۠1^S eqJ+qFS{EU/,;q:.&sY" o`FPaDJ"{v}( r׿ .R%R/+wn͘*,MPB[dE|k\G&61>qZ:޹A;芎sMmQtkU$.zv\~J0knw78 LE;GRX GtqSu :)A=Ck} )kw4Km\ Q t"f[fgP6}.,Ҁ ߆]ɦZHhic<諦~ NA;!dL&<.`׏PVBr5< ,>3MkMjBޢ yvy^0S^C8`{=w) 9|N/z8e|~ز8_PPLMIh[GQ j@/q4a$ RJ+1_i@x68BN~͐IreSn{5r.Xl^q|R]r( MzL;LxK)*b۴(.o m /I$׊E2%Wo=xh{Pd4#9fҴb6B!8btV+9}beP@,};68OFeXgTO$C(=NMkŭV#ȍ= "SqH$#U*6dZ>-B(29jʦgJAH9@TLJTieIb[1͸%L90ڋ2#p~.5~.!l㿍\fг 0jn BiudXHuY7h&N6>婥 ݥq~fHBdt@'%obTn/:Pk)/-ݷcϕ˟x"3?.h 5rGKHw ;cK,w›ɾpXǷin67 L]Ha&9_#utsy@r`;Hw@s>IԸrfޜ~*fr78wڌK@e =sS׍KHoVs:K@lj:d'ǖV9,; Tƀ&kgVc`) ckdld ۻa'(q{7S ٝE0:9\%Eq'ѕ3NyG~>lTUU7u>bH5O=piArrw$+H87uۃ|'vWxg//'İL$x\:&,g y³WiA`xW|0GzKaz4ŽL%k{LOp-; 9 O1E_jtUZ{Mq8Tɦil)+InF}=Ս6]j%H@;Ja{}.EG5nR!8=cAUonYa~'߾&Ja^ݩ9: %|?qg7O}^TALSicph%8Nf|[lp!=dn5zQ&[['?{x *S|T/h9MZ0|Y;˽Sl~m%PjͣHn, Vm)밄2 #='QFaǍmΛxK قZOj{:V`wM?Z9D.k' x{'ȯPjOwMA%o{B'v7!c}?b 0][ :Eg pHrv/?K-x2@P͈Ӷ~ TTE Dy3Ȁ3$~_U9Ӷ(rmܘV)qժ11oj9!9Q] Ω0nu niBU054A9$; }nkz$*M؛YI; l…Q5uc AmҎ`u#iI^Gk}NvV14!=`qMLhϣˋW'8Fv3ID<1g%k` 'x1@$= 2z?ۿ}m[@<`^ʭKr)ᗇ4wògHJ9׮7/sP6 JDf%]酜3Y%ک )D}[ŮN8S0oʨj~bE+W9Lm~\S^S~G:>qqAKp`tz]t2wcFmM`K5a!{[ES?>.mN^I/Q)lfWV|" H8A:i:_]FGo$x$&v/o4F!P`Q'q>@fGO9FgMwfhoxnM!SN.\WeKݙFp"ARno).pUM9I)|UgƎ=Y$ "]uo{͛4ӝO': Y+6Oԩ$W*a o{.s?A _UշEOd[>04 X]__ UmQ~g; p?w?<JMnYE63 yϯr)cw} 6f^"o4%RY(>߻o:>3a|| }mٿ;{*Ǟߎ5{E)78󡻁)EmK*q߬??9h,櫠[\kf}WB4:8MF"@ZD0C ay0nPBT _ @O쒡?jTd+`B~/-0 qڏҶ|#OgD΍"(~'|}OlKi˴sXu:j}/IGrɳ,O4?T2񾜰dt \@ {Vs8)5^)CY~+o q)*y#~`{IφYmkO.) pĒdU4AΤhv!.z>F7>Ws ?OؠfltV:Sm:ۆhM^FSgOKuVu4u }lO 8uF7V ܡqmN[xl+m':(Rv#H 獫*A}~qiUƾW.$^V{(ଵ\kO£lOZwh1&Է h03hXS3cN6θp_w uNVe`=c ~Ѿr jӵIf'kNAbSc~27@&Ax ̀41O bR 3c/<*r<=-bktK s(W&*5^ r;;e%Vup/W)oĪ{\ZiKP~}纺/yTx@3KX%ycهp4[ct!0sj)~zLj(w҇Aq/8-uMZ߆svj [Dh{jcQk1pVzɎn~3nN`9;[~K|)$AW"L#}ϫy,T֥O>iLzDOӮtL 4 ](g,Y(]92ӢSkzC6.SmT(ypD%#¯].VL(ڈJBR7qNˢȡD qouet.7qXy|GB:A]=M#E nzsO=MLj U;ٷrۂA)f>O~xOZ'F~yx?[V`]'08~LWqˏBY)p\r>٨ v A&b"nI^-8sX+ǯ ;V m˒ ,MSbAtIAf߾α))Grcǧh)Wb+4.oZdtq; PIƧ*I=ܗ89Q"0=VE!hB_(&SV\ZMv IQh0| Ԕf\ QDt<2KU!xfGj&?6=@yzR-hg7'h[^0URԴMNϺ;ކCb?9WbeCC0'kwse@= J}#o~}䋟z\}Ņ"N$oh/l .P'Ԝ'ҟ11ӡD^-jy\;ڗZW5+MlwyQY[~qǾ>&)ߑ|uPӪsy[Q7 aEs J ߴ#^jC"X0Lj;YQ(4$fLYt,dÁg m:Fs\1[졺*#F~lF{:6`u t9O%+/`r0gLC9UZc ־SG} Aj?Wa tZtp"(/'OXOh|7˗R/.okoz+y|s ś3.URj.#)>%>R4͜{)efxNVm(:x߿+I@*v6<': 穀xDU6^L"3E.XGU5]xEPM~(L"]]Pzj삯| '.mh7gfWɒ,'؟dɻ70-EZ0<|,DH̱T@i35xK8W}㿭az=W|*--(&IH{xY~,oڈn@#f4C {q,PU.c$2)HNןAne">PB7v/Za=\4'qv6,0>.| Io}'HF2GX4Kqnu^Lx8äWQn %jCm҈T ʲ`Tmr/{\:)'bh5cQ& dǣK}e'jp]5={RƒǢnA <0i{ce,۴2?Y H!aƽrҰ\/loTGћ6_.~XRd_ A D7iٔyHb}e ?_bt%l>1ax"y|BmDS2_miJ`D+]<\3Hī/Úpdcu ,h=i2}y8t/rCd~2[+g 9(ZC,: TFqZx|Sx7M Lg3b86>,֤e9I$좱 0|'Q\eq$NBl\+˸9DA%JNkK?Q(IoVNj9p{ M 8*v"r[wgP0m4t͞'h-ŐU@n ָ3Ho L 9"L߲T*iqvW&| ^-W/$nTulWD]Bˊ=x9GEXfSuշo sE%pŠ: ՌLFSRvN' ޙfk"_U62e|<*{|F~vܿ\h8Ǡ46H݃pC:3GgG|i P]Gbbg]'еXr^-M= _㙤o_1 eOl?]ky/:ɽy^ĵ;QEB֯j+nBd`ACEТufJcx|+KlBϭm$y>TMoxǡ1dfT y'4}*oOURw(ҨvSX7 ,[CܿNO lzy` Qȁ)[0WeA`&pށ.E#㗽] Ysy ~1^iϕdsFQLDLq.ՇPs‚-3˻__:O1eEQSM~=>O=h9!V 'g{'2wk,| :ʣH:7MҤ޼i,C^tt1eCc̤/*/ǸrlUẼq{+ &0]rMժ?+)waLwlja)GK1wE`8gC|bml>~_K󚉰 MV#% P#"S'Au՘噵˼- TIjCȰ`DDw,T>Gn{֒?OCؤN$Y1`-- Tʋl /u [T2UC_*ޑY,geMȖ;Ԑ.ʚP|/;Ci:r9*' M39se/'% F.޻MU;2F+[dY~b ^PF:#q6π#ncDlnYjqIUͮ1& *)xc䴼9^_{%j2 o[.FͳzOýRW+嘍g mhW[Q6&Z)"J8ȯn@MQ6F"8% p{rKya|eܕ6 m\iLAuRE#lPZ_>FVRM4nZA9=tEfz'iv>KEoۭq:|#;Fفk4pvu#(7102glY=|"y0{H}skE]&<>/L}<ʫXr/*(Ǐyط1o 2ujۨs0.ˡ;]Y?|@AUy1;*UXsqY [JPcxV3%4/+ӹ9xw){-$ r!:%j O(Ԍ[(x$DEv_57Тun\YB=ZiZFyɰ}D! ]A-dZnMenwU:f-uzhh^|Ddm U+|C#wn# "Ψ_3,̇zAINolae䉌bt[ih{k]D=箷QḰjkn 3R|ⓙ6u|~p.ZA~NUЯj ů̡VnMG+Uj^g+NdqcH_5]ˍF?Y=z7F+ P37~h~{)Z:I/TQf@5d&#E LU|Uq:,!cfhJ^9UoulGBTHL%GT3E].c((bMrR$~jGJ!v,qM^?@Fe?ÂWsϐ).L\ɕGX>1V(}}Sc=z`"U2<{цoW?9j֬ǞTgfCKd@1tF!k2݄Cmٟ/I#)@5Y| 󽜁oaTRm4UwgeaX9^2+֪@/|I{D zepoS0nԤ`L@7+w8t{ E(̴ֿ.y=2a)y(]WgO\$ -?rAؕf2VO ʑxQ˴xl} mw^ᦈ.k5Tg?IowX0#0'ߊ-6Ct!NJ1f۸;{2-F^? 6ninw.NSjO[o˥ Q.#kPeCy Zݜ2j?:> DKDHwb0{_l{B)u)>7*HDpDwݡa)$B/lX 19竩p$;,Y,^SR.,C6Мq( I>yQy ^CDY@®vXXrUWWTN" U֖JG0|=^Vb N\0^c/(ެ~)ǎ6QYl6dnJuo0- U&Xw5| 㵴_֏'C 4%%i)mSbrZ"Le\R~?NxƱ 4 30lS*eWv&w--=3 DzI-=~9Yދ~rO!RRhޙj3J5y{ҟ*2a7,eon4=-:5iY]Qe:'Q.G~1@~&NZ>/_\.^7h 'ytt>]=dT+Ksa^lY (3rILN~R32sXt^=5XIʊ郥Ӕ`(޸}N!gwпͺٕ'Ŏ *Nzw7O\A|[nUu؂M}VMj} p9l|>sιZcZja.yFkl mU3ccëmVW@s$tw`0NMzhd>Ɗ8j~QtUjC5`}LŭE ܲV1!t`P?y*j%jsX3Q{i/ͺ{xI=74˂~w`XjDv +XȇED ,WLEErv @бحVL@&`)A@640<+D/p#Y<#l U+D#g>j5?r>?FL?.tPQx IyMR87ݞȮZbL}ゲSBh[zn}w]$R<9g;Es X?Qe`5|wNU71F[Y( |aS^2Rr+~G$ڮ~j+,fer4Յzب_(sobJ`)h݀WAKzBؖGzyc,'X鴠ts8@??i 7:['~diQ9F^T vSa-vV}e x7n <Ҥ˵\XصtfXf b7}Oߑ,{ Ѥ5VѴ#g9OQ@^GÓ)ql~L-b׵oiUSQ'K5?JM] 8]T:obJuOӴXEDPOCi!sLx )wenw] +D[?拲_ O4__QZvV7:Ht;3;M?DwOٚz)3ثW>&Ugs,0ζRoh/ 4:EYJOG]NKUzXF>BPI*FG} $h?^8H rIP)RW5b}o|hOZʮa;oX֟2VΗJCt Nz[5_?jdɟir/:Enr<'dZ\rMeRկhI2Ǧ~f4o8u]g>/7ו{bXN0|\w/ۿcfIy# ~VW8?q;T=:pƟKHV,E>4bK'6p1 &B~.?Gέbʼny<4RcEs!By1OX!Nۯe vT`(h-Ajg!)G^fV/Wt~Iq~Un ҒtgّMqr"1,_)LXo [c']ݸTQboe)kVk>"5%->|@ t^IĨj!|tDLgU6,mxX[VՓ@rtoW6^J2#KE@Z>e._Rb3d,TOC~tyVin7c IF=ҽ ``|qSKkx#}Ni 8Q1X߇o,\@ U0GO8E{9Zix9l/8M͗zrqI3U J"ǯY_fDHc$DR%*}4|lݕ2eo,W¬f;җSΧ3k tX3u)E0E$θ4dY/;G=Dȱx4R0Rտh$WiݥY`䢉(4\Xr[}Bm1i'yMR[YSX qv[{@l Hf&,ŊN-?7ޛzMЍ7Fmm4aXOR}kǰqt^K 19sǨ>%lhi~d)q@M͉>>SBDzX-A.hiizv.O=+SW`0[\r]۟mD{$d (7IAoz6"Ǿ@mR}ѺF9={1}[4?:8~)޾R{8g<'#Ƀ{-M%{yVxjrP)ߜ!̢w/ʌ*F*rd| 璿+"!I5""JHܳ -o !7v}dW"+z8I̫]*CwV𢧯 }q>DdQ㣻-++-9Ոn=mk2u.z΃~O!)GqJ];7֋|_aIf!.XkR.;jZ"]9YCL* lU,U\ aH,lJռ*K%l$96_ ժOr[>&ǣ06ٛ;亳_* dM6ʒ&5=0Ad~"~#*ney':({rWzCJhIl7f]OHނVDq(ȿ^&nmV-պc=3Rφ)8Zsaо_UE$}ђxX=\Ci-L)-=(E:tyM:/# + Un4N4GRvt͞HΓw9r(gw5DZ&Z4&y8r~jZysa4oOʧL 7l2(#Kf0Aȍѯ*' G`9[[.PCK;)>Oni-p,;PMUݒH<##6+V&+Zy;' YÙ#<}Ϻ.j8 Ë3r@uvΩ ìK]N~EUDNe0W{||@{~"3BZqԹF-ԃ|JEbG@ 36Av&?/Hw*m9Bg2}mdpa~jvBL42z@-u ҲAui0š0-\Oe+m oi7 У2̃2b1Eg}æ/ӏP}Q(&ܸ.-`>Ud'$l՟|S=3ױh_snMssܒӭa7+>hpܟ0Os}&_K뿰Py?o>7FtA@VGzΗE@̝ɹF'1^fn{Ô#{i۞iχۉ㐃ʕ}]&euVes<۴@5p.<.s맳\p($+]ߢᤇuPTKOxUZ`_gO&%֙@}ȘB*(y)x.ʜT8GXu $3pxq%E5z&3IdtHe-4cv?->5ioV( ?B1v"$<1|MsڃTUg>;K Oq d@(B̅-(`?)S0%#]4[LE^3< s|0Hq̣ ): X7Vи/z@5{g/t %]= >8B"7]2Js}5x٫H0 CY 0teLmޅK._I V`O*N37fD7e.N~;^w~>8,kb;K,ɘuqa{.7rhƾ>oοe6Os𯒧LT ?N l'{A[{f|_?G/CuBxM?HV=~<`!!eN4bRzG E+|{!n9VO`GA6Aˍ];?孏ۖ&/Ӥ2! Ȃ87Jȝ 'M41К0}&B md6ŀ~3qt<\qܕr7 u\z{JU46Ӯ2i<^wn$wAuNXeS?)dtqYsPc()[yx< u!$x'Q&)/$zt kxaC^TD3o!S֣&(%X&v|YC )RqWI\P(S j4$TK[Ydqbaܡ*\L8fd[pVe9Ar V.w?d,po(_Lly뒇A^ev祐?,uu?ܛZ7p~O틉t &p1 5ROh0X%ܺ=ˊoh!+=5颜8]Z9d~&jƿлrq"h҂RQTLo`=޴1ƻʋT=J!)}t" /tj\r-QS]"N r*(n讛N,dJn{H 7n[㶔Z(~κ3ٵ㽲rU?[%xkᬏ7:){7nY*w\\h!]І  vAr'=o2JDmWV}]dWx8}w+/{xJ`x8"NȻazF:MOC(,gAiy 7/]`kZu^W)0#Bi.s6ﴭfؖvIoj>r1䅚o7-|sm/i5 G* (Z T/^fUA/o7/܀K_ A?Jɂ'!Sq̣Qt(8oL$oRR s'6ksEIݳ8oHuTj\9?DhnO\H :3^3RoBHVaYeiR 'cH EInY l[ADapmZP P xe_gJ\OH wT}yO5T"B렾seӦ?}%d"B:E_i|o"nvG27}L ôO7&eL1 ߑ~t"#@%Wlc\5VC>h :K#AAl~;pr0_qb+#]`"cv`YqV=`zKc5tNjF/aM$+ch d>xb.q߲Pϣ@='Í=&NEϔ,)dS@D} 9o$9$X;q^SIȒ硾?òGzYciknk4u+eY2U",y| x{G6}2oLG+M[o.\~.QƤٖh=ǓHLQ:z{̘綠Z hNk&Ih 8jTՎ#O~B6PA,1e`>9MX_l;cyA6@ދ˾I¡vZb>7Tr'ӊE/&#weZ[k pZ K)țM8mC @-$3YZQF8 +.ਣg)tFV>ATbOC$ʚ[ )5p2G͔*aݜXq=}w0(Ye#UM%`o Ys'xRɜ7~iW^n= >F>>h+z:(D?.,4]VT! IYrZajIn~y&LP7GOU0E?:vZg>oߟ/i¸!\^ ߹$=772X(< ,*6S3fӠq,J#a{i9Y E4(bC<"+2: Is>bpBVksԂkGpyA`ei O6'c+Ť9 \[ˈ6R6rAEey663mf8=[Nb8ziYbU^ըTYW l'Aݠxf$OzCւt?{γM!?W]_ANQhݺhgNR{.r6Q<]"%KɱNպ\~ ŗ4HOtNPl ;uXU-?QšWJt{Q_|5Q4?@\e: Кi{f3?҃sNY7(~ώ+e[l&bpdMDS%(`x3&@e"xKL C *N 5(||tA,hE3e$XNn +;o>ltFSk"<+Xc:˶r*]VV)_KNb#H~qdV,u fAMB@"ń909<ջg,,dF =뾹?Gɖqqqjf0 үdE{4}5t'\MBlˁ!k?.:`qHv/[?Xz/Hࠄ /jR}UGn{Qgi{^+Xb*CCEc,oUxM]sK?2N`7&m8 ؝ LA=C߽H#!䫣[Rw^+EOsr/wI~}kP ~ObxZhm9w6{m[ZePXj KϏXuݶ.n>sm4A EӓV!W=>!~ P76"OXrcϓ屹L@b8]mWVA@g|锤*hW#2"߾b#R~H6GA[{׺QmA=-fk EcqC~P/r<7"c"g4bQs:'o-Y~sq{>o{riK2Lݛ˵F޶邮c5}M+6Y!=yEᅓaG?s|,(P4$Gow9ẚꎊg;qnu𣼰l? o|&yݎ>Dˤ;'ArҬ_3N':4oI7Bo f$UuDzW"QkL6oP|M$(#w@WTb;D%+|{e2.EdPc JtCS>=hs'Z\lX2 #xYO_ w'Y>}MXE<g,ʫg@o&>Q(77O7e)7W7gǺUdrdXH4=U/io &8~V)iH c 9/\j a-tƶx]!;w8AΏ/m>m\?j~NI[=. '\n^ã^QB[.>~'+`0T9pRe,vyz2IݛΧ?f;b?qg3յ5<1Cie'Kf+aH+Eb{£40ߺ!!܃]򖎈-LY?OMfؼ(+҆$PҬ)OjPKry?hxPKDA=;{VTx=d"'cm=_cU@釔4Jgs(qB͞bi6I6W48UF>7?1gq@}t@[DzhS'>:d?%=DUh+ZbY+nO>u9n<E_קѓp' !,Mn!~-훁JK%A@0(:Z+?[0L;SܗI3x3Ȃr&}/~kq̶v܊\-jsXxY9CK#r.ǟB^sopKX@zc̺2ODk,w(=i ٘l1U\WSL r$D;et*)j `-RÜnÎ]5N4Q@|8BI#e+P%/zT~PCA8G $:ei \Y}'hX\SD#rp~ mCeOcۃ}Sʟǣlq$]b !܍r}.6þtUB' O=0 hWb ݤAK=[~j=rv Nq?-Yv̍v JGx;ɥ̶zyxǏ[-3xȯ_VTM|n[\Q+QE-7Uc5$h:R̕@p{H~IP- $LQ1pcYӛ&4JЃ@xs̓pvgڤP,l',[xF*Ї`D%q֕0Mn5qoH"{a3L7x_[(/Id5_ 9ir`7s W>nFl#Lyth2an˯ F1a_8y /T8a&Cx%U6[qܩl;U7_: 1ެF4_՛n#C1HOwHB nI_^2` ]D+LA1 zR~q+8zey Q !?qQ$|\&Ζ$WImQͰt!Xqzm%&_guWa`Ũ&ڤK!tZ1 郹&KWZܳ!5>ug7?\{r'\qe5q7S.۸M?'t<3?F7HC$7/ 9S1 k3V 9Pkj bşO%ZqY\ب(@jff,ɌHZq@F?&OgǍI*?ۦW{`°%_B^!m/X_"㘔,ji~N|;G$>MςI`x֯ :ƿRdg${{!K& e#U/L0QT0M /oW7?yx[0ٔ ۆlWKE3fϫq~d[uus>>S)K4uz߀ʃؼ! =G;"?Dy\G%D~;㺈wh9!{RW2h./7]Qb CsRNJDc^6MYIͨOJR 5z}_ʻ_~˅|u@;|5P^ >)3? "Wnm},^j:R>[i?{G0p5~ A;0Xɻ>}I0>I5 V%~/Sv;8D*.A&ngҏ7x ."7bӚ*oVs4ouUU_rkMyzIޏ~>Ãj($SHkaG@Bآn^4I?e%ntz #*GtؓᝲS{*a{Q x<)[X{㌼ PO]xa\2{7pW1H/]y 6> Q)bI[50ȮIFUÊ9˪>Y4j)$Te$''0MsRj@>t qR9!hew.` %\-+1yهE+BDI:N@<) aո< `r''K8nGk`ݕ|Չ42i-!kc1vƫQ7qaǔfs2~OpFxaLxW@'?M1_Sた+E-(i e߅1uEEXӨ=/Iy,th&d(f2rO /'TT"ݳn'Mx;Bqi#1k|^J+w _O,ΎJAz rKbi߆<m}Vƫ|;"0E4֪mO(f4!1y-_ [kMK寣<"c}$ZWmts߄Rj^:O'G;O7' E9 l[a lS(gGrACU5 g9 ,rVN6|+w\TnZ+8~qk$ bx;!1ḬF K~Wm%iR__>^q,T0> Y4 Nxx.ݓa0?#ha[w,\[[&~zFRid c~buo\D-#0<_M 0߳N]!Cx l]$Q9@oG)Eza\n=H  ^x}s*J;_{;=j2z>kح\յ\^ž*cnzǯ _4)۹ut>;QO`t6rRmۂZaVg8^х S4FW,&湒64L zN?n?G|W:`IE.w[zSK"{GH*DQkvӫS Ý2Dd w e$H 5H**C蛳ndX2QPdb 2DCTUO~iw:<}gn|qY]g㵱a#G̔(ٹϤk ~OH_Gʀ~_ʟ˂=)Y}۟Rӏ"~}d-,L~8rLv.Ţ $:a~m?_pkKcטhxhgu9St6⑯'\|n A'3ɗha$]um" B7ەʫe:9w ̑ij9g72&ۣ*H^-*nIJ "DQ-VIORb@Ȗ/IL>"#NTfnz_`,jz ipHX}%u~[;6 BU@`yE˷Rc)3г\?H$WŸ#ySŒOʰs!+ɻ\~XKe^F_"QU{t/Ry/!MIY:qi$ 6 圻w8fQ2e q<(G<ķôu'IA&z)Wad8'PD6|V}Ѓ|:tUytmY:D>C.=w^=Ybx44AL=&p|kj};l^[:ZmP?uл7z;x [ ªLSb=a)]w()\pB@W}{(#h)ϑl):υS&q/ 9IŦ-Rɘ]ЮM,Մ9 P+NpK{ydby FO<ZW V )Nԟ(CLJNV848ujYMռu"꣘Qb ApDCv IjzOXl&}F ,!k]oNm[&fZjZBwtU˽yCe%tZeӄZJ<:E"#|d~i?[ЀkpǏzH8$q[ i>)ݳ`&}j 1_XCaƓ>2 A$`ي<é $'TwP@L5;MۄXP򤎋r&OɰJ-;'uK+!=al-pc0nsE, S_qfNX Λz8d/+cd)QddjOwCk f,cK"cZ:pԲ=%-M~zZ.Hu]EEC7o}g-/ĴovvOsӌgk@yn^pև**uXcrٶ-F=z#uJdp-l@!XE);Ix8>Xŗ|b5ee2|w?.2t< .'.plN!{nJU PV$Z4+=Pӏٙ[oĈk蕖HP])m*h$f8u0TPKVEFIĚor=g.<)^)zGnXux~1z{jj/7jlnYYP/s~Pڹԑ+4tu`=G_*g y M; ~j7?N}> X)C?:  !G+{drifᴃI>@_i/ I&mW-'!> -ɱxd`ξVG,a ?, 6撳Rq`qrt"EE6F4ix;8(y2REXo@PAxa[0ae +/.9٥)v'<=MU~phxײ_&̇y2QVuGP͊ 5`hp\iPM໎f "juzs*{OAvipD HC,G9ݨo*1ͦ2eFl<΢ C{=adC Z>P* Q@Y0TLm\oh$K88mȲU> C%<HuMX`Eh )/Lg‹7 o WO7.9WM&h:_cy]{OZ=] sЯ'|6WΠk,wz tmhސ{ lRg}ω2K7 NMQ>ӌçWoe=/Rۗ?$թy4",fRjATT;-g3W+  }f!!`%P/3ǭ֪R^h;wiꍻT&kNՃ(A KoL |\rx3\qgE}oEdzO VvD<}|j4&ZltFݹ(vҐ;|M_vO em%8G\|9&tH@hA<+ V{I& N )GuQԌ-!! vO)svc̦ 3 dF(PjmE9?#B6Oꌔx(xZ-IGPk BYkoҿ_Ho&[՚{&6P*P򿒞8q&FާKLO곆~ ?T)W %NY GK1e9b9@zXE AfSA1t֎HerWXڇѠ\K{F4ҟ91 U:Ih3 A<3Xkuhxb"Pk :@ܵvX7fC1Ί1YtEs[Ab;mcs\ijBtMK :V suLIPe-)G{v4y6<8`cQ+8F$Yq.˗~1k,c*dZT>l!Nxk ~_cx\ueK?7PWLjlW\рQ{ƹ}wO޼!eGPSc!LqVDGrIpCקMR1}2k"^0tTdL tړkBD*1A2l(/KתVyZrC!b&KD2"*L1'y*l]k콋Ϧ7-pv>]O FD-۾T1H3)aC#(M=u';Kr8&;bu{\xk4ֵsG;-x۱Pɇ-i[ :2.[bƒg,Y,'2 W#B<31=myiS׍_fªHW/yGmJ&!]RQߊ讉 ȃ,Q B V 6Wݻ,L0qӗ>9P:¢tI5ڵiLsq4FLR9exPmYtqI#c$zj`ݥmD,AwGjgǥO0]|bBvB)^­lTO@ka2ċ%dz(mO ̶,' 'h -"hlQ! 9Za\N iޙ[%kV|0Atx:q. Br栓 H(C>ҩzV?*P=8Gj?OQeCɮg{Y-]c1ntcޥԇVO .~y&/!$w~U~\pT",(`5+ p! z;ʛ҄km8 /7?zvA_&{74PE`#YY3X"ی ^"Eȵ2T#UH܉ڿt܋eʽa-Q[9 ɧIc(H`¸rZɓ f)F;*&>3$4i\ HϞn[,to87>YcىICA1[%BMe%-*cg-d1Tܑ `vѼ+`VjPAφzf2k.|zQM5Q(6Sg4ot6djN n`%T92WAOpSg+V NA"6[{٧W.=/Jd}nps^{Dg#)ZоP㪐<.6BzSchSMrFuBf:u/^) W\u-^8l֣*0G|+AKXW;8\uӖJQfs@!WB 1|x.70 ^*Îⰵ9!4q8QkYy}58cyS=9%9ú?TsI|H$et.p|TN2Qp*4!=zi cxiF^Lh?fU âvIO6;2K0Ae.Y:i"qվT(eSN2"3)|;6YM+v]=7QZF?VEA3MJEZ6j|*h֘7qdb2Pt/M+[ֶ9oZT{1%g ?"Ppa7 Mt_|?*@}g ^^j,T\ʅG5Moi^[zrt>6,VpѝG.?Eʯ%&h]lssmӜVn{\#6\'D‚( ,TYST '-4Ӗ [^RP x$ Ya$*h<W9$O1K‚~܉.M/moZSI47+7+Nq+ [Zv,۳{p:u :Rl&|aom᪁)~N=7]状 6Q&lٺUP[]g C kCZ>aoBB,JVS& BXuTzIYI[0,,"C3.sv%| Sh) *` o_RjʋrSQDŽ As2jէ9Ԥl臹d52ru@gP*f)M4)`Ft K$!\='hʍ]=r0ď%QVSپQ-2+u|3&{:=ukÞMmzbeþG\@QfGFȔ Q'([ GuG;-;ԁ"zKr Tڰ`n he_PuJdP!SYR_3zeےY(uՎXl6142aK8xGH{~xT?wξ/z.D@plCyI A+p3%kgnE9n06:`0efEڰuEwig$tbd*fT.SPٵاt֣ԈqQl62Sclliɱy2o/C$LфRp=ƶN>=bR*(b I96ZTYYEEfUsŭ=&@*VX4 ^q"a=9@N*M&K}0ݬ`|*KiE=x R< ΁5$DHo(ĝt9֠5S9fҊ{>5]˩{^Q;B3c!h[%CɩVHś*(ѣ*AOktF 1!,M!hh;tcFzsA,4_C"haLe$wFI|X@R$0_'klT&i1N΋#H ڳ̍dav:dxt@+ "Sus`+/}B:g>6 H{,R$}u-!T]jLL%C0=t⪍db.U>kt\VߏK~29wS7Ӛә]j8G4'JfPp) "\CjZ&~ qrK"Jq0i ʷF)'4/,'qNjr̒W*i t )HXgdUh^fR-!+2Ў6QYdR+QVjg\6qj\Rj)8AЈ}YJB-WQJPBh[v_D}'څ<&nZdq0--e*il]%b @o s:rbWQC hG=ma +2j9䴕.˩,{.XVДMy%ep!Ȗ*TբNݽ?4ے7#&Aս(dג(881-<%:hrEdD"=oJaB: ߯. BƲ#Uq6;pYICIeb {ÝhZmFkȅYvt0F1e ۄ#,m1!+"0X:<\jE;E<#1_h؍g(kYd"TulE*<%EX2Ød*iiU0**`{NIVҳ5dYϪCFTBCTqMDjU!9`(jު76?ӟȀ"v?s05_3p|[_cql}v9߄T)s+_/`77^.5ipo_Zj uex sXnjܘN<%(li`JQs)8i(V4\͍7ΓC `4}N/nHE-,ߪ}m\E隉9)bRI/ k{ zˉL1X!E&F Fs<& uU=" ʚܧ纺äXCJ.dSC!Tؚ0%"86!% >m2>w&tىd 7Pf}vv>Z,ݑn-XGt =TSÜԗ#<--]Pe*\ N r Fl V4C.|[LqmSB&`'Anח֞ɑ>"0;LlogC$ti o #lkXdb!b 5 5g\ .mV^3pX^srVJ6hdRN-Bh-%zY7Pы>4Q,i%&+0ea1xBeę%zVD n9'ddƌ3'u6pn6t="խ/e7.V*m3p7*>$sC D+G𥼯iيj|U\YdzsrbҲ3.oUSȗLb0OHcbSv|'KD>kCtqCV+9r⦽cKT 6 {Z5JV1&u!4Y. "L"`V|3n PmA(afK~h8@(kd]P !hTaԮ=Ԫhi-?*i:rȹEl ssў]%5`4fdN`}yVͤ>e~@n/`՞`ֈZG D vxW_xWgtJmi]Mc*͒zLAi\K1%1}vԪVJ.b J/B[Q¡,Fg5S0^  祽fT]`1I٦0n83`>^qDܶ,{odwa0lc. Q"/#XQ]F>9k_1 >Iq ܸTxB!}JWXԧ~DH5bP3pIW V`:_RJ "J[ U;+;n Зl 3Ʌ.p/qVG Y٘e#ՕN>$VdZg='#Pjw 遭bT9bQN)J%{6G|tߢK0$mn"%H0oV[`0F%0bBpŽْPfDoOM);lk2m[b%!4\z+%zr1.渲lvUfHMH`\EV.)" aQmwe,+@)1h1ڢ $.)ۏkB|?5]\|~.-^n2'Y\oY@7i`h1p"sloaJ$UZlR&F,- Z5 NS^'rgs4<U4M-6m 5rb7V6`2"tW_Kyfm^P M)*L12H~ISTi+p֒N0idRfqФΥ&>̦n+@3`p?k%4e.fkw0&M#HlBQZgXcܻ"n9sk]t5b̐NhIEW o%A(%r[}#+@Hb*XpfKz aMwQhUe| ,Ft]TI"DitDU$G7㎩^%=VNi'^Y"bPBB<[ ҌǑ T%UrY$0H\ q+ (* yhڑE̙h(X˰4ӘIpZ3Z9ٽ9( ɢy5jȰ69xMKH]w*c0Vkde<%ք[Dμ>dخļ;]@aFYi=ovThG)8Y+ 򥳟^5T#AU}8jp󭹿Uz]Z &\)lj O(F7q!c[XhuGBw4 ggW*1_MkCx=*.,)Z-*++#2vLe"Ϣj»j!Ò,U 2jf6И箱D+`xn[6*_sP$ iF3tG\ks( hȍ FHSJq6?& aoZ7kL41g">tZH0D[L.ZQqEFC˱-iep1Îʍ+p+r· ٰOY-QZѴ P$IKӵf|P5Pչ"#I) 7ٴd䖘Ic\͋,eh$4N±Mid'iS, .~yDjpX|GaWÙE)\VT(f bR0CJ{" $T$ F `!cXpS*Q-6hśAI )tʼrU'423鐪b\#{`5.sOA{hHz;2 p.q0qE%!+-xxHa\cH&Fd$F3*q!HNPB#~( RIj*+)Q2"4bBȃ~61޼9H1LҝLYFC;hԵHcU=dhzܱ+ZmR1^C3bs!\.6#ý_=ӌJI*3iʏXKF$#hǃN=F5]vŮvm6Z1[᾽㸑LŘ[RHRMN>*M O.Kcm] i-4 c\ F̴ *ry/vk&Lvqv,iLMPA!þk  a%ˡEř#gۿ! MKvb)Ls_ҫ^ Ŭ]7o.nīԮaNEMgm-U. 1|0^H+wjRkuKX-C{R-BdIAC^CgUVJþ1jsj7@ou _5cŷ]bd\SpRpZ+q6m S͕WVFC()kE-˦/iHNt֫w\UQJ|=@0G%wfU+~< I2W-0~ ݉xej$9kdBfHN^B(~9 spѿ bgcjH4Sϩ^kYj.a]Pb֖Nq2ح쬔HXv*ѓBSJ!#FF!wwF(*$g Eн.󐸘h&!&eS +!]ag*2Y B*Zo= PRרT,4L Œ-j.V'Ws #q.㖪V\yZ!s*(eDT,9W ZȂ.ff?*QYVm9zP/* yzb{Wּ:yqkſEz%cLAdGMXy 3aAJTz!c"]Nq9Ls.쵬 I5h=A(1 c4E;%DV6Ծ+`ºU]rEL14C VKK#ns:>qM Q]ՊrL1GmdXy;KOy2o}8\xJ&OCF܏ Ȍpi<3WZ]"levVBng1YUÝL +r`xqa#R-Hf#nFeJ!z!ל[ETnň\\!S9bT6H?ڻxu;1᛿rS%Y|},nc۴ρ}BwvjC50i"W*,˅тW6VEV >^ytxrk>2sw8=(Aa0L0_^%1}eEV\KqSڱ*i 5ttV'Y@{"IJU^>R*+{$F5_USU",,Wvߓ~&N={mlW.|VT:?Q3-A XtX\x/# 8 DvV_Bfs&φ9AuT1jgEaU7jaAǒ 0唥x4y]&~?\QXoΣ|ս-KY:4/vRRTo6燿y ͜hd~ `7uޥ#=[lc5S@a& B1W"i#nZZgVWq>$@noW/s yvZ0#Gg)d~g,^BWc]|\gجٛce1NƮt3y(^ $qlEܽbĸ@{K_%26HZ.ی&8r4W9м+eu\U}WLU%5^M"C$Mn̚jX˔PZ/vS_⫆7" Dp š;d]l;ɿ.4 HD"0k c֟\SBfň&.' 0Z >j&Nh{ }o^iuVăJT/ę⅃=g_i62]S_GA**b>/VAP=+X۬770wNLLVs!Ǖ߯W|v=4SFk)S;ULVVuJM>Jyj }[dlоf˔ ~,%Su|sOu0!{8 o&4@WKi9/tqs6g`xVqCYn\7}DsO W%lsгijd>N)$)b$@YiVx3L L%dؑmAH\D*I3uExsyg=e:dy tRnЖWK?fn =1Q37IUK-6CC$z";v!p.pyY/w;1u]1WGvztr(PbveWbbُv4؂{d;g{tu-kyACo.u9Pq6:ϦpqTcW nEWeɃ?&|46"dxNww]}OU:QN+ٳ:rorU>NJ[]xNKd+9>˒]S/3Y6=svjQ90Aa;?׼Y ɘEX7Vz κM-q3>9?VB3biKwpxfl!5.n7GBC-2+]ϨRtVź{ؓ g[鯅 \y=nyZa3 {lY[z/G=uf!^JfiOxU,p8Kzu/ ؋RR76 ^2M'6?%6ß`5UkZo /^ۥ<,dzi%g|p\;gʾ\N+SIV>1QyswRtc19[l_ g#z"ޜWwH vt$a_~\Ѳ3t /p2w;x_-d33\'9xzomd_%՛Ɂc2g*b, ujo#et]m )FLGI{:9s۲/UTy^_LeF;g/8,gs5UW7j}:r !ɿwןgS1E!3z Z_n#yT'qee6l?/dmϵR{W-8zx[#K?V<63 G5)r[).`+;&or8;Ĵ֋g+^J]e3MwF.q\{J:P"[r%);j-n9}>Lo\Ĥss}Quk[f!( mnj+l`:\-[1$דp9/H?q7MxVNjuϟ)CcuWkOڿ3Vkj?)~E::]tϧnč.LEalgHMJefzJn&o0](UesoUNl0u $^c??g :іO Cn}ww]v?&"`ryw=l:i^oBk|\7m-{;p8Q`3.Mh%C2?k=Z[1[-қfj{Jic\/y| ޗrk<-8\m[ޭ[Y 2M8*]pd#kf ?a:pp VXO9Hi3!I: 4v;r;x[~]8;c兦doW6B`C]mϢnuJ9O<oW}Vg%J]aobpzP; IⲚy@#%OW 5X%\wɯ{v ؇ӕ\ cFx3Fr:#I.yFň/:ZqM[]ٽ~׺!/ ͤg7.[ ~y~{hAyԼx0._ӽy'd_N?A#l}¦guzl^N[oO Ig6K@[X?|)ruS7F05f 'd.Z}5ѦAߩo6a 8?{w,+ohbdt*x qp0`[+}s}}22E:Vaa]L4Uy9banf;4<^t_w]Y2hC UKniOz\e'{=8R*kJ*lV}Yq1!< <-$2wxZ#1׶XXC떼/[h2XdD[ɕWħk;K 2szV({B<tbN߼=x9t ˒+D zZڄ"~I涂 d6pą9 ;|m>}1/_V1gZw}fsU>͊ q,HiS4a?['Q>5I>vIw$gZѱέy?=H~GP=/yC}GNnҖuڝp Cwpl\~Jԛ3$\HQG.ZM.=1t{ w9fM+Hvc3Oyu|8{.-nĴgV^É!gѬ/+l&,^Dg<~n[߫O5JWp= N'w$>w~Io߅h@[ܾx]_mo9dzE,Cyy/{_"ײWӫܺKsK[">PRkj z=Z}4A[}',q6hZg$ob_=Qt?̏|d4ZvVSsrp6g:k&3BNOw8΅"~>CVdzӯc#Mk>zTYUk?%ow=3#tKn+YVWZ?7COe?zCӗx<cH+`'BgKҩԉOP iS?bӷ}=}Sl#Qx=iw{k]c<ٿ`<{1*ImQJm?_g#w#pu8)b{Xv(y.k 霥3Q&2Ȅ8 3 kS2, L tz yW.gOJ Ιqp2VYΏv}kTq|N5̟b?%o[wc.Mp rvz0kKK [#cum*ym!+jΦr/_ Xz:i{jԡ(ptv?c/<~nC43bAzp /9;;&몁sWzρq379 RAYG=p'$W[ߡx?T[I>tw;{S_H}wVkW 6m,mb=ػWvZ=Z<}tiޓzs:t|]uu8hY|l? 6 5o3HomlY~W1uW|4;o_g/3ϥ!ngz|ngG?ŇFG3XOkEpı+Ա[<1JYdp#{xdU5Σ:~oֺgM\7t]x-eE"u? U(xZuA0}'?볻S|xΓzLcSэK} &LdR.l~Hk^ON|}Z/ o]ng؊'7Dń2}>Eʉp+V+LiZ/̔wc3;:7}$`{|;V1wx+wfKv<^PQSMv La {COWEg]#iķ8/~|E^3raX\ ~v ovx 5?\= LVK~VXnѻՓ̋OKWO_xfs6l^ -XCyqu"2Z2Ќ5co;c&C}L:֧wqщfx2kGr zyǟ_*{|~to'mn/nL{*J< }>LS9ʓ9}hHiڸ+vä7jʽv}w]]V^gxvnd\0'Z$⺁Mϻξ9:0frXyo;;z,wg53աڹ@?S ǫ=.6釰g/_x7bFG_}Q6pгz~7u}%aNs.OJ0r.o\u4^馜>Ln$/oiJ{c|Kom]l{3tl`.wgmޡn~>?7}-/*:oȿהG*q|+_ψ.a,)sNu.x >氋k=sP]}? ;=t5&ϲey}?F;fۨ2oʓ\wZp' |u];'gu{zpTs_K>ˈ?U{n>w Or|_^^ێ&7G{y_|{}o/sn;w;>OWJWG$}^SB˽ vKJ?/̟k׹g| u }܏_UO|^7݇.WC#I;oRs9x!`;qT%S:ܽ{Dz̞udO lrmrpl^_Cօ_wwR$}jku,?o/9ut9{p#;oaAlqo_ܿ|awiv-c *a|3?X`ywgk;3ؼ_"w_'íl/ywawߦ];/P| fϼ^f9!x^IYwbpt$p>~'.fݗο\;GVW4.Kr}K%QZ;5;yg_'e3Aַ>OMυ1m?c~Z)~o-R{;k}N8,َ37ѯh~ ap;x{~gak?jk,Q w&C3U3{;/:[v_ɕ2y<]w5.ѴV3fq/X{p_U!Cly^שw/v5w>, ?Q_5~~'Y.>GYU4ϗ4_OGsix?/~d']]oBW#{ц0}3_GyK'Wއ]__uV>&bw/vO}躟~RUWG6.{=KOGloH}o&阶O_ӿ4>5>_e-Scz_|lZ o+BUYit{Ÿxf;o>܀KMsz?)~IWgo~yӏؓn{w﷝?ܯJicSo{o#bz{Yo߿~wϙIo?qB܏{?W~ױN?=s/>j; }GwSO~8%wn?-B >]Zߩb5OhX?'^#ϼZ\Υ_;M^Kl|O+jvk [:~߶!NOm%XK󻎪q}>o痝Qg{WV>߉D}}8{\/WI>ZFʩ=c#S?~o޾>g4w-}Wv^_;h|~~7{7>os A7[}/=//[A3>򺖿k.}׾%w1}1wOBSUA`]^zq&{LmO*Sw_^'zDg/~?--7πG?Vn&^*gs y{ϳ_Tnp<>_VgBOwu~?}7 _Oشʁ1P?oa}2>7*%fcpR~3? M󸹌-Rr5?WsO}cqv/w׉{JO6tUj&7<'mv?3>o]x gWP\}{4*o[ou>w_u{ݣ/kF,rC;}]AGeƦz;m_bCk|^h7_pn7n*{?{T|xo=z3c/lwN<#}CcXIY~G#{3?{^b›Ps7/ wW;~O 9ߌk `? /?4=/c}+?__wֿݧz6|ϯa?~zGo}vy?W:N~wwԑ,7E.]__=3₿F sLc7@>q}.w}wrCz@Z$W'{_{=y_(L{?+TO*_Osr'pOG#pp}LJ7&JgOPp.8+ {,Dio 7o1G׿hɀ|?}Pahg8 } | ~[~>W($OGk~>O>;Gi~%.Π=Wqxy}&l_So_]hG#?_ߏ?蒑?{c_{o/7{Au_{E~ߤ󪪟^>{_Z/?//tkM W}_m'>{ǯκT{+^%?g?T?uK|g񾇱`C?I@#}Am䤏1(㷲 {?uGqsRTRQR;}*CvH??^*U_Q{8 l*Bv`HN0%#xT}F~ WLRc GH/SIR=XBD(~Wf%aX b1 ``1Jc)c0R1&0Tv￴Oxc X1,b aF1C%X–1*1,a\Avھyc0XŌ1aL`1`" &00b%1L`ccSLb* Tcc +5s?H3,bcXı;cc&1A"c1cc`b V1X†1I+6F__D 1CcS ccLaU)P1bc a0I&1 `#6o_+*1 `A)Xc%c) ccc *0qcs $*V0,b!UC)1wb*va!Up;mTcc Bc$cc QT1U1T)e;\~I.cV1! X'f1cbTaliοi?%1110"cc SSF v> b&1x^>ǫ+H"`JV1"9w׎7EIcJ"%LPڻ]D2G,-Jqc0T-m~ZBHǟ BxƷ{)* m5 Urrs΂jVM2%[Ug~ˆQW(u6)7Mxxxz#Š p'=DIhUONg"u'Hw]~AAj{]"*%`˕o_r#in7oHEh:wR ;T(܍sn}nT6WA!XI[O}}ݶ*GE]#ӿR8.7CqNp}*CJ2&c77>*Riy7 T7: M4rys˿] M|m[Ml<NjrqpUHM*:HMڵ7k9Hʬfn/CemZ5ϵHj:7uPխ]U SQN8PgO{4c-9߷ZS,mRsqqVд4ׇ>X{U$[MżR]=*ҭ 8u{٢Q윳Ϸu Firow>CHiZ4gAwTu]^>I*U05~UJFk.kŸr,^)%M8=}҇Jt~oAEiiԁhg)Jg2龹ie.7߽Гpov䉺[[PMyH~O)C88q@ZM4从y9jVw{V[rUnն**L}WU"VuWW_>>8W-{ʅܫ9:>?BK=7#p8_?$ڭ6ߏ)5a6߳gÊ\\L10&edfew۩&6.|N]+%#*YuH[qg*̌\=?⪮*qN7ZI.'hwU't]˸x fL#4{N⻮]kӸFnDvJB3UTv`ZP4M-Z럅U \o\J  5_>uij盤KƀjZןRIj֚q*^WJ>\[Rus5㴫dnǏS>o+pRSǧIiM x?%m~-QN7~TY3&oW?ڣqnl=}x%pW_qTp.oÏxJpW 0㮼7!ob;~_TZ|.'/O0rS4xuHDtN/8qBYEhit t㋌Vl 뿏Mm碣]kbN9k5Diiӯj^9RffnW 89^&Vw5&U|||wOqUqW}N8Jҵkɯg2<K2gK5 #,{jyTfYrskf$ˏkt:CoG^}R˫ѨV^. VIzY30EҮӟ/U֛>HSSVns 5,+.޷ݶf3vFѫ^{UGyPqG}[ 2^2\3Ef9^pHfg];?czQp$tCoWEtdҘs}=^>#t+e~N=+ݽ㫮[eFѲ nttguPVI{EϟBE)@B4J )%"EU$ UTP: P FLIEB @ Bz @> @  %"X[̴Z10M0 M4JxL6M0i b2 d# 4 @LS(̄M&i4  SDE@jE!5U %JF OSi3SzjiP2`hCAMC@ #@h C٨GA (SEu}FWc2u $k[!0K}*jFYWuMzڎpIƖ YJ\iEԪ"=:xŲ0h|. 1 \kDDA`a qiϏK5%0O0 ZH ˴ZKLjz"'-n 8Q-oY6L•7@ęìUӥC)LRj-2i~ݽO~{$z!Q$,AyčE E!gkkd}>•v5[5GGU MG$#H)'ƶ7@ -Ru&pnb][ih)2W@O)8f<þ6 l#S'n'$KIMLU1Z}Q 0=D'uCFa-JaqY \¼HԊ#e чbKLBmP @RՇĵfqbblf0T9nir6*duS!6Ja%d8+/^s(͝ySMBP41Z0A]$kF)H7s r4Aq*C,nsCu/}W&`qKfDf,lV fQ"5&uA ]xy.""mxs57I$NVtَ.Ae\IH`A"Djzk@Ƌ|J ;ǜA(|9gGyܽ<-i6m y$tN* #"d<ى)K4ff :jߦkbN240f MfQB\!^ ނ9-v̯m%\c}1=0RQ!EJ1"C=Wh<ǂr䴄Jd9ԯ6}s ގǨFR {ـ6zm:6NA$y c h/ [Da 6D"19}\_R42"A.gu0Q "LIv `Z9sk8Q@N<1`F`k!UlHvS8F|4l,rހ*\P6&&A$=!"}Q>uyן${~NH4AꚧEԽbs0.:e%tigCtMwOِ{BxsrwP@8;jnq (G̼4کαJ !hNT]! OqY ABZG yNA^m8aŻ@U dbd #I1~7' Hs8bDŽni$4#&ӜCKZؘlvrq4fq@DLjUZ{pAMU ccBHd_uQlcLyqeRq^! R&F8`%EXiLNhSӌ͂-R{$ |,DL*A(Gt=H @^ʛU'X[Q g㥝QƂX #TIн1.έ"&T4Ó=OsAdqBnw|!/a9>d~|L0gVW) `_lo8/wNwMcL[=cʡ$ qw a^ɚ~"Y wcF"͉9giC￷4Ω¡rVJfqrNuG_+/џqOP!@+RiH=p"3hUZ0 wc8p!!q ًSiLTAF :csگX] ⹗áz@<~5MMVN4R"k bֳAbb@j5"lOg.x|=%'2Om8y9BH*ndT;\:F72"5&YiC> My bsNfH =Anf=ҚeHEQa0RDr6atqwS> =,H#Ԟޡ 3^Z!BJg_n߂=<ύ8x2)d2ӺhaǘKᩈ3[:,ԯ! LYµd:Ub G1 KpluU\1u; vgr*w-ֶyCyu0&tH|ZOPbC9to4紽 {鴙eOH-<"9dN*I[524M!N)@fz}nU[,\+q,]tQh'HML1G3A>| $K9&^!NOM`uFnlQ"swVsMz,|FRV lMewolC֛ H|J? B YxB8o$(8pd&a(Rߟ>-DW4E c!lB,֝~9Odyïs6 cJ ruc6""U\A"XӍaؒ+MsApo \6]7;ܬFd EfP[)g$HQmxX " kmxTݑ87s#%7\kq6櫤WQY=g `|;yN>8D[&d.&dOMfFa $q-03M2u DD)Aޫڮw|/?}v< ߘW`[עczD l;jP^UOM cdJcNswvZkYkq99~a73t9<Zf$EueqIau"vx6w|Mw4%/fSƖf="qI‚z8Q-[JGĨ:q^gd?<ݨ 1cMqT%5CB͒j(NןL瞎u=Cު{u.INdtpzU2¾Mr0JgG͢EW" U=O!: eAB4X1gX&{4U1[t+SI6ms/"28*& <=6%T&혆uqu!m(kPT5kŤH k^#Sp vcqǸe`!C %+,߿֋8'RDQYXO3dAb꣛}-ArJj* q5[q;OqIY pEH9M0f7`ro̲3 }ޞhLBvB&piܓ<|kx,<@,ndޅ9U7teF9hF)kC^E3Ƹq<9J !W6"L;\~exIA O)6_n_ZޕF47$kgPj GInH/2 t9)(T$nKo;wugCs}_^9Ҏ\rY&iZ of>,K80 U^dDZ#Va>C.fQ4|Hsׄ{%wUK:;gϬww%4wwa L,0W,ܐ]tlF{ByStTc0&yG-$IGIZ6i]$ҵ73+II0ٮrk!bkc{9M-\>\.@V3@hIp hY(sř3T| >d҅]2H@ǟ$(r|xcm@$CE*n^f 92[8Y:5gY:j5~aW Dp-En"ݎCxPE:YA[2.&1b&DivO|[M6>]mJ@ӨJ$mzYf)QahXUDNs/U$PGčD,șCw\幑Y'Km}qOsLd(c, y+EV$atYy$I5QW!+/8n @̌ l:Gs͒˧QO7gdi<`Ӂ2,;wcA\A*,3p$r6w~|sAzM*B:9sFA3"2ynryږ(9xGнd#w,r+lTP||Q(Dwمr|Ѱs7꿂O~-qg{ͨx;Hr>Җn8>3d&0uU(k05Ć_Jv=4Vћ^Y )v B85XR$fI\2CA~L8W*js߯:MG@q0hi N3У)k]"K'\CXA`,iosg=nJJRQ2W@?%N{ϤR)uNx>ΊGGMXno3Q.π @*mfc.0xӹֳrg @Mo$±J7 Ì,XFI5W,[sLIg8RJ>a<Br -`"+S-.> P4Y*,_Hd3YLaalĆ/B~7Ag .xjGTPbKpM8/ Ϛ7Cj\d:O-֣9 v4#>(J=' yCIMa;YW.g9L*$ rM"ṩ (JVu"*fvo+Y>.MӴ[r8Q $ ykS`"zmJv@eOf{E_5{߭/W~eԲSb]1J_5>Cg}]|wޏ~vu|QM֏{'74ΐh1weGF\D~hxRu3Ɓ;ڮ:X~Ph a3M8 4ܪYA{:G&dbgޘl#5<FyllEacl8G9P[{vH-d,Sv%w6>O(v~5th('SϾw>nf={;grG߹艣? /0/nƓ8LiF&1 #G*p_t}"z>zCWbCX {yۆN+I U8Plviơ8=Y, tfqV{Ddb͇NެqsFL +0bAQEM0ɯ8:Cϖ7h#Og2ENz#bA%8\:eg@NC}IL5Y"0s=9Z*ʶ+qn߉V(79sfQʇUp[{^RB^ɟFd=r*&7Ht^2o05]!ëCskԒ#||Ʌz&h90-rB}yhw/o 'Ƨ ~ #8R[?#H Z؂+a SуQτxe* .J-x9, ,(}V皽RGg8=:T! ܃=Z,7r#[䙊|]Ӵ"SüEN5jRb;ṝ=L3aMȁf*4utY[)Ns!j_}y0twϫ8թpck%|Є.s'L\!Սej|O'BA-/<29eSȇVigH;RՔRtL%XLki^HM7MŖ&+8VTWWmW,I9_LQ4䮫ɇ ix<9WeU|ge%` IY' tkJb.ay?]m>~[3i%ngIzG-5etns-Z2N5}c9 7,;|0Nn}M"clZɿ`CFeyYV9[%0i9ՎH5uCUd-z@Z+ NV 4#)<ʉ-X0l:Vm)'RKg(:YfCt3[KLZ9z#uIF3ො :FG[Cv5c3֝ lQk9+lr6k4e0x| YE[;z2PgVt1l IrQZ֝2b 6W9kirE4υ*D/^Nd5CWur;#Gs_)\"Z.to7bЦ&[9ˈ-:SR.ve'\&P^z䪑L j&КIhaɤ cs-g(G'E6]aM[.)WEf++!(*#7s^jih{ _]ij$JxI{TbqcL 7ݧ s(W!nhF< ifwl(=2˫ ˽a.|텟,:,sƸrxsm_e~,폢DЉ)*ڼ雳;;oJ15n>%\U)=TB DzY(F2 ' (L> d)EBRU$`hyI!p^0u)I Wj<ӮY/je O7Fwc>4nRizE5D5_Բy8EQDe9휓r,R $_rTKdʓ/D鎙#FqH՞pY::О\F.6(NNuJ??*u{7wu:~##vc7^׆ҴES{˦xǀr;vۦ}im ^=) J\:'~{ޟ{P }'ȧO>zMr4];r-;<BoyWI ;kN]>VNo XQ+. r{Ǿ|ɮlSϮ?wjm~<\FnIxϜ;'z7>>j  z0mSעFk?~o#^~OWG$@ݾ'FhGVU~p~rWm֘eҿ_]s6WǯMuw]S5L~$ߘ1EcR8yFMX::&qbٛTKڳH;Mz :AgޕQdk 勨x!'OCtw4wncKope5Izu_"ϟd|jT6S">=dT$ OU,(n%VeI o^p~y$dz;S;_dݭ7[6yU(bqeȊ%V)Xaf [6W>4 l<:f!)ёDyk/3hמNl *J2q9c˳NPąjJx9`ΑvgT>NsBvє2GӉݬrsٸ5İDK'o C-zQ::|e&Ln}`DBˋ2lz sMѦ E%&̔6d (ORDE;,-W V@06 =C4ÓƢ7pܫ&)3 O ~+F?/!sBK+i;6̴/T B6yEB/olgNUDq:41.}3d1ynAnʩ?k\pCI@%0F9{vR8z&qhW#PNk鱆RqI5&FTB`}+XhgtY7[(gѦ֫^e!Ɇ勼iž Fo"/!ו?}@@.F-Ӧn/Fuإ,aYP[ 1jq T5+Tmѣ*};B~ll^( ө( A)rύZpS<c:g]/YJHQNHpMũ)h3*Ҵf}cvu8rb3prga㌤jaR ^DQ٩޷%S"4t(ZA@lMcKm˪VeuoEXM:0LRu0t'AٌLE! 6K=n7cԐU5B7ӆAz#m_HɴEe 2Rr<-8g{% E57?n][xCFb@؟䏒[}SX fC[C>c7{wjo~pC8[3KSt'^* |m6 }M,d) 1;"]v[@7$||,"r2SxŒ9=2ڎ#~gQ]_wr#w2/6]/3|uW]](Yݢs9i`0+#ҫYm`XFi4D gfvOQqRvbwW&^!;GKG7|jY-$^AUuJA{yZ1 ţsv6GgADgZ8me`ˍb, 2^+;w)DRqֆ62&?h0/.ȸmYuz3ɚ|I懄>4q_~Ci.j8y[ʅC7a>FF$uu0 l矌]]1SN焜fC^zF9lr :ujAB'?\+PAn`-/z|`s)\S#10 A9l}8;?]$Seih<DptI)7Gښ6yuX(" x\HAVcg e[X($D<2kf`_rF%&0P+¦/`KqEV \ɞ5C[qcko`׳ 1u}uש؎{_bvq^x)~sϷmSW 96*Wy "8yu5t ץ"v~{Ovz7,?/II0NVO֟lS?E.{oaƜ5_-~Ӂ: 6[^өBz,Ya>N{)|uOшBH JoNgr;l_3 @wwJmf.жn[yeK[zsUWW#t>IK?Ge+Š=Tt+~~WmGPG zք{$D Ku ~p"yK<8dߧ^S^ix.bĐ t;kj?\HrX^'Q~}?#)"}'^%JT_,3ޝ <$SN]Z=iIkThr;>6r/+;חVdԥn]m]2i%i4 .2ذGyn).OO%X@@D@2'bc _.+6ڠ× -]g"!5EwE# W c/} 1_sԄ^̀/Knz\a >}"mo.2Z{! hBMw-w(/k\VKS+fuIu1TUGQ3Jձ'1[`QIU0~,[8MDDDsLLiQϻ5ڴ\gY~RT~L`j#nkVPF|]/7e黷ٕ#[wJGZq'74dk" "y 7TeZ^ D2rrB!?\96s09qTd'%V#K@弼^7!vwSDއ)~TXU}$Gߒy:;ȿ It0)u7 . j@@h@f3R]uk0ey_MV_/ȤnwSvj@G/%P #(G)vu(GUĮ1ݮkê6ޚ""V34xzhz޲15^,}Bxm.Ja[=ߝaDI`;x|z3\2@;&j &6D㱍LͤmwZ D\v99|",4P[M`.Bۇݷvnt橶'l^X?C___OW4=<4\ƪi#LlqėO槻cAEr)*96g^o_QUK<+ 4<:- FMK|O·kƺUh|S! H~̿B[]ՅFj|VJK?Sx#y{uzپO+NZ˟^s&09mM}uWwFU4+'g HB>}K\PU. GW^iJKmWY$7RcP0l 'x_W*7[D{ks6 5I𵵵 gQu?meggXFJuג@9i)h7{u2^鬗3{+8 ,_)9ZQi6`k I['Yom9T_{R\MsDҕxkIT9/#ut\w cK?MqR=[rLwpu:5}|j IS˜yc頦%5AX,9b F `ј9]v~Wz}~_;QPߏ9iJZmο,l^,MghkZ) qnq|Te@82Ikܐ"kKWsdm3y"2yI:hC\l@lp%2@et~ZU}f!D7i19Ӹ i66GڕMx$I-=kɔ"|EvHXXz  L&\bs1Oҏ(lo$O/HC9>jC>C/J}2}_y/@0?)O{ f!$Dqk<[Q "g4` 7_-pH ~fP, /R Kȁ'ϲof5TST!EUS% PF GM @rNJxM T PAB1B y 4I(Z9$11DKJ\cAT--դ4 huEFDP% ̪lekJh(Ehik@h!J'EPjlCAš J)Қ(B Bh)Z$N#JM'hJiVi(QU:2*< - C@P14%4@RQE E"tZttSTB @ģAtH 4 4^mN44P,8E4Г44 !@  H*/K7OgWNSJlJ UJDnGsH&h E cEUAzwNS& DD88:9cpTS^.n/?B w"E|G'u/e?(zFSG??}@~=s@)쎹Wʢ=1@\)n;cP")(PuGGGG9Yk>hhGȀH0 Ǐ %NR")", JeJzRJ/pR0ZkA\ǗTAp˽)̄"q8PS}? 3 a?r 9G?] X y<ǧ}w'vB*S"Ol=V F=J0"&&LNu0ǀDǕ :>:""@C߾@L/} {Yq"us/??G͎6"r # bbbcἈ(!}tǀq=" ՝=?ZṼoT/ۧPN{!>=P<ǃtyo(HS;z<]IGx<{@XJd2vЈwiXy{J/߃|o{W]gO/'%҇~/u컾n`<\HXʽ[- o;w}wVC޻2!{.ǧ.n@Xt\3O}SUCr5py<1?z1l\˙s;f&&%+N]MR"^mLNš4;(CPr=}sҏ~wD1@I>"L鏥 Oi&D!9Zg̍`b *S7u~<KC`dQ1E2Arhh"1p ^.Vf<a/. M?/ }y|L'ZH@LH%b IbYx@"f`msyGsv÷qϪ:s3Yxy|Qy/xq*KZk; UpR;"ȶ* 2 5G>&(ux~$A~c1OZ@S7=z-xZ<7@9=OS>N_|>KQ|@1_N uì(( >'DM#Ts» xD,V@zpyӘa^ɠ_<>Z\q9~C`(y:`V  (J$JRV`%"PD ǩf). cS,O7ݔH "15u3"O[_*D*U /}Ȯ/{ըiDxx|:0i{Ph@ nqL8BqD!:4e H̙iHxF#dDpV<"Po |Iz\Tw=:T3nb 2mY c>c~[]T"@ǫCtss D1<`08k=ofx'N7!ҿw B"#{Z^刘 ͹bQw R*±.}P_?[F0hx@LOY 9^RX -|i Hd5ELNmb&"` 3mb+G|~G p8 \cِ3O_2Bݨ篠0&mciO{7j km" mVb 0g`\^D$Co{U0S!2˯)R@am>odDR~mb!k Z=?PUAJxw? $sw F_g0&WҼ@9q$(T{Ɂ0$X~{HHJ<𛄾DL*6=F `6KWl{XV"}1#.鐘 o4HDXXJlD1glRgք(LLKcLL R{8јbs))P )˔BreZ7}aak`uq G1N "=ܾD r[x.~DR,WY&moV!_ ս@n~NꈂCĄ@Fg)$#< BpIF$?G Rs`ր=3`.#QRAz5zT!BF  uL'^ٟP^7΀EB,Ƶ~V הeϧr3mi1r35)syZԾ4 AxB-xkm~_T}?.L2 @H c.bT}&1MIJJ KVz9|ߋ#1tqso,y4oG.p!NLuminescence/data/BaseDataSet.FractionalGammaDose.rda0000644000176200001440000000272614762554470022271 0ustar liggesusersBZh91AY&SY吷޹PM$4h@ @AMhI&4Ѳ@hh BC4&M44=M='3!144M 2hɡiP64 @fAOQ3Pe zFڍ1!MC@0 d4b ޔ4ii[d?+@`S6uՃ""sPO=!*$4QȲY$h[Y!'ݘ*$aW! 1a׊ U\F7ÞPHU Sd-ijag ] H`4mAUmُB6j'ЄKRO@%C} >yMy+x~ *!W^M5Ei`1cE&ϡ\}tZ *kn6S- 5 ] BJ#LO`61#d &yUu*>,ekyxn瑲ɇsݟBN3ĺku8YA*L+Mna>OK<+(# gz@3Z$qy[HѤKGPh-=c"fU}> WWRpE"BQ(EqJ1*)@;P ~=|׭op=r0-Q))N{G, )E+gQZ>ٔSȟNp0N@As-%7BUy%}\XfE(9Z WM0&pI~0ft搡LCQ>a#w:;SC(NК lp1  FVPwِZBXGUOa"1DkbPa%Ozm@7x(Fp7[%J8Ą/}^`~ ' PCfWhi: Ӵg iyiw[TDIBRRiZ&'n1oHa,&~V)ᦼ)N%ǦlUdPP|.oF(ԪPy$]5Z:3 կ25wNůӽL %!4|3>HL):"gŇi>q/bBvb!W4ʉ}Yn RzYK-#?rȓ'\@[4jK9bЍ [~ρVbGD wy7Q~4%sh[^J}HVl2(R @5S_U.BOv^"f|X3)ʉ~FJ*'PzSI(mHCȆi,-%i7]TnoG>VSčՑk sv!@qW =kzN%E+kL8g"R 43S :|d۝ER2g١#9z Γ'zw|dm{ŧdst}Ͽ&g5N]y=![xњA ЎIŻ)b!]C%D_eyڃwx+viM }=U)SNc t|diCXeVFm|@շy@w\/md]/v ĆL&NͳJ?0P&:"so}+,I/>!0MD8"AnuC=$k_7rdPh~InLuxDEڬK#)=`!LBΐB|K> 9"^Z^K($jt4y9gIn53 8kzq SE!іS86@%7kIʥxA 0=~1>ϚYk$a@;>kך^{ \иs^=ͦTXE#gM+JB>)=J~ {W+֔ü yYOXJ'_ yWJ!˚ tuG:<-$"X!*Y Y/yC: M k9f[F nK -i#kDԦJ>O4OR1K!x89X?]wDMۚ~zGqd]EySJS>݇M.mdGeA)Jw! Y]FCBK&tM{wq5W#@+@>xN5IBةʜ{|y+qQ#<+g"^\_>!q%WN(OMd*ǃ) g!>.q"bH7\YMeMN  i^:JK;SDx(g`Y0qT}pSvDxՐߒpT[x]%uD`^A!\͓dC1To}1}_!q-=bǒ*I|d{Z &gNI%p¯ K_X+z[h@5<~fK]#7TOKkܣz=\J/zBQi4i~;u^l qnf,TGO7-Kv/1ўW,e'QWŋ$A"lta-/pu@⵫.Pm#"!=YsLCn=Xe=^M |S XHS`LM#…5j_ߦ4%أ3w0 M41cl߄+ֳe "P;)&s{WkE~i;㻫_>v(a`&vV2jtB)ؠ(+ iגkhA,Q!d7ӐGGE%a5j* j"˷-JþEM]Kqj&IΦqj}lçW9Xah53![jlL ?jTW[ہQ I8Isb0T0,~>^f:BN&_BbL)9^%:P}.R3zz'CNϘa\L[~_*\ߢ 5n(vA>y2FN&O_#;1 yhѮMˣ75 E>(Fɤ# B\B b, f6J)V0׫AfV4wfk]ǧ!6ۭM.gG8ɱ+o=%jY"֗Ug/PonJ h0yĒ&4^Sn?4Nd!k3QC-e#Lw IX-~_\4ڷ4:#,PL:]?Zy8%Lۂ4}6Pr)(*O)%;JL 套vM#[,/*r6Uk13'9p&Wnqf^$gpP,s2Q'X|;\|5z6[?O*[+e _[-'UH^viއ9@Oda}[&6W, ^Njrx0RZG[F CM t7&Y@ځN`RbJ%Ί #!%6IYF6lC&MxFY $ps^KNF+XzTSw#tMO@,opTw̉jX}*oMk+SofSɳ1H}v>TDNɛz{Rsr܃Sx:}%1N]],Դ:wD5ōV8?j^g% z/.)oIIv.KTSp-Jd::mVgQEe[ymmh\1I(c 1΀GǥX&zCv5iȅiEÉd#D'SZ0!t: Rs@ZoѕˍXl̳T RV<U/xy yjr G; lZLprT5p߄: m C]}y<(^ו`}ksz-7h n@k.[aX$?,1BU'2hdS%P`ԾX~)!@ԅ5lG#ZySo۪=a8|$)9!id:#d-ʱA}>u!;roU2.=9/?BɪObj5Qa2ZA9#<:Ix)}X3D{ 7ANFcš ֨H’hI pԅ恞rHC+џxo-8!$Jw&_M[~BTR@sJ6 +1jK[_j_)y+#QCNIu9&0jF6|O&.mTPn}_^v 8ޙ4$5Lr.fރi+=NTaeE"J5oVKh1ѱ\D?/*eDun =9}]ըLՌzyXpPI% ӵ~:ǹtJt2lӀ>m:OeM[?5:"S@%){w/ɸTsF4oS<]$0Nb"y Y j7D/q|^d-N9Jҳ{HXlOՕe jc]+N׋Y}zbj}[ڭwCARdzqIkSXV#qa J[؋J9q pY͞PӲ#yrYDn%4_zl/pyK`(ꡒPh ʣ&r)‰tjk^ 9]/_Wy,G46 aN4Y0͊Y4#_Hz%e58h&}bLFAF荇u˥$~slP+gNNYE0rMa|PMq0.Ųf=;MP) 5,ucqN`IVDͺY9v~Ә6&ya9#˜5悱"gmg;[w_İ"vpoE:ѳcrfcV]x7Ӎ A4&5j8i&6Vz-C 6 Y@If{}vGLee̢kbKhmj'4WVzs1k$ Z+2ÞǨAq0TPwzuU DËN)*j;Bo4کaҳ^s̋ LEn5M.' B~s(g ju T0qTN0f[<[[<#uyhly L:h'R w`,v5`!( LX`˸o2O%+g<=1!F ,:!VLq)F[ HsBݏ:3bW*;| "!sȝ4hk gt'Zjk.240 sl:!P[EB lak;%yfd?b'00QĤY*O@DZƜcRR]ҫaHPxv?90@,Z_t".2eS@+S[< C,Bl\|Z5i˅:s>xf9}ɠ}!Ξ'=J9&1M^4tOL&mH 8g5`M?|ӛYCy 2y$JNpƮS]GsBղߗ zSH N:x]w.lݝ:gs2Vrqo2_Ȇ-bt\?׭ԩ?8aU!c|%Eo:WGgER.*[?kj?!81!#/듩 ~@*Jq~ǰ`B{[2.$`R8>w{܂\pؕ3L "Dk\-o1 q[(&B{( HӬja'@dv$A đc1RhkD;8,^UC"B?~^K%>4j7h&4Bͦ£=}:X&/Dg̤U7WH'xq7B^Xn<<%R}z@ M:8>޻9 G..z u6Cv.糨+ž'{2ZTKd=RRmޛ9|eǹ,RjL[laRfv~5i)ښKQ8SUH@8CЈv2TQPe_)8-@E6ag@ ^d19RAX<I)OL%S3Gip߁NTP+~W;D0 o54nѯ&+= ~#&o7X0D:Yʄ&??JkVx{3ĨI/rz}B dd4E6N0H% 䌟Y,KǘEH/[\CPo^~C&,_Nnr1Ҷ"wGϢ*dK~}`jH+.BJ 8 Eи-lv#6/V_݇b*uo@xOPƵYkA*Fq@lc8YC˭dhg ~L#@/ͥpn q% BsMD9{ߋG nJ~1(nؤTQ 5CX4y 7*lMwXygs광βڎڗf/_ X;Jׇ4^fw(5M1[:-.4va7vGy(DXw'[7ADX^@ɀ1}Q.gݦ_^)V^-ue1:T~)k*ȵՋ~lNMُϴa `u ipc [i~kL&w9qzJF5;+XVg8إitu(RhH1MD'<[^%?0av43۫Xi_T`,fGig(_kh`V[51Vy#{*\kyxvN@9yTh^ WE,tt\n;V c׷..+2IWFؐ#έw8kk)ȅqk.mOj܁}xTR3fDcYh?GzLb38QokjWBEI6"{]l'Ic=š':,D06rJȿVw2Xm&i mS`SoQn%ߗTMO$VL?W 9O,yam A̲h#pwߖ^ދ.&ZEU.*ϼ|4Cn3|%piF=:hmjDI};M}`KmVw}2ldٙgo/IVJ!4b'$RTnZGAU&G|8K[7nipf۰t=hq2 M?܄,vu&#]qY[Rf.4-<{$~AwGx)|ꑪc„ qç7R}Jб:gx |iyt~=1"$4%s\$?AWЕ_Mz}aYOF+ 8ijˣV+ȍH_{4rN$5 q|. ,2k mg'Z# };nck8piYنKs:)5aAyr7V!Bh^grhb>siq4&6?Eգ=z #7x@~$ɼXTFų*iة҅>VkE@Yf `2*׮7Z~;L66hL=Y1h`IϖV`Ք!Ct֫ZA&7㛏(MvJ`*K<)Ts{)1 yM"3$ůcz&ԈN[*iO;ϧ1~<(Z̃N]c7Ed{ A^|R8ԝjS5Mɜ.a';:͊XWsẂڄ8RB')pfrI:y~wFܹr^sڃħ!W{bmZ+#Hl/~}^\JoY v,ZkTx9_rMAF !;b"(.owm7bO&lb {ٜBdvl-M'JAFEyX1]Vx9#F4Zly~cw q#Kב8jEH20S_A?ܜas{weG6f3)}4G(C;Ox0MA:? b"yϑ1^mpU:kdg&dTOb +bw&@W$搳qzPjpkYb6 4's<(yv7=[À? )yZ5 W~I9 'lpaF=U\ܩ k溭3̌k'΀5ٹ?@ӥ/H6L#NV{&|"{oQ`Z!]P>u*Mc4wo:Ӝ2/ 1L>o /=սf7a0ɉì. z^ l A# A&+. JsrK$szDF2<$(/x!@9 F#G?4ϳ 0?qru `ٻ)pl#pg1W)~bGNV?8\g4Y@{oݿ *8k էAW&k$>ʑ]a8Ƅ d8S|54΋EVMz8sQfc1XF=$r}( 2 J8ävR@%j Rvr/@&?qN~-{t[Ҋr6YւtO3r=OAC ,E% t6M0긧kEn]"f}8ҭz=5Je-hJR9a-ŘИl7ЭT}2VڞmeU7aF~~ǜ~"` )'#EUP~3.1}ۢDB4 `{0m[U*5*}I1٭X߅ j+4X瘐ឿi5m"ygR%%Z.ԉ EH2}@% d^F|dHLAXq߹5)t%/}pkX7`Jp)Io]kˬ5qɛU)8Ӵ^=spuNe{I<*܊( +0{vdbj_8.~m@asE%Bk'!b}ߨλsu 8 ZAd(Ĉ̋ɢ;Ħ1dCX}q1zё1-Mϩ I fUUEFI 562@ELvŮs١`/$48Իii[OO^ {o|Fډoj,7`Yy5E"3S-HOVj=g%L/;ޗ%uJXe.Cp6l]AyWaZ\q@:'2b׺}'{υ"sX&5gc/r(@ܐRf,!mI:oY[u2U42T/z+fkM-&ȹ<6+K*O\2'Qg1n(xީC7~ [Jў҈OKM]ΩW(iT݇q A3 @ٖv`Ӳm r^n*D-)"qN=7: V/pDPτf=pa&Ķ\^9u,` yXmMq Qv9skl=3u~?KR?$Inf|QaTp麛ݏ'$MZtlpG>Z6rĭGRQ#ewk":1 7OHwSvr'&B Yڙ&6U `ǍŸl-V8WRT)=3YcET8=ac`B#\r,o횜x)X`GoX'9M}o)q ϶/TmkE MxHѧ?'>!'MVxJN][U*ҐSv ch&f ,,ž5h%~POH(C[w?.?ېFl˚KuF2ElUQ7>:$MqU Ntu,>#?*aر8 P*@y0 EN+&+Vd`grԫɹ:Z:M K](9BAN+s@Xt\>&@ժIPג4ɯn-=mgŀyNZޢNO_Λ`7q,Ii@ .,aJ3(/ZO4B` e܍79(Xcy'߬j@ ASP)Lxp+\:AZÅ* Z_C" 4$<Fz;-$5M>2BnНuQq_0l 3i8R!JG$U'תJOFԍ8ڏ2&pofY/E\(j& B-EA> *. yq kJ^rvs 7VN5Yڥ' SBikh]lHЁ߾~ /(N!8;ursff~YVsە1=\_SdV^u}K%o~qKYzPײKtPp.N Oi`}W&zM@Q/ ̅vƼl4z: q_"_xv2/']>}A{a*[gRKɧ.)[x[nfK/s<[D ^OIAʂ(ߞSh9BG7pI4ۧi"JUs[o >+M(NY貽Y1ON/zHHc Π=^ge+n @+XnѸ1+bD/1 ƦhM1 ,zHcV̆ ֘ 3e^f[d:mN@}]mnX ws@baC? *PQԱ"!]+Oh8MĮ "+%Sa1z%#is4Ɗbh/i #ܖx U*da4Ýq+J\[;zoXk\fBܓR2M-4Oo "Q#2z0cO ۚp ;ypJ[tVmojMEb)5mcP+ adab֯/e)FZhزw?V}QA7P\#:oBF%N/Z}ys(AH~<|zqR+b'63:J"{ru[S-y>b{ж0եa3)kތ&"9ؒYXq:4~4Z9Z,D:809SCO0H~;V((ȂTM"@{F!C= bW2vQiTKR$ϰ~hWeZ\zs{C?C ib +BW%5i97 `IȕFOMOI=773C aD]BuǠ5`d]b^$i&# ;a8HsYT|%~4ErM13Ub'b4ي 輻! ]G9_^,S^42 ^#-bwм5)  mkŵW={;ʌu!!'{r+mji|r r7#~*p2kЉ!qÕd P u qF,.vj$kL4KhV_|L|`J|'W2ljS?XBl+5XiiJ<6rڸLX0R05 P%}pV;;hPI$>L &cs[;^6@UC)ȇgx߭t9nF\0:5s.>ݍE^ ,2*3P޷pZ& 92?AGEMf~i7nÏregZ+͘nPgAƔZg/Dvz0n$-:tpH}8%p< {]]/XT[닍L9В%\Mt;)J\Xmܰ\+d vm9FɛOA"bQĐ6h~YXHP5)`}2tFU L3#:I"لPIy"0XD43"E: ,Gq<<RG:ϧUo]!P,7%fo/b\;"-Vִ(!@T6 ,5D?3moݎ/=Tf;4ܵvT;>kl5'2+!w(ն4X j3ˀxVyMJH/a,7}U?K"^b!кWS#sTi0d.9)ka'`"B54hQBk_a5qS~C3Ix/Ji-surqU$ +$9By1)叢Uߥg& NV엟y}ќW5=2K7{L>p0[2dWAsp!eB(8üy s%e'#`@ĉxߩ.j ھi[ߡ`DЪ\`G1ǐ@u5iݵ̀궇A3:5Qfsڧ0ÃE'IkĽ99UgE k9ƻ{uh@Qvu.T,-iə|nqn?>A,e R۾j HBie%4rlǫ@ [y06lf]$ko\"wQ̉ /n_*ųN5WpxLL'6΍q?wpVt`O}^TX`iej(5@a(56\JߡoC21h>⬐P|@K)z]6j#27ZԋqЛVPc Ss(UJl()s.[6/)5(I3Ekt_( ٣ɒ8@H:y,!|IъpWH:T>1&8ar$Ç* }>ч,]^A[>\`-&knxSLI"9F9<%ĸ)$,oJ{;/ݿ" 5/3oG2}z6%1%2, q~(HЙ^`][NUI8,Sc) zAk$bW&WCud{%GIw >Ŭ=KcQI/xgR ]t&h0Q 蠌^ϏA v9DT%FGݯ*+߇ddKſ;/_hk-κnz(H+V7>&֝edK7_iR~v!sdP[<7"pʶ !@?/՛hH]zD"#30"+- $>}( Uzr.d3 -MԟIb8%C 6C k];SʜE=ؤx^:`]l`Y]A{SAl^\ 99s7H{VᬉU$j(Œ@iZ-rΈV{s( a[8w&$@3M/$m :8P<Ѿk.V,vL(n'YJ_g7*r#~CR#ȶ^ k]m| \,Z g7 O%2V0K/!souO{%_)<䩪~lMaԎO2m۸Rd3IG΄چ $bS\^wE@rb'6x4Jd|7w<X[ӍYA qwEӷnwaԈFMhvcRЧ] %LF$$:i(9=  SNWkasd4nBٶ gY膑X< } $IuSv]OG!E}sSZ0]q9 &P(/<e(jU|ƆKu0׸!ݯGԣSB˽:ֲT&͹* SnP'Ьueon7L_#89;, QTWdU (YNPҖb_ (bzʳC>LrD/L÷G vi0-Ԡ %$M=w-T+JrY]M- 7αН_.#@9䃊s->~5(Oa8.cTs[xT*oӾ9X2&2'֛lRyK6] cMqM.&=h#f|XDb/Ӌew0cԴ(3F#h?gJUt#Ad4{O: :PM4 ((1ʲW 0݌!i0 LS<|OdWɰ%"6߾h~ ! 9)3ôt/Z/8vA:Y6AQ1 B և:/$^GC3# WQ1ZHG3lɪN[9#@ۙ*:9诨c$#vB^2+G [lMd[EC|Ñ([Qv DM<v |3=t5~={):YV[#3ٟ7uIk^kՖ1V[Rx߳$:jI'8ʤOb#U:/S5c<2`B3]*-} n$ mN87ޑQ8;o+:Q˱.X@ֳLuh[@5}O%Ht[^7EEn`c-^@۔k%޴bnWlD2Iy=@zࢬٕ#$zQh}9Plm] &1(B,ArLVkV*0`h*rCі=k> #pP7KoʋoF8 NP멠4;L9 ^ѬQжgj ~QuYwcص$3UXPj:s\":ob=yxI_Mdv4>m6QiAP0:B`qJ s}(*ڊ܇?o:2Zߵ}b1 ʛl } dDGk B ľQf)PUHv7Z` '* z%Ҳ}&av__ wد8I|7.ɟZ*OOiKRbbcf (U@vУCnkkB P 'Wg72KP0|꙽LN{җiO8Lc%s-OxV7'Lp@ H'Ouae=Y9Px-m[W22ÐUfEYXo(ի'05sVOSXsI4 *3fH6|^Kx$I-wBA8ŮIc-̅wkŮR96$b88Ц$mϋ5̸QFKX(5[-aFڋYfMP3w<1GfHSFah܌HͲ[$NE}I)!m}& O5y–kW$K e4rvI\M?)EE`GȈ1\ӊs]ݪp@_AIhaĪ^+ yY;n=~%"c@,KW5|; CV_*B\˜$ځȱ/֠?04SVdqAag(U^%'Zwk߃ľHvY.hY„ˉ"U>R;?h&k*}43> ߣ")9nױYYR nA QTjzqR@Ds!WeG K(WD{)M/#%g/#L$*q=Ŗ{Ř2u\[_ XS<=vǞ4O]OKjۅ)qe[C=TV0o…$ !P<Ӿ)KSU 0":'(AEN][LLl՛s%)915:2ߘ[?,v| tcf+wYP1">[!dbz150(#7ھ! > y1R9 1u!IL|E[GޣSJŕ~_Y秫OKbwp& +ZK0RoFVG4lS|Pqwm6k ~(#; <"8{ԕWn*GJX֟u+/-=8AP,C6>3U2eķI'1mL`jኳ춍|Lƒ1,<%3ٸ ;C1<|Lw![]l5&}c|@rO3F0F ýR(O'w`IX* RjM&#B?AF+̥+ VQ= mJج+"&ypԢGYbg5atJ:9~m߶ e! 6g~r(7PUc&I"53XlM$1hUF|G擝o6+{wʝ0jGo`UT-#l028JaAoMK^j5 MP$]u( 5i{ϛ"I)z#6/'$Y⯆3;9v&_>p?ܼ2 F9pͦ=GȽ0ky9-@IJxǶo~Ǽ EJ40fϨfDMDtྨFRP|03,A hNX?nE(sj=ԋkqpzs#&#a I>59CbCT!{ny{C+75P/Y}w gt}e߻U"̅HO+U|@Dhm"1Z3t{OD68Q[QؕZ(FRrSGr`Dm0Ts)8 X%2 &[i@L%ECXe'Pƌ˦3Tӈ2q2ho n+r)AƵ'C=X$Zmr71(ޡaSed}މz񬤑EpeTPwn:#ԆVx7q@FUyWE?ZL`xNv/PbF4mFCG4S17ri.Ze]Y> f*GlE!I-^D@2.ӛVu L.Οr(Q+d('D C@x;ta#Wӝ 3aXSR-jZo. \gm ?rr+nw'Bvԉ.JXTa8YBx=6z'Z|g y;{3[]XZr/9[J3[SB\v.{F!aaF.&cM$- Շ_ qF>Z%ϧ@L{vIi ,e?plsT ӚCC-ofzz @X/v6/{oRd{h~\ Hцb47n" !(GJ>vI41Q%aW2eH9+9AAٟGd-4S{Ж̼L@F{;8ctAY od2q/y~7>_?"s= s ShA. pP}ӭTI6s>b۽_+4^sϛ^:7Fq,η&3%,Ġ.-tw{~%o9:?2V]W`JDK1:kN)\aӑZv{Z @4Ӆ;&zu. a-bMⱭrRȀ|ӟcy ]s`ɯJL̥4=BL?jt  ʼ3&{[2X%Gn"KV ,_.Љ!{BaA~ڎk )V^Za8ap!J=e1"vӡ})rP>^r&2bAWz,K\yJw1_eI̮}-=" p9=U8W9dYHFlU~Lk]7DrS=4`T %!խzCs<Vq B@pE(ͧ hehsSPu&svE@!1é͉V2NgQH;$4m,ѩc1k<mF׼0Ҋ{妐G(B@["8i|70 "+x8dz*isP<5Cb:5x8pI [T#3vɲ*I}eIb2 :#PS1[L^ 6Ơ%~{EAN{2JFhh%9}kp)/kϢ?ӵ;M4`J+a\hK02{9}@QqRC[ۇnd>4˶@4Nw돈Q%ç$m堠cC)3#FjcZ4mq͵jdyE:ABᰉ%x{847Vy[-3.ubdB⭱Mhxyt)`Z:)Or1jzIs^ OTa`P㱜R,ޕpx#{5窗nY[sIn$Iz_r`)0 l̮H޼7yBO,$K40c~.t12*.Cdhmkeݖvz0EDMAN`$|8QQ+w 5p,ӆ@x"MN|J¯,w/[QDS|[y$\>/.Ja1űw_B I@S83QIW7" Ixu1ۂ't4@ ZSeؖh]=sh.!Y5)į4;AӋ BC-q5[[L~h1RNC47[u欺4@N%K\*%Qe7ZC2Cr$g$75_`}'N2.Uj-gJ@-H˓IjܹSEv^F0QC[\@PnC( 0_&m#酥C3m;yR3Uɤ< {|7Qr ^l1 ,@3sТúIߤ{wD))[)juWhC5;U s &>fzpbeXW,3I<s]pu׃|m N+ZՃņ)1扗l#!FfYm-<埪Izef[y2ebːB]D:hiۊs^v 5l8 jޑ%ɜMq]|&;z0Ec1 olcѨdΞo{H ԃ_PN+;w]/S=E/{RfapZu@~s)Sq6tkm,0*N*}[z㮯F T龚 b>r2p(V5OAo\njlZ"{.-sč+a&yMF@eՏ (nXX?+(։p8pf_26bPH =/MԋG_u߹J%u6% (u}!T}B5`8Ӝ=,r /`^p.:}rDn.+kM8WNF )0GV3c4|C~ `^IvT||t6G犓ұEe͸l?RJ-+liLQT靇JңK91=K-|xQ`^7[ n,eי27q] `T˱iZs%|WI)haIn.*6J#} OBA߇ld!Q6:p`HYuvXTM *xB,Lgxy,d}8@gO 3?$Swg{w.ش@v Z$aR tP]GRf`qS/.`O^wfXIe 44\:d~ܚI4/uc:/-JeCUyuք]*`Uya|V[LDJfmen!JT`w'I:PC*1ϓhuęLTn8qʘ'\̾" j&9"()ӵehrcC<ԁ*f!6O`_ ; UW= Љ,vSșmFi4cc"k7uN/P街KWy&w+pvH)m])Pz1h1]XyE,'vFH'.Y}`DKyf3CsNKWY=z_Ř&HAxS:`XMTe./rC'L߁U; oYqqK@~y<2{8b|&7ĮOHG$1ζvXB!vg!}XZ-[Z⨲N78^j6G-VVUߦ,%L Q FECAK2E4`K_EUt9,v:3a9^wBJkH0'O^m,9nϡ F%Ӎ*Mt\ $%T7}-K 5ܻhd0r `@Ý,RwH/W"L?@ ק\TVϯt,bĀg+˪ޛ 6=`N%36z`">2-Q#1 6Ȱ.:(!Ɓ};i ƩP;]"^k}v_+ks3 jW4%w궎:YmL Z@79*"~ӂ@6MZͰ;hbj?C TPHw9J2Nj ^gAOweq>{E4n;Lj2 '&'o1E:&6m}<8hmjFq!%Zr@D铸Ts6 VԹ\AmVq?Z)Z-Ʋ+3@c߾g 2׽o2&}ODIW 2伮e!xb +~\Z~b'!!1Ѧ=!aXFxVeĩ{Yi~nЦ!S,Ӵbq 7kUqvC!p)u_Mw.˳[?&o?@:f=e$]}\3hJ*YY%%Jg^8>zM|S7{U*9U,P0ogga']Չ!fR om6 /T@)/t A9}^ !>4FԤ 겋&Rʶd'#h9z "k0l%aFH&"qY{Q[Cowv#L%RM7.eY|`4LF"x|$M#kM*ƈ[a~3ɉ5MsOH@ dO, Ӣ8^j}7MQW5!EԘ؍2h)uYSȇ La @h߅-y15J`u=gT?Ϭ91x1^_F,_QU-HB9-/ϯ4#pW:/_L^>,BL҇ UʨJ_*lɡ^~VMR6Í\g=2< -uT !ߴzq}D{{ JlMGB1}FH8A ;*u-,|B a:+W'| lk޺KV}ƚ6oFn.exf vb^FDkIC(5HJ08tZ yVE@ 2}<#=ojmK0?W_>eg2T^!wu⚎OI9;G(]ӊW5"W?)fm/d9[h"<Յ4y&<ιi?!K)IGccXaW/G5i-Scm;QD฼%erJP8#o9/4`{3|F31$?&,I}EŤ R)FROH 8 _.9"״kCkfyYh!OlE3xQ7r)1]bߥTç->Xz~L@6趛xR Y?DaKV) LF5E ?0On=y5 U0g>.Km用GSP@-Owm??\IxUD#Pv[֭'(dF2m _i[߽̃uLMDb X\`K}(9, $uMkٌB50F$.㸼 7`3x'ٚ-6>vDr >X>%yr&zmJ~D8]k܁߃c$bg5F:.gϚ˨V/Ԍq{#|qV-|Ҝ(L%T~\kfF+90M_p˴\RM,`=@y%Cqqlv6.yY.m!ڹφ ܙ%>q[ /-XǨpd Y_DR eW-UjZ`_y]gěIO Gky&b /I'oߛ{"%0R;4+SY8u{'Е]%\P:iR6< j"GC&JhhO%;iQO:h2IjzN;Ii5D/ DO;n\d&>mٹ@iaóW f OjVvMa},@Ɲ{ 7r 6١q\F&qnF ؾAI|Y݄i*hk  RDΧ y^h M#iYjƜ^ٺn͛)ZúoA Lɍrܗ.議"s6$;2 i:#Z9vyw5wbT:`vnƚυ[ޅِaZז)xKs @DZFv~㰯БM-HA9ݢV3)[ nefbʖ% ? )-3ژy&&y9A]h@Z`9H Pb]QOaYۗztv{Z]?ѭygI0JlqIH2/C .#1 (+Z9whpIO|O9NMY!8$:D!v]IOP)\ :BA-ٓ%C)pjsP $ ]v^r2lUj!ڔ(ȣwG{:&Yۙ3/_qg49~AGQ`y0331]BhK2j%Dd~..薶RcRyXJ8wX#9dxJ +$[*$fTiD/VLԝ}%JAɾ[ēImB֔ݝjTn {솷XL,X-̼VgđGiL* Ԫ#RV͑M9僎 ;Ʌb*̀>NѠ =7 GQ:Y?Mח{oʛpuѭ-3b٨եҒa7%ڧ~d:E' F8,7P|w{~t4kãz>;Q(}7ce-?>xysuDa3.’\}/T0aD3O,ʑ>pm_vwM髰0a'n+V-a*CbY`|FԓL?B⢾:]svWw(M&s6P& >drf {WpB fꙛ\f\p.{TH8֞QPHNFژ_hQXʁ ]m0+IJVU弞 M{C"?) !!e r-AYUt6?o0_ p~Iahq6#@ߤ׍ {-s:Q^~/ |JWNjh,E0+ypU"gQ8-ܷݗ(C G<9+YN&L(a\v025rm)#0rVkDoQTqFmN~k/ذ0Yȭ4VѮTÄhFul~ 9$Ñ򡘔7ai]QE 3"'\+Q:J4A#ho.yGTڗIyu |Rv;ն1qBi3_Vj=)6!8v[o$ef^LvZY;@˵0oV,cM`z %P>)HY+l;nFłBGd,_,|d#[pi܀o4鿯˵VGR^*~v$#E&x`qHCP&t.WVheYŮ/o0u t[ D~n &c*EMp; )ZP%'LYUra 6ҿjyD8wx G_}ޓD&[*\jGw{즙9/= q7h+ßES'̵ܶ@HmZatiMeAB-z7YB}"Ej"Pd rww͠NҖ&(>ºyҞ 61e*1]KBMBy[P| 7TeK:;Q g䈖P.x!?Y'O-EoCƜ47FqnBGh?% ͜ HI xޥp&h "bIqpJP`1 [FGɵ?h𭉺гnH[&nP*K#ޛ=}ŨԳGח̟cvF]1" D h >#u:EFN}C)Gy$W@뼶Lᮏ٢LPp.\8w4$ 1<,iˤ YX=}0o Aht3Z,a ãs3V/6?D=]F-,k1"z^N ]vG(NEl4I9RŇ~%?Pъ]RMۇ}:/6\]e*r89bt ]`Y _Tڥ 6fLt>a!(KP쇇1W>,zjP_Lg.4aR!n~8sC m9J4?4-u{Z*:h4o 3 h 3«=rWz[z[O0 DBJ A ^tYRwOn0'vYPJ®> 2ĴV=PZFtת//] E?(UC]dJsWi%JOb@=m$*UB@GriqCgƲ5xxa2WŗuDStY%L+ 3]RLX,ADM2ZA5[m<.f`:,erp~HC`R3rI.GW)$[3%BukC8e*ېLiFqb i<"kAv , YK(߫+bbc4P͵=24~`\DҮQxŊ?grNb)Kȼ@;[[tv3/ 4[B )ƪ ,K Dv uN%a{~`.9-JT =ʳ , cfmfu@w H! s;ݍJ%C+b1x%jAz*u`}t`ˍ1B 4T&MۖbЄ@2` Ր0I O|ɩw nZ/1yqkFcy;BGK*Y`HE`\iLzܞ&4O#D9bIe%-F+qw4%t!0:/z.HpOɅc"πvǺ0Y4`! $DC{C>|u@b^P/L.td{MF]"܀puCۨp;K|AmRe}ʆwJI4{a$~WxbTz 䔀yRA7Vjj6UbMgf1/LƱΥlq/gTMcgtW7 ׇj-.;H.V TC|7AFa^Cyc*ǥ ,RF+ٲT֤'7e(QAS];ߩPI5U|ő.5UE1"$b",g{n"{)1k9v*]T|nuX6yъT9(8ŨSJ3gidBcc_`h{IҌU ;%*5FDM YMk#Sf˷1l^}Imw)z$/^c|#DB`O,+ng'lʩTQ[D7S(2y5}ʡ抶o\eAȶQ4&~8ǬZG@Bd?pf!}MUs5fz0Q7o+U·\arh eyd=;Yٰ ɛ}AӰ*=m;a iWNV/PS >@˾` b}AXi?Nu{+qO,AS|z؞_OBQzZ# xZvwcwoPf, #f^ZpJBⓨwaG #s!16ڥ[Hâ4Чh .>7\SgL{BjޠTX^\jH(i Ț1} c!`rd[H1"$%RbD1` xk`axPt7Di@x܃x6 9ީjJ1h3^EnS )by#(J 턻pta<~ 2YI{5XYWUQ]HI$~ [V0 =:`cbEmBE#WWOx-~HI[P$SXUX>jYu1`w6udPql3/*!,vc [VA BTHrҺd}@ؐd4]"H2 s*?&|=Nd0˧D {k9}_tQ+98L~w&w,tnFJÊrжGhmwO2G;CE"eXٖv8@ ֢e/5{dpqIQ,.%S.|)EwWکߛrbɾ8 -G07lW/[+1TiicG`6|1.r' |EވQǑTz@gVzN6T6ԡ֥_{PERa GlT K*wñZRvERX5&ԧF#|< Fᬝf1#K/C/iG킥@ Nز 4_r9Q:'dbkS֭$Vfބ|G9"(U`ձ`^{Qtwv2)2bAu3𫟢:BoܜT=GĊ? c145#?q4%̱R@G4xTWŢf(;4?Qj`M4ht.0ε?x+p&z_sW㊼% 2C<ьr9 ށ'i 3\AV_e6bG\@rFF)u2Ɗ*PѴVLET)&4F6bۨ5+f 0fNwW=˨;[Y8NqtwЧv-Fȓyqp?^fWw{@#Y\TDYBj{?|qódU,#6Z>~+i`0+(Y.by6l%Ϳ֊M5Sw8 J(Mn/zYM%o,ˋ$- <+;M±c/~ 3[ h4!+K5'U>sҥqƗFdg=\[<[+eJG*n 1k dzSmtThs|2}QU]nfVPwaIC\Na? jl18rGlє kSuD.k& q `LJH_*x=&KEWX^vxLIG}-7zWz`\=Tj#o@]4Re\q =UP\/VoIgMSM8A#N:mѴ8Ve>ASy\~u l 6y |ȜXlzaDmVT/ 萦)a}S (qn/*Zr\Fcl}㊾8ZM^RwRavfK/Mn6aZ1IXʵrH4( YaRԉ.wx[Rw%Bz -Т^]HUAx_*p6pIg`?! :q>i r}NȩvRf?YXced÷.}h96z-gw(dnqX/(4CP1"o*71BIX㸶G}mԋE2r@ҩ8N;ntC!<4c ѕ"7D(t2:*NDm#G*F=޺8 ispOk`3b'Y]|;G}q}P4$vlȵ&Gd]g6l n7AGrf-Rup}e(a^/grsilMȜA&$#8o J~!^Uҫ/10lkX_}5ᣓ" X f#7 ҽC(7ANO1[9f%ׄ^ q7H|! \k!رdݲZ(GڙU_C<]8On*[w 7xw$_+BKAn3MPH& 6TtQ@@r䡠).{$i"]pP]ԁK"ͫ Ѣd2YiKB./sĮK-tKQ`eOc"ӛw>6.82 X0K#FWNH4{^9t [nvE;5+QY mr3!a_ŭN_AHӤkjs h@X`:Cw.;zNhJP; UYg׀SI SߗǢoƨ^= %;f ՚1>#eRo !l,yPm4L‘mI̟R?髈kB֝IQ'1:)>mW:1b#'"K^0x/{eSP>Twdޒ8msz~U3twqKN` &D3wxw:_*Ƨ(_QQ'|v N[Unc }CT,ʮK!96;1+B.NJo=6,4hrZfyL:8tF7&bUSzKi"0ݛjԚObV}Lf`j!+QmKp 3I(\E5,1P['wRv|>)rgDK]FY7~m{,D"Y:;L69Jg ZMiScYRSWR'q$o} B5o\}VJAqRܽ0V[v"2`r. >o)tA?213^bnVX&lb.'/}__qJްqh/d65?=9 d.;C; ,N}2B" FZb5V;yTEYZ摸vľWKaQX6k>u9̢Wt$ ײx75g2$FNKڈi'UA4$K+p3|CED]a۽ {IW 9lã80(~jkLN'k5Kҫ_ mw u}d 8FY"SĘ}/W.l:Bf 9 ih+r+"Im հ[K&-T];b8'S٭lp(2CN28 .+|i(OBr7heQ{K c4Yz-MbL^&LUחIv?5DUn߳]b_I=6w\g#h58$ *=xʲaH?9(p{!އgtpO `=N:Y}IDG$t=)c*/YvQ؎iI z3 q> w .8]vdrmTC߀x3P3X[rt&3R. #/&t0]w`*W{ Kq7f},t5J"'2[`U1n*mjb/rвGxTK '[i<M{ۥkW?"RdRNC:Fb}9REp83FFу慧Dyvgw*%㮴< (y2Y\%%sG3Ca&xmWU"I"ijQ&;S@%%c-Xx9yBkC9C瞁e?2OZ 1ǘiBE>y\/AqcUe6] (ҋ9ۑCɣں)N92 XuKOY#Tn(k;l %: ^i4p_boCY&l Dr!}s n/IIMf'A[Pâ?OcoP {.=LӮxF&\=Xe!fܨiM &M;nBPC6Yڶ;(!, sfFgO$Ű`f sEpVl}~)2wƲ݌,ZskE #ɹܘy d2?KB"B OEkxiJhslk57! R"%9 0IZ})Ń@g7ֹ%flEva Ϣt}3&?Ejww)3t=aB-q@@}Uc@4ʒ,jhtvRۃmf9M8~5:X٭+Y4HrmXIQ >A%duCɣT&k`0!.5i;2ܬvbg Z0 Eߋu":MLZqC?&0Ja >}wl?,%%Ƽ88lBgjR0tc2Ґ E:R 2~r:!SFad{==~M^.I1zlte׳Nĉ~)Yi?s4G8?~2U/uka. )'A-H,# )zO6{Q"q,RZ[CGͩmB1#D/mz^27 f[^ufI< QB7 Z~3mHو~KZy٤G:(k%&N[0i_ZӠw} jCog i@Nse48:Z5ɦҽ@nFVi]{ ֋˛š _Ljd9-"3ϫ`mӜ\tu=xT$5Y̵VzذS7Ӽ8PfIԡ%pe/t@Uėh?{ IMЊmm[G >לa؀NQLpM"z 1ݏl!k.i062rifjQeC!}RԽQ5f-բ fTNլ0ӝļ.JW=kWCj^>,zcO9oy5D6R^WR*rPe]/䳽e3*:ϐjz(\rfdJN,e\OzL`]"@IzFt)uVޝd;#)y j(់?QVULD7 B;@ӆc;[I*dN@oQ+j-/!3;aƠUs=en'\ 0>]e(lHtbE=+.ISR (ZQ,}[F#ŏhGS;h}6m7Qc$:eQ>czn|$ ؟USUV^t[$D嵲f>5q{qGSaJ8A=@A-hW{4gi)q'7~k0#F~v)l}iّH~y_t+h)6`#BwmYϞ!F⦠TqT}HsfqybaqwY)2J_>PW0;zI')~.7}4sև9g27',u j 8Ze-1qU<2lbG j=vPR̚M/pP=e0s9ik.j`Idr ufe`#KURV+O]bI +D6 ] өD| y{::- sm`bG_ٰ0T39DA ])y%/~c6#2d$t]1 ']Y3U} k#<$⹴_+}a֝Hr0 LmuQ( xH6p#K 2] O9"QӽL`FV9sVSyY4J+.} 5 Vbԣ jPȻ%WFtP'̺>W׌0=!@!ā;o)Y-MԑGP G^U M31]*ݪKkpFfԹyWȎ4mR?{b?K'H =Cr\8ͻKc[:CtTHMԦƓ6b/avW$9 J~ pN: Y 3b^cL $~ͮlͶjb .?*7gm \S/FċV={Cs)62 ݁ Eu&lg 5Y_nP)n1ć։"̶r]Ǹ_im8>2ᒟ<~{IP1&GU',@:RMyA"P v ڝ . $㺲S]BLN3M<]ԉT|W iWOȕ2_3;y JÏ9Bߧ}"{BOf3-} ? װJ@[(PqvWtIKiNvcE̕so?',4Dv|ܢ@s[´yteG(xT{feq'DŽه` f!HŴ/{Νw!R1R~?rb;fY/ïuS?^@{7NcvxmVKOINcu5iYw>>zϢ>N@ƻ{x,oTb1sP Gx 6 *ʨ=~*=Z!v^QyM S}HrDf^o$}^ƥ(4!e2/?*.O?ЯO^SKd% |&M*&K(L7ZWM @Oe{ګ^XG<*(&M1̾h1wɰaKgwMv2 ۔'I\7{C +̻t}տF;H]>(޶VD: "X 4*W, oȑKg I}x3 aBj WVvBJ>MvZ1Ig/sQNL +^6ή]ˤΰ @zJq*vlv璗R>5$J0OH̄+;3``e`D:`[zש@(pMt Ȣo>k+O tT$&-{:sI3>Q#ŠC6M5a`j֎"x̰uY %&Z:fpF,X?Fzds=ɲ@.d.hnD\o(3F]7ȲjN%!G2Ieˬ^x3.JJOJa]Hob DʞG*~oesoH=d }$mvx$A\ :mPŀǭ?il*$Hʳ҇9LvnwqDZibI1Drp=ŀBx>_6:RvA&(׳aj9x>\[RHJ|ZCK*WAz'C#Cm O$ZGw%RK`;dF]ǞOjP5F8%}y#T:}=ep[x07 yZɜJɣD;Vx0Gۻ܅xi3GGIʟR^<`^V-7wG5gmtt_{2buwգ~; +;>APo( <`dz| KmJ9.b 2ܾ7dMEQӔZ(ZD,8/=l5Râ,Vږzl{څ3" q^FlڰrA+(.by1;$ PG@AZBu)7ƞ2~?o{tWRs%>{#Tbg,k`'Fv#i辷,:ua`P|`ԫԙM/H$TKőR B,f|Y} ϛ1Q7T6Jx!VZv1DʆA^OG D7G< p[l$cIMʳF޼#gX|n ϫxr[+DMtR,Q򐙂.s?9؀pW&k&$`G҆L7Ū(:"K{e7:tlrbJP[^}7іUА4& ԧ/WJ,͙ b,#CSw9!N-ͧwUj $T:mh SqE__B vuT4Co8~5JX"nwr5"v\nj_s(~R!I6~DwᢵHLS3TKۧYժvFA$%5ʶـFmzl`h[eT[X8Uv b4F7s7WE_T aڞQE)d:d4׌py !m#p  @}| e~@{J[؈@0}h<~VHY\,4 ,:+ ܄bPQ34֊/7^-f xz/j* J( m'"o #W=ēXx#Jr0 (KF?z.Snx_ hؗoGp,ʆc*4L0:>vFs $+VWMQ@M/b WO":P6` mܑ4o8wD.,0bar=ܛKg9?^^ptilerQ׮@L.:X`߹6ovcNkl: <ÐByy('Z֐ʼnY[y3(tP6Kg ͳʭfV_SČ ASC&J+IBM;xa:3`eU0XA@wL Uѝs'45N)sv!r9kq /Fg{WWf%wnh|| ܎ X$dN5t waHZBWTod;>2צc({4@/yStf}'56򧯾5&w)A_sO %('/Q0}q_1)r2?سZA"E+X'fR7CG aK. ^ǔE\,:a%;x̙2KFЯ'+Mo*po톱V=̱&%bd>~Lft3̒!ϊ]VUR͛&P!;wdo_!l{r4XOM$,fp[[c&B>sT(T?]gstI< @e9RT%a"6(E@<{C!+Xq}m2cbafr1!Klx'-9Wz@+g] KZݡJ,:l&(ow쏒iWݳ3~!fs5Y[?T4r.mLTȋ5aݘ7;N0\-HrtÄQ$3+^{/v(L SMt)f7JPԚKG@^9f}%WePm y L<3wTI=WN?K+:*Ѫ tN#Rᤜ#bV(k`O,\[_T)w_`̉0scomOL7jΧjai|E'`YZE,5n@ zSaQrS OJکY߰ O44P8,/)[J-|SY2ػ\bh!"~sU/{q^ z_ ~tޥ&.+X|>*bm$lZ+L6Ȧ Ѹ"ܤ1Z\2:_ƞ=\i) Zy1Ut%. _uI̕$Gs'ЫbimK:h#y!~\|u\w©k4/k 3Ef|O_I $GJΊ,* V A_` b ^9/t#4I&,~<^[W$cOq ) b]hBJ3ı[Uȭ1Ãbs|X MP }##L_٬RX.09QS$Zop*;-1@I$RC)6\I_{m>ZDF%&>A, qJx]5_1Y MU{!9}pPֱmD(KB?2lZgm9B3 4.h6[c9v;wNdOeRSκ)T/8}Wː:k5cXe2 dAI@D3)fE2H^P3E"GR~36-K$s|xX8lmZXNq@bw_.G$'^M yʫL#)Gb g[:T4P*ɶ$+eZſ`#̕Ǡȷ$  UTҶlm|8 igCEXGX v5)g]SaY-Ah83K}PrM睃šEΔ  ^fR}g8B]Gh:PM=X(=+or'd[J>ǞxpYЙre60 f"Hpp|,GO(*cʰ@uaL9Aݭ6lXl_jxLs+4^XL*Lވ%ia dw 8z# ZD:RD aZ~](-,=qiS#!cM[~"6یJ./K_e2`мRI&&kVrl+uV Ba!uE4y\ZҩZ倵eG$XtH$17^F`S}} }6„ rJbTvgmDOmC?J]w_ͧuB!he `QĬwxkH#;gp1fn]~+@k)NP Q֯2 F_Ucc jphe|!l ,zoeȦJDN؟j C3.*CLHdz{!_yJrKyAGVBš 44v.%ɀJ+$Dr٧uoI-={Io>0LYJ}`VH< wgQ9)HǸ_GfXy33u!ӗ]: N}EUݳ5c=Yi^1n1a6'o\8Yh{}Jb[;m@:k B+ւC`.0 $'cYxq}1+s\5MA0cANґ[yzlV((ӈ>TdV yŋ& )NQA=^AZ3JVVJ_?^&tnM"BM/*l捼ꪞmoO9^T3NJt=c1Ӱlszoy[+KL[c9t$-#*j}Ԓ< IĹji.vWjeIZS#J=`urw>GT(CT+QѬV;{č{Y-0P]$IN^=ս}}gFVJy/m˶.j2.^؉-) j~%u1J=j3Fo+Tv~ ImݔjZNN`f{B$f>вp(;.~#뚻(mY:Xq@' {r^nW+DۃR~FEY]T%]ӣjB}DU.YQMzFcg9[1fb+ωШ[k0ŅWL'q-D_ވ3;V/^9 ukgt+ڃ0wЋ6!0랖eLٲSie$WDtG `ρ wz Вy?S=Y8 hgT.~5B>"Ϻ\9y̼!UsK?ut L >o3 t&L@ށRw\ժ媦X7@]Rt:Ǝ:,)}Tft ; ԊLk֐w*>U_wӲR_%XŃPP36s)`nnJ>B5ۈXUg/dߚl{nOVŸ٧r :Vk:/\'/oʩL!DcϪvٓ->cb31$փ#vkA,l);G@^t ,J"9Đf 6{z4e=%/8PUm_BqDz9U\]Dar@!(2_PV\1'$;Sm=D>hgߗ[ZmE M]sy-kW4緢qzvKh-*Y* lVY]ӉÄCh7ˊ>\sUS8)Q_\Ss] ^2h"o2{ݚY$U7^Xޯ)'L4Re2 w({lu͆m!?f27<>,i(3z٦:L,(A\|S#*DkT'`'zX$K.ęWl)(?AxdG辩pbɻn<6i=%HI YF^컔 >࡚7A¯ڀ⊍5s`{&bf@vF+TT]pՓdz[J I0 0[h&dG!LL?Vi9l]4^BAGڥLuN[I㖨CxNp٦y N8öׇ{-_|{dky'oH'%R*0tPaxW>gKHW"ng_z1~]3)nU;`͝wր䇏j|d c/ L%{oROI[!PG_nT{'7sSVRGY]iArf ٝN[L W['O>wcK@6Ĭy︅pLaypn˨2~T qS]~,&&J?z`Rl; w9rRs@ǵ@~eʊP_o{3HUoC֝IّQvE.0> *']s0%KLT4CI0&4W@,6H"+gr/QϽިRc7Ct\}iɿ%W_3?O/$4&"<ǝ0'.o ,Y{ Nu"Z>&Ui5`y"fiZ wCvm_uh.MǪEa1 S¥ c2oiQ1Mä5˚m# z*B'-Θrň5-B*@LnHңvU/9,`D#xw| @L K =q/82aёhWP R}T=: *ŬUCR͉wҶ:a؋Q~cVS Es-# lF.Egf7zLSԓ @_W"JGEk{0-,1嫸zs;X6WqKwy/ņ "3D" 5zM6\7/Ѣ%u k8^`F7P+78ZTSytp忿sv]( {:hJOv~. jnpڃhF㓃QOԌn}NWeĔ$ghY1bR|@v(b *~*ʩA Y$(+d*>GȜGflgY!Ƅ rzd -XBN"DIU5~-F]QgdK9o8"z6]€C"` 1K a~1,2xRKŪ:xtFU2 F1˃n{-d tTX+6WJjv f)A(J Ŝt>PW 8c?|`<}'1eTӸ{g_"o5ETvBc暄8䷔ Ѓ<3ki{q)Ua.Z zq˟NoN{ G0z|z[0o3ў(i ; (<}1[uah&Be)s,_UY(d'uz9矢eaPݎPm#ÿ=Qw 9膴NTd$JpG,5~׶c$ƜC.[-:*U0[@LM߭ucбx7m5hҽ14)I__C_MzѰh74Iʖ5a8kP%K9U ħg!H[~G: _X7*O.\8/LQ~\f! @cG7Ctg,517g֔~<AGbU.7=~Пi`5B3R69fp2MOdY8sT4;x6?p#>5\T [PuIֱSƀ3}/˶MO'@c1tf# U4gg.sprua-nm Z`G] Īף͋^7oظ=ҷ 󛦕vc.c܀6-ݵ*<gEa |~nU@rlc3ay0Ȅ/`7_hK1̊9)k>WQZ"fOKJƎǧ+Ey`f#JM'c3\u+| QWLop󐝎mQq038pe&+,9@V)^q%bn԰#jѿ;4䆝j썈';/Tkcҷ+Yyxe5I#2"nKVz^I8@ R|/7Rvo~XF X"!V~z<p~j*YҒ(@<9DVFO &7UygH- m`KG|f\ 6XĻ|bXb =] <( ՗g]\O&<-9d MoQ:0jU ͌񛾯9'a?y>mqfH:?B`(zm8Q dgH `aS,gIdW3`-,bz0Yku{A,ŅXC"H6&D1# $'` H:z*`#1ŗ/d"iR4ۘc= wK(DmB NcS.{txWg1sΧ ɭ Rgctɭt -"%bpݠKkܪec][sCP~ D9M3:A 7Hu)"[;Fv:lNگATq!( Ton -}y~i)W)'W) FpBB6I]F' 0"󭥄V)& ɟM dyKԁ'Tlf8"H̯!p >SP]'~C,{Ղmw8=*qM-E ˟ [tr%*^\Q` a/aB̞:5qC˶ՎYG'~ӯ?QA1ϥ>7}g/3[De'fJآayN<^Yi;$\ݗFfT91f3!Y )k Jn`r E{ن!&ρhJ7~d8K3xTףgG?QV1 4h<̑Ӡƾ2/꟣YhYZU>swl,י\n:nACTQ&w%bK Eզ @\bF&*}w v$'PU0UܛdR3  Z.&%)] ^-5`=' zy8H< q{F\g!nJWȪe-B$8VD70~ԵclNefY!.CFrF&/q{*rf8Nzt{E'vop~H]urm]g8ՖQla6R.8I j33\?W_2W$LPg=z.~J] Af }!BDǁ%Odq釧 N{$W۵esz, >q ;\ҾY$'۵*{}#ՏMB/:r<֦C2 o{] 7edNPW >`fI`n6{(͒nђ"AIlB*Xrʂd i~4 ߯7 KLvivƸ^ J; G8ޥ]ZOv'%6&Z$2c %G6 ^6ܰE%o 'rѦ 3엏mca!܉d[OÐ#0fD()g|0 =9oZ=Wm*% --P1"yh&\EEY/' E@TwJ2\LcK1>J`횄`ohζ)|{iOw!^\&4`̡8tSH&Lu; {2 NFЊ_Ķ8q˦M 6)kxDe}La?޼JרoJ_m,r@eY@w]4zs(;]H=6 YzQ 3d !C͵u`SP`DUk.I-ܚ*qs$$]S KatO`Lvc₀ahM((ewcݘXbT2xM>䱟yj}rǶk9 V b t d<GrucΥ驉q2"m%!rm84JsÍac#9J'kF[:}Q]PqSqX؃mppBԀJh]m6tC:tY%/poaUB/^qO'o<ضY@MKN7OxU@z(h59خ'bR,7Y 2萬$uH4aZ h9y}3oF)#M2p06UzV%r0g[TF L1` q(d0%#gQ/r`a@陠q}k뗙8uV}j>|;c2&=LiJh:/BλG?V!^ {ZVm[366vV2c}*H'aӠX(0հBzďYh,;b|} PU&|fں%FS-.^i&#]TkVBp3~xeMmN2mɬa2@-*j<ܾZڛ¨C7h;QiivպbCgSp+a; YD7-efJ<6s_]Ӑ.Õ6>5unTK׃U@ƠFN`C0[s87Gκ 0B, 32'P-igS`:G\k<)6g/խ׿&de>Qe(q٬II߰?.vqˁ=^YU|mt}2bήjn 5YJo؝쨫wx~TՉ@OT1Blbb. )X4^6O`.}frON;xlU>)Vu¨S("  BHjգZ!3+Ոm= yV%@We]5(j#.hon)Z-nJIų|e3m0p!aҙ*o<(^'|?<%=m*J)%\%\@Ft1ض1yM؀ #(v5B TA?Q՟ `$oJҚ rJPO@[U&+>q8[X}@3 K9TkWfDv5qɬBwVl¡ -w@-<7ch&^ ?fGBC'6,Ly$43"/XKN.y8Q~ҌpޝG+b_G&Yty')a$AB)CW47~Гy8hK 3&?^b%SZb1)tt״>|HN|}kg_{f $ݒ(7Ȉe{%7'x#wS"hqMC&$k2˨;0Ǐ)SsɉYǠCPg{ 8p1$79AzFlc_- H?[X/͍ӧ6R央6T+(3L61\Uxρz}\-?d^a8%gB0C+rNɩ1M戟b}BE(nIq&R)+ ?6Lr>h&gMAqXSzNs HrJ!sC=E\o~ģrx>L 5GcC*Z~Ұg#l; a(}B{}؏Um3ިV w}?6=x5q# yqh(7VD/#:! ´RRG"lc1_ .˓5#8!R_}V)_O$o~ٷ)  +j.jy꘿OR̥BpPnh1|9bks"ee_TR}Y6Q4-T9υoS= !VzdT2dѵ8vd^Aǎ\rђ,$24Z 4^vo`jNKW8^p fpcDQ1>*_MMԼꉑk+j;˔&I~K"UJ-k;)\*]Nq>Ԫp?K2(Q)*0]_gV1-<%bg&g#ʩk!s0Opg@Q$T OvҸ WT C<~>t>ܡljYLHPpz F$z}dF:8p =~F#̍$$6,5^G 0-}YCZ@hđ s NvW6Q̹3r_kn ^*J~?oHϲ2͆_'tY^vPa0 5gC s#4JA kçqx깐}iUiϕrD^Kq %hdD".vyʏ7qӦIR&8ܝzRZnV,'NIwھB2nQ=i%x':A1Gc>%IjP)+VѨDDO0oU$Tk۱OsWPk]kA$X=29]nuQ̢ʬU#״[JqiyY2 '`I+Y䏡*NםN6 5NenԌ4cz=eՌYm1'߇%KUyHD}Tf,]Z8Ն y#{;\B5m Sokc ۭ~5|헒WL$wc|';p#o/e+Bd{ dx ̞;Slx-!OrB^5<rM'ҵ:Wn{:J/7BlÂbMfI. *e|эqCh%xu?,Zg}*`w$$+sIDtFfWc!l&FFrG5mDEQyqS9#R^"L%>e+O_bQҘdu?!PK?LMMZKxX51Zlg"=v*qww׊%0{Wj{91f'UtrP9S'4KCï̓]='y.B9ՙ#yի; Y% jɮŨA&Erro鿺]S?\܋kMf۩0<5[`j'vbFb/>}^02Yduطȩir )Y(挤{)Ѽ%6!up1*-U*Joam)qnIve!쇃ጞ8o.8\d< @>8wlԇi hK=̀<ܘ@?ߤfҮƳe'cY̿o&$5#?4R'ui"e0[òʶTavJ@T; o(0YldU8Rj윙-İ'A\gHh "j%Ty-R=3=C¾I lP{vh1&Zy  g4;R>虜j5+/΄XzO'=ğwA#Ғڌʋ!wjfa gqdx*~' }aB0[G:и ?IGAn7YM]!BG˞ A*>0 YZLuminescence/data/ExampleData.SurfaceExposure.rda0000644000176200001440000002012314762554470021610 0ustar liggesusersy4W[e(SH n)| !T!BBcmz׮i8^vŌW<m9.4Qi*>QqƨzZ yP(~}YIq(n/NOr%*T=_T)X(R2[Fq))nŭ8㤸Eq\T9sY/M[Eq(nŭYMq<Cq<KqGq|GqOq'@qP R Q S0 SZ[Kq"'Bq"Qz[Oz_PO8Q8Q818181@qx6P@q W_ \'x>Nr9["x O,OjK=mDPG.?E` H77/r?TKՌ'eY|ѱd>?*[ +CMCC@^>t]*v9zx(k4똽 Q֣4#7Z!Eg~K{$?"Ye,ڑǖ|pgֽ6Ii(\b,8e e]DFT}~[5oړ$N)]70ݔpP#>׬L^II/!ZI;fh݅d :TmU^gދ5򾼝52| "eb j7F_\voȘNԑ _d^3>szlt?~<?Ix9PR E:aD~IT~]&r `ġee6^ oaY0b,h.c-2`mKi (uͺ6O`T2{&^J00NRuViK(nL/t:{3/ 0XS?Lp.l[n1u06>)7ab?=e;{s]=44=_2@ 3Wk+Y}k `7+z)%ÓTv v/*&OBҬ|sD}ї|A.ϻS5aPin;M%ʋ>/5bMPν{rbF*s$}_%wrnN*C&ժ3~Z!^*quw KMA5udp;g3W˝ S58yuW ׄڠm*Ťb͌lJi嵲ҡъw 1]tDZ2qϸ*j6":q]YTO}}!sլ\ň+?]blBWlKxp9˥]K x!8?a 88ʈX:gVP!QW} 1diu<+P׾˖-Ns;^ue}GJf|'=F[y(y Fq>)|Nx!]Ğ8?]v-xc@V岱U?Ux,`vBٕ+W+׷-AzGc瀦W\(d@:I+D{"7)n;.zGw,XrA {@(/xbz@Q͗ȝ+!ohV1J?-zE)}åݗls V%4'ֻN)][͊:(n-Ďv&]:P-yK²WΙEl9P>t)U\Yz<Xߺg˜d٦_Sѹ}ht(c{ bBf"cmzȶ/_Aw_l*%\P<϶*? Weã~3XBRWfhe ,Ӈ+x{BT7PejG޼_[ria:T:|ػ?k<׈=C2n'YaXUt}G0\b#!p&m[v⿱`0"jxGFM7K'&8YfVVC=01xNw_ta9 K{1+ )lbp"`ձWc{wcAm@ [f_q*h̚S+9`xNYg`]\6h_83;8 OqNhZSn6< X)4o:xWaΙWۍerm|uûZHԤ[ Ewd/E2/t4 KEF=1\0 Fp.÷` ނ Fnmܨ`߆ kp--~XmԂQZ0H ƈh,[08C`d ̂!Y0, Fe,8ʼnSIPFHq)N$)N(N6Q&Lq)n3m-RV8i AH߾-If9 ]c~xٍ$4nFn;j]4r&觸o-о s63n()P>ѷ< }"2wL# Vٖg_APke{j-0WG%/8 wSq' pƓ]ݿM0RyLL Tv%eøPŇYϕ0.Q^a\J\ ?z3͡zň&@|c&"ziV@+ {)faq`P>6OM4\Bօrݝa ֒<}5Im䥜Ug/[Fܘ=YEFLOsiRyFwIɯ'noou|4t ~#I ?Z_®)і9 p* /9kTx#ql8oim5v ;Z[i]y_~ǜ$*mpSUYhTUu9s6Yc`W/\SsbLZOq'h) ik?"j领.jxHSq?vre(X"_d4$rrJ~F~\ +nK< fQR38MlFR?2"j/E/A3Ľ0 MK /eI*$i[dg܁'$~M-x"۫UE}{I.t( >.gOՅ'v]&;2n`PyPudJɀ7 ou `3AU{;hSo bn) zw%@?Ɲ|!OT#.\f.*d[@?\PXU"a\roā`kGc_j`kc}j͎ kR]L.s-aqL%J:OU}m ܘ+Y1'2m8ۀ]=Y_XpG/u5֐0 !,Q_\(h噦^ O.qehKj};;ChwLR(`UZ]޳{rQC5߮H"oO"E}t}tG_ƍX 3R~$N~͔(!]VV$ne<'p7HG NH.kcZ8O`%R R^$?>N% yaˎ:j=c}i Mp<.:RZfґ1aTlKBO]sBoH܁ͪED\f/{U!S r{d"v+уȵE;yYҼ}; ҤÛf/^q>س73AV-L+wbxFkaF$$hw kr fVeB~-o(2h?LZϰ.u^@{l!՞)>bQ0 @y}wgGo\( OC/v@ j60@;=Oj,{47Rgl_U1^՝J찟@cwL[}FfQC5_%5*q)'Iͼ$53KFr?YKԒ^}g~)I-/Oتv7dy<|dwLι~9MEc;gd{YD <ۏj\$,Wb3y,:Hd~!{I.JyyYDxc!ꑴfsδo--mPAQڢ!QޑUB>y,"IEW t6}D"ukB^性|VBq YgPbzdn-ym,rO撬 <8vf]: Ώ>ط1l r-:kC+Iҩ FĎ!Fc/j}-P / 4bzh*PKPΎM02:&. L)uallCꗥD8@ha~vUti{' 09K d: Z!BM8 􂋍2_6QӸ߫eYE-Rh]*VWcK=ԛϭz2K=^ z0\H|K52-#*eٙ%# o@t`춟`]ۑc c!9 <0~ZyP3.|g`w @g ,ta!@r9_S}cOzyK򵀮- K%m%ZTfW\VӚ`q+u%`rN'n~8v=᳆uއIdBLOpIƉ:UG* `,N@vc+@ryy*a5"WE5|MT-`mO4Yl@)L|u n4KLp9VuFMN  sns:FLu- ԻԱq@\~ P2++&',Q*<&WfVLM \ohBU32{oijs{AӾdo"}f: p1aM^ 9~^30-R!}B c-,?ϴN%l`c)_N-SXUO;4,nCc?r'9{pM3>>PCGB7ݜ%4z\U_`c5tQC;:w"}=NDd)ĉB*zv!̝/~Ežek' iGNpA$5HҎӐA<殌6]|F8-[lB6g [}!>r#PM"P3ëPX)YqJ¥C}) 5O j}U5qyؾzl } }ZQLo/YYQV8"T?"! :T$|4e0|q=жFk\abyoF^q88ڣÜMm3mݒd)o|t%m%N3aiGـa_¤9WtW;yX`I$wytz%_ ~[gg+eRײ"=U`M+uzzg`Kl$|hj25MR+؋9^v0/mH}7M}'h_!n)Cro{#s/ <ƙ1GN+i/j袆5ԷX$~SqH+$p 5A2vp ~ǢH|ݗJd$bӾli&D'$B6-jy Χ5@6ȧGzVBJ~wa u5"w d_1 cwGxC8>ǴaJzP'Y 4Z/XͿ:?GL>Ү2~}%d(p|aW;=E|û][?B `T0 `p` d(!v;0zE[0Z2OBWX!ο7W_po۔9Z|r@`ү+ ¬JNOSMteg^Y![Z/1\6tl;Zq^ _<=? xÃS-JLj 3lsj5 ֕ӎ51ybqP'δ 5{+{tR4QC5_6_-:!}eͯ<rL #BDvo!8'd 黏C?kGQEfw+ ͧz 9 H5shUJQvG[݄⦯2(+?85BVČPvd(\9o+֕zb8sv|Y[MBǴ5Bm7NBҜrm95\/I/Z8+'gM*ۂ p :T{I"|~ c7;#4_PQz2>zX@0lOooPU/:(Moֲ6 @H43g)]7Ý`tAm$;w>(p,|[U "ַ`ӏNJ@hG74v*pCޯJ.Hpr}i\"v4*2&zW?.޲ [Mo~+bB3!@܉$)|%k<2WCX-r?3r0y9[YDLuminescence/data/ExampleData.ScaleGammaDose.rda0000644000176200001440000000110614762554470021272 0ustar liggesusersBZh91AY&SY*Qa>įo0C)lclJFILM0b1h4i 10 L&~PPi4 O@hhFhFm @4  4@4CiPgB6  #ڀ( SkPeEE7TSsJ<=r9ڕy ?^ ?Se0 }IPDI m$/[o!Â6c]H iг`J04p @SvI%LU nB"c 0fTDC>&"șF&o,tQlrNK!!Iq w#[Y%x3`;Ew U1!K9YAw HrMtm}+|Ŷ-I%A?AMؽ%QkL#玛|QՔ2DVF&(ߥ§ TJɹ#Q;9S"?OiXKaH"#.p U)Luminescence/data/ExampleData.RLum.Analysis.rda0000644000176200001440000001543414762554470021137 0ustar liggesuserszyXw22d( > *K<w$1L<#2(yD [ks~y뼿z{w|-de%$$$%K1$~$1 s{mEQ+F00,"4*+4?# dSd C|o%F;+:"H^fF8x ոv2q d=.Х|aA(9~lW.c 1C wxg2`AB kuMB#Bfaϙj.Ckk'-O `oa<`rc+NY`Yar^k7fh?U61_L*՘xHy,ߡ=js^F܀PAXh&i ogcQrWatF<y]hW`ArRZ{J ,)jٌsZ˵ciiX!;jX73ww vQ{[nQqK) X3|F?a9Gq,=a-gzDءp V+H%aaŅXoQukI6C W.aW.IcePڧXy^\a Ny^kjq°cpUNcؕt̋U<'Cc{εCvs} N|9~.*wBRz/U V^tk…V`]jΖmX] +[Pk귒iQpJSrnRW(7Uf$íh p2mRi|T31k5iM[5k?kQץgva킙=X[,ky]/ ;!knC.f=ǂ/ #*xms>֬zrXے4xZg"?i|&w`xӳl_lTB,?Ǝ%5S40/V$wjT"@9L#aȌ2bx,h$.jzXWtSdS:І@ W8!Pՙ4]>KLCE^~/_Q"PGS'Wqn:;^ZQ A=z:pĈ#x F6eU#`eY#li= y^}!.#d*zl拐a ,r51Bg5v~P8^W*rvb^1לEqS\;XS5a  lq+6g kLOexZ,ke IV]AdlY#G0i*GC\ڥn{*POە|I3G#\(e";Zev" 3Ũ6ŸyD X(p"fgѿ.`DwUMJX/Y)/FDey( q}3"jW'LBf#;͈372Ԟ)"-|i"5y^"~ "EV "hWC8#e6`RiҮc?^ˣh+OA9I9+BܣҤ#@Š S F[H7!Vc}2'[聪wb_ߧ:cF,E|Ci2 z AYeDK$Lzp >zX ˵W(EoOgf$M OC¶:4W J݊9v\QNzXw8<|,u$j]^q b^@SҌGH `iل H,ywF$in׍ٓU6H|n $ITT#i)kx+{_|_u%UȘk\gHZ>$^\ I'5/Ͻ]sU"#6RHnl1d@1vV$\dkR okd8ɩkԍ 9[GɻIɭDdy OאI$]R^:W)rk޸!EuC..Ftq>ߐ09;kBʁZ >ˑrVSRwp)/+N@D}HSppR*ݞTˀeNQHu+ZUj]ʭ7d n~^o|7]+R4/} SZ`}uwYN o͑,Sm[ >aP̤M׬[n6"}ۃ ҽ2렊g&uHR<݆t҇]}RUxEJm(G-^OiX+H?I|,W-ŃDzkUgvwg?9nZR`˪2 pW]@k:k6 fw =IZl}ebkv*;ĺ #^p>1W;A`go>#Al%U`V\.죎_]qC4,ؗ#f}~H؏XEހf`ܲe8R[;"tJ>8j;t a(; ^Μk[$5cNq8#vMIxUWy]pBJ>8;11lxpRc|38Y붗#2p.8;(= Ͽ޾$Ws]P L\́jZӄ(Ԟ>$ ';Ps习((;@A%/l Gn(H tQI-8BR犂t?LyGU`MpDpU˗E#-?=yŸM21דz] 8dw0ZD~ޱ~gF ~iA3~,{P㑟E~6 _Eg+7yژNB =J[!%~ ĞWZOko@}y/Kλ+;A rxtA3/@xR>]:S=<#bw6JJ]6?bDȌvS?)~$orݹy$?&PCfv okŸ{k37JDn;ϐ[KsoZw)r+,l"q ~ȽoJ#Da/$EXJ?ʳtmC?w30k(vJOL:wRz亾}\-IAMdJJfyxd笗 oUH"87Nq')p/EV6K0ODOxX|9" ҿ뉝Oļz+GQ~=/TeBZ|ص0}w܃8S='2 6%_fQyT]S;'?P<+n}x#MeHcHS^iYEmt^m}WtZvAt䳈>+ s%EDeSUD)$N"鏢Ȁ(ʡ]/JE-_Q '&L\ю܃3e $y$Eϫ0pD9+T?HKSzڧDv$" Ƒډ%"O{D+b0J7c:#Gn8TA_X\@dN7tXyAjL:.B'r@$O"A*l;])Nj+a9y)R;{W?iF7߾egG_!gezޢkz LniPH)t&u)d~&z0ԓЂԠR߅Tn!Ɛ|Ja?jaj ttCUPPAżA BGV?zg? ]EmWB7ΡB |\j"U; T:A?M]sx~$C퐦 R;tI H?_ ʽ,ߢJ%_ SM>CHϛHi&9) <.<'[%@PSɌQyDÆTB*!(#~$S]y&]o#Htԋ0뱠iwryTOr o |H PTʿ䳀?A)xQ?Rx 0~ē||R?O0ğC-(>UJ7%u P"FgO =tjTǔN>AOMNqNK`´:'|wQ=ǁ ]o'qΰ>o jg#?_ψW>7Կ^y4=ӹ&S<,ܘc#d{JZ}h^'{KSyD/^>z t 'xߑ*5{AMzu<+L# U6c.ǿ0H4\ Ccs6dJI\xx'_QڣEm;/G7w%'E;9{ !^3sn`RT_e_d~@_Q+*/_I7LCY﯈zE@OoάY&&Sq% O ]-h(c3E EH%Luminescence/data/datalist0000644000176200001440000000210014762556773015344 0ustar liggesusersBaseDataSet.ConversionFactors: BaseDataSet.ConversionFactors BaseDataSet.CosmicDoseRate: values.cosmic.Softcomp values.factor.Altitude values.par.FJH BaseDataSet.FractionalGammaDose: BaseDataSet.FractionalGammaDose BaseDataSet.GrainSizeAttenuation: BaseDataSet.GrainSizeAttenuation ExampleData.Al2O3C: data_CrossTalk data_ITC ExampleData.BINfileData: CWOSL.SAR.Data TL.SAR.Data ExampleData.CobbleData: ExampleData.CobbleData ExampleData.CW_OSL_Curve: CW_Curve.BosWallinga2012 ExampleData.CW_OSL_Curve ExampleData.DeValues: ExampleData.DeValues ExampleData.Fading: ExampleData.Fading ExampleData.FittingLM: values.curve values.curveBG ExampleData.LxTxData: LxTxData ExampleData.LxTxOSLData: Lx.data Tx.data ExampleData.MortarData: MortarData ExampleData.portableOSL: ExampleData.portableOSL ExampleData.RLum.Analysis: IRSAR.RF.Data ExampleData.RLum.Data.Image: ExampleData.RLum.Data.Image ExampleData.ScaleGammaDose: ExampleData.ScaleGammaDose ExampleData.SurfaceExposure: ExampleData.SurfaceExposure ExampleData.TR_OSL: ExampleData.TR_OSL ExampleData.XSYG: OSL.SARMeasurement TL.Spectrum Luminescence/data/ExampleData.FittingLM.rda0000644000176200001440000002413414762554470020330 0ustar liggesusers7zXZi"6!Xk(])TW"nRʟu,=!zBtiXP͗/0'&#k| X>: Ea҇)! Wq䤿@hN~ʕ5"1 MS8WxhZ7 |y֮6}3 XYF؛h11]#ls*M 6 |r@b8SY?~VS=V)x5T g9X`ug9 *)B;pЋ}#j]gUǢyH\"T'O9qhݫ~,_VfBbҾ 2}gkMsdCp !Qv~T+D~$|{<ʆ) ;vί[ x1@ڕ΀Th "H]4.#gh/ƝM2О^ekCjy:76de%_3DȢ`7,J]|AFKM-}- bUcSXis>!ki,MULb$1Oͱ=US _p ȻX\_д}T`K[۫KKbMz6ruf\*di|Ņ󟅝BkADCBY^_z oӜtߢh~| 7UsQgt>{mj>1'YB'q2f|L+mXkSu8x̝ 9>l6(kڑ.]` G֨#1h# OT4]iKGݾY<B%GQ)Ui7@n ䷴%lu|:{#FKd=vFPy!;qv{&RhbzRE}2,JزPNvhYـ?;x= gOAL'Nֺ0vħQBIw@W-3OMgPp/0U\왾P߫SbwQ%E~i &oɞz:]vyZ%|\~#{q;FˎJ3T3z-c4EҴEU$ojy8653NE]!jXHZ=TaN`Zk=0uiTJ-_͖0l kvSV#<;uFѰ)DsN#8_$H]  HͿ$wb&!O~{}WR+ՠ=b-aXwI,ia^5u&^-+M۞ t9 P W"|8G{ ۞X dT$|~cT*4 ~=pot[,xg荄{vx>O#=' 6EN l/]B^REpZpς<'mcB͉8Jя xgpBig5*낚DJ(^yD^@ Ubou.qXTpKO- 6~;METb 'BL 1)͋y'KT`b5 qӗuK~BOf"ƼY(!hכZՒWAMdA Noj2&4;b05x4xxcWٽS"}Lg ˒(`+\!-6۵8ӸMb5 .]ɵcHNt/#$9O;D C{F{ >g(0~FMkSelRУ>;)A`+RGFuzN \p>p "zo $3~i}Sߡ%=Є1н0#;QGJMAB,RN;Wo ub gD:^F>C3S?j>-O2[Vo * ng|P) Op) 9ޏCiHC7s/O얉yˋoW`P_qTԢ{{83oϲ JiÝ{Dspo g ]j$vJ3pe#RfW!mp<(dY[TN c\]霘Ɛޑ RqMRU:لo"ɝΖ++ |7@cKhP"Wb=P@N{A43-F.Ç&2yzsۘds`8NRG_̀90^dK{,V sΨ0 (фad$_rEyφAfa0u- +2^Ž|V&VFFi4}zx:mY2 ۥ&(:\( 9E+>JCJ붟:8g 듸ݧ?72ˀ}? =;a())0uʸGZUN(qlL|nb_ij.!s8{PQ.>MA$v}C3%}NQ[9WIy|61!;he^avQsD[ :L]m,~O<> |4YJߔQN@ *Ry#γAV\|HPt0+p2c$źO:%0`n<**rzBRM6~9|Vs6rE|rߤҪg8G=;r"|b8\ CLY ` XRW"Dg~9(n3]#d7p6E˱rX1zvzOgGbR,0o* @%;&5Ǚk]s>A|]u#zbqP p䞢9tՓ+8ꔩ8't2l]r>w[%u@uqrV7fC 1`%]ն[$_{ -rƜz^n9 \/tzW2BMM4#8N#BbrqJIa?TP(=>0vpb\~`H' yzK]+mzf { &>Q-Uy@g.C>׎Tɽ>M7jdpyq U8=OTL]8(=T K%R-)X cp o1''~PdNj6~ȞAm2*xj^e)*Gd !*KqOffbZ+R MjM3B8 K'thA(SI Ƶ[M5c3PEi>WiL?J6d3?:(~$4~$s娔K `)VawO8Iw R!y/_V&Z ָWݻ* 3PsEQZLl;-G Rn:J-_2 19=YM=,nKynp 6 O<䥌* nQNd6N9|?bB`[%ǤMP0_*?"Xo]~ӄ45uj)rIس\qOZ ";a;TuC8zkf4H[U#HѬ-9b}KV$DBxm HOPpOÙ;SaIՎD+3ɂp$47juR*IG %mVbTرj0Kv]<@\%l(&@O0'C.|}.X2衞eWRr!=%e:N;6}icc0P$=(֔tjXGC+Y!s%%V"Ui*ܣsTW\u:\cu% ӕoiۮaoaEY:|p&x7{A, 4sOEҹbS럕Cl-Mi4+Amxps"II eqOV4IJYe%~O=,t,ɳ]t Aq{s"o4Կw|ץ/;(Ω ̐Sq!Dxnu/pD/L]E09T?gXWB+~-:@Jc5&/C,=)qOZ!78+Cxu\6X ͦXaq[{ )&ڬxnsdg'z)eO~JN$i~'Mo2fIPG[S֯ ̊OAx`CWf $zry!z2T:9]6  &jq#yk*& Ԏz<q]:Z^8Unav$?Ƞ-E%d Fȟ rd" мZ1 : Y c]7;_[@ّ5( Vl6kW"iu8#I1R{\2lE7/|0f>Cƅn,qy4m=mL٤|9h{깡ϯlTPyfZIOC.qsWнk Ra =5\e1+] 7dE\aD R@lDtDl^>NG0K@9qVXsּ:,|f$Y6Z6DO6W(7yjBb~G+djAf[0 7,k"IsѺtIk_T4[]e_BR7M/oiO z)`)2)&EQt-Άx[X&`u %g$TEpSwr&{ otKHًZଥZXf'!82PG +2H5-QG p=YKnѶ7۔˹NppG(%TD}˕`|1c&+[Cfw*qvQJ$oRpH)A1鼭]ޙ Yw_{ܸs%٤QlӚȃA [&*f7L`t61F":߉7-lN faB)XPs!wMNm!ZkfYU(#xġҶ6)!/6Bj,,)kf( &823z/[G 5D?\~e)]'Q[Mz;q(1ͅ X%dD":Ly"e}Xj9LCt>m^T;9~PBuqRUW4IDJ!*1d~x&9, lMO~wk}3>oӭm#eй H/jYMHd(GVqԗ_EH(!#ݔcQf^зK6H8,X 8 zz.?D`1h}AD{Zjr.ֳ3a@wR!6ڇd3e ?DNIA&Sb2\4_nݴ B" 2}5ؽDLըItdJ=K$ ĮxHQ CҾØĂ^O M)[~ARJ^ƺ*?@~m:kutP2,Amf7Oe,ORI0&l鳍 > `K(::)c\!P&m?R4-*}tQU S٨K;B20NDKb t1sEQL f)V-\ͯ=0; #͘O|7_χ0|ȫs\B`)0A0T>6j Ҹ/qI{`a!)] ~@ E͓Ϟ $ _QRLV ik#`z!̍E=B숬[F)Q (gJ+C4wP*=\IzdfH?C0+jTA Cg|^|Sza }rd޶GMY~)&zPt,g3>_?d2Cb\sF>T2acRI'UTVs=?HGTu~d>]'bQ1eb6"Ma3DUc-ۭɩd 9JHO+03"}K~אYR,G0aH#OIi?KG/ ,&̥wG "[ ^mz$)px =C(=0` 5*@}m;b gWF_el Ru(*SrQLP|#GY>I Q Q4LN ]ʱ8!uW͞8|mt'ԷY9u`/ToAj[%^C97`{0 YZLuminescence/data/ExampleData.RLum.Data.Image.rda0000644000176200001440000037730414762554470021255 0ustar liggesusers7zXZi"6!X])ThnRʠ3$RKLɄCbN~z/ H~_0"0=*?EA(.-0'Hv6 %?ɨ3aD8y0a73 㞞6}yI .#ABbj#-K/dKGA>P%HQ8VU [?-RoI`M;Z7wW.6ki1!F=:f}abG{0 k mVs,B-&x3O]X{GcySxAZ4q؁e9hЍ7H* MS;`5ĮMw1W4C${6xj[1V<:)ڔZ. 2#(gYd :/YЏݗQ[6Mm }R! r?'/NDOW @vE4hLB1D]eG-ם_ƒ*xG^@-]>Lb(@J2?o.S㳛2oԺW<§CS꺗*/bdSnCoiJ= cNx ~fl/R(Z$_W꞊L6K[ofzcDiTz=RgI %-XUDAaz!:rHk}j s(L^ʕeBE}Jb3{/UގUg? "O|e]W|-|8(2 n59r;w/O=$7D"gղ{)Сf1W/@~^y rpdG[kx/SsJ?[4g8ivIdtIJq##!Q%Y0Ž["`Q ),*pDds7qS=yi AgwDSE9^G›%`L_$JVoD&;\˜{䝐$:‚Kr< Py;p2;8:ip )Xz]+dٛ@q J=7;Ea^s׿#D%&CIߏpЄ9pq~sMfڳWZFIzlv,m mI]~zA: ;(=몍[0T5 \j1 "9;Oe9v[#C>q8B5J '56|q4)kC"Q6`E MGOJK ${y+:|\15*Q+t )Rg:C{o2$̃iFv4$'jӹmx]qbF "|7%OI-_!5 y;2pE:^0rf*{ +{8(by|NkէmIX1X pRs, !wϸW7"qQwQ ?DbUG7K^`'ߍhXTA%H(ioY˄ؼW[PI0;L?'Y ɅC(Puu)* Pvhxl9Q $@uss-FFa牠`G<^_C )t45,O(oߩ,xj s1s9U+ y-?!*}OwzD]&ЙS`8jd@ wmHiaя❻ <&]Nt:xz`ve+ERaKQf^Z6e$ 6~17c[;" Bi< Y^h:,䨫ACPl1^EJAο+ +*jd8+asꮌuG]ʅ$&D3SImC{ñ$DmM=Hᄍe>3&"`ox6dw3T?~,ղ,x_7l2Ad}mҳ%W^_AD[b!LsvArx S}hR[x|$!"_HPX%,*CLyo99WKCbJQ\')D"Bj}K${S?1tZN?B0I$#Q|t \KSW7Ͽ77`NxryQ2rEh''CbHLdP8fx@Hed (|KVW/N9l.L(v;fjgB_O1یv?͵Cr+ MeenǬ_ޡr}k@:$5`f6lrѩ4yF@ɠ&74+E9 f:Z%jaD":P<@9zl0pr/Pqx#U+ ӰHh|7K_tfTh&{ED `+{S i=L-UWI 3Jͥq4W{B n2h|f{{})iԁBD 1>kXA󤂢1e (WIJ=cQ4ƌCz<,+X,4v˰~Ml??_NĨwA;rb8_ ](΂>6좺eʮL}{Ɲ{D)6Ulbb{=|! "2t׮FTt$6WZYdoGJrNF}!Hj \qqFG[% 5 K"v!yA\ԅ=),}3a]U $yӃ2@2ݻ1VƆŏ!b.hsug\2n$@DV^(cL~oAI)@aoNΚmH[NFuu; @h\@rk-, !k2jkKl7OÖ& 3S%x%.s$@Na€8@ I6&MW G`eeai闬c #9))$*;wxr\ $De/^zN ~!ܣ=5JDz§y.̞Az1jÞS (|6 ?uW n[ ܻXU7d9 5;$~X޽q7daOҪ'UBuQGԊbHIH%Q'\!簜e"uw^,ͳ{I;U:N~o%p1/,f \(}Vv5Sg+dLAr#\N- Dmka *jjHeɸGwq4DVݛ.z&dݲh]r@Pj[Y#@ 92 h9R rK(B^ ߵ6=]4/*aO ~iG%6~".Tk86RW$.2Mf.E}<$uMWo,ǀ t[}93T*Ka "b;. Un-MA,Rԝ:xrLC.UpRl66A8!ٲ + n&g 4\rޒ=0seEhd#,0ec!bVc8bgb]f$r4.8+f1w69p~ JM}-cB͆28zn¿:L¶Y7*z ֨@:TXrx4+]U!en۟Ll4$[;\q?,󘇢,tI!OR; ýk92^L"샍kU#f芴s ~C,M*NmեLw宕5??kE*\:Ʈ(1Agk[PZ@.:"a{iE2ԩD]C&x*$VXq*/*%۞Tm"d4hA_`ڟ/hp`DJ!$6:pt̎[kiuQ:0ly|  Y ړ[ڣny z"|uޕyjbR[Cp5G, h;:1Pѷ$ > G":7b>dl'TdPoJמoOMx>*֑ :YB"jǞo9 c*Qިi;Q{9l?n)>'ãAi6(у 7W^ܗXM4̿V]AMS0bB9,]E16q묭\Τ0*FʺI׶oHzL 6e2bDqc? [NI n.`䯷O@[lP-a\R:&:A.\ q[ljW㸽;M7g^x4!ՉXFMΗ7(ѢT~SzG`2(1Sb O(O[hNA+x0cNՄ49_[8(C> YWx_?s<lDq3ؼ'wx@#ş]z)-Η"wcOL?=IPko<-K>.Wܩ *]Rd6Ź>D! znIh؏w-?VzA4ġGoVP/=LC?JY9?MDř2+LZ *Ii6@/qg_F˹ @?!u:؈ 'xSjNx? \;՝& SGUxO -U>8Y|ʼuղ@ )[^T8@Ri]py[q`U ^}P/>r&0=Ôv ; -'NzGv)oSj6l\7ʇd%A7fJ R6`Q B0T"Th<gBWpJ%'2kخ;fYY\M-r0Oh_e` Hmӿ`"HM;0jw?nVEw z# G;>h,wz7_'_瀔N:Sih%N+BlG}1f b(D&,me>2o 3Q2gN$UUvz_+e4IFgt>e)<h Þ/%y6Vi Ϙjp l+^H4Es\1SKރ35Sw4&hd(w4;g67Yan7\D$t 0MqIa;yHſ5G{TwDKXW4݉#@<˥5_b28V—}qJ"i`9gUW~u&#b?]& $yl /fן&K#C+ 4ܼk0Z!br%esfsE#BSm6\\-8肼eDz83_`>N tb9+[I-S-FvV(7WK ,|pX3+nB5= dfŨvkԵs*[#RS@'~ъqthOuU?M2Uf&{Ut+tW^:6+TPE"d%eEÂY`vqqr#:HëwL 59e8{H:ɩ#dڴ\@On.yJ?D\3}Gr!}2Rî]xԽ8(1l^ /Zzέ1j>XKE)$d׾0I#`=RDʊMkqa7U?ٴ"90^`Pe؛ 獾9whƥey74 *ܧzk}̨ҵ:uPq;.uѷyvÉZ'|Փ("1o7{ XNQ*3ڑԳ 4oˁaKc;`HX3bE| pfk0V{NEe_:bc&!zbF?8k1vWLkň!|짺ߙ-JFprڗFM+[Y79%>bPmnozD`.@xQ~gP54e'Ф[(DTĎdZ n>$0m=O*F_u ܩӀގ}"Y8oQ?u]r@cK3R&4~BNqӮ`̞F=T9Vbēza 8bzW!tc] qà rwFC;OE2tK╊Kr OdpL8fw[tf7T9v t݊dfx xqZ*(epBPAVp"gFϡԊ7 dKyy>Ti*V%͡|oTwLx, FiCFE%݊Pٝu<;mTOM?=޳wt ]v,A =#'SheZhY~#+h_u{?yA˜5EƸ}?+b|cݞŒ-&CbԊ}棂|xbDwE&"ʸ'#u$z [}v.[>;6PAh?L%MZ yCw:5&gkC[UFyK+[ p$lQ܏Wu2 AK>Cu\3~i樕6VPB񏌕oX:d3K4?%!os|`6ybAL_\hj8z0ʭ<9t7v= Z.}y= )q61;' 04WetueõVD>6UKToGjV7 $z҂diGgG\W7.LF|1f@*nW̵q?GF6` }t(`/-g\m1 s6w Nߪ DGQjjw7RafOza_"o$ɿMR|S0*L؍]J~ojF{bF8썸mq\/Ou8*Q!{j^u)+ >'{S8?g"[;|934"*p| D¨Z!щϞ|*۩$9ڞRx'fM6`wO.Yyt2酤B{74$̼^%߉=}:\w<[xX|+hI> IW_.igvyjoO-z!\TG*TA**`KHxy) Q"Pp'iy+Jp˿ʼ8CxaҊ&E~$zwIUNT}ۉPwK1usLfH@77l(k-1Ȗ3 V wNN87f'_c V%9hElC8¦kF'>##UPF8]Gbℜs73.je0n!{'am|Q`CʮefY3VCA:[P3ky1́?mTc_! )Pfj3wW+kM4-elTXQscv^\ ҂%̂rÐw'垃7ve G?'/4b,敞ސohD fyR(/}Pii +A3qq KOy?(|F"C"Vb_d>iD˭$SYe7g~&Zĺ&{x4nF%HN4jƄL_b t*X-B[J!;*P_N'QJOp[K6OEh.(Jm՘m(EuG#%]T~ Xu|]@U?gĬmMMT*~MYa6wnF'Z7'@ydeL*ghسH3F?}DÑ@_7/^$zN%p VRFCIvPW%mݼ/cIE.px7Ÿ4l{/wᄍ :H}\=bd& 2Y '(j%5GZ3 XX[@"g21f{ `u0zwLRi; d(ync(b#] =g|o#Y2 uN|dǮp$?; N,D<~YBإny8 ~r$dn3Լ۽ PwLUXLHQgd%S_pwlƩq=&XF13u+ h]y_/Ԯ`Be`ܩEfHk`G̰`MN)CCn~h݋QE>}RgZ)~aڳ=FofOdx5{t x~qC\0׭'ex`!n&])45r~t'Ρ/=@"Իs"-Ůr:15,EM830nд ƦɞVU衜c;lDZHWNnvbhLYif_b/Oj.z(  E:^-[.'ǎ.G:MŐSeL*'6&0ی=ݘWeLp1OjhϬKUcpc8J l1e]d5neJI#ѫϳ )*=˟]BK~ݯ#X>[ڇDyN ִ-,3HO*e6.ǜ M_WQgAMOAKB$4W8pQՊ7h|J^=Q,jQAA{[Ti%ǝ;ꐒ׷'(e=?!Ksj5YBjZy:t(:R#DEk^ |7S$KmDy|l{})>dfJ)ף㏍} o/豳a-dsI7ٵrj7ZyOO$"&7̎7hл *H&_d0S2ڻtA i~gGf[QY0]!`( B2X" C`@n{L2#9vu(˨e~HzbThk3/z[;6߁qgZ{YOFW6P$̅hwGxFD&Ba3Mfmn匟"=1IڻQ:_}*.F)BXdW og 1'H,Hi @tOl\pzAa$L0wET2.u^Ty $[9恆."vH;&#`tX`~ʊ\1c8.s 8iv avzZ GZrZC|7w/w 6w pc/pFMy&qv5P!J>9B<{bq/j\J1gR#T|lR ދPQT DYs>`S wnsʾSO&/ܯ2,hhRo_B1.j XlQZʉWe`Ap-1R, 3D` jHNp W!ХX8]ũ2AV?- J'-xqߊKd XWdcc?M { B&sEPgm>*8{9Ǧ? '?=3&iqmʧӬx /OoRbU,_DY05:IT,p{BjPcL}NֽE 2犩8GMO۳/.d4ewQgn]a1q;Z?aeAx2A* S1Yd7y%3`YDLQX7S |Ͱ0C2#֘Wime: \?]UpC`)h~e]@:&[YM뢳I4 RUAӖtY-&{;Us>픈UQfFB +}l{eRu;:Կ~`C0 E逴HZpF(UJ*06J\RHHCޅRMhhRSmtԓm[5C<ֶ5\-IQ@D*' t !sSр]!y^Phgƌ-| 0-p:6M[F X!2Vy-G߶zYW,`RN떍UČ,YE/W I^Qùwc@AjARgHjsW_}WeV2ЁV=o Mnx1bCM |*y5G9vj~@D1eNPTEQ$)kǍMtD5F\8QQFEM;ޓzAtRM홴|b(lb_=+?NJoD!u2o?f;iu1SDg^ԟjRn|tW۱ >;Uӂ*ފx[v0AKݡZ墨i͋ ]ts_/ڔ #( JoG) ~@q|njM'MBbO[IZwr. u&#~{13sAsf)#g}mD{ItY7ӟ hlWbhy$tŐ78ONqo#VόY|~gOiki,I o[MGmgZT,l BXĬ:];xs.. [Ŵ1/za2"NO5Q 7z{訾;Xeh|a~&`0󬷐:{j}~߇65h ]*xjz XThY9;MBd$1Ux\:,"ݡ oa[M,gM~$C=2F{QzpBb4wY8Wܞj$d__m3{&(_&,}hH/&d~5uՆ/ə)í1HR[{vNI"#3ګB}DT4(AF7IܨvSCr oq\ Fq^ÈKtGt}F,_o5mDnȳh6XQsa˷rco9CUڣF҆2*+żt!݋r6Wic]6'+H?*q\h6P[QX?7$^`=?5c^ղLV2!S Pz^.Y([r,k6XXOG^U ?wQgeX[9776=z#YPWx>d'O SȮӇ#487*s {+{ςI)8[-"㟅 1x JQֶK[}[cV,ò=E+3)plX܌WŹ 8|:?xmT8i `졮teǿsHQ^T,`\MLAvڹr/8s*^yvE~F%?TBsm]b8`x|̨q?cOt΅Yh'zsK,13'I±\D^Oypp#6%P6 W=iT#84ZJ9D+˹+/!E ѻ9U ,{[pwhaHPcy?8$gUAߡjg\mfumR >ڐm'&r5,7Bwg_IA=s%ʷs=^e3^&:*KN?W*6\V+Xԏ` 3 Hk ]NPRD r[ WDzdd` Ivqn;Crz==5 !lpa" ?Iv0&oeWngU6sRcuCٴ.vc^MH d\hfunq ڪg^Z_#en_V 3Ջy6笔i#>})?Y 83jѪ?9 Y:I@;O)prRŠ}z;9NytL~S:k݊Шa٢ ܤ.Ľl;*LXI*k6EŸêRE+2o_Ž\TK0CUV\ѲvÍNAV`&0,r;264t.W2h `a Ό+8>{rRVY\}.hK bmnqV (,sf~)ǞbqC)i5 .,l0Pa^h;{tjlD$8<&6zX!ǩNʎdkWI)2f2@UqVxfߎ썸vkW&2mGC>mF0pO+w [} &/ƍ۷e*Z3h,=xG_F[O28S Jg\J@ɭw2-+:e_Ϻ#fpF87s#;b0V|Z+4Js}8˹'&}**DunJGn\3}yP$eiy< a]X垰.b۸ IqgЛ' R(4T$T`#Ī}IךؒfPC%qPȠ\-F8c  {S@Ls&f@T#yg#L7ΑHX_G-Qډ>v \<C50-͵I?BU-o yI\sƒX p_v eđ`Љ~6=ɍ.A͒[d3Ljh>̲k>Z)7{ezHh`|92 jEK~l1T) Tp!k̘{fD.=Q.Z65CZ+w n6ˎ^-fCXtł.d.#&ۺE@rkΟғ(H%?־"@w [kKɋpl[=֘LXs҄Ƙon>tsh48Fp*!01u Cn%H$g=ut٠⡩+w9i4Zi4u P,ߌ"k{-]XZF1?=^\4 ybVIwШaIAm/9|U] o 7U_8>K As}3Ŕ杏,S8^e 's/? ni[ELxU43U}5f&[g(|>EG+i[EӬz{1^DAQDlQan&U 4=!,X?)43^*ǁ3S$*yˤۢxBl 7 yDbвcӭ|*̡rs!p[kB9UX1Ȼ9t}=qv,7([ cu%V]mbI/bgL%nڋ]ELzdOXR{ѠPCJ`ON^՟M] chl8B2 "-HR8 \d +?Zof| gS`.O?3ǁ=t$fcI1m6 ! k{d\j{(eƶNcTX&gր2n;HPCG>sP2 O.knszP 8X[2`Ϙ_%G[bE9hBffΈ3$ ֹ ]C5[g U\*ITfeƐC8sQ,u{W7*ݳbs&tUHzgw>JPJ)2B=슚oqPEV\S +F;ۭ/@ԂNV=lTL`-1$aMT'2!4 7~Ƚ}=`],6ԲwXF!dQmq'P$Ӥ=!2K)<`XAu(يە0[YHI<{Q)ĊjKRމ`bv̷وNO+-.oJ/9Z5oxWUZ3oA)8+00Ϝm;Gcx:݁!o>*=rQ$ h,*Xȏ@"ѓojHdA*1Wp$T)}")y oC8²$5fȆ+6 (1:o tR1LĐhd<1Yg G4f, \_Qpy)q ,5G~_}9H_lv]aM/uiP|s^'zn<`}P.be]gu&+T!;5v H<:<+KJ{@ rNߣXǧ]h:ngnfǾ2֝)qE[_/e# G[`Eʻ nl}z-9EwixhؕxQ~p[W$0߈ִ*Da^vsy:N!!p,ޏ 4Ջw[$(Ab&J\4/=Ʀwޕ3@W ˴9X Y|ϴar s-,,Uk;lFH1б}5eeF Agr3Rs+w ;,c26чOs ߘnj` vh^'W3M3ۭ#Il>\2N6:4ڡ 85 s32ׂ5 3c~? V7,8vSKIVN g+C.!mSǫ '=m(}.g첽jT =>SYFO6}<']{XZ1;F=1[tI=EqdE.#E%E UZq'}sS`^I8%,,VDu$} (נzwփU_\x*3t|3IM0]?{^X'JPmՏK`Jumk3-q2¸gY‟xcBЖ=a><߉p|7y S}gQ8d'[gwv#Х[&>lqU}S@%cp 3ˍEcT,@%@C澎 0Qe7GiĐ cRl_ Ȏ̵zFؠD!mƒ(boG9YȘnS>5 Ч{n*Bo8fDp4Pu.[txMׇ,Kw- '%o@;]H$ؾag]ΊW#{5B7R*ھ;QlcHo$SV)DFHEX!i2\#ajSgfݳN'l5QY, +6=XOS(4 PQÖfqj-x(xV5[n˘q ˑN/#0WsZUPՓ,_VL|}c>47Q_5 Yz~Iř?+C'N0,:~O;)FoZY/L:#3zeNhqб*p[~qqP/29iBPsRPHʸ .vTxh#-֗BJ~~:^%Stx*Bgh$ɼ8 \WZw:O"UN==]o<e@}ä:m̻μ{ ߖ,V O\a .ˎ**&SrIIC@9 ѽG,۽R77)߲62`a+5yKejߺ'h{}a[5@ړza*cI_8s|m]b-Ez"3Uta'U:UHU]00~uHP2I_ijuh ?+ ~3 K 6=&*̡̕/&Rrc튍o[Ssaפ_ZSaVOpYQ;sz.$"ctk;ӽ2.8}q[%!5S=xa̝}8nWdE1[{jz8%3'7(?-|PP8Qoַkѱ3Monwm7H&TήmG4DrW?b7;DePG/Dվ#K`<}SaVQ͐챰6wkf#mDOBѶvaȡ#<H x<Ț8i~6jVkD<8Y(8C5:TPĎ¹{º *jƪmri \c!SUA;_3.Y遒x4&Xxӗu&abvSՆ-Cy$v3cIa̮بmbz2x*"ª^4`5" Vj7. . Jd#dG|<,|!Ac{= }qs_{iXzZ."_w]<b]iMt{_!f#{a3}H޳þqm\SU HvT*!._"S› լ= /?{z8Kʄ "HT~3u}7 a# va VFb֝f҈1]0*+#d`V$b b ǰ#bZZ4j@<=Y.ݶ^]gdOT8x8{J6] ?iۥd0yG "] d|^so{y. ?Hoo[qkJ{qhdۇhf(N4:X>Zc 6/\)KYjy0Z)uHF LQB,-֝k잙`2xhd*CyÖd$J2x`2^RQK=F_MX`7Yoມ}*s"dBKZ11Xih"6t;qx߆WS"r );ݳA5G^ i7ݛGW;"]:rN0}0Z3}_[@h },^MV[ZK:yP0v1tWͧU zE> l㻛g Lj`pK١7@joNPbJ*QP\@9I"ningKWt,^l T] RRnm4Mh,AC`DϺDxO4IvoSQc]xz F} C#r ,)D]O~ILl6w ѕ;J(, [-UMqf U/(AɦG@k~ZBL=O뻎e'yqYh&c kP A~~0sB҆;i{-|yQCRFe{IG!%-_XN%r먄D@dx58Y-0ֻMw܉`@>"JZ^ڀ+)ʫs#*[6] ~y%nd@y V0dİ ~LGK5$qS_"bv״,s7k*-6cM9i(sR/Ƌ /Xp$t s:~bw*Yn:O- *8 %O]",50 #i'5)&HgE;?iPğbiewdDm@:bvִrXA&ȆLeѫzX8\dq0,ihbbx#4s81YzCԤCMdXblFn\tB%}jy 6ʤ.+ R"օr,5),)͠"ev jhpflRFox_2+115 kMl"Nj4Fbo^dd$>dweiVvy}Ԑl\œK*7`B'$O%qQ,B$+Pp`D/8YvK`PZ4EfاXQFԺQ!1S袤Wa(^C ڞov3L&wS fR) a6he"e[_BG2a F: OM 4ogn$࿼׉\A$_-_xeT UgŸߛf yΎњ_C#l48VDbeV-k/엱ܢ ¶񲤤UA%弢g[]؛3rQC{tI"?f v;QSFFe׎!;N Fr; fx]j B9X" &A%]`;wY.dž.![ Ҹիa >l/>J#Q0j*Z#՛5k8+#:] g3PK JaA%;TKfk7/%o'u둘DzkhRϘ#R>GICI#O4~yDIJ"SSp)Dƾlmɰ arBvXWSI8Z'fjhVIN5u?A@ ^uKixaRUrݿt:)5dLB7ќIPtm G#u\Ƃy`Hr\ L᛬8@!{XW\#"یIh1局 5TI{/sI,AfDz!Hv0a bXg cN@$RMwxX7P=ZH({Z!9W`/"G :֚GJ[Q b&-v!ڍN`UT?RMWe;yO9 YLM+d8J@/ dK=Xa2S(q3Ï)\h5Ǯq[+ug99vGRx*"8LE$g]PG3#OJa@x^&y.eTyˆHCg ޳)v&PCrv0%BF'ńMRNb E䑄ad2(ƜIRVS0*WtƜGf?p "EKwxPH0sb*sV'P/)'f][K Ҕ#~}Z"P,H/Ĺ7L\r%,m+,͵V Yヒ7,ݺqk"d;%if 5PI@ײ{І eYp@GdncF_;1Jo_.km2<è(?so~>YI9{ظ%?qa%9z6XMNi̴Vuʔ֑Hz<=Ǵr\GRdOQY/FwPжif;UqHmk>j7{Z 9k-IJt}n*X/K.W6ܛGF# l"eE/͔ˉ(km/Po ǃj@p3C]4νš jQ xEaOȎc::~3:lh.Hѫ.WZb0 ZsjWi)ʐ5kPGEڪԃ~z*|4cA(Qeqs=wwF h_8 'Ur@E:ޥ1y2ڶim ރBAC]-|& 'J2] s1v*1˳o T4mVQGrzҶ9$fYY9KY9kUjU"6~Zp(3%0o cg /L)FKRLq]=h˞[)һ[s6Ϙlc?Qn_mU&3T.%7pq<>p*rQL=lu%([>*ݰ,ʜ9!|jk B(lE6EaF5,Ž^`A;w0q9/JB |dZ\ ]q2[3fWbӎ*h&C7UXq{ Ȝy4٢;HmnĖlK?&r>-%2e'a)]L# IY:sY+Yp-H@ІH 0D`3e/;o;#QuR@5xpJ}&ql%VFϴJVx̳jڵ{UGfzjHƅ4B\rEku8ܡc Art)9%u5{c]C;R/s o_(Exk"ZBE|*uᬑ .ebx.a֧n3z:&#^I|rxK GHrX:5>#qja$q;ͬ] Ti1 33 na/u>2|E;U5b< \\%bxA>+2dUΞ>7/bE%綎N;` 1'm&R/'<)uQ|hC6BO*r8<+ޖبǷdkv4BgSV,sr@^Q'=Y8ue8v{bJPAJO)d54SP[E ,i8sq9G]4?1xArv&@hѽ@#7Lu#ɠt@.$#]=']d`0"}L}\f7C}-ٹ޲CNheM[VQH~NLM!+vk8Z,Md: Y{B\v+@ 3nR)j>/zY pcshD?BhB&Eɧ& ɂeS=܋Z~SU9ضN8(THv銿vk_B[U&ujM3Ս`Cl~gH_苗g̑êqzp:eDc䮱IIl"Jה z`"*aÒ+Ҫ=}j:Ðx]oXMAjĕb^U3+{Ũ V V`7"{li/'vcGvdWo}+wPnX7|ny|ءʧB>D L8\|e Qō+s}JK֧2zFųĐyz] yBjl. c{?Yb2.@GX2)vċW&l"AiIp\FɫfhBKsj2B~r~~8[>?1{ @\] ۡ٦LvWqaۘ)X,$('| >B&=M3l͒Hs6zawt_fNV>_\&nuS~3%~~=Q )Y rU4$2}<&$_ht qݧvf̚*3JWs>ڶ 9165lBjf$Z#N-䓅fo%|&_}9VsJ@ll#T\`3q*(Ce9xk=. &*Y INțt*f={'mBs{o0;@;*z ZR C$B9^70tV mYMuۢ|W}HmZSXP PU7!h1أqbKy[Ugvé1/RS4Fr-H>SEtuh&_!L8Ĥv_Qocj޽$%h$!`tVk]M._78mqTD?d;RIvp4̈́s>c9[L?IJI5fH搝kIy5Nw밲HhN'LC$_$ w|?ö B[nXPNIw VutM.Rksvk~!)$k (ns Vd Du*waF#xL~b^słD5Xb6j1`N7&E391[k*\ObXVc .Is֦VctpD&WiQc\]Kei8Ɇ^{ׄ{nٮuSc0_̛CdjmAcQ/˚epm"s?Jwn<>>H*^HrZ.)$. <{xz1Gv hHL. T㾷؂5Ed՟xے|TD؄|j6/(k8VcJ]j7\ cǤtd{Ez_LՎ.W%(%qBЌ(XťkIa@=Pӫ% YeY:}Z;6tHMd lYÀYqDY`Gwz+iJ9io|x6Re'4=Vk>xN,UaE>H$=Ha\r{̶UؤZ>gç# 9IoA"5. 7b2Oc'v|[-k }06_oH10SR;YD'ZXx 9 P&T۠y2vI$ͥfi'@WtP a| .53t^ŁIww҆$l-|Z]> idX= RR􋋱 7!JG7AC_h+$/@ԃVjŷ BP6V*P,.fe~OPFkX~K1zm ii!ܖ% l lW@d&9Ao<֠B˿@;Eaqf&8$ĈtHn p 6Lnv-' kve9H/PyPzOi{DX5DiOC6.; An{\2A ,1ULܥ{4%K>;,s6~Eyu5@Q8YUYvor!]^ïI)j=5LlqwF3݊_I#/oySӅL@p`%1f MM, ".F)'8e6V*2jTU'fd\ b)*<BMA$r繨\E 0$ Xd_)wCQqz,2Bi;Jm/Fk\wl;]j(窮D+Ihc+.YPKD,VHp4c`2K_[v8,uy0WLip qǿBF*?WP-ͪEtC?Z B>dlwTrO%qɅ䌑uw^쬶2+&(=}FG3ϓK9MBv i␇zwUz}׫pLӮEE0 & :6(@FG8k'KVĒ-=B#cWʨ1){ d$<>o|*۩d՘}㳿U?,^F)8='J:eE?p}kg;+t8NEYnPx1$kTڨ'f~EG<,5E룱2s  K) e Y&kgAxd;۬i._4Bss-da6Z8u4꼅#V]wiYŏh˝OȿcGծ,>[:niG\ݛb I@B,vu!4${VI+'*=.?V|³ZB$;VwYU vS)y)N+EFrІˏ\p)Ji 1ޖֿ_SǗ؄B{lv'+fΞ lB^ eVty?87kٽ@?'qrPlC!f_kܷx,+dGerBl 5L7FmKl_&J˳@'QHc_znl JiI4lO$7(ﺥ]ND~fv=aEէӑlwgrۜ\5;|lf| EuWGAHm͏h:af$'aڗ)nE+}w)>@SAs<`x3Ȕ,!׉/<wm" w2"ٝm.1;?4ZGqGg)8SnMcNkeo 䆡P:Z! _*OҀ&$J5ҁHri@3CsE4d+33L-e1XPK2RڻOOeڡ/㻀Ii/%Ⱦ<̷S`x*>Uˆ:@ZɁ+ Hc`K[CFH?'c9TKOoɏ[$?|yF?@U-VoQFB\DjpJd019*HF$*$.3A7BT_80g@4ˉB[@%u =鱜KZHqY/M Zrt!oP35"?f8V޾-BA;zݩ&06}]P 2dZ*Q<0pVXKeԏpapδCd,*R-38S 4iǨ*x #y?x}azr˸jVqx?o~.(|.[.#*ܘ(Ȓ =)"[K/}Q3+sQnZA X* 9rPҚsW+ )k*8U>V]?w)2O=Sy7-*n?ځOQ3j ` %ح5zV>?l]~w*y?agW0j۳3-<~sӸ: ԧLF8:>Sp˻+xolXG5o8P%)kˬ3=uvlr4:{!Կ)CYf ?f&䩮28#KR]M:T{5gn>kF'U@[iH_Y9 :&2'R8`1 w;' O g4 ϕ>NȨeyoE2H E"ug߭7}ʛky8%RU`|#?YQ *)̪A2EM8y *|s2; wb{*H9??t\riqf %Kыˣt 5͢(*hFw$ʵ%RtӳIGrmHڛ: &V/`A̍?Nk>{AHHu>`io [' Ե8uekQ22A/:dׂ@GP,h?ɘp,ZwIyvSso#ɼɨj!GBrzm,4)o%@LL*mVCE`l~ܱ>BRh>x?3;ytt{".] :}|\aQ iqLNHyr\Y  >V*EAhm) SvѺy )N1G|'*s$y7!<zrݵ 6 #p\-KqU%{%%VUXL>2ڊAp wNk pkp mcET,*pyg $7DoբD&K u(ѷIp 0p2v<U65 c|GZ5?NH`{ <ͷk*ҔX<BY$epk;'ϓ6(Y0h&qKņ64v:j;;_/*FcW2$jQ 67\4Y5/U8RI+.!9\PH^h%/)kL+ AbYnP]hk­Buymʁ @*$s, }"XC ^` ғSvỖl*b--|8LF[DiB9("E[F>2xC } J+V^1z+}ypOj+ 5etDϥ:7zo>7%<{Id#Q8[gѿʓˆ*2 SH9Ue8ߢ`=AH*KݿKV/ͣj ޟo5 *Tr %2}0A@76Z%~cp_zUW v?ʣJ9=P ۭjIwۜ$Atԭg:ڦrG]J hnrN+_tVz51~^BA{xtHR0K 3.IiֱB$r a*55G lf  ˺w/Ғb۔>rk.(4 it[=e_lkC B+"N"c[jLF׷#d^nV+3UbzK]_jxO:/_V}Gu&i\=SnO 4# l5oY$qgb"Q۞iugٍx d8ã7!y;}F#XÒl{+[lJ6B;7: =>[>Zif+_6t/a5 ځ~D.yӵ~ G9@[0^slX"}e< pg&@m̠F)!45Mb}gbQ 8L.BKt K+O*! O@kȿӭjEZ4:5>IAFaVq>uN $f)mv=)_\n'ϥ W^cK۴KmƧƕv'1 N{L ZwLR9 m/̷b3앚_Zcytӹ T -=9ۑŚ18Cp{>YmP_w>u%ĆԫE-&[405(i)zH-3DZ{~J_gA%IÙ\h@9jAZXH0 jkg)Nu%a%bO`2UpMkI [&[U 3%+gw{Y䃇(gMEm?\vHu'T{ggNv~E? 5`"ŠVkW%3xzJ3X$:T_ 锌$88B ! Z;.f}!TF)(v;by,-^"(ħGBOuQhv8XuO/mqdɂ^¤by}\Ygy Z:lf"@coq! O|- M-hC(7>LaeeAXSL 俍*M=<\$оKJ|1z8+B^,"GV֭9c&2}t_WJ`A+?뒁?lp쉬ߤ /^E?`p!SidZrGk ۹%I~ԬSņ<2}HCn3/H3Y)l戀6=jS/ CXJn|P"(z] !}',.DឃƯ ?[)lD^lă gzx)-S>*A'tYl>2"*S •,B4rɣҬԔf3_T3E¼Jaei q߶VMቓ̰G)7_\}!XEuƉ_; ӪU$'2VM(<"Zǜ~J=wE*N fN9;JVOHT:@z:6M.SjANUZd<ݮJc* zgZI:ů sϊ4>gx躅]?$)=-(ܬ߄~L GY==~WN0q -iUqL8{X-fW58})=c $д]D+z.8 WX9wGu;uÍ'T4[?oQl` u̼_󿰀Vj~p| \elaƕAS&eTɄvWˆ2K1/,G85 ٔJ8(Υ NW!ѩ/nŝ;G?BB[, ~{A3OR-V8F6 šxjQP찃Ч9Ř>5>- qһ+AO{(U !Kcu5RY@/KrRTF`˜s&]}f;l/p-..!#`nU=2cԲq}@vdG{L4iHѡK)HBBa U0beUЧ5u0x:Ye cev74˨+UW!>u~xX(MI)~Oc,3soVȔ&nfF\ny fNgs:(k; jWZNa: &_.A:6U>ZҶ5m$`dΞI!g#^cc/_ [d)f{Lj]](X,l+kow"]##?L7BP0æF%'yλO<-7srF0i.ΡlԯEa p@1pz1#zG(ڬZ4VΣ8a!Fw}KYy^z6Y< ־MOybREY_8S/rv=TxrQgL G`\4dc JbQt\I*Ru8dv(Mj 30 6-s-o5W31kRe^ &`Q e|z( 8쥎h$􇚼*l-#@7,j&VH :I\ss~>GFjT}BpPq19ZUTLvt}biz{E|w'OgR(߂^C]03)Cٷbِ[Bj` t7$ԥ*l@YVј2g.Y/U qyW)|3X.20:؜ϲTj>Vď^/=zc#xlqt6MWM/-@R$.&ݖbbnN|GmsxM#r! ,m3"k׺0 &QsE:E?'?}XBSf/sM<,x[3 P'Nb8}>\X.+)_ab>j%fGp-oYadxDjBg'j4Lstx֛;aL:F Uzr3/$;Y$o4HRx]3= ݁0$Kwg3Nfؿj9MbmU܌(nY߽cT$ y-KH>A>(.q [ miyx?ذ,Pc98J mk< ^UuT`*r.[-±W8vH\y.Ɂ)nRARGRCzh¸+sZI^y*I֋I `V Y<Aϕ z~/Sxȇ_HrhZߚRnEJ&' .*v3; j;;0P tޟ"Y叧<hOya{^Qj>ߤ(FF=;Z 7wRv1 x{Fe.&~ajI+#wW6Cz˽$F/%s97C`͟K[t'eXJ}>nu9"Eb4.'^Ѐ]Rʬ/xl/‘JBU&>= 75 DdZp*=hgR8"YIxu; hZLg$,>11`.]?GMZW1wy6Q臰w #q*=,I^3Nx} 3iO P՝Ouu(,=yAHe4-w!낄ۿO7A=޵̤rq؛ЪՕM@u('ke8ό_JJځ:ve:g%ődVGa7_t^ȧTASg㝪QN }6qUgVvwU춼3)ߴ%K9|Fña#;+w5 8aKM O~\ު~Fq /$t,?p E Sa`&19X /٪t~>/,^@V~fQj7%pc-)/v/ naυ䫶MYJzO9-={&fMvRZP6־,mw^:I/ n1~sePטn,7j]xK\LGxrz;-I61ⴲ,pplD\d,?Vc\ׯg~e<t'ߵZDd;W@_泝p& n򬶰!h?řlN$9jA3Q JA8̕x\oocHypM&rhMx\v<`Ry^r _^V1W *=ɲ6[3Lp$Sn_s3G+hDXW *KUv@z:*dwX?d]WɊFͷ2:IW $J8#kGQu7N 4;mJ n:oX?>4/>2sv'UUN>dGDiW+{Xפ: bq9pO{MJv&EWC*錤J!,I:$@p0Ϥ9 ]}^ǐy9LH(MZmS՗ˊe%Y?vc) ":a=%/favv>7"=<` CBmyFe,dL6*207h} f\k_H=wʞ (YeD*ACLKnλմ/ J)-Z!:;zoxbqWg(ăFW%,/k,bщLvh{udL]Mh D-6RR5OTx)"*A$Hm˼ڑJ:0ךv}Abqp pIUrZcE 2k$ ǎ̘lfX5)L 0FCL 51^LV%+?:t*\Vu5q[A"Zxpzpe=]6qgy_\ *ϒ=g9^Nzz"; (١jKm'(pAܱSOd?/ǚokjwD?@B5ɯSS9=kxy@EIXPL4W5[|zxZߓp}'5,*Қ uG ݏ k킙fC~MޕlgXNJB`m WE/BC@PC|P jO!JV>I u.>#misYTͼQsEzb%ȽXm?nMo]NCe10W^d"}s۽MEb8ytEzhI=}dtP1 *$+dP陪 n8"#0&8 :Օ1fE;TuBɾз/etsۘ 83Zz FyZ=lbXs4؎m^Zʕ+Tw]"cX)m4-#3Q Y1Ŷ, #0tp.hIϋ@Ex&wM~/63%_}\07'*]]Rf!.uffΝKc&q{KoF| Y9R(Z _~c$^RrI[B=\œf g3hwaSc露mD <@C,L}N5V;:Md{>Eqgz&-ֺ#n-#_B>t*;lS< Z/PHk#,*(oJ',% "Y!TnAL{dѮo/ҋ""rŝFM@dGbeZ4Ǡns8!3r#67VnHh= 9*!!U~~qݳ&p,ZX)UKD3Dn">yv4JLBiqj` Pݲ`F<= B.ՒҤBœ*,).3fQI=53s\#if_dvїVQbN5iVtBF $2* b}~ e9ER gvR[A&;+ fҧTLxۣƏV~+8Dz ANhU+s]W[$tXlҏ:, xwfSX@<w%&T)n3K/buޣ (iTS|3`L ;Y+u*}ҮЯv${Eq;SQYÇPQw^2yP{pb`#"In 8}WKdgP#QscHP1Z ctR5NY(ąؿb+qlI&L mNrF֫@πvJ)-7r3. 70l uLCN%E$`ω?6n.V͊1 8bj{i*5W9i*k1O=Դ~LroW\C 3 A X)϶WܚZ ≳V)J6 xaSvOzHiK;jt^w]HTs3-:QV-)yt0$;^ q{HKE+`;춸b2&Li& %|BIyo%ALNJELH3 h7ĺ\Pn$GqaqmN͖-Fh}K>&.?O'yFC3{p<GX?Ru%L>`"0}6"QWkx\(t"ӭ麔to_^]>s!d;ݢ&+ɪBjijdeD-$h HLEAd&0-FIT!)+R"vĿ@)F:N; $ .o,b}!2zwm3$B2|R PkǕ D-𧌚O&ba.ՓwMoA52*-6!m;la= \^P ƻ^\?"P 턤Ҏen17Rn,WdwyhI rH(D#{;H|z]j kE'{*uya ,8q,;  tvf($nVx=}"˒d_V,s{"T^.ёETx~9ez}k55!OldЈ47r~>ΊJ`nmV_stXGz*i4#v ᗶ;cBRJϓBFL7ZHlYKfemT,_~#4}@Ww E#(BT~I exP|,a3G'ks't;hU(raZ nBGQǑ&@HzΜ~вH;c,pM=FllC_zۢ:߾rjzhsq K~ɂ؃H)ojk fH1TbYhmF,Ge2Àa .;I RfS\n{0j:K])Z*녜XN]nM,/cO鶆;/r†6ܞo?) 'sCFF8"nb>@f,7L[|T/˩+ 'j (8t 4rD^<ݩ $sl]]7-zρ,d yw&6$A3䛫C|(ty ުLu_q>B/ulk[Zŀw|\(Z -{[&5 t )|_XBq[r+|Pl#"*kw|cܣ7P|yz}N靽}!J2n#[̮U!"צI:͗Nu9|VK3mxP75+tМ}H+7 iVG"({ؐM -eH/nI*5M]MiQ^ 14'eU`Kn$oň\v #ZhFZFӈGŭ?N+NtZ=l^×8/%l(; ?NpH+S7(*NbΥjMK;[N!l9̃^ 5[AA.F+PS=p]=)Wlɰ')]Z-VhRY7[֯pc:? 'U@'g,0HkzRpTRXVɄNc.:)Z~T^tk@`gn׀RiW근F_ž,{RϪmknW#;o s^,0gcQAS<ƙ^a@:Q&[+>#(bz,g{W\ģQi`)G:^^Tj$;U>ay_YDY-g74#"q$=?2ҿzV5,f@u[`flF͍RE1+^׷V8emj;.SmrosSk8>P1SoVqjWz.0I4DI"5<~'4)h|:|q2IzM@ѝ$ %s(a(5{wp$y\ȹ)iBIHA2(,w!Z.+v**NPz"E>`-ĸXst ]XMLlNC}T6IL{HGS3  tO~Z-RsOlk3g.)&ժ| ΔNV;B>*nJnxS̪v m?C*q 06f^]H+iS'I yk԰= @nU (#D7p]+)f .cDebTCnFh/ÂPܤ;e'@w4O oD蛗7w׊%Hta2z< 0To2dҁ&P3"k8CxbpNDMOz[ GbHR] gY_6pt4Po.] y1h@B\]L#֒}4R u72#&*'Yyr/ @wg<]RCM_:$IxԌUY(kG:٥Dis(e2 F=:!} !Jw]GSVt28*~:d}<ޛc1_z$OѓDmIX+|?!CzG/f;O/y7^+k;u5*ؽZsϭ Yycđ#&=_s(i+6[М(erZ~l|(n m/ *V#]5 b#4,m>9C!|;r-(Vpe%%(Z!|nE}RYIaܙ8t+ J%ީ _7 `?ˑʫ;m`$~R[#PȽz8MT@K}{tc0$4L)?RLGhe'@Z>OΌ>7fq9 ĄO.0?+7ET(kj &WOʎ}.w0ъeTvYA@?GNNU豣@uIp 'L ~AJESӵ?Q àm+Go&\\/wni*f9o/0KX+lC1(kY1סߔoOH󶧆sG~APH+XKg䋁ʂ紌rDRϧ9c{; (1?nޮKD#ߓ61r͏M.Q|w9e<#L0Fz)6.S[F"%MCc0fb>_~ݎR `q}޿宭‘1/ɝf$=l:8`bVPm u:5JQAGDD!ObZq4n7|VV byp]2rc;U@o9\pPR!ߠ_<,9)/d>qx !H>2]3?a~Mz O3UD\n M3!܀f'LEUFRX"wsRrld3\ڸ8EsQӺI=w(mR3ZzJ_-BҎ\TP3@z:{xdT:yݙ6!AHv(7C?[K?'2vX'LUYBߛVjAԑFmA+p'}PHx,l-/=́a-NfR}}aə^6qn !IY'=3oͦ?'t`0Ԣc []鸴^ڦ"+h  )΅}V{ڊ)7I|U)yIfcm&EYN癗msQI:YL䔍,% }@HӞPH<`1eTxl+$k3otiCs9/{-܊Fu[7c0+vo^S=Yk̪  (Eǖ;@6bϬtx݊f<D8 mwܡWyp:{_jIBL1ZS(K$`yלT ǜmjw x: !K7R`00Rn &f0W;ץЀW]3ưApڝ g(D-3QsX0j539K,Bd[؄'S`Ţߣ6@qJO*lb?`>aw(y)C$ϋk4,vAvяrfݫ``ґ+L6mZkZCp1/0d펍QX(*`zt;?M,ZC d?iVt m_W:_pKqJx Z6_u o$Q*]׉][ǡW7a0kD.bD37pS87w1U,L<0VRθ-X[rgzE(&AAOnkx*昔 J+ #Q+D휎7u~scXl$t%Lhp[7"38wxfz&ϑ[X%cl'| qĘOܖ'LNq9s\w:͞qo`3eP IlY1G-)S[:ʾӸ,̏?:`"N=WN>Ay:/qK4\쏩jIML^0q3!t]$}e1uc~GmLmes2|!JӞ+̀pwyQ@B^~ yNHD+OS_Eg.E!};(Bre %r0#44Ϣi 9/CNp^V40 jbY<ڔ=0փj zLQLٯ4ޑ' ]t{6weWgŋZS쐟==ݓ{\hG:U0ۯ6F  gD4@EZelKWPS&L-K+@Xg^=| $o@YV?֖`sKX7dr e?J;C1YQ<Ŕ o5'eG;O>r}jT7M3m}bC3ХrVem>DySBw&Q޷k(j"HXQOO?ȉg}pJʯInUtTbtcq\cP(r~x)-V` /ʬ&0/"Z$RlHxTx}Q\aFyYjcO^ JohlrCKGHv&Hs20 8Goi~>Uݬa DqH1?B%P2:gO2fjq'W2QLSeff]>'͓Ƀ*maM(tG*xI!OcuCjԛ'uBQćWhH(R}jK&p86,.vž.jsL].jidI6L3HZNķy%,qHy8(s!y*WEd#% ._8q\'*BFS %ߔ8QѵYɣUoF{rM$ 7@^I[y5q8 ôSab~ R[ʾ17yBEZp{uJ$U"`:Mվ* mfעUFP 3ٓ‹Gm#2x0z _5+%P"R B5+yznO-9E,LPZ0|ٌfPj<{{2$A,43'?*<y׹/3s鵮Ԇv<aGSq/mqAL&tZkF%Q;e k#^G,'`4 ??)Dzٓbz" Cҏ߽n(t9A~'VKUc-HEV)OSOCdlu]xQs{j.aͬn&ރx%m3T4i4]1 H æ7=bqǫ·*0j 6BLiḑҬeTo0 lO{!<.i+5 O& `Ӎam6-ڒ@ŴIQ,B̈́lr ȢLsTЩk~'6sS;E,Jޓge!}yuŨǮwp l Fn<ԩ[ jɜ~h|˒S7/Q7UUkp6yf zZUeM5ƗE7|Yr:Pds18̄9I*#:o 7{Q h؛z{'gP^Ax~:7vxK~&<`e- س-p&N=U "x.\g2ii)IG[jIN(XcsC'YNR}h-Ex$춽'߇BRP,٪yyե:nd GPē6Jq#/ER xfpհ"qUDfm8FXuj PlRqU߰ 5܉pل!oWR 4W%T>楮s n >\U-c>c4Y0WNx"ʲg]0Ù$Za8˖%rPJZNbctSL&%9V Yy*]NP[Z~.Еۻ49E2Fv+hK7Ӳ>U1ѮuZfo"!`1xGaAеwls-4aM_GGjs}W][y:1fcɐD0լT "KF)IhSӞ#j5r2OM0L0% T#i JC1ܨQl9\^`Y9VUSA}*oN3SVڂe׾AT_·gpfկ^߀(>ȁ8XZQ$-+x~Il}Sk ax S {ڷK3ΖG%vYT-cYfK&M'"8 ڢ1UF됢kC 2r3.y JTX{<NQ4-M{j~w̹J اkK` =-R; +FEzg8fԗa0 1\G>nGCs[bysދ'9D[5)mac1Tu@{ /i#>ܞOO̓!xcUQ+=#>FZuݸI9<7a9_D\/j׶J5-9 3Rd礪t;m2{ Cqt/q.`3˺hKek5_~ͭ|/gtuw"vyC`,ƹGoEuIN@C9z0?5nB (,[nmNC<P RWwڮB+ViqJS`Fi[ʍC:>"Mx+WzX#kUh5Dq>B&4GejI\|\|~^hrRm3s9ؗGLwA_b?& 3B]`T63吖4K*ԭNi dyWN~%P%um\ MOVY0X255'? xݔ=MݞC$@r님"w=b.D+/jϬoH##C%f#aޥXo9K̻td6,O?G8VW˿A>aWk)*8K]K ̒ツ<&Yu" pm!ueku&E:a!rFYK))1/:RK.;ƛ}f-O rCemVX_dx4Ly;C-)v#lwc\Vjԕʙf  2)-YULJT/A";%$;/غEx(5PgƆ2ۘz]WFBs}Bx|T0ϼUP}]~EElHE~a49.G+1xQWvk^״A~i"&TŒ1\;d̥ʱ$]KW ((G~bOdv-on5J[,j1QWrHe]ftY%0&K[i;kr~2 OBGc T.]_h~hО"K&3\ҕJpI qЧciXRlf dȴ*+5Gڎ]:SmC2''V弔?N簕`%Gz{{}d{sTY*8^U)[>y ȝJ-ďfZkuvLG8^aWōVԞ]^2w֦B!C&7K\ua=6md]_eRI eҦ"x[XF'hlx#=Z4 -hB^ 8a,cc> 2GffR=ۥZ3Xw~ 4R#Bp"H dތOC;;˱l]NG^> o(K5v F5wi Æ(lUI?I7rHPAcrGЗ_ <ݚ81ZGY*{]nC֌⿉~v`z>XnIº ʖ]ƅsAh/t:|-E#g~ ?(Rb/`dB/Hn&P Ib~ I4mwI:b=E`P(-!,h;gaT|颷{ˆ"=|M/AlZWىW(x#g4VO__I= & cPY(TK'e~y {+*!LnGL#ܞKqGLm"84ج@$a:W3Ʌ0џ ^70esϾ+mZ@hjvꩨ\Ȃn2_/["oKْZ$t$/[c | 2XpkWLN2WQ7]:jS̑L7p 忁Uo l!g,<1KН:IOp@ܬqA§qtQ"H饓50۹[**'nӱjڥz3b*UW/0aw18[?׮V0 S;|QD.6a?3 iQm>>\ D.I~YJgÎX[]Õ@9T5`2?A6ҚZ?"e=؃\/HFt{YtY*hz@?RJwۍb9߃=_`Ś,`whvь' 76hl{fu^GqM:@tl>1ѕA恭={`dPđ~e7GSȾІOs@+; L,{%Oon~ &$[*2+n6I +«jKy&~ɠdĮ#YpobQۤY q=Y:e1;ZHH-4;)p< yCm1"k9uh#bXfn~XP'rWgQ獅Z>!еWxPls)"I4z5l &/þ\ݐ-,mH:}[%kcEl9|c'dcpD, 2)(}ZϸHR#wHXDCbrOK Di^gv* -\HJjўN{ f><-kwp&Lt u<.,GAKd#=m 4 Ҡ`gK,kBƽ֛]"jXhE瞸z1`R{hC-JKС8[pӗ#Iwl;G,Mc,i)'gGVwκWq>zSEiE8&i#wH4 Ѵ,PM3-b &?:v``ǜ8Q ZUjW?r <y K;5DἱMiEE@`*d 5G!{ {*-`]p:qG]<E9E~s;$H42q6u#@ҭi<0jQuU4=ӫW?<À'd*Cƺ[0peGisB6F}4T12bze cd`3:Gn w-"NN߃_DLi=T,{]q7hX+K1 %+U=2~QLov_f 0!{Э&N .]*dM]y63NihH]W!?x(Σe+ PN)nX_x44})`#51q#bJVJ N6hb:lRk cC$ޒF SCfNgj׬ 6d}^S λwj(HKNgɎa!7>h6UoT{o+i+;y8kjyCHy׎(70q@~[H}QJ%Rdyk?=p,pƠY遶RdOւO4̶͖W9 Z 3AOxo{mIA!Z$V,),>pca5"(p/o&GMnU>Hr%KF.9یCW#(52? 3D2]ҵ!2![ᓅ00!H6<9s{_ߣ7Y?Ö9+0?Kэ5P&! ^'C$"'h-u]SO4=7p@f6R*M05[i!;vR@x0Ut QM%g ɩDs?Clz(::Њ̖:mM\Gw &XSo0|k ]AEezI%=NwS"߹02U1k,vt;m~|~! $!;O04BcP<1opw?Zy5-PA1L v5|}oj0yA4WYl|L f5U}lyZ4[ #'L'usز&}f.&7#PmP5 jGr*"}=  PXLT B4n>*яt6eXS`TQe6$ :C矵3 _%g IVNdd $F;' <ۨB ¿4^A$yDm[sVwщՌE Aʚh wc rRXkcd֔)ASM I&w }!ATchO*f P@K2\NZ(zqRYeN tI1-#Jڤ>i)窾N tS 4F¢ʼ0>'}*Jr)$wᆧ+i#> .ruvV#@2G%=[!^9(!T/RhM.`.Ptfms[T'~.}WSEK=[M+azmO02P#NYu2}ozaZN0#I v׀~C5O 6)j|9&>+˹NzT[yb]O;ըLqRB'6L3ow>-tmOV(ڲa Oޓӄo҂"0zc$-reMIhSw^2 h@p +4~MW%!+ǠlzawL?BN16MNMCg[|}JEGڤEGӔI/]:Y"z;ֈlXm LߋZB%hთw.B 򉩄ߴp2Gcd:~HC0zt/T~4lA!"HAN|1Ra<^}M*_̼nyʄ;ڋ\G]Z_= y@?? 61yقO*L8B߁z:nvmJnWcO|3hG&a>}-|FծE<}qynFzRׯަT\ͫEm+ ه_f"㰩NBh&.\z k7%6RU5(!S[f$1M+HEGмk.y _!:{@BTӰRkt(E!"r !p=/n|E&I;oQ^Īl8m02XGQLJZ?Η*j-3R!bO]wdao q6oz%,WgTIf_u w;Xk]3_OwᶖP9m\"9JB*]콏vpm %*o%p3 B"ؚ\$>wYFx3l&=FJ#LbjeTB̉-:f6%#\8%Yi* }sGo82 7 q.t. K菮 "TAomEQnd+?"m#-Cl @T7pl(a* 6kQMȌLmP>tS3=$.pu@2eMW^A)Hd#-G $44 q}\6_?9Ϭ﫲N ܝ9Fu(`0XyUgv!CK@2UGkf}O \8o2Yv*9cbMgK.af50eqi ᦇ/ܜT)Z(5t&M/d7cOar;0Ҧΐڶ \H &]04 Ô:۫(lOvsRJ L],*I4/LB㟥a $=\\kDjd%}>}(BWP[u9G~#$o@;H{-A}*ݏϣU7NAj5ZF1Չ:sdJޮOqu_rSv-YN*;ŸutG޽wSn11)[ 8f h{0z괴-*)'vpq %QPhdۋ: ?j}[Je 2dA?bnΖJ̭[Mx@uvY@q6/_ u[)c gǘX3o2@ ~~> 䎄7{C𩽩5'DHCz](_z7QtѾ<08]9oBܴj6ĔA/jF bﺒAطMIW+&HAw(7\vϝ3( =]4g~?\?y^$Nm2±MI j|=d>n2az|]T@:TdEq!)C6|c;os9.MT#k&4^%l0N0XSZag.j7s:ګg'K!ڎ>?b濥V B{'sk|[*Q^C4-}WʂgBT*77)PC QTXzsXI/Aqg'{V gw֞b="Lw3Er 2#Αa>v|:߈}Wh+O?wɻq$$'l;Y*koұ F~3\{dF{. >GNhN/zjNtBo[u<~.=uaÕ&.^D]]'ud@9qF_d] [懡'5^@Qp%WDrg21 Tvv٦1eyp7sXm֟MCFfd5zɑkc~oV l=nAǬ⅔?X#/cBmk?(Pb$s.2$%c>wy ~N~XIfhh(;63[Fn(&ӪsP@hrr D(?̢5Cդ*\^Q_DV[͕=o`Żǩ_mVRg+d*(Y.ĖNNa,XȲ=hc T-\l`I% NU@vU妩@7my ׂUw᭲|2WAMq%[=;0V5>ٲPz%Kxe\4f}&QR`y  Cn Iy5^<ƭ_[k'ib];x %CJ[)h䮩Y@XKOb!yce]chOt޴i򟃑,ĥYE:m"Y+?'OvAO}~D\kGڳLvS#&.?;\neڻK?Bvrvn(tz.&ʹ{ATP-g4ҿ/-H355^pt宒ӠQJ} B=1E[I$.%ι9lk|.D{ `z_W\-5Ŭ'k;U?ad4)}) $d?tW->[<;2i׺l8,VC~3A<暐׷vG j9Q*1*OpGj;> (W޾V DLEy"O켛,2/Ϫ 4^b3<qJ.pvA۟='_QS#H [;ˬٔز<m9[dR<HfظZ7ZU58+:{mK^[0Lpq*HTLSH#d6;⫂[M`k#4vPWG?=Q8߻]/2Xj5CW~`ۀ3nU8gIuhnR܎<쒞̙+&鋕rofjǎ'HX}?z-pn1MTy=&CT5B2:#.n[GWO.d6F <7$-~ʂӰL=1 Ot/cBǽ`q.Y6(ƯuD[{2kJ9+FSo lzSg|6o.ᘬRH+D `*|^4V v_[XoJs',ؙd~! (U]}XG z}1A+bskPۖW+IJTŭPśpWf>},ӂRv[iRWeǝO>B>YTAHC? ;g9 $3=H?W)3xf/=0N^5M~`΅<CΔ~n*2fZb]eu3b0=.U97p[mmf~^vy_K*lHVkAZw7E,.M/c꿫ADbirF?&, 0/Z#=_LgCzgN@s(MT=Ġu%P~ ۥaLEJD[Y??+Q6\Pڙ8w*T)!Y)a<$vvnAipSh`3Ga{H)crڮ?z8jjeÍaQ(pk7K"fl_X4$9]5nV`O (p$cTz2ë\F,)#,I GDx@em-~~HZ5N~(>?F΂NuAO7LIW QoM8'y & $ oPRp!3L]K<{Y(v_[y8 7n9v{D+kE3k8zMۣD3@eCmCSQv޳ٲGȭ;t+~H\4v M*kyJ,48>ߝj%61/@9CcF6iLٹtL+~'>Q+HqTK3&\,bI$E/'flK nD_V:!]>]:[IK96Ţ=;e0H;[{Fơ]:KwɠχJvg j0{sq#6#=ʖ$3\FGD'j*fK8~ JZFX#-τ ,׏ml3ir,u?cX MN_]<<X<)n6NxBc!5YGV _7|!TJkCn[= 4')Jϑ*l7!vc:p%7l>>4X!gM!W8-gL\yc`ΧsAFn<sNo nLrmP%A ZfuvV ;K諂)p|UiB5A,+ YoƲ;}̣0*Z;41=_ Ԯ66X.\ iInU*脻̋> fFMv ak@`Ҋ]-4b==Q%;UYaEo%U\AUcH4r,pY,Ne>`;_ Nh0SQF4׋>Ǧ:.1/r(n"c+4G 7PowxNdY =а҃qG1YY_wԟyI-J |)@ 2,M$X:8.8p>[1[-_z5u*~/CqdOQf{ *^, Q~fܑo92سʭTGu/Ûw, DFջ9)5ګ]R#5KRp>_iR}4dӻiY TS q@ZF% BMB斬7f#xN'On Ŧf>1 I}yCUE&OqBRI;;0w2rMd g<tI",˱W)GN}+(I&R,uJtq'{mO%bױ'g{EDlSm@I .,r(]4u>$x97(,TsmUn=i{ 근g PŰoZޅ}&-7[&NAÿbDW0w}ƷQ7#y w#a҂n.>yC6$2 YwQPY2A74E c20qauxyRWS^ޫsrdE(9FFݞ'C1HW7ɼf$PzDVT˰ ǯJĆ3L?%e0DŽ ) ·.birGIM`㠟- ׊؁~_?v؆,(k鈟,Pn C^33KFv`fflv[|Rwy=HT.L9TQ2:|e@iў^;SW 8a$Zz>tH1>9!,GsQ/$|y` N}h #ƆH5 0.]K 鶱(ႚ[6;tY: L:4Xko[WHdf%\LKiiu>ڴZ2'TFdI^pU4g!0YYY!州,L6lwk8o%JX:ƫ̺g N5W#~U'X_̩@,:Y\ #))S@PFZ"掄z'L& Vm*JHЂM8i|6KZg$ Z6~H{lC0aj{ü$u$?A=9B[~Ըaebٍ _.Iu(Nju$3jT;ZzSYHr vTޠ׃z}@d5ǒ+ۯAruK(921N@~n!qQy;t0镸pr MMTs.pCB@7/\!ONF$s ++`,솰 3a?9+3H_ZHd P:tRgBۏ *S6GZw+u {K(?^:ׅ(* KgO+'=#v\lר6r*.Y Nۓ߰-8t]m}_{-8z^L -0Hp)sAp&)aLm{T +sgA"cQ+aӐ! _̭^, 5a(r7:-5aȮ}n&DҔn0r/p,nQe83mGm -ׅ}_5~x`*iNS$zjf.{1¯6,ŗh._W<.CqM*s_.ˌ+z Lͽ0Hf⫉-ɥAML8rg`tQS;#N`{aV=S7Qqvk#&)g;6҈~qAbg C+ѻ]G\CMFfCekvbi7Wg.4)IBo;l+vQ*RG@L_qWb.t0jmhכ@嵜 ϟ1/ "5=0<߂@\SlhS,kV 3||Mt֥cM_V\NFxW QHOʜ3'p6ÙAN?0rG+"627 Zׁ:pX$mMӚѮ˳ZܒoAO$.,pمˎ0s?RElߒB7nN;Yޢu)PQB{Xh]+lpMisP⻜{\Ƌ%>S_]L;I#X}@g2H5y*G%8"ݵ:9٠" 3@Hš{3VUE,P3}]xۓPzVWތ/x(BF:6^WM&,}B)0˃u,*|Kvў&[ɱECmLg&jnpF0qV8%=j ! Q~: P5P7ߝM\q/{,S72tZ J-]l,̀: ͡ČSK* R`HC*> LbU;K'[u95ہp0H/;HijwmCNQS+?Ly06Ngy,IܺS .v4!P~2v5b{y4 2 Y,.ܥ+xzSZ5m1RXF(~<((L@L?++&ɍX"O4^К4X\I͹r5p""#2i|,a|N˴ݡMjOK`K._B~*jJ\ebijT,7ǀkW*V\gn"sƮ(5O8d/si+~24B?m9PS7=3P u}JpYCrfbQX1nU CwE$$<8au]*0ⓀEd9y{5LWgG[#T/&9]IR"m,jQ)`}&#?ҼGJLA+ī^ a@| agL>Kʌ|UBB<\=yH9*o^zP7')4eIfo);J>dt!5v^_b `l,s=~c(lq6&;ڵTΎ$xZiM VK)@uS5|eIU: 4](Ԇ1 Kc\m{^uvEH@@Ձ3VWfޞ<ׂ]p2DHTBி:}Z 5zrDLXdbTU\e @"fećVc].8s T?ŽUЬ,R8Vdz$h'maݩ/UUAgl+Tsk/"Uv E%@. mz~roGͥ >AX~JTIh'ʶ\<13Z{^9?U=$9} $9Og$ z&f/¹A#l)8/W21XEX? 'uؓb(W^So{7Lܽ!Eim庶ܪm>h-!;A ɷ=q/岔n//*Ljqj'Py%LyzqA,os"Ta%(TY-zT'C).U̚i[,U:~yzhv bȠK^1NߗAJT:Ш:b21cm( ĄF_Dқ6]NRA2&ܙ+ ~M@A9,r<;"Iг%iWɠp|fYu]}8oE^OfCE*]hp՗m r א )](e8Mo!9a!*]ai:$ƨ{ٶW6J}vބ|TTeMsji)ݯ0(OK]x9)fP`:AGXW;EyHP0 f̯29#mi#KOGu c1]1R,|WUmŸ=WŪ&@^Z+mv m(' dfA)@EKP5+jb!)hJ,I 8oUvcvd[/|yvڑ1i@880s fL7*7W#dq5 #' b0@ZkT(Ha\"/iGXOYP2X!٧4'p[?J ٍr;a?Ay$/`υƜGN wFg/z؃s=QLDvw?5}c=x%[I#" >6Avx\"=B2b(;*RUص SӨ *ָ0[:OR{&R7an+؜g5B셽cM6+i_ِaHP^jxgV4AJ/"< zQY#-DH@lġGJCRLtMgMbg>Y:Ay}7(>К0PY_w;CceLZZwثh,Ql3i|"V;41*Mј6&:qNWlŻO~H`z|"<܆~<+Pҟ Gin[w-{xq$F+=)jR?"۾ q*6-}ee ,@efݧ<ㆵ)I\-"(VQ>!< >'Dgb/?{VѧS 72bV`&46>2 ٸF ] g^fG[hV\Qis9)m*;4W7t5 g?@ODB`W{i u1ףoxR-% fӢaJM aN"NCp/uķ":=`!ƅS WIM{r)s(BE9#܃I_}-EQ6eM6D%PC]d g3><gddrbP7tl#S(*H^@B-޿]_3n]#uGRx?qrBk|{rkL/X|HSF$:4e1®I*(&  $yᮄ7#iV7HfMfkρT~C~T(F֜pؽ ϝ?k鿇щ\:9ވZ$Jq>K"@n$<ƵCJ*w EI ?CX3f|^x_G& bgk(chUGmSGRHJ.F{a뻎![St]ADm+ds2p?U&~Co(f<ԌꓔMon$<*)͉ש9t\"c*ߗEEtJ| گV 'h@[s+mGFOB ?;v%m|g`kL]N/b0@}1e+awA qʡкX0~*z/T~Bb Lp,;kZ"Ŷ7JXwoz;[:uo!HY։/+kCLL JXs$J@Bi!&J =8h@\3lqÆBN~YE`xiT $)j.uYFc/A4&W\֕vk9ZeM\Zn欬%q[J[7i ̱DH/ns\YT me~Zck4|J4Wdn+]m qKZY,!tc6xSHD9 \iɅ#!;)/Vlw-FV&f@=K*WZ%c/P7[b=c&>\vjOɮk´NWh#2K3K/7"[H]i=Ƶed?T|wvB kܤ:ЕH2q\TZf%.1@ 8xEWZ$d4d:<:Bp)~>ay[js]`6 lQA,<DEXi/`7ڼ?KDF/(MMd';o%@iH B;PiU9(}9\1 |+3ʤ vzl4Iء@?%UܢRP%cOYe=epLH-7[#~]v!f~,$zjR2-|{Zd=HAӚjo=TxIڷ Ly!{uRo5X&WU!WF9P, DΧL>e%] UVҙ ҝLOJ&a12}i|;<BԮǦizK6o4+-4O1}՝jh^z_8&EO-IŪ*L鄼iŽvr0.  v tH+ Heԇx*V$`Dǁ7 -%>>d^MO.uO\Uv3Ioׁ^Q8 B H1TְZJ?NpF OSąV]*GS! vhe«hٿ]Cɱp S kTKy6׷qq_>7lyN܅Ҿ£W$-VPDZ |/wQ+}ׁd3CH BA 9@n4H9L 놅/"z${Fb,GcbBN,Ņ5GgYDMfP!4WW޸zk1 ; Z dQ>x7A rb ]+#34i_n48fSN:$)H!,{/ZHk]o6afQ+E}̔; ']$IS +1?qAJTRf5vw Rqd<ָ;C Zܽԥ Ψn'  Ā,$҉Y!Q)H/I=evi4-hG>mnyŚ\{hPT1Tt Tj]l\ *d76C|K =5|ɇ9ͼO24ƑgG1eq5пLbCȞ:50;#dߑ؝f9s?=+[;0=/\uc*3?-H⸢7q:xդ -iЅ .²z >:2ud79]P~Qlrj&;R|^m"bpkcVvTܜ5SMt1XP O&?T^Pґ9o׺ =##yx5uO6؍ֆ6[8@ܱ 7RjJж[aP Mh2\Y=j?༹E7mk5a3o߅']B`9 v;3?وDP;RN߫%)#1ʮZLע1Vca0s<]nF[=UF2HT A>#v# bE=hOPʮ3DS=Z_"`9@I]QE|P XeIRaiR9Ef'wGoty(b4ڞ o 4HZ}vpG[Gy[/\ k/ƯYgCƛmHځJGx!>Y<.f@^r= O!NZŲEhp睺k]ROnR|yjŽ4=I Jǒ h`P?5^M&b9ViI)լD$3d2 "/`~9q.QpdfZ4˯4,!*z4p^gQw,PS ߈s2dblSum]S;k~d5s/_y, y,؞pf5"k3ѕg͕_$tsn-BK ,ڬM[dNGZhc}O};!r4p3˔XE?V~K?r,a?a @_8K(\0Mݟ0>-m7W \ ,f7[Iz"7)gi}疼鏇4Obr l[FfMH{:FP@. lԷ;jȠJ^3ñ 8ifK{2PȂ}Cn@Gc',GI$6vqz.+] k{J/)R;UL։O})fw8xvv_aDmNչ5?r;!Фgs 1+e M%D8Mܶʮ(&[!{t]jKTtaK-s_3XGo/?L34K]-O (RpQc?UE^:I5'Z\ڐS$ܮF01O"ڰYk]z>m0y3z_ÛV7[kpk!nl1XoSSy!MRc,F&zٲ;DG.3^ )_RyعX 4C&>.:S쬏,Xfg-/%l׳ڇ\'>nfq=qPFFюaU_TI NFՀdE8[=񧂙mh1Ҳc GR}k{?NWz&GX7ԚUGPvkwhk6?lF(=dŅ 2gBĺm`Q#s;IUac3?"^svvU.&$OSO硵$|B.%<4pt+}I3Y7zVBUňM(zK$ ᢲ= z1F=!W[ u:dAV&j5z9>W^QP&V%*./y"0 oʘ*ߐntsٜoMP<[O(W땁sb[rEt Μٷuery{7oC!rr~. wlۂ~x]c&;f>kRfEhoEv˳L4e|IPcC&/\ өluW8a uoIe[u',fDݚۿ]#`s?$8}gtDŽm,C0o fQWu9BU#]sT@$P""S1)bxaݫ'y􍓌7 L8Bfjsc) .ߣUm쿩#a՜Ϝl^d!A舊~c 8n푳i}a6Q44h3®U'> ?ߒ듪[iYF<`{H2HPCt= VSvmLvyѱAS Fy%|;{6dr6!LW5 "KN1mw|=^VG!ṫgyL*p~9Z&F(ćѿ\`F#0ӗe Xa+fw).Ek2:םmS<xƪ}#ݷat@_aG Hzع5e||mmΒMthпh ͫ].&ךȩMoG4!ֳ+9 w/DlrVKz}-'BcPOzi Wb@2Z_wL  K]BDa8or*Xpw=ŧ*'B a~񩳗郯Yۑ b@z9~5XP@K KNdCF.NOVfiF&^}@2J۶(S@p1<]#C[B[noylwdr6/"lN2䔭}aeh N5`t8;!x@R ԗR#5iA 6nB\Eˆ\@q2qF6sdv[siC96WM-8hǮ/){*;`I\=J'x_8辞":m!t0\i[]Q0 !ږN+G $.,OH(3*߿ػ*4dHc1B%ɣO.W}{m'r#FBZͶ1 qV_6n_@ӹ8h+wn"Cs:rPZlF ,b0B ݓh6erNWO2>]J_:Cz8*mvH/q|-M ӏӾQl;A}ʚu^ ʝR3)TynP!=ЎT~4[wLG%%W/nL@CVǎK?FfꏬRGy#yJv+Ijm d&6(+"/2;Oc^.]E,UDZ9USN1R.!u앪2&n*k9O#t򨚨EH6sܪ 7 -gks,f&~\֣N V t疣DArw;B#OܹF;#y>:{,.Ǹ?څ%2,RRɆ$9e"]o#}0nx 3E6(7&[0qՌưg\e? :όo=&IOG![t= Xr\Iz$JAi%(=c_O#hKnjWDh7&^s̒@ՏP ۠rϖ 93+y=0MJE `.q+ 7 " 8hx: 4ei|GSQvǙhIB/,st*` jGqM@uD8a{ϱ\DNY -"i3 2;O oyfӀJHJc<>0l5 5"۝FZ憩6Q) ̫@w2&i^]Ah10?gz ]Y6t7j{!L ":*AL^~ fd7Tg/kɪ4g^CNAi7P[6C<9VjB ?=7b37"JEOn2y5fB6-;ÕǃQ+L2 RdGް`IeB$: yRZLZdD*/oUJjݗ%LsP.ym @P<0@=l2FųQ{]x+" ;xh_}n <)ƱW&|0"H`dm}}̦b&rz@hה7 |9n.V*j{.ٞSEES&0I$Y6l|Y@/NK}^ƶ,$s|p-^,f|ˤ$f0(!1ژd~82$ދ*Xǟ](H+oPG< dG8"MMU`^aΨ.van |tn؆u՗L0g<)&Xˮ8. {S7Pay)5LUdb pvjL=N7(Dǜδ!m-hSj6Nm+v1:]+Dq,L;ұ0Dz7S *Z8NI!u,Et:2'{O\[KV{FxKNǼ9 -56#RZwۓ| W,Jj9gQ趱rLDT*QMe+J04z`ˆ*=4{ʪ%Ey@vYAvL:^Q^~slzhkvb4V$Αn*r9g~CවKN&h± yRc܇ur͛.ƕ~&*'/0 |pP|d?<匶 ט`CSʀMWn_n0EE&F_8:? Irz`:ӄ":L *gLgBicYt^S@uK?#q{G'$}X*/Bgo@2Yx"-Hn1Idn)*4.Dk+w1cct7 4=e WM/Ǔ)Ӊ[z#Ԗ`篙ˆZ%o՗g|WěxxCՔNE7Z#0j ?M^CeYSkbˈM" @pn]_9զ$x:u%mPww9~^Dx2}Xpv:Veĩop7Ho/0>6衸]@eIdzvJw1rLZjەm `]If怍4u*ViTw+ƻQӨfXjM-;X)>7݃Τk.8^ d :JW=FE/)CʷB$o ;+-5Ǣ)ȽEv6Ru`Ԝ 7T"TGkV֩¶aIޖU4(䪐rM Rlw'6P-l-LؔMg"AvefEA6IShq)?]j純ͳ %lGZwJ2ݦK-4_ *X7n~6\:O東߈=,ȩjPEDw庰p!P&:0."ǧcA6!^WkUhh*VuU Vbг|qG(Ou /PJd"Ͽ 07>7`RBµ1[*f;R3d0Cڼ8RMz  jBP+"ؓA<:|gG."x[a!8/6N+:w1-SS)kfrzR.~ -)CDCr~%EwG'HBr &)7:gr݃D*GRamޟ!YR!B!{|WbdqpǙoa~E wlf]1%7Db^#>٬s77*P$6v.t']iaNGޫ‰lj[۴)]9{Imү, 5k&r^RsMX*{af,\10ڦߧ#L:-)ᷯөX1؂NCuE|'.1G~N{AoxTC!;\{J9{v= F5cHq1 Ҟ90na %>c5 1,ejQ/;ze&j4߳3 AC%ܑわ@\o+ +'Bp+zӀne5ދ!2Rel3]%7iNWӯF@kgs r}R-sSK蜎9-&FobfcFM-y_yԡqT``vFJJRmKN#~6^<\+ =f[^C^8v|w8kxJ`sQz$R!DݚX4*:'pʫD?`6eΨH_50dlgk5Yw׭S`[% ;;ĤU =k'*0V DǞrLƹ=Ucs-R囥_H(a:\<(_7ō0Oh65]kc#}JYJ ׼ A "3J~I{~EWD8SQPN.r&Aue5Eɗ@pLA'MbXzKl:3H|Hn/IjmJh<֮srA.ͬ!sdE >]Ub8Ԑr\?2q|#_EmXJ#Z46N2ijK`>m0$-*%JW2zc1Q1ֶm)IRiϚt[p]e j aS2@s ʨ DXE0‚+Vh"3np^][v?P f9Hb:'=3*"a~SVG|bFo9#oW3"BJ)6z^B%ۊϔ(3@RSi# *MM]H93z; L%zJz=_vo5 K7{e:wut.+r-;гLo[M秙 K'A hFU%-N\V( &^D#5n5%n 5SU԰{pK6{0Eӳ͡ 56Q ߮ant ՞C$/z? n>.ѿdC1^sB{c+Wmn? sv BHF)2l#߫ӆꄺqz*@*~K5) ܇dG/>8~ ɵp]Enu|H.W^Lэ 4sg ݍ77¿@ ȴ@JM/Fe}cn@ES**a ّK?1h lp-]&LS⮶.uڬ L|(o?m7Ao@gd% uݦnrXݞꤳgSD|cGSl8b])FvQ+)c77[^^A(=' 77ZkY/Id/~K664A"-Uo$}մ_#KC,A ^ް NSDĹI[w>.PF6H̐n5R8x&ŰoX/zL4G&v+^E~yt{jBemѴ~s1dR5q>W: <8_*g{ʬd3MQa($s򏴽 la(EqJ}<*9 \3[p({(.5WDɨBtK + =;%Kf (:nG%bE{JC$$uD)};4  h,tFt>sdT-1߈7۪v?z9mĵvll~^@66K6PT\emˬ6'd H <*4"&Jz=G,眹 ΧxOSXp2y99N>3:h k@04?䍬9s￐WDtEu=Pu@zn' J6vٽlE /OrpB`(YyX~1ì=q7Foo"Š};%g [}BnJPJT>/>H55F@%˜ >ާ\NJ1>j7jS7!R^Mױj#6 T>^cP4Q# *#XbwXRߝ㓉iJsݶDW>sy~CBĺ(Gj:ђ{sE1ASmbx>1IoYE @GٝF}N23VSLԐ`c@هy2|b4'7-Ѡ?IJU'U- h㎚ MUڋ: "TdV cbgSO G:FvV۝H˙69Ƶ}^EE?!2oUW0+L]Ȭ:G>p770ï]k{%E?yqE#&*ľz%I , Ϝ "\q-'U-Aeq73$t9OWA9üyϪ #荊xB^ti)?>Q /S3z-U/YK; [c_.LG.CF QSYF -?$^FuzDlŽOQ8rʈ1azA 353o{@\rВ>7Dsۼd}d@w;v_lƟB[Zs_cXRSG!^@]k>͑*lwI3۾bC+2j# 5| 5#1?[emĉn4HBC'0X;P;.گb6 E4PwoE_˥pN)2G3e;hCb}sg#I?f` S=!a ݏSe >)I| *8ʖ ie|/ Y'Kcsl { c!s8ffǏ:J4o[wXUV.j*<\YfIJN.) 5YDC8d /*S0NMb*' 67gOme)cΫ󄉨i/2mzME_iIc'8v7* Ǩr7vמjC!S~j2*Wk$9 W,@2nYƗ ي*?ExU@d6zP Tݞ'lE2qcq] ` O/t ?))O[ZgMxy4oȹx؟M̀~"6H|Lto/{Ou\|OsHh*3^prܴ Ed~,a LmLbe 8qkO|Z;>#*末8߯`,66+?1{KVfm{ :DJl ܶpLj [s Mh!LB>1<^@&ѷ?L%|AL<1`U*r-Y 3 =]yq~SLmRt {lq}TȣW'5{u~ N% =R}:m?X CUs/n( oHهC'g;z+I蔶:}Skx8u5z^;\-(C~>>/QQQ9)|'癫zgJ#)s?eY1XΜeԔvs6HZuK~Ge6\Bs`biQ'3O=+柧TVZ1ZNd{ L /=.@z2$qX&P.0^Tddb%=If!Uf4X"pE"D4+? AO6&2z?Y߁H6 4~?)_氉hOTTS>`!!.1]j M /dRNKp^>>5 %˽>?W zzEcfԮ⤎]ct1hLKZEpUOrf'OQxMniN\f '6w|Ml7ٷ#_:%_ nv߮zh'AܯPc&^ߞf~[i2iz[_'$XY5=/Trׇc2;AƏ>Tx8vC? #f6 BH50Ĵ:+[-/iMlWdŦ@+;sf/lEtpoXeiCk@{}!׹]l4 KH6hQ `$dq>2#~qـ!Nju*/}9p?ҕ&펧N!ey,AkKٸ,VE5thJy>PKFMhhqvO>}l&pb%R O`H`xwD׌,YqAcb,9;*`:^|˜:Ϸs|;d:R$ ;Hldz|EI RD`DEsN}E`?ۂ7e\q.SȊd \kS?:V.G" yM޸f|u;5PQ2$xYD,S͞#95gRPCvxSĊZ:zG BD>^g6A].W ; A@RAyGOG`Mv \#,PhnckگMV Bsfc$hH)F- D B(Cwz(Ɩ;O0CV[?.X6f M=D{ N[*F+e~ӁBEWDN-!1Jq!q'ovSRrSˊRG2d V !|aB26{?E*fPDG3p-dN,<1א?-\G!S7`mx̹ &#n4&\mR?W`ՁBY sut+@ZUzCn(!)Wm+ĐP^R(|{јZp qY8ɞvɎe&zpCiarX0 x õmlH\΁R`ThpH[Y U\&A =qʪzQd?elf87u 9s!iH}eQOױ*5v~9p 0ñ\}iQwn+ҋJWBkXjKge 'D.ixxѾ-mDF 3Q0ޖ7;<>ض%vg]eK v(?ؔ m{Z>ɐ&YH o:TKEFpUI"dDŽO2*h{`MXkG|Gt" j8*7D1INdPs [b#tDaJ8%CvaZpgfAacM!m6l6þ )Y AYfONiֱJg0EXH`{dw}NK9LAJ4}4UtG>"\O9|~yPOUȇ@0,eW\Qo)wL l߶h|cի뙇|o>ɒ$0`˴3j'l 2Fj 5EfVmVllk~)4hOiߵi6N)P;>pt[(v֒pl(<={@ǐOPiQSoM94y}PW+E[@P8MSmޫ(6tE*u ><о3>uKHIibܥ?Jc?LC"C/:m<&^K ak60v-b˻g"Ik9L5S$hS:<|]D!L\c.O {ӭ5{Q 2&Ę/3M RdCRX@!b(VS#JธmǩP꼓B7>ÏAUNH7NJ!ۨF zt)d/]]ꢧib[RΙŇ#9w `%LH+RasGb@꧜//@uoՓa'6~/4`޵=B]nbuj@֊ڈ;BXߦ&qpK΅4+J>߀K`8lϳV` dѾ#h4`^bCCP J] ^͛|Aoϧ^h7]I^LmhqobJӶ;Ǻ*:ǣk'ȵ]1}6k GsC%0v;?IX Wa'G_vaTiB25Ն񅂼^\=FsI1".P=$5;֕*4SU4 aL><,@<Qۑ(afEd:."]i9yg z0G1&bE.uނ(:c:20Q}W9/V6҉fNtڨaWxT3B.l;Ewt@ʋT1g}yIT'`sm$3*g|!cZXQ)%[6Cmk&y~r6 W!v%S/mЕ;?񙝛_'h$RttB"OIO=K3@_A &=\pVjfg0*#g4ĺ_ H sY}}ȃVY[+G/Iѧp,mǤ(-74O2.t[$q^A^hjdBe5y^"#\Wzʆykby3[žJNˏ6z 63T/JGq*Jب( wаw-2ԣ*ln\{/gK^ %6JƖzY _AzQ!XNA)U$u,+04)SxMVPxo<|0SvXS=ߘ$ LZ d+`Bׇ6Oe(B!`yKrg ؓx~.Z&R-D4o'V2o)`9o1 6PM.lq%"hEJ/uЏHGQ:BޱN?)%bcI[YzCX?VKDwGW01Ņw7PvpZ9L8V6DV:= $"\c{nw2Sb&T0AўT1'xZ7VJ!'Qx< "2hGd1enNWz{q ic)? }0 .eSk/B/B.տh YW@ű8,Șwth 1{|(k2*$n°髟n>EN 0Cw) }5Aj(+U\*ۦpepAV{y=QL*c҉7*\?ғ h!XJZ%cn6 BOK;j|4-=s]%۳Jj6GN"˿b||K@ͧEjb= 瑊XKZa SJ9*턔2'1{_ت-!?4A6j$YWii24ŠmjjUt b@2EͶ VYiIZS*0Dr#^Ӆ菔"E8oC@de6"gj@+- o[kDUY۸78䒍B=B5K/Qnz]y˟84e(,c>*O)b ྫ8up.Jt7ywMSPF^Fvt# Yph;8Advg??fFP~o'gePb.afS U JLal+ԳNA8`VCbjIM 8L "dd0M}?XۗޟU97 bbț]+d]r# V~{b8*'WYMƐ$UZXӸ~㩤%x<,w6hIE#G k2A8 {atfQR#UHP Ww;K[nJ[y\Vgcʚ@N7W%"Nտ]D17V#˥..U3%gߏX.2!*xۢh-zѽ'?묉ׅ O<Ƣ}i%!WB`;[W[[}Y'cg nu0s4' SI6qyx|v&IqF0xT vR PHg!)QG]+' Н|4i@ K)%ܮ V5\Mjm>{Vb~a/|SUrH_ELsQ-5Gm=}/-?|?  z>>e~m~"`<tuZSCBTl(qõ.7ՕY Ti®15YhcQCAk0Mf4HeYDC25`+_364k!Qé0 Ae7ٸ6)ڐ'dŚ`V ;6 . ޲Yc2[ݮxsf5 JWIEe O@[?0p+=y0G _۩x% {- Bp'-/~Z]Uo=i Qeb'T޳6cʁ"dkvH+xowvuK}3mh:yAg]-j:ў_  ךͿ=T(**ʬCy1J|(Tq@*>5:)+9DZe.0V^ h){eTYP}kO QfC2v=*:dJ2xG*9 D ˂RcfU #<|Q=[Zu{SVqw%,E9=P.ȥZ֕@N 3qGwļ R (F>:ȹdMy[/Xߟ8 5YEh 뜗jcz&Gs=5c!쾡-` bLTKA sΪ (pMF \T񕙤L?$z )RMx;Z["Z4!@&qʑhV|57nr shؼdj~c/C mWH7byvg+^jmP1tU^C/ڲ؞nV-㨣̲ O=+BȀ5t ~{ z4P($4ʸ7ٝ+]Fj7Ƈ66R|} h=hϖa7 RB)>ě׉a@؎:Fj=XI% y ~  ɱ팧o5EͶOcm^d8qKh'F&j&EJNՆzGMX 6mqMwKQ$d|w?cfC dDJCBC%ǤT@z#|`mZ$Wִ;mIAU >Qx zpc\Yȱi&ܸJNt/ dZk=P@,#CĬC}"µk E*̬qqQkEK(M)hI ]\,y /mp^$= Lj)ydB>Vp? dՔ`rmM쟦vΗɁR9L*3m%7Ei~.̻tdtW#,a -ϺÆF/ 'CU` M?|nK2 1) mcDc;=9a9> Zpؘ''Zr~x"j>bNy7t(k_= 1W&ʂ#NfmfI!!,T1$f@2ɉnjc3(~^=*VZfQޘC_/n;>4PK-Ω֨$d&h{n9n +zY~z/5ЃN+Sic5H 7ze^*WEե*GMI"qV/Mw=zUYn[}ٔ˿e9[$kdgJqS0Q,ga϶Q%:*R_xY8-ˆ2to pA`? }0'^O};^R(TsUc? L۠3!uEB}::{l_5 \)9.-'o>}^FtDgKb+ 9 >A[jP:Z&N6 ;eT1},ى/$uQpX̔v[iMT(=Lbܪ W"|\>Y X_]>J5\9B?z(IyhPMQ(tlPS]$>\?jˮQ,eI3rŚ k!]a!sK.<^+018S 7WӦo凐#X|7]V~ԏKdNz)A0_e>tQeht@3(UDTIlPؽk O+g묗j 4Ȧ #. ^Qfgi]Z쐖WSmT5Yš 鰂5|V2*PC|*?nX[0F[s;K4izJ }ֽ|v"sLo?@YO*hs>\j ->E qR1M롚dvR<~~A~'#&]^yWJ2O{: !";ё!q^ʜғdTbn!TcRC+៺am􄄣͵v/jb#pEMAu fh kV\ɿ[۽aI Ljn)}S-;0z=RamgWH= ۇO\[|6Οf,O3Mj:OM%1@HrVJjQ$ӟp;[|>L R%-KSs N^-sz^6HtKt@ϗ%22 \#𓴦r_#C>*/6'5N}~Qu+ԽODqJ9]|zz\NOz C A,+hXU3ajOshG{Y3|֒JƅT~cf&P*R+xlp\}.nṒfV}\zۨB6Eo@p㺑1v˶=vM/H (/{.(IFwSH~n}s7MZ;?yjv;N6#K36!l*Dbhkj*r$h"⶜㰆ivH;vKA.w${!( `kuKҾGLtīq`;:ࡻ ڛxת=3;LI^+2n۳*y=F#ujnSoKR ?Y ˽[|XWW-ߣsrQ L] ˦4CMlw9TlXvEPo6fƦN`Me{ͱG[NG 8|Hsl$}9+>Tz`sSu&WlRM %cvb/I8}?xHctD.%XJ%AA/1M%N40f^4x}lo]ٷĩD&MI2ȝzќCȶ1~9]o ;!V4"Sc(^P>Hخ1~NǺVa1(}~'~lW|d,$C]UJDu #a w[->cAoxXur49NH_C9KCβm&.@~*;O?~G`jB#S1^ ke=m۸X9]@ C$cLQt`w3Tךzp-۩}vmnǐ O7Kq=T_A'jcc$ԔtU=Tl~,V`W;T+C.(;tNՠfԚ^\6cQFL̷#NʂnI/ ە9g[UajVM~+B]2:-I?>>]"@K RCN:#)Be@̎v[1ZΖrNx.hi9eeC'uZ^;t{!8L:~[4'Y}!6[,~B8Rl;qF29A2`qkdȃtDIHhgE /98dZRNr: 7t룏ZOd:KѵQ@@?g*ɬAf2n=[}j/+%~CϐT Ԕ {gu)gԆ>ʩ#4p&x˔? \ara[,&e/^H;yGwa%D-u425SLe2t35%r1o!v67#_R/,`i@.V'a ~7aq&" e9ylQ JQU#Sb'\K\=&:Q;AiBuZ[r׶*߄-?nv?ΞfSTa\:iwo6Q̂fXZ|pH/f`kN}4w~&t~uAKSpxWbl0SlK˗9>m1VIc9$|ۦV72aizjു4x )5>P9ig1õStH#Rtp*aMО)xK_` Lܢy #;kVϤr/TǤUփZ D>Ga`Sʎ}hE]{Ew|ſ%,Ϙ=@/BLl5fV\M=&dD4B#\=dT@(.u[< h`rof8hijo Y 41B ǣ*q)OK2re.d-w~ZZIii)$g8C #(\i>ۣT" .Q -TǾ.iS4~Ȣ=$'N jb R{7 Yӡ)S92O]lMQ/ yog2lO,//E9y{G%?M$3ں\܅ZVML'QUƶs ^ C6jEH0٦ ч"KA91W}pRQDss39OUAob聿aDxhYr(\rű|O #{د:%)WG5*rΜ+W,gDQ_F.r"h{(Y]\Lr U#F;TKqcD׶JoҪS<֛u+͔ا@̠YL照d eÔ¯ɽ6e]9u.=yE T1[(eۨ_u %RSO%=r!Lcud,37y3Ag/ |Onx˽tV wskI^eLU%-fJodIQ7 Or!È͍ - +L˱%5"@GODb67Tp?"wY)K8PNS\O.7Kޤ]']>ψ$U:rt'~Vչ3MI~MW:U^r YlSvYOt,q^Nu@qi7NUggl 6zv>~jbaاcB8:Փ_b~E]d$sslݳ@0LSՒQ]c8:] !k'NsоNZ%ϧZA/]2ǁbݽ/p-v]9)NJ`g=,cI^5-CoF8lI۟B> :3yY=̫Z) t`*Wl޾tT׳)-߇3@&Ush=-}SKoއM.vyfi)o~S2mkqAJ+f,Md%E ]imVQ!7Y!lCzL *Vn>OK1]E`2"G7N+ٔSB0 `%Ϩڄʀ^9"xuӑY͹|LOݟÁ#2hTRdPՀR}~L dyR&O=_܃6KMxHGgl/"3_H`R4)00~S5CdN +ћr38 Hv=M 7\h, +;r)|l`5t=Hn7X-fKFSkբMCL5vI̽ ;yE_mVt@\ئ ʱ~0]d \ 0sodkٛoI]0k1%A4nAr z$a ӥ})&-fTL]dYӰja ؊bt\l>G>&r0p#?7mvEȩmxe. X&3ϗV5J%ea7Xb0ыT9zƾD/-҇r>$C~C*"S^Z/GPY<gDSp6& yrB۲q˨%J@_GPCRʾUQ.Nc{ih.HH^ d& TYTwZ6S8XWe;rmq:ӎ*X =T`[߰m/-:[eTA)rkj,FDPOl2h.,KbNJXh^Z_#=/5NX$9g\LY(6sq&~O7^T1l&@ 巐 ~-HC * R&5A$F-=oIJDɛ"UUCh,T_&JOsSv9 0gԲ +Ey&pt ʴ׮Sاu_Y*g-[W`cN l$`ڔ ,>Q$9iUj i>@W] 84`i#ca%{fF0ZK P;S!=c ~'#c)c.yM6ic [qd.&|ɀjTz Gj2uU1APџ) THwa E8ЦTZtF+Lf ˁZA>/5@;8*@`OT=a0 &껋2haBj2iG'/Vufs&3!E kb"@'\k滺E Z[&&D K`9qDWj;,Y fx|I )x.~NǼu,867KBoM7Bցt!G]eHsSo:8VӿKޓ z#[*A"5<|LCͤhV˛ۜ^oKOP׮f@N ©xujG 3IFz@! մ) &C{z)~*=b _YsoB1.Vr`-^K[w>k}0$_"HTdXu Nt!Kݴf)Sm#O7G8e>iJܒ{ǨM|s/ X_fԜzߊ"F2B+Z8JrГLB,';vZ7nR{fȊGEffz+ YW%~SA:Ӕ+)g,vΡ^Lg[evq+bh44ZU}GdLY%~$zg)}x%\֔9hJ~!BZؓTGEOw%ܺnWw2~ Be-'i?I䭲K=l@,H7J̠@KWter5ͽKʊߨ^d|YZy9&Hop*n8]~:^yR=IOA=9tڗhc2$pX\ eE>OR'[3zO1 `X״Tsk4cv}IYA3 `v@ş0lܰq:Ag |9= 'w5ƅIEf) 8?p`(qX\@yq%ysV߁J|z'#I֓nx z`\C"QEsgf$V,|:Sp3Tb߹AbpVӷΟsO03414=BX4&|L˨8.1Y"V}op]̠YtRQj4SWt4LsI*/r e8]>^}IOc=D":H7-搚hc‹$7Z0?=)/ٿ ?)Ag("ۼ~xEwi-fc˨Ͼ2P9<`v]KS +Ƞѵck[kdLavy]*V<NQ]!G&m}n^rC{\ՎaH#c WEKtk6 Q_?z5E_N%iKvhUǟjzP| ckGz@2=j~U+a9yuio-"#r,BG2% V\QRSvl`L0k0h{}SP=fܯ@*Ѿ)amMv~oz\Mm u$àB^ }H`(@x9O=>Pqv_ͯt)a\ҫ ' B%T<5NLWJFqcqC $-zs!R٤ 3D5|ؘ,QMScP;YXr=Iıf,9qy@pKQ䄑|%!pQm4CEpIgwȚܟʭ& >=z5+P*TGe6Xݳ15 ,ͦņ񷰾y'&#[(ޫRz>- m(칷p|}KC >ڥ6lXC ;́7[*BèB>gаO}8'IyGS c/G^,!H 8 ,۷Da#EC)m5VNi0BW_A+ p74A~ g@1xGSJCu VTjj69,')1s Ł&q}䝏l,/iZ Z-<ǡJU^9Wq6;SZإ47\}ѡ]Mk`7(EW D 5O+QL[pJe$V/^#6Nڜ/eKG;L!给zIF8qá[lu}܈4tt@UGifHJ.[)Gk,շ%l&s_ cq341T> &`9s;x11^^rl3tz^7q~u m=0qHQC߂>RHf tȆpكA}):]L^[XQ3R5Kv7`<&sbPW:"qҜ>z^sȪ }}74ZTnK}ʧl(/m6CG 5ʾ3Pepm41>hkGGBPOxTWI'tmdwI^pmv88 a,yn_E3"IrHLd0Ȫz{Aɹl] ;,bX:A^rov!=`D߭QnkF閪eތq3[uc<_1r%;L[ 0j35W]ԗS)lc)_1qc0yEJu.:gqPAݹV!4xޒ/g먩E2]RE09t/JsvGjו۹@&+ 廲ffr"8 Oܶ4[/ũ:LilZk4̄5NZ2|鞗`wkZrAC7] ϲk~]q_O:Ž!% ݣ2̒طݣAQ-`'^~/t4tvu6& b 1is UK }g 0 YZLuminescence/data/ExampleData.XSYG.rda0000644000176200001440000016120014762554470017261 0ustar liggesusers7zXZi"6!XC])TW"nRʟu,=!zKnbry}aM8&İ֤s0ɣHEr]! +}/e dmL_Ƅvi(\>p@D4wAS e,|@Ĺ!hQpDC[1!BgJh"CRRd0mNh(d٠#8Z&zdu{aCOo.Qgƛybm1өB&_|L{dۛ*-\Ӕ=:uͮ_2zEZ6V#8虨MzK2Q?TTG"D(b'drooFA"n {GjhG>=qH hm ?(tTy5]ڣ 3' ej>:$m nܻ =榠i ya/,8:_S[xts휉%oi,IH#jQ1,C H ,MmL/8 h%2JxV`ǏyjKa}1= g ;:j%'>Qt"3zO{`sO[uI΋{/*f#X7͆ʿѕ8Fy[ c( 7\d0[U?-o1*.VQS-%ޯ+dwc$zBp&Q- jLYU!5Rֵ٠N uXI'Ay~Lf[&, L(xʯTj#[6g]Us@b s]Q=lnvd%42/_`vxTbNH*ExH Dzm׫,$yh2Zoc|w",Egy{Aq9jbQ\O)QNhE-` ]OҖ>ǑHdᬀ.jx/l2o Wv1_sDdCJŦ"2?xg,OAbELZ;5(oB7W Uj_ndՙ59sLSKT\>L ']<%і d>c35Yӯb_H6 BYi½i |ST+!R`O3ȭbXW$RrN%<ņZҽ@)3EA(Fo[$Q-8l_0Ԁa'qfXWItpr!4- T)ܸZR0ReGB"!O~d]n=R݄'v',2 \`L r\\QMzj#))HoM~^n_dA壘#% ?wj R i`ٵ3-%a{*dB\8P |ƨp!e|an a8Zل [GZ lCv!"no(76˗>W! |^(ZQP Mpz* WBGuc 5w~ Tg. +Lm6a# m./xɥYe@C mJģ/O(D2BٹG68EW#"MystwI@ -E md 3|\楧ʱ_ev{zᚮ>pp![ cDcPbgQEj]$!:$oQ'1hSH;۷?&_2%CpB|T֩>ס9-ѐRE[pUB;nW_?t.EZاaC_c "X оHbTy{VNrx,qِ]Djҿ8IˢI5(C29geXuXpmV^yr02<# jy慁;?))$s6B~*ɉcxWp)Le6( 7́EEke;k ԕc/NkǦL"Fѧ:*Bv##DWK8~.ײA 5Oe,̮odIw/h!L gEWOn6b  E(/㩀TYJ8vx #.P9c@Gg>BtY6EU:zl Y:Dι*+ڥ* ƳEm5M=aw[aոhZo8A̜+O/&klM "w5T3c=,s,Xtj:+ E_1mh8O-)K&v\hKX؏AM&(](EKd ?6s_}HU/hL[wl<#t_v4d"3pB0.%2ȍ ROVa_sy^I&0Y+][r8ڮCP sS]㘟DQ1ҤTرO=quUYd#)dR-K ֱ(G_ZOZg@Z4vO}\6##inR3ΟK4vx?+80wHOv"ySkjum]XvU1~5׆=u7J$ d_CH.~D^]v?PA-fkREX<+b|uq?@w{_QThLޏ |]D&q5 tRAHՅPcm!N0)7m)d:*dbŷ=^C$=)0ajb]l0׳d~&,Щ<{ zq@vE'@9!~ 3~Ep1<%p#@\ƀPΑg"B0X$uvz)c22eK&)G'廖Krn/X_OfkfD/6DfPivRN5#UlӨcjۊ* WFq*zQ )NPWfab*[E۷$XGZ7NJ?}+ÿǜ{[,Wt]a7S#ܫfo(ٹMx44eq +xd/(+V]_@?P>*|xgH1Faew>9ߦηʗ*_`FD !{ď.v9#oUq֕>/=~NZvx0_W.?ȋhP}ui 1<#3ɣx+-ƿRAh=3b4>zY"WK"K\F:N#J"~SW[ԹV.a$<ɆF/g1 E|,iMf*[A%}c?`L+c@).m DKɼu7wTF(z -jCN!AE9kYRӝ鈋;;)[u[j^PS.~ l[9'bGu*YRV&^"Wqs@ҳZtEU)|)/}En^1<5ޱo?EѹȘQq|Pq?֛i)l):n.a8vQzk_(>N 峽XrIVT'18Q;_n%<#jGYt @;cq(J9#iR!k' HB7a B.5`Ѐg.9}1[y?= F7I0pFsXT!eai*Wbؓ;}kdI`nop ȲY6{q_8^y/1(9W\;X/6@Ӎ%a˅ڈ7jrz=&V)*9&#_.hst@8b +e3*MCP@V/ҝyAiĢ^!.7is7iRrw:z&aS/qby;/'ms-Z/O3S·Gq;%8%t @x"[3V<_:dQGIeϐޙIWs$jP)jziޯͧHGeks a8aƠg{bMO8e]")؎DiYs#BqV$,(I#QX"$|R_DJYψ|OӒD,wRO4σFS㚧A_[ͣYՉh}Sot4 bUBU+z4HqG1qfjm_X&2U[rPFx*/ :X*)7 2sSõ͒zR$aZJ|=;~Tz5K "%;PXGQO 3FL=0m׻㡽}.r3"dJ ^LS^t=5O^^lPXDyS)ԑÛӂ9*O2@HeqTG2I2IIgԨ(t]-L+'A6 wyX@d%%vH{x P|HxK 5ǂ0و˽_woB3W.~8gY՜+$޿wv^̤ٞ$9'!;pͥQNs<I&M/6:O--'q+c/Ӓm ObԤ؜w1+(w' -ϓYmz܂C8Qb?zQ?m+o܅#=|.+ ܧw.(-pNވ@!P͸rD'إG_8,0 |řY iKSnn Ig@ 1:CeBe3@}^LEcEȟ3Y!_@- JZN̑|J'L7;:JO@-6HAP@_̸y~%4KX˳Vj݁3~[ޘ~fhiĝR5 Mt_717Yj)-%ZZAHOKr4uZ [֕>&S?.o^L>y&?*9bEx~øhӉ., ~'`xă\wFq OjHAq.Lj9saK{A"L=x';jM ;莳D9n[d6rRtǨ`9TE?~>֬tL}x;ˎۑ^,0[IԧeBZ xH'&ʛx矂yevmnc~ Bu%*hR_ X< Ϳ+dp ܤ(\Xk`g2rk+A$k b^SJ.ƐlcDs']FZo-^yr!?V_`7|='Hz^1UoQ`/5, ,&KU2+yx vIW!Y@pR `7^kc\vw;*< )1(QcOt>HB 02Pr54`o|/*QxϡnQ9 rX.g b}fhP,͞(]8I.4s磦2"_3L !v؊tvnNB1(:*tD6KxpWlVTY4]$vQŌ arMOO Ԇ:7En7v^cT_SstaW)$TfB]t 6uT) pE.OSdlCRl,X̞&+rtSոj_` =E*s lѯxOB-si8$m՛FC@B>A9"|+ T$o`ĸQ* q~<M$P|ZvZo A旚rE:WGO%Rڤe?>n<~LͨD/e- ^Ӄ?ny|yO&`|Z.!vU;T})`<;,iUDڅwn< s80676&f7&/6Mh ,G rSX2CkAB|!&@R,G9e k$uCx@ZeP.[Bx)8穣pW ekd*a`H&(ndfUǥ|8"LXxcQJt@&̈́xMD 2ސg>;P%J@`H7F WuyT ǀ1PE%m%Y]ƸtY >1g4oK,މOG$5F.A[h[H hUq GX QbK{5!M[7kܼm(,Cįx9,7FZ麠ft\ADRt+'kǤcefDzAq"h,j8^s¾F#B3qh ڤz)4ڀ:pPG\UEZհF72nomK|Lqp\i`Xõ^0ښU/C.fIf3"i-\H7}I8u#hF|op=KnT9M-3-~8.j<1]AXyЩTB:i_ݻ*B'Z3pl iw'd)U?ʫIpCX(iz[KhȀw@Zj)r$&:DrxwMHKUY=>=ezĆ=\ȯG #fOht!H 7?EPрރi,XP\3IݓtQlZlfn@َ%%קm֋{})I tAzoni~)=>"YhJюகҤ mwGpf%~!Ýs5Jj8{=X-M)~@Ĥ|g<Ӳ _k≚ pQF?F똙0([bJVW/ |] ~//ldHxTp\)}kKC=:Hqȟ{+Clgşh97g@P xdW.c[]?Pʨ/?&a2OWF83E\Py`;BME?j^;D6u˱Ò?n-m_oq_yx EӸ>E%hq?2s;VS;ȫ.t=a[)D@ƥZA3Vse հ\)^,4t ejY( otq$vm_)hZU F~IIT&lQ+cJϪW16^cg}Xe ZfLAT`EaQ[+mJl Ng QV8Xw =7K$&?6,gqUX I)"_![k@-Sx'e;+.ɇ-*z@ c+a>J .usbխWJ±r5G9|#I}auQ#)5c}U^}Gµ?蚓Uk'naعiXӠ/ V'_H>-/);J';T1ZϽͩ #su]Xޜ!K}U I_pLJ# \*UFGG073ڊB;"^O|k趨%.%uDu:Fko*P%blvdaѺ@ʿy ~~o. V103ەY@a<ʼnGG*>э`l* %9U^RF*1Z6TyOީĵAdLnڣ#͋^W%U6}&ŏ=%^BF:Ox;/GVE$sb.p{8)JI;וk3FHXM5pB# ndFG%h5˪3OM?1Xz k5eM}ɐ }Ȥ7:ѐ{MKs/BWZf:cX1\DF &}ǗL#th,[A`nݍl.5BtY3 䜱,EGr#`O:'U{XI4 *6?K|,2O^dM+-@p~D&1t͛]薳jWa ?y=?G\UT=̬ $|V*U8QehMF[{ T?n7XzJFg{@ "GpL0ICe䨕ӻ_pC^f-[%7,]} ҄p*69wP+JJ3Pȣ|T3bX!XALJahH꽻.S}He(pZW'CohVD:SPO[2vP~8n"xg~y'μrQ1N4_K@S)'l[Pr`hKс®RlE;rb|-BT'?d#LOied\ Jl`V0:B>F$yʌ Me8TKEq45B9c[óJqnR_E>B`R.?= zx ;8m\M÷ B7@(>ʲ39 ^&$Tbm $  ;hͮo)]uP"VheWvϦF}ۉCƱ!R7O<]:GD JLvSvO.>N7vyҭ&`# AM͋(#|9a;̏8C|),8 YaZ/ +2{Ge4o21ٺz VD a<@ʮCjxa_4,y \]io^[%Oq5v'T~ޢ̅Hy>F<"̞@ *(6 swt`-:#mzܫMtsz,ɴGc/²Ck``-\1VbaO_rTx$sJJYZ劦M%CpkP4R:{~%Y=Lnmo=`++1ptYSO摴vF8xvh(C^8+!;n̋y)BdkNhcZx0wG8swoI#czy;V?#/̝c<+>ZHc7b#i*RCQ.j7^^6)Q|J([*a9B}ocUK[V]s.-B*vt[+Ծ31EAF7*I8S$7Diu%%1~16,G`%$\ij7 4ç#}쨐qCA0jm|̈(a,F@p"33YRߤhuPW|h&*ĕ BU]ys'#?-P¶QImP-)99sUk\%"1C--΍XTUN)sg6F}|-P8ےhD%J ^D{8hfN`0!AIf!MdJAݝ>ER_ǀ6c̞Y ma%uVW3)z^"+sȺMPW9fv'.}}S0sD!J-}UQDʚPmLM9L ЙBgw1QHcAauv$1ὁ=J"%Dte! E*7n*%FxwF]ZA};gݣZ 5[#<ǚ*̌v)-;媜Ag+}{ˇ(q@Ʈd qNN>*2!6ƹD7D%2W RA=΃ˏYI83w#f{F9Kq Oq2_{-JM =Xk}cV^R9a]W7FnHc߫! AunugA|\ubE<WӉ_t 1rVj<_3oPaFm gBŏB7JBÒx P["1`W*Q2= *w\a3uTwX.h ]` T%8,^)ƀ`+c0mR.݈)p}nxEn9~ԺzdqQٱ巼1+3P 24b#\> Dp? A)mm tt 𨀁!s:0(0%T6VYPQ !!{)"c{ f2,|H8iCI*N%iә(wos%[^=JLJCq,P1 lھ[ ٳ<ܨUP^RM<.|,-M08B܉cHC v^i >ŠMw Z)-?"8B]}q?rMG,9QgǤD~ACMDxPVCj'G ـH,a?Y/5¨)!ςT[[Ǘ_^=wBZm[ T>兮Mσ8i#8p tǥJȩ=X+Qg( J-ޏJRbFڭjgWA1YwӟU]Ch$aDY4ٙ|E)Oo0Nmj4LrRAyұ9qIuJa(!$Q6k/PrGĬl:K;Uq"59L2pA5>źx}HtUCUd=y*!R;iŋfqc;WLsnΛȸPԑʈn Ta`N`#E/TB#GYsqǍ";䞏rKe_iSc~+JJuG +Pl]>RJ2@T_AǷsZEdΔs+XA<17L8y=<'6ue}#Pew\g5iMTvoi6r3oNK5az!/ s4-re(9*]} qL<0hXSQe1a%DWrU^p 2ni[,[;aB;rt  u1˷Nd8ݶvF7EXl-46M}mht[~Zmr^u{p=恀^'XnZq C4R}Bqu:_#^([|祧Qt *K]^1KS_ crh+'/xڸ%@; 6'35XXqz@jLMc"eq=Ok<7 *T~H^77zL96"]w鍳T'访 N1D-K5X>s''O(,7~s7 I-U5` \]wALfE$ ` 0d|n#ꕒ'wB(?fƘm5J{]pM]bͦD|Dt/]J].6INY)r7(2<2RlDJwT'Xiٺl{B`TcXz^.tЍ9g)LL+4bf,䣮u¨588r0M!/[ c}].n5M9CMפ3OoҪ5؊:D {+Ɂ?.J)\Hz)\e 1;YWNJz0/?LMu^5-ߣ{V`O*HP#0_v+I_t/N:ice%OU^M~U(n”UJ,p]qB"KMĹCG}k!%=aA0q+b(z4'H~G`={իu~L`pOKu!>2#[Th9*}9vOᱨ_}u&0WrPP,F,;!UyJ#J)Iμ3 Et2#?z13u 5N\vbr229ƙ-}1dSM8Nn i[n7ʚP2uM*myUMp25.5mV*UL=0iUh%3Ϲ͋^T4 >h-7DmU\ARhxJDLrڑ0HQW -d6l}gխ5V n/WS$/^Ypܢ禃T"auYYWi1ٿ5v -bZ¶Y 5^f 8X}tev8R 6|eVA+x4pG)RJWVb8ZfnsoLsb@%#^ kX Jkk%$Jo1 cX9:wwILOϣO˧wQ.:_ڕ#*ro- O )uiL۪c [6[*ߔ!-ʎ [)&}(N cCŊ쾐C_3MsS402:,,iLW h3do56R1Z@}.?ؾEXyCtzIOrz8:r:c sԴ6{㓇&Lpx_*f* غjEM}րXaHpt)\tnN70d%ւ!]>RŚiӘ~fn~S$Gkf- !՟g@.cƛ0"iP4cA:p@&ԠEH}vxn<\_X_#ZB6τ 4%8&shpbu5B90B2iDWmiQJ*-!~_h".X5Igԏ!TfBOPA%XZ_NE k$ԧO?*ss_@yZT9}p<)j<+sWO#%-uЗzfZn,egͻX'ԍZ4}k‚^;e8?tH%M9Rgu-"|,ʔh%ߵ3:` UqesӪ]i*ߎigK7i`i3' /״Nezr#@%mjõN;4B`9#*4 syMṯNO`UE P ͔M^BOm|0[%t}X@Ty%*r)'m9J0~i j5ho!`y'$!@X>` NUQ9,\V3hPˊì+rp6ɃU#1zo+iW Ecam`ԓg&߰0Ck 揁 |ǿc$bha66ӡ!G-WXM_{-;F2.0r0bCYk@a!XȼVx8e $dztۗ9{d0s0ˑYm{'I0ޞ Ir(!׷Svb0 xꊫK]\4>|7ѤQj"syNxtW9,bM9..n1B"p! 8Y Ll5 s6wLT=j^ˣ7H)d&)N|1s^̇:1H*+M(&|ܡ#ބ^ķ'ky۷A?8 ?JjֿNvvw)-J[hfBKu=3NԊxMOAhf9wr̪kV;8޸pM5~G TΨ76Jݖ _ȅqPh*5z=Jfx{4ZFB)ZsR?0 %V U+Ui6}{*G%H*`v4,ED%_sl 0c8U6%^jSYʖ ,B!=ZhMO9*/)e&?|̇{:g8@AbG l*""G`#>ɤzR{(}`YNZ/hOqorG(_y?#qr{0c2:?"pߐWP@v+W_dE28D&9{AeYm vv) kKg(7FIZ#~#rUr9}Q5%aj! ؆ ppEj 9 s/[.d%-bh~gGb0$Mx掣m>>i~h2+hR1@!Of8!7P, K-GRhL;5%<fI0|,]mWf1탇lxz*pEUZL schȧM0:iJls:I@_D QZ1%&k5zK^z tX3Yd+UzV,Ծ)v"[c=?>9ByۼFb|'&=QF`. /YY^^. (v[F:4i2G 6yA!-cjyZg{+F!ĤϘw D2S*=:e"#v}^2S-H!A lAqzRĘlxU`]a7υ{ Sg)+%%r eP_ 5${ZxjUM5*fIgQ,;-[ :D4 ,9} m\g>_{ސP x "U$+N1ϡ} X'%=B)tP^>@@IQ$=7O:zqm(ǛM 3RpAvu]%GTCi * @ifO]g˪\9[F֒h[FxH] Wk))ƥGɻL< w WҴޞ\!8+hBqYMme]dp碷<2ZBݷ  5 vS 3mN)5*[z# ^Qj>~٧R ē[ %~vSL{_H̯T 4F~4xc{/21q% EQ`%Tc3=So37wƽؑG᫻RUT:DJAK-ESWLcY1z^ ;/Z>%ږK+Qr5 4Gռs+[.DF")ۊnd3†"bcևkD23ɰ8iW bU hCkQvAA0/]2;䱖`ô/B *r}/<gQ.ብ|@qs $dHd&1'l j}8TCNT#Y)fX;g5YkB$1@)*WGC"WL~6oMJHѴ0|?w5jErE~ V:9E ьPH6kQǪ HcsЎ 6_v;D}tsA!EH9:r8(+i5a?* phie ػiR}ma/%e5 WiCQN Y? Vi|ȟ$dCaLI-;R0|s ^0vRǦ:җeQ(}Y1^$` FI#s]0g!#Qӵ3yE7WvN4ϡyAG`Hj-[?^.H7ن n %:Ӥ;0\`mlȻnv;E#q>LX#N1%l*.S:MM($*lȼY d9ę=r򄨟Yufȉ>{|(pBEpb 0zlQYDcoy/R$^=&pn!Jޕøyk!OQC^r{e#.X]%ūL^3V=6a״|XK(7LЇdڢʠPqA wfV>̂ч\yaA^iˠվ՘xC*ztk/,bW_-y+X&$-4Ŵ)u _gJrvlKu9Zj ѿ(a:xѳ2$yGe2;pAvuyb;`ʧG,:0jyO?`"ٗg.`\%H`)i\ )16F(bH#ml7E Ԗev-PDz0Uw|A/)VuZFcB4 's%4<{HT BhH e6]ŇuD.RAV\ދ4?D96&7nY* 0IٻM)ŲaLPkwэ/.UiA9Bجє%-K Ƿ qNõœV0eԋڱLU!;(w!6~zˢb̶};6Tޮ٠rӀVUz70 ,,0?~!j"ĊLpd+RCYfp({=A4< +Kd)IMzifUg(LckiC+CЛZ]hFx!HG*呌ٳ*y9ʑG2sqWNxJ A3q'Rd$1DECJUOQ٥޿CS"cI>P7vM@k~B<ɧiRo4JNJdBH[B8AB@.к AM]3QlSdVT;6:bM0|G"=sRi;x25sLr[-m72KhōS_E_%y|J+`%s1eLq>u@/Ɓ:GL;s,8TվqQZC [PJ`i&z7W8+=_ "T9XbTtgXd:3ۋ]%kFTsߤOԏvѩvXijBw gn0Di¡b4nFc38]HγV*%2U~'򲀶vF㖂ۓgF(wxҴ & VҚJ(aX<xn"wXټ=pPh?Hxшg圑J-)#Ia#ulh'ssx j ;S996 گc7ɃNЭa -D|m/-{qv)\dKOLV߽N? $zYˇK"I9= cCuV"b1^]6q rf)@NK0Bhgc7yx7iJiH]O+I %Dxbƶ`Gm0gӜyd|sJ7dNJʆ볔p6QZvU"!xMю+롻֙A| Ͻug a?TܴmҾTYRm߰n{m㑜SpFñXJnEfݖIAq(kʆl|iSUetaG{'Me@DW6kS.st)'m~}f4K-缗@I_)ҲV,EUar]^GQ8/{Q? h8&''rp5hQ)"n'ߤS Ś yQ*#Tbo ő-7}QdEZr"WJDh'5{ٛ+#DZ2{:PA9vF2.?ϵ[#!Cی٩rd`doypfI.-Z NXyGשp@zF47[Р^>O@H[rx휉ܓCՑKDƣMt=[ p YIP?HdcmM} SC#G0qGikd~C24 јC7ND rz<ވdQy'p#X:i=XjVG.Y!(TX`$R9=4 LnQ!.{k-&`{K"fqP,)t|=Y--|V@< +%j~z6C {80jrcv2y g rz8Pf w[ 'Ky'kg;&L0WuV&ژtxg:$h>h%㜡s_NX'01Lי.n3Xξ!x .CV#!, ![vY 0g'łٰ4ޢzg #b \\n>Rr "#KGo}cP&p.,!+=C&%a.6ʮe5۷@X؝$ȴosL1ޥ+,XB\95 %8fYL2|w 2:FρṼpqM b}ԩ[pb=g~cY#&Nڽ. :>\GeIi >:N]SPԆySd~>A @cS45>ƪ P-vHawFZը\*3eUuXt1'$B5GLm6N(ȫRv NC2sōV=jrDJJ Tխ-QH̯*Gl/db+fOo u/zӷ>7#w7= +NSp%5pJK:u 0B)>UڶX.*W{UG?A 6+ǽz]sYxͦM 1"Wi15Mfp+>~.=MɫA;}P},hc8obt{MޚD uCȏn,YH 3#8\O 2asa@Nm29.Pzo<MqMN1nnY3O5J&HwdGё&QA6L&h 3TW4<HItBʆy7XYe5p!2>x |[`J32-bI{P>˷Y"?-.҃5S3к3SQ3.pnCpZ%( U%YGlX'I]~d9<][?0F p; p7D^,"!'چ&yDfȟ"׺?G/w8 6ҖPQj+vǖ9{2Ȉ}\9Sѝ±ġW]K ̃-mܺ6E᥋Rг4l h VJ6 UE( #?L#) G`sbF.↢Kط*{)\4Z7l Q9j-"q4*N(ky%lv+@ˮȲaT) ``ܰNڋ+>AQVg B[0)w0 ''6(՝3?6Y˺\oB{WMF9XV5BV2 a)hk N '؞p3 V Xٙ` xTIN~l+ܨ${/U S詫KvCYˢVƯBҠZzM;goph^_n8Eٷ/`&2#5:5f{(WZ Jt"S:Y]IY5$wS\B=]fEΉ ._)R<6%A4V81BGiJxKQl9W$;M'F *}=aRi7d-.EOf6Ӊ}fo=7}U-r=I/(QpS'Nz~FH+p#擈܊'^DTsbXVSg|6j^<*Mʯ&r^MI08rkԣl:Y,nە;E9Gٚ&m$ E/s)ZBf66Utx[źeTqFY`G 4HF сS ׂߊU\URw){oFm ,wfMechl?愯;_Iy|J[`4ْXL"iL^w^ :u9dА5N@Yux"dHs lD sT]ɾ~]W}HN ఏ4 `uȫ5)3C.SBH^V(H=0sPAKyF{ [.%l kM8>@n,"6u[? L+<,x`T&v!zkCW^Јݒ@WosRenY~P_e):KBeX#Ö>"ѻgWY}Kf}Y |X8M'(̸7owpօtBRW 5flqKϒM?^D(Nj(xoe8/`vSU9BT:yf&-e.|-6k.oݕcxhTzhpTqsz(,;{E+D f5M'ҳ:e73)i0],q bO \ST 2Q&WYw|c>qyϟ4 i-:F͛C.'mh5r\s̓cX;RJ;ka#ĠYfn}9fOЄաV}|xi3%p(F"LIN0FQ*[8Y  %"O& }}lfAHt? sϞq,HRXկ5"jRPz)a,Ll&AcdLi|ms_ Ɗ3p/[ϫ 6{2?MWwbOKb0j'Vqω3x5$l9/ưF'FZ CԠDv'ngq%%M+evGc2lH{8mTLjd;x8k)]b7bv*{K=E/)kCÃ"$'͛u~S q2]3=u;X=AjX=7+DDtUCifJzE:&{B0rG31a-My _5G *2]8wժtٺߵD&)ڛwB"S9/9# <}(jVE sflTSTĦJqi%sV_q*z| JM86a@ח^}?&'U6cnنufuA <9rfήdR |(!4sd#B"ꈴ{" Pч`7=OΉz5,1ͯQ݄8K_ = v/@Š5ۘ^D?2'je2yw&ڪ~o=`N9klȧE2"rŃO `;⏠kffb `GőY@Pa :];i,DxZ$(Ͼ-wPDd;dLmնeߴ驚X^mQtN2 <ƸHecO,Zn'>6hS,OىIy(:qCawIvd}z5q/24d,Yق@"Flj"L%hz_mJU(k,KA"J$cg5.Y yL j]cZ;x  \u' "Wj1Qdz|^mMrBxSݘPl0yKJo?4SyjO7ۂic߀RF|ZxOX㢲-tIٓ<[b1nr%'dU={f4oj#UAr,c] =[% }z7CdkQ 2'ߍǺ$4wF+B!dBt6*y_:P3:_!^.htn6BZZtkÊǾ葁 ngX.0hF8 +;'>vMN98^kڙo4cp}K^iR'RfضcIp; ƶ 87ɷ194A/Z҈)]Ҡ&VM~/Y]!BK*Rsd}EJ~%&  yԒ,KueFzDz< D_\'mEsA}@m0\˹ Ģ}m2ڸ,91£gw(nWTC;[_["jH^ Quhr0`]( 畇d@:̥,!A@N<&J^v~RîrRKa-h iPauOP'QɱYAE:=c ar,TBUʒWcRv~łU@[BU4,պ8$<.E:MʺNhz0Tnҭ7Gȼ!Y5Mb gl(2 oX{S =dayTCFxl ;B>ھ[4ldtۚDQlXU׋IdE0Bx%T!}/;}H3z=?;Ym'F26>+Ϻ NT5{$m:k0^4hMn+wDDO9:5W[c܂*Nb;$뿼sL0bKx *ӝ|j{WHQ~ŝdO Q^ ޏ[RNf"]jBlDV0K$ns"歇//7Ki 8Jijٜ+;aM5L%4#A_N4m IyƸ?v!|t2b'K}o% -'xmЅ$Qoi0౫y|\U[Ir7K!T[!5}zw36KibpwoJ6E6\`Exxq# q, dоƂ#7쒜,}K~`00hKڠa~^nF Jh'[."Z N#g5J;.Ujj$2 4ckdy`@;IéAE\oT%gJg H٧8'8[Rĩe8|%oCU-7R lSz$.?l'(?/dфpe},*? 3M3\=~q؆.OX}KxMoW&CbH7S|\ۀUXa2X˦$YS^(`+ ^=ߣg`bb7YK0X_#?k{]ƈ$esama/=sM)aԁדƧ?|2y݌5Do| #gNKon6yС=UHMQ yڞEc'u( \evF}tOH(c: L'ɩ'6/g$).++Vz(|еj/[E-Ao ?+f `bJ=qAiYWǷ$;;sEc)hد#L IvB ? `-^K)ɆۨʄWoJ \!7F'N> .i.4K!AXˠlu[`Q .Bɞ&t)d΋1?~+-p]֌2$0 OB.džGֿ=&NQ'vtvjJkJK-&ĔDX]ێ_k֓Xt|QH\ofWV8PCP~CPaabKi=燒ӷ;HXMє1hAH]D'cZ-* ؾ62jJw45b㠢ӳ< &Bxv} gߥ$ (8jn]v7SFB,,VNCGUO M ӳX]9B0%GOc|-Hac3m82[I{_}/#6'Fϻ-PbfFިUCVX͌nC xHfϞF8.' TBH(Lg7}Ck_9i Y,.F~V1Lp^IJߢy%{əTW4h@Ƀ#ۓ! (ɹ6ti!1Ϻ2< ;e=]TK^!N<0EJ yhƹ \m) }{NCkEl>ˌ@{0[W_d䓎A/uT?21P2=&U%R@}tvu -.c]GJ0;n+8*㏂!*X@+&_dDIH8kSTИH S|Z]3sHẆD(#ҝQlgž]"'庅 ^׉O뽉K=7_s!oCOuGtrmI+@EM㨿r'Ŋ| &=dw)Q`dkQ2@ !SZACI=w`Œ# K]gL*CKF?%xgq[ ً~RKa ut.碑-WqrNo(ti3kiecwz b15o2ܬOs#s`FŶ^kz6{0%&'% ;u-kSE4t[ZAa`aٜ8ʱ`=Dz'Ҝ*m<~N?jRYXSdE\@򮇵 FItX/x s![8̑bSHRY/ @.4I #@?EDd5b=~AOۣ=uD|{F1;_2E3 0F;^nnV5rAgO] B E."8jüX/O_& *rՅsCR)c+4;=e#fv}2!9 Uu "fQ޼oW3C';~Gc_"zsT1^T!8 [ax4d v:8x a@.N>'8'ZtN#/;oY#'E7@Il?eB%1 Arz"u^'vfd] Mazj'Zu]^KQ MxqPJ f[NhGf^]Goz.'hMM`d_*Ce5n*Dk@D[W׏uAQ/(( x-ZO|6?ӞZDhj\6*0/r&>{4q(I<MuS=;_dmr+lCS@@T kRR΁^}{X o͋5L Gy39m4МTwc@E?묡I*`{!u;q.C׉묡DARi5e"icrP=Y}wտ ԰P -1kc(B%sH;%TRdӳYjVgs"5<^*;b-Dy|xn,r96^p 3{4;4{`^0h~ת].9o |6ybLu +熃u9֔ 1ܭ.^(Z`dW.4Wa0Y˙d"7}3<Ϟ{lN;l{T;O_QB9,ׯ#M0 M; #ٴ#Hy`Sqp7]$t䚝BPWIMEڄͲs㥀~yR#ѫG@WWx1LtNLxd-cнZyx'QX0ɲ0>{)4*f#0HO> Fx.O:^T2"|D{uzD$ksr&Y׽jS[ܒ&3Iz PF4>a s c>`ѧj/HZȻaڠpa3N S;w V) !EnB겙V/P["|>sh@#'Tz b>3"/Cb;ᔷSP bJOȔ+;d|1 _6+]$<(m ]dzϽwփS . |BnB M]^K ߿T_#h7 봄0P+`Gj,a̪\b|4ǜ#gYnvK@W3d`Q0ei0 n= 쐚W8.6aEmRŤ{}OD#:x}'ByzYq^ḃ,i_bFYw_:)gO3^S23"7zJđhvr (b{P 72fx D194GY<ϧGN5,ɋ"UL+0:NR߈nh𸲸iā_<*_Yp1͛@G@Bx"]B$/}{(lnWF bښjay'mϯ ʺp&z P4Sm,Q2Q=sHl5";~Au:Bѳ< #;"#6tv-)1m~lF̝Ʋ+k?Bև mz.Ev#JF}*@ٖ E˝|"ߡe>?'SC}|n*ɠKrW}%ݼfR*<@!B@- M8ouպ1ѤJY<!ObAqbM>ϴ U<<e GĿ={'t /i,5>kN<3#F5gKR^13:'H:lenMYs:M#f q=s?7 -*{2_vfWV_*c)_Lha5Ph@Z`Yޡ)AY%,_GG4ܹx#NI |bxf Q&}wMMIe VB1|Ee 2h8noGޗ^K+TqZK gI{1?RZ99$#d&mg&kֻm IQHOٰEV7͊$Q۞ =xfOTr#wum0.aXB| 8@ov4 maNEWe.z\K)6?go=9$qW)yQJD ۳*vA*wB1yi{Pq0qi"oGoXuG..mw@/iUQbGgsUȼ9Ҫ<8M;bE$NgL-ZB^}Ea~[mQIr !CM",UgL@\spUjao+BL/fG`ːzGWJ&œW~x/>UoZ.X싉T%ͤeud,VTl~b)eRZ5}X.K]ߞui4&"elY1X x |xW׉#r!G ɕiB#pe:mOmk!21֏)U.^ZUHT6tȾtش? lo|Ca;2;@ =זk{[

V^ 36`TcCF#56Y< шsPfB@#Ò:huԼ%$˙w%GsDžզ@HNŽ]TY"Cr|.7ƶr<++μ1.;Mq؅zs 5͘5|zS99# `vvvyd9nMrmuݸ! ́#e>r^h\w5q:" F0Ab!)Hq@ҦXgy-%2]WVŸg" J<3URq,W*x5>1<>3]ؐ~Z箲q*ۂ~_0:Leu6wN9D='%9|QmQJ'y^z f OW79fE+DmhOd38D?޴CzFf@ۯ]P T]*H#VS&X7*$4DwޯA#%7kT`z.tAN^G]/Ԑ|rV$g6+KbR#YtkgsIŊ8LCW՞ fGd0 5 Iq-\#/&zPݻ:![pV脝\N )@%m ⺑'WL ٳOO1Nlo1zw#: @642&#\ )d,^LXjn!14bB*K#q/d8:hTvTua#RawK CQ1m@3 nbHK'Qm9T,vW`Y`\p[. ЌjTϱp̿4a=j+b>V^ WP|\r#^Yudv#V:{"~ql-SIS&@@x+̵o͜g u(8NE>6h:((š.T6b#%8s\yo KݦYe WXf+{QF/:o$wCɩC6_Pm+,[ikcFI}_\_KRUc `4nOCfM hni>*J; JI$s?ź, ؾ|/nH/}?r^5ܘ+yh[%ŹdMŲ_[/QM3' d *VnfK.-, Z[Aj:AjivlH ƉSbZ:KW#SMf^<|uة%TY<癟84R"iq@}"b2LIa-P\`R+u$bDm_x`+H ^(0b.-~?$YxG~U|(=G&_@)'.ڹQ m˾ QNo7$K9ʤfFIԗw3 ΈƅS#%.q;甛r-z5b@8FzWYYJzCj􄃭}ˋ7!Ky< M9r_':6xt$&>B%F!<ԾaL5b}[u=cI׍p<>bQ{K˃n( #rpMn[ÒFeYv\!/<?h_ꘫ& F}McNcyзWgdy'V-n2yfinPsE]Ddސmp.dt؁ʨmfs+@s!,S~MH(v\:|W6b uf{w[/3lzPuIV% c ?/N9vW YCչvI熌_?Fm,"YdS&`bp;4!p$e)V0OZs:[>5;Wm>nKIDpdADU3mٻ8b3 *(&x̭e};m ɧ]v68nLMPuZRQ.ueXU 7Mz=,޴d5!e;U;=#+<>Sl띧Q}M~t~k REW٠7d 9dHꬊzQz'|xɽ0սm gu]lk 7E˸JF&! 9u+p-:?!g&9B9w-#GQ+#eǕJ;P ^|okH+2V₻dCAA#  ɒRNNe^fG3suN%r͡/MQ['X`ҞICYGH?tdp}Mx ΉNK|<ƏV]ǀɽo!3 V,œۈR;mcwrMϧM,H| t_~][J6GA2} yo4Wf.ۡҤH È*;CJOPdC=Av(v10XǞ5c#EMؖrr[B덫iZI-GG(wKyȎm`Wz 0a %8B#;ӻE0?E&.p2)OYo:|hE;b*w/nlk -/V[ QtݙKg7wbKq.x#~T.NE;JC>Fjt{۽ug<=(PBWPDN^_XgHCoofI:2n' o 1 z/8E;`*hYfv ޵Φ_IDu WtD,y@lה 9n{BZEM,unw;e3|!JKXjRo*H^=\QcSo);AJnG=3 "͜4Z&RuY eys|h!WWȎ0-nyX#;y B-()kѽ< :ƌ+1>^`SQ q-Ϟv #+1'ӪA0U(k[riz|eWkYnIE ܝYDUQm Sk\p- TV"NlI_b:@㽾֙V`Wm ީ=q{6O Zj,wv\({;=&!y3k6bV7SH9[D)@NhlrFΧ* fF/z%kPxKȷ>tjzRZoCOZ$ _h=o1O9R]a>8 9F^/=/<YVIIPDuB,)lon$@#3u0"2w^ztWG܈X`K4 $x8BZMJʟD/Բ-oaPװjec~(C;oEw r-qwd{1\b#2ǢQVшk2YhV$lq^1Nr!*O:6ܦ~_۶ J0zMHk!_shFpe Ƃ g f:- ^yӿ5.3X# L wzqfhHGA@[yy8 ˵/MXQ=6 ŭmh"nRSϚDfic6S]+zȮa8Ԣu!#}9 8+-w3ElG]!:,r)k:(oq'ۦ8c8Zd31n# ώg8D,jvέe΁d UK KMe(<A7eS^:,ENé $sIN1ʪsN0ѫTn>!S*ry;Y:Z%uW, 5ýբg0c=b=RxщDᳺj"*UNƀ^!C)ah~ DRH?ҳ{Hfu{:.KMGI)lXĴbqgwMtr.)i3KHeVt|Qs\8-&L!(29e,B >*Ud҇#Ej7Eh QF OiCY.+v 6 Fj6LLȼKs >dWzO]p)5XőXrPLO=X=ϼQøZ(6U,4mF/C~}5^9PC7\R7U[I$n:(lq7(%i,䁒~<".-q7b~a54R9o O;̥q:+I,t#{ɂ?$ }z<|5KܙiGsP%&CGA1;2WtC&d0(bCU[Ә_TpYؔfGyܮ -F`ph5Nth\9*{l=' )3֕:82z ȥߧ$*;Linrh?<~JB 9:`@ntB )ϰrbmnjA-ٹ+8e]S>mj` L"X˩Q*ebV+Al0xxb*nuțn#jM+랖c"s+RO<.LZu5hfN_uZP]MG׸2s=;m z ͱ'E~oO"q΃-nLT#:7,4YYg" -޻7}ވ$r>aӨaBHzP[ 4r>syj\}sQdR8==`v%!4ѿPƺK~mI(+8g$ʠCd6L)j&淯Q"+~>Te6[d4 P!6Dc0\pVi7^.$S6d5{ NJß\i/-F=:bԛ7@ʷ*5~0}`o|*CuӞMsȽzCl0 26Q-Q8.m!FwLT@|4oTP=?v<#N_'R}H~ģVl)~!q}vA~@kr+<)5&H5C9WU'NaJr|(w˸aN; ZS=߷66TT~UEӊ6 ޥSy6dM> 5! Dw&[u@F;ہ=ETeσ*Pn那^w[ xČ^L 4L7[Q\k@&ށ- NR=+,fm7Lۉd|;ouU>]͍bv bpo"T @,,}mSz&A \X~Ԭb+?P$a҂BOOU>Rjt;(Xxw[fjN ɟxh4q/g|ĦQt\pbͲ*TH'K ~H |kJsУaЃ7cjlɬK'rHUi}p8HGcϛLi.^A㺃o}~ ~IZKĈ]12#@Al7Һ#{C纁f#LC.޺t&tzz2yKǾgJbV;u%xrҀ&nZX<$vg]b +,JYV3c5B ,D5CJRW9ge 9B "&:*E9ehul~X%Vǖ:, PGT0s%@x Z _/Is>*7^JcNg (F=` &"zށfZtnvn9O?$(ey 27_gah&HXoaEpA%3#+soTp9k_ToX!]m+>\CpRtqMe Olڂ% ,۔mv4;Қm yg)L)O^)DD5)do bE| |^1vwgNJAai z{$>$ o9 E$DCӗCvvyZgJ㗪)Ϭq@}ab5Ur&ǫ2%If 캥`3Ე]R;֥d!&t>YNH(Gk) D=0|yo H >% A#0f Ouу bZ7/0ڐPDmT۵@wLʡ2)M,P@LXEY\g6=E{jN) ֛B@yb4}jRά:JZYaf˷4o53j` H5AVj08$w]8~h*YW`=8V; XiMr[mNC?NqFƸ\o >2, &CAx>8wrc1]q{`2($R^9ͩm10b9X{ҹx]}Nhu0qe_QϸeQ R_Eʥ5T}XjHږ7&Qf@WbU'}<a~1L #'.#[\z侁(Y +[[G].olT5ZL(v{k7%=0eN3QIbBV%$r묶 -s7MXj=$! "EwPBcڞOsIh$F&]U.GЍWJ5s+U$ b3KUSC%(8Ecb (eZKaހ #>K/x7M5c8Ekh"#M@j|}DJzT\Z|0xMˡaUMl4 <)%Օo"d}) $6x [#./Zl0UGfY?>Fg[rG nwˌH݊ej:|O.OGnw3[|쟐&%ԖM 鳽˻d6pGRN3MB &o? $rq)+f),dS N# KT K&c5^ [V@jHdCX;@#[ne64}#yb0-̳L7%H_uq]'TbA;{4bPx֎ *(p4 ü. ъj0':)ot'JЅIn"Nsv8EsORsPNeڔIoS5*~؊VN4lm0c qo™^íy層qлGY֕Z&u|MfkcɪfG;WN3VˏM<^OMy4X,͌L>m7y(ncg76 $8?OP~3Fr4 TYYe a}!puXM6`5J~ߨĞWT}PNKG9A*YwPf_P \;hpVV HֿŌ`w>93XcJ+01f(cl| fCQu4-E u@WZqG;#@NAbHbsA`Uf0Բ6;JF4Fx,k/IkRW /"FR0@EB%;ۓZdD8Hv,{P8Dvp$g+o3@$hw B=+ -oZ!F:E૝ 1LS1Uz@Z;z.Pq*adQ$.1J,%x|2_呉M)4ňѵ*".W3OɚX@7eݢ%`#OMpoUx{cQc2@5(`  ά4ycR0`>ٍfߓ\FG(N41sFۦ\wאY*bXǑ U=hܪescyc{Blxvin͏@o?z~f0$":#}'-ݎ )"#/@9t"6m,K4^:s|b OZ)sdWjW N)wtp *x Qf'#[#{hU2h薐{ EvQ;M mN~S@5TPY* oFr'ñV$[Su*e9tP~PU# {H٢-Ea2dVK y?j^}b56tnz]iG [Vt;*>=ymA\; [`ne -X ʏPԂm^3J_qXzI`(2} vX\k{AA49%''mrp32!o"R#TTȲYau5F[HK;Yn_v޽٠JC╇9٣B8MW m 6WCFZ#p6eZ1OcspY% s{ӡqb^ zac~|I"fNd .e>cP{ji@lXďR6+]tnL} IJQTDnJ{z "oC%Iݡ 7ALX̒@{;Qe`A ܶ}(Z'Iݥ1E6jeu_XGn͞dE07BIb54c-2_+u>~|܍f^TA DXCLlΨNc?#o \*s"](Bdm#?=$3EaqJinP䚱[Lvi"B- Rq OPVwӘwB"0!h.F,Grzj(W-$3'ilFa 8m۞/e^1@g86b-/s[%ʨGr%Ԣ93 Q>76´{"pO QED rouKt[}Ss :fENN%%|ʒ~MD̗4ZBpx("[R":Q׿U 8 :۹v>~gMadLid0H6lviL31l34@ԉ$k#FwipYWS;l>jmҦz-,З 2ȋv@:Sw|O.؍xc1 t.+wjN‚/3Cq-,=qfc;QpdӿZ1v+iOQc5 c:rѴup7mnB&DkgwPpI%+ih@i0i&=ݢBܒ;pvRZ`Q>v$Q\7&߳7A0H_e6@V=1&)v-S7C#}^[8Shc7z<PX ~a.#2C 4FH{GxpkY5)H:e)efbgu؝sp b$`UH`"Ioc$,]aCa=РoC|voY5op{]y.) b&XQsh>6wf uf_jOE)8O4<];`9 OuyWc+s[C)`Xq<_#EQX*RAI.d[)A,+I6ߵa2ç`z}Q O!ѲN^aD~mrTEkПVEsǣJςi&e+`9RIȢSՒYÌ%=+BY D ]b1'4I >6qR,?~# ׆+J5]s YUƓ][b,)m&cuC:{IUXivʿʱ&G4LE}uSQpE*T}kO ˾-_3$0R lݵMPP};[8T^%Ѹ]p{C3(=/oc&l8M܋:O)n,cTNlڴLbTŃEЇ?+#}C}OօgYOS'"I蕱.l[e3e~Ѽ;^L:r-d9ʸ=!KPy <ϒݏVp]074ȹD6X@ -k)&P[Ha۽9u:G^2t6G2. 9${Uv`)*R['ێ獂Y#ud56B,Rq[2."\ ݒ&{׆UꇺSPֻQk<ݒ$yƛà{3z xnB96V"b ΐ~{%Դ*I02]\whc7K^=!A2{_Bt; 靘u>a5B.rO g(-lWPOؐL*+%M;ʂ϶h©ML^) -Z)L`ŻkvÇT\CO~}<\ 44άOS~?7?"j]Aj4j9M#Nm"C; \<+i=ZL{Ctw zVkb#I%O}: 4SҴEM1o}#I0H7㌿Ldy$E S!CäפL1ku"HLӹ'Z6gԟYU m>El\JFJ{p\߀ K􎖊I,–͡\fU5m\w(3X@|~W<'_-ؙ|s K2ȇn]}7RKɸ%5yZy'ekD1eHzBawrƋJ0 YZLuminescence/data/ExampleData.TR_OSL.rda0000644000176200001440000001243014762554470017531 0ustar liggesusers7zXZi"6!X])TW"nRʟA,ʿBJƼy $ 7ZUH2"F4$^HK#דGAa]\DGF}3}bΏ`y >+x5@8&#oMMs7Bk{@WomXע*zl$ ԢR+CBfIp'VGj4Т] b"Ѿ+`xJ ophȅ~;#`%XK4j"<ꊈY"u$.ZA,$U'c0~Rv!!a'瑒W93_9l]̡ 7g~ $&Tau Ɏe`d,i`W@V̠:|Fv {#4t4qm?"GSsV"A3 fo,:!krTaOeI Y&֦LpM4VY}%ɬ3,k9OfE =J֥񴕵=8otHb^`%xV/;o P̶F/ T?(`XYYؖk}X\X{>hƐ7-EF;_xAx/Ak@ ۺ6Y#b4'PU yX#)-І#yX\OA~ޤ#^0Wf,HiuIC_U/$i z^H6i?)tVs- t0tMV!g𽇤E=q /Az)B@x wxDҋ>68+%%@*.k/>:͓)5 +޾"|r(v^yO%6!Qÿ3#veZ9ׂJ^~=_]e{#W 5,R$G;6Ύ@`ݭ[%sAj?Od8*'4uDI϶9aܧ@i}i: '>m4qWgMG#%!@*Yx'Vǰ.#NKrjG?ARS4wNM='_mRŒC*!Xroy=#1˷$g^dzq jÌ ʗP7Yڷct&2ڣ{2 L{ކo#o-8f3O܌5 M0m>?dȤ X6s,mFކLObAb0". '[0_4/H.9ߨ=Q;n[ )c*8*Z;SG-ʼn.[zRsl䴦ͪ|k]"!rU~dkZ@QMs%xcuL6s: Q%^T޹D r`|n߶}'Y]'6M07̑^IvKodٷL ֖. 1Nu4"J& gF-xTU<{]'g,_b f'E8pa}&sl.72 swk5 pT(RͰK9‹O'J αf շmX/_68tI?7\O"{|mPKV@gl#΀dOE6dZрΦU/JO:풂ׁDZUS=1LS:5IpID֨ 0(Jԁ$/x~:`1B }g.!֨> {c*n6+KGstvYi P̴X G 3p.~.| ,I2)28^q`RɊV{y5r!JkByC\6?GeZWL߹P~#p%V8D\&5.h?iK:n1/q %H=A284LK:|.@% a .wjٷ!K΂~07Nu?:EN0uNl"eR%y{!x8x9?o.f&S.:+QqRue؈ 3=_hHIJvh2 "w{RځpzGW/E5=xdtkT2@ =7I(5vV.Qrp>gԽ C}G4JدѨZ=`V';8WL_e,MX]T̴oj#˱Hz eXoHkZE*mPjD@OD`"YO[A% 1`@S]7o6뫎֬DZx~*u:wU#]ި_6urqv4)_z@d6T~*VqhHG{y*d7y%=+ ԾnPsO i|nzs <~ ]X6"7|QK|JV$rN:kqYtHC (@'C4W#4z2G9m[ ^;7Z0dƤO]?vϩq~ zkP(MYcP}D5ݕc8.wwd~kw>*|z7-| Vŋ@KuQBWeJR>ȼ3Em "q5f]T^JhO3BGFGm9?A#,J+EXr1V jxbf\L<Y ѭ\|je 3QnL ⪮-Ō6_u,H/>gUwE&w. ]8[힘/08^qUMڒ1E[nn]Ÿ5NL0h)9rQ{;*+t"AO9XdUxx5VuQW1qֈfɽbcON7 [t}( Ɇ wDȇХEHCCW2K$$pA82q)Qx cyi¶ Q~%B-<69O+?xp\ϐ~ڇ^ktEU 3Wn_5! M碁|JƞAX"8w:}6vrgTq?\pj?zV$]AZr»Q.k} iLHDNCŰ5K M`b/MȌשQUcԾ巈/':,k uQUFF!6QS΃l0 9|zy(C1Z5{@XnnIK#t>oItc/1Z{-+uh46J b/4xGY[мlJnXVa$0+^j 7WMjaU k@yAiˉ i uXYS6bA?Cy4BX%|bk%Jx;wG:9h>Iw~%Xt`G-0j}6 gS&ƔӠ<\|+Ajx޹f}F[*[QC`Ӳrn\DH>E0#ϲ%wɯ`j*N{KQѲ?ݏDbH?rv¢3$UJ -^#@}KBHHb]e@. d԰{15zryAby4Qrd&-bk [NJgn;>QHaO*k *xZű˧1)i'SNVF|rFON\!38ዓh@\G!ިȃh-eõV:*$?J JPݼ: B $Nz -57FOp3 ѭ@c9M,(1vW(䤁7 9CS)؞֗j@O8JN|b6OL\5t?_YR2Bb5n)2<+V#¤BKpPNnâޭ;Zgx:G&&bLܸ9bPL۾;V"l=2O?mJU} jS V_Wn4%1boʛUohe(4?|m@k }!(<]ZBQFHND]fmB$T0)>0 YZLuminescence/data/ExampleData.Fading.rda0000644000176200001440000000533314762554470017663 0ustar liggesusersYgTlHQ,Fi+ذnD$6lAP(zΪ[b% ewأp6Ͻܣ?7yyց BaYħVRa}ԓk|1־ఈ [: Kr$C?'G7{vjh0Mk`-0rm,}W w(M$?-.q6`Y%B=YOjQбVskrZůԍ 1 xڠpu4t:>$ ^Q:?O0];`An7uf`69 1A _F~ )ۮ[ ۗPc(1.%c닗5OHYqtis[O;jo2;t(袝ucԗ}@i < '{ [7j'AjOA%12mj;7{;=e?HS/EhԷ&lovЧXLK ʴg˺ WĮ?Lϣqy<E_Kiߪ98 x6a0b*x&X)\A9}\/(@eܚQ#使j 8bȡD;hLuH Z kzL5Œc.=%YЬ3vɫ d s^ΑhB+S=4ښ2npAfB,V=@I0JB=oNБqr*W89|ByY OVPD}YM.UzyM},%bfAa;Ye®(<͸&(dC=2Aq]慊ȖG^bvHP-ΌsnU#HAU3j?]9o" غx?d+1_tj(7u V̼ h%Э-$>1;Ӽ]r3w2ΗgC?,Wgq@;ޯ4#tp}XIбkn;wd)3 K)̿LU^U>YpF EO%qC8~-AJ꺚"[fː#?rMXmY?N- +8`2#dRw7_@OP.??LIDyg2HȖloHrdذ.Ә<.]z/3J} 'l?Uҕ" cߨq2\n_qv(6$m;,y@δh{5&!mIO?Q׽+FΒM". H 3tgWv k7BHǁ382Zұ=4SUZt !}a`*).ⲐfȝJ50AK\n/c2Ft 29D*w D\.%T+ ~u42iȯ0Fi칚Dm<2ddz^=W]~hl$ H$=CW8cl%psJV@&@ o8 ?m6ǹ$WB&ݜYnip#Z;)< B '2+^2g]یn+ςvwރޣcOXm&"%oȎu'6r)5e۳@N̾"WRp{qyԧ Ԍ]a ,r˒s)uWRt@وWg%ȕ6gwr&FnbK}PL z69*7b@ɀ T͟ǁYHdȆO'P1;ȵ~gqiLy$^QJRp0zש1DMэ "8 p20yZRS+Ua0ʊXT6w~ F"Vom5 *7-Rـ  UPX\A˷AxS ىViƈQ6l(gz[7ju &Z% +]0DEQro8WV-6q:Q`jъ ۯM叧R ⣶M'; ->0 YZLuminescence/data/ExampleData.MortarData.rda0000644000176200001440000000145414762554470020531 0ustar liggesusers7zXZi"6!Xa])TW"nRʟ + ,ʿBJƕ,H"P&%V EGF^4+6F>o]Dn`gMuRHL%Dm*;zbeFVMU YE.q}IW=KKҫyQReW$@- K 2Ճqۑ߸`w[ Í6'1z`vv XCurt!(Ү&j (}~"yl4dÞ~Z0;ȌNGߗz֗{pg|`~Ku:HDjBȨ|C9.zQ4P UE*N*` [6]+C; :,oԦp&FL'79-հ M*f(] 9d %1qKVr&Ƀh:j{vqK~Qz>0 YZLuminescence/data/ExampleData.LxTxData.rda0000644000176200001440000000045514762554470020164 0ustar liggesusers r0b```b`f@& `d`a>!.% I bv0`<r/00p~APdOV/By{8X$&:ylHr4>}e'"[oiy~&]NIK?w~ XX~;m\p$KWAQ 6% d` f`0b74%`OBY\SalP@@\ kQQ~L6$(fdrNb1H W 0,Ҋ),/׃| @3 uLuminescence/data/ExampleData.CW_OSL_Curve.rda0000644000176200001440000001123014762554470020656 0ustar liggesusers7zXZi"6!X#Y])TW"nRʟu,=!z \`=*`[3$oy$vd`]$hsUGn;*2c x^gbb}&%uO>񣢠l~=^O*+/%[$(okX^j-Ffns-/26d"kL7%פU/=rU?+E x_~ȟY%Df`}U'*4XR:MV"r3G7jiQLw &oo'8S\NOATV,]Yx {Dꔿ/14 #GB>-zk0oFq걭H(s//B"ę=_!_8;]Ͼ߯7u-dIςwWڒ;  1/ 8DFv^pd + Ԓ47G"Q+Y 5b-[3ITbrL3S'GC ƎT@Sg2JUD5X~LZDNF'\+ہgivљ3 BDFyDG<1*W:wXѢ ovZ8C$D| y);j-#Լ:I'uYb<4PD|`7awO gwu"5lƬ <^|W~N1I%Đr_X)e ?lQ>l1vVt;jS|Bi e )T&Eb7:ok\Lsݚ:\A];w3| /fL .H46Pk3T+㗥S l7]uʿw)gfXD)h3:^gsXą:v Pж`IfCWX)>{?8iԨ:~T k[A݃ X繭UhMϑi4KiK"z1V CT[vq8 䂻-@reچfNgvG*`!Ȁbr,X \'E [i ӗSNr1 PIO*q(63+=W8ydHkԧLjCB  Hgvx8 YaZ;"NA'4h}co\t#EI]<\TQ2ek"~\ekSL}"fHi?uF=Z8ɾ w(*1 5ۻgx;Y8*Y 2 tMjq^bcB\4SxrFXF-V'1Z MtSdJ0 yC,pك3 [kd;PBiƆʂas *sq(n_ CJ)uyXO'.ɄJe!)z67т\p=7u'?.^~)(*KX[}DKJó^9? QH`~m>6_hFH`!΢gPl~][j.չAN3zeLx|K%sIr^GDzCڷ"O|T_T]]mMxcOq{[ȰUi*"rWzgVZi#tx=Kpfb,wmSe*w~#!}~f6q%5(W-v/" v'[=TM=H:(ywWpϞ k#6S#r »t&7%3ᦨ(xhozu6iR 9e`ɔ.q5X̤9 uF^Q@x,퀤#%,/ńsũU`$Ң(yz)zt){/v? p0&;n\0k'Cz52U(.D ~ޮ*avhEfWy1g*Fi-sβ O(ٖ.%Pj_!'n='݇Ŧz<S"/>+ x!y5ٗaM(uVII s%s9YدE1ٺe#;&k9Ljƺ\1e-+QEbZd?VN$r[`GqzlyQ ~EKfƃ@9EzQuI^c,(\ɴ~j)ñws䋇g-xgwm #]CnQODnj`bGӐSfxF(Rru 6=jr}wQq @?l@i4~~+ڂS-FQd+8T:&S65קSI1zr T`\2whbUK 0+ʨG%Ɋ׿( c{Quf JnHSK]j!/"`tu%H~bl4c.}$vaA}Ѩȃh;+15"10 YZLuminescence/data/BaseDataSet.GrainSizeAttenuation.rda0000644000176200001440000000136114762554470022532 0ustar liggesusersuT HTA}kb"&AfebJLLO,ږ+ֺEQWJJ1UDKjKRBBLJJ**sBνgν"U> BKAnA_+Z VQ![A. livݮNH+TNF&kzZϚ@p"xi,B%0Mi6 LEq\ n f)d9F]X r +?U43^|ɶJ?"c2;i}P#T+?^t@3y鎼Е+smF_o1jh9/痸x=caPEٸ'Px=:3(zz^ނAEAuFp3n2C}DhaRis`Du hΌc ^$[eYǑt%clnȟ0GCKNM$R'fA;V3v L{ ;1짢̽^/f} \OskF qHz]؉?dm8Ga*,y'[Rcv5ۿFҫ?*-bxd' ~V}d?ZiG5)!ZspRΗȅ26*҆^p:ŜlT_+^G|Ssss_hSաLuminescence/data/ExampleData.portableOSL.rda0000644000176200001440000006575414762554470020676 0ustar liggesusers7zXZi"6!XS7j fcH=.2sěp3qcelRIY-'%-rRukDT:qzw=fb\Yk?E$I> ,y9Ȁ {ox"D23H^2_ >/6=o55R+g=4A3i C_WBJxĎeQS39ɫF]5C0E$X87@ %ew>:/ ڟ^U5po}1ߺ(lJqTǜl271F+\ߥ,H/!Si4 A_kP, vwʧ^' OאGn }{'݆b`xz(w[saxUP7N06TT?Q2QWzY'gk[^^k}s͕D^̕2'E -@v=7\ C};{T $#b$#$ ]|̫5A ~%fO{X8εY.m ziұa~ztZ*8Kmt:iX<}@n+ۛaQ&͎#;z}pG*RGce(㠰6EC_ʯ- I/ @֐A-m-H pBUF*Cd@{5S@ְ 75ރbW5S"Oy?K+q Șk |U0αP9 / ABH/.ql Eao,%F -cO KǮ? Sk7d6[ְfHe3cg " Rߣ!zZHI`3r?Zu*W81HM\k؅#J2U٩%dk M{ah^}&5iE +uj}O~ *>~(V!0dF=ڧ`ae` mpbR *(}"7bHW/ydⳗX(^ U0CqiÄ& \:"&"(qYuH U|^o<~qї{_'OV׶ |WˊZ8W}ZZ픁Q;$hp\*y7q BY \#$A۬ ~m M8}S$,hBX6+K`}V{_`7`bq ?Tƿ>ȍ-m'K$0(V&-14ۈb1XU 4KvYJ%S'/Ƒ7dJ95͋5n WR\rX:4]sG`9}ǘ xR05FA|:U+\5$i}!)/_녠F3!I}a"o( z_\ "ݒ'][=(ञx]8~D y$(cfYB݂ˍEw`ەȎRSWXvc81/WrLlSɊC%BAN$ \g5A`J#L8|.%@{i_I ye N>8"o`07pw4jh95 тKGL|D,J>Fģz+4zHaNއU0B4n"gy7Jq9ۗj\n3|S΄MF-h1qE`Ŗj ذspJ_&@u&BCX_@Ҭzu-  '@r҅9)~_պ5Hb *WT +ѷU㎜G@pʡ*q菘b>$gT؝!H?x2g(gHs~E}}a-1VYV!e'Dok$;'x`ƺ12i!%^âAwН>WsA2 F/b /L^?23F-C+!v}jW\<OA[i$|i0lB%tK'u?ŞÁQ'^}b&~1HEg&1;ӑy{u/ /¡H1deJ9AP-Qf%%'^ ~P?`e,#@O~ AVAo%VDap-;Xژ2,^~ U%SWױܤd<⮞*mGL8z}=L<3s3+wDFvQmymynpcK4.LA\~B3q5TKDL&O♯}ÀOD<3IIp7oZy}hZC+8>JڔnMT'$+&7`nrE'f5̽<"4ߨΊ?xB귿 ]VKƬ!{Ht@τed\+Ejf+MNѮ8 '^nSA_+s/GWlP\5օRryIޫ NDv9֟%1f^PN"Cv+Kn5:9|ޟn&?Ύ%?{*ԁIp=כ.1 A0Ē둼VM2S[gINۿ1NjlS17;zǤ]Hssⴐg٥zZ6*-#vRCDu1=届T{=&TR]sGމ0 zMBj۷z5-ZsJ̾ C )3t[x,{{FKӫ]j?!xwo{Ϋ81|S[o72"C!?'׭6BiڊXlQ9 `L:5a:4kc(NхinBV;qsO yzĥLZ5'oXU̍`JUEkQxK0vR# DI5[l1tGҐּZL!, -r<;o+qrcMbi6) LQ:?/ce|-4^t2M~ U)D[ `.P`Xw4B`4~cq&,5n3+Z./g$#"zB5WeTc3#}6" PDv 7!ʧ@Ƞ^ {1e<\\4XBY3߱1eCk\' )?uNN*4;\{|a#ȿ҃<b,:Fj`]"_9+e6?58joP̾XƛVq3 xu J,=i֗SR cAR߁Ԇ*,}CB~S'THI`OȀxZ8sGq¿z6s9zS%Am3K(KݡNI/-#Rj=E3S2z Nsg(4uFzv6{JE"ǎDPwtd/>5cr~-X} ۈ3Y;e.1 gpYs.}z6~.PVV\OuFs{&VncD\vһ1injNIYmV Ke, A8BNhOk!TAE2L5I N[&\jLvJ a s+Wj2A3x)e)c1MkUd Wmѵ0:):hjOP*m9,\?N,E,Ѩ"M{C^`Q?Z33TY`:;VMqM&sBz'vpFt+mkP$K%N +"chx|rwuͅ#DŽO GXs`i<@ "WOQ%*r_kUdcϋzĦҀD틝N< /oIɉQ@F8U%CGݬ$P^*w?ESD,ض2^gf iQꫤر41CǛ1 ُ U]۬LzDҸlWa.r׭D}]ҝDș^[})BoS7m5̚>X޹wG':fBӀR(ñEʏG_!I1Ҕ9(4ֿz< kPVXXZwnrE vm;uhdl&# ,ϒ-k*)tTp-uCpnZ888Ov8f$zt hUmC3BÁ%k@n9%ϚLCç9ڰ{ Cax۪5?PAeq{ǹU i Y uw"ly{|fj5DI#/_'lDd$( =)}x ~( 8WMv4B'}%aO? Ҡ@7=&JiػަA=܏x4V3Ⅽ1ܻ(@Z=6R[ W}# iw-pL-l!U_*vBa#^ʅ"'@I~O+sѹ WWY'}p x~bw걶t.Z_nUXԻw' 01 er:A9AL%ynu2JߠOƽ2P}ׄ#,g7BژU]Mo/CpjOS0Q #Hq^ 1;pqoBq-V Y4PqB:Qκ :Fe ?;4݉HRO=؉p+ȸׇz/M|fgR.S >C>97w?=Q$&\p]OFVh`!Z0i;A"aBJCAb{M)>3:x~64_ky ȑN:ob^Zyu,~ ?6o\0є'W)b-y%R=eP/_[%*ӫp~8PDG?V欩ÖĊܝl諬x&Y F^}ϡrt1,7 zMvqL JnpO 5~!-m:ZTۢ'$gڽ#yL!h GQKҍ0:ʶO2ݗD3ȧg(l7:=;&ygO ׈+)m{-F)V#Kmo+qvCd`|%%c|TV8M(tHYW;1Y@r5T 7–z&}l+\h8ߎAtdec"ϝRxZPeO!`ifvY̮?ֺaB<+]tPZZ}Gj-t4fnKgD/$0YFGe7~qO?%~fu'  j#܂G∛_:r@mbu~2c~Ht']QkO ;eNrxZWgXvE||[iȴ.DZ'c@ U95D|5cB!4i줆kQL$1K߹G]\:*[z01/ `,7 mMDӄ4NUKfzqJۯ0:6 2DS ٹ[ng,EϤZOq{|ÓTYӱIyEd"oUiI.Ba/@,. FH+JCM(әxmWUv UA+Hx~ JNj 43xO8 b^C S^b}|Nu n b! _ )BOv!G'`S6#36R&]ӰFrYڲrrwzWf9'$*`6`nV@^1Q"gF[)@^X1POzM9 cgn./.|I #S]^ƒZIa6uck,+ϣ*'OkUc }0ӯ2sO`Z|f9M W!8gJ"M"ˡ翮7%m#h]{ )& .w'Vv}9oDjFҩ&S9p]=BZ^=N`zq[lDɓnb).DIFtn9E9t:qShh Ͳ~ջf9u\`*$^vjZڒ!8U5=zb fr䋽]^b=.<$KD]3T;3ox34۩:I NJ ^dؿlNg\<89Δ s~00Aoybd';uL=ȴnrk\NTMœj Wڇ)k}P|` C̤A3Pd]32UnMiU2pu*4/_gb 3yu`}TfKî[~o[ڹLrص`F`f]˒L&ɝJ?J6:ENoCVؐqmeb;5L(pVY5ޯ}/Y"0:"Zan̈-,LC؈><8>?*& J Ǖr F-(kYxY, NRS݋~m4~p/U m4;=Y]eѢѣ}*jz~2]PU3az H<p 'QD=Pp% o 5"RYn,eI[i~J*cAc'<zeo`MoXEJޝJM^1drS9-Cz%ʶPzs&[z`1:T{`/s@%]c6sh.Oes& ;=/03⾄M7/Cx2@dsS|ı~NwXq=$2.79<hc0;쬅j\vp??fL4.$(|5vzRGs[#LǽVr䓧Vsзp":F~`V]pKSŽ|17i>wI[J5PԌ2'Z;s,."yT+^tNLA6mzLmL.37aۍXPQ|x/$FAy~ın#75re)(qa՛(ٽb*l߱dv}Z_+:\%XaA V[Rf9mLh7KԦfI+`0-_#} /BWr~{7K$\*1Ef#Gpw.l8;'R-izpN"Mm񣷯ɡV=xwُ2ـks cbTmðidH/wFL3ZPBV2lh2"dԢ5* B,#جLk[\Ott <1NιkP;fNz<}ɪ-AKtp'S'޷AK O~׭3_[qu.[0.rKSKInGa7GR]&OiXCOfN9Q |eI^u0iD$V 7uxo0^eYG9j!W~E&#uSPsƼn*?|ϐ!Mh i7$GqXB.w X}Ut_G K{WE_\ e wO]`LyDÒ͠%**$> vNL6_bK&:Ŝ1{jҕ4_l=N|joRA2oJH3!9BR\J&{[q¹dc~Nqߦan}XK^Ľlnޯ S;Ó;f Fr';{N $p:@R/}CfkyЕZceb3bh߾ 0^(}yMˠF-A&NBK,l6tJc~j%奮^0+xeb"x_+L_d7K w8[1{m/B'lgEZ z^ _mA&1A9>(YӱEMv2R?S?,?: z[Qc>6UDD8dtYpQ hiwP5 {bOөJ%Oxlo"]V&j-lJTɥ Tk^Y^MWw"nDlɂopFk\'7$th'l4wZ>5O"LѺ0~QE)-S_i8VH5;DRU4x`y9X@͋+Lįܐ8(B;4EG|L-W;sZ~I f'1Z-$.E^OUpNo^VJיYSy[2+Y:$kP5JQ]A`f$b ߷D۶(Rկu MPvOiB tz(oTm M3g6z\iBӫ&fmbߋKO Ӊ؂Nz av!inX_Ə]شN֫mr3&\f: _HR@:,%&ld=$> 5g~}i'gNvz]ZGHX @rOvIxQ1hZ0ZAd 8:dX$^V6$yAߢ:5XIF*vXƽhTeT\smyXu5~F6L={cO+'؆",tfU 6(q,|ݺ(F]N?TAi`ѡ %KBANldQ(d >IO@ ^( .c`| FH\yJoOŭe>AKx/i׍Ѭ}(LREoju2(cC-ՁL?&ښ!uIze+JSיwb̪ɅxWMn W-%WQ!SGϻ DD̔.rY*W5y\/ɮd/ UX*;D2e[qO3}_F% sh]<%DSOBUuˍMԭ.c&OZ@x)NċG CA}j?Ec+sNAvLF&`w D%n_? J "%]RT\ʖ3U-Xޫm?YheÂ@=Qbd~^ma4 `66ѻlޱ1OME$Cn9bWU}v$[dGzqgn]$5'MOׯwK.1[T3/?=;ϕ%|kh4OXTzh81.lYڸ,L؋'AwvV;! ׾RXaۨ/H[&Հbjx_g(SI]M'&h\I55)V kczanD+ߜ\?lߜ me8ُVg6]gcW)9gSf Z&~rPN~R"8wF@Dk}zεTpӍCL)OIGLQt{Pj5`Q u=4F_mɌƆ7j Hbr# N1 uyÜ {,,E:erQTt&Gu-BʱR}yY/luF[D:)|-$Քا;!fj 24X*d+Ї ?FRN}{eوSLrtAKӚJ*T$5Wx$5X!K9Q |qݓE}6'ޤ.ܽc`;.0a~~6߮t[5 QNҙ0; H[>Ri6m]~۪`7]aWwG[5fDL|ghYj@`=Xc_@5i Ru\J?&?/{u^phtot;2hfn#Ȟ9W"IOoٸ P6ݽ]"xf'-ȭZ;U&Z*0 1eL1qfqzK]W\j+’yQry-a 7/"op[^12[{=eAyݛtS?mSWcVhN<DθB&;bSA(cKZ;_@tJH* _/zG~5XlbD9ᜅECkP\&\{tÍͮ 浪2]U=SCa '\){ -!Mn첥b7ߊשU17jGuD68}9o,ؔB?xHy~D8g65{tHm M,*m?Hk;@󥻹զƠ'$l@ZBziroÑN"JN [hu(䎸 En'I/e L Ӎ NY5d30Dл=& {rf_w{+ mh bKN+3]936Vϥc'E2Jv -|y6ifa[bb7:HŠ%,?D<~ fA(N ?+~nTmILD)$ź/9۠zˁ޷ζTEG^Љ2?KL}I]^-]O)/Y,.6*k^ T|AO}9 !` zԟż[1*d߼/+~S#kU]Dsn|\G4;ȋl3XxP[TBx>s?~tF$,|uukQYa@ eeo”# %)>,[~{^mVʭ2ia%!]=sD1UX(_ZY些8Bq1맷]{곂l1kbXXw@}%jF!c)\ CY R+"Wv b>+|F6܄h,iD  323i5:rhT6]\Y^YhzdUnj<%3dDPmGw0XNnZZwwm<9͙]gils 91j\CsqZ\>.f_̺ŚhG .gVksxq'D ǖorOގ/7^tkT+!cU2;?]iyrGgVX&WW g].;tMNiZ c\"R6!@hw-ڄuRX2r0qpJ8So4=#"\Cy)d/ÇigІ]3O|Pt?̬eK}3 @?<-#+e_[i9lWO!0HK<~XP wpPU9ʂޡ2Pgl] 7{!BN'i~H5k#Y.-g,Z8&9ב"§ϕ?* w7ϊc4Wp=0 ֯Y+RqnTF򇏘! 6yw驅H- ]=1-d-SDGɒb5Xh`]ưoC%=.潺 wq}ȇԎYx~hU f0jjg\[2օ]y?idžv@Po0f=`]n ,Vc4yn6׉s!u]#ɑ:b. `HCfz"X3ካ%RMHȉI)\guU*/>-@S1Lp[AjOƪrE, LZ`3g67S B)~CFӪ%ELƄ*|x"\b@4(Ha>ADURs]Z@h Y VnW}ES6 ;\ N80"I#櫤$㎞=yQq\oU j+zrG70q8+FC.r]ׁOyJ;\Nxė1-1 ^k,PLQ:]@wCbU30Y%MȄ 12o\j)Nw 0Ywwu,^.e8)rPAGNPeJf9&֭}## Ǻۑ +cx a* z5vG\N':$i";D +e{]mI><@Ըwef]Qw+vd7⯇;]e7$-j$ԥKIu2B!gz&̂Q^ ҡpDf\*9$uB+2_tPuZS',!8PnxP@ׄjM!RDT3)ʍ_2žP0\csjkkN8\[(  +[17tFWIIh}W. G I}uKK n$/ƈv}b;z]Dʹ @X.2jC}`*vZ!UڸBE],U {J <㬅bsg?U^5#9`wDa \Ӵ5.sژ19hq*G%ԜkH*vMR-օc#"T ԷYg=jOz`U"$e|ptO:J`Zϓ%U{1 LP /jwDocn2 >ޗi= 6Hc CBjQhP"SX_j`EHVz!@ߺ* F Lm^'y)\IԬ{!dUq=c@Oz 0CDjHWJUt57ksq+R1بC'!Os.4~ǂ30 `(X%T-f.@NOܨ/s㔢KYh,3h|0Z3QXqj_~l 6*Ս`M;,d*^P4OGbYS@&}40INiBp5LJ]gD=5Xmd nQ_Ap{&9㿻a&\Bz]I" @7H8Rf'f*{sBL'L}ɖW4WS ݢv<{r2ޢɬbٳEq?MI0mt9צ>!q:}Ұ6c>ٛ),6y=`o/g}Lu3tr}}4RyRqgwOPMK3ϙ,x0噾:EÏ:))hN 93-\G{:&g|٬uQ9%kaRq?0OS qGn9XFw-# (BؕDGrUxq4W} ,.)˗VȤy29,iH5n:ֳ^}`q^} c4N/Ա"p!t6[洠,Ƚ’oY(c$0&uu:S6[ȟ#'W3Ul}KЃ ?SRݿ;Fa_t?0 ~z}=ḿ:ʲ-`M/fK+ʣ AR :A9mb lxiĠlSgKiLb5Tu꽯h΃nCcN4s#F\FtTʇТ.FfXmlu~<  >,sm:JG}M ,?N -jZFHGz?PHi|m`W2#vD)=DʟͿ'3bI[Ց]%)DX ,o!"Ol{V^MiJ,޽sWBxBog:Mk6Ҋ=vx)]G=[tI:,|9ّaHr,lI(d"h}FmטkjyKMK{ Vsm aɟ }Cd#<\GãqF ;gD;,yWP!k1~FgCXR 3Pi!S*3(p9.Y@En@>?ab0K zP,>)ݘ-{EcϨըMsfG):epYo[f2Z!Q[$1u6%,J 槆%"g+?ĉ}mv B(l5X?*+WЫՂY}=Tws.,)o5?%dK;7np ד|'sù$^,HʾuÌmy&w!\H8wg"?,NGD6]!V L7f1<*յ]qoϒDCRQBV p jC}Z97.hZj/}5UG_E49K39jO.o`;8=!~tР\Gˎz}F<>}ξHPogXNFa 7GzgK9Sm=}bXǿ*3V'cy$"im9ao5lQ^|< YۂTlLw=JtG4V 4(@TaY⁹k3)_Vߧ$Hu"~w]4OaM'~&F2HINItSP zǑL`~~էZC9f"KOhٴD=S㟯16(y9|9S5XyB @1FݟeDΉ|ĆNN=}jި^1P':R?B`2~Qv @e3W?k;zWUVLDZH_f D9ȱTnsEZ"q8.oYG ([r̺N쪙sE||r´C Ӣn8sbVAyuôdf;yY2laRuָ)E #sfb]+9;>74|>p;lȒ $gWXPqQB<_.uy1$p뗯fl[gt_*U < >eyXaeX.Q7$?KribCu0#9WTh`ÒD\]LU(j.TdylĔJef_DN_j峗 YRcaOzFuu ?vzJJ dJL|Aڧ,fN=\){uXW'E-zl91`漋%ʟy#~Kch!GKJ!% g,k7T8iT-98QMȡ Nߞr'u'oqڙZ`\ `78]sIP@v^+∭,b>f!&y띻a(z!C}1r7N2Yo!0v7ߜ!wW6gc 3 "$)uSrDw!1' @p5pl ڸZi$ÊhA@N&;Fa{P`X{|g7+MpS[]5aU>VVGr6 [WƦϧ v솧ۡnB=ۼhlN O`!yB9#=)pNĪÑwT\{ߐ2= y1Hq'kԬ(4p%cF&hlsVc*$\k# Ů:{1vs~p}Ȫ*ezQ="xsXNTĽ ovWovG8c`U$"E0y+xMl_U$1?5 =k66?2Wn7g5%٤g0*q*{Z'hDA9t>5g/~Wf!;[^!#ZޭO'DE^eW&FwB(=A1w/#`Fd)y@6CUb {%:? z^s6Q _LJSX_ 'y#M5r7:lQwBr+j& Б5J_/gyj(2oIܫP+;_&*"Fy+mi=śzYi6WƘ<.?zN5ÎIy"]F5|qX⬣"qr S]}UOY}DS5odV.աbP"&d6:{ IvBB[O%u*c}rv/r\'djǷau{wq{AxqJ"̣NhMN8ig)B.)}Ea6CU_ٙnNYx.cxZw_j|8UZ/̛yg$v0R_c,\]Q8/ bX۔cB/&!Tb>>%eg& Rj.*f@I撧Ib=p|/#)@ % {&(AyYFDf8jIdz@v̾g?#$a߂G2*$;R%N MV=s|}dFG!v5hZ8m>T4ӏ]@R8ĊN(;Rưrt_5yf{1# c> ٨Ih0Į ETEI~*Ь]J_~&.Rq3lju3Ym:UhE)ys.9L*9Ԯ%> 1뻒Fs?~ ^udl1_ ]UQ^!x|okǼp;ea% Wu5 (X`@p $Ljv[/,hqBcQkM7`#O)Bn*3{Uk > ᢳNǖ<orYƫ}Vv#8pc~Tn] EVo*;ɿNKI nrf;f*S[9Vҟcucq%`Fn,lr4l<@A]3 D><3P\8`<@f>hT:ĥ/,$Ďf{s\?Ie4pI!8]Tf`Gi,4: w1^Ez5&{4Dr>b~~nQ%?㣞Hd0a9i` !6(ܵJ!PC~p1 r92g E%w}wOgqgH1G]>O>Yr(+KaV9Հ\G>1F쿯b%sɻ~5م]/WKl9;Т b\g6ryN.e7Q}7DGeDޘ־P}tl!gj5jV.Z.yP4'~(L%˻b}u qywʕ!k;az@iooχ-Pq> (^i \N;SxdItDۡ1i!О*'^?_+SQ2ߝR͸ܠ,;%؛۟ n:Qplk`S1b7/$rm=nD  ps~< +IM)A1 KpͣʌGסNnTњڕ abc#:%^Cd,Jv[s[5mE/ }&hHYt]}k{[%[BJ_| xIpՑ1~B1Ipɛ3mf< ص,zLO`b+~n^<ۇDdſD2V~q,M t0aJ4 [댘JXB8*z=.ƄCs*ɋj?8 6c֛bߪ/$TOl g86$ #$7I 0h"քz> uo>޸o(HhJƑQ99{Vv&'dZyݽܧ \XW:jQeקn4N>~uc}v>_o6a%Pv.N!?.^PxJ0CyDML$b@x a;.Z-lCR~4ZR94V&Kp\{kzAuk9XlET!t]$ڰX k -P5ݲj(>f#ssn]ci7of^b&ItQZ}݈Fk9Q?z,sչʂtc>d:*7EBĘ`4:e@!HZasZr&4l\ph.' M:[%.߰98Hh3V {$ u񷉣~4İnٖ6J.ŝ_P衬̄.3}H N%ŧ_!gbxX`9lL$+Ԃۤ&0G`IƸFVl(Y$ 3]ܖ7KG{Vp,]E:DZ%~ULSi3"s&2Fץݦ#ѽKt?%A2O0yQr:7"]3XfɵWK۳{}8?Iu!#ʯ=8K̜<[fN ?/ *pr=7r⧩ܺAAk:| A-uީe OCΘub޵jU H^'tud$ƍ* T }$<̒Ɍs@rQdҥ\_>W*TC1V#OYTn#]v+T>|/%KȘڮ_Tc'613(Na5=72/=~{2)u-JKkؑT{{V f/tL+$bfmz)F/ kzXe孢p#u"(D%& @.Ka Qft &\A{l3+DŽo3,jqɀȩy5Y`ʗ^x΂)V֤iL:|ڵ8.Cmp/ۊ=$ZZ I `b>0 YZLuminescence/data/ExampleData.DeValues.rda0000644000176200001440000000156014762554470020201 0ustar liggesusers7zXZi"6!X 3])TW"nRʟ + ,ʿBJy $ ?bz0z^gVh^aOy2.[:#HvGӕ7Rm emzK!8#ҵ~Ɯ.>5CyuR^S\+o8c=G_ɘ}a>FaztkWMu>tӺƐ"$aD3<[٢ӎ"\>0;Sn{  >Iiի.UcژK(6}-{[fs?I+FX>EOj%I0S:4z7 ה77LS _։ - }baեc ?0&5~.E6;+j3-$eL3KA ]-ar_qŸhX󷖄wKi8 3g{/PGu4n{bq) 'S=&ZU5l,{88KpUON~u! -$B Mi{rG2Z-͌=u䶱&{>ыZ_.v&eZw2y܉LcZpebsh*LFQEM ژEݍɆoG$TU|* z4Z6lUX~WZy=l$ˣ=m OkL2xۄ˚E4m3דү~d0ck }`{QhFH&D_@>0 YZLuminescence/data/BaseDataSet.CosmicDoseRate.rda0000644000176200001440000000154514762554470021273 0ustar liggesusersT}lKQnƖd&'l,y+F Y6ijA|DDcb2Yjel뺱 ALzs+^,q~{t:aT:FŮF%0&NQż}ÚGsbao"}dXaYsOؿ*8XV@Tjg oJPu]:ڤwuȯ'3\ЀSH&\Od'}mf#rB iЁH*"% > M1)z}aHp˟C8vwRoxhߛiK_T2})! M@H\s ۅ[ 5ЖnY#`ϨCU H@p6xޅZ @c e%c3fXWVf&N ?b?Iq_*tl?2Xbx#vD<8h4(4ceݼ`Uz0y@u^Y[tǹ[YiD00mYpLP(lXZJ/96E#GʚV|Bo#z<5̩L~m""wJ|kG,9/G(ҧi+/Ք=h4Ef#3 fcF4xa4#OFdS"C̤GF&9\n=uMVg7 U_vuMnjh9#j*h8O/V]/Vs %*j[٦oއ39!np; y )TY^£8ƺb_\NTBR hYvXE;ٴxy|aIb~z^Luminescence/src/0000755000176200001440000000000014762561726013473 5ustar liggesusersLuminescence/src/RcppExports.cpp0000644000176200001440000001161314762556777016504 0ustar liggesusers// Generated by using Rcpp::compileAttributes() -> do not edit by hand // Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 #include #include using namespace Rcpp; #ifdef RCPP_USE_GLOBAL_ROSTREAM Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get(); Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); #endif // create_UID CharacterVector create_UID(); RcppExport SEXP _Luminescence_create_UID() { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; rcpp_result_gen = Rcpp::wrap(create_UID()); return rcpp_result_gen; END_RCPP } // src_EED_Calc_Overall_StatUncertainty NumericMatrix src_EED_Calc_Overall_StatUncertainty(NumericMatrix M_Simul, int Ndata, int Nsimul, int MinNbSimExp); RcppExport SEXP _Luminescence_src_EED_Calc_Overall_StatUncertainty(SEXP M_SimulSEXP, SEXP NdataSEXP, SEXP NsimulSEXP, SEXP MinNbSimExpSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< NumericMatrix >::type M_Simul(M_SimulSEXP); Rcpp::traits::input_parameter< int >::type Ndata(NdataSEXP); Rcpp::traits::input_parameter< int >::type Nsimul(NsimulSEXP); Rcpp::traits::input_parameter< int >::type MinNbSimExp(MinNbSimExpSEXP); rcpp_result_gen = Rcpp::wrap(src_EED_Calc_Overall_StatUncertainty(M_Simul, Ndata, Nsimul, MinNbSimExp)); return rcpp_result_gen; END_RCPP } // analyse_IRSARRF_SRS RcppExport SEXP analyse_IRSARRF_SRS(arma::vec values_regenerated_limited, arma::vec values_natural_limited, arma::vec vslide_range, int n_MC, bool trace); RcppExport SEXP _Luminescence_analyse_IRSARRF_SRS(SEXP values_regenerated_limitedSEXP, SEXP values_natural_limitedSEXP, SEXP vslide_rangeSEXP, SEXP n_MCSEXP, SEXP traceSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< arma::vec >::type values_regenerated_limited(values_regenerated_limitedSEXP); Rcpp::traits::input_parameter< arma::vec >::type values_natural_limited(values_natural_limitedSEXP); Rcpp::traits::input_parameter< arma::vec >::type vslide_range(vslide_rangeSEXP); Rcpp::traits::input_parameter< int >::type n_MC(n_MCSEXP); Rcpp::traits::input_parameter< bool >::type trace(traceSEXP); rcpp_result_gen = Rcpp::wrap(analyse_IRSARRF_SRS(values_regenerated_limited, values_natural_limited, vslide_range, n_MC, trace)); return rcpp_result_gen; END_RCPP } // create_RLumDataCurve_matrix NumericMatrix create_RLumDataCurve_matrix(NumericVector DATA, double VERSION, int NPOINTS, String LTYPE, double LOW, double HIGH, double AN_TEMP, int TOLDELAY, int TOLON, int TOLOFF); RcppExport SEXP _Luminescence_create_RLumDataCurve_matrix(SEXP DATASEXP, SEXP VERSIONSEXP, SEXP NPOINTSSEXP, SEXP LTYPESEXP, SEXP LOWSEXP, SEXP HIGHSEXP, SEXP AN_TEMPSEXP, SEXP TOLDELAYSEXP, SEXP TOLONSEXP, SEXP TOLOFFSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< NumericVector >::type DATA(DATASEXP); Rcpp::traits::input_parameter< double >::type VERSION(VERSIONSEXP); Rcpp::traits::input_parameter< int >::type NPOINTS(NPOINTSSEXP); Rcpp::traits::input_parameter< String >::type LTYPE(LTYPESEXP); Rcpp::traits::input_parameter< double >::type LOW(LOWSEXP); Rcpp::traits::input_parameter< double >::type HIGH(HIGHSEXP); Rcpp::traits::input_parameter< double >::type AN_TEMP(AN_TEMPSEXP); Rcpp::traits::input_parameter< int >::type TOLDELAY(TOLDELAYSEXP); Rcpp::traits::input_parameter< int >::type TOLON(TOLONSEXP); Rcpp::traits::input_parameter< int >::type TOLOFF(TOLOFFSEXP); rcpp_result_gen = Rcpp::wrap(create_RLumDataCurve_matrix(DATA, VERSION, NPOINTS, LTYPE, LOW, HIGH, AN_TEMP, TOLDELAY, TOLON, TOLOFF)); return rcpp_result_gen; END_RCPP } // src_get_XSYG_curve_values NumericMatrix src_get_XSYG_curve_values(std::string s); RcppExport SEXP _Luminescence_src_get_XSYG_curve_values(SEXP sSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< std::string >::type s(sSEXP); rcpp_result_gen = Rcpp::wrap(src_get_XSYG_curve_values(s)); return rcpp_result_gen; END_RCPP } static const R_CallMethodDef CallEntries[] = { {"_Luminescence_create_UID", (DL_FUNC) &_Luminescence_create_UID, 0}, {"_Luminescence_src_EED_Calc_Overall_StatUncertainty", (DL_FUNC) &_Luminescence_src_EED_Calc_Overall_StatUncertainty, 4}, {"_Luminescence_analyse_IRSARRF_SRS", (DL_FUNC) &_Luminescence_analyse_IRSARRF_SRS, 5}, {"_Luminescence_create_RLumDataCurve_matrix", (DL_FUNC) &_Luminescence_create_RLumDataCurve_matrix, 10}, {"_Luminescence_src_get_XSYG_curve_values", (DL_FUNC) &_Luminescence_src_get_XSYG_curve_values, 1}, {NULL, NULL, 0} }; RcppExport void R_init_Luminescence(DllInfo *dll) { R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); R_useDynamicSymbols(dll, FALSE); } Luminescence/src/Makevars.win0000644000176200001440000000005714762554470015763 0ustar liggesusersPKG_CPPFLAGS=-I../inst/include CXX_STD = CXX17 Luminescence/src/src_get_XSYG_curve_values.cpp0000644000176200001440000000230114762554470021254 0ustar liggesusers// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Title: src_get_XSYG_curve_values() // Author: Sebastian Kreutzer, Geography & Earth Science,Aberystwyth University (United Kingdom) // Contact: sebastian.kreutzer@aber.ac.uk // Version: 0.1.0 [2017-07-07] // Usage: used within the function read_XSYG2R() to extract curve values more efficiently // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #include #include #include #include using namespace Rcpp; // [[Rcpp::export]] NumericMatrix src_get_XSYG_curve_values(std::string s) { //00: count pairs int pairs = std::count(s.begin(), s.end(), ';') + 1; //01: replace all ; by , std::replace(s.begin(), s.end(), ';', ','); //02: set needed matrix NumericMatrix m(pairs, 2); //03: set variables std::istringstream ss(s); std::string value; int i = 0; int sw = 0; //04: loop over string and convert to double while (std::getline(ss, value, ',')) { if (sw % 2 == 0){ m(i,0) = atof(value.c_str()); }else{ m(i,1) = atof(value.c_str()); i++; } sw++; } return m; } Luminescence/src/src_create_RLumDataCurve_matrix.cpp0000644000176200001440000000703614762554470022437 0ustar liggesusers// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Title: src_create_RLumDataCurve_matrix() // Author: Sebastian Kreutzer, Geography & Earth Science,Aberystwyth University (United Kingdom) // Contact: sebastian.kreutzer@aber.ac.uk // Version: 0.1.3 [2019-09-19] // Purpose: Function to create the RLum.Data.Curve() matrix ... faster than in R itself // - Mainly used by the function Risoe.BINfileData2RLum.Data.Curve() // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #include using namespace Rcpp; // ----------------------------------------------------------------------------------------------- // Define own function to create a sequence for the x-axis // .. but we do not export them to avoid side effects, as this function is not the same as the // .. base R function seq() // .. no export NumericVector seq_RLum(double from, double to, double length_out) { //calculate by double by = (to - from) / length_out; //set sequence vector and so set the first channel NumericVector sequence(static_cast(length_out), (from + by)); //loop and create sequence for (int i=1; i < static_cast(length_out); i++) sequence[i] = sequence[i-1] + by; return sequence; } // ----------------------------------------------------------------------------------------------- // The function we want to export // [[Rcpp::export("src_create_RLumDataCurve_matrix")]] NumericMatrix create_RLumDataCurve_matrix( NumericVector DATA, double VERSION, int NPOINTS, String LTYPE, double LOW, double HIGH, double AN_TEMP, int TOLDELAY, int TOLON, int TOLOFF ){ //generate X vectors if(NPOINTS > 0){ //set needed vectors and predefine matrix NumericVector X(NPOINTS); NumericMatrix curve_matrix(NPOINTS,2); //fill x column for the case we have a TL curve if(LTYPE == "TL" && VERSION >= 4.0){ //provide a fallback for non-conform BIN/BINX-files, otherwise the //the TL curves are wrong withouth having a reason. if((TOLON == 0) & (TOLOFF == 0) & (TOLDELAY == 0)){ Rcout << "[src_create_RLumDataCurve_matrix()] BIN/BINX-file non-conform. TL curve may be wrong!\n"; TOLOFF = NPOINTS; } //the heating curve consists of three vectors that needed to //be combined // //(A) - the start ramping NumericVector heat_ramp_start = seq_RLum(LOW,AN_TEMP,static_cast(TOLDELAY)); // //(B) - the plateau //B is simply TOLON // //(C) - the end ramping NumericVector heat_ramp_end = seq_RLum(AN_TEMP, HIGH, static_cast(TOLOFF)); //set index counters int c = 0; //fill vector for temperature for(int i = 0; i < X.length(); i++){ if(i < heat_ramp_start.length()){ X[i] = heat_ramp_start[i]; }else if(i >= heat_ramp_start.length() && i < heat_ramp_start.length() + static_cast(TOLON)){ X[i] = AN_TEMP; }else if(i >= heat_ramp_start.length() + TOLON){ X[i] = heat_ramp_end[c]; c++; } } }else{ X = seq_RLum(LOW, HIGH, static_cast(NPOINTS)); } //set final matrix curve_matrix.column(0) = X; curve_matrix.column(1) = DATA; return(curve_matrix); }else{ //set final matrix for the case NPOINTS <= 0 //fill this with NA values NumericMatrix curve_matrix(1,2); curve_matrix(0,0) = NumericVector::get_na(); curve_matrix(0,1) = NumericVector::get_na(); return(curve_matrix); } } Luminescence/src/src_EED_Calc_Overall_StatUncertainty.cpp0000644000176200001440000001071414762554470023273 0ustar liggesusers#include using namespace Rcpp; // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Title: find_first_larger_value() // Author: Sebastian Kreutzer, Geography & Earth Science,Aberystwyth University (United Kingdom) // based on an R script written by Pierre Guibert, IRAMAT-CRP2A, // Universite Bordeaux Montaigne (France) // Contact: sebastian.kreutzer@aber.ac.uk // Version: 0.1.0 [2019-05-15] // @description: Find the first positions where the values in x are great than in y // Where x and y are numerical vectors // // @param x input vector for which we test the values // @param y input vector for which the values of x are tested against // // @return: the output is an index vector with the same length as x // // @note: this version is ca. 10 times faster than the previous R implementation // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ NumericVector find_first_larger_value( NumericVector x, NumericVector y ) { //initialise variable int ic = 0; int ic_max = y.size() - 1; NumericVector cur_mean_id(x.size()); for (int i = 0; i < x.size(); i++){ while (x[i] > y[ic] && ic < ic_max) ic++; //fill vector cur_mean_id[i] = ic; } return(cur_mean_id); } // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Title: row_sd() // Author: Sebastian Kreutzer, Geography & Earth Science, Aberystwyth University (United Kingdom) // // Contact: sebastian.kreutzer@aber.ac.uk // Version: 0.1.0 [2019-08-27] // @description: Calculate the row standard deviation of a matrix // // @param m input matrix // // @return: vector of length m.ncol() // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ NumericVector row_sd(NumericMatrix m){ //initialise variables double tmp_mean; double sum = 0; int n = m.ncol(); NumericVector output(m.nrow()); //calculate standard deviation for(int i = 0; i < m.nrow(); i++){ tmp_mean = mean(m(i,_)); //inner loop over elements for(int j = 0; j < n; j++){ sum += pow(m(i,j) - tmp_mean, 2.0); } output(i) = pow(sum / (n - 1), 0.5); sum = 0; } return(output); } // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Title: .EED_Calc_Overall_StatUncertainty // Author: Sebastian Kreutzer, Geography & Earth Science,Aberystwyth University (United Kingdom) based // on R code by Pierre Guibert, IRAMAT-CRP2A, Universite Bordeaux Montaigne (France) // // Contact: sebastian.kreutzer@aber.ac.uk // Version: 0.1.0 [2019-08-27] // @description: Helper function to calculate the statistical uncertainty, the Rcpp implementation // here is around 200 times faster than the pure R implementation // // @param M_Simul matrix // // @param Ndata integer // // @param Nsimul integer // // param MinNbSimExp integer // // @return matrix with two columns containing the M_SimExpResults // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // [[Rcpp::export]] NumericMatrix src_EED_Calc_Overall_StatUncertainty ( NumericMatrix M_Simul, int Ndata, int Nsimul, int MinNbSimExp ){ // initialise variables int Nsimexp = int (Nsimul / Ndata); NumericMatrix M_SimExpResults(Ndata, 2); NumericMatrix M_StoreData(Ndata, Nsimexp); NumericVector M_CurSimExp(Ndata); NumericVector cur_mean_id(Ndata); NumericVector y = M_Simul(_,6); if (Nsimexp > MinNbSimExp){ //start loop for(int j = 0; j < Nsimexp; j++){ //fill vector for(int r = 0; r < Ndata; r++) M_CurSimExp(r) = M_Simul(r + (Ndata * j) ,2); //sort vector M_CurSimExp.sort(false); //cumulative sum NumericVector cur_mean = cumsum(M_CurSimExp); //normalise to data for(int d = 0; d < Ndata; d++) cur_mean(d) = cur_mean(d) / (d + 1); //find first larger value cur_mean_id = find_first_larger_value(cur_mean, y); //store data in matrix for(int d = 0; d < Ndata; d++) M_StoreData(d,j) = cur_mean(d) - M_Simul(cur_mean_id(d), 8); } //calculate row means M_SimExpResults(_,0) = rowMeans(M_StoreData); //calculate the row sd M_SimExpResults(_,1) = row_sd(M_StoreData); } if (Nsimexp < MinNbSimExp) Rcout << "Not enough simulations, please increase Nsimul!"; return M_SimExpResults; } Luminescence/src/Makevars0000644000176200001440000000005714762554470015167 0ustar liggesusersPKG_CPPFLAGS=-I../inst/include CXX_STD = CXX17 Luminescence/src/src_analyse_IRSARRF_SRS.cpp0000644000176200001440000001547414762554470020432 0ustar liggesusers// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Title: src_analyse_IRSARRF_SRS() // Author: Sebastian Kreutzer, Geography & Earth Science,Aberystwyth University (United Kingdom) // Contact: sebastian.kreutzer@aber.ac.uk // Version: 0.4.0 [2020-08-17] // Purpose: // // Function calculates the squared residuals for the R function analyse_IRSAR.RF() // including MC runs for the obtained minimum. The function allows a horizontal and // a vertical sliding of the curve // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #include #include #include // [[Rcpp::depends(RcppArmadillo)]] using namespace Rcpp; // print a 2-element vector horizontally std::string fmt_vec(const arma::vec& vec) { std::stringstream ss; ss << " [" << std::setw(11) << vec[0] << ", " << std::setw(11) << vec[1] << "]"; return ss.str(); } // [[Rcpp::export("src_analyse_IRSARRF_SRS")]] RcppExport SEXP analyse_IRSARRF_SRS(arma::vec values_regenerated_limited, arma::vec values_natural_limited, arma::vec vslide_range, int n_MC, bool trace = false ){ //check for the vslide_range() if(vslide_range.size() > 1e+07){ stop("[:::src_analyse_IRSAR_SRS()] 'vslide_range' exceeded maximum size (1e+07)!"); } const size_t nat_size = values_natural_limited.size(); const size_t res_size = values_regenerated_limited.size() - nat_size; const size_t two_size = 2; //variables for the algorithm int v_length = vslide_range.size(); int v_index = 0; arma::vec results(res_size); arma::vec::fixed v_leftright; // the virtual vector arma::vec::fixed t_leftright; // the test points arma::vec::fixed c_leftright; // the calculation // initialise values: at the beginning, the virtual vector includes all // points in vslide_range v_leftright[0] = 0; v_leftright[1] = vslide_range.size() - 1; if (v_length > 1) { // select the test region to be the central third of the virtual vector t_leftright[0] = v_length/3; t_leftright[1] = 2 * v_length/3; } //***TRACE**** if(trace == true){ Rcout << "\n\n [:::src_analyse_IRSAR_SRS()]"; Rcout << "\n\n --- Initialisation ---\n"; Rcout << "\n >> v_leftright: " << fmt_vec(v_leftright); Rcout << "\n >> t_leftright: " << fmt_vec(t_leftright); Rcout << "\n\n --- Optimisation --- \n "; Rcout << "\n --------------------------------------------------------------------------------------------------------------------------"; Rcout << "\n v_length\t\t\tv_leftright\t\t\tc_leftright\t\t\tt_leftright\tabs.offset"; Rcout << "\n --------------------------------------------------------------------------------------------------------------------------"; } //(1) calculate sum of the squared residuals // this will be used to find the best fit of the curves (which is the minimum) //start loop do { for (size_t t = 0; t < two_size; ++t) { //HORIZONTAL SLIDING CORE -------------------------------------------------------------(start) results.zeros(); auto curr_vslide_range = vslide_range[t_leftright[t]]; //slide the curves against each other for (unsigned int i = 0u; i < res_size; ++i) { // calculate the sum of squared residuals along one curve for (unsigned int j = 0u; j < nat_size; ++j) { double residual = values_regenerated_limited[j + i] - (values_natural_limited[j] + curr_vslide_range); results[i] += residual * residual; } } //HORIZONTAL SLIDING CORE ---------------------------------------------------------------(end) c_leftright[t] = min(results); } // compare results and update variables auto diff = c_leftright[0] - c_leftright[1]; if (diff == 0) { v_length = 1; } else { // find on which side the minimum is, the maximum is on the other side auto idx_min = diff < 0 ? 0 : 1, idx_max = 1 - idx_min; // set index to where the minimum is v_index = v_leftright[idx_min]; // update vector window v_leftright[idx_max] = t_leftright[idx_max]; //update window length v_length = v_leftright[1] - v_leftright[0]; } //update test point index t_leftright[0] = v_leftright[0] + v_length/3; t_leftright[1] = v_leftright[0] + (2 * (v_length/3)); //***TRACE**** if(trace == true){ Rcout << "\n" << std::setw(10) << v_length << "\t" << fmt_vec(v_leftright) << "\t" << fmt_vec(c_leftright) << "\t" << fmt_vec(t_leftright) << "\t" << std::setw(10) << vslide_range[v_index]; } } while (v_length > 1); //***TRACE**** if(trace == true){ Rcout << "\n ------------------------------------------------------------------------------------------"; Rcout << "\n >> SRS minimum: \t\t " << c_leftright[0]; Rcout << "\n >> Vertical offset index: \t " << v_index + 1; Rcout << "\n >> Vertical offset absolute: \t " << vslide_range[v_index] << "\n\n"; } //(2) error calculation //use this values to bootstrap and find minimum values and to account for the variation //that may result from this method itself (the minimum lays within a valley of minima) // //using the obtained sliding vector and the function RcppArmadillo::sample() (which equals the //function sample() in R, but faster) //http://gallery.rcpp.org/articles/using-the-Rcpp-based-sample-implementation //this follows the way described in Frouin et al., 2017 ... still ... arma::vec results_vector_min_MC(n_MC); for (int i = 0; i < n_MC; ++i) { results_vector_min_MC[i] = min( RcppArmadillo::sample( results, results.size(), TRUE, NumericVector::create() ) ); } //build list with four elements //sliding_vector: the original results_vector (this can be used to reproduced the results in R) //sliding_vector_min_index: the index of the minimum, it is later also calculated in R, however, sometimes we may need it directly //sliding_vector_min_MC: minimum values based on bootstrapping //vslide_index: this is the index where the minimum was identified for the vertical sliding //vslide_minimum: return the identified minimum value, this helps to re-run the function, as the //algorithm might got trapped in the local minimum List results_list; results_list["sliding_vector"] = results; results_list["sliding_vector_min_index"] = (int)results.index_min() + 1; results_list["sliding_vector_min_MC"] = results_vector_min_MC; results_list["vslide_index"] = v_index + 1; results_list["vslide_minimum"] = c_leftright[0]; //left and right should be similar return results_list; } Luminescence/src/create_UID.cpp0000644000176200001440000000225114762554470016141 0ustar liggesusers// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Title: create_UID() // Author: Sebastian Kreutzer, Geography & Earth Science, Aberystwyth University (United Kingdom) // Contact: sebastian.kreutzer@aber.ac.uk // Version: 0.1.0 [2016-01-26] // Purpose: The purpose of this function is to create a unique ID for RLum // objects based on the system time and a random number. // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #include #include using namespace Rcpp; // [[Rcpp::export("create_UID")]] CharacterVector create_UID() { //define variables CharacterVector random; time_t rawtime; struct tm * timeinfo; char timestamp [80]; //set date + timestamp (code snippet taken from C++ reference page) time (&rawtime); timeinfo = localtime (&rawtime); strftime (timestamp,80,"%Y-%m-%d-%I:%M.",timeinfo); //get time information and add a random number //according to the CRAN policy the standard C-function, rand(), even sufficient here, is not allowed random = runif(1); //combine and return results return timestamp + Rcpp::as(random); } Luminescence/NAMESPACE0000644000176200001440000001716714762561642014134 0ustar liggesusers# Generated by roxygen2: do not edit by hand S3method("$",RLum.Analysis) S3method("$",RLum.Data.Curve) S3method("$",RLum.Results) S3method("$<-",DRAC.list) S3method("*",RLum.Data.Curve) S3method("*",RLum.Data.Spectrum) S3method("+",RLum.Data.Curve) S3method("+",RLum.Data.Spectrum) S3method("-",RLum.Data.Curve) S3method("-",RLum.Data.Spectrum) S3method("/",RLum.Data.Curve) S3method("/",RLum.Data.Spectrum) S3method("[",RLum.Analysis) S3method("[",RLum.Data.Curve) S3method("[",RLum.Data.Image) S3method("[",RLum.Data.Spectrum) S3method("[",RLum.Results) S3method("[<-",DRAC.list) S3method("[<-",RLum.Data.Curve) S3method("[[",RLum.Analysis) S3method("[[",RLum.Results) S3method("[[<-",DRAC.list) S3method(as.data.frame,DRAC.list) S3method(as.data.frame,RLum.Data.Curve) S3method(as.data.frame,RLum.Data.Spectrum) S3method(as.data.frame,Risoe.BINfileData) S3method(as.list,RLum.Analysis) S3method(as.list,RLum.Data.Curve) S3method(as.list,RLum.Data.Image) S3method(as.list,RLum.Data.Spectrum) S3method(as.list,RLum.Results) S3method(as.matrix,RLum.Data.Curve) S3method(as.matrix,RLum.Data.Image) S3method(as.matrix,RLum.Data.Spectrum) S3method(bin,RLum.Data.Curve) S3method(bin,RLum.Data.Spectrum) S3method(dim,RLum.Data.Curve) S3method(dim,RLum.Data.Spectrum) S3method(hist,RLum.Analysis) S3method(hist,RLum.Data.Curve) S3method(hist,RLum.Data.Image) S3method(hist,RLum.Results) S3method(length,RLum.Analysis) S3method(length,RLum.Data.Curve) S3method(length,RLum.Results) S3method(length,Risoe.BINfileData) S3method(merge,RLum) S3method(names,RLum.Analysis) S3method(names,RLum.Data.Curve) S3method(names,RLum.Data.Image) S3method(names,RLum.Data.Spectrum) S3method(names,RLum.Results) S3method(names,Risoe.BINfileData) S3method(plot,RLum.Analysis) S3method(plot,RLum.Data.Curve) S3method(plot,RLum.Data.Image) S3method(plot,RLum.Data.Spectrum) S3method(plot,RLum.Results) S3method(plot,Risoe.BINfileData) S3method(plot,list) S3method(print,DRAC.highlights) S3method(print,DRAC.list) S3method(rep,RLum) S3method(row.names,RLum.Data.Spectrum) S3method(subset,RLum.Analysis) S3method(subset,Risoe.BINfileData) S3method(summary,RLum.Analysis) S3method(summary,RLum.Data.Curve) S3method(summary,RLum.Data.Image) S3method(summary,RLum.Results) S3method(unlist,RLum.Analysis) export("add_metadata<-") export("rename_metadata<-") export("replace_metadata<-") export(Analyse_SAR.OSLdata) export(CW2pHMi) export(CW2pLM) export(CW2pLMi) export(CW2pPMi) export(PSL2Risoe.BINfileData) export(Risoe.BINfileData2RLum.Analysis) export(Second2Gray) export(analyse_Al2O3C_CrossTalk) export(analyse_Al2O3C_ITC) export(analyse_Al2O3C_Measurement) export(analyse_FadingMeasurement) export(analyse_IRSAR.RF) export(analyse_SAR.CWOSL) export(analyse_SAR.TL) export(analyse_baSAR) export(analyse_pIRIRSequence) export(analyse_portableOSL) export(apply_CosmicRayRemoval) export(apply_Crosstalk) export(apply_EfficiencyCorrection) export(bin) export(bin_RLum.Data) export(calc_AliquotSize) export(calc_AverageDose) export(calc_CentralDose) export(calc_CobbleDoseRate) export(calc_CommonDose) export(calc_CosmicDoseRate) export(calc_EED_Model) export(calc_FadingCorr) export(calc_FastRatio) export(calc_FiniteMixture) export(calc_FuchsLang2001) export(calc_HomogeneityTest) export(calc_Huntley2006) export(calc_IEU) export(calc_Lamothe2003) export(calc_MaxDose) export(calc_MinDose) export(calc_MoransI) export(calc_OSLLxTxDecomposed) export(calc_OSLLxTxRatio) export(calc_SourceDoseRate) export(calc_Statistics) export(calc_TLLxTxRatio) export(calc_ThermalLifetime) export(calc_WodaFuchs2008) export(calc_gSGC) export(calc_gSGC_feldspar) export(combine_De_Dr) export(convert_Activity2Concentration) export(convert_BIN2CSV) export(convert_CW2pHMi) export(convert_CW2pLM) export(convert_CW2pLMi) export(convert_CW2pPMi) export(convert_Concentration2DoseRate) export(convert_Daybreak2CSV) export(convert_PSL2CSV) export(convert_PSL2Risoe.BINfileData) export(convert_RLum2Risoe.BINfileData) export(convert_SG2MG) export(convert_Second2Gray) export(convert_Wavelength2Energy) export(convert_XSYG2CSV) export(extract_IrradiationTimes) export(extract_ROI) export(fit_CWCurve) export(fit_DoseResponseCurve) export(fit_EmissionSpectra) export(fit_LMCurve) export(fit_OSLLifeTimes) export(fit_SurfaceExposure) export(fit_ThermalQuenching) export(get_Layout) export(get_Quote) export(get_RLum) export(get_Risoe.BINfileData) export(get_rightAnswer) export(github_branches) export(github_commits) export(github_issues) export(import_Data) export(install_DevelopmentVersion) export(is.RLum) export(is.RLum.Analysis) export(is.RLum.Data) export(is.RLum.Data.Curve) export(is.RLum.Data.Image) export(is.RLum.Data.Spectrum) export(is.RLum.Results) export(length_RLum) export(melt_RLum) export(merge_RLum) export(merge_RLum.Analysis) export(merge_RLum.Data.Curve) export(merge_RLum.Data.Spectrum) export(merge_RLum.Results) export(merge_Risoe.BINfileData) export(names_RLum) export(plot_AbanicoPlot) export(plot_DRCSummary) export(plot_DRTResults) export(plot_DetPlot) export(plot_DoseResponseCurve) export(plot_FilterCombinations) export(plot_GrowthCurve) export(plot_Histogram) export(plot_KDE) export(plot_MoranScatterplot) export(plot_NRt) export(plot_OSLAgeSummary) export(plot_RLum) export(plot_RLum.Analysis) export(plot_RLum.Data.Curve) export(plot_RLum.Data.Image) export(plot_RLum.Data.Spectrum) export(plot_RLum.Results) export(plot_ROI) export(plot_RadialPlot) export(plot_Risoe.BINfileData) export(plot_SingleGrainDisc) export(plot_ViolinPlot) export(read_BIN2R) export(read_Daybreak2R) export(read_HeliosOSL2R) export(read_PSL2R) export(read_RF2R) export(read_SPE2R) export(read_TIFF2R) export(read_XSYG2R) export(replicate_RLum) export(report_RLum) export(sTeve) export(scale_GammaDose) export(set_RLum) export(set_Risoe.BINfileData) export(smooth_RLum) export(sort_RLum) export(structure_RLum) export(subset_SingleGrainData) export(template_DRAC) export(trim_RLum.Data) export(tune_Data) export(use_DRAC) export(verify_SingleGrainData) export(view) export(write_R2BIN) export(write_R2TIFF) export(write_RLum2CSV) exportClasses(RLum) exportClasses(RLum.Analysis) exportClasses(RLum.Data) exportClasses(RLum.Data.Curve) exportClasses(RLum.Data.Image) exportClasses(RLum.Data.Spectrum) exportClasses(RLum.Results) exportClasses(Risoe.BINfileData) exportMethods("add_metadata<-") exportMethods("rename_metadata<-") exportMethods("replace_metadata<-") exportMethods(bin_RLum.Data) exportMethods(get_RLum) exportMethods(get_Risoe.BINfileData) exportMethods(length_RLum) exportMethods(melt_RLum) exportMethods(names_RLum) exportMethods(replicate_RLum) exportMethods(set_RLum) exportMethods(set_Risoe.BINfileData) exportMethods(show) exportMethods(smooth_RLum) exportMethods(sort_RLum) exportMethods(structure_RLum) exportMethods(view) import(data.table) import(methods) import(utils) importFrom(Rcpp,evalCpp) importFrom(grDevices,adjustcolor) importFrom(grDevices,rgb) importFrom(graphics,abline) importFrom(graphics,axTicks) importFrom(graphics,axis) importFrom(graphics,curve) importFrom(graphics,hist) importFrom(graphics,layout) importFrom(graphics,legend) importFrom(graphics,lines) importFrom(graphics,mtext) importFrom(graphics,par) importFrom(graphics,plot) importFrom(graphics,points) importFrom(graphics,polygon) importFrom(graphics,segments) importFrom(graphics,text) importFrom(graphics,title) importFrom(stats,approx) importFrom(stats,coef) importFrom(stats,density) importFrom(stats,dnorm) importFrom(stats,median) importFrom(stats,na.exclude) importFrom(stats,nls) importFrom(stats,predict) importFrom(stats,quantile) importFrom(stats,residuals) importFrom(stats,rnorm) importFrom(stats,runif) importFrom(stats,sd) importFrom(stats,setNames) importFrom(stats,uniroot) useDynLib(Luminescence, .registration = TRUE) Luminescence/NEWS.md0000644000176200001440000010366514762561642014012 0ustar liggesusers # Changes in version 1.0.1 (2025-03-07) ## Bugfixes ### `analyse_baSAR()` - The number of aliquots used was only partially reported if no aliquots were removed, resulting in an incomplete message in the output to the terminal. ### `analyse_FadingMeasurement()` - The function now checks that an input object generated from an XSYG file contains irradiation steps and returns an error if none are available, instead of producing an unhelpful output (#588). - A regression in `plot_RLum.Analysis()` caused part of the plot of the luminescence curves to be garbled (#589). - The function crashed on a file generated by `read_XSYG2R()` if the number of curves available after removal of the irradiation step was not enough for the the fading measurement to be analysed (#603). ### `analyse_pIRIRSequence()` - The check on the minimum device plot size used to fail if only one dimension was below our minimum threshold, and when it was incorrectly triggered by the floating point values computed by `grDevices::dev.size()`, which sometimes could be spuriously just below threshold. We also changed the minimum device size from 18 to 16 inches (#593). ### `calc_CosmicDoseRate()` - The function crashed if the number of depths provided exceeded that of the densities and the latter contained more than one value (#595). ### `calc_FadingCorr()` - The function sporadically returned an implausibly large error estimate if any of the Monte Carlo simulations produced an outlier solution (#597). - The function now allocates only as much memory as required if the user specifies a value for `n.MC` other than `"auto"`, which brings a small speed-up if fewer than 10 million samples are requested. - Input arguments are now more thoroughly checked to avoid warnings or unhelpful messages (#599). ### `calc_FastRatio()` - The function crashed if the input was an RLum.Analysis object (#586). ### `plot_AbanicoPlot()` - The `xlim`, `ylim` and `zlim` parameters are now better validated to avoid possible crashes if misspecified (#581). ### `plot_RLum.Analysis()` - The function reset incorrectly the graphical parameters for the case `plot_singlePanels = TRUE`. This caused a regression in the plot output from `analyse_FadingMeasurement()` (#589). ### `sort_RLum()` - The function doesn’t crash when multiple fields are specified, although the actual sort at the moment occurs only on the first field (#606). - Attempting to sort an empty object returns the object itself instead of crashing (#608). ------------------------------------------------------------------------ # Changes in version 1.0.0 (2025-02-21) ## New functions - `apply_Crosstalk()`, `calc_MoransI()`, `plot_SingleGrainDisc()` and `plot_MoranScatterplot()` were contributed by Anna-Maartje de Boer and Luc Steinbuch (#560). An introductory example on how to use these functions is available by executing `vignette("crosstalk")`. - `calc_EED_Model()` models incomplete and heterogeneous bleaching of mobile grains after Guibert et al. (2017). Along with the function, the new `ExampleData.MortarData` data set was added. - `fit_DoseResponseCurve()` and `plot_DoseResponseCurve()` are two new functions derived from `plot_GrowthCurve()`: the first only performs the fitting of a dose-response curve, while the second plots it. This brings greater flexibility and increased speed, as plotting is now independent of fitting (#141, fixed in \#318). - `melt_RLum()`: Creates a new flat `data.frame` that can be used for instance in combination with `'ggplot2'`. It works only on `RLum.Data.Curve-class` and `RLum.Analysis-class` objects and lists of such objects. - `merge_RLum.Data.Spectrum()`: This new function allows to merge two or more `RLum.Data.Spectrum` objects in different ways (#368, fixed in \#419). - `add_metadata()`, `rename_metadata()`, `replace_metadata()`: These function allow to manipulate the metadata of `Risoe.BINfileData`, `RLum.Analysis` and `RLum.Data` objects (#480, fixed in \#514, \#524, \#525, \#527, \#534, \#545). - `sort_RLum()`: Allows to sort the records of `RLum.Analysis` and `Risoe.BINfileData` objects according to a given slot or info element (#528, fixed in \#571 and \#576). - `view()`: Provides a shortcut to the `utils::View()` spreadsheet-like data viewer tailored to the objects in the package (#489, fixed in \#490). ## Breaking changes - We have dropped our dependency on the `readxl` package: functions `analyse_baSAR()` and `use_DRAC()` now do not accept XLS files anymore but CSV files instead (#237, fixed in \#270). CSV files can be easily generated from XLS files by Excel or similar applications, or by reading them with `readxl::read_excel()` and saving them with `write.csv()`. - The `plot.single` option, which was available for several functions, sometimes under a slightly different name, has now been renamed to `plot_singlePanels` for overall consistency and clarity. Function `scale_GammaDose()` used that option but gave it the opposite meaning: now also this function conforms to the rest of the package. The use of the older names is now deprecated and will produce a warning (#351, fixed in \#408). - The `NumberIterations.MC` option of `plot_GrowthCurve()` has now been renamed to `n.MC` for consistency with other functions. Potentially affected are also `analyse_Al2O3C_ITC()`, `analyse_baSAR()`, `analyse_SAR.CWOSL()`, `analyse_SAR.TL()`, `calc_Huntley2006()`, `calc_Lamothe2003()`, as they may pass that option `plot_GrowthCurve()` via their `...` argument. The use of the older name is now deprecated and will produce a warning (#546, fixed in \#547). ## Renamed functions and deprecations - Function `Analyse_SAR.OSLdata()` is now officially deprecated, `analyse_SAR.CWOSL()` should be used instead (#216, fixed in \#264). - Functions `CW2pHMi()`, `CW2pLM()`, `CW2pLMi()` and `CW2pPMi()` have been renamed to `convert_CW2pHMi()`, `convert_CW2pLM()`, `convert_CW2pLMi()` and `convert_CW2pPMi()`, respectively. The use of the older names is now deprecated and will produce a warning (#499, fixed in \#503). - Function `Second2Gray()` has been renamed to `convert_Second2Gray()` (#498, fixed in \#500). - Function `PSL2Risoe.BINfileData()` has been renamed to `convert_PSL2Risoe.BINfileData()` (#555, fixed in \#556). ## New dependencies - We have added package `’vdiffr’` as dependency in `suggests`. The package enables us to automatically verify the consistency of plot outputs generated by package functions against reference figures captured earlier. Although this new dependency does not have any user-visible impact, it is required when building `’Luminescence’` from source. The primary advantage lies in the developer’s domain, as it ensures that modifications to functions do not inadvertently alter plot outputs. ## Bugfixes ### `analyse_Al2O3C_CrossTalk()` - The function doesn’t crash anymore if option `recordType` is specified and none of the records in the data set is of that type (#487, fixed in \#488). ### `analyse_baSAR()` - Argument `XLS_file` has been replaced by `CSV_file` and, as mentioned above, the function now only accepts CSV files as input (#237, fixed in \#270). - Add support for `recordType` passed to `get_RLum` in the additional arguments. - Option `plot.single` has been renamed to `plot_singlePanels` (#351, fixed in \#408). - The function crashed if the number of MCMC iterations was set equal to the thinning interval; on the other hand, we saw errors reported from JAGS if the number of MCMC iterations was not at least double the thinning interval. To address this, we slightly retouched our automatic setting of the thinning interval (which was problematic only if the number of MCMC iterations was extremely low); on the other hand, if a user sets a thinning interval that is too high, we now reset it to a lower value and raise a warning (#407, fixed in \#409). - The function crashed if a `Risoe.BINFileData` object was provided and the argument `irradiation_times` was set; fixed. - The function was supposed to remove non-OSL curves from the dataset, but it almost never did; fixed. - The function is more robust against input that may have been subset inconsistently (#517, fixed in \#518). - The function doesn’t crash but reports more helpful messages in case the user overrides the default set of monitored variables using `variable.names` within the `method_control` argument (#521, fixed in \#522). ### `analyse_SAR.CWOSL()` - The function crashed for a list input that led to `NULL` for various reasons (e.g., unsuitable set of curves). Here the self-call attempted to extract information from the results that did not exist in the first place instead of returning `NULL`; fixed. - The produced `RLum.Results` object now also contains a column for the grain (#553, fixed in \#554). ### `analyse_FadingMeasurement()` - The function now checks for the version of the BIN-file that originated the `RLum.Analysis` object given as input, and reports a message if a version older than 5 was used (#281, fixed in \#282). - The function doesn’t crash anymore on some `RLum.Analysis` input files (#283, fixed in \#288). - Option `plot.single` has been renamed to `plot_singlePanels` (#351, fixed in \#408). - The function doesn’t crash anymore if no record is left after removal of records with negative time since irradiation (#454, fixed in \#456). - The function has been made more robust in the calculation of rho’ (#558, fixed in \#559). ### `analyse_IRSAR.RF()` - The performance of this function has been improved for the “SLIDE” and “VSLIDE” methods, thanks both to tweaks in the C++ implementation of the sliding algorithm and in how that is managed on the R side. In particular, the default number of sliding windows tested in the algorithm has been reduced from 10 to 3: this value is no longer hardcoded, but can be tuned through the new `num_slide_windows` setting (part of the `method.control` option), thus allowing to find a balance between computation time and quality of fit (#372, fixed in \#388, \#398 and \#399). - The function is more robust against `sequence_structure` misspecifications (#393, fixed in \#394). - Some data preparation steps where not correctly applied for `method = "VSLIDE"` (#396, fixed in \#397). - Option `method.control` has been renamed to `method_control` for consistency with all other functions in the package (#411, fixed in \#412). ### `analyse_pIRIRSequence()` - Option `plot.single` has been renamed to `plot_singlePanels` (#351, fixed in \#408). - The produced `RLum.Results` object now also contains a column for the grain (#553, fixed in \#554). - The function now checks that the `sequence.structure` argument contains at least one IR step (#579, fixed in \#580). ### `analyse_SAR.CWOSL()` - Option `plot.single` has been renamed to `plot_singlePanels` (#351, fixed in \#408). - The function shifted the curves correctly in cases where the first channel is zero and a log-transformation on the x-axis is requested (#580, fixed in \#531). ### `apply_CosmicRayRamoval()` - Support has been added for the internal function `smooth_RLum` that can be passed as new argument for `method`. ### `calc_AverageDose()` - The function crashed if the data contained non-positive values: now these are removed before proceeding (#532, fixed in \#533). ### `calc_CentralDose()` - Argument `na.rm` is now deprecated: the function will now always remove missing values, as otherwise the presence of any `NA` would propagate and produce unusable results (all `NA`s) or buggy behaviour (#302, fixed in \#304). - The function stops the fixed-point iteration for the computation of the profile log-likelihood as soon as `sigma < 1e-16`, as allowing `sigma` to become zero leads to infinities and buggy behaviour (also fixed in \#304). ### `calc_FastRatio()` - A number of crashes related to input validation have been fixed (#471, fixed in \#472). ### `calc_FiniteMixture()` - Arguments `dose.scale` and `pdf.scale` were not used and have been removed (#566, fixed in \#567). ### `calc_gSGC()` - The function crashed if the data contained negative errors: to avoid this, we now take the absolute values of errors (#479, fixed in \#481). ### `calc_Huntley2006()` - Some crashes in case of model misspecification have been solved (#538, fixed in \#539). - Some details in the implementation of the function have been optimized, and now it is much faster than before. As part of this, we have changed the default setting of the `rprime` vector that is used in the calculation of the natural dose response and the field saturation, so that more points are concentrated in the bulk of the distribution: this previously depended incorrectly on the number of Monte Carlo iterations requested, so this change brings an additional speed boost. The default setting can be overridden via the `rprime` argument (#258, fixed in \#541 and \#542). - Fitting the “GOK” model on the unfaded data failed when the “EXP” model we use to find a good starting point failed: in such cases, we try again using the simulated fit (#549, fixed in \#500; thanks to @SalOehl for reporting and providing data to reproduce the error). - The natural/simulated curve was not plotted in the negative quadrant for `mode = "extrapolation"`, which made it harder to see where it extrapolated to (#551, fixed in \#552; thanks to @SalOehl for reporting). ### `calc_IEU()` - The code of this function has been consolidated to avoid duplication and make its debugging easier: this has uncovered a small coding error and also led to some speed up (#429, fixed in \#430, \#431 and \#432). - Some crashes in the function have been solved (#424, fixed in \#433). ### `calc_Lamothe2003()` - We addressed a long-standing issue regarding the calculation of the `Ln/Tn` error after fading correction, which led to smaller than expected errors (#96, fixed in \#296). ### `convert_RLum2Risoe.BINFileData()` - The function could crash with a `incompatible types (from raw to character)` error under particular circumstances; fixed. - The function would fail in edge cases where different objects are mixed so that certain fields for `METADATA` are already available but in the wrong format; fixed. ### `extract_IrradiationTimes()` - In some circumstances the function failed to update an existing BIN/BINX file due to an incorrect way of subsetting an intermediate data frame of results (#445, fixed in \#446). - The function crashed if the info element `startDate` was missing in the irradiation curve; fixed. ### `fit_CWCurve()` - The function crashed if the computation of the confidence intervals done in `confint()` failed. This has now been fixed, and in cases of failures we report the error message received from `confint()` (#509, fixed in \#510). - Argument `output.terminal` has been renamed to `verbose` for consistency with other functions. - The function has gained the new `method_control` argument, which can be used to control the saving of the component contribution matrix in the RLum.Results object it returns. This is now disabled by default: to restore the previous behaviour, add `method_control = list(export.comp.contrib.matrix = TRUE)` to the function call (fixed in \#573). - In case of plot failure the function now is able to recover gracefully and produce an output object (#574, fixed in \#578). ### `fit_EmissionSpectra()` - The function can now return a data frame with the values of all curves plotted, so that it’s much easier to produce alternative plots, by setting option `export.plot.data = TRUE` within the `method_control` argument (#569, fixed in \#570 and \#573). ### `fit_LMCurve()` - The function has gained the new `method_control` argument, which can be used to control the saving of the component contribution matrix in the RLum.Results object it returns. This is now disabled by default: to restore the previous behaviour, add `method_control = list(export.comp.contrib.matrix = TRUE)` to the function call (fixed in \#573). - In case of plot failure the function now is able to recover gracefully and produce an output object (#574, fixed in \#578; thanks to @LumTKO for reporting). ### `get_RLum()` - If the `subset` option was used on info elements of an `RLum.Analysis` object, it would return wrong results if the info element was not present in all records; fixed. ### `import_Data()` - The function automatically determines the available import functions and ensures that formats supported by the package are tested and used. - A minor change in the code enables the support of `character` vectors of length \> 1 as input (e.g., different file names). Furthermore, the function received more testing against a mixture of input formats. Therefore you can provide many different files formats and the function will try to import them all in one go. ### `plot_AbanicoPlot()` - If negative values were provided, the function sometimes produced wrong plots for `z.log = TRUE` (the default); fixed. - Support for `tcl` and `tck` arguments via `...` was removed as they were never used internally. ### `plot_DetPlot()` - Option `plot.single` has been renamed to `plot_singlePanels` (#351, fixed in \#408). ### `plot_DRTResults()` - The function crashed if option `na.rm` was used alongside the `preheat` option but the data set contained no missing values (#474, fixed in \#475). ### `plot_GrowthCurve()` - The function is now implemented as a wrapper around `fit_DoseResponseCurve()` and `plot_DoseResponseCurve()`. There should be no visible user-facing changes (#319, fixed in \#322). - Support new `...` arguments for plotting (implementation in `plot_DoseResponseCurve()`) for `legend` (turn on/off legend) and `reg_points_pch` for fine grained control over the point shape. - Add `density_polygon`, `density_polygon_col`, `density_rug`, `box` as `...` arguments to plot and add respective plot options - The function crashed for single grain data that sometimes caused a lot of `NaN` values during log conversions required for estimating the start parameters. The result was the error `object 'b.MC' not found` (#374; fixed) - For the non-linear choices of `fit.method` (`"EXP+LIN"`, `"EXP+EXP"`, `"GOK"` and `"LambertW"`), the function could get stuck in an endless loop when the number of parameters was larger than or equal to the number of data points. This is now checked, and in those cases the method is changed to `"LIN"` (#381, fixed in \#465). - We replaced `nls()` with `minpack.lm::nlsLM()` as it’s more robust and can find a fit in cases where `nls()` would fail. Please keep in mind that it does not mean that fit results in those cases make any sense, it just helps to avoid uncontained events in the R session (addresses \#381). - Option `output.plotExtended.single` has been renamed to `plot_singlePanels` (#351, fixed in \#408). - The function now supports a list of data frames as input, in which case it calls itself on each element of the list and produces a list of `RLum.Results` as output (#405, fixed in \#434). - The function reported negative dose values in the MC runs plot when using `fit.method = "QDR"` and `mode = "extrapolation"` (#504, fixed in \#505). - Argument `NumberIterations.MC` has been renamed to `n.MC` (#546, fixed in \#547). ### `plot_RLum.Analysis()` - Option `plot.single` has been renamed to `plot_singlePanels` (#351, fixed in \#408). ### `plot_RLum.Data.Curve()` - Argument `norm` is now better validated so that specifying an incorrect value returns an error instead of silently skipping curve normalisation (#250, fixed in \#263). ### `plot_RLum.Data.Spectrum()` - The gradient between colours when `plot.type = "persp"` is now more consistent and doesn’t produce artefacts in the regions of transition between colours (#371, fixed in \#380). - The function would crash if the `bin.rows` or `bin.cols` value was set too high or if `xlim` and `ylim` were set too tight (#415, fixed in \#416). ### `read_BIN2R()` - The function is now much faster: we have recorded an overall improvement of over 60% on a 46M file, with potentially bigger time savings for larger files (#298, fixed in \#333, \#355 and \#360). - Argument `n.records` is now better supported for BIN files v3 and v4 and doesn’t lead to a crash when used in conjunction with the `fastForward` option (#343, fixed in \#344). - Argument `zero_data.rm` was not correctly propagated if the input object was provided as a list (#342, fixed in \#345). - The `METADATA` fields that are not actually read from the BINX file in case of a ROI record are now set to `NA` rather than being assigned the value from the previous record (#336, fixed in \#360). - The `.RESERVED` slot is now kept in sync with the rest of the object when records are dropped from the input BIN/BINX file (#337, fixed in \#348). - The function doesn’t crash anymore when reading a file that contains a record with an unrecognised version after other records with a valid version have been read (#352, fixed in \#353). - The function doesn’t crash anymore when reading a file that contains a ROI record while using `fastForward = TRUE` (#356, fixed in \#360). ### `read_HeliosOSL2R()` - If the function encounters problems in the provided list of files, it shows a more relaxed handling; throws an error but continues reading. ### `read_XSYG2R()` - The new `n_records` argument now enables to control the number of records to import, which can be useful in case the file is faulty. - The function failed to import files when a directory name was provided; this was a regression introduced in v0.9.25 and it has now been fixed. - The function truncated the terminal output under certain circumstances; fixed. ### `scale_GammaDose()` - Option `plot_single` has been renamed to `plot_singlePanels` and was changed so that `plot_singlePanels = TRUE` will produce one plot per panel, for consistency with other functions (#351, fixed in \#408). ### `template_DRAC()` - The function gained a new argument `file_input` that enables the creating of a DRAC template based on an existing DRAC CSV file. This way, already available DRAC files can be conveniently modified without having to call `use_DRAC()` first. - The template contained a couple of minor mistakes that got fixed along with a more strict enforcement of the class of each field, which is now set as an attribute; the change should have no user-visible effect. - The function now supports the conversion factors by Cresswell et al. (2018) (`Cresswelletal2018`). Please ensure that the server supports that option. ### `trim_RLum.Data()` - The function has been made more robust against misspecifications of its `trim_range` argument that could lead to crashes (#460, fixed in \#461). ### `use_DRAC()` - Support for DRAC v1.1 XLS/XLSX files has been dropped, users should use CSV files according to the DRAC v1.2 CSV template. - The function gained support for three new `...` arguments: `version_ignore` to ignore the DRAC version check, `user` and `password` to access password protected websites. - The identifiers submitted to the DRAC server are now better randomized to to guarantee more confidentiality of the data transmitted (#435, fixed in \#438). ### `verify_SingleGrainData()` - **Potentially breaking old code!**: if `cleanup = TRUE` the result was not consistent and produced a mixture of `RLum.Results` and `RLum.Analysis`/`Risoe.BINFileData` objects in particular when run over a list, this was not what stated in the manual. Now the function indeed cleans up the object, hence if a list of `RLum.Analysis` objects is provided, the result is a cleaned list of that object. If the clean-up ends up removing everything, the result is `NULL`. - The function doesn’t crash anymore when applied to an empty list (#365, fixed in \#366). - Silence the very talkative terminal output even if nothing was removed from a record for `cleanup = TRUE`. - The function now provides better terminal feedback if the selection results in an empty record. - Add a new logical argument `use_fft` that will apply an additional Fast Discrete Fourier Transform (FFT) verification on the data if wanted. ### `write_R2BIN()` - The function now supports the `verbose` argument, which can be used to suppress output to the terminal (#442, fixed in \#444). ------------------------------------------------------------------------ # Changes in version 0.9.26 (2024-11-18) ## Removed functions - Function `calc_Kars2008()` (deprecated since version 0.8.1) is now officially defunct, `calc_Huntley2006()` should be used instead (#252, fixed in \#257). ## Bugfixes ### `analyse_pIRIRSequence()` - The function crashed with a object merge error if run in a loop because of a `merge_RLum()` error. This was caused by a regression while implementing the `n_N` calculation in `plot_GrowthCurve()`. Potentially affected was also `analyse_SAR.CWOSL()`. - The function now shows a warning and sets `plot = FALSE` when option `plot.single = FALSE` is set but the device size is too small. This should prevent “Figure margins too large” errors. - The function will not crash anymore during the plotting in another edge case related to single grain data. ### `analyse_SAR.CWOSL()` - The function crashed for mixed set of `RLum.Analysis-class` objects typically observed for single grain data, e.g., one object contains only TL curves while all others contain the OSL/IRSL data from the grain. As the function filters those records automatically, it crashed because the aliquot number assignment internally relied on the length of the object (regression, \#373, fixed) ### `analyse_SAR.TL()` - The function now produces a more correct `rejection.criteria` data frame (#245, fixed in \#246). - Several edge cases that led to crashes have been fixed (#147, fixed in \#247). ### `get_RLum()` - When the function was used on a list of `RLum.Analysis-class` objects with the argument `null.rm = TRUE` it would remove all `NULL` objects, but not elements that became `list()` (empty list) during the selection; fixed. - Fix an edge case that caused a rather non-expected, more visible output problem. When curves were selected via `recordType` on `RLum.Analysis-class` objects (or a list of them) containing only a single `RLum.Data-class` object, the function returned the `RLum.Data.Curve-class` object *regardless* of the selection in `recordType`. In other words: if a user tried `recordType = "TL"` on an `RLum.Analysis-class` object that contained only a single IRSL curve, the function would still return that single IRSL curve instead of an empty element. The reason for this behaviour was a poor attempt to deal with `NA` in the `recordType` name that led to missing values and unexpected behaviour for a logical comparison. Now, before the subset happens, `NA` values in `recordType` are converted to `"NA"` (a character), allowing us to fix the incorrect subsetting. ### `plot_RLum.Data.Spectrum()` - Add support for `lphi` and `ltheta` light direction arguments for `plot.type = "persp"`. - Fix the reason for the unclear warning `In col.unique == col : longer object length is not a multiple of shorter object length` ### `write_R2BIN()` - Recently, non-ASCII characters in comments or file names have become more common and that led to crashes during the file export. To avoid this, now all non-ASCII characters are replaced by `_` before writing them to the BIN/BINX files. - The function now returns the file path of the export. - Fix a bug that left connections open if the function crashed. ## Internals - Two new internal functions `.throw_warning()` and `.throw_error()` sometimes flushed the terminal with messages if called (internally) in particular circumstances. Now we maintain a stack of function names, so that at any time we can report correctly the name of the function where an error or a warning is thrown (#254, fixed in \#256). ------------------------------------------------------------------------ # Changes in version 0.9.25 (2024-09-12) **This package version requires R \>= 4.3** ## New functions - `read_HeliosOSL2R()`: New import function to support the new zero rad Helios luminescence reader and its `.osl` file format. The output is an `RLum.Analysis-class` object. ## Bugfixes ### `analyse_baSAR()` - Fix \#183 addressing an edge-case crash when the function was called on an object containing no records of the appropriate type (#184, @mcol). ### `analyse_FadingMeasurements()` - Add `...` support to disable the blue trend line via `plot.trend = FALSE` - Fix \#175 to deal gracefully with the case when the size of Lx and Tx doesn’t match (#192, @mcol). ### `analyse_portableOSL()` - Function did not respect argument `main`; fixed. ### `convert_Wavelength2Energy()` - Fix \#133 addressing cases where R throws an uncontained error when R drops the object structure in very rare cases (#134; thanks @mcol) ### `calc_Huntley2006()` - Improve success rate of GOK fitting of the unfaded data using a two step approach: first an exponential fit is applied then this values are used as start parameters. ### `calc_Statistics()` - The skewness and kurtosis depended on number of MC samples (#122); fixed with \#123 (thanks to @mcol) ### `calc_TLLxTxRatio()` - Function crashed for `Tx.data.background = NULL` (#129); fixed with \#130 thanks to @mcol ### `calc_WodaFuchs2008()` - The function now officially supports numeric vectors and single-column data frames as input (#200). - The function computed the number of breaks for the histogram incorrectly (#197, fixed with \#198). - The function now supports more types of `RLum.Results` objects without crashing, although if the object contains only one data point it will stop immediately to avoid problems with `nls()` (#199, fixed in \#219). ### `extract_IrradiationTimes()` - If a BIN/BINX-file is provided, the function will now check that it contains the same amount of data as the corresponding XSYG file a bit earlier than before, thus avoiding a possible crash (#228, fixed in \#229). ### `fit_CWCurve()` - Argument `output.path` has been removed, and a warning is raised when attempting to use it (#207, fixed in \#209). ### `fit_EmissionSpectra()` - Parameter `input_scale` was not correctly propagated when the function would self-call (#160, @mcol). ### `fit_OSLLifeTimes()` - The validation of the minimum dataset size didn’t account for the use of the `signal.range` argument (#182, fixed by \#195, @mcol). ### `fit_SurfaceExposure()` - Fix \#162 to remove a dimension mismatch if the input data contained `NA`s, which would generate unexpected warnings (#163, @mcol). - The function doesn’t stop anymore with an error if called on an `RLum.Results` object (#165, @mcol). ### `plot_AbanicoPlot()` - Argument `plot.ratio` will now throw an error on non-positive numerical values (#221, fixed in \#222). - The function doesn’t crash anymore when setting `interactive = TRUE` (#220, fixed in \#233). ### `plot_DetPlot()` - Argument `signal.integral.max` is now enforced to be greater than `signal.integral.min`, as otherwise the computation of the number of channels would produce `Inf` (#203, fixed in \#206). - Fix a crash when using option `analyse_function = "analyse_pIRIRSequence"` (#210, fixed in \#211). ### `plot_GrowthCurve()` - The function now calculates the relative saturation (`n/N`) using the ratio of the two integrates. The value is part of the output table. - Argument `na.rm` has been removed: as of version 0.9.23, it was defunct and only accepted `TRUE` as valid value and produced an error otherwise, so there is no effective change in behaviour (#137, fixed in \#214). ### `plot_Histogram()` - The function doesn’t crash anymore when setting `interactive = TRUE` (#186, fixed in \#231). ### `plot_KDE()` - It now officially supports numeric vectors and single-column data frames, for which it assumes that the De error at each measurement is 10^-9 (#189, fixed in \#194, @mcol). ### `plot_NRt()` - The function reports an helpful message rather than crashing when applied to an object of unexpected type or when there is a mismatch in time values (#177, fixed with \#179 by @mcol). ### `plot_RadialPlot()` - The function doesn’t crash anymore when a single-column data frame is provided (#191, fixed in \#212). ### `plot_RLum.Data.Analysis()` - The function now supports all arguments from `plot_RLum.Data.Spectrum()`; before it had only basic functionality for `RLum.Data.Spectrum-class` data. ### `plot_RLum.Data.Spectrum()` - The plot function can now handle non-increasing column values for plotting (with a warning). ### `read_BIN2R()` - `ignore.RECTYPE` now supports numeric values, e.g., 128. Records for this type will be ignored during import. - BINX-files with `RECTYPE = 128` will not crash anymore, thanks for asking Anna-Maartje Boer and replying Karsten Bracht. - The function now stops graciously when attempting to read an empty file (#225, fixed in \#226). ### `read_PSL2R()` - The function is out of the beta status, hence the flag was removed. - The `RLum.Analysis-class` object returned by the function gained a new element `Sequence`, which is a data frame. with the measured sequence. This way, if the original sequence was lost, it can still be extracted from the `.psl` data. - If no `.psl` file was found the function got trapped in an infinite loop (#127); fixed with \#128 (thanks to @mcol) ### `read_XSYG2R()` - Fix spectrometer data import for basically broken files. ### `read_Daybreak2R()` - Fix \#135 to improve detection of non-ASCII files (#140, @mcol). ### `Risoe.BINfileData2RLum.Analysis()` - Fix a crash when reading an empty Risoe.BINfileData input (#215, fixed in \#224). ## Internals - New internal function + tests added `.get_named_list_element()`. It just does what the names says. Luminescence/inst/0000755000176200001440000000000014762561726013661 5ustar liggesusersLuminescence/inst/CITATION0000644000176200001440000001026714762554470015022 0ustar liggesuserscitHeader("The R package 'Luminescence' is the joint work of many over many years. To cite the R package 'Luminescence' we suggest using the first entry and applying the rest where justified. To credit all authors **and** contributors, please see https://doi.org/10.32614/CRAN.package.Luminescence and the archive on Zenodo https://doi.org/10.5281/zenodo.596252 and for an always-up-to-date citation record with DOI.") citation(auto = meta) bibentry(bibtype = "Article", title = "Introducing an R package for luminescence dating analysis", author = "Sebastian Kreutzer, Christoph Schmidt, Margret C. Fuchs, Michael Dietze, Manfred Fischer, Markus Fuchs", year = "2012", journal = "Ancient TL", volume = "30", number = "1", pages = "1-8") bibentry(bibtype = "Article", title = "A practical guide to the R package Luminescence", author = "Michael Dietze, Sebastian Kreutzer, Margret C. Fuchs, Christoph Burow, Manfred Fischer, Christoph Schmidt", year = "2013", journal = "Ancient TL", volume = "31", number = "1", pages = "11-18") bibentry(bibtype = "Article", title = "Data processing in luminescence dating analysis: An exemplary workflow using the R package 'Luminescence'", author = "Margret C. Fuchs, Sebastian Kreutzer, Christoph Burow, Michael Dietze, Manfred Fischer, Christoph Schmidt, Markus Fuchs", year = "2015", journal = "Quaternary International", volume = "362", pages = "8-13", doi = "10.1016/j.quaint.2014.06.034") bibentry(bibtype = "Article", title = "A new R function for the Internal External Uncertainty (IEU) model", author = "Rachel K Smedley", journal = "Ancient TL", year = "2015", volume = "33", number = "1", pages = "16-21") bibentry(bibtype = "Article", title = "The abanico plot: visualising chronometric data with individual standard errors", author = "Michael Dietze, Sebastian Kreutzer, Christoph Burow, Margret C. Fuchs, Manfred Fischer, Christoph Schmidt", year = "2016", journal = "Quaternary Geochronology", volume = "31", pages = "12-18", doi = "10.1016/j.quageo.2015.09.003") bibentry(bibtype = "Article", title = "Bayesian statistics in luminescence dating: The baSAR-model and its implementation in the R package 'Luminescence'", author = "Norbert Mercier and Sebastian Kreutzer and Claire Christophe and Guillaume Guerin and Pierre Guibert and Christelle Lahaye and Philippe Lanos and Anne Philippe and Chantal Tribolo", year = "2016", journal = "Ancient TL", volume = "34", number = "2", pages = "14-21") bibentry(bibtype = "Article", title = "Software in the context of luminescence dating: status, concepts and suggestions exemplified by the R package 'Luminescence'", author = "Sebastian Kreutzer and Christoph Burow and Michael Dietze and Margret C. Fuchs and Manfred Fischer and Christoph Schmidt", year = "2017", journal = "Ancient TL", volume = "35", number = "2", pages = "1-11") bibentry(bibtype = "Article", title = "Environmental Dose Rate Determination Using a Passive Dosimeter: Techniques and Workflow for alpha-Al2O3:C Chips", author = "Sebastian Kreutzer and Loic Martin and Guillaume Guerin and Chantal Tribolo and Pierre Selva and Norbert Mercier", year = "2018", journal = "Geochronometria", volume = "45", pages = "56-67") bibentry(bibtype = "Article", title = "Age determination using feldspar: Evaluating fading-correction model performance", author = "Georgina E.King and Christoph Burow and Helen M.Roberts and Nicholas J.G.Pearce", year = "2018", journal = "Radiation Measurements", volume = "119", pages = "58-73", doi = "10.1016/j.radmeas.2018.07.013") bibentry(bibtype = "Article", title = "Luminescence age calculation through Bayesian convolution of equivalent dose and dose-rate distributions:the D_e D_r model", author = "Norbert Mercier and Jean-Michel Galharret and Chantal Tribolo and Sebastian Kreutzer and Anne Philippe", year = "2022", journal = "Geochronology", volume = "4", issue = "1", pages = "292-310", doi = "10.5194/gchron-4-297-2022") Luminescence/inst/doc/0000755000176200001440000000000014762561726014426 5ustar liggesusersLuminescence/inst/doc/crosstalk.Rmd0000644000176200001440000003310314762554470017075 0ustar liggesusers--- title: "Assessing crosstalk in single-grain luminescence detection" output: rmarkdown::html_vignette: toc: true author: "Luc Steinbuch, Anna-Maartje de Boer, Wageningen University & Research" date: "February 2025" vignette: > %\VignetteIndexEntry{Assessing crosstalk in single-grain luminescence detection} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` # Crosstalk This vignette explores the crosstalk-related functions in the "Luminescence" package, related to research paper "A novel tool to assess crosstalk in single-grain luminescence detection", by Anna-Maartje de Boer, Luc Steinbuch, Gerard Heuvelink and Jakob Wallinga. Crosstalk in single-grain luminescence imaging (EMCCD) is the overlapping of luminescence signals from adjacent grains on a single-grain disc. The actual signal on one grain location influences the observed signal on a neighboring grain location which happens to be on the same measurement disc (one "position" in the reader). In this research and the shown functions, we define "neighboring" as rook-wise (horizontally and vertically) only, and we assume that all measurement discs have a regular grid of 10x10 grain locations. ```{r init} library(Luminescence) ``` # Explore imaged luminescence signals from a single-grain disc (one "position" in the reader) All grain location observations on one single-grain measurement disc are represented by a vector of 100 numbers. Here we simulate such a disc by randomly selecting from two normal distributions. The prefix "vn_" means: a vector of numbers: ```{r simulate_signal, fig.dim = c(8, 6), out.width="800px"} vn_simulated <- sample(x = c(rnorm(n = 30, mean = 2000, sd = 500), rnorm(n = 70, mean = 20, sd = 1)), size = 100) vn_simulated <- round(vn_simulated) # Because photons are discrete head(vn_simulated, n = 25) hist(vn_simulated, main = "Simulated signal (histogram)", xlab = "Photon counts", ylab = "Frequency", breaks = 30 ) ``` ## plot_SingleGrainDisc Let's visualize the disc/position: ```{r show_disc_basic, fig.dim = c(7, 7), out.width="800px"} par(mar = c(1, 4, 6, 4)) plot_SingleGrainDisc(object = vn_simulated, main = "Simulated signal (measurement disc)" ) ``` Let's calculate Moran's I, and the associated pseudo-p, of our randomly ordered simulated disc: ```{r calculate_moransI} calc_MoransI(object = vn_simulated) calc_MoransI(object = vn_simulated, compute_pseudo_p = TRUE) ``` what changes if we add a serious amount, say 10%, of crosstalk? ```{r add_crosstalk, fig.dim = c(8, 6), out.width="800px"} vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated, n_crosstalk = 0.10) vn_simulated_with_crosstalk <- round(vn_simulated_with_crosstalk) hist(vn_simulated_with_crosstalk, main = "Simulated signal with crosstalk (histogram)", xlab = "Photon counts", ylab = "Frequency", breaks = 30 ) plot_SingleGrainDisc(object = vn_simulated_with_crosstalk, main = "Simulated signal with crosstalk (measurement disc)") calc_MoransI(object = vn_simulated_with_crosstalk) calc_MoransI(object = vn_simulated_with_crosstalk, compute_pseudo_p = TRUE) ``` Let's try several amounts of simulated crosstalk: ```{r test_different_amounts, fig.dim = c(8, 6), out.width="800px"} df_MoransI <- data.frame(crosstalk = seq(from = 0, to = 0.30, length.out=50)) df_MoransI$MoransI <- NA df_MoransI$pseudo_p <- NA old.opts <- options(warn = -1) # silence warnings from compute_pseudo_p for (i in 1:nrow(df_MoransI)) { vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated, n_crosstalk = df_MoransI$crosstalk[i]) df_MoransI$MoransI[i] <- calc_MoransI(object = vn_simulated_with_crosstalk) df_MoransI$pseudo_p[i] <- calc_MoransI(object = vn_simulated_with_crosstalk, compute_pseudo_p = TRUE) } options(old.opts) # restore the default options n_expected_I_no_spatial_autocorr <- calc_MoransI(1:100, spatial_autocorrelation = FALSE) ## plot(x = df_MoransI$crosstalk, y = df_MoransI$MoransI, ylim = range( pretty(x = c(df_MoransI$MoransI, n_expected_I_no_spatial_autocorr)) ), ## Set ylim manually to make sure the value for I for no crosstalk is visible xlab = "Amount of added crosstalk", ylab = "Calculated Moran's I" ) graphics::grid() abline(h = n_expected_I_no_spatial_autocorr, col = "purple") legend(x = "topleft", legend = "Expected I if no spatial autocorrelation", lty = "solid", col = "purple", cex = 0.8) plot(x = df_MoransI$crosstalk, y = df_MoransI$pseudo_p, xlab = "Amount of added crosstalk", ylab = "Generated pseudo-p of related Moran's I") graphics::grid() ``` Please note that above two plots are subject to randomness; for a good assessment many simulations have to be performed. # Moran scatterplot A way to visualise spatial auto-correlation is the Moran scatterplot: ```{r show_`disc_extended_moran_scatterplot, fig.dim = c(8, 5), out.width="800px"} plot_MoranScatterplot(object = vn_simulated, main = "Moran scatterplot, simulated signal without crosstalk") vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated, n_crosstalk = 0.25) vn_simulated_with_crosstalk <- round(vn_simulated_with_crosstalk) plot_MoranScatterplot(object = vn_simulated_with_crosstalk, main = "Moran scatterplot, simulated signal with added crosstalk") ``` The plot area is divided into four quadrants using the mean in each dimension; the South-west and North-east quadrant represent a contribution to a positive spatial autocorrelation, while the North-west and South-east quadrants indicate a negative spatial correlation. Between the point, a least square line (which slopes indicates, but not exactly represents, Moran's I) is added, as well as an 1:1 line (which indicates a Moran's I of around 1, suggesting a perfect positive spatial correlation). The internal function `.get_Neighbours()` was until now used on the background, but we can explicitly call it to generate a dataframe with all positions which are rook connected to each other (note that we need to use the `Luminescence:::` prefix as this function is not exported by the package): ```{r adjacent_grain_locations, fig.dim = c(8, 5), out.width="800px"} vn_simulated_with_holes <- c(rnorm(30, mean = 10, sd = 5), rnorm(30, mean = 500, sd = 50), rep(NA, times = 40) ) df_Neighbours <- Luminescence:::.get_Neighbours(object = vn_simulated_with_holes) head(df_Neighbours) ``` And we can plot the first disc, while indicating which borders are taken into account. The corresponding `adjacent_grain_locations` is calculated in the background: ```{r adjacent_grain_locations_show_disc, fig.dim = c(8, 5), out.width="800px"} plot_SingleGrainDisc(object = vn_simulated_with_holes, show_neighbours = TRUE, show_location_ids = TRUE) ``` Also other functions, such as `calc_MoransI()`, work as long as the remaining grid does not become too sparse. Note that in this context all observations, even "islands" who do not border any other grains, are used for the calculation of Moran's I. # Add borders with certain weight One can manually change `df_Neighbours`, for example add the diagonal borders and attain a certain weight to it, and add it as argument to almost all functions. Assume that we want to add a few diagonal borders with weight 1/sqrt(2) to a full disc (note that the standard relative weight for rook borders is set to one): ```{r adjacent_grain_locations_add, fig.dim = c(8, 5), out.width="800px"} df_Neighbours_with_diag <- Luminescence:::.get_Neighbours(object = vn_simulated) for (i in c(1:9, 11:19, 21:29) ) { df_Neighbours_with_diag <- rbind(df_Neighbours_with_diag, c(i, i+11, 1/sqrt(2)) ) } tail(df_Neighbours_with_diag) plot_SingleGrainDisc(object = vn_simulated, df_neighbours = df_Neighbours_with_diag, show_neighbours = TRUE, show_location_ids = TRUE) ``` To exclude all border effects, we can use the `ignore_borders` option available in `calc_MoransI()` and `plot_SingleGrainDisc()`, which can take out all border rows and columns when computing the data frame of neighbours: ``` {r restrict_to_inner_8x8, fig.dim = c(8, 5), out.width="800px"} vn_values_to_show <- sample(x = c(rnorm(n = 30, mean = 2000, sd = 500), rnorm(n = 70, mean = 20, sd = 1)), size = 100) ## Set the outer rows to NA before adding crosstalk vn_disc_border_locations <- c(1:10, 91:100, seq(from = 11, to = 81, by = 10), seq(from = 20, to = 90, by = 10) ) vn_values_to_show[vn_disc_border_locations] <- NA vn_values_to_show <- apply_Crosstalk(object = vn_values_to_show, n_crosstalk = 0.15) calc_MoransI(object = vn_values_to_show) plot_SingleGrainDisc(object = vn_values_to_show, show_neighbours = TRUE, ignore_borders = TRUE) calc_MoransI(object = vn_values_to_show, ignore_borders = TRUE) ``` # Plot disc options ```{r show_disc_extended, fig.dim = c(8, 5), out.width="800px"} plot_SingleGrainDisc(object = vn_simulated, main = "", legend = TRUE, show_coordinates = TRUE, show_location_ids = TRUE, show_positioning_holes = FALSE) ``` When there is a wide range in values, it can be helpful to apply a logarithmic scale in plotting (note that the default is "square root"): ```{r show_disc_scales, fig.dim = c(8, 5), out.width="800px"} plot_SingleGrainDisc(object = vn_simulated, main = "Linear scale", legend = TRUE, show_coordinates = FALSE, show_location_ids = FALSE, show_positioning_holes = TRUE, str_transform = "lin") plot_SingleGrainDisc(object = vn_simulated, main = "Logarithmic scale", legend = TRUE, show_coordinates = FALSE, show_location_ids = FALSE, show_positioning_holes = TRUE, str_transform = "log") ``` # Moran scatterplot options ```{r show_scatterplot_options, fig.dim = c(8, 5), out.width="800px"} vn_simulated <- c(rnorm(75, mean = 10, sd = 5), rnorm(25, mean = 500, sd = 50) ) vn_simulated <- sample(size = 100, vn_simulated) vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated, n_crosstalk = 0.15) ## Base use plot_MoranScatterplot(object = vn_simulated, main = "Without crosstalk") plot_MoranScatterplot(object = vn_simulated_with_crosstalk, main = "With crosstalk") ## Layout options plot_MoranScatterplot(object = vn_simulated_with_crosstalk, pch = "show_location_ids", legend = FALSE, log = "xy", main = "With location ID's; and with log scales" ) plot_MoranScatterplot(object = vn_simulated_with_crosstalk, pch = "show_n_neighbours", legend = FALSE, str_y_def = "weighted_sum", main = "With number of neighbours, and other y calculation" ) ``` # Moran's I function options The function `calc_MoransI()` can return many intermediate calculation numbers: ```{r moransI_intermediate_numbers} calc_MoransI(object = 1:100, return_intermediate_values = TRUE) ``` If the weights (and thus the spatial pattern under investigation) and the number of observations remain the same, this can be useful to understand what is happening. For example, if we add crosstalk, we can see that the population variance in most cases slightly increases (the values are indeed spatially smoothed, but the average increases) but the spatial autocorrelation strongly increases: ```{r moransI_intermediate_numbers_extended} vn_simulated <- sample(x = c(rnorm(n = 30, mean = 2000, sd = 500), rnorm(n = 70, mean = 20, sd = 1)), size = 100) vn_simulated <- round(vn_simulated) vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated, n_crosstalk = 0.20) vn_simulated_with_crosstalk <- round(vn_simulated_with_crosstalk) df_compare <- data.frame(Case = c("Without crosstalk", "With crosstalk"), MoransI = c(calc_MoransI(object = vn_simulated), calc_MoransI(object = vn_simulated_with_crosstalk) ), PopulationVar = c(calc_MoransI(object = vn_simulated, return_intermediate_values = TRUE)$n_population_variance, calc_MoransI(object = vn_simulated_with_crosstalk, return_intermediate_values = TRUE)$n_population_variance), SpatialAutoCor = c(calc_MoransI(object = vn_simulated, return_intermediate_values = TRUE)$n_average_auto_correlation, calc_MoransI(object = vn_simulated_with_crosstalk, return_intermediate_values = TRUE)$n_average_auto_correlation) ) df_compare[,2] <- round(df_compare[,2],2) (df_compare) ``` Luminescence/inst/doc/crosstalk.html0000644000176200001440000237057214762561725017340 0ustar liggesusers Assessing crosstalk in single-grain luminescence detection

Assessing crosstalk in single-grain luminescence detection

Luc Steinbuch, Anna-Maartje de Boer, Wageningen University & Research

February 2025

Crosstalk

This vignette explores the crosstalk-related functions in the “Luminescence” package, related to research paper “A novel tool to assess crosstalk in single-grain luminescence detection”, by Anna-Maartje de Boer, Luc Steinbuch, Gerard Heuvelink and Jakob Wallinga. Crosstalk in single-grain luminescence imaging (EMCCD) is the overlapping of luminescence signals from adjacent grains on a single-grain disc. The actual signal on one grain location influences the observed signal on a neighboring grain location which happens to be on the same measurement disc (one “position” in the reader). In this research and the shown functions, we define “neighboring” as rook-wise (horizontally and vertically) only, and we assume that all measurement discs have a regular grid of 10x10 grain locations.

library(Luminescence)
#> Welcome to the R package Luminescence version 1.0.1 [Built: 2025-03-07 12:16:54 UTC]
#> Fast component to slow component: 'Life is short!'

Explore imaged luminescence signals from a single-grain disc (one “position” in the reader)

All grain location observations on one single-grain measurement disc are represented by a vector of 100 numbers. Here we simulate such a disc by randomly selecting from two normal distributions. The prefix “vn_” means: a vector of numbers:


vn_simulated <- sample(x = c(rnorm(n = 30, mean = 2000, sd = 500),
                             rnorm(n = 70, mean = 20, sd = 1)),
                       size = 100)

vn_simulated <- round(vn_simulated) # Because photons are discrete

head(vn_simulated, n = 25)
#>  [1]   19   22 1873 1854   21   19   19   22 1302   20   20   18 2533   21 2292
#> [16]   20   20 1516   20 2246   22   21   20   18   20

hist(vn_simulated,
     main = "Simulated signal (histogram)",
     xlab = "Photon counts",
     ylab = "Frequency",
     breaks = 30
     )

plot_SingleGrainDisc

Let’s visualize the disc/position:


par(mar = c(1, 4, 6, 4))

plot_SingleGrainDisc(object = vn_simulated,
          main = "Simulated signal (measurement disc)"
          )

Let’s calculate Moran’s I, and the associated pseudo-p, of our randomly ordered simulated disc:


calc_MoransI(object = vn_simulated)
#> [1] -0.01798303

calc_MoransI(object = vn_simulated, compute_pseudo_p = TRUE)
#> [1] 0.546

what changes if we add a serious amount, say 10%, of crosstalk?


vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated,
                                              n_crosstalk = 0.10)

vn_simulated_with_crosstalk <- round(vn_simulated_with_crosstalk)

hist(vn_simulated_with_crosstalk,
     main = "Simulated signal with crosstalk (histogram)",
     xlab = "Photon counts",
     ylab = "Frequency",
     breaks = 30
     )


plot_SingleGrainDisc(object = vn_simulated_with_crosstalk,
          main = "Simulated signal with crosstalk (measurement disc)")


calc_MoransI(object = vn_simulated_with_crosstalk)
#> [1] 0.1300967

calc_MoransI(object = vn_simulated_with_crosstalk, compute_pseudo_p = TRUE)
#> [1] 0.026

Let’s try several amounts of simulated crosstalk:



df_MoransI <- data.frame(crosstalk = seq(from = 0,
                    to = 0.30,
                    length.out=50))

df_MoransI$MoransI <- NA
df_MoransI$pseudo_p <- NA

old.opts <- options(warn = -1) # silence warnings from compute_pseudo_p
for (i in 1:nrow(df_MoransI))
{

  vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated,
                                              n_crosstalk = df_MoransI$crosstalk[i])

  df_MoransI$MoransI[i]  <- calc_MoransI(object = vn_simulated_with_crosstalk)
  df_MoransI$pseudo_p[i] <-
    calc_MoransI(object = vn_simulated_with_crosstalk, compute_pseudo_p = TRUE)
}
options(old.opts) # restore the default options

n_expected_I_no_spatial_autocorr <- calc_MoransI(1:100,
                                                 spatial_autocorrelation = FALSE)

##

plot(x = df_MoransI$crosstalk,
     y = df_MoransI$MoransI,
     ylim = range(
          pretty(x = c(df_MoransI$MoransI, n_expected_I_no_spatial_autocorr))
          ),
     ## Set ylim manually to make sure the value for I for no crosstalk is visible
     xlab = "Amount of added crosstalk",
     ylab = "Calculated Moran's I"
     )
graphics::grid()
abline(h = n_expected_I_no_spatial_autocorr,
       col = "purple")

legend(x = "topleft",
       legend = "Expected I if no spatial autocorrelation",
       lty = "solid",
       col = "purple",
       cex = 0.8)


plot(x = df_MoransI$crosstalk,
     y = df_MoransI$pseudo_p,
     xlab = "Amount of added crosstalk",
     ylab = "Generated pseudo-p of related Moran's I")
graphics::grid()

Please note that above two plots are subject to randomness; for a good assessment many simulations have to be performed.

Moran scatterplot

A way to visualise spatial auto-correlation is the Moran scatterplot:



plot_MoranScatterplot(object = vn_simulated,
           main = "Moran scatterplot, simulated signal without crosstalk")


vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated,
                                              n_crosstalk = 0.25)
vn_simulated_with_crosstalk <- round(vn_simulated_with_crosstalk)

plot_MoranScatterplot(object = vn_simulated_with_crosstalk,
           main = "Moran scatterplot, simulated signal with added crosstalk")

The plot area is divided into four quadrants using the mean in each dimension; the South-west and North-east quadrant represent a contribution to a positive spatial autocorrelation, while the North-west and South-east quadrants indicate a negative spatial correlation. Between the point, a least square line (which slopes indicates, but not exactly represents, Moran’s I) is added, as well as an 1:1 line (which indicates a Moran’s I of around 1, suggesting a perfect positive spatial correlation).

The internal function .get_Neighbours() was until now used on the background, but we can explicitly call it to generate a dataframe with all positions which are rook connected to each other (note that we need to use the Luminescence::: prefix as this function is not exported by the package):


    vn_simulated_with_holes <- c(rnorm(30, mean = 10, sd = 5),
                              rnorm(30, mean = 500, sd = 50),
                              rep(NA, times = 40)
                              )

df_Neighbours <- Luminescence:::.get_Neighbours(object = vn_simulated_with_holes)

head(df_Neighbours)
#>    location neighbour weight
#> 11       11         1      1
#> 12       12         2      1
#> 13       13         3      1
#> 14       14         4      1
#> 15       15         5      1
#> 16       16         6      1

And we can plot the first disc, while indicating which borders are taken into account. The corresponding adjacent_grain_locations is calculated in the background:


    plot_SingleGrainDisc(object = vn_simulated_with_holes,
              show_neighbours = TRUE,
              show_location_ids = TRUE)

Also other functions, such as calc_MoransI(), work as long as the remaining grid does not become too sparse. Note that in this context all observations, even “islands” who do not border any other grains, are used for the calculation of Moran’s I.

Add borders with certain weight

One can manually change df_Neighbours, for example add the diagonal borders and attain a certain weight to it, and add it as argument to almost all functions. Assume that we want to add a few diagonal borders with weight 1/sqrt(2) to a full disc (note that the standard relative weight for rook borders is set to one):


df_Neighbours_with_diag <- Luminescence:::.get_Neighbours(object = vn_simulated)


for (i in c(1:9, 11:19, 21:29) )
{
  df_Neighbours_with_diag <- rbind(df_Neighbours_with_diag,
                                            c(i, i+11, 1/sqrt(2))
                                          )
}

tail(df_Neighbours_with_diag)
#>     location neighbour    weight
#> 202       24        35 0.7071068
#> 203       25        36 0.7071068
#> 204       26        37 0.7071068
#> 205       27        38 0.7071068
#> 206       28        39 0.7071068
#> 207       29        40 0.7071068


plot_SingleGrainDisc(object = vn_simulated,
          df_neighbours = df_Neighbours_with_diag,
          show_neighbours = TRUE,
          show_location_ids = TRUE)

To exclude all border effects, we can use the ignore_borders option available in calc_MoransI() and plot_SingleGrainDisc(), which can take out all border rows and columns when computing the data frame of neighbours:


vn_values_to_show <-
      sample(x = c(rnorm(n = 30, mean = 2000, sd = 500),
                   rnorm(n = 70, mean = 20, sd = 1)),
             size = 100)

## Set the outer rows to NA before adding crosstalk
vn_disc_border_locations <- c(1:10,
                              91:100,
                              seq(from = 11, to = 81, by = 10),
                              seq(from = 20, to = 90, by = 10)
                             )
vn_values_to_show[vn_disc_border_locations] <- NA

vn_values_to_show <- apply_Crosstalk(object = vn_values_to_show,
                                     n_crosstalk = 0.15)

calc_MoransI(object = vn_values_to_show)
#> [1] 0.2006637

plot_SingleGrainDisc(object = vn_values_to_show,
                     show_neighbours = TRUE,
                     ignore_borders = TRUE)


calc_MoransI(object = vn_values_to_show,
             ignore_borders = TRUE)
#> [1] 0.2006637

Plot disc options


plot_SingleGrainDisc(object = vn_simulated,
          main = "",
          legend = TRUE,
          show_coordinates = TRUE,
          show_location_ids = TRUE,
          show_positioning_holes = FALSE)

When there is a wide range in values, it can be helpful to apply a logarithmic scale in plotting (note that the default is “square root”):


plot_SingleGrainDisc(object = vn_simulated,
          main = "Linear scale",
          legend = TRUE,
          show_coordinates = FALSE,
          show_location_ids = FALSE,
          show_positioning_holes = TRUE,
          str_transform = "lin")



plot_SingleGrainDisc(object = vn_simulated,
          main = "Logarithmic scale",
          legend = TRUE,
          show_coordinates = FALSE,
          show_location_ids = FALSE,
          show_positioning_holes = TRUE,
          str_transform = "log")

Moran scatterplot options



vn_simulated <- c(rnorm(75, mean = 10, sd = 5),
                  rnorm(25, mean = 500, sd = 50)  )
vn_simulated <- sample(size = 100, vn_simulated)

vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated,
                                               n_crosstalk = 0.15)

## Base use
plot_MoranScatterplot(object = vn_simulated,
                      main = "Without crosstalk")



plot_MoranScatterplot(object = vn_simulated_with_crosstalk,
                      main = "With crosstalk")



## Layout options
plot_MoranScatterplot(object = vn_simulated_with_crosstalk,
           pch = "show_location_ids",
           legend = FALSE,
           log = "xy",
           main = "With location ID's; and with log scales"
           )


plot_MoranScatterplot(object = vn_simulated_with_crosstalk,
           pch = "show_n_neighbours",
           legend = FALSE,
           str_y_def = "weighted_sum",
           main = "With number of neighbours, and other y calculation"
           )

Moran’s I function options

The function calc_MoransI() can return many intermediate calculation numbers:



calc_MoransI(object = 1:100,
             return_intermediate_values = TRUE)
#> $n
#> [1] 100
#> 
#> $n_mean
#> [1] 50.5
#> 
#> $n_population_variance
#> [1] 833.25
#> 
#> $n_sum_similarities
#> [1] 133320
#> 
#> $n_sum_weights
#> [1] 180
#> 
#> $n_average_auto_correlation
#> [1] 740.6667
#> 
#> $n_moransI
#> [1] 0.8888889

If the weights (and thus the spatial pattern under investigation) and the number of observations remain the same, this can be useful to understand what is happening. For example, if we add crosstalk, we can see that the population variance in most cases slightly increases (the values are indeed spatially smoothed, but the average increases) but the spatial autocorrelation strongly increases:


vn_simulated <- sample(x = c(rnorm(n = 30, mean = 2000, sd = 500),
                             rnorm(n = 70, mean = 20, sd = 1)),
                       size = 100)
vn_simulated <- round(vn_simulated)

vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated,
                                               n_crosstalk = 0.20)
vn_simulated_with_crosstalk <- round(vn_simulated_with_crosstalk)


df_compare <-
  data.frame(Case = c("Without crosstalk", "With crosstalk"),
             MoransI =  c(calc_MoransI(object = vn_simulated),
                          calc_MoransI(object = vn_simulated_with_crosstalk)
                          ),
             PopulationVar =
               c(calc_MoransI(object = vn_simulated,
                 return_intermediate_values = TRUE)$n_population_variance,
                 calc_MoransI(object = vn_simulated_with_crosstalk,
                 return_intermediate_values = TRUE)$n_population_variance),
             SpatialAutoCor =
               c(calc_MoransI(object = vn_simulated,
                 return_intermediate_values = TRUE)$n_average_auto_correlation,
                 calc_MoransI(object = vn_simulated_with_crosstalk,
                 return_intermediate_values = TRUE)$n_average_auto_correlation)
      )

df_compare[,2] <-  round(df_compare[,2],2)

(df_compare)
#>                Case MoransI PopulationVar SpatialAutoCor
#> 1 Without crosstalk   -0.02      975831.6      -16033.19
#> 2    With crosstalk    0.37     1071639.9      395501.46
Luminescence/inst/doc/S4classObjects.pdf.asis0000644000176200001440000000030614762554470020702 0ustar liggesusers%\VignetteIndexEntry{S4-class Object Structure in 'Luminescence'} %\VignetteEngine{R.rsp::asis} %\VignetteKeyword{PDF} %\VignetteKeyword{HTML} %\VignetteKeyword{vignette} %\VignetteKeyword{package} Luminescence/inst/doc/S4classObjects.pdf0000644000176200001440000014055114762561720017747 0ustar liggesusers%PDF-1.7 % 3 0 obj <> stream xU]hU>swHEbSIkm(IؤJMnцNfgwgf[H_ ?I?VHQZ(QA|hPs,w3=9sZѤ%$愖 &JI'h |{ڂr%Z, h9%۠O&n EoN^lNH%T%"myU{$Pn AIiG2ptމF4t%>66~xc'~OSu"r_{[ >cL|+vEu6 ;A|7ƺ >x$ofǪx2[.t.J)wÝ\Pi\{zfˍx=>s/YӉSJ,>:!I#F|I֒v%%-5!rב[٘l.y"Ws, 9c7r,gC.e]L$]Y<%ʭ|4YGUN'Wle*3J:^ Gea;I' Ir0~!qCjcfw6:X;bgGTsNqkι M6OXF`c l⳱^1i]u4V~ QԢ/-w3tF yס_BBo~^rqs_ssqpŨybG/f'b~Q~7{}g1~?jvע5*s0k1^]}7a&g(,Y Nn3I$۲:Lsf_"D0<P\enXlqn4Ղb C}BjY/I}iSdsQ Y qo߮~y2 x^7ɽR\tK+pڣXTcjy`J+7&:_fd endstream endobj 2 0 obj 1078 endobj 9 0 obj <> stream x1 @ gR(K vʸ~=;u^yvrΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝeN"k\ endstream endobj 10 0 obj 281 endobj 12 0 obj <> stream x]k0^a ^(MϹ>Ln;K)<1e)؜(~W.~h_p1ŨY47yГYͮx*R?2׬fٗ6*[|r1T"as4;k|b+֬5;QJ|i٭WY6%z߻?M۳Ҭf#آٗZ8PniVU\+WVvEA[ݚE6o{]^܋ݤa5A5|z5Xlbk6~iVhVY͂f5f5 ,hVhV.}5 ,zY͂f5f,,hVh͢Y͂f5f,,hVh͢Y͂f5f,,hVhVEj4Y4YЬfAEj4Y4YЬfAEj4Y4YЬfAE5mЬfAEhj4Y4fѬfAEhj4Y4fѬfAEԤr#'f`C1jj4k= ֳEj4Y4YЬfAEj4Y4YЬfAEj4Y4YЬfAE,,hVh͢Y͂f5f,,hVh͢Y͂f5f,,hVh͢Y͂f5f,,hVhVEj4Y4YЬfAEj4Y4YЬfAER9p1Ÿ);G[ \ endstream endobj 13 0 obj 821 endobj 15 0 obj <> stream x1AQ ?%rY~]\vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk\vڵk׮]vڵk׮]vڵk׸vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׸vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׸vڵk׮]vڵk׮]vڵk׮qڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮qڵk׮]vڵk׮]vڵk׮]vy:X< endstream endobj 16 0 obj 505 endobj 17 0 obj <> stream xˎJ@ ÌyaG3xfx ^ i{ؐ_ I9H )8` ѐ}&["Y'5Y?EC    AC@C44DC@C44us54DC@C쇀  ѐC4@r4DCjHhHÄAC44DC4 xCO)J0p& c7@c4 >(|qn4zۆ?Si@h!ѧE~Ź8$~[֯a?S)+e#S~ʕ !?bYH͏C*qThCEe|qF &6dxdC~H3R2^eOJ5 !'.3:] mL۹ K2waB8l?$w6s4d!㹩eK|!{hίN(<)/.!56>_2JY    AC@C4+!Z!Rǧ 4 iEh ;ʂw-V!U,"nCL+BC6nHt6$nӊАo5$JܹLUTӊА35dAT Ӵ"4\!2iEhq!Tp΂hhhh!v_ѐ5[ uXCfCZ=N˧4 4DCwhY i46%V;|55$ mb҈hHJCF %0e}hZ.s\FCOCJD~‹}=U a?Sm>J(!)hǵ] ( > stream x1AQ []"!wʸ~=5kʵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]Ƶk׮]vڵk׮]vڵk׮]vk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vk׮]vڵk׮]vڵk׮]v׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮=ב8gʣ endstream endobj 20 0 obj 451 endobj 21 0 obj <> stream xM8.͕Jtsv& 0~TnLj1"d$Q/q!!|!r_Ƿ%  iŸ }yHM ѐss(R-H.l=h.HC4] 0s}. ѐ >Ws֓;ӓߏhCO#梯ﭏhB8!) o4|Ed:4 >??K晆<. 64$82m?!Iv#2c˔{ !!!!hhhh|9뺃u54DC@Ċ  ѐh! i?uů   !{-Aίܱ!;43[. g @C$)eАC[s9>)m9U4d2}ft@ ^C? q hhh!!!Ţ!!hrNCj"4 ٺb2Dh$#qz!62Dh-2!BChS B]!|JC? q hhh!!!Gs  AC4DC4$z!ކ]0BC!}[ @CJTdb #4䜆^b4PK,a|tC~eiOK!/3-^4pܐYs-7#4ˀhhhh!ACݐǸ@ i'14DC4 ѐ4ds9 s}.2jC!Y:uyB А>$Ct4 vH|H eАC C2 ~\t}EC4eyhed   44DCӢ!ِw x u*4 4DCޕhՍ:a*õ/C߆XDC4z PO {C:nl=Ǿ0NC/:D4[1!sjE zc§4q()j9mJ 44DC@C44DC@C  ^C2uN!I'v ސ8ZՆ^N,ny1~[!2V6$Fu&n Y ސjvkNGިtP'MؽVCАCC Es!v}4Jfz%!7JA~Tѐ,GA_שC;ˠ!jAѻ/[8O4DC@C44     4DC@CNvq!E |( endstream endobj 22 0 obj 2341 endobj 25 0 obj <> stream x1AQ []"!wʸ~=5kʵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]Ƶk׮]vڵk׮]vڵk׮]vk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮]vk׮]vڵk׮]vڵk׮]v׮]vڵk׮]vڵk׮]vڵk׮]vڵk׮=ב8gJ{PG endstream endobj 26 0 obj 424 endobj 27 0 obj <> stream xnH,z7H~'4.W98NۙI}Pxަ! Ey>_۴"d$T?6i]h!r|OF4DC4DC4 /=~Fsi$]UB;Va 9!ehmkrhCº?$YVnV_p!󿔆!u 3Rt@eb\W4DC>!Ɔ$6QMx6dä1!hH9NfC~d'su6i 2h$[ -fOi¢!hhhh!!!!rg溃!!C~hG4_4DCZvL!O  AC4DCv:@ou#t9xk0]1 >JCڐGnF,zIY@svK!r>huG܊CJE)UnL( qH;> }8Rg> j?$zDQ`''%Cf6$ZBC܁hh!!!! hhhhh!!!!hhH_|~oӊօ8hh!hhhh6dp< mCvkڐ _ ACڐu VCx4 yCDS8Y2q\ 2_39hHThmh!hhhh!!!!5m/h- qG BQCJlH"ې<í8ACXmbTVe@@CSuD=f!!!hhm1!!!~qBCj|I. 8߆7!C5$qP ߘa&h С!h!d~rHs4dQD\n{&OJbO L߅٥!]@Cא#Ώ@C/!!hhhHb 4  9!ߛj rlݱk BNCzs1Dh 1 \"4=UcگC) 942!!!hhhhe\4DC4  ACА땆h6B4 aCV7 @CJTbrNCJo %#АnHSԐ.Ë=0BC>\& x/g8nIa|֞j˩ 9 2!!!h._Аk75} h4!h q_ 2{9~ܟڐhIn]3_ǜ4d!Z4!u!Aˠ!-C SEC.S:bkhx*~(9gAC44DC@C44     4DC@C44DC@C44    44|>iELB2xd endstream endobj 28 0 obj 2061 endobj 29 0 obj <> stream x1@ٙQWQ@"!G"kٳSۚg)nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺu֭[nݺumy6v8˼* endstream endobj 30 0 obj 336 endobj 31 0 obj <> stream xю8^RHOZQ#1?9j۝Z_  vMMЄ?7ٓv ?{oYMh ]wF4A҄F,h&̍rHχlv/Gs _ UF} 廡 UK؄n? 'jҫTFb`7J^r MЄ؇{?jx^`$Ff%; p!xȱwv#钽u MЄ>_Մ84A@44A@44M@4M@ vMMn3mF4M|OMS4Aá⢫~ *z 0†5!d~MHfDnބd%?_x,7i% 1 ;TMЄ d ?/+܄hЄj0_KfQZnBI4hE0M{ }yI4hB&; 0qL SM8;K!|$Z1{|&S1LyR&$5!y9P{?3e!M8͟c9քC)#Mph&&hh&&hh&&\ -upzZ4& h MH hBM8xYhBM8qM@~Khpz\4A@;&hh&&hh& h[ӗ lF}Mh QY S&4ՄM&t܄sT+>LЄPhȵwIL<{Mh C`R4a{VMHOj dMM8F\CldZ@4AN~~|X<Ҙl&фvǘoƳiM@܄ M@ }x< 5Ç `>'hh&&hh&&hhBM\ s^@jlBܢ& 7p&{nmդ ﯑hYѝU&8!sZM{>{dcD`"MЄ& YMhz1{&hBkcdnwo/r f^e3 p&6Zl #pb&oߓq\.s]*AGVnl?Oq/&քťT4!F37hF}x|&XBNl8&mt'6!M8!v0_rPkaDxK&ƹ&90~ss-kg|n72.135\Y!Mۍ̦KKMЄ]Մ8;&hh&&hh&&hhM`4A#VPA4 VP4jM ̍ +ԄOy&XA%fZ&քCj5 * W9Ni> * WOx3[A& VPA4&XAEp& &&hh&&hh՛`Y4A#UA4 UM;-RoDlUɼܲ*q}˪dƩeU4MJfZVEnx`YUф-R˪h­EZVeIJ* 4*4M@@44A@44A@44A@x<kxs}U~CXy+N endstream endobj 32 0 obj 1840 endobj 33 0 obj <> stream x1@ٙQWQ&rS٩]ͳӔ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;w'{v~Y;e6 endstream endobj 34 0 obj 428 endobj 35 0 obj <> stream x͎8^dR6%E%tE9˚tU߅?*n<-PY8k m׿r'C1jjY 5f5Y^dYYj5ٲ}Kf5N"__aKkf5[kCzlJV_tr5Sv^>"ߍV3&,JǪ)Kaʩ5s+vn9,7Fj͢Y4YЬf,E͞sE͂f5fq[j6x` ='>fOyy=$xr~_Ly Yoxc5KYMM|qmͦisz?լ=٬/Ζ}P]p[5[xǪVy9kv}ySS>فtoT7ƽ瑿ɔ3kfgǞ&;լ7,hVY͢Y͂f5 ,,hVY͢Y;%~lWܳ{'Ljf&3cr4c]27NoOoO)O f[!5;l{-SKg#Y͏'O.~l޿[gf5Zsf5,EhVY͢Y1jj4YЬfn~v(F͢Y͂fςY͢Y͂f5 ,,h"ͮ=sѬf ׷l4B͢&v馋O,=ٲk6Fvsg" 9(4{yc'͊ͺ͢Y4YЬf,Ej͢Y4Ylͺmլ;lUE-4IOhfχYk־1m>l#aXl砬h=Y͢Y͂f5 ,լfѬf.!Y͢YjjfYͮAۘ_Ɛf/ld쮩f_0f56T?3լfAg?kfo[nּfk6kνfkvu6yy͒x<[69(l_YkV#5#4~c4fѬfAEhj4O.h͢Yjjfrً7;Swr@/-[ˌkfsķЬw͎l8kff ~4wj6kze]of[~fof,,hVh͢Y͂f5[ujVhVE=Y'kvf+nƹo7#٫5[e x}kVy3lNl:eKy:-8gȬmef5ق*}X>ewKf5RWl ׏4+FY͂f5 ,,hVqW)U5پx3լfѬfךuf1cӟq4ٕs;w̧?ͽj.${x|f5kΖκ7֬f/>>lų|sPuxqmtz4-XY>f5 ,EhVY:[Y͎ڬx͢`qf5Y4o_a:^mw&U_ z{fm1٪1F4iA]ܰsmͦ\Y7n5;|o`z{sPxv]owpf]}`j4Y4Y ,hVh͢Y͂fk6}S]| E]eNcl|>}w߻A=|zf$fh6k>`xzʍ(e`lng9u670dzZw gM٧9(sx$ſO+NkP#rf5,hVh͢Y͂f5fŨY4YЬfAEn_ۡ ,Ѕ| endstream endobj 36 0 obj 2285 endobj 37 0 obj <> stream x1 @ gR(ᥓ^ vʸ~=;u^yvrΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹseN"k endstream endobj 38 0 obj 361 endobj 39 0 obj <> stream xn:.MRI!U(s[ ~(v}q-PY8ΰ6[nG{q-pŨY4;7լf5YjVhVլfOx]8(Rta-kV4M-~hVe7~Xl9KvoǏYl|G/^+=j}P̉DvԬf5[ݵ2:Ef,Ej͢Y4YЬf,EYxVfAE8fAEhj4Y4Kfg6<£-lf?7lxF͢&vfG(kVkvYKhlٱ1=|15(4{캱&4{fEfSf,,hVh͢Y͂f5f,,hf6fjhf*Y4`χYjֱ1mc}֠l#ðٖנ1Ѭ{*@Ej4Y4Y͢Y;s jjVhfVke7މ.qcHl6!ȻemvjVfE4OY:6t>#jxθ%e7YkPle9@vkY͂f5 ,,hVY͢YVhE4Y4Y͢YVhƚRlF^5kͶ߬w4~wͲ|;k;լw4~c4YЬfAEj4{f],E,,ucid^45閛52ٓ55cF5{l)a)9#%|vݨkPF5پ.׬fl ׏Ь,Ej͢Y4YЬf\,E,lfrً7fu5KfoVˌknó 6k]gm6wlmi|c%q<<"_Z&2YPM+춌kVoGhh͢Y͂f5f,lkV}5:f5Wf5Y4H+]ܘ@yjvam'w<Ӝf/lAu5YRu糹5}Z֠4kxmyvz4]vf5,hVh͢Y͂f5kJ=k5fլflntfYlk܃? _o:^li65K:Q۬xٔ͞׸l6itflʕcuWULk-ͮx{p";&o:^l9ݾ=o_F6Yͮٵ슟}Pu}/5YЬfѬfm6hVY͢Y4f5 ,v8ΰۡ endstream endobj 40 0 obj 1628 endobj 41 0 obj <> stream x1 @ gQBԗM,62_d/j~lLp p… .\p… .\.\p… .\p… .\ \p… .\p… .\p p… .\p… .\.\p… .\p… .\ \p… .\p… .\p p… .\p… .\.\p… .\p… .\ \p… .\|"{~Yld1C endstream endobj 42 0 obj 302 endobj 43 0 obj <> stream xJJQ/z!ARIg3IZlӴ5't\ށ^3Nvu^?^3N↪e8N|4 4JH'u4JOѥ(59HL4 3FiFިa4<zQQt -So6qhFhd\f("k¼ =m^iFa¼pS^QEnn4jQs =QFihFQQhhFQQh^ օ(@4 4|`>J@((4J@4 ШWo=Fmר0ۤ_7agASu"ި0?l6R6R{4J7(L$8k9=v)xSá{oQŦ55Ӻm7Q磾FjW K2-l~njF"6M^Ai kyo:] Tdm߮Qő?O7j͔FQ> QFihQFihFQQhhFuF%^4F%^;e~QvAQhQQp>*tQl^KNFiFF|hQFihFuF%hԑepШ#7*@((4jFU36Ѩ35$jT Ƚ(4LZsA6{oQh+6j6FШ4~4 W[6&r/ţpQiT "-lvBNكZ3%QhGQQhFFFFiԘ@(:r\4J@4J@^QquFhA5yhqԏkܡQb>5@k܁FD\4FiQFFiQQFih]. 2qy'>QFQhF+Fi@4YhhuS^v< kTV"c>}O9oW}$r=YXL>Ğ972gdrGdo5C"c>}E5 U4g}O ka>]k͊ěj3rLШO_ ZE^xUKsnzV>~N'ӵSjvFM\LQGZ^38UYӳmiǟ #ڳq"b*jQ#F kK=}d w5IWb:߅b9g:x7iֿtԨ(FihFQQQQhFFiQśzw/ endstream endobj 44 0 obj 1492 endobj 45 0 obj <> stream xۡ@A4k<H<"dvK8lEƞl7UxsE.]4^[dvx}r 5KūlΡWkjviviviviviviviv][Tt}z E endstream endobj 46 0 obj 183 endobj 47 0 obj <> stream xj0]xROHumSι:S5PYu'&{\!L`Y@4O٦ɦ8DSUfqeYj6,[V,5+[\,ol˯L7ܷ}fǛ̃|0? TS2 mvYn2ns;|59cIL-)K4z6qe^nvݿ7sUƒ'yZ;/E灇'j?l_ 3E'~xש=/b`|{>5llf֣Ej3٢. #f?zI{l4,hVhVY͂f5f5 ,hVhVY͂f5f5 ,hVhVf,hVh͢Y͂ft] p|_'x~Wq endstream endobj 48 0 obj 550 endobj 49 0 obj <> stream xݡ0 `sqap7"8cLv[؈d[61϶ߪM8M8M8M8Y;j6ڠ6h6ڠ6h6ڠ6h6ڠ6h6ڠ6h6ڠ6h6ڠ6h6ڠ6h6ڠ6h6ڠ6h6ڠ6h6ڠ6h6ڠ6h6h6h6h7\ɁL; endstream endobj 50 0 obj 283 endobj 51 0 obj <> stream xn:@yTQJJ/$("Yު-4v\.@p~||([-ïQ^d8oې`T$M4m秬iioY48Mӆ5M35M4 N4Y48YdMZ塠une[۴q0>~<3;9_"cc/&S69'Q9>~ݘTy|@Ӻ5-*~-&R f>g[h{hj4 4iihhiii՛lV{elxQGօۦgi.CӘ4mE8WjTCӘ4mxR 4M&.ՂcVgΑCӘmZdϫ]gblYw~ّqhnZj.Yn6 .|BpR,4k*GGSu`nNA!vs}5l?o[,´-1k MlFB" vk9W*M "&u[l9]FޤiRg[jGo-5Ms'ihiihɚS`}VG8ciZd}ooqui6۴׷i4MIӺ7smiZ5'ூ#n=u_fں;\MmMӴ6mK U\||7۴#Η%4MORfoZn4Mv~Z:2oFK:Դ#H Tⴜ.l:r591#дCGPCR^-Y1͗C޹iſͳ坥Mkzv4{iihy怦iikZ/9)dɚfYilZ5̣imZ 6%ZW(x'u3B1_ڬI#hɚKutK:4m[pj.^2laܷ(#R#"7ͫOӎ3s>ߠ8:luNJisYi]o`f=hrt&_)yiZ|F3Z7-ۡ4*Ms5iZ`fU?#'7wش Ms'hiiihZV=iW~GMӴ-^"д7oZ5O4OӺ.ohoM9|9~i?lS‚go|7Yv[/w=F-OJ8nad[F}N Ӵh?m'4ڽVNYS2{J ͗K팦AjWBưr ##}gu׺ih4{-5r?ބimyn6=|9Mihz~4ATY 쒠z endstream endobj 52 0 obj 1727 endobj 53 0 obj <> stream xܡ@A4i<H,&"%OM$I$I$I$I$I$I$I$Iig]DZ*;gvkea[]Ӱa^,lk5 [v`]\ɕ+W\rʕ+W\rʕ+W\rʕ+W\rʕ+W\rʕ+W\rʕ+W\rpm#z;"=i{ endstream endobj 54 0 obj 203 endobj 55 0 obj <> stream xQo ]k,K鉉iylk;xKS*ȕ|HuD x@ x@ x@ W5 b9???èvÖ}蘇xQ5<0AztC<?c,? .ぱyra,|.򀉅3A\lS<ᴊ1-!x|04>ߡE)W:㴣*bZ";7֊ c'&[,hm:G}57fy f5Z.g# z ڏ*nz="xg{,%"x e]T h/x ω ;:}np[@%ulhz<X^V<_Ong犮?<U:Tָ)U/> stream xܡ @AcͿ s_a|)a mcV{8Vs&uWV2[Kljl=Ւي5UeU-Z([[:j[S5TSM5TSM5TSM5TSM5TSM5TSM5TSM5TSM5TSM5TSM5TSM5TSM5TSM5TSM5TSMTk9}[@˵_:x!l endstream endobj 58 0 obj 226 endobj 59 0 obj <> stream xj@\%Jǃ%q-E $q|vz>jStz}fްVjStz{aj!j C.vСTBTÌ$ ,z}}~y*zܩ{a i󄎛z!VҶǡv"x uHBFg`ۘO^6$ONjR20mʑ%$]V4'r$TB%TB%$r$t tktM.ZCک#bl*$4•4)HM.ε =ZW>?n͊ާbU/UU-F쟕CS/j6D>bdޥ5V)[?\T4ԵywЙg8h)]LX6Їͷ8~8/&ҮURک۴g OB ?5H.R }}hy%&@_H-OUg84@1&lc\Jٵ"L}k^Bwu.7wUOiVIV4ulE^35%t -,9'\C®hq?w+w#JB%T) P%JP$TI*%$TBP U* P$rʹ+գ6L9ֆtج)A'?4h endstream endobj 60 0 obj 1189 endobj 61 0 obj <> stream xС0@ajW v f 5;j [ rμ޼ּμƼĻȻ̻[gsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsΝ;wܹsjH~"|8; endstream endobj 62 0 obj 445 endobj 63 0 obj <> stream xj:^bJ)Oa-,durp!Qc[[>>>X>VfB>C>!ۣmU42wnunxen,kjCuK___<fS+9\pLtЩ[|VMn{s#B?xf{f'+d|\sxUǗS[|Vg"K˦;6lSئ6lj3uɉȣD.?J=p͞|bGmvl0=ƚ츂:p%\rfIǪ[|S>fOxxX'kML5B)Q0_EjJ^ٗQ ܭf,hVY͂fAj4Ej4Y4YЬfAEj4Y4YЬfAEҬ?f+Ib9:ɫa=Ьf5Yjl5{f#ž-̳瘙h?y5ρ'5{f;hsLEiճjV7hq!Ko^4l9l<ȔFk즳ݼh*u!\of=O ;lq2kc:m#qqofI{x>-lʓ7O@vi4?^\^ٕd7= ݹٕ4T15 ,,hV8լfOYv׬sլf5Y^;[j !Y{fWjv͚d[t'FjVkք&ۑtFjV+m5H3؋FK7FjVu}rوCjƚj4Y4YjV]i լfk`:jVլff5{of5{H՛?`5پ5Vv լf7:5V뼱լfYryj4YЬfѬfAj4 ,hVYЬfA͂f5 ,h4YЬfAY͂f5 j4ٍ`lpBiw|yrrCүOT4R;<@խMnh6l~B`H=VYdfmsR?XC砸ysFfl?DqG6ާٗi~4 ,hVYЬfA͂f5 ,h4YЬfAY͂f5 ΢Y͂f5 ,lU5{uz.蚽dg7ԍ1f5Yj}3dY쳗a"&=q_$4 ltIh6?gnh:`ޤn|dQ毳*ytx6x劭̦Sy޼h4{fߕfN: u;O;Zwϫ}Y5{A5i6i6ryE%y*'[87׮CiE͖6r\~o|Z~ ͂f5 ,hdz5FX tլf{xhVլfGY4kͮ\5~vf#zv{ЬEܼk[ogێWkf=`[[3?[Eci5ٶͮ\.?~2;Y7ҬfAjj,5F?YX<4YjVV5Y4kͮ#s??Y?k;Y?%?fk,5~hrY͂f5 j4Y,hVY͂fAj4 ,hVYЬfA͂f5 ,hɿY͂f7mپgmj9u̵͎1*&ZL 7Y?ljR]J˚寞(͎_Kxypyoʩu r& gU3z*K +Ll楫h5u_9nDӤ1W+{%EgDf ~K&=worTߗ@VntȩYjYЬfA͂f5 1Jլfl͞ jV+~(WaIjCfwnv(-Ԭfo2'ojJ%D7?8{QxnߵYVlߴXjv&Q,hVY͢Y͂f5 x X+۵< Do endstream endobj 64 0 obj 2422 endobj 65 0 obj <> stream xݡ0h||4&_(<)aK%oY6xc3Wݗx}]O> stream xn:^b(HUt?k]I0؟ ]}Tv\ þ^׿p2ð1Ä3'3 6vB}积,g~[Wl3{gxv9yfmk_MlGcl/m*[v׭qfo/Z8ϼ<[^d4=3Lwε|+6{R'!-$V6ڡ7IJmuW[f/vVdxJSn]|?UH^s|&2[`.vVhz63''>6:>W9sv?\ߘF7{f1ތ}䧓;s!nmtT2tohWӾCfSflxw_c3}!?Y8YY@fAfedV̂,Ȭ̂̂,Ȭ̂̂,Ȭ̂̂,Ȭ̂̂,Ȭ̂̂,Fot7ݴC %_O JZߺ3Ɓ3;ifg 3Fj"^(YrK2;QZUgv2 MGepwVHMZDbf7ylFvRUl`7[%|7<;^eTQzvAlE7Zc4iTOY|W%;X2k|VB\FfS 36gf\gQ=}&5pӟGZt otux;|8CfddVfAfYY}2 2+ <:n%Pw.2lyGvjf7L-}{w.khs]dvjfK]~0o961X畲\9{l5%0T<:hWϳ6ȏ:rq5壬ʲǚْƗƿq51ڏI۞7~W|QclE#쮰- \^xxl3f8*KW 2!e-dzv3r/dS3[9m:7=n1mQ^*٤RʌLxHٵUByr=[qÌ&-2{Hyvtx.nty,Ȭ̂̂,Ȭgr\׿!_i9@NȎ endstream endobj 68 0 obj 1443 endobj 69 0 obj <> stream xݡ 1i RPNL F$m(+榍u~hޥuK]⼺ĥ.qq^]R8.qK\WzֵB\Nq!.%.ąB\B\ q q!.%.ąB\B\ q q!.qK\ qK\B\K\ q!.q!.ąąqhVF$ EG~a9 endstream endobj 70 0 obj 236 endobj 71 0 obj <> stream xn0 "UrWFV3YϫQbll?HW$ۛpNK?>HWׯ3d$I(IQ,$%Xdf7~N)"_z9rP2E^ǻ]w/+vQ,z:ER2Ec[bQ,R2M䓦ǟW5[۽#nN-_Wbq3V2;Y5oo27ْOn6~dvoL,6Yw[Y썭Smwu3kEWݘY/R~˗y`6"-xD>S2UJg? DLm] +$˫ֵIWY'8ay9̱81Sm]IjF'V< UoNT(IbQ,$ŢX$IEHb$)"IR,EX$I(IbQ,$ŢX$IEHb$)"IR,EX$I(IbQ,$""IEEXs$o韓<I\ endstream endobj 72 0 obj 1471 endobj 6 0 obj <> stream x=]q6y9H[Klpp'RHeZ26^)Ajz>vww$2075m tO[M~g_M֘F !wɆO=F.^?> >;;BeDۙP,l:u<=2}-Og&-l;c)vH\'4~@"]R)w> }4"c\̈́Q:jTmGtx4ģFzc3+o})詑⾛qG@2\p@b>M -] ̱@p&;jU!2j%=^"l5rDY?e@.è\sYnt6ۮ/ig >|6ygX 'ZʘLf l[U"/.ZIҲyJhp@"m]J0]*q,^*FlLgz,́}йu}R::~ H<~ +$Ǵ}G?}sV؁8ĻC.wgq{t/wǯvZC"p㳇/iF&#b]@El\L xlh[@r IV_@LJ~~7:hgzYcDb_C4/.>\[~ #4 ᧼+wA9]Uās0haؠ/=" v]N(D7H;HjϣBU ( Mž>Kyt9c8gLF)AHiV4͙TI8RGy zHRw*)~Y אm_GyJ+%1A`"* NLLc*S]ue %2*2A{Ux3yRm0Ajg OIyk)o=^ՙ8BijI'p6H.h2!30ji^^Mk@" ctP &v&pehf%^yw=.U%FT78 c/L%e\փN /ÐN LkF1]\֢ߞe 70;1brw3mr,f4=>hd4 ܇iLcKͱ@['!?c(WGio&Pn {; 9:ې@F1Ӧ/a@ڐ߸Uq9`쑈iՌ6'h}ɃS2㱅H``m{j:J.02Q]8jT!aԊ< jaD1#NFmԃARrޏ YHd0/ X* PyIH{6d01Z6[Ub,-̒"Bh&&t]hY?20Ҩ/]̈́P79Prߕd Us@,H ?ʆw Is¯'K@C!UgSgcX=,Ȇ]/!Rבڧ[15]]%qCKu]ΓA9 Ӫ~7Ssi5U̱ ܄~<,LuSz|- ;v)$P&P %& 2[,0y*>ޝAYJf)>sK[o*HYٶ~ֹlhޥO#igyп@?3o%iA2XImng8nusrbg/yhKU,U}vw^jO2GYK+n}F+Pd\\KD@w-?7cm>~[[?B]'ۋ"줷ZTmC _.ħG~L1~ꑟd$)3 %b5N03m@XjYcuP#< BXoc0\C5@!5%vމʅ!βW\v.s3Rq ܩ6*:b$bߙ=7t j},QY- )8+2nކYYКĂ混OL,‚ ,Ϝ~KqV*J2r#8捷 }5u$55j 0w~-9Sn0plUx*ac1C{{'ܦ (Uc BEޘx_nJoٗP*#ˠʞ59:kNB"*Lh?1*?'a)K;TᘛPܕג33"PVȇ@;^S l2ͳc¥knMA m*pՃR6HVw1'Dc޿՗n}xGzW( }9' 8 :B  GҁhXE^iE=ע{ŵosK@cde0&},GZ55kE /lYz+tu]_@{H!0.Vzހ'F[/x}C5.G4G>|/Y`-7R~:yѰZq`,UIq( y\j30Iv5$Ğ*֧D&\`Ȋ2q0%%݃Q%mk1f1OH?oP{N FRzO3]~H=>d o+$58t@Btw,YSӱ.?톲ylWٝz;~L=uݩː>b'w0+$?a<7|TDviT0{*ȒOR u:M\3͜\ZEg̭Bhxi`d&b5XS pٕ:q?ݫ2t_`żw}WݨO?ʕoYe -pbCy^o_ޏ1lvz5y*t"G38d$<&? +h)yYf)r1J*N0!E7xvlCu E#p Gs'@\["8vJ4cI.dȻ A( >HtoUN%Yxk o0'Y/5N["F Qד*1YubePSL} |)3t𐫌hjT^b>9ޤF|#2W^T6|φYlTiU:4`t9ب1+ 5Db\=WfzOE{F_+czKy`Sb(4A%%|sᎫ;on`9>:hu S%VJ&* ;2&[`#YUCRPYgQ{K6rVp;8;?nOBd c­|K+j΢ ,:\< Wz98 ?8$[~5MiiN*r`Ղ)}LT@ L `GbIjl92;u%ZorA~Z>?8<E/[Xp6͹l׸co6ܓz/kT(܌8MFm03*8)SR(=6H\3v.)Jz[]GNz8S R\K)3R4NjZ-5JxzbJ2!ocr CZT{Ϝ5 P`BR}- [7Mz&wkKOg҆@m3N].!6&:CLbbc3) =u?m2/yg_P{o:dlGָ=`_gE.[nQz_=fF;Vc\*Mߏv R-󣹘tWjz%٣ PJxZ o~H"WRq=׃p jn|*mvARv-MTi(4I){G&wD !Mg$ʆVDSdqх '%pEH2Wl h<\e8)*g@6 endstream endobj 5 0 obj 5734 endobj 77 0 obj <> endobj 78 0 obj <> stream x]͊0F~ /gtԁ`8?481Ll8}Kh C, %]3K#L/i-t>=0&EC.dv^|iz?.r]ޟ p.Ҍi~Ʊ%ܟ09zG'<~>~ď?ۜ xTY@% P^ ;Ԁ"@APZX!8 5JzWzJxG)zb JxX@%V \A0 [m UJ JT)5(=LZP,Y <#XzqqTG[ 2[p X},b!U[Z!HLPa) Ec"1AHpLP$8&(P320^Xz^봻o#.?z 9o endstream endobj 80 0 obj 489 endobj 82 0 obj <> stream x]Mn0f06RH$Qi@`HA,}E-3oތϊ0١.imgKp5+:hzfWgR䟚J!3wJP\´C.w򀄝j=_z'"i2!lՇVF^rp'M.ߵum"Zpfn dC8 9$X P 9pdW{ )&!XZBZQF%(E+9s"-ЩN3F5U(@ Z܂]+8ف#@5g[u]ߝZ*Lɺ!Q~h_ endstream endobj 84 0 obj 374 endobj 87 0 obj <> stream xڵgTiǟF EW! J"6DT`E "WW@"dPUDEe'A}y??=> <]ha4S$$JM-^~K]=iHY`'8 P @#8Z@;۠ Q0&K0ށEpB  BfrܡPEB1BY.(*ʠJ]nBh>( K*l 3`g71p R >7W<QEBɢQtEEQ|6TUjDzPwQcY4MEt fS2t-ݍGϡ`(e! `1L f3ybeXk6݂-6a; <Sq8&Nŝ] &q$ |=?/$[/ML($TwE$QhO "wKkG7$IdC'qI;HqـJ^OO;o(ʼnAPS(W)O(ŨbFbblbbbb 3Kϋ HHJ0%IK\JJJ&JHKޔIHKrNI]TW*ZMFJJ{KIK$'='#%c!"!S.sIfL%#- [({NvXGn\ܠ܂OI~HM]!^BcEbqkJJvJ,ݣGEgZW^[7SAEQ/EJ>VL645(7cZr Y[QbN; q#YFF-F#14I0652]emfˬ9|yk C qT5{,,?[Y[f#+G ?F fM[+[9?vvv+uWrVVװgWڏ9"N:9;29i:j8r1q\pYpurtssrv/s1ių uk[ś]=zU>d@2g VW׬Zshͣkyk[|!~~)~cdR7 r *  w Yu -  3v;\1_soݐFō /mt>YˬbGyGUDͱ\YGX/Nb ǞSę.93[;uq_yŝ[?ДOLȓT2 sRlS}5PV4# w ާϐen6ؼoTG[[X[ԳvfouZ k;;wZmVt :^v={ Y?2v}Aƒ.xyXq'UO6Y]w}lt5?M<| 8 />_-%.-}A]iV6VVt3)͍&h"g皔$,NͧDe7-ߖ=8D^kϷXRyPR1_cA@Ds.'ˋAcs$ˣcL_ >717O󘢎 _O/15/ W'i @jȈG<]ZzυKKKKYF # endstream endobj 86 0 obj 2553 endobj 91 0 obj <> stream uuid:AAAEE1E1-74FD-CAF7-6F31-7DB6FF03A3D4 uuid:841F3C91-9D4E-EC55-F842-15A77D080C18 2024-03-11T21:49:07+01:00 Serif Affinity Designer 2 2.4.0 2024-03-11T21:49:07+01:00 PDFlib+PDI 10.0.0p1-i (macOS (arm64)) false Sebastian Kreutzer Untitled endstream endobj 90 0 obj 1575 endobj 92 0 obj <> endobj 74 0 obj <> stream xڭKo8sl./;Mݤ 춀b1^:a@Oݤ]> p)3)\ -]. gIp+ H oHc GISxc !/$R[Y$m!H$Ҩ{HNjoyIpBnٹ vrf/v*,>Tm{1-|6V]I%%L?]WAjܨb<QC^dU Y5UVJ2y\ 7y4d2Dy DֻŢv>\,IBaGUTY$Kvq[4H3 ӗզ.USGYYy~?M޳fHn|Ul铃$rƛ8} Sym\o~nkvikxCVov}'?#E>T. S*`T8^blg2.7D(oY0Qt@RKIxc=5Hr%[K=+R-U!IoJk)7H- 琾4yVƑ#Mdy+4"7i='af' #|t|sufjݡ4!уf}ܬH KOz:m?&Nᢰ(Z?Tk8}ݬN6g P+.>(FNdnqܽoڍP[ReGdF¥# rjKk0 Fp lq{'1ƼcM<mYc3'ľDC3^!^o 3^3l|vaw|jaG~|ЮbR9F75bu) ySs7- R'6[[ń埮(Z endstream endobj 93 0 obj 998 endobj 94 0 obj <<0DB91763EB9E208968781D31745B4F49>]/DecodeParms<>/Length 309 >> stream xM=HA> ABZ#(X RAh]-,ο֝ o߼%kI̙ >Vg+$^O#Cq~^ F4v#GDJey.]O/uGF<ޓgϻ/۞g~{)>9oDwͲGE5gs)(^V\5%W-1[mA%H[ALSڕ N"M{^D&!""7/I]މ(dpb3(N endstream endobj startxref 48943 %%EOF Luminescence/inst/doc/crosstalk.R0000644000176200001440000002300014762561725016550 0ustar liggesusers## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----init--------------------------------------------------------------------- library(Luminescence) ## ----simulate_signal, fig.dim = c(8, 6), out.width="800px"-------------------- vn_simulated <- sample(x = c(rnorm(n = 30, mean = 2000, sd = 500), rnorm(n = 70, mean = 20, sd = 1)), size = 100) vn_simulated <- round(vn_simulated) # Because photons are discrete head(vn_simulated, n = 25) hist(vn_simulated, main = "Simulated signal (histogram)", xlab = "Photon counts", ylab = "Frequency", breaks = 30 ) ## ----show_disc_basic, fig.dim = c(7, 7), out.width="800px"-------------------- par(mar = c(1, 4, 6, 4)) plot_SingleGrainDisc(object = vn_simulated, main = "Simulated signal (measurement disc)" ) ## ----calculate_moransI-------------------------------------------------------- calc_MoransI(object = vn_simulated) calc_MoransI(object = vn_simulated, compute_pseudo_p = TRUE) ## ----add_crosstalk, fig.dim = c(8, 6), out.width="800px"---------------------- vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated, n_crosstalk = 0.10) vn_simulated_with_crosstalk <- round(vn_simulated_with_crosstalk) hist(vn_simulated_with_crosstalk, main = "Simulated signal with crosstalk (histogram)", xlab = "Photon counts", ylab = "Frequency", breaks = 30 ) plot_SingleGrainDisc(object = vn_simulated_with_crosstalk, main = "Simulated signal with crosstalk (measurement disc)") calc_MoransI(object = vn_simulated_with_crosstalk) calc_MoransI(object = vn_simulated_with_crosstalk, compute_pseudo_p = TRUE) ## ----test_different_amounts, fig.dim = c(8, 6), out.width="800px"------------- df_MoransI <- data.frame(crosstalk = seq(from = 0, to = 0.30, length.out=50)) df_MoransI$MoransI <- NA df_MoransI$pseudo_p <- NA old.opts <- options(warn = -1) # silence warnings from compute_pseudo_p for (i in 1:nrow(df_MoransI)) { vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated, n_crosstalk = df_MoransI$crosstalk[i]) df_MoransI$MoransI[i] <- calc_MoransI(object = vn_simulated_with_crosstalk) df_MoransI$pseudo_p[i] <- calc_MoransI(object = vn_simulated_with_crosstalk, compute_pseudo_p = TRUE) } options(old.opts) # restore the default options n_expected_I_no_spatial_autocorr <- calc_MoransI(1:100, spatial_autocorrelation = FALSE) ## plot(x = df_MoransI$crosstalk, y = df_MoransI$MoransI, ylim = range( pretty(x = c(df_MoransI$MoransI, n_expected_I_no_spatial_autocorr)) ), ## Set ylim manually to make sure the value for I for no crosstalk is visible xlab = "Amount of added crosstalk", ylab = "Calculated Moran's I" ) graphics::grid() abline(h = n_expected_I_no_spatial_autocorr, col = "purple") legend(x = "topleft", legend = "Expected I if no spatial autocorrelation", lty = "solid", col = "purple", cex = 0.8) plot(x = df_MoransI$crosstalk, y = df_MoransI$pseudo_p, xlab = "Amount of added crosstalk", ylab = "Generated pseudo-p of related Moran's I") graphics::grid() ## ----show_`disc_extended_moran_scatterplot, fig.dim = c(8, 5), out.width="800px"---- plot_MoranScatterplot(object = vn_simulated, main = "Moran scatterplot, simulated signal without crosstalk") vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated, n_crosstalk = 0.25) vn_simulated_with_crosstalk <- round(vn_simulated_with_crosstalk) plot_MoranScatterplot(object = vn_simulated_with_crosstalk, main = "Moran scatterplot, simulated signal with added crosstalk") ## ----adjacent_grain_locations, fig.dim = c(8, 5), out.width="800px"----------- vn_simulated_with_holes <- c(rnorm(30, mean = 10, sd = 5), rnorm(30, mean = 500, sd = 50), rep(NA, times = 40) ) df_Neighbours <- Luminescence:::.get_Neighbours(object = vn_simulated_with_holes) head(df_Neighbours) ## ----adjacent_grain_locations_show_disc, fig.dim = c(8, 5), out.width="800px"---- plot_SingleGrainDisc(object = vn_simulated_with_holes, show_neighbours = TRUE, show_location_ids = TRUE) ## ----adjacent_grain_locations_add, fig.dim = c(8, 5), out.width="800px"------- df_Neighbours_with_diag <- Luminescence:::.get_Neighbours(object = vn_simulated) for (i in c(1:9, 11:19, 21:29) ) { df_Neighbours_with_diag <- rbind(df_Neighbours_with_diag, c(i, i+11, 1/sqrt(2)) ) } tail(df_Neighbours_with_diag) plot_SingleGrainDisc(object = vn_simulated, df_neighbours = df_Neighbours_with_diag, show_neighbours = TRUE, show_location_ids = TRUE) ## ----restrict_to_inner_8x8, fig.dim = c(8, 5), out.width="800px"-------------- vn_values_to_show <- sample(x = c(rnorm(n = 30, mean = 2000, sd = 500), rnorm(n = 70, mean = 20, sd = 1)), size = 100) ## Set the outer rows to NA before adding crosstalk vn_disc_border_locations <- c(1:10, 91:100, seq(from = 11, to = 81, by = 10), seq(from = 20, to = 90, by = 10) ) vn_values_to_show[vn_disc_border_locations] <- NA vn_values_to_show <- apply_Crosstalk(object = vn_values_to_show, n_crosstalk = 0.15) calc_MoransI(object = vn_values_to_show) plot_SingleGrainDisc(object = vn_values_to_show, show_neighbours = TRUE, ignore_borders = TRUE) calc_MoransI(object = vn_values_to_show, ignore_borders = TRUE) ## ----show_disc_extended, fig.dim = c(8, 5), out.width="800px"----------------- plot_SingleGrainDisc(object = vn_simulated, main = "", legend = TRUE, show_coordinates = TRUE, show_location_ids = TRUE, show_positioning_holes = FALSE) ## ----show_disc_scales, fig.dim = c(8, 5), out.width="800px"------------------- plot_SingleGrainDisc(object = vn_simulated, main = "Linear scale", legend = TRUE, show_coordinates = FALSE, show_location_ids = FALSE, show_positioning_holes = TRUE, str_transform = "lin") plot_SingleGrainDisc(object = vn_simulated, main = "Logarithmic scale", legend = TRUE, show_coordinates = FALSE, show_location_ids = FALSE, show_positioning_holes = TRUE, str_transform = "log") ## ----show_scatterplot_options, fig.dim = c(8, 5), out.width="800px"----------- vn_simulated <- c(rnorm(75, mean = 10, sd = 5), rnorm(25, mean = 500, sd = 50) ) vn_simulated <- sample(size = 100, vn_simulated) vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated, n_crosstalk = 0.15) ## Base use plot_MoranScatterplot(object = vn_simulated, main = "Without crosstalk") plot_MoranScatterplot(object = vn_simulated_with_crosstalk, main = "With crosstalk") ## Layout options plot_MoranScatterplot(object = vn_simulated_with_crosstalk, pch = "show_location_ids", legend = FALSE, log = "xy", main = "With location ID's; and with log scales" ) plot_MoranScatterplot(object = vn_simulated_with_crosstalk, pch = "show_n_neighbours", legend = FALSE, str_y_def = "weighted_sum", main = "With number of neighbours, and other y calculation" ) ## ----moransI_intermediate_numbers--------------------------------------------- calc_MoransI(object = 1:100, return_intermediate_values = TRUE) ## ----moransI_intermediate_numbers_extended------------------------------------ vn_simulated <- sample(x = c(rnorm(n = 30, mean = 2000, sd = 500), rnorm(n = 70, mean = 20, sd = 1)), size = 100) vn_simulated <- round(vn_simulated) vn_simulated_with_crosstalk <- apply_Crosstalk(object = vn_simulated, n_crosstalk = 0.20) vn_simulated_with_crosstalk <- round(vn_simulated_with_crosstalk) df_compare <- data.frame(Case = c("Without crosstalk", "With crosstalk"), MoransI = c(calc_MoransI(object = vn_simulated), calc_MoransI(object = vn_simulated_with_crosstalk) ), PopulationVar = c(calc_MoransI(object = vn_simulated, return_intermediate_values = TRUE)$n_population_variance, calc_MoransI(object = vn_simulated_with_crosstalk, return_intermediate_values = TRUE)$n_population_variance), SpatialAutoCor = c(calc_MoransI(object = vn_simulated, return_intermediate_values = TRUE)$n_average_auto_correlation, calc_MoransI(object = vn_simulated_with_crosstalk, return_intermediate_values = TRUE)$n_average_auto_correlation) ) df_compare[,2] <- round(df_compare[,2],2) (df_compare) Luminescence/inst/rstudio/0000755000176200001440000000000014762554470015350 5ustar liggesusersLuminescence/inst/rstudio/addins.dcf0000644000176200001440000000042714762554470017273 0ustar liggesusersName: Search for TODOs Description: List TODOs in the source code Binding: .listTODO Interactive: false Name: Install package development version Description: Install the developement version of the R package 'Luminescence' Binding: .installDevelopmentVersion Interactive: true Luminescence/inst/extdata/0000755000176200001440000000000014762554470015311 5ustar liggesusersLuminescence/inst/extdata/TIFFfile.tif0000644000176200001440000017403214762554470017414 0ustar liggesusersII*z 6FCA(f-F#J& H=ሌp8 C<1'IR.#3B$ Pд/, `H#"Qpl*`oW(CA) ÄpD!ph>Vht>AMš|N0 \?߄pBh.Db>8ȇca 9Je PIJ`بf0eb@Ȝā\lAD6#ZP" bb@pVCIQVfprA[jH< PB`za5!8@!0@Ebx~" `B (ZH2!f$sa<!H,(P@F @,a0DF$u3Sh@H'!PЩj+a cThD P)k8 JiX`x`L`<`Hap6@l1.6 1 \/ jr +K8L8J$aHR.KA@f! hahJ08R]) f"PdT'BŁ0h8N!- @h`ҷp>+B8"iJBJ]"`P(L2aLL 1H*0$]5gPz64nDТ`*XF bR!B@JDhdn$er0?b/!b`4"Pd!+?N!0*"(M-RBhy!nƆ#a DJa SBOC+Y| AX ӫo"L+aZY. PR t@ėC <3NaY-|\Xc8"6@808dPD2'bD Ac t@a/JxC !6d #I/V ApY, T^@^@O0HC&A`#M<l K` qyKL 4=QDdzAj X @  n Թ-8JH6qFT D=R<4 %)f a5 0O E@( .Vΐ  2e[6cq(P:A-)9;V =1Cٱ}ӴN4`$ bDN Z@*,G H(=D9x#P~JE@p2R i`~p?4h 4TD^EEp\0`\H!``Z W DD`PIb ~ _@l#PDh: ^Rq*Z (N,n؁0 PF$# ʗP:0zV$' 29@GSx 4U(@* M*w`X pxS#SL-ïWX`9Mw0d0D(*.ȝ*ЊB0v Z*` 8+AP , .y3 D ëOE`)bIh" \ ;ʦy@ 0'@uނ08-ŏô A2` f0kPL\tt$z ,L t6 a JѶf q X* a B sV8< A4RJ``!B(ju K\- x (5L<BpH J 4 D8IA^pD : (u1wLT0@),xaX/@:b'mMJ)"L8`U6"*ktxB`;hPh AhD 0V +_eEY !i^ +d'$L5VJpkMcB :' tP^ ΤS`%3ma.lePYIka+@c!#rk[B$KadEbbK-тkҥfڇb xH`l M~ؖ#h0Vlt@`Lbh_ч&&L`i[ rt fc`DRO4hTB(\D(`di `@m l RE`L`_` 4jh %@c:ƨ2LT`h t@buKg`K``8" Z",XZ;"Ȯ/F\; p T2; d4/.(L 4`R T' =F^ @` Bv.CtVrLH@ff `p CB0`KE@| `.1`j}%LB @P@>#-`N r`P ּڲ`~>Z@ `t C@` $Զ [`! H 6pC@~``D (*_ V&%=%*LO`%-@:[^-VԣR&4 p4Lt =R @t`x@b6PF|?o_d̀@jLJ VaZ- :| HڑD2K`>hdnP bcZ%J @ blp /H砪 @ng !jt/FĤ%f0Ln^hZe'ꨓ.*eZ2`^nN@\BX\< N rBVeF9%: MJ G""&8ࢲ%D+>MBh,*`bh_l]'`/dǠbDe l9} V" ]Ўl@|dl'vT((P;g.L `X<ŝ# W6zd%.y8) NJ@. ~"p7ZbdV-N 4J w@l V n( gEj `\ʰF `!2yL.CK)gLKW2VD"@@6V-$JRU`6r# F(m@Bg@LatgŜ@v }H`P, H `DVY.kBHl`.BÈcn@~< xwklEd}@B T+Ki un `*`Mw `Ryz>bZM/ BESHT #E]`^'6xEH'ύT:HtO [;BvGFM܈v]:0)jLGfD¼)B@J&2b<*gJ%@~ @nby4 @0mH()f^h` Vx@UQx%2d`od ^ 59T' Im5w(yI"ކTFdX T`p/.((`xp Ig=.$G z8g9~ nG" >)hX <@< :H*Ŧ 8|hR0DAN2($2p/ Da8! \ C@b<(" ʢ1l^ qxB=RHrp= HT# I`N*2"AHA4! Ј4 E%a@P!A|JơF# CG rA`P< Չp.PQ`>&Ȥl-b2#l@"[!HF DP2'\TbCMr>-!H@0ڃBˠT0B#ptH0n@t ۞ AT"0$P<2  R>`aPVp X !>Ԇ*  #>s@B(<Hlʰ@! | !bqd!:0_(\A #F(LO0@3@)P%Q@T$X  76`C,,Sa(@Hی&4{n(DlL%@3Pb8py$ H BhfAp˅[~ÈHaH(`F!He2V…"h ! xa])T.)XLS!NH,$,b3YrX0;EbC->>PD& KPH.S@V~#'a!jc#&hۃh2Z Q@*84jdtb 2~* ,S,c5P-J JN)= !@m~ w]xZRH#Bxj A0q/$f@ vZJ-5Zâg9i(POLL P2tA`+-0p9 `.X8"@  P-/"SL͸"F(āR7 D:A$Tp p ptP5j@XA2̃2iA3 ;l;Є`N8U0t A'2( 4$<Av @R k$`72 $#('@R d3X0< N.!dDR !Moʣ@@j h(P0z 9 @ԲYh:! L@T g%> D/&NX5a:0^ ! oPJ@@ b bV 3D `E!AHR;Dl@'K ,pS>Ur|ViP@B A`|6O-9`"p6A - xAGaA0` P䪃 | / Ă3,)PF ( AbF x2 5 @"l| U A! t ; %A1 鈀 `HA\z&zʂ :S-AQktNn A'ۺ@bOu!'`0NkW3(Pj x61*3,% ?@J=c\$@GA_|8 hJD'\"snCa#& VK@1z /DTKЬ X/ p\;` D0'@ A<1!5􌀩g؊J JOp[bAHLP!@m\KƠx1K347.hO@ԃt@)?LyuatVyy9 "@%p .rE@b1cc(Hx@"0*P(2**0X0*3Hp#H((+ 2 A5 .HC1A3j0({/ )G`A p250,X)@ `7)"y Ɩ">Nh#")|0 : `k.%C6 $ RyLI`(/H2:.$Š Iu8zHP!c*K"`-t83!AHY.9!;rLG9}4I 8!(,Wx3 / )1)+*I= q 2 $ 0$@-'y*!P@((!Ajꬑ-X (3hWH%pπнr\p=/0N${sQכ hPH%iB9HTB % HB9\(R0ؑ.`) qEy5X5,聨&#, )8!9p q "'ꨵZY 0H c ?  PzAJ㈱h) !%&W+8 X뉂p=P‰ @p,Jt*ʉE|8(;9KX 23d2=۳S)u% (I3`$*l0iD9ԓΌ)CH- @@x%IU <"0kzΐ& h ܚ*>8ຊK@(63|.R(S)5!,8"B%V’(A%:@{k.'* =U6P@ 38 W x1) 9;zCi'$A<08BS܋(+/P#+(貁IH+@AL@=HQ*$y5.(#=9`)0!C "`KiLԻ!L8(Ī'H0ʂtq`0 %!i33 )T"URqHĀW+ x  1pQhp8x,ۀ7 H;&/p&IV ,1^K&(ԁ3"4H Es},?X3p(ACh`r"  p H'2H9tSP&A[E" -yIʑ4J| )~y2&iP((FL" t7tl6,(@ # h"+ :0JX3x/0F2W.q&yP&ݐSMh)R("`H0{ (BHXb ,M%za!  Y ( i?jX ӂh/h Dr)hJf Xc=)0#E 2Sv {c &D e 9 3+Rxh%\/ 0x6+#e2r`,?IRa44AQW;<)P<(3@<HkLJ*^B. "?sp$:I-)Bm' ( %^ԓ̦cy 8"i, JV:"#L p+!?hA17@8ʼ1Aj1\/&/C4E 8 볒 z, *m(9qW.l)ӖFڿ:$BMVP 8 B4ǖQ=zq;N0D2ԁ  =6Qc 36R02!;Q/*,6Э#׽3#A=AL P*GyWX4j`б4%4H(%6:/p !/rvvX0-X08(Ā/!AZqc47 Q %cﯰ  8 !"P'8 0C3p.-LPҀh A0 pp2 % _-ڌRaW4/tI>/$F@(ē@p#0{?a; C^$/H Q!ޕ7Ԑ طxY` @P<A`5 5߂p"x:h %+p`Z &2>Hkh+Uу. 6P2QZ0&80$28i3)'1!-Q,  ⬈T"C1DcȘLZ8C<,Ga`NG Cl4!`Tbd:; RAD"(tnL' b@#F|f!"l0"Ih: KDȶ0$"xt9 QxP7EqXP+F"1a1B*V!؞x)0+1VbJ­H<6#B1Q,  ?x %Dp8(|T B R br H 0B )L Xbpd+b4K +@(PTnaLdJ, hXAn bېN `j@!T@j>B `tHB .Hb  Haxh(R!^P("aP:GbHV86a(< lfnT0桄Rɧ@<+aPhB,B1{-VN!(8Z=%rBX@a*Xn$XdV& 2A(^OP F6 Rj20DlH#Cl>8J QЀH b(X%`DbXH@%>@.oHMAІ ar""A:^*0f!(V@Bؠ, "dwUFP#(p \"B"HTEN < : aV  +X p/H4<ea0G/(|9Q2!txF!  F7Aʽ K, AqT+, VCGXVY5` |`@HAP)B J +. @x`8Iaap :Se'̓Xj3o0pUBDxW,Q@-`4 |.X !l@,%Z pPpTp&B#7@ ;=M(78^ {yy tL1IS !.&L h6`X  ¡8d$ xQn & VjQ?̀hCiq7:KXj< 9|MPl | %@|ZU%\l(Đ< ahQ€;Πʁ0  l =.JGD& %+lS+"tu/ 1o6]' #B?@TXbԞE379&0 A@| F @ZylTXO`NA 4T}" 4K &ʀhoaTAA p0R@7 !4 x-Pѳ@f5%0 >Q +M\ :F ŒP3B0P+ȃN<4pE7@$+vĜ-F@نA03%(M`W)cI0&`x10<@"`ND .JAPczBB X ")% :>AR | t|@~5l8~9b BRu\QH>3\ 0J0xD;٠DQA ?*AX9a: @<$b؄ D$gH 7# R8,+,]5 /2 7- `H R ^##Q 1h F:oIH !`tͮ @%e'0A)Y;cZVF%FlJ`^N82A􄧥`W4|0$ n#V܂@b@]#U!iaVّ g A U \yD0?`kTp)1v ,QeLZ'MHBl0xC@p M AX'gT]I]fSؕY]4|f頌%*N&b"rZedl2.*rNj&;L2\$jC*z@P L@b34DL~s`f@ @V`Z`@P> F ``&CH*EtBh@opY vVd&JxO L@@T5dȖv5 +(9@LȎ `` EV @l@@>o|`o bz}<> 4(n0f@T#bEjD 'ЊF(a *JBw:,F\ B*/X*<"H[`@Π@iuH"J 0L q&ZPcs&@|1 Y,^"Q `/Rx@@f^1l+:`V XY"& saࠦ vFa >x> ~rg lr؄d,{@0` ,h8`ɢ gɩ *z!, (Xwg)  h@b\| l @dnbB(W #d@tX@(  p R/tc(S@f>f J 6 D*SkD&oj.:}tذC":t@ zB D+j4 rdKx6еv @| ry@X C/%lt4>3t@2^hƧ@ EM*J @ DV 3(7 :D# X ( cX[D: Q`< ~ L' 76KLR4@roB D Z0 X " $sFl Ku 6mD d#. |x-On`F 2~Gp2`29D  6 J)L,"@2Zэz.WBbǴ.hm 8,`=Œ6V `tI tKQ$|z2 H[`>F0tT n`HǞ lނD@^HI0>X DŊ5`8@ +n#kSoXo%Hc;rzEp2m+N @ @T, X , n4H D]Fe)"*QȊ)~')`Eh@B0 t o#%2gS.NKF6pi` @| @P VL `^By@h>Gr"BVl2J#G(4x< @dAzboIb30=B( 'iLܠhgLy=0RH T@N@@ k-z`QbRj֌XB10%RV=^!̀ KlR \QPSj)%:d@]N@b(z@v c"$RAQ@bi<+R=RPEZ`&H5h sG8CW7 EX' @z3B4%蘀Z : 5 N ,aG`~*`n <l`͐Ԁ<c |&0Z'N&pa̺'Պ]J*``4 f|j6pB b ``@ xYhdJ34|@dX ~;#@x|,F.^Q % j5@L&L#1VqQ<9@uS$H +HdiX:O'J^(0*XFŚx+Dzb"Ci1at fvj7fEc^@7͘@<@<'65- s# x l1kwLt)F(G@Ov8 ^JdʰZ_ Fl awi:Q&Jh"yʋUވ$TyFo;\b5?><"OiDb$> =>N? 2h,kpXJB"|z)adžH~ppT LlN2R>  jUVlz|@:=z  `@*_@xP@Ll1%`aކ ')"p*N1BTnb3CP>UzZ#,jGe{@,ʜ>}b`%C "V+Ak MV/r$]33},ECʧlD`ffX\jbv@ ` @ `S 8s\:bFkH# dXH? 0'd&`H8 ,4W  }"-ฐR""a蠢! saHHd6 zQ!:=l!Áh8cDP  p(-  2- ူX$b`P4-Bl4a 05.X- 1-d(X(MPA]8D0N<.^4Z/hd"h :$0rbx08'@8Ϡ&Ěሎsv4X7A p"35xX)!xPx-4 ^+QNbhD0ѳD0!HB ؒ0al% rnV)(8Ԗ8c@ `V݄CX< ӊ|!@! raC 9)xf# ɍ!BМK^b!JOa4a: ^S؊@*ژ 仿EXXh<hx !HKpD 0G3a ĒX$ 9θp BI\f@n .@@G #JX) 4 A/ @ hCjFJ N9IR .<I t]D"%$6`Dp$`pj  }@ R'0S\* X("" 04 d dCB@!p. D0 ; @| AP%!Gv a'@,AP*b YV -'L`NQ2 +r%8!82tkAxJ`RIE`DN z, 8a"3J 'L"2,n('. "C8&Q*tnX 0p/J`dH7OtRV@5 %de"Qf6ˢbq=|B=\C@l_A \0X# A\ >S&L,D˜/7ʞD(R(&O5@FYR y:C> - gHj,XA50` B=9]$Jw4X1V5uP>E!@'FB%@  DAQK>@ST͍(;;DI-`2Z1@` c`O0^ APPP;Sê<`@ ՗BA4P<X% ̗<}P p#%Aa+ <#B\TpU8RxDMx% s#t΁D\D 0!'r/?[ $ @2B4(Њkgc`DBM@D t. $X&6 ' @t>R&o@"P_S6 ̶A0]`  6~( @RAɶea˃H"?J4`a7ta_ Bp6 A*Di7T*> (l`&@`%x14P 2p@.pT F`t @>dAi3  @$n4"Kh<Cr0(l \@sJ PC3.Gry|(@)AЀ D 0ʁ.S 6S8ap-P5, "LA. 2eA8+p !3 tQIއ8;* Хk@J R6r@00ہ0*O'%`AqVr80J8YӃH>%% b߂*/ 8!;h.a%"!pYr3(+Rb‹&i1H1h%zDhy1ڶ;13<Zr#$PL $ށ#z.n@*P A< p$% 'x,`K j7 1 1;0,+`HށQw,:l(18*+)jSW&x h `9dJ#X#&B (H-/P*#]E`)>5 $!a{/r P6P%0l>" X ri%I- Jp qa뀹W 1& ׊q2> P(<8?- 7PJM+0 (,(zPRˁX ' $͐$k)e% % 2s@)p8"xxPT&hؖX*w@D: ȯ *KGZdkDy h08:%()hC%5ʑHB2Aq}͂mHp)|+2`[$P'h00##΂ :"%݉ X&)Hx!\ 7<Ѿ " FN\@.#`: 4IIg,Z; & )/W@x-a5_b$X ͷ  1/^*ṚzH0p # ȣ#jx&E)8( XHn(d@!! /`) X h8@='%M;QV BR ԰ ڋLFxYt|Z ` ֯ <XS˒0j 1H # ko>,5 u3|!B` txr $߁%F[H#X1Ңł#p j |5 KLq{^0> }3p0!Hl K-x+Y0q h*r#)5g< sFNP(A`*إ֗ 4-za@ A.tH`2xWS-203;MtPJI6p)iB݀@g't:!"  ` [/B`px[0Ձ8< 1s1Z$ b$߂R(v)6`i#  ;[38 b7 hȄ8ƃ+LDKŁ*"@4ȒR)m *0/b,)6`u ]x6  '` HJM3b0 !ujw11* 8 R"KE0)ݡ0-W3H %IΡ cI؈hVxTDZ0 {&"Iǁ ko\iJ0Bx(1h;z"h0N^F}H d ǦPO?* hݿDl8:9P 22({KWف%`xАjM'+߀! 8;<( `Ё |㐩X(6`!90Đ_"X"Xh4yr2h$p*(Wnp|8?x ⳰ܮ=T) D*p>Áh:( a`P;Q"r`2%)C"A`>`c@&Gѭ>.D"0J${?)#GAhFI,iR2 |.31؞vB8bnbAXt* ȥ2PbVChkE趰8 `8%C1pBL&E"^$dH( QML\' T2p(F f> J>@.0Pd@D0 RxM%!X>D2ಈEA`1cpK4aJ:Hਆ0˜L),σA8bp$X'~ +RJ/8A`fHL!(nAf1.P8rP|!8$X+pHa0Rلa`#U !%!IP*6! ah<t! ^,4%`L;0!xV2?P%A4!x!B @0H&!H p:Z ࡦaDbI=]N850WLn̗ (o+2卣(@zAh-ār8vΊaCSAAD!Xp+BNZblV$@H8QHH![8;dD dU@@\ lb\, h! "8dn A8`@>)`DRn 8ӈ:A 8ޔX0leHY-P@Md!\Ղ@6 BhEr~0 @pH@P&qA/j/J Q.r<ΪP-0DP#K@A0I@r¸/@ "p@\ A&V,r /h@ Mh@`@" `t ɰ` 8n.NH7q`x2o@x&$NQIdR5N$GYc*P\F N!Rh@*@~@8pJ &w b 4 P IG@1 ɚ`X H?p- # ALdV4')&p4pA 408 qθ:0x$8w328Ay1&_ N8l1X ψN@lfAml uL_AV. d'`,Y0IsA#H9L!c L!u' A0' - 03 hH tK`?ҰT 8'a0 Z1TP;v_<b+8(eYH Xh %`Q0b) z  Z$`@ `̵00`< > Bp%PR4RA8` @h$6Lpu Ds7ȹѿ P'@vH,aD@L8 (/S!D 0.Qo+ p 0' t s  1`Z dXs~`F)uAUP!;@9r) Y$ E)j-tjh 5Y4ARTbBO VX- <0< /Z"R@H'@-t!1Zf+ ѵ>@Op| .#)Oek B9 A XE1X"m`3x >bp (!PI;x'E0V ktoF_@LU1F@00a"5Cp+,:x;˃JE(cua7`'D XfΆ.G@p d (KMA;`XAN,OE@4&208A+Da`W8IkNMw~: aT&+ Dl`6r6`~#lmr BN`nn xc@f@n")%Ld$d$`H }@6>6F/TFJ@q>T`@ tc _Cn& `t ~ LΞ`XBZ V 23"&Ȣ@"pVBjY^ "(/j @b d;D]0 @ F,䖚2 jah|5 EVH#r$`^z ne?tO<4'$8YZ"f!zb] 4A XB B T}V f@eDB@lMH K  N x#XJ4`v#@D d i7n* L t1e d Ap byBYw! Jq :@Dഏ@` n/LhbvB>@R@l )]ڑ5(j L@`Ӡj$e^!@ , ƠXL$@<(`/CF4dB I@R |$4$;NE@ ]b DXv#PLdJK.(6nH@` \T@^9` @^*@ > AX9v\BJ,Vt@LW. 은8N&#@Ăi&Eު#WV flC C&@@ID>D v-n @R`ފ3wk@h!jȸT n,{2@@@BIo#FnL{ PG>0`.<`'` ,@0(T#`~8Dh@?O8^SRd>jl5^F+`n`F^@0(~#l?NrD ͂@8D q"@ &$/bpÈAvb@M J)"KH/P$jaI' v`r@#d `Z@/益Av  p@bHNb|G=k*Y FĖ?Ljc  @` `b L@ ^`ܧ!P ̀J0 gb``}~bS6@Yt\r(Lx`h ̀ȂhQ X `ǁaNI0Ơv RTp @ bD ӎ à~aE;@@.,baXl!l`R-@: P@6@`BK㦼D`v@`[c* TjH}T ǖ` B Tvtzz v]l" XFj'*3+DS\fN"Pk2B)܈:>  `Nl:F@\ (`Sj"HÏ^56 6/pi} dgxҌ9(" fp+)RЀ.b֪<g.JрtFEghe`P " z# 6`{/` n@Ҏ @@} ,(R)`> 2Kz Tnr*+syf}NDo0&yTV$.&݂>Wp)'7 |:vMj `8X] `T3V%VYϨB.*}dknЂ|qv0r`4#JvFB&B"֠2B~S*lN@gB<4< H @ [ -,4ͦ$4(ԝI*}`N@ "f rt4'@@@F*b03*pW IRNd :$Bp|z @@k[ ^Q(/eBVrhp$El8,?X'9ø$k܅O2o7:j/#Ȏ 2"MZG( d璓Gg"ڬC '$bzL!xdPRl hA {*TI"$ˆ#iJJ Rmi]d':z ~ ̻Tg^rJ P@5KvC-޲vn uŀPbJy@;@Dฎb]u rx2dT|?v " td `n@^b H]KDl,KތLTB(m0g&f2#LbxlWv{'MՇIE{`bC *j:rG>'`@X <* L 1=&D㠨X"(, EN1 bUǢpB@"4.?E!A`>"B(\ CBq)HcBbTt"Px8@уbF P "ɮ/dhDAВf$ "x5B`xd+ȰVD2 C ؠ<-Ș\CbqH-0Gp!HR+5i)0f4 ƄQyR<bH|hłD" xt=0H^\z>@0> `aJA:  b1q8Z#00Gٵ`JAOl +@\R 'b .O\PJ(fj ݸ+Ox P1`QFH5%7i<YSDD&$b+a  V4t ppƿ h0D8;@pVh4G}4b(*uͥD E UT5 4N,AtܘE"6!FR!z m; -E-Bh% nڜJQ02#a #p,  PF x.'P (M)T$ 89' #1p&xRT*e I\a@,M`&K,c ޒ(A  B*ܜ<(eDت4`@lx2@$Zk 4Ԧ PN3KQ ZadH9d bZcF  %h- 30 x,!P "P[UxG>KhL$&A^`6AL`q tX #%\* {]nAK A`X c`LDC0=.EL\_E-"4 @Bqz+cpqp02H8F(Ф`8# ":ĂP +ID QI;P6 @: B@Cb5xC? V\]]b\k0D ƀwDТd**K," (R lY @!dBH%*z A(1`|Azn X$10iK`0 LFI/| `_XSDgPbp(i6 @(kp L ADl@CKW6T3@t= @ɦ Ulzǁ(g(@/gT@S%y]SrBh`P #ȐPFdiCk@, 6H;In 3L+X[)$ .YFAJdk&@>fIfY)#M-PCS) b( d)h) q)'0%H"c!&RA%гH @X`(F AԗP(iH Y:S``x6`&`2 ((CKp@@P1j]4 /Կ!Y hyFY HэI⅞ @ 20ªx(# U8,雷v= ͓&(# P{ Dځ .(A:(qFAb#B~́BH .x 1P͍hp%`/X 9R7nذXP H:khX:v1X #(Z hj}E2׶(Y'07) ! $+!rm"3$!. 7 PցO#$# .B8C]e H y' P (p$삫We`Ȑ0 0-H["TUa%ځ`0ASqG%6x hב!UdCa4K_X!8 :Q& D1*ʹ ˆ$)9 "*UeH5y ژ0-02]aw)U!B:f H iD =8`q D΃9 L"h$Jq:{)z'0(-`wW -p 0" [!)X4B) EVAdq$f8%!/$~5P ZAы 谌@2z&#Hy:8#p .F1Y1 ="8m\2R p P@(.bS!Ä$XJY] zX$Mř#P; "$8G4!,4 ȥp@... Y H!L0X3M`?AqXȝ銘&PJ$ 2 -3!<;P!Ӿ 0&(  X4OJ2401(qcTZ2X@% /!(Q;@ >b):[ROn x/#&j(M&@lI ,T b|E@Iy;I+ XR8jYH (#pڗF6pSZoP8)#tN`,kM|$`AJLz<ϒ(#(X @!\'i8A;4q:5 X!U%arx5;@ݨ0H(!"IG Q@q`0_hC $2 ! gp90'PZY0B m@3reaࠐ:DCX4 OrpV" ¸t:$#0`6! OU F5>"t7k |Z]1WHf,$!ML> b0y[¡0>IVp Ef" bPɄgh!frT*Dbо2: Dr`ECA9`D'vC@!5xDNGЄ,%5 0,`88 !Vt B`>aX߆8  b(D9l@BN!|* 2pP'pd`1-ay tD@B!*@>@ `5>hPAJ& +\ M T6^BC32P)΁RH ^`Rۄb0a0:&UZ 02 +8kT@RXT10%> !tad |1D+!ĵTHFaԸA8X`P b 62 TPKKs x XRJ8B+(PHBI:%5@H6 FF`T  |@j%* * * p4(6X!Na΅b 4x` XLl@Z2/H" O.D3BP\:(fuE$ 0D Fb!b*h:!f!@hˆnt/Lxd "2 ]mC-PXMZ#("& h8y:(O ĚAp'\z k,xu  F`:f )c!CJ .&d*fX(36 F hP5h :'@H8СxA`@!B BP- +FC1 Ȅt Ĉ)u l ֥6cxpDˮa !p` aؼԴK"@~% x#LPk@h 2Ԃ CP.VI9~CRp B^A FШ%B@CȂh SSAP 4 8^ V@V hU&!%`!ܟ 6P\cP.E PXA&8ihlzbN8!@lІ dg`h"@z QR_%`0@g\0. BP LAA: ` 4j  Oe9XVP% H < =h@a,% PR0VHE A*p  a T2OJ0V H|08!NY& |!LbB[ERB!`DxFo A8MA p@255@pX q-4u A@vȋWa5$ p ?0:VT@&I0w0[0 E `2ʰ_8"A4pd  nAHM !(й\ ­KQ pP @ G:} ,`$xZGER Jܖh1j6DP@ XQa%:87 |4ߟ`  Vݥ#3 88@!@ \]G(2hyHge~P+@@$DAYLeU3TR- A$- A6QL D& ҂0H%Pdu-qb( 7`8"-СIB]?XPlF'?ACLگ@xKUav5p $:(P@Mg(O| Ql3sR6~<'2XtĜig}#ݸ ?qrCf5^U8%F <PjHAN ; x1+\"Pn p/ wr{ Z89, MbGL Rz(o NbÀL k:~ep4@n3c`Nq Tg| `D@V$C6@Rk@R`: `?*w"ns@B`Z6E`p J f^PVg`B@Z0LA¶ l*$F 0: *< M>dLN\` @\ jeF1 F༟)Jv| t"HT6&H @B `C@PO`z&c A$ D6x`V >vfT`byVb-Ҿ `,E5Gi \ N" x@tL'<*Qʓ.!6R@ !ɢ+@`g`|I,F#:ob`l^Ҭx~T$ c=#n RO>`P{0>EPdl^$j ``^u ``\ =xfr DҀ~VlPV WBB@࢓ ðТw Nw< Z@~,-. J ~ FPF$R"L $ P<ˬ 8Pw>%,`_Z#CZ2L´ P3.!#3'^ f J |u `j@'R`i(c0` Ts < HeG*BjD-H탌mnr 2@ `3@ O6͜|&&H&"֡L ˞ctn R '* qF@T: b4 ,c"C$8~0p̩CD PdGSj jd}o@| Z@I$j` `( ^f^ RJ^K@u%t,. 6MD@18|Il3zrT( @[$^\ ^'jXHX i@ @?QgZ B`N$+O@\g  z f]`4^dB-.<p`%FȠ<>lĸA (N+#B2EH *8V@))?0ErXt@ `X ҰF e$Eb+Rf@ n\ RF;8Ƽ> : `fO6 V( =mL@N փ $B t Wk,Z5h)>u*D ,E 03@F @@ED@SpØ^ `l,'Bh,KS$TӸya> ʖcE$,6b `[wo`D &d&4JC&hCJ->h(/VH JxlN D TbMD&! ,8R@<9 dcG!#~ h.BXh-j# L; $$;"h L v!['Fx`cna nF=@6 s.,@r!Գ0@XIIW . *F5@.p%j8@nҠrZ% bc@.Ҭ `N0r4nB `r `28H0ȕ-g`VD c`C`3+(b| *U R!lN u > `L hxg n `.P X ` *}@`@> `FJ ĒKEb6*,a :|1 4`X,6f9~Ddcđ`X B"غF׊ 3:JꚠJʧ4$B9Jb .+ "H-bIr5<* @wqy0) !"j`~:g ' 66 #Vhny`@cu3Ů%`k[ch$1 O``B 2#PK7X4.6ZdM@[. |)~F dB @H0hc@@c`r 5b$6P턟Z`B'K:~F hNK `tV 8 Lz6~&OL7; kFl& =`> |K;%⊳A ״2̅mTB^lC\:@p&_< flFoP#.2A;$ @Bd 掻@j)=O@4  ca'U6  (҄c `?mgJ \ `^{Qn@-B$`p@YH`|‰*P\vl K^*O@ g6Šx$:0NCp6.єK z ('F~~0ERt jsTu4B s,FMc5|5KP,P0\ @jT~ @`T . HH $6XrPNz;$)2dT!vYM@? >`A l2;sCo'7b2es 0E O lAe`@ NPH z: < `@GcQ"?PMf2FN ecQB dkdDvg>6&`V<4-@q6-(f zFڇ`f`n瑉vP Ӑc ~RY@MVj \U:[q"@Jn4`#/,8ϸE*~ DK" `O@ *"@HB7x(cl&."c NL}$1|kLkx @: Zf膢 gZ 8Є`HPʨab؃Hl 4 (V! D-0nF@@փ2aPL $ @L$6A:at@ @xhN`b# "DAF$Y;aM8R:.a|H`Ў2al,h4X\:".< D81+Ԣ WJ56eg~T:&xa<a@H@fHXπd-P *rVx<j, (VJ- FHD h(ďpNY@N`J*@@$KOkP V `B`*CAB aFΛgH H d@` @@h!o`/B Na kH(;lXiʘ>``T[/D@*$zzVJj@J;OD=}P> @P4I! \$$6JPp Oj(pw 0%@;!t`c8p^03b!H Q | pb 8"^*agT @L|+RB!kd"8t@^B8; 4X %`3-aʰ9((- ahh .j.M-. bjr @],KqL 0pD@l,xC9]\P Z A%x38)7r,A38GY%dY`Ta3P8 P h'h/P>Qf| =b."D 8y7 KX!6ThM) ~xC%PS%Sð "f UF 0;`Ck6aPcG=(=x+ ڮQ@Y(X-E-/v;A6f D`;8 F}ah\ځ a@T`0.N00@`Xp7 i/wI9ZyF Aa`r)T/  b@ xMxA)r<j;}Zy{P0@A/4!bj29G {ZX< @DCWps> @"C\ޱ PJJT 0 BAG tO, 2N) 2Em 7e]L4- Ҫ`P ,, ;rܮ<Q E"f bPA蘄vj0>S`)N%*tq)wP]f3S/p#'*pMׂ Z' J 'Pyh>5I`4%A?8ƍ`iXM Ts hK`; `2 A= ~R!͠TUz|A"d4 A`7{`t.72"48p @$ pDYrr09CM4dJk5p( CNa |& ˻r VA@d Bk@0l A|;(p #?CESKܚ*J~?>69JOrWz#<JT X)r1/ rځ BSz k!i !hӢ"G,ؖi;` Ip>(3x/YU` :X#T*3yc XH#1Ё#p 70 0 @x x 0Up9 9B j b XkHA݁ *r`(hk p@089U ?]h% hρ! 6_9x:-(@1-(q;5ȣ" h$jKB8?8*%@p-i30B0' 9$z/&d ! 0H Y`7  k$:) hX$!xbd|/jd8:Ղʳ.P9,"1U *R /2f\ (*~488@6ˡ1n1 0 p'YX!-5K8"u&"" 1p`@p(` p H p=M(6 h*KX"9` ]:!3hPR-)vȜK 0@px2(6$P(7 y9lh9(3( Ma?h8|M3Ҁ'2G<9əCc5 # &L7x(e8h EX! |- ( $ 1 M$K0 *㨁$9K*`*g!!$|:0P"Cл084ihI q'-$S0 E2Ak;P, !  y82=Ig)I$ \o =RJ /XGwHpMՐ8Vx" 3H7CM,@#q:%RKh>+' Ch"x@9dj&ģh Z$ 0RE:K*+1P1ÙZ.:(C ҆`  hJ(: ȑZn9h x i $? NXY h/'/*X$ Jq1kґfĈI=E#8} u; X!B,~1%&A k`P + F@p0:X 0 K02D  %x P|88Քx- x-x X-\  (Q1(#5"h*C.:ގP JR!ox!rHK('_ .z|r @ YxB:0 i!{&Fp$ My@("ùM p'X% E8 ? i,#h'N*i$P*cɁ G . x؁eeqF2ӈ;ׁ 60"&@,~&HTC&"Hc`aM=PHH41'^&- ݦie0a8R D4Ӷ)7)&]G2|+h.`$0*'X40$ϥIB7ϣml { J۷Ǫ,+x!BXƂR !1p/Xً#xs+.(.HP/3^8I *4 oч6%Ib890"KC'#W-h%Li(&/'~asb{,}Ի8HHI)( 5ŵP@0p ߙP%GF/XqĊpXSVU8ˆ{ԍ6ł$6*(]P0# h4SXh #i( =0qH@2h @ h_XGiPA"0AJ6 5 X #މɟ#`$p%<;f|XH5 i2; `w(.I ok<$>f b5#ȭ9qUx$ @('DL &d7ؾ7 XIr  8`4Bh#OoFӛ:@%ԩ2_x!(8)n= J4sT3h#r,HYU\<$vRe"R# ʂqC:0 @lRWyh1-ӈQ\N91p)X;’:QMD!@T!"Qn,`-#A(J!V: cl<*FpH+B84)"zG آ+C@#$t`!1r*i7DA :  G@Ь pT61d`F9"61H,D . ְ* ȗh' E( \6;+@Ap@:YX.d,Oa$#L0<A^a@N(RP(L!@BknXA \ Pb(D(( Z$xhX$BPF(hp4,- 9 F6o5X) d$DN 2_"3 h!J j6l0*21\ 2LLhD#8R BP=Z: t62@@0.8b +Q%kcx@(%j#AD3`h.2l8aÌ $gJ,dk`8@.JPMŊܠHD1Uh _.감 6u A!&PP €9a$ZEpPJ|DOi\a5: h΀9}&,XP< ,3 t@-!GSE % 24"]#C $P,0>@d.dj10VVZ0x;.~N#S1Bbq5 p!R0p0APî0‸+۾## ,D (Y\ Cdgfx x)ȡ00_A$2!A8qdPtbdx=<Mnt4ir C1M«l:El]n* 3Kk`^s 3{: :*7&cHR8/ Ví]pBNjYi5?0fBX/1@PJJ` #`~n n7 -PfF5ԫo,b$.} :dn ֊~f$`jl'L> jթ@X h\aZ-~bzs”(R 6`|^)Lg4R@^@:`8,B'B g0JB0P PO26%:P'PoNn,0ƪ7@CD xG` gV N`z3#2}@r`R>Xf 0@V[ ,@P /KX tJ@ @RDc4pP^ %b I>yL^ 8  x%3bTK \1@ F @r3 Inh %"nObDt`8 fd1bT`JCf6!.<x`` Dګ `hhgR`ndоfd+7@fzx `x)vA : V`Nm4# E% TX'N @OCN`/"@:JνpX^| R;`#D ~ *xz&cx j8Ldr`6 `6f0@: l$b&Śv ^ IJ`lfƻ b0`fr 2X f,l'n+n>F$\@`z jQT$: 1 Lt *Z'Rٮ&'HmnoH@`<q<H`J ` 5#X#>\J ~s͌Lt mzdf. T@>Ly/IFT3(jFaJG7  \:  к8=NJ$:X@YxoB6@hT b`J8Y#;/:udp B / nE&b5>:l06\_n %e4 L Xl'df@~B(,BH&`tRd7: "V_Z %c*z () f"fL6G h6  DJ1q`0PCA@|LT F e`#* X`(`o60 @z#\Kp`q6,; *9n R3 $W.Z:\& tGnL#XfB r yDf5`HBbNM~Q9=MDPNDLJ'\ `` P TJ TZF X l@|& .r*8I*%YevO X&)ƋfpR>d2H (Bv1 Pnz@bMD1vL@@`7X 7Ҧ +4@b&4@`z @>L `b>bKv3@>rN `6`ZLd@FflK=@`HS7ը @\`!0P`> :``NN&.d&.)^ | Y J4 `Tr@{ʊ*\3jgR fBuF8`@i Ԑ %+`8i X&E7^ B "lZ bjv'jd#x0f`vcwRPZ {+4 语>uRf`i) RO|`>dnjT4T^ @2"``b@<BI`p - `zW@H`|7q'6] {i@_C@P `rLI'J`aR'`$ g^'C: bl@x`ZIŽ@vկ,D)ľ٨X  `^@FT]`8(PJ5' PeG('FLԢj8J%f0@О圝N:`>Լ?HRà2 D FH 55ã\jW5 `B l`r0~W\ӑ:N h0Y'$VhfJ VG4 &w$$| HYeo] -e @@/e E#n%g%`p` : 2hU x0h@))YhBxK(2"X_4c 1 WT:L4Jxm=H.@Mğ#4*jC4PqR y`VXѢhbL "lA 6 R\# $Z* J`2 `V`~2aHX,l(,:&Q$@઒}q@QRR'`e |`@T@< <Vgʤ٠}T@p „``m2lf`hBLC8 d!(K<@P PsV$@A8 o( XDψoXzX cn5l`y4Bd,4.x*'z' @ > H @h Sh=`Y2 Y &Yhۇj@Fge`v* f (0eXY6剫箌8XԸXДoeνPF &`]`&ՒN`x@En䠏F HCDí~DHJE ٣lDrC\TNa6 n J60H`s+I£rimr87'Rl$ `:8d0+#@`xVa* Ch2#1R-q`+HQ 8 KAH] р|DbQT $z%qb5aB!qn#D @߄B`R.!T!偰8l" DH1_WF;D!{@R`CX 2 2)PݥlNatF=B>' h?g ;EQ\L4. T@2!y$ Oh0 a%a !Xr,j#T!0@@ LJqP`a8*rF&+B$J8PRX>4j'z* .`L3hX( ~19ǁ\6%0x^V,H>(  I% 6Ã`3 2 !+tP a67`P'<8G!(O&ȃ!P<ᐺT੅: C*FѠ*B֎ԇ! C_СJ@<a_˕X/A( "4%<Ё*!8Ht%S 3=tp>a$) @A0<` d-0, 8`4S_7`@@ f L@ҁ`2[Փ)2nFXJVX?`|R207@uVMcT~ #ʆPq+ATU x2rČB $*`8%)l5p 0)t Q)*$`AI0&*PCfX1 *(5fsʰfو% `R)1 @. E*\MH+͐ J;G6Bx$vA86B(@RP<0ROf ` Td$BvpG @mg YI /-x/$#<B2Ly05Z@>j cA-@LQ8-꙰]V#yˠaɓ  @ }6O|Y4^̕ J k.`> :1 a$N 7s` j 8._02 6I)`|xೕUhJFo0 81@,O"& ]|0ɐ< ( ,S?{dQ2 AT FAHq' 8! E *B!@Ԁ<Wf/%\-#z8' @$PE7Z 1RUX (6!lUdɈ.E7*t B5v  h`.8%bpV>5 'ߤZ.D" GMIA8/yoTAh(I ^`8Z!Cufh]vB,S TJ}cMhh1)P4 Y!( @AP#h4@Q{ #dR?As x QjFw5@\ qDRA(ȃ~C`rpp&X Zp0h :h:;`y9=:xe Ѡ؁ X%K 0/>08hh5 ) ) yBJGP2MQčඓjp ! amk;ˎ[B1:( x +84h4(iI )P&XЯ5!p18!0+p"9=p q@+"A>0- yF&Bh3`+&1˷4@96ȝ#!o014-! 0/@+"p Wع?h$X Ä: ɜX ߁p+0SbDZ"c/ I#![q0AEU@ ,e3/h9c 5C"$}`ɷWz] 邠Q1aMP XJP3ȨA,6 ?I]9 >aKÀ%ySN 3s Mb8 's8xD1 'X.D,G(` (II@ 0H ? h>#IX)Sc0|6 p!'C(& A@Ш+ 0 274Qb:xk #@ 'JP y""y^Ȅ 8( M"0h  %K [.:E[iX2 %h!J :*Ȃ"X X&'p7X I6'h#b 4"hTÏl& I<0hM0F\&+ H e,-z4i  Hp /"IL8 ҁx` p  7khI0#yLM}<0 pڍ`F(1&")(*5~IܥН1gOHBI ( dr)  C(,h- T @ @3OH[X P*/3P,P =(35 x >k˒@&.I )迂P&8Xڱx%M(@ 傘@8{7IAW 8&h#0țH&"m'QL+8#&p)3kA(X $ LzUr.|P (߻)9@9$*;,8ؐ P!H@1;6C<7: _I0P$ٷ@ZH48@#Hx܀[Acry%h $P")b0)=&R x('S(0;̦ Z@WX30DEQ 뱁"`|./ߦa0e[ @<-Anb!5ƁkDr($@(Hb0x h5826"q# @٠(2/ )ЉУ@/`,"/`A%M1 *A Y &'!!#0=4V$ =ڎ؏ (V9>Qe C*H-h通);&<^kG7'`Q9F$e#0+6eҿ;@*p*a|01!L@(Z dBH% e#[۵=ʼnDǨ  8qڒ`5ݫ$Xv&铡 b(ځ>Bm И( HRn`a&+%4Ao>ʂ3x01T}@4a 0")M J&X Hbk #`x5 02X9t #BF 8 0X U[PJ۷>cM V!%(/D( xBЀXiqPu5('ΦH 'Xx0 *p  > Ѱ*h$WQ^qX +aơ'aֱ";Q @(0jQ! B_,PH'੥8'YԸ+ox㧵r88XP9ʦ顙ԽA}v ` *r`ߠ)(tP , P"@:B7Ө @( :@> '2྘ p:'Rq|_}8-R:%))X5FkM 8`#aL53Ui!h$$З-`!*m6&`!tH'h-Z4Xe!)*^ђ4Z4p-; ^Oa\x dr``\: ̃8P0#N4)@E!Qhp0' Ș@c`?!IB. 4:YhHH @|hCH2@|>$NB@B3DCh:ѸL:t 8օ"HA@:@`f.H6=K 0J(K:008< !(HAH2 ?6! !+(4PXH *  @0 @ h*xxZPUX( c`J(D]:,H@ZЁ< j@0^4p(VHTEPAb3H0ldR  @ @ZGohSWjLX^:6rUYި \%@;PZA0H% 6 6 `Nz  (Zp0 ET T ,  b40R @>&08 hgzu@RD`@ 8P*5^u-<ULA(F"aX{f("!Xn!0}0VʅbpP&:pF80> Aa{N"qÓ !@ #Z8$h$p*t lM p2(`К gUک4Uh[GX UЁ Ada<| C=i C^ Ts l:oA$ d8# @`B0!6\>, + 1ft< 谣y GA\2- $@M>X4fK$ B@6!hH+ q6 `evfY`+P: H! apTn6ul A, '.5kA?` px$.`& -A`P 9f \1 pjh,+1>r40?< -D8K(҂"mx hH%`!Aҩ3lI."~X0tjN|Ҭ8]ZAu a `RR APj@!+4 00\ŎIafzz".@E l3]*DrA`pDpl t x-j8X؂ 4A/p#PB W\ce~\j(1RO@gH 81…@n -gKTDA8.`020#pL 4)=9@0h ZaYP2 !/Z0!02N/ F g8SA.5(K\0Cġp&/t@t]ָBxp7tL)'/V Sr Q.f!gP}lωu,A*p 0&O)7% w i!q+5!ca0$9025-cdB%(_jTp6\۶R`X Z Vh D VX4 `J A~wUl `ڪځB؝q~uuh(K@ A4742_(ϷU^P 8> AqmD,:u ֮ǐI26Dm$1K+)èx z*: 2[@N\UGf` `$dJbD&`V8Ie%rq <ik-~Q 1N ɰ0  B {5 oAB`@J lFr@j@l #|@v@D"L ~6g@>B IS;@ft#4h>!ʁ)@P%^Dyp`xyF[j `TDMঋF@Xm,<N @= `L/`vc4hRx !^瀠! X bƀ &JdVJ f^.HeT!^: pq& G*d 045a XW`l@L J2ޡ@> *Ld,@7tk47tP81p^\>f8Rn<8!)<#9N6R@ HOZ6bn%$w # ̄0PBKjvɛ` b @B`:. @*6 `j5& R@\Ej bV fL}}V@@N7Nlq Hp,VH\KH6,j @Te5>g^8lE VBnP J mPK L,<Q-rRRN\C^bp4l`. C*  bFX / D D'N=?my@~D)B@*jjJ(1t6g`Js:2B-R* arh@D kƒ *,gF ނc.T_Xv bv ``f(`< @DY<@¦4ZUS(v@J,,yH4,'zP%Nw6eI`@8XQ|@?.<`0W*XpCPa,O@bV(\<O6@{8R䠢W* Z <2IL~@X`|t 쳠T >,@qlbC2A@< !<j f`` T:`p-,@#`O&F @FF =: : tp @3CJ2h B"@vsk z B| m=b #,>@]%r`(s@*P8XC 3hJ4}ܴ%PE,lR`5``l b .Nh@@x`fE V @>d F B:H 7@Oxn6T`b```X jt'N t*:^5E8d,v|gl5H Nh&N vY28 X%,Fk8Bp\&D| nJd#ЅxDI.,P$ `X(n#{J `d[j 6N6 ʃ h V爐|`H^ M:><04u^ RB/@C`/l`\ 4` }4Z&(q\bRW =`@WGJ!4OF`^4t`6l d(`, p6ՠ:?4@&s2, b@t  ^r .X:A`8g'm?@ @nY8d5 EcJ` " 9GN|aɚ;fb KH`L "v |S:N@Ï2?% :2l<3GJZ%4CP$)J34 +Zmh2Od{4ndhl`̡4HfnWEAt0!%g4ش`C?BxT`$0SD@>%Gƪ`efP+ o 8@\>&pJ d|:0Ll K8 Wx @4` Q&:Q| N`L'j: P+ Pp:䬆:  >f c(bZ46[e !@28ڊ Q/+vю V"&[B^.U,O '|%Bi*L&* ¨f @b TTaL&zv@ ~}xO8cf&TW D _OC/e|@\P P Ąq.<2*¶2`,Sl2; ǿZv`VaKMF:рf@/n\$i 1Ea:Xv9wxLgxj -+ @PIJu@l@'aZ" D`v / 3jc4 f9Pf>@F^ปn e ʂh )Hf92|D>n貤qN|`|J<ࠑ Ps@c#< |AAqDF Ed @Nżt*/2`2'/29SQR@*l8.Bjb/2: F pଢ T2D[_-Υu|vg.v re HfS @X!`t`x 8 cb R@,>" #O" !2gC&5fY`6S`> & B "$~Tt̥*sxcƢ)=`@VRb&( ZDQRei /IE&7 [ۙU$vE ` k$T[ܝb?3lL@ l `0 TFPMaS/>z.i$Z].}`h ¸+` gjA0*7R `r.lyV4k:+g`a-jtz`TL)?`& hPhD$dh*D`8 tZ1EQ 0 @؜<1cQITdJ6AjJR* SA\J D¡`X8- B04. j"GB|H0@{Cua|~=2F?xJS,ÁB&c!A@tA?AD P#.0bDcBp<$DX tjŀfTAxJh 4 i|z sX`P< (|:"c08  (8( X 6x,nN L 2 $HTIa_X6%9vXP PΠD0 `hNB(dn V!HXAX>f c~f"!`\b&!(@L> 2@4!H k!^((N2JZaBr Y"`x bnnHD ex'v&25a8؆&Aj a1~, : 8&

0% 2By`\f B0( jx;qk'0 %!UR1 c00B@F8, VAPQi`LAD"N`& %>:'Z-l 9[)`R Z#jn<8M!);{@U*lgSz$ d = ~Xq >>dA;t @P'u#}_H& FO5밡@x)$~ (#8 ҁ` jtB^$A bS& N3A&8X'seXB6Sm;j;#PWB> - v c !ph BBSd'(Dn+l@h[$%"V\p $p3)99PI{!y@&3FL TaCP* * +/x*W08e0#Y4H@;@5z&A!^ /_|^bv $>P ntb&@h"`L| N@{=&R[( |¡W a3gL› R&A]Ѝh @1~IP Ʌ"( HJ0 $?X`jnx)Q̲01 PP-Y yZ ;Hqh0h H!"thx* h !x!TF%yrL" 0/#,8`~(()suAlI !P>aRFP3X(1GX5))qK̾!ˁ)}z&0906 t#xꙀ!1I@1*28΂$ 07:"`aiЃ9@ h3y0̛)(# q*A+(4 Ģ# ]R€YH91((3j2 (23 "23!G+ 4` H"3(/y1 $KV$#qV<""  ȁP"Cʸ` 6I#؈ ,  h2;HA2ce:S8 +܁hO#x S9rH 3yБ2~KDށl #HX(!:>$Qm!9 Rg!1/(8m{!*x(,Q\{2)fh$V3i(J)0ܤp י=5DWQ7c٭N$p i΀vBAya & (*AQF̅Rax&żP (ԂB0 :"#:.ᏁY? (h (@X$  PxP聃 (@/퓬P) Db81GH9 i $8#8.(eO  kL"墝; 8 x q1tiff package, R 4.2.0Luminescence/inst/extdata/STRB87_1_unbleached.txt0000644000176200001440000000103314762554470021372 0ustar liggesusers# -------------------------------------------------------------------------------------- # CURVE FITTING TEST DATASET # Berger, G.W., Huntley, D.J., 1989. Test data for exponential fits. Ancient TL 7, 43-46. # # SAMPLE: STRB87 - 1 (unbbleached) # -------------------------------------------------------------------------------------- 0 20522.2 0 19373.6 0 21040.6 0 18899.1 1 50382.5 1 48570.2 1 49529.5 2 77706.6 2 75291.3 2 74563.8 4 111547.5 4 113899.1 4 109461.1 8 164564.9 8 151504.2 8 168042.1 16 204726.5 16 201964.3 16 193457.6 Luminescence/inst/extdata/XSYG_file.xsyg0000644000176200001440000016245314762554470020031 0ustar liggesusers 0.1,6;0.2,6;0.3,5;0.4,5;0.5,3;0.6,5;0.7,0;0.8,2;0.9,10;1,3;1.1,11;1.2,7;1.3,4;1.4,9;1.5,6;1.6,7;1.7,6;1.8,3;1.9,5;2,5;2.1,0;2.2,7;2.3,5;2.4,11;2.5,5;2.6,9;2.7,10;2.8,6;2.9,6;3,1;3.1,7;3.2,5;3.3,4;3.4,1;3.5,4;3.6,3;3.7,5;3.8,7;3.9,3;4,8;4.1,3;4.2,1;4.3,6;4.4,10;4.5,3;4.6,4;4.7,4;4.8,8;4.9,4;5,1;5.1,11;5.2,5;5.3,3;5.4,1;5.5,2;5.6,4;5.7,4;5.8,4;5.9,5;6,4;6.1,6;6.2,3;6.3,3;6.4,2;6.5,8;6.6,7;6.7,4;6.8,3;6.9,6;7,5;7.1,2;7.2,5;7.3,3;7.4,3;7.5,3;7.6,9;7.7,7;7.8,7;7.9,3;8,6;8.1,11;8.2,6;8.3,5;8.4,8;8.5,2;8.6,3;8.7,7;8.8,2;8.9,2;9,4;9.1,6;9.2,6;9.3,2;9.4,5;9.5,9;9.6,6;9.7,7;9.8,3;9.9,4;10,6;10.1,6;10.2,13;10.3,7;10.4,8;10.5,7;10.6,4;10.7,5;10.8,9;10.9,4;11,8;11.1,3;11.2,6;11.3,2;11.4,8;11.5,3;11.6,8;11.7,7;11.8,4;11.9,5;12,5;12.1,5;12.2,6;12.3,4;12.4,1;12.5,5;12.6,1;12.7,3;12.8,4;12.9,12;13,2;13.1,4;13.2,13;13.3,1;13.4,5;13.5,4;13.6,7;13.7,6;13.8,6;13.9,3;14,3;14.1,6;14.2,9;14.3,5;14.4,7;14.5,2;14.6,4;14.7,1;14.8,3;14.9,9;15,8;15.1,4;15.2,2;15.3,8;15.4,4;15.5,7;15.6,9;15.7,3;15.8,7;15.9,4;16,5;16.1,1;16.2,4;16.3,8;16.4,3;16.5,6;16.6,2;16.7,4;16.8,3;16.9,4;17,7;17.1,2;17.2,3;17.3,4;17.4,3;17.5,9;17.6,5;17.7,2;17.8,1;17.9,14;18,2;18.1,1;18.2,4;18.3,6;18.4,6;18.5,11;18.6,11;18.7,10;18.8,4;18.9,5;19,8;19.1,0;19.2,2;19.3,4;19.4,3;19.5,6;19.6,2;19.7,9;19.8,2;19.9,2;20,5;20.1,7;20.2,1;20.3,7;20.4,4;20.5,4;20.6,4;20.7,6;20.8,3;20.9,2;21,4;21.1,4;21.2,6;21.3,6;21.4,5;21.5,5;21.6,2;21.7,10;21.8,4;21.9,7;22,8;22.1,6;22.2,6;22.3,7;22.4,10;22.5,4;22.6,7;22.7,4;22.8,5;22.9,8;23,8;23.1,2;23.2,2;23.3,2;23.4,11;23.5,6;23.6,3;23.7,4;23.8,4;23.9,3;24,5;24.1,10;24.2,4;24.3,2;24.4,3;24.5,6;24.6,6;24.7,6;24.8,10;24.9,3;25,5;25.1,10;25.2,8;25.3,4;25.4,5;25.5,7;25.6,5;25.7,8;25.8,7;25.9,1;26,7;26.1,4;26.2,7;26.3,5;26.4,8;26.5,13;26.6,4;26.7,8;26.8,4;26.9,7;27,6;27.1,9;27.2,2;27.3,8;27.4,5;27.5,6;27.6,10;27.7,3;27.8,10;27.9,12;28,10;28.1,8;28.2,10;28.3,3;28.4,9;28.5,13;28.6,7;28.7,5;28.8,12;28.9,5;29,7;29.1,9;29.2,9;29.3,9;29.4,12;29.5,7;29.6,8;29.7,10;29.8,12;29.9,6;30,13;30.1,11;30.2,7;30.3,14;30.4,18;30.5,18;30.6,18;30.7,20;30.8,19;30.9,19;31,17;31.1,11;31.2,20;31.3,17;31.4,14;31.5,25;31.6,23;31.7,21;31.8,20;31.9,16;32,20;32.1,25;32.2,28;32.3,30;32.4,25;32.5,31;32.6,23;32.7,19;32.8,25;32.9,30;33,36;33.1,31;33.2,29;33.3,30;33.4,40;33.5,35;33.6,34;33.7,47;33.8,43;33.9,45;34,36;34.1,56;34.2,56;34.3,63;34.4,61;34.5,47;34.6,61;34.7,66;34.8,76;34.9,73;35,80;35.1,79;35.2,85;35.3,81;35.4,79;35.5,86;35.6,84;35.7,97;35.8,91;35.9,103;36,112;36.1,112;36.2,105;36.3,107;36.4,128;36.5,117;36.6,139;36.7,146;36.8,156;36.9,151;37,145;37.1,136;37.2,137;37.3,185;37.4,182;37.5,173;37.6,189;37.7,197;37.8,223;37.9,209;38,208;38.1,257;38.2,232;38.3,218;38.4,279;38.5,263;38.6,254;38.7,290;38.8,275;38.9,289;39,330;39.1,328;39.2,309;39.3,353;39.4,361;39.5,361;39.6,353;39.7,338;39.8,413;39.9,400;40,417;40.1,431;40.2,473;40.3,482;40.4,446;40.5,470;40.6,502;40.7,526;40.8,535;40.9,508;41,529;41.1,498;41.2,572;41.3,552;41.4,581;41.5,593;41.6,650;41.7,668;41.8,613;41.9,653;42,680;42.1,659;42.2,729;42.3,715;42.4,798;42.5,765;42.6,742;42.7,773;42.8,852;42.9,834;43,844;43.1,918;43.2,886;43.3,885;43.4,977;43.5,952;43.6,1013;43.7,967;43.8,1043;43.9,1007;44,1005;44.1,1007;44.2,1100;44.3,1094;44.4,1117;44.5,1134;44.6,1220;44.7,1236;44.8,1188;44.9,1254;45,1242;45.1,1299;45.2,1334;45.3,1352;45.4,1406;45.5,1339;45.6,1413;45.7,1439;45.8,1504;45.9,1488;46,1579;46.1,1655;46.2,1643;46.3,1687;46.4,1628;46.5,1725;46.6,1743;46.7,1800;46.8,1831;46.9,1871;47,1870;47.1,1905;47.2,1911;47.3,2007;47.4,2037;47.5,2087;47.6,2133;47.7,2084;47.8,2157;47.9,2195;48,2256;48.1,2190;48.2,2360;48.3,2348;48.4,2260;48.5,2329;48.6,2317;48.7,2340;48.8,2346;48.9,2402;49,2385;49.1,2400;49.2,2419;49.3,2413;49.4,2370;49.5,2468;49.6,2404;49.7,2472;49.8,2405;49.9,2357;50,2423;50.1,2418;50.2,2535;50.3,2503;50.4,2436;50.5,2350;50.6,2484;50.7,2358;50.8,2454;50.9,2286;51,2448;51.1,2422;51.2,2455;51.3,2377;51.4,2305;51.5,2317;51.6,2366;51.7,2329;51.8,2334;51.9,2310;52,2321;52.1,2288;52.2,2250;52.3,2235;52.4,2216;52.5,2221;52.6,2176;52.7,2198;52.8,2123;52.9,2174;53,2219;53.1,2176;53.2,2146;53.3,2113;53.4,2153;53.5,2098;53.6,2093;53.7,2034;53.8,2087;53.9,2081;54,2004;54.1,1998;54.2,1961;54.3,1935;54.4,1895;54.5,1904;54.6,1838;54.7,1843;54.8,1852;54.9,1856;55,1822;55.1,1857;55.2,1766;55.3,1728;55.4,1748;55.5,1777;55.6,1721;55.7,1770;55.8,1669;55.9,1707;56,1685;56.1,1651;56.2,1654;56.3,1652;56.4,1576;56.5,1594;56.6,1566;56.7,1626;56.8,1557;56.9,1592 0,25;47,260;57,260;77,60;197,60 0.2,27.0804882049561;0.4,27.0798873901367;0.6,27.0809726715088;0.8,27.0831527709961;1,27.079402923584;1.2,27.0986099243164;1.4,27.1498222351074;1.6,27.4493923187256;1.8,27.7364311218262;2,28.1406993865967;2.2,29.3179683685303;2.4,30.0697174072266;2.6,30.8972682952881;2.8,32.6637191772461;3,33.5518417358398;3.2,34.4185752868652;3.4,36.0412330627441;3.6,36.7972145080566;3.8,37.5352096557617;4,38.9637413024902;4.2,39.6741523742676;4.4,40.3962631225586;4.6,41.8783111572266;4.8,42.6388664245605;5,43.4063034057617;5.2,44.9716835021973;5.4,45.7557830810547;5.6,46.534740447998;5.8,48.0852394104004;6,48.8538589477539;6.2,49.6121978759766;6.4,51.1420059204102;6.6,51.8980140686035;6.8,52.6662635803223;7,54.2057876586914;7.2,54.9717025756836;7.4,55.7467079162598;7.6,57.299144744873;7.8,58.0755920410156;8,58.8502769470215;8.2,60.3935203552246;8.4,61.1761207580566;8.6,61.9391098022461;8.8,63.4827728271484;9,64.2569732666016;9.2,65.0282821655273;9.4,66.5849609375;9.6,67.3621063232422;9.8,68.1395645141602;10,69.6889266967773;10.2,70.4668197631836;10.4,71.241340637207;10.6,72.7888565063477;10.8,73.569206237793;11,74.3448333740234;11.2,75.892333984375;11.4,76.6711959838867;11.6,77.4519729614258;11.8,79.0002975463867;12,79.7770538330078;12.2,80.5531387329102;12.4,82.1066741943359;12.6,82.8803253173828;12.8,83.6636352539063;13,85.2125549316406;13.2,85.9880065917969;13.4,86.7693023681641;13.6,88.3218078613281;13.8,89.0941390991211;14,89.8683547973633;14.2,91.4216079711914;14.4,92.1995391845703;14.6,92.979362487793;14.8,94.5301284790039;15,95.3131713867188;15.2,96.0798416137695;15.4,97.6346435546875;15.6,98.4167404174805;15.8,99.1912155151367;16,100.738433837891;16.2,101.516716003418;16.4,102.289123535156;16.6,103.838607788086;16.8,104.619148254395;17,105.393913269043;17.2,106.942420959473;17.4,107.717399597168;17.6,108.493896484375;17.8,110.046989440918;18,110.817626953125;18.2,111.597969055176;18.4,113.14608001709;18.6,113.917327880859;18.8,114.693809509277;19,116.238647460938;19.2,117.017677307129;19.4,117.788551330566;19.6,119.33903503418;19.8,120.111328125;20,120.892349243164;20.2,122.442260742188;20.4,123.205062866211;20.6,123.975341796875;20.8,125.522903442383;21,126.289619445801;21.2,127.067794799805;21.4,128.617599487305;21.6,129.396072387695;21.8,130.169692993164;22,131.714385986328;22.2,132.482055664063;22.4,133.251129150391;22.6,134.79736328125;22.8,135.571197509766;23,136.341293334961;23.2,137.880615234375;23.4,138.646469116211;23.6,139.423828125;23.8,140.970932006836;24,141.745162963867;24.2,142.518051147461;24.4,144.061538696289;24.6,144.825424194336;24.8,145.598175048828;25,147.139190673828;25.2,147.901931762695;25.4,148.677780151367;25.6,150.212387084961;25.8,150.982879638672;26,151.75358581543;26.2,153.292510986328;26.4,154.066223144531;26.6,154.832290649414;26.8,156.379409790039;27,157.139953613281;27.2,157.91096496582;27.4,159.454376220703;27.6,160.217498779297;27.8,160.987350463867;28,162.522369384766;28.2,163.289428710938;28.4,164.056579589844;28.6,165.584976196289;28.8,166.359237670898;29,167.126953125;29.2,168.658935546875;29.4,169.438171386719;29.6,170.199920654297;29.8,171.738403320313;30,172.50244140625;30.2,173.267990112305;30.4,174.79801940918;30.6,175.5595703125;30.8,176.326644897461;31,177.857833862305;31.2,178.626693725586;31.4,179.398071289063;31.6,180.936935424805;31.8,181.697387695313;32,182.463363647461;32.2,183.990783691406;32.4,184.752243041992;32.6,185.516082763672;32.8,187.049896240234;33,187.808700561523;33.2,188.581573486328;33.4,190.114852905273;33.6,190.872268676758;33.8,191.641326904297;34,193.167633056641;34.2,193.924880981445;34.4,194.690124511719;34.6,196.223922729492;34.8,196.992218017578;35,197.74934387207;35.2,199.275482177734;35.4,200.034881591797;35.6,200.803588867188;35.8,202.325668334961;36,203.088180541992;36.2,203.857315063477;36.4,205.385589599609;36.6,206.148376464844;36.8,206.910629272461;37,208.424377441406;37.2,209.183807373047;37.4,209.955673217773;37.6,211.479721069336;37.8,212.24462890625;38,213.007949829102;38.2,214.533065795898;38.4,215.2900390625;38.6,216.052368164063;38.8,217.570816040039;39,218.326766967773;39.2,219.090530395508;39.4,220.613418579102;39.6,221.377105712891;39.8,222.141738891602;40,223.659576416016;40.2,224.421234130859;40.4,225.183578491211;40.6,226.702407836914;40.8,227.457229614258;41,228.221450805664;41.2,229.746429443359;41.4,230.503631591797;41.6,231.264053344727;41.8,232.785171508789;42,233.552597045898;42.2,234.305999755859;42.4,235.822235107422;42.6,236.583145141602;42.8,237.334365844727;43,238.853652954102;43.2,239.620758056641;43.4,240.379119873047;43.6,241.898056030273;43.8,242.660369873047;44,243.413619995117;44.2,244.93571472168;44.4,245.695297241211;44.6,246.450881958008;44.8,247.961395263672;45,248.722198486328;45.2,249.476806640625;45.4,250.992065429688;45.6,251.753646850586;45.8,252.515777587891;46,254.033126831055;46.2,254.793487548828;46.4,255.552825927734;46.6,257.073181152344;46.8,257.824768066406;47,258.58056640625;47.2,260.091033935547;47.4,260.847320556641;47.6,261.493530273438;47.8,262.138610839844;48,262.115509033203;48.2,261.912475585938;48.4,261.2255859375;48.6,260.858612060547;48.8,260.529357910156;49,260.125823974609;49.2,260.076873779297;49.4,260.136444091797;49.6,260.468597412109;49.8,260.676849365234;50,260.878051757813;50.2,261.156524658203;50.4,261.207946777344;50.6,261.216674804688;50.8,261.105773925781;51,261.019134521484;51.2,260.9423828125;51.4,260.819061279297;51.6,260.793029785156;51.8,260.791900634766;52,260.858612060547;52.2,260.905822753906;52.4,260.957702636719;52.6,261.050323486328;52.8,261.079284667969;53,261.092193603516;53.2,261.094604492188;53.4,261.093994140625;53.6,261.075714111328;53.8,261.056945800781;54,261.048553466797;54.2,261.042602539063;54.4,261.053253173828;54.6,261.062683105469;54.8,261.072814941406;55,261.088165283203;55.2,261.101715087891;55.4,261.113525390625;55.6,261.12939453125;55.8,261.126953125;56,261.135833740234;56.2,261.135314941406;56.4,261.128875732422;56.6,261.134704589844;56.8,261.128875732422;57,261.12939453125;57.2,261.134704589844;57.4,261.099945068359;57.6,260.892761230469;57.8,260.446807861328;58,259.040069580078;58.2,258.224456787109;58.4,256.755523681641;58.6,253.193466186523;58.8,251.453521728516;59,249.752563476563;59.2,246.430221557617;59.4,244.806564331055;59.6,243.209350585938;59.8,240.094573974609;60,238.556488037109;60.2,237.046081542969;60.4,234.089981079102;60.6,232.649429321289;60.8,231.218368530273;61,228.399658203125;61.2,227.032424926758;61.4,225.676895141602;61.6,223.024215698242;61.8,221.716033935547;62,220.423355102539;62.2,217.906204223633;62.4,216.662475585938;62.6,215.430816650391;62.8,212.999862670898;63,211.818008422852;63.2,210.635437011719;63.4,208.332061767578;63.6,207.189147949219;63.8,206.061294555664;64,203.851501464844;64.2,202.75505065918;64.4,201.680480957031;64.6,199.544631958008;64.8,198.490310668945;65,197.442199707031;65.2,195.382476806641;65.4,194.368988037109;65.6,193.359420776367;65.8,191.373626708984;66,190.388824462891;66.2,189.414733886719;66.4,187.494064331055;66.6,186.543563842773;66.8,185.606567382813;67,183.743392944336;67.2,182.82405090332;67.4,181.912994384766;67.6,180.105880737305;67.8,179.215347290039;68,178.338424682617;68.2,176.585922241211;68.4,175.719039916992;68.6,174.863342285156;68.8,173.159088134766;69,172.325500488281;69.2,171.495529174805;69.4,169.844390869141;69.6,169.031860351563;69.8,168.223068237305;70,166.627349853516;70.2,165.827835083008;70.4,165.044616699219;70.6,163.475372314453;70.8,162.702651977539;71,161.936935424805;71.2,160.411987304688;71.4,159.660614013672;71.6,158.900985717773;71.8,157.422973632813;72,156.683319091797;72.2,155.945175170898;72.4,154.504684448242;72.6,153.785354614258;72.8,153.069152832031;73,151.66162109375;73.2,150.967590332031;73.4,150.26628112793;73.6,148.895736694336;73.8,148.216705322266;74,147.534896850586;74.2,146.172744750977;74.4,145.513717651367;74.6,144.855392456055;74.8,143.533325195313;75,142.88916015625;75.2,142.232864379883;75.4,140.955703735352;75.6,140.318008422852;75.8,139.690628051758;76,138.439239501953;76.2,137.815124511719;76.4,137.202072143555;76.6,135.979049682617;76.8,135.376571655273;77,134.767471313477;77.2,133.564407348633;77.4,132.979965209961;77.6,132.38737487793;77.8,131.223968505859;78,130.640701293945;78.2,130.053131103516;78.4,128.916748046875;78.6,128.349349975586;78.8,127.783264160156;79,126.668235778809;79.2,126.114944458008;79.4,125.563949584961;79.6,124.461952209473;79.8,123.927589416504;80,123.386833190918;80.2,122.321189880371;80.4,121.794692993164;80.6,121.26774597168;80.8,120.214950561523;81,119.701385498047;81.2,119.188995361328;81.4,118.16577911377;81.6,117.657684326172;81.8,117.153617858887;82,116.160949707031;82.2,115.662902832031;82.4,115.173240661621;82.6,114.19718170166;82.8,113.712287902832;83,113.228805541992;83.2,112.279266357422;83.4,111.799919128418;83.6,111.335151672363;83.8,110.401062011719;84,109.93384552002;84.2,109.475608825684;84.4,108.56623840332;84.6,108.111137390137;84.8,107.660675048828;85,106.757667541504;85.2,106.318016052246;85.4,105.877777099609;85.6,105.000068664551;85.8,104.577430725098;86,104.13655090332;86.2,103.279029846191;86.4,102.856719970703;86.6,102.432334899902;86.8,101.588821411133;87,101.180786132813;87.2,100.758453369141;87.4,99.9411315917969;87.6,99.5317993164063;87.8,99.126823425293;88,98.3296432495117;88.2,97.9283752441406;88.4,97.5387878417969;88.6,96.7560195922852;88.8,96.3656845092773;89,95.9857482910156;89.2,95.2189788818359;89.4,94.8394241333008;89.6,94.453857421875;89.8,93.7114715576172;90,93.3393478393555;90.2,92.9710845947266;90.4,92.2304916381836;90.6,91.8669128417969;90.8,91.5017547607422;91,90.786979675293;91.2,90.4297180175781;91.4,90.0780181884766;91.6,89.3754730224609;91.8,89.0322799682617;92,88.686393737793;92.2,87.9870910644531;92.4,87.6550979614258;92.6,87.3139038085938;92.8,86.6430816650391;93,86.3086242675781;93.2,85.9720001220703;93.4,85.3243255615234;93.6,84.9928359985352;93.8,84.6707305908203;94,84.0191116333008;94.2,83.7049789428711;94.4,83.3874282836914;94.6,82.7576904296875;94.8,82.4469833374023;95,82.1352081298828;95.2,81.5245208740234;95.4,81.2173767089844;95.6,80.9107437133789;95.8,80.3119659423828;96,80.0120468139648;96.2,79.7183074951172;96.4,79.1320114135742;96.6,78.8399353027344;96.8,78.5524520874023;97,77.9741058349609;97.2,77.6871719360352;97.4,77.4086151123047;97.6,76.8514633178711;97.8,76.5680618286133;98,76.2945175170898;98.2,75.7460098266602;98.4,75.472038269043;98.6,75.2009201049805;98.8,74.6652297973633;99,74.3968658447266;99.2,74.132453918457;99.4,73.6074829101563;99.6,73.3448486328125;99.8,73.0854263305664;100,72.5733871459961;100.2,72.3168411254883;100.4,72.0712356567383;100.6,71.5643768310547;100.8,71.3123168945313;101,71.0647048950195;101.2,70.5778656005859;101.4,70.3347015380859;101.6,70.0816421508789;101.8,69.6113662719727;102,69.3711090087891;102.2,69.1319580078125;102.4,68.6619338989258;102.6,68.4288482666016;102.8,68.1968841552734;103,67.7358093261719;103.2,67.507698059082;103.4,67.2813034057617;103.6,66.8351745605469;103.8,66.6088256835938;104,66.3952331542969;104.2,65.9519195556641;104.4,65.7383651733398;104.6,65.5165023803711;104.8,65.0887298583984;105,64.876335144043 30.1,2263;30.2,2328;30.3,2229;30.4,2069;30.5,2142;30.6,1923;30.7,1812;30.8,1858;30.9,1698;31,1660;31.1,1584;31.2,1537;31.3,1457;31.4,1388;31.5,1322;31.6,1331;31.7,1260;31.8,1208;31.9,1146;32,1103;32.1,1123;32.2,1033;32.3,1004;32.4,1091;32.5,953;32.6,961;32.7,876;32.8,877;32.9,885;33,859;33.1,775;33.2,796;33.3,731;33.4,735;33.5,740;33.6,733;33.7,710;33.8,681;33.9,670;34,608;34.1,625;34.2,630;34.3,617;34.4,584;34.5,567;34.6,530;34.7,570;34.8,553;34.9,476;35,503;35.1,517;35.2,513;35.3,472;35.4,470;35.5,477;35.6,418;35.7,491;35.8,461;35.9,435;36,404;36.1,424;36.2,391;36.3,423;36.4,410;36.5,426;36.6,389;36.7,358;36.8,372;36.9,354;37,406;37.1,366;37.2,374;37.3,358;37.4,338;37.5,365;37.6,355;37.7,372;37.8,379;37.9,358;38,338;38.1,363;38.2,371;38.3,369;38.4,323;38.5,324;38.6,321;38.7,360;38.8,321;38.9,297;39,295;39.1,336;39.2,293;39.3,283;39.4,301;39.5,304;39.6,287;39.7,295;39.8,298;39.9,332;40,305;40.1,284;40.2,319;40.3,292;40.4,274;40.5,289;40.6,286;40.7,254;40.8,288;40.9,258;41,271;41.1,285;41.2,283;41.3,299;41.4,283;41.5,316;41.6,266;41.7,286;41.8,282;41.9,292;42,269;42.1,269;42.2,277;42.3,288;42.4,312;42.5,247;42.6,260;42.7,273;42.8,265;42.9,256;43,272;43.1,259;43.2,231;43.3,287;43.4,268;43.5,247;43.6,267;43.7,258;43.8,257;43.9,279;44,277;44.1,278;44.2,283;44.3,267;44.4,249;44.5,247;44.6,253;44.7,256;44.8,256;44.9,281;45,246;45.1,232;45.2,221;45.3,263;45.4,233;45.5,251;45.6,282;45.7,257;45.8,245;45.9,228;46,263;46.1,240;46.2,263;46.3,236;46.4,269;46.5,261;46.6,252;46.7,251;46.8,224;46.9,210;47,251;47.1,252;47.2,250;47.3,255;47.4,254;47.5,228;47.6,241;47.7,266;47.8,264;47.9,257;48,237;48.1,222;48.2,243;48.3,248;48.4,221;48.5,263;48.6,233;48.7,239;48.8,252;48.9,232;49,250;49.1,235;49.2,230;49.3,236;49.4,255;49.5,248;49.6,212;49.7,234;49.8,238;49.9,265;50,256;50.1,245;50.2,241;50.3,237;50.4,244;50.5,242;50.6,228;50.7,225;50.8,214;50.9,240;51,248;51.1,255;51.2,231;51.3,202;51.4,235;51.5,220;51.6,239;51.7,253;51.8,281;51.9,247;52,215;52.1,230;52.2,214;52.3,254;52.4,220;52.5,256;52.6,259;52.7,246;52.8,234;52.9,218;53,204;53.1,233;53.2,227;53.3,236;53.4,229;53.5,225;53.6,222;53.7,236;53.8,247;53.9,228;54,234;54.1,256;54.2,265;54.3,240;54.4,240;54.5,230;54.6,240;54.7,236;54.8,229;54.9,200;55,219;55.1,220;55.2,221;55.3,212;55.4,224;55.5,235;55.6,220;55.7,242;55.8,247;55.9,222;56,228;56.1,239;56.2,226;56.3,213;56.4,218;56.5,247;56.6,236;56.7,227;56.8,235;56.9,238;57,192;57.1,247;57.2,228;57.3,220;57.4,243;57.5,225;57.6,226;57.7,235;57.8,200;57.9,237;58,200;58.1,223;58.2,227;58.3,214;58.4,193;58.5,221;58.6,225;58.7,226;58.8,238;58.9,267;59,236;59.1,233;59.2,222;59.3,210;59.4,226;59.5,209;59.6,220;59.7,215;59.8,239;59.9,224;60,259;60.1,236;60.2,240;60.3,226;60.4,237;60.5,213;60.6,218;60.7,234;60.8,220;60.9,219;61,201;61.1,235;61.2,196;61.3,202;61.4,216;61.5,198;61.6,229;61.7,249;61.8,211;61.9,225;62,224;62.1,204;62.2,214;62.3,213;62.4,209;62.5,201;62.6,212;62.7,219;62.8,216;62.9,191;63,245;63.1,209;63.2,244;63.3,229;63.4,224;63.5,211;63.6,226;63.7,227;63.8,221;63.9,228;64,229;64.1,242;64.2,218;64.3,198;64.4,207;64.5,216;64.6,209;64.7,239;64.8,241;64.9,220;65,196;65.1,211;65.2,239;65.3,226;65.4,219;65.5,238;65.6,226;65.7,246;65.8,231;65.9,253;66,220;66.1,209;66.2,206;66.3,209;66.4,215;66.5,220;66.6,220;66.7,216;66.8,242;66.9,211;67,224;67.1,232;67.2,226;67.3,239;67.4,232;67.5,222;67.6,238;67.7,235;67.8,218;67.9,226;68,223;68.1,196;68.2,223;68.3,225;68.4,237;68.5,236;68.6,215;68.7,203;68.8,229;68.9,223;69,214;69.1,213;69.2,207;69.3,229;69.4,222;69.5,210;69.6,226;69.7,224;69.8,222;69.9,241;70,228;70.1,220;70.2,224;70.3,226;70.4,229;70.5,213;70.6,207;70.7,236;70.8,218;70.9,213;71,206;71.1,212;71.2,219;71.3,213;71.4,215;71.5,207;71.6,231;71.7,201;71.8,238;71.9,213;72,232;72.1,223;72.2,242;72.3,185;72.4,229;72.5,212;72.6,228;72.7,183;72.8,216;72.9,224;73,200;73.1,229;73.2,193;73.3,233;73.4,206;73.5,218;73.6,194;73.7,217;73.8,226;73.9,214;74,198;74.1,228;74.2,226;74.3,227;74.4,217;74.5,230;74.6,212;74.7,222;74.8,230;74.9,218;75,205;75.1,239;75.2,201;75.3,218;75.4,215;75.5,208;75.6,198;75.7,208;75.8,233;75.9,199;76,231;76.1,226;76.2,191;76.3,219;76.4,193;76.5,223;76.6,216;76.7,236;76.8,230;76.9,217;77,223;77.1,211;77.2,247;77.3,204;77.4,232;77.5,260;77.6,237;77.7,219;77.8,215;77.9,225;78,224;78.1,225;78.2,226;78.3,228;78.4,243;78.5,235;78.6,190;78.7,221;78.8,191;78.9,237;79,191;79.1,229;79.2,213;79.3,214;79.4,213;79.5,245;79.6,218;79.7,245;79.8,220;79.9,214;80,222;80.1,201;80.2,231;80.3,243;80.4,230;80.5,205;80.6,245;80.7,220;80.8,215;80.9,220;81,209;81.1,242;81.2,240;81.3,212;81.4,196;81.5,212;81.6,221;81.7,202;81.8,247;81.9,211;82,237;82.1,212;82.2,208;82.3,211;82.4,219;82.5,205;82.6,223;82.7,224;82.8,209;82.9,218;83,223;83.1,228;83.2,250;83.3,228;83.4,211;83.5,210;83.6,216;83.7,183;83.8,219;83.9,203;84,205;84.1,210;84.2,191;84.3,206;84.4,197;84.5,212;84.6,242;84.7,211;84.8,218;84.9,223;85,209;85.1,209;85.2,200;85.3,190;85.4,234;85.5,200;85.6,198;85.7,227;85.8,202;85.9,229;86,213;86.1,248;86.2,219;86.3,213;86.4,213;86.5,197;86.6,221;86.7,223;86.8,220;86.9,216;87,207;87.1,230;87.2,200;87.3,232;87.4,208;87.5,222;87.6,170;87.7,231;87.8,202;87.9,225;88,238;88.1,213;88.2,192;88.3,212;88.4,206;88.5,225;88.6,202;88.7,247;88.8,204;88.9,206;89,189;89.1,224;89.2,217;89.3,227;89.4,222;89.5,214;89.6,196;89.7,250;89.8,214;89.9,216;90,214;90.1,231;90.2,206;90.3,223;90.4,221;90.5,200;90.6,200;90.7,243;90.8,199;90.9,215;91,218;91.1,187;91.2,200;91.3,244;91.4,213;91.5,213;91.6,201;91.7,203;91.8,195;91.9,224;92,222;92.1,197;92.2,228;92.3,220;92.4,210;92.5,185;92.6,202;92.7,188;92.8,233;92.9,220;93,204;93.1,237;93.2,241;93.3,225;93.4,233;93.5,223;93.6,220;93.7,212;93.8,196;93.9,228;94,198;94.1,191;94.2,189;94.3,184;94.4,224;94.5,218;94.6,224;94.7,198;94.8,216;94.9,193;95,204;95.1,223;95.2,197;95.3,223;95.4,186;95.5,205;95.6,221;95.7,240;95.8,173;95.9,240;96,230;96.1,201;96.2,219;96.3,234;96.4,222;96.5,235;96.6,221;96.7,214;96.8,207;96.9,196;97,206;97.1,202;97.2,200;97.3,194;97.4,195;97.5,232;97.6,207;97.7,224;97.8,226;97.9,221;98,198;98.1,209;98.2,217;98.3,192;98.4,198;98.5,198;98.6,214;98.7,208;98.8,215;98.9,201;99,219;99.1,216;99.2,211;99.3,215;99.4,207;99.5,212;99.6,255;99.7,223;99.8,220;99.9,228;100,226;100.1,228;100.2,183;100.3,204;100.4,222;100.5,216;100.6,207;100.7,228;100.8,231;100.9,213;101,217;101.1,199;101.2,206;101.3,231;101.4,208;101.5,210;101.6,197;101.7,225;101.8,197;101.9,219;102,212;102.1,223;102.2,212;102.3,219;102.4,218;102.5,210;102.6,203;102.7,215;102.8,217;102.9,217;103,224;103.1,227;103.2,210;103.3,202;103.4,240;103.5,208;103.6,206;103.7,237;103.8,217;103.9,219;104,216;104.1,216;104.2,210;104.3,229;104.4,201;104.5,216;104.6,212;104.7,200;104.8,191;104.9,203;105,201;105.1,193;105.2,214;105.3,208;105.4,217;105.5,191;105.6,205;105.7,230;105.8,201;105.9,205;106,204;106.1,233;106.2,202;106.3,230;106.4,215;106.5,206;106.6,232;106.7,214;106.8,196;106.9,200;107,238;107.1,184;107.2,225;107.3,221;107.4,198;107.5,191;107.6,225;107.7,218;107.8,222;107.9,237;108,226;108.1,199;108.2,206;108.3,207;108.4,210;108.5,194;108.6,203;108.7,206;108.8,187;108.9,201;109,238;109.1,210;109.2,215;109.3,179;109.4,223;109.5,198;109.6,204;109.7,230;109.8,214;109.9,205;110,201;110.1,200;110.2,214;110.3,225;110.4,206;110.5,217;110.6,199;110.7,210;110.8,205;110.9,190;111,219;111.1,213;111.2,183;111.3,224;111.4,195;111.5,191;111.6,207;111.7,197;111.8,195;111.9,214;112,198;112.1,232;112.2,232;112.3,215;112.4,219;112.5,217;112.6,214;112.7,194;112.8,194;112.9,207;113,208;113.1,202;113.2,206;113.3,200;113.4,216;113.5,219;113.6,214;113.7,193;113.8,229;113.9,205;114,176;114.1,183;114.2,199;114.3,219;114.4,210;114.5,209;114.6,216;114.7,210;114.8,212;114.9,219;115,212;115.1,193;115.2,178;115.3,231;115.4,182;115.5,200;115.6,207;115.7,182;115.8,206;115.9,214;116,201;116.1,186;116.2,195;116.3,231;116.4,217;116.5,219;116.6,204;116.7,210;116.8,211;116.9,219;117,215;117.1,214;117.2,215;117.3,215;117.4,205;117.5,173;117.6,198;117.7,202;117.8,224;117.9,215;118,212;118.1,211;118.2,212;118.3,215;118.4,235;118.5,227;118.6,204;118.7,220;118.8,235;118.9,203;119,198;119.1,199;119.2,209;119.3,216;119.4,193;119.5,204;119.6,221;119.7,226;119.8,218;119.9,197;120,215;120.1,191;120.2,212;120.3,180;120.4,233;120.5,202;120.6,210;120.7,206;120.8,220;120.9,197;121,202;121.1,197;121.2,225;121.3,220;121.4,190;121.5,181;121.6,216;121.7,185;121.8,231;121.9,202;122,228;122.1,218;122.2,198;122.3,180;122.4,208;122.5,200;122.6,218;122.7,207;122.8,213;122.9,201;123,182;123.1,189;123.2,219;123.3,208;123.4,229;123.5,190;123.6,209;123.7,227;123.8,208;123.9,217;124,232;124.1,205;124.2,201;124.3,216;124.4,230;124.5,192;124.6,224;124.7,185;124.8,204;124.9,209;125,208;125.1,216;125.2,210;125.3,217;125.4,226;125.5,207;125.6,209;125.7,215;125.8,202;125.9,215;126,215;126.1,228;126.2,234;126.3,215;126.4,182;126.5,237;126.6,217;126.7,194;126.8,180;126.9,198;127,217;127.1,187;127.2,221;127.3,238;127.4,225;127.5,210;127.6,188;127.7,192;127.8,210;127.9,216;128,201;128.1,197;128.2,198;128.3,205;128.4,215;128.5,235;128.6,224;128.7,217;128.8,197;128.9,195;129,208;129.1,187;129.2,197;129.3,209;129.4,181;129.5,234;129.6,201;129.7,223;129.8,222;129.9,209 0,25;20,125;130,125;136,60;256,60 0.2,39.7064247131348;0.4,39.6876220703125;0.6,39.6655387878418;0.8,39.6451530456543;1,39.6338691711426;1.2,39.6161575317383;1.4,39.5904350280762;1.6,39.5738143920898;1.8,39.556583404541;2,39.5318374633789;2.2,39.5103645324707;2.4,39.5028419494629;2.6,39.4786987304688;2.8,39.4873123168945;3,39.5404472351074;3.2,39.8584518432617;3.4,40.1625366210938;3.6,40.5810928344727;3.8,41.7658767700195;4,42.4898452758789;4.2,43.2938079833984;4.4,44.9959945678711;4.6,45.8377342224121;4.8,46.6636543273926;5,48.2162895202637;5.2,48.9440460205078;5.4,49.6450691223145;5.6,51.017650604248;5.8,51.7064933776855;6,52.3967132568359;6.2,53.8201637268066;6.4,54.5556182861328;6.6,55.2924613952637;6.8,56.7957305908203;7,57.5503349304199;7.2,58.3024253845215;7.4,59.8001937866211;7.6,60.5326728820801;7.8,61.2675323486328;8,62.737133026123;8.2,63.4740943908691;8.4,64.2151336669922;8.6,65.7017669677734;8.8,66.450798034668;9,67.1968231201172;9.2,68.6919555664063;9.4,69.4382476806641;9.6,70.182746887207;9.8,71.6857528686523;10,72.4256057739258;10.2,73.1812210083008;10.4,74.6761474609375;10.6,75.4326400756836;10.8,76.1799697875977;11,77.6811447143555;11.2,78.4361114501953;11.4,79.1841201782227;11.6,80.6909408569336;11.8,81.4454574584961;12,82.1952209472656;12.2,83.6999206542969;12.4,84.4549942016602;12.6,85.2054138183594;12.8,86.7225036621094;13,87.469841003418;13.2,88.2296524047852;13.4,89.7452239990234;13.6,90.4993591308594;13.8,91.2458877563477;14,92.75830078125;14.2,93.5157852172852;14.4,94.2712097167969;14.6,95.7909240722656;14.8,96.5478134155273;15,97.3038635253906;15.2,98.8213806152344;15.4,99.567756652832;15.6,100.331108093262;15.8,101.834899902344;16,102.600677490234;16.2,103.362907409668;16.4,104.876678466797;16.6,105.636390686035;16.8,106.397003173828;17,107.916793823242;17.2,108.66707611084;17.4,109.427169799805;17.6,110.941955566406;17.8,111.700622558594;18,112.455581665039;18.2,113.973770141602;18.4,114.73511505127;18.6,115.495742797852;18.8,117.019912719727;19,117.777381896973;19.2,118.536209106445;19.4,120.050338745117;19.6,120.807106018066;19.8,121.569854736328;20,123.083839416504;20.2,123.846885681152;20.4,124.608947753906;20.6,125.848709106445;20.8,126.18286895752;21,126.311019897461;21.2,126.139694213867;21.4,125.937522888184;21.6,125.715599060059;21.8,125.316909790039;22,125.183181762695;22.2,125.107444763184;22.4,125.087791442871;22.6,125.146751403809;22.8,125.22200012207;23,125.394401550293;23.2,125.47688293457;23.4,125.541557312012;23.6,125.628517150879;23.8,125.649917602539;24,125.65998840332;24.2,125.668441772461;24.4,125.65998840332;24.6,125.666709899902;24.8,125.675788879395;25,125.686981201172;25.2,125.700416564941;25.4,125.73127746582;25.6,125.748191833496;25.8,125.767845153809;26,125.802673339844;26.2,125.81275177002;26.4,125.83464050293;26.6,125.861022949219;26.8,125.871726989746;27,125.884658813477;27.2,125.902076721191;27.4,125.914886474609;27.6,125.920608520508;27.8,125.945373535156;28,125.946487426758;28.2,125.964401245117;28.4,125.975601196289;28.6,125.986801147461;28.8,125.995880126953;29,126.010437011719;29.2,126.0205078125;29.4,126.028350830078;29.6,126.042419433594;29.8,126.052612304688;30,126.057586669922;30.2,126.069396972656;30.4,126.080101013184;30.6,126.082344055176;30.8,126.086822509766;31,126.097511291504;31.2,126.106483459473;31.4,126.116058349609;31.6,126.115432739258;31.8,126.126136779785;32,126.133979797363;32.2,126.135215759277;32.4,126.139068603516;32.6,126.144668579102;32.8,126.146911621094;33,126.155990600586;33.2,126.160980224609;33.4,126.155990600586;33.6,126.168312072754;33.8,126.173408508301;34,126.17391204834;34.2,126.177276611328;34.4,126.17552947998;34.6,126.177276611328;34.8,126.183486938477;35,126.185722351074;35.2,126.189582824707;35.4,126.190208435059;35.6,126.196426391602;35.8,126.195808410645;36,126.187973022461;36.2,126.183486938477;36.4,126.185104370117;36.6,126.18684387207;36.8,126.183990478516;37,126.189582824707;37.2,126.183486938477;37.4,126.189094543457;37.6,126.190826416016;37.8,126.188461303711;38,126.187339782715;38.2,126.194068908691;38.4,126.181747436523;38.6,126.180122375488;38.8,126.180625915527;39,126.173408508301;39.2,126.17839050293;39.4,126.17391204834;39.6,126.171051025391;39.8,126.16943359375;40,126.16495513916;40.2,126.16047668457;40.4,126.15648651123;40.6,126.15648651123;40.8,126.15648651123;41,126.153625488281;41.2,126.15251159668;41.4,126.151390075684;41.6,126.145301818848;41.8,126.137954711914;42,126.131851196289;42.2,126.13346862793;42.4,126.129005432129;42.6,126.127891540527;42.8,126.119422912598;43,126.113319396973;43.2,126.112075805664;43.4,126.105361938477;43.6,126.101997375488;43.8,126.103622436523;44,126.093536376953;44.2,126.08967590332;44.4,126.087440490723;44.6,126.081230163574;44.8,126.072265625;45,126.073883056641;45.2,126.063804626465;45.4,126.056587219238;45.6,126.055961608887;45.8,126.051986694336;46,126.047004699707;46.2,126.044769287109;46.4,126.038558959961;46.6,126.032455444336;46.8,126.028350830078;47,126.020027160645;47.2,126.017272949219;47.4,126.017768859863;47.6,126.009323120117;47.8,126.00658416748;48,125.997001647949;48.2,125.992515563965;48.4,125.98518371582;48.6,125.97908782959;48.8,125.971618652344;49,125.974479675293;49.2,125.96216583252;49.4,125.955940246582;49.6,125.95482635498;49.8,125.957061767578;50,125.948112487793;50.2,125.939643859863;50.4,125.936904907227;50.6,125.927963256836;50.8,125.919990539551;51,125.917259216309;51.2,125.906555175781;51.4,125.908790588379;51.6,125.901458740234;51.8,125.891998291016;52,125.891372680664;52.2,125.885284423828;52.4,125.877319335938;52.6,125.873458862305;52.8,125.869483947754;53,125.86164855957;53.2,125.854927062988;53.4,125.849822998047;53.6,125.843109130859;53.8,125.840873718262;54,125.83576965332;54.2,125.829048156738;54.4,125.823455810547;54.6,125.816101074219;54.8,125.813369750977;55,125.804916381836;55.2,125.802673339844;55.4,125.798202514648;55.6,125.789115905762;55.8,125.784141540527;56,125.779663085938;56.2,125.77742767334;56.4,125.77294921875;56.6,125.755523681641;56.8,125.758758544922;57,125.751541137695;57.2,125.74259185791;57.4,125.744201660156;57.6,125.731887817383;57.8,125.731887817383;58,125.734634399414;58.2,125.727905273438;58.4,125.714477539063;58.6,125.712242126465;58.8,125.707138061523;59,125.70092010498;59.2,125.696563720703;59.4,125.694816589355;59.6,125.680267333984;59.8,125.678031921387;60,125.678031921387;60.2,125.671188354492;60.4,125.665588378906;60.6,125.665588378906;60.8,125.651519775391;61,125.647674560547;61.2,125.645927429199;61.4,125.635231018066;61.6,125.627395629883;61.8,125.627395629883;62,125.626281738281;62.2,125.624664306641;62.4,125.620185852051;62.6,125.606628417969;62.8,125.602638244629;63,125.606628417969;63.2,125.594306945801;63.4,125.588706970215;63.6,125.58423614502;63.8,125.582489013672;64,125.579132080078;64.2,125.583602905273;64.4,125.571296691895;64.6,125.563331604004;64.8,125.560592651367;65,125.557235717773;65.2,125.548774719238;65.4,125.545913696289;65.6,125.542678833008;65.8,125.539825439453;66,125.530853271484;66.2,125.527503967285;66.4,125.521789550781;66.6,125.52352142334;66.8,125.518424987793;67,125.51456451416;67.2,125.508964538574;67.4,125.503868103027;67.6,125.496658325195;67.8,125.500511169434;68,125.497650146484;68.2,125.483093261719;68.4,125.483093261719;68.6,125.476379394531;68.8,125.47688293457;69,125.47127532959;69.2,125.462326049805;69.4,125.465682983398;69.6,125.467926025391;69.8,125.455604553223;70,125.454986572266;70.2,125.450004577637;70.4,125.447769165039;70.6,125.438194274902;70.8,125.43147277832;71,125.430847167969;71.2,125.429229736328;71.4,125.424125671387;71.6,125.417419433594;71.8,125.42015838623;72,125.41854095459;72.2,125.414558410645;72.4,125.401741027832;72.6,125.407341003418;72.8,125.398384094238;73,125.394401550293;73.2,125.396026611328;73.4,125.390419006348;73.6,125.391052246094;73.8,125.380348205566;74,125.376365661621;74.2,125.375862121582;74.4,125.371887207031;74.6,125.371887207031;74.8,125.36629486084;75,125.370269775391;75.2,125.358955383301;75.4,125.356216430664;75.6,125.351119995117;75.8,125.351737976074;76,125.342651367188;76.2,125.345024108887;76.4,125.34440612793;76.6,125.340545654297;76.8,125.334815979004;77,125.329216003418;77.2,125.330963134766;77.4,125.324119567871;77.6,125.322006225586;77.8,125.323623657227;78,125.318023681641;78.2,125.314170837402;78.4,125.309074401855;78.6,125.309074401855;78.8,125.306205749512;79,125.30509185791;79.2,125.30347442627;79.4,125.293266296387;79.6,125.297752380371;79.8,125.292785644531;80,125.2900390625;80.2,125.286552429199;80.4,125.282585144043;80.6,125.284942626953;80.8,125.278228759766;81,125.274238586426;81.2,125.269760131836;81.4,125.27075958252;81.6,125.263046264648;81.8,125.266906738281;82,125.260810852051;82.2,125.265289306641;82.4,125.26180267334;82.6,125.260810852051;82.8,125.251724243164;83,125.257942199707;83.2,125.24340057373;83.4,125.249488830566;83.6,125.247253417969;83.8,125.24227142334;84,125.241653442383;84.2,125.237174987793;84.4,125.237174987793;84.6,125.236549377441;84.8,125.228713989258;85,125.229965209961;85.2,125.229347229004;85.4,125.221382141113;85.6,125.22200012207;85.8,125.219261169434;86,125.212417602539;86.2,125.221382141113;86.4,125.215278625488;86.6,125.215278625488;86.8,125.210678100586;87,125.209060668945;87.2,125.205207824707;87.4,125.200736999512;87.6,125.201225280762;87.8,125.205841064453;88,125.206321716309;88.2,125.196754455566;88.4,125.192764282227;88.6,125.191650390625;88.8,125.188911437988;89,125.186050415039;89.2,125.186553955078;89.4,125.185554504395;89.6,125.184936523438;89.8,125.181579589844;90,125.187797546387;90.2,125.179832458496;90.4,125.17374420166;90.6,125.17423248291;90.8,125.171997070313;91,125.169761657715;91.2,125.166397094727;91.4,125.164161682129;91.6,125.167526245117;91.8,125.163047790527;92,125.165908813477;92.2,125.158073425293;92.4,125.163047790527;92.6,125.165283203125;92.8,125.160804748535;93,125.158561706543;93.2,125.154586791992;93.4,125.153465270996;93.6,125.15682220459;93.8,125.154586791992;94,125.146751403809;94.2,125.147369384766;94.4,125.141151428223;94.6,125.14338684082;94.8,125.144020080566;95,125.140029907227;95.2,125.13493347168;95.4,125.141151428223;95.6,125.138916015625;95.8,125.138290405273;96,125.136672973633;96.2,125.133316040039;96.4,125.133316040039;96.6,125.12996673584;96.8,125.12996673584;97,125.129333496094;97.2,125.131080627441;97.4,125.12996673584;97.6,125.124855041504;97.8,125.12149810791;98,125.117515563965;98.2,125.12149810791;98.4,125.117515563965;98.6,125.119262695313;98.8,125.115905761719;99,125.118141174316;99.2,125.115409851074;99.4,125.109680175781;99.6,125.118644714355;99.8,125.110801696777;100,125.111923217773;100.2,125.112548828125;100.4,125.105827331543;100.6,125.106941223145;100.8,125.109680175781;101,125.101348876953;101.2,125.098991394043;101.4,125.100723266602;101.6,125.098991394043;101.8,125.098991394043;102,125.09561920166;102.2,125.092887878418;102.4,125.096252441406;102.6,125.104705810547;102.8,125.096870422363;103,125.096252441406;103.2,125.088287353516;103.4,125.092399597168;103.6,125.09065246582;103.8,125.09065246582;104,125.096252441406;104.2,125.090034484863;104.4,125.094017028809;104.6,125.084434509277;104.8,125.084434509277;105,125.081703186035;105.2,125.08219909668;105.4,125.08219909668;105.6,125.083320617676;105.8,125.077713012695;106,125.077713012695;106.2,125.085556030273;106.4,125.080581665039;106.6,125.08219909668;106.8,125.081085205078;107,125.077713012695;107.2,125.08381652832;107.4,125.078826904297;107.6,125.073860168457;107.8,125.077224731445;108,125.070999145508;108.2,125.070381164551;108.4,125.072120666504;108.6,125.069877624512;108.8,125.075981140137;109,125.070381164551;109.2,125.072120666504;109.4,125.064155578613;109.6,125.068145751953;109.8,125.072120666504;110,125.068145751953;110.2,125.061424255371;110.4,125.063659667969;110.6,125.067024230957;110.8,125.067024230957;111,125.068145751953;111.2,125.057441711426;111.4,125.061424255371;111.6,125.056945800781;111.8,125.062049865723;112,125.064155578613;112.2,125.062049865723;112.4,125.050231933594;112.6,125.054206848145;112.8,125.056945800781;113,125.062538146973;113.2,125.058067321777;113.4,125.057441711426;113.6,125.05135345459;113.8,125.050727844238;114,125.050231933594;114.2,125.056449890137;114.4,125.055824279785;114.6,125.052467346191;114.8,125.050231933594;115,125.053588867188;115.2,125.046875;115.4,125.048492431641;115.6,125.047370910645;115.8,125.047988891602;116,125.047370910645;116.2,125.050727844238;116.4,125.048492431641;116.6,125.05135345459;116.8,125.047988891602;117,125.047988891602;117.2,125.04288482666;117.4,125.047988891602;117.6,125.047988891602;117.8,125.045753479004;118,125.045127868652;118.2,125.044013977051;118.4,125.047370910645;118.6,125.046875;118.8,125.040649414063;119,125.040649414063;119.2,125.038414001465;119.4,125.034439086914;119.6,125.045127868652;119.8,125.03678894043;120,125.03678894043;120.2,125.045127868652;120.4,125.044639587402;120.6,125.041282653809;120.8,125.036178588867;121,125.037300109863;121.2,125.033317565918;121.4,125.038414001465;121.6,125.041282653809;121.8,125.033935546875;122,125.035057067871;122.2,125.031700134277;122.4,125.035057067871;122.6,125.03231048584;122.8,125.033317565918;123,125.034439086914;123.2,125.03231048584;123.4,125.033935546875;123.6,125.034439086914;123.8,125.03231048584;124,125.03108215332;124.2,125.03231048584;124.4,125.033317565918;124.6,125.02995300293;124.8,125.025482177734;125,125.026596069336;125.2,125.032821655273;125.4,125.033317565918;125.6,125.034439086914;125.8,125.034439086914;126,125.031700134277;126.2,125.03231048584;126.4,125.027221679688;126.6,125.027221679688;126.8,125.027717590332;127,125.027717590332;127.2,125.027717590332;127.4,125.027221679688;127.6,125.027717590332;127.8,125.033317565918;128,125.024971008301;128.2,125.025482177734;128.4,125.022735595703;128.6,125.027717590332;128.8,125.021614074707;129,125.022735595703;129.2,125.028831481934;129.4,125.021614074707;129.6,125.020500183105;129.8,125.024360656738;130,125.025482177734;130.2,125.022735595703;130.4,125.004089355469;130.6,124.89525604248;130.8,124.68692779541;131,123.83283996582;131.2,123.110824584961;131.4,122.418769836426;131.6,121.063827514648;131.8,120.399826049805;132,119.754051208496;132.2,118.476852416992;132.4,117.854606628418;132.6,117.242012023926;132.8,116.039070129395;133,115.444869995117;133.2,114.852989196777;133.4,113.699516296387;133.6,113.127235412598;133.8,112.569427490234;134,111.464576721191;134.2,110.918518066406;134.4,110.387062072754;134.6,109.325691223145;134.8,108.798645019531;135,108.279472351074;135.2,107.25471496582;135.4,106.753219604492;135.6,106.261192321777;135.8,105.272605895996;136,104.787696838379;136.2,104.310028076172;136.4,103.357948303223;136.6,102.894561767578;136.8,102.429130554199;137,101.502754211426;137.2,101.049858093262;137.4,100.608001708984;137.6,99.7148361206055;137.8,99.2816696166992;138,98.8530120849609;138.2,97.9905242919922;138.4,97.5648574829102;138.6,97.1460189819336;138.8,96.3052978515625;139,95.8938980102539;139.2,95.4903182983398;139.4,94.6834182739258;139.6,94.2828063964844;139.8,93.8863220214844;140,93.1000137329102;140.2,92.7063598632813;140.4,92.3200378417969;140.6,91.5559005737305;140.8,91.1714248657227;141,90.799186706543;141.2,90.0549697875977;141.4,89.6922225952148;141.6,89.3213882446289;141.8,88.6113586425781;142,88.236930847168;142.2,87.8806381225586;142.4,87.183723449707;142.6,86.8316192626953;142.8,86.4849624633789;143,85.8002471923828;143.2,85.4559173583984;143.4,85.1123580932617;143.6,84.450065612793;143.8,84.1181640625;144,83.7869110107422;144.2,83.1300582885742;144.4,82.8115692138672;144.6,82.4926223754883;144.8,81.8487930297852;145,81.5360794067383;145.2,81.2262268066406;145.4,80.6058731079102;145.6,80.2954788208008;145.8,79.9846343994141;146,79.3774032592773;146.2,79.0820083618164;146.4,78.7862548828125;146.6,78.1936187744141;146.8,77.8962249755859;147,77.6039047241211;147.2,77.033561706543;147.4,76.7408294677734;147.6,76.4579238891602;147.8,75.8883972167969;148,75.6101303100586;148.2,75.3323593139648;148.4,74.7714996337891;148.6,74.511344909668;148.8,74.2376022338867;149,73.6994934082031;149.2,73.4362335205078;149.4,73.1712799072266;149.6,72.6494216918945;149.8,72.3851470947266;150,72.1308212280273;150.2,71.6179504394531;150.4,71.3582916259766;150.6,71.1051483154297;150.8,70.6094741821289;151,70.3647232055664;151.2,70.1111755371094;151.4,69.6239852905273;151.6,69.3836059570313;151.8,69.1390609741211;152,68.6608428955078;152.2,68.4239501953125;152.4,68.1924743652344;152.6,67.7189178466797;152.8,67.4912872314453;153,67.2590103149414;153.2,66.7975921630859;153.4,66.5767669677734;153.6,66.3493270874023;153.8,65.9007568359375;154,65.6810913085938;154.2,65.4614410400391;154.4,65.0216827392578;154.6,64.8125991821289 0,50;100,50 0.012,47.8;0.512,48.9;1.012,50.1;1.512,50;2.012,50;2.512,50;3.012,50;3.512,50;4.012,50.1;4.512,50;5.012,50;5.512,50;6.012,50;6.512,50;7.012,50;7.512,50;8.012,50;8.512,50;9.012,50;9.512,49.9;10.012,50;10.512,49.9;11.012,49.9;11.512,50;12.012,50.1;12.512,50;13.012,49.9;13.512,49.9;14.012,49.9;14.512,50;15.012,50;15.512,49.9;16.012,50;16.512,50;17.012,49.9;17.512,49.8;18.012,49.9;18.512,49.9;19.012,50;19.512,50;20.012,50.1;20.512,50;21.012,50;21.512,50;22.012,50.1;22.512,50;23.012,49.9;23.512,50;24.012,50;24.512,50.1;25.012,50;25.512,50;26.012,50;26.512,50;27.012,50;27.512,49.9;28.012,49.8;28.512,49.9;29.012,50;29.512,50;30.012,49.9;30.512,49.9;31.012,50;31.512,50;32.012,50;32.512,50.1;33.012,50;33.512,49.9;34.012,49.9;34.512,50;35.012,49.9;35.512,49.9;36.012,50.1;36.512,50;37.012,49.9;37.512,49.9;38.012,49.9;38.512,49.9;39.012,49.9;39.512,50;40.012,50;40.512,50;41.012,49.9;41.512,50;42.012,50.1;42.512,50;43.012,50;43.512,50.1;44.012,50.1;44.512,50;45.012,49.9;45.512,49.9;46.012,50;46.512,50;47.012,50.1;47.512,50;48.012,49.9;48.512,50;49.012,50;49.512,50;50.012,50;50.512,50;51.012,50;51.512,50;52.012,50;52.512,50.1;53.012,50.2;53.512,50.1;54.012,50.1;54.512,50;55.012,49.9;55.512,49.9;56.012,49.9;56.512,49.9;57.012,49.9;57.512,50;58.012,50;58.512,50.1;59.012,50;59.512,50;60.012,50;60.512,50;61.012,50;61.512,50.1;62.012,50.1;62.512,50;63.012,50;63.512,49.9;64.012,49.8;64.512,49.9;65.012,50;65.512,50;66.012,50.1;66.512,50.1;67.012,50.1;67.512,49.9;68.012,50;68.512,50;69.012,49.9;69.512,49.9;70.012,50;70.512,50.1;71.012,50.1;71.512,50.2;72.012,50.1;72.512,50;73.012,50;73.512,50;74.012,50;74.512,50;75.012,49.9;75.512,50;76.012,50;76.512,50;77.012,50;77.512,50.1;78.012,50;78.512,50;79.012,50.1;79.512,50;80.012,50;80.512,50;81.012,50;81.512,50;82.012,50;82.512,50.1;83.012,50;83.512,50;84.012,50.1;84.512,50;85.012,49.9;85.512,49.8;86.012,49.9;86.512,50;87.012,50.1;87.512,50.1;88.012,50;88.512,50;89.012,50.1;89.512,50;90.012,49.9;90.512,50;91.012,50;91.512,50;92.012,50.1;92.512,50;93.012,49.9;93.512,49.9;94.012,49.9;94.512,50;95.012,50;95.512,49.9;96.012,50;96.512,50.1;97.012,50.1;97.512,50;98.012,50;98.512,50;99.012,49.9;99.512,49.9;100.012,50;100.512,50.1;101.011,25;101.511,0;102.011,0;102.511,0;103.011,0;103.511,0;104.011,0;104.511,0;105.011,0;105.511,0;106.011,0;106.511,0;107.011,0;107.511,0;108.011,0;108.511,0;109.011,0;109.511,0;110.011,0;110.511,0;111.011,0;111.511,0;112.011,0;112.511,0;113.011,0;113.511,0;114.011,0;114.511,0;115.011,0;115.511,0;116.011,0;116.511,0;117.011,0;117.511,0;118.011,0;118.511,0;119.011,0;119.511,0;120.011,0;120.511,0;121.011,0;121.511,0;122.011,0;122.511,0;123.011,0;123.511,0;124.011,0;124.511,0 0,1;80,1 0.1,89;0.2,69;0.3,77;0.4,81;0.5,71;0.6,74;0.7,69;0.8,70;0.9,63;1,66;1.1,66;1.2,63;1.3,72;1.4,76;1.5,68;1.6,62;1.7,61;1.8,79;1.9,64;2,69;2.1,73;2.2,72;2.3,73;2.4,70;2.5,67;2.6,77;2.7,87;2.8,73;2.9,71;3,63;3.1,79;3.2,67;3.3,79;3.4,72;3.5,79;3.6,75;3.7,73;3.8,75;3.9,63;4,89;4.1,77;4.2,84;4.3,87;4.4,79;4.5,102;4.6,89;4.7,89;4.8,92;4.9,91;5,100;5.1,99;5.2,105;5.3,107;5.4,85;5.5,120;5.6,102;5.7,118;5.8,101;5.9,114;6,103;6.1,116;6.2,107;6.3,113;6.4,133;6.5,120;6.6,149;6.7,140;6.8,157;6.9,157;7,148;7.1,181;7.2,187;7.3,157;7.4,164;7.5,189;7.6,195;7.7,186;7.8,237;7.9,200;8,210;8.1,229;8.2,217;8.3,246;8.4,248;8.5,267;8.6,258;8.7,290;8.8,298;8.9,292;9,284;9.1,325;9.2,297;9.3,317;9.4,371;9.5,376;9.6,390;9.7,356;9.8,425;9.9,415;10,433;10.1,454;10.2,443;10.3,479;10.4,496;10.5,529;10.6,539;10.7,535;10.8,543;10.9,587;11,625;11.1,593;11.2,633;11.3,650;11.4,690;11.5,695;11.6,752;11.7,798;11.8,778;11.9,778;12,802;12.1,897;12.2,881;12.3,957;12.4,994;12.5,958;12.6,1055;12.7,1077;12.8,1085;12.9,1179;13,1146;13.1,1247;13.2,1260;13.3,1274;13.4,1342;13.5,1417;13.6,1472;13.7,1432;13.8,1528;13.9,1632;14,1655;14.1,1601;14.2,1716;14.3,1724;14.4,1807;14.5,1902;14.6,1930;14.7,1965;14.8,2006;14.9,2035;15,2216;15.1,2194;15.2,2318;15.3,2218;15.4,2428;15.5,2556;15.6,2682;15.7,2622;15.8,2727;15.9,2801;16,2931;16.1,2916;16.2,2967;16.3,3042;16.4,3140;16.5,3277;16.6,3185;16.7,3247;16.8,3294;16.9,3442;17,3561;17.1,3603;17.2,3674;17.3,3726;17.4,3796;17.5,3728;17.6,3855;17.7,3832;17.8,3798;17.9,3946;18,3910;18.1,3930;18.2,3937;18.3,3898;18.4,4057;18.5,3985;18.6,3801;18.7,3786;18.8,3762;18.9,3756;19,3630;19.1,3609;19.2,3537;19.3,3555;19.4,3541;19.5,3367;19.6,3345;19.7,3146;19.8,3108;19.9,2975;20,2788;20.1,2688;20.2,2478;20.3,2452;20.4,2349;20.5,2141;20.6,2065;20.7,1890;20.8,1803;20.9,1604;21,1498;21.1,1394;21.2,1291;21.3,1204;21.4,1059;21.5,1028;21.6,931;21.7,866;21.8,770;21.9,691;22,614;22.1,559;22.2,582;22.3,476;22.4,490;22.5,450;22.6,370;22.7,403;22.8,390;22.9,317;23,342;23.1,319;23.2,291;23.3,307;23.4,306;23.5,278;23.6,311;23.7,297;23.8,296;23.9,330;24,323;24.1,289;24.2,284;24.3,305;24.4,284;24.5,294;24.6,271;24.7,288;24.8,317;24.9,307;25,282;25.1,297;25.2,303;25.3,281;25.4,323;25.5,327;25.6,294;25.7,290;25.8,276;25.9,271;26,272;26.1,282;26.2,262;26.3,241;26.4,286;26.5,277;26.6,247;26.7,267;26.8,289;26.9,263;27,261;27.1,262;27.2,256;27.3,239;27.4,263;27.5,253;27.6,241;27.7,235;27.8,229;27.9,220;28,203;28.1,225;28.2,225;28.3,206;28.4,209;28.5,188;28.6,214;28.7,196;28.8,185;28.9,174;29,168;29.1,175;29.2,184;29.3,187;29.4,176;29.5,162;29.6,173;29.7,168;29.8,132;29.9,151;30,134;30.1,175;30.2,143;30.3,127;30.4,137;30.5,140;30.6,115;30.7,138;30.8,139;30.9,120;31,124;31.1,121;31.2,111;31.3,149;31.4,137;31.5,120;31.6,132;31.7,113;31.8,127;31.9,116;32,108;32.1,117;32.2,116;32.3,98;32.4,120;32.5,101;32.6,87;32.7,111;32.8,107;32.9,108;33,101;33.1,118;33.2,86;33.3,106;33.4,121;33.5,105;33.6,87;33.7,80;33.8,101;33.9,105;34,103;34.1,86;34.2,87;34.3,79;34.4,84;34.5,84;34.6,95;34.7,96;34.8,77;34.9,99;35,82;35.1,81;35.2,78;35.3,91;35.4,81;35.5,95;35.6,90;35.7,100;35.8,90;35.9,79;36,92;36.1,78;36.2,95;36.3,96;36.4,81;36.5,82;36.6,71;36.7,78;36.8,67;36.9,79 0,25;27,160;37,160;47,60;167,60 0.2,30.7578144073486;0.4,30.749828338623;0.6,30.7449951171875;0.8,30.7407608032227;1,30.7310848236084;1.2,30.7257633209229;1.4,30.7359218597412;1.6,30.7620487213135;1.8,30.9956016540527;2,31.2360744476318;2.2,31.5899219512939;2.4,32.6551284790039;2.6,33.3335723876953;2.8,34.1144981384277;3,35.822639465332;3.2,36.6979446411133;3.4,37.552906036377;3.6,39.1688652038574;3.8,39.9255523681641;4,40.6455459594727;4.2,42.0563163757324;4.4,42.7529144287109;4.6,43.4563598632813;4.8,44.8957214355469;5,45.6382179260254;5.2,46.3881988525391;5.4,47.9173316955566;5.6,48.6773834228516;5.8,49.4495544433594;6,50.9787979125977;6.2,51.7368240356445;6.4,52.4800605773926;6.6,53.98974609375;6.8,54.7403602600098;7,55.4934730529785;7.2,56.9991645812988;7.4,57.7553939819336;7.6,58.5142555236816;7.8,60.0343589782715;8,60.8039169311523;8.2,61.5676765441895;8.4,63.0930557250977;8.6,63.855655670166;8.8,64.6153869628906;9,66.1405181884766;9.2,66.9011611938477;9.4,67.665901184082;9.6,69.199089050293;9.8,69.9642486572266;10,70.7248153686523;10.2,72.2572479248047;10.4,73.0180969238281;10.6,73.7821807861328;10.8,75.3098907470703;11,76.0807800292969;11.2,76.8520736694336;11.4,78.3845138549805;11.6,79.1556015014648;11.8,79.9225692749023;12,81.4514846801758;12.2,82.2133102416992;12.4,82.9787368774414;12.6,84.5177536010742;12.8,85.2853012084961;13,86.0507965087891;13.2,87.5911712646484;13.4,88.3543395996094;13.6,89.1260528564453;13.8,90.664436340332;14,91.4320907592773;14.2,92.2000350952148;14.4,93.7308502197266;14.6,94.4997711181641;14.8,95.2650299072266;15,96.7986221313477;15.2,97.5664596557617;15.4,98.3374176025391;15.6,99.8789672851563;15.8,100.646324157715;16,101.412368774414;16.2,102.946762084961;16.4,103.704116821289;16.6,104.481300354004;16.8,106.01197052002;17,106.784912109375;17.2,107.550453186035;17.4,109.088424682617;17.6,109.864204406738;17.8,110.630226135254;18,112.167663574219;18.2,112.926696777344;18.4,113.696151733398;18.6,115.221885681152;18.8,115.993766784668;19,116.762702941895;19.2,118.296165466309;19.4,119.069755554199;19.6,119.839645385742;19.8,121.374252319336;20,122.141204833984;20.2,122.905448913574;20.4,124.441665649414;20.6,125.207939147949;20.8,125.970626831055;21,127.496505737305;21.2,128.26904296875;21.4,129.039993286133;21.6,130.574813842773;21.8,131.350021362305;22,132.108551025391;22.2,133.64616394043;22.4,134.416809082031;22.6,135.176849365234;22.8,136.704681396484;23,137.470108032227;23.2,138.233657836914;23.4,139.769119262695;23.6,140.533935546875;23.8,141.302368164063;24,142.833724975586;24.2,143.610900878906;24.4,144.36669921875;24.6,145.90007019043;24.8,146.661865234375;25,147.426055908203;25.2,148.952987670898;25.4,149.718017578125;25.6,150.48828125;25.8,152.018951416016;26,152.778060913086;26.2,153.551071166992;26.4,155.086044311523;26.6,155.845001220703;26.8,156.606582641602;27,158.139953613281;27.2,158.892471313477;27.4,159.657852172852;27.6,160.827529907227;27.8,161.087600708008;28,161.141891479492;28.2,160.823669433594;28.4,160.564743041992;28.6,160.285919189453;28.8,159.846450805664;29,159.716018676758;29.2,159.65950012207;29.4,159.734176635742;29.6,159.842422485352;29.8,159.968490600586;30,160.21923828125;30.2,160.31672668457;30.4,160.389678955078;30.6,160.449066162109;30.8,160.448455810547;31,160.43766784668;31.2,160.404434204102;31.4,160.389678955078;31.6,160.388534545898;31.8,160.398315429688;32,160.413116455078;32.2,160.442169189453;32.4,160.495681762695;32.6,160.523132324219;32.8,160.545959472656;33,160.592041015625;33.2,160.6103515625;33.4,160.632049560547;33.6,160.654235839844;33.8,160.662231445313;34,160.667999267578;34.2,160.687286376953;34.4,160.698822021484;34.6,160.709594726563;34.8,160.729034423828;35,160.737548828125;35.2,160.748352050781;35.4,160.778045654297;35.6,160.786560058594;35.8,160.802597045898;36,160.817886352539;36.2,160.826538085938;36.4,160.829925537109;36.6,160.853225708008;36.8,160.853225708008;37,160.861251831055;37.2,160.876693725586;37.4,160.860641479492;37.6,160.729034423828;37.8,159.924011230469;38,159.381454467773;38.2,158.391235351563;38.4,156.103927612305;38.6,155.00016784668;38.8,153.917785644531;39,151.826400756836;39.2,150.803482055664;39.4,149.796920776367;39.6,147.840072631836;39.8,146.885192871094;40,145.955184936523;40.2,144.127105712891;40.4,143.218612670898;40.6,142.34147644043;40.8,140.618179321289;41,139.770263671875;41.2,138.937942504883;41.4,137.314926147461;41.6,136.512878417969;41.8,135.73030090332;42,134.185089111328;42.2,133.424102783203;42.4,132.679168701172;42.6,131.209274291992;42.8,130.489364624023;43,129.784790039063;43.2,128.397766113281;43.4,127.703979492188;43.6,127.028472900391;43.8,125.690956115723;44,125.033935546875;44.2,124.385581970215;44.4,123.114181518555;44.6,122.48316192627;44.8,121.858070373535;45,120.640235900879;45.2,120.034065246582;45.4,119.440391540527;45.6,118.255317687988;45.8,117.675064086914;46,117.100479125977;46.2,115.96696472168;46.4,115.405158996582;46.6,114.846908569336;46.8,113.754699707031;47,113.218643188477;47.2,112.687225341797;47.4,111.629211425781;47.6,111.10595703125;47.8,110.589569091797;48,109.565940856934;48.2,109.056579589844;48.4,108.559059143066;48.6,107.566543579102;48.8,107.089897155762;49,106.58903503418;49.2,105.639739990234;49.4,105.161338806152;49.6,104.683753967285;49.8,103.761405944824;50,103.304016113281;50.2,102.845703125;50.4,101.93480682373;50.6,101.486671447754;50.8,101.044288635254;51,100.161399841309;51.2,99.7320098876953;51.4,99.297737121582;51.6,98.4410781860352;51.8,98.0126419067383;52,97.6025238037109;52.2,96.7665100097656;52.4,96.3555526733398;52.6,95.9420471191406;52.8,95.1333160400391;53,94.7310638427734;53.2,94.3320541381836;53.4,93.5500793457031;53.6,93.1568908691406;53.8,92.7682876586914;54,91.9939346313477;54.2,91.616081237793;54.4,91.2365188598633;54.6,90.4877777099609;54.8,90.1127777099609;55,89.7463226318359;55.2,89.0256195068359;55.4,88.6665496826172;55.6,88.3052978515625;55.8,87.5967178344727;56,87.2427139282227;56.2,86.8883819580078;56.4,86.1946105957031;56.6,85.8464202880859;56.8,85.5104598999023;57,84.8315963745117;57.2,84.4985504150391;57.4,84.1595153808594;57.6,83.5019683837891;57.8,83.171875;58,82.8478546142578;58.2,82.1979293823242;58.4,81.8703155517578;58.6,81.5580902099609;58.8,80.931640625;59,80.6152114868164;59.2,80.3119659423828;59.4,79.6913986206055;59.6,79.3894500732422;59.8,79.08642578125;60,78.4937286376953;60.2,78.1925048828125;60.4,77.8928985595703;60.6,77.3071823120117;60.8,77.0236206054688;61,76.7281875610352;61.2,76.1668319702148;61.4,75.8796997070313;61.6,75.5985794067383;61.8,75.0381698608398;62,74.7599639892578;62.2,74.4850845336914;62.4,73.9419097900391;62.6,73.6765518188477;62.8,73.4071655273438;63,72.8792572021484;63.2,72.6132431030273;63.4,72.3490982055664;63.6,71.8273544311523;63.8,71.5741806030273;64,71.3145294189453;64.2,70.8061981201172;64.4,70.5586090087891;64.6,70.3095855712891;64.8,69.8118209838867;65,69.56884765625;65.2,69.3230743408203;65.4,68.8386917114258;65.6,68.5990982055664;65.8,68.3627166748047;66,67.895622253418;66.2,67.6616134643555;66.4,67.4270095825195;66.6,66.9568557739258;66.8,66.7256011962891;67,66.500373840332;67.2,66.0505599975586;67.4,65.8270950317383;67.6,65.604248046875;67.8,65.1671600341797;68,64.9509582519531 Luminescence/inst/extdata/HeliosOSL_Example.osl0000644000176200001440000001661514762554470021315 0ustar liggesusers"Index", "t[s]", "J", "Jcorr", "Jphd", "dt[s]", "T[K]", "ILed[A]" 00000000, 0000.100, 01189809, 01192363, 16000.000, 000.100, 000.0, 0.048 00000001, 0000.200, 01471786, 01475695, 16300.000, 000.100, 000.0, 0.051 00000002, 0000.300, 01488945, 01492946, 16300.000, 000.100, 000.0, 0.063 00000003, 0000.400, 01497596, 01501644, 16200.000, 000.100, 000.0, 0.060 00000004, 0000.500, 01503611, 01507692, 16200.000, 000.100, 000.0, 0.042 00000005, 0000.600, 01508142, 01512247, 16200.000, 000.100, 000.0, 0.063 00000006, 0000.700, 01510667, 01514786, 16200.000, 000.100, 000.0, 0.018 00000007, 0000.800, 01511510, 01515634, 16200.000, 000.100, 000.0, 0.072 00000008, 0000.900, 01510997, 01515118, 16200.000, 000.100, 000.0, 0.045 00000009, 0001.000, 01510583, 01514702, 16200.000, 000.100, 000.0, 0.048 00000010, 0001.100, 01509716, 01513830, 16200.000, 000.100, 000.0, 0.054 00000011, 0001.200, 01507963, 01512067, 16200.000, 000.100, 000.0, 0.048 00000012, 0001.300, 01505014, 01509102, 16200.000, 000.100, 000.0, 0.048 00000013, 0001.400, 01503109, 01507187, 16200.000, 000.100, 000.0, 0.048 00000014, 0001.500, 01500568, 01504632, 16200.000, 000.100, 000.0, 0.045 00000015, 0001.600, 01498341, 01502393, 16200.000, 000.100, 000.0, 0.042 00000016, 0001.700, 01495834, 01499872, 16200.000, 000.100, 000.0, 0.051 00000017, 0001.800, 01492595, 01496616, 16200.000, 000.100, 000.0, 0.042 00000018, 0001.900, 01489543, 01493547, 16200.000, 000.100, 000.0, 0.051 00000019, 0002.000, 01485754, 01489738, 16200.000, 000.100, 000.0, 0.027 00000020, 0002.100, 01483114, 01487084, 16200.000, 000.100, 000.0, 0.051 00000021, 0002.200, 01478922, 01482869, 16200.000, 000.100, 000.0, 0.033 00000022, 0002.300, 01476509, 01480444, 16200.000, 000.100, 000.0, 0.051 00000023, 0002.400, 01473851, 01477771, 16200.000, 000.100, 000.0, 0.051 00000024, 0002.500, 01470244, 01474145, 16200.000, 000.100, 000.0, 0.051 00000025, 0002.600, 01467267, 01471152, 16200.000, 000.100, 000.0, 0.048 00000026, 0002.700, 01464453, 01468324, 16200.000, 000.100, 000.0, 0.048 00000027, 0002.800, 01460361, 01464210, 16200.000, 000.100, 000.0, 0.042 00000028, 0002.900, 01457955, 01461791, 16200.000, 000.100, 000.0, 0.042 00000029, 0003.000, 01454319, 01458136, 16200.000, 000.100, 000.0, 0.048 00000030, 0003.100, 01451173, 01454974, 16200.000, 000.100, 000.0, 0.042 00000031, 0003.200, 01448019, 01451803, 16200.000, 000.100, 000.0, 0.045 00000032, 0003.300, 01445265, 01449035, 16200.000, 000.100, 000.0, 0.066 00000033, 0003.400, 01441307, 01445056, 16200.000, 000.100, 000.0, 0.048 00000034, 0003.500, 01437953, 01441685, 16200.000, 000.100, 000.0, 0.060 00000035, 0003.600, 01434582, 01438296, 16200.000, 000.100, 000.0, 0.042 00000036, 0003.700, 01432149, 01435850, 16200.000, 000.100, 000.0, 0.075 00000037, 0003.800, 01428824, 01432508, 16200.000, 000.100, 000.0, 0.042 00000038, 0003.900, 01424830, 01428494, 16200.000, 000.100, 000.0, 0.078 00000039, 0004.000, 01422442, 01426093, 16200.000, 000.100, 000.0, 0.051 00000040, 0004.100, 01419328, 01422963, 16200.000, 000.100, 000.0, 0.051 00000041, 0004.200, 01415667, 01419284, 16200.000, 000.100, 000.0, 0.045 00000042, 0004.300, 01412155, 01415754, 16200.000, 000.100, 000.0, 0.048 00000043, 0004.400, 01409349, 01412933, 16200.000, 000.100, 000.0, 0.048 00000044, 0004.500, 01406672, 01410243, 16200.000, 000.100, 000.0, 0.045 00000045, 0004.600, 01402982, 01406534, 16200.000, 000.100, 000.0, 0.051 00000046, 0004.700, 01400873, 01404414, 16200.000, 000.100, 000.0, 0.045 00000047, 0004.800, 01397592, 01401117, 16200.000, 000.100, 000.0, 0.045 00000048, 0004.900, 01393671, 01397176, 16200.000, 000.100, 000.0, 0.021 00000049, 0005.000, 01391049, 01394541, 16200.000, 000.100, 000.0, 0.045 00000050, 0005.100, 01387535, 01391009, 16200.000, 000.100, 000.0, 0.051 00000051, 0005.200, 01384815, 01388276, 16200.000, 000.100, 000.0, 0.051 00000052, 0005.300, 01382063, 01385510, 16200.000, 000.100, 000.0, 0.048 00000053, 0005.400, 01378735, 01382165, 16200.000, 000.100, 000.0, 0.048 00000054, 0005.500, 01376451, 01379870, 16200.000, 000.100, 000.0, 0.051 00000055, 0005.600, 01372784, 01376185, 16200.000, 000.100, 000.0, 0.048 00000056, 0005.700, 01369611, 01372996, 16200.000, 000.100, 000.0, 0.045 00000057, 0005.800, 01367252, 01370625, 16200.000, 000.100, 000.0, 0.063 00000058, 0005.900, 01363412, 01366766, 16200.000, 000.100, 000.0, 0.048 00000059, 0006.000, 01361132, 01364475, 16200.000, 000.100, 000.0, 0.045 00000060, 0006.100, 01357825, 01361152, 16200.000, 000.100, 000.0, 0.048 00000061, 0006.200, 01355032, 01358345, 16200.000, 000.100, 000.0, 0.021 00000062, 0006.300, 01351831, 01355128, 16200.000, 000.100, 000.0, 0.048 00000063, 0006.400, 01349801, 01353089, 16200.000, 000.100, 000.0, 0.027 00000064, 0006.500, 01346675, 01349947, 16200.000, 000.100, 000.0, 0.045 00000065, 0006.600, 01343113, 01346368, 16200.000, 000.100, 000.0, 0.054 00000066, 0006.700, 01341182, 01344428, 16200.000, 000.100, 000.0, 0.051 00000067, 0006.800, 01337106, 01340332, 16200.000, 000.100, 000.0, 0.051 00000068, 0006.900, 01335046, 01338262, 16200.000, 000.100, 000.0, 0.048 00000069, 0007.000, 01331658, 01334858, 16200.000, 000.100, 000.0, 0.042 00000070, 0007.100, 01329712, 01332902, 16200.000, 000.100, 000.0, 0.045 00000071, 0007.200, 01327289, 01330468, 16200.000, 000.100, 000.0, 0.048 00000072, 0007.300, 01324082, 01327245, 16200.000, 000.100, 000.0, 0.048 00000073, 0007.400, 01321572, 01324723, 16200.000, 000.100, 000.0, 0.048 00000074, 0007.500, 01318351, 01321487, 16200.000, 000.100, 000.0, 0.063 00000075, 0007.600, 01315995, 01319120, 16200.000, 000.100, 000.0, 0.048 00000076, 0007.700, 01313127, 01316238, 16200.000, 000.100, 000.0, 0.057 00000077, 0007.800, 01310549, 01313648, 16200.000, 000.100, 000.0, 0.051 00000078, 0007.900, 01307554, 01310639, 16200.000, 000.100, 000.0, 0.078 00000079, 0008.000, 01304852, 01307924, 16200.000, 000.100, 000.0, 0.051 00000080, 0008.100, 01302725, 01305787, 16200.000, 000.100, 000.0, 0.078 00000081, 0008.200, 01300078, 01303128, 16200.000, 000.100, 000.0, 0.051 00000082, 0008.300, 01296192, 01299223, 16200.000, 000.100, 000.0, 0.048 00000083, 0008.400, 01294321, 01297344, 16200.000, 000.100, 000.0, 0.051 00000084, 0008.500, 01291768, 01294779, 16200.000, 000.100, 000.0, 0.054 00000085, 0008.600, 01289057, 01292055, 16200.000, 000.100, 000.0, 0.045 00000086, 0008.700, 01285486, 01288467, 16200.000, 000.100, 000.0, 0.048 00000087, 0008.800, 01283607, 01286580, 16200.000, 000.100, 000.0, 0.060 00000088, 0008.900, 01281143, 01284104, 16200.000, 000.100, 000.0, 0.045 00000089, 0009.000, 01278574, 01281523, 16200.000, 000.100, 000.0, 0.060 00000090, 0009.100, 01275227, 01278161, 16200.000, 000.100, 000.0, 0.024 00000091, 0009.200, 01272986, 01275910, 16200.000, 000.100, 000.0, 0.075 00000092, 0009.300, 01270813, 01273727, 16200.000, 000.100, 000.0, 0.045 00000093, 0009.400, 01267965, 01270866, 16200.000, 000.100, 000.0, 0.078 00000094, 0009.500, 01264870, 01267756, 16200.000, 000.100, 000.0, 0.054 00000095, 0009.600, 01262368, 01265243, 16200.000, 000.100, 000.0, 0.045 00000096, 0009.700, 01259830, 01262693, 16200.000, 000.100, 000.0, 0.048 00000097, 0009.800, 01257246, 01260098, 16200.000, 000.100, 000.0, 0.048 00000098, 0009.900, 01255112, 01257954, 16200.000, 000.100, 000.0, 0.045 "LED DC amplitude: 0.05 [A]" "LED AC amplitude: 0 [A]" "LED AC period: 0 [s]" "LED AC initial phase: 0 [deg]" "Mode: CW Spectrum separation" "Samples: 1000" "Sampling period: 0.1 [s]" "SW version: 11.05.2018 18:04:26" "Helios version: 2.1 [07.05.2018 20:45:19]" "Al2O3:C" Luminescence/inst/extdata/DorNie_0016.psl0000644000176200001440000003675614762554470017700 0ustar liggesusers ========================================================================================= Run Name: ALU Sample no: 0016 Sequence Name: Praktikum2016 Filename: Praktikum2016 Dark Count: 15 c/s Light Count: 0 c/s Dark Count Correction: OFF 256 Offset Subtract: ON Datafile Path: D:\Results\DORNIE\ALU\ALU0016.psl Summary Path : D:\Results\DORNIE\ALU\summary\ALU.sum Run Sequence : Praktikum2016 ----------------------------------------------------------------------------------------- \ L11 @ 5/19/2016 4:45:12 PM / '--------------------------' ---------------------------------------------------------------------------------------- Measurement : DARK 15s | Stim 0 | On/Off(us) 15,15 | Cycle(ms),No 1000, 15 ---------------------------------------------------------------------------------------- Time (s) Total Count Counts per Cycle -------- --------------------- --------------------- 1 0 +/- 4 0 +/- 4 2 -2 +/- 6 -2 +/- 4 3 12 +/- 8 14 +/- 5 4 19 +/- 9 7 +/- 5 5 25 +/- 10 6 +/- 5 6 18 +/- 10 -7 +/- 5 7 17 +/- 11 -1 +/- 4 8 23 +/- 12 6 +/- 5 9 15 +/- 12 -8 +/- 5 10 18 +/- 13 3 +/- 4 11 16 +/- 13 -2 +/- 4 12 22 +/- 14 6 +/- 5 13 22 +/- 15 0 +/- 4 14 28 +/- 15 6 +/- 5 15 25 +/- 16 -3 +/- 4 Terminal Count = 25 +/- 16 ---------------------------------------------------------------------------------------- Measurement : S1 15 0 100s | Stim 1 | On/Off(us) 15, 0 | Cycle(ms),No 1000, 100 ---------------------------------------------------------------------------------------- Time (s) Total Count Counts per Cycle -------- --------------------- --------------------- 1 16660 +/- 129 16660 +/- 129 2 32789 +/- 181 16129 +/- 127 3 48649 +/- 221 15860 +/- 126 4 64422 +/- 254 15773 +/- 126 5 77931 +/- 279 13509 +/- 116 6 93102 +/- 305 15171 +/- 123 7 108127 +/- 329 15025 +/- 123 8 122880 +/- 351 14753 +/- 122 9 137318 +/- 371 14438 +/- 120 10 151523 +/- 389 14205 +/- 119 11 165571 +/- 407 14048 +/- 119 12 179457 +/- 424 13886 +/- 118 13 193226 +/- 440 13769 +/- 117 14 206845 +/- 455 13619 +/- 117 15 220210 +/- 470 13365 +/- 116 16 233057 +/- 483 12847 +/- 113 17 246024 +/- 496 12967 +/- 114 18 258717 +/- 509 12693 +/- 113 19 271443 +/- 521 12726 +/- 113 20 284106 +/- 533 12663 +/- 113 21 296846 +/- 545 12740 +/- 113 22 309240 +/- 556 12394 +/- 111 23 321382 +/- 567 12142 +/- 110 24 333521 +/- 578 12139 +/- 110 25 345488 +/- 588 11967 +/- 109 26 357358 +/- 598 11870 +/- 109 27 369194 +/- 608 11836 +/- 109 28 380867 +/- 617 11673 +/- 108 29 392406 +/- 627 11539 +/- 107 30 403919 +/- 636 11513 +/- 107 31 415362 +/- 645 11443 +/- 107 32 426753 +/- 654 11391 +/- 107 33 438016 +/- 662 11263 +/- 106 34 449144 +/- 671 11128 +/- 106 35 460170 +/- 679 11026 +/- 105 36 471161 +/- 687 10991 +/- 105 37 481959 +/- 695 10798 +/- 104 38 492740 +/- 702 10781 +/- 104 39 503494 +/- 710 10754 +/- 104 40 513949 +/- 717 10455 +/- 102 41 524654 +/- 725 10705 +/- 104 42 535111 +/- 732 10457 +/- 102 43 545469 +/- 739 10358 +/- 102 44 556047 +/- 746 10578 +/- 103 45 566590 +/- 753 10543 +/- 103 46 576850 +/- 760 10260 +/- 101 47 587113 +/- 767 10263 +/- 101 48 597322 +/- 773 10209 +/- 101 49 607258 +/- 780 9936 +/- 100 50 617201 +/- 786 9943 +/- 100 51 626983 +/- 792 9782 +/- 99 52 636819 +/- 798 9836 +/- 99 53 646695 +/- 805 9876 +/- 99 54 655509 +/- 810 8814 +/- 94 55 665363 +/- 816 9854 +/- 99 56 674934 +/- 822 9571 +/- 98 57 684515 +/- 828 9581 +/- 98 58 693948 +/- 834 9433 +/- 97 59 703516 +/- 839 9568 +/- 98 60 712982 +/- 845 9466 +/- 97 61 722344 +/- 850 9362 +/- 97 62 731611 +/- 856 9267 +/- 96 63 740851 +/- 861 9240 +/- 96 64 750276 +/- 867 9425 +/- 97 65 759405 +/- 872 9129 +/- 96 66 768537 +/- 877 9132 +/- 96 67 777573 +/- 882 9036 +/- 95 68 786739 +/- 888 9166 +/- 96 69 795598 +/- 893 8859 +/- 94 70 804571 +/- 898 8973 +/- 95 71 813485 +/- 903 8914 +/- 94 72 822406 +/- 907 8921 +/- 95 73 831225 +/- 912 8819 +/- 94 74 840160 +/- 917 8935 +/- 95 75 848871 +/- 922 8711 +/- 93 76 857733 +/- 927 8862 +/- 94 77 866580 +/- 932 8847 +/- 94 78 875191 +/- 936 8611 +/- 93 79 883976 +/- 941 8785 +/- 94 80 892559 +/- 945 8583 +/- 93 81 900899 +/- 950 8340 +/- 91 82 909380 +/- 954 8481 +/- 92 83 917905 +/- 959 8525 +/- 92 84 926191 +/- 963 8286 +/- 91 85 934738 +/- 967 8547 +/- 93 86 943030 +/- 972 8292 +/- 91 87 951445 +/- 976 8415 +/- 92 88 959676 +/- 980 8231 +/- 91 89 967730 +/- 984 8054 +/- 90 90 976219 +/- 989 8489 +/- 92 91 984294 +/- 993 8075 +/- 90 92 992370 +/- 997 8076 +/- 90 93 1000418 +/- 1001 8048 +/- 90 94 1008331 +/- 1005 7913 +/- 89 95 1016283 +/- 1009 7952 +/- 89 96 1024276 +/- 1013 7993 +/- 89 97 1032190 +/- 1017 7914 +/- 89 98 1040099 +/- 1021 7909 +/- 89 99 1047962 +/- 1024 7863 +/- 89 100 1055928 +/- 1028 7966 +/- 89 Terminal Count = 1055928 +/- 1028 ---------------------------------------------------------------------------------------- Measurement : DARK 15s | Stim 0 | On/Off(us) 15,15 | Cycle(ms),No 1000, 15 ---------------------------------------------------------------------------------------- Time (s) Total Count Counts per Cycle -------- --------------------- --------------------- 1 4 +/- 4 4 +/- 4 2 14 +/- 7 10 +/- 5 3 9 +/- 7 -5 +/- 4 4 8 +/- 8 -1 +/- 4 5 0 +/- 9 -8 +/- 5 6 -6 +/- 10 -6 +/- 5 7 7 +/- 11 13 +/- 5 8 12 +/- 11 5 +/- 4 9 -12 +/- 12 -24 +/- 6 10 -1 +/- 12 11 +/- 5 11 8 +/- 13 9 +/- 5 12 15 +/- 14 7 +/- 5 13 7 +/- 14 -8 +/- 5 14 -5 +/- 15 -12 +/- 5 15 -12 +/- 15 -7 +/- 5 Terminal Count = -12 +/- 15 ---------------------------------------------------------------------------------------- Measurement : S2 15 0 100s | Stim 2 | On/Off(us) 15, 0 | Cycle(ms),No 1000, 100 ---------------------------------------------------------------------------------------- Time (s) Total Count Counts per Cycle -------- --------------------- --------------------- 1 88023 +/- 297 88023 +/- 297 2 173608 +/- 417 85585 +/- 293 3 257002 +/- 507 83394 +/- 289 4 337842 +/- 581 80840 +/- 284 5 416668 +/- 646 78826 +/- 281 6 493191 +/- 702 76523 +/- 277 7 567633 +/- 753 74442 +/- 273 8 640003 +/- 800 72370 +/- 269 9 710432 +/- 843 70429 +/- 265 10 779934 +/- 883 69502 +/- 264 11 847323 +/- 921 67389 +/- 260 12 912894 +/- 956 65571 +/- 256 13 977444 +/- 989 64550 +/- 254 14 1040046 +/- 1020 62602 +/- 250 15 1101576 +/- 1050 61530 +/- 248 16 1161549 +/- 1078 59973 +/- 245 17 1220325 +/- 1105 58776 +/- 242 18 1277027 +/- 1130 56702 +/- 238 19 1333490 +/- 1155 56463 +/- 238 20 1389034 +/- 1179 55544 +/- 236 21 1443594 +/- 1202 54560 +/- 234 22 1497249 +/- 1224 53655 +/- 232 23 1548759 +/- 1245 51510 +/- 227 24 1600292 +/- 1265 51533 +/- 227 25 1650904 +/- 1285 50612 +/- 225 26 1700538 +/- 1304 49634 +/- 223 27 1749403 +/- 1323 48865 +/- 221 28 1796880 +/- 1341 47477 +/- 218 29 1844491 +/- 1358 47611 +/- 218 30 1890984 +/- 1375 46493 +/- 216 31 1937212 +/- 1392 46228 +/- 215 32 1982618 +/- 1408 45406 +/- 213 33 2027030 +/- 1424 44412 +/- 211 34 2071016 +/- 1439 43986 +/- 210 35 2113676 +/- 1454 42660 +/- 207 36 2156344 +/- 1469 42668 +/- 207 37 2198478 +/- 1483 42134 +/- 205 38 2240192 +/- 1497 41714 +/- 204 39 2281314 +/- 1511 41122 +/- 203 40 2321794 +/- 1524 40480 +/- 201 41 2361658 +/- 1537 39864 +/- 200 42 2401167 +/- 1550 39509 +/- 199 43 2439834 +/- 1562 38667 +/- 197 44 2474234 +/- 1573 34400 +/- 186 45 2511724 +/- 1585 37490 +/- 194 46 2549656 +/- 1597 37932 +/- 195 47 2586736 +/- 1609 37080 +/- 193 48 2623506 +/- 1620 36770 +/- 192 49 2659445 +/- 1631 35939 +/- 190 50 2695350 +/- 1642 35905 +/- 190 51 2730486 +/- 1653 35136 +/- 187 52 2765285 +/- 1663 34799 +/- 187 53 2799384 +/- 1673 34099 +/- 185 54 2833349 +/- 1683 33965 +/- 184 55 2866981 +/- 1693 33632 +/- 183 56 2900327 +/- 1703 33346 +/- 183 57 2933060 +/- 1713 32733 +/- 181 58 2965878 +/- 1722 32818 +/- 181 59 2997817 +/- 1732 31939 +/- 179 60 3029628 +/- 1741 31811 +/- 178 61 3061474 +/- 1750 31846 +/- 178 62 3092488 +/- 1759 31014 +/- 176 63 3123846 +/- 1768 31358 +/- 177 64 3154486 +/- 1776 30640 +/- 175 65 3184857 +/- 1785 30371 +/- 174 66 3215039 +/- 1793 30182 +/- 174 67 3244570 +/- 1802 29531 +/- 172 68 3274321 +/- 1810 29751 +/- 173 69 3303533 +/- 1818 29212 +/- 171 70 3332132 +/- 1826 28599 +/- 169 71 3360314 +/- 1833 28182 +/- 168 72 3388958 +/- 1841 28644 +/- 169 73 3417112 +/- 1849 28154 +/- 168 74 3444699 +/- 1856 27587 +/- 166 75 3472236 +/- 1864 27537 +/- 166 76 3499511 +/- 1871 27275 +/- 165 77 3526575 +/- 1878 27064 +/- 165 78 3553717 +/- 1885 27142 +/- 165 79 3580372 +/- 1893 26655 +/- 163 80 3606875 +/- 1899 26503 +/- 163 81 3633171 +/- 1906 26296 +/- 162 82 3658384 +/- 1913 25213 +/- 159 83 3684158 +/- 1920 25774 +/- 161 84 3708882 +/- 1926 24724 +/- 157 85 3734219 +/- 1933 25337 +/- 159 86 3759580 +/- 1939 25361 +/- 159 87 3784542 +/- 1946 24962 +/- 158 88 3808953 +/- 1952 24411 +/- 156 89 3833380 +/- 1958 24427 +/- 156 90 3857979 +/- 1965 24599 +/- 157 91 3882107 +/- 1971 24128 +/- 155 92 3906050 +/- 1977 23943 +/- 155 93 3927964 +/- 1982 21914 +/- 148 94 3951776 +/- 1988 23812 +/- 154 95 3975292 +/- 1994 23516 +/- 153 96 3998638 +/- 2000 23346 +/- 153 97 4021603 +/- 2006 22965 +/- 152 98 4044558 +/- 2011 22955 +/- 152 99 4067386 +/- 2017 22828 +/- 151 100 4089938 +/- 2023 22552 +/- 150 Terminal Count = 4089938 +/- 2023 ---------------------------------------------------------------------------------------- Measurement : DARK 15s | Stim 0 | On/Off(us) 15,15 | Cycle(ms),No 1000, 15 ---------------------------------------------------------------------------------------- Time (s) Total Count Counts per Cycle -------- --------------------- --------------------- 1 -22 +/- 6 -22 +/- 6 2 -23 +/- 7 -1 +/- 4 3 2 +/- 7 25 +/- 6 4 2 +/- 8 0 +/- 4 5 14 +/- 9 12 +/- 5 6 18 +/- 10 4 +/- 4 7 30 +/- 12 12 +/- 5 8 17 +/- 12 -13 +/- 5 9 43 +/- 13 26 +/- 6 10 27 +/- 13 -16 +/- 6 11 1 +/- 13 -26 +/- 6 12 -11 +/- 14 -12 +/- 5 13 17 +/- 15 28 +/- 7 14 9 +/- 15 -8 +/- 5 15 -1 +/- 15 -10 +/- 5 Terminal Count = -1 +/- 15 Luminescence/inst/extdata/BINfile_V8.binx0000644000176200001440000000570614762554470020030 0ustar liggesusersBT 607+Main Measurement Middle Grain SachsenLoesseExampleData.BINfileDataDefault191432060920]C@\C A                          #-++,53*8(1-UBHCSXZNQJlWnc{lxHBT 607+Main Measurement Middle Grain SachsenLoesseExampleData.BINfileDataDefault191611060920]C@\C A                            ) ' %&#*1)$<3+)017K5LC;=XL_Ue)Luminescence/inst/extdata/Daybreak_TestFile.DAT0000644000176200001440000015422014762554470021170 0ustar liggesusers_ c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b s@A@B@H@A@H@t@&@@ج@t@@.@H@P@z@Щ@@@^@@@@l@@J@@ @@@@@@@@@Ф@@@@ڣ@@@@@Ң@@@@2@@@v@@L@r@@@@4@@F@T@ȟ@0@@Ȟ@@@@@؜@H@h@4@@l@@@8@@@@@T@h@0@@ؚ@ܙ@Ԙ@L@p@@@x@_ c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b t@H@F@D@G@r@.@"@@@@@@@@f@@@0@@L@D@@Ψ@t@ @8@2@@@r@,@@@@r@@Ԥ@"@t@@@N@@(@@@@Ң@@.@&@@@@@@@ @@@@@@J@ȟ@`@D@H@L@@@@$@x@̝@@@8@t@d@\@ܛ@@@X@X@\@ě@@0@p@x@@ @_ c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b pt@A@A@D@C@@ @@.@J@@֪@@@ة@:@̨@@@p@@@ܦ@@@Ȧ@<@ @@@@x@@@@@t@&@\@@Ƣ@*@̡@H@.@@:@ơ@@j@@@@@@@J@@ğ@@(@@@@@@D@D@@@ܜ@@@@@|@@@H@4@@l@@ @|@H@@@x@@@X@,@@Ę@_ c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b q@A@G@A@E@֨@-@\@@X@D@x@ڬ@$@̫@@|@@@2@ک@h@0@$@@ا@@@@@@`@F@@@@@@8@h@J@V@(@أ@p@@@j@@@@P@@@@@v@b@P@@@@@F@@P@@@4@@@p@@@,@ܝ@\@@؝@@P@@@@H@@@t@x@@`@@x@ę@l@@_ c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b pp@@@A@G@?@t@@@d@@&@@@@@R@:@N@@@@ @̦@b@@L@v@d@ڤ@T@@X@t@@@Σ@F@@F@D@@ޡ@.@@@ܡ@r@@@@d@ @@@@@@ @T@$@@@ @@,@@@d@@8@@@D@ @@d@̚@@@@ @l@@\@@@4@x@(@ @@x@@@ @@_ c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b r@=@B@@@A@@@@n@L@<@Ȩ@.@,@@@@p@@D@@<@@<@T@ @4@@.@@n@@@Ƣ@L@@@@@^@@@ @T@^@@p@@@@@ܞ@$@l@d@@4@H@@@|@@@@@$@\@@T@@@@`@@ؘ@Ę@t@@@@X@H@@ @@@З@Ė@ė@@@@@@P@ @_ c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b s@@@@@<@F@@6@@h@@@@ҩ@v@$@<@@ @v@|@ڦ@@@4@@>@@@@6@@d@@@@8@Ģ@x@@@4@(@@@h@0@Ԡ@Ơ@ @p@ؠ@@(@@@@@@@L@@@@@|@,@@@t@@D@@@@@X@@@@H@d@P@(@@И@ @@@@@(@@d@0@0@_ c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b s@@@<@D@B@ @@ܪ@R@@:@L@r@@@@@@x@ʦ@ @@2@@@Z@@X@@ܣ@@@ң@@f@@@D@,@@@@@t@:@@ܝ@ʠ@r@@@@@*@@@,@ȝ@L@@8@@@Ĝ@\@@H@ě@@@h@d@@p@T@@ԙ@@@p@p@@\@@Ę@@@4@ @@x@ @@X@0@@_ c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b s@B@B@D@G@@ @@t@B@@@H@@$@ @L@@d@6@Ĩ@@@@@@@֦@&@d@@@P@B@ @t@@f@,@@@@@@@8@@|@@@@ @@^@$@@ @0@|@Ġ@D@@Ƞ@@0@@\@`@|@@D@@ܝ@T@\@@М@X@d@ @@@̚@ܛ@@Ԛ@H@К@@ԙ@@ؙ@@l@t@_  c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b q@D@@@A@C@@ګ@«@@P@B@@X@>@v@*@̧@x@@^@0@&@@@n@Ф@>@Ф@@֣@У@@@@ @|@<@@@@@t@@ء@@ @J@@j@@@0@@P@ @h@<@@@@T@؝@@@@$@T@@p@@@@`@@p@@@@@ @$@@@|@8@@@ @4@̖@@@,@@`@@_  c=@??I@Z# Gy/min u-2/secnone  Sr-90 Am-241b x@E@H@N@E@@d@S@@^@@@T@R@@@@L@@#@@P@R@ȭ@@|@V@2@B@^@@@n@Ы@@@@ʩ@$@b@@@*@Χ@&@6@@@@&@v@@f@@@@֤@ԥ@@t@@x@p@ң@D@2@@@ģ@@@"@¢@f@R@B@J@@@@@@@X@@@@@ʠ@@@@ @@ @,@_  c=@??I@Z# Gy/min u-2/secnone  Sr-90 Am-241b `y@H@G@I@G@@Q@ȳ@@B@@˲@h@@ޱ@o@b@@@g@@@w@ʮ@X@@@b@.@@@\@@~@Ϋ@h@@ث@^@(@`@@:@@F@@@"@@T@@@@B@4@@¦@6@@v@6@ȥ@>@@*@f@@@h@l@@`@X@@@n@@ܢ@¢@@@B@@@¡@@r@@@@,@ڠ@@@@ܠ@:@@@_  c=@??I@Z# Gy/min u-2/secnone  Sr-90 Am-241b pu@F@J@F@F@@@@@W@@@@@#@[@B@ @@@@&@@ȭ@t@4@l@@ī@@H@֪@@@@z@@@p@@`@@ @4@&@P@@@"@Х@ƥ@@@@@Ĥ@@@ܤ@@@@V@@h@΢@̢@¢@@@P@ʡ@@D@@@:@@N@@Р@p@b@Ơ@D@@(@@@Ԟ@|@@@@@ܞ@_  c=@??I@Z# Gy/min u-2/secnone  Sr-90 Am-241b x@K@I@K@J@x@@@@@ϲ@{@'@@@ @ް@@E@G@n@@`@~@@@@@L@Ҭ@v@`@@$@@@l@@@@@@@l@B@h@@@F@ @@@@t@@`@ȥ@إ@@@@ؤ@¤@@ڣ@@Σ@@*@L@@D@@X@@@.@:@ڡ@n@^@@@@F@@ @Z@@Ҡ@@@d@,@p@@_ c=@??I@Z# Gy/min u-2/secnone  Sr-90 Am-241b y@D@I@F@G@\@@ײ@@@ű@S@ܰ@@b@_@@f@Į@t@<@(@@:@@@@$@@@@v@@@|@v@j@@J@6@@@Ч@@,@@Ʀ@@0@@¥@@@J@@Ҥ@|@\@0@@\@@@,@R@0@@̢@@ @z@P@6@@@@0@֡@Ġ@@@^@r@@@@X@H@d@؞@@@̞@t@\@ @_ c=@??Y@Z# Gy/min u-2/secnone  Sr-90 Am-241b P@L@F@F@L@@@@&@ @@V@@ٲ@@@@3@@@@m@@!@~@@@@@@@b@@@ȫ@@ @Ϊ@v@p@@z@@ީ@@@ʧ@@ʧ@@@ڦ@4@x@(@@2@ĥ@@@@Ĥ@@@¤@6@@Z@@r@x@&@ @L@@@4@j@@T@@@ڡ@@@V@@@~@@Ơ@h@@H@6@_ c=@??Y@Z# Gy/min u-2/secnone  Sr-90 Am-241b `|@K@K@P@L@n@A@@@4@Y@@R@@i@@v@A@@`@@@@v@ձ@@@@:@گ@@b@@@b@@@@6@@x@*@@@|@Ϋ@@@@@@b@@@T@@@@*@@@Z@"@F@@@<@@r@@@@Τ@@@0@@@(@֣@@@@@B@ @@ @\@@T@N@@@|@@_ c=@??Y@Z# Gy/min u-2/secnone  Sr-90 Am-241b e@J@M@H@O@1@@E@@@͵@@0@@@(@8@=@@w@@@@)@Y@@j@'@@@@@@ί@9@@@ޮ@<@@@@ @`@,@^@@l@@Z@@@@@ܩ@@@P@@@@P@|@@6@@8@@@@ڥ@@@ƥ@*@@(@@@@Ԥ@l@8@@R@@ @@ @ʣ@@X@Ģ@¢@@@_ c=@??Y@Z# Gy/min u-2/secnone  Sr-90 Am-241b 0v@J@K@J@L@V@@@ݵ@@J@@}@@@|@Y@@~@b@@@l@h@@@@@@%@@@@@@B@@ޭ@ڬ@@8@,@\@@@F@F@@x@@@@h@@@@Ҩ@@L@@J@ @@Ħ@@@ئ@@@j@@:@@@@@b@f@@@@@v@D@@@̣@@6@ڢ@V@@t@¢@@@_ c=@??Y@Z# Gy/min u-2/secnone  Sr-90 Am-241b ~@Q@L@N@K@@@ö@b@@@@e@´@@@R@@@g@@@w@x@ڱ@@˰@w@{@@@z@̮@<@J@@Ҭ@x@@@@ȫ@֪@z@@b@ܪ@P@V@@\@@@@*@Ƨ@"@@b@x@̦@@@2@$@@@إ@0@@8@^@@ʤ@>@@ @L@x@@Z@4@Т@8@\@r@>@,@@@@@@@@_ c=@??@i@Z# Gy/min u-2/secnone  Sr-90 Am-241b P@@S@S@@T@@R@¶@@@C@@@t@+@]@@@w@@T@@_@@۶@¶@@͵@C@}@-@Ӵ@@@@@d@(@W@@@@W@;@@@@X@@h@@@[@!@ʯ@@ԯ@@@@@ @@@Ь@@@l@֫@r@@2@ƪ@Ҫ@l@Ī@&@@@J@D@<@f@@b@6@@@@@@ @f@N@.@@>@@_ c=@??@i@Z# Gy/min u-2/secnone  Sr-90 Am-241b @Q@S@Q@R@@2@@ϻ@@g@@@@@ܸ@]@$@@@@Ѷ@^@J@ϵ@h@@@F@ϴ@´@@@@Y@d@>@Բ@@|@@@@(@@S@@y@ɰ@@-@_@<@@@>@ޮ@@@@@@`@*@,@h@@@z@t@@V@@b@@@T@@@@R@v@@0@@,@X@h@ا@2@>@@H@@@_ c=@??@i@Z# Gy/min u-2/secnone  Sr-90 Am-241b @R@Q@Q@@T@S@@ݻ@6@d@@B@ڹ@@O@@j@@@N@@@$@j@1@@[@@@@@@ó@@@@@@6@m@W@>@y@@@ @ٰ@ް@@G@X@0@ @@F@@Ү@@>@@8@@@ު@@2@B@n@f@@@.@@,@@@@J@@@^@@@4@@@@J@@F@@@ʦ@r@@@@@_ c=@??@i@Z# Gy/min u-2/secnone  Sr-90 Am-241b Ȁ@O@@Q@O@Q@0@@d@Y@@'@@ѷ@G@@@B@]@@_@@@@\@J@@@:@ @@g@W@@/@@@0@X@)@°@/@@@f@@Я@:@.@@@ԭ@@̭@p@n@@ެ@@ʬ@@@ī@0@@֪@@f@@@Ʃ@b@L@@ި@@$@$@֧@@@֧@>@@l@\@@~@Z@0@*@ @@@@@_ c=@??@i@Z# Gy/min u-2/secnone  Sr-90 Am-241b @T@T@S@Q@d@2@@׺@ @3@@p@@@V@@@@ڶ@@b@5@@@@@n@D@@@@/@@@@q@p@I@@U@@ɰ@@@@@Я@@@@@V@L@@@@@@ޭ@@@@@Ȭ@@֫@@J@.@ @ڪ@"@4@P@X@\@T@@@L@x@ڧ@@@<@@T@<@ڦ@@@@@@_ c=@??@y@Z# Gy/min u-2/secnone  Sr-90 Am-241b @\@]@@]@^@n@u@L@@ @@@ @@E@1@@G@e@@@Q@@@@@/@@@x@@g@=@ѽ@޼@@@)@Ļ@g@e@غ@@@@@@@Ը@V@^@@ڷ@v@L@ @@@ֶ@>@_@ߵ@@@D@@@z@T@>@@@@y@_@(@;@6@v@@@y@@D@@@߱@@@Q@@@@@E@_ c=@??@y@Z# Gy/min u-2/secnone  Sr-90 Am-241b X@[@@Z@W@Z@M@@@@z@q@@}@@@@|@;@I@(@¿@@5@ν@m@@@@`@׻@@9@@I@@r@@@T@@&@(@@@J@+@@߶@@@@ǵ@o@U@@@\@T@@@@@9@@A@[@?@}@@@@ @@̱@ϱ@@@v@@@@ڰ@ɰ@I@R@@@@ޯ@@|@®@®@:@&@_ c=@??@y@Z# Gy/min u-2/secnone  Sr-90 Am-241b H@W@U@@X@@V@W@P@/@@X@P@@7@T@@@@H@@t@@@>@4@ߺ@]@u@@A@@@<@@9@`@\@?@@g@B@ص@̵@@e@U@@ƴ@o@@@@@_@;@Dz@@c@ܲ@@@@@@?@ڱ@@@\@߰@@@@@;@@0@|@@¯@®@@@@@@ʭ@@~@.@2@@@@(@@_ c=@??@y@Z# Gy/min u-2/secnone  Sr-90 Am-241b @@[@Z@@[@Z@@v@*@}@F@@@L@@|@J@@@@g@@@ھ@@@B@@i@@@x@@r@'@@@@@ù@1@@@@0@[@@@@@J@@A@?@F@~@ @@ߴ@@@G@W@ @@b@@@@@@g@@"@@@@@@)@԰@@v@ڰ@G@1@@̯@ @5@|@®@X@v@l@@6@_ c=@??@y@Z# Gy/min u-2/secnone  Sr-90 Am-241b @Y@\@\@@\@@@|@B@@M@j@@U@(@@@S@@@b@@@@p@@;@@@6@@Ž@ҽ@,@@@m@@»@@@ں@@H@@ǹ@K@U@"@@n@ݷ@@5@ @@,@@@Ķ@@@@@@@[@Ҵ@޴@S@@ҳ@ݳ@@@7@@@@˲@@|@8@@@̱@@R@"@Ͱ@@@2@@@_ c=@??@Z# Gy/min u-2/secnone  Sr-90 Am-241b @\@]@@^@_@.@E@@@d@@A@$@@]@@@p@)@@@^@@@@s@/@@@T@@@@@@,@@@T@/@Ӽ@}@@̻@@T@@@@@@@@@@@@Y@@@2@@ж@@g@@A@ @M@@@D@H@|@@@@4@˳@س@@K@R@@@@@@j@i@9@@@@@_  c=@??@Z# Gy/min u-2/secnone  Sr-90 Am-241b @\@[@@[@X@l@Q@@@d@@M@@@}@&@@@s@@@^@R@@@q@@@@D@@@@r@@μ@ż@6@b@I@ں@@@}@_@*@@@߸@ɸ@@@@׷@*@2@@^@z@8@@@@w@δ@@@Ŵ@K@@$@@@@@B@@@Բ@k@L@0@K@Ա@@α@@@Q@@@@װ@ǰ@@_ ! c=@??@Z# Gy/min u-2/secnone  Sr-90 Am-241b @\@_@`@@^@@@T@@@j@@q@*@@w@&@@@q@@@a@H@@@G@b@3@B@T@E@@e@2@@@c@j@ @@]@@}@7@@@@@@\@@@@@@C@@m@)@@͵@͵@@d@`@P@#@̴@ô@r@1@Z@o@@h@@J@@t@@@@@@@@@u@@;@$@@@ư@_!" c=@??@Z# Gy/min u-2/secnone  Sr-90 Am-241b @a@]@\@`@N@@@o@Y@@@@@/@@@@@@@p@2@@@I@2@@@w@A@4@@S@ξ@~@@˽@@@a@@@\@ @W@@@@@$@@ @˹@&@@x@@3@'@@ܷ@l@@ж@@5@\@4@#@@@}@ܴ@K@@@G@@2@̳@@@@s@l@IJ@@@ @y@@@:@B@_"# c=@??@Z# Gy/min u-2/secnone  Sr-90 Am-241b @@Z@]@@_@]@$@w@@@z@"@@@@@@ @@@i@@@@*@@@@9@@@i@@@ӽ@f@G@E@ @m@f@ @k@b@@>@@;@@@k@˸@ȸ@U@@@\@@w@g@@ƶ@@@@@@Z@@@޴@ @@6@i@@+@@@{@j@@@@@@x@.@ @@@@n@@u@@@_#$ cf@=@??I@Z# Gy/min u-2/secnone  Sr-90 Am-241b \@(@,@0@*@@@@H@@@T@<@\@@d@t@@@l@@@@@@P@@@@@@@@@p@@X@@@@@ @`@P@@@@`@@@ȉ@@x@@@@@@@@@ @@І@@@@@`@@@@(@p@X@p@@@X@@`@@؄@@ȃ@@X@8@p@X@@P@@@@@@@X@_$% cf@=@??I@Z# Gy/min u-2/secnone  Sr-90 Am-241b U@"@.@$@.@@@x@@@@đ@@X@@@(@`@@@@h@h@@T@@P@0@@H@P@@@@x@ @0@x@ @ȉ@؈@ȉ@H@@@@@0@Ї@P@@@@h@؅@؇@@(@P@؅@@@@@X@p@X@@@@@(@h@ @8@@@@@@@@x@@@Ё@@@@؀@@h@@X@@@@0@@_%& cf@=@??I@Z# Gy/min u-2/secnone  Sr-90 Am-241b \@*@0@,@0@@|@@@@@@̓@h@@̒@@@@@@@@h@@p@@@@0@T@@@ @@ȍ@@@H@0@@@p@x@@@x@@@ @@@X@@P@@@@@@@@@@@@@P@@@@@@@p@ @Ѕ@@h@Є@@@@@@P@@@(@@@@0@@@@@_&( cf@=@??Y@Z# Gy/min u-2/secnone  Sr-90 Am-241b h@5@<@9@8@,@ʢ@@@@r@2@@0@|@@@x@@@<@@@@L@@4@@@x@h@8@@ؙ@|@̚@8@Ę@@̘@Й@@@@4@@@`@L@@@@@@@@Ԗ@L@\@@@ē@<@L@@@(@ē@@T@l@@T@@<@@<@ؑ@@@@@@0@ @ @D@@@@@<@l@D@@@_') cf@=@??Y@Z# Gy/min u-2/secnone  Sr-90 Am-241b `i@5@<@A@>@~@@@2@b@@*@T@|@"@V@ޢ@֢@@ @Ρ@n@"@@@@x@@0@؟@@@@@ @T@P@@@ě@8@@<@@@Ě@@ @p@@@@ȗ@h@d@@ܗ@ @h@@@\@P@`@@t@@t@P@x@@@@$@@ @@@L@ @4@X@x@0@ @@@@@@@@8@0@0@_(* cf@=@??Y@Z# Gy/min u-2/secnone  Sr-90 Am-241b o@<@6@<@:@@@@@ܢ@ @&@j@@0@@@@@&@@@@d@p@Ԟ@`@P@@@@@X@p@ԛ@@x@L@@$@@@@$@,@ @8@ȗ@@ė@|@ܖ@@P@ԕ@@@@@(@4@ܔ@Д@@@ؔ@@8@@ @@D@@@@L@@@\@@@@@đ@đ@@@x@@@@T@@@@@X@@ @@_)+ cf@=@??c@Z# Gy/min u-2/secnone  Sr-90 Am-241b o@>@B@C@E@@@@@<@P@ĩ@t@@@D@d@@0@\@@B@@@ĥ@@@@@@n@@2@~@@֢@ʢ@D@ @Ģ@@r@֠@@@H@6@r@p@@r@<@D@@(@@@\@@@@@؜@P@<@@@t@@@(@p@d@@t@Й@@$@0@ԙ@@@@З@@l@D@ؗ@@З@@ @@X@@_*, cf@=@??c@Z# Gy/min u-2/secnone  Sr-90 Am-241b 0r@A@D@@@C@@Ь@@n@ @@ @@@@@~@@ @.@X@@x@x@@l@8@@<@@@@p@T@@@\@@آ@ʢ@@@@@@@@t@N@ڠ@\@@R@@@ @@؟@؟@@@@@H@@@Ԝ@@$@@l@@@@@@@@ܚ@@Ț@@p@@|@T@@@@@Ę@@@`@(@T@_+- cf@=@??c@Z# Gy/min u-2/secnone  Sr-90 Am-241b @w@C@B@C@B@\@,@J@@>@@@@@@@@F@@,@@@@@@ @@@@|@(@(@B@@"@4@@أ@@ @¢@@@@~@@ȡ@.@@@@ @@Ƞ@@R@2@@>@,@̞@@p@ܞ@L@@@Н@ @@`@@P@D@H@|@@@ؚ@p@@@\@,@@<@@X@\@Ԙ@@ @@@@\@H@_,. cf@=@??@i@Z# Gy/min u-2/secnone  Sr-90 Am-241b 0y@H@H@G@L@R@@@@±@o@@\@@@@7@@ʯ@\@"@@@ƭ@l@@j@.@@ @&@F@Ԫ@@Ω@@ީ@@@$@D@8@ @ @`@@@8@@@6@@Х@z@@@@@@6@@~@ܣ@@@v@|@@d@@p@~@@@@ҡ@@@N@t@l@@@Р@@@@@~@*@@(@ @@@_-/ cf@=@??@i@Z# Gy/min u-2/secnone  Sr-90 Am-241b u@I@G@H@E@@@(@@ٰ@?@2@b@j@@@@B@@j@L@0@@@@@8@@L@@@ڨ@@@r@@@2@@@x@@@@t@,@@@@X@@ @j@*@@v@@0@@@@@ȡ@@@(@ġ@ޡ@t@@`@@Ԡ@~@@>@X@X@H@@@@@@؞@\@X@T@h@Н@H@@\@@@ț@_.0 cf@=@??@i@Z# Gy/min u-2/secnone  Sr-90 Am-241b w@G@H@F@G@:@y@"@@*@հ@ް@@@@2@@@X@@@@F@@@@V@.@@ @H@:@̨@r@ب@@@@v@Z@>@:@@n@@@@@P@f@@T@n@@B@ң@z@@@@0@@J@\@@@@@R@L@H@@:@@p@@@@@@ȟ@@&@@@|@$@@d@@@ @@@l@̝@_/1 cf@=@??r@Z# Gy/min u-2/secnone  Sr-90 Am-241b @R@P@Q@P@@I@M@@ȹ@ȸ@@@@v@@I@ @@9@@N@@@@g@@@ij@ʳ@ @@@,@J@@ұ@@1@@@A@@@&@\@.@@n@b@(@R@@`@ڭ@^@Ԭ@r@@D@~@@@N@@Ԫ@@t@@@@*@@@P@X@@>@֨@F@X@@Ħ@Z@@ʦ@ @@@@@Х@@Х@@*@_02 cf@=@??r@Z# Gy/min u-2/secnone  Sr-90 Am-241b @K@F@N@O@װ@@@@@>@޳@@@@Y@@߱@@P@b@ @۰@@M@ޯ@!@ @ܮ@h@@@@@@@@$@@@@>@@$@@@P@@2@&@F@@@@~@@@@@ڦ@"@$@@n@ @@@@8@z@@X@@j@,@\@Ң@@@@@~@@@@@4@`@@@^@@^@@@@_13 cf@=@??r@Z# Gy/min u-2/secnone  Sr-90 Am-241b (@P@N@@P@P@@@_@@@@@@@@϶@g@@@@@մ@@@#@@@c@@m@z@5@D@ȱ@@G@ @U@@@@v@<@@@\@ @@`@<@@@ @H@$@@>@Ϋ@ҫ@"@J@0@@@N@j@@ܩ@D@L@|@\@@@Ԩ@ܧ@ʧ@@ȧ@@|@4@@Φ@Ҧ@Ҧ@@@,@Υ@ҥ@@@4@@F@@_24 c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b c@2@;@;@4@@ޡ@@t@ҡ@@@@D@@H@l@@@@̜@d@@@@@@@@@@@@p@D@@@@@@@@4@h@@T@ؕ@@<@l@$@@@ܓ@0@@@@@x@@<@@@@@@@@@@@@@А@p@̐@@@@@@p@@X@@@@@@H@@@@x@@@_35 c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b @h@:@@@3@2@ؙ@$@@@@@(@$@@l@ @ @؜@@@ԛ@@@@h@@@L@\@,@@@@@@@Е@d@8@@@0@@@@ؓ@@@@@@ @@T@ @@@@@ @@`@@@@\@H@@@H@0@@0@Џ@(@@@@@@@@@@`@@0@@@@@P@@@@@_46 c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b d@4@8@1@2@@6@@@@@f@@@@4@О@<@@@d@d@@@(@@@@@@h@@<@|@@@@@@p@@4@p@@@\@`@@|@0@@P@P@ԓ@ @\@|@ @@@@@@@ @|@ @ @@@l@@Ȑ@@ @<@Џ@T@8@8@@\@H@4@@@@@Ȍ@0@@@x@h@P@@_57 c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b e@;@8@=@8@@@@@f@@*@|@@@@ĝ@(@@@P@@@@`@8@@@̙@ܙ@0@@@@@@$@@@@@@@@@`@h@`@@@@@@ @@\@ȓ@@@H@̒@@(@@@@@x@@Б@@0@@8@@̐@@@l@@@(@@x@@@@@@X@@ @@Ѝ@@_68 c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b f@6@3@6@8@D@r@@ܟ@P@T@@@ @@@ @ț@@@l@@@@@@T@$@@|@D@,@@ė@t@\@@@@@8@\@@@p@@@@@@@@P@@@@P@P@@`@@@@@@ؐ@\@Ȑ@@@l@X@ȏ@@@@h@P@@@؎@@0@@@ȋ@X@@X@`@Ћ@@@@Њ@@@@@_79 c=@??Z# Gy/min u-2/secnone  Sr-90 Am-241b h@8@8@<@8@H@@@x@֡@ @@@,@@B@@"@ @@@@@@ @@D@@؛@@@̚@ܙ@X@@t@\@$@@@ @@@@ܖ@8@P@@@|@x@@x@ @@@4@,@H@,@@p@@@8@P@ @d@@đ@,@ܑ@ؑ@@,@@@Đ@@@@@x@@0@H@@@@@Ѝ@Ѝ@(@X@@@Luminescence/inst/extdata/STRB87_1_bleached.txt0000644000176200001440000000076014762554470021035 0ustar liggesusers# -------------------------------------------------------------------------------------- # CURVE FITTING TEST DATASET # Berger, G.W., Huntley, D.J., 1989. Test data for exponential fits. Ancient TL 7, 43-46. # # SAMPLE: STRB87 - 1 (bleached) # -------------------------------------------------------------------------------------- 0 11814.6 0 11587.8 0 11708.6 1 26645.2 1 26445.2 1 26368.6 2 41487.1 2 39125.1 2 40582.5 4 61532.1 4 57023.6 8 93015.8 8 87907.7 8 87655.2 16 107618.3 16 110394.02 Luminescence/inst/extdata/QNL84_2_bleached.txt0000644000176200001440000000070514762554470020712 0ustar liggesusers# -------------------------------------------------------------------------------------- # CURVE FITTING TEST DATASET # Berger, G.W., Huntley, D.J., 1989. Test data for exponential fits. Ancient TL 7, 43-46. # # SAMPLE: QNL84 - 2 (bleached) # -------------------------------------------------------------------------------------- 0 20766 0 21393 0 22493 120 31290 120 33779 240 43221 240 43450 240 41427 480 51804 480 59555 480 54013 960 75748 960 76613Luminescence/inst/extdata/Daybreak_TestFile.txt0000644000176200001440000003151314762554470021376 0ustar liggesusersScriptFile=C:\Program Files\Daybreak\FL Console\Scripts\active\QSAR23c.TXT ScriptName=Single aliquot regenerative dose method Sample= ReaderID=TLINFO.DTA ReaderType=2200 SingleAliquot=true [NewRecord] Operation=1 SampleType=Disk Disk=0 DataType=PREHEAT TL MaxTemp=200 HoldTime=10 RampRate=3 Started=6/4/2015 3:58:46 PM Stopped=6/4/2015 4:00:52 PM Points=40 0; 5.000; 30.000; valid 1; 10.000; 32.000; valid 2; 15.000; 30.000; valid 3; 20.000; 28.000; valid 4; 25.000; 32.000; valid 5; 30.000; 33.000; valid 6; 35.000; 37.000; valid 7; 40.000; 31.000; valid 8; 45.000; 29.000; valid 9; 50.000; 25.000; valid 10; 55.000; 37.000; valid 11; 60.000; 37.000; valid 12; 65.000; 36.000; valid 13; 70.000; 34.000; valid 14; 75.000; 28.000; valid 15; 80.000; 36.000; valid 16; 85.000; 35.000; valid 17; 90.000; 32.000; valid 18; 95.000; 31.000; valid 19; 100.000; 31.000; valid 20; 105.000; 31.000; valid 21; 110.000; 41.000; valid 22; 115.000; 28.000; valid 23; 120.000; 39.000; valid 24; 125.000; 28.000; valid 25; 130.000; 39.000; valid 26; 135.000; 28.000; valid 27; 140.000; 31.000; valid 28; 145.000; 36.000; valid 29; 150.000; 43.000; valid 30; 155.000; 34.000; valid 31; 160.000; 39.000; valid 32; 165.000; 31.000; valid 33; 170.000; 35.000; valid 34; 175.000; 41.000; valid 35; 180.000; 45.000; valid 36; 185.000; 46.000; valid 37; 190.000; 50.000; valid 38; 195.000; 70.000; valid 39; 200.000; 82.000; valid [NewRecord] Operation=2 SampleType=Disk Disk=0 DataType=OSL SampleTemp=125 Power=95.00 Started=6/4/2015 4:01:23 PM Stopped=6/4/2015 4:03:03 PM Points=325 0; 0.100; 303.000; valid 1; 0.200; 335.000; valid 2; 0.300; 344.000; valid 3; 0.400; 332.000; valid 4; 0.500; 304.000; valid 5; 0.600; 325.000; valid 6; 0.700; 324.000; valid 7; 0.800; 292.000; valid 8; 0.900; 290.000; valid 9; 1.000; 301.000; valid 10; 1.100; 310.000; valid 11; 1.200; 279.000; valid 12; 1.300; 288.000; valid 13; 1.400; 298.000; valid 14; 1.500; 272.000; valid 15; 1.600; 292.000; valid 16; 1.700; 323.000; valid 17; 1.800; 273.000; valid 18; 1.900; 290.000; valid 19; 2.000; 315.000; valid 20; 2.100; 296.000; valid 21; 2.200; 286.000; valid 22; 2.300; 280.000; valid 23; 2.400; 293.000; valid 24; 2.500; 299.000; valid 25; 2.600; 260.000; valid 26; 2.700; 275.000; valid 27; 2.800; 267.000; valid 28; 2.900; 252.000; valid 29; 3.000; 278.000; valid 30; 3.100; 276.000; valid 31; 3.200; 268.000; valid 32; 3.300; 278.000; valid 33; 3.400; 293.000; valid 34; 3.500; 266.000; valid 35; 3.600; 279.000; valid 36; 3.700; 257.000; valid 37; 3.800; 272.000; valid 38; 3.900; 264.000; valid 39; 4.000; 279.000; valid 40; 4.100; 263.000; valid 41; 4.200; 264.000; valid 42; 4.300; 246.000; valid 43; 4.400; 285.000; valid 44; 4.500; 252.000; valid 45; 4.600; 238.000; valid 46; 4.700; 257.000; valid 47; 4.800; 280.000; valid 48; 4.900; 264.000; valid 49; 5.000; 242.000; valid 50; 5.100; 256.000; valid 51; 5.200; 257.000; valid 52; 5.300; 238.000; valid 53; 5.400; 234.000; valid 54; 5.500; 239.000; valid 55; 5.600; 252.000; valid 56; 5.700; 220.000; valid 57; 5.800; 239.000; valid 58; 5.900; 234.000; valid 59; 6.000; 233.000; valid 60; 6.100; 227.000; valid 61; 6.200; 215.000; valid 62; 6.300; 252.000; valid 63; 6.400; 214.000; valid 64; 6.500; 231.000; valid 65; 6.600; 232.000; valid 66; 6.700; 214.000; valid 67; 6.800; 242.000; valid 68; 6.900; 216.000; valid 69; 7.000; 216.000; valid 70; 7.100; 225.000; valid 71; 7.200; 204.000; valid 72; 7.300; 224.000; valid 73; 7.400; 235.000; valid 74; 7.500; 227.000; valid 75; 7.600; 207.000; valid 76; 7.700; 209.000; valid 77; 7.800; 221.000; valid 78; 7.900; 207.000; valid 79; 8.000; 221.000; valid 80; 8.100; 200.000; valid 81; 8.200; 214.000; valid 82; 8.300; 228.000; valid 83; 8.400; 207.000; valid 84; 8.500; 200.000; valid 85; 8.600; 195.000; valid 86; 8.700; 193.000; valid 87; 8.800; 187.000; valid 88; 8.900; 212.000; valid 89; 9.000; 197.000; valid 90; 9.100; 206.000; valid 91; 9.200; 227.000; valid 92; 9.300; 202.000; valid 93; 9.400; 180.000; valid 94; 9.500; 186.000; valid 95; 9.600; 193.000; valid 96; 9.700; 203.000; valid 97; 9.800; 204.000; valid 98; 9.900; 189.000; valid 99; 10.000; 202.000; valid 100; 10.100; 186.000; valid 101; 10.200; 174.000; valid 102; 10.300; 180.000; valid 103; 10.400; 208.000; valid 104; 10.500; 194.000; valid 105; 10.600; 185.000; valid 106; 10.700; 194.000; valid 107; 10.800; 184.000; valid 108; 10.900; 178.000; valid 109; 11.000; 170.000; valid 110; 11.100; 181.000; valid 111; 11.200; 181.000; valid 112; 11.300; 183.000; valid 113; 11.400; 192.000; valid 114; 11.500; 167.000; valid 115; 11.600; 179.000; valid 116; 11.700; 175.000; valid 117; 11.800; 161.000; valid 118; 11.900; 145.000; valid 119; 12.000; 175.000; valid 120; 12.100; 192.000; valid 121; 12.200; 178.000; valid 122; 12.300; 164.000; valid 123; 12.400; 162.000; valid 124; 12.500; 188.000; valid 125; 12.600; 173.000; valid 126; 12.700; 170.000; valid 127; 12.800; 191.000; valid 128; 12.900; 156.000; valid 129; 13.000; 159.000; valid 130; 13.100; 173.000; valid 131; 13.200; 154.000; valid 132; 13.300; 155.000; valid 133; 13.400; 151.000; valid 134; 13.500; 165.000; valid 135; 13.600; 161.000; valid 136; 13.700; 150.000; valid 137; 13.800; 161.000; valid 138; 13.900; 161.000; valid 139; 14.000; 168.000; valid 140; 14.100; 152.000; valid 141; 14.200; 157.000; valid 142; 14.300; 171.000; valid 143; 14.400; 154.000; valid 144; 14.500; 162.000; valid 145; 14.600; 162.000; valid 146; 14.700; 173.000; valid 147; 14.800; 162.000; valid 148; 14.900; 154.000; valid 149; 15.000; 155.000; valid 150; 15.100; 139.000; valid 151; 15.200; 134.000; valid 152; 15.300; 148.000; valid 153; 15.400; 148.000; valid 154; 15.500; 155.000; valid 155; 15.600; 140.000; valid 156; 15.700; 151.000; valid 157; 15.800; 140.000; valid 158; 15.900; 147.000; valid 159; 16.000; 146.000; valid 160; 16.100; 146.000; valid 161; 16.200; 145.000; valid 162; 16.300; 127.000; valid 163; 16.400; 156.000; valid 164; 16.500; 144.000; valid 165; 16.600; 145.000; valid 166; 16.700; 137.000; valid 167; 16.800; 131.000; valid 168; 16.900; 130.000; valid 169; 17.000; 146.000; valid 170; 17.100; 133.000; valid 171; 17.200; 121.000; valid 172; 17.300; 114.000; valid 173; 17.400; 146.000; valid 174; 17.500; 122.000; valid 175; 17.600; 131.000; valid 176; 17.700; 144.000; valid 177; 17.800; 134.000; valid 178; 17.900; 147.000; valid 179; 18.000; 126.000; valid 180; 18.100; 131.000; valid 181; 18.200; 120.000; valid 182; 18.300; 133.000; valid 183; 18.400; 138.000; valid 184; 18.500; 127.000; valid 185; 18.600; 140.000; valid 186; 18.700; 125.000; valid 187; 18.800; 133.000; valid 188; 18.900; 128.000; valid 189; 19.000; 114.000; valid 190; 19.100; 131.000; valid 191; 19.200; 113.000; valid 192; 19.300; 123.000; valid 193; 19.400; 128.000; valid 194; 19.500; 127.000; valid 195; 19.600; 132.000; valid 196; 19.700; 120.000; valid 197; 19.800; 109.000; valid 198; 19.900; 107.000; valid 199; 20.000; 112.000; valid 200; 20.100; 108.000; valid 201; 20.200; 124.000; valid 202; 20.300; 110.000; valid 203; 20.400; 120.000; valid 204; 20.500; 117.000; valid 205; 20.600; 115.000; valid 206; 20.700; 122.000; valid 207; 20.800; 102.000; valid 208; 20.900; 128.000; valid 209; 21.000; 105.000; valid 210; 21.100; 114.000; valid 211; 21.200; 114.000; valid 212; 21.300; 107.000; valid 213; 21.400; 118.000; valid 214; 21.500; 118.000; valid 215; 21.600; 120.000; valid 216; 21.700; 113.000; valid 217; 21.800; 126.000; valid 218; 21.900; 119.000; valid 219; 22.000; 108.000; valid 220; 22.100; 92.000; valid 221; 22.200; 92.000; valid 222; 22.300; 94.000; valid 223; 22.400; 107.000; valid 224; 22.500; 117.000; valid 225; 22.600; 92.000; valid 226; 22.700; 105.000; valid 227; 22.800; 99.000; valid 228; 22.900; 123.000; valid 229; 23.000; 111.000; valid 230; 23.100; 102.000; valid 231; 23.200; 109.000; valid 232; 23.300; 96.000; valid 233; 23.400; 90.000; valid 234; 23.500; 94.000; valid 235; 23.600; 103.000; valid 236; 23.700; 98.000; valid 237; 23.800; 101.000; valid 238; 23.900; 108.000; valid 239; 24.000; 101.000; valid 240; 24.100; 100.000; valid 241; 24.200; 108.000; valid 242; 24.300; 93.000; valid 243; 24.400; 107.000; valid 244; 24.500; 107.000; valid 245; 24.600; 92.000; valid 246; 24.700; 94.000; valid 247; 24.800; 89.000; valid 248; 24.900; 97.000; valid 249; 25.000; 95.000; valid 250; 26.000; 892.000; valid 251; 27.000; 890.000; valid 252; 28.000; 841.000; valid 253; 29.000; 850.000; valid 254; 30.000; 807.000; valid 255; 31.000; 791.000; valid 256; 32.000; 753.000; valid 257; 33.000; 728.000; valid 258; 34.000; 703.000; valid 259; 35.000; 651.000; valid 260; 36.000; 640.000; valid 261; 37.000; 612.000; valid 262; 38.000; 550.000; valid 263; 39.000; 539.000; valid 264; 40.000; 524.000; valid 265; 41.000; 501.000; valid 266; 42.000; 503.000; valid 267; 43.000; 478.000; valid 268; 44.000; 468.000; valid 269; 45.000; 438.000; valid 270; 46.000; 434.000; valid 271; 47.000; 441.000; valid 272; 48.000; 388.000; valid 273; 49.000; 381.000; valid 274; 50.000; 372.000; valid 275; 51.000; 380.000; valid 276; 52.000; 349.000; valid 277; 53.000; 326.000; valid 278; 54.000; 317.000; valid 279; 55.000; 297.000; valid 280; 56.000; 299.000; valid 281; 57.000; 294.000; valid 282; 58.000; 258.000; valid 283; 59.000; 260.000; valid 284; 60.000; 264.000; valid 285; 61.000; 271.000; valid 286; 62.000; 250.000; valid 287; 63.000; 241.000; valid 288; 64.000; 239.000; valid 289; 65.000; 241.000; valid 290; 66.000; 220.000; valid 291; 67.000; 215.000; valid 292; 68.000; 217.000; valid 293; 69.000; 203.000; valid 294; 70.000; 196.000; valid 295; 71.000; 201.000; valid 296; 72.000; 198.000; valid 297; 73.000; 188.000; valid 298; 74.000; 183.000; valid 299; 75.000; 173.000; valid 300; 76.000; 166.000; valid 301; 77.000; 167.000; valid 302; 78.000; 187.000; valid 303; 79.000; 169.000; valid 304; 80.000; 162.000; valid 305; 81.000; 145.000; valid 306; 82.000; 163.000; valid 307; 83.000; 151.000; valid 308; 84.000; 154.000; valid 309; 85.000; 135.000; valid 310; 86.000; 134.000; valid 311; 87.000; 133.000; valid 312; 88.000; 133.000; valid 313; 89.000; 141.000; valid 314; 90.000; 134.000; valid 315; 91.000; 133.000; valid 316; 92.000; 120.000; valid 317; 93.000; 128.000; valid 318; 94.000; 114.000; valid 319; 95.000; 147.000; valid 320; 96.000; 139.000; valid 321; 97.000; 114.000; valid 322; 98.000; 128.000; valid 323; 99.000; 113.000; valid 324; 100.000; 127.000; valid [NewRecord] Operation=3 SampleType=Disk Disk=0 DataType=NORM Irrad SampleTemp=20 IrradTime=257 IrradDose=20.02 Started=6/4/2015 4:03:51 PM Stopped=6/4/2015 4:08:15 PM Luminescence/inst/extdata/RF_file.rf0000644000176200001440000017312514762554470017161 0ustar liggesusers ROI: ROI 1 ROI 2 ROI 3 ROI 4 ROI 5 ROI 6 ROI 7 ROI 8 ROI 9 ROI 10 ROI 11 x: 19 117 135 54 49 78 209 108 246 232 28 y: 19 73 82 168 175 167 110 54 175 172 169 width: 351 20 20 20 20 20 20 20 20 20 20 height: 351 20 20 20 20 20 20 20 20 20 20 area: 96765 316 316 316 316 316 316 316 316 316 316 No. time (sec) aliquot grain 1 grain 2 grain 3 grain 4 grain 5 grain 6 grain 7 grain 8 grain 9 grain 10 1 12.5 613.6036 650.769 643.1361 646.7025 644.8513 629.8418 626.5759 627.2722 618.2816 619.0475 623.5696 2 37.5 615.3152 651.269 644.5728 649.4241 646.5759 631.7563 629.0032 628.8703 619.8639 621.1551 626.2848 3 62.5 615.2543 651.9747 645.1139 649.3703 646.712 630.5253 628.0095 628.962 619.7184 620.6994 625.5443 4 87.5 616.8258 652.0823 646.2278 650.3987 648.3861 632.5475 630.3165 630.2563 621.5348 622.0475 627.1835 5 112.5 617.073 652.5411 646.9177 649.6266 648.0475 632.4747 630.0222 629.9272 621.981 623 627.5633 6 137.5 618.0075 653.7753 647.9937 651.3354 648.9494 634.1614 631.9715 631.5696 622.4968 622.9684 627.5158 7 162.5 617.5387 653.9209 646.3797 651.0443 649.0348 633.4367 630.481 630.4747 622.519 623.2975 627.7089 8 187.5 618.7645 654.5538 648.3861 652.8513 650.4019 633.9399 632.2816 631.6487 624.1519 625.0823 629.0158 9 212.5 618.8933 654.8228 647.731 653.0506 650.2975 634.5823 632.0348 632.693 623.8101 624.962 628.8386 10 237.5 618.4924 654.6329 648.269 651.8291 649.788 634.8228 631.8291 631.7152 623.212 624.0759 628.3987 11 262.5 618.6822 654.4241 647.7278 651.3513 649.9146 634.2405 632.8829 632.0506 623.2184 624.3513 628.8829 12 287.5 619.1796 654.0253 648.481 653.1424 651.1551 634.3259 632.212 632.3101 625.1867 625.4019 630.5665 13 312.5 618.8217 653.9462 647.8544 652.3924 650.0886 633.5854 632.1867 633.1139 623.538 624.4589 628.6772 14 337.5 618.9307 654.1108 649.0443 652.3133 650.019 634.3987 632.2215 631.9747 623.9778 624.5285 628.443 15 362.5 619.3048 654.7722 648.2816 653.1171 650.7658 634.3861 631.8892 632.3956 624.212 624.6424 629.6266 16 387.5 619.0163 654.6171 648.943 651.8513 649.5728 634.6392 632.3323 632.8386 624.6551 625.5095 628.1329 17 412.5 618.9434 654.5285 649.2057 651.7753 649.8165 634.5538 632.0728 632.5063 624.3608 624.1013 629.7627 18 437.5 618.737 654.5949 648.0696 651.4525 648.8608 634.0443 632.4873 631.6804 623.231 624.4873 628.7627 19 462.5 618.7779 654.2563 648.1171 651.5127 649.6899 633.6835 631.6203 632.5886 623.9272 624.5222 628.5285 20 487.5 619.3553 654.6582 648.6772 652.0949 650.1076 635.0918 632.6487 632.3259 624.2848 624.9525 629.0949 21 512.5 619.4536 654.6234 648.6994 653.0854 650.5253 635.1614 632.4209 633.2658 624.1266 625.2911 629.0032 22 537.5 618.7475 653.8101 647.7658 651.9209 649.943 634.1456 631.7975 631.6677 624.3101 624.5696 628.1677 23 562.5 618.4579 654.2532 647.5728 651.0823 649.0601 634.2405 631.4589 632.3544 623.5918 625.1424 628.4968 24 587.5 618.923 653.9114 647.8608 651.6835 650.2215 634.4019 631.9968 631.8196 624.4272 624.1582 628.6266 25 612.5 618.8005 653.6139 648.0443 651.3892 649.3323 634.6108 632.3133 632.3418 623.8703 624.7437 628.6994 26 637.5 619.1491 653.5411 647.693 652.3608 649.557 634.6994 632.3513 632.5222 624.1962 624.2722 628.731 27 662.5 618.89 654.4905 648.2563 652.2184 650.3354 634.3766 632.3892 631.3797 624.0633 624.943 628.5854 28 687.5 618.9607 654.693 647.8734 652.4873 649.6361 634.0475 632.4114 631.8639 624.4557 625.1899 629.2753 29 712.5 618.8 654.7658 647.0728 651.0665 648.5222 634.2658 632.0032 632.4747 623.8165 624.2057 629.0886 30 737.5 619.0514 653.5032 647.5411 651.807 650.0918 634.0222 631.6804 632.4082 623.6203 624.7247 628.9019 31 762.5 619.311 654.7943 647.5601 652.1709 650.1804 634.6329 632.0285 632.8449 624.5348 624.9747 629.0601 32 787.5 618.7398 653.4525 647.3924 650.8101 649.0316 634.2373 631.5032 631.1013 623.8354 625.3513 627.7627 33 812.5 619.0412 654.1234 648.4557 652.557 650.0063 634.1456 631.7057 632.5728 624.2373 624.5601 628.4905 34 837.5 619.0312 653.9335 647.8133 650.7627 649.4747 634.4272 631.3671 632.0601 624.0696 624.3513 629.1899 35 862.5 618.9551 654.1899 647.6456 651.0886 648.7975 633.9304 631.9177 632.5918 623.6013 624.3671 628.7057 36 887.5 618.4504 653.8513 647.269 651.5063 648.481 634.9241 631.2658 632.0095 623.9684 624 627.6013 37 912.5 619.1043 654.5886 648.0063 651.3259 649.2025 634.0127 632.3323 632.0633 624.0411 625.0443 629.8924 38 937.5 619.1799 653.9241 648.1044 651.1867 649 634.6361 631.5949 631.0348 624.6677 624.557 628.7595 39 962.5 619.041 653.2753 647.9873 651.788 649.1899 634.1456 631.557 632.2658 624.2658 624.4778 628.7753 40 987.5 619.302 654.4525 648.0032 651.731 649.1899 634.5095 632.3956 632.6614 624.9114 625.6108 628.9873 41 1012.5 618.2681 652.7184 646.9778 650.7278 648.5095 633.3513 631.1361 631.2278 622.4652 623.5696 627.6646 42 1037.5 618.4242 652.693 646.9525 650.1614 648.3766 632.9747 631.6139 631.2943 622.9968 624.4367 627.9304 43 1062.5 619.0967 653.4399 646.8133 650.3449 648.2184 635.1392 632.1456 631.8797 624.1899 624.6108 629.0443 44 1087.5 618.6087 653.2532 646.7342 651.5949 649.1487 633.9177 631.3956 631.7468 623.981 624.9146 628.7943 45 1112.5 619.049 653.8165 648.0981 650.8797 648.8924 634.8323 631.6677 631.8418 624.3386 624.8544 628.9462 46 1137.5 619.0551 653.1424 647.1171 650.5665 648.3038 634.1772 631.25 632.0285 624.5506 624.731 629.1297 47 1162.5 618.4463 653.3639 646.2943 649.9747 648.2785 633.7468 631.5665 631.6424 623.7405 623.9241 628.3703 48 1187.5 618.7559 654 647.1424 650.6044 647.8956 633.9146 630.8892 632.2753 624.1741 624.1867 628.212 49 1212.5 618.488 652.8101 647.1171 650.3703 648.8386 633.9272 631.3101 631.9462 622.9114 623.807 628.0759 50 1237.5 618.7313 652.7627 647.2247 651.0475 648.462 633.9019 632.8354 631.6582 623.8259 624.731 628.1551 51 1262.5 618.7288 652.981 647.8165 650.3703 648.6203 633.8259 631.6741 631.6392 624.0348 624.712 628.1392 52 1287.5 618.7365 652.7753 647.019 650.9272 648.0759 633.7658 632.0886 631.7532 623.7184 624.269 629.0981 53 1312.5 618.9991 653.269 647.519 650.3418 648.0475 634.5348 631.5601 631.8892 624.3323 624.8639 628.8766 54 1337.5 618.4219 652.8291 647.0506 649.7437 648.1203 633.25 630.9747 631.3829 623.7753 624.4051 627.7468 55 1362.5 618.9692 653.0886 646.9177 650.9241 649.5316 635.4051 632.2753 631.5253 624.9114 624.6677 628.8608 56 1387.5 619.48 653.5918 647.8481 651.5949 649.2184 634.7816 631.5158 631.8892 624.1867 625.1044 628.5633 57 1412.5 618.6523 653.1772 647.0316 650.288 648.3703 634.193 631.4494 631.6487 623.7785 624.4462 628.6171 58 1437.5 618.9045 654.0411 646.9968 650.193 648.057 633.3165 631.6709 631.7342 624.519 623.9399 628.8006 59 1462.5 618.7706 652.6234 647.0759 650.3513 648.3449 633.5443 631.7342 631.1013 623.7342 624.5728 628.4589 60 1487.5 618.4059 652.1835 646.6582 649.807 647.7025 633.0095 631.1108 630.8323 623.6297 623.5728 627.6994 61 1512.5 618.8161 653.0285 648.1076 650.1013 648.1804 634.1835 631.9747 631.3766 623.7532 625.5095 627.4335 62 1537.5 618.4463 652.4715 646.8165 649.1804 647.2532 633.8513 631.1044 631.9715 623.1171 623.8101 627.2373 63 1562.5 618.9866 653.0949 647.0633 650.0981 647.519 634.3228 631.8418 631.7563 623.1424 624.4842 628.1835 64 1587.5 618.334 652.5475 646.3133 649.9462 647.7532 633.2278 630.8133 630.9684 623.2025 623.8797 627.2152 65 1612.5 618.952 653.3354 647.8291 650.7911 648.7722 634.5475 631.7975 632.3924 624.1013 625.0475 629.0886 66 1637.5 618.6641 651.6646 647.1772 649.1677 647.0538 633.25 631.0601 631.7057 623.8259 623.8639 627.7627 67 1662.5 618.5372 652.2785 646.7342 650.1646 647.8956 633.5127 631.1203 630.981 623.5665 624.443 627.7722 68 1687.5 618.8991 652.8639 646.7025 650.3639 648.2025 634.1772 631.0823 631.5665 624.1772 624.9241 628.0633 69 1712.5 618.3047 651.5222 646.6772 648.7722 646.9937 633.2247 630.8766 631.0633 623.0601 624.481 627.0316 70 1737.5 618.8147 653.2342 647.193 649.3861 647.6203 634.5127 631.1804 631.4652 623.7563 624.4652 628.8734 71 1762.5 618.501 652.0728 646.9589 648.8513 647.1424 633.2278 631.0633 631.3165 623.5759 624.4177 628.1108 72 1787.5 619.1409 654.0158 646.712 650.2753 648.0506 634.3133 631.9652 631.9652 623.5665 624.2658 628.2911 73 1812.5 618.8329 652.3608 647.4304 649.5791 647.7753 634.2184 631.5316 631.0696 624.3608 625.0506 627.4399 74 1837.5 618.4696 653.3544 646.0981 649.3259 647.4494 633.8639 630.7753 631.1203 622.8734 626.2722 627.8196 75 1862.5 618.4497 652.5854 647.1709 648.3639 646.4051 633.5348 631.5918 631.0095 623.9399 624.2057 628.2627 76 1887.5 618.8617 652.2278 646.0411 649.5506 647.8861 633.519 631.4367 631.1203 624.0759 624.2215 628.0095 77 1912.5 618.2807 651.7278 646.557 649.1962 646.8924 632.481 631.9051 631.7753 622.8861 623.6361 627.3133 78 1937.5 619.117 653.0918 647.0949 649.3418 647.8797 634.1203 631.3797 631.9525 624.8671 624.7532 628.25 79 1962.5 618.8144 652.9747 646.5348 649.9873 647.5095 634.2468 631.6171 630.9272 624.1424 624.6709 627.7658 80 1987.5 618.6177 652.7405 646.6614 649.6867 646.6329 633.5823 631.6108 631.231 623.9304 624.1709 628.6487 81 2012.5 618.7662 652.481 646.3481 649.7278 647.4209 634.1171 631.2785 630.6962 623.6266 625.2247 627.5728 82 2037.5 618.5925 652.3956 646.0063 649.6139 647.0475 633.6013 631.0949 631.3513 623.4557 624.7373 627.5601 83 2062.5 619.0939 652.7785 646.5728 649.981 647.6044 633.8449 631.0063 632.2532 624.1392 624.5316 628.1994 84 2087.5 619.1902 652.3797 647.1962 649.4367 647.1835 633.0696 631.3924 632.0285 624.3703 624.6614 628.3861 85 2112.5 618.8515 652.519 646.0665 649.6203 647.7215 633.5285 631.3703 632.1108 624.2627 624 627.9905 86 2137.5 618.7562 653.0158 646.75 649.7753 648.4051 633.8101 632.0222 630.6772 624.1361 623.8671 627.6266 87 2162.5 618.5491 652.1013 646.0032 649.6646 647.9494 633.2658 631.25 631.2184 624.1424 624.0285 627.8291 88 2187.5 618.7426 652.3671 646.4367 649.0443 647.4652 633.8165 630.6519 630.7247 623.8797 624.8259 628.0538 89 2212.5 618.5531 652.0601 646.0158 647.9589 646.462 634.2025 631.1772 630.7152 623.3101 624.1171 628.0158 90 2237.5 618.6534 652.3165 646.4146 649.1108 646.9525 632.8671 631.7816 631.712 623.1772 623.5538 628.0696 91 2262.5 618.6187 652.4905 646.7057 648.4114 646.5728 633.5348 631.5443 631.3513 623.8449 625.1361 628.2658 92 2287.5 618.4215 651.0918 645.9905 649.0633 646.9937 632.712 631.0127 631.4241 623.2785 623.9747 627.5032 93 2312.5 618.7115 651.693 645.0127 648.7342 647.5 632.8481 631.3133 631.038 623.1171 624.1646 627.4494 94 2337.5 619.0205 652.3892 646.4652 648.8924 646.6013 633.7532 632.9399 631.4778 624.769 624.4304 628.2532 95 2362.5 618.5737 651.2405 646.6108 648.25 646.3924 633.3291 631.6203 631.7405 624.0032 623.8703 629.1203 96 2387.5 617.6356 650.3861 645.2089 646.943 645.4715 632.9715 630.2595 629.5823 622.4747 623.3449 627.038 97 2412.5 618.6216 651.9462 646.1677 648.962 646.9335 633.712 631.2722 631.1203 623.8766 624.519 627.8038 98 2437.5 618.6898 651.8196 645.7278 648.4968 646.3861 633.7405 631.288 631.3354 624.2342 624.3386 628.0918 99 2462.5 618.0993 650.731 644.7089 647.9177 646.5728 632.8513 629.9272 630.9462 622.6361 623.4241 627.7373 100 2487.5 618.5218 651.4873 645.4304 649.0285 646.9082 632.9051 631.0316 630.4589 623.1392 624.0316 627.4652 101 2512.5 619.0366 651.538 646.4019 648.9684 646.8449 633.8418 631.288 632.3481 624.1297 624.2563 628.5285 102 2537.5 618.8007 651.6519 645.8481 648.5759 646.7595 633.3386 631.3228 630.8038 624.1835 624.2785 627.3133 103 2562.5 618.554 652.0253 645.5886 648.7658 646.8228 632.1646 630.1741 630.8608 623.3924 623.6171 627.7342 104 2587.5 618.0766 651.2278 645.057 647.3956 645.5601 632.6392 630.5759 630.3956 622.6867 623.6646 626.4462 105 2612.5 618.5946 650.9937 645.8861 647.9873 646.3449 632.9873 631.9272 631.0222 623.693 623.5759 626.7816 106 2637.5 617.9828 650.7563 645.7215 647.6424 645.75 632.5759 630.4652 629.8576 622.3386 623.2595 626.7468 107 2662.5 619.0805 651.9304 645.9747 648.6392 646.9209 634.6234 631.3956 631.3987 624.019 624.8766 627.8418 108 2687.5 618.3992 651.4399 646.1709 647.5854 646.4905 632.4937 630.3101 630.4747 622.962 623.1456 628.2532 109 2712.5 618.4353 651.6171 646.6297 647.7405 646.0601 633.5886 630.5475 630.4019 623.0348 623.5316 627.4082 110 2737.5 618.943 651.4462 645.5443 649.0253 646.9335 634.2437 631.2595 630.9177 623.981 624.8133 627.3892 111 2762.5 618.6558 651.6203 646.0285 647.9335 646.4209 633.3924 631.2563 630.9968 622.9905 624.0127 627.6013 112 2787.5 618.4095 651.962 645.6108 648.7816 646.519 633.3196 631.1994 630.481 623.4209 623.5538 627.4652 113 2812.5 618.5409 651.3038 645.4082 648.0063 646.1203 633.1519 631.8259 630.2373 623.8386 624.3449 626.6835 114 2837.5 618.4967 651.4146 645.3766 648.2816 645.9462 633.2943 630.1614 631.3259 623.3797 624.0759 627.4715 115 2862.5 618.8603 651.3165 646.3766 648.3576 646.5918 633.25 631.8829 631.1297 624.2215 624.2278 627.8544 116 2887.5 619.1797 651.481 646.2405 648.4905 647.0411 634.2658 630.9557 631.7184 624.0095 624.2816 627.981 117 2912.5 618.3571 651.3956 645.1234 647.1551 645.6456 633.3418 631.0854 630.6835 623.2658 623.5728 627.8924 118 2937.5 618.0335 650.3924 645.481 647.3892 645.5 632.1741 630.3196 630.4114 623.2658 623.4241 627.1266 119 2962.5 618.1177 650.0063 645.8006 647.8165 645.4873 632.4335 630.8291 630.788 623.0316 623.8861 627.2437 120 2987.5 618.9252 650.75 645.769 648.7911 646.8544 633.462 631.0854 631.0063 623.6266 624.1519 627.6456 121 3012.5 618.2519 651.3006 645.9462 647.8418 645.6392 632.3354 630.2057 630.2278 623.1076 623.8101 627.4304 122 3037.5 618.8213 650.7342 645.8259 648.1551 646.7595 632.7437 630.6013 631.2785 623.9873 624.3101 628.019 123 3062.5 618.7147 651.7627 645.8133 647.9684 645.9715 633.8924 631.231 630.6835 623.1361 624.1709 627.5728 124 3087.5 618.7709 650.8671 646.1551 647.8987 645.9778 633.2025 631.0823 631.2373 623.6076 624.2215 628.1139 125 3112.5 618.1167 650.9684 645.4209 647.4019 645.7152 632.7785 630.1962 630.2089 623.1013 624.269 626.9462 126 3137.5 619.3078 650.8892 646.0063 648.2184 646.6835 633.5791 631.3386 631.4082 624.3576 625.7184 627.8513 127 3162.5 618.7881 651.2532 646.2215 647.6044 646.0981 633.3608 631.0728 631.1741 624.212 624.3038 627.6709 128 3187.5 618.6196 651.038 646.038 647.6551 646.3449 632.8797 630.9367 630.9842 623.3006 624.0854 627.0696 129 3212.5 618.9873 650.8449 646.25 648.231 645.9525 633.9747 630.7278 631.4209 623.8576 624.1234 628.2215 130 3237.5 618.4587 650.8386 645.557 647.6329 645.3861 632.9937 631.0601 631.4209 623.6709 623.3576 627.019 131 3262.5 618.0786 649.6329 644.2437 646.9494 644.5601 631.712 630.1835 630.5918 622.6804 623.6013 626.8449 132 3287.5 618.625 650.6044 644.8892 648.2184 645.5316 632.8481 630.5665 631.3133 623.3101 623.9019 627.019 133 3312.5 618.6231 651.6424 645.8829 647.1234 645.5253 633.9019 630.7152 631.0538 623.3987 623.1551 627.6424 134 3337.5 618.6622 650.5 645.1044 647.9177 645.3101 632.9304 630.6677 630.3259 623.7247 623.7943 627.4146 135 3362.5 618.5464 650.6044 644.7089 646.8038 645.3924 632.6329 630.481 630.7278 624.0443 624.2785 626.9589 136 3387.5 618.7836 650.3671 645.6835 647.2595 645.2563 633.4177 630.693 631.1835 623.3386 624.3418 626.9241 137 3412.5 618.8434 651.3323 644.9684 647.3671 645.3449 633.3449 630.943 630.3418 623.5759 623.9525 628.3797 138 3437.5 618.6767 650.7437 645.8133 646.9082 644.5981 633.2911 630.2785 631.0918 623.8639 624.1139 626.5791 139 3462.5 618.2843 649.8323 644.7595 647.7943 645.6392 632.7405 629.9304 630.1329 622.5886 623.2247 626.7437 140 3487.5 618.3255 651.6203 644.9146 647.5854 645.3481 632.6614 630.1424 630.0601 623.7057 623.8829 627.0348 141 3512.5 618.8023 650.8291 644.9462 647.7184 645.6804 632.4146 630.9209 631.0063 623.8133 624.1456 627.5791 142 3537.5 618.2801 650.3734 644.4146 647.8165 645.1361 632.9715 630.4462 630.1962 623.2563 624.462 626.481 143 3562.5 618.6223 650.7215 644.8703 647.1392 645.5538 632.7816 630.5601 629.9873 623.5665 623.4209 626.8544 No. time (sec) aliquot grain 1 grain 2 grain 3 grain 4 grain 5 grain 6 grain 7 grain 8 grain 9 grain 10 1 12.5 616.0312 658.6906 649.9153 658.2347 655.7046 633.8033 631.1412 632.9204 621.5427 622.2058 629.0102 2 37.5 612.2725 655.4048 646.6503 655.4416 652.5029 629.4791 626.8322 628.7589 618.7269 618.154 625.8077 3 62.5 613.7485 656.4286 647.5412 656.7557 653.8102 631.0449 628.7583 629.5886 619.1664 619.6345 626.887 4 87.5 614.9674 658.2303 648.6834 657.0633 653.7187 632.5811 629.3318 631.163 620.3468 620.5988 628.0899 5 112.5 615.9991 657.9084 648.8509 657.479 654.627 633.0045 632.493 631.985 622.7405 623.5552 629.6421 6 137.5 616.2784 658.4475 649.7241 658.8042 656.2519 634.8908 631.4959 632.1283 621.2177 622.3616 629.4942 7 162.5 616.1318 659.4131 649.8941 658.4598 656.1778 633.8129 631.2871 632.5899 620.932 622.107 628.9506 8 187.5 616.8854 659.6138 650.2727 658.8553 656.225 634.6475 632.155 632.6959 622.0203 622.6792 629.8228 9 212.5 617.3767 660.7341 651.209 659.1971 656.6876 634.6072 632.0881 633.5808 622.4895 623.2277 629.7101 10 237.5 617.4728 659.6334 650.7071 658.6893 656.4377 635.3214 632.2872 632.9481 622.7366 623.164 630.1439 11 262.5 618.0988 660.6009 651.5431 660.2137 658.0555 635.9507 632.8362 633.7608 623.0455 623.0344 630.3384 12 287.5 618.1591 660.6857 651.6801 660.0739 657.2581 636.1234 633.2454 634.4526 623.7032 624.5858 630.8197 13 312.5 618.4908 661.368 652.1233 660.3118 657.2619 636.2012 633.1976 634.0285 624.1963 624.7369 631.0497 14 337.5 618.6913 661.0175 652.3968 661.1084 658.283 636.5828 633.3447 634.4143 623.9483 624.9399 631.358 15 362.5 618.5761 660.6205 652.3064 660.9544 658.1209 636.4211 633.6617 634.9462 623.7633 624.4986 631.2697 16 387.5 619.0878 661.6962 652.0899 660.2787 657.1431 636.2823 634.0592 635.3468 624.1583 625.4925 631.0609 17 412.5 619.1123 661.0516 653.4275 661.4284 658.7825 636.6452 633.8941 635.0008 624.4952 625.1524 631.2235 18 437.5 619.1219 661.83 652.6724 660.51 657.6139 637.0458 634.0824 635.157 625.0518 625.1468 631.8565 19 462.5 619.1186 660.596 652.6746 660.2996 657.7479 636.0863 634.0373 635.409 625.2233 626.069 631.0531 20 487.5 618.6514 660.9863 652.2574 659.3774 657.0476 635.8082 633.5955 634.8518 624.9103 624.4519 631.1783 21 512.5 618.6185 661.108 652.826 660.109 657.1883 636.7313 633.7887 634.8854 623.9059 624.4369 631.8754 22 537.5 619.0751 660.9557 653.2617 660.274 657.0657 636.7279 633.791 635.2694 624.6487 625.6795 630.7416 23 562.5 618.8382 660.4928 651.8307 659.4779 656.3989 636.0958 633.3189 634.919 624.4194 624.9968 631.0872 24 587.5 619.1382 660.9742 652.1005 660.8257 657.4648 636.3843 633.3951 635.4573 624.4644 624.8242 631.8506 25 612.5 619.7459 661.0917 652.6333 660.569 658.3732 637.754 634.7651 635.4046 624.9538 626.0424 631.7531 26 637.5 619.3593 661.2368 652.5708 660.5365 657.9042 636.8119 634.2966 634.7033 624.1106 625.0724 631.2318 27 662.5 619.4168 661.4003 652.8548 660.5254 658.0511 636.8973 633.3523 635.1406 624.1972 625.0206 631.5518 28 687.5 619.8258 660.9017 652.6172 660.6988 658.0219 637.6791 634.7789 635.3681 624.8823 626.8548 631.3864 29 712.5 619.4522 661.8692 651.9301 660.1876 657.8309 637.6165 634.5131 635.77 624.4221 625.0042 631.6815 30 737.5 619.6236 661.1969 653.3451 660.4172 657.922 636.145 634.2412 635.0599 625.5943 625.7517 632.543 31 762.5 619.3767 660.958 652.1418 660.562 658.2986 636.2887 634.3318 635.3714 625.2461 624.884 631.8345 32 787.5 619.1879 660.5759 652.2561 659.0396 656.5601 635.7813 634.2179 635.4272 624.7261 625.9287 632.3679 33 812.5 619.5383 660.4396 652.2926 659.4839 657.0866 636.5578 633.9843 635.2885 624.8658 625.742 631.2716 34 837.5 619.8293 661.4764 652.6684 660.3092 658.0901 636.7865 634.6386 635.0527 625.0525 626.3872 632.4097 35 862.5 619.3868 661.2335 652.5278 659.1183 656.4801 637.0851 634.5441 634.3174 624.1022 624.6214 630.8086 36 887.5 619.5994 660.5377 652.3172 660.0516 657.437 636.587 634.1476 635.7901 625.9885 626.2344 632.9402 37 912.5 619.0942 659.3482 652.157 658.9576 655.6765 637.0414 633.3473 633.5141 624.4448 623.8679 630.0886 38 937.5 619.4612 659.5308 652.6359 660.1829 656.9747 637.1701 634.1015 636.1454 625.1366 626.2227 631.9286 39 962.5 619.23 660.2986 651.4306 659.4451 656.2312 636.3953 633.2892 634.6489 624.569 625.2839 631.4595 40 987.5 619.5328 660.9764 651.7374 659.2391 656.6079 636.4839 633.713 635.7279 624.8239 626.4778 631.2861 41 1012.5 619.5093 659.6945 651.6841 659.2604 655.8882 635.5746 633.858 635.6404 625.4522 625.3535 631.8243 42 1037.5 618.6795 659.061 651.4754 658.0793 655.6121 636.4216 632.8933 633.8865 624.0987 624.48 630.4105 43 1062.5 619.2866 659.7778 652.5493 659.2619 656.6086 637.068 633.6919 634.7811 624.4517 624.8592 631.1715 44 1087.5 619.1471 660.3686 652.1764 658.2279 656.1815 636.1857 634.2407 634.8808 625.1851 625.1814 630.8224 45 1112.5 619.6001 660.9443 652.8683 658.8397 656.3722 636.2745 634.5092 635.2982 624.781 624.8203 631.3737 46 1137.5 619.6578 660.1256 652.3762 659.4315 656.9237 636.7025 634.0145 635.1175 625.2248 626.2819 631.1542 47 1162.5 619.195 659.4838 651.4366 658.5505 655.7848 636.5201 633.5235 634.7034 624.5456 625.142 631.4184 48 1187.5 619.4215 659.7769 651.7305 657.9934 655.585 636.2133 633.8861 635.2471 624.3509 625.1392 631.3784 49 1212.5 619.4365 660.417 651.6828 658.4544 656.0292 636.839 633.8779 636.0436 624.8158 625.3572 631.5027 50 1237.5 619.2843 659.2626 652.1786 658.4305 656.2508 636.8049 632.9646 634.1576 624.554 625.3334 631.2679 51 1262.5 619.6429 659.0053 651.6919 658.7217 656.6364 636.5588 634.3722 635.2047 624.8602 625.6231 631 52 1287.5 619.0538 659.3861 651.2924 657.7921 655.3807 635.633 633.1669 634.139 624.5008 625.173 631.1169 53 1312.5 620.032 660.536 652.2995 660.0736 657.1688 637.2071 634.6034 634.9736 625.1411 626.5192 631.8403 54 1337.5 619.4964 659.4269 651.6734 658.4676 656.1291 636.8711 633.8782 634.7606 624.4274 625.0013 630.9104 55 1362.5 619.7869 660.1535 652.2897 658.3939 655.9227 637.2328 633.873 635.0491 625.0588 626.2417 631.6512 56 1387.5 619.4803 660.4408 651.9966 658.3815 656.0329 637.2461 633.9087 634.7836 624.2137 625.2806 631.6511 57 1412.5 619.6992 660.2073 651.504 658.0831 655.4986 636.1798 634.1972 635.0368 625.1055 626.2759 631.6616 58 1437.5 619.5442 658.662 651.3918 657.9064 655.5442 635.9153 633.7881 634.1599 624.1967 625.1631 631.4295 59 1462.5 619.4614 659.7977 651.5216 658.4922 655.9853 636.4371 634.2494 634.2409 625.1905 625.6924 632.02 60 1487.5 619.6884 659.9299 651.3604 658.3508 655.3531 636.6494 634.5504 634.9116 624.3557 625.6612 631.0877 61 1512.5 619.321 658.5944 651.0599 658.6518 655.6142 636.0016 633.4034 634.5415 624.6537 625.0472 630.9542 62 1537.5 618.9828 658.6687 651.6243 657.6624 655.6001 635.7524 633.4592 634.2011 624.1516 624.5758 631.3773 63 1562.5 618.8885 658.6872 650.5297 657.4567 654.5753 635.5946 632.2904 634.1618 623.8654 625.468 630.3673 64 1587.5 619.4941 658.6496 651.5327 657.9368 655.829 636.1975 633.2635 634.4595 625.245 625.7107 631.5946 65 1612.5 619.3935 659.1844 650.7135 657.4629 654.9711 636.492 634.176 635.4589 624.9972 624.9031 630.5326 66 1637.5 620.0406 659.5483 651.796 658.3489 655.9309 637.283 634.1377 635.8601 624.9593 625.9175 632.1007 67 1662.5 619.3584 658.9118 651.6015 657.316 655.3936 636.2646 633.7975 633.9978 625.6658 625.9268 630.9313 68 1687.5 619.5718 659.0942 651.0267 656.9502 654.5683 636.1923 633.5457 634.6133 624.7929 625.713 631.9673 69 1712.5 619.2193 658.7454 651.3887 657.2803 655.3566 635.1547 634.0597 634.3789 624.0603 624.6939 631.1956 70 1737.5 618.9174 657.8332 651.453 657.6417 654.7302 635.399 634.1921 634.3673 624.1435 624.8887 630.1608 71 1762.5 619.4594 658.7201 651.0777 657.3186 654.5621 636.7052 633.9346 634.8716 624.0879 625.0527 631.0306 72 1787.5 619.7125 659.3703 651.2185 656.8614 654.7953 636.302 633.8636 634.1315 624.8647 626.2475 630.7097 73 1812.5 619.5472 657.7522 651.5681 657.1853 654.6893 635.6448 633.6509 634.3233 624.8097 625.5929 631.1763 74 1837.5 619.0432 657.8746 651.3865 656.5779 655.0572 635.7624 633.8879 634.907 624.4179 625.2225 630.7489 75 1862.5 619.6406 659.345 651.2913 657.4556 655.0584 635.8297 633.7887 634.3467 625.2603 625.3803 630.8645 76 1887.5 619.2242 657.9095 651.259 656.5765 654.3004 636.3673 633.3679 634.3054 624.8213 625.1158 629.9752 77 1912.5 619.1395 657.4696 650.5891 656.6981 653.9891 635.7321 633.3386 634.003 623.9899 624.5865 629.89 78 1937.5 619.5915 659.051 651.9002 656.2175 653.737 636.5006 633.1654 634.2198 625.5754 625.6681 630.9369 79 1962.5 619.1232 658.8884 651.6986 656.3629 654.0432 636.0789 633.3622 634.2651 624.0047 625.3912 630.3894 80 1987.5 619.1797 657.7236 650.7777 656.6434 654.3553 636.203 633.3624 633.9448 624.7588 625.7231 631.2615 81 2012.5 619.4284 657.9564 650.2802 657.3472 654.7189 635.5213 632.7538 633.3559 624.2177 625.1658 630.4095 82 2037.5 619.8186 659.4537 650.7789 656.8068 653.9533 635.7599 634.2697 634.5317 625.5351 625.7355 630.6639 83 2062.5 619.0361 658.4525 650.6979 655.9353 654.8402 636.3408 633.0554 634.0612 625.0946 625.2953 630.1426 84 2087.5 619.0679 658.2028 650.7546 656.263 653.9579 635.3997 632.9751 633.8175 624.7005 625.0064 630.2469 85 2112.5 619.5036 657.6676 650.9825 656.0741 653.8184 635.8177 633.756 634.3187 625.1032 625.7711 631.028 86 2137.5 619.5838 658.24 651.1151 656.7514 654.7543 636.0051 633.4436 635.0968 624.5704 625.4066 630.8816 87 2162.5 619.7774 658.8586 650.8417 656.5809 653.8432 636.021 633.6121 635.1417 625.2152 625.9074 631.0059 88 2187.5 619.3818 658.008 651.2315 655.5812 653.7966 635.8189 633.3187 634.5345 625.5258 625.5007 629.6714 89 2212.5 619.4099 657.9034 650.5906 656.2516 654.5323 635.8962 633.5433 634.6133 624.7552 624.6984 630.9105 90 2237.5 619.4089 657.8727 650.5439 656.8112 653.9223 636.1951 633.3068 634.0905 624.7773 625.0253 629.772 91 2262.5 619.0846 657.3841 650.6034 654.7351 652.6919 635.3334 633.3407 634.7331 625.0086 624.9161 630.2352 92 2287.5 619.1711 657.5069 650.5812 655.9594 653.3334 635.3078 633.4448 634.1535 624.0512 624.5332 630.9288 93 2312.5 619.6704 657.979 650.9181 656.2473 654.2735 635.9193 634.164 634.3943 625.4596 625.8996 630.9707 94 2337.5 618.9883 657.2547 649.8742 655.3017 653.7401 634.9956 633.05 633.1128 624.573 625.1108 630.315 95 2362.5 618.77 656.8524 650.6318 655.4716 652.9324 635.1069 632.2976 633.7103 623.8329 624.6676 630.0484 96 2387.5 619.18 656.759 649.9029 654.9803 653.013 635.6059 633.0676 634.4104 624.1588 625.0173 630.1128 97 2412.5 619.5943 657.0053 650.5318 655.9102 653.5507 636.4233 633.3031 634.4716 625.0143 626.319 630.4698 98 2437.5 619.5089 657.0871 650.8551 655.4628 653.8055 635.4576 633.061 634.1545 624.5815 625.6028 630.2713 99 2462.5 619.1695 656.976 650.3881 654.7235 652.6026 635.3256 633.1645 633.4862 624.8209 624.662 630.4411 100 2487.5 618.513 656.6107 649.1075 654.3781 652.9325 634.9442 632.8046 633.1775 623.6661 624.6586 629.0236 101 2512.5 619.2534 657.1351 650.5383 656.098 653.0957 635.2848 633.0267 634.5299 624.5957 624.9733 629.6232 102 2537.5 619.2428 656.8518 649.9549 655.1723 652.813 635.4614 633.5816 633.4532 624.7441 625.315 630.2144 103 2562.5 619.3259 657.2634 650.6989 655.4452 652.9216 635.4495 632.8607 633.0796 624.5442 625.4914 629.8364 104 2587.5 618.8588 655.8009 649.4842 654.8497 652.251 635.2849 633.4936 633.4721 624.7792 624.7345 629.9124 105 2612.5 619.1994 656.7192 650.2401 655.0245 652.8849 635.9081 633.3239 633.1811 624.7036 625.19 630.1405 106 2637.5 619.9097 656.9048 650.4774 655.2567 653.4062 635.5823 633.2125 634.011 625.769 625.796 631.052 107 2662.5 619.4985 657.6028 650.6427 655.4614 653.269 635.1971 633.4538 633.2507 624.8212 625.5746 630.1575 108 2687.5 619.5252 657.6984 649.8065 655.6652 653.447 635.831 633.2355 633.1174 624.3204 625.6367 629.853 109 2712.5 618.6822 656.1635 650.075 653.9919 651.5348 634.6455 633.0949 633.5289 624.6241 623.9609 629.9132 110 2737.5 619.5611 657.4272 650.3853 655.1591 653.2736 634.8469 633.1436 634.2127 624.3819 625.4382 629.7827 111 2762.5 619.2262 656.3097 649.845 654.0503 652.607 635.4814 633.1084 633.1744 624.3562 625.4302 629.8924 112 2787.5 619.0123 656.8555 650.4595 654.914 652.7917 634.7565 632.5618 633.6617 624.5954 625.0725 629.9964 113 2812.5 619.0788 655.4473 649.5705 654.366 652.6426 635.1044 633.3604 633.324 623.7475 624.5335 629.8858 114 2837.5 618.9793 656.731 649.5823 654.2256 652.1266 634.853 633.2974 633.3168 624.1936 624.96 629.4152 115 2862.5 618.7719 655.694 649.4038 654.2175 652.1053 635.1691 633.1611 632.8076 623.1571 624.4319 630.0259 116 2887.5 619.1117 656.9854 650.0139 653.9536 651.8239 635.6695 632.1369 632.7 623.9512 624.8383 629.6973 117 2912.5 619.1237 656.0197 650.2586 654.5489 652.2038 635.4597 632.4124 633.5215 624.9163 625.3797 629.4735 118 2937.5 618.9059 656.6491 648.8929 654.4913 651.8942 635.3355 631.9433 633.5877 623.8877 624.385 629.1411 119 2962.5 619.3233 656.8432 649.3856 654.7177 653.3717 635.5564 633.6213 633.4085 625.1093 624.9929 630.0352 120 2987.5 619.8558 656.845 650.6094 654.5986 652.7007 636.4113 633.2379 633.598 625.1809 626.0924 630.5962 121 3012.5 618.9967 655.3859 649.56 654.115 652.3905 635.3777 632.0422 633.4079 624.9945 624.5787 629.6779 122 3037.5 619.3723 656.248 649.6002 654.6798 653.4212 635.6108 632.0718 633.4992 625.0539 624.9248 629.7259 123 3062.5 619.1507 656.0902 649.1019 653.3824 651.2278 635.6783 633.2289 633.1657 623.6423 624.6499 630.4444 124 3087.5 619.0089 656.5217 649.2501 653.7768 651.6482 634.6413 632.5473 633.2417 623.4923 623.9783 629.4027 125 3112.5 619.3791 656.786 649.4983 654.3871 652.0517 635.4073 632.6579 632.9998 624.485 624.9732 629.9129 126 3137.5 618.9518 655.0029 649.4529 653.5898 651.7109 634.7494 632.6919 632.8519 623.8593 624.4421 629.7089 127 3162.5 618.9306 654.9382 649.198 653.5625 652.1641 635.0823 632.6989 633.2711 623.9617 625.4174 630.0145 128 3187.5 619.4031 656.3798 649.6674 654.3949 652.3793 635.1739 632.3031 633.898 624.6795 625.2214 630.1257 129 3212.5 619.3513 655.6458 648.8299 653.5794 651.51 635.39 633.0969 632.8097 624.3643 625.5809 629.4613 130 3237.5 619.3712 655.9213 650.0245 654.0766 651.2707 635.3219 632.8387 633.6629 624.7969 625.624 629.8997 131 3262.5 619.7244 656.536 649.5171 653.7458 652.416 635.3601 633.2222 633.986 625.4069 625.3191 630.0709 132 3287.5 619.252 655.9579 649.5582 653.9075 651.657 635.4694 633.4507 633.4692 624.5755 625.2649 630.2173 133 3312.5 618.7681 655.9811 649.3099 652.7297 650.7115 634.4634 632.3627 633.4456 624.0453 623.7238 629.3844 134 3337.5 618.5923 655.5339 649.1084 653.0037 651.1682 634.2581 632.8341 632.6062 623.3144 624.769 629.4238 135 3362.5 618.7292 655.2741 648.5827 653.3296 650.7324 635.1216 631.6936 632.1359 624.1303 624.507 629.8434 136 3387.5 618.8453 655.0162 649.3634 653.23 650.9911 634.3368 632.558 633.0361 624.3333 625.1946 629.0829 137 3412.5 619.0023 655.6075 648.5613 653.0687 650.2505 634.5349 632.2745 633.4133 624.0704 624.4851 630.5593 138 3437.5 619.4083 656.1359 649.5212 653.6081 650.8799 635.3503 632.8908 633.652 624.937 626.2503 630.021 139 3462.5 619.1464 655.9159 650.2939 652.9551 651.3079 635.4584 632.5818 633.2102 625.1875 625.5281 629.0551 140 3487.5 618.6135 654.8158 648.183 651.9918 650.1188 634.7103 631.5634 632.6345 624.2616 624.8559 628.3536 141 3512.5 618.9261 655.6843 648.6419 653.0123 650.9351 634.9509 631.7626 632.6395 623.7726 624.7664 629.5252 142 3537.5 619.0118 655.2039 649.4776 653.4562 651.3888 634.5172 632.2866 632.4602 624.7291 624.9897 629.2447 143 3562.5 618.9974 656.1514 649.4982 653.2829 650.7573 635.6186 632.8572 632.0904 624.5361 625.1963 629.7383 144 3587.5 619.2582 654.5657 649.0555 653.6096 651.5511 634.9013 632.5776 633.134 624.4961 624.8664 629.3546 145 3612.5 618.9818 654.2458 648.5193 652.3381 650.2084 634.7433 631.8828 632.7137 624.1804 625.0461 629.5779 146 3637.5 618.885 655.1888 648.4858 653.0299 650.7826 634.6405 633.4996 632.4273 623.8651 624.1743 628.95 147 3662.5 618.738 654.3687 649.2513 651.7636 649.9919 634.0802 631.0274 632.905 624.3196 625.1019 627.5411 148 3687.5 619.1882 655.8884 648.9971 652.8715 651.0577 635.1871 632.2535 633.0031 624.3674 624.9991 629.8081 149 3712.5 619.0847 655.2343 649.6264 653.1473 651.5538 635.2048 632.7107 633.1395 625.5345 624.3397 629.1202 150 3737.5 619.2066 655.369 648.4612 652.5426 650.9735 635.1124 632.6933 632.6564 624.7077 624.9398 629.0221 151 3762.5 618.6994 654.3894 648.0961 652.2881 649.7615 635.0301 631.8474 632.3641 623.9357 624.5118 628.5999 152 3787.5 618.9899 654.8033 648.2224 652.3129 649.9764 634.7707 632.9237 632.5437 623.5759 624.7902 629.6734 153 3812.5 619.3187 654.9825 649.1985 652.5379 650.9844 634.6611 633.0142 633.3398 624.703 625.1121 629.1493 154 3837.5 618.8222 654.5908 648.3707 652.4884 650.0787 634.7839 632.0598 632.7098 624.1325 624.4341 629.077 155 3862.5 618.3551 654.2616 647.2054 650.4855 648.6326 634.2486 631.8976 632.4435 622.8922 623.8339 628.2844 156 3887.5 618.9439 654.8196 648.0153 652.6733 650.5895 634.6042 632.3701 632.7489 624.1487 624.2561 628.8858 157 3912.5 619.2987 655.654 648.8183 652.8049 650.9519 635.0246 632.7168 633.0453 624.6938 625.5101 629.5049 158 3937.5 619.1912 654.6866 648.7767 651.8879 649.8744 634.7485 632.1456 632.5525 625.0925 625.234 629.4699 159 3962.5 619.1578 655.1568 648.922 652.4542 649.8878 634.1395 632.115 632.5593 624.7185 624.8243 629.4701 160 3987.5 618.954 653.5426 648.1742 652.4137 650.4536 635.095 632.2903 632.9483 624.0543 625.6944 628.8961 161 4012.5 619.0859 654.4974 648.9592 652.6077 650.5737 634.72 632.2438 632.2209 624.3072 625.0119 628.9657 162 4037.5 618.9742 654.8866 649.5078 651.8472 649.6595 634.9389 632.4768 632.697 624.3441 625.2724 628.9327 163 4062.5 618.5499 654.163 648.7347 651.0778 649.625 634.4678 632.9044 631.8673 623.7386 623.8049 628.7251 164 4087.5 618.9236 654.6388 647.8996 652.0784 649.914 634.8287 631.9617 632.2116 624.1101 625.0873 628.792 165 4112.5 618.4588 653.8673 647.7265 651.611 648.9233 633.7383 631.6205 631.6542 624.0559 624.7463 628.8468 166 4137.5 618.7164 654.4114 648.5582 651.5499 649.8556 634.1824 632.1235 631.708 623.8893 623.9264 628.8113 167 4162.5 618.8752 654.1756 647.7811 651.4162 649.5315 634.7821 632.1283 632.8556 624.2156 624.1171 628.1944 168 4187.5 619.3569 654.6552 648.099 651.7625 650.9024 634.5983 632.9384 633.0293 624.1294 624.8762 629.8321 169 4212.5 618.4404 653.5798 647.4559 652.1242 649.8545 634.6389 632.2939 631.8735 623.4035 624.022 628.4769 170 4237.5 618.6147 653.7813 647.3801 650.9257 648.8427 633.3048 631.7706 633.0439 623.0475 624.9094 628.6247 171 4262.5 618.5714 652.9237 646.916 651.2937 648.8039 634.0328 632.0201 632.2848 623.6776 624.8949 628.707 172 4287.5 618.4561 654.454 648.1065 651.0211 649.0695 633.6688 631.2935 631.864 623.6754 624.7348 629.1651 173 4312.5 619.0053 654.5872 648.0999 652.0448 649.8237 634.4566 631.8808 632.6611 624.0995 624.6749 628.3811 174 4337.5 618.7321 654.0076 647.7945 651.0182 649.4733 634.1226 631.7433 632.5805 624.262 624.6751 628.9124 175 4362.5 618.8796 654.0749 648.2349 651.6931 649.5934 634.7741 632.4299 632.2821 623.5638 624.6331 629.2547 176 4387.5 618.9158 653.4054 648.0452 651.3552 649.3086 634.5742 632.0158 632.6057 623.9611 625.1525 629.1208 177 4412.5 618.8451 655.1949 647.7965 651.2479 649.4624 634.492 631.9341 632.1602 624.2743 623.874 627.9982 178 4437.5 619.0385 654.3906 647.7725 651.0811 649.1565 634.1971 632.6773 632.0087 624.7515 624.6455 628.8649 179 4462.5 618.9516 654.4443 648.1627 650.8967 649.2179 634.1522 632.333 631.9168 623.8803 624.6349 628.3874 180 4487.5 619.0969 654.2161 648.8333 652.1127 650.1702 634.502 631.7016 632.349 623.9839 624.3378 628.9979 181 4512.5 619.0494 653.2785 647.5071 651.651 650.4825 634.0314 632.3306 633.0096 623.6339 624.9298 629.3816 182 4537.5 618.364 653.3339 647.7706 650.8002 649.297 633.0787 630.4672 631.3637 624.3894 624.2077 628.7537 183 4562.5 619.2493 653.2704 648.3747 651.6715 649.2655 634.2729 631.8156 632.6542 624.8062 625.5303 630.5464 184 4587.5 618.8602 653.9763 648.3001 650.8425 649.372 634.2168 631.493 631.8857 623.7743 624.0267 628.5333 185 4612.5 618.8645 653.8773 648.1708 651.5908 649.8723 634.3427 632.026 632.8272 623.6715 624.4646 628.6919 186 4637.5 618.9328 653.9892 648.087 651.1106 649.2112 634.2443 632.2555 632.2057 623.7227 624.9694 629.0577 187 4662.5 618.8254 653.7014 647.6111 650.5595 648.8868 633.9651 631.9907 631.7869 624.0993 624.759 627.9094 188 4687.5 618.9911 653.4959 648.0767 651.2509 648.958 634.2695 631.7548 632.4656 624.4515 624.6573 628.4349 189 4712.5 619.1516 653.4524 647.6667 650.73 648.4824 634.3106 632.5616 632.5456 624.0686 624.596 628.713 190 4737.5 618.5762 653.2439 647.0638 650.0874 648.158 635.021 631.304 631.6893 623.7921 623.4843 627.5759 191 4762.5 618.6338 653.1327 647.8505 650.8884 648.4176 633.7389 631.458 631.6995 623.4723 623.624 628.1091 192 4787.5 618.7654 652.8275 648.0166 650.9777 649.6025 633.3308 631.7606 631.9956 623.6587 624.4399 627.9926 193 4812.5 618.4063 653.5255 647.7662 650.8618 648.3132 633.7052 631.0402 631.5484 623.2467 624.2804 627.402 194 4837.5 618.1688 652.8664 646.6762 650.8303 648.195 633.496 630.8218 631.3971 623.5202 623.6875 627.8834 195 4862.5 619.1283 654.2303 647.4854 650.7154 649.0818 634.702 632.3014 632.281 623.2738 624.3089 628.6441 196 4887.5 619.2227 653.2196 648.4142 651.187 649.3789 634.2461 631.2062 632.2326 624.1006 625.3618 629.5652 197 4912.5 618.7722 653.8734 647.7479 650.426 648.2083 633.5101 631.7288 631.7939 623.9939 624.3515 627.9678 198 4937.5 619.203 653.266 647.6406 651.2157 649.2556 634.3605 632.2576 632.7565 624.7757 624.7714 628.4938 199 4962.5 618.6023 652.9386 647.7863 650.4492 648.3712 633.7404 631.6671 631.9933 623.9734 624.5115 628.193 200 4987.5 618.5643 653.054 646.8557 649.6625 647.9863 633.8609 631.5303 631.7036 623.9881 624.3636 627.8617 201 5012.5 618.9945 653.9163 647.5579 650.4969 648.5955 633.7961 632.3524 631.8314 624.0592 625.0209 628.7744 202 5037.5 618.8036 653.3631 647.6549 650.2506 647.6292 633.5085 631.7846 632.1385 623.4423 624.4778 627.9361 203 5062.5 618.9353 653.2382 647.4943 649.9781 648.3486 634.2175 631.3141 632.1607 623.8845 624.994 628.1153 204 5087.5 618.8769 652.2405 647.3362 649.9139 648.6146 634.112 632.1768 631.6975 624.1771 625.1053 628.9446 205 5112.5 618.9629 652.2856 648.2336 651.5798 649.2323 633.871 631.3724 632.2623 624.4001 624.2176 628.3257 206 5137.5 618.5888 653.0329 646.4013 650.6897 648.7911 633.3618 631.4572 631.302 623.522 623.9393 627.7615 207 5162.5 618.5332 652.966 647.0297 650.0679 648.0988 632.9859 630.8757 631.049 623.7867 624.8207 627.6892 208 5187.5 619.2727 653.5433 648.2781 650.5863 649.1801 633.7943 632.6711 632.0327 624.2103 624.7424 629.4621 209 5212.5 618.7765 652.9074 647.416 649.6592 647.4137 634.0584 631.0725 632.0022 623.3719 624.4958 627.8934 210 5237.5 618.9615 652.582 647.2526 650.5398 648.5964 633.5985 632.227 631.8234 624.2246 624.4247 628.0643 211 5262.5 619.0009 652.7223 647.438 650.2225 647.9529 634.3578 632.3067 632.3832 624.3578 624.3336 628.4965 212 5287.5 618.9458 652.6265 647.3358 649.77 647.63 633.5897 632.2106 631.3565 624.2521 625.0172 628.9265 213 5312.5 618.8072 652.4581 646.9609 649.2367 647.822 633.8555 632.4647 631.2376 624.2442 624.3329 628.6963 214 5337.5 618.5354 652.092 647.0957 649.1379 647.9707 633.4178 631.472 631.2896 623.2217 624.1828 628.4373 215 5362.5 618.7768 652.0957 647.1739 649.217 648.299 634.1184 631.7813 631.9216 623.8468 624.4162 628.0313 216 5387.5 618.9748 652.3557 646.764 649.8083 647.7198 634.2619 632.4328 631.9969 624.6183 625.6374 628.4755 217 5412.5 619.439 653.6304 648.3546 650.8978 648.4926 634.5473 632.1081 632.3116 624.7527 625.4262 628.7746 218 5437.5 618.7111 653.4909 647.0508 649.2834 646.8163 633.4722 631.3457 631.6077 624.0118 623.8951 627.7093 219 5462.5 618.8112 652.3801 647.352 649.8355 647.8631 633.4998 631.3351 632.343 623.451 624.0698 628.0892 220 5487.5 618.2131 652.578 646.3652 648.7379 647.3924 634.0418 631.1596 631.0277 623.2672 623.6799 627.7253 221 5512.5 618.5854 653.149 646.8393 649.188 646.6886 633.166 631.5174 631.1911 623.5634 623.8946 627.9638 222 5537.5 618.5213 652.0917 645.9027 649.1051 646.8119 634.7473 632.009 631.2304 623.8827 624.8598 627.0569 223 5562.5 619.0323 652.4625 646.7866 650.3601 647.4203 633.6518 632.1259 631.6863 624.6704 624.6772 628.4052 224 5587.5 618.6252 652.0872 646.4479 648.502 646.9255 633.5339 632.1697 630.8464 623.5466 624.4852 627.8798 225 5612.5 618.5673 652.2964 647.0101 649.1359 647.6871 633.5874 630.7991 632.2396 624.2537 624.4285 627.2764 226 5637.5 618.8451 652.1103 647.0721 649.4681 647.1686 634.5487 631.163 631.5285 624.3839 624.7169 629.0421 227 5662.5 618.9258 652.987 647.0167 650.0562 647.9343 634.1851 632.0204 631.5921 623.5986 624.1024 628.602 228 5687.5 619.0433 652.563 647.48 649.4209 647.8456 633.9053 631.3552 631.7692 623.9901 625.3299 628.6911 229 5712.5 618.9093 653.0607 647.2772 649.6101 648.1616 633.8955 631.5607 631.7954 623.5102 624.4634 628.29 230 5737.5 618.2741 651.683 646.157 649.5037 647.0727 633.3031 630.8218 631.244 623.6108 624.7005 627.5605 231 5762.5 619.143 652.87 647.2256 650.0595 647.7934 634.1636 631.401 632.8653 624.1015 624.1788 627.9962 232 5787.5 618.9545 652.5454 646.8469 649.2721 647.5413 634.1884 631.5245 631.0145 624.1489 624.9394 628.0456 233 5812.5 618.8908 652.3326 647.5903 649.397 648.1425 634.0223 631.2271 631.0431 623.513 624.3311 627.9605 234 5837.5 618.9236 652.8054 646.764 648.8079 647.2703 633.6219 631.3885 630.6707 624.1685 624.5713 627.8141 235 5862.5 618.811 651.6793 646.3536 649.6607 647.9751 634.0148 631.5314 631.5793 624.4696 624.8814 627.7988 236 5887.5 619.0164 652.2158 646.9457 649.9317 647.8622 633.8169 630.9459 632.0796 624.1904 624.4197 627.5697 237 5912.5 618.739 652.3353 647.0415 648.8077 646.7442 633.8036 630.6798 631.9432 623.8518 624.3821 627.8839 238 5937.5 618.4722 652.3319 646.5427 648.6056 646.5049 633.3466 630.897 630.6872 624.8246 624.0144 627.0977 239 5962.5 618.4676 651.7141 645.9844 648.5367 646.2891 633.38 631.3219 631.1309 623.3089 624.2309 627.3183 240 5987.5 618.5736 651.9366 646.8758 648.7231 646.8516 634.081 631.132 631.3326 622.8598 624.5669 627.4215 241 6012.5 618.5775 652.3941 646.6208 648.9467 647.336 633.8886 631.0278 631.8381 623.9088 624.679 627.7326 242 6037.5 618.4216 651.8822 645.9825 648.4448 646.5095 633.8057 630.9413 631.1101 623.8846 624.1879 627.4334 243 6062.5 618.093 651.1863 645.6364 648.0116 645.9717 632.7636 630.8826 630.7844 623.6428 623.76 628.4916 244 6087.5 618.011 650.7627 645.1145 647.7979 645.8697 632.7751 630.0246 629.9156 622.7402 623.46 627.2273 245 6112.5 618.393 651.7139 645.8012 648.4682 646.4808 633.1117 630.7762 630.6297 623.1604 623.7627 627.5273 246 6137.5 618.4089 651.1519 645.9778 647.8734 646.1238 633.5215 631.1628 630.885 624.1536 624.0203 627.4756 247 6162.5 618.4086 650.6174 646.2551 647.4361 645.6442 633.1803 630.8233 631.2525 623.3068 623.3222 628.213 248 6187.5 618.4941 650.7368 646.2873 648.206 645.8069 633.2143 631.2049 630.8191 624.0545 624.7554 627.856 249 6212.5 618.3587 651.5488 646.0264 648.4196 646.4547 633.1145 630.4532 630.44 623.2864 624.6866 626.9993 250 6237.5 618.8981 652.0637 646.6025 648.0815 646.7123 632.9885 631.2276 632.0408 623.7819 624.257 628.1196 251 6262.5 618.2112 651.0093 645.9306 647.6297 645.5979 632.6874 630.309 631.9392 622.8574 623.9678 626.5563 252 6287.5 618.3797 650.8463 645.115 648.2466 646.4703 632.9657 631.0185 630.9376 623.6062 624.1074 627.3731 253 6312.5 618.6171 651.0803 646.4533 647.7855 645.7398 632.955 630.9232 631.6985 623.9085 623.8961 627.4292 254 6337.5 618.6821 651.1905 646.9589 648.7276 646.8346 633.3911 631.5856 631.1552 623.1318 624.2305 627.5624 255 6362.5 618.6308 651.8107 646.0864 648.1322 646.6225 633.5327 631.3765 631.0332 623.7023 623.9898 627.2907 256 6387.5 618.6265 651.64 646.1128 648.3339 646.3668 632.7732 630.5766 630.7189 623.9275 625.5066 627.7556 257 6412.5 618.4316 651.2918 647.3736 646.9403 645.4584 633.2405 630.9283 631.7579 623.6013 623.7031 627.3668 258 6437.5 618.8508 651.4332 647.1757 648.4575 646.2968 634.4756 631.2028 631.7496 624.1447 625.1056 628.1667 259 6462.5 618.2028 651.6175 645.2017 648.1664 646.5113 632.6745 631.1601 630.247 622.4272 623.6615 626.9515 260 6487.5 618.1785 650.8184 645.2308 647.8696 645.9977 632.9228 630.7756 630.3073 622.8306 623.8459 626.6337 261 6512.5 618.2871 651.1972 646.1493 648.7333 646.6203 633.7166 630.508 630.387 623.4867 623.6911 626.775 262 6537.5 618.9505 651.377 646.7259 648.7837 646.4083 633.7539 631.0143 631.2833 625.0178 624.33 627.725 263 6562.5 618.5302 650.8953 645.8485 648.3132 646.1617 633.0473 631.371 630.3833 623.5478 623.6528 627.4871 264 6587.5 618.5667 650.5818 645.5633 647.6813 645.8256 632.8955 631.3222 631.2744 624.285 624.4284 627.361 265 6612.5 618.1587 650.5808 646.0063 647.2793 645.5067 633.5839 630.3443 630.6163 622.3919 623.8034 626.9281 266 6637.5 618.4789 651.6074 646.1382 647.9849 646.1978 632.0409 631.0717 630.9895 623.8639 624.0661 627.6185 267 6662.5 618.6895 651.1743 645.0934 648.2558 646.2116 632.8265 630.8822 630.2263 623.8095 623.5925 627.3405 268 6687.5 618.824 652.0283 646.1471 647.5767 645.7159 634.2792 630.9498 631.313 623.7428 624.2681 628.0645 269 6712.5 618.6317 650.9717 645.122 648.1999 645.7176 633.7947 631.0049 631.0455 623.8011 623.8533 626.908 270 6737.5 618.5133 651.2345 645.0101 647.6289 646.5774 632.9885 631.0599 631.5557 624.08 623.6674 626.7621 271 6762.5 618.4715 650.5145 646.1657 646.9936 645.7424 632.5369 630.9801 631.683 623.3716 623.7228 627.4534 272 6787.5 618.512 651.0828 645.5219 646.6826 644.795 633.5704 630.6304 630.1678 624.1887 624.2213 626.3114 273 6812.5 618.6452 651.2954 645.7911 647.2936 645.9355 632.8019 631.0129 630.7956 623.8557 624.532 626.6105 274 6837.5 618.8978 651.0166 646.9765 648.2441 645.8021 633.5285 631.0142 631.1585 623.8816 624.6734 628.1299 275 6862.5 618.3586 650.302 644.2611 648.542 645.8646 632.945 630.6007 630.6872 623.4219 623.7298 626.6519 276 6887.5 618.4875 650.8549 645.873 647.2126 645.4785 632.9577 630.4811 630.9634 623.2826 623.3281 627.4324 277 6912.5 618.6757 650.3267 645.4689 647.3181 645.8541 632.8485 631.4462 631.3532 623.8546 624.0416 628.1203 278 6937.5 618.2115 650.3977 645.1668 646.0031 644.3501 632.735 630.4579 631.429 623.5469 624.2447 626.2979 279 6962.5 618.3628 650.3816 644.6562 646.7577 645.142 633.5831 630.3956 630.2956 622.966 623.9322 626.9581 280 6987.5 618.5374 650.4845 645.6938 647.8725 646.2198 633.1813 631.1056 630.7955 623.8157 623.9563 626.9682 281 7012.5 618.5039 650.4199 645.5979 647.872 645.4787 632.1809 630.9974 630.6805 623.1477 624.2579 627.2339 282 7037.5 618.7678 651.0885 645.2875 647.7262 645.6397 632.7452 631.1904 630.6738 623.8352 624.3883 627.5483 283 7062.5 618.2261 650.6754 645.1489 647.1713 645.9271 632.7379 630.2042 630.4537 622.8319 623.7862 626.3857 284 7087.5 618.5986 650.8426 646.1051 646.8343 645.2433 633.3667 630.7269 630.8247 623.623 623.9239 627.6721 285 7112.5 618.3443 651.1782 645.5043 646.5859 645.2304 633.4053 630.373 631.0143 623.5604 623.8627 627.244 286 7137.5 618.7396 650.7602 645.9398 648.3223 645.9961 633.6356 630.7913 630.7576 623.138 624.1686 627.8974 287 7162.5 619.0795 651.3266 645.8681 647.5622 645.5512 634.4992 631.1298 631.4903 623.7069 624.4254 628.2348 288 7187.5 618.3279 650.2048 644.8116 646.5444 644.5427 632.7031 630.5645 630.8341 623.2977 624.2077 627.2958 289 7212.5 618.2973 650.6044 645.1635 646.8084 644.6295 632.4833 630.0304 630.7622 623.752 624.2131 627.506 290 7237.5 618.859 650.8688 645.9185 647.6035 645.3818 633.1843 631.3684 631.0757 623.5035 624.3592 626.7896 291 7262.5 618.2963 650.1216 645.4653 646.7793 645.3006 633.4122 630.8581 630.724 623.6299 623.5449 626.261 292 7287.5 618.7335 650.2448 646.2549 646.7894 644.9746 632.6145 631.1034 630.9787 623.3859 624.0314 627.3662 293 7312.5 618.4626 650.4178 645.0825 646.8085 645.4283 632.6787 630.565 630.6512 623.6212 623.6796 626.8558 294 7337.5 618.6748 649.8851 645.3406 647.0794 644.8849 632.8644 631.1923 631.0913 623.8293 625.2235 627.555 295 7362.5 618.2332 648.9786 644.2948 646.8331 644.4878 633.0242 629.955 630.1825 623.5684 623.5459 626.9243 296 7387.5 618.4091 650.1669 644.8131 646.3815 644.3585 632.6979 630.2908 629.8451 623.6335 624.1096 626.9751 297 7412.5 618.4987 650.7976 644.4052 646.1215 644.2645 633.0426 630.2771 630.1676 623.1582 623.245 627.1333 298 7437.5 618.4745 650.0045 644.9857 646.6431 645.1226 632.4447 630.7097 630.8005 622.7082 623.7896 627.8796 299 7462.5 618.7395 650.1959 645.7572 646.3635 644.1454 632.8343 630.291 630.8889 623.9828 623.597 626.7385 300 7487.5 618.7043 650.5124 645.9306 647.0941 645.1926 633.5556 630.5643 630.8277 623.6326 624.196 627.044 301 7512.5 619.0649 650.7897 645.3888 647.4891 645.7593 633.4466 631.4775 630.8706 624.4205 624.4989 627.328 302 7537.5 618.5242 650.8239 645.1647 646.4609 644.4305 632.8471 631.4025 630.4154 623.3036 623.7999 627.6354 303 7562.5 618.4352 650.4218 645.1364 646.7873 645.2778 632.3872 630.5753 630.4445 623.0562 624.3973 626.6241 304 7587.5 618.4319 649.9424 644.7924 646.772 645.3847 633.2489 630.5264 630.5124 622.8138 624.1622 627.0306 305 7612.5 618.4504 650.152 645.4666 646.6695 644.4017 632.5882 630.2798 630.1396 623.9076 623.6975 627.1513 306 7637.5 618.3089 650.7886 644.414 647.0801 645.5416 632.6067 630.0021 630.5348 623.5274 623.8616 626.629 307 7662.5 618.6721 650.4858 645.5833 646.2829 644.9763 633.039 630.5968 630.9221 623.7247 624.3492 626.4539 308 7687.5 618.3895 650.6616 644.9204 646.2094 644.0641 632.6111 630.8601 630.9184 623.2283 623.6508 626.9643 309 7712.5 619.0706 651.3523 645.5729 646.3172 644.9272 633.3322 630.9194 630.8345 623.827 624.3725 627.6029 310 7737.5 618.3439 649.728 645.1075 646.5331 644.3375 632.4734 630.283 629.9038 623.1606 623.4886 627.0319 311 7762.5 618.9544 650.4042 645.4888 646.8574 645.0176 633.0137 631.1789 630.9664 623.8693 624.6666 627.8776 312 7787.5 618.1977 649.8716 644.6861 645.3126 644.4462 631.8128 630.6642 629.7904 623.3611 623.0477 626.8131 313 7812.5 618.1473 649.7101 643.9476 645.6463 644.142 632.8172 630.344 630.3991 622.835 622.895 626.627 314 7837.5 618.862 650.1162 644.3231 647.1564 645.4676 632.6408 631.6468 630.9702 623.8692 623.9261 626.4991 315 7862.5 618.4185 649.6833 645.1225 646.0168 644.3929 632.5783 630.7495 630.5514 622.6778 624.2944 626.9491 316 7887.5 618.3152 649.4984 644.7363 645.7152 644.3641 632.9649 629.771 630.5899 623.5342 624.5155 626.9422 317 7912.5 618.2918 649.4324 644.4608 647.1509 644.4112 633.0677 629.9365 629.7813 623.2294 622.9217 626.7955 318 7937.5 618.4807 650.8046 645.1009 645.7318 644.1698 632.419 630.4016 630.3552 624.068 623.7154 626.8045 319 7962.5 618.2901 649.5621 644.9576 645.4758 644.1941 632.5734 630.2385 629.8744 623.7524 623.7316 626.7106 320 7987.5 618.364 649.5074 643.8624 646.2436 644.4735 632.7982 630.3678 630.9499 623.7981 624.6382 626.9544 321 8012.5 618.8354 650.1159 645.4016 647.2214 645.6133 632.8678 630.6392 630.8544 623.2534 624.1601 626.9893 322 8037.5 618.6215 649.928 644.6645 645.8989 643.6923 633.2473 630.9215 630.2488 623.0786 624.1518 626.9227 323 8062.5 618.9782 650.3453 644.4418 646.5901 644.9668 633.245 630.9773 630.8305 624.1211 624.282 627.9896 324 8087.5 618.0019 648.5852 644.6289 645.2636 643.9906 632.0613 630.5516 629.8139 622.9913 623.1181 626.175 325 8112.5 618.2685 649.8962 645.0746 646.1486 643.9857 631.9631 631.4108 630.1446 623.9561 623.8182 626.7123 326 8137.5 618.2903 649.6125 644.0575 644.9006 643.1916 631.7471 630.3981 629.9039 623.3989 623.994 627.0982 327 8162.5 618.5256 649.6985 644.9219 646.5496 644.2649 632.31 630.8333 630.2354 623.1154 623.4292 626.9045 328 8187.5 618.6263 649.13 644.3508 645.7005 643.6443 631.9247 630.8098 630.7128 624.0049 623.5818 627.8002 329 8212.5 618.565 651.0052 644.5112 645.7753 644.4512 632.8293 630.2637 630.5492 623.4625 623.5892 626.6317 330 8237.5 618.3657 649.8342 644.8589 645.9157 643.9619 633.1589 630.0736 630.5122 622.9489 623.7293 627.0794 331 8262.5 618.3354 649.5816 643.9188 645.6946 643.9122 632.5254 630.2308 630.3366 623.895 623.3626 626.2339 332 8287.5 618.489 650.1469 644.9995 646.0249 643.9678 632.7201 630.8447 630.2843 623.1595 623.6675 627.4992 333 8312.5 618.4103 649.2427 643.7491 645.1183 643.585 632.7074 630.0562 630.8584 623.9041 624.5068 627.1074 334 8337.5 618.775 649.9411 645.0695 646.5077 644.542 633.5217 630.9005 631.5416 623.9577 623.5901 627.5317 335 8362.5 618.6649 649.6666 645.0583 647.0481 644.9319 632.4419 630.9266 630.2653 624.0309 624.2949 627.7756 336 8387.5 618.5972 650.51 644.6694 645.3269 643.7284 632.702 630.8527 630.397 623.556 623.7085 626.4101 337 8412.5 618.2018 649.096 644.4631 645.6769 643.7876 632.2838 630.0569 629.9414 623.4953 623.3194 626.4029 338 8437.5 618.5864 650.9217 644.8315 645.6452 643.2927 632.428 630.5806 630.6544 624.0461 623.5732 627.5798 339 8462.5 618.0637 648.3583 644.2733 645.4712 643.3705 632.1783 630.677 630.224 622.2156 623.6408 625.8602 340 8487.5 618.3464 650.4567 644.1441 646.0295 643.9643 631.7144 630.3444 631.081 623.825 624.0898 627.4506 341 8512.5 618.6875 649.3386 645.7851 646.3093 643.873 632.8727 630.5329 630.3559 623.0921 623.7292 627.4044 342 8537.5 618.226 648.528 644.6844 645.4502 643.583 631.4378 629.3295 630.3208 623.9322 623.3319 625.8648 343 8562.5 618.3907 649.3694 643.7564 645.5451 643.8227 632.4523 630.2999 629.6681 623.0829 623.3485 625.5932 344 8587.5 618.6668 649.3559 644.3465 645.8364 643.7917 632.6209 630.7156 630.521 623.3915 624.6564 626.7504 345 8612.5 618.4699 649.3436 644.804 646.1493 644.0891 633.1641 630.395 630.5449 623.3689 623.4048 626.454 346 8637.5 618.5243 648.9337 644.5682 645.1041 643.015 633.1662 630.1375 629.7279 622.9173 623.6332 627.0146 347 8662.5 618.2064 648.5491 643.8893 645.4478 643.2366 632.1683 630.1043 629.596 622.4739 624.0199 626.508 348 8687.5 618.4275 649.0491 644.4008 645.3 643.4925 632.7113 630.6609 630.2512 623.1657 623.8705 626.3277 349 8712.5 618.5667 650.2475 643.9579 645.3668 643.8265 633.2668 631.1766 630.0999 623.5194 623.6311 626.7078 350 8737.5 618.5017 649.0488 644.7107 645.0626 644.102 631.778 630.7302 630.2522 623.2993 624.086 626.9363 351 8762.5 618.4543 648.3395 644.4734 645.1038 642.6601 632.8849 630.4172 630.5424 623.0777 623.0308 627.3421 352 8787.5 618.8428 649.9798 644.0939 645.4286 643.7637 632.8143 630.5114 630.8691 624.4572 623.7593 627.2918 353 8812.5 618.4342 649.3737 644.246 645.4604 642.9952 632.1868 630.2811 629.83 623.5446 624.1014 626.0372 354 8837.5 618.7335 649.1455 645.1523 645.6904 643.6562 632.4996 630.3286 630.1065 623.2224 624.2629 627.9404 355 8862.5 618.8819 649.1021 644.8431 645.9183 643.7847 632.6263 630.8952 630.333 623.681 624.6149 627.1219 356 8887.5 618.7337 648.9698 645.845 645.7788 644.5348 632.7433 629.8293 630.2963 623.6382 624.24 626.7588 357 8912.5 618.5966 649.8865 644.7819 645.2094 643.2773 631.7107 630.7093 630.3165 623.5106 623.9584 626.8737 358 8937.5 618.2953 648.5237 643.2282 644.8661 642.9077 632.307 630.0069 629.4535 623.3817 624.2337 626.9178 359 8962.5 618.4522 648.8473 643.9328 644.5106 642.81 632.3212 630.2171 630.0487 624.0746 623.7379 625.8119 360 8987.5 618.1987 649.5801 644.1971 644.4061 642.3501 631.8334 630.0769 629.7371 623.4826 623.7143 625.7715 361 9012.5 618.6604 648.8025 644.5723 644.9618 643.9131 633.0034 631.1027 630.4953 623.3564 624.161 626.3954 362 9037.5 618.4766 648.3843 643.907 645.296 642.8569 632.3137 629.6657 629.796 622.7613 623.72 626.1989 363 9062.5 617.9552 647.5717 643.8892 644.3449 642.853 632.3802 629.3721 629.4203 622.4843 623.1292 626.0959 364 9087.5 618.0586 648.6588 643.6195 644.3138 642.8918 632.3866 630.0131 629.6002 623.2503 624.1777 625.8431 365 9112.5 618.2538 648.8638 644.0906 644.6384 643.2183 632.2125 629.9573 630.113 623.1203 623.9502 625.9283 366 9137.5 618.3348 649.3889 643.5032 644.5769 642.7786 633.0311 630.1023 630.3598 622.764 623.3851 626.3935 367 9162.5 618.2285 648.3715 643.6462 643.8999 643.0072 631.9955 630.0289 630.4701 622.5838 624.1422 626.8893 368 9187.5 618.3764 648.4641 644.1332 644.8917 642.5606 631.5427 630.1089 629.5101 623.274 623.6395 626.2112 369 9212.5 618.4925 648.7271 644.0112 644.3022 642.6092 632.4091 630.4191 630.0229 623.7411 624.1999 626.5547 370 9237.5 617.9371 648.4581 643.4852 644.2721 642.51 631.1778 630.1696 628.9105 622.242 623.0448 626.217 371 9262.5 618.0937 649.1332 644.2218 644.5459 642.7458 631.5524 630.086 629.4436 622.7374 623.4835 626.7291 372 9287.5 617.9835 648.7028 643.4191 644.2373 642.3337 631.7539 629.1179 630.0249 622.7879 622.9156 625.9305 373 9312.5 618.6342 649.1277 643.5998 644.5541 643.1012 632.5915 629.2926 630.784 623.463 623.4691 626.2484 374 9337.5 617.7979 648.6783 643.8123 644.7457 642.3512 631.7824 629.779 628.7636 622.6756 623.4227 625.9601 375 9362.5 618.1734 647.8283 644.1797 644.8148 642.7339 631.7168 630.1532 629.9965 622.914 623.3928 626.1645 376 9387.5 618.7312 649.4527 644.3163 644.5857 643.1813 632.8515 630.3759 629.651 623.5558 624.5426 626.368 377 9412.5 618.0063 648.1059 643.4379 643.7064 642.2692 631.7398 629.3768 629.355 622.5813 623.0003 626.8682 378 9437.5 618.5759 648.2842 643.6792 644.917 643.1413 632.4457 630.8254 630.3641 623.4134 623.9466 626.8719 379 9462.5 618.3521 648.3616 644.0281 644.0362 642.2481 631.0841 630.0707 629.6455 622.8475 623.1573 626.0066 380 9487.5 618.157 647.7067 643.0498 644.0736 642.7409 631.2069 629.6264 629.6725 622.9569 622.7905 625.7662 381 9512.5 617.9725 648.8606 643.9327 644.3573 642.2167 631.1654 628.9784 629.2826 623.0738 623.7036 625.817 382 9537.5 618.7489 648.3842 644.2837 645.1919 643.1051 632.1657 631.0128 630.867 623.4777 623.5722 627.5416 383 9562.5 617.8265 646.8775 643.2375 644.2315 642.5984 631.5545 629.6814 629.7804 623.1103 622.591 625.656 384 9587.5 618.4409 648.4052 643.6649 643.5457 642.6738 632.0575 629.8965 629.6938 622.908 623.8966 626.826 385 9612.5 619.0416 649.5977 643.6657 644.7118 643.0229 632.8607 631.5474 630.3487 624.4663 623.8067 627.0891 386 9637.5 618.3461 648.2963 642.905 644.1572 642.5398 631.8768 629.5719 630.1785 622.8795 623.7967 626.035 387 9662.5 618.3498 648.3428 643.8818 644.5497 642.6002 631.9827 629.6941 629.5495 623.1228 622.9446 626.1307 388 9687.5 618.1572 648.089 643.369 644.2119 642.1496 631.1705 629.9102 629.8906 622.5808 623.9903 626.354 389 9712.5 618.3647 648.6657 644.0529 644.183 642.9127 632.0826 629.4771 630.1224 623.7083 623.5812 626.0413 390 9737.5 618.5168 648.5977 643.9052 645.2474 643.2351 631.804 630.3215 629.216 623.5666 624.1424 626.3207 391 9762.5 618.0275 648.2418 643.6906 643.7616 642.0941 631.4929 629.4654 629.28 622.3514 623.2917 625.2658 392 9787.5 618.2667 647.3649 643.4853 644.7407 643.2198 632.41 629.6619 630.2525 623.24 623.6723 626.3983 393 9812.5 618.3468 648.5295 644.1379 643.5131 642.0088 632.3274 628.9454 630.5922 623.2969 624.2035 625.8965 394 9837.5 618.4358 649.0129 643.9139 644.2854 642.763 631.7873 629.3355 629.2727 623.1277 623.571 625.6473 395 9862.5 618.1271 647.406 643.7066 642.863 642.0241 632.1009 629.909 629.0679 622.7357 623.1508 626.1223 396 9887.5 617.9229 647.6817 642.7045 643.7678 642.1103 631.4221 628.8112 628.9842 622.3607 622.786 626.744 397 9912.5 618.6469 648.8355 643.3469 644.6775 643.2816 631.9663 630.1039 629.7807 623.4054 624.1391 626.7914 398 9937.5 617.7221 646.9633 642.0548 643.6641 642.0682 631.4566 629.7685 628.4507 622.8747 623.107 626.0303 399 9962.5 618.2958 648.0546 642.8984 644.578 642.1019 631.8155 629.3374 628.9635 623.1402 622.9276 625.9091 400 9987.5 618.0993 647.0377 642.5144 644.368 642.0623 631.8915 629.7869 629.003 622.5751 623.6693 625.8073 401 10012.5 618.1272 647.2462 642.4072 644.4166 641.7524 631.1989 629.263 629.419 622.7052 623.7405 625.7961 402 10037.5 618.4154 647.6229 643.4176 644.0985 643.03 631.8913 629.5855 630.1053 623.6872 623.5963 626.1135 403 10062.5 618.5835 648.9072 644.0621 644.5265 642.5212 633.0004 630.1475 629.7055 622.766 624.4352 625.7347 404 10087.5 618.0216 647.6785 642.9856 643.8038 642.4717 631.2042 629.8713 629.7814 622.5835 623.238 626.5525 405 10112.5 618.2201 647.6977 643.0132 644.4261 642.548 631.6777 629.1582 629.689 623.3602 623.2825 625.6037 406 10137.5 618.2251 647.7091 642.9163 643.212 641.877 631.297 629.2489 629.2729 623.52 623.3742 626.0713 407 10162.5 618.3507 648.5285 643.1431 643.9415 642.2181 631.7845 630.0111 630.0578 622.9511 623.6954 625.783 408 10187.5 618.1182 647.6229 642.7609 642.9742 641.2529 631.3859 629.7497 629.6435 623.1985 624.1358 625.8631 409 10212.5 617.9782 647.1648 643.171 643.8479 641.2091 631.2998 628.9912 629.2563 623.5774 623.1912 625.8413 410 10237.5 617.6732 647.3444 642.3775 642.8249 641.534 630.1176 629.1761 628.7322 622.1397 622.1891 625.0741 411 10262.5 618.1717 647.6369 643.7163 644.1544 642.0439 631.5784 628.9904 629.7674 622.5278 623.7442 626.3526 412 10287.5 618.6397 647.2312 643.4321 644.5102 642.5814 632.5985 629.7049 629.5013 624.2129 623.7569 626.4116 413 10312.5 618.3368 648.2129 643.3842 643.9775 642.4043 631.991 630.7045 628.701 623.5927 624.3752 626.6277 414 10337.5 618.0742 647.8487 643.1686 643.7808 642.3062 631.3772 629.9242 629.0876 623.2576 623.6289 625.4375 415 10362.5 617.7497 647.013 641.7815 643.2179 641.4163 630.8726 629.2208 629.2222 622.5629 622.5882 625.5398 416 10387.5 618.4549 647.6987 643.0436 643.9575 642.4734 631.6887 629.8469 629.3193 623.7414 623.7411 625.8074 417 10412.5 618.2528 647.8874 643.2693 643.1774 642.4411 631.8712 629.4941 629.2646 623.7571 624.1682 625.9747 418 10437.5 618.131 647.8884 642.6342 643.031 641.5251 631.7709 629.5714 629.9105 623.192 623.973 625.5489 419 10462.5 618.3785 647.001 643.1022 643.6928 642.6541 631.5855 629.5517 629.547 622.94 624.0887 626.5947 420 10487.5 617.9627 647.6881 643.2336 642.816 641.5233 631.1578 628.8576 629.158 622.453 622.9434 625.2868 421 10512.5 618.729 647.9235 643.2214 643.8734 642.0082 631.4508 630.1806 629.7437 623.5755 623.8893 626.5532 422 10537.5 617.5241 646.6207 642.648 642.2259 641.1804 630.6105 628.5996 628.8971 621.6964 622.9705 624.9856 423 10562.5 618.4024 648.6393 642.9753 643.8009 642.6087 632.1996 629.7879 629.7999 623.0841 623.8905 626.3713 424 10587.5 618.0944 647.4147 642.4924 642.7857 641.5279 632.8795 630.2167 629.3568 622.8895 623.4556 625.6895 425 10612.5 618.331 647.5699 642.7685 644.1743 641.4024 631.2979 629.5014 628.7688 623.1797 622.6307 626.3287 426 10637.5 618.2501 648.0763 643.1176 643.3727 641.4119 631.1455 629.911 628.9497 623.8503 623.3407 625.3356 427 10662.5 618.2344 646.9236 643.4489 643.5155 641.561 631.5596 629.6456 629.5593 623.126 623.1235 625.3179 428 10687.5 617.8233 646.361 642.6951 643.7252 641.8952 631.7112 628.3871 628.7961 623.5494 623.0217 626.3651 429 10712.5 617.9861 647.0634 643.0438 642.6142 640.8954 632.15 629.1689 629.1661 622.4247 622.9066 625.6096 430 10737.5 618.3168 647.869 643.2796 644.0039 642.3156 631.5433 629.3045 629.8434 624.0207 624.1194 625.8442 431 10762.5 618.2615 648.145 643.1503 644.2762 642.096 631.206 629.7108 629.457 623.3217 623.8368 626.7375 Luminescence/inst/extdata/QNL84_2_unbleached.txt0000644000176200001440000000075114762554470021256 0ustar liggesusers# -------------------------------------------------------------------------------------- # CURVE FITTING TEST DATASET # Berger, G.W., Huntley, D.J., 1989. Test data for exponential fits. Ancient TL 7, 43-46. # # SAMPLE: QNL84 - 2 (Unbleached) # -------------------------------------------------------------------------------------- 0 38671 0 40646 0 38149 0 35836 120 65931 120 67887 120 66133 240 82496 240 86708 240 86580 480 110978 480 113807 480 114192 480 109652 960 130373 960 137789Luminescence/inst/WORDLIST0000644000176200001440000001120614762556226015052 0ustar liggesusersAEQUIVAL ANR Abanico Aberystwyth Acknowledgements Acta Adamiec Adrie Aitken Aktivitaet Alastair Aliquots Allkofer Amidon AnalYses Analyse Angelucci Angulo Anhalt Archaeometry Archaésciences Auclair Azevedo BINX BINfile BINfileData BT Baartman Barbouti Barwa BayLum Bergakademie Bestimmung Bingen Biometrika Biomolecular Blain Blasse Bluszcz Boca Boetter Bolker Bortolot Bos BosWallinga Bq Bracht Brightline Brookhaven Bugfixes Bulur Buylaert CCD CLL CMD CNRS CRC CREDit CRP CWOSL Cammeraat Carstensen Centre Chapot Characterisation CobbleDoseRate Colour Combès Cresswell Crosstalk Croux Cueva Cunha DFG DLED DRAC DRC DTU DTYPE Dau De DeLong DeWitt Debertin Debruyne Deconvolution Dolni Donnelly DorNie Dormagen Dosimetry Dunson Durbin EBG EED Efron Ein Elsevier EMCCD Engelen Eq Erfurt ExampleData FFM FI FMM Freiberg Frouin Furetta GEPRIS GFZ GOK GammaDose Gauthier Gelman Geochronology Geochronometria Geoff Geomorphologie Geomorphology Geophys Giessen Gorin Grabmaier Grampp Grehl Gruen Guadalentin Guo Guralnik Guérin Gy HC HZDR Hadley Hamzaoui Hase Hatte Heer Helmer Heuvelink Hilgers Hintze Hoehne Hornik Huot IC IEU IRAMAT IRSAR IRSL ISSN ITL ImageJ Institut Ioannides Isothermal Jakob Jinmium Jokisch Justus KDE Kambhampati Kars Karsten Kehl Kinahan Kitis Klasen Kolb Krbetschek Krzysztof LABX LEDs LIGHTSOURCE LM LMCurve LTYPE LaScArBx LabEx Lagroix Lahaye Lamothe Lanos Laslett Lauer Lausanne Lefrais Lenovo Lett Levenberg Liebig Liritzis LnTn Lubachevsky Lumineszenzdaten Lx LxTx Löss MAAD MASSAKT MCM MERCHANTABILITY Maartje Madsen Majeed Marquardt MatLab Maternicki McKeever Meszner Mittelsachsen Mittelstraß Modelling Moine Morans MoranScatterplot Morthekai Moska Mungo Murari NCL NNDC NUTECH Namche Nievenheim Normalisation Normalise Nuclide Nurmela Nutech ORCID OSL Oestergard Olley Ostrau PECC PMT POSL PSL Pagonis Palais Paläobodensequenzen Papachristodoulou Parmigiani Pearce Pederson Petr Photoionisation Photomultiplier Pikal Plummer Preusser Princton Pych QNL RCarb RECTYPE REProducible RLum RLumCarlo RLumDocker RLumModel RLumShiny RMF ROI ROIs RStudio Radionukliden Rainer Ramped Rastin Rastin's Raton Rds Rekonstruktion Risoe Risø Rodnight Rosspeintner Rottewitz Rousseeuw Rtools Ruehle Ruprecht SAR SARMeasurement SCHM SHA SPE STRB SUERC Sanderson Sandur Sauer Schlunegger Schoorl Selva Semrock Simmank Singarayer Singhvi SingleGrainDisc Sippewissett Skłodowska Soerensen Softcomp Sohbati Spectrochimica Spectrometry Springer Spätpleistozäns Stamoulis Standardised Steffen Stolz Storn Straessner Streibig Subclasses Svoboda Sébastien TLAPLLIC TOL Technometrics TestFile Thermo Thermochronometry Thermoluminescence Thomsen Thue's Tibshirani TnTx Tobias Torben Trautmann Trave Trebgast Tribolo Tsukamoto Tx UMR UNIL USGS Umweltbedingungen Un Université Unravelling Urbanova VSLIDE Valla Vehtari Veldkamp Vestonice Villaverde Visualise Vogl Wageningen Wallinga Weniger Wickham Wiechen Willian Wintle Wissenschaftsnetzwerk Woda XLS XLSX XRF XSXG XSYG Xcode YAML Yoshida ZENODO ZEU Zeitschrift Zeuchfeld Zilhao abanico absorber al aliquot aliquots aluminium amongst analyse analysed analysing anhand artefact artefacts astr athermal baSAR bbmle behaviour binx calc centre centred centres centring characterisation characterising chemometrics chronometric colour coloured colours contrib crosstalk cts curveType customise customised data's de deconvolution deconvolve dependences deprecations der des detrapping devtools dispersive doi dosimetric dosimetry du eV eq et feldspars fuer gSGC gcc gchron generalised geochr geochronometry ggplot grey hardcoded harmonise hg hotbleach http https initialisation irradiations isochrons isothermal iteratively jlumin ka labelling lexsyg loess logarithmized lossy mGy mJ mW massebezogenen minimisation misspecification misspecifications misspecified mit modelled modelling mol monochromator moran mtext muon muons nd neighbour neighbouring neighbours nls nm normalisation normalise normalised normalises nuclide onwards optimisation optimise optimised pHM pIRIR pLM pPM packings palaeodose pandoc pch photoionisation photomultiplier physica plotly poisson polymineral portableOSL pre preprint programme pseudoR psl px quageo radioelement radioelements radiofluorescence radioluminescence radionuclide radmeas readSPE realised recognised reorganisation reproducibility retrapping rho' rhop rmarkdown rstudioapi sTeve serialised sig sigmab standardisation standardised stratigraphy summand summarise summarised summarises summarising tc thermochronometry thermoluminescence uid un uncontained unfaded unitless unrecognised utilises violinmplot violplot vioplot visualisation visualise visualised visualising vn von xsyg xy ymax ymin zur µA µg µm µs ’Luminescence’ Luminescence/README.md0000644000176200001440000001375714762560036014171 0ustar liggesusers # Luminescence The R package `'Luminescence'` by the R-Luminescence Group provides a collection of various R functions for luminescence dating data analysis. [![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active) [![CRAN](https://www.r-pkg.org/badges/version/Luminescence)](https://CRAN.R-project.org/package=Luminescence) [![CRAN DOI](https://img.shields.io/badge/DOI-10.32614/CRAN.package.Luminescence-1f57b6?style=flat&link=https://doi.org/10.32614/CRAN.package.Luminescence)](https://doi.org/10.32614/CRAN.package.Luminescence) [![ZENODO DOI](https://zenodo.org/badge/23153315.svg)](https://zenodo.org/badge/latestdoi/23153315) [![Downloads](https://cranlogs.r-pkg.org/badges/grand-total/Luminescence)](https://www.r-pkg.org/pkg/Luminescence) [![Downloads](https://cranlogs.r-pkg.org/badges/Luminescence)](https://www.r-pkg.org/pkg/Luminescence) [![Downloads](https://cranlogs.r-pkg.org/badges/last-week/Luminescence)](https://www.r-pkg.org/pkg/Luminescence) [![Downloads](https://cranlogs.r-pkg.org/badges/last-day/Luminescence)](https://www.r-pkg.org/pkg/Luminescence) [![R-CMD-check](https://github.com/R-Lum/Luminescence/actions/workflows/R-CMD-check.yml/badge.svg)](https://github.com/R-Lum/Luminescence/actions) [![Coverage Status](https://img.shields.io/codecov/c/github/R-Lum/Luminescence.svg)](https://app.codecov.io/github/R-Lum/Luminescence?branch=master) ## Social media and other resources Visit our [R-Luminescence homepage](https://r-luminescence.org). ## Installation #### i. Requirements - *Windows (32/64bit)*: [Rtools](https://cran.r-project.org/bin/windows/Rtools/) (provided by CRAN) - *macOS*: [Xcode](https://developer.apple.com/) (provided by Apple) - *Linux*: [gcc](https://gcc.gnu.org) often comes pre-installed in most distributions. #### ii. Install the package Install any development versions using our [RStudio](https://posit.co) add-in ![](man/figures/README-Screenshot_AddIn.png) ##### The plain **R** way To install the stable version from CRAN, simply run the following from an R console: ``` r install.packages("Luminescence") ``` To install the latest development builds directly from GitHub, run ``` r if(!require("devtools")) install.packages("devtools") devtools::install_github("R-Lum/Luminescence@") ``` ## Contribute The R luminescence project is based on and evolves from ideas, contributions and constructive criticism of its users. Help us to maintain and develop the package, to find bugs and create new functions as well as a user-friendly design. Try or write us an [e-mail](mailto:developers@r-luminescence.org) if anything crosses your mind or if you want your new self-written function to be to implemented. You are kindly invited to bring forward the package with us! ## Note **The package comes without any guarantee!** Please further note that this version is a development version and may change day by day. For stable branches please visit the package on [CRAN Luminescence](https://CRAN.R-project.org/package=Luminescence). ## License This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [GNU General Public License](https://github.com/R-Lum/Luminescence/blob/master/LICENSE) for more details. ## Funding - 2011-2013: The initial version of the package was developed in the framework of the PhD thesis by Sebastian Kreutzer, while he was funded through the DFG programme “Rekonstruktion der Umweltbedingungen des Spätpleistozäns in Mittelsachsen anhand von Löss-Paläobodensequenzen” ([GEPRIS id: 46526743](https://gepris.dfg.de/gepris/projekt/46526743)) - 2014-2018: Cooperation and personal exchange between the developers is gratefully funded by the DFG in the framework of the program “Scientific Networks”. Project title: “RLum.Network: Ein Wissenschaftsnetzwerk zur Analyse von Lumineszenzdaten mit R” ([GEPRIS id: 250974974](https://gepris.dfg.de/gepris/projekt/250974974)) - 05/2014-12/2019: The work of Sebastian Kreutzer as maintainer of the package was supported by LabEx LaScArBx (ANR - n. ANR-10-LABX-52). - 01/2020-04/2022: Sebastian Kreutzer as maintainer of the package has received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie grant agreement [No 844457 (CREDit)](https://cordis.europa.eu/project/id/844457), and could continue maintaining the package. - since 03/2023: Sebastian Kreutzer as maintainer of the package receives funding from the DFG Heisenberg programme [No 505822867](https://gepris.dfg.de/gepris/projekt/505822867). - since 08/2024 the future and sustainable development of `'Luminescence'` towards better reproducibility and usability is supported through the DFG programme “REPLAY: REProducible Luminescence Data AnalYses” [No 528704761](https://gepris.dfg.de/gepris/projekt/528704761?language=en) led by Dr Sebastian Kreutzer (PI at Heidelberg University, DE) and Dr Thomas Kolb (PI at Justus-Liebig-University Giessen, DE). - All other authors gratefully received additional funding from various public funding bodies. ## Related projects - [RLumModel](https://github.com/R-Lum/RLumModel) - [RLumShiny](https://github.com/R-Lum/RLumShiny) - [RLumDocker](https://github.com/R-Lum/RLumDocker) - [BayLum](https://github.com/crp2a/BayLum) - [RCarb](https://github.com/R-Lum/RCarb) - [RLumCarlo](https://github.com/R-Lum/RLumCarlo) Luminescence/build/0000755000176200001440000000000014762561726014003 5ustar liggesusersLuminescence/build/vignette.rds0000644000176200001440000000046714762561726016351 0ustar liggesuserseQN0uEE:fĆTUHƹSlj|_$N߽{1!!5;5|uL LPėO`,9QS6IޅyEkj3+g<d0D@2OpY05@~HTvo/n;W?t":m>⋌=J=K[q[O4K@FͿ>!U54f>?(ݨzPQSGT` ߠ/ ULuminescence/build/partial.rdb0000644000176200001440000000007514762561665016134 0ustar liggesusersb```b`aab`b1g``d`aҬy@D?M7Luminescence/man/0000755000176200001440000000000014762561642013454 5ustar liggesusersLuminescence/man/apply_EfficiencyCorrection.Rd0000644000176200001440000000520314762561642021244 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/apply_EfficiencyCorrection.R \name{apply_EfficiencyCorrection} \alias{apply_EfficiencyCorrection} \title{Function to apply spectral efficiency correction to RLum.Data.Spectrum S4 class objects} \usage{ apply_EfficiencyCorrection(object, spectral.efficiency) } \arguments{ \item{object}{\linkS4class{RLum.Data.Spectrum} or \linkS4class{RLum.Analysis} (\strong{required}): S4 object of class \code{RLum.Data.Spectrum}, \code{RLum.Analysis}or a \link{list} of such objects. Other objects in the list are skipped.} \item{spectral.efficiency}{\link{data.frame} (\strong{required}): Data set containing wavelengths (x-column) and relative spectral response values (y-column) (values between 0 and 1). The provided data will be used to correct all spectra if \code{object} is a \link{list}} } \value{ Returns same object as provided as input } \description{ The function allows spectral efficiency corrections for RLum.Data.Spectrum S4 class objects } \details{ The efficiency correction is based on a spectral response dataset provided by the user. Usually the data set for the quantum efficiency is of lower resolution and values are interpolated for the required spectral resolution using the function \link[stats:approxfun]{stats::approx} If the energy calibration differs for both data set \code{NA} values are produces that will be removed from the matrix. } \note{ Please note that the spectral efficiency data from the camera alone may not sufficiently correct for spectral efficiency of the entire optical system (e.g., spectrometer, camera ...). } \section{Function version}{ 0.2.0 } \examples{ ##(1) - use with your own data (uncomment for usage) ## spectral.efficiency <- read.csv("your data") ## ## your.spectrum <- apply_EfficiencyCorrection(your.spectrum, ) } \seealso{ \linkS4class{RLum.Data.Spectrum}, \linkS4class{RLum.Analysis} } \author{ Sebastian Kreutzer, IRAMAT-CRP2A, UMR 5060, CNRS-Université Bordeaux Montaigne (France)\cr Johannes Friedrich, University of Bayreuth (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., Friedrich, J., 2025. apply_EfficiencyCorrection(): Function to apply spectral efficiency correction to RLum.Data.Spectrum S4 class objects. Function version 0.2.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{manip} Luminescence/man/ExampleData.Fading.Rd0000644000176200001440000000642014762557027017323 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{ExampleData.Fading} \alias{ExampleData.Fading} \title{Example data for feldspar fading measurements} \format{ A \link{list} with two elements, each containing a further \link{list} of \link{data.frame}s containing the data on the fading and equivalent dose measurements: \describe{ \verb{$fading.data}: A named \link{list} of \link{data.frame}s, each having three named columns (\verb{LxTx, LxTx.error, timeSinceIrradiation}).\cr \code{..$IR50}: Fading data of the IR50 signal.\cr \code{..$IR100}: Fading data of the IR100 signal.\cr \code{..$IR150}: Fading data of the IR150 signal.\cr \code{..$IR225}: Fading data of the IR225 signal.\cr \verb{$equivalentDose.data}: A named of \link{data.frame}s, each having three named columns (\verb{dose, LxTx, LxTx.error}).\cr \code{..$IR50}: Equivalent dose measurement data of the IR50 signal.\cr \code{..$IR100}: Equivalent dose measurement data of the IR100 signal.\cr \code{..$IR150}: Equivalent dose measurement data of the IR150 signal.\cr \code{..$IR225}: Equivalent dose measurement data of the IR225 signal.\cr } } \source{ These data were kindly provided by Georgina E. King. Detailed information on the sample UNIL/NB123 can be found in the reference given below. The raw data can be found in the accompanying supplementary information. } \description{ Example data set for fading measurements of the IR50, IR100, IR150 and IR225 feldspar signals of sample UNIL/NB123. It further contains regular equivalent dose measurement data of the same sample, which can be used to apply a fading correction to. } \examples{ ## Load example data data("ExampleData.Fading", envir = environment()) ## Get fading measurement data of the IR50 signal IR50_fading <- ExampleData.Fading$fading.data$IR50 head(IR50_fading) ## Determine g-value and rho' for the IR50 signal IR50_fading.res <- analyse_FadingMeasurement(IR50_fading) ## Show g-value and rho' results gval <- get_RLum(IR50_fading.res) rhop <- get_RLum(IR50_fading.res, "rho_prime") gval rhop ## Get LxTx values of the IR50 DE measurement IR50_De.LxTx <- ExampleData.Fading$equivalentDose.data$IR50 ## Calculate the De of the IR50 signal IR50_De <- fit_DoseResponseCurve(IR50_De.LxTx, mode = "interpolation", fit.method = "EXP") ## Extract the calculated De and its error IR50_De.res <- get_RLum(IR50_De) De <- c(IR50_De.res$De, IR50_De.res$De.Error) ## Apply fading correction (age conversion greatly simplified) IR50_Age <- De / 7.00 IR50_Age.corr <- calc_FadingCorr(IR50_Age, g_value = IR50_fading.res) } \references{ King, G.E., Herman, F., Lambert, R., Valla, P.G., Guralnik, B., 2016. Multi-OSL-thermochronometry of feldspar. Quaternary Geochronology 33, 76-87. doi:10.1016/j.quageo.2016.01.004 \strong{Details} \tabular{ll}{ Lab: \tab University of Lausanne \cr Lab-Code: \tab UNIL/NB123 \cr Location: \tab Namche Barwa (eastern Himalayas)\cr Material: \tab Coarse grained (180-212 microns) potassium feldspar \cr Units: \tab Values are given in seconds \cr Lab Dose Rate: \tab Dose rate of the beta-source at measurement ca. 0.1335 +/- 0.004 Gy/s \cr Environmental Dose Rate: \tab 7.00 +/- 0.92 Gy/ka (includes internal dose rate) } } \keyword{datasets} Luminescence/man/ExampleData.portableOSL.Rd0000644000176200001440000000150014762557027020313 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \docType{data} \name{ExampleData.portableOSL} \alias{ExampleData.portableOSL} \title{Example portable OSL curve data for the package Luminescence} \source{ \strong{ExampleData.portableOSL} \tabular{ll}{ Lab: \tab Cologne Luminescence Laboratory\cr Lab-Code: \tab \code{none} \cr Location: \tab Nievenheim/Germany\cr Material: \tab Fine grain quartz \cr Reference: \tab unpublished data } } \description{ A \code{list} of \linkS4class{RLum.Analysis} objects, each containing the same number of \linkS4class{RLum.Data.Curve} objects representing individual OSL, IRSL and dark count measurements of a sample. } \examples{ data(ExampleData.portableOSL, envir = environment()) plot_RLum(ExampleData.portableOSL) } \keyword{datasets} Luminescence/man/read_XSYG2R.Rd0000644000176200001440000001610014762561642015732 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/read_XSYG2R.R \name{read_XSYG2R} \alias{read_XSYG2R} \title{Import XSYG files to R} \usage{ read_XSYG2R( file, recalculate.TL.curves = TRUE, n_records = NULL, fastForward = FALSE, import = TRUE, pattern = ".xsyg", verbose = TRUE, txtProgressBar = TRUE ) } \arguments{ \item{file}{\link{character} or \link{list} (\strong{required}): path and file name of the XSYG file. If input is a \code{list} it should comprise only \code{character}s representing each valid path and XSYG-file names. Alternatively, the input character can be just a directory (path), in which case the function tries to detect and import all XSYG-files found in the directory.} \item{recalculate.TL.curves}{\link{logical} (\emph{with default}): if set to \code{TRUE}, TL curves are returned as temperature against count values (see details for more information) Note: The option overwrites the time vs. count TL curve. Select \code{FALSE} to import the raw data delivered by the lexsyg. Works for TL curves and spectra.} \item{n_records}{\link{numeric} (\emph{with default}): set the number of records to be imported; by default the function attempts to import all records} \item{fastForward}{\link{logical} (\emph{with default}): if \code{TRUE} for a more efficient data processing only a list of \linkS4class{RLum.Analysis} objects is returned.} \item{import}{\link{logical} (\emph{with default}): if set to \code{FALSE}, only the XSYG file structure is shown.} \item{pattern}{\link{regex} (\emph{with default}): optional regular expression if \code{file} is a link to a folder, to select just specific XSYG-files} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal. If verbose is \code{FALSE} the \code{txtProgressBar} is also switched off} \item{txtProgressBar}{\link{logical} (\emph{with default}): enable/disable the progress bar during import. Ignored if \code{verbose = FALSE}.} } \value{ \strong{Using the option \code{import = FALSE}} A list consisting of two elements is shown: \itemize{ \item \link{data.frame} with information on file. \item \link{data.frame} with information on the sequences stored in the XSYG file. } \strong{Using the option \code{import = TRUE} (default)} A list is provided, the list elements contain: \item{Sequence.Header}{\link{data.frame} with information on the sequence.} \item{Sequence.Object}{\linkS4class{RLum.Analysis} containing the curves.} } \description{ Imports XSYG-files produced by a Freiberg Instruments lexsyg reader into R. } \details{ \strong{How does the import function work?} The function uses the \code{'XML'} package to parse the file structure. Each sequence is subsequently translated into an \linkS4class{RLum.Analysis} object. \strong{General structure XSYG format} \if{html}{\out{

}}\preformatted{ x0 , y0 ; x1 , y1 ; x2 , y2 ; x3 , y3 }\if{html}{\out{
}} So far, each XSYG file can only contain one \verb{}, but multiple sequences. Each record may comprise several curves. \strong{TL curve recalculation} On the FI lexsyg device TL curves are recorded as time against count values. Temperature values are monitored on the heating plate and stored in a separate curve (time vs. temperature). If the option \code{recalculate.TL.curves = TRUE} is chosen, the time values for each TL curve are replaced by temperature values. Practically, this means combining two matrices (Time vs. Counts and Time vs. Temperature) with different row numbers by their time values. Three cases are considered: \enumerate{ \item HE: Heating element \item PMT: Photomultiplier tube \item Interpolation is done using the function \link{approx} } CASE (1): \code{nrow(matrix(PMT))} > \code{nrow(matrix(HE))} Missing temperature values from the heating element are calculated using time values from the PMT measurement. CASE (2): \code{nrow(matrix(PMT))} < \code{nrow(matrix(HE))} Missing count values from the PMT are calculated using time values from the heating element measurement. CASE (3): \code{nrow(matrix(PMT))} == \code{nrow(matrix(HE))} A new matrix is produced using temperature values from the heating element and count values from the PMT. \strong{Note:} Please note that due to the recalculation of the temperature values based on values delivered by the heating element, it may happen that multiple count values exists for each temperature value and temperature values may also decrease during heating, not only increase. \strong{Advanced file import} To allow for a more efficient usage of the function, instead of single path to a file just a directory can be passed as input. In this particular case the function tries to extract all XSYG-files found in the directory and import them all. Using this option internally the function constructs as list of the XSYG-files found in the directory. Please note no recursive detection is supported as this may lead to endless loops. } \note{ This function is a beta version as the XSYG file format is not yet fully specified. Thus, further file operations (merge, export, write) should be done using the functions provided with the package \code{'XML'}. \strong{So far, no image data import is provided!} \cr Corresponding values in the XSXG file are skipped. } \section{Function version}{ 0.6.14 } \examples{ ##(1) import XSYG file to R (uncomment for usage) #FILE <- file.choose() #temp <- read_XSYG2R(FILE) ##(2) additional examples for pure XML import using the package XML ## (uncomment for usage) ##import entire XML file #FILE <- file.choose() #temp <- XML::xmlRoot(XML::xmlTreeParse(FILE)) ##search for specific subnodes with curves containing 'OSL' #getNodeSet(temp, "//Sample/Sequence/Record[@recordType = 'OSL']/Curve") ##(2) How to extract single curves ... after import data(ExampleData.XSYG, envir = environment()) ##grep one OSL curves and plot the first curve OSLcurve <- get_RLum(OSL.SARMeasurement$Sequence.Object, recordType="OSL")[[1]] ##(3) How to see the structure of an object? structure_RLum(OSL.SARMeasurement$Sequence.Object) } \section{How to cite}{ Kreutzer, S., 2025. read_XSYG2R(): Import XSYG files to R. Function version 0.6.14. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Grehl, S., Kreutzer, S., Hoehne, M., 2013. Documentation of the XSYG file format. Unpublished Technical Note. Freiberg, Germany \strong{Further reading} XML: \url{https://en.wikipedia.org/wiki/XML} } \seealso{ \code{'XML'}, \linkS4class{RLum.Analysis}, \linkS4class{RLum.Data.Curve}, \link{approx} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{IO} Luminescence/man/calc_TLLxTxRatio.Rd0000644000176200001440000000736514762561642017076 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_TLLxTxRatio.R \name{calc_TLLxTxRatio} \alias{calc_TLLxTxRatio} \title{Calculate the Lx/Tx ratio for a given set of TL curves -beta version-} \usage{ calc_TLLxTxRatio( Lx.data.signal, Lx.data.background = NULL, Tx.data.signal, Tx.data.background = NULL, signal.integral.min, signal.integral.max ) } \arguments{ \item{Lx.data.signal}{\linkS4class{RLum.Data.Curve} or \link{data.frame} (\strong{required}): TL data (x = temperature, y = counts) (TL signal)} \item{Lx.data.background}{\linkS4class{RLum.Data.Curve} or \link{data.frame} (\emph{optional}): TL data (x = temperature, y = counts). If no data are provided no background subtraction is performed.} \item{Tx.data.signal}{\linkS4class{RLum.Data.Curve} or \link{data.frame} (\strong{required}): TL data (x = temperature, y = counts) (TL test signal)} \item{Tx.data.background}{\linkS4class{RLum.Data.Curve} or \link{data.frame} (\emph{optional}): TL data (x = temperature, y = counts). If no data are provided no background subtraction is performed.} \item{signal.integral.min}{\link{integer} (\strong{required}): channel number for the lower signal integral bound (e.g. \code{signal.integral.min = 100})} \item{signal.integral.max}{\link{integer} (\strong{required}): channel number for the upper signal integral bound (e.g. \code{signal.integral.max = 200})} } \value{ Returns an S4 object of type \linkS4class{RLum.Results}. Slot \code{data} contains a \link{list} with the following structure: \if{html}{\out{
}}\preformatted{$ LxTx.table .. $ LnLx .. $ LnLx.BG .. $ TnTx .. $ TnTx.BG .. $ Net_LnLx .. $ Net_LnLx.Error }\if{html}{\out{
}} } \description{ Calculate Lx/Tx ratio for a given set of TL curves. } \details{ \strong{Uncertainty estimation} The standard errors are calculated using the following generalised equation: \deqn{SE_{signal} = abs(Signal_{net} * BG_f /BG_{signal})} where \eqn{BG_f} is a term estimated by calculating the standard deviation of the sum of the \eqn{L_x} background counts and the sum of the \eqn{T_x} background counts. However, if both signals are similar the error becomes zero. } \note{ \strong{This function has still BETA status!} Please further note that a similar background for both curves results in a zero error and is therefore set to \code{NA}. } \section{Function version}{ 0.3.3 } \examples{ ##load package example data data(ExampleData.BINfileData, envir = environment()) ##convert Risoe.BINfileData into a curve object temp <- Risoe.BINfileData2RLum.Analysis(TL.SAR.Data, pos = 3) Lx.data.signal <- get_RLum(temp, record.id=1) Lx.data.background <- get_RLum(temp, record.id=2) Tx.data.signal <- get_RLum(temp, record.id=3) Tx.data.background <- get_RLum(temp, record.id=4) signal.integral.min <- 210 signal.integral.max <- 230 output <- calc_TLLxTxRatio( Lx.data.signal, Lx.data.background, Tx.data.signal, Tx.data.background, signal.integral.min, signal.integral.max) get_RLum(output) } \seealso{ \linkS4class{RLum.Results}, \link{analyse_SAR.TL} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) \cr Christoph Schmidt, University of Bayreuth (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., Schmidt, C., 2025. calc_TLLxTxRatio(): Calculate the Lx/Tx ratio for a given set of TL curves -beta version-. Function version 0.3.3. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{datagen} Luminescence/man/RLum.Data-class.Rd0000644000176200001440000000521714762561642016602 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/RLum.Data-class.R \docType{class} \name{RLum.Data-class} \alias{RLum.Data-class} \alias{add_metadata<-,RLum.Data-method} \alias{rename_metadata<-,RLum.Data-method} \alias{replace_metadata<-,RLum.Data-method} \alias{view,RLum.Data-method} \title{Class \code{"RLum.Data"}} \usage{ \S4method{add_metadata}{RLum.Data}(object, info_element) <- value \S4method{rename_metadata}{RLum.Data}(object, info_element) <- value \S4method{replace_metadata}{RLum.Data}(object, info_element, subset = NULL, verbose = TRUE) <- value \S4method{view}{RLum.Data}(object, ...) } \arguments{ \item{object}{(\strong{required}) an object of class \linkS4class{RLum.Data}} \item{info_element}{\link{character} (\strong{required}) name of the metadata field to replace or remove} \item{value}{(\strong{required}) The value assigned to the selected elements of the metadata field. If \code{NULL} the elements named in \code{info_element} will be removed.} \item{subset}{\link{expression} (\emph{optional}) logical expression to limit the substitution only to the selected subset of elements} \item{verbose}{\link{logical} (\emph{with default}) enable/disable output to the terminal.} \item{...}{other arguments that might be passed} } \description{ Generalized virtual data class for luminescence data. } \section{Methods (by generic)}{ \itemize{ \item \code{add_metadata(RLum.Data) <- value}: Add metadata entries to \linkS4class{RLum.Data} objects \item \code{rename_metadata(RLum.Data) <- value}: Rename a metadata entry of \linkS4class{RLum.Data} objects \item \code{replace_metadata(RLum.Data) <- value}: Replaces or removes metadata of \linkS4class{RLum.Data} objects \item \code{view(RLum.Data)}: View method for \linkS4class{RLum.Data} objects }} \section{Objects from the Class}{ A virtual class: no objects can be created from it. } \section{Class version}{ 0.2.1 } \examples{ showClass("RLum.Data") } \seealso{ \linkS4class{RLum}, \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Data.Spectrum}, \linkS4class{RLum.Data.Image} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. RLum.Data-class(): Class 'RLum.Data'. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{classes} \keyword{internal} Luminescence/man/ExampleData.CobbleData.Rd0000644000176200001440000000120514762557027020107 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{ExampleData.CobbleData} \alias{ExampleData.CobbleData} \title{Example data for calc_CobbleDoseRate()} \format{ A \code{\link{data.frame}}. Please see \link{calc_CobbleDoseRate} for detailed information on the structure of the \link{data.frame}. } \description{ An example data set for the function \link{calc_CobbleDoseRate} containing layer specific information for the cobble to be used in the function. } \section{Version}{ 0.1.0 } \examples{ ## Load data data("ExampleData.CobbleData", envir = environment()) } \keyword{datasets} Luminescence/man/plot_RLum.Data.Image.Rd0000644000176200001440000000671014762561642017555 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_RLum.Data.Image.R \name{plot_RLum.Data.Image} \alias{plot_RLum.Data.Image} \title{Plot function for an \code{RLum.Data.Image} S4 class object} \usage{ plot_RLum.Data.Image( object, frames = NULL, par.local = TRUE, plot.type = "plot.raster", ... ) } \arguments{ \item{object}{\linkS4class{RLum.Data.Image} (\strong{required}): S4 object of class \code{RLum.Data.Image}} \item{frames}{\link{numeric} (\emph{optional}): sets the frames to be set, by default all frames are plotted. Can be sequence of numbers, as long as the frame number is valid.} \item{par.local}{\link{logical} (\emph{with default}): use local graphical parameters for plotting, e.g. the plot is shown in one column and one row. If \code{par.local = FALSE} global parameters are inherited.} \item{plot.type}{\link{character} (\emph{with default}): plot types. Supported types are \code{plot.raster}, \code{contour}} \item{...}{further arguments and graphical parameters that will be passed to the specific plot functions. Standard supported parameters are \code{xlim}, \code{ylim}, \code{zlim}, \code{xlab}, \code{ylab}, \code{main}, \code{legend} (\code{TRUE} or \code{FALSE}), \code{col}, \code{cex}, \code{axes} (\code{TRUE} or \code{FALSE}), \code{zlim_image} (adjust the z-scale over different images), \code{stretch}} } \value{ Returns a plot } \description{ The function provides very basic plot functionality for image data of an \linkS4class{RLum.Data.Image} object. For more sophisticated plotting it is recommended to use other very powerful packages for image processing. \strong{Details on the plot functions} Supported plot types: \strong{\code{plot.type = "plot.raster"}} Uses the standard plot function of R \link[graphics:image]{graphics::image}. If wanted, the image is enhanced, using the argument \code{stretch}. Possible values are \code{hist}, \code{lin}, and \code{NULL}. The latter does nothing. The argument \code{useRaster = TRUE} is used by default, but can be set to \code{FALSE}. \strong{\code{plot.type = "contour"}} This uses the function \link[graphics:contour]{graphics::contour} } \note{ The axes limitations (\code{xlim}, \code{zlim}, \code{zlim}) work directly on the object, so that regardless of the chosen limits the image parameters can be adjusted for best visibility. However, in particular for z-scale limitations this is not always wanted, please use \code{zlim_image} to maintain a particular value range over a series of images. } \section{Function version}{ 0.2.1 } \examples{ ##load data data(ExampleData.RLum.Data.Image, envir = environment()) ##plot data plot_RLum.Data.Image(ExampleData.RLum.Data.Image) } \seealso{ \linkS4class{RLum.Data.Image}, \link{plot}, \link{plot_RLum}, \link[graphics:image]{graphics::image}, \link[graphics:contour]{graphics::contour} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. plot_RLum.Data.Image(): Plot function for an RLum.Data.Image S4 class object. Function version 0.2.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{aplot} Luminescence/man/extdata.Rd0000644000176200001440000000452114762557027015401 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{extdata} \alias{extdata} \title{Collection of External Data} \description{ Description and listing of data provided in the folder \code{data/extdata} } \details{ The \strong{R} package \code{Luminescence} includes a number of raw data files, which are mostly used in the example sections of appropriate functions. They are also used internally for testing corresponding functions using the \code{testthat} package (see files in \verb{tests/testthat/}) to ensure their operational reliability. \strong{Accessibility} If the \strong{R} package \code{Luminescence} is installed correctly the preferred way to access and use these data from within \strong{R} is as follows: \code{system.file("extdata/", package = "Luminescence")} \strong{Individual file descriptions} \emph{>>Daybreak_TestFile.DAT/.txt<<} \strong{Type:} raw measurement data \cr \strong{Device:} Daybreak OSL/TL reader\cr \strong{Measurement date:} unknown\cr \strong{Location:} unknown\cr \strong{Provided by:} unknown\cr \strong{Related R function(s):} \code{read_Daybreak2R()}\cr \strong{Reference:} unknown \emph{>>DorNie_0016.psl<<} \strong{Type:} raw measurement data \cr \strong{Device:} SUERC portable OSL reader \cr \strong{Measurement date:} 19/05/2016 \cr \strong{Location:} Dormagen-Nievenheim, Germany \cr \strong{Provided by:} Christoph Burow (University of Cologne) \cr \strong{Related R function(s):} \code{read_PSL2R()} \cr \strong{Reference:} unpublished \cr \strong{Additional information:} Sample measured at an archaeological site near \cr Dormagen-Nievenheim (Germany) during a practical course on Luminescence dating in 2016. \cr \emph{>>QNL84_2_bleached.txt}, \emph{QNL84_2_unbleached.txt<<} \strong{Type:} Test data for exponential fits \cr \strong{Reference:} Berger, G.W., Huntley, D.J., 1989. Test data for exponential fits. Ancient TL 7, 43-46. \cr \emph{>>STRB87_1_bleached.txt}, \emph{STRB87_1_unbleached.txt<<} \strong{Type:} Test data for exponential fits \cr \strong{Reference:} Berger, G.W., Huntley, D.J., 1989. Test data for exponential fits. Ancient TL 7, 43-46. \emph{>>XSYG_file.xsyg} \strong{Type:} XSYG-file stump \cr **Info: ** XSYG-file with some basic curves to test functions \cr \strong{Reference:} no reference available } \keyword{datasets} Luminescence/man/ExampleData.FittingLM.Rd0000644000176200001440000000217614762557027017774 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{ExampleData.FittingLM} \alias{ExampleData.FittingLM} \alias{values.curve} \alias{values.curveBG} \title{Example data for fit_LMCurve() in the package Luminescence} \format{ Two objects (data.frames) with two columns (time and counts). } \source{ \tabular{ll}{ Lab: \tab Luminescence Laboratory Bayreuth\cr Lab-Code: \tab BT900\cr Location: \tab Norway\cr Material: \tab Beach deposit, coarse grain quartz measured on aluminium discs on a Risø TL/OSL DA-15 reader\cr } } \description{ Linearly modulated (LM) measurement data from a quartz sample from Norway including background measurement. Measurements carried out in the luminescence laboratory at the University of Bayreuth. } \examples{ ##show LM data data(ExampleData.FittingLM, envir = environment()) plot(values.curve,log="x") } \references{ Fuchs, M., Kreutzer, S., Fischer, M., Sauer, D., Soerensen, R., 2012. OSL and IRSL dating of raised beach sand deposits along the south-eastern coast of Norway. Quaternary Geochronology, 10, 195-200. } \keyword{datasets} \keyword{internal} Luminescence/man/structure_RLum.Rd0000644000176200001440000000371014762561642016743 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-generics.R \name{structure_RLum} \alias{structure_RLum} \alias{structure_RLum,list-method} \title{General structure function for RLum S4 class objects} \usage{ structure_RLum(object, ...) \S4method{structure_RLum}{list}(object, ...) } \arguments{ \item{object}{\linkS4class{RLum} (\strong{required}): S4 object of class \code{RLum}} \item{...}{further arguments passed to the specific class method} } \value{ Returns a \link{data.frame} with structure of the object. } \description{ The function provides a generalised access point for specific \linkS4class{RLum} objects. Depending on the input object, the corresponding function will be selected. Allowed arguments can be found in the documentations of the corresponding \linkS4class{RLum} class. } \section{Functions}{ \itemize{ \item \code{structure_RLum(list)}: Returns a list of \linkS4class{RLum} objects that were passed to \link{structure_RLum} }} \section{Function version}{ 0.2.0 } \examples{ ## load example data data(ExampleData.XSYG, envir = environment()) ## show structure structure_RLum(OSL.SARMeasurement$Sequence.Object) } \seealso{ \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Data.Image}, \linkS4class{RLum.Data.Spectrum}, \linkS4class{RLum.Analysis}, \linkS4class{RLum.Results} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. structure_RLum(): General structure function for RLum S4 class objects. Function version 0.2.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{utilities} Luminescence/man/get_rightAnswer.Rd0000644000176200001440000000200114762561642017070 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/get_rightAnswer.R \name{get_rightAnswer} \alias{get_rightAnswer} \title{Function to get the right answer} \usage{ get_rightAnswer(...) } \arguments{ \item{...}{you can pass an infinite number of further arguments} } \value{ Returns the right answer } \description{ This function returns just the right answer } \section{Function version}{ 0.1.0 } \examples{ ## you really want to know? get_rightAnswer() } \author{ inspired by R.G. , RLum Developer Team} \section{How to cite}{ NA, NA, , , 2025. get_rightAnswer(): Function to get the right answer. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } Luminescence/man/length_RLum.Rd0000644000176200001440000000275114762561642016170 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-generics.R \name{length_RLum} \alias{length_RLum} \title{Length retrieval function for RLum S4 class objects} \usage{ length_RLum(object) } \arguments{ \item{object}{\linkS4class{RLum} (\strong{required}): S4 object of class \code{RLum}} } \value{ An \link{integer} indicating the length of the object. } \description{ The function provides a generalised access point for specific \linkS4class{RLum} objects. Depending on the input object, the corresponding function will be selected. Allowed arguments can be found in the documentations of the corresponding \linkS4class{RLum} class. } \section{Function version}{ 0.1.0 } \seealso{ \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Data.Image}, \linkS4class{RLum.Data.Spectrum}, \linkS4class{RLum.Analysis}, \linkS4class{RLum.Results} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. length_RLum(): Length retrieval function for RLum S4 class objects. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{utilities} Luminescence/man/smooth_RLum.Rd0000644000176200001440000000434614762561642016222 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-generics.R \name{smooth_RLum} \alias{smooth_RLum} \alias{smooth_RLum,list-method} \title{Smoothing of data for RLum S4-class objects} \usage{ smooth_RLum(object, ...) \S4method{smooth_RLum}{list}(object, ...) } \arguments{ \item{object}{\linkS4class{RLum} (\strong{required}): S4 object of class \code{RLum}} \item{...}{further arguments passed to the specific class method} } \value{ An object of the same type as the input object provided. } \description{ The function provides a generalised access point for specific \linkS4class{RLum} objects. Depending on the input object, the corresponding function will be selected. Allowed arguments can be found in the documentations of the corresponding \linkS4class{RLum} class. The smoothing is based on an internal function called \code{.smoothing}. } \section{Functions}{ \itemize{ \item \code{smooth_RLum(list)}: Returns a list of \linkS4class{RLum} objects that had been passed to \link{smooth_RLum} }} \note{ Currently only \code{RLum} objects of class \code{RLum.Data.Curve} and \code{RLum.Analysis} (with curve data) are supported. } \section{Function version}{ 0.1.0 } \examples{ ## load example data data(ExampleData.CW_OSL_Curve, envir = environment()) ## create RLum.Data.Curve object from this example curve <- set_RLum( class = "RLum.Data.Curve", recordType = "OSL", data = as.matrix(ExampleData.CW_OSL_Curve) ) ## plot data without and with smoothing plot_RLum(curve) plot_RLum(smooth_RLum(curve)) } \seealso{ \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Analysis} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. smooth_RLum(): Smoothing of data for RLum S4-class objects. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{utilities} Luminescence/man/calc_FastRatio.Rd0000644000176200001440000001215014762561642016620 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_FastRatio.R \name{calc_FastRatio} \alias{calc_FastRatio} \title{Calculate the Fast Ratio for CW-OSL curves} \usage{ calc_FastRatio( object, stimulation.power = 30.6, wavelength = 470, sigmaF = 2.6e-17, sigmaM = 4.28e-18, Ch_L1 = 1, Ch_L2 = NULL, Ch_L3 = NULL, x = 1, x2 = 0.1, dead.channels = c(0, 0), fitCW.sigma = FALSE, fitCW.curve = FALSE, plot = TRUE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Analysis}, \linkS4class{RLum.Data.Curve} or \link{data.frame} (\strong{required}): x, y data of measured values (time and counts).} \item{stimulation.power}{\link{numeric} (\emph{with default}): Stimulation power in mW/cm²} \item{wavelength}{\link{numeric} (\emph{with default}): Stimulation wavelength in nm} \item{sigmaF}{\link{numeric} (\emph{with default}): Photoionisation cross-section (cm²) of the fast component. Default value after Durcan & Duller (2011).} \item{sigmaM}{\link{numeric} (\emph{with default}): Photoionisation cross-section (cm²) of the medium component. Default value after Durcan & Duller (2011).} \item{Ch_L1}{\link{numeric} (\emph{with default}): An integer specifying the channel for L1.} \item{Ch_L2}{\link{numeric} (\emph{optional}): An integer specifying the channel for L2.} \item{Ch_L3}{\link{numeric} (\emph{optional}): A vector of length 2 with integer values specifying the start and end channels for L3 (e.g., \code{c(40, 50)}), with the second component greater than or equal to the first.} \item{x}{\link{numeric} (\emph{with default}): Percentage of signal remaining from the fast component. Used to define the location of L2 and L3 (start).} \item{x2}{\link{numeric} (\emph{with default}): Percentage of signal remaining from the medium component. Used to define the location of L3 (end).} \item{dead.channels}{\link{numeric} (\emph{with default}): Vector of length 2 in the form of \code{c(x, y)}. Channels that do not contain OSL data, i.e. at the start or end of measurement.} \item{fitCW.sigma}{\link{logical} (\emph{optional}): fit CW-OSL curve using \link{fit_CWCurve} to calculate \code{sigmaF} and \code{sigmaM} (\strong{experimental}).} \item{fitCW.curve}{\link{logical} (\emph{optional}): fit CW-OSL curve using \link{fit_CWCurve} and derive the counts of L2 and L3 from the fitted OSL curve (\strong{experimental}).} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{available options: \code{verbose} (\link{logical}). Further arguments passed to \link{fit_CWCurve}.} } \value{ Returns a plot (\emph{optional}) and an S4 object of type \linkS4class{RLum.Results}. The slot \code{data} contains a \link{list} with the following elements: \item{summary}{\link{data.frame} summary of all relevant results} \item{data}{the original input data} \item{fit}{\linkS4class{RLum.Results} object if either \code{fitCW.sigma} or \code{fitCW.curve} is \code{TRUE}} \item{args}{\link{list} of used arguments} \item{call}{\link{call} the function call} } \description{ Function to calculate the fast ratio of quartz CW-OSL single grain or single aliquot curves after Durcan & Duller (2011). This function follows the equations of Durcan & Duller (2011). The energy required to reduce the fast and medium quartz OSL components to \code{x} and \code{x2} \% respectively using eq. 3 to determine channels L2 and L3 (start and end). The fast ratio is then calculated from: \eqn{(L1-L3)/(L2-L3)}. } \section{Function version}{ 0.1.1 } \examples{ # load example CW-OSL curve data("ExampleData.CW_OSL_Curve") # calculate the fast ratio w/o further adjustments res <- calc_FastRatio(ExampleData.CW_OSL_Curve) # show the summary table get_RLum(res) } \section{How to cite}{ King, G.E., Durcan, J., Burow, C., 2025. calc_FastRatio(): Calculate the Fast Ratio for CW-OSL curves. Function version 0.1.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Durcan, J.A. & Duller, G.A.T., 2011. The fast ratio: A rapid measure for testing the dominance of the fast component in the initial OSL signal from quartz. Radiation Measurements 46, 1065-1072. Madsen, A.T., Duller, G.A.T., Donnelly, J.P., Roberts, H.M. & Wintle, A.G., 2009. A chronology of hurricane landfalls at Little Sippewissett Marsh, Massachusetts, USA, using optical dating. Geomorphology 109, 36-45. \strong{Further reading} Steffen, D., Preusser, F. & Schlunegger, 2009. OSL quartz age underestimation due to unstable signal components. Quaternary Geochronology 4, 353-362. } \seealso{ \link{fit_CWCurve}, \link{get_RLum}, \linkS4class{RLum.Analysis}, \linkS4class{RLum.Results}, \linkS4class{RLum.Data.Curve} } \author{ Georgina E. King, University of Bern (Switzerland) \cr Julie A. Durcan, University of Oxford (United Kingdom) \cr Christoph Burow, University of Cologne (Germany) , RLum Developer Team} Luminescence/man/use_DRAC.Rd0000644000176200001440000001167614762561642015343 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/use_DRAC.R \name{use_DRAC} \alias{use_DRAC} \title{Use DRAC to calculate dose rate data} \usage{ use_DRAC(file, name, print_references = TRUE, citation_style = "text", ...) } \arguments{ \item{file}{\link{character} (\strong{required}): name of a CSV file (formatted according to the DRAC v1.2 CSV template) to be sent to the DRAC website for calculation. It can also be a DRAC template object obtained from \code{\link[=template_DRAC]{template_DRAC()}}.} \item{name}{\link{character} (\emph{with default}): Optional user name submitted to DRAC. If omitted, a random name will be generated} \item{print_references}{(\emph{with default}): Print all references used in the input data table to the console.} \item{citation_style}{(\emph{with default}): If \code{print_references = TRUE} this argument determines the output style of the used references. Valid options are \code{"Bibtex"}, \code{"citation"}, \code{"html"}, \code{"latex"} or \code{"R"}. Default is \code{"text"}.} \item{...}{Further arguments. \itemize{ \item \code{url} \link{character}: provide an alternative URL to DRAC \item \code{ignore_version} \link{logical}: ignores the version check, this might come in handy if the version has changed, but not the column order \item \code{user} \link{character}: option to provide username for secured site \item \code{password} \link{character}: password for secured site, only works jointly with \code{user} \item \code{verbose} \link{logical}: show or hide console output }} } \value{ Returns an \linkS4class{RLum.Results} object containing the following elements: \item{DRAC}{\link{list}: a named list containing the following elements in slot \verb{@data}: \tabular{lll}{ \verb{$highlights} \tab \link{data.frame} \tab summary of 25 most important input/output fields \cr \verb{$header} \tab \link{character} \tab HTTP header from the DRAC server response \cr \verb{$labels} \tab \link{data.frame} \tab descriptive headers of all input/output fields \cr \verb{$content} \tab \link{data.frame} \tab complete DRAC input/output table \cr \verb{$input} \tab \link{data.frame} \tab DRAC input table \cr \verb{$output} \tab \link{data.frame} \tab DRAC output table \cr \code{references}\tab \link{list} \tab A list of bib entries of used references \cr } } \item{data}{\link{character} or \link{list} path to the input spreadsheet or a DRAC template} \item{call}{\link{call} the function call} \item{args}{\link{list} used arguments} The output should be accessed using the function \link{get_RLum}. } \description{ The function provides an interface from R to DRAC. An R-object or a CSV file is passed to the DRAC website and results are re-imported into R. } \section{Function version}{ 0.15 } \examples{ ## (1) Method using the DRAC spreadsheet file <- "/PATH/TO/DRAC_Input_Template.csv" # send the actual IO template spreadsheet to DRAC \dontrun{ use_DRAC(file = file) } ## (2) Method using an R template object # Create a template input <- template_DRAC(preset = "DRAC-example_quartz") # Fill the template with values input$`Project ID` <- "DRAC-Example" input$`Sample ID` <- "Quartz" input$`Conversion factors` <- "AdamiecAitken1998" input$`External U (ppm)` <- 3.4 input$`errExternal U (ppm)` <- 0.51 input$`External Th (ppm)` <- 14.47 input$`errExternal Th (ppm)` <- 1.69 input$`External K (\%)` <- 1.2 input$`errExternal K (\%)` <- 0.14 input$`Calculate external Rb from K conc?` <- "N" input$`Calculate internal Rb from K conc?` <- "N" input$`Scale gammadoserate at shallow depths?` <- "N" input$`Grain size min (microns)` <- 90 input$`Grain size max (microns)` <- 125 input$`Water content ((wet weight - dry weight)/dry weight) \%` <- 5 input$`errWater content \%` <- 2 input$`Depth (m)` <- 2.2 input$`errDepth (m)` <- 0.22 input$`Overburden density (g cm-3)` <- 1.8 input$`errOverburden density (g cm-3)` <- 0.1 input$`Latitude (decimal degrees)` <- 30.0000 input$`Longitude (decimal degrees)` <- 70.0000 input$`Altitude (m)` <- 150 input$`De (Gy)` <- 20 input$`errDe (Gy)` <- 0.2 # use DRAC \dontrun{ output <- use_DRAC(input) } } \section{How to cite}{ Kreutzer, S., Dietze, M., Burow, C., 2025. use_DRAC(): Use DRAC to calculate dose rate data. Function version 0.15. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Durcan, J.A., King, G.E., Duller, G.A.T., 2015. DRAC: Dose Rate and Age Calculator for trapped charge dating. Quaternary Geochronology 28, 54-61. doi:10.1016/j.quageo.2015.03.012 } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr Michael Dietze, GFZ Potsdam (Germany)\cr Christoph Burow, University of Cologne (Germany) , RLum Developer Team} Luminescence/man/calc_Lamothe2003.Rd0000644000176200001440000001623714762561642016634 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_Lamothe2003.R \name{calc_Lamothe2003} \alias{calc_Lamothe2003} \title{Apply fading correction after Lamothe et al., 2003} \usage{ calc_Lamothe2003( object, dose_rate.envir, dose_rate.source, g_value, tc = NULL, tc.g_value = tc, verbose = TRUE, plot = TRUE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Results} \link{data.frame} (\strong{required}): Input data for applying the fading correction. Allow are (1) \link{data.frame} with three columns (\code{dose}, \code{LxTx}, \verb{LxTx error}; see details), (2) \linkS4class{RLum.Results} object created by the function \link{analyse_SAR.CWOSL} or \link{analyse_pIRIRSequence}} \item{dose_rate.envir}{\link{numeric} vector of length 2 (\strong{required}): Environmental dose rate in mGy/a} \item{dose_rate.source}{\link{numeric} vector of length 2 (\strong{required}): Irradiation source dose rate in Gy/s, which is, according to Lamothe et al. (2003) De/t*.} \item{g_value}{\link{numeric} vector of length 2 (\strong{required}): g_value in \%/decade \emph{recalculated at the moment} the equivalent dose was calculated, i.e. \code{tc} is either similar for the \emph{g}-value measurement \strong{and} the De measurement or needs be to recalculated (cf. \link{calc_FadingCorr}). Inserting a normalised g-value, e.g., normalised to 2-days , will lead to wrong results.} \item{tc}{\link{numeric} (\emph{optional}): time in seconds between the \strong{end} of the irradiation and the prompt measurement used in the equivalent dose estimation (cf. Huntley & Lamothe 2001). If set to \code{NULL} it is assumed that \code{tc} is similar for the equivalent dose estimation and the \emph{g}-value estimation} \item{tc.g_value}{\link{numeric} (\emph{with default}): the time in seconds between irradiation and the prompt measurement estimating the \emph{g}-value. If the \emph{g}-value was normalised to, e.g., 2 days, this time in seconds (i.e., \code{172800}) should be entered here along with the time used for the equivalent dose estimation. If nothing is provided the time is set to \code{tc}, which is the usual case for \emph{g}-values obtained using the SAR method and \emph{g}-values that had been not normalised to 2 days. Note: If this value is not \code{NULL} the functions expects a \link{numeric} value for \code{tc}.} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{further arguments passed to function \link{plot_GrowthCurve}.} } \value{ The function returns are graphical output produced by the function \link{plot_GrowthCurve} and an \linkS4class{RLum.Results}. -----------------------------------\cr \verb{[ NUMERICAL OUTPUT ]}\cr -----------------------------------\cr \strong{\code{RLum.Results}}-object \strong{slot:} \strong{\verb{@data}} \tabular{lll}{ \strong{Element} \tab \strong{Type} \tab \strong{Description}\cr \verb{$data} \tab \code{data.frame} \tab the fading corrected values \cr \verb{$fit} \tab \code{nls} \tab the object returned by the dose response curve fitting \cr } '\strong{slot:} \strong{\verb{@info}} The original function call } \description{ This function applies the fading correction for the prediction of long-term fading as suggested by Lamothe et al., 2003. The function basically adjusts the $L_n/T_n$ values and fits a new dose-response curve using the function \link{plot_GrowthCurve}. } \details{ \strong{Format of \code{object} if \code{data.frame}} If \code{object} is of type \link{data.frame}, all input values most be of type \link{numeric}. Dose values are excepted in seconds (s) not Gray (Gy). No \code{NA} values are allowed and the value for the natural dose (first row) should be \code{0}. Example for three dose points, column names are arbitrary: \if{html}{\out{
}}\preformatted{ object <- data.frame( dose = c(0,25,50), LxTx = c(4.2, 2.5, 5.0), LxTx_error = c(0.2, 0.1, 0.2)) }\if{html}{\out{
}} \strong{Note on the g-value and \code{tc}} Users new to R and fading measurements are often confused about what to enter for \code{tc} and why it may differ from \code{tc.g_value}. The \code{tc} value is, by convention (Huntley & Lamothe 2001), the time elapsed between the end of the irradiation and the prompt measurement. Usually there is no reason for having a \code{tc} value different for the equivalent dose measurement and the \emph{g}-value measurement, except if different equipment was used. However, if, for instance, the \emph{g}-value measurement sequence was analysed with the \emph{Analyst} (Duller 2015) and \code{Luminescence} is used to correct for fading, there is a high chance that the value returned by the \emph{Analyst} comes normalised to 2-days; even the \code{tc} values of the measurement were identical. In such cases, the fading correction cannot be correct until the \code{tc.g_value} was manually set to 2-days (\code{172800} s) because the function will internally recalculate values to an identical \code{tc} value. } \section{Function version}{ 0.1.0 } \examples{ ##load data ##ExampleData.BINfileData contains two BINfileData objects ##CWOSL.SAR.Data and TL.SAR.Data data(ExampleData.BINfileData, envir = environment()) ##transform the values from the first position in a RLum.Analysis object object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) ##perform SAR analysis and set rejection criteria results <- analyse_SAR.CWOSL( object = object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, verbose = FALSE, plot = FALSE, onlyLxTxTable = TRUE ) ##run fading correction results_corr <- calc_Lamothe2003( object = results, dose_rate.envir = c(1.676 , 0.180), dose_rate.source = c(0.184, 0.003), g_value = c(2.36, 0.6), plot = TRUE, fit.method = "EXP") } \section{How to cite}{ Kreutzer, S., Mercier, N., 2025. calc_Lamothe2003(): Apply fading correction after Lamothe et al., 2003. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Huntley, D.J., Lamothe, M., 2001. Ubiquity of anomalous fading in K-feldspars and the measurement and correction for it in optical dating. Canadian Journal of Earth Sciences 38, 1093-1106. Duller, G.A.T., 2015. The Analyst software package for luminescence data: overview and recent improvements. Ancient TL 33, 35–42. Lamothe, M., Auclair, M., Hamzaoui, C., Huot, S., 2003. Towards a prediction of long-term anomalous fading of feldspar IRSL. Radiation Measurements 37, 493-498. } \seealso{ \link{plot_GrowthCurve}, \link{calc_FadingCorr}, \link{analyse_SAR.CWOSL}, \link{analyse_pIRIRSequence} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany), Norbert Mercier, IRAMAT-CRP2A, Université Bordeaux Montaigne (France) , RLum Developer Team} \keyword{datagen} Luminescence/man/ExampleData.RLum.Data.Image.Rd0000644000176200001440000000203214762557027020676 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{ExampleData.RLum.Data.Image} \alias{ExampleData.RLum.Data.Image} \title{Example data as \linkS4class{RLum.Data.Image} objects} \format{ Object of class \linkS4class{RLum.Data.Image} } \source{ \strong{ExampleData.RLum.Data.Image} These data were kindly provided by Regina DeWitt. \tabular{ll}{ Lab.: \tab Department of Physics, East-Carolina University, NC, USA\cr Lab-Code: \tab - \cr Location: \tab - \cr Material: \tab - \cr Reference: \tab - \cr } Image data is a measurement of fluorescent ceiling lights with a cooled Princeton Instruments (TM) camera fitted on Risø DA-20 TL/OSL reader. } \description{ Measurement of Princton Instruments camera imported with the function \link{read_SPE2R} to R to produce an \linkS4class{RLum.Data.Image} object. } \section{Version}{ 0.1 } \examples{ ##load data data(ExampleData.RLum.Data.Image, envir = environment()) ##plot data plot_RLum(ExampleData.RLum.Data.Image) } \keyword{datasets} Luminescence/man/calc_ThermalLifetime.Rd0000644000176200001440000001316314762561642020004 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_ThermalLifetime.R \name{calc_ThermalLifetime} \alias{calc_ThermalLifetime} \title{Calculates the Thermal Lifetime using the Arrhenius equation} \usage{ calc_ThermalLifetime( E, s, T = 20, output_unit = "Ma", profiling = FALSE, profiling_config = NULL, verbose = TRUE, plot = TRUE, ... ) } \arguments{ \item{E}{\link{numeric} (\strong{required}): vector of trap depths in eV, if \code{profiling = TRUE} only the first two elements are considered} \item{s}{\link{numeric} (\strong{required}): vector of frequency factor in 1/s, if \code{profiling = TRUE} only the first two elements are considered} \item{T}{\link{numeric} (\emph{with default}): temperature in deg. C for which the lifetime(s) will be calculated. A vector can be provided.} \item{output_unit}{\link{character} (\emph{with default}): output unit of the calculated lifetimes, accepted entries are: \code{"Ma"}, \code{"ka"}, \code{"a"}, \code{"d"}, \code{"h"}, \code{"min"}, \code{"s"}} \item{profiling}{\link{logical} (\emph{with default}): this option allows to estimate uncertainties based on given E and s parameters and their corresponding standard error (cf. details and examples section)} \item{profiling_config}{\link{list} (\emph{optional}): allows to set configuration parameters used for the profiling (and only have an effect here). Supported parameters are: \itemize{ \item \code{n} (number of MC runs), \item \code{E.distribution} (distribution used for the re-sampling for E) and \item \code{s.distribution} (distribution used for the re-sampling for s). } Currently only the normal distribution is supported (e.g., \code{profiling_config = list(E.distribution = "norm")}} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output, currently only in combination with \code{profiling = TRUE}.} \item{...}{further arguments that can be passed in combination with the plot output. Standard plot parameters are supported (\link{plot.default})} } \value{ A \linkS4class{RLum.Results} object is returned a along with a plot (for \code{profiling = TRUE}). The output object contain the following slots: \strong{\verb{@data}} \tabular{lll}{ \strong{Object} \tab \strong{Type} \tab \strong{Description} \cr \code{lifetimes} \tab \link{array} or \link{numeric} \tab calculated lifetimes \cr \code{profiling_matrix} \tab \link{matrix} \tab profiling matrix used for the MC runs } \strong{\verb{@info}} \tabular{lll}{ \strong{Object} \tab \strong{Type} \tab \strong{Description} \cr \code{call} \tab \code{call} \tab the original function call } } \description{ The function calculates the thermal lifetime of charges for given E (in eV), s (in 1/s) and T (in deg. C.) parameters. The function can be used in two operational modes: } \details{ \strong{Mode 1 \code{(profiling = FALSE)}} An arbitrary set of input parameters (E, s, T) can be provided and the function calculates the thermal lifetimes using the Arrhenius equation for all possible combinations of these input parameters. An array with 3-dimensions is returned that can be used for further analyses or graphical output (see example 1) \strong{Mode 2 \code{(profiling = TRUE)}} This mode tries to profile the variation of the thermal lifetime for a chosen temperature by accounting for the provided E and s parameters and their corresponding standard errors, e.g., \code{E = c(1.600, 0.001)} The calculation based on a Monte Carlo simulation, where values are sampled from a normal distribution (for E and s). \strong{Used equation (Arrhenius equation)} \deqn{\tau = 1/s exp(E/kT)} where: \eqn{\tau} in s as the mean time an electron spends in the trap for a given \eqn{T}, \eqn{E} trap depth in eV, \eqn{s} the frequency factor in 1/s, \eqn{T} the temperature in K and \eqn{k} the Boltzmann constant in eV/K (cf. Furetta, 2010). } \note{ The profiling is currently based on re-sampling from a normal distribution, this distribution assumption might be, however, not valid for given E and s parameters. } \section{Function version}{ 0.1.0 } \examples{ ##EXAMPLE 1 ##calculation for two trap-depths with similar frequency factor for different temperatures E <- c(1.66, 1.70) s <- 1e+13 T <- 10:20 temp <- calc_ThermalLifetime( E = E, s = s, T = T, output_unit = "Ma" ) graphics::contour(x = E, y = T, z = temp$lifetimes[1,,], ylab = "Temperature [\u00B0C]", xlab = "Trap depth [eV]", main = "Thermal Lifetime Contour Plot" ) mtext(side = 3, "(values quoted in Ma)") ##EXAMPLE 2 ##profiling of thermal life time for E and s and their standard error E <- c(1.600, 0.003) s <- c(1e+13,1e+011) T <- 20 calc_ThermalLifetime( E = E, s = s, T = T, profiling = TRUE, output_unit = "Ma" ) } \section{How to cite}{ Kreutzer, S., 2025. calc_ThermalLifetime(): Calculates the Thermal Lifetime using the Arrhenius equation. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Furetta, C., 2010. Handbook of Thermoluminescence, Second Edition. World Scientific. } \seealso{ \link[graphics:matplot]{graphics::matplot}, \link[stats:Normal]{stats::rnorm}, \link{get_RLum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{datagen} Luminescence/man/calc_MinDose.Rd0000644000176200001440000003614714762561642016276 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_MinDose.R \name{calc_MinDose} \alias{calc_MinDose} \title{Apply the (un-)logged minimum age model (MAM) after Galbraith et al. (1999) to a given De distribution} \usage{ calc_MinDose( data, sigmab, log = TRUE, par = 3, bootstrap = FALSE, init.values, level = 0.95, log.output = FALSE, plot = TRUE, multicore = FALSE, ... ) } \arguments{ \item{data}{\linkS4class{RLum.Results} or \link{data.frame} (\strong{required}): for \link{data.frame}: two columns with De \code{(data[ ,1])} and De error \code{(data[ ,2])}.} \item{sigmab}{\link{numeric} (\strong{required}): additional spread in De values. This value represents the expected overdispersion in the data should the sample be well-bleached (Cunningham & Walling 2012, p. 100). \strong{NOTE}: For the logged model (\code{log = TRUE}) this value must be a fraction, e.g. 0.2 (= 20 \%). If the un-logged model is used (\code{log = FALSE}), \code{sigmab} must be provided in the same absolute units of the De values (seconds or Gray). See details.} \item{log}{\link{logical} (\emph{with default}): fit the (un-)logged minimum dose model to De data.} \item{par}{\link{numeric} (\emph{with default}): apply the 3- or 4-parameter minimum age model (\code{par=3} or \code{par=4}). The MAM-3 is used by default.} \item{bootstrap}{\link{logical} (\emph{with default}): apply the recycled bootstrap approach of Cunningham & Wallinga (2012).} \item{init.values}{\link{numeric} (\emph{optional}): a named list with starting values for \code{gamma}, \code{sigma}, \code{p0} and \code{mu} (e.g. \code{list(gamma=100, sigma=1.5, p0=0.1, mu=100)}). If no values are provided, reasonable values will be estimated from the data. \strong{NOTE}: the initial values must always be given in the absolute units. If a logged model is applied (\code{log = TRUE}), the provided \code{init.values} are automatically log-transformed.} \item{level}{\link{logical} (\emph{with default}): the confidence level required (defaults to 0.95).} \item{log.output}{\link{logical} (\emph{with default}): If \code{TRUE} the console output will also show the logged values of the final parameter estimates and confidence intervals (only applicable if \code{log = TRUE}).} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{multicore}{\link{logical} (\emph{with default}): enable parallel computation of the bootstrap by creating a multicore SNOW cluster. Depending on the number of available logical CPU cores this may drastically reduce the computation time. Note that this option is highly experimental and may not work on all machines. (\code{TRUE}/\code{FALSE})} \item{...}{(\emph{optional}) further arguments for bootstrapping (\code{bs.M}, \code{bs.N}, \code{bs.h}, \code{sigmab.sd}). See details for their usage. Further arguments are \itemize{ \item \code{verbose} to de-/activate console output (logical), \item \code{debug} for extended console output (logical) and \item \code{cores} (integer) to manually specify the number of cores to be used when \code{multicore=TRUE}. }} } \value{ Returns a plot (\emph{optional}) and terminal output. In addition an \linkS4class{RLum.Results} object is returned containing the following elements: \item{$summary}{\link{data.frame} summary of all relevant model results.} \item{$data}{\link{data.frame} original input data} \item{$args}{\link{list} used arguments} \item{$call}{\link{call} the function call} \item{$mle}{\link[bbmle:mle2]{bbmle::mle2} object containing the maximum log likelihood functions for all parameters} \item{$BIC}{\link{numeric} BIC score} \item{$confint}{\link{data.frame} confidence intervals for all parameters} \item{$profile}{\link[stats:profile]{stats::profile} the log likelihood profiles} \item{$bootstrap}{\link{list} bootstrap results} The output should be accessed using the function \link{get_RLum}. } \description{ Function to fit the (un-)logged three or four parameter minimum dose model (MAM-3/4) to De data. } \details{ \strong{Parameters} This model has four parameters: \tabular{rl}{ \code{gamma}: \tab minimum dose on the log scale \cr \code{mu}: \tab mean of the non-truncated normal distribution \cr \code{sigma}: \tab spread in ages above the minimum \cr \code{p0}: \tab proportion of grains at gamma \cr } If \code{par=3} (default) the 3-parameter minimum age model is applied, where \code{gamma=mu}. For \code{par=4} the 4-parameter model is applied instead. \strong{(Un-)logged model} In the original version of the minimum dose model, the basic data are the natural logarithms of the De estimates and relative standard errors of the De estimates. The value for \code{sigmab} must be provided as a ratio (e.g, 0.2 for 20 \%). This model will be applied if \code{log = TRUE}. If \code{log=FALSE}, the modified un-logged model will be applied instead. This has essentially the same form as the original version. \code{gamma} and \code{sigma} are in Gy and \code{gamma} becomes the minimum true dose in the population. \strong{Note} that the un-logged model requires \code{sigmab} to be in the same absolute unit as the provided De values (seconds or Gray). While the original (logged) version of the minimum dose model may be appropriate for most samples (i.e. De distributions), the modified (un-logged) version is specially designed for modern-age and young samples containing negative, zero or near-zero De estimates (Arnold et al. 2009, p. 323). \strong{Initial values & boundaries} The log likelihood calculations use the \link{nlminb} function for box-constrained optimisation using PORT routines. Accordingly, initial values for the four parameters can be specified via \code{init.values}. If no values are provided for \code{init.values}, reasonable starting values are estimated from the input data. If the final estimates of \emph{gamma}, \emph{mu}, \emph{sigma} and \emph{p0} are totally off target, consider providing custom starting values via \code{init.values}. In contrast to previous versions of this function, the boundaries for the individual model parameters are no longer required to be explicitly specified. If you want to override the default boundary values use arguments \code{gamma.lower}, \code{gamma.upper}, \code{sigma.lower}, \code{sigma.upper}, \code{p0.lower}, \code{p0.upper}, \code{mu.lower} and \code{mu.upper}. \strong{Bootstrap} When \code{bootstrap=TRUE} the function applies the bootstrapping method as described in Wallinga & Cunningham (2012). By default, the minimum age model produces 1000 first level and 3000 second level bootstrap replicates (actually, the number of second level bootstrap replicates is three times the number of first level replicates unless specified otherwise). The uncertainty on \code{sigmab} is 0.04 by default. These values can be changed by using the arguments \code{bs.M} (first level replicates), \code{bs.N} (second level replicates) and \code{sigmab.sd} (error on \code{sigmab}). With \code{bs.h} the bandwidth of the kernel density estimate can be specified. By default, \code{h} is calculated as \deqn{h = (2*\sigma_{DE})/\sqrt{n}} \strong{Multicore support} This function supports parallel computing and can be activated by \code{multicore=TRUE}. By default, the number of available logical CPU cores is determined automatically, but can be changed with \code{cores}. The multicore support is only available when \code{bootstrap=TRUE} and spawns \code{n} R instances for each core to get MAM estimates for each of the N and M bootstrap replicates. Note that this option is highly experimental and may or may not work for your machine. The performance gain increases for larger number of bootstrap replicates. However, note that with each additional core (and hence R instance) the memory usage can significantly increase and depending on the number of bootstrap replicates. When insufficient memory is available, there will be a massive performance hit. \strong{Likelihood profiles} The likelihood profiles are generated and plotted by the \code{bbmle} package. The profile likelihood plots look different to ordinary profile likelihood as "\verb{[...]} the plot method for likelihood profiles displays the square root of the deviance difference (twice the difference in negative log-likelihood from the best fit), so it will be V-shaped for cases where the quadratic approximation works well \verb{[...]}." (Bolker 2016). For more details on the profile likelihood calculations and plots please see the vignettes of the \code{bbmle} package (also available here: \url{https://CRAN.R-project.org/package=bbmle}). } \note{ The default starting values for \emph{gamma}, \emph{mu}, \emph{sigma} and \emph{p0} may only be appropriate for some De data sets and may need to be changed for other data. This is especially true when the un-logged version is applied. \cr Also note that all R warning messages are suppressed when running this function. If the results seem odd consider re-running the model with \code{debug=TRUE} which provides extended console output and forwards all internal warning messages. } \section{Function version}{ 0.4.4 } \examples{ ## Load example data data(ExampleData.DeValues, envir = environment()) # (1) Apply the minimum age model with minimum required parameters. # By default, this will apply the un-logged 3-parameter MAM. calc_MinDose(data = ExampleData.DeValues$CA1, sigmab = 0.1) \dontrun{ # (2) Re-run the model, but save results to a variable and turn # plotting of the log-likelihood profiles off. mam <- calc_MinDose( data = ExampleData.DeValues$CA1, sigmab = 0.1, plot = FALSE) # Show structure of the RLum.Results object mam # Show summary table that contains the most relevant results res <- get_RLum(mam, "summary") res # Plot the log likelihood profiles retroactively, because before # we set plot = FALSE plot_RLum(mam) # Plot the dose distribution in an abanico plot and draw a line # at the minimum dose estimate plot_AbanicoPlot(data = ExampleData.DeValues$CA1, main = "3-parameter Minimum Age Model", line = mam,polygon.col = "none", hist = TRUE, rug = TRUE, summary = c("n", "mean", "mean.weighted", "median", "in.ci"), centrality = res$de, line.col = "red", grid.col = "none", line.label = paste0(round(res$de, 1), "\U00B1", round(res$de_err, 1), " Gy"), bw = 0.1, ylim = c(-25, 18), summary.pos = "topleft", mtext = bquote("Parameters: " ~ sigma[b] == .(get_RLum(mam, "args")$sigmab) ~ ", " ~ gamma == .(round(log(res$de), 1)) ~ ", " ~ sigma == .(round(res$sig, 1)) ~ ", " ~ rho == .(round(res$p0, 2)))) # (3) Run the minimum age model with bootstrap # NOTE: Bootstrapping is computationally intensive # (3.1) run the minimum age model with default values for bootstrapping calc_MinDose(data = ExampleData.DeValues$CA1, sigmab = 0.15, bootstrap = TRUE) # (3.2) Bootstrap control parameters mam <- calc_MinDose(data = ExampleData.DeValues$CA1, sigmab = 0.15, bootstrap = TRUE, bs.M = 300, bs.N = 500, bs.h = 4, sigmab.sd = 0.06, plot = FALSE) # Plot the results plot_RLum(mam) # save bootstrap results in a separate variable bs <- get_RLum(mam, "bootstrap") # show structure of the bootstrap results str(bs, max.level = 2, give.attr = FALSE) # print summary of minimum dose and likelihood pairs summary(bs$pairs$gamma) # Show polynomial fits of the bootstrap pairs bs$poly.fits$poly.three # Plot various statistics of the fit using the generic plot() function par(mfcol=c(2,2)) plot(bs$poly.fits$poly.three, ask = FALSE) # Show the fitted values of the polynomials summary(bs$poly.fits$poly.three$fitted.values) } } \section{How to cite}{ Burow, C., 2025. calc_MinDose(): Apply the (un-)logged minimum age model (MAM) after Galbraith et al. (1999) to a given De distribution. Function version 0.4.4. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Arnold, L.J., Roberts, R.G., Galbraith, R.F. & DeLong, S.B., 2009. A revised burial dose estimation procedure for optical dating of young and modern-age sediments. Quaternary Geochronology 4, 306-325. Galbraith, R.F. & Laslett, G.M., 1993. Statistical models for mixed fission track ages. Nuclear Tracks Radiation Measurements 4, 459-470. Galbraith, R.F., Roberts, R.G., Laslett, G.M., Yoshida, H. & Olley, J.M., 1999. Optical dating of single grains of quartz from Jinmium rock shelter, northern Australia. Part I: experimental design and statistical models. Archaeometry 41, 339-364. Galbraith, R.F., 2005. Statistics for Fission Track Analysis, Chapman & Hall/CRC, Boca Raton. Galbraith, R.F. & Roberts, R.G., 2012. Statistical aspects of equivalent dose and error calculation and display in OSL dating: An overview and some recommendations. Quaternary Geochronology 11, 1-27. Olley, J.M., Roberts, R.G., Yoshida, H., Bowler, J.M., 2006. Single-grain optical dating of grave-infill associated with human burials at Lake Mungo, Australia. Quaternary Science Reviews 25, 2469-2474. \strong{Further reading} Arnold, L.J. & Roberts, R.G., 2009. Stochastic modelling of multi-grain equivalent dose (De) distributions: Implications for OSL dating of sediment mixtures. Quaternary Geochronology 4, 204-230. Bolker, B., 2016. Maximum likelihood estimation analysis with the bbmle package. In: Bolker, B., R Development Core Team, 2016. bbmle: Tools for General Maximum Likelihood Estimation. R package version 1.0.18. \url{https://CRAN.R-project.org/package=bbmle} Bailey, R.M. & Arnold, L.J., 2006. Statistical modelling of single grain quartz De distributions and an assessment of procedures for estimating burial dose. Quaternary Science Reviews 25, 2475-2502. Cunningham, A.C. & Wallinga, J., 2012. Realizing the potential of fluvial archives using robust OSL chronologies. Quaternary Geochronology 12, 98-106. Rodnight, H., Duller, G.A.T., Wintle, A.G. & Tooth, S., 2006. Assessing the reproducibility and accuracy of optical dating of fluvial deposits. Quaternary Geochronology 1, 109-120. Rodnight, H., 2008. How many equivalent dose values are needed to obtain a reproducible distribution?. Ancient TL 26, 3-10. } \seealso{ \link{calc_CentralDose}, \link{calc_CommonDose}, \link{calc_FiniteMixture}, \link{calc_FuchsLang2001}, \link{calc_MaxDose} } \author{ Christoph Burow, University of Cologne (Germany) \cr Based on a rewritten S script of Rex Galbraith, 2010 \cr The bootstrap approach is based on a rewritten MATLAB script of Alastair Cunningham. \cr Alastair Cunningham is thanked for his help in implementing and cross-checking the code. , RLum Developer Team} Luminescence/man/Second2Gray.Rd0000644000176200001440000000054214762557027016066 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/convert_Second2Gray.R \name{Second2Gray} \alias{Second2Gray} \title{Converting equivalent dose values from seconds (s) to Gray (Gy)} \usage{ Second2Gray(...) } \arguments{ \item{...}{Unused.} } \description{ This function is defunct, use \link{convert_Second2Gray} instead. } Luminescence/man/analyse_SAR.CWOSL.Rd0000644000176200001440000003322614762561642017000 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/analyse_SAR.CWOSL.R \name{analyse_SAR.CWOSL} \alias{analyse_SAR.CWOSL} \title{Analyse SAR CW-OSL measurements} \usage{ analyse_SAR.CWOSL( object, signal.integral.min = NA, signal.integral.max = NA, background.integral.min = NA, background.integral.max = NA, OSL.component = NULL, rejection.criteria = list(), dose.points = NULL, trim_channels = FALSE, mtext.outer = "", plot = TRUE, plot_onePage = FALSE, plot_singlePanels = FALSE, onlyLxTxTable = FALSE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Analysis} (\strong{required}): input object containing data for analysis, alternatively a \link{list} of \linkS4class{RLum.Analysis} objects can be provided. The object should contain \strong{only} curves considered part of the SAR protocol (see Details).} \item{signal.integral.min}{\link{integer} (\strong{required}): lower bound of the signal integral. Can be a \link{list} of \link{integer}s, if \code{object} is of type \link{list}. If the input is vector (e.g., \code{c(1,2)}) the 2nd value will be interpreted as the minimum signal integral for the \code{Tx} curve. Can be set to \code{NA}, in this case no integrals are taken into account.} \item{signal.integral.max}{\link{integer} (\strong{required}): upper bound of the signal integral. Can be a \link{list} of \link{integer}s, if \code{object} is of type \link{list}. If the input is vector (e.g., \code{c(1,2)}) the 2nd value will be interpreted as the maximum signal integral for the \code{Tx} curve. Can be set to \code{NA}, in this case no integrals are taken into account.} \item{background.integral.min}{\link{integer} (\strong{required}): lower bound of the background integral. Can be a \link{list} of \link{integer}s, if \code{object} is of type \link{list}. If the input is vector (e.g., \code{c(1,2)}) the 2nd value will be interpreted as the minimum background integral for the \code{Tx} curve. Can be set to \code{NA}, in this case no integrals are taken into account.} \item{background.integral.max}{\link{integer} (\strong{required}): upper bound of the background integral. Can be a \link{list} of \link{integer}s, if \code{object} is of type \link{list}. If the input is vector (e.g., \code{c(1,2)}) the 2nd value will be interpreted as the maximum background integral for the \code{Tx} curve. Can be set to \code{NA}, in this case no integrals are taken into account.} \item{OSL.component}{\link{character} or \link{integer} (\emph{optional}): s single index or a \link{character} defining the signal component to be evaluated. It requires that the object was processed by \code{OSLdecomposition::RLum.OSL_decomposition}. This argument can either be the name of the OSL component assigned by \code{OSLdecomposition::RLum.OSL_global_fitting} or the index in the descending order of decay rates. Then \code{"1"} selects the fastest decaying component, \code{"2"} the second fastest and so on. Can be a \link{list} of \link{integer}s or strings (or mixed) If object is a \link{list} and this parameter is provided as \link{list} it alternates over the elements (aliquots) of the object list, e.g., \code{list(1,2)} processes the first aliquot with component \code{1} and the second aliquot with component \code{2}. \code{NULL} does not process any component.} \item{rejection.criteria}{\link{list} (\emph{with default}): provide a \emph{named} list and set rejection criteria in \strong{percentage} for further calculation. Can be a \link{list} in a \link{list}, if \code{object} is of type \link{list}. Note: If an \emph{unnamed} \link{list} is provided the new settings are ignored! Allowed arguments are \code{recycling.ratio}, \code{recuperation.rate}, \code{palaeodose.error}, \code{testdose.error}, \code{exceed.max.regpoint = TRUE/FALSE}, \code{recuperation_reference = "Natural"} (or any other dose point, e.g., \code{"R1"}). Example: \code{rejection.criteria = list(recycling.ratio = 10)}. Per default all numerical values are set to 10, \code{exceed.max.regpoint = TRUE}. Every criterion can be set to \code{NA}. In this value are calculated, but not considered, i.e. the RC.Status becomes always \code{'OK'}} \item{dose.points}{\link{numeric} (\emph{optional}): a numeric vector containing the dose points values. Using this argument overwrites dose point values extracted from other data. Can be a \link{list} of \link{numeric} vectors, if \code{object} is of type \link{list}} \item{trim_channels}{\link{logical} (\emph{with default}): trim channels per record category to the lowest number of channels in the category by using \link{trim_RLum.Data}. Applies only to \code{OSL} and \code{IRSL} curves. For a more granular control use \link{trim_RLum.Data} before passing the input object.} \item{mtext.outer}{\link{character} (\emph{optional}): option to provide an outer margin \code{mtext}. Can be a \link{list} of \link{character}s, if \code{object} is of type \link{list}} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{plot_onePage}{\link{logical} (\emph{with default}): enable/disable one page plot output.} \item{plot_singlePanels}{\link{logical} (\emph{with default}) or \link{numeric} (\emph{optional}): single plot output (\code{TRUE/FALSE}) to allow for plotting the results in single plot windows. If a \link{numeric} vector is provided the plots can be selected individually, i.e. \code{plot_singlePanels = c(1,2,3,4)} will plot the TL and Lx, Tx curves but not the legend (5) or the growth curve (6), (7) and (8) belong to rejection criteria plots. Requires \code{plot = TRUE}.} \item{onlyLxTxTable}{\link{logical} (\emph{with default}): If \code{TRUE} the dose response curve fitting and plotting is skipped. This allows to get hands on the \code{Lx/Tx} table for large datasets without the need for a curve fitting.} \item{...}{further arguments that will be passed to the function \link{plot_GrowthCurve} or \link{calc_OSLLxTxRatio} (supported: \code{background.count.distribution}, \code{sigmab}, \code{sig0}). \strong{Please note} that if you consider to use the early light subtraction method you should provide your own \code{sigmab} value!} } \value{ A plot (\emph{optional}) and an \linkS4class{RLum.Results} object is returned containing the following elements: \item{data}{\link{data.frame} containing De-values, De-error and further parameters} \item{LnLxTnTx.values}{\link{data.frame} of all calculated Lx/Tx values including signal, background counts and the dose points} \item{rejection.criteria}{\link{data.frame} with values that might by used as rejection criteria. \code{NA} is produced if no R0 dose point exists.} \item{Formula}{\link{formula} formula that have been used for the growth curve fitting} The output should be accessed using the function \link{get_RLum}. } \description{ The function performs a SAR CW-OSL analysis on an \linkS4class{RLum.Analysis} object including growth curve fitting. } \details{ The function performs an analysis for a standard SAR protocol measurements introduced by Murray and Wintle (2000) with CW-OSL curves. For the calculation of the \code{Lx/Tx} value the function \link{calc_OSLLxTxRatio} is used. For \strong{changing the way the Lx/Tx error is calculated} use the argument \code{background.count.distribution} and \code{sigmab}, which will be passed to the function \link{calc_OSLLxTxRatio}. \strong{What is part of a SAR sequence?} The function is rather picky when it comes down to accepted curve input (OSL,IRSL,...) and structure. A SAR sequence is basically a set of \eqn{L_{x}/T_{x}} curves. Hence, every 2nd curve is considered a shine-down curve related to the test dose. It also means that the number of curves for \eqn{L_{x}} has to be equal to the number of \eqn{T_{x}} curves, and that hot-bleach curves \strong{do not} belong into a SAR sequence; at least not for the analysis. Other curves allowed and processed are preheat curves, or preheat curves measured as TL, and irradiation curves. The later one indicates the duration of the irradiation, the dose and test dose points, e.g., as part of XSYG files. \strong{Argument \code{object} is of type \code{list}} If the argument \code{object} is of type \link{list} containing \strong{only} \linkS4class{RLum.Analysis} objects, the function re-calls itself as often as elements are in the list. This is useful if an entire measurement wanted to be analysed without writing separate for-loops. To gain in full control of the parameters (e.g., \code{dose.points}) for every aliquot (corresponding to one \linkS4class{RLum.Analysis} object in the list), in this case the arguments can be provided as \link{list}. This \code{list} should be of similar length as the \code{list} provided with the argument \code{object}, otherwise the function will create an own list of the requested length. Function output will be just one single \linkS4class{RLum.Results} object. Please be careful when using this option. It may allow a fast an efficient data analysis, but the function may also break with an unclear error message, due to wrong input data. \strong{Working with IRSL data} The function was originally designed to work just for 'OSL' curves, following the principles of the SAR protocol. An IRSL measurement protocol may follow this procedure, e.g., post-IR IRSL protocol (Thomsen et al., 2008). Therefore this functions has been enhanced to work with IRSL data, however, the function is only capable of analysing curves that follow the SAR protocol structure, i.e., to analyse a post-IR IRSL protocol, curve data have to be pre-selected by the user to fit the standards of the SAR protocol, i.e., Lx,Tx,Lx,Tx and so on. Example: Imagine the measurement contains \code{pIRIR50} and \code{pIRIR225} IRSL curves. Only one curve type can be analysed at the same time: The \code{pIRIR50} curves or the \code{pIRIR225} curves. \strong{Supported rejection criteria} \verb{[recycling.ratio]}: calculated for every repeated regeneration dose point. \verb{[recuperation.rate]}: recuperation rate calculated by comparing the \code{Lx/Tx} values of the zero regeneration point with the \code{Ln/Tn} value (the \code{Lx/Tx} ratio of the natural signal). For methodological background see Aitken and Smith (1988). As a variant with the argument \code{recuperation_reference} another dose point can be selected as reference instead of \code{Ln/Tn}. \verb{[testdose.error]}: set the allowed error for the test dose, which per default should not exceed 10\%. The test dose error is calculated as \code{Tx_net.error/Tx_net}. The calculation of the \eqn{T_{n}} error is detailed in \link{calc_OSLLxTxRatio}. \verb{[palaeodose.error]}: set the allowed error for the De value, which per default should not exceed 10\%. \strong{Irradiation times} The function makes two attempts to extra irradiation data (dose points) automatically from the input object, if the argument \code{dose.points} was not set (aka set to \code{NULL}). \enumerate{ \item It searches in every curve for an info object called \code{IRR_TIME}. If this was set, any value set here is taken as dose point. \item If the object contains curves of type \code{irradiation}, the function tries to use this information to assign these values to the curves. However, the function does \strong{not} overwrite values preset in \code{IRR_TIME}. } } \note{ This function must not be mixed up with the function \link{Analyse_SAR.OSLdata}, which works with \linkS4class{Risoe.BINfileData} objects. \strong{The function currently does support only 'OSL', 'IRSL' and 'POSL' data!} } \section{Function version}{ 0.10.5 } \examples{ ##load data ##ExampleData.BINfileData contains two BINfileData objects ##CWOSL.SAR.Data and TL.SAR.Data data(ExampleData.BINfileData, envir = environment()) ##transform the values from the first position in a RLum.Analysis object object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) ##perform SAR analysis and set rejection criteria results <- analyse_SAR.CWOSL( object = object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, log = "x", fit.method = "EXP", rejection.criteria = list( recycling.ratio = 10, recuperation.rate = 10, testdose.error = 10, palaeodose.error = 10, recuperation_reference = "Natural", exceed.max.regpoint = TRUE) ) ##show De results get_RLum(results) ##show LnTnLxTx table get_RLum(results, data.object = "LnLxTnTx.table") } \section{How to cite}{ Kreutzer, S., 2025. analyse_SAR.CWOSL(): Analyse SAR CW-OSL measurements. Function version 0.10.5. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Aitken, M.J. and Smith, B.W., 1988. Optical dating: recuperation after bleaching. Quaternary Science Reviews 7, 387-393. Duller, G., 2003. Distinguishing quartz and feldspar in single grain luminescence measurements. Radiation Measurements, 37 (2), 161-165. Murray, A.S. and Wintle, A.G., 2000. Luminescence dating of quartz using an improved single-aliquot regenerative-dose protocol. Radiation Measurements 32, 57-73. Thomsen, K.J., Murray, A.S., Jain, M., Boetter-Jensen, L., 2008. Laboratory fading rates of various luminescence signals from feldspar-rich sediment extracts. Radiation Measurements 43, 1474-1486. doi:10.1016/j.radmeas.2008.06.002 } \seealso{ \link{calc_OSLLxTxRatio}, \link{plot_GrowthCurve}, \linkS4class{RLum.Analysis}, \linkS4class{RLum.Results}, \link{get_RLum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{datagen} \keyword{plot} Luminescence/man/merge_RLum.Data.Spectrum.Rd0000644000176200001440000001044514762561642020456 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/merge_RLum.Data.Spectrum.R \name{merge_RLum.Data.Spectrum} \alias{merge_RLum.Data.Spectrum} \title{Merge function for RLum.Data.Spectrum S4 class objects} \usage{ merge_RLum.Data.Spectrum( object, merge.method = "mean", method.info, max.temp.diff = 0.1 ) } \arguments{ \item{object}{\link{list} of \linkS4class{RLum.Data.Spectrum} (\strong{required}): list of objects to be merged.} \item{merge.method}{\link{character} (\strong{required}): method for combining of the objects, e.g. \code{'mean'} (default), \code{'median'}, \code{'sum'}, see details for further information and allowed methods. Note: Elements in slot info will be taken from the first object in the list.} \item{method.info}{\link{numeric} (\emph{optional}): allows to specify how info elements of the input objects are combined, e.g. \code{1} means that just the elements from the first object are kept, \code{2} keeps only the info elements from the 2 object etc. If nothing is provided all elements are combined.} \item{max.temp.diff}{\link{numeric} (\emph{with default}): maximum difference in the time/temperature values between the spectra to be merged: when differences exceed this threshold value, the merging occurs but a warning is raised.} } \value{ Returns an \linkS4class{RLum.Data.Spectrum} object. } \description{ This function allows to merge \linkS4class{RLum.Data.Spectrum} objects in different ways without modifying the original objects. } \details{ \strong{Supported merge operations are:} \code{"mean"} (default) The mean over the cell values is calculated using the function \link{rowMeans}. \code{"median"} The median over the cell values is calculated using the function \link[matrixStats:rowMedians]{matrixStats::rowMedians}. \code{"sum"} All cell values will be summed up using the function \link{rowSums}. \code{"sd"} The standard deviation over the cell values is calculated using the function \link[matrixStats:rowSds]{matrixStats::rowSds}. \code{"var"} The variance over the cell values is calculated using the function \link[matrixStats:rowVars]{matrixStats::rowVars}. \code{"min"} The min values from the cell values is chosen using the function \link[matrixStats:rowRanges]{matrixStats::rowMins}. \code{"max"} The max values from the cell values is chosen using the function \link[matrixStats:rowRanges]{matrixStats::rowMins}. \code{"append"} (only for \linkS4class{RLum.Data.Curve}) Appends cell values of all curves to one combined data curve. The channel width is automatically re-calculated, but requires a constant channel width of the original data. \code{"-"} The cell sums of the last objects are subtracted from the first object. \code{"*"} The cell sums of the last objects are multiplied with the first object. \code{"/"} Values of the first object are divided by cell sums of the last objects. } \note{ The information from the slot \code{recordType} is taken from the first object in the input list. The slot 'curveType' is filled with the name \code{merged}. } \section{S3-generic support}{ This function is fully operational via S3-generics: \code{+}, \code{-}, \code{/}, \code{*}, \code{merge} } \section{Function version}{ 0.1.1 } \examples{ ## load example data data(ExampleData.XSYG, envir = environment()) ## plot single curve plot_RLum(TL.Spectrum) ## sum two copies of the same curve merged <- merge_RLum.Data.Spectrum(list(TL.Spectrum, TL.Spectrum), merge.method = "sum") plot_RLum(merged) } \seealso{ \link{merge_RLum}, \linkS4class{RLum.Data.Spectrum} } \author{ Marco Colombo, Institute of Geography, Heidelberg University (Germany) Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Colombo, M., Kreutzer, S., 2025. merge_RLum.Data.Spectrum(): Merge function for RLum.Data.Spectrum S4 class objects. Function version 0.1.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{internal} \keyword{utilities} Luminescence/man/plot_DRCSummary.Rd0000644000176200001440000000755114762561642016777 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_DRCSummary.R \name{plot_DRCSummary} \alias{plot_DRCSummary} \title{Create a Dose-Response Curve Summary Plot} \usage{ plot_DRCSummary( object, source_dose_rate = NULL, sel_curves = NULL, show_dose_points = FALSE, show_natural = FALSE, n = 51L, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Results} (\strong{required}): input object created by \link{analyse_SAR.CWOSL}. The input object can be provided as \link{list}.} \item{source_dose_rate}{\link{numeric} (\emph{optional}): allows to modify the axis and show values in Gy, instead seconds. Only a single numerical value is allowed.} \item{sel_curves}{\link{numeric} (\emph{optional}): id of the curves to be plotted in its occurring order. A sequence can be provided for selecting, e.g., only every 2nd curve from the input object.} \item{show_dose_points}{\link{logical} (\emph{with default}): enable/disable plotting of dose points in the graph.} \item{show_natural}{\link{logical} (\emph{with default}): enable/disable the plot of the natural \code{Lx/Tx} values.} \item{n}{\link{integer} (\emph{with default}): number of x-values used to evaluate one curve object. Large numbers slow down the plotting process and are usually not needed.} \item{...}{Further arguments and graphical parameters to be passed. In particular: \code{main}, \code{xlab}, \code{ylab}, \code{xlim}, \code{ylim}, \code{lty}, \code{lwd}, \code{pch}, \code{col.pch}, \code{col.lty}, \code{mtext}} } \value{ An \linkS4class{RLum.Results} object is returned: Slot: \strong{@data}\cr \tabular{lll}{ \strong{OBJECT} \tab \strong{TYPE} \tab \strong{COMMENT}\cr \code{results} \tab \link{data.frame} \tab with dose and LxTx values \cr \code{data} \tab \linkS4class{RLum.Results} \tab original input data \cr } Slot: \strong{@info}\cr \tabular{lll}{ \strong{OBJECT} \tab \strong{TYPE} \tab \strong{COMMENT} \cr \code{call} \tab \code{call} \tab the original function call \cr \code{args} \tab \code{list} \tab arguments of the original function call \cr } \emph{Note: If the input object is a \link{list} a list of \linkS4class{RLum.Results} objects is returned.} } \description{ While analysing OSL SAR or pIRIR-data the view on the data is usually limited to one dose-response curve (DRC) at the time for one aliquot. This function overcomes this limitation by plotting all DRCs from an \linkS4class{RLum.Results} object created by \link{analyse_SAR.CWOSL} in one single plot. If you want plot your DRC on an energy scale (dose in Gy), you can either use option \code{source_dose_rate} or perform your SAR analysis with the dose points in Gy (better axis scaling). } \section{Function version}{ 0.2.3 } \examples{ #load data example data data(ExampleData.BINfileData, envir = environment()) #transform the values from the first position in a RLum.Analysis object object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) results <- analyse_SAR.CWOSL( object = object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, plot = FALSE ) ##plot only DRC plot_DRCSummary(results) } \seealso{ \linkS4class{RLum.Results}, \link{analyse_SAR.CWOSL} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) \cr Christoph Burow, University of Cologne (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., Burow, C., 2025. plot_DRCSummary(): Create a Dose-Response Curve Summary Plot. Function version 0.2.3. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } Luminescence/man/plot_AbanicoPlot.Rd0000644000176200001440000004500114762561642017174 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_AbanicoPlot.R \name{plot_AbanicoPlot} \alias{plot_AbanicoPlot} \title{Function to create an Abanico Plot.} \usage{ plot_AbanicoPlot( data, na.rm = TRUE, log.z = TRUE, z.0 = "mean.weighted", dispersion = "qr", plot.ratio = 0.75, rotate = FALSE, mtext, summary, summary.pos, summary.method = "MCM", legend, legend.pos, stats, rug = FALSE, kde = TRUE, hist = FALSE, dots = FALSE, boxplot = FALSE, y.axis = TRUE, error.bars = FALSE, bar, bar.col, polygon.col, line, line.col, line.lty, line.label, grid.col, frame = 1, bw = "SJ", interactive = FALSE, ... ) } \arguments{ \item{data}{\link{data.frame} or \linkS4class{RLum.Results} object (\strong{required}): for \code{data.frame} two columns: De (\code{data[,1]}) and De error (\code{data[,2]}). To plot several data sets in one plot the data sets must be provided as \code{list}, e.g. \code{list(data.1, data.2)}.} \item{na.rm}{\link{logical} (\emph{with default}): exclude NA values from the data set prior to any further operations.} \item{log.z}{\link{logical} (\emph{with default}): Option to display the z-axis in logarithmic scale. Default is \code{TRUE}.} \item{z.0}{\link{character} or \link{numeric} (\emph{with default}): User-defined central value, used for centring of data. One out of \code{"mean"}, \code{"mean.weighted"} and \code{"median"} or a numeric value (not its logarithm). Default is \code{"mean.weighted"}.} \item{dispersion}{\link{character} (\emph{with default}): measure of dispersion, used for drawing the scatter polygon. One out of \itemize{ \item \code{"qr"} (quartile range, default), \item \code{"pnn"} (symmetric percentile range with \code{nn} the lower percentile, e.g. \code{"p05"} indicating the range between 5 and 95 \%, or \code{"p10"} indicating the range between 10 and 90 \%), or \item \code{"sd"} (standard deviation) and \item \code{"2sd"} (2 standard deviations), } The default is \code{"qr"}. Note that \code{"sd"} and \code{"2sd"} are only meaningful in combination with \code{"z.0 = 'mean'"} because the unweighted mean is used to centre the polygon.} \item{plot.ratio}{\link{numeric} (\emph{with default}): Relative space, given to the radial versus the cartesian plot part, default is \code{0.75}.} \item{rotate}{\link{logical} (\emph{with default}): Option to turn the plot by 90 degrees.} \item{mtext}{\link{character} (\emph{optional}): additional text below the plot title.} \item{summary}{\link{character} (\emph{optional}): add statistic measures of centrality and dispersion to the plot. Can be one or more of several keywords. See details for available keywords. Results differ depending on the log-option for the z-scale (see details).} \item{summary.pos}{\link{numeric} or \link{character} (\emph{with default}): optional position coordinates or keyword (e.g. \code{"topright"}) for the statistical summary. Alternatively, the keyword \code{"sub"} may be specified to place the summary below the plot header. However, this latter option in only possible if \code{mtext} is not used.} \item{summary.method}{\link{character} (\emph{with default}): keyword indicating the method used to calculate the statistic summary. One out of \itemize{ \item \code{"unweighted"}, \item \code{"weighted"} and \item \code{"MCM"}. } See \link{calc_Statistics} for details.} \item{legend}{\link{character} vector (\emph{optional}): legend content to be added to the plot.} \item{legend.pos}{\link{numeric} or \link{character} (\emph{with default}): optional position coordinates or keyword (e.g. \code{"topright"}) for the legend to be plotted.} \item{stats}{\link{character}: additional labels of statistically important values in the plot. One or more out of the following: \itemize{ \item \code{"min"}, \item \code{"max"}, \item \code{"median"}. }} \item{rug}{\link{logical} (\emph{with default}): Option to add a rug to the KDE part, to indicate the location of individual values.} \item{kde}{\link{logical} (\emph{with default}): Option to add a KDE plot to the dispersion part, default is \code{TRUE}.} \item{hist}{\link{logical} (\emph{with default}): Option to add a histogram to the dispersion part. Only meaningful when not more than one data set is plotted.} \item{dots}{\link{logical} (\emph{with default}): Option to add a dot plot to the dispersion part. If number of dots exceeds space in the dispersion part, a square indicates this.} \item{boxplot}{\link{logical} (\emph{with default}): Option to add a boxplot to the dispersion part, default is \code{FALSE}.} \item{y.axis}{\link{logical} (\emph{with default}): Option to hide standard y-axis labels and show 0 only. Useful for data with small scatter. If you want to suppress the y-axis entirely please use \code{yaxt == 'n'} (the standard \link[graphics:par]{graphics::par} setting) instead.} \item{error.bars}{\link{logical} (\emph{with default}): Option to show De-errors as error bars on De-points. Useful in combination with \verb{y.axis = FALSE, bar.col = "none"}.} \item{bar}{\link{numeric} (\emph{with default}): option to add one or more dispersion bars (i.e., bar showing the 2-sigma range) centred at the defined values. By default a bar is drawn according to \code{"z.0"}. To omit the bar set \code{"bar = FALSE"}.} \item{bar.col}{\link{character} or \link{numeric} (\emph{with default}): colour of the dispersion bar. Default is \code{"grey60"}.} \item{polygon.col}{\link{character} or \link{numeric} (\emph{with default}): colour of the polygon showing the data scatter. Sometimes this polygon may be omitted for clarity. To disable it use \code{FALSE} or \code{polygon = FALSE}. Default is \code{"grey80"}.} \item{line}{\link{numeric}: numeric values of the additional lines to be added.} \item{line.col}{\link{character} or \link{numeric}: colour of the additional lines.} \item{line.lty}{\link{integer}: line type of additional lines} \item{line.label}{\link{character}: labels for the additional lines.} \item{grid.col}{\link{character} or \link{numeric} (\emph{with default}): colour of the grid lines (originating at \verb{[0,0]} and stretching to the z-scale). To disable grid lines use \code{FALSE}. Default is \code{"grey"}.} \item{frame}{\link{numeric} (\emph{with default}): option to modify the plot frame type. Can be one out of \itemize{ \item \code{0} (no frame), \item \code{1} (frame originates at 0,0 and runs along min/max isochrons), \item \code{2} (frame embraces the 2-sigma bar), \item \code{3} (frame embraces the entire plot as a rectangle). } Default is \code{1}.} \item{bw}{\link{character} (\emph{with default}): bin-width for KDE, choose a numeric value for manual setting.} \item{interactive}{\link{logical} (\emph{with default}): create an interactive abanico plot (requires the \code{'plotly'} package)} \item{...}{Further plot arguments to pass (see \link[graphics:plot.default]{graphics::plot.default}). Supported are: \code{main}, \code{sub}, \code{ylab}, \code{xlab}, \code{zlab}, \code{zlim}, \code{ylim}, \code{cex}, \code{lty}, \code{lwd}, \code{pch}, \code{col}, \code{at}, \code{breaks}. \code{xlab} must be a vector of length two, specifying the upper and lower x-axis labels.} } \value{ Returns a plot object and, optionally, a list with plot calculus data. } \description{ A plot is produced which allows comprehensive presentation of data precision and its dispersion around a central value as well as illustration of a kernel density estimate, histogram and/or dot plot of the dose values. } \details{ The Abanico Plot is a combination of the classic Radial Plot (\code{plot_RadialPlot}) and a kernel density estimate plot (e.g \code{plot_KDE}). It allows straightforward visualisation of data precision, error scatter around a user-defined central value and the combined distribution of the values, on the actual scale of the measured data (e.g. seconds, equivalent dose, years). The principle of the plot is shown in Galbraith & Green (1990). The function authors are thankful for the thought-provoking figure in this article. The semi circle (z-axis) of the classic Radial Plot is bent to a straight line here, which actually is the basis for combining this polar (radial) part of the plot with any other Cartesian visualisation method (KDE, histogram, PDF and so on). Note that the plot allows displaying two measures of distribution. One is the 2-sigma bar, which illustrates the spread in value errors, and the other is the polygon, which stretches over both parts of the Abanico Plot (polar and Cartesian) and illustrates the actual spread in the values themselves. Since the 2-sigma-bar is a polygon, it can be (and is) filled with shaded lines. To change density (lines per inch, default is 15) and angle (default is 45 degrees) of the shading lines, specify these parameters. See \code{?polygon()} for further help. The Abanico Plot supports other than the weighted mean as measure of centrality. When it is obvious that the data is not (log-)normally distributed, the mean (weighted or not) cannot be a valid measure of centrality and hence central dose. Accordingly, the median and the weighted median can be chosen as well to represent a proper measure of centrality (e.g. \code{centrality = "median.weighted"}). Also user-defined numeric values (e.g. from the central age model) can be used if this appears appropriate. The proportion of the polar part and the cartesian part of the Abanico Plot can be modified for display reasons (\code{plot.ratio = 0.75}). By default, the polar part spreads over 75 \% and leaves 25 \% for the part that shows the KDE graph. A statistic summary, i.e. a collection of statistic measures of centrality and dispersion (and further measures) can be added by specifying one or more of the following keywords: \itemize{ \item \code{"n"} (number of samples) \item \code{"mean"} (mean De value) \item \code{"median"} (median of the De values) \item \code{"sd.rel"} (relative standard deviation in percent) \item \code{"sd.abs"} (absolute standard deviation) \item \code{"se.rel"} (relative standard error) \item \code{"se.abs"} (absolute standard error) \item \code{"in.2s"} (percent of samples in 2-sigma range) \item \code{"kurtosis"} (kurtosis) \item \code{"skewness"} (skewness) } \strong{Note} that the input data for the statistic summary is sent to the function \code{calc_Statistics()} depending on the log-option for the z-scale. If \code{"log.z = TRUE"}, the summary is based on the logarithms of the input data. If \code{"log.z = FALSE"} the linearly scaled data is used. \strong{Note} as well, that \code{"calc_Statistics()"} calculates these statistic measures in three different ways: \code{unweighted}, \code{weighted} and \code{MCM-based} (i.e., based on Monte Carlo Methods). By default, the MCM-based version is used. If you wish to use another method, indicate this with the appropriate keyword using the argument \code{summary.method}. The optional parameter \code{layout} allows more sophisticated ways to modify the entire plot. Each element of the plot can be addressed and its properties can be defined. This includes font type, size and decoration, colours and sizes of all plot items. To infer the definition of a specific layout style cf. \code{get_Layout()} or type e.g., for the layout type \code{"journal"} \code{get_Layout("journal")}. A layout type can be modified by the user by assigning new values to the list object. It is possible for the z-scale to specify where ticks are to be drawn by using the parameter \code{at}, e.g. \code{at = seq(80, 200, 20)}, cf. function documentation of \code{axis}. Specifying tick positions manually overrides a \code{zlim}-definition. } \section{Function version}{ 0.1.18 } \examples{ ## load example data and recalculate to Gray data(ExampleData.DeValues, envir = environment()) ExampleData.DeValues <- ExampleData.DeValues$CA1 ## plot the example data straightforward plot_AbanicoPlot(data = ExampleData.DeValues) ## now with linear z-scale plot_AbanicoPlot(data = ExampleData.DeValues, log.z = FALSE) ## now with output of the plot parameters plot1 <- plot_AbanicoPlot(data = ExampleData.DeValues, output = TRUE) str(plot1) plot1$zlim ## now with adjusted z-scale limits plot_AbanicoPlot(data = ExampleData.DeValues, zlim = c(10, 200)) ## now with adjusted x-scale limits plot_AbanicoPlot(data = ExampleData.DeValues, xlim = c(0, 20)) ## now with rug to indicate individual values in KDE part plot_AbanicoPlot(data = ExampleData.DeValues, rug = TRUE) ## now with a smaller bandwidth for the KDE plot plot_AbanicoPlot(data = ExampleData.DeValues, bw = 0.04) ## now with a histogram instead of the KDE plot plot_AbanicoPlot(data = ExampleData.DeValues, hist = TRUE, kde = FALSE) ## now with a KDE plot and histogram with manual number of bins plot_AbanicoPlot(data = ExampleData.DeValues, hist = TRUE, breaks = 20) ## now with a KDE plot and a dot plot plot_AbanicoPlot(data = ExampleData.DeValues, dots = TRUE) ## now with user-defined plot ratio plot_AbanicoPlot(data = ExampleData.DeValues, plot.ratio = 0.5) ## now with user-defined central value plot_AbanicoPlot(data = ExampleData.DeValues, z.0 = 70) ## now with median as central value plot_AbanicoPlot(data = ExampleData.DeValues, z.0 = "median") ## now with the 17-83 percentile range as definition of scatter plot_AbanicoPlot(data = ExampleData.DeValues, z.0 = "median", dispersion = "p17") ## now with user-defined green line for minimum age model CAM <- calc_CentralDose(ExampleData.DeValues, plot = FALSE) plot_AbanicoPlot(data = ExampleData.DeValues, line = CAM, line.col = "darkgreen", line.label = "CAM") ## now create plot with legend, colour, different points and smaller scale plot_AbanicoPlot(data = ExampleData.DeValues, legend = "Sample 1", col = "tomato4", bar.col = "peachpuff", pch = "R", cex = 0.8) ## now without 2-sigma bar, polygon, grid lines and central value line plot_AbanicoPlot(data = ExampleData.DeValues, bar.col = FALSE, polygon.col = FALSE, grid.col = FALSE, y.axis = FALSE, lwd = 0) ## now with direct display of De errors, without 2-sigma bar plot_AbanicoPlot(data = ExampleData.DeValues, bar.col = FALSE, ylab = "", y.axis = FALSE, error.bars = TRUE) ## now with user-defined axes labels plot_AbanicoPlot(data = ExampleData.DeValues, xlab = c("Data error (\%)", "Data precision"), ylab = "Scatter", zlab = "Equivalent dose [Gy]") ## now with minimum, maximum and median value indicated plot_AbanicoPlot(data = ExampleData.DeValues, stats = c("min", "max", "median")) ## now with a brief statistical summary as subheader plot_AbanicoPlot(data = ExampleData.DeValues, summary = c("n", "in.2s")) ## now with another statistical summary plot_AbanicoPlot(data = ExampleData.DeValues, summary = c("mean.weighted", "median"), summary.pos = "topleft") ## now a plot with two 2-sigma bars for one data set plot_AbanicoPlot(data = ExampleData.DeValues, bar = c(30, 100)) ## now the data set is split into sub-groups, one is manipulated data.1 <- ExampleData.DeValues[1:30,] data.2 <- ExampleData.DeValues[31:62,] * 1.3 ## now a common dataset is created from the two subgroups data.3 <- list(data.1, data.2) ## now the two data sets are plotted in one plot plot_AbanicoPlot(data = data.3) ## now with some graphical modification plot_AbanicoPlot(data = data.3, z.0 = "median", col = c("steelblue4", "orange4"), bar.col = c("steelblue3", "orange3"), polygon.col = c("steelblue1", "orange1"), pch = c(2, 6), angle = c(30, 50), summary = c("n", "in.2s", "median")) ## create Abanico plot with predefined layout definition plot_AbanicoPlot(data = ExampleData.DeValues, layout = "journal") ## now with predefined layout definition and further modifications plot_AbanicoPlot( data = data.3, z.0 = "median", layout = "journal", col = c("steelblue4", "orange4"), bar.col = adjustcolor(c("steelblue3", "orange3"), alpha.f = 0.5), polygon.col = c("steelblue3", "orange3")) ## for further information on layout definitions see documentation ## of function get_Layout() ## now with manually added plot content ## create empty plot with numeric output AP <- plot_AbanicoPlot(data = ExampleData.DeValues, pch = NA, output = TRUE) ## identify data in 2 sigma range in_2sigma <- AP$data[[1]]$data.in.2s ## restore function-internal plot parameters par(AP$par) ## add points inside 2-sigma range points(x = AP$data[[1]]$precision[in_2sigma], y = AP$data[[1]]$std.estimate.plot[in_2sigma], pch = 16) ## add points outside 2-sigma range points(x = AP$data[[1]]$precision[!in_2sigma], y = AP$data[[1]]$std.estimate.plot[!in_2sigma], pch = 1) } \section{How to cite}{ Dietze, M., Kreutzer, S., 2025. plot_AbanicoPlot(): Function to create an Abanico Plot.. Function version 0.1.18. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Galbraith, R. & Green, P., 1990. Estimating the component ages in a finite mixture. International Journal of Radiation Applications and Instrumentation. Part D. Nuclear Tracks and Radiation Measurements, 17 (3), 197-206. Dietze, M., Kreutzer, S., Burow, C., Fuchs, M.C., Fischer, M., Schmidt, C., 2015. The abanico plot: visualising chronometric data with individual standard errors. Quaternary Geochronology. doi:10.1016/j.quageo.2015.09.003 } \seealso{ \link{plot_RadialPlot}, \link{plot_KDE}, \link{plot_Histogram}, \link{plot_ViolinPlot} } \author{ Michael Dietze, GFZ Potsdam (Germany)\cr Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr Inspired by a plot introduced by Galbraith & Green (1990) , RLum Developer Team} Luminescence/man/ExampleData.MortarData.Rd0000644000176200001440000000112214762557027020163 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{ExampleData.MortarData} \alias{ExampleData.MortarData} \alias{MortarData} \title{Example equivalent dose data from mortar samples} \format{ Two \code{\link{data.frame}}s containing De and De error } \source{ Arbitrary measurements. } \description{ Arbitrary data to test the function \code{calc_EED_Model} } \examples{ ##load data data(ExampleData.MortarData, envir = environment()) ##plot data plot(MortarData) } \references{ unpublished data } \keyword{datasets} \keyword{internal} Luminescence/man/ExampleData.SurfaceExposure.Rd0000644000176200001440000000773414762557027021267 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{ExampleData.SurfaceExposure} \alias{ExampleData.SurfaceExposure} \title{Example OSL surface exposure dating data} \format{ A \link{list} with 4 elements: \tabular{ll}{ \strong{Element} \tab \strong{Content} \cr \verb{$sample_1} \tab A \link{data.frame} with 3 columns (depth, intensity, error) \cr \verb{$sample_2} \tab A \link{data.frame} with 3 columns (depth, intensity, error) \cr \verb{$set_1} \tab A \link{list} of 4 \link{data.frame}s, each representing a sample with different ages \cr \verb{$set_2} \tab A \link{list} of 5 \link{data.frame}s, each representing a sample with different ages \cr } } \source{ See examples for the code used to create the data sets. } \description{ A set of synthetic OSL surface exposure dating data to demonstrate the \link{fit_SurfaceExposure} functionality. See examples to reproduce the data interactively. } \details{ \strong{\verb{$sample_1}} \tabular{ccc}{ \strong{mu} \tab \strong{\code{sigmaphi}} \tab \strong{age} \cr 0.9 \tab 5e-10 \tab 10000 \cr } \strong{\verb{$sample_2}} \tabular{ccccc}{ \strong{mu} \tab \strong{\code{sigmaphi}} \tab \strong{age} \tab \strong{Dose rate} \tab \strong{D0} \cr 0.9 \tab 5e-10 \tab 10000 \tab 2.5 \tab 40 \cr } \strong{\verb{$set_1}} \tabular{ccc}{ \strong{mu} \tab \strong{\code{sigmaphi}} \tab \strong{ages} \cr 0.9 \tab 5e-10 \tab 1e3, 1e4, 1e5, 1e6 \cr } \strong{\verb{$set_2}} \tabular{ccccc}{ \strong{mu} \tab \strong{\code{sigmaphi}} \tab \strong{ages} \tab \strong{Dose rate} \tab \strong{D0} \cr 0.9 \tab 5e-10 \tab 1e2, 1e3, 1e4, 1e5, 1e6 \tab 1.0 \tab 40 \cr } } \examples{ ## ExampleData.SurfaceExposure$sample_1 sigmaphi <- 5e-10 age <- 10000 mu <- 0.9 x <- seq(0, 10, 0.1) fun <- exp(-sigmaphi * age * 365.25*24*3600 * exp(-mu * x)) set.seed(666) synth_1 <- data.frame(depth = x, intensity = jitter(fun, 1, 0.1), error = runif(length(x), 0.01, 0.2)) ## VALIDATE sample_1 fit_SurfaceExposure(synth_1, mu = mu, sigmaphi = sigmaphi) ## ExampleData.SurfaceExposure$sample_2 sigmaphi <- 5e-10 age <- 10000 mu <- 0.9 x <- seq(0, 10, 0.1) Ddot <- 2.5 / 1000 / 365.25 / 24 / 60 / 60 # 2.5 Gy/ka in Seconds D0 <- 40 fun <- (sigmaphi * exp(-mu * x) * exp(-(age * 365.25*24*3600) * (sigmaphi * exp(-mu * x) + Ddot/D0)) + Ddot/D0) / (sigmaphi * exp(-mu * x) + Ddot/D0) set.seed(666) synth_2 <- data.frame(depth = x, intensity = jitter(fun, 1, 0.1), error = runif(length(x), 0.01, 0.2)) ## VALIDATE sample_2 fit_SurfaceExposure(synth_2, mu = mu, sigmaphi = sigmaphi, Ddot = 2.5, D0 = D0) ## ExampleData.SurfaceExposure$set_1 sigmaphi <- 5e-10 mu <- 0.9 x <- seq(0, 15, 0.2) age <- c(1e3, 1e4, 1e5, 1e6) set.seed(666) synth_3 <- vector("list", length = length(age)) for (i in 1:length(age)) { fun <- exp(-sigmaphi * age[i] * 365.25*24*3600 * exp(-mu * x)) synth_3[[i]] <- data.frame(depth = x, intensity = jitter(fun, 1, 0.05)) } ## VALIDATE set_1 fit_SurfaceExposure(synth_3, age = age, sigmaphi = sigmaphi) ## ExampleData.SurfaceExposure$set_2 sigmaphi <- 5e-10 mu <- 0.9 x <- seq(0, 15, 0.2) age <- c(1e2, 1e3, 1e4, 1e5, 1e6) Ddot <- 1.0 / 1000 / 365.25 / 24 / 60 / 60 # 2.0 Gy/ka in Seconds D0 <- 40 set.seed(666) synth_4 <- vector("list", length = length(age)) for (i in 1:length(age)) { fun <- (sigmaphi * exp(-mu * x) * exp(-(age[i] * 365.25*24*3600) * (sigmaphi * exp(-mu * x) + Ddot/D0)) + Ddot/D0) / (sigmaphi * exp(-mu * x) + Ddot/D0) synth_4[[i]] <- data.frame(depth = x, intensity = jitter(fun, 1, 0.05)) } ## VALIDATE set_2 fit_SurfaceExposure(synth_4, age = age, sigmaphi = sigmaphi, D0 = D0, Ddot = 1.0) \dontrun{ ExampleData.SurfaceExposure <- list( sample_1 = synth_1, sample_2 = synth_2, set_1 = synth_3, set_2 = synth_4 ) } } \references{ Unpublished synthetic data } \keyword{datasets} Luminescence/man/get_Quote.Rd0000644000176200001440000000271314762561642015702 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/get_Quote.R \name{get_Quote} \alias{get_Quote} \title{Function to return essential quotes} \usage{ get_Quote(ID, separated = FALSE) } \arguments{ \item{ID}{\link{character} (\emph{optional}): quote ID to be returned.} \item{separated}{\link{logical} (\emph{with default}): return result in separated form.} } \value{ Returns a character with quote and respective (false) author. } \description{ This function returns one of the collected essential quotes in the growing library. If called without any parameters, a random quote is returned. } \section{Function version}{ 0.1.5 } \examples{ ## ask for an arbitrary quote get_Quote() } \author{ Quote credits: Michael Dietze, GFZ Potsdam (Germany), Sebastian Kreutzer, Geography & Earth Science, Aberystwyth University (United Kingdom), Dirk Mittelstraß, TU Dresden (Germany), Jakob Wallinga (Wageningen University, Netherlands) , RLum Developer Team} \section{How to cite}{ Dietze, M., Kreutzer, S., 2025. get_Quote(): Function to return essential quotes. Function version 0.1.5. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } Luminescence/man/install_DevelopmentVersion.Rd0000644000176200001440000000335014762557027021324 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/install_DevelopmentVersion.R \name{install_DevelopmentVersion} \alias{install_DevelopmentVersion} \title{Attempts to install the development version of the 'Luminescence' package} \usage{ install_DevelopmentVersion(force_install = FALSE) } \arguments{ \item{force_install}{\link{logical} (\emph{optional}): If \code{FALSE} (the default) the function produces and prints the required code to the console for the user to run manually afterwards. When \code{TRUE} and all requirements are fulfilled (see details) this function attempts to install the package itself.} } \value{ This function requires user input at the command prompt to choose the desired development branch to be installed. The required R code to install the package is then printed to the console. } \description{ This function is a convenient method for installing the development version of the R package 'Luminescence' directly from GitHub. } \details{ This function uses \link[=GitHub-API]{Luminescence::github_branches} to check which development branches of the R package 'Luminescence' are currently available on GitHub. The user is then prompted to choose one of the branches to be installed. It further checks whether the R package 'devtools' is currently installed and available on the system. Finally, it prints R code to the console that the user can copy and paste to the R console in order to install the desired development version of the package. If \code{force_install = TRUE} the functions checks if 'devtools' is available and then attempts to install the chosen development branch via \link[devtools:remote-reexports]{devtools::install_github}. } \examples{ \dontrun{ install_DevelopmentVersion() } } Luminescence/man/read_Daybreak2R.Rd0000644000176200001440000000532514762561642016671 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/read_Daybreak2R.R \name{read_Daybreak2R} \alias{read_Daybreak2R} \title{Import measurement data produced by a Daybreak TL/OSL reader into R} \usage{ read_Daybreak2R(file, raw = FALSE, verbose = TRUE, txtProgressBar = TRUE, ...) } \arguments{ \item{file}{\link{character} or \link{list} (\strong{required}): path and file name of the file to be imported. Alternatively a list of file names can be provided or just the path a folder containing measurement data. Please note that the specific, common, file extension (txt) is likely leading to function failures during import when just a path is provided.} \item{raw}{\link{logical} (\emph{with default}): if the input is a DAT-file (binary) a \link[data.table:data.table]{data.table::data.table} instead of the \linkS4class{RLum.Analysis} object can be returned for debugging purposes.} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{txtProgressBar}{\link{logical} (\emph{with default}): enable/disable \link{txtProgressBar}.} \item{...}{not in use, for compatibility reasons only} } \value{ A list of \linkS4class{RLum.Analysis} objects (each per position) is provided. } \description{ Import a TXT-file (ASCII file) or a DAT-file (binary file) produced by a Daybreak reader into R. The import of the DAT-files is limited to the file format described for the software TLAPLLIC v.3.2 used for a Daybreak, model 1100. } \note{ \strong{\verb{[BETA VERSION]}} This function still needs to be tested properly. In particular the function has underwent only very rough tests using a few files. } \section{Function version}{ 0.3.2 } \examples{ \dontrun{ file <- system.file("extdata/Daybreak_TestFile.txt", package = "Luminescence") temp <- read_Daybreak2R(file) } } \seealso{ \linkS4class{RLum.Analysis}, \linkS4class{RLum.Data.Curve}, \link[data.table:data.table]{data.table::data.table} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr Antoine Zink, C2RMF, Palais du Louvre, Paris (France) The ASCII-file import is based on a suggestion by Willian Amidon and Andrew Louis Gorin , RLum Developer Team} \section{How to cite}{ Kreutzer, S., Zink, A., 2025. read_Daybreak2R(): Import measurement data produced by a Daybreak TL/OSL reader into R. Function version 0.3.2. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{IO} Luminescence/man/convert_Wavelength2Energy.Rd0000644000176200001440000001172114762561642021045 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/convert_Wavelength2Energy.R \name{convert_Wavelength2Energy} \alias{convert_Wavelength2Energy} \title{Emission Spectra Conversion from Wavelength to Energy Scales (Jacobian Conversion)} \usage{ convert_Wavelength2Energy(object, digits = 3L, order = FALSE) } \arguments{ \item{object}{\linkS4class{RLum.Data.Spectrum}, \link{data.frame}, \link{matrix} (\strong{required}): input object to be converted. If the input is not an \linkS4class{RLum.Data.Spectrum}, the first column is always treated as the wavelength column. The function supports a list of allowed input objects.} \item{digits}{\link{integer} (\emph{with default}): set the number of digits on the returned energy axis} \item{order}{\link{logical} (\emph{with default}): enable/disable sorting of the values in ascending energy order. After the conversion, the longest wavelength has the lowest energy value and the shortest wavelength the highest. While this is correct, some R functions expect increasing x-values.} } \value{ The same object class as provided as input is returned. } \description{ The function provides a convenient and fast way to convert emission spectra wavelength to energy scales. The function works on \linkS4class{RLum.Data.Spectrum}, \link{data.frame} and \link{matrix} and a \link{list} of such objects. The function was written to smooth the workflow while analysing emission spectra data. This is in particular useful if you want to further treat your data and apply, e.g., a signal deconvolution. } \details{ The intensity of the spectrum is re-calculated using the following approach to recalculate wavelength and corresponding intensity values (e.g., Appendix 4 in Blasse and Grabmaier, 1994; Mooney and Kambhampati, 2013): \deqn{\phi_{E} = \phi_{\lambda} * \lambda^2 / (hc)} with \eqn{\phi_{E}} the intensity per interval of energy \eqn{E} (1/eV), \eqn{\phi_{\lambda}} the intensity per interval of wavelength \eqn{\lambda} (1/nm) and \eqn{h} (eV * s) the Planck constant and \eqn{c} (nm/s) the velocity of light. For transforming the wavelength axis (x-values) the equation as follow is used \deqn{E = hc/\lambda} } \note{ This conversion works solely for emission spectra. In case of absorption spectra only the x-axis has to be converted. } \section{Function version}{ 0.1.1 } \examples{ ##=====================## ##(1) Literature example after Mooney et al. (2013) ##(1.1) create matrix m <- matrix( data = c(seq(400, 800, 50), rep(1, 9)), ncol = 2) ##(1.2) set plot function to reproduce the ##literature figure p <- function(m) { plot(x = m[, 1], y = m[, 2]) polygon( x = c(m[, 1], rev(m[, 1])), y = c(m[, 2], rep(0, nrow(m)))) for (i in 1:nrow(m)) { lines(x = rep(m[i, 1], 2), y = c(0, m[i, 2])) } } ##(1.3) plot curves par(mfrow = c(1,2)) p(m) p(convert_Wavelength2Energy(m)) ##=====================## ##(2) Another example using density curves ##create dataset xy <- density( c(rnorm(n = 100, mean = 500, sd = 20), rnorm(n = 100, mean = 800, sd = 20))) xy <- data.frame(xy$x, xy$y) ##plot par(mfrow = c(1,2)) plot( xy, type = "l", xlim = c(150, 1000), xlab = "Wavelength [nm]", ylab = "Luminescence [a.u.]" ) plot( convert_Wavelength2Energy(xy), xy$y, type = "l", xlim = c(1.23, 8.3), xlab = "Energy [eV]", ylab = "Luminescence [a.u.]" ) } \section{How to cite}{ Kreutzer, S., 2025. convert_Wavelength2Energy(): Emission Spectra Conversion from Wavelength to Energy Scales (Jacobian Conversion). Function version 0.1.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Blasse, G., Grabmaier, B.C., 1994. Luminescent Materials. Springer. Mooney, J., Kambhampati, P., 2013. Get the Basics Right: Jacobian Conversion of Wavelength and Energy Scales for Quantitative Analysis of Emission Spectra. J. Phys. Chem. Lett. 4, 3316–3318. \doi{10.1021/jz401508t} Mooney, J., Kambhampati, P., 2013. Correction to “Get the Basics Right: Jacobian Conversion of Wavelength and Energy Scales for Quantitative Analysis of Emission Spectra.” J. Phys. Chem. Lett. 4, 3316–3318. \doi{10.1021/jz401508t} \strong{Further reading} Angulo, G., Grampp, G., Rosspeintner, A., 2006. Recalling the appropriate representation of electronic spectra. Spectrochimica Acta Part A: Molecular and Biomolecular Spectroscopy 65, 727–731. \doi{10.1016/j.saa.2006.01.007} Wang, Y., Townsend, P.D., 2013. Potential problems in collection and data processing of luminescence signals. Journal of Luminescence 142, 202–211. \doi{10.1016/j.jlumin.2013.03.052} } \seealso{ \linkS4class{RLum.Data.Spectrum}, \link{plot_RLum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{IO} Luminescence/man/write_RLum2CSV.Rd0000644000176200001440000000736114762561642016501 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/write_RLum2CSV.R \name{write_RLum2CSV} \alias{write_RLum2CSV} \title{Export RLum-objects to CSV} \usage{ write_RLum2CSV( object, path = NULL, prefix = "", export = TRUE, compact = TRUE, ... ) } \arguments{ \item{object}{\linkS4class{RLum} or a \link{list} of \code{RLum} objects (\strong{required}): objects to be written. Can be a \link{data.frame} if needed internally.} \item{path}{\link{character} (\emph{optional}): character string naming folder for the output to be written. If nothing is provided \code{path} will be set to the working directory. \strong{Note:} this argument is ignored when \code{export = FALSE}.} \item{prefix}{\link{character} (\emph{with default}): optional prefix to name the files. This prefix is valid for all written files} \item{export}{\link{logical} (\emph{with default}): enable/disable the file export. If set to \code{FALSE} nothing is written to the file connection, but a list comprising objects of type \link{data.frame} and \link{matrix} is returned instead.} \item{compact}{\link{logical} (\emph{with default}): if \code{TRUE} (default) the output will be simpler but less comprehensive, that is not all elements in the objects will be fully broken down. This is in particular useful for writing \code{RLum.Results} objects to CSV files, as such objects can be rather complex and not all information are needed in a CSV file or can be meaningfully translated to CSV format.} \item{...}{further arguments that will be passed to the function \link[utils:write.table]{utils::write.table}. All arguments except the argument \code{file} are supported} } \value{ The function returns either a CSV-file (or many of them) or for the option \code{export == FALSE} a list comprising objects of type \link{data.frame} and \link{matrix} } \description{ This function exports \linkS4class{RLum}-objects to CSV-files using the R function \link[utils:write.table]{utils::write.table}. All \linkS4class{RLum}-objects are supported, but the export is lossy, i.e. the pure numerical values are exported only. Information that cannot be coerced to a \link{data.frame} or a \link{matrix} are discarded as well as metadata. } \details{ However, in combination with the implemented import functions, nearly every supported import data format can be exported to CSV-files, this gives a great deal of freedom in terms of compatibility with other tools. \strong{Input is a list of objects} If the input is a \link{list} of objects all explicit function arguments can be provided as \link{list}. } \section{Function version}{ 0.2.2 } \examples{ ##transform values to a list (and do not write) data(ExampleData.BINfileData, envir = environment()) object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data)[[1]] write_RLum2CSV(object, export = FALSE) \dontrun{ ##create temporary filepath ##(for usage replace by own path) temp_file <- tempfile(pattern = "output", fileext = ".csv") ##write CSV-file to working directory write_RLum2CSV(temp_file) } } \seealso{ \linkS4class{RLum.Analysis}, \linkS4class{RLum.Data}, \linkS4class{RLum.Results}, \link[utils:write.table]{utils::write.table} } \author{ Sebastian Kreutzer, Geography & Earth Science, Aberystwyth University (United Kingdom) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. write_RLum2CSV(): Export RLum-objects to CSV. Function version 0.2.2. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{IO} Luminescence/man/BaseDataSet.CosmicDoseRate.Rd0000644000176200001440000000606314762557027020735 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \docType{data} \name{BaseDataSet.CosmicDoseRate} \alias{BaseDataSet.CosmicDoseRate} \alias{values.cosmic.Softcomp} \alias{values.factor.Altitude} \alias{values.par.FJH} \title{Base data set for cosmic dose rate calculation} \format{ \tabular{ll}{ \code{values.cosmic.Softcomp}: \tab data frame containing cosmic dose rates for shallow depths (< 167 g cm^-2) obtained using the "AGE" program by Rainer Gruen (cf. Gruen 2009). These data essentially reproduce the graph shown in Fig. 1 of Prescott & Hutton (1988). \cr \code{values.factor.Altitude}: \tab data frame containing altitude factors for adjusting geomagnetic field-change factors. Values were read from Fig. 1 in Prescott & Hutton (1994). \cr \code{values.par.FJH}: \tab data frame containing values for parameters F, J and H (read from Fig. 2 in Prescott & Hutton 1994) used in the expression \cr } \deqn{Dc = D0*(F+J*exp((altitude/1000)/H))} } \source{ The following data were carefully read from figures in mentioned sources and used for fitting procedures. The derived expressions are used in the function \code{calc_CosmicDoseRate}. \strong{values.cosmic.Softcomp} \tabular{ll}{ Program: \tab "AGE"\cr Reference: \tab Gruen (2009) \cr Fit: \tab Polynomials in the form of } For depths between 40-167 g cm^-2: \deqn{y = 2*10^-6*x^2-0.0008*x+0.2535} (For depths <40 g cm^-2) \deqn{y = -6*10^-8*x^3+2*10^-5*x^2-0.0025*x+0.2969} \strong{\code{values.factor.Altitude}} \tabular{ll}{ Reference: \tab Prescott & Hutton (1994) \cr Page: \tab 499 \cr Figure: \tab 1 \cr Fit: \tab 2-degree polynomial in the form of } \deqn{y = -0.026*x^2 + 0.6628*x + 1.0435} \strong{\code{values.par.FJH}} \tabular{ll}{ Reference: \tab Prescott & Hutton (1994) \cr Page: \tab 500 \cr Figure: \tab 2 \cr Fits: \tab 3-degree polynomials and linear fits } F (non-linear part, \eqn{\lambda} < 36.5 deg.): \deqn{y = -7*10^-7*x^3-8*10^-5*x^2-0.0009*x+0.3988} F (linear part, \eqn{\lambda} > 36.5 deg.): \deqn{y = -0.0001*x + 0.2347} J (non-linear part, \eqn{\lambda} < 34 deg.): \deqn{y = 5*10^-6*x^3-5*10^-5*x^2+0.0026*x+0.5177} J (linear part, \eqn{\lambda} > 34 deg.): \deqn{y = 0.0005*x + 0.7388} H (non-linear part, \eqn{\lambda} < 36 deg.): \deqn{y = -3*10^-6*x^3-5*10^-5*x^2-0.0031*x+4.398} H (linear part, \eqn{\lambda} > 36 deg.): \deqn{y = 0.0002*x + 4.0914} } \description{ Collection of data from various sources needed for cosmic dose rate calculation } \section{Version}{ 0.1 } \examples{ ##load data data(BaseDataSet.CosmicDoseRate) } \references{ Gruen, R., 2009. The "AGE" program for the calculation of luminescence age estimates. Ancient TL, 27, pp. 45-46. Prescott, J.R., Hutton, J.T., 1988. Cosmic ray and gamma ray dosimetry for TL and ESR. Nuclear Tracks and Radiation Measurements, 14, pp. 223-227. Prescott, J.R., Hutton, J.T., 1994. Cosmic ray contributions to dose rates for luminescence and ESR dating: large depths and long-term time variations. Radiation Measurements, 23, pp. 497-500. } \keyword{datasets} \keyword{internal} Luminescence/man/calc_FadingCorr.Rd0000644000176200001440000002065614762561642016754 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_FadingCorr.R \name{calc_FadingCorr} \alias{calc_FadingCorr} \title{Fading Correction after Huntley & Lamothe (2001)} \usage{ calc_FadingCorr( age.faded, g_value, tc, tc.g_value = tc, n.MC = 10000, seed = NULL, interval = c(0.01, 500), txtProgressBar = TRUE, verbose = TRUE ) } \arguments{ \item{age.faded}{\link{numeric} \link{vector} (\strong{required}): vector of length 2 containing the uncorrected age and the error in ka (see example).} \item{g_value}{\link{vector} or \linkS4class{RLum.Results} (\strong{required}): either a vector of length 2 containing the g-value and error obtained from separate fading measurements (see example), or an \linkS4class{RLum.Results} object produced by \link{analyse_FadingMeasurement}. If the latter, the \code{tc} argument is set automatically.} \item{tc}{\link{numeric} (\strong{required}): time in seconds between irradiation and the prompt measurement (cf. Huntley & Lamothe 2001). The argument is ignored when \code{g_value} is an \linkS4class{RLum.Results} object.} \item{tc.g_value}{\link{numeric} (\emph{with default}): time in seconds between irradiation and the prompt measurement used in the estimation of the g-value. If the g-value was normalised, the normalisation time (in seconds) should be given, e.g., for a g-value normalised to 2 days, the value 172800 should be used. If nothing is provided the time is set to \code{tc}, which is usual case for g-values obtained using the SAR method and \eqn{g}-values that have been not normalised to 2 days.} \item{n.MC}{\link{integer} (\emph{with default}): number of Monte Carlo simulation runs for error estimation. If \code{n.MC = 'auto'} is used the function tries to find a 'stable' error for the age. See details for further information. \strong{Note:} This may take a while!} \item{seed}{\link{integer} (\emph{optional}): sets the seed for the random number generator in R using \link{set.seed}} \item{interval}{\link{numeric} (\emph{with default}): a vector containing the end-points (age interval) of the interval to be searched for the root in 'ka'. This argument is passed to the function \link[stats:uniroot]{stats::uniroot} used for solving the equation.} \item{txtProgressBar}{\link{logical} (\emph{with default}): enable/disable the progress bar.} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} } \value{ Returns an S4 object of type \linkS4class{RLum.Results}.\cr Slot: \strong{\verb{@data}}\cr \tabular{lll}{ \strong{Object} \tab \strong{Type} \tab \strong{Comment} \cr \code{age.corr} \tab \link{data.frame} \tab Corrected age \cr \code{age.corr.MC} \tab \link{numeric} \tab MC simulation results with all possible ages from that simulation \cr } Slot: \strong{\verb{@info}}\cr \tabular{lll}{ \strong{Object} \tab \strong{Type} \tab \strong{Comment} \cr \code{info} \tab \link{character} \tab the original function call } } \description{ Apply a fading correction according to Huntley & Lamothe (2001) for a given \eqn{g}-value and a given \eqn{t_{c}} } \details{ This function solves the equation used for correcting the fading affected age including the error for a given \eqn{g}-value according to Huntley & Lamothe (2001): \deqn{ \frac{A_{f}}{A} = 1 - \kappa * \Big[ln(\frac{A}{t_c}) - 1\Big] } with \eqn{\kappa} defined as \deqn{ \kappa = \frac{\frac{\mathrm{g\_value}}{ln(10)}}{100} } \eqn{A} and \eqn{A_{f}} are given in ka. \eqn{t_c} is given in s, however, it is internally recalculated to ka. As the \eqn{g}-value slightly depends on the time \eqn{t_{c}} between irradiation and the prompt measurement, a value for \code{tc} must always be provided. If the \eqn{g}-value was normalised to a distinct time or evaluated with a different tc value (e.g., external irradiation), also the \eqn{t_{c}} value for the \eqn{g}-value needs to be provided (argument \code{tc.g_value} and then the \eqn{g}-value is recalculated to \eqn{t_{c}} of the measurement used for estimating the age applying the following equation: \deqn{\kappa_{tc} = \kappa_{tc.g} / (1 - \kappa_{tc.g} * ln(tc/tc.g))} where \deqn{\kappa_{tc.g} = g / 100 / ln(10)} The error of the fading-corrected age is determined using a Monte Carlo simulation approach. Solving of the equation is performed using \link{uniroot}. Large values for \code{n.MC} will significantly increase the computation time.\cr \strong{\code{n.MC = 'auto'}} The error estimation based on a stochastic process, i.e. for a small number of MC runs the calculated error varies considerably every time the function is called, even with the same input values. The argument option \code{n.MC = 'auto'} tries to find a stable value for the standard error, i.e. the standard deviation of values calculated during the MC runs (\code{age.corr.MC}), within a given precision (2 digits) by increasing the number of MC runs stepwise and calculating the corresponding error. If the determined error does not differ from the 9 values calculated previously within a precision of (here) 3 digits the calculation is stopped as it is assumed that the error is stable. Please note that (a) the duration depends on the input values as well as on the provided computation resources and it may take a while, (b) the length (size) of the output vector \code{age.corr.MC}, where all the single values produced during the MC runs are stored, equals the number of MC runs (here termed observations). To avoid an endless loop the calculation is stopped if the number of observations exceeds 10^7. This limitation can be overwritten by setting the number of MC runs manually, e.g. \code{n.MC = 10000001}. Note: For this case the function is not checking whether the calculated error is stable.\cr \strong{\code{seed}} This option allows to recreate previously calculated results by setting the seed for the R random number generator (see \link{set.seed} for details). This option should not be mixed up with the option \strong{\code{n.MC = 'auto'}}. The results may appear similar, but they are not comparable!\cr \strong{FAQ}\cr \strong{Q}: Which \eqn{t_{c}} value is expected?\cr \strong{A}: \eqn{t_{c}} is the time in seconds between irradiation and the prompt measurement applied during your \eqn{D_{e}} measurement. However, this \eqn{t_{c}} might differ from the \eqn{t_{c}} used for estimating the \eqn{g}-value. In the case of an SAR measurement \eqn{t_{c}} should be similar, however, if it differs, you have to provide this \eqn{t_{c}} value (the one used for estimating the \eqn{g}-value) using the argument \code{tc.g_value}.\cr \strong{Q}: The function could not find a solution, what should I do?\cr \strong{A}: This usually happens for model parameters exceeding the boundaries of the fading correction model (e.g., very high \eqn{g}-value). Please check whether another fading correction model might be more appropriate. } \note{ Special thanks to Sébastien Huot for his support and clarification via e-mail. } \section{Function version}{ 0.4.4 } \examples{ ##run the examples given in the appendix of Huntley and Lamothe, 2001 ##(1) faded age: 100 a results <- calc_FadingCorr( age.faded = c(0.1,0), g_value = c(5.0, 1.0), tc = 2592000, tc.g_value = 172800, n.MC = 100) ##(2) faded age: 1 ka results <- calc_FadingCorr( age.faded = c(1,0), g_value = c(5.0, 1.0), tc = 2592000, tc.g_value = 172800, n.MC = 100) ##(3) faded age: 10.0 ka results <- calc_FadingCorr( age.faded = c(10,0), g_value = c(5.0, 1.0), tc = 2592000, tc.g_value = 172800, n.MC = 100) ##access the last output get_RLum(results) } \section{How to cite}{ Kreutzer, S., 2025. calc_FadingCorr(): Fading Correction after Huntley & Lamothe (2001). Function version 0.4.4. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Huntley, D.J., Lamothe, M., 2001. Ubiquity of anomalous fading in K-feldspars and the measurement and correction for it in optical dating. Canadian Journal of Earth Sciences, 38, 1093-1106. } \seealso{ \linkS4class{RLum.Results}, \link{analyse_FadingMeasurement}, \link{get_RLum}, \link{uniroot} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{datagen} Luminescence/man/plot_RLum.Analysis.Rd0000644000176200001440000001234114762561642017443 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_RLum.Analysis.R \name{plot_RLum.Analysis} \alias{plot_RLum.Analysis} \title{Plot function for an RLum.Analysis S4 class object} \usage{ plot_RLum.Analysis( object, subset = NULL, nrows, ncols, abline = NULL, combine = FALSE, records_max = NULL, curve.transformation = "None", plot_singlePanels = FALSE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Analysis} (\strong{required}): S4 object of class \code{RLum.Analysis}} \item{subset}{named \link{list} (\emph{optional}): subsets elements for plotting. The arguments in the named \link{list} will be directly passed to the function \link{get_RLum} (e.g., \code{subset = list(curveType = "measured")})} \item{nrows}{\link{integer} (\emph{optional}): sets number of rows for plot output, if nothing is set the function tries to find a value.} \item{ncols}{\link{integer} (\emph{optional}): sets number of columns for plot output, if nothing is set the function tries to find a value.} \item{abline}{\link{list} (\emph{optional}): allows to add ab-lines to the plot. Argument are provided in a list and will be forward to the function \link{abline}, e.g., \code{list(v = c(10, 100))} adds two vertical lines add 10 and 100 to all plots. In contrast \verb{list(v = c(10), v = c(100)} adds a vertical at 10 to the first and a vertical line at 100 to the 2nd plot.} \item{combine}{\link{logical} (\emph{with default}): allows to combine all \linkS4class{RLum.Data.Curve} objects in one single plot.} \item{records_max}{\link{numeric} (\emph{optional}): limits number of records shown if \code{combine = TRUE}. Shown are always the first and the last curve, the other number of curves to be shown a distributed evenly, this may result in fewer curves plotted as specified. This parameter has only an effect for n > 2.} \item{curve.transformation}{\link{character} (\emph{with default}): allows transforming CW-OSL and CW-IRSL curves to pseudo-LM curves via transformation functions. Allowed values are: \code{CW2pLM}, \code{CW2pLMi}, \code{CW2pHMi} and \code{CW2pPMi}, see details. If set to \code{None} (default), no transformation is applied.} \item{plot_singlePanels}{\link{logical} (\emph{with default}): global par settings are considered, normally this should end in one plot per page} \item{...}{further arguments and graphical parameters will be passed to the \code{plot} function. Supported arguments: \code{main}, \code{mtext}, \code{log}, \code{lwd}, \code{lty} \code{type}, \code{pch}, \code{col}, \code{norm} (see \link{plot_RLum.Data.Curve}), \code{xlim},\code{ylim}, \code{xlab}, \code{ylab}, ... and for \code{combine = TRUE} also: \code{sub_title}, \code{legend}, \code{legend.text}, \code{legend.pos} (typical plus 'outside'), \code{legend.col}, \code{smooth}. All arguments can be provided as \code{vector} or \code{list} to gain in full control of all plot settings.} } \value{ Returns multiple plots. } \description{ The function provides a standardised plot output for curve data of an RLum.Analysis S4 class object The function produces a multiple plot output. A file output is recommended (e.g., \link{pdf}). \strong{curve.transformation} This argument allows transforming continuous wave (CW) curves to pseudo (linear) modulated curves. For the transformation, the functions of the package are used. Currently, it is not possible to pass further arguments to the transformation functions. The argument works only for \code{ltype} \code{OSL} and \code{IRSL}. Please note: The curve transformation within this functions works roughly, i.e. every IRSL or OSL curve is transformed, without considering whether it is measured with the PMT or not! However, for a fast look it might be helpful. } \note{ Not all arguments available for \link{plot} will be passed and they partly do not behave in the way you might expect them to work. This function was designed to serve as an overview plot, if you want to have more control, extract the objects and plot them individually. } \section{Function version}{ 0.3.16 } \examples{ ##load data data(ExampleData.BINfileData, envir = environment()) ##convert values for position 1 temp <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) ##(1) plot (combine) TL curves in one plot plot_RLum.Analysis( temp, subset = list(recordType = "TL"), combine = TRUE, norm = TRUE, abline = list(v = c(110)) ) ##(2) same as example (1) but using ## the argument smooth = TRUE plot_RLum.Analysis( temp, subset = list(recordType = "TL"), combine = TRUE, norm = TRUE, smooth = TRUE, abline = list(v = c(110)) ) } \seealso{ \link{plot}, \link{plot_RLum}, \link{plot_RLum.Data.Curve} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. plot_RLum.Analysis(): Plot function for an RLum.Analysis S4 class object. Function version 0.3.16. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{aplot} Luminescence/man/convert_Daybreak2CSV.Rd0000644000176200001440000000401514762561642017663 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/convert_Daybreak2CSV.R \name{convert_Daybreak2CSV} \alias{convert_Daybreak2CSV} \title{Export measurement data produced by a Daybreak luminescence reader to CSV-files} \usage{ convert_Daybreak2CSV(file, ...) } \arguments{ \item{file}{\link{character} (\strong{required}): name of the Daybreak-file (TXT-file, DAT-file) to be converted to CSV-files} \item{...}{further arguments that will be passed to the function \link{read_Daybreak2R} and \link{write_RLum2CSV}} } \value{ The function returns either a CSV-file (or many of them) or for the option \code{export = FALSE} a list comprising objects of type \link{data.frame} and \link{matrix} } \description{ This function is a wrapper function around the functions \link{read_Daybreak2R} and \link{write_RLum2CSV} and it imports a Daybreak-file (TXT-file, DAT-file) and directly exports its content to CSV-files. If nothing is set for the argument \code{path} (\link{write_RLum2CSV}) the input folder will become the output folder. } \section{Function version}{ 0.1.0 } \examples{ \dontrun{ ##select your BIN-file file <- file.choose() ##convert convert_Daybreak2CSV(file) } } \seealso{ \linkS4class{RLum.Analysis}, \linkS4class{RLum.Data}, \linkS4class{RLum.Results}, \link[utils:write.table]{utils::write.table}, \link{write_RLum2CSV}, \link{read_Daybreak2R} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. convert_Daybreak2CSV(): Export measurement data produced by a Daybreak luminescence reader to CSV-files. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{IO} Luminescence/man/merge_RLum.Analysis.Rd0000644000176200001440000000473014762561642017567 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/merge_RLum.Analysis.R \name{merge_RLum.Analysis} \alias{merge_RLum.Analysis} \title{Merge function for RLum.Analysis S4 class objects} \usage{ merge_RLum.Analysis(objects) } \arguments{ \item{objects}{\link{list} of \linkS4class{RLum.Analysis} (\strong{required}): list of S4 objects of class \code{RLum.Analysis}. Furthermore other objects of class \linkS4class{RLum} can be added, see details.} } \value{ Return an \linkS4class{RLum.Analysis} object. } \description{ Function allows merging of RLum.Analysis objects and adding of allowed objects to an RLum.Analysis. } \details{ This function simply allows to merge \linkS4class{RLum.Analysis} objects. Moreover, other \linkS4class{RLum} objects can be added to an existing \linkS4class{RLum.Analysis} object. Supported objects to be added are: \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Data.Spectrum} and \linkS4class{RLum.Data.Image}. The order in the new \linkS4class{RLum.Analysis} object is the object order provided with the input list. } \note{ The information for the slot 'protocol' is taken from the first \linkS4class{RLum.Analysis} object in the input list. Therefore at least one object of type \linkS4class{RLum.Analysis} has to be provided. } \section{Function version}{ 0.2.0 } \examples{ ##merge different RLum objects from the example data data(ExampleData.RLum.Analysis, envir = environment()) data(ExampleData.BINfileData, envir = environment()) object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) curve <- get_RLum(object)[[2]] temp.merged <- merge_RLum.Analysis(list(curve, IRSAR.RF.Data, IRSAR.RF.Data)) } \seealso{ \link{merge_RLum}, \linkS4class{RLum.Analysis}, \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Data.Spectrum}, \linkS4class{RLum.Data.Image}, \linkS4class{RLum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. merge_RLum.Analysis(): Merge function for RLum.Analysis S4 class objects. Function version 0.2.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{internal} \keyword{utilities} Luminescence/man/tune_Data.Rd0000644000176200001440000000360214762561642015650 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/tune_Data.R \name{tune_Data} \alias{tune_Data} \title{Tune data for experimental purpose} \usage{ tune_Data(data, decrease.error = 0, increase.data = 0) } \arguments{ \item{data}{\link{data.frame} (\strong{required}): input values, structure: data (\code{values[,1]}) and data error (\code{values [,2]}) are required} \item{decrease.error}{\link{numeric}: factor by which the error is decreased, ranges between 0 and 1.} \item{increase.data}{\link{numeric}: factor by which the error is decreased, ranges between 0 and \code{Inf}.} } \value{ Returns a \link{data.frame} with tuned values. } \description{ The error can be reduced and sample size increased for specific purpose. } \note{ You should not use this function to improve your poor data set! } \section{Function version}{ 0.5.0 } \examples{ ## load example data set data(ExampleData.DeValues, envir = environment()) x <- ExampleData.DeValues$CA1 ## plot original data plot_AbanicoPlot(data = x, summary = c("n", "mean")) ## decrease error by 10 \% plot_AbanicoPlot(data = tune_Data(x, decrease.error = 0.1), summary = c("n", "mean")) ## increase sample size by 200 \% #plot_AbanicoPlot(data = tune_Data(x, increase.data = 2) , # summary = c("n", "mean")) } \author{ Michael Dietze, GFZ Potsdam (Germany) , RLum Developer Team} \section{How to cite}{ Dietze, M., 2025. tune_Data(): Tune data for experimental purpose. Function version 0.5.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{manip} Luminescence/man/calc_FuchsLang2001.Rd0000644000176200001440000000736514762561642017115 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_FuchsLang2001.R \name{calc_FuchsLang2001} \alias{calc_FuchsLang2001} \title{Apply the model after Fuchs & Lang (2001) to a given De distribution} \usage{ calc_FuchsLang2001(data, cvThreshold = 5, startDeValue = 1, plot = TRUE, ...) } \arguments{ \item{data}{\linkS4class{RLum.Results} or \link{data.frame} (\strong{required}): for \link{data.frame}: two columns with De \code{(data[,1])} and De error \code{(values[,2])}} \item{cvThreshold}{\link{numeric} (\emph{with default}): coefficient of variation in percent, as threshold for the method, e.g. \code{cvThreshold = 3}. See details .} \item{startDeValue}{\link{numeric} (\emph{with default}): number of the first aliquot that is used for the calculations} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{further arguments and graphical parameters passed to \link{plot}} } \value{ Returns a plot (\emph{optional}) and terminal output. In addition an \linkS4class{RLum.Results} object is returned containing the following elements: \item{summary}{\link{data.frame} summary of all relevant model results.} \item{data}{\link{data.frame} original input data} \item{args}{\link{list} used arguments} \item{call}{\link{call} the function call} \item{usedDeValues}{\link{data.frame} containing the used values for the calculation} } \description{ This function applies the method according to Fuchs & Lang (2001) for heterogeneously bleached samples with a given coefficient of variation threshold. } \details{ \strong{Used values} If the coefficient of variation (\code{c[v]}) of the first two values is larger than the threshold \code{c[v_threshold]}, the first value is skipped. Use the \code{startDeValue} argument to define a start value for calculation (e.g. 2nd or 3rd value). \strong{Basic steps of the approach} \enumerate{ \item Estimate natural relative variation of the sample using a dose recovery test \item Sort the input values in ascending order \item Calculate a running mean, starting with the lowermost two values and add values iteratively. \item Stop if the calculated \code{c[v]} exceeds the specified \code{cvThreshold} } } \note{ Please consider the requirements and the constraints of this method (see Fuchs & Lang, 2001) } \section{Function version}{ 0.4.1 } \examples{ ## load example data data(ExampleData.DeValues, envir = environment()) ## calculate De according to Fuchs & Lang (2001) temp<- calc_FuchsLang2001(ExampleData.DeValues$BT998, cvThreshold = 5) } \section{How to cite}{ Kreutzer, S., Burow, C., 2025. calc_FuchsLang2001(): Apply the model after Fuchs & Lang (2001) to a given De distribution. Function version 0.4.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Fuchs, M. & Lang, A., 2001. OSL dating of coarse-grain fluvial quartz using single-aliquot protocols on sediments from NE Peloponnese, Greece. In: Quaternary Science Reviews 20, 783-787. Fuchs, M. & Wagner, G.A., 2003. Recognition of insufficient bleaching by small aliquots of quartz for reconstructing soil erosion in Greece. Quaternary Science Reviews 22, 1161-1167. } \seealso{ \link{plot}, \link{calc_MinDose}, \link{calc_FiniteMixture}, \link{calc_CentralDose}, \link{calc_CommonDose}, \linkS4class{RLum.Results} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) \cr Christoph Burow, University of Cologne (Germany) , RLum Developer Team} \keyword{dplot} Luminescence/man/calc_Statistics.Rd0000644000176200001440000000627514762561642017071 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_Statistics.R \name{calc_Statistics} \alias{calc_Statistics} \title{Function to calculate statistic measures} \usage{ calc_Statistics( data, weight.calc = "square", digits = NULL, n.MCM = NULL, na.rm = TRUE ) } \arguments{ \item{data}{\link{data.frame} or \linkS4class{RLum.Results} object (\strong{required}): for \link{data.frame} two columns: De (\code{data[, 1]}) and De error (\code{data[, 2]}).} \item{weight.calc}{\link{character} (\emph{with default}): type of weight calculation. One out of \code{"reciprocal"} (weight is 1/error), \code{"square"} (weight is 1/error^2). Default is \code{"square"}.} \item{digits}{\link{integer} (\emph{with default}): number of decimal places to be used when rounding numbers. If set to \code{NULL} (default), no rounding occurs.} \item{n.MCM}{\link{numeric} (\emph{with default}): number of samples drawn for Monte Carlo-based statistics. \code{NULL} (the default) disables MC runs.} \item{na.rm}{\link{logical} (\emph{with default}): indicating whether \code{NA} values should be stripped before the computation proceeds.} } \value{ Returns a list with weighted and unweighted statistic measures. } \description{ This function calculates a number of descriptive statistics for estimates with a given standard error (SE), most fundamentally using error-weighted approaches. } \details{ The option to use Monte Carlo Methods (\code{n.MCM}) allows calculating all descriptive statistics based on random values. The distribution of these random values is based on the Normal distribution with \code{De} values as means and \code{De_error} values as one standard deviation. Increasing the number of MCM-samples linearly increases computation time. On a Lenovo X230 machine evaluation of 25 Aliquots with n.MCM = 1000 takes 0.01 s, with n = 100000, ca. 1.65 s. It might be useful to work with logarithms of these values. See Dietze et al. (2016, Quaternary Geochronology) and the function \link{plot_AbanicoPlot} for details. } \section{Function version}{ 0.1.7 } \examples{ ## load example data data(ExampleData.DeValues, envir = environment()) ## show a rough plot of the data to illustrate the non-normal distribution plot_KDE(ExampleData.DeValues$BT998) ## calculate statistics and show output str(calc_Statistics(ExampleData.DeValues$BT998)) \dontrun{ ## now the same for 10000 normal distributed random numbers with equal errors x <- as.data.frame(cbind(rnorm(n = 10^5, mean = 0, sd = 1), rep(0.001, 10^5))) ## note the congruent results for weighted and unweighted measures str(calc_Statistics(x)) } } \author{ Michael Dietze, GFZ Potsdam (Germany) , RLum Developer Team} \section{How to cite}{ Dietze, M., 2025. calc_Statistics(): Function to calculate statistic measures. Function version 0.1.7. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{datagen} Luminescence/man/verify_SingleGrainData.Rd0000644000176200001440000001375214762561642020333 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/verify_SingleGrainData.R \name{verify_SingleGrainData} \alias{verify_SingleGrainData} \title{Verify single grain data sets and check for invalid grains, i.e. zero-light level grains} \usage{ verify_SingleGrainData( object, threshold = 10, use_fft = FALSE, cleanup = FALSE, cleanup_level = "aliquot", verbose = TRUE, plot = FALSE, ... ) } \arguments{ \item{object}{\linkS4class{Risoe.BINfileData} or \linkS4class{RLum.Analysis} (\strong{required}): input object. The function also accepts a list with objects of allowed type.} \item{threshold}{\link{numeric} (\emph{with default}): numeric threshold value for the allowed difference between the \code{mean} and the \code{var} of the count values (see details)} \item{use_fft}{\link{logical} (\emph{with default}): applies an additional approach based on \link[stats:fft]{stats::fft}. The threshold is fixed and cannot be changed.} \item{cleanup}{\link{logical} (\emph{with default}): if set to \code{TRUE}, curves/aliquots identified as zero light level curves/aliquots are automatically removed. Output is an object as same type as the input, i.e. either \linkS4class{Risoe.BINfileData} or \linkS4class{RLum.Analysis}} \item{cleanup_level}{\link{character} (\emph{with default}): selects the level for the clean-up of the input data sets. Two options are allowed: \code{"curve"} or \code{"aliquot"}: \itemize{ \item If \code{"curve"} is selected, every single curve marked as \code{invalid} is removed. \item If \code{"aliquot"} is selected, curves of one aliquot (grain or disc) can be marked as invalid, but will not be removed. An aliquot will be only removed if all curves of this aliquot are marked as invalid. }} \item{verbose}{\link{logical} (\emph{with default}): enable/disables output to the terminal.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{further parameters to control the plot output; if selected. Supported arguments \code{main}, \code{ylim}} } \value{ The function returns -----------------------------------\cr \verb{[ NUMERICAL OUTPUT ]}\cr -----------------------------------\cr \strong{\code{RLum.Results}}-object \strong{slot:****\verb{@data}} \tabular{lll}{ \strong{Element} \tab \strong{Type} \tab \strong{Description}\cr \verb{$unique_pairs} \tab \code{data.frame} \tab the unique position and grain pairs \cr \verb{$selection_id} \tab \code{numeric} \tab the selection as record ID \cr \verb{$selection_full} \tab \code{data.frame} \tab implemented models used in the baSAR-model core \cr } \strong{slot:****\verb{@info}} The original function call \strong{Output variation} For \code{cleanup = TRUE} the same object as the input is returned, but cleaned up (invalid curves were removed). This means: Either a \linkS4class{Risoe.BINfileData} or an \linkS4class{RLum.Analysis} object is returned in such cases. A \linkS4class{Risoe.BINfileData} object can be exported to a BINX-file by using the function \link{write_R2BIN}. } \description{ This function tries to identify automatically zero-light level curves (grains) from single grain data measurements. } \details{ \strong{How does the method work?} The function compares the expected values (\eqn{E(X)}) and the variance (\eqn{Var(X)}) of the count values for each curve. Assuming that the background roughly follows a Poisson distribution, the absolute difference of both values should be zero or at least around zero as \deqn{E(x) = Var(x) = \lambda} Thus the function checks for: \deqn{abs(E(x) - Var(x)) >= \Theta} With \eqn{\Theta} an arbitrary, user defined, threshold. Values above the threshold indicate curves comprising a signal. Note: the absolute difference of \eqn{E(X)} and \eqn{Var(x)} instead of the ratio was chosen as both terms can become 0 which would result in 0 or \code{Inf}, if the ratio is calculated. } \note{ This function can work with \linkS4class{Risoe.BINfileData} objects or \linkS4class{RLum.Analysis} objects (or a list of it). However, the function is highly optimised for \linkS4class{Risoe.BINfileData} objects as it make sense to remove identify invalid grains before the conversion to an \linkS4class{RLum.Analysis} object. The function checking for invalid curves works rather robust and it is likely that Reg0 curves within a SAR cycle are removed as well. Therefore it is strongly recommended to use the argument \code{cleanup = TRUE} carefully if the cleanup works only on curves. } \section{Function version}{ 0.2.5 } \examples{ ##01 - basic example I ##just show how to apply the function data(ExampleData.XSYG, envir = environment()) ##verify and get data.frame out of it verify_SingleGrainData(OSL.SARMeasurement$Sequence.Object)$selection_full ##02 - basic example II data(ExampleData.BINfileData, envir = environment()) id <- verify_SingleGrainData(object = CWOSL.SAR.Data, cleanup_level = "aliquot")$selection_id \dontrun{ ##03 - advanced example I ##importing and exporting a BIN-file ##select and import file file <- file.choose() object <- read_BIN2R(file) ##remove invalid aliquots(!) object <- verify_SingleGrainData(object, cleanup = TRUE) ##export to new BIN-file write_R2BIN(object, paste0(dirname(file),"/", basename(file), "_CLEANED.BIN")) } } \seealso{ \linkS4class{Risoe.BINfileData}, \linkS4class{RLum.Analysis}, \link{write_R2BIN}, \link{read_BIN2R} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. verify_SingleGrainData(): Verify single grain data sets and check for invalid grains, i.e. zero-light level grains. Function version 0.2.5. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{datagen} \keyword{manip} Luminescence/man/calc_EED_Model.Rd0000644000176200001440000001176614762561642016455 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_EED_Model.R \name{calc_EED_Model} \alias{calc_EED_Model} \title{Modelling Exponential Exposure Distribution} \usage{ calc_EED_Model( data, D0 = 120L, expected_dose, MinIndivDose = NULL, MaxIndivDose = NULL, kappa = NULL, sigma_distr = NULL, n.simul = 5000L, n.minSimExp = 50L, sample_name = "", method_control = list(), verbose = TRUE, plot = TRUE, ... ) } \arguments{ \item{data}{\link{data.frame} (\strong{required}): input data consisting of two columns, the De and the SE(De). Values are expected in Gy} \item{D0}{\link{integer} (\emph{with default}): D0 value (in Gy), defining the characterisation behaviour of the quartz.} \item{expected_dose}{\link{numeric} (\strong{required}): expected equivalent dose} \item{MinIndivDose}{\link{numeric} (\emph{with default}): value specifying the minimum dose taken into account for the plateau. \code{NULL} applies all values.} \item{MaxIndivDose}{\link{numeric} (\emph{with default}): value specifying the maximum dose taken into account for the plateau. \code{NULL} applies all values.} \item{kappa}{\link{numeric} (\emph{optional}): positive dimensionless exposure parameter characterising the bleaching state of the grains. Low values (< 10) indicate poor bleaching} \item{sigma_distr}{\link{numeric} (\emph{optional}): positive dose rate parameter, representing the dose variability to which the grains were exposed ##TODO perhaps it should be renamed} \item{n.simul}{\link{integer} (\emph{with default}): number of simulations} \item{n.minSimExp}{\link{integer} (\emph{with default}): number of MC runs for calculating the uncertainty contribution from the sampling} \item{sample_name}{\link{character} (\emph{with default}): name of the sample} \item{method_control}{\link{list} (\emph{with default}): additional deep control parameters, parameters need to be provided as named list, see details} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{further parameters that can be passed to better control the plot output. Support arguments are \code{xlab}, \code{xlim}.} } \description{ Modelling incomplete and heterogeneous bleaching of mobile grains partially exposed to the light, an implementation of the EED model proposed by Guibert et al. (2019). } \details{ The function is an implementation and enhancement of the scripts used in Guibert et al. (2019). The implementation supports a semi-automated estimation of the parameters \code{kappa} and \code{sigma_distr}. If set to \code{NULL}, a surface interpolation is used to estimated those values. \strong{Method control parameters} \tabular{llll}{ \strong{ARGUMENT} \tab \strong{FUNCTION} \tab \strong{DEFAULT} \tab \strong{DESCRIPTION}\cr \code{lower} \tab - \tab \code{c(0.1,0,0)} \tab set lower bounds for kappa, sigma, and the expected De in auto mode \cr \code{upper} \tab - \tab \code{c(1000,2)} \tab set upper bounds for kappa, sigma, and the expected De in auto mode \cr \code{iter_max} \tab - \tab \code{1000} \tab maximum number for iterations for used to find kappa and sigma \cr \code{trace} \tab - \tab \code{FALSE} \tab enable/disable terminal trace mode; overwritten by global argument \code{verbose}\cr \code{trace_plot} \tab - \tab \code{FALSE} \tab enable/disable additional trace plot output; overwritten by global argument \code{verbose} \cr } } \section{Function version}{ 0.1.0 } \examples{ data(ExampleData.MortarData, envir = environment()) calc_EED_Model( data = MortarData, kappa = 14, sigma_distr = 0.37, expected_dose = 11.7) ## automated estimation of ## sigma_distribution and ## kappa \dontrun{ calc_EED_Model( data = MortarData, kappa = NULL, sigma_distr = NULL, expected_dose = 11.7) } } \section{How to cite}{ Guibert, P., Kreutzer, S., 2025. calc_EED_Model(): Modelling Exponential Exposure Distribution. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Guibert, P., Christophe, C., Urbanova, P., Guérin, G., Blain, S., 2017. Modelling incomplete and heterogeneous bleaching of mobile grains partially exposed to the light - Towards a new tool for single grain OSL dating of poorly bleached mortars. Radiation Measurements 107, 48–57. \doi{10.1016/j.radmeas.2017.10.003} } \seealso{ \linkS4class{RLum.Results}, \link{calc_MinDose}, \link{calc_FuchsLang2001}, \link{calc_IEU}, \link{calc_FiniteMixture} } \author{ Pierre Guibert, IRAMAT-CRP2A, UMR 5060, Université Bordeaux Montaigne (France), Sebastian Kreutzer, Geography & Earth Sciences, Aberystwyth University (United Kingdom) , RLum Developer Team} \keyword{datagen} Luminescence/man/get_Layout.Rd0000644000176200001440000000433014762561642016057 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/get_Layout.R \name{get_Layout} \alias{get_Layout} \title{Collection of layout definitions} \usage{ get_Layout(layout) } \arguments{ \item{layout}{\link{character} or \link{list} object (\strong{required}): name of the layout definition to be returned. If name is provided the respective definition is returned. One of the following supported layout definitions is possible: \code{"default"}, \code{"journal.1"}, \code{"small"}, \code{"empty"}. User-specific layout definitions must be provided as a list object of predefined structure, see details.} } \value{ A list object with layout definitions for plot functions. } \description{ This helper function returns a list with layout definitions for homogeneous plotting. The easiest way to create a user-specific layout definition is perhaps to create either an empty or a default layout object and fill/modify the definitions (\code{user.layout <- get_Layout(data = "empty")}). } \section{Function version}{ 0.1 } \examples{ ## read example data set data(ExampleData.DeValues, envir = environment()) ## show structure of the default layout definition layout.default <- get_Layout(layout = "default") str(layout.default) ## show colour definitions for Abanico plot, only layout.default$abanico$colour ## set Abanico plot title colour to orange layout.default$abanico$colour$main <- "orange" ## create Abanico plot with modofied layout definition plot_AbanicoPlot(data = ExampleData.DeValues, layout = layout.default) ## create Abanico plot with predefined layout "journal" plot_AbanicoPlot(data = ExampleData.DeValues, layout = "journal") } \author{ Michael Dietze, GFZ Potsdam (Germany) , RLum Developer Team} \section{How to cite}{ Dietze, M., 2025. get_Layout(): Collection of layout definitions. Function version 0.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } Luminescence/man/ExampleData.ScaleGammaDose.Rd0000644000176200001440000000122114762557027020732 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{ExampleData.ScaleGammaDose} \alias{ExampleData.ScaleGammaDose} \title{Example data for scale_GammaDose()} \format{ A \code{\link{data.frame}}. Please see \code{?scale_GammaDose()} for a detailed description of its structure. } \description{ An example data set for the function \code{scale_GammaDose()} containing layer specific information to scale the gamma dose rate considering variations in soil radioactivity. } \section{Version}{ 0.1 } \examples{ ## Load data data("ExampleData.ScaleGammaDose", envir = environment()) } \keyword{datasets} Luminescence/man/ExampleData.DeValues.Rd0000644000176200001440000000441214762557027017642 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{ExampleData.DeValues} \alias{ExampleData.DeValues} \title{Example De data sets for the package Luminescence} \format{ A \link{list} with two elements, each containing a two column \link{data.frame}: \describe{ \verb{$BT998}: De and De error values for a fine grain quartz sample from a loess section in Rottewitz. \verb{$CA1}: Single grain De and De error values for a coarse grain quartz sample from a fluvial deposit in the rock shelter of Cueva Anton } } \description{ Equivalent dose (De) values measured for a fine grain quartz sample from a loess section in Rottewitz (Saxony/Germany) and for a coarse grain quartz sample from a fluvial deposit in the rock shelter of Cueva Anton (Murcia/Spain). } \examples{ ##(1) plot values as histogram data(ExampleData.DeValues, envir = environment()) plot_Histogram(ExampleData.DeValues$BT998, xlab = "De [s]") ##(2) plot values as histogram (with second to gray conversion) data(ExampleData.DeValues, envir = environment()) De.values <- convert_Second2Gray(ExampleData.DeValues$BT998, dose.rate = c(0.0438, 0.0019)) plot_Histogram(De.values, xlab = "De [Gy]") } \references{ \strong{BT998} Unpublished data \strong{CA1} Burow, C., Kehl, M., Hilgers, A., Weniger, G.-C., Angelucci, D., Villaverde, V., Zapata, J. and Zilhao, J. (2015). Luminescence dating of fluvial deposits in the rock shelter of Cueva Anton, Spain. Geochronometria 52, 107-125. \strong{BT998} \tabular{ll}{ Lab: \tab Luminescence Laboratory Bayreuth\cr Lab-Code: \tab BT998\cr Location: \tab Rottewitz (Saxony/Germany)\cr Material: \tab Fine grain quartz measured on aluminium discs on a Risø TL/OSL DA-15 reader\cr Units: \tab Values are given in seconds \cr Dose Rate: \tab Dose rate of the beta-source at measurement ca. 0.0438 Gy/s +/- 0.0019 Gy/s\cr Measurement Date: \tab 2012-01-27 } \strong{CA1} \tabular{ll}{ Lab: \tab Cologne Luminescence Laboratory (CLL)\cr Lab-Code: \tab C-L2941\cr Location: \tab Cueva Anton (Murcia/Spain)\cr Material: \tab Coarse grain quartz (200-250 microns) measured on single grain discs on a Risoe TL/OSL DA-20 reader\cr Units: \tab Values are given in Gray \cr Measurement Date: \tab 2012 } } \keyword{datasets} Luminescence/man/set_Risoe.BINfileData.Rd0000644000176200001440000000270414762561642017743 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-generics.R \name{set_Risoe.BINfileData} \alias{set_Risoe.BINfileData} \title{General setter function for Risoe.BINfileData objects} \usage{ set_Risoe.BINfileData( METADATA = data.frame(), DATA = list(), .RESERVED = list() ) } \arguments{ \item{METADATA}{x} \item{DATA}{x} \item{.RESERVED}{x} } \value{ A \linkS4class{Risoe.BINfileData} object. } \description{ The function provides a generalised access point for specific \linkS4class{Risoe.BINfileData} objects. Depending on the input object, the corresponding function will be selected. Allowed arguments can be found in the documentations of the corresponding \linkS4class{Risoe.BINfileData} class. } \section{Function version}{ 0.1 } \seealso{ \linkS4class{Risoe.BINfileData} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. set_Risoe.BINfileData(): General setter function for Risoe.BINfileData objects. Function version 0.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{utilities} Luminescence/man/calc_OSLLxTxDecomposed.Rd0000644000176200001440000000640514762561642020212 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_OSLLxTxDecomposed.R \name{calc_OSLLxTxDecomposed} \alias{calc_OSLLxTxDecomposed} \title{Calculate Lx/Tx ratio for decomposed CW-OSL signal components} \usage{ calc_OSLLxTxDecomposed( Lx.data, Tx.data = NULL, OSL.component = 1L, sig0 = 0, digits = NULL ) } \arguments{ \item{Lx.data}{\link{data.frame} (\strong{required}): Component table created by \code{OSLdecomposition::RLum.OSL_decomposition} and per default located at \code{object@records[[...]]@info$COMPONENTS}.The value of \verb{$n[OSL.component]} is set as \code{LnLx}. The value of \verb{$n.error[OSL.component]} is set as \code{LnLx.error}} \item{Tx.data}{\link{data.frame} (\emph{optional}): Component table created by \code{OSLdecomposition::RLum.OSL_decomposition} and per default located at \code{object@records[[...]]@info$COMPONENTS}. The value of \verb{$n[OSL.component]} is set as \code{TnTx}. The value of \verb{$n.error[OSL.component]} is set as \code{TnTx.error}} \item{OSL.component}{\link{integer} or \link{character} (\emph{optional}): a single index or a name describing which OSL signal component shall be evaluated. This argument can either be the name of the OSL component assigned by \code{OSLdecomposition::RLum.OSL_global_fitting} or the index of component. Then \code{'1'} selects the fastest decaying component, \code{'2'} the second fastest and so on. If not defined, the fastest decaying component is selected.} \item{sig0}{\link{numeric} (\emph{with default}): allows adding an extra error component to the final \code{Lx/Tx} error value (e.g., instrumental error).} \item{digits}{\link{integer} (\emph{with default}): round numbers to the specified digits. If digits is set to \code{NULL} nothing is rounded.} } \value{ Returns an S4 object of type \linkS4class{RLum.Results}. Slot \code{data} contains a \link{list} with the following structure: \strong{@data} \if{html}{\out{
}}\preformatted{$LxTx.table (data.frame) .. $ LnLx .. $ TnTx .. $ Net_LnLx .. $ Net_LnLx.Error .. $ Net_TnTx .. $ Net_TnTx.Error .. $ LxTx .. $ LxTx.relError .. $ LxTx.Error }\if{html}{\out{
}} } \description{ Calculate \code{Lx/Tx} ratios from a given set of decomposed CW-OSL curves decomposed by \code{OSLdecomposition::RLum.OSL_decomposition}. } \section{Function version}{ 0.1.0 } \section{How to cite}{ Mittelstrass, D., 2025. calc_OSLLxTxDecomposed(): Calculate Lx/Tx ratio for decomposed CW-OSL signal components. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Mittelstrass D., Schmidt C., Beyer J., Straessner A., 2019. Automated identification and separation of quartz CW-OSL signal components with R. talk presented at DLED 2019, Bingen, Germany \url{http://luminescence.de/OSLdecomp_talk.pdf}\cr } \seealso{ \linkS4class{RLum.Data.Curve}, \link{fit_DoseResponseCurve}, \link{analyse_SAR.CWOSL} } \author{ Dirk Mittelstrass , RLum Developer Team} \keyword{datagen} Luminescence/man/plot_DRTResults.Rd0000644000176200001440000001623114762561642017017 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_DRTResults.R \name{plot_DRTResults} \alias{plot_DRTResults} \title{Visualise dose recovery test results} \usage{ plot_DRTResults( values, given.dose = NULL, error.range = 10, preheat, boxplot = FALSE, mtext, summary, summary.pos, legend, legend.pos, par.local = TRUE, na.rm = FALSE, ... ) } \arguments{ \item{values}{\linkS4class{RLum.Results} or \link{data.frame} (\strong{required}): input values containing at least De and De error. To plot more than one data set in one figure, a \code{list} of the individual data sets must be provided (e.g. \code{list(dataset.1, dataset.2)}).} \item{given.dose}{\link{numeric} (\emph{optional}): given dose used for the dose recovery test to normalise data. If only one given dose is provided this given dose is valid for all input data sets (i.e., \code{values} is a list). Otherwise a given dose for each input data set has to be provided (e.g., \code{given.dose = c(100,200)}). If \code{given.dose} in \code{NULL} the values are plotted without normalisation (might be useful for preheat plateau tests). \strong{Note:} Unit has to be the same as from the input values (e.g., Seconds or Gray).} \item{error.range}{\link{numeric}: symmetric error range in percent will be shown as dashed lines in the plot. Set \code{error.range} to 0 to void plotting of error ranges.} \item{preheat}{\link{numeric}: optional vector of preheat temperatures to be used for grouping the De values. If specified, the temperatures are assigned to the x-axis.} \item{boxplot}{\link{logical} (\emph{with default}): plot values that are grouped by preheat temperature as boxplots. Only possible when \code{preheat} vector is specified.} \item{mtext}{\link{character}: additional text below the plot title.} \item{summary}{\link{character} (\emph{optional}): adds numerical output to the plot. Can be one or more out of: \itemize{ \item \code{"n"} (number of samples), \item \code{"mean"} (mean De value), \item \code{"weighted$mean"} (error-weighted mean), \item \code{"median"} (median of the De values), \item \code{"sd.rel"} (relative standard deviation in percent), \item \code{"sd.abs"} (absolute standard deviation), \item \code{"se.rel"} (relative standard error) and \item \code{"se.abs"} (absolute standard error) } and all other measures returned by the function \link{calc_Statistics}.} \item{summary.pos}{\link{numeric} or \link{character} (\emph{with default}): optional position coordinates or keyword (e.g. \code{"topright"}) for the statistical summary. Alternatively, the keyword \code{"sub"} may be specified to place the summary below the plot header. However, this latter option in only possible if \code{mtext} is not used.} \item{legend}{\link{character} vector (\emph{optional}): legend content to be added to the plot.} \item{legend.pos}{\link{numeric} or \link{character} (\emph{with default}): optional position coordinates or keyword (e.g. \code{"topright"}) for the legend to be plotted.} \item{par.local}{\link{logical} (\emph{with default}): use local graphical parameters for plotting, e.g. the plot is shown in one column and one row. If \code{par.local = FALSE}, global parameters are inherited, i.e. parameters provided via \code{par()} work} \item{na.rm}{\link{logical} (\emph{with default}): indicating whether \code{NA} values are removed before plotting from the input data set} \item{...}{further arguments and graphical parameters passed to \link{plot}, supported are: \code{xlab}, \code{ylab}, \code{xlim}, \code{ylim}, \code{main}, \code{cex}, \code{las} and `pch``} } \value{ A plot is returned. } \description{ The function provides a standardised plot output for dose recovery test measurements. } \details{ Procedure to test the accuracy of a measurement protocol to reliably determine the dose of a specific sample. Here, the natural signal is erased and a known laboratory dose administered which is treated as unknown. Then the De measurement is carried out and the degree of congruence between administered and recovered dose is a measure of the protocol's accuracy for this sample.\cr In the plot the normalised De is shown on the y-axis, i.e. obtained De/Given Dose. } \note{ Further data and plot arguments can be added by using the appropriate R commands. } \section{Function version}{ 0.1.14 } \examples{ ## read example data set and misapply them for this plot type data(ExampleData.DeValues, envir = environment()) ## plot values plot_DRTResults( values = ExampleData.DeValues$BT998[7:11,], given.dose = 2800, mtext = "Example data") ## plot values with legend plot_DRTResults( values = ExampleData.DeValues$BT998[7:11,], given.dose = 2800, legend = "Test data set") ## create and plot two subsets with randomised values x.1 <- ExampleData.DeValues$BT998[7:11,] x.2 <- ExampleData.DeValues$BT998[7:11,] * c(runif(5, 0.9, 1.1), 1) plot_DRTResults( values = list(x.1, x.2), given.dose = 2800) ## some more user-defined plot parameters plot_DRTResults( values = list(x.1, x.2), given.dose = 2800, pch = c(2, 5), col = c("orange", "blue"), xlim = c(0, 8), ylim = c(0.85, 1.15), xlab = "Sample aliquot") ## plot the data with user-defined statistical measures as legend plot_DRTResults( values = list(x.1, x.2), given.dose = 2800, summary = c("n", "weighted$mean", "sd.abs")) ## plot the data with user-defined statistical measures as sub-header plot_DRTResults( values = list(x.1, x.2), given.dose = 2800, summary = c("n", "weighted$mean", "sd.abs"), summary.pos = "sub") ## plot the data grouped by preheat temperatures plot_DRTResults( values = ExampleData.DeValues$BT998[7:11,], given.dose = 2800, preheat = c(200, 200, 200, 240, 240)) ## read example data set and misapply them for this plot type data(ExampleData.DeValues, envir = environment()) ## plot values plot_DRTResults( values = ExampleData.DeValues$BT998[7:11,], given.dose = 2800, mtext = "Example data") ## plot two data sets grouped by preheat temperatures plot_DRTResults( values = list(x.1, x.2), given.dose = 2800, preheat = c(200, 200, 200, 240, 240)) ## plot the data grouped by preheat temperatures as boxplots plot_DRTResults( values = ExampleData.DeValues$BT998[7:11,], given.dose = 2800, preheat = c(200, 200, 200, 240, 240), boxplot = TRUE) } \section{How to cite}{ Kreutzer, S., Dietze, M., 2025. plot_DRTResults(): Visualise dose recovery test results. Function version 0.1.14. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Wintle, A.G., Murray, A.S., 2006. A review of quartz optically stimulated luminescence characteristics and their relevance in single-aliquot regeneration dating protocols. Radiation Measurements, 41, 369-391. } \seealso{ \link{plot} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr Michael Dietze, GFZ Potsdam (Germany) , RLum Developer Team} \keyword{dplot} Luminescence/man/plot_Risoe.BINfileData.Rd0000644000176200001440000001114414762561642020124 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_Risoe.BINfileData.R \name{plot_Risoe.BINfileData} \alias{plot_Risoe.BINfileData} \title{Plot Single Luminescence Curves from a Risoe.BINfileData-class object} \usage{ plot_Risoe.BINfileData( data, position, run, set, sorter = "POSITION", ltype = c("IRSL", "OSL", "TL", "RIR", "RBR", "RL"), curve.transformation = "None", dose_rate, temp.lab, cex.global = 1, ... ) } \arguments{ \item{data}{\linkS4class{Risoe.BINfileData} (\strong{required}): requires an S4 object returned by the \link{read_BIN2R} function.} \item{position}{\link{vector} (\emph{optional}): option to limit the plotted curves by position (e.g. \code{position = 1}, \code{position = c(1,3,5)}).} \item{run}{\link{vector} (\emph{optional}): option to limit the plotted curves by run (e.g., \code{run = 1}, \code{run = c(1,3,5)}).} \item{set}{\link{vector} (\emph{optional}): option to limit the plotted curves by set (e.g., \code{set = 1}, \code{set = c(1,3,5)}).} \item{sorter}{\link{character} (\emph{with default}): the plot output can be ordered by "POSITION","SET" or "RUN". POSITION, SET and RUN are options defined in the Risoe Sequence Editor.} \item{ltype}{\link{character} (\emph{with default}): option to limit the plotted curves by the type of luminescence stimulation. Allowed values: \code{"IRSL"}, \code{"OSL"},\code{"TL"}, \code{"RIR"}, \code{"RBR"} (corresponds to LM-OSL), \code{"RL"}. All type of curves are plotted by default.} \item{curve.transformation}{\link{character} (\emph{optional}): allows transforming CW-OSL and CW-IRSL curves to pseudo-LM curves via transformation functions. Allowed values are: \code{CW2pLM}, \code{CW2pLMi}, \code{CW2pHMi} and \code{CW2pPMi}, see details. If set to \code{None} (default), no transformation is applied.} \item{dose_rate}{\link{numeric} (\emph{optional}): dose rate of the irradiation source at the measurement date. If set, the given irradiation dose will be shown in Gy. See details.} \item{temp.lab}{\link{character} (\emph{optional}): option to allow for different temperature units. If no value is set deg. C is chosen.} \item{cex.global}{\link{numeric} (\emph{with default}): global scaling factor.} \item{...}{further undocumented plot arguments.} } \value{ Returns a plot. } \description{ Plots single luminescence curves from an object returned by the \link{read_BIN2R} function \linkS4class{Risoe.BINfileData} } \details{ \strong{Nomenclature} See \linkS4class{Risoe.BINfileData} \strong{curve.transformation} This argument allows transforming continuous wave (CW) curves to pseudo (linear) modulated curves. For the transformation, the functions of the package are used. Currently, it is not possible to pass further arguments to the transformation functions. The argument works only for \code{ltype} \code{OSL} and \code{IRSL}. \strong{Irradiation time} Plotting the irradiation time (s) or the given dose (Gy) requires that the variable \code{IRR_TIME} has been set within the BIN-file. This is normally done by using the 'Run Info' option within the Sequence Editor or by editing in R. } \note{ The function has been successfully tested for the Sequence Editor file output version 3 and 4. } \section{Function version}{ 0.4.2 } \examples{ ##load data data(ExampleData.BINfileData, envir = environment()) ##plot all curves from the first position to the desktop #pdf(file = "~/Desktop/CurveOutput.pdf", paper = "a4", height = 11, onefile = TRUE) ##example - load from *.bin file #BINfile<- file.choose() #BINfileData<-read_BIN2R(BINfile) #par(mfrow = c(4,3), oma = c(0.5,1,0.5,1)) #plot_Risoe.BINfileData(CWOSL.SAR.Data,position = 1) #mtext(side = 4, BINfile, outer = TRUE, col = "blue", cex = .7) #dev.off() } \section{How to cite}{ Kreutzer, S., Dietze, M., 2025. plot_Risoe.BINfileData(): Plot Single Luminescence Curves from a Risoe.BINfileData-class object. Function version 0.4.2. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Duller, G., 2007. Analyst. pp. 1-45. } \seealso{ \linkS4class{Risoe.BINfileData}, \link{read_BIN2R}, \link{convert_CW2pLM}, \link{convert_CW2pLMi}, \link{convert_CW2pPMi}, \link{convert_CW2pHMi} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr Michael Dietze, GFZ Potsdam (Germany) , RLum Developer Team} \keyword{dplot} Luminescence/man/calc_AliquotSize.Rd0000644000176200001440000001537614762561642017212 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_AliquotSize.R \name{calc_AliquotSize} \alias{calc_AliquotSize} \title{Estimate the amount of grains on an aliquot} \usage{ calc_AliquotSize( grain.size, sample.diameter, packing.density = 0.65, MC = TRUE, grains.counted, plot = TRUE, ... ) } \arguments{ \item{grain.size}{\link{numeric} (\strong{required}): mean grain size (microns) or a range of grain sizes from which the mean grain size is computed (e.g. \code{c(100,200)}).} \item{sample.diameter}{\link{numeric} (\strong{required}): diameter (mm) of the targeted area on the sample carrier.} \item{packing.density}{\link{numeric} (\emph{with default}): empirical value for mean packing density. \cr If \code{packing.density = "Inf"} a hexagonal structure on an infinite plane with a packing density of \eqn{0.906\ldots} is assumed.} \item{MC}{\link{logical} (\emph{optional}): if \code{TRUE} the function performs a Monte Carlo simulation for estimating the amount of grains on the sample carrier and assumes random errors in grain size distribution and packing density. Requires a vector with min and max grain size for \code{grain.size}. For more information see details.} \item{grains.counted}{\link{numeric} (\emph{optional}): grains counted on a sample carrier. If a non-zero positive integer is provided this function will calculate the packing density of the aliquot. If more than one value is provided the mean packing density and its standard deviation is calculated. Note that this overrides \code{packing.density}.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{further arguments to pass (\verb{main, xlab, MC.iter}).} } \value{ Returns a terminal output. In addition an \linkS4class{RLum.Results} object is returned containing the following element: \item{.$summary}{\link{data.frame} summary of all relevant calculation results.} \item{.$args}{\link{list} used arguments} \item{.$call}{\link{call} the function call} \item{.$MC}{\link{list} results of the Monte Carlo simulation} The output should be accessed using the function \link{get_RLum}. } \description{ Estimate the number of grains on an aliquot. Alternatively, the packing density of an aliquot is computed. This function can be used to either estimate the number of grains on an aliquot or to compute the packing density depending on the arguments provided. The following function is used to estimate the number of grains \code{n}: \deqn{n = (\pi*x^2)/(\pi*y^2)*d} where \code{x} is the radius of the aliquot size (microns), \code{y} is the mean radius of the mineral grains (mm) and \code{d} is the packing density (value between 0 and 1). \strong{Packing density} The default value for \code{packing.density} is 0.65, which is the mean of empirical values determined by Heer et al. (2012) and unpublished data from the Cologne luminescence laboratory. If \code{packing.density = "Inf"} a maximum density of \eqn{\pi/\sqrt12 = 0.9068\ldots} is used. However, note that this value is not appropriate as the standard preparation procedure of aliquots resembles a PECC (\emph{"Packing Equal Circles in a Circle"}) problem where the maximum packing density is asymptotic to about 0.87. \strong{Monte Carlo simulation} The number of grains on an aliquot can be estimated by Monte Carlo simulation when setting \code{MC = TRUE}. Each of the parameters necessary to calculate \code{n} (\code{x}, \code{y}, \code{d}) are assumed to be normally distributed with means \eqn{\mu_x, \mu_y, \mu_d} and standard deviations \eqn{\sigma_x, \sigma_y, \sigma_d}. For the mean grain size random samples are taken first from \eqn{N(\mu_y, \sigma_y)}, where \eqn{\mu_y = mean.grain.size} and \eqn{\sigma_y = (max.grain.size-min.grain.size)/4} so that 95\% of all grains are within the provided the grain size range. This effectively takes into account that after sieving the sample there is still a small chance of having grains smaller or larger than the used mesh sizes. For each random sample the mean grain size is calculated, from which random subsamples are drawn for the Monte Carlo simulation. The packing density is assumed to be normally distributed with an empirically determined \eqn{\mu = 0.65} (or provided value) and \eqn{\sigma = 0.18}. The normal distribution is truncated at \code{d = 0.87} as this is approximately the maximum packing density that can be achieved in PECC problem. The sample diameter has \eqn{\mu = sample.diameter} and \eqn{\sigma = 0.2} to take into account variations in sample disc preparation (i.e. applying silicon spray to the disc). A lower truncation point at \code{x = 0.5} is used, which assumes that aliquots with smaller sample diameters of 0.5 mm are discarded. Likewise, the normal distribution is truncated at 9.8 mm, which is the diameter of the sample disc. For each random sample drawn from the normal distributions the amount of grains on the aliquot is calculated. By default, \code{10^5} iterations are used, but can be reduced/increased with \code{MC.iter} (see \code{...}). The results are visualised in a bar- and boxplot together with a statistical summary. } \section{Function version}{ 0.31 } \examples{ ## Estimate the amount of grains on a small aliquot calc_AliquotSize(grain.size = c(100,150), sample.diameter = 1, MC.iter = 100) ## Calculate the mean packing density of large aliquots calc_AliquotSize(grain.size = c(100,200), sample.diameter = 8, grains.counted = c(2525,2312,2880), MC.iter = 100) } \section{How to cite}{ Burow, C., 2025. calc_AliquotSize(): Estimate the amount of grains on an aliquot. Function version 0.31. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Duller, G.A.T., 2008. Single-grain optical dating of Quaternary sediments: why aliquot size matters in luminescence dating. Boreas 37, 589-612. Heer, A.J., Adamiec, G., Moska, P., 2012. How many grains are there on a single aliquot?. Ancient TL 30, 9-16. \strong{Further reading} Chang, H.-C., Wang, L.-C., 2010. A simple proof of Thue's Theorem on Circle Packing. \url{https://arxiv.org/pdf/1009.4322v1}, 2013-09-13. Graham, R.L., Lubachevsky, B.D., Nurmela, K.J., Oestergard, P.R.J., 1998. Dense packings of congruent circles in a circle. Discrete Mathematics 181, 139-154. Huang, W., Ye, T., 2011. Global optimization method for finding dense packings of equal circles in a circle. European Journal of Operational Research 210, 474-481. } \author{ Christoph Burow, University of Cologne (Germany) , RLum Developer Team} Luminescence/man/calc_SourceDoseRate.Rd0000644000176200001440000001425414762561642017622 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_SourceDoseRate.R \name{calc_SourceDoseRate} \alias{calc_SourceDoseRate} \title{Calculation of the source dose rate via the date of measurement} \usage{ calc_SourceDoseRate( measurement.date = Sys.Date(), calib.date, calib.dose.rate, calib.error, source.type = "Sr-90", dose.rate.unit = "Gy/s", predict = NULL ) } \arguments{ \item{measurement.date}{\link{character} or \link{Date} (\emph{with default}): Date of measurement in \code{"YYYY-MM-DD"}. If no value is provided, the date will be set to today. The argument can be provided as vector.} \item{calib.date}{\link{character} or \link{Date} (\strong{required}): date of source calibration in \code{"YYYY-MM-DD"}} \item{calib.dose.rate}{\link{numeric} (\strong{required}): dose rate at date of calibration in Gy/s or Gy/min} \item{calib.error}{\link{numeric} (\strong{required}): error of dose rate at date of calibration Gy/s or Gy/min} \item{source.type}{\link{character} (\emph{with default}): specify irradiation source (\code{Sr-90}, \code{Co-60}, \code{Cs-137}, \code{Am-214}), see details for further information} \item{dose.rate.unit}{\link{character} (\emph{with default}): specify dose rate unit for input (\code{Gy/min} or \code{Gy/s}), the output is given in Gy/s as valid for the function \link{convert_Second2Gray}} \item{predict}{\link{integer} (\emph{with default}): option allowing to predict the dose rate of the source over time in days set by the provided value. Starting date is the value set with \code{measurement.date}, e.g., \code{calc_SourceDoseRate(..., predict = 100)} calculates the source dose rate for the next 100 days.} } \value{ Returns an S4 object of type \linkS4class{RLum.Results}. Slot \code{data} contains a \link{list} with the following structure: \if{html}{\out{
}}\preformatted{$ dose.rate (data.frame) .. $ dose.rate .. $ dose.rate.error .. $ date (corresponding measurement date) $ parameters (list) .. $ source.type .. $ halflife .. $ dose.rate.unit $ call (the original function call) }\if{html}{\out{
}} The output should be accessed using the function \link{get_RLum}. A plot method of the output is provided via \link{plot_RLum}. } \description{ Calculating the dose rate of the irradiation source via the date of measurement based on: source calibration date, source dose rate, dose rate error. The function returns a data.frame that provides the input argument dose_rate for the function \link{convert_Second2Gray}. Calculation of the source dose rate based on the time elapsed since the last calibration of the irradiation source. Decay parameters assume a Sr-90 beta source. \deqn{dose.rate = D0 * exp(-log(2) / T.1/2 * t)} \cr with: D0 <- calibration dose rate T.1/2 <- half-life of the source nuclide (here in days) t <- time since source calibration (in days) log(2) / T.1/2 equals the decay constant lambda Information on the date of measurements may be taken from the data's original .BIN file (using e.g., \code{BINfile <- readBIN2R()} and the slot \code{BINfile@METADATA$DATE}) \strong{Allowed source types and related values} \tabular{rllll}{ \strong{#} \tab \strong{Source type} \tab \strong{T.1/2} \tab \strong{Reference} \cr \verb{[1]} \tab Sr-90 \tab 28.90 y \tab NNDC, Brookhaven National Laboratory \cr \verb{[2]}\tab Am-214 \tab 432.6 y \tab NNDC, Brookhaven National Laboratory \cr \verb{[3]} \tab Co-60 \tab 5.274 y \tab NNDC, Brookhaven National Laboratory \cr \verb{[4} \tab Cs-137 \tab 30.08 y \tab NNDC, Brookhaven National Laboratory} } \note{ Please be careful when using the option \code{predict}, especially when a multiple set for \code{measurement.date} and \code{calib.date} is provided. For the source dose rate prediction, the function takes the last \code{measurement.date} value and predicts from that the source dose rate for the number of days requested, that is: the (multiple) original input will be replaced. However, the function does not change entries for the calibration dates, but mixes them up. Therefore, it is not recommended to use this option when multiple calibration dates (\code{calib.date}) are provided. } \section{Function version}{ 0.3.2 } \examples{ ##(1) Simple function usage ##Basic calculation of the dose rate for a specific date dose.rate <- calc_SourceDoseRate(measurement.date = "2012-01-27", calib.date = "2014-12-19", calib.dose.rate = 0.0438, calib.error = 0.0019) ##show results get_RLum(dose.rate) ##(2) Usage in combination with another function (e.g., convert_Second2Gray() ) ## load example data data(ExampleData.DeValues, envir = environment()) ## use the calculated variable dose.rate as input argument ## to convert De(s) to De(Gy) convert_Second2Gray(ExampleData.DeValues$BT998, dose.rate) ##(3) source rate prediction and plotting dose.rate <- calc_SourceDoseRate(measurement.date = "2012-01-27", calib.date = "2014-12-19", calib.dose.rate = 0.0438, calib.error = 0.0019, predict = 1000) plot_RLum(dose.rate) ##(4) export output to a LaTeX table (example using the package 'xtable') \dontrun{ xtable::xtable(get_RLum(dose.rate)) } } \section{How to cite}{ Fuchs, M.C., Kreutzer, S., 2025. calc_SourceDoseRate(): Calculation of the source dose rate via the date of measurement. Function version 0.3.2. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ NNDC, Brookhaven National Laboratory \verb{http://www.nndc.bnl.gov/} } \seealso{ \link{convert_Second2Gray}, \link{get_RLum}, \link{plot_RLum} } \author{ Margret C. Fuchs, HZDR, Helmholtz-Institute Freiberg for Resource Technology (Germany) \cr Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{manip} Luminescence/man/RLum.Data.Image-class.Rd0000644000176200001440000001116414762561642017621 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/RLum.Data.Image-class.R \docType{class} \name{RLum.Data.Image-class} \alias{RLum.Data.Image-class} \alias{show,RLum.Data.Image-method} \alias{set_RLum,RLum.Data.Image-method} \alias{get_RLum,RLum.Data.Image-method} \alias{names_RLum,RLum.Data.Image-method} \title{Class \code{"RLum.Data.Image"}} \usage{ \S4method{show}{RLum.Data.Image}(object) \S4method{set_RLum}{RLum.Data.Image}( class, originator, .uid, .pid, recordType = "Image", curveType = NA_character_, data = array(), info = list() ) \S4method{get_RLum}{RLum.Data.Image}(object, info.object) \S4method{names_RLum}{RLum.Data.Image}(object) } \arguments{ \item{object}{\code{\link{get_RLum}}, \code{\link{names_RLum}} (\strong{required}): an object of class \linkS4class{RLum.Data.Image}} \item{class}{\code{\link{set_RLum}}; \link{character}: name of the \code{RLum} class to create} \item{originator}{\code{\link{set_RLum}}; \link{character} (\emph{automatic}): contains the name of the calling function (the function that produces this object); can be set manually.} \item{.uid}{\code{\link{set_RLum}}; \link{character} (\emph{automatic}): sets an unique ID for this object using the internal C++ function \code{create_UID}.} \item{.pid}{\code{\link{set_RLum}}; \link{character} (\emph{with default}): option to provide a parent id for nesting at will.} \item{recordType}{\code{\link{set_RLum}}; \link{character}: record type (e.g. "OSL")} \item{curveType}{\code{\link{set_RLum}}; \link{character}: curve type (e.g. "predefined" or "measured")} \item{data}{\code{\link{set_RLum}}; \link{matrix}: raw curve data. If data is of type \code{RLum.Data.Image} this can be used to re-construct the object, i.e. modified parameters except \code{.uid} and \code{.pid}. The rest will be subject to copy and paste unless provided.} \item{info}{\code{\link{set_RLum}}; \link{list}: info elements} \item{info.object}{\code{\link{get_RLum}}; \link{character}: name of the info object to returned} } \value{ \strong{\code{set_RLum}} Returns an object from class \code{RLum.Data.Image} \strong{\code{get_RLum}} \enumerate{ \item Returns the data object (\link{array}) \item only the info object if \code{info.object} was set. } \strong{\code{names_RLum}} Returns the names of the info elements } \description{ Class for representing luminescence image data (TL/OSL/RF). Such data are for example produced by the function \link{read_SPE2R} } \section{Methods (by generic)}{ \itemize{ \item \code{show(RLum.Data.Image)}: Show structure of \code{RLum.Data.Image} object \item \code{set_RLum(RLum.Data.Image)}: Construction method for RLum.Data.Image object. The slot info is optional and predefined as empty list by default. \item \code{get_RLum(RLum.Data.Image)}: Accessor method for \code{RLum.Data.Image} object. The argument \code{info.object} is optional to directly access the info elements. If no info element name is provided, the raw image data (\code{array}) will be returned. \item \code{names_RLum(RLum.Data.Image)}: Returns the names info elements coming along with this curve object }} \section{Slots}{ \describe{ \item{\code{recordType}}{Object of class \link{character} containing the type of the curve (e.g. "OSL image", "TL image")} \item{\code{curveType}}{Object of class \link{character} containing curve type, allowed values are measured or predefined} \item{\code{data}}{Object of class \link{array} containing image data.} \item{\code{info}}{Object of class \link{list} containing further meta information objects} }} \note{ The class should only contain data for a set of images. For additional elements the slot \code{info} can be used. } \section{Objects from the class}{ Objects can be created by calls of the form \code{set_RLum("RLum.Data.Image", ...)}. } \section{Class version}{ 0.5.1 } \examples{ showClass("RLum.Data.Image") ##create empty RLum.Data.Image object set_RLum(class = "RLum.Data.Image") } \seealso{ \linkS4class{RLum}, \linkS4class{RLum.Data}, \link{plot_RLum}, \link{read_SPE2R}, \link{read_TIFF2R} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. RLum.Data.Image-class(): Class 'RLum.Data.Image'. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{classes} \keyword{internal} Luminescence/man/analyse_Al2O3C_Measurement.Rd0000644000176200001440000001525114762561642020753 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/analyse_Al2O3C_Measurement.R \name{analyse_Al2O3C_Measurement} \alias{analyse_Al2O3C_Measurement} \title{Al2O3:C Passive Dosimeter Measurement Analysis} \usage{ analyse_Al2O3C_Measurement( object, signal_integral = NULL, dose_points = c(0, 4), recordType = c("OSL (UVVIS)", "TL (UVVIS)"), calculate_TL_dose = FALSE, irradiation_time_correction = NULL, cross_talk_correction = NULL, travel_dosimeter = NULL, test_parameters = NULL, verbose = TRUE, plot = TRUE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Analysis} (\strong{required}): measurement input} \item{signal_integral}{\link{numeric} (\emph{optional}): signal integral, used for the signal and the background. Example: \code{c(1:10)} for the first 10 channels. If nothing is provided the full range is used} \item{dose_points}{\link{numeric} (\emph{with default}): vector with dose points, if dose points are repeated, only the general pattern needs to be provided. Default values follow the suggestions made by Kreutzer et al., 2018} \item{recordType}{\link{character} (\emph{with default}): input curve selection, which is passed to function \link{get_RLum}. To deactivate the automatic selection set the argument to \code{NULL}} \item{calculate_TL_dose}{\link{logical} (\emph{with default}): enables/disable experimental dose estimation based on the TL curves. It is computed as the ratio of the peak sums of each curves +/- 5 channels.} \item{irradiation_time_correction}{\link{numeric} or \linkS4class{RLum.Results} (\emph{optional}): information on the used irradiation time correction obtained by another experiments. If a \code{numeric} is provided it has to be of length two: mean, standard error} \item{cross_talk_correction}{\link{numeric} or \linkS4class{RLum.Results} (\emph{optional}): information on the used irradiation time correction obtained by another experiments. If a \code{numeric} vector is provided it has to be of length three: mean, 2.5 \% quantile, 97.5 \% quantile.} \item{travel_dosimeter}{\link{numeric} (\emph{optional}): specify the position of the travel dosimeter (so far measured at the same time). The dose of travel dosimeter will be subtracted from all other values.} \item{test_parameters}{\link{list} (\emph{with default}): set test parameters. Supported parameters are: \code{TL_peak_shift} All input: \link{numeric} values, \code{NA} and \code{NULL} (see details).} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output. If \code{object} is of type \link{list}, a numeric vector can be provided to limit the plot output to certain aliquots.} \item{...}{further arguments that can be passed to the plot output, supported are \code{norm}, \code{main}, \code{mtext}, \code{title} (for self-call mode to specify, e.g., sample names)} } \value{ Function returns results numerically and graphically: -----------------------------------\cr \verb{[ NUMERICAL OUTPUT ]}\cr -----------------------------------\cr \strong{\code{RLum.Results}}-object \strong{slot:} \strong{\verb{@data}} \tabular{lll}{ \strong{Element} \tab \strong{Type} \tab \strong{Description}\cr \verb{$data} \tab \code{data.frame} \tab the estimated equivalent dose \cr \verb{$data_table} \tab \code{data.frame} \tab full dose and signal table \cr \code{test_parameters} \tab \code{data.frame} \tab results with test parameters \cr \code{data_TDcorrected} \tab \code{data.frame} \tab travel dosimeter corrected results (only if TD was provided)\cr } \emph{Note: If correction the irradiation time and the cross-talk correction method is used, the De values in the table \code{data} table are already corrected, i.e. if you want to get an uncorrected value, you can use the column \code{CT_CORRECTION} remove the correction} \strong{slot:} \strong{\verb{@info}} The original function call ------------------------\cr \verb{[ PLOT OUTPUT ]}\cr ------------------------\cr \itemize{ \item OSL and TL curves, combined on two plots. } } \description{ The function provides the analysis routines for measurements on a FI lexsyg SMART reader using Al2O3:C chips according to Kreutzer et al., 2018 } \details{ \strong{Working with a travel dosimeter} The function allows to define particular position numbers as travel dosimeters. For example: \code{travel_dosimeter = c(1,3,5)} sets positions 1, 3 and 5 as travel dosimeters. These dose values #' of this dosimeters are combined and automatically subtracted from the obtained dose values of the other dosimeters. \strong{Calculate TL dose} The argument \code{calculate_TL_dose} provides the possibility to experimentally calculate a TL-dose, i.e. an apparent dose value derived from the TL curve ratio. However, it should be noted that this value is only a fall back in case something went wrong during the measurement of the optical stimulation. The TL derived dose value is corrected for cross-talk and for the irradiation time, but not considered if a travel dosimeter is defined. Calculating the palaeodose is possible without \strong{any TL} curve in the sequence! \strong{Test parameters} \code{TL_peak_shift} \link{numeric} (default: \code{15}): Checks whether the TL peak shift is bigger > 15 K, indicating a problem with the thermal contact of the chip. \code{stimulation_power} \link{numeric} (default: \code{0.05}): So far available, information on the delivered optical stimulation are compared. Compared are the information from the first curves with all others. If the ratio differs more from unity than the defined by the threshold, a warning is returned. } \section{Function version}{ 0.2.6 } \examples{ ##load data data(ExampleData.Al2O3C, envir = environment()) ##run analysis analyse_Al2O3C_Measurement(data_CrossTalk) } \section{How to cite}{ Kreutzer, S., 2025. analyse_Al2O3C_Measurement(): Al2O3:C Passive Dosimeter Measurement Analysis. Function version 0.2.6. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Kreutzer, S., Martin, L., Guérin, G., Tribolo, C., Selva, P., Mercier, N., 2018. Environmental Dose Rate Determination Using a Passive Dosimeter: Techniques and Workflow for alpha-Al2O3:C Chips. Geochronometria 45, 56-67. } \seealso{ \link{analyse_Al2O3C_ITC} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{datagen} Luminescence/man/apply_CosmicRayRemoval.Rd0000644000176200001440000001375014762561642020375 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/apply_CosmicRayRemoval.R \name{apply_CosmicRayRemoval} \alias{apply_CosmicRayRemoval} \title{Function to remove cosmic rays from an RLum.Data.Spectrum S4 class object} \usage{ apply_CosmicRayRemoval( object, method = "smooth", method.Pych.smoothing = 2, method.Pych.threshold_factor = 3, MARGIN = 2, verbose = FALSE, plot = FALSE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Data.Spectrum} or \linkS4class{RLum.Analysis} (\strong{required}): input object to be treated. This can be also provided as \link{list}. If an \linkS4class{RLum.Analysis} object is provided, only the \linkS4class{RLum.Data.Spectrum} objects are treated. Please note: this mixing of objects does not work for a list of \code{RLum.Data} objects.} \item{method}{\link{character} (\emph{with default}): Defines method that is applied for cosmic ray removal. Allowed methods are \code{smooth}, the default, (\link[stats:smooth]{stats::smooth}), \code{smooth.spline} (\link[stats:smooth.spline]{stats::smooth.spline}), \code{smooth_RLum} (\link{smooth_RLum}) and \code{Pych}. See details for further information.} \item{method.Pych.smoothing}{\link{integer} (\emph{with default}): Smoothing parameter for cosmic ray removal according to Pych (2003). The value defines how many neighbouring values in each frame are used for smoothing (e.g., \code{2} means that the two previous and two following values are used).} \item{method.Pych.threshold_factor}{\link{numeric} (\emph{with default}): Threshold for zero-bins in the histogram. Small values mean that more peaks are removed, but signal might be also affected by this removal.} \item{MARGIN}{\link{integer} (\emph{with default}): on which part the function cosmic ray removal should be applied on: \itemize{ \item 1 = along the time axis (line by line), \item 2 = along the wavelength axis (column by column). } \strong{Note:} This argument currently only affects the methods \code{smooth} and \code{smooth.spline}} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{plot}{\link{logical} (\emph{with default}): If \code{TRUE} the histograms used for the cosmic-ray removal are returned as plot including the used threshold. Note: A separate plot is returned for each frame! Currently only for \code{method = "Pych"} a graphical output is provided.} \item{...}{further arguments and graphical parameters that will be passed to the \link[stats:smooth]{stats::smooth}, \link[stats:smooth.spline]{stats::smooth.spline} or \link{smooth_RLum}. See details for more information.} } \value{ Returns same object as input. } \description{ The function provides several methods for cosmic-ray removal and spectrum smoothing \linkS4class{RLum.Data.Spectrum} objects and such objects embedded in \link{list} or \linkS4class{RLum.Analysis} objects. } \details{ \strong{\code{method = "Pych"}} This method applies the cosmic-ray removal algorithm described by Pych (2003). Some aspects that are different to the publication: \itemize{ \item For interpolation between neighbouring values the median and not the mean is used. \item The number of breaks to construct the histogram is set to: \code{length(number.of.input.values)/2} } For further details see references below. \strong{Other methods} Arguments supported through \code{...} \tabular{llll}{ METHOD \tab ARGUMENT \tab TYPE \tab REMARKS\cr \code{"smooth"} \tab \code{kind} \tab \link{character} \tab see \link[stats:smooth]{stats::smooth} \cr \tab \code{twiceit} \tab \link{logical} \tab see \link[stats:smooth]{stats::smooth} \cr \code{"smooth.spline"} \tab \code{spar} \tab \link{numeric} \tab see \link[stats:smooth.spline]{stats::smooth.spline} \cr \code{"smooth_RLum"} \tab \code{k} \tab \link{numeric} \tab see \link{smooth_RLum}\cr \tab \code{fill} \tab \link{numeric} \tab see \link{smooth_RLum}\cr \tab \code{align} \tab \link{character} \tab see \link{smooth_RLum}\cr \tab \code{method} \tab \link{character} \tab see \link{smooth_RLum}\cr } \strong{Best practice} There is no single silver-bullet-strategy for the cosmic-ray removal, because it depends on the characteristic of the detector and the chosen settings. For instance, high values for pixel binning will improve the light output, but also causes multiple pixels being affected a single cosmic-ray. The same is valid for longer integration times. The best strategy is to combine methods and ensure that the spectrum is not distorted on a case-to-case basis. \strong{How to combine methods?} Different methods can be combined by applying the method repeatedly to the dataset (see example). } \section{Function version}{ 0.4.0 } \examples{ ##(1) - use with your own data and combine (uncomment for usage) ## run two times the default method and smooth with another method ## your.spectrum <- apply_CosmicRayRemoval(your.spectrum, method = "Pych") ## your.spectrum <- apply_CosmicRayRemoval(your.spectrum, method = "Pych") ## your.spectrum <- apply_CosmicRayRemoval(your.spectrum, method = "smooth") } \section{How to cite}{ Kreutzer, S., 2025. apply_CosmicRayRemoval(): Function to remove cosmic rays from an RLum.Data.Spectrum S4 class object. Function version 0.4.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Pych, W., 2004. A Fast Algorithm for Cosmic-Ray Removal from Single Images. The Astronomical Society of the Pacific 116 (816), 148-153. \doi{10.1086/381786} } \seealso{ \linkS4class{RLum.Data.Spectrum}, \linkS4class{RLum.Analysis}, \link[stats:smooth]{stats::smooth}, \link[stats:smooth.spline]{stats::smooth.spline}, \link{smooth_RLum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{manip} Luminescence/man/calc_gSGC.Rd0000644000176200001440000000725314762561642015517 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_gSGC.R \name{calc_gSGC} \alias{calc_gSGC} \title{Calculate De value based on the gSGC by Li et al., 2015} \usage{ calc_gSGC( data, gSGC.type = "0-250", gSGC.parameters, n.MC = 100, verbose = TRUE, plot = TRUE, ... ) } \arguments{ \item{data}{\link{data.frame} (\strong{required}): input data of providing the following columns: \code{LnTn}, \code{LnTn.error}, \code{Lr1Tr1}, \code{Lr1Tr1.error}, \code{Dr1} \strong{Note:} column names are not required. The function expects the input data in the given order} \item{gSGC.type}{\link{character} (\emph{with default}): define the function parameters that should be used for the iteration procedure: Li et al., 2015 (Table 2) presented function parameters for two dose ranges: \code{"0-450"} and \code{"0-250"}} \item{gSGC.parameters}{\link{list} (\emph{optional}): option to provide own function parameters used for fitting as named list. Nomenclature follows Li et al., 2015, i.e. \code{list(A, A.error, D0, D0.error, c, c.error, Y0, Y0.error, range)}, where \code{range} is defines the interval where the function is considered as valid, e.g. \code{range = c(0,250)}.\cr Using this option overwrites the default parameter list of the gSGC, meaning the argument \code{gSGC.type} will be without effect} \item{n.MC}{\link{integer} (\emph{with default}): number of Monte Carlo simulation runs for error estimation, see details.} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{parameters will be passed to the plot output} } \value{ Returns an S4 object of type \linkS4class{RLum.Results}. \strong{\verb{@data}}\cr \verb{$ De.value} (\link{data.frame}) \cr \code{.. $ De} \cr \code{.. $ De.error} \cr \code{.. $ Eta} \cr \verb{$ De.MC} (\link{list}) contains the matrices from the error estimation.\cr \verb{$ uniroot} (\link{list}) contains the \link{uniroot} outputs of the De estimations\cr \strong{\verb{@info}}\cr `$ call`` (\link{call}) the original function call } \description{ Function returns De value and De value error using the global standardised growth curve (gSGC) assumption proposed by Li et al., 2015 for OSL dating of sedimentary quartz } \details{ The error of the De value is determined using a Monte Carlo simulation approach. Solving of the equation is realised using \link{uniroot}. Large values for \code{n.MC} will significantly increase the computation time. } \section{Function version}{ 0.1.1 } \examples{ results <- calc_gSGC(data = data.frame( LnTn = 2.361, LnTn.error = 0.087, Lr1Tr1 = 2.744, Lr1Tr1.error = 0.091, Dr1 = 34.4)) get_RLum(results, data.object = "De") } \section{How to cite}{ Kreutzer, S., 2025. calc_gSGC(): Calculate De value based on the gSGC by Li et al., 2015. Function version 0.1.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Li, B., Roberts, R.G., Jacobs, Z., Li, S.-H., 2015. Potential of establishing a 'global standardised growth curve' (gSGC) for optical dating of quartz from sediments. Quaternary Geochronology 27, 94-104. doi:10.1016/j.quageo.2015.02.011 } \seealso{ \linkS4class{RLum.Results}, \link{get_RLum}, \link{uniroot} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{datagen} Luminescence/man/ExampleData.RLum.Analysis.Rd0000644000176200001440000000252314762557027020574 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{ExampleData.RLum.Analysis} \alias{ExampleData.RLum.Analysis} \alias{IRSAR.RF.Data} \title{Example data as \linkS4class{RLum.Analysis} objects} \format{ \code{IRSAR.RF.Data}: IRSAR.RF.Data on coarse grain feldspar Each object contains data needed for the given protocol analysis. } \source{ \strong{IRSAR.RF.Data} These data were kindly provided by Tobias Lauer and Matthias Krbetschek. \tabular{ll}{ Lab: \tab Luminescence Laboratory TU Bergakademie Freiberg\cr Lab-Code: \tab ZEU/SA1\cr Location: \tab Zeuchfeld (Zeuchfeld Sandur; Saxony-Anhalt/Germany)\cr Material: \tab K-feldspar (130-200 \eqn{\mu}m)\cr Reference: \tab Kreutzer et al. (2014) } } \description{ Collection of different \linkS4class{RLum.Analysis} objects for protocol analysis. } \section{Version}{ 0.1 } \examples{ ##load data data(ExampleData.RLum.Analysis, envir = environment()) ##plot data plot_RLum(IRSAR.RF.Data) } \references{ \strong{IRSAR.RF.Data} Kreutzer, S., Lauer, T., Meszner, S., Krbetschek, M.R., Faust, D., Fuchs, M., 2014. Chronology of the Quaternary profile Zeuchfeld in Saxony-Anhalt / Germany - a preliminary luminescence dating study. Zeitschrift fuer Geomorphologie 58, 5-26. doi: 10.1127/0372-8854/2012/S-00112 } \keyword{datasets} \keyword{internal} Luminescence/man/plot_FilterCombinations.Rd0000644000176200001440000001437414762561642020605 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_FilterCombinations.R \name{plot_FilterCombinations} \alias{plot_FilterCombinations} \title{Plot filter combinations along with the (optional) net transmission window} \usage{ plot_FilterCombinations( filters, wavelength_range = 200:1000, show_net_transmission = TRUE, interactive = FALSE, plot = TRUE, ... ) } \arguments{ \item{filters}{\link{list} (\strong{required}): a named list of filter data for each filter to be shown. The filter data itself should be either provided as \link{data.frame} or \link{matrix} (see details for more options).} \item{wavelength_range}{\link{numeric} (\emph{with default}): wavelength range used for the interpolation} \item{show_net_transmission}{\link{logical} (\emph{with default}): show net transmission window as polygon.} \item{interactive}{\link{logical} (\emph{with default}): enable/disable interactive plots.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{further arguments that can be passed to control the plot output. Supported are \code{main}, \code{xlab}, \code{ylab}, \code{xlim}, \code{ylim}, \code{type}, \code{lty}, \code{lwd}. For non common plotting parameters see the details section.} } \value{ Returns an S4 object of type \linkS4class{RLum.Results}. \strong{@data} \tabular{lll}{ \strong{\code{Object}} \tab \strong{\code{Type}} \strong{\code{Description}} \cr \code{net_transmission_window} \tab \code{matrix} \tab the resulting net transmission window \cr \code{OD_total} \tab \code{matrix} \tab the total optical density\cr \code{filter_matrix} \tab \code{matrix} \tab the filter matrix used for plotting } \strong{@info} \tabular{lll}{ \strong{Object} \tab \strong{Type} \strong{Description} \cr \code{call} \tab \link{call} \tab the original function call } } \description{ The function allows to plot transmission windows for different filters. Missing data for specific wavelengths are automatically interpolated for the given filter data using the function \link{approx}. With that a standardised output is reached and a net transmission window can be shown. \strong{Calculations} \strong{Net transmission window} The net transmission window of two filters is approximated by \deqn{T_{final} = T_{1} * T_{2}} \strong{Optical density} \deqn{OD = -log10(T)} \strong{Total optical density} \deqn{OD_{total} = OD_{1} + OD_{2}} Please consider using own calculations for more precise values. \strong{How to provide input data?} \emph{CASE 1} The function expects that all filter values are either of type \code{matrix} or \code{data.frame} with two columns. The first columns contains the wavelength, the second the relative transmission (but not in percentage, i.e. the maximum transmission can be only become 1). In this case only the transmission window is show as provided. Changes in filter thickness and reflection factor are not considered. \emph{CASE 2} The filter data itself are provided as list element containing a \code{matrix} or \code{data.frame} and additional information on the thickness of the filter, e.g., \code{list(filter1 = list(filter_matrix, d = 2))}. The given filter data are always considered as standard input and the filter thickness value is taken into account by \deqn{Transmission = Transmission^(d)} with d given in the same dimension as the original filter data. \emph{CASE 3} Same as CASE 2 but additionally a reflection factor P is provided, e.g., \code{list(filter1 = list(filter_matrix, d = 2, P = 0.9))}. The final transmission becomes: \deqn{Transmission = Transmission^(d) * P} \strong{Advanced plotting parameters} The following further non-common plotting parameters can be passed to the function: \tabular{lll}{ \strong{\code{Argument}} \tab \strong{\code{Datatype}} \tab \strong{\code{Description}}\cr \code{legend} \tab \code{logical} \tab enable/disable legend \cr \code{legend.pos} \tab \code{character} \tab change legend position (\link[graphics:legend]{graphics::legend}) \cr \code{legend.text} \tab \code{character} \tab same as the argument \code{legend} in (\link[graphics:legend]{graphics::legend}) \cr \code{net_transmission.col} \tab \code{col} \tab colour of net transmission window polygon \cr \code{net_transmission.col_lines} \tab \code{col} \tab colour of net transmission window polygon lines \cr \code{net_transmission.density} \tab \code{numeric} \tab specify line density in the transmission polygon \cr \code{grid} \tab \code{list} \tab full list of arguments that can be passed to the function \link[graphics:grid]{graphics::grid} } For further modifications standard additional R plot functions are recommend, e.g., the legend can be fully customised by disabling the standard legend and use the function \link[graphics:legend]{graphics::legend} instead. } \section{Function version}{ 0.3.2 } \examples{ ## (For legal reasons no real filter data are provided) ## Create filter sets filter1 <- density(rnorm(100, mean = 450, sd = 20)) filter1 <- matrix(c(filter1$x, filter1$y/max(filter1$y)), ncol = 2) filter2 <- matrix(c(200:799,rep(c(0,0.8,0),each = 200)), ncol = 2) ## Example 1 (standard) plot_FilterCombinations(filters = list(filter1, filter2)) ## Example 2 (with d and P value and name for filter 2) results <- plot_FilterCombinations( filters = list(filter_1 = filter1, Rectangle = list(filter2, d = 2, P = 0.6))) results ## Example 3 show optical density plot(results$OD_total) \dontrun{ ##Example 4 ##show the filters using the interactive mode plot_FilterCombinations(filters = list(filter1, filter2), interactive = TRUE) } } \seealso{ \linkS4class{RLum.Results}, \link{approx} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. plot_FilterCombinations(): Plot filter combinations along with the (optional) net transmission window. Function version 0.3.2. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{aplot} \keyword{datagen} Luminescence/man/convert_XSYG2CSV.Rd0000644000176200001440000000377214762561642016744 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/convert_XSYG2CSV.R \name{convert_XSYG2CSV} \alias{convert_XSYG2CSV} \title{Export XSYG-file(s) to CSV-files} \usage{ convert_XSYG2CSV(file, ...) } \arguments{ \item{file}{\link{character} (\strong{required}): name of the XSYG-file to be converted to CSV-files} \item{...}{further arguments that will be passed to the function \link{read_XSYG2R} and \link{write_RLum2CSV}} } \value{ The function returns either a CSV-file (or many of them) or for the option \code{export = FALSE} a list comprising objects of type \link{data.frame} and \link{matrix} } \description{ This function is a wrapper function around the functions \link{read_XSYG2R} and \link{write_RLum2CSV} and it imports an XSYG-file and directly exports its content to CSV-files. If nothing is set for the argument \code{path} (\link{write_RLum2CSV}) the input folder will become the output folder. } \section{Function version}{ 0.1.0 } \examples{ ##transform XSYG-file values to a list data(ExampleData.XSYG, envir = environment()) convert_XSYG2CSV(OSL.SARMeasurement$Sequence.Object[1:10], export = FALSE) \dontrun{ ##select your BIN-file file <- file.choose() ##convert convert_XSYG2CSV(file) } } \seealso{ \linkS4class{RLum.Analysis}, \linkS4class{RLum.Data}, \linkS4class{RLum.Results}, \link[utils:write.table]{utils::write.table}, \link{write_RLum2CSV}, \link{read_XSYG2R} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. convert_XSYG2CSV(): Export XSYG-file(s) to CSV-files. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{IO} Luminescence/man/ExampleData.BINfileData.Rd0000644000176200001440000000401214762557027020170 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \docType{data} \name{ExampleData.BINfileData} \alias{ExampleData.BINfileData} \alias{CWOSL.SAR.Data} \alias{TL.SAR.Data} \title{Example data from a SAR OSL and SAR TL measurement for the package Luminescence} \format{ \code{CWOSL.SAR.Data}: SAR OSL measurement data \code{TL.SAR.Data}: SAR TL measurement data Each class object contains two slots: (a) \code{METADATA} is a \link{data.frame} with all metadata stored in the BIN file of the measurements and (b) \code{DATA} contains a list of vectors of the measured data (usually count values). } \source{ \strong{CWOSL.SAR.Data} \tabular{ll}{ Lab: \tab Luminescence Laboratory Bayreuth \cr Lab-Code: \tab BT607 \cr Location: \tab Saxony/Germany \cr Material: \tab Middle grain quartz measured on aluminium cups on a Risø TL/OSL DA-15 reader\cr Reference: \tab unpublished } \strong{TL.SAR.Data} \tabular{ll}{ Lab: \tab Luminescence Laboratory of Cologne\cr Lab-Code: \tab LP1_5\cr Location: \tab Spain\cr Material: \tab Flint \cr Setup: \tab Risoe TL/OSL DA-20 reader (Filter: Semrock Brightline, HC475/50, N2, unpolished steel discs) \cr Reference: \tab unpublished \cr Remarks: \tab dataset limited to one position } } \description{ Example data from a SAR OSL and TL measurement for package Luminescence directly extracted from a Risoe BIN-file and provided in an object of type \linkS4class{Risoe.BINfileData} } \note{ Please note that this example data cannot be exported to a BIN-file using the function \code{writeR2BIN} as it was generated and implemented in the package long time ago. In the meantime the BIN-file format changed. } \section{Version}{ 0.1 } \examples{ ## show first 5 elements of the METADATA and DATA elements in the terminal data(ExampleData.BINfileData, envir = environment()) CWOSL.SAR.Data@METADATA[1:5,] CWOSL.SAR.Data@DATA[1:5] } \references{ \strong{CWOSL.SAR.Data}: unpublished data \strong{TL.SAR.Data}: unpublished data } \keyword{datasets} \keyword{internal} Luminescence/man/convert_PSL2CSV.Rd0000644000176200001440000000521314762561642016600 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/convert_PSL2CSV.R \name{convert_PSL2CSV} \alias{convert_PSL2CSV} \title{Export PSL-file(s) to CSV-files} \usage{ convert_PSL2CSV(file, extract_raw_data = FALSE, single_table = FALSE, ...) } \arguments{ \item{file}{\link{character} (\strong{required}): name of the PSL-file to be converted to CSV-files} \item{extract_raw_data}{\link{logical} (\emph{with default}): enable/disable raw data extraction. The PSL files imported into R contain an element \verb{$raw_data}, which provides a few more information (e.g., count errors), sometimes it makes sense to use this data of the more compact standard values created by \link{read_PSL2R}} \item{single_table}{\link{logical} (\emph{with default}): enable/disable the creation of single table with n rows and n columns, instead of separate \link{data.frame} objects. Each curve will be represented by two columns for time and counts} \item{...}{further arguments that will be passed to the function \link{read_PSL2R} and \link{write_RLum2CSV}} } \value{ The function returns either a CSV-file (or many of them) or for the option \code{export = FALSE} a list comprising objects of type \link{data.frame} and \link{matrix} } \description{ This function is a wrapper function around the functions \link{read_PSL2R} and \link{write_RLum2CSV} and it imports an PSL-file (SUERC portable OSL reader file format) and directly exports its content to CSV-files. If nothing is set for the argument \code{path} (\link{write_RLum2CSV}) the input folder will become the output folder. } \section{Function version}{ 0.1.2 } \examples{ ## export into single data.frame file <- system.file("extdata/DorNie_0016.psl", package="Luminescence") convert_PSL2CSV(file, export = FALSE, single_table = TRUE) \dontrun{ ##select your BIN-file file <- file.choose() ##convert convert_PSL2CSV(file) } } \seealso{ \linkS4class{RLum.Analysis}, \linkS4class{RLum.Data}, \linkS4class{RLum.Results}, \link[utils:write.table]{utils::write.table}, \link{write_RLum2CSV}, \link{read_PSL2R} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. convert_PSL2CSV(): Export PSL-file(s) to CSV-files. Function version 0.1.2. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{IO} Luminescence/man/as.Rd0000644000176200001440000000346014762557027014353 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/RLum.Analysis-class.R, % R/RLum.Data.Curve-class.R, R/RLum.Data.Image-class.R, % R/RLum.Data.Spectrum-class.R, R/RLum.Results-class.R \name{as} \alias{as} \title{as() - RLum-object coercion} \arguments{ \item{from}{\linkS4class{RLum}, \link{list}, \link{data.frame}, \link{matrix} (\strong{required}): object to be coerced from} \item{to}{\link{character} (\strong{required}): class name to be coerced to} } \description{ for \verb{[RLum.Analysis-class]} for \verb{[RLum.Data.Curve-class]} for \verb{[RLum.Data.Image-class]} for \verb{[RLum.Data.Spectrum-class]} for \verb{[RLum.Results-class]} } \details{ \strong{\linkS4class{RLum.Analysis}} \tabular{ll}{ \strong{from} \tab \strong{to}\cr \code{list} \tab \code{list}\cr } Given that the \link{list} consists of \linkS4class{RLum.Analysis} objects. \strong{\linkS4class{RLum.Data.Curve}} \tabular{lll}{ \strong{from} \tab \strong{to}\cr \code{list} \tab \code{list} \cr \code{data.frame} \tab \code{data.frame}\cr \code{matrix} \tab \code{matrix} } \strong{\linkS4class{RLum.Data.Image}} \tabular{ll}{ \strong{from} \tab \strong{to}\cr \code{data.frame} \tab \code{data.frame}\cr \code{matrix} \tab \code{matrix} } \strong{\linkS4class{RLum.Data.Spectrum}} \tabular{lll}{ \strong{from} \tab \strong{to}\cr \code{data.frame} \tab \code{data.frame}\cr \code{matrix} \tab \code{matrix} \code{list} \tab \code{list} } \strong{\linkS4class{RLum.Results}} \tabular{ll}{ \strong{from} \tab \strong{to}\cr \code{list} \tab \code{list}\cr } Given that the \link{list} consists of \linkS4class{RLum.Results} objects. } \note{ Due to the complex structure of the \code{RLum} objects itself a coercing to standard R data structures will be always loosely! } \seealso{ \link[methods:as]{methods::as} } Luminescence/man/plot_ViolinPlot.Rd0000644000176200001440000001055514762561642017106 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_ViolinPlot.R \name{plot_ViolinPlot} \alias{plot_ViolinPlot} \title{Create a violin plot} \usage{ plot_ViolinPlot( data, boxplot = TRUE, rug = TRUE, summary = NULL, summary.pos = "sub", na.rm = TRUE, ... ) } \arguments{ \item{data}{\link{numeric} or \linkS4class{RLum.Results} (\strong{required}): input data for plotting. Alternatively a \link{data.frame} or a \link{matrix} can be provided, but only the first column will be considered by the function} \item{boxplot}{\link{logical} (\emph{with default}): enable/disable boxplot} \item{rug}{\link{logical} (\emph{with default}): enable/disable rug} \item{summary}{\link{character} (\emph{optional}): add statistic measures of centrality and dispersion to the plot. Can be one or more of several keywords. See details for available keywords.} \item{summary.pos}{\link{numeric} or \link{character} (\emph{with default}): optional position keywords (cf. \link{legend}) for the statistical summary. Alternatively, the keyword \code{"sub"} may be specified to place the summary below the plot header. However, this latter option in only possible if \code{mtext} is not used.} \item{na.rm}{\link{logical} (\emph{with default}): exclude NA values from the data set prior to any further operations.} \item{...}{further arguments and graphical parameters passed to \link{plot.default}, \link[stats:density]{stats::density} and \link{boxplot}. See details for further information.} } \description{ Draws a kernel density plot in combination with a boxplot in its middle. The shape of the violin is constructed using a mirrored density curve. This plot is especially designed for cases where the individual errors are zero or too small to be visualised. The idea for this plot is based on the 'volcano plot' in the ggplot2 package by Hadley Wickham and Winston Chang. The general idea for the violin plot seems to have been introduced by Hintze and Nelson (1998). The function is passing several arguments to the functions \link{plot}, \link[stats:density]{stats::density}, \link[graphics:boxplot]{graphics::boxplot}: Supported arguments are: \code{xlim}, \code{main}, \code{xlab}, \code{ylab}, \code{col.violin}, \code{col.boxplot}, \code{mtext}, \code{cex}, \code{mtext} \strong{\verb{Valid summary keywords}} \code{'n'}, \code{'mean'}, \code{'median'}, \code{'sd.abs'}, \code{'sd.rel'}, \code{'se.abs'}, \code{'se.rel'}. \code{'skewness'}, \code{'kurtosis'} } \note{ Although the code for this function was developed independently and just the idea for the plot was based on the 'ggplot2' package plot type 'volcano', it should be mentioned that, beyond this, two other R packages exist providing a possibility to produces this kind of plot, namely: \code{'vioplot'} and \code{'violinmplot'} (see references for details). } \section{Function version}{ 0.1.4 } \examples{ ## read example data set data(ExampleData.DeValues, envir = environment()) ExampleData.DeValues <- convert_Second2Gray(ExampleData.DeValues$BT998, c(0.0438,0.0019)) ## create plot straightforward plot_ViolinPlot(data = ExampleData.DeValues) } \section{How to cite}{ Kreutzer, S., 2025. plot_ViolinPlot(): Create a violin plot. Function version 0.1.4. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Daniel Adler (2005). vioplot: A violin plot is a combination of a box plot and a kernel density plot. R package version 0.2 http://CRAN.R-project.org/package=violplot Hintze, J.L., Nelson, R.D., 1998. A Box Plot-Density Trace Synergism. The American Statistician 52, 181-184. Raphael W. Majeed (2012). violinmplot: Combination of violin plot with mean and standard deviation. R package version 0.2.1. http://CRAN.R-project.org/package=violinmplot Wickham. H (2009). ggplot2: elegant graphics for data analysis. Springer New York. } \seealso{ \link[stats:density]{stats::density}, \link{plot}, \link{boxplot}, \link{rug}, \link{calc_Statistics} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} Luminescence/man/convert_Concentration2DoseRate.Rd0000644000176200001440000001104714762561642022025 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/convert_Concentration2DoseRate.R \name{convert_Concentration2DoseRate} \alias{convert_Concentration2DoseRate} \title{Dose-rate conversion function} \usage{ convert_Concentration2DoseRate(input, conversion = "Guerinetal2011") } \arguments{ \item{input}{\link{data.frame} (\emph{optional}): a table containing all relevant information for each individual layer if nothing is provided, the function returns a template \link{data.frame} Please note that until one dataset per input is supported!} \item{conversion}{\link{character} (\emph{with default}): which dose rate conversion factors to use, defaults uses Guérin et al. (2011). For accepted values see \link{BaseDataSet.ConversionFactors}} } \value{ The function returns an \linkS4class{RLum.Results} object for which the first element is \link{matrix} with the converted values. If no input is provided, the function returns a template \link{data.frame} that can be used as input. } \description{ This function converts radionuclide concentrations (K in \%, Th and U in ppm) into dose rates (Gy/ka). Beta-dose rates are also attenuated for the grain size. Beta and gamma-dose rates are corrected for the water content. This function converts concentrations into dose rates (Gy/ka) and corrects for grain size attenuation and water content Dose rate conversion factors can be chosen from Adamiec and Aitken (1998), Guerin et al. (2011), Liritzis et al. (201) and Cresswell et al. (2018). Default is Guerin et al. (2011). Grain size correction for beta dose rates is achieved using the correction factors published by Guérin et al. (2012). Water content correction is based on factors provided by Aitken (1985), with the factor for beta dose rate being 1.25 and for gamma 1.14. } \details{ \strong{The input data} \tabular{lll}{ COLUMN \tab DATA TYPE \tab DESCRIPTION\cr \code{Mineral} \tab \code{character} \tab \code{'FS'} for feldspar, \code{'Q'} for quartz\cr \code{K} \tab \code{numeric} \tab K nuclide content in \%\cr \code{K_SE} \tab \code{numeric} \tab error on K nuclide content in \%\cr \code{Th} \tab \code{numeric} \tab Th nuclide content in ppm\cr \code{Th_SE} \tab \code{numeric} error on Th nuclide content in ppm\cr \code{U} \tab \code{numeric} U nuclide content in ppm\cr \code{U_SE} \tab \code{numeric} \tab error on U nuclide content in ppm\cr \code{GrainSize} \tab \code{numeric} \tab average grain size in µm\cr \code{WaterContent} \tab \code{numeric} \tab mean water content in \%\cr \code{WaterContent_SE} \tab \code{numeric} \tab relative error on water content } \strong{Water content} The water content provided by the user should be calculated according to: \deqn{(Wet_weight - Dry_weight) / Dry_weight * 100} The unit for the weight is gram (g). } \section{Function version}{ 0.1.0 } \examples{ ## create input template input <- convert_Concentration2DoseRate() ## fill input input$Mineral <- "FS" input$K <- 2.13 input$K_SE <- 0.07 input$Th <- 9.76 input$Th_SE <- 0.32 input$U <- 2.24 input$U_SE <- 0.12 input$GrainSize <- 200 input$WaterContent <- 30 input$WaterContent_SE <- 5 ## convert convert_Concentration2DoseRate(input) } \section{How to cite}{ Riedesel, S., Autzen, M., 2025. convert_Concentration2DoseRate(): Dose-rate conversion function. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Adamiec, G., Aitken, M.J., 1998. Dose-rate conversion factors: update. Ancient TL 16, 37-46. Cresswell., A.J., Carter, J., Sanderson, D.C.W., 2018. Dose rate conversion parameters: Assessment of nuclear data. Radiation Measurements 120, 195-201. Guerin, G., Mercier, N., Adamiec, G., 2011. Dose-rate conversion factors: update. Ancient TL, 29, 5-8. Guerin, G., Mercier, N., Nathan, R., Adamiec, G., Lefrais, Y., 2012. On the use of the infinite matrix assumption and associated concepts: A critical review. Radiation Measurements, 47, 778-785. Liritzis, I., Stamoulis, K., Papachristodoulou, C., Ioannides, K., 2013. A re-evaluation of radiation dose-rate conversion factors. Mediterranean Archaeology and Archaeometry 13, 1-15. } \author{ Svenja Riedesel, Aberystwyth University (United Kingdom) \cr Martin Autzen, DTU NUTECH Center for Nuclear Technologies (Denmark) , RLum Developer Team} \keyword{datagen} Luminescence/man/ExampleData.XSYG.Rd0000644000176200001440000000611614762557027016727 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{ExampleData.XSYG} \alias{ExampleData.XSYG} \alias{OSL.SARMeasurement} \alias{TL.Spectrum} \title{Example data for a SAR OSL measurement and a TL spectrum using a lexsyg reader} \format{ \code{OSL.SARMeasurement}: SAR OSL measurement data The data contain two elements: (a) \verb{$Sequence.Header} is a \link{data.frame} with metadata from the measurement,(b) \code{Sequence.Object} contains an \linkS4class{RLum.Analysis} object for further analysis. \code{TL.Spectrum}: TL spectrum data \linkS4class{RLum.Data.Spectrum} object for further analysis. The spectrum was cleaned from cosmic-rays using the function \code{apply_CosmicRayRemoval}. Note that no quantum efficiency calibration was performed. } \source{ \strong{OSL.SARMeasurement} \tabular{ll}{ Lab: \tab Luminescence Laboratory Giessen\cr Lab-Code: \tab no code\cr Location: \tab not specified\cr Material: \tab Coarse grain quartz on steel cups on lexsyg research reader\cr Reference: \tab unpublished } \strong{TL.Spectrum} \tabular{ll}{ Lab: \tab Luminescence Laboratory Giessen\cr Lab-Code: \tab BT753\cr Location: \tab Dolni Vestonice/Czech Republic\cr Material: \tab Fine grain polymineral on steel cups on lexsyg research reader\cr Reference: \tab Fuchs et al., 2013 \cr Spectrum: \tab Integration time 19 s, channel time 20 s\cr Heating: \tab 1 K/s, up to 500 deg. C } } \description{ Example data from a SAR OSL measurement and a TL spectrum for package Luminescence imported from a Freiberg Instruments XSYG file using the function \link{read_XSYG2R}. } \section{Version}{ 0.1 } \examples{ ##show data data(ExampleData.XSYG, envir = environment()) ## ========================================= ##(1) OSL.SARMeasurement OSL.SARMeasurement ##show $Sequence.Object OSL.SARMeasurement$Sequence.Object ##grep OSL curves and plot the first curve OSLcurve <- get_RLum(OSL.SARMeasurement$Sequence.Object, recordType="OSL")[[1]] plot_RLum(OSLcurve) ## ========================================= ##(2) TL.Spectrum TL.Spectrum ##plot simple spectrum (2D) plot_RLum.Data.Spectrum(TL.Spectrum, plot.type="contour", xlim = c(310,750), ylim = c(0,300), bin.rows=10, bin.cols = 1) ##plot 3d spectrum (uncomment for usage) # plot_RLum.Data.Spectrum(TL.Spectrum, plot.type="persp", # xlim = c(310,750), ylim = c(0,300), bin.rows=10, # bin.cols = 1) } \references{ Unpublished data measured to serve as example data for that package. Location origin of sample BT753 is given here: Fuchs, M., Kreutzer, S., Rousseau, D.D., Antoine, P., Hatte, C., Lagroix, F., Moine, O., Gauthier, C., Svoboda, J., Lisa, L., 2013. The loess sequence of Dolni Vestonice, Czech Republic: A new OSL-based chronology of the Last Climatic Cycle. Boreas, 42, 664--677. } \seealso{ \link{read_XSYG2R}, \linkS4class{RLum.Analysis}, \linkS4class{RLum.Data.Spectrum}, \link{plot_RLum}, \link{plot_RLum.Analysis}, \link{plot_RLum.Data.Spectrum} } \keyword{datasets} \keyword{internal} Luminescence/man/BaseDataSet.ConversionFactors.Rd0000644000176200001440000000313614762557027021536 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{BaseDataSet.ConversionFactors} \alias{BaseDataSet.ConversionFactors} \title{Base data set of dose-rate conversion factors} \format{ A \code{\link{list}} with three elements with dose-rate conversion factors sorted by article and radiation type (alpha, beta, gamma): \tabular{ll}{ \code{AdamiecAitken1998}: \tab Conversion factors from Tables 5 and 6 \cr \code{Cresswelletal2018}: \tab Conversion factors from Tables 5 and 6 \cr \code{Guerinetal2011}: \tab Conversion factors from Tables 1, 2 and 3 \cr \code{Liritzisetal2013}: \tab Conversion factors from Tables 1, 2 and 3 \cr } } \source{ All gamma conversion factors were carefully read from the tables given in the references above. } \description{ Collection of published dose-rate conversion factors to convert concentrations of radioactive isotopes to dose rate values. } \section{Version}{ 0.2.0 } \examples{ ## Load data data("BaseDataSet.ConversionFactors", envir = environment()) } \references{ Adamiec, G., Aitken, M.J., 1998. Dose-rate conversion factors: update. Ancient TL 16, 37-46. Cresswell., A.J., Carter, J., Sanderson, D.C.W., 2018. Dose rate conversion parameters: Assessment of nuclear data. Radiation Measurements 120, 195-201. Guerin, G., Mercier, N., Adamiec, G., 2011. Dose-rate conversion factors: update. Ancient TL, 29, 5-8. Liritzis, I., Stamoulis, K., Papachristodoulou, C., Ioannides, K., 2013. A re-evaluation of radiation dose-rate conversion factors. Mediterranean Archaeology and Archaeometry 13, 1-15. } \keyword{datasets} Luminescence/man/ExampleData.LxTxData.Rd0000644000176200001440000000150314762557027017621 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{ExampleData.LxTxData} \alias{ExampleData.LxTxData} \alias{LxTxData} \title{Example Lx/Tx data from CW-OSL SAR measurement} \format{ A \code{\link{data.frame}} with 4 columns (Dose, LxTx, LxTx.Error, TnTx). } \source{ \tabular{ll}{ Lab: \tab Luminescence Laboratory Bayreuth\cr Lab-Code: \tab BT607\cr Location: \tab Ostrau (Saxony-Anhalt/Germany)\cr Material: \tab Middle grain (38-63 \eqn{\mu}m) quartz measured on a Risoe TL/OSL DA-15 reader. } } \description{ LxTx data from a SAR measurement for the package Luminescence. } \examples{ ## plot Lx/Tx data vs dose [s] data(ExampleData.LxTxData, envir = environment()) plot(LxTxData$Dose,LxTxData$LxTx) } \references{ unpublished data } \keyword{datasets} \keyword{internal} Luminescence/man/combine_De_Dr.Rd0000644000176200001440000002134614762561642016422 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/combine_De_Dr.R \name{combine_De_Dr} \alias{combine_De_Dr} \title{Combine Dose Rate and Equivalent Dose Distribution} \usage{ combine_De_Dr( De, s, Dr, int_OD, Age_range = c(1, 300), outlier_threshold = 0.05, outlier_method = "default", outlier_analysis_plot = FALSE, method_control = list(), par_local = TRUE, verbose = TRUE, plot = TRUE, ... ) } \arguments{ \item{De}{\link{numeric} (\strong{required}): a equivalent dose sample} \item{s}{\link{numeric} (\strong{required}): a vector of measurement errors on the equivalent dose} \item{Dr}{\link{numeric} (\strong{required}): a dose rate sample} \item{int_OD}{\link{numeric} (\strong{required}): the intrinsic overdispersion, typically the standard deviation characterizing a dose-recovery test distribution} \item{Age_range}{\link{numeric} (\emph{with default}): the age range to be investigated by the algorithm, the larger the value the more iterations are needed and the longer it takes. Should not be set too narrow, cut the algorithm some slack.} \item{outlier_threshold}{\link{numeric} (\emph{with default}): the required significance level used for the outlier detection. If set to \code{1}, no outliers are removed. If \code{outlier_method = "RousseeuwCroux1993"}, the median distance is used as outlier threshold. Please see details for further information.} \item{outlier_method}{\link{character} (\emph{with default}): select the outlier detection method, either \code{"default"} or \code{"RousseeuwCroux1993"}. See details for further information.} \item{outlier_analysis_plot}{\link{logical} (\emph{with default}): enable/disable the outlier analysis plot. Note: the outlier analysis will happen independently of the plot output.} \item{method_control}{\link{list} (\emph{with default}): named \link{list} of further parameters passed down to the \link[rjags:rjags-package]{rjags::rjags} modelling} \item{par_local}{\link{logical} (\emph{with default}): if set to \code{TRUE} the function uses its own \link[graphics:par]{graphics::par} settings (which will end in two plots next to each other)} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{a few further arguments to fine-tune the plot output such as \code{cdf_ADr_quantiles} (\code{TRUE}/\code{FALSE}), \code{legend.pos}, \code{legend} (\code{TRUE}/\code{FALSE})} } \value{ The function returns a plot if \code{plot = TRUE} and an \linkS4class{RLum.Results} object with the following slots: \verb{@data}\cr \code{.. $Ages}: a \link{numeric} vector with the modelled ages to be further analysed or visualised\cr \code{.. $Ages_stats}: a \link{data.frame} with sum HPD, CI 68\% and CI 95\% for the ages \cr \code{.. $outliers_index}: the index with the detected outliers\cr \code{.. $cdf_ADr_mean} : empirical cumulative density distribution A * Dr (mean)\cr \code{.. $cdf_ADr_quantiles} : empirical cumulative density distribution A * Dr (quantiles .025,.975)\cr \code{.. $cdf_De_no_outlier} : empirical cumulative density distribution of the De with no outliers\cr \code{.. $cdf_De_initial} : empirical cumulative density distribution of the initial De\cr \code{.. $mcmc_IAM} : the MCMC list of the Individual Age Model, only of \code{method_control = list(return_mcmc = TRUE)} otherwise \code{NULL}\cr \code{.. $mcmc_BCAM} : the MCMC list of the Bayesian Central Age Model, only of \code{method_control = list(return_mcmc = TRUE)} otherwise \code{NULL}\cr \verb{@info}\cr \code{.. $call}: the original function call\cr \code{.. $model_IAM}: the BUGS model used to derive the individual age\cr \code{.. $model_BCAM}: the BUGS model used to calculate the Bayesian Central Age\cr } \description{ A Bayesian statistical analysis of OSL age requiring dose rate sample. Estimation contains a preliminary step for detecting outliers in the equivalent dose sample. } \details{ \strong{Outlier detection} Two different outlier detection methods are implemented (full details are given in the cited literature). \enumerate{ \item The \emph{default} and recommend method, uses quantiles to compare prior and posterior distributions of the individual variances of the equivalent doses. If the corresponding quantile in the corresponding posterior distribution is larger than the quantile in the prior distribution, the value is marked as outlier (cf. Galharret et al., preprint) \item The alternative method employs the method suggested by Rousseeuw and Croux (1993) using the absolute median distance. } \strong{Parameters available for \code{method_control}} The parameters listed below are used to granular control Bayesian modelling using \link[rjags:rjags-package]{rjags::rjags}. Internally the functions \code{.calc_IndividualAgeModel()} and \code{.calc_BayesianCentraAgelModel()}. The parameter settings affect both models. Note: \code{method_control} expects a \strong{named} list of parameters \tabular{llll}{ \strong{PARAMETER} \tab \strong{TYPE} \tab \strong{DEFAULT} \tab \strong{REMARKS} \cr \code{variable.names_IAM} \tab \link{character} \tab \code{c('A', 'a', 'sig_a')} \tab variables names to be monitored in the modelling process using the internal function \code{.calc_IndividualAgeModel()}\cr \code{variable.names_BCAM} \tab \link{character} \tab \code{c('A', 'D_e')} \tab variables names to be monitored in the modelling process using the internal function \code{.calc_BayesianCentraAgelModel()}\cr \code{n.chains} \tab \link{integer} \tab \code{4} \tab number of MCMC chains\cr \code{n.adapt} \tab \link{integer} \tab \code{1000} \tab number of iterations for the adaptation\cr \code{n.iter} \tab \link{integer} \tab \code{5000} \tab number of iterations to monitor cf. \link[rjags:coda.samples]{rjags::coda.samples}\cr \code{thin} \tab \link{numeric} \tab \code{1} \tab thinning interval for the monitoring cf. \link[rjags:coda.samples]{rjags::coda.samples}\cr \code{diag} \tab \link{logical} \tab \code{FALSE} \tab additional terminal convergence diagnostic. \code{FALSE} if \code{verbose = FALSE}\cr \code{progress.bar} \tab \link{logical} \tab \code{FALSE} \tab enable/disable progress bar. \code{FALSE} if \code{verbose = FALSE}\cr \code{quiet} \tab \link{logical} \tab \code{TRUE} \tab silence terminal output. Set to \code{TRUE} if \code{verbose = FALSE}\cr \code{return_mcmc}\tab \link{logical} \tab \code{FALSE} \tab return additional MCMC diagnostic information\cr } } \section{Function version}{ 0.1.0 } \examples{ ## set parameters Dr <- stats::rlnorm (1000, 0, 0.3) De <- 50*sample(Dr, 50, replace = TRUE) s <- stats::rnorm(50, 10, 2) ## run modelling ## note: modify parameters for more realistic results \dontrun{ results <- combine_De_Dr( Dr = Dr, int_OD = 0.1, De, s, Age_range = c(0,100), method_control = list( n.iter = 100, n.chains = 1)) ## show models used writeLines(results@info$model_IAM) writeLines(results@info$model_BCAM) } } \section{How to cite}{ Philippe, A., Galharret, J., Mercier, N., Kreutzer, S., 2025. combine_De_Dr(): Combine Dose Rate and Equivalent Dose Distribution. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Mercier, N., Galharret, J.-M., Tribolo, C., Kreutzer, S., Philippe, A., preprint. Luminescence age calculation through Bayesian convolution of equivalent dose and dose-rate distributions: the De_Dr model. Geochronology, 1-22. Galharret, J-M., Philippe, A., Mercier, N., preprint. Detection of outliers with a Bayesian hierarchical model: application to the single-grain luminescence dating method. Electronic Journal of Applied Statistics \strong{Further reading} Rousseeuw, P.J., Croux, C., 1993. Alternatives to the median absolute deviation. Journal of the American Statistical Association 88, 1273–1283. \doi{10.2307/2291267} Rousseeuw, P.J., Debruyne, M., Engelen, S., Hubert, M., 2006. Robustness and outlier detection in chemometrics. Critical Reviews in Analytical Chemistry 36, 221–242. \doi{10.1080/10408340600969403} } \seealso{ \link{plot_OSLAgeSummary}, \link[rjags:rjags-package]{rjags::rjags}, \link[mclust:mclust-package]{mclust::mclust-package} } \author{ Anne Philippe, Université de Nantes (France), Jean-Michel Galharret, Université de Nantes (France), Norbert Mercier, IRAMAT-CRP2A, Université Bordeaux Montaigne (France), Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{datagen} \keyword{distribution} \keyword{dplot} Luminescence/man/calc_IEU.Rd0000644000176200001440000000642414762561642015355 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_IEU.R \name{calc_IEU} \alias{calc_IEU} \title{Apply the internal-external-uncertainty (IEU) model after Thomsen et al. (2007) to a given De distribution} \usage{ calc_IEU(data, a, b, interval, decimal.point = 2, plot = TRUE, ...) } \arguments{ \item{data}{\linkS4class{RLum.Results} or \link{data.frame} (\strong{required}): for \link{data.frame}: two columns with De \code{(data[,1])} and De error \code{(values[,2])}} \item{a}{\link{numeric} (\strong{required}): slope} \item{b}{\link{numeric} (\strong{required}): intercept} \item{interval}{\link{numeric} (\strong{required}): fixed interval (e.g. 5 Gy) used for iteration of \code{Dbar}, from the mean to Lowest.De used to create Graph.IEU \verb{[Dbar.Fixed vs Z]}} \item{decimal.point}{\link{numeric} (\emph{with default}): number of decimal points for rounding calculations (e.g. 2)} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{further arguments (\verb{trace, verbose}).} } \value{ Returns a plot (\emph{optional}) and terminal output. In addition an \linkS4class{RLum.Results} object is returned containing the following elements: \item{.$summary}{\link{data.frame} summary of all relevant model results.} \item{.$data}{\link{data.frame} original input data} \item{.$args}{\link{list} used arguments} \item{.$call}{\link{call} the function call} \item{.$tables}{\link{list} a list of data frames containing all calculation tables} The output should be accessed using the function \link{get_RLum}. } \description{ Function to calculate the IEU De for a De data set. } \details{ This function uses the equations of Thomsen et al. (2007). The parameters a and b are estimated from dose-recovery experiments. } \section{Function version}{ 0.1.1 } \examples{ ## load data data(ExampleData.DeValues, envir = environment()) ## apply the IEU model ieu <- calc_IEU(ExampleData.DeValues$CA1, a = 0.2, b = 1.9, interval = 1) } \section{How to cite}{ Smedley, R.K., Colombo, M., 2025. calc_IEU(): Apply the internal-external-uncertainty (IEU) model after Thomsen et al. (2007) to a given De distribution. Function version 0.1.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Smedley, R.K., 2015. A new R function for the Internal External Uncertainty (IEU) model. Ancient TL 33, 16-21. Thomsen, K.J., Murray, A.S., Boetter-Jensen, L. & Kinahan, J., 2007. Determination of burial dose in incompletely bleached fluvial samples using single grains of quartz. Radiation Measurements 42, 370-379. } \seealso{ \link{plot}, \link{calc_CommonDose}, \link{calc_CentralDose}, \link{calc_FiniteMixture}, \link{calc_FuchsLang2001}, \link{calc_MinDose} } \author{ Rachel Smedley, Geography & Earth Sciences, Aberystwyth University (United Kingdom) \cr Based on an excel spreadsheet and accompanying macro written by Kristina Thomsen. \cr Marco Colombo, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} Luminescence/man/replicate_RLum.Rd0000644000176200001440000000243614762561642016657 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-generics.R \name{replicate_RLum} \alias{replicate_RLum} \title{General replication function for RLum S4 class objects} \usage{ replicate_RLum(object, times = NULL) } \arguments{ \item{object}{\linkS4class{RLum} (\strong{required}): an \linkS4class{RLum} object} \item{times}{\link{integer} (\emph{optional}): number for times each element is repeated element} } \value{ A \link{list} with the object repeated. } \description{ The function replicates RLum S4 class objects and returns a list of such objects. } \section{Function version}{ 0.1.0 } \seealso{ \linkS4class{RLum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. replicate_RLum(): General replication function for RLum S4 class objects. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{utilities} Luminescence/man/plot_KDE.Rd0000644000176200001440000001650714762561642015415 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_KDE.R \name{plot_KDE} \alias{plot_KDE} \title{Plot kernel density estimate with statistics} \usage{ plot_KDE( data, na.rm = TRUE, values.cumulative = TRUE, order = TRUE, boxplot = TRUE, rug = TRUE, summary, summary.pos, summary.method = "MCM", bw = "nrd0", output = TRUE, ... ) } \arguments{ \item{data}{\link{data.frame}, \link{vector} or \linkS4class{RLum.Results} object (\strong{required}): for \code{data.frame}: either two columns: De (\code{values[,1]}) and De error (\code{values[,2]}), or one: De (\code{values[,1]}). If a numeric vector or a single-column data frame is provided, De error is assumed to be 10^-9 for all measurements and error bars are not drawn. For plotting multiple data sets, these must be provided as \code{list} (e.g. \code{list(dataset1, dataset2)}).} \item{na.rm}{\link{logical} (\emph{with default}): exclude NA values from the data set prior to any further operation.} \item{values.cumulative}{\link{logical} (\emph{with default}): show cumulative individual data.} \item{order}{\link{logical} (\emph{with default}): Order data in ascending order.} \item{boxplot}{\link{logical} (\emph{with default}): optionally show a boxplot (depicting median as thick central line, first and third quartile as box limits, whiskers denoting +/- 1.5 interquartile ranges and dots further outliers).} \item{rug}{\link{logical} (\emph{with default}): optionally add rug.} \item{summary}{\link{character} (\emph{optional}): add statistic measures of centrality and dispersion to the plot. Can be one or more of several keywords. See details for available keywords.} \item{summary.pos}{\link{numeric} or \link{character} (\emph{optional}): optional position coordinates or keyword (e.g. \code{"topright"}) for the statistical summary. Alternatively, the keyword \code{"sub"} may be specified to place the summary below the plot header. However, this latter option in only possible if \code{mtext} is not used. In case of coordinate specification, y-coordinate refers to the right y-axis.} \item{summary.method}{\link{character} (\emph{with default}): keyword indicating the method used to calculate the statistic summary. One out of \code{"unweighted"}, \code{"weighted"} and \code{"MCM"}. See \link{calc_Statistics} for details.} \item{bw}{\link{character} (\emph{with default}): bin-width, chose a numeric value for manual setting.} \item{output}{\link{logical} (\emph{with default}): Optional output of numerical plot parameters. These can be useful to reproduce similar plots. Default is \code{TRUE}.} \item{...}{further arguments and graphical parameters passed to \link{plot}.} } \description{ Plot a kernel density estimate of measurement values in combination with the actual values and associated error bars in ascending order. If enabled, the boxplot will show the usual distribution parameters (median as bold line, box delimited by the first and third quartile, whiskers defined by the extremes and outliers shown as points) and also the mean and standard deviation as pale bold line and pale polygon, respectively. } \details{ The function allows passing several plot arguments, such as \code{main}, \code{xlab}, \code{cex}. However, as the figure is an overlay of two separate plots, \code{ylim} must be specified in the order: c(ymin_axis1, ymax_axis1, ymin_axis2, ymax_axis2) when using the cumulative values plot option. See examples for some further explanations. For details on the calculation of the bin-width (parameter \code{bw}) see \link{density}. A statistic summary, i.e. a collection of statistic measures of centrality and dispersion (and further measures) can be added by specifying one or more of the following keywords: \itemize{ \item \code{"n"} (number of samples) \item \code{"mean"} (mean De value) \item \code{"median"} (median of the De values) \item \code{"sd.rel"} (relative standard deviation in percent) \item \code{"sd.abs"} (absolute standard deviation) \item \code{"se.rel"} (relative standard error) \item \code{"se.abs"} (absolute standard error) \item \code{"in.2s"} (percent of samples in 2-sigma range) \item \code{"kurtosis"} (kurtosis) \item \code{"skewness"} (skewness) } \strong{Note} that the input data for the statistic summary is sent to the function \code{calc_Statistics()} depending on the log-option for the z-scale. If \code{"log.z = TRUE"}, the summary is based on the logarithms of the input data. If \code{"log.z = FALSE"} the linearly scaled data is used. \strong{Note} as well, that \code{"calc_Statistics()"} calculates these statistic measures in three different ways: \code{unweighted}, \code{weighted} and \code{MCM-based} (i.e., based on Monte Carlo Methods). By default, the MCM-based version is used. If you wish to use another method, indicate this with the appropriate keyword using the argument \code{summary.method}. } \note{ The plot output is no 'probability density' plot (cf. the discussion of Berger and Galbraith in Ancient TL; see references)! } \section{Function version}{ 3.6.0 } \examples{ ## read example data set data(ExampleData.DeValues, envir = environment()) ExampleData.DeValues <- convert_Second2Gray(ExampleData.DeValues$BT998, c(0.0438,0.0019)) ## create plot straightforward plot_KDE(data = ExampleData.DeValues) ## create plot with logarithmic x-axis plot_KDE(data = ExampleData.DeValues, log = "x") ## create plot with user-defined labels and axes limits plot_KDE(data = ExampleData.DeValues, main = "Dose distribution", xlab = "Dose (s)", ylab = c("KDE estimate", "Cumulative dose value"), xlim = c(100, 250), ylim = c(0, 0.08, 0, 30)) ## create plot with boxplot option plot_KDE(data = ExampleData.DeValues, boxplot = TRUE) ## create plot with statistical summary below header plot_KDE(data = ExampleData.DeValues, summary = c("n", "median", "skewness", "in.2s")) ## create plot with statistical summary as legend plot_KDE(data = ExampleData.DeValues, summary = c("n", "mean", "sd.rel", "se.abs"), summary.pos = "topleft") ## split data set into sub-groups, one is manipulated, and merge again data.1 <- ExampleData.DeValues[1:15,] data.2 <- ExampleData.DeValues[16:25,] * 1.3 data.3 <- list(data.1, data.2) ## create plot with two subsets straightforward plot_KDE(data = data.3) ## create plot with two subsets and summary legend at user coordinates plot_KDE(data = data.3, summary = c("n", "median", "skewness"), summary.pos = c(110, 0.07), col = c("blue", "orange")) ## example of how to use the numerical output of the function ## return plot output to draw a thicker KDE line KDE_out <- plot_KDE(data = ExampleData.DeValues, output = TRUE) } \seealso{ \link{density}, \link{plot} } \author{ Michael Dietze, GFZ Potsdam (Germany)\cr Geography & Earth Sciences, Aberystwyth University (United Kingdom) , RLum Developer Team} \section{How to cite}{ Dietze, M., 2025. plot_KDE(): Plot kernel density estimate with statistics. Function version 3.6.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } Luminescence/man/template_DRAC.Rd0000644000176200001440000000760214762561642016354 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/template_DRAC.R \name{template_DRAC} \alias{template_DRAC} \title{Create a DRAC input data template (v1.2)} \usage{ template_DRAC(nrow = 1L, preset = NULL, file_input = NULL, notification = TRUE) } \arguments{ \item{nrow}{\link{integer} (\emph{with default}): specifies the number of rows of the template (i.e., the number of data sets you want to submit).} \item{preset}{\link{character} (\emph{optional}): By default, all values of the template are set to \code{NA}, which means that the user needs to fill in \strong{all} data first before submitting to DRAC using \code{use_DRAC()}. To reduce the number of values that need to be provided, \code{preset} can be used to create a template with at least a minimum of reasonable preset values. \code{preset} can be one of the following: \itemize{ \item \code{quartz_coarse} \item \code{quartz_fine} \item \code{feldspar_coarse} \item \code{polymineral_fine} \item \code{DRAC-example_quartz} \item \code{DRAC-example_feldspar} \item \code{DRAC-example_polymineral} } Note that the last three options can be used to produce a template with values directly taken from the official DRAC input \code{.csv} file.} \item{file_input}{\link{character} file connection to a DRAC \code{.csv} file, the file will be imported and translated to the template that can be used by \link{use_DRAC}. Please note that there is not check on validity of the \code{.csv} file.} \item{notification}{\link{logical} (\emph{with default}): show or hide the notification} } \value{ A list of class \code{DRAC.list}. } \description{ This function returns a DRAC input template (v1.2) to be used in conjunction with the \link{use_DRAC} function } \examples{ # create a new DRAC input input input <- template_DRAC(preset = "DRAC-example_quartz") # show content of the input print(input) print(input$`Project ID`) print(input[[4]]) ## Example: DRAC Quartz example # note that you only have to assign new values where they # are different to the default values input$`Project ID` <- "DRAC-Example" input$`Sample ID` <- "Quartz" input$`Conversion factors` <- "AdamiecAitken1998" input$`External U (ppm)` <- 3.4 input$`errExternal U (ppm)` <- 0.51 input$`External Th (ppm)` <- 14.47 input$`errExternal Th (ppm)` <- 1.69 input$`External K (\%)` <- 1.2 input$`errExternal K (\%)` <- 0.14 input$`Calculate external Rb from K conc?` <- "N" input$`Calculate internal Rb from K conc?` <- "N" input$`Scale gammadoserate at shallow depths?` <- "N" input$`Grain size min (microns)` <- 90 input$`Grain size max (microns)` <- 125 input$`Water content ((wet weight - dry weight)/dry weight) \%` <- 5 input$`errWater content \%` <- 2 input$`Depth (m)` <- 2.2 input$`errDepth (m)` <- 0.22 input$`Overburden density (g cm-3)` <- 1.8 input$`errOverburden density (g cm-3)` <- 0.1 input$`Latitude (decimal degrees)` <- 30.0000 input$`Longitude (decimal degrees)` <- 70.0000 input$`Altitude (m)` <- 150 input$`De (Gy)` <- 20 input$`errDe (Gy)` <- 0.2 # use DRAC \dontrun{ output <- use_DRAC(input) } } \section{How to cite}{ Burow, C., Kreutzer, S., 2025. template_DRAC(): Create a DRAC input data template (v1.2). In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Durcan, J.A., King, G.E., Duller, G.A.T., 2015. DRAC: Dose Rate and Age Calculator for trapped charge dating. Quaternary Geochronology 28, 54-61. doi:10.1016/j.quageo.2015.03.012 } \seealso{ \link{as.data.frame}, \link{list} } \author{ Christoph Burow, University of Cologne (Germany), Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} Luminescence/man/convert_CW2pLMi.Rd0000644000176200001440000001260514762561642016664 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/convert_CW2pLMi.R \name{convert_CW2pLMi} \alias{convert_CW2pLMi} \alias{CW2pLMi} \title{Transform a CW-OSL curve into a pLM-OSL curve via interpolation under linear modulation conditions} \usage{ convert_CW2pLMi(values, P) CW2pLMi(values, P) } \arguments{ \item{values}{\linkS4class{RLum.Data.Curve} or \link{data.frame} (\strong{required}): \linkS4class{RLum.Data.Curve} or \code{data.frame} with measured curve data of type stimulation time (t) (\code{values[,1]}) and measured counts (cts) (\code{values[,2]})} \item{P}{\link{vector} (\emph{optional}): stimulation time in seconds. If no value is given the optimal value is estimated automatically (see details). Greater values of P produce more points in the rising tail of the curve.} } \value{ The function returns the same data type as the input data type with the transformed curve values. \strong{\code{RLum.Data.Curve}} \tabular{rl}{ \verb{$CW2pLMi.x.t} \tab: transformed time values \cr \verb{$CW2pLMi.method} \tab: used method for the production of the new data points } } \description{ Transforms a conventionally measured continuous-wave (CW) OSL-curve into a pseudo linearly modulated (pLM) curve under linear modulation conditions using the interpolation procedure described by Bos & Wallinga (2012). } \details{ The complete procedure of the transformation is given in Bos & Wallinga (2012). The input \code{data.frame} consists of two columns: time (t) and count values (CW(t)) \strong{Nomenclature} \itemize{ \item P = stimulation time (s) \item 1/P = stimulation rate (1/s) } \strong{Internal transformation steps} (1) log(CW-OSL) values (2) Calculate t' which is the transformed time: \deqn{t' = 1/2*1/P*t^2} (3) Interpolate CW(t'), i.e. use the log(CW(t)) to obtain the count values for the transformed time (t'). Values beyond \code{min(t)} and \code{max(t)} produce \code{NA} values. (4) Select all values for t' < \code{min(t)}, i.e. values beyond the time resolution of t. Select the first two values of the transformed data set which contain no \code{NA} values and use these values for a linear fit using \link{lm}. (5) Extrapolate values for t' < \code{min(t)} based on the previously obtained fit parameters. (6) Transform values using \deqn{pLM(t) = t/P*CW(t')} (7) Combine values and truncate all values for t' > \code{max(t)} \strong{NOTE:} The number of values for t' < \code{min(t)} depends on the stimulation period (P) and therefore on the stimulation rate 1/P. To avoid the production of too many artificial data at the raising tail of the determined pLM curves it is recommended to use the automatic estimation routine for \code{P}, i.e. provide no own value for \code{P}. } \note{ According to Bos & Wallinga (2012) the number of extrapolated points should be limited to avoid artificial intensity data. If \code{P} is provided manually and more than two points are extrapolated, a warning message is returned. } \section{Function version}{ 0.3.2 } \examples{ ##(1) ##load CW-OSL curve data data(ExampleData.CW_OSL_Curve, envir = environment()) ##transform values values.transformed <- convert_CW2pLMi(ExampleData.CW_OSL_Curve) ##plot plot(values.transformed$x, values.transformed$y.t, log = "x") ##(2) - produce Fig. 4 from Bos & Wallinga (2012) ##load data data(ExampleData.CW_OSL_Curve, envir = environment()) values <- CW_Curve.BosWallinga2012 ##open plot area plot(NA, NA, xlim = c(0.001,10), ylim = c(0,8000), ylab = "pseudo OSL (cts/0.01 s)", xlab = "t [s]", log = "x", main = "Fig. 4 - Bos & Wallinga (2012)") values.t <- convert_CW2pLMi(values, P = 1/20) lines(values[1:length(values.t[, 1]), 1], values.t[, 2], col = "red", lwd = 1.3) text(0.03,4500,"LM", col = "red", cex = .8) values.t <- convert_CW2pHMi(values, delta = 40) lines(values[1:length(values.t[, 1]), 1], values.t[, 2], col = "black", lwd = 1.3) text(0.005,3000,"HM", cex =.8) values.t <- convert_CW2pPMi(values, P = 1/10) lines(values[1:length(values.t[, 1]), 1], values.t[, 2], col = "blue", lwd = 1.3) text(0.5,6500,"PM", col = "blue", cex = .8) } \section{How to cite}{ Kreutzer, S., 2025. convert_CW2pLMi(): Transform a CW-OSL curve into a pLM-OSL curve via interpolation under linear modulation conditions. Function version 0.3.2. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Bos, A.J.J. & Wallinga, J., 2012. How to visualize quartz OSL signal components. Radiation Measurements, 47, 752-758. \strong{Further Reading} Bulur, E., 1996. An Alternative Technique For Optically Stimulated Luminescence (OSL) Experiment. Radiation Measurements, 26, 701-709. Bulur, E., 2000. A simple transformation for converting CW-OSL curves to LM-OSL curves. Radiation Measurements, 32, 141-145. } \seealso{ \link{convert_CW2pLM}, \link{convert_CW2pHMi}, \link{convert_CW2pPMi}, \link{fit_LMCurve}, \linkS4class{RLum.Data.Curve} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) Based on comments and suggestions from:\cr Adrie J.J. Bos, Delft University of Technology, The Netherlands , RLum Developer Team} \keyword{manip} Luminescence/man/plot_RLum.Data.Curve.Rd0000644000176200001440000000605514762561642017621 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_RLum.Data.Curve.R \name{plot_RLum.Data.Curve} \alias{plot_RLum.Data.Curve} \title{Plot function for an RLum.Data.Curve S4 class object} \usage{ plot_RLum.Data.Curve( object, par.local = TRUE, norm = FALSE, smooth = FALSE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Data.Curve} (\strong{required}): S4 object of class \code{RLum.Data.Curve}} \item{par.local}{\link{logical} (\emph{with default}): use local graphical parameters for plotting, e.g. the plot is shown in one column and one row. If \code{par.local = FALSE}, global parameters are inherited.} \item{norm}{\link{logical} \link{character} (\emph{with default}): whether curve normalisation should occur (\code{FALSE} by default). Alternatively, the function offers modes \code{"max"} (used with \code{TRUE}), \code{"last"} and \code{"huot"}, see details.} \item{smooth}{\link{logical} (\emph{with default}): provides automatic curve smoothing based on the internal function \code{.smoothing}} \item{...}{further arguments and graphical parameters that will be passed to the \code{plot} function} } \value{ Returns a plot. } \description{ The function provides a standardised plot output for curve data of an \code{RLum.Data.Curve} S4-class object. } \details{ Only single curve data can be plotted with this function. Arguments according to \link{plot}. \strong{Curve normalisation} The argument \code{norm} normalises all count values. To date the following options are supported: \code{norm = TRUE} or \code{norm = "max"}: Curve values are normalised to the highest count value in the curve \code{norm = "last"}: Curve values are normalised to the last count value (this can be useful in particular for radiofluorescence curves) \code{norm = "huot"}: Curve values are normalised as suggested by Sébastien Huot via GitHub: \deqn{ y = (observed - median(background)) / (max(observed) - median(background)) } The background of the curve is defined as the last 20\% of the count values of a curve. } \note{ Not all arguments of \link{plot} will be passed! } \section{Function version}{ 0.2.6 } \examples{ ##plot curve data #load Example data data(ExampleData.CW_OSL_Curve, envir = environment()) #transform data.frame to RLum.Data.Curve object temp <- as(ExampleData.CW_OSL_Curve, "RLum.Data.Curve") #plot RLum.Data.Curve object plot_RLum.Data.Curve(temp) } \seealso{ \link{plot}, \link{plot_RLum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. plot_RLum.Data.Curve(): Plot function for an RLum.Data.Curve S4 class object. Function version 0.2.6. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{aplot} Luminescence/man/calc_MaxDose.Rd0000644000176200001440000001344214762561642016271 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_MaxDose.R \name{calc_MaxDose} \alias{calc_MaxDose} \title{Apply the maximum age model to a given De distribution} \usage{ calc_MaxDose( data, sigmab, log = TRUE, par = 3, bootstrap = FALSE, init.values, plot = TRUE, ... ) } \arguments{ \item{data}{\linkS4class{RLum.Results} or \link{data.frame} (\strong{required}): for \link{data.frame}: two columns with De \code{(data[ ,1])} and De error \code{(data[ ,2])}.} \item{sigmab}{\link{numeric} (\strong{required}): additional spread in De values. This value represents the expected overdispersion in the data should the sample be well-bleached (Cunningham & Walling 2012, p. 100). \strong{NOTE}: For the logged model (\code{log = TRUE}) this value must be a fraction, e.g. 0.2 (= 20 \%). If the un-logged model is used (\code{log = FALSE}), sigmab must be provided in the same absolute units of the De values (seconds or Gray). See details (\link{calc_MinDose}.} \item{log}{\link{logical} (\emph{with default}): fit the (un-)logged three parameter minimum dose model to De data} \item{par}{\link{numeric} (\emph{with default}): apply the 3- or 4-parameter minimum age model (\code{par=3} or \code{par=4}).} \item{bootstrap}{\link{logical} (\emph{with default}): apply the recycled bootstrap approach of Cunningham & Wallinga (2012).} \item{init.values}{\link{numeric} (\emph{with default}): starting values for gamma, sigma, p0 and mu. Custom values need to be provided in a vector of length three in the form of \code{c(gamma, sigma, p0)}.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{further arguments for bootstrapping (\verb{bs.M, bs.N, bs.h, sigmab.sd}). See details for their usage.} } \value{ Please see \link{calc_MinDose}. } \description{ Function to fit the maximum age model to De data. This is a wrapper function that calls \link{calc_MinDose} and applies a similar approach as described in Olley et al. (2006). } \details{ \strong{Data transformation} To estimate the maximum dose population and its standard error, the three parameter minimum age model of Galbraith et al. (1999) is adapted. The measured De values are transformed as follows: \enumerate{ \item convert De values to natural logs \item multiply the logged data to create a mirror image of the De distribution \item shift De values along x-axis by the smallest x-value found to obtain only positive values \item combine in quadrature the measurement error associated with each De value with a relative error specified by \code{sigmab} \item apply the MAM to these data } When all calculations are done the results are then converted as follows \enumerate{ \item subtract the x-offset \item multiply the natural logs by -1 \item take the exponent to obtain the maximum dose estimate in Gy } \strong{Further documentation} Please see \link{calc_MinDose}. } \section{Function version}{ 0.3.1 } \examples{ ## load example data data(ExampleData.DeValues, envir = environment()) # apply the maximum dose model calc_MaxDose(ExampleData.DeValues$CA1, sigmab = 0.2, par = 3) } \section{How to cite}{ Burow, C., 2025. calc_MaxDose(): Apply the maximum age model to a given De distribution. Function version 0.3.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Arnold, L.J., Roberts, R.G., Galbraith, R.F. & DeLong, S.B., 2009. A revised burial dose estimation procedure for optical dating of young and modern-age sediments. Quaternary Geochronology 4, 306-325. Galbraith, R.F. & Laslett, G.M., 1993. Statistical models for mixed fission track ages. Nuclear Tracks Radiation Measurements 4, 459-470. Galbraith, R.F., Roberts, R.G., Laslett, G.M., Yoshida, H. & Olley, J.M., 1999. Optical dating of single grains of quartz from Jinmium rock shelter, northern Australia. Part I: experimental design and statistical models. Archaeometry 41, 339-364. Galbraith, R.F., 2005. Statistics for Fission Track Analysis, Chapman & Hall/CRC, Boca Raton. Galbraith, R.F. & Roberts, R.G., 2012. Statistical aspects of equivalent dose and error calculation and display in OSL dating: An overview and some recommendations. Quaternary Geochronology 11, 1-27. Olley, J.M., Roberts, R.G., Yoshida, H., Bowler, J.M., 2006. Single-grain optical dating of grave-infill associated with human burials at Lake Mungo, Australia. Quaternary Science Reviews 25, 2469-2474 \strong{Further reading} Arnold, L.J. & Roberts, R.G., 2009. Stochastic modelling of multi-grain equivalent dose (De) distributions: Implications for OSL dating of sediment mixtures. Quaternary Geochronology 4, 204-230. Bailey, R.M. & Arnold, L.J., 2006. Statistical modelling of single grain quartz De distributions and an assessment of procedures for estimating burial dose. Quaternary Science Reviews 25, 2475-2502. Cunningham, A.C. & Wallinga, J., 2012. Realizing the potential of fluvial archives using robust OSL chronologies. Quaternary Geochronology 12, 98-106. Rodnight, H., Duller, G.A.T., Wintle, A.G. & Tooth, S., 2006. Assessing the reproducibility and accuracy of optical dating of fluvial deposits. Quaternary Geochronology 1, 109-120. Rodnight, H., 2008. How many equivalent dose values are needed to obtain a reproducible distribution?. Ancient TL 26, 3-10. } \seealso{ \link{calc_CentralDose}, \link{calc_CommonDose}, \link{calc_FiniteMixture}, \link{calc_FuchsLang2001}, \link{calc_MinDose} } \author{ Christoph Burow, University of Cologne (Germany) \cr Based on a rewritten S script of Rex Galbraith, 2010 , RLum Developer Team} Luminescence/man/plot_RLum.Rd0000644000176200001440000000570514762561642015667 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_RLum.R \name{plot_RLum} \alias{plot_RLum} \title{General plot function for RLum S4 class objects} \usage{ plot_RLum(object, ...) } \arguments{ \item{object}{\linkS4class{RLum} (\strong{required}): S4 object of class \code{RLum}. Optional a \link{list} containing objects of class \linkS4class{RLum} can be provided. In this case the function tries to plot every object in this list according to its \code{RLum} class. Non-RLum objects are removed.} \item{...}{further arguments and graphical parameters that will be passed to the specific plot functions. The only argument that is supported directly is \code{main} (setting the plot title). In contrast to the normal behaviour \code{main} can be here provided as \link{list} and the arguments in the list will dispatched to the plots if the \code{object} is of type \code{list} as well.} } \value{ Returns a plot. } \description{ Function calls object specific plot functions for RLum S4 class objects. } \details{ The function provides a generalised access point for plotting specific \linkS4class{RLum} objects.\cr Depending on the input object, the corresponding plot function will be selected. Allowed arguments can be found in the documentations of each plot function. \tabular{lll}{ \strong{object} \tab \tab \strong{corresponding plot function} \cr \linkS4class{RLum.Data.Curve} \tab : \tab \link{plot_RLum.Data.Curve} \cr \linkS4class{RLum.Data.Spectrum} \tab : \tab \link{plot_RLum.Data.Spectrum}\cr \linkS4class{RLum.Data.Image} \tab : \tab \link{plot_RLum.Data.Image}\cr \linkS4class{RLum.Analysis} \tab : \tab \link{plot_RLum.Analysis}\cr \linkS4class{RLum.Results} \tab : \tab \link{plot_RLum.Results} } } \note{ The provided plot output depends on the input object. } \section{Function version}{ 0.4.4 } \examples{ #load Example data data(ExampleData.CW_OSL_Curve, envir = environment()) #transform data.frame to RLum.Data.Curve object temp <- as(ExampleData.CW_OSL_Curve, "RLum.Data.Curve") #plot RLum object plot_RLum(temp) } \seealso{ \link{plot_RLum.Data.Curve}, \linkS4class{RLum.Data.Curve}, \link{plot_RLum.Data.Spectrum}, \linkS4class{RLum.Data.Spectrum}, \link{plot_RLum.Data.Image}, \linkS4class{RLum.Data.Image}, \link{plot_RLum.Analysis}, \linkS4class{RLum.Analysis}, \link{plot_RLum.Results}, \linkS4class{RLum.Results} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. plot_RLum(): General plot function for RLum S4 class objects. Function version 0.4.4. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{dplot} Luminescence/man/calc_MoransI.Rd0000644000176200001440000001203314762561642016274 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_MoransI.R \name{calc_MoransI} \alias{calc_MoransI} \title{Calculate Moran's I} \usage{ calc_MoransI( object, df_neighbours = NULL, spatial_autocorrelation = TRUE, compute_pseudo_p = FALSE, tested_moransI = NULL, n_permutations = 999, ignore_borders = FALSE, return_intermediate_values = FALSE ) } \arguments{ \item{object}{\linkS4class{RLum.Results} or \link{numeric} (\strong{required}) containing the values of the grains of one. Should have length 100; can contain \code{NA} values.} \item{df_neighbours}{\link{data.frame} (\emph{with default}): a data frame with 3 columns (\code{location}, \code{neighbour} and \code{weight}, respectively), with each row indicating the index of one location and one of its neighbours (note that the concept of "location" versus "neighbour" is symmetric, so each neighbouring pair needs to be specified only once), alongside their relative weight (generally set to 1). If \code{NULL} (default), this is constructed automatically by the internal function \code{.get_Neighbours}.} \item{spatial_autocorrelation}{\link{logical} (\emph{with default}): whether spatial autocorrelation should be considered in the computation of Moran's I (\code{TRUE} by default). If \code{FALSE}, the function computes Moran's I expected value in case of no autocorrelation (H_0). See details for further information.} \item{compute_pseudo_p}{\link{logical} (\emph{with default}): whether a pseudo p-value should be computed (\code{FALSE} by default).} \item{tested_moransI}{\link{numeric} (\emph{with default}): The value of Moran's I to be tested against when computing the pseudo p-value. If \code{NULL} (default), the value calculated by the function will be used. Ignored if \code{compute_pseudo_p} is \code{FALSE}.} \item{n_permutations}{\link{integer} (\emph{with default}): number of random permutations tested to calculate the fraction which is the pseudo p (defaults to 999). Influences the calculation speed, which will have impact in case of large scale simulation loops. Ignored if \code{compute_pseudo_p} is \code{FALSE}.} \item{ignore_borders}{\link{logical} (\emph{with default}): whether only grain locations that do not lie on the border of the disc should be considered (\code{FALSE} by default). Thus if \code{TRUE}, only the inner 8x8 grain locations rather than the full 10x10 are considered. Ignored if \code{df_neighbours} is not \code{NULL} or if \code{spatial_autocorrelation = FALSE}.} \item{return_intermediate_values}{\link{logical} (\emph{with default}): whether the function should return a list with several intermediate calculation results (defaults to \code{FALSE}). Ignored if \code{spatial_autocorrelation} is \code{FALSE}.} } \value{ By default one numerical value, roughly between -1 and 1, where close to zero means no spatial correlation, and value close to 1 a positive spatial correlation given the pattern we interested in (by default all rook neighbours). A value closer to -1 has no meaning within the context of luminescence crosstalk. If \code{compute_pseudo_p = TRUE}, then the computed pseudo p-value is returned. If \code{return_intermediate_values} is set to \code{TRUE}, a list with several values used for calculation is returned instead of a single outcome. } \description{ Calculate Moran's I } \details{ \strong{Case of no spatial autocorrelation} Perhaps a bit counter-intuitive, the expected value of Moran's I under the null hypothesis of no spatial correlation is a value slightly smaller than zero. When setting \code{spatial_autocorrelation = FALSE}, this function calculates the expected value based on the number of observations or the length of the observation vector (while taking out \code{NA} values). Note that the expected value only depends on the number of observed separate grain values. This can be useful for plotting. The expected Moran's I for the null hypothesis of no spatial correlation corresponds to \code{-1 / (n - 1)}, with \code{n} being the number of non-missing observations. } \examples{ ## Test a fictional sample with spatial correlation calc_MoransI(object = c(1:100)) ## Test some fictional samples without spatial correlation; ## note the randomness with each repetition calc_MoransI(object = rnorm(n = 100)) calc_MoransI(object = rnorm(n = 100)) calc_MoransI(object = rnorm(n = 100)) } \section{How to cite}{ Boer, A.d., Steinbuch, L., 2025. calc_MoransI(): Calculate Moran's I. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ de Boer, A-M., Steinbuch, L., Heuvelink, G.B.M., Wallinga, J., 2025. A novel tool to assess crosstalk in single-grain luminescence detection. Submitted. } \author{ Anna-Maartje de Boer, Luc Steinbuch, Wageningen University & Research, 2025 , RLum Developer Team} Luminescence/man/calc_gSGC_feldspar.Rd0000644000176200001440000000675614762561642017406 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_gSGC_feldspar.R \name{calc_gSGC_feldspar} \alias{calc_gSGC_feldspar} \title{Calculate Global Standardised Growth Curve (gSGC) for Feldspar MET-pIRIR} \usage{ calc_gSGC_feldspar( data, gSGC.type = "50LxTx", gSGC.parameters, n.MC = 100, plot = FALSE ) } \arguments{ \item{data}{\link{data.frame} (\strong{required}): data frame with five columns per sample \code{c("LnTn", "LnTn.error", "Lr1Tr1", "Lr1Tr1.error","Dr1")}} \item{gSGC.type}{\link{character} (\emph{with default}): growth curve type to be selected according to Table 3 in Li et al. (2015). Allowed options are \code{"50LxTx"}, \code{"50Lx"}, \code{"50Tx"}, \code{"100LxTx"}, \code{"100Lx"}, \code{"100Tx"}, \code{"150LxTx"}, \code{"150Lx"}, \code{"150Tx"}, \code{"200LxTx"}, \code{"200Lx"}, \code{"200Tx"}, \code{"250LxTx"}, \code{"250Lx"}, \code{"250Tx"}} \item{gSGC.parameters}{\link{data.frame} (\emph{optional}): an own parameter set for the gSGC with the following columns \code{y1}, \code{y1_err}, \code{D1} \code{D1_err}, \code{y2}, \code{y2_err}, \code{y0}, \code{y0_err}.} \item{n.MC}{\link{numeric} (\emph{with default}): number of Monte-Carlo runs for the error calculation} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} } \value{ Returns an S4 object of type \linkS4class{RLum.Results}. \strong{\verb{@data}}\cr \verb{$ df} (\link{data.frame}) \cr \code{.. $DE} the calculated equivalent dose\cr \code{.. $DE.ERROR} error on the equivalent dose, which is the standard deviation of the MC runs\cr \code{.. $HPD95_LOWER} lower boundary of the highest probability density (95\%)\cr \code{.. $HPD95_UPPER} upper boundary of the highest probability density (95\%)\cr \verb{$ m.MC} (\link{list}) numeric vector with results from the MC runs.\cr \strong{\verb{@info}}\cr `$ call`` (\link{call}) the original function call } \description{ Implementation of the gSGC approach for feldspar MET-pIRIR by Li et al. (2015) } \details{ ##TODO } \section{Function version}{ 0.1.0 } \examples{ ##test on a generated random sample n_samples <- 10 data <- data.frame( LnTn = rnorm(n=n_samples, mean=1.0, sd=0.02), LnTn.error = rnorm(n=n_samples, mean=0.05, sd=0.002), Lr1Tr1 = rnorm(n=n_samples, mean=1.0, sd=0.02), Lr1Tr1.error = rnorm(n=n_samples, mean=0.05, sd=0.002), Dr1 = rep(100,n_samples)) results <- calc_gSGC_feldspar( data = data, gSGC.type = "50LxTx", plot = FALSE) plot_AbanicoPlot(results) } \section{How to cite}{ Gray, H.J., Kreutzer, S., 2025. calc_gSGC_feldspar(): Calculate Global Standardised Growth Curve (gSGC) for Feldspar MET-pIRIR. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Li, B., Roberts, R.G., Jacobs, Z., Li, S.-H., Guo, Y.-J., 2015. Construction of a “global standardised growth curve” (gSGC) for infrared stimulated luminescence dating of K-feldspar 27, 119–130. \doi{10.1016/j.quageo.2015.02.010} } \seealso{ \linkS4class{RLum.Results}, \link{get_RLum}, \link{uniroot}, \link{calc_gSGC} } \author{ Harrison Gray, USGS (United States), Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{datagen} Luminescence/man/extract_IrradiationTimes.Rd0000644000176200001440000001520514762561642020747 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/extract_IrradiationTimes.R \name{extract_IrradiationTimes} \alias{extract_IrradiationTimes} \title{Extract Irradiation Times from an XSYG-file} \usage{ extract_IrradiationTimes( object, file.BINX, recordType = c("irradiation (NA)", "IRSL (UVVIS)", "OSL (UVVIS)", "TL (UVVIS)"), compatibility.mode = TRUE, txtProgressBar = TRUE ) } \arguments{ \item{object}{\link{character}, \linkS4class{RLum.Analysis} or \link{list} (\strong{required}): path and file name of the XSYG file or an \linkS4class{RLum.Analysis} produced by the function \link{read_XSYG2R}; alternatively a \code{list} of \linkS4class{RLum.Analysis} can be provided. \strong{Note}: If an \linkS4class{RLum.Analysis} is used, any input for the arguments \code{file.BINX} and \code{recordType} will be ignored!} \item{file.BINX}{\link{character} (\emph{optional}): path and file name of an existing BINX-file. If a file name is provided the file will be updated with the information from the XSYG file in the same folder as the original BINX-file. \strong{Note:} The XSYG and the BINX-file must originate from the same measurement!} \item{recordType}{\link{character} (\emph{with default}): select relevant curves types from the XSYG file or \linkS4class{RLum.Analysis} object. As the XSYG-file format comprises much more information than usually needed for routine data analysis and allowed in the BINX-file format, only the relevant curves are selected by using the function \link{get_RLum}. The argument \code{recordType} works as described for this function. \strong{Note:} A wrong selection will causes a function error. Please change this argument only if you have reasons to do so.} \item{compatibility.mode}{\link{logical} (\emph{with default}): this option is parsed only if a BIN/BINX file is produced and it will reset all position values to a max. value of 48, cf.\link{write_R2BIN}} \item{txtProgressBar}{\link{logical} (\emph{with default}): enable/disable the progress bar during import and export.} } \value{ An \linkS4class{RLum.Results} object is returned with the following structure: \if{html}{\out{
}}\preformatted{.. $irr.times (data.frame) }\if{html}{\out{
}} If a BINX-file path and name is set, the output will be additionally transferred into a new BINX-file with the function name as suffix. For the output the path of the input BINX-file itself is used. Note that this will not work if the input object is a file path to an XSYG-file, instead of a link to only one file. In this case the argument input for \code{file.BINX} is ignored. In the self call mode (input is a \code{list} of \linkS4class{RLum.Analysis} objects a list of \linkS4class{RLum.Results} is returned. } \description{ Extracts irradiation times, dose and times since last irradiation, from a Freiberg Instruments XSYG-file. These information can be further used to update an existing BINX-file. } \details{ The function was written to compensate missing information in the BINX-file output of Freiberg Instruments lexsyg readers. As all information are available within the XSYG-file anyway, these information can be extracted and used for further analysis or/and to stored in a new BINX-file, which can be further used by other software, e.g., Analyst (Geoff Duller). Typical application example: g-value estimation from fading measurements using the Analyst or any other self-written script. Beside some simple data transformation steps, the function applies functions \link{read_XSYG2R}, \link{read_BIN2R}, \link{write_R2BIN} for data import and export. } \note{ The function can be also used to extract irradiation times from \linkS4class{RLum.Analysis} objects previously imported via \link{read_BIN2R} (\code{fastForward = TRUE}) or in combination with \link{Risoe.BINfileData2RLum.Analysis}. Unfortunately the timestamp might not be very precise (or even invalid), but it allows to essentially treat different formats in a similar manner. The produced output object contains still the irradiation steps to keep the output transparent. However, for the BINX-file export this steps are removed as the BINX-file format description does not allow irradiations as separate sequences steps. \strong{BINX-file 'Time Since Irradiation' value differs from the table output?} The way the value 'Time Since Irradiation' is defined differs. In the BINX-file the 'Time Since Irradiation' is calculated as the 'Time Since Irradiation' plus the 'Irradiation Time'. The table output returns only the real 'Time Since Irradiation', i.e. time between the end of the irradiation and the next step. \strong{Negative values for \code{TIMESINCELAST.STEP}?} Yes, this is possible and no bug, as in the XSYG-file multiple curves are stored for one step. Example: TL step may comprise three curves: \itemize{ \item (a) counts vs. time, \item (b) measured temperature vs. time and \item (c) predefined temperature vs. time. } Three curves, but they are all belonging to one TL measurement step, but with regard to the time stamps this could produce negative values as the important function (\link{read_XSYG2R}) do not change the order of entries for one step towards a correct time order. } \section{Function version}{ 0.3.4 } \examples{ ## (1) - example for your own data ## ## set files and run function # # file.XSYG <- file.choose() # file.BINX <- file.choose() # # output <- extract_IrradiationTimes(file.XSYG = file.XSYG, file.BINX = file.BINX) # get_RLum(output) # ## export results additionally to a CSV-file in the same directory as the XSYG-file # write.table(x = get_RLum(output), # file = paste0(file.BINX,"_extract_IrradiationTimes.csv"), # sep = ";", # row.names = FALSE) } \section{How to cite}{ Kreutzer, S., 2025. extract_IrradiationTimes(): Extract Irradiation Times from an XSYG-file. Function version 0.3.4. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Duller, G.A.T., 2015. The Analyst software package for luminescence data: overview and recent improvements. Ancient TL 33, 35-42. } \seealso{ \linkS4class{RLum.Analysis}, \linkS4class{RLum.Results}, \linkS4class{Risoe.BINfileData}, \link{read_XSYG2R}, \link{read_BIN2R}, \link{write_R2BIN} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{IO} \keyword{manip} Luminescence/man/convert_BIN2CSV.Rd0000644000176200001440000000401214762561642016546 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/convert_BIN2CSV.R \name{convert_BIN2CSV} \alias{convert_BIN2CSV} \title{Export Risoe BIN-file(s) to CSV-files} \usage{ convert_BIN2CSV(file, ...) } \arguments{ \item{file}{\link{character} (\strong{required}): name of the BIN-file to be converted to CSV-files} \item{...}{further arguments that will be passed to the function \link{read_BIN2R} and \link{write_RLum2CSV}} } \value{ The function returns either a CSV-file (or many of them) or for the option \code{export == FALSE} a list comprising objects of type \link{data.frame} and \link{matrix} } \description{ This function is a wrapper function around the functions \link{read_BIN2R} and \link{write_RLum2CSV} and it imports a Risoe BIN-file and directly exports its content to CSV-files. If nothing is set for the argument \code{path} (\link{write_RLum2CSV}) the input folder will become the output folder. } \section{Function version}{ 0.1.0 } \examples{ ##transform Risoe.BINfileData values to a list data(ExampleData.BINfileData, envir = environment()) convert_BIN2CSV(subset(CWOSL.SAR.Data, POSITION == 1), export = FALSE) \dontrun{ ##select your BIN-file file <- file.choose() ##convert convert_BIN2CSV(file) } } \seealso{ \linkS4class{RLum.Analysis}, \linkS4class{RLum.Data}, \linkS4class{RLum.Results}, \link[utils:write.table]{utils::write.table}, \link{write_RLum2CSV}, \link{read_BIN2R} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. convert_BIN2CSV(): Export Risoe BIN-file(s) to CSV-files. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{IO} Luminescence/man/Risoe.BINfileData2RLum.Analysis.Rd0000644000176200001440000000766014762561642021542 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Risoe.BINfileData2RLum.Analysis.R \name{Risoe.BINfileData2RLum.Analysis} \alias{Risoe.BINfileData2RLum.Analysis} \title{Convert Risoe.BINfileData object to an RLum.Analysis object} \usage{ Risoe.BINfileData2RLum.Analysis( object, pos = NULL, grain = NULL, run = NULL, set = NULL, ltype = NULL, dtype = NULL, protocol = "unknown", keep.empty = TRUE, txtProgressBar = FALSE ) } \arguments{ \item{object}{\linkS4class{Risoe.BINfileData} (\strong{required}): \code{Risoe.BINfileData} object} \item{pos}{\link{numeric} (\emph{optional}): position number of the \code{Risoe.BINfileData} object for which the curves are stored in the \code{RLum.Analysis} object. If \code{length(position)>1} a list of \code{RLum.Analysis} objects is returned. If nothing is provided every position will be converted. If the position is not valid \code{NULL} is returned.} \item{grain}{\link{vector}, \link{numeric} (\emph{optional}): grain number from the measurement to limit the converted data set (e.g., \code{grain = c(1:48)}). Please be aware that this option may lead to unwanted effects, as the output is strictly limited to the chosen grain number for all position numbers} \item{run}{\link{vector}, \link{numeric} (\emph{optional}): run number from the measurement to limit the converted data set (e.g., \code{run = c(1:48)}).} \item{set}{\link{vector}, \link{numeric} (\emph{optional}): set number from the measurement to limit the converted data set (e.g., \code{set = c(1:48)}).} \item{ltype}{\link{vector}, \link{character} (\emph{optional}): curve type to limit the converted data. Commonly allowed values are: \code{IRSL}, \code{OSL}, \code{TL}, \code{RIR}, \code{RBR} and \code{USER} (see also \linkS4class{Risoe.BINfileData})} \item{dtype}{\link{vector}, \link{character} (\emph{optional}): data type to limit the converted data. Commonly allowed values are listed in \linkS4class{Risoe.BINfileData}} \item{protocol}{\link{character} (\emph{optional}): sets protocol type for analysis object. Value may be used by subsequent analysis functions.} \item{keep.empty}{\link{logical} (\emph{with default}): If \code{TRUE} (default) an \code{RLum.Analysis} object is returned even if it does not contain any records. Set to \code{FALSE} to discard all empty objects.} \item{txtProgressBar}{\link{logical} (\emph{with default}): enable/disable the progress bar.} } \value{ Returns an \linkS4class{RLum.Analysis} object. } \description{ Converts values from one specific position of a Risoe.BINfileData S4-class object to an RLum.Analysis object. The \linkS4class{RLum.Analysis} object requires a set of curves for specific further protocol analyses. However, the \linkS4class{Risoe.BINfileData} usually contains a set of curves for different aliquots and different protocol types that may be mixed up. Therefore, a conversion is needed. } \note{ The \code{protocol} argument of the \linkS4class{RLum.Analysis} object is set to 'unknown' if not stated otherwise. } \section{Function version}{ 0.4.3 } \examples{ ##load data data(ExampleData.BINfileData, envir = environment()) ##convert values for position 1 Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1) } \seealso{ \linkS4class{Risoe.BINfileData}, \linkS4class{RLum.Analysis}, \link{read_BIN2R} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. Risoe.BINfileData2RLum.Analysis(): Convert Risoe.BINfileData object to an RLum.Analysis object. Function version 0.4.3. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{manip} Luminescence/man/plot_RLum.Results.Rd0000644000176200001440000000426214762561642017324 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_RLum.Results.R \name{plot_RLum.Results} \alias{plot_RLum.Results} \title{Plot function for an RLum.Results S4 class object} \usage{ plot_RLum.Results(object, single = TRUE, ...) } \arguments{ \item{object}{\linkS4class{RLum.Results} (\strong{required}): S4 object of class \code{RLum.Results}} \item{single}{\link{logical} (\emph{with default}): single plot output (\code{TRUE/FALSE}) to allow for plotting the results in as few plot windows as possible.} \item{...}{further arguments and graphical parameters will be passed to the \code{plot} function.} } \value{ Returns multiple plots. } \description{ The function provides a standardised plot output for data of an RLum.Results S4 class object } \details{ The function produces a multiple plot output. A file output is recommended (e.g., \link{pdf}). } \note{ Not all arguments available for \link{plot} will be passed! Only plotting of \code{RLum.Results} objects are supported. } \section{Function version}{ 0.2.1 } \examples{ ###load data data(ExampleData.DeValues, envir = environment()) # apply the un-logged minimum age model mam <- calc_MinDose(data = ExampleData.DeValues$CA1, sigmab = 0.2, log = TRUE, plot = FALSE) ##plot plot_RLum.Results(mam) # estimate the number of grains on an aliquot grains<- calc_AliquotSize(grain.size = c(100,150), sample.diameter = 1, plot = FALSE, MC.iter = 100) ##plot plot_RLum.Results(grains) } \seealso{ \link{plot}, \link{plot_RLum} } \author{ Christoph Burow, University of Cologne (Germany) \cr Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Burow, C., Kreutzer, S., 2025. plot_RLum.Results(): Plot function for an RLum.Results S4 class object. Function version 0.2.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{aplot} Luminescence/man/plot_SingleGrainDisc.Rd0000644000176200001440000000762614762561642020021 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_SingleGrainDisc.R \name{plot_SingleGrainDisc} \alias{plot_SingleGrainDisc} \title{Plot a disc with its values} \usage{ plot_SingleGrainDisc( object, show_coordinates = FALSE, show_location_ids = FALSE, show_neighbours = FALSE, show_positioning_holes = TRUE, df_neighbours = NULL, ignore_borders = FALSE, str_transform = "sqrt", ... ) } \arguments{ \item{object}{\linkS4class{RLum.Results} or \link{numeric} (\strong{required}): the values to show, should have length 100.} \item{show_coordinates}{\link{logical} (\emph{with default}): Show coordinates (1..10) in x and in y direction. Defaults to \code{FALSE}.} \item{show_location_ids}{\link{logical} (\emph{with default}): Show id with every grain location (1..100). Defaults to \code{FALSE}.} \item{show_neighbours}{\link{logical} (\emph{with default}): Show which neighbour connections are taken into account if calculating Moran's I. This makes sense when there are \code{NA} observations, or when a non-standard neighbour setting is defined.} \item{show_positioning_holes}{\link{logical} (\emph{with default}): Show the 3 positioning holes for orientation. Defaults to \code{TRUE}.} \item{df_neighbours}{\link{data.frame} (\emph{with default}): only relevant if \code{show_neighbours} is \code{TRUE}. Data frame indicating which borders to consider, and their respective weights (see the description provided for \link{calc_MoransI}). If \code{NULL} (default), this is constructed automatically by the internal function \code{.get_Neighbours}.} \item{ignore_borders}{\link{logical} (\emph{with default}): whether only grain locations that do not lie on the border of the disc should be considered (\code{FALSE} by default). Thus if \code{TRUE}, only the inner 8x8 grain locations rather than the full 10x10 are considered. Ignored if \code{df_neighbours} is not \code{NULL} or if \code{show_neighbours = FALSE}.} \item{str_transform}{\link{character} (\emph{with default}): The observed value of each individual grain is reflected in the size of a triangle (or other dot-like element). To account for large value differences, the transformation from value to triangle size can be \code{"lin"} (linear), \code{"log"} (logarithmic) and \code{"sqrt"} (square root). Defaults to \code{"sqrt"}, so that the surface is linear to the value. Note that the log and sqrt transformations can come with an addition to avoid negative values. When the legend is shown, the actual lower, middle and upper values are printed.} \item{...}{other arguments to be given to the base R plot function, such as \code{main}, \code{col} and \code{pch}. \code{legend} can be used to enable/disable the legend (\code{FALSE} by default).} } \description{ Shows a schematic representation of the physical appearance of one disc (one position in the reader) and illustrates the measured or calculated values per grain location. } \details{ Depending of the available plotting space, some optional elements might have not enough room to be displayed. As this function is wrapped around the base plot function, one can also choose to add elements manually. } \examples{ plot_SingleGrainDisc(1:100) } \section{How to cite}{ Boer, A.d., Steinbuch, L., 2025. plot_SingleGrainDisc(): Plot a disc with its values. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ de Boer, A-M., Steinbuch, L., Heuvelink, G.B.M., Wallinga, J., 2025. A novel tool to assess crosstalk in single-grain luminescence detection. Submitted. } \author{ Anna-Maartje de Boer, Luc Steinbuch, Wageningen University & Research, 2025 , RLum Developer Team} Luminescence/man/calc_CobbleDoseRate.Rd0000644000176200001440000001170014762561642017541 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_CobbleDoseRate.R \name{calc_CobbleDoseRate} \alias{calc_CobbleDoseRate} \title{Calculate dose rate of slices in a spherical cobble} \usage{ calc_CobbleDoseRate(input, conversion = "Guerinetal2011") } \arguments{ \item{input}{\link{data.frame} (\strong{required}): A table containing all relevant information for each individual layer. For the table layout see details.} \item{conversion}{\link{character} (\emph{with default}): dose rate conversion factors to use, see \link{BaseDataSet.ConversionFactors} for the accepted values.} } \value{ The function returns an \linkS4class{RLum.Results} object for which the first element is a \link{matrix} (\code{DataIndividual}) that gives the dose rate results for each slice for each decay chain individually, for both, the cobble dose rate and the sediment dose rate. The second element is also a \link{matrix} (\code{DataComponent}) that gives the total beta and gamma-dose rates for the cobble and the adjacent sediment for each slice of the cobble. } \description{ Calculates the dose rate profile through the cobble based on Riedesel and Autzen (2020). Corrects the beta dose rate in the cobble for the grain size following results of Guérin et al. (2012). Sediment beta and gamma dose rates are corrected for the water content of the sediment using the correction factors of Aitken (1985). Water content in the cobble is assumed to be 0. } \details{ \strong{The input table layout} \tabular{lll}{ COLUMN \tab DATA TYPE \tab DESCRIPTION\cr \code{Distance} \tab \code{numeric} \tab distance from the surface of the cobble to the top of each rock slice in mm. The distance for each slice will be listed in this column\cr \code{DistanceError} \tab \code{numeric} \tab Error on the distance in mm\cr \code{Thickness} \tab \code{numeric} \tab Thickness of each slice in mm\cr \code{TicknessError} \tab \code{numeric} \tab uncertainty of the thickness in mm.\cr \code{Mineral} \tab \code{character} \tab \code{'FS'} for feldspar, \code{'Q'} for quartz, depending which mineral in the cobble is used for dating\cr \code{Cobble_K} \tab \code{numeric} \tab K nuclide content in \% of the bulk cobble\cr \code{Cobble_K_SE} \tab \code{numeric} \tab error on K nuclide content in \% of the bulk cobble\cr \code{Cobble_Th} \tab \code{numeric} \tab Th nuclide content in ppm of the bulk cobble\cr \code{Cobble_Th_SE} \tab \code{numeric} \tab error on Th nuclide content in ppm of the bulk cobble\cr \code{Cobble_U} \tab \code{numeric} \tab U nuclide content in ppm of the bulk cobble\cr \code{CobbleU_SE} \tab \code{numeric} \tab error on U nuclide content in ppm of the bulk cobble\cr \code{GrainSize} \tab \code{numeric} \tab average grain size in µm of the grains used for dating\cr \code{Density} \tab \code{numeric} \tab Density of the cobble. Default is 2.7 g cm^-3\cr \code{CobbleDiameter} \tab \code{numeric} \tab Diameter of the cobble in cm.\cr \code{Sed_K} \tab \code{numeric} \tab K nuclide content in \% of the sediment matrix\cr \code{Sed_K_SE} \tab \code{numeric} \tab error on K nuclide content in \% of the sediment matrix\cr \code{Sed_Th} \tab \code{numeric} \tab Th nuclide content in ppm of the sediment matrix\cr \code{Sed_Th_SE} \tab \code{numeric} \tab error on Th nuclide content in ppm of the sediment matrix\cr \code{Sed_U} \tab \code{numeric} \tab U nuclide content in ppm of the sediment matrix\cr \code{Sed_U_SE} \tab \code{numeric} \tab error on U nuclide content in ppm of the sediment matrix\cr \code{GrainSize} \tab \code{numeric} \tab average grain size of the sediment matrix\cr \code{WaterContent} \tab \code{numeric} \tab mean water content of the sediment matrix in \%\cr \code{WaterContent_SE} \tab \code{numeric} \tab relative error on water content } \strong{Water content} The water content provided by the user should be calculated according to: \deqn{(Wet\_weight - Dry\_weight) / Dry\_weight * 100} } \section{Function version}{ 0.1.0 } \examples{ ## load example data data("ExampleData.CobbleData", envir = environment()) ## run function calc_CobbleDoseRate(ExampleData.CobbleData) } \section{How to cite}{ Riedesel, S., Autzen, M., 2025. calc_CobbleDoseRate(): Calculate dose rate of slices in a spherical cobble. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Riedesel, S., Autzen, M., 2020. Beta and gamma dose rate attenuation in rocks and sediment. Radiation Measurements 133, 106295. } \seealso{ \link{convert_Concentration2DoseRate} } \author{ Svenja Riedesel, Aberystwyth University (United Kingdom) \cr Martin Autzen, DTU NUTECH Center for Nuclear Technologies (Denmark) , RLum Developer Team} \keyword{datagen} Luminescence/man/calc_Huntley2006.Rd0000644000176200001440000003324014762561642016667 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_Huntley2006.R \name{calc_Huntley2006} \alias{calc_Huntley2006} \title{Apply the Huntley (2006) model} \usage{ calc_Huntley2006( data, LnTn = NULL, rhop, ddot, readerDdot, normalise = TRUE, fit.method = c("EXP", "GOK"), lower.bounds = c(-Inf, -Inf, -Inf, -Inf), summary = TRUE, plot = TRUE, ... ) } \arguments{ \item{data}{\link{data.frame} (\strong{required}): A \code{data.frame} with one of the following structures: \itemize{ \item A \strong{three column} data frame with numeric values on a) dose (s), b) \code{LxTx} and c) \code{LxTx} error. \item If a \strong{two column} data frame is provided it is automatically assumed that errors on \code{LxTx} are missing. A third column will be attached with an arbitrary 5 \% error on the provided \code{LxTx} values. \item Can also be a \strong{wide table}, i.e. a \link{data.frame} with a number of columns divisible by 3 and where each triplet has the aforementioned column structure. } \if{html}{\out{
}}\preformatted{ (optional) | dose (s)| LxTx | LxTx error | | [ ,1] | [ ,2]| [ ,3] | |---------|------|------------| [1, ]| 0 | LnTn | LnTn error | (optional, see arg 'LnTn') [2, ]| R1 | L1T1 | L1T1 error | ... | ... | ... | ... | [x, ]| Rx | LxTx | LxTx error | }\if{html}{\out{
}} \strong{NOTE:} The function assumes the first row of the function to be the \code{Ln/Tn}-value. If you want to provide more than one \code{Ln/Tn}-value consider using the argument \code{LnTn}.} \item{LnTn}{\link{data.frame} (\emph{optional}): This argument should \strong{only} be used to provide more than one \code{Ln/Tn}-value. It assumes a two column data frame with the following structure: \if{html}{\out{
}}\preformatted{ | LnTn | LnTn error | | [ ,1] | [ ,2] | |--------|--------------| [1, ]| LnTn_1 | LnTn_1 error | [2, ]| LnTn_2 | LnTn_2 error | ... | ... | ... | [x, ]| LnTn_x | LnTn_x error | }\if{html}{\out{
}} The function will calculate a \strong{mean} \code{Ln/Tn}-value and uses either the standard deviation or the highest individual error, whichever is larger. If another mean value (e.g. a weighted mean or median) or error is preferred, this value must be calculated beforehand and used in the first row in the data frame for argument \code{data}. \strong{NOTE:} If you provide \code{LnTn}-values with this argument the data frame for the \code{data}-argument \strong{must not} contain any \code{LnTn}-values!} \item{rhop}{\link{numeric} (\strong{required}): The density of recombination centres (\eqn{\rho}') and its error (see Huntley 2006), given as numeric vector of length two. Note that \eqn{\rho}' must \strong{not} be provided as the common logarithm. Example: \code{rhop = c(2.92e-06, 4.93e-07)}.} \item{ddot}{\link{numeric} (\strong{required}): Environmental dose rate and its error, given as a numeric vector of length two. Expected unit: Gy/ka. Example: \code{ddot = c(3.7, 0.4)}.} \item{readerDdot}{\link{numeric} (\strong{required}): Dose rate of the irradiation source of the OSL reader and its error, given as a numeric vector of length two. Expected unit: Gy/s. Example: \code{readerDdot = c(0.08, 0.01)}.} \item{normalise}{\link{logical} (\emph{with default}): If \code{TRUE} (the default) all measured and computed \eqn{\frac{L_x}{T_x}} values are normalised by the pre-exponential factor \code{A} (see details).} \item{fit.method}{\link{character} (\emph{with default}): Fit function of the dose response curve. Can either be \code{EXP} (the default) or \code{GOK}. Note that \code{EXP} (single saturating exponential) is the original function the model after Huntley (2006) and Kars et al. (2008) was designed to use. The use of a general-order kinetics function (\code{GOK}) is an experimental adaptation of the model and should be used with great care.} \item{lower.bounds}{\link{numeric} (\emph{with default}): A vector of length 4 that contains the lower bound values to be applied when fitting the models with \link[minpack.lm:nlsLM]{minpack.lm::nlsLM}. In most cases, the default values (\code{c(-Inf, -Inf, -Inf, -Inf)}) are appropriate for finding a best fit, but sometimes it may be useful to restrict the lower bounds to e.g. \code{c(0, 0, 0, 0)}. The values of the vectors are, respectively, for parameters \code{a}, \code{D0}, \code{c} and \code{d} in that order (parameter \code{d} is ignored when \code{fit.method = "EXP"}). More details can be found in \link{fit_DoseResponseCurve}.} \item{summary}{\link{logical} (\emph{with default}): If \code{TRUE} (the default) various parameters provided by the user and calculated by the model are added as text on the right-hand side of the plot.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{Further parameters: \itemize{ \item \code{verbose} \link{logical}: Show or hide console output \item \code{n.MC} \link{numeric}: Number of Monte Carlo iterations (default = \code{10000}). \strong{Note} that it is generally advised to have a large number of Monte Carlo iterations for the results to converge. Decreasing the number of iterations will often result in unstable estimates. } All other arguments are passed to \link{plot} and \link{fit_DoseResponseCurve} (in particular \code{mode} for the fit mode and \code{fit.force_through_origin})} } \value{ An \linkS4class{RLum.Results} object is returned: Slot: \strong{@data}\cr \tabular{lll}{ \strong{OBJECT} \tab \strong{TYPE} \tab \strong{COMMENT}\cr \code{results} \tab \link{data.frame} \tab results of the of Kars et al. 2008 model \cr \code{data} \tab \link{data.frame} \tab original input data \cr \code{Ln} \tab \link{numeric} \tab Ln and its error \cr \code{LxTx_tables} \tab \code{list} \tab A \code{list} of \code{data.frames} containing data on dose, LxTx and LxTx error for each of the dose response curves. Note that these \strong{do not} contain the natural Ln signal, which is provided separately. \cr \code{fits} \tab \code{list} \tab A \code{list} of \code{nls} objects produced by \link[minpack.lm:nlsLM]{minpack.lm::nlsLM} when fitting the dose response curves \cr } Slot: \strong{@info}\cr \tabular{lll}{ \strong{OBJECT} \tab \strong{TYPE} \tab \strong{COMMENT} \cr \code{call} \tab \code{call} \tab the original function call \cr \code{args} \tab \code{list} \tab arguments of the original function call \cr } } \description{ A function to calculate the expected sample specific fraction of saturation based on the model of Huntley (2006) using the approach as implemented in Kars et al. (2008) or Guralnik et al. (2015). } \details{ This function applies the approach described in Kars et al. (2008) or Guralnik et al. (2015), which are both developed from the model of Huntley (2006) to calculate the expected sample specific fraction of saturation of a feldspar and also to calculate fading corrected age using this model. \eqn{\rho}' (\code{rhop}), the density of recombination centres, is a crucial parameter of this model and must be determined separately from a fading measurement. The function \link{analyse_FadingMeasurement} can be used to calculate the sample specific \eqn{\rho}' value. \strong{Kars et al. (2008) - Single saturating exponential} To apply the approach after Kars et al. (2008) use \code{fit.method = "EXP"}. Firstly, the unfaded \eqn{D_0} value is determined through applying equation 5 of Kars et al. (2008) to the measured \eqn{\frac{L_x}{T_x}} data as a function of irradiation time, and fitting the data with a single saturating exponential of the form: \deqn{\frac{L_x}{T_x}(t^*) = A \phi(t^*) \{1 - exp(-\frac{t^*}{D_0}))\}} where \deqn{\phi(t^*) = exp(-\rho' ln(1.8 \tilde{s} t^*)^3)} after King et al. (2016) where \eqn{A} is a pre-exponential factor, \eqn{t^*} (s) is the irradiation time, starting at the mid-point of irradiation (Auclair et al. 2003) and \eqn{\tilde{s}} (\eqn{3\times10^{15}} s\eqn{^{-1}}) is the athermal frequency factor after Huntley (2006). \cr Using fit parameters \eqn{A} and \eqn{D_0}, the function then computes a natural dose response curve using the environmental dose rate, \eqn{\dot{D}} (Gy/s) and equations \verb{[1]} and \verb{[2]}. Computed \eqn{\frac{L_x}{T_x}} values are then fitted using the \link{fit_DoseResponseCurve} function and the laboratory measured LnTn can then be interpolated onto this curve to determine the fading corrected \eqn{D_e} value, from which the fading corrected age is calculated. \strong{Guralnik et al. (2015) - General-order kinetics} To apply the approach after Guralnik et al. (2015) use \code{fit.method = "GOK"}. The approach of Guralnik et al. (2015) is very similar to that of Kars et al. (2008), but instead of using a single saturating exponential the model fits a general-order kinetics function of the form: \deqn{\frac{L_x}{T_x}(t^*) = A \phi (t^*)(1 - (1 + (\frac{1}{D_0}) t^* c)^{-1/c})} where \eqn{A}, \eqn{\phi}, \eqn{t^*} and \eqn{D_0} are the same as above and \eqn{c} is a dimensionless kinetic order modifier (cf. equation 10 in Guralnik et al., 2015). \strong{Level of saturation} The \link{calc_Huntley2006} function also calculates the level of saturation (\eqn{\frac{n}{N}}) and the field saturation (i.e. athermal steady state, (n/N)_SS) value for the sample under investigation using the sample specific \eqn{\rho}', unfaded \eqn{D_0} and \eqn{\dot{D}} values, following the approach of Kars et al. (2008). The computation is done using 1000 equally-spaced points in the interval [0.01, 3]. This can be controlled by setting option \code{rprime}, such as in \code{rprime = seq(0.01, 3, length.out = 1000)} (the default). \strong{Uncertainties} Uncertainties are reported at \eqn{1\sigma} and are assumed to be normally distributed and are estimated using Monte-Carlo re-sampling (\code{n.MC = 1000}) of \eqn{\rho}' and \eqn{\frac{L_x}{T_x}} during dose response curve fitting, and of \eqn{\rho}' in the derivation of (\eqn{n/N}) and (n/N)_SS. \strong{Age calculated from 2D0 of the simulated natural DRC} In addition to the age calculated from the equivalent dose derived from \eqn{\frac{L_n}{T_n}} projected on the simulated natural dose response curve (DRC), this function also calculates an age from twice the characteristic saturation dose (\code{D0}) of the simulated natural DRC. This can be a useful information for (over)saturated samples (i.e., no intersect of \eqn{\frac{L_n}{T_n}} on the natural DRC) to obtain at least a "minimum age" estimate of the sample. In the console output this value is denoted by \emph{"Age @2D0 (ka):"}. } \note{ This function has BETA status, in particular for the GOK implementation. Please verify your results carefully } \section{Function version}{ 0.4.5 } \examples{ ## Load example data (sample UNIL/NB123, see ?ExampleData.Fading) data("ExampleData.Fading", envir = environment()) ## (1) Set all relevant parameters # a. fading measurement data (IR50) fading_data <- ExampleData.Fading$fading.data$IR50 # b. Dose response curve data data <- ExampleData.Fading$equivalentDose.data$IR50 ## (2) Define required function parameters ddot <- c(7.00, 0.004) readerDdot <- c(0.134, 0.0067) # Analyse fading measurement and get an estimate of rho'. # Note that the RLum.Results object can be directly used for further processing. # The number of MC runs is reduced for this example rhop <- analyse_FadingMeasurement(fading_data, plot = TRUE, verbose = FALSE, n.MC = 10) ## (3) Apply the Kars et al. (2008) model to the data kars <- calc_Huntley2006( data = data, rhop = rhop, ddot = ddot, readerDdot = readerDdot, n.MC = 25) \dontrun{ # You can also provide LnTn values separately via the 'LnTn' argument. # Note, however, that the data frame for 'data' must then NOT contain # a LnTn value. See argument descriptions! LnTn <- data.frame( LnTn = c(1.84833, 2.24833), nTn.error = c(0.17, 0.22)) LxTx <- data[2:nrow(data), ] kars <- calc_Huntley2006( data = LxTx, LnTn = LnTn, rhop = rhop, ddot = ddot, readerDdot = readerDdot, n.MC = 25) } } \section{How to cite}{ King, G.E., Burow, C., Kreutzer, S., 2025. calc_Huntley2006(): Apply the Huntley (2006) model. Function version 0.4.5. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Kars, R.H., Wallinga, J., Cohen, K.M., 2008. A new approach towards anomalous fading correction for feldspar IRSL dating-tests on samples in field saturation. Radiation Measurements 43, 786-790. doi:10.1016/j.radmeas.2008.01.021 Guralnik, B., Li, B., Jain, M., Chen, R., Paris, R.B., Murray, A.S., Li, S.-H., Pagonis, P., Herman, F., 2015. Radiation-induced growth and isothermal decay of infrared-stimulated luminescence from feldspar. Radiation Measurements 81, 224-231. Huntley, D.J., 2006. An explanation of the power-law decay of luminescence. Journal of Physics: Condensed Matter 18, 1359-1365. doi:10.1088/0953-8984/18/4/020 King, G.E., Herman, F., Lambert, R., Valla, P.G., Guralnik, B., 2016. Multi-OSL-thermochronometry of feldspar. Quaternary Geochronology 33, 76-87. doi:10.1016/j.quageo.2016.01.004 \strong{Further reading} Morthekai, P., Jain, M., Cunha, P.P., Azevedo, J.M., Singhvi, A.K., 2011. An attempt to correct for the fading in million year old basaltic rocks. Geochronometria 38(3), 223-230. } \author{ Georgina E. King, University of Lausanne (Switzerland) \cr Christoph Burow, University of Cologne (Germany) \cr Sebastian Kreutzer, Ruprecht-Karl University of Heidelberg (Germany) , RLum Developer Team} \keyword{datagen} Luminescence/man/convert_Second2Gray.Rd0000644000176200001440000001046114762561642017625 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/convert_Second2Gray.R \name{convert_Second2Gray} \alias{convert_Second2Gray} \title{Converting equivalent dose values from seconds (s) to Gray (Gy)} \usage{ convert_Second2Gray(data, dose.rate, error.propagation = "omit") } \arguments{ \item{data}{\link{data.frame} (\strong{required}): input values, structure: data (\code{values[,1]}) and data error (\code{values [,2]}) are required} \item{dose.rate}{\linkS4class{RLum.Results}, \link{data.frame} or \link{numeric} (\strong{required}): \code{RLum.Results} needs to be originated from the function \link{calc_SourceDoseRate}, for \code{vector} dose rate in Gy/s and dose rate error in Gy/s} \item{error.propagation}{\link{character} (\emph{with default}): error propagation method used for error calculation (\code{omit}, \code{gaussian} or \code{absolute}), see details for further information} } \value{ Returns a \link{data.frame} with converted values. } \description{ Conversion of absorbed radiation dose in seconds (s) to the SI unit Gray (Gy) including error propagation. Normally used for equivalent dose data. Calculation of De values from seconds (s) to Gray (Gy) \deqn{De [Gy] = De [s] * Dose Rate [Gy/s])} Provided calculation error propagation methods for error calculation (with \code{'se'} as the standard error and \code{'DR'} of the dose rate of the beta-source): \strong{(1) \code{omit}} (default) \deqn{se(De) [Gy] = se(De) [s] * DR [Gy/s]} In this case the standard error of the dose rate of the beta-source is treated as systematic (i.e. non-random), it error propagation is omitted. However, the error must be considered during calculation of the final age. (cf. Aitken, 1985, pp. 242). This approach can be seen as method (2) (gaussian) for the case the (random) standard error of the beta-source calibration is 0. Which particular method is requested depends on the situation and cannot be prescriptive. \strong{(2) \code{gaussian}} error propagation \deqn{se(De) [Gy] = \sqrt((DR [Gy/s] * se(De) [s])^2 + (De [s] * se(DR) [Gy/s])^2)} Applicable under the assumption that errors of \code{De} and \code{se} are uncorrelated. \strong{(3) \code{absolute}} error propagation \deqn{se(De) [Gy]= abs(DR [Gy/s] * se(De) [s]) + abs(De [s] * se(DR) [Gy/s])} Applicable under the assumption that errors of \code{De} and \code{se} are correlated. } \note{ If no or a wrong error propagation method is given, the execution of the function is stopped. Furthermore, if a \code{data.frame} is provided for the dose rate values is has to be of the same length as the data frame provided with the argument \code{data} } \section{Function version}{ 0.6.0 } \examples{ ##(A) for known source dose rate at date of measurement ## - load De data from the example data help file data(ExampleData.DeValues, envir = environment()) ## - convert De(s) to De(Gy) convert_Second2Gray(ExampleData.DeValues$BT998, c(0.0438,0.0019)) ##(B) for source dose rate calibration data ## - calculate source dose rate first dose.rate <- calc_SourceDoseRate(measurement.date = "2012-01-27", calib.date = "2014-12-19", calib.dose.rate = 0.0438, calib.error = 0.0019) # read example data data(ExampleData.DeValues, envir = environment()) # apply dose.rate to convert De(s) to De(Gy) convert_Second2Gray(ExampleData.DeValues$BT998, dose.rate) } \section{How to cite}{ Kreutzer, S., Dietze, M., Fuchs, M.C., 2025. convert_Second2Gray(): Converting equivalent dose values from seconds (s) to Gray (Gy). Function version 0.6.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Aitken, M.J., 1985. Thermoluminescence dating. Academic Press. } \seealso{ \link{calc_SourceDoseRate} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr Michael Dietze, GFZ Potsdam (Germany)\cr Margret C. Fuchs, HZDR, Helmholtz-Institute Freiberg for Resource Technology (Germany) , RLum Developer Team} \keyword{manip} Luminescence/man/calc_CosmicDoseRate.Rd0000644000176200001440000002401714762561642017575 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_CosmicDoseRate.R \name{calc_CosmicDoseRate} \alias{calc_CosmicDoseRate} \title{Calculate the cosmic dose rate} \usage{ calc_CosmicDoseRate( depth, density, latitude, longitude, altitude, corr.fieldChanges = FALSE, est.age = NA, half.depth = FALSE, error = 10, ... ) } \arguments{ \item{depth}{\link{numeric} (\strong{required}): depth of overburden (m). For more than one absorber use \cr \code{c(depth_1, depth_2, ..., depth_n)}} \item{density}{\link{numeric} (\strong{required}): average overburden density (g/cm³). For more than one absorber use \cr \code{c(density_1, density_2, ..., density_n)}} \item{latitude}{\link{numeric} (\strong{required}): latitude (decimal degree), N positive} \item{longitude}{\link{numeric} (\strong{required}): longitude (decimal degree), E positive} \item{altitude}{\link{numeric} (\strong{required}): altitude (m above sea-level)} \item{corr.fieldChanges}{\link{logical} (\emph{with default}): correct for geomagnetic field changes after Prescott & Hutton (1994). Apply only when justified by the data.} \item{est.age}{\link{numeric} (\emph{with default}): estimated age range (ka) for geomagnetic field change correction (0-80 ka allowed)} \item{half.depth}{\link{logical} (\emph{with default}): How to overcome with varying overburden thickness. If \code{TRUE} only half the depth is used for calculation. Apply only when justified, i.e. when a constant sedimentation rate can safely be assumed.} \item{error}{\link{numeric} (\emph{with default}): general error (percentage) to be implemented on corrected cosmic dose rate estimate} \item{...}{further arguments (\code{verbose} to disable/enable console output).} } \value{ Returns a terminal output. In addition an \linkS4class{RLum.Results} object is returned containing the following element: \item{summary}{\link{data.frame} summary of all relevant calculation results.} \item{args}{\link{list} used arguments} \item{call}{\link{call} the function call} The output should be accessed using the function \link{get_RLum}. } \description{ This function calculates the cosmic dose rate taking into account the soft- and hard-component of the cosmic ray flux and allows corrections for geomagnetic latitude, altitude above sea-level and geomagnetic field changes. This function calculates the total cosmic dose rate considering both the soft- and hard-component of the cosmic ray flux. \strong{Internal calculation steps} (1) Calculate total depth of all absorber in hg/cm² (1 hg/cm² = 100 g/cm²) \deqn{absorber = depth_1*density_1 + depth_2*density_2 + ... + depth_n*density_n} (2) If \code{half.depth = TRUE} \deqn{absorber = absorber/2} (3) Calculate cosmic dose rate at sea-level and 55 deg. latitude a) If absorber is > 167 g/cm² (only hard-component; Allkofer et al. 1975): apply equation given by Prescott & Hutton (1994) (c.f. Barbouti & Rastin 1983) \deqn{D0 = C/(((absorber+d)^\alpha+a)*(absober+H))*exp(-B*absorber)} b) If absorber is < 167 g/cm² (soft- and hard-component): derive D0 from Fig. 1 in Prescott & Hutton (1988). (4) Calculate geomagnetic latitude (Prescott & Stephan 1982, Prescott & Hutton 1994) \deqn{\lambda = arcsin(0.203*cos(latitude)*cos(longitude-291)+0.979* sin(latitude))} (5) Apply correction for geomagnetic latitude and altitude above sea-level. Values for F, J and H were read from Fig. 3 shown in Prescott & Stephan (1982) and fitted with 3-degree polynomials for lambda < 35 degree and a linear fit for lambda > 35 degree. \deqn{Dc = D0*(F+J*exp((altitude/1000)/H))} (6) Optional: Apply correction for geomagnetic field changes in the last 0-80 ka (Prescott & Hutton 1994). Correction and altitude factors are given in Table 1 and Fig. 1 in Prescott & Hutton (1994). Values for altitude factor were fitted with a 2-degree polynomial. The altitude factor is operated on the decimal part of the correction factor. \deqn{Dc' = Dc*correctionFactor} \strong{Usage of \code{depth} and \code{density}} (1) If only one value for depth and density is provided, the cosmic dose rate is calculated for exactly one sample and one absorber as overburden (i.e. \code{depth*density}). (2) In some cases it might be useful to calculate the cosmic dose rate for a sample that is overlain by more than one absorber, e.g. in a profile with soil layers of different thickness and a distinct difference in density. This can be calculated by providing a matching number of values for \code{depth} and \code{density} (e.g. \verb{depth = c(1, 2), density = c(1.7, 2.4)}) (3) Another possibility is to calculate the cosmic dose rate for more than one sample of the same profile. This is done by providing more than one values for \code{depth} and only one for \code{density}. For example, \code{depth = c(1, 2, 3)} and \code{density = 1.7} will calculate the cosmic dose rate for three samples in 1, 2 and 3 m depth in a sediment of density 1.7 g/cm³. } \note{ Despite its universal use, the equation to calculate the cosmic dose rate provided by Prescott & Hutton (1994) is falsely stated to be valid from the surface to 10^4 hg/cm² of standard rock. The original expression by Barbouti & Rastin (1983) only considers the muon flux (i.e. hard-component) and is, by their own definition, only valid for depths between 10-10^4 hg/cm². Thus, for near-surface samples (i.e. for depths < 167 g/cm²) the equation of Prescott & Hutton (1994) underestimates the total cosmic dose rate, as it neglects the influence of the soft-component of the cosmic ray flux. For samples at zero depth and at sea-level the underestimation can be as large as ~0.1 Gy/ka. In a previous article, Prescott & Hutton (1988) give another approximation of Barbouti & Rastin's equation in the form of \deqn{D = 0.21*exp(-0.070*absorber+0.0005*absorber^2)} which is valid for depths between 150-5000 g/cm². For shallower depths (< 150 g/cm²) they provided a graph (Fig. 1) from which the dose rate can be read. As a result, this function employs the equation of Prescott & Hutton (1994) only for depths > 167 g/cm², i.e. only for the hard-component of the cosmic ray flux. Cosmic dose rate values for depths < 167 g/cm² were obtained from the "AGE" program (Gruen 2009) and fitted with a 6-degree polynomial curve (and hence reproduces the graph shown in Prescott & Hutton 1988). However, these values assume an average overburden density of 2 g/cm³. It is currently not possible to obtain more precise cosmic dose rate values for near-surface samples as there is no equation known to the author of this function at the time of writing. } \section{Function version}{ 0.5.3 } \examples{ ##(1) calculate cosmic dose rate (one absorber) calc_CosmicDoseRate(depth = 2.78, density = 1.7, latitude = 38.06451, longitude = 1.49646, altitude = 364, error = 10) ##(2a) calculate cosmic dose rate (two absorber) calc_CosmicDoseRate(depth = c(5.0, 2.78), density = c(2.65, 1.7), latitude = 38.06451, longitude = 1.49646, altitude = 364, error = 10) ##(2b) calculate cosmic dose rate (two absorber) and ##correct for geomagnetic field changes calc_CosmicDoseRate(depth = c(5.0, 2.78), density = c(2.65, 1.7), latitude = 12.04332, longitude = 4.43243, altitude = 364, corr.fieldChanges = TRUE, est.age = 67, error = 15) ##(3) calculate cosmic dose rate and export results to .csv file #calculate cosmic dose rate and save to variable results<- calc_CosmicDoseRate(depth = 2.78, density = 1.7, latitude = 38.06451, longitude = 1.49646, altitude = 364, error = 10) # the results can be accessed by get_RLum(results, "summary") #export results to .csv file - uncomment for usage #write.csv(results, file = "c:/users/public/results.csv") ##(4) calculate cosmic dose rate for 6 samples from the same profile ## and save to .csv file #calculate cosmic dose rate and save to variable results<- calc_CosmicDoseRate(depth = c(0.1, 0.5 , 2.1, 2.7, 4.2, 6.3), density = 1.7, latitude = 38.06451, longitude = 1.49646, altitude = 364, error = 10) #export results to .csv file - uncomment for usage #write.csv(results, file = "c:/users/public/results_profile.csv") } \section{How to cite}{ Burow, C., 2025. calc_CosmicDoseRate(): Calculate the cosmic dose rate. Function version 0.5.3. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Allkofer, O.C., Carstensen, K., Dau, W.D., Jokisch, H., 1975. Letter to the editor. The absolute cosmic ray flux at sea level. Journal of Physics G: Nuclear and Particle Physics 1, L51-L52. Barbouti, A.I., Rastin, B.C., 1983. A study of the absolute intensity of muons at sea level and under various thicknesses of absorber. Journal of Physics G: Nuclear and Particle Physics 9, 1577-1595. Crookes, J.N., Rastin, B.C., 1972. An investigation of the absolute intensity of muons at sea-level. Nuclear Physics B 39, 493-508. Gruen, R., 2009. The "AGE" program for the calculation of luminescence age estimates. Ancient TL 27, 45-46. Prescott, J.R., Hutton, J.T., 1988. Cosmic ray and gamma ray dosimetry for TL and ESR. Nuclear Tracks and Radiation Measurements 14, 223-227. Prescott, J.R., Hutton, J.T., 1994. Cosmic ray contributions to dose rates for luminescence and ESR dating: large depths and long-term time variations. Radiation Measurements 23, 497-500. Prescott, J.R., Stephan, L.G., 1982. The contribution of cosmic radiation to the environmental dose for thermoluminescence dating. Latitude, altitude and depth dependences. PACT 6, 17-25. } \seealso{ \link{BaseDataSet.CosmicDoseRate} } \author{ Christoph Burow, University of Cologne (Germany) , RLum Developer Team} Luminescence/man/plot_DoseResponseCurve.Rd0000644000176200001440000000766014762561642020430 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_DoseResponseCurve.R \name{plot_DoseResponseCurve} \alias{plot_DoseResponseCurve} \title{Plot a dose-response curve for luminescence data (Lx/Tx against dose)} \usage{ plot_DoseResponseCurve( object, plot_extended = TRUE, plot_singlePanels = FALSE, cex.global = 1, verbose = TRUE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Results} (\strong{required}): An object produced by \link{fit_DoseResponseCurve}.} \item{plot_extended}{\link{logical} (\emph{with default}): If \code{TRUE}, 3 plots on one plot area are provided: \enumerate{ \item growth curve, \item histogram from Monte Carlo error simulation and \item a test dose response plot. } If \code{FALSE}, just the growth curve will be plotted.} \item{plot_singlePanels}{\link{logical} (\emph{with default}): single plot output (\code{TRUE/FALSE}) to allow for plotting the results in single plot windows. Ignored if \code{plot_extended = FALSE}.} \item{cex.global}{\link{numeric} (\emph{with default}): global scaling factor.} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{...}{Further graphical parameters to be passed (supported: \code{main}, \code{mtext}, \code{xlim}, \code{ylim}, \code{xlab}, \code{ylab}, \code{legend}, \code{reg_points_pch}, \code{density_polygon} (\code{TRUE/FALSE}), \code{density_polygon_col}, \code{density_rug} (\code{TRUE}/\code{FALSE})), \code{box} (\code{TRUE}/\code{FALSE})} } \value{ A plot (or a series of plots) is produced. } \description{ A dose-response curve is produced for luminescence measurements using a regenerative or additive protocol as implemented in \link{fit_DoseResponseCurve}. } \section{Function version}{ 1.0.2 } \examples{ ##(1) plot dose-response curve for a dummy dataset data(ExampleData.LxTxData, envir = environment()) fit <- fit_DoseResponseCurve(LxTxData) plot_DoseResponseCurve(fit) ##(1b) horizontal plot arrangement layout(mat = matrix(c(1,1,2,3), ncol = 2)) plot_DoseResponseCurve(fit, plot_singlePanels = TRUE) ##(2) plot the dose-response curve with pdf output - uncomment to use ##pdf(file = "~/Dose_Response_Curve_Dummy.pdf", paper = "special") plot_DoseResponseCurve(fit) ##dev.off() ##(3) plot the growth curve with pdf output - uncomment to use, single output ##pdf(file = "~/Dose_Response_Curve_Dummy.pdf", paper = "special") plot_DoseResponseCurve(fit, plot_singlePanels = TRUE) ##dev.off() ##(4) plot resulting function for given interval x x <- seq(1,10000, by = 100) plot( x = x, y = eval(fit$Formula), type = "l" ) } \section{How to cite}{ Kreutzer, S., Dietze, M., Colombo, M., 2025. plot_DoseResponseCurve(): Plot a dose-response curve for luminescence data (Lx/Tx against dose). Function version 1.0.2. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Berger, G.W., Huntley, D.J., 1989. Test data for exponential fits. Ancient TL 7, 43-46. Guralnik, B., Li, B., Jain, M., Chen, R., Paris, R.B., Murray, A.S., Li, S.-H., Pagonis, P., Herman, F., 2015. Radiation-induced growth and isothermal decay of infrared-stimulated luminescence from feldspar. Radiation Measurements 81, 224-231. Pagonis, V., Kitis, G., Chen, R., 2020. A new analytical equation for the dose response of dosimetric materials, based on the Lambert W function. Journal of Luminescence 225, 117333. \doi{10.1016/j.jlumin.2020.117333} } \seealso{ \link{fit_DoseResponseCurve} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr Michael Dietze, GFZ Potsdam (Germany) \cr Marco Colombo, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} Luminescence/man/ExampleData.Al2O3C.Rd0000644000176200001440000000335414762557027017061 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{ExampleData.Al2O3C} \alias{ExampleData.Al2O3C} \alias{data_CrossTalk} \alias{data_ITC} \title{Example Al2O3:C Measurement Data} \format{ Two datasets comprising \linkS4class{RLum.Analysis} data imported using the function \link{read_XSYG2R} \describe{ \code{data_ITC}: Measurement data to determine the irradiation time correction, the data can be analysed with the function \link{analyse_Al2O3C_ITC} \code{data_CrossTalk}: Measurement data obtained while estimating the irradiation cross-talk of the reader used for the experiments. The data can be analysed either with the function \link{analyse_Al2O3C_CrossTalk} or \link{analyse_Al2O3C_Measurement} } } \description{ Measurement data obtained from measuring Al2O3:C chips at the IRAMAT-CRP2A, Université Bordeaux Montaigne in 2017 on a Freiberg Instruments lexsyg SMART reader. The example data used in particular to allow test of the functions developed in framework of the work by Kreutzer et al., 2018. } \note{ From both datasets unneeded curves have been removed and the number of aliquots have been reduced to a required minimum to keep the file size small, but still being able to run the corresponding functions. } \examples{ ##(1) curves data(ExampleData.Al2O3C, envir = environment()) plot_RLum(data_ITC[1:2]) } \references{ Kreutzer, S., Martin, L., Guérin, G., Tribolo, C., Selva, P., Mercier, N., 2018. Environmental Dose Rate Determination Using a Passive Dosimeter: Techniques and Workflow for alpha-Al2O3:C Chips. Geochronometria 45, 56–67. } \seealso{ \link{analyse_Al2O3C_ITC}, \link{analyse_Al2O3C_CrossTalk}, \link{analyse_Al2O3C_Measurement} } \keyword{datasets} \keyword{internal} Luminescence/man/RLum.Results-class.Rd0000644000176200001440000001274014762561642017371 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/RLum.Results-class.R \docType{class} \name{RLum.Results-class} \alias{RLum.Results-class} \alias{show,RLum.Results-method} \alias{set_RLum,RLum.Results-method} \alias{get_RLum,RLum.Results-method} \alias{length_RLum,RLum.Results-method} \alias{names_RLum,RLum.Results-method} \alias{view,RLum.Results-method} \title{Class \code{"RLum.Results"}} \usage{ \S4method{show}{RLum.Results}(object) \S4method{set_RLum}{RLum.Results}(class, originator, .uid, .pid, data = list(), info = list()) \S4method{get_RLum}{RLum.Results}(object, data.object, info.object = NULL, drop = TRUE) \S4method{length_RLum}{RLum.Results}(object) \S4method{names_RLum}{RLum.Results}(object) \S4method{view}{RLum.Results}(object, element = 1, ...) } \arguments{ \item{object}{an object of class \linkS4class{RLum.Results}} \item{class}{\code{\link{set_RLum}}; \link{character} (\strong{required}): name of the \code{RLum} class to create} \item{originator}{\code{\link{set_RLum}}; \link{character} (\emph{automatic}): contains the name of the calling function (the function that produces this object); can be set manually.} \item{.uid}{\code{\link{set_RLum}}; \link{character} (\emph{automatic}): sets an unique ID for this object using the internal C++ function \code{create_UID}.} \item{.pid}{\code{\link{set_RLum}}; \link{character} (\emph{with default}): option to provide a parent id for nesting at will.} \item{data}{\code{\link{set_RLum}}; \link{list} (\emph{optional}): a list containing the data to be stored in the object} \item{info}{\code{\link{set_RLum}}; \link{list} (\emph{optional}): a list containing additional info data for the object} \item{data.object}{\code{\link{get_RLum}}; \link{character} or \link{numeric}: name or index of the data slot to be returned} \item{info.object}{\code{\link{get_RLum}}; \link{character} (\emph{optional}): name of the wanted info element} \item{drop}{\code{\link{get_RLum}}; \link{logical} (\emph{with default}): coerce to the next possible layer (which are data objects, \code{drop = FALSE} keeps the original \code{RLum.Results}} \item{element}{\link{integer} (\emph{with default}): index of the element to display} \item{...}{other arguments that might be passed} } \value{ \strong{\code{set_RLum}}: Returns an object from the class \linkS4class{RLum.Results} \strong{\code{get_RLum}}: Returns: \enumerate{ \item Data object from the specified slot \item \link{list} of data objects from the slots if 'data.object' is vector or \item an \linkS4class{RLum.Results} for \code{drop = FALSE}. } \strong{\code{length_RLum}} Returns the number of data elements in the \code{RLum.Results} object. \strong{\code{names_RLum}} Returns the names of the data elements in the object. } \description{ Object class contains results data from functions (e.g., \link{analyse_SAR.CWOSL}). } \section{Methods (by generic)}{ \itemize{ \item \code{show(RLum.Results)}: Show structure of \code{RLum.Results} object \item \code{set_RLum(RLum.Results)}: Construction method for an RLum.Results object. \item \code{get_RLum(RLum.Results)}: Accessor method for RLum.Results object. The argument data.object allows directly accessing objects delivered within the slot data. The default return object depends on the object originator (e.g., \code{fit_LMCurve}). If nothing is specified always the first \code{data.object} will be returned. Note: Detailed specification should be made in combination with the originator slot in the receiving function if results are pipped. \item \code{length_RLum(RLum.Results)}: Returns the length of the object, i.e., number of stored data.objects \item \code{names_RLum(RLum.Results)}: Returns the names data.objects \item \code{view(RLum.Results)}: View method for \linkS4class{RLum.Results} objects }} \section{Slots}{ \describe{ \item{\code{data}}{Object of class \link{list} containing output data} }} \note{ The class is intended to store results from functions to be used by other functions. The data in the object should always be accessed by the method \code{get_RLum}. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("RLum.Results", ...)}. } \section{Class version}{ 0.5.2 } \examples{ showClass("RLum.Results") ##create an empty object from this class set_RLum(class = "RLum.Results") ##use another function to show how it works ##Basic calculation of the dose rate for a specific date dose.rate <- calc_SourceDoseRate( measurement.date = "2012-01-27", calib.date = "2014-12-19", calib.dose.rate = 0.0438, calib.error = 0.0019) ##show object dose.rate ##get results get_RLum(dose.rate) ##get parameters used for the calcualtion from the same object get_RLum(dose.rate, data.object = "parameters") ##alternatively objects can be accessed using S3 generics, such as dose.rate$parameters } \seealso{ \linkS4class{RLum}, \link{plot_RLum}, \link{merge_RLum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. RLum.Results-class(): Class 'RLum.Results'. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{classes} \keyword{internal} \keyword{methods} Luminescence/man/fit_SurfaceExposure.Rd0000644000176200001440000002107414762561642017734 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/fit_SurfaceExposure.R \name{fit_SurfaceExposure} \alias{fit_SurfaceExposure} \title{Nonlinear Least Squares Fit for OSL surface exposure data} \usage{ fit_SurfaceExposure( data, sigmaphi = NULL, mu = NULL, age = NULL, Ddot = NULL, D0 = NULL, weights = FALSE, plot = TRUE, legend = TRUE, error_bars = TRUE, coord_flip = FALSE, ... ) } \arguments{ \item{data}{\link{data.frame} or \link{list} (\strong{required}): Measured OSL surface exposure data with the following structure: \if{html}{\out{
}}\preformatted{ (optional) | depth (a.u.)| intensity | error | | [ ,1] | [ ,2] | [ ,3] | |-------------|-----------|-------| [1, ]| ~~~~ | ~~~~ | ~~~~ | [2, ]| ~~~~ | ~~~~ | ~~~~ | ... | ... | ... | ... | [x, ]| ~~~~ | ~~~~ | ~~~~ | }\if{html}{\out{
}} Alternatively, a \link{list} of \code{data.frames} can be provided, where each \code{data.frame} has the same structure as shown above, with the exception that they must \strong{not} include the optional error column. Providing a \link{list} as input automatically activates the global fitting procedure (see details).} \item{sigmaphi}{\link{numeric} (\emph{optional}): A numeric value for \code{sigmaphi}, i.e. the charge detrapping rate. Example: \code{sigmaphi = 5e-10}} \item{mu}{\link{numeric} (\emph{optional}): A numeric value for mu, i.e. the light attenuation coefficient. Example: \code{mu = 0.9}} \item{age}{\link{numeric} (\emph{optional}): The age (a) of the sample, if known. If \code{data} is a \link{list} of \emph{x} samples, then \code{age} must be a numeric vector of length \emph{x}. Example: \code{age = 10000}, or \code{age = c(1e4, 1e5, 1e6)}.} \item{Ddot}{\link{numeric} (\emph{optional}): A numeric value for the environmental dose rate (Gy/ka). For this argument to be considered a value for \code{D0} must also be provided; otherwise it will be ignored.} \item{D0}{\link{numeric} (\emph{optional}): A numeric value for the characteristic saturation dose (Gy). For this argument to be considered a value for \code{Ddot} must also be provided; otherwise it will be ignored.} \item{weights}{\link{logical} (\emph{optional}): If \code{TRUE} the fit will be weighted by the inverse square of the error. Requires \code{data} to be a \link{data.frame} with three columns.} \item{plot}{\link{logical} (\emph{optional}): enable/disable the plot output.} \item{legend}{\link{logical} (\emph{optional}): Show or hide the equation inside the plot.} \item{error_bars}{\link{logical} (\emph{optional}): Show or hide error bars (only applies if errors were provided).} \item{coord_flip}{\link{logical} (\emph{optional}): Flip the coordinate system.} \item{...}{Further parameters passed to \link{plot}. Custom parameters include: \itemize{ \item \code{verbose} (\link{logical}): show or hide console output \item \code{line_col}: Colour of the fitted line \item \code{line_lty}: Type of the fitted line (see \code{lty} in \code{?par}) \item \code{line_lwd}: Line width of the fitted line (see \code{lwd} in \code{?par}) }} } \value{ Function returns results numerically and graphically: -----------------------------------\cr \verb{[ NUMERICAL OUTPUT ]}\cr -----------------------------------\cr \strong{\code{RLum.Results}}-object \strong{slot:} \strong{\verb{@data}} \tabular{lll}{ \strong{Element} \tab \strong{Type} \tab \strong{Description}\cr \verb{$summary} \tab \code{data.frame} \tab summary of the fitting results \cr \verb{$data} \tab \code{data.frame} \tab the original input data \cr \verb{$fit} \tab \code{nls} \tab the fitting object produced by \link[minpack.lm:nlsLM]{minpack.lm::nlsLM} \cr \verb{$args} \tab \code{character} \tab arguments of the call \cr \verb{$call} \tab \code{call} \tab the original function call \cr } \strong{slot:} \strong{\verb{@info}} Currently unused. ------------------------\cr \verb{[ PLOT OUTPUT ]}\cr ------------------------\cr A scatter plot of the provided depth-intensity OSL surface exposure data with the fitted model. } \description{ This function determines the (weighted) least-squares estimates of the parameters of either equation 1 in \emph{Sohbati et al. (2012a)} or equation 12 in \emph{Sohbati et al. (2012b)} for a given OSL surface exposure data set (\strong{BETA}). } \details{ \strong{Weighted fitting} If \code{weights = TRUE} the function will use the inverse square of the error (\eqn{1/\sigma^2}) as weights during fitting using \link[minpack.lm:nlsLM]{minpack.lm::nlsLM}. Naturally, for this to take effect individual errors must be provided in the third column of the \code{data.frame} for \code{data}. Weighted fitting is \strong{not} supported if \code{data} is a list of multiple \code{data.frame}s, i.e., it is not available for global fitting. \strong{Dose rate} If any of the arguments \code{Ddot} or \code{D0} is at its default value (\code{NULL}), this function will fit equation 1 in Sohbati et al. (2012a) to the data. If the effect of dose rate (i.e., signal saturation) needs to be considered, numeric values for the dose rate (\code{Ddot}) (in Gy/ka) and the characteristic saturation dose (\code{D0}) (in Gy) must be provided. The function will then fit equation 12 in Sohbati et al. (2012b) to the data. \strong{NOTE}: Currently, this function does \strong{not} consider the variability of the dose rate with sample depth (\code{x})! In the original equation the dose rate \code{D} is an arbitrary function of \code{x} (term \code{D(x)}), but here \code{D} is assumed constant. \strong{Global fitting} If \code{data} is \link{list} of multiple \code{data.frame}s, each representing a separate sample, the function automatically performs a global fit to the data. This may be useful to better constrain the parameters \code{sigmaphi} or \code{mu} and \strong{requires} that known ages for each sample is provided (e.g., \code{age = c(100, 1000)} if \code{data} is a list with two samples). } \note{ \strong{This function has BETA status. If possible, results should be} \strong{cross-checked.} } \section{Function version}{ 0.1.0 } \examples{ ## Load example data data("ExampleData.SurfaceExposure") ## Example 1 - Single sample # Known parameters: 10000 a, mu = 0.9, sigmaphi = 5e-10 sample_1 <- ExampleData.SurfaceExposure$sample_1 head(sample_1) results <- fit_SurfaceExposure( data = sample_1, mu = 0.9, sigmaphi = 5e-10) get_RLum(results) ## Example 2 - Single sample and considering dose rate # Known parameters: 10000 a, mu = 0.9, sigmaphi = 5e-10, # dose rate = 2.5 Gy/ka, D0 = 40 Gy sample_2 <- ExampleData.SurfaceExposure$sample_2 head(sample_2) results <- fit_SurfaceExposure( data = sample_2, mu = 0.9, sigmaphi = 5e-10, Ddot = 2.5, D0 = 40) get_RLum(results) ## Example 3 - Multiple samples (global fit) to better constrain 'mu' # Known parameters: ages = 1e3, 1e4, 1e5, 1e6 a, mu = 0.9, sigmaphi = 5e-10 set_1 <- ExampleData.SurfaceExposure$set_1 str(set_1, max.level = 2) results <- fit_SurfaceExposure( data = set_1, age = c(1e3, 1e4, 1e5, 1e6), sigmaphi = 5e-10) get_RLum(results) ## Example 4 - Multiple samples (global fit) and considering dose rate # Known parameters: ages = 1e2, 1e3, 1e4, 1e5, 1e6 a, mu = 0.9, sigmaphi = 5e-10, # dose rate = 1.0 Ga/ka, D0 = 40 Gy set_2 <- ExampleData.SurfaceExposure$set_2 str(set_2, max.level = 2) results <- fit_SurfaceExposure( data = set_2, age = c(1e2, 1e3, 1e4, 1e5, 1e6), sigmaphi = 5e-10, Ddot = 1, D0 = 40) get_RLum(results) } \section{How to cite}{ Burow, C., 2025. fit_SurfaceExposure(): Nonlinear Least Squares Fit for OSL surface exposure data. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Sohbati, R., Murray, A.S., Chapot, M.S., Jain, M., Pederson, J., 2012a. Optically stimulated luminescence (OSL) as a chronometer for surface exposure dating. Journal of Geophysical Research 117, B09202. doi: \doi{10.1029/2012JB009383} Sohbati, R., Jain, M., Murray, A.S., 2012b. Surface exposure dating of non-terrestrial bodies using optically stimulated luminescence: A new method. Icarus 221, 160-166. } \seealso{ \link{ExampleData.SurfaceExposure}, \link[minpack.lm:nlsLM]{minpack.lm::nlsLM} } \author{ Christoph Burow, University of Cologne (Germany) , RLum Developer Team} \keyword{datagen} Luminescence/man/analyse_Al2O3C_CrossTalk.Rd0000644000176200001440000000713114762561642020371 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/analyse_Al2O3C_CrossTalk.R \name{analyse_Al2O3C_CrossTalk} \alias{analyse_Al2O3C_CrossTalk} \title{Al2O3:C Reader Cross Talk Analysis} \usage{ analyse_Al2O3C_CrossTalk( object, signal_integral = NULL, dose_points = c(0, 4), recordType = c("OSL (UVVIS)"), irradiation_time_correction = NULL, method_control = NULL, plot = TRUE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Analysis} or \link{list} (\strong{required}): measurement input} \item{signal_integral}{\link{numeric} (\emph{optional}): signal integral, used for the signal and the background. If nothing is provided the full range is used} \item{dose_points}{\link{numeric} (\emph{with default}): vector with dose points, if dose points are repeated, only the general pattern needs to be provided. Default values follow the suggestions made by Kreutzer et al., 2018} \item{recordType}{\link{character} (\emph{with default}): input curve selection, which is passed to function \link{get_RLum}. To deactivate the automatic selection set the argument to \code{NULL}} \item{irradiation_time_correction}{\link{numeric} or \linkS4class{RLum.Results} (\emph{optional}): information on the used irradiation time correction obtained by another experiment.} \item{method_control}{\link{list} (\emph{optional}): optional parameters to control the calculation. See details for further explanations} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{further arguments that can be passed to the plot output} } \value{ Function returns results numerically and graphically: -----------------------------------\cr \verb{[ NUMERICAL OUTPUT ]}\cr -----------------------------------\cr \strong{\code{RLum.Results}}-object \strong{slot:} \strong{\verb{@data}} \tabular{lll}{ \strong{Element} \tab \strong{Type} \tab \strong{Description}\cr \verb{$data} \tab \code{data.frame} \tab summed apparent dose table \cr \verb{$data_full} \tab \code{data.frame} \tab full apparent dose table \cr \verb{$fit} \tab \code{lm} \tab the linear model obtained from fitting \cr \verb{$col.seq} \tab \code{numeric} \tab the used colour vector \cr } \strong{slot:} \strong{\verb{@info}} The original function call ------------------------\cr \verb{[ PLOT OUTPUT ]}\cr ------------------------\cr \itemize{ \item An overview of the obtained apparent dose values } } \description{ The function provides the analysis of cross-talk measurements on a FI lexsyg SMART reader using Al2O3:C chips } \section{Function version}{ 0.1.3 } \examples{ ##load data data(ExampleData.Al2O3C, envir = environment()) ##run analysis analyse_Al2O3C_CrossTalk(data_CrossTalk) } \section{How to cite}{ Kreutzer, S., 2025. analyse_Al2O3C_CrossTalk(): Al2O3:C Reader Cross Talk Analysis. Function version 0.1.3. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Kreutzer, S., Martin, L., Guérin, G., Tribolo, C., Selva, P., Mercier, N., 2018. Environmental Dose Rate Determination Using a Passive Dosimeter: Techniques and Workflow for alpha-Al2O3:C Chips. Geochronometria 45, 56-67. doi: 10.1515/geochr-2015-0086 } \seealso{ \link{analyse_Al2O3C_ITC} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{datagen} Luminescence/man/analyse_pIRIRSequence.Rd0000644000176200001440000002016114762561642020075 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/analyse_pIRIRSequence.R \name{analyse_pIRIRSequence} \alias{analyse_pIRIRSequence} \title{Analyse post-IR IRSL measurement sequences} \usage{ analyse_pIRIRSequence( object, signal.integral.min, signal.integral.max, background.integral.min, background.integral.max, dose.points = NULL, sequence.structure = c("TL", "IR50", "pIRIR225"), plot = TRUE, plot_singlePanels = FALSE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Analysis} or \link{list} of \linkS4class{RLum.Analysis} objects (\strong{required}): input object containing data for analysis. If a \link{list} is provided the functions tries to iterate over each element in the list.} \item{signal.integral.min}{\link{integer} (\strong{required}): lower bound of the signal integral. Provide this value as vector for different integration limits for the different IRSL curves.} \item{signal.integral.max}{\link{integer} (\strong{required}): upper bound of the signal integral. Provide this value as vector for different integration limits for the different IRSL curves.} \item{background.integral.min}{\link{integer} (\strong{required}): lower bound of the background integral. Provide this value as vector for different integration limits for the different IRSL curves.} \item{background.integral.max}{\link{integer} (\strong{required}): upper bound of the background integral. Provide this value as vector for different integration limits for the different IRSL curves.} \item{dose.points}{\link{numeric} (\emph{optional}): a numeric vector containing the dose points values. Using this argument overwrites dose point values in the signal curves.} \item{sequence.structure}{\link{vector} \link{character} (\emph{with default}): specifies the general sequence structure. Allowed values are \code{"TL"} and any \code{"IR"} combination (e.g., \code{"IR50"},\code{"pIRIR225"}). Additionally a parameter \code{"EXCLUDE"} is allowed to exclude curves from the analysis (Note: If a preheat without PMT measurement is used, i.e. preheat as none TL, remove the TL step.)} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{plot_singlePanels}{\link{logical} (\emph{with default}): enable/disable plotting of the results in a single windows for each plot. Ignored if \code{plot = FALSE}.} \item{...}{further arguments that will be passed to \link{analyse_SAR.CWOSL} and \link{plot_GrowthCurve}. Furthermore, the arguments \code{main} (headers), \code{log} (IRSL curves), \code{cex} (control the size) and \code{mtext.outer} (additional text on the plot area) can be passed to influence the plotting. If the input is a list, \code{main} can be passed as \link{vector} or \link{list}.} } \value{ Plots (\emph{optional}) and an \linkS4class{RLum.Results} object is returned containing the following elements: \tabular{lll}{ \strong{DATA.OBJECT} \tab \strong{TYPE} \tab \strong{DESCRIPTION} \cr \code{..$data} : \tab \code{data.frame} \tab Table with De values \cr \code{..$LnLxTnTx.table} : \tab \code{data.frame} \tab with the \code{LnLxTnTx} values \cr \code{..$rejection.criteria} : \tab \link{data.frame} \tab rejection criteria \cr \code{..$Formula} : \tab \link{list} \tab Function used for fitting of the dose response curve \cr \code{..$call} : \tab \link{call} \tab the original function call } The output should be accessed using the function \link{get_RLum}. } \description{ The function performs an analysis of post-IR IRSL sequences including curve fitting on \linkS4class{RLum.Analysis} objects. } \details{ To allow post-IR IRSL protocol (Thomsen et al., 2008) measurement analyses, this function has been written as extended wrapper for function \link{analyse_SAR.CWOSL}, thus facilitating an entire sequence analysis in one run. With this, its functionality is strictly limited by the functionality provided by \link{analyse_SAR.CWOSL}. \strong{Defining the sequence structure} The argument \code{sequence.structure} expects a shortened pattern of your sequence structure and was mainly introduced to ease the use of the function. For example: If your measurement data contains the following curves: \code{TL}, \code{IRSL}, \code{IRSL}, \code{TL}, \code{IRSL}, \code{IRSL}, the sequence pattern in \code{sequence.structure} becomes \code{c('TL', 'IRSL', 'IRSL')}. The second part of your sequence for one cycle should be similar and can be discarded. If this is not the case (e.g., additional hotbleach) such curves have to be removed before using the function. \strong{If the input is a \code{list}} If the input is a list of \linkS4class{RLum.Analysis} objects, every argument can be provided as list to allow for different sets of parameters for every single input element. For further information see \link{analyse_SAR.CWOSL}. } \note{ Best graphical output can be achieved by using the function \code{pdf} with the following options: \code{pdf(file = "", height = 18, width = 18)} } \section{Function version}{ 0.2.5 } \examples{ ### NOTE: For this example existing example data are used. These data are non pIRIR data. ### ##(1) Compile example data set based on existing example data (SAR quartz measurement) ##(a) Load example data data(ExampleData.BINfileData, envir = environment()) ##(b) Transform the values from the first position in a RLum.Analysis object object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) ##(c) Grep curves and exclude the last two (one TL and one IRSL) object <- get_RLum(object, record.id = c(-29,-30)) ##(d) Define new sequence structure and set new RLum.Analysis object sequence.structure <- c(1,2,2,3,4,4) sequence.structure <- as.vector(sapply(seq(0,length(object)-1,by = 4), function(x){sequence.structure + x})) object <- sapply(1:length(sequence.structure), function(x){ object[[sequence.structure[x]]] }) object <- set_RLum(class = "RLum.Analysis", records = object, protocol = "pIRIR") ##(2) Perform pIRIR analysis (for this example with quartz OSL data!) ## Note: output as single plots to avoid problems with this example results <- analyse_pIRIRSequence(object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "EXP", sequence.structure = c("TL", "pseudoIRSL1", "pseudoIRSL2"), main = "Pseudo pIRIR data set based on quartz OSL", plot_singlePanels = TRUE) ##(3) Perform pIRIR analysis (for this example with quartz OSL data!) ## Alternative for PDF output, uncomment and complete for usage \dontrun{ tempfile <- tempfile(fileext = ".pdf") pdf(file = tempfile, height = 18, width = 18) results <- analyse_pIRIRSequence(object, signal.integral.min = 1, signal.integral.max = 2, background.integral.min = 900, background.integral.max = 1000, fit.method = "EXP", main = "Pseudo pIRIR data set based on quartz OSL") dev.off() } } \section{How to cite}{ Kreutzer, S., 2025. analyse_pIRIRSequence(): Analyse post-IR IRSL measurement sequences. Function version 0.2.5. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Murray, A.S., Wintle, A.G., 2000. Luminescence dating of quartz using an improved single-aliquot regenerative-dose protocol. Radiation Measurements 32, 57-73. \doi{10.1016/S1350-4487(99)00253-X} Thomsen, K.J., Murray, A.S., Jain, M., Boetter-Jensen, L., 2008. Laboratory fading rates of various luminescence signals from feldspar-rich sediment extracts. Radiation Measurements 43, 1474-1486. \doi{10.1016/j.radmeas.2008.06.002} } \seealso{ \link{analyse_SAR.CWOSL}, \link{calc_OSLLxTxRatio}, \link{plot_GrowthCurve}, \linkS4class{RLum.Analysis}, \linkS4class{RLum.Results} \link{get_RLum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{datagen} \keyword{plot} Luminescence/man/methods_RLum.Rd0000644000176200001440000002041414762557027016350 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/methods_RLum.R \name{methods_RLum} \alias{methods_RLum} \alias{plot.list} \alias{plot.RLum.Results} \alias{plot.RLum.Analysis} \alias{plot.RLum.Data.Curve} \alias{plot.RLum.Data.Spectrum} \alias{plot.RLum.Data.Image} \alias{plot.Risoe.BINfileData} \alias{hist.RLum.Results} \alias{hist.RLum.Data.Image} \alias{hist.RLum.Data.Curve} \alias{hist.RLum.Analysis} \alias{summary.RLum.Results} \alias{summary.RLum.Analysis} \alias{summary.RLum.Data.Image} \alias{summary.RLum.Data.Curve} \alias{subset.Risoe.BINfileData} \alias{subset.RLum.Analysis} \alias{bin} \alias{bin.RLum.Data.Curve} \alias{bin.RLum.Data.Spectrum} \alias{length.RLum.Results} \alias{length.RLum.Analysis} \alias{length.RLum.Data.Curve} \alias{length.Risoe.BINfileData} \alias{dim.RLum.Data.Curve} \alias{dim.RLum.Data.Spectrum} \alias{rep.RLum} \alias{names.RLum.Data.Curve} \alias{names.RLum.Data.Spectrum} \alias{names.RLum.Data.Image} \alias{names.RLum.Analysis} \alias{names.RLum.Results} \alias{names.Risoe.BINfileData} \alias{row.names.RLum.Data.Spectrum} \alias{as.data.frame.RLum.Data.Curve} \alias{as.data.frame.RLum.Data.Spectrum} \alias{as.data.frame.Risoe.BINfileData} \alias{as.list.RLum.Results} \alias{as.list.RLum.Data.Curve} \alias{as.list.RLum.Data.Image} \alias{as.list.RLum.Data.Spectrum} \alias{as.list.RLum.Analysis} \alias{as.matrix.RLum.Data.Curve} \alias{as.matrix.RLum.Data.Spectrum} \alias{as.matrix.RLum.Data.Image} \alias{is.RLum} \alias{is.RLum.Data} \alias{is.RLum.Data.Curve} \alias{is.RLum.Data.Spectrum} \alias{is.RLum.Data.Image} \alias{is.RLum.Analysis} \alias{is.RLum.Results} \alias{merge.RLum} \alias{unlist.RLum.Analysis} \alias{+.RLum.Data.Curve} \alias{+.RLum.Data.Spectrum} \alias{-.RLum.Data.Curve} \alias{-.RLum.Data.Spectrum} \alias{*.RLum.Data.Curve} \alias{*.RLum.Data.Spectrum} \alias{/.RLum.Data.Curve} \alias{/.RLum.Data.Spectrum} \alias{[.RLum.Data.Curve} \alias{[.RLum.Data.Spectrum} \alias{[.RLum.Data.Image} \alias{[.RLum.Analysis} \alias{[.RLum.Results} \alias{[<-.RLum.Data.Curve} \alias{[[.RLum.Analysis} \alias{[[.RLum.Results} \alias{$.RLum.Data.Curve} \alias{$.RLum.Analysis} \alias{$.RLum.Results} \title{methods_RLum} \usage{ \method{plot}{list}(x, y, ...) \method{plot}{RLum.Results}(x, y, ...) \method{plot}{RLum.Analysis}(x, y, ...) \method{plot}{RLum.Data.Curve}(x, y, ...) \method{plot}{RLum.Data.Spectrum}(x, y, ...) \method{plot}{RLum.Data.Image}(x, y, ...) \method{plot}{Risoe.BINfileData}(x, y, ...) \method{hist}{RLum.Results}(x, ...) \method{hist}{RLum.Data.Image}(x, ...) \method{hist}{RLum.Data.Curve}(x, ...) \method{hist}{RLum.Analysis}(x, ...) \method{summary}{RLum.Results}(object, ...) \method{summary}{RLum.Analysis}(object, ...) \method{summary}{RLum.Data.Image}(object, ...) \method{summary}{RLum.Data.Curve}(object, ...) \method{subset}{Risoe.BINfileData}(x, subset, records.rm = TRUE, ...) \method{subset}{RLum.Analysis}(x, subset = NULL, ...) bin(x, ...) \method{bin}{RLum.Data.Curve}(x, bin_size = 2, ...) \method{bin}{RLum.Data.Spectrum}(x, bin_size.row = 1, bin_size.col = 1, ...) \method{length}{RLum.Results}(x, ...) \method{length}{RLum.Analysis}(x, ...) \method{length}{RLum.Data.Curve}(x, ...) \method{length}{Risoe.BINfileData}(x, ...) \method{dim}{RLum.Data.Curve}(x) \method{dim}{RLum.Data.Spectrum}(x) \method{rep}{RLum}(x, ...) \method{names}{RLum.Data.Curve}(x, ...) \method{names}{RLum.Data.Spectrum}(x, ...) \method{names}{RLum.Data.Image}(x, ...) \method{names}{RLum.Analysis}(x, ...) \method{names}{RLum.Results}(x, ...) \method{names}{Risoe.BINfileData}(x) \method{row.names}{RLum.Data.Spectrum}(x, ...) \method{as.data.frame}{RLum.Data.Curve}(x, row.names = NULL, optional = FALSE, ...) \method{as.data.frame}{RLum.Data.Spectrum}(x, row.names = NULL, optional = FALSE, ...) \method{as.data.frame}{Risoe.BINfileData}(x, row.names = NULL, optional = FALSE, ...) \method{as.list}{RLum.Results}(x, ...) \method{as.list}{RLum.Data.Curve}(x, ...) \method{as.list}{RLum.Data.Image}(x, ...) \method{as.list}{RLum.Data.Spectrum}(x, ...) \method{as.list}{RLum.Analysis}(x, ...) \method{as.matrix}{RLum.Data.Curve}(x, ...) \method{as.matrix}{RLum.Data.Spectrum}(x, ...) \method{as.matrix}{RLum.Data.Image}(x, ...) is.RLum(x, ...) is.RLum.Data(x, ...) is.RLum.Data.Curve(x, ...) is.RLum.Data.Spectrum(x, ...) is.RLum.Data.Image(x, ...) is.RLum.Analysis(x, ...) is.RLum.Results(x, ...) \method{merge}{RLum}(x, y, ...) \method{unlist}{RLum.Analysis}(x, recursive = TRUE, ...) \method{+}{RLum.Data.Curve}(x, y) \method{+}{RLum.Data.Spectrum}(x, y) \method{-}{RLum.Data.Curve}(x, y) \method{-}{RLum.Data.Spectrum}(x, y) \method{*}{RLum.Data.Curve}(x, y) \method{*}{RLum.Data.Spectrum}(x, y) \method{/}{RLum.Data.Curve}(x, y) \method{/}{RLum.Data.Spectrum}(x, y) \method{[}{RLum.Data.Curve}(x, y, z, drop = TRUE) \method{[}{RLum.Data.Spectrum}(x, y, z, drop = TRUE) \method{[}{RLum.Data.Image}(x, y, z, drop = TRUE) \method{[}{RLum.Analysis}(x, i, drop = FALSE) \method{[}{RLum.Results}(x, i, drop = TRUE) \method{[}{RLum.Data.Curve}(x, i, j) <- value \method{[[}{RLum.Analysis}(x, i) \method{[[}{RLum.Results}(x, i) \method{$}{RLum.Data.Curve}(x, i) \method{$}{RLum.Analysis}(x, i) \method{$}{RLum.Results}(x, i) } \arguments{ \item{x}{\linkS4class{RLum} or \linkS4class{Risoe.BINfileData} (\strong{required}): input object} \item{y}{\link{integer} (\emph{optional}): the row index of the matrix, data.frame} \item{...}{further arguments that can be passed to the method} \item{object}{\linkS4class{RLum} (\strong{required}): input object} \item{subset}{\verb{[subset]} \link{expression} (\strong{required}): logical expression indicating elements or rows to keep, this function works in \linkS4class{Risoe.BINfileData} objects like \link{subset.data.frame}, but takes care of the object structure. Works also on \linkS4class{RLum.Analysis} objects.} \item{records.rm}{\link{subset} \link{logical} (\emph{with default}): remove records from data set, can be disabled, to just set the column \code{SET} to \code{TRUE} or \code{FALSE}} \item{row.names}{\link{logical} (\emph{with default}): enable/disable row names (\code{as.data.frame}).} \item{optional}{\link{logical} (\emph{with default}): logical. If TRUE, setting row names and converting column names (to syntactic names: see make.names) is optional (see \link[base:as.data.frame]{base::as.data.frame})} \item{recursive}{\link{logical} (\emph{with default}): enable/disable further sub-setting (\code{unlist}).} \item{z}{\link{integer} (\emph{optional}): the column index of the matrix, data.frame} \item{drop}{\link{logical} (\emph{with default}): keep object structure or drop it} \item{i}{\link{character} (\emph{optional}): name of the wanted record type or data object or row in the \code{RLum.Data.Curve} object} \item{j}{\link{integer} (\emph{optional}): column of the data matrix in the \code{RLum.Data.Curve} object} \item{value}{\link{numeric} (\strong{required}): numeric value which replace the value in the \code{RLum.Data.Curve} object} } \description{ Methods for S3-generics implemented for the package 'Luminescence'. This document summarises all implemented S3-generics. The name of the function is given before the first dot, after the dot the name of the object that is supported by this method is given, e.g. \code{plot.RLum.Data.Curve} can be called by \code{plot(object, ...)}, where \code{object} is the \code{RLum.Data.Curve} object. } \details{ The term S3-generics sounds complicated, however, it just means that something has been implemented in the package to increase the usability for users new in R and who are not familiar with the underlying \code{RLum}-object structure of the package. The practical outcome is that operations and functions presented in standard books on R can be used without knowing the specifics of the R package \code{'Luminescence'}. For examples see the example section. } \note{ \code{methods_RLum} are not really new functions, everything given here are mostly just surrogates for existing functions in the package. } \examples{ ##load example data data(ExampleData.RLum.Analysis, envir = environment()) ##combine curve is various ways curve1 <- IRSAR.RF.Data[[1]] curve2 <- IRSAR.RF.Data[[1]] curve1 + curve2 curve1 - curve2 curve1 / curve2 curve1 * curve2 ##`$` access curves IRSAR.RF.Data$RF } \keyword{internal} Luminescence/man/set_RLum.Rd0000644000176200001440000000536414762561642015505 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-generics.R \name{set_RLum} \alias{set_RLum} \title{General setter function for RLum S4 class objects} \usage{ set_RLum(class, originator, .uid = create_UID(), .pid = NA_character_, ...) } \arguments{ \item{class}{\link{character} (\strong{required}): name of the S4 class to create, must correspond to one of the \linkS4class{RLum} classes.} \item{originator}{\link{character} (\emph{automatic}): contains the name of the calling function (the function that produces this object); can be set manually.} \item{.uid}{\link{character} (\emph{automatic}): unique ID for this object, by default set using the internal C++ function \code{create_UID}.} \item{.pid}{\link{character} (\emph{with default}): option to provide a parent id for nesting at will.} \item{...}{further arguments passed to the specific class method} } \value{ An object of the specified \linkS4class{RLum} class. } \description{ The function provides a generalised access point for specific \linkS4class{RLum} objects. Depending on the given class, the corresponding method to create an object from this class will be selected. Allowed additional arguments can be found in the documentations of the corresponding \linkS4class{RLum} class: \itemize{ \item \linkS4class{RLum.Data.Curve}, \item \linkS4class{RLum.Data.Image}, \item \linkS4class{RLum.Data.Spectrum}, \item \linkS4class{RLum.Analysis}, \item \linkS4class{RLum.Results} } } \section{Function version}{ 0.3.0 } \examples{ ## produce empty objects from each class set_RLum(class = "RLum.Data.Curve") set_RLum(class = "RLum.Data.Spectrum") set_RLum(class = "RLum.Data.Spectrum") set_RLum(class = "RLum.Analysis") set_RLum(class = "RLum.Results") ## produce a curve object with arbitrary curve values object <- set_RLum( class = "RLum.Data.Curve", curveType = "arbitrary", recordType = "OSL", data = matrix(c(1:100,exp(-c(1:100))),ncol = 2)) ## plot this curve object plot_RLum(object) } \seealso{ \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Data.Image}, \linkS4class{RLum.Data.Spectrum}, \linkS4class{RLum.Analysis}, \linkS4class{RLum.Results} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. set_RLum(): General setter function for RLum S4 class objects. Function version 0.3.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{utilities} Luminescence/man/RLum.Data.Spectrum-class.Rd0000644000176200001440000001337114762561642020403 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/RLum.Data.Spectrum-class.R \docType{class} \name{RLum.Data.Spectrum-class} \alias{RLum.Data.Spectrum-class} \alias{show,RLum.Data.Spectrum-method} \alias{set_RLum,RLum.Data.Spectrum-method} \alias{get_RLum,RLum.Data.Spectrum-method} \alias{names_RLum,RLum.Data.Spectrum-method} \alias{bin_RLum.Data,RLum.Data.Spectrum-method} \title{Class \code{"RLum.Data.Spectrum"}} \usage{ \S4method{show}{RLum.Data.Spectrum}(object) \S4method{set_RLum}{RLum.Data.Spectrum}( class, originator, .uid, .pid, recordType = "Spectrum", curveType = NA_character_, data = matrix(), info = list() ) \S4method{get_RLum}{RLum.Data.Spectrum}(object, info.object) \S4method{names_RLum}{RLum.Data.Spectrum}(object) \S4method{bin_RLum.Data}{RLum.Data.Spectrum}(object, bin_size.col = 1, bin_size.row = 1) } \arguments{ \item{object}{\code{\link{get_RLum}}, \code{\link{names_RLum}} (\strong{required}): an object of class \linkS4class{RLum.Data.Spectrum}} \item{class}{\code{\link{set_RLum}}; \link{character} (\emph{automatic}): name of the \code{RLum} class to create.} \item{originator}{\link{character} (\emph{automatic}): contains the name of the calling function (the function that produces this object); can be set manually.} \item{.uid}{\code{\link{set_RLum}}; \link{character} (\emph{automatic}): sets an unique ID for this object using the internal C++ function \code{create_UID}.} \item{.pid}{\code{\link{set_RLum}}; \link{character} (\emph{with default}): option to provide a parent id for nesting at will.} \item{recordType}{\code{\link{set_RLum}}; \link{character}: record type (e.g. "OSL")} \item{curveType}{\code{\link{set_RLum}}; \link{character}: curve type (e.g. "predefined" or "measured")} \item{data}{\code{\link{set_RLum}}; \link{matrix}: raw curve data. If data is of type \code{RLum.Data.Spectrum}, this can be used to re-construct the object. If the object is reconstructed, \code{.uid}, \code{.pid} and \code{originator} are always taken from the input object} \item{info}{\code{\link{set_RLum}} \link{list}: info elements} \item{info.object}{\code{\link{get_RLum}}; \link{character} (\emph{optional}): the name of the info object to be called. If no info element name is provided, the raw curve data (matrix) will be returned} \item{bin_size.col}{\link{integer} (\emph{with default}): set number of channels used for each bin, e.g. \code{bin_size.col = 2} means that two channels are binned. Note: The function does not check the input, very large values mean a full column binning (a single sum)} \item{bin_size.row}{\link{integer} (\emph{with default}): set number of channels used for each bin, e.g. \code{bin_size.row = 2} means that two channels are binned. Note: The function does not check the input, very large values mean a full row binning (a single sum)} } \value{ \strong{\verb{[set_RLum]}} An object from the class \code{RLum.Data.Spectrum} \strong{\verb{[get_RLum]}} \enumerate{ \item A \link{matrix} with the spectrum values or \item only the info object if \code{info.object} was set. } \strong{\verb{[names_RLum]}} The names of the info objects \strong{\verb{[bin_RLum.Data]}} Same object as input, after applying the binning. } \description{ Class for representing luminescence spectra data (TL/OSL/RF). } \section{Methods (by generic)}{ \itemize{ \item \code{show(RLum.Data.Spectrum)}: Show structure of \code{RLum.Data.Spectrum} object \item \code{set_RLum(RLum.Data.Spectrum)}: Construction method for RLum.Data.Spectrum object. The \code{info} slot is optional and by default it is set to an empty list \item \code{get_RLum(RLum.Data.Spectrum)}: Accessor method for \code{RLum.Data.Spectrum} object. \item \code{names_RLum(RLum.Data.Spectrum)}: Returns the names info elements coming along with this curve object \item \code{bin_RLum.Data(RLum.Data.Spectrum)}: Allows binning of RLum.Data.Spectrum data. Count values and values on the x-axis are summed-up; for wavelength/energy values the mean is calculated. }} \section{Slots}{ \describe{ \item{\code{recordType}}{Object of class \link{character} containing the type of the curve (e.g. "TL" or "OSL")} \item{\code{curveType}}{Object of class \link{character} containing curve type, allowed values are "measured" or "predefined"} \item{\code{data}}{Object of class \link{matrix} containing spectrum (count) values. Row labels indicate wavelength/pixel values, column labels are temperature or time values.} \item{\code{info}}{Object of class \link{list} containing further meta information objects} }} \note{ The class should only contain data for a single spectra data set. For additional elements the slot \code{info} can be used. Objects from this class are automatically created by, e.g., \link{read_XSYG2R} } \section{Objects from the Class}{ Objects can be created by calls of the form \code{set_RLum("RLum.Data.Spectrum", ...)}. } \section{Class version}{ 0.5.2 } \examples{ showClass("RLum.Data.Spectrum") ##show example data data(ExampleData.XSYG, envir = environment()) TL.Spectrum ##show data matrix get_RLum(TL.Spectrum) ##plot spectrum \dontrun{ plot_RLum(TL.Spectrum) } } \seealso{ \linkS4class{RLum}, \linkS4class{RLum.Data}, \link{plot_RLum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. RLum.Data.Spectrum-class(): Class 'RLum.Data.Spectrum'. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{classes} \keyword{internal} Luminescence/man/write_R2TIFF.Rd0000644000176200001440000000411114762561642016106 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/write_R2TIFF.R \name{write_R2TIFF} \alias{write_R2TIFF} \title{Export RLum.Data.Image and RLum.Data.Spectrum objects to TIFF Images} \usage{ write_R2TIFF(object, file = tempfile(), norm = 65535, ...) } \arguments{ \item{object}{\linkS4class{RLum.Data.Image} or \linkS4class{RLum.Data.Spectrum} object (\strong{required}): input object, can be a \link{list} of such objects} \item{file}{\link{character} (\strong{required}): the file name and path} \item{norm}{\link{numeric} (\emph{with default}): normalisation values. Values in TIFF files must range between 0-1, however, usually in imaging applications the pixel values are real integer count values. The normalisation to the to the highest 16-bit integer values -1 ensures that the numerical values are retained in the exported image. If \code{1} nothing is normalised.} \item{...}{further arguments to be passed to \link[tiff:writeTIFF]{tiff::writeTIFF}.} } \value{ A TIFF file } \description{ Simple wrapper around \link[tiff:writeTIFF]{tiff::writeTIFF} to export suitable RLum-class objects to TIFF images. Per default 16-bit TIFF files are exported. } \section{Function version}{ 0.1.0 } \examples{ data(ExampleData.RLum.Data.Image, envir = environment()) write_R2TIFF(ExampleData.RLum.Data.Image, file = tempfile()) } \seealso{ \link[tiff:writeTIFF]{tiff::writeTIFF}, \linkS4class{RLum.Data.Image}, \linkS4class{RLum.Data.Spectrum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. write_R2TIFF(): Export RLum.Data.Image and RLum.Data.Spectrum objects to TIFF Images. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{IO} Luminescence/man/BaseDataSet.FractionalGammaDose.Rd0000644000176200001440000000161514762557027021727 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{BaseDataSet.FractionalGammaDose} \alias{BaseDataSet.FractionalGammaDose} \title{Base data set of fractional gamma-dose values} \format{ A \code{\link{list}} with fractional gamma dose-rate values sorted by article: \tabular{ll}{ \code{Aitken1985}: \tab Fractional gamma-dose values from table H.1 } } \source{ Fractional gamma dose values were carefully read from the tables given in the references above. } \description{ Collection of (un-)published fractional gamma dose-rate values to scale the gamma-dose rate considering layer-to-layer variations in soil radioactivity. } \section{Version}{ 0.1 } \examples{ ## Load data data("BaseDataSet.FractionalGammaDose", envir = environment()) } \references{ Aitken, M.J., 1985. Thermoluminescence Dating. Academic Press, London. } \keyword{datasets} Luminescence/man/Luminescence-package.Rd0000644000176200001440000001526014762557025017752 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \docType{package} \name{Luminescence-package} \alias{Luminescence-package} \alias{Luminescence} \title{Comprehensive Luminescence Dating Data Analysis\cr \if{html}{ \figure{Luminescence_logo.png}{options: width="75" alt="r-luminescence.org"} }} \description{ A collection of various R functions for the purpose of luminescence dating data analysis. This includes, amongst others, data import, export, application of age models, curve deconvolution, sequence analysis and plotting of equivalent dose distributions. } \details{ \strong{Supervisor of the initial version in 2012} Markus Fuchs, Justus-Liebig-University Giessen, Germany \strong{Support contact} \itemize{ \item \email{developers@r-luminescence.org} \item \url{https://github.com/R-Lum/Luminescence/discussions} } \strong{Bug reporting} \itemize{ \item \email{developers@r-luminescence.org} or \item \url{https://github.com/R-Lum/Luminescence/issues} } \strong{Project website} \itemize{ \item \url{https://r-luminescence.org} } \strong{Project source code repository} \itemize{ \item \url{https://github.com/R-Lum/Luminescence} } \strong{Related package projects} \itemize{ \item \url{https://cran.r-project.org/package=RLumShiny} \item \url{https://cran.r-project.org/package=RLumModel} \item \url{https://cran.r-project.org/package=RLumCarlo} \item \url{https://cran.r-project.org/package=RCarb} } \strong{Funding} \itemize{ \item 2011-2013: The initial version of the package was developed, while Sebastian Kreutzer was funded through the DFG programme "Rekonstruktion der Umweltbedingungen des Spätpleistozäns in Mittelsachsen anhand von Löss-Paläobodensequenzen" (DFG id: 46526743) \item 2014-2018: Cooperation and personal exchange between the developers is gratefully funded by the DFG (SCHM 3051/3-1) in the framework of the program "Scientific Networks". Project title: "RLum.Network: Ein Wissenschaftsnetzwerk zur Analyse von Lumineszenzdaten mit R" (2014-2018) \item 05/2014-12/2019: The work of Sebastian Kreutzer as maintainer of the package was supported by LabEx LaScArBx (ANR - n. ANR-10-LABX-52). \item 01/2020-04/2022: Sebastian Kreutzer as maintainer of the package has received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie grant agreement No 844457 (CREDit), and could continue maintaining the package. \item since 03/2023: Sebastian Kreutzer as maintainer of the package receives funding from the DFG Heisenberg programme No 505822867. \item All other authors gratefully received additional funding from various public funding bodies. } } \references{ Dietze, M., Kreutzer, S., Fuchs, M.C., Burow, C., Fischer, M., Schmidt, C., 2013. A practical guide to the R package Luminescence. Ancient TL, 31 (1), 11-18. Dietze, M., Kreutzer, S., Burow, C., Fuchs, M.C., Fischer, M., Schmidt, C., 2016. The abanico plot: visualising chronometric data with individual standard errors. Quaternary Geochronology 31, 1-7. https://doi.org/10.1016/j.quageo.2015.09.003 Fuchs, M.C., Kreutzer, S., Burow, C., Dietze, M., Fischer, M., Schmidt, C., Fuchs, M., 2015. Data processing in luminescence dating analysis: An exemplary workflow using the R package 'Luminescence'. Quaternary International, 362,8-13. https://doi.org/10.1016/j.quaint.2014.06.034 Kreutzer, S., Schmidt, C., Fuchs, M.C., Dietze, M., Fischer, M., Fuchs, M., 2012. Introducing an R package for luminescence dating analysis. Ancient TL, 30 (1), 1-8. Mercier, N., Kreutzer, S., Christophe, C., Guérin, G., Guibert, P., Lahaye, C., Lanos, P., Philippe, A., Tribolo, C., 2016. Bayesian statistics in luminescence dating: The 'baSAR'-model and its implementation in the R package ’Luminescence’. Ancient TL 34 (2), 14-21. Mercier, N., Galharret, J.-M., Tribolo, C., Kreutzer, S., Philippe, A., 2022. Luminescence age calculation through Bayesian convolution of equivalent dose and dose-rate distributions: the De_Dr model. Geochronology 4, 297–310. https://doi.org/10.5194/gchron-4-297-2022 Smedley, R.K., 2015. A new R function for the Internal External Uncertainty (IEU) model. Ancient TL, 33 (1), 16-21. King, E.G., Burow, C., Roberts, H., Pearce, N.J.G., 2018. Age determination using feldspar: evaluating fading-correction model performance. Radiation Measurements 119, 58-73. https://doi.org/10.1016/j.radmeas.2018.07.013 } \seealso{ Useful links: \itemize{ \item \url{https://r-lum.github.io/Luminescence/} \item Report bugs at \url{https://github.com/R-Lum/Luminescence/issues} } } \author{ \strong{Maintainer}: Sebastian Kreutzer \email{maintainer_luminescence@r-luminescence.org} (\href{https://orcid.org/0000-0002-0734-2199}{ORCID}) [translator, data contributor] Authors: \itemize{ \item Christoph Burow (\href{https://orcid.org/0000-0002-5023-4046}{ORCID}) [translator, data contributor] \item Michael Dietze (\href{https://orcid.org/0000-0001-6063-1726}{ORCID}) \item Margret C. Fuchs (\href{https://orcid.org/0000-0001-7210-1132}{ORCID}) \item Christoph Schmidt (\href{https://orcid.org/0000-0002-2309-3209}{ORCID}) \item Manfred Fischer [translator] \item Johannes Friedrich (\href{https://orcid.org/0000-0002-0805-9547}{ORCID}) \item Norbert Mercier (\href{https://orcid.org/0000-0002-6375-9108}{ORCID}) \item Anne Philippe (\href{https://orcid.org/0000-0002-5331-5087}{ORCID}) \item Svenja Riedesel (\href{https://orcid.org/0000-0003-2936-8776}{ORCID}) \item Martin Autzen (\href{https://orcid.org/0000-0001-6249-426X}{ORCID}) \item Dirk Mittelstrass (\href{https://orcid.org/0000-0002-9567-8791}{ORCID}) \item Harrison J. Gray (\href{https://orcid.org/0000-0002-4555-7473}{ORCID}) \item Jean-Michel Galharret (\href{https://orcid.org/0000-0003-2219-8727}{ORCID}) \item Marco Colombo (\href{https://orcid.org/0000-0001-6672-0623}{ORCID}) \item Luc Steinbuch (\href{https://orcid.org/0000-0001-6484-0920}{ORCID}) \item Anna-Maartje de Boer (\href{https://orcid.org/0000-0002-7359-6939}{ORCID}) } Other contributors: \itemize{ \item Rachel K. Smedley (\href{https://orcid.org/0000-0001-7773-5193}{ORCID}) [contributor] \item Claire Christophe [contributor] \item Antoine Zink (\href{https://orcid.org/0000-0001-7146-1101}{ORCID}) [contributor] \item Julie Durcan (\href{https://orcid.org/0000-0001-8724-8022}{ORCID}) [contributor] \item Georgina E. King (\href{https://orcid.org/0000-0003-1059-8192}{ORCID}) [contributor, data contributor] \item Guillaume Guerin (\href{https://orcid.org/0000-0001-6298-5579}{ORCID}) [contributor] \item Pierre Guibert (\href{https://orcid.org/0000-0001-8969-8684}{ORCID}) [contributor] \item Markus Fuchs (\href{https://orcid.org/0000-0003-4669-6528}{ORCID}) [thesis advisor] } } \keyword{package} Luminescence/man/fit_CWCurve.Rd0000644000176200001440000001644614762561642016136 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/fit_CWCurve.R \name{fit_CWCurve} \alias{fit_CWCurve} \title{Nonlinear Least Squares Fit for CW-OSL curves -beta version-} \usage{ fit_CWCurve( values, n.components.max, fit.failure_threshold = 5, fit.method = "port", fit.trace = FALSE, fit.calcError = FALSE, LED.power = 36, LED.wavelength = 470, cex.global = 0.6, sample_code = "Default", verbose = TRUE, output.terminalAdvanced = TRUE, plot = TRUE, method_control = list(), ... ) } \arguments{ \item{values}{\linkS4class{RLum.Data.Curve} or \link{data.frame} (\strong{required}): x, y data of measured values (time and counts). See examples.} \item{n.components.max}{\link{vector} (\emph{optional}): maximum number of components that are to be used for fitting. The upper limit is 7.} \item{fit.failure_threshold}{\link{integer} (\emph{with default}): limits the failed fitting attempts.} \item{fit.method}{\link{character} (\emph{with default}): select fit method, allowed values: \code{'port'} and \code{'LM'}. \code{'port'} uses the 'port' routine from the function \link{nls} \code{'LM'} utilises the function \code{nlsLM} from the package \code{minpack.lm} and with that the Levenberg-Marquardt algorithm.} \item{fit.trace}{\link{logical} (\emph{with default}): traces the fitting process on the terminal.} \item{fit.calcError}{\link{logical} (\emph{with default}): calculate 1-sigma error range of components using \link[stats:confint]{stats::confint}} \item{LED.power}{\link{numeric} (\emph{with default}): LED power (max.) used for intensity ramping in mW/cm². \strong{Note:} The value is used for the calculation of the absolute photoionisation cross section.} \item{LED.wavelength}{\link{numeric} (\emph{with default}): LED wavelength used for stimulation in nm. \strong{Note:} The value is used for the calculation of the absolute photoionisation cross section.} \item{cex.global}{\link{numeric} (\emph{with default}): global scaling factor.} \item{sample_code}{\link{character} (\emph{optional}): sample code used for the plot and the optional output table (\code{mtext}).} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{output.terminalAdvanced}{\link{logical} (\emph{with default}): enhanced terminal output. Only valid if \code{verbose = TRUE}.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{method_control}{\link{list} (\emph{optional}): options to control the output produced. Currently only the 'export.comp.contrib.matrix' (logical) option is supported, to enable/disable export of the component contribution matrix.} \item{...}{further arguments and graphical parameters passed to \link{plot}.} } \value{ \strong{plot (\emph{optional})} the fitted CW-OSL curves are returned as plot. \strong{RLum.Results object} Beside the plot and table output options, an \linkS4class{RLum.Results} object is returned. \code{fit}: an \code{nls} object (\verb{$fit}) for which generic R functions are provided, e.g. \link{summary}, \link[stats:confint]{stats::confint}, \link{profile}. For more details, see \link{nls}. \code{output.table}: a \link{data.frame} containing the summarised parameters including the error \code{component.contribution.matrix}: \link{matrix} containing the values for the component to sum contribution plot (\verb{$component.contribution.matrix}). Produced only if \code{method_control$export.comp.contrib.matrix = TRUE}). Matrix structure:\cr Column 1 and 2: time and \code{rev(time)} values \cr Additional columns are used for the components, two for each component, containing I0 and n0. The last columns \code{cont.} provide information on the relative component contribution for each time interval including the row sum for this values. } \description{ The function determines the weighted least-squares estimates of the component parameters of a CW-OSL signal for a given maximum number of components and returns various component parameters. The fitting procedure uses the \link{nls} function with the \code{port} algorithm. \strong{Fitting function} The function for the CW-OSL fitting has the general form: \deqn{y = I0_{1}*\lambda_{1}*exp(-\lambda_1*x) + ,\ldots, + I0_{i}*\lambda_{i}*exp(-\lambda_i*x) } where \eqn{0 < i < 8} and \eqn{\lambda} is the decay constant \cr and \eqn{I0} the initial number of trapped electrons. \emph{(for the used equation cf. Boetter-Jensen et al., 2003, Eq. 2.31)} \strong{Start values} Start values are estimated automatically by fitting a linear function to the logarithmized input data set. Currently, there is no option to manually provide start parameters. \strong{Goodness of fit} The goodness of the fit is given as pseudoR² value (pseudo coefficient of determination). According to Lave (1970), the value is calculated as: \deqn{pseudoR^2 = 1 - RSS/TSS} where \eqn{RSS = Residual~Sum~of~Squares} \cr and \eqn{TSS = Total~Sum~of~Squares} \strong{Error of fitted component parameters} The 1-sigma error for the components is calculated using the function \link[stats:confint]{stats::confint}. Due to considerable calculation time, this option is deactivated by default. In addition, the error for the components can be estimated by using internal R functions like \link{summary}. See the \link{nls} help page for more information. \emph{For details on the nonlinear regression in R, see Ritz & Streibig (2008).} } \note{ \strong{Beta version - This function has not been properly tested yet and} \strong{should therefore not be used for publication purposes!} The pseudo-R² may not be the best parameter to describe the goodness of the fit. The trade off between the \code{n.components} and the pseudo-R² value is currently not considered. The function \strong{does not} ensure that the fitting procedure has reached a global minimum rather than a local minimum! } \section{Function version}{ 0.5.4 } \examples{ ##load data data(ExampleData.CW_OSL_Curve, envir = environment()) ##fit data fit <- fit_CWCurve(values = ExampleData.CW_OSL_Curve, main = "CW Curve Fit", n.components.max = 4, log = "x") } \section{How to cite}{ Kreutzer, S., 2025. fit_CWCurve(): Nonlinear Least Squares Fit for CW-OSL curves -beta version-. Function version 0.5.4. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Boetter-Jensen, L., McKeever, S.W.S., Wintle, A.G., 2003. Optically Stimulated Luminescence Dosimetry. Elsevier Science B.V. Lave, C.A.T., 1970. The Demand for Urban Mass Transportation. The Review of Economics and Statistics, 52 (3), 320-323. Ritz, C. & Streibig, J.C., 2008. Nonlinear Regression with R. In: R. Gentleman, K. Hornik, G. Parmigiani, eds., Springer, p. 150. } \seealso{ \link{fit_LMCurve}, \link{plot},\link{nls}, \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Results}, \link{get_RLum}, \link[minpack.lm:nlsLM]{minpack.lm::nlsLM} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{dplot} \keyword{models} Luminescence/man/fit_ThermalQuenching.Rd0000644000176200001440000001277714762561642020061 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/fit_ThermalQuenching.R \name{fit_ThermalQuenching} \alias{fit_ThermalQuenching} \title{Fitting Thermal Quenching Data} \usage{ fit_ThermalQuenching( data, start_param = list(), method_control = list(), n.MC = 100, verbose = TRUE, plot = TRUE, ... ) } \arguments{ \item{data}{\link{data.frame} (\strong{required}): input data with three columns, the first column contains temperature values in deg. C, columns 2 and 3 the dependent values with its error} \item{start_param}{\link{list} (\emph{optional}): option to provide the start parameters for the fitting, see details} \item{method_control}{\link{list} (\emph{optional}): further options to fine tune the fitting, see details for further information} \item{n.MC}{\link{numeric} (\emph{with default}): number of Monte Carlo runs for the error estimation. If \code{n.MC} is \code{NULL} or \verb{<=1}, the error estimation is skipped} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{further arguments that can be passed to control the plotting, support are \code{main}, \code{pch}, \code{col_fit}, \code{col_points}, \code{lty}, \code{lwd}, \code{xlab}, \code{ylab}, \code{xlim}, \code{ylim}, \code{xaxt}} } \value{ The function returns numerical output and an (\emph{optional}) plot. -----------------------------------\cr \verb{[ NUMERICAL OUTPUT ]}\cr -----------------------------------\cr \strong{\code{RLum.Results}}-object \strong{slot:} \strong{\verb{@data}} \verb{[.. $data : data.frame]}\cr A table with all fitting parameters and the number of Monte Carlo runs used for the error estimation. \verb{[.. $fit : nls object]} \cr The nls \link[stats:nls]{stats::nls} object returned by the function \link[minpack.lm:nlsLM]{minpack.lm::nlsLM}. This object can be further passed to other functions supporting an nls object (cf. details section in \link[stats:nls]{stats::nls}) \strong{slot:} \strong{\verb{@info}} \verb{[.. $call : call]}\cr The original function call. -----------------------------------\cr \verb{[ GAPHICAL OUTPUT ]}\cr -----------------------------------\cr Plotted are temperature against the signal and their uncertainties. The fit is shown as dashed-line (can be modified). Please note that for the fitting the absolute temperature values are used but are re-calculated to deg. C for the plot. } \description{ Applying a nls-fitting to thermal quenching data. } \details{ \strong{Used equation}\cr The equation used for the fitting is \deqn{y = (A / (1 + C * (exp(-W / (k * x))))) + c} \emph{W} is the energy depth in eV and \emph{C} is dimensionless constant. \emph{A} and \emph{c} are used to adjust the curve for the given signal. \emph{k} is the Boltzmann in eV/K and \emph{x} is the absolute temperature in K. \strong{Error estimation}\cr The error estimation is done be varying the input parameters using the given uncertainties in a Monte Carlo simulation. Errors are assumed to follow a normal distribution. \strong{\code{start_param}} \cr The function allows the injection of own start parameters via the argument \code{start_param}. The parameters needs to be provided as names list. The names are the parameters to be optimised. Examples: \code{start_param = list(A = 1, C = 1e+5, W = 0.5, c = 0)} \strong{\code{method_control}} \cr The following arguments can be provided via \code{method_control}. Please note that arguments provided via \code{method_control} are not further tested, i.e., if the function crashes your input was probably wrong. \tabular{lll}{ \strong{ARGUMENT} \tab \strong{TYPE} \tab \strong{DESCRIPTION}\cr \code{upper} \tab named \link{vector} \tab sets upper fitting boundaries, if provided boundaries for all arguments are required, e.g., \code{c(A = 0, C = 0, W = 0, c = 0)} \cr \code{lower} \tab names \link{vector} \tab set lower fitting boundaries (see \code{upper} for details) \cr \code{trace} \tab \link{logical} \tab enable/disable progression trace for \link[minpack.lm:nlsLM]{minpack.lm::nlsLM}\cr \code{weights} \tab \link{numeric} \tab option to provide own weights for the fitting, the length of this vector needs to be equal to the number for rows of the input \code{data.frame}. If set to \code{NULL} no weights are applied. The weights are defined by the third column of the input \code{data.frame}. } } \section{Function version}{ 0.1.0 } \examples{ ##create short example dataset data <- data.frame( T = c(25, 40, 50, 60, 70, 80, 90, 100, 110), V = c(0.06, 0.058, 0.052, 0.051, 0.041, 0.034, 0.035, 0.033, 0.032), V_X = c(0.012, 0.009, 0.008, 0.008, 0.007, 0.006, 0.005, 0.005, 0.004)) ##fit fit_ThermalQuenching( data = data, n.MC = NULL) } \section{How to cite}{ Kreutzer, S., 2025. fit_ThermalQuenching(): Fitting Thermal Quenching Data. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Wintle, A.G., 1975. Thermal Quenching of Thermoluminescence in Quartz. Geophys. J. R. astr. Soc. 41, 107–113. } \seealso{ \link[minpack.lm:nlsLM]{minpack.lm::nlsLM} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} Luminescence/man/melt_RLum.Rd0000644000176200001440000000274014762561642015646 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-generics.R \name{melt_RLum} \alias{melt_RLum} \alias{melt_RLum,list-method} \title{Melt RLum-class objects into a flat data.frame} \usage{ melt_RLum(object, ...) \S4method{melt_RLum}{list}(object, ...) } \arguments{ \item{object}{\linkS4class{RLum} (\strong{required}): S4 object of class \code{RLum}} \item{...}{further arguments passed to the specific class method} } \value{ A flat \link{data.frame}. } \description{ Melt RLum-class objects into a flat data.frame } \section{Functions}{ \itemize{ \item \code{melt_RLum(list)}: Returns a list a single \link{data.frame} }} \section{Function version}{ 0.1.0 } \examples{ data(ExampleData.XSYG, envir = environment()) melt_RLum(OSL.SARMeasurement[[2]][[1]]) } \seealso{ \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Analysis} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. melt_RLum(): Melt RLum-class objects into a flat data.frame. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{utilities} Luminescence/man/fit_DoseResponseCurve.Rd0000644000176200001440000003156614762561642020236 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/fit_DoseResponseCurve.R \name{fit_DoseResponseCurve} \alias{fit_DoseResponseCurve} \title{Fit a dose-response curve for luminescence data (Lx/Tx against dose)} \usage{ fit_DoseResponseCurve( object, mode = "interpolation", fit.method = "EXP", fit.force_through_origin = FALSE, fit.weights = TRUE, fit.includingRepeatedRegPoints = TRUE, fit.NumberRegPoints = NULL, fit.NumberRegPointsReal = NULL, fit.bounds = TRUE, n.MC = 100, txtProgressBar = TRUE, verbose = TRUE, ... ) } \arguments{ \item{object}{\link{data.frame} or a \link{list} of such objects (\strong{required}): data frame with columns for \code{Dose}, \code{LxTx}, \code{LxTx.Error} and \code{TnTx}. The column for the test dose response is optional, but requires \code{'TnTx'} as column name if used. For exponential fits at least three dose points (including the natural) should be provided. If \code{object} is a list, the function is called on each of its elements.} \item{mode}{\link{character} (\emph{with default}): selects calculation mode of the function. \itemize{ \item \code{"interpolation"} (default) calculates the De by interpolation, \item \code{"extrapolation"} calculates the equivalent dose by extrapolation (useful for MAAD measurements) and \item \code{"alternate"} calculates no equivalent dose and just fits the data points. } Please note that for option \code{"interpolation"} the first point is considered as natural dose} \item{fit.method}{\link{character} (\emph{with default}): function used for fitting. Possible options are: \itemize{ \item \code{LIN}, \item \code{QDR}, \item \code{EXP}, \item \verb{EXP OR LIN}, \item \code{EXP+LIN}, \item \code{EXP+EXP}, \item \code{GOK}, \item \code{LambertW} } See details.} \item{fit.force_through_origin}{\link{logical} (\emph{with default}) allow to force the fitted function through the origin. For \code{method = "EXP+EXP"} the function will be fixed through the origin in either case, so this option will have no effect.} \item{fit.weights}{\link{logical} (\emph{with default}): option whether the fitting is done with or without weights. See details.} \item{fit.includingRepeatedRegPoints}{\link{logical} (\emph{with default}): includes repeated points for fitting (\code{TRUE}/\code{FALSE}).} \item{fit.NumberRegPoints}{\link{integer} (\emph{optional}): set number of regeneration points manually. By default the number of all (!) regeneration points is used automatically.} \item{fit.NumberRegPointsReal}{\link{integer} (\emph{optional}): if the number of regeneration points is provided manually, the value of the real, regeneration points = all points (repeated points) including reg 0, has to be inserted.} \item{fit.bounds}{\link{logical} (\emph{with default}): set lower fit bounds for all fitting parameters to 0. Limited for the use with the fit methods \code{EXP}, \code{EXP+LIN}, \verb{EXP OR LIN}, \code{GOK}, \code{LambertW} Argument to be inserted for experimental application only!} \item{n.MC}{\link{integer} (\emph{with default}): number of Monte Carlo simulations for error estimation, see details.} \item{txtProgressBar}{\link{logical} (\emph{with default}): enable/disable the progress bar. If \code{verbose = FALSE} also no \code{txtProgressBar} is shown.} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{...}{Further arguments to be passed (currently ignored).} } \value{ An \code{RLum.Results} object is returned containing the slot \code{data} with the following elements: \strong{Overview elements} \tabular{lll}{ \strong{DATA.OBJECT} \tab \strong{TYPE} \tab \strong{DESCRIPTION} \cr \code{..$De} : \tab \code{data.frame} \tab Table with De values \cr \code{..$De.MC} : \tab \code{numeric} \tab Table with De values from MC runs \cr \code{..$Fit} : \tab \link{nls} or \link{lm} \tab object from the fitting for \code{EXP}, \code{EXP+LIN} and \code{EXP+EXP}. In case of a resulting linear fit when using \code{LIN}, \code{QDR} or \verb{EXP OR LIN} \cr \code{..Fit.Args} : \tab \code{list} \tab Arguments to the function \cr \code{..$Formula} : \tab \link{expression} \tab Fitting formula as R expression \cr \code{..$call} : \tab \code{call} \tab The original function call\cr } If \code{object} is a list, then the function returns a list of \code{RLum.Results} objects as defined above. \strong{Details - \code{DATA.OBJECT$De}} This object is a \link{data.frame} with the following columns \tabular{lll}{ \code{De} \tab \link{numeric} \tab equivalent dose \cr \code{De.Error} \tab \link{numeric} \tab standard error the equivalent dose \cr \code{D01} \tab \link{numeric} \tab D-naught value, curvature parameter of the exponential \cr \code{D01.ERROR} \tab \link{numeric} \tab standard error of the D-naught value\cr \code{D02} \tab \link{numeric} \tab 2nd D-naught value, only for \code{EXP+EXP}\cr \code{D02.ERROR} \tab \link{numeric} \tab standard error for 2nd D-naught; only for \code{EXP+EXP}\cr \code{Dc} \tab \link{numeric} \tab value indicating saturation level; only for \code{LambertW} \cr \code{n_N} \tab \link{numeric} \tab saturation level of dose-response curve derived via integration from the used function; it compares the full integral of the curves (\code{N}) to the integral until \code{De} (\code{n}) (e.g., Guralnik et al., 2015)\cr \code{De.MC} \tab \link{numeric} \tab equivalent dose derived by Monte-Carlo simulation; ideally identical to \code{De}\cr \code{De.plot} \tab \link{numeric} \tab equivalent dose use for plotting \cr \code{Fig} \tab \link{character} \tab applied fit function \cr \code{HPDI68_L} \tab \link{numeric} \tab highest probability density of approximated equivalent dose probability curve representing the lower boundary of 68\% probability \cr \code{HPDI68_U} \tab \link{numeric} \tab same as \code{HPDI68_L} for the upper bound \cr \code{HPDI95_L} \tab \link{numeric} \tab same as \code{HPDI68_L} but for 95\% probability \cr \code{HPDI95_U} \tab \link{numeric} \tab same as \code{HPDI95_L} but for the upper bound \cr } } \description{ A dose-response curve is produced for luminescence measurements using a regenerative or additive protocol. The function supports interpolation and extrapolation to calculate the equivalent dose. } \details{ \strong{Fitting methods} For all options (except for the \code{LIN}, \code{QDR} and the \verb{EXP OR LIN}), the \link[minpack.lm:nlsLM]{minpack.lm::nlsLM} function with the \code{LM} (Levenberg-Marquardt algorithm) algorithm is used. Note: For historical reasons for the Monte Carlo simulations partly the function \link{nls} using the \code{port} algorithm. The solution is found by transforming the function or using \link[stats:uniroot]{stats::uniroot}. \code{LIN}: fits a linear function to the data using \link{lm}: \deqn{y = mx + n} \code{QDR}: fits a linear function with a quadratic term to the data using \link{lm}: \deqn{y = a + bx + cx^2} \code{EXP}: tries to fit a function of the form \deqn{y = a(1 - exp(-\frac{(x+c)}{b}))} Parameters b and c are approximated by a linear fit using \link{lm}. Note: b = D0 \verb{EXP OR LIN}: works for some cases where an \code{EXP} fit fails. If the \code{EXP} fit fails, a \code{LIN} fit is done instead. \code{EXP+LIN}: tries to fit an exponential plus linear function of the form: \deqn{y = a(1-exp(-\frac{x+c}{b}) + (gx))} The \eqn{D_e} is calculated by iteration. \strong{Note:} In the context of luminescence dating, this function has no physical meaning. Therefore, no D0 value is returned. \code{EXP+EXP}: tries to fit a double exponential function of the form \deqn{y = (a_1 (1-exp(-\frac{x}{b_1}))) + (a_2 (1 - exp(-\frac{x}{b_2})))} This fitting procedure is not robust against wrong start parameters and should be further improved. \code{GOK}: tries to fit the general-order kinetics function after Guralnik et al. (2015) of the form of \deqn{y = a (d - (1 + (\frac{1}{b}) x c)^{(-1/c)})} where \strong{c > 0} is a kinetic order modifier (not to be confused with \strong{c} in \code{EXP} or \code{EXP+LIN}!). \code{LambertW}: tries to fit a dose-response curve based on the Lambert W function according to Pagonis et al. (2020). The function has the form \deqn{y ~ (1 + (W((R - 1) * exp(R - 1 - ((x + D_{int}) / D_{c}))) / (1 - R))) * N} with \eqn{W} the Lambert W function, calculated using the package \link[lamW:lamW]{lamW::lambertW0}, \eqn{R} the dimensionless retrapping ratio, \eqn{N} the total concentration of trappings states in cm^-3 and \eqn{D_{c} = N/R} a constant. \eqn{D_{int}} is the offset on the x-axis. Please note that finding the root in \code{mode = "extrapolation"} is a non-easy task due to the shape of the function and the results might be unexpected. \strong{Fit weighting} If the option \code{fit.weights = TRUE} is chosen, weights are calculated using provided signal errors (Lx/Tx error): \deqn{fit.weights = \frac{\frac{1}{error}}{\Sigma{\frac{1}{error}}}} \strong{Error estimation using Monte Carlo simulation} Error estimation is done using a parametric bootstrapping approach. A set of \code{Lx/Tx} values is constructed by randomly drawing curve data sampled from normal distributions. The normal distribution is defined by the input values (\code{mean = value}, \code{sd = value.error}). Then, a dose-response curve fit is attempted for each dataset resulting in a new distribution of single \code{De} values. The standard deviation of this distribution becomes then the error of the \code{De}. With increasing iterations, the error value becomes more stable. However, naturally the error will not decrease with more MC runs. Alternatively, the function returns highest probability density interval estimates as output, users may find more useful under certain circumstances. \strong{Note:} It may take some calculation time with increasing MC runs, especially for the composed functions (\code{EXP+LIN} and \code{EXP+EXP}).\cr Each error estimation is done with the function of the chosen fitting method. } \section{Function version}{ 1.2.1 } \examples{ ##(1) fit growth curve for a dummy data.set and show De value data(ExampleData.LxTxData, envir = environment()) temp <- fit_DoseResponseCurve(LxTxData) get_RLum(temp) ##(1b) to access the fitting value try get_RLum(temp, data.object = "Fit") ##(2) fit using the 'extrapolation' mode LxTxData[1,2:3] <- c(0.5, 0.001) print(fit_DoseResponseCurve(LxTxData, mode = "extrapolation")) ##(3) fit using the 'alternate' mode LxTxData[1,2:3] <- c(0.5, 0.001) print(fit_DoseResponseCurve(LxTxData, mode = "alternate")) ##(4) import and fit test data set by Berger & Huntley 1989 QNL84_2_unbleached <- read.table(system.file("extdata/QNL84_2_unbleached.txt", package = "Luminescence")) results <- fit_DoseResponseCurve( QNL84_2_unbleached, mode = "extrapolation", verbose = FALSE) #calculate confidence interval for the parameters #as alternative error estimation confint(results$Fit, level = 0.68) \dontrun{ QNL84_2_bleached <- read.table(system.file("extdata/QNL84_2_bleached.txt", package = "Luminescence")) STRB87_1_unbleached <- read.table(system.file("extdata/STRB87_1_unbleached.txt", package = "Luminescence")) STRB87_1_bleached <- read.table(system.file("extdata/STRB87_1_bleached.txt", package = "Luminescence")) print( fit_DoseResponseCurve( QNL84_2_bleached, mode = "alternate", verbose = FALSE)$Fit) print( fit_DoseResponseCurve( STRB87_1_unbleached, mode = "alternate", verbose = FALSE)$Fit) print( fit_DoseResponseCurve( STRB87_1_bleached, mode = "alternate", verbose = FALSE)$Fit) } } \section{How to cite}{ Kreutzer, S., Dietze, M., Colombo, M., 2025. fit_DoseResponseCurve(): Fit a dose-response curve for luminescence data (Lx/Tx against dose). Function version 1.2.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Berger, G.W., Huntley, D.J., 1989. Test data for exponential fits. Ancient TL 7, 43-46. Guralnik, B., Li, B., Jain, M., Chen, R., Paris, R.B., Murray, A.S., Li, S.-H., Pagonis, P., Herman, F., 2015. Radiation-induced growth and isothermal decay of infrared-stimulated luminescence from feldspar. Radiation Measurements 81, 224-231. Pagonis, V., Kitis, G., Chen, R., 2020. A new analytical equation for the dose response of dosimetric materials, based on the Lambert W function. Journal of Luminescence 225, 117333. \doi{10.1016/j.jlumin.2020.117333} } \seealso{ \link{plot_GrowthCurve}, \link{nls}, \linkS4class{RLum.Results}, \link{get_RLum}, \link[minpack.lm:nlsLM]{minpack.lm::nlsLM}, \link{lm}, \link{uniroot}, \link[lamW:lamW]{lamW::lambertW0} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr Michael Dietze, GFZ Potsdam (Germany) \cr Marco Colombo, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} Luminescence/man/plot_ROI.Rd0000644000176200001440000000675114762561642015443 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_ROI.R \name{plot_ROI} \alias{plot_ROI} \title{Create Regions of Interest (ROI) Graphic} \usage{ plot_ROI( object, exclude_ROI = c(1), dist_thre = -Inf, dim.CCD = NULL, bg_image = NULL, plot = TRUE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Analysis}, \linkS4class{RLum.Results} or a \link{list} of such objects (\strong{required}): data input. Please note that to avoid function errors, only input created by the functions \link{read_RF2R} or \link{extract_ROI} is accepted} \item{exclude_ROI}{\link{numeric} (\emph{with default}): option to remove particular ROIs from the analysis. Those ROIs are plotted but not coloured and not taken into account in distance analysis. \code{NULL} excludes nothing.} \item{dist_thre}{\link{numeric} (\emph{optional}): euclidean distance threshold in pixel distance. All ROI for which the euclidean distance is smaller are marked. This helps to identify ROIs that might be affected by signal cross-talk. Note: the distance is calculated from the centre of an ROI, e.g., the threshold should include consider the ROIs or grain radius.} \item{dim.CCD}{\link{numeric} (\emph{optional}): metric x and y for the recorded (chip) surface in µm. For instance \code{c(8192,8192)}, if set additional x and y-axes are shown} \item{bg_image}{\linkS4class{RLum.Data.Image} (\emph{optional}): background image object (please note that dimensions are not checked).} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{further parameters to manipulate the plot. On top of all arguments of \link[graphics:plot.default]{graphics::plot.default} the following arguments are supported: \code{lwd.ROI}, \code{lty.ROI}, \code{col.ROI}, \code{col.pixel}, \code{text.labels}, \code{text.offset}, \code{grid} (\code{TRUE/FALSE}), \code{legend} (\code{TRUE/FALSE}), \code{legend.text}, \code{legend.pos}} } \value{ An ROI plot and an \linkS4class{RLum.Results} object with a matrix containing the extracted ROI data and a object produced by \link[stats:dist]{stats::dist} containing the euclidean distance between the ROIs. } \description{ Create ROI graphic with data extracted from the data imported via \link{read_RF2R}. This function is used internally by \link{analyse_IRSAR.RF} but might be of use to work with reduced data from spatially resolved measurements. The plot dimensions mimic the original image dimensions } \section{Function version}{ 0.2.0 } \examples{ ## simple example file <- system.file("extdata", "RF_file.rf", package = "Luminescence") temp <- read_RF2R(file) plot_ROI(temp) ## in combination with extract_ROI() m <- matrix(runif(100,0,255), ncol = 10, nrow = 10) roi <- matrix(c(2.,4,2,5,6,7,3,1,1), ncol = 3) t <- extract_ROI(object = m, roi = roi) plot_ROI(t, bg_image = m) } \seealso{ \link{read_RF2R}, \link{analyse_IRSAR.RF} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. plot_ROI(): Create Regions of Interest (ROI) Graphic. Function version 0.2.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{datagen} \keyword{plot} Luminescence/man/BaseDataSet.GrainSizeAttenuation.Rd0000644000176200001440000000166214762557027022200 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{BaseDataSet.GrainSizeAttenuation} \alias{BaseDataSet.GrainSizeAttenuation} \title{Base dataset for grain size attenuation data by Guérin et al. (2012)} \source{ Guérin, G., Mercier, N., Nathan, R., Adamiec, G., Lefrais, Y., 2012. On the use of the infinite matrix assumption and associated concepts: A critical review. Radiation Measurements, 47, 778-785. } \description{ Grain size correction data for beta-dose rates published by Guérin et al. (2012). #' @format A \code{\link{data.frame}} seven columns and sixteen rows. Column headers are \code{GrainSize}, \code{Q_K}, \code{FS_K}, \code{Q_Th}, \code{FS_Th}, \code{Q_U}, \code{FS_U}. Grain sizes are quoted in µm (e.g., 20, 40, 60 etc.) } \section{Version}{ 0.1.0 } \examples{ ## load data data("BaseDataSet.GrainSizeAttenuation", envir = environment()) } \keyword{datasets} Luminescence/man/trim_RLum.Data.Rd0000644000176200001440000000702514762561642016531 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/trim_RLum.Data.R \name{trim_RLum.Data} \alias{trim_RLum.Data} \title{Trim Channels of RLum.Data-class Objects} \usage{ trim_RLum.Data(object, recordType = NULL, trim_range = NULL) } \arguments{ \item{object}{\linkS4class{RLum.Data} \linkS4class{RLum.Analysis} (\strong{required}): input object, can be a \link{list} of objects. Please note that in the latter case the function works only isolated on each element of the \link{list}.} \item{recordType}{\link{character} (\emph{optional}): type of the record where the trim should be applied. If not set, the types are determined automatically and applied for each record type classes. Can be provided as \link{list}.} \item{trim_range}{\link{numeric} (\emph{optional}): sets the range of indices to keep. If only one value is given, this is taken to be the minimum; if two values are given, then the range is defined between the two values (inclusive). Any value beyond the second is silently ignored. If nothing is set (default), then all curves are trimmed to the same maximum length.} } \value{ A trimmed object or \link{list} of such objects similar to the input objects } \description{ Trim off the number of channels of \linkS4class{RLum.Data} objects of similar record type on the time domain. This function is useful in cases where objects have different lengths (short/longer measurement time) but should be analysed jointly by other functions. } \details{ The function has two modes of operation: \enumerate{ \item Single \linkS4class{RLum.Data} objects or a \link{list} of such objects: the function is applied separately over each object. \item Multiple curves via \linkS4class{RLum.Analysis} or a \link{list} of such objects: in this mode, the function first determines the minimum number of channels for each category of records and then jointly processes them. For instance, if the object contains one TL curve with 100 channels and two OSL curves with 100 and 99 channels, respectively, then the minimum would be set to 100 channels for the TL curve and to 99 for the OSL curves. If no further parameters are applied, the function will shorten all OSL curves to 99 channels, but leave the TL curve untouched. } } \section{Function version}{ 0.2 } \examples{ ## trim all TL curves in the object to channels 10 to 20 data(ExampleData.BINfileData, envir = environment()) temp <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos = 1) c <- trim_RLum.Data( object = temp, recordType = "TL", trim_range = c(10,20)) plot_RLum.Analysis( object = c, combine = TRUE, subset = list(recordType = "TL")) ## simulate a situation where one OSL curve ## in the dataset has only 999 channels instead of 1000 ## all curves should be limited to 999 temp@records[[2]]@data <- temp@records[[2]]@data[-nrow(temp[[2]]@data),] c <- trim_RLum.Data(object = temp) nrow(c@records[[4]]@data) } \seealso{ \linkS4class{RLum.Data}, \linkS4class{RLum.Analysis} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. trim_RLum.Data(): Trim Channels of RLum.Data-class Objects. Function version 0.2. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{manip} Luminescence/man/RLum-class.Rd0000644000176200001440000000504314762561642015727 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/RLum-class.R \docType{class} \name{RLum-class} \alias{RLum-class} \alias{replicate_RLum,RLum-method} \title{Class \code{"RLum"}} \usage{ \S4method{replicate_RLum}{RLum}(object, times = NULL) } \arguments{ \item{object}{\linkS4class{RLum} (\strong{required}): an object of class \linkS4class{RLum}} \item{times}{\link{integer} (\emph{optional}): number for times each element is repeated element} } \description{ Abstract class for data in the package Luminescence Subclasses are: } \details{ \strong{RLum-class}\cr |\cr |----\linkS4class{RLum.Data}\cr |----|-- \linkS4class{RLum.Data.Curve}\cr |----|-- \linkS4class{RLum.Data.Spectrum}\cr |----|-- \linkS4class{RLum.Data.Image}\cr |----\linkS4class{RLum.Analysis}\cr |----\linkS4class{RLum.Results} } \section{Methods (by generic)}{ \itemize{ \item \code{replicate_RLum(RLum)}: Replication method RLum-objects }} \section{Slots}{ \describe{ \item{\code{originator}}{Object of class \link{character} containing the name of the producing function for the object. Set automatically by using the function \link{set_RLum}.} \item{\code{info}}{Object of class \link{list} for additional information on the object itself} \item{\code{.uid}}{Object of class \link{character} for a unique object identifier. This id is usually calculated using the internal function \code{create_UID()} if the function \link{set_RLum} is called.} \item{\code{.pid}}{Object of class \link{character} for a parent id. This allows nesting RLum-objects at will. The parent id can be the uid of another object.} }} \note{ \code{RLum} is a virtual class. } \section{Objects from the Class}{ A virtual Class: No objects can be created from it. } \section{Class version}{ 0.4.0 } \examples{ showClass("RLum") } \seealso{ \linkS4class{RLum.Data}, \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Data.Spectrum}, \linkS4class{RLum.Data.Image}, \linkS4class{RLum.Analysis}, \linkS4class{RLum.Results}, \link{methods_RLum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. RLum-class(): Class 'RLum'. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{classes} Luminescence/man/figures/0000755000176200001440000000000014762554470015121 5ustar liggesusersLuminescence/man/figures/Luminescence_logo.png0000644000176200001440000004523314762554470021270 0ustar liggesusersPNG  IHDR,WswRiTXtXML:com.adobe.xmp RL_Logo_NEW ctiCCPsRGB IEC61966-2.1(u+Q?fBrML-n-5Sj?wK˭rč_*J)rᚸAՖ9=99k8dAdZhZ,l8 KT`pqŌ7VsZJ\W,lCYg4MmlvjVᢵj;y(9*}3zk$ڢ01gxڶէ[9$mˢU۸TV_;:&t$K]n^۸ݼjxFV;QtMsp/)X^lDUmlDp0]w#(穴:{6e_jr?;"}37C 1[P=v07fNvo{1>^s/i DyTNRv_QjƵdΌt{nɪ;Xơg;JS*ITwR6Yd3'dĭ}\DZsMRlFOP6_xH|\.X~ WmTӼ!ĵ:Ie ڨo$à]uMWRRΒ7T95]aizד:ej؈`?;0؀iUff/LbωZ+Pٽ4!%&-+&`̜̀:ƍ#NMl߾|:kjB9ciN Ff55,y{|+fOOǎuMOuүUThNWmΩ5RTR >[Om>?86M6TRT0[Ɔr[o⭄p0ƩSY|`-h:Ee:S?Rl6hhޫNG5>ǎ|F 5BYT|&f5)Tm|M=-=!b[Ya7eU|6lc_Z-De 6c7j.ɢul9xBKGݖofO -֎(NRC0y(""T/p~3|(YE]=lMӮH ef5 xd:㉋Sc.lܸ_nbyC_W뜚OjlT/jͬ0 QVZg6z~*V95Ҡ b2O5DmldH0'!N#-+/Lbױt-(j^rmYkU`X0n`fLKts |8 Z³Qv|T2[a(sTOzeΌo{nᩮv]|z6( 蜚jr;$vj[FE}1{2R|݇qj>tmgtN}2[}QǪ 1K;pӧ` 5"V Vofo bmBY[{wih,Z܄;v7pRK~,6+Xf5y@YXZ5ctV܄ʊ*Vڷ|.ʪ4m2W<ʯ b &a̼kGy*5dQ5-r:l}3 (Xf ʄ=jc {G.4K?I~ _MHolFT>k;fMO$6VF B|E2ťZ.qǮsjɂufg7mSѯ C𸲲J.OfՖovZ*qvT b6QHSnm(( w|>&)-U(ߣvE]s#)Xf5弿L$Ɍ)chrBxi|8yNʴvᚑ`-pcnК93'R܄j'kx6 ʵ\b2M:+-Xil6Ut#4!2`pF8H" ݦi; wʂeXl2JmlXP=N#.Xˁ4M96MjW,x 1N.ۅ%\S!w*<,6(Xf5֪ۂ93%^܄uUUN\evQRi{-([uNM5,jtSwdȾ2O% 1lwTi.ݦX=x`-n߀;ƆbяIXط ܫoc}13¿<k9xn:f^kc9WY3kz"Z\*`.+.G7~[0E2yŚ:{FoVk 2Bm|B&̞H>j}nv)-)>lٲKXWlThkYҟsj52`-֑(m´;1!q u<*i~pZɹȼIlOI^ xaٵZkzjcM&ŴG߰f߮]L.nՊM6$kCpZs5՝K7p%-(SDi՚ v_R5%sfS8M?{ o]ٵ+_Wi[UNV5m>Q|vh V].S݅J6`đMYek?꟞ck⪂b/^φGvmNUUkUrLx+ϋMy)uEflڴ09Ge1wd^2Vב*Xf5e'G@Yw`֌DZP}in?i_<` K P\m!>Y"MgQOr;͏Pj6vc=mRpQiԄϋ,V:fάVGv#d8 _4 ?Dc4ڄ~dq0lh/|YuÁ}+Es!y@4{UVTQpbJ()*wE) Ho(,4FX""B st}®;A_ 3;3qH KIM;G Q\RƉSYP@yU*'j hդ1-: -+umeqqx7ط}|TُV& r<ɩ3٤%M ;ӤI#|}8cmqV;Ya/\K˹{`nM/3\XLM~vȿPLROeq*EQa HgJ8̶GH9uSLB:C L`֝#5/k7aۯ\fDrWJJٱ#-I;S-r]Cl.SP甗WkQLa ʝn_fhʹ۽ ?[ty|w9s;X:eURuKߞit̙l.6~' ,r g/x:!|CXb&$3YYx/+ ;6 !0`u >qOWocڝ4m$7&gs̚2*%%˒It*B,C ?=r&7*v>L&/SSϱ|$!wpQT8=6/ڽLf̸o4ݺvXFF%HIt*B 0!q v[@``͚5֣ǣrs Xd#"O!t};h?w:;~Ma=JBghrV;cH$@xDGn-_Ytn=7X` N,^佞NEfh8ѳ=yHZ VeU&$$,1t"2B[8yQh׻#e=cHnZ>3|$J:: @81@ʪɿ}Ϲ\bqBdhjX9⥺+5mK{+}^{R !td#a|8OZrwbT86iiYZEF>9[ѱCk:u#&oMy:=!TJA2g:\Ν@`ֱh߂yEΩ,bJOR/-ѾusڷmEJqn鴄ЍZs۷#}vT u}m6Z6en:-Z4t:B{ QYi9{weyV| ߕ[f!⑂UQQEJJգrC }Srؽnјu֡h׮# /X_[XcG0`}f'[0~u 0ڳ#w6Nxżdh**,孏^:L>Z4%!!B+C cgb-%v[xkO#:ʘ\eeWw?1i]{4!+3K9)&,85>_KkҺ%I><Ђ@mXego"b}'M{Q]<ӑ'PIcܶCЂus2SQǣ.[JˍndhL:?WQQEV7UU:#[}vm!}B,&/CT].taN'Ajk78B`SCtw˵ cَK c`R~Wߐ8L|Pq{ Vئ^)Ђƣ,Rʫziv;?nŌitR{ Vn[ݧzt*]Z|LD-y驇 ļE9ɹy o;HkN Ügra~^e\d&aa]; ]/Mk\8wg껥rD{>BDS\:OݻW_{sT{FXGOu4(T uXXAAA]cθB+>g)*}'1Ƿ5wJXeBch) ^{k1'Of^{ ;<;Qaa4mk=oS#0xV6͹ܛUpl6OSbÈENa5;>4q='`2tÄSyuK%3 _[uX3'2[ IDAT_ZFjN_-VXa(kiNfMt_m?@ffۮ/DCfJ ~)>Κ {ʹBL"US mۚ{ н}kUN's?~;SvBgkٳ={suҖ5ߤe-7VCAC5_gBpÇz! [IM=wҲxxٵrhΠv}P֏_ق$PЂU]d~K|v~[wmcoq۵TZKo.$+=eB44ӧ)""8Yd/Sߴ1AA8].>ou[Kn $4sϾ[u@FZBЂuD][^==##GO0W'y㩇8{lNL&7[}م<'n1 Z2.ܾm?[6.@llSZ7QV|FGDpۮ]%}*}#h( -X"ȹ\>bH4kmNHmDDr؁n~MV;?ϫ3!D n~VEs$O$ꛋ?8sʘ+..LE:wi4XmeW_gh2M"(fy^2.`я-m9|8Epp 4ڭIaYyo o}H!+((t/aʮaAA ّIG\CGNЮU3C2;rr\|aXj.t_~Ajj& m[xZ2;M42$' fϓ}-*2iΈ[H5HkNPP]z{BBKzlG\1#+6~aɹB55O}v<*[. =k~x'r\E ۙ^< }}Gp,5='N{4yycJ{Gѧ{ۈj'+ʲu;)W gK7 ݙGfaXn&Gs.,6쾵9~.YB1 ߅zyڐGK7ק#%el,E؏&W8;x sYr #<ظnq-6;Y8p:w',( f撐jҹsg[lj*%%nư= {A!'ZRSrsO>DPPKos&4 Ky4A\*,u;=rq\={gї6б}k:u&+)ηLPPݏ\WZݦNMyE+7{]NL:nNtjߚ[Ӵi,>Ђy0;ϕUuХ 5ypF"qУy_\B׼ mtoNm -X]|Z~?* _CIXP-[ϪL{z4_ZF~jS3<ZzlOF>``LƝ5غ)Y>;V|LCpز`>""Gg[dS8RRX(]jjoJQ1{h !eb=үgгml7KO&8c keҝE[!HE)|3g!3+ڴClbcӳGv—xlc2) F/ KpH?=t[oZݼG;Alccw-!N}:?;u""jކ[o˫ﯼzBüp-Ļor rUTz:%!E`M1.7_ @X—ڹGtN`H.t@#j8ڽPCp]wY<)T{`e!++B/' Y)&?c!b!{vS!pۥ+22r#J]Z:wl@l?l%+ gIC Vhͱ39z􌑷:4>ģSyy% ۉn≉"4.]p?oxyБoNZ {ygv9HItBC.ydyKY<* auwT^LFWBmۖm뛻3ajM\8Uwk d]L: /p2qyU "KgF&5#߯u2RSq9N&EK+(+ iƭhj&7 ;we}ke†0{pySU;Oh(VEcёi PbNo] HrquD0|x/[zp?/m_0] a l22YPVVѣ9Oii%>a0aa{Ҳ0kC|d=usŨ}`JZrr xwהUUy[ѕ2`{j6[tsמFt.ѕ2 ggd}tվE3] %il׷sO+Vlv;J0`u@OFWBx-}:s\6WnFFWBxeA<\>j+ Vo#i:ķ 8ӟ1uTFWBxI{|Ht8Z??eh*X2s -Xy55Nl]2³ -Xǎgt*ޝrKWt'(AHһ!] YYDFL$0wzet%Z1Z4G8*V +!UG2KgJ`h!{Gt^>WrP:Faׂ6;}G m&DE$E5dt%0`9v%$=Shdt%0`=@oDFWBxC ֨Q}5)2»>UǖjHCFWJ ԩ,U1u"Nf {o -፼ψ i䦌j&+!W?F`l2{:٣֩墸 s8sndzQ^֭Ѻu:?3ΚXdӧ1&9dt%GB f j78OFWBx7+X4LFWBx?,XҲ/.B1GJU`_}g27Z֯{K{u('icZhdt%o0`9].D NRѕЂռYctJ3QaķnF[ ٸOFWBC V~ׯ-^(2·x[+RS3yhXT]uѕʂUYQM%e)wJ=5GBFWJ=y>[,+Q\VEVv ?WNfSnr")/z: ^4i4<=Jՠ mn}$LN>/UUTg$+!|[ VYEE1a*+!|[ VTd8 ͚5:BFWB>C{2thOwޢ^23{[!+!ܯALvN\iژ`7&+!O7\.+NuqC܌sHy* p bt=PFWBs\~VfQHXVUżUIںS2`@75'SMNND9{ޛ FFWBOiI9-Km^Wmss/ӿckvzi]eUUf_ ,0έ׫pJ¢BI7_~yxߟ[ IˮwonLTRY/]S/t zJN%<8Nu.] _tL?<4}:i'N~ʊ*>[_/[rՀa]7۾T{1{)99j E%"8.[\Wdt%|]{xw覯r֭s8ieU@0 X8Xa]pm}}T,XJ^r KW ?d9z s97?SX6x ۖ9ZLz-Vp77ڌEF0sHFG/o_f qcEbe켫Yz޵cG3 5^TPX?v[f}>\ub ~R]̙9Ԇ֪%Pdba˴i۶ƏTW9ҵ+4==9vCUjj f5x* ݿ3IF]R_hh(OZ'hd9WUݦy_.o^6b Ue%NL&F̋BBxFVo?HK˥v[MGlFO\_0{x[K9xMS^Vƾ_߾UTWU{3O3*1Pfm\*rn[%&+k;4&fDFyBҳw?/0(OIIEIe_r {Jk5qKlB66*,cB-7;xj @NN%jmyݦ݈[ b ^OhքSݧ P|` ׏_~=zP^^ɲ[b^*UPXwXkubm< o'tkϬl1eW V|K֓UP%,FS+ fu2jcÃw@ %8ĭ- 322rpA2qmq*Xpg*Psxb70dpw Vqq ld펃Tk/pmx]lF.3ƓR܄Vj'kaW۸T7(TuNM^[0[m3Lԓ(Ju§:t%%<xnӴr^_0[#PnQ(4) 6gp#iZ«vE}3ӟ,3xP׶YfOGuMU|yiwm):6>U0[([4?^>k;fMOlrAr~̅Gcovuy;,XW-֮(ޭ66$ ۇe}# ?9!ĉ]r_^rmff .XW-;P|g#=,^+?O#y1-4.}Yݦq[E0[ρj;6gtzg!ܦ/Y~7i6,Sأsj7 enpPlMFCi3!trGt 4p=4zub66,(c2a# wt6.Xz-}(_wm6f~[j(ƷI1)[ KYtkvƩ{xa95 +@ 3c<ڵ=7!|f}rM/S%뜚i 3X83%*ZuFg8iy6zs;TlCi6QHfK,++y ײXJߗv[yYk0 e6M<ǎ|F 5ِ-jѓz0[}Pǩ ѷp="m>~+=L̫޲ET$LŰad~ˏ2:vh=EM9\ ,kkY Rm|V̞1T/^wUhjم2OU,k 󪘀3s8KI>lg/hZd~躏vSdXjc#C4̝!0H|ݹsy| ='4mP++풾5Rtp}Ʒn)c0WZRg˒j~Eˁ96M ķ`l6BPxfϜ@\x o˂/PPZ_;5:`Irx66^L4a''3|p-iyZwvfRlCYGmltXF66˽ļEIl=tRKrm*,7cE@^M=-=U,Tb-ܸrm(Cy;sj;`l6E6~hώ<4--T`&rmt&rӤlM\iO kO jcCk&M`k`Ne1wR2k /^4 `y67`đhpױ~4O96Mp `yb ~P}rk̙9U/jW`Za9tNMԓ,/`XcQ/~ҹSo&`tn̜:&M#=wq>Z|MOH;gI"fui(Fs_` %H|k{r9^um΋e.o^6b U|III9ndT4 wm:&n,/eX#'.O0{x[螛7s inƥ2M/lNԄ`y9e5Mml!>y4 '%%%}AK=ޓv%G-([F2aLH/|rr (5=Uait8R|b ~FfM=5}:螛'Wlش m4kP'=sjM` e7_Oҭ=f$Ҳ̼`dK\$J;Ji-R|b펲jckD&MAXf2wZffk /BiBa뛙0,?`XD)\24 g#9W\Xٸvv[ CIf5xeG'vi݂93ӹssUUNogYNJofIIDAT*5lCYSԄH3f%#4ە#&m>vc ,2O?`):eH;v w[Ӫ32rpA4-Z=_v .Lڪm܈Ð *..cҍ|8H픾 o!0[('W߻]g'!8]_mRwߠSm95e`5 f5jcL&chСS|(|-3v·Hj[6 amCm o';;y 8% x xa]Ԝ9Rm>sWzm5aqQU\YY%̗Q+v#Zo-(<^>k;fMOllm>.$'g\(.Ւq7*YpI-֮(kޭ66$ ۇe}# 'Ne?%K [B%aX@i66&"w`~L_ħ֑v_Yݦ.`-`[;6Ov޺Rm4Q),,Q+q';~,y*Q)Xk?etRa;6M\A m>L̷ 'vi),b G٭i &.e*YD KhbX۠<=24͕v,qSpA7hϽ ܞKRM3[,@l n;fhbH1[Q`7Oݶڣ !K3`!ߒ%R>#urIENDB`Luminescence/man/figures/README-Screenshot_AddIn.png0000644000176200001440000003037314762554470021744 0ustar liggesusersPNG  IHDRbN2V iCCPICC ProfileHTSY{/zW5t`#$B !QQEDQp,`aq **%=s}}7a@ |=1q @: sb曦SZ yN rGNG: eE!Z ʧ;=S0ÿOD# %@yFPtQ6sx|#Pva'8( ==cQ6L'4,W3L'rߑ&}6:(B0tG.5#@YqOs/r"ϸY氼fY>,ܳ<13baR}~ZpT?)Dw,'|=YY̭慒0iIBi颹جw#jITS:W4/ >+F,CtB"@2>D  1`/" @?z<ĉ&<39B7YpGoQ"g-`X[0u'g~wѯ2p(BܹKS}EV%¬ԱX@@  ) oBNbrFIG;Y :PVT`?G1N2zm!` 9:9dtixE :k;90\]~twreָ>uqt{n~Ǹjv/׫ȫ[;һקgwo/o]:ͬg@  xh( l = fǡ,-]\YEX^Xg8-|E%# #%QQKƣKcƬˋmEǒ6K Yf,{ӖY!x<6>:PV5LNe{w_r8eDIII\gvHkry+'&/eoxjHjmdZtZS:!=>_ʿ+0 33wd EhU.;@KVUǕQ+ggrs6>=3bɋ 53:Ffw*j[ {!xGu?u~|bF_۾|{4>9)` YVAZw@}5If3O4 'a @e:gept#DIV3Zyb?NNSWɯbО9է)5PWW_%G qiTXtXML:com.adobe.xmp 271 98 ]$NIDATx] |Lm"KE$A!4hQ>$hM)}xO=KKiZKKӧ<6(% KIH"̤{L&3I$i"|>3s9[sӤPQOG4"='p8y#yT 6^#΃@ΣZJwpwՂWpjyp6bg* m9pw'cf RqfB%^3Bdz8@G,:5XZm(`gct2GOL]<G"PM瑇] c좏0[5.Sg*},*5odR27!.oЉI+qPdrmߗH7.q@#`{AUB۶mWDcmOxjqyͩ%]0J${x?Zt ٿnZeA`܋+i @tU}QWp)w檴,87n܀um5Ǘq3Mwϝ/h1[MB RXԐKv2ij10Wf $ uJ<Į;{X >hP)X[s@S[e'ףKGܭImƬ*532a@{vP-a >= oMjG룿j-+`V9{?5K>;<6~1Gsr⭶jcxrueʻ|UOխKւ]v8r%KmG#P&MX+E+vD![ttrǧ1D"26vcvd+XN2s+!U@ Fbe!GUdXȽiLڰ2CZBe4R<#i*84ĜGAuW$<9 cyR%4.$Aܸ r8`>Ar Wp|cxG#аw%ĤBrߘ3̼Ĥˍn1G#@X{Zܸb+s8ۣŗRGh/·#hDTs=F7#0vh)|(`#nu6mGҵ{a%wj=y+JJtl66ArUI=ZVnUVoQPnq4hT{0`זE3ږ3XWXAK@f 9hM6!Ewis'b!N^L@֭\sqhp)oުha![d2[T"z2׿GqϞǟ4gxӸHS[HfhWe,0-MC(xOa)@1GjWȌ`$G7Ggy=mĬق2L#V$&`xhR|d O=bƫqt\u A3ހ7SU!GΝpG*cT9GIv~|^G׌D$h>ȨDj".B͢ Ԕ `]8 i|@EmSܿ1uNܲǐYԠ}+Lf5ʅ(XŃK;ۥDfw{ӗ{y, sxn;#b 1^y(#ŝ`o3\݅4AW[bkLG_nwCuy2!G OwV%`}ә=чΞK(U+_L|ꎜ]u Iƾ GmHBFM*I-_Gxm+l3rH DE%"j`v9 Fu,GQO|h:?UAd*M2ZRR %dSFC5p LeuR+bzï'X7\It;\#qFۨYfm~4h'Bwhz} .rځTc"ѣ/|}C'G0%N"͊ɒ˻_`[eZGcW#mVVVȹ#DZ1߸֞G8x% _ ; QF7B~mf+$hf*M?xwj-ӷC7r!Jaӊ(ڃY2 0 r`(-(E< e`/-^5OIX6i(bκ}Z|'c_2S _:{(Z| W:歌@&1s!bNcWVCߵ6[9.9".*KB4[1i{VEJ#^,w ;@+&+A]UYnjJ #B0dRұVy o#.?A[10Yq0 <~݃]r=ODضMJ8xEc"5[SZ8qVcִ{ ;k(I bve,[ֆf"2iSbtG)dN4߹?ŋ 6?+Pq<҉ 7&F0.{F3z#%m<⿂ѥb‰ ?&^CYL:Fkv!=hlƻ5^)8k$ [г29X4zM+<| R4چ]mL/ǐ~0z8tmږѸr\BmC{40~=L/Ƿ4DWBt{"0? IEfUQt9?Pyҽ# @?QWsAf>7g;ؽ \ˆACMV!!ruVc3޶^Zy4MAVne+ [\1(U8C 6?t菷׋|h/,rB簙OG%o܈߮$lDΊagl W)pO`jq.- NacЏAZ0 ?8 @U X>xt-au_W<=:tc;"C7k7UY G3udOXX.L5 [&aHg͎,ޟF O#}Tn# ]  U)ʴ.tI̝P꫇ Q"@ut~v&س‡ (W,05lI5&eqm(1m{zOc ׆ݤ?|+O"5B䜧"N5 )&W@iblwm*~aܑˣ!)u9W1t6#p@Xl0sbsvtƹbEk<;8,I웲0>#C1ѵmX'&W*<= 8}mݽӒ\7lqhJw d6kzum.TRй<džs9#0v^p &h N(9g|(zv kݵ92"+^L`HL!LwאBxB§g#‚ch(w$A=S[_h$Bj`N@J5]^q-ȡSt|s~) k>N݅COmlY$PWj,R YDFh8܂تmuY5KcΫziEYp[!_ɐ[+n8 떝ѣ4Ȩ.s!ӉݚE#h6-Uuk,`.fe8t rWp.޼)HLQ@'~J,\^ …,*lJ؎ ()O2<:Bc3#yxt5`eOmQyg2)PRzhD;=M]3\ه|FRd&c/L^ɹ(Q"+w)"q4.Oy\l,'_/]˷ Qr/]:#.ij)Ϗx 4|>{gUl?|&Bݰs`ܬq_2Rxy܏Y {dXC} ;q47~zwtNUϒSv |1tp0<֮oE:#ok^n1qi(^'D Je3gȒ#.;9?Ezjŏ߾.K1l3ml]P(4gߪ}+Eg6}д'^#>x1噾YyUhEymrc|DfN{PLTϼ  4)F'_IQx+$ٱlڛY"Jk5f'<)_-:`*>US׏~[}#dZZ9%Sz忓1N2u oI\Ny$A!X]uau ZLUg6O4KͰNe:+p-hkIWq#ݖ6AOJL[jT 1Hi;; ;[qIHO Bbݧս~'Bxdjg3yDDŽ#)= qc)FLBÈ\6_A(DB8yړ~--HHq3"yg=:~ gHAۥ=xI9h?uтCS},Q;8' aSijFpC;W"vQ| ZalLs^j ?vYH_ Z|5WE d*>{ %LMg;uԓ/iZ@9= |]8y)h@G  {\Tl7M-!)W2 $V48 s B$#K"ޣQ)rC%V=weڭ "oLjxGtE7 񛮦Be3i&B3C~, 5 ^DL3KfV gH"HCZj ,P^&Ljt LT]W3a5lHA9KYҔ%3(y)IRj\=,aqR:9\7k0 Kז@]!f[0k7=#cO** i'^`VpSIL<%\ļz^slRB6NluK~6prYja)꨸=@X*@nn NЖ 5O͢=Tyk\c*iTl .9JgTɞ&0B`\?#̲vr}8S0|hK}xX}}\preformatted{method_control = list( inits = list( list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 1), list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 2), list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 3) )) }\if{html}{\out{}} This sets a reproducible set for every chain separately.\cr Q: How can I modify the output plots? A: You can't, but you can use the function output to create own, modified plots. Q: Can I change the boundaries for the central_D? A: Yes, we made it possible, but we DO NOT recommend it, except you know what you are doing!\cr Example: \verb{method_control = list(lower_centralD = 10))} Q: The lines in the baSAR-model appear to be in a wrong logical order?\cr A: This is correct and allowed (cf. JAGS manual) \strong{Additional arguments support via the \code{...} argument} This list summarizes the additional arguments that can be passed to the internally used functions. \tabular{llll}{ \strong{Supported argument} \tab \strong{Corresponding function} \tab \strong{Default} \tab **Short description **\cr \code{threshold} \tab \link{verify_SingleGrainData} \tab \code{30} \tab change rejection threshold for curve selection \cr \code{skip} \tab \link[data.table:fread]{data.table::fread} \tab \code{0} \tab number of rows to be skipped during import\cr \code{n.records} \tab \link{read_BIN2R} \tab \code{NULL} \tab limit records during BIN-file import\cr \code{duplicated.rm} \tab \link{read_BIN2R} \tab \code{TRUE} \tab remove duplicated records in the BIN-file\cr \code{pattern} \tab \link{read_BIN2R} \tab \code{TRUE} \tab select BIN-file by name pattern\cr \code{position} \tab \link{read_BIN2R} \tab \code{NULL} \tab limit import to a specific position\cr \code{background.count.distribution} \tab \link{calc_OSLLxTxRatio} \tab \code{"non-poisson"} \tab set assumed count distribution\cr \code{fit.weights} \tab \link{plot_GrowthCurve} \tab \code{TRUE} \tab enable/disable fit weights\cr \code{fit.bounds} \tab \link{plot_GrowthCurve} \tab \code{TRUE} \tab enable/disable fit bounds\cr \code{n.MC} \tab \link{plot_GrowthCurve} \tab \code{100} \tab number of MC runs for error calculation\cr \code{output.plot} \tab \link{plot_GrowthCurve} \tab \code{TRUE} \tab enable/disable dose response curve plot\cr \code{output.plotExtended} \tab \link{plot_GrowthCurve} \tab \code{TRUE} \tab enable/disable extended dose response curve plot\cr \code{recordType} \tab \link{get_RLum} \tab \verb{c(OSL (UVVIS), irradiation (NA)} \tab helps for the curve selection\cr } } \note{ \strong{If you provide more than one BIN-file}, it is \strong{strongly} recommended to provide a \code{list} with the same number of elements for the following parameters: \code{source_doserate}, \code{signal.integral}, \code{signal.integral.Tx}, \code{background.integral}, \code{background.integral.Tx}, \code{sigmab}, \code{sig0}. Example for two BIN-files: \code{source_doserate = list(c(0.04, 0.006), c(0.05, 0.006))} \strong{The function is currently limited to work with standard Risoe BIN-files only!} } \section{Function version}{ 0.1.36 } \examples{ ##(1) load package test data set data(ExampleData.BINfileData, envir = environment()) ##(2) selecting relevant curves, and limit dataset CWOSL.SAR.Data <- subset( CWOSL.SAR.Data, subset = POSITION\%in\%c(1:3) & LTYPE == "OSL") \dontrun{ ##(3) run analysis ##please not that the here selected parameters are ##choosen for performance, not for reliability results <- analyse_baSAR( object = CWOSL.SAR.Data, source_doserate = c(0.04, 0.001), signal.integral = c(1:2), background.integral = c(80:100), fit.method = "LIN", plot = FALSE, n.MCMC = 200 ) print(results) ##CSV_file template ##copy and paste this the code below in the terminal ##you can further use the function write.csv() to export the example CSV_file <- structure( list( BIN_FILE = NA_character_, DISC = NA_real_, GRAIN = NA_real_), .Names = c("BIN_FILE", "DISC", "GRAIN"), class = "data.frame", row.names = 1L ) } } \section{How to cite}{ Mercier, N., Kreutzer, S., 2025. analyse_baSAR(): Bayesian models (baSAR) applied on luminescence data. Function version 0.1.36. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Combès, B., Philippe, A., Lanos, P., Mercier, N., Tribolo, C., Guerin, G., Guibert, P., Lahaye, C., 2015. A Bayesian central equivalent dose model for optically stimulated luminescence dating. Quaternary Geochronology 28, 62-70. doi:10.1016/j.quageo.2015.04.001 Mercier, N., Kreutzer, S., Christophe, C., Guerin, G., Guibert, P., Lahaye, C., Lanos, P., Philippe, A., Tribolo, C., 2016. Bayesian statistics in luminescence dating: The 'baSAR'-model and its implementation in the R package 'Luminescence'. Ancient TL 34, 14-21. \strong{Further reading} Gelman, A., Carlin, J.B., Stern, H.S., Dunson, D.B., Vehtari, A., Rubin, D.B., 2013. Bayesian Data Analysis, Third Edition. CRC Press. Murray, A.S., Wintle, A.G., 2000. Luminescence dating of quartz using an improved single-aliquot regenerative-dose protocol. Radiation Measurements 32, 57-73. doi:10.1016/S1350-4487(99)00253-X Plummer, M., 2017. JAGS Version 4.3.0 user manual. \verb{https://sourceforge.net/projects/mcmc-jags/files/Manuals/4.x/jags_user_manual.pdf/download} } \seealso{ \link{read_BIN2R}, \link{calc_OSLLxTxRatio}, \link{plot_GrowthCurve}, \link[data.table:fread]{data.table::fread}, \link{verify_SingleGrainData}, \link[rjags:jags.model]{rjags::jags.model}, \link[rjags:coda.samples]{rjags::coda.samples}, \link{boxplot.default} } \author{ Norbert Mercier, Archaésciences Bordeaux, CNRS-Université Bordeaux Montaigne (France) \cr Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) \cr The underlying Bayesian model based on a contribution by Combès et al., 2015. , RLum Developer Team} \keyword{datagen} Luminescence/man/bin_RLum.Data.Rd0000644000176200001440000000406214762561642016324 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-generics.R \name{bin_RLum.Data} \alias{bin_RLum.Data} \title{Channel binning for RLum.Data S4 class objects.} \usage{ bin_RLum.Data(object, ...) } \arguments{ \item{object}{\linkS4class{RLum.Data} (\strong{required}): S4 object of class \code{RLum.Data}} \item{...}{further arguments passed to the specific class method} } \value{ An object of the same type as the input object provided. } \description{ The function provides a generalised access point for specific \linkS4class{RLum.Data} objects. Depending on the input object, the corresponding function will be selected. Allowed arguments can be found in the documentations of the corresponding \linkS4class{RLum.Data} class. } \note{ Currently only \code{RLum.Data} objects of class \linkS4class{RLum.Data.Curve} and \linkS4class{RLum.Data.Spectrum} are supported. } \section{Function version}{ 0.2.0 } \examples{ ## load example data data(ExampleData.CW_OSL_Curve, envir = environment()) ## create RLum.Data.Curve object from this example curve <- set_RLum( class = "RLum.Data.Curve", recordType = "OSL", data = as.matrix(ExampleData.CW_OSL_Curve) ) ## plot data without and with 2 and 4 channel binning plot_RLum(curve) plot_RLum(bin_RLum.Data(curve, bin_size = 2)) plot_RLum(bin_RLum.Data(curve, bin_size = 4)) } \seealso{ \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Data.Spectrum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. bin_RLum.Data(): Channel binning for RLum.Data S4 class objects.. Function version 0.2.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{utilities} Luminescence/man/calc_AverageDose.Rd0000644000176200001440000001322214762561642017112 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_AverageDose.R \name{calc_AverageDose} \alias{calc_AverageDose} \title{Calculate the Average Dose and the dose rate dispersion} \usage{ calc_AverageDose( data, sigma_m, Nb_BE = 500, na.rm = TRUE, plot = TRUE, verbose = TRUE, ... ) } \arguments{ \item{data}{\linkS4class{RLum.Results} or \link{data.frame} (\strong{required}): for \link{data.frame}: two columns with \code{De} \code{(data[,1])} and \verb{De error} \code{(values[,2])}} \item{sigma_m}{\link{numeric} (\strong{required}): the overdispersion resulting from a dose recovery experiment, i.e. when all grains have received the same dose. Indeed in such a case, any overdispersion (i.e. dispersion on top of analytical uncertainties) is, by definition, an unrecognised measurement uncertainty.} \item{Nb_BE}{\link{integer} (\emph{with default}): sample size used for the bootstrapping} \item{na.rm}{\link{logical} (\emph{with default}): exclude NA values from the data set prior to any further operation.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{...}{further arguments that can be passed to \link[graphics:hist]{graphics::hist}. As three plots are returned all arguments need to be provided as \link{list}, e.g., \code{main = list("Plot 1", "Plot 2", "Plot 3")}. Note: not all arguments of \code{hist} are supported, but the output of \code{hist} is returned and can be used of own plots. \cr Further supported arguments: \code{mtext} (\link{character}), \code{rug} (\code{TRUE/FALSE}).} } \value{ The function returns numerical output and an (\emph{optional}) plot. -----------------------------------\cr \verb{[ NUMERICAL OUTPUT ]} \cr -----------------------------------\cr \strong{\code{RLum.Results}}-object\cr \strong{slot:} \strong{\verb{@data}} \cr \verb{[.. $summary : data.frame]}\cr \tabular{lll}{ \strong{Column} \tab \strong{Type} \tab \strong{Description}\cr AVERAGE_DOSE \tab \link{numeric} \tab the obtained average dose\cr AVERAGE_DOSE.SE \tab \link{numeric} \tab the average dose error \cr SIGMA_D \tab \link{numeric}\tab sigma \cr SIGMA_D.SE \tab \link{numeric}\tab standard error of the sigma \cr IC_AVERAGE_DOSE.LEVEL \tab \link{character}\tab confidence level average dose\cr IC_AVERAGE_DOSE.LOWER \tab \link{character}\tab lower quantile of average dose \cr IC_AVERAGE_DOSE.UPPER \tab \link{character}\tab upper quantile of average dose\cr IC_SIGMA_D.LEVEL \tab \link{integer}\tab confidence level sigma\cr IC_SIGMA_D.LOWER \tab \link{character}\tab lower sigma quantile\cr IC_SIGMA_D.UPPER \tab \link{character}\tab upper sigma quantile\cr L_MAX \tab \link{character}\tab maximum likelihood value } \verb{[.. $dstar : matrix]} \cr Matrix with bootstrap values\cr \verb{[.. $hist : list]}\cr Object as produced by the function histogram ------------------------\cr \verb{[ PLOT OUTPUT ]}\cr ------------------------\cr The function returns two different plot panels. (1) An abanico plot with the dose values (2) A histogram panel comprising 3 histograms with the equivalent dose and the bootstrapped average dose and the sigma values. } \description{ This functions calculates the Average Dose and its extrinsic dispersion, estimating the standard errors by bootstrapping based on the Average Dose Model by Guerin et al., 2017. \strong{\code{sigma_m}}\cr The program requires the input of a known value of \code{sigma_m}, which corresponds to the intrinsic overdispersion, as determined by a dose recovery experiment. Then the dispersion in doses (\code{sigma_d}) will be that over and above \code{sigma_m} (and individual uncertainties \code{sigma_wi}). } \note{ This function has beta status! } \section{Function version}{ 0.1.5 } \examples{ ##Example 01 using package example data ##load example data data(ExampleData.DeValues, envir = environment()) ##calculate Average dose ##(use only the first 56 values here) AD <- calc_AverageDose(ExampleData.DeValues$CA1[1:56,], sigma_m = 0.1) ##plot De and set Average dose as central value plot_AbanicoPlot( data = ExampleData.DeValues$CA1[1:56,], z.0 = AD$summary$AVERAGE_DOSE) } \section{How to cite}{ Christophe, C., Philippe, A., Kreutzer, S., 2025. calc_AverageDose(): Calculate the Average Dose and the dose rate dispersion. Function version 0.1.5. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Guerin, G., Christophe, C., Philippe, A., Murray, A.S., Thomsen, K.J., Tribolo, C., Urbanova, P., Jain, M., Guibert, P., Mercier, N., Kreutzer, S., Lahaye, C., 2017. Absorbed dose, equivalent dose, measured dose rates, and implications for OSL age estimates: Introducing the Average Dose Model. Quaternary Geochronology 1-32. doi:10.1016/j.quageo.2017.04.002 \strong{Further reading}\cr Efron, B., Tibshirani, R., 1986. Bootstrap Methods for Standard Errors, Confidence Intervals, and Other Measures of Statistical Accuracy. Statistical Science 1, 54-75. } \seealso{ \link{read.table}, \link[graphics:hist]{graphics::hist} } \author{ Claire Christophe, IRAMAT-CRP2A, Université de Nantes (France), Anne Philippe, Université de Nantes, (France), Guillaume Guérin, IRAMAT-CRP2A, Université Bordeaux Montaigne, (France), Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{datagen} Luminescence/man/plot_DetPlot.Rd0000644000176200001440000001552214762561642016361 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_DetPlot.R \name{plot_DetPlot} \alias{plot_DetPlot} \title{Create De(t) plot} \usage{ plot_DetPlot( object, signal.integral.min, signal.integral.max, background.integral.min, background.integral.max, method = "shift", signal_integral.seq = NULL, analyse_function = "analyse_SAR.CWOSL", analyse_function.control = list(), n.channels = NULL, show_ShineDownCurve = TRUE, respect_RC.Status = FALSE, multicore = TRUE, verbose = TRUE, plot = TRUE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Analysis} (\strong{required}): input object containing data for analysis Can be provided as a \link{list} of such objects.} \item{signal.integral.min}{\link{integer} (\strong{required}): lower bound of the signal integral.} \item{signal.integral.max}{\link{integer} (\strong{required}): upper bound of the signal integral. Must be strictly greater than \code{signal.integral.min}.} \item{background.integral.min}{\link{integer} (\strong{required}): lower bound of the background integral.} \item{background.integral.max}{\link{integer} (\strong{required}): upper bound of the background integral.} \item{method}{\link{character} (\emph{with default}): method applied for constructing the De(t) plot. \itemize{ \item \code{shift} (\emph{the default}): the chosen signal integral is shifted the shine down curve, \item \code{expansion}: the chosen signal integral is expanded each time by its length }} \item{signal_integral.seq}{\link{numeric} (\emph{optional}): argument to provide an own signal integral sequence for constructing the De(t) plot} \item{analyse_function}{\link{character} (\emph{with default}): name of the analyse function to be called. Supported functions are: \link{analyse_SAR.CWOSL}, \link{analyse_pIRIRSequence}} \item{analyse_function.control}{\link{list} (\emph{optional}): selected arguments to be passed to the supported analyse functions (\link{analyse_SAR.CWOSL}, \link{analyse_pIRIRSequence}). The arguments must be provided as named \link{list}, e.g., \verb{list(dose.points = c(0,10,20,30,0,10)} will set the regeneration dose points.} \item{n.channels}{\link{integer} (\emph{optional}): number of channels used for the De(t) plot. If nothing is provided all De-values are calculated and plotted until the start of the background integral.} \item{show_ShineDownCurve}{\link{logical} (\emph{with default}): enable/disable shine down curve in the plot output.} \item{respect_RC.Status}{\link{logical} (\emph{with default}): remove De values with 'FAILED' RC.Status from the plot (cf. \link{analyse_SAR.CWOSL} and \link{analyse_pIRIRSequence}).} \item{multicore}{\link{logical} (\emph{with default}) : enable/disable multi core calculation if \code{object} is a \link{list} of \linkS4class{RLum.Analysis} objects. Can be an \link{integer} specifying the number of cores} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output. Disabling the plot is useful in cases where the output need to be processed differently.} \item{...}{further arguments and graphical parameters passed to \link{plot.default}, \link{analyse_SAR.CWOSL} and \link{analyse_pIRIRSequence} (see details for further information). Plot control parameters are: \code{ylim}, \code{xlim}, \code{ylab}, \code{xlab}, \code{main}, \code{pch}, \code{mtext}, \code{cex}, \code{legend}, \code{legend.text}, \code{legend.pos}} } \value{ A plot and an \linkS4class{RLum.Results} object with the produced \eqn{D_e} values \verb{@data}: \tabular{lll}{ \strong{Object} \tab \strong{Type} \tab \strong{Description}\cr \code{De.values} \tab \code{data.frame} \tab table with De values \cr \code{signal_integral.seq} \tab \code{numeric} \tab integral sequence used for the calculation } \verb{@info}: \tabular{lll}{ \strong{Object} \tab \strong{Type} \tab \strong{Description}\cr call \tab \code{call} \tab the original function call } } \description{ Plots the equivalent dose (\eqn{D_e}) in dependency of the chosen signal integral (cf. Bailey et al., 2003). The function is simply passing several arguments to the function \link{plot} and the used analysis functions and runs it in a loop. Example: \code{legend.pos} for legend position, \code{legend} for legend text. } \details{ \strong{method} The original method presented by Bailey et al., 2003 shifted the signal integrals and slightly extended them accounting for changes in the counting statistics. Example: \code{c(1:3, 3:5, 5:7)}. However, here also another method is provided allowing to expand the signal integral by consecutively expanding the integral by its chosen length. Example: \code{c(1:3, 1:5, 1:7)} Note that in both cases the integral limits are overlap. The finally applied limits are part of the function output. \strong{analyse_function.control} The argument \code{analyse_function.control} currently supports the following arguments: \code{sequence.structure}, \code{dose.points}, \code{mtext.outer}, \code{fit.method}, \code{fit.force_through_origin}, \code{plot}, \code{plot_singlePanels} } \note{ The entire analysis is based on the used analysis functions, namely \link{analyse_SAR.CWOSL} and \link{analyse_pIRIRSequence}. However, the integrity checks of this function are not that thoughtful as in these functions itself. It means, that every sequence should be checked carefully before running long calculations using several hundreds of channels. } \section{Function version}{ 0.1.8 } \examples{ \dontrun{ ##load data ##ExampleData.BINfileData contains two BINfileData objects ##CWOSL.SAR.Data and TL.SAR.Data data(ExampleData.BINfileData, envir = environment()) ##transform the values from the first position in a RLum.Analysis object object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1) plot_DetPlot( object, signal.integral.min = 1, signal.integral.max = 3, background.integral.min = 900, background.integral.max = 1000, n.channels = 5) } } \section{How to cite}{ Kreutzer, S., 2025. plot_DetPlot(): Create De(t) plot. Function version 0.1.8. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Bailey, R.M., Singarayer, J.S., Ward, S., Stokes, S., 2003. Identification of partial resetting using De as a function of illumination time. Radiation Measurements 37, 511-518. doi:10.1016/S1350-4487(03)00063-5 } \seealso{ \link{plot}, \link{analyse_SAR.CWOSL}, \link{analyse_pIRIRSequence} } \author{ Sebastian Kreutzer, Institute of Geography, Ruprecht-Karl University of Heidelberg (Germany) , RLum Developer Team} Luminescence/man/ExampleData.LxTxOSLData.Rd0000644000176200001440000000122514762557027020200 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{ExampleData.LxTxOSLData} \alias{ExampleData.LxTxOSLData} \alias{Lx.data} \alias{Tx.data} \title{Example Lx and Tx curve data from an artificial OSL measurement} \format{ Two \code{\link{data.frame}}s containing time and count values. } \source{ Arbitrary OSL measurement. } \description{ \code{Lx} and \code{Tx} data of continuous wave (CW-) OSL signal curves. } \examples{ ##load data data(ExampleData.LxTxOSLData, envir = environment()) ##plot data plot(Lx.data) plot(Tx.data) } \references{ unpublished data } \keyword{datasets} \keyword{internal} Luminescence/man/merge_Risoe.BINfileData.Rd0000644000176200001440000000721714762561642020253 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/merge_Risoe.BINfileData.R \name{merge_Risoe.BINfileData} \alias{merge_Risoe.BINfileData} \title{Merge Risoe.BINfileData objects or Risoe BIN-files} \usage{ merge_Risoe.BINfileData( input.objects, output.file, keep.position.number = FALSE, position.number.append.gap = 0 ) } \arguments{ \item{input.objects}{\link{character} with \linkS4class{Risoe.BINfileData} objects (\strong{required}): Character vector with path and files names (e.g. \code{input.objects = c("path/file1.bin", "path/file2.bin")} or \linkS4class{Risoe.BINfileData} objects (e.g. \code{input.objects = c(object1, object2)}). Alternatively a \code{list} is supported.} \item{output.file}{\link{character} (\emph{optional}): File output path and name. If no value is given, a \linkS4class{Risoe.BINfileData} is returned instead of a file.} \item{keep.position.number}{\link{logical} (\emph{with default}): Allows keeping the original position numbers of the input objects. Otherwise the position numbers are recalculated.} \item{position.number.append.gap}{\link{integer} (\emph{with default}): Set the position number gap between merged BIN-file sets, if the option \code{keep.position.number = FALSE} is used. See details for further information.} } \value{ Returns a \code{file} or a \linkS4class{Risoe.BINfileData} object. } \description{ Function allows merging Risoe BIN/BINX files or \linkS4class{Risoe.BINfileData} objects. } \details{ The function allows merging different measurements to one file or one object. The record IDs are recalculated for the new object. Other values are kept for each object. The number of input objects is not limited. \code{position.number.append.gap} option If the option \code{keep.position.number = FALSE} is used, the position numbers of the new data set are recalculated by adding the highest position number of the previous data set to the each position number of the next data set. For example: The highest position number is 48, then this number will be added to all other position numbers of the next data set (e.g. 1 + 48 = 49) However, there might be cases where an additional addend (summand) is needed before the next position starts. Example: \itemize{ \item Position number set (A): \verb{1,3,5,7} \item Position number set (B): \verb{1,3,5,7} } With no additional summand the new position numbers would be: \verb{1,3,5,7,8,9,10,11}. That might be unwanted. Using the argument \code{position.number.append.gap = 1} it will become: \verb{1,3,5,7,9,11,13,15,17}. } \note{ The validity of the output objects is not further checked. } \section{Function version}{ 0.2.9 } \examples{ ##merge two objects data(ExampleData.BINfileData, envir = environment()) object1 <- CWOSL.SAR.Data object2 <- CWOSL.SAR.Data object.new <- merge_Risoe.BINfileData(c(object1, object2)) } \section{How to cite}{ Kreutzer, S., 2025. merge_Risoe.BINfileData(): Merge Risoe.BINfileData objects or Risoe BIN-files. Function version 0.2.9. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Duller, G.A.T., 2007. Analyst (Version 3.24) (manual). Aberystwyth University, Aberystwyth. } \seealso{ \linkS4class{Risoe.BINfileData}, \link{read_BIN2R}, \link{write_R2BIN} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{IO} \keyword{manip} Luminescence/man/get_Risoe.BINfileData.Rd0000644000176200001440000000306214762561642017725 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-generics.R \name{get_Risoe.BINfileData} \alias{get_Risoe.BINfileData} \title{General accessor function for Risoe.BINfileData objects} \usage{ get_Risoe.BINfileData(object, ...) } \arguments{ \item{object}{\linkS4class{Risoe.BINfileData} (\strong{required}): S4 object of class \code{Risoe.BINfileData}} \item{...}{further arguments passed to the specific class method} } \value{ An object of the same type as the input object provided. } \description{ The function provides a generalised access point for specific \linkS4class{Risoe.BINfileData} objects. Depending on the input object, the corresponding function will be selected. Allowed arguments can be found in the documentations of the corresponding \linkS4class{Risoe.BINfileData} class. } \section{Function version}{ 0.1.0 } \seealso{ \linkS4class{Risoe.BINfileData} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. get_Risoe.BINfileData(): General accessor function for Risoe.BINfileData objects. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{internal} \keyword{utilities} Luminescence/man/read_BIN2R.Rd0000644000176200001440000001467214762561642015564 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/read_BIN2R.R \name{read_BIN2R} \alias{read_BIN2R} \title{Import Risø BIN/BINX-files into R} \usage{ read_BIN2R( file, show.raw.values = FALSE, position = NULL, n.records = NULL, zero_data.rm = TRUE, duplicated.rm = FALSE, fastForward = FALSE, show.record.number = FALSE, txtProgressBar = TRUE, forced.VersionNumber = NULL, ignore.RECTYPE = FALSE, pattern = NULL, verbose = TRUE, ... ) } \arguments{ \item{file}{\link{character} or \link{list} (\strong{required}): path and file name of the BIN/BINX file (URLs are supported). If input is a \code{list} it should comprise only \code{character}s representing each valid path and BIN/BINX-file names. Alternatively, the input character can be just a directory (path), in which case the function tries to detect and import all BIN/BINX files found in the directory.} \item{show.raw.values}{\link{logical} (\emph{with default}): shows raw values from BIN-file for \code{LTYPE}, \code{DTYPE} and \code{LIGHTSOURCE} without translation in characters. Can be provided as \code{list} if \code{file} is a \code{list}.} \item{position}{\link{numeric} (\emph{optional}): imports only the selected position. Note: the import performance will not benefit by any selection made here. Can be provided as \code{list} if \code{file} is a \code{list}.} \item{n.records}{\link{numeric} (\emph{optional}): limits the number of imported records to the provided record id (e.g., \code{n.records = 1:10} imports the first ten records, while \code{n.records = 3} imports only record number 3. Can be used in combination with \code{show.record.number} for debugging purposes, e.g. corrupt BIN-files. Can be provided as \code{list} if \code{file} is a \code{list}.} \item{zero_data.rm}{\link{logical} (\emph{with default}): remove erroneous data with no count values. As such data are usually not needed for the subsequent data analysis they will be removed by default. Can be provided as \code{list} if \code{file} is a \code{list}.} \item{duplicated.rm}{\link{logical} (\emph{with default}): remove duplicated entries if \code{TRUE}. This may happen due to an erroneous produced BIN/BINX-file. This option compares only predecessor and successor. Can be provided as \code{list} if \code{file} is a \code{list}.} \item{fastForward}{\link{logical} (\emph{with default}): if \code{TRUE} for a more efficient data processing only a list of \code{RLum.Analysis} objects is returned instead of a \linkS4class{Risoe.BINfileData} object. Can be provided as \code{list} if \code{file} is a \code{list}.} \item{show.record.number}{\link{logical} (\emph{with default}): shows record number of the imported record, for debugging usage only. Can be provided as \code{list} if \code{file} is a \code{list}. Ignored if \code{verbose = FALSE}.} \item{txtProgressBar}{\link{logical} (\emph{with default}): enable/disable the progress bar. Ignored if \code{verbose = FALSE}.} \item{forced.VersionNumber}{\link{integer} (\emph{optional}): allows to cheat the version number check in the function by own values for cases where the BIN-file version is not supported. Can be provided as \code{list} if \code{file} is a \code{list}. \strong{Note:} The usage is at own risk, only supported BIN-file versions have been tested.} \item{ignore.RECTYPE}{\link{logical} or \link{numeric} (\emph{with default}): this argument allows to ignore values in the byte 'RECTYPE' (BIN-file version 08), in case there are not documented or faulty set. In this case the corrupted records are skipped. If the setting is \link{numeric} (e.g., \code{ignore.RECTYPE = 128}), records of those type are ignored for import.} \item{pattern}{\link{character} (\emph{optional}): argument that is used if only a path is provided. The argument will than be passed to the function \link{list.files} used internally to construct a \code{list} of wanted files} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{...}{further arguments that will be passed to the function \link{Risoe.BINfileData2RLum.Analysis}. Please note that any matching argument automatically sets \code{fastForward = TRUE}} } \value{ Returns an S4 \linkS4class{Risoe.BINfileData} object containing two slots: \item{METADATA}{A \link{data.frame} containing all variables stored in the BIN-file.} \item{DATA}{A \link{list} containing a numeric \link{vector} of the measured data. The ID corresponds to the record ID in METADATA.} If \code{fastForward = TRUE} a list of \linkS4class{RLum.Analysis} object is returned. The internal coercing is done using the function \link{Risoe.BINfileData2RLum.Analysis} } \description{ Import a \verb{*.bin} or a \verb{*.binx} file produced by a Risø DA15 and DA20 TL/OSL reader into R. } \details{ The binary data file is parsed byte by byte following the data structure published in the Appendices of the Analyst manual p. 42. For the general BIN/BINX-file structure, the reader is referred to the Risø website: \url{https://www.fysik.dtu.dk} } \note{ The function works for BIN/BINX-format versions 03, 04, 05, 06, 07 and 08. The version number depends on the used Sequence Editor. } \section{Function version}{ 0.18 } \examples{ file <- system.file("extdata/BINfile_V8.binx", package = "Luminescence") temp <- read_BIN2R(file) temp } \section{How to cite}{ Kreutzer, S., Fuchs, M.C., Colombo, M., 2025. read_BIN2R(): Import Risø BIN/BINX-files into R. Function version 0.18. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ DTU Nutech, 2016. The Sequence Editor, Users Manual, February, 2016. \url{https://www.fysik.dtu.dk} } \seealso{ \link{write_R2BIN}, \linkS4class{Risoe.BINfileData}, \link[base:readBin]{base::readBin}, \link{merge_Risoe.BINfileData}, \linkS4class{RLum.Analysis} \link[utils:txtProgressBar]{utils::txtProgressBar}, \link{list.files} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr Margret C. Fuchs, HZDR Freiberg, (Germany) \cr Marco Colombo, Institute of Geography, Heidelberg University (Germany)\cr based on information provided by Torben Lapp and Karsten Bracht Nielsen (Risø DTU, Denmark) , RLum Developer Team} \keyword{IO} Luminescence/man/convert_SG2MG.Rd0000644000176200001440000000403614762561642016325 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/convert_SG2MG.R \name{convert_SG2MG} \alias{convert_SG2MG} \title{Converts Single-Grain Data to Multiple-Grain Data} \usage{ convert_SG2MG(object, write_file = FALSE, ...) } \arguments{ \item{object}{\linkS4class{Risoe.BINfileData} \link{character} (\strong{required}): \linkS4class{Risoe.BINfileData} object or BIN/BINX-file name} \item{write_file}{\link{logical} (\emph{with default}): if the input was a path to a file, the output can be written to a file if \code{TRUE}. The multiple grain file will be written into the same folder and with extension \code{-SG} to the file name.} \item{...}{further arguments passed down to \link{read_BIN2R} if input is file path} } \value{ \linkS4class{Risoe.BINfileData} object and if \code{write_file = TRUE} and the input was a file path, a file is written to origin folder. } \description{ Conversion of single-grain data to multiple-grain data by adding signals from grains belonging to one disc (unique pairs of position, set and run). } \section{Function version}{ 0.1.0 } \examples{ ## simple run ## (please not that the example is not using SG data) data(ExampleData.BINfileData, envir = environment()) convert_SG2MG(CWOSL.SAR.Data) } \seealso{ \linkS4class{Risoe.BINfileData}, \link{read_BIN2R}, \link{write_R2BIN} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr Norbert Mercier, IRAMAT-CRP2A, UMR 5060, CNRS-Université Bordeaux Montaigne (France) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., Mercier, N., 2025. convert_SG2MG(): Converts Single-Grain Data to Multiple-Grain Data. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{IO} Luminescence/man/read_PSL2R.Rd0000644000176200001440000000653314762561642015607 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/read_PSL2R.R \name{read_PSL2R} \alias{read_PSL2R} \title{Import PSL files to R} \usage{ read_PSL2R( file, drop_bg = FALSE, as_decay_curve = TRUE, smooth = FALSE, merge = FALSE, verbose = TRUE, ... ) } \arguments{ \item{file}{\link{character} (\strong{required}): path and file name of the PSL file. If input is a \code{vector} it should comprise only \code{character}s representing valid paths and PSL file names. Alternatively the input character can be just a directory (path). In this case the the function tries to detect and import all PSL files found in the directory.} \item{drop_bg}{\link{logical} (\emph{with default}): \code{TRUE} to automatically remove all non-OSL/IRSL curves.} \item{as_decay_curve}{\link{logical} (\emph{with default}): Portable OSL Reader curves are often given as cumulative light sum curves. Use \code{TRUE} (default) to convert the curves to the more usual decay form.} \item{smooth}{\link{logical} (\emph{with default}): \code{TRUE} to apply Tukey's Running Median Smoothing for OSL and IRSL decay curves. Smoothing is encouraged if you see random signal drops within the decay curves related to hardware errors.} \item{merge}{\link{logical} (\emph{with default}): \code{TRUE} to merge all \code{RLum.Analysis} objects. Only applicable if multiple files are imported.} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{...}{currently not used.} } \value{ Returns an S4 \linkS4class{RLum.Analysis} object containing \linkS4class{RLum.Data.Curve} objects for each curve. } \description{ Imports PSL files produced by a SUERC portable OSL reader into R. } \details{ This function provides an import routine for the SUERC portable OSL Reader PSL format (measurement data and sequence). PSL files are just plain text and can be viewed with any text editor. Due to the formatting of PSL files this import function relies heavily on regular expression to find and extract all relevant information. See \strong{note}. } \note{ Because this function relies heavily on regular expressions to parse PSL files it is currently only in beta status. If the routine fails to import a specific PSL file please report to \verb{} so the function can be updated. } \section{Function version}{ 0.1.1 } \examples{ # (1) Import PSL file to R file <- system.file("extdata", "DorNie_0016.psl", package = "Luminescence") psl <- read_PSL2R(file, drop_bg = FALSE, as_decay_curve = TRUE, smooth = TRUE, merge = FALSE) print(str(psl, max.level = 3)) plot(psl, combine = TRUE) } \seealso{ \linkS4class{RLum.Analysis}, \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Data.Curve} } \author{ Christoph Burow, University of Cologne (Germany), Sebastian Kreutzer, Institut of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Burow, C., Kreutzer, S., 2025. read_PSL2R(): Import PSL files to R. Function version 0.1.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{IO} Luminescence/man/Risoe.BINfileData-class.Rd0000644000176200001440000004132014762561642020170 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Risoe.BINfileData-class.R \docType{class} \name{Risoe.BINfileData-class} \alias{Risoe.BINfileData-class} \alias{show,Risoe.BINfileData-method} \alias{set_Risoe.BINfileData,ANY-method} \alias{get_Risoe.BINfileData,Risoe.BINfileData-method} \alias{add_metadata<-,Risoe.BINfileData-method} \alias{rename_metadata<-,Risoe.BINfileData-method} \alias{replace_metadata<-,Risoe.BINfileData-method} \alias{sort_RLum,Risoe.BINfileData-method} \alias{view,Risoe.BINfileData-method} \title{Class \code{"Risoe.BINfileData"}} \usage{ \S4method{show}{Risoe.BINfileData}(object) \S4method{set_Risoe.BINfileData}{ANY}( METADATA = data.frame(), DATA = list(), .RESERVED = list() ) \S4method{get_Risoe.BINfileData}{Risoe.BINfileData}(object, ...) \S4method{add_metadata}{Risoe.BINfileData}(object, info_element) <- value \S4method{rename_metadata}{Risoe.BINfileData}(object, info_element) <- value \S4method{replace_metadata}{Risoe.BINfileData}(object, info_element, subset = NULL) <- value \S4method{sort_RLum}{Risoe.BINfileData}(object, info_element, decreasing = FALSE, ...) \S4method{view}{Risoe.BINfileData}(object, ...) } \arguments{ \item{object}{(\strong{required}) an object of class \linkS4class{Risoe.BINfileData}} \item{METADATA}{Object of class "data.frame" containing the meta information for each curve.} \item{DATA}{Object of class "list" containing numeric vector with count data.} \item{.RESERVED}{Object of class "list" containing list of undocumented raw values for internal use only.} \item{...}{other arguments that might be passed} \item{info_element}{\link{character} (\strong{required}): name of the metadata field to use in sorting.} \item{value}{(\strong{required}) The value assigned to the selected elements of the metadata field. If \code{NULL} the elements named in \code{info_element} will be removed.} \item{subset}{\link{expression} (\emph{optional}) logical expression to limit the substitution only to the selected subset of elements} \item{decreasing}{\link{logical} (\emph{with default}): whether the sort order should be decreasing (\code{FALSE} by default).} } \description{ S4 class object for luminescence data in R. The object is produced as output of the function \link{read_BIN2R}. } \section{Methods (by generic)}{ \itemize{ \item \code{show(Risoe.BINfileData)}: Show structure of RLum and Risoe.BINfile class objects \item \code{set_Risoe.BINfileData(ANY)}: The Risoe.BINfileData is normally produced as output of the function read_BIN2R. This construction method is intended for internal usage only. \item \code{get_Risoe.BINfileData(Risoe.BINfileData)}: Formal get-method for Risoe.BINfileData object. It does not allow accessing the object directly, it is just showing a terminal message. \item \code{add_metadata(Risoe.BINfileData) <- value}: Adds metadata to \linkS4class{Risoe.BINfileData} objects \item \code{rename_metadata(Risoe.BINfileData) <- value}: Renames a metadata entry of \linkS4class{Risoe.BINfileData} objects \item \code{replace_metadata(Risoe.BINfileData) <- value}: Replaces or removes metadata of \linkS4class{Risoe.BINfileData} objects \item \code{sort_RLum(Risoe.BINfileData)}: Sort method for \linkS4class{Risoe.BINfileData} objects \item \code{view(Risoe.BINfileData)}: View method for \linkS4class{Risoe.BINfileData} objects }} \section{Slots}{ \describe{ \item{\code{METADATA}}{Object of class "data.frame" containing the meta information for each curve.} \item{\code{DATA}}{Object of class "list" containing numeric vector with count data.} \item{\code{.RESERVED}}{Object of class "list" containing list of undocumented raw values for internal use only.} }} \note{ \strong{Internal METADATA - object structure} This structure is compatible with BIN/BINX-files version 03-08, however, it does not follow (in its sequential arrangement) the manual provided by the manufacturer, but an own structure accounting for the different versions. \tabular{rllll}{ \strong{#} \tab \strong{Name} \tab \strong{Data Type} \tab \strong{V} \tab \strong{Description} \cr \verb{[,1]} \tab \code{ID} \tab \code{numeric} \tab RLum \tab Unique record ID (same ID as in slot \code{DATA})\cr \verb{[,2]} \tab \code{SEL} \tab \code{logic} \tab RLum \tab Record selection, not part official BIN-format, triggered by TAG\cr \verb{[,3]} \tab \code{VERSION} \tab \code{raw} \tab 03-08 \tab BIN-file version number \cr \verb{[,4]} \tab \code{LENGTH} \tab \code{integer} \tab 03-08 \tab Length of this record\cr \verb{[,5]} \tab \code{PREVIOUS} \tab \code{integer} \tab 03-08 \tab Length of previous record\cr \verb{[,6]} \tab \code{NPOINTS} \tab \code{integer} \tab 03-08 \tab Number of data points in the record\cr \verb{[,7]} \tab \code{RECTYPE} \tab \code{integer} \tab 08 \tab Record type \cr \verb{[,8]} \tab \code{RUN} \tab \code{integer} \tab 03-08 \tab Run number\cr \verb{[,9]} \tab \code{SET} \tab \code{integer} \tab 03-08 \tab Set number\cr \verb{[,10]} \tab \code{POSITION} \tab \code{integer} \tab 03-08 \tab Position number\cr \verb{[,11]} \tab \code{GRAIN} \tab \code{integer} \tab 03-04 \tab Grain number\cr \verb{[,12]} \tab \code{GRAINNUMBER} \tab \code{integer} \tab 05-08 \tab Grain number\cr \verb{[,13]} \tab \code{CURVENO} \tab \code{integer} \tab 05-08 \tab Curve number\cr \verb{[,14]} \tab \code{XCOORD} \tab \code{integer} \tab 03-08 \tab X position of a single grain\cr \verb{[,15]} \tab \code{YCOORD} \tab \code{integer} \tab 03-08 \tab Y position of a single grain\cr \verb{[,16]} \tab \code{SAMPLE} \tab \code{factor} \tab 03-08 \tab Sample name\cr \verb{[,17]} \tab \code{COMMENT} \tab \code{factor} \tab 03-08 \tab Comment name\cr \verb{[,18]} \tab \code{SYSTEMID} \tab \code{integer} \tab 03-08 \tab Risø system id\cr \verb{[,19]} \tab \code{FNAME} \tab \code{factor} \tab 05-08 \tab File name (\emph{.bin/}.binx)\cr \verb{[,20]} \tab \code{USER} \tab \code{factor} \tab 03-08 \tab User name\cr \verb{[,21]} \tab \code{TIME} \tab \code{character} \tab 03-08 \tab Data collection time (\code{hh-mm-ss})\cr \verb{[,22]} \tab \code{DATE} \tab \code{factor} \tab 03-08 \tab Data collection date (\code{ddmmyy})\cr \verb{[,23]} \tab \code{DTYPE} \tab \code{character} \tab 03-08 \tab Data type\cr \verb{[,24]} \tab \code{BL_TIME} \tab \code{numeric} \tab 03-08 \tab Bleaching time\cr \verb{[,25]} \tab \code{BL_UNIT} \tab \code{integer} \tab 03-08 \tab Bleaching unit (mJ, J, s, min, h)\cr \verb{[,26]} \tab \code{NORM1} \tab \code{numeric} \tab 03-08 \tab Normalisation factor (1)\cr \verb{[,27]} \tab \code{NORM2} \tab \code{numeric} \tab 03-08 \tab Normalisation factor (2)\cr \verb{[,28]} \tab \code{NORM3} \tab \code{numeric} \tab 03-08 \tab Normalisation factor (3)\cr \verb{[,29]} \tab \code{BG} \tab \code{numeric} \tab 03-08 \tab Background level\cr \verb{[,30]} \tab \code{SHIFT} \tab \code{integer} \tab 03-08 \tab Number of channels to shift data\cr \verb{[,31]} \tab \code{TAG} \tab \code{integer} \tab 03-08 \tab Tag, triggers \code{SEL}\cr \verb{[,32]} \tab \code{LTYPE} \tab \code{character} \tab 03-08 \tab Luminescence type\cr \verb{[,33]} \tab \code{LIGHTSOURCE} \tab \code{character} \tab 03-08 \tab Light source\cr \verb{[,34]} \tab \code{LPOWER} \tab \code{numeric} \tab 03-08 \tab Optical stimulation power\cr \verb{[,35]} \tab \code{LIGHTPOWER} \tab \code{numeric} \tab 05-08 \tab Optical stimulation power\cr \verb{[,36]} \tab \code{LOW} \tab \code{numeric} \tab 03-08 \tab Low (temperature, time, wavelength)\cr \verb{[,37]} \tab \code{HIGH} \tab \code{numeric} \tab 03-08 \tab High (temperature, time, wavelength)\cr \verb{[,38]} \tab \code{RATE} \tab \code{numeric} \tab 03-08 \tab Rate (heating rate, scan rate)\cr \verb{[,39]} \tab \code{TEMPERATURE} \tab \code{integer} \tab 03-08 \tab Sample temperature\cr \verb{[,40]} \tab \code{MEASTEMP} \tab \code{integer} \tab 05-08 \tab Measured temperature\cr \verb{[,41]} \tab \code{AN_TEMP} \tab \code{numeric} \tab 03-08 \tab Annealing temperature\cr \verb{[,42]} \tab \code{AN_TIME} \tab \code{numeric} \tab 03-08 \tab Annealing time\cr \verb{[,43]} \tab \code{TOLDELAY} \tab \code{integer} \tab 03-08 \tab TOL 'delay' channels\cr \verb{[,44]} \tab \code{TOLON} \tab \code{integer} \tab 03-08 \tab TOL 'on' channels\cr \verb{[,45]} \tab \code{TOLOFF} \tab \code{integer} \tab 03-08 \tab TOL 'off' channels\cr \verb{[,46]} \tab \code{IRR_TIME} \tab \code{numeric} \tab 03-08 \tab Irradiation time\cr \verb{[,47]} \tab \code{IRR_TYPE} \tab \code{integer} \tab 03-08 \tab Irradiation type (alpha, beta or gamma)\cr \verb{[,48]} \tab \code{IRR_UNIT} \tab \code{integer} \tab 03-04 \tab Irradiation unit (Gy, rad, s, min, h)\cr \verb{[,49]} \tab \code{IRR_DOSERATE} \tab \code{numeric} \tab 05-08 \tab Irradiation dose rate (Gy/s)\cr \verb{[,50]} \tab \code{IRR_DOSERATEERR} \tab \code{numeric} \tab 06-08 \tab Irradiation dose rate error (Gy/s)\cr \verb{[,51]} \tab \code{TIMESINCEIRR} \tab \code{integer} \tab 05-08 \tab Time since irradiation (s)\cr \verb{[,52]} \tab \code{TIMETICK} \tab \code{numeric} \tab 05-08 \tab Time tick for pulsing (s)\cr \verb{[,53]} \tab \code{ONTIME} \tab \code{integer} \tab 05-08 \tab On-time for pulsing (in time ticks)\cr \verb{[,54]} \tab \code{OFFTIME} \tab \code{integer} \tab 03 \tab Off-time for pulsed stimulation (in s) \cr \verb{[,55]} \tab \code{STIMPERIOD} \tab \code{integer} \tab 05-08 \tab Stimulation period (on+off in time ticks)\cr \verb{[,56]} \tab \code{GATE_ENABLED} \tab \code{raw} \tab 05-08 \tab PMT signal gating enabled\cr \verb{[,57]} \tab \code{ENABLE_FLAGS} \tab \code{raw} \tab 05-08 \tab PMT signal gating enabled\cr \verb{[,58]} \tab \code{GATE_START} \tab \code{integer} \tab 05-08 \tab Start gating (in time ticks)\cr \verb{[,59]} \tab \code{GATE_STOP} \tab \code{integer} \tab 05-08 \tab Stop gating (in time ticks), \code{'Gateend'} for version 04, here only GATE_STOP is used\cr \verb{[,60]} \tab \code{PTENABLED} \tab \code{raw} \tab 05-08 \tab Photon time enabled\cr \verb{[,61]} \tab \code{DTENABLED} \tab \code{raw} \tab 05-08 \tab PMT dead time correction enabled\cr \verb{[,62]} \tab \code{DEADTIME} \tab \code{numeric} \tab 05-08 \tab PMT dead time (s)\cr \verb{[,63]} \tab \code{MAXLPOWER} \tab \code{numeric} \tab 05-08 \tab Stimulation power to 100 percent (mW/cm^2)\cr \verb{[,64]} \tab \code{XRF_ACQTIME} \tab \code{numeric} \tab 05-08 \tab XRF acquisition time (s)\cr \verb{[,65]} \tab \code{XRF_HV} \tab \code{numeric} \tab 05-08 \tab XRF X-ray high voltage (V)\cr \verb{[,66]} \tab \code{XRF_CURR} \tab \code{integer} \tab 05-08 \tab XRF X-ray current (µA)\cr \verb{[,67]} \tab \code{XRF_DEADTIMEF} \tab \code{numeric} \tab 05-08 \tab XRF dead time fraction\cr \verb{[,68]} \tab \code{DETECTOR_ID} \tab \code{raw} \tab 07-08 \tab Detector ID\cr \verb{[,69]} \tab \code{LOWERFILTER_ID} \tab \code{integer} \tab 07-08 \tab Lower filter ID in reader\cr \verb{[,70]} \tab \code{UPPERFILTER_ID} \tab \code{integer} \tab 07-08 \tab Upper filter ID in reader\cr \verb{[,71]} \tab \code{ENOISEFACTOR} \tab \code{numeric} \tab 07-08 \tab Excess noise filter, usage unknown \cr \verb{[,72]} \tab \code{MARKPOS_X1} \tab \code{numeric} \tab 08 \tab Coordinates marker position 1 \cr \verb{[,73]} \tab \code{MARKPOS_Y1} \tab \code{numeric} \tab 08 \tab Coordinates marker position 1 \cr \verb{[,74]} \tab \code{MARKPOS_X2} \tab \code{numeric} \tab 08 \tab Coordinates marker position 2 \cr \verb{[,75]} \tab \code{MARKPOS_Y2} \tab \code{numeric} \tab 08 \tab Coordinates marker position 2 \cr \verb{[,76]} \tab \code{MARKPOS_X3} \tab \code{numeric} \tab 08 \tab Coordinates marker position 3 \cr \verb{[,77]} \tab \code{MARKPOS_Y3} \tab \code{numeric} \tab 08 \tab Coordinates marker position 3 \cr \verb{[,78]} \tab \code{EXTR_START} \tab \code{numeric} \tab 08 \tab usage unknown \cr \verb{[,79]} \tab \code{EXTR_END} \tab \code{numeric} \tab 08 \tab usage unknown\cr \verb{[,80]} \tab \code{SEQUENCE} \tab \code{character} \tab 03-04 \tab Sequence name } V = BIN-file version (RLum means that it does not depend on a specific BIN version) Note that the \code{Risoe.BINfileData} object combines all values from different versions from the BIN-file, reserved bits are skipped, however, the function \link{write_R2BIN} reset arbitrary reserved bits. Invalid values for a specific version are set to \code{NA}. Furthermore, the internal R data types do not necessarily match the required data types for the BIN-file data import! Data types are converted during data import.\cr \strong{LTYPE} values \tabular{rll}{ VALUE \tab TYPE \tab DESCRIPTION \cr \verb{[0]} \tab \code{TL} \tab: Thermoluminescence \cr \verb{[1]} \tab \code{OSL} \tab: Optically stimulated luminescence \cr \verb{[2]} \tab \code{IRSL} \tab: Infrared stimulated luminescence \cr \verb{[3]} \tab \code{M-IR} \tab: Infrared monochromator scan\cr \verb{[4]} \tab \code{M-VIS} \tab: Visible monochromator scan\cr \verb{[5]} \tab \code{TOL} \tab: Thermo-optical luminescence \cr \verb{[6]} \tab \code{TRPOSL} \tab: Time Resolved Pulsed OSL\cr \verb{[7]} \tab \code{RIR} \tab: Ramped IRSL\cr \verb{[8]} \tab \code{RBR} \tab: Ramped (Blue) LEDs\cr \verb{[9]} \tab \code{USER} \tab: User defined\cr \verb{[10]} \tab \code{POSL} \tab: Pulsed OSL \cr \verb{[11]} \tab \code{SGOSL} \tab: Single Grain OSL\cr \verb{[12]} \tab \code{RL} \tab: Radio Luminescence \cr \verb{[13]} \tab \code{XRF} \tab: X-ray Fluorescence } \strong{DTYPE} values \tabular{rl}{ VALUE \tab DESCRIPTION \cr \verb{[0]} \tab Natural \cr \verb{[1]} \tab N+dose \cr \verb{[2]} \tab Bleach \cr \verb{[3]} \tab Bleach+dose \cr \verb{[4]} \tab Natural (Bleach) \cr \verb{[5]} \tab N+dose (Bleach) \cr \verb{[6]} \tab Dose \cr \verb{[7]} \tab Background } \strong{LIGHTSOURCE} values \tabular{rl}{ VALUE \tab DESCRIPTION \cr \verb{[0]} \tab None \cr \verb{[1]} \tab Lamp \cr \verb{[2]} \tab IR diodes/IR Laser \cr \verb{[3]} \tab Calibration LED \cr \verb{[4]} \tab Blue Diodes \cr \verb{[5]} \tab White light \cr \verb{[6]} \tab Green laser (single grain) \cr \verb{[7]} \tab IR laser (single grain) } \strong{Internal DATA - object structure} With version 8 of the BIN/BINX file format, slot \verb{@DATA} (byte array \code{DPOINTS}) can contain two different values: \enumerate{ \item \code{DPOINTS} (standard for \code{RECTYPE} := (0,1)): is a vector with the length defined through \code{NPOINTS}. This is the standard for xy-curves since version 03. \item \code{DPOINTS} (\code{RECTYPE} := 128) is contains no count values but information about the definition of the regions of interest (ROI). Each definition is 504 bytes long. The number of definitions is defined by \code{NPOINTS} in \verb{@METADATA}. The record describes basically the geometric features of the regions of interest. The representation in R is a nested \link{list}. } \tabular{rllll}{ \strong{#} \tab \strong{Name} \tab \strong{Data Type} \tab \strong{V} \tab \strong{Description} \cr \verb{[,1]} \tab \code{NOFPOINTS} \tab \code{numeric} \tab 08 \tab number of points in the definition (e.g., if the ROI is a rectangle: 4)\cr \verb{[,2]} \tab \code{USEDFOR} \tab \code{logical} \tab 08 \tab samples for which the ROI is used for; a maximum of 48 samples are allowed.\cr \verb{[,3]} \tab \code{SHOWNFOR} \tab \code{logical} \tab 08 \tab samples for which the ROI is shown for; a maximum of 48 samples are allowed.\cr \verb{[,4]} \tab \code{COLOR} \tab \code{numeric} \tab 08 \tab The colour values of the ROI.\cr \verb{[,5]} \tab \code{X} \tab \code{numeric} \tab 08 \tab The x coordinates used to draw the ROI geometry (up to 50 points are allowed).\cr \verb{[,6]} \tab \code{Y} \tab \code{numeric} \tab 08 \tab The y coordinates used to draw the ROI geometry (up to 50 points are allowed).\cr } (information on the BIN/BINX file format are kindly provided by Risø, DTU Nutech) } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("Risoe.BINfileData", ...)}. } \section{Function version}{ 0.4.1 } \examples{ showClass("Risoe.BINfileData") } \section{How to cite}{ Kreutzer, S., 2025. Risoe.BINfileData-class(): Class 'Risoe.BINfileData'. Function version 0.4.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Risø DTU, 2013. The Sequence Editor User Manual - Feb 2013 and Risø DTU, 2016. The Sequence Editor User Manual - February 2016 \url{https://www.fysik.dtu.dk} } \seealso{ \link{plot_Risoe.BINfileData}, \link{read_BIN2R}, \link{write_R2BIN}, \link{merge_Risoe.BINfileData}, \link{Risoe.BINfileData2RLum.Analysis} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr based on information provided by Torben Lapp and Karsten Bracht Nielsen (Risø DTU, Denmark) , RLum Developer Team} \keyword{class} \keyword{classes} \keyword{internal} Luminescence/man/sTeve.Rd0000644000176200001440000000272414762561642015036 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/zzz.R \name{sTeve} \alias{sTeve} \title{sTeve - sophisticated tool for efficient data validation and evaluation} \usage{ sTeve(n_frames = 10, t_animation = 2, n.tree = 7, type) } \arguments{ \item{n_frames}{\link{integer} (\emph{with default}): n frames} \item{t_animation}{\link{integer} (\emph{with default}): t animation} \item{n.tree}{\link{integer} (\emph{with default}): how many trees do you want to cut?} \item{type}{\link{integer} (\emph{optional}): Make a decision: 1, 2 or 3} } \value{ Validates your data. } \description{ This function provides a sophisticated routine for comprehensive luminescence dating data analysis. } \details{ This amazing sophisticated function validates your data seriously. } \note{ This function should not be taken too seriously. } \examples{ ##no example available } \seealso{ \link{plot_KDE} } \author{ R Luminescence Team, 2012-2046 , RLum Developer Team} \section{How to cite}{ NA, NA, , , 2025. sTeve(): sTeve - sophisticated tool for efficient data validation and evaluation. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{manip} Luminescence/man/plot_RLum.Data.Spectrum.Rd0000644000176200001440000002521314762561642020334 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_RLum.Data.Spectrum.R \name{plot_RLum.Data.Spectrum} \alias{plot_RLum.Data.Spectrum} \title{Plot function for an RLum.Data.Spectrum S4 class object} \usage{ plot_RLum.Data.Spectrum( object, par.local = TRUE, plot.type = "contour", optical.wavelength.colours = TRUE, bg.spectrum = NULL, bg.channels = NULL, bin.rows = 1, bin.cols = 1, norm = NULL, rug = TRUE, limit_counts = NULL, xaxis.energy = FALSE, legend.text, plot = TRUE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Data.Spectrum} or \link{matrix} (\strong{required}): S4 object of class \code{RLum.Data.Spectrum} or a \code{matrix} containing count values of the spectrum.\cr Please note that in case of a matrix row names and col names are set automatically if not provided.} \item{par.local}{\link{logical} (\emph{with default}): use local graphical parameters for plotting, e.g. the plot is shown in one column and one row. If \code{par.local = FALSE} global parameters are inherited.} \item{plot.type}{\link{character} (\emph{with default}): for a 3D-plot use \code{persp} or \code{interactive}; for a 2D-plot you can use \code{image}, \code{contour}, \code{single} or \code{multiple.lines} (along the time or temperature axis) or \code{transect} (along the wavelength axis)} \item{optical.wavelength.colours}{\link{logical} (\emph{with default}): use optical wavelength colour palette. Note: For this, the spectrum range is limited: \code{c(350,750)}. Own colours can be set with the argument \code{col}. If you provide already binned spectra, the colour assignment is likely to be wrong, since the colour gradients are calculated using the bin number.} \item{bg.spectrum}{\linkS4class{RLum.Data.Spectrum} or \link{matrix} (\emph{optional}): Spectrum used for the background subtraction. By definition, the background spectrum should have been measured with the same setting as the signal spectrum. If a spectrum is provided, the argument \code{bg.channels} works only on the provided background spectrum.} \item{bg.channels}{\link{vector} (\emph{optional}): defines the channels used for background subtraction. If a vector is provided, the mean of the channels is used for subtraction. If a spectrum is provided via \code{bg.spectrum}, this argument only works on the background spectrum. \strong{Note:} Background subtraction is applied prior to channel binning} \item{bin.rows}{\link{integer} (\emph{with default}): allow summing-up wavelength channels (horizontal binning), e.g. \code{bin.rows = 2} two channels are summed up. Binning is applied after the background subtraction.} \item{bin.cols}{\link{integer} (\emph{with default}): allow summing-up channel counts (vertical binning) for plotting, e.g. \code{bin.cols = 2} two channels are summed up. Binning is applied after the background subtraction.} \item{norm}{\link{character} (\emph{optional}): Normalise data to the maximum (\code{norm = "max"}) or minimum (\code{norm = "min"}) count values. The normalisation is applied after the binning.} \item{rug}{\link{logical} (\emph{with default}): enable/disable colour rug. Currently only implemented for plot type \code{multiple.lines} and \code{single}} \item{limit_counts}{\link{numeric} (\emph{optional}): value to limit all count values to this value, i.e. all count values above this threshold will be replaced by this threshold. This is helpful especially in case of TL-spectra.} \item{xaxis.energy}{\link{logical} (\emph{with default}): enable/disable using energy instead of wavelength on the x-axis. Function \link{convert_Wavelength2Energy} is used to perform the conversion. \strong{Note:} Besides being used in setting the axis, with this option the the spectrum is recalculated in terms of intensity, see details.} \item{legend.text}{\link{character} (\emph{with default}): possibility to provide own legend text. This argument is only considered for plot types providing a legend, e.g. \code{plot.type="transect"}} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output. If the plot output is disabled, the \link{matrix} used for the plotting and the calculated colour values (as attributes) are returned. This way, the (binned, transformed etc.) output can be used in other functions and packages, such as plotting with the package \code{'plot3D'}} \item{...}{further arguments and graphical parameters that will be passed to the \code{plot} function.} } \value{ Returns a plot and the transformed \code{matrix} used for plotting with some useful attributes such as the \code{colour} and \code{pmat} (the transpose matrix from \link[graphics:persp]{graphics::persp}) } \description{ The function provides a standardised plot output for spectrum data of an \linkS4class{RLum.Data.Spectrum} class object. The purpose of this function is to provide easy and straight-forward spectra plotting, not provide a full customised access to all plot parameters. If this is wanted, standard R plot functionality should be used instead. \strong{Matrix structure} \cr (cf. \linkS4class{RLum.Data.Spectrum}) \itemize{ \item \code{rows} (x-values): wavelengths/channels (\code{xlim}, \code{xlab}) \item \code{columns} (y-values): time/temperature (\code{ylim}, \code{ylab}) \item \code{cells} (z-values): count values (\code{zlim}, \code{zlab}) } \emph{Note: This nomenclature is valid for all plot types of this function!} \strong{Nomenclature for value limiting} \itemize{ \item \code{xlim}: Limits values along the wavelength axis \item \code{ylim}: Limits values along the time/temperature axis \item \code{zlim}: Limits values along the count value axis } \strong{Details on the plot functions} Spectrum is visualised as 3D or 2D plot. Both plot types are based on internal R plot functions. \strong{\code{plot.type = "persp"}} Arguments that will be passed to \link[graphics:persp]{graphics::persp}: \itemize{ \item \code{shade}: default is \code{0.4} \item \code{phi}: default is \code{15} \item \code{theta}: default is \code{-30} \item \code{lphi}: default is \code{15} \item \code{ltheta}: default is \code{-30} \item \code{expand}: default is \code{1} \item \code{axes}: default is \code{TRUE} \item \code{box}: default is \code{TRUE}; accepts \code{"alternate"} for a custom plot design \item \code{ticktype}: default is \code{detailed}, \code{r}: default is \code{10} } \strong{Note:} Further parameters can be adjusted via \code{par}. For example to set the background transparent and reduce the thickness of the lines use: \code{par(bg = NA, lwd = 0.7)} before the function call. \strong{\code{plot.type = "single"}} Per frame a single curve is returned. Frames are time or temperature steps. -\code{frames}: pick the frames to be plotted (depends on the binning!). Check without this setting before plotting. \strong{\code{plot.type = "multiple.lines"}} All frames plotted in one frame. -\code{frames}: pick the frames to be plotted (depends on the binning!). Check without this setting before plotting. \strong{\code{plot.type = "image"} or \code{plot.type = "contour"}} These plot types use the R functions \link[graphics:image]{graphics::image} or \link[graphics:contour]{graphics::contour}. The advantage is that many plots can be arranged conveniently using standard R plot functionality. If \code{plot.type = "image"} a contour is added by default, which can be disabled using the argument \code{contour = FALSE} to add own contour lines of choice. \strong{\code{plot.type = "transect"}} Depending on the selected wavelength/channel range a transect over the time/temperature (y-axis) will be plotted along the wavelength/channels (x-axis). If the range contains more than one channel, values (z-values) are summed up. To select a transect use the \code{xlim} argument, e.g. \code{xlim = c(300,310)} plot along the summed up count values of channel 300 to 310. \strong{Further arguments that will be passed (depending on the plot type)} \code{xlab}, \code{ylab}, \code{zlab}, \code{xlim}, \code{ylim}, \code{box}, \code{zlim}, \code{main}, \code{mtext}, \code{pch}, \code{type} (\code{"single"}, \code{"multiple.lines"}, \code{"interactive"}), \code{col}, \code{border}, \code{lwd}, \code{bty}, \code{showscale} (\code{"interactive"}, \code{"image"}) \code{contour}, \code{contour.col} (\code{"image"}) } \note{ Not all additional arguments (\code{...}) will be passed similarly! } \section{Function version}{ 0.6.9 } \examples{ ##load example data data(ExampleData.XSYG, envir = environment()) ##(1)plot simple spectrum (2D) - image plot_RLum.Data.Spectrum( TL.Spectrum, plot.type="image", xlim = c(310,750), ylim = c(0,300), bin.rows=10, bin.cols = 1) ##(2) plot spectrum (3D) plot_RLum.Data.Spectrum( TL.Spectrum, plot.type="persp", xlim = c(310,750), ylim = c(0,100), bin.rows=10, bin.cols = 1) ##(3) plot spectrum on energy axis ##please note the background subtraction plot_RLum.Data.Spectrum(TL.Spectrum, plot.type="persp", ylim = c(0,200), bin.rows=10, bg.channels = 10, bin.cols = 1, xaxis.energy = TRUE) ##(4) plot multiple lines (2D) - multiple.lines (with ylim) plot_RLum.Data.Spectrum( TL.Spectrum, plot.type="multiple.lines", xlim = c(310,750), ylim = c(0,100), bin.rows=10, bin.cols = 1) \dontrun{ ##(4) interactive plot using the package plotly ("surface") plot_RLum.Data.Spectrum(TL.Spectrum, plot.type="interactive", xlim = c(310,750), ylim = c(0,300), bin.rows=10, bin.cols = 1) ##(5) interactive plot using the package plotly ("contour") plot_RLum.Data.Spectrum(TL.Spectrum, plot.type="interactive", xlim = c(310,750), ylim = c(0,300), bin.rows=10, bin.cols = 1, type = "contour", showscale = TRUE) ##(6) interactive plot using the package plotly ("heatmap") plot_RLum.Data.Spectrum(TL.Spectrum, plot.type="interactive", xlim = c(310,750), ylim = c(0,300), bin.rows=10, bin.cols = 1, type = "heatmap", showscale = TRUE) } } \seealso{ \linkS4class{RLum.Data.Spectrum}, \link{convert_Wavelength2Energy}, \link{plot}, \link{plot_RLum}, \link[graphics:persp]{graphics::persp}, \link[plotly:plot_ly]{plotly::plot_ly}, \link[graphics:contour]{graphics::contour}, \link[graphics:image]{graphics::image} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. plot_RLum.Data.Spectrum(): Plot function for an RLum.Data.Spectrum S4 class object. Function version 0.6.9. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{aplot} Luminescence/man/analyse_FadingMeasurement.Rd0000644000176200001440000002412614762561642021062 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/analyse_FadingMeasurement.R \name{analyse_FadingMeasurement} \alias{analyse_FadingMeasurement} \title{Analyse fading measurements and returns the fading rate per decade (g-value)} \usage{ analyse_FadingMeasurement( object, structure = c("Lx", "Tx"), signal.integral, background.integral, t_star = "half", n.MC = 100, verbose = TRUE, plot = TRUE, plot_singlePanels = FALSE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Analysis} (\strong{required}): input object with the measurement data. Alternatively, a \link{list} containing \linkS4class{RLum.Analysis} objects or a \link{data.frame} with three columns (x = LxTx, y = LxTx error, z = time since irradiation) can be provided. Can also be a wide table, i.e. a \link{data.frame} with a number of columns divisible by 3 and where each triplet has the before mentioned column structure. \strong{Please note: The input object should solely consists of the curve needed for the data analysis, i.e. only IRSL curves representing Lx (and Tx). If the object originated from an XSYG file, also the irradiation steps must be preserved in the input object.} If data from multiple aliquots are provided please \strong{see the details below} with regard to Lx/Tx normalisation. \strong{The function assumes that all your measurements are related to one (comparable) sample. If you have to treat independent samples, you have use this function in a loop.}} \item{structure}{\link{character} (\emph{with default}): sets the structure of the measurement data. Allowed are \code{'Lx'} or \code{c('Lx','Tx')}. Other input is ignored} \item{signal.integral}{\link{vector} (\strong{required}): vector with channels for the signal integral (e.g., \code{c(1:10)}). Not required if a \code{data.frame} with \code{LxTx} values is provided.} \item{background.integral}{\link{vector} (\strong{required}): vector with channels for the background integral (e.g., \code{c(90:100)}). Not required if a \code{data.frame} with \code{LxTx} values is provided.} \item{t_star}{\link{character} (\emph{with default}): method for calculating the time elapsed since irradiation if input is \strong{not} a \code{data.frame}. Options are: \code{'half'} (the default), \verb{'half_complex}, which uses the long equation in Auclair et al. 2003, and and \code{'end'}, which takes the time between irradiation and the measurement step. Alternatively, \code{t_star} can be a function with one parameter which works on \code{t1}. For more information see details. \cr \emph{\code{t_star} has no effect if the input is a \link{data.frame}, because this input comes without irradiation times.}} \item{n.MC}{\link{integer} (\emph{with default}): number for Monte Carlo runs for the error estimation.} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{plot_singlePanels}{\link{logical} (\emph{with default}) or \link{numeric} (\emph{optional}): enable/disable single plot mode, i.e. one plot window per plot. Alternatively a vector specifying the plot to be drawn, e.g., \code{plot_singlePanels = c(3,4)} draws only the last two plots} \item{...}{(\emph{optional}) further arguments that can be passed to internally used functions. Supported arguments: \code{xlab}, \code{log}, \code{mtext}, \code{plot.trend} (enable/disable trend blue line), and \code{xlim} for the two first curve plots, and \code{ylim} for the fading curve plot. For further plot customization please use the numerical output of the functions for own plots.} } \value{ An \linkS4class{RLum.Results} object is returned: Slot: \strong{@data} \tabular{lll}{ \strong{OBJECT} \tab \strong{TYPE} \tab \strong{COMMENT}\cr \code{fading_results} \tab \code{data.frame} \tab results of the fading measurement in a table \cr \code{fit} \tab \code{lm} \tab object returned by the used linear fitting function \link[stats:lm]{stats::lm}\cr \code{rho_prime} \tab \code{data.frame} \tab results of rho' estimation after Kars et al. (2008) \cr \code{LxTx_table} \tab \code{data.frame} \tab Lx/Tx table, if curve data had been provided \cr \code{irr.times} \tab \code{integer} \tab vector with the irradiation times in seconds \cr } Slot: \strong{@info} \tabular{lll}{ \strong{OBJECT} \tab \code{TYPE} \tab \code{COMMENT}\cr \code{call} \tab \code{call} \tab the original function call\cr } } \description{ The function analyses fading measurements and returns a fading rate including an error estimation. The function is not limited to standard fading measurements, as can be seen, e.g., Huntley and Lamothe (2001). Additionally, the density of recombination centres (rho') is estimated after Kars et al. (2008). } \details{ All provided output corresponds to the \eqn{tc} value obtained by this analysis. Additionally in the output object the g-value normalised to 2-days is provided. The output of this function can be passed to the function \link{calc_FadingCorr}. \strong{Fitting and error estimation} For the fitting the function \link[stats:lm]{stats::lm} is used without applying weights. For the error estimation all input values, except \code{tc}, as the precision can be considered as sufficiently high enough with regard to the underlying problem, are sampled assuming a normal distribution for each value with the value as the mean and the provided uncertainty as standard deviation. \strong{The options for \code{t_star}} \itemize{ \item \code{t_star = "half"} (the default) The calculation follows the simplified version in Auclair et al. (2003), which reads \deqn{t_{star} := t_1 + (t_2 - t_1)/2} \item \code{t_star = "half_complex"} This option applies the complex function shown in Auclair et al. (2003), which is derived from Aitken (1985) appendix F, equations 9 and 11. It reads \deqn{t_{star} = t0 * 10^[(t_2 log(t_2/t_0) - t_1 log(t_1/t_0) - 0.43(t_2 - t_1))/(t_2 - t_1)]} where 0.43 = \eqn{1/ln(10)}. t0, which is an arbitrary constant, is set to 1. Please note that the equation in Auclair et al. (2003) is incorrect insofar that it reads \eqn{10exp(...)}, where the base should be 10 and not the Euler's number. Here we use the correct version (base 10). \item \code{t_star = "end"} This option uses the simplest possible form for \code{t_star} which is the time since irradiation without taking into account any addition parameter and it equals t1 in Auclair et al. (2003) \item \verb{t_star = } This last option allows you to provide an R function object that works on t1 and gives you all possible freedom. For instance, you may want to define the following function \code{fun <- function(x) {x^2}}, this would square all values of t1, because internally it calls \code{fun(t1)}. The name of the function does not matter. } \strong{Density of recombination centres} The density of recombination centres, expressed by the dimensionless variable rho', is estimated by fitting equation 5 in Kars et al. (2008) to the data. For the fitting the function \link[stats:nls]{stats::nls} is used without applying weights. For the error estimation the same procedure as for the g-value is applied (see above). \strong{Multiple aliquots & Lx/Tx normalisation} Be aware that this function will always normalise all \eqn{\frac{L_x}{T_x}} values by the \eqn{\frac{L_x}{T_x}} value of the prompt measurement of the first aliquot. This implicitly assumes that there are no systematic inter-aliquot variations in the \eqn{\frac{L_x}{T_x}} values. If deemed necessary to normalise the \eqn{\frac{L_x}{T_x}} values of each aliquot by its individual prompt measurement please do so \strong{before} running \link{analyse_FadingMeasurement} and provide the already normalised values for \code{object} instead. \strong{Shine-down curve plots} Please note that the shine-down curve plots are for information only. As such not all pause steps are plotted to avoid graphically overloaded plots. However, \emph{all} pause times are taken into consideration for the analysis. } \section{Function version}{ 0.1.23 } \examples{ ## load example data (sample UNIL/NB123, see ?ExampleData.Fading) data("ExampleData.Fading", envir = environment()) ##(1) get fading measurement data (here a three column data.frame) fading_data <- ExampleData.Fading$fading.data$IR50 ##(2) run analysis g_value <- analyse_FadingMeasurement( fading_data, plot = TRUE, verbose = TRUE, n.MC = 10) ##(3) this can be further used in the function ## to correct the age according to Huntley & Lamothe, 2001 results <- calc_FadingCorr( age.faded = c(100,2), g_value = g_value, n.MC = 10) } \section{How to cite}{ Kreutzer, S., Burow, C., 2025. analyse_FadingMeasurement(): Analyse fading measurements and returns the fading rate per decade (g-value). Function version 0.1.23. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Aitken, M.J., 1985. Thermoluminescence dating, Studies in archaeological science. Academic Press, London, Orlando. Auclair, M., Lamothe, M., Huot, S., 2003. Measurement of anomalous fading for feldspar IRSL using SAR. Radiation Measurements 37, 487-492. \doi{10.1016/S1350-4487(03)00018-0} Huntley, D.J., Lamothe, M., 2001. Ubiquity of anomalous fading in K-feldspars and the measurement and correction for it in optical dating. Canadian Journal of Earth Sciences 38, 1093-1106. doi: \code{10.1139/cjes-38-7-1093} Kars, R.H., Wallinga, J., Cohen, K.M., 2008. A new approach towards anomalous fading correction for feldspar IRSL dating-tests on samples in field saturation. Radiation Measurements 43, 786-790. \doi{10.1016/j.radmeas.2008.01.021} } \seealso{ \link{calc_OSLLxTxRatio}, \link{read_BIN2R}, \link{read_XSYG2R}, \link{extract_IrradiationTimes}, \link{calc_FadingCorr} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) \cr Christoph Burow, University of Cologne (Germany) , RLum Developer Team} \keyword{datagen} Luminescence/man/convert_CW2pPMi.Rd0000644000176200001440000001324414762561642016670 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/convert_CW2pPMi.R \name{convert_CW2pPMi} \alias{convert_CW2pPMi} \alias{CW2pPMi} \title{Transform a CW-OSL curve into a pPM-OSL curve via interpolation under parabolic modulation conditions} \usage{ convert_CW2pPMi(values, P) CW2pPMi(values, P) } \arguments{ \item{values}{\linkS4class{RLum.Data.Curve} or \link{data.frame} (\strong{required}): \linkS4class{RLum.Data.Curve} or \code{data.frame} with measured curve data of type stimulation time (t) (\code{values[,1]}) and measured counts (cts) (\code{values[,2]})} \item{P}{\link{vector} (\emph{optional}): stimulation period in seconds. If no value is given, the optimal value is estimated automatically (see details). Greater values of P produce more points in the rising tail of the curve.} } \value{ The function returns the same data type as the input data type with the transformed curve values. \code{RLum.Data.Curve} \tabular{rl}{ \verb{$CW2pPMi.x.t} \tab: transformed time values \cr \verb{$CW2pPMi.method} \tab: used method for the production of the new data points } \code{data.frame} \tabular{rl}{ \verb{$x} \tab: time\cr \verb{$y.t} \tab: transformed count values\cr \verb{$x.t} \tab: transformed time values \cr \verb{$method} \tab: used method for the production of the new data points } } \description{ Transforms a conventionally measured continuous-wave (CW) OSL-curve into a pseudo parabolic modulated (pPM) curve under parabolic modulation conditions using the interpolation procedure described by Bos & Wallinga (2012). } \details{ The complete procedure of the transformation is given in Bos & Wallinga (2012). The input \code{data.frame} consists of two columns: time (t) and count values (CW(t)) \strong{Nomenclature} \itemize{ \item P = stimulation time (s) \item 1/P = stimulation rate (1/s) } \strong{Internal transformation steps} (1) log(CW-OSL) values (2) Calculate t' which is the transformed time: \deqn{t' = (1/3)*(1/P^2)t^3} (3) Interpolate CW(t'), i.e. use the log(CW(t)) to obtain the count values for the transformed time (t'). Values beyond \code{min(t)} and \code{max(t)} produce \code{NA} values. (4) Select all values for t' < \code{min(t)}, i.e. values beyond the time resolution of t. Select the first two values of the transformed data set which contain no \code{NA} values and use these values for a linear fit using \link{lm}. (5) Extrapolate values for t' < \code{min(t)} based on the previously obtained fit parameters. The extrapolation is limited to two values. Other values at the beginning of the transformed curve are set to 0. (6) Transform values using \deqn{pLM(t) = t^2/P^2*CW(t')} (7) Combine all values and truncate all values for t' > \code{max(t)} \strong{NOTE:} The number of values for t' < \code{min(t)} depends on the stimulation period \code{P}. To avoid the production of too many artificial data at the raising tail of the determined pPM curve, it is recommended to use the automatic estimation routine for \code{P}, i.e. provide no value for \code{P}. } \note{ According to Bos & Wallinga (2012), the number of extrapolated points should be limited to avoid artificial intensity data. If \code{P} is provided manually, not more than two points are extrapolated. } \section{Function version}{ 0.2.2 } \examples{ ##(1) ##load CW-OSL curve data data(ExampleData.CW_OSL_Curve, envir = environment()) ##transform values values.transformed <- convert_CW2pPMi(ExampleData.CW_OSL_Curve) ##plot plot(values.transformed$x,values.transformed$y.t, log = "x") ##(2) - produce Fig. 4 from Bos & Wallinga (2012) ##load data data(ExampleData.CW_OSL_Curve, envir = environment()) values <- CW_Curve.BosWallinga2012 ##open plot area plot(NA, NA, xlim = c(0.001,10), ylim = c(0,8000), ylab = "pseudo OSL (cts/0.01 s)", xlab = "t [s]", log = "x", main = "Fig. 4 - Bos & Wallinga (2012)") values.t <- convert_CW2pLMi(values, P = 1/20) lines(values[1:length(values.t[, 1]), 1], values.t[, 2], col = "red",lwd = 1.3) text(0.03,4500,"LM", col = "red", cex = .8) values.t <- convert_CW2pHMi(values, delta = 40) lines(values[1:length(values.t[, 1]), 1], values.t[, 2], col = "black", lwd = 1.3) text(0.005,3000,"HM", cex = .8) values.t <- convert_CW2pPMi(values, P = 1/10) lines(values[1:length(values.t[, 1]), 1], values.t[, 2], col = "blue", lwd = 1.3) text(0.5,6500,"PM", col = "blue", cex = .8) } \section{How to cite}{ Kreutzer, S., 2025. convert_CW2pPMi(): Transform a CW-OSL curve into a pPM-OSL curve via interpolation under parabolic modulation conditions. Function version 0.2.2. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Bos, A.J.J. & Wallinga, J., 2012. How to visualize quartz OSL signal components. Radiation Measurements, 47, 752-758. \strong{Further Reading} Bulur, E., 1996. An Alternative Technique For Optically Stimulated Luminescence (OSL) Experiment. Radiation Measurements, 26, 701-709. Bulur, E., 2000. A simple transformation for converting CW-OSL curves to LM-OSL curves. Radiation Measurements, 32, 141-145. } \seealso{ \link{convert_CW2pLM}, \link{convert_CW2pLMi}, \link{convert_CW2pHMi}, \link{fit_LMCurve}, \linkS4class{RLum.Data.Curve} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) Based on comments and suggestions from:\cr Adrie J.J. Bos, Delft University of Technology, The Netherlands , RLum Developer Team} \keyword{manip} Luminescence/man/merge_RLum.Results.Rd0000644000176200001440000000272614762561642017450 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/merge_RLum.Results.R \name{merge_RLum.Results} \alias{merge_RLum.Results} \title{Merge function for RLum.Results S4-class objects} \usage{ merge_RLum.Results(objects) } \arguments{ \item{objects}{\link{list} (\strong{required}): a list of \linkS4class{RLum.Results} objects} } \description{ Function merges objects of class \linkS4class{RLum.Results}. The slots in the objects are combined depending on the object type, e.g., for \link{data.frame} and \link{matrix} rows are appended. } \details{ Elements are appended where possible and attributes are preserved if not of similar name as the default attributes of, e.g., a \link{data.frame} } \note{ The \code{originator} is taken from the first element and not reset to \code{merge_RLum} } \section{Function version}{ 0.2.1 } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. merge_RLum.Results(): Merge function for RLum.Results S4-class objects. Function version 0.2.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{internal} Luminescence/man/read_HeliosOSL2R.Rd0000644000176200001440000000325614762561642016751 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/read_HeliosOSL2R.R \name{read_HeliosOSL2R} \alias{read_HeliosOSL2R} \title{Import Luminescence Data from Helios Luminescence Reader} \usage{ read_HeliosOSL2R(file, verbose = TRUE, ...) } \arguments{ \item{file}{\link{character} (\strong{required}): path to file to be imported. Can be a \link{list} for further processing} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{...}{not in use, for compatibility reasons only} } \value{ \linkS4class{RLum.Analysis} object } \description{ Straightforward import of files with the ending \code{.osl} produced by the zero rad Helios luminescence reader and conversion to \linkS4class{RLum.Analysis} objects. } \note{ Thanks to Krzysztof Maternicki for providing example data. } \section{Function version}{ 0.1.0 } \examples{ file <- system.file("extdata/HeliosOSL_Example.osl", package = "Luminescence") read_HeliosOSL2R(file) } \seealso{ \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Analysis} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. read_HeliosOSL2R(): Import Luminescence Data from Helios Luminescence Reader. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{IO} Luminescence/man/calc_WodaFuchs2008.Rd0000644000176200001440000000540414762561642017125 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_WodaFuchs2008.R \name{calc_WodaFuchs2008} \alias{calc_WodaFuchs2008} \title{Obtain the equivalent dose using the approach by Woda and Fuchs 2008} \usage{ calc_WodaFuchs2008(data, breaks = NULL, plot = TRUE, ...) } \arguments{ \item{data}{\link{data.frame} \link{vector}, or \linkS4class{RLum.Results} object (\strong{required}): for \link{data.frame}: either two columns: De (\code{values[,1]}) and De error (\code{values[,2]}), or one: De (\code{values[,1]}). If a numeric vector or a single-column data frame is provided, De error is set to \code{NA}. For plotting multiple data sets, these must be provided as \code{list} (e.g. \code{list(dataset1, dataset2)}).} \item{breaks}{\link{numeric}: Either number or locations of breaks. See \verb{[hist]} for details. If missing, the number of breaks will be estimated based on the bin width (as function of median error).} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{Further plot arguments passed to the function.} } \description{ The function generates a histogram-like reorganisation of the data, to assess counts per bin. The log-transformed counts per bin are used to calculate the second derivative of the data (i.e., the curvature of the curve) and to find the central value of the bin hosting the distribution maximum. A normal distribution model is fitted to the counts per bin data to estimate the dose distribution parameters. The uncertainty of the model is estimated based on all input equivalent doses smaller that of the modelled central value. } \section{Function version}{ 0.2.0 } \examples{ ## read example data set data(ExampleData.DeValues, envir = environment()) results <- calc_WodaFuchs2008( data = ExampleData.DeValues$CA1, xlab = expression(paste(D[e], " [Gy]")) ) } \section{How to cite}{ Kreutzer, S., Dietze, M., 2025. calc_WodaFuchs2008(): Obtain the equivalent dose using the approach by Woda and Fuchs 2008. Function version 0.2.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Woda, C., Fuchs, M., 2008. On the applicability of the leading edge method to obtain equivalent doses in OSL dating and dosimetry. Radiation Measurements 43, 26-37. } \seealso{ \link{calc_FuchsLang2001}, \link{calc_CentralDose} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany),\cr Michael Dietze, GFZ Potsdam (Germany) , RLum Developer Team} Luminescence/man/view.Rd0000644000176200001440000000223614762561642014720 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-generics.R \name{view} \alias{view} \title{Convenience data visualisation function} \usage{ view(object, ...) } \arguments{ \item{object}{(\strong{required}) object to view} \item{...}{further arguments passed to the specific class method} } \value{ \code{NULL} and opens the data viewer. } \description{ Invokes the \link[utils:View]{utils::View} function tailored to objects in the package. If started from RStudio, it uses the RStudio viewer. } \seealso{ \code{\link[utils:View]{utils::View()}} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. view(): Convenience data visualisation function. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{utilities} Luminescence/man/convert_RLum2Risoe.BINfileData.Rd0000644000176200001440000000430214762561642021506 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/convert_RLum2Risoe.BINfileData.R \name{convert_RLum2Risoe.BINfileData} \alias{convert_RLum2Risoe.BINfileData} \title{Converts RLum.Analysis and RLum.Data.Curve objects to RLum2Risoe.BINfileData objects} \usage{ convert_RLum2Risoe.BINfileData(object, keep.position.number = FALSE) } \arguments{ \item{object}{\linkS4class{RLum.Analysis} or \linkS4class{RLum.Data.Curve} (\strong{required}): input object to be converted} \item{keep.position.number}{\link{logical} (\emph{with default}): keeps the original position number or re-calculate the numbers to avoid doubling} } \value{ The function returns a \linkS4class{Risoe.BINfileData} object. } \description{ The functions converts \linkS4class{RLum.Analysis} and \linkS4class{RLum.Data.Curve} objects (or a \link{list} of such objects) to \linkS4class{Risoe.BINfileData} objects. The function intends to provide a minimum of compatibility between both formats. The created \linkS4class{RLum.Analysis} object can be later exported to a BIN-file using function \link{write_R2BIN}. } \note{ The conversion can be never perfect. The \code{RLum} objects may contain information which are not part of the \linkS4class{Risoe.BINfileData} definition. } \section{Function version}{ 0.1.4 } \examples{ ##simple conversion using the example dataset data(ExampleData.RLum.Analysis, envir = environment()) convert_RLum2Risoe.BINfileData(IRSAR.RF.Data) } \seealso{ \linkS4class{RLum.Analysis}, \linkS4class{RLum.Data.Curve}, \link{write_R2BIN} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. convert_RLum2Risoe.BINfileData(): Converts RLum.Analysis and RLum.Data.Curve objects to RLum2Risoe.BINfileData objects. Function version 0.1.4. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{IO} Luminescence/man/fit_LMCurve.Rd0000644000176200001440000002604414762561642016130 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/fit_LMCurve.R \name{fit_LMCurve} \alias{fit_LMCurve} \title{Non-linear Least Squares Fit for LM-OSL curves} \usage{ fit_LMCurve( values, values.bg, n.components = 3, start_values, input.dataType = "LM", fit.method = "port", sample_code = "", sample_ID = "", LED.power = 36, LED.wavelength = 470, fit.trace = FALSE, fit.advanced = FALSE, fit.calcError = FALSE, bg.subtraction = "polynomial", verbose = TRUE, plot = TRUE, plot.BG = FALSE, method_control = list(), ... ) } \arguments{ \item{values}{\linkS4class{RLum.Data.Curve} or \link{data.frame} (\strong{required}): x,y data of measured values (time and counts). See examples.} \item{values.bg}{\linkS4class{RLum.Data.Curve} or \link{data.frame} (\emph{optional}): x,y data of measured values (time and counts) for background subtraction.} \item{n.components}{\link{integer} (\emph{with default}): fixed number of components that are to be recognised during fitting (min = 1, max = 7).} \item{start_values}{\link{data.frame} (\emph{optional}): start parameters for \code{lm} and \code{xm} data for the fit. If no start values are given, an automatic start value estimation is attempted (see details).} \item{input.dataType}{\link{character} (\emph{with default}): alter the plot output depending on the input data: \code{"LM"} or \code{"pLM"} (pseudo-LM). See: \link{convert_CW2pLM}} \item{fit.method}{\link{character} (\emph{with default}): select fit method, allowed values: \code{'port'} and \code{'LM'}. \code{'port'} uses the 'port' routine from the function \link{nls} \code{'LM'} utilises the function \code{nlsLM} from the package \code{minpack.lm} and with that the Levenberg-Marquardt algorithm.} \item{sample_code}{\link{character} (\emph{optional}): sample code used for the plot and the optional output table (mtext).} \item{sample_ID}{\link{character} (\emph{optional}): additional identifier used as column header for the table output.} \item{LED.power}{\link{numeric} (\emph{with default}): LED power (max.) used for intensity ramping in mW/cm². \strong{Note:} This value is used for the calculation of the absolute photoionisation cross section.} \item{LED.wavelength}{\link{numeric} (\emph{with default}): LED wavelength in nm used for stimulation. \strong{Note:} This value is used for the calculation of the absolute photoionisation cross section.} \item{fit.trace}{\link{logical} (\emph{with default}): traces the fitting process on the terminal.} \item{fit.advanced}{\link{logical} (\emph{with default}): enables advanced fitting attempt for automatic start parameter recognition. Works only if no start parameters are provided. \strong{Note:} It may take a while and it is not compatible with \code{fit.method = "LM"}.} \item{fit.calcError}{\link{logical} (\emph{with default}): calculate 1-sigma error range of components using \link[stats:confint]{stats::confint}.} \item{bg.subtraction}{\link{character} (\emph{with default}): specifies method for background subtraction (\code{polynomial}, \code{linear}, \code{channel}, see Details). \strong{Note:} requires input for \code{values.bg}.} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{plot.BG}{\link{logical} (\emph{with default}): returns a plot of the background values with the fit used for the background subtraction.} \item{method_control}{\link{list} (\emph{optional}): options to control the output produced. Currently only the 'export.comp.contrib.matrix' (logical) option is supported, to enable/disable export of the component contribution matrix.} \item{...}{Further arguments that may be passed to the plot output, e.g. \code{xlab}, \code{xlab}, \code{main}, \code{log}.} } \value{ Various types of plots are returned. For details see above. Furthermore an \code{RLum.Results} object is returned with the following structure: \strong{\verb{@data:}} \code{.. $data} : \link{data.frame} with fitting results\cr \code{.. $fit} : nls (\link{nls} object)\cr \code{.. $component_matrix} : \link{matrix} with numerical xy-values of the single fitted components with the resolution of the input data \code{.. $component.contribution.matrix} : \link{list} component distribution matrix (produced only if \code{method_control$export.comp.contrib.matrix = TRUE}) \strong{\verb{info:}} \code{.. $call} : \link{call} the original function call Matrix structure for the distribution matrix: Column 1 and 2: time and \code{rev(time)} values\cr Additional columns are used for the components, two for each component, containing I0 and n0. The last columns \code{cont.} provide information on the relative component contribution for each time interval including the row sum for this values. } \description{ The function determines weighted non-linear least-squares estimates of the component parameters of an LM-OSL curve (Bulur 1996) for a given number of components and returns various component parameters. The fitting procedure uses the function \link{nls} with the \code{port} algorithm. } \details{ \strong{Fitting function} The function for the fitting has the general form: \deqn{y = (exp(0.5)*Im_1*x/xm_1)*exp(-x^2/(2*xm_1^2)) + ,\ldots, + exp(0.5)*Im_i*x/xm_i)*exp(-x^2/(2*xm_i^2))} where \eqn{1 < i < 8} This function and the equations for the conversion to b (detrapping probability) and n0 (proportional to initially trapped charge) have been taken from Kitis et al. (2008): \deqn{xm_i=\sqrt{max(t)/b_i}} \deqn{Im_i=exp(-0.5)n0/xm_i} \strong{Background subtraction} Three methods for background subtraction are provided for a given background signal (\code{values.bg}). \itemize{ \item \code{polynomial}: default method. A polynomial function is fitted using \link{glm} and the resulting function is used for background subtraction: \deqn{y = a*x^4 + b*x^3 + c*x^2 + d*x + e} \item \code{linear}: a linear function is fitted using \link{glm} and the resulting function is used for background subtraction: \deqn{y = a*x + b} \item \code{channel}: the measured background signal is subtracted channel wise from the measured signal. } \strong{Start values} The choice of the initial parameters for the \code{nls}-fitting is a crucial point and the fitting procedure may mainly fail due to ill chosen start parameters. Here, three options are provided: \strong{(a)} If no start values (\code{start_values}) are provided by the user, a cheap guess is made by using the detrapping values found by Jain et al. (2003) for quartz for a maximum of 7 components. Based on these values, the pseudo start parameters \code{xm} and \code{Im} are recalculated for the given data set. In all cases, the fitting starts with the ultra-fast component and (depending on \code{n.components}) steps through the following values. If no fit could be achieved, an error plot (for \code{plot = TRUE}) with the pseudo curve (based on the pseudo start parameters) is provided. This may give the opportunity to identify appropriate start parameters visually. \strong{(b)} If start values are provided, the function works like a simple \link{nls} fitting approach. \strong{(c)} If no start parameters are provided and the option \code{fit.advanced = TRUE} is chosen, an advanced start parameter estimation is applied using a stochastic attempt. Therefore, the recalculated start parameters \strong{(a)} are used to construct a normal distribution. The start parameters are then sampled randomly from this distribution. A maximum of 100 attempts will be made. \strong{Note:} This process may be time consuming. \strong{Goodness of fit} The goodness of the fit is given by a pseudo-R² value (pseudo coefficient of determination). According to Lave (1970), the value is calculated as: \deqn{pseudoR^2 = 1 - RSS/TSS} where \eqn{RSS = Residual~Sum~of~Squares} and \eqn{TSS = Total~Sum~of~Squares} \strong{Error of fitted component parameters} The 1-sigma error for the components is calculated using the function \link[stats:confint]{stats::confint}. Due to considerable calculation time, this option is deactivated by default. In addition, the error for the components can be estimated by using internal R functions like \link{summary}. See the \link{nls} help page for more information. \emph{For more details on the nonlinear regression in R, see Ritz & Streibig (2008).} } \note{ The pseudo-R² may not be the best parameter to describe the goodness of the fit. The trade off between the \code{n.components} and the pseudo-R² value currently remains unconsidered. The function \strong{does not} ensure that the fitting procedure has reached a global minimum rather than a local minimum! In any case of doubt, the use of manual start values is highly recommended. } \section{Function version}{ 0.3.5 } \examples{ ##(1) fit LM data without background subtraction data(ExampleData.FittingLM, envir = environment()) fit_LMCurve(values = values.curve, n.components = 3, log = "x") ##(2) fit LM data with background subtraction and export as JPEG ## -alter file path for your preferred system ##jpeg(file = "~/Desktop/Fit_Output\\%03d.jpg", quality = 100, ## height = 3000, width = 3000, res = 300) data(ExampleData.FittingLM, envir = environment()) fit_LMCurve(values = values.curve, values.bg = values.curveBG, n.components = 2, log = "x", plot.BG = TRUE) ##dev.off() ##(3) fit LM data with manual start parameters data(ExampleData.FittingLM, envir = environment()) fit_LMCurve(values = values.curve, values.bg = values.curveBG, n.components = 3, log = "x", start_values = data.frame(Im = c(170,25,400), xm = c(56,200,1500))) } \section{How to cite}{ Kreutzer, S., 2025. fit_LMCurve(): Non-linear Least Squares Fit for LM-OSL curves. Function version 0.3.5. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Bulur, E., 1996. An Alternative Technique For Optically Stimulated Luminescence (OSL) Experiment. Radiation Measurements, 26, 5, 701-709. Jain, M., Murray, A.S., Boetter-Jensen, L., 2003. Characterisation of blue-light stimulated luminescence components in different quartz samples: implications for dose measurement. Radiation Measurements, 37 (4-5), 441-449. Kitis, G. & Pagonis, V., 2008. Computerized curve deconvolution analysis for LM-OSL. Radiation Measurements, 43, 737-741. Lave, C.A.T., 1970. The Demand for Urban Mass Transportation. The Review of Economics and Statistics, 52 (3), 320-323. Ritz, C. & Streibig, J.C., 2008. Nonlinear Regression with R. R. Gentleman, K. Hornik, & G. Parmigiani, eds., Springer, p. 150. } \seealso{ \link{fit_CWCurve}, \link{plot}, \link{nls}, \link[minpack.lm:nlsLM]{minpack.lm::nlsLM}, \link{get_RLum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{dplot} \keyword{models} Luminescence/man/import_Data.Rd0000644000176200001440000000416514762561642016214 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/import_Data.R \name{import_Data} \alias{import_Data} \title{Import Luminescence Data into R} \usage{ import_Data(file, ..., fastForward = TRUE, verbose = FALSE) } \arguments{ \item{file}{\link{character} (\strong{required}): file to be imported, can be a \link{list} or a \link{character} vector} \item{...}{arguments to be further passed down to supported functions (please check the functions to determine the correct arguments)} \item{fastForward}{\link{logical} (\emph{with default}): option to create \linkS4class{RLum} objects during import or a \link{list} of such objects} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} } \value{ Always returns a \link{list}; empty or filled with \linkS4class{RLum.Analysis} objects } \description{ Convenience wrapper function to provide a quicker and more standardised way of reading data into R by looping through all in the package available data import functions starting with \code{read_}. Import data types can be mixed. } \section{Function version}{ 0.1.5 } \examples{ ## import BINX/BIN file <- system.file("extdata/BINfile_V8.binx", package = "Luminescence") temp <- import_Data(file) ## RF data file <- system.file("extdata", "RF_file.rf", package = "Luminescence") temp <- import_Data(file) } \seealso{ \link{read_HeliosOSL2R}, \link{read_BIN2R}, \link{read_Daybreak2R}, \link{read_RF2R}, \link{read_SPE2R}, \link{read_PSL2R}, \link{read_XSYG2R}, \link{read_TIFF2R} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. import_Data(): Import Luminescence Data into R. Function version 0.1.5. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{datagen} Luminescence/man/convert_PSL2Risoe.BINfileData.Rd0000644000176200001440000000416414762561642021273 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/convert_PSL2Risoe.BINfileData.R \name{convert_PSL2Risoe.BINfileData} \alias{convert_PSL2Risoe.BINfileData} \title{Convert portable OSL data to a Risoe.BINfileData object} \usage{ convert_PSL2Risoe.BINfileData(object, ...) } \arguments{ \item{object}{\linkS4class{RLum.Analysis} (\strong{required}): \code{RLum.Analysis} object produced by \link{read_PSL2R}} \item{...}{currently not used.} } \value{ Returns an S4 \linkS4class{Risoe.BINfileData} object that can be used to write a BIN file using \link{write_R2BIN}. } \description{ Converts an \code{RLum.Analysis} object produced by the function \code{read_PSL2R()} to a \code{Risoe.BINfileData} object \strong{(BETA)}. This function converts an \linkS4class{RLum.Analysis} object that was produced by the \link{read_PSL2R} function to a \linkS4class{Risoe.BINfileData}. The \code{Risoe.BINfileData} can be used to write a Risoe BIN file via \link{write_R2BIN}. } \section{Function version}{ 0.0.1 } \examples{ # (1) load and plot example data set data("ExampleData.portableOSL", envir = environment()) plot_RLum(ExampleData.portableOSL) # (2) merge all RLum.Analysis objects into one merged <- merge_RLum(ExampleData.portableOSL) merged # (3) convert to RisoeBINfile object bin <- convert_PSL2Risoe.BINfileData(merged) bin # (4) write Risoe BIN file \dontrun{ write_R2BIN(bin, "~/portableOSL.binx") } } \seealso{ \linkS4class{RLum.Analysis}, \linkS4class{RLum.Data.Curve}, \linkS4class{Risoe.BINfileData} } \author{ Christoph Burow, University of Cologne (Germany) , RLum Developer Team} \section{How to cite}{ Burow, C., 2025. convert_PSL2Risoe.BINfileData(): Convert portable OSL data to a Risoe.BINfileData object. Function version 0.0.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{IO} Luminescence/man/report_RLum.Rd0000644000176200001440000001735614762561642016231 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/report_RLum.R \name{report_RLum} \alias{report_RLum} \title{Create a HTML-report for (RLum) objects} \usage{ report_RLum( object, file = tempfile(), title = "RLum.Report", compact = TRUE, timestamp = TRUE, show_report = TRUE, launch.browser = FALSE, css.file = NULL, quiet = TRUE, clean = TRUE, ... ) } \arguments{ \item{object}{(\strong{required}): The object to be reported on, preferably of any \code{RLum}-class.} \item{file}{\link{character} (\emph{with default}): A character string naming the output file. If no filename is provided a temporary file is created.} \item{title}{\link{character} (\emph{with default}): A character string specifying the title of the document.} \item{compact}{\link{logical} (\emph{with default}): When \code{TRUE} the following report components are hidden: \verb{@.pid}, \verb{@.uid}, \code{'Object structure'}, \code{'Session Info'} and only the first and last 5 rows of long matrices and data frames are shown. See details.} \item{timestamp}{\link{logical} (\emph{with default}): \code{TRUE} to add a timestamp to the filename (suffix).} \item{show_report}{\link{logical} (\emph{with default}): If set to \code{TRUE} the function tries to display the report output in the local viewer, e.g., within \emph{RStudio} after rendering.} \item{launch.browser}{\link{logical} (\emph{with default}): \code{TRUE} to open the HTML file in the system's default web browser after it has been rendered.} \item{css.file}{\link{character} (\emph{optional}): Path to a CSS file to change the default styling of the HTML document.} \item{quiet}{\link{logical} (\emph{with default}): \code{TRUE} to suppress printing of the pandoc command line.} \item{clean}{\link{logical} (\emph{with default}): \code{TRUE} to clean intermediate files created during rendering.} \item{...}{further arguments passed to or from other methods and to control the document's structure (see details).} } \value{ Writes a HTML and .Rds file. } \description{ Create a HTML-report for (RLum) objects } \details{ This function creates a HTML-report for a given object, listing its complete structure and content. The object itself is saved as a serialised .Rds file. The report file serves both as a convenient way of browsing through objects with complex data structures as well as a mean of properly documenting and saving objects. The HTML report is created with \link[rmarkdown:render]{rmarkdown::render} and has the following structure: \tabular{ll}{ \strong{Section} \tab \strong{Description} \cr \code{Header} \tab A summary of general characteristics of the object \cr \verb{Object content} \tab A comprehensive list of the complete structure and content of the provided object. \cr \verb{Object structure} \tab Summary of the objects structure given as a table \cr \code{File} \tab Information on the saved RDS file \cr \verb{Session Info} \tab Captured output from \code{sessionInfo()} \cr \code{Plots} \tab (\emph{optional}) For \code{RLum-class} objects a variable number of plots \cr } The structure of the report can be controlled individually by providing one or more of the following arguments (all \code{logical}): \tabular{ll}{ \strong{Argument} \tab \strong{Description} \cr \code{header} \tab Hide or show general information on the object \cr \code{main} \tab Hide or show the object's content \cr \code{structure} \tab Hide or show object's structure \cr \code{rds} \tab Hide or show information on the saved RDS file \cr \code{session} \tab Hide or show the session info \cr \code{plot} \tab Hide or show the plots (depending on object) \cr } Note that these arguments have higher precedence than \code{compact}. Further options that can be provided via the \code{...} argument: \tabular{ll}{ \strong{Argument} \tab \strong{Description} \cr \code{short_table} \tab If \code{TRUE} only show the first and last 5 rows of long tables. \cr \code{theme} \tab Specifies the Bootstrap theme to use for the report. Valid themes include \code{"default"}, \code{"cerulean"}, \code{"journal"}, \code{"flatly"}, \code{"readable"}, \code{"spacelab"}, \code{"united"}, \code{"cosmo"}, \code{"lumen"}, \code{"paper"}, \code{"sandstone"}, \code{"simplex"}, and \code{"yeti"}. \cr \code{highlight} \tab Specifies the syntax highlighting style. Supported styles include \code{"default"}, \code{"tango"}, \code{"pygments"}, \code{"kate"}, \code{"monochrome"}, \code{"espresso"}, \code{"zenburn"}, \code{"haddock"}, and \code{"textmate"}. \cr \code{css} \tab \code{TRUE} or \code{FALSE} to enable/disable custom CSS styling \cr } The following arguments can be used to customise the report via CSS (Cascading Style Sheets): \tabular{ll}{ \strong{Argument} \tab \strong{Description} \cr \code{font_family} \tab Define the font family of the HTML document (default: \code{"arial"}) \cr \code{headings_size} \tab Size of the \verb{

} to \verb{

} tags used to define HTML headings (default: 166\%). \cr \code{content_color} \tab Colour of the object's content (default: #a72925). \cr } Note that these arguments must all be of class \link{character} and follow standard CSS syntax. For exhaustive CSS styling you can provide a custom CSS file for argument \code{css.file}. CSS styling can be turned of using \code{css = FALSE}. } \note{ This function requires the R packages 'rmarkdown', 'pander' and 'rstudioapi'. } \section{Function version}{ 0.1.5 } \examples{ \dontrun{ ## Example: RLum.Results ---- # load example data data("ExampleData.DeValues") # apply the MAM-3 age model and save results mam <- calc_MinDose(ExampleData.DeValues$CA1, sigmab = 0.2) # create the HTML report report_RLum(object = mam, file = "~/CA1_MAM.Rmd", timestamp = FALSE, title = "MAM-3 for sample CA1") # when creating a report the input file is automatically saved to a # .Rds file (see saveRDS()). mam_report <- readRDS("~/CA1_MAM.Rds") all.equal(mam, mam_report) ## Example: Temporary file & Viewer/Browser ---- # (a) # Specifying a filename is not necessarily required. If no filename is provided, # the report is rendered in a temporary file. If you use the RStudio IDE, the # temporary report is shown in the interactive Viewer pane. report_RLum(object = mam) # (b) # Additionally, you can view the HTML report in your system's default web browser. report_RLum(object = mam, launch.browser = TRUE) ## Example: RLum.Analysis ---- data("ExampleData.RLum.Analysis") # create the HTML report (note that specifying a file # extension is not necessary) report_RLum(object = IRSAR.RF.Data, file = "~/IRSAR_RF") ## Example: RLum.Data.Curve ---- data.curve <- get_RLum(IRSAR.RF.Data)[[1]] # create the HTML report report_RLum(object = data.curve, file = "~/Data_Curve") ## Example: Any other object ---- x <- list(x = 1:10, y = runif(10, -5, 5), z = data.frame(a = LETTERS[1:20], b = dnorm(0:9)), NA) report_RLum(object = x, file = "~/arbitray_list") } } \seealso{ \link[rmarkdown:render]{rmarkdown::render}, \link[pander:pander_return]{pander::pander_return}, \link[pander:openFileInOS]{pander::openFileInOS}, \link[rstudioapi:viewer]{rstudioapi::viewer}, \link{browseURL} } \author{ Christoph Burow, University of Cologne (Germany), Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) \cr , RLum Developer Team} \section{How to cite}{ Burow, C., Kreutzer, S., 2025. report_RLum(): Create a HTML-report for (RLum) objects. Function version 0.1.5. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } Luminescence/man/calc_OSLLxTxRatio.Rd0000644000176200001440000001674414762561642017215 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_OSLLxTxRatio.R \name{calc_OSLLxTxRatio} \alias{calc_OSLLxTxRatio} \title{Calculate \code{Lx/Tx} ratio for CW-OSL curves} \usage{ calc_OSLLxTxRatio( Lx.data, Tx.data = NULL, signal.integral, signal.integral.Tx = NULL, background.integral, background.integral.Tx = NULL, background.count.distribution = "non-poisson", use_previousBG = FALSE, sigmab = NULL, sig0 = 0, digits = NULL ) } \arguments{ \item{Lx.data}{\linkS4class{RLum.Data.Curve} or \link{data.frame} (\strong{required}): requires a CW-OSL shine down curve (x = time, y = counts)} \item{Tx.data}{\linkS4class{RLum.Data.Curve} or \link{data.frame} (\emph{optional}): requires a CW-OSL shine down curve (x = time, y = counts). If no input is given the \code{Tx.data} will be treated as \code{NA} and no \code{Lx/Tx} ratio is calculated.} \item{signal.integral}{\link{numeric} (\strong{required}): vector with the limits for the signal integral. Can be set to \code{NA} than now integrals are considered and all other integrals are set to \code{NA} as well.} \item{signal.integral.Tx}{\link{numeric} (\emph{optional}): vector with the limits for the signal integral for the \code{Tx}-curve. If missing, the value from \code{signal.integral} is used.} \item{background.integral}{\link{numeric} (\strong{required}): vector with the bounds for the background integral. Can be set to \code{NA} than now integrals are considered and all other integrals are set to \code{NA} as well.} \item{background.integral.Tx}{\link{numeric} (\emph{optional}): vector with the limits for the background integral for the \code{Tx} curve. If missing, the value from \code{background.integral} is used.} \item{background.count.distribution}{\link{character} (\emph{with default}): sets the count distribution assumed for the error calculation. Possible arguments are \code{"poisson"} or \code{"non-poisson"} (default). See details for further information.} \item{use_previousBG}{\link{logical} (\emph{with default}): If set to \code{TRUE} the background of the \code{Lx}-signal is subtracted also from the \code{Tx}-signal. Please note that in this case separate signal integral limits for the \code{Tx}-signal are not allowed and will be reset.} \item{sigmab}{\link{numeric} (\emph{optional}): option to set a manual value for the overdispersion (for \code{LnTx} and \code{TnTx}), used for the \code{Lx/Tx} error calculation. The value should be provided as absolute squared count values, e.g. \code{sigmab = c(300,300)}. \strong{Note:} If only one value is provided this value is taken for both (\code{LnTx} and \code{TnTx}) signals.} \item{sig0}{\link{numeric} (\emph{with default}): allow adding an extra component of error to the final \code{Lx/Tx} error value (e.g., instrumental error, see details).} \item{digits}{\link{integer} (\emph{with default}): round numbers to the specified digits. If set to \code{NULL} no rounding occurs.} } \value{ Returns an S4 object of type \linkS4class{RLum.Results}. Slot \code{data} contains a \link{list} with the following structure: \strong{@data} \if{html}{\out{
}}\preformatted{$LxTx.table (data.frame) .. $ LnLx .. $ LnLx.BG .. $ TnTx .. $ TnTx.BG .. $ Net_LnLx .. $ Net_LnLx.Error .. $ Net_TnTx .. $ Net_TnTx.Error .. $ LxTx .. $ LxTx.Error $ calc.parameters (list) .. $ sigmab.LnTx .. $ sigmab.TnTx .. $ k }\if{html}{\out{
}} \strong{@info} \if{html}{\out{
}}\preformatted{$ call (original function call) }\if{html}{\out{
}} } \description{ Calculate \code{Lx/Tx} ratios from a given set of CW-OSL curves assuming late light background subtraction. } \details{ The integrity of the chosen values for the signal and background integral is checked by the function; the signal integral limits have to be lower than the background integral limits. If a \link{vector} is given as input instead of a \link{data.frame}, an artificial \link{data.frame} is produced. The error calculation is done according to Galbraith (2002). \strong{Please note:} In cases where the calculation results in \code{NaN} values (for example due to zero-signal, and therefore a division of 0 by 0), these \code{NaN} values are replaced by 0. \strong{\code{sigmab}} The default value of \code{sigmab} is calculated assuming the background is constant and \strong{would not} applicable when the background varies as, e.g., as observed for the early light subtraction method. \strong{sig0} This argument allows to add an extra component of error to the final \code{Lx/Tx} error value. The input will be treated as factor that is multiplied with the already calculated \code{LxTx} and the result is add up by: \deqn{se(LxTx) = \sqrt(se(LxTx)^2 + (LxTx * sig0)^2)} \strong{background.count.distribution} This argument allows selecting the distribution assumption that is used for the error calculation. According to Galbraith (2002, 2014) the background counts may be overdispersed (i.e. do not follow a Poisson distribution, which is assumed for the photomultiplier counts). In that case (might be the normal case) it has to be accounted for the overdispersion by estimating \eqn{\sigma^2} (i.e. the overdispersion value). Therefore the relative standard error is calculated as: \itemize{ \item \code{poisson} \deqn{rse(\mu_{S}) \approx \sqrt(Y_{0} + Y_{1}/k^2)/Y_{0} - Y_{1}/k} \item \code{non-poisson} \deqn{rse(\mu_{S}) \approx \sqrt(Y_{0} + Y_{1}/k^2 + \sigma^2(1+1/k))/Y_{0} - Y_{1}/k} } \strong{Please note} that when using the early background subtraction method in combination with the 'non-poisson' distribution argument, the corresponding \code{Lx/Tx} error may considerably increase due to a high \code{sigmab} value. Please check whether this is valid for your data set and if necessary consider to provide an own \code{sigmab} value using the corresponding argument \code{sigmab}. } \note{ The results of this function have been cross-checked with the Analyst (version 3.24b). Access to the results object via \link{get_RLum}. \strong{Caution:} If you are using early light subtraction (EBG), please either provide your own \code{sigmab} value or use \code{background.count.distribution = "poisson"}. } \section{Function version}{ 0.8.0 } \examples{ ##load data data(ExampleData.LxTxOSLData, envir = environment()) ##calculate Lx/Tx ratio results <- calc_OSLLxTxRatio( Lx.data = Lx.data, Tx.data = Tx.data, signal.integral = c(1:2), background.integral = c(85:100)) ##get results object get_RLum(results) } \section{How to cite}{ Kreutzer, S., 2025. calc_OSLLxTxRatio(): Calculate Lx/Tx ratio for CW-OSL curves. Function version 0.8.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Duller, G., 2018. Analyst v4.57 - User Manual. \verb{https://users.aber.ac.uk/ggd}\cr Galbraith, R.F., 2002. A note on the variance of a background-corrected OSL count. Ancient TL, 20 (2), 49-51. Galbraith, R.F., 2014. A further note on the variance of a background-corrected OSL count. Ancient TL, 31 (2), 1-3. } \seealso{ \linkS4class{RLum.Data.Curve}, \link{Analyse_SAR.OSLdata}, \link{fit_DoseResponseCurve}, \link{analyse_SAR.CWOSL} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{datagen} Luminescence/man/fit_EmissionSpectra.Rd0000644000176200001440000001761414762561642017726 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/fit_EmissionSpectra.R \name{fit_EmissionSpectra} \alias{fit_EmissionSpectra} \title{Luminescence Emission Spectra Deconvolution} \usage{ fit_EmissionSpectra( object, frame = NULL, n_components = NULL, start_parameters = NULL, sub_negative = 0, input_scale = NULL, method_control = list(), verbose = TRUE, plot = TRUE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Data.Spectrum}, \link{matrix} (\strong{required}): input object. Please note that an energy spectrum is expected} \item{frame}{\link{integer} (\emph{optional}): number of the frame to be analysed. If \code{NULL}, all available frames are analysed.} \item{n_components}{\link{integer} (\emph{optional}): maximum number of components desired: the number of component actually fitted may be smaller than this. Can be combined with other parameters.} \item{start_parameters}{\link{numeric} (\emph{optional}): allows to provide own start parameters for a semi-automated procedure. Parameters need to be provided in eV. Every value provided replaces a value from the automated peak finding algorithm (in ascending order).} \item{sub_negative}{\link{numeric} (\emph{with default}): substitute negative values in the input object by the number provided here (default: \code{0}). Can be set to \code{NULL}, i.e. negative values are kept.} \item{input_scale}{\link{character} (\emph{optional}): defines whether your x-values are expressed as wavelength or energy values. Allowed values are \code{"wavelength"}, \code{"energy"} or \code{NULL}, in which case the function tries to guess the input automatically.} \item{method_control}{\link{list} (\emph{optional}): options to control the fit method and the output produced, see details.} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{further arguments to be passed to control the plot output (supported: \code{main}, \code{xlab}, \code{ylab}, \code{xlim}, \code{ylim}, \code{log}, \code{mtext}, \code{legend} (\code{TRUE} or \code{FALSE}), \code{legend.text}, \code{legend.pos})} } \value{ -----------------------------------\cr \verb{[ NUMERICAL OUTPUT ]}\cr -----------------------------------\cr \strong{\code{RLum.Results}}-object \strong{slot:} \strong{\verb{@data}} \tabular{lll}{ \strong{Element} \tab \strong{Type} \tab \strong{Description}\cr \verb{$data} \tab \code{matrix} \tab the final fit matrix \cr \verb{$fit} \tab \code{nls} \tab the fit object returned by \link[minpack.lm:nls.lm]{minpack.lm::nls.lm} \cr \verb{$fit_info} \tab \code{list} \tab a few additional parameters that can be used to assess the quality of the fit \cr \verb{$df_plot} \tab \code{list} \tab values of all curves in the plot for each frame analysed (only if \code{method_control$export.plot.data = TRUE}) } \strong{slot:} \strong{\verb{@info}} The original function call ---------------------------------\cr \verb{[ TERMINAL OUTPUT ]} \cr ---------------------------------\cr The terminal output provides brief information on the deconvolution process and the obtained results. Terminal output is only shown when \code{verbose = TRUE}. ---------------------------\cr \verb{[ PLOT OUTPUT ]} \cr ---------------------------\cr The function returns a plot showing the raw signal with the detected components. If the fitting failed, a basic plot is returned showing the raw data and indicating the peaks detected for the start parameter estimation. The grey band in the residual plot indicates the 10\% deviation from 0 (means no residual). } \description{ Luminescence spectra deconvolution on \linkS4class{RLum.Data.Spectrum} and \link{matrix} objects on an \strong{energy scale}. The function is optimised for emission spectra typically obtained in the context of TL, OSL and RF measurements detected between 200 and 1000 nm. The function is not prepared to deconvolve TL curves (counts against temperature; no wavelength scale). If you are interested in such analysis, please check, e.g., the package \code{'tgcd'}. } \details{ \strong{Used equation} The emission spectra (on an energy scale) can be best described as the sum of multiple Gaussian components: '\deqn{ y = \Sigma Ci * 1/(\sigma_{i} * \sqrt(2 * \pi)) * exp(-1/2 * ((x - \mu_{i})/\sigma_{i}))^2) } with the parameters \eqn{\sigma} (peak width) and \eqn{\mu} (peak centre) and \eqn{C} (scaling factor). \strong{Start parameter estimation and fitting algorithm} The spectrum deconvolution consists of the following steps: \enumerate{ \item Peak finding \cr \item Start parameter estimation \cr \item Fitting via \link[minpack.lm:nls.lm]{minpack.lm::nls.lm}\cr } The peak finding is realised by an approach (re-)suggested by Petr Pikal via the R-help mailing list (\verb{https://stat.ethz.ch/pipermail/r-help/2005-November/thread.html}) in November 2005. This goes back to even earlier discussion in 2001 based on Prof Brian Ripley's idea. It smartly uses the functions \link[stats:embed]{stats::embed} and \link{max.col} to identify peaks positions. For the use in this context, the algorithm has been further modified to scale on the input data resolution (cf. source code).\cr The start parameter estimation uses random sampling from a range of meaningful parameters and repeats the fitting until 1000 successful fits have been produced or the set \code{max.runs} value is exceeded. Currently the best fit is the one with the lowest number for squared residuals, but other parameters are returned as well. If a series of curves needs to be analysed, it is recommended to make few trial runs, then fix the number of components and run at least 10,000 iterations (parameter \code{method_control = list(max.runs = 10000)}). \strong{Supported \code{method_control} settings} \tabular{llll}{ \strong{Parameter} \tab \strong{Type} \tab \strong{Default} \tab \strong{Description}\cr \code{max.runs} \tab \link{integer} \tab \code{10000} \tab maximum allowed search iterations, if exceed the searching stops \cr \code{graining} \tab \link{numeric} \tab \code{15} \tab control over how coarse or fine the spectrum is split into search intervals for the peak finding algorithm \cr \code{norm} \tab \link{logical} \tab \code{TRUE} \tab normalise data to the highest count value before fitting \cr \code{export.plot.data} \tab \link{logical} \tab \code{FALSE} \tab enable/disable export of the values of all curves in the plot for each frame analysed \cr \code{trace} \tab \link{logical} \tab \code{FALSE} \tab enable/disable the tracing of the minimisation routine } } \section{Function version}{ 0.1.2 } \examples{ ##load example data data(ExampleData.XSYG, envir = environment()) ##subtract background TL.Spectrum@data <- TL.Spectrum@data[] - TL.Spectrum@data[,15] results <- fit_EmissionSpectra( object = TL.Spectrum, frame = 5, method_control = list(max.runs = 10) ) ##deconvolution of a TL spectrum \dontrun{ ##load example data ##replace 0 values results <- fit_EmissionSpectra( object = TL.Spectrum, frame = 5, main = "TL spectrum" ) } } \seealso{ \linkS4class{RLum.Data.Spectrum}, \linkS4class{RLum.Results}, \link{plot_RLum}, \link{convert_Wavelength2Energy}, \link[minpack.lm:nls.lm]{minpack.lm::nls.lm} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr Marco Colombo, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., Colombo, M., 2025. fit_EmissionSpectra(): Luminescence Emission Spectra Deconvolution. Function version 0.1.2. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{datagen} Luminescence/man/ExampleData.TR_OSL.Rd0000644000176200001440000000162414762557027017176 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \name{ExampleData.TR_OSL} \alias{ExampleData.TR_OSL} \title{Example TR-OSL data} \format{ One \linkS4class{RLum.Data.Curve} dataset imported using the function \link{read_XSYG2R} \describe{ \code{ExampleData.TR_OSL}: A single \linkS4class{RLum.Data.Curve} object with the TR-OSL data } } \description{ Single TR-OSL curve obtained by Schmidt et al. (under review) for quartz sample BT729 (origin: Trebgast Valley, Germany, quartz, 90-200 µm, unpublished data). } \examples{ ##(1) curves data(ExampleData.TR_OSL, envir = environment()) plot_RLum(ExampleData.TR_OSL) } \references{ Schmidt, C., Simmank, O., Kreutzer, S., under review. Time-Resolved Optically Stimulated Luminescence of Quartz in the Nanosecond Time Domain. Journal of Luminescence, 1-90 } \seealso{ \link{fit_OSLLifeTimes} } \keyword{datasets} Luminescence/man/plot_GrowthCurve.Rd0000644000176200001440000001311114762561642017255 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_GrowthCurve.R \name{plot_GrowthCurve} \alias{plot_GrowthCurve} \title{Fit and plot a dose-response curve for luminescence data (Lx/Tx against dose)} \usage{ plot_GrowthCurve( sample, mode = "interpolation", fit.method = "EXP", output.plot = TRUE, output.plotExtended = TRUE, plot_singlePanels = FALSE, cex.global = 1, verbose = TRUE, n.MC = 100, ... ) } \arguments{ \item{sample}{\link{data.frame} (\strong{required}): data frame with columns for \code{Dose}, \code{LxTx}, \code{LxTx.Error} and \code{TnTx}. The column for the test dose response is optional, but requires \code{'TnTx'} as column name if used. For exponential fits at least three dose points (including the natural) should be provided.} \item{mode}{\link{character} (\emph{with default}): selects calculation mode of the function. \itemize{ \item \code{"interpolation"} (default) calculates the De by interpolation, \item \code{"extrapolation"} calculates the equivalent dose by extrapolation (useful for MAAD measurements) and \item \code{"alternate"} calculates no equivalent dose and just fits the data points. } Please note that for option \code{"interpolation"} the first point is considered as natural dose} \item{fit.method}{\link{character} (\emph{with default}): function used for fitting. Possible options are: \itemize{ \item \code{LIN}, \item \code{QDR}, \item \code{EXP}, \item \verb{EXP OR LIN}, \item \code{EXP+LIN}, \item \code{EXP+EXP}, \item \code{GOK}, \item \code{LambertW} } See details in \link{fit_DoseResponseCurve}.} \item{output.plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{output.plotExtended}{\link{logical} (\emph{with default}): If' \code{TRUE}, 3 plots on one plot area are provided: \enumerate{ \item growth curve, \item histogram from Monte Carlo error simulation and \item a test dose response plot. } If \code{FALSE}, just the growth curve will be plotted.} \item{plot_singlePanels}{\link{logical} (\emph{with default}): single plot output (\code{TRUE/FALSE}) to allow for plotting the results in single plot windows. Requires \code{plotExtended = TRUE}.} \item{cex.global}{\link{numeric} (\emph{with default}): global scaling factor.} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{n.MC}{\link{integer} (\emph{with default}): number of MC runs for error calculation.} \item{...}{Further arguments to \link{fit_DoseResponseCurve} (\code{fit_weights}, \code{fit_bounds}, \code{fit.force_through_origin}, \code{fit.includingRepeatedRegPoints}, \code{fit.NumberRegPoints}, \code{fit.NumberRegPointsReal}, \code{n.MC}, \code{txtProgressBar}) and graphical parameters to be passed (supported: \code{xlim}, \code{ylim}, \code{main}, \code{xlab}, \code{ylab}).} } \value{ Along with a plot (if wanted) the \code{RLum.Results} object produced by \link{fit_DoseResponseCurve} is returned. } \description{ A dose-response curve is produced for luminescence measurements using a regenerative or additive protocol as implemented in \link{fit_DoseResponseCurve} and \link{plot_DoseResponseCurve} } \section{Function version}{ 1.2.1 } \examples{ ##(1) plot growth curve for a dummy dataset data(ExampleData.LxTxData, envir = environment()) plot_GrowthCurve(LxTxData) ##(1b) horizontal plot arrangement layout(mat = matrix(c(1,1,2,3), ncol = 2)) plot_GrowthCurve(LxTxData, plot_singlePanels = TRUE) ##(2) plot the growth curve with pdf output - uncomment to use ##pdf(file = "~/Desktop/Growth_Curve_Dummy.pdf", paper = "special") plot_GrowthCurve(LxTxData) ##dev.off() ##(3) plot the growth curve with pdf output - uncomment to use, single output ##pdf(file = "~/Desktop/Growth_Curve_Dummy.pdf", paper = "special") temp <- plot_GrowthCurve(LxTxData, plot_singlePanels = TRUE) ##dev.off() ##(4) plot resulting function for given interval x x <- seq(1,10000, by = 100) plot( x = x, y = eval(temp$Formula), type = "l" ) ##(5) plot using the 'extrapolation' mode LxTxData[1,2:3] <- c(0.5, 0.001) print(plot_GrowthCurve(LxTxData, mode = "extrapolation")) ##(6) plot using the 'alternate' mode LxTxData[1,2:3] <- c(0.5, 0.001) print(plot_GrowthCurve(LxTxData, mode = "alternate")) } \section{How to cite}{ Kreutzer, S., Dietze, M., Colombo, M., 2025. plot_GrowthCurve(): Fit and plot a dose-response curve for luminescence data (Lx/Tx against dose). Function version 1.2.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Berger, G.W., Huntley, D.J., 1989. Test data for exponential fits. Ancient TL 7, 43-46. Guralnik, B., Li, B., Jain, M., Chen, R., Paris, R.B., Murray, A.S., Li, S.-H., Pagonis, P., Herman, F., 2015. Radiation-induced growth and isothermal decay of infrared-stimulated luminescence from feldspar. Radiation Measurements 81, 224-231. Pagonis, V., Kitis, G., Chen, R., 2020. A new analytical equation for the dose response of dosimetric materials, based on the Lambert W function. Journal of Luminescence 225, 117333. \doi{10.1016/j.jlumin.2020.117333} } \seealso{ \link{fit_DoseResponseCurve}, \link{plot_DoseResponseCurve} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr Michael Dietze, GFZ Potsdam (Germany) \cr Marco Colombo, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} Luminescence/man/fit_OSLLifeTimes.Rd0000644000176200001440000002115414762561642017047 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/fit_OSLLifeTimes.R \name{fit_OSLLifeTimes} \alias{fit_OSLLifeTimes} \title{Fitting and Deconvolution of OSL Lifetime Components} \usage{ fit_OSLLifeTimes( object, tp = 0, signal_range = NULL, n.components = NULL, method_control = list(), plot = TRUE, plot_simple = FALSE, verbose = TRUE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Analysis}, \link{data.frame} or \link{matrix} (\strong{required}): Input object containing the data to be analysed. All objects can be provided also as list for an automated processing. Please note: \code{NA} values are automatically removed and the dataset should comprise at least 5 data points (possibly more if \code{n.components} is set to a value greater than 1)} \item{tp}{\link{numeric} (\emph{with default}): option to account for the stimulation pulse width. For off-time measurements the default value is 0. \code{tp} has the same unit as the measurement data, e.g., µs. Please set this parameter carefully, if it all, otherwise you may heavily bias your fit results.} \item{signal_range}{\link{numeric} (\emph{optional}): allows to set a channel range, by default all channels are used, e.g. \code{signal_range = c(2,100)} considers only channels 2 to 100 and \code{signal_range = c(2)} considers only channels from channel 2 onwards.} \item{n.components}{\link{numeric} (\emph{optional}): Fix the number of components. If set the algorithm will try to fit the number of predefined components. If nothing is set, the algorithm will try to find the best number of components.} \item{method_control}{\link{list} (\emph{optional}): Named to allow a more fine control of the fitting process. See details for allowed options.} \item{plot}{\link{logical} (\emph{with default}): Enable/disable the plot output.} \item{plot_simple}{\link{logical} (\emph{with default}): Enable/disable the reduced plot output. If \code{TRUE}, no residual plot is shown, however, plot output can be combined using the standard R layout options, such as \code{par(mfrow = c(2,2))}.} \item{verbose}{\link{logical} (\emph{with default}): Enable/disable output to the terminal.} \item{...}{parameters passed to \link{plot.default} to control the plot output, supported are: \code{main}, \code{xlab}, \code{ylab}, \code{log}, \code{xlim}, \code{ylim}, \code{col}, \code{lty}, \code{legend.pos}, \code{legend.text}. If the input object is of type \linkS4class{RLum.Analysis} this arguments can be provided as a \link{list}.} } \value{ -----------------------------------\cr \verb{[ NUMERICAL OUTPUT ]}\cr -----------------------------------\cr \strong{\code{RLum.Results}}-object \strong{slot:} \strong{\verb{@data}} \tabular{lll}{ \strong{Element} \tab \strong{Type} \tab \strong{Description}\cr \verb{$data} \tab \code{matrix} \tab the final fit matrix \cr \verb{$start_matrix} \tab \code{matrix} \tab the start matrix used for the fitting \cr \verb{$total_counts} \tab \code{integer} \tab Photon count sum \cr \verb{$fit} \tab \code{nls} \tab the fit object returned by \link[minpack.lm:nls.lm]{minpack.lm::nls.lm} \cr } \strong{slot:} \strong{\verb{@info}} The original function call ------------------------\cr \verb{[ TERMINAL OUTPUT ]}\cr ------------------------\cr Terminal output is only shown of the argument \code{verbose = TRUE}. \emph{(1) Start parameter and component adaption}\cr Trave of the parameter adaptation process \emph{(2) Fitting results (sorted by ascending tau)}\cr The fitting results sorted by ascending tau value. Please note that if you access the \code{nls} fitting object, the values are not sorted. \emph{(3) Further information}\cr \itemize{ \item The photon count sum \item Durbin-Watson residual statistic to assess whether the residuals are correlated, ideally the residuals should be not correlated at all. Rough measures are: \cr D = 0: the residuals are systematically correlated \cr D = 2: the residuals are randomly distributed \cr D = 4: the residuals are systematically anti-correlated\cr } You should be suspicious if D differs largely from 2. ------------------------\cr \verb{[ PLOT OUTPUT ]}\cr ------------------------\cr A plot showing the original data and the fit so far possible. The lower plot shows the residuals of the fit. } \description{ Fitting and Deconvolution of OSL Lifetime Components } \details{ The function intends to provide an easy access to pulsed optically stimulated luminescence (POSL) data, in order determine signal lifetimes. The fitting is currently optimised to work with the off-time flank of POSL measurements only. For the signal deconvolution, a differential evolution optimisation is combined with nonlinear least-square fitting following the approach by Bluszcz & Adamiec (2006). \strong{Component deconvolution algorithm} The component deconvolution consists of two steps: (1) Adaptation phase In the adaptation phase the function tries to figure out the optimal and statistically justified number of signal components following roughly the approach suggested by Bluszcz & Adamiec (2006). In contrast to their work, for the optimisation by differential evolution here the package \code{'DEoptim'} is used. The function to be optimized has the form: \deqn{\chi^2 = \sum(w * (n_i/c - \sum(A_i * exp(-x/(tau_i + t_p))))^2)} with \eqn{w = 1} for unweighted regression analysis (\code{method_control = list(weights = FALSE)}) or \eqn{w = c^2/n_i} for weighted regression analysis. The default values is \code{TRUE}. \deqn{F = (\Delta\chi^2 / 2) / (\chi^2/(N - 2*m - 2))} (2) Final fitting \strong{\code{method_control}} \tabular{lll}{ \strong{Parameter} \tab \strong{Type} \tab \strong{Description}\cr \code{p} \tab \link{numeric} \tab controls the probability for the F statistic reference values. For a significance level of 5 \% a value of 0.95 (the default) should be added, for 1 \%, a value of 0.99 is sufficient: 1 > p > 0 (cf. \link[stats:Fdist]{stats::FDist})\cr \code{seed} \tab \link{numeric} \tab set the seed for the random number generator, provide a value here to get reproducible results \cr \code{DEoptim.trace} \tab \link{logical} \tab enable/disable the tracing of the differential evolution (cf. \link[DEoptim:DEoptim.control]{DEoptim::DEoptim.control}) \cr \code{DEoptim.itermax} \tab \link{logical} \tab control the number of the allowed generations (cf. \link[DEoptim:DEoptim.control]{DEoptim::DEoptim.control}) \cr \code{weights} \tab \link{logical} \tab enable/disable the weighting for the start parameter estimation and fitting (see equations above). The default values is \code{TRUE} \cr \code{nlsLM.trace} \tab \link{logical} \tab enable/disable trace mode for the nls fitting (\link[minpack.lm:nlsLM]{minpack.lm::nlsLM}), can be used to identify convergence problems, default is \code{FALSE} \cr \code{nlsLM.upper} \tab \link{logical} \tab enable/disable upper parameter boundary, default is \code{TRUE} \cr \code{nlsLM.lower} \tab \link{logical} \tab enable/disable lower parameter boundary, default is \code{TRUE} } } \section{Function version}{ 0.1.5 } \examples{ ##load example data data(ExampleData.TR_OSL, envir = environment()) ##fit lifetimes (short run) fit_OSLLifeTimes( object = ExampleData.TR_OSL, n.components = 1) ##long example \dontrun{ fit_OSLLifeTimes( object = ExampleData.TR_OSL) } } \section{How to cite}{ Kreutzer, S., Schmidt, C., 2025. fit_OSLLifeTimes(): Fitting and Deconvolution of OSL Lifetime Components. Function version 0.1.5. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Bluszcz, A., Adamiec, G., 2006. Application of differential evolution to fitting OSL decay curves. Radiation Measurements 41, 886-891. \doi{10.1016/j.radmeas.2006.05.016}\cr Durbin, J., Watson, G.S., 1950. Testing for Serial Correlation in Least Squares Regression: I. Biometrika 37, 409-21. doi:10.2307/2332391 \strong{Further reading} Hughes, I., Hase, T., 2010. Measurements and Their Uncertainties. Oxford University Press. Storn, R., Price, K., 1997. Differential Evolution – A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces. Journal of Global Optimization 11, 341–359. } \seealso{ \link[minpack.lm:nls.lm]{minpack.lm::nls.lm}, \link[DEoptim:DEoptim]{DEoptim::DEoptim} } \author{ Sebastian Kreutzer, Geography & Earth Sciences, Aberystwyth University, Christoph Schmidt, University of Bayreuth (Germany) , RLum Developer Team} Luminescence/man/ExampleData.CW_OSL_Curve.Rd0000644000176200001440000000311114762557027020317 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-package.R \docType{data} \name{ExampleData.CW_OSL_Curve} \alias{ExampleData.CW_OSL_Curve} \alias{CW_Curve.BosWallinga2012} \title{Example CW-OSL curve data for the package Luminescence} \format{ Data frame with 1000 observations on the following 2 variables: \itemize{ \item \code{list("x")}: a numeric vector, time \item \code{list("y")}: a numeric vector, counts } } \source{ \strong{ExampleData.CW_OSL_Curve} \tabular{ll}{ Lab: \tab Luminescence Laboratory Bayreuth\cr Lab-Code: \tab BT607\cr Location: \tab Saxony/Germany\cr Material: \tab Middle grain quartz measured on aluminium cups on a Risø TL/OSL DA-15 reader.\cr Reference: \tab unpublished data } \strong{CW_Curve.BosWallinga2012} \tabular{ll}{ Lab: \tab Netherlands Centre for Luminescence Dating (NCL)\cr Lab-Code: \tab NCL-2108077\cr Location: \tab Guadalentin Basin, Spain\cr Material: \tab Coarse grain quartz\cr Reference: \tab Bos & Wallinga (2012) and Baartman et al. (2011) } } \description{ \code{data.frame} containing CW-OSL curve data (time, counts) } \examples{ data(ExampleData.CW_OSL_Curve, envir = environment()) plot(ExampleData.CW_OSL_Curve) } \references{ Baartman, J.E.M., Veldkamp, A., Schoorl, J.M., Wallinga, J., Cammeraat, L.H., 2011. Unravelling Late Pleistocene and Holocene landscape dynamics: The Upper Guadalentin Basin, SE Spain. Geomorphology, 125, 172-185. Bos, A.J.J. & Wallinga, J., 2012. How to visualize quartz OSL signal components. Radiation Measurements, 47, 752-758. } \keyword{datasets} \keyword{internal} Luminescence/man/GitHub-API.Rd0000644000176200001440000000603614762561642015541 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/github.R \name{GitHub-API} \alias{GitHub-API} \alias{github_commits} \alias{github_branches} \alias{github_issues} \title{GitHub API} \usage{ github_commits(user = "r-lum", repo = "luminescence", branch = "master", n = 5) github_branches(user = "r-lum", repo = "luminescence") github_issues(user = "r-lum", repo = "luminescence", verbose = TRUE) } \arguments{ \item{user}{\link{character} (\emph{with default}): GitHub user name (defaults to \code{'r-lum'}).} \item{repo}{\link{character} (\emph{with default}): name of a GitHub repository (defaults to \code{'luminescence'}).} \item{branch}{\link{character} (\emph{with default}): branch of a GitHub repository (defaults to \code{'master'}).} \item{n}{\link{integer} (\emph{with default}): number of commits returned (defaults to 5).} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} } \value{ \code{github_commits}: \link{data.frame} with columns: \tabular{ll}{ \verb{[ ,1]} \tab SHA \cr \verb{[ ,2]} \tab AUTHOR \cr \verb{[ ,3]} \tab DATE \cr \verb{[ ,4]} \tab MESSAGE \cr } \code{github_branches}: \link{data.frame} with columns: \tabular{ll}{ \verb{[ ,1]} \tab BRANCH \cr \verb{[ ,2]} \tab SHA \cr \verb{[ ,3]} \tab INSTALL \cr } \code{github_commits}: Nested \link{list} with \code{n} elements. Each commit element is a list with elements: \tabular{ll}{ \verb{[[1]]} \tab NUMBER \cr \verb{[[2]]} \tab TITLE \cr \verb{[[3]]} \tab BODY \cr \verb{[[4]]} \tab CREATED \cr \verb{[[5]]} \tab UPDATED \cr \verb{[[6]]} \tab CREATOR \cr \verb{[[7]]} \tab URL \cr \verb{[[8]]} \tab STATUS \cr } } \description{ R Interface to the GitHub API v3. } \details{ These functions can be used to query a specific repository hosted on GitHub. \cr \code{github_commits} lists the most recent \code{n} commits of a specific branch of a repository. \code{github_branches} can be used to list all current branches of a repository and returns the corresponding SHA hash as well as an installation command to install the branch in R via the 'devtools' package. \code{github_issues} lists all open issues for a repository in valid YAML. } \section{Function version}{ 0.1.0 } \examples{ \dontrun{ github_branches(user = "r-lum", repo = "luminescence") github_issues(user = "r-lum", repo = "luminescence") github_commits(user = "r-lum", repo = "luminescence", branch = "master", n = 10) } } \section{How to cite}{ Burow, C., 2025. GitHub-API(): GitHub API. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ GitHub Developer API v3. \url{https://docs.github.com/v3/}, last accessed: 10/01/2017. } \author{ Christoph Burow, University of Cologne (Germany) , RLum Developer Team} Luminescence/man/analyse_Al2O3C_ITC.Rd0000644000176200001440000001170114762561642017101 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/analyse_Al2O3C_ITC.R \name{analyse_Al2O3C_ITC} \alias{analyse_Al2O3C_ITC} \title{Al2O3 Irradiation Time Correction Analysis} \usage{ analyse_Al2O3C_ITC( object, signal_integral = NULL, dose_points = c(2, 4, 8, 12, 16), recordType = c("OSL (UVVIS)"), method_control = NULL, verbose = TRUE, plot = TRUE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Analysis} or \link{list} (\strong{required}): results obtained from the measurement. Alternatively a list of \linkS4class{RLum.Analysis} objects can be provided to allow an automatic analysis} \item{signal_integral}{\link{numeric} (\emph{optional}): signal integral, used for the signal and the background. If nothing is provided the full range is used. Argument can be provided as \link{list}.} \item{dose_points}{\link{numeric} (\emph{with default}): vector with dose points, if dose points are repeated, only the general pattern needs to be provided. Default values follow the suggestions made by Kreutzer et al., 2018. Argument can be provided as \link{list}.} \item{recordType}{\link{character} (\emph{with default}): input curve selection, which is passed to function \link{get_RLum}. To deactivate the automatic selection set the argument to \code{NULL}} \item{method_control}{\link{list} (\emph{optional}): optional parameters to control the calculation. See details for further explanations} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{further arguments that can be passed to the plot output} } \value{ Function returns results numerically and graphically: -----------------------------------\cr \verb{[ NUMERICAL OUTPUT ]}\cr -----------------------------------\cr \strong{\code{RLum.Results}}-object \strong{slot:} \strong{\verb{@data}} \tabular{lll}{ \strong{Element} \tab \strong{Type} \tab \strong{Description}\cr \verb{$data} \tab \code{data.frame} \tab correction value and error \cr \verb{$table} \tab \code{data.frame} \tab table used for plotting \cr \verb{$table_mean} \tab \code{data.frame} \tab table used for fitting \cr \verb{$fit} \tab \code{lm} or \code{nls} \tab the fitting as returned by the function \link{fit_DoseResponseCurve} } \strong{slot:} \strong{\verb{@info}} The original function call ------------------------\cr \verb{[ PLOT OUTPUT ]}\cr ------------------------\cr \itemize{ \item A dose response curve with the marked correction values } } \description{ The function provides a very particular analysis to correct the irradiation time while irradiating Al2O3:C chips in a luminescence reader. } \details{ Background: Due to their high dose sensitivity Al2O3:C chips are usually irradiated for only a very short duration or under the closed beta-source within a luminescence reader. However, due to its high dose sensitivity, during the movement towards the beta-source, the pellet already receives and non-negligible dose. Based on measurements following a protocol suggested by Kreutzer et al., 2018, a dose response curve is constructed and the intersection (absolute value) with the time axis is taken as real irradiation time. \strong{\code{method_control}} To keep the generic argument list as clear as possible, arguments to allow a deeper control of the method are all preset with meaningful default parameters and can be handled using the argument \code{method_control} only, e.g., \code{method_control = list(fit.method = "LIN")}. Supported arguments are: \tabular{lll}{ \strong{ARGUMENT} \tab \strong{FUNCTION} \tab \strong{DESCRIPTION}\cr \code{mode} \tab \code{fit_DoseResponseCurve} \tab as in \link{fit_DoseResponseCurve}; sets the mode used for fitting\cr \code{fit.method} \tab \code{fit_DoseResponseCurve} \tab as in \link{fit_DoseResponseCurve}; sets the function applied for fitting\cr } } \section{Function version}{ 0.1.1 } \examples{ ##load data data(ExampleData.Al2O3C, envir = environment()) ##run analysis analyse_Al2O3C_ITC(data_ITC) } \section{How to cite}{ Kreutzer, S., 2025. analyse_Al2O3C_ITC(): Al2O3 Irradiation Time Correction Analysis. Function version 0.1.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Kreutzer, S., Martin, L., Guérin, G., Tribolo, C., Selva, P., Mercier, N., 2018. Environmental Dose Rate Determination Using a Passive Dosimeter: Techniques and Workflow for alpha-Al2O3:C Chips. Geochronometria 45, 56-67. doi: 10.1515/geochr-2015-0086 } \seealso{ \link{fit_DoseResponseCurve} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{datagen} Luminescence/man/plot_MoranScatterplot.Rd0000644000176200001440000000756214762561642020314 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_MoranScatterplot.R \name{plot_MoranScatterplot} \alias{plot_MoranScatterplot} \title{Moran Scatter Plot: Visualizing Spatial Dependency} \usage{ plot_MoranScatterplot( object, df_neighbours = NULL, str_y_def = "mean_neighbours", ... ) } \arguments{ \item{object}{\linkS4class{RLum.Results} or \link{numeric} (\strong{required}): containing a numerical vector of length 100, representing one or more measurement discs ("positions") in a reader. Each element in the vector represents one grain hole location on a disc.} \item{df_neighbours}{\link{data.frame} (\emph{with default}) Data frame indicating which borders to consider, and their respective weights (see the description provided for \link{calc_MoransI}). If \code{NULL} (default), this is constructed automatically by the internal function \code{.get_Neighbours}.} \item{str_y_def}{\link{character} (\emph{with default}) Calculation of y position. Defaults to \code{"mean_neighbours"} which is the plain mean of all neighbour values and the most illustrative. The other option is \code{"weighted_sum"}, which means the sum of the border weights times the neighbour values, which is actually closer to the way Moran's I is by default calculated in this package.} \item{...}{Other parameters to be forwarded to the base R plot functions. \code{legend} (\code{TRUE/FALSE}) to enable/disable the legend. Note that \code{xlab} (x axis label), \code{ylab} (y axis label) and \code{cex} (scaling value) are given default values. Because of sometimes large value differences, \code{log = "x"}, \code{log = "y"} and \code{log = "xy"}are supported. In case of negative values and logarithmic plotting, values are increased so the smallest value to plot is 1. Summary elements such as means, least square line etc. will still be based on the linear case. \code{pch} accepts options "show_location_ids"\verb{(plots grain location id's),}"show_n_neighbours"\verb{(indicates numbers of neighbours) and the normal base plot}pch` options.} } \value{ Returns (invisibly) a data frame with plotting coordinates and grain location id's, for creating user-defined plots. } \description{ Scatter plot, with on the x axis the original grain signal and on the y axis the weighted mean of the neighbour grain signals. The plot area is divided into four quadrants, and also a least square line (which slopes indicates, but not exactly represents, Moran's I) and an 1:1 line (which indicates a Moran's I of around 1). } \details{ Note that this function plots on the y-axis the mean of the neighbours, while the function \link{calc_MoransI} by default will for its global calculation weight every border the same. So, grain locations with 1, 2 or 3 neighbours will appear higher on the y-axis than their influence on Moran's I justify -- apart from scaling, this explains a part of the differences of Moran's scatter plots between different packages. Also note that island' grain locations (=those not bordering other grains) are left out of these plots but might still influence Moran's I calculations. } \examples{ plot_MoranScatterplot(1:100) } \section{How to cite}{ Boer, A.d., Steinbuch, L., 2025. plot_MoranScatterplot(): Moran Scatter Plot: Visualizing Spatial Dependency. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ de Boer, A-M., Steinbuch, L., Heuvelink, G.B.M., Wallinga, J., 2025. A novel tool to assess crosstalk in single-grain luminescence detection. Submitted. } \author{ Anna-Maartje de Boer, Luc Steinbuch, Wageningen University & Research, 2025 , RLum Developer Team} Luminescence/man/analyse_portableOSL.Rd0000644000176200001440000001421214762561642017645 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/analyse_portableOSL.R \name{analyse_portableOSL} \alias{analyse_portableOSL} \title{Analyse portable CW-OSL measurements} \usage{ analyse_portableOSL( object, signal.integral = NULL, invert = FALSE, normalise = FALSE, mode = "profile", coord = NULL, plot = TRUE, ... ) } \arguments{ \item{object}{\linkS4class{RLum.Analysis} (\strong{required}): \linkS4class{RLum.Analysis} object produced by \link{read_PSL2R}. The input can be a \link{list} of such objects, in such case each input is treated as a separate sample and the results are merged.} \item{signal.integral}{\link{numeric} (\strong{required}): A vector of two values specifying the lower and upper channel used to calculate the OSL/IRSL signal. Can be provided in form of \code{c(1, 5)} or \code{1:5}.} \item{invert}{\link{logical} (\emph{with default}): \code{TRUE} flip the plot the data in reverse order.} \item{normalise}{\link{logical} (\emph{with default}): \code{TRUE} to normalise the OSL/IRSL signals to the \emph{mean} of all corresponding data curves.} \item{mode}{\link{character} (\emph{with default}): defines the analysis mode, allowed are \code{"profile"} (the default) and \code{"surface"} for surface interpolation. If you select something else, nothing will be plotted (similar to \code{plot = FALSE}).} \item{coord}{\link{list} \link{matrix} (\emph{optional}): a list or matrix of the same length as number of samples measured with coordinates for the sampling positions. Coordinates are expected to be provided in meter (unit: m). Expected are x and y coordinates, e.g., \verb{coord = list(samp1 = c(0.1, 0.2)}. If you have not measured x coordinates, please x should be 0.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{other parameters to be passed to modify the plot output. Supported are \code{run} to provide the run name , if the input is a \code{list}, this is set automatically. Further plot parameters are \code{surface_values} (\link{character} with value to plot), \code{legend} (\code{TRUE}/\code{FALSE}), \code{col_ramp} (for surface mode), \code{contour} (contour lines \code{TRUE}/\code{FALSE} in surface mode), \code{grid} (\code{TRUE}/\code{FALSE}), \code{col}, \code{pch} (for profile mode), \code{xlim} (a name \link{list} for profile mode), \code{ylim}, \code{zlim} (surface mode only), \code{ylab}, \code{xlab}, \code{zlab} (here x-axis labelling), \code{main}, \code{bg_img} (for profile mode background image, usually a profile photo; should be a raster object), \code{bg_img_positions} (a vector with the four corner positions, cf. \link[graphics:rasterImage]{graphics::rasterImage})} } \value{ Returns an S4 \linkS4class{RLum.Results} object with the following elements: \verb{$data}\cr \code{.. $summary}: \link{data.frame} with the results\cr \code{.. $data}: \link{list} with the \linkS4class{RLum.Analysis} objects\cr \code{.. $args}: \link{list} the input arguments } \description{ The function analyses CW-OSL curve data produced by a SUERC portable OSL reader and produces a combined plot of OSL/IRSL signal intensities, OSL/IRSL depletion ratios and the IRSL/OSL ratio. } \details{ This function only works with \linkS4class{RLum.Analysis} objects produced by \link{read_PSL2R}. It further assumes (or rather requires) an equal amount of OSL and IRSL curves that are pairwise combined for calculating the IRSL/OSL ratio. For calculating the depletion ratios the cumulative signal of the last n channels (same number of channels as specified by \code{signal.integral}) is divided by cumulative signal of the first n channels (\code{signal.integral}). \strong{Note: The function assumes the following sequence pattern: \verb{DARK COUNT}, \code{IRSL}, \verb{DARK COUNT}, \code{BSL}, \verb{DARK COUNT}. If you have written a different sequence, the analysis function will (likely) not work!}. \strong{Signal processing} The function processes the signals as follows: \code{BSL} and \code{IRSL} signals are extracted using the chosen signal integral, dark counts are taken in full. \strong{Working with coordinates} Usually samples are taken from a profile with a certain stratigraphy. In the past the function calculated an index. With this newer version, you have two option of passing on xy-coordinates to the function: \itemize{ \item (1) Add coordinates to the sample name during measurement. The form is rather strict and has to follow the scheme \verb{_x:|y:}. Example: \code{sample_x:0.2|y:0.4}. \item (2) Alternatively, you can provide a \link{list} or \link{matrix} with the sample coordinates. Example: \code{coord = list(c(0.2, 1), c(0.3,1.2))} } Please note that the unit is meter (m) and the function expects always xy-coordinates. The latter one is useful for surface interpolations. If you have measured a profile where the x-coordinates to not measure, x-coordinates should be 0. } \section{Function version}{ 0.1.1 } \examples{ ## example profile plot # (1) load example data set data("ExampleData.portableOSL", envir = environment()) # (2) merge and plot all RLum.Analysis objects merged <- merge_RLum(ExampleData.portableOSL) plot_RLum( object = merged, combine = TRUE, records_max = 5, legend.pos = "outside") merged # (3) analyse and plot results <- analyse_portableOSL( merged, signal.integral = 1:5, invert = FALSE, normalise = TRUE) get_RLum(results) } \seealso{ \linkS4class{RLum.Analysis}, \linkS4class{RLum.Data.Curve}, \link{read_PSL2R} } \author{ Christoph Burow, University of Cologne (Germany), Sebastian Kreutzer, Institute of Geography, Ruprecht-Karl University of Heidelberg, Germany , RLum Developer Team} \section{How to cite}{ Burow, C., Kreutzer, S., 2025. analyse_portableOSL(): Analyse portable CW-OSL measurements. Function version 0.1.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{datagen} \keyword{plot} Luminescence/man/merge_RLum.Rd0000644000176200001440000000506714762561642016011 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/merge_RLum.R \name{merge_RLum} \alias{merge_RLum} \title{General merge function for RLum S4 class objects} \usage{ merge_RLum(objects, ...) } \arguments{ \item{objects}{\link{list} of \linkS4class{RLum} (\strong{required}): list of S4 object of class \code{RLum}} \item{...}{further arguments that one might want to pass to the specific merge function} } \value{ Return is the same as input objects as provided in the list. } \description{ Function calls object-specific merge functions for RLum S4 class objects. } \details{ The function provides a generalised access point for merging specific \linkS4class{RLum} objects. Depending on the input object, the corresponding merge function will be selected. Allowed arguments can be found in the documentation of each merge function. Empty list elements (\code{NULL}) are automatically removed from the input \code{list}. \tabular{lll}{ \strong{object} \tab \tab \strong{corresponding merge function} \cr \linkS4class{RLum.Data.Curve} \tab : \tab \code{merge_RLum.Data.Curve} \cr \linkS4class{RLum.Analysis} \tab : \tab \code{merge_RLum.Analysis} \cr \linkS4class{RLum.Results} \tab : \tab \code{merge_RLum.Results} } } \note{ So far not for every \code{RLum} object a merging function exists. } \section{Function version}{ 0.1.3 } \examples{ ##Example based using data and from the calc_CentralDose() function ##load example data data(ExampleData.DeValues, envir = environment()) ##apply the central dose model 1st time temp1 <- calc_CentralDose(ExampleData.DeValues$CA1) ##apply the central dose model 2nd time temp2 <- calc_CentralDose(ExampleData.DeValues$CA1) ##merge the results and store them in a new object temp.merged <- get_RLum(merge_RLum(objects = list(temp1, temp2))) } \seealso{ \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Data.Image}, \linkS4class{RLum.Data.Spectrum}, \linkS4class{RLum.Analysis}, \linkS4class{RLum.Results} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. merge_RLum(): General merge function for RLum S4 class objects. Function version 0.1.3. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{utilities} Luminescence/man/plot_Histogram.Rd0000644000176200001440000001311214762561642016734 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot_Histogram.R \name{plot_Histogram} \alias{plot_Histogram} \title{Plot a histogram with separate error plot} \usage{ plot_Histogram( data, na.rm = TRUE, mtext, cex.global, se, rug, normal_curve, summary, summary.pos, colour, interactive = FALSE, ... ) } \arguments{ \item{data}{\link{data.frame} or \linkS4class{RLum.Results} object (\strong{required}): for \code{data.frame}: two columns: De (\code{data[,1]}) and De error (\code{data[,2]})} \item{na.rm}{\link{logical} (\emph{with default}): excludes \code{NA} values from the data set prior to any further operations.} \item{mtext}{\link{character} (\emph{optional}): further sample information (\link{mtext}).} \item{cex.global}{\link{numeric} (\emph{with default}): global scaling factor.} \item{se}{\link{logical} (\emph{optional}): plots standard error points over the histogram, default is \code{FALSE}.} \item{rug}{\link{logical} (\emph{optional}): adds rugs to the histogram, default is \code{TRUE}.} \item{normal_curve}{\link{logical} (\emph{with default}): adds a normal curve to the histogram. Mean and standard deviation are calculated from the input data. More see details section.} \item{summary}{\link{character} (\emph{optional}): add statistic measures of centrality and dispersion to the plot. Can be one or more of several keywords. See details for available keywords.} \item{summary.pos}{\link{numeric} or \link{character} (\emph{with default}): optional position coordinates or keyword (e.g. \code{"topright"}) for the statistical summary. Alternatively, the keyword \code{"sub"} may be specified to place the summary below the plot header. However, this latter option in only possible if \code{mtext} is not used. In case of coordinate specification, y-coordinate refers to the right y-axis.} \item{colour}{\link{numeric} or \link{character} (\emph{with default}): optional vector of length 4 which specifies the colours of the following plot items in exactly this order: histogram bars, rug lines, normal distribution curve and standard error points (e.g., \code{c("grey", "black", "red", "grey")}).} \item{interactive}{\link{logical} (\emph{with default}): create an interactive histogram plot (requires the 'plotly' package)} \item{...}{further arguments and graphical parameters passed to \link{plot} or \link{hist}. If y-axis labels are provided, these must be specified as a vector of length 2 since the plot features two axes (e.g. \code{ylab = c("axis label 1", "axis label 2")}). Y-axes limits (\code{ylim}) must be provided as vector of length four, with the first two elements specifying the left axes limits and the latter two elements giving the right axis limits.} } \description{ Function plots a predefined histogram with an accompanying error plot as suggested by Rex Galbraith at the UK LED in Oxford 2010. } \details{ If the normal curve is added, the y-axis in the histogram will show the probability density. A statistic summary, i.e. a collection of statistic measures of centrality and dispersion (and further measures) can be added by specifying one or more of the following keywords: \itemize{ \item \code{"n"} (number of samples), \item \code{"mean"} (mean De value), \item \code{"mean.weighted"} (error-weighted mean), \item \code{"median"} (median of the De values), \item \code{"sdrel"} (relative standard deviation in percent), \item \code{"sdrel.weighted"} (error-weighted relative standard deviation in percent), \item \code{"sdabs"} (absolute standard deviation), \item \code{"sdabs.weighted"} (error-weighted absolute standard deviation), \item \code{"serel"} (relative standard error), \item \code{"serel.weighted"} (error-weighted relative standard error), \item \code{"seabs"} (absolute standard error), \item \code{"seabs.weighted"} (error-weighted absolute standard error), \item \code{"kurtosis"} (kurtosis) and \item \code{"skewness"} (skewness). } } \note{ The input data is not restricted to a special type. } \section{Function version}{ 0.4.5 } \examples{ ## load data data(ExampleData.DeValues, envir = environment()) ExampleData.DeValues <- convert_Second2Gray(ExampleData.DeValues$BT998, dose.rate = c(0.0438,0.0019)) ## plot histogram the easiest way plot_Histogram(ExampleData.DeValues) ## plot histogram with some more modifications plot_Histogram(ExampleData.DeValues, rug = TRUE, normal_curve = TRUE, cex.global = 0.9, pch = 2, colour = c("grey", "black", "blue", "green"), summary = c("n", "mean", "sdrel"), summary.pos = "topleft", main = "Histogram of De-values", mtext = "Example data set", ylab = c(expression(paste(D[e], " distribution")), "Standard error"), xlim = c(100, 250), ylim = c(0, 0.1, 5, 20)) } \seealso{ \link{hist}, \link{plot} } \author{ Michael Dietze, GFZ Potsdam (Germany)\cr Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Dietze, M., Kreutzer, S., 2025. plot_Histogram(): Plot a histogram with separate error plot. Function version 0.4.5. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } Luminescence/man/sort_RLum.Rd0000644000176200001440000000331114762561642015667 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-generics.R \name{sort_RLum} \alias{sort_RLum} \title{Sort data for RLum S4-class objects} \usage{ sort_RLum(object, ...) } \arguments{ \item{object}{\linkS4class{RLum} or \linkS4class{Risoe.BINfileData} (\strong{required}): S4 object of class \code{RLum.Analysis} or \code{Risoe.BINfileData}} \item{...}{further arguments passed to the specific class method} } \value{ An object of the same type as the input object provided. } \description{ The function provides a generalised access point for specific \linkS4class{RLum} objects. Depending on the input object, the corresponding function will be selected. Allowed arguments can be found in the documentations of the corresponding \linkS4class{RLum} class. } \section{Function version}{ 0.1.0 } \examples{ ## load example data data(ExampleData.XSYG, envir = environment()) obj <- OSL.SARMeasurement$Sequence.Object[1:9] sort_RLum(obj, slot = "recordType") sort_RLum(obj, info_element = "curveDescripter") } \seealso{ \linkS4class{RLum.Analysis}, \linkS4class{Risoe.BINfileData} } \author{ Marco Colombo, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Colombo, M., 2025. sort_RLum(): Sort data for RLum S4-class objects. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{utilities} Luminescence/man/Analyse_SAR.OSLdata.Rd0000644000176200001440000001543514762561642017342 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Analyse_SAR.OSLdata.R \name{Analyse_SAR.OSLdata} \alias{Analyse_SAR.OSLdata} \title{Analyse SAR CW-OSL measurements (deprecated)} \usage{ Analyse_SAR.OSLdata( input.data, signal.integral, background.integral, position, run, set, dtype, keep.SEL = FALSE, info.measurement = "unknown measurement", output.plot = FALSE, plot_singlePanels = FALSE, cex.global = 1, ... ) } \arguments{ \item{input.data}{\linkS4class{Risoe.BINfileData} (\strong{required}): input data from a Risø BIN file, produced by the function \link{read_BIN2R}.} \item{signal.integral}{\link{vector} (\strong{required}): channels used for the signal integral, e.g. \code{signal.integral=c(1:2)}} \item{background.integral}{\link{vector} (\strong{required}): channels used for the background integral, e.g. \code{background.integral=c(85:100)}} \item{position}{\link{vector} (\emph{optional}): reader positions that want to be analysed (e.g. \code{position=c(1:48)}. Empty positions are automatically omitted. If no value is given all positions are analysed by default.} \item{run}{\link{vector} (\emph{optional}): range of runs used for the analysis. If no value is given the range of the runs in the sequence is deduced from the \code{Risoe.BINfileData} object.} \item{set}{\link{vector} (\emph{optional}): range of sets used for the analysis. If no value is given the range of the sets in the sequence is deduced from the \code{Risoe.BINfileData} object.} \item{dtype}{\link{character} (\emph{optional}): allows to further limit the curves by their data type (\code{DTYPE}), e.g., \code{dtype = c("Natural", "Dose")} limits the curves to this two data types. By default all values are allowed. See \linkS4class{Risoe.BINfileData} for allowed data types.} \item{keep.SEL}{\link{logical} (default): option allowing to use the \code{SEL} element of the \linkS4class{Risoe.BINfileData} manually. \strong{NOTE:} In this case any limitation provided by \code{run}, \code{set} and \code{dtype} are ignored!} \item{info.measurement}{\link{character} (\emph{with default}): option to provide information about the measurement on the plot output (e.g. name of the BIN or BINX file).} \item{output.plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{plot_singlePanels}{\link{logical} (\emph{with default}): single plot output (\code{TRUE/FALSE}) to allow for plotting the results in single plot windows. Requires \code{output.plot = TRUE}.} \item{cex.global}{\link{numeric} (\emph{with default}): global scaling factor.} \item{...}{further arguments that will be passed to the function \link{calc_OSLLxTxRatio} (supported: \code{background.count.distribution}, \code{sigmab}, \code{sig0}; e.g., for instrumental error) and can be used to adjust the plot. Supported" \code{mtext}, \code{log}} } \value{ A plot (\emph{optional}) and \link{list} is returned containing the following elements: \item{LnLxTnTx}{\link{data.frame} of all calculated Lx/Tx values including signal, background counts and the dose points.} \item{RejectionCriteria}{\link{data.frame} with values that might by used as rejection criteria. NA is produced if no R0 dose point exists.} \item{SARParameters}{\link{data.frame} of additional measurement parameters obtained from the BIN file, e.g. preheat or read temperature (not valid for all types of measurements).} } \description{ The function analyses SAR CW-OSL curve data and provides a summary of the measured data for every position. The output of the function is optimised for SAR OSL measurements on quartz. The function works only for standard SAR protocol measurements introduced by Murray and Wintle (2000) with CW-OSL curves. For the calculation of the Lx/Tx value the function \link{calc_OSLLxTxRatio} is used. \strong{Provided rejection criteria} \verb{[recyling ratio]}: calculated for every repeated regeneration dose point. \verb{[recuperation]}: recuperation rate calculated by comparing the \code{Lx/Tx} values of the zero regeneration point with the \code{Ln/Tn} value (the \code{Lx/Tx} ratio of the natural signal). For methodological background see Aitken and Smith (1988) \verb{[IRSL/BOSL]}: the integrated counts (\code{signal.integral}) of an IRSL curve are compared to the integrated counts of the first regenerated dose point. It is assumed that IRSL curves got the same dose as the first regenerated dose point. \strong{Note:} This is not the IR depletion ratio described by Duller (2003). } \note{ Rejection criteria are calculated but not considered during the analysis to discard values. \strong{The analysis of IRSL data is not directly supported}. You may want to consider using the functions \link{analyse_SAR.CWOSL} or \link{analyse_pIRIRSequence} instead. \strong{The development of this function will not be continued. We recommend to use the function \link{analyse_SAR.CWOSL} or instead.} } \section{Function version}{ 0.2.18 } \examples{ ##load data data(ExampleData.BINfileData, envir = environment()) ##analyse data suppressWarnings( # silence the deprecation warning output <- Analyse_SAR.OSLdata(input.data = CWOSL.SAR.Data, signal.integral = c(1:5), background.integral = c(900:1000), position = c(1:1), output.plot = TRUE) ) ##combine results relevant for further analysis output.SAR <- data.frame(Dose = output$LnLxTnTx[[1]]$Dose, LxTx = output$LnLxTnTx[[1]]$LxTx, LxTx.Error = output$LnLxTnTx[[1]]$LxTx.Error) output.SAR } \section{How to cite}{ Kreutzer, S., Fuchs, M.C., 2025. Analyse_SAR.OSLdata(): Analyse SAR CW-OSL measurements (deprecated). Function version 0.2.18. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Aitken, M.J. and Smith, B.W., 1988. Optical dating: recuperation after bleaching. Quaternary Science Reviews 7, 387-393. Duller, G., 2003. Distinguishing quartz and feldspar in single grain luminescence measurements. Radiation Measurements, 37 (2), 161-165. Murray, A.S. and Wintle, A.G., 2000. Luminescence dating of quartz using an improved single-aliquot regenerative-dose protocol. Radiation Measurements 32, 57-73. } \seealso{ \link{calc_OSLLxTxRatio}, \linkS4class{Risoe.BINfileData}, \link{read_BIN2R}, \link{fit_DoseResponseCurve} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr Margret C. Fuchs, HZDR, Freiberg (Germany) , RLum Developer Team} \keyword{datagen} \keyword{dplot} Luminescence/man/metadata.Rd0000644000176200001440000000406614762561642015531 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-generics.R \name{add_metadata<-} \alias{add_metadata<-} \alias{rename_metadata<-} \alias{replace_metadata<-} \title{Safe manipulation of object metadata} \usage{ add_metadata(object, ...) <- value rename_metadata(object, ...) <- value replace_metadata(object, ...) <- value } \arguments{ \item{object}{(\strong{required}) object to manipulate} \item{...}{further arguments passed to the specific class method} \item{value}{the value to be assigned} } \description{ Generic functions for manipulation of metadata in \linkS4class{Risoe.BINfileData}, \linkS4class{RLum.Analysis} and \linkS4class{RLum.Data} objects. } \examples{ ## load example data data(ExampleData.BINfileData, envir = environment()) ## show data CWOSL.SAR.Data ## add a new field add_metadata(CWOSL.SAR.Data, info_element = "INSTITUTE") <- "Heidelberg University" ## rename a field rename_metadata(CWOSL.SAR.Data, info_element = "INSTITUTE") <- "INSTITUTION" ## replace all LTYPE to RSL ## but only for the first position replace_metadata( object = CWOSL.SAR.Data, info_element = "LTYPE", subset = (POSITION == 1)) <- "RSL" ## replacing a field with NULL allows to remove that field replace_metadata(CWOSL.SAR.Data, info_element = "PREVIOUS") <- NULL ## show the modified data CWOSL.SAR.Data } \seealso{ \linkS4class{RLum.Data}, \linkS4class{RLum.Analysis}, \linkS4class{Risoe.BINfileData} } \author{ Marco Colombo, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Colombo, M., 2025. add_metadata<-(): Safe manipulation of object metadata. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{utilities} Luminescence/man/names_RLum.Rd0000644000176200001440000000324214762561642016006 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-generics.R \name{names_RLum} \alias{names_RLum} \alias{names_RLum,list-method} \title{Name retrieval function for RLum S4 class objects} \usage{ names_RLum(object) \S4method{names_RLum}{list}(object) } \arguments{ \item{object}{\linkS4class{RLum} (\strong{required}): S4 object of class \code{RLum}} } \value{ A \link{character} vector. } \description{ The function provides a generalised access point for specific \linkS4class{RLum} objects. Depending on the input object, the corresponding function will be selected. Allowed arguments can be found in the documentations of the corresponding \linkS4class{RLum} class. } \section{Functions}{ \itemize{ \item \code{names_RLum(list)}: Returns a list of \linkS4class{RLum} objects that had been passed to \link{names_RLum} }} \section{Function version}{ 0.1.0 } \seealso{ \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Data.Image}, \linkS4class{RLum.Data.Spectrum}, \linkS4class{RLum.Analysis}, \linkS4class{RLum.Results} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. names_RLum(): Name retrieval function for RLum S4 class objects. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{utilities} Luminescence/man/convert_CW2pHMi.Rd0000644000176200001440000001577714762561642016675 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/convert_CW2pHMi.R \name{convert_CW2pHMi} \alias{convert_CW2pHMi} \alias{CW2pHMi} \title{Transform a CW-OSL curve into a pHM-OSL curve via interpolation under hyperbolic modulation conditions} \usage{ convert_CW2pHMi(values, delta) CW2pHMi(values, delta) } \arguments{ \item{values}{\linkS4class{RLum.Data.Curve} or \link{data.frame} (\strong{required}): \linkS4class{RLum.Data.Curve} or \link{data.frame} with measured curve data of type stimulation time (t) (\code{values[,1]}) and measured counts (cts) (\code{values[,2]}).} \item{delta}{\link{vector} (\emph{optional}): stimulation rate parameter, if no value is given, the optimal value is estimated automatically (see details). Smaller values of delta produce more points in the rising tail of the curve.} } \value{ The function returns the same data type as the input data type with the transformed curve values. \strong{\code{RLum.Data.Curve}} \tabular{ll}{ \verb{$CW2pHMi.x.t} \tab: transformed time values \cr \verb{$CW2pHMi.method} \tab: used method for the production of the new data points } \strong{\code{data.frame}} \tabular{ll}{ \verb{$x} \tab: time\cr \verb{$y.t} \tab: transformed count values\cr \verb{$x.t} \tab: transformed time values \cr \verb{$method} \tab: used method for the production of the new data points } } \description{ This function transforms a conventionally measured continuous-wave (CW) OSL-curve to a pseudo hyperbolic modulated (pHM) curve under hyperbolic modulation conditions using the interpolation procedure described by Bos & Wallinga (2012). } \details{ The complete procedure of the transformation is described in Bos & Wallinga (2012). The input \code{data.frame} consists of two columns: time (t) and count values (CW(t)) \strong{Internal transformation steps} (1) log(CW-OSL) values (2) Calculate t' which is the transformed time: \deqn{t' = t-(1/\delta)*log(1+\delta*t)} (3) Interpolate CW(t'), i.e. use the log(CW(t)) to obtain the count values for the transformed time (t'). Values beyond \code{min(t)} and \code{max(t)} produce \code{NA} values. (4) Select all values for t' < \code{min(t)}, i.e. values beyond the time resolution of t. Select the first two values of the transformed data set which contain no \code{NA} values and use these values for a linear fit using \link{lm}. (5) Extrapolate values for t' < \code{min(t)} based on the previously obtained fit parameters. (6) Transform values using \deqn{pHM(t) = (\delta*t/(1+\delta*t))*c*CW(t')} \deqn{c = (1+\delta*P)/\delta*P} \deqn{P = length(stimulation~period)} (7) Combine all values and truncate all values for t' > \code{max(t)} \strong{NOTE:} The number of values for t' < \code{min(t)} depends on the stimulation rate parameter \code{delta}. To avoid the production of too many artificial data at the raising tail of the determined pHM curve, it is recommended to use the automatic estimation routine for \code{delta}, i.e. provide no value for \code{delta}. } \note{ According to Bos & Wallinga (2012), the number of extrapolated points should be limited to avoid artificial intensity data. If \code{delta} is provided manually and more than two points are extrapolated, a warning message is returned. The function \link{approx} may produce some \code{Inf} and \code{NaN} data. The function tries to manually interpolate these values by calculating the \code{mean} using the adjacent channels. If two invalid values are succeeding, the values are removed and no further interpolation is attempted. In every case a warning message is shown. } \section{Function version}{ 0.2.3 } \examples{ ##(1) - simple transformation ##load CW-OSL curve data data(ExampleData.CW_OSL_Curve, envir = environment()) ##transform values values.transformed <- convert_CW2pHMi(ExampleData.CW_OSL_Curve) ##plot plot(values.transformed$x, values.transformed$y.t, log = "x") ##(2) - load CW-OSL curve from BIN-file and plot transformed values ##load BINfile #BINfileData<-readBIN2R("[path to BIN-file]") data(ExampleData.BINfileData, envir = environment()) ##grep first CW-OSL curve from ALQ 1 curve.ID<-CWOSL.SAR.Data@METADATA[CWOSL.SAR.Data@METADATA[,"LTYPE"]=="OSL" & CWOSL.SAR.Data@METADATA[,"POSITION"]==1 ,"ID"] curve.HIGH<-CWOSL.SAR.Data@METADATA[CWOSL.SAR.Data@METADATA[,"ID"]==curve.ID[1] ,"HIGH"] curve.NPOINTS<-CWOSL.SAR.Data@METADATA[CWOSL.SAR.Data@METADATA[,"ID"]==curve.ID[1] ,"NPOINTS"] ##combine curve to data set curve<-data.frame(x = seq(curve.HIGH/curve.NPOINTS,curve.HIGH, by = curve.HIGH/curve.NPOINTS), y=unlist(CWOSL.SAR.Data@DATA[curve.ID[1]])) ##transform values curve.transformed <- convert_CW2pHMi(curve) ##plot curve plot(curve.transformed$x, curve.transformed$y.t, log = "x") ##(3) - produce Fig. 4 from Bos & Wallinga (2012) ##load data data(ExampleData.CW_OSL_Curve, envir = environment()) values <- CW_Curve.BosWallinga2012 ##open plot area plot(NA, NA, xlim=c(0.001,10), ylim=c(0,8000), ylab="pseudo OSL (cts/0.01 s)", xlab="t [s]", log="x", main="Fig. 4 - Bos & Wallinga (2012)") values.t <- convert_CW2pLMi(values, P = 1/20) lines(values[1:length(values.t[, 1]), 1], values.t[, 2], col="red" ,lwd=1.3) text(0.03,4500,"LM", col="red" ,cex=.8) values.t <- convert_CW2pHMi(values, delta = 40) lines(values[1:length(values.t[, 1]), 1], values.t[, 2], col="black", lwd=1.3) text(0.005,3000,"HM", cex=.8) values.t <- convert_CW2pPMi(values, P = 1/10) lines(values[1:length(values.t[, 1]), 1], values.t[, 2], col="blue", lwd=1.3) text(0.5,6500,"PM", col="blue" ,cex=.8) } \section{How to cite}{ Kreutzer, S., 2025. convert_CW2pHMi(): Transform a CW-OSL curve into a pHM-OSL curve via interpolation under hyperbolic modulation conditions. Function version 0.2.3. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Bos, A.J.J. & Wallinga, J., 2012. How to visualize quartz OSL signal components. Radiation Measurements, 47, 752-758.\cr \strong{Further Reading} Bulur, E., 1996. An Alternative Technique For Optically Stimulated Luminescence (OSL) Experiment. Radiation Measurements, 26, 701-709. Bulur, E., 2000. A simple transformation for converting CW-OSL curves to LM-OSL curves. Radiation Measurements, 32, 141-145. } \seealso{ \link{convert_CW2pLM}, \link{convert_CW2pLMi}, \link{convert_CW2pPMi}, \link{fit_LMCurve}, \link{lm}, \linkS4class{RLum.Data.Curve} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany)\cr Based on comments and suggestions from:\cr Adrie J.J. Bos, Delft University of Technology, The Netherlands , RLum Developer Team} \keyword{manip} Luminescence/man/apply_Crosstalk.Rd0000644000176200001440000000530314762561642017116 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/apply_Crosstalk.R \name{apply_Crosstalk} \alias{apply_Crosstalk} \title{Apply crosstalk} \usage{ apply_Crosstalk(object, n_crosstalk = 0.2) } \arguments{ \item{object}{\linkS4class{RLum.Results} or \link{numeric} (\strong{required}): containing a numerical vector of length 100, representing one or more measurement discs ("positions") in a reader. Each element in the vector represents one grain hole location on a disc.} \item{n_crosstalk}{\link{numeric} (\emph{with default}): A single number quantifying the added crosstalk. Defaults for testing purposes to 0.2. Can be any number, even negative, but for realistic simulations we suggest something between 0 and 0.25.} } \value{ A vector of size 100, with the value at each grain hole location including simulated crosstalk. } \description{ Add crosstalk, evenly spread in rook (top-right-bottom-left) directions, to all grain whole locations on one measurement discs (=on position on a measurement wheel in a reader). An added crosstalk value of as example 0.2 means that 0.2 of the value of the central grain is added to each grain in the rook directions. This is an additive action: the central grain itself is not affected by this operation (but will on its turn increase because of crosstalk from its neighbours). This function is used for simulations: can this added crosstalk be detected? } \details{ If an element in \code{object} is \code{NA}, it is internally set to 0, so it will not be added. } \examples{ ## Create artificial disc observation observations <- set_RLum(class = "RLum.Results", data = list(vn_values = rep(x = c(1,2), each = 50)) ) hist(get_RLum(object = observations)) ## Add crosstalk (with default set to 0.2), and visualize the difference ## in the resulting histogram. observations_with_simulated_crosstalk <- apply_Crosstalk(observations) hist(observations_with_simulated_crosstalk) } \section{How to cite}{ Boer, A.d., Steinbuch, L., 2025. apply_Crosstalk(): Apply crosstalk. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ de Boer, A-M., Steinbuch, L., Heuvelink, G.B.M., Wallinga, J., 2025. A novel tool to assess crosstalk in single-grain luminescence detection. Submitted. } \author{ Anna-Maartje de Boer, Luc Steinbuch, Wageningen University & Research, 2025 , RLum Developer Team} \keyword{manip} Luminescence/man/merge_RLum.Data.Curve.Rd0000644000176200001440000001016514762561642017737 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/merge_RLum.Data.Curve.R \name{merge_RLum.Data.Curve} \alias{merge_RLum.Data.Curve} \title{Merge function for RLum.Data.Curve S4 class objects} \usage{ merge_RLum.Data.Curve(object, merge.method = "mean", method.info) } \arguments{ \item{object}{\link{list} of \linkS4class{RLum.Data.Curve} (\strong{required}): list of objects to be merged.} \item{merge.method}{\link{character} (\strong{required}): method for combining of the objects, e.g. \code{'mean'} (default), \code{'median'}, \code{'sum'}, see details for further information and allowed methods. Note: Elements in slot info will be taken from the first curve in the list.} \item{method.info}{\link{numeric} (\emph{optional}): allows to specify how info elements of the input objects are combined, e.g. \code{1} means that just the elements from the first object are kept, \code{2} keeps only the info elements from the 2 object etc. If nothing is provided all elements are combined.} } \value{ Returns an \linkS4class{RLum.Data.Curve} object. } \description{ This function allows to merge \linkS4class{RLum.Data.Curve} objects in different ways without modifying the original objects. Merging is always applied on the 2nd column of the object's data matrix. \strong{Supported merge operations are:} \code{"mean"} (default) The mean over the count values is calculated using the function \link{rowMeans}. \code{"median"} The median over the count values is calculated using the function \link[matrixStats:rowMedians]{matrixStats::rowMedians}. \code{"sum"} All count values will be summed up using the function \link{rowSums}. \code{"sd"} The standard deviation over the count values is calculated using the function \link[matrixStats:rowSds]{matrixStats::rowSds}. \code{"var"} The variance over the count values is calculated using the function \link[matrixStats:rowVars]{matrixStats::rowVars}. \code{"min"} The min values from the count values is chosen using the function \link[matrixStats:rowRanges]{matrixStats::rowMins}. \code{"max"} The max values from the count values is chosen using the function \link[matrixStats:rowRanges]{matrixStats::rowMins}. \code{"append"} Appends count values of all curves to one combined data curve. The channel width is automatically re-calculated, but requires a constant channel width of the original data. \code{"-"} The row sums of the last objects are subtracted from the first object. \code{"*"} The row sums of the last objects are multiplied with the first object. \code{"/"} Values of the first object are divided by row sums of the last objects. } \note{ The information from the slot \code{recordType} is taken from the first object in the input list. The slot 'curveType' is filled with the name \code{merged}. } \section{S3-generic support}{ This function is fully operational via S3-generics: \code{+}, \code{-}, \code{/}, \code{*}, \code{merge} } \section{Function version}{ 0.2.1 } \examples{ ##load example data data(ExampleData.XSYG, envir = environment()) ##grep first and 3d TL curves TL.curves <- get_RLum(OSL.SARMeasurement$Sequence.Object, recordType = "TL (UVVIS)") TL.curve.1 <- TL.curves[[1]] TL.curve.3 <- TL.curves[[3]] ##plot single curves plot_RLum(TL.curve.1) plot_RLum(TL.curve.3) ##subtract the 1st curve from the 2nd and plot TL.curve.merged <- merge_RLum.Data.Curve(list(TL.curve.3, TL.curve.1), merge.method = "/") plot_RLum(TL.curve.merged) } \seealso{ \link{merge_RLum}, \linkS4class{RLum.Data.Curve} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. merge_RLum.Data.Curve(): Merge function for RLum.Data.Curve S4 class objects. Function version 0.2.1. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{internal} \keyword{utilities} Luminescence/man/subset_SingleGrainData.Rd0000644000176200001440000000352214762561642020326 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/subset_SingleGrainData.R \name{subset_SingleGrainData} \alias{subset_SingleGrainData} \title{Simple Subsetting of Single Grain Data from Risø BIN/BINX files} \usage{ subset_SingleGrainData(object, selection) } \arguments{ \item{object}{\linkS4class{Risoe.BINfileData} (\strong{required}): input object with the data to subset} \item{selection}{\link{data.frame} (\strong{required}): selection table with two columns for position (1st column) and grain (2nd column) (columns names do not matter)} } \value{ A subset \linkS4class{Risoe.BINfileData} object } \description{ Most measured single grains do not exhibit light and it makes usually sense to subset single grain datasets using a table of position and grain pairs } \section{Function version}{ 0.1.0 } \examples{ ## load example data data(ExampleData.BINfileData, envir = environment()) ## set POSITION/GRAIN pair dataset selection <- data.frame(POSITION = c(1,5,7), GRAIN = c(0,0,0)) ##subset subset_SingleGrainData(object = CWOSL.SAR.Data, selection = selection) } \seealso{ \linkS4class{Risoe.BINfileData}, \link{read_BIN2R}, \link{verify_SingleGrainData} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. subset_SingleGrainData(): Simple Subsetting of Single Grain Data from Risø BIN/BINX files. Function version 0.1.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{datagen} \keyword{manip} Luminescence/man/calc_CentralDose.Rd0000644000176200001440000001201514762561642017127 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_CentralDose.R \name{calc_CentralDose} \alias{calc_CentralDose} \title{Apply the central age model (CAM) after Galbraith et al. (1999) to a given De distribution} \usage{ calc_CentralDose(data, sigmab, log = TRUE, plot = TRUE, ...) } \arguments{ \item{data}{\linkS4class{RLum.Results} or \link{data.frame} (\strong{required}): for \link{data.frame}: two columns with De \code{(data[,1])} and De error \code{(data[,2])}. Records containing missing values will be removed.} \item{sigmab}{\link{numeric} (\emph{with default}): additional spread in De values. This value represents the expected overdispersion in the data should the sample be well-bleached (Cunningham & Walling 2012, p. 100). \strong{NOTE}: For the logged model (\code{log = TRUE}) this value must be a fraction, e.g. 0.2 (= 20 \%). If the un-logged model is used (\code{log = FALSE}), sigmab must be provided in the same absolute units of the De values (seconds or Gray).} \item{log}{\link{logical} (\emph{with default}): fit the (un-)logged central age model to De data. Log transformation is allowed only if the De values are positive.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{further arguments (\code{trace}, \code{verbose}).} } \value{ Returns a plot (\emph{optional}) and terminal output. In addition an \linkS4class{RLum.Results} object is returned containing the following elements: \item{.$summary}{\link{data.frame} summary of all relevant model results.} \item{.$data}{\link{data.frame} original input data} \item{.$args}{\link{list} used arguments} \item{.$call}{\link{call} the function call} \item{.$profile}{\link{data.frame} the log likelihood profile for sigma} The output should be accessed using the function \link{get_RLum}. } \description{ This function calculates the central dose and dispersion of the De distribution, their standard errors and the profile log likelihood function for \code{sigma}. This function uses the equations of Galbraith & Roberts (2012). The parameters \code{delta} and \code{sigma} are estimated by numerically solving eq. 15 and 16. Their standard errors are approximated using eq. 17. In addition, the profile log-likelihood function for \code{sigma} is calculated using eq. 18 and presented as a plot. Numerical values of the maximum likelihood approach are \strong{only} presented in the plot and \strong{not} in the console. A detailed explanation on maximum likelihood estimation can be found in the appendix of Galbraith & Laslett (1993, 468-470) and Galbraith & Roberts (2012, 15) } \section{Function version}{ 1.5 } \examples{ ##load example data data(ExampleData.DeValues, envir = environment()) ##apply the central dose model calc_CentralDose(ExampleData.DeValues$CA1) } \section{How to cite}{ Burow, C., 2025. calc_CentralDose(): Apply the central age model (CAM) after Galbraith et al. (1999) to a given De distribution. Function version 1.5. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Galbraith, R.F. & Laslett, G.M., 1993. Statistical models for mixed fission track ages. Nuclear Tracks Radiation Measurements 4, 459-470. Galbraith, R.F., Roberts, R.G., Laslett, G.M., Yoshida, H. & Olley, J.M., 1999. Optical dating of single grains of quartz from Jinmium rock shelter, northern Australia. Part I: experimental design and statistical models. Archaeometry 41, 339-364. Galbraith, R.F. & Roberts, R.G., 2012. Statistical aspects of equivalent dose and error calculation and display in OSL dating: An overview and some recommendations. Quaternary Geochronology 11, 1-27. \strong{Further reading} Arnold, L.J. & Roberts, R.G., 2009. Stochastic modelling of multi-grain equivalent dose (De) distributions: Implications for OSL dating of sediment mixtures. Quaternary Geochronology 4, 204-230. Bailey, R.M. & Arnold, L.J., 2006. Statistical modelling of single grain quartz De distributions and an assessment of procedures for estimating burial dose. Quaternary Science Reviews 25, 2475-2502. Cunningham, A.C. & Wallinga, J., 2012. Realizing the potential of fluvial archives using robust OSL chronologies. Quaternary Geochronology 12, 98-106. Rodnight, H., Duller, G.A.T., Wintle, A.G. & Tooth, S., 2006. Assessing the reproducibility and accuracy of optical dating of fluvial deposits. Quaternary Geochronology, 1 109-120. Rodnight, H., 2008. How many equivalent dose values are needed to obtain a reproducible distribution?. Ancient TL 26, 3-10. } \seealso{ \link{plot}, \link{calc_CommonDose}, \link{calc_FiniteMixture}, \link{calc_FuchsLang2001}, \link{calc_MinDose} } \author{ Christoph Burow, University of Cologne (Germany) \cr Based on a rewritten S script of Rex Galbraith, 2010 , RLum Developer Team} Luminescence/man/get_RLum.Rd0000644000176200001440000000527214762561642015467 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Luminescence-generics.R \name{get_RLum} \alias{get_RLum} \alias{get_RLum,list-method} \alias{get_RLum,NULL-method} \title{General accessor function for RLum S4 class objects} \usage{ get_RLum(object, ...) \S4method{get_RLum}{list}(object, class = NULL, null.rm = FALSE, ...) \S4method{get_RLum}{NULL}(object, ...) } \arguments{ \item{object}{\linkS4class{RLum} (\strong{required}): S4 object of class \code{RLum} or an object of type \link{list} containing only objects of type \linkS4class{RLum}} \item{...}{further arguments passed to the specific class method.} \item{class}{\link{character} (\emph{optional}): allows to define the class that gets selected if applied to a list, e.g., if a list consists of different type of \linkS4class{RLum} objects, this arguments allows to make selection. If nothing is provided, all RLum-objects are treated.} \item{null.rm}{\link{logical} (\emph{with default}): remove empty and \code{NULL} objects.} } \value{ An object of the same type as the input object provided. } \description{ The function provides a generalised access point for specific \linkS4class{RLum} objects. Depending on the input object, the corresponding function will be selected. Allowed arguments can be found in the documentations of the corresponding \linkS4class{RLum} class. } \section{Functions}{ \itemize{ \item \code{get_RLum(list)}: Returns a list of \linkS4class{RLum} objects that had been passed to \link{get_RLum} \item \code{get_RLum(`NULL`)}: Returns \code{NULL}. }} \section{Function version}{ 0.3.3 } \examples{ ## Example based using data and from the calc_CentralDose() function ## load example data data(ExampleData.DeValues, envir = environment()) ## apply the central dose model 1st time temp1 <- calc_CentralDose(ExampleData.DeValues$CA1) ## get results and store them in a new object temp.get <- get_RLum(object = temp1) } \seealso{ \linkS4class{RLum.Data.Curve}, \linkS4class{RLum.Data.Image}, \linkS4class{RLum.Data.Spectrum}, \linkS4class{RLum.Analysis}, \linkS4class{RLum.Results} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. get_RLum(): General accessor function for RLum S4 class objects. Function version 0.3.3. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{utilities} Luminescence/man/analyse_SAR.TL.Rd0000644000176200001440000001216114762561642016423 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/analyse_SAR.TL.R \name{analyse_SAR.TL} \alias{analyse_SAR.TL} \title{Analyse SAR TL measurements} \usage{ analyse_SAR.TL( object, object.background, signal.integral.min, signal.integral.max, integral_input = "channel", sequence.structure = c("PREHEAT", "SIGNAL", "BACKGROUND"), rejection.criteria = list(recycling.ratio = 10, recuperation.rate = 10), dose.points, log = "", ... ) } \arguments{ \item{object}{\linkS4class{RLum.Analysis} or a \link{list} of such objects (\strong{required}) : input object containing data for analysis} \item{object.background}{currently not used} \item{signal.integral.min}{\link{integer} (\strong{required}): requires the channel number for the lower signal integral bound (e.g. \code{signal.integral.min = 100})} \item{signal.integral.max}{\link{integer} (\strong{required}): requires the channel number for the upper signal integral bound (e.g. \code{signal.integral.max = 200})} \item{integral_input}{\link{character} (\emph{with default}): defines the input for the arguments \code{signal.integral.min} and \code{signal.integral.max}. These limits can be either provided \code{'channel'} number (the default) or \code{'temperature'}. If \code{'temperature'} is chosen, the best matching channel is selected.} \item{sequence.structure}{\link{vector} \link{character} (\emph{with default}): specifies the general sequence structure. Three steps are allowed (\code{"PREHEAT"}, \code{"SIGNAL"}, \code{"BACKGROUND"}), in addition a parameter \code{"EXCLUDE"}. This allows excluding TL curves which are not relevant for the protocol analysis. (\strong{Note:} No TL are removed by default)} \item{rejection.criteria}{\link{list} (\emph{with default}): list containing rejection criteria in percentage for the calculation.} \item{dose.points}{\link{numeric} (\emph{optional}): option set dose points manually} \item{log}{\link{character} (\emph{with default}): a character string which contains \code{"x"} if the x-axis is to be logarithmic, \code{"y"} if the y axis is to be logarithmic and \code{"xy"} or \code{"yx"} if both axes are to be logarithmic. See \link{plot.default}).} \item{...}{further arguments that will be passed to the function \link{fit_DoseResponseCurve}} } \value{ A plot (\emph{optional}) and an \linkS4class{RLum.Results} object is returned containing the following elements: \item{De.values}{\link{data.frame} containing De-values and further parameters} \item{LnLxTnTx.values}{\link{data.frame} of all calculated \code{Lx/Tx} values including signal, background counts and the dose points.} \item{rejection.criteria}{\link{data.frame} with values that might by used as rejection criteria. NA is produced if no R0 dose point exists.} The output should be accessed using the function \link{get_RLum}. } \description{ The function performs a SAR TL analysis on a \linkS4class{RLum.Analysis} object including growth curve fitting. } \details{ This function performs a SAR TL analysis on a set of curves. The SAR procedure in general is given by Murray and Wintle (2000). For the calculation of the \code{Lx/Tx} value the function \link{calc_TLLxTxRatio} is used. \strong{Provided rejection criteria} \verb{[recycling.ratio]}: calculated for every repeated regeneration dose point. \verb{[recuperation.rate]}: recuperation rate calculated by comparing the \code{Lx/Tx} values of the zero regeneration point with the \code{Ln/Tn} value (the \code{Lx/Tx} ratio of the natural signal). For methodological background see Aitken and Smith (1988) } \note{ \strong{THIS IS A BETA VERSION} None TL curves will be removed from the input object without further warning. } \section{Function version}{ 0.3.0 } \examples{ ##load data data(ExampleData.BINfileData, envir = environment()) ##transform the values from the first position in a RLum.Analysis object object <- Risoe.BINfileData2RLum.Analysis(TL.SAR.Data, pos=3) ##perform analysis analyse_SAR.TL( object = object, signal.integral.min = 210, signal.integral.max = 220, fit.method = "EXP OR LIN", sequence.structure = c("SIGNAL", "BACKGROUND")) } \section{How to cite}{ Kreutzer, S., 2025. analyse_SAR.TL(): Analyse SAR TL measurements. Function version 0.3.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Aitken, M.J. and Smith, B.W., 1988. Optical dating: recuperation after bleaching. Quaternary Science Reviews 7, 387-393. Murray, A.S. and Wintle, A.G., 2000. Luminescence dating of quartz using an improved single-aliquot regenerative-dose protocol. Radiation Measurements 32, 57-73. } \seealso{ \link{calc_TLLxTxRatio}, \link{fit_DoseResponseCurve}, \linkS4class{RLum.Analysis}, \linkS4class{RLum.Results}, \link{get_RLum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{datagen} \keyword{plot} Luminescence/man/calc_HomogeneityTest.Rd0000644000176200001440000000453014762561642020056 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_HomogeneityTest.R \name{calc_HomogeneityTest} \alias{calc_HomogeneityTest} \title{Apply a simple homogeneity test after Galbraith (2003)} \usage{ calc_HomogeneityTest(data, log = TRUE, ...) } \arguments{ \item{data}{\linkS4class{RLum.Results} or \link{data.frame} (\strong{required}): for \link{data.frame}: two columns with De \code{(data[,1])} and De error \code{(values[,2])}} \item{log}{\link{logical} (\emph{with default}): perform the homogeneity test with (un-)logged data} \item{...}{further arguments (for internal compatibility only).} } \value{ Returns a terminal output. In addition an \linkS4class{RLum.Results}-object is returned containing the following elements: \item{summary}{\link{data.frame} summary of all relevant model results.} \item{data}{\link{data.frame} original input data} \item{args}{\link{list} used arguments} \item{call}{\link{call} the function call} The output should be accessed using the function \link{get_RLum}. } \description{ A simple homogeneity test for De estimates For details see Galbraith (2003). } \section{Function version}{ 0.3.0 } \examples{ ## load example data data(ExampleData.DeValues, envir = environment()) ## apply the homogeneity test calc_HomogeneityTest(ExampleData.DeValues$BT998) ## using the data presented by Galbraith (2003) df <- data.frame( x = c(30.1, 53.8, 54.3, 29.0, 47.6, 44.2, 43.1), y = c(4.8, 7.1, 6.8, 4.3, 5.2, 5.9, 3.0)) calc_HomogeneityTest(df) } \section{How to cite}{ Burow, C., Kreutzer, S., 2025. calc_HomogeneityTest(): Apply a simple homogeneity test after Galbraith (2003). Function version 0.3.0. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Galbraith, R.F., 2003. A simple homogeneity test for estimates of dose obtained using OSL. Ancient TL 21, 75-77. } \seealso{ \link[stats:Chisquare]{stats::pchisq} } \author{ Christoph Burow, University of Cologne (Germany), Sebastian Kreutzer, IRAMAT-CRP2A, Université Bordeaux Montaigne (France) , RLum Developer Team} Luminescence/man/convert_Activity2Concentration.Rd0000644000176200001440000001122614762561642022112 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/convert_Activity2Concentration.R \name{convert_Activity2Concentration} \alias{convert_Activity2Concentration} \title{Convert Nuclide Activities to Abundance and Vice Versa} \usage{ convert_Activity2Concentration(data, input_unit = "activity", verbose = TRUE) } \arguments{ \item{data}{\link{data.frame} (\strong{required}): provide dose rate data (activity or concentration) in three columns. The first column indicates the nuclide, the 2nd column measured value and in the 3rd column its error value. Allowed nuclide data are \code{'U-238'}, \code{'Th-232'} and \code{'K-40'}. See examples for an example.} \item{input_unit}{\link{character} (\emph{with default}): specify unit of input data given in the dose rate data frame, choose between \code{"activity"} (considered as given Bq/kg) and \code{"abundance"} (considered as given in mug/g or mass. \%). The default value is \code{"activity"}} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} } \value{ Returns an \linkS4class{RLum.Results} object with a \link{data.frame} containing input and newly calculated values. Please not that in the column header µg/g is written as \code{mug/g} due to the R requirement to maintain packages portable using ASCII characters only. } \description{ The function performs the conversion of the specific activities into mass abundance and vice versa for the radioelements U, Th, and K to harmonise the measurement unit with the required data input unit of potential analytical tools for, e.g. dose rate calculation or related functions such as \link{use_DRAC}. } \details{ The conversion from nuclide activity of a sample to nuclide concentration is performed using conversion factors that are based on the mass-related specific activity of the respective nuclide. Constants used in this function were obtained from \verb{https://physics.nist.gov/cuu/Constants/} all atomic weights and composition values from \verb{https://www.nist.gov/pml/atomic-weights-and-isotopic-compositions-relative-atomic-masses} and the nuclide data from \verb{https://www.iaea.org/resources/databases/livechart-of-nuclides-advanced-version} The factors can be calculated using the equation: \deqn{ A = N_A \frac{N_{abund}}{N_{mol.mass}} ln(2) / N.half.life } to convert in µg/g we further use: \deqn{ f = A / 10^6 } where: \itemize{ \item \code{N_A} - Avogadro constant in 1/mol \item \code{A} - specific activity of the nuclide in Bq/kg \item \code{N.abund} - relative natural abundance of the isotope \item \code{N.mol.mass} molar mass in kg/mol \item \code{N.half.life} half-life of the nuclide in s } example for calculating the activity of the radionuclide U-238: \itemize{ \item \code{N_A} = 6.02214076e+23 (1/mol) \item \code{T_0.5} = 1.41e+17 (s) \item \code{m_U_238} = 0.23802891 (kg/mol) \item \code{U_abund} = 0.992745 (unitless) } \deqn{A_{U} = N_{A} * U_{abund} / m_{U_238} * ln(2) / T_{1/2} = 2347046} (Bq/kg) \deqn{f.U = A_{U} / 10^6} } \note{ Although written otherwise for historical reasons. Input values must be element values. For instance, if a value is provided for U-238 the function assumes that this value represents the sum (activity or abundance) of U-238, U-235 and U-234. In other words, 1 µg/g of U means that this is the composition of 0.992 parts of U-238, 0.000054 parts of U-234, and 0.00072 parts of U-235. } \section{Function version}{ 0.1.2 } \examples{ ##construct data.frame data <- data.frame( NUCLIDES = c("U-238", "Th-232", "K-40"), VALUE = c(40,80,100), VALUE_ERROR = c(4,8,10), stringsAsFactors = FALSE) ##perform analysis convert_Activity2Concentration(data) } \section{How to cite}{ Fuchs, M.C., 2025. convert_Activity2Concentration(): Convert Nuclide Activities to Abundance and Vice Versa. Function version 0.1.2. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Debertin, K., Helmer, R.G., 1988. Gamma- and X-ray Spectrometry with Semiconductor Detectors, Elsevier Science Publishers, p.283 Wiechen, A., Ruehle, H., Vogl, K., 2013. Bestimmung der massebezogenen Aktivitaet von Radionukliden. AEQUIVAL/MASSAKT, ISSN 1865-8725, \url{https://www.bmuv.de/fileadmin/Daten_BMU/Download_PDF/Strahlenschutz/aequival-massakt_v2013-07_bf.pdf} } \author{ Margret C. Fuchs, Helmholtz-Institute Freiberg for Resource Technology (Germany) , RLum Developer Team} \keyword{IO} Luminescence/man/read_SPE2R.Rd0000644000176200001440000001040114762561642015565 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/read_SPE2R.R \name{read_SPE2R} \alias{read_SPE2R} \title{Import Princeton Instruments (TM) SPE-file into R} \usage{ read_SPE2R( file, output.object = "RLum.Data.Image", frame.range, txtProgressBar = TRUE, verbose = TRUE, ... ) } \arguments{ \item{file}{\link{character} (\strong{required}): SPE-file name (including path), e.g. \itemize{ \item \verb{[WIN]}: \code{read_SPE2R("C:/Desktop/test.spe")} \item \verb{[MAC/LINUX]}: \code{read_SPE2R("/User/test/Desktop/test.spe")}. Additionally, it can be a URL starting with http:// or https://. }} \item{output.object}{\link{character} (\emph{with default}): set \code{RLum} output object. Allowed types are \code{"RLum.Data.Spectrum"}, \code{"RLum.Data.Image"} or \code{"matrix"}} \item{frame.range}{\link{vector} (\emph{optional}): limit frame range, e.g. select first 100 frames by \code{frame.range = c(1,100)}} \item{txtProgressBar}{\link{logical} (\emph{with default}): enable/disable the progress bar. Ignored if \code{verbose = FALSE}.} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{...}{not used, for compatibility reasons only} } \value{ Depending on the chosen option the functions returns three different type of objects: \code{output.object} \code{RLum.Data.Spectrum} An object of type \linkS4class{RLum.Data.Spectrum} is returned. Row sums are used to integrate all counts over one channel. \code{RLum.Data.Image} An object of type \linkS4class{RLum.Data.Image} is returned. Due to performance reasons the import is aborted for files containing more than 100 frames. This limitation can be overwritten manually by using the argument \code{frame.range}. \code{matrix} Returns a matrix of the form: Rows = Channels, columns = Frames. For the transformation the function \link{get_RLum} is used, meaning that the same results can be obtained by using the function \link{get_RLum} on an \code{RLum.Data.Spectrum} or \code{RLum.Data.Image} object. } \description{ Function imports Princeton Instruments (TM) SPE-files into R environment and provides \linkS4class{RLum.Data.Image} objects as output. } \details{ Function provides an R only import routine for the Princeton Instruments SPE format. Import functionality is based on the file format description provided by Princeton Instruments and a MatLab script written by Carl Hall (see references). } \note{ \strong{The function does not test whether the input data are spectra or pictures for spatial resolved analysis!} The function has been successfully tested for SPE format versions 2.x. \emph{Currently not all information provided by the SPE format are supported.} } \section{Function version}{ 0.1.5 } \examples{ ## to run examples uncomment lines and run the code ##(1) Import data as RLum.Data.Spectrum object #file <- file.choose() #temp <- read_SPE2R(file) #temp ##(2) Import data as RLum.Data.Image object #file <- file.choose() #temp <- read_SPE2R(file, output.object = "RLum.Data.Image") #temp ##(3) Import data as matrix object #file <- file.choose() #temp <- read_SPE2R(file, output.object = "matrix") #temp ##(4) Export raw data to csv, if temp is a RLum.Data.Spectrum object # write.table(x = get_RLum(temp), # file = "[your path and filename]", # sep = ";", row.names = FALSE) } \section{How to cite}{ Kreutzer, S., 2025. read_SPE2R(): Import Princeton Instruments (TM) SPE-file into R. Function version 0.1.5. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Princeton Instruments, 2014. Princeton Instruments SPE 3.0 File Format Specification, Version 1.A (for document URL please use an internet search machine) Hall, C., 2012: readSPE.m. \verb{https://www.mathworks.com/matlabcentral/fileexchange/35940-readspe} } \seealso{ \link{readBin}, \linkS4class{RLum.Data.Spectrum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \keyword{IO} Luminescence/man/read_TIFF2R.Rd0000644000176200001440000000270114762561642015672 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/read_TIFF2R.R \name{read_TIFF2R} \alias{read_TIFF2R} \title{Import TIFF Image Data into R} \usage{ read_TIFF2R(file, verbose = TRUE, ...) } \arguments{ \item{file}{\link{character} (\strong{required}): file name} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{...}{not in use, for compatibility reasons only} } \value{ \linkS4class{RLum.Data.Image} object } \description{ Simple wrapper around \link[tiff:readTIFF]{tiff::readTIFF} to import TIFF images and TIFF image stacks to be further processed within the package \code{'Luminescence'} } \section{Function version}{ 0.1.2 } \examples{ \dontrun{ file <- file.choose() image <- read_TIFF2R(file) } } \seealso{ \link[tiff:readTIFF]{tiff::readTIFF}, \linkS4class{RLum.Data.Image} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. read_TIFF2R(): Import TIFF Image Data into R. Function version 0.1.2. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{IO} Luminescence/man/scale_GammaDose.Rd0000644000176200001440000002630414762561642016754 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/scale_GammaDose.R \name{scale_GammaDose} \alias{scale_GammaDose} \title{Calculate the gamma dose deposited within a sample taking layer-to-layer variations in radioactivity into account (according to Aitken, 1985)} \usage{ scale_GammaDose( data, conversion_factors = c("Cresswelletal2018", "Guerinetal2011", "AdamiecAitken1998", "Liritzisetal2013")[1], fractional_gamma_dose = c("Aitken1985")[1], verbose = TRUE, plot = TRUE, plot_singlePanels = FALSE, ... ) } \arguments{ \item{data}{\link{data.frame} (\strong{required}): A table containing all relevant information for each individual layer. The table must have the following named columns: \itemize{ \item \code{id} (\link{character}): an arbitrary id or name of each layer \item \code{thickness} (\link{numeric}): vertical extent of each layer in cm \item \code{sample_offset} (\link{logical}): distance of the sample in cm, \strong{measured from the BOTTOM OF THE TARGET LAYER}. Except for the target layer all values must be \code{NA}. \item \code{K} (\link{numeric}): K nuclide content in \% \item \code{K_se} (\link{numeric}): error on the K content \item \code{Th} (\link{numeric}): Th nuclide content in ppm \item \code{Th_se} (\link{numeric}): error on the Th content \item \code{U} (\link{numeric}): U nuclide content in ppm \item \code{U_se} (\link{numeric}): error on the U content \item \code{water_content} (\link{numeric}): water content of each layer in \% \item \code{water_content_se} (\link{numeric}): error on the water content \item \code{density} (\link{numeric}): bulk density of each layer in g/cm^-3 }} \item{conversion_factors}{\link{character} (\emph{optional}): The conversion factors used to calculate the dose rate from sediment nuclide contents. Valid options are: \itemize{ \item \code{"Cresswelletal2018"} (default) \item \code{"Liritzisetal2013"} \item \code{"Guerinetal2011"} \item \code{"AdamiecAitken1998"} }} \item{fractional_gamma_dose}{\link{character} (\emph{optional}): Factors to scale gamma dose rate values. Valid options are: \itemize{ \item \code{"Aitken1985"} (default): Table H1 in the appendix }} \item{verbose}{\link{logical} (\emph{with default}): enable/disable output to the terminal.} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{plot_singlePanels}{\link{logical} (\emph{with default}): enable/disable single plot mode, i.e. one plot window per plot.} \item{...}{Further parameters passed to \link{barplot}.} } \value{ After performing the calculations the user is provided with different outputs. \enumerate{ \item The total gamma dose rate received by the sample (+/- uncertainties) as a print in the console. \item A plot showing the sediment sequence, the user input sample information and the contribution to total gamma dose rate. \item RLum Results. If the user wishes to save these results, writing a script to run the function and to save the results would look like this: } \if{html}{\out{
}}\preformatted{mydata <- read.table("c:/path/to/input/file.txt") results <- scale_GammaDose(mydata) table <- get_RLum(results) write.csv(table, "c:/path/to/results.csv") }\if{html}{\out{
}} -----------------------------------\cr \verb{[ NUMERICAL OUTPUT ]}\cr -----------------------------------\cr \strong{\code{RLum.Results}}-object \strong{slot:} \strong{\verb{@data}} \tabular{lll}{ \strong{Element} \tab \strong{Type} \tab \strong{Description}\cr \verb{$summary} \tab \code{data.frame} \tab summary of the model results \cr \verb{$data} \tab \code{data.frame} \tab the original input data \cr \verb{$dose_rates} \tab \code{list} \tab two \code{data.frames} for the scaled and infinite matrix dose rates \cr \verb{$tables} \tab \code{list} \tab several \code{data.frames} containing intermediate results \cr \verb{$args} \tab \code{character} \tab arguments of the call \cr \verb{$call} \tab \code{call} \tab the original function call \cr } \strong{slot:} \strong{\verb{@info}} Currently unused. ------------------------\cr \verb{[ PLOT OUTPUT ]}\cr ------------------------\cr Three plots are produced: \itemize{ \item A visualisation of the provided sediment layer structure to quickly assess whether the data was provided and interpreted correctly. \item A scatter plot of the nuclide contents per layer (K, Th, U) as well as the water content. This may help to correlate the dose rate contribution of specific layers to the layer of interest. \item A barplot visualising the contribution of each layer to the total dose rate received by the sample in the target layer. } } \description{ This function calculates the gamma dose deposited in a luminescence sample taking into account layer-to-layer variations in sediment radioactivity. The function scales user inputs of uranium, thorium and potassium based on input parameters for sediment density, water content and given layer thicknesses and distances to the sample. } \details{ \strong{User Input} To calculate the gamma dose which is deposited in a sample, the user needs to provide information on those samples influencing the luminescence sample. As a rule of thumb, all sediment layers within at least 30 cm radius from the luminescence sample taken should be taken into account when calculating the gamma dose rate. However, the actual range of gamma radiation might be different, depending on the emitting radioelement, the water content and the sediment density of each layer (Aitken, 1985). Therefore the user is advised to provide as much detail as possible and physically sensible. The function requires a \link{data.frame} that is to be structured in columns and rows, with samples listed in rows. The first column contains information on the layer/sample ID, the second on the thickness (in cm) of each layer, whilst column 3 should contain \code{NA} for all layers that are not sampled for OSL/TL. For the layer the OSL/TL sample was taken from a numerical value must be provided, which is the distance (in cm) measured from \strong{bottom} of the layer of interest. If the whole layer was sampled insert \code{0}. If the sample was taken from \emph{within} the layer, insert a numerical value \verb{>0}, which describes the distance from the middle of the sample to the bottom of the layer in cm. Columns 4 to 9 should contain radionuclide concentrations and their standard errors for potassium (in \%), thorium (in ppm) and uranium (in ppm). Columns 10 and 11 give information on the water content and its uncertainty (standard error) in \%. The layer density (in g/cm3) should be given in column 12. No cell should be left blank. Please ensure to keep the column titles as given in the example dataset (\code{data('ExampleData.ScaleGammaDose')}, see examples). The user can decide which dose rate conversion factors should be used to calculate the gamma dose rates. The options are: \itemize{ \item \code{"Cresswelletal2018"} (Cresswell et al., 2018) \item \code{"Liritzisetal2013"} (Liritzis et al., 2013) \item \code{"Guerinetal2011"} (Guerin et al., 2011) \item \code{"AdamiecAitken1998"} (Adamiec and Aitken, 1998) } \strong{Water content} The water content provided by the user should be calculated according to: \deqn{ ( Wet weight [g] - Dry weight [g] ) / Dry weight [g] * 100 } \strong{Calculations} After converting the radionuclide concentrations into dose rates, the function will scale the dose rates based on the thickness of the layers, the distances to the sample, the water content and the density of the sediment. The calculations are based on Aitken (1985, Appendix H). As an example (equivalent to Aitken, 1985), assuming three layers of sediment, where \strong{L} is inert and positioned in between the infinite thick and equally active layers \strong{A} and \strong{B}, the dose in \strong{L} and \strong{B} due to \strong{A} is given by \deqn{ {1-f(x)}D_A } Where \code{x} is the distance into the inert medium, so \code{f(x)} is the weighted average fractional dose at \code{x} and \code{D_A} denotes that the dose is delivered by \strong{A}. \code{f(x)} is derived from table H1 (Aitken, 1985), when setting \code{z = x}. Consequently, the dose in \strong{A} and \strong{L} due to \strong{B} is given by \deqn{ {1 - f(t-x)}D_B } Here \code{t} is the thickness of \strong{L} and the other parameters are denoted as above, just for the dose being delivered by B. \code{f(t-x)} is derived from table H1 (Aitken, 1985), when setting \code{z} equal to \code{t-x}. Following this, the dose in \strong{L} delivered by \strong{A} and \strong{B} is given by \deqn{ {2 - f(x) - f(t-x)}D_{AB} } Since \strong{A} and \strong{B} are equally active \verb{D_\{AB\} = D_A = D_B}. The function uses the value of the fractional dose rate at the layer boundary to start the calculation for the next layer. This way, the function is able to scale the gamma dose rate accurately for distant layers when the density and water content is not constant for the entire section. } \note{ \strong{This function has BETA status. If possible, results should be} \strong{cross-checked.} } \section{Function version}{ 0.1.3 } \section{Acknowledgements}{ We thank Dr Ian Bailiff for the provision of an excel spreadsheet, which has been very helpful when writing this function. } \examples{ # Load example data data("ExampleData.ScaleGammaDose", envir = environment()) x <- ExampleData.ScaleGammaDose # Scale gamma dose rate results <- scale_GammaDose(data = x, conversion_factors = "Cresswelletal2018", fractional_gamma_dose = "Aitken1985", verbose = TRUE, plot = TRUE) get_RLum(results) } \section{How to cite}{ Riedesel, S., Autzen, M., Burow, C., 2025. scale_GammaDose(): Calculate the gamma dose deposited within a sample taking layer-to-layer variations in radioactivity into account (according to Aitken, 1985). Function version 0.1.3. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Aitken, M.J., 1985. Thermoluminescence Dating. Academic Press, London. Adamiec, G., Aitken, M.J., 1998. Dose-rate conversion factors: update. Ancient TL 16, 37-46. Cresswell., A.J., Carter, J., Sanderson, D.C.W., 2018. Dose rate conversion parameters: Assessment of nuclear data. Radiation Measurements 120, 195-201. Guerin, G., Mercier, N., Adamiec, G., 2011. Dose-rate conversion factors: update. Ancient TL, 29, 5-8. Liritzis, I., Stamoulis, K., Papachristodoulou, C., Ioannides, K., 2013. A re-evaluation of radiation dose-rate conversion factors. Mediterranean Archaeology and Archaeometry 13, 1-15. } \seealso{ \link{ExampleData.ScaleGammaDose}, \link{BaseDataSet.ConversionFactors}, \link{approx}, \link{barplot} } \author{ Svenja Riedesel, Aberystwyth University (United Kingdom) \cr Martin Autzen, DTU NUTECH Center for Nuclear Technologies (Denmark) \cr Christoph Burow, University of Cologne (Germany) \cr Based on an excel spreadsheet and accompanying macro written by Ian Bailiff. , RLum Developer Team} \keyword{datagen} Luminescence/man/RLum.Data.Curve-class.Rd0000644000176200001440000001716514762561642017672 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/RLum.Data.Curve-class.R \docType{class} \name{RLum.Data.Curve-class} \alias{RLum.Data.Curve-class} \alias{show,RLum.Data.Curve-method} \alias{set_RLum,RLum.Data.Curve-method} \alias{get_RLum,RLum.Data.Curve-method} \alias{length_RLum,RLum.Data.Curve-method} \alias{names_RLum,RLum.Data.Curve-method} \alias{bin_RLum.Data,RLum.Data.Curve-method} \alias{smooth_RLum,RLum.Data.Curve-method} \alias{melt_RLum,RLum.Data.Curve-method} \title{Class \code{"RLum.Data.Curve"}} \usage{ \S4method{show}{RLum.Data.Curve}(object) \S4method{set_RLum}{RLum.Data.Curve}( class, originator, .uid, .pid, recordType = NA_character_, curveType = NA_character_, data = matrix(0, ncol = 2), info = list() ) \S4method{get_RLum}{RLum.Data.Curve}(object, info.object = NULL) \S4method{length_RLum}{RLum.Data.Curve}(object) \S4method{names_RLum}{RLum.Data.Curve}(object) \S4method{bin_RLum.Data}{RLum.Data.Curve}(object, bin_size = 2) \S4method{smooth_RLum}{RLum.Data.Curve}(object, k = NULL, fill = NA, align = "right", method = "mean") \S4method{melt_RLum}{RLum.Data.Curve}(object) } \arguments{ \item{object}{\code{\link{get_RLum}}, \code{\link{length_RLum}}, \code{\link{names_RLum}} (\strong{required}): an object of class \linkS4class{RLum.Data.Curve}} \item{class}{\code{\link{set_RLum}}; \link{character} (\strong{required}): name of the \code{RLum} class to create} \item{originator}{\code{\link{set_RLum}}; \link{character} (\emph{automatic}): contains the name of the calling function (the function that produces this object); can be set manually.} \item{.uid}{\code{\link{set_RLum}}; \link{character} (\emph{automatic}): sets an unique ID for this object using the internal C++ function \code{create_UID}.} \item{.pid}{\code{\link{set_RLum}}; \link{character} (\emph{with default}): option to provide a parent id for nesting at will.} \item{recordType}{\code{\link{set_RLum}}; \link{character} (\emph{optional}): record type (e.g., "OSL")} \item{curveType}{\code{\link{set_RLum}}; \link{character} (\emph{optional}): curve type (e.g., "predefined" or "measured")} \item{data}{\code{\link{set_RLum}}; \link{matrix} (\strong{required}): raw curve data. If \code{data} itself is a \code{RLum.Data.Curve}-object this can be used to re-construct the object (see details), i.e. modified parameters except \code{.uid}, \code{.pid} and \code{originator}. The rest will be subject to copy and paste unless provided.} \item{info}{\code{\link{set_RLum}}; \link{list} (\emph{optional}): info elements} \item{info.object}{\code{\link{get_RLum}} \link{character} (\emph{optional}): name of the wanted info element} \item{bin_size}{\link{integer} (\emph{with default}): set number of channels used for each bin, e.g. \code{bin_size = 2} means that two channels are binned.} \item{k}{\code{\link{smooth_RLum}}; \link{integer} (\emph{with default}): window for the rolling mean; must be odd for \code{rollmedian}. If nothing is set k is set automatically} \item{fill}{\code{\link{smooth_RLum}}; \link{numeric} (\emph{with default}): a vector defining the left and the right hand data} \item{align}{\code{\link{smooth_RLum}}; \link{character} (\emph{with default}): specifying whether the index of the result should be left- or right-aligned or centred (default) compared to the rolling window of observations, allowed \code{"right"}, \code{"center"} and \code{"left"}} \item{method}{\code{\link{smooth_RLum}}; \link{character} (\emph{with default}): defines which method should be applied for the smoothing: \code{"mean"} or \code{"median"}} } \value{ \strong{\code{set_RLum}} Returns an \linkS4class{RLum.Data.Curve} object. \strong{\code{get_RLum}} \enumerate{ \item A \link{matrix} with the curve values or \item only the info object if \code{info.object} was set. } \strong{\code{length_RLum}} Number of channels in the curve (row number of the matrix) \strong{\code{names_RLum}} Names of the info elements (slot \code{info}) \strong{\code{bin_RLum.Data}} Same object as input, after applying the binning. \strong{\code{smooth_RLum}} Same object as input, after smoothing \strong{\code{melt_RLum}} Flat \link{data.frame} with \code{X}, \code{Y}, \code{TYPE}, \code{UID} } \description{ Class for representing luminescence curve data. } \section{Methods (by generic)}{ \itemize{ \item \code{show(RLum.Data.Curve)}: Show structure of \code{RLum.Data.Curve} object \item \code{set_RLum(RLum.Data.Curve)}: Construction method for RLum.Data.Curve object. The slot info is optional and predefined as empty list by default. \item \code{get_RLum(RLum.Data.Curve)}: Accessor method for RLum.Data.Curve object. The argument info.object is optional to directly access the info elements. If no info element name is provided, the raw curve data (matrix) will be returned. \item \code{length_RLum(RLum.Data.Curve)}: Returns the length of the curve object, which is the maximum of the value time/temperature of the curve (corresponding to the stimulation length) \item \code{names_RLum(RLum.Data.Curve)}: Returns the names info elements coming along with this curve object \item \code{bin_RLum.Data(RLum.Data.Curve)}: Allows binning of specific objects \item \code{smooth_RLum(RLum.Data.Curve)}: Smoothing of RLum.Data.Curve objects using a rolling mean or median. In particular the internal function \code{.smoothing} is used. \item \code{melt_RLum(RLum.Data.Curve)}: Melts \linkS4class{RLum.Data.Curve} objects into a flat data.frame to be used in combination with other packages such as \code{ggplot2}. }} \section{Slots}{ \describe{ \item{\code{recordType}}{Object of class "character" containing the type of the curve (e.g. "TL" or "OSL")} \item{\code{curveType}}{Object of class "character" containing curve type, allowed values are "measured" or "predefined"} \item{\code{data}}{Object of class \link{matrix} containing curve x and y data. 'data' can also be of type \code{RLum.Data.Curve} to change object values without de-constructing the object. For example: \if{html}{\out{
}}\preformatted{set_RLum(class = 'RLum.Data.Curve', data = Your.RLum.Data.Curve, recordType = 'never seen before') }\if{html}{\out{
}} would just change the \code{recordType}. Missing arguments the value is taken from the input object in 'data' (which is already an \code{RLum.Data.Curve} object in this example)} }} \note{ The class should only contain data for a single curve. For additional elements the slot \code{info} can be used (e.g. providing additional heating ramp curve). Objects from the class \code{RLum.Data.Curve} are produced by other functions (partly within \linkS4class{RLum.Analysis} objects), namely: \link{Risoe.BINfileData2RLum.Analysis}, \link{read_XSYG2R} } \section{Create objects from this Class}{ Objects can be created by calls of the form \code{set_RLum(class = "RLum.Data.Curve", ...)}. } \section{Class version}{ 0.5.1 } \examples{ showClass("RLum.Data.Curve") ##set empty curve object set_RLum(class = "RLum.Data.Curve") } \seealso{ \linkS4class{RLum}, \linkS4class{RLum.Data}, \link{plot_RLum}, \link{merge_RLum} } \author{ Sebastian Kreutzer, Institute of Geography, Heidelberg University (Germany) , RLum Developer Team} \section{How to cite}{ Kreutzer, S., 2025. RLum.Data.Curve-class(): Class 'RLum.Data.Curve'. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \keyword{classes} \keyword{internal} Luminescence/man/calc_FiniteMixture.Rd0000644000176200001440000002040114762561642017516 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/calc_FiniteMixture.R \name{calc_FiniteMixture} \alias{calc_FiniteMixture} \title{Apply the finite mixture model (FMM) after Galbraith (2005) to a given De distribution} \usage{ calc_FiniteMixture( data, sigmab, n.components, grain.probability = FALSE, pdf.weight = TRUE, pdf.sigma = "sigmab", pdf.colors = "gray", plot.proportions = TRUE, plot = TRUE, ... ) } \arguments{ \item{data}{\linkS4class{RLum.Results} or \link{data.frame} (\strong{required}): for \link{data.frame}: two columns with De \code{(data[,1])} and De error \code{(values[,2])}} \item{sigmab}{\link{numeric} (\strong{required}): spread in De values given as a fraction (e.g. 0.2). This value represents the expected overdispersion in the data should the sample be well-bleached (Cunningham & Wallinga 2012, p. 100).} \item{n.components}{\link{numeric} (\strong{required}): number of components to be fitted. If a vector is provided (e.g. \code{c(2:8)}) the finite mixtures for 2, 3 ... 8 components are calculated and a plot and a statistical evaluation of the model performance (BIC score and maximum log-likelihood) is provided.} \item{grain.probability}{\link{logical} (\emph{with default}): prints the estimated probabilities of which component each grain is in} \item{pdf.weight}{\link{logical} (\emph{with default}): weight the probability density functions by the components proportion (applies only when a vector is provided for \code{n.components})} \item{pdf.sigma}{\link{character} (\emph{with default}): if \code{"sigmab"} the components normal distributions are plotted with a common standard deviation (i.e. \code{sigmab}) as assumed by the FFM. Alternatively, \code{"se"} takes the standard error of each component for the sigma parameter of the normal distribution} \item{pdf.colors}{\link{character} (\emph{with default}): colour coding of the components in the plot. Possible options are \code{"gray"}, \code{"colors"} and \code{"none"}} \item{plot.proportions}{\link{logical} (\emph{with default}): plot \link[graphics:barplot]{graphics::barplot} showing the proportions of components if \code{n.components} a vector with a length > 1 (e.g., \code{n.components = c(2:3)})} \item{plot}{\link{logical} (\emph{with default}): enable/disable the plot output.} \item{...}{further arguments to pass. See details for their usage.} } \value{ Returns a plot (\emph{optional}) and terminal output. In addition an \linkS4class{RLum.Results} object is returned containing the following elements: \item{.$summary}{\link{data.frame} summary of all relevant model results.} \item{.$data}{\link{data.frame} original input data} \item{.$args}{\link{list} used arguments} \item{.$call}{\link{call} the function call} \item{.$mle}{ covariance matrices of the log likelihoods} \item{.$BIC}{ BIC score} \item{.$llik}{ maximum log likelihood} \item{.$grain.probability}{ probabilities of a grain belonging to a component} \item{.$components}{\link{matrix} estimates of the de, de error and proportion for each component} \item{.$single.comp}{\link{data.frame} single component FFM estimate} If a vector for \code{n.components} is provided (e.g. \code{c(2:8)}), \code{mle} and \code{grain.probability} are lists containing matrices of the results for each iteration of the model. The output should be accessed using the function \link{get_RLum}. } \description{ This function fits a k-component mixture to a De distribution with differing known standard errors. Parameters (doses and mixing proportions) are estimated by maximum likelihood assuming that the log dose estimates are from a mixture of normal distributions. } \details{ This model uses the maximum likelihood and Bayesian Information Criterion (BIC) approaches. Indications of overfitting are: \itemize{ \item increasing BIC \item repeated dose estimates \item covariance matrix not positive definite \item covariance matrix produces \code{NaN} \item convergence problems } \strong{Plot} If a vector (\code{c(k.min:k.max)}) is provided for \code{n.components} a plot is generated showing the k components equivalent doses as normal distributions. By default \code{pdf.weight} is set to \code{FALSE}, so that the area under each normal distribution is always 1. If \code{TRUE}, the probability density functions are weighted by the components proportion for each iteration of k components, so the sum of areas of each component equals 1. While the density values are on the same scale when no weights are used, the y-axis are individually scaled if the probability density are weighted by the components proportion.\cr The standard deviation (sigma) of the normal distributions is by default determined by a common \code{sigmab} (see \code{pdf.sigma}). For \code{pdf.sigma = "se"} the standard error of each component is taken instead.\cr The stacked \link[graphics:barplot]{graphics::barplot} shows the proportion of each component (in per cent) calculated by the FMM. The last plot shows the achieved BIC scores and maximum log-likelihood estimates for each iteration of k. } \section{Function version}{ 0.4.2 } \examples{ ## load example data data(ExampleData.DeValues, envir = environment()) ## (1) apply the finite mixture model ## NOTE: the data set is not suitable for the finite mixture model, ## which is why a very small sigmab is necessary calc_FiniteMixture(ExampleData.DeValues$CA1, sigmab = 0.2, n.components = 2, grain.probability = TRUE) ## (2) repeat the finite mixture model for 2, 3 and 4 maximum number of fitted ## components and save results ## NOTE: The following example is computationally intensive. Please un-comment ## the following lines to make the example work. FMM<- calc_FiniteMixture(ExampleData.DeValues$CA1, sigmab = 0.2, n.components = c(2:4), pdf.weight = TRUE) ## show structure of the results FMM ## show the results on equivalent dose, standard error and proportion of ## fitted components get_RLum(object = FMM, data.object = "components") } \section{How to cite}{ Burow, C., 2025. calc_FiniteMixture(): Apply the finite mixture model (FMM) after Galbraith (2005) to a given De distribution. Function version 0.4.2. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J., Mercier, N., Philippe, A., Riedesel, S., Autzen, M., Mittelstrass, D., Gray, H.J., Galharret, J., Colombo, M., Steinbuch, L., Boer, A.d., 2025. Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 1.0.1. https://r-lum.github.io/Luminescence/ } \references{ Galbraith, R.F. & Green, P.F., 1990. Estimating the component ages in a finite mixture. Nuclear Tracks and Radiation Measurements 17, 197-206. Galbraith, R.F. & Laslett, G.M., 1993. Statistical models for mixed fission track ages. Nuclear Tracks Radiation Measurements 4, 459-470. Galbraith, R.F. & Roberts, R.G., 2012. Statistical aspects of equivalent dose and error calculation and display in OSL dating: An overview and some recommendations. Quaternary Geochronology 11, 1-27. Roberts, R.G., Galbraith, R.F., Yoshida, H., Laslett, G.M. & Olley, J.M., 2000. Distinguishing dose populations in sediment mixtures: a test of single-grain optical dating procedures using mixtures of laboratory-dosed quartz. Radiation Measurements 32, 459-465. Galbraith, R.F., 2005. Statistics for Fission Track Analysis, Chapman & Hall/CRC, Boca Raton. \strong{Further reading} Arnold, L.J. & Roberts, R.G., 2009. Stochastic modelling of multi-grain equivalent dose (De) distributions: Implications for OSL dating of sediment mixtures. Quaternary Geochronology 4, 204-230. Cunningham, A.C. & Wallinga, J., 2012. Realizing the potential of fluvial archives using robust OSL chronologies. Quaternary Geochronology 12, 98-106. Rodnight, H., Duller, G.A.T., Wintle, A.G. & Tooth, S., 2006. Assessing the reproducibility and accuracy of optical dating of fluvial deposits. Quaternary Geochronology 1, 109-120. Rodnight, H. 2008. How many equivalent dose values are needed to obtain a reproducible distribution?. Ancient TL 26, 3-10. } \seealso{ \link{calc_CentralDose}, \link{calc_CommonDose}, \link{calc_FuchsLang2001}, \link{calc_MinDose} } \author{ Christoph Burow, University of Cologne (Germany) \cr Based on a rewritten S script of Rex Galbraith, 2006. , RLum Developer Team} Luminescence/DESCRIPTION0000644000176200001440000001276114762615137014415 0ustar liggesusersPackage: Luminescence Type: Package Title: Comprehensive Luminescence Dating Data Analysis Version: 1.0.1 Date: 2025-03-07 Authors@R: c( person("Sebastian", "Kreutzer", role = c("aut", "trl", "cre", "dtc"), email = "maintainer_luminescence@r-luminescence.org", comment = c(ORCID = "0000-0002-0734-2199")), person("Christoph", "Burow", role = c("aut", "trl", "dtc"), comment = c(ORCID = "0000-0002-5023-4046")), person("Michael", "Dietze", role = c("aut"), comment = c(ORCID = "0000-0001-6063-1726")), person("Margret C.", "Fuchs", role = c("aut"), comment = c(ORCID = "0000-0001-7210-1132")), person("Christoph", "Schmidt", role = c("aut"), comment = c(ORCID = "0000-0002-2309-3209")), person("Manfred", "Fischer", role = c("aut", "trl")), person("Johannes", "Friedrich", role = c("aut"), comment = c(ORCID = "0000-0002-0805-9547")), person("Norbert", "Mercier", role = c("aut"), comment = c(ORCID = "0000-0002-6375-9108")), person("Rachel K.", "Smedley", role = c("ctb"), comment = c(ORCID = "0000-0001-7773-5193")), person("Claire", "Christophe", role = c("ctb")), person("Antoine", "Zink", role = c("ctb"), comment = c(ORCID = "0000-0001-7146-1101")), person("Julie", "Durcan", role = c("ctb"), comment = c(ORCID = "0000-0001-8724-8022")), person("Georgina E.", "King", role = c("ctb", "dtc"), comment = c(ORCID = "0000-0003-1059-8192")), person("Anne", "Philippe", role = c("aut"), comment = c(ORCID = "0000-0002-5331-5087")), person("Guillaume", "Guerin", role = c("ctb"), comment = c(ORCID = "0000-0001-6298-5579")), person("Svenja", "Riedesel", role = c("aut"), comment = c(ORCID = "0000-0003-2936-8776")), person("Martin", "Autzen", role = c("aut"), comment = c(ORCID = "0000-0001-6249-426X")), person("Pierre", "Guibert", role = c("ctb"), comment = c(ORCID = "0000-0001-8969-8684")), person("Dirk", "Mittelstrass", role = c("aut"), comment = c(ORCID = "0000-0002-9567-8791")), person("Harrison J.", "Gray", role = c("aut"), comment = c(ORCID = "0000-0002-4555-7473")), person("Jean-Michel", "Galharret", role = c("aut"), comment = c(ORCID = "0000-0003-2219-8727")), person("Marco", "Colombo", role = c("aut"), comment = c(ORCID = "0000-0001-6672-0623")), person("Luc", "Steinbuch", role = c("aut"), comment = c(ORCID = "0000-0001-6484-0920")), person("Anna-Maartje", "de Boer", role = c("aut"), comment = c(ORCID = "0000-0002-7359-6939")), person("Markus", "Fuchs", role = c("ths"), comment = c(ORCID = "0000-0003-4669-6528"))) Maintainer: Sebastian Kreutzer Description: A collection of various R functions for the purpose of Luminescence dating data analysis. This includes, amongst others, data import, export, application of age models, curve deconvolution, sequence analysis and plotting of equivalent dose distributions. Contact: Package Developers License: GPL-3 URL: https://r-lum.github.io/Luminescence/ BugReports: https://github.com/R-Lum/Luminescence/issues Depends: R (>= 4.3), utils LinkingTo: Rcpp (>= 1.0.12), RcppArmadillo (>= 0.12.8.4.0) Imports: bbmle (>= 1.0.25.1), data.table (>= 1.15.4), DEoptim (>= 2.2-8), httr (>= 1.4.7), interp (>= 1.1-6), lamW (>= 2.2.3), matrixStats (>= 1.3.0), methods, minpack.lm (>= 1.2-4), mclust (>= 6.1), Rcpp (>= 1.0.12), shape (>= 1.4.6), parallel, XML (>= 3.99-0.16), Suggests: spelling (>= 2.3.0), plotly (>= 4.10.4), rmarkdown (>= 2.27), rstudioapi (>= 0.16.0), rjags (>= 4-15), coda (>= 0.19-4), knitr, pander (>= 0.6.5), testthat (>= 3.2.1), vdiffr (>= 1.0.0), tiff (>= 0.1-12), devtools (>= 2.4.5), R.rsp (>= 0.46.0) VignetteBuilder: R.rsp, knitr Encoding: UTF-8 Language: en-US RoxygenNote: 7.3.2 Config/testthat/edition: 3 NeedsCompilation: yes Packaged: 2025-03-07 12:17:26 UTC; marco Author: Sebastian Kreutzer [aut, trl, cre, dtc] (), Christoph Burow [aut, trl, dtc] (), Michael Dietze [aut] (), Margret C. Fuchs [aut] (), Christoph Schmidt [aut] (), Manfred Fischer [aut, trl], Johannes Friedrich [aut] (), Norbert Mercier [aut] (), Rachel K. Smedley [ctb] (), Claire Christophe [ctb], Antoine Zink [ctb] (), Julie Durcan [ctb] (), Georgina E. King [ctb, dtc] (), Anne Philippe [aut] (), Guillaume Guerin [ctb] (), Svenja Riedesel [aut] (), Martin Autzen [aut] (), Pierre Guibert [ctb] (), Dirk Mittelstrass [aut] (), Harrison J. Gray [aut] (), Jean-Michel Galharret [aut] (), Marco Colombo [aut] (), Luc Steinbuch [aut] (), Anna-Maartje de Boer [aut] (), Markus Fuchs [ths] () Repository: CRAN Date/Publication: 2025-03-07 16:10:07 UTC